From fa2afb292c1a2bbf08cb186edf2017f71922418a Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Mon, 16 May 2022 22:48:37 +0800 Subject: [PATCH 001/525] Improve performance for column replicate for uint32 type. In our benchmark unit test there has about 2x performance boost Co-authored-by: vesslanjin --- src/Columns/ColumnVector.cpp | 104 +++++++++++++++++++++++++++++++++++ src/Columns/ColumnVector.h | 4 +- 2 files changed, 107 insertions(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index eca10049a0b..01f5c2d3782 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -401,6 +401,12 @@ ColumnPtr ColumnVector::index(const IColumn & indexes, size_t limit) const template ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const { + #ifdef __SSE4_2__ + if constexpr (std::is_same_v) + { + return replicateSSE2(offsets); + } + #endif const size_t size = data.size(); if (size != offsets.size()) throw Exception("Size of offsets doesn't match size of column.", ErrorCodes::SIZES_OF_COLUMNS_DOESNT_MATCH); @@ -421,6 +427,104 @@ ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const return res; } +#ifdef __SSE4_2__ +template +ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const +{ + const size_t size = data.size(); + if (size != offsets.size()) + throw Exception("Size of offsets doesn't match size of column.", ErrorCodes::SIZES_OF_COLUMNS_DOESNT_MATCH); + + if (0 == size) + return this->create(); + + auto res = this->create(offsets.back()); + + auto it = res->getData().begin(); // NOLINT + ///column use paddedpodarray.Don't worry about the 4 conitnues op will out of range + if constexpr (std::is_same_v) + { + size_t prev_offset = 0; + int cp_begin = -1; + for (size_t i = 0; i < size; ++i) + { + size_t span = offsets[i] - prev_offset; + prev_offset = offsets[i]; + if (span == 1) + { + if (cp_begin == -1) + cp_begin = i; + continue; + } + ///data : 11 22 33 44 55 + ///offsets: 0 1 2 3 3 + ///res: 22 33 44 + size_t cpsz = (!(cp_begin == -1)) * (i - cp_begin); + bool remain = (cpsz & 3); + size_t sse_cp_counter = (cpsz >> 2); + sse_cp_counter = remain * (sse_cp_counter + 1) + (!remain) * (sse_cp_counter); + auto it_tmp = it; + size_t data_start = cp_begin; + cp_begin = -1; + constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); + while (sse_cp_counter--) + { + __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto cres = _mm_shuffle_epi32(cdata, msk_cp); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + it_tmp += 4; + data_start += 4; + } + it += cpsz; + if (span == 0) + { + continue; + } + ///data : 11 22 33 + ///offsets: 0 0 4 + ///res: 33 33 33 33 + size_t shuffle_sz = span; + bool shuffle_remain = (shuffle_sz & 3); + size_t sse_shuffle_counter = (shuffle_sz >> 2); + sse_shuffle_counter = shuffle_remain * (sse_shuffle_counter + 1) + (!shuffle_remain) * (sse_shuffle_counter); + it_tmp = it; + constexpr const int msk_shuffle = (_MM_SHUFFLE(0, 0, 0, 0)); + __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[i])); + while (sse_shuffle_counter--) + { + auto cres = _mm_shuffle_epi32(cdata, msk_shuffle); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + it_tmp += 4; + } + it += shuffle_sz; + } + ///data : 11 22 33 44 55 + ///offsets: 1 2 3 4 5 + ///res: 11 22 33 44 55 + if (cp_begin != -1) + { + size_t cpsz = (size - cp_begin); + bool remain = (cpsz & 3); + size_t sse_cp_counter = (cpsz >> 2); + sse_cp_counter = remain * (sse_cp_counter + 1) + (!remain) * (sse_cp_counter); + auto it_tmp = it; + size_t data_start = cp_begin; + constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); + while (sse_cp_counter--) + { + __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto cres = _mm_shuffle_epi32(cdata, msk_cp); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + it_tmp += 4; + data_start += 4; + } + it += cpsz; + } + } + return res; +} +#endif + template void ColumnVector::gather(ColumnGathererStream & gatherer) { diff --git a/src/Columns/ColumnVector.h b/src/Columns/ColumnVector.h index 62a0e3a1190..30cbff0570e 100644 --- a/src/Columns/ColumnVector.h +++ b/src/Columns/ColumnVector.h @@ -132,7 +132,9 @@ private: /// Sugar constructor. ColumnVector(std::initializer_list il) : data{il} {} - + #ifdef __SSE4_2__ + ColumnPtr replicateSSE2(const IColumn::Offsets & offsets) const; + #endif public: bool isNumeric() const override { return is_arithmetic_v; } From 4b2a24b5ec27eb1728d2b009eedf9dedea04266a Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Mon, 16 May 2022 23:31:54 +0800 Subject: [PATCH 002/525] change comment format --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 01f5c2d3782..1f7158e64d6 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -441,7 +441,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///column use paddedpodarray.Don't worry about the 4 conitnues op will out of range + ///column using padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From dbea0c122e9e65124e74b210d4c896c43d5111dd Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Wed, 18 May 2022 21:10:01 +0800 Subject: [PATCH 003/525] change macro from sse4.2 to sse2 --- src/Columns/ColumnVector.cpp | 4 ++-- src/Columns/ColumnVector.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 1f7158e64d6..97d184a5d61 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -401,7 +401,7 @@ ColumnPtr ColumnVector::index(const IColumn & indexes, size_t limit) const template ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const { - #ifdef __SSE4_2__ + #ifdef __SSE2__ if constexpr (std::is_same_v) { return replicateSSE2(offsets); @@ -427,7 +427,7 @@ ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const return res; } -#ifdef __SSE4_2__ +#ifdef __SSE2__ template ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const { diff --git a/src/Columns/ColumnVector.h b/src/Columns/ColumnVector.h index 30cbff0570e..6dcc0647781 100644 --- a/src/Columns/ColumnVector.h +++ b/src/Columns/ColumnVector.h @@ -132,7 +132,7 @@ private: /// Sugar constructor. ColumnVector(std::initializer_list il) : data{il} {} - #ifdef __SSE4_2__ + #ifdef __SSE2__ ColumnPtr replicateSSE2(const IColumn::Offsets & offsets) const; #endif public: From 44f2e3a06d09de37e0a0634b473e3e47a21b97e6 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Thu, 19 May 2022 02:49:26 +0800 Subject: [PATCH 004/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index d478d6ce8ee..b0a21b471f9 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///column using padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column using padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From 58518047fe1f30c97bbce60c9ef70deb867d7359 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Thu, 19 May 2022 19:13:12 +0800 Subject: [PATCH 005/525] iterator not always pointer type. so use the auto* substitue auto that clang tidy suggest is not alwyas ok. --- src/Columns/ColumnVector.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index b0a21b471f9..c702b20105d 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -590,7 +590,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const bool remain = (cpsz & 3); size_t sse_cp_counter = (cpsz >> 2); sse_cp_counter = remain * (sse_cp_counter + 1) + (!remain) * (sse_cp_counter); - auto it_tmp = it; + auto it_tmp = it; // NOLINT size_t data_start = cp_begin; cp_begin = -1; constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); @@ -634,7 +634,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const bool remain = (cpsz & 3); size_t sse_cp_counter = (cpsz >> 2); sse_cp_counter = remain * (sse_cp_counter + 1) + (!remain) * (sse_cp_counter); - auto it_tmp = it; + auto it_tmp = it; // NOLINT size_t data_start = cp_begin; constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); while (sse_cp_counter--) From ad1f0c025e5cad2b7dc9017c43da45e5563b69fc Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Fri, 20 May 2022 05:52:21 +0800 Subject: [PATCH 006/525] change some comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index c702b20105d..21d84b85e7d 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column using padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column uses padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From 69d50bf232e821971e46e02692a1a018b8d0cf6a Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Fri, 20 May 2022 06:33:47 +0800 Subject: [PATCH 007/525] change some comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 21d84b85e7d..f312aa7e59a 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column uses padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column use padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From ce9305939bddeef4353e98793b16230957c1ad66 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Fri, 20 May 2022 06:42:22 +0800 Subject: [PATCH 008/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index f312aa7e59a..21d84b85e7d 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column use padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column uses padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From 114125dde2a7a405b81a42d35fb05c726057ad48 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Fri, 20 May 2022 07:32:26 +0800 Subject: [PATCH 009/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 21d84b85e7d..f312aa7e59a 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column uses padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column use padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From 59ecd3fa82f4e052e1b7549f0df5538451d84ae6 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Fri, 20 May 2022 18:20:36 +0800 Subject: [PATCH 010/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index f312aa7e59a..21d84b85e7d 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column use padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column uses padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From b5ddbf10d88dc541e3e424af60039029824ea22a Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Fri, 20 May 2022 22:41:47 +0800 Subject: [PATCH 011/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 21d84b85e7d..483f0db19ed 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column uses padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column used padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From dc58f82788b3bdc5b4c3597ace5861f56b471f37 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Sat, 21 May 2022 03:19:02 +0800 Subject: [PATCH 012/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 483f0db19ed..c702b20105d 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column used padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column using padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From a876435f4774d83a36a756ca351054bf9ec4c892 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Sat, 21 May 2022 13:51:34 +0800 Subject: [PATCH 013/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index c702b20105d..483f0db19ed 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column using padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column used padded pod array. Don't worry about the 4 conitnues op will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From ae739ca9baea2d4dbd97512578eba49143977389 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Sat, 21 May 2022 20:12:43 +0800 Subject: [PATCH 014/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 483f0db19ed..53695ffb167 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -568,7 +568,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column used padded pod array. Don't worry about the 4 conitnues op will out of range + ///Column used padded pod array. Don't worry about the 4 conitnue ops will out of range if constexpr (std::is_same_v) { size_t prev_offset = 0; From 50c02af959423905cca83e6e19a9d88c5970d183 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 21 May 2022 23:35:04 +0300 Subject: [PATCH 015/525] Make the code slightly more humane. --- src/Columns/ColumnVector.cpp | 184 ++++++++++++++++++----------------- 1 file changed, 93 insertions(+), 91 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 53695ffb167..54f4745bb5e 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -437,10 +437,10 @@ ColumnPtr ColumnVector::filter(const IColumn::Filter & filt, ssize_t result_s const T * data_pos = data.data(); /** A slightly more optimized version. - * Based on the assumption that often pieces of consecutive values - * completely pass or do not pass the filter. - * Therefore, we will optimistically check the parts of `SIMD_BYTES` values. - */ + * Based on the assumption that often pieces of consecutive values + * completely pass or do not pass the filter. + * Therefore, we will optimistically check the parts of `SIMD_BYTES` values. + */ static constexpr size_t SIMD_BYTES = 64; const UInt8 * filt_end_aligned = filt_pos + size / SIMD_BYTES * SIMD_BYTES; @@ -528,12 +528,6 @@ ColumnPtr ColumnVector::index(const IColumn & indexes, size_t limit) const template ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const { - #ifdef __SSE2__ - if constexpr (std::is_same_v) - { - return replicateSSE2(offsets); - } - #endif const size_t size = data.size(); if (size != offsets.size()) throw Exception("Size of offsets doesn't match size of column.", ErrorCodes::SIZES_OF_COLUMNS_DOESNT_MATCH); @@ -541,6 +535,11 @@ ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const if (0 == size) return this->create(); +#ifdef __SSE2__ + if constexpr (std::is_same_v) + return replicateSSE2(offsets); +#endif + auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT @@ -554,104 +553,107 @@ ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const return res; } + #ifdef __SSE2__ + template ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const { - const size_t size = data.size(); - if (size != offsets.size()) - throw Exception("Size of offsets doesn't match size of column.", ErrorCodes::SIZES_OF_COLUMNS_DOESNT_MATCH); - - if (0 == size) - return this->create(); - auto res = this->create(offsets.back()); auto it = res->getData().begin(); // NOLINT - ///Column used padded pod array. Don't worry about the 4 conitnue ops will out of range - if constexpr (std::is_same_v) + + /// Column is using PaddedPODArray, so we don't have to worry about the 4 out of range elements. + + size_t prev_offset = 0; + int copy_begin = -1; + + for (size_t i = 0; i < size; ++i) { - size_t prev_offset = 0; - int cp_begin = -1; - for (size_t i = 0; i < size; ++i) + size_t span = offsets[i] - prev_offset; + prev_offset = offsets[i]; + if (span == 1) { - size_t span = offsets[i] - prev_offset; - prev_offset = offsets[i]; - if (span == 1) - { - if (cp_begin == -1) - cp_begin = i; - continue; - } - ///data : 11 22 33 44 55 - ///offsets: 0 1 2 3 3 - ///res: 22 33 44 - size_t cpsz = (!(cp_begin == -1)) * (i - cp_begin); - bool remain = (cpsz & 3); - size_t sse_cp_counter = (cpsz >> 2); - sse_cp_counter = remain * (sse_cp_counter + 1) + (!remain) * (sse_cp_counter); - auto it_tmp = it; // NOLINT - size_t data_start = cp_begin; - cp_begin = -1; - constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); - while (sse_cp_counter--) - { - __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto cres = _mm_shuffle_epi32(cdata, msk_cp); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); - it_tmp += 4; - data_start += 4; - } - it += cpsz; - if (span == 0) - { - continue; - } - ///data : 11 22 33 - ///offsets: 0 0 4 - ///res: 33 33 33 33 - size_t shuffle_sz = span; - bool shuffle_remain = (shuffle_sz & 3); - size_t sse_shuffle_counter = (shuffle_sz >> 2); - sse_shuffle_counter = shuffle_remain * (sse_shuffle_counter + 1) + (!shuffle_remain) * (sse_shuffle_counter); - it_tmp = it; - constexpr const int msk_shuffle = (_MM_SHUFFLE(0, 0, 0, 0)); - __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[i])); - while (sse_shuffle_counter--) - { - auto cres = _mm_shuffle_epi32(cdata, msk_shuffle); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); - it_tmp += 4; - } - it += shuffle_sz; + if (copy_begin == -1) + copy_begin = i; + continue; } - ///data : 11 22 33 44 55 - ///offsets: 1 2 3 4 5 - ///res: 11 22 33 44 55 - if (cp_begin != -1) + + /// data : 11 22 33 44 55 + /// offsets: 0 1 2 3 3 + /// res: 22 33 44 + + size_t copy_size = (!(copy_begin == -1)) * (i - copy_begin); + bool remain = (copy_size & 3); + size_t sse_copy_counter = (copy_size >> 2); + sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); + auto it_tmp = it; // NOLINT + size_t data_start = copy_begin; + copy_begin = -1; + constexpr const int msk_cp = _MM_SHUFFLE(3, 2, 1, 0); + while (sse_copy_counter) { - size_t cpsz = (size - cp_begin); - bool remain = (cpsz & 3); - size_t sse_cp_counter = (cpsz >> 2); - sse_cp_counter = remain * (sse_cp_counter + 1) + (!remain) * (sse_cp_counter); - auto it_tmp = it; // NOLINT - size_t data_start = cp_begin; - constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); - while (sse_cp_counter--) - { - __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto cres = _mm_shuffle_epi32(cdata, msk_cp); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); - it_tmp += 4; - data_start += 4; - } - it += cpsz; + __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto cres = _mm_shuffle_epi32(cdata, msk_cp); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + it_tmp += 4; + data_start += 4; + --sse_copy_counter; } + + it += copy_size; + if (span == 0) + continue; + + /// data : 11 22 33 + /// offsets: 0 0 4 + /// res: 33 33 33 33 + size_t shuffle_sz = span; + bool shuffle_remain = (shuffle_sz & 3); + size_t sse_shuffle_counter = (shuffle_sz >> 2); + sse_shuffle_counter = shuffle_remain * (sse_shuffle_counter + 1) + (!shuffle_remain) * (sse_shuffle_counter); + it_tmp = it; + constexpr const int msk_shuffle = (_MM_SHUFFLE(0, 0, 0, 0)); + __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[i])); + while (sse_shuffle_counter) + { + auto cres = _mm_shuffle_epi32(cdata, msk_shuffle); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + it_tmp += 4; + --sse_shuffle_counter; + } + it += shuffle_sz; } + + /// data : 11 22 33 44 55 + /// offsets: 1 2 3 4 5 + /// res: 11 22 33 44 55 + if (copy_begin != -1) + { + size_t copy_size = (size - copy_begin); + bool remain = (copy_size & 3); + size_t sse_copy_counter = (copy_size >> 2); + sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); + auto it_tmp = it; // NOLINT + size_t data_start = copy_begin; + constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); + while (sse_copy_counter) + { + __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto cres = _mm_shuffle_epi32(cdata, msk_cp); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + it_tmp += 4; + data_start += 4; + --sse_copy_counter; + } + it += copy_size; + } + return res; } #endif + template void ColumnVector::gather(ColumnGathererStream & gatherer) { From fa032a76b61562b2b51a73ff2d0d78e4faa694de Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 21 May 2022 23:38:51 +0300 Subject: [PATCH 016/525] Make variable names less disgusting. --- src/Columns/ColumnVector.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 54f4745bb5e..d49b3e7f948 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -590,12 +590,12 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto it_tmp = it; // NOLINT size_t data_start = copy_begin; copy_begin = -1; - constexpr const int msk_cp = _MM_SHUFFLE(3, 2, 1, 0); + constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); while (sse_copy_counter) { - __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto cres = _mm_shuffle_epi32(cdata, msk_cp); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); it_tmp += 4; data_start += 4; --sse_copy_counter; @@ -613,12 +613,12 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const size_t sse_shuffle_counter = (shuffle_sz >> 2); sse_shuffle_counter = shuffle_remain * (sse_shuffle_counter + 1) + (!shuffle_remain) * (sse_shuffle_counter); it_tmp = it; - constexpr const int msk_shuffle = (_MM_SHUFFLE(0, 0, 0, 0)); - __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[i])); + constexpr const int shuffle_mask = (_MM_SHUFFLE(0, 0, 0, 0)); + __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[i])); while (sse_shuffle_counter) { - auto cres = _mm_shuffle_epi32(cdata, msk_shuffle); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + auto copy_result = _mm_shuffle_epi32(data_to_copy, shuffle_mask); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); it_tmp += 4; --sse_shuffle_counter; } @@ -636,12 +636,12 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); auto it_tmp = it; // NOLINT size_t data_start = copy_begin; - constexpr const int msk_cp = (_MM_SHUFFLE(3, 2, 1, 0)); + constexpr const int copy_mask = (_MM_SHUFFLE(3, 2, 1, 0)); while (sse_copy_counter) { - __m128i cdata = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto cres = _mm_shuffle_epi32(cdata, msk_cp); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), cres); + __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); it_tmp += 4; data_start += 4; --sse_copy_counter; From d36ec5e34d272203edb10b57b1fe6e6be5645e0d Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 21 May 2022 23:39:34 +0300 Subject: [PATCH 017/525] There are so many disgusting names. --- src/Columns/ColumnVector.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index d49b3e7f948..2f52fa6aa85 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -608,9 +608,9 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const /// data : 11 22 33 /// offsets: 0 0 4 /// res: 33 33 33 33 - size_t shuffle_sz = span; - bool shuffle_remain = (shuffle_sz & 3); - size_t sse_shuffle_counter = (shuffle_sz >> 2); + size_t shuffle_size = span; + bool shuffle_remain = (shuffle_size & 3); + size_t sse_shuffle_counter = (shuffle_size >> 2); sse_shuffle_counter = shuffle_remain * (sse_shuffle_counter + 1) + (!shuffle_remain) * (sse_shuffle_counter); it_tmp = it; constexpr const int shuffle_mask = (_MM_SHUFFLE(0, 0, 0, 0)); @@ -622,7 +622,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const it_tmp += 4; --sse_shuffle_counter; } - it += shuffle_sz; + it += shuffle_size; } /// data : 11 22 33 44 55 From a1a0d5b07565f9b1d0ff57d1dbf2b973b53f72ca Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Sun, 22 May 2022 14:22:54 +0800 Subject: [PATCH 018/525] fix compile error --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 2f52fa6aa85..7e2748c472c 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -567,7 +567,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const size_t prev_offset = 0; int copy_begin = -1; - + size_t size = offsets.size(); for (size_t i = 0; i < size; ++i) { size_t span = offsets[i] - prev_offset; From eff6adbaa4aa17f47ac23b680ec4550dfc5ab0f9 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Sun, 22 May 2022 15:50:47 +0800 Subject: [PATCH 019/525] fix offset type issue --- src/Columns/ColumnVector.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 7e2748c472c..3a9ccafb57f 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -565,8 +565,8 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const /// Column is using PaddedPODArray, so we don't have to worry about the 4 out of range elements. - size_t prev_offset = 0; - int copy_begin = -1; + IColumn::Offset prev_offset = 0; + std::optional copy_begin; size_t size = offsets.size(); for (size_t i = 0; i < size; ++i) { @@ -574,7 +574,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const prev_offset = offsets[i]; if (span == 1) { - if (copy_begin == -1) + if (!copy_begin) copy_begin = i; continue; } @@ -583,13 +583,13 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const /// offsets: 0 1 2 3 3 /// res: 22 33 44 - size_t copy_size = (!(copy_begin == -1)) * (i - copy_begin); + size_t copy_size = (static_cast(copy_begin)) * (i - (*copy_begin)); bool remain = (copy_size & 3); size_t sse_copy_counter = (copy_size >> 2); sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); auto it_tmp = it; // NOLINT - size_t data_start = copy_begin; - copy_begin = -1; + size_t data_start = (static_cast(copy_begin))*(*copy_begin); + copy_begin.reset(); constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); while (sse_copy_counter) { @@ -628,14 +628,14 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const /// data : 11 22 33 44 55 /// offsets: 1 2 3 4 5 /// res: 11 22 33 44 55 - if (copy_begin != -1) + if (copy_begin) { - size_t copy_size = (size - copy_begin); + size_t copy_size = (size - (*copy_begin)); bool remain = (copy_size & 3); size_t sse_copy_counter = (copy_size >> 2); sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); auto it_tmp = it; // NOLINT - size_t data_start = copy_begin; + size_t data_start = *copy_begin; constexpr const int copy_mask = (_MM_SHUFFLE(3, 2, 1, 0)); while (sse_copy_counter) { From a6347dcea626fa21f26cdfd38055efa25acaba14 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Mon, 23 May 2022 01:11:01 +0800 Subject: [PATCH 020/525] fix deference null optional value issue. Dereference NUll optioanl value in debug mode will trigger about signal. --- src/Columns/ColumnVector.cpp | 53 +++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 3a9ccafb57f..5d84cbfb782 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -574,34 +574,37 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const prev_offset = offsets[i]; if (span == 1) { - if (!copy_begin) - copy_begin = i; - continue; + if (!copy_begin) + copy_begin = i; + continue; } /// data : 11 22 33 44 55 /// offsets: 0 1 2 3 3 /// res: 22 33 44 + if(copy_begin) + { + size_t copy_size = i - (*copy_begin); + bool remain = (copy_size & 3); + size_t sse_copy_counter = (copy_size >> 2); + sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); + auto it_tmp = it; // NOLINT + size_t data_start = *copy_begin; + copy_begin.reset(); + constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); + while (sse_copy_counter) + { + __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); + it_tmp += 4; + data_start += 4; + --sse_copy_counter; + } - size_t copy_size = (static_cast(copy_begin)) * (i - (*copy_begin)); - bool remain = (copy_size & 3); - size_t sse_copy_counter = (copy_size >> 2); - sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); - auto it_tmp = it; // NOLINT - size_t data_start = (static_cast(copy_begin))*(*copy_begin); - copy_begin.reset(); - constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); - while (sse_copy_counter) - { - __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); - it_tmp += 4; - data_start += 4; - --sse_copy_counter; - } + it += copy_size; + } - it += copy_size; if (span == 0) continue; @@ -612,13 +615,13 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const bool shuffle_remain = (shuffle_size & 3); size_t sse_shuffle_counter = (shuffle_size >> 2); sse_shuffle_counter = shuffle_remain * (sse_shuffle_counter + 1) + (!shuffle_remain) * (sse_shuffle_counter); - it_tmp = it; + auto it_tmp = it; // NOLINT constexpr const int shuffle_mask = (_MM_SHUFFLE(0, 0, 0, 0)); - __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[i])); + __m128i data_to_shuffle = _mm_loadu_si128(reinterpret_cast(&data[i])); + auto shuffle_result = _mm_shuffle_epi32(data_to_shuffle, shuffle_mask); while (sse_shuffle_counter) { - auto copy_result = _mm_shuffle_epi32(data_to_copy, shuffle_mask); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), shuffle_result); it_tmp += 4; --sse_shuffle_counter; } From a3d6cb2e58ed30f83fdcf7a09b490768d541fd25 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Mon, 23 May 2022 01:36:59 +0800 Subject: [PATCH 021/525] fix style issue --- src/Columns/ColumnVector.cpp | 52 ++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 5d84cbfb782..7920124d4f2 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -565,7 +565,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const /// Column is using PaddedPODArray, so we don't have to worry about the 4 out of range elements. - IColumn::Offset prev_offset = 0; + IColumn::Offset prev_offset = 0; std::optional copy_begin; size_t size = offsets.size(); for (size_t i = 0; i < size; ++i) @@ -574,36 +574,36 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const prev_offset = offsets[i]; if (span == 1) { - if (!copy_begin) - copy_begin = i; - continue; + if (!copy_begin) + copy_begin = i; + continue; } /// data : 11 22 33 44 55 /// offsets: 0 1 2 3 3 /// res: 22 33 44 - if(copy_begin) - { - size_t copy_size = i - (*copy_begin); - bool remain = (copy_size & 3); - size_t sse_copy_counter = (copy_size >> 2); - sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); - auto it_tmp = it; // NOLINT - size_t data_start = *copy_begin; - copy_begin.reset(); - constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); - while (sse_copy_counter) - { - __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); - it_tmp += 4; - data_start += 4; - --sse_copy_counter; - } + if (copy_begin) + { + size_t copy_size = i - (*copy_begin); + bool remain = (copy_size & 3); + size_t sse_copy_counter = (copy_size >> 2); + sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); + auto it_tmp = it; // NOLINT + size_t data_start = (*copy_begin); + copy_begin.reset(); + constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); + while (sse_copy_counter) + { + __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); + auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); + _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); + it_tmp += 4; + data_start += 4; + --sse_copy_counter; + } - it += copy_size; - } + it += copy_size; + } if (span == 0) continue; @@ -618,7 +618,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const auto it_tmp = it; // NOLINT constexpr const int shuffle_mask = (_MM_SHUFFLE(0, 0, 0, 0)); __m128i data_to_shuffle = _mm_loadu_si128(reinterpret_cast(&data[i])); - auto shuffle_result = _mm_shuffle_epi32(data_to_shuffle, shuffle_mask); + auto shuffle_result = _mm_shuffle_epi32(data_to_shuffle, shuffle_mask); while (sse_shuffle_counter) { _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), shuffle_result); From 5162e87dd2005e6d75159d0ab773d35c8c192d13 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Tue, 24 May 2022 10:22:29 +0800 Subject: [PATCH 022/525] remove parentheses --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 7920124d4f2..920fb12124c 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -589,7 +589,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const size_t sse_copy_counter = (copy_size >> 2); sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); auto it_tmp = it; // NOLINT - size_t data_start = (*copy_begin); + size_t data_start = *copy_begin; copy_begin.reset(); constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); while (sse_copy_counter) From 2ff2c5547969fd058d3634de931134741da1ef6c Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Thu, 26 May 2022 21:11:56 +0800 Subject: [PATCH 023/525] change some comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 920fb12124c..b659e50426f 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -581,7 +581,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const /// data : 11 22 33 44 55 /// offsets: 0 1 2 3 3 - /// res: 22 33 44 + /// res: 22 33 44 if (copy_begin) { size_t copy_size = i - (*copy_begin); From 781701b223ece9ab16e1a09a089545e64f471af6 Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Thu, 26 May 2022 22:23:22 +0800 Subject: [PATCH 024/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index b659e50426f..7ab2a7e387a 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -580,7 +580,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const } /// data : 11 22 33 44 55 - /// offsets: 0 1 2 3 3 + /// offsets: 0 1 2 3 3 /// res: 22 33 44 if (copy_begin) { From bef9971890522dde57756938fd79cc4196cab53b Mon Sep 17 00:00:00 2001 From: zhao zhou Date: Tue, 31 May 2022 21:13:02 +0800 Subject: [PATCH 025/525] change comment --- src/Columns/ColumnVector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 7ab2a7e387a..b659e50426f 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -580,7 +580,7 @@ ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const } /// data : 11 22 33 44 55 - /// offsets: 0 1 2 3 3 + /// offsets: 0 1 2 3 3 /// res: 22 33 44 if (copy_begin) { From 82ce2d76c31547539cdb6ed4bec6da065e13e7cb Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Fri, 3 Jun 2022 12:06:31 +0300 Subject: [PATCH 026/525] Add KerberosInit class; add kerberos_init console example; modify HDFSCommon.cpp --- src/Access/CMakeLists.txt | 3 + src/Access/KerberosInit.cpp | 162 ++++++++++++++++++++++++++ src/Access/KerberosInit.h | 37 ++++++ src/Access/examples/CMakeLists.txt | 4 + src/Access/examples/kerberos_init.cpp | 36 ++++++ src/Storages/HDFS/HDFSCommon.cpp | 15 ++- 6 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 src/Access/KerberosInit.cpp create mode 100644 src/Access/KerberosInit.h create mode 100644 src/Access/examples/CMakeLists.txt create mode 100644 src/Access/examples/kerberos_init.cpp diff --git a/src/Access/CMakeLists.txt b/src/Access/CMakeLists.txt index e69de29bb2d..83bbe418246 100644 --- a/src/Access/CMakeLists.txt +++ b/src/Access/CMakeLists.txt @@ -0,0 +1,3 @@ +if (ENABLE_EXAMPLES) + add_subdirectory(examples) +endif() diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp new file mode 100644 index 00000000000..8954eccf136 --- /dev/null +++ b/src/Access/KerberosInit.cpp @@ -0,0 +1,162 @@ +#include +#include + +#include +#include +#include + + +int KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) +{ + auto adqm_log = &Poco::Logger::get("ADQM"); + LOG_DEBUG(adqm_log,"KerberosInit: begin"); + + krb5_error_code ret; + + // todo: use deftype + //const char *deftype = nullptr; + int flags = 0; + principal_name = new char[256]; + std::copy(principal.begin(), principal.end(), principal_name); + principal_name[principal.size()] = '\0'; + + //memset(&k5, 0, sizeof(k5)); + memset(&k5d, 0, sizeof(k5d)); + k5 = &k5d; + //memset(k5, 0, sizeof(k5_data)); + // begin + ret = krb5_init_context(&k5->ctx); + if (ret) + throw DB::Exception(0, "Error while initializing Kerberos 5 library"); + + if (!cache_name.empty()) + { + ret = krb5_cc_resolve(k5->ctx, cache_name.c_str(), &k5->out_cc); + // todo: analyze return code + LOG_DEBUG(adqm_log,"Resolved cache"); + } + else + { + // Resolve the default ccache and get its type and default principal (if it is initialized). + ret = krb5_cc_default(k5->ctx, &defcache); + if (ret) + throw DB::Exception(0, "Error while getting default ccache"); + LOG_DEBUG(adqm_log,"Resolved default cache"); + // todo: deftype + /*deftype = */krb5_cc_get_type(k5->ctx, defcache); + if (krb5_cc_get_principal(k5->ctx, defcache, &defcache_princ) != 0) + defcache_princ = nullptr; + } + + // Use the specified principal name. + ret = krb5_parse_name_flags(k5->ctx, principal_name, flags, &k5->me); + if (ret) + throw DB::Exception(0, "Error when parsing principal name " + String(principal_name)); + + + // to-do: add more cache init commands + + ret = krb5_unparse_name(k5->ctx, k5->me, &k5->name); + if (ret) + throw DB::Exception(0, "Error when unparsing name"); + + LOG_DEBUG(adqm_log,"KerberosInit: Using principal: {}", k5->name); + + principal_name = k5->name; + + // init: + memset(&my_creds, 0, sizeof(my_creds)); + + ret = krb5_get_init_creds_opt_alloc(k5->ctx, &options); + if (ret) + throw DB::Exception(0, "Error in options allocation"); + + // todo +/* +#ifndef _WIN32 + if (strncmp(opts->keytab_name, "KDB:", 4) == 0) { + ret = kinit_kdb_init(&k5->ctx, k5->me->realm.data); + errctx = k5->ctx; + if (ret) { + com_err(progname, ret, + _("while setting up KDB keytab for realm %s"), + k5->me->realm.data); + goto cleanup; + } + } +#endif +*/ + // Resolve keytab + ret = krb5_kt_resolve(k5->ctx, keytab_file.c_str(), &keytab); + if (ret) + throw DB::Exception(0, "Error resolving keytab "+keytab_file); + + LOG_DEBUG(adqm_log,"KerberosInit: Using keytab: {}", keytab_file); + + // todo: num_pa_opts + + + // todo: in_cc / ccache + + // action: init or renew + // todo: doing only init action: + ret = krb5_get_init_creds_keytab(k5->ctx, &my_creds, k5->me, keytab, 0, nullptr, options); + if (ret) + LOG_DEBUG(adqm_log,"Getting initial credentials"); + + // todo: implement renew action + + + LOG_DEBUG(adqm_log,"Authenticated to Kerberos v5"); + LOG_DEBUG(adqm_log,"KerberosInit: end"); + return 0; +} + +KerberosInit::~KerberosInit() +{ + if (k5->ctx) + { + //begin. cleanup: + if (defcache) + krb5_cc_close(k5->ctx, defcache); + //todo + krb5_free_principal(k5->ctx, defcache_princ); + + // init. cleanup: + //todo: + /* + #ifndef _WIN32 + kinit_kdb_fini(); + #endif + */ + if (options) + krb5_get_init_creds_opt_free(k5->ctx, options); + if (my_creds.client == k5->me) + my_creds.client = nullptr; + /* + if (opts->pa_opts) { + free(opts->pa_opts); + opts->pa_opts = NULL; + opts->num_pa_opts = 0; + } + */ + krb5_free_cred_contents(k5->ctx, &my_creds); + if (keytab) + krb5_kt_close(k5->ctx, keytab); + + + // end: + krb5_free_unparsed_name(k5->ctx, k5->name); + krb5_free_principal(k5->ctx, k5->me); + /* + if (k5->in_cc != NULL) + krb5_cc_close(k5->ctx, k5->in_cc); + if (k5->out_cc != NULL) + krb5_cc_close(k5->ctx, k5->out_cc); + */ + krb5_free_context(k5->ctx); + } + memset(k5, 0, sizeof(*k5)); + + delete[] principal_name; +} diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h new file mode 100644 index 00000000000..ed64ba3b4a8 --- /dev/null +++ b/src/Access/KerberosInit.h @@ -0,0 +1,37 @@ +#pragma once + +#include "config_core.h" + +#include + +//#include +//#include "k5-platform.h" +#include +//#include + +struct k5_data +{ + krb5_context ctx; + krb5_ccache in_cc, out_cc; + krb5_principal me; + char *name; + krb5_boolean switch_to_cache; +}; + +class KerberosInit +{ +public: + int init(const String & keytab_file, const String & principal, const String & cache_name = ""); + ~KerberosInit(); +private: + struct k5_data * k5 = nullptr; + //struct k5_data k5; + struct k5_data k5d; + krb5_ccache defcache = nullptr; + krb5_get_init_creds_opt *options = nullptr; + krb5_creds my_creds; + krb5_keytab keytab = nullptr; + char * principal_name; + krb5_principal defcache_princ = nullptr; +}; + diff --git a/src/Access/examples/CMakeLists.txt b/src/Access/examples/CMakeLists.txt new file mode 100644 index 00000000000..07f75ca0b47 --- /dev/null +++ b/src/Access/examples/CMakeLists.txt @@ -0,0 +1,4 @@ +if (TARGET ch_contrib::krb5) + add_executable (kerberos_init kerberos_init.cpp) + target_link_libraries (kerberos_init PRIVATE dbms ch_contrib::krb5) +endif() diff --git a/src/Access/examples/kerberos_init.cpp b/src/Access/examples/kerberos_init.cpp new file mode 100644 index 00000000000..fb2575dc581 --- /dev/null +++ b/src/Access/examples/kerberos_init.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include +#include +#include + +using namespace DB; + +int main(int argc, char ** argv) +{ + std::cout << "Kerberos Init" << "\n"; + + if (argc < 3) + { + std::cout << "Usage:" << "\n" << " kerberos_init keytab principal [cache]" << "\n"; + return 0; + } + + String cache_name = ""; + if (argc == 4) + cache_name = argv[3]; + + Poco::AutoPtr app_channel(new Poco::ConsoleChannel(std::cerr)); + Poco::Logger::root().setChannel(app_channel); + Poco::Logger::root().setLevel("trace"); + + KerberosInit k_init; + try { + k_init.init(argv[1], argv[2], cache_name); + } catch (const Exception & e) { + std::cout << "KerberosInit failure: " << getExceptionMessage(e, false) << "\n"; + } + std::cout << "Done" << "\n"; + return 0; +} diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 2f7b03790ee..71989bfd549 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -10,6 +10,7 @@ #include #include #include +#include namespace DB @@ -101,7 +102,7 @@ String HDFSBuilderWrapper::getKinitCmd() } void HDFSBuilderWrapper::runKinit() -{ +{ /* String cmd = getKinitCmd(); LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "running kinit: {}", cmd); @@ -113,6 +114,18 @@ void HDFSBuilderWrapper::runKinit() { throw Exception("kinit failure: " + cmd, ErrorCodes::BAD_ARGUMENTS); } + */ + LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: running KerberosInit"); + std::unique_lock lck(kinit_mtx); + KerberosInit k_init; + try { + k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal); + } catch (const DB::Exception & e) { + String msg = "KerberosInit failure: " + DB::getExceptionMessage(e, false); + LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: {}",msg); + throw Exception(0, msg); + } + LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: finished KerberosInit"); } HDFSBuilderWrapper createHDFSBuilder(const String & uri_str, const Poco::Util::AbstractConfiguration & config) From 8b5bf0292748c5cfb0875b66c1d3a02118fea39d Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Fri, 3 Jun 2022 18:07:18 +0300 Subject: [PATCH 027/525] Add support of cache commands in KerberosInit --- src/Access/KerberosInit.cpp | 88 +++++++++++++++------------ src/Access/KerberosInit.h | 1 - src/Access/examples/kerberos_init.cpp | 3 +- src/Storages/HDFS/HDFSCommon.cpp | 2 +- 4 files changed, 53 insertions(+), 41 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 8954eccf136..0c643e27bd2 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -1,10 +1,9 @@ #include #include - #include #include #include - +#include int KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) { @@ -14,16 +13,14 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con krb5_error_code ret; // todo: use deftype - //const char *deftype = nullptr; + const char *deftype = nullptr; int flags = 0; - principal_name = new char[256]; - std::copy(principal.begin(), principal.end(), principal_name); - principal_name[principal.size()] = '\0'; - //memset(&k5, 0, sizeof(k5)); + if (!std::filesystem::exists(keytab_file)) + throw DB::Exception(0, "Error keytab file does not exist"); + memset(&k5d, 0, sizeof(k5d)); k5 = &k5d; - //memset(k5, 0, sizeof(k5_data)); // begin ret = krb5_init_context(&k5->ctx); if (ret) @@ -42,19 +39,46 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con if (ret) throw DB::Exception(0, "Error while getting default ccache"); LOG_DEBUG(adqm_log,"Resolved default cache"); - // todo: deftype - /*deftype = */krb5_cc_get_type(k5->ctx, defcache); + deftype = krb5_cc_get_type(k5->ctx, defcache); if (krb5_cc_get_principal(k5->ctx, defcache, &defcache_princ) != 0) defcache_princ = nullptr; } // Use the specified principal name. - ret = krb5_parse_name_flags(k5->ctx, principal_name, flags, &k5->me); + ret = krb5_parse_name_flags(k5->ctx, principal.c_str(), flags, &k5->me); if (ret) - throw DB::Exception(0, "Error when parsing principal name " + String(principal_name)); + throw DB::Exception(0, "Error when parsing principal name " + principal); + // Cache related commands + if (k5->out_cc == nullptr && krb5_cc_support_switch(k5->ctx, deftype)) + { + // Use an existing cache for the client principal if we can. + ret = krb5_cc_cache_match(k5->ctx, k5->me, &k5->out_cc); + if (ret && ret != KRB5_CC_NOTFOUND) + throw DB::Exception(0, "Error while searching for ccache for " + principal); + if (!ret) + { + LOG_DEBUG(adqm_log,"Using default cache: {}", krb5_cc_get_name(k5->ctx, k5->out_cc)); + k5->switch_to_cache = 1; + } + else if (defcache_princ != nullptr) + { + // Create a new cache to avoid overwriting the initialized default cache. + ret = krb5_cc_new_unique(k5->ctx, deftype, nullptr, &k5->out_cc); + if (ret) + throw DB::Exception(0, "Error while generating new ccache"); + LOG_DEBUG(adqm_log,"Using default cache: {}", krb5_cc_get_name(k5->ctx, k5->out_cc)); + k5->switch_to_cache = 1; + } + } - // to-do: add more cache init commands + // Use the default cache if we haven't picked one yet. + if (k5->out_cc == nullptr) + { + k5->out_cc = defcache; + defcache = nullptr; + LOG_DEBUG(adqm_log,"Using default cache: {}", krb5_cc_get_name(k5->ctx, k5->out_cc)); + } ret = krb5_unparse_name(k5->ctx, k5->me, &k5->name); if (ret) @@ -62,8 +86,6 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con LOG_DEBUG(adqm_log,"KerberosInit: Using principal: {}", k5->name); - principal_name = k5->name; - // init: memset(&my_creds, 0, sizeof(my_creds)); @@ -93,20 +115,23 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con LOG_DEBUG(adqm_log,"KerberosInit: Using keytab: {}", keytab_file); - // todo: num_pa_opts - - - // todo: in_cc / ccache + if (k5->in_cc) + { + ret = krb5_get_init_creds_opt_set_in_ccache(k5->ctx, options, k5->in_cc); + if (ret) + throw DB::Exception(0, "Error in setting input credential cache"); + } + ret = krb5_get_init_creds_opt_set_out_ccache(k5->ctx, options, k5->out_cc); + if (ret) + throw DB::Exception(0, "Error in setting output credential cache"); // action: init or renew + // todo: implement renew action // todo: doing only init action: ret = krb5_get_init_creds_keytab(k5->ctx, &my_creds, k5->me, keytab, 0, nullptr, options); if (ret) LOG_DEBUG(adqm_log,"Getting initial credentials"); - // todo: implement renew action - - LOG_DEBUG(adqm_log,"Authenticated to Kerberos v5"); LOG_DEBUG(adqm_log,"KerberosInit: end"); return 0; @@ -119,7 +144,6 @@ KerberosInit::~KerberosInit() //begin. cleanup: if (defcache) krb5_cc_close(k5->ctx, defcache); - //todo krb5_free_principal(k5->ctx, defcache_princ); // init. cleanup: @@ -133,30 +157,18 @@ KerberosInit::~KerberosInit() krb5_get_init_creds_opt_free(k5->ctx, options); if (my_creds.client == k5->me) my_creds.client = nullptr; - /* - if (opts->pa_opts) { - free(opts->pa_opts); - opts->pa_opts = NULL; - opts->num_pa_opts = 0; - } - */ krb5_free_cred_contents(k5->ctx, &my_creds); if (keytab) krb5_kt_close(k5->ctx, keytab); - - // end: + // end. cleanup: krb5_free_unparsed_name(k5->ctx, k5->name); krb5_free_principal(k5->ctx, k5->me); - /* - if (k5->in_cc != NULL) + if (k5->in_cc != nullptr) krb5_cc_close(k5->ctx, k5->in_cc); - if (k5->out_cc != NULL) + if (k5->out_cc != nullptr) krb5_cc_close(k5->ctx, k5->out_cc); - */ krb5_free_context(k5->ctx); } memset(k5, 0, sizeof(*k5)); - - delete[] principal_name; } diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index ed64ba3b4a8..07f619aaa0b 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -31,7 +31,6 @@ private: krb5_get_init_creds_opt *options = nullptr; krb5_creds my_creds; krb5_keytab keytab = nullptr; - char * principal_name; krb5_principal defcache_princ = nullptr; }; diff --git a/src/Access/examples/kerberos_init.cpp b/src/Access/examples/kerberos_init.cpp index fb2575dc581..554d57fb8b2 100644 --- a/src/Access/examples/kerberos_init.cpp +++ b/src/Access/examples/kerberos_init.cpp @@ -26,7 +26,8 @@ int main(int argc, char ** argv) Poco::Logger::root().setLevel("trace"); KerberosInit k_init; - try { + try + { k_init.init(argv[1], argv[2], cache_name); } catch (const Exception & e) { std::cout << "KerberosInit failure: " << getExceptionMessage(e, false) << "\n"; diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 71989bfd549..f2ec7af368a 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -119,7 +119,7 @@ void HDFSBuilderWrapper::runKinit() std::unique_lock lck(kinit_mtx); KerberosInit k_init; try { - k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal); + k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal,hadoop_security_kerberos_ticket_cache_path); } catch (const DB::Exception & e) { String msg = "KerberosInit failure: " + DB::getExceptionMessage(e, false); LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: {}",msg); From 6de7590af40e7b7a7d5e5ecab7b8207591b0e0bf Mon Sep 17 00:00:00 2001 From: Peng Liu Date: Sat, 4 Jun 2022 23:30:38 +0800 Subject: [PATCH 028/525] compile the new libgsasl with supportting three modes(privacy/integrity/authentication) --- contrib/libgsasl-cmake/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/libgsasl-cmake/CMakeLists.txt b/contrib/libgsasl-cmake/CMakeLists.txt index 3cf087c2f4c..f0c2395a831 100644 --- a/contrib/libgsasl-cmake/CMakeLists.txt +++ b/contrib/libgsasl-cmake/CMakeLists.txt @@ -113,4 +113,8 @@ if (TARGET ch_contrib::krb5) target_compile_definitions(_gsasl PRIVATE HAVE_GSSAPI_H=1 USE_GSSAPI=1) endif() +if (TARGET OpenSSL::SSL) + target_link_libraries(_gsasl PRIVATE OpenSSL::Crypto OpenSSL::SSL) +endif() + add_library(ch_contrib::gsasl ALIAS _gsasl) From 323835f51d600f4b406492d5122304095b4b7cbb Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Mon, 6 Jun 2022 11:34:10 +0300 Subject: [PATCH 029/525] Add renew/init logic in KerberosInit --- src/Access/KerberosInit.cpp | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 0c643e27bd2..0142708c699 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -126,11 +126,35 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con throw DB::Exception(0, "Error in setting output credential cache"); // action: init or renew - // todo: implement renew action - // todo: doing only init action: - ret = krb5_get_init_creds_keytab(k5->ctx, &my_creds, k5->me, keytab, 0, nullptr, options); + LOG_DEBUG(adqm_log,"Trying to renew credentials"); + ret = krb5_get_renewed_creds(k5->ctx, &my_creds, k5->me, k5->out_cc, nullptr); if (ret) - LOG_DEBUG(adqm_log,"Getting initial credentials"); + { + LOG_DEBUG(adqm_log,"Renew failed, making init credentials"); + ret = krb5_get_init_creds_keytab(k5->ctx, &my_creds, k5->me, keytab, 0, nullptr, options); + if (ret) + throw DB::Exception(0, "Error in init"); + else + LOG_DEBUG(adqm_log,"Getting initial credentials"); + } + else + { + LOG_DEBUG(adqm_log,"Successfull reviewal"); + ret = krb5_cc_initialize(k5->ctx, k5->out_cc, k5->me); + if (ret) + throw DB::Exception(0, "Error when initializing cache"); + LOG_DEBUG(adqm_log,"Initialized cache"); + ret = krb5_cc_store_cred(k5->ctx, k5->out_cc, &my_creds); + if (ret) + LOG_DEBUG(adqm_log,"Error while storing credentials"); + LOG_DEBUG(adqm_log,"Stored credentials"); + } + + if (k5->switch_to_cache) { + ret = krb5_cc_switch(k5->ctx, k5->out_cc); + if (ret) + throw DB::Exception(0, "Error while switching to new ccache"); + } LOG_DEBUG(adqm_log,"Authenticated to Kerberos v5"); LOG_DEBUG(adqm_log,"KerberosInit: end"); From cb53aa15ec0a670eb98fd07738d95b74cbd1f73c Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Tue, 7 Jun 2022 12:06:22 +0300 Subject: [PATCH 030/525] Fix HDFSCommon and test_storage_kerberized_hdfs to make running integration tests --- src/Storages/HDFS/HDFSCommon.cpp | 4 +--- tests/integration/test_storage_kerberized_hdfs/test.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index f2ec7af368a..b13866d7a7b 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -121,9 +121,7 @@ void HDFSBuilderWrapper::runKinit() try { k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal,hadoop_security_kerberos_ticket_cache_path); } catch (const DB::Exception & e) { - String msg = "KerberosInit failure: " + DB::getExceptionMessage(e, false); - LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: {}",msg); - throw Exception(0, msg); + throw Exception("KerberosInit failure: "+ DB::getExceptionMessage(e, false), ErrorCodes::BAD_ARGUMENTS); } LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: finished KerberosInit"); } diff --git a/tests/integration/test_storage_kerberized_hdfs/test.py b/tests/integration/test_storage_kerberized_hdfs/test.py index fb00403b952..5ac8b4670f9 100644 --- a/tests/integration/test_storage_kerberized_hdfs/test.py +++ b/tests/integration/test_storage_kerberized_hdfs/test.py @@ -113,7 +113,7 @@ def test_read_table_expired(started_cluster): ) assert False, "Exception have to be thrown" except Exception as ex: - assert "DB::Exception: kinit failure:" in str(ex) + assert "DB::Exception: KerberosInit failure:" in str(ex) started_cluster.unpause_container("hdfskerberos") From a156a77890eeab8423f86a93e7a48e2784eeb0b0 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Tue, 7 Jun 2022 14:59:46 +0300 Subject: [PATCH 031/525] Add KerberosInit into StorageKafka --- src/Access/KerberosInit.cpp | 1 + src/Storages/HDFS/HDFSCommon.cpp | 3 ++- src/Storages/Kafka/StorageKafka.cpp | 21 +++++++++++++++++++ .../test_storage_kerberized_kafka/test.py | 4 +++- 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 0142708c699..724aa223c2b 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -9,6 +9,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con { auto adqm_log = &Poco::Logger::get("ADQM"); LOG_DEBUG(adqm_log,"KerberosInit: begin"); + //LOG_DEBUG(adqm_log,"KerberosInit: do nothing"); return 0; krb5_error_code ret; diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index b13866d7a7b..35319ce1d83 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -118,7 +118,8 @@ void HDFSBuilderWrapper::runKinit() LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: running KerberosInit"); std::unique_lock lck(kinit_mtx); KerberosInit k_init; - try { + try + { k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal,hadoop_security_kerberos_ticket_cache_path); } catch (const DB::Exception & e) { throw Exception("KerberosInit failure: "+ DB::getExceptionMessage(e, false), ErrorCodes::BAD_ARGUMENTS); diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index 2409f8dcb6e..f6850f02511 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -44,6 +44,8 @@ #include #include +#include + namespace CurrentMetrics { @@ -515,6 +517,25 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) if (config.has(config_prefix)) loadFromConfig(conf, config, config_prefix); + if (conf.has_property("sasl.kerberos.keytab") && conf.has_property("sasl.kerberos.principal")) + { + LOG_DEBUG(log, "ADQM: preparing KerberosInit"); + String keytab = conf.get("sasl.kerberos.keytab"); + String principal = conf.get("sasl.kerberos.principal"); + LOG_DEBUG(log, "ADQM: keytab: {}, principal: {}", keytab, principal); + LOG_DEBUG(log, "ADQM: running KerberosInit"); + KerberosInit k_init; + try + { + k_init.init(keytab,principal); + } catch (const DB::Exception & e) { + LOG_ERROR(log, "ADQM: KerberosInit failure: {}", DB::getExceptionMessage(e, false)); + } + LOG_DEBUG(log, "ADQM: finished KerberosInit"); + conf.set("sasl.kerberos.kinit.cmd",""); + conf.set("sasl.kerberos.min.time.before.relogin","0"); + } + // Update consumer topic-specific configuration for (const auto & topic : topics) { diff --git a/tests/integration/test_storage_kerberized_kafka/test.py b/tests/integration/test_storage_kerberized_kafka/test.py index 6347ba89c16..98d39dd5d4f 100644 --- a/tests/integration/test_storage_kerberized_kafka/test.py +++ b/tests/integration/test_storage_kerberized_kafka/test.py @@ -122,6 +122,7 @@ def test_kafka_json_as_string(kafka_cluster): {"t": 124, "e": {"x": "test"} } {"F1":"V1","F2":{"F21":"V21","F22":{},"F23":"V23","F24":"2019-12-24T16:28:04"},"F3":"V3"} """ + logging.debug("ADQM: logs: %s", instance.grep_in_log("ADQM")) assert TSV(result) == TSV(expected) assert instance.contains_in_log( "Parsing of message (topic: kafka_json_as_string, partition: 0, offset: 1) return no rows" @@ -182,7 +183,8 @@ def test_kafka_json_as_string_no_kdc(kafka_cluster): assert TSV(result) == TSV(expected) assert instance.contains_in_log("StorageKafka (kafka_no_kdc): Nothing to commit") assert instance.contains_in_log("Ticket expired") - assert instance.contains_in_log("Kerberos ticket refresh failed") + #~ assert instance.contains_in_log("Kerberos ticket refresh failed") + assert instance.contains_in_log("KerberosInit failure:") if __name__ == "__main__": From 2b76d0c6a992631b7727c5b051c98d4e077f4803 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 8 Jun 2022 12:26:35 +0300 Subject: [PATCH 032/525] Add new integration test for kerberized Kafka; remove old kinit code from HDFSCommon --- src/Access/KerberosInit.cpp | 1 - src/Storages/HDFS/HDFSCommon.cpp | 38 +---------------- src/Storages/HDFS/HDFSCommon.h | 2 - .../test_storage_kerberized_kafka/test.py | 41 ++++++++++++++++++- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 724aa223c2b..1fa550a4ec1 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -13,7 +13,6 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con krb5_error_code ret; - // todo: use deftype const char *deftype = nullptr; int flags = 0; diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 35319ce1d83..a3554bafeff 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -77,44 +77,8 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration } } -String HDFSBuilderWrapper::getKinitCmd() -{ - - if (hadoop_kerberos_keytab.empty() || hadoop_kerberos_principal.empty()) - { - throw Exception("Not enough parameters to run kinit", - ErrorCodes::NO_ELEMENTS_IN_CONFIG); - } - - WriteBufferFromOwnString ss; - - String cache_name = hadoop_security_kerberos_ticket_cache_path.empty() ? - String() : - (String(" -c \"") + hadoop_security_kerberos_ticket_cache_path + "\""); - - // command to run looks like - // kinit -R -t /keytab_dir/clickhouse.keytab -k somebody@TEST.CLICKHOUSE.TECH || .. - ss << hadoop_kerberos_kinit_command << cache_name << - " -R -t \"" << hadoop_kerberos_keytab << "\" -k " << hadoop_kerberos_principal << - "|| " << hadoop_kerberos_kinit_command << cache_name << " -t \"" << - hadoop_kerberos_keytab << "\" -k " << hadoop_kerberos_principal; - return ss.str(); -} - void HDFSBuilderWrapper::runKinit() -{ /* - String cmd = getKinitCmd(); - LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "running kinit: {}", cmd); - - std::unique_lock lck(kinit_mtx); - - auto command = ShellCommand::execute(cmd); - auto status = command->tryWait(); - if (status) - { - throw Exception("kinit failure: " + cmd, ErrorCodes::BAD_ARGUMENTS); - } - */ +{ LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: running KerberosInit"); std::unique_lock lck(kinit_mtx); KerberosInit k_init; diff --git a/src/Storages/HDFS/HDFSCommon.h b/src/Storages/HDFS/HDFSCommon.h index 0523849abe5..773661b0745 100644 --- a/src/Storages/HDFS/HDFSCommon.h +++ b/src/Storages/HDFS/HDFSCommon.h @@ -69,8 +69,6 @@ public: private: void loadFromConfig(const Poco::Util::AbstractConfiguration & config, const String & prefix, bool isUser = false); - String getKinitCmd(); - void runKinit(); // hdfs builder relies on an external config data storage diff --git a/tests/integration/test_storage_kerberized_kafka/test.py b/tests/integration/test_storage_kerberized_kafka/test.py index 98d39dd5d4f..091307a2b01 100644 --- a/tests/integration/test_storage_kerberized_kafka/test.py +++ b/tests/integration/test_storage_kerberized_kafka/test.py @@ -122,12 +122,51 @@ def test_kafka_json_as_string(kafka_cluster): {"t": 124, "e": {"x": "test"} } {"F1":"V1","F2":{"F21":"V21","F22":{},"F23":"V23","F24":"2019-12-24T16:28:04"},"F3":"V3"} """ - logging.debug("ADQM: logs: %s", instance.grep_in_log("ADQM")) assert TSV(result) == TSV(expected) assert instance.contains_in_log( "Parsing of message (topic: kafka_json_as_string, partition: 0, offset: 1) return no rows" ) +def test_kafka_json_as_string_request_new_ticket_after_expiration(kafka_cluster): + # Ticket should be expired after the wait time + # On run of SELECT query new ticket should be requested and SELECT query should run fine. + + kafka_produce( + kafka_cluster, + "kafka_json_as_string", + [ + '{"t": 123, "e": {"x": "woof"} }', + "", + '{"t": 124, "e": {"x": "test"} }', + '{"F1":"V1","F2":{"F21":"V21","F22":{},"F23":"V23","F24":"2019-12-24T16:28:04"},"F3":"V3"}', + ], + ) + + instance.query( + """ + CREATE TABLE test.kafka (field String) + ENGINE = Kafka + SETTINGS kafka_broker_list = 'kerberized_kafka1:19092', + kafka_topic_list = 'kafka_json_as_string', + kafka_commit_on_select = 1, + kafka_group_name = 'kafka_json_as_string', + kafka_format = 'JSONAsString', + kafka_flush_interval_ms=1000; + """ + ) + + time.sleep(45) # wait for ticket expiration + + result = instance.query("SELECT * FROM test.kafka;") + expected = """\ +{"t": 123, "e": {"x": "woof"} } +{"t": 124, "e": {"x": "test"} } +{"F1":"V1","F2":{"F21":"V21","F22":{},"F23":"V23","F24":"2019-12-24T16:28:04"},"F3":"V3"} +""" + assert TSV(result) == TSV(expected) + assert instance.contains_in_log( + "Parsing of message (topic: kafka_json_as_string, partition: 0, offset: 1) return no rows" + ) def test_kafka_json_as_string_no_kdc(kafka_cluster): # When the test is run alone (not preceded by any other kerberized kafka test), From 3cfea6e76f88e26b24cf4e6a371f033216dfa37f Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 8 Jun 2022 17:57:45 +0300 Subject: [PATCH 033/525] Cleanup code in KerberosInit, HDFSCommon and StorageKafka; update English and Russian documentation. --- .../table-engines/integrations/hdfs.md | 4 +- .../table-engines/integrations/kafka.md | 2 +- .../table-engines/integrations/hdfs.md | 3 +- .../table-engines/integrations/kafka.md | 2 +- src/Access/KerberosInit.cpp | 188 ++++++++---------- src/Access/KerberosInit.h | 19 +- src/Access/examples/kerberos_init.cpp | 2 + src/Storages/HDFS/HDFSCommon.cpp | 11 +- src/Storages/HDFS/HDFSCommon.h | 3 - src/Storages/Kafka/StorageKafka.cpp | 4 +- 10 files changed, 104 insertions(+), 134 deletions(-) diff --git a/docs/en/engines/table-engines/integrations/hdfs.md b/docs/en/engines/table-engines/integrations/hdfs.md index 503bd779abf..146d1fcb3a6 100644 --- a/docs/en/engines/table-engines/integrations/hdfs.md +++ b/docs/en/engines/table-engines/integrations/hdfs.md @@ -186,7 +186,6 @@ Similar to GraphiteMergeTree, the HDFS engine supports extended configuration us | - | - | |hadoop\_kerberos\_keytab | "" | |hadoop\_kerberos\_principal | "" | -|hadoop\_kerberos\_kinit\_command | kinit | |libhdfs3\_conf | "" | ### Limitations {#limitations} @@ -200,8 +199,7 @@ Note that due to libhdfs3 limitations only old-fashioned approach is supported, datanode communications are not secured by SASL (`HADOOP_SECURE_DN_USER` is a reliable indicator of such security approach). Use `tests/integration/test_storage_kerberized_hdfs/hdfs_configs/bootstrap.sh` for reference. -If `hadoop_kerberos_keytab`, `hadoop_kerberos_principal` or `hadoop_kerberos_kinit_command` is specified, `kinit` will be invoked. `hadoop_kerberos_keytab` and `hadoop_kerberos_principal` are mandatory in this case. `kinit` tool and krb5 configuration files are required. - +If `hadoop_kerberos_keytab`, `hadoop_kerberos_principal` or `hadoop_security_kerberos_ticket_cache_path` are specified, Kerberos authentication will be used. `hadoop_kerberos_keytab` and `hadoop_kerberos_principal` are mandatory in this case. ## HDFS Namenode HA support {#namenode-ha} libhdfs3 support HDFS namenode HA. diff --git a/docs/en/engines/table-engines/integrations/kafka.md b/docs/en/engines/table-engines/integrations/kafka.md index a9d13194a59..94fcbab51ad 100644 --- a/docs/en/engines/table-engines/integrations/kafka.md +++ b/docs/en/engines/table-engines/integrations/kafka.md @@ -168,7 +168,7 @@ For a list of possible configuration options, see the [librdkafka configuration ### Kerberos support {#kafka-kerberos-support} To deal with Kerberos-aware Kafka, add `security_protocol` child element with `sasl_plaintext` value. It is enough if Kerberos ticket-granting ticket is obtained and cached by OS facilities. -ClickHouse is able to maintain Kerberos credentials using a keytab file. Consider `sasl_kerberos_service_name`, `sasl_kerberos_keytab`, `sasl_kerberos_principal` and `sasl.kerberos.kinit.cmd` child elements. +ClickHouse is able to maintain Kerberos credentials using a keytab file. Consider `sasl_kerberos_service_name`, `sasl_kerberos_keytab` and `sasl_kerberos_principal` child elements. Example: diff --git a/docs/ru/engines/table-engines/integrations/hdfs.md b/docs/ru/engines/table-engines/integrations/hdfs.md index 0857359e987..84f31c0afcc 100644 --- a/docs/ru/engines/table-engines/integrations/hdfs.md +++ b/docs/ru/engines/table-engines/integrations/hdfs.md @@ -183,7 +183,6 @@ CREATE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9 | - | - | |hadoop\_kerberos\_keytab | "" | |hadoop\_kerberos\_principal | "" | -|hadoop\_kerberos\_kinit\_command | kinit | ### Ограничения {#limitations} * `hadoop_security_kerberos_ticket_cache_path` и `libhdfs3_conf` могут быть определены только на глобальном, а не на пользовательском уровне @@ -196,7 +195,7 @@ CREATE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9 коммуникация с узлами данных не защищена SASL (`HADOOP_SECURE_DN_USER` надежный показатель такого подхода к безопасности). Используйте `tests/integration/test_storage_kerberized_hdfs/hdfs_configs/bootstrap.sh` для примера настроек. -Если `hadoop_kerberos_keytab`, `hadoop_kerberos_principal` или `hadoop_kerberos_kinit_command` указаны в настройках, `kinit` будет вызван. `hadoop_kerberos_keytab` и `hadoop_kerberos_principal` обязательны в этом случае. Необходимо также будет установить `kinit` и файлы конфигурации krb5. +Если `hadoop_kerberos_keytab`, `hadoop_kerberos_principal` или `hadoop_security_kerberos_ticket_cache_path` указаны в настройках, будет использоваться аутентификация с помощью Kerberos. `hadoop_kerberos_keytab` и `hadoop_kerberos_principal` обязательны в этом случае. ## Виртуальные столбцы {#virtual-columns} diff --git a/docs/ru/engines/table-engines/integrations/kafka.md b/docs/ru/engines/table-engines/integrations/kafka.md index b24a096015d..b51a0113302 100644 --- a/docs/ru/engines/table-engines/integrations/kafka.md +++ b/docs/ru/engines/table-engines/integrations/kafka.md @@ -167,7 +167,7 @@ Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format ### Поддержка Kerberos {#kafka-kerberos-support} Чтобы начать работу с Kafka с поддержкой Kerberos, добавьте дочерний элемент `security_protocol` со значением `sasl_plaintext`. Этого будет достаточно, если получен тикет на получение тикета (ticket-granting ticket) Kerberos и он кэшируется средствами ОС. -ClickHouse может поддерживать учетные данные Kerberos с помощью файла keytab. Рассмотрим дочерние элементы `sasl_kerberos_service_name`, `sasl_kerberos_keytab`, `sasl_kerberos_principal` и `sasl.kerberos.kinit.cmd`. +ClickHouse может поддерживать учетные данные Kerberos с помощью файла keytab. Рассмотрим дочерние элементы `sasl_kerberos_service_name`, `sasl_kerberos_keytab` и `sasl_kerberos_principal`. Пример: diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 1fa550a4ec1..1130447048b 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -5,11 +5,17 @@ #include #include +using namespace DB; + +std::mutex KerberosInit::kinit_mtx; + int KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) { - auto adqm_log = &Poco::Logger::get("ADQM"); - LOG_DEBUG(adqm_log,"KerberosInit: begin"); - //LOG_DEBUG(adqm_log,"KerberosInit: do nothing"); return 0; + // Using mutex to prevent cache file corruptions + std::unique_lock lck(kinit_mtx); + + auto log = &Poco::Logger::get("ADQM"); + LOG_DEBUG(log,"Trying to authenticate to Kerberos v5"); krb5_error_code ret; @@ -17,182 +23,152 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con int flags = 0; if (!std::filesystem::exists(keytab_file)) - throw DB::Exception(0, "Error keytab file does not exist"); + throw Exception("Error keytab file does not exist", ErrorCodes::KERBEROS_ERROR); - memset(&k5d, 0, sizeof(k5d)); - k5 = &k5d; - // begin - ret = krb5_init_context(&k5->ctx); + memset(&k5, 0, sizeof(k5)); + ret = krb5_init_context(&k5.ctx); if (ret) - throw DB::Exception(0, "Error while initializing Kerberos 5 library"); + throw Exception("Error while initializing Kerberos 5 library", ErrorCodes::KERBEROS_ERROR); if (!cache_name.empty()) { - ret = krb5_cc_resolve(k5->ctx, cache_name.c_str(), &k5->out_cc); - // todo: analyze return code - LOG_DEBUG(adqm_log,"Resolved cache"); + ret = krb5_cc_resolve(k5.ctx, cache_name.c_str(), &k5.out_cc); + if (ret) + throw Exception("Error in resolving cache", ErrorCodes::KERBEROS_ERROR); + LOG_DEBUG(log,"Resolved cache"); } else { // Resolve the default ccache and get its type and default principal (if it is initialized). - ret = krb5_cc_default(k5->ctx, &defcache); + ret = krb5_cc_default(k5.ctx, &defcache); if (ret) - throw DB::Exception(0, "Error while getting default ccache"); - LOG_DEBUG(adqm_log,"Resolved default cache"); - deftype = krb5_cc_get_type(k5->ctx, defcache); - if (krb5_cc_get_principal(k5->ctx, defcache, &defcache_princ) != 0) + throw Exception("Error while getting default ccache", ErrorCodes::KERBEROS_ERROR); + LOG_DEBUG(log,"Resolved default cache"); + deftype = krb5_cc_get_type(k5.ctx, defcache); + if (krb5_cc_get_principal(k5.ctx, defcache, &defcache_princ) != 0) defcache_princ = nullptr; } // Use the specified principal name. - ret = krb5_parse_name_flags(k5->ctx, principal.c_str(), flags, &k5->me); + ret = krb5_parse_name_flags(k5.ctx, principal.c_str(), flags, &k5.me); if (ret) - throw DB::Exception(0, "Error when parsing principal name " + principal); + throw Exception("Error when parsing principal name " + principal, ErrorCodes::KERBEROS_ERROR); // Cache related commands - if (k5->out_cc == nullptr && krb5_cc_support_switch(k5->ctx, deftype)) + if (k5.out_cc == nullptr && krb5_cc_support_switch(k5.ctx, deftype)) { // Use an existing cache for the client principal if we can. - ret = krb5_cc_cache_match(k5->ctx, k5->me, &k5->out_cc); + ret = krb5_cc_cache_match(k5.ctx, k5.me, &k5.out_cc); if (ret && ret != KRB5_CC_NOTFOUND) - throw DB::Exception(0, "Error while searching for ccache for " + principal); + throw Exception("Error while searching for cache for " + principal, ErrorCodes::KERBEROS_ERROR); if (!ret) { - LOG_DEBUG(adqm_log,"Using default cache: {}", krb5_cc_get_name(k5->ctx, k5->out_cc)); - k5->switch_to_cache = 1; + LOG_DEBUG(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); + k5.switch_to_cache = 1; } else if (defcache_princ != nullptr) { // Create a new cache to avoid overwriting the initialized default cache. - ret = krb5_cc_new_unique(k5->ctx, deftype, nullptr, &k5->out_cc); + ret = krb5_cc_new_unique(k5.ctx, deftype, nullptr, &k5.out_cc); if (ret) - throw DB::Exception(0, "Error while generating new ccache"); - LOG_DEBUG(adqm_log,"Using default cache: {}", krb5_cc_get_name(k5->ctx, k5->out_cc)); - k5->switch_to_cache = 1; + throw Exception("Error while generating new cache", ErrorCodes::KERBEROS_ERROR); + LOG_DEBUG(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); + k5.switch_to_cache = 1; } } // Use the default cache if we haven't picked one yet. - if (k5->out_cc == nullptr) + if (k5.out_cc == nullptr) { - k5->out_cc = defcache; + k5.out_cc = defcache; defcache = nullptr; - LOG_DEBUG(adqm_log,"Using default cache: {}", krb5_cc_get_name(k5->ctx, k5->out_cc)); + LOG_DEBUG(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); } - ret = krb5_unparse_name(k5->ctx, k5->me, &k5->name); + ret = krb5_unparse_name(k5.ctx, k5.me, &k5.name); if (ret) - throw DB::Exception(0, "Error when unparsing name"); + throw Exception("Error when unparsing name", ErrorCodes::KERBEROS_ERROR); + LOG_DEBUG(log,"Using principal: {}", k5.name); - LOG_DEBUG(adqm_log,"KerberosInit: Using principal: {}", k5->name); - - // init: memset(&my_creds, 0, sizeof(my_creds)); - - ret = krb5_get_init_creds_opt_alloc(k5->ctx, &options); + ret = krb5_get_init_creds_opt_alloc(k5.ctx, &options); if (ret) - throw DB::Exception(0, "Error in options allocation"); + throw Exception("Error in options allocation", ErrorCodes::KERBEROS_ERROR); - // todo -/* -#ifndef _WIN32 - if (strncmp(opts->keytab_name, "KDB:", 4) == 0) { - ret = kinit_kdb_init(&k5->ctx, k5->me->realm.data); - errctx = k5->ctx; - if (ret) { - com_err(progname, ret, - _("while setting up KDB keytab for realm %s"), - k5->me->realm.data); - goto cleanup; - } - } -#endif -*/ // Resolve keytab - ret = krb5_kt_resolve(k5->ctx, keytab_file.c_str(), &keytab); + ret = krb5_kt_resolve(k5.ctx, keytab_file.c_str(), &keytab); if (ret) - throw DB::Exception(0, "Error resolving keytab "+keytab_file); + throw Exception("Error in resolving keytab "+keytab_file, ErrorCodes::KERBEROS_ERROR); + LOG_DEBUG(log,"Using keytab: {}", keytab_file); - LOG_DEBUG(adqm_log,"KerberosInit: Using keytab: {}", keytab_file); - - if (k5->in_cc) + if (k5.in_cc) { - ret = krb5_get_init_creds_opt_set_in_ccache(k5->ctx, options, k5->in_cc); + ret = krb5_get_init_creds_opt_set_in_ccache(k5.ctx, options, k5.in_cc); if (ret) - throw DB::Exception(0, "Error in setting input credential cache"); + throw Exception("Error in setting input credential cache", ErrorCodes::KERBEROS_ERROR); } - ret = krb5_get_init_creds_opt_set_out_ccache(k5->ctx, options, k5->out_cc); + ret = krb5_get_init_creds_opt_set_out_ccache(k5.ctx, options, k5.out_cc); if (ret) - throw DB::Exception(0, "Error in setting output credential cache"); + throw Exception("Error in setting output credential cache", ErrorCodes::KERBEROS_ERROR); - // action: init or renew - LOG_DEBUG(adqm_log,"Trying to renew credentials"); - ret = krb5_get_renewed_creds(k5->ctx, &my_creds, k5->me, k5->out_cc, nullptr); + // Action: init or renew + LOG_DEBUG(log,"Trying to renew credentials"); + ret = krb5_get_renewed_creds(k5.ctx, &my_creds, k5.me, k5.out_cc, nullptr); if (ret) { - LOG_DEBUG(adqm_log,"Renew failed, making init credentials"); - ret = krb5_get_init_creds_keytab(k5->ctx, &my_creds, k5->me, keytab, 0, nullptr, options); + LOG_DEBUG(log,"Renew failed, trying to get initial credentials"); + ret = krb5_get_init_creds_keytab(k5.ctx, &my_creds, k5.me, keytab, 0, nullptr, options); if (ret) - throw DB::Exception(0, "Error in init"); + throw Exception("Error in getting initial credentials", ErrorCodes::KERBEROS_ERROR); else - LOG_DEBUG(adqm_log,"Getting initial credentials"); + LOG_DEBUG(log,"Got initial credentials"); } else { - LOG_DEBUG(adqm_log,"Successfull reviewal"); - ret = krb5_cc_initialize(k5->ctx, k5->out_cc, k5->me); + LOG_DEBUG(log,"Successfull renewal"); + ret = krb5_cc_initialize(k5.ctx, k5.out_cc, k5.me); if (ret) - throw DB::Exception(0, "Error when initializing cache"); - LOG_DEBUG(adqm_log,"Initialized cache"); - ret = krb5_cc_store_cred(k5->ctx, k5->out_cc, &my_creds); + throw Exception("Error when initializing cache", ErrorCodes::KERBEROS_ERROR); + LOG_DEBUG(log,"Initialized cache"); + ret = krb5_cc_store_cred(k5.ctx, k5.out_cc, &my_creds); if (ret) - LOG_DEBUG(adqm_log,"Error while storing credentials"); - LOG_DEBUG(adqm_log,"Stored credentials"); + LOG_DEBUG(log,"Error while storing credentials"); + LOG_DEBUG(log,"Stored credentials"); } - if (k5->switch_to_cache) { - ret = krb5_cc_switch(k5->ctx, k5->out_cc); + if (k5.switch_to_cache) { + ret = krb5_cc_switch(k5.ctx, k5.out_cc); if (ret) - throw DB::Exception(0, "Error while switching to new ccache"); + throw Exception("Error while switching to new ccache", ErrorCodes::KERBEROS_ERROR); } - LOG_DEBUG(adqm_log,"Authenticated to Kerberos v5"); - LOG_DEBUG(adqm_log,"KerberosInit: end"); + LOG_DEBUG(log,"Authenticated to Kerberos v5"); return 0; } KerberosInit::~KerberosInit() { - if (k5->ctx) + std::unique_lock lck(kinit_mtx); + if (k5.ctx) { - //begin. cleanup: if (defcache) - krb5_cc_close(k5->ctx, defcache); - krb5_free_principal(k5->ctx, defcache_princ); + krb5_cc_close(k5.ctx, defcache); + krb5_free_principal(k5.ctx, defcache_princ); - // init. cleanup: - //todo: - /* - #ifndef _WIN32 - kinit_kdb_fini(); - #endif - */ if (options) - krb5_get_init_creds_opt_free(k5->ctx, options); - if (my_creds.client == k5->me) + krb5_get_init_creds_opt_free(k5.ctx, options); + if (my_creds.client == k5.me) my_creds.client = nullptr; - krb5_free_cred_contents(k5->ctx, &my_creds); + krb5_free_cred_contents(k5.ctx, &my_creds); if (keytab) - krb5_kt_close(k5->ctx, keytab); + krb5_kt_close(k5.ctx, keytab); - // end. cleanup: - krb5_free_unparsed_name(k5->ctx, k5->name); - krb5_free_principal(k5->ctx, k5->me); - if (k5->in_cc != nullptr) - krb5_cc_close(k5->ctx, k5->in_cc); - if (k5->out_cc != nullptr) - krb5_cc_close(k5->ctx, k5->out_cc); - krb5_free_context(k5->ctx); + krb5_free_unparsed_name(k5.ctx, k5.name); + krb5_free_principal(k5.ctx, k5.me); + if (k5.in_cc != nullptr) + krb5_cc_close(k5.ctx, k5.in_cc); + if (k5.out_cc != nullptr) + krb5_cc_close(k5.ctx, k5.out_cc); + krb5_free_context(k5.ctx); } - memset(k5, 0, sizeof(*k5)); } diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index 07f619aaa0b..48401cbac1b 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -4,10 +4,16 @@ #include -//#include -//#include "k5-platform.h" #include -//#include +#include + +namespace DB +{ +namespace ErrorCodes +{ + extern const int KERBEROS_ERROR; +} +} struct k5_data { @@ -24,13 +30,14 @@ public: int init(const String & keytab_file, const String & principal, const String & cache_name = ""); ~KerberosInit(); private: - struct k5_data * k5 = nullptr; - //struct k5_data k5; - struct k5_data k5d; + //struct k5_data * k5 = nullptr; + struct k5_data k5; + //struct k5_data k5d; krb5_ccache defcache = nullptr; krb5_get_init_creds_opt *options = nullptr; krb5_creds my_creds; krb5_keytab keytab = nullptr; krb5_principal defcache_princ = nullptr; + static std::mutex kinit_mtx; }; diff --git a/src/Access/examples/kerberos_init.cpp b/src/Access/examples/kerberos_init.cpp index 554d57fb8b2..49923e81fd7 100644 --- a/src/Access/examples/kerberos_init.cpp +++ b/src/Access/examples/kerberos_init.cpp @@ -13,6 +13,7 @@ int main(int argc, char ** argv) if (argc < 3) { + std::cout << "kerberos_init obtains and caches an initial ticket-granting ticket for principal." << "\n\n"; std::cout << "Usage:" << "\n" << " kerberos_init keytab principal [cache]" << "\n"; return 0; } @@ -31,6 +32,7 @@ int main(int argc, char ** argv) k_init.init(argv[1], argv[2], cache_name); } catch (const Exception & e) { std::cout << "KerberosInit failure: " << getExceptionMessage(e, false) << "\n"; + return -1; } std::cout << "Done" << "\n"; return 0; diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index a3554bafeff..e3592a7e53b 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -52,12 +52,6 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration hdfsBuilderSetPrincipal(hdfs_builder, hadoop_kerberos_principal.c_str()); continue; } - else if (key == "hadoop_kerberos_kinit_command") - { - need_kinit = true; - hadoop_kerberos_kinit_command = config.getString(key_path); - continue; - } else if (key == "hadoop_security_kerberos_ticket_cache_path") { if (isUser) @@ -80,13 +74,12 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration void HDFSBuilderWrapper::runKinit() { LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: running KerberosInit"); - std::unique_lock lck(kinit_mtx); KerberosInit k_init; try { k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal,hadoop_security_kerberos_ticket_cache_path); } catch (const DB::Exception & e) { - throw Exception("KerberosInit failure: "+ DB::getExceptionMessage(e, false), ErrorCodes::BAD_ARGUMENTS); + throw Exception("KerberosInit failure: "+ getExceptionMessage(e, false), ErrorCodes::KERBEROS_ERROR); } LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: finished KerberosInit"); } @@ -168,8 +161,6 @@ HDFSBuilderWrapper createHDFSBuilder(const String & uri_str, const Poco::Util::A return builder; } -std::mutex HDFSBuilderWrapper::kinit_mtx; - HDFSFSPtr createHDFSFS(hdfsBuilder * builder) { HDFSFSPtr fs(hdfsBuilderConnect(builder)); diff --git a/src/Storages/HDFS/HDFSCommon.h b/src/Storages/HDFS/HDFSCommon.h index 773661b0745..cacb986a091 100644 --- a/src/Storages/HDFS/HDFSCommon.h +++ b/src/Storages/HDFS/HDFSCommon.h @@ -9,7 +9,6 @@ #include #include -#include #include #include @@ -80,10 +79,8 @@ private: hdfsBuilder * hdfs_builder; String hadoop_kerberos_keytab; String hadoop_kerberos_principal; - String hadoop_kerberos_kinit_command = "kinit"; String hadoop_security_kerberos_ticket_cache_path; - static std::mutex kinit_mtx; std::vector> config_stor; bool need_kinit{false}; }; diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index f6850f02511..d8018aebbcc 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -528,8 +528,8 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) try { k_init.init(keytab,principal); - } catch (const DB::Exception & e) { - LOG_ERROR(log, "ADQM: KerberosInit failure: {}", DB::getExceptionMessage(e, false)); + } catch (const Exception & e) { + LOG_ERROR(log, "ADQM: KerberosInit failure: {}", getExceptionMessage(e, false)); } LOG_DEBUG(log, "ADQM: finished KerberosInit"); conf.set("sasl.kerberos.kinit.cmd",""); From d1d6d874322a012fc5f16975d668dfd0dd554cad Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Thu, 9 Jun 2022 11:51:15 +0300 Subject: [PATCH 034/525] Cleanup code in KerberosInit --- src/Access/KerberosInit.cpp | 10 +++++----- src/Storages/HDFS/HDFSCommon.cpp | 4 ++-- src/Storages/Kafka/StorageKafka.cpp | 8 +++----- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 1130447048b..549520e63ea 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -14,7 +14,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Using mutex to prevent cache file corruptions std::unique_lock lck(kinit_mtx); - auto log = &Poco::Logger::get("ADQM"); + auto log = &Poco::Logger::get("KerberosInit"); LOG_DEBUG(log,"Trying to authenticate to Kerberos v5"); krb5_error_code ret; @@ -39,10 +39,10 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con } else { - // Resolve the default ccache and get its type and default principal (if it is initialized). + // Resolve the default cache and get its type and default principal (if it is initialized). ret = krb5_cc_default(k5.ctx, &defcache); if (ret) - throw Exception("Error while getting default ccache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error while getting default cache", ErrorCodes::KERBEROS_ERROR); LOG_DEBUG(log,"Resolved default cache"); deftype = krb5_cc_get_type(k5.ctx, defcache); if (krb5_cc_get_principal(k5.ctx, defcache, &defcache_princ) != 0) @@ -116,7 +116,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con ret = krb5_get_renewed_creds(k5.ctx, &my_creds, k5.me, k5.out_cc, nullptr); if (ret) { - LOG_DEBUG(log,"Renew failed, trying to get initial credentials"); + LOG_DEBUG(log,"Renew failed ({}). Trying to get initial credentials", ret); ret = krb5_get_init_creds_keytab(k5.ctx, &my_creds, k5.me, keytab, 0, nullptr, options); if (ret) throw Exception("Error in getting initial credentials", ErrorCodes::KERBEROS_ERROR); @@ -139,7 +139,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con if (k5.switch_to_cache) { ret = krb5_cc_switch(k5.ctx, k5.out_cc); if (ret) - throw Exception("Error while switching to new ccache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error while switching to new cache", ErrorCodes::KERBEROS_ERROR); } LOG_DEBUG(log,"Authenticated to Kerberos v5"); diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index e3592a7e53b..160c2279d17 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -73,7 +73,7 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration void HDFSBuilderWrapper::runKinit() { - LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: running KerberosInit"); + LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Running KerberosInit"); KerberosInit k_init; try { @@ -81,7 +81,7 @@ void HDFSBuilderWrapper::runKinit() } catch (const DB::Exception & e) { throw Exception("KerberosInit failure: "+ getExceptionMessage(e, false), ErrorCodes::KERBEROS_ERROR); } - LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "ADQM: finished KerberosInit"); + LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Finished KerberosInit"); } HDFSBuilderWrapper createHDFSBuilder(const String & uri_str, const Poco::Util::AbstractConfiguration & config) diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index d8018aebbcc..b473b9fee56 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -519,19 +519,17 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) if (conf.has_property("sasl.kerberos.keytab") && conf.has_property("sasl.kerberos.principal")) { - LOG_DEBUG(log, "ADQM: preparing KerberosInit"); String keytab = conf.get("sasl.kerberos.keytab"); String principal = conf.get("sasl.kerberos.principal"); - LOG_DEBUG(log, "ADQM: keytab: {}, principal: {}", keytab, principal); - LOG_DEBUG(log, "ADQM: running KerberosInit"); + LOG_DEBUG(log, "Running KerberosInit"); KerberosInit k_init; try { k_init.init(keytab,principal); } catch (const Exception & e) { - LOG_ERROR(log, "ADQM: KerberosInit failure: {}", getExceptionMessage(e, false)); + LOG_ERROR(log, "KerberosInit failure: {}", getExceptionMessage(e, false)); } - LOG_DEBUG(log, "ADQM: finished KerberosInit"); + LOG_DEBUG(log, "Finished KerberosInit"); conf.set("sasl.kerberos.kinit.cmd",""); conf.set("sasl.kerberos.min.time.before.relogin","0"); } From 4c560584c700cdffbd66beab89a7e06e7546f646 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Fri, 10 Jun 2022 12:38:39 +0300 Subject: [PATCH 035/525] Code cleanup in KerberosInit and kafka integration tests --- src/Access/KerberosInit.h | 6 ++---- tests/integration/test_storage_kerberized_kafka/test.py | 5 +++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index 48401cbac1b..f5269793c97 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -20,7 +20,7 @@ struct k5_data krb5_context ctx; krb5_ccache in_cc, out_cc; krb5_principal me; - char *name; + char * name; krb5_boolean switch_to_cache; }; @@ -30,11 +30,9 @@ public: int init(const String & keytab_file, const String & principal, const String & cache_name = ""); ~KerberosInit(); private: - //struct k5_data * k5 = nullptr; struct k5_data k5; - //struct k5_data k5d; krb5_ccache defcache = nullptr; - krb5_get_init_creds_opt *options = nullptr; + krb5_get_init_creds_opt * options = nullptr; krb5_creds my_creds; krb5_keytab keytab = nullptr; krb5_principal defcache_princ = nullptr; diff --git a/tests/integration/test_storage_kerberized_kafka/test.py b/tests/integration/test_storage_kerberized_kafka/test.py index 091307a2b01..7856361deda 100644 --- a/tests/integration/test_storage_kerberized_kafka/test.py +++ b/tests/integration/test_storage_kerberized_kafka/test.py @@ -127,6 +127,7 @@ def test_kafka_json_as_string(kafka_cluster): "Parsing of message (topic: kafka_json_as_string, partition: 0, offset: 1) return no rows" ) + def test_kafka_json_as_string_request_new_ticket_after_expiration(kafka_cluster): # Ticket should be expired after the wait time # On run of SELECT query new ticket should be requested and SELECT query should run fine. @@ -155,7 +156,7 @@ def test_kafka_json_as_string_request_new_ticket_after_expiration(kafka_cluster) """ ) - time.sleep(45) # wait for ticket expiration + time.sleep(45) # wait for ticket expiration result = instance.query("SELECT * FROM test.kafka;") expected = """\ @@ -168,6 +169,7 @@ def test_kafka_json_as_string_request_new_ticket_after_expiration(kafka_cluster) "Parsing of message (topic: kafka_json_as_string, partition: 0, offset: 1) return no rows" ) + def test_kafka_json_as_string_no_kdc(kafka_cluster): # When the test is run alone (not preceded by any other kerberized kafka test), # we need a ticket to @@ -222,7 +224,6 @@ def test_kafka_json_as_string_no_kdc(kafka_cluster): assert TSV(result) == TSV(expected) assert instance.contains_in_log("StorageKafka (kafka_no_kdc): Nothing to commit") assert instance.contains_in_log("Ticket expired") - #~ assert instance.contains_in_log("Kerberos ticket refresh failed") assert instance.contains_in_log("KerberosInit failure:") From 9555153f9532fca25145834e5e3f056f0e3f90b4 Mon Sep 17 00:00:00 2001 From: Nicolae Vartolomei Date: Mon, 13 Jun 2022 13:29:08 +0000 Subject: [PATCH 036/525] Throw exception when xml user profile does not exist Closes #26086 --- src/Access/SettingsProfileElement.h | 4 ++++ src/Access/SettingsProfilesCache.cpp | 11 +++++++++-- src/Access/UsersConfigAccessStorage.cpp | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Access/SettingsProfileElement.h b/src/Access/SettingsProfileElement.h index c9f6936c832..e4be0821407 100644 --- a/src/Access/SettingsProfileElement.h +++ b/src/Access/SettingsProfileElement.h @@ -19,6 +19,10 @@ class AccessControl; struct SettingsProfileElement { std::optional parent_profile; + /// parent_profile_xml_name is set only when users are configured via XML + /// and is used for user-friendly error messages. + std::optional parent_profile_xml_name; + String setting_name; Field value; Field min_value; diff --git a/src/Access/SettingsProfilesCache.cpp b/src/Access/SettingsProfilesCache.cpp index 2a3dedbbd7a..37a544cf051 100644 --- a/src/Access/SettingsProfilesCache.cpp +++ b/src/Access/SettingsProfilesCache.cpp @@ -170,8 +170,15 @@ void SettingsProfilesCache::substituteProfiles( continue; auto profile_it = all_profiles.find(profile_id); - if (profile_it == all_profiles.end()) - continue; + if (profile_it == all_profiles.end()) { + /// If the textual profile name is set, then users are configured via XML. + /// For these users we want to throw an exception when their profile can't + /// be found. Otherwise, these users are super admins. + if (element.parent_profile_xml_name) + throw Exception(ErrorCodes::THERE_IS_NO_PROFILE, "There is no profile '{}' in configuration file", *element.parent_profile_xml_name); + else + continue; + } const auto & profile = profile_it->second; const auto & profile_elements = profile->elements; diff --git a/src/Access/UsersConfigAccessStorage.cpp b/src/Access/UsersConfigAccessStorage.cpp index a6c4388fef8..6a2995f2579 100644 --- a/src/Access/UsersConfigAccessStorage.cpp +++ b/src/Access/UsersConfigAccessStorage.cpp @@ -142,6 +142,7 @@ namespace auto profile_name = config.getString(profile_name_config); SettingsProfileElement profile_element; profile_element.parent_profile = generateID(AccessEntityType::SETTINGS_PROFILE, profile_name); + profile_element.parent_profile_xml_name = profile_name; user->settings.push_back(std::move(profile_element)); } @@ -473,6 +474,7 @@ namespace String parent_profile_name = config.getString(profile_config + "." + key); SettingsProfileElement profile_element; profile_element.parent_profile = generateID(AccessEntityType::SETTINGS_PROFILE, parent_profile_name); + profile_element.parent_profile_xml_name = parent_profile_name; profile->elements.emplace_back(std::move(profile_element)); continue; } From fc626b2897d366599239c20751ca51bacc4f138e Mon Sep 17 00:00:00 2001 From: Nikita Mikhaylov Date: Tue, 14 Jun 2022 00:16:28 +0200 Subject: [PATCH 037/525] Update SettingsProfilesCache.cpp --- src/Access/SettingsProfilesCache.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Access/SettingsProfilesCache.cpp b/src/Access/SettingsProfilesCache.cpp index 37a544cf051..959cbb01ea2 100644 --- a/src/Access/SettingsProfilesCache.cpp +++ b/src/Access/SettingsProfilesCache.cpp @@ -170,7 +170,8 @@ void SettingsProfilesCache::substituteProfiles( continue; auto profile_it = all_profiles.find(profile_id); - if (profile_it == all_profiles.end()) { + if (profile_it == all_profiles.end()) + { /// If the textual profile name is set, then users are configured via XML. /// For these users we want to throw an exception when their profile can't /// be found. Otherwise, these users are super admins. From c149c916ec98e9d6a89a9d69a8d0ddb30b9cf6c9 Mon Sep 17 00:00:00 2001 From: zvonand Date: Wed, 15 Jun 2022 11:49:55 +0500 Subject: [PATCH 038/525] initial setup --- .gitmodules | 3 + contrib/CMakeLists.txt | 1 + contrib/base58 | 1 + contrib/base58-cmake/CMakeLists.txt | 22 +++ src/Functions/CMakeLists.txt | 4 + src/Functions/FunctionBase58Conversion.h | 179 ++++++++++++++++++++++ src/Functions/FunctionsBase58.cpp | 23 +++ src/Functions/config_functions.h.in | 1 + src/Functions/configure_config.cmake | 3 + src/Functions/registerFunctionsString.cpp | 12 ++ src/configure_config.cmake | 3 + 11 files changed, 252 insertions(+) create mode 160000 contrib/base58 create mode 100644 contrib/base58-cmake/CMakeLists.txt create mode 100644 src/Functions/FunctionBase58Conversion.h create mode 100644 src/Functions/FunctionsBase58.cpp diff --git a/.gitmodules b/.gitmodules index 55fd684fddb..568dab1eb26 100644 --- a/.gitmodules +++ b/.gitmodules @@ -268,3 +268,6 @@ [submodule "contrib/hashidsxx"] path = contrib/hashidsxx url = https://github.com/schoentoon/hashidsxx.git +[submodule "contrib/base58"] + path = contrib/base58 + url = https://github.com/Kronuz/base-x.git diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 943e0e0ebc1..a356ade7eb8 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -153,6 +153,7 @@ endif() add_contrib (sqlite-cmake sqlite-amalgamation) add_contrib (s2geometry-cmake s2geometry) +add_contrib (base58-cmake base58) # Put all targets defined here and in subdirectories under "contrib/" folders in GUI-based IDEs. # Some of third-party projects may override CMAKE_FOLDER or FOLDER property of their targets, so they would not appear diff --git a/contrib/base58 b/contrib/base58 new file mode 160000 index 00000000000..a85f98fb4ed --- /dev/null +++ b/contrib/base58 @@ -0,0 +1 @@ +Subproject commit a85f98fb4ed52c2f4029a4b6ac1ef0bafdfc56f5 diff --git a/contrib/base58-cmake/CMakeLists.txt b/contrib/base58-cmake/CMakeLists.txt new file mode 100644 index 00000000000..26783e0177d --- /dev/null +++ b/contrib/base58-cmake/CMakeLists.txt @@ -0,0 +1,22 @@ +set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/base58") + +set (SRCS + ${LIBRARY_DIR}/base_x.hh + ${LIBRARY_DIR}/uinteger_t.hh + ) + +add_library(_base58 ${SRCS}) + +target_include_directories(_base58 SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}) + +if (XCODE OR XCODE_VERSION) + # https://gitlab.kitware.com/cmake/cmake/issues/17457 + # Some native build systems may not like targets that have only object files, so consider adding at least one real source file + # This applies to Xcode. + if (NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/dummy.c") + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.c" "") + endif () + target_sources(_base58 PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/dummy.c") +endif () + +add_library(ch_contrib::base58 ALIAS _base58) \ No newline at end of file diff --git a/src/Functions/CMakeLists.txt b/src/Functions/CMakeLists.txt index 60386908f01..bf72795aae0 100644 --- a/src/Functions/CMakeLists.txt +++ b/src/Functions/CMakeLists.txt @@ -72,6 +72,10 @@ if (TARGET ch_contrib::llvm) target_link_libraries(clickhouse_functions PRIVATE ch_contrib::llvm) endif () +if (TARGET ch_contrib::base58) + target_link_libraries(clickhouse_functions PRIVATE ch_contrib::base58) +endif() + if (TARGET ch_contrib::base64) target_link_libraries(clickhouse_functions PRIVATE ch_contrib::base64) endif() diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h new file mode 100644 index 00000000000..fd1bc81842f --- /dev/null +++ b/src/Functions/FunctionBase58Conversion.h @@ -0,0 +1,179 @@ +#pragma once +#include "config_functions.h" + +#if USE_BASE58 +# include +# include +# include +# include +# include +# include +# include +# include +# include + + +namespace DB +{ +using namespace GatherUtils; + +namespace ErrorCodes +{ + extern const int ILLEGAL_COLUMN; + extern const int ILLEGAL_TYPE_OF_ARGUMENT; + extern const int INCORRECT_DATA; + extern const int BAD_ARGUMENTS; +} + +struct Base58Encode +{ + static constexpr auto name = "base58Encode"; + static size_t getBufferSize(size_t string_length, size_t string_count) + { + return ((string_length - string_count) / 3 + string_count) * 4 + string_count; + } + + void process(ColumnString source, ColumnString result, std::string alphabet) + { + + } +}; + +struct Base58Decode +{ + static constexpr auto name = "base58Decode"; + + static size_t getBufferSize(size_t string_length, size_t string_count) + { + return ((string_length - string_count) / 4 + string_count) * 3 + string_count; + } +}; + +struct TryBase58Decode +{ + static constexpr auto name = "tryBase58Decode"; + + static size_t getBufferSize(size_t string_length, size_t string_count) + { + return Base58Decode::getBufferSize(string_length, string_count); + } +}; + +template +class FunctionBase58Conversion : public IFunction +{ +public: + static constexpr auto name = Func::name; + + static FunctionPtr create(ContextPtr) + { + return std::make_shared(); + } + + String getName() const override + { + return Func::name; + } + + bool isVariadic() const override { return true; } + + size_t getNumberOfArguments() const override { return 0; } + + bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return true; } + + bool useDefaultImplementationForConstants() const override { return true; } + + ColumnNumbers getArgumentsThatAreAlwaysConstant() const override { return {1}; } + + DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override + { + if (arguments.size() != 1 || arguments.size() != 2) + throw Exception( + "Wrong number of arguments for function " + getName() + ": " + arguments.size() + " provided, 1 or 2 expected.", + ErrorCodes::BAD_ARGUMENTS); + + if (!isString(arguments[0].type)) + throw Exception( + "Illegal type " + arguments[0].type->getName() + " of 1st argument of function " + getName() + ". Must be String.", + ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + + if (!isString(arguments[1].type)) + throw Exception( + "Illegal type " + arguments[1].type->getName() + " of 2nd argument of function " + getName() + ". Must be String.", + ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + + return std::make_shared(); + } + + ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t input_rows_count) const override + { + const ColumnPtr column_string = arguments[0].column; + const ColumnString * input = checkAndGetColumn(column_string.get()); + if (!input) + throw Exception( + "Illegal column " + arguments[0].column->getName() + " of first argument of function " + getName(), + ErrorCodes::ILLEGAL_COLUMN); + + std::string alphabet = "bitcoin"; + + if (arguments.size() == 2) + { + const auto * alphabet_column = checkAndGetColumn(arguments[1].column.get()); + + if (!alphabet_column) + throw Exception("Second argument for function " + getName() + " must be constant String", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + + if (alphabet = alphabet_column->getValue(); alphabet != "bitcoin" && alphabet != "ripple" && alphabet != "flickr" && alphabet != "gmp") + throw Exception("Second argument for function " + getName() + " must be 'bitcoin', 'ripple', 'flickr' or 'gmp'", ErrorCodes::ILLEGAL_COLUMN); + + } + + auto dst_column = ColumnString::create(); + auto & dst_data = dst_column->getChars(); + auto & dst_offsets = dst_column->getOffsets(); + + size_t reserve = Func::getBufferSize(input->getChars().size(), input->size()); + dst_data.resize(reserve); + dst_offsets.resize(input_rows_count); + + const ColumnString::Offsets & src_offsets = input->getOffsets(); + + const auto * source = input->getChars().data(); + auto * dst = dst_data.data(); + auto * dst_pos = dst; + + size_t src_offset_prev = 0; + + for (size_t row = 0; row < input_rows_count; ++row) + { + size_t srclen = src_offsets[row] - src_offset_prev - 1; + size_t outlen = 0; + + if constexpr (std::is_same_v) + { + Base58:: + } + else if constexpr (std::is_same_v) + { + } + else + { + } + + source += srclen + 1; + dst_pos += outlen; + *dst_pos = '\0'; + dst_pos += 1; + + dst_offsets[row] = dst_pos - dst; + src_offset_prev = src_offsets[row]; + } + + dst_data.resize(dst_pos - dst); + + return dst_column; + } +}; +} + +#endif diff --git a/src/Functions/FunctionsBase58.cpp b/src/Functions/FunctionsBase58.cpp new file mode 100644 index 00000000000..efd3f42c6da --- /dev/null +++ b/src/Functions/FunctionsBase58.cpp @@ -0,0 +1,23 @@ +#include +#if USE_BASE58 +#include +#include + +namespace DB +{ +void registerFunctionBase58Encode(FunctionFactory & factory) +{ + factory.registerFunction>(); +} + +void registerFunctionBase58Decode(FunctionFactory & factory) +{ + factory.registerFunction>(); +} + +void registerFunctionTryBase58Decode(FunctionFactory & factory) +{ + factory.registerFunction>(); +} +} +#endif diff --git a/src/Functions/config_functions.h.in b/src/Functions/config_functions.h.in index a693611f975..001712d5cef 100644 --- a/src/Functions/config_functions.h.in +++ b/src/Functions/config_functions.h.in @@ -2,6 +2,7 @@ // .h autogenerated by cmake! +#cmakedefine01 USE_BASE58 #cmakedefine01 USE_BASE64 #cmakedefine01 USE_SIMDJSON #cmakedefine01 USE_RAPIDJSON diff --git a/src/Functions/configure_config.cmake b/src/Functions/configure_config.cmake index 7615a2eeeaf..776996d7e17 100644 --- a/src/Functions/configure_config.cmake +++ b/src/Functions/configure_config.cmake @@ -1,6 +1,9 @@ if (TARGET ch_contrib::fastops) set(USE_FASTOPS 1) endif() +if (TARGET ch_contrib::base58) + set(USE_BASE58 1) +endif() if (TARGET ch_contrib::base64) set(USE_BASE64 1) endif() diff --git a/src/Functions/registerFunctionsString.cpp b/src/Functions/registerFunctionsString.cpp index f86043c6959..2e2975a459c 100644 --- a/src/Functions/registerFunctionsString.cpp +++ b/src/Functions/registerFunctionsString.cpp @@ -49,6 +49,12 @@ void registerFunctionBase64Decode(FunctionFactory &); void registerFunctionTryBase64Decode(FunctionFactory &); #endif +#if USE_BASE58 +void registerFunctionBase58Encode(FunctionFactory &); +void registerFunctionBase58Decode(FunctionFactory &); +void registerFunctionTryBase58Decode(FunctionFactory &); +#endif + #if USE_NLP void registerFunctionStem(FunctionFactory &); void registerFunctionSynonyms(FunctionFactory &); @@ -105,6 +111,12 @@ void registerFunctionsString(FunctionFactory & factory) registerFunctionTryBase64Decode(factory); #endif +#if USE_BASE58 + registerFunctionBase58Encode(factory); + registerFunctionBase58Decode(factory); + registerFunctionTryBase58Decode(factory); +#endif + #if USE_NLP registerFunctionStem(factory); registerFunctionSynonyms(factory); diff --git a/src/configure_config.cmake b/src/configure_config.cmake index 519307ba28a..fc2a858e75a 100644 --- a/src/configure_config.cmake +++ b/src/configure_config.cmake @@ -55,6 +55,9 @@ endif() if (TARGET ch_contrib::base64) set(USE_BASE64 1) endif() +if (TARGET ch_contrib::base58) + set(USE_BASE58 1) +endif() if (TARGET ch_contrib::yaml_cpp) set(USE_YAML_CPP 1) endif() From 9bf6b9d491fa5e8bba23a61fcca0a004b6c66451 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 15 Jun 2022 11:37:02 +0300 Subject: [PATCH 039/525] Add kinit presence handling in StorageKafka; Cleanup code in HDFSCommon --- src/Storages/HDFS/HDFSCommon.cpp | 4 +++- src/Storages/Kafka/StorageKafka.cpp | 12 +++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 160c2279d17..3ade1b1cfdf 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -78,7 +78,9 @@ void HDFSBuilderWrapper::runKinit() try { k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal,hadoop_security_kerberos_ticket_cache_path); - } catch (const DB::Exception & e) { + } + catch (const DB::Exception & e) + { throw Exception("KerberosInit failure: "+ getExceptionMessage(e, false), ErrorCodes::KERBEROS_ERROR); } LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Finished KerberosInit"); diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index b473b9fee56..39b8adfbec4 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -517,6 +517,12 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) if (config.has(config_prefix)) loadFromConfig(conf, config, config_prefix); + if (conf.has_property("sasl.kerberos.kinit.cmd")) + LOG_WARNING(log, "kinit executable is not allowed."); + + conf.set("sasl.kerberos.kinit.cmd",""); + conf.set("sasl.kerberos.min.time.before.relogin","0"); + if (conf.has_property("sasl.kerberos.keytab") && conf.has_property("sasl.kerberos.principal")) { String keytab = conf.get("sasl.kerberos.keytab"); @@ -526,12 +532,12 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) try { k_init.init(keytab,principal); - } catch (const Exception & e) { + } + catch (const Exception & e) + { LOG_ERROR(log, "KerberosInit failure: {}", getExceptionMessage(e, false)); } LOG_DEBUG(log, "Finished KerberosInit"); - conf.set("sasl.kerberos.kinit.cmd",""); - conf.set("sasl.kerberos.min.time.before.relogin","0"); } // Update consumer topic-specific configuration From dd5b0ee0656c6b10f25920f8557c2ef9f2b08260 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 15 Jun 2022 17:02:53 +0300 Subject: [PATCH 040/525] Add kerberosInit() function to call KeberosInit --- src/Access/KerberosInit.cpp | 36 +++++++++++++++++++++++---- src/Access/KerberosInit.h | 25 +------------------ src/Access/examples/kerberos_init.cpp | 3 +-- src/Storages/HDFS/HDFSCommon.cpp | 3 +-- src/Storages/Kafka/StorageKafka.cpp | 3 +-- 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 549520e63ea..95633dea077 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -7,13 +7,31 @@ using namespace DB; -std::mutex KerberosInit::kinit_mtx; +struct k5_data +{ + krb5_context ctx; + krb5_ccache in_cc, out_cc; + krb5_principal me; + char * name; + krb5_boolean switch_to_cache; +}; + +class KerberosInit +{ +public: + int init(const String & keytab_file, const String & principal, const String & cache_name = ""); + ~KerberosInit(); +private: + struct k5_data k5; + krb5_ccache defcache = nullptr; + krb5_get_init_creds_opt * options = nullptr; + krb5_creds my_creds; + krb5_keytab keytab = nullptr; + krb5_principal defcache_princ = nullptr; +}; int KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) { - // Using mutex to prevent cache file corruptions - std::unique_lock lck(kinit_mtx); - auto log = &Poco::Logger::get("KerberosInit"); LOG_DEBUG(log,"Trying to authenticate to Kerberos v5"); @@ -148,7 +166,6 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con KerberosInit::~KerberosInit() { - std::unique_lock lck(kinit_mtx); if (k5.ctx) { if (defcache) @@ -172,3 +189,12 @@ KerberosInit::~KerberosInit() krb5_free_context(k5.ctx); } } + +int kerberosInit(const String & keytab_file, const String & principal, const String & cache_name) +{ + // Using mutex to prevent cache file corruptions + static std::mutex kinit_mtx; + std::unique_lock lck(kinit_mtx); + KerberosInit k_init; + return k_init.init(keytab_file, principal, cache_name); +} diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index f5269793c97..94910661056 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -15,27 +15,4 @@ namespace ErrorCodes } } -struct k5_data -{ - krb5_context ctx; - krb5_ccache in_cc, out_cc; - krb5_principal me; - char * name; - krb5_boolean switch_to_cache; -}; - -class KerberosInit -{ -public: - int init(const String & keytab_file, const String & principal, const String & cache_name = ""); - ~KerberosInit(); -private: - struct k5_data k5; - krb5_ccache defcache = nullptr; - krb5_get_init_creds_opt * options = nullptr; - krb5_creds my_creds; - krb5_keytab keytab = nullptr; - krb5_principal defcache_princ = nullptr; - static std::mutex kinit_mtx; -}; - +int kerberosInit(const String & keytab_file, const String & principal, const String & cache_name = ""); diff --git a/src/Access/examples/kerberos_init.cpp b/src/Access/examples/kerberos_init.cpp index 49923e81fd7..9a42a9e00e5 100644 --- a/src/Access/examples/kerberos_init.cpp +++ b/src/Access/examples/kerberos_init.cpp @@ -26,10 +26,9 @@ int main(int argc, char ** argv) Poco::Logger::root().setChannel(app_channel); Poco::Logger::root().setLevel("trace"); - KerberosInit k_init; try { - k_init.init(argv[1], argv[2], cache_name); + kerberosInit(argv[1], argv[2], cache_name); } catch (const Exception & e) { std::cout << "KerberosInit failure: " << getExceptionMessage(e, false) << "\n"; return -1; diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 3ade1b1cfdf..9d3cb2353b6 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -74,10 +74,9 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration void HDFSBuilderWrapper::runKinit() { LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Running KerberosInit"); - KerberosInit k_init; try { - k_init.init(hadoop_kerberos_keytab,hadoop_kerberos_principal,hadoop_security_kerberos_ticket_cache_path); + kerberosInit(hadoop_kerberos_keytab,hadoop_kerberos_principal,hadoop_security_kerberos_ticket_cache_path); } catch (const DB::Exception & e) { diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index 39b8adfbec4..789df36fcf0 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -528,10 +528,9 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) String keytab = conf.get("sasl.kerberos.keytab"); String principal = conf.get("sasl.kerberos.principal"); LOG_DEBUG(log, "Running KerberosInit"); - KerberosInit k_init; try { - k_init.init(keytab,principal); + kerberosInit(keytab,principal); } catch (const Exception & e) { From 1c26424371adc53f8eefd8d0e3cc604954be089e Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 15 Jun 2022 19:35:21 +0300 Subject: [PATCH 041/525] Change message in StorageKafka; Code style correction --- src/Access/KerberosInit.cpp | 3 ++- src/Storages/Kafka/StorageKafka.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 95633dea077..6c4927dd4fa 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -154,7 +154,8 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con LOG_DEBUG(log,"Stored credentials"); } - if (k5.switch_to_cache) { + if (k5.switch_to_cache) + { ret = krb5_cc_switch(k5.ctx, k5.out_cc); if (ret) throw Exception("Error while switching to new cache", ErrorCodes::KERBEROS_ERROR); diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index 789df36fcf0..b4072cd6c0e 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -518,7 +518,7 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) loadFromConfig(conf, config, config_prefix); if (conf.has_property("sasl.kerberos.kinit.cmd")) - LOG_WARNING(log, "kinit executable is not allowed."); + LOG_WARNING(log, "sasl.kerberos.kinit.cmd configuration parameter is ignored."); conf.set("sasl.kerberos.kinit.cmd",""); conf.set("sasl.kerberos.min.time.before.relogin","0"); From 89a659e738a6a7236300f918b508ad0273745304 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 15 Jun 2022 20:08:16 +0300 Subject: [PATCH 042/525] Move krb header files from KerberosInit.h to KerberosInit.cpp --- src/Access/KerberosInit.cpp | 2 ++ src/Access/KerberosInit.h | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 6c4927dd4fa..4fcb280f033 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -4,6 +4,8 @@ #include #include #include +#include +#include using namespace DB; diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index 94910661056..60f959ab4ba 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -4,9 +4,6 @@ #include -#include -#include - namespace DB { namespace ErrorCodes From 344fbe8de4038ec6f93d67eb3455eda1ad82ce87 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 15 Jun 2022 20:26:42 +0300 Subject: [PATCH 043/525] Fix code style --- src/Access/KerberosInit.cpp | 10 +++++++++- src/Access/KerberosInit.h | 8 -------- src/Access/examples/kerberos_init.cpp | 6 ++++-- src/Storages/HDFS/HDFSCommon.cpp | 1 + 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 4fcb280f033..304bb69d424 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -9,6 +9,14 @@ using namespace DB; +namespace DB +{ +namespace ErrorCodes +{ + extern const int KERBEROS_ERROR; +} +} + struct k5_data { krb5_context ctx; @@ -145,7 +153,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con } else { - LOG_DEBUG(log,"Successfull renewal"); + LOG_DEBUG(log,"Successful renewal"); ret = krb5_cc_initialize(k5.ctx, k5.out_cc, k5.me); if (ret) throw Exception("Error when initializing cache", ErrorCodes::KERBEROS_ERROR); diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index 60f959ab4ba..cfbbfc2e7d8 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -4,12 +4,4 @@ #include -namespace DB -{ -namespace ErrorCodes -{ - extern const int KERBEROS_ERROR; -} -} - int kerberosInit(const String & keytab_file, const String & principal, const String & cache_name = ""); diff --git a/src/Access/examples/kerberos_init.cpp b/src/Access/examples/kerberos_init.cpp index 9a42a9e00e5..4868182fba2 100644 --- a/src/Access/examples/kerberos_init.cpp +++ b/src/Access/examples/kerberos_init.cpp @@ -29,8 +29,10 @@ int main(int argc, char ** argv) try { kerberosInit(argv[1], argv[2], cache_name); - } catch (const Exception & e) { - std::cout << "KerberosInit failure: " << getExceptionMessage(e, false) << "\n"; + } + catch (const Exception & e) + { + std::cout << "KerberosInit failure: " << getExceptionMessage(e, false) << "\n"; return -1; } std::cout << "Done" << "\n"; diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 9d3cb2353b6..8134aaf4981 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -21,6 +21,7 @@ namespace ErrorCodes extern const int NETWORK_ERROR; extern const int EXCESSIVE_ELEMENT_IN_CONFIG; extern const int NO_ELEMENTS_IN_CONFIG; + extern const int KERBEROS_ERROR; } const String HDFSBuilderWrapper::CONFIG_PREFIX = "hdfs"; From 4f13521aa6de2fc6813214307da5e4c83ded9ea5 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Wed, 15 Jun 2022 14:50:47 +0800 Subject: [PATCH 044/525] struct type support for storage hive --- .../hive_server/prepare_hive_data.sh | 5 +++ src/DataTypes/NestedUtils.cpp | 22 +++++++++++-- src/Storages/Hive/StorageHive.cpp | 21 +++++++++--- src/Storages/Hive/StorageHive.h | 2 ++ tests/integration/test_hive_query/test.py | 33 +++++++++++++++++++ 5 files changed, 75 insertions(+), 8 deletions(-) diff --git a/docker/test/integration/hive_server/prepare_hive_data.sh b/docker/test/integration/hive_server/prepare_hive_data.sh index 8126b975612..cee5581e2db 100755 --- a/docker/test/integration/hive_server/prepare_hive_data.sh +++ b/docker/test/integration/hive_server/prepare_hive_data.sh @@ -8,3 +8,8 @@ hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.demo pa hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '00' as hour from test.demo;" hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '01' as hour from test.demo;" + +hive -e "CREATE TABLE test.test_hive_types( f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_array_int array, f_array_string array, f_array_float array, f_map_int map, f_map_string map, f_map_float map, f_struct struct) PARTITIONED BY( day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';" + +hive -e "insert into test.test_hive_types partition(day='2022-02-20') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-20 14:47:04', '2022-02-20', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3)); insert into test.test_hive_types partition(day='2022-02-19') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-19 14:47:04', '2022-02-19', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3));" + diff --git a/src/DataTypes/NestedUtils.cpp b/src/DataTypes/NestedUtils.cpp index 20aae08f363..db66d4d979b 100644 --- a/src/DataTypes/NestedUtils.cpp +++ b/src/DataTypes/NestedUtils.cpp @@ -17,7 +17,6 @@ #include - namespace DB { @@ -76,8 +75,7 @@ Block flatten(const Block & block) for (const auto & elem : block) { - const DataTypeArray * type_arr = typeid_cast(elem.type.get()); - if (type_arr) + if (const DataTypeArray * type_arr = typeid_cast(elem.type.get())) { const DataTypeTuple * type_tuple = typeid_cast(type_arr->getNestedType().get()); if (type_tuple && type_tuple->haveExplicitNames()) @@ -114,6 +112,24 @@ Block flatten(const Block & block) else res.insert(elem); } + else if (const DataTypeTuple * type_tuple = typeid_cast(elem.type.get())) + { + if (type_tuple->haveExplicitNames()) + { + const DataTypes & element_types = type_tuple->getElements(); + const Strings & names = type_tuple->getElementNames(); + const ColumnTuple * column_tuple = typeid_cast(elem.column.get()); + size_t tuple_size = column_tuple->tupleSize(); + for (size_t i = 0; i < tuple_size; ++i) + { + const auto & element_column = column_tuple->getColumn(i); + String nested_name = concatenateName(elem.name, names[i]); + res.insert(ColumnWithTypeAndName(element_column.getPtr(), element_types[i], nested_name)); + } + } + else + res.insert(elem); + } else res.insert(elem); } diff --git a/src/Storages/Hive/StorageHive.cpp b/src/Storages/Hive/StorageHive.cpp index 6046dd58677..bc65ab2fd97 100644 --- a/src/Storages/Hive/StorageHive.cpp +++ b/src/Storages/Hive/StorageHive.cpp @@ -37,6 +37,8 @@ #include #include #include +#include +#include namespace DB { @@ -563,8 +565,8 @@ HiveFiles StorageHive::collectHiveFilesFromPartition( const ContextPtr & context_, PruneLevel prune_level) const { - LOG_DEBUG( - log, "Collect hive files from partition {}, prune_level:{}", boost::join(partition.values, ","), pruneLevelToString(prune_level)); + //LOG_DEBUG( + // log, "Collect hive files from partition {}, prune_level:{}", boost::join(partition.values, ","), pruneLevelToString(prune_level)); /// Skip partition "__HIVE_DEFAULT_PARTITION__" bool has_default_partition = false; @@ -766,8 +768,13 @@ Pipe StorageHive::read( sources_info->hive_metastore_client = hive_metastore_client; sources_info->partition_name_types = partition_name_types; - Block sample_block; const auto header_block = storage_snapshot->metadata->getSampleBlock(); + bool support_subset_columns = supportsSubsetOfColumns(); + Block flatten_block; + if (support_subset_columns) + flatten_block = Nested::flatten(header_block); + + Block sample_block; for (const auto & column : column_names) { if (header_block.has(column)) @@ -775,13 +782,17 @@ Pipe StorageHive::read( sample_block.insert(header_block.getByName(column)); continue; } - + else if (support_subset_columns && flatten_block.has(column)) + { + sample_block.insert(flatten_block.getByName(column)); + continue; + } if (column == "_path") sources_info->need_path_column = true; if (column == "_file") sources_info->need_file_column = true; } - + LOG_TRACE(&Poco::Logger::get("StorageHive"), "sample_block={}", sample_block.dumpNames()); if (num_streams > sources_info->hive_files.size()) num_streams = sources_info->hive_files.size(); diff --git a/src/Storages/Hive/StorageHive.h b/src/Storages/Hive/StorageHive.h index d92d2dbd745..2f69ae00b6e 100644 --- a/src/Storages/Hive/StorageHive.h +++ b/src/Storages/Hive/StorageHive.h @@ -42,6 +42,8 @@ public: String getName() const override { return "Hive"; } bool supportsIndexForIn() const override { return true; } + + bool supportsSubcolumns() const override { return true; } bool mayBenefitFromIndexForIn( const ASTPtr & /* left_in_operand */, ContextPtr /* query_context */, diff --git a/tests/integration/test_hive_query/test.py b/tests/integration/test_hive_query/test.py index fd4d91d6f78..00aaaec7afe 100644 --- a/tests/integration/test_hive_query/test.py +++ b/tests/integration/test_hive_query/test.py @@ -400,3 +400,36 @@ def test_cache_dir_use(started_cluster): ["bash", "-c", "ls /tmp/clickhouse_local_cache1 | wc -l"] ) assert result0 != "0" and result1 != "0" + +def test_cache_dir_use(started_cluster): + node = started_cluster.instances["h0_0_0"] + result0 = node.exec_in_container( + ["bash", "-c", "ls /tmp/clickhouse_local_cache | wc -l"] + ) + result1 = node.exec_in_container( + ["bash", "-c", "ls /tmp/clickhouse_local_cache1 | wc -l"] + ) + assert result0 != "0" and result1 != "0" + +def test_hive_struct_type(started_cluster): + node = started_cluster.instances["h0_0_0"] + result = node.query( + """ + CREATE TABLE IF NOT EXISTS default.test_hive_types (`f_tinyint` Int8, `f_smallint` Int16, `f_int` Int32, `f_integer` Int32, `f_bigint` Int64, `f_float` Float32, `f_double` Float64, `f_decimal` Float64, `f_timestamp` DateTime, `f_date` Date, `f_string` String, `f_varchar` String, `f_char` String, `f_bool` Boolean, `f_array_int` Array(Int32), `f_array_string` Array(String), `f_array_float` Array(Float32), `f_map_int` Map(String, Int32), `f_map_string` Map(String, String), `f_map_float` Map(String, Float32), `f_struct` Tuple(a String, b Int32, c Float32), `day` String) ENGINE = Hive('thrift://hivetest:9083', 'test', 'test_hive_types') PARTITION BY (day) + """ + ) + result = node.query( + """ + SELECT * FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 + """ + ) + expected_result = """1 2 3 4 5 6.11 7.22 8 2022-02-20 14:47:04 2022-02-20 hello world hello world hello world true [1,2,3] ['hello world','hello world'] [1.1,1.2] {'a':100,'b':200,'c':300} {'a':'aa','b':'bb','c':'cc'} {'a':111.1,'b':222.2,'c':333.3} ('aaa',200,333.3) 2022-02-20""" + assert result.strip() == expected_result + + result = node.query( + """ + SELECT day, f_struct.a FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 + """ + ) + expected_result = """2022-02-20 aaa""" + assert result.strip() == expected_result From 655e42c9bcd9c4fe409f0d72f30b6697f2a57eeb Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 16 Jun 2022 09:44:41 +0800 Subject: [PATCH 045/525] remove trace logs --- src/Storages/Hive/StorageHive.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Storages/Hive/StorageHive.cpp b/src/Storages/Hive/StorageHive.cpp index bc65ab2fd97..0135da97445 100644 --- a/src/Storages/Hive/StorageHive.cpp +++ b/src/Storages/Hive/StorageHive.cpp @@ -792,7 +792,7 @@ Pipe StorageHive::read( if (column == "_file") sources_info->need_file_column = true; } - LOG_TRACE(&Poco::Logger::get("StorageHive"), "sample_block={}", sample_block.dumpNames()); + if (num_streams > sources_info->hive_files.size()) num_streams = sources_info->hive_files.size(); From e115e3f7311400d0e3c1af2b4dfb13bd3ad617f5 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 16 Jun 2022 09:53:04 +0800 Subject: [PATCH 046/525] remove unused header --- src/Storages/Hive/StorageHive.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Storages/Hive/StorageHive.cpp b/src/Storages/Hive/StorageHive.cpp index 0135da97445..ab2b1ef7a09 100644 --- a/src/Storages/Hive/StorageHive.cpp +++ b/src/Storages/Hive/StorageHive.cpp @@ -38,7 +38,6 @@ #include #include #include -#include namespace DB { From 35d534c213faf5abde296dc041737d8970d0d2f3 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 16 Jun 2022 16:16:34 +0800 Subject: [PATCH 047/525] nested struct in struct --- .../hive_server/prepare_hive_data.sh | 4 +- src/DataTypes/NestedUtils.cpp | 68 +++++++++++++++- src/DataTypes/NestedUtils.h | 13 +++ .../Formats/Impl/ArrowColumnToCHColumn.cpp | 81 ++++++++++--------- src/Storages/Hive/StorageHive.cpp | 24 ++++-- tests/integration/test_hive_query/test.py | 6 +- 6 files changed, 145 insertions(+), 51 deletions(-) diff --git a/docker/test/integration/hive_server/prepare_hive_data.sh b/docker/test/integration/hive_server/prepare_hive_data.sh index cee5581e2db..39d435eb05a 100755 --- a/docker/test/integration/hive_server/prepare_hive_data.sh +++ b/docker/test/integration/hive_server/prepare_hive_data.sh @@ -9,7 +9,7 @@ hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.demo pa hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '00' as hour from test.demo;" hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '01' as hour from test.demo;" -hive -e "CREATE TABLE test.test_hive_types( f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_array_int array, f_array_string array, f_array_float array, f_map_int map, f_map_string map, f_map_float map, f_struct struct) PARTITIONED BY( day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';" +hive -e "CREATE TABLE test.test_hive_types( f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_array_int array, f_array_string array, f_array_float array, f_map_int map, f_map_string map, f_map_float map, f_struct struct>) PARTITIONED BY( day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';" -hive -e "insert into test.test_hive_types partition(day='2022-02-20') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-20 14:47:04', '2022-02-20', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3)); insert into test.test_hive_types partition(day='2022-02-19') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-19 14:47:04', '2022-02-19', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3));" +hive -e "insert into test.test_hive_types partition(day='2022-02-20') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-20 14:47:04', '2022-02-20', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3), 'd', named_struct('x', 10, 'y', 'xyz')); insert into test.test_hive_types partition(day='2022-02-19') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-19 14:47:04', '2022-02-19', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3), 'd', named_struct('x', 11, 'y', 'abc'));" diff --git a/src/DataTypes/NestedUtils.cpp b/src/DataTypes/NestedUtils.cpp index db66d4d979b..0df664ad408 100644 --- a/src/DataTypes/NestedUtils.cpp +++ b/src/DataTypes/NestedUtils.cpp @@ -1,4 +1,5 @@ #include +#include #include #include @@ -259,7 +260,72 @@ std::unordered_set getAllTableNames(const Block & block, bool to_lower_c } return nested_table_names; } - } +NestedColumnExtractHelper::NestedColumnExtractHelper(const Block & block_, bool case_insentive_) + : block(block_) + , case_insentive(case_insentive_) +{} + +std::optional NestedColumnExtractHelper::extractColumn(const String & column_name) +{ + if (block.has(column_name, case_insentive)) + return {block.getByName(column_name, case_insentive)}; + + auto nested_names = Nested::splitName(column_name); + if (case_insentive) + { + boost::to_lower(nested_names.first); + boost::to_lower(nested_names.second); + } + if (!block.has(nested_names.first, case_insentive)) + return {}; + + if (!nested_tables.contains(nested_names.first)) + { + ColumnsWithTypeAndName columns = {block.getByName(nested_names.first, case_insentive)}; + nested_tables[nested_names.first] = std::make_shared(Nested::flatten(columns)); + } + + return extractColumn(column_name, nested_names.first, nested_names.second); +} + +std::optional NestedColumnExtractHelper::extractColumn( + const String & original_column_name, const String & column_name_prefix, const String & column_name_suffix) +{ + auto table_iter = nested_tables.find(column_name_prefix); + if (table_iter == nested_tables.end()) + { + return {}; + } + + auto & nested_table = table_iter->second; + auto nested_names = Nested::splitName(column_name_suffix); + auto new_column_name_prefix = Nested::concatenateName(column_name_prefix, nested_names.first); + if (nested_names.second.empty()) + { + if (nested_table->has(new_column_name_prefix, case_insentive)) + { + ColumnWithTypeAndName column = nested_table->getByName(new_column_name_prefix, case_insentive); + if (case_insentive) + column.name = original_column_name; + return {column}; + } + else + { + return {}; + } + } + + if (!nested_table->has(new_column_name_prefix, case_insentive)) + { + return {}; + } + + ColumnsWithTypeAndName columns = {nested_table->getByName(new_column_name_prefix, case_insentive)}; + Block sub_block(columns); + nested_tables[new_column_name_prefix] = std::make_shared(Nested::flatten(sub_block)); + return extractColumn(original_column_name, new_column_name_prefix, nested_names.second); + +} } diff --git a/src/DataTypes/NestedUtils.h b/src/DataTypes/NestedUtils.h index f6dc42d5c58..39f73b65100 100644 --- a/src/DataTypes/NestedUtils.h +++ b/src/DataTypes/NestedUtils.h @@ -35,4 +35,17 @@ namespace Nested std::unordered_set getAllTableNames(const Block & block, bool to_lower_case = false); } +class NestedColumnExtractHelper +{ +public: + explicit NestedColumnExtractHelper(const Block & block_, bool case_insentive_); + std::optional extractColumn(const String & column_name); +private: + std::optional + extractColumn(const String & original_column_name, const String & column_name_prefix, const String & column_name_suffix); + const Block & block; + bool case_insentive; + std::map nested_tables; +}; + } diff --git a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp index c792d828e44..da89d6f7321 100644 --- a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp +++ b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp @@ -1,4 +1,6 @@ #include "ArrowColumnToCHColumn.h" +#include +#include #if USE_ARROW || USE_ORC || USE_PARQUET @@ -602,8 +604,8 @@ void ArrowColumnToCHColumn::arrowColumnsToCHChunk(Chunk & res, NameToColumnPtr & Columns columns_list; UInt64 num_rows = name_to_column_ptr.begin()->second->length(); - columns_list.reserve(header.rows()); - std::unordered_map nested_tables; + columns_list.reserve(header.columns()); + std::unordered_map>> nested_tables; bool skipped = false; for (size_t column_i = 0, columns = header.columns(); column_i < columns; ++column_i) { @@ -613,55 +615,57 @@ void ArrowColumnToCHColumn::arrowColumnsToCHChunk(Chunk & res, NameToColumnPtr & if (case_insensitive_matching) boost::to_lower(search_column_name); - bool read_from_nested = false; - String nested_table_name = Nested::extractTableName(header_column.name); - String search_nested_table_name = nested_table_name; - if (case_insensitive_matching) - boost::to_lower(search_nested_table_name); - + ColumnWithTypeAndName column; if (!name_to_column_ptr.contains(search_column_name)) { + bool read_from_nested = false; /// Check if it's a column from nested table. - if (import_nested && name_to_column_ptr.contains(search_nested_table_name)) + if (import_nested) { - if (!nested_tables.contains(search_nested_table_name)) + String nested_table_name = Nested::extractTableName(header_column.name); + String search_nested_table_name = nested_table_name; + if (case_insensitive_matching) + boost::to_lower(search_nested_table_name); + if (name_to_column_ptr.contains(search_nested_table_name)) { - std::shared_ptr arrow_column = name_to_column_ptr[search_nested_table_name]; - ColumnsWithTypeAndName cols - = {readColumnFromArrowColumn(arrow_column, nested_table_name, format_name, false, dictionary_values, true, true, false, skipped)}; - Block block(cols); - nested_tables[search_nested_table_name] = std::make_shared(Nested::flatten(block)); + if (!nested_tables.contains(search_nested_table_name)) + { + std::shared_ptr arrow_column = name_to_column_ptr[search_nested_table_name]; + ColumnsWithTypeAndName cols = {readColumnFromArrowColumn( + arrow_column, nested_table_name, format_name, false, dictionary_values, true, true, false, skipped)}; + BlockPtr block_ptr = std::make_shared(cols); + auto column_extractor = std::make_shared(*block_ptr, case_insensitive_matching); + nested_tables[search_nested_table_name] = {block_ptr, column_extractor}; + } + auto nested_column = nested_tables[search_nested_table_name].second->extractColumn(search_column_name); + if (nested_column) + { + column = *nested_column; + if (case_insensitive_matching) + column.name = header_column.name; + read_from_nested = true; + } } - - read_from_nested = nested_tables[search_nested_table_name]->has(header_column.name, case_insensitive_matching); } - if (!read_from_nested) { if (!allow_missing_columns) throw Exception{ErrorCodes::THERE_IS_NO_COLUMN, "Column '{}' is not presented in input data.", header_column.name}; - - ColumnWithTypeAndName column; - column.name = header_column.name; - column.type = header_column.type; - column.column = header_column.column->cloneResized(num_rows); - columns_list.push_back(std::move(column.column)); - continue; + else + { + column.name = header_column.name; + column.type = header_column.type; + column.column = header_column.column->cloneResized(num_rows); + columns_list.push_back(std::move(column.column)); + continue; + } } } - - - ColumnWithTypeAndName column; - if (read_from_nested) - { - column = nested_tables[search_nested_table_name]->getByName(header_column.name, case_insensitive_matching); - if (case_insensitive_matching) - column.name = header_column.name; - } else { auto arrow_column = name_to_column_ptr[search_column_name]; - column = readColumnFromArrowColumn(arrow_column, header_column.name, format_name, false, dictionary_values, true, true, false, skipped); + column = readColumnFromArrowColumn( + arrow_column, header_column.name, format_name, false, dictionary_values, true, true, false, skipped); } try @@ -689,17 +693,16 @@ std::vector ArrowColumnToCHColumn::getMissingColumns(const arrow::Schema { std::vector missing_columns; auto block_from_arrow = arrowSchemaToCHHeader(schema, format_name, false, &header, case_insensitive_matching); - auto flatten_block_from_arrow = Nested::flatten(block_from_arrow); + NestedColumnExtractHelper nested_columns_extractor(block_from_arrow, case_insensitive_matching); for (size_t i = 0, columns = header.columns(); i < columns; ++i) { const auto & header_column = header.getByPosition(i); bool read_from_nested = false; - String nested_table_name = Nested::extractTableName(header_column.name); if (!block_from_arrow.has(header_column.name, case_insensitive_matching)) { - if (import_nested && block_from_arrow.has(nested_table_name, case_insensitive_matching)) - read_from_nested = flatten_block_from_arrow.has(header_column.name, case_insensitive_matching); + if (import_nested && nested_columns_extractor.extractColumn(header_column.name)) + read_from_nested = true; if (!read_from_nested) { diff --git a/src/Storages/Hive/StorageHive.cpp b/src/Storages/Hive/StorageHive.cpp index ab2b1ef7a09..9dbfd1119dc 100644 --- a/src/Storages/Hive/StorageHive.cpp +++ b/src/Storages/Hive/StorageHive.cpp @@ -1,3 +1,4 @@ +#include #include #if USE_HIVE @@ -769,11 +770,18 @@ Pipe StorageHive::read( const auto header_block = storage_snapshot->metadata->getSampleBlock(); bool support_subset_columns = supportsSubsetOfColumns(); - Block flatten_block; - if (support_subset_columns) - flatten_block = Nested::flatten(header_block); + auto settings = context_->getSettingsRef(); + auto case_insensitive_matching = [&]() -> bool + { + if (format_name == "Parquet") + return settings.input_format_parquet_case_insensitive_column_matching; + else if (format_name == "ORC") + return settings.input_format_orc_case_insensitive_column_matching; + return false; + }; Block sample_block; + NestedColumnExtractHelper nested_columns_extractor(header_block, case_insensitive_matching()); for (const auto & column : column_names) { if (header_block.has(column)) @@ -781,10 +789,14 @@ Pipe StorageHive::read( sample_block.insert(header_block.getByName(column)); continue; } - else if (support_subset_columns && flatten_block.has(column)) + else if (support_subset_columns) { - sample_block.insert(flatten_block.getByName(column)); - continue; + auto subset_column = nested_columns_extractor.extractColumn(column); + if (subset_column) + { + sample_block.insert(*subset_column); + continue; + } } if (column == "_path") sources_info->need_path_column = true; diff --git a/tests/integration/test_hive_query/test.py b/tests/integration/test_hive_query/test.py index 00aaaec7afe..4bac09320ce 100644 --- a/tests/integration/test_hive_query/test.py +++ b/tests/integration/test_hive_query/test.py @@ -415,7 +415,7 @@ def test_hive_struct_type(started_cluster): node = started_cluster.instances["h0_0_0"] result = node.query( """ - CREATE TABLE IF NOT EXISTS default.test_hive_types (`f_tinyint` Int8, `f_smallint` Int16, `f_int` Int32, `f_integer` Int32, `f_bigint` Int64, `f_float` Float32, `f_double` Float64, `f_decimal` Float64, `f_timestamp` DateTime, `f_date` Date, `f_string` String, `f_varchar` String, `f_char` String, `f_bool` Boolean, `f_array_int` Array(Int32), `f_array_string` Array(String), `f_array_float` Array(Float32), `f_map_int` Map(String, Int32), `f_map_string` Map(String, String), `f_map_float` Map(String, Float32), `f_struct` Tuple(a String, b Int32, c Float32), `day` String) ENGINE = Hive('thrift://hivetest:9083', 'test', 'test_hive_types') PARTITION BY (day) + CREATE TABLE IF NOT EXISTS default.test_hive_types (`f_tinyint` Int8, `f_smallint` Int16, `f_int` Int32, `f_integer` Int32, `f_bigint` Int64, `f_float` Float32, `f_double` Float64, `f_decimal` Float64, `f_timestamp` DateTime, `f_date` Date, `f_string` String, `f_varchar` String, `f_char` String, `f_bool` Boolean, `f_array_int` Array(Int32), `f_array_string` Array(String), `f_array_float` Array(Float32), `f_map_int` Map(String, Int32), `f_map_string` Map(String, String), `f_map_float` Map(String, Float32), `f_struct` Tuple(a String, b Int32, c Float32, d Tuple(x Int32, y String)), `day` String) ENGINE = Hive('thrift://hivetest:9083', 'test', 'test_hive_types') PARTITION BY (day) """ ) result = node.query( @@ -423,7 +423,7 @@ def test_hive_struct_type(started_cluster): SELECT * FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 """ ) - expected_result = """1 2 3 4 5 6.11 7.22 8 2022-02-20 14:47:04 2022-02-20 hello world hello world hello world true [1,2,3] ['hello world','hello world'] [1.1,1.2] {'a':100,'b':200,'c':300} {'a':'aa','b':'bb','c':'cc'} {'a':111.1,'b':222.2,'c':333.3} ('aaa',200,333.3) 2022-02-20""" + expected_result = """1 2 3 4 5 6.11 7.22 8 2022-02-20 14:47:04 2022-02-20 hello world hello world hello world true [1,2,3] ['hello world','hello world'] [1.1,1.2] {'a':100,'b':200,'c':300} {'a':'aa','b':'bb','c':'cc'} {'a':111.1,'b':222.2,'c':333.3} ('aaa',200,333.3,(10,'xyz')) 2022-02-20""" assert result.strip() == expected_result result = node.query( @@ -431,5 +431,5 @@ def test_hive_struct_type(started_cluster): SELECT day, f_struct.a FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 """ ) - expected_result = """2022-02-20 aaa""" + expected_result = """2022-02-20 aaa 10""" assert result.strip() == expected_result From a8b17fec848a698dc8d0f6886b041089c991a923 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 16 Jun 2022 16:53:11 +0800 Subject: [PATCH 048/525] fixed a bug --- src/Storages/Hive/StorageHive.cpp | 2 +- src/Storages/Hive/StorageHive.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Storages/Hive/StorageHive.cpp b/src/Storages/Hive/StorageHive.cpp index 9dbfd1119dc..60936f6a3f4 100644 --- a/src/Storages/Hive/StorageHive.cpp +++ b/src/Storages/Hive/StorageHive.cpp @@ -769,7 +769,7 @@ Pipe StorageHive::read( sources_info->partition_name_types = partition_name_types; const auto header_block = storage_snapshot->metadata->getSampleBlock(); - bool support_subset_columns = supportsSubsetOfColumns(); + bool support_subset_columns = supportsSubcolumns(); auto settings = context_->getSettingsRef(); auto case_insensitive_matching = [&]() -> bool diff --git a/src/Storages/Hive/StorageHive.h b/src/Storages/Hive/StorageHive.h index 2f69ae00b6e..fd806553a86 100644 --- a/src/Storages/Hive/StorageHive.h +++ b/src/Storages/Hive/StorageHive.h @@ -44,6 +44,7 @@ public: bool supportsIndexForIn() const override { return true; } bool supportsSubcolumns() const override { return true; } + bool mayBenefitFromIndexForIn( const ASTPtr & /* left_in_operand */, ContextPtr /* query_context */, From d93fd3bd2dcdfec6d1eba790508e393d91858999 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Thu, 16 Jun 2022 09:30:40 +0000 Subject: [PATCH 049/525] Add complilation support for case when krb5 is not used --- src/Access/KerberosInit.cpp | 2 ++ src/Access/KerberosInit.h | 4 ++++ src/Storages/HDFS/HDFSCommon.cpp | 5 ++++- src/Storages/Kafka/StorageKafka.cpp | 6 ++++-- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 304bb69d424..8d4e2339bbf 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -4,6 +4,7 @@ #include #include #include +#if USE_KRB5 #include #include @@ -209,3 +210,4 @@ int kerberosInit(const String & keytab_file, const String & principal, const Str KerberosInit k_init; return k_init.init(keytab_file, principal, cache_name); } +#endif // USE_KRB5 diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index cfbbfc2e7d8..4731baf706f 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -4,4 +4,8 @@ #include +#if USE_KRB5 + int kerberosInit(const String & keytab_file, const String & principal, const String & cache_name = ""); + +#endif // USE_KRB5 diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 8134aaf4981..bee8ac21acb 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -10,8 +10,9 @@ #include #include #include +#if USE_KRB5 #include - +#endif // USE_KRB5 namespace DB { @@ -74,6 +75,7 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration void HDFSBuilderWrapper::runKinit() { + #if USE_KRB5 LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Running KerberosInit"); try { @@ -84,6 +86,7 @@ void HDFSBuilderWrapper::runKinit() throw Exception("KerberosInit failure: "+ getExceptionMessage(e, false), ErrorCodes::KERBEROS_ERROR); } LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Finished KerberosInit"); + #endif // USE_KRB5 } HDFSBuilderWrapper createHDFSBuilder(const String & uri_str, const Poco::Util::AbstractConfiguration & config) diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index b4072cd6c0e..a24630fa3b1 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -43,9 +43,9 @@ #include #include - +#if USE_KRB5 #include - +#endif // USE_KRB5 namespace CurrentMetrics { @@ -517,6 +517,7 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) if (config.has(config_prefix)) loadFromConfig(conf, config, config_prefix); + #if USE_KRB5 if (conf.has_property("sasl.kerberos.kinit.cmd")) LOG_WARNING(log, "sasl.kerberos.kinit.cmd configuration parameter is ignored."); @@ -538,6 +539,7 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) } LOG_DEBUG(log, "Finished KerberosInit"); } + #endif // USE_KRB5 // Update consumer topic-specific configuration for (const auto & topic : topics) From a800158438d939555b8f8cb472c9d3ffc51523e5 Mon Sep 17 00:00:00 2001 From: zvonand Date: Thu, 16 Jun 2022 15:11:41 +0500 Subject: [PATCH 050/525] wip upload --- src/Functions/FunctionBase58Conversion.h | 102 ++++++++++++----------- 1 file changed, 53 insertions(+), 49 deletions(-) diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h index fd1bc81842f..9aacbc4c9e7 100644 --- a/src/Functions/FunctionBase58Conversion.h +++ b/src/Functions/FunctionBase58Conversion.h @@ -8,14 +8,12 @@ # include # include # include -# include # include # include namespace DB { -using namespace GatherUtils; namespace ErrorCodes { @@ -28,14 +26,58 @@ namespace ErrorCodes struct Base58Encode { static constexpr auto name = "base58Encode"; - static size_t getBufferSize(size_t string_length, size_t string_count) - { - return ((string_length - string_count) / 3 + string_count) * 4 + string_count; - } - void process(ColumnString source, ColumnString result, std::string alphabet) + static void process(const ColumnString * input, ColumnString * dst_column, std::string& alphabet, size_t input_rows_count) { + auto & dst_data = dst_column->getChars(); + auto & dst_offsets = dst_column->getOffsets(); + size_t current_allocated_size = input->getChars().size(); + + dst_data.resize(current_allocated_size); + dst_offsets.resize(input_rows_count); + + const ColumnString::Offsets & src_offsets = input->getOffsets(); + + const auto * source = input->getChars().raw_data(); + auto * dst = dst_data.data(); + auto * dst_pos = dst; + + size_t src_offset_prev = 0; + size_t processed_size = 0; + + const auto& encoder = (alphabet == "bitcoin") ? Base58::bitcoin() : + ((alphabet == "flickr") ? Base58::flickr() : + ((alphabet == "ripple") ? Base58::ripple() : Base58::base58())); + + for (size_t row = 0; row < input_rows_count; ++row) + { + size_t srclen = src_offsets[row] - src_offset_prev - 1; + /// Why we didn't simply operate on char* here? + /// We don't know the size of the result string beforehand (it's not byte-to-byte encoding), + /// so we may need to do many resizes (the worst case -- we'll do it for each row) + /// Using std::string allows to do exponential resizes and one final resize after whole operation is complete + std::string encoded; + encoder.encode(encoded, source, srclen); + size_t outlen = encoded.size(); + + if (processed_size + outlen >= current_allocated_size) + { + current_allocated_size += current_allocated_size; + dst_data.resize(current_allocated_size); + } + + source += srclen + 1; + dst_pos += outlen; + *dst_pos = '\0'; + dst_pos += 1; + + dst_offsets[row] = dst_pos - dst; + src_offset_prev = src_offsets[row]; + processed_size += outlen; + } + + dst_data.resize(dst_pos - dst); } }; @@ -123,53 +165,15 @@ public: if (!alphabet_column) throw Exception("Second argument for function " + getName() + " must be constant String", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - if (alphabet = alphabet_column->getValue(); alphabet != "bitcoin" && alphabet != "ripple" && alphabet != "flickr" && alphabet != "gmp") - throw Exception("Second argument for function " + getName() + " must be 'bitcoin', 'ripple', 'flickr' or 'gmp'", ErrorCodes::ILLEGAL_COLUMN); + if (alphabet = alphabet_column->getValue(); + alphabet != "bitcoin" && alphabet != "ripple" && alphabet != "flickr" && alphabet != "gmp") + throw Exception("Second argument for function " + getName() + " must be 'bitcoin', 'ripple', 'gmp' or 'flickr'", ErrorCodes::ILLEGAL_COLUMN); } auto dst_column = ColumnString::create(); - auto & dst_data = dst_column->getChars(); - auto & dst_offsets = dst_column->getOffsets(); - size_t reserve = Func::getBufferSize(input->getChars().size(), input->size()); - dst_data.resize(reserve); - dst_offsets.resize(input_rows_count); - - const ColumnString::Offsets & src_offsets = input->getOffsets(); - - const auto * source = input->getChars().data(); - auto * dst = dst_data.data(); - auto * dst_pos = dst; - - size_t src_offset_prev = 0; - - for (size_t row = 0; row < input_rows_count; ++row) - { - size_t srclen = src_offsets[row] - src_offset_prev - 1; - size_t outlen = 0; - - if constexpr (std::is_same_v) - { - Base58:: - } - else if constexpr (std::is_same_v) - { - } - else - { - } - - source += srclen + 1; - dst_pos += outlen; - *dst_pos = '\0'; - dst_pos += 1; - - dst_offsets[row] = dst_pos - dst; - src_offset_prev = src_offsets[row]; - } - - dst_data.resize(dst_pos - dst); + Func::process(column_string, dst_column, alphabet, input_rows_count); return dst_column; } From 6e28275569d9ede757ab490f110e578524775458 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Thu, 16 Jun 2022 14:21:04 +0300 Subject: [PATCH 051/525] Add warnings about using krb5 parameters --- src/Storages/HDFS/HDFSCommon.cpp | 19 ++++++++++++++++--- src/Storages/HDFS/HDFSCommon.h | 9 +++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index bee8ac21acb..87b2d02ada0 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -20,9 +20,10 @@ namespace ErrorCodes { extern const int BAD_ARGUMENTS; extern const int NETWORK_ERROR; + #if USE_KRB5 extern const int EXCESSIVE_ELEMENT_IN_CONFIG; - extern const int NO_ELEMENTS_IN_CONFIG; extern const int KERBEROS_ERROR; + #endif // USE_KRB5 } const String HDFSBuilderWrapper::CONFIG_PREFIX = "hdfs"; @@ -43,19 +44,28 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration String key_name; if (key == "hadoop_kerberos_keytab") { + #if USE_KRB5 need_kinit = true; hadoop_kerberos_keytab = config.getString(key_path); + #else // USE_KRB5 + LOG_WARNING(&Poco::Logger::get("HDFSClient"), "hadoop_kerberos_keytab parameter is ignored because ClickHouse was built without support of krb5 library."); + #endif // USE_KRB5 continue; } else if (key == "hadoop_kerberos_principal") { + #if USE_KRB5 need_kinit = true; hadoop_kerberos_principal = config.getString(key_path); hdfsBuilderSetPrincipal(hdfs_builder, hadoop_kerberos_principal.c_str()); + #else // USE_KRB5 + LOG_WARNING(&Poco::Logger::get("HDFSClient"), "hadoop_kerberos_principal parameter is ignored because ClickHouse was built without support of krb5 library."); + #endif // USE_KRB5 continue; } else if (key == "hadoop_security_kerberos_ticket_cache_path") { + #if USE_KRB5 if (isUser) { throw Exception("hadoop.security.kerberos.ticket.cache.path cannot be set per user", @@ -64,6 +74,9 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration hadoop_security_kerberos_ticket_cache_path = config.getString(key_path); // standard param - pass further + #else // USE_KRB5 + LOG_WARNING(&Poco::Logger::get("HDFSClient"), "hadoop.security.kerberos.ticket.cache.path parameter is ignored because ClickHouse was built without support of krb5 library."); + #endif // USE_KRB5 } key_name = boost::replace_all_copy(key, "_", "."); @@ -73,9 +86,9 @@ void HDFSBuilderWrapper::loadFromConfig(const Poco::Util::AbstractConfiguration } } +#if USE_KRB5 void HDFSBuilderWrapper::runKinit() { - #if USE_KRB5 LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Running KerberosInit"); try { @@ -86,8 +99,8 @@ void HDFSBuilderWrapper::runKinit() throw Exception("KerberosInit failure: "+ getExceptionMessage(e, false), ErrorCodes::KERBEROS_ERROR); } LOG_DEBUG(&Poco::Logger::get("HDFSClient"), "Finished KerberosInit"); - #endif // USE_KRB5 } +#endif // USE_KRB5 HDFSBuilderWrapper createHDFSBuilder(const String & uri_str, const Poco::Util::AbstractConfiguration & config) { diff --git a/src/Storages/HDFS/HDFSCommon.h b/src/Storages/HDFS/HDFSCommon.h index cacb986a091..9eb2dfd3e46 100644 --- a/src/Storages/HDFS/HDFSCommon.h +++ b/src/Storages/HDFS/HDFSCommon.h @@ -68,8 +68,6 @@ public: private: void loadFromConfig(const Poco::Util::AbstractConfiguration & config, const String & prefix, bool isUser = false); - void runKinit(); - // hdfs builder relies on an external config data storage std::pair& keep(const String & k, const String & v) { @@ -77,12 +75,15 @@ private: } hdfsBuilder * hdfs_builder; + std::vector> config_stor; + + #if USE_KRB5 + void runKinit(); String hadoop_kerberos_keytab; String hadoop_kerberos_principal; String hadoop_security_kerberos_ticket_cache_path; - - std::vector> config_stor; bool need_kinit{false}; + #endif // USE_KRB5 }; using HDFSFSPtr = std::unique_ptr, detail::HDFSFsDeleter>; From 0ab6bfd5d805b358cb61ae053909527a9253e47b Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Thu, 16 Jun 2022 14:25:37 +0300 Subject: [PATCH 052/525] Add warning about using krb5 parameter in StorageKafka.cpp --- src/Storages/Kafka/StorageKafka.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Storages/Kafka/StorageKafka.cpp b/src/Storages/Kafka/StorageKafka.cpp index a24630fa3b1..e65ac27b096 100644 --- a/src/Storages/Kafka/StorageKafka.cpp +++ b/src/Storages/Kafka/StorageKafka.cpp @@ -539,6 +539,9 @@ void StorageKafka::updateConfiguration(cppkafka::Configuration & conf) } LOG_DEBUG(log, "Finished KerberosInit"); } + #else // USE_KRB5 + if (conf.has_property("sasl.kerberos.keytab") || conf.has_property("sasl.kerberos.principal")) + LOG_WARNING(log, "Kerberos-related parameters are ignored because ClickHouse was built without support of krb5 library."); #endif // USE_KRB5 // Update consumer topic-specific configuration From 9753ea91575e306ee8729ec533ed93abc0adc261 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 16 Jun 2022 19:27:30 +0800 Subject: [PATCH 053/525] fixed a bug fixed a bug in TranslateQualifiedNamesMatcher to handle nested tuple field with the table qulified name --- src/Interpreters/IdentifierSemantic.cpp | 7 +++ src/Interpreters/IdentifierSemantic.h | 1 + .../TranslateQualifiedNamesVisitor.cpp | 46 +++++++++---------- ...ranslate_qualified_names_matcher.reference | 2 + ...heck_sranslate_qualified_names_matcher.sql | 10 ++++ 5 files changed, 42 insertions(+), 24 deletions(-) create mode 100644 tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.reference create mode 100644 tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.sql diff --git a/src/Interpreters/IdentifierSemantic.cpp b/src/Interpreters/IdentifierSemantic.cpp index dbfdba77619..14cb43e2a2e 100644 --- a/src/Interpreters/IdentifierSemantic.cpp +++ b/src/Interpreters/IdentifierSemantic.cpp @@ -188,6 +188,13 @@ IdentifierSemantic::ColumnMatch IdentifierSemantic::canReferColumnToTable(const return canReferColumnToTable(identifier, table_with_columns.table); } +std::optional IdentifierSemantic::getColumnNamePart(const ASTIdentifier & node, size_t pos) +{ + if (pos >= node.name_parts.size()) + return {}; + return node.name_parts[pos]; +} + /// Strip qualifications from left side of column name. /// Example: 'database.table.name' -> 'name'. void IdentifierSemantic::setColumnShortName(ASTIdentifier & identifier, const DatabaseAndTableWithAlias & db_and_table) diff --git a/src/Interpreters/IdentifierSemantic.h b/src/Interpreters/IdentifierSemantic.h index 5dc828c36ba..622813a8abe 100644 --- a/src/Interpreters/IdentifierSemantic.h +++ b/src/Interpreters/IdentifierSemantic.h @@ -40,6 +40,7 @@ struct IdentifierSemantic /// @returns name for column identifiers static std::optional getColumnName(const ASTIdentifier & node); static std::optional getColumnName(const ASTPtr & ast); + static std::optional getColumnNamePart(const ASTIdentifier & node, size_t pos); /// @returns name for 'not a column' identifiers static std::optional extractNestedName(const ASTIdentifier & identifier, const String & table_name); diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index 3129f9d7fe2..91d9ca082d5 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -33,35 +33,33 @@ namespace ErrorCodes bool TranslateQualifiedNamesMatcher::Data::unknownColumn(size_t table_pos, const ASTIdentifier & identifier) const { const auto & table = tables[table_pos].table; - auto nested1 = IdentifierSemantic::extractNestedName(identifier, table.table); - auto nested2 = IdentifierSemantic::extractNestedName(identifier, table.alias); - - const String & short_name = identifier.shortName(); const auto & columns = tables[table_pos].columns; + if (columns.empty()) + return false; + auto match = IdentifierSemantic::canReferColumnToTable(identifier, table); + size_t to_strip = 0; + switch (match) + { + case IdentifierSemantic::ColumnMatch::TableName: + case IdentifierSemantic::ColumnMatch::AliasedTableName: + case IdentifierSemantic::ColumnMatch::TableAlias: + to_strip = 1; + break; + case IdentifierSemantic::ColumnMatch::DBAndTable: + to_strip = 2; + break; + default: + break; + } + const auto & column_name = IdentifierSemantic::getColumnNamePart(identifier, to_strip); + if (!column_name) + return true; for (const auto & column : columns) { - const String & known_name = column.name; - if (short_name == known_name) - return false; - if (nested1 && *nested1 == known_name) - return false; - if (nested2 && *nested2 == known_name) + if (*column_name == column.name) return false; } - - const auto & hidden_columns = tables[table_pos].hidden_columns; - for (const auto & column : hidden_columns) - { - const String & known_name = column.name; - if (short_name == known_name) - return false; - if (nested1 && *nested1 == known_name) - return false; - if (nested2 && *nested2 == known_name) - return false; - } - - return !columns.empty(); + return true; } bool TranslateQualifiedNamesMatcher::needChildVisit(ASTPtr & node, const ASTPtr & child) diff --git a/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.reference b/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.reference new file mode 100644 index 00000000000..c094c553f81 --- /dev/null +++ b/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.reference @@ -0,0 +1,2 @@ +12 +12 diff --git a/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.sql b/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.sql new file mode 100644 index 00000000000..f2b5c372ba7 --- /dev/null +++ b/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.sql @@ -0,0 +1,10 @@ +CREATE TABLE nested_name_tuples +( + `a` Tuple(x String, y Tuple(i Int32, j String)) +) +ENGINE = Memory; + +INSERT INTO nested_name_tuples VALUS(('asd', (12, 'ddd'))); + +SELECT t.a.y.i FROM nested_name_tuples as t; +SELECT nested_name_tuples.a.y.i FROM nested_name_tuples as t; From ed3fe84b63d14cb05898cf12eac8024ae3921110 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Thu, 16 Jun 2022 14:45:27 +0300 Subject: [PATCH 054/525] Fix runKinit() is called only for USE_KRB5 --- src/Storages/HDFS/HDFSCommon.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Storages/HDFS/HDFSCommon.cpp b/src/Storages/HDFS/HDFSCommon.cpp index 87b2d02ada0..3ac9f50231d 100644 --- a/src/Storages/HDFS/HDFSCommon.cpp +++ b/src/Storages/HDFS/HDFSCommon.cpp @@ -171,10 +171,12 @@ HDFSBuilderWrapper createHDFSBuilder(const String & uri_str, const Poco::Util::A } } + #if USE_KRB5 if (builder.need_kinit) { builder.runKinit(); } + #endif // USE_KRB5 return builder; } From c1b2b669ab8a8750be5c79a622dc863f0fdffb12 Mon Sep 17 00:00:00 2001 From: zvonand Date: Fri, 17 Jun 2022 01:52:45 +0500 Subject: [PATCH 055/525] remove wrong code --- src/Functions/FunctionBase58Conversion.h | 78 +++++++++++++++++------ src/Functions/FunctionsBase58.cpp | 5 -- src/Functions/registerFunctionsString.cpp | 2 - 3 files changed, 58 insertions(+), 27 deletions(-) diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h index 9aacbc4c9e7..97dc2a4f40c 100644 --- a/src/Functions/FunctionBase58Conversion.h +++ b/src/Functions/FunctionBase58Conversion.h @@ -27,7 +27,7 @@ struct Base58Encode { static constexpr auto name = "base58Encode"; - static void process(const ColumnString * input, ColumnString * dst_column, std::string& alphabet, size_t input_rows_count) + static void process(const ColumnString * input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) { auto & dst_data = dst_column->getChars(); auto & dst_offsets = dst_column->getOffsets(); @@ -48,15 +48,16 @@ struct Base58Encode const auto& encoder = (alphabet == "bitcoin") ? Base58::bitcoin() : ((alphabet == "flickr") ? Base58::flickr() : - ((alphabet == "ripple") ? Base58::ripple() : Base58::base58())); + ((alphabet == "ripple") ? Base58::ripple() : + Base58::base58())); for (size_t row = 0; row < input_rows_count; ++row) { size_t srclen = src_offsets[row] - src_offset_prev - 1; - /// Why we didn't simply operate on char* here? + /// Why we didn't use char* here? /// We don't know the size of the result string beforehand (it's not byte-to-byte encoding), /// so we may need to do many resizes (the worst case -- we'll do it for each row) - /// Using std::string allows to do exponential resizes and one final resize after whole operation is complete + /// This way we do exponential resizes and one final resize after whole operation is complete std::string encoded; encoder.encode(encoded, source, srclen); size_t outlen = encoded.size(); @@ -66,11 +67,10 @@ struct Base58Encode current_allocated_size += current_allocated_size; dst_data.resize(current_allocated_size); } + std::strcpy(reinterpret_cast(dst_pos), encoded.c_str()); source += srclen + 1; - dst_pos += outlen; - *dst_pos = '\0'; - dst_pos += 1; + dst_pos += outlen + 1; dst_offsets[row] = dst_pos - dst; src_offset_prev = src_offsets[row]; @@ -85,19 +85,57 @@ struct Base58Decode { static constexpr auto name = "base58Decode"; - static size_t getBufferSize(size_t string_length, size_t string_count) + static void process(const ColumnString * input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) { - return ((string_length - string_count) / 4 + string_count) * 3 + string_count; - } -}; + auto & dst_data = dst_column->getChars(); + auto & dst_offsets = dst_column->getOffsets(); -struct TryBase58Decode -{ - static constexpr auto name = "tryBase58Decode"; + size_t current_allocated_size = input->getChars().size(); - static size_t getBufferSize(size_t string_length, size_t string_count) - { - return Base58Decode::getBufferSize(string_length, string_count); + dst_data.resize(current_allocated_size); + dst_offsets.resize(input_rows_count); + + const ColumnString::Offsets & src_offsets = input->getOffsets(); + + const auto * source = input->getChars().raw_data(); + auto * dst = dst_data.data(); + auto * dst_pos = dst; + + size_t src_offset_prev = 0; + size_t processed_size = 0; + + const auto& decoder = (alphabet == "bitcoin") ? Base58::bitcoin() : + ((alphabet == "flickr") ? Base58::flickr() : + ((alphabet == "ripple") ? Base58::ripple() : + Base58::base58())); + + for (size_t row = 0; row < input_rows_count; ++row) + { + size_t srclen = src_offsets[row] - src_offset_prev - 1; + /// Why we didn't use char* here? + /// We don't know the size of the result string beforehand (it's not byte-to-byte encoding), + /// so we may need to do many resizes (the worst case -- we'll do it for each row) + /// This way we do exponential resizes and one final resize after whole operation is complete + std::string decoded; + decoder.decode(decoded, source, srclen); + size_t outlen = decoded.size(); + + if (processed_size + outlen >= current_allocated_size) + { + current_allocated_size += current_allocated_size; + dst_data.resize(current_allocated_size); + } + std::strcpy(reinterpret_cast(dst_pos), decoded.c_str()); + + source += srclen + 1; + dst_pos += outlen + 1; + + dst_offsets[row] = dst_pos - dst; + src_offset_prev = src_offsets[row]; + processed_size += outlen; + } + + dst_data.resize(dst_pos - dst); } }; @@ -129,9 +167,9 @@ public: DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override { - if (arguments.size() != 1 || arguments.size() != 2) + if (arguments.size() != 1 && arguments.size() != 2) throw Exception( - "Wrong number of arguments for function " + getName() + ": " + arguments.size() + " provided, 1 or 2 expected.", + "Wrong number of arguments for function " + getName() + ": 1 or 2 expected.", ErrorCodes::BAD_ARGUMENTS); if (!isString(arguments[0].type)) @@ -173,7 +211,7 @@ public: auto dst_column = ColumnString::create(); - Func::process(column_string, dst_column, alphabet, input_rows_count); + Func::process(input, dst_column, alphabet, input_rows_count); return dst_column; } diff --git a/src/Functions/FunctionsBase58.cpp b/src/Functions/FunctionsBase58.cpp index efd3f42c6da..3ccb4d790ce 100644 --- a/src/Functions/FunctionsBase58.cpp +++ b/src/Functions/FunctionsBase58.cpp @@ -14,10 +14,5 @@ void registerFunctionBase58Decode(FunctionFactory & factory) { factory.registerFunction>(); } - -void registerFunctionTryBase58Decode(FunctionFactory & factory) -{ - factory.registerFunction>(); -} } #endif diff --git a/src/Functions/registerFunctionsString.cpp b/src/Functions/registerFunctionsString.cpp index 2e2975a459c..43035ef51e7 100644 --- a/src/Functions/registerFunctionsString.cpp +++ b/src/Functions/registerFunctionsString.cpp @@ -52,7 +52,6 @@ void registerFunctionTryBase64Decode(FunctionFactory &); #if USE_BASE58 void registerFunctionBase58Encode(FunctionFactory &); void registerFunctionBase58Decode(FunctionFactory &); -void registerFunctionTryBase58Decode(FunctionFactory &); #endif #if USE_NLP @@ -114,7 +113,6 @@ void registerFunctionsString(FunctionFactory & factory) #if USE_BASE58 registerFunctionBase58Encode(factory); registerFunctionBase58Decode(factory); - registerFunctionTryBase58Decode(factory); #endif #if USE_NLP From 285bb44b2542a16a36e6bcd1496a13682066b7fb Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 09:33:16 +0800 Subject: [PATCH 056/525] nothing --- src/Interpreters/TranslateQualifiedNamesVisitor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index 91d9ca082d5..a1432b10b3c 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -36,6 +36,7 @@ bool TranslateQualifiedNamesMatcher::Data::unknownColumn(size_t table_pos, const const auto & columns = tables[table_pos].columns; if (columns.empty()) return false; + auto match = IdentifierSemantic::canReferColumnToTable(identifier, table); size_t to_strip = 0; switch (match) From 8c629085e485f15a221f2e443f3b89e95bc0d9e0 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 09:36:59 +0800 Subject: [PATCH 057/525] simplified code --- src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp index da89d6f7321..305009a070f 100644 --- a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp +++ b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp @@ -698,18 +698,13 @@ std::vector ArrowColumnToCHColumn::getMissingColumns(const arrow::Schema for (size_t i = 0, columns = header.columns(); i < columns; ++i) { const auto & header_column = header.getByPosition(i); - bool read_from_nested = false; if (!block_from_arrow.has(header_column.name, case_insensitive_matching)) { - if (import_nested && nested_columns_extractor.extractColumn(header_column.name)) - read_from_nested = true; - - if (!read_from_nested) + if (!import_nested || !nested_columns_extractor.extractColumn(header_column.name)) { if (!allow_missing_columns) throw Exception{ErrorCodes::THERE_IS_NO_COLUMN, "Column '{}' is not presented in input data.", header_column.name}; - - missing_columns.push_back(i); + missing_columns.push_back(i); } } } From 68c588585187f90e5c920abafb1ddfa0f2f132aa Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 12:19:25 +0800 Subject: [PATCH 058/525] fixed bugs --- src/Interpreters/TranslateQualifiedNamesVisitor.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index a1432b10b3c..9a24aed9814 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -19,7 +19,6 @@ #include #include - namespace DB { @@ -55,11 +54,19 @@ bool TranslateQualifiedNamesMatcher::Data::unknownColumn(size_t table_pos, const const auto & column_name = IdentifierSemantic::getColumnNamePart(identifier, to_strip); if (!column_name) return true; + for (const auto & column : columns) { if (*column_name == column.name) return false; } + const auto & hidden_columns = tables[table_pos].hidden_columns; + for (const auto & column : hidden_columns) + { + const String & known_name = column.name; + if (*column_name == known_name) + return false; + } return true; } From 55757dfb34bb0c27fd7d960912925cca0aae42e5 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 15:13:31 +0800 Subject: [PATCH 059/525] fixed bugs --- src/Interpreters/IdentifierSemantic.cpp | 34 ++++++++--- src/Interpreters/IdentifierSemantic.h | 3 +- .../TranslateQualifiedNamesVisitor.cpp | 59 ++++++++++++------- .../TranslateQualifiedNamesVisitor.h | 2 + 4 files changed, 68 insertions(+), 30 deletions(-) diff --git a/src/Interpreters/IdentifierSemantic.cpp b/src/Interpreters/IdentifierSemantic.cpp index 14cb43e2a2e..f0658cb7c9b 100644 --- a/src/Interpreters/IdentifierSemantic.cpp +++ b/src/Interpreters/IdentifierSemantic.cpp @@ -142,6 +142,33 @@ std::optional IdentifierSemantic::extractNestedName(const ASTIdentifier return {}; } +String IdentifierSemantic::extractNestedName(const ASTIdentifier & identifier, const DatabaseAndTableWithAlias & table) +{ + auto match = IdentifierSemantic::canReferColumnToTable(identifier, table); + size_t to_strip = 0; + switch (match) + { + case IdentifierSemantic::ColumnMatch::TableName: + case IdentifierSemantic::ColumnMatch::AliasedTableName: + case IdentifierSemantic::ColumnMatch::TableAlias: + to_strip = 1; + break; + case IdentifierSemantic::ColumnMatch::DBAndTable: + to_strip = 2; + break; + default: + break; + } + String res; + for (size_t i = to_strip, sz = identifier.name_parts.size(); i < sz; ++i) + { + if (!res.empty()) + res += "."; + res += identifier.name_parts[i]; + } + return res; +} + bool IdentifierSemantic::doesIdentifierBelongTo(const ASTIdentifier & identifier, const String & database, const String & table) { size_t num_components = identifier.name_parts.size(); @@ -188,13 +215,6 @@ IdentifierSemantic::ColumnMatch IdentifierSemantic::canReferColumnToTable(const return canReferColumnToTable(identifier, table_with_columns.table); } -std::optional IdentifierSemantic::getColumnNamePart(const ASTIdentifier & node, size_t pos) -{ - if (pos >= node.name_parts.size()) - return {}; - return node.name_parts[pos]; -} - /// Strip qualifications from left side of column name. /// Example: 'database.table.name' -> 'name'. void IdentifierSemantic::setColumnShortName(ASTIdentifier & identifier, const DatabaseAndTableWithAlias & db_and_table) diff --git a/src/Interpreters/IdentifierSemantic.h b/src/Interpreters/IdentifierSemantic.h index 622813a8abe..c082e83b75c 100644 --- a/src/Interpreters/IdentifierSemantic.h +++ b/src/Interpreters/IdentifierSemantic.h @@ -40,11 +40,12 @@ struct IdentifierSemantic /// @returns name for column identifiers static std::optional getColumnName(const ASTIdentifier & node); static std::optional getColumnName(const ASTPtr & ast); - static std::optional getColumnNamePart(const ASTIdentifier & node, size_t pos); /// @returns name for 'not a column' identifiers static std::optional extractNestedName(const ASTIdentifier & identifier, const String & table_name); + static String extractNestedName(const ASTIdentifier & identifier, const DatabaseAndTableWithAlias & table); + static ColumnMatch canReferColumnToTable(const ASTIdentifier & identifier, const DatabaseAndTableWithAlias & db_and_table); static ColumnMatch canReferColumnToTable(const ASTIdentifier & identifier, const TableWithColumnNamesAndTypes & table_with_columns); diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index 9a24aed9814..ac060a48270 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -6,6 +7,7 @@ #include #include #include +#include #include #include @@ -19,6 +21,7 @@ #include #include + namespace DB { @@ -28,43 +31,55 @@ namespace ErrorCodes extern const int UNSUPPORTED_JOIN_KEYS; extern const int LOGICAL_ERROR; } +bool TranslateQualifiedNamesMatcher::Data::matchColumnName(const String & name, const String & column_name, DataTypePtr column_type) +{ + if (name.size() < column_name.size()) + return false; + + if (std::strncmp(name.data(), column_name.data(), column_name.size()) != 0) + return false; + + if (name.size() == column_name.size()) + return true; + /// In case the type is named tuple, check the name recursively. + if (const DataTypeTuple * type_tuple = typeid_cast(column_type.get())) + { + if (type_tuple->haveExplicitNames() && name.at(column_name.size()) == '.') + { + const Strings & names = type_tuple->getElementNames(); + const DataTypes & element_types = type_tuple->getElements(); + for (size_t i = 0; i < names.size(); ++i) + { + if (matchColumnName(name.substr(column_name.size() + 1, name.size() - column_name.size()), names[i], element_types[i])) + { + return true; + } + } + } + } + + return false; +} bool TranslateQualifiedNamesMatcher::Data::unknownColumn(size_t table_pos, const ASTIdentifier & identifier) const { const auto & table = tables[table_pos].table; const auto & columns = tables[table_pos].columns; if (columns.empty()) return false; - - auto match = IdentifierSemantic::canReferColumnToTable(identifier, table); - size_t to_strip = 0; - switch (match) - { - case IdentifierSemantic::ColumnMatch::TableName: - case IdentifierSemantic::ColumnMatch::AliasedTableName: - case IdentifierSemantic::ColumnMatch::TableAlias: - to_strip = 1; - break; - case IdentifierSemantic::ColumnMatch::DBAndTable: - to_strip = 2; - break; - default: - break; - } - const auto & column_name = IdentifierSemantic::getColumnNamePart(identifier, to_strip); - if (!column_name) - return true; + + // Remove database and table name from the identifier'name + auto full_name = IdentifierSemantic::extractNestedName(identifier, table); for (const auto & column : columns) { - if (*column_name == column.name) + if (matchColumnName(full_name, column.name, column.type)) return false; } const auto & hidden_columns = tables[table_pos].hidden_columns; for (const auto & column : hidden_columns) { - const String & known_name = column.name; - if (*column_name == known_name) + if (matchColumnName(full_name, column.name, column.type)) return false; } return true; diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.h b/src/Interpreters/TranslateQualifiedNamesVisitor.h index 9c46d926eca..b1d4d94d01c 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.h +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.h @@ -39,6 +39,7 @@ public: bool hasTable() const { return !tables.empty(); } bool processAsterisks() const { return hasTable() && has_columns; } bool unknownColumn(size_t table_pos, const ASTIdentifier & identifier) const; + static bool matchColumnName(const String & name, const String & column_name, DataTypePtr column_type); }; static void visit(ASTPtr & ast, Data & data); @@ -53,6 +54,7 @@ private: static void visit(ASTFunction &, const ASTPtr &, Data &); static void extractJoinUsingColumns(ASTPtr ast, Data & data); + }; /// Visits AST for names qualification. From 14609e043ceaf84c88fa733896ef8b851436077b Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 15:15:09 +0800 Subject: [PATCH 060/525] fixed style --- src/Interpreters/TranslateQualifiedNamesVisitor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index ac060a48270..60753dcc1f5 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -35,10 +35,10 @@ bool TranslateQualifiedNamesMatcher::Data::matchColumnName(const String & name, { if (name.size() < column_name.size()) return false; - + if (std::strncmp(name.data(), column_name.data(), column_name.size()) != 0) return false; - + if (name.size() == column_name.size()) return true; @@ -67,7 +67,7 @@ bool TranslateQualifiedNamesMatcher::Data::unknownColumn(size_t table_pos, const const auto & columns = tables[table_pos].columns; if (columns.empty()) return false; - + // Remove database and table name from the identifier'name auto full_name = IdentifierSemantic::extractNestedName(identifier, table); From 4a0a6e8cde7efb460810c17abb5c2cd9caa154bc Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 15:17:56 +0800 Subject: [PATCH 061/525] small optimization --- src/Interpreters/TranslateQualifiedNamesVisitor.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index 60753dcc1f5..9292ef1353e 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -49,9 +49,10 @@ bool TranslateQualifiedNamesMatcher::Data::matchColumnName(const String & name, { const Strings & names = type_tuple->getElementNames(); const DataTypes & element_types = type_tuple->getElements(); + String sub_name = name.substr(column_name.size() + 1, name.size() - column_name.size()); for (size_t i = 0; i < names.size(); ++i) { - if (matchColumnName(name.substr(column_name.size() + 1, name.size() - column_name.size()), names[i], element_types[i])) + if (matchColumnName(sub_name, names[i], element_types[i])) { return true; } From 308ca625181a4c8cc044250c977939a434c5265b Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 15:37:54 +0800 Subject: [PATCH 062/525] fixed bugs --- src/Interpreters/TranslateQualifiedNamesVisitor.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index 9292ef1353e..fd71dc01595 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -66,8 +66,6 @@ bool TranslateQualifiedNamesMatcher::Data::unknownColumn(size_t table_pos, const { const auto & table = tables[table_pos].table; const auto & columns = tables[table_pos].columns; - if (columns.empty()) - return false; // Remove database and table name from the identifier'name auto full_name = IdentifierSemantic::extractNestedName(identifier, table); @@ -83,7 +81,7 @@ bool TranslateQualifiedNamesMatcher::Data::unknownColumn(size_t table_pos, const if (matchColumnName(full_name, column.name, column.type)) return false; } - return true; + return !columns.empty(); } bool TranslateQualifiedNamesMatcher::needChildVisit(ASTPtr & node, const ASTPtr & child) From 3d3c044d572be17197caaf007e05efd7818fff3b Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 17 Jun 2022 16:39:28 +0800 Subject: [PATCH 063/525] rename files --- ... => 02337_check_translate_qualified_names_matcher.reference} | 0 ...er.sql => 02337_check_translate_qualified_names_matcher.sql} | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename tests/queries/0_stateless/{02337_check_sranslate_qualified_names_matcher.reference => 02337_check_translate_qualified_names_matcher.reference} (100%) rename tests/queries/0_stateless/{02337_check_sranslate_qualified_names_matcher.sql => 02337_check_translate_qualified_names_matcher.sql} (77%) diff --git a/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.reference b/tests/queries/0_stateless/02337_check_translate_qualified_names_matcher.reference similarity index 100% rename from tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.reference rename to tests/queries/0_stateless/02337_check_translate_qualified_names_matcher.reference diff --git a/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.sql b/tests/queries/0_stateless/02337_check_translate_qualified_names_matcher.sql similarity index 77% rename from tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.sql rename to tests/queries/0_stateless/02337_check_translate_qualified_names_matcher.sql index f2b5c372ba7..09ab591f98a 100644 --- a/tests/queries/0_stateless/02337_check_sranslate_qualified_names_matcher.sql +++ b/tests/queries/0_stateless/02337_check_translate_qualified_names_matcher.sql @@ -4,7 +4,7 @@ CREATE TABLE nested_name_tuples ) ENGINE = Memory; -INSERT INTO nested_name_tuples VALUS(('asd', (12, 'ddd'))); +INSERT INTO nested_name_tuples VALUES(('asd', (12, 'ddd'))); SELECT t.a.y.i FROM nested_name_tuples as t; SELECT nested_name_tuples.a.y.i FROM nested_name_tuples as t; From f987f461e5da22921c753f5e5261c2cecf9f49ea Mon Sep 17 00:00:00 2001 From: Andrey Zvonov Date: Fri, 17 Jun 2022 15:00:32 +0500 Subject: [PATCH 064/525] fix style -- rm unused ErrorCode --- src/Functions/FunctionBase58Conversion.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h index 97dc2a4f40c..87a1821b2de 100644 --- a/src/Functions/FunctionBase58Conversion.h +++ b/src/Functions/FunctionBase58Conversion.h @@ -19,7 +19,6 @@ namespace ErrorCodes { extern const int ILLEGAL_COLUMN; extern const int ILLEGAL_TYPE_OF_ARGUMENT; - extern const int INCORRECT_DATA; extern const int BAD_ARGUMENTS; } From 23f48a9fb9f9e7bfa0ff200d84d3530f7b2723ed Mon Sep 17 00:00:00 2001 From: avogar Date: Fri, 17 Jun 2022 11:44:49 +0000 Subject: [PATCH 065/525] Fix bug with nested short-circuit functions --- src/Columns/ColumnFunction.cpp | 7 +++++-- src/Functions/FunctionsLogical.cpp | 2 ++ src/Functions/if.cpp | 2 ++ src/Functions/multiIf.cpp | 2 ++ src/Functions/toColumnTypeName.cpp | 8 -------- src/Functions/toTypeName.cpp | 7 ------- ...1_nested_short_circuit_functions.reference | 20 +++++++++++++++++++ .../02321_nested_short_circuit_functions.sql | 3 +++ 8 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 tests/queries/0_stateless/02321_nested_short_circuit_functions.reference create mode 100644 tests/queries/0_stateless/02321_nested_short_circuit_functions.sql diff --git a/src/Columns/ColumnFunction.cpp b/src/Columns/ColumnFunction.cpp index 6350d7b0e61..2274762a9f5 100644 --- a/src/Columns/ColumnFunction.cpp +++ b/src/Columns/ColumnFunction.cpp @@ -250,9 +250,12 @@ ColumnWithTypeAndName ColumnFunction::reduce() const "arguments but " + toString(captured) + " columns were captured.", ErrorCodes::LOGICAL_ERROR); ColumnsWithTypeAndName columns = captured_columns; - if (is_short_circuit_argument) + IFunction::ShortCircuitSettings settings; + /// Arguments of lazy executed function can also be lazy executed. + /// But we shouldn't execute arguments if this function is short circuit, + /// because it will handle lazy executed arguments by itself. + if (is_short_circuit_argument && !function->isShortCircuit(settings, args)) { - /// Arguments of lazy executed function can also be lazy executed. for (auto & col : columns) { if (const ColumnFunction * arg = checkAndGetShortCircuitArgument(col.column)) diff --git a/src/Functions/FunctionsLogical.cpp b/src/Functions/FunctionsLogical.cpp index be295186943..392cbac8a1b 100644 --- a/src/Functions/FunctionsLogical.cpp +++ b/src/Functions/FunctionsLogical.cpp @@ -545,6 +545,8 @@ ColumnPtr FunctionAnyArityLogical::executeShortCircuit(ColumnsWithTy if (Name::name != NameAnd::name && Name::name != NameOr::name) throw Exception("Function " + getName() + " doesn't support short circuit execution", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + executeColumnIfNeeded(arguments[0]); + /// Let's denote x_i' = maskedExecute(x_i, mask). /// 1) AND(x_0, x_1, x_2, ..., x_n) /// We will support mask_i = x_0 & x_1 & ... & x_i. diff --git a/src/Functions/if.cpp b/src/Functions/if.cpp index 95c66c20541..d4c2fcdd779 100644 --- a/src/Functions/if.cpp +++ b/src/Functions/if.cpp @@ -987,6 +987,8 @@ private: if (last_short_circuit_argument_index == -1) return; + executeColumnIfNeeded(arguments[0]); + /// Check if condition is const or null to not create full mask from it. if ((isColumnConst(*arguments[0].column) || arguments[0].column->onlyNull()) && !arguments[0].column->empty()) { diff --git a/src/Functions/multiIf.cpp b/src/Functions/multiIf.cpp index 7ed0ee00954..9e0ca4142e5 100644 --- a/src/Functions/multiIf.cpp +++ b/src/Functions/multiIf.cpp @@ -266,6 +266,8 @@ private: if (last_short_circuit_argument_index < 0) return; + executeColumnIfNeeded(arguments[0]); + /// Let's denote x_i' = maskedExecute(x_i, mask). /// multiIf(x_0, y_0, x_1, y_1, x_2, y_2, ..., x_{n-1}, y_{n-1}, y_n) /// We will support mask_i = !x_0 & !x_1 & ... & !x_i diff --git a/src/Functions/toColumnTypeName.cpp b/src/Functions/toColumnTypeName.cpp index 345de2954c4..466a8ba17c5 100644 --- a/src/Functions/toColumnTypeName.cpp +++ b/src/Functions/toColumnTypeName.cpp @@ -28,14 +28,6 @@ public: bool useDefaultImplementationForNothing() const override { return false; } - bool isShortCircuit(ShortCircuitSettings & settings, size_t /*number_of_arguments*/) const override - { - settings.enable_lazy_execution_for_first_argument = true; - settings.enable_lazy_execution_for_common_descendants_of_arguments = true; - settings.force_enable_lazy_execution = true; - return true; - } - bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return false; } size_t getNumberOfArguments() const override diff --git a/src/Functions/toTypeName.cpp b/src/Functions/toTypeName.cpp index f3af49315ed..d9ec08642ca 100644 --- a/src/Functions/toTypeName.cpp +++ b/src/Functions/toTypeName.cpp @@ -32,13 +32,6 @@ public: bool useDefaultImplementationForNothing() const override { return false; } - bool isShortCircuit(ShortCircuitSettings & settings, size_t /*number_of_arguments*/) const override - { - settings.enable_lazy_execution_for_first_argument = false; - settings.enable_lazy_execution_for_common_descendants_of_arguments = true; - settings.force_enable_lazy_execution = true; - return true; - } bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return false; } diff --git a/tests/queries/0_stateless/02321_nested_short_circuit_functions.reference b/tests/queries/0_stateless/02321_nested_short_circuit_functions.reference new file mode 100644 index 00000000000..a942937b975 --- /dev/null +++ b/tests/queries/0_stateless/02321_nested_short_circuit_functions.reference @@ -0,0 +1,20 @@ +1 +1 +0 +0 +0 +1 +1 +0 +0 +0 +0 +1 +1 +1 +1 +0 +0 +0 +0 +0 diff --git a/tests/queries/0_stateless/02321_nested_short_circuit_functions.sql b/tests/queries/0_stateless/02321_nested_short_circuit_functions.sql new file mode 100644 index 00000000000..a8ea62d3ac3 --- /dev/null +++ b/tests/queries/0_stateless/02321_nested_short_circuit_functions.sql @@ -0,0 +1,3 @@ +select number >= 0 and if(number != 0, intDiv(1, number), 1) from numbers(5); +select if(number >= 0, if(number != 0, intDiv(1, number), 1), 1) from numbers(5); +select number >= 0 and if(number = 0, 0, if(number == 1, intDiv(1, number), if(number == 2, intDiv(1, number - 1), if(number == 3, intDiv(1, number - 2), intDiv(1, number - 3))))) from numbers(10); From f4b3af091d0a24bb3f1ac8dec26f7f22ad3e8623 Mon Sep 17 00:00:00 2001 From: zvonand Date: Fri, 17 Jun 2022 23:48:14 +0500 Subject: [PATCH 066/525] fix zero byte --- src/Functions/FunctionBase58Conversion.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h index 87a1821b2de..a0431ca47df 100644 --- a/src/Functions/FunctionBase58Conversion.h +++ b/src/Functions/FunctionBase58Conversion.h @@ -58,7 +58,8 @@ struct Base58Encode /// so we may need to do many resizes (the worst case -- we'll do it for each row) /// This way we do exponential resizes and one final resize after whole operation is complete std::string encoded; - encoder.encode(encoded, source, srclen); + if (srclen) + encoder.encode(encoded, source, srclen); size_t outlen = encoded.size(); if (processed_size + outlen >= current_allocated_size) @@ -66,10 +67,13 @@ struct Base58Encode current_allocated_size += current_allocated_size; dst_data.resize(current_allocated_size); } - std::strcpy(reinterpret_cast(dst_pos), encoded.c_str()); + if (srclen) + std::strcpy(reinterpret_cast(dst_pos), encoded.c_str()); source += srclen + 1; - dst_pos += outlen + 1; + dst_pos += outlen; + *dst_pos = '\0'; + dst_pos += 1; dst_offsets[row] = dst_pos - dst; src_offset_prev = src_offsets[row]; @@ -127,7 +131,9 @@ struct Base58Decode std::strcpy(reinterpret_cast(dst_pos), decoded.c_str()); source += srclen + 1; - dst_pos += outlen + 1; + dst_pos += outlen; + *dst_pos = '\0'; + dst_pos += 1; dst_offsets[row] = dst_pos - dst; src_offset_prev = src_offsets[row]; @@ -176,7 +182,7 @@ public: "Illegal type " + arguments[0].type->getName() + " of 1st argument of function " + getName() + ". Must be String.", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - if (!isString(arguments[1].type)) + if (arguments.size() == 2 && !isString(arguments[1].type)) throw Exception( "Illegal type " + arguments[1].type->getName() + " of 2nd argument of function " + getName() + ". Must be String.", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); From 0cf88e09508ff378505216f82555d4781c20303d Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 18 Jun 2022 23:16:18 +0300 Subject: [PATCH 067/525] Revert "ClickHouse's boringssl module updated to the official version of the FIPS compliant." --- contrib/boringssl | 2 +- contrib/boringssl-cmake/CMakeLists.txt | 47 +- contrib/boringssl-cmake/crypto_test_data.cc | 2807 ++++++++++---- contrib/boringssl-cmake/err_data.c | 954 ++--- .../ios-aarch64/crypto/chacha/chacha-armv8.S | 9 + .../crypto/fipsmodule/aesv8-armx64.S | 10 + .../crypto/fipsmodule/armv8-mont.S | 13 + .../crypto/fipsmodule/ghash-neon-armv8.S | 5 + .../crypto/fipsmodule/ghashv8-armx64.S | 3 + .../crypto/fipsmodule/sha1-armv8.S | 4 + .../crypto/fipsmodule/sha256-armv8.S | 4 + .../crypto/fipsmodule/sha512-armv8.S | 2 + .../crypto/fipsmodule/vpaes-armv8.S | 19 + .../crypto/test/trampoline-armv8.S | 73 + .../crypto/third_party/sike/asm/fp-armv8.S | 996 ----- .../ios-arm/crypto/fipsmodule/aes-armv4.S | 1233 ------- .../ios-arm/crypto/fipsmodule/ghash-armv4.S | 342 -- .../ios-arm/crypto/fipsmodule/vpaes-armv7.S | 1265 +++++++ .../ios-arm/crypto/test/trampoline-armv4.S | 1 - .../crypto/chacha/chacha-armv8.S | 10 + .../crypto/fipsmodule/aesv8-armx64.S | 11 + .../crypto/fipsmodule/armv8-mont.S | 14 + .../crypto/fipsmodule/ghash-neon-armv8.S | 6 + .../crypto/fipsmodule/ghashv8-armx64.S | 4 + .../crypto/fipsmodule/sha1-armv8.S | 5 + .../crypto/fipsmodule/sha256-armv8.S | 5 + .../crypto/fipsmodule/sha512-armv8.S | 3 + .../crypto/fipsmodule/vpaes-armv8.S | 20 + .../crypto/test/trampoline-armv8.S | 74 + .../crypto/third_party/sike/asm/fp-armv8.S | 998 ----- .../linux-arm/crypto/chacha/chacha-armv4.S | 1 + .../linux-arm/crypto/fipsmodule/aes-armv4.S | 1221 ------ .../crypto/fipsmodule/aesv8-armx32.S | 1 + .../linux-arm/crypto/fipsmodule/armv4-mont.S | 1 + .../linux-arm/crypto/fipsmodule/bsaes-armv7.S | 1 + .../linux-arm/crypto/fipsmodule/ghash-armv4.S | 337 +- .../crypto/fipsmodule/ghashv8-armx32.S | 1 + .../crypto/fipsmodule/sha1-armv4-large.S | 1 + .../crypto/fipsmodule/sha256-armv4.S | 1 + .../crypto/fipsmodule/sha512-armv4.S | 1 + .../linux-arm/crypto/fipsmodule/vpaes-armv7.S | 1236 +++++++ .../linux-arm/crypto/test/trampoline-armv4.S | 2 +- .../crypto/fipsmodule/aesp8-ppc.S | 1 + .../crypto/fipsmodule/ghashp8-ppc.S | 1 + .../crypto/test/trampoline-ppc.S | 1410 +++++++ .../linux-x86/crypto/chacha/chacha-x86.S | 1 + .../linux-x86/crypto/fipsmodule/aes-586.S | 3262 ----------------- .../linux-x86/crypto/fipsmodule/aesni-x86.S | 9 +- .../linux-x86/crypto/fipsmodule/bn-586.S | 548 +-- .../linux-x86/crypto/fipsmodule/co-586.S | 1 + .../crypto/fipsmodule/ghash-ssse3-x86.S | 1 + .../linux-x86/crypto/fipsmodule/ghash-x86.S | 782 +--- .../linux-x86/crypto/fipsmodule/md5-586.S | 1 + .../linux-x86/crypto/fipsmodule/sha1-586.S | 1 + .../linux-x86/crypto/fipsmodule/sha256-586.S | 1 + .../linux-x86/crypto/fipsmodule/sha512-586.S | 1 + .../linux-x86/crypto/fipsmodule/vpaes-x86.S | 7 +- .../linux-x86/crypto/fipsmodule/x86-mont.S | 1 + .../linux-x86/crypto/test/trampoline-x86.S | 1 + .../crypto/chacha/chacha-x86_64.S | 1 + .../crypto/cipher_extra/aes128gcmsiv-x86_64.S | 1 + .../cipher_extra/chacha20_poly1305_x86_64.S | 3 +- .../crypto/fipsmodule/aes-x86_64.S | 2664 -------------- .../crypto/fipsmodule/aesni-gcm-x86_64.S | 5 +- .../crypto/fipsmodule/aesni-x86_64.S | 13 +- .../crypto/fipsmodule/ghash-ssse3-x86_64.S | 1 + .../crypto/fipsmodule/ghash-x86_64.S | 746 +--- .../crypto/fipsmodule/md5-x86_64.S | 1 + .../crypto/fipsmodule/p256-x86_64-asm.S | 1 + .../crypto/fipsmodule/p256_beeu-x86_64-asm.S | 1 + .../crypto/fipsmodule/rdrand-x86_64.S | 1 + .../crypto/fipsmodule/rsaz-avx2.S | 1 + .../crypto/fipsmodule/sha1-x86_64.S | 1868 ++++++++++ .../crypto/fipsmodule/sha256-x86_64.S | 1 + .../crypto/fipsmodule/sha512-x86_64.S | 1 + .../crypto/fipsmodule/vpaes-x86_64.S | 9 +- .../crypto/fipsmodule/x86_64-mont.S | 1 + .../crypto/fipsmodule/x86_64-mont5.S | 1 + .../crypto/test/trampoline-x86_64.S | 1 + .../crypto/third_party/sike/asm/fp-x86_64.S | 1870 ---------- .../mac-x86/crypto/fipsmodule/aes-586.S | 3226 ---------------- .../mac-x86/crypto/fipsmodule/aesni-x86.S | 8 +- .../mac-x86/crypto/fipsmodule/bn-586.S | 545 --- .../mac-x86/crypto/fipsmodule/ghash-x86.S | 777 +--- .../mac-x86/crypto/fipsmodule/vpaes-x86.S | 6 +- .../mac-x86_64/crypto/fipsmodule/aes-x86_64.S | 2645 ------------- .../crypto/fipsmodule/aesni-gcm-x86_64.S | 4 +- .../crypto/fipsmodule/aesni-x86_64.S | 12 +- .../crypto/fipsmodule/ghash-x86_64.S | 733 ---- .../crypto/fipsmodule/sha1-x86_64.S | 1867 ++++++++++ .../crypto/fipsmodule/vpaes-x86_64.S | 8 +- .../crypto/third_party/sike/asm/fp-x86_64.S | 1869 ---------- .../win-x86/crypto/fipsmodule/aes-586.asm | 3225 ---------------- .../win-x86/crypto/fipsmodule/aesni-x86.asm | 8 +- .../win-x86/crypto/fipsmodule/bn-586.asm | 544 --- .../win-x86/crypto/fipsmodule/ghash-x86.asm | 775 +--- .../win-x86/crypto/fipsmodule/vpaes-x86.asm | 6 +- .../cipher_extra/chacha20_poly1305_x86_64.asm | 2 + .../crypto/fipsmodule/aes-x86_64.asm | 2962 --------------- .../crypto/fipsmodule/aesni-gcm-x86_64.asm | 4 +- .../crypto/fipsmodule/aesni-x86_64.asm | 12 +- .../crypto/fipsmodule/ghash-x86_64.asm | 857 ----- .../crypto/fipsmodule/sha1-x86_64.asm | 1960 ++++++++++ .../crypto/fipsmodule/vpaes-x86_64.asm | 8 +- .../crypto/third_party/sike/asm/fp-x86_64.asm | 1951 ---------- src/Functions/FunctionsAES.cpp | 4 + tests/performance/encrypt_decrypt.xml | 4 + .../encrypt_decrypt_empty_string.xml | 4 + .../0_stateless/01318_decrypt.reference | 12 + tests/queries/0_stateless/01318_decrypt.sql | 4 + .../0_stateless/01318_encrypt.reference | 12 + tests/queries/0_stateless/01318_encrypt.sql | 4 + 112 files changed, 12668 insertions(+), 36353 deletions(-) delete mode 100644 contrib/boringssl-cmake/ios-aarch64/crypto/third_party/sike/asm/fp-armv8.S delete mode 100644 contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/aes-armv4.S create mode 100644 contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/vpaes-armv7.S delete mode 100644 contrib/boringssl-cmake/linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S delete mode 100644 contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aes-armv4.S create mode 100644 contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/vpaes-armv7.S create mode 100644 contrib/boringssl-cmake/linux-ppc64le/crypto/test/trampoline-ppc.S delete mode 100644 contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aes-586.S delete mode 100644 contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aes-x86_64.S delete mode 100644 contrib/boringssl-cmake/linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S delete mode 100644 contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aes-586.S delete mode 100644 contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aes-x86_64.S delete mode 100644 contrib/boringssl-cmake/mac-x86_64/crypto/third_party/sike/asm/fp-x86_64.S delete mode 100644 contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aes-586.asm delete mode 100644 contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aes-x86_64.asm delete mode 100644 contrib/boringssl-cmake/win-x86_64/crypto/third_party/sike/asm/fp-x86_64.asm diff --git a/contrib/boringssl b/contrib/boringssl index 9c0715ce459..c1e01a441d6 160000 --- a/contrib/boringssl +++ b/contrib/boringssl @@ -1 +1 @@ -Subproject commit 9c0715ce459de443e7b08f270a518c1702f1a380 +Subproject commit c1e01a441d6db234f4f12e63a7657d1f9e6db9c1 diff --git a/contrib/boringssl-cmake/CMakeLists.txt b/contrib/boringssl-cmake/CMakeLists.txt index 3eab4df0c11..9a1f667f52e 100644 --- a/contrib/boringssl-cmake/CMakeLists.txt +++ b/contrib/boringssl-cmake/CMakeLists.txt @@ -159,14 +159,12 @@ set( ios-aarch64/crypto/fipsmodule/sha512-armv8.S ios-aarch64/crypto/fipsmodule/vpaes-armv8.S ios-aarch64/crypto/test/trampoline-armv8.S - ios-aarch64/crypto/third_party/sike/asm/fp-armv8.S ) set( CRYPTO_ios_arm_SOURCES ios-arm/crypto/chacha/chacha-armv4.S - ios-arm/crypto/fipsmodule/aes-armv4.S ios-arm/crypto/fipsmodule/aesv8-armx32.S ios-arm/crypto/fipsmodule/armv4-mont.S ios-arm/crypto/fipsmodule/bsaes-armv7.S @@ -192,14 +190,12 @@ set( linux-aarch64/crypto/fipsmodule/sha512-armv8.S linux-aarch64/crypto/fipsmodule/vpaes-armv8.S linux-aarch64/crypto/test/trampoline-armv8.S - linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S ) set( CRYPTO_linux_arm_SOURCES linux-arm/crypto/chacha/chacha-armv4.S - linux-arm/crypto/fipsmodule/aes-armv4.S linux-arm/crypto/fipsmodule/aesv8-armx32.S linux-arm/crypto/fipsmodule/armv4-mont.S linux-arm/crypto/fipsmodule/bsaes-armv7.S @@ -219,13 +215,13 @@ set( linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S + linux-ppc64le/crypto/test/trampoline-ppc.S ) set( CRYPTO_linux_x86_SOURCES linux-x86/crypto/chacha/chacha-x86.S - linux-x86/crypto/fipsmodule/aes-586.S linux-x86/crypto/fipsmodule/aesni-x86.S linux-x86/crypto/fipsmodule/bn-586.S linux-x86/crypto/fipsmodule/co-586.S @@ -246,7 +242,6 @@ set( linux-x86_64/crypto/chacha/chacha-x86_64.S linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S - linux-x86_64/crypto/fipsmodule/aes-x86_64.S linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S linux-x86_64/crypto/fipsmodule/aesni-x86_64.S linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S @@ -263,7 +258,6 @@ set( linux-x86_64/crypto/fipsmodule/x86_64-mont.S linux-x86_64/crypto/fipsmodule/x86_64-mont5.S linux-x86_64/crypto/test/trampoline-x86_64.S - linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S "${BORINGSSL_SOURCE_DIR}/crypto/hrss/asm/poly_rq_mul.S" ) @@ -271,7 +265,6 @@ set( CRYPTO_mac_x86_SOURCES mac-x86/crypto/chacha/chacha-x86.S - mac-x86/crypto/fipsmodule/aes-586.S mac-x86/crypto/fipsmodule/aesni-x86.S mac-x86/crypto/fipsmodule/bn-586.S mac-x86/crypto/fipsmodule/co-586.S @@ -292,7 +285,6 @@ set( mac-x86_64/crypto/chacha/chacha-x86_64.S mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S - mac-x86_64/crypto/fipsmodule/aes-x86_64.S mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S mac-x86_64/crypto/fipsmodule/aesni-x86_64.S mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S @@ -309,7 +301,6 @@ set( mac-x86_64/crypto/fipsmodule/x86_64-mont.S mac-x86_64/crypto/fipsmodule/x86_64-mont5.S mac-x86_64/crypto/test/trampoline-x86_64.S - mac-x86_64/crypto/third_party/sike/asm/fp-x86_64.S ) set( @@ -331,7 +322,6 @@ set( CRYPTO_win_x86_SOURCES win-x86/crypto/chacha/chacha-x86.asm - win-x86/crypto/fipsmodule/aes-586.asm win-x86/crypto/fipsmodule/aesni-x86.asm win-x86/crypto/fipsmodule/bn-586.asm win-x86/crypto/fipsmodule/co-586.asm @@ -352,7 +342,6 @@ set( win-x86_64/crypto/chacha/chacha-x86_64.asm win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm - win-x86_64/crypto/fipsmodule/aes-x86_64.asm win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm win-x86_64/crypto/fipsmodule/aesni-x86_64.asm win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.asm @@ -369,7 +358,6 @@ set( win-x86_64/crypto/fipsmodule/x86_64-mont.asm win-x86_64/crypto/fipsmodule/x86_64-mont5.asm win-x86_64/crypto/test/trampoline-x86_64.asm - win-x86_64/crypto/third_party/sike/asm/fp-x86_64.asm ) if(APPLE AND ARCH STREQUAL "aarch64") @@ -401,6 +389,7 @@ add_library( "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_object.c" "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_octet.c" "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_print.c" + "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strex.c" "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strnid.c" "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_time.c" "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_type.c" @@ -430,6 +419,7 @@ add_library( "${BORINGSSL_SOURCE_DIR}/crypto/bio/printf.c" "${BORINGSSL_SOURCE_DIR}/crypto/bio/socket.c" "${BORINGSSL_SOURCE_DIR}/crypto/bio/socket_helper.c" + "${BORINGSSL_SOURCE_DIR}/crypto/blake2/blake2.c" "${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/bn_asn1.c" "${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/convert.c" "${BORINGSSL_SOURCE_DIR}/crypto/buf/buf.c" @@ -454,20 +444,22 @@ add_library( "${BORINGSSL_SOURCE_DIR}/crypto/conf/conf.c" "${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-fuchsia.c" "${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-linux.c" + "${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-win.c" "${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm-linux.c" "${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm.c" "${BORINGSSL_SOURCE_DIR}/crypto/cpu-intel.c" "${BORINGSSL_SOURCE_DIR}/crypto/cpu-ppc64le.c" "${BORINGSSL_SOURCE_DIR}/crypto/crypto.c" + "${BORINGSSL_SOURCE_DIR}/crypto/curve25519/curve25519.c" "${BORINGSSL_SOURCE_DIR}/crypto/curve25519/spake25519.c" - "${BORINGSSL_SOURCE_DIR}/crypto/dh/check.c" - "${BORINGSSL_SOURCE_DIR}/crypto/dh/dh.c" - "${BORINGSSL_SOURCE_DIR}/crypto/dh/dh_asn1.c" - "${BORINGSSL_SOURCE_DIR}/crypto/dh/params.c" + "${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/dh_asn1.c" + "${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/params.c" "${BORINGSSL_SOURCE_DIR}/crypto/digest_extra/digest_extra.c" "${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa.c" "${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa_asn1.c" "${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_asn1.c" + "${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_derive.c" + "${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/hash_to_curve.c" "${BORINGSSL_SOURCE_DIR}/crypto/ecdh_extra/ecdh_extra.c" "${BORINGSSL_SOURCE_DIR}/crypto/ecdsa_extra/ecdsa_asn1.c" "${BORINGSSL_SOURCE_DIR}/crypto/engine/engine.c" @@ -492,8 +484,8 @@ add_library( "${BORINGSSL_SOURCE_DIR}/crypto/ex_data.c" "${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/bcm.c" "${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/fips_shared_support.c" - "${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/is_fips.c" "${BORINGSSL_SOURCE_DIR}/crypto/hkdf/hkdf.c" + "${BORINGSSL_SOURCE_DIR}/crypto/hpke/hpke.c" "${BORINGSSL_SOURCE_DIR}/crypto/hrss/hrss.c" "${BORINGSSL_SOURCE_DIR}/crypto/lhash/lhash.c" "${BORINGSSL_SOURCE_DIR}/crypto/mem.c" @@ -519,6 +511,7 @@ add_library( "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/deterministic.c" "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/forkunsafe.c" "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/fuchsia.c" + "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/passive.c" "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/rand_extra.c" "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/windows.c" "${BORINGSSL_SOURCE_DIR}/crypto/rc4/rc4.c" @@ -532,15 +525,18 @@ add_library( "${BORINGSSL_SOURCE_DIR}/crypto/thread_none.c" "${BORINGSSL_SOURCE_DIR}/crypto/thread_pthread.c" "${BORINGSSL_SOURCE_DIR}/crypto/thread_win.c" + "${BORINGSSL_SOURCE_DIR}/crypto/trust_token/pmbtoken.c" + "${BORINGSSL_SOURCE_DIR}/crypto/trust_token/trust_token.c" + "${BORINGSSL_SOURCE_DIR}/crypto/trust_token/voprf.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_digest.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_sign.c" - "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_strex.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_verify.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/algorithm.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/asn1_gen.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/by_dir.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/by_file.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/i2d_pr.c" + "${BORINGSSL_SOURCE_DIR}/crypto/x509/name_print.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/rsa_pss.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/t_crl.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509/t_req.c" @@ -606,19 +602,11 @@ add_library( "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pci.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcia.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcons.c" - "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pku.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pmaps.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_prn.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_purp.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_skey.c" - "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_sxnet.c" "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_utl.c" - "${BORINGSSL_SOURCE_DIR}/third_party/fiat/curve25519.c" - "${BORINGSSL_SOURCE_DIR}/third_party/sike/asm/fp_generic.c" - "${BORINGSSL_SOURCE_DIR}/third_party/sike/curve_params.c" - "${BORINGSSL_SOURCE_DIR}/third_party/sike/fpx.c" - "${BORINGSSL_SOURCE_DIR}/third_party/sike/isogeny.c" - "${BORINGSSL_SOURCE_DIR}/third_party/sike/sike.c" ) add_library( @@ -631,6 +619,8 @@ add_library( "${BORINGSSL_SOURCE_DIR}/ssl/d1_srtp.cc" "${BORINGSSL_SOURCE_DIR}/ssl/dtls_method.cc" "${BORINGSSL_SOURCE_DIR}/ssl/dtls_record.cc" + "${BORINGSSL_SOURCE_DIR}/ssl/encrypted_client_hello.cc" + "${BORINGSSL_SOURCE_DIR}/ssl/extensions.cc" "${BORINGSSL_SOURCE_DIR}/ssl/handoff.cc" "${BORINGSSL_SOURCE_DIR}/ssl/handshake.cc" "${BORINGSSL_SOURCE_DIR}/ssl/handshake_client.cc" @@ -653,7 +643,6 @@ add_library( "${BORINGSSL_SOURCE_DIR}/ssl/ssl_versions.cc" "${BORINGSSL_SOURCE_DIR}/ssl/ssl_x509.cc" "${BORINGSSL_SOURCE_DIR}/ssl/t1_enc.cc" - "${BORINGSSL_SOURCE_DIR}/ssl/t1_lib.cc" "${BORINGSSL_SOURCE_DIR}/ssl/tls13_both.cc" "${BORINGSSL_SOURCE_DIR}/ssl/tls13_client.cc" "${BORINGSSL_SOURCE_DIR}/ssl/tls13_enc.cc" @@ -674,7 +663,9 @@ add_executable( "${BORINGSSL_SOURCE_DIR}/tool/client.cc" "${BORINGSSL_SOURCE_DIR}/tool/const.cc" "${BORINGSSL_SOURCE_DIR}/tool/digest.cc" + "${BORINGSSL_SOURCE_DIR}/tool/fd.cc" "${BORINGSSL_SOURCE_DIR}/tool/file.cc" + "${BORINGSSL_SOURCE_DIR}/tool/generate_ech.cc" "${BORINGSSL_SOURCE_DIR}/tool/generate_ed25519.cc" "${BORINGSSL_SOURCE_DIR}/tool/genrsa.cc" "${BORINGSSL_SOURCE_DIR}/tool/pkcs12.cc" diff --git a/contrib/boringssl-cmake/crypto_test_data.cc b/contrib/boringssl-cmake/crypto_test_data.cc index 91675df55dd..c7f75386825 100644 --- a/contrib/boringssl-cmake/crypto_test_data.cc +++ b/contrib/boringssl-cmake/crypto_test_data.cc @@ -22,6 +22,7 @@ * crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt \ * crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt \ * crypto/cipher_extra/test/aes_128_gcm_tests.txt \ + * crypto/cipher_extra/test/aes_192_gcm_tests.txt \ * crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt \ * crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt \ * crypto/cipher_extra/test/aes_256_cbc_sha256_tls_tests.txt \ @@ -54,6 +55,7 @@ * crypto/evp/scrypt_tests.txt \ * crypto/fipsmodule/aes/aes_tests.txt \ * crypto/fipsmodule/bn/bn_tests.txt \ + * crypto/fipsmodule/bn/miller_rabin_tests.txt \ * crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt \ * crypto/fipsmodule/ec/p256-x86_64_tests.txt \ * crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt \ @@ -61,15 +63,46 @@ * crypto/fipsmodule/modes/gcm_tests.txt \ * crypto/fipsmodule/rand/ctrdrbg_vectors.txt \ * crypto/hmac_extra/hmac_tests.txt \ + * crypto/hpke/hpke_test_vectors.txt \ * crypto/poly1305/poly1305_tests.txt \ * crypto/siphash/siphash_tests.txt \ - * crypto/x509/many_constraints.pem \ - * crypto/x509/many_names1.pem \ - * crypto/x509/many_names2.pem \ - * crypto/x509/many_names3.pem \ - * crypto/x509/some_names1.pem \ - * crypto/x509/some_names2.pem \ - * crypto/x509/some_names3.pem \ + * crypto/x509/test/basic_constraints_ca.pem \ + * crypto/x509/test/basic_constraints_ca_pathlen_0.pem \ + * crypto/x509/test/basic_constraints_ca_pathlen_1.pem \ + * crypto/x509/test/basic_constraints_ca_pathlen_10.pem \ + * crypto/x509/test/basic_constraints_leaf.pem \ + * crypto/x509/test/basic_constraints_none.pem \ + * crypto/x509/test/invalid_extension_intermediate.pem \ + * crypto/x509/test/invalid_extension_intermediate_authority_key_identifier.pem \ + * crypto/x509/test/invalid_extension_intermediate_basic_constraints.pem \ + * crypto/x509/test/invalid_extension_intermediate_ext_key_usage.pem \ + * crypto/x509/test/invalid_extension_intermediate_key_usage.pem \ + * crypto/x509/test/invalid_extension_intermediate_name_constraints.pem \ + * crypto/x509/test/invalid_extension_intermediate_subject_alt_name.pem \ + * crypto/x509/test/invalid_extension_intermediate_subject_key_identifier.pem \ + * crypto/x509/test/invalid_extension_leaf.pem \ + * crypto/x509/test/invalid_extension_leaf_authority_key_identifier.pem \ + * crypto/x509/test/invalid_extension_leaf_basic_constraints.pem \ + * crypto/x509/test/invalid_extension_leaf_ext_key_usage.pem \ + * crypto/x509/test/invalid_extension_leaf_key_usage.pem \ + * crypto/x509/test/invalid_extension_leaf_name_constraints.pem \ + * crypto/x509/test/invalid_extension_leaf_subject_alt_name.pem \ + * crypto/x509/test/invalid_extension_leaf_subject_key_identifier.pem \ + * crypto/x509/test/invalid_extension_root.pem \ + * crypto/x509/test/invalid_extension_root_authority_key_identifier.pem \ + * crypto/x509/test/invalid_extension_root_basic_constraints.pem \ + * crypto/x509/test/invalid_extension_root_ext_key_usage.pem \ + * crypto/x509/test/invalid_extension_root_key_usage.pem \ + * crypto/x509/test/invalid_extension_root_name_constraints.pem \ + * crypto/x509/test/invalid_extension_root_subject_alt_name.pem \ + * crypto/x509/test/invalid_extension_root_subject_key_identifier.pem \ + * crypto/x509/test/many_constraints.pem \ + * crypto/x509/test/many_names1.pem \ + * crypto/x509/test/many_names2.pem \ + * crypto/x509/test/many_names3.pem \ + * crypto/x509/test/some_names1.pem \ + * crypto/x509/test/some_names2.pem \ + * crypto/x509/test/some_names3.pem \ * third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt \ * third_party/wycheproof_testvectors/aes_cmac_test.txt \ * third_party/wycheproof_testvectors/aes_gcm_siv_test.txt \ @@ -89,8 +122,39 @@ * third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt \ * third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt \ * third_party/wycheproof_testvectors/eddsa_test.txt \ + * third_party/wycheproof_testvectors/hkdf_sha1_test.txt \ + * third_party/wycheproof_testvectors/hkdf_sha256_test.txt \ + * third_party/wycheproof_testvectors/hkdf_sha384_test.txt \ + * third_party/wycheproof_testvectors/hkdf_sha512_test.txt \ + * third_party/wycheproof_testvectors/hmac_sha1_test.txt \ + * third_party/wycheproof_testvectors/hmac_sha224_test.txt \ + * third_party/wycheproof_testvectors/hmac_sha256_test.txt \ + * third_party/wycheproof_testvectors/hmac_sha384_test.txt \ + * third_party/wycheproof_testvectors/hmac_sha512_test.txt \ * third_party/wycheproof_testvectors/kwp_test.txt \ * third_party/wycheproof_testvectors/kw_test.txt \ + * third_party/wycheproof_testvectors/primality_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.txt \ + * third_party/wycheproof_testvectors/rsa_oaep_misc_test.txt \ + * third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.txt \ + * third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.txt \ + * third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.txt \ * third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt \ * third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt \ * third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt \ @@ -98,8 +162,19 @@ * third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.txt \ * third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.txt \ * third_party/wycheproof_testvectors/rsa_pss_misc_test.txt \ + * third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.txt \ + * third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.txt \ * third_party/wycheproof_testvectors/rsa_signature_test.txt \ - * third_party/wycheproof_testvectors/x25519_test.txt */ + * third_party/wycheproof_testvectors/x25519_test.txt \ + * third_party/wycheproof_testvectors/xchacha20_poly1305_test.txt */ /* clang-format off */ @@ -348,9 +423,14 @@ static const char *kData7[] = { "397440f1a4a0c7c9c2773c0a0cd3b890effb010dbcc00237dbed1177b86bf60913309bfda9376b4192da59a360afc5bcfaf8be16ea8313de97b417aaddceadc63a1c3a355693616413ed4101ad68f6e6aaa99c839dd2a9ff536\nAD: 18e3195358bae4ccf43ff8daa34902fe48f99fc1371d34060aaa442a43016a1d756f795fa5c9c4a828525554571e18c27134f46094790dd1e68471ee40c17bfa02f175b2c2f7f2aef20f00e4d71926560b58f015de19c871d808acdd341675d8fc19d1e6d4028e1e8926df500c4685c14729c6a056898cf919bf3ae429fa3ca8746495716d78c9a8f2ecde596f985b1c25ad0e73aa305a86259319176b4c4f3bb231fdaa478a856f46416ddb10a14ed23c96dcb86f5bea3114568a44d8fc6ff4bb47fd0e2538b70d964842910a682e7bc7c7263249832c21b7083a1e8b143828de0f3dea8b404cbd82efb19a11e4d60aeef13abd86621ccbc3d8f220715730eabbe04a6bf0e11a4f78cd2c4369ce2447a76f4fa48ef8d322a8a28a67039c24c4bfbf\nCT: 6beeb306c71318cedabe3877ec916ce2074b2c3f1df887cc3a3e8019c10d353854b6b65c947359138d5decc62a42d50921dc8f6cf63a16062af47aa8cd50d0b2dcbc3300ba0d7d069a5e4b4fe03bbf7062c6001e276be116fdd00d15a6399d1b0db71c58f396f8bc7e51c2b1f47430d4ebd6c5d05328b29aa79bcb26927ea5a40c82715aa0e36cc83ca6d250812c1305c02ed4291a25762cd709cb3d808031b5f918ce253f622c1afcb83c43707edc493d18ec6f0dba4353a1cde7184db65654088fa13baf45f7643f0dfedf4058e6095156b791ed30827c556a7721658314356e7a3f3c62cd62fe938b008cda56ceca71442fa0ffeb78b13c5847a3ee9668bcd2a01c753bd797c240378505d1e8f2b8905428b23bf589de9af390f94f21630d1826\nTAG: df5a21a399354b2b3346a9eb6820b81f\n\nKEY: 06a4c6a8aa189134f5784a525d46ff10\nNONCE: 0f765d3893af99f5c3e6d9e1\nIN: 706b754094869313523493089e591d34868b708cbde9bd8b42cba8175d1fdb6a8769bb9ec156d44bcb8f9cbf2685a0dc18b5a802dcf7a12570bb9042a0aa53dfb19af8c0f13763f388d9626a480d6d435dd90fbdbb4292d9015a5633252aa0583498d6f7ec54460d8589c1d6a6d16a349d10ec6070e1cc52e5fb996f810d333675a7130e4f3db9f4db0e3fd3541d32e0b2efbd40ba70cd59295bc8d08481f0f137832b01bac1778ffd7450376e174067b3ec23d0495cbf936bdc176cabc3f42e2991947a4fa87dd8343c32fa3d7ac0e2d22660a0c128a00e1b51a8742fdb2aff44540e39e588c5920ea16293aaa522513c944d3b77f3a0e90bd9105319c170886202e336893d100b0a25aa609a49a8255f78233561f7b88256386d1c3c002c3ee68f2775585c65\nAD: 18e2ed6d500b176e49f7e1b5074c0b7dbfdefdf00a63d9fa2fea8c5e78a1c4ae00f17b23442933543ac864097629e112a099f3dce6d5beb1e3f3c8e19522c6b8f615cbe23444bc91a802edf8a08995a55125da805ebb073fd89863996ef708f7293069a744ad95db8c17cbcfedc331119e85020df8852d74b8092fd38ad424f3da41b4775beac19536ed801ac1069925b12303d8ad2c52c36ca5b4ec95e96f02ebc5725ee6cdc099e666d9055b789e39ded77a8fdca0fe2d94b8039be55b6a75209cbee4fc7864957402b50427db71bc75a0b1e3d2ed6ea20f12a980c5ee916067d0dde7d686570d075da4df7088fe5dccf0d440064a96998da6f318b603d513104c723f27484780bdad586ee358d821b480f9569e4dbdd1a45ab9056f8d8e5a879789a0d65338\nCT: 5f3627bd53f8da0bbe6f3c9246d6f96fe9abb91cdecf66ddd42f833d98f4d4634c2e1e1ad4088c84c22191bdb9d99ef227320e455dd112c4a9e9cca95724fcc9ae024ed12bf60a802d0b87b99d9bf22590786567c2962171d2b05bec9754c627608e9eba7bccc70540aa4da72e1e04b26d8f968b10230f707501c0091a8ac118f86e87aae1ac00257aee29c3345bd3839154977acd378fc1b2197f5c1fd8e12262f9c2974fb92dc481eeb51aadd44a8851f61b93a84ba57f2870df0423d289bfdcfe634f9ecb7d7c6110a95b49418a2dd6663377690275c205b3efa79a0a77c92567fb429d8ee437312a39df7516dc238f7b9414938223d7ec24d256d3fb3a5954a7c75dbd79486d49ba6bb38a7ccce0f58700260b71319adf98ab8684e34913abe2d9d97193e2\nTAG: e690e89af39ff367f5d40a1b7c7ccd4f\n\nKEY: 31323334353637383930313233343536\nNONCE: 31323334353637383930313233343536\nIN: 48656c6c6f2c20576f726c64\nAD:\nCT: cec189d0e8419b90fb16d555\nTAG: 32893832a8d609224d77c2e56a922282\n\n# AES GCM test vectors from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf\n\nKEY: 00000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: \"\"\nCT: \"\"\nAD: \"\"\nTAG: 58e2fccefa7e3061367f1d57a4e7455a\n\nKEY: 00000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: 00000000000000000000000000000000\nCT: 0388dace60b6a392f328c2b971b2fe78\nAD: \"\"\nTAG: ab6e47d42cec13bdf53a67b21257bddf\n\nKEY: feffe9928665731c6d6a8f9467308308\nNONCE: cafebabefacedbaddecaf888\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nCT: 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985\nAD: \"\"\nTAG: 4d5c2af327cd64a62cf35abd2ba6fab4\n\nKEY: feffe9928665731c6d6a8f9467308308\nNONCE: cafebabefacedbaddecaf888\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: 5bc94fbc3221a5db94fae95ae7121a47\n\nKEY: feffe9928665731c6d6a8f9467308308\nNONCE: cafebabefacedbad\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: 61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: 3612d2e79e3b0785561be14aaca2fccb\n\nKEY: feffe9928665731c6d6a8f9467308308\nNONCE: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: 619cc5aefffe0bfa462af43c1699d050\n\n# local add-ons, primarily streaming ghash tests\n\n# 128 bytes AD\nKEY: 00000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: \"\"\nCT: \"\"\nAD: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad\nTAG: 5fea793a2d6f974d37e68e0cb8ff9492\n\n# 48 bytes plaintext\nKEY: 00000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nCT: 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0\nAD: \"\"\nTAG: 9dd0a376b08e40eb00c35f29f9ea61a4\n\n# 80 bytes plaintext\nKEY: 00000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nCT: 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0c94da219118e297d7b7ebcbcc9c388f28ade7d85a8ee35616f7124a9d5270291\nAD: \"\"\nTAG: 98885a3a22bd4742fe7b72172193b163\n\n# 128 bytes plaintext\nKEY: 00000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nCT: 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0c94da219118e297d7b7ebcbcc9c388f28ade7d85a8ee35616f7124a9d527029195b84d1b96c690ff2f2de30bf2ec89e00253786e126504f0dab90c48a30321de3345e6b0461e7c9e6c6b7afedde83f40\nAD: \"\"\nTAG: cac45f60e31efd3b5a43b98a22ce1aa1\n\n# 192 bytes plaintext, iv is chosen so that initial counter LSB is 0xFF\nKEY: 00000000000000000000000000000000\nNONCE: ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nIN: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nCT: 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af", "24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606\nAD: \"\"\nTAG: 566f8ef683078bfdeeffa869d751a017\n\n# 288 bytes plaintext, iv is chosen so that initial counter LSB is 0xFF\nKEY: 00000000000000000000000000000000\nNONCE: ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nIN: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nCT: 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606872ca10dee15b3249b1a1b958f23134c4bccb7d03200bce420a2f8eb66dcf3644d1423c1b5699003c13ecef4bf38a3b60eedc34033bac1902783dc6d89e2e774188a439c7ebcc0672dbda4ddcfb2794613b0be41315ef778708a70ee7d75165c\nAD: \"\"\nTAG: 8b307f6b33286d0ab026a9ed3fe1e85f\n\n# 80 bytes plaintext, submitted by Intel\nKEY: 843ffcf5d2b72694d19ed01d01249412\nNONCE: dbcca32ebf9b804617c3aa9e\nIN: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f\nAD: 00000000000000000000000000000000101112131415161718191a1b1c1d1e1f\nCT: 6268c6fa2a80b2d137467f092f657ac04d89be2beaa623d61b5a868c8f03ff95d3dcee23ad2f1ab3a6c80eaf4b140eb05de3457f0fbc111a6b43d0763aa422a3013cf1dc37fe417d1fbfc449b75d4cc5\nTAG: 3b629ccfbc1119b7319e1dce2cd6fd6d\n", }; -static const size_t kLen8 = 469493; +static const size_t kLen8 = 2196; static const char *kData8[] = { + "# Test vectors from NIST: http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf\n\nKEY: 000000000000000000000000000000000000000000000000\nNONCE: 000000000000000000000000\nAD:\nTAG: cd33b28ac773f74ba00ed1f312572435\nIN:\nCT:\n\nKEY: 000000000000000000000000000000000000000000000000\nNONCE: 000000000000000000000000\nAD:\nTAG: 2ff58d80033927ab8ef4d4587514f0fb\nIN: 00000000000000000000000000000000\nCT: 98e7247c07f0fe411c267e4384b0f600\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c\nNONCE: cafebabefacedbaddecaf888\nAD:\nTAG: 9924a7c8587336bfb118024db8674a14\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nCT: 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade256\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c\nNONCE: cafebabefacedbaddecaf888\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: 2519498e80f1478f37ba55bd6d27618c\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c\nNONCE: cafebabefacedbad\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: 65dcc57fcf623a24094fcca40d3533f8\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c\nNONCE: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: dcf566ff291c25bbb8568fc3d376a6d9\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b\n", +}; +static const size_t kLen9 = 469493; + +static const char *kData9[] = { "# Generated by\n# go run make_legacy_aead_tests.go -cipher aes256 -mac sha1 -implicit-iv\n#\n# Note: aead_test's input format splits the ciphertext and tag positions of the\n# sealed input. But these legacy AEADs are MAC-then-encrypt and so the 'TAG' may\n# also include padding. We write the byte length of the MAC to 'TAG_LEN' and\n# include the unencrypted MAC in the 'DIGEST' tag above # each test case.\n# each test case.\n\n# Test with non-minimal padding.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660\nNONCE: \nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: d88861dcbb\nTAG: 181ebd603365ed262b8f2faf5b86ab90a8930bfc0c55cb9f1c88defe20893b2d5eb8ee6809c2452f302315\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with bad padding values.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660\nNONCE: \nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: d88861dcbb\nTAG: 181ebd603365ed262b8f2f9292c597b813c031f09b7a7144e557dd\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with no padding.\n# DIGEST: c6105cc86e18eb8376c16ea37693db5c07b77137\nKEY: 8503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f0\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c748\nAD: 1df3f4183aa23fd8d7efd8\nCT: c90e0c2567341ea7e9d968dbde46ecb46ad78dc8be7d47672068de66d6e7eae14b500b94927f24ff6a4f7b07\nTAG: ec90d128ef465f4a3645fd0b2601fbe2b0bceae2\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with maximal padding (0 mod 64).\n# DIGEST: ceb2d295bd0efd37c6c34dab1854c80e986174fc\nKEY: 37446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d4120\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba\nAD: 2fd6773e0d0c302a5f47e0\nCT: 000893d3434c5be7cbf9daffd81f03545f735cb70d1bd16eab26e07da7ee29b4c607d9a57077d74437e5b01a89c808c7ceca0d3838e5c6ee9947f1d4ee1d5e5e\nTAG: 6d8dc4edeeea81cb503d7389da209ae335876393fdab048965c7eb1a1403d05f8ef059788d08c2e906444388fd416a87bf8706f78d35797453b242618f4a99f47c3756116ec0318d96435032225ff82b902b9b6985189ca438e466154ded91676676c645926e2cf8a5d6f3bfafbb713d646cfd35b091f68e5ac2e7ec10badf1fd80767e6953abeecdc89beb2180dc92be21631164ef801147917e0c8d7841bdcdb52ea03344ab5f2bf3d5157794f5be79f51eb1efdacc0b77b27b72e2ce03d05473203522e3c2c196390d77dc28a35951f3aebd72ee58021d55e521dd029719a7660408ed0da5ab41830102bceb514b0b172d0ee10937111edba82b47e719c3beb3ce49a665accdc1c5bf028d465b5e1\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (1 mod 64).\n# DIGEST: a07054c760cc66fc704edf950201005031f3faac\nKEY: 446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2f\nAD: d6773e0d0c302a5f47e037\nCT: a1e92776d0ffcfed03d1be956169f606733755d5a7011620c7ced6a825d8e59627e75692a41a1f2a86e62fc6052873b5458616414584e36bad698cf4c44909e0a2\nTAG: 6e0b32528feac2d7f69abb480efc7aae6cd1c5f8a654bcd10ec5be08b58f5a2198bddd83439d69ba9f55408cdf087e8a7f33fca6859638c5a4e8bc6961afee7534d8ffd95249d554b02e5beb81100be5e10abf679300f4ba514c03f4fbbba3cc62bd13dc8c8b9a726a9f217446c6e3b89cadb40488b177926c88c9d22a6c4ad9deca67f0d976fe62cd24c3cbb2e51dd16ee2e7bfe91d867b77c77a9a65c387e2682d946e617d0128034f5fe436eb7fa88aca82526d71dfefbdeeeb5a2c15d57fce0cf12e6ce0b101ef92d9ca540447e0bb65bc04b6a02e4e6d9378c6eebcd6d530c4ae14243beebb18403e8bcd434c2d88cc121e2df182edc3e1f52b060b1aecc48490c6cf3260299449945c803891\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (2 mod 64).\n# DIGEST: d059c266cf6233af730b7a229b19356a4c6fcf06\nKEY: 6f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5d\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6\nAD: 773e0d0c302a5f47e03744\nCT: f414f0321370af1490839677747893befa438051fef5f02fef488d7b84dc03140b3a5dc3a57041be4c8b688633110fc07251d877de0d6242928e4d937e3cc58ed611\nTAG: 4ee98ac6f10e179314a251a9db190037c47b9fdfc66321d83a995f6dccc5259801b18c3f466f7f4939b7d2d7196e0b161aaa013721e81bb9707b974b904f670e4aa495357b562a254908417b65fa69e86c42b3efdd423838575db08465a7f4889c85201629f6350c0865b5b0cfbac4f51ea1eacc8f9768014975d780438c3bd77f7f18612080abdeac9331e1a068c8f3a345d0026c5723bdbc48643c1a733a5b7ca9078424522db9491bc38d2644dab2d75499715707cd83ed655343ca73672d480f1420754fbbfeae0fba05be3b5235a5fa48bda9f39df0b298351d8f4da3fb8a2feab8b1aca9335eb31ab03f40ab19f668bb864c798ae08de37bf848fe2e898172d26fa23f383787d7199a6990\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (3 mod 64).\n# DIGEST: 8aac0687e33041fcc18da154b41f20a6af2bfb28\nKEY: 5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd677\nAD: 3e0d0c302a5f47e037446f\nCT: b51ab2f8c4ba3e8638d454ea72da5e3cb15336c347c442b8e1ade85c5cbd0dde790dc707d60d452d5b88d72e718f13cd0e0f4c9149b72e8d6be869d817a3232513c958\nTAG: dc8feba112517f6a820ca12de43c5d64c51cca713d3702a2b4a5cdbe86a90946a7369ec26ea8b5b35df329bfc6e29ef50c2774649134bd6e3f3fb38ef13d9c7fbe066e9cac4fb88dd0c02b677472ebbb2d0679dffedcaf13fccef6a25aed3a272ec01e7680becf80a624518e1333d28c97487b06e0581cc80c94989db4e93489f3dece9eab6dbbee73aeab572d1ee7705d18b899d9c62d7a370311e64131a801400b580d3c8f7af88be485b84fbdd89f7f7dacb29afeb56658f3d8e49f27adc542e412b0fd652b9f60575bf61622d7306c54bed50b43d89cdaecf1981ede09f9ea36fd174118ac178ade5f26ba04fcbd2eb035f030e2139506456ff8d342a4e59bd55dfafebda23a66cacfe6d1\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (4 mod 64).\n# DIGEST: 53658226c112b86438dd27b58a71f9e36fc73c1e\nKEY: 91d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce99\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nAD: 0d0c302a5f47e037446f58\nCT: 87bf1af7e4987cdab35bfe32adc6b1be286751426cf926217f2c699bc095bde7b6ff3d6cc96b79328ab776547c2cb756d9de8c1245d21619a51dba8364ef6914590f15f8\nTAG: 55b9a1ee198080846389dd088016acab73622b1e2f902b0776846c74d99c27e67c7bbb55b2ac0efff91af0f6cb2ddcc0b5b8bab768048bb1662bb343d2f3a164bd4ca4850fbf8111b29e9be7bb836e2a8ac50ec2cb0b1c4529e50904007372284ec9187ea27d8faa03fc9535ba744155d06c06a0a97d96c03de71c13c95f185f426615f1368be346aa5ebf80049ac6771763235f2ee44dc910a01035c53caf8f9fa6f51fe3ad094513a8db177b6a66e24d21e1e40a23aa3629fffad45f84a58a29ef9237fac5eb6f5deb3825de6f399e46b2b2b91faf64ce45d164155e4dc757f6005c7c3e7fb3d8829623fd7c6ca48b923be90c38f5209c6d94696d2b2b7ebc5dfbf2cfa1a37e8ed038e830\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (5 mod 64).\n# DIGEST: 6b7d5268b0b5037afb5be5af6a0ceb34e7656ac4\nKEY: d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d\nAD: 0c302a5f47e037446f5891\nCT: 44237c388c3d017300db0fc9827f9b575e59bd971a0fd89cde4aeb1763912b49d50e92ba19d7594ef6da27320ac2bd1db3bcfe56b68a9ea8e2347d69890fa1fdc8bed782ad\nTAG: c1068d84aa962e7b89090993378806194ffbf677e7a66524d2ebfa7bdc52d76d09b914168eec4a5fde0953d4567affd3a4e0e48190e7a84471efe8ad1ce577c21df93b9d641c865d90ea1e6069bd703c4ee372379a4ec94f7e99867179561d41e9053977cc985b98f7a9fbc675d77052809b89b8f23f993e191ed1a07f97b89d05de948107f94245f216c413288eb4e40f3cee9c00c15926657d9ef9187ab405ee8000b4bd84d", "5771464401d59156a97eea7b23b4a6e9f1587cd3b75826a621b699515829dfc57740ad5719c43e88d835e13ebf703a0966779d31dc26866e0e9d27e3376137c92c97af49a876eed425d3980f1904f013143faeccb4fc920185ec2325361e5b318434487f9\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (6 mod 64).\n# DIGEST: 63efe7af502231420ed5aecce9a28446b257828d\nKEY: 7df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8f\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c\nAD: 302a5f47e037446f5891d7\nCT: 2f25b5a3b01af5411466c8aa5d8ece037434d5e12b62306f2732cb063d0dcdfc2725e67118a242a5576d470fcaf9be6d811bf2789cc66f5561d0542438b5432fe713187a879f\nTAG: d80e1f4edc2137f430d36a5ac93680c973fd7c64a03f7c2ce1b7e33085fe94da70ee26f47998947310508448cc70daa595687eaa540e48f048132de108a045da6d71170e39bb45160a344a2fdb5cb56ab020b9c0842ef2a1a5c83b4d63359fb8d71506d1e611fafa29e77d0669474d135e37bd8aefc3e17f024093186ff80fef73889e887b8d6672256dd592946ea84becc08c29445c8d978e896b1dad5e2608e347e54a97f3f757d7362f95f4cedebed07ab45b05713f7119c38d15a0f22d4259893f5e2401267543b3f78b52d54dd2d608173119e2dc7fe01f66589628e95fd7528958e993b21e4db664b8cba2f776d5cc305c42553da936d580c17d6f5090ff04e106c6488b5b18dd\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (7 mod 64).\n# DIGEST: 1a555c300a1d1bd5b03cdd6bf2a678621624eb05\nKEY: f660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c30\nAD: 2a5f47e037446f5891d77d\nCT: bbf934979c5d9da5c8b27d0341a164d640f12956a392303b0f1665935b5c39de458f53e0a6f824cc56081db1615fc67ffff0d300d1564666b81bb37da59e4da30de9d6a19df74e\nTAG: 9c18b0f9ee6a167a23566325eb330660997193385214abaf945dc18fb8252fbab8330b9809a6f1b300ae5a0c9d841fdd6f77e8d65f1cd0b221fb9b94b5e5d7215e6f501f490a7fa0a754efa7f2d9f5b927a5da2bea736e73af067e5d988901032d503ef3ab89894d03e48a096e7c31fe64bbc2c13f02d878590659ee7606d9212898d4d246e52b03c5646b1c3fbd43baaeda6548156987fc8f490f5763da18198bf0754d20f16dcf7df6bd35ca4bd95cd5c95a60427fc541aaf1f6923ff150de825cff9900ac9492350770bdd13fc4d0ac858ccdf36efbaeeb572aa45ca5470a04a7fa1ce5954d58771730b7202def47b303e560e81ebba2080d044a0851043c5af1a05c30a5a448eb\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (8 mod 64).\n# DIGEST: de9156349b578f2f44945ec6a676a67a829daea1\nKEY: 60ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2ea\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a\nAD: 5f47e037446f5891d77df6\nCT: 9b9bb61ca4d5aab8d0342d2b174e8f39b8e21db0fb7146025fb298016df3bab4363bb47f5b1fa038587df98851d09d473a68c959ead8062c52b9d6de86bd6a0fc9a2daab4667c621\nTAG: 897472da6d837ec173c2ae738721306e8d3c9e5353b65d1ecb3be3d0039739de379c9b06f42af8e952aa9acb4780a6de888dc8c54fe9a2eec19ae4a864b3b9696d712153bb66c49825ec5c891e30915c4b7b66b190525195429426ad694467dab09e8c2f9f21ffae4d54b74c0c5ed9a05963651dfcb9560677693429c63f3024043385ab0a31066243d42b80d2aa9854005504d6c8b9b7f736a8731c5dea0f3fc9007aae0c6edcd0a91dd1bbc5750de12ee13d4a77379cd3b2c2bbac885fa17338011b7b81cec6711fd5d65178f20a06f5475e09c202deef57939161ca8ed3e4aa9b010277acddc4478d1afb64138b276e265182ef2dea321b4f136c5c439ef6d099621813209a43\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (9 mod 64).\n# DIGEST: 12812df3aa7f3bbc899f6f248f5590e02570c292\nKEY: ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f\nAD: 47e037446f5891d77df660\nCT: 33ac574b7962d03b7816c0199a7f661a485832b9023867a749fc4bfe8ff0485571744f801139afd8215863b23e2d68ee7a254c60d8029e0f1ee10a1b947a4984f37f98a6767f52661e\nTAG: 3ee493d8cc764880f4ae7fc3c189b95bfe11d89640e3c9ddb55b230ba0d142d53fe18be8b955cf0d0d237c3b295459fc4c723b27ba8a29ed8dd5c80fb9839e30bc92e6afbf28ef6f72d1c28e5452460f986444678e7ea982d8bae63b69788012bd43aa66e5a521840c79831ae74426fb16f0917c5d2747b9c31fe43ecee604f26afddb093a9f1f1205a4451d50080ed0a9208a88ed6dbde37a674932bca837c46dd8725982c2ef6ac54511151c4cd59e511ca3835ea9bdbbd2e0842dc9674a854b8d4b063d0685086cdf917a7b7983dcc28af2addf3bc302034e365da1a87334a68477aa34a3a878d926d4c17f50316749d917e172e47597d060403a0279ee68dcd864652f37c6\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (10 mod 64).\n# DIGEST: f3c89f21c327fca4aa400fabea9e39780378e901\nKEY: 82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad40\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47\nAD: e037446f5891d77df660ed\nCT: 8517e13ca00214ebfc748efd3a233e8b64801dcce99f9fee3d271357220dff7b1678c1cd6392a6ade62146c0e783248918a7cb69dd26dea525bd9060f380dba75e502bdc19581ebc3295\nTAG: d1f1280699f5514e4a56b08a5c3146142ef8e44c18ccac74577ec0feffbc29884da82212cba95b31d8464954498340f35e9a3d84256e8628368edd166d4b429fcb76e0072d2f5276ed8dc7bd5f34e754f6577ba00ee7ad74e9c89c4f82af0a7716d6ac77c39643909dedcc9356ba42f07874031878229a076da9ac7b0e49b2d170239089ceaf84392e889e7bceb3e383d0f744e229c53e8654ef0099a11773885efc456883e4a973557852f70c0e35668f3f212260e131962087416e668c9f995f226152251f5873fb89047a9dfa65b9fd0116486092b1092c4ee33e7625772944c06a2969b162986cd46d2b4185af2658c25c69a7a599d17f37be0fe1c8250cd7df5e6cf304\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (11 mod 64).\n# DIGEST: e8e41988fad6c8b44c56544964cfe0a347b35b1e\nKEY: 933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409a\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e0\nAD: 37446f5891d77df660ed82\nCT: b1cf0005c93547664e09031d923c4ef9ad663a808189cd8aaa68fbada340d8bb13330499131ef3788cd91e9527702a2388802fdd2e91998a53ffbb466bb7e362d06677edd673cae71418a6\nTAG: 7cad97328236aee512598d1a4c7d51b2154218fddf0ef21724921c1afe61fed1b7a1d1b56b8099dafff77362c4154e4bd7089fb0908ab1de49244a053997a0d04229250e52bc1ecf4550da5753a35108b6752f907ddf7a77fefbdb5d7290b02ae231d019d04ad9a5295336639e7e6c81ea46863d2bc3c4fca7d0f3b05237306759b156ac1fd10b044730987d04a943f0f598704f2191f6c627299b92a2c01a4004111c21f650376c3f28fc9793eddaefd74a2bb3cc5dea73685c954c63b71f2924ebcf9853ff084117cc84a0785d96d8d55d02723a2082ecd8c4b49b8d4068071593aff50c2e08fe7c49f6de1d7586e299b42ec723063f2341fd9b3445cf40893cf8c2bfa5\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (12 mod 64).\n# DIGEST: d1c7b2c04dc25fe7b742a1d659aec20e1475ee4f\nKEY: 3f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae0\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037\nAD: 446f5891d77df660ed8293\nCT: 7195b9643e0f7a4293c865db36442d4fe2cf3ea2c648dc88cd5636fe5e6bcea3d1197966e800da8c78bcb8830f3fa97671aebce98549e62827adf612e70f946673b07e2f953c8fe5e0b97aa1\nTAG: 3a909a9fa57e720bea6251ebbc1a71bbae1fd894f6bbd16e11abe51bbd1293abc0ad4c152a08b4acfac7a65b723fc6bd6923db66bbf202e184e8dbba150e6021ad1310ab4752cd4ae874409688996fdf88636084db7762b9578bb0c98d77c5156a82a97a3f6989db2359d252ff7c6405bd4834708c88d4481b35eabe2f7069bf8bac374fa382f4225659b41dd2a8006c0ff8d7c77c8d157e0373f45fcc0abc804a9f8a6b816f2b729befd606dc61e7f763f18121f56255662e36d120b27adfc8e1b528bd8ced5386cdb62cc73e58cc7918d27253297e9cbb9c740c7765cb014cf7bf160cbf09e00d32d31d462f356791bcf1286bb9023254afa6c41fe3d165f1bf7e6c002ef64ecdf3b5e073fb569028032e6713\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (13 mod 64).\n", "# DIGEST: 116e20ff1e79e0af464d473b1e7c187f4dd66007\nKEY: 62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae021\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e03744\nAD: 6f5891d77df660ed82933f\nCT: 1d50f3eb1cd76d8e08a9f386db0cdc3eddfc694e8502ccae47ab431c2935fc461254b80386c87690b01c22f38ea9bd118d2e0ed316ac249437a3e9c30f6c1f767c150216ec90e6c8913ff3d469\nTAG: e44bfe162cbba654362d1c86088564b14120815f181932e9f111d6da5efb5f4caad61f1161d1d148cc429ad34fcad9128bab101c7cc004fb8f0b516216a809a6599b5144b4c5828cf159fcecac46a86ba0698a6e5267610bad10cd7ce9079b6c691c2ecd522dbe3563074f2ac85712e58cca41761aa94449199a8b440016e68eb8bc9db3ff2c2bd9c64d9d3c71566bfb5d234af1a144859431f16ce6d65b4cc604e9cbf4e5539c192f07a2981b55582376bedc07aa20f5a841c9f500915fef353c37446511da3affd743fc551d5c22454797b3eb957770f1ca16da138c71bf5c00ab7893ae83b3f499a2c42f55551a986555925337e0604227ebf1c65312f0b1a8cdf2d06b5daf3e5ea97ceeb2f33421d0b44b\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (14 mod 64).\n# DIGEST: c081d0d09b2c9eb39a372ef4a7b0246a0956b0f9\nKEY: be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f\nAD: 5891d77df660ed82933f62\nCT: 4d754c684658bcc89208bcd75f24dc8e18b70a28b8a2201535e60ab755fb20e1ddfa98742d257eadd02d96c6a65f880d058312311efdf67f9a106beff9f5ace0ac6af586aefbb5e8b4850e584bb7\nTAG: a9bc9bdf2c16ace8cd471c2bcfbc2cf933fc1886faeec62d4809ed5cc4dd4fcb6ca6c42f31bab300264b278dc0b10fe8a54005b590160b410dcdfa3db413dd04a72c897b262ed0fe4ad6683fc5229010f1d2bc939e61a2c9e0480ef3e03e90f74a3edd8bb523271adc45d097b197ca9034bff48677efa763e1ae7528d3f775f827b9c56ba7f042d7f9413b4c5d01972e86976ab3a398afae27faf3cd19ef1b24b5342f9d067e7702bf1ae9679540a72f7a12cdbfbac234d596856b3bfdc2190dff0b50f45b4355cfa25ebf8d1d16528fe6c4baf9b0e5a50f95c4091704e939c8ffe69183c2695ecb1f12f24fdf288a8e8bdf3fe510bae70c46d0214303d5503d21366c4eec24cc2808542a203d81789efbb6\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (15 mod 64).\n# DIGEST: 6f7bb1f9e2772eb909c315e653e4737cfed78a18\nKEY: 8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae0211641\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f58\nAD: 91d77df660ed82933f62be\nCT: 25bc47e58e7d4f3a417c95768699c92240a2be0e86232a41fe02d64f66716023996772e1118be48e685042f989dcd9cdc574614c9c3989f1885b4b71dfd5b1c32c1321ca41ca1e6ff1828e677e30fe\nTAG: c96a78b9ca68054bc1ed2a150dff9f9585174f343d3df80350982002b4c95106b72813a90028f2855faef235909686607f39655ec48f4024e170c9f9574b0c81b63c8df7af6b4d0f0633853a09c334379952bbaead7415125f541a01e320c5f5d9806b71c3ba71890e3229e751f25ac82c245596b5fa688f1b13844d91169354bf0cc03cccf576c2216aeb9eeab33e2a9f8bad2145d36cf0e7585a02296a7a3b434f4efeeaa4d7ed65befda32b287d9d0946e25dbc0edc22de871184ae8c76777528b917585be784d5e0674b1e5693d0b8cbe8253f8db67c879e1d2b7ddd5df4777a15509f813eb4d0f5a935aa011daaf0cc1ba2ebba9a20a74847e9c53b648f6fce4c08b6e7babc1919e6de22210a6f05\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (16 mod 64).\n# DIGEST: 172f4992e692a88f49628e5d3937959be01aed2e\nKEY: c55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417d\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891\nAD: d77df660ed82933f62be8d\nCT: f1ab85a35a17541efb4f906e7fc85e64efec6ab40d59d3da920c4ec09797c3ad47820e9d934e51e3f4d097c4a555575939bfaeb8cfea062b64816a160d6e4d1ff02a5fded435ab9aa2daf22fa7d676fa\nTAG: 14684ce099f4f0e11e785320debb89c79c03e8bb8751860d3779b4b553f6dedabdb23119d2866ad63fc974a6c6442b734394cb6705309a4d3889e90c4a222bbd14624cd89a9c3f904367c418140375dd592107f839ca94d43d09495a8dc8273201bd8f5a447bdf57506421a975ff4db3aab7878ff18e5b73c8f072a8d092461257d0182710ee9df9f86ac5ad321eac7ee96dddb27ecf561db222ed1c7c183c2ecdf4c7f57cf295638de3c4176ea244100d51c006282e98af1a8fd540daf0ca6f2fc0b88c550b4ab638760d95f2f9d09612da198616cd13fbfa1ad12a3fd30ac9956491cb11539a1be43175fb1452393f13f8d03501c89cf5962730125a7e185dc089b41124fc1e7f69b1fad46bd661c1\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (17 mod 64).\n# DIGEST: 00133da1f7c63fd5f0eec364e9a359be02c1d3da\nKEY: 5b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d7\nAD: 7df660ed82933f62be8dc5\nCT: 5d6bfe91cd2273a9b986397a38e81be5fbbcd0403ef51873c2c467a9fbadc7bf540e83c538a43dc0e0ab780a4c4b1f5b77ced74f65b61f8b8b58b26fa3e8cba568bb717dc7071bf82dd8c68b068e739706\nTAG: 2ab9e654859c35e065f763d949d43c65dc85dc5d918850809ad8efaed6569d4b3ad064bef3427ae4c3be571fb914cefe2362169bed5b4c0cb17d2106fd6993d20ab8a8b70edb5f5d59b3357c8499c36e2b0b67edf7f334ff02d599031f43252b8d30d39affbd2093a6687c771b672329e14901ad9128f063267d3ab332ea31a79d37cb24ad0fd2d07f23b13d4643d1d9c529e1dd0490c851b0009fc1192f2438a48aba5a39be2ee925b1a38647197ead5cdea3499daa5abf9f4503d3581115a6847363348d5e7933948dce867752cde69ecc401012674ad75e12245dee86d775989275a5fc635c66d42c01b7646e180d28798905a3beb210c049be35b522ad580e1ca29f81b9469448749fce961ba6\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (18 mod 64).\n# DIGEST: 60a6821269be6c5b985576b245f106128eb0b325\nKEY: 436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0c\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77d\nAD: f660ed82933f62be8dc55b\nCT: 16e3c681ba1ece3bdbfb1da491f877e806ddac5f1ae96bc406bd195c9d48bcd4a9b700a8ced21d824bfb99eb057e401c3529818725b51e96c576e8009bfe4866e98f550a23ef4748ff761a4d1c44ccb5eba0\nTAG: a30286b3d06306818a268db0e5116abc2c7361c5a32d334d8ce5f4007aaeab750980018b435c79391151fdd33df2a97dc2cf62c4426ce45be43f7e4949be735bcd33f0e81cc6b5a3c2255fbac9ff5a8fd7e7b57554d7ef00640d92b605c9afb0c19dd5ca4c79c409d85c197e8f21d79e91df01a817bf68e8718bc771028c945471ae003c0a210c572b79d772560031b5d3e5495aa8d9bd6fa3f8ae9976ed7e7f8d7275030d2f12ed5ab05276ebebafcac7d0ca41f9d860583f800e4f1b9658b12fab31fd63f6a5e4b80463918f8295ae11d7b97f9b5f89b8166861aec8f1b1417163a6a8adce23ce66c9a4306acae7ca75435cbaece814d6010a3e335bd7db9783812052179d5337d1c353be6e0b\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (19 mod 64).\n# DIGEST: e2593f3b6741a9ed9fa188fc06efd057556ee624\nKEY: 6965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df6\nAD: 60ed82933f62be8dc55b43\nCT: 9b51ba0eebf72bbcd7a1b8452a49f30bf2d96bf0cde4d9e5efe7f1903eb4e09f53aec649c5a8ad7e7fc6c28a0dcf4bd3556f4377bbf8b3f9c79dffa5978692559f732c109a7a02390746f5975d5a0aac4d04ce\nTAG: 636f7bcc9b0b5320643f4b6acbecd60a0a89d2511621ab47fa4c9af610fa1ff9c6cc5cb8fb64493d6a4dca0e94a90794f31698cb1c5bb5658e8b6a63a2cc9b2f1f297240d3d6c62087e32f5d5e9f9d608eccf4b41253933c7391983db1138012a5f5caa5abde25c8a16fc33cccb0604421d985f198c48552650f5dd299bf9163c136c042c9a35cdf7120a702bf460d739ab264fe1f58453ff4990f7315379ff074e01730e7cace8d45a5d0355c0acc409db8fbc759516ad56818b37700548aca769719937103787311b6dbc8488d9e68ee439cec3075bafb725f44734326df9b10d6a4f7133ba84489a9985febc96200276a1fb513f8a3c062466cbe63e7ad668cade7ea70c3b8cd040a6162be\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with max", @@ -410,9 +490,9 @@ static const char *kData8[] = { "02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c2\nAD: 7f4372480974454879c41d\nCT: fcbf4939de59426da2002fcb8e3a4d07604a168e9ffb5f13afcfbdc45325e3ecf0659ea736f9dbf61cec1dbed1024eff9e3bcb721c28d004549fd84e2cdeae36dc5e5abba4f0102835740bb877858814fa38290344addefb47ae583171a510719d9aa18c8f8a5e01396fecf1a982e162edf1047f56e8e4a839c5560473f389a4c7ea8fd5e03c7f2d31ccbc094f04e2a510aa57fe30f37cda765ddcd2bec89ab3f1f5f2ca423c68664c3303520c71439230116409dd84b4a26c1a102e521253ccd455793b0d883b1569b5013653b1c606143fcba7252a70d2a2026b989d1f67fdd594d2b33bde1bf7ee9bcb6c013ea8886e0ec1341039b8d8fbb4d865754a62d0e2a1151c917368e93fed0cb29e2d63ae176cbd95991db0a2864b27b6cf5782093bbe0ae117c7b2931f678bcb07aaae3d955b61e7ebbab8e84442295700cebf1a8f7d846fe788baa0660608bcbfa59c4bc9e5d163654aea99635f9bb63b8074478fc97b4981f5e5d35430b1e18332370dc5f4e94616b0270112dc446335d10a169e8a6923765647607ba9ad65c6f6f008cdf041af2e136b398bd1d1f67044f8360d9c1e90012e594a353d8e45aefac62173fd1b03ee5e4aa6961d83cbf1096dfa02f36ef62ceea5bf88f95301464d0046cc8ae3bfa611caa0c63d07\nTAG: 850f8608529bdc90c222092bfab0239a3b07b9cb1f\nTAG_LEN: 20\n\n# DIGEST: e654b4c78e1c0061eea2996fc126c9bfd41eb6d9\nKEY: 3b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f43724809\nAD: 74454879c41de9ac9f9823\nCT: 3a35e98cfbeeabc993af7e952b148ceb87a110d851bf2d036e5eed8482b39b881b3180dc50ce782a8cbe2c586863c5d038fc4f37d4a96ce8732abb984ae90bbccb86f7766e9712e43d3ec40fdd7a1c88cfbf14743908c78dd4c19d449db7557e0c30127d35a49503d8dce6c9a9e6f07e1c86d7e365162ec05a8b4ed301645f8274999a6c5beafc5b27dd68608aeb2efdd9cb00c6236bb143e7d91709a3fea0e865330680a854d47ae3b6067002a01aec6bdab9e60c19ca66cc39d4a44ada1e21720bd5bd87cdfb31b8a9bfac77feeafc9f8e92c4131d73a3cfb64efae2e8d14fed99c2bc88f63f88079d30b78df18ac03db855338986c0fd1614dc6afaea71130290bf52270999f3392128bc48fb0a6d6425c383b637f4c293e177f479f6a2d6323ed545bbd564f743850a121da96256a8daf163fd80835558b21e0286cf008e7cd87bab94222fd7faa395ee2ba19aa3abf5d000e7514a35357941b97e4ef433c30972e995b0991c862cefdf79712cbd3655ceb43e1e5f5b0d3f5e275bfad98a667d997333d704e4d70acc488b6829d18d1263b841307d592f760a66761e800b4676d64546a1d8630d97218a7c5f555d4a90cf58eee4bd1e1fc0e15f8f64d336edf9ca00183169f237a924e7efd5a339f3cc1bb90b4c513bb9969ecdc9beb5c5\nTAG: b24af9f27ebc204aace6315a197550907bf6079b848eb1dca1a96192ee7c8107\nTAG_LEN: 20\n\n# DIGEST: 654b8591c7f0506261713e9ce7a6fd24a6b9357e\nKEY: 61792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c21\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c4\nAD: 1de9ac9f98233b5a7379a5\nCT: 7e1b59c791aeef6577c7ac69f8624352b7c2c7d1c8b14a7a0daf8240cc9d71ff1298eebf18ab6d469e1a327bbc3bb539df445ddcf7dccacb54f0a4ce6cf18bec20101bcd62bb2b30d8426a1e3ba949dcb69767aab5b8d2228267d784bde55bf887403188cd39453d32d50428bb9846212e4bbd3843161dc830646ba6e251ffad5d1b382101c7a3c87163867391fe44a58639e8a29fbd34cce657d321d004f842e0efa9d4cf03f557bf07a1201ac36258a4810dc101c427e19bb79f0800f27732094ee1dbab2abfc061fd4a1e84b2d36e560a38465cd4c8bc04bc27ffe90f1ce5999fc78d9432ed98c8dac4047a61547b6205bebe2191782ca63e50bb29c9bea553f5de0e9051cef35e3122c00e0d3a2468ecb2a898225c5f65fae573b17a15e013655a2ddc62adfe61ce5a7e352539c6d27c9726d2ca5492ee25b6d8233e32383100d131abce97b33dfe18a415156917ead8fe854c53bde97c0202e782679ac46f05afe1b9ad6b41bcb65bc8a80682ea8092bba0c47a9a03d08004a11756d9274ff83d5d468475c8a4a56f81cd1367040a3f75fd998b5fb3380cf8c1630fdb948fa2d0930fa5b009abc755f4bf70a59847969500d43e2db40ee517c9a6826e8e3746b3d40f9a6e7b35362550cabfa601a887bfabfd28476b3d7eb8917d66bbe9d21bfebb5a\nTAG: 22e74d37769a86785c57bb760e8a28de7a7ca3207fef4e80c284b4\nTAG_LEN: 20\n\n# DIGEST: 1eaad32c8d0cefaa5e2c503bb2185a73e6387fac\nKEY: 16430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d3a0063be\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98\nAD: 233b5a7379a561792c0f31\nCT: 26234359615c88fbbf5fddd43d4832a57bda2037e2177b264309e2e50c28efc28c5ed5cbf6dea046a14caa64d499352ecba0eb2d4bd376c6b1e14048033e21b9ec63f500a70c53be60099d9c9e46ea8f250d3d20c834c3c0638a9245377fe2b76b74ea14bca6b4bdc7e8d86ca59f397fe72b8c4cbb8edc3dca7f9f234529034fe5f1441210a8ad9b4694fe013f7e4a906fc400a27279f2a1a31700750e2209f6296ed808c893a42214b46f765c9d01cee46df18b02d5493c3a1da3a6258e89e47934ade4da2fa9eef7f5b1887a60585684b1c5c2ac60d94a62d79694b063444fa36674ecde12095e9203d281da3118d058f547ede5e4b67a11ab55c1b42fe01a94a601ba031c5b0b4088563344cc28d640bf2e7c81a259211b130bb9ba9ad93090c0e11cc939b99046fe7f25132672c3714f9973513af628f21942da6b459a60e31fe1bb9bf4f6259d8c9fa07d796a264f94d64122d186a0220d9f44b040396c9c187d5ad1d806ca613a4d0f5038a8b77177f39361f9107bea7700ba835dcd38cb48a6c5af0bfbb07b7a2543f1c661", "f1dec06acadf8860fa2220c67bbc9c97c44cb7cc58831563153149713ca2db85af46932a8de891da1d4662e52ed5b7c1c15d5557a0930c7177c2046b50aaf14874512cd9ed62efabe5704573a4f44a4ddf71202a6ea8c706842299\nTAG: 8eb60165231c67e88b0abd1d7c1c3dcab1b7006d4d3f\nTAG_LEN: 20\n\n# DIGEST: 862c0517b3658e9b9cd27db608d49e24e9b4667d\nKEY: a058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d3a0063be26e0636617\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98233b5a7379\nAD: a561792c0f3116430e8b6e\nCT: 6f2cea3b4aa1b3ae78d31e47c0c1e03df944352b9bd5483cfc09577aab2095a0a7e977e9c1c6451625d85d162c1653423609f141aac93123b2a0bd093c5bcdd9a49b27ace4dbe6acb486446f437c27e619a0f69405afc83240f087feb029fdf8f3f25a8a262b4a3efc4bc80512a96a45cca61d46e42132abd34c2821e7ff588c742062c01eacf9d1689f11648ebe326a91fe79275b5b1fb2af4d1440ff4a9ad35381daf2a2c0aa928216351c5b89ea33bf225d34efd7ec2c81c5af325b138a5f4ac50c5aca196d1b32ce8352431a8f08cb3b59d2f8de5c850e2a06d00c1d7f7027b4aa6757eb0c9fd3035063669a5ff8db2402818c88a7137ee309ef2735dd575e43b7508c81306dc50da65aa2276dbcd98537636ef06d1736f14e2babbc39457dc8d101d22e5516d652151c2092812814e9f73dd6cc805e670ca36e62799b42bc07fa1d93b9332c43a4b759e53ae138fd2b2b419b21a332ea304fb7db57e860509855b2a540cc909aff57e1433f295e8052c7609a88170feb7623cee8ee651ae1dca4b1afa427e2e43569d5b7f2ea688d2e2afb33f1dc0666c4b0df8aee281cbcbf5e964beb3851f7b929e5a4e06766746f22d4fa1a32913c0f449b4da8aac6294348f711d4d75bca509516668944d2a162a53a31229528e54e4bfbe13cef013efcd6687e890d292e42119529c92c\nTAG: 76c80a678b6cd735a2d01acc18dbd90bc3997f57efc2c5c78c22fe4dd13f06fb91\nTAG_LEN: 20\n\n", }; -static const size_t kLen9 = 469480; +static const size_t kLen10 = 469480; -static const char *kData9[] = { +static const char *kData10[] = { "# Generated by\n# go run make_legacy_aead_tests.go -cipher aes256 -mac sha1\n#\n# Note: aead_test's input format splits the ciphertext and tag positions of the\n# sealed input. But these legacy AEADs are MAC-then-encrypt and so the 'TAG' may\n# also include padding. We write the byte length of the MAC to 'TAG_LEN' and\n# include the unencrypted MAC in the 'DIGEST' tag above # each test case.\n# each test case.\n\n# Test with non-minimal padding.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nNONCE: 0d0c302a5f47e037446f5891d77df660\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: d88861dcbb\nTAG: 181ebd603365ed262b8f2faf5b86ab90a8930bfc0c55cb9f1c88defe20893b2d5eb8ee6809c2452f302315\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with bad padding values.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nNONCE: 0d0c302a5f47e037446f5891d77df660\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: d88861dcbb\nTAG: 181ebd603365ed262b8f2f9292c597b813c031f09b7a7144e557dd\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with no padding.\n# DIGEST: c6105cc86e18eb8376c16ea37693db5c07b77137\nKEY: 8503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371e\nNONCE: b8da7dac997deafd64b1fc65de39f4f0\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c748\nAD: 1df3f4183aa23fd8d7efd8\nCT: c90e0c2567341ea7e9d968dbde46ecb46ad78dc8be7d47672068de66d6e7eae14b500b94927f24ff6a4f7b07\nTAG: ec90d128ef465f4a3645fd0b2601fbe2b0bceae2\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with maximal padding (0 mod 64).\n# DIGEST: ceb2d295bd0efd37c6c34dab1854c80e986174fc\nKEY: 37446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11b\nNONCE: e112a72933c7b54ed4fad0be905d4120\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba\nAD: 2fd6773e0d0c302a5f47e0\nCT: 000893d3434c5be7cbf9daffd81f03545f735cb70d1bd16eab26e07da7ee29b4c607d9a57077d74437e5b01a89c808c7ceca0d3838e5c6ee9947f1d4ee1d5e5e\nTAG: 6d8dc4edeeea81cb503d7389da209ae335876393fdab048965c7eb1a1403d05f8ef059788d08c2e906444388fd416a87bf8706f78d35797453b242618f4a99f47c3756116ec0318d96435032225ff82b902b9b6985189ca438e466154ded91676676c645926e2cf8a5d6f3bfafbb713d646cfd35b091f68e5ac2e7ec10badf1fd80767e6953abeecdc89beb2180dc92be21631164ef801147917e0c8d7841bdcdb52ea03344ab5f2bf3d5157794f5be79f51eb1efdacc0b77b27b72e2ce03d05473203522e3c2c196390d77dc28a35951f3aebd72ee58021d55e521dd029719a7660408ed0da5ab41830102bceb514b0b172d0ee10937111edba82b47e719c3beb3ce49a665accdc1c5bf028d465b5e1\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (1 mod 64).\n# DIGEST: a07054c760cc66fc704edf950201005031f3faac\nKEY: 446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be1\nNONCE: 12a72933c7b54ed4fad0be905d41203f\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2f\nAD: d6773e0d0c302a5f47e037\nCT: a1e92776d0ffcfed03d1be956169f606733755d5a7011620c7ced6a825d8e59627e75692a41a1f2a86e62fc6052873b5458616414584e36bad698cf4c44909e0a2\nTAG: 6e0b32528feac2d7f69abb480efc7aae6cd1c5f8a654bcd10ec5be08b58f5a2198bddd83439d69ba9f55408cdf087e8a7f33fca6859638c5a4e8bc6961afee7534d8ffd95249d554b02e5beb81100be5e10abf679300f4ba514c03f4fbbba3cc62bd13dc8c8b9a726a9f217446c6e3b89cadb40488b177926c88c9d22a6c4ad9deca67f0d976fe62cd24c3cbb2e51dd16ee2e7bfe91d867b77c77a9a65c387e2682d946e617d0128034f5fe436eb7fa88aca82526d71dfefbdeeeb5a2c15d57fce0cf12e6ce0b101ef92d9ca540447e0bb65bc04b6a02e4e6d9378c6eebcd6d530c4ae14243beebb18403e8bcd434c2d88cc121e2df182edc3e1f52b060b1aecc48490c6cf3260299449945c803891\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (2 mod 64).\n# DIGEST: d059c266cf6233af730b7a229b19356a4c6fcf06\nKEY: 6f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112\nNONCE: a72933c7b54ed4fad0be905d41203f5d\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6\nAD: 773e0d0c302a5f47e03744\nCT: f414f0321370af1490839677747893befa438051fef5f02fef488d7b84dc03140b3a5dc3a57041be4c8b688633110fc07251d877de0d6242928e4d937e3cc58ed611\nTAG: 4ee98ac6f10e179314a251a9db190037c47b9fdfc66321d83a995f6dccc5259801b18c3f466f7f4939b7d2d7196e0b161aaa013721e81bb9707b974b904f670e4aa495357b562a254908417b65fa69e86c42b3efdd423838575db08465a7f4889c85201629f6350c0865b5b0cfbac4f51ea1eacc8f9768014975d780438c3bd77f7f18612080abdeac9331e1a068c8f3a345d0026c5723bdbc48643c1a733a5b7ca9078424522db9491bc38d2644dab2d75499715707cd83ed655343ca73672d480f1420754fbbfeae0fba05be3b5235a5fa48bda9f39df0b298351d8f4da3fb8a2feab8b1aca9335eb31ab03f40ab19f668bb864c798ae08de37bf848fe2e898172d26fa23f383787d7199a6990\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (3 mod 64).\n# DIGEST: 8aac0687e33041fcc18da154b41f20a6af2bfb28\nKEY: 5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a7\nNONCE: 2933c7b54ed4fad0be905d41203f5dce\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd677\nAD: 3e0d0c302a5f47e037446f\nCT: b51ab2f8c4ba3e8638d454ea72da5e3cb15336c347c442b8e1ade85c5cbd0dde790dc707d60d452d5b88d72e718f13cd0e0f4c9149b72e8d6be869d817a3232513c958\nTAG: dc8feba112517f6a820ca12de43c5d64c51cca713d3702a2b4a5cdbe86a90946a7369ec26ea8b5b35df329bfc6e29ef50c2774649134bd6e3f3fb38ef13d9c7fbe066e9cac4fb88dd0c02b677472ebbb2d0679dffedcaf13fccef6a25aed3a272ec01e7680becf80a624518e1333d28c97487b06e0581cc80c94989db4e93489f3dece9eab6dbbee73aeab572d1ee7705d18b899d9c62d7a370311e64131a801400b580d3c8f7af88be485b84fbdd89f7f7dacb29afeb56658f3d8e49f27adc542e412b0fd652b9f60575bf61622d7306c54bed50b43d89cdaecf1981ede09f9ea36fd174118ac178ade5f26ba04fcbd2eb035f030e2139506456ff8d342a4e59bd55dfafebda23a66cacfe6d1\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (4 mod 64).\n# DIGEST: 53658226c112b86438dd27b58a71f9e36fc73c1e\nKEY: 91d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a729\nNONCE: 33c7b54ed4fad0be905d41203f5dce99\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nAD: 0d0c302a5f47e037446f58\nCT: 87bf1af7e4987cdab35bfe32adc6b1be286751426cf926217f2c699bc095bde7b6ff3d6cc96b79328ab776547c2cb756d9de8c1245d21619a51dba8364ef6914590f15f8\nTAG: 55b9a1ee198080846389dd088016acab73622b1e2f902b0776846c74d99c27e67c7bbb55b2ac0efff91af0f6cb2ddcc0b5b8bab768048bb1662bb343d2f3a164bd4ca4850fbf8111b29e9be7bb836e2a8ac50ec2cb0b1c4529e50904007372284ec9187ea27d8faa03fc9535ba744155d06c06a0a97d96c03de71c13c95f185f426615f1368be346aa5ebf80049ac6771763235f2ee44dc910a01035c53caf8f9fa6f51fe3ad094513a8db177b6a66e24d21e1e40a23aa3629fffad45f84a58a29ef9237fac5eb6f5deb3825de6f399e46b2b2b91faf64ce45d164155e4dc757f6005c7c3e7fb3d8829623fd7c6ca48b923be90c38f5209c6d94696d2b2b7ebc5dfbf2cfa1a37e8ed038e830\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (5 mod 64).\n# DIGEST: 6b7d5268b0b5037afb5be5af6a0ceb34e7656ac4\nKEY: d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933\nNONCE: c7b54ed4fad0be905d41203f5dce998f\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d\nAD: 0c302a5f47e037446f5891\nCT: 44237c388c3d017300db0fc9827f9b575e59bd971a0fd89cde4aeb1763912b49d50e92ba19d7594ef6da27320ac2bd1db3bcfe56b68a9ea8e2347d69890fa1fdc8bed782ad\nTAG: c1068d84aa962e7b89090993378806194ffbf677e7a66524d2ebfa7bdc52d76d09b914168eec4a5fde0953d4567affd3a4e0e48190e7a84471efe8ad1ce577c21df93b9d641c865d90ea1e6069bd703c4ee372379a4ec94f7e99867179561d41e9053977cc985b98f7a9fbc675d77052809b89b8f23f993e191ed1a07f97b89d05de948107f94245f216c413288eb4e40f3cee9c00c15926657d9ef9187ab405ee8000b4bd84d5771464401d59", "156a97eea7b23b4a6e9f1587cd3b75826a621b699515829dfc57740ad5719c43e88d835e13ebf703a0966779d31dc26866e0e9d27e3376137c92c97af49a876eed425d3980f1904f013143faeccb4fc920185ec2325361e5b318434487f9\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (6 mod 64).\n# DIGEST: 63efe7af502231420ed5aecce9a28446b257828d\nKEY: 7df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7\nNONCE: b54ed4fad0be905d41203f5dce998f8f\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c\nAD: 302a5f47e037446f5891d7\nCT: 2f25b5a3b01af5411466c8aa5d8ece037434d5e12b62306f2732cb063d0dcdfc2725e67118a242a5576d470fcaf9be6d811bf2789cc66f5561d0542438b5432fe713187a879f\nTAG: d80e1f4edc2137f430d36a5ac93680c973fd7c64a03f7c2ce1b7e33085fe94da70ee26f47998947310508448cc70daa595687eaa540e48f048132de108a045da6d71170e39bb45160a344a2fdb5cb56ab020b9c0842ef2a1a5c83b4d63359fb8d71506d1e611fafa29e77d0669474d135e37bd8aefc3e17f024093186ff80fef73889e887b8d6672256dd592946ea84becc08c29445c8d978e896b1dad5e2608e347e54a97f3f757d7362f95f4cedebed07ab45b05713f7119c38d15a0f22d4259893f5e2401267543b3f78b52d54dd2d608173119e2dc7fe01f66589628e95fd7528958e993b21e4db664b8cba2f776d5cc305c42553da936d580c17d6f5090ff04e106c6488b5b18dd\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (7 mod 64).\n# DIGEST: 1a555c300a1d1bd5b03cdd6bf2a678621624eb05\nKEY: f660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b5\nNONCE: 4ed4fad0be905d41203f5dce998f8fb2\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c30\nAD: 2a5f47e037446f5891d77d\nCT: bbf934979c5d9da5c8b27d0341a164d640f12956a392303b0f1665935b5c39de458f53e0a6f824cc56081db1615fc67ffff0d300d1564666b81bb37da59e4da30de9d6a19df74e\nTAG: 9c18b0f9ee6a167a23566325eb330660997193385214abaf945dc18fb8252fbab8330b9809a6f1b300ae5a0c9d841fdd6f77e8d65f1cd0b221fb9b94b5e5d7215e6f501f490a7fa0a754efa7f2d9f5b927a5da2bea736e73af067e5d988901032d503ef3ab89894d03e48a096e7c31fe64bbc2c13f02d878590659ee7606d9212898d4d246e52b03c5646b1c3fbd43baaeda6548156987fc8f490f5763da18198bf0754d20f16dcf7df6bd35ca4bd95cd5c95a60427fc541aaf1f6923ff150de825cff9900ac9492350770bdd13fc4d0ac858ccdf36efbaeeb572aa45ca5470a04a7fa1ce5954d58771730b7202def47b303e560e81ebba2080d044a0851043c5af1a05c30a5a448eb\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (8 mod 64).\n# DIGEST: de9156349b578f2f44945ec6a676a67a829daea1\nKEY: 60ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54e\nNONCE: d4fad0be905d41203f5dce998f8fb2ea\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a\nAD: 5f47e037446f5891d77df6\nCT: 9b9bb61ca4d5aab8d0342d2b174e8f39b8e21db0fb7146025fb298016df3bab4363bb47f5b1fa038587df98851d09d473a68c959ead8062c52b9d6de86bd6a0fc9a2daab4667c621\nTAG: 897472da6d837ec173c2ae738721306e8d3c9e5353b65d1ecb3be3d0039739de379c9b06f42af8e952aa9acb4780a6de888dc8c54fe9a2eec19ae4a864b3b9696d712153bb66c49825ec5c891e30915c4b7b66b190525195429426ad694467dab09e8c2f9f21ffae4d54b74c0c5ed9a05963651dfcb9560677693429c63f3024043385ab0a31066243d42b80d2aa9854005504d6c8b9b7f736a8731c5dea0f3fc9007aae0c6edcd0a91dd1bbc5750de12ee13d4a77379cd3b2c2bbac885fa17338011b7b81cec6711fd5d65178f20a06f5475e09c202deef57939161ca8ed3e4aa9b010277acddc4478d1afb64138b276e265182ef2dea321b4f136c5c439ef6d099621813209a43\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (9 mod 64).\n# DIGEST: 12812df3aa7f3bbc899f6f248f5590e02570c292\nKEY: ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4\nNONCE: fad0be905d41203f5dce998f8fb2eaad\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f\nAD: 47e037446f5891d77df660\nCT: 33ac574b7962d03b7816c0199a7f661a485832b9023867a749fc4bfe8ff0485571744f801139afd8215863b23e2d68ee7a254c60d8029e0f1ee10a1b947a4984f37f98a6767f52661e\nTAG: 3ee493d8cc764880f4ae7fc3c189b95bfe11d89640e3c9ddb55b230ba0d142d53fe18be8b955cf0d0d237c3b295459fc4c723b27ba8a29ed8dd5c80fb9839e30bc92e6afbf28ef6f72d1c28e5452460f986444678e7ea982d8bae63b69788012bd43aa66e5a521840c79831ae74426fb16f0917c5d2747b9c31fe43ecee604f26afddb093a9f1f1205a4451d50080ed0a9208a88ed6dbde37a674932bca837c46dd8725982c2ef6ac54511151c4cd59e511ca3835ea9bdbbd2e0842dc9674a854b8d4b063d0685086cdf917a7b7983dcc28af2addf3bc302034e365da1a87334a68477aa34a3a878d926d4c17f50316749d917e172e47597d060403a0279ee68dcd864652f37c6\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (10 mod 64).\n# DIGEST: f3c89f21c327fca4aa400fabea9e39780378e901\nKEY: 82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fa\nNONCE: d0be905d41203f5dce998f8fb2eaad40\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47\nAD: e037446f5891d77df660ed\nCT: 8517e13ca00214ebfc748efd3a233e8b64801dcce99f9fee3d271357220dff7b1678c1cd6392a6ade62146c0e783248918a7cb69dd26dea525bd9060f380dba75e502bdc19581ebc3295\nTAG: d1f1280699f5514e4a56b08a5c3146142ef8e44c18ccac74577ec0feffbc29884da82212cba95b31d8464954498340f35e9a3d84256e8628368edd166d4b429fcb76e0072d2f5276ed8dc7bd5f34e754f6577ba00ee7ad74e9c89c4f82af0a7716d6ac77c39643909dedcc9356ba42f07874031878229a076da9ac7b0e49b2d170239089ceaf84392e889e7bceb3e383d0f744e229c53e8654ef0099a11773885efc456883e4a973557852f70c0e35668f3f212260e131962087416e668c9f995f226152251f5873fb89047a9dfa65b9fd0116486092b1092c4ee33e7625772944c06a2969b162986cd46d2b4185af2658c25c69a7a599d17f37be0fe1c8250cd7df5e6cf304\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (11 mod 64).\n# DIGEST: e8e41988fad6c8b44c56544964cfe0a347b35b1e\nKEY: 933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0\nNONCE: be905d41203f5dce998f8fb2eaad409a\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e0\nAD: 37446f5891d77df660ed82\nCT: b1cf0005c93547664e09031d923c4ef9ad663a808189cd8aaa68fbada340d8bb13330499131ef3788cd91e9527702a2388802fdd2e91998a53ffbb466bb7e362d06677edd673cae71418a6\nTAG: 7cad97328236aee512598d1a4c7d51b2154218fddf0ef21724921c1afe61fed1b7a1d1b56b8099dafff77362c4154e4bd7089fb0908ab1de49244a053997a0d04229250e52bc1ecf4550da5753a35108b6752f907ddf7a77fefbdb5d7290b02ae231d019d04ad9a5295336639e7e6c81ea46863d2bc3c4fca7d0f3b05237306759b156ac1fd10b044730987d04a943f0f598704f2191f6c627299b92a2c01a4004111c21f650376c3f28fc9793eddaefd74a2bb3cc5dea73685c954c63b71f2924ebcf9853ff084117cc84a0785d96d8d55d02723a2082ecd8c4b49b8d4068071593aff50c2e08fe7c49f6de1d7586e299b42ec723063f2341fd9b3445cf40893cf8c2bfa5\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (12 mod 64).\n# DIGEST: d1c7b2c04dc25fe7b742a1d659aec20e1475ee4f\nKEY: 3f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be\nNONCE: 905d41203f5dce998f8fb2eaad409ae0\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037\nAD: 446f5891d77df660ed8293\nCT: 7195b9643e0f7a4293c865db36442d4fe2cf3ea2c648dc88cd5636fe5e6bcea3d1197966e800da8c78bcb8830f3fa97671aebce98549e62827adf612e70f946673b07e2f953c8fe5e0b97aa1\nTAG: 3a909a9fa57e720bea6251ebbc1a71bbae1fd894f6bbd16e11abe51bbd1293abc0ad4c152a08b4acfac7a65b723fc6bd6923db66bbf202e184e8dbba150e6021ad1310ab4752cd4ae874409688996fdf88636084db7762b9578bb0c98d77c5156a82a97a3f6989db2359d252ff7c6405bd4834708c88d4481b35eabe2f7069bf8bac374fa382f4225659b41dd2a8006c0ff8d7c77c8d157e0373f45fcc0abc804a9f8a6b816f2b729befd606dc61e7f763f18121f56255662e36d120b27adfc8e1b528bd8ced5386cdb62cc73e58cc7918d27253297e9cbb9c740c7765cb014cf7bf160cbf09e00d32d31d462f356791bcf1286bb9023254afa6c41fe3d165f1bf7e6c002ef64ecdf3b5e073fb569028032e6713\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (13 mod 64).\n# DIGEST: 116", "e20ff1e79e0af464d473b1e7c187f4dd66007\nKEY: 62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be90\nNONCE: 5d41203f5dce998f8fb2eaad409ae021\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e03744\nAD: 6f5891d77df660ed82933f\nCT: 1d50f3eb1cd76d8e08a9f386db0cdc3eddfc694e8502ccae47ab431c2935fc461254b80386c87690b01c22f38ea9bd118d2e0ed316ac249437a3e9c30f6c1f767c150216ec90e6c8913ff3d469\nTAG: e44bfe162cbba654362d1c86088564b14120815f181932e9f111d6da5efb5f4caad61f1161d1d148cc429ad34fcad9128bab101c7cc004fb8f0b516216a809a6599b5144b4c5828cf159fcecac46a86ba0698a6e5267610bad10cd7ce9079b6c691c2ecd522dbe3563074f2ac85712e58cca41761aa94449199a8b440016e68eb8bc9db3ff2c2bd9c64d9d3c71566bfb5d234af1a144859431f16ce6d65b4cc604e9cbf4e5539c192f07a2981b55582376bedc07aa20f5a841c9f500915fef353c37446511da3affd743fc551d5c22454797b3eb957770f1ca16da138c71bf5c00ab7893ae83b3f499a2c42f55551a986555925337e0604227ebf1c65312f0b1a8cdf2d06b5daf3e5ea97ceeb2f33421d0b44b\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (14 mod 64).\n# DIGEST: c081d0d09b2c9eb39a372ef4a7b0246a0956b0f9\nKEY: be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d\nNONCE: 41203f5dce998f8fb2eaad409ae02116\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f\nAD: 5891d77df660ed82933f62\nCT: 4d754c684658bcc89208bcd75f24dc8e18b70a28b8a2201535e60ab755fb20e1ddfa98742d257eadd02d96c6a65f880d058312311efdf67f9a106beff9f5ace0ac6af586aefbb5e8b4850e584bb7\nTAG: a9bc9bdf2c16ace8cd471c2bcfbc2cf933fc1886faeec62d4809ed5cc4dd4fcb6ca6c42f31bab300264b278dc0b10fe8a54005b590160b410dcdfa3db413dd04a72c897b262ed0fe4ad6683fc5229010f1d2bc939e61a2c9e0480ef3e03e90f74a3edd8bb523271adc45d097b197ca9034bff48677efa763e1ae7528d3f775f827b9c56ba7f042d7f9413b4c5d01972e86976ab3a398afae27faf3cd19ef1b24b5342f9d067e7702bf1ae9679540a72f7a12cdbfbac234d596856b3bfdc2190dff0b50f45b4355cfa25ebf8d1d16528fe6c4baf9b0e5a50f95c4091704e939c8ffe69183c2695ecb1f12f24fdf288a8e8bdf3fe510bae70c46d0214303d5503d21366c4eec24cc2808542a203d81789efbb6\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (15 mod 64).\n# DIGEST: 6f7bb1f9e2772eb909c315e653e4737cfed78a18\nKEY: 8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41\nNONCE: 203f5dce998f8fb2eaad409ae0211641\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f58\nAD: 91d77df660ed82933f62be\nCT: 25bc47e58e7d4f3a417c95768699c92240a2be0e86232a41fe02d64f66716023996772e1118be48e685042f989dcd9cdc574614c9c3989f1885b4b71dfd5b1c32c1321ca41ca1e6ff1828e677e30fe\nTAG: c96a78b9ca68054bc1ed2a150dff9f9585174f343d3df80350982002b4c95106b72813a90028f2855faef235909686607f39655ec48f4024e170c9f9574b0c81b63c8df7af6b4d0f0633853a09c334379952bbaead7415125f541a01e320c5f5d9806b71c3ba71890e3229e751f25ac82c245596b5fa688f1b13844d91169354bf0cc03cccf576c2216aeb9eeab33e2a9f8bad2145d36cf0e7585a02296a7a3b434f4efeeaa4d7ed65befda32b287d9d0946e25dbc0edc22de871184ae8c76777528b917585be784d5e0674b1e5693d0b8cbe8253f8db67c879e1d2b7ddd5df4777a15509f813eb4d0f5a935aa011daaf0cc1ba2ebba9a20a74847e9c53b648f6fce4c08b6e7babc1919e6de22210a6f05\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (16 mod 64).\n# DIGEST: 172f4992e692a88f49628e5d3937959be01aed2e\nKEY: c55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d4120\nNONCE: 3f5dce998f8fb2eaad409ae02116417d\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891\nAD: d77df660ed82933f62be8d\nCT: f1ab85a35a17541efb4f906e7fc85e64efec6ab40d59d3da920c4ec09797c3ad47820e9d934e51e3f4d097c4a555575939bfaeb8cfea062b64816a160d6e4d1ff02a5fded435ab9aa2daf22fa7d676fa\nTAG: 14684ce099f4f0e11e785320debb89c79c03e8bb8751860d3779b4b553f6dedabdb23119d2866ad63fc974a6c6442b734394cb6705309a4d3889e90c4a222bbd14624cd89a9c3f904367c418140375dd592107f839ca94d43d09495a8dc8273201bd8f5a447bdf57506421a975ff4db3aab7878ff18e5b73c8f072a8d092461257d0182710ee9df9f86ac5ad321eac7ee96dddb27ecf561db222ed1c7c183c2ecdf4c7f57cf295638de3c4176ea244100d51c006282e98af1a8fd540daf0ca6f2fc0b88c550b4ab638760d95f2f9d09612da198616cd13fbfa1ad12a3fd30ac9956491cb11539a1be43175fb1452393f13f8d03501c89cf5962730125a7e185dc089b41124fc1e7f69b1fad46bd661c1\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (17 mod 64).\n# DIGEST: 00133da1f7c63fd5f0eec364e9a359be02c1d3da\nKEY: 5b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f\nNONCE: 5dce998f8fb2eaad409ae02116417dae\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d7\nAD: 7df660ed82933f62be8dc5\nCT: 5d6bfe91cd2273a9b986397a38e81be5fbbcd0403ef51873c2c467a9fbadc7bf540e83c538a43dc0e0ab780a4c4b1f5b77ced74f65b61f8b8b58b26fa3e8cba568bb717dc7071bf82dd8c68b068e739706\nTAG: 2ab9e654859c35e065f763d949d43c65dc85dc5d918850809ad8efaed6569d4b3ad064bef3427ae4c3be571fb914cefe2362169bed5b4c0cb17d2106fd6993d20ab8a8b70edb5f5d59b3357c8499c36e2b0b67edf7f334ff02d599031f43252b8d30d39affbd2093a6687c771b672329e14901ad9128f063267d3ab332ea31a79d37cb24ad0fd2d07f23b13d4643d1d9c529e1dd0490c851b0009fc1192f2438a48aba5a39be2ee925b1a38647197ead5cdea3499daa5abf9f4503d3581115a6847363348d5e7933948dce867752cde69ecc401012674ad75e12245dee86d775989275a5fc635c66d42c01b7646e180d28798905a3beb210c049be35b522ad580e1ca29f81b9469448749fce961ba6\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (18 mod 64).\n# DIGEST: 60a6821269be6c5b985576b245f106128eb0b325\nKEY: 436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5d\nNONCE: ce998f8fb2eaad409ae02116417dae0c\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77d\nAD: f660ed82933f62be8dc55b\nCT: 16e3c681ba1ece3bdbfb1da491f877e806ddac5f1ae96bc406bd195c9d48bcd4a9b700a8ced21d824bfb99eb057e401c3529818725b51e96c576e8009bfe4866e98f550a23ef4748ff761a4d1c44ccb5eba0\nTAG: a30286b3d06306818a268db0e5116abc2c7361c5a32d334d8ce5f4007aaeab750980018b435c79391151fdd33df2a97dc2cf62c4426ce45be43f7e4949be735bcd33f0e81cc6b5a3c2255fbac9ff5a8fd7e7b57554d7ef00640d92b605c9afb0c19dd5ca4c79c409d85c197e8f21d79e91df01a817bf68e8718bc771028c945471ae003c0a210c572b79d772560031b5d3e5495aa8d9bd6fa3f8ae9976ed7e7f8d7275030d2f12ed5ab05276ebebafcac7d0ca41f9d860583f800e4f1b9658b12fab31fd63f6a5e4b80463918f8295ae11d7b97f9b5f89b8166861aec8f1b1417163a6a8adce23ce66c9a4306acae7ca75435cbaece814d6010a3e335bd7db9783812052179d5337d1c353be6e0b\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (19 mod 64).\n# DIGEST: e2593f3b6741a9ed9fa188fc06efd057556ee624\nKEY: 6965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce\nNONCE: 998f8fb2eaad409ae02116417dae0cef\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df6\nAD: 60ed82933f62be8dc55b43\nCT: 9b51ba0eebf72bbcd7a1b8452a49f30bf2d96bf0cde4d9e5efe7f1903eb4e09f53aec649c5a8ad7e7fc6c28a0dcf4bd3556f4377bbf8b3f9c79dffa5978692559f732c109a7a02390746f5975d5a0aac4d04ce\nTAG: 636f7bcc9b0b5320643f4b6acbecd60a0a89d2511621ab47fa4c9af610fa1ff9c6cc5cb8fb64493d6a4dca0e94a90794f31698cb1c5bb5658e8b6a63a2cc9b2f1f297240d3d6c62087e32f5d5e9f9d608eccf4b41253933c7391983db1138012a5f5caa5abde25c8a16fc33cccb0604421d985f198c48552650f5dd299bf9163c136c042c9a35cdf7120a702bf460d739ab264fe1f58453ff4990f7315379ff074e01730e7cace8d45a5d0355c0acc409db8fbc759516ad56818b37700548aca769719937103787311b6dbc8488d9e68ee439cec3075bafb725f44734326df9b10d6a4f7133ba84489a9985febc96200276a1fb513f8a3c062466cbe63e7ad668cade7ea70c3b8cd040a6162be\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding ", @@ -472,9 +552,9 @@ static const char *kData9[] = { "ef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c2\nAD: 7f4372480974454879c41d\nCT: fcbf4939de59426da2002fcb8e3a4d07604a168e9ffb5f13afcfbdc45325e3ecf0659ea736f9dbf61cec1dbed1024eff9e3bcb721c28d004549fd84e2cdeae36dc5e5abba4f0102835740bb877858814fa38290344addefb47ae583171a510719d9aa18c8f8a5e01396fecf1a982e162edf1047f56e8e4a839c5560473f389a4c7ea8fd5e03c7f2d31ccbc094f04e2a510aa57fe30f37cda765ddcd2bec89ab3f1f5f2ca423c68664c3303520c71439230116409dd84b4a26c1a102e521253ccd455793b0d883b1569b5013653b1c606143fcba7252a70d2a2026b989d1f67fdd594d2b33bde1bf7ee9bcb6c013ea8886e0ec1341039b8d8fbb4d865754a62d0e2a1151c917368e93fed0cb29e2d63ae176cbd95991db0a2864b27b6cf5782093bbe0ae117c7b2931f678bcb07aaae3d955b61e7ebbab8e84442295700cebf1a8f7d846fe788baa0660608bcbfa59c4bc9e5d163654aea99635f9bb63b8074478fc97b4981f5e5d35430b1e18332370dc5f4e94616b0270112dc446335d10a169e8a6923765647607ba9ad65c6f6f008cdf041af2e136b398bd1d1f67044f8360d9c1e90012e594a353d8e45aefac62173fd1b03ee5e4aa6961d83cbf1096dfa02f36ef62ceea5bf88f95301464d0046cc8ae3bfa611caa0c63d07\nTAG: 850f8608529bdc90c222092bfab0239a3b07b9cb1f\nTAG_LEN: 20\n\n# DIGEST: e654b4c78e1c0061eea2996fc126c9bfd41eb6d9\nKEY: 3b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b\nNONCE: 66262c0f0368fe9d0cb746bbd55813e8\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f43724809\nAD: 74454879c41de9ac9f9823\nCT: 3a35e98cfbeeabc993af7e952b148ceb87a110d851bf2d036e5eed8482b39b881b3180dc50ce782a8cbe2c586863c5d038fc4f37d4a96ce8732abb984ae90bbccb86f7766e9712e43d3ec40fdd7a1c88cfbf14743908c78dd4c19d449db7557e0c30127d35a49503d8dce6c9a9e6f07e1c86d7e365162ec05a8b4ed301645f8274999a6c5beafc5b27dd68608aeb2efdd9cb00c6236bb143e7d91709a3fea0e865330680a854d47ae3b6067002a01aec6bdab9e60c19ca66cc39d4a44ada1e21720bd5bd87cdfb31b8a9bfac77feeafc9f8e92c4131d73a3cfb64efae2e8d14fed99c2bc88f63f88079d30b78df18ac03db855338986c0fd1614dc6afaea71130290bf52270999f3392128bc48fb0a6d6425c383b637f4c293e177f479f6a2d6323ed545bbd564f743850a121da96256a8daf163fd80835558b21e0286cf008e7cd87bab94222fd7faa395ee2ba19aa3abf5d000e7514a35357941b97e4ef433c30972e995b0991c862cefdf79712cbd3655ceb43e1e5f5b0d3f5e275bfad98a667d997333d704e4d70acc488b6829d18d1263b841307d592f760a66761e800b4676d64546a1d8630d97218a7c5f555d4a90cf58eee4bd1e1fc0e15f8f64d336edf9ca00183169f237a924e7efd5a339f3cc1bb90b4c513bb9969ecdc9beb5c5\nTAG: b24af9f27ebc204aace6315a197550907bf6079b848eb1dca1a96192ee7c8107\nTAG_LEN: 20\n\n# DIGEST: 654b8591c7f0506261713e9ce7a6fd24a6b9357e\nKEY: 61792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f03\nNONCE: 68fe9d0cb746bbd55813e8d454817c21\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c4\nAD: 1de9ac9f98233b5a7379a5\nCT: 7e1b59c791aeef6577c7ac69f8624352b7c2c7d1c8b14a7a0daf8240cc9d71ff1298eebf18ab6d469e1a327bbc3bb539df445ddcf7dccacb54f0a4ce6cf18bec20101bcd62bb2b30d8426a1e3ba949dcb69767aab5b8d2228267d784bde55bf887403188cd39453d32d50428bb9846212e4bbd3843161dc830646ba6e251ffad5d1b382101c7a3c87163867391fe44a58639e8a29fbd34cce657d321d004f842e0efa9d4cf03f557bf07a1201ac36258a4810dc101c427e19bb79f0800f27732094ee1dbab2abfc061fd4a1e84b2d36e560a38465cd4c8bc04bc27ffe90f1ce5999fc78d9432ed98c8dac4047a61547b6205bebe2191782ca63e50bb29c9bea553f5de0e9051cef35e3122c00e0d3a2468ecb2a898225c5f65fae573b17a15e013655a2ddc62adfe61ce5a7e352539c6d27c9726d2ca5492ee25b6d8233e32383100d131abce97b33dfe18a415156917ead8fe854c53bde97c0202e782679ac46f05afe1b9ad6b41bcb65bc8a80682ea8092bba0c47a9a03d08004a11756d9274ff83d5d468475c8a4a56f81cd1367040a3f75fd998b5fb3380cf8c1630fdb948fa2d0930fa5b009abc755f4bf70a59847969500d43e2db40ee517c9a6826e8e3746b3d40f9a6e7b35362550cabfa601a887bfabfd28476b3d7eb8917d66bbe9d21bfebb5a\nTAG: 22e74d37769a86785c57bb760e8a28de7a7ca3207fef4e80c284b4\nTAG_LEN: 20\n\n# DIGEST: 1eaad32c8d0cefaa5e2c503bb2185a73e6387fac\nKEY: 16430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb7\nNONCE: 46bbd55813e8d454817c212d3a0063be\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98\nAD: 233b5a7379a561792c0f31\nCT: 26234359615c88fbbf5fddd43d4832a57bda2037e2177b264309e2e50c28efc28c5ed5cbf6dea046a14caa64d499352ecba0eb2d4bd376c6b1e14048033e21b9ec63f500a70c53be60099d9c9e46ea8f250d3d20c834c3c0638a9245377fe2b76b74ea14bca6b4bdc7e8d86ca59f397fe72b8c4cbb8edc3dca7f9f234529034fe5f1441210a8ad9b4694fe013f7e4a906fc400a27279f2a1a31700750e2209f6296ed808c893a42214b46f765c9d01cee46df18b02d5493c3a1da3a6258e89e47934ade4da2fa9eef7f5b1887a60585684b1c5c2ac60d94a62d79694b063444fa36674ecde12095e9203d281da3118d058f547ede5e4b67a11ab55c1b42fe01a94a601ba031c5b0b4088563344cc28d640bf2e7c81a259211b130bb9ba9ad93090c0e11cc939b99046fe7f25132672c3714f9973513af628f21942da6b459a60e31fe1bb9bf4f6259d8c9fa07d796a264f94d64122d186a0220d9f44b040396c9c187d5ad1d806ca613a4d0f5038a8b77177f39361f9107bea7700ba835dcd38cb48a6c5af0bfbb07b7a2543f1c661f1dec06acadf8", "860fa2220c67bbc9c97c44cb7cc58831563153149713ca2db85af46932a8de891da1d4662e52ed5b7c1c15d5557a0930c7177c2046b50aaf14874512cd9ed62efabe5704573a4f44a4ddf71202a6ea8c706842299\nTAG: 8eb60165231c67e88b0abd1d7c1c3dcab1b7006d4d3f\nTAG_LEN: 20\n\n# DIGEST: 862c0517b3658e9b9cd27db608d49e24e9b4667d\nKEY: a058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813\nNONCE: e8d454817c212d3a0063be26e0636617\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98233b5a7379\nAD: a561792c0f3116430e8b6e\nCT: 6f2cea3b4aa1b3ae78d31e47c0c1e03df944352b9bd5483cfc09577aab2095a0a7e977e9c1c6451625d85d162c1653423609f141aac93123b2a0bd093c5bcdd9a49b27ace4dbe6acb486446f437c27e619a0f69405afc83240f087feb029fdf8f3f25a8a262b4a3efc4bc80512a96a45cca61d46e42132abd34c2821e7ff588c742062c01eacf9d1689f11648ebe326a91fe79275b5b1fb2af4d1440ff4a9ad35381daf2a2c0aa928216351c5b89ea33bf225d34efd7ec2c81c5af325b138a5f4ac50c5aca196d1b32ce8352431a8f08cb3b59d2f8de5c850e2a06d00c1d7f7027b4aa6757eb0c9fd3035063669a5ff8db2402818c88a7137ee309ef2735dd575e43b7508c81306dc50da65aa2276dbcd98537636ef06d1736f14e2babbc39457dc8d101d22e5516d652151c2092812814e9f73dd6cc805e670ca36e62799b42bc07fa1d93b9332c43a4b759e53ae138fd2b2b419b21a332ea304fb7db57e860509855b2a540cc909aff57e1433f295e8052c7609a88170feb7623cee8ee651ae1dca4b1afa427e2e43569d5b7f2ea688d2e2afb33f1dc0666c4b0df8aee281cbcbf5e964beb3851f7b929e5a4e06766746f22d4fa1a32913c0f449b4da8aac6294348f711d4d75bca509516668944d2a162a53a31229528e54e4bfbe13cef013efcd6687e890d292e42119529c92c\nTAG: 76c80a678b6cd735a2d01acc18dbd90bc3997f57efc2c5c78c22fe4dd13f06fb91\nTAG_LEN: 20\n\n", }; -static const size_t kLen10 = 487666; +static const size_t kLen11 = 487666; -static const char *kData10[] = { +static const char *kData11[] = { "# Generated by\n# go run make_legacy_aead_tests.go -cipher aes256 -mac sha256\n#\n# Note: aead_test's input format splits the ciphertext and tag positions of the\n# sealed input. But these legacy AEADs are MAC-then-encrypt and so the 'TAG' may\n# also include padding. We write the byte length of the MAC to 'TAG_LEN' and\n# include the unencrypted MAC in the 'DIGEST' tag above # each test case.\n# each test case.\n\n# Test with non-minimal padding.\n# DIGEST: 9c95dd31953799bae5073105f0694f1a0e48afce9277fe009ff26b28ca9ce072\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891\nNONCE: d77df660ed82933f62be8dc55b436965\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: 5485a38963\nTAG: 7bd49a1ea251ed03f3478129a62964bc26d5d16c69be13c2e657f10e971352bae57fd40d369aa902d9e8d365c498a4f4829af1a7e0da1bbd913e36\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with bad padding values.\n# DIGEST: 9c95dd31953799bae5073105f0694f1a0e48afce9277fe009ff26b28ca9ce072\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891\nNONCE: d77df660ed82933f62be8dc55b436965\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: 5485a38963\nTAG: 7bd49a1ea251ed03f3478129a62964bc26d5d16c69be13c2e657f1ae0fe30a3006727ffecf985f1a015f16\nTAG_LEN: 32\nNO_SEAL: 01\nFAILS: 01\n\n# Test with no padding.\n# DIGEST: 3519ab2b2943d2a50996628f6c26bea29f84c95af4c128cc3af012bb358ee9f7\nKEY: 481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371e\nNONCE: b8da7dac997deafd64b1fc65de39f4f0\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8\nAD: afa22993a340b9b3c589c7\nCT: c90e0c2567341ea7e9d968dbde46ecb46ad78dc8be7d47672068de66d6e7eae1\nTAG: bc33ca235ae35aad13e540cc9f0714dab00678652cc476d57c543967c39dddc9\nTAG_LEN: 32\nNO_SEAL: 01\nFAILS: 01\n\n# Test with maximal padding (0 mod 64).\n# DIGEST: 6d9cc64eaa0b3c7482d8431bff6d24c9bec634ef6459d873af4ff97756c9fe46\nKEY: 37446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be\nNONCE: 905d41203f5dce998f8fb2eaad409ae0\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba\nAD: 2fd6773e0d0c302a5f47e0\nCT: 7195b9643e0f7a4293c865db36442d4fe2cf3ea2c648dc88cd5636fe5e6bcea3d1197966e800da8c78bcb8830f3fa97671aebce98549e62827adf612e70f9466\nTAG: aecfefa9e983ae857f033408f04a2f4dc9069ce275e00f9c35649716c3c65e9bebbcbf75ea3445ffde4dea79bf5c3d1dc4cd15a351972492445d1fdca03f7834b18e556e7e37e1ee1fe9a3c9d99010fee3a7506677e3ac5cbd5448549ee3a5e7bdd5a7b584767e76f1964a864ad2dad467e35702a5771d960b47f0cc4654a09a5cb4b7336fd43cd4fe5290b15ff50ca286f654b215c3bdbf3b918ae042fc17626ebdae135302ab9553416224cfee1203f804d99804d9653ec2a99a7fbf5d2a54bccbac2ef38e6d58b22ed53804cd5851e07f7cefc52df184a3c9acce574ec14c99a3abfda4f21ad119dec4a7743b384490136e77b1216d0df8b58607cc1cb4dcdbf25682dcdee237b773fe9714d24f2b3531037614585df4f56c855fda9949cd\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (1 mod 64).\n# DIGEST: bb57bd76fe5f29b96ee3f2d62d8f3c4d1c8c986c0991382834046dc907fe1ea7\nKEY: 446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be90\nNONCE: 5d41203f5dce998f8fb2eaad409ae021\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2f\nAD: d6773e0d0c302a5f47e037\nCT: 1d50f3eb1cd76d8e08a9f386db0cdc3eddfc694e8502ccae47ab431c2935fc461254b80386c87690b01c22f38ea9bd118d2e0ed316ac249437a3e9c30f6c1f7636\nTAG: 4b376f558ddf76137f0690dd8eb88720c506760c182e4cbb2fddb2f64e269bbf9e4bd20d1f2e1b8203f10df5a92a5950a7394525c2c36006716d741e686473de9895bbbf47849ad3a340dd262c095263be3d7678734ca7edeebd4eee8d3375c8f552436e3a90c7305aa0bafed0bd42f8f651a38666e28455e335ed58d86ed265da1e9cb77c780d4be9a5674e3bf7b624ec862aa9f5201793cc1cfbad7d0f700ce44d3894ed8e19884277bb1e58fe2ff4d4439163c6642f11f13be03c62d5a13182edc3e62bb72cdd7d0e157fb20fe4815a6803425781c1701d0601153811ef79ecf6ed3852eb87f886abee0e4ff13622b32dd040691810a80f3e21cb1d24fd2dd2b74cdeca38c49a7a1d68d72aad5484c6907a4e6440743a56cb8b6394d2a9\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (2 mod 64).\n# DIGEST: b09802c727f0f85cb590791372c52bfdc2e69de36b9695daaf7a93d2fcf56fda\nKEY: 6f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d\nNONCE: 41203f5dce998f8fb2eaad409ae02116\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6\nAD: 773e0d0c302a5f47e03744\nCT: 4d754c684658bcc89208bcd75f24dc8e18b70a28b8a2201535e60ab755fb20e1ddfa98742d257eadd02d96c6a65f880d058312311efdf67f9a106beff9f5ace06577\nTAG: 261eb376dbb9e82baf29687e823a93bd63961414b1bc396d5fd21e70afa47aafee1103248a9be160a0cc35a7cf05e6a07984ccfc354d37903f9a199698485d5e136648b1fe6adee40b0dfb589979df3b158fd8b3d35c8ab4c387f61782242e23e5698e5f7ebb4e733a63f3282ecd0c565f9c9535df36f6156aabd988e06e754fb3082afa90800af3e564a8d275d9afe184a72d538bd26ca1b4b8c12dc0ed449e643c1a1aeb8b943bd74abda7dc19b2e303a778d348fbbfe221df38d538c921030ce6485ea2bf899284e5bc8329432b16e4562d1609af0fdc616d3bd91688c2655dc0d5b436c0db8e0b434d897687e91a60f749a7e5a6e88e43a16b5f7a4c68d5c8325c260915139d901988ab924f7e9b72bb16020f0cc0c6b3f97ce4380f\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (3 mod 64).\n# DIGEST: 13588ebf114df38b7b59f890dffab8b1a4c85f090c3f4a0e508603ecd34f78f4\nKEY: 5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41\nNONCE: 203f5dce998f8fb2eaad409ae0211641\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd677\nAD: 3e0d0c302a5f47e037446f\nCT: 25bc47e58e7d4f3a417c95768699c92240a2be0e86232a41fe02d64f66716023996772e1118be48e685042f989dcd9cdc574614c9c3989f1885b4b71dfd5b1c323db52\nTAG: 9e72a44693493371870022657655991223f9a9570caa8d43b20b7e567cacc129dcbf03e2a7583b5b494bd6c52cc66ff1d1b3ecb7c39e26efb5fe025ea5bbef7dc579c58c9cc8f272d36b3b596910477d4af7e7105055f7769ee01dbdfc684956d44d583748085de4d2d4f5a9aea177e1f59f4b851c2794e1ee26ef2462b77f1ffb6d41fa793cac4aaac3aa88bcafc60066cbfba2af3a006bf929621350aa66aeffcd8fd7928e50df5dd27ca0831119107aeb0a2e7af5531da7b4033a049180a477ba24b8bd8042c4d30385ca098f9a8f16be6c286811bc036b827576da12beabf69c481a2633f6bcc7cc9255d5c2ffbaf5fc5813c6350f45b8cc664ad18304cf895907ac6c1c1fa5f9485f8d87e0a61f702334db886fa0aedc353fe50f\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (4 mod 64).\n# DIGEST: 25c98c13e308408c882677b48f3a49a53b500146eadf5bbc0f5a240ab6ccbfb8\nKEY: 91d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d4120\nNONCE: 3f5dce998f8fb2eaad409ae02116417d\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nAD: 0d0c302a5f47e037446f58\nCT: f1ab85a35a17541efb4f906e7fc85e64efec6ab40d59d3da920c4ec09797c3ad47820e9d934e51e3f4d097c4a555575939bfaeb8cfea062b64816a160d6e4d1f282dbe90\nTAG: 2e3eea7d54f2a95572c0dc382ef826f9fa138637df323adf2f64e42a4be6d493ee3d087704d9a1ddadfa34b0cc2c35f4d7802a87fe3e14be035b269c8135e822771faf57a21ee9f892f26e2231a0e4e03b32f2a809d560ce72c7e910ba4c1b524b171bd50a7a150ed327e791e2f76551d4eaac1e53091f5d701caa50edb892c6e1e2c2f8ac0413b864847fc10875d6f702c03fe366ee4971ee4602d078ce648f54b8e71bcd383bc4c3a14342ebfae042fa52f59bc5ad73a51cd1c561ae615fbfe24eda7301794349431ae59fa6a791dbd0691a83dfe1f8cb0fbe9e385708a9dc9449186cd6026f962552903753372934e220c7d5eadc2ea75356a73cd086f850f40a9b83f1e9331009d23785bb5468feee97f6e9e21d2a17a9eb2b5d\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (5 mod 64).\n# DIGEST: 3fb8ba4df90f52332bc7a20df805fe903351279e0424c232365cfc4e62982296\nKEY: d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f\nNONCE: 5dce998f8fb2eaad409ae02116417dae\nIN: 936a91d0b5d2c0267218cb7090", "c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d\nAD: 0c302a5f47e037446f5891\nCT: 5d6bfe91cd2273a9b986397a38e81be5fbbcd0403ef51873c2c467a9fbadc7bf540e83c538a43dc0e0ab780a4c4b1f5b77ced74f65b61f8b8b58b26fa3e8cba574bb9527e4\nTAG: 8f360ea3d348aa4a950019f720333de020f23bb86eb11ab2bad10665f2294b914eace65dd890642fe33979f0ab04de5fd00b98757e734cc1becc43830eaabd48d415ca58dedad92d4c71f0b7744b74326b9d1dcc7b9afa134c097fd563bb001d8e91dd71a41d5f906080097d811355c268581ddc1c7698d9a65179526eb8c96bfc03aca614f84aa2c871958e71fcef12efe601309efdd7084c7c02aec5a6649dd7fde231de46b4b0b4c52676edc19edb740b33f8c90885147137011c921336b52b3597a30334319d69d71498b11feb841c09577c2167b58430784a056310d1b264e52af8ae737d7f8dc6431b305afe2ad43640cb90c2eb6fb4d5cb8540ebeed729416c04d2260a6b923ad698541a3315f938ed6a1b1626b1e73ea0\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (6 mod 64).\n# DIGEST: 23f13497afad98ac65bd2a1642935ff7185a839a672fd94b18279ff92202a3b7\nKEY: 7df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5d\nNONCE: ce998f8fb2eaad409ae02116417dae0c\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c\nAD: 302a5f47e037446f5891d7\nCT: 16e3c681ba1ece3bdbfb1da491f877e806ddac5f1ae96bc406bd195c9d48bcd4a9b700a8ced21d824bfb99eb057e401c3529818725b51e96c576e8009bfe486610501aa3068c\nTAG: 52e952e88946079d0e7e443f24f113c0c13ee17438fb7c302d82abec8e24524ddb4121bd1f2f1ba18389ea5aaa2ff43b9978425f1795cf3b2b5245f13d74afbce0e6f4107c9478c9e76a803be141320ed0ebd81ad6133d0ba901cfc4ef9802c29dafb2fa0d4b6ec49bde0ad8e359265b9fcdb9caed5c2c3772f2777c8dc59190d554a76d6ddeb67f12a3cb382015a36a93ea747a808feee5cf9abb7dd413acadd6519125a68071f7f490209f2de8049724a87dedfe208322cc01ebafac59d1d7bcc8c2896074908b40c23094a878a0b33592ecb8d407a9c68016a112ff1b5226a0ca7ffc9fcebc4f674b4f13711ee64dafd5bfa757f3820366a26b12f74fc30297a1209c16ea6299841713d46b72d03a12a51c5309317939d556\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (7 mod 64).\n# DIGEST: fc71e48cdc62c15988a84f32ad60aa760b5766c892e559fa1ebd882a587ce590\nKEY: f660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce\nNONCE: 998f8fb2eaad409ae02116417dae0cef\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c30\nAD: 2a5f47e037446f5891d77d\nCT: 9b51ba0eebf72bbcd7a1b8452a49f30bf2d96bf0cde4d9e5efe7f1903eb4e09f53aec649c5a8ad7e7fc6c28a0dcf4bd3556f4377bbf8b3f9c79dffa597869255f783cf0c89206f\nTAG: d94d45b132507172de566b7fafe7ff2f6b50387ba1cb27c2f2d566eeb644490a01e89745aeec464c3aae3fcb240dacea5c13f8fab5e3db55a415052a01e0ea77d0ce06a75cdcbe0b7c83433b33022de91034a18188f7ddb699c55957611f0d1f2fccbf1e8e325d33e50ffde6b62cb153c43547f7faa3934eadc45b5bb18a88dc25470dbe6456ccc99ad306e664226630a761e9673f673262690af6e2922f2376ee9dd486872314d2afa8be11db1baa876a9c0c8d4f2050d65bcebf39a11656760142d0d4d505e2a80a0ae3533608c161cf6f9ed4de850a9fe77a0212bbab0c82b9fec6fd151bf391bc794229736b1a51bdb2b012393ee405f8ac64db7471aa63077d9aca9ab11da3d078947dbb7e8c3935c0dbce060df66655\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (8 mod 64).\n# DIGEST: ff4f42d72ae561abda38963a2713bb743038589bc2d7efa0f3fab298630b9c02\nKEY: 60ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce99\nNONCE: 8f8fb2eaad409ae02116417dae0cef45\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a\nAD: 5f47e037446f5891d77df6\nCT: 5e4df84379f9736d784d9166047003e3ce3375a8e7add80c8687e94f68595aaa52e3bd39a45a7f67d35b4df0c5d62abc81680ebea78d1ec02153833b4dc4bc5112f4dc2b3f14deeb\nTAG: 9772a910db4e6582b98dbcd4ddcf7833fd0e20fb8044161467d80288acdc76685c62394023653d4942a5d1d27e63c12b44dcca72217d43555728199bf2e751a1e17bfddbc0ff8c6b618715fbcd27990a7f94fa7009466dcf570508fcce46e0a807c6892e805aed7141fb4cd151642dffce62f8d9e677a6a5b3f3506c4aab3cf3cac29bf4bc04d8a2379b8ae4d55a3f7b1414cfa7f576f8345457a87f257a75cbe7862829a5b0f9f779aa50bdeaf36ac6411a1fa7ddbba9519fa933a0729f02a404eaeb2c35ba4ee424bab056ee3a8ad0cc5b5199e6eafa0795dab533d062410f775277907f36375ec1cda175ab1b8f8032899298557bab8f3eb67190175b710854f0338418cd46da7e1d4d0ef8fb8881df16f781df7f47b7\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (9 mod 64).\n# DIGEST: f4f7f147b43ea50a1f5a4f19c093ef917d3b92b46e5798e18b5294b0a0fef814\nKEY: ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f\nNONCE: 8fb2eaad409ae02116417dae0cef457b\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f\nAD: 47e037446f5891d77df660\nCT: 1ddce9b3f674dfc1b94a6cb34418e6b75c93f14941a6dbe028ed59667404b93afead95ec50b9393a8e0e5f469fc1cbc5136f4dc54f3a005af6c88cf70ff39487dec8dec0a9e6ad33c0\nTAG: 6875fe08d6aec1a18c56b4f446562a523b95c8434fcea5942abbc10f6e10ff7c455db0e80f945f81462a0e689df450630a34a8c9c3379c4494821e762c16a73b029df8e3e5775e78ac2a4106d539a5aa2522dd0a586a974b84bc09e86ffb21f3fc6a0d1c9e1d75179bada55085a3d9f9779c2461f2ccc990765da2450815da4cff73913b224bb946204ba50acf5884f71da7a487b743bfa20a09175a4dc11e9ee6a0b12bba1a7330fb482f925f36532c52a3ead78a8924cd30a1e3053faa174d5acf16fc3e02e0867b921d382c842afe2b69556bb89c853338f6f32434e2b9da81bcf7a237e709fd55ede388b51b2ae62e10b1ca69b4fcbdfa3ac73114713c66eb51fb36678137aa4516530a92e03b9454ca6b8ef35263\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (10 mod 64).\n# DIGEST: c48f43e4386dbf727ca93d57b5b2a4ccd8e1f27b201db03000660078b773faf7\nKEY: 82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8f\nNONCE: b2eaad409ae02116417dae0cef457b9e\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47\nAD: e037446f5891d77df660ed\nCT: 6736ca287cf31ea3ec92c68697bfd1f88642e67d9dcab11c5dc8ecfc61611ecffc54a04119f53f9e5476196f220486ab53e2b21e1135bc6745731f0bd32eee9752fe18aa410159805977\nTAG: 5e40a60a3661940d928cc1818e0f0277390296d5a20f1d020452845b5ecf83dabb95153285213d50438bfd32980c294aefd1d302517cf2aad8bdefc63d87d2995523db2f2380cbec94cf5f5a7af4f605d7c9cb2c2c5fc67b567c5c219de53c39e92ce4e597ff10c929d7e66f7a156f3bb8fcf5c05df504924dc282bb94fbc7045e5c758239b70c3f171bc9c34e95f8821738b02b1049c8e1b21d66e8ce2ad606c8492749b78592ddb0df4a51de74514a1f25fc4278b22dfd5aa0761e1afc5e4d622e9088879df40964ba02503e876ebc70ab5e75c33d7ba0d3879e32255ac7a884a723a673fcf7007c8105e7dedcfa91832ebecf6a929033da1069839a1ad5ea9f659e2f2d295b06d5d6c5e685732f8d9c4b95eca515\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (11 mod 64).\n# DIGEST: 4fb8d7ccd762998c343aef821e49cf91783d15669105b725eb1123ddc16ea445\nKEY: 933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2\nNONCE: eaad409ae02116417dae0cef457b9e5e\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e0\nAD: 37446f5891d77df660ed82\nCT: 95b9375058667abde693e7e3a598dd4c326ae4db29f54667c54453e6191c52f86d2fb4fe324e9a02b94f094f1dc272b1e6ad85529206a511468879d31ab9e74f44d9f388b72cd2461fb67f\nTAG: 7d5b0073be50f1aa588d60ff430da154c9793c30646b9d98ff8581febbf8541698a3a14e8dcd317d3f5102a828923b4a060843e4f813cc0198d19bc7b8c7c3fb00bbeadde45d84393bcbf90e4caa0b4fb7e8ce97584d639aaedca28b685083417c996ea73686a504e58ce170d5e59dd1e75cc2527c9a9976ab552533fd3e9c22603c5b4b25456d833182821116d7f80fbfeb9b0a840c127a755b4ac4121cd82f12508b0eabcf1255d5ed866b11366f9a2a59becf0aa3944ed0b1531c92342cb89dc819fa342d19db29556a98a6f1d7f166406257c4fc2019f5cfb8e1a2f02a161e2e6e91bd717c3c0b7429e9eb9d50f873ccdf0b487ee1996e38b248b0bc29ff17d713b810907bacca6f4dcc0633757d84bc065497\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (12 mod 64).\n# DIGEST: 756ef874fe4546df371e012", "dc34660cebd6321b67dac201988cc72e48917d7b0\nKEY: 3f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2ea\nNONCE: ad409ae02116417dae0cef457b9e5e16\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037\nAD: 446f5891d77df660ed8293\nCT: eded2db8c302b3b5b5b0c0d556f8d34408fdb2af75d38231049b5f91e02a4086e6ffcfabcba5e3ec68173dfde382a41523d3c8ea1f7944351baad1588516c548942da82684d52639453ffdca\nTAG: 518bf4d7ce510d2d8b41b8948c72f652efcc6973337da9e53d8daafd49a8fadebd391c0867ffe253dc07d26c12985933288fc617b9f1e0b74ba51b4a85e11d14de331f9af1c3ec66f4c85e0db13e2669a0429b3be48cb3e8a59f3fae779aba1ae3cf8a9c7d3c7c3d7046b3e7592c67da2779af921b2fe68801d739ebc0fe61ff52724a034f8d6ab916cfac58e9530a541148da1bcd17957a9fd9481571d054e6e38f6f13460fc1bfcc51052a7ae75f514a4d6525dd85d067698197322e61212d58c3fdd3f08e0a06189d8773f87f18c0156eda94657acf5659c6bd687188fe8e3f09b7cceb63d6c78e0198cfb985bfea1e6ef70f2e1727b50c45b123d189607c3dbe0e06f1b359ac5f8dfe1766580afe966c8f68\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (13 mod 64).\n# DIGEST: 01fbec0db232a15b4f3e02a14f412e296a0f2c7bbc539ea1e5e835206e197929\nKEY: 62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad\nNONCE: 409ae02116417dae0cef457b9e5e16dc\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e03744\nAD: 6f5891d77df660ed82933f\nCT: a56c9d8579b78c9ef40c4a230e8bd42750510340fbd0cf55393bd13d93b105fd2cd1d701b6882bacc661e8da81b7c9eed6b5dd4da12353298150819c748f464fa35936dbdb39149ed790f58777\nTAG: ec23664bb72e227a2d60f8e04aa12b33b78d59f1237f2305c1041793344510993f4dee5081f28a969c122c414a4218d4a73e4e8ba26ad8f6a8c3f73bfde7b0412f8fd6941f26ab73eca7110a4873cceccd43a917d5ea6418c85788512fbd262c72e594d2defd5a0a136ee74e9d1e76f335965a7679b3a059fdd6b72eab855763e4af5e028e9239418197e00088c7e2f661142d63babe769de4df2bb36f2fbb39b3723516d0c85b1214e82f12367582e9c707097cbd91650f2b0ae6f13a006cdaf65f9384496055bed36622b4b495335850b10fc6376112b99c4ca121228814539a2024bd4e839bb020efb32f858322b4474bf5317fced4ba64817e022bd53eb839793c59e673d4a50aea352db65143bc0a1d14\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (14 mod 64).\n# DIGEST: c49af18a935082656e153daa62270e736e336727424bf48be78da0b7dced9de0\nKEY: be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad40\nNONCE: 9ae02116417dae0cef457b9e5e16dcc5\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f\nAD: 5891d77df660ed82933f62\nCT: bf13550fa32201ffc699cbf22de17ca268652f8ba2693dde72b626d01855eea7c21f0afae3fa03dc757491e8efb9091a4c100f8dccfd15a9b4dd94e4fe1f5e90a96a8ee973df3f67b1b87adde382\nTAG: 45c6bd5afe30cb502e43d1b3b2440faaa2908d171c8e7f53480efb6d74fecc454a6dbe10ca0ea6368b4afc200632c1b078250369c85a463c63c8c79a95a8d5c3b2ed6ea220b8f624e381022f78cb94d401bc384c5c6be68e8f56f353524d93b68dbb590ca9afefe04e642fb8d8650c8e94a873985c14c1fc7f7e114b2dadf9c9cd89e504636329f476fce6fec894337704b6406c634aed0330cc20030543261a628efd49bbd4c52e7d70fe4b32415359135e2328027b388e3dd4edc43977e8eeecc04919087ec0935f3b7482defceac851adad46db682cb19d407a2615164e2930278c26f942572b64ff9ade93d2debb185309fc2c526a80aa57ce225ca7cfbddd4ae17cea86afaf38b1544a8efcef6df761\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (15 mod 64).\n# DIGEST: 8d6f1fdc3d60175573775cc289d7436b88d10dfa029e90e10e513c8e739666c4\nKEY: 8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409a\nNONCE: e02116417dae0cef457b9e5e16dcc5b6\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f58\nAD: 91d77df660ed82933f62be\nCT: 9f9a3ab733e50c1584c4f0c2a2dc0ff71bb3a9b32dbe92da2fcff8fe46a4bf16d4f30ec8efb1319891b7d2586839fffe5012a6dc3d5f0ad21e1572a1ffb48fbb82daa5c2de27d8d64515d8b50556ac\nTAG: d59e25e24c745028ce4239294565972873c4debbf863e3a3b5d69c5a32127916516037aff509bacc58b89e041ef8d2c56b7a3898aad9426f6c26c7d61adf61790362e299c73eda72314b6429d9f64985d91820bcfa806cf4b99d45d60369f52c369970c8162499f6c39948bea9a7ccb7ded6b4f69f13a98cb1665a9be4ad2f8e3e584157a7cf74009f504622b4529e55d36e92cc45df30bfea3d3687437ade9ae87e16f64da2960d30d6660faea9c890d4110e18c20576b729bf0157c151397aec86b563c1234f2deedfea18b2ed2a780b3fba34ddf21edef8bacc5155834e2ad144b39eacde01196a70e309122eeada9c1c589ecb7cd22a954a8025edd31383b2e36f453f9bc1fd8779e7a23653cfbea7\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (16 mod 64).\n# DIGEST: 11a40304bc276c51e2e7d8e3fa16f905bf050f3861586be68ca4257b1e6cc566\nKEY: c55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae0\nNONCE: 2116417dae0cef457b9e5e16dcc5b6f2\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891\nAD: d77df660ed82933f62be8d\nCT: b4d33c5131701c960eda4c50fc0a918acbe28cd47fbcaa328c6a9eb08e3c36b697928c6981992ab155c30984c6b8e9340cb00decef7086f589ed2d730cfafd5ccfb95373b8c55044fa1c95927d02278a\nTAG: 713f2e3e88f54fa870bb429940553f8a55526f219f062dadacd69284718a21914f86d905517eb301bb5693610d69a32becab289041fb962d940eb0a37da57724b4d07c3b968700dec4d019f6672cfc45be30e4ea80a33dfa7d88abc6733a1cc7a788c6dd12f2e18f001a9d8f0deea3411c00e9234d9484fd030375bb6c3519e8068694019cd8e7eda59760cbb775a01d68626f88ccb026604fb260c0e3eeecd3482619d1108c3ed9ee2f992c0d221f8a0b3964a6ac23bdab18f2a825a2bd8893551686224eaab405e027bcf3cf6cfd840479be33ebd22479b72d61e1d26c0d62ec8e378982a61e85da137019fdb017338fb245ed0f82c531be137dcd56af636c69197228ed2be7ae7dfb0097c4f7e5144577a2cb0cff362c52e28bb1d2b284c0\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (17 mod 64).\n# DIGEST: da3fd1aaca630fe609395b45a44384c57f779505188c8b12391b9f34de17dbf5\nKEY: 5b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae021\nNONCE: 16417dae0cef457b9e5e16dcc5b6f256\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d7\nAD: 7df660ed82933f62be8dc5\nCT: fe6540372ad1c40ec1dd644e935c480b9e34aed05a7f21e2e37dd46db52ebc5352cbc3be2aa289cc2e9712aa7d393f4454c9fa3a4acc30db41ada1257693d3469b0a1d5680dc8dbfea8cbb4768161f8291\nTAG: fb0e5d817e59ba33aad224a3d75b490058e8d743e6db43e920b30fff5e931aa17ebdd9f33ffd1eb9d73a2b9301fec0981bd29d85edd9804def4edcc9d25c04e7bb4f092b71322dbfb1c54fb71de189c88b0c63a4fc615a389b7d67758732f2356924813539ba0248d47fe0a536d141210b4e01d3a3cd1a846933c45abf7441eba3de98bf42c217ba29eab4dd52bdb44bc8ba97c7cdf10106f0e5ed04df11835e1ed86290c2b4b79e5b9a3597dfce92a71958957ceed5bab67ca5b00eb19c0897ea081929a9fa4c45db9dceb70875cf9773cb5dc543885f62bede29135a5e637c078029b09b290347f1e39b6ce35c43294fbee0cf3d9359c25d2a55083eb7d3d13486e851b1b60e1f51ef7fc48d16fa427d7440aa890d300d7a2876ab371686\nTAG_LEN: 32\nNO_SEAL: 01\n\n# Test with maximal padding (18 mod 64).\n# DIGEST: 2ea803a4525d24849aeda1b0adb81676b32d99c42bcd0011932085424a0a8078\nKEY: 436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116\nNONCE: 417dae0cef457b9e5e16dcc5b6f25607\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77d\nAD: f660ed82933f62be8dc55b\nCT: 22e6c691ae1ba796667ceeaba4dcf85582e398e529d938da63c8221a58c2fbe242f6da82eae8c896dd31b45b3e8b72ff3dd7906130954f7b68d4c8729d3ff66ffad72104047209a56f1d6cdd927b57e8d08e\nTAG: 0325aa247e8c830cb0fbe906d495777fb41894e5721f07b1aadd8b0a2419dd28c973681d131ad8866e938ceb84e65762930d3961ec13c2ca461e927a8aa79cab8508709520b1dee01e81ab4c6f5ee93eb610d6185469d88b32f8acd04f6e8e138aab41456c9ecbe0ebc1d6f9edbcf8e4d543", @@ -536,9 +616,9 @@ static const char *kData10[] = { "9a468797639a48f1b8318d531531696b2aaec489306c070d6fa6bc1f00d0956a4b995db24049c6ead0065f28f570a857bf2a78fd8ead6784ec7c2182db92da136a38c6bf0489cc342fc6ddcd1be1f96fc040923078faa8e259572472b9353cd2a8ea88ffd99fb6173de97e45479fd93b6830b92775a7d831dc0070f7292b44a8242df02e2f1a0d3d9415209052f14f6a6c0d3e1773e6900c8e4d18e6ee0785d651f465fc629e4228cf0c56bad63a74f1f4146f1e411996199ecc7058ef56eeb9e04803bf6751bb544f79a9414a4e23ec1ad6fc998a64ceb4d6649946980be065aa274434c1244045bf6494c38d41c2527e7bcfefd97b56e02a88714517ce9e8bc09bd95bcfce333d8365af3ae81a7f925a18af9dfc3d66a3de394fb3126d596edbd85e17d9de30e70adc2049df16d73b7ec3a5034cc6e3a909e08dbc863d69cecff8035f49cce01fe284e5f52245f1ef8bb27f46939372c5d4f7cb5089b3bedf3eb7940442994081f6413716e831362acc732e8f0ad1670251a664ce3db8a32f87a172e77df3ad3722b56d0a40da18139a6\nTAG: f64196334f9a8a0ec08819927d2ba1e0796124f4d752f084f1c58725b45930fd2d873c4126c8c9019d95\nTAG_LEN: 32\n\n# DIGEST: ff2a290f638f41038a81fe1e1e9bf3835c0423886d264bc60adbdfc38e7441f1\nKEY: e9ac9f98233b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe\nNONCE: 9d0cb746bbd55813e8d454817c212d3a\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c2\nAD: 7f4372480974454879c41d\nCT: aca825e4559f40de2808ef65930926da912bfe99aec6688bfe17727cf5518ecf004cd88dd52a9a8657924068c7651c64378b763909e06cd3c60fe97c75ea15ec3dcc043588f17ca9cc59b7e85f7fa3bb10bdf28437e9bdc37207c79789033cc97a37bc9fbf31d7084b59a2b47918a9dd331bcb3431cb8a76de859ebced78927ef0d1871674312671dd99aa03a68df7fd62b0d6e3bb96434ddad5361670b38004e1e70e85b4a67912f93f69996c571e0deab051b1ffad32e16b7a5f93092d3f11b32df90de0405eedbcc122f97066e8455e1ac186c37634478e2a1d9ce9b3f17209bfe611ac69efd50ee698f9749d095d36edbe03e7ba5e28dc69a44cbc06bf3e3841400f3ca60bf8032e0d4d09b6d68156ade78a488932a6f44af7394b148e0f5420594ed37eab06f53e1cb266fdd16ce53ad4b012e341f99cfc78d25dec223b30f78b672ccceb034f3f5e0168f5a6287e7d6880ce00f3fb968fc3f101697a126d9e1b39d03bb064bf52ddde36acc2be4e6d753dfa767230f942dcdbed8fe360a9d3e2120459c24274f64761ddeb7934632d900ac60e5f78bbc31c94606173cddf966f86c45d51b69b9bff5fbbf8a7a94baf284713876be230a959347dcc4e1da5a326a78c9c28af0dba48877d0ea0cdcec88cae74ece4ffaa89a9\nTAG: abb6640954263403c1e8aa601023bc08e4e56e0876908ff7c7ba5c5effeadee6b98fe24dde\nTAG_LEN: 32\n\n# DIGEST: 989e0d1b57528f06473357bb0001d552849b928083a8bd2a4642e72be7dd71d6\nKEY: 3b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bb\nNONCE: d55813e8d454817c212d3a0063be26e0\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f43724809\nAD: 74454879c41de9ac9f9823\nCT: 8d0aa9d329e5b0dada9bf8d38ee8a980f7dce1ddc16eb9efd3d41006b2df5d3daba48f09736f75d8abce242dd2911cf80b233530e8d70905e26984b9e392063117f20e92c0cf0f3a7a50c8ee839fd18549ba2db16f724dd3d03a2b8e79877c8b4a213150338e0b1a4e57042886f3982579362fdf5204416bb0edbb8be587a4a2c4ca64ae03cb7306785d2eec45eabee789321ef52b8aadd397aee9acb996da928f5fd2e6f44118a50f0bf044a316f954c45e2b6c17120e873c15cb80eb44d2565609e08644b561219f0c343e1d0b01904db4c69a03a4c00479ccd4f8696579aa601fddc12dc61bc72a40e084df39621e0726b1dab7894c68b4182f3b0ff8c4e0d46bec9744d95e27646904ebfbfa7a8b58de71fece8908a14ddb9157aec0c97327f760519594cf8d0720040e7e27c570dba60febd7e3f289e1f583e721d67ff0d8d5b31e3a51ab68a008abc80febade9cc2023b35a7b001bd5196d9785789b8dc1ffa1fc69c6c10f0eb3eef9e764c1e1a40d26310c567ea8d98cbdd29dbec0df6bcb7b222d4b86941270bebbb0be0535eb15903afb3c5148372e1e616c16f300a6698c983e5eb8fd42dd6816007afe1f42f0d86cdd2ce4cdf0c0ee2fee29ce6cc326f91686e670050ee76b5f6897639d5d30df19e4aa15ae3d0b73d6bad3e870\nTAG: ad95c5e3840e677351b30d88f11a43bd8e30261054a605d54ad1777b82804210c251870d9a6cce9b3dc5b21a7b7b3f77\nTAG_LEN: 32\n\n# DIGEST: a6924d514c1b926c930a9da2091f42787d1e8111ae5ce12a0292e9d25d906c8e\nKEY: 61792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d4\nNONCE: 54817c212d3a0063be26e0636617781e\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c4\nAD: 1de9ac9f98233b5a7379a5\nCT: f1848c2b876ebd13f307d4a98d2834e994bc7b884b767aaab9e59ea5893a8dfd82d05c3fa9a0a59b8720c29c5ebb01293a30372c05dab5eb3c3d2427915289ab212a882128f584e62e201d10df90bce4202e48511fe41c8f1cf03dd2a843016802b489a10b3b3b0282a684b2162ddb2f9dbb23d0ebdc6820dc87263547eb00a8e54dc9193f3e1c2fdfce901fb36c982865c76b6a49cc2d6132a825c645be6ecc30af67d1b5738f69a4b8e6299440a3c396dcdf70d36079239f5a4f9a7ee28e4765a009324a9091472091864e7773708c1d0610d521a8634e1a6c1505ce79cf8c012caf3d6578782fc374c52dd6b78a5c7fee68ab99872ec8dd4b55858bd48df1ef39d2ef8c6fda201371a41d086946ce3d8daf107cdb5a5aceed9530b40e27a274a31de3688e0bb2fa89b6b3dc8bc5bc146d4fe0b7e565556cb9be1575e7661c43d4f385d571439fd3400841b96723277edea50154b6ae2b93f9040e4c5613690f690f3330fe06b293386de70d3c313985eda63f7f2ea35053b53d9bf8de93703bc5a43930e44a0ea6ac82a102f957ff13a19f42a328e9b5b586433d421b520c55fb6e2f9eaef264931679866a88731d716eb513236b44661b3d186d7273320a6fef5140ec5e6ff32da365ff9d393143a3e4f7e62b9a065313738d437b550cd1694c1b9900\nTAG: 5ffebc8724d29794a04cd2157479f16efc49829ad7b25b7a97b0e216c4092711d833e82d4152bbe1965398\nTAG_LEN: 32\n\n# DIGEST: eac0a728eea929714da1c2a7934747811313b16a918363bd291d7eeeb8082047\nKEY: 16430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d\nNONCE: 3a0063be26e0636617781e8591a6c6a1\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23", "fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98\nAD: 233b5a7379a561792c0f31\nCT: 9ce57bbeec62f4bb724c36bc2fc4da15d2f371e09f9de5cd436f99f39ba84a07959c002ec82006a69f5624333abf264dc93ab263d4202e8a078890927212f68fcbc2850dd569498db53b7a8e24921fa186b1575e6150b1785cc649aa6728ad08a57e6eb1aa1eb95635fee0ed3a689b3131c939e4de3aa8ff479784b10fae712c9d94708a8a4095acae2ac4ffe2685a3d1b654aa3a879683c54df1aaf42ae496d911789707c2b7598e418a8bb4b3ce767fa7d9f970691b010b529d770cc3fb9e5dfb840a9c815e09f47a5f8178e91af1ff10c1112c0e7f70cb9d31391dd7e7002a80774d101e18407d514bb28d5cf7db5a7c694c1cca10b447689ecc00aebde49652f8d8d65368a2f2e8039a06d7660c7f0743cb5e3144e3301509c003e803ca47587afc081b58799952cd17a53a891c6530797e288ff8543955c3011ec924024f7e2a1dd539285075783ddd478d4d06e7c20bb2037a5e9ffdfb5359d85a066f0d23aaf762996d97c15f7e42659395b7130945b62f6ed8c31996ecef0c5ce098c0530fed5a012540a3c4f5b1aa821a5c2a3e25c07d61d95de4d124d64cfeedbc8d1925a1d75a01e9e870005156786181e7c606ba058e29374a45f066cdf3f5b4acb607e6e5cc56c95931438f4f8973b7124cc176ed66b83d398b7c7507cfee916818a34c4627560f525a0\nTAG: 87f23cb98be68f9ce0a655e72b55443984e2db06b61f29cbca726534113013f257f403766ddd\nTAG_LEN: 32\n\n# DIGEST: 8ad5314b867b5272f447c02f6666e53ceb37d99aaf1ee5833e3827cd1725b5b7\nKEY: a058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d3a0063be26\nNONCE: e0636617781e8591a6c6a196868dee0c\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98233b5a7379\nAD: a561792c0f3116430e8b6e\nCT: 02c37207bdef46b95ac29c1f55c4068c5ac406490ed3843c9d507fc562a05bd2e8f6dfa6446b927ee18944d2e6e87521332e0e4d01ec2e1927e89c367e465579b0b7a9b37e32b57d0389e1d313ea25223f4b2d93fda46c87ad9c5fdc180c031df2c43cc53458322ba003c3502cc4eb19ac388e75f2eed8e2d071a678fb9d23a187644ac6e7e1ba36af68225950fda501a403bcb8d54619f4bff98e5b10d68dd74ee86944974d1142b87fec029d34a2e7c35c02b14b17c396f60a07f6a9676430a7745a90a223243bef3fe7ff6b555c40c93aee082f0285837a3abe8afe704b80862f59884e1fb71d3e7906dd33e951d93b6827c787d6c8666d0a56520f9d1bd78620ad0d806d03ce996e5b84e019877a320508ecb30088a09abe023a92b0956ea61020370f8df95c78ab2d136e18877892e7ed1da39a40550f561ba041b5c35bb82631dff76e8f5c4d3cdd2c8b3dd3d49874219ffdd6c9441190d71e2bb52af177a0961c120a68c81bdacc4766d7c0cef8bcaf2cae6906571d3bdc5c332a2bc81528a1529d0158af7e78fea2023f3b69134f54490a7a27cf1a6239e99fddd09d01f11f6d3e11a9a67d4233d9e4f6f26c3e065096276b59904006353edaf40efdf9bb77112c5952ad0bfc8cce42a2e4348b41530dfa12bb993fc19f40766f843d3428f60be569faeafead6a412187b3\nTAG: 2007b01b5ebc9c9b6aa3ca1db3b26e6e3df8db6b41f774220ec075286a7e894dbe\nTAG_LEN: 32\n\n", }; -static const size_t kLen11 = 650606; +static const size_t kLen12 = 650606; -static const char *kData11[] = { +static const char *kData12[] = { "# Generated by\n# go run make_legacy_aead_tests.go -cipher aes256 -mac sha384\n#\n# Note: aead_test's input format splits the ciphertext and tag positions of the\n# sealed input. But these legacy AEADs are MAC-then-encrypt and so the 'TAG' may\n# also include padding. We write the byte length of the MAC to 'TAG_LEN' and\n# include the unencrypted MAC in the 'DIGEST' tag above # each test case.\n# each test case.\n\n# Test with non-minimal padding.\n# DIGEST: 2e661c639db0b3d4e89d27c55e03361e12fab46ed2e8c795f131ead30d185257790e87bcaf3af7fa0399583386f12648\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965\nNONCE: aabe477e0cdd46be99371eb8da7dac99\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: f6f8de8547\nTAG: cadb667c8c823a2ff44444bdc80dc7de80e5faffb40880dcf4d20f706109ef1d8fb6bed697545eeb0060e7f680d30dd70e8ecd3135b7e01e895983de56fb0889a4ab0856040dba57e94dcb\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with bad padding values.\n# DIGEST: 2e661c639db0b3d4e89d27c55e03361e12fab46ed2e8c795f131ead30d185257790e87bcaf3af7fa0399583386f12648\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965\nNONCE: aabe477e0cdd46be99371eb8da7dac99\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: f6f8de8547\nTAG: cadb667c8c823a2ff44444bdc80dc7de80e5faffb40880dcf4d20f706109ef1d8fb6bed697545eeb0060e723a2dc7485b3546d50b6ba7fab863b28\nTAG_LEN: 48\nNO_SEAL: 01\nFAILS: 01\n\n# Test with no padding.\n# DIGEST: 43a413967bf0fc76201e7b4427191338c74b86300fbb5a193e01a1a4c743a36168ec2f52433b8ad4075186e5c7fed1c0\nKEY: f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371e\nNONCE: b8da7dac997deafd64b1fc65de39f4f0\nIN: 936a91d0b5d2c0267218cb7090c61713\nAD: 86d641b87797b684e0fb56\nCT: c90e0c2567341ea7e9d968dbde46ecb4\nTAG: 8b4323f68c2cb1882cff4dd9ed10f49aa406481275509633d33028a0b510a77e780d4297ab8ad09b60445146ce85b21e\nTAG_LEN: 48\nNO_SEAL: 01\nFAILS: 01\n\n# Test with maximal padding (0 mod 128).\n# DIGEST: e0da414882ab12a63e2a2d6a11652cbd8ed8db8c8c25d862c9b760e6692f58c6744e1613a741a49481e0bc357c59e343\nKEY: 905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c\nNONCE: 5f3aacefe61b184ad2463939ed518ce9\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be1\nAD: 12a72933c7b54ed4fad0be\nCT: 4c249d9e3db726a097f647c83121c90d779a31f5dd7c7945b8f3133b11dc94e8bc926a7c522cd78a1574fddd63a0afbc58bc956c8370719f321b511438e6449da18d28a15b5a602553551ab1e9a057983fd1ba0aad005716f10747406fb3726697d50ab5a1fc83e1ffc9a0579022af54530671a90ded71569b8fb4c62607419a\nTAG: ade1d9bcdc913506b8507f69e3914fc26b62110590a2d8963c6950c41958e688c96583aac18c5797083d2956597e5d242fcbe08fb795d92c5af302beb4c1dc00de1bf7953613f8534b7f919503151482e4320b55f46c043b60afde3d754d1957112386e61c0ca1bbda510a76b2ffcbb4785e26d385f2a34cf7204b03be69561ea321c389ffdbacdd40b5ef7be69c49ef547346b7d88be9734120c2be3db817e6f2680b6e92de05efb3d26bb95ef911a62892d858a533a410cda7b366e75943c3b6382a064b7639611b4f643e9b64af54dd93e942ce566984823c25bb8f813e4c18300ed5eb91a174bf7bf98e29941161a0f17c7e5ae30fd0bc8547bb525be66224740a587f16a3b5d0e9de5280e2676c247ed818907b5fd1553e611bbb22c419801857ae3f31b3586dfd01c8c8a0881a\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (1 mod 128).\n# DIGEST: 920d7224487e682bff3c7989152cfbfdf747453c05930f9b92c23ad65e4ab47c203765597116dbc5462e1385d15ffd37\nKEY: 5d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f\nNONCE: 3aacefe61b184ad2463939ed518ce97c\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112\nAD: a72933c7b54ed4fad0be90\nCT: a8b0f34da40f7b7f9669e5eee8148fbee9d53a83583043dabd4c11cb01fb74c044ed01878f8a28d49f8a45530f9d4fb7918bbef7eecfb86f1573605e68e87d0ba1b1bc554d863a11f8439d9623ae316285e9440fae8c50c92175ad7d83ac5c0e4cf9856f5857920e981799f0e25669e61a4487febcd0ae165f9117d9ec79725049\nTAG: f6293f1e91d53348c8f02c290e83d1d67a339cc65fe2ca90f2bab29af3f6bbb1767afd77031eac18a4821f7435f959053adead3c4a51f0947c0b41e8ee1c0f264d4dd4699800f3a3e0ea6f4e792cf4dd524c64ead7d9f3fef924b5c309b2528ca486c7435f759fd91163afa34cd558641b42e41a5dfb80f3e88ed6adea18dc196716036bcc126dc45792470fedc6062103e94cfea9ac827362118e8cfcbedf67db51ed403cb26046fa2f5c4953d4092a3a1d96a71eac5098ca06b9b89d1fb41853b4de7f0bb0259aea0f2df05a06ca3eb2ad08788abce7d38ae3d5278554036e21cf4819e8a3fddbf2f1919e9a0aa7d013c8c10012c91ea06c8dd81735fe55b5bce6c251a1feb66cd5d61219df7f799e57134b636de716726ca1c13786827f4d1e5979b168fd15b588bfba195e416f\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (2 mod 128).\n# DIGEST: 2f2f9bc024a04218f1863efcd195fb4576836915ee658a38d3da7db7ba2e535e452b309b381ca5105040017b0a4d0b12\nKEY: 41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3a\nNONCE: acefe61b184ad2463939ed518ce97c3f\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a7\nAD: 2933c7b54ed4fad0be905d\nCT: 77b4e444d271670653f04d99105b36886383a2853163a47615b431eb3347fcb7e013392376ca0c7bd2ba68e9b3e9e8513c783df10c1e71650c952c31821db41a509b7163f509f1445ec13f31090fcf566b69f6f1c5330ab588eea6f229025409c4b749edc4e22e1f4612a9dd9df978e685e30d6c27a8f50d7063c73be06ba9e85fc8\nTAG: a15c86236a1519eb952f87295688ae78628bcaf9984c97193aa897609ba6666c3d50c39f7b20d7cd92a672018369aa71196cf8bced2373fb06dc141ade6f867e0373871c684f6c876b9b49e31197edf57e3500d437ff7ccfafc23e4fc3581f07295310341e45fc0fa9efe351faba7360a6d981b123ac68310ba6759fedff004e92d4f6091284bc3bc9edc3e9585d1f5b5d18f1e6dcea6a0806f63c2bee3eb9fbb69960dc050b3b39d151737676ce121842a24c6c36a6897cbc161cd5217e520403677e1aad786505c8307fed2bb4e87dfe869f660d705049b19da3c0a0e49d51551a18f327cf6f457f57d860ffd11d007e32a2ed48628e6956675c2e3c1e50b158fe401864188c12e4c5c874ae435412f2a62ff6f3155474335a40b6f1afb88bfd9b8451e7891dde13b739d2d45d\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (3 mod 128).\n# DIGEST: 013f5656642276661f8938885e9023770a997cff7c994c2a607ccdaf86e638dcc740d890203c23c4fb3453f329c6937d\nKEY: 203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aac\nNONCE: efe61b184ad2463939ed518ce97c3fdd\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a729\nAD: 33c7b54ed4fad0be905d41\nCT: 1bc46fc0214a2958091da3c57d9f883f63bc865959e851aab36c328d9087f7f053b97466f2c08c32a9dbd9b6c1a443410ce6d78c63d3dd9c93ce5eb7d9026da4b9be6d5866f99abda5d82032d8db8f2d10ee35e1d045607fcec06a05529c95598f7a024553eefb4bf32662d4852d2aed23911b749f3d19fe7c116bb0863a798eb94504\nTAG: 289f9e94cd28fa6e519325ef0ea9c47d47a8b2afb8ec086dd243e4057d3e9a074e90d67e8ef62e832925a69d535ba2bda326676e8b0a59936f4cd829627098f6b7984afc2f45474c27a287ffc6e91ffacbfaef2ce9946a4bd9306af337e21d03a9d81d83c58caa75d57b1d4d62cec552f96a1dc365c44ebb549c1c670c7f882f6ac12088242553dfe137c55b0558a2de916f6ea80576515a76fa3bac1fd7a2d8d3c0dc0ccdf9e8b5f7f855c478edaa824e7d044336b870042cca2b25b5facd952e4fea10fb4969d5064e7fe3fd6a2fb9f4c3b237a3ba6c9bfbf1339ea20bb9941b8d92dc7f63d34e5da9d6ff4793b493c357573b94e7e09432dc99ddd812", "d740ce95b2dacecd28849f4d9c5d9dcba1f2c8ec5b4178467cc0efafda2ca32d9a086d67840d26ae7a629f2f5877a7\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (4 mod 128).\n# DIGEST: 0e1dc79d3d1bbc3220e65cb3383b22228b1d003c2d14de0f6d4551c8157aa1ca9f7f2b59919326a69f50241bb879b28d\nKEY: 3f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacef\nNONCE: e61b184ad2463939ed518ce97c3fdd29\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933\nAD: c7b54ed4fad0be905d4120\nCT: a6fda8e3bc0c1a2cc69ac359d338159b984f31ed1e1f8747bcd7ba473c3d0aa7f0f577d8115e74bc71e077ad5c320f3250a0fd21ff531e09f746f39377e4ad02f34843b5467ed61c839ca899e2b0cfc5e37c5889b934c4ddf9b862ee4f5c9bfa0db31dcfe6622e81a7caeb65a96d5059d6b58f9f440ef473be63192420a6f753ce79ef45\nTAG: ba30b6a295ac73d62fbe71cfd2b83a7c2907dde3a800e334e89477d3ecfd9286a91fc7011dcd6c5ce6d2442bce64735e805f82cf56c7acc0eb429c082651eacf09fd59fafc10899826eed4f68d9cb67ebc5ca558e64875c8bd25d3af9f357a9869ecf4523d7fa5e4846e949850c42a10252d71db0503b7022e524dac1d333ebffda7bd264e711c9d59eff54c1e584a0e1b1444b1b725d7d441cc9889f6e8b393f0d7ca3d000c268415b66047575389d15dd2c1eca0b4af385ea4f426e800a1e5ac539a4b81aa09855b6431c8a4b89f7842aea03162a9c7cb35b3396c6258297e7814f7ffcf8d8602dbd0e5fb0e9aaa0467c680cd9d9bf93b471362f766ebb0ccb9ff959e6095d9c15b3d8377737a28b78610058f26ab050630687de4495ad6f01189a1cd945011e21fbb9b30\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (5 mod 128).\n# DIGEST: c32ef0d9579c66bcc4f7e4027cabfa21d7aeb4ae68bcf88ef88ccf6aaae503fe3bf313bf7586b603b321e6b5ae9eec58\nKEY: 5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe6\nNONCE: 1b184ad2463939ed518ce97c3fdd293d\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7\nAD: b54ed4fad0be905d41203f\nCT: 1289661db1fef390402ba70abb2e4b9178007f650e06f4a96f0a80f346d1b525fe4d65fb78b4a358684c04aa21d3be6cae4c6edb70448b046733dbd27e669826e257fc3a129d0d07f6fc48031817d65420d9badf7358b3b7eef8803b8cccbf05047a517541f66e0a182134cc0f24ec77302ab350e7a1a52a4a06cc9b4f235f7fe02ff1bfbf\nTAG: 5444d4aa3eb69bccf9224c22d69460be9deb561392044a3aa8c279053def8f591211d409deb46b1a78f586fbecbbb32fe756162fe0cc33390b85da86a458bc856277d01d8b31895d0607fa34dc6c06ff49ab48a3b7e88e5a6f62df5efbe1fd1456497e41142c3e57b6dde69aa177cb76d5616930f99d2f25632cb301ac5c947a031ee2a9067ab9e81d61ae811d8be121251c7c6cfcf45ed7b0833bfa7c1120432bef0d904f12dfddbcfaf53f4611a0dfefe1bcf8a1b9d57a99d021c0b443af27b9c01180cbfaecee67b13848f8b9787953909dbb893f0e0393cf1a32366f6b3536ef4b17586c3714ed62e210f0a1de2cd77f03f1403305ae975eae1b325f4a0edf2021f1e1dd8698ceab70e91bf5255b0c5c99e8de8702a4874905129c0c0800d68da81184162c0deb152f\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (6 mod 128).\n# DIGEST: c7f000a1337dc472ed5cd98b7bc52340b5388ce0e48b81729c2743b98ce2b096b70da9284e31daddf8586c83ce603b8d\nKEY: ce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b\nNONCE: 184ad2463939ed518ce97c3fdd293d72\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b5\nAD: 4ed4fad0be905d41203f5d\nCT: 0f480ed31ef27cb2f1d317cde4541ab855c9f5ff474cbfae88156a9d44b557a1febac105a4b2f70c468431e316d3a72bd51e6044b0e619cb8aa255fb5802ff9f026593b0576c3bbafc0ce1c0721e9e2bdd6cbab1d298f5c48f78e92806eaab2dd7c5975e1adba426c720f20e1cf06615cf54d75abb82be5729797cefabf42047dd800d50a95b\nTAG: feb68cf72e130472bb57d43d251ae0173c414a8baaef07594034cb66959e0fc104c6b54a39bf540b87884b6216ecb9062017418c3a3c8c47987d63761399d0c7e3e907007b4acec1de5fca7026fbe86f2cdb508a99613ba0eb0a56074f15e9c4e85931ded12f5ae3631677713d3ef273e5013177ba4d1488c48d8aa4c97b5d64fde3c3d7405eae4e5fd588aa5fce1fda6ef97022eeb1ab228a29485f37bd9f62815c76f38ab970c86feab605780631930ea7acf4603e145b7486d78dd6d3b369cc64e795984b9f4b87ad63e62d7e548d245c092ea38c3b4e84f78f2d3961383d18d7f3675163286c3b7a8484c43dfdc64339b4a77457ade3fcdb647f9b5164b153a29a588ea3601db2879646c061b66df5a8537992fa7451744c43062d31016e3557f860868bcc540513\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (7 mod 128).\n# DIGEST: 20a22396a997be31e1bfc48c6599519cc1362918f955976a90e0c9303a61e95c80af563819337001c9da724f05c1cba3\nKEY: 998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b18\nNONCE: 4ad2463939ed518ce97c3fdd293d72af\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54e\nAD: d4fad0be905d41203f5dce\nCT: f48adc232363a0490e75ff78e4071f299eb70eccefe5e2b93a5e223e2521a266d9b5f9f2d6ee01c1aee3e4b85e71551c8d22535406146d9561eee1ab3b3ddf46cb55cbe4f38d309da8c71a508892f19a86940101e191d0b2fedda544b64f5baff9829554be885553500f09d707357c4cbbc7fe96ecd36a699645d5257f71ce7d0f1defe3a0db65\nTAG: dd2d4910cd800c9837702ff168bc6fcd623f65ba01cdc6424545e12e9936d87979a83200472ab1e18ce60e4e07b15c02526c69f5f64e71100d8663df8dda051794bb0210ad043913511e8a3a60cf4a7fa7b0b57b22769f178c35ef5a951ec7200d13c08cf98ea828ecb1a6259a005fe148845ca5ae5d40311e99d06fc3bc7a522ffd348a4ff91ca0606c643ccf270e6072ab5b954cfaa5e71f9e280b449e24963edfc75c37500294f78a7784167b08c5db3b1489922223508101a312fc1eb5f4f3d68d6f9fe0729a68277e3a4e830450f94178ed81f6a5ebb42818b5ed52ee8d4ee24f6a2ea66939db614bed0054638f8ec44fc7fc9a1653b05a4452b9858b76407c9af1ac2b4ce3b47f734b51c7a100f87f3a1a0c56684fd6609a73776fc2888abcde5a24cfc4b1fe\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (8 mod 128).\n# DIGEST: 7fcbcde0c60de1fe6892f76945272c267fca7502a1acd42dfa5315fb5da69395a29144ca273d54e9e7ccb2b01035f233\nKEY: 8f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184a\nNONCE: d2463939ed518ce97c3fdd293d72afc0\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4\nAD: fad0be905d41203f5dce99\nCT: 2d77b3924e76b153521ef2bf93aa42ca89142b0ca2f10bbf395df321f1f0d860914c6880901b58fde174a121ed8c18582dc166542167507a6b00047f15d522b54e0d1a25c5ed36ac9264fa3e1e8fd96de78c99d012699c7fd24d0aeba63f6bcf549e3e7435444d817830d0235f2b52d34a390851f66ffbd386eea48828b71576691944660053464d\nTAG: 35c8ada83304c12f5d3d0f7caacdbdbbe50b6375efbdb64238ae643b74ff6cc3c6315929657fd58364addacda253c0e42395cdf6a1a2a451c6caee947bdcd783625bfc461e49b81e7fa79fdc81b34feeb0a0eed211c67500a668f42fe9d5aee63dd42b7a42f1b76cbeb58cc38ce96ec406f472ce23728ea3c0eb3881f713aef73787f100d434de3da0cafc111ae3d8e84b748b23ebead7016662ba43610301c5b34a12ce0b144728052ce965c7abf58cd83cc112c6ee04ac8825cdcbc2443766f466c34bcd2c7694947f83f1d0371aef02aff0bf6b4504e9ae211f38f307a0d3a8c407f46eb10da8c53aac465e7a65e25c4dfe13148472d9dbee5c60c1ef4eae7ef3e6395f59a772c543e375b7d4287a9651c2d8e26d0def8127c3960159e9c413e43c53fec73e65\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (9 mod 128).\n# DIGEST: dd003e935b6429dbce52f9dac780a52562ccd7b621f3a3dbec443a371a6295dd76769ce42f6414c9b12b4ebae8019a18\nKEY: 8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aace", "fe61b184ad2\nNONCE: 463939ed518ce97c3fdd293d72afc09f\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fa\nAD: d0be905d41203f5dce998f\nCT: 61239a68ef268c69afa1f73aec32aceae19915a59fb977f948fce8352f16cd782fee60f9fdcf7b98357b7220a727081344285deb0a4f866e12a9c77791b5cf506fe35fe1d153e928138952c64a4091fe9d337d7b760960261476e338cb18c0c057ca756aafbf62f2c38e5a5faa398e5c5a043f33fc7ca61a633e78b22c007fb7758834807370805bab\nTAG: 9706658cb636004e496b5f20042ba5aad6e2becd4b76258b6a4dcb27887f1b98b93fd2c61771b7f50dea47eacfd1b89f6040d444208d37a29383ab985533f8d65b751a15448990badcd2ba2002704d5e041d651df074ec83091280583313a6ef9bb0cc8056570834aa52b06ba2b205a735295894d144dde4e95883b84599ed97ad99b01fff72244df316a47c7812950fc07ca0daac08925a85de568199c6a12386b75f9b737fc1abd3b3005a267c301976a4ea3bf0105e92799278a0344b82859ab0e5cb13f7965ec0f08093d0f1110d0687bc6d5ac6bc251557bef0b2b18bb4f5ff9c262992025bf31f46c2cff9cfe2196d8081469987446dd8ab9224f8ab6c8c0e626efd1ae005a8b581f4c1ae2c470899424cff4de54ce97c33a68cbeea9eb0882de1840db6\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (10 mod 128).\n# DIGEST: eec7cdbbaa8aafd58bc1ec2b3f5719c263a13d42fbab03b10264fc1178e64970e0d1969d503e8daf031ac4118d112400\nKEY: b2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad246\nNONCE: 3939ed518ce97c3fdd293d72afc09ffd\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0\nAD: be905d41203f5dce998f8f\nCT: c80e7d052c8c9b29df147282ec0041a85f51c31a7f9a74523a4a116509eeadaeadb7ae55951f6fc3f854b16f6318c2a5c6426b6431f9693fa9ca186f70ee9aacba7f5afe57dca613fc193c9d3d84f75c11a655a40c3e9cb75c071cac98eaca01c100f4cb787a652b9754edb40027833fd11865757c863351c5d69903a135559f5e62ccebd582349b1624\nTAG: a8d9569582799f87602c08ae3cd56b6a6ac16d7f220977c0dfbbf9ada2e3d6698e93b118e14f71d7828a3527f765f88313b74592435f153bb0cbee013a1592a8e3d60043342c18c327c2ee8f6c4afa76f53d7bd4d98417dacfe958c8d6f357aacc05b3165b9c9f16edfc72767f996fafd2ba47d736ec142d4be750ccc321932775c33b3f4443906c557d0fe9b96567647aad12509066bbf121560f33d123b7b3294238175cd842658c5295e2c892b6c401f13098fda08185b7838ad6b99451e34beb775afc127f8593fc1f70769a1d4cd94bb8a8f2daa58049b045f352b1af0dd1f31afca7c6241f37ab3c865c5cbefefc6f5e5615ba7eb3b6d460140d7c85958a693232d159204ac2c753ca1da3cce6d6b9872edf6863546111671c7cc39ac03dc2290ec157\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (11 mod 128).\n# DIGEST: c8cb0897b6e5a7501c7cf297420e9da5b63f56acff75016fa90051b0626c98ce3f6e1a315e161354b488c2a2ad0ba366\nKEY: eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad24639\nNONCE: 39ed518ce97c3fdd293d72afc09ffdd4\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be\nAD: 905d41203f5dce998f8fb2\nCT: 1545bc0aca055503fba91292148a0707f2f6e32c9fa51a432bfd630d7c7d82992e2c5364dddfbb313df2e82b36a05aeb1565607a44217d3a70b425d045e6eba799ff1f2b081108f9895cac6cc1c390b9bbbef4a946ffa535e96267b7f87bd0bca11c519aec7a80d0586ae5d0475ee0ca537e74cdfdb4d9f96a3ff8d23b24cc1aabf83e715896ce7d120d93\nTAG: 20357e2b0ea27f5d118a7a69e21f293f2d12a5615ca40050fdbde6877a04779713ed32e7dcd3080eefb3b78206a7a779f38682a9662af00974183683150bdfbbc72fc3305f1f96d67f8dcea9bffccf1a3629bdb7df9b2af9c355b55ecf05a68d7d4d1e75bd6065786153bf5b83cab2736be6fa5c5599ec7dd873be55bbe752c6565ef5db268f2b9f670c076ced82180e1d7f00602027a7f81a1ffb7a4efe75cffcf06563e5db914a36cba87e5979c3e4da6add4e87529143817cdc3f28cb5b7bac443203c2aa0c575bb328c7471bc5f5a734a77f12f13a605d84640a2fd2bb7ef89988d7a124f631a52f6f6a014c244e425607c45b0e74ff462701e646ced351af0aeef71e69967af384ba12468203b905da111fd39660e09c282d59db4808d015090912cb\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (12 mod 128).\n# DIGEST: 95f818eb95b73edf2473f9c8ba94a6db66c085bf46bd9fa44a70705148e60e30688f65818126a70dfd4f3c26d2a20a5e\nKEY: ad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939\nNONCE: ed518ce97c3fdd293d72afc09ffdd4f4\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be90\nAD: 5d41203f5dce998f8fb2ea\nCT: f4cbe7ed67750574ab0716367351b71575476b76987a082de8c92e79861d945779aff8e89905bf3c9ba0bad99b8710fdba8298510063b646b4e1dda6ab11890e6cb30350d110c46f954f3bde6738828d339c6380b5008ae314ff09ba49dfaffce583400765a52af8970ca0e542b963219c0cf6c0d627b68df25ae47e1d81df1d26d670410d41a87b9a8e6790\nTAG: 0c9a3e5bbeb14b0645b8990d824180606057e1953ee69b74091ff3da651879021d1b830040a7efc05623d7b0ff1560819455be5cc6f0a097578e55c8354b298eeedf2a3f670552198feb2ad5d742435b2ed6f76e9fffc69fecf596c33cbdbf8b4294d4a66be7d2e47de8f43f2861703fd51810bdf1cd2b3d7d324c9ff219dc85c1b70fe41403838f1555556017efb4bd0b090ad841e2b0cdb60c9ca6e7420630ca033fe7ddfb57a1213fcc7a3bb41918a8b60e1ece0190acf3227dad7735fff14715f2756a6ec0ab6fb8db6a6a8cc5bfffa0d80b13f0a7777b86186d7be845baaa7306089affec15d5ee42011e84cf441d93cd20cafd0f23a0c0b1b675f0757c5d4f72ddb1df01c7644bbb53bc5041db63bab067de5b25272a52d1ce0f472504b650b26f\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (13 mod 128).\n# DIGEST: d958cc86261d3367dfacb874a49bb2fc87e01e834279fee67a8f469a6d400520acdc17803a7bc8c1cdaa72e7fd8e8c6e\nKEY: 409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed\nNONCE: 518ce97c3fdd293d72afc09ffdd4f419\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d\nAD: 41203f5dce998f8fb2eaad\nCT: fb03d97f254e965546ab119a07be5ef4bf5027ef03f07c703c0be652bdf96957c36a0b5f3b283a8e23b9cca14d0df06cb6adbefe252360da3cdaa6acba162468ca3dae01f881bf47e962e9ed6bf23cbc921e067e6b0f3248fae15b43018e3584d1a81a6d9048b33774167e387e3fdc32a9814684c8bcd6dc06439a5ab8076eaf6bf57deb446f9aecdaac75ab76\nTAG: 4bc5dae86f239c99790cf3d913f0cb2edbe9fcac0a992c1c58f3407cc2de3e34728d5a0d10dfe595bc662ff3acc56498e293904e5ef14bf587ef1ca49fab3a577ab442799ef67ed986a627308b8b0670d9ec2a0f395fa2d0811f61b83a189daa953b9972de4df10d124c9044cbf3c13cad0a349825c809a9e6bb4170aea4680ec1398144b2e62c2b88d2f80c22a791d03bacf300de54279a9df6bf2daa9f819b1af43c57e7a0e010fd28198ba3ba3bdaa17f66f7d02a8c91fdce893abf56b7bdf32025f8642149fca74ac94632f7beae30858ccedcff15bbf2bff19da8789816f8b409918d47e85065f02a61aceef6bc7d52accbec115813fa3535806bd85237037c3988a37bbb0e713519091ec3634599c4ce19dfbcd7f87a7b2cb764c000e1b2d5f8\nTAG_LEN: 48\nNO_SEAL: 01\n\n# Test with maximal padding (14 mod 128).\n# DIGEST: d5c9dc28df5cec36b17c2cb928eba4ccd15c1a8e65f9576137ba53673a0e286a4016c4953cf1cd5b05b3e53989a7a1c1\nKEY: 9ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed51\nNONCE: 8ce97c3fdd293d72afc09ffdd4f41963\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41\nAD: 203f5dce998f8fb2eaad40", @@ -620,16 +700,16 @@ static const char *kData11[] = { "5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c2\nAD: 7f4372480974454879c41d\nCT: 2b71c8e3167dc7f9af0b0262a21fb3a0c96e4d718746e696727ea6ad66f7025da2068763234fc0145f4bfd1fd72823a561765b7deb09d94e450a7900d9bbc043fc357b4b0b7a3c58c9296ddf24cdb1e512f21c7a985149ecd8ced6c37b8e978478e375493c6d4d8a6370200364bd475bf3ea057c027f0fdc943eb995437420672ac97605c32646aef8a041b24c7161c8d9442630e4969f03ff0496f76df605d074de57c2fcd0148b3775e17f33a732b6b98ddc859aeffee95be88d82394e1f1afefdc8495c24dabf73b8c6c6cbcac255bc72269778bade183be2fba30b7689ed9517fa5defaf515826ee20144f870efff3d78d34c66c61a87f1b0d9376fc0da7bd0cfdcb7393d36d1c4bfa21840cd06aa097655ae5aa2902c6ffed0cb1065d24664e5cc28188bb72f0a056a6ab451e6a6eb030533a9111c3744a4845807c7282e85a24daa3a06943e8bf0471328025995fa15ec0164810405bee5175211bce9fe27d321e4536dd3d6e15469ff370d1c400f29bae50441c085ce78f91fcab367c15a0b9e3b01f741b067709e684d607154875f34f4bdf03fb29ead4687310349b1501b3afeea224bbb95a26c25622e40e244214af2bbf3907905ecd88f46c89a5061f27b19adbc6c788fbc9ccaf9fa6ffb101c4dc2c06efb3cab8f0\nTAG: 04126d789d9b5d62a77353e22bdd46652a8619c7b3001789a7ef746fe37afaf8a509c1662da515b4a8c4e8292e1e07e977ded352f9\nTAG_LEN: 48\n\n# DIGEST: 9e5fa1cdd02e7db7705cfe6107db39192c778c1ec2f6c58116e4159394858791effea9245bf0ddb0c6982cf91df5d9b2\nKEY: 3b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d3a0063be26e0\nNONCE: 636617781e8591a6c6a196868dee0c1c\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f43724809\nAD: 74454879c41de9ac9f9823\nCT: f29d253023b7c21c9ba097e4110101081b3d6af8d9d3b785c4c3a0e47a152cf7eecb33b5717e7f0a7d78c447aab987a70bc9c972f6b7cb4f43e8ca5001870cd306df554c70b3c327215634ad992c6d5b33f759a22123b4e376132656f9913b3b87bcac24fad0f123dfbf546ee71292c282c1c4bb21b6f4d6a56dda5d8968da822c2f6e45e7cb9284bb6f84eb64fa50d418104e966f488828cbd6f312f05c188b68b8aa824d7df75b4a2edfff1d67c0c6fe708dcae42ce7f1e11164e5ada8babfdb81f3ec54a8735ecac4afa54360b2fe766c7a7a1a4e037d77e5d4e5017399282ed1fcb8cb1b234f9565261449b32edbdbf01208cf573512cbd8155af6e00c4ffa98e2f4dd3acbecc132f92226db83fdc28f6532b143a8c25625b759a50b27aeef92bf840b77aba3103aef102b4750c752ca422ff6654ede8341306fb7a1d4251e753bf19d26a8637287634c2ca6baca7d3fe0edf5fc913808976006391f9f16657958374e2e0715b28e1bb1446845674c88c24f369969de33fad62118e24be11f8db058b27aa15bdde4e3ff803ba4a264eada9d69f3157551b4f2a728f223dd986708c9f9763fc2d02101a40a0648b1c211f48c0d720645fd18beb6137b2a7cd0ff20a445e99d66a872c3714e52a553d2e66ae3033778ed2837b3dc540b50b7\nTAG: 0e2608bc3483bf8e9db8a2abbe288655e130f0459c4dfde80d3ca84b598695e2e678735157258dc238b6457f5e464473352e019cb4bac880e72332581d5aca03\nTAG_LEN: 48\n\n# DIGEST: 703473db66fec69eb1310c49e13b6a10777d97c5239fdd4a32449f2b5c32bdf1d08dddeaedc0251cc0bfb87da2030de6\nKEY: 61792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d3a0063be26e0636617781e\nNONCE: 8591a6c6a196868dee0c1c0781065055\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c4\nAD: 1de9ac9f98233b5a7379a5\nCT: 74683b4d9443a715d1783e37f9f33d37c8c7d47d628204abaa590cf604ff88070045f76f8027875c1ad708b601200fc8f181757f8270a2d146b22a388c015de42b2b271d754ef89b6e4c3ab1244ad81d9978bb9f43bb0fd99ed601ea0c14ed1127bda4b0960c500663bc4f34ee9d1ff105f857934fb04793a22208a51f13905410538ee56df3111e6a55776582a6c927b95c2b6e3c1a91355fbba474046a26a6480138be5dcee13215edb98ee28b75ce567ccf5de3d8767078d1f9f755cbd0d19911cfa6b2a6fa97636c9984f2e4b86276a860e49ed2a1ce47fa5572d80b384c37c091698778a52c6e1c87ac73f26443803ba2945f8ebf35f3ab9f2f0136869f6acae5eea4ebacc674679a2c58858452ae86e064242183cff9306a3874925af99fbc4b919cd5f949c692a83786d9d4063a10598acfe0fedc863330b45a4a2d9eaee3a2ed8fdcc848feb6008f14f88e6e110c9f2491a83f6e216ac034dc1319d63739df19b5607001195ed45feb35dbb47ea38cba7a5051db17119631a40cc99f7f956e4b9adf05ff111faad50e5ca78167ba37dda6019e3786b042aa57d328f639e12b782743d0f94a45a4ecabb72fce616c416ee77d8031542a4e59638696c71640e09717fe9ee248097c27c86fee64806624d9540990410dac0cbd06330568bbcc303d10\nTAG: 70a48c36b93a775550a2cbb4789c75916cdf2df8a1ad1095e327f46e91a05b4ca26e01fe51a51af3a5d73f2b653e76eef70a3ca290b1482f3279c7\nTAG_LEN: 48\n\n# DIGEST: e96830967214251621bbf449099c3333ce8b37d4417d13943955d1d56ce43fab845de9e38405f6cc4fba07b8f238f80c\nKEY: 16430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d3a0063be26e0636617781e8591a6c6a1\nNONCE: 96868dee0c1c07810650555861d449dd\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98\nAD: 233b5a7379a561792c0f31\nCT: 57878ab87bdc04e3c96214d485d14caa3f65c7d0b7ce5a03b7ab53ee501e21b91d227423dcb5a8f4629c01561bb17ba56d433ae648f2886ec087b", "9f6a2beff3a079ee25809a12534bfb65e94e0c2f7ff74497db708219840266102371609564e7dbc476bcd1d00866bef78a7f96843478760c2ae7338f789e73a2bb8b1a3e604b6c38cc0134bcfda72da30c5de221390099396709ced02a0312e6f86d29852878a6cb1fcf966d62b72d2099bd22007dcb1d42a8903bd70b5ca5610a8a4112837474963d1e6ce105b8c58e548e553b60ab5e1bbb9f1df31f4518b40bc6d69078a62013bbd78c9786881c4c53a75a710787d15a9ff0a4f0bd355cabc7df781702fbe124232331e0d0260f9810190245e346ab086ee986c7c9c0c84a1d531fa6900aaefd0a8b9b9c0e0372751f6d23cfe9f98294fa114da2f52409bd6ed73069f0dabbc7571ec10161cf07f1fa60c2901a05fefb88632e3e88b62a799b80ad6ed506c3442f064712dbebe893ff034620c0fce4a2d89b3a101c6652cdd46cf98073f7de3e1c3efa8211a9ec8ef7273ed0e1333eda03b8a3c57381175dc7495ca799b419f72169534dc8995fb0f63d396f5c5bbfd86f9e1822fe8590b24ccb11f7b66ff5c515bc7e9654238dfdaa70bdd6b7236954914dd332886ef2840c5aaace8c39968ad277303d78cbe2f\nTAG: 7e02b3d7d2f5af4901d32845aa5d64289a40ca03a2235c8801c7d4adb18a8c3a4e84af83c2842e973483d5cff6a1a6050aff512cc7b9\nTAG_LEN: 48\n\n# DIGEST: 5e69338cb47e83dc76efcd3d20ebb4a9c9e8288b709c554a39f344dfdc691b58fe2234ec740167f6976d1e9f2775cca6\nKEY: a058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813e8d454817c212d3a0063be26e0636617781e8591a6c6a196868dee0c\nNONCE: 1c07810650555861d449dd43726a4e03\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98233b5a7379\nAD: a561792c0f3116430e8b6e\nCT: 7082642b0cc17e3ef8cadb87d81d3e973dd92e18a45e72833b34e6c4a2d24a77a1048b96e6c19a82732eb355438d577ef8e33ac646d374d99ad15c633bfccbea5e31ca27aff9e1e9b335708bbd62e3ceb7db34178a9111fc2a395957fde085b7c17645d7a473326919e7c24206a332ed8db0ac372aba510c72f1e3d480197b6811fe9bdaaad328bea365a8e732911be04a7e4bf8adb9f7d2d2e2b436287b5a5eee1dc11f43b7e12d83f83c1d928d1ace7c625abdb704745c4e2d5575aa4f0eface8bddb22c9db6aa9a32f5fe879b8210ee78c09c0be83e039ca7d64bef8dadf89bb966966e0306fc138a57d6a3f208e987c643d80b2bdb8a71eaf8b2e8ca33eadd49e422c99dafe511fbdcbfaa39aa6170d57d1107f9ccc80caee2bf0b3d3928628694e3d42b49d69c02c13685a2175493771fcf93704b95b621b491f4cd3231c1736a5abcc41d0b20722c21b23c4631a0e13134c36be19bd8a8ddcac189518facf810688cf69b28d9548621357ad635b40c253a1af855b896395db2e5ffa2f1388b3860dd5997ab42e329c6beb926db93899a7daec7b408a86f848d7db34374fcfac9fe8a875622947fa067954b47946dff7d042bbde8e64fe5e3bf894bd632a80c63581c26935abf19a944989568511983c6e3839a0f4f5c521671da973f756da87e146a3db56314254d95172f19\nTAG: 640c5cc64d87084321fc1707667d2c39e6186e9690aa90bc2ba26007fbac8878ac9f769b29375119c5d6cac500eba86cab\nTAG_LEN: 48\n\n", }; -static const size_t kLen12 = 23568; +static const size_t kLen13 = 23568; -static const char *kData12[] = { +static const char *kData13[] = { "KEY: a5060fecb0a738d8ff6dd50009a757c6e58db73228534d03f32c26baa1c209f402c3e03a6947c1d9421d63ce43f6df26d30ce783f5ed0d6b88edd389d9f92d8d\nNONCE: b52227e92203630a79ec7f5c\nIN: \nAD: \nCT: \nTAG: e61a28f5df7061b4236834d2034d2b62cb63c660b7de696c26b345e66b34d222\n\nKEY: d676047046bd5be9263ae39caaa0f688abb1bc67c083658894da6aeeff80b6d58ffc7ca1a1c88f49e629bf5544b2cc7669367202b158fce83fc4a4826dd90a7c\nNONCE: eabef87a00fd99ebb6ed6d25\nIN: \nAD: 83\nCT: \nTAG: 473cf728899cd5fdd54f18d6f934c3901f7ca118fc5ab2cbb837feefa7852a67\n\nKEY: 5eaef3b8e068fbb652bd37df4dfad6490095642cd49761a35476dffc2b5b5f75236d0351d96a9028660788893323a777ea8a2ac88bb5e500b334af02b1c2a648\nNONCE: 34d049342b9db5ffa039eac0\nIN: \nAD: 7578949699d44dec9188a7f7e14b0a23637cddb9107dbb1f8e2a968aad0443356d7eeceff4316ba7b2e8fe\nCT: \nTAG: 4d2612c21357638bada9290d2a272f10fb5f070337bf87bae396a1e7253633ae\n\nKEY: eb7b3d7eeb5f26010915a36837dc83da2bad07eba714566584bf1ce62fa9b61210b0ead7182bc28c8f0427699bf04786583fa32f3c3a8a6582cdc254930043bc\nNONCE: 3bee5ebcdfc72f4ab0023211\nIN: \nAD: efecb57e79a326c6b2ce0ae74d7656992a005fbb8da5a55b9595fc5348a5489ee2e69541ec0e8a727a560625\nCT: \nTAG: f457db1e274adabe5fc898fb1eb7c4a5a8e9a2b66f964d0958aa058c1f9e15ba\n\nKEY: 1c1abffa8a2667a8c1ab347860528162d316d58e3966050dc140fd360e6ff7c557520a8982aae97c5db5495d8951eaa485e1cac4cd8f448a13d071d759885474\nNONCE: 4fdce4e59bfdf5d9b57c78e9\nIN: \nAD: 55125cefc919379b3b4b2a24ee1794f44ac66fd99b8b68f98d4abd45ba50a5b76e5375d08abe3b8b8d3c576bc8\nCT: \nTAG: c021d2c73737e54ac6e7f61f9bb44818e5bdbf8d81d43842fd25a535790fafba\n\nKEY: 366cf53bc185473acf62610b74231e53aace84e9c5d6fbf71fc24db4f42956065d3eec01ecc72a6c89266565ff530075f4532c860e3192e866b41aee98c5c42a\nNONCE: 9ff54bd7b10f4fdfd8db76c7\nIN: \nAD: 853ef59ae873bf0bfe1465e9dd8c2cddfcf123d213ba4f599d984e4ea69d3c85a23508ec7941ca740a9157ca2a788e9b519291240b307d6c5a8c6860a96b4be698659d19e31ab0ac7ae6ba31dcd609c1db67ad580fe4422e42d368c3e93a56f2a087b0d587188462310c2ebe58ecfcf7178412223808eeb2eda76446168730fe\nCT: \nTAG: 12d869dc4bd4ac4ce9ed643cccda9e11a1ade65c76f7c1535fa4ec2bcc5eb4c3\n\nKEY: 147b41369bed390f0a9561586fd975474e3b3bbf7f7ebb7a35e5cc43b516c044dce93e154ac790a109709ac5299bb17b709a913d33fd57ebfef2b48ed66393b3\nNONCE: 85b81732d2863b41d2551763\nIN: 73\nAD: \nCT: bc\nTAG: 47fd81f6eed8d3c66afe06d788ffe40717847785f4b4c617d75a11171690a60c\n\nKEY: 9bf35c1194659c1da634eab6707c55b853c8f61d087187162e926adbae02f8bd4d15bae5b05865d0e2236d64715fc39f32e4e3679a0309396c37eab13d1c637b\nNONCE: 8da14a98ee741a5fce0de732\nIN: 10\nAD: 8e\nCT: 17\nTAG: b76af41002a946af4947f98f42a873b7da0871f482990a70bda8f005274ca179\n\nKEY: 0befac10caec674c9f23676d121f065dbcc8c91852dd5eb4e80c41076995a2138077592fec665954d21fd6787234d32d3d54bf9c220cf2bf018b374bde29926e\nNONCE: a96bfb49f3a136840a0e32ff\nIN: 59\nAD: 236adab55e1bb8a8db384c01bb2afd30ff35da71f955fb217b8305a45ee075e7f8d863d4c0e5dbe36e297c\nCT: ac\nTAG: 7bb634357e0835b02a0642352a834ff6598c2ded1af8e8ab60b9ef0641fe863d\n\nKEY: acc672aecf6f10119ee77070abbc2b4fade7e910efd1f93a5716161f88606469a49df05b40332b390d3ac289abfdf6bf7c37c033b1671082922d939139de0d42\nNONCE: af0f57b55f1a73794b3ce5cc\nIN: ee\nAD: f385a50ef027e532635878a4df0deb23369774be47c42f17cbd44925b668f628338ea5f8256c5ad8219c13cf\nCT: 71\nTAG: 13a5296075ef23216c2f2e83b940d24e8e1e6a01967af96599360f11499ac0a6\n\nKEY: 6195ef5ce3ee01188c48b04ce7a28b3ddd04b78711a6d1233121fc8ec3db3a7a0e496d1b6a416675b1e666b9a3df167efb8ade29e4f22fc77111f32ba8bd1ec2\nNONCE: 092070b2f8b65fcfe646f6bc\nIN: 26\nAD: 98526dba4437d88f657c0b7ce2a2be44ef4951711a40747a7d14b195e4c0eae97247256bba7dbd93d6a8f738c1\nCT: 83\nTAG: b6aad3f91a26a38245031d6a7eb97be0d386939d4536b2a27c90a2ddb891de73\n\nKEY: 40335487f9958dfc00b76ff06dfec162ae5c6be4e26918bd12e3f21760cb0bd364521a11f5bfae11dee989627525ab5295ee404bce476c280d13d238dea1bd40\nNONCE: ecf77c7c827a34efd8cdf79d\nIN: 34\nAD: f6e661254bf235c7d5b8ee330cb754087480dec5fe4c31dee65d1ab4479642101404bb563522937fb2e41d3aa8a4d269a222e6e0bcfd07ec4b29c1185f99fff7cb5bd2ca8c5b38742270e586c8db19138b446833f2ee07a11dae5b6a1a4c28657f3380e84bffe1bafeccad57d9cfea3da7f728119ec5bb18b79e002954f4379c\nCT: 5c\nTAG: f3420d4cecae2c1ad79d977abbe408045bd87525c0da2b93e0af3e6c53ba7d74\n\nKEY: bf32ef44c7ca9851f397e70df736d7e0e6243cfd875ebb81d76ad7612dbcfd084cab6b0d67c6a6e8b567c93fd0c3abb78ae121fdb3051a62ccfa045692d3453c\nNONCE: 46e0cc64d6e431c1efc2bd2d\nIN: 959348a8ad6912d7d6c8eae52f19b1\nAD: \nCT: 55e8cb6fd958f18b3c19451c5c79a7\nTAG: af09194071cb0ed4488d27e79700f938ce77386e5d772f9853b17b719f2b1ebc\n\nKEY: a6b5b8b051edf5cea0353ead88ea887fab048ef32f8303275e93d8f926da0d4b0e34b9447cf44fa70c24c9ab964380065398336bbb20be167fc6cd5e591ef50e\nNONCE: 371363612c4675a2e59ebd39\nIN: 443d16621b0cf9a12552216f9558ca\nAD: 32\nCT: b7f432eeda8e4b8a25f0445f17ca7c\nTAG: 649934922826febab4d59dfb52a7558e6d30d56e273602b98f3c55fd8e24f4da\n\nKEY: 075b75434269a3fcc57922ee8cc55b5bbe1b90516a3b71838ade73d41ed1d1f33ae1e0e86f88f6ed7e091cae3ccb05144b3ef239831554d6e79ff97c4d8f150e\nNONCE: 754d5c4ccbfb291133859de3\nIN: 62a151add825077c59459fbf82b708\nAD: c8db27487de71124a95eb6359270a8363908159200333b46ee74e2709b308878779686bd43c24e9ecabfc3\nCT: 2ffb9a9f65c9fe3daad13768ab56bf\nTAG: 4430a90fed7d4b5b2adf5a60d6854956be4feef497781ac7d864a04259e99516\n\nKEY: e787fdeca1095f2f2760a1c5e0f302e07d6b08de39ce31fe6a0db2f76e4626eb0968768ae04d37082c114573c307699707630b8c7ceef60abe3b7831d2adcd6e\nNONCE: 9dc9bcfe8b4e2ea059e349bb\nIN: 3ad57105144e544f95b82d485f80bb\nAD: 96bce5dcaf4a90f6638a7e30cfd840a1e8dbc60cb70ab9592803f8799f909cafe71a83c2d884e1e289cc61e7\nCT: e504109cdbf57b0e8a87080379e00d\nTAG: 1798a64b5261761ecd88f36eaf7f86ed3db62100aed20dc6e337bc93c459487e\n\nKEY: b43ab650bdd201cf05e0436afe89ac54867383f04c5ed2faea5db8e6784c720d905234f1f5443c550ca14edd8d697fa2d9e288aa58c9a337b30e6d41cfa56545\nNONCE: 4e3dd3efe527902b9de45a5f\nIN: e386663e249b241fb8249cfec33ac2\nAD: 3cf7a396e1bd034ea77a54ffca789f206f94263d90d98bf3e69cb42205fc5c95cfbd0481b0ec490ea447299159\nCT: 94aacf00092723e778d25ba78e9d27\nTAG: bd5fcf90b9532e7abfa858aed90d5170f08edcdd28ff2c673e0ab45b8c0a0f39\n\nKEY: b22a7c5bb38715025cd59cc0feed9ad8e51101200000168052b294fb1ead545a517dee636a7acd22b8283afb33d30adbe02c1c8557715eea7147f3d98a97cbb9\nNONCE: 3b4244c9ad9fedd3f10fdf7a\nIN: da79e1ed131856cec3250fde7bda4b\nAD: 4b77472ade3f06500169405b86a793d63cfa58f57bde0dd706f369b391142c2fa8a3e6345ccf0a9c29b2182f578e22f55c576f155a05be5e81997fbe06410034ecddd871e5ed94b5eeffc6dbd90a8e66449da01f8ef47d28a4a4bd253ffc427f868867c73b5c709b01732bd8035b1a23ff0a903def1eb136fc90d8b3c8279769\nCT: 5d8ad7abc047bfdf9d9cd0b0aaa53e\nTAG: 41d050d518d0e51ce16bc2920aa6c76eb8eabd4ed76373c59618c6354885f47a\n\nKEY: 04b3fd8126d65f851f47b3dea22cd6e32506f21effaa3e29820ac7825e01b51c5a2816f0298154f2d8addefa2fdc34c0635d4d6b80ad23eb320c4d4f2aa1de1c\nNONCE: fae1b1da40471dbdcec64d4e\nIN: 509f116ef7435b0640cf141d5b958aaf\nAD: \nCT: ecf553eba80e6dd1fae2eab24d772a89\nTAG: 11473566e80cff5d7421f65949c34301f34de378e91ad50928cf2caeadc466d4\n\nKEY: 413d154dadc7d8869e9e0f24b3320019a04b7a37620dd9e7aa40b5c08d70dea03c12ccf7faad7009e972680e81544b647650c6ff033f56e5bcdac9a35bd7f804\nNONCE: 6a4404adae3f4a7bd2bef95c\nIN: 3539fe02b75981fad4f8762772b3c11f\nAD: eb\nCT: 3f8a96905609a4ef1a95fdb87337503d\nTAG: 8ee076fd624d90e1f6336a92165e80408ca6f0e165b201547d351177c95e8d51\n\nKEY: ddc10df673e720c00f28fdfb69f1b8fba99696f23b6f29704a0114444cc0c8a6c8606e8d37fa95aabfd65b29c655678fcec50966c8758a3fb15332a1854a8eac\nNONCE: 06331613842b4af86c13f8a2\nIN: 55d74bcfc3d1cfc716c6e6b7153c6369\nAD: acc264344ae79959f9dd5130664273ba6f345c3fc7bc33c6c1ce33312bfbd5f181a3c7a24f15e7acf72ccf\nCT: 20650d9e846eb42854692d438b21d5e8\nTAG: 973857523e7ff600cf9bcfcc98403b34ab38d939a6d76716beac42678ca5f5bd\n\nKEY: be0c884db54cf761fc24ff3dd572362910dedacece5e1d93a916df277f923f78e7dcd908e60beb0043503c5b4877a9d962a7de37cacc7387a7553949b52894ec\nNONCE: 3f027a93e2716668c7634195\nIN: 1ba8f3a87ac6738167aac1491b602ddd\nAD: d06dd1b9360a68afa3de5d239b6d91d212c5c555567545a4f133bf5a3b0f26addb9379e1cc1cd690cd427c57\nCT: 3596cc50ae72db932dd83bbc8661641d\nTAG: 44a1834b1587d0f88e34137dcebbca059dfb8f65ddab18f338a8a30152167be0\n\nKEY: 2ee848726730c64332877a4f88ad7fb241a73b71fbee8eeb4d9d6485855ea32b487e03968e1a7b9e8ac8ab7fbd84257efbce0aa207aeefa67302d5847e0d9c05\nNONCE: 526b0a79b6359d133ad51011\nIN: a0c0477e8a9ebfd275b674ed33230d42\nAD: ded2f0f3f28aea28b17aa58d4b906c6a9b3078f97ffe95b7e161b0c3dbf", "66879bea7603a046da4945c802ac8b3\nCT: b1691c8275f12f7d9af85e71dde9dd5d\nTAG: 65a5742dcbc49295c4805387e0a15f986ae47e51add9389dfabb6468a6e83013\n\nKEY: f4a7c0e29ff510c034778e47bb30a468a92140a707936d381b1554d421af107c578e74c53ea08c7f7d93cf67612061359ae458408a9c79250f776ca4192016c0\nNONCE: 025bc10dc99346c4d0766a7d\nIN: d449a2e812429beb5c466d344f5b5eec\nAD: 304dbf9a59bfd33b777d8dec9dddce4c365e72aed851210eb964c1da18119bd13248266a67408e88ac2eadfc54def0fb57f23743d376b11293377565d253d2bffe0309f2946cb78d4e9536dde4691fe1eef9ce2dc916a773d06b42fe2b014e7974d4aeffce25a0902c9b44265e5d6d26809b5f24875e80cc13f1f8872b04a237\nCT: f366e7b66683f52586e1c363c15b7fb1\nTAG: e0e1bb733471f150ddce1b83f3fc2d88589d286ca052574b7f0735bb598362d2\n\nKEY: eb78ea626b219e12937057155884547cb7578718f569dc8f2b370c0fea80e7f0d0f5cb590f0b7341d20c775bcd6a3c818e23b6cea949cf99eb94a23a81cd2249\nNONCE: 75a10f16d429b809cf12b9ef\nIN: 6b0203316e8108ff01b12df91ba6644382\nAD: \nCT: 7ee07054f76471115be159259340c24391\nTAG: ab970669d1603767d588a93cf215673ad307244f9179f46fca56e97f64a5fbac\n\nKEY: 3221167926be262b7bd0591f56be6bf030365d45ab84a93a94ea41a5e07735b17245ad43787e8791e7ceaa0472b562ed17e3b609c66c868c9b08304c8bb328b1\nNONCE: a94d8417d2bb0323bcfd354d\nIN: cec81bac7b85c441b6261163d67921eb49\nAD: dd\nCT: ddd8860fa9e2e8087db30c9da1ec9f9487\nTAG: 26a3b9bc4d4cd802cc22e7647a19fc2a5092293c9f5b1c84bdab7245a6d8f4ab\n\nKEY: 4b16e2d62294f76cd2a6c8e0928279d9de40f0b169ef9465738cbfa064c520128ee89cf657da27e4e532d8c4709d992970bfc9daab2f31b3a67e53200d3d6710\nNONCE: e746d498b9031007332447f7\nIN: 16841e3fc1f53990d33f7ba525dab121a0\nAD: a785917bc9f3aaadfd170abe83bb30c0c5d595fc8b491d983131aeab1a7b8d8771f1a963c251976152dd63\nCT: 6bcf5eac15ef74cb8a706856f62eb5e8c7\nTAG: 9dc84b06e8ec8921be4bc7762e8cebb61a95ac5660022520f9438e8f77b45796\n\nKEY: ff2f5944111226df1d9a300533d3e871694fe15a418b2090265cd8c0111b249dfb7ee86bd9228f7ea5d89d8afcf10bf69942ee4c29bfa8409b63c00c2213629e\nNONCE: 477060f0c61555873bbeb225\nIN: f091891c43e2374c2755a88a11b04beb4a\nAD: f1323fd1ac4de9719dc5966dae45dd7b8ddbee3f8da4f4f4d5f25d06bdb8ebf57328dde76d0bdb9bdc5f6b12\nCT: e0d96f6f3ed0493a289d4c3b79238b9ed6\nTAG: 71276c05b52bab0063108dbf4e8ff57cf3e15079055a309d725f14bb86671ce1\n\nKEY: 1ce841bcf2ad8accc458a2d94774c3aa53a99e7dbec587376212101303ca2b42272a23fe28514be190b82e503e7772a3713800f4360fdb767e85ea5e1f7b8eca\nNONCE: a2f8afc5ceb5382882907630\nIN: 620fece1e843d1d0b5c5a541a6f615a81d\nAD: ded910647464d0fbb0a5d93ffb9839de3360c675179c5991ad3470285d79071436025111153628c563ad1b595e\nCT: 34431c3422e009373c50f3ee6c5b3fcc2d\nTAG: 6e4e8a3967307f47e233a36ce05a4826a698fada2ac19543bab7c9ac4f79451b\n\nKEY: 6bafd28a32690851fda667eb2d3c5993f13df52b2e97630527f26c498fd5019f26177a78f27c0c41616d2a4a73757fcaf9cd92a7da8498f90315d41e7479d90a\nNONCE: 75166c506c8e1d10da4da8b9\nIN: 697bea4d6eed5e6ed243cf01cc79bfd3a5\nAD: c0fa663961c3f7e09a8c7bc73e252a232977dd6c9483f02067b34fe695f341d05338ea2002952439ce08295ee5c12f38dafffeb5716908d3f1d4bfbf9eb0e4077bf8e534f19568ed04fca3bbff95da9088cb939f7a20cc97cc0994f9308e184219bf12c8af0d66df436c296ad39832d661b88c98cbb168c751719ac1383c9124\nCT: 8f37885b9602725385fd9a244ab2a156ea\nTAG: 7fa5cedd330887900f4a44d098e04d5eca16cf94e21f897fa54b0fc116b711b6\n\nKEY: 815786c7744d15afe1d6ab452cb6696fead8b88269ba3eb35c458f6248bad77b404acc744ebb74612c4f97deaccb99a7bcc6ad41917d61057c05b30c581dc4a0\nNONCE: 12342e4704f02336ebfc91df\nIN: 7f15e696b49ae5104ced5bebbf58a9d8ddcfaf46ddce9df88fe0d58a2f8546feeb83b975c66e4dafddb7fd9d17e80127e70af06b3b8b13c3390f1f50a227e7\nAD: \nCT: 22e7c5d54a7b622c47a9edb77cfe7c094e500b0ef9595bc346de736e0088e5934dc07160aea34f24d3ab21440878213d28059551cbfdaa418af40d344674f7\nTAG: 8c271ea5c15aa771c900388267efb2f435f001c2e83f4ec297e77c608de2d579\n\nKEY: 66d87d2b18e46257476456a1f87123424477decf196b88b09acfd3ca74bdebef4c98f1b93803098a141e0acc3ce8eede065417a0c1eda9b4614558d2383762b6\nNONCE: 1ec0ca1d3b09ef186ac4bb1a\nIN: cbb59e14098c2a8ab7e84ace913515c74e056e0fb272c7b88d0dddfb62e395afb695647d97d1071eb09cc1e1776b609fceaf4e30e92640379bb8f0e762ca9c\nAD: ec\nCT: 832804b8003b0ca1b4eff1dc4da6f6a9649e5a582854bb72cd74357476bf38d81ea3bc8ac0463f21fe37683bcbe07360d0ec2d7ab90b588adf669099303ac1\nTAG: 9fecafc768fca71ffe7d640dbb7a052d97d6c8e2fc86001d71feaf284ab609f0\n\nKEY: fbff97085351f4500e73190ac139dd3ac91e268042b5926b57e0394c750b10348b47641d195d5fb5b0846256ab229f102538b81e209db5d93b4d55f30c453d9c\nNONCE: d4868c918de2af7d3e3f57d3\nIN: 4f14aa5a680d66ae15ce0ce4739888f64d827def862572f9a6cd620badbe4ee9d75f4f9bc1f73d409f519a657f53a50d50e68e22f33a8ef5aa08b1212889e5\nAD: c41253e96696a948ce500030af27086842aacb79c04cc02a42b858a65c630065a5292bb9b2e69ea5fe5a7a\nCT: 08596ac0550574e352edc13d7e390d8fd0a57406dd61e1543066b4aa0ea06670f356e26ada0d6c61c1e41de1b4fd7a251c961fae44b23523ce227eec99a338\nTAG: 72f58de3e6697c8419ef518748fe0bb3cb930907c71b6d682c5e61068206d991\n\nKEY: c78c550aba82b571d39ce21d6ecf5e5f7c2a7bf921c6162c64ec1fdff4d0b8c41bfcea0e2486cc86b9ed9e9ceb73c4ec228a2ecbcfa0379174e76475cc21ae31\nNONCE: b5adf4de19980a71cb8ae8e6\nIN: 3d5e43ce95ff9d7f797f27b904c07291a35678fe76a9c57f0c0cba724f38acbb22c6c185db864a2a17b7ef2d67a04810ee5a45fd5a4e28a15a1ae16971451d\nAD: b5eeb9a18d436ada7bd5601944784f50fb0a989397b5c781a2cdf29337315dc7664f3c1cbf17f37fd0cc8b30\nCT: f91f1f20d06ad4480ff233480228994cfa052f9bf3038d06d997d31eb68bffa4960341b93eb5ed2260341e6816519c47bf231db2a41ad8a9719f4de6a33de5\nTAG: 6e5eabda421961e26dc17a7e1f750425235df4eaf9a97934c1e1b4439fc22791\n\nKEY: 17b90dec44546d9dbc489e55a01f2cc64452a9b0e50506a8ad7c81bc6fb21328285cafed901a7204048866ff3bd543003fdcbeb3e9e2f3d580f9062362879633\nNONCE: f0c0cb247d210031f9b233bc\nIN: 75b9b524cbfd1287259da116f536aff56112a406f069aa08f545b5372d45b66d7a5d05e02728c4bc2c779609dfe251386f78c5f48b9dad90b363d324826cd6\nAD: 8a604a9b06ad595ce0b9ad1644a596c7d3cde81490abc80840c764c40d6df08fc71d1e8196eae0802f8c8dfc24\nCT: 23ad62a668f942e613c3b5a7828142048f1f6a67f7f0e0cc8bf3fffb2d1dd967da472d080353dc9c23b900a566f20afb850e4a47688ee507faa6178fef2afd\nTAG: e9e82d3221f964d9e6c09d761afa3f05d1316d39c82618a82dafa23607bb40a3\n\nKEY: d5c09fe24201fcc3ad4c9a9c4b759345f643e930301c3714f62c8dd4974bb15a026b217ac637b4f0e8d6ef40f36be967c50aaea83b2e72df18eeb9576865f1d8\nNONCE: 9cfa0df1fe0910b33ee9849d\nIN: bfeb3d86ce3f4c5ccd0c3945e1da0e75dd057aa5b4e1f070593394f4a0227abedac0b77478e04d498506245b162e909cb711d8b875d33f9c4578e80a0e2113\nAD: b874a8523799554436a1174ab124677dc2ae2042a436c85065c50d5b5e7519623379ffed9a9c2b84b9626214b13c1806b65a432ba79066ff28ed94d17628f5ff84618593954389181e997ebd245d31f520539e250b31c86b99992983820f79e74aeaacb3a95e690e2841aba5a384d0333ebaa5d1fde06b4b8e3e1cabc6639459\nCT: afa649ea47db94936f89612ece681bb175664a97aa6faae5745f49ac9fcbfd4287b73cb58e8d8aa12eccf309182f075098f339db697fc60540481dad0cd82e\nTAG: 9909335130df0326650823de5a4f5b6f45e6941a6a72ceaf80ef32fe67363944\n\nKEY: a13c4654606f532a8df47c367dab1b214166e4f7188c20560831ac30ba5e58d316d29764e4c716ec0126657c926ba2e4541da062447228ae61340a951101b4a0\nNONCE: a2df3417ebb86bbb2f954939\nIN: f1954e59a319547d32e81f846e0c79db41c681166b43eb9c10458948606ced50a44df26fad5654a7c25d3fb52539cf25fcc1c11707c4b5aca7910a76e2374740\nAD: \nCT: 374726a4691f178a4c0a6f96108ba30c4ca8a30242c14e84380969473879d4a5de580fab4cf6ef6e465560a15028ba78a1a88f9e62322cb698b15ccce6ba83a8\nTAG: 683e5a3e61d9d9c8b170f1d4eaa4f74dcbecb1a4cb1551dc364bbb336d4e4109\n\nKEY: 0c1751677a9b7373e0c2ceab2c8e4dab50af22e2230be3187c21ed46069168d173c28a7474d8f7c3cab39401663405aebdcc474ce136e1fff9cfc520bfe17ca6\nNONCE: 38bc2efcd97998de1528b064\nIN: 8a3c6212240bdcb86da98f0e3ab3e9e78f7f61f0627ea088ab283e739a0bed5c360eeed26cea43ec09b4f3556049a1d7f8ef86abfd1118f9c0e34cc6eea4544a\nAD: 20\nCT: a1a9f7f4750be3d89fc4f25917f8ffa7dd462ce712ddf61792a01b1840bc8e428000372252f1b41055416a961db3be8fbe774f0a0a71a82e79e74927522703a0\nTAG: ae24708df0d5893a902765f6c6c2eebae0c11312936cd415bf4a74bb8498a367\n\nKEY: 154c21eb43d8d556e5f782ddd64d577ac8066fa172c2936fc2b2e875aa437f941819d9ecfaefa2e388fdeea81a0ece8dcb7647f2c68da48884aeb1315b577c09\nNONCE: e14d1bd8681373d41702a762\nIN: a2c880fcda87d9d4681a735a6790d93a1c9c68e55b87d5f7b3146665a6b2051398eb9895e1f5d522841668b9915633aa8cb40048c619baf6d63ca2da486cdeb8\nAD: b0b725cf634349ce1d3ac49d48313a09697efd9996cc5afd06b1d0817181d0374db05825dc2f08207bfb3b\nCT: 1cc0db5980863df7a40c78e323a78be6c6d556d4e3b5f930d8d0f2c6a10c6477e31c000d3f0563b4", "6e1a4aa566a4ef4b433e17e94c43338b51a7a3f862739b6e\nTAG: fe005424112de2a5ca6e68ada40984df1ae5ac666cf5fee19e9a0f203dd69f52\n\nKEY: c34482341724ee431b5272ee2964b245d7657778f7927cad4b5a1bc30a176b1eb88a83ac9faf58215a72855edf94f8e86fade58c5b5907994bb8381c9f21b753\nNONCE: 4934d9afc32fc7e2d8851594\nIN: aa3d32adc47b0b84d1b038ddcaeb007a7d5c96cc06a943eba5da6d0d367625330556e67da099c84086b3f46bb4b72986e076eb426913e415cd20bee34e434bd0\nAD: 076a7bc587b306f3da3ba88e66a55cb8125bbf8aa000dda266e950f381e35ac938ac86f8a15a83022a25f28b\nCT: cf017d87da8927e42c1f10fd3d73cf483bae43f4e110363159a9fbb7cba363930a0364cd42a5de2c70171edc4caf15bfc7238f7087bf1402b32c7bdb1f493393\nTAG: 3961efea656aab1b83082522b801fafdae346f7d4be70db1981283f323e5b5dd\n\nKEY: 363e10d8b3fe349014d6222761bba7af86545dcd1812fe2e5ada564c5008f8ea1850f374208e87362afa135f20f9e79dd0ad32f86448263416086d3afc5d37c0\nNONCE: cc545928edd3b21c0e8bc0f1\nIN: b68e3a54d17dab6eb41b03de2df14e792201d78a9c1cbf341da421da82b026ff471d4305ede5c6baae162a098c73da5cab93f30d6d540b4eaa0ee772448dade8\nAD: e21498edf4e25ada2dd6a382eceaf737623e501db34f5c5bd5c963f45818b146a6e45aa92db2a2069e55d46a4c\nCT: e4920c1fddb5dfed2268781fbb17e9ad2ea88bf2a0f116fbb7b309b25a5b9f989e1abc334999ab175b65f87e874d8ba80792044b458dc27d2b24c989d24385e1\nTAG: f0dcfa064cdf042e0b9a0443d634c38695dd09b99dadc647195fc2ad53dde547\n\nKEY: ae93f58aefa94e4e0622f2e962529fd2efdab840fd0bce62e163ca0fb004ec3b22e246073614203d9b63fe2842ef5903ed08b3e52abf7ea18acbe16fa8f66368\nNONCE: c9ac237c87270f2d88b91b64\nIN: a75f49778a6c03b0f8915f5d09efe99c5f4e9cd928713882e6b9b78bab3541812db41792b893c7e2259debc6c660ce708851912a5b9eaf91416d86b5de114ce1\nAD: a4b198a329e9c5bb6d9f31a6415811eb33c79422b0db130b78d788c38c0b9a5122688cbc50fea811afa20789465f9ee4362336cc3701ece701179af96eb7c86d5a00ed8582f24364393287d5dbc3e83a82b7a585cee5b152b5da40aa45ccd46dc841004778998c7efe9eb43c9762d1c8581eee64e18c5a961bda5aafdd5cfec8\nCT: 453fad9395106a703ccbfe811bf775f1827ea960c71d79242d2ea0e3e31b14baa76eb6d107dfc6e484f4e5146f8cad5b389e4c0fa18260c96a193edbc8091a36\nTAG: b67082c21557b31392a9821fbce4b93706f96856d2581c92e7fb65dd2166624f\n\nKEY: a145adafac46280e1cee8696903c5f3866540f27f17a519637373d95dca4ac5ac0bfd85ca6e1f8df8ae3fcfc9158421581669db52c20a3e19c5d251952f63218\nNONCE: 90bd43611f235ff225b23208\nIN: cbe5f3a5b7a94b8665cac1a4d173a225679e1a3926d8596b5adc0ef4fd00f7d93a432ff141cc04f877be60b6a17fff40ac845a91bcee3b483862f67d9a76ef498ce5e49c361bfc018e401aff47b397e96b2982d4fdcd043ca09905be9634e83dc22a667c955bc992ec96ca1b76f73631767f64fc7151284d5aa81c1aa42eb3aa\nAD: \nCT: 604f718dbce17dfca1fc5e0f400151cb65bea9d7d8f26d56687a76a23f89201aab01ef928006d15493f5b1501bb99c517cf123acd956ab575e687298488a88d5739c266e67ca6a20a5dbe5f5f27ac778816f04e7b1764cb716477f3aa01482cb6b25fe034ab5d942013164aa124608cacf13d6cc9487446cfba54315fc6bfc42\nTAG: 8e3e1a01945bfd9e1aa4eff1cdd0a6da6d8fdd5446e6d732a673effe8e44d76a\n\nKEY: 63ac8e2561341587bc066c87cd23f7f33e6023bdc1521a91d6ce63d3ab213825d95d674928b56da1741aad8e85a8b703239ad74e0304ad555eeadebf4ae30aa6\nNONCE: 4f3073c3b780ebb146e136c7\nIN: 7f9a05b1aead29b4d5361c2606e5db8a48122858842679cd46f8386ef9359f998cd2c6c266791429624ff634a160d08faf1523b650c30b2fcd71517da5f377000251ef23cfd2510a0630215ad45fa6d2313f9add040a07df8259b82d3f29cf1ab8477cd114c9ee579d3e2ce60c5da2f3375b68b4d6e0913d39dac9399c00bd32\nAD: 22\nCT: d4ed811c8db932348e0c311e9278ef22f22cec8af88b3ac0cef77f13bbd9b8cca037c1ea87590a0ce3f3e7b3ffe1dcc4c7cd9e721baa5f126a3e0afb26dcfa02bf44428846c0f1e07ba0e026c23a39877de1e69e16a2766ff4fa3d4e8d3a97ba28f407f459ae3520dd840e8f9e149ea582048dc6e3d0227bd86a9c26ddd59895\nTAG: 0abc9111229bcb725953d139a2dcb1aa0cb9d3d6c01ef4733482dc5edcc88958\n\nKEY: 355454fbe12f125edbc13550a7494f37efbe12b843058d29f892e1524289c2868ef0050a75a232d3083c381289e4950e352d68d64bf05f0608d694763c36641c\nNONCE: 0a344bb3da1c4260f2daf256\nIN: 362e97f8ef09f30e5db2f21d40568d347d9bc42d4c94a563484b12eb109886ccfd2c61c40dfe93eb836bb6aa4f828e77c137485da2df494cbeb6a9a0192c3777b4d7a927fba11a8eaf604b85a81ac4719ce8b595a74656286fd0b80d1ad3f3393e6038b258af97af9a77f6760d486d9caf5a451ba26dee51bda0f76d75bfc26e\nAD: c7c2e8196f37185b44515480d5d9451d79d07df4c1256bff6382f942727ce9b3a4f81ae964d8af2cd9f638\nCT: 32a67922947fd6b1c1bfaf3e1d41397173b97095e55307cae1c574daca275778d4aa4313fb1fe5b3997ff18800903ce044c7d0976abbb03b6cc1f7498d8b56d00672bd74f7cb152b677c632ef7a6f6fc13e95e82b6e35d663eb47f27c229c81174fd7c62c94c414e47216af2580fe822643e54907af77ae18e903fe856a02173\nTAG: 72d0fe5baee8090c5f8e79890b77f6d72a4213a7d1a81e0d1f1c9e6731e44d54\n\nKEY: 664478c9d30d2cbc39351ec3b3494f3edb81e32e48bd4ef05969da07e770e4181a9ada3b2f83b46f40fc2d9ad35fd8ee6864ff3d70436d6cca3f8e0563cc3b06\nNONCE: 7313df9679181ffad2972a6b\nIN: 142f073f2ce443c68822f120b5009e39bea3453017dc04c1b091adfddcb2a7e361c2b79eab1bf0818bc86e9d7964834d3775698b56a11ee07a0c9c03cb7bb895bf1a1dde3975c3662d233052824f1539f58cd6ad5cadb58fecaf2b34935ff711c45a639d642fb8fc3a52929b1296683bb13e67f2cc8ed9090126cdf28a4395c6\nAD: d0d78b94505793af546912f3780699dd72e288c775bfc75da6e306defcd868f6d40c6d6ce34fab9c11574ef5\nCT: cb913e40ea5dfe76beae612e9732d23ce352789987134822b2324db585179bf90d0ee20bee102e93a49a55fc978d19e99ba316cf8d9a10d2f2bcb75da4b135d1fcb8057edc33a180586015d8829a128f8fdc87b72497016c280f54f4d974c2c7e9d32ae137eaa1bcb670be237269fa73c3a0f273da9e70d89600ae7c231fc9d4\nTAG: dcc158c254ff7e131ad854a2158d51c643c281dfd7df342d5481384ab236a685\n\nKEY: 409d1b4e1c187c8b1c053e999f2af648583e1045d56d553cce9270d08c5643ef365eb35e3bdeaedcd164b0122ad185e71c75146a9807104d9b65b56d9bc1dc55\nNONCE: 1cce3f08a5aa5824d063a6f2\nIN: a255239e4065f3effe6aa5e88814d516236d016c51cd8eb35af7cee86418966559802f8ff7ac39c6a45acc1f1b18cc28d7cc32ae66dff43289fe44c3a2a72fbadf3a7249d76c1ba9671dfc420ddf513539f2da5f31030f2b6775c57432c2c3486621d841e80dd4894229debc12ef47d74716838f2d807e208f0fdaf733bce76e\nAD: 8f34f8b676e71844841c6a7b63fef1ad3061f2449c1044e1a281595da2d9e9fd141aea7350bd8cf9774d375e67\nCT: 969fc2c64261db415e51eee8cc5e0cf5185b8e3325dea516a70e32115a5b72233a44458c40f2daff3594d71e42ca2e3fc1c444ce171d22ef40009d798456613fa4b76beaa6d469e235997a302ac468c8bcfb8ef5de5cda58d7e554a9eab6cb568945dc37f28b0dbd674c083dfbd2e42fda1b42d0c1966e9652a21b32af71e2d5\nTAG: fa0789a83c255412501944a67bdceaff3f01d9a23b0c749be38abc956e2acae6\n\nKEY: e6fd8144cdb305bf9e62a2c901764c62902f354409d8c5b9c8cbfc0ba8ac7d0859ff8994e573e46784395d89c355a91a313f601b56e86ed3fd10ba428a5481ce\nNONCE: bae080718d3e5c5998542f15\nIN: 2258ffcd6fcf91b1723f8db0047525d61cc8ffc440acf3290690685d16384292493807312b7dfc23ac9d9c3ee1405baab21a3770a05875cfe325268b65fc877463e3208c842ea4a32cf144cc46d57afd91f6b6b5d85fb2dedb0702f0c4e7f742cf4c9b4aec02f07267ec1f7b96a5a3ef25f6c1b4c27bd829e86583e239cd854b\nAD: 51ae57749b7757718aef9b9c47da5794659516e7f98bc80e6c18c89253f8617963331f54d4f009f087d1d2bd69a083f3a4b98f2a51ce24ffc6079774f7c7b01638b6131bfccebe21fea67bc839c259a50fcc0a16a69ada3c5adee4097d9e053a03266cb9b4b39ee2a465ec1aa058e61a0b9888b93bfcfd103f91ca3a7b274a10\nCT: 5b2fe8eea3313cc04d5ec75d75d05b3242b6e3b65c6fa1761716780c9529ff8ca523096dd037c5bda27984aa93c702ce9c01c63569a90657cc6373ad5d4473028b7eef69dd79c44c38d0063e8a8b7f1aa2bf6b646711ecd4eea3fa27408e089d9c4c4aceedff29a25baa6a9069eb7eac83a53212c0b387d700547c46cdc525e3\nTAG: 60319de093aec5c0bb8d5f17e950b0f4df0dfd20ad96490f6f12db461b2a4a84\n\n", }; -static const size_t kLen13 = 178545; +static const size_t kLen14 = 178545; -static const char *kData13[] = { +static const char *kData14[] = { "# Test vectors from\n# https://tools.ietf.org/html/draft-irtf-cfrg-gcmsiv-04#appendix-C\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: \nAD: \nCT: \nTAG: 07f5f4169bbf55a8400cd47ea6fd400f\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 0100000000000000\nAD: \nCT: c2ef328e5c71c83b\nTAG: 843122130f7364b761e0b97427e3df28\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 010000000000000000000000\nAD: \nCT: 9aab2aeb3faa0a34aea8e2b1\nTAG: 8ca50da9ae6559e48fd10f6e5c9ca17e\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 01000000000000000000000000000000\nAD: \nCT: 85a01b63025ba19b7fd3ddfc033b3e76\nTAG: c9eac6fa700942702e90862383c6c366\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 0100000000000000000000000000000002000000000000000000000000000000\nAD: \nCT: 4a6a9db4c8c6549201b9edb53006cba821ec9cf850948a7c86c68ac7539d027f\nTAG: e819e63abcd020b006a976397632eb5d\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000\nAD: \nCT: c00d121893a9fa603f48ccc1ca3c57ce7499245ea0046db16c53c7c66fe717e39cf6c748837b61f6ee3adcee17534ed5\nTAG: 790bc96880a99ba804bd12c0e6a22cc4\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nAD: \nCT: c2d5160a1f8683834910acdafc41fbb1632d4a353e8b905ec9a5499ac34f96c7e1049eb080883891a4db8caaa1f99dd004d80487540735234e3744512c6f90ce\nTAG: 112864c269fc0d9d88c61fa47e39aa08\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 0200000000000000\nAD: 01\nCT: 1de22967237a8132\nTAG: 91213f267e3b452f02d01ae33e4ec854\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 020000000000000000000000\nAD: 01\nCT: 163d6f9cc1b346cd453a2e4c\nTAG: c1a4a19ae800941ccdc57cc8413c277f\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 02000000000000000000000000000000\nAD: 01\nCT: c91545823cc24f17dbb0e9e807d5ec17\nTAG: b292d28ff61189e8e49f3875ef91aff7\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 0200000000000000000000000000000003000000000000000000000000000000\nAD: 01\nCT: 07dad364bfc2b9da89116d7bef6daaaf6f255510aa654f920ac81b94e8bad365\nTAG: aea1bad12702e1965604374aab96dbbc\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nAD: 01\nCT: c67a1f0f567a5198aa1fcc8e3f21314336f7f51ca8b1af61feac35a86416fa47fbca3b5f749cdf564527f2314f42fe25\nTAG: 03332742b228c647173616cfd44c54eb\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000\nAD: 01\nCT: 67fd45e126bfb9a79930c43aad2d36967d3f0e4d217c1e551f59727870beefc98cb933a8fce9de887b1e40799988db1fc3f91880ed405b2dd298318858467c89\nTAG: 5bde0285037c5de81e5b570a049b62a0\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 02000000\nAD: 010000000000000000000000\nCT: 22b3f4cd\nTAG: 1835e517741dfddccfa07fa4661b74cf\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 0300000000000000000000000000000004000000\nAD: 010000000000000000000000000000000200\nCT: 43dd0163cdb48f9fe3212bf61b201976067f342b\nTAG: b879ad976d8242acc188ab59cabfe307\n\nKEY: 0100000000000000000000000000000000000000000000000000000000000000\nNONCE: 030000000000000000000000\nIN: 030000000000000000000000000000000400\nAD: 0100000000000000000000000000000002000000\nCT: 462401724b5ce6588d5a54aae5375513a075\nTAG: cfcdf5042112aa29685c912fc2056543\n\n# Random vectors generated by the reference code.\n\nKEY: e66021d5eb8e4f4066d4adb9c33560e4f46e44bb3da0015c94f7088736864200\nNONCE: e0eaf5284d884a0e77d31646\nIN: \nAD: \nCT: \nTAG: 169fbb2fbf389a995f6390af22228a62\n\nKEY: bae8e37fc83441b16034566b7a806c46bb91c3c5aedb64a6c590bc84d1a5e269\nNONCE: e4b47801afc0577e34699b9e\nIN: 671fdd4fbdc66f146545fc880c94a95198\nAD: 874296d5cc1fd16132\nCT: 9209cfae7372e0a3ec2e5d072d5e26b7b9\nTAG: f3acb73908e54cddf7be1864914e13cf\n\nKEY: 0b6920ce07787f86743b275d1ab32f6d1f0434d8848c1177441f195495860f04\nNONCE: 6787f3ea22c127aaf195d189\nIN: 4728b3fed1473c528b8426a582995929a1499e9ad8780c8d63d0ab4149c09f572c61\nAD: 4b4745914474e7c7c9882e5386fd9f92ec48\nCT: 8ad7deb4be91cdc4e75c77de1c746d816212b109c5a485c6cb79e3005d2e94355104\nTAG: d71002b6a9de0addb173f49e34edab61\n\nKEY: 9c8fde2be2cf97e74e932d4ed87da44102952ef94b02b805249bac80e6f61455\nNONCE: bfac8308a2d40d8c84511780\nIN: 82355c9e940fea2f582950a70d5a1db2316fd568378da107b52b0da55210cc1c1b0abde3b2f204d1e9f8b06bc47f9745b3d1ae\nAD: 06556fb6aa7890bebc18fe6b3db4da3d57aa94842b9803a96e07fb\nCT: ced477a00135f16006e100b9d7521f9e1bddbc7d339cc41333abe3cc79dd8e3a18e310dd1dd53ac664673ab9090d5dc07b4859\nTAG: fdfb01ef873060efc7c3c32adf3b46cc\n\nKEY: 6de71860f762ebfbd08284e421702de0de18baa9c9596291b08466f37de21c7f\nNONCE: f901cfe8a69615a93fdf7a98\nIN: cad481796245709fb18853f68d833640e42a3c02c25b64869e146d7b233987bddfc240871d7576f7028ec6eb5ea7e298342a94d4b202b370ef9768ec6561c4fe6b7e7296\nAD: fa859c2159058b1f0fe91433a5bdc20e214eab7fecef4454a10ef0657df21ac73c535de1\nCT: 01fcded8e89997d446236c8e3a77ba755b85b9b5ab8fa8f355be587a3954c4a4231a7c8c198b72525ce4304125a4dabd1574453437f6584790d8cd90d5957b0d5c804a6e\nTAG: ecb5e6b6e75d241c221a2f4dbd7d0448\n\nKEY: 92eaed3822a2fbbe2ca9dfc88255e14a661b8aa82cc54236093bbc23688089e5\nNONCE: 5540db1872504e1cced532ce\nIN: 4159b035277d4dfbb7db62968b13cd4eec734320ccc9d9bbbb19cb81b2af4ecbc3e72834321f7aa0f70b7282b4f33df23f167541ac15c8417abaf17a282ac7a57252ff224ae7911a905b8c699b20e40c1e9569a6b2\nAD: aa0232d4b10bb6f20406135861c19795b95f9597f9b72c20931c41164f1b469b0901f2b5da3a956a6e278c940e\nCT: c49082d9a1bb49356f1a9b75b443832a56387066b617b939b60381db47711bfd174324e8d20c9713d562fb8f5c698dab02b5c00ecb652c182ac5544648599fd7fdd042009ed44961efd975972ae3c9aed8a4f58ddb\nTAG: 75639e5472bec58e96b358cbe429c4ac\n\nKEY: 82593eb58f56f6d3681fb00dedf7f612c4cb3193b73ab35f9a5a9cc8d13aa27f\nNONCE: f1dea3b2a7d832ed8ab959d8\nIN: 2ee795df8e1ef530cc6fd9a1f10543b44c49383921d74fe0c71d50da4adb9e9c7e5491a488ceb5c384ebafadf0f484fae982019a8ea22efd1358adf7ad4f5fa0d2acd2f1ee095cdfc13310241243fa53b8c2610d1924b1d55cb6d9cb6a5b98a72127255967b8\nAD: ff23623c5453e61cecf9e624e5c803250c382481d3c10febfa54d03894ba8f9ed72637fcf5631f7b7312cc74e6ff63ecb240349a575f\nCT: 6841f9ffed11d165b18917ed0aeed507bfdbea3a57beac2f2e08625e9929d3f2d84373ac3b21813f7dde1b25c93129b541fc640e09f5233cd9f0587edad70b73c423011cccae55a9deff9f29308fbdfc9a73f5fff4a7b0ad308ca9b545223adcf724d3d8b127\nTAG: 479bf5015121d25bf2346429a5c569b4\n\nKEY: 2cd817f2afbaaf21815bf08ac1e8f87520244b4a3fc492c7120296607ef64d0a\nNONCE: db4c74b73839e13455fd91dd\nIN: f7f81d460034b9c41eaf0cc6040a84e17e6108372f1ca50656793554ea1d05181310711d0e60d4d556b2bedb24d7b622c01fe8025119ae0c8a20b679dc40c9908f88fecfafd688b0ebec6a2ac13421012874c80685c481b41323a1724ea96c1df644a595e8cc73955e6f661e0fa30737d78e7cec11629b\nAD: 8f1fa4bbd8e8e655f50019859514dbc4cbcf944f95084e45337d9d9d8972bd8da92b4eb5a75c0b284305601de859f8d1fac6d6b3fdd42210fdcf696119e436\nCT: 97d729cde56ec1f95bfbc16ca5dec6a208543c3255f7a2b97fbf5fcbbb34908ace9ce13bd9e90474ed620715a5e9e43c34802b85feebc4d4a23d1bc8b4b5a6c11da7158765c40d2c863185c5551cb2b10eb0b45c61b939f8274ad84fe0a74e163bfd6afc5759946362adc74b4a7f705827323f8291ec38\nTAG: ea1c9094241c5b75ea880723ccb17ca7\n\nKEY: 006a5a863859d5b70806197fdb9f0da3e4c31b0c7545809808bf7683757cd11b\nNONCE: 9d0f8621664df31eb95b5e17\nIN: 567d680b1a26980772e8ad3e9b2e2de537414368c4f97adff1408d36c1dfee65b78375c7361", "c91452e7d463338474a400ef9efcaa648e93f38f8784a1598bca461211195d7844de56b91cccc96d89e6471bca6b7374aa5ec4b2f5fba66c17a435970411f2af3d6e33c0d094f74fcb77beb6cbbac1f3a8a19f69ca087f94a5b80d5e3692e0d10ec34\nAD: aa67269c824b382d6238bcfaaed586177b852f816c31e9966744188f02647d881990d98c3eabd477557a739262bb3f682f64d2208faf98097586053a32cbf37e\nCT: 85f7411a7f8ab505a7c10c5c1fb9bdabcd9a7826465de96e3b7c762830ce133b33d8956756ec29c00b429d30047040043cd5b3bd87dff60e09e4d7c3a95bcbfa2603ac964be32a82250741e19b6786638be28709ddeae496cba7558b7acbc5545b259e6a1b2ac1f5135f5719987dc547f97f68ffb7b9eac892527a4bf0ffbf59f77327ee763c54d6\nTAG: 3a8cb8fdab2c79aceaef6680daaf3ecc\n\nKEY: 78413a2d89613a81966e8d654cac0aa34107947a036f403bda53e74bc524e7bc\nNONCE: 2d2c51dc426b38c308cc5748\nIN: 39129e5e6251f41dec9cff7ccf256c38e4994e15ca976d3185ae17030ad3751e56367f86886acc32e27fe04d0b89cc89b0206f281aa2d80f9be19928dabf07417e7659b17f09c56d170ed1ef10d2fadf01e0c78473d06a1685ef0bb112e4ec7e6ce0cbc601fc8a2dd64045c8fada4a28c0c6f0ec98542e365279d00ffdf5e2eae3b663c4b79342f2f265db30a86d6e1b325318d7f7a622b36e\nAD: 746875b71165defd5ca1afc0a92db6ef4fb9e20b81018a5293899f1e0d06b18a2e65f7616638f79a0db3f2cfdcc0eac2ee1e2e454958e2e6d214a20ad13156f97d0f2cf4276b09f594\nCT: 142722bf554b8c70e8e76e52b9c0e0bb19b618f7bbc7ffbc91a66031f418d031d3c111eddb9f1ff7c2e64191be8dad4f8cd175079d2ada20c8880d0565c56afe5c9742753cbd50b93620b081f0877f045d0be91ff05a603fdc87e1940ac1e1f0c9aa96d5aaf4a58e0393ced4fad8e83171fa71c397817cd48ce6991e3b73d3356ef0448be1bd8114feff5f23db3b9cacdcfb4d25fd4dbfcae7\nTAG: e489f6c52120c8cfdc0f164b3440de99\n\nKEY: 5c11f6b20b7bede26d6c2f0e5cf2786eea66e18d6ece02156f9233bdfc57c75b\nNONCE: 1a8a8b1f4ab85be5a4a089f0\nIN: ac762060a336aa502f5a1df1e0a647fb9d5d932dc0654e0725122f6a567681a7d1cb7625ed0404d540d8b3145c911280d2a0ff9d1c53e27677be0436faeb39009fe5751c0b37c7a5f1137a26995577faa109071bee1c87d5e6772ca55fdec02348a625b49c3c881aab162f20ba0b834e8159d9bf20ee0c5d14da0221961c4fc7d9b44c7822f32298d30775cf974172ebfdb36cfb2881ccb15e5f69ed27880b920f4a092815357e03d982\nAD: f75590af08b447f0f8466b031ed2409e9f5eb479affd9e18017a369486914c63a7494168d91df157f5e56fbc4ab6ee5a8f3af1fbe1bf9324338a1f4acad45fc7137676797c89620b15feb8512544771f280f\nCT: d8355d51bcd69356ec74b9b8657cec57335731cebfe83202c1557fd208480a2c25747625bcc70533d1ef75d2bfbeb9354066a8650f59a575e836339dd45d0d8a5cac221954b77cabba5e95da7437665fe9b48257148b7e8a88cb2cc4e0912f511aba0a013aaaf09255ec13b27cd9cd05ea11fe2ff21c9ab8a3fe86090dfe13166b172ba08e76d30ad48bef0e2325da08835ecc468cc40222db0552834ae94458366f28f6ba63b3e656bf\nTAG: 0c7f16d3294d5ef185c2d06ed719ed8d\n\nKEY: 322cbaac9c4d7cfb4c326824825ba5b5f5190fcde0d399ef1f52b82abb5a8b1e\nNONCE: 5f2eea2c79702dec4cfbee3d\nIN: 1f5cc11e085d2254f8b37f8030bd285d6aa1cc53868d18ecfdd963153485dce5a3e3e8cb0a3cf8074571f7a2e9e841229466463f506a2bc90f2d6413128efee043e01eccb930fbc002563510e499457161083ed7997e58ebf03ce7ed2f8d5487936311922884bfd31cf828f3d0ce78f3c6981932268108a369048cdc0a75c062c0ed02e27bbd11754e621ff67c511ed98c6fadc3e95e7100644ebe1aa147a7e99f25ce5c2edb8ab6446749441027a211b8d04a6247299dfea9d75e\nAD: ab257a625aeb51f74e0b47b302fb5c0475ab23e99f4d93ecf07694497ff6b27c9848805af93a5615bc71486b26fc9da67cf60c8d3a396bc0164985fab2c64bbaa4dd0fdc22c9d9e433e8c70dcdeeebf230c7a3cb3e5d0d48573a64\nCT: e8d083e25f9332d30bfe60ac071f502909b26393440a848d1f81c3f5fd521de98cd9ad1fc3e806724f5b3732582853cf280f1b99cffdc6b46874d42adb8784cf9ab8e158531b4dbbd76391d48727b585fca0610777fa8ec6a2a7f070627f1ed254e430e55472622289f44089ff22f02b7f3c5e45e228b7b03a5d1e1abdc18b154124f8cdd3b2229e4720cbc1bd3cc3f86f3a6a745de0bffa2536027ee03d447b306ae69b1232e964ca27a6d252c1582422c99373ca2b9541a27081\nTAG: f6b8a72d4235589f7811ee1c6f8d2167\n\nKEY: b068daf90f56b15579767ecdd420c0858fabe23abc0b313b97a9c1ceddcb59d5\nNONCE: 322e47a85cc58e753f00d6f0\nIN: d032d4c5110c8f22e98895279a30a86da0ef71cea6ef2738fe3e747ee54d2e96e3afb8916281f6369ab1a397ca0a18c6c0e9a0c4edeaa4190ce6422bd116ac254a12235eb66fb5cc7ef55b721d3d2db4c67c38bbbb0bcac9234ea7d733f200e6b86fc55f4abb9b65ee1897c262533cccd118b0f493c849a7aa7f35d243f9438f1858da62bdd03fd5a8c7b01d8097d7ce319a41f80104968a46599e9a3289a29a16b245877898f345f92fa70d3e613c38e6e4ebbf0bcb64c1c41f8b83ec8e9f159d4b830d9a1b79f2ad90db06\nAD: 7856eb8621e52ab3060e8d72dfe782b62364c163fa00b49aa6fbe4210fb7208c642b7a6735b1a8b2f1dbc4b3d4952985ef207a3eb0a07b1341700762e9f9d1c3438fc6633da2fbade15844cb1813d258aa5bfa4ac129d693792a89622a0c686f05d87019\nCT: 00d34f899f0a8b40fdfe9fcec98a96c5995b4524b144545026aaa55f629c3befbb8ff794b726e759e18b7198bb2fd2a866379418e6dc4f9fa9e4edc84d21454a5cd212f68a7df321b18e9eb2c537e0cf2e0bf65e80218b841ae8a994ea3f6832d667430dc314567267d7f31519fd856d73eaa1d3bfca419abc5001b25cc1fdf860812b077fda4b01abbe8f8a81a16ad2ab5d9299ea9a0d81aa26e1a573504d5fbdf29e6b2098ce975f2f3c8c212939569c8ea8ed63c4847f2d0fd16f47bcb30bd7e00956ab8a9deddc54e009\nTAG: 6152a0401a33257c8148e65440601d5c\n\nKEY: a266f91387d96bf2baae0262782b9c23162f5271cfa3144265deefe2c569e829\nNONCE: 11e842e5c9ae8fb79becf42c\nIN: 3afe389acfdc9a34bec7b45705ba68e205b83b33f50b7852fbb7f4ae5dfdfdfb3cfee8a03c96a036388aa8f7809bd47eaa073f92905d0d5f199d466cc0ebd9bceb207f4209bf9925c6109973194742dc8d813f3cb212bbd8d92d7eef645fb0f8245811876dee5f241763edaf7d79c1b83d973f9ba3b29a9b9408418f73743ff0546f0d9290010cf3a665c443b85255759ec6248021e4b6eb825c398b5af7b5257efb7afc481abc20d90249bed5b30d44f725c78ad0ce2821f86838874dceb6b6207ad6fa34579126de720ce34bdfd2058d92b8bbbb3f1bec607de3f0a0\nAD: 28d8f6e13d0d4d2d3861e1a26d79cb68d3fef68127e8458eb599915022da751e271cd047cc712fae5b0459ae7815a24f4edf806889fc462c83181111f4de5bbb7e66a701460f508eaf73798c3ca9c08cc1a046472f4b18c69b7ed249a96f9bfa05a276499a5f499c586027c64a\nCT: 11bd92445b4e43dca339491c8100cf933795ef7cf4c3c4d6c42ae5b729ca22869d443505fbb49ccd29b44046569da104f7ddaf325e71e7f30487e83acd012bd492cb4e98342ac7d64843eb499744b3d17db402d51b5bf8cbcb8995fad4a81dad4221ca30ceb3590df41e124c327fd31aa53c86514a12e22c477489871bfeb38cf71cb3a959f4167402576f142bd88b1221281a94661c8d643f89fc92dffef322ce97f8c19b133e55f8020232dbdf42e4527d9f133b8a5934bf0a2df3754d6455a9d765182691ab94ec7a2e68f3ff59805c7457428ee4af8388f91e88b3\nTAG: 8f1bd0ef9d08299f494054ab9409f663\n\nKEY: d6a68dcb52a50aa6d1b1d4d202e6f184f01daa08fbd643523f4f73ae6b8d764a\nNONCE: 7f567087a5fec5ad1ee3e4be\nIN: 5b677b87109e69eae9a635ac2ea185ba08ebce3ba4be06d53b2da081c5030f5a746fea7bbdda340e10eccd47238340b9244b9442c0efae7644cff53c7abd8445163e891cf30bc8e26eea01f0c461b4796c2106e1ffdfdd1bac29f7d3c72c8ca7f625008d8d333d2a2092c08ef83c8002ed90e2ad01dadfe4cc0681384b489f38d25e83c2c563485fb361f81d44aea205e5bb4c1912d00d8f99f8d7a931e55ae72f749147fbd97699ec730bfb01b8261f1f94696278fc703263cc789b283460af9d74647a8c039ad2184674e78f6a355a26eefc6fcd4cd32d96d245d583836312652fd9e6694ac5644eeb4c2bd667\nAD: b52e5af14bcb108c8e277728d6d6116e8ed1981993771b8bb783bb351982f9f8c2a0e7c20a5a863c6d71b7145b73d7e6d84d47780d66847244d0b8ef559f2297f39e26501d8a2aae8c36189580292da842c4d0d06a21d21ab175e34589e3b814d8a00ac1d8a3b2eca2a91b21e36c55fc6dad8c0a1b2c\nCT: ddc900dd582d322c567e3fd7eb23069b9e559bb16639cc79ffc6f3deb6e92cbf71ee66c839b4115e883390646245a42480ae6c638fe7fa04b575b4a8341050e2f3de075f2f19ad9b24d9cc1c39a659b0ffc362d46354da6bee0e41319221cf7cb160017d589413e5c1f07e5f626c2a1f8ae9e8b9ba0320a2de9e1b5f7baa4d551c090521d8ee0b30c8c709fbc00f1fdce999f1f96883e3b83b363cc47665e5a21fcf25afb6aa2bbcd0a374618c3dd8b8f97f21037946dde9bfdc7e907ac39e64f1a5ec8dda60a47148bd066f907a25b9caeb3804c0423836a8d9c35bc58c57882c5b23e00c7f4e3b1743cb14f102\nTAG: 8ac7e104a0165df543c7454223a01f90\n\nKEY: c7bcb2108b2e21fafeaa26a2d4881b183b899210b474bdc43a8f0b8464075d86\nNONCE: a2ba1e9cd195a8ecadd31587\nIN: 0d5740c4e22eab0783de87d541fa834647c3fc6543c60d5df31c19c6ca38707649fa8dcfc3c0ccc16b1bb60283d7ae2778a8f83ba07b905e23cb06d5656f614f1efcb346f34e190bcc636cdca229b64af9ae4b1f05b58f1ffd1a077a51bbf9ede69ac3954de7daf569cc8de12282cac09b9a49dfb92dcc409b8c63f2ae4a34091633f4aaf225aa02ba9c57b910a76535f0cba67fbab0e6fa0bc876217fc9a546a97dabc9be41209bdb582d8d8a62865df7398d4f7e9ac681bcd102e31bfd40cfb8e9352b1e8ff7a7b81cfe2a62849e8b77dcfb645d2046404a83442133e245bd1df35d69dba9ee097dbc867cde7b431565c72fec31719318dd27c3e47dc5f8\nAD: 729ea794668d8724a1d4115adcee0725e4c1e3ce16ed9e31bd5a409cd074c0277e21a0b431d3b30ddd361ecd176a8d86927c2f6693105d7d3c47d9be8bd90d0b2fb20587623b2e838624b5", "90a5c9f0e6d519b35eb5332b16bd2c2f9534e376ba68316efdb963d63e2c87cb0716973297d986bbd885a7306e2bdca0855447b5\nCT: d0e58d936c8b83c253ae9bd29f45afaaba9712647b3da6c6ffd40a9390a4476a0e74a2f2d458c88056bcc0a57fb64597a7c8a5e2be39669dec53c6bf0f7b4a2bacaff9aef36b43fe37b80cccc7d42cc283ba1c1eca739167c07754edec14375d86e88668b156d04c989bcf3fdc70e8a25aa3e6052d6befe3072ec0993d6b520c722dda62b6879324eb4ae016e54d139d816be7fb1bf9c0168d8f7225bc8ed9b7509b45cdb2c8a1db4b3619120c824d0bad7deb7fd0dfdb3674ab15a712f6196a5a840ee8895670cf3b20b8a5e43caa41c5524bf47c2ed4ae7027c2b566dc3e2548244057b880da2a3f1abe5e4eff090f9358970da6568bdb5f8288f9d25829\nTAG: 057ab8d811b5c3819781752230badd5c\n\nKEY: 7817285801341c10baf67bb5f71b75a11856d2551eb47e60025a0021b9948afd\nNONCE: 8818888585a6957eb59680a5\nIN: 5a5c42458f2d0e0f39bcbada0ba0b6e72340193500e22d243e32be0e7d7bc5c632ef3dc7e79ad5acc895cbba3111d8d1faa69bfe2ce634fc0d7b12242dd8bb105c6ce54cc9718921378c906ff5e61f48fa259b25bd10fee96856a206a928b450a0098089d5cb7378c2935c4537172076d829975798d4f24ad243e4aad474fd5e59e25a6dd133944918709e33f84b4daf4bc6d3ba1e0b9e364dcad5834024066ab5c8e672a999bbf23a83956623943e0011e3a2883d23a767b280ad84e2d7fe5811099395edd269077162310481ff304128271d4ce5c84ea738fde318cb2528bc5cd448c67837cb7dedb632d47e8f90e351b0a8942da2f78e2065cdf827a85f51\nAD: 0e22156bfd971ab3f123e9774bf3ff7c224af19bc79e812839eeb3f1c14f89e5666c16c44a5483efbe449237508ab2436939098640931fe3b928cb3a9378b6b9fc2a54c6bf59f34b16f06d5ef132ae2a7161034f26a6e07badc61ea51a94a20e4692a0a0525726f3de9bd1d6151fa6a0ea3acef3634847cfbc98d2e0bb9ae89e\nCT: 5eb6120cae6df4766b40ffb4d204ade5ae08aa2cda263b39ec7b47756ed7e6b7837fdcde8d01a2bf01367e9398e25991f9da11bc9f8de8e6c1b4e922af05d20d683edb4a245e22eb6cc4fec2375e8d81f9f27af5f118a16fde654b4ceabe770fb3a00bc7a88763b670b5e3a6ca06aea1824e20b9c1a304c4bdb62643fea73030ef6d18ee2e22095b4c73abc51abc4883f2bcce14033608ff7e1ce72ab3382c29069eb75426d283a4a71348123be19f480dba1d1677055de9e82d683c2d6413a6a4e0c6d58f7f2188ca5c8b916aa49975b80630d27a89ac284b971478376ad6e55dc64098951bec2ca7d77ebe790b1ed7fe7f33fe571d8613f143e3d3ab6bc613\nTAG: 6f3f79c6231d7e45ebc1ccbe5d110a0b\n\nKEY: 4f91a78c56558ac92b4f33fb1d96b1ade26cf4b2fec779bfbf6709e531ce0e62\nNONCE: 19f75c4c31873d4915b1af3a\nIN: 51c2ef5e89218ac4060dd12be216654eff2991e8d7bce6f6a437966f80c59c527679b8983e75c617c917fa9b63bc60748f5ca179645afdfe6a126a73d3fbcd41a9df6d734e8783aff3a5134ecacbb289f93febbd8eb493693264026f8678e9fdb779038ac13199459caf9c4e86f4cf8306af6dc04d9dbb678d3ce9e41d154c4c1bca018bbc4d744655af04ee2cd524db41170f0946df225d156dcdca3e52139561b61c26bfc56bc90c21cffa69468863afb66c3e1524303f8f42103e435fa2fe2c2956feffe5b06ed20bdba730d675166f13118a193b06d7985d54d46e4150468df1252d7cd144afc99ce99b93ce9526ea4dec2cde1d0d72fb82f55db65ec2035e387e7923d98490cacc793046afaa2e49\nAD: bed34cd7e4eaa52e75bac5e86f9e9eb81028cbe8a515870edb9a151334e1f961949855565abc51af9a1bbac0222e9bd217d3e3a642b0f3df8e7c47c2c9d5a801cc8028c425b3becbe31df39d30637c38f981d268017da818010189c93d2d135024f239407623496c5435f04f9cae86e63ef46fcf9787c946b400249d8476f82dee274cc0cd3714973f\nCT: 27bf7ffbf2c9733c3da8947db11ac8801475451b0a65c96a2a3934bf45ff54fd5fb21ff0d51c83ddf0f49b005d424620b04d0c731cb214f4beb6d353a6d6b7bf1a706b070faf5146b562c9f4e6c0ba5dc9ef9ccde79cd162bcdd887dc02bc95e29dd606d22845f35d0cd6d5eb1f1b154607c0c5c2e8c7dac005eeb17c238e3d4d1e1caab72b20a9d7b2676e6491eb84e9cab903bb0c05751a33642e145de8391ca9e598ffe2e579486ce32d5d76a35d440836ede088267e8cecf4b660fc5eaf05f68872b6cd9427607b146e15fae406ae7089ae446cc2172b8ac9e42cbc27d4e5ee38c21d3fd6d4d52b2d43462756d93995b9333a079dc1f2bea9ac4248c448d932c5c0f6b76da4698d15a64f761a7380b\nTAG: 7efb02056e18e98960cc5718edd07cb2\n\nKEY: 1b6e0ebc443d681af25ee26a8ed475136ed8bfaeaa8315a4cd198961518c7bc7\nNONCE: b15c68437005a4973a068187\nIN: 38adcaa250949af910aeb807096595b3af54bacbedd966f83f784f651f7a2044461a94f1a6925e6d2064e72319dae75d3883a50afb6be1395d429f24029dc9b8cc021f15e305e5418d844aa4a89ddd299bf2e8c698a8f6a6cf0165c37bcf2e5885d73bb81ca15a33ea75da5946678dfcd546d475149dd1a2dab0e11cc8b07c0b06105a497b1fdb1a720b9510d7d8819b6d946dd85c73be515c6ec00a10a69661c59fcd7a005dd08f3cad722bf3560f356c624404f3be55a02b3301ed756f557a51593ba90d18a1c13e227c8d5180fefdde4957484dcb81d08ee3331a6fa74c9c549ae13b2dc2a80ca0435710eb9f0dc2c908d896957b87325180d397c37ea7cf65db45960c4d791bf8cf798bd7626b13bc5e6b45b45be1a8ff687572ece86d1f5361\nAD: abaedc1a7f9d9ff8003bca97af7dcc42b4399f9da4a0e7e829c0e12f4d41607303f60d1df5949fca0dd9ef171678e013b88789ac1f51a8160687d842c273a2dda93c5fba1eb5bed7476ba96a12e70cabba43d509b311e9d000212c81c483b7e9e7bae1d9869a125558b2c7ef8f838bdfe97af413b460bd9dc5e372afcb105832ee4c406d74781d3e9f2aa581ba4fe458989a\nCT: 92aa5661d04af60245f6f56153cd86c6a61d5584473979eef596d6d0c205db9e4d928ba4827dbb08d5b34946b8f3e58ff62a976461ea5639fe2ee79839f99f83cde00e3fa3258e21754fa91a17e0d1fa22cc76fbce0bebb7adad09f99bd12e70e519048d96c1f97a183d8ae66445e63a4a1f936821fa7b58f569a16e25a0d0b202231a79eca0e8a2ed21755f496d8b7a9f59f6bfcf47ee4bf35788935cfb1b5ec2af2ce11c002b2843090e2267d5fc5e26f927e8836d6a97dea2a7e508f82a4cb7df375110217f88f4376782626039af166b080e181d8a310ea7fbb4fb11d5b24367f63ae83475269281aa09b7bd259a348fca28f2e1d7938127c888c68bad2608f89a2440add0c644de2b5f08d3477641675cdb428393758317c273536942caad42\nTAG: 4a43c15d469378383e9a9a26dca7083a\n\nKEY: 03679744edb73ba31c7d9d37920d4d57a766104afc9c96650e5a602ba885d207\nNONCE: 8f1c67d44d6e86eff0c96a14\nIN: 6bad3420c7dd0c64d800ea5ab7ff472d0f61bdf2e5634e06cb4f3c022dff8c4b46f2a47fdca2d04572b67f24125c66a551a1f150a02f635e1e99895807efa8001f46388365c48e4afe49c04f6681510f7e4cdfa02deb3e60eed745cf6d7ca6b773e1537d057a043cf517e5388dbbc44ff4bd68d2a7243587f8929ef07df5d001a6099bebedf8f26f49323209496d50109c383071e4a61ce18f495d98b6c4bcffd0fc2496b7eb0ba612e2a4cca8eee2a3daa0c21d854d49ca73cf5b24b38940dc2b44a2a6623e8404fc30c4e3aaf759425ebff85cb1c661744adf34c6c5d538f3210dcd0270a3d12784effc48734b53c1a228db291e2e5573b6ba2aed0a7296c1bbfdd1f4a86d6057d5534675a3f4897fe3a1200c54af7e09b97b0a2ab9f25d5ed375e7bac921f28f7b6983a41580362dcf0820\nAD: a2dfe82989ccf0a998286623617453722bea0b6e8fba504b93cd043c7e6c7cccfbccea43f7e87502026f94cc7035c5e84cc14a5fef9bf2be53dc379053725a9a29c4e86252369bf6dfd3cf2801af7447fd0529e94beba961ed65dcfd492398123faa55346edfc3ecff720966b74fd0ff28f443ca67f88b8f5a4a73007f79ef782bef601a0827888c4c74f7777279c625de8a4b51db94f94f846474\nCT: d64a6980718a5fe833da2e6c1a119f2f16a5bf3cc5089168520603d37998d5fab07a9e18ebdc0b8417cb6a4d34357f8d598753affd51e93b451269dc24354d197885ce9a3b2f575fdc9c572b05bd7bc8df091a6675185ac15bd1c4f2cc0a8a412ff72baa6fbe95065bf2111910f4f004f6c39cd8e7ff5bab5f86abdb231406763233354734807fe0346ff6ad23a1c9c81b9942b370e02bd79eacf703ebcd53a54a5782f13ad3591801d1ece15c6deb56bb5e32d959ed1363875c57cd9d42881dc1799e652bd554059ce059a9d00a126de35f0285d5d82bfdc383b1b37d77cc1180184b2180aa35d46f816fcf125c9e8e3bbdd67c8770da26b89c7e406f02ec515edca3910de72fc76ddad8344ae36fec1d72315e1a568ee69a08154696e4545ec5ca53b3c0f5ec9cfe82792380c1b9a151a8d6\nTAG: a258557d32e1924b3eafceb7b73e43d2\n\nKEY: f8563001339afb3db339ab997cd1eb1eb7b03b228162a480e129c66ad47dbd18\nNONCE: b4c98f6d51fee205805a50c1\nIN: 63beb176b754366e13c57c18433228a81089be18b534ee5f9567d529c802d34bbca36807bf845a9d14dd141c5de85607a4b4c5521e5aa717f78fe78612b770a4677cacd77a425e2496ae50ab2e559526c37ea723f2b8d14bd8314e4cc3727bfb835ea4062e87870b13d94d52c25f0c631668292f184fc048dfeed7a9d1a88cc5c4662030700cd8c257784009b4da9039909f73840b600eaf670cd4d988845b1d41cfeeb1ea740db129c12f66a74e6234ebccf4df706ed30fc736cb5cc0db17ed108229e87d6b039da5c4f0568a4cbef9d513dfbc0af9313f02d5129cf616487934f741a0a60bf11fdc8d29ec81eb37577726f54f3e35bb10ef98b1d15bd5726fe501a9249e409eccae128df61762447962ba2a63f30b59ea25e18895d2fd11431606caf6b45b908b08cf2e150c031e20e6cc649699fed5785cfc6a0e22bd8bd8c6d25221\nAD: e9c9a8d2869d236388fdcdcff990cc940ddefd06da0524a351ae6113b29db9822adf9cb548d92f23e3951ae8522ab113579232e58578e80bd2fe3e1d06414a27ce0ae2e40d87745a8991dd5bd2e8ecbcad8b903195c15ac2eaf9bfe0104bae32f772a7d7416c5671350524419a6df6ed5e1df32b961ea39b164eb7e1353b046100998ba6853674ebd5ba011691a270c046096143daa84752f872e1ae32ac07c4f0d2a048\nCT: 2ac34bf9d0d909a32322cbfb765875297c50110ad859857c641ffba8efd60ca003b8f32d157b6fd8fcfb1c6037b13285be884ae2dbcbc9194e8757560807a14b2219b9f2dac11af7dbbb2f504e3d8ad47ff73657a4d1283c78bcd", @@ -653,9 +733,9 @@ static const char *kData13[] = { "613c3be18aab77c708f5e91af8006e11b6ddebb8b0ef98c06dc3c97d008e058bf3e534582c24a1485f68214cdd88167814802c89d5c07a7453aff1010d6db0b778d9d8fc64b5bf3bb84cb97cef38a4b30a7deee12f0af806833c8c6d35a7f995b414eb0d9a900e3e56afaf2dd0d162063c4dd52bc6ffa56cfece2ed90bc7c9f4276459c9bd128ee40a5aa514de786ec15d04a16adddd64c7613ec9eed738fd36e24fbcbdcd0d3318fab948f47314a5400d71c5ee07a8c1fa17e4a4c08f4a467291cec1e8266342a42646d138331b08498f2dc3fda0374ef736d05c2a363fe08dc71ec799f0256ac9114743f40641ed8d9a039c57cd409bff29bde518657cb305a875cc6c0a58fe9ea3452df3e3802cf316a0c1f477179f6cdcb39c7c9424c07997500989a600887dd9f04c92226df10e9a8301818a5ec2f0b7b06b6d1443dec46f478a9271498b956b72060dd2b3021b004358b\nAD: 7eb6a083ff2facc3e9500278352790ccb6f9df67dccf7a03c33a34c6f33c1b4dc4ced2d5f69e5f68e79c582bf0db7751b774019d9399329f1a6692c5c527a646c9bb866e69d4f1ba4e6065cf0c5b09e941c5bb6e96d7edcb19a5cc02411507701b65987dc206ffbfaba4f06cf394976bdde1ac343e368ec1083813417cd0a325aa0e88913958974fcc911478a460b79b9978e33b21064ffdc1fc4df1e314948df71af9a6e0a40907e6b35ec6304bcaada85b456298637b6fa582ef331e2815fef135dcb66870107b2149c5aaa790f7127c0f0819b83bec46c0f6d30edb61b6fdf4f35f4b5345f1c684f41eed8088aa2f1d42c920a06092058e7c225d10fe1e5befb4dc593badee754fa12b843a6e9f67ea0e0616eaca697b22f526fb79a2ec259076971185678aaebc6449ba3bd284230ee621bc02ef1f5ff23651a6116cbb7770ec7385a44f4d54e7cb04aecd59a99660a1021eb6abb5d2cffd76e6e7380c22d0224e499e0c7b69aa0e7dd6deb47b22b1f1fb882dc35eb944a495fc3f6345b08da8f7185c3be95952bd7c982d9c8b2410a1cf1f5164961f6d1db6160d252e631f77b02d4e23dcd655e7e875b9b703fd27c57008184772c73fb5dc626ba43f54cbdc2937de7b4c470235098cb0a3e699baaa8e2adc09f8182ae1f168aa86a790688795003c3598293ca269a944\nCT: ac837bdf77bb97a1bac4cdde49ef8d6c7024f5f25a7bdcf924fa87b0c77ddd66bdb67c9b8798922f5378c0405be67d5da47f7c245c5f7330accaf74d5bec6a8667c911384d9c77e9d3ca38d88bf87deaca62b58d092bbabe64895b944fa9f6bca0aa17a55031fa19ab0c324948816c57f67adf84077b277e71a7db9a6ac537a95e54d3cd4c9517bcdb7e9e1ccc8e7dc252c27c89b9c20c9876ce7c01b17b80a05c6f75006cdd1e081ade6f9353c66f7113613a5f72d82dd28a65efb74d0d1c92793d652edf23bf7c70f6dcfd5d40b2799b60c2a6fb53beb02571c78001381fc97d4a9292a0eb7a4a0a67cdf20b4810aebe5aa4a6d20fc30e2971924a09f106d0b5b7fcf181321b6f8442f91fb7ff3b5610353500b9d6f8a36301e7cb12d94d1aab6ec0f797fdb57232c02d5fb4b2ffc7d0cd2336ff96a4a811cd1aa02248f4a48c7646591507f9e02f8f441cacee92b5bb3cfcb7a5dbb02993d0fb1818e0ec4cb719a6b43d82e15ce576f95912ebeac7a7aa377a50d1190799b00a6da2fe7cd7231c3fecfd4e6913df0b46887ae8412cd2c9de49ad7a4e8f55e7f53239649b566c4940db50e0ba9a915acbdf0ed97905b0c70930d49c5c31cb398fa4f52222d3cdbd9374ae9d7d979991fa50a2cefeee88b3943578f99b9a46e58900378ef22880c862103ab7e0c2066685571b28c3407cfef5bc0c9b176be8dacf6130bbc44389aac32cd0011aaedcb752e16a1f99838030f7364c17441de87d5ec670a25a2b55a77a57f2304233b3d9d1f4c7b145e7e145eb8607f2d9b6159e954f14b02609830fe54ce1a7dab775b49d77a0ed503773c81e3c53f50e0cb676387dec6e506494ea7843fe533aa7f09dd1d4c960dca585a1590035a9c36cc9f821b4a8aaff6548fddce5250efc4211b0ad0ad4dbc3dc5038218e58851da4848f399f8d7938da211484139000dbf8b6c6314312586311ca1d8639fcdbb20b6a6a608c23027eb46938cd6bb869ea2d3b327728f31012de124a9b57dc96d5d98154b98045943a24e4f788e48bbcf0dc20598fb91627f09495c8fd5bce762b1193fdcf9c45174005d589ba6ad971b5d7ee13e1aab89447a14f9d750621184cdf55ef4ac2f7fedd7b8fe89e0fefb4382ea18cc4feb62e9650e9ba5a12f9366584ec774f5aa09793293b558293991de7fd1793bc44341a5b59cdb45095d5b53a4b847512dd2ea621f9778b4c0f33cb7bdbee1061505f08f1f2919cafc5d6e45206cc35e89e1d366b7abfff3da64f6cfc0d0b855bf5d425a85d93ecb01186697f60a7a47870ee2a6a50cdf134a67a51565d28974dbaa9c62ffc960b70fcdadf79dc489741095ef3052df69c55b99c95a44728d30e267a02922c7a6ef2523ec379239a5148eef6\nTAG: 09a43ea9d67cec2b3f35d401141af9a8\n\nKEY: 94f159c5d19a22469924c5fbfd198b8add28b37cf7bc3258fb4b906f2ecd672f\nNONCE: 4fe1fd1359a4332402251d90\nIN: b2e081fc4457b3387c1033affd15747b79dad1d6d3b69c076d4dc5c209ba1cdd383a5196fc21fbc49fc65c69b85ec299b1daa26a4bd2e5ec2559cb230b21c3bb62e2831830a2b86da2abaa289d98eb04eaf3cf8d583ffc7291c3201df2c09b7d900a4bce0972e390fc980eb67cfe654ba3b9c579f997e319496b57819b36dd2b4484b88ea3cc1ba777b10ecaf526a08afd9e2b3b32b2bc02932af5d09c2ee3fdcfa18d6261808e418c4bb80be4315a5581d405841341bf2775d8d0adc21c10b9ffdc0ea4b22e22f61b46f844d8caeda0aeb7e1c3f84d337898af24fa68d60e2f19ff815713e1587e0d6e68d64cd088ed432c45637e1767913343d899b2f8c01bdb83253219878a5b3a4e6166e02387124e711a56e49da1893b4f72198c6339943262cdfccba33428009dff70a0c8c79af248d081ca04edb2ad4f35ed1819f0846dfade107c7e9f4094c014087c719517d943e524b86047d24aef8b901a7b1ec4e839400b717e758520cfc7a2dbced0ef491eef6aa2695b2ab9a92296b6e75251f124168c36a6555c4a465cf84a7b36f3277859dd5bb0f10f84cbc944b87e37b6b8ff6958bf1f0546839effd30995853c734a11c062414fe841113d0ae62597cd12ef80dbd4dc4f72e065171c8394e45dc6f87c86154e9846c1eb58f560b8c503848eacf05107c445a6a06420e67e2297a9975d23a406f8b8ee46d958d10d8724d90bb26e2b38be1c0e8258de3a09541826486ad28af8f2fa8c7befc95510589baf81a88f3823e87eaa8e40759cf0853547301de1e87b2eeccd76967bb364278174823c1cb1963f34fab537915031cead844dbb1c614eda56e9952b1eb4cb153d06c59c8da3b10af499b1c15ab0f03559fea13b81bd35fa5eb9a5431e12ab87c3c094861154d3d8eda448af7e15017103ad3dc7e9991b10cbe61cb33d2ff90121f4e40bd5d9e9c34b89679b6e1b54e38f00b128093af3e4ca9830a1a4d7a5e9db067c9c51fa26232945fa3e1e31e28c5000e1965cc7aa11a051305e68be9d60fb92f46eb2b701b3f959819f525ebefd5339bebfb64636d680a2a4f32afce85e287f8936bf62676c37ba810754186e30b812b1196e8661e345fb5b09b8dbe5f96e0010c5e3dd0a4e983149f4a058437cd46e3b32ca04c51ae3a4a39a7e15768a8fc379563450c616a5c7d7d98c46c0b934c894727532a9e713d330d294a2753f0f46049c88eed68711e9c49632144d5cb14d76848a6f7741d36c969edecdde52cbfb57a628678d31befa7ae3198343deae760d5c92c31f3c045b3e932e9051cd201d2dae66ca0368b94445d662acd6442c39eb945c8a4b46129a8cf5bbb2b27927729406f9b081695ce148a10226bc345c648fe557b7f8db4604fd0704831e5bdef6694afe716ddc3a8d69ccad4113\nAD: ebe1684346b493db264417cde9c0e48db46aed1984f72903e94b72cc2b2f151fec80b32523f96f61485f026d63734ff80015a1cad4b21ed1ba057627b387eaecdfc6d7a195b7d46e485bc137726d96c4ba51e1656c3f234174759ad922f3493077d65c149d1e871855490b6fa5924f6270cf15920838b66e3250a99ff7a55ecc9944cf3fd204081a61ce05bb989e5abeae4b2f24801e7f2223d5ce05c2b61f32344a0370c22751293bb898061ff50d6364ea0275bece795be21c9dc0b2749ff68a6d15896d4692474bd46fb256d1d012e45e7a58d880fba240ac6b89d2087da1ff7d41df44c768fee5bdf51f36b090bbf85e7ecb69f61312463eb0b4b1a04a153f593f8d43f62ac96f76e13ab5928147c5e63788bba4f076d12eb6dd15842e2c40fc9f1ad5dcb80bd95d9d41222953776b3304badd650afc783b7342196ab551a474579d95f826f53d15b96ac98a10c2c6d50a7b9b947cda9fb8d8d7dc7def72c5283a93112d2b58487a25debc9ca06946bb0a52a1e4ed3bcf0fb8decae49fa6607c55501f01b7441671f08c814023f7d46f4bc596d709d305ce320b1b0160bf35c8f17622c65b8e5c97b3fe7327e8e22384f6c400e551dd438d6d3d0f9ba6101abd1bc2486ba249b4cc83c47982c1210328968f2b28e4a7c4880d598d5b47aca2093965622ba7b4e4062c86d81070ecaad93d5e47ec\nCT: c5311b1a6e3d93da070ee0fc2c1007558db64bfdabdc23c832d151472513482314e7d9385918abe772970c7d8b3ae4eb0d12965e6d7f6d01f6c97d06b51d3be812dfb290592578713ed6342a690ac115c29d471826f37f7f7b46936ab9f431cc0e4029579036bc6311574205810fecd3a17ebccd0f15752152276d5169b48b0a4fa93613fde13997517956f84500edd7eac1082ab6b69bf43f56fb9046cefe8425140db5f6bd3bb201b3345b2138c7f42120a3009ccc19e2d95ddb2b4384205d2aecb47c89cb43fab6c353f781caafae280e93dff5bd213640c41cfcd81b9dfd1be05ce21758c5474c38bd24819e5d085241dd54c8d2cbb5b21a616e47c05d4c64c0f397fc16d52d008fe4e83c040a6304c41a448784fb0c54f8a66fb00b240b9d66e8db234d14534dcdd6b3ba78db0403cf0219406ca858fef6bcb259fb69c53c6f964f450bcd12997955d0190ccbb2d9ae6b3562d85dc7de2bf1bd5a8d49651fe5de73243d7f89ac8796387e0a04c74d5834e47afb6b7444df7d27592fbfdeca72428582703ae52aab48c1b587b12fad6c887e451a54ef81481e3d8b4da1e3fc09404a7c209db8c880c40b3fedc579fdf19f956bfb36d5b2d1affa0a3631681084ae4e41e3a0fed84e056bc72b6c0eb1f5449935f7c2d3de07a2a5fb65af65f91d2c1d730edb80b437cba66fea779449b68c557c5f8bc6a2581b6808a98a1acb9e6de414377f5b08fd5cfeb4806e8699e50236dc8100a88f4f55d887caaa6ae8ca09c23019126b62b5c3186b459c39ee397076c825b6e28ab62d8286743f9d07182cfc634eb4512ec3beb04ba81bc20294b16fb6d42301a74fa95f95510155a15eb953eaa51d82fc363c0c63d1cf401a3ccc0c577474f99f7c4f187316fb85e1db38dac1df4b5e7c710be5b5949dbb1925723d042944eac09dbfd74d7e876f5931f619bfba1ea9580bf4e", "6c2540fd68d5aa9cd21203ba207f0f62e325c1e054271933563063acb4d932eef201bf3312763dddf6992fbd128cb8fc8b7936acbe8712ad398c5a8719b9efbe0927b9f637f323c4bea80901091608ab76e483b5ef666560937705bff96d430e6e17b0b24c755de19bb88aa81077852c92a96e902d538b4e11b78a4b5d1f5669aacdfe5125d806a21c06ccf4980edee24e41b7e17672fed0ace9b19e4d55415d097f0b5874d60dbe311871abaf47220893c398d5595ee16275eecc6d15f39aa5e2181ad1448345406a4c77a34c3fac77b4c506cf393791d69e113270adf0393cad689a07056e388ea3bbd00ee5878e1120c869531a8b4745ca2debc1e008493d17bb3777992cfcaa165188b4801122af5422acfa0a1807a2a35e793ebdd95aa9e025edc065cf9ae85972a5f42da193cd9b653373a6e15d647b8d26207f3230e50bb49\nTAG: e2df8917d70683fb6e6ea67db55367b0\n\nKEY: e22480e24a29b2910b227930344f6a00916bb215e57e1f3155fa9437603fabc6\nNONCE: a4c6732e0887f40b5017de54\nIN: e46035c45b6ebf14c5088c5f15f552a4d233de7d3750d7736838a5cd4a7b41df1b71e6c5e6a7dc63519ec43bcb4fc603168352b8b8e261c15e76e73556aaffa32193c1f5641b2eab29497c80eb06543c1b0f1787bc616a4e6618f751dd0a2b28a87fcabf405e97efa91becc8ac1b036a2ca244e13dcbae589f0d6bf8e19bf91caff673f2a80de93a6fd5da1e63516e2760ca12a64c8175071de22b26ce72ff9e15e5c55fb253cae55a3f48c0b507bfd423f66ebdecd0b6227d0e67c4347f2a4819a6825dfc2651e97c1da629e92bed3827a15dec0f0c8743731baef8035fb0a790f49e5b2a7339485df313a9633496fd9e7a9904ec566bf20b8dbc0e3c1e4572411da7835b5eb5cd51313b78a1d6ed96bd9aff2fba37e86d475d95fd7e14c6fe8ab23645b15e7823b7bc9d0a02fbd9a43c05a6c660b6690891c4d055af21b50a5500d72c91695536eb1a3852caceae05803486c64535747df691ebc62e888bce8a5c820569b3d80edb4e29027e737fcdc4f49f6eae43b4bf68a5731fbd09778d6b205bd8b3ab4cf251ff31dd94f2033118ff0c4154c78af27570d12def873fcf4de7ccb6b6cc8924dc63f8104e9a3323ddd32006d8ec3aa530818e299490dfa0a9d811fb3bbb5f624f26dd7d0d7a87a7e7748af5ee4f4bbeb150ea4078b504aadaf92b8f9edfb701c6df7ca615416f61bd770d5fc6675db01394a26f585ffb8f86b254d0e08d0a0f5a499ef1b2bb0216e486229f5deb16d1e95332b8673652a86a6e3fa0e479987b2bdb1909fb772c6836d15cc57d97f29acf335ec1873c1bc6e714b689db855c8ba59289fe792d93774dd83313e3fdf11bfd6a40d6c8b57a5989e844cdf2fb38c239f6116c1c3aafb9356ad4b07ab37f7fb089cd424a8c1f19e5a13f085ec8cd74c3c9f0aefccd6fe5340eb1e419d15285b6b0d3b57a5545f6e28b75bf4795d995a20dc7a618f0f77a174e3eaafe221f8da0cb071473c507054243a7f9eee7d5c77b071602936fd5bc411e9923fc82016cf5345454285e9c1396696e05d984649a2955d7446a1d3966adda11bddbf3dbc11e093c15b7d4fa2a7a0c33fa28dd3242738d7a77775cbeb8176a6e9a4e4e58e03f631a67c3229d57302fe5967c7e3362ff926fd584edc32905a350b390391f7fc3343f22498bd198ad56cc2827926b0c4700cc352bb990876db7c17e2d32b5b0af617554a1f76c32b94cf7728e89bc208f22e986e7d2faef190f820918afa4e08cc46adf0704aab761cbb9791aa12eb31a7785d7716c3f0a46afbe2a44a52e5d0944fbe207ac78d54c407679814cc03d9c9ea28f1e518a10e0cf034d1ffa27b67c9f027d738e0a96a381571bb52afe2e983b34f9159f05d4ac9973d996c4612b7c60407a66925068fd98ba6b7742a219d8bed4ceb720a8541f4cd9eb990384f8f8698515ed3692\nAD: 8eb26d00d61388ca0f06d45cd697e36f11e25f618eaee0562dbba21d10abfd0bbfe232e6efca4947adfa7fc59de529652d11847d3cca84ad147f8905bfd0743be43cd21a9ece92d2d7397f74b1632ec2b1e398565e3f37039f1e147c061b51d59eb31bd16bf830b7824d1ec5e79441e5c5e5131062171467a037c350fd16f58854e3dfd9c1224d26fd600b006d4bcae123a7a9d4e98c47b9e9e3fdbc22abce09b3c24a5a060e371ee70110227c9a8b6049f194dc4f74cc97d01247d76b460774acf7c5d4a8fb4f01888e29ffc517839c234836cf513951435f226e635ff8b02b18225402b026566e951449023fcf7f6bc2285dac1b7dd83028697dac70927db01c22921f6a7a6304052e58c8e87819bbb75de9cbe6239cb1ae8fd4849eb4f48759aed59d5a0ec3108b3131b0b74a4f860e37d02e04b9501e5e3c306cb25820abc50cdfbb05f8e5e2d2b94c58190c5d950f804786fb2ef97eb013f6f049b38fc57561b9cdfce5ae30516050d13d0ad8c1d750b51a552520785a9dd03c68203d91e72e3bab17cd67989bd103532071676718e889b94ee12856547a6d0a6c88c236d7fc7b0d8f222592d00aad4e813f8c738bc10c0b1fbf23bdb2baa56b1047348ed172a15dffd0bab088e2b406f040ef81d3362d0f86d129fde70ffaf87ef3c4554fa43850d1816407b4d5b0459bc622414a2d9cf2809e60e467fde6ecb7f4d9\nCT: 98763c2423882eb5a1e9075920b2245f2243341f6dd2dceae7780aa738fab65c7d86f41dd4a64283752db5e86cecaed0ac1afe966171e94f2c30d63a93ff11343ce15ff3bf464d88a6912fbba42c08e6225cfaa63c6da17a6354a34362fda3d993920050dfb99c84a235726aa4cbd66260b0e5675bfe89078e33e76ef537d2071d5801758c6cf07557c0e8bfe0a49aa6e212d69617d1a22ff15a26ae28f4d724d6b537ed34af62672cc9d48836f284cbc7eaae8cd15b46b8e233c94bf3036713f2679e23e0bd829dde5b3a5d7a2d65193f55a45def3d52830cfb1ce3f8208c1425d8171a053ab076c2377f7c26b37970bc3c937db75181a47467b9735be331a0f30a7f3ae135a533153ecd0a5e0cc1568e303a6ba6065c0dca8162a33df7c5b69542938c88e2141e2aa697c48e72ec0573065e9d9a9945cfd070d45218f646e5cf0c0ba145ed1fc7b7cf96c64e3a4671eb6b51ac8eb79bf0b4abd56fffa2ad8a93c001e2baf0b65e257782d7b7e3a837cbae16d40183a8b629467f77f2c7f8640da57904ab75a642e99fe4b45ba7ee488f889b07ce7a4e74540c3e0e0e67f88d473509295a66e27d4ebda1d4d3313add2555477aebf7fb84edbfdba18afc6f04c4af6a90730518a8ce28c12ab90921c413bb822e63cae113e5254039cdcad2dbfecfd97c183679c6c4691c99ba771b1389384259b966f358f871343b4bc5f9a92d8f27588202ae1269658ed91bae33deec6a6a35b9fbc523cc11cbc15024f4dd386b8f41c3fc7097d717099e722e6243a13bc475d5f2b1b2569f14cae6710c8650bfd78520caeceb035f58adae811c0fe9857c8cec59a01123e5eb2774190943c2cc7d535af77ea1f79cdce94e23de21004c73fb8469c230e25fe245c8a5a6314736166a7fe4e1bb0f91ee8d60daa0e576b9b7c6b5957d4bd8d8b928d36aa46fbdf742dd602f9cda2ed1608255d6dc962cc6d3f270d6a42f5185b38e6f0085f39dd17260f0580b62d49cdb668e3e5f76d47dd1deaba0db5b315ed6deb62e6e4388a74ff21903d7bed3c3e87585675a608668bc031aa83e7546cee77bacf9d3f5cbcf00ca71d6f6c86751a5db0d7f7065324d33458b7fe66e2b63bf9d8b514006d14da70f0d64f171a7bc11b2fa5955b85090701260a13cb52b930681e10e9daf89bdffacb9c13b9b60319e3be0ed29f7b7d4723ac5af888375c9e23bc97d3b189ec778eaefb3e4649d1b1ea96979c8f004064abefdfb3479e924dd974ff6478beb1034124b1cf27fc739872bd24bf257df2068475f0b144e61411481a48739e2691e535b64066acce2e0fee9c239c4015014dd38570b01646bbe97a389a3604312f06bcf7ae288790b73434288ba0c90d7015bc1bbcd5a0fe84564cd6a692df04d53716bb96d769074d758bf1199f716cfe5c4c542f9852435fc9675a80b4d\nTAG: 9f62d794a54433e79c71a5a5cc8d282e\n\n# Counter wrapping tests\nKEY: 0000000000000000000000000000000000000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: 000000000000000000000000000000004db923dc793ee6497c76dcc03a98e108\nAD:\nCT: f3f80f2cf0cb2dd9c5984fcda908456cc537703b5ba70324a6793a7bf218d3ea\nTAG: ffffffff000000000000000000000000\n\nKEY: 0000000000000000000000000000000000000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: eb3640277c7ffd1303c7a542d02d3e4c0000000000000000\nAD:\nCT: 18ce4f0b8cb4d0cac65fea8f79257b20888e53e72299e56d\nTAG: ffffffff000000000000000000000000\n", }; -static const size_t kLen14 = 64853; +static const size_t kLen15 = 64853; -static const char *kData14[] = { +static const char *kData15[] = { "# The AES-256-GCM test cases from cipher_tests.txt have been merged into this\n# file.\n\nKEY: e5ac4a32c67e425ac4b143c83c6f161312a97d88d634afdf9f4da5bd35223f01\nNONCE: 5bf11a0951f0bfc7ea5c9e58\nIN: \nAD: \nCT: \nTAG: d7cba289d6d19a5af45dc13857016bac\n\nKEY: 73ad7bbbbc640c845a150f67d058b279849370cd2c1f3c67c4dd6c869213e13a\nNONCE: a330a184fc245812f4820caa\nIN: f0535fe211\nAD: e91428be04\nCT: e9b8a896da\nTAG: 9115ed79f26a030c14947b3e454db9e7\n\nKEY: 80e2e561886eb2a953cf923aaac1653ed2db0111ee62e09cb20d9e2652bd3476\nNONCE: 5daf201589654da8884c3c68\nIN: 96669d2d3542a4d49c7c\nAD: e51e5bce7cbceb660399\nCT: 4521953e7d39497e4563\nTAG: 2083e3c0d84d663066bbe2961b08dcf7\n\nKEY: 881cca012ef9d6f1241b88e4364084d8c95470c6022e59b62732a1afcc02e657\nNONCE: 172ec639be736062bba5c32f\nIN: 8ed8ef4c09360ef70bb22c716554ef\nAD: 98c115f2c3bbe22e3a0c562e8e67ff\nCT: 06a761987a7eb0e57a31979043747d\nTAG: cf07239b9d40a759e0f4f8ef088f016a\n\nKEY: a6efd2e2b0056d0f955e008ca88ca59fb21a8f5fc0e9aa6d730fbfc5a28b5f90\nNONCE: f6775dca7cd8674c16fdb4ee\nIN: 5dc495d949f4b2c8a709092b120ac8078cdfd104\nAD: 86a597f5e2c398fff963fcfe126eae1bc13f097f\nCT: 04416e23586ee364b1cf3fb75405f8ef28fddbde\nTAG: e7b9d5ecb2cf30162a28c8f645f62f87\n\nKEY: 8d6ed9a6d410989e3bd37874edb5a89f9ab355fa395967dcbbfa216ec9ce3f45\nNONCE: 55debbb289b9439eb47834ab\nIN: 52939c7416220822a77435a46687f134cebc70a2f1a4c33d37\nAD: 7790af913d84a04c1b72d4484ea2e09fdaa802d8b1733b8470\nCT: d7bddae8929ed6bbc9ac077e2415d9fbafae4a0432f8f7eb6b\nTAG: e6383b16ed9c32521dcaeef3a7b9b67f\n\nKEY: 525429d45a66b9d860c83860111cc65324ab91ff77938bbc30a654220bb3e526\nNONCE: 31535d82b9b46f5ad75a1629\nIN: 677eca74660499acf2e2fd6c7800fd6da2d0273a31906a691205b5765b85\nAD: 513bc218acee89848e73ab108401bfc4f9c2aa70310a4e543644c37dd2f3\nCT: f1e6032ee3ce224b2e8f17f91055c81a480398e07fd9366ad69d84dca712\nTAG: e39da5658f1d2994a529646d692c55d8\n\nKEY: 630b506aa4b15c555cf279dc4a7ee9add213219d2c68163ceaeda903fb892c30\nNONCE: 79eca200a5cdf92b28be5a7a\nIN: b12e6f1f8160cd65278c48f68ad53c8c82fd17c2c39bbb109f077c17fdcb8a0b3a5dbf\nAD: 46cb18593b3b26ba75e4cb20a252caef31d00be31093d2369e93572a393d650c68313f\nCT: 9a9ad1f78b4d411afe450d2e46347a7df98f39daa4fd478b9ab6e6b417878bcd52743a\nTAG: 55453a003b021c8a247379cdc4fa6da6\n\nKEY: d10bb6641e9ba0a3f1b016317831ad4232f81c2137adac0940ecd7fa36de0563\nNONCE: 99c922d37c95ebeda8e81ae8\nIN: 8b9089df5bb048cebbe709cb61e178ec768515a0031288d95b7cc4dfffeb51b836e126a237ec50cc\nAD: f1cbf6c83493b2087d9f88e02121a114f45ed51817e46ffc0b66a783350eae89c6700db3f3be5f4a\nCT: 8a838c51a8ef8134481e9951033295ae686624aa4df72f869d140980347a5e69a6d7cb3d7119b303\nTAG: 9152bef766579a3e9a1e36abd7ebb64c\n\nKEY: ca665229adcc7554f1b1c8f50e7444c6d4059c525f9c0da1406ffb35d50cae97\nNONCE: 8e2df19123ce0ad41df416d4\nIN: 12365eaac86b270e9c61b3ae7702a6f3583ef4accb80a98454c56e34e2ab97d8afa23ddee34e7e3a522497f985\nAD: bf539d8e9e3a02f3e5834970e7efd40cc7cb340a075041428d6a69ed9fa5105e4bc63720be9a7040ce5b4af6e1\nCT: 96027efdcd4433df8e7f6181c05be365cdce550b09d45cfc96fe258eab6d55976a9306a0070c9589ef08cf7a42\nTAG: ec9fb5e79cdf8ad4c8a79c900975159d\n\nKEY: 5033338bf7526cca0425f4a620424662ebc58364c8d985d130e525fd1f598f3f\nNONCE: b40842b30758aa3eef7cda62\nIN: 69a62b8c5f9b81cebee3a9345f4e49ea089b0d9c1cc57b4ef707956d0287de83fcca6d8f5270a9393e00693075028189bda7\nAD: 3efe0ed6fbafa61070388abc59c0d06589309736b02418df5534c8c594d61a2afefbee17af8283d01634b6ca3e8e2aeadff8\nCT: d6184677a21978b6443d99d7de1fd01c6b6334cf01b7e7d58456267453f4de96708b62301172c8c87e970f91c5301e0ff61e\nTAG: f8ac7aef208712845d137b8b176c89f1\n\nKEY: f33c39140999a2cb69e43129cb5df18fffeb3513ec3560792e9909784daee43b\nNONCE: 70608463f1dfabb1fc4451e9\nIN: e2802c4d290468177fdb031a717345753cd7c3028ed07dea428db84e7c50c3eb7b24f7381a167b4ee31bf88dcaf5251fdb90ecbb74ac2f\nAD: 10a6f463dc59d4791b3c2b4c93cbe2dec579a154962cb2c4cc77664e8c2b106c574fe115fd43dad94b8b1bf2f74820e28435b4444b2b82\nCT: a27419a46037323c033d7cf2a716777fedc02a5ddd8bfbdbca82ffbdea3037bc1cc80df7c5e502b32276ae88ad6fd0f0cfe72604648812\nTAG: b1ae330d47fd399aaaa687e141e23fc7\n\nKEY: 2121056225a7b2316a93c4bfeb970486fa9c586c14ba8b40be5844a31e9449c0\nNONCE: b4b7d1e8fa7d0e2334c92315\nIN: 2038e2c6cdf5282f081292448f8febbb60a1520fa3771cbfef387f48c5915a1438ab709628e8d4c81623ddbc2f6f159c3c9a8922905c4994269898b8\nAD: b07f66508a39c4932b04c16172d6462d78273cd9463e52284bb73e3b8b8e7047bdf10c5ace1f903e5a5eacbf67c9351f82c74bda140df2fe0480c80a\nCT: 7b54618ae09b37ee72e51873c82cdd20b6dca37c334af89548f52f34df3a757e632cc0d453fc97270898eb50ce2f2a98c4cbd4cbb22a5b7c7564406b\nTAG: de3a9e2aab2439675c4f7f0b61216d5a\n\nKEY: efb15235bc91771aa32d51472877b0eb364de2f88766908eebc6e6b57a702099\nNONCE: 1a510b42dc20d1d0fb34fb52\nIN: 4eff604dd4bba67f143dab0728b8597e269d4e0ecb4ce80c9850afc645d96da239d9db360605bb4268d74e1fe3431a44242ae862fa2340c076db13315f615b85f0\nAD: e8dad34f727e77444a96cf06425640f1fc80fe3b01dafd1d91476140afe8204286d01b0ebdadc0270a3d218516ff5f08a69a7ba251ac325983caccbe0d9e1de359\nCT: 989fef0145e2fe93b9f99fd90123632d83d9df8f37d8e1f80dac329dbe0c214c2191009e31232538fec63a29665f0fc1c77dc86b2f5f2050b86b3ae48e85d63116\nTAG: 6816304faeb45da4e4772f5c35730f8a\n\nKEY: 998c22912d5687fc3faac262a902783fcb0c738520b5c4135a8dd2cdbd7b0dfb\nNONCE: eeb535c5bd6edfd696655b60\nIN: 1f6ae10d425923c882b7d2f556571acfc10333ec665b07bfad9f8948a3b8c5e5f163a4e99d4726da1a35359c657c848f327b7fd9b5f61987440ab12b9399db24715715a2d1c8\nAD: 9a3c76dbaeb69a6481a89318caeb6358267ef51a1a364a48387bf77526837c9c70afb6f105cd47d2b976dbda7d2b6bfea7b76b135810c53437472f7b80ffc8ce4dc95c7e5045\nCT: 87f4e2c80a4f15f92a8e94f468e70fe7f0e0f83c0a7799a1d465043d25210ac6f0f39a5e9765b4daca637864d1bcc090d2ef33ddfccded2d2dad61dab443b3cfcc683147c490\nTAG: 0744d928a5b5ec95f3087cc2623f0031\n\nKEY: e12effa8da2c90a5d35d257c07d1b467991bd5f75fecd7129aea4e26b9e27ff1\nNONCE: 4edd0b4cc349d37eb77f5576\nIN: 21dc87984edca46a629ed95ffb04471397da8806c525a781d9a71818422e344e4af577f38e7cdbc556d4766770a9a3c95bea59ad497fe0127816ec4dcecb6b999486719b0b86cdb2c9d09e\nAD: bc158e6570fb0a08d73367dba65b80a8c8e57ba6c7b99493ebdaef0424e18d8ab1f7c88670cf51c4d91b77eb9ce0f89a46ed1316141e4299ec6c3d6e712ec9e92d3db44640402aa4ac00ba\nCT: 07ab8c623d683ff83030392e2864edd4b8e3d296d60579a226a8d2aff6bc5af3c4598a18cc1e8d7db4ac8eb56a082af864ac52a324851dd29af51a0945cee4bf303ea111b9b627aabf5ff8\nTAG: 53e69b7be969c39560c016c6bc1aa4e1\n\nKEY: 3d9723c9235939df8647529b7e4a57b8536476d5b71b424e2c27ba4d0b82b0e8\nNONCE: 60163d2eb7822af7fad64c04\nIN: b44face0f45e4a8da19aa0c5cbe3aa960ed6b74fe3d3d9201f52523dfe7651756b2ce482e759c87bde4ec670a0e808fb4883e437c7cbcf2f6470352174327824200cb0897edc4def1736f51e229addaa\nAD: a4b2b7bf36a70a5246feee52c474058100bc618fb0e3d32e8c1f76153edec47fab3045dcc7eed9ca1886bb2593703c9ffb8883c45386d2f4e3fbb0b7c722d19f2eca94767174d9127450549e8993ae33\nCT: 66fa63ded066ac67bf218af7bc21169a875f4bd695f44fbdff906f0a9b8a067be721fd260571c53a8b51661c8d49fe178dcb28c31deb3fa71b096b387f9fc8f3657d280404c05d2b6443eba7e60b562e\nTAG: 59d5450872510c4bfb590d9497524331\n\nKEY: 75b0a20935c4a5e2126ac7420d632bfda8d41bc947c2402bed4759b6e617ff92\nNONCE: 0c3edf0dcd1125d7e263b897\nIN: 8edc98e70030e40bea1548f6f56b4561272be0c333f3b7ae53ff3e27c35a91b1aa42d39e6305ec4811e75931e5cae2261d88a6f7d6c5b05bfb48802264e9cac782411f1de579e29d464ba56840b126a3fad07f01c4\nAD: 7e35081ef652424da6304852243ce43ff711da17f7881d5e0433b1ad7535e755a8531b93d67ce99ffe66e59fbb24f6b42655524b39f2c84daa5cdacb5e7916266c05711a118b2128930b95de83ff1a67e53337474a\nCT: 858dc74dbec6fdbe4ef15a3596ff7201c8f4fcca765bf5452f678b1493a66ed9852a6fa174a73099acf951a35699f33289ec50625538c01eaa456dc658013a29e4d133b856eb969c1f221f99e11fadc98b0ee08243\nTAG: 3d8f17838c4fc69f04d7e2b76eebbc0b\n\nKEY: 7a3823191abcebadb7970d1b65c2a8dab8a908151737bd5400b3b6c0d59e3b08\nNONCE: e32eb00e5106097e2ef0e8ba\nIN: 220db5400dce604adee4cb698cdc02d2ca61622bbdeebe347b0bfef55cc45319b940f93773a9878725c5f55485d7a26363251b9ce0d3da1f8f6e34ad5329dc9f752ec7dc12b2d259ac89a8059085996a431a56cc2dc2400a26b4\nAD: a83b6dc78931cb7500eddcf77792e810c1edbd5f4e33f85018807a8539a3cace094fb794fa9ea058e82c830d42d5a6b3e22b7785698774aec5c73edd92731c51106a23c569c0c0fef18d13da1562a9a42aa435b243c4fbc9fe42\nCT: 5ce6ec0e1d67ced5a6aa46c909b9b8907b372be03331dd0940ceb6d87e928c14a1a1e8ef9096c9b63ab4cd93242ec7be7e38b80643f9c52e7e90ffa06b8f2d238fa63dcd97af74ae37802d124623b8a272e68ca18b3432b7c017\nTAG: e21c61d604253bc5b5d58283756b9eb3\n\nKEY: 53ff6d", "c0af3e89fc2de7370caa433f539d068609fcfed6400a5b9fda4c83e3aa\nNONCE: 91a824c5e023283959858062\nIN: fc23e07b4018460279f8392e86423ecfe465b25b60382f58995ef5fa1f9ca235e4bf87112554aa0e72836831d7b5f39125df11518b8aeb1809d804419beb05ae013482213012e4ce980ddd1c58e11608b775d12b450ecace83e678c69d2c5d\nAD: b3a1db2d467780480f166859e0e7aab212738b85e88237c2782496c9c503347de02f3dad6bfc671fda71a04ff1e4661767c11303daa0c36d944346d39e3e29ec63d695cdcd83b2b57181582c5ac692b13e4299ab5e86c59d09c2dc6194ebe9\nCT: 88af588ec33bdac2cc748a01ee3eec97e5bbfdf69de1d66176f42b66383bbffa8b185cdedc25b11a62237d334d68120fccfd68c2f9447b3b8e1f623f33f7f97ad8815d29bf11bc0c65641ba8fca4a087783f4694fb1d574450191825f84402\nTAG: 2c4973323e635a885f78ee106eddf19e\n\nKEY: ca2b4d335598f26d3d3607e62b9ef853d3543e741350f92f3050894721d3d450\nNONCE: 2431b5cee8c3ecec4caad278\nIN: 75e29e46350d1fa99403b1e5baa414e41a8e714910f313f8e850cf3076508ff650011af766b51283fbd5626166d775fd4b4cb7124d26d77b41eb17bf642bf67a34c1caf0fa9b43eec12103f864e56c5ccdc81b89c1a35e394362688d05dd94eda3d05dd2\nAD: 31c3ce532bc1bae65b5ced69449129b112019cc6078268b853dd17c41832ecae07f9c6b068ef6cba2b55f352904afd6096ff8432081aed408d9340c319fd8e2029c389b6e3a4bdc38853444c3f7be9385ff1ca27e59c43b542e99799bb4ce56b8e26d6c1\nCT: 90c13ec26d01b7b96bdd6816d3ee57df57efeabdb15ba602229ff71d71793fe8081eb1b462e8b2967bc4af96fd6dc72cee3d2b6495c7f04c9068b2ad0b073e11cd5999df541ad705c6315eefa8da49c5dbc258f7ba922908489c1ce672971c3bfb6e8482\nTAG: 3a7741a094be92b838850c32e4b06c6d\n\nKEY: 49fbbdb5ae21cd955be7f7603cb8563ea0b02b77a9ea14016baa5cffc55d20c9\nNONCE: c0a4463350506d2af9e35d8f\nIN: f31003aaf5d8fd6261c01c5bb1e7bf6af248e0be3cf8aac67ccaeb0b7468a40d98be526a8e4f692dd23763563e601915ebcb59ecbf03bf9c665c4c5313c318939a911888fd427d5297b9b2fd91dd33eb7ed38e2f0f6ab74ec263989cdd9915811a022d4a46ed35eef0\nAD: 17e01af2386531ce67d5bc3325d8f83b53a87b38f1c305f99c0798380a7e59d3ecddf33a5ad23a82e33f0fa34eb2438b17e958451439774ab642fafd3794f80a0ee1b9bc165f32df705a6175310670ba54af3a204e446db35170ab02670086c47a475c22d1f14cbe44\nCT: bd661836d1b74244baca62d7d1cb6717e17e2fb0bcbc8d36b3265a983d557c562b0be60708499d0e7e9626825bc049db79a0ef4d2393fef6024d849089455e55693fd4da3d910eac11496492a645e4376855732765e1b3580461a2a2533cebb482736ac928cba175bb\nTAG: 4596e3802109c899f27f6cfcbdceac5d\n\nKEY: 30d0e4f6425e38c92ac34dcaa06a815166f301289ca9cb0ed08156617d87bdf4\nNONCE: 525618ac9e317405c7d44367\nIN: 06f2204ca864dd3f7c9d0290f6fe3d0337eb9442cd5d2b586d1d5c30e58951fc2f4e99831ac7bca4356db4609a0428c482f2580b9e8cf5fd00d86d474fd88ac3b2413f44c1ff66e59e7538c090b2444396f02004ff636aca05ec40439f4e3f470a24916fa4033cb60127223addc1\nAD: 23c1a3e1083904f7226be7242027abb7af9d62f1115340cd4a57611be88303955cbcbeba44eab5488c80aed3e063c70cb7bbdd9ac289c8c8977868c3702be63d0358836838a97b31f6aee148f2b8615ad7c5dc0de7c48db7752e5f1ae8637f8c70335bbecf1313ae1b972ffb9442\nCT: afe3e71953bad46ad28113b7c8f2092fdebaeb81626bf94bd7e9dd59e000e8ba31c1ce7f728fe19dbbb42322e54aab278e3c29beb59b2d085e65cb8e54ea45d6a9fb1f561bac0bb74afe18cc8de51abf962c2fbc974c7ed54ccf2c063ff148b3e6cccdaa65cc89ab19fcd9cd0436\nTAG: e9f5edea1fdfc31cd5da693b50b72094\n\nKEY: 661309741227606892db13ab553070b456c5e421cca59087144873ae6d59e590\nNONCE: 9f07692c017e1391a981e70e\nIN: 40b5f8081b5dd173203e02e90a6c171fc41f804b2903ea18109edcf77c03dba687b47ca389c55389bd7b0ac59bfaefaf43b5f97065df6a5375c1fbb95d95cad589c2a45cd9e1e7960b1d13622440f7180aa565863b4f9dfe26ed336ff4318653e1a520bdb830e01db78a7e598f251834d0c9bb\nAD: e8540d084f24b80414af554f470048b29a5af8adb2f9d55c9759e5ff1595ca74884af67027324587131d90c77ca72b2d15b66564549ce93df7f667d0218a6e874848563a33886c6a0c5a9d00fa435dfabaa9053243b4c8c25779a4dbf79eb4b8530a7c7bf4263ea824713a90cee92dec78c449\nCT: d543f49e6cbe26f1d8a6e058769d5b16e6f8255a28b4d73ba2cbdf664bbc5ded73f9dea12a11b86b6a6acd578f685afabc232dbe9ff8431a5318ec7f0202959a310595b147353a7ca89c9d1fc2d2b92ea610cf6d9ad2716df2dfed70f5b74d498edab114058c22c96873a2a64abc254c82af46\nTAG: 31a8441886d0e4c6bfcd6d74f6a5ee5e\n\nKEY: a248b0d683973d205ef2d3f86468cf5a343d6ad7c5aaac0b9b6b2a412eed3552\nNONCE: 8f62ffac4027f4dfeacf3df2\nIN: c2d7d29256832def577392acb9fe4f249eb4859025ea55cc0c4a67806caba3e1cb81bc7f5717d94e1c91ff06607b23c238daafcb0fa96905616f02205b702508970fe3bfca87270ed1102a9ab96df57ebdcfd86ef6e9c4c4242b4febd82b0220b0d6f76d8c2d0fba33ca49279907f6bcf7e8401d1419ed58\nAD: c738cdbde6dc277ab81dae20fbbb4a50d71bcf0ac1ee0ec6a39747ccd87be40b1f0f2c37f2c6b32ea99722979fcfddd0ddc2e4ff34a2e6113b591cbfda317c6f4b021ad30325276f8d8dd78f757618b53297fec091f029f9b00850b35f3863a3801c882422b318b4a1bdd89002f928371ea05c6fabcb1792\nCT: 7a837df292ad2e58f21b89da43a74de411e1746556fe47db55a136757513bd249384bf67887a5c1f605e7f7e3057596e17039701ea351e5ccaf0fd4882559e87197144632977cf07cf9e86784a959fa7399476a4fd196d7c507fe3876d759e2b37bd37edb3c12b89716f29ddc8b64974263a1ec1b6364b0e\nTAG: 291098a2376a0faa5da6fb2606b4f2a4\n\nKEY: 80634a8baea1c4fe5dedb664c9b5d714422dd1726d642e60d15e02364195206e\nNONCE: 725ee5023ae08fece15d621a\nIN: 4d1d8855b4d155e77bd1bf34b3d049ef09b2b94f4e604306406b015a2d520e8772b084ed668b868e32c7563085f2a82e7d99219da549e507aff9515e45a045c7cd5292c0e09a3a38c769acfd0a11826b27d8bf05184971670200e79c49754debbfc57d9ebc661b25f22f241c4d143bd922f7b0981a48c6a63462cb5cfd\nAD: 12b3fa94a64454dc5b47433df1ce0a7dd5e8066d05b2433c6cbcb83087bb7d22d153a19c05aeb76141431c5f9801cb13531691655939c0c812611c6a30083ed3ec27e63e6868f186be559c48367a00b18085ffb8c7727638e833a7b907ff8465e3a01d654b52432767b18b855c05a9cfb5d4aabae19164f0dc2ca6346c\nCT: 6b01e934916823f391cd0d2829c224a12eeddc79f18351d2484ef6cb5d492ec9ec4d8c4bd3354f01d538bbd81327f6360a7d157feee64b539489bfdd1be4d7f724d2a6dfa1af91e4108dbfffd529afa71388b07e5079236644da289ae236100b2fbeda0c17bf2a01e76cd1f88081682c2d074223fb8a41d59e70a37870\nTAG: 55762e95d897a33c4c75106449112986\n\nKEY: 4f2edc967b11983f05ef5ee2a4364039ac02dbcccef3f3719913ae2719c8217c\nNONCE: 255f8209b0c67a6277bdb42e\nIN: f8217163bcaf77c1383089e396b271e22c517e8ccda244256cc39315fab7d0c291078d90e9b6e336992f015282caa1ec0ea858a179c9735b7a2f0d50f6f1eecaf3b9308772279ebb95f8aa53826e9dd60fb354de0c50c10001c98812b59d7c0f36daa1aecda6782ca36130fbb559363fe07704b0b91ea85be319ada027e47840c764\nAD: 1dc7065f1585384b88be47598ca484782716c78f49b3b6bf5d24a5b0d24fbd7831f18d77d80951d2c4fafb6f939d46362a69b558afadb3bb4d8aa27f7fcf3dd9624e1e075fce9bb239926d51ea9dff03619d64d5828103a414e360adcda8fd864fca55c21df86c76972c3765ab1d68ce89f708e7e5a3e06cd4de08573cf750c6f5f9\nCT: 6719849b7cea3f7f2a8e4de13d7a864d581b7c638f49fb06378a768d2034548179963c33f0ad099254c2edda9ef771daf5d299f58850033e2e449d7bc21ca3f7d3b7408429b596da615c8582886a6d8c1a9ba81fec4a41a38b7cbf1a80ee0ec8bd71451e727051fbf2a1d1e3c6ca98ee113e47650ba4fe80451e79b04abc8bb99a2a\nTAG: 2ac7f962553a8007de3369c7795bc876\n\nKEY: 51c5cf1f0c76ec96f4a5f9aa50a36185521f3ba259145ac6cb4da3cd12467696\nNONCE: c751e5e7e3d75874acfd2bfa\nIN: fcda42cd098b7936f4bebaa37d5850cb0fdd6526966b1b5734f23d5050ee44466627576e1144957929123198e40b64eaef74476870afecd7b70f7583208603a1b5247074c6c77e10b9bbd41a3d468ff41db89895b0e9ca95be77526ddb30d4c5eb0796ba97d7d5c56d0eece344dde3ebd7de586226c00da224b04e74d9abe832686797df067c52\nAD: 343ae5e73fd1da48dce92ba7b86d21de0a203ba8587536fbaf4646bc45051a7feb343e38916f6c4c75b65f940045e830857c7b62b34a44622a36b34268b8a397892ed3e4de5df3fa7384d4ca50202b5b0833f921349c877931f4b735cec45db6b95410c8042ba49c1a39870276e0165f09c73b14bdf7f36d19084f958695c7ad2cc56f0487eae9\nCT: 04192659d6a2f1b7be472372c8f969a7de388c97d37b4a89653593e48b630947d2160b569379698e94de49b21572ef0b4dd330487a8be814a84e959a1a8e3cf33dcc9f7464fd44814d0cd7ab85e4c01c9d015f42ce3723c8ef8c311222b0c78eb83d81696c217992be725faf27701b4922c6e6099442787ddde2b7572500a5320a4d0c787b786e\nTAG: 23c7a866574976dca8f401c4b5b58292\n\nKEY: 1cec3efc0311d623f34b6853b3dc97e470fa728cdfd65993d9d48fdc192b28e9\nNONCE: 320fe742ef171b7b8cb615cc\nIN: 722e503a97166a07974dcbf136fbaec6c03668fa52495b040383433ca59f6311103f2fc6a95ba4c925f8637167537321eff6949aa3051269fc094393a7b17d1ac8d29af052760835665b0ee89adda5dae7738656af9e8513c96e8a532a46ef34cd7430832d2be51c586a14e9aaec2458c1911bbc0f90b496737e838a12ff37d3db058bda9360d7d33e11629a\nAD: fd5ccf6b6948c3eb96543aa40f107fafe94e5206c326dd8900ea510c6b61d1bcf746151a75404e31406c8e991fbf6e660db7c18e243fd2608aa22dd7ca9de88f277037661ce6dea4ff0a86809dbfe1708cd47d3061a34657cad143e6577549c9944e08", "1f79c276300bb406378b26f349a91fa87de02a1405d712c516ae11b4bcf30ac9d56e677d03eb33e3be\nCT: 363c1d6b806a6d97e2fddf53b242378e1d2b818828863fbb3f856f7737d63998a84e02d6c91e1df5f5eb6cf89f7ef53e16d10ad52f82362292d3acafaa02c23be7da7616a8b8daf8ee3ae74ee1078742c4ddc3e5a110e510417b9f43fbcbb00e17af3301b2fbcb784fb0a05b66469e771fbd78114fce3c4352c42928bf5a0ecc49228a3c930b0790bde7ad7b\nTAG: 669482999be99149f9b723b60fec62d3\n\nKEY: d3465cdecaecbf25943b7bbf8084ccabc15474a4228c46cbe652a99be24a861b\nNONCE: 04fc836de3a1420b8e7136ca\nIN: 81e0e984ce0a4074a44524f93e375eabc650a847a42393f5c524c65523368d38a7e2b677fe08502dd3bc42311775016b5689c660cc0ca8cb33a09b89f3ed3d02fa0fb75ca5bf0dc3c27c546b369ab5e7731f93bc074d37ee50d6f8366f6c8a45f73ac92b05c4aa552ecc5266041dc122a0df69a36ad625a26edb57bfff43a84e527ea0d9d3cf076f8de9eda28eb09de3ff\nAD: e4adc14ac4bbf3ae7ec7d97f5c0e6090bf8127a75e8b70e9b86496a62a759dba5a4eef64a8c679c362785501260d29b58e1af647782564947950428dbf14edab8e6841c7afaf9e7949b560419c44bae30315c597f6f6e02204da7ec605a4d9a8753de1268bb0b1c84c972b4e7296da5c969781feeb35a44d2aef799ed228aa399ea04e21cf9f7d5600a2c07b047aa78388\nCT: d7995e7b610eede708526c05c584039d48b9b4356fc71b0c37ec2559309a688a7c69ac9655f94e178cd2311db58587863b0fbb990554dc9a6aa849571f945c61e5611ae7e1a96903be725a1aa75adc381b86e43fbc68a36f44e0e0cb8fe5c494caa91f758597b6ef3b80a879154cd8a7e5f570893b4f768105b24b58efb67c5f07c6db60e0f48eba9563f17d38aaf0847e\nTAG: cc3fe61642c2d7fcbd579048fdfb19ec\n\nKEY: 1a0dfe2a6bc6a69659c68942ad0858e1df905890f47dab728ab9c73f742f469f\nNONCE: f8f76b014116ba61392597de\nIN: d93eead436e835a061ca061e3a53c3f9c66c6f011b21682b8a6fed098bde2018a2462aa5ab542c69bfa2805612cf6146c9150888b9720db1dcd0f359c1fa3416df4cd225dd0b0d949e917adfb3e83bf5ba2b967d48908e6b6d8aabc545335014d951a67390d7b5c7cd7dcbcf66e4e3f02aa4e5e9cccaf73e75622bad006c63433d36cb1c6aa4aa253dd1b2eacac75c548aa6648ecf9d\nAD: 56ca2d5340629ca75de4e98921da352941559bd79f47ef0ab42d1d5857059352f96ee877f5458f090ca237e4eef5b08a53311c8dfd4c4582f18a93aaa8cf75080734cb2ea3389c9c74d2b04ead614eb54512ea93f0e3434e9a9366454b303a8129d6ce6cf96b1d6dd4f751311c736b517dcb50a6f6e0962c46637b4f5aaf0f34bff518cbd551a7aad3fa615708b17cf6d8fbc864f580\nCT: 8dc4d8483dc665b174ba32d6b6244da5f2a8fcc4b1865d662ec23057838b332a07ff073ecc893d413696f3fffc6dca5d107a5673f14abe8e0457a02e61138380d25e269686cbbd23cb7da3060f482f62bf80a40dcc2e711ecf5f7836ca14e456c4b73a48bef90749024393f5f8af01b73302e81bc37c4110dc26174702231d831cd14231905d2dd3f375cf2bef0425084d5b19f1039f\nTAG: 825e7b7e195f65c454ce9fdd637138c1\n\nKEY: 03cec87d0a947822493b5b67b918b5c6a6bbdebe45d016ec5cb6779c3ddfb35d\nNONCE: eb7d261a6b56a179c88e88ad\nIN: 2326102c58524326759ad399222c5b5a563cd01a29809d6aed4d49772a4723cfdf30c9f85f031063e838f543c201412d6f085a8f5435b0b2fe94659aaf70cf7bde99309239ed5b815b48342d4f81011f5aefe10ba105ac15601c64a91076c29c3cdafaa12bdd5706dd7305b48e923873cf06944b5027b210c59d79856f602bd6481980ea909152216756d77362c59d57673cedb91ee6f56a40061e\nAD: 4d0fbeb69c1869d2d23198ec49b3dc23149005a84aace7025293c3afb8cb2e38c167a822e25c2fdf667d3677f4e94ed6574529c987de506d26b7ffccf3b7a36d9adac48bca76084710338eeb5bfca9df1bf6b403e33e90761a0b3152afac333071a5ef4f54010b945d03b51f123865673e8877f41ca23359e60518f076cc64232b306bd858634417e92e546ede4ac6231635c9cfcf43aab1f8fc1e\nCT: 06746f993843901ce72f2fcd4af7d15e64b3102d2f9bec0fe72cdd0b97e43177a1a2238c9c1dfc3311f701196653249e767a73dbe819b660cee07a5f3bb8f25823875fb4b4d34a5a3a212d2e166311bbe11fb1d36f4e725c3b74054ed7fffb7082203ccb5e9d65873cb8a1ce28d5c6e2b6555c1a864a725e6c7d5555d37dcaf1d0884264be72d38cc4b65bc2f0d039d542c5055da56c57e084b804\nTAG: d36a4b6d2f592d4f0d347d906fc319cc\n\nKEY: 7f4b4bfa26719d9610c80ba3f474c43127f4aa3414fb070fc2f389e5219886e1\nNONCE: b144d4df961d4f1c25342d12\nIN: 638982b95d66ddb689b7b92e3adb683ac0ac19480148bac9db550be034cd18dbd10f2459c915e99c385cd8dc4dc6ec48b75f97e818030fc2d8fcdf66d66b80df64f0ca4af91bba83a74f3946b17af405bbbc6e216435641f5633ad3ee24c1a2ed1b39f649acce59ee56c282a3aebaee6e97f96b34cfc63d5b0482fec20d755f399dd5f61688fe55878713cc55d562c2d72236eb674a340d1a64932cdd8534a06\nAD: f2fe3d27bfc278cdcf16fffc541846d428b31534ec5cf51c30c8b6d988dc36cd6c0d41a4485a3f4469e92ea0fc7e694065bd8130c2854c95549630bd9cbaab2205f27a6efdc2c918c3be53f2d12f8f7cc8e6a81dc8be7cccd217be1fa2e6887cea7d637d2e2a390f50d2c5be10a32a9b380a400cddbdd40eac67f1fe9ba6033d4bfa88c563eaf57272c8a7052916cf4460f31ad026a0ac2588a45d082fbb5c0e\nCT: 0d4de3489e09c7239972b675063579e409acbb663bea76bee8fb3f7e8785158ebe1c26db9219a9b97ea29e74762999518613249c3a87fbcd0128f651e2db8e2167f10ab532eced3464b56bcaa09780e5ece18182a6e092477ad933bd8de015c80e67c6802257a97a647fe2b1e9ab6a76c1cbf7d905deeb824aba2a34095f84b276d55ff940d6ab788c16cd63d9b16e0908d718c851a3230b0a37257751df5a38\nTAG: 9f0a882d4456847f44c7287c8ff3ba04\n\nKEY: 9799ae8045d58250e4d9c3b0ccc8897a04b5b9fb164e54019dc58d7d77b65459\nNONCE: 0f20d002dbcd06528a23d5e0\nIN: 8f323018b1b636617c935791e1c8023f887da67974080af07378b533a7573424f1de9193c5d38f55e9af870f6c60ab49c80d7d1ad1f18f1a34893fd2892d49c315ee668c431f5f35e3f60ecfd534b4b09b64cc77cd16b0e1b8882872cd109a5ca377518e5b660d75052e9a4228e3935705b6bf6b4f4249346b7bf4afb891641a76621cd315cd75de391c898959be945ccca7a96073f2569f217617b08502f7d569bd2f80e0\nAD: 3f1e297bd91a276a4a4b613add617b0488414a57ede2ac75d10934e03be58ec518a418e98a4dbb39d2365889db7c5f389b2a16d8c702cf21b888a4cbf77b356df48a30298c825fb86128de45d7fa0e5f4b0b7bf82a2c4cad2470f33c231802263901fbda54a6edbf2df638716492157ec1407e7fc2eb6c663d9a215afbec3612778b8115e78a5fd68cf6ce66c12c0ca26e5c1f7ab079bc09c3bc7b673d21835671a13dd2a0\nCT: 9a5758dad7997a766db05d698b43fd491bdcec21352032cc023bcf10e136523219745a56f0360efee75a37de55da23cc7d8184a50ccebb110bcb960dcf6b25fe731e21f26290281d9c1c7715c4e6ff3dc0026cce52929163ba222f123d4f50e1d3cf67725fb4737f4010ee2b5b163ca6251c50efe05c5ab0b1ff57b97ffa24c98653f5c82690d40c791047a3d5e553a0142fa2f4346cfcd1c849a9647885c0daaac9efe222\nTAG: 5b85501a476217f100be680b2f5882cb\n\nKEY: a26c0e3864a7dd3b589d17a74a7c9c1f7e8f9adb4aafa0e75c083d10956b6bf6\nNONCE: b54a2a43ca3f84aef3824375\nIN: 6fd4ec60613646490791d82de30ded1a12e61fd270f1642d2221272dbb150ef63ef2604213e203b740dfc9c4bcdf722b3c85aa20abb1197949de710d7e8311956c8649524afc72a9bf5eddf0b284c7fc6d48a741b82c215a0dcd73bb8afd08d5532a6f7f99b5c6beb2ad793d6da53a81e6523b2240729924ddac996a723421f57125f928990daa7a55a5b6b53d7361d9728f66590d969659aacd9aa5c0ec627d991b55e9fd0bf9c3210f\nAD: d6d8b570eca29a48a4d408d5b27ec6aec291d70cfefcd02bbfe8d8ba8aeb6db770bfd723d2c3a4859f1992767d24e7b33e3e241874292af640e2bd22a5b77e0e9e1e0d5e485041cac41d4694ac929ae1fbc08e7591e1cef689028f5db26f95fc9e0868887fb9c635579fc6335757697f63b4f2b46664ae338eafdd827988c8f2ebad80ea9787871ed8d6b302d5dbf7e8019f2e139c59036cb5964a3701ec049b839e19e33e68b83539c8\nCT: 2420e09adb24098038b2750c946551a5f6a5bdf23b126947348ddb5e938b3fcb874b33fbac6407095e05ce62df999e7234cd2b4e413009c71d855b23993cd58c1e26ba0deed891dc88f099fdf852cec0aab45f488a90edd8feb6f4c837036945bd304edbf7a2737921a2f8c1b00a1daaf9e25b908a65a8f69963fc767bc975b5b7bcc215ce37009009dc90b5c7edb1a1174a10ad28f4c1d1a2241e7ffc215edef4f847ceedf7b64f2d15\nTAG: 20521b35310385ae66557740b435d204\n\nKEY: 53ef3dc7a10e435650dd20550cf3ec2b997afc8d9e79cca8f7062622afac3496\nNONCE: 257a205ed0f84016183f4613\nIN: 081e2769935f945419aa06fb5fa7d8412efd1f9b52a45863808022850836c1974d53d2b2c5c0cd420711a71e6d1a09e984366b8b677e6c61bbce8f3adf9f5a9fb5860887617a08c923171d681c4fbc6d569690f6a183d42b52a80ef0693862efd22bf83b7b4014a7008424c356b5022df1842309b3a4a2caee0fd3f4d3fc52a17d53959daccf8e0ca889578ee2905dd8c17d52e76712dc104344148e8184c82af8165ea8386f91de585b54fc8535c3\nAD: 5b73ae02bf4a70e57f5d48fbf45f85b8496ae8514c8aeb779c184f9cf823d8c1883c9e5a42b2c099d959c2298ace2d86c4479059256d6a4325e109fa4b6c4ce90f84a8228316e80aa86de9b5e111d88b2be447a29297b35ca90a8eb280d4c0fe92a1d593cb966cb0010bc06831efb0c72c1e222b031e900ef06ab8da542a5abe2870a0efbe92351d5915ab545b14900e41a27c5ca9d75d6277afafe7ae861131c2767eb314c0c3da5c264f8f2b4ac7\nCT: 20ecb6cda861b660656d692c626436227bd4ac17a9bc71f6c84a1917ef3b5a0f6ba370f00fa2e7f1bd5aa8d6c15032572090482c23e4ab7376ef1f4dfb77f79d5dc065792fe3476c9c37614e32f493e461981b519dd7d10234c2c69264ffe5be06a8e14c81022b652c8cfa24adcc7c7536a55a2fc41e9ffcd09e1c483541cba814eafd5e09e9e44477018a41b073e387c9257c07d97e40f0761fe295d015e1f2df5be65b13f34b6ef0fe1b109ad109\nTAG: c129ba4", @@ -665,9 +745,9 @@ static const char *kData14[] = { "2d59740c9b9d4b97075b874015251ad55483068b00f87502b18182b140db07c70a80fd884fd79b7b5fef1d307ca4db0ff046494443e1cae83478d275c31402035f1fc24e26214b78d9a4dac78d074150012f9fee810a121d87a16d8e1eec5700e9facba350029788480a259d9f30df1c2b8df7691629314391719853c0b68614134f6028865700b1fc4e7f34ff28f449c6abc3027f38d7a7f6d84b8f27f7cc5afa09478c809eec346bb58244ab42a3bef61a14ae7640d76591343983de9fe5f1b985ce56c9fcfb2e3f6220779ca6f92a6b8aa726573b38ed7663ebe4c85066ae3f488ea3309593fa41dba8efd2b8f44b9fa8f7a427823c1228093a3\nTAG: f1832022e06228c36181856325d4eb68\n\nKEY: 3828b138f72f8fe793d46c55ad413bab31a51e7a9093cdd10fddb4739e28e678\nNONCE: a60413c0ab529ccf3de58468\nIN: fec017c1c51da5ce9dcd8e84cdc03a43145b31edfd039c7c85d8811a2f58efe7a2d7590149a98cf0b5af82d3e0a325223bc9d5585ceb1afc4cdd96024be6c8064c2abac14f68e65de49e25e3e967500ce5b4504d00a9cbad1e86bbdcf65c01a7a92de27583b7b92122b6a4923b7192994a1edf00b75d14a982f92559dbc2d5e427a75ad29715375d90193ddbb39b9a52c1a23d75629c539e0a6ce822c7c08fc77dcd3adc357893215df4694673a16d34513de21217ce86897c8f0575d213ce0c66eb1d1985fe73dd86da3ab5e89df4243e1be9dd95af94f878995d02929ee42a062100d6d4d3884730f54593d5ff7b7ae53e03d4f0e10f6f4c3077206499ab7d4de1e825d532d0918f\nAD: e2b16ff2b6c73c9374704ffb4cdfe7bad9eeee32157f2eedf427f99c2cce80c5aa4d9145e85af0cb08e6ed477cbe79ee168ded5c0895f9f4f939c21916b3dd5c9d268b3aabdefb85d953bce9b70732fc9acf6c7b727f78d8c9aaca9e022d7cf0f95583e81744227d87fa34ae19de44d202ba01e3d03993f38c9b2fb00b54dfb677d67e6f5a15f46c29eb5597ae3d5384b37bbeca3f3d825e2b7cceaaeb36a8c1273062259608956dd0c79877cc460d0268de27355e34b9d8d1188c062ac5e10a73f2d70fd0636304b3de06cffeedd246e2db19b8b66785f9f9c62b8f0198f29d37a4ab5280f4aa0320559810f89a1618844d0ad5f3a4f5a0e834ab31e56798b7158217f834d372c36f\nCT: 88ea11ef6b6ee6fb0be77bcbf227e77508922550ef0d7534bf05668ae5fcab2f4defe643747716e7e000950e36c6cb24b79987389a150382c091d39ddf841b0a5e31d763d9c59753a3ef36a23b81f38e6e715357395ce715d30c14d6ab5b7454804ecf633daa39b6107f562fae6a646efb25c1119dd17955bb9e640105a21566345408f72f2acc8f2726a0be465551f9ae566da559fc0b92c36764c5ca20a18a316c02e606030a53450e7ae1146050a48a64c600d33cb84389b0bdac7ff45d3d1f2f669a6e365ef722d76d2fe9bef2df93c58bbdd6965e18111b5de0f4a62dbb874161bf8adfa61e9cdecd97b4fff668b3efeb3e32eeb929cf58d94ad8077c0a2ca79e80877c5d9329\nTAG: 9b47afc5816b7229213cd3c9135545ed\n\nKEY: 91ea63dc27d9d6bbc279ec6cecdce6c45ff0b247cfb8e26b6ab15f9b63b031a4\nNONCE: 80a134fac73eca30459d5964\nIN: a848e41c77ac8c733370435b5b6a9960af36031e96260d5703ce15b003606875a7901cd11e4571bf88dda29a627c0b98065a8b4e6d382852dfa4f47d86fa08e48ad8f5a98e55c305900b83200d44029f304abd21e0264115192a3fd7b0eb69b9f8ca7865b3be93f4ba5a28468fd7bbb584c32ae867f5146efbeb1412d3ac36c30cb308c327a6f207e30f561d6efe0a535446c693e14176e9e714ffb5a5b1075812909a362a6c4bbe18322e15690c2c9cf5a18e0120c11551cb7055b5aee97e7a56d7c24fdf1214641c8eacb196d74f3d96a7fbecdd4fe52dc7b6ead9041cafd5a3fdf91fd3614e63189b488d4d7c1ea3c6351d112a2223b29d390ac3ab7f09a60bbd3df6e0d606d902aa44244334\nAD: 47940a0694183b2fcb5e760c9ef6dbe4cbff6ccf33208337a981138f9d35c03f8adbd810e94636acaebef6791b531a65e99b03fc78e7eb48036615874e97cf762fa6ca5d880bb2c2f644f1aed70c667880f98834d501caa277cb8ef1095ff882e79c3a92ea8982abebf63ea9ed7e9a24d32cb81d5d98e891974e3d636a59e165984e00f05a040d33f07b39eccb924fb24780a422a6b2b7bddb5b316beddcf6fad20e4cee7d0141c2f7c4e4f759db8691dc7b8525ccbc3ee6071a2ead63e750d6d92dde7eb1303d5b1194702b6c3e0c2e6f9649e60eeddec9c1f71cf309af0672cd2ffcf94ba7e6c3d7cee020a224a9a956274d1d36ba16030e215d90a165756666eff066a8e51bf7d4babe8b7d8d\nCT: b90449af99327afb1124bb24f1c8b5cb878423b0370d5f7cd297b28cc4135ee77d6f1913a221cfeee119bafa873072bfa79e303fe377bbed05add41ce3a42ca4632b98f40a36227de1a9ba84d6176c01eca9d33d954d0ebdf4e40f136e0f6a56156fbb33b344a8a433941fd6e08774bd00075aedb0e396c2bc37d1250541248dbeb899e1b5170cdfeaf7b89995b049428bb277c501354f8cd48fb58f6f04f956dfd099c48778dbdbb4c95b7c9d6797cf6d3bcd1d00e88cea885ee4a10d94356509e148990a0e10dd89103a9d5c8434a7bdbed6c0ac1271e0709eba144abf3cf075c020e9f7835d5a98fb2439b399e377ae6e19fc5f32df9ddfb9e936190d3e9c62de99835249d1f32ca3f92ecd44\nTAG: 6ccaf7c142d86b83e4d0b4289b49c4d4\n\nKEY: 1344db082889367fd48c5f06bc39f9cb9e3ad4b92fa484ccf49418dd4caa2e19\nNONCE: c04a98e7e29326b5330818d4\nIN: b0e12e3122c1ebfdcadded5a45163a6208548e9bdf95cfd18ea504e5d2e97372e58dbfe460a57b724d38f3bc0ce02a54015779bcf127343474d7d4c1402d598bee56897203b903da5b819e2218bd0d1a2af11c542544f02c46969cd2bfac683b76a8de61698ccba63361a1a0b570adf69d24e9a7e466873c8c12e25e0bcead7828386179a4d65d5bbdb800eb52fc01b67498d7b5f9864270162158a8572eccf541b07833f001848672098c57708eb479855799567c318b1aa097efa70db0d8a8d36fe0ac22ebcc2870baacac690a79e07ab286acad9f7a877939cf2989cd6200eb86dfa7a41e969a3683ceacc7c97d1cd5487f13c439a9777a67770687657d38267a347a0b6d3aa3cf64e7f31017246e4369da\nAD: c96db14dbc2aa0ce3ac63794f75c7e78037dac6763282edb307821a7938de4baa3d2e35a8cfe0c8724c2a8d870d0a462ea157e15aacc69a3c881d9c819225ea8be479872d55e655c897936c95b9ab340820264567495fc5e4e3354f42b84e191b470ca9f4d8fc25d011bf9c9e73e1590e1bb919dd2f288b26935fbfb8c93e54331dc8edad5e1cc4aec103c2f3320d59870c1770319f105ee790b704ed655be423e63ab040f1153f41e7070ae3a0f34d217c4649c180c84814463902d99a9396f8c7c85a3a4c8ae2f01737649fae478a40fc72303a108822775e9c421f945cc0eea992730790a9aa0c0d014518dab371b52d30b5a560f34946a9344cfb8a19b09ee9b123bcb8f642780697508f04983b790dd2d\nCT: ffda075dbde7b874995230e1324f17894689baaa7f1354e26100befb546ea23dc74807818e43a3cee00ec1bbb95c82180489ae5f3a1c482dec28f96ecaf5ca4655ff7f33c814197cb1973cf02a0b720a5c44068d8ddff0789fc1e7f20ef408c1a438133fce4f7a3e8c85d95a381b94e949ce47a85895c4be7cbfad468e52a160dee34b8ddeef2ab280eaaed4990ecec790ac16de3c74aac6fe2d5e28ea2b66a921c894a3971cee4a2158054c3567e0d941f867ded5ed1d21d8ab090848fb3eddfb1559bf11815db52b8eed871cfc117980f297da79da31da32de3f162a03d95090d3329da3662df29e6ec9b236e0f7c1d7d957cfd54d5efc99c694b9dece989912388254798513d881e5943ce830729a8e2ddf\nTAG: 81c55fe9aa2de0d63efe3f74a3d8096f\n\nKEY: 31dbefe589b661af00a6fbad426e013f30f448c763f957bbcbaf9c09764f4a95\nNONCE: 147fe99bba0f606c57242314\nIN: 908bd801b70d85085dd480e1207a4a4b7ef179dac495a9befb16afe5adf7cb6f6d734882e6e96f587d38bfc080341dc8d5428a5fe3498b9d5faa497f60646bcb1155d2342f6b26381795daeb261d4ab1415f35c6c8ac9c8e90ea34823122df25c6ddae365cc66d92fc2fe2941f60895e00233b2e5968b01e2811c8c6f7a0a229f1c301a72715bd5c35234c1be81ef7d5cc2779e146314d3783a7aa72d87a8f107654b93cb66e3648c26fc9e4a2f0378fa178c586d096092f6a80e2e03708da72d6e4d7316c2384a522459a4ad369c82d192f6f695b0d90fcc47c6f86b8bbc6f2f4ea303aa64f5ce8b8710da62482147bcc29c8238116549256a7a011fd9c78bbb8c40e278740dc156c2cc99c3591fec2918cdeb5240fb428\nAD: 5a32d7044f003b2ffefffe5896933f4d8d64909fa03e321a1bdf063099b9f89752d72e877291d8da12340c5dd570d7d42984ffab5177824fc5483b4faf488504e6822e371dca9af541c6a97312b9cbf341b4198b0902cd2985ac10a8b5b5fe9691bb29a88344f863c980e4e871a72a8b74f92eef68c176e9d2ef037898ff567298e186af52ec62eb7429a8004ac46b945678b82859396d36d388ec3d67653aec35cf1da2684bbc6c78a5f9e3ce1b355af3b207f64e0fa73501c5d48a14638d0906c87eaa876debcf1a532c1475d80ed3d4b96458d2236eb9f67988863bc6d5c16b96b93d898683d248d7bc601b5035fc365481b89465e37a8f7dd64635e19a0282639cecde72c6b1638e0aa6e56f9c00d031cdadc59ce37e\nCT: aeab9db30a579ca54195e54a9e6c787f40100c6d12ceee35643f36ae45f618cc9bb66aa4c0fae0ec2686cb4101a5b23a46877460c7e020b38b0d8d1f533ecfa99df03d346bc854a578276d7d5685ad1fb03655683a64aae4159c9efa6781f053057e0811226c7c533967a94587f4025353b28cc3a2ce5763783b4c31e7818b8ad9195bc03be8f294f9f6ceac578f9d30b22b1f5a68d647d46cf6db4a9c3a8a5c06fa97c9efb4578f501ea96db1f40942e3f24c44a7e4070a6b931c39947d9692930b67767357015de51a39e46fff94b6019e4bc1ad9d216a571ba0dc88859c49d2c487ca657384e49b4d382d86a60c8d5195320909c4e82fc077a3b22bd4eccf0f067e66ec78eed642b2d16f0f304f60f1d9ba69e205c982\nTAG: 17ca09e3084504fc22e914ee28312c8e\n\nKEY: 0ecc44c9036961fba57c841ace4ca3c547c51d9f126567bf41626765cfcbd53b\nNONCE: aa98b6ddff7e4b2041f29d70\nIN: e49a2a5713f507bfa00c140dfbefc0c43e37bcb932e0741db03f0055da61cd837b6e2d8f99115d70750fb23685a17121b52e98a37c87204e0207729fd9219d11a48e57970d790338793cf329f7b239512a44dd4409fe9d157f92123dfc5cba24af106442644dedda87e1d9e95fd395f2f0ad8f7d27f313e6ce1a07d9845dec5ad732e6e4749b3a161527c8ce42331f5de1d700650072fb68e9c7645a0e0e529d0563d2727e3fb38ed341f74ef1ad95a0216a440e1384d0e7ef71cde38ce", "cdc9e2b2d563f19014c40c1f92ea0af3b4f6da9146d433ae85f647153db326a28ef6ea2e0ebac0cc1aff157067c7dba7cc4317d56920ee9deab5764368e7e5b3ce8bebd0fa129f869b15897c09659c53188bf8efb7b6ac7d265c9b85fe96166\nAD: df41db4ef5350d4afcaa88b4a577b3370b96699bbd73e59aeebca6ea856cf22694a9399ae7f97a3bec226d82f5598f8949dfb92530dcfe77770f066f2af988fba5543b8ba7655bc43f8dca032981a34a1beff695c6908169d475c55b2119fe5578623f68a9dd85b653656881b0db4006d3336fdfc784d1805e48ff478fdc196601f044c9d33fca3ddde2db0102f90fff0b370f520e00e3786c2a9b0b4a9a7ea6f9d866f77d870c8ef0f3a8bedef17949a32598512af665679dfbe71e1c3efc3dee8f5d4499e20dc63281191751f67e51f201973a6675896484527d66bed94d6aaceff65fbc4192cec19452b8873f22d72bf2f4981fe656285cb24be5c58e77dafd3e096166b230f18d3f4197fe16f6ec84c060ce0793ae6848311a18b7\nCT: b15b2bc4b9e8ecc5d9c4a6359a805b7590bdb4bfaa9b3fc4d7676d721edc4b3b1ef71b18a3d78f1b31a477cf25e55b278eb3ed774805ae8e5a2a0204f7291d9587663c4d8b1b744154f3b7cef796e0b91590161f3bde82f1d8139cb8d017606ae6d0552ba144788fd8caf435ab09a43a1f4057776af49bad98fc35cefefb159cfebfed76f2e4d18b7be143677ff8b3d6e2b440fe68475b5a1193bcd19ab157d0d2257f33de8e50091ea3388648c3410aa68c830566a0413d92454e4eff433c3edc74e8f7516ec17b2c01cf57a2d7c48db97b706b8d7da0b68051f2d6a87c417f46cf217a48611980890f669d39b478c35d834ed2c79299df2381a1215d6db303cb63e2795fe517649874226e0a6dbfe2c86370b9fbdd8c5de349bfa25f\nTAG: 7082c7ef72c82d23e0ba524132acd208\n\nKEY: c05dc14b5def43f2e8f86c3008ef44e4dc6513768812e9218b2b216818c4cec6\nNONCE: 5cfe0dca6e599ed9aa89ba97\nIN: 8a06e2997b8e5f8040b22e07978c83c48d0f90bd2b2f8b426b43feea0b614d3b0681745ea4224cabcaa25ca45c3053a6300c47ffa4f72e838db135ae35c27939aad4cf7f75fb61daa3148d869057598e4e8b44c6fb19b0d9281e18676d8bc137489bb77a51a3a8f807a896d558f00040e8729ea9bbdc7db6102c8b99c8a1eacb0735577bc6533cd1d8147013935b6344116090a1bdef1f2e38a877a50c8fc0f394bafede31375c57476ba06d95ae734e6dae771a32e5091dff71d845c5f7385b9b9069ced12fcfea34a510880b088bb0016e94a5932c89baee038cbafbf06b3d09426afd2d5dd5e392636362e9ffa9186b5c753eb84f82f68fb1286ed06c58a5a936cad018ebc4269037b49f2ea0349373adea99f06062e5dbb0bf94f2883f5c0556\nAD: f2a3f7af8ea984bbd85953f14202c6e478f98d0bcaacd414329ec480d0c29fb4c1a052d3228c883928448f0bef12cee5b69829b4a3eb4680084131867cfc3d3af84fcc0d80c2292d3fe02405634f6cfb20b0fb90345da3a557fb30582175c32e432be66ad096f9425ff4060df54d6741fd6567a1e2fc5f6f3ed95cefc806ff64ae91ae82920b5c829ea026f83fd90d760e240da3c9ddaafe4d08507f4af1049056dc6d09657779a3dbd889d851e97d4ac60dc66df2d24979ba8947a7890a304bb301d0d42b67824e0c68fc882e90cb6deee50c2e3d9f0da59ab23c997b05635a0d56c71fc39aa0e6b19c43a7fe12d4e4145453cd7fbd8a3f33bf5451addf05052df7ef044a33513bc5f1a4cfc8b68015664bb5c8e4bf54a85efff109ee96af75d4a5\nCT: 2cf630548d6f2b449057c7861920308958199f77b123a142c6b7c89c4982f4ed0efa2fe899914ddbf4543e70865a5e683b0721d6c8443df2e697acf31e11c8809aba94196409020a7c64d396fe136826455aec973af23a6c7733cb567f5ea550e50e0b796623a97807d042855568e3c568990cfc818c31a1bf415337f43e9baed57fada2fb2ad3c3543f2b7f2777e03f84040c1c854c310ab1cc5dc7f2a5fb213af79ac068b46c7d9475bea126adf079e2100bb57904a931faf248e0f7d5832ca83ea8a283e0136979737132afb1f4ab38d307ac0774814f4d5ecdc4aad79185c05f8a706f579b78f2c1c7004cb38e6cd22c2080735b34c3f6134955ed3bc36b1ad5c8e33209c9f3c658fb07b59b6002b2526cd8d853a5c624b7108573d7df60c827\nTAG: 3dcdabcd1c82002a551cea41921570e5\n\nKEY: b33f449deccc2ef0d7616f22b4a00fcd84c51a8383782f66f1696bc6405005ee\nNONCE: 6afa8baf923f986b5779ac6a\nIN: b0af85a6deae5fcaa94778bce015ce2da7400ab768f3e114cc1b645fb2716789e2aeb96894fda6da5bc24fcf2466124720d6ba99e5475d77e5bcf2c2f8c8e5becf5eb73ad650861bbdeb51ba5ee789c227478934200fc18f36e4fe392c99d4c3fe0b38b40d2e84f831b8ef9bce9ac1362c755943521ecf5b5cf8fbcdf08f2d47ff7cd62838597dd342695a1b037bcede69500bf70bf1edbb40a17b44695bd8ff8bc8664b3211a6bbfdcbd1bffbfb1a2ea0141cfbc6ac841c803b137be5eeb2666c46c09cc1c4fa82be43bfd56e7a2b8ceeecb6efc1933a90213a0e1bc7aca2af35f2d1dad5f0d9002561064a699f1ce76c39d9c2224ae596e88a1517e19c2115370768d50107f3f2a55051838ae5897acf2ac0814ccd864eee2f6b5d7a6728c6ac6e6a57327102\nAD: 2134f74e882a44e457c38b6580cd58ce20e81267baeb4a9d50c41ababc2a91ddf300c39963643d3c0797b628c75a5fc39c058d319e7d6deb836334dbe8e1fe3cc5704b90c712e1fb60a3c8b58d474a73d65fae886394f8b2c029e420b923f2af4d54c9de3c7fa2bccaa1e96664ccf681cacbbf9845069a4bfd6c135c4392d7d6be338eca414e3a45f50510718e2a5a3e5815eafa0c50172cf5f147510645d2269929843bbbab682deb5823d4cdf42bd250bdbd20c43e2919d7a6e48973f43a4cab73454b97cdca96721ebd83b6dbaaec7e12cf0dae678a57c431b81421657037dd47dccbee73a41f56495fd7c25c75744fe8f55cbd1eac4a174d8f7dd6f6ba57b3e53449a9ce7806517e3e07cf6546a0fa62c7b1fa244d42eee64a3182461792edb628e567b23a\nCT: 0fe35823610ea698aeb5b571f3ebbaf0ac3586ecb3b24fcc7c56943d4426f7fdf4e4a53fb430751456d41551f8e5502faa0e1ac5f452b27b13c1dc63e9231c6b192f8dd2978300293298acb6293459d3204429e374881085d49ed6ad76f1d85e3f6dd5455a7a5a9d7127386a30f80658395dc8eb158e5ca052a7137feef28aa247e176cceb9c031f73fb8d48139e3bdb30e2e19627f7fc3501a6d6287e2fb89ad184cefa1774585aa663586f289c778462eee3cd88071140274770e4ed98b9b83cd4fa659fcdd2d1fde7e58333c6cf7f83fe285b97ad8f276a375fafa15f88e6167f5f2bfb95af1aefee80b0620a9bc09402ab79036e716f0c8d518ae2fa15094f6ea4c5e8b283f97cc27f2f1d0b6367b4b508c7bad16f1539325751bd785e9e08cd508bdb3b84\nTAG: 1976d7e121704ce463a8d4fe1b93d90f\n\n# AES GCM test vectors from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf\n\nKEY: 0000000000000000000000000000000000000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: \"\"\nCT: \"\"\nAD: \"\"\nTAG: 530f8afbc74536b9a963b4f1c4cb738b\n\nKEY: 0000000000000000000000000000000000000000000000000000000000000000\nNONCE: 000000000000000000000000\nIN: 00000000000000000000000000000000\nCT: cea7403d4d606b6e074ec5d3baf39d18\nAD: \"\"\nTAG: d0d1c8a799996bf0265b98b5d48ab919\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nNONCE: cafebabefacedbaddecaf888\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nCT: 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad\nAD: \"\"\nTAG: b094dac5d93471bdec1a502270e3cc6c\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nNONCE: cafebabefacedbaddecaf888\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: 76fc6ece0f4e1768cddf8853bb2d551b\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nNONCE: cafebabefacedbad\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: 3a337dbf46a792c45e454913fe2ea8f2\n\nKEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nNONCE: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nIN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCT: 5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f\nAD: feedfacedeadbeeffeedfacedeadbeefabaddad2\nTAG: a44a8266ee1c8eb0c8b5d4cf5ae9f19a\n", }; -static const size_t kLen15 = 69162; +static const size_t kLen16 = 69162; -static const char *kData15[] = { +static const char *kData16[] = { "# Test vector from RFC 7539 Section 2.8.1.\n\nKEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nNONCE: 070000004041424344454647\nIN: \"Ladies and Gentlemen of the class of '99: If I could offer you only one tip for the future, sunscreen would be it.\"\nAD: 50515253c0c1c2c3c4c5c6c7\nCT: d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116\nTAG: 1ae10b594f09e26a7e902ecbd0600691\n\n# Test padding AD with 15 zeros in the tag calculation.\nKEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nNONCE: 070000004041424344454647\nIN: \"123456789abcdef0\"\nAD: \"1\"\nCT: ae49da6934cb77822c83ed9852e46c9e\nTAG: dac9c841c168379dcf8f2bb8e22d6da2\n\n# Test padding IN with 15 zeros in the tag calculation.\nKEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nNONCE: 070000004041424344454647\nIN: \"1\"\nAD: \"123456789abcdef0\"\nCT: ae\nTAG: 3ed2f824f901a8994052f852127c196a\n\n# Test padding AD with 1 zero in the tag calculation.\nKEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nNONCE: 070000004041424344454647\nIN: \"123456789abcdef0\"\nAD: \"123456789abcdef\"\nCT: ae49da6934cb77822c83ed9852e46c9e\nTAG: 2e9c9b1689adb5ec444002eb920efb66\n\n# Test padding IN with 1 zero in the tag calculation.\nKEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nNONCE: 070000004041424344454647\nIN: \"123456789abcdef\"\nAD: \"123456789abcdef0\"\nCT: ae49da6934cb77822c83ed9852e46c\nTAG: 05b2937f8bbc64fed21f0fb74cd7147c\n\n# Test maximal nonce value.\nKEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nNONCE: ffffffffffffffffffffffff\nIN: \"123456789abcdef0\"\nAD: \"123456789abcdef0\"\nCT: e275aeb341e1fc9a70c4fd4496fc7cdb\nTAG: 41acd0560ea6843d3e5d4e5babf6e946\n\nKEY: 9a97f65b9b4c721b960a672145fca8d4e32e67f9111ea979ce9c4826806aeee6\nNONCE: 000000003de9c0da2bd7f91e\nIN: \"\"\nAD: \"\"\nCT: \"\"\nTAG: 5a6e21f4ba6dbee57380e79e79c30def\n\nKEY: bcb2639bf989c6251b29bf38d39a9bdce7c55f4b2ac12a39c8a37b5d0a5cc2b5\nNONCE: 000000001e8b4c510f5ca083\nIN: 8c8419bc27\nAD: 34ab88c265\nCT: 1a7c2f33f5\nTAG: 2a63876a887f4f080c9df418813fc1fd\n\nKEY: 4290bcb154173531f314af57f3be3b5006da371ece272afa1b5dbdd1100a1007\nNONCE: 00000000cd7cf67be39c794a\nIN: 86d09974840bded2a5ca\nAD: 87e229d4500845a079c0\nCT: e3e446f7ede9a19b62a4\nTAG: 356d9eda66d08016b853d87c08b5c1b3\n\nKEY: 422a5355b56dcf2b436aa8152858106a88d9ba23cdfe087b5e74e817a52388b3\nNONCE: 000000001d12d6d91848f2ea\nIN: 537a645387f22d6f6dbbea568d3feb\nAD: bef267c99aec8af56bc238612bfea6\nCT: 281a366705c5a24b94e56146681e44\nTAG: 59143dab187449060a3ec2a1681613cc\n\nKEY: ec7b864a078c3d05d970b6ea3ba6d33d6bb73dfa64c622a4727a96ede876f685\nNONCE: 000000002bca0e59e39508d3\nIN: b76733895c871edd728a45ed1a21f15a9597d49d\nAD: cc1243ea54272db602fb0853c8e7027c56338b6c\nCT: 1fb9b2958fce47a5cada9d895fbb0c00d3569858\nTAG: 219b4252deb16a43b292165aabc5d5ce\n\nKEY: 2c4c0fdb611df2d4d5e7898c6af0022795364adb8749155e2c68776a090e7d5c\nNONCE: 0000000013ce7382734c4a71\nIN: 0dc6ff21a346e1337dd0db81d8f7d9f6fd1864418b98aadcdb\nAD: 0115edcb176ab8bfa947d1f7c3a86a845d310bf6706c59a8f9\nCT: dad65e4244a1a17ce59d88b00af4f7434bd7830ffdd4c5558f\nTAG: 7ae32f186cf9ec59b41b764b34307d4f\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a84138648a5919a\n\nKEY: a8b9766f404dea8cf7d7dfaf5822f53df9ccd092e332a57f007b301b507d5e14\nNONCE: 00000000c7f2f7a233104a2d\nIN: 4d6faeaee39179a7c892faae3719656cc614c7e6ecd8fcb570a3b82c4dace969090338\nAD: c6d83b6a56408a356e68d0494d4eff150530b09551d008373d6dee2b8d6b5619d67fdb\nCT: a15443f083316eef627a371f4c9ac654d0dd75255d8a303125e9f51af4233ff4ceb7fe\nTAG: 63c2b4e0973096299488b0a66ffa54c1\n\nKEY: 5e8d0e5f1467f7a750c55144d0c670f7d91075f386795b230c9bf1c04ba250bc\nNONCE: 0000000088049f44ba61b88f\nIN: 51a1eebcc348e0582196a0bce16ed1f8ac2e91c3e8a690e04a9f4b5cf63313d7ad08d1efbff85c89\nAD: 5d09bf0be90026f9fc51f73418d6d864b6d197ea030b3de072bd2c2f5cab5860a342abbd29dba9dc\nCT: 35aa4bd4537aa611fd7578fc227df50ebcb00c692a1cf6f02e50ed9270bd93af3bc68f4c75b96638\nTAG: 4461139c4055333106cf7f7556fd4171\n\nKEY: 21a9f07ec891d488805e9b92bb1b2286f3f0410c323b07fee1dc6f7379e22e48\nNONCE: 00000000066215be6567377a\nIN: c1b0affaf2b8d7ef51cca9aacf7969f92f928c2e3cc7db2e15f47ee1f65023910d09f209d007b7436ee898133d\nAD: dfdfdf4d3a68b47ad0d48828dc17b2585da9c81c3a8d71d826b5fa8020fee002397e91fc9658e9d61d728b93eb\nCT: 8ff4ceb600e7d45696d02467f8e30df0d33864a040a41ffb9e4c2da09b92e88b6f6b850e9f7258d827b9aaf346\nTAG: b2ad07b86aca1b3ab34033c12d6a08cc\n\nKEY: 54c93db9aa0e00d10b45041c7a7e41ee9f90ab78ae4c1bba18d673c3b370abde\nNONCE: 000000003f2d44e7b352360f\nIN: 1241e7d6fbe5eef5d8af9c2fb8b516e0f1dd49aa4ebe5491205194fe5aea3704efaf30d392f44cc99e0925b84460d4873344\nAD: f1d1b08dd6fe96c46578c1d1ad38881840b10cb5eae41e5f05fe5287223fa72242aea48cb374a80be937b541f9381efa66bb\nCT: 027b86865b80b4c4da823a7d3dbcf5845bf57d58ee334eb357e82369cc628979e2947830d9d4817efd3d0bc4779f0b388943\nTAG: 6de01091d749f189c4e25aa315b31495\n\nKEY: 808e0e73e9bcd274d4c6f65df2fe957822a602f039d4752616ba29a28926ef4a\nNONCE: 000000001b9cd73d2fc3cb8e\nIN: 3436c7b5be2394af7e88320c82326a6db37887ff9de41961c7d654dd22dd1f7d40444d48f5c663b86ff41f3e15b5c8ca1337f97635858f\nAD: d57cfbe5f2538044282e53b2f0bb4e86ea2233041fb36adb8338ded092148f8c2e894ef8766a7ec2dd02c6ac5dbab0c3703c5e9119e37c\nCT: 9b950b3caf7d25eaf5fca6fa3fe12ed077d80dcd5579851233c766bb8bb613ec91d925a939bb52fb88d5eda803cfe2a8cda2e055b962fd\nTAG: 0887ec7d5e1a4e532746ec247a30825a\n\nKEY: 4adfe1a26c5636536cd7cb72aa5bded0b1aa64487ad0e4078f311e8782768e97\nNONCE: 00000000d69e54badec11560\nIN: 19b3f9411ce875fcb684cbdc07938c4c1347e164f9640d37b22f975b4b9a373c4302ae0e7dfdeba1e0d00ced446e338f4c5bc01b4becef5115825276\nAD: bda1b0f6c2f4eb8121dcbd2eebd91a03ae1d6e0523b9b6f34b6f16ceca0d086654fb0552bfd5c8e1887730e1449ea02d7f647ae835bc2dab4bbc65b9\nCT: ea765a829d961e08bacaed801237ef4067df38ad3737b7c6de4db587a102a86fc4abbaabea0ee97c95ca7f571c7bab6f38cbae60cd6e6a4ce3c7a320\nTAG: a27f18846f5a4f7fcc724656c91cf4f3\n\nKEY: eb3db86c14b7cc2e494345d0dfb4841bbd3aa1e2bc640cca0c6c405520685639\nNONCE: 0000000088b54b28d6da8c81\nIN: f75c0a357271430b1ecff07a307b6c29325c6e66935046704a19845e629f87a9e3b8aa6c1df55dd426a487d533bb333e46f0d3418464ac1bef059231f8e87e6284\nAD: 34b08bb0df821c573dcb56f5b8b4a9920465067f3b5bf3e3254ea1da1a7fc9847fd38bdfe6b30927945263a91fa288c7cf1bee0fddb0fadf5948c5d83eb4623575\nCT: 146ec84f5dc1c9fe9de3307a9182dbaa75965bf85f5e64563e68d039a5b659aa8863b89228edb93ff3d8c3323ab0d03300476aa4aca206d4626a6b269b2078912d\nTAG: 854cbb42bade86a09597482c8604681a\n\nKEY: dd5b49b5953e04d926d664da3b65ebcffbbf06abbe93a3819dfc1abbecbaab13\nNONCE: 00000000c5c8009459b9e31a\nIN: f21f6706a4dc33a361362c214defd56d353bcb29811e5819ab3c5c2c13950c7aa0000b9d1fe69bb46454514dcce88a4a5eda097c281b81e51d6a4dba47c80326ba6cea8e2bab\nAD: fe6f4cbb00794adea59e9de8b03c7fdf482e46f6c47a35f96997669c735ed5e729a49416b42468777e6a8d7aa173c18b8177418ded600124a98cbb65489f9c24a04f1e7127ce\nCT: 911ead61b2aa81d00c5eff53aeea3ab713709ed571765890d558fb59d3993b45f598a39e5eff4be844c4d4bd1ef9622e60412b21140007d54dcf31b2c0e3e98cf33a00fd27f0\nTAG: 2865d2a26f413cc92416340f9491e1be\n\nKEY: 3b319e40148a67dc0bb19271d9272b327bc5eee087173d3d134ad56c8c7dc020\nNONCE: 00000000ce5cf6fef84d0010\nIN: 27b5627b17a2de31ad00fc2ecb347da0a399bb75cc6eadd4d6ee02de8fbd6a2168d4763ba9368ba982e97a2db8126df0343cdad06d2bc7d7e12eec731d130f8b8745c1954bfd1d717b4ea2\nAD: a026b6638f2939ec9cc28d935fb7113157f3b5b7e26c12f8f25b36412b0cd560b7f11b62788a76bd171342e2ae858bcecb8266ff8482bbaed593afe818b9829e05e8e2b281ae7799580142\nCT: 368fb69892447b75778f1c5236e1e9d5d89255c3d68d565a5bba4f524d6ad27de13087f301e2ef4c08f5e2c6128b1d3e26de845c4ac4869e4c8bd8858ad0d26dec3b5d61a9e3666a3911ba\nTAG: 1414f1b91966340417c38226ccca9d3d\n\nKEY: 43bf97407a82d0f684bb85342380d66b85fcc81c3e22f1c0d972cd5bfdf407f4\nNONCE: 000000008b6ba494c540fba4\nIN: 4b4c7e292a357f56fdf567c32fc0f33608110d7ce5c69112987d7b5a0bd46d8627a721b0aed070b54ea9726084188c518cba829f3920365a", "fc9382c6a5eb0dd332b84612366735be2479b63c9efc7ff5\nAD: 1e0acf4070e8d6758b60d81b6d289a4ecdc30e3de4f9090c13691d5b93d5bbcef984f90956de53c5cf44be6c70440661fa58e65dec2734ff51d6d03f57bddda1f47807247e3194e2f7ddd5f3cafd250f\nCT: d0076c88ad4bc12d77eb8ae8d9b5bf3a2c5888a8d4c15297b38ece5d64f673191dc81547240a0cbe066c9c563f5c3424809971b5a07dcc70b107305561ce85aecb0b0ea0e8b4ff4d1e4f84836955a945\nTAG: c5ca34599c6a8b357c6723ee12b24da8\n\nKEY: 12fc0bc94104ed8150bde1e56856ce3c57cd1cf633954d22552140e1f4e7c65d\nNONCE: 00000000d3875d1b6c808353\nIN: 24592082d6e73eb65c409b26ceae032e57f6877514947fc45eb007b8a6034494dde5563ac586ea081dc12fa6cda32266be858e4748be40bb20f71320711bf84c3f0e2783a63ad6e25a63b44c373a99af845cdf452c\nAD: b8be08463e84a909d071f5ff87213391b7da889dc56fd2f1e3cf86a0a03e2c8eaa2f539bf73f90f5298c26f27ef4a673a12784833acb4d0861562142c974ee37b09ae7708a19f14d1ad8c402bd1ecf5ea280fab280\nCT: 9d9ae6328711fb897a88462d20b8aa1b278134cdf7b23e1f1c809fa408b68a7bfc2be61a790008edaa98823381f45ae65f71042689d88acfa5f63332f0fba737c4772c972eba266640056452903d6522cefd3f264e\nTAG: e84211b6cfd43543f8b1b4db07a494d1\n\nKEY: 7b6300f7dc21c9fddeaa71f439d53b553a7bf3e69ff515b5cb6495d652a0f99c\nNONCE: 0000000040b32e3fdc646453\nIN: 572f60d98c8becc8ba80dd6b8d2d0f7b7bbfd7e4abc235f374abd44d9035c7650a79d1dd545fa2f6fb0b5eba271779913e5c5eb450528e4128909a96d11a652bf3f7ae9d0d17adbf612ec9ca32e73ef6e87d7f4e21fe3412ce14\nAD: 9ff377545a35cf1bfb77c734ad900c703aee6c3174fdb3736664863036a3a9d09163c2992f093e2408911b8751f001e493decc41e4eeeed04f698b6daed48452a7e1a74ec3b4f3dcf2151ca249fa568aa084c8428a41f20be5fd\nCT: 229da76844426639e2fd3ef253a195e0a93f08452ba37219b6773f103134f3f87b1345f9b4bf8cfc11277c311780a2b6e19a363b6ac2efe6c4cc54a39b144e29c94b9ebbde6fd094c30f59d1b770ebf9fcad2a5c695dc003bf51\nTAG: 55e025a1eb87bc84d4be00c775c92ad2\n\nKEY: 4aeb62f024e187606ee7cc9f5865c391c43df1963f459c87ba00e44bb163a866\nNONCE: 000000009559bd08718b75af\nIN: c5d586ceece6f41812c969bcf1e727fe6ff8d1ae8c8c52367c612caa7cdf50e0662f5dffc5ea7d3cc39400dfe3dc1897905f6490fd7747b5f5f9842739c67d07ce7c339a5b3997a7fb4cd0d8e4817ff8916b251c11ef919167f858e41504b9\nAD: 51f5b503b73a5de8b96534c2a3f2d859ece0bd063ea6dfa486a7eec99f6c020983f7148cccb86202cf9685cc1cc266930f04e536ad8bc26094252baa4606d883bd2aeed6b430152202e9b6cc797ff24fc365315ed67391374c1357c9a845f2\nCT: 252ea42b6e5740306816974a4fe67b66e793ebe0914778ef485d55288eb6c9c45fa34ac853dc7a39252520514c3cb34c72b973b14b32bc257687d398f36f64cc2a668faffa7305ab240171343b5f9f49b6c2197e4fbe187b10540d7cdcfa37\nTAG: ab1d8a5a1f3eda9b5609c0028737477f\n\nKEY: 9a19e72f005cae1ae78b8e350d7aabe59fc8845999e8c52fad545b942c225eaf\nNONCE: 00000000d9dae2ea8d2ffc31\nIN: 2110378d856ded07eb2be8e8f43308e0c75bc8a3fcc7b1773b0725b7de49f6a166c4528e64120bdf7c9776615d3ce6feeb03de964a7b919206a77392f80437faceb6745845cafc166e1c13b68e70ca2a1d00c71737b8fcbbbd50902565c32159e05fcd23\nAD: 1cd73b72c4e103afbefd7c777e0480f3f5e68c60b85bd2e71ef5caebb175d7fc6535d39f38f92c24f2eb0fe97d878ed3d5967c0bb4394a5d41f7d34cda6e1523d3848f049cde554a7d31e1afeab5d3e6150f85858335cbd28c8a7f87d528058df50eea06\nCT: 5f009fbce4ec8e4ca9d8d42258b1a3e4e920b2fbad33d5e9f07557d9595e841025193b521ba440110dd83958e8ee30219d952b418e98a6c624894aa248aedc0678f2d263e7bfaf54ca379fef6c5d2f7ac422ea4b4369408b82d6225a7a2cf9a9f46fd4ef\nTAG: 1c6bdff7d8b9554dc7bf40e50b37d352\n\nKEY: ba1d0b3329ecc009f1da0fab4c854b00ad944870fdca561838e38bad364da507\nNONCE: 000000008a81c92b37221f2f\nIN: 6289944ffa3ccea4bf25cd601b271f64e6deb0eba77d65efb4d69ca93e01996e4727168b6f74f3ccf17bd44715f23ceb8fc030c0e035e77f53263db025021fd2d04b87a1b54b12229c5e860481452a80a125cb0693a2ba1b47e28ee7cbaf9e683c178232c7f6d34f97\nAD: e57883961b8d041d9b9eeaddcfd61fa9f59213f66571fadffffdd1498b9b014f1ef2e7e56c3044d7f9fa7a1403a1169e86430a2a782137093f5456e142aad03a5f7a66d38009dd01b7fc02c9cf61642dedaf7cc8d46066c281ee17780674c3a36eae66c58d2d765075\nCT: 9c44d9135db0dbf81c862c1f69bec55a279794cdd29a58e61909aa29ec4c120c9c5a508d856b9e56138095714a4bb58402a1ad06774cf4ecdf2273839c0007cb88b5444b25c76f6d2424281101d043fc6369ebb3b2ff63cdb0f11a6ea1b8a7dafc80cdaef2813fa661\nTAG: 689a141bc11159d306dad7a4ecf6ad9d\n\nKEY: 0cf8c73a6cffc1b8b2f5d320da1d859d314374e4a9468db7fd42c8d270b7613a\nNONCE: 000000003c4c6f0281841aff\nIN: 4434728d234603c916e2faa06b25d83bad3348990ecde2344368d1a7af1309bd04251bb2e0b72044948f8dea33cce2618283b6af742073a9586b26c1089335fe735141e099785a1235810a3a67ff309e2f0ce68220ba0077ad1a5dc1a4aef898a3b9ff8f5ad7fe60149bd0bd6d83\nAD: a38d09a4f1c9241623c639b7688d8d35345ea5824080c9d74e4352919db63c74d318f19e1cbb9b14eebd7c74b0ad0119247651911f3551583e749ea50ff648858dcaaa789b7419d9e93a5bf6c8167188dbac2f36804380db325201982b8b06597efeb7684546b272642941591e92\nCT: bdfbfea261b1f4c134445321db9e6e40476e2dd2f4e4dbe86e31d6a116d25830762e065b07b11a3799aab93a94b4f98c31c0faeb77ec52c02048e9579257e67f5a6bae9bc65210c25b37fc16ee93bda88fd5f30a533e470b6188c6ce5739fa3e90f77120b490fc1027964f277f40\nTAG: 780cc54bb6f1c9b78545c1562cd9d550\n\nKEY: 69f4e5788d486a75adf9207df1bd262dd2fe3dd3a0236420390d16e2a3040466\nNONCE: 000000006255bf5c71bb27d1\nIN: c15048ca2941ef9600e767a5045aa98ac615225b805a9fbda3ac6301cd5a66aef611400fa3bc04838ead9924d382bef8251a47f1e487d2f3ca4bccd3476a6ca7f13e94fd639a259ef23cc2f8b8d248a471d30ac9219631c3e6985100dc45e0b59b8fc62046309165ddb6f092da3a4f067c8a44\nAD: 0c83039504c8464b49d63b7f944802f0d39c85e9f3745e250f10119fa2c960490f75ae4dced8503b156d072a69f20400e9494ab2fa58446c255d82ff0be4b7e43046580bc1cf34060c6f076c72ea455c3687381a3b908e152b10c95c7b94155b0b4b303b7764a8a27d1db0a885f1040d5dbcc3\nCT: f0bb2b73d94f2a7cef70fe77e054f206998eacf2b86c05c4fa3f40f2b8cebf034fe17bcbee4dea821f51c18c0aa85b160f8508bd1dc455cc7f49668b1fb25557cdae147bf2399e07fcacaca18eccded741e026ef25365a6b0f44a6b3dd975ee6bb580f5fccd040b73c18b0fbf8f63199ba10fe\nTAG: 2ecccea4607d14dbb2d2475792aeb468\n\nKEY: ad7b9409147a896648a2a2fe2128f79022a70d96dc482730cd85c70db492b638\nNONCE: 00000000a28a6dedf3f2b01a\nIN: 791d293ff0a3b8510b4d494b30f50b38a01638bf130e58c7601904f12cb8900871e8cf3d50abd4d34fda122c76dfee5b7f82cd6e8590647535c915ae08714e427da52f80aef09f40040036034ca52718ea68313c534e7a045cd51745ec52f2e1b59463db07de7ca401c6f6453841d247f370341b2dbc1212\nAD: 9a6defddb9b8d5c24a26dd8096f5b8c3af7a89e1f7d886f560fabbe64f14db838d6eb9d6879f4f0b769fe1f9eebf67fcd47b6f9ceb4840b2dba7587e98dc5cae186ef2a0f8601060e8058d9dda812d91387c583da701d2ba3347f285c5d44385a2b0bf07150cbc95e7fcfa8ae07132849a023c98817c03d2\nCT: c2f109d6d94f77a7289c8a2ab33bc6a98d976554721b0c726cbf4121069473e62ba36e7090e02414f3edc25c5d83ac80b49ad528cda1e3ad815b5a8c8ae9ad0753de725319df236983abd3f69ab4465d9b806c075b1896d40bdba72d73ba84c4a530896eb94ffccf5fb67eb59119e66a1861872218f928cf\nTAG: 17ec6cf2b172f01e3c456ad047196805\n\nKEY: 48470da98228c9b53f58747673504f74ca1737d7d4bb6dbf7c0cba6ca42f80b9\nNONCE: 0000000056fb4923a97e9320\nIN: bc6626d651e2b237f22ee51608ddcffeba5f31c26df72f443f701f2b085d6f34f806e29673584cb21522179edb62a82427d946acabce065b88b2878e9eb87ed1004e55ef58f51ec46375ac542c5782725ff013136cb506fcf99496e13fcd224b8a74a971cc8ddb8b393ccc6ac910bd1906ea9f2ed8a5d066dc639c20cd\nAD: df8ab634d3dca14e2e091b15ecc78f91e229a1a13cba5edd6526d182525ec575aa45bc70fb6193ffcd59bad3c347159099c4f139c323c30a230753d070018786b2e59b758dd4a97d1a88e8f672092bef780b451fd66ba7431cbb5660ea7816cdf26e19a6ebb9aadc3088e6923f29f53f877a6758068f79a6f2a182b4bf\nCT: a62e313ecf258cc9087cbb94fcc12643eb722d255c3f98c39f130e10058a375f0809662442c7b18044feb1602d89be40facae8e89ca967015f0b7f8c2e4e4a3855dbb46a066e49abf9cef67e6036400c8ff46b241fc99ba1974ba3ba6ea20dc52ec6753f6fc7697adbccd02b0bbea1df8352629b03b43cc3d632576787\nTAG: d29a8968067aeb457ffc114c3a9efb95\n\nKEY: b62fb85c1decd0faf242ce662140ad1b82975e99a3fa01666cac2385ab91da54\nNONCE: 000000002f4a5ca096a4faf8\nIN: 03b14f13c0065e4a4421de62ab1d842bffb80f3da30bf47d115c09857f5bdd5756fd7c9ac3d9af1c9fb94f2640f7f4386cfba74db468e5288dbe4dd78bfe4f69e41480ca6138e8beacc6eaa3374157c713cfa900c07dd836eaecc8827fa3e70e052ae09e8473e2ae1a10b1bb669ef60a8dd957f6553daa8114918e17371f2ac327bd\nAD: cfe3b7ab7550b0e8e2e8235fa0dcef95647ce6814abd3dc3f5a3bd7d6d282504660c34ad8341e4d11402c7d46c83a494d7ddb105e1002979023e0e3dc2978c9ae53e10eb8567e7a02b60e51e945c7040d832ca900d132b4205a35034fed939a1b7965183c25654931a9b744401c4649c945710b0d9733b87451348b32ba81de30ea7\nCT: 8965db3d3ae4fb483208f147276e7d81b71a86e7202ffc9b1eaade009bc01683", "8dc09ca4bcf30887b2f4243fbd652cd90ebed1ceef8151ff17ea70518d03b0f2a24960aa7de9b30fa65c2e2d57360061aae6d9376e984e9fcd5e5dd0911a4bc8deca832ffb76f252bd7da523076593ba6b174f7d9fb0377e066ecbb6638036241e86\nTAG: 28a5284696ed82714eaa94c9ebe6e815\n\nKEY: de9c657258774d4ebc09d109a0fc79d66493ae578797cac4eb8830a6a4b547e0\nNONCE: 00000000b5e35fe3398efa34\nIN: 4d68fb683aa4f4c7a16ba1114fc0b1b8d8898610fa2763e435ded8771b3651078bef73d4dfd14e76a34cd5eb9ef4db4ead4da9e83f4ce50fe059977b2d17d687c29335a04d87389d211f8215449749969f7652dc1935a0f9a94538dc81dc9a39af63446a6517609076987920547d0098a9c6766cf5e704883ea32feaea1889b1554b5eb0ce5ecc\nAD: 436ea5a5fee8293b93e4e8488116c94d3269c19f1d5050def23d280515457b931bbed64a542b317cc5023d648330a4b7adca14dd6f3783207b94f86ccaa0a0ac39b7db00ac87a99e3cd8a764ed9c75da8454479636ab2b29e770b166a5b75cacc425c919bf1ce9ac34afe6b4425c3d9fd2e48bc81e7d15516d60e592bfcc2ebefb660f0995f2b5\nCT: 97a97b8f0f5420845ae8d57567f9bba693d30e6db916fad0b971f553ad7d993f806f27ab8b458d8046062ced4778c004b4f958a4436141637c6039963308dea2f54008b7feab79650295ed41bf9e65e1a2d75ab1c7b2a70ebb9e9f38d07a9a672d3e95ea78afe9ac02f2566b48b0251aef6eeeca8bd15bd8d43b559426aa9d15d960ee35cb3edf\nTAG: 4ef49e8a0c2ef85826d7f03e81c577f2\n\nKEY: 6885bd333c336c7672db8ebdf24c1a1b605c5a4ae279f0f698162f47e6c73401\nNONCE: 00000000f0c4a213a6168aab\nIN: fa905a2bfa5b5bad767239fb070a7bc0b303d1503ecd2b429418cc8feba843e5444ed89022fdb379c3b155a0f9ceab2979000a0f60292a631771f2fde4ef065aa746426609082969530a9c70ad145308c30ba389ea122fd766081511a031ce3a0bd9f9f583c7000b333b79ac004fbde6ec3eb2d905977ff95dcff77858e3c424fe8932a6a12139e6ec8d5e98\nAD: 8ded368f919efb522bb6a9ad009e02ffbc6a16536e34d95cdb34f1153d7cb7b0f3c2b13dd05cedae27cfe68ec3aca8047e0930a29c9d0770c1b83c234dcb0385deae7ae85da73a5f8de3dfb28612a001f4e552c4f67ae0e2ec53853289b7017a58591fd6f70b0e954876bb2f7ec33001e298856a64bb16181017ba924648c09fc63c62eff262c80d614679bd\nCT: 0cb3d6c31e0f4029eca5524f951244df042fc637c4162511fea512a52d3f7581af097eb642e79e48666cb1086edbd38c4777c535a20945fabc23e7c9277e2b960aac46865f1026eb6da82759108b9baece5da930ccfc1052b1656b0eadaa120ed0c45ad04b24ae8cdb22ceab76c5f180b46a392ab45b1b99c612546e6b947f4d5c06ad5abee92ff96345ad43\nTAG: fad7d5a5193dfb121c68529ba8c0c35d\n\nKEY: fbc978abb1240a6937ccc16735b8d6ed5411cdbc1897214165a174e16f4e699b\nNONCE: 000000007968379a8ce88117\nIN: 1a8196cd4a1389ec916ef8b7da5078a2afa8e9f1081223fa72f6524ac0a1a8019e44a09563a953615587429295052cc904b89f778ef446ed341430d7d8f747cf2db4308478524639f44457253ae5a4451c7efca8ae0b6c5c051aaa781e9c505489b381a6dcba87b157edc7f820a8fbaf2a52e484dc121f33d9d8b9ac59d4901d6ed8996ed4f62d9d4d82274c449cd74efa\nAD: 3913cd01299b8a4e507f067d887d7e9a6ded16dd9f9bb3115c5779aa14239fd33ee9f25756d45262dc3011069356425b5c81a4729594e17c9747119f81463e85625d5603d05e00f568b0c800bb181eb717be8d7a93166a504ce1bc817e15530c5bd2b3df1d4222245ea78a38bc10f66c5cf68d661503131f11af885c8a910b6dce70bc3a7448dfae00595beb707fe054d3\nCT: d152bcb4c24c3711b0fad28548dc4db605bbc89237cdbea7dbf956b8855d1161a0781f27bd56d798141e2ace339955efb98fe05d9b44cd011e645106bf47726183958cb6df34ce5766695f60bc70b6fe0fabb9afa009a8ef043dbf75f861881368fa07726625448fe608d578cdc48277f2dc53eaaf1bdc075269a42f9302a57cad387a82c6969608acacda20e1cac4596c\nTAG: 96ae06cd7c72456e5568a42317046158\n\nKEY: 77d1a857fbadfe01aba7974eea2dfb3dc7bf41de73686aece403993e5016c714\nNONCE: 00000000fdd913a321c40eb0\nIN: db8915bfe651e2ecb3ce0b27d99a6bfa7a7c507cfcb2987293018636c365a459c6a138b4428be538413db15bda69e697cbb92b154b7f4d2cbb07965225aa6865d7dcd1ba2c17c484b00b1986fed63e889f25a4966dc3ed4273f1577768f665362d7d3e824484f0dded7f82b8be8797ad951719719365e45abbf76324bc7d657799d4d4f4bb1dba67d96ab1c88519a5bee704f7214814\nAD: 3cb2c06c20cb0832bbacebfc205d77393ca1816346ea2681de4d3ab1fadb774ad273e4713290454496f5281ebc65e04cfe84ed37cd0aedc4bbe3decbd8d79d04a4e434876650e0d64309e336bfb10e924066a64acb92260b2dbd96735d03af03909aa6a80a6e89fda81037257aec21fe9be7e91a64e88e0a58fa38ecba4c4c4cffb61958f3c486cbb0b1d0b0014a2d1d3df248eec1ca\nCT: acb825e6023b44b03b2efc265603e887954e8612b2ee134bdcb61501cfb9492952bf67be597c3a005b09af74d9e421a576d2c65e98104780feab838d8cb1bd135452ea39dc8907a4c1a6a9161805e4fa3e16989e6a418a7eea2582bf895da967028eab7c95d846a6de4b9980785814cf00484baa2f6de609912fff689bce6e854261ffe866bd8e63274605c7c5ad677bd7897ade543e\nTAG: bcf523a9bcf772e157941753c6d7401e\n\nKEY: b7e9b90dc02b5cd6df5df7283ef293ed4dc07513d9e67331b606f4d42dec7d29\nNONCE: 00000000a6c191f6d1818f8e\nIN: 2ada0e3c7ca6db1f780ce8c79472af4e8e951ddc828e0d6e8a67df520638ff5f14a2f95a5e5931749ae2c4e9946ae4d5eb5de42fb5b77d2236e2e2bd817df51be40b1b8a6c21015a7c79fe06dba4a08b34013dfa02747b5f03930268404c455dc54a74d9c6e35485e10026da573cb41cd50b64cfafe4cfcdf3c9684ef877e45d84e22bd5e15fa6c8fd5be921366ff0dc6fe2df45f7252972c9b303\nAD: 0f4269ed5ef0bfff7be39946a4e86e8bf79f84b70cd0b14fecb7be3c071316ce86de3d99d6871e0ba5667d9d7bba7dcaba10cb2a36668b6c3e2fb6c102938b75008bb9c213ebf9b85b5e91a802df0d31d7f11d764b2289f6225212694ab6b7c0e3ff36e84245d9f4f43fc5f98e654dea7ba9bd918658879c5bb4a1642af0d83113e3cf935d3c0d5208318f66f654eb17d8c28a602543e77ad3e815\nCT: 22586fe7338e99cdaad9f85bd724ba4cfe6249b8a71399f9a3707b5c4323b8d96679568dfc8d230aefb453df596e13eb3e8a439249bd64bc93a58f95089a62b94f6562b821c83d91f56c55147381e9de4beb4ae81bd6fe7caef7e7e9a2078f2fba8f3e70d4910da9accc92b8e81a61b0fefbece4bd89443e66e8ddda8e47a66a62f17fd0e7d0a4852ce1a4d43d72a0b5e8914bbec698f060f2b092\nTAG: bd05336ed6426de412aac37661953052\n\nKEY: 6b2cb2678d1102f2fbbd028794a79f14585c223d405e1ae904c0361e9b241e99\nNONCE: 000000007b3ae31f8f938251\nIN: b3cb745930e05f3ab8c926c0a343a6eb14809fd21b8390a6fcc58adb5579e5432021765b2d249a0ecf6ba678634c4f53f71495865f031ee97aa159f9ead3a3fcb823ee5238bdf12706a9c6137d236e2e7110ce650c321e41daf0afd62bab2a8fe55d7018de49a14efe6d83a15b2f256d595e998d25309f23633360f5745c50c4e5af8ccc9a8a2cb47064105a023e919c7795d2dc331d3f2afb8c42e5c0bcc26d\nAD: 1c32fd3df22b3e440e2a3c7a7624990194cb16a5f74af36f87fd6ca7d410ce9064316a2d091945deef7d9b35ceec8396069307caced2b80afd7d53ec479c35cedf2dfd4c95c3dd8400f71ad34028c6e4f8681d93d0774064ba38f3fb9b0c1dfa1f5f0c7d20676a5911d999fb6a1d41367a8e99d852bf3d3b7b3f4c233249ed1ca135389a674ff48232ded3f6800a97b6d409c40e6cd70d09bf9d2ad25d9b9485\nCT: ef70c7de98ab1d4ad817024a970be463443640eb0cd7ff234bdd00e653074a77a1d5749e698bd526dc709f82df06f4c0e64046b3dc5f3c7044aef53aebb807d32239d0652dd990362c44ec25bf5aeae641e27bf716e0c4a1c9fbd37bbf602bb0d0c35b0638be20dd5d5891d446137e842f92c0ee075c68225e4dbacb63cc6fb32442b4bcda5e62cb500a4df2741a4059034d2ccb71b0b8b0112bf1c4ca6eec74\nTAG: d48657033095db3f873c33445fec8d35\n\nKEY: 4dbc80a402c9fceaa755e1105dc49ef6489016776883e06fcf3aed93bf7f6af7\nNONCE: 000000002358ae0ce3fb8e9f\nIN: 197c06403eb896d2fa6465e4d64426d24cc7476aa1ae4127cd2bd8a48ce2c99c16b1cbf3064856e84073b6cf12e7406698ef3dd1240c026cbd1ab04ee603e1e6e735c9b7551fd0d355202b4f64b482dd4a7c7d82c4fe2eb494d0d5e17788982d704c1356c41a94655530deda23118cba281d0f717e149fbeb2c59b22d0c0574c1a2e640afad1a6ceb92e1bf1dde71752a1c991e9a5517fe98688a16b073dbf6884cfde61ac\nAD: cf6ce7b899fb700a90d2a5466d54d31358ecf0562e02b330a27ba0138006b342b7ed6349d73c4c5c6d29bde75a25089b11dac5b27adea7e7640ca1a7ceb050e3aae84a47e11640a6e485bd54ae9fdb547edc7313d24a0328429fcffd8b18f39880edd616447344ebeec9eadb2dcb1fa7e67179e7f913c194ebd8f5a58aea73b0c5d1133561245b6d9c5cfd8bb0c25b38ffb37db5e2de5cdded6b57355e9d215cb095b8731f\nCT: aa87f9a83048b6919c8f2b050315db4e2adae4a9c2ca0109b81961b520e63299dcb028cec0b9d3249a945ee67dd029b40f361245c740f004f8cf0d2214fcfa65e6124a3e74b78aa94345c46fdc158d34823ed249ee550431eaae9218367321cdd6e6a477650469bb3cc137a8f48d9cf27934b16703608b383d2145659922fb83bb2e7ee2ef938a90f2ff846a4a949129b1fb74dde55c5ae013c2f285de84f7dac7d1662f23\nTAG: 298f84c8312029a7b1f38c5ea6021f57\n\nKEY: 9e4a62016dae4b3223fed1d01d0787e31d30694f79e8142224fe4c4735248a83\nNONCE: 00000000263a2fc06a2872e7\nIN: 5a46946601f93a0cee5993c69575e599cc24f51aafa2d7c28d816a5b9b4decda2e59c111075fb60a903d701ad2680bb14aeda14af2ae9c07a759d8388b30446f28b85f0a05cd150050bd2e715ff550ebbd24da3ebb1eac15aba23d448659de34be962ab3ab31cb1758db76c468b5bb8ce44b06c4e4db9bd2f0615b1e727f053f6b4ffb6358d248f022bcad6ca973044bed23d3920906a89a9a9c5d8024ec67d7f061f64529a955ce16b3\nAD: 4cd65f68f9f88c0516231f2a425c8f8a287de47d409d5ecde3ad151e906b3839fb01bb91a456f20ea9d394d4b06604ab1f9009ef29019af79", @@ -678,16 +758,16 @@ static const char *kData15[] = { "16b39afee75e53602de319484db89a51e844f38c361634e474f8f1f01c340f3f3594860d671346449c6d08ee38de22d246309bc7e4a252a29c86aa6d94b5b4fa58904c70\nAD: 1c2503d5aa1aad193f0da12874074ea0432bb76a61cd43a3017061514da0759846a0f3ae3a49fdb0b6d29f713de665beacb6568f2694112ca380d13f3c1698316866a7a7f87f1d7503a92176ab84fc08977b46ba664508a858e7525753c45511b3d2f407d5e993c6ede77f13d12975707e5195704970a89f71fc30828049f92f944f3aa93d6a5297e678e08952919beb7eac5919df1919cab3c3da6aa696a1eeab6371f310f7e81143e7d240b0213ae554524b52000306160dd4877bf13ba0f13bbe867da7c7d707f31335eef4cd942938ac890a0829ec66bd30ae01a2188a6e5ea0f17cd7dc875e17f03c0ab5dd18e36db8a1fc1f72859ee046b62368f168b3bea2234e0432c07b7d8e1b9277f21e692c513b9e816e6860\nCT: 7d35cfe4be56bd6e0e09dedcd01735b915bc1891a4d1f6a541abc4bcd0ebe89dcb8e365e5813742e8ec65777b6159422fada747da99394252baf8a046fc1b60ad79755f545f4448627b7acaf403000894f5641e78d3f946dfca29ec617f0660dcd6e8d8827e67e1022a245c595d86e60fbd176bf721b171bbe5ecaf4ae671b9f3dd3920146e6ad431bd8fc431820e19454b6ca209723d80fdbee187fca9c937c979206ae97be55f6ba7366a5608770a11d537396485eb0a66586385f4d4cf3905d1fc90831c3e136d5d513fa22be285193142994a3ed477145bacdcbdd791e8b3b88b0d4f1d18b27382550a818c4fd8884bf36f677c6c3ff5677406e510911e696af75e5b3f859bef699bdd16e6215fdb98d874025eada50\nTAG: 0fa4cb2bab84336409aa4349ab99a8bd\n\nKEY: 923d4b086b9e43b986f7b65e4cea6113a3d8aabefa89323c5e4d5b6f158bb7e0\nNONCE: 00000000a0f73297b87f5deb\nIN: 21435e8d5c8edf0684f58c2cba4070c10b4801adf46b6c4d322eb3990a38a9ad338ad704b9df6597f3e68d66cd5b56290c8466db2231e56d6bcb9c44e1bd081f42ca2a894dad369df2bd0d2c63d6c881732d6ea22bb22b5bc9a62eaffa1b094d0845f6b966d2cb095e7b3b8bcbc15e707449d35c8df4aea30c3b7243e977fffd59c80f1c5c9af4bb5a54b9c786fbbe8d21b2b906a87a786caed841a34a3e0cc0ac3209d83c58afba19edd63622dd261532d2cfb0b49d527d8eaa0887a087f5129d897f665264b229f860363d71a88b7d49c8dc6360182b357b0662391bb41337f46010ac32b9fada2d60a2efcb99365d3b27b7ac396900d1c821d0df8b86cc9cc1f2673259a33efea610bf8e1d00d7e9db2afea21da8f58c55f799999d\nAD: c853a8b39c0dc597d562f123cd221e4104b65423a062a4f4ba890ba344feb84290f61817e23330c365f58c3583ce08360d3c1171982ead5496d525ac878f23a57480a6ee39d4e65afd6268245bb982a2545fa1195427cdbbcd404cdad5198f55cce2a5a028fae435f71b15921d066e8d43766c32b2f2c3f57c0674e129607dcd3703eca529414adaee79d81fed432153cceb6f3fc53404810d8ec878f7d94be5d379d0e0e1aa9bc404b4b5d396038a9d76a5ce53c9f3759b8e50fb331858ca58cee81bfc3ee58baef5d19c402a3dc8b36370ec1ace5a4aa2527fb94b4f933a4ab8ccaaf6a5af5a779eae5667c2a24ab027e781c8d4f30c377aa5885a2fdaf6507d18cd824a847c35368b4ea984d2c3c3824a5b8ba3042e1852504a21a3\nCT: f2e21052eebbb86a4f5e803360855d8632aa727dca6f5e79dd74d7aff106e442001928d113005b030f8446f8eff2ee951db663978abe43090dd5ad2c51ba97a0ecf988c607d95e486d02524f690fa3c28d5c48c1f75c1f555e7b43fe7e46f2ca2b9fdb408ec4ba18b6cdde2af673183cb7b1a3c23ae77eddd4cac75e1ea14743fc571f8d31ce2e96787524cd48aadaa474181c096a032184574ddc25a6e0ac8441c212bc36298708e33c963ae931e6c6241d1affeef7b6ef759495df44b6ab647447693cf703569e69aa72f1def9a342b8978c1edea9703a421ca75b92cac4de14b88c693200022b8a2ed22b1c4678b99f4d695e080dd1196d7168e14f0d0f8ff880d742e97b9f6d00af1f7118e10b77c5ef3ea6c52f84a20fd6ea46dc\nTAG: 9bd8b7743c056bb2334833afd6143e18\n\nKEY: df73adab2768559ea983cce85453fe81d79be3b3c57f202b31b94d6635cf2e4b\nNONCE: 00000000e7a87e6bf6b5a354\nIN: 0032a37abf661faa18c587fd2aa88885c061deeba81105dd221969bed5d59c7204b09b1a8c4c8de3b9f748c7fc70626ebeaca060233a57b102221b1bf0f3d9fdaaad3d2b1439c24d08f9c67f49f3c47128f92ee530abf4c4f4573bc60ae4b38109f55bca3ca9e1ba9f9fd6e34ba0d174892977a53356e1f5c88c614fe3ff3b3dd0818e7a2285412e3b37444bbe8a80942efcfd03958809a6966cda9430b2f0c9e552f4bced6e19eb3e85fc5758bd7b588297ccbed37ed94c3adc8c08ea8b058462aac9d57a939ec711bc4ecfec944d2b653b7cfc7b02a65d7057c9fdadd51b9da8cc4a3c68dae9da8b9c5319c1a2baa3d6c891c5ac4a39461484b5a01abc64df447ada24c04a4363e605eaccf339a9aa515e724206206da6d22bbd2f52e64cd7c895\nAD: f833e5ab4f8bc89167f80f576b1d6b22cdd0e30721f5f735799746cf645b6eff531d4c7b03584f3dfcb73cbd35ac42736216dc7f0de098a4f42c61ceb4b227ee288e47d697a0a76afc762f084e8fdbf9351c28340c324771c109a469341ab10ca10483ed2af5e878d7d3dc2bced2f72da3d1a25852b103ee9878e8158eb4309c1ce528f3a178ace153b6d3ae0af0d577cb3cb1540489e80427f792217ad8a09b84f027fca7ceb651b4264e98e94b4cb8a37b133390897233e8ba9103628d05b9609e8552c4a4b11e3f2fa8d56af36957390e88cba44656be3edace798cf8cdf7771bac338a256bc3cba6df97728f222f423ca7c6d149c9372d66163a98f79a234b00d4b75fb2ec860dcc2d1998105e4b9c01d68f079f3e0aa21cc534047fc7b858f8\nCT: b842eadfdf431c135bd6581d3eccae54e2267d8890036aa33dfe2d2d9715c44625441210a3a0d666d708d30588fe851ec36e10d8fa3584ed77b095149494b7c54379d62c8935e1d2b9a8f47e4759ad0b3437fdf2cc2fb6c5ea25ad10e0bdc9dc5b0517fc237eb783cc461c46665e2b1d1a5b8008dbf409ea2a63fea0276de23a32c99d92a498807a0f95e208fc6262321a78aafaf0cc3f833fff37bd4efa66f6023a25cdc6702cee3912799563d908a5183c9956a06aa71085d855dc7c809ed6e2889592b361ab3ab39060f8e419152187a794a19c2a1128882201900ea2cd597860674bf78d9720643df8701676718fd201baed4935a88e50558daf86edd08a9ab227ac7afae55c974b68de8dacad4a4d79b13ed6dfe74017a4cb9148e033436fb6\nTAG: ee1ec36804e1d5cdbddb52608c711fd8\n\nKEY: 55a4be2448b464c2ea52a2f2664ed6aba865c14ea1fea77f4689331fd105c8d4\nNONCE: 00000000db37c0a405b4626d\nIN: d266e66272e5d3462081b004cb42429c8b9741e9f678153754d726f6f9aa513464763c5e793b482fe512fece97585f1426120d4cefb3d0a8cc0a8db4bde93fc72c78f44d4fecca14650c660d3e285b327e7cdd813063e7e867b8a2d059a41bab70432b7f857199894da90dca3fe5272bae1ec694a1a07b60b05df275784d4975637e4673109f3ba846dfd1a048b202ed8e89973be608b91ee4743b1e759900f1443038951fe6189e806638985f3c16338c3c60695df58e621154d79bb973859c4558e9dca90470f77c73f004443ad5db0717abbe43266f90e57397b83ac34d1fef2e897e2483d5bcdcb627abd64b0d1aef525835f25e76d6e9158232cdde6dce970b59f58de8a98e653be32fb58edabbcefa5065d73afdf1c9c4fbf50c1022bd22bfcb98e4b422\nAD: fd6a3fdd879f8880843eac20ae01c1b9dc3487d270a806572088ef2ddc1f1e0de495e71d4813bf5c501ad31e5d791c4b5b3a0a71b63fdddcc8de4b056064ef467989ecccc5d0160d403bf3a025d4892b3b1de3e062bc3581d4410f273338311eb4637529e4a680a6e4a5e26e308630a5b6d49ead6d543f8f2bf9050aa94ce091318721e1d8b96e279f34b9759b65037bec4bf6ccda6929705aeeeebe49e327e4d7a916620c9faf3765120658af34c53fbb97ec07657b3f088fcbdc401aa7949ddeda34d885018c2c23f4f0bb8218bf0d4fc90643658b4d8834f4a8c08e590c2a790995baa9e77627c342d283e454f84fcc05be15e9627a2d9be340c9d72f222bbdfc47905f56616cd9f936d49e4732f319f020513340fb8b22828db251b102b6b137c9533936d6\nCT: bd11ed07b7b4b30eeaf25d6a41a549cca0a5aee71f990ac566a37265d7af2ce3c03703427ee0b2755c2bdfc29f9d826aec6ee4ad28af48079ac23db16580b97424f3a4e35cc23625d39f95699d9ff5143e9a2bc26fcfee4f125f5aa2d968ccfc2faaf9db3c28850f6757f735cbc50c94c498bcde4f23bffafa8dd5f70d1a011e35eb26e905d4e68848fedebeb197be595c085ba33f11ba8398258445051751888e9bba111f800f31b37c447074ca6dce6d54b4dfad6cee5138643d4f6ac045e8047248924e88ea4294c7878bc22c9b41924ce301f22693c33733107bf1ba85e34806c5e4366ea66fc52a5f89dd9bf213239158b3d4d2600dde696c61d76c398b9bf10de9118e812e891c8f3355c0ecc6405f79bc32a58905e37888a1d8395fbedc3ac54eca569f\nTAG: 296a397d280d026fc3627f4718971be9\n\n# Tag truncation tests.\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19", "ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c2\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f3\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f37465\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a84\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a8413\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a841386\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a84138648\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a84138648a5\n\nKEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865\nNONCE: 000000005d9856060c54ab06\nIN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e\nAD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51\nCT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36\nTAG: d3f7b9c295f374651a84138648a591\n", }; -static const size_t kLen16 = 17493; +static const size_t kLen17 = 17493; -static const char *kData16[] = { +static const char *kData17[] = { "# Test vectors generated from libsodium with this code:\n#\n# #include \n# #include \n# #include \n#\n# void hexdump(const uint8_t *in, size_t in_len) {\n# for (size_t i = 0; i < in_len; i++) {\n# printf(\"%02x\", in[i]);\n# }\n# printf(\"\\n\");\n# }\n#\n# int main() {\n# uint8_t nonce[24];\n# uint8_t key[32];\n# uint8_t m[64], c[64];\n# uint8_t ad[16], tag[16];\n#\n# for (size_t ad_len = 0; ad_len < sizeof(ad); ad_len += 4) {\n# for (size_t m_len = 0; m_len < sizeof(m); m_len += 5) {\n# randombytes(nonce, sizeof(nonce));\n# randombytes(key, sizeof(key));\n# randombytes(m, m_len);\n# randombytes(ad, ad_len);\n#\n# unsigned long long tag_len = sizeof(tag);\n#\n# if (crypto_aead_xchacha20poly1305_ietf_encrypt_detached(\n# c, tag, &tag_len, m, m_len, ad, ad_len, NULL, nonce, key)) {\n# abort();\n# }\n#\n# printf(\"KEY: \");\n# hexdump(key, sizeof(key));\n# printf(\"NONCE: \");\n# hexdump(nonce, sizeof(nonce));\n# printf(\"IN: \");\n# hexdump(m, m_len);\n# printf(\"AD: \");\n# hexdump(ad, ad_len);\n# printf(\"CT: \");\n# hexdump(c, m_len);\n# printf(\"TAG: \");\n# hexdump(tag, sizeof(tag));\n# printf(\"\\n\");\n# }\n# }\n#\n# return 0;\n# }\n\nKEY: 1f4774fbe6324700d62dd6a104e7b3ca7160cfd958413f2afdb96695475f007e\nNONCE: 029174e5102710975a8a4a936075eb3e0f470d436884d250\nIN:\nAD:\nCT:\nTAG: f55cf0949af356f977479f1f187d7291\n\nKEY: eb27969c7abf9aff79348e1e77f1fcba7508ceb29a7471961b017aef9ceaf1c2\nNONCE: 990009311eab3459c1bee84b5b860bb5bdf93c7bec8767e2\nIN: e7ec3d4b9f\nAD:\nCT: 66bd484861\nTAG: 07e31b4dd0f51f0819a0641c86380f32\n\nKEY: 4b6d89dbd7d019c0e1683d4c2a497305c778e2089ddb0f383f2c7fa2a5a52153\nNONCE: 97525eb02a8d347fcf38c81b1be5c3ba59406241cf251ba6\nIN: 074db54ef9fbc680b41a\nAD:\nCT: 1221898afd6f516f770f\nTAG: 75e7182e7d715f5a32ee6733fd324539\n\nKEY: 766997b1dc6c3c73b1f50e8c28c0fcb90f206258e685aff320f2d4884506c8f4\nNONCE: 30e7a9454892ef304776b6dc3d2c2f767ed97041b331c173\nIN: b8250c93ac6cf28902137b4522cc67\nAD:\nCT: e2a13eeff8831a35d9336cb3b5c5d9\nTAG: 62fdf67735cad0172f9b88603b5f3c13\n\nKEY: 6585031b5649fcabd9d4971d4ac5646fc7dca22f991dfa7dac39647001004e20\nNONCE: 705ee25d03fec430e24c9c6ccaa633f5b86dd43682778278\nIN: 9a4ca0633886a742e0241f132e8f90794c34dfd4\nAD:\nCT: 0a8e6fd4cd1640be77c4c87dde4ae6222c887ed7\nTAG: edc4fbc91dfa07021e74ae0d9d1c98dc\n\nKEY: dfc6f7c86a10a319ebcb6362997e585f55b67f3434f47dc4039c2d67973e3077\nNONCE: 6097f30fd75229d928454c7d59a2d2c58bfddcb14c16438e\nIN: 74c946a7f0733377e852a23087506a28dccef86e101a4359c0\nAD:\nCT: 6e8ea0bb4c2f1323841d8e236816c61c3295866b75cefb5c25\nTAG: f16c0e9487ca7de5e7cb2a1b8bb370fc\n\nKEY: 59b8d488773767c4804d918709cfec6c69a193371145bb94f183899851aaadac\nNONCE: ad5bdf8f190ca2d2cc02a75bb62aa22274cb3c98fe2d25f2\nIN: 066b9ed10f16d3dc132b409aae02d8cac209dd9b4fb789c4d34725ab2a1f\nAD:\nCT: 2bbd4542489006df66ad1462a932524642b139ddcbf86b6b480e9e6d976c\nTAG: ca4835419ba029bc57010a8cc8bca80c\n\nKEY: 8c0cb4633cf8dc6b4b9552d1035f85517cb1ba4c36bcbc43338a8c6c7d15ce20\nNONCE: 8418b9655a0376fadefa3cdf8805815c4f7b56f467a74a95\nIN: 50c205a9c5d4088ba8e59a96fcd837f5170669854547678288199f1078ff2a81f0b19a\nAD:\nCT: 8b55a12df1a85dd3fb19c34ab047a85849d15a30225bb5360bad1f0a8f5f2bd49f5898\nTAG: bce13201df6e4a7e6d896262e45d969d\n\nKEY: b45386a75a5772e34bd193e1946f69ebfb90c37ae4581d39c9669d75e4584f50\nNONCE: 9fb763d0926585b5f726af9b8e3babdb331e9aa97f8d99ed\nIN: 64df0e341145d9e4a0d090153591a74893bc36cb9dae1e9570d8fee62e907cf004f9d8a360343483\nAD:\nCT: 3146d8a5c898edd832ec9d126e93b3a433ec97dc47dce0e1985bda88c88c6aeca46fc7d9a68e30ab\nTAG: 44fdb0d69abd8068442cb2ea6df8b2f2\n\nKEY: f2efbd358dd353639a162be39a957d27c0175d5ab72aeba4a266aeda434e4a58\nNONCE: 65a6f7ebe48de78beb183b518589a0afacf71b40a949fa59\nIN: f7473947996e6682a3b9c720f03cfaf26bbcdaf76c83342d2ad922435e227a5d1eacbd9bd6ea1727ec19fb0e42\nAD:\nCT: 778a0fb701b9d671ccfaf1454e8928158ede9bb4395119356a8133036840c1bcbb8fe5e19922fbbcf8b18596e7\nTAG: 9d195a89fdd29ca271405d3330f996f9\n\nKEY: 9dd674fb4a30a7bb85fc78050479ab0e2c3cc9f9f5b8689a7a67413aca304b21\nNONCE: ad9e8fe15940694725f232e88f79cda7c82fe1b8aae58ba4\nIN: 7272bb6609cbd1399a0b89f6ea255165f99330aeb170ac88fccdd8e226df0952407e35718fb5edc9e987faabb271cc69f7e7\nAD:\nCT: 846901650cb38974463a18c367676e1579ebdaf3e96b57224e842f5d5f678f3270b9a15f01241795662befb3db0768800e25\nTAG: 900004db3613acbeb33d65d74dd437d7\n\nKEY: 280cbe7380a0d8bb4d8dd4476012f2eeb388a37b8b71067969abb99f6a888007\nNONCE: 2e1854617c67002599e6b077a812c326deb22fe29d093cbb\nIN: d0901ec3d31ece2832685ff577f383bdff26c31341ea254acee7c5929a5df74fea2aa964524dc680b2f55fbd4fea900e956c304cc4ac3c\nAD:\nCT: 546370726cc63068d3520d67f4f57f65d03b9ecec21c2a8c7b1133089ad28b07025a7181bddeb4a49f514fac1a44f64ee3af33d778fb98\nTAG: 39084e33e42a1b05f58da65ba487d138\n\nKEY: 887564f75afa78f595cdadcea7340d20f5c5a2df169d0ad14b15fe32ce337004\nNONCE: 54c11df13d1f444da80b0964caeb59474b17b23a650a33f5\nIN: f0f008eece79ecb24b715dff8a3456dfe253924b99f98f2f1b18564cced50925fca860d1c2d4785bdf4a964c76c3079efa6b37c4ba2cacc534fb590c\nAD:\nCT: 32bb077268568d569b39e8ccdeeeb447ef424eaa2ffab565209a19b16a25952f897e5405bb0d67d8c9005d1c0b32687164d17fa4d0f412b80414c025\nTAG: 0bac7c0f8dce12917fbd4ed1738ac0cc\n\nKEY: 21c6aa88eb1a320d251f71a4b312ca75347040990d869a1dd2a1982c30fda2c7\nNONCE: 7dead2f1a3d9d45a9124a40efe8994300976991a4417ef4d\nIN:\nAD: e1bf7de4\nCT:\nTAG: 341e9d0687006f981bced2f985f953e6\n\nKEY: 0c97b9a65ffcd80b8f7c20c3904d0d6dd8809a7f97d7f46d39a12c198a85da5d\nNONCE: 1f2c1dbc5f52fc9c8f9ca7695515d01d15904b86f703fba3\nIN: ecaf65b66d\nAD: bd8a6f18\nCT: 8d1b2b0e38\nTAG: 27a7c7ac8bda627085414f0f31206a07\n\nKEY: 4ab5e3595f39c4379a924e5f8ebcf3279075c08d18daff01d9ddfa40e03faf12\nNONCE: 94e6ddc294f5f1531924ec018823343ebcc220a88ea5ee33\nIN: c91b73abe5316c3effc6\nAD: c576f6ea\nCT: abe960fbc64b339c53b1\nTAG: 7ebae48a2ff10117069324f04619ad6f\n\nKEY: a1e6146c71c2ea22300e9063455f621e15bd5bf1a3762e17f845e1aba5dd5a9c\nNONCE: 82ddb6929abff8a9ad03dfb86c0bb3e7c092d45ebfa60a1b\nIN: f011f32ccc2955158c117f53cf7b12\nAD: 5d14bc05\nCT: 44592321c665f51e9ffea052df1fea\nTAG: d556798b97f9b647729801419424affc\n\nKEY: 7a1af30362c27fd55b8c24b7fca324d350decee1d1f8fae56b66253a9dd127dd\nNONCE: 61201d6247992002e24e1a893180d4f0c19a3ae4cc74bf0c\nIN: 5c7150b6a4daa362e62f82f676fdc4c4b558df64\nAD: 00c49210\nCT: 27d9e2730b6809c08efbd4b0d24639c7b67486f3\nTAG: 5889fdee25379960038778e36b2cedb2\n\nKEY: 0b3fd9073e545ac44a7967263ead139c9547f7a54f06228fd3c8609fa2620784\nNONCE: 6450e1097d6f9ea76eb42e8e65972d501041c3a58baf8770\nIN: d679ae442b0351e5bff9906b099d45aab4f6aea5306a7a794f\nAD: 318d292b\nCT: a3f9ee45316d7b0f948a26145ee4fd0552bc6dc25e577e777a\nTAG: 0068a401a194b8417ec0e198baa81830\n\nKEY: 047c7d378fe80c02ee48df6f679a859253aed534fdcdd87023eb3d2f93fcafe3\nNONCE: ed240b0ff6f8ac585b3ea1ab2dab8080fc2f6401b010c5d0\nIN: 7288afb4e0fa5c58602090a75c10d84b5f5f1c0e03498519afe457251aa7\nAD: e4310302\nCT: 87906b14ca3e32ab01523b31ae0bb74590ce9e1df0811e743a2c7a93415a\nTAG: 3a0abeab93792b1ffe768d316da74741\n\nKEY: 1ad4e42acc5dfd07eb0a2456e9103cd0e150a36c667eb2f2b73c0d1ac1089ce3\nNONCE: 48efb52387284c5d38b4940c75f0c39a3f81f60bfebb48cb\nIN: da7edb5b3193b4484f09efa85fcf85600968ecdc537d3829a469c866ee67b0df677866\nAD: 446be8e3\nCT: b76457ca99e95b6539b12f1d6bdac55a6d5c6469b1ff274459363ec05241f7e6e5d3ce\nTAG: 06880ee508ce929da5a81f8b9de0031c\n\nKEY: 702a554c1b703d4dd69ad51234293ab787a01e15bdb3ce88bf89e18c01a67164\nNONCE: ea535d9c371241b9850b8b4a596b63db79eea60bd2cd9fbb\nIN: a97156e9b39d05c00b811552d22088d7ee090a117a7f08adac574820d592021f16207720d49fb5fd\nAD: ba5790e3\nCT: 8d0b2b04479c33287096f0c6276a73f6c037edc1a2b28f8d3b2b8e6d4c5f9dc5113309dd3ecb15e6\nTAG: 3cf303305e12924d29c223976699fb73\n\nKEY: 1bb7303fefa4d8d344bb9a215901b2314324bf1f3aeb9df5d1c1532c3a55ebf1\nNONCE: a304551e5f0dc98995ddfee6215a9995023a3696debfd302\nIN: 6cf6819ce3e7ed9d4f85f4a5699701dbcaf3161adc210c0b7825ddfd83d6d7c685db62f68b3801ccc8a786066d\nAD: 901c5feb\nCT: bc5ef09c111f76e54f897e6fce4aee1d25b6ed934f641ed5262d0c5eed45f610a6aea3b58b7771e34256d43a16\nTAG: b83f73f7995ba1b243dbf48ddfeb8e3a\n\nKEY: 24b294f6cbac10d87158d1c6aca83b337d596132afac7633f69a3b3e58823f11\nNONCE: 805772ff619cc6fcc5ec0e9965435d6f74a2290c055ec754\nIN: 65e8581286868caabcec1a9814db00b805edc660b94ee3babc6ce19a3ca868bd322105484d59b4ce02ced4071bc16642a1f2\nAD: 7ae1", "c561\nCT: fe1d463b1466e8e411f0b0700f90760472ee5141f3e5afef43fd729f1623dca75cd4d00576765b335f8b2b77b00527599cb3\nTAG: 111d8540fd5ec04b9ba16ed810133026\n\nKEY: 38e63e8b6402ac3f6d1641a1e3b74d2074be0fe41129975a3ff62b74ca52af05\nNONCE: 228d671b036710cbdaa72e9bf1d9ed6982b0bb3428a69fd6\nIN: 20a8d18878924d09aac32853c10e73dbd741134b7050ae6999839f2dbc727cb0052b5497c4bbd2a89e716278f15c81b871953614a49693\nAD: e9e6ac73\nCT: 80e0fe8eb26e5df229c6d939c944d440a37aa3cabf76eab5b9a420095513021ea4241ab367f6f44a20817b14631549ae6c96aa963970e1\nTAG: 1e80fbafcc7168e0494fce4cd76d692c\n\nKEY: 4325dd8406fdb8431a81f1b5db3603995256de36121019724cca2190c87a6e83\nNONCE: dcbf3077b36d5d678d668fd2d0c99284c780b55c4658ea75\nIN: 4f599ad04f79be9add10fdc649b8be53e1062ea5e9c2bed22265dc6fb30d5ab4fd4425b38ff14d8e68013405bec1eff8c9ef3069902e492aac73dcd9\nAD: 6fa0d757\nCT: 7decbdc7043495c59ecc64e720436bb0708b586a46f8745f74391477f5a2520905dfcebc3765a330999013d309dfaa997bf70bab6a0b8f4f2a2a3cdf\nTAG: 051ec4ecce208d9be0cd17f434e13be3\n\nKEY: 2d3d9ed4bc9eb9668733bafbb73e88be2cd17021c3a23be69b981d9f0df71df1\nNONCE: 84cae69639240c82b58895997511f145e474ebe1b008f391\nIN:\nAD: 64db597c26a4c3da\nCT:\nTAG: 2a22c4a962d46a719014ab7b0ffaf6d3\n\nKEY: 09ec4e79a02db53b19b54dd2d3592afc92c74ef57d1e0f51f3726a6631b1b73f\nNONCE: 2907ced16e0777fedb1e2de30df11b3fd712af41dd714a4b\nIN: b6e50cd4ea\nAD: b5488e9b7f339b7b\nCT: 0163e75330\nTAG: e29401c6d756adcc516580ae656852aa\n\nKEY: 9d5ac25a417b8a57b85332979e8a7cbad23617bb27772bbccc2acb0acae7b755\nNONCE: ff152421688dd6af7fef87817b508493a32d97a06fbda4f3\nIN: 92f4b9bc809be77e6a0d\nAD: 892b793f7a6e0727\nCT: bcc594f59de8ee8c22c6\nTAG: 1a8275816c0d32a1b6cfd41fa3889558\n\nKEY: eccf80c5f744d2ecc932f95ade0d9fe9327e19795023db1846d68d04720a2401\nNONCE: abc050fad8876589633b222d6a0f2e0bf709f73610aa23ee\nIN: 45a380e438405314510c166bac6840\nAD: c32c9a1ce6852046\nCT: 9fa452dc9ca04c16ff7bde9925e246\nTAG: 3d5e826162fa78de3fc043af26044a08\n\nKEY: b1912d6bc3cff47f0c3beccff85d7cd915b70ab88d0d3a8a59e994e1b0da8ac8\nNONCE: d8756090a42eea14ff25be890e66bfe4949fad498776ea20\nIN: e2f85df2ebcfa6045bd521abfe8af37fc88a0be1\nAD: 4576bb59b78032c8\nCT: 5eb6324aa48e0a4f72f5cb0a4917faf93af4209c\nTAG: 774f8077f039588495045fee07950e14\n\nKEY: 85162b111c9f3163f57c2cbc311a1e9aeed9dd6136b5784bc9c0b5052f8bffbd\nNONCE: 23cdb8b546bb8a5a746b24446f0ab4199f0543d915ff51f1\nIN: dc81000077d5743beef09ac91663885d984212bbccf3dbe6f3\nAD: 3084f3e9c4d0a15f\nCT: 692d17ae0b524ec6edc0cf49b69ac90c99bed44691f7ae63b7\nTAG: efe72ff84b3bccb4d83a27ddc574bc21\n\nKEY: b05ca358d8ca79f51283d83e2673bfb741c379ba271a773b8dd9c6a108e758d3\nNONCE: 9a53ad79f535c6e9da011463063c896f2ec7645e6e3548fc\nIN: 44e793742c774020e7349c996418042dc0dc30ee2bfd2654008c8929a436\nAD: 71ab5948c5e0f4c6\nCT: c5eddb7aeaa175b5f3dab68cf746f2acaf56fc62b29804629e25e2d63879\nTAG: bec3b7a8b8dad22ff3d14d26273294d2\n\nKEY: abb5136a01354c765a96e832df58bec3b088bd19dc4d6bd6674f2f02007ebdaa\nNONCE: 71267ac9f4fe5caa1d52cd85948a170a778f0141d54dbffe\nIN: afb526fe41c4e2a767ce77c4145b9d054268f5f3b279237dec97f8bc46f9d158868b86\nAD: 047baa2b04748b62\nCT: 0032d4c1e65da2266539464c5d3c2b1618454a6af0e7f1e3cfc87845c75f2f4ae8b03f\nTAG: b526a95a33f17ab61f2cdfc1e2dd486a\n\nKEY: bb826ed38008a0d7fb34c0c1a1a1149d2cad16b691d5129cc83f5eff2b3e5748\nNONCE: 4e02fe0915d81e9d5a62e5b3551b9db882e3873c0aaa230d\nIN: 20270d291a8d9791b0f5e35a64387bb4237bad61169841d7e1667c994ad49869c7d5580ffa752a2d\nAD: db852a275081e29b\nCT: d740012efb7e1bb986ce2c535134a45f658b92163c109bdecf1ce5b836879fe9e006a56be1fac8d7\nTAG: 21e931042e7df80695262198a06286c9\n\nKEY: 938d2c59f6f3e2e7316726537932372e05e8c1b5577aae0ee870bf712ff001ab\nNONCE: fb4d71cf7eb2f70df9759a64c76a36b75203f88bf64f4edb\nIN: 8910415d674a93c54c8f5e4aa88e59648d9a0a5039a66837d58ab14f0665a5f6d9af9b839f9033d0fe8bc58f19\nAD: a3fca278a63bf944\nCT: 1905c6987a702980b7f87f1ed2d3ae073abe1401b23434f3db43b5c37c979c2068ce9a92afedcdc218003848ea\nTAG: 1bd712f64777381f68be5ccc73f364a3\n\nKEY: dd0521842f498d23236692a22db0eb2f0f14fef57577e5fb194503e206b0973d\nNONCE: 519e0eee8f86c75c7a364e0905a5d10d82073e11b91083a5\nIN: 61ff13acb99c5a7fd1921ec787c8de23c1a712ff002b08cecc644a78c47341eab78e7680380c93c7d53d5e56ef050d6ff192\nAD: bb5c4e5ae8f7e461\nCT: 9bfdb0fd195fa5d37da3416b3b1e8f67bd2a456eb0317c02aabf9aac9d833a19bda299e6388e7b7119be235761477a34d49e\nTAG: 0f0c03b8423583cb8305a74f622fa1f9\n\nKEY: 189bd84be3fb02723539b29cf76d41507c8b85b7217777ee1fb8f84a24aa7fee\nNONCE: ef1bf39f22ba2edf86853505c24fafdf62c1a067963c63ba\nIN: d5f96e240b5dd77b9fb2bf11c154fcbff312a791c3eb0717684e4fd84bf943e788050b47e76c427f42f3e5344b2636091603ba3b1d7a91\nAD: 93368a8e0900c7b6\nCT: c55a8b7f587bee4f97514582c5115582abffd6312914d76c2568be6836f62ba098789ed897c9a7508a5dc214bf8c218664f29941ccdfd6\nTAG: 78f87352dcb1143038c95dc6e7352cfd\n\nKEY: 23a2dbfcd02d265805169fa86e6927c7d49c9a24d2707884e18955e32dafc542\nNONCE: 305c7851f46f23ea8d832d5ed09d266714fd14f82ba0f69c\nIN: 224de94a938d49cad46144e657e548bd86690a1b57b81558095eace59df1c552600dea389aaa609304fbc1eadf2241f2118c8bdf04522e1898efe1d4\nAD: 0075b20502bd29b2\nCT: 8e10c59369bbb0d72958100b05788498f59588795e075b8bce21d92d320206348b04010ced9b8cd3d651e825488915ce4a6e4f1af2f4d2f77b955376\nTAG: c39f0595ae8112dea6ef96df1c12458b\n\nKEY: 264e3c3f47bdf795cdde57d9a30be5a4da8b18463c0e3e05df28b7bf4e56410b\nNONCE: 3ee09b6e205c261bf48ac53a9ba0afa460a5d5c0f2d80be8\nIN:\nAD: 8eeec09d8972cb8ab0069554\nCT:\nTAG: 245a034d84edab9fa6f0decb6b984766\n\nKEY: d8ba98a272b5f91797b04b114311c3b92b7f2e3bb72edb7f78ed311b9f8ea2ad\nNONCE: 481de9a06eee76a501e3c2b9d7423d90596193ad9d8a6564\nIN: 9ee1a3134d\nAD: 928653701f6d6c8429b08c0d\nCT: 459a07898f\nTAG: 9188ec8d8e3bd91dcfda48fcc76773f7\n\nKEY: ac9afd627a745df682bb003517056f07876eb94d2f8c610c61b6ac0d34ec4ec0\nNONCE: eaae7b8704530db1e8c3dcc968a00604a333c7c27ba51b16\nIN: f7c3f6ee2e9c03394dc8\nAD: 796620b367d5f041821baf69\nCT: d4a69005790cc91d8d34\nTAG: e4c83def113afcf83a1ea8cb204a0eae\n\nKEY: ea1a07c1fd60a5421f1fb6c43b4318090e290c97aa3bfa037e6fc5ee00fd47d4\nNONCE: 37327805cce92b38a669affbca1de92e068727fcf6fbb09a\nIN: 7002ca765b91913ee719e7521ef5ac\nAD: 64e7c48fc3041eac0734737f\nCT: 9d8857a8c52a9ab3bf44b024b191b6\nTAG: d072c31714a7d0fe1596fd443a96e715\n\nKEY: b3beb34fe0229fc8f49b354e941025bde6a788f25017a60e8a49591ed5d7e7da\nNONCE: dd0e9fec76de1f6efb022b12164f7e9248b8e8c01d14ac02\nIN: acf360d7529a42be1f132f74745a940da9e823f2\nAD: 1489ca8d852f0a8547dbe8bc\nCT: 2e8718372d6e8167213cf112dc41c80377244f5a\nTAG: e4f31e8f84b9356999dc60989009e698\n\nKEY: 9357cecd10bab8d2e42ed88c0386204827c3b76e9e51150d09fd4e3b4e0e1e6f\nNONCE: 81f2106a5379e0ed861cf76b3cf95afb17515478b5cbcae9\nIN: ee51a0f25d091288b5e2b91ad11d491329e48b35a18a3a8685\nAD: b80cb677f4b409cd1537363b\nCT: f681f19fa8de1fdea3538001a46f30fa6333b76d6439337e68\nTAG: afad5e6d282d9df6d8119c32237b3e60\n\nKEY: 9f868600fbf81e40398b7dfb201fcae35d34bba10908860b0b2bf8b942b4e8fa\nNONCE: 2ddcc13c97185614095d437900b8c0a9170e0a4a50e46ba5\nIN: 133fa3ac176fee6df67472752e41c6834f13300c0064ff5b190f903b7ac7\nAD: 0d61321fbee8bb1f3f5cb454\nCT: b93abb311ec0bf018dc300c7d511b42ade72780373186e231820b44f22f0\nTAG: f8bd2f649a337783ff911e37966037bd\n\nKEY: 05affcdfce0a28539924370db8d80a78b835254778ec41acbff52bfab092fa33\nNONCE: 3edaeb185f7273b1a7cccba54f84c5f7d6583433b49d3694\nIN: 7657581faad266cc1037962a380c8aa5306f88000427d0a05397696b503790ad2643c6\nAD: d7c213e9e6f4a40f3e5b662c\nCT: 5eb19080aadc89f2329da4f5c41dc60568651c424c1b05d827f2bfb8dbff42c5a08224\nTAG: 2da20087b5674f0b967d1baa664bbd82\n\nKEY: 645ed60ec74ddfe1f02694792db4436c262d20405d8645cd9755d64876219799\nNONCE: d83665b44c1fdf567299f2b8501e9c0e7ae2dda0bb8f2c82\nIN: ceee69d32ad4667a00909964d9611bf34fd98be41ad7f0feaaaff8169060d64cf310c13bcb9394cf\nAD: 57379f8f44191ec9cf3b1a07\nCT: 4496a0666f0f895ebce224b448a04502f2ae7b354d868b7c54295bf051162e82c530c767d1ffd2cc\nTAG: 1ffc56da4fb961ffdfabe66d82ec8f29\n\nKEY: 06624c9a75bb7dbe224a3f23791281f53c40b407a14161a3f82f34924623dc02\nNONCE: e647b8b4739bf542a81d72d695e1cd6ba348fa593987ac47\nIN: 2658763f8d70e8c3303582d66ba3d736ce9d407e9507f6c6627e382d0144da157d73d0aee10ef034083cdd9013\nAD: 75536443a6c2189a57d553bb\nCT: 305cab5c2f9a6edccac307d6965febe3c86f2a1e31ac8c74e88924a10c2a29106bce980c803b7886985bba8ec5\nTAG: 8c12bb58c84175b9f601b704d0f8a25c\n\nKEY: 63aeb46083100bbcc430f4f09bcc34410df9cfd5883d629e4af8645ffabb89c2\nNONCE: b09830874dc549195a5d6da93b9dcc12aa1ec8af201c96bd\nIN: 1b3c9050e0a062f5a5cff7bec8706864c", "f8648142ec5cb1f9867ace384e9b2bba33aab8dc83e83b2d2fac70cd5189f2b5ab5\nAD: 7dcc05b0940198bd5c68cdf1\nCT: d8b22e5d381de08a50b163c00dbbca6c07d61c80199cebd52234c7bd4f7ed0a90d47ef05617cdb8e3f782875ae629c0f0ad6\nTAG: 194077f0e6d415bf7307d171e8484a9c\n\nKEY: 4826c1bf8b48088fece4008922173c500ff45790f945b1027f36110da4fecc92\nNONCE: 3a78fc7397944d762303b0a75974ac92a60e250bf112600a\nIN: d26e3a2b92120ff8056bb992660cc8a2364792589c16a518b8d232b8184aed05ba8d4fd0b2ad2b928cd873e11905a21ffece5f1e63c974\nAD: 904d2cd3e50f7bfb9352f142\nCT: 21f4cf679662fad36f57945fc0c0753c3791261eb58d643278dfe1f14bfb585c5a01370ba96f18dc3f6b6945a2c6997330b24f12f5219a\nTAG: 95397c54428f9d069c511b5c82e0151c\n\nKEY: ec526c03d8a08e8a63751112428a76399c399e8b83d98c9247c73164805ac8fe\nNONCE: 2cc1a6ae89c2a091415fa2964b44a0e5da629d40d77b77f1\nIN: 567377f5b6df5442e70bc9a31bc450bd4febfcf89d7ca611353c7e612d8b7e36e859f6365ec7e5e99e9e0e882532666dd7203d06f6e25439ed871237\nAD: 35575b56716868b66cd21e24\nCT: 6b738274fe974438f1f5fca8ef1ee7df664f1e72bc54ccd3fb58c4a3df67ef9a73261df41ffe9c52aeafc8be4f6524baf9efb1558d4a57defec7bee3\nTAG: 92599d4b14a795e8c375ec2a8960b4dc\n\n", }; -static const size_t kLen17 = 98266; +static const size_t kLen18 = 98266; -static const char *kData17[] = { +static const char *kData18[] = { "# RC4 tests (from rc4test)\nCipher = RC4\nKey = 0123456789abcdef0123456789abcdef\nPlaintext = 0123456789abcdef\nCiphertext = 75b7878099e0c596\n\nCipher = RC4\nKey = 0123456789abcdef0123456789abcdef\nPlaintext = 0000000000000000\nCiphertext = 7494c2e7104b0879\n\nCipher = RC4\nKey = 00000000000000000000000000000000\nPlaintext = 0000000000000000\nCiphertext = de188941a3375d3a\n\nCipher = RC4\nKey = ef012345ef012345ef012345ef012345\nPlaintext = 0000000000000000000000000000000000000000\nCiphertext = d6a141a7ec3c38dfbd615a1162e1c7ba36b67858\n\nCipher = RC4\nKey = 0123456789abcdef0123456789abcdef\nPlaintext = 123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345678\nCiphertext = 66a0949f8af7d6891f7f832ba833c00c892ebe30143ce28740011ecf\n\nCipher = RC4\nKey = ef012345ef012345ef012345ef012345\nPlaintext = 00000000000000000000\nCiphertext = d6a141a7ec3c38dfbd61\n\n\n# DES EDE3 ECB tests\nCipher = DES-EDE3\nKey = 2eaf97304cfaeb822c04a7b7bef328c7b82fef2ae81b06b5\nPlaintext = b3ed255d4f5e2d6d9a1aa2bc03489064d28fe1431eceee183b7231fad3273140\nCiphertext = 629d608789e51dff699343d061ec01d94c0681c7698ab617ea0145f37304c8e2\n\nCipher = DES-EDE3\nKey = 72f52e1ded0a88eac6c88d2901b27c2fd6e9f3f3387432ee\nPlaintext = 60de7b5667a1ad5995f178553d695d9b0fb537562876faa9b6cc50d05a1271ac\nCiphertext = 09875b215ed2499318c2d99c48209ca5f288830cc6edb9538190fa3ca31fa175\n\nCipher = DES-EDE3\nKey = 4cd30f1e14d485dbc05c69b65ebf44e556056a2261c9e714\nPlaintext = 7ae59441bbd665d8867273386fc72a8cd62cc5bc6bb7cbd57fc1f5dcdc73adfd\nCiphertext = 004d0daad970bfee944c8779927867b964dd0afaae7a830c2b8e7fdcaeac2158\n\nCipher = DES-EDE3\nKey = 7a07ac63adfaf1b26860ce39edfc402758bc4d1edda156ab\nPlaintext = ed4f18cf10bfcbd4354710df053d3e2b776860137349471b8dcf526b8eea8b22\nCiphertext = a1fc1014abda7e198ac8e096a368f65d9b59e1eddf5d97715015a2408dd8e799\n\nCipher = DES-EDE3\nKey = 37c443ab336fed59b0efae51ea7f5d07b7040868beefcd99\nPlaintext = a10a180cc94b75fc9d6556dfc0a816b71020dc3906f9d59d9dd4c839dfc1c1d3\nCiphertext = 0a874652b621618635138a7d4b33bb624f91a39ef1422b3e0490311ac6df3602\n\nCipher = DES-EDE3\nKey = 1ff1a7f4839d484e308d9b8c2c052b126def413d5fb8e0c5\nPlaintext = 4f28ef6683d36c80556ff240b247a3967aec23f859e3afb93aefad93b1e9964b\nCiphertext = 87a8f3fb4c51b3caf19c4ac51363d92025acc053e538c1502d347a618314a4bd\n\nCipher = DES-EDE3\nKey = 5642c4d1859a85b342e3f253fd8bd835e856c451e63673e5\nPlaintext = 687af9b298db752b47982f64ad9bff52a9ae487aa5e5c08f902035b0633225bf\nCiphertext = ca2ed48392ba5d70879ac8772180c3028ef946b6ac1df0348f206ce16bc449bd\n\nCipher = DES-EDE3\nKey = 30f9d27472f9deee309dbca76ba29ca174c39d0631084735\nPlaintext = 85db2c266902932c8e46d0207459b203f90955adcd7506b49bc82e2796de764f\nCiphertext = bbb5940b45add7c587cc9fcfc40674bac7e081baf71285891c65ed9573947a07\n\nCipher = DES-EDE3\nKey = ebc5a73005b77a812c3f4f61669ba859939852580fa61cbc\nPlaintext = 808d22c60b883a986dcb0860e8d92a75441cca0a2a4b06dd78dbcbec198b38d9\nCiphertext = 75d39d30862431ab07227e22b4c8218f1fbc2a3816daebc555c1b999c86d15c9\n\nCipher = DES-EDE3\nKey = 2e8eb05dd8a2b7a5a61a6b8a3830b12da2c4b1bea1e884d5\nPlaintext = cc7569d005afd1a365f5c5836c14475fc15091199902af4a78460d56c16f91ca\nCiphertext = 64db8af7a30363051a017cc92ed67ac6c0e2e1ffda0c94bbf0eeb803ba6b3d22\n\n\n# DES EDE3 CBC tests (from destest)\nCipher = DES-EDE3-CBC\nKey = 0123456789abcdeff1e0d3c2b5a49786fedcba9876543210\nIV = fedcba9876543210\nPlaintext = 37363534333231204E6F77206973207468652074696D6520666F722000000000\nCiphertext = 3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675\n\n\n# DES EDE CBC tests\nCipher = DES-EDE-CBC\nKey = 0123456789abcdeff1e0d3c2b5a49786\nIV = fedcba9876543210\nPlaintext = 37363534333231204E6F77206973207468652074696D6520666F722000000000\nCiphertext = 7948C0DA4FE91CD815DCA96DBC9B60A857EB954F4DEB08EB98722642AE69257B\n\n\n# DES EDE tests\nCipher = DES-EDE\nKey = 0123456789abcdeff1e0d3c2b5a49786\nIV = fedcba9876543210\nPlaintext = 37363534333231204E6F77206973207468652074696D6520666F722000000000\nCiphertext = 22E889402E28422F8167AD279D90A566DA75B734E12C671FC2669AECB3E4FE8F\n\n\n# AES 128 ECB tests (from FIPS-197 test vectors, encrypt)\nCipher = AES-128-ECB\nKey = 000102030405060708090A0B0C0D0E0F\nOperation = ENCRYPT\nPlaintext = 00112233445566778899AABBCCDDEEFF\nCiphertext = 69C4E0D86A7B0430D8CDB78070B4C55A\n\n\n# AES 256 ECB tests (from FIPS-197 test vectors, encrypt)\nCipher = AES-256-ECB\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\nOperation = ENCRYPT\nPlaintext = 00112233445566778899AABBCCDDEEFF\nCiphertext = 8EA2B7CA516745BFEAFC49904B496089\n\n\n# AES tests from NIST document SP800-38A\n# For all ECB encrypts and decrypts, the transformed sequence is\n# AES-bits-ECB:key::plaintext:ciphertext:encdec\n# ECB-AES128.Encrypt and ECB-AES128.Decrypt\nCipher = AES-128-ECB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = 3AD77BB40D7A3660A89ECAF32466EF97\n\nCipher = AES-128-ECB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = F5D3D58503B9699DE785895A96FDBAAF\n\nCipher = AES-128-ECB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 43B1CD7F598ECE23881B00E3ED030688\n\nCipher = AES-128-ECB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 7B0C785E27E8AD3F8223207104725DD4\n\n\n# ECB-AES256.Encrypt and ECB-AES256.Decrypt\nCipher = AES-256-ECB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = F3EED1BDB5D2A03C064B5A7E3DB181F8\n\nCipher = AES-256-ECB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 591CCB10D410ED26DC5BA74A31362870\n\nCipher = AES-256-ECB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = B6ED21B99CA6F4F9F153E7B1BEAFED1D\n\nCipher = AES-256-ECB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 23304B7A39F9F3FF067D8D8F9E24ECC7\n\n\n# For all CBC encrypts and decrypts, the transformed sequence is\n# AES-bits-CBC:key:IV/ciphertext':plaintext:ciphertext:encdec\n# CBC-AES128.Encrypt and CBC-AES128.Decrypt\nCipher = AES-128-CBC\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 000102030405060708090A0B0C0D0E0F\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = 7649ABAC8119B246CEE98E9B12E9197D\n\nCipher = AES-128-CBC\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 7649ABAC8119B246CEE98E9B12E9197D\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 5086CB9B507219EE95DB113A917678B2\n\nCipher = AES-128-CBC\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 5086CB9B507219EE95DB113A917678B2\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 73BED6B8E3C1743B7116E69E22229516\n\nCipher = AES-128-CBC\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 73BED6B8E3C1743B7116E69E22229516\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 3FF1CAA1681FAC09120ECA307586E1A7\n\n\n# CBC-AES256.Encrypt and CBC-AES256.Decrypt\nCipher = AES-256-CBC\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = 000102030405060708090A0B0C0D0E0F\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = F58C4C04D6E5F1BA779EABFB5F7BFBD6\n\nCipher = AES-256-CBC\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = F58C4C04D6E5F1BA779EABFB5F7BFBD6\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 9CFC4E967EDB808D679F777BC6702C7D\n\nCipher = AES-256-CBC\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = 9CFC4E967EDB808D679F777BC6702C7D\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 39F23369A9D9BACFA530E26304231461\n\nCipher = AES-256-CBC\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = 39F23369A9D9BACFA530E26304231461\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = B2EB05E2C39BE9FCDA6C19078C6A9D1B\n\n\n# AES Counter test vectors from RFC3686\nCipher = AES-128-CTR\nKey = AE6852F8121067CC4BF7A5765577F39E\nIV = 00000030000000000000000000000001\nOperation = ENCRYPT\nPlaintext = 53696E676C6520626C6F636B206D7367\nCiphertext = E4095D4FB7A7B3792D6175A3261311B8\n\nCipher = AES-128-CTR\nKey = 7E24067817FAE0", "D743D6CE1F32539163\nIV = 006CB6DBC0543B59DA48D90B00000001\nOperation = ENCRYPT\nPlaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\nCiphertext = 5104A106168A72D9790D41EE8EDAD388EB2E1EFC46DA57C8FCE630DF9141BE28\n\nCipher = AES-128-CTR\nKey = 7691BE035E5020A8AC6E618529F9A0DC\nIV = 00E0017B27777F3F4A1786F000000001\nOperation = ENCRYPT\nPlaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223\nCiphertext = C1CF48A89F2FFDD9CF4652E9EFDB72D74540A42BDE6D7836D59A5CEAAEF3105325B2072F\n\nCipher = AES-256-CTR\nKey = 776BEFF2851DB06F4C8A0542C8696F6C6A81AF1EEC96B4D37FC1D689E6C1C104\nIV = 00000060DB5672C97AA8F0B200000001\nOperation = ENCRYPT\nPlaintext = 53696E676C6520626C6F636B206D7367\nCiphertext = 145AD01DBF824EC7560863DC71E3E0C0\n\nCipher = AES-256-CTR\nKey = F6D66D6BD52D59BB0796365879EFF886C66DD51A5B6A99744B50590C87A23884\nIV = 00FAAC24C1585EF15A43D87500000001\nOperation = ENCRYPT\nPlaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\nCiphertext = F05E231B3894612C49EE000B804EB2A9B8306B508F839D6A5530831D9344AF1C\n\nCipher = AES-256-CTR\nKey = FF7A617CE69148E4F1726E2F43581DE2AA62D9F805532EDFF1EED687FB54153D\nIV = 001CC5B751A51D70A1C1114800000001\nOperation = ENCRYPT\nPlaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223\nCiphertext = EB6C52821D0BBBF7CE7594462ACA4FAAB407DF866569FD07F48CC0B583D6071F1EC0E6B8\n\n# Regression test for https://github.com/openssl/openssl/issues/1916.\nCipher = AES-128-CTR\nKey = 7E24067817FAE0D743D6CE1F32539163\nIV = 00000000000000007FFFFFFFFFFFFFFF\nOperation = ENCRYPT\nPlaintext = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F\nCiphertext = A2D459477E6432BD74184B1B5370D2243CDC202BC43583B2A55D288CDBBD1E03\n\n\n# AES GCM test vectors from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf\nCipher = AES-128-GCM\nKey = 00000000000000000000000000000000\nIV = 000000000000000000000000\nPlaintext =\nCiphertext =\nAAD =\nTag = 58e2fccefa7e3061367f1d57a4e7455a\n\nCipher = AES-128-GCM\nKey = 00000000000000000000000000000000\nIV = 000000000000000000000000\nPlaintext = 00000000000000000000000000000000\nCiphertext = 0388dace60b6a392f328c2b971b2fe78\nAAD =\nTag = ab6e47d42cec13bdf53a67b21257bddf\n\nCipher = AES-128-GCM\nKey = feffe9928665731c6d6a8f9467308308\nIV = cafebabefacedbaddecaf888\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nCiphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985\nAAD =\nTag = 4d5c2af327cd64a62cf35abd2ba6fab4\n\nCipher = AES-128-GCM\nKey = feffe9928665731c6d6a8f9467308308\nIV = cafebabefacedbaddecaf888\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCiphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091\nAAD = feedfacedeadbeeffeedfacedeadbeefabaddad2\nTag = 5bc94fbc3221a5db94fae95ae7121a47\n\nCipher = AES-128-GCM\nKey = feffe9928665731c6d6a8f9467308308\nIV = cafebabefacedbad\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCiphertext = 61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598\nAAD = feedfacedeadbeeffeedfacedeadbeefabaddad2\nTag = 3612d2e79e3b0785561be14aaca2fccb\n\nCipher = AES-128-GCM\nKey = feffe9928665731c6d6a8f9467308308\nIV = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nCiphertext = 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5\nAAD = feedfacedeadbeeffeedfacedeadbeefabaddad2\nTag = 619cc5aefffe0bfa462af43c1699d050\n\nCipher = AES-128-GCM\nKey = 3de7b368783bd7287f2b9b731814c876\nIV = 90dedcfff100eb1f1db9d935\nPlaintext = 8d766795cadc0961c0f448c62df3827eef3a8664599b3adbaab0cfd63875bceb8f992b4f7447dca10ddd716aa0bc4fe925e1aa3e3fd1d5c430c650fe3546d6b9a24d576a857c5f04e8c0a3b149df277aa19cfa64ee235891d3b8ec0e840d268b1e70dd8a4bf97628a0c7aea38aa21eeb8fb1a8437f2abfee05e0d2c30659e312ec03d30da51b7c19073a2341c17df806e27e796d581143d39e4de8d3f8d46aa6d6fc1a98d94fa69b92dab751d930cc12de21fb1a7468af09e3c12ff6c3db3967d10cf140bc46f17a16e24b010b6cba5ebf777341c52042596ee53008389c48d9690ab9f5625795c3e588f72f7a1670b2b25a9f4eee1c8845ac90f1bf47ae4ea4b607a50aca88ed304cbb700d02d5486139b0bc81ec042e574abf986972fa008b83ef22dbfe720c2f2f6355c87c975932cec545ebed657e5e7570c503e9aa7f0b87d0b2648e421ed1d34749637c95d1e931af8925236387e50454f0ba2e22ed05f90450fad46f4eb7ddb08656511dd065c0f852a7e42f618a961a6c6bec42226c6b6043580b009ec9837cf99844cb74794a82c269ff648e0bae9ae50256a0ad98ad9f5a35057b3004ac96f469f9ee966dadc16dc47616586cf242706df96bb2f7ee43d3bd1c65d2eac7b82ef242e77ab509afb9639e5f3995380e926305729ca762c487f4411ec2a9c688b8347e5287216dbb38c3fe2281a89fcb47ee2ee7ddf79bfa3ab61cd56a00981019bbcea8aa0444eb75958e5fa56ea0036d2de4950a7db886f4a318b433bd41e00905ab158171e0ef13172293bdf70064b9dc7b243bf9dc927589bf9e99468d1cb330639dbff1850cc51929b8971b0b2ede9d06bc5f6ba39d4551b587f09bf6f8206e8f1524f55714612581d6aa45d8fb83425f84a736576deeecafdcbfbb8670d14cd2ab2a7f8b7f374c07881b7bac2605fd5ff7ff7cf43e30cf49910961a9079c0343b8601be8c3e9fe38f49fdab0b7e1a8c1536cf84e4d80d26ae5ec37570839b5cda02929221898d611525c3a88fc444167ffc532b256cdd0a8f31ff08097d75b629fab99c9e1062d1d9962b211e15ec8709934029c4934e64db8d7a2f32e23dc541be306e9a57a3419115994cbc3a8f8d5ea2a6f45b9ea9ac0e51ed0c6680fa029f4552a6c8665aab00ab77928342e7284c321e9500ad4774ef1fed0f596d5aea371fe1793271aef38cde55547f34701a525526e83a72673385a85f44db511bc87ce1f831fc6ccf8204ca4f4a20eac09897aae93684f14ede21bcaf40a09c08012b92600d6a839ebdf8bdca7b34192c6c50bad8796b3be3c375dbae6217815d2c75cc878d39b4e842d4eaa5f5df2242cf230e44a240e18e47827f089b18bf880fd41a2516eac8e6ba3fc2db64a4bc28789860d7b18d9edeae8b3059f4d945b15d0ee27b1f74842dd1df117fe83a8fdade23a47c93902eedc4d33f2dbfcd1996e6dc1458409fde2302830e8d44c58c5ae67486b9950dd938f14c38bc4c9484fdc4ded93a0f90875773453fc14d428cd6e7beb0c705d61229d2b3df09632ebb30b325fefe2aebbf2a7aa8e4ad46277ca4b8b078818b63d04e7652057f6cbbab7c43ac355537e0d3918b4a73c00dbe6b30a27ee7a6fa213d3347ae478e8edc323404b8322b9c7b0173ed61c38ed25f3576a675d527d22edd51d6dfa5767560d3a50a91226338e8c4e6436eedbcd3d2efe9dc1e686b15d2f57d553abcfda57dc316ca453a690f20148f0dfa20c1c4a58240aaf7195095fedfa56d839d0230d55ce9a8ca1b9d1acd6fe98d583148ba0f4a4e3413c76e6ec57ddb79428d3a90079f64d3321c791f60d501c3fd02c8403f0f5e6c6836bbc96430c1b48e83350c3a3cfd017f15bee3e4bb1295d821dc98b85ab3145555cce2c34a8142fe50f8db19918b514a165d12ff6301fb2296788760ac0b6d9e3a57770ad5111cde5d24b6321918cb0b0887a282b827a8749733171914b000e7d3c0edad1d42ca60da37f0698554bb2a1749f73b3120dbeaa32951f8217a781a200467d5b569d16f56fc9b7dff0ac524f03fee0617f4c692d94613b1e13b18075dc9f0d32811d4a8949a95f6b5fa46aeb83597adb409e68b2a0177c36dcc95dcb2e7dd4fb7337ff97c013364fe139e185014948fa698741d822044fa3f6978b16afd18138c845587c405ebf7a6cd1c28610ce67e992ed49e406658a0a202feed9709500d064b6f53eecfca57dd4b38363ce3aae9d59126d8ae7e140a373851188ae28c909181d0ac64770df70dd2475809350cb367825b59d521d5e457b4e36aea6dedd90a2266898b753b57fa359d43cd388e7d6c7ed90bc4c2af34ceafe88a3af6ac376fec35f1240f08af4f3eb30bc53dd68e5762e6d39e6b16f63003fbe0bee828d0d7adc58c41e857c2c44702215b202701fc696eae021af19c79e59c3e32627cd571f5db99b17f1772b5d746196befabb0b7446687827f3315b391d5dff069b1c39c00bb143218ef458e3b397e1c99640d57fc8db2e0083d3d22ed4111a8fc9e0e6f55fe6a56e946dbee43909bdd7d516fdf756ed8099ba80b1e17a5e279119345104379a36962ca9c8b2a53c414d79eb09fe79862ca749a9eabd9185ad1df57215945882f5894868a134bfc35c835e040e77ecf077d6a98a73ee022963d70b036be3fe5718280ae52c5d751211b22950c0597aaedd35af41f7dd5999e5f7ee34a37edcf97df54a46742b0252b196eaee454ff0c30685b15f8de087de208906be1d971f0fd89f7cdff2af0bdc96759d6889fba9ef092ad1c8deab0404562a7f3977d211c28dfd1573aebd5427a8773f03986101703fa", "19cd4ab96a381c76a747f63b63f7a9a3a08e251cdc593a024f63b443b76d17dd9e151809da3c582fbd334fa6dd0221b6d410c6a78ba95bb0154bb8999f619f2e084a6b9755ceee4ca3c7e0481a47776c8814f13054e627e37630d593bd09d5f10a049c66c9999f4b0b037e81ef70615d674c7c7975972994a053c069675fad3fae5ae3e779233b70254fb87f25d44c104afc3d5911b8b695173f9337130e39a02cf97356cb817f6cd23f55ef74dd06bd24ce5887a7001ef576262ffaa99f9bb5e3f55bda2aa0f199115909af48bb4d6b1a0a0847774515302cafebe75aad1f63362b1f38141e8721851c3ef1a247931b3b450581eb5d09027b9e3ba60ae9801d629b74991b7fd65520eac561d47115a85141d9a757bc75710bedff1630561ae05254ea541a7ff1846ed5e164834417556dd562c45543c88d8030bb56451fd5b3cbf10fb0164c5288789d2aac7e7a836e79bc3dd401a8e3e05aa6714ffb2dfddb3037c35fa1ebed62a073b2da42133f2620ae88de5e3f46cc69f2b9b3c9b88e39b8b108059ac6bd493be5f7a39f6b53ee825f4593b77ec9238f5ab804d533f48803e7d8187291ee25cfac4da5d8c9279517adfb09c422f6d704711726c73828a5082b4c7b3d85611b8f496d3e0f78c5c4f1dd1c722b1b11d55861f232beee6aaef8a00fd2eeeb45f182af191ca6de8eaa25ceda5451416fbf6d1abc0670b8c10e2815076f271044c690bdcb64856b91265bac202043a28f6bbeb807535aad4bd89e572a9427c826b170d3862f4cca70ddffb4769d6593a1cc6c42fd06cf68642835fe474a23e6f63df316f8361bab959b768d78e20c03c2a99913c162a9662bd9981eee55922f36792de0af68da04ab49dca72e3d9b0de79df828b433bcf6be073f851a36418c03a717d54d48c1014ccb793577c8393b7cb53cad6bc7060a54cc6363734f6ad388763519ca09b533078d3cfa61d7bdd4c4dd0ffe64d68d501b55903d3f4a1f310a3826ac2ca700de01d656188dcf577fd1b63e305614b8d13471f6f84a5d4b12c5e119870a63d1e3dbd39d3b5c26b09f9d80f8a59ce836b20bc933496923d278a022c00f3aac204d07d2e5075bbcef1e4820d633a3a2b35974f72a033484a91a1d6a9913239c93e5783b01833073c98f358e3465efd5087af37ad60b7285550e776d67ea7019e788776c5a456102358c32eb4e7c28096af88b9a20d8ce379ba3928a10ffd539c106f4927e7ac0f382c74017d6e4438fb128c660affd45e9bb68452de72b574eeffe3ce239d0718908c3800bc7e8ecd2fc7d9754171506017fd7868594c9373a96579fed475a28811649ce5dc8a3107bd0d8578748878ce4998684620931dc3981a2499568c2f61174c3b3fc46a7010468e8ff75c08cd43ac764d95e2ad1659f9db62e9554f811e0f43bb74779d923c8c243d12a5314d3c0c6ec84fe60e1d2b2e2b20d3e64054d62049ef9233ff55223a319c285e4e3f4c98dc95b2ca81230d7fed9bb99fd7d97430eb32c9c11647992bd85dcb47cfd58ea3e221d095bcf9374a6baa7c8333581f62b9e489282483023fdd18451f09bec764146b587209160b3d1d7a3d2e145fdb640c4bc382541e0d84255122d51a710887ebe1ccf29d41b4dd7fd7368d68ada250d3968d6f0971f0849c13c09abadb9db8b08960a18f84f0346ea0aa71227afa55b90cabc062d549b616400d36450b19adb67d7358e48c043fa1135abfca89374c906f8d1a6a845debf6b37f055d390b029c7f4524958bdf8d7e2755dde3b957f0926f9d3b8821ba96044d3cad2d637b973bfb657fcc06ff44c17965acf572ab7a0c87604c7dd1cfd136a0ad02b22e8ef320e101ea09772588e8c5b4d88f40fe1be18d27146a2b9559491949671700cebff9a709f297c2621ca9d5d1749623abc20a326ff5be55cb9435c03bf49b147b1e0a4a918bfdc3642df90b396a474f81d75c953d87b3f3b4e31fced630bd7c481c63acbb84dd31249101ac5277a36dcdfc80d8d9a2e928e9b2d65bb257bce97ccda83b187da8a7886dc96eab93d0864d88c358105f9cfe1ad0f0a8508b5b3985ff95de652e684da970b57669aa3fdfbe590a631522abe8246393639709a9a6cd549e78e3c2d1acf84643e9f554c5e076f75a5c1dce1be20a66722d0b896837b7036509ab8d473d5d2b7a8374d6a575f69d54afe3e7e18f4faf4e917be8a74e55c271b96d966e0c0b883f84b3ef2e4f278daeda2efd3ce770801d2c4bda5eb9b646deeab9fa55324e917e63e4eb6aeb4176cb4e43af3db61aea1546fbf16e76a12fcdbe726b565710e3f9866551023e5fbac0038678717e6ab4d3e92dcc53049e8cb65c00216d31a8869ff4d3539313fe2fd7ce0f53b255e3659e7dfc5f92b7627dd9ba42972f0ba72b888932d870ab97226040c4c0f4826be131fe1d2cdc21005ec2addd7796f0927501251ab26b0e5f3f9d2a1cb346a774e18bc233cc89aa69f5f70e3d5c17098eed350ec419c82837153b5c7f5813bf5918defc8df143063f3fe45125deded2b15892d5cebce589b60f2ada0f9d608983e8d107d8e6482b5f542c6650b014445e8c055aac142f16cfc59229fc9626f7aaa40cefacef777e494e13dfa93d27c201788ca9f60e572af8d65ffb513473dade5fe494cbf7377bd1ed03db2571d65af3be4b0bf27c1f069797bfb67ef0bd8a88c6286af6712c106df9c418d88054e3b46c88296a2e63894d6bee0dda8833c373d6a1b27637e1510fea3eb2fb34ae27354571369653a282a8d19f2c34f9e5ec34555b4ed24327dc5d246df13736bd41021697104f80c85bd0ae920e9aeb4e628fb8aec269d55858df149af298b06d61250b043c8a14a15f0646d0aaa18109d031c449e66dd7336044dbdec912b1bb615fae2a3df480bd64cbed74be65c8f1acac247e80bbaeb6f9dab38c6addf4f3b094d5934ef5c9749053b9159e280034e601731a12d6688ff27ee3581ae289de424d16676fb750d2ccd5b3f964dd77bdefc15bb204e2350632822384cc194cf9130f1ee81bfc3887d3366ec0b48cbbe0fe674281ae7445f03791887873659825680448f162452cef57d783821a73047078a8cf94c416850092ac772ef0b2e48517ef101ee0681b5259aa27fd56edf3c01e6dba6298ccc91b09bb304b637eccf8c673b816e74bd7f8ceffa6b17ab03df7ee9ca4098d24d044015a07df782a309cb6761528272632a6e1323c4e18284b463dfcabed708e4fc95cef133865cdbec8bfdde100621c65a92762cc3141ff37b66dea8fa6e3aad61dcbf3b512467c4773d36e58989e12a636389c1678c191137a5f7f59668c8a527dddcdd0c3fbb14cf48b8f3ea306850a5eda76c57aad06312d7bbfc18969d7b611f512358a7bdf959cc2f41de1c408133ef02b1fb2cdf8efe9973c27536434e56fc1bb4880db7fe901087b53ef3c0de18aafa47c25f1cd62c362f2e5da41c2dbff0e13adaba26c1e0829f027dc0320442e851eaed9507b70ac17180725349f6ea7b59bf39c095a9d10790e87221c7c2d24b8bca184ee95a3ef7449aad6c1d905f688498ae7a0cd1b01f76dabc342fb2be0295ca1484bece3c9b8a1b91e53de2d2587f3607a7f348f5cbefaa7a6dcf61bbbcae9444e2d25a77b016cbd1508c8cd319e9812b43b0bbca52df155d418dacb6ab1360a9e605fb53c6e20588a10bef42d884989e836b2ff16fbcdd2c1704f75dc8c1ac2cc6aeb92726f5d46e4784c70e1e249c102be6da506e5e3c2cef6a8bc4a60dac7adf3cacca8679f8f792ddc27613e44a70fd849b7617e042da46d65a3e6cf425f59b83cbae5b6e911142abd13a0a8cdf06d041435ee20e2ca417e905d2dc49c15b863ae5920ff7f9380a86bb0c86b69a000c157cd35245bf71f9dfdefbd1760af90ec3e554ebc511aebf650633221ca9157226f613f41406872765f8d7b916ff3877266f017b8d840dca0697ec3dffce7912ea9eafb62cc2f2d0a112c9bc0727444b47b62766bddf5b5f26d391f653b6894b069069979d0cf8cc7fc4143626a8420bc0a3866db3860096cc128d620ceff059d1614487004adbdf6b0c4428ac8897dcf16e6b11a692a6b465a92b40010f3480b444d4d2e24b0af8467666905c2a6233bdd6502521b621d3cdd4a5e1f268d65bf6a1879608ffd3abf635c5f0948f3cec7e087485c72b00258ba69783cfe7d611bc41c27814ef5674185791dbe626e1f276cf2c399a4eb264f19c77ee95d94252f546528f629188318e9ede65a927aafd2f2af56ff32c0ef39862d2f92268bc9400afa8ddeff591f3ef99681263a33b873bd9e01a59c8b281da30875245cbffee5268563c7f6f20b9e22d998934131dd219624d3cef6df2f3d2d6401833f72c619d6f763837141dbf93179d0f01375581ebe227185166aa7988eb9fd453d510ca6616cc013d551d23a33a4241e85aac3201284344977d496d768f5d920c5670b1d8bb608efc1b99abd261afb0a4ebe191605cc5c2e20523a13b3b94dd1fb24a27009d9a5b6329336f3516a327642386ba64c8769da1324a8a3d1f304cf0700df2b3e38215a954523e1d40ae96d0046e2929a815bf70785e94bc9b89246ab6aded60d65170eeb49b0ee0a57ee2e57db92409105c25f2d0c1a17b5556d06511bd0991a426258372c7f2b402dd533a75aa175524eb5d6b9575300b81fdb2258bd74429add8aa477bd1182db57107d411d16147defc3582861c68f5ce82e0a0316edd5d0f3cf36825a2c79a33e376cce2e63274b3b41bcbdd755845ad9ed2a3bdacb6fa3fa9484b7b60edeb1d9ef84772e78e39adca14c9fa0bb3ad1f1c17fb9449270e9b4c97b5b320839947fc73853fc58304ee9c9e86f3775f5469554d5006eb7ce9d02d5f900c771806c275ee7022e2b55d111338dd93ad51d14008df4c13d8c03fd9bb3689607e5cbdd499c3a372b487af74cb140f6300cd2dc2acda07277ea3dab57ecf09f1a8f2d6abf7c44fcdaa6dcb1f6e791164004b20b3b4c860f409c1483c7044b6fa445f7224606894e386ba08057a387b48920d4de203b1acc4dbe2b0b4cbdc3f7d7bbb097abbf81e01db09e120eab83def925a059cdb513efe6bc93f0579ebf75638df3c3d7f9eba3c36a169e9d88495c452888853640d93ee70f254f86e2d2d3fbb5e8883b36fbd2da105cf3a75cfe998068203186bb37f1d1ebead8ce1f9383b816f1da2fd0a9e01377b6ebfed4f05bec08b4ff9b90e385736fd13a3af7980c21b0dab58decea8e9545af5d0fb11bb51aeda2c8616960e8f6f84e6c2fc4f50d7e413afe030f75475509fbcf49cbe14445d267994fd3f38f41a1339f2895c0b2969a9bf9c59b85e629486c7bb5107c7a6b069793be7690f7a7c96c93b09a9d610594a156ab27a32d5557a5b1ec8920761cd2f559ad808dff3da64717ea5f10fba87b8ff2712ce322eb3c288939e0007f779a3920f45fdd533369f6f85a8cce21f91552fe03702ef81a926af0e402b418fbb25a6a3dad0ec18ec663126b3f48c341e2725abfeae865352d5ad275a9e3ca20393c64d118968023daac84bdc724a3c522d97a5878ed788cf8e44f80f8803d57584d8c8688cff24dd8c0e881b62d16ea30104d62007a4bec051da7fdc95d1df8556ebdf607383a0825ae503e24661ceb8ba773b793360c3f4ed3b761bd372570cb17e7c2030f07b0b45a7974e45ee6fcf5bd7ae9e9abde5421b42cff6af0c6eb7fc73f4deb67bb4e0b3dc9b4008da30c67071243cda649091a14b89bdacf2ae98dd230e", @@ -701,9 +781,9 @@ static const char *kData17[] = { "6d417de31eb5dba123e3ce9e2269867d9a94fdcd8ccac40a9451953085109f5ae0c3e04daadb4a2a47b0e176917660eb3c9f1aae0ec6b00635fa387e056623947c0621f0a12e86fac1881ed1dc1b9f523388d6b6596a152b3e732c561972879dcd3f0232ef0773a4fb195a90c3186c4688ea58967ce7f18386b80bd38e90cfd4cb899337ab27cba8db6523e979b4c449645bb2f320ccd28578bc7ec38f47225273fa61a2e5df97c4d76c556fbe2b0fd30e615f5fc82c3de7194caed9f5946c151c22b7a0c48f4a7cf78aa153414f2913c5eb95e3dbcea7ca544272cd13a1c52fa87759aeb430aab144fab418c835344605df3a044825965ca15de6ba0e59b2080f5844b2d110d71587e19acf14264cec2de5b8c77d18893215d1c1da0a940e7c2ee429a99e2633c216aecb7675a2314a09044951ca5a8eac798f8878fb5ea65f4ddccac53ee0c786e597169079fb6e8ceb37a71580b0904a97450909ca454a690821e249aebb75449e582fe1b30f1fa9f6464bdef654daa5ede6d4f223f4589ea25a25f4672cfbe974d51008bce296628556f55d26646e40b59f40e3149273760b40806ace3b5171e0b79865c6adb53513da2f24c4115de243150cec76107b48ca8da19117f00b5870e67eb8357e43c1b7b593c9875795d46ede26a109e05406b69fda988947e49ab195f22454c3c743c2ec51b91370b4df8d38653b353e51bb83215d122bcfa591009c007bbb6124bc590fed3f9c5699180b3b1424ad02f7c90a149b77d22dea5c996aba675c2a1a20e206d9c25d9446247d495a26486c0d0bfb09d0b5a1a177a09fa749dc36cee73af0116a6b779c2b827512a04ff0f60b483edbcdb33d2a18339463c498ae67ffa9da0aa3f3beb6bc99212f9e6961afde89045520b1f3f2e2761666a333d76030f443f53322f099035584a60978ef8b49f46d7d4d8c5c758ea52a04b59c1a3a1c2f9df3f3b6f5c45cf4b3547043b18c1d615a2c965c3918d090cc72946e8fd0b938e60e03464f4bc71fb719a1d173b0931930e58bf7f6d4403971d36b40f83be6b57244a7029e1d41dc908764d57a5442557218b509faeda4e9fcf31debbc54ae671ef636871233f29e0013c0e33933543f4b59df1978ec89b109c3977b0cf938b7f6166d6c93be5e87684a703c8b7b5fe1a8bfe153a179b55575ff05e599b39e32ed10d958699a1ffe07136081f0719b18c69dc74f66f211103e9c544f3c81a88ba9f66a9bc7017d9ca9e2cd97634052694a598476b99daf1cdfb6122869375ca5873d32d5c1e07d9b5b380b4f09dbe04478cfb1a13853eafacfed70c8abcd444ed095f78d07c0e8b4093be95c3aa24b2e5b6bfe3a06e9d2d9fedfcfeac4cea2490627e6da6a5cca383351952f654ce2b0ad359c0f7f4ad3f8d1d4a030a947d4a2e417bb79102729115cc8b6558c3362b1d805fb48ce4858deff97677e60375ed13e150a12ee7dcc8ccc64d9710c7f516555c1f7a1a08f0d7c6fd21f864fcf28c8f748c40494e01fc32006f977a5100577f86a484d11b82c90cfe6b4d6b1902fef486cc6f3e033904e150e67283e49a5382961dabd244412ca9657b48796e476a82443167e277d5a65c0c563a6abca77d316e5d3ab639a1ecfb1110af2d29f146508bd9874486dbb56328d6f59479e2766692821660462aa60b6bc8a710707ceeb0ea6429e5113e03c9f41ce0d69c7589deb547527673e8a9f9a9a74e9e4bbcabf2e306b35504c1da99730ae86e94cd047b2e6ea5e97e63a492430d37ec446434fb3b066adde08b17d7d903ad194a4a863d6cfe181a45c8c97b5062bf7c4e44d69c0d1a7e1f5029b805b7c21d1b5e56e697999a32557870ebaae8d87dcb5ca5eea2c5547a16b3f30ef9df8df821028c106f86e091050ff8b6ea4171e59dc2592d405073bea53f8ea62edf112dfbc7ca69809db8005783d63557d3d90d123a944be395c1dc3b5e1476dff188346327769fea65f3cf9363e88ed67335870ec8ef13eb9d9ff5317c4e24dfce9d11699e5f47b4233cc8f9d1b915e716a5730a5898ee65d30b1628b484a5e82eda95a590964a8d8bc89dd3c5cf6c4f9137b8c6ee9d6a692e0c0d1d858dd5b3c12de48badade4d01bff312c56ce3ddb34b0fdde3b0c2706fc292b9fac7e1a0dcd0b6534c968117f7de15eba84d2754e4bcb8093a5440297605598659f686075e2b1b464b6b3ec68abb13cde263b1c607545c45746338b9b207b5c381da690f653b35e363e1249551ad938b9fd7b0a944151cda07127bf9ba76958e926472f4aa1de8512ce834cfcae5414b226f23acdb1fe5cf685d2201b78167ad35fc1da282744c2a43cc49d49242f968f7e06de14455e7ef5adedc5b33184346018114e2d1fc7a5349e378da9b2af5b328c213888652aca9f1145363809eca7c1fd8e64a5cc3255418736e048a731f3053db77971f67014e6121a8e464833e5dbd02ea6caf385e43e9f378bfba657986bf852b32adb55e35a2675bfc8d70d43a902032a61f59f57dad2dd7d7963322136233200cb9a90c952074e9ba0fc0654f1b6fd6f7f0eb77c0fa6d8143213ce6e8b0c178f73e17a7c64839f9bebca2fc955ea8ae406a13b80a9045fa8d129fd859faa46fd27c48bde7b890f98ee938c0d78889f84181ae2f5711304fe554d4251bbc6437ced59d577a2a1f26da736193c3674adb13cef9f4cb4aa6585c4d6874b0309ecde300493b1642c595746f09e03977c8902f3a4a877db1153b248f295a0ca2f1e437d15fcab8fd77c5f967304efb5c4920b990674ae61b954af40be17a8559dc377c591b68067fdcaf2d27bd9a22041b981a84be3de50d5962b58f8c4a22fa05192c5ac99a0a9423284fe62a3a59f085136cec72cda2a53af106a2eb5bda28b6e02c299118cd91714c2e7d045346c78d9ed1b41c73231a21e42c298949f70122277f4134ed5c56639edbf3c3e717310e3d1f03dc5a94e64c4ce148bc5c6bde64eb80b17d5979892786a31225eb89bf9f5a582bcf65b83ff7aa361ccd9238d144f6a22a3f77dd8a01382df4ee90a2057dd310a6b0c4b81dfc92a2cc0c606d3be8b18fbe64ddfdf2004eeabea892be2f914edd1edd8e8829dc7704d71bbaaf08c41824dd0f4b34c9eedead9e10e53bfc6fc0bd37417de0c5c71cff0754d672f29c262d8e27b524427e12bc4e4705ab311d3bedcb1ddd09a3ca0c268c05c64951b7d724a9dafe4d249aaabda91d68633aaab845bf78f9a22d467c7e0c5fc70fc9a318b01d7492efea7fffd329d70692e76647ae665c62b280da0d62f870a52e4dc4cd92c9150c96aab16f8c23475e3152d4debb41b6756f000c3d8aceef18b49e295be7a71da1eeadf4eb96509d45d7cc42af4b7013d8bb445f577e8d4cff92770b8ba0e451f3e24c6d981efdb68c7f2dfafee40b8a425955796e369f0d4da3e998c1626ae0fa583334475f1fdde68ca211c3f2e9afb003f553191702e11f8b731c89ea26059ea4466f2bd0a1a5601025ca9417006bca5c9a57dfdba44c603ef9ad38922623b40feda036d84425c47fa42973e348a180a7570e1215044c375313ab08d6f521052dda415707ebb74d6c4774e039bb04cadc2799224bde1802e2ee2a018032e3a341700c0fa2aa28bf93cc479231efe7da0e9f68e572415348c08cf648117e9b6d1267fef6617f5927252c86cc087775db3e30180feb5ce7e1ac9c3761161e07a4853aa6d97e525aa88302954cf9390fde81f8e11d97a11c79e3bad261364c18890dd1f8fc71127edefe3571518a42be611a46a0426a33221aa25a0ae6514daaf96038cb59aaba898de49e3b215a4464e0af614e638c2d9b6e676ec427fc906bc516331a18121f306a5246d179e2d3d0f38ab8393f7ea5a2d24585e7cca649637b9983924a15483c167e8780f8dd7aa1154cbf731745a8d8d54a8c4f8d854371bb8172303f9ba3c8c7cfe8c378ee56bc35c6376aafe907d3294ee9a8786281b7deff78ff125761f1a31d0e8fffe04a52a7574eeb8679670ca3bfb740167a559488d4337819613d32752d8a89013622f6a8d70f3c64b84a4215f4b7bb282a2d17c36a326167e3270757b8f1d9a0137bfc5ec278e8ca35a69e49779cfc25b95a89cc18732b5b9d1986b18878c57e118506909207207ad0b4edf32fb2b35b6e70546f45d0849bd139ffff9d8ae547787e7b51403b54f110e2ac65468cd0910d80a4e321deafd46e9af19609bee1efa41b762b8ace989dd681503539e7d9948664cf7a73ffac9ce2a34b514253c4f21bbccd38057a6d68732930dcdfc9a32219b53339d100db0037a8bbd101e71f5054f3\nAAD = 7b3b9c07148fcd897f657ecfcc87e530191536b8e77f9309e8d7323888b3b21477f2ab7c885c105d9c29ac96aed23b366f9fde4177401b7038c6770c7bd2ee8b4335105cc0eab9e367f0cea90d6f1ae3fa76cd21ceb9f3500ce7fb4b2a3f9e90f900a231ec693aeced7afb6821391d1f5b1b957895777aa7a2b71d9571c00336f26d54d756392cdb74bfb67d5a621d517db20441f74d0940180baf613b09452f64224f8af7bbc864ab4a8434ff624d0c0646ee07132fd376506951899bde975df8c836ab4ed9cc084f1f6d500ad56345d2f250a0d6991b9e458c62b6023191f341c8659e8a38c878cfac12b032674503df9c9bb01c4340c709eb6dd7c74907d769a317f4dd7317843c47bdb4c5e1f07f2380d464b0c47269389cc8a43a09adba86f6aa8f44c8fe514e73b5fe8d344769c1aa20a4538ecfbf47562ca79fa497b0f02f103f75522db9ead50d56dbe86997d6085f1b5aa7a4cab9e51a1247ce4f724a14983b6bafd17369fac973c6be268e20d800de870928e100990ebb0d3bedfceda36c64be3a729b603bce677a49e8caf282c9159b6e3e1e775129bd30dc3f5c9849535d86a27474be03bb5749b4c0115e2614f8feaa7405cc69b1de479b3b57e551f876a9c8c57ab9879cc68bb2ea110b2e77e59dd6a65eaa67cc4d4b2f4d6e646b2a298d3c80fb43969275d4414734e74726145dab06124c040656c39a94846e8fd58d326f4f9eafe5b95d85254765a21993f55070fcb9e85db5d42ab6b9464ce66de3f236dd2a0a26c4e5535dbdcd6eb350209a65aee785c6647ad4103d092a8ac932470880eb314f7c98cdff34fdf35ee2d36f09bd443b5defad7a5acb9df55965421fd043def6f4771e1bb27385b30ba22c0d8972aead6b654085a7dd3b60c4004a0dae22e25100e54e0badd0cadf909799329ddff699de8066dd6c3822d80c73c52d87e6fcbdb2dbbf852e37804b1256e23e76dbe43f30be4a577bc23c7941a3d708d1e1f579e9c6eebc219c74768168f6790a41f883790e08cd1e88ad09a544eb97b3d1d5af67eea666b9c027e5c7c976921189b955a9e605f6cc9c012c1c2e197c5b02504cb9ffbcb0f3ed778d540d5194fdf5d38dba6340c93da7c5501a082689616f337d8b59c2a92c25e777515726e1d7f6cc9552693cc7c30f1294b37f97d49814250d6c1e3eb335c5d214ef3641739d508b87106eaaf367902433a148ca962ec694409acb82d7749e1c88938ad382d0ca6e6cbe8255746832fe737c3e71dae8397f260c98d4a292a126ec21935c24096d2f91ae114194af659455d8a4206197495a28474dd2809debf5f550d77ffac2b0db521559910c352f23472d7aa9f4dbbdb158f40aa36912cbd918ae4c642e76d78d57ade1075c4fe1086ddee3d554353b4693bbcef1cfa87e49890838c36156af0edf384b0413d6d7aa\nTag = ", "51cbcf4a2fd82f221de1bfebf86a8c24\n\n# OFB tests from OpenSSL upstream.\n\n# OFB-AES128.Encrypt\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 000102030405060708090A0B0C0D0E0F\nOperation = ENCRYPT\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = 3B3FD92EB72DAD20333449F8E83CFB4A\n\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 50FE67CC996D32B6DA0937E99BAFEC60\nOperation = ENCRYPT\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 7789508D16918F03F53C52DAC54ED825\n\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = D9A4DADA0892239F6B8B3D7680E15674\nOperation = ENCRYPT\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 9740051E9C5FECF64344F7A82260EDCC\n\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = A78819583F0308E7A6BF36B1386ABF23\nOperation = ENCRYPT\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 304C6528F659C77866A510D9C1D6AE5E\n\n# OFB-AES128.Decrypt\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 000102030405060708090A0B0C0D0E0F\nOperation = DECRYPT\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = 3B3FD92EB72DAD20333449F8E83CFB4A\n\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = 50FE67CC996D32B6DA0937E99BAFEC60\nOperation = DECRYPT\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 7789508D16918F03F53C52DAC54ED825\n\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = D9A4DADA0892239F6B8B3D7680E15674\nOperation = DECRYPT\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 9740051E9C5FECF64344F7A82260EDCC\n\nCipher = AES-128-OFB\nKey = 2B7E151628AED2A6ABF7158809CF4F3C\nIV = A78819583F0308E7A6BF36B1386ABF23\nOperation = DECRYPT\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 304C6528F659C77866A510D9C1D6AE5E\n\n# OFB-AES192.Encrypt\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = 000102030405060708090A0B0C0D0E0F\nOperation = ENCRYPT\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = CDC80D6FDDF18CAB34C25909C99A4174\n\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = A609B38DF3B1133DDDFF2718BA09565E\nOperation = ENCRYPT\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = FCC28B8D4C63837C09E81700C1100401\n\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = 52EF01DA52602FE0975F78AC84BF8A50\nOperation = ENCRYPT\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 8D9A9AEAC0F6596F559C6D4DAF59A5F2\n\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = BD5286AC63AABD7EB067AC54B553F71D\nOperation = ENCRYPT\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 6D9F200857CA6C3E9CAC524BD9ACC92A\n\n# OFB-AES192.Decrypt\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = 000102030405060708090A0B0C0D0E0F\nOperation = ENCRYPT\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = CDC80D6FDDF18CAB34C25909C99A4174\n\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = A609B38DF3B1133DDDFF2718BA09565E\nOperation = ENCRYPT\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = FCC28B8D4C63837C09E81700C1100401\n\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = 52EF01DA52602FE0975F78AC84BF8A50\nOperation = ENCRYPT\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 8D9A9AEAC0F6596F559C6D4DAF59A5F2\n\nCipher = AES-192-OFB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = BD5286AC63AABD7EB067AC54B553F71D\nOperation = ENCRYPT\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 6D9F200857CA6C3E9CAC524BD9ACC92A\n\n# OFB-AES256.Encrypt\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = 000102030405060708090A0B0C0D0E0F\nOperation = ENCRYPT\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = DC7E84BFDA79164B7ECD8486985D3860\n\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = B7BF3A5DF43989DD97F0FA97EBCE2F4A\nOperation = ENCRYPT\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 4FEBDC6740D20B3AC88F6AD82A4FB08D\n\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = E1C656305ED1A7A6563805746FE03EDC\nOperation = ENCRYPT\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 71AB47A086E86EEDF39D1C5BBA97C408\n\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = 41635BE625B48AFC1666DD42A09D96E7\nOperation = ENCRYPT\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 0126141D67F37BE8538F5A8BE740E484\n\n\n# OFB-AES256.Decrypt\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = 000102030405060708090A0B0C0D0E0F\nOperation = DECRYPT\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = DC7E84BFDA79164B7ECD8486985D3860\n\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = B7BF3A5DF43989DD97F0FA97EBCE2F4A\nOperation = DECRYPT\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 4FEBDC6740D20B3AC88F6AD82A4FB08D\n\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = E1C656305ED1A7A6563805746FE03EDC\nOperation = DECRYPT\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 71AB47A086E86EEDF39D1C5BBA97C408\n\nCipher = AES-256-OFB\nKey = 603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4\nIV = 41635BE625B48AFC1666DD42A09D96E7\nOperation = DECRYPT\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 0126141D67F37BE8538F5A8BE740E484\n\n\n# AES-192 CBC-mode test from upstream OpenSSL.\nCipher = AES-192-CBC\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = 000102030405060708090A0B0C0D0E0F\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = 4F021DB243BC633D7178183A9FA071E8\n\nCipher = AES-192-CBC\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = 4F021DB243BC633D7178183A9FA071E8\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = B4D9ADA9AD7DEDF4E5E738763F69145A\n\nCipher = AES-192-CBC\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = B4D9ADA9AD7DEDF4E5E738763F69145A\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = 571B242012FB7AE07FA9BAAC3DF102E0\n\nCipher = AES-192-CBC\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nIV = 571B242012FB7AE07FA9BAAC3DF102E0\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 08B0E27988598881D920A9E64F5615CD\n\n\n# AES-192-ECB tests from FIPS-197\nCipher = AES-192-ECB\nKey = 000102030405060708090A0B0C0D0E0F1011121314151617\nOperation = ENCRYPT\nPlaintext = 00112233445566778899AABBCCDDEEFF\nCiphertext = DDA97CA4864CDFE06EAF70A0EC0D7191\n\n\n# AES-192-ECB tests from NIST document SP800-38A\nCipher = AES-192-ECB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nPlaintext = 6BC1BEE22E409F96E93D7E117393172A\nCiphertext = BD334F1D6E45F25FF712A214571FA5CC\n\nCipher = AES-192-ECB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nPlaintext = AE2D8A571E03AC9C9EB76FAC45AF8E51\nCiphertext = 974104846D0AD3AD7734ECB3ECEE4EEF\n\nCipher = AES-192-ECB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nPlaintext = 30C81C46A35CE411E5FBC1191A0A52EF\nCiphertext = EF7AFD2270E2E60ADCE0BA2FACE6444E\n\nCipher = AES-192-ECB\nKey = 8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B\nPlaintext = F69F2445DF4F9B17AD2B417BE66C3710\nCiphertext = 9A4B41BA738D6C72FB16691603C18E0E\n\n# DES ECB tests\n\nCipher = DES-ECB\nKey = 0000000000000000\nPlaintext = 0000000000000000\nCiphertext = 8CA64DE9C1B123A7\n\nCipher = DES-ECB\nKey = FFFFFFFFFFFFFFFF\nPlaintext = FFFFFFFFFFFFFFFF\nCiphertext = 7359B2163E4EDC58\n\nCipher = DES-ECB\nKey = 3000000000000000\nPlaintext = 1000000000000001\nCiphertext = 958E6E627A05557B\n\nCipher = DES-ECB\nKey = 1111111111111111\nPlaintext = 1111111111111111\nCiphertext = F40379AB9E0EC533\n\nCipher = DES-ECB\nKey = 0123456789ABCDEF\nPlaintext = 1111111111111111\nCiphertext = 17668DFC7292532D\n\nCipher = DES-ECB\nKey = 1111111111111111\nPlaintext = 0123456789ABCDEF\nCiphertext = 8A5AE1F81AB8F2DD\n\nCipher = DES-ECB\nKey = FEDCBA9876543210\nPlaintext = 0123456789ABCDEF\nCiphertext = ED39D950FA74BCC4\n", }; -static const size_t kLen18 = 455619; +static const size_t kLen19 = 455619; -static const char *kData18[] = { +static const char *kData19[] = { "# Generated by\n# go run make_legacy_aead_tests.go -cipher 3des -mac sha1 -implicit-iv\n#\n# Note: aead_test's input format splits the ciphertext and tag positions of the\n# sealed input. But these legacy AEADs are MAC-then-encrypt and so the 'TAG' may\n# also include padding. We write the byte length of the MAC to 'TAG_LEN' and\n# include the unencrypted MAC in the 'DIGEST' tag above # each test case.\n# each test case.\n\n# Test with non-minimal padding.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nNONCE: \nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: 144c98ca1f\nTAG: 4a40ffe530b338e5173a8e62c8530b0c14b15046d12f2ca3158ad71effd0f46b29b3ae\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with bad padding values.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nNONCE: \nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: 144c98ca1f\nTAG: 4a40ffe530b338e5173a8e62c8530b0c14b1508045d58f4bdae400\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with no padding.\n# DIGEST: c6105cc86e18eb8376c16ea37693db5c07b77137\nKEY: 8503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371e\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c748\nAD: 1df3f4183aa23fd8d7efd8\nCT: 17944422f667bf1356c234189f9c6cf7af52b2832b2fbaa990ccef4e7f9bc3841e59e25c00e3686d5bd5c29f\nTAG: 3ebd1b0bee840e8a6e992421c62de5a8fda3a82f\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with maximal padding (0 mod 64).\n# DIGEST: ceb2d295bd0efd37c6c34dab1854c80e986174fc\nKEY: 37446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11b\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba\nAD: 2fd6773e0d0c302a5f47e0\nCT: f2ab16ba87c52d066c0637d387b89d700a66828ef231b480f39aa08ac2447c8ddd205d1a95da37f267c06a1338532de890904f9f19c930adfb684e81cc06bdf2\nTAG: 3ff610fb9e208ff6ad58b78c5b2cf54b997eb3f24ac0171229ff7ee9cd5070de5a604f78b35b6cd25b3f2ab487847ca1e3928bf7f19bd19c9c9a1015dabd2de426fe57d342009ae4a2e67fdea378f24ec8dec1e87b62b6f70626bfd71f8d8d5e5c5b935a76527ee8a9a3094d635dc2b01a31dc4df336aa023517d7c35e142ccd6a79bc689e335f187a5358a00a7d4eb168cca3f9c6523ad4d74609a5b5c9e36db6bdf8464c4c8497c501084afa17557d070a7671c9144c86b4de9d57f033bc6b59a7f1f4e947b6a2d69c85877de731f6eb3db71d9f4c2dc086a3303bcbcd2f5b71643058b7ce08ef5879e0578ec81ced96ce907d4f32e67fd4cd269de9b60e09ff74bad6c86356ee297475ea7fe75d75\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (1 mod 64).\n# DIGEST: a07054c760cc66fc704edf950201005031f3faac\nKEY: 446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be1\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2f\nAD: d6773e0d0c302a5f47e037\nCT: d7059edbabb5cfc2cd5c459abd74e136790aad50d988c6c9271428597617db171b89ab171a68b14f9d417bb81f9f7d2e2045aa47c0b5d166c8b2622bd914c4e752\nTAG: e3d17e303776640b3ab712f6068c44e0e3b5d375203a8b01ad47e6f4681011eff04a41d03ff073e61c630b5faacb744447226a35e7496204911ddd660792be62c5f34c918a0d8514872100c4637ca12bc9c13b1580aed10a68c9187377441bcdf213bf3aa72831f3498d990a7a5960e1e6795bb11e4c7910a881d76ac81320ae61b151b8dbde093bc9e56b8204463d8ec31dc32b3cad5cd8cb48b5f20e54c17469ce97c069051c8e4b2ae5dffc0c2651d868a9909187c2732056213e41e315e94d14a84a24a676155ba86ef0b96efee3e4765dfc750953dc9a7ed739422c7d988f290432320313848a2eb7723c7c85ca3590eb35e3058d0462ddaab0cd48730107d4031a216c6c2595d1ca0b3f1815\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (2 mod 64).\n# DIGEST: d059c266cf6233af730b7a229b19356a4c6fcf06\nKEY: 6f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6\nAD: 773e0d0c302a5f47e03744\nCT: 8864e31c8b2ce1bcd1745671da5bd66e1e366b0af66b91f605574c841084a5df358483c7839e4456ae5a442930f21d4bde67578186a91c0a603468339ffbe3bfc607\nTAG: d8a0bcddd40964405ef006e0083e67a607b9f926e6508880d7784248a626d56a0673ff990920960fb307ed9cf40c2a1cc3b632b1f94aeb30efa02123e66165b77aa4be5e2aaba4c4a52372b403cae2f78a3bffc1cae8dc6f53839de7f16b8984304abc4a81ffe1ffb42799b54dc43ca0b963be6299a404fd4b3acf65939ac319966aae0a941c74135705092567e1237044c88f79b02b68ef622f9c776bbc04dbc2f58338c129f25afcd8cad7a0e91f30339457075b68df4960c003ef574e3aaae870787ae9ddab96495861388b341aa63ab2721abb176c4f2e6d5704cae123c20f1394d6a12d51fd5782dcb59d075775dfeb72df846995b87b1d374c0d0b8a003ba60f713ad777b8d6ad42c5e373\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (3 mod 64).\n# DIGEST: 8aac0687e33041fcc18da154b41f20a6af2bfb28\nKEY: 5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a7\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd677\nAD: 3e0d0c302a5f47e037446f\nCT: 1d239b3880e2261806ee770e7296d573d308d9850c8bd90a0764822faf5f65770f98f18ce4738538f03ad9b289bd5fa1367258f00d3ed91e32885bc45c30a240cad8c2\nTAG: dbeb6d1a1165a902128a27d7f55f4d928b56a3b83fa430d47bc4f935219fcc6005487f1ab14df0a07a270645d1c2fc23efc9866ec7e4427fe0382b75215c0f994f09c4ac54bf360f8ec938b02c17c4104127d2cb1eb51a11455180931b8e473838e5b1e61cf5cd05947a5b154be5df49905e6e7c049d00f065f680b0e5f3f4a7e9dad37d493f13c7ba318ca2bae086136d67b17a6ebf28b45cebcbfe115a45dfa32786a8b8354d51acf58bc126a13146e0ca509a26cc32c3e8ecf5b9d6ce76a9f76d674316c42f3140d5139304479376db2a167c65da7250e6fefc9d3b37a2072180ab3202f1fc7dd7f4598d1d976b15945fa73e1be07a91186ce7c16c4249d9f7287baafc572673925e95caba\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (4 mod 64).\n# DIGEST: 53658226c112b86438dd27b58a71f9e36fc73c1e\nKEY: 91d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a729\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nAD: 0d0c302a5f47e037446f58\nCT: 719d9de3bc86d08510354817d0fb94340ab1ddeefdb95a1cf460f7c9b185837b5320dd862b4c319619a0b18dc75f1762cf7c9bed63713c31e39a6f7069563441b9e6f106\nTAG: 8b61062c9480ffa62f7b96e9f50249426d05bf237d25e2b676e0041d40ba97101843d9ebc978949eb7ba53b8989ed0e93e5b91f13365345baefa1d7f59b694f6ef0bef0adc1d6763978e12fe354e57b90127533f3f991ce611e31e88a97962f859ebbc0e50d130c323aff35581f1f45cb5c650299025a03d99026d6f6a844ed9d5fe66e15a9fca79726afdaa54c077d148d561ca9e77e427b8f8074714aaf8b011697524e4d91bbab69bc01c8346e9055d7269cf124b503f7ad38c384abfd91ca36159d8a41e6389212167278b830ea464f7dffc3e01c9807368d3457ad5f21b33bcb1afd41ab7d805c9ed2f2c32da9bd4b510366b362dd02f50666ab8e5a72486b3c0d6b9bafb38c9375dda42daef635a0007ef\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (5 mod 64).\n# DIGEST: 6b7d5268b0b5037afb5be5af6a0ceb34e7656ac4\nKEY: d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d\nAD: 0c302a5f47e037446f5891\nCT: 9adce31c760d09ff911ed98eeb7146e82017261c8017d9a5fae1127479f6fb54d081cacc1ab7150f05d13547b992c1fe36a6e8e55ef1fa3bcc45bca495a981000a0c0b4f62\nTAG: 51d033e8003b06bf819a4f7978d75abec450c6b11a00bdf27f549f6060390ff99e0feb9509c6ac882777da699f5d5332d1b838a0436101574789ba485769ea6f4d73a10db775f06331140b218fa2ddad7fecf381fb9e3d26b06b3577bdf57e2a8435ba0e5b1e305ddf28070d1749d11ec5504cd9aa51ffe9133152ff35de21e4bbc3b109a318075d924bbaf0e267a1abd3d7afd2d3d8f4d951d4e96fa63741087a975eee8156b01fe566f7f6a309257c17a0bd9faae4c2781aae72eeab1903602b09b69026540a84b4786b8dce2a3e5ca26c65eb7b220dfad400cd236a4435d7fb1be60b9074f2f226e810d54abe7ec0cf10e7c465059720baf93915dda8a56d5a012a990d72408d2c9ab9b8dc813eb2f1caec\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (6 mod 64).\n# DIGES", "T: 63efe7af502231420ed5aecce9a28446b257828d\nKEY: 7df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c\nAD: 302a5f47e037446f5891d7\nCT: b81f6e678c5a08244a5f578970d64f96f50ad5b5724a9287ee7b293308db34e03456f1745f79c594ecc480fb2a9412bd685e6c0df028eda06aaa15c90afa4ec01736450e3eb8\nTAG: 63b849636c212d353918c6e3044d298da268ccf1042987617860b58eb7ec8314ccd7762ebc39b62c0f0f1c346c8f4bbcbf3bd0134c0a7374de1868b08ba013398d8e4b578bb8d7359f2cff1629ede34da00138efa4a724d892fe4ed2b28613e66e0bb4830f66c14dccbf8656e615d66f267182662fee8a3e1fcde0941793f0bf2b00d6ab6e9fcb30553b620cf8e9e0a15f122808d739e698f88aa157baba12428541e928ed556517978f6c9f29c6ae8fe5b4e9ed6f0ce49351ac2a63e74bda9288a874a7fd5327c6856596a3271039dcf54affbaf29a5556f1fe1062279d2600b920f4e26c96e9e8fa696c521f60e9418975befa58ad564e730d1de312ca1b999a5e89b813743b1512659d809078243170ab\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (7 mod 64).\n# DIGEST: 1a555c300a1d1bd5b03cdd6bf2a678621624eb05\nKEY: f660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b5\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c30\nAD: 2a5f47e037446f5891d77d\nCT: 6b6f94bc2326760d257d8156de961acac0b32d7f4d0e20363532e76ce76641ba66a1aa7945b9ee58527039cf83fcb01d8ef85254566947347463e161ec8cdec74a839637288d09\nTAG: 77b18bca8ed1d056d9c974054598216bc15bae5b7d70f3bbe32b3deb92398b0ce25a1efc5eb6782fa5fbcdbb415ef43eca090fcad4d34d53b1fd89cdd760e6424715c7703c51e08b72cb3e3b8a30bff159d5126f1473f216d5c931ae03703d3baf311a59d7ef3d6db123f3e8c0ca26fd3f8809ca63265d2fac935bec32631af43626ed1ee9785c81d7bd0cbc0c5178e1ca7de5d12c3592a7880be6590072c4728b2afa1eaaeecdf7cadd8304c2d4b614af7af14efa00dda595be92de09c74b39df05d7d023db721f86992c57061a264dead21e24fa47816f43b77b8ccccde44bfc32a015134a2cfaf04c582fb839202b08b81543ea9358d5735e7c197762a6a39936e26de58690a02dfc273e6779e77708\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (8 mod 64).\n# DIGEST: de9156349b578f2f44945ec6a676a67a829daea1\nKEY: 60ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54e\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a\nAD: 5f47e037446f5891d77df6\nCT: 8f211be563f98f493745cca0e385e5b0113027efe3b0a880805427e363014323c4f6c7e6b30d2466c70ed56d63157f2c4f6dabe14d5a22c6c708ab3fb667a6c64ce5c8de22f5261b\nTAG: e5807ffa59e0005c9dd7eef0b854ee1b2cfccef9977f8a963167cc563d844f795c4ce4f9d03da95e4cfd2fc80c9efb6424df8cd3b7875a6ca129da8f509ab09d1f0eec0211e0ffe5492913fb688796a29a8eac54f374e8948991059f6e73a68eba75a892b3e2ed5ab9680eb0b308b07337e75ad5b406c260af5d27955aa820bd0435549700e960e66c211000885e19b804579acfa8c526603f8d743491d916fd4d0e250159e485a4db2fea39a8eb9443516518e6612aae97b1d9b7ac48066d5fbe2c1be3b2e20233a2fb4d39052ef4ca3bfc47e561aaac9c57a7dbff922d6d997821f6b09bf3b4c91bc6162b150e17bfa2544f93f2bebcb4d20322bf0357fdffeec8f75679e6627b4ffbf8e0bfee63c8\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (9 mod 64).\n# DIGEST: 12812df3aa7f3bbc899f6f248f5590e02570c292\nKEY: ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f\nAD: 47e037446f5891d77df660\nCT: eeb6afcfd2626da1230067ed9938f7df35e99d2ba1c91d0e91c3db53034a3dd2ce3352b06e3d1b9e8415ef4ced9b2257eb05bc86db8204a8bd943bde51423a09459fecd528faccb646\nTAG: a69c7d8db2c021284e73b3c07620022eb6f199509e34611ed671c3558ae7c103c78024d96c00c791f3450d1e0338598a246855811af4cc9ae1a6522487a4a77b57b58ce29038ab0a2036404eae59133512b9ea40e2d7176e1b36965a27ee2c898d6514872bec952a029d9d85bfb0c99d8b348db6a3bbfedb6d1a3128664c454b9ef29f075fecc469f233e18567fe16759b378600a1d71504231e6caee5688e9858e14fe6fe850d95d7c010865781f0457a22f53add7ef57071c7153d312ca303e4884b83c9acfe86686517d80ce271c148cf3ab6464a9751b66ac7682a5f885ad9301a5602c099e89977f06b41badd1c2ea1f7027a38b749e2ca1a3ff4e4889e6dbd3674a52c8e24d2c76f64a6bc77\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (10 mod 64).\n# DIGEST: f3c89f21c327fca4aa400fabea9e39780378e901\nKEY: 82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fa\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47\nAD: e037446f5891d77df660ed\nCT: e1eb2175bfee27951357b7536e2c3a4c607bf511d1922f6cce462fdf98de9dfbbea66d38884c270e29d08c5ace1d6bb7bcd2b46eaffc67a99e225927421a9894238cefa73bdb48694abf\nTAG: fc1d8ef98aa65ba8a288ca04990bfb373071633eb1e8f30847d3c19ebef66962cce12d015b045e10c9e0aa7f275137e00cb2c9a0508c0187827a74faca4bcd015620f1cdd8f72161bebbb8231ad4b705d1982db6f9fa1d2303c429469737a3141adf729729144f55223df1fb45705fb15adb5cd03c2936674a47d7f6aa5d2a4d9a017e57a4f5dd954504abb588866457730304878ca322f776e3c8e7becb8437002bc757d5b34b16d04ae4710553a624a3fca8866fb3d20672d6f4a2f937edecd58e68b7b0a8c39819ab48788956c1f3f5f4a15e7d13350090a20c61620c9181f03b4d68d7e4f336cb7e4a1a277df5101511150dd39fb43a84cfc480fd548035c8e9ec26602dd66d250fce39dfd8\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (11 mod 64).\n# DIGEST: e8e41988fad6c8b44c56544964cfe0a347b35b1e\nKEY: 933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e0\nAD: 37446f5891d77df660ed82\nCT: a799c4a6590a4c48735d1da9746e5441cb11b664daada5d4d68d3a0110c4ad8d5e96d7331d5f7a0d1df9af5da4208065b6bf31affdfcd4944e8ed55b0ba7b7911be1a9052fbd93d5fbe292\nTAG: 6a6e5ced88748f87682759b554d9685280e094e083d297dc5fd474c4a2605612b2f8b1c31dea24d58c25bcacfbf03b8b09dc662d6e1120868ae9a0f1dbd2799756136c2a26a22e3a61a0216e76e94393534586e1a59c570d8bdb37d5ee6d0762e60c7171fc7953e59d74b0f2ff4a061d27a7baa8ed138c51264b356d9a42b0768bca1c1c458acdc82bd621031e2ae7790596594d2f6eda2c8d58d4b53cf6990434da8aa9e9eafec648d52233e9b92994ca5cbc071dceeed57b02e36f93f8d22551660cc4c1e425aa77dcda3bf6c98bff7905becc075e1707e37453de8f300be5aabc96c1051fa46c796a2c8367a00af3c4dccc58bb7dc8aa2e21e0886eceb898080bbc7259648f2be9da0f1b56\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (12 mod 64).\n# DIGEST: d1c7b2c04dc25fe7b742a1d659aec20e1475ee4f\nKEY: 3f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037\nAD: 446f5891d77df660ed8293\nCT: 2b8ac97f05a67490bf16bc64381e9c49e7f348212d0645056ca5405e9e0a248b6918568481ceca70e20ae4b7c1f62700a2954188793b34504fa86decc73f667e5fae944211059dfa94ef072e\nTAG: 5f91838f37198290b43fc04a186db6a05261ea9916a1dd6450604ed8a7d0bb59751f6637f593ef1a7e3aab6421b7a0cc6b5b47477d36bf439806dd8156e2bc2e229bcbaed9a3beedfa383d674d3b91922e6248d1aa8ad62361a4bdcfd3d86daeb6d775a521916ecefa2244aefbb0cfc0ede1b1c0e0059a4d69850160d2f4f662ea2b77fb074a6de69feab87bb56f27edc3a42037a041007f0a08d204cbad0a9047f7798dad51e5c04126519b53772ad4f3017f9d9fe91920aa7585a5f2d95e7a8fe5c7b22fc696be10e308f939c34e52b7bc2e71b06a56e3ffa5a0ed529eaf5a8c4b6857b1f144f51fc8bbc858c88ede7ca325d231b34e4ae0e7ac8fec3e8f6a9bbc6f8975fec1e877f0d05046c3fd7a0e15ebb3\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (13 mod 64).\n# DIGEST: 116e20ff1e79e0af464d473b1e7c187f4dd66007\nKEY: 62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be90\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e03744\nAD: 6f5891d77df660ed82933f\nCT: 783a362232c871213daa72d58658aee2ceb4de66198", "df21e227326010be056d5c4d2481ffead6c80733603b132b256d1c52d64eb8b700d614dca0adeacc0c7a05d1a64ee7b5c8163d1eae17fdd\nTAG: ba611208a3cc40e2cc638c335fd508441aaa15c612a5100c960543d2ceef9709bbb3e70904f3f2efac3112fc61bdfe7accfb5f0e9d640812a4f5b0676d95b1d5298eddc97ce3aa16ee761491e9f424af39119c9f56322b10e8575697bc93d1f6a63007ae085bd20c83fc32a5d4e59ce8840f75b8c52f6aeda4fc34f11301d64e058b39ff765e1ec9997ec51aeb43b35cba9ad4b020e7dcee79ad532b897faee018dae1231ceafa1a5fca1ff1a01f863580c9c07b13354e31b0067a2fb16477150ab6d027fe88276767ebb46b1029c7d6dcacbf418f10d932dea2ea161ff8a4f6d79e0bdbf0a67227d5c9100a45fde25e2d4e360c0c0942e9ce13b570b5ea149dfe422fea36251e226b3f7eb709ed7c7339aaff\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (14 mod 64).\n# DIGEST: c081d0d09b2c9eb39a372ef4a7b0246a0956b0f9\nKEY: be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f\nAD: 5891d77df660ed82933f62\nCT: 894d8fc70288c7b8a5d12e63ed6e6e8c74b8d9837720762ccc519a42e024ee05e8f770180e5213a7c7ceac56cab05834d49847aa1432fcfad8286e092feddd421b33212e41716b3db5358903c11e\nTAG: c00612f3ee6619c87aa5c7958da77fdac74ea2ad1af9115fd003edc7bdb36f639dc2d89668f6c2440827a1e7bdb65acd172be229f8852d4b81d1d2ee1e167ff127fed768d0a6eb822c2fd88e733a0884f06e47d5f3a7e84e7f20d8b630c8e748a03f2eb807f3d6bf67d3f93ec97f22a3bfc477143f9e34049fd9143ad5e480bf538464fa847a5302e6d9ec3710122fe6c295191906d98d69e01e81a79de0538442a76a17fea214c74bec28c01370a0aed01e1a32a629857f5d48c3275b79a25d3fe549829e5d72d9d26c2e07fe133e214e40dfba4cd19ddccb01a6887bfba26db80b40eaee435a7619415af7be271739dc339fbe4a500db56613498b34c2b1f9dfbea13aff30c84fd1380ecd821b57cb3775\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (15 mod 64).\n# DIGEST: 6f7bb1f9e2772eb909c315e653e4737cfed78a18\nKEY: 8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f58\nAD: 91d77df660ed82933f62be\nCT: e5d56aea96fb40312e288074a21691ed29f17a547529d2427e8bcd5024e617411c08999a8a514adc83a14fe27c51b0f7d44f684fc60274c009274ff9af14d4b1277cc03453e02c0ceb26c796432f0d\nTAG: 07cea5df6c6594985f9af65319e2fcb1882f6d1d66fae0ab595ee72dc4a1118a7ef8ea450209809349b41664ee21afcb053e8edfa53bb1e66d9aefde4c48c6ff5b5e411c1228cbf5c1021d605311a20bd6708aa004d7da8bf72ddce1cbc9a12100969131d596cca0fe61c82208d0848ae0d098036a07600cc4b443e344b06d3162c8ebe14850239f77d178152fee009b1bd81a68bbf632082f9a62dbe60a1ba579077842c713ab4d5619b7abb15eb8fd3b1ee1506fe8df31bc90a63eeeefc0f23ab5ec83f4a1e9fa8833f15c90d6b68615ce297b466d5d67a87ac9fb10a2ffba5a91d31d1b18aaee8c00ff1a8b8df9584a33e946e85d8c6a6c8719421b75a8a56f964725abb4a4be790acbd60efde68671\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (16 mod 64).\n# DIGEST: 172f4992e692a88f49628e5d3937959be01aed2e\nKEY: c55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d4120\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891\nAD: d77df660ed82933f62be8d\nCT: 7923c66ac88a9d3a2c9d9e714d491372caea0658b4e5692a7df8da934dce8525d0974848545ce89a44a735eedb22f18b5b8f1455c0aeedea9cb8f5c0bb51addd065a83c4e825ff3993ff58cf0af7577b\nTAG: 06b8d51726fe8d46fce9a59b084c3924c4aa9575d3b3f9b9e31a098c2c0475e460a89639863652164b724927ef13d2c52faeba797d38ddcb9274dfc6478c06626ec55954ce17df075f0b089ef155daf416980039458b7979afeefe9fa3e365ca19637b05cd17987e25f20e62031c32d441a102c22efb3660e4e3c13800acbfba0e7dc99175e35338b87ebb56d09a3b4bca72774d87e9cf92ce8e66917835c765129c8946c7f42ad8acd9afc22acc44a89dbebf6f4b2a55c139312559e2aaf6115aa617ce07cb2a63c66cbaeeeb5c95ce617928f93031f6dcbd3ee30a6fcd4cd9606695b690d95fb8d126c4962f49f11910a6e9daa2227f46a249819074a06cb5ffd449bd5744f9d9c70dc14475fd4b9a\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (17 mod 64).\n# DIGEST: 00133da1f7c63fd5f0eec364e9a359be02c1d3da\nKEY: 5b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d7\nAD: 7df660ed82933f62be8dc5\nCT: e0b671d572a26f0553cdeca68a4d023615570ed0e9414e5783691fb6d1c2bc30bb4a7590d3138972345f3a55f2f90fdc8ad46555d41968a00a6462c2bc0931a18df5480e48cfcfcc00078314cabe0e44ce\nTAG: d01f174c6f726b83162a8a0734e1b1e9e9498fa067454e3a488cee1a04703987d5ce9a219b4ba168a809a181d6a291eae84f91705fc0701166400f24775bf5816a67ea6f011829ca07ef1aec6ac3b7ba0576c26b557b00fb76e84b6e633c48b8c425678ae12c922a7af7ce0484861efccf958ed418e2658b03b5c978fe624b16428c41a2a7ee1cc07c9d730b689cf92f2041b5e68908fc93d8221821106d73363e2d53df824a82841be5bdc0668c5b8759a1e79e193dac2e55e4cc083569fa727b952a45e71840fc330977e072457de678d3f3694e429131e25efd339421094512755604e1ec84efdb52259f6e8284bb7ebdf229cd3e4f1abfd6498e3b493b21184f8a42ba31f4f22dbeacbb1d977d\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (18 mod 64).\n# DIGEST: 60a6821269be6c5b985576b245f106128eb0b325\nKEY: 436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5d\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77d\nAD: f660ed82933f62be8dc55b\nCT: aa02a8b8deeb507cd2b2ee187af85b5afa85583c258df91df9cf5307316d03b5d8aad0441bacc27c4cb26c56239423f8e46746978c0edd3c21018f6b9a1c39278f71b462c6da999a6f4d9513a47cd7986c88\nTAG: 5cea96fc3da1457f7e66f324a3c634829a6382fb75efc614bf944cafda4c9cde5bf3118838487401497849d59f895d761b8b0da9f339123aeab5b237edd48d6c1ab4120da7769a7f8510bfca3d7313f0f38dc6c34fea81f60dd3e421afef2d9a61e6b0d7be96b357f1a293fe5c21d4ee858725a4c088f49a24930d846d2c0fad98002fa66a618367425cbae16fe570f3058fcfa2544f1d085ddbc6226e35c4355c916660f7f8fef4f5ab705c93b5182269adb8a4eeff4e62ee278c0588b96043f1ad24ca39a7ad458f541101e1d6cef99d742e2e4a124e4f3a57986d0192537d956231f4e49f5a87f5b7f5a4cdae6cc647b90177dc4d81232c62bad3d99036812f84b3208ed2edb8058f4973abd7\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (19 mod 64).\n# DIGEST: e2593f3b6741a9ed9fa188fc06efd057556ee624\nKEY: 6965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df6\nAD: 60ed82933f62be8dc55b43\nCT: 8b397fb4fa218359120058dbd145f4bd99def7e5e0a88249783128801b3828909ea19d9f5fb0f3e15ebd624fc32525796ccf9ec01b1da3acc6dec2a9306c57db4eeeeef4830575fd8166c13c23664d4df4cbac\nTAG: fe141cebcd20919976fe53fa1a9e186db43122704ac5dcfd23abc2da394907a9da4011bf32a3948b0ae848d6d010024c6f37191f6fe5cdc46430b915a9c5cc80329ab5d32797fc97bf3ca270d8b35c14e3091c99ca3947492613d183845ea5b80619d20c38434261dab80d4068449a0880eadc55f0b43cc344a875adfd23020b6e63c3015c887ef52c72750c09f60c7bc0dc29ac7a6494bf9771c4aa931aa440ad400c1cdff8f3d1bc4173977128d1eb57731e4b69d3e6d4715dc5d2a9cfdc2afeabf3513b3e3c107a83ac48f511750f887f59b10f40e8f2d197832dbb1febb82c29627232e3793c8a72d7033c86cf99fb54dd2e3ce099d4fdb50a63b06d5f595d5bf59474cb190245a36095bd\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (20 mod 64).\n# DIGEST: 17450a437efe239e1858ac4062f34024305372be\nKEY: 65aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce99\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660\nAD: ed82933f62be8dc55b4369\nCT: 24e568a27d8bce547f628bfa545c4b7ccffce40f73b5abd6e1b60d5efca7cd6d5feda872e172f64d9193d3d2d3381efb52c05f98d3e1fb689fb05d7017654eb57346f1b3dee23b0f166e50531626582115af7cf0\nTAG: 4dae8797b02d7f1d8dc42b10f18973c094880a10207d9479aa825", @@ -761,9 +841,9 @@ static const char *kData18[] = { "642aae9f7bc42060e\nTAG_LEN: 20\n\n# DIGEST: 6b7295febce7fba8d79d1e7ab8fdfc452191e2ba\nKEY: 454879c41de9ac9f98233b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e\nAD: 6da12dd4c27f4372480974\nCT: a1d0537c3bddc7459a37268608d30ee8e15377c922a4300d7e7f00084cb45a9ab7cfc7f89dfb68f3cf7defd102012361782e977e22c12ac1d91d1e093a21ab26bd171b426af9af7b2dec9d1f2dcf78f19748b39e9b0736e24b44dabf677296db10dc28cd37751d020e1780e5fb00142e972baffc546b9b55bd0067e22ffee4f10312a590394a296cf6fba3456b3c0a64b662d232f185a41762bbad664f977328bba56b62f489d33821d4d604265c388b5ea852968db95ab844c7cb9498bd28d4b055760f83fa94f2a35492a4dd03a1fe9f0c2947fedd44b96948447054e2da7fd3b9d95bfcd0cfe3d1c909e84c9f87ba2a50c33d588592ff3c7c7b56442d52683e222f2610b740a2187159b05f2b15afbba7a97ef2dcb30813b89393706011397f4aa3c537e91fab098ecbf3a87c2185b9001ff1a78e104fbeac85bea4ad609bf1571d83969934d483794944c2e6bea9d778d2deac2d6344106c1dc30d56251faaab3f4dda43a2ed8c3345d9773e4fa4effc5edc3a68cc423b539ed63e8b0605b58aa881906e38b38f02a4df3708e9de4333056c96a02ad6d235636da61fedc631f705e771af9f522109a4d3b34d684b3b175d28a389ea574215131aa68016ea9cf3664b0baa6491f85d3a4370f73967e4c23637fd1d\nTAG: 131597a4dd3057b4a44498ea09294f2df51a5e81adcb3318ccd5\nTAG_LEN: 20\n\n# DIGEST: 1dadffba439570155af2509a548764a93042d23a\nKEY: e9ac9f98233b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e97\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c2\nAD: 7f4372480974454879c41d\nCT: 98c951eccacf8dcba5b819312f0ed234ea1cc06abee5f70888558000c2857de7411feffdf379c187d327943c63ab697675557a62c68c13f48d3970531225d5fb6c1434a126cfd6ba80b8f6dda08b3e3629ed12f7bbb45f45148f8544f0a8eb70c849260916eb62baa1bd850e082ad69ca5817594e8f26f63a1909ff03f5696b7a52f146af246c0c6485ea5826c89471c04fd6c373e9d0fef06f4a7b01400962ebfa4ef4166dc895619864accfef9a4be874111cb333518b33a3a2565d032a2434931a16e000d01e35317338ddbc48317517367603697a225d81fc63fcc7d4b8463bbd24910b4972375a995e13baa148b644993b9a7bd706ae64da00f898599957e406c1ab15fd44b6e85b41d47ffaec8136a5dadab324cb0ce95c738a1f8d246af90d98a68b8ab7003d74aa29591b58ca7b2dc38f21f4cfbc04f2e239728e1350b0f074293a13970b264bee368ff98c6960a805346c19702983d3ddfb6306f24cc7f8224e553b0668180787e48ca8e5d851f84df71d5ce6fd7815d39d7e3941b8e0562af98e6e244216bf418d7ca2d9e29ecd3997573b2c4d92aea1a5a82f2272af1218b379ca40a28cc7ce09ad60028a5a6aac6ce145cc3936f89a5d34ba54aeec8d99f84ebf7367fa5fdc12def2294fd3fa3299ba1a59aacc0d7\nTAG: f65b77267d53b2dfc87a936ae08ef7a3f630176553\nTAG_LEN: 20\n\n# DIGEST: e654b4c78e1c0061eea2996fc126c9bfd41eb6d9\nKEY: 3b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f43724809\nAD: 74454879c41de9ac9f9823\nCT: 5a1c2b7a8d5bc74901521e1300567f30e2b7755f004ddcfd8fe64f471cbaec4bc6d445ea931bafe6ad78034d0ac1d3916f1e0405c2f2aa4b193c2cd599d34b86029840ad379b136aea5c2a74ea70e22e8c8d1e017a2f7d47f8ebac7b85087075c28d6d2846e357ce031abe09e03629a32cef0b205d631f36ec9a1c9c4e90a80900e01688c7298b99be65f204ebaf312364bfdf57d9e16b0142e879a47b9ae0e96fc62e90883624ee2dc110f3a83ab341f4558f360df399170bbae57cb2eb377a87aaed9755e8057d76609d447a33a8255450504b71439fc0d03e0fffb775019ebf921325b42ef56e1b454b5c87ba5daa1f0d0920e860eea43c913d417cd9e9b6676759a4e2c71b0180b432fe2aab4e4fcffb51b4198ffbedbfcdb4dd4e105847f5a5832e85744f34bf3b9929ffeb177ceb4c5e68585a3ff8fda6569921b3d093a2f1d77e710f78245eacd471af88da8ff8f268293845a9a8550ef34e2bbff9d6cf55b18987c71eb98803bac42b0e6c062015fafb754c6a75f927cac4a8adfcfa8ee05a3f115f1f90d734f78180aec2aa621fa7908d350b0cd8550895cf4b5c3cc75eb95fa574f9a91c1f5efa61f054bedd9267f10a08a21b19e63754de10a1bb0c4ffd8c5c08558882a2f98f1175920a71b981affffde44ae1c9281eee161c4c\nTAG: 28f3243632b13692a2f175644a0e192d8102dd9e2affc5c1\nTAG_LEN: 20\n\n# DIGEST: 654b8591c7f0506261713e9ce7a6fd24a6b9357e\nKEY: 61792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f03\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c4\nAD: 1de9ac9f98233b5a7379a5\nCT: 62d0c56ae3e695bafc3cfa3c2d8b9d17ac8ff3b84ccac28d568c1ac84e1574ea06f31605caf86d4e809e39e9c275eed4a8f27eb00dc78e1c10dae719519d949dbc22e00d8644bc3806e54e6531864ae4cb5694002e2a3d7146b39b0b38acadbf1651401805f6394831c608b0478d496cc939b24aa3d3e6d445faceb798a69ae1308a593244645e242829f64f7945d0af8af0eeb6d391c69c2d5bf7b00e42092b36c23362bdd627af43ca7336d88cc36e95ede07b83afb54c8758678d19e0ea7956d8f26776b0f4b6b637c1152853651b6c130f436ffa2d4fd0c344e7583c5e56d6262f43767a1011d8398", "311dd6e3d7f9ea89d3eb3f6a1a9cb98905c0761fc5be1d83005fb9ca039b877c30b402743bdf0109ee5de42eef860be676a399a206c08dca8e757f059f7d9611137039b9053430e7d6406abcbf7aed645110aae84f758fcf0d225738cc7c90ace5d83eb9fe65d1e65efa4f6c9d808060cb0f72605e3d7c70e0d13d84689aa1e44aa4dcb152f230d456eb6cf520898bb249262d30c64fde02d6894f72ddff201e4bc41c5fc1f394f2620f764d40098292b04aee45e26812f3abf9a020b5215beb7938e2c121e809ab825d22a2d560bb9bde47572ecb891dd49b38f41af9649dfbdc83ab9bceb444bacdfca2fcbefd623364d4e255e2c0f3164ad92\nTAG: 42174887a9a11a8ac5d1d13e83f8502a3cb0310bbf46b24ff42e3d\nTAG_LEN: 20\n\n# DIGEST: 1eaad32c8d0cefaa5e2c503bb2185a73e6387fac\nKEY: 16430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb7\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98\nAD: 233b5a7379a561792c0f31\nCT: cc269c9aed42c9ba90c768710fa03985372a219f391327e438b1593af29aaf2b66cf8fd60f137d8ce8438a7bcbf7c1c7010c06636f191802daa26fe12ac1c1458baefb2a51fc7361b2d98311c2eaa27e046fffbb76fc855ac01a1321672658e394043367e89478a789d662c88e91642af53824097326d991abd62d1ab818452fc152aa1bd05032027fbb691886d9269937f7f57e214a2186a191b2249ba6fe79b69a94623d85ef0db6b5c2363627ea15a614e6ee42ce0a26a90faaa3ec45451c69c7d472d98b0376a95503b16c6f17eeeb42e0ad5c8775584819aa01309e6071e6b9494da6ddcf992ec6bfc81e0031d74353afa042abfe62fae02792bb6dcae82694cb651689e4039208bf677c90ed6245606cae81732d9d32043e5435f8c40cb76b55a03593dda1271aaccdbc24f18c9a881c77e1dca0e62bfdd36208ee94370b166d66203dfb90c8602dfb48159410840c669c47e7514bf91ef603834bc213173458a87909979b3b77aaa77262e1a634fcb40241818f544f9d207e91ca1f46f77c5c4f606398938f764080dda0978c6b76ce76830a15098870e72b5c9f4975b495d2c5d969688b555773601ad8c857ca8c38565674539fa71a8acadac5415b563f55811b0c010ca1e6793ad08e6c830a0ec2b385402fb8af3b6f0ea0b70b458667953207e4d44f1959\nTAG: ecd2bdb2e683ff8bc7d20482e698ce2b608032094cc2\nTAG_LEN: 20\n\n# DIGEST: 862c0517b3658e9b9cd27db608d49e24e9b4667d\nKEY: a058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe9d0cb746bbd55813\nNONCE: \nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98233b5a7379\nAD: a561792c0f3116430e8b6e\nCT: def7eba4397065d05a7a1b742179c1d8eff65e7e4ac18bec49ed020a95497a58af4ce62679a36b77f95f72913c2a58184ea0c3b59b60784bdf63893a2a84f76ab2b6324a218361316971ebb1e2850b6c7baaf9130715580626bf298f60d862cc4b9c4f353a9e4c7536fd697ece9407eb8ad434c97e325cebd5aa0cf4a5342724f2950c8623aa3a5322f2e06a6b1d71a57b22a2f85ed1acacbeba192cb29ced37983e4231bb930c07f7266728c54e8fa9a0b7195975095fd714440e07d63aa87778061a361b4d44f0241a504089b738cdf3a6323b7a709d39637a2c61677c1f034214a4da6471a89425a5cc6040f37261b9a8e55589b2c24a01b4379dfe00ce758e9e617b6d15abcf0974be46d151c5d26e69c50d3fe68d1854b788d6a43e72a00b1602bb9e7557c4c298b99cccaa17fd950123d672978cd359e115eceb88480d59f5496a920949e09d0590283280d78df0ee068c475706701034b5b8686c60e2c4c4d4bafb2dd25c86293d472d195186f3fbaaaa000cf678295143aa290b011ec35e1eb2dcc6ad12593a934b60af7b570bc59569df2e99bf618aaa60e533265e2bfcfe3e01dd1620cd7d6df8b70726b5fa1191b0cdbe627f714744b2bf2abaddf800cc091ce5ee447f2a61ad36094743182ebbe236745bbeb27a946c8d8dba54dd3597fc4328bb3fa5f43371b531bb\nTAG: bcb4795a551fa0b1d147e2c8f70c31f20a60228963076b32bb\nTAG_LEN: 20\n\n", }; -static const size_t kLen19 = 455606; +static const size_t kLen20 = 455606; -static const char *kData19[] = { +static const char *kData20[] = { "# Generated by\n# go run make_legacy_aead_tests.go -cipher 3des -mac sha1\n#\n# Note: aead_test's input format splits the ciphertext and tag positions of the\n# sealed input. But these legacy AEADs are MAC-then-encrypt and so the 'TAG' may\n# also include padding. We write the byte length of the MAC to 'TAG_LEN' and\n# include the unencrypted MAC in the 'DIGEST' tag above # each test case.\n# each test case.\n\n# Test with non-minimal padding.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8e\nNONCE: d1c8e9ba2fd6773e\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: 144c98ca1f\nTAG: 4a40ffe530b338e5173a8e62c8530b0c14b15046d12f2ca3158ad71effd0f46b29b3ae\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with bad padding values.\n# DIGEST: 7f3a0e20bde700d3c5596909282e5c3e764c99e7\nKEY: 86d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8e\nNONCE: d1c8e9ba2fd6773e\nIN: 936a91d0b5\nAD: d2c0267218cb7090c61713\nCT: 144c98ca1f\nTAG: 4a40ffe530b338e5173a8e62c8530b0c14b1508045d58f4bdae400\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with no padding.\n# DIGEST: c6105cc86e18eb8376c16ea37693db5c07b77137\nKEY: 8503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe47\nNONCE: 7e0cdd46be99371e\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c748\nAD: 1df3f4183aa23fd8d7efd8\nCT: 17944422f667bf1356c234189f9c6cf7af52b2832b2fbaa990ccef4e7f9bc3841e59e25c00e3686d5bd5c29f\nTAG: 3ebd1b0bee840e8a6e992421c62de5a8fda3a82f\nTAG_LEN: 20\nNO_SEAL: 01\nFAILS: 01\n\n# Test with maximal padding (0 mod 64).\n# DIGEST: ceb2d295bd0efd37c6c34dab1854c80e986174fc\nKEY: 37446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65\nNONCE: de39f4f03541a11b\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba\nAD: 2fd6773e0d0c302a5f47e0\nCT: f2ab16ba87c52d066c0637d387b89d700a66828ef231b480f39aa08ac2447c8ddd205d1a95da37f267c06a1338532de890904f9f19c930adfb684e81cc06bdf2\nTAG: 3ff610fb9e208ff6ad58b78c5b2cf54b997eb3f24ac0171229ff7ee9cd5070de5a604f78b35b6cd25b3f2ab487847ca1e3928bf7f19bd19c9c9a1015dabd2de426fe57d342009ae4a2e67fdea378f24ec8dec1e87b62b6f70626bfd71f8d8d5e5c5b935a76527ee8a9a3094d635dc2b01a31dc4df336aa023517d7c35e142ccd6a79bc689e335f187a5358a00a7d4eb168cca3f9c6523ad4d74609a5b5c9e36db6bdf8464c4c8497c501084afa17557d070a7671c9144c86b4de9d57f033bc6b59a7f1f4e947b6a2d69c85877de731f6eb3db71d9f4c2dc086a3303bcbcd2f5b71643058b7ce08ef5879e0578ec81ced96ce907d4f32e67fd4cd269de9b60e09ff74bad6c86356ee297475ea7fe75d75\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (1 mod 64).\n# DIGEST: a07054c760cc66fc704edf950201005031f3faac\nKEY: 446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de\nNONCE: 39f4f03541a11be1\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2f\nAD: d6773e0d0c302a5f47e037\nCT: d7059edbabb5cfc2cd5c459abd74e136790aad50d988c6c9271428597617db171b89ab171a68b14f9d417bb81f9f7d2e2045aa47c0b5d166c8b2622bd914c4e752\nTAG: e3d17e303776640b3ab712f6068c44e0e3b5d375203a8b01ad47e6f4681011eff04a41d03ff073e61c630b5faacb744447226a35e7496204911ddd660792be62c5f34c918a0d8514872100c4637ca12bc9c13b1580aed10a68c9187377441bcdf213bf3aa72831f3498d990a7a5960e1e6795bb11e4c7910a881d76ac81320ae61b151b8dbde093bc9e56b8204463d8ec31dc32b3cad5cd8cb48b5f20e54c17469ce97c069051c8e4b2ae5dffc0c2651d868a9909187c2732056213e41e315e94d14a84a24a676155ba86ef0b96efee3e4765dfc750953dc9a7ed739422c7d988f290432320313848a2eb7723c7c85ca3590eb35e3058d0462ddaab0cd48730107d4031a216c6c2595d1ca0b3f1815\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (2 mod 64).\n# DIGEST: d059c266cf6233af730b7a229b19356a4c6fcf06\nKEY: 6f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39\nNONCE: f4f03541a11be112\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6\nAD: 773e0d0c302a5f47e03744\nCT: 8864e31c8b2ce1bcd1745671da5bd66e1e366b0af66b91f605574c841084a5df358483c7839e4456ae5a442930f21d4bde67578186a91c0a603468339ffbe3bfc607\nTAG: d8a0bcddd40964405ef006e0083e67a607b9f926e6508880d7784248a626d56a0673ff990920960fb307ed9cf40c2a1cc3b632b1f94aeb30efa02123e66165b77aa4be5e2aaba4c4a52372b403cae2f78a3bffc1cae8dc6f53839de7f16b8984304abc4a81ffe1ffb42799b54dc43ca0b963be6299a404fd4b3acf65939ac319966aae0a941c74135705092567e1237044c88f79b02b68ef622f9c776bbc04dbc2f58338c129f25afcd8cad7a0e91f30339457075b68df4960c003ef574e3aaae870787ae9ddab96495861388b341aa63ab2721abb176c4f2e6d5704cae123c20f1394d6a12d51fd5782dcb59d075775dfeb72df846995b87b1d374c0d0b8a003ba60f713ad777b8d6ad42c5e373\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (3 mod 64).\n# DIGEST: 8aac0687e33041fcc18da154b41f20a6af2bfb28\nKEY: 5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4\nNONCE: f03541a11be112a7\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd677\nAD: 3e0d0c302a5f47e037446f\nCT: 1d239b3880e2261806ee770e7296d573d308d9850c8bd90a0764822faf5f65770f98f18ce4738538f03ad9b289bd5fa1367258f00d3ed91e32885bc45c30a240cad8c2\nTAG: dbeb6d1a1165a902128a27d7f55f4d928b56a3b83fa430d47bc4f935219fcc6005487f1ab14df0a07a270645d1c2fc23efc9866ec7e4427fe0382b75215c0f994f09c4ac54bf360f8ec938b02c17c4104127d2cb1eb51a11455180931b8e473838e5b1e61cf5cd05947a5b154be5df49905e6e7c049d00f065f680b0e5f3f4a7e9dad37d493f13c7ba318ca2bae086136d67b17a6ebf28b45cebcbfe115a45dfa32786a8b8354d51acf58bc126a13146e0ca509a26cc32c3e8ecf5b9d6ce76a9f76d674316c42f3140d5139304479376db2a167c65da7250e6fefc9d3b37a2072180ab3202f1fc7dd7f4598d1d976b15945fa73e1be07a91186ce7c16c4249d9f7287baafc572673925e95caba\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (4 mod 64).\n# DIGEST: 53658226c112b86438dd27b58a71f9e36fc73c1e\nKEY: 91d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f0\nNONCE: 3541a11be112a729\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e\nAD: 0d0c302a5f47e037446f58\nCT: 719d9de3bc86d08510354817d0fb94340ab1ddeefdb95a1cf460f7c9b185837b5320dd862b4c319619a0b18dc75f1762cf7c9bed63713c31e39a6f7069563441b9e6f106\nTAG: 8b61062c9480ffa62f7b96e9f50249426d05bf237d25e2b676e0041d40ba97101843d9ebc978949eb7ba53b8989ed0e93e5b91f13365345baefa1d7f59b694f6ef0bef0adc1d6763978e12fe354e57b90127533f3f991ce611e31e88a97962f859ebbc0e50d130c323aff35581f1f45cb5c650299025a03d99026d6f6a844ed9d5fe66e15a9fca79726afdaa54c077d148d561ca9e77e427b8f8074714aaf8b011697524e4d91bbab69bc01c8346e9055d7269cf124b503f7ad38c384abfd91ca36159d8a41e6389212167278b830ea464f7dffc3e01c9807368d3457ad5f21b33bcb1afd41ab7d805c9ed2f2c32da9bd4b510366b362dd02f50666ab8e5a72486b3c0d6b9bafb38c9375dda42daef635a0007ef\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (5 mod 64).\n# DIGEST: 6b7d5268b0b5037afb5be5af6a0ceb34e7656ac4\nKEY: d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f035\nNONCE: 41a11be112a72933\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d\nAD: 0c302a5f47e037446f5891\nCT: 9adce31c760d09ff911ed98eeb7146e82017261c8017d9a5fae1127479f6fb54d081cacc1ab7150f05d13547b992c1fe36a6e8e55ef1fa3bcc45bca495a981000a0c0b4f62\nTAG: 51d033e8003b06bf819a4f7978d75abec450c6b11a00bdf27f549f6060390ff99e0feb9509c6ac882777da699f5d5332d1b838a0436101574789ba485769ea6f4d73a10db775f06331140b218fa2ddad7fecf381fb9e3d26b06b3577bdf57e2a8435ba0e5b1e305ddf28070d1749d11ec5504cd9aa51ffe9133152ff35de21e4bbc3b109a318075d924bbaf0e267a1abd3d7afd2d3d8f4d951d4e96fa63741087a975eee8156b01fe566f7f6a309257c17a0bd9faae4c2781aae72eeab1903602b09b69026540a84b4786b8dce2a3e5ca26c65eb7b220dfad400cd236a4435d7fb1be60b9074f2f226e810d54abe7ec0cf10e7c465059720baf93915dda8a56d5a012a990d72408d2c9ab9b8dc813eb2f1caec\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (6 mod 64).\n# DIGEST: 63efe7af50", "2231420ed5aecce9a28446b257828d\nKEY: 7df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541\nNONCE: a11be112a72933c7\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c\nAD: 302a5f47e037446f5891d7\nCT: b81f6e678c5a08244a5f578970d64f96f50ad5b5724a9287ee7b293308db34e03456f1745f79c594ecc480fb2a9412bd685e6c0df028eda06aaa15c90afa4ec01736450e3eb8\nTAG: 63b849636c212d353918c6e3044d298da268ccf1042987617860b58eb7ec8314ccd7762ebc39b62c0f0f1c346c8f4bbcbf3bd0134c0a7374de1868b08ba013398d8e4b578bb8d7359f2cff1629ede34da00138efa4a724d892fe4ed2b28613e66e0bb4830f66c14dccbf8656e615d66f267182662fee8a3e1fcde0941793f0bf2b00d6ab6e9fcb30553b620cf8e9e0a15f122808d739e698f88aa157baba12428541e928ed556517978f6c9f29c6ae8fe5b4e9ed6f0ce49351ac2a63e74bda9288a874a7fd5327c6856596a3271039dcf54affbaf29a5556f1fe1062279d2600b920f4e26c96e9e8fa696c521f60e9418975befa58ad564e730d1de312ca1b999a5e89b813743b1512659d809078243170ab\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (7 mod 64).\n# DIGEST: 1a555c300a1d1bd5b03cdd6bf2a678621624eb05\nKEY: f660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a1\nNONCE: 1be112a72933c7b5\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c30\nAD: 2a5f47e037446f5891d77d\nCT: 6b6f94bc2326760d257d8156de961acac0b32d7f4d0e20363532e76ce76641ba66a1aa7945b9ee58527039cf83fcb01d8ef85254566947347463e161ec8cdec74a839637288d09\nTAG: 77b18bca8ed1d056d9c974054598216bc15bae5b7d70f3bbe32b3deb92398b0ce25a1efc5eb6782fa5fbcdbb415ef43eca090fcad4d34d53b1fd89cdd760e6424715c7703c51e08b72cb3e3b8a30bff159d5126f1473f216d5c931ae03703d3baf311a59d7ef3d6db123f3e8c0ca26fd3f8809ca63265d2fac935bec32631af43626ed1ee9785c81d7bd0cbc0c5178e1ca7de5d12c3592a7880be6590072c4728b2afa1eaaeecdf7cadd8304c2d4b614af7af14efa00dda595be92de09c74b39df05d7d023db721f86992c57061a264dead21e24fa47816f43b77b8ccccde44bfc32a015134a2cfaf04c582fb839202b08b81543ea9358d5735e7c197762a6a39936e26de58690a02dfc273e6779e77708\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (8 mod 64).\n# DIGEST: de9156349b578f2f44945ec6a676a67a829daea1\nKEY: 60ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11b\nNONCE: e112a72933c7b54e\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a\nAD: 5f47e037446f5891d77df6\nCT: 8f211be563f98f493745cca0e385e5b0113027efe3b0a880805427e363014323c4f6c7e6b30d2466c70ed56d63157f2c4f6dabe14d5a22c6c708ab3fb667a6c64ce5c8de22f5261b\nTAG: e5807ffa59e0005c9dd7eef0b854ee1b2cfccef9977f8a963167cc563d844f795c4ce4f9d03da95e4cfd2fc80c9efb6424df8cd3b7875a6ca129da8f509ab09d1f0eec0211e0ffe5492913fb688796a29a8eac54f374e8948991059f6e73a68eba75a892b3e2ed5ab9680eb0b308b07337e75ad5b406c260af5d27955aa820bd0435549700e960e66c211000885e19b804579acfa8c526603f8d743491d916fd4d0e250159e485a4db2fea39a8eb9443516518e6612aae97b1d9b7ac48066d5fbe2c1be3b2e20233a2fb4d39052ef4ca3bfc47e561aaac9c57a7dbff922d6d997821f6b09bf3b4c91bc6162b150e17bfa2544f93f2bebcb4d20322bf0357fdffeec8f75679e6627b4ffbf8e0bfee63c8\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (9 mod 64).\n# DIGEST: 12812df3aa7f3bbc899f6f248f5590e02570c292\nKEY: ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be1\nNONCE: 12a72933c7b54ed4\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f\nAD: 47e037446f5891d77df660\nCT: eeb6afcfd2626da1230067ed9938f7df35e99d2ba1c91d0e91c3db53034a3dd2ce3352b06e3d1b9e8415ef4ced9b2257eb05bc86db8204a8bd943bde51423a09459fecd528faccb646\nTAG: a69c7d8db2c021284e73b3c07620022eb6f199509e34611ed671c3558ae7c103c78024d96c00c791f3450d1e0338598a246855811af4cc9ae1a6522487a4a77b57b58ce29038ab0a2036404eae59133512b9ea40e2d7176e1b36965a27ee2c898d6514872bec952a029d9d85bfb0c99d8b348db6a3bbfedb6d1a3128664c454b9ef29f075fecc469f233e18567fe16759b378600a1d71504231e6caee5688e9858e14fe6fe850d95d7c010865781f0457a22f53add7ef57071c7153d312ca303e4884b83c9acfe86686517d80ce271c148cf3ab6464a9751b66ac7682a5f885ad9301a5602c099e89977f06b41badd1c2ea1f7027a38b749e2ca1a3ff4e4889e6dbd3674a52c8e24d2c76f64a6bc77\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (10 mod 64).\n# DIGEST: f3c89f21c327fca4aa400fabea9e39780378e901\nKEY: 82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112\nNONCE: a72933c7b54ed4fa\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47\nAD: e037446f5891d77df660ed\nCT: e1eb2175bfee27951357b7536e2c3a4c607bf511d1922f6cce462fdf98de9dfbbea66d38884c270e29d08c5ace1d6bb7bcd2b46eaffc67a99e225927421a9894238cefa73bdb48694abf\nTAG: fc1d8ef98aa65ba8a288ca04990bfb373071633eb1e8f30847d3c19ebef66962cce12d015b045e10c9e0aa7f275137e00cb2c9a0508c0187827a74faca4bcd015620f1cdd8f72161bebbb8231ad4b705d1982db6f9fa1d2303c429469737a3141adf729729144f55223df1fb45705fb15adb5cd03c2936674a47d7f6aa5d2a4d9a017e57a4f5dd954504abb588866457730304878ca322f776e3c8e7becb8437002bc757d5b34b16d04ae4710553a624a3fca8866fb3d20672d6f4a2f937edecd58e68b7b0a8c39819ab48788956c1f3f5f4a15e7d13350090a20c61620c9181f03b4d68d7e4f336cb7e4a1a277df5101511150dd39fb43a84cfc480fd548035c8e9ec26602dd66d250fce39dfd8\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (11 mod 64).\n# DIGEST: e8e41988fad6c8b44c56544964cfe0a347b35b1e\nKEY: 933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a7\nNONCE: 2933c7b54ed4fad0\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e0\nAD: 37446f5891d77df660ed82\nCT: a799c4a6590a4c48735d1da9746e5441cb11b664daada5d4d68d3a0110c4ad8d5e96d7331d5f7a0d1df9af5da4208065b6bf31affdfcd4944e8ed55b0ba7b7911be1a9052fbd93d5fbe292\nTAG: 6a6e5ced88748f87682759b554d9685280e094e083d297dc5fd474c4a2605612b2f8b1c31dea24d58c25bcacfbf03b8b09dc662d6e1120868ae9a0f1dbd2799756136c2a26a22e3a61a0216e76e94393534586e1a59c570d8bdb37d5ee6d0762e60c7171fc7953e59d74b0f2ff4a061d27a7baa8ed138c51264b356d9a42b0768bca1c1c458acdc82bd621031e2ae7790596594d2f6eda2c8d58d4b53cf6990434da8aa9e9eafec648d52233e9b92994ca5cbc071dceeed57b02e36f93f8d22551660cc4c1e425aa77dcda3bf6c98bff7905becc075e1707e37453de8f300be5aabc96c1051fa46c796a2c8367a00af3c4dccc58bb7dc8aa2e21e0886eceb898080bbc7259648f2be9da0f1b56\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (12 mod 64).\n# DIGEST: d1c7b2c04dc25fe7b742a1d659aec20e1475ee4f\nKEY: 3f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a729\nNONCE: 33c7b54ed4fad0be\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037\nAD: 446f5891d77df660ed8293\nCT: 2b8ac97f05a67490bf16bc64381e9c49e7f348212d0645056ca5405e9e0a248b6918568481ceca70e20ae4b7c1f62700a2954188793b34504fa86decc73f667e5fae944211059dfa94ef072e\nTAG: 5f91838f37198290b43fc04a186db6a05261ea9916a1dd6450604ed8a7d0bb59751f6637f593ef1a7e3aab6421b7a0cc6b5b47477d36bf439806dd8156e2bc2e229bcbaed9a3beedfa383d674d3b91922e6248d1aa8ad62361a4bdcfd3d86daeb6d775a521916ecefa2244aefbb0cfc0ede1b1c0e0059a4d69850160d2f4f662ea2b77fb074a6de69feab87bb56f27edc3a42037a041007f0a08d204cbad0a9047f7798dad51e5c04126519b53772ad4f3017f9d9fe91920aa7585a5f2d95e7a8fe5c7b22fc696be10e308f939c34e52b7bc2e71b06a56e3ffa5a0ed529eaf5a8c4b6857b1f144f51fc8bbc858c88ede7ca325d231b34e4ae0e7ac8fec3e8f6a9bbc6f8975fec1e877f0d05046c3fd7a0e15ebb3\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (13 mod 64).\n# DIGEST: 116e20ff1e79e0af464d473b1e7c187f4dd66007\nKEY: 62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933\nNONCE: c7b54ed4fad0be90\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e03744\nAD: 6f5891d77df660ed82933f\nCT: 783a362232c871213daa72d58658aee2ceb4de66198df21e22732601", "0be056d5c4d2481ffead6c80733603b132b256d1c52d64eb8b700d614dca0adeacc0c7a05d1a64ee7b5c8163d1eae17fdd\nTAG: ba611208a3cc40e2cc638c335fd508441aaa15c612a5100c960543d2ceef9709bbb3e70904f3f2efac3112fc61bdfe7accfb5f0e9d640812a4f5b0676d95b1d5298eddc97ce3aa16ee761491e9f424af39119c9f56322b10e8575697bc93d1f6a63007ae085bd20c83fc32a5d4e59ce8840f75b8c52f6aeda4fc34f11301d64e058b39ff765e1ec9997ec51aeb43b35cba9ad4b020e7dcee79ad532b897faee018dae1231ceafa1a5fca1ff1a01f863580c9c07b13354e31b0067a2fb16477150ab6d027fe88276767ebb46b1029c7d6dcacbf418f10d932dea2ea161ff8a4f6d79e0bdbf0a67227d5c9100a45fde25e2d4e360c0c0942e9ce13b570b5ea149dfe422fea36251e226b3f7eb709ed7c7339aaff\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (14 mod 64).\n# DIGEST: c081d0d09b2c9eb39a372ef4a7b0246a0956b0f9\nKEY: be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7\nNONCE: b54ed4fad0be905d\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f\nAD: 5891d77df660ed82933f62\nCT: 894d8fc70288c7b8a5d12e63ed6e6e8c74b8d9837720762ccc519a42e024ee05e8f770180e5213a7c7ceac56cab05834d49847aa1432fcfad8286e092feddd421b33212e41716b3db5358903c11e\nTAG: c00612f3ee6619c87aa5c7958da77fdac74ea2ad1af9115fd003edc7bdb36f639dc2d89668f6c2440827a1e7bdb65acd172be229f8852d4b81d1d2ee1e167ff127fed768d0a6eb822c2fd88e733a0884f06e47d5f3a7e84e7f20d8b630c8e748a03f2eb807f3d6bf67d3f93ec97f22a3bfc477143f9e34049fd9143ad5e480bf538464fa847a5302e6d9ec3710122fe6c295191906d98d69e01e81a79de0538442a76a17fea214c74bec28c01370a0aed01e1a32a629857f5d48c3275b79a25d3fe549829e5d72d9d26c2e07fe133e214e40dfba4cd19ddccb01a6887bfba26db80b40eaee435a7619415af7be271739dc339fbe4a500db56613498b34c2b1f9dfbea13aff30c84fd1380ecd821b57cb3775\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (15 mod 64).\n# DIGEST: 6f7bb1f9e2772eb909c315e653e4737cfed78a18\nKEY: 8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b5\nNONCE: 4ed4fad0be905d41\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f58\nAD: 91d77df660ed82933f62be\nCT: e5d56aea96fb40312e288074a21691ed29f17a547529d2427e8bcd5024e617411c08999a8a514adc83a14fe27c51b0f7d44f684fc60274c009274ff9af14d4b1277cc03453e02c0ceb26c796432f0d\nTAG: 07cea5df6c6594985f9af65319e2fcb1882f6d1d66fae0ab595ee72dc4a1118a7ef8ea450209809349b41664ee21afcb053e8edfa53bb1e66d9aefde4c48c6ff5b5e411c1228cbf5c1021d605311a20bd6708aa004d7da8bf72ddce1cbc9a12100969131d596cca0fe61c82208d0848ae0d098036a07600cc4b443e344b06d3162c8ebe14850239f77d178152fee009b1bd81a68bbf632082f9a62dbe60a1ba579077842c713ab4d5619b7abb15eb8fd3b1ee1506fe8df31bc90a63eeeefc0f23ab5ec83f4a1e9fa8833f15c90d6b68615ce297b466d5d67a87ac9fb10a2ffba5a91d31d1b18aaee8c00ff1a8b8df9584a33e946e85d8c6a6c8719421b75a8a56f964725abb4a4be790acbd60efde68671\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (16 mod 64).\n# DIGEST: 172f4992e692a88f49628e5d3937959be01aed2e\nKEY: c55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54e\nNONCE: d4fad0be905d4120\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891\nAD: d77df660ed82933f62be8d\nCT: 7923c66ac88a9d3a2c9d9e714d491372caea0658b4e5692a7df8da934dce8525d0974848545ce89a44a735eedb22f18b5b8f1455c0aeedea9cb8f5c0bb51addd065a83c4e825ff3993ff58cf0af7577b\nTAG: 06b8d51726fe8d46fce9a59b084c3924c4aa9575d3b3f9b9e31a098c2c0475e460a89639863652164b724927ef13d2c52faeba797d38ddcb9274dfc6478c06626ec55954ce17df075f0b089ef155daf416980039458b7979afeefe9fa3e365ca19637b05cd17987e25f20e62031c32d441a102c22efb3660e4e3c13800acbfba0e7dc99175e35338b87ebb56d09a3b4bca72774d87e9cf92ce8e66917835c765129c8946c7f42ad8acd9afc22acc44a89dbebf6f4b2a55c139312559e2aaf6115aa617ce07cb2a63c66cbaeeeb5c95ce617928f93031f6dcbd3ee30a6fcd4cd9606695b690d95fb8d126c4962f49f11910a6e9daa2227f46a249819074a06cb5ffd449bd5744f9d9c70dc14475fd4b9a\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (17 mod 64).\n# DIGEST: 00133da1f7c63fd5f0eec364e9a359be02c1d3da\nKEY: 5b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4\nNONCE: fad0be905d41203f\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d7\nAD: 7df660ed82933f62be8dc5\nCT: e0b671d572a26f0553cdeca68a4d023615570ed0e9414e5783691fb6d1c2bc30bb4a7590d3138972345f3a55f2f90fdc8ad46555d41968a00a6462c2bc0931a18df5480e48cfcfcc00078314cabe0e44ce\nTAG: d01f174c6f726b83162a8a0734e1b1e9e9498fa067454e3a488cee1a04703987d5ce9a219b4ba168a809a181d6a291eae84f91705fc0701166400f24775bf5816a67ea6f011829ca07ef1aec6ac3b7ba0576c26b557b00fb76e84b6e633c48b8c425678ae12c922a7af7ce0484861efccf958ed418e2658b03b5c978fe624b16428c41a2a7ee1cc07c9d730b689cf92f2041b5e68908fc93d8221821106d73363e2d53df824a82841be5bdc0668c5b8759a1e79e193dac2e55e4cc083569fa727b952a45e71840fc330977e072457de678d3f3694e429131e25efd339421094512755604e1ec84efdb52259f6e8284bb7ebdf229cd3e4f1abfd6498e3b493b21184f8a42ba31f4f22dbeacbb1d977d\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (18 mod 64).\n# DIGEST: 60a6821269be6c5b985576b245f106128eb0b325\nKEY: 436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fa\nNONCE: d0be905d41203f5d\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77d\nAD: f660ed82933f62be8dc55b\nCT: aa02a8b8deeb507cd2b2ee187af85b5afa85583c258df91df9cf5307316d03b5d8aad0441bacc27c4cb26c56239423f8e46746978c0edd3c21018f6b9a1c39278f71b462c6da999a6f4d9513a47cd7986c88\nTAG: 5cea96fc3da1457f7e66f324a3c634829a6382fb75efc614bf944cafda4c9cde5bf3118838487401497849d59f895d761b8b0da9f339123aeab5b237edd48d6c1ab4120da7769a7f8510bfca3d7313f0f38dc6c34fea81f60dd3e421afef2d9a61e6b0d7be96b357f1a293fe5c21d4ee858725a4c088f49a24930d846d2c0fad98002fa66a618367425cbae16fe570f3058fcfa2544f1d085ddbc6226e35c4355c916660f7f8fef4f5ab705c93b5182269adb8a4eeff4e62ee278c0588b96043f1ad24ca39a7ad458f541101e1d6cef99d742e2e4a124e4f3a57986d0192537d956231f4e49f5a87f5b7f5a4cdae6cc647b90177dc4d81232c62bad3d99036812f84b3208ed2edb8058f4973abd7\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (19 mod 64).\n# DIGEST: e2593f3b6741a9ed9fa188fc06efd057556ee624\nKEY: 6965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0\nNONCE: be905d41203f5dce\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df6\nAD: 60ed82933f62be8dc55b43\nCT: 8b397fb4fa218359120058dbd145f4bd99def7e5e0a88249783128801b3828909ea19d9f5fb0f3e15ebd624fc32525796ccf9ec01b1da3acc6dec2a9306c57db4eeeeef4830575fd8166c13c23664d4df4cbac\nTAG: fe141cebcd20919976fe53fa1a9e186db43122704ac5dcfd23abc2da394907a9da4011bf32a3948b0ae848d6d010024c6f37191f6fe5cdc46430b915a9c5cc80329ab5d32797fc97bf3ca270d8b35c14e3091c99ca3947492613d183845ea5b80619d20c38434261dab80d4068449a0880eadc55f0b43cc344a875adfd23020b6e63c3015c887ef52c72750c09f60c7bc0dc29ac7a6494bf9771c4aa931aa440ad400c1cdff8f3d1bc4173977128d1eb57731e4b69d3e6d4715dc5d2a9cfdc2afeabf3513b3e3c107a83ac48f511750f887f59b10f40e8f2d197832dbb1febb82c29627232e3793c8a72d7033c86cf99fb54dd2e3ce099d4fdb50a63b06d5f595d5bf59474cb190245a36095bd\nTAG_LEN: 20\nNO_SEAL: 01\n\n# Test with maximal padding (20 mod 64).\n# DIGEST: 17450a437efe239e1858ac4062f34024305372be\nKEY: 65aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be\nNONCE: 905d41203f5dce99\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660\nAD: ed82933f62be8dc55b4369\nCT: 24e568a27d8bce547f628bfa545c4b7ccffce40f73b5abd6e1b60d5efca7cd6d5feda872e172f64d9193d3d2d3381efb52c05f98d3e1fb689fb05d7017654eb57346f1b3dee23b0f166e50531626582115af7cf0\nTAG: 4dae8797b02d7f1d8dc42b10f18973c094880a10207d9479aa8252df66e855a7a4", @@ -821,9 +901,9 @@ static const char *kData19[] = { "060e\nTAG_LEN: 20\n\n# DIGEST: 6b7295febce7fba8d79d1e7ab8fdfc452191e2ba\nKEY: 454879c41de9ac9f98233b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6\nNONCE: 944f44d722271233\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e\nAD: 6da12dd4c27f4372480974\nCT: a1d0537c3bddc7459a37268608d30ee8e15377c922a4300d7e7f00084cb45a9ab7cfc7f89dfb68f3cf7defd102012361782e977e22c12ac1d91d1e093a21ab26bd171b426af9af7b2dec9d1f2dcf78f19748b39e9b0736e24b44dabf677296db10dc28cd37751d020e1780e5fb00142e972baffc546b9b55bd0067e22ffee4f10312a590394a296cf6fba3456b3c0a64b662d232f185a41762bbad664f977328bba56b62f489d33821d4d604265c388b5ea852968db95ab844c7cb9498bd28d4b055760f83fa94f2a35492a4dd03a1fe9f0c2947fedd44b96948447054e2da7fd3b9d95bfcd0cfe3d1c909e84c9f87ba2a50c33d588592ff3c7c7b56442d52683e222f2610b740a2187159b05f2b15afbba7a97ef2dcb30813b89393706011397f4aa3c537e91fab098ecbf3a87c2185b9001ff1a78e104fbeac85bea4ad609bf1571d83969934d483794944c2e6bea9d778d2deac2d6344106c1dc30d56251faaab3f4dda43a2ed8c3345d9773e4fa4effc5edc3a68cc423b539ed63e8b0605b58aa881906e38b38f02a4df3708e9de4333056c96a02ad6d235636da61fedc631f705e771af9f522109a4d3b34d684b3b175d28a389ea574215131aa68016ea9cf3664b0baa6491f85d3a4370f73967e4c23637fd1d\nTAG: 131597a4dd3057b4a44498ea09294f2df51a5e81adcb3318ccd5\nTAG_LEN: 20\n\n# DIGEST: 1dadffba439570155af2509a548764a93042d23a\nKEY: e9ac9f98233b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722\nNONCE: 271233a825264e97\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c2\nAD: 7f4372480974454879c41d\nCT: 98c951eccacf8dcba5b819312f0ed234ea1cc06abee5f70888558000c2857de7411feffdf379c187d327943c63ab697675557a62c68c13f48d3970531225d5fb6c1434a126cfd6ba80b8f6dda08b3e3629ed12f7bbb45f45148f8544f0a8eb70c849260916eb62baa1bd850e082ad69ca5817594e8f26f63a1909ff03f5696b7a52f146af246c0c6485ea5826c89471c04fd6c373e9d0fef06f4a7b01400962ebfa4ef4166dc895619864accfef9a4be874111cb333518b33a3a2565d032a2434931a16e000d01e35317338ddbc48317517367603697a225d81fc63fcc7d4b8463bbd24910b4972375a995e13baa148b644993b9a7bd706ae64da00f898599957e406c1ab15fd44b6e85b41d47ffaec8136a5dadab324cb0ce95c738a1f8d246af90d98a68b8ab7003d74aa29591b58ca7b2dc38f21f4cfbc04f2e239728e1350b0f074293a13970b264bee368ff98c6960a805346c19702983d3ddfb6306f24cc7f8224e553b0668180787e48ca8e5d851f84df71d5ce6fd7815d39d7e3941b8e0562af98e6e244216bf418d7ca2d9e29ecd3997573b2c4d92aea1a5a82f2272af1218b379ca40a28cc7ce09ad60028a5a6aac6ce145cc3936f89a5d34ba54aeec8d99f84ebf7367fa5fdc12def2294fd3fa3299ba1a59aacc0d7\nTAG: f65b77267d53b2dfc87a936ae08ef7a3f630176553\nTAG_LEN: 20\n\n# DIGEST: e654b4c78e1c0061eea2996fc126c9bfd41eb6d9\nKEY: 3b5a7379a561792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825\nNONCE: 264e977045318c9b\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f43724809\nAD: 74454879c41de9ac9f9823\nCT: 5a1c2b7a8d5bc74901521e1300567f30e2b7755f004ddcfd8fe64f471cbaec4bc6d445ea931bafe6ad78034d0ac1d3916f1e0405c2f2aa4b193c2cd599d34b86029840ad379b136aea5c2a74ea70e22e8c8d1e017a2f7d47f8ebac7b85087075c28d6d2846e357ce031abe09e03629a32cef0b205d631f36ec9a1c9c4e90a80900e01688c7298b99be65f204ebaf312364bfdf57d9e16b0142e879a47b9ae0e96fc62e90883624ee2dc110f3a83ab341f4558f360df399170bbae57cb2eb377a87aaed9755e8057d76609d447a33a8255450504b71439fc0d03e0fffb775019ebf921325b42ef56e1b454b5c87ba5daa1f0d0920e860eea43c913d417cd9e9b6676759a4e2c71b0180b432fe2aab4e4fcffb51b4198ffbedbfcdb4dd4e105847f5a5832e85744f34bf3b9929ffeb177ceb4c5e68585a3ff8fda6569921b3d093a2f1d77e710f78245eacd471af88da8ff8f268293845a9a8550ef34e2bbff9d6cf55b18987c71eb98803bac42b0e6c062015fafb754c6a75f927cac4a8adfcfa8ee05a3f115f1f90d734f78180aec2aa621fa7908d350b0cd8550895cf4b5c3cc75eb95fa574f9a91c1f5efa61f054bedd9267f10a08a21b19e63754de10a1bb0c4ffd8c5c08558882a2f98f1175920a71b981affffde44ae1c9281eee161c4c\nTAG: 28f3243632b13692a2f175644a0e192d8102dd9e2affc5c1\nTAG_LEN: 20\n\n# DIGEST: 654b8591c7f0506261713e9ce7a6fd24a6b9357e\nKEY: 61792c0f3116430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045\nNONCE: 318c9b66262c0f03\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c4\nAD: 1de9ac9f98233b5a7379a5\nCT: 62d0c56ae3e695bafc3cfa3c2d8b9d17ac8ff3b84ccac28d568c1ac84e1574ea06f31605caf86d4e809e39e9c275eed4a8f27eb00dc78e1c10dae719519d949dbc22e00d8644bc3806e54e6531864ae4cb5694002e2a3d7146b39b0b38acadbf1651401805f6394831c608b0478d496cc939b24aa3d3e6d445faceb798a69ae1308a593244645e242829f64f7945d0af8af0eeb6d391c69c2d5bf7b00e42092b36c23362bdd627af43ca7336d88cc36e95ede07b83afb54c8758678d19e0ea7956d8f26776b0f4b6b637c1152853651b6c130f436ffa2d4fd0c344e7583c5e56d6262f43767a1011d8398311dd6e3d7f9e", "a89d3eb3f6a1a9cb98905c0761fc5be1d83005fb9ca039b877c30b402743bdf0109ee5de42eef860be676a399a206c08dca8e757f059f7d9611137039b9053430e7d6406abcbf7aed645110aae84f758fcf0d225738cc7c90ace5d83eb9fe65d1e65efa4f6c9d808060cb0f72605e3d7c70e0d13d84689aa1e44aa4dcb152f230d456eb6cf520898bb249262d30c64fde02d6894f72ddff201e4bc41c5fc1f394f2620f764d40098292b04aee45e26812f3abf9a020b5215beb7938e2c121e809ab825d22a2d560bb9bde47572ecb891dd49b38f41af9649dfbdc83ab9bceb444bacdfca2fcbefd623364d4e255e2c0f3164ad92\nTAG: 42174887a9a11a8ac5d1d13e83f8502a3cb0310bbf46b24ff42e3d\nTAG_LEN: 20\n\n# DIGEST: 1eaad32c8d0cefaa5e2c503bb2185a73e6387fac\nKEY: 16430e8b6ea058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b6626\nNONCE: 2c0f0368fe9d0cb7\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98\nAD: 233b5a7379a561792c0f31\nCT: cc269c9aed42c9ba90c768710fa03985372a219f391327e438b1593af29aaf2b66cf8fd60f137d8ce8438a7bcbf7c1c7010c06636f191802daa26fe12ac1c1458baefb2a51fc7361b2d98311c2eaa27e046fffbb76fc855ac01a1321672658e394043367e89478a789d662c88e91642af53824097326d991abd62d1ab818452fc152aa1bd05032027fbb691886d9269937f7f57e214a2186a191b2249ba6fe79b69a94623d85ef0db6b5c2363627ea15a614e6ee42ce0a26a90faaa3ec45451c69c7d472d98b0376a95503b16c6f17eeeb42e0ad5c8775584819aa01309e6071e6b9494da6ddcf992ec6bfc81e0031d74353afa042abfe62fae02792bb6dcae82694cb651689e4039208bf677c90ed6245606cae81732d9d32043e5435f8c40cb76b55a03593dda1271aaccdbc24f18c9a881c77e1dca0e62bfdd36208ee94370b166d66203dfb90c8602dfb48159410840c669c47e7514bf91ef603834bc213173458a87909979b3b77aaa77262e1a634fcb40241818f544f9d207e91ca1f46f77c5c4f606398938f764080dda0978c6b76ce76830a15098870e72b5c9f4975b495d2c5d969688b555773601ad8c857ca8c38565674539fa71a8acadac5415b563f55811b0c010ca1e6793ad08e6c830a0ec2b385402fb8af3b6f0ea0b70b458667953207e4d44f1959\nTAG: ecd2bdb2e683ff8bc7d20482e698ce2b608032094cc2\nTAG_LEN: 20\n\n# DIGEST: 862c0517b3658e9b9cd27db608d49e24e9b4667d\nKEY: a058c4799eea80abde04ee1de13e937af8f1a6944f44d722271233a825264e977045318c9b66262c0f0368fe\nNONCE: 9d0cb746bbd55813\nIN: 936a91d0b5d2c0267218cb7090c6171386d641b87797b684e0fb56f97c3961d8afa22993a340b9b3c589c7481df3f4183aa23fd8d7efd88503f78b8ed1c8e9ba2fd6773e0d0c302a5f47e037446f5891d77df660ed82933f62be8dc55b436965aabe477e0cdd46be99371eb8da7dac997deafd64b1fc65de39f4f03541a11be112a72933c7b54ed4fad0be905d41203f5dce998f8fb2eaad409ae02116417dae0cef457b9e5e16dcc5b6f25607f00d033fb95fb09e4d00d6172e780ab8b700433a957a741c9eb80f2b021b1444769da00fcfab0f5f93b511060c9c5f3aacefe61b184ad2463939ed518ce97c3fdd293d72afc09ffdd4f41963249cd299b92e55ca24d8c078c49f78c7e713710a025cb8b9d71d2989ab33e978c4451e3be585a29a2af12feef71e1063b0b4e6e899200304bd3508132a027d1ff4c047b3ef4f57a74706de4b381c692ef164101b89b476f72b27f06f520c9267cf71408a41729bacb5877e72cdfcfa76aed06707a07c3dab699719fe882eee2fee55ed8b11534c870dc695b814bdf1a87bb1052c6755a7a116bfc9095da49db3d71f4b975c5d503f478b22dc8253bee6fd1b174c307f01be95abaa9bee5857772305daa4b550d75f05d8089850fea3711265bf782610460bfd24ba022e6da12dd4c27f4372480974454879c41de9ac9f98233b5a7379\nAD: a561792c0f3116430e8b6e\nCT: def7eba4397065d05a7a1b742179c1d8eff65e7e4ac18bec49ed020a95497a58af4ce62679a36b77f95f72913c2a58184ea0c3b59b60784bdf63893a2a84f76ab2b6324a218361316971ebb1e2850b6c7baaf9130715580626bf298f60d862cc4b9c4f353a9e4c7536fd697ece9407eb8ad434c97e325cebd5aa0cf4a5342724f2950c8623aa3a5322f2e06a6b1d71a57b22a2f85ed1acacbeba192cb29ced37983e4231bb930c07f7266728c54e8fa9a0b7195975095fd714440e07d63aa87778061a361b4d44f0241a504089b738cdf3a6323b7a709d39637a2c61677c1f034214a4da6471a89425a5cc6040f37261b9a8e55589b2c24a01b4379dfe00ce758e9e617b6d15abcf0974be46d151c5d26e69c50d3fe68d1854b788d6a43e72a00b1602bb9e7557c4c298b99cccaa17fd950123d672978cd359e115eceb88480d59f5496a920949e09d0590283280d78df0ee068c475706701034b5b8686c60e2c4c4d4bafb2dd25c86293d472d195186f3fbaaaa000cf678295143aa290b011ec35e1eb2dcc6ad12593a934b60af7b570bc59569df2e99bf618aaa60e533265e2bfcfe3e01dd1620cd7d6df8b70726b5fa1191b0cdbe627f714744b2bf2abaddf800cc091ce5ee447f2a61ad36094743182ebbe236745bbeb27a946c8d8dba54dd3597fc4328bb3fa5f43371b531bb\nTAG: bcb4795a551fa0b1d147e2c8f70c31f20a60228963076b32bb\nTAG_LEN: 20\n\n", }; -static const size_t kLen20 = 116191; +static const size_t kLen21 = 116191; -static const char *kData20[] = { +static const char *kData21[] = { "# Generated by \"make_cavp -cipher=aes -extra-labels=Cipher=AES-128-CBC kat_aes/CBCGFSbox128.rsp kat_aes/CBCKeySbox128.rsp kat_aes/CBCVarKey128.rsp kat_aes/CBCVarTxt128.rsp\"\n\n# File 1: kat_aes/CBCGFSbox128.rsp\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: f34481ec3cc627bacd5dc3fb08f273e6\nCiphertext: 0336763e966d92595a567cc9ce537f5e\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 9798c4640bad75c7c3227db910174e72\nCiphertext: a9a1631bf4996954ebc093957b234589\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 96ab5c2ff612d9dfaae8c31f30c42168\nCiphertext: ff4f8391a6a40ca5b25d23bedd44a597\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 6a118a874519e64e9963798a503f1d35\nCiphertext: dc43be40be0e53712f7e2bf5ca707209\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: cb9fceec81286ca3e989bd979b0cb284\nCiphertext: 92beedab1895a94faa69b632e5cc47ce\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: b26aeb1874e47ca8358ff22378f09144\nCiphertext: 459264f4798f6a78bacb89c15ed3d601\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 58c8e00b2631686d54eab84b91f0aca1\nCiphertext: 08a4e2efec8a8e3312ca7460b9040bbf\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0336763e966d92595a567cc9ce537f5e\nPlaintext: f34481ec3cc627bacd5dc3fb08f273e6\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a9a1631bf4996954ebc093957b234589\nPlaintext: 9798c4640bad75c7c3227db910174e72\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ff4f8391a6a40ca5b25d23bedd44a597\nPlaintext: 96ab5c2ff612d9dfaae8c31f30c42168\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: dc43be40be0e53712f7e2bf5ca707209\nPlaintext: 6a118a874519e64e9963798a503f1d35\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 92beedab1895a94faa69b632e5cc47ce\nPlaintext: cb9fceec81286ca3e989bd979b0cb284\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 459264f4798f6a78bacb89c15ed3d601\nPlaintext: b26aeb1874e47ca8358ff22378f09144\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 08a4e2efec8a8e3312ca7460b9040bbf\nPlaintext: 58c8e00b2631686d54eab84b91f0aca1\n\n# File 2: kat_aes/CBCKeySbox128.rsp\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 10a58869d74be5a374cf867cfb473859\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6d251e6944b051e04eaa6fb4dbf78465\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: caea65cdbb75e9169ecd22ebe6e54675\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6e29201190152df4ee058139def610bb\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: a2e2fa9baf7d20822ca9f0542f764a41\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c3b44b95d9d2f25670eee9a0de099fa3\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: b6364ac4e1de1e285eaf144a2415f7a0\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5d9b05578fc944b3cf1ccf0e746cd581\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 64cf9c7abc50b888af65f49d521944b2\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f7efc89d5dba578104016ce5ad659c05\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 47d6742eefcc0465dc96355e851b64d9\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0306194f666d183624aa230a8b264ae7\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 3eb39790678c56bee34bbcdeccf6cdb5\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 858075d536d79ccee571f7d7204b1f67\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 64110a924f0743d500ccadae72c13427\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 35870c6a57e9e92314bcb8087cde72ce\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 18d8126516f8a12ab1a36d9f04d68e51\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6c68e9be5ec41e22c825b7c7affb4363\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: f530357968578480b398a3c251cd1093\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f5df39990fc688f1b07224cc03e86cea\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: da84367f325d42d601b4326964802e8e\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: bba071bcb470f8f6586e5d3add18bc66\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: e37b1c6aa2846f6fdb413f238b089f23\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 43c9f7e62f5d288bb27aa40ef8fe1ea8\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 6c002b682483e0cabcc731c253be5674\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3580d19cff44f1014a7c966a69059de5\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 143ae8ed6555aba96110ab58893a8ae1\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 806da864dd29d48deafbe764f8202aef\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: b69418a85332240dc82492353956ae0c\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a303d940ded8f0baff6f75414cac5243\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 71b5c08a1993e1362e4d0ce9b22b78d5\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c2dabd117f8a3ecabfbb11d12194d9d0\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: e234cdca2606b81f29408d5f6da21206\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: fff60a4740086b3b9c56195b98d91a7b\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 13237c49074a3da078dc1d828bb78c6f\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8146a08e2357f0caa30ca8c94d1a0544\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 3071a2a48fe6cbd04f1a129098e308f8\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4b98e06d356deb07ebb824e5713f7be3\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 90f42ec0f68385f2ffc5dfc03a654dce\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7a20a53d460fc9ce0423a7a0764c6cf2\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: febd9a24d8b65c1c787d50a4ed3619a9\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f4a70d8af877f9b02b4c40df57d45b17\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 10a58869d74be5a374cf867cfb473859\nIV: 00000000000000000000000000000000\nCiphertext: 6d251e6944b051e04eaa6fb4dbf78465\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: caea65cdbb75e9169ecd22ebe6e54675\nIV: 00000000000000000000000000000000\nCiphertext: 6e29201190152df4ee058139def610bb\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: a2e2fa9baf7d20822ca9f0542f764a41\nIV: 00000000000000000000000000000000\nCiphertext: c3b44b95d9d2f25670eee9a0de099fa3\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: b6364ac4e1de1e285eaf144a2415f7a0\nIV: 00000000000000000000000000000000\nCiphertext: 5d9b05578fc944b3cf1ccf0e746cd581\nPlaintext: 00000000000000000000000", "000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 64cf9c7abc50b888af65f49d521944b2\nIV: 00000000000000000000000000000000\nCiphertext: f7efc89d5dba578104016ce5ad659c05\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 47d6742eefcc0465dc96355e851b64d9\nIV: 00000000000000000000000000000000\nCiphertext: 0306194f666d183624aa230a8b264ae7\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 3eb39790678c56bee34bbcdeccf6cdb5\nIV: 00000000000000000000000000000000\nCiphertext: 858075d536d79ccee571f7d7204b1f67\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 64110a924f0743d500ccadae72c13427\nIV: 00000000000000000000000000000000\nCiphertext: 35870c6a57e9e92314bcb8087cde72ce\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 18d8126516f8a12ab1a36d9f04d68e51\nIV: 00000000000000000000000000000000\nCiphertext: 6c68e9be5ec41e22c825b7c7affb4363\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: f530357968578480b398a3c251cd1093\nIV: 00000000000000000000000000000000\nCiphertext: f5df39990fc688f1b07224cc03e86cea\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: da84367f325d42d601b4326964802e8e\nIV: 00000000000000000000000000000000\nCiphertext: bba071bcb470f8f6586e5d3add18bc66\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: e37b1c6aa2846f6fdb413f238b089f23\nIV: 00000000000000000000000000000000\nCiphertext: 43c9f7e62f5d288bb27aa40ef8fe1ea8\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 6c002b682483e0cabcc731c253be5674\nIV: 00000000000000000000000000000000\nCiphertext: 3580d19cff44f1014a7c966a69059de5\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 143ae8ed6555aba96110ab58893a8ae1\nIV: 00000000000000000000000000000000\nCiphertext: 806da864dd29d48deafbe764f8202aef\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: b69418a85332240dc82492353956ae0c\nIV: 00000000000000000000000000000000\nCiphertext: a303d940ded8f0baff6f75414cac5243\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 71b5c08a1993e1362e4d0ce9b22b78d5\nIV: 00000000000000000000000000000000\nCiphertext: c2dabd117f8a3ecabfbb11d12194d9d0\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: e234cdca2606b81f29408d5f6da21206\nIV: 00000000000000000000000000000000\nCiphertext: fff60a4740086b3b9c56195b98d91a7b\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 13237c49074a3da078dc1d828bb78c6f\nIV: 00000000000000000000000000000000\nCiphertext: 8146a08e2357f0caa30ca8c94d1a0544\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 3071a2a48fe6cbd04f1a129098e308f8\nIV: 00000000000000000000000000000000\nCiphertext: 4b98e06d356deb07ebb824e5713f7be3\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 90f42ec0f68385f2ffc5dfc03a654dce\nIV: 00000000000000000000000000000000\nCiphertext: 7a20a53d460fc9ce0423a7a0764c6cf2\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: febd9a24d8b65c1c787d50a4ed3619a9\nIV: 00000000000000000000000000000000\nCiphertext: f4a70d8af877f9b02b4c40df57d45b17\nPlaintext: 00000000000000000000000000000000\n\n# File 3: kat_aes/CBCVarKey128.rsp\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: 80000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0edd33d3c621e546455bd8ba1418bec8\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: c0000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4bc3f883450c113c64ca42e1112a9e87\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: e0000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 72a1da770f5d7ac4c9ef94d822affd97\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: f0000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 970014d634e2b7650777e8e84d03ccd8\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: f8000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f17e79aed0db7e279e955b5f493875a7\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fc000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9ed5a75136a940d0963da379db4af26a\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fe000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c4295f83465c7755e8fa364bac6a7ea5\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ff000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b1d758256b28fd850ad4944208cf1155\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ff800000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 42ffb34c743de4d88ca38011c990890b\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffc00000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9958f0ecea8b2172c0c1995f9182c0f3\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffe00000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 956d7798fac20f82a8823f984d06f7f5\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fff00000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a01bf44f2d16be928ca44aaf7b9b106b\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fff80000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b5f1a33e50d40d103764c76bd4c6b6f8\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffc0000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2637050c9fc0d4817e2d69de878aee8d\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffe0000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 113ecbe4a453269a0dd26069467fb5b5\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffff0000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 97d0754fe68f11b9e375d070a608c884\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffff8000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c6a0b3e998d05068a5399778405200b4\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffc000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: df556a33438db87bc41b1752c55e5e49\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffe000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 90fb128d3a1af6e548521bb962bf1f05\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffff000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 26298e9c1db517c215fadfb7d2a8d691\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffff800000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a6cb761d61f8292d0df393a279ad0380\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffc00000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 12acd89b13cd5f8726e34d44fd486108\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffe00000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 95b1703fc57ba09fe0c", "3580febdd7ed4\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffff00000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: de11722d893e9f9121c381becc1da59a\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffff80000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6d114ccb27bf391012e8974c546d9bf2\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffc0000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5ce37e17eb4646ecfac29b9cc38d9340\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffe0000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 18c1b6e2157122056d0243d8a165cddb\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffff0000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 99693e6a59d1366c74d823562d7e1431\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffff8000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6c7c64dc84a8bba758ed17eb025a57e3\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffc000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e17bc79f30eaab2fac2cbbe3458d687a\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffe000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1114bc2028009b923f0b01915ce5e7c4\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffff000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9c28524a16a1e1c1452971caa8d13476\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffff800000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ed62e16363638360fdd6ad62112794f0\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffc00000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5a8688f0b2a2c16224c161658ffd4044\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffe00000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 23f710842b9bb9c32f26648c786807ca\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffff00000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 44a98bf11e163f632c47ec6a49683a89\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffff80000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0f18aff94274696d9b61848bd50ac5e5\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffc0000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 82408571c3e2424540207f833b6dda69\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffe0000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 303ff996947f0c7d1f43c8f3027b9b75\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffff0000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7df4daf4ad29a3615a9b6ece5c99518a\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffff8000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c72954a48d0774db0b4971c526260415\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffc000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1df9b76112dc6531e07d2cfda04411f0\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffe000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8e4d8e699119e1fc87545a647fb1d34f\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffff000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e6c4807ae11f36f091c57d9fb68548d1\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffff800000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8ebf73aad49c82007f77a5c1ccec6ab4\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffc00000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4fb288cc2040049001d2c7585ad123fc\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffe00000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 04497110efb9dceb13e2b13fb4465564\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffff00000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 75550e6cb5a88e49634c9ab69eda0430\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffff80000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b6768473ce9843ea66a81405dd50b345\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffffc0000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: cb2f430383f9084e03a653571e065de6\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffffe0000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ff4e66c07bae3e79fb7d210847a3b0ba\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffff0000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7b90785125505fad59b13c186dd66ce3\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffff8000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8b527a6aebdaec9eaef8eda2cb7783e5\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffffc000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 43fdaf53ebbc9880c228617d6a9b548b\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffffe000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 53786104b9744b98f052c46f1c850d0b\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffffff000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b5ab3013dd1e61df06cbaf34ca2aee78\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffffff800000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7470469be9723030fdcc73a8cd4fbb10\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffffffc00000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a35a63f5343ebe9ef8167bcb48ad122e\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: ffffffffffffffe00000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: fd8687f0757a210e9fdf181204c30863\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffffff00000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7a181e84bd5457d26a88fbae96018fb0\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffffff80000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 653317b9362b6f9b9e1a580e68d494b5\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffffffc0000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 995c9dc0b689f03c45867b5faa5c18d1\n\nCipher: AES-128-CBC\nOperation: ENCRYPT\nKey: fffffffffffffffe0000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 77a4d96d56dda398b9aabecfc75729fd\n\nCipher: AES-128-C", @@ -840,9 +920,9 @@ static const char *kData20[] = { "0000000000000000\nCiphertext: b87c921b91829ef3b13ca541ee1130a6\nPlaintext: ffffffffffffffffffff800000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2e65eb6b6ea383e109accce8326b0393\nPlaintext: ffffffffffffffffffffc00000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9ca547f7439edc3e255c0f4d49aa8990\nPlaintext: ffffffffffffffffffffe00000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a5e652614c9300f37816b1f9fd0c87f9\nPlaintext: fffffffffffffffffffff00000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 14954f0b4697776f44494fe458d814ed\nPlaintext: fffffffffffffffffffff80000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7c8d9ab6c2761723fe42f8bb506cbcf7\nPlaintext: fffffffffffffffffffffc0000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: db7e1932679fdd99742aab04aa0d5a80\nPlaintext: fffffffffffffffffffffe0000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4c6a1c83e568cd10f27c2d73ded19c28\nPlaintext: ffffffffffffffffffffff0000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 90ecbe6177e674c98de412413f7ac915\nPlaintext: ffffffffffffffffffffff8000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 90684a2ac55fe1ec2b8ebd5622520b73\nPlaintext: ffffffffffffffffffffffc000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7472f9a7988607ca79707795991035e6\nPlaintext: ffffffffffffffffffffffe000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 56aff089878bf3352f8df172a3ae47d8\nPlaintext: fffffffffffffffffffffff000000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 65c0526cbe40161b8019a2a3171abd23\nPlaintext: fffffffffffffffffffffff800000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 377be0be33b4e3e310b4aabda173f84f\nPlaintext: fffffffffffffffffffffffc00000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9402e9aa6f69de6504da8d20c4fcaa2f\nPlaintext: fffffffffffffffffffffffe00000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 123c1f4af313ad8c2ce648b2e71fb6e1\nPlaintext: ffffffffffffffffffffffff00000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1ffc626d30203dcdb0019fb80f726cf4\nPlaintext: ffffffffffffffffffffffff80000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 76da1fbe3a50728c50fd2e621b5ad885\nPlaintext: ffffffffffffffffffffffffc0000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 082eb8be35f442fb52668e16a591d1d6\nPlaintext: ffffffffffffffffffffffffe0000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e656f9ecf5fe27ec3e4a73d00c282fb3\nPlaintext: fffffffffffffffffffffffff0000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2ca8209d63274cd9a29bb74bcd77683a\nPlaintext: fffffffffffffffffffffffff8000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 79bf5dce14bb7dd73a8e3611de7ce026\nPlaintext: fffffffffffffffffffffffffc000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3c849939a5d29399f344c4a0eca8a576\nPlaintext: fffffffffffffffffffffffffe000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ed3c0a94d59bece98835da7aa4f07ca2\nPlaintext: ffffffffffffffffffffffffff000000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 63919ed4ce10196438b6ad09d99cd795\nPlaintext: ffffffffffffffffffffffffff800000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7678f3a833f19fea95f3c6029e2bc610\nPlaintext: ffffffffffffffffffffffffffc00000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3aa426831067d36b92be7c5f81c13c56\nPlaintext: ffffffffffffffffffffffffffe00000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9272e2d2cdd11050998c845077a30ea0\nPlaintext: fffffffffffffffffffffffffff00000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 088c4b53f5ec0ff814c19adae7f6246c\nPlaintext: fffffffffffffffffffffffffff80000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4010a5e401fdf0a0354ddbcc0d012b17\nPlaintext: fffffffffffffffffffffffffffc0000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a87a385736c0a6189bd6589bd8445a93\nPlaintext: fffffffffffffffffffffffffffe0000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 545f2b83d9616dccf60fa9830e9cd287\nPlaintext: ffffffffffffffffffffffffffff0000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4b706f7f92406352394037a6d4f4688d\nPlaintext: ffffffffffffffffffffffffffff8000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b7972b3941c44b90afa7b264bfba7387\nPlaintext: ffffffffffffffffffffffffffffc000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6f45732cf10881546f0fd23896d2bb60\nPlaintext: ffffffffffffffffffffffffffffe000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2e3579ca15af27f64b3c955a5bfc30ba\nPlaintext: fffffffffffffffffffffffffffff000\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 34a2c5a91ae2aec99b7d1b5fa6780447\nPlaintext: fffffffffffffffffffffffffffff800\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a4d6616bd04f87335b0e53351227a9ee\nPlaintext: fffffffffffffffffffffffffffffc00\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7f692b03945867d16179a8cefc83ea3f\nPlaintext: fffffffffffffffffffffffffffffe00\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3bd141ee84a0e6414a26e7a4f281f8a2\nPlaintext: ffffffffffffffffffffffffffffff00\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d17", "88f572d98b2b16ec5d5f3922b99bc\nPlaintext: ffffffffffffffffffffffffffffff80\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0833ff6f61d98a57b288e8c3586b85a6\nPlaintext: ffffffffffffffffffffffffffffffc0\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8568261797de176bf0b43becc6285afb\nPlaintext: ffffffffffffffffffffffffffffffe0\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f9b0fda0c4a898f5b9e6f661c4ce4d07\nPlaintext: fffffffffffffffffffffffffffffff0\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8ade895913685c67c5269f8aae42983e\nPlaintext: fffffffffffffffffffffffffffffff8\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 39bde67d5c8ed8a8b1c37eb8fa9f5ac0\nPlaintext: fffffffffffffffffffffffffffffffc\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5c005e72c1418c44f569f2ea33ba54f3\nPlaintext: fffffffffffffffffffffffffffffffe\n\nCipher: AES-128-CBC\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3f5b8cc9ea855a0afa7347d23e8d664e\nPlaintext: ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen21 = 116210; +static const size_t kLen22 = 116210; -static const char *kData21[] = { +static const char *kData22[] = { "# Generated by \"make_cavp -cipher=aes -extra-labels=Cipher=AES-128-CTR -swap-iv-plaintext kat_aes/CBCGFSbox128.rsp kat_aes/CBCKeySbox128.rsp kat_aes/CBCVarKey128.rsp kat_aes/CBCVarTxt128.rsp\"\n\n# File 1: kat_aes/CBCGFSbox128.rsp\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: f34481ec3cc627bacd5dc3fb08f273e6\nCiphertext: 0336763e966d92595a567cc9ce537f5e\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 9798c4640bad75c7c3227db910174e72\nCiphertext: a9a1631bf4996954ebc093957b234589\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 96ab5c2ff612d9dfaae8c31f30c42168\nCiphertext: ff4f8391a6a40ca5b25d23bedd44a597\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 6a118a874519e64e9963798a503f1d35\nCiphertext: dc43be40be0e53712f7e2bf5ca707209\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: cb9fceec81286ca3e989bd979b0cb284\nCiphertext: 92beedab1895a94faa69b632e5cc47ce\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: b26aeb1874e47ca8358ff22378f09144\nCiphertext: 459264f4798f6a78bacb89c15ed3d601\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 58c8e00b2631686d54eab84b91f0aca1\nCiphertext: 08a4e2efec8a8e3312ca7460b9040bbf\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0336763e966d92595a567cc9ce537f5e\nIV: f34481ec3cc627bacd5dc3fb08f273e6\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a9a1631bf4996954ebc093957b234589\nIV: 9798c4640bad75c7c3227db910174e72\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ff4f8391a6a40ca5b25d23bedd44a597\nIV: 96ab5c2ff612d9dfaae8c31f30c42168\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: dc43be40be0e53712f7e2bf5ca707209\nIV: 6a118a874519e64e9963798a503f1d35\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 92beedab1895a94faa69b632e5cc47ce\nIV: cb9fceec81286ca3e989bd979b0cb284\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 459264f4798f6a78bacb89c15ed3d601\nIV: b26aeb1874e47ca8358ff22378f09144\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 08a4e2efec8a8e3312ca7460b9040bbf\nIV: 58c8e00b2631686d54eab84b91f0aca1\n\n# File 2: kat_aes/CBCKeySbox128.rsp\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 10a58869d74be5a374cf867cfb473859\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6d251e6944b051e04eaa6fb4dbf78465\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: caea65cdbb75e9169ecd22ebe6e54675\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6e29201190152df4ee058139def610bb\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: a2e2fa9baf7d20822ca9f0542f764a41\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c3b44b95d9d2f25670eee9a0de099fa3\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: b6364ac4e1de1e285eaf144a2415f7a0\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5d9b05578fc944b3cf1ccf0e746cd581\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 64cf9c7abc50b888af65f49d521944b2\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f7efc89d5dba578104016ce5ad659c05\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 47d6742eefcc0465dc96355e851b64d9\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0306194f666d183624aa230a8b264ae7\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 3eb39790678c56bee34bbcdeccf6cdb5\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 858075d536d79ccee571f7d7204b1f67\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 64110a924f0743d500ccadae72c13427\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 35870c6a57e9e92314bcb8087cde72ce\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 18d8126516f8a12ab1a36d9f04d68e51\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6c68e9be5ec41e22c825b7c7affb4363\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: f530357968578480b398a3c251cd1093\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f5df39990fc688f1b07224cc03e86cea\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: da84367f325d42d601b4326964802e8e\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: bba071bcb470f8f6586e5d3add18bc66\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: e37b1c6aa2846f6fdb413f238b089f23\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 43c9f7e62f5d288bb27aa40ef8fe1ea8\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 6c002b682483e0cabcc731c253be5674\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3580d19cff44f1014a7c966a69059de5\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 143ae8ed6555aba96110ab58893a8ae1\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 806da864dd29d48deafbe764f8202aef\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: b69418a85332240dc82492353956ae0c\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a303d940ded8f0baff6f75414cac5243\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 71b5c08a1993e1362e4d0ce9b22b78d5\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c2dabd117f8a3ecabfbb11d12194d9d0\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: e234cdca2606b81f29408d5f6da21206\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: fff60a4740086b3b9c56195b98d91a7b\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 13237c49074a3da078dc1d828bb78c6f\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8146a08e2357f0caa30ca8c94d1a0544\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 3071a2a48fe6cbd04f1a129098e308f8\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4b98e06d356deb07ebb824e5713f7be3\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 90f42ec0f68385f2ffc5dfc03a654dce\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7a20a53d460fc9ce0423a7a0764c6cf2\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: febd9a24d8b65c1c787d50a4ed3619a9\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f4a70d8af877f9b02b4c40df57d45b17\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 10a58869d74be5a374cf867cfb473859\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6d251e6944b051e04eaa6fb4dbf78465\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: caea65cdbb75e9169ecd22ebe6e54675\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6e29201190152df4ee058139def610bb\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: a2e2fa9baf7d20822ca9f0542f764a41\nPlaintext: 00000000000000000000000000000000\nCiphertext: c3b44b95d9d2f25670eee9a0de099fa3\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: b6364ac4e1de1e285eaf144a2415f7a0\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5d9b05578fc944b3cf1ccf0e746cd581\nIV: 0000", "0000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 64cf9c7abc50b888af65f49d521944b2\nPlaintext: 00000000000000000000000000000000\nCiphertext: f7efc89d5dba578104016ce5ad659c05\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 47d6742eefcc0465dc96355e851b64d9\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0306194f666d183624aa230a8b264ae7\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 3eb39790678c56bee34bbcdeccf6cdb5\nPlaintext: 00000000000000000000000000000000\nCiphertext: 858075d536d79ccee571f7d7204b1f67\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 64110a924f0743d500ccadae72c13427\nPlaintext: 00000000000000000000000000000000\nCiphertext: 35870c6a57e9e92314bcb8087cde72ce\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 18d8126516f8a12ab1a36d9f04d68e51\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6c68e9be5ec41e22c825b7c7affb4363\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: f530357968578480b398a3c251cd1093\nPlaintext: 00000000000000000000000000000000\nCiphertext: f5df39990fc688f1b07224cc03e86cea\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: da84367f325d42d601b4326964802e8e\nPlaintext: 00000000000000000000000000000000\nCiphertext: bba071bcb470f8f6586e5d3add18bc66\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: e37b1c6aa2846f6fdb413f238b089f23\nPlaintext: 00000000000000000000000000000000\nCiphertext: 43c9f7e62f5d288bb27aa40ef8fe1ea8\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 6c002b682483e0cabcc731c253be5674\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3580d19cff44f1014a7c966a69059de5\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 143ae8ed6555aba96110ab58893a8ae1\nPlaintext: 00000000000000000000000000000000\nCiphertext: 806da864dd29d48deafbe764f8202aef\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: b69418a85332240dc82492353956ae0c\nPlaintext: 00000000000000000000000000000000\nCiphertext: a303d940ded8f0baff6f75414cac5243\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 71b5c08a1993e1362e4d0ce9b22b78d5\nPlaintext: 00000000000000000000000000000000\nCiphertext: c2dabd117f8a3ecabfbb11d12194d9d0\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: e234cdca2606b81f29408d5f6da21206\nPlaintext: 00000000000000000000000000000000\nCiphertext: fff60a4740086b3b9c56195b98d91a7b\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 13237c49074a3da078dc1d828bb78c6f\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8146a08e2357f0caa30ca8c94d1a0544\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 3071a2a48fe6cbd04f1a129098e308f8\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4b98e06d356deb07ebb824e5713f7be3\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 90f42ec0f68385f2ffc5dfc03a654dce\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7a20a53d460fc9ce0423a7a0764c6cf2\nIV: 00000000000000000000000000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: febd9a24d8b65c1c787d50a4ed3619a9\nPlaintext: 00000000000000000000000000000000\nCiphertext: f4a70d8af877f9b02b4c40df57d45b17\nIV: 00000000000000000000000000000000\n\n# File 3: kat_aes/CBCVarKey128.rsp\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: 80000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0edd33d3c621e546455bd8ba1418bec8\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: c0000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4bc3f883450c113c64ca42e1112a9e87\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: e0000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 72a1da770f5d7ac4c9ef94d822affd97\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: f0000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 970014d634e2b7650777e8e84d03ccd8\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: f8000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f17e79aed0db7e279e955b5f493875a7\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fc000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9ed5a75136a940d0963da379db4af26a\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fe000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c4295f83465c7755e8fa364bac6a7ea5\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ff000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b1d758256b28fd850ad4944208cf1155\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ff800000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 42ffb34c743de4d88ca38011c990890b\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffc00000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9958f0ecea8b2172c0c1995f9182c0f3\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffe00000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 956d7798fac20f82a8823f984d06f7f5\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fff00000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a01bf44f2d16be928ca44aaf7b9b106b\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fff80000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b5f1a33e50d40d103764c76bd4c6b6f8\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffc0000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2637050c9fc0d4817e2d69de878aee8d\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffe0000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 113ecbe4a453269a0dd26069467fb5b5\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffff0000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 97d0754fe68f11b9e375d070a608c884\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffff8000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c6a0b3e998d05068a5399778405200b4\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffc000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: df556a33438db87bc41b1752c55e5e49\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffe000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 90fb128d3a1af6e548521bb962bf1f05\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffff000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 26298e9c1db517c215fadfb7d2a8d691\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffff800000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a6cb761d61f8292d0df393a279ad0380\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffc00000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 12acd89b13cd5f8726e34d44fd486108\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffe00000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ", "95b1703fc57ba09fe0c3580febdd7ed4\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffff00000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: de11722d893e9f9121c381becc1da59a\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffff80000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6d114ccb27bf391012e8974c546d9bf2\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffc0000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5ce37e17eb4646ecfac29b9cc38d9340\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffe0000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 18c1b6e2157122056d0243d8a165cddb\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffff0000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 99693e6a59d1366c74d823562d7e1431\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffff8000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6c7c64dc84a8bba758ed17eb025a57e3\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffc000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e17bc79f30eaab2fac2cbbe3458d687a\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffe000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1114bc2028009b923f0b01915ce5e7c4\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffff000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9c28524a16a1e1c1452971caa8d13476\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffff800000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ed62e16363638360fdd6ad62112794f0\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffc00000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5a8688f0b2a2c16224c161658ffd4044\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffe00000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 23f710842b9bb9c32f26648c786807ca\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffff00000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 44a98bf11e163f632c47ec6a49683a89\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffff80000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0f18aff94274696d9b61848bd50ac5e5\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffc0000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 82408571c3e2424540207f833b6dda69\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffe0000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 303ff996947f0c7d1f43c8f3027b9b75\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffff0000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7df4daf4ad29a3615a9b6ece5c99518a\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffff8000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c72954a48d0774db0b4971c526260415\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffc000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1df9b76112dc6531e07d2cfda04411f0\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffe000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8e4d8e699119e1fc87545a647fb1d34f\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffff000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e6c4807ae11f36f091c57d9fb68548d1\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffff800000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8ebf73aad49c82007f77a5c1ccec6ab4\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffc00000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4fb288cc2040049001d2c7585ad123fc\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffe00000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 04497110efb9dceb13e2b13fb4465564\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffff00000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 75550e6cb5a88e49634c9ab69eda0430\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffff80000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b6768473ce9843ea66a81405dd50b345\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffffc0000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: cb2f430383f9084e03a653571e065de6\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffffe0000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ff4e66c07bae3e79fb7d210847a3b0ba\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffff0000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7b90785125505fad59b13c186dd66ce3\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffff8000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8b527a6aebdaec9eaef8eda2cb7783e5\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffffc000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 43fdaf53ebbc9880c228617d6a9b548b\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffffe000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 53786104b9744b98f052c46f1c850d0b\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffffff000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b5ab3013dd1e61df06cbaf34ca2aee78\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffffff800000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7470469be9723030fdcc73a8cd4fbb10\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffffffc00000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a35a63f5343ebe9ef8167bcb48ad122e\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: ffffffffffffffe00000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: fd8687f0757a210e9fdf181204c30863\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffffff00000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7a181e84bd5457d26a88fbae96018fb0\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffffff80000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 653317b9362b6f9b9e1a580e68d494b5\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffffffc0000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 995c9dc0b689f03c45867b5faa5c18d1\n\nCipher: AES-128-CTR\nOperation: ENCRYPT\nKey: fffffffffffffffe0000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 77a4d96d56dda398b9aabecfc75729fd", @@ -859,9 +939,9 @@ static const char *kData21[] = { "laintext: 00000000000000000000000000000000\nCiphertext: b87c921b91829ef3b13ca541ee1130a6\nIV: ffffffffffffffffffff800000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2e65eb6b6ea383e109accce8326b0393\nIV: ffffffffffffffffffffc00000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9ca547f7439edc3e255c0f4d49aa8990\nIV: ffffffffffffffffffffe00000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a5e652614c9300f37816b1f9fd0c87f9\nIV: fffffffffffffffffffff00000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 14954f0b4697776f44494fe458d814ed\nIV: fffffffffffffffffffff80000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7c8d9ab6c2761723fe42f8bb506cbcf7\nIV: fffffffffffffffffffffc0000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: db7e1932679fdd99742aab04aa0d5a80\nIV: fffffffffffffffffffffe0000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4c6a1c83e568cd10f27c2d73ded19c28\nIV: ffffffffffffffffffffff0000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 90ecbe6177e674c98de412413f7ac915\nIV: ffffffffffffffffffffff8000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 90684a2ac55fe1ec2b8ebd5622520b73\nIV: ffffffffffffffffffffffc000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7472f9a7988607ca79707795991035e6\nIV: ffffffffffffffffffffffe000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 56aff089878bf3352f8df172a3ae47d8\nIV: fffffffffffffffffffffff000000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 65c0526cbe40161b8019a2a3171abd23\nIV: fffffffffffffffffffffff800000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 377be0be33b4e3e310b4aabda173f84f\nIV: fffffffffffffffffffffffc00000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9402e9aa6f69de6504da8d20c4fcaa2f\nIV: fffffffffffffffffffffffe00000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 123c1f4af313ad8c2ce648b2e71fb6e1\nIV: ffffffffffffffffffffffff00000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1ffc626d30203dcdb0019fb80f726cf4\nIV: ffffffffffffffffffffffff80000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 76da1fbe3a50728c50fd2e621b5ad885\nIV: ffffffffffffffffffffffffc0000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 082eb8be35f442fb52668e16a591d1d6\nIV: ffffffffffffffffffffffffe0000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e656f9ecf5fe27ec3e4a73d00c282fb3\nIV: fffffffffffffffffffffffff0000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2ca8209d63274cd9a29bb74bcd77683a\nIV: fffffffffffffffffffffffff8000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 79bf5dce14bb7dd73a8e3611de7ce026\nIV: fffffffffffffffffffffffffc000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3c849939a5d29399f344c4a0eca8a576\nIV: fffffffffffffffffffffffffe000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ed3c0a94d59bece98835da7aa4f07ca2\nIV: ffffffffffffffffffffffffff000000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 63919ed4ce10196438b6ad09d99cd795\nIV: ffffffffffffffffffffffffff800000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7678f3a833f19fea95f3c6029e2bc610\nIV: ffffffffffffffffffffffffffc00000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3aa426831067d36b92be7c5f81c13c56\nIV: ffffffffffffffffffffffffffe00000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9272e2d2cdd11050998c845077a30ea0\nIV: fffffffffffffffffffffffffff00000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 088c4b53f5ec0ff814c19adae7f6246c\nIV: fffffffffffffffffffffffffff80000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4010a5e401fdf0a0354ddbcc0d012b17\nIV: fffffffffffffffffffffffffffc0000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a87a385736c0a6189bd6589bd8445a93\nIV: fffffffffffffffffffffffffffe0000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 545f2b83d9616dccf60fa9830e9cd287\nIV: ffffffffffffffffffffffffffff0000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4b706f7f92406352394037a6d4f4688d\nIV: ffffffffffffffffffffffffffff8000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b7972b3941c44b90afa7b264bfba7387\nIV: ffffffffffffffffffffffffffffc000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6f45732cf10881546f0fd23896d2bb60\nIV: ffffffffffffffffffffffffffffe000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2e3579ca15af27f64b3c955a5bfc30ba\nIV: fffffffffffffffffffffffffffff000\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 34a2c5a91ae2aec99b7d1b5fa6780447\nIV: fffffffffffffffffffffffffffff800\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a4d6616bd04f87335b0e53351227a9ee\nIV: fffffffffffffffffffffffffffffc00\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7f692b03945867d16179a8cefc83ea3f\nIV: fffffffffffffffffffffffffffffe00\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3bd141ee84a0e6414a26e7a4f281f8a2\nIV: ffffffffffffffffffffffffffffff00\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 0000000000000000000000", "0000000000\nCiphertext: d1788f572d98b2b16ec5d5f3922b99bc\nIV: ffffffffffffffffffffffffffffff80\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0833ff6f61d98a57b288e8c3586b85a6\nIV: ffffffffffffffffffffffffffffffc0\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8568261797de176bf0b43becc6285afb\nIV: ffffffffffffffffffffffffffffffe0\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f9b0fda0c4a898f5b9e6f661c4ce4d07\nIV: fffffffffffffffffffffffffffffff0\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8ade895913685c67c5269f8aae42983e\nIV: fffffffffffffffffffffffffffffff8\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 39bde67d5c8ed8a8b1c37eb8fa9f5ac0\nIV: fffffffffffffffffffffffffffffffc\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5c005e72c1418c44f569f2ea33ba54f3\nIV: fffffffffffffffffffffffffffffffe\n\nCipher: AES-128-CTR\nOperation: DECRYPT\nKey: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3f5b8cc9ea855a0afa7347d23e8d664e\nIV: ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen22 = 5321952; +static const size_t kLen23 = 5321952; -static const char *kData22[] = { +static const char *kData23[] = { "# Generated by \"make_cavp -cipher gcm kat_gcm/gcmDecrypt128.rsp kat_gcm/gcmEncryptExtIV128.rsp\"\n\n# File 1: kat_gcm/gcmDecrypt128.rsp\n\nKEY: cf063a34d4a9a76c2c86787d3f96db71\nNONCE: 113b9785971864c83b01c787\nCT: \nAD: \nTAG: 72ac8493e3a5228b5d130a69d2510e42\nIN: \n\nKEY: a49a5e26a2f8cb63d05546c2a62f5343\nNONCE: 907763b19b9b4ab6bd4f0281\nCT: \nAD: \nTAG: a2be08210d8c470a8df6e8fbd79ec5cf\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2ad0bf5aeb47a0c1a98da3dfdab4fded\nNONCE: 25f1b6091ee7040fea4ba854\nCT: \nAD: \nTAG: d7963d240317653e01cf5abe5d0966ae\nIN: \n\nKEY: d8cd400a0a73d114cd3ecf36537cab3d\nNONCE: 3c162c9f16a49b8fe6c92a81\nCT: \nAD: \nTAG: 4203aec165f9d397cf9009770a088c16\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: a982a7bae2b3eae1b7832f16faf693b4\nNONCE: 78d2d2fa43850483ce933576\nCT: \nAD: \nTAG: ceabb89ee3179e25ed32d5a225006361\nIN: \n\nKEY: f9e3992196f7d7a21bd956f4b5a5ffce\nNONCE: 0794a6bdf5f198c9f193b9ba\nCT: \nAD: \nTAG: f8247fd5dc7bd6d40e96af32aa9c1889\nIN: \n\nKEY: c91aab7ebe13653a71a4232fd1beb793\nNONCE: 7799464b6de6383da0daec52\nCT: \nAD: \nTAG: 00c4f7033f3c05e9d531f3ca573dc98d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: e7e4eefd0a3abd4ee1bef270d257eab7\nNONCE: f548f2a04a50a2f0342b2250\nCT: \nAD: \nTAG: 044159b8a18668167fbd28ac500c20fe\nIN: \n\nKEY: 1bd49e553457459aee1b5d83e7c216a2\nNONCE: 2b37cf40ed2685eb2a907cd0\nCT: \nAD: \nTAG: fcb41d17fdb023d4d14f84a387d3ad77\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 4d6486fa68ce5a14b9db7334ab4838cb\nNONCE: afad3f4190d56a1b8eb08e58\nCT: \nAD: \nTAG: 4bda04755b7ce9da020ce7467a5ced8f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: da5b59d5eb448fd6c08c350df9a82114\nNONCE: 15fb65d9fe2fa27f226312c0\nCT: \nAD: \nTAG: e407fccbb9f00eeb9cef4a520cff957c\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 07d5a7d405b21c64d74cc0988693b784\nNONCE: 2eefd7990ea025925e9ca6f9\nCT: \nAD: \nTAG: 1439522d18c9eb129f1f776590027761\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 48760dec952010140ffc4b4078438b56\nNONCE: 930cc3ff276d7bbb74d187ef\nCT: \nAD: \nTAG: 8673dcb97934d54dc17de0037344737f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: ed7c50762dc0dc4aa5c8be4cf0a56b88\nNONCE: 50dfb73b5034cffb6709af8f\nCT: \nAD: \nTAG: cb02203ee8eccec446ed1c2cf68fd1c0\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: b5d4b3e80a56adbc780ff02c5da6a7ab\nNONCE: abc5b96c5e872502971dcc55\nCT: \nAD: \nTAG: 4e85677cc16e2b2fb50a2ca9c0ac1b9c\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: eac258e99c55e6ae8ef1da26640613d7\nNONCE: 4e8df20faaf2c8eebe922902\nCT: \nAD: \nTAG: e39aeaebe86aa309a4d062d6274339\nIN: \n\nKEY: 3726cf02fcc6b8639a5497652c94350d\nNONCE: 55fef82cde693ce76efcc193\nCT: \nAD: \nTAG: 3d68111a81ed22d2ef5bccac4fc27f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: f202299d5fd74f03b12d2119a6c4c038\nNONCE: eec51e7958c3f20a1bb71815\nCT: \nAD: \nTAG: a81886b3fb26e51fca87b267e1e157\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: fd52925f39546b4c55ffb6b20c59898c\nNONCE: f5cf3227444afd905a5f6dba\nCT: \nAD: \nTAG: 1665b0f1a0b456e1664cfd3de08ccd\nIN: \n\nKEY: 39c070eaace1c6e30ab004bfbfa830fd\nNONCE: 6e55ff3bba561f17f338313c\nCT: \nAD: \nTAG: 4e3c2db540790f26a4704e72ef9b4f\nIN: \n\nKEY: 96b12ebb99edca96838f88caaa74abbc\nNONCE: 679feb33d6e35962518a63c1\nCT: \nAD: \nTAG: cbe9d90bb8600bb14e8ca81cde5b2e\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 5b1a1ad45349cb7ec3afb613674c9381\nNONCE: 7ef3542c0ca2415f767eec7c\nCT: \nAD: \nTAG: fbc65cc7f1f4edbb746b47f950e472\nIN: \n\nKEY: b349f8d86e91144c86ed49a100358239\nNONCE: 3e3879e1a4ccf74cc442b9c5\nCT: \nAD: \nTAG: 0d935691c84813b8c1e5ba23ee621f\nIN: \n\nKEY: df4074001cf89ad0b046fceeea5a1ef2\nNONCE: 080fb68a083a219354a7cdcd\nCT: \nAD: \nTAG: eaa44ef28c446610b33dd2fdbdb8a0\nIN: \n\nKEY: 84816510accb68149ee65be220df3d9e\nNONCE: 99c41452f73f3a2dd48f2eaf\nCT: \nAD: \nTAG: 5d5f3c09d2498587c7230dbe5fd497\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 98740d9ac6cee9379253d4e6718a1de5\nNONCE: b723dd15270c767a31636117\nCT: \nAD: \nTAG: 199630b915021b98055f295d08befc\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 79b8cb97ec3e3f7536eeaffc64bdb372\nNONCE: e945122f1e4d960a2e9f9a41\nCT: \nAD: \nTAG: cb9c041f18070030399006d77954cb\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 26e7fb1c3b5448d7ad7b67aadaf360bb\nNONCE: 34bf017f9283236dee171e10\nCT: \nAD: \nTAG: 8756ca5c8aa644a852e5eb2c49bf39\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: d6a515d24ef9099695b179c01bc1f4b1\nNONCE: b54a5bbbf6faae5f33b8c133\nCT: \nAD: \nTAG: 02b1243c92f6b059d00bd672dfb8e5\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9e9ec40db0a07f24c417d3c63d1b946b\nNONCE: 8605c97fa5d8f94798b845f9\nCT: \nAD: \nTAG: 10ce3c41553e7f5b413d1470ced09b\nIN: \n\nKEY: dc1b3fdce56baf77ddb22246ebb224db\nNONCE: 1394643db950ac42366cda3c\nCT: \nAD: \nTAG: 25bfdb151d21994e90b095230247\nIN: \n\nKEY: c1b668ee720eb90730d7c30e663e941b\nNONCE: b8f27f51092d65697a9740de\nCT: \nAD: \nTAG: d6acce523efdb3e7b28220896827\nIN: \n\nKEY: 7a25451203338a3a046902fc5169a9ac\nNONCE: 070a0b0fb560999c6b778aa5\nCT: \nAD: \nTAG: 51d73876b57dea6ef24e2740fc69\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 8747e8b9058632721cab00c217e24fca\nNONCE: c44c7bbf8b4a48e2b64c4e41\nCT: \nAD: \nTAG: 2f7fccde59ec9e6ad2cbd6ced7c1\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 79d9e7d647dbe9926ba08f078b2c4768\nNONCE: b7fef625e03c6e97bb7988eb\nCT: \nAD: \nTAG: 8508fe578eacef69d8e1468cc905\nIN: \n\nKEY: 84ade1f350d68ceff9fe8a7ef120e7b6\nNONCE: 7617886bff63257768f54173\nCT: \nAD: \nTAG: 461ecfef2f3b746cc3a47c28a43a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: f7a85574fb8be04e92d219cf3524877b\nNONCE: 9a3febc5d2bd389e0db3863c\nCT: \nAD: \nTAG: 69a1d7bbf81f830534312c641068\nIN: \n\nKEY: 18f42b8a3dca6e80777d5c681d8c4a32\nNONCE: ed425811547c5989ea6d4cb2\nCT: \nAD: \nTAG: 60b5712b52b56facc8758aec40c9\nIN: \n\nKEY: adeb972fe5160e14137c286b6e281163\nNONCE: 38e536e647b83fc429bbcabd\nCT: \nAD: \nTAG: 22e32a3c2637ac48c0deaf06435c\nIN: \n\nKEY: 0686f241ca82a590980929858c789d7a\nNONCE: c5d0737448692684c5ac1c8c\nCT: \nAD: \nTAG: 65eecbd0fe423c6e1608745ab677\nIN: \n\nKEY: f7d57c6e4699d4f242270f41781d39dc\nNONCE: a2842a9dd1b5874cb50e8707\nCT: \nAD: \nTAG: 09999cdc3dd28e818b88a6485c8d\nIN: \n\nKEY: 4df05ee5ee95c69938b4049a2be92504\nNONCE: afdefd136622128fd6c2c534\nCT: \nAD: \nTAG: 3a24e5f166d70627954b55029fc3\nIN: \n\nKEY: 0f4469766ea265d22cba4c7105bc49b0\nNONCE: 25ede41ed4c638195354713a\nCT: \nAD: \nTAG: 6dd4e9cc6ed04976f2cced5804b4\nIN: \n\nKEY: 24c7de158fcb0808b3cfda0e95706e6f\nNONCE: 88eb7f00a129040d05952d17\nCT: \nAD: \nTAG: 2d587fd20457566fed19cca36d2b\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2610de38144b05876b0d0b34a1c7812e\nNONCE: 6673bf587f9f90df3a1715fd\nCT: \nAD: \nTAG: 7b13fff5e79951ebee51d12f8422\nIN: \n\nKEY: a830c905dad3a8e5aae739d7ab60a5dc\nNONCE: 54633aa565952e80fb0b9869\nCT: \nAD: \nTAG: 482d9381230cd015b2a16976b6\nIN: \n\nKEY: eb7ae9788a5dc09a7812e389c67138ea\nNONCE: 2ecd19b70ffe87cad58a0029\nCT: \nAD: \nTAG: c1ebf4e3594a722bab9f61e084\nIN: \n\nKEY: 9c247b33ffb3fe486f8f1c06b3db6563\nNONCE: 978769bc16a7dd3d90ab9d76\nCT: \nAD: \nTAG: 09acccba7e7be6b5687b478327\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 23281eec6b12fe1184e6c113788915b8\nNONCE: 78538fb690491381daa41ef5\nCT: \nAD: \nTAG: 80d9c8d781035be9f68de209ad\nIN: \n\nKEY: 443657744df4b5d5de80f27efe244b27\nNONCE: a637b48e67d1cf8f3ddf6d7c\nCT: \nAD: \nTAG: bf84664af0260e0b5b352e5cd9\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: b93ae43e8eb3e94b67b09b833e376327\nNONCE: 14ef4f357845d34ce06b170a\nCT: \nAD: \nTAG: 22c987ec9c91ce7714fbb794d8\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 6eff3644c83c75c0678cf4f6713561f7\nNONCE: e7bf04fab5909668065d2b43\nCT: \nAD: \nTAG: 2fab50a07c1a50ba8e4381dad9\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9613b9b4c70e5ab130534309059e99b7\nNONCE: 40414f80b586ecfb22860442\nCT: \nAD: \nTAG: 9cc1a298d9d57b6d4bcdf3e5b5\nIN: \n\nKEY: 400fcee6ea1b8b1fccffdbccef08a5e2\nNONCE: dc16236581a6da126550b08a\nCT: \nAD: \nTAG: 6ceeca2188cf4da42ed3f248df\nIN: \n\nKEY: d27c84466faf1a45a2435eb9293478e2\nNONCE: cdd7e1bdf60bd12885dc8fdc\nCT: \nAD: \nTAG: 5397381a8817ef557ac6c57a22\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 8ed40d2b24f52dbf2fa8486c8fde62e9\nNONCE: 837f36e0f6fb34d08e8df9f9\nCT: \nAD: \nTAG: e6c787dfeae37a34dc49d52caa\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 34395d007dac4a4b83c943de4406d821\nNONCE: 4bbfe5f3276461e594b1fd2e\nCT: \nAD: \nTAG: 30daec9c07fa2e11a1acc28baa\nIN: \n\nKEY: 5a8321edf8d532d51299ecbaffc56cbc\nNONCE: c512db4e75e52950f89f458e\nCT: \nAD: \nTAG: 88fddfe667c3519963ebb6d0b7\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: d9ed395776deb772a218db03abbd8606\nNONCE: 600075a6d85d86d6a3f6624a\nCT: \nAD: \nTAG: 7f486053d65559dca0a3761e00\nIN: \n\nKEY: 16b5d6282fa184deeb837c706f191079\nNONCE: ea09b0a8f65f3ac16d954c9a\nCT: \nAD: \nTAG: 6defe4a6354e1383111d96fcb3\nIN: \n\nKEY: 4c5a02440befba5820539ccf74b40355\nNONCE: 3852fd7da7a375a2a2227e9c\nCT: \nAD: \nTAG: 9f45b723d14708dad1edd831\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: d4e885208426247f27428ede3b318e68\nNONCE: 5513f9ec35e2e72be3470f57\nCT: \nAD: \nTAG: 48d716f0f94ac7fbc291932e\nIN: \n\nKEY: 25954f34970b4fc834fff", "1552bea4896\nNONCE: b66b254e66240f0e8e262f01\nCT: \nAD: \nTAG: 5b5569b200c06bd24382ec73\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 303b5662bcf71ca82e07e10248c17629\nNONCE: 45f9c33e03f84fa88209858d\nCT: \nAD: \nTAG: e8b99255a0e953d57361db29\nIN: \n\nKEY: 8394912058620e935335f7627b18b1b3\nNONCE: 772149bd434c0b27ac45e672\nCT: \nAD: \nTAG: c7a43e2ee7e161a52583ad83\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2ca00481ac56aac664b28f29781a7e82\nNONCE: 14574966f3b12bc0502a3a55\nCT: \nAD: \nTAG: 938628eba4b72f79fd7b7396\nIN: \n\nKEY: 8ed5a13a5046d10379c75eaa3fd17bb2\nNONCE: 2b111cc8c84ff7f1c262ec1c\nCT: \nAD: \nTAG: 82e8bed016ae384ae75ac16c\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 7041298fe906405905e8b4de1de3c0f0\nNONCE: e4fbdc72d00a331bfa326d59\nCT: \nAD: \nTAG: 17292560680114395372691a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: faeeee9bbaff25e221121d1122807009\nNONCE: e9e872d525c2315f49e2d94f\nCT: \nAD: \nTAG: 98146c72b9365016ff33b7e2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: df0a1dd37c0144e0bcff6e7deed857f0\nNONCE: eba039eaf7f2f48f761abc9c\nCT: \nAD: \nTAG: 973e0ff877b085ad8083d6c9\nIN: \n\nKEY: 27f19b4b2d23285d92480ca2dc3799dc\nNONCE: 335b2f88f2fc4b6188867558\nCT: \nAD: \nTAG: 8b1c43ade7a3c5af9a639e02\nIN: \n\nKEY: 6edf19775190943d196148165087ebe1\nNONCE: c2fcf9919d85407086c2be20\nCT: \nAD: \nTAG: dda2c0cfe5d922a3cfb15ab8\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9acca9099afc2ec75441587bdd96a469\nNONCE: ca178e969478e36621db60df\nCT: \nAD: \nTAG: 86a70322e57fd6cca64a6aa6\nIN: \n\nKEY: d0718716395e03f7fde7fb40f497f9cf\nNONCE: dd20e6b684a0f53d3785df71\nCT: \nAD: \nTAG: 70cfeb7a503a1869fa0dc0ee\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 5fcbf7953da6781ae96852885ae01488\nNONCE: 34ca7d2a0aaf09fcb8a5b39a\nCT: \nAD: \nTAG: 142828e093e80e346008c2b6\nIN: \n\nKEY: a958dea10183955fb62b5cf0d6560efd\nNONCE: 9c6fd7fcb79ab149a2ef8416\nCT: \nAD: \nTAG: 0fa19df0ef498402\nIN: \n\nKEY: 2bd8c68da36fc74a66e8bc9c58c7b3d9\nNONCE: 0a0c9cee4e712ce526271644\nCT: \nAD: \nTAG: f94a128bb6c31902\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 5f8441de9b68a525bd77a9f8db9ac1ec\nNONCE: 7b704888d905e11b3e8f6751\nCT: \nAD: \nTAG: 1920f39509e495ec\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 47a49ee87638b74b48dfc42b9892ff93\nNONCE: 927f32a1fdeed0da6c80c4c1\nCT: \nAD: \nTAG: 568ca20233ab20e1\nIN: \n\nKEY: 871616dda80c31ef677f770774f41d27\nNONCE: 94f9c4a7f7d69cfef745c085\nCT: \nAD: \nTAG: f779d3356f60d96c\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: e6a7ce1c109162cc24552b2de8355bd8\nNONCE: b140aa5f0f2312cf7b8696c1\nCT: \nAD: \nTAG: ea5f6c5b9224afcc\nIN: \n\nKEY: a90b62bfba34ca0cfb4d5ccd52ff7369\nNONCE: 5fd3cf7a9a1e2a15ad6a58e2\nCT: \nAD: \nTAG: 6f3dd881088a0b29\nIN: \n\nKEY: 6280067b5626d5d6bf35ab1c903c1d75\nNONCE: 99523c6f792e03276c44ba7a\nCT: \nAD: \nTAG: 3a68ccdb69008d9d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: f40b500c70209092efa29a2a7e96ca64\nNONCE: 86d1047059ee2986bd96daf7\nCT: \nAD: \nTAG: c594ea04f674de69\nIN: \n\nKEY: 6cb7829e2295e60036bb967d06116601\nNONCE: 4dfb5fb2ea41fae7653e1438\nCT: \nAD: \nTAG: bb9b39fe673ffd18\nIN: \n\nKEY: 05cd9b0de53c072321ae4a1cdc2cafc3\nNONCE: c869859421df985bbc8c9c62\nCT: \nAD: \nTAG: 0f8ad033a0ae3cb2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: fd025400ab17f5e35c3cae3aeed4ebc7\nNONCE: 6c3b7e178df39504d3ca2e31\nCT: \nAD: \nTAG: 5fd986d21ac0bb49\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: c7678eeb06cd24484b81a469c024c3d6\nNONCE: a1fea7d9afd9493a83b5d531\nCT: \nAD: \nTAG: 8c5828f475c4f902\nIN: \n\nKEY: 056c731555048f5831a4c7ba57f9022b\nNONCE: a8a13e93a33807811ed327f6\nCT: \nAD: \nTAG: c2d9d4fb79d675f3\nIN: \n\nKEY: c0395a8391049d30f7e0fa7afd1b0ec4\nNONCE: 381894100b3d786bfca314b7\nCT: \nAD: \nTAG: 2fef77ef639adc00\nIN: \n\nKEY: d1cb603b886e9deb62cbf5182caaeb35\nNONCE: cd23f90cfd17727ea0975ff2\nCT: \nAD: \nTAG: e319af65\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: e626638a113c617077f5c4b2284921c5\nNONCE: c4a8864b4c3385a78cb8759f\nCT: \nAD: \nTAG: 039d51f8\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 8f74a8b922fcf1a8eed7320df9f03fd6\nNONCE: 925ec6414e777062ac839f06\nCT: \nAD: \nTAG: bb0dc912\nIN: \n\nKEY: f59152b1d2991e7dfbd6b9cf91d2a9f1\nNONCE: 776f95b088803b537dfbe941\nCT: \nAD: \nTAG: 9163e80b\nIN: \n\nKEY: 72a9159c9f8f4953b6ab4fbad02c019a\nNONCE: 7ca4d31dba07c89b3d5cf059\nCT: \nAD: \nTAG: ee28643d\nIN: \n\nKEY: 6ca652634faee86176a8bbff37f5234c\nNONCE: 77bbe192e81594223b8869cb\nCT: \nAD: \nTAG: d054e86e\nIN: \n\nKEY: d06a1cebb4b1cf8b2f48126bffd4530b\nNONCE: ac7c4c669d5d7749d114448a\nCT: \nAD: \nTAG: c606dbcb\nIN: \n\nKEY: 42797f87d381cbbec3dddb8e7ee1b30e\nNONCE: c4be94c9b2f76132875374d0\nCT: \nAD: \nTAG: 40156799\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: accec0302ba0f854c2c5a6faf08f4972\nNONCE: 2722ce4848acc2b4cc9aafa2\nCT: \nAD: \nTAG: d90c055f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 117ecaafb5c844ceb9e505f8a33bfa79\nNONCE: cb95b76c9dbf4b6ee4fe6a46\nCT: \nAD: \nTAG: 641e2aa6\nIN: \n\nKEY: 453e89f0646d2532e3d0d019a7d7e302\nNONCE: 14732cb98fb4ad26c0ee9e1b\nCT: \nAD: \nTAG: 232f4035\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 121143f3835cb0d1f88f8f53a7abdb11\nNONCE: 601c15958cf77c0ea1c3862e\nCT: \nAD: \nTAG: 43c61d3d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: c5d7666d37ced3e4c2b9b738d4b38557\nNONCE: 012fa72716b777e0bc248f2d\nCT: \nAD: \nTAG: f4208947\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 5d06c11668c4aa9899496b5d7f229b83\nNONCE: 0ca7102fff9fe056a5afa9f8\nCT: \nAD: \nTAG: d7a7af6d\nIN: \n\nKEY: b63a6afbc9906d23f1e9c0f487b6d919\nNONCE: 2b091d6b35e4f9ba5f9cfdb8\nCT: \nAD: \nTAG: d1eafd50\nIN: \n\nKEY: d1f6af919cde85661208bdce0c27cb22\nNONCE: 898c6929b435017bf031c3c5\nCT: \nAD: 7c5faa40e636bbc91107e68010c92b9f\nTAG: ae45f11777540a2caeb128be8092468a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2370e320d4344208e0ff5683f243b213\nNONCE: 04dbb82f044d30831c441228\nCT: \nAD: d43a8e5089eea0d026c03a85178b27da\nTAG: 2a049c049d25aa95969b451d93c31c6e\nIN: \n\nKEY: bc3ab28150fd4cb731d5f48ed2784173\nNONCE: 40408445c203c647312b8f01\nCT: \nAD: 53d2fc19963fc99a36a524e39cb68aa8\nTAG: 3f04dbd2f49909f73044175041fd9eff\nIN: \n\nKEY: 34537f1a0ba093aefedefe8b4b6b34e7\nNONCE: 9c5fc88eb388ef6776aa2182\nCT: \nAD: 4dd377d089c617dda1ecd42341d1878b\nTAG: c0fccde30ba354e23c05b5371c40d088\nIN: \n\nKEY: 54c3f935982de19de88d6384f9493389\nNONCE: 3d7eec1cdf3cd419511793ab\nCT: \nAD: 2ded8cbc69fa57678aadc7477f2a2173\nTAG: 74107fc192c94a7d85d0f9205f8b02c9\nIN: \n\nKEY: 790f8945b127a1a418d6d58b4378e0dc\nNONCE: f5694d77b816f2cef0ac80fc\nCT: \nAD: e5c71b82a60c97f050511a3b9a09e450\nTAG: 4c75effb688dccd0affe92c0e0391d64\nIN: \n\nKEY: f6ed6f0afea7e99ab320b525107715c9\nNONCE: 351e7dc999b9de77ce61b2f7\nCT: \nAD: c9101b64e0b6abc0e46828aec14d29cc\nTAG: 4f2ec2e1ab001443a60722671a9c9656\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2eccf9cda0e4e70f273ee8251120c768\nNONCE: 1d869f4b8497bc19d948cea6\nCT: \nAD: 1d86a6a21f23ee56ad0fa6c1de525906\nTAG: 37ffc390298c3ea8cceb382f394c2fc2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: d61767f07b959e94f73c64cb5a5520b3\nNONCE: ecfa850395f8cf9348f1324f\nCT: \nAD: c3571bf1700b114bbf0c6bb2278d4d88\nTAG: 1065f86bc9e22197880ea87ac326a17f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9421cac15ce7d49ec7c088f7524a1ff5\nNONCE: b3d395bca123b265c05577cc\nCT: \nAD: eb6e06071dae4360e8347bfb72d9c188\nTAG: 1f04c228c7efc71f1706d10fd819f35e\nIN: \n\nKEY: 8580395a5d777c1690af79f6068e291b\nNONCE: cad1a0f2b76f064ca56be3cf\nCT: \nAD: 174388edf0b7f86fe634cb942c13754b\nTAG: 0067b03f2e0efc72cb08792fbe3b0267\nIN: \n\nKEY: 0c21da9c8b84d371fde59e6d1752113e\nNONCE: f8c13e58aaa329427438db8b\nCT: \nAD: b8b197789cfd085b09a47760c28c7e8a\nTAG: f8613cc5dcb4cc5c78f1f7c2d8084ec6\nIN: \n\nKEY: 162fc51e46e771222a04842f5546db8c\nNONCE: 13557e09e738eb895eca2d8d\nCT: \nAD: 691e71952c31a6b49b785f627c03e948\nTAG: 4f7ea723b1abd74e53fa356809275ca4\nIN: \n\nKEY: c46d9562d954801b8e99e4e57cbcc0ec\nNONCE: 30414c934b14e0bb0110ae44\nCT: \nAD: 41ae6a63855c1944446491e80670bf68\nTAG: 3e2366a2cf5632c1ecfde33f1f5f6d18\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2904df4dafcc6bbb8375baf6a7eede80\nNONCE: 6aae8ff4b1609f4026b47259\nCT: \nAD: c4afa7b21e5f41b892be52365a18584e\nTAG: e1810fe340207fa83815182bbad62bde\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: a663a6aeac790c61e07e5f8ab843439d\nNONCE: e287d287051c82e2253e33f7\nCT: \nAD: d211a58e7d4884a26669b335c0af8d5c\nTAG: cdf52e39cced5c04ddaec8227826da\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 6dfa1a07c14f978020ace450ad663d18\nNONCE: 34edfa462a14c6969a680ec1\nCT: \nAD: 2a35c7f5f8578e919a581c60500c04f6\nTAG: 751f3098d59cf4ea1d2fb0853bde1c\nIN: \n\nKEY: 5f20eb8f6f579ec235b3403831fd58b1\nNONCE: b989444625a730876cc1a439\nCT: \nAD: 5881865ceb44bf171a7ba87d63f1fdcb\nTAG: 2d9c926c872c04bd0915f3e4ffccc5\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: d1e376ecfa46321a3a4a187fc1524789\nNONCE: 7387c1af03adfffc53248ac8\nCT: \nAD: e9d8269ecf857dd6afd85fa90260a565\nTAG: 6a1da57b70e9c4fd006e4a669008d5\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: f20681f4b61e72f8a6517e40b5860e0a\nNONCE: df80104736d5acba2348e5be\nCT: \nAD: e4247e85dafdabff95b6d8c27e8979a2\n", "TAG: 746ee686eddfac0785341bb616f90e\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 0f6ee618d0b66fa269398d5d3279931b\nNONCE: 7ac7c776a9a77aa8f7fc653b\nCT: \nAD: 2774b19121188965922c4a702c45fcfb\nTAG: 58d810fd408978d0f5eb33f06aa861\nIN: \n\nKEY: 9405240a2e0fbef7ac89f66f9188472f\nNONCE: 60718e8fb2866d27ddff8a78\nCT: \nAD: e86f19201889740743a9b95091283ab5\nTAG: 2984f343aff7e0ad84aa7134f77699\nIN: \n\nKEY: 9a5f24a325ac049169f7073b9583fa79\nNONCE: bf364dee6ac48e711aa2af2e\nCT: \nAD: 131339c8b9c785350efee37c0c37b6e5\nTAG: 69b1815c978cccdd146c51ad164429\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2b51c516898ded4dfedf1839eb09f059\nNONCE: 8080260add3b5d2182b3574a\nCT: \nAD: 303f4aa89c1ce37ff8b36940c65586e6\nTAG: 3750db28f9a09493ab60c9cb426e0b\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 084877d61fd67442461c741afc4cf5f8\nNONCE: 798bce4a6b8663919dc922e0\nCT: \nAD: 056221633de809d2f48ff41c2d75d851\nTAG: a6c40f9765113e9dea6fd2f8bae96b\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: fe9cb0d7753d80686621fcf28705a39a\nNONCE: bd71586f2509814283ca1ec8\nCT: \nAD: 8676d9c9952340c31c9eb9e0d75c68d4\nTAG: d55ab183b959d697fb9145d37a7b27\nIN: \n\nKEY: 0ddee4104e896aae2849e8c4c5b97da4\nNONCE: 03d4bf8a036f974f92c77ed3\nCT: \nAD: 742838addd4a519d901736aa0a08d769\nTAG: cfb89c9ad51c348d65f7ce7cc4b72a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: a22e58bd9a09eddaa630d499dd6d410c\nNONCE: ea9a7f75676dcc2f79b9147b\nCT: \nAD: 0a730acd7b5805ca0fbfdd5bef7690c5\nTAG: f3c63684015db6cc958bfb3ac84222\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 8e5f16c84b0dd5357ad66f0540f1bf87\nNONCE: 6231ff08e050b7f7c5204842\nCT: \nAD: ab622472635a3ebae68aaaf8153df35a\nTAG: 1df90759291bfebd7cb239e75746ee\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 31c987a595a80a4c91de68805f66e5b9\nNONCE: 67edf7afbc125ecf99a804a2\nCT: \nAD: 8648a3452aaa3ff68d488de1abecef41\nTAG: 1c9199d9465ba5c9314911b4ad2057\nIN: \n\nKEY: 2d4fe4c17b1e86f0316846e642ff3a4d\nNONCE: a8b283438ad968e17fb5a755\nCT: \nAD: d0fdf6e1543d2b0f62c96c6e9c09c977\nTAG: 80149613bc962e4735acf317a3a4\nIN: \n\nKEY: aebb04a17265c4720d5a377c38efc460\nNONCE: b607be60340e557013e7adce\nCT: \nAD: 3cff96ceffa4c9a2193beeca9444e474\nTAG: a207fb626fb731c3234bad3573e8\nIN: \n\nKEY: 0807bf020df6ce3aba407e4d4f76ef6e\nNONCE: de63592624932a0805bce0a2\nCT: \nAD: 7c85c60c15301bfff6f2a4a3038b3c9f\nTAG: 5c83dce13c5bed35d8941f16627a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: efaa4666776ff4c6a87f563dd2e2794e\nNONCE: 9eb99f9741d9de6d3cbc9703\nCT: \nAD: 3addaaf513eb42606a24311ca7058846\nTAG: df02cfaace61423d45f64cec0e78\nIN: \n\nKEY: cf8d3e7cd62754bea5092409db3dc6c4\nNONCE: 5af3d5f1d144de8aca4bbda3\nCT: \nAD: 907083ee93cbf0b9b8421b8083bfcde8\nTAG: f19ebbc361dff17249251c9a7f5c\nIN: \n\nKEY: b894e7483c9f367b41af103f2860a6c8\nNONCE: 42d71d79e22740e1d1871ab5\nCT: \nAD: 8f78015bb82fbe032a6595e679198b47\nTAG: 96ce7b7f620b697f074f109c4488\nIN: \n\nKEY: 8299ee6ebdf1ea6e2561933b406de656\nNONCE: 98aade4ae4cda264b364987b\nCT: \nAD: 29a0fdb89ec5c5f969932e0aa0c170a8\nTAG: 60e0a7c2384f1d208abcfd4e4b3d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 29ac8dc4b69fb48289ceecd435ce3066\nNONCE: 2ecc8b95fae59fe59402bae5\nCT: \nAD: ec279eebc147897ea067a105c7e418c9\nTAG: d6f6127ec39852f18a7941948e41\nIN: \n\nKEY: 065bcae64ef1a982237e5977e73382ae\nNONCE: 164fed8cbe6d6cb0bbb6d608\nCT: \nAD: ed7da5abf307f9ceb18b630de9291b4a\nTAG: ac22e57ebf8ff258ffc77fa4bbb5\nIN: \n\nKEY: 1ad71eb24ea2a8055533fc1ec1b51b98\nNONCE: b27b640c3919a21da93e42c5\nCT: \nAD: 882acc108ee77afc6754089e864f0080\nTAG: dc36f18c131004e815c228a3fe9c\nIN: \n\nKEY: 54f06e8769711b40076d3cfc0239c324\nNONCE: d607633bd5336ce01c98f458\nCT: \nAD: e8f2f9edf850ade8e7cb55fba052e27a\nTAG: ff32f6d2418b2e646288bb105dcf\nIN: \n\nKEY: 8a473ce70b7694cb36efe5f5f268f1c4\nNONCE: 8236c764c7614dedabdd2dc0\nCT: \nAD: 4ea00a00b2bde6f183366b1ce8c33400\nTAG: 158bba897c1ab0cbce33355947fb\nIN: \n\nKEY: 4b42945e4361de3f6623b01872ff5f95\nNONCE: 5d7ec8f90b140049a8ef85f6\nCT: \nAD: 50feab5dce291d771df81b0124da29ed\nTAG: 90590e115ba688b50a66d59eb8b2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: f2bad7d4f033b19c3b918da3021b3edb\nNONCE: 3825afbecc01cc66caddd402\nCT: \nAD: 49a6738279742410a0ce63276306c288\nTAG: 95a5980947205fe2225dbd39d098\nIN: \n\nKEY: 2c113bdd16d5f827bb84d9a9f1e2ced8\nNONCE: 97ce5737ca5305cebc3dbd0f\nCT: \nAD: 6833844c135173f2641190a5c81e2d38\nTAG: 9576596016c502bfb51adf861405\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 1dfee02fd2e411d8a95218059717e65e\nNONCE: 534f2db1833e2b95d17f4749\nCT: \nAD: 969f2d219986f9e3305b8be533ca164a\nTAG: 750e26041514a140374e857b19\nIN: \n\nKEY: 80a351296fdf716a59ce9cd3f3db1378\nNONCE: d57877a78eaea750131e1f62\nCT: \nAD: 89d5b612686f10f4523ad8721abb4a17\nTAG: 1445fe02c7eacc1968b5c2f436\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 44cdf8d44d4a85d4c718b6dfb3565f1f\nNONCE: 5fe0e438db113e46f73f0227\nCT: \nAD: 76fbc7e5d64be21cbb341b32ea61d8c6\nTAG: 98aaad6c40345751803926295d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 5e86779506b46f0eabc6181b5a313222\nNONCE: ad02946f9f4e148462d14eea\nCT: \nAD: 89d777550c1c2148dbef73d7179d2bef\nTAG: dbfdb23c13eec51652128a223e\nIN: \n\nKEY: 0ea30aaa137345525472dbaa01918c86\nNONCE: 5ab6b70b7ede3b3fb08fcc39\nCT: \nAD: 64c3471c9ee1da88220ebae0a48cf98f\nTAG: cd171585c15995cedfcd148582\nIN: \n\nKEY: b0589030b2496a3b7ef823e2cc39bfd5\nNONCE: 6b9d5bc27d46fcdc6fbc39a9\nCT: \nAD: 7639433669bd4c1a1f3b1ac04fbf9cd8\nTAG: 83328a0e57afdf647e59a2d2c1\nIN: \n\nKEY: 81b27f066e5508f361cb98b3f378199c\nNONCE: 9ead7424a30cdc069b8668ed\nCT: \nAD: c19b80309e4aa34569f3058d13372b94\nTAG: a1127f3719147804e4eaeed8ca\nIN: \n\nKEY: 61a35d01df1b36fdbce2a6fc52b28305\nNONCE: 9d1708a0221d1d9bf3354a79\nCT: \nAD: 5ed9b0cd7a5e4072cce8f782a5438d1f\nTAG: 954fd6412d4b5f93d681c27baa\nIN: \n\nKEY: 15bbdcee8d262dfcf68f451e24bf26ca\nNONCE: c33f1f1eb456e6fb6d2277d3\nCT: \nAD: a3562c2071373e21cf346fee25cec4f2\nTAG: 1ce20f2935f8b8433a6820c228\nIN: \n\nKEY: eeda4ca996042630c017972b3bdaf09a\nNONCE: 0e02cd8bb87275df5287cee9\nCT: \nAD: 4ff3c0e013efca89e774b5794a8ba170\nTAG: 3b0e6daa01ad734c2eca681bf2\nIN: \n\nKEY: 75798e2e0ee570b06d4c47786336a099\nNONCE: e17c46acd0b0bbb15a5f9349\nCT: \nAD: e3779798212e7e9b4b2f387fbbbd95fe\nTAG: 1ab3d2c1cd55a89278224fc037\nIN: \n\nKEY: af2b060a94b20c9960f94fced963b2c5\nNONCE: dc8defbb5e45227e8576f45e\nCT: \nAD: 122f529fef4445f11a34111e10fd8b5d\nTAG: bb862654b76bd729ced4b4e9ad\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: e1d07f1bc8f4a4b145badb96c85a82a6\nNONCE: 685e9636a2915adfc867889d\nCT: \nAD: 80c001fbf00b2bfd38ce903f0cd72db4\nTAG: ac9191dbb057b670dc76a194c2\nIN: \n\nKEY: ec4b3c2e077de7c2d62e28e3d05fe6c4\nNONCE: 704106b91d3a8f4dbee3ddbf\nCT: \nAD: f27dc1430cb30f8018cfc670eec9bb71\nTAG: d28d19fbedf2439140b0573083\nIN: \n\nKEY: 0dbbad4a54122500bb584787bfe94a86\nNONCE: dcad55f03d29103503858ff9\nCT: \nAD: 3c26ce754334b7fcc4576f4014349134\nTAG: 3251f275a3be44de87c5ff0544\nIN: \n\nKEY: d36cd8e8dd709b68433b4cef15efa4b8\nNONCE: dc859fa01cf3992fd5e74ba3\nCT: \nAD: 5983b73431118f294a4de08a4fbfbcc3\nTAG: 109412f2cd3dee2e75d9d90d\nIN: \n\nKEY: aa2717236879b0bfc29661187c0d2420\nNONCE: 1264dcda92ded29c03d846be\nCT: \nAD: 6b12dfb961f2e4d0ca2cea60666003af\nTAG: d69227a40670b13097d6f583\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 308a70f727df2e3c0f9da9f6607710b6\nNONCE: 1a790ff86fc2e6a428c9dd89\nCT: \nAD: fa18646779fa5a8ce9e271de0872f76d\nTAG: 68ffa9b8b2cc804935136712\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: fb01d2721acc1c4a832232bb7ec59163\nNONCE: 6cd3cf1bc45c6f26b87b95a3\nCT: \nAD: 3fde68f37caf7e0f38c0281e3fb5e9a1\nTAG: f9da75272d67a6e180764a18\nIN: \n\nKEY: 8478e6653acf07ebb766bc941953aa23\nNONCE: 143b6fe40260052ddfc4537b\nCT: \nAD: 12f49ae610cea95e776f27f0ea433dc6\nTAG: 60aa4aefb53b800e1efd64bf\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: f56ab97fbd0a2d8c6725f5a5ad117a2c\nNONCE: 266a436d9d05ee331a3ec858\nCT: \nAD: f31a01cd934b44208e9abe08c21f8be7\nTAG: b07258864aa6083fc15899e7\nIN: \n\nKEY: ba8a42bcc9d0bcbc9129d536d2364ebd\nNONCE: 6fc5c4ddb461acee4e3c2271\nCT: \nAD: 6bbb55b97c9cc3cfffa4f450b0debfee\nTAG: 3696c121fbb1def560c14182\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 827e4e3e9a4de530ae43510b94a55d54\nNONCE: d6c7fba9a73e76f6d1b015c6\nCT: \nAD: 3beff1d14cd6021b709d399d02015b05\nTAG: 2d58236b7e8113c821ddb4a0\nIN: \n\nKEY: 608ab3f94dd16b51c9afe4ba8dbdf852\nNONCE: a7b32bc6c976e8bd839f9af9\nCT: \nAD: eb212ef0a3a307024978a2c41a41d8a5\nTAG: 7aed47ba76b07717558bb87b\nIN: \n\nKEY: ef50e9ca5c53c2ddf49ccbd3c41a5a56\nNONCE: 817bee5ddedd26601cdb7cbc\nCT: \nAD: 75e26952eeaae53d83f77a3a502d3ca3\nTAG: 37245789deaada2d0dc5f2d4\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: a9811b598adf0bbc34395b43829e86f6\nNONCE: c0def2f064789ad5d8f63799\nCT: \nAD: a735aab3b327ca3f575a09157b77a1c7\nTAG: 9f457e8e4757dae5cbd395bc\nIN: \n\nKEY: 3d906fa69252e00551b4a6347fe367ac\nNONCE: 067ea32f23e29d116fb0512b\nCT: \nAD: 4bf2a2096e27e75448cde7744b0209b", @@ -1513,9 +1593,9 @@ static const char *kData22[] = { "45795cf2a4ea1f33cbb4e1d769231b72a590ce3dc408ec7386a265d65102833edd8dd43b718e9ccf2655ccab0a6022dd81f6697544d9e8bd69c5e6511879686dc2d936cf9e4fb23ef1273fb61eb7bd62ab2b8c49fb916368d7f4a1fa081fd9b3633c1e4cf\nIN: 15ecba6f0f8a42236d020573bbc866d29a86dbff689694e0ba3087bcaade496eacf110d903cd99b81b808c6ecb6f36cb990b63\nAD: 6e848ab8f7f4971a52cbcd42eca24d33a8ba4a43a473444fe2a5f69cac5209779939349d7a73e65db30ff0adbdbf7f99db3f4a810764e4edde1a95b6138e08c7c939549d83aecd46a84a9b897b6896ab07a6a9de663376d6197d\nCT: 9c7d13e78bacc849c76072c527abba06046075fae2a3d13079f0f66635a521e0e1e822e05e009ce3aa788052f5600c00e71031\nTAG: cf632f67bc5092e0\n\nKEY: b4166038b75dec191fc0ddf8375ff4c7\nNONCE: 7f4ab1196310affe7d2d3c165f48c4a5652dc76e0baa1497727a87c49b445d350e810e8b73f9d53590fcc041a863971bf70c715f90bc594a5b98c521b0a91907b0058583f48aa10aba51c45937dfad510b5772e4875186954a575e906e48efa26bb1cf6201fec8f13a3a477da68fb6288b3573095d7027c1fea292d0ba2f2aa0\nIN: e4f6678ac787f6b6ea1c2f04ebae8afdb8941f1ca363f5654d4822358d6041af03979e269f070ba9f03e814114bedaea88a203\nAD: b9bf722d2eae013fa11c49f3475514f9592556abfc334cf9dfba3cfe37d0de7d7c996eb6712facb376651178585d4a60844f52e2590837c35acf169817b692bfae8d08ef374bba4bb0301005b4aae16c54f848b8226a312ad6b3\nCT: b16224062ade5afd4796e658b3beef0d13683e494aa0d745d930378d4b8bd0465f4e58b8ec9c85e97779a461a426e337abe399\nTAG: 3fc244c1caca2757\n\nKEY: d16e4e7ec43a42bd7156f259b369ce93\nNONCE: 34834e81b1ed4ea895cc76788c3adb48c2884b213a46f24a2012a5d06dd6a7175b61d9d4ffdc0e00c54163280b2ed247be68788866094b5b8846e0da034940f800cf3dd0ccd44163a085cb0194461fbde7d621e029fe3effbdde9d856d70fa3398ace4216a94d530b71408bdb9d3036ec81a8a21df120965629c13b796d7d9a7\nIN: 3c6791d91654bf4069f7ccce712fcfb82dac85f2669b80dae7d23f94ebcb280ef621ed8c5cc77fc582dc4f8240061b5e269a1a\nAD: 4bfeb3935a388f15b7418182f8b37c61487865f519c5e7dfbfa4c3b74e60398d82d449ed418ee301895bcd8ddf5a9d50b74037af9a261bad3633600ba7dc79f06a5f09f350ad43c90c27f744779e82f850e23fd79136adafb555\nCT: aa546ace6bd092399bdefe0ab0985f9c380006117be38648e3a0da80cf4d32ece831c06e532b9324fd1df14a6acf8d75275fc3\nTAG: 7068e4ca6ac26998\n\nKEY: c4a8b2c99b62a2a64f8086aab1fd6c43\nNONCE: 2e6d6f434c72c71560f05b55fb7c07e310260aec112aab0e64e8f87fe738fc1b23dea859bbefbe9545fb575fc0a6d45fef42af09dccc9fde0a52ee84afe8d1339641ee5e00239e42b310d9acfd428c2075d93112bcf9ebe728707966ec29b1f72e87cccf75a2255875bf78abf0cd6534520625ac7d0df18bd6a1fd613f894198\nIN: a77ccd123128b46d9144fc5a90ec64bce6b4b5efc5646c8d4961eebe253235baeb236d8af9d1d81ad2bd4c86db78c31c1c8c90\nAD: 23463bb91dcd4716b7364e71a2ebe5e1aaef3cba8ea4214dbd6a987c9850af86518747c4869e00ce244f418ce19f0113705999aac35ad0bbda719573d69101046b34df89774d0093684ad7ec66eb509d8e7c25f552956c488095\nCT: a3632572e59a7c558d5e1ee9f5c059a5e118964c14e3d4e953b5c15d105db76bf970ed17bcccd84162feecbb3fc93d7015143a\nTAG: 27ccd8eae70c6ec9\n\nKEY: 2633d1781ce54f74ac609a5b5209a01f\nNONCE: 7d0e90b7e9f36f760d2dcbd66f352df45f3917afdbe1d0a89cc44be0bd85cf8bf75edbdd33f1d16dad02824d81389210b0f146f3df63f9232d7035eb9e8297a09474985b3e038a5fa6840155d8848fc7c53061ba0f442b84408660a997176ca5bf3473103fd3c9a1de2580b9e539af872259ecae925a8ef50f5a176a069b1fb8\nIN: ae695828625b264e0b13d3c9a539f2cf306a7501cdd35b817b699b2d7c25cf20d2dceec3fa883019db807272fddfdca8e7f672\nAD: 584c3cad3035d1427d6f5f1b261e97a5ea7d97c0b88cedf3b1aa5e21e5916805a63964eab4449d8806e7af60618465cf39f82769b7528bba9bb9c04992cd7b9e26efe9be38e1bfeeb41678c52d5ba3508fd7a2b1e8478505bfde\nCT: fbc32a56885100a36c276ff368db9236906021a8cc7500f2b3e78a6ca01546827073ff1103145f139f4d116eb47b84e33c7160\nTAG: 49589b3a\n\nKEY: 62dc8e1a98863c7de64f30b74c01d530\nNONCE: e9f658589f973895510cb34eef99b0cf34fc311c20c21464e07c4d6d34a15fcad3ea9ef51ef05513fb700cbb92aeef35e4cdda47b2c06c1104e987afa1cd6f827e7bc5a8db6d0657345945c068cabfd6e6b57533c929fe5804e121809b8b43d050a211fbee319879b1ba4cc2768df3a92014839086a377663a1d1967d7c602e9\nIN: f2c54a35286a225389e853e51f3f64b6980a79262e5545856c053d558d87d7b739eb75f27587efe219eb82e9a176fa14419dbe\nAD: 5d78b486c29131866569768d5eedb61afc48de7d1a223d0cccc647cf35408bb932293f3bc1b51a504e13c27548d083c8e8a45d4e9d4dc923c3c2bde38d6cdeaed2929b67e371356f74f635b3b1183ee0db71476f2024e1f5e13c\nCT: fe0c3ae08418ef91b478360942a84a58f8d93df7fe5bde138f59cc23432f04b9637841ccf7a5d539a36f621a7d17e026d4cc2c\nTAG: e413041a\n\nKEY: 9cb4b060870a2563d9f38b7c84f45ad0\nNONCE: 6f268f644af70b43d71c881009a29d966d4d4b13e9a22dae30c299d69d195f92d7ac45579444358acb2de20b78afa3f258eae68f7abc68a664f375efe43f8d39c69668931dd0daba24c8fb74b0a0eca13434ee9573246d342a91514a2495b6c8fce8ec9ecfc93400601d80ac9c4711777a7cc00086d31cc536c05b961c4fc5e8\nIN: 0f75400a6deb4427878b0ac3a1cc3950b39531716cab167ba2113aac383627b173ccd942858b0a3dc5bea3144f9a52179a8565\nAD: 99932f2dcd9dd63a4af30ede3b00d8e12fd24f2328fb03a3251cb1ff9b67b9bfcfe5432e444d4d60a8ce6a39fa41a391c0bccf686d9ac044f72c60ee8f3f26b8355267343b31bc0d2886c84dc6bb1c7c20388c16d04fada74915\nCT: 872ffa67cc633f74ad29cb8b0595989c0c79a5028f629b2800d1412abf1df68a10142e760ecadafba3361f2d43afe79c29c168\nTAG: 15851c9b\n\nKEY: b9587f9d7f881ec94a096b7fddfdc5ce\nNONCE: 107ab768521c30b4778ff9191934249561b8df2e803190da64de20f05979d2376ff6c048aefca35b246a888319b21306f52d1f1f1913545f532a3cf1de4cd52b926321a5a27f501bda538e1418c4b07599a9f897cd6d37320d1e08ffd4a2697bdf91fd5123038ccafd38457e061e3c48def212f94a5efe259ff276ee86c91337\nIN: 5d69699972afef8d1a7fcbb513a87dfdcbfcf01c367d5a378a649cbf92812c6da38815270a9ba0af4be351ad8b062a73a7f63b\nAD: a9d648927fce9991ae15571e1f7810536b41714506ee0197b9471e06613bcb8636203c1c67b93af6d1545baa181c2a149ac471dbd54dbae9784848a4b7ac6894a67bf40ed892df9bc720376e866e92c05c16bc58db1286d5ccb4\nCT: ee550d3368a1115d9cbb1dc37715d7e16e827eabc7d73b537c4cb6fd437e7c88e4afac6ee8807046f0da4788b3b26eb31e4a58\nTAG: dcd71cee\n\nKEY: 1e0c8c8cd53c942ca29dd3d202eb343f\nNONCE: beaf4a32b50c86f92611d7ab665ba344a12f8e5b281580f043633e9bf515d572520b23bf9e5214c38ab43fa4ef2f1a1bca05bba703c5c529943f069ea6f6053e8af0c7eb751b628a82e3ac22ada6e17a12152ae2d5d4162f70e34a8d0685af1d174db91cdc1c103678245cd9483753aca6ac240e5909c18c84f0c090dede24ee\nIN: 2dba40b971012ee4f3b443fd815726065859a28a06d22a1c35cd04529c7b805999cde4ce370b2ed3ea675428dcf5a3a99f7622\nAD: b61a1b5501326d7e67387500835f788574d21fa80df4a9fc6184259a8f0fd8180ef988e12baa645b7500ee246ea52284722051ec4c345a803714f2bc8f02dad385c575128cc6247ca3d293e2b487327f69b0304d402f97dcfa5c\nCT: ce5e806ad840e78042c2e0da0ff3af376a1f7d38adcab0226da6d34887b2b3ae17efcafeb0e32f5070d7cdb850c9ab5b0d8614\nTAG: 6d82627c\n\nKEY: 2fadbffa3eae8caba795506e9d9db0ef\nNONCE: f67d45a1d51912eed0e80d5f5ae05ce4c2c381aee2c4a391823df6b44ad123802602160cd679bdf893dc3aaa547a604e7d1e94de79523891ad32fc0943c822cfb995e5efa197f37a885aab5fd91d47c5ccf852977d7e689f663c5e933a5a72eb4417fce7f3a635cdcaffd60bfa875ad6c2f72cf284831fe640a23fdda21fcf77\nIN: 2f01fb5b9036ab22af19b326769f332b3f6adffbaa9583474bcc5499e00413f9b273a76412ce7d268f12471c078600a2f15bef\nAD: b872df430bd4400030ec5c38289a4be8d4bae608023b6f3922aab24f75bc0d29c2fc378bfdf47a99d7d3d53e1ea2e9420c2752f5b9b6e06b18b9eebd2344e190c4c1ee0f60b14ca89b5c8d3a25c9546a2d013b22ee9fbf92a247\nCT: c1d0f6f53c885b6470372f7d7468eb42fa1f4e20b540a68cac91060050f430d27c50e85403428a75de816c4747776476ae4e3d\nTAG: 8a457c98\n\nKEY: 3f3ec6bb52cc9a725abbf7b9b3f9fa4d\nNONCE: a700805e157f5fd7cec77bc556c2ad7e662c4b55b284970175d0476189822855d44fdecbe28b3fe7a73a6040e6994b8460262b5b5ac1049dbcf4a5febe21eb8574d3a679cc480958852efe787746b4b85acb86757cc855b9db99193208029ad1446631e4a101a115122a98e861c62ef1e3d6587122353b5f958420dc7c80d751\nIN: 07029e02ff512e948112d4f51d5f86d04edd2003447aba21f3976a7200f765130b8971508acbdaa6191c7691dccdde8617a86b\nAD: c6ca6cc319e5296e2ee085036193bbfc4e25a6079dfce25171ef0a2dd569355c73c69cfba69dfac17834ed3226886c07e5461bd605e83be4edd20173f395b37093bef321949d8a0797987796b30aa3387bfd3137506d6fbe5080\nCT: 3b26164ad8088f7e16ae82bd48c7c09230b05a820ea8f89cb4ca54529ccfd74addc308d00ef18f6712d3beac1946ab7da0852e\nTAG: 7e25563d\n\nKEY: 2f2f448e677da243aed2046c864db4dd\nNONCE: e0e01fea2c7c412f6365486b8859d1955075d82f68fb217047db274042d5fec731765541c2111e2ebd17894fd38b82cfadaa34c16526c1bc2efd3b8d6eacd7c4643da5288f37a0c61e8eebf6da76d641ad4c6545c0d7a7d4ae4a23373687e08b8e2d9c457ceff49947bf59e96db4f7304665584d22a0bc858a49721987afa904\nIN: 07a1024ae506ac70abb723c606eea5f6df328195c2f5a3fb629dd2813251abc7d3874deccca999", "44caefcb83f5bbbf36566807\nAD: be09b05e89a7e910f21607bed4e950d120e9d935c715023febdcd4639de7e440189aac53009cfbcd2acb230688abca97165943c65b1e8ed24ca72c4b57084e0610040929b918922d0f1b8a0d25c8cce46889add73b0b6d8a89bf\nCT: 15e4f0f567861361eb342ca281bf1b860f6681b33ba7c547682c4e92d48805cccce12b4be0c3b13af464fba9e79c561e3f0f00\nTAG: e7a6dfb2\n\nKEY: c35b35f68743e2e4f88bb48059f2e21b\nNONCE: 2dfae4843d58be3cc005915c357c5bdfaf7c4e7817e0164b123ec1ad08187269c323568f2bb80c50100b0de276dee9c81ba98801b848bdfdd6185a1926b3eb6adf1df193a6609932a150e0eeee08ee58d3027c712cc729abf9e7bfd3d5b328aa2887109b606704cee0455bf7135a3b4179c8aa86ac31e5e3209c04921975fb83\nIN: b1f1dd264e4f26da74f839728cf70743ef435c016a6549b17b70ac93ac37b0e97bbc3fd092dc07f2b020527b781a38f8d2687c\nAD: 65556a625bfa8b96e71ab5eca7bacb87c9140828b8605d9f3e441628d76281d5a5aca1fec44f038162977cff46d64f965bc4f94214fc63cc56c496aa9aca5adb855faef1f54123633a5d4dc367ab3cceb0c9e42eff3d981945d6\nCT: dabfba195ac7f737153810c3b6db598e2e346af941108f6535b3cbd389428280daf4d86b78148197fd6e0831434a0fdda3bf93\nTAG: c85e1c09\n\nKEY: f6e086357ed6cb07dbb463aa500ae69c\nNONCE: 15b56fb043a72881081a72bce9298e21fe60aeaf1e4b4a85bde873930adecb48d4c8f17362aef0cdf2c3bbbdbc00ce29669b633f181bfcb85c44511c5754ca07595dbdcd335b0078ebf8b09f5190096a9078259168b5a5e1b79211b62d8f0c306e5a0c4e81ea0c6c78e63f5529b633c28494c6f0a42ffe51be150df24aed1602\nIN: fe49c833bfcb93c401b3483d7c7fc9fdaaf3a2146bcc36e0ffe37ef1ac6ce855d0fad3675c9c9fe7cb908589cddf43c4c35421\nAD: b3f36b821f294d33a90c4675aba4b32f32abc3683843ad1689acf130a43a3b21b3473d3a6c7cccecd4c767a7682a26fc524eb6c9688719acfd708c304d3db201b662f48610cbb6c1ae521f00de7904d668b95b812be2b4298807\nCT: e56f27f5aea684a8421f1d559b56d80b3790cf3fbb5cd309f2866ae628c8196605edaca9be512cf6a42e53aca4478405a95d6a\nTAG: d2d608be\n\nKEY: 0dbefe872ed2ea2a964fe991541ae834\nNONCE: 82f382aee615f224677e876367268b31c89981e816c7c5a5ed1c7fa50370ce6a6e13dc2d1ffefef5d317302e22874d28fc67e0cf4d6fdbf1b5c8ff5645256378eca8426454ea600376aadf02d17bc171e40faa2e62530235063e73ac50d06c2a88d9e5e35739cffe8ac70aa2c4f4e00716052f823e0dcdd2b4b5afacbc79f4c1\nIN: 8445831a7b481e187978afbf195eb65eac1ebf3acf1fa452da79248ea484c9bc00d233c2e3b827de9b46bad3726c315080ca7f\nAD: 72caa4d008c9f7f9667fb98501c7e44972f491a8723db27e4a404d377cb4456234f9b56b9235087e25016e00cc6e6be08de7d8739a546db4a78407cc9200404332955a3c68d1f3c6bebf9c74d2e9bc54dc1c56c6b62c72bad6d0\nCT: 800fa98daa36955ab30dd4044756cccf382210a6548069d2f740094c29bdd10ba9bb0db0ca7a7db5fdaf2217c59ff5e0bce136\nTAG: fbc8e65c\n\nKEY: 92666e547ca6722278bc41f78c606014\nNONCE: 2e9733e8dc10ca3964e96b56839fbce9969f5f821fdf2f278e5465b6cf3fac8ed407d04b602209a0c97c14b710f6a3f29f65a1599869139f8061824745ad4470406956d3018eec8ff2584164db279a5a5f724030fa8478e7dacb949e473dee12332fd611bd66b06faa380b57b530a5cac30f3aacd607233c22460240edad253d\nIN: 97ce2ebd1850551b96813179b2bad2270eccf7195fe70273c9b4045e68a501781e47f808cb248326cb6425635db1d516ec760f\nAD: 20d0f02f1346ed9c8a697a5b507ed482033a177d4a71bd694b1533e94b72aaf54e48be64b6f7a30b2c6e94a00159ad60ce84d677d035790591a00e8068275e5caebe185bdb14ad24ab41e8fa3d0f4e19f57a390707efcd191cd0\nCT: 44af16eb4079f52009592436a0f1d7373a992fb5679c048466804495b9e1264e8292afe33c2661e30d3c2fedab5963bf0c63f5\nTAG: 917b6024\n\nKEY: d3f7d84e2a2f2e45e19e7dd4432f6cbb\nNONCE: bf1b1afa5c28d0f6883a12a4eb984ee8edd3c75e91d44628eb1133bad58506285961fd3d2d3f671788895a55824022c4b5a2ee0e470124c9b7cc00d6082e95991deedff69e366e9eb96a9e814e58e89c58abb224dc13d78db68797bbccdacf082f8563cc4c40137203c206476668482d51eee902c7e3344e7355ac18b61d3e1a\nIN: e02d21da508ab1157ec2aee2c18a924a34b84d7746bba79da3662402c111d686fb5f50a8831f01623e1b22f1a79b2cd014d715\nAD: 951ea13d95700d0c97e12df456280532ef86260307cf95375211b7fb44c3eb50ddeb5ef350714ac2c620ef8f66eb0da1796915400210568360d571e58de7d30e06b812112069667370376812e4e593362226997fe2947ded6371\nCT: d948b5f4f415423b656abf715c9fc756f90117f694b32961fa8f4bf003cffd463716644eef0ce5919dca38788e0df24a7d1367\nTAG: 19a23818\n\nKEY: 357e9c3ab5323ff141bdf17228b80a61\nNONCE: de8cd40a5db81e8b7083807a8a5c16d4808f48c52a56c68b77edb01b563f80513518eac2672c8f5524aa6e3850337233c693dec99a547cf6599dc33a6d89763e5f91d9a74715c9a635ed1931403b2fbec8be85f287506ed4bd7da3c6e2b25e29becf9466f4abdf3b0daa4818a7f31563fb5be7aba7cbd53c6522331fc04d4573\nIN: 995142af8870fd1c805aa9919f76485dc1fed5ead1e8366633ef09db5595c1a305bd10d945409148744d3998aba6434172087f\nAD: 863ebc2231af641f620f618567007847057146db69b1066dc1c4464d251729eb6ea3871d3e997e71a963439e9d81691a7196ddd439748e795a2cc62b8382a61e79863259cb643851f9a271130e0f9f54e15f0dc3ec8b27084c39\nCT: fc12b78280d4a9eef7d536f2f5b3b3d63cf641e07f6b91332b9200d224632c5b1ee41ee136693bf0c26d569e998d9a09ad24f8\nTAG: c0f7d0e6\n\nKEY: 0e00c76561d2bd9b40c3c15427e2b08f\nNONCE: 492cadaccd3ca3fbc9cf9f06eb3325c4e159850b0dbe98199b89b7af528806610b6f63998e1eae80c348e74cbb921d8326631631fc6a5d304f39166daf7ea15fa1977f101819adb510b50fe9932e12c5a85aa3fd1e73d8d760af218be829903a77c63359d75edd91b4f6ed5465a72662f5055999e059e7654a8edc921aa0d496\nIN: fef03c2d7fb15bf0d2df18007d99f967c878ad59359034f7bb2c19af120685d78e32f6b8b83b032019956ca9c0195721476b85\nAD: d8f1163d8c840292a2b2dacf4ac7c36aff8733f18fabb4fa5594544125e03d1e6e5d6d0fd61656c8d8f327c92839ae5539bb469c9257f109ebff85aad7bd220fdaa95c022dbd0c7bb2d878ad504122c943045d3c5eba8f1f56c0\nCT: 4f6cf471be7cbd2575cd5a1747aea8fe9dea83e51936beac3e68f66206922060c697ffa7af80ad6bb68f2cf4fc97416ee52abe\nTAG: e20b6655\n\n", }; -static const size_t kLen23 = 154319; +static const size_t kLen24 = 154319; -static const char *kData23[] = { +static const char *kData24[] = { "# Generated by \"make_cavp -cipher=aes -extra-labels=Cipher=AES-192-CBC kat_aes/CBCGFSbox192.rsp kat_aes/CBCKeySbox192.rsp kat_aes/CBCVarKey192.rsp kat_aes/CBCVarTxt192.rsp\"\n\n# File 1: kat_aes/CBCGFSbox192.rsp\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 1b077a6af4b7f98229de786d7516b639\nCiphertext: 275cfc0413d8ccb70513c3859b1d0f72\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 9c2d8842e5f48f57648205d39a239af1\nCiphertext: c9b8135ff1b5adc413dfd053b21bd96d\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: bff52510095f518ecca60af4205444bb\nCiphertext: 4a3650c3371ce2eb35e389a171427440\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 51719783d3185a535bd75adc65071ce1\nCiphertext: 4f354592ff7c8847d2d0870ca9481b7c\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 26aa49dcfe7629a8901a69a9914e6dfd\nCiphertext: d5e08bf9a182e857cf40b3a36ee248cc\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 941a4773058224e1ef66d10e0a6ee782\nCiphertext: 067cd9d3749207791841562507fa9626\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 275cfc0413d8ccb70513c3859b1d0f72\nPlaintext: 1b077a6af4b7f98229de786d7516b639\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c9b8135ff1b5adc413dfd053b21bd96d\nPlaintext: 9c2d8842e5f48f57648205d39a239af1\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4a3650c3371ce2eb35e389a171427440\nPlaintext: bff52510095f518ecca60af4205444bb\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4f354592ff7c8847d2d0870ca9481b7c\nPlaintext: 51719783d3185a535bd75adc65071ce1\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d5e08bf9a182e857cf40b3a36ee248cc\nPlaintext: 26aa49dcfe7629a8901a69a9914e6dfd\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 067cd9d3749207791841562507fa9626\nPlaintext: 941a4773058224e1ef66d10e0a6ee782\n\n# File 2: kat_aes/CBCKeySbox192.rsp\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0956259c9cd5cfd0181cca53380cde06\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 15d20f6ebc7e649fd95b76b107e6daba967c8a9484797f29\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8e4e18424e591a3d5b6f0876f16f8594\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: a8a282ee31c03fae4f8e9b8930d5473c2ed695a347e88b7c\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 93f3270cfc877ef17e106ce938979cb0\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: cd62376d5ebb414917f0c78f05266433dc9192a1ec943300\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7f6c25ff41858561bb62f36492e93c29\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 502a6ab36984af268bf423c7f509205207fc1552af4a91e5\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8e06556dcbb00b809a025047cff2a940\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 25a39dbfd8034f71a81f9ceb55026e4037f8f6aa30ab44ce\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3608c344868e94555d23a120f8a5502d\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: e08c15411774ec4a908b64eadc6ac4199c7cd453f3aaef53\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 77da2021935b840b7f5dcc39132da9e5\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 3b375a1ff7e8d44409696e6326ec9dec86138e2ae010b980\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3b7c24f825e3bf9873c9f14d39a0e6f4\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 950bb9f22cc35be6fe79f52c320af93dec5bc9c0c2f9cd53\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 64ebf95686b353508c90ecd8b6134316\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 7001c487cc3e572cfc92f4d0e697d982e8856fdcc957da40\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ff558c5d27210b7929b73fc708eb4cf1\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: f029ce61d4e5a405b41ead0a883cc6a737da2cf50a6c92ae\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a2c3b2a818075490a7b4c14380f02702\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 61257134a518a0d57d9d244d45f6498cbc32f2bafc522d79\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: cfe4d74002696ccf7d87b14a2f9cafc9\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: b0ab0a6a818baef2d11fa33eac947284fb7d748cfb75e570\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d2eafd86f63b109b91f5dbb3a3fb7e13\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ee053aa011c8b428cdcc3636313c54d6a03cac01c71579d6\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9b9fdd1c5975655f539998b306a324af\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: d2926527e0aa9f37b45e2ec2ade5853ef807576104c7ace3\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: dd619e1cf204446112e0af2b9afa8f8c\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 982215f4e173dfa0fcffe5d3da41c4812c7bcc8ed3540f93\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d4f0aae13c8fe9339fbf9e69ed0ad74d\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 98c6b8e01e379fbd14e61af6af891596583565f2a27d59e9\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 19c80ec4a6deb7e5ed1033dda933498f\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: b3ad5cea1dddc214ca969ac35f37dae1a9a9d1528f89bb35\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3cf5e1d21a17956d1dffad6a7c41c659\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 45899367c3132849763073c435a9288a766c8b9ec2308516\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 69fd12e8505f8ded2fdcb197a121b362\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ec250e04c3903f602647b85a401a1ae7ca2f02f67fa4253e\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8aa584e2cc4d17417a97cb9a28ba29c8\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: d077a03bd8a38973928ccafe4a9d2f455130bd0af5ae46a9\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: abc786fb1edb504580c4d882ef29a0c7\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: d184c36cf0dddfec39e654195006022237871a47c33d3198\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2e19fb60a3e1de0166f483c97824a978\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 4c6994ffa9dcdc805b60c2c0095334c42d95a8fc0ca5b080\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7656709538dd5fec41e0ce6a0f8e207d\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: c88f5b00a4ef9a6840e2acaf33f00a3bdc4e25895303fa72\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a67cf333b314d411d3c0ae6e1cfcd8f5\n\nCipher: AES-192-CBC\nOpera", "tion: DECRYPT\nKey: e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd\nIV: 00000000000000000000000000000000\nCiphertext: 0956259c9cd5cfd0181cca53380cde06\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 15d20f6ebc7e649fd95b76b107e6daba967c8a9484797f29\nIV: 00000000000000000000000000000000\nCiphertext: 8e4e18424e591a3d5b6f0876f16f8594\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: a8a282ee31c03fae4f8e9b8930d5473c2ed695a347e88b7c\nIV: 00000000000000000000000000000000\nCiphertext: 93f3270cfc877ef17e106ce938979cb0\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: cd62376d5ebb414917f0c78f05266433dc9192a1ec943300\nIV: 00000000000000000000000000000000\nCiphertext: 7f6c25ff41858561bb62f36492e93c29\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 502a6ab36984af268bf423c7f509205207fc1552af4a91e5\nIV: 00000000000000000000000000000000\nCiphertext: 8e06556dcbb00b809a025047cff2a940\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 25a39dbfd8034f71a81f9ceb55026e4037f8f6aa30ab44ce\nIV: 00000000000000000000000000000000\nCiphertext: 3608c344868e94555d23a120f8a5502d\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: e08c15411774ec4a908b64eadc6ac4199c7cd453f3aaef53\nIV: 00000000000000000000000000000000\nCiphertext: 77da2021935b840b7f5dcc39132da9e5\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 3b375a1ff7e8d44409696e6326ec9dec86138e2ae010b980\nIV: 00000000000000000000000000000000\nCiphertext: 3b7c24f825e3bf9873c9f14d39a0e6f4\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 950bb9f22cc35be6fe79f52c320af93dec5bc9c0c2f9cd53\nIV: 00000000000000000000000000000000\nCiphertext: 64ebf95686b353508c90ecd8b6134316\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 7001c487cc3e572cfc92f4d0e697d982e8856fdcc957da40\nIV: 00000000000000000000000000000000\nCiphertext: ff558c5d27210b7929b73fc708eb4cf1\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: f029ce61d4e5a405b41ead0a883cc6a737da2cf50a6c92ae\nIV: 00000000000000000000000000000000\nCiphertext: a2c3b2a818075490a7b4c14380f02702\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 61257134a518a0d57d9d244d45f6498cbc32f2bafc522d79\nIV: 00000000000000000000000000000000\nCiphertext: cfe4d74002696ccf7d87b14a2f9cafc9\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: b0ab0a6a818baef2d11fa33eac947284fb7d748cfb75e570\nIV: 00000000000000000000000000000000\nCiphertext: d2eafd86f63b109b91f5dbb3a3fb7e13\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: ee053aa011c8b428cdcc3636313c54d6a03cac01c71579d6\nIV: 00000000000000000000000000000000\nCiphertext: 9b9fdd1c5975655f539998b306a324af\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: d2926527e0aa9f37b45e2ec2ade5853ef807576104c7ace3\nIV: 00000000000000000000000000000000\nCiphertext: dd619e1cf204446112e0af2b9afa8f8c\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 982215f4e173dfa0fcffe5d3da41c4812c7bcc8ed3540f93\nIV: 00000000000000000000000000000000\nCiphertext: d4f0aae13c8fe9339fbf9e69ed0ad74d\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 98c6b8e01e379fbd14e61af6af891596583565f2a27d59e9\nIV: 00000000000000000000000000000000\nCiphertext: 19c80ec4a6deb7e5ed1033dda933498f\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: b3ad5cea1dddc214ca969ac35f37dae1a9a9d1528f89bb35\nIV: 00000000000000000000000000000000\nCiphertext: 3cf5e1d21a17956d1dffad6a7c41c659\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 45899367c3132849763073c435a9288a766c8b9ec2308516\nIV: 00000000000000000000000000000000\nCiphertext: 69fd12e8505f8ded2fdcb197a121b362\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: ec250e04c3903f602647b85a401a1ae7ca2f02f67fa4253e\nIV: 00000000000000000000000000000000\nCiphertext: 8aa584e2cc4d17417a97cb9a28ba29c8\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: d077a03bd8a38973928ccafe4a9d2f455130bd0af5ae46a9\nIV: 00000000000000000000000000000000\nCiphertext: abc786fb1edb504580c4d882ef29a0c7\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: d184c36cf0dddfec39e654195006022237871a47c33d3198\nIV: 00000000000000000000000000000000\nCiphertext: 2e19fb60a3e1de0166f483c97824a978\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 4c6994ffa9dcdc805b60c2c0095334c42d95a8fc0ca5b080\nIV: 00000000000000000000000000000000\nCiphertext: 7656709538dd5fec41e0ce6a0f8e207d\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: c88f5b00a4ef9a6840e2acaf33f00a3bdc4e25895303fa72\nIV: 00000000000000000000000000000000\nCiphertext: a67cf333b314d411d3c0ae6e1cfcd8f5\nPlaintext: 00000000000000000000000000000000\n\n# File 3: kat_aes/CBCVarKey192.rsp\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: 800000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: de885dc87f5a92594082d02cc1e1b42c\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: c00000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 132b074e80f2a597bf5febd8ea5da55e\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: e00000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6eccedf8de592c22fb81347b79f2db1f\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: f00000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 180b09f267c45145db2f826c2582d35c\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: f80000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: edd807ef7652d7eb0e13c8b5e15b3bc0\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fc0000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9978bcf8dd8fd72241223ad24b31b8a4\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fe0000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5310f654343e8f27e12c83a48d24ff81\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ff0000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 833f71258d53036b02952c76c744f5a1\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ff8000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: eba83ff200cff9318a92f8691a06b09f\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffc000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ff620ccbe9f3292abdf2176b09f04eba\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffe000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7ababc4b3f516c9aafb35f4140b548f9\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fff000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: aa187824d9c4582b0916493ecbde8c57\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fff800000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1c0ad553177fd5ea1092c9d626a29dc4\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKe", "y: fffc00000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a5dc46c37261194124ecaebd680408ec\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffe00000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e4f2f2ae23e9b10bacfa58601531ba54\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffff00000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b7d67cf1a1e91e8ff3a57a172c7bf412\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffff80000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 26706be06967884e847d137128ce47b3\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffc0000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b2f8b409b0585909aad3a7b5a219072a\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffe0000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5e4b7bff0290c78344c54a23b722cd20\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffff0000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 07093657552d4414227ce161e9ebf7dd\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffff8000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e1af1e7d8bc225ed4dffb771ecbb9e67\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffc000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ef6555253635d8432156cfd9c11b145a\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffe000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: fb4035074a5d4260c90cbd6da6c3fceb\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffff000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 446ee416f9ad1c103eb0cc96751c88e1\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffff800000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 198ae2a4637ac0a7890a8fd1485445c9\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffc00000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 562012ec8faded0825fb2fa70ab30cbd\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffe00000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: cc8a64b46b5d88bf7f247d4dbaf38f05\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffff00000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a168253762e2cc81b42d1e5001762699\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffff80000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1b41f83b38ce5032c6cd7af98cf62061\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffc0000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 61a89990cd1411750d5fb0dc988447d4\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffe0000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b5accc8ed629edf8c68a539183b1ea82\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffff0000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b16fa71f846b81a13f361c43a851f290\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffff8000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4fad6efdff5975aee7692234bcd54488\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffc000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ebfdb05a783d03082dfe5fdd80a00b17\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffe000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: eb81b584766997af6ba5529d3bdd8609\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffff000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0cf4ff4f49c8a0ca060c443499e29313\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffff800000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: cc4ba8a8e029f8b26d8afff9df133bb6\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffffc00000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: fefebf64360f38e4e63558f0ffc550c3\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffffe00000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 12ad98cbf725137d6a8108c2bed99322\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffff00000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6afaa996226198b3e2610413ce1b3f78\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffff80000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2a8ce6747a7e39367828e290848502d9\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffffc0000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 223736e8b8f89ca1e37b6deab40facf1\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffffe0000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c0f797e50418b95fa6013333917a9480\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffffff0000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a758de37c2ece2a02c73c01fedc9a132\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffffff8000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3a9b87ae77bae706803966c66c73adbd\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffffffc000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d365ab8df8ffd782e358121a4a4fc541\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: fffffffffffe000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c8dcd9e6f75e6c36c8daee0466f0ed74\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffffff000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c79a637beb1c0304f14014c037e736dd\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffffff800000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 105f0a25e84ac930d996281a5f954dd9\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffffffc00000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 42e4074b2927973e8d17ffa92f7fe615\n\nCipher: AES-192-CBC\nOperation: ENCRYPT\nKey: ffffffffffffe00000000000000000000000000000000000\n", @@ -1536,9 +1616,9 @@ static const char *kData23[] = { "0000\nCiphertext: 0882a16f44088d42447a29ac090ec17e\nPlaintext: fffffffffffffff00000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3a3c15bfc11a9537c130687004e136ee\nPlaintext: fffffffffffffff80000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 22c0a7678dc6d8cf5c8a6d5a9960767c\nPlaintext: fffffffffffffffc0000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b46b09809d68b9a456432a79bdc2e38c\nPlaintext: fffffffffffffffe0000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 93baaffb35fbe739c17c6ac22eecf18f\nPlaintext: ffffffffffffffff0000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c8aa80a7850675bc007c46df06b49868\nPlaintext: ffffffffffffffff8000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 12c6f3877af421a918a84b775858021d\nPlaintext: ffffffffffffffffc000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 33f123282c5d633924f7d5ba3f3cab11\nPlaintext: ffffffffffffffffe000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a8f161002733e93ca4527d22c1a0c5bb\nPlaintext: fffffffffffffffff000000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b72f70ebf3e3fda23f508eec76b42c02\nPlaintext: fffffffffffffffff800000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6a9d965e6274143f25afdcfc88ffd77c\nPlaintext: fffffffffffffffffc00000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a0c74fd0b9361764ce91c5200b095357\nPlaintext: fffffffffffffffffe00000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 091d1fdc2bd2c346cd5046a8c6209146\nPlaintext: ffffffffffffffffff00000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e2a37580116cfb71856254496ab0aca8\nPlaintext: ffffffffffffffffff80000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e0b3a00785917c7efc9adba322813571\nPlaintext: ffffffffffffffffffc0000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 733d41f4727b5ef0df4af4cf3cffa0cb\nPlaintext: ffffffffffffffffffe0000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a99ebb030260826f981ad3e64490aa4f\nPlaintext: fffffffffffffffffff0000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 73f34c7d3eae5e80082c1647524308ee\nPlaintext: fffffffffffffffffff8000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 40ebd5ad082345b7a2097ccd3464da02\nPlaintext: fffffffffffffffffffc000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7cc4ae9a424b2cec90c97153c2457ec5\nPlaintext: fffffffffffffffffffe000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 54d632d03aba0bd0f91877ebdd4d09cb\nPlaintext: ffffffffffffffffffff000000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d3427be7e4d27cd54f5fe37b03cf0897\nPlaintext: ffffffffffffffffffff800000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b2099795e88cc158fd75ea133d7e7fbe\nPlaintext: ffffffffffffffffffffc00000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a6cae46fb6fadfe7a2c302a34242817b\nPlaintext: ffffffffffffffffffffe00000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 026a7024d6a902e0b3ffccbaa910cc3f\nPlaintext: fffffffffffffffffffff00000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 156f07767a85a4312321f63968338a01\nPlaintext: fffffffffffffffffffff80000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 15eec9ebf42b9ca76897d2cd6c5a12e2\nPlaintext: fffffffffffffffffffffc0000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: db0d3a6fdcc13f915e2b302ceeb70fd8\nPlaintext: fffffffffffffffffffffe0000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 71dbf37e87a2e34d15b20e8f10e48924\nPlaintext: ffffffffffffffffffffff0000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c745c451e96ff3c045e4367c833e3b54\nPlaintext: ffffffffffffffffffffff8000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 340da09c2dd11c3b679d08ccd27dd595\nPlaintext: ffffffffffffffffffffffc000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8279f7c0c2a03ee660c6d392db025d18\nPlaintext: ffffffffffffffffffffffe000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a4b2c7d8eba531ff47c5041a55fbd1ec\nPlaintext: fffffffffffffffffffffff000000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 74569a2ca5a7bd5131ce8dc7cbfbf72f\nPlaintext: fffffffffffffffffffffff800000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3713da0c0219b63454035613b5a403dd\nPlaintext: fffffffffffffffffffffffc00000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8827551ddcc9df23fa72a3de4e9f0b07\nPlaintext: fffffffffffffffffffffffe00000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2e3febfd625bfcd0a2c06eb460da1732\nPlaintext: ffffffffffffffffffffffff00000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ee82e6ba488156f76496311da6941deb\nPl", "aintext: ffffffffffffffffffffffff80000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4770446f01d1f391256e85a1b30d89d3\nPlaintext: ffffffffffffffffffffffffc0000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: af04b68f104f21ef2afb4767cf74143c\nPlaintext: ffffffffffffffffffffffffe0000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: cf3579a9ba38c8e43653173e14f3a4c6\nPlaintext: fffffffffffffffffffffffff0000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b3bba904f4953e09b54800af2f62e7d4\nPlaintext: fffffffffffffffffffffffff8000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: fc4249656e14b29eb9c44829b4c59a46\nPlaintext: fffffffffffffffffffffffffc000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9b31568febe81cfc2e65af1c86d1a308\nPlaintext: fffffffffffffffffffffffffe000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9ca09c25f273a766db98a480ce8dfedc\nPlaintext: ffffffffffffffffffffffffff000000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b909925786f34c3c92d971883c9fbedf\nPlaintext: ffffffffffffffffffffffffff800000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 82647f1332fe570a9d4d92b2ee771d3b\nPlaintext: ffffffffffffffffffffffffffc00000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3604a7e80832b3a99954bca6f5b9f501\nPlaintext: ffffffffffffffffffffffffffe00000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 884607b128c5de3ab39a529a1ef51bef\nPlaintext: fffffffffffffffffffffffffff00000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 670cfa093d1dbdb2317041404102435e\nPlaintext: fffffffffffffffffffffffffff80000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7a867195f3ce8769cbd336502fbb5130\nPlaintext: fffffffffffffffffffffffffffc0000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 52efcf64c72b2f7ca5b3c836b1078c15\nPlaintext: fffffffffffffffffffffffffffe0000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4019250f6eefb2ac5ccbcae044e75c7e\nPlaintext: ffffffffffffffffffffffffffff0000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 022c4f6f5a017d292785627667ddef24\nPlaintext: ffffffffffffffffffffffffffff8000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e9c21078a2eb7e03250f71000fa9e3ed\nPlaintext: ffffffffffffffffffffffffffffc000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a13eaeeb9cd391da4e2b09490b3e7fad\nPlaintext: ffffffffffffffffffffffffffffe000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c958a171dca1d4ed53e1af1d380803a9\nPlaintext: fffffffffffffffffffffffffffff000\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 21442e07a110667f2583eaeeee44dc8c\nPlaintext: fffffffffffffffffffffffffffff800\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 59bbb353cf1dd867a6e33737af655e99\nPlaintext: fffffffffffffffffffffffffffffc00\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 43cd3b25375d0ce41087ff9fe2829639\nPlaintext: fffffffffffffffffffffffffffffe00\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6b98b17e80d1118e3516bd768b285a84\nPlaintext: ffffffffffffffffffffffffffffff00\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ae47ed3676ca0c08deea02d95b81db58\nPlaintext: ffffffffffffffffffffffffffffff80\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 34ec40dc20413795ed53628ea748720b\nPlaintext: ffffffffffffffffffffffffffffffc0\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4dc68163f8e9835473253542c8a65d46\nPlaintext: ffffffffffffffffffffffffffffffe0\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2aabb999f43693175af65c6c612c46fb\nPlaintext: fffffffffffffffffffffffffffffff0\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e01f94499dac3547515c5b1d756f0f58\nPlaintext: fffffffffffffffffffffffffffffff8\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9d12435a46480ce00ea349f71799df9a\nPlaintext: fffffffffffffffffffffffffffffffc\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: cef41d16d266bdfe46938ad7884cc0cf\nPlaintext: fffffffffffffffffffffffffffffffe\n\nCipher: AES-192-CBC\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b13db4da1f718bc6904797c82bcf2d32\nPlaintext: ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen24 = 154338; +static const size_t kLen25 = 154338; -static const char *kData24[] = { +static const char *kData25[] = { "# Generated by \"make_cavp -cipher=aes -extra-labels=Cipher=AES-192-CTR -swap-iv-plaintext kat_aes/CBCGFSbox192.rsp kat_aes/CBCKeySbox192.rsp kat_aes/CBCVarKey192.rsp kat_aes/CBCVarTxt192.rsp\"\n\n# File 1: kat_aes/CBCGFSbox192.rsp\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 1b077a6af4b7f98229de786d7516b639\nCiphertext: 275cfc0413d8ccb70513c3859b1d0f72\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 9c2d8842e5f48f57648205d39a239af1\nCiphertext: c9b8135ff1b5adc413dfd053b21bd96d\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: bff52510095f518ecca60af4205444bb\nCiphertext: 4a3650c3371ce2eb35e389a171427440\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 51719783d3185a535bd75adc65071ce1\nCiphertext: 4f354592ff7c8847d2d0870ca9481b7c\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 26aa49dcfe7629a8901a69a9914e6dfd\nCiphertext: d5e08bf9a182e857cf40b3a36ee248cc\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 941a4773058224e1ef66d10e0a6ee782\nCiphertext: 067cd9d3749207791841562507fa9626\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 275cfc0413d8ccb70513c3859b1d0f72\nIV: 1b077a6af4b7f98229de786d7516b639\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c9b8135ff1b5adc413dfd053b21bd96d\nIV: 9c2d8842e5f48f57648205d39a239af1\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4a3650c3371ce2eb35e389a171427440\nIV: bff52510095f518ecca60af4205444bb\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4f354592ff7c8847d2d0870ca9481b7c\nIV: 51719783d3185a535bd75adc65071ce1\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d5e08bf9a182e857cf40b3a36ee248cc\nIV: 26aa49dcfe7629a8901a69a9914e6dfd\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 067cd9d3749207791841562507fa9626\nIV: 941a4773058224e1ef66d10e0a6ee782\n\n# File 2: kat_aes/CBCKeySbox192.rsp\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0956259c9cd5cfd0181cca53380cde06\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 15d20f6ebc7e649fd95b76b107e6daba967c8a9484797f29\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8e4e18424e591a3d5b6f0876f16f8594\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: a8a282ee31c03fae4f8e9b8930d5473c2ed695a347e88b7c\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 93f3270cfc877ef17e106ce938979cb0\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: cd62376d5ebb414917f0c78f05266433dc9192a1ec943300\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7f6c25ff41858561bb62f36492e93c29\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 502a6ab36984af268bf423c7f509205207fc1552af4a91e5\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8e06556dcbb00b809a025047cff2a940\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 25a39dbfd8034f71a81f9ceb55026e4037f8f6aa30ab44ce\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3608c344868e94555d23a120f8a5502d\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: e08c15411774ec4a908b64eadc6ac4199c7cd453f3aaef53\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 77da2021935b840b7f5dcc39132da9e5\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 3b375a1ff7e8d44409696e6326ec9dec86138e2ae010b980\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3b7c24f825e3bf9873c9f14d39a0e6f4\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 950bb9f22cc35be6fe79f52c320af93dec5bc9c0c2f9cd53\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 64ebf95686b353508c90ecd8b6134316\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 7001c487cc3e572cfc92f4d0e697d982e8856fdcc957da40\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ff558c5d27210b7929b73fc708eb4cf1\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: f029ce61d4e5a405b41ead0a883cc6a737da2cf50a6c92ae\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a2c3b2a818075490a7b4c14380f02702\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 61257134a518a0d57d9d244d45f6498cbc32f2bafc522d79\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: cfe4d74002696ccf7d87b14a2f9cafc9\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: b0ab0a6a818baef2d11fa33eac947284fb7d748cfb75e570\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d2eafd86f63b109b91f5dbb3a3fb7e13\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ee053aa011c8b428cdcc3636313c54d6a03cac01c71579d6\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9b9fdd1c5975655f539998b306a324af\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: d2926527e0aa9f37b45e2ec2ade5853ef807576104c7ace3\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: dd619e1cf204446112e0af2b9afa8f8c\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 982215f4e173dfa0fcffe5d3da41c4812c7bcc8ed3540f93\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d4f0aae13c8fe9339fbf9e69ed0ad74d\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 98c6b8e01e379fbd14e61af6af891596583565f2a27d59e9\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 19c80ec4a6deb7e5ed1033dda933498f\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: b3ad5cea1dddc214ca969ac35f37dae1a9a9d1528f89bb35\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3cf5e1d21a17956d1dffad6a7c41c659\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 45899367c3132849763073c435a9288a766c8b9ec2308516\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 69fd12e8505f8ded2fdcb197a121b362\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ec250e04c3903f602647b85a401a1ae7ca2f02f67fa4253e\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8aa584e2cc4d17417a97cb9a28ba29c8\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: d077a03bd8a38973928ccafe4a9d2f455130bd0af5ae46a9\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: abc786fb1edb504580c4d882ef29a0c7\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: d184c36cf0dddfec39e654195006022237871a47c33d3198\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2e19fb60a3e1de0166f483c97824a978\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 4c6994ffa9dcdc805b60c2c0095334c42d95a8fc0ca5b080\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7656709538dd5fec41e0ce6a0f8e207d\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: c88f5b00a4ef9a6840e2acaf33f00a3bdc4e25895303fa72\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a67cf333b314d411d3c0ae6e1cfcd8f5\n\nCipher", ": AES-192-CTR\nOperation: DECRYPT\nKey: e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0956259c9cd5cfd0181cca53380cde06\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 15d20f6ebc7e649fd95b76b107e6daba967c8a9484797f29\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8e4e18424e591a3d5b6f0876f16f8594\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: a8a282ee31c03fae4f8e9b8930d5473c2ed695a347e88b7c\nPlaintext: 00000000000000000000000000000000\nCiphertext: 93f3270cfc877ef17e106ce938979cb0\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: cd62376d5ebb414917f0c78f05266433dc9192a1ec943300\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7f6c25ff41858561bb62f36492e93c29\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 502a6ab36984af268bf423c7f509205207fc1552af4a91e5\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8e06556dcbb00b809a025047cff2a940\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 25a39dbfd8034f71a81f9ceb55026e4037f8f6aa30ab44ce\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3608c344868e94555d23a120f8a5502d\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: e08c15411774ec4a908b64eadc6ac4199c7cd453f3aaef53\nPlaintext: 00000000000000000000000000000000\nCiphertext: 77da2021935b840b7f5dcc39132da9e5\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 3b375a1ff7e8d44409696e6326ec9dec86138e2ae010b980\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3b7c24f825e3bf9873c9f14d39a0e6f4\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 950bb9f22cc35be6fe79f52c320af93dec5bc9c0c2f9cd53\nPlaintext: 00000000000000000000000000000000\nCiphertext: 64ebf95686b353508c90ecd8b6134316\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 7001c487cc3e572cfc92f4d0e697d982e8856fdcc957da40\nPlaintext: 00000000000000000000000000000000\nCiphertext: ff558c5d27210b7929b73fc708eb4cf1\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: f029ce61d4e5a405b41ead0a883cc6a737da2cf50a6c92ae\nPlaintext: 00000000000000000000000000000000\nCiphertext: a2c3b2a818075490a7b4c14380f02702\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 61257134a518a0d57d9d244d45f6498cbc32f2bafc522d79\nPlaintext: 00000000000000000000000000000000\nCiphertext: cfe4d74002696ccf7d87b14a2f9cafc9\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: b0ab0a6a818baef2d11fa33eac947284fb7d748cfb75e570\nPlaintext: 00000000000000000000000000000000\nCiphertext: d2eafd86f63b109b91f5dbb3a3fb7e13\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: ee053aa011c8b428cdcc3636313c54d6a03cac01c71579d6\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9b9fdd1c5975655f539998b306a324af\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: d2926527e0aa9f37b45e2ec2ade5853ef807576104c7ace3\nPlaintext: 00000000000000000000000000000000\nCiphertext: dd619e1cf204446112e0af2b9afa8f8c\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 982215f4e173dfa0fcffe5d3da41c4812c7bcc8ed3540f93\nPlaintext: 00000000000000000000000000000000\nCiphertext: d4f0aae13c8fe9339fbf9e69ed0ad74d\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 98c6b8e01e379fbd14e61af6af891596583565f2a27d59e9\nPlaintext: 00000000000000000000000000000000\nCiphertext: 19c80ec4a6deb7e5ed1033dda933498f\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: b3ad5cea1dddc214ca969ac35f37dae1a9a9d1528f89bb35\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3cf5e1d21a17956d1dffad6a7c41c659\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 45899367c3132849763073c435a9288a766c8b9ec2308516\nPlaintext: 00000000000000000000000000000000\nCiphertext: 69fd12e8505f8ded2fdcb197a121b362\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: ec250e04c3903f602647b85a401a1ae7ca2f02f67fa4253e\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8aa584e2cc4d17417a97cb9a28ba29c8\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: d077a03bd8a38973928ccafe4a9d2f455130bd0af5ae46a9\nPlaintext: 00000000000000000000000000000000\nCiphertext: abc786fb1edb504580c4d882ef29a0c7\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: d184c36cf0dddfec39e654195006022237871a47c33d3198\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2e19fb60a3e1de0166f483c97824a978\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 4c6994ffa9dcdc805b60c2c0095334c42d95a8fc0ca5b080\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7656709538dd5fec41e0ce6a0f8e207d\nIV: 00000000000000000000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: c88f5b00a4ef9a6840e2acaf33f00a3bdc4e25895303fa72\nPlaintext: 00000000000000000000000000000000\nCiphertext: a67cf333b314d411d3c0ae6e1cfcd8f5\nIV: 00000000000000000000000000000000\n\n# File 3: kat_aes/CBCVarKey192.rsp\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: 800000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: de885dc87f5a92594082d02cc1e1b42c\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: c00000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 132b074e80f2a597bf5febd8ea5da55e\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: e00000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6eccedf8de592c22fb81347b79f2db1f\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: f00000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 180b09f267c45145db2f826c2582d35c\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: f80000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: edd807ef7652d7eb0e13c8b5e15b3bc0\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fc0000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9978bcf8dd8fd72241223ad24b31b8a4\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fe0000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5310f654343e8f27e12c83a48d24ff81\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ff0000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 833f71258d53036b02952c76c744f5a1\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ff8000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: eba83ff200cff9318a92f8691a06b09f\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffc000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ff620ccbe9f3292abdf2176b09f04eba\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffe000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7ababc4b3f516c9aafb35f4140b548f9\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fff000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: aa187824d9c4582b0916493ecbde8c57\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fff800000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1c0ad553177fd5ea1092c9d626a29dc4\n\nCipher: AES-192-CTR\nOp", "eration: ENCRYPT\nKey: fffc00000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a5dc46c37261194124ecaebd680408ec\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffe00000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e4f2f2ae23e9b10bacfa58601531ba54\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffff00000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b7d67cf1a1e91e8ff3a57a172c7bf412\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffff80000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 26706be06967884e847d137128ce47b3\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffc0000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b2f8b409b0585909aad3a7b5a219072a\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffe0000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5e4b7bff0290c78344c54a23b722cd20\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffff0000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 07093657552d4414227ce161e9ebf7dd\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffff8000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e1af1e7d8bc225ed4dffb771ecbb9e67\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffc000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ef6555253635d8432156cfd9c11b145a\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffe000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: fb4035074a5d4260c90cbd6da6c3fceb\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffff000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 446ee416f9ad1c103eb0cc96751c88e1\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffff800000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 198ae2a4637ac0a7890a8fd1485445c9\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffc00000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 562012ec8faded0825fb2fa70ab30cbd\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffe00000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: cc8a64b46b5d88bf7f247d4dbaf38f05\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffff00000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a168253762e2cc81b42d1e5001762699\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffff80000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1b41f83b38ce5032c6cd7af98cf62061\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffc0000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 61a89990cd1411750d5fb0dc988447d4\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffe0000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b5accc8ed629edf8c68a539183b1ea82\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffff0000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b16fa71f846b81a13f361c43a851f290\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffff8000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4fad6efdff5975aee7692234bcd54488\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffc000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ebfdb05a783d03082dfe5fdd80a00b17\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffe000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: eb81b584766997af6ba5529d3bdd8609\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffff000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0cf4ff4f49c8a0ca060c443499e29313\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffff800000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: cc4ba8a8e029f8b26d8afff9df133bb6\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffffc00000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: fefebf64360f38e4e63558f0ffc550c3\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffffe00000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 12ad98cbf725137d6a8108c2bed99322\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffff00000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6afaa996226198b3e2610413ce1b3f78\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffff80000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2a8ce6747a7e39367828e290848502d9\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffffc0000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 223736e8b8f89ca1e37b6deab40facf1\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffffe0000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c0f797e50418b95fa6013333917a9480\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffffff0000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a758de37c2ece2a02c73c01fedc9a132\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffffff8000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3a9b87ae77bae706803966c66c73adbd\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffffffc000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d365ab8df8ffd782e358121a4a4fc541\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: fffffffffffe000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c8dcd9e6f75e6c36c8daee0466f0ed74\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffffff000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: c79a637beb1c0304f14014c037e736dd\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffffff800000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 105f0a25e84ac930d996281a5f954dd9\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffffffc00000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 42e4074b2927973e8d17ffa92f7fe615\n\nCipher: AES-192-CTR\nOperation: ENCRYPT\nKey: ffffffffffffe00000000000000000", @@ -1559,9 +1639,9 @@ static const char *kData24[] = { "000000000000000000000000000000\nCiphertext: 0882a16f44088d42447a29ac090ec17e\nIV: fffffffffffffff00000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3a3c15bfc11a9537c130687004e136ee\nIV: fffffffffffffff80000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 22c0a7678dc6d8cf5c8a6d5a9960767c\nIV: fffffffffffffffc0000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b46b09809d68b9a456432a79bdc2e38c\nIV: fffffffffffffffe0000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 93baaffb35fbe739c17c6ac22eecf18f\nIV: ffffffffffffffff0000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c8aa80a7850675bc007c46df06b49868\nIV: ffffffffffffffff8000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 12c6f3877af421a918a84b775858021d\nIV: ffffffffffffffffc000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 33f123282c5d633924f7d5ba3f3cab11\nIV: ffffffffffffffffe000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a8f161002733e93ca4527d22c1a0c5bb\nIV: fffffffffffffffff000000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b72f70ebf3e3fda23f508eec76b42c02\nIV: fffffffffffffffff800000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6a9d965e6274143f25afdcfc88ffd77c\nIV: fffffffffffffffffc00000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a0c74fd0b9361764ce91c5200b095357\nIV: fffffffffffffffffe00000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 091d1fdc2bd2c346cd5046a8c6209146\nIV: ffffffffffffffffff00000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e2a37580116cfb71856254496ab0aca8\nIV: ffffffffffffffffff80000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e0b3a00785917c7efc9adba322813571\nIV: ffffffffffffffffffc0000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 733d41f4727b5ef0df4af4cf3cffa0cb\nIV: ffffffffffffffffffe0000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a99ebb030260826f981ad3e64490aa4f\nIV: fffffffffffffffffff0000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 73f34c7d3eae5e80082c1647524308ee\nIV: fffffffffffffffffff8000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 40ebd5ad082345b7a2097ccd3464da02\nIV: fffffffffffffffffffc000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7cc4ae9a424b2cec90c97153c2457ec5\nIV: fffffffffffffffffffe000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 54d632d03aba0bd0f91877ebdd4d09cb\nIV: ffffffffffffffffffff000000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d3427be7e4d27cd54f5fe37b03cf0897\nIV: ffffffffffffffffffff800000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b2099795e88cc158fd75ea133d7e7fbe\nIV: ffffffffffffffffffffc00000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a6cae46fb6fadfe7a2c302a34242817b\nIV: ffffffffffffffffffffe00000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 026a7024d6a902e0b3ffccbaa910cc3f\nIV: fffffffffffffffffffff00000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 156f07767a85a4312321f63968338a01\nIV: fffffffffffffffffffff80000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 15eec9ebf42b9ca76897d2cd6c5a12e2\nIV: fffffffffffffffffffffc0000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: db0d3a6fdcc13f915e2b302ceeb70fd8\nIV: fffffffffffffffffffffe0000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 71dbf37e87a2e34d15b20e8f10e48924\nIV: ffffffffffffffffffffff0000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c745c451e96ff3c045e4367c833e3b54\nIV: ffffffffffffffffffffff8000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 340da09c2dd11c3b679d08ccd27dd595\nIV: ffffffffffffffffffffffc000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8279f7c0c2a03ee660c6d392db025d18\nIV: ffffffffffffffffffffffe000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a4b2c7d8eba531ff47c5041a55fbd1ec\nIV: fffffffffffffffffffffff000000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 74569a2ca5a7bd5131ce8dc7cbfbf72f\nIV: fffffffffffffffffffffff800000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3713da0c0219b63454035613b5a403dd\nIV: fffffffffffffffffffffffc00000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8827551ddcc9df23fa72a3de4e9f0b07\nIV: fffffffffffffffffffffffe00000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2e3febfd625bfcd0a2c06eb460da1732\nIV: ffffffffffffffffffffffff00000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ee82e6ba4", "88156f76496311da6941deb\nIV: ffffffffffffffffffffffff80000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4770446f01d1f391256e85a1b30d89d3\nIV: ffffffffffffffffffffffffc0000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: af04b68f104f21ef2afb4767cf74143c\nIV: ffffffffffffffffffffffffe0000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: cf3579a9ba38c8e43653173e14f3a4c6\nIV: fffffffffffffffffffffffff0000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b3bba904f4953e09b54800af2f62e7d4\nIV: fffffffffffffffffffffffff8000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: fc4249656e14b29eb9c44829b4c59a46\nIV: fffffffffffffffffffffffffc000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9b31568febe81cfc2e65af1c86d1a308\nIV: fffffffffffffffffffffffffe000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9ca09c25f273a766db98a480ce8dfedc\nIV: ffffffffffffffffffffffffff000000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b909925786f34c3c92d971883c9fbedf\nIV: ffffffffffffffffffffffffff800000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 82647f1332fe570a9d4d92b2ee771d3b\nIV: ffffffffffffffffffffffffffc00000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3604a7e80832b3a99954bca6f5b9f501\nIV: ffffffffffffffffffffffffffe00000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 884607b128c5de3ab39a529a1ef51bef\nIV: fffffffffffffffffffffffffff00000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 670cfa093d1dbdb2317041404102435e\nIV: fffffffffffffffffffffffffff80000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7a867195f3ce8769cbd336502fbb5130\nIV: fffffffffffffffffffffffffffc0000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 52efcf64c72b2f7ca5b3c836b1078c15\nIV: fffffffffffffffffffffffffffe0000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4019250f6eefb2ac5ccbcae044e75c7e\nIV: ffffffffffffffffffffffffffff0000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 022c4f6f5a017d292785627667ddef24\nIV: ffffffffffffffffffffffffffff8000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e9c21078a2eb7e03250f71000fa9e3ed\nIV: ffffffffffffffffffffffffffffc000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a13eaeeb9cd391da4e2b09490b3e7fad\nIV: ffffffffffffffffffffffffffffe000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: c958a171dca1d4ed53e1af1d380803a9\nIV: fffffffffffffffffffffffffffff000\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 21442e07a110667f2583eaeeee44dc8c\nIV: fffffffffffffffffffffffffffff800\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 59bbb353cf1dd867a6e33737af655e99\nIV: fffffffffffffffffffffffffffffc00\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 43cd3b25375d0ce41087ff9fe2829639\nIV: fffffffffffffffffffffffffffffe00\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6b98b17e80d1118e3516bd768b285a84\nIV: ffffffffffffffffffffffffffffff00\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ae47ed3676ca0c08deea02d95b81db58\nIV: ffffffffffffffffffffffffffffff80\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 34ec40dc20413795ed53628ea748720b\nIV: ffffffffffffffffffffffffffffffc0\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4dc68163f8e9835473253542c8a65d46\nIV: ffffffffffffffffffffffffffffffe0\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2aabb999f43693175af65c6c612c46fb\nIV: fffffffffffffffffffffffffffffff0\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e01f94499dac3547515c5b1d756f0f58\nIV: fffffffffffffffffffffffffffffff8\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9d12435a46480ce00ea349f71799df9a\nIV: fffffffffffffffffffffffffffffffc\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: cef41d16d266bdfe46938ad7884cc0cf\nIV: fffffffffffffffffffffffffffffffe\n\nCipher: AES-192-CTR\nOperation: DECRYPT\nKey: 000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b13db4da1f718bc6904797c82bcf2d32\nIV: ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen25 = 191479; +static const size_t kLen26 = 191479; -static const char *kData25[] = { +static const char *kData26[] = { "# Generated by \"make_cavp -cipher=aes -extra-labels=Cipher=AES-256-CBC kat_aes/CBCGFSbox256.rsp kat_aes/CBCKeySbox256.rsp kat_aes/CBCVarKey256.rsp kat_aes/CBCVarTxt256.rsp\"\n\n# File 1: kat_aes/CBCGFSbox256.rsp\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 014730f80ac625fe84f026c60bfd547d\nCiphertext: 5c9d844ed46f9885085e5d6a4f94c7d7\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 0b24af36193ce4665f2825d7b4749c98\nCiphertext: a9ff75bd7cf6613d3731c77c3b6d0c04\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 761c1fe41a18acf20d241650611d90f1\nCiphertext: 623a52fcea5d443e48d9181ab32c7421\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 8a560769d605868ad80d819bdba03771\nCiphertext: 38f2c7ae10612415d27ca190d27da8b4\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 91fbef2d15a97816060bee1feaa49afe\nCiphertext: 1bc704f1bce135ceb810341b216d7abe\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5c9d844ed46f9885085e5d6a4f94c7d7\nPlaintext: 014730f80ac625fe84f026c60bfd547d\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a9ff75bd7cf6613d3731c77c3b6d0c04\nPlaintext: 0b24af36193ce4665f2825d7b4749c98\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 623a52fcea5d443e48d9181ab32c7421\nPlaintext: 761c1fe41a18acf20d241650611d90f1\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 38f2c7ae10612415d27ca190d27da8b4\nPlaintext: 8a560769d605868ad80d819bdba03771\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1bc704f1bce135ceb810341b216d7abe\nPlaintext: 91fbef2d15a97816060bee1feaa49afe\n\n# File 2: kat_aes/CBCKeySbox256.rsp\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 46f2fb342d6f0ab477476fc501242c5f\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 28d46cffa158533194214a91e712fc2b45b518076675affd910edeca5f41ac64\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4bf3b0a69aeb6657794f2901b1440ad4\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 352065272169abf9856843927d0674fd\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4307456a9e67813b452e15fa8fffe398\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4663446607354989477a5c6f0f007ef4\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 1d85a181b54cde51f0e098095b2962fdc93b51fe9b88602b3f54130bf76a5bd9\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 531c2c38344578b84d50b3c917bbb6e1\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: fc6aec906323480005c58e7e1ab004ad\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a3944b95ca0b52043584ef02151926a8\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a74289fe73a4c123ca189ea1e1b49ad5\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 6838d40caf927749c13f0329d331f448e202c73ef52c5f73a37ca635d4c47707\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b91d4ea4488644b56cf0812fa7fcf5fc\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ccd1bc3c659cd3c59bc437484e3c5c724441da8d6e90ce556cd57d0752663bbc\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 304f81ab61a80c2e743b94d5002a126b\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 13428b5e4c005e0636dd338405d173ab135dec2a25c22c5df0722d69dcc43887\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 649a71545378c783e368c9ade7114f6c\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 07eb03a08d291d1b07408bf3512ab40c91097ac77461aad4bb859647f74f00ee\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 47cb030da2ab051dfc6c4bf6910d12bb\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 798c7c005dee432b2c8ea5dfa381ecc3\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: b7a5794d52737475d53d5a377200849be0260a67a2b22ced8bbef12882270d07\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 637c31dc2591a07636f646b72daabbe7\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fca02f3d5011cfc5c1e23165d413a049d4526a991827424d896fe3435e0bf68e\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 179a49c712154bbffbe6e7a84a18e220\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558\nIV: 00000000000000000000000000000000\nCiphertext: 46f2fb342d6f0ab477476fc501242c5f\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 28d46cffa158533194214a91e712fc2b45b518076675affd910edeca5f41ac64\nIV: 00000000000000000000000000000000\nCiphertext: 4bf3b0a69aeb6657794f2901b1440ad4\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c\nIV: 00000000000000000000000000000000\nCiphertext: 352065272169abf9856843927d0674fd\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627\nIV: 00000000000000000000000000000000\nCiphertext: 4307456a9e67813b452e15fa8fffe398\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f\nIV: 00000000000000000000000000000000\nCiphertext: 4663446607354989477a5c6f0f007ef4\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 1d85a181b54cde51f0e098095b2962fdc93b51fe9b88602b3f54130bf76a5bd9\nIV: 00000000000000000000000000000000\nCiphertext: 531c2c38344578b84d50b3c917bbb6e1\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf\nIV: 00000000000000000000000000000000\nCiphertext: fc6aec906323480005c58e7e1ab004ad\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9\nIV: 00000000000000000000000000000000\nCiphertext:", " a3944b95ca0b52043584ef02151926a8\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e\nIV: 00000000000000000000000000000000\nCiphertext: a74289fe73a4c123ca189ea1e1b49ad5\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 6838d40caf927749c13f0329d331f448e202c73ef52c5f73a37ca635d4c47707\nIV: 00000000000000000000000000000000\nCiphertext: b91d4ea4488644b56cf0812fa7fcf5fc\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: ccd1bc3c659cd3c59bc437484e3c5c724441da8d6e90ce556cd57d0752663bbc\nIV: 00000000000000000000000000000000\nCiphertext: 304f81ab61a80c2e743b94d5002a126b\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 13428b5e4c005e0636dd338405d173ab135dec2a25c22c5df0722d69dcc43887\nIV: 00000000000000000000000000000000\nCiphertext: 649a71545378c783e368c9ade7114f6c\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 07eb03a08d291d1b07408bf3512ab40c91097ac77461aad4bb859647f74f00ee\nIV: 00000000000000000000000000000000\nCiphertext: 47cb030da2ab051dfc6c4bf6910d12bb\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1\nIV: 00000000000000000000000000000000\nCiphertext: 798c7c005dee432b2c8ea5dfa381ecc3\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: b7a5794d52737475d53d5a377200849be0260a67a2b22ced8bbef12882270d07\nIV: 00000000000000000000000000000000\nCiphertext: 637c31dc2591a07636f646b72daabbe7\nPlaintext: 00000000000000000000000000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: fca02f3d5011cfc5c1e23165d413a049d4526a991827424d896fe3435e0bf68e\nIV: 00000000000000000000000000000000\nCiphertext: 179a49c712154bbffbe6e7a84a18e220\nPlaintext: 00000000000000000000000000000000\n\n# File 3: kat_aes/CBCVarKey256.rsp\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: 8000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e35a6dcb19b201a01ebcfa8aa22b5759\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: c000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b29169cdcf2d83e838125a12ee6aa400\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: e000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d8f3a72fc3cdf74dfaf6c3e6b97b2fa6\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: f000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1c777679d50037c79491a94da76a9a35\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: f800000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9cf4893ecafa0a0247a898e040691559\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fc00000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8fbb413703735326310a269bd3aa94b2\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fe00000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 60e32246bed2b0e859e55c1cc6b26502\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ff00000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ec52a212f80a09df6317021bc2a9819e\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ff80000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f23e5b600eb70dbccf6c0b1d9a68182c\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffc0000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a3f599d63a82a968c33fe26590745970\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffe0000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d1ccb9b1337002cbac42c520b5d67722\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fff0000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: cc111f6c37cf40a1159d00fb59fb0488\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fff8000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: dc43b51ab609052372989a26e9cdd714\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffc000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4dcede8da9e2578f39703d4433dc6459\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffe000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1a4c1c263bbccfafc11782894685e3a8\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffff000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 937ad84880db50613423d6d527a2823d\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffff800000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 610b71dfc688e150d8152c5b35ebc14d\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffc00000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 27ef2495dabf323885aab39c80f18d8b\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffe00000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 633cafea395bc03adae3a1e2068e4b4e\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffff00000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6e1b482b53761cf631819b749a6f3724\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffff80000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 976e6f851ab52c771998dbb2d71c75a9\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffc0000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 85f2ba84f8c307cf525e124c3e22e6cc\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffe0000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6bcca98bf6a835fa64955f72de4115fe\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffff0000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2c75e2d36eebd65411f14fd0eb1d2a06\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffff8000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: bd49295006250ffca5100b6007a0eade\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffc000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a190527d0ef7c70f459cd3940df316ec\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffe00", "0000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: bbd1097a62433f79449fa97d4ee80dbf\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffff000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 07058e408f5b99b0e0f061a1761b5b3b\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffff800000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5fd1f13fa0f31e37fabde328f894eac2\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffc00000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: fc4af7c948df26e2ef3e01c1ee5b8f6f\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffe00000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 829fd7208fb92d44a074a677ee9861ac\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffff00000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ad9fc613a703251b54c64a0e76431711\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffff80000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 33ac9eccc4cc75e2711618f80b1548e8\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffc0000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2025c74b8ad8f4cda17ee2049c4c902d\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffe0000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f85ca05fe528f1ce9b790166e8d551e7\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffff0000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6f6238d8966048d4967154e0dad5a6c9\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffff8000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f2b21b4e7640a9b3346de8b82fb41e49\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffc000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f836f251ad1d11d49dc344628b1884e1\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffe000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 077e9470ae7abea5a9769d49182628c3\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffff000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e0dcc2d27fc9865633f85223cf0d611f\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffff800000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: be66cfea2fecd6bf0ec7b4352c99bcaa\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffc00000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: df31144f87a2ef523facdcf21a427804\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffe00000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: b5bb0f5629fb6aae5e1839a3c3625d63\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffff00000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3c9db3335306fe1ec612bdbfae6b6028\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffff80000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3dd5c34634a79d3cfcc8339760e6f5f4\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffc0000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 82bda118a3ed7af314fa2ccc5c07b761\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffe0000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2937a64f7d4f46fe6fea3b349ec78e38\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffff0000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 225f068c28476605735ad671bb8f39f3\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffff8000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ae682c5ecd71898e08942ac9aa89875c\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffffc000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5e031cb9d676c3022d7f26227e85c38f\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffffe000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a78463fb064db5d52bb64bfef64f2dda\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffff000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8aa9b75e784593876c53a00eae5af52b\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffff800000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3f84566df23da48af692722fe980573a\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffffc00000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 31690b5ed41c7eb42a1e83270a7ff0e6\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffffe00000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 77dd7702646d55f08365e477d3590eda\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffffff00000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4c022ac62b3cb78d739cc67b3e20bb7e\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffffff80000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 092fa137ce18b5dfe7906f550bb13370\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffffffc0000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3e0cdadf2e68353c0027672c97144dd3\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: ffffffffffffffe0000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: d8c4b200b383fc1f2b2ea677618a1d27\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffffff0000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 11825f99b0e9bb3477c1c0713b015aac\n\nCipher: AES-256-CBC\nOperation: ENCRYPT\nKey: fffffffffffffff8000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: f8b9fffb5c187f7ddc7", @@ -1587,9 +1667,9 @@ static const char *kData25[] = { "00000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4cc42fc1407b008fe350907c092e80ac\nPlaintext: ffffffffffffffffffff800000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 08b244ce7cbc8ee97fbba808cb146fda\nPlaintext: ffffffffffffffffffffc00000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 39b333e8694f21546ad1edd9d87ed95b\nPlaintext: ffffffffffffffffffffe00000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3b271f8ab2e6e4a20ba8090f43ba78f3\nPlaintext: fffffffffffffffffffff00000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9ad983f3bf651cd0393f0a73cccdea50\nPlaintext: fffffffffffffffffffff80000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8f476cbff75c1f725ce18e4bbcd19b32\nPlaintext: fffffffffffffffffffffc0000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 905b6267f1d6ab5320835a133f096f2a\nPlaintext: fffffffffffffffffffffe0000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 145b60d6d0193c23f4221848a892d61a\nPlaintext: ffffffffffffffffffffff0000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 55cfb3fb6d75cad0445bbc8dafa25b0f\nPlaintext: ffffffffffffffffffffff8000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7b8e7098e357ef71237d46d8b075b0f5\nPlaintext: ffffffffffffffffffffffc000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2bf27229901eb40f2df9d8398d1505ae\nPlaintext: ffffffffffffffffffffffe000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 83a63402a77f9ad5c1e931a931ecd706\nPlaintext: fffffffffffffffffffffff000000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6f8ba6521152d31f2bada1843e26b973\nPlaintext: fffffffffffffffffffffff800000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e5c3b8e30fd2d8e6239b17b44bd23bbd\nPlaintext: fffffffffffffffffffffffc00000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1ac1f7102c59933e8b2ddc3f14e94baa\nPlaintext: fffffffffffffffffffffffe00000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 21d9ba49f276b45f11af8fc71a088e3d\nPlaintext: ffffffffffffffffffffffff00000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 649f1cddc3792b4638635a392bc9bade\nPlaintext: ffffffffffffffffffffffff80000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e2775e4b59c1bc2e31a2078c11b5a08c\nPlaintext: ffffffffffffffffffffffffc0000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2be1fae5048a25582a679ca10905eb80\nPlaintext: ffffffffffffffffffffffffe0000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: da86f292c6f41ea34fb2068df75ecc29\nPlaintext: fffffffffffffffffffffffff0000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 220df19f85d69b1b562fa69a3c5beca5\nPlaintext: fffffffffffffffffffffffff8000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1f11d5d0355e0b556ccdb6c7f5083b4d\nPlaintext: fffffffffffffffffffffffffc000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 62526b78be79cb384633c91f83b4151b\nPlaintext: fffffffffffffffffffffffffe000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 90ddbcb950843592dd47bbef00fdc876\nPlaintext: ffffffffffffffffffffffffff000000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2fd0e41c5b8402277354a7391d2618e2\nPlaintext: ffffffffffffffffffffffffff800000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3cdf13e72dee4c581bafec70b85f9660\nPlaintext: ffffffffffffffffffffffffffc00000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: afa2ffc137577092e2b654fa199d2c43\nPlaintext: ffffffffffffffffffffffffffe00000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8d683ee63e60d208e343ce48dbc44cac\nPlaintext: fffffffffffffffffffffffffff00000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 705a4ef8ba2133729c20185c3d3a4763\nPlaintext: fffffffffffffffffffffffffff80000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0861a861c3db4e94194211b77ed761b9\nPlaintext: fffffffffffffffffffffffffffc0000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4b00c27e8b26da7eab9d3a88dec8b031\nPlaintext: fffffffffffffffffffffffffffe0000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5f397bf03084820cc8810d52e5b666e9\nPlaintext: ffffffffffffffffffffffffffff0000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 63fafabb72c07bfbd3ddc9b1203104b8\nPlaintext: ffffffffffffffffffffffffffff8000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 683e2140585b18452dd4ffbb93c95df9\nPlaintext: ffffffffffffffffffffffffffffc000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 286894e48e537f8763b56707d7d155c8\nPlaintext: ffffffffffffffffffffffffffffe000\n\nCiphe", "r: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a423deabc173dcf7e2c4c53e77d37cd1\nPlaintext: fffffffffffffffffffffffffffff000\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: eb8168313e1cfdfdb5e986d5429cf172\nPlaintext: fffffffffffffffffffffffffffff800\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 27127daafc9accd2fb334ec3eba52323\nPlaintext: fffffffffffffffffffffffffffffc00\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ee0715b96f72e3f7a22a5064fc592f4c\nPlaintext: fffffffffffffffffffffffffffffe00\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 29ee526770f2a11dcfa989d1ce88830f\nPlaintext: ffffffffffffffffffffffffffffff00\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0493370e054b09871130fe49af730a5a\nPlaintext: ffffffffffffffffffffffffffffff80\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9b7b940f6c509f9e44a4ee140448ee46\nPlaintext: ffffffffffffffffffffffffffffffc0\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2915be4a1ecfdcbe3e023811a12bb6c7\nPlaintext: ffffffffffffffffffffffffffffffe0\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7240e524bc51d8c4d440b1be55d1062c\nPlaintext: fffffffffffffffffffffffffffffff0\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: da63039d38cb4612b2dc36ba26684b93\nPlaintext: fffffffffffffffffffffffffffffff8\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 0f59cb5a4b522e2ac56c1a64f558ad9a\nPlaintext: fffffffffffffffffffffffffffffffc\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 7bfe9d876c6d63c1d035da8fe21c409d\nPlaintext: fffffffffffffffffffffffffffffffe\n\nCipher: AES-256-CBC\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: acdace8078a32b1a182bfa4987ca1347\nPlaintext: ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen26 = 191498; +static const size_t kLen27 = 191498; -static const char *kData26[] = { +static const char *kData27[] = { "# Generated by \"make_cavp -cipher=aes -extra-labels=Cipher=AES-256-CTR -swap-iv-plaintext kat_aes/CBCGFSbox256.rsp kat_aes/CBCKeySbox256.rsp kat_aes/CBCVarKey256.rsp kat_aes/CBCVarTxt256.rsp\"\n\n# File 1: kat_aes/CBCGFSbox256.rsp\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 014730f80ac625fe84f026c60bfd547d\nCiphertext: 5c9d844ed46f9885085e5d6a4f94c7d7\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 0b24af36193ce4665f2825d7b4749c98\nCiphertext: a9ff75bd7cf6613d3731c77c3b6d0c04\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 761c1fe41a18acf20d241650611d90f1\nCiphertext: 623a52fcea5d443e48d9181ab32c7421\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 8a560769d605868ad80d819bdba03771\nCiphertext: 38f2c7ae10612415d27ca190d27da8b4\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 91fbef2d15a97816060bee1feaa49afe\nCiphertext: 1bc704f1bce135ceb810341b216d7abe\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5c9d844ed46f9885085e5d6a4f94c7d7\nIV: 014730f80ac625fe84f026c60bfd547d\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a9ff75bd7cf6613d3731c77c3b6d0c04\nIV: 0b24af36193ce4665f2825d7b4749c98\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 623a52fcea5d443e48d9181ab32c7421\nIV: 761c1fe41a18acf20d241650611d90f1\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 38f2c7ae10612415d27ca190d27da8b4\nIV: 8a560769d605868ad80d819bdba03771\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1bc704f1bce135ceb810341b216d7abe\nIV: 91fbef2d15a97816060bee1feaa49afe\n\n# File 2: kat_aes/CBCKeySbox256.rsp\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 46f2fb342d6f0ab477476fc501242c5f\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 28d46cffa158533194214a91e712fc2b45b518076675affd910edeca5f41ac64\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4bf3b0a69aeb6657794f2901b1440ad4\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 352065272169abf9856843927d0674fd\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4307456a9e67813b452e15fa8fffe398\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4663446607354989477a5c6f0f007ef4\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 1d85a181b54cde51f0e098095b2962fdc93b51fe9b88602b3f54130bf76a5bd9\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 531c2c38344578b84d50b3c917bbb6e1\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: fc6aec906323480005c58e7e1ab004ad\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a3944b95ca0b52043584ef02151926a8\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a74289fe73a4c123ca189ea1e1b49ad5\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 6838d40caf927749c13f0329d331f448e202c73ef52c5f73a37ca635d4c47707\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b91d4ea4488644b56cf0812fa7fcf5fc\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ccd1bc3c659cd3c59bc437484e3c5c724441da8d6e90ce556cd57d0752663bbc\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 304f81ab61a80c2e743b94d5002a126b\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 13428b5e4c005e0636dd338405d173ab135dec2a25c22c5df0722d69dcc43887\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 649a71545378c783e368c9ade7114f6c\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 07eb03a08d291d1b07408bf3512ab40c91097ac77461aad4bb859647f74f00ee\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 47cb030da2ab051dfc6c4bf6910d12bb\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 798c7c005dee432b2c8ea5dfa381ecc3\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: b7a5794d52737475d53d5a377200849be0260a67a2b22ced8bbef12882270d07\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 637c31dc2591a07636f646b72daabbe7\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fca02f3d5011cfc5c1e23165d413a049d4526a991827424d896fe3435e0bf68e\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 179a49c712154bbffbe6e7a84a18e220\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558\nPlaintext: 00000000000000000000000000000000\nCiphertext: 46f2fb342d6f0ab477476fc501242c5f\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 28d46cffa158533194214a91e712fc2b45b518076675affd910edeca5f41ac64\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4bf3b0a69aeb6657794f2901b1440ad4\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c\nPlaintext: 00000000000000000000000000000000\nCiphertext: 352065272169abf9856843927d0674fd\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4307456a9e67813b452e15fa8fffe398\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4663446607354989477a5c6f0f007ef4\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 1d85a181b54cde51f0e098095b2962fdc93b51fe9b88602b3f54130bf76a5bd9\nPlaintext: 00000000000000000000000000000000\nCiphertext: 531c2c38344578b84d50b3c917bbb6e1\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf\nPlaintext: 00000000000000000000000000000000\nCiphertext: fc6aec906323480005c58e7e1ab004ad\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9\nPlaintext: 000000000000000000", "00000000000000\nCiphertext: a3944b95ca0b52043584ef02151926a8\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e\nPlaintext: 00000000000000000000000000000000\nCiphertext: a74289fe73a4c123ca189ea1e1b49ad5\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 6838d40caf927749c13f0329d331f448e202c73ef52c5f73a37ca635d4c47707\nPlaintext: 00000000000000000000000000000000\nCiphertext: b91d4ea4488644b56cf0812fa7fcf5fc\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: ccd1bc3c659cd3c59bc437484e3c5c724441da8d6e90ce556cd57d0752663bbc\nPlaintext: 00000000000000000000000000000000\nCiphertext: 304f81ab61a80c2e743b94d5002a126b\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 13428b5e4c005e0636dd338405d173ab135dec2a25c22c5df0722d69dcc43887\nPlaintext: 00000000000000000000000000000000\nCiphertext: 649a71545378c783e368c9ade7114f6c\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 07eb03a08d291d1b07408bf3512ab40c91097ac77461aad4bb859647f74f00ee\nPlaintext: 00000000000000000000000000000000\nCiphertext: 47cb030da2ab051dfc6c4bf6910d12bb\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1\nPlaintext: 00000000000000000000000000000000\nCiphertext: 798c7c005dee432b2c8ea5dfa381ecc3\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: b7a5794d52737475d53d5a377200849be0260a67a2b22ced8bbef12882270d07\nPlaintext: 00000000000000000000000000000000\nCiphertext: 637c31dc2591a07636f646b72daabbe7\nIV: 00000000000000000000000000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: fca02f3d5011cfc5c1e23165d413a049d4526a991827424d896fe3435e0bf68e\nPlaintext: 00000000000000000000000000000000\nCiphertext: 179a49c712154bbffbe6e7a84a18e220\nIV: 00000000000000000000000000000000\n\n# File 3: kat_aes/CBCVarKey256.rsp\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: 8000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e35a6dcb19b201a01ebcfa8aa22b5759\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: c000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b29169cdcf2d83e838125a12ee6aa400\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: e000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d8f3a72fc3cdf74dfaf6c3e6b97b2fa6\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: f000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1c777679d50037c79491a94da76a9a35\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: f800000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 9cf4893ecafa0a0247a898e040691559\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fc00000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8fbb413703735326310a269bd3aa94b2\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fe00000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 60e32246bed2b0e859e55c1cc6b26502\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ff00000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ec52a212f80a09df6317021bc2a9819e\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ff80000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f23e5b600eb70dbccf6c0b1d9a68182c\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffc0000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a3f599d63a82a968c33fe26590745970\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffe0000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d1ccb9b1337002cbac42c520b5d67722\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fff0000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: cc111f6c37cf40a1159d00fb59fb0488\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fff8000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: dc43b51ab609052372989a26e9cdd714\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffc000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4dcede8da9e2578f39703d4433dc6459\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffe000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 1a4c1c263bbccfafc11782894685e3a8\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffff000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 937ad84880db50613423d6d527a2823d\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffff800000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 610b71dfc688e150d8152c5b35ebc14d\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffc00000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 27ef2495dabf323885aab39c80f18d8b\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffe00000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 633cafea395bc03adae3a1e2068e4b4e\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffff00000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6e1b482b53761cf631819b749a6f3724\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffff80000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 976e6f851ab52c771998dbb2d71c75a9\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffc0000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 85f2ba84f8c307cf525e124c3e22e6cc\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffe0000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6bcca98bf6a835fa64955f72de4115fe\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffff0000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2c75e2d36eebd65411f14fd0eb1d2a06\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffff8000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: bd49295006250ffca5100b6007a0eade\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffc000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a190527d0ef7c70f459cd3940df316ec\n\nCipher: AES-256-CTR\nOperation: ENC", "RYPT\nKey: ffffffe000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: bbd1097a62433f79449fa97d4ee80dbf\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffff000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 07058e408f5b99b0e0f061a1761b5b3b\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffff800000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5fd1f13fa0f31e37fabde328f894eac2\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffc00000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: fc4af7c948df26e2ef3e01c1ee5b8f6f\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffe00000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 829fd7208fb92d44a074a677ee9861ac\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffff00000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ad9fc613a703251b54c64a0e76431711\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffff80000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 33ac9eccc4cc75e2711618f80b1548e8\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffc0000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2025c74b8ad8f4cda17ee2049c4c902d\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffe0000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f85ca05fe528f1ce9b790166e8d551e7\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffff0000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 6f6238d8966048d4967154e0dad5a6c9\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffff8000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f2b21b4e7640a9b3346de8b82fb41e49\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffc000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: f836f251ad1d11d49dc344628b1884e1\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffe000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 077e9470ae7abea5a9769d49182628c3\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffff000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: e0dcc2d27fc9865633f85223cf0d611f\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffff800000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: be66cfea2fecd6bf0ec7b4352c99bcaa\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffc00000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: df31144f87a2ef523facdcf21a427804\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffe00000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: b5bb0f5629fb6aae5e1839a3c3625d63\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffff00000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3c9db3335306fe1ec612bdbfae6b6028\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffff80000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3dd5c34634a79d3cfcc8339760e6f5f4\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffc0000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 82bda118a3ed7af314fa2ccc5c07b761\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffe0000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 2937a64f7d4f46fe6fea3b349ec78e38\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffff0000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 225f068c28476605735ad671bb8f39f3\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffff8000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ae682c5ecd71898e08942ac9aa89875c\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffffc000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 5e031cb9d676c3022d7f26227e85c38f\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffffe000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: a78463fb064db5d52bb64bfef64f2dda\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffff000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 8aa9b75e784593876c53a00eae5af52b\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffff800000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3f84566df23da48af692722fe980573a\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffffc00000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 31690b5ed41c7eb42a1e83270a7ff0e6\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffffe00000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 77dd7702646d55f08365e477d3590eda\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffffff00000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 4c022ac62b3cb78d739cc67b3e20bb7e\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffffff80000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 092fa137ce18b5dfe7906f550bb13370\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffffffc0000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 3e0cdadf2e68353c0027672c97144dd3\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: ffffffffffffffe0000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: d8c4b200b383fc1f2b2ea677618a1d27\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffffff0000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: 11825f99b0e9bb3477c1c0713b015aac\n\nCipher: AES-256-CTR\nOperation: ENCRYPT\nKey: fffffffffffffff8000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nIV: 00000000000000000000000000000000\nCiphertext: ", @@ -1615,9 +1695,9 @@ static const char *kData26[] = { "000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4cc42fc1407b008fe350907c092e80ac\nIV: ffffffffffffffffffff800000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 08b244ce7cbc8ee97fbba808cb146fda\nIV: ffffffffffffffffffffc00000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 39b333e8694f21546ad1edd9d87ed95b\nIV: ffffffffffffffffffffe00000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3b271f8ab2e6e4a20ba8090f43ba78f3\nIV: fffffffffffffffffffff00000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9ad983f3bf651cd0393f0a73cccdea50\nIV: fffffffffffffffffffff80000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8f476cbff75c1f725ce18e4bbcd19b32\nIV: fffffffffffffffffffffc0000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 905b6267f1d6ab5320835a133f096f2a\nIV: fffffffffffffffffffffe0000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 145b60d6d0193c23f4221848a892d61a\nIV: ffffffffffffffffffffff0000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 55cfb3fb6d75cad0445bbc8dafa25b0f\nIV: ffffffffffffffffffffff8000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7b8e7098e357ef71237d46d8b075b0f5\nIV: ffffffffffffffffffffffc000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2bf27229901eb40f2df9d8398d1505ae\nIV: ffffffffffffffffffffffe000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 83a63402a77f9ad5c1e931a931ecd706\nIV: fffffffffffffffffffffff000000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 6f8ba6521152d31f2bada1843e26b973\nIV: fffffffffffffffffffffff800000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e5c3b8e30fd2d8e6239b17b44bd23bbd\nIV: fffffffffffffffffffffffc00000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1ac1f7102c59933e8b2ddc3f14e94baa\nIV: fffffffffffffffffffffffe00000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 21d9ba49f276b45f11af8fc71a088e3d\nIV: ffffffffffffffffffffffff00000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 649f1cddc3792b4638635a392bc9bade\nIV: ffffffffffffffffffffffff80000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: e2775e4b59c1bc2e31a2078c11b5a08c\nIV: ffffffffffffffffffffffffc0000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2be1fae5048a25582a679ca10905eb80\nIV: ffffffffffffffffffffffffe0000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: da86f292c6f41ea34fb2068df75ecc29\nIV: fffffffffffffffffffffffff0000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 220df19f85d69b1b562fa69a3c5beca5\nIV: fffffffffffffffffffffffff8000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 1f11d5d0355e0b556ccdb6c7f5083b4d\nIV: fffffffffffffffffffffffffc000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 62526b78be79cb384633c91f83b4151b\nIV: fffffffffffffffffffffffffe000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 90ddbcb950843592dd47bbef00fdc876\nIV: ffffffffffffffffffffffffff000000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2fd0e41c5b8402277354a7391d2618e2\nIV: ffffffffffffffffffffffffff800000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 3cdf13e72dee4c581bafec70b85f9660\nIV: ffffffffffffffffffffffffffc00000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: afa2ffc137577092e2b654fa199d2c43\nIV: ffffffffffffffffffffffffffe00000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 8d683ee63e60d208e343ce48dbc44cac\nIV: fffffffffffffffffffffffffff00000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 705a4ef8ba2133729c20185c3d3a4763\nIV: fffffffffffffffffffffffffff80000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0861a861c3db4e94194211b77ed761b9\nIV: fffffffffffffffffffffffffffc0000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 4b00c27e8b26da7eab9d3a88dec8b031\nIV: fffffffffffffffffffffffffffe0000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 5f397bf03084820cc8810d52e5b666e9\nIV: ffffffffffffffffffffffffffff0000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 63fafabb72c07bfbd3ddc9b1203104b8\nIV: ffffffffffffffffffffffffffff8000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 683e2140585b18452dd4ffbb93c95df9\nIV: ffffffffffffffffffffffffffffc000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 286894e48e537f8763b56707d7d155c8\nIV: ffffffffffffffffffff", "ffffffffe000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: a423deabc173dcf7e2c4c53e77d37cd1\nIV: fffffffffffffffffffffffffffff000\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: eb8168313e1cfdfdb5e986d5429cf172\nIV: fffffffffffffffffffffffffffff800\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 27127daafc9accd2fb334ec3eba52323\nIV: fffffffffffffffffffffffffffffc00\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: ee0715b96f72e3f7a22a5064fc592f4c\nIV: fffffffffffffffffffffffffffffe00\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 29ee526770f2a11dcfa989d1ce88830f\nIV: ffffffffffffffffffffffffffffff00\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0493370e054b09871130fe49af730a5a\nIV: ffffffffffffffffffffffffffffff80\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 9b7b940f6c509f9e44a4ee140448ee46\nIV: ffffffffffffffffffffffffffffffc0\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 2915be4a1ecfdcbe3e023811a12bb6c7\nIV: ffffffffffffffffffffffffffffffe0\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7240e524bc51d8c4d440b1be55d1062c\nIV: fffffffffffffffffffffffffffffff0\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: da63039d38cb4612b2dc36ba26684b93\nIV: fffffffffffffffffffffffffffffff8\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 0f59cb5a4b522e2ac56c1a64f558ad9a\nIV: fffffffffffffffffffffffffffffffc\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: 7bfe9d876c6d63c1d035da8fe21c409d\nIV: fffffffffffffffffffffffffffffffe\n\nCipher: AES-256-CTR\nOperation: DECRYPT\nKey: 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext: 00000000000000000000000000000000\nCiphertext: acdace8078a32b1a182bfa4987ca1347\nIV: ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen27 = 5825374; +static const size_t kLen28 = 5825374; -static const char *kData27[] = { +static const char *kData28[] = { "# Generated by \"make_cavp -cipher gcm kat_gcm/gcmDecrypt256.rsp kat_gcm/gcmEncryptExtIV256.rsp\"\n\n# File 1: kat_gcm/gcmDecrypt256.rsp\n\nKEY: f5a2b27c74355872eb3ef6c5feafaa740e6ae990d9d48c3bd9bb8235e589f010\nNONCE: 58d2240f580a31c1d24948e9\nCT: \nAD: \nTAG: 15e051a5e4a5f5da6cea92e2ebee5bac\nIN: \n\nKEY: e5a8123f2e2e007d4e379ba114a2fb66e6613f57c72d4e4f024964053028a831\nNONCE: 51e43385bf533e168427e1ad\nCT: \nAD: \nTAG: 38fe845c66e66bdd884c2aecafd280e6\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: c5ba3bf9ada560fb0301cd4e0b8b8a46a2aff2400395a72ed5804b3c755c4e59\nNONCE: de2b956e704063c000f28bbb\nCT: \nAD: \nTAG: 04eb9b20fd4548dc71594f20073a45a2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: c1d6162b585e2bac14d554d5675c6ddaa6b93be2eb07f8df86c9bb30f93ae688\nNONCE: f04dfce5c8e7713c71a70cc9\nCT: \nAD: \nTAG: 37fb4f33c82f6fce0c562896b3e10fc2\nIN: \n\nKEY: 70458edea4d95c8b3e069f14e1ad71d9186f482fe6d85088c71db58267e747ec\nNONCE: d6413ee8453a1729a658c6f4\nCT: \nAD: \nTAG: bd9e5e0c6ddc94acf65bf4e301d20a37\nIN: \n\nKEY: aa0bedc56b30418235aa94327062c34e0ddbf931e7bcb964b60678d411baf6cb\nNONCE: 8a7220c9a7e417e5da182bdb\nCT: \nAD: \nTAG: ae7e608491439940b4d1046c28361258\nIN: \n\nKEY: c11ce73ba45d5e33be3efd335c4d67d659284b3a824ae35d5982e9ea4c68145d\nNONCE: 1eeffdbab0745a757789018f\nCT: \nAD: \nTAG: d387f9e6bbbbf273746c9b5276a8618c\nIN: \n\nKEY: 639664a00278e45d18cd4ac1265a4fea39d1cd8d7907a0adb38723209c46a4bf\nNONCE: d838ba74c7ad57ee5266c5b7\nCT: \nAD: \nTAG: 3750f87de43cfa02ef882d6497da082d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: dc18f40a774ceeb930f0bb45070404783c66988a515db1a36ec0cc0d70fac2fd\nNONCE: 9c3a7dd947e6f50a6577c5ff\nCT: \nAD: \nTAG: 511924f2603d6d38920539fb10178989\nIN: \n\nKEY: 39aed23722e201752d2e53efe66c8f0f695658a63a9a8cecf4e25f02dd7da1d5\nNONCE: ce0108bc35e7ff7ba8408f3f\nCT: \nAD: \nTAG: 66acc084d5f62e639338131f5ab8f6c1\nIN: \n\nKEY: c5c19e080bbbce795754ae25e36dc7aea1589d823fe89835d0286e54de7f3153\nNONCE: 3109398abd423349b9b50adc\nCT: \nAD: \nTAG: 73c92b76997dbd9fe251436a7f61a666\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 831640f910ef709eb0ec3998ea5aa55470082de05ee20ed8b19f067d8af1308e\nNONCE: 443dcee827eb4cc49fe2b287\nCT: \nAD: \nTAG: 005ec26c2d708d5234b7937313dc7384\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 56567431c5210979a8dbb432966a81b3f1db5ec021f8aae0f0c3cce3678cc6fd\nNONCE: 45a97d48000ce1dab68de02e\nCT: \nAD: \nTAG: bbb295fd1e37c317f8130221af50496b\nIN: \n\nKEY: fdf71650d60cb7aa566cdd7ba66f462ed613a1c6c1dfdab0ba8e676fb7a8b935\nNONCE: a035553c5a9b88a67627dbcc\nCT: \nAD: \nTAG: 4a7361a05757e2cb60cc17ff8c5911b7\nIN: \n\nKEY: 3b19d8a4795b52e6dc4f8fd3c091c05a65c8f3cddc665ab473e6144011ae54a4\nNONCE: 23744265b6865b99bed99f11\nCT: \nAD: \nTAG: b7a67b6068d2b22c1b26f795ee1701be\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 31201b86ccb6cbcf289798225c55de5a1c936a18aec996b5b8dcceb33bf96b41\nNONCE: c2c6402f1f5ae89a6fa0fb65\nCT: \nAD: \nTAG: 0b0bebb86a5d60f1f1881cea155e33\nIN: \n\nKEY: 2878cdd980bd1289e2efef7f3116b0a2772d272412e1cfeaf20f90cc278820e9\nNONCE: 9ada69a2f393958cc3866bf9\nCT: \nAD: \nTAG: cff55846db838aaf5e08e88f8d7fe2\nIN: \n\nKEY: 1ee02b8c391d6559ceb1683221821e377d20fb186733d24d2becb73e4121e92b\nNONCE: 70181ecf28be85c68f4dbe86\nCT: \nAD: \nTAG: b90acb4d41e2df4c148d8837ca712b\nIN: \n\nKEY: e8cd41c3d9ee7dca4c5d66753384cd1a034f729595fbeb00042874fe704fe4a8\nNONCE: cab88d202761537e288dcd47\nCT: \nAD: \nTAG: 954296ab400209335f424eb22636a5\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 56fec15de81f78182f3f4d9cda32c3d7744568ab6e2285c7c3384bd17f0a4e22\nNONCE: 71e09145955273fd889cefda\nCT: \nAD: \nTAG: 3b2191283125d17f1f41558279630f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: f66d1d2bd210d75c555b856c5c61d9c09b035498a9896284c34d9312e35b1065\nNONCE: 10dda1bf8ebca4b0a1f3396d\nCT: \nAD: \nTAG: 6da9c30516fe1d60355a01211669dd\nIN: \n\nKEY: 421ad8416b0558e225e9e3de2ec1c7fc0ea5a3378291dfd4c43f85fb3fa63d59\nNONCE: 23a84ef01256fa90a44e502b\nCT: \nAD: \nTAG: 237b556e56c27f03ff2e893d46dc14\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 5a848b232b428015fc1a86134774558bdb3180f8b853bc32be40b6e4f098a857\nNONCE: cc87b1468b8ee9a5a4e1d7e1\nCT: \nAD: \nTAG: 329be89d4cd62d3d3a755d0989f3e7\nIN: \n\nKEY: 9a865aa04969fe50bcb48b90d75ce72f1ced9337ef81acec5a633eac7544f86d\nNONCE: cf4962b18e6b8f6f4146a0e7\nCT: \nAD: \nTAG: da7e4d68f4f77271537786350f8fcc\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: e106e692ae0285dad853a3232e150c1ccc602d74bf3bd91e0ffa36c33855d152\nNONCE: c4fe31cf2f36bf29080e6317\nCT: \nAD: \nTAG: 2523855a9d0bf9db28c39142aabb76\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: cfae5da8cabe9bd774713bc5b6c5a3ae42a872154636b6f976ee51e6a197a949\nNONCE: 033a03e2d701d1aafea3c399\nCT: \nAD: \nTAG: bb94014b3268e39eb71a2e3f5e65b2\nIN: \n\nKEY: 267b7087ad528cb9564c909b4fd8f9a80787ac2f85f23d10be6d0b2bfa043c09\nNONCE: cf8e3f28b1af597a76d0f538\nCT: \nAD: \nTAG: acec8a91da886b56075e5661fd5281\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 174162718b2e85482533322741309a4d3100c77e4178cd936b9881ab868b9bf9\nNONCE: 6a4abe063efd24fc960c56cb\nCT: \nAD: \nTAG: 1dc929a76cc0f4e28e65367e29002b\nIN: \n\nKEY: badd602c95d173fcb1334a32cd1437fbbfc21813bbefa8457b543a6f05c7ca80\nNONCE: c28a85678f63fd46edf03810\nCT: \nAD: \nTAG: 94f4cc2fb26c2d487b20b01441574f\nIN: \n\nKEY: 8ff59e7c71865c94b637a924132e5519137da18573ee797c981dfd41c70538e7\nNONCE: 80b277f8789d5f1165924d21\nCT: \nAD: \nTAG: fc1bd57ced8be952b9ff6017502ff6\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 799c0a95a15bbe3915cd55ff2af71a437247c74092819c8f398f820b5829b4de\nNONCE: 53be11fdaa1cef09b7cbbdf7\nCT: \nAD: \nTAG: e81916926bbd1cf8d0378467dd99\nIN: \n\nKEY: d24580e7584b7fce9bce2e6a0d1d3bab184ac25171e57c9d67db832325202a96\nNONCE: 2d40c5487ea483e543238c93\nCT: \nAD: \nTAG: ed989ab0f70be34acf71f6ac6a00\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: a8b15b30aa3f69190611031906cc125c98289fed2836f99b29e1d38b2c32c8ed\nNONCE: 317a4522cc374f32458142e2\nCT: \nAD: \nTAG: 4d421b1e0551f632b80f14cc433e\nIN: \n\nKEY: 8f85436046b48589390986646a5ed0e1587d431d1d10ec66d490f38c60ae9182\nNONCE: 6bbe054c533f5d659f5442fd\nCT: \nAD: \nTAG: edf25381a757cf747676fea43772\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9254c8375c3fe74b35a125a8e9f5109cf880f13ad03b7ff35ac0255efbc51a5d\nNONCE: 912705e60880ea3b9554dd69\nCT: \nAD: \nTAG: a5c899aea5e9483d9506682b6a66\nIN: \n\nKEY: 3a3908ae84d595b377fa7325374a7cf8ab6b70e62d21b8b5be75ae2e31334481\nNONCE: ec3ec0cec10bcbd3f2ea0002\nCT: \nAD: \nTAG: c122ee4d6df5f23f1e48732516e7\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 57eb6a05eb054b404f2d87623fe1340b052d20597e9331ef90ad684d4f660202\nNONCE: ee2468096c2befc44e16d351\nCT: \nAD: \nTAG: 0894132b1594df56b6114419cd4c\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 8704fce138b35ccf644ed70285300df5a7ddb19c3a1e244b6c6764c565812fc6\nNONCE: 8acfc17f01e8200da86009c1\nCT: \nAD: \nTAG: 914a956e661b064f91cfe779bf14\nIN: \n\nKEY: 6bdf1a1a465dc9777147de2f73527f193883ea5241d5cd209939290d73a3e149\nNONCE: c9e36c568487a78cf85269d6\nCT: \nAD: \nTAG: 34fbc5a0c2bb9bf937c4316838da\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 4da9edd0d5f7fe42bd0ff2d6342c9588625bf24ed3e3f5c1a456f2915ead961a\nNONCE: 3f1ece70c54dcc320de79733\nCT: \nAD: \nTAG: 083510a941749021d64ba5ec59d4\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 7a83b53a0b11f4477f673cad123ea5548903759e9d5d856235c59ff3af1caa8d\nNONCE: 7c3f82f7bf425398742916fc\nCT: \nAD: \nTAG: 7de106e354fe15c5111cb127335f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 4f17984fd466eede268b8ef75629cc7bac53b2dfcaf326700ac1a9841ea580fe\nNONCE: 2a9d7d283c33c953ed0fb90a\nCT: \nAD: \nTAG: 9befbbe25a1f2d7e8eb39689f39b\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: d7a5f32bc7ba818b26fdc03fc1a4de7d8837bcebc023b36591284a0973fde527\nNONCE: d590b0a69cea63c8c3293f2c\nCT: \nAD: \nTAG: 1080033d9a947bb879b1df5576c3\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 270b3ca4321ba7346226c89868483a6e6e679cd896f8e9d52cea9000e1939746\nNONCE: 3f29410035eeb93d03a7b2d1\nCT: \nAD: \nTAG: 7529cd4204b9a8e149034907e829\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 0bf97de28518991a5043c1b6d56d2ef87d38d195d47984fc1ccbfcb7f3860908\nNONCE: 1d76c092d2dd79a62b970403\nCT: \nAD: \nTAG: e63432142ef64756c38d693fd8fe\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 585daad086f48a3dffd89e3712f1f8033e8b168c107ddc7f3454690decc132d5\nNONCE: e2f2a83f6aaec072d8268cee\nCT: \nAD: \nTAG: d400ebadcef9ce147a3b00ea39\nIN: \n\nKEY: 42de0aed7e4b699546d351af85db208d79273393bde6318e33232850c65457e7\nNONCE: 82bd822d011e38319a76dfe2\nCT: \nAD: \nTAG: e262760567ca2ca6cbb3fa5703\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 00ae365607def9dd57d4f38f131ea9659abdd96eae6c52179b16796cf1ee53a0\nNONCE: 56d2485bb17cd4a6791ebd07\nCT: \nAD: \nTAG: 8460e8e8fbb4c8212c96fee330\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 27271e1fa38fadaae145b7fdb15c357c95cf7cbe77961561b59b0ad27df57b5b\nNONCE: 22fb1457c21627e8ddf5017c\nCT: \nAD: \nTAG: 0b6b620e9f5d1ba6e886d71e75\nIN: \n\nKEY: eb9fd8b60a524219cf09805e6aabf65ebb1730fe3b1ef0d91adf054", "44088d665\nNONCE: f8745cf1171199ee02607d59\nCT: \nAD: \nTAG: 65866a3b4455bd3ee58a88d7c3\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: cc72d5bdb02986acecd74dfcf20d880ae5bc14afd26db1b9f04fe08b85a4bf6e\nNONCE: b2d26145ed1be0cf782ea5fd\nCT: \nAD: \nTAG: 101f1e5c96748958462434cdd5\nIN: \n\nKEY: 4ac59235d7350ddad294fa9e0ea8e246a7c9f10689d2b0bd9e0145ecebf89885\nNONCE: cef0563a1797cc62589af02b\nCT: \nAD: \nTAG: a5299a6eaaf9b3ad82bd23b340\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 30fc4f8d634f404d1a66791d7c745d841c635320b7a1b28fbd26f3154b952d19\nNONCE: e7addadf0740e62ee32dd111\nCT: \nAD: \nTAG: 4c9a4fdecf2af9a609b67b6564\nIN: \n\nKEY: 3896ca84611b23bda4af5cc9fe0d62cf093019f1192a2c27cd7d2c1320102998\nNONCE: 0cc3ae5b56f3db71e2195e6e\nCT: \nAD: \nTAG: 0413fefe638d6613ad15ff5422\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9d4cfc649a6c146c20b17e44af835c42cafe4c8e1ebcba092c22d77fdb0a5478\nNONCE: a27cce894b2dc42f1754aae0\nCT: \nAD: \nTAG: b1259f4cae8c4708fd46e60c26\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: e7ad81d26e5a639b7e99d3b205ddb6a09598ac804b5913ee8b8e724e5b69d003\nNONCE: 08fc7f46f6f600feecefc008\nCT: \nAD: \nTAG: e51e2ed634294d73942a9aafd8\nIN: \n\nKEY: d9288c7e44440398e9c5b6156615bb0d63064cbcee22cee46e710cdf6753e2cf\nNONCE: dc37870991b27ae42dfd6c33\nCT: \nAD: \nTAG: 5408193318902ae3e92b4b6eca\nIN: \n\nKEY: 3e7c2c5dd3c9e092e45d0ee9eaa2f8c2714cf845f50be787cb6a3e65726a7a56\nNONCE: 0e39d519e9d6db4dc462f2ec\nCT: \nAD: \nTAG: bbf6cd3c840ba5347b281ccd99\nIN: \n\nKEY: 29ae533689bc22ea72580a42260b71128504ff55f4025f455fe656a7cd534c08\nNONCE: fd0a67e9cdea915eb367e069\nCT: \nAD: \nTAG: 6421e4d996407496e09231a96e\nIN: \n\nKEY: 7930342c63e26215a80eaa824ec382d452c6d71f81a7ac2667b1baf1b139cee8\nNONCE: 920cf0199c32cdcf419971ad\nCT: \nAD: \nTAG: 866e974b681af38f0a98074ec1\nIN: \n\nKEY: 96ad13bf2492f4675340e65b455bd0b884574f5b6c4fea774462496b8a0925ad\nNONCE: 2ddf6aa50c2ea9106ce0a951\nCT: \nAD: \nTAG: 10a471540cc7bae14273f2e2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: b1599e78f21b175a3038aacde9141f7198c301ff80276020c1974342baad1e55\nNONCE: abdd25c66d7821fde6ec0b76\nCT: \nAD: \nTAG: ab077a703bfb6646d5aef26b\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 7c487e31244dcbf84ee6e7c03714302aa3e52ae1282f8de72c44d3777e73593c\nNONCE: 297e056784c12646ed2fa6c7\nCT: \nAD: \nTAG: 08c53ea6cc85662f0d9bb018\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: d9304fc27885ac2ac5cf871e9c5758ad66babbc50b26d1c3e32d00ebb4273525\nNONCE: c73d0831e8e23cec9ac4143c\nCT: \nAD: \nTAG: 2f19c7a022909777853ccd5a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9f6fed7d59ef1650244ee0966f647179968edb74f5d9b4ea412300979d2c9d9d\nNONCE: c0d8eafd572e76402bf2421b\nCT: \nAD: \nTAG: 157519d699f8f19b6ed0a4c9\nIN: \n\nKEY: 72eb01f911a998bd534b696b0ce99cbbe7788f1d5f3f1c07f5286daef7007ad0\nNONCE: 6930e168edf7be096aa92f77\nCT: \nAD: \nTAG: 8229b618c52079abd2d8cf96\nIN: \n\nKEY: e625dc4d57da4975c5e2bbdc3be61716c910975848f2a06a8a375c12ceff702a\nNONCE: 44925a2c8f2eaa0d02d33047\nCT: \nAD: \nTAG: 9a0f456312dce97e23d4af58\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 648914e5322383a1984b84726deeead89dd19c60556622d61ce649ba74b152b5\nNONCE: 8a070725978278d7e3e6fae4\nCT: \nAD: \nTAG: 40819c4375be0ec64543f5c2\nIN: \n\nKEY: b0a2fc05e05eb23b03f6fd073d1502fa071cfdde6e4a57f344d3b46587d44667\nNONCE: 6b05139925fca211928767ab\nCT: \nAD: \nTAG: b927b087690a7d2fdc5da1d7\nIN: \n\nKEY: 9a56a45297bf12c63db8207118c3570f05eebcc31a87ad20ac85fad9a9cfcbce\nNONCE: 2108bf02ae1b9191e5f20e06\nCT: \nAD: \nTAG: c1a03eeb46a080507fb39e33\nIN: \n\nKEY: 98f9da937717a7698eda75b5671ea209dde1b37506d2a5874b9ec57805310e73\nNONCE: 4db9d0d9cb66a80565af6c84\nCT: \nAD: \nTAG: eeef79af87fe6bc0d0476d16\nIN: \n\nKEY: b5c699b548cd0839a24eec8aee1b0a5bc42de0bec78aacaa9b18b666986891b4\nNONCE: 87e21a74da97bc02d7f9e0cc\nCT: \nAD: \nTAG: c4a584270a5b0bfe0ac979bb\nIN: \n\nKEY: cd3adadded7c7ae047ae38c93a73d029fdf4e12a8a0c2fbc6c5f354fe07b0fa9\nNONCE: acf47c06e93b5d042c8444b9\nCT: \nAD: \nTAG: f1391598e2172300fb5279dc\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: cf90a8f6731d71abaaa354076c69812a96145b4d283369b0c519ce1818c85cff\nNONCE: 718b1b2d8979f54e357bce92\nCT: \nAD: \nTAG: ea7dc6b16c9a870a560facbc\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 849ee5f331af0bbb2366033ca07c29fe8ec64b2e18f8d2af91d88c08b958763c\nNONCE: 23b34d13fa0e2c954e0a5974\nCT: \nAD: \nTAG: c4a18f7724ca968055aa0d8a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: caed02e544e9eb475360e9b3e4b6e7572605081790ec54ea39ab9bc67932e0fd\nNONCE: d2ffaa7f0b6c3c708238a1b0\nCT: \nAD: \nTAG: eb053ee206ab47cc\nIN: \n\nKEY: ddd2cc50ed30a394387adcef5dcfdb7405082d62b3a513902977301f22ccf851\nNONCE: 4dc0d75a392e1b1cd2e5b6d6\nCT: \nAD: \nTAG: 11e713078f660a45\nIN: \n\nKEY: ae166cba7907a50a2faeb8a1f835e0a21b6074f403d2fbf265ca8525663865c5\nNONCE: d70ea09bd1dc20d47625a7ce\nCT: \nAD: \nTAG: 8a0138d6b06dbee0\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 119c935ac47a3d2e2bbc2fe753c34727ea28e96c288a8b46a0c884066a85edc5\nNONCE: e04c72c0dfec84d52bcda87d\nCT: \nAD: \nTAG: 5ca9d3a5b75b519a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 166ebf390a9aa54e3c525b06497adcdc9b394ba25e65731c0004e9ff9793e0e5\nNONCE: 7e8e61d97c17a303510d581c\nCT: \nAD: \nTAG: 7c2a0b411cc8f2f5\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 7f3c7d35e06b60a0e948212da1170467a54b88a488e7edf4b7fbf9d03f645d4f\nNONCE: 3b21437bd320ffc3f90f835c\nCT: \nAD: \nTAG: 7e18457fe81b2302\nIN: \n\nKEY: 37875cda07364dae174c1b422e0daa8b949b6478332988504ef3f633d58df4ca\nNONCE: 746e59be002990d169b4a783\nCT: \nAD: \nTAG: 81be9ff1ddfb32bc\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 6e1eec50f2eb68da620a913a2a0d2250ad0541f3acf88fed2f890f840c0046ad\nNONCE: a75bf504651adadd31743464\nCT: \nAD: \nTAG: 49d75b1504d39ebb\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2864eb7a7025da05ea9ed75f07baf26d90b8eb93f2c57dec6dcc87e650f48f54\nNONCE: 98b764326898d43e443f441b\nCT: \nAD: \nTAG: 1996834986570afe\nIN: \n\nKEY: 8ef06b7a47655a6248c782291476d983d43e17cf419852868d488d2a6093f750\nNONCE: 40c3ceb10e9dddfe23569244\nCT: \nAD: \nTAG: ce828e8aa6056b7f\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 30ec395340ba1d05b9964dc932750e6bcfb3acabd1c07656ca3654128893d77c\nNONCE: 69d240b1d240c0c71cf10966\nCT: \nAD: \nTAG: 18b112b18cd0bd86\nIN: \n\nKEY: 18efa6f3395d20ddbd483924fabdbe105d70e69f4652b929207d9746b098ee11\nNONCE: 4f166cb3acc43383ec9b2bfd\nCT: \nAD: \nTAG: 4b34f4c59236dcbf\nIN: \n\nKEY: 540407922c1056e6e0df4c9a7af8360222cec57167161ad00121a5cc19bebd53\nNONCE: 6d9f32e3139a18fcd34c1e73\nCT: \nAD: \nTAG: f12553f984d4a1d0\nIN: \n\nKEY: ddd54500533cffd1af87c6f58d880d45c1d27c22ed283c110d04227658d443ac\nNONCE: 2cb369234c276e1838c9575a\nCT: \nAD: \nTAG: 7f43b5a32da7b9f2\nIN: \n\nKEY: 62450ce465840e8d49e7aab125f66817bf57ccb0553e5aa633150913406281eb\nNONCE: da552ec45463002256b07393\nCT: \nAD: \nTAG: dccb3788c2e2a66f\nIN: \n\nKEY: 5765ad16f4dbd4d4e6370dbfa18b8ef5ac37459e39556afaba9b553dea4c1b23\nNONCE: 59678f262588e4d526d9fc34\nCT: \nAD: \nTAG: a68f33ed\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: a29fa93614e9f714c73d3707d1142b2514fa8a14641f79ef14e9bf0e812f49fa\nNONCE: 68272acf71b1cdad4655dbdc\nCT: \nAD: \nTAG: b90e554a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 717d2a5396ae21560a895a7847f53c47956d155ca4dd2165137d3506ff48a7bf\nNONCE: 6ccd8086830f586fa3b0e777\nCT: \nAD: \nTAG: a618ac6a\nIN: \n\nKEY: 6ecf9a1db3e42ed91d2206646369d9eab43fab9efbf797a6b2633db3eebcff18\nNONCE: 7142907a03b12ba332d84107\nCT: \nAD: \nTAG: 57e1882b\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 186361bee6c4d37b94b6c9389216db63b7cf7c5b28592c290c02c9aa0978b6e7\nNONCE: f1a7b61b6a503665049d36ae\nCT: \nAD: \nTAG: aa52f4e2\nIN: \n\nKEY: d8d3fd180da0136621d9a7ebb273bdc4ae48fa72997c7b902c2c512c2bcc11e6\nNONCE: 4f7692221b2e295220f6a1a9\nCT: \nAD: \nTAG: 7c16931d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2231071e59bbfa627f0881f04ea13290302674e05f405f75e3c62d787d07c2f3\nNONCE: 65b3758e6418f04afa2b4d9d\nCT: \nAD: \nTAG: a56259a6\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: fa1dc19ed84ffa40c94ffd1021208f50dffe16e9f0a53b5ee6be55163a408618\nNONCE: 09bb332baa725ca0c72a150b\nCT: \nAD: \nTAG: 76c71a63\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 0a7733e3c0e7017b17abc46e25047b3b5d5a3f95bd45e069953d08761b826e9e\nNONCE: 0257955c4f6b354ae46b5d44\nCT: \nAD: \nTAG: 04f4bffe\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 060ecdff8a7325d76017b93071797b2c299d6519d0605b565c8550c66875cdd5\nNONCE: a8f8288d9124ee73c6b89f47\nCT: \nAD: \nTAG: f493e8eb\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 9a9d85fff37716f90d4523586e99046e66cede008fd8acdb55ecefcd9228d7b8\nNONCE: 8a7296be2b691ea45bf4cf9d\nCT: \nAD: \nTAG: d63728a4\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 2344f2cb986326d931d768e8f9bf7cbf7aa0fe91fe5d7a9d8e0591e1144a064a\nNONCE: 0fd7ad08c13f0c97f5c85d75\nCT: \nAD: \nTAG: 6196202c\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 17b00458ce181235bc704ea54cfed4a74d792350ea4e3e1dd4d1817b3720b4f6\nNONCE: c4ec09b35b857bea94a728a2\nCT: \nAD: \nTAG: acceb73a\nIN: \n\nKEY: 7e6c0a5cc37125408f8f11f5607054a3314924c36a7f1b1988c46cd06", "ebe4ffa\nNONCE: 299973ab4a56aaa8a67e6e59\nCT: \nAD: \nTAG: 1f450c0a\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 1b5b987676d7ce62c42d9103f7ee8b3964da272eaae5097a0e0b0a2678e6a382\nNONCE: 1828385a47e53ce3810c0bc0\nCT: \nAD: \nTAG: f938bdc2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 6dfdafd6703c285c01f14fd10a6012862b2af950d4733abb403b2e745b26945d\nNONCE: 3749d0b3d5bacb71be06ade6\nCT: \nAD: c0d249871992e70302ae008193d1e89f\nTAG: 4aa4cc69f84ee6ac16d9bfb4e05de500\nIN: \n\nKEY: 033360a08d0b2963ce4dcf807b772ac86ae3e8b8fabb9cd3a636f8ec54365646\nNONCE: 8dcaa63d13a2425395609914\nCT: \nAD: f9d15fc34984b8f4a7caa29a82b24c52\nTAG: 42bc9cc93a1c8592bd29c9ef9f907780\nIN: \n\nKEY: 4f1a5fc8e4689c493ef8e23a653e86e4d4c8972a2338653375b0f36a4feb91d7\nNONCE: 9b8221a631404088218fe487\nCT: \nAD: f09b0fc4e4ccb5e28dfcc0792a6800f3\nTAG: 31073f1a0050462a03c7ad0bbefaf93b\nIN: \n\nKEY: e70e4f6919b521dab68f0dff6b4aa57e443db4f8301186819d8611969af33b28\nNONCE: 63d5ff1ba0d5e69f5dc1c92f\nCT: \nAD: c29abcf1f61063c6765747da8980fde4\nTAG: 3d78ec2d237dfd57b8b125ff0912653a\nIN: \n\nKEY: 2c392a5eb1a9c705371beda3a901c7c61dca4d93b4291de1dd0dd15ec11ffc45\nNONCE: 0723fb84a08f4ea09841f32a\nCT: \nAD: 140be561b6171eab942c486a94d33d43\nTAG: aa0e1c9b57975bfc91aa137231977d2c\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 48f7b300acde77c3a00e8dcde06063761d2dc64809db5d39c7a671d2b2f7902e\nNONCE: 194e611ed5980b0e93a4a388\nCT: \nAD: 72ce59bdf0059bf33e03e5fc21f3a6df\nTAG: 7d26231fd58aea00331165c8adf912f3\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 94233d297c08899ccd69eeec3e4e258eacabee0cdc2c363c352e833200162599\nNONCE: 733fa0c7e0e692b0ea66a402\nCT: \nAD: b5bcc7ef6837b61253db277118fafc9d\nTAG: 024174b6f7fed276966d17b31cab2b47\nIN: \n\nKEY: c90ac1e868bb79467a58383f02440f9155d57dc719f0a22d0d6f088ebe7c18ae\nNONCE: 149a0b9691b35750f72e03e9\nCT: \nAD: 2426db7f430a090f5132c63d23504350\nTAG: 807b58bebd6de9752f62eec313def53b\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: efc390eb39011ec8078700f4de848298c26d750c9127fa79cb8c1089038da129\nNONCE: 13b65b7cf33db33b3d5afb1f\nCT: \nAD: 7e56ab79b176488969e51a58de554979\nTAG: 35ec21526ab815582d201582e7ddcd77\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 5c202933d7efedc1bdc4fcf72794bf448f6c22959978e1947e399d9f3386bf2b\nNONCE: fef59a2f3e7d9eae573ff06a\nCT: \nAD: 9cdab8e46ef227f113e1ce1dc7ee2733\nTAG: 76bf3a22f991625dda441975b4af8952\nIN: \n\nKEY: 577cd9f1a9f0f4b61455db0d5183536c2e5d000df5c812e140ca746ea9d05cbd\nNONCE: 7d6a93560b53453681028e45\nCT: \nAD: 7b4114eb668366fc26bc2078f04cac9a\nTAG: 294409118a4ac46ee9444464ac352cd6\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 942c44274a9dabdb86328484ee933d0d632efb6a074323ab41fac267c0b25e48\nNONCE: 961645b7ec62bb4e4bda29f6\nCT: \nAD: 0e4f8509aaa009192fa04425b9d803b9\nTAG: 2fd7f29b68ec985ec564926484df7e3d\nIN: \n\nKEY: ebacc6cd567c245f37100d76f2898a471a435b07d605a3251835f450f9861da3\nNONCE: 164617867a09dd08d75b8675\nCT: \nAD: 7f5b2c707a8199c8795d7d440664e9cb\nTAG: c8881e8c4dd1d62a2cf6f8458b45c0af\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 415fbefbe947204a5a4412372922cd68ef7cab6b7f48d8da868f24c2426e755f\nNONCE: f939844564c5b26e18b907d8\nCT: \nAD: 462ef98fe991867d0888954adc772edf\nTAG: 811b9c99e66456002558c8a8392b04ff\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 8f82e4eb127be9b5a2dedf8f3f16ed46df0443eab39d604523b2a0909044426e\nNONCE: e0d06f20e17990d17abedfd3\nCT: \nAD: 81f78234cb6c9f8c8134a81e29712457\nTAG: bbde500c67c81f7d2ecb214b33f298b6\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 3395a1485315c5b5e6353acb05ae9499c440a2e9f5c57494662f827235ea314c\nNONCE: 3b7e632571602456b49880f0\nCT: \nAD: f283f80226dacb69c8af089ec6b59e81\nTAG: 84c8beff4b0d160ee68ac613097f51\nIN: \n\nKEY: 737ef66d81c3c2610f77f90244b45c9fcbb3f46b41c8cfa959f1b64bf1af9a30\nNONCE: ee35b4f52756562c53f34710\nCT: \nAD: 591d20b3dad931c15958a6c08945f2c0\nTAG: 67786146498e15b97785ed29e3cf4d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 667eb074e723473425639188aeb1137645968b37fd51ac85ecf887630537e790\nNONCE: 66259c4c34952325039dae8f\nCT: \nAD: be4e71df8b90ae61fcfe2522fad707be\nTAG: 313f387ceb2fee4113a3b97a75a0cb\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 864c3c19d43a850bf696f546be59fa4939ee7a2b39fe0f3e56f6b777c4929d09\nNONCE: d53bb663a8d0aac07eddd12a\nCT: \nAD: 4ad4e048c24b370530f482a4d7a6d1ba\nTAG: fc0e69cd020693a0186da50cdc6f69\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 42b434401a46ab08b799571e8b2ff3834bf002ca910989ed86bafd5a6142d190\nNONCE: 81eb9cc03444f5d0dc3b76d9\nCT: \nAD: 82f75629976fd7ab11ef70c6f8f977f9\nTAG: bd1bb7d7cdb7f25a457b85e939c131\nIN: \n\nKEY: 7e4d9071738036cad1ddcaf8439d0f243aef78116dff67269fc3fec66b86384b\nNONCE: 3a7fbd41615e656a0ff3738a\nCT: \nAD: f4adfe43c17af941168fa4b879ebf209\nTAG: 48a7f7b1a1c05f20e9bf049bb562b2\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 345e15dfc70d4f0609cbc5724276f606ab3aa9d0ae4bcb5a6536dbfef8f5df62\nNONCE: 970bc624e62e6834b7f3fe5d\nCT: \nAD: 44a5fa62b3babf2c86064cc0a65b1cb8\nTAG: d7b83a03f18f6623bd41acc3f6f3aa\nIN: \n\nKEY: 6dcb770c7777225902bae16a6e77045ffe682a7985c265566c61c4ffb405a547\nNONCE: 1faf5b86290e23ff7411c146\nCT: \nAD: fbe8e5e071969c7baf0f4c1c2a830327\nTAG: 78a4078b4decc5e34d477e308f0cc7\nIN: \n\nKEY: ef9a0377ae02c600f6fdd5dd6f4f7a30954235539bc9b3fce0085b3b30d6c354\nNONCE: 33db5adfa43c37d002e82038\nCT: \nAD: 945b8a540c57923e7cd4ca319e40063d\nTAG: 3c0e1f73433c5d229e739fed399ff6\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 6ec5526e7cff0b75f9af20ea59e7cdbaa91a4194d51374527909a3bd6d8ba3bb\nNONCE: c23ff927bba76205628506bc\nCT: \nAD: 8ed268badda27f8fe5a16ce8a3d7fc2e\nTAG: 3079599fc1b2e66e1c9f668cf9c001\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: fdf860cfc7e769d262f1e0b0640a56e0081c75ea96376e4a51ff728dc4b11503\nNONCE: d29767af7bb47bc18fd7076b\nCT: \nAD: ee7e40f375e100fdaf39765d60429289\nTAG: 19f95691d2fc7d7724474ebb501738\nIN: \n\nKEY: b548e4934f5c64d3c0f0b78f7b4d8824aac46b3c8d2cc35ee4bfb254e4fcbaf7\nNONCE: 2eede1dc6447c7afc4415358\nCT: \nAD: 8bd50878c430718b7b3775fed76e5aeb\nTAG: a7186df4cec4bcf921ee8733359567\nIN: \n\nKEY: eb70ee93654a3ae49775d315e51c758bc0b61c1fa848089fc12c65419a00afc2\nNONCE: 87cd3cadd925b79636bf128a\nCT: \nAD: 80b04fb39d7b6096be12dec866de2d37\nTAG: 3f9902ce6dd2fefe0a9578276250f0\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: db8151b0d80c930331ed8c7ff7d8038b34ad20fbf537844f7ba9912b71213f1a\nNONCE: 32f9e46e555eeabf12bc59ce\nCT: \nAD: f2ba52d1e09c37eebdcf15250979643e\nTAG: 8817c90146b70b252c124e03ada704\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: 65b90acf1544349bfa1871163c92680139aa9a5e2b620c43b41cc59fe1cfc15c\nNONCE: 5cff688f2ba29cf9a6d94a7d\nCT: \nAD: 43d55cfde3d5832f0adbf3dc47943d00\nTAG: bb787f2450cda0c33b08579dca4e63\nIN: \n\nKEY: 34d3dd0a9cbec32dfe94c9707b48dff9e2ecdbee7ca28b3ca9dabbb3701ae493\nNONCE: f8e05f6e7a04cadca8b5c4fd\nCT: \nAD: 9e52b1a7c1fb736d659754e671caa840\nTAG: d6615a18f437f38311f5ac3a9f60\nIN: \n\nKEY: e8ad0a2b1bfceeac69ed3e075d4dc5fc03b3633919bc5edf0f1ffd9842424985\nNONCE: f8b5b6bde3fc26b7a553ecef\nCT: \nAD: ed8bc8a123b35e0e7ed3aa8f8820b0fd\nTAG: 008bb8ed513bf8d3210d1278382e\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: ac9d68e15be409d5998885b714bb51f0d5a75df29e4ed7be2c1c1e4c6db49ae4\nNONCE: 4bcd1869cdcb16adb45dfb98\nCT: \nAD: 9f81a65554c7185181fec88601051cfc\nTAG: a7ca610547cba6ec333371528c0c\nIN: \n\nKEY: e9a4f481187083070dc1956a7c34ee9b86791cd6e40353e3f868560ee77127c3\nNONCE: b7894710eb0cea0acf1838fc\nCT: \nAD: caf33a8552cd0caaf1333c9aed7eda13\nTAG: 326e875a09b9df1ada0321a005f2\nIN: \n\nKEY: 0220d839e195821944f343a71dde45006a2c3600df8883bc83a9fd60cc67771e\nNONCE: 8d22fe9571e9096c22f3fae9\nCT: \nAD: bad23a8f33857c447e89b0691b7fb03f\nTAG: 43c0cabf088b71fed4dabd63c2e8\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: b253cdbb8519abd630435f277d9d69f25c3fc7c87004e506092f05855854b9a9\nNONCE: 493bacee0dbe6edb5b77d1fd\nCT: \nAD: ccd5a9521aaa06b967316be581487a63\nTAG: 01afc617f6a2786dcf13ecc00bbe\nIN: \n\nKEY: a0cf288734824493aa3673f95e68d07e289d394a04f2e3e5881afab773f1e242\nNONCE: 2c18ee9f12c5229c0cfc3f43\nCT: \nAD: 0b89b94d636559adc46902e463514e12\nTAG: c933b5cee0de1a2cab183afe3ec5\nIN: \n\nKEY: 3271f86968b3fd49bf4ec0e572616e2b96edd4a530c519b542ca926b09a92efe\nNONCE: af184a643754b70eb60b15f1\nCT: \nAD: cd839a71cd04bac3bc3c17871b6853f0\nTAG: ee6ba4f92dcee9c20b734811318a\nIN: \n\nKEY: 31a3e5aa9da7b44c302cd716937584195adfd26f24a6c49720a50d49762df80f\nNONCE: 9a999c5f8dade4184aae1301\nCT: \nAD: 0d84dd614fc04e58a971a270bec5b8f6\nTAG: 230bc3c4cb7c46e73ce3662d1e15\nIN: \n\nKEY: 865f524ea89d3299b372c01f5c072c1fe07f78e86620fcab5e3e96cd3044962e\nNONCE: 8df4d357882c805d5a5a5d95\nCT: \nAD: f9b70b9d4bb6f9562b10cb65ba1c0a7d\nTAG: ab59a2107248e6651e3d6f3e116d\nFAILS: \nNO_SEAL: \nIN: \n\nKEY: c12c83994e125c98e588d93f968572460345c44b5f94deecd538f0e5e7b0fd66\nNONCE: b684791dd61b9d940a0dee14\nCT: \nAD: 57a128a7ac50137520ffce721271b8ca\nTAG: e322ccdcd7594", @@ -2331,9 +2411,9 @@ static const char *kData27[] = { "ac4f2cd8a71f0fb078323449c5bd4e3cac8422318b06b44c49ccb701d69831\nTAG: 7347166e\n\nKEY: 36f610b6f08b020f4d3ca0faba582222016aa4ae44c619efc3aa8a3d794c4678\nNONCE: 842b957ca5f56f3b3686269f17f7e5b712593b8f37fd6079459958e31e07955f1a1861204e4c9e5a6b70205a0f45a33229b948524f7102dbaaf4e7a66900006168ec0c99e766fe89da8ae72dcda8e071f4c2fe75ce3cf903dd7b53ddf5ef95a88663c381afea00abc5e6be5c6477a9c5152312cf54af7b0c718a5985e5e8c7ec\nIN: 78a7deed4eb613cf2b3e572a3ff47e6551c7908fded855fba64247493a7360505f1a08e7ab850d00d02b970e3a2b5da9bb6c33\nAD: 6f91e23494601696841fd9dc0a0e7fdcb6b32aaaf2ee7b84270a59aaa2bb13b5bd1990a9fe3b0534751f10c2058dd3a550fbab61bdb4525fe6bd45326419a48339398f3191e7ddb0d8f65f4b00b4f5b6ca4aba9e99edcd0ad05f\nCT: aab48f5510ad845ebe79e7689dbf7ffb1dc3c6a810c1b754576576675e77fa81eace7882045220baded90ac098c6c65f26613d\nTAG: b21bccec\n\nKEY: 14644de3b6efc121077952f76c3e76ce847306a355e734e0869b51506f6bd979\nNONCE: 84a47e799c51d8052b27644399a4b807487d64c06ea037b62af6a0b0d1212f4acfd1d080518c1a9fec5b2c8ba4699ad7df155715cd049f5085e86c0601fab79ef1472fbb35065e7dfee9e4077e0e365d185f3c88564abf1fd1c3d3bf1a209a5e24a2b027895ef1524fe199c31a4bf690ea3ce209cbb9ffcbac4c06461e010fb9\nIN: ed1a2abba7e782a8f3625f5abcf613cb3d353837fb88edc5b117fc35ab553e244a60dd2ed67aa6b8a99ade1bab69cf04405957\nAD: 7e223758e23e4bb99ee7406030a2db698d5e32c69d5f19170c052bd597bbfd4bbbdcebbdcc801b1bcad869da195a8c4452bedec0fcd91fedb6fa49c38e187e8b536b69da683ce4a322b81e70c93eb66c9010ca3be5d54200d87c\nCT: 80b8c3829d991e5b1331cf229d7448988ed6271efccfe84998acc67e924c73362337da0d697f4b4613d06a88bb4ae8fa81c2cb\nTAG: 38b59916\n\nKEY: eb3fe1c8bb57d72fea9f9e9cc3cc746d41742716dd3cbf574eee95162bd93f9f\nNONCE: 1ee1a2fe7dab975fffd19230d80804b45662855c0a5bbd2802e47b2d3fe55b0c15e2383e7070404ce46670c0a2840a6e14945c5bd9ac521bad8ca7effd6dbe71f74eca082a490d15088d7bbfeb9cbb1e8ee86d77b1db35b43a259a14ab6b771ac58ce36bf99d28417a04d2d3ff2d4380a6b23ccd6e68b0ae58a6fa54c973b6a0\nIN: 0ace576340e524019888cb4900fd9b52e5382e4e36ac9a969c5f6bdddfac12c2d991ea9e2ed5f68dc4a51d62dab83df8f838af\nAD: 28d402e6e8cce27e47a0eb03b5497915c3b71399fb95f4bc6d3255cad73508eed443cd44e59cacf9177dd3ac1cdca5233bce39621227951d11f2a2012930822ee929dc791f3eaf1a97e219db04d6f178b804de60224ab120abdd\nCT: 50096632df34a1f2d8848304e20060d999a5b1eda1932774e30f36026da8c6c0baca7f6e59a7c74018c5f51075008b74424bd2\nTAG: 7d9d2417\n\nKEY: 85ee354b4675a9c5d16e3d6f4118043bd92f209f016f49efab7ce3023b78112e\nNONCE: 5c3b5a95147880f9d14373bc3886e92036a0abcb49fb6768e2811761cfcddbcac813bea95a5b76fa1ce5fc726708ddeee5d1a9196d31eb1f0c1d4992ba37a9c4179d223c460ff2b512a9d3cf3562c586d793efd94a5e93d4b1e86ae96c3aa6711a291ec710dfbd7ec46b2ed4f4085df511fabcc5e42bded5214253d235f12d14\nIN: 1b56de101a75bb9d1a5e77590be302837d3921278e480347944b92975e819e7a233339f31ecf02b874842fb5a136c810a9a9ca\nAD: d2eb4e760ed4fb687b32c6bd073bffaf9631ed3ab83101cab236352d024cf422b917a7660a484be236e4d3b3fa3343d3f9e87d86c50834a213b7ca2a3212c254564e1c59551c7bd3e01710a7d8c8419320a6d3362489aa368424\nCT: 67dec658a84468cb86268099e03ce701e9936c27b50059b5c9e8743df7df5b828364ab7025f854cb9e3cfb27ca5b717502b838\nTAG: 65a1bfa1\n\nKEY: 6f79bf94da7dde3c86009934d9258f1b3fc2f5382aca9c9cb8e216eed235f34c\nNONCE: 83e413c8e6f76b32aeb2960c11aa9e522d3994e14c18609c634c9cc1cf94f2c49a5347d3f440367f08a3322eb3560675bc4715d03abbe0da4a75208775e8bdc3ff2d33daa301f53dd75a83f74c998245c1826ad41602c3fea313098d20a65e417e7c6ff954d9c9b2458a04ab4deddf07dd22bc409211dbd121f5a95215d40094\nIN: 738516823e8f5d23f3181b297eb70be633e3b0cdd61117384e474e3223658167ad6afd83d9839bc925876e4e41a001f678a06a\nAD: 02a59b404f7fceabc06e0988bcbfbca1d08f75a83f2cb9542edf106702e2c9964d7e37ef86fb368a9890a4f2ae7f58f336cb2df990cdaa2775959c99cf1d11a59abe348cc5a47f98c447e6500b1013b38418677bd582c5fbdcd8\nCT: 183cc63f537b301e928a1efa211818a128964e5d025c7dde9ccd69e6a8dddc2b9824520e31d52cde506062d225407520a00155\nTAG: bb1df68d\n\nKEY: 0c5aa8e0b1979183b997f29362ae83700d3ba6190a210fc90541b17e45a46668\nNONCE: 96a1f2559204788f6bb0ea50bd598614a7ce518ec4dab951e9517bc46357448a6b4aed200ee21a7543fbff861ed56321195675d9225cac72547d3e4880b9517672b86206e9acffba53d66526e919587e7b284a612aec391517e907f2bf6a625a990466d66cb14c690be17b7a22085ab032a05dbc16a99437670cfa2bb8a283d6\nIN: f460e28cb67fb2b0aa5315c25f8132e5a8298ae3077ee0bd918fe1acd6312a98a3412a3198c834beb932200281fe6128a08be3\nAD: 9c410a60931ef1cb5f6fa9c7da0a96ca537daac174fd4f1bf247de1e25d3dd44a37f54d58ca48d1ecdcf2ebff8959c2db0ac82244ac76243404adf45be72aff4b19be063c088e1810f9eb4b894f405c61691e2789297b17430b8\nCT: 3e12c2a17cad65077073385c055054bc8f72f1beca59b0636384d027dc1350d39a8f3c77f5bc26eb916287dd742bcd3a819299\nTAG: 154a3b39\n\nKEY: ace49b23bebdbb36cae24809c68cd4763c000c689c77d230256f6e5206ba178c\nNONCE: 34e829796c7d186b3c83c894b3f36f3f07d66261670f4c1f74c83b074b2b7e5fabd8756d2c9676bb52e9c7a62c7c26376128d1ffda5f9ad5d7b48724d46672eabf83ab9e6cd596510bd9ab3be81089c4262a9f8a88820c6e27a49593bf91b9dbc884b4548aa9ec4bed9e1d5be57d413553459f5d8e7cbca84ac89babb45f501c\nIN: 9c85b9c441034e26c5ebf04580cf617eea19a001098c910a7eac423af2f5fb2cee0335fde1fe56bdfd31af513e99e92d5ad7cd\nAD: 419583e7bd2f698ddbbdd429a81654c37b07dd2d80f34c9ac3d0f9ef7329f39fb5c21db57bdd496fd69097736989fd0f1d3c803ebbff7d128ac31873754f881247896907574bcecfdf2eb3a5e6996050eafd68f0401d0543fd46\nCT: 9141c922cb598ae9dd3aefd9593e2788870e9ac546fb3fbf5ba0bd1479216743cb603c4cc2fad030796f9cdb5b325ee4c33d8a\nTAG: 356fdb25\n\nKEY: 69e095a9ae4cd697869b845c4e848b7fe1511d1ee334ffa63ea427eee18a6b54\nNONCE: 7ae669a8b81bbcc2b72724a14169f1e2e1c114c0ff3ef33434a82d368272525398ae1a9aabb1c50ddebfca5e853dde04b46518bc94b91b51364c82301087ca30852ec7ac52f51ecda1c2ca2e099c040929f6d1236157011ddf7e928df7fb329a012752eb66cdb725e416e7a10108b2bd4f676b5ab85b8f33438c273bddb8cffa\nIN: b2727222246b940448a24741984ab6afe5e9474e60cbb8ce714110390f1c90b33ed0ec0267b86cc305b9807e370ca146bd61c4\nAD: 74a1899056c4ef9d848cd7c8d8ca377c6810912c62e428fe5acb60908abae48c887e7460943e9d6795fa6203b994e05799ab8edb55c29fcdccc3c41b3b74346f354a214d3abf891b8058e55461d3f68c3a2897bc514212aac91d\nCT: ddeaac80cb1db067d40143a382eedb2183809153db5b23528c476ae25c9db5d28d53dbab6f59ac5c016150f8384f5b84767189\nTAG: 0936e1ff\n\nKEY: 9c8e8c0638b76c552d1ce80028b707286bf2a84568d7021179be55708e820adb\nNONCE: f414375eb3faa866349ee5a6f11db10b2d2b32719906fb25f22ac2053e9f402c4cf545ae973336ada616d99fd57e7b2fbb6bb8f167fd907efbd9983515d509cbb6966778bccfdedacd9cb58b0a8fbf0a3900128f9f47317485e2c8e30a65f68e43ff8ed0b20c83681e750214b8f004f2529f1f3fb06554a47ffb8532edecf949\nIN: 8af304c8d9ff794d784cca9bafec22868cf7cf5c038b2afa7cefbd84be5d98b50d3009bad9d69083abf47b5068d59465c10389\nAD: 913b191b128e8d021ca46d29455b8082e7013ea49e1c931fe94adf3cfde26785ad9e9828eb48bdda066eb530c5af62481eca4401fe31eb320f6c52011db38f98144a0ea5f9fa6d5c373c76eead287e67e83f9dde0f2e27a6c40e\nCT: 63a8f8e0183e5c30532dd6d5235d6418828243e4ef9aab82ad537e20fa11fe188d440a7fd5a53669422c65fed98a00e4631f44\nTAG: 33491cd4\n\nKEY: d74eb3cfdd9fd9fe176415e1973a12f0110ef55568746e99d07d91b339cee79f\nNONCE: 06b5cc871a93bf13726836392a7e134f2b122f2238b086f18ec88f16d21f1914551a63a169e97c9dadabc9f488bf54a7883e618e59472041dd74ad356e7d92f8666af1b4b2cdb35fb0d722ac0b31d2fd475052507eafb98d5c2109b5f10254957fc9b4c6dbfb3bf4692771b4ed305d7521f5842d1aeaca0ffbab8247fc3b76bd\nIN: d654f510806c9ece9c12dc749cb9a08467cac2cad1afcf3b4a41a2e0873dea9bc0cf61b7aac2ebba93eb46ae6c5f11610d0b41\nAD: 9855a05c20be9b2416fa0032d94db428c949e68262f8a084ce3762f85c3edbe6175ef48279141822c101929aecf36e8a68e8fec8524945debb54e046b3c71a44630e569ec849691c7f0f9a74e374d27732df33578c5bde492907\nCT: af6f67769f0f099e6590e97dc6d605dea986772a68966408e81d49b1e8d24fd835daed0d4bda048c47d5ef87f22752e99e1446\nTAG: d449dec7\n\nKEY: b5f849da887e3c1878b6775aff7e49f5f31ed8cdf9f79ead5b36219eea87af80\nNONCE: 63f75fd55a8bf19eadfa23eb7a3e5c8fd13d79f6bb6ba414d2027fb08283f5108c11c2d49db52f4c68c11164c8a1585bf115512cbe5f5aa478c6c0e91864f5198862a694f0c2471aacd32ba57be1a33f04a56fdc60a3dcdde73c7714c10eb67b749433b1b3027b3c4b4f29fc57c3eaad9eefd033dc4d42bc75b36e7445a383db\nIN: c1a27f693387a1c8f5fd1eed0c5cf3111897dc8797b4e63e89bcea06cb19b734e354d9f539f5af700641f0f4acf91ab52147f0\nAD: 6dc78b3a5ea409838b533ebd77cf1d1b4808fef131275a0d4dcd94ca0f55b9dd86017bd664e036c2fa756c65a7a7d246229900fa468349eb2de18b5bf1af0f7da56ed0377a65f5e650ddf081c4a29eb985456b276b4d303b7832\nCT: 837a", "ff99c32f665841239e0897134461fc3e8faa8f9965eca5dae67b2934e0816f39d36c45ef8a0b8066ae4f9752e65ef3a6d9\nTAG: 94b73bcf\n\nKEY: cd670a8ac109d0f0e436ee42e490d5576bb7c13230f727b150b473bde659826d\nNONCE: 719191db1dc5ae92cf75cd8ff02ff036e78d6bef59714e5d40c24301443952148c61ab2e7e15d95f8d1792ee307a27c0112ec1b28c4a0416f76290b77d89088542d13649d17af09d6c5302438895534dedbb587f543c0d76b1e3e065ce6a261473d27dab6a928ad1fc786333dac512f3b521760dd1f67907292d868423a4f64b\nIN: c94ebec7d8aa421bfa9a0203520e02570338d12359c5b16d51050cd3f802351b17cad85b52ea9b42147f528a25e52c170c6308\nAD: abdf817a7ff3f28bd0b5ef0c2ec02ccde1799d4dea806580941f63b7840b2deedd3873ad1c3186ee3c6b6fa95062fcb56e33c6737532e7c326e116f2da4cc920c8bb354e8d2e27c1920962e16a4c89521c4e1699f2145f742d36\nCT: 286b594cf9a92b2d7348f0c75619e14916f2cafb990cc2d6aa07162d0703a9f7591e40eae402edfc64cafbedfc7ec2147acd51\nTAG: 22d3ec0f\n\n", }; -static const size_t kLen28 = 81764; +static const size_t kLen29 = 81764; -static const char *kData28[] = { +static const char *kData29[] = { "# Generated by \"make_cavp -extra-labels Cipher=DES-EDE3-CBC -cipher tdes kat_des/KAT_TDES/TCBCinvperm.rsp kat_des/KAT_TDES/TCBCpermop.rsp kat_des/KAT_TDES/TCBCsubtab.rsp kat_des/KAT_TDES/TCBCvarkey.rsp kat_des/KAT_TDES/TCBCvartext.rsp\"\n\n# File 1: kat_des/KAT_TDES/TCBCinvperm.rsp\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 95f8a5e5dd31d900\nCiphertext: 8000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: dd7f121ca5015619\nCiphertext: 4000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 2e8653104f3834ea\nCiphertext: 2000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 4bd388ff6cd81d4f\nCiphertext: 1000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 20b9e767b2fb1456\nCiphertext: 0800000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 55579380d77138ef\nCiphertext: 0400000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 6cc5defaaf04512f\nCiphertext: 0200000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0d9f279ba5d87260\nCiphertext: 0100000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: d9031b0271bd5a0a\nCiphertext: 0080000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 424250b37c3dd951\nCiphertext: 0040000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: b8061b7ecd9a21e5\nCiphertext: 0020000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: f15d0f286b65bd28\nCiphertext: 0010000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: add0cc8d6e5deba1\nCiphertext: 0008000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e6d5f82752ad63d1\nCiphertext: 0004000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: ecbfe3bd3f591a5e\nCiphertext: 0002000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: f356834379d165cd\nCiphertext: 0001000000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 2b9f982f20037fa9\nCiphertext: 0000800000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 889de068a16f0be6\nCiphertext: 0000400000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e19e275d846a1298\nCiphertext: 0000200000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 329a8ed523d71aec\nCiphertext: 0000100000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e7fce22557d23c97\nCiphertext: 0000080000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 12a9f5817ff2d65d\nCiphertext: 0000040000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: a484c3ad38dc9c19\nCiphertext: 0000020000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: fbe00a8a1ef8ad72\nCiphertext: 0000010000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 750d079407521363\nCiphertext: 0000008000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 64feed9c724c2faf\nCiphertext: 0000004000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: f02b263b328e2b60\nCiphertext: 0000002000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 9d64555a9a10b852\nCiphertext: 0000001000000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: d106ff0bed5255d7\nCiphertext: 0000000800000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e1652c6b138c64a5\nCiphertext: 0000000400000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e428581186ec8f46\nCiphertext: 0000000200000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: aeb5f5ede22d1a36\nCiphertext: 0000000100000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e943d7568aec0c5c\nCiphertext: 0000000080000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: df98c8276f54b04b\nCiphertext: 0000000040000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: b160e4680f6c696f\nCiphertext: 0000000020000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: fa0752b07d9c4ab8\nCiphertext: 0000000010000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: ca3a2b036dbc8502\nCiphertext: 0000000008000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 5e0905517bb59bcf\nCiphertext: 0000000004000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 814eeb3b91d90726\nCiphertext: 0000000002000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 4d49db1532919c9f\nCiphertext: 0000000001000000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 25eb5fc3f8cf0621\nCiphertext: 0000000000800000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: ab6a20c0620d1c6f\nCiphertext: 0000000000400000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 79e90dbc98f92cca\nCiphertext: 0000000000200000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 866ecedd8072bb0e\nCiphertext: 0000000000100000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 8b54536f2f3e64a8\nCiphertext: 0000000000080000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: ", "ea51d3975595b86b\nCiphertext: 0000000000040000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: caffc6ac4542de31\nCiphertext: 0000000000020000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 8dd45a2ddf90796c\nCiphertext: 0000000000010000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 1029d55e880ec2d0\nCiphertext: 0000000000008000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 5d86cb23639dbea9\nCiphertext: 0000000000004000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 1d1ca853ae7c0c5f\nCiphertext: 0000000000002000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: ce332329248f3228\nCiphertext: 0000000000001000\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 8405d1abe24fb942\nCiphertext: 0000000000000800\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e643d78090ca4207\nCiphertext: 0000000000000400\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 48221b9937748a23\nCiphertext: 0000000000000200\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: dd7c0bbd61fafd54\nCiphertext: 0000000000000100\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 2fbc291a570db5c4\nCiphertext: 0000000000000080\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: e07c30d7e4e26e12\nCiphertext: 0000000000000040\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0953e2258e8e90a1\nCiphertext: 0000000000000020\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 5b711bc4ceebf2ee\nCiphertext: 0000000000000010\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: cc083f1e6d9e85f6\nCiphertext: 0000000000000008\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: d2fd8867d50d2dfe\nCiphertext: 0000000000000004\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 06e7ea22ce92708f\nCiphertext: 0000000000000002\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 166b40b44aba4bd6\nCiphertext: 0000000000000001\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 8000000000000000\nPlaintext: 95f8a5e5dd31d900\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 4000000000000000\nPlaintext: dd7f121ca5015619\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 2000000000000000\nPlaintext: 2e8653104f3834ea\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 1000000000000000\nPlaintext: 4bd388ff6cd81d4f\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0800000000000000\nPlaintext: 20b9e767b2fb1456\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0400000000000000\nPlaintext: 55579380d77138ef\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0200000000000000\nPlaintext: 6cc5defaaf04512f\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0100000000000000\nPlaintext: 0d9f279ba5d87260\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0080000000000000\nPlaintext: d9031b0271bd5a0a\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0040000000000000\nPlaintext: 424250b37c3dd951\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0020000000000000\nPlaintext: b8061b7ecd9a21e5\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0010000000000000\nPlaintext: f15d0f286b65bd28\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0008000000000000\nPlaintext: add0cc8d6e5deba1\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0004000000000000\nPlaintext: e6d5f82752ad63d1\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0002000000000000\nPlaintext: ecbfe3bd3f591a5e\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0001000000000000\nPlaintext: f356834379d165cd\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000800000000000\nPlaintext: 2b9f982f20037fa9\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000400000000000\nPlaintext: 889de068a16f0be6\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000200000000000\nPlaintext: e19e275d846a1298\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000100000000000\nPlaintext: 329a8ed523d71aec\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000080000000000\nPlaintext: e7fce22557d23c97\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000040000000000\nPlaintext: 12a9f5817ff2d65d\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000020000000000\nPlaintext: a484c3ad38dc9c19\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000010000000000\nPlaintext: fbe00a8a1ef8ad72\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000008000000000\nPlaintext: 750d079407521363\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000004000000000\nPlaintext: 64feed9c724c2faf\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000002000000000\nPlaintext: f02b263b328e2b60\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000001000000000\nPlaintext: 9d64555a9a10b852\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000800000000\nPlaintext: d106ff0bed5255d7\n\nCipher: DES-ED", "E3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000400000000\nPlaintext: e1652c6b138c64a5\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000200000000\nPlaintext: e428581186ec8f46\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000100000000\nPlaintext: aeb5f5ede22d1a36\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000080000000\nPlaintext: e943d7568aec0c5c\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000040000000\nPlaintext: df98c8276f54b04b\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000020000000\nPlaintext: b160e4680f6c696f\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000010000000\nPlaintext: fa0752b07d9c4ab8\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000008000000\nPlaintext: ca3a2b036dbc8502\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000004000000\nPlaintext: 5e0905517bb59bcf\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000002000000\nPlaintext: 814eeb3b91d90726\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000001000000\nPlaintext: 4d49db1532919c9f\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000800000\nPlaintext: 25eb5fc3f8cf0621\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000400000\nPlaintext: ab6a20c0620d1c6f\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000200000\nPlaintext: 79e90dbc98f92cca\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000100000\nPlaintext: 866ecedd8072bb0e\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000080000\nPlaintext: 8b54536f2f3e64a8\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000040000\nPlaintext: ea51d3975595b86b\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000020000\nPlaintext: caffc6ac4542de31\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000010000\nPlaintext: 8dd45a2ddf90796c\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000008000\nPlaintext: 1029d55e880ec2d0\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000004000\nPlaintext: 5d86cb23639dbea9\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000002000\nPlaintext: 1d1ca853ae7c0c5f\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000001000\nPlaintext: ce332329248f3228\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000800\nPlaintext: 8405d1abe24fb942\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000400\nPlaintext: e643d78090ca4207\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000200\nPlaintext: 48221b9937748a23\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000100\nPlaintext: dd7c0bbd61fafd54\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000080\nPlaintext: 2fbc291a570db5c4\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000040\nPlaintext: e07c30d7e4e26e12\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000020\nPlaintext: 0953e2258e8e90a1\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000010\nPlaintext: 5b711bc4ceebf2ee\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000008\nPlaintext: cc083f1e6d9e85f6\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000004\nPlaintext: d2fd8867d50d2dfe\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000002\nPlaintext: 06e7ea22ce92708f\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0000000000000001\nPlaintext: 166b40b44aba4bd6\n\n# File 2: kat_des/KAT_TDES/TCBCpermop.rsp\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 104691348998013110469134899801311046913489980131\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: 88d55e54f54c97b4\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 100710348998802010071034899880201007103489988020\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: 0c0cc00c83ea48fd\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 10071034c898012010071034c898012010071034c8980120\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: 83bc8ef3a6570183\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 104610348998802010461034899880201046103489988020\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: df725dcad94ea2e9\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 108691151919010110869115191901011086911519190101\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: e652b53b550be8b0\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 108691151958010110869115195801011086911519580101\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: af527120c485cbb0\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 5107b015195801015107b015195801015107b01519580101\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: 0f04ce393db926d5\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 1007b015191901011007b015191901011007b01519190101\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: c9f00ffc74079067\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 310791549808010131079154980801013107915498080101\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: 7cfd82a593252b4e\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 310791949808010131079194980801013107919498080101\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: cb49a2f9e91363e3\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 10079115b908014010079115b908014010079115b9080140\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: 00b588be70d23f56\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 310791159808014031079115980801403107911598080140\nIV: 0000000000000000\nPlaintext: 0000000000000000\nCiphertext: 406a9a6ab43399ae\n\nCipher: DES-EDE3-CBC\nOperation: ", @@ -2345,9 +2425,9 @@ static const char *kData28[] = { "CRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000020000000\nCiphertext: b160e4680f6c696f\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000010000000\nCiphertext: fa0752b07d9c4ab8\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000008000000\nCiphertext: ca3a2b036dbc8502\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000004000000\nCiphertext: 5e0905517bb59bcf\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000002000000\nCiphertext: 814eeb3b91d90726\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000001000000\nCiphertext: 4d49db1532919c9f\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000800000\nCiphertext: 25eb5fc3f8cf0621\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000400000\nCiphertext: ab6a20c0620d1c6f\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000200000\nCiphertext: 79e90dbc98f92cca\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000100000\nCiphertext: 866ecedd8072bb0e\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000080000\nCiphertext: 8b54536f2f3e64a8\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000040000\nCiphertext: ea51d3975595b86b\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000020000\nCiphertext: caffc6ac4542de31\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000010000\nCiphertext: 8dd45a2ddf90796c\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000008000\nCiphertext: 1029d55e880ec2d0\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000004000\nCiphertext: 5d86cb23639dbea9\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000002000\nCiphertext: 1d1ca853ae7c0c5f\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000001000\nCiphertext: ce332329248f3228\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000800\nCiphertext: 8405d1abe24fb942\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000400\nCiphertext: e643d78090ca4207\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000200\nCiphertext: 48221b9937748a23\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000100\nCiphertext: dd7c0bbd61fafd54\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000080\nCiphertext: 2fbc291a570db5c4\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000040\nCiphertext: e07c30d7e4e26e12\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000020\nCiphertext: 0953e2258e8e90a1\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000010\nCiphertext: 5b711bc4ceebf2ee\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000008\nCiphertext: cc083f1e6d9e85f6\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000004\nCiphertext: d2fd8867d50d2dfe\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000002\nCiphertext: 06e7ea22ce92708f\n\nCipher: DES-EDE3-CBC\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nPlaintext: 0000000000000001\nCiphertext: 166b40b44aba4bd6\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 95f8a5e5dd31d900\nPlaintext: 8000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: dd7f121ca5015619\nPlaintext: 4000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 2e8653104f3834ea\nPlaintext: 2000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 4bd388ff6cd81d4f\nPlaintext: 1000000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 20b9e767b2fb1456\nPlaintext: 0800000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 55579380d77138ef\nPlaintext: 0400000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 6cc5defaaf04512f\nPlaintext: 0200000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0d9f279ba5d87260\nPlaintext: 0100000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: d9031b0271bd5a0a\nPlaintext: 0080000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 424250b37c3dd951\nPlaintext: 0040000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: b8061b7ecd9a21e5\nPlaintext: 0020000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: f15d0f286b65bd28\nPlaintext: 0010000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: add0cc8d6e5deba1\nPlaintext: 0008000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e6d5f82752ad63d1\nPlaintext: 0004000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: ecbfe3bd3f591a5e\nPlaintext: 0002000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: f356834379d165cd\nPlaintext: 0001000000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 2b9f982f20037fa9\nPlaintext: 0000800000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nI", "V: 0000000000000000\nCiphertext: 889de068a16f0be6\nPlaintext: 0000400000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e19e275d846a1298\nPlaintext: 0000200000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 329a8ed523d71aec\nPlaintext: 0000100000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e7fce22557d23c97\nPlaintext: 0000080000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 12a9f5817ff2d65d\nPlaintext: 0000040000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: a484c3ad38dc9c19\nPlaintext: 0000020000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: fbe00a8a1ef8ad72\nPlaintext: 0000010000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 750d079407521363\nPlaintext: 0000008000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 64feed9c724c2faf\nPlaintext: 0000004000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: f02b263b328e2b60\nPlaintext: 0000002000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 9d64555a9a10b852\nPlaintext: 0000001000000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: d106ff0bed5255d7\nPlaintext: 0000000800000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e1652c6b138c64a5\nPlaintext: 0000000400000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e428581186ec8f46\nPlaintext: 0000000200000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: aeb5f5ede22d1a36\nPlaintext: 0000000100000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e943d7568aec0c5c\nPlaintext: 0000000080000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: df98c8276f54b04b\nPlaintext: 0000000040000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: b160e4680f6c696f\nPlaintext: 0000000020000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: fa0752b07d9c4ab8\nPlaintext: 0000000010000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: ca3a2b036dbc8502\nPlaintext: 0000000008000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 5e0905517bb59bcf\nPlaintext: 0000000004000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 814eeb3b91d90726\nPlaintext: 0000000002000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 4d49db1532919c9f\nPlaintext: 0000000001000000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 25eb5fc3f8cf0621\nPlaintext: 0000000000800000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: ab6a20c0620d1c6f\nPlaintext: 0000000000400000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 79e90dbc98f92cca\nPlaintext: 0000000000200000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 866ecedd8072bb0e\nPlaintext: 0000000000100000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 8b54536f2f3e64a8\nPlaintext: 0000000000080000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: ea51d3975595b86b\nPlaintext: 0000000000040000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: caffc6ac4542de31\nPlaintext: 0000000000020000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 8dd45a2ddf90796c\nPlaintext: 0000000000010000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 1029d55e880ec2d0\nPlaintext: 0000000000008000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 5d86cb23639dbea9\nPlaintext: 0000000000004000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 1d1ca853ae7c0c5f\nPlaintext: 0000000000002000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: ce332329248f3228\nPlaintext: 0000000000001000\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 8405d1abe24fb942\nPlaintext: 0000000000000800\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e643d78090ca4207\nPlaintext: 0000000000000400\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 48221b9937748a23\nPlaintext: 0000000000000200\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: dd7c0bbd61fafd54\nPlaintext: 0000000000000100\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 2fbc291a570db5c4\nPlaintext: 0000000000000080\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: e07c30d7e4e26e12\nPlaintext: 0000000000000040\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 0953e2258e8e90a1\nPlaintext: 0000000000000020\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 5b711bc4ceebf2ee\nPlaintext: 0000000000000010\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: cc083f1e6d9e85f6\nPlaintext: 0000000000000008\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: d2fd8867d50d2dfe\nPlaintext: 0000000000000004\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 06e7ea22ce92708f\nPlaintext: 0000000000000002\n\nCipher: DES-EDE3-CBC\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nIV: 0000000000000000\nCiphertext: 166b40b44aba4bd6\nPlaintext: 0000000000000001\n\n", }; -static const size_t kLen29 = 70010; +static const size_t kLen30 = 70010; -static const char *kData29[] = { +static const char *kData30[] = { "# Generated by \"make_cavp -extra-labels Cipher=DES-EDE3 -cipher tdes kat_des/KAT_TDES/TECBinvperm.rsp kat_des/KAT_TDES/TECBpermop.rsp kat_des/KAT_TDES/TECBsubtab.rsp kat_des/KAT_TDES/TECBvarkey.rsp kat_des/KAT_TDES/TECBvartext.rsp\"\n\n# File 1: kat_des/KAT_TDES/TECBinvperm.rsp\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 95f8a5e5dd31d900\nCiphertext: 8000000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: dd7f121ca5015619\nCiphertext: 4000000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 2e8653104f3834ea\nCiphertext: 2000000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 4bd388ff6cd81d4f\nCiphertext: 1000000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 20b9e767b2fb1456\nCiphertext: 0800000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 55579380d77138ef\nCiphertext: 0400000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 6cc5defaaf04512f\nCiphertext: 0200000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0d9f279ba5d87260\nCiphertext: 0100000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: d9031b0271bd5a0a\nCiphertext: 0080000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 424250b37c3dd951\nCiphertext: 0040000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: b8061b7ecd9a21e5\nCiphertext: 0020000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: f15d0f286b65bd28\nCiphertext: 0010000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: add0cc8d6e5deba1\nCiphertext: 0008000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: e6d5f82752ad63d1\nCiphertext: 0004000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: ecbfe3bd3f591a5e\nCiphertext: 0002000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: f356834379d165cd\nCiphertext: 0001000000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 2b9f982f20037fa9\nCiphertext: 0000800000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 889de068a16f0be6\nCiphertext: 0000400000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: e19e275d846a1298\nCiphertext: 0000200000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 329a8ed523d71aec\nCiphertext: 0000100000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: e7fce22557d23c97\nCiphertext: 0000080000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 12a9f5817ff2d65d\nCiphertext: 0000040000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: a484c3ad38dc9c19\nCiphertext: 0000020000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: fbe00a8a1ef8ad72\nCiphertext: 0000010000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 750d079407521363\nCiphertext: 0000008000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 64feed9c724c2faf\nCiphertext: 0000004000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: f02b263b328e2b60\nCiphertext: 0000002000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 9d64555a9a10b852\nCiphertext: 0000001000000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: d106ff0bed5255d7\nCiphertext: 0000000800000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: e1652c6b138c64a5\nCiphertext: 0000000400000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: e428581186ec8f46\nCiphertext: 0000000200000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: aeb5f5ede22d1a36\nCiphertext: 0000000100000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: e943d7568aec0c5c\nCiphertext: 0000000080000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: df98c8276f54b04b\nCiphertext: 0000000040000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: b160e4680f6c696f\nCiphertext: 0000000020000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: fa0752b07d9c4ab8\nCiphertext: 0000000010000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: ca3a2b036dbc8502\nCiphertext: 0000000008000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 5e0905517bb59bcf\nCiphertext: 0000000004000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 814eeb3b91d90726\nCiphertext: 0000000002000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 4d49db1532919c9f\nCiphertext: 0000000001000000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 25eb5fc3f8cf0621\nCiphertext: 0000000000800000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: ab6a20c0620d1c6f\nCiphertext: 0000000000400000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 79e90dbc98f92cca\nCiphertext: 0000000000200000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 866ecedd8072bb0e\nCiphertext: 0000000000100000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 8b54536f2f3e64a8\nCiphertext: 0000000000080000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: ea51d3975595b86b\nCiphertext: 0000000000040000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: caffc6ac4542de31\nCiphertext: 0000000000020000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 8dd45a2ddf90796c\nCiphertext: 0000000000010000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 1029d55e880ec2d0\nCiphertext: 0000000000008000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 5d86cb23639dbea9\nCiphertext: 0000000000004000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 1d1ca853ae7c0c5f\nCiphertext: 0000000000002000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: ce332329248f3228\nCiphertext: 0000000000001000\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 8405d1abe24fb942\nCiphertext: 0000000000000800\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101", "010101010101010101\nPlaintext: e643d78090ca4207\nCiphertext: 0000000000000400\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 48221b9937748a23\nCiphertext: 0000000000000200\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: dd7c0bbd61fafd54\nCiphertext: 0000000000000100\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 2fbc291a570db5c4\nCiphertext: 0000000000000080\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: e07c30d7e4e26e12\nCiphertext: 0000000000000040\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0953e2258e8e90a1\nCiphertext: 0000000000000020\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 5b711bc4ceebf2ee\nCiphertext: 0000000000000010\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: cc083f1e6d9e85f6\nCiphertext: 0000000000000008\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: d2fd8867d50d2dfe\nCiphertext: 0000000000000004\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 06e7ea22ce92708f\nCiphertext: 0000000000000002\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 166b40b44aba4bd6\nCiphertext: 0000000000000001\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 8000000000000000\nPlaintext: 95f8a5e5dd31d900\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 4000000000000000\nPlaintext: dd7f121ca5015619\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 2000000000000000\nPlaintext: 2e8653104f3834ea\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 1000000000000000\nPlaintext: 4bd388ff6cd81d4f\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0800000000000000\nPlaintext: 20b9e767b2fb1456\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0400000000000000\nPlaintext: 55579380d77138ef\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0200000000000000\nPlaintext: 6cc5defaaf04512f\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0100000000000000\nPlaintext: 0d9f279ba5d87260\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0080000000000000\nPlaintext: d9031b0271bd5a0a\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0040000000000000\nPlaintext: 424250b37c3dd951\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0020000000000000\nPlaintext: b8061b7ecd9a21e5\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0010000000000000\nPlaintext: f15d0f286b65bd28\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0008000000000000\nPlaintext: add0cc8d6e5deba1\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0004000000000000\nPlaintext: e6d5f82752ad63d1\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0002000000000000\nPlaintext: ecbfe3bd3f591a5e\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0001000000000000\nPlaintext: f356834379d165cd\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000800000000000\nPlaintext: 2b9f982f20037fa9\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000400000000000\nPlaintext: 889de068a16f0be6\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000200000000000\nPlaintext: e19e275d846a1298\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000100000000000\nPlaintext: 329a8ed523d71aec\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000080000000000\nPlaintext: e7fce22557d23c97\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000040000000000\nPlaintext: 12a9f5817ff2d65d\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000020000000000\nPlaintext: a484c3ad38dc9c19\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000010000000000\nPlaintext: fbe00a8a1ef8ad72\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000008000000000\nPlaintext: 750d079407521363\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000004000000000\nPlaintext: 64feed9c724c2faf\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000002000000000\nPlaintext: f02b263b328e2b60\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000001000000000\nPlaintext: 9d64555a9a10b852\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000800000000\nPlaintext: d106ff0bed5255d7\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000400000000\nPlaintext: e1652c6b138c64a5\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000200000000\nPlaintext: e428581186ec8f46\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000100000000\nPlaintext: aeb5f5ede22d1a36\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000080000000\nPlaintext: e943d7568aec0c5c\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000040000000\nPlaintext: df98c8276f54b04b\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000020000000\nPlaintext: b160e4680f6c696f\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000010000000\nPlaintext: fa0752b07d9c4ab8\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000008000000\nPlaintext: ca3a2b036dbc8502\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000004000000\nPlaintext: 5e0905517bb59bcf\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000002000000\nPlaintext: 814eeb3b91d90726\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000001000000\nPlaintext: 4d49db1532919c9f\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000800000\nPlaintext: 25eb5fc3f8cf0621\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000400000\nPlaintext: ab6a20c0620d1c6f\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000200000\nPlaintext: 79e90dbc98f92cca\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000100000\nPlaintext: 866ecedd8072bb0e\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000080000\nPlai", "ntext: 8b54536f2f3e64a8\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000040000\nPlaintext: ea51d3975595b86b\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000020000\nPlaintext: caffc6ac4542de31\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000010000\nPlaintext: 8dd45a2ddf90796c\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000008000\nPlaintext: 1029d55e880ec2d0\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000004000\nPlaintext: 5d86cb23639dbea9\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000002000\nPlaintext: 1d1ca853ae7c0c5f\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000001000\nPlaintext: ce332329248f3228\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000800\nPlaintext: 8405d1abe24fb942\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000400\nPlaintext: e643d78090ca4207\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000200\nPlaintext: 48221b9937748a23\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000100\nPlaintext: dd7c0bbd61fafd54\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000080\nPlaintext: 2fbc291a570db5c4\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000040\nPlaintext: e07c30d7e4e26e12\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000020\nPlaintext: 0953e2258e8e90a1\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000010\nPlaintext: 5b711bc4ceebf2ee\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000008\nPlaintext: cc083f1e6d9e85f6\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000004\nPlaintext: d2fd8867d50d2dfe\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000002\nPlaintext: 06e7ea22ce92708f\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0000000000000001\nPlaintext: 166b40b44aba4bd6\n\n# File 2: kat_des/KAT_TDES/TECBpermop.rsp\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 104691348998013110469134899801311046913489980131\nPlaintext: 0000000000000000\nCiphertext: 88d55e54f54c97b4\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100710348998802010071034899880201007103489988020\nPlaintext: 0000000000000000\nCiphertext: 0c0cc00c83ea48fd\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 10071034c898012010071034c898012010071034c8980120\nPlaintext: 0000000000000000\nCiphertext: 83bc8ef3a6570183\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 104610348998802010461034899880201046103489988020\nPlaintext: 0000000000000000\nCiphertext: df725dcad94ea2e9\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 108691151919010110869115191901011086911519190101\nPlaintext: 0000000000000000\nCiphertext: e652b53b550be8b0\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 108691151958010110869115195801011086911519580101\nPlaintext: 0000000000000000\nCiphertext: af527120c485cbb0\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 5107b015195801015107b015195801015107b01519580101\nPlaintext: 0000000000000000\nCiphertext: 0f04ce393db926d5\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 1007b015191901011007b015191901011007b01519190101\nPlaintext: 0000000000000000\nCiphertext: c9f00ffc74079067\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 310791549808010131079154980801013107915498080101\nPlaintext: 0000000000000000\nCiphertext: 7cfd82a593252b4e\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 310791949808010131079194980801013107919498080101\nPlaintext: 0000000000000000\nCiphertext: cb49a2f9e91363e3\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 10079115b908014010079115b908014010079115b9080140\nPlaintext: 0000000000000000\nCiphertext: 00b588be70d23f56\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 310791159808014031079115980801403107911598080140\nPlaintext: 0000000000000000\nCiphertext: 406a9a6ab43399ae\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 1007d015899801011007d015899801011007d01589980101\nPlaintext: 0000000000000000\nCiphertext: 6cb773611dca9ada\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 910791158998010191079115899801019107911589980101\nPlaintext: 0000000000000000\nCiphertext: 67fd21c17dbb5d70\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 9107d015891901019107d015891901019107d01589190101\nPlaintext: 0000000000000000\nCiphertext: 9592cb4110430787\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 1007d015989801201007d015989801201007d01598980120\nPlaintext: 0000000000000000\nCiphertext: a6b7ff68a318ddd3\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100794049819010110079404981901011007940498190101\nPlaintext: 0000000000000000\nCiphertext: 4d102196c914ca16\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010791049119040101079104911904010107910491190401\nPlaintext: 0000000000000000\nCiphertext: 2dfa9f4573594965\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010791049119010101079104911901010107910491190101\nPlaintext: 0000000000000000\nCiphertext: b46604816c0e0774\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010794049119040101079404911904010107940491190401\nPlaintext: 0000000000000000\nCiphertext: 6e7e6221a4f34e87\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 19079210981a010119079210981a010119079210981a0101\nPlaintext: 0000000000000000\nCiphertext: aa85e74643233199\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100791199819080110079119981908011007911998190801\nPlaintext: 0000000000000000\nCiphertext: 2e5a19db4d1962d6\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 10079119981a080110079119981a080110079119981a0801\nPlaintext: 0000000000000000\nCiphertext: 23a866a809d30894\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100792109819010110079210981901011007921098190101\nPlaintext: 0000000000000000\nCiphertext: d812d961f017d320\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100791159819010b100791159819010b100791159819010b\nPlaintext: 0000000000000000\nCiphertext: 055605816e58608f\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100480159819010110048015981901011004801598190101\nPlaintext: 0000000000000000\nCiphertext: abd88e8b1b7716f1\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100480159819010210048015981901021004801598190102\nPlaintext: 0000000000000000\nCiphertext: 537ac95be69da1e1\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100480159819010810048015981901081004801598190108\nPlaintext: 0000000000000000\nCiphertext: aed0f6ae3c25cdd8\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100291159810010410029115981001041002911598100104\nPlaintext: 0000000000000000\nCiphertext: b3e35a5ee53e7b8d\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100291159819010410029115981901041002911598190104\nPlaintext: 0000000000000000\nCiphertext: 61c79c71921a2ef8\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100291159810020110029115981002011002911598100201\nPlaintext: 0000000000000000\nCiphertext: e2f5728f0995013c\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 100291169810010110029116981001011002911698100101\nPlaintext: 0000000000000000\nCiphertext: 1aeac39a61f0a464\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 104691348998013110469134899801311046913489980131\nCiphertext: 88d55e54f54c97b4\nPlaintext: 0000000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 100710348998802010071034899880201007103489988020\nCiphertext: 0c0cc00c83ea48fd\nPlaintext: 0000000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 10071034c898012010071034c898012010071034c8980120\nCiphertext: 83bc8ef3a6570183\nPlaintext: 0000000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 104610348998802010461034899880201046103489988020\nCiphertext: df725dcad94ea2e9\nPlaintext: 00", @@ -2358,9 +2438,9 @@ static const char *kData29[] = { "101010101010101010101010101\nPlaintext: 0000000000200000\nCiphertext: 79e90dbc98f92cca\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000100000\nCiphertext: 866ecedd8072bb0e\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000080000\nCiphertext: 8b54536f2f3e64a8\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000040000\nCiphertext: ea51d3975595b86b\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000020000\nCiphertext: caffc6ac4542de31\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000010000\nCiphertext: 8dd45a2ddf90796c\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000008000\nCiphertext: 1029d55e880ec2d0\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000004000\nCiphertext: 5d86cb23639dbea9\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000002000\nCiphertext: 1d1ca853ae7c0c5f\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000001000\nCiphertext: ce332329248f3228\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000800\nCiphertext: 8405d1abe24fb942\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000400\nCiphertext: e643d78090ca4207\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000200\nCiphertext: 48221b9937748a23\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000100\nCiphertext: dd7c0bbd61fafd54\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000080\nCiphertext: 2fbc291a570db5c4\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000040\nCiphertext: e07c30d7e4e26e12\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000020\nCiphertext: 0953e2258e8e90a1\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000010\nCiphertext: 5b711bc4ceebf2ee\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000008\nCiphertext: cc083f1e6d9e85f6\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000004\nCiphertext: d2fd8867d50d2dfe\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000002\nCiphertext: 06e7ea22ce92708f\n\nCipher: DES-EDE3\nOperation: ENCRYPT\nKey: 010101010101010101010101010101010101010101010101\nPlaintext: 0000000000000001\nCiphertext: 166b40b44aba4bd6\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 95f8a5e5dd31d900\nPlaintext: 8000000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: dd7f121ca5015619\nPlaintext: 4000000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 2e8653104f3834ea\nPlaintext: 2000000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 4bd388ff6cd81d4f\nPlaintext: 1000000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 20b9e767b2fb1456\nPlaintext: 0800000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 55579380d77138ef\nPlaintext: 0400000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 6cc5defaaf04512f\nPlaintext: 0200000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0d9f279ba5d87260\nPlaintext: 0100000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: d9031b0271bd5a0a\nPlaintext: 0080000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 424250b37c3dd951\nPlaintext: 0040000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: b8061b7ecd9a21e5\nPlaintext: 0020000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: f15d0f286b65bd28\nPlaintext: 0010000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: add0cc8d6e5deba1\nPlaintext: 0008000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e6d5f82752ad63d1\nPlaintext: 0004000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: ecbfe3bd3f591a5e\nPlaintext: 0002000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: f356834379d165cd\nPlaintext: 0001000000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 2b9f982f20037fa9\nPlaintext: 0000800000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 889de068a16f0be6\nPlaintext: 0000400000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e19e275d846a1298\nPlaintext: 0000200000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 329a8ed523d71aec\nPlaintext: 0000100000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e7fce22557d23c97\nPlaintext: 0000080000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 12a9f5817ff2d65d\nPlaintext: 0000040000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: a484c3ad38dc9c19\nPlaintext: 0000020000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: fbe00a8a1ef8ad72\nPlaintext: 0000010000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 750d079407521363\nPlaintext: 0000008000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 64feed9c724c2faf\nPlaintext: 0000004000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: f02b263b328e2b60\nPlaintext: 0000002000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 9d64555a9a10b852\nPlaintext: 0000001000000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: d106ff0bed5255d7\nPlaintext: 0000000800000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e1652c6b138c64a5\nPlaintext: 0000000400000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e428581186ec8f46\nPlaintext: 0000000200000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: aeb5f5ede22d1a36\nPlaintext: 0000000100000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e943d7568aec0c5c\nPlaintext: 0000000080000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: df98c8276f54", "b04b\nPlaintext: 0000000040000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: b160e4680f6c696f\nPlaintext: 0000000020000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: fa0752b07d9c4ab8\nPlaintext: 0000000010000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: ca3a2b036dbc8502\nPlaintext: 0000000008000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 5e0905517bb59bcf\nPlaintext: 0000000004000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 814eeb3b91d90726\nPlaintext: 0000000002000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 4d49db1532919c9f\nPlaintext: 0000000001000000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 25eb5fc3f8cf0621\nPlaintext: 0000000000800000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: ab6a20c0620d1c6f\nPlaintext: 0000000000400000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 79e90dbc98f92cca\nPlaintext: 0000000000200000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 866ecedd8072bb0e\nPlaintext: 0000000000100000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 8b54536f2f3e64a8\nPlaintext: 0000000000080000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: ea51d3975595b86b\nPlaintext: 0000000000040000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: caffc6ac4542de31\nPlaintext: 0000000000020000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 8dd45a2ddf90796c\nPlaintext: 0000000000010000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 1029d55e880ec2d0\nPlaintext: 0000000000008000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 5d86cb23639dbea9\nPlaintext: 0000000000004000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 1d1ca853ae7c0c5f\nPlaintext: 0000000000002000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: ce332329248f3228\nPlaintext: 0000000000001000\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 8405d1abe24fb942\nPlaintext: 0000000000000800\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e643d78090ca4207\nPlaintext: 0000000000000400\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 48221b9937748a23\nPlaintext: 0000000000000200\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: dd7c0bbd61fafd54\nPlaintext: 0000000000000100\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 2fbc291a570db5c4\nPlaintext: 0000000000000080\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: e07c30d7e4e26e12\nPlaintext: 0000000000000040\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 0953e2258e8e90a1\nPlaintext: 0000000000000020\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 5b711bc4ceebf2ee\nPlaintext: 0000000000000010\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: cc083f1e6d9e85f6\nPlaintext: 0000000000000008\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: d2fd8867d50d2dfe\nPlaintext: 0000000000000004\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 06e7ea22ce92708f\nPlaintext: 0000000000000002\n\nCipher: DES-EDE3\nOperation: DECRYPT\nKey: 010101010101010101010101010101010101010101010101\nCiphertext: 166b40b44aba4bd6\nPlaintext: 0000000000000001\n\n", }; -static const size_t kLen30 = 444193; +static const size_t kLen31 = 444193; -static const char *kData30[] = { +static const char *kData31[] = { "# The contents of this file were generated from\n# http://ed25519.cr.yp.to/python/sign.input using the following Python script:\n#\n# import sys\n#\n# isFirst = True\n#\n# for line in sys.stdin.readlines():\n# (private, public, message, sig_and_message, _) = line.split(':')\n#\n# if not isFirst:\n# print\n# print \"PRIV:\", private\n# print \"PUB:\", public\n# print \"MESSAGE:\", message\n# print \"SIG:\", sig_and_message[:128]\n# isFirst = False\n\nPRIV: 9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\nPUB: d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\nMESSAGE: \nSIG: e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\nPRIV: 4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\nPUB: 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\nMESSAGE: 72\nSIG: 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\nPRIV: c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\nPUB: fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\nMESSAGE: af82\nSIG: 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\nPRIV: 0d4a05b07352a5436e180356da0ae6efa0345ff7fb1572575772e8005ed978e9e61a185bcef2613a6c7cb79763ce945d3b245d76114dd440bcf5f2dc1aa57057\nPUB: e61a185bcef2613a6c7cb79763ce945d3b245d76114dd440bcf5f2dc1aa57057\nMESSAGE: cbc77b\nSIG: d9868d52c2bebce5f3fa5a79891970f309cb6591e3e1702a70276fa97c24b3a8e58606c38c9758529da50ee31b8219cba45271c689afa60b0ea26c99db19b00c\n\nPRIV: 6df9340c138cc188b5fe4464ebaa3f7fc206a2d55c3434707e74c9fc04e20ebbc0dac102c4533186e25dc43128472353eaabdb878b152aeb8e001f92d90233a7\nPUB: c0dac102c4533186e25dc43128472353eaabdb878b152aeb8e001f92d90233a7\nMESSAGE: 5f4c8989\nSIG: 124f6fc6b0d100842769e71bd530664d888df8507df6c56dedfdb509aeb93416e26b918d38aa06305df3095697c18b2aa832eaa52edc0ae49fbae5a85e150c07\n\nPRIV: b780381a65edf8b78f6945e8dbec7941ac049fd4c61040cf0c324357975a293ce253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01\nPUB: e253af0766804b869bb1595be9765b534886bbaab8305bf50dbc7f899bfb5f01\nMESSAGE: 18b6bec097\nSIG: b2fc46ad47af464478c199e1f8be169f1be6327c7f9a0a6689371ca94caf04064a01b22aff1520abd58951341603faed768cf78ce97ae7b038abfe456aa17c09\n\nPRIV: 78ae9effe6f245e924a7be63041146ebc670dbd3060cba67fbc6216febc44546fbcfbfa40505d7f2be444a33d185cc54e16d615260e1640b2b5087b83ee3643d\nPUB: fbcfbfa40505d7f2be444a33d185cc54e16d615260e1640b2b5087b83ee3643d\nMESSAGE: 89010d855972\nSIG: 6ed629fc1d9ce9e1468755ff636d5a3f40a5d9c91afd93b79d241830f7e5fa29854b8f20cc6eecbb248dbd8d16d14e99752194e4904d09c74d639518839d2300\n\nPRIV: 691865bfc82a1e4b574eecde4c7519093faf0cf867380234e3664645c61c5f7998a5e3a36e67aaba89888bf093de1ad963e774013b3902bfab356d8b90178a63\nPUB: 98a5e3a36e67aaba89888bf093de1ad963e774013b3902bfab356d8b90178a63\nMESSAGE: b4a8f381e70e7a\nSIG: 6e0af2fe55ae377a6b7a7278edfb419bd321e06d0df5e27037db8812e7e3529810fa5552f6c0020985ca17a0e02e036d7b222a24f99b77b75fdd16cb05568107\n\nPRIV: 3b26516fb3dc88eb181b9ed73f0bcd52bcd6b4c788e4bcaf46057fd078bee073f81fb54a825fced95eb033afcd64314075abfb0abd20a970892503436f34b863\nPUB: f81fb54a825fced95eb033afcd64314075abfb0abd20a970892503436f34b863\nMESSAGE: 4284abc51bb67235\nSIG: d6addec5afb0528ac17bb178d3e7f2887f9adbb1ad16e110545ef3bc57f9de2314a5c8388f723b8907be0f3ac90c6259bbe885ecc17645df3db7d488f805fa08\n\nPRIV: edc6f5fbdd1cee4d101c063530a30490b221be68c036f5b07d0f953b745df192c1a49c66e617f9ef5ec66bc4c6564ca33de2a5fb5e1464062e6d6c6219155efd\nPUB: c1a49c66e617f9ef5ec66bc4c6564ca33de2a5fb5e1464062e6d6c6219155efd\nMESSAGE: 672bf8965d04bc5146\nSIG: 2c76a04af2391c147082e33faacdbe56642a1e134bd388620b852b901a6bc16ff6c9cc9404c41dea12ed281da067a1513866f9d964f8bdd24953856c50042901\n\nPRIV: 4e7d21fb3b1897571a445833be0f9fd41cd62be3aa04040f8934e1fcbdcacd4531b2524b8348f7ab1dfafa675cc538e9a84e3fe5819e27c12ad8bbc1a36e4dff\nPUB: 31b2524b8348f7ab1dfafa675cc538e9a84e3fe5819e27c12ad8bbc1a36e4dff\nMESSAGE: 33d7a786aded8c1bf691\nSIG: 28e4598c415ae9de01f03f9f3fab4e919e8bf537dd2b0cdf6e79b9e6559c9409d9151a4c40f083193937627c369488259e99da5a9f0a87497fa6696a5dd6ce08\n\nPRIV: a980f892db13c99a3e8971e965b2ff3d41eafd54093bc9f34d1fd22d84115bb644b57ee30cdb55829d0a5d4f046baef078f1e97a7f21b62d75f8e96ea139c35f\nPUB: 44b57ee30cdb55829d0a5d4f046baef078f1e97a7f21b62d75f8e96ea139c35f\nMESSAGE: 3486f68848a65a0eb5507d\nSIG: 77d389e599630d934076329583cd4105a649a9292abc44cd28c40000c8e2f5ac7660a81c85b72af8452d7d25c070861dae91601c7803d656531650dd4e5c4100\n\nPRIV: 5b5a619f8ce1c66d7ce26e5a2ae7b0c04febcd346d286c929e19d0d5973bfef96fe83693d011d111131c4f3fbaaa40a9d3d76b30012ff73bb0e39ec27ab18257\nPUB: 6fe83693d011d111131c4f3fbaaa40a9d3d76b30012ff73bb0e39ec27ab18257\nMESSAGE: 5a8d9d0a22357e6655f9c785\nSIG: 0f9ad9793033a2fa06614b277d37381e6d94f65ac2a5a94558d09ed6ce922258c1a567952e863ac94297aec3c0d0c8ddf71084e504860bb6ba27449b55adc40e\n\nPRIV: 940c89fe40a81dafbdb2416d14ae469119869744410c3303bfaa0241dac57800a2eb8c0501e30bae0cf842d2bde8dec7386f6b7fc3981b8c57c9792bb94cf2dd\nPUB: a2eb8c0501e30bae0cf842d2bde8dec7386f6b7fc3981b8c57c9792bb94cf2dd\nMESSAGE: b87d3813e03f58cf19fd0b6395\nSIG: d8bb64aad8c9955a115a793addd24f7f2b077648714f49c4694ec995b330d09d640df310f447fd7b6cb5c14f9fe9f490bcf8cfadbfd2169c8ac20d3b8af49a0c\n\nPRIV: 9acad959d216212d789a119252ebfe0c96512a23c73bd9f3b202292d6916a738cf3af898467a5b7a52d33d53bc037e2642a8da996903fc252217e9c033e2f291\nPUB: cf3af898467a5b7a52d33d53bc037e2642a8da996903fc252217e9c033e2f291\nMESSAGE: 55c7fa434f5ed8cdec2b7aeac173\nSIG: 6ee3fe81e23c60eb2312b2006b3b25e6838e02106623f844c44edb8dafd66ab0671087fd195df5b8f58a1d6e52af42908053d55c7321010092748795ef94cf06\n\nPRIV: d5aeee41eeb0e9d1bf8337f939587ebe296161e6bf5209f591ec939e1440c300fd2a565723163e29f53c9de3d5e8fbe36a7ab66e1439ec4eae9c0a604af291a5\nPUB: fd2a565723163e29f53c9de3d5e8fbe36a7ab66e1439ec4eae9c0a604af291a5\nMESSAGE: 0a688e79be24f866286d4646b5d81c\nSIG: f68d04847e5b249737899c014d31c805c5007a62c0a10d50bb1538c5f35503951fbc1e08682f2cc0c92efe8f4985dec61dcbd54d4b94a22547d24451271c8b00\n\nPRIV: 0a47d10452ae2febec518a1c7c362890c3fc1a49d34b03b6467d35c904a8362d34e5a8508c4743746962c066e4badea2201b8ab484de5c4f94476ccd2143955b\nPUB: 34e5a8508c4743746962c066e4badea2201b8ab484de5c4f94476ccd2143955b\nMESSAGE: c942fa7ac6b23ab7ff612fdc8e68ef39\nSIG: 2a3d27dc40d0a8127949a3b7f908b3688f63b7f14f651aacd715940bdbe27a0809aac142f47ab0e1e44fa490ba87ce5392f33a891539caf1ef4c367cae54500c\n\nPRIV: f8148f7506b775ef46fdc8e8c756516812d47d6cfbfa318c27c9a22641e56f170445e456dacc7d5b0bbed23c8200cdb74bdcb03e4c7b73f0a2b9b46eac5d4372\nPUB: 0445e456dacc7d5b0bbed23c8200cdb74bdcb03e4c7b73f0a2b9b46eac5d4372\nMESSAGE: 7368724a5b0efb57d28d97622dbde725af\nSIG: 3653ccb21219202b8436fb41a32ba2618c4a133431e6e63463ceb3b6106c4d56e1d2ba165ba76eaad3dc39bffb130f1de3d8e6427db5b71938db4e272bc3e20b\n\nPRIV: 77f88691c4eff23ebb7364947092951a5ff3f10785b417e918823a552dab7c7574d29127f199d86a8676aec33b4ce3f225ccb191f52c191ccd1e8cca65213a6b\nPUB: 74d29127f199d86a8676aec33b4ce3f225ccb191f52c191ccd1e8cca65213a6b\nMESSAGE: bd8e05033f3a8bcdcbf4beceb70901c82e31\nSIG: fbe929d743a03c17910575492f3092ee2a2bf14a60a3fcacec74a58c7334510fc262db582791322d6c8c41f1700adb80027ecabc14270b703444ae3ee7623e0a\n\nPRIV: ab6f7aee6a0837b334ba5eb1b2ad7fcecfab7e323cab187fe2e0a95d80eff1325b96dca497875bf9664c5e75facf3f9bc54bae913d66ca15ee85f1491ca24d2c\nPUB: 5b96dca497875bf9664c5e75facf3f9bc54bae913d66ca15ee85f1491ca24d2c\nMESSAGE: 8171456f8b907189b1d779e26bc5afbb08c67a\nSIG: 73bca64e9dd0db88138eedfafcea8f5436cfb74bfb0e7733cf349baa0c49775c56d5934e1d38e36f39b7c5beb0a836510c45126f8ec4b6810519905b0ca07c09\n\nPRIV: 8d135de7c8411bbdbd1b31e5dc678f2ac7109e792b60f38cd24936e8a898c32d1ca281938529896535a7714e3584085b86ef9fec723f42819fc8dd5d8c00817f\nPUB: 1ca281938529896535a7714e3584085b86ef9fec723f42819fc8dd5d8c00817f\nMESSAGE: 8ba6a4c9a15a244a9c26bb2a59b1026f21348b49\nSIG: a1adc2bc6a2d980662677e7fdff6424de7dba50f5795ca90fdf3e96e256f3285cac71d3360482e993d0294ba4ec7440c61affdf35f", "e83e6e04263937db93f105\n\nPRIV: 0e765d720e705f9366c1ab8c3fa84c9a44370c06969f803296884b2846a652a47fae45dd0a05971026d410bc497af5be7d0827a82a145c203f625dfcb8b03ba8\nPUB: 7fae45dd0a05971026d410bc497af5be7d0827a82a145c203f625dfcb8b03ba8\nMESSAGE: 1d566a6232bbaab3e6d8804bb518a498ed0f904986\nSIG: bb61cf84de61862207c6a455258bc4db4e15eea0317ff88718b882a06b5cf6ec6fd20c5a269e5d5c805bafbcc579e2590af414c7c227273c102a10070cdfe80f\n\nPRIV: db36e326d676c2d19cc8fe0c14b709202ecfc761d27089eb6ea4b1bb021ecfa748359b850d23f0715d94bb8bb75e7e14322eaf14f06f28a805403fbda002fc85\nPUB: 48359b850d23f0715d94bb8bb75e7e14322eaf14f06f28a805403fbda002fc85\nMESSAGE: 1b0afb0ac4ba9ab7b7172cddc9eb42bba1a64bce47d4\nSIG: b6dcd09989dfbac54322a3ce87876e1d62134da998c79d24b50bd7a6a797d86a0e14dc9d7491d6c14a673c652cfbec9f962a38c945da3b2f0879d0b68a921300\n\nPRIV: c89955e0f7741d905df0730b3dc2b0ce1a13134e44fef3d40d60c020ef19df77fdb30673402faf1c8033714f3517e47cc0f91fe70cf3836d6c23636e3fd2287c\nPUB: fdb30673402faf1c8033714f3517e47cc0f91fe70cf3836d6c23636e3fd2287c\nMESSAGE: 507c94c8820d2a5793cbf3442b3d71936f35fe3afef316\nSIG: 7ef66e5e86f2360848e0014e94880ae2920ad8a3185a46b35d1e07dea8fa8ae4f6b843ba174d99fa7986654a0891c12a794455669375bf92af4cc2770b579e0c\n\nPRIV: 4e62627fc221142478aee7f00781f817f662e3b75db29bb14ab47cf8e84104d6b1d39801892027d58a8c64335163195893bfc1b61dbeca3260497e1f30371107\nPUB: b1d39801892027d58a8c64335163195893bfc1b61dbeca3260497e1f30371107\nMESSAGE: d3d615a8472d9962bb70c5b5466a3d983a4811046e2a0ef5\nSIG: 836afa764d9c48aa4770a4388b654e97b3c16f082967febca27f2fc47ddfd9244b03cfc729698acf5109704346b60b230f255430089ddc56912399d1122de70a\n\nPRIV: 6b83d7da8908c3e7205b39864b56e5f3e17196a3fc9c2f5805aad0f5554c142dd0c846f97fe28585c0ee159015d64c56311c886eddcc185d296dbb165d2625d6\nPUB: d0c846f97fe28585c0ee159015d64c56311c886eddcc185d296dbb165d2625d6\nMESSAGE: 6ada80b6fa84f7034920789e8536b82d5e4678059aed27f71c\nSIG: 16e462a29a6dd498685a3718b3eed00cc1598601ee47820486032d6b9acc9bf89f57684e08d8c0f05589cda2882a05dc4c63f9d0431d6552710812433003bc08\n\nPRIV: 19a91fe23a4e9e33ecc474878f57c64cf154b394203487a7035e1ad9cd697b0d2bf32ba142ba4622d8f3e29ecd85eea07b9c47be9d64412c9b510b27dd218b23\nPUB: 2bf32ba142ba4622d8f3e29ecd85eea07b9c47be9d64412c9b510b27dd218b23\nMESSAGE: 82cb53c4d5a013bae5070759ec06c3c6955ab7a4050958ec328c\nSIG: 881f5b8c5a030df0f75b6634b070dd27bd1ee3c08738ae349338b3ee6469bbf9760b13578a237d5182535ede121283027a90b5f865d63a6537dca07b44049a0f\n\nPRIV: 1d5b8cb6215c18141666baeefcf5d69dad5bea9a3493dddaa357a4397a13d4de94d23d977c33e49e5e4992c68f25ec99a27c41ce6b91f2bfa0cd8292fe962835\nPUB: 94d23d977c33e49e5e4992c68f25ec99a27c41ce6b91f2bfa0cd8292fe962835\nMESSAGE: a9a8cbb0ad585124e522abbfb40533bdd6f49347b55b18e8558cb0\nSIG: 3acd39bec8c3cd2b44299722b5850a0400c1443590fd4861d59aae7496acb3df73fc3fdf7969ae5f50ba47dddc435246e5fd376f6b891cd4c2caf5d614b6170c\n\nPRIV: 6a91b3227c472299089bdce9356e726a40efd840f11002708b7ee55b64105ac29d084aa8b97a6b9bafa496dbc6f76f3306a116c9d917e681520a0f914369427e\nPUB: 9d084aa8b97a6b9bafa496dbc6f76f3306a116c9d917e681520a0f914369427e\nMESSAGE: 5cb6f9aa59b80eca14f6a68fb40cf07b794e75171fba96262c1c6adc\nSIG: f5875423781b66216cb5e8998de5d9ffc29d1d67107054ace3374503a9c3ef811577f269de81296744bd706f1ac478caf09b54cdf871b3f802bd57f9a6cb9101\n\nPRIV: 93eaa854d791f05372ce72b94fc6503b2ff8ae6819e6a21afe825e27ada9e4fb16cee8a3f2631834c88b670897ff0b08ce90cc147b4593b3f1f403727f7e7ad5\nPUB: 16cee8a3f2631834c88b670897ff0b08ce90cc147b4593b3f1f403727f7e7ad5\nMESSAGE: 32fe27994124202153b5c70d3813fdee9c2aa6e7dc743d4d535f1840a5\nSIG: d834197c1a3080614e0a5fa0aaaa808824f21c38d692e6ffbd200f7dfb3c8f44402a7382180b98ad0afc8eec1a02acecf3cb7fde627b9f18111f260ab1db9a07\n\nPRIV: 941cac69fb7b1815c57bb987c4d6c2ad2c35d5f9a3182a79d4ba13eab253a8ad23be323c562dfd71ce65f5bba56a74a3a6dfc36b573d2f94f635c7f9b4fd5a5b\nPUB: 23be323c562dfd71ce65f5bba56a74a3a6dfc36b573d2f94f635c7f9b4fd5a5b\nMESSAGE: bb3172795710fe00054d3b5dfef8a11623582da68bf8e46d72d27cece2aa\nSIG: 0f8fad1e6bde771b4f5420eac75c378bae6db5ac6650cd2bc210c1823b432b48e016b10595458ffab92f7a8989b293ceb8dfed6c243a2038fc06652aaaf16f02\n\nPRIV: 1acdbb793b0384934627470d795c3d1dd4d79cea59ef983f295b9b59179cbb283f60c7541afa76c019cf5aa82dcdb088ed9e4ed9780514aefb379dabc844f31a\nPUB: 3f60c7541afa76c019cf5aa82dcdb088ed9e4ed9780514aefb379dabc844f31a\nMESSAGE: 7cf34f75c3dac9a804d0fcd09eba9b29c9484e8a018fa9e073042df88e3c56\nSIG: be71ef4806cb041d885effd9e6b0fbb73d65d7cdec47a89c8a994892f4e55a568c4cc78d61f901e80dbb628b86a23ccd594e712b57fa94c2d67ec26634878507\n\nPRIV: 8ed7a797b9cea8a8370d419136bcdf683b759d2e3c6947f17e13e2485aa9d420b49f3a78b1c6a7fca8f3466f33bc0e929f01fba04306c2a7465f46c3759316d9\nPUB: b49f3a78b1c6a7fca8f3466f33bc0e929f01fba04306c2a7465f46c3759316d9\nMESSAGE: a750c232933dc14b1184d86d8b4ce72e16d69744ba69818b6ac33b1d823bb2c3\nSIG: 04266c033b91c1322ceb3446c901ffcf3cc40c4034e887c9597ca1893ba7330becbbd8b48142ef35c012c6ba51a66df9308cb6268ad6b1e4b03e70102495790b\n\nPRIV: f2ab396fe8906e3e5633e99cabcd5b09df0859b516230b1e0450b580b65f616c8ea074245159a116aa7122a25ec16b891d625a68f33660423908f6bdc44f8c1b\nPUB: 8ea074245159a116aa7122a25ec16b891d625a68f33660423908f6bdc44f8c1b\nMESSAGE: 5a44e34b746c5fd1898d552ab354d28fb4713856d7697dd63eb9bd6b99c280e187\nSIG: a06a23d982d81ab883aae230adbc368a6a9977f003cebb00d4c2e4018490191a84d3a282fdbfb2fc88046e62de43e15fb575336b3c8b77d19ce6a009ce51f50c\n\nPRIV: 550a41c013f79bab8f06e43ad1836d51312736a9713806fafe6645219eaa1f9daf6b7145474dc9954b9af93a9cdb34449d5b7c651c824d24e230b90033ce59c0\nPUB: af6b7145474dc9954b9af93a9cdb34449d5b7c651c824d24e230b90033ce59c0\nMESSAGE: 8bc4185e50e57d5f87f47515fe2b1837d585f0aae9e1ca383b3ec908884bb900ff27\nSIG: 16dc1e2b9fa909eefdc277ba16ebe207b8da5e91143cde78c5047a89f681c33c4e4e3428d5c928095903a811ec002d52a39ed7f8b3fe1927200c6dd0b9ab3e04\n\nPRIV: 19ac3e272438c72ddf7b881964867cb3b31ff4c793bb7ea154613c1db068cb7ef85b80e050a1b9620db138bfc9e100327e25c257c59217b601f1f6ac9a413d3f\nPUB: f85b80e050a1b9620db138bfc9e100327e25c257c59217b601f1f6ac9a413d3f\nMESSAGE: 95872d5f789f95484e30cbb0e114028953b16f5c6a8d9f65c003a83543beaa46b38645\nSIG: ea855d781cbea4682e350173cb89e8619ccfddb97cdce16f9a2f6f6892f46dbe68e04b12b8d88689a7a31670cdff409af98a93b49a34537b6aa009d2eb8b4701\n\nPRIV: ca267de96c93c238fafb1279812059ab93ac03059657fd994f8fa5a09239c821017370c879090a81c7f272c2fc80e3aac2bc603fcb379afc98691160ab745b26\nPUB: 017370c879090a81c7f272c2fc80e3aac2bc603fcb379afc98691160ab745b26\nMESSAGE: e05f71e4e49a72ec550c44a3b85aca8f20ff26c3ee94a80f1b431c7d154ec9603ee02531\nSIG: ac957f82335aa7141e96b59d63e3ccee95c3a2c47d026540c2af42dc9533d5fd81827d1679ad187aeaf37834915e75b147a9286806c8017516ba43dd051a5e0c\n\nPRIV: 3dff5e899475e7e91dd261322fab09980c52970de1da6e2e201660cc4fce7032f30162bac98447c4042fac05da448034629be2c6a58d30dfd578ba9fb5e3930b\nPUB: f30162bac98447c4042fac05da448034629be2c6a58d30dfd578ba9fb5e3930b\nMESSAGE: 938f0e77621bf3ea52c7c4911c5157c2d8a2a858093ef16aa9b107e69d98037ba139a3c382\nSIG: 5efe7a92ff9623089b3e3b78f352115366e26ba3fb1a416209bc029e9cadccd9f4affa333555a8f3a35a9d0f7c34b292cae77ec96fa3adfcaadee2d9ced8f805\n\nPRIV: 9a6b847864e70cfe8ba6ab22fa0ca308c0cc8bec7141fbcaa3b81f5d1e1cfcfc34ad0fbdb2566507a81c2b1f8aa8f53dccaa64cc87ada91b903e900d07eee930\nPUB: 34ad0fbdb2566507a81c2b1f8aa8f53dccaa64cc87ada91b903e900d07eee930\nMESSAGE: 838367471183c71f7e717724f89d401c3ad9863fd9cc7aa3cf33d3c529860cb581f3093d87da\nSIG: 2ab255169c489c54c732232e37c87349d486b1eba20509dbabe7fed329ef08fd75ba1cd145e67b2ea26cb5cc51cab343eeb085fe1fd7b0ec4c6afcd9b979f905\n\nPRIV: 575be07afca5d063c238cd9b8028772cc49cda34471432a2e166e096e2219efc94e5eb4d5024f49d7ebf79817c8de11497dc2b55622a51ae123ffc749dbb16e0\nPUB: 94e5eb4d5024f49d7ebf79817c8de11497dc2b55622a51ae123ffc749dbb16e0\nMESSAGE: 33e5918b66d33d55fe717ca34383eae78f0af82889caf6696e1ac9d95d1ffb32cba755f9e3503e\nSIG: 58271d44236f3b98c58fd7ae0d2f49ef2b6e3affdb225aa3ba555f0e11cc53c23ad19baf24346590d05d7d5390582082cf94d39cad6530ab93d13efb39279506\n\nPRIV: 15ffb45514d43444d61fcb105e30e135fd268523dda20b82758b1794231104411772c5abc2d23fd2f9d1c3257be7bc3c1cd79cee40844b749b3a7743d2f964b8\nPUB: 1772c5abc2d23fd2f9d1c3257be7bc3c1cd79cee40844b749b3a7743d2f964b8\nMESSAGE: da9c5559d0ea51d255b6bd9d7638b876472f942b330fc0e2b30aea68d77368fce4948272991d257e\nSIG: 6828cd7624e793b8a4ceb96d3c2a975bf773e5ff6645f353614058621e58835289e7f31f42dfe6", "af6d736f2644511e320c0fa698582a79778d18730ed3e8cb08\n\nPRIV: fe0568642943b2e1afbfd1f10fe8df87a4236bea40dce742072cb21886eec1fa299ebd1f13177dbdb66a912bbf712038fdf73b06c3ac020c7b19126755d47f61\nPUB: 299ebd1f13177dbdb66a912bbf712038fdf73b06c3ac020c7b19126755d47f61\nMESSAGE: c59d0862ec1c9746abcc3cf83c9eeba2c7082a036a8cb57ce487e763492796d47e6e063a0c1feccc2d\nSIG: d59e6dfcc6d7e3e2c58dec81e985d245e681acf6594a23c59214f7bed8015d813c7682b60b3583440311e72a8665ba2c96dec23ce826e160127e18132b030404\n\nPRIV: 5ecb16c2df27c8cf58e436a9d3affbd58e9538a92659a0f97c4c4f994635a8cada768b20c437dd3aa5f84bb6a077ffa34ab68501c5352b5cc3fdce7fe6c2398d\nPUB: da768b20c437dd3aa5f84bb6a077ffa34ab68501c5352b5cc3fdce7fe6c2398d\nMESSAGE: 56f1329d9a6be25a6159c72f12688dc8314e85dd9e7e4dc05bbecb7729e023c86f8e0937353f27c7ede9\nSIG: 1c723a20c6772426a670e4d5c4a97c6ebe9147f71bb0a415631e44406e290322e4ca977d348fe7856a8edc235d0fe95f7ed91aefddf28a77e2c7dbfd8f552f0a\n\nPRIV: d599d637b3c30a82a9984e2f758497d144de6f06b9fba04dd40fd949039d7c846791d8ce50a44689fc178727c5c3a1c959fbeed74ef7d8e7bd3c1ab4da31c51f\nPUB: 6791d8ce50a44689fc178727c5c3a1c959fbeed74ef7d8e7bd3c1ab4da31c51f\nMESSAGE: a7c04e8ba75d0a03d8b166ad7a1d77e1b91c7aaf7befdd99311fc3c54a684ddd971d5b3211c3eeaff1e54e\nSIG: ebf10d9ac7c96108140e7def6fe9533d727646ff5b3af273c1df95762a66f32b65a09634d013f54b5dd6011f91bc336ca8b355ce33f8cfbec2535a4c427f8205\n\nPRIV: 30ab8232fa7018f0ce6c39bd8f782fe2e159758bb0f2f4386c7f28cfd2c85898ecfb6a2bd42f31b61250ba5de7e46b4719afdfbc660db71a7bd1df7b0a3abe37\nPUB: ecfb6a2bd42f31b61250ba5de7e46b4719afdfbc660db71a7bd1df7b0a3abe37\nMESSAGE: 63b80b7956acbecf0c35e9ab06b914b0c7014fe1a4bbc0217240c1a33095d707953ed77b15d211adaf9b97dc\nSIG: 9af885344cc7239498f712df80bc01b80638291ed4a1d28baa5545017a72e2f65649ccf9603da6eb5bfab9f5543a6ca4a7af3866153c76bf66bf95def615b00c\n\nPRIV: 0ddcdc872c7b748d40efe96c2881ae189d87f56148ed8af3ebbbc80324e38bdd588ddadcbcedf40df0e9697d8bb277c7bb1498fa1d26ce0a835a760b92ca7c85\nPUB: 588ddadcbcedf40df0e9697d8bb277c7bb1498fa1d26ce0a835a760b92ca7c85\nMESSAGE: 65641cd402add8bf3d1d67dbeb6d41debfbef67e4317c35b0a6d5bbbae0e034de7d670ba1413d056f2d6f1de12\nSIG: c179c09456e235fe24105afa6e8ec04637f8f943817cd098ba95387f9653b2add181a31447d92d1a1ddf1ceb0db62118de9dffb7dcd2424057cbdff5d41d0403\n\nPRIV: 89f0d68299ba0a5a83f248ae0c169f8e3849a9b47bd4549884305c9912b46603aba3e795aab2012acceadd7b3bd9daeeed6ff5258bdcd7c93699c2a3836e3832\nPUB: aba3e795aab2012acceadd7b3bd9daeeed6ff5258bdcd7c93699c2a3836e3832\nMESSAGE: 4f1846dd7ad50e545d4cfbffbb1dc2ff145dc123754d08af4e44ecc0bc8c91411388bc7653e2d893d1eac2107d05\nSIG: 2c691fa8d487ce20d5d2fa41559116e0bbf4397cf5240e152556183541d66cf753582401a4388d390339dbef4d384743caa346f55f8daba68ba7b9131a8a6e0b\n\nPRIV: 0a3c1844e2db070fb24e3c95cb1cc6714ef84e2ccd2b9dd2f1460ebf7ecf13b172e409937e0610eb5c20b326dc6ea1bbbc0406701c5cd67d1fbde09192b07c01\nPUB: 72e409937e0610eb5c20b326dc6ea1bbbc0406701c5cd67d1fbde09192b07c01\nMESSAGE: 4c8274d0ed1f74e2c86c08d955bde55b2d54327e82062a1f71f70d536fdc8722cdead7d22aaead2bfaa1ad00b82957\nSIG: 87f7fdf46095201e877a588fe3e5aaf476bd63138d8a878b89d6ac60631b3458b9d41a3c61a588e1db8d29a5968981b018776c588780922f5aa732ba6379dd05\n\nPRIV: c8d7a8818b98dfdb20839c871cb5c48e9e9470ca3ad35ba2613a5d3199c8ab2390d2efbba4d43e6b2b992ca16083dbcfa2b322383907b0ee75f3e95845d3c47f\nPUB: 90d2efbba4d43e6b2b992ca16083dbcfa2b322383907b0ee75f3e95845d3c47f\nMESSAGE: 783e33c3acbdbb36e819f544a7781d83fc283d3309f5d3d12c8dcd6b0b3d0e89e38cfd3b4d0885661ca547fb9764abff\nSIG: fa2e994421aef1d5856674813d05cbd2cf84ef5eb424af6ecd0dc6fdbdc2fe605fe985883312ecf34f59bfb2f1c9149e5b9cc9ecda05b2731130f3ed28ddae0b\n\nPRIV: b482703612d0c586f76cfcb21cfd2103c957251504a8c0ac4c86c9c6f3e429fffd711dc7dd3b1dfb9df9704be3e6b26f587fe7dd7ba456a91ba43fe51aec09ad\nPUB: fd711dc7dd3b1dfb9df9704be3e6b26f587fe7dd7ba456a91ba43fe51aec09ad\nMESSAGE: 29d77acfd99c7a0070a88feb6247a2bce9984fe3e6fbf19d4045042a21ab26cbd771e184a9a75f316b648c6920db92b87b\nSIG: 58832bdeb26feafc31b46277cf3fb5d7a17dfb7ccd9b1f58ecbe6feb979666828f239ba4d75219260ecac0acf40f0e5e2590f4caa16bbbcd8a155d347967a607\n\nPRIV: 84e50dd9a0f197e3893c38dbd91fafc344c1776d3a400e2f0f0ee7aa829eb8a22c50f870ee48b36b0ac2f8a5f336fb090b113050dbcc25e078200a6e16153eea\nPUB: 2c50f870ee48b36b0ac2f8a5f336fb090b113050dbcc25e078200a6e16153eea\nMESSAGE: f3992cde6493e671f1e129ddca8038b0abdb77bb9035f9f8be54bd5d68c1aeff724ff47d29344391dc536166b8671cbbf123\nSIG: 69e6a4491a63837316e86a5f4ba7cd0d731ecc58f1d0a264c67c89befdd8d3829d8de13b33cc0bf513931715c7809657e2bfb960e5c764c971d733746093e500\n\nPRIV: b322d46577a2a991a4d1698287832a39c487ef776b4bff037a05c7f1812bdeeceb2bcadfd3eec2986baff32b98e7c4dbf03ff95d8ad5ff9aa9506e5472ff845f\nPUB: eb2bcadfd3eec2986baff32b98e7c4dbf03ff95d8ad5ff9aa9506e5472ff845f\nMESSAGE: 19f1bf5dcf1750c611f1c4a2865200504d82298edd72671f62a7b1471ac3d4a30f7de9e5da4108c52a4ce70a3e114a52a3b3c5\nSIG: c7b55137317ca21e33489ff6a9bfab97c855dc6f85684a70a9125a261b56d5e6f149c5774d734f2d8debfc77b721896a8267c23768e9badb910eef83ec258802\n\nPRIV: 960cab5034b9838d098d2dcbf4364bec16d388f6376d73a6273b70f82bbc98c05e3c19f2415acf729f829a4ebd5c40e1a6bc9fbca95703a9376087ed0937e51a\nPUB: 5e3c19f2415acf729f829a4ebd5c40e1a6bc9fbca95703a9376087ed0937e51a\nMESSAGE: f8b21962447b0a8f2e4279de411bea128e0be44b6915e6cda88341a68a0d818357db938eac73e0af6d31206b3948f8c48a447308\nSIG: 27d4c3a1811ef9d4360b3bdd133c2ccc30d02c2f248215776cb07ee4177f9b13fc42dd70a6c2fed8f225c7663c7f182e7ee8eccff20dc7b0e1d5834ec5b1ea01\n\nPRIV: eb77b2638f23eebc82efe45ee9e5a0326637401e663ed029699b21e6443fb48e9ef27608961ac711de71a6e2d4d4663ea3ecd42fb7e4e8627c39622df4af0bbc\nPUB: 9ef27608961ac711de71a6e2d4d4663ea3ecd42fb7e4e8627c39622df4af0bbc\nMESSAGE: 99e3d00934003ebafc3e9fdb687b0f5ff9d5782a4b1f56b9700046c077915602c3134e22fc90ed7e690fddd4433e2034dcb2dc99ab\nSIG: 18dc56d7bd9acd4f4daa78540b4ac8ff7aa9815f45a0bba370731a14eaabe96df8b5f37dbf8eae4cb15a64b244651e59d6a3d6761d9e3c50f2d0cbb09c05ec06\n\nPRIV: b625aa89d3f7308715427b6c39bbac58effd3a0fb7316f7a22b99ee5922f2dc965a99c3e16fea894ec33c6b20d9105e2a04e2764a4769d9bbd4d8bacfeab4a2e\nPUB: 65a99c3e16fea894ec33c6b20d9105e2a04e2764a4769d9bbd4d8bacfeab4a2e\nMESSAGE: e07241dbd3adbe610bbe4d005dd46732a4c25086ecb8ec29cd7bca116e1bf9f53bfbf3e11fa49018d39ff1154a06668ef7df5c678e6a\nSIG: 01bb901d83b8b682d3614af46a807ba2691358feb775325d3423f549ff0aa5757e4e1a74e9c70f9721d8f354b319d4f4a1d91445c870fd0ffb94fed64664730d\n\nPRIV: b1c9f8bd03fe82e78f5c0fb06450f27dacdf716434db268275df3e1dc177af427fc88b1f7b3f11c629be671c21621f5c10672fafc8492da885742059ee6774cf\nPUB: 7fc88b1f7b3f11c629be671c21621f5c10672fafc8492da885742059ee6774cf\nMESSAGE: 331da7a9c1f87b2ac91ee3b86d06c29163c05ed6f8d8a9725b471b7db0d6acec7f0f702487163f5eda020ca5b493f399e1c8d308c3c0c2\nSIG: 4b229951ef262f16978f7914bc672e7226c5f8379d2778c5a2dc0a2650869f7acfbd0bcd30fdb0619bb44fc1ae5939b87cc318133009c20395b6c7eb98107701\n\nPRIV: 6d8cdb2e075f3a2f86137214cb236ceb89a6728bb4a200806bf3557fb78fac6957a04c7a5113cddfe49a4c124691d46c1f9cdc8f343f9dcb72a1330aeca71fda\nPUB: 57a04c7a5113cddfe49a4c124691d46c1f9cdc8f343f9dcb72a1330aeca71fda\nMESSAGE: 7f318dbd121c08bfddfeff4f6aff4e45793251f8abf658403358238984360054f2a862c5bb83ed89025d2014a7a0cee50da3cb0e76bbb6bf\nSIG: a6cbc947f9c87d1455cf1a708528c090f11ecee4855d1dbaadf47454a4de55fa4ce84b36d73a5b5f8f59298ccf21992df492ef34163d87753b7e9d32f2c3660b\n\nPRIV: 47adc6d6bf571ee9570ca0f75b604ac43e303e4ab339ca9b53cacc5be45b2ccba3f527a1c1f17dfeed92277347c9f98ab475de1755b0ab546b8a15d01b9bd0be\nPUB: a3f527a1c1f17dfeed92277347c9f98ab475de1755b0ab546b8a15d01b9bd0be\nMESSAGE: ce497c5ff5a77990b7d8f8699eb1f5d8c0582f70cb7ac5c54d9d924913278bc654d37ea227590e15202217fc98dac4c0f3be2183d133315739\nSIG: 4e8c318343c306adbba60c92b75cb0569b9219d8a86e5d57752ed235fc109a43c2cf4e942cacf297279fbb28675347e08027722a4eb7395e00a17495d32edf0b\n\nPRIV: 3c19b50b0fe47961719c381d0d8da9b9869d312f13e3298b97fb22f0af29cbbe0f7eda091499625e2bae8536ea35cda5483bd16a9c7e416b341d6f2c83343612\nPUB: 0f7eda091499625e2bae8536ea35cda5483bd16a9c7e416b341d6f2c83343612\nMESSAGE: 8ddcd63043f55ec3bfc83dceae69d8f8b32f4cdb6e2aebd94b4314f8fe7287dcb62732c9052e7557fe63534338efb5b6254c5d41d2690cf5144f\nSIG: efbd41f26a5d62685516f882b6ec74e0d5a71830d203c231248f26e99a9c6578ec900d68cdb8fa7216ad0d24f9ecbc9ffa655351666582f626645395a31fa704\n\nPRIV: 34e1e9d539107eb86b393a5ccea1496d35bc7d5e9a8c5159d957", @@ -2417,9 +2497,9 @@ static const char *kData30[] = { "28bb92e9a0edec8951ce2009a88ee1b64d9b9e89f69051203384210a102a44d2d6703173b68507dceadd3bf6510df2a5cefd9c80e4f385b2f9e6215813ed32\nSIG: 9da60cc4a64d07dee1346bd3d3010995ce2738208ab35b34c2a8fd1787ae3a1e207fe784525154fae4f5794cd8503045fea85cf77fd92f6a70cd0c5a52c0810e\n\nPRIV: 1126496a582ce58d3d618dd8a3933547aa7a8a30fb54063b8dfdd31671c6c73de10229c623fa8ad8982c3e4c36ff52df0f219b57915b6e980e5fe72ea0962e22\nPUB: e10229c623fa8ad8982c3e4c36ff52df0f219b57915b6e980e5fe72ea0962e22\nMESSAGE: 6a4b52d730ddab829b2a179590cbd4c372498e9f439977c0a10dc13c0ae1736eaaff063371434fd0da80360ec5890607d2fae1c9a2e1ab0b7f3d667f5b1b9c418f18b10c9e6fd669d3ebec168efef44163e577a2ebd0f2cb768f80c23188e86069e4d10f410306cedd7a341a61e0f4f3bc25041bc2f922ed073e1e2f1b709c579d10630f33071754d707894a1c62190de18882c564dc4c01dc545dd8966404ed78fa3267a9469f63b6120abb65f9b3ba3eee28d79c2eb4e7020cc6987dfc5c29672f8c0fa3e690d584fe000c64f352610179621bfd5ff3eb30d18f1a0250416db93b1c1e93cf8a3646517560d1cc8fff822b51ef27b200e987b592390753453ef138bd3d29db7cb1b5f45e4795b89c53f49704192752237c6ab274849f9594ee9777f6efe70483129d067f97199d9ae36090703864f7ca4750a6f3b6ff83824c910484394d1e2eceba18446fe4e994ce07433a740ddd05f0e396d482894e6f14acf7b97bae6c7eb88703039fa785d60a3af78b13243a4f88dde1d998617f2e3fa7eafc2f435dd4ac1ea9c238407aa09b4eea8ed434927b406674ac270458cfb3bf29c347f94559613179b9502192321b88e9af0a90e9a4ab9eddaae382e3734d1415ebe32499c34e6fdeaf15b0d9787985e08dfe495460c54f6743d81ff16881e5e30c51f4b092373783f12423c3e1ae8591130a269980caa1cb5c\nSIG: b30eb56ca9b120bf849a3a9d56af033de8a590c9e1240c1e36dbc6cf0a71b78a11ec143fb9959a8f25b57711d6a90a67e01be3a4da2b69394869bb8d64b87e0f\n\nPRIV: 9c167aff3b1b788f133d422de8ca9a64316409f9e35bfe22032ec417ae9abc6defb534f0d47c068e77b28a906d95ad8d213a4d4fc1c70542f01e596d57b5f019\nPUB: efb534f0d47c068e77b28a906d95ad8d213a4d4fc1c70542f01e596d57b5f019\nMESSAGE: 68ac0fc2b607ba38e377fae845c808c8f9fa614eb1f31158a9620a937d3e301e85acaa69144bc349a39dfb582041c4a197ae99b4d4d59b7a2ca3d16228b5591cbf57c18a781efd19193c47b16c6023a3a8ba3d668f05a37f1e83b0d7febdd10f63e48ef7a20e015b1c6725d4c300a986c60e3a115469c8e52ba05b51c05d0af40d89fd9ed76f36950aee3c7819898a903cfe0361a91c69100b495141e86ee79d63d17403fb1a1629ef63cb7e9d2720cbfff0002b190bcdc26794124dd38d42bcaa7175405eb0bbcf8e37d65d05a37195b479371fa2bbbb167d91cee88235dd72ea88fc73ce3ce43d33b715f25f192ec215dac124899c5e7586e86340d8cbe53735defbe02e4cc9fde69fb9794d1db72b98c0f19766ee5138bbfa78909aa299b4913c499deaf54b4841d5044829984936700dcf92f36542b2fc7e86441b9925f5d0b78c17a85cfcfcb20b0fd751349c27463abde4d27df74265288713f96dea013b945521808b4996b1b2dc0338b6d236efd6d2b27dafda46ec5fa32b965e8bb5e8bb61bd966edeb774681e0ea8c17b8c99fa7d660f0f66c9bc6d95cbd7dc094724098eb05191b53a3df6566b9c90e0d7dff2943848b61a20d48c22b6d3c958e293d709c8f48110230ff51918562877daf6d920c85a82e07c451fe7ae9759c0a77e97bb298b5d0592a41d08f67a4ed5a1bb41e937b6a68aeb38fd5be9\nSIG: c9ae67fd6415dcbab292fab394ca6c3b7d90ca244dc6a7764e74fd202bf4b2905bd2030e6beb914c3c238db371b1cba6d9261aa392ec871a4b8b12fe9c1c970e\n\nPRIV: e9948805eb341b2867479c668fd3532c309941c0ad4cb2e54231756e6a1bdecb5447a8e34d6a640002d8d60bcf1ddc711e4c465c94c34b50bdef358960ff81f1\nPUB: 5447a8e34d6a640002d8d60bcf1ddc711e4c465c94c34b50bdef358960ff81f1\nMESSAGE: 91cffd7eb1cf6bd4756bce6a30af9dfba26ddd1cce0394c194a3e39cc3d1cbc221b7eb70bea18d29c267457176a3c9e53c18e47d10a67c464505197702e6b2470d38869db5174b158f9992e4435d02246f540258dedd3ce33df582555a681fb76ecaccb1c2989b177e3b7e454aaa529de59bf5a03123d571df2e7f7cb830805c58b74a653bac0e5a888e08dc2236d6cd496aa06d0d67cf3b335e218c49dedad82fc1be9ef20cac61905c30eb132d739b16ca8a8c906619c0e0d8b33985327e36f3d4b8fda387c186cc50443104db761f7ff9301270204a713e58902101fad000ce931647c577fdec148dca95cdc08918ebed037c60332fadf088f036083ebc92e173b7ddcc30c493f27e69cd17a20d30b78f83a72e4f5a747d86d96c5e1bb7a438166204013e2164d6aabc0d562f54015c365c80445607145e5692ee34f6353077fab7452d88ce3eb01d2b3797dc91b341a3a726301516baae18e851f74dfbdf0866bb2376867de55231e362c472c52116544cd4f81e93571c4ec820e7e653f4e21be0a942576c9de91e7d1251683d859de448f822dcf3d2cf55ede2f9c71b6063d1373061f8f5936b698d1384e65459ea2bc26ec96775ef425207432dda0ac1fe28526c5e4559349c3d8df9918230f4044683cc2c1b858d141ab8d0805bb9336067522aa89c810f3eaa7ac2d8dd28c3751225a19ecec8bcca52439946\nSIG: d3dc62d6ce9c766f2abaf9a7fbe09d6bdb07a4747b56080db09beb4a4e804a70d7ddf4119475c7be834f31956f4a71dad029cdf2363dd0365ce22dc27f078003\n\nPRIV: b01753efa73bb3de7aa778be7afcbff66a5d3e2c2f8b5aa2b048844050996965d0cc6cf109c999fbf6d16f471fafd0232b0a68d4c46406ec7545dbaba8194158\nPUB: d0cc6cf109c999fbf6d16f471fafd0232b0a68d4c46406ec7545dbaba8194158\nMESSAGE: 684e612f27eead0d34844cc81ba911c28aaf6d66e71229e8cc3462f7c7a050daa30cb74471150f07dad459b5a91358476c0598255d8a642dd7c0802811bd88e4cac597efe41ebd96cd0f3b5ce72db4be1a3dbd6b84f5446e3da600d3b1d2b460a009bd31cacd98a91518ce33e9a703d404288736ccc43103fc69e67974f31652fa3dadef3337f6c897a3d201303c8f03597b4a87c98f291ccd58a3f1e898332aa5993b47fcb5ddaa1c0868b643742d0e4a4b9cd427038b3b74999bc89ac3484c0ca13f25aae8e78ae1ccee6218accab81a4f694f5324a347629d49b55e4037504a9acc8df58c6841dddcd4fc4347f7b6f1fd9de0564577e6f329ed951a0a6b9124ff63e22eb36d3a8863bc1bf69cea24c605967e7d8948953f27d5c4c75f0849f872a3e3d16d422fa5a11e1b9a74df6f38b90f277d81fce8437a14d99d2bef189d7cac83ddc61377ed348b3c4fc09ec2b9005925d04a71e26d641667bdf549294331c6ea01cd5c0bd1b6a7ecfda20b0f1929582b74697cb262c3927d6b223f4b5f3043aa6eb4571a78e9da11c2b36f64552580caa7b5fa6b90f929e0162e608d1240d7242cd2f47025c03debe059b1dc94770232bc6765148480bb1d9f50da1ee6448cf9c88b19dd459932c06ed811c4a64a12d5938bd1c757bcfaeaee8933fe5fff21763de740482bcf1ba59afdc8fcf873c3d507bb394e32e45f736519\nSIG: 16b7421227ae09130685cbb1a0c60aa57a5e1afe1bbe6bacea0c281bcc8998e6824a772c3208a6b6b4d236695505c9be82700cf93a783985a39e16e377a7410e\n\nPRIV: 4f4b20d899366f2f23ee628f229b236cf80f43ba183177c97ee34829546f1742c94576641f4a893cdfcee7b39fc21929b86b349976d7b0a46d39a588bcfe4357\nPUB: c94576641f4a893cdfcee7b39fc21929b86b349976d7b0a46d39a588bcfe4357\nMESSAGE: db8ef02e3033e6b96a56cab05082fb4695f4a1c916250dd75173f430a10c9468817709d37623346ae8245b42bda0da6b60462ccfdfc75a9ab994e66c9ab9fecdd8599610910affe4f10215cb280bf8f9f2700a444796dae93e06c6bea7d8b4fe1301baa79ccec769368feb2442c7de84f095e6b3bff63d388cbafb2b9809dc38e9b12ebd039c0a57f4d522e91ec8d1f2b8d23a4a0ae059af85393bb0a15f749110f6774a1fd731a6ec213e4ff435daab546d31ed9ec3b6d8cc2edacebf4facc5566556eea92e5b3f2542239b25e28012dd4ef40072eebf83ed2a255181f3a442189d68c6c609f4dfdf3db7d67d087a2fcd6d2dc50bbfed8bfbbfcb74d3c41f02a87865b13b8efcf5c3581257be0aa913f60c370527bde11a475c136a17c5eefeb03f5bff28693ed841e8ed1f7c29102f5599dd444009bcea6a92d5574152458e0caf8a36aa72b5dc4908a6461c9b741453005c8fbcc68113ae184208ee14b835480c6efafed18a76000b38e5858290f4d51f52f096cbe490e1eb5cacb226ec495a55a7fa457843d57fab67f8be7e209334785bdd665d7b63e4daf57b6e78928b603c8c0f9bc85464733b61273ef9e2b8a0cd7c3bf8ee0a6872e34d5a27a625e35eaf7ff5440b8b141af704df70c9c18623bd11209513192505105cd7bcfa5f0d919da706948fbe1f761f315846aa3b4813dd9ba3d81b9204e5409c0382b6eb\nSIG: 0f80ff5d17488fe26f93c543b04ed959b5f0643fc61c7f2c3bc60132ba9c6210c8b250ea5e84d07b01de68bc174414eeeb31fdc2ba6823e231e312a91ededd02\n\n\n# Additional test vectors from RFC 8032\n\nPRIV: f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\nPUB: 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\nMESSAGE: 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc27", "32e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nSIG: 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\nPRIV: 833fe62409237b9d62ec77587520911e9a759cec1d19755b7da901b96dca3d42ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\nPUB: ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\nMESSAGE: ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\nSIG: dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704\n", }; -static const size_t kLen31 = 41961; +static const size_t kLen32 = 41961; -static const char *kData31[] = { +static const char *kData32[] = { "# This file has been modified to remove the 65536-byte long inputs.\r\n\r\n# CAVS 11.0\r\n# CMACVer information \r\n# Algorithms tested:Alg = TDES KeySize = 3 Mode = Verify \r\n# Generated on Tue Mar 15 08:40:47 2011\r\n\r\n\r\nCount = 0\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 3bb96170d5df4cce\r\nKey2 = 25d5daa22a982f08\r\nKey3 = 52f4a110dcdc9e45\r\nMsg = 00\r\nMac = 96\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 1\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 9413d38685688f58\r\nKey2 = dc38b6b3cef125f1\r\nKey3 = 5b61f4f7a1c46ed6\r\nMsg = 00\r\nMac = fc\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 2\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 101a2f13fbb69473\r\nKey2 = 76fb98f24073f4d5\r\nKey3 = 2ca2706d76d00b67\r\nMsg = 00\r\nMac = 53\r\nResult = P\r\n\r\nCount = 3\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 2f8a238552c1e367\r\nKey2 = f8131f1c26ab3289\r\nKey3 = 83d5b6ba253bea31\r\nMsg = 00\r\nMac = 95\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 4\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = c1bafb5dc7100758\r\nKey2 = e9ef047a58b5ba89\r\nKey3 = 76cb4fb55ebcc1c7\r\nMsg = 00\r\nMac = f4\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 5\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = c82c29f1cb5851b6\r\nKey2 = 8b5b45dcbf0d8079\r\nKey3 = e6407057ae34ec0b\r\nMsg = 00\r\nMac = 03\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 6\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 6b455116f4f883d5\r\nKey2 = a81a206d25152aab\r\nKey3 = 86dc07b607202abc\r\nMsg = 00\r\nMac = 75\r\nResult = P\r\n\r\nCount = 7\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = c873d5bc4598d0b0\r\nKey2 = 1c1523cb4f794c8a\r\nKey3 = cedf6797d523dcab\r\nMsg = 00\r\nMac = 2e\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 8\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 45ce943bd31fe9b5\r\nKey2 = 677cc47c13c24923\r\nKey3 = 6b2086f14934838a\r\nMsg = 00\r\nMac = 01\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 9\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 804f9ef7baf7dfc7\r\nKey2 = 9bb6494cb60b8c07\r\nKey3 = 2080fe52e0d3943d\r\nMsg = 00\r\nMac = c3\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 10\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 73c10b833e1043ab\r\nKey2 = 16dcd343645d5207\r\nKey3 = 6426f7f88c3473c8\r\nMsg = 00\r\nMac = 8b\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 11\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 310d54d96bc73452\r\nKey2 = bae34f158ceafb04\r\nKey3 = 4651c1b53de3da26\r\nMsg = 00\r\nMac = ce\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 12\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 0e3d49d0e692f20e\r\nKey2 = a9cd384a3b688c0e\r\nKey3 = 584ae5f794f8fe7f\r\nMsg = 00\r\nMac = 4b\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 13\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = b0fda857ea402f0b\r\nKey2 = d567e9f48568f1e0\r\nKey3 = 0ec2ad452a547a91\r\nMsg = 00\r\nMac = 04\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 14\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 1ac1543b1591f270\r\nKey2 = dcda0e9870b9d949\r\nKey3 = 68ea9b1c4380ae9e\r\nMsg = 00\r\nMac = 43\r\nResult = P\r\n\r\nCount = 15\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = d0b008aea4454551\r\nKey2 = 9234a7731ab610b5\r\nKey3 = 2fb97a8ffbaedae6\r\nMsg = 00\r\nMac = 4c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 16\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 04793b0b0e976d0b\r\nKey2 = bf493e58fb73681f\r\nKey3 = 1f54a262d649b985\r\nMsg = 00\r\nMac = 77\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 17\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = 043b759b578ae570\r\nKey2 = 5e522f19cb9de092\r\nKey3 = 2af2e90eb6dcc1fd\r\nMsg = 00\r\nMac = 77\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 18\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = e58520088910513d\r\nKey2 = 7c10196e1a310dd5\r\nKey3 = 5b043b2a1ab97f85\r\nMsg = 00\r\nMac = 1c\r\nResult = P\r\n\r\nCount = 19\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 1\r\nKey1 = f27fd0f189452c15\r\nKey2 = 04681651014916ab\r\nKey3 = 204046aeeffecd15\r\nMsg = 00\r\nMac = 0b\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 20\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 860864a710ab0475\r\nKey2 = b9205751bfd91f7f\r\nKey3 = 3bf72abf13d97640\r\nMsg = 00\r\nMac = e890abe6ea126215\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 21\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = a7a1d57aabf1137c\r\nKey2 = fd0df2e35b8cdf2a\r\nKey3 = b386755bc2ab3d9d\r\nMsg = 00\r\nMac = f475587c2101eff2\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 22\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = c2c28a4c7698804c\r\nKey2 = ab25b53783dc0419\r\nKey3 = ab16341f4cead054\r\nMsg = 00\r\nMac = d335575aa3a4d8af\r\nResult = P\r\n\r\nCount = 23\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 7594a7aed3e986ba\r\nKey2 = 52a280e662d9e9da\r\nKey3 = 7649d3ad6838f2c2\r\nMsg = 00\r\nMac = 0e109f43557f250f\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 24\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 0798d9ef158cd698\r\nKey2 = fff4ade09b169762\r\nKey3 = 5b6e6849ec2c238a\r\nMsg = 00\r\nMac = 05af623529b168a9\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 25\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 254991cb4af76dc8\r\nKey2 = 2cf2e915918a025b\r\nKey3 = 2c61bfaee69b2676\r\nMsg = 00\r\nMac = 725ab7a770762894\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 26\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 9f68cbbf3bb5b3da\r\nKey2 = 31adb5a46e2cc8e3\r\nKey3 = f86ed9eaabb625da\r\nMsg = 00\r\nMac = 0422d94f874dda7e\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 27\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 1fd51f70a77ac8e9\r\nKey2 = 5dd9986e974c08ec\r\nKey3 = fd61ce34a75279f7\r\nMsg = 00\r\nMac = a163a5d269b3cc3e\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 28\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 078c57d6df9ba1d5\r\nKey2 = 08d94ac1b3d3c183\r\nKey3 = e90bf4fe7973c2c7\r\nMsg = 00\r\nMac = 9af3f01e20dc7c1e\r\nResult = P\r\n\r\nCount = 29\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 08df322f040e7c01\r\nKey2 = e92343e69d83eac7\r\nKey3 = fe94c1ec0da22c1a\r\nMsg = 00\r\nMac = 3d88c20a4f828c5b\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 30\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = b2ecf41c8692c2b0\r\nKey2 = 8ff18c1f1f296454\r\nKey3 = 383dcbc4a28c7629\r\nMsg = 00\r\nMac = 17241dc726fa4c56\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 31\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 07d99d58f2ec1fd5\r\nKey2 = ea46c73bf4b60ed0\r\nKey3 = f20ec149c831aecb\r\nMsg = 00\r\nMac = f6a8a0b536fd97d3\r\nResult = P\r\n\r\nCount = 32\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 3dfdc19426fbd56d\r\nKey2 = b03b7985b32af857\r\nKey3 = a807c7b3621ffdda\r\nMsg = 00\r\nMac = 3ef9b263ae1df460\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 33\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = fbc79bab46b97923\r\nKey2 = ece6da4c40f1e6e9\r\nKey3 = eaa76770ef517a40\r\nMsg = 00\r\nMac = b2da3efa7fc64abe\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 34\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 5ba4a1d5a80db5ef\r\nKey2 = 7ce6aeb9261cb00b\r\nKey3 = 8a5df23ea445e0c8\r\nMsg = 00\r\nMac = 51b2e75334d90889\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 35\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = e9c494e001027c86\r\nKey2 = c4649e58ea251904\r\nKey3 = 8025343dec34409e\r\nMsg = 00\r\nMac = 166123f1c59132a3\r\nResult = P\r\n\r\nCount = 36\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 6bce61e646452a46\r\nKey2 = 54ba8a020d0876fb\r\nKey3 = 34ea2f6149bad664\r\nMsg = 00\r\nMac = b0d0f625f06f2a3a\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 37\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 2f38f79bc8e0ea4a\r\nKey2 = d09876f22ca43e10\r\nKey3 = 3b8fab02299d328c\r\nMsg = 00\r\nMac = b26d377a504b8985\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 38\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 51febf790815f1d0\r\nKey2 = 9152d5e32f6713fb\r\nKey3 = 4a40c2c8fdb9f2b5\r\nMsg = 00\r\nMac = a27978e62026743b\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 39\r\nKlen = 3 \r\nMlen = 0\r\nTlen = 8\r\nKey1 = 10ba8fd6256ee9a4\r\nKey2 = fa8332a46ead52ab\r\nKey3 = b0e06e1fef04abb5\r\nMsg = 00\r\nMac = e1b0a228c142555c\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 40\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = f2fbab6734769e9b\r\nKey2 = ab45910e5775ab0d\r\nKey3 = 5bd5ea0db015a89e\r\nMsg = 7efeb7d4d14b3f2b3df4b8a276b18b49\r\nMac = 5c\r\nResult = P\r\n\r\nCount = 41\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 5bc776ba64adf4ea\r\nKey2 = 195e04987c62a4f2\r\nKey3 = c1642fdc1a31705d\r\nMsg = d1fb4f35914404af9df3bf5c368c0e69\r\nMac = 4d\r\nResult = F (1 - Message changed)\r\n\r\nCount = 42\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = b67c57f770202c6e\r\nKey2 = e91f4fb361bcae37\r\nKey3 = ada8d3df4fbcf4b9\r\nMsg = 9800db878187c87ea05bf92054b0e3e3\r\nMac = 8b\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 43\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = ce0bc48002fe7602\r\nKey2 = e702abe31c7a2313\r\nKey3 = d61964867f2579da\r\nMsg = 704e4e75be1623b21332c14555bf5edc\r\nMac = b0\r\nResult = F (2 - Key or Key2 changed", ")\r\n\r\nCount = 44\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = ad75e32cc11980f2\r\nKey2 = d0570429680e9486\r\nKey3 = c2379207f862dcfd\r\nMsg = 197de855b3962b1fdad687f9c4f1efd6\r\nMac = 44\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 45\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 9db504803d29f126\r\nKey2 = 07fe58b3da765bad\r\nKey3 = 6dc489516e9bb5f8\r\nMsg = 8f296b265fa575d146799f9e39d52965\r\nMac = 14\r\nResult = P\r\n\r\nCount = 46\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 991f0ed04079293d\r\nKey2 = 57077ff1baecd907\r\nKey3 = dcc7a719c4372967\r\nMsg = d9cfcc67520c5b2ceeb622c694a8e3fe\r\nMac = a3\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 47\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = eca815d6b0371cf1\r\nKey2 = 597980cdb6c892df\r\nKey3 = 3dba0ed3ba16ae1c\r\nMsg = a03636db2fdc84722aeb9d98a6ed70d0\r\nMac = 78\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 48\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = ea80a43d5886dfef\r\nKey2 = 08bf4f76a8893732\r\nKey3 = 4557a13752d6730d\r\nMsg = 0371a63ad722523ef297d8399b124593\r\nMac = be\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 49\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = e9fe73e640808c02\r\nKey2 = 9be6986446012091\r\nKey3 = 707023615462a40e\r\nMsg = 83bcb484dca73d49ac234ece3a5d2ad3\r\nMac = d6\r\nResult = F (1 - Message changed)\r\n\r\nCount = 50\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 1fe9800ecb0dd9f1\r\nKey2 = dbbc6bc72c794c23\r\nKey3 = 899b08469b6bc8b5\r\nMsg = 95f4a41c4c64cd7310fba748aa267a14\r\nMac = 59\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 51\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 34546261a21c1c43\r\nKey2 = 0449eaeca4f29725\r\nKey3 = 4cc4e6525186802f\r\nMsg = d204de1e671d3e43670dd67fee114402\r\nMac = 6e\r\nResult = F (1 - Message changed)\r\n\r\nCount = 52\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 048aa8701fb5fe26\r\nKey2 = d56bd53d83e60bd9\r\nKey3 = 6707d6523ebc32f4\r\nMsg = f4e9f92fd2c9313fb61a889eaa4ff283\r\nMac = d5\r\nResult = P\r\n\r\nCount = 53\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 6ec19b02976e5ba2\r\nKey2 = 13540732d997c2b6\r\nKey3 = 7f4068926183251c\r\nMsg = 963363ab7c82b634974954bd0fe2c307\r\nMac = d7\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 54\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = f4ecea5d32e32c6e\r\nKey2 = 385710cd3eb0fe51\r\nKey3 = 5d4c8f7ccdf10154\r\nMsg = a298857dc60ad2f0a8fa878607b50c18\r\nMac = 4c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 55\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = b31ff49dd970f8e9\r\nKey2 = 164aefb00efb5461\r\nKey3 = 981629757f4532dc\r\nMsg = fc3957b2ed0558bce61d478be615b774\r\nMac = 90\r\nResult = P\r\n\r\nCount = 56\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 85384543d3aef157\r\nKey2 = 57ea916d9b2fd0c8\r\nKey3 = 1a85830473fbe6c4\r\nMsg = 87db0d9d69bc0cf69cabeb92570e482b\r\nMac = 53\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 57\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 9bf8fb0b464070f8\r\nKey2 = 10ea23c7e5a19bcb\r\nKey3 = 408c236e10863e2a\r\nMsg = f9c98cd8a7d27553da946427b8276349\r\nMac = 53\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 58\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = 91b083e9c8e9803b\r\nKey2 = 76d0341cd54c38e5\r\nKey3 = 07bca7f44a3e76bc\r\nMsg = 7e5b64dc6bcbae6bb4496fc033947343\r\nMac = de\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 59\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 1\r\nKey1 = e6795b1ffe8f3e38\r\nKey2 = 4fdcea8c73c76e75\r\nKey3 = df0726ae4c079461\r\nMsg = 5265fb6a796d99a6beec6f71ba267b5d\r\nMac = e0\r\nResult = F (1 - Message changed)\r\n\r\nCount = 60\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 375710c76202bff1\r\nKey2 = 3bb96170d5df4cce\r\nKey3 = 23d5daa22a982f08\r\nMsg = 52f5a110dddc9f44f8a534eef9df0b22\r\nMac = b1b9e11939228900\r\nResult = P\r\n\r\nCount = 61\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = b59b855dce76adf4\r\nKey2 = be9bae10fe34fb1c\r\nKey3 = 0d49159bf804a4ea\r\nMsg = 869f3b62ee78bfeb5287168eacf69ccb\r\nMac = 169a389352793c8b\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 62\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 615d792a7038fd89\r\nKey2 = 98ce972f016e75a8\r\nKey3 = c470255783b32f01\r\nMsg = e5aed6715aa4291f9c32baf6b8449b53\r\nMac = 73ac2da999bfdf5d\r\nResult = F (1 - Message changed)\r\n\r\nCount = 63\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 1fb09443a1074564\r\nKey2 = 3d1aa82c086eba13\r\nKey3 = c137d0f4ea54d604\r\nMsg = 16f02efd285381d7657ca5cd99d9e25b\r\nMac = 38126d16957893ce\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 64\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 2e5d163461fea761\r\nKey2 = 9173bf75372fb640\r\nKey3 = 9e3d1c3dcdbfbc31\r\nMsg = b10fcb03443302ae929ff95a17b025fa\r\nMac = b70f2d761ca643c9\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 65\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = b9e5861c1c4013d3\r\nKey2 = d554806efd3801a1\r\nKey3 = 64d9bc3d646e76dc\r\nMsg = 0e6c9fced82669cffe7b5a6f09dceec8\r\nMac = 78ce4635e486635a\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 66\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = ad2376516b974c70\r\nKey2 = cd3b5870c2312929\r\nKey3 = 1a731a7feacbf783\r\nMsg = 88eb7a0379da9d113343dc1fe0f3e6f7\r\nMac = 0c949483e7fa7d0c\r\nResult = F (1 - Message changed)\r\n\r\nCount = 67\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 9ada194c100eeacb\r\nKey2 = da23ad9825c194d0\r\nKey3 = 3ef1f4c438dce031\r\nMsg = 0f9703a3454c25c0b1053de62b0ffc5b\r\nMac = c78a4ca3662527e5\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 68\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = e375f870f4d55b02\r\nKey2 = 1b015791e3e337b3\r\nKey3 = 370dc45b15671c5b\r\nMsg = 5ad9dd3b112ea4cee1654d2dfabab01e\r\nMac = 22becbbe7bfcade5\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 69\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = d61f4aeff4b5f2f8\r\nKey2 = 0486b53de3ecc297\r\nKey3 = 807fe92fc2fed376\r\nMsg = d094cf77a709c0fa5d6b4b7e9e86a2c2\r\nMac = 947d024d9d5359a8\r\nResult = P\r\n\r\nCount = 70\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = c2c28a4c7698804c\r\nKey2 = ab25b53783dc0419\r\nKey3 = ab16341f4cead054\r\nMsg = 7295a7aed3e987baef19ad68c33ba5a5\r\nMac = 58de82acc10d556f\r\nResult = P\r\n\r\nCount = 71\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = f1ce4992c851e3a8\r\nKey2 = 835ec1abef97f2c8\r\nKey3 = 5b92384f20dcc2ad\r\nMsg = 9094935fcd7c389dd17b5b121cddadf9\r\nMac = 319c70370c172de3\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 72\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = c16ebcc1165d6892\r\nKey2 = 75268c4602f8c8bf\r\nKey3 = dab97f79544cf1cd\r\nMsg = b7ba1c66282cb6092ba601407ff9578a\r\nMac = d73c26311bd44a32\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 73\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = fe4a796720a46dbc\r\nKey2 = 98f45289e9f8b080\r\nKey3 = e05def5b25520d43\r\nMsg = 31c9eed491bb0cda9b8c0eb5afa31019\r\nMac = 8c2ce22633c62751\r\nResult = F (1 - Message changed)\r\n\r\nCount = 74\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = eefb40c715c4546d\r\nKey2 = 5b2325c8d9daa48a\r\nKey3 = d5ec4a6bc82a7a62\r\nMsg = 5a97259dfa081f040d3893da2f231ca3\r\nMac = a64113544f509be8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 75\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 0d0851311ca45db0\r\nKey2 = 3d7c458957c8c408\r\nKey3 = 98d37c9d51ab2f25\r\nMsg = 8be16380af3e2dbc6cf678c2e3331335\r\nMac = 8817baeaa909e33a\r\nResult = P\r\n\r\nCount = 76\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = b7239438d61cd626\r\nKey2 = 082c6404cb3897b5\r\nKey3 = c4c732cdd5e043c2\r\nMsg = 7120f19169e7cbb913c7d1f0ceb006c0\r\nMac = 32841ad7621cc0fc\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 77\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 73f449ef83df75e9\r\nKey2 = 5f3d2016bfd0703b\r\nKey3 = 31abc16b58b64af4\r\nMsg = 83ecbfcff3bc37f1305d83bc0290350c\r\nMac = 8f8ba8bfc74203fa\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 78\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = 9b6ea461c7b9abe6\r\nKey2 = 4a08dcdc5b9e01fe\r\nKey3 = 6b850e9b6ebae9d6\r\nMsg = c538416fba487fac5c94449d0757f3e9\r\nMac = c13f372e9a061db8\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 79\r\nKlen = 3 \r\nMlen = 16\r\nTlen = 8\r\nKey1 = c7aeeacb156dfbfb\r\nKey2 = ba43ef516232a7d3\r\nKey3 = 2c572aea62808c68\r\nMsg = a1bc9950759d0df4cffaf29345dfb340\r\nMac = d7dad4519b56a1eb\r\nResult = F (1 - Message changed)\r\n\r\nCount = 80\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = cda4d34370234946\r\nKey2 = c408ea6bec07c78c\r\nKey3 = 19eff7f798fd6808\r\nMsg = d1fb0b68176269cf9fda18bf13efc054f0c24fd042b9e2ecaf75e86cb60484f6\r\nMac = d8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 81\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 02100be5627686a8\r\nKey2 = 7f0b38ec073e75ef\r\nKey3 = 373b1a64ba5416d9\r\nMsg = c60be37fb0bda4f46894690b3344643c772fbd2237db348adaa407ca2eae1654\r\nMac = fb\r\nResult = F (1 - Message changed)\r\n\r\nCount = 82\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 7597571a6e7c6bc8\r\nKey2 = c143a2a461626b1a\r\nKey3 = 6b1307d910434cc7\r\nMsg = 49cb128641f7952dfdf34f338da268b2ef1482557b593e", "c57f930164264ff83e\r\nMac = 90\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 83\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = ae89ad615201546b\r\nKey2 = ae20765745458fce\r\nKey3 = efd0867fba43dcb0\r\nMsg = e47d8659c9ad94971adedd6bce744206e1cfb65d042b942d93c4363cc73ec3e3\r\nMac = 95\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 84\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = b65886f13d6e8c4a\r\nKey2 = 0708e0b0730473a8\r\nKey3 = d04f2a86dc0b9e7a\r\nMsg = b97c12251d91512fe7b3a349a982409c7412f39494d970e77acbe9d3fac3dca7\r\nMac = 05\r\nResult = P\r\n\r\nCount = 85\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 3197a4a26261588a\r\nKey2 = 0dc4a75ec8b99b58\r\nKey3 = efb93e7620205289\r\nMsg = 65f4b3a00c1c1ef39445a69b2150b034705410140ff9dad0ce21740271cef04a\r\nMac = 57\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 86\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 62c4a16e946b4313\r\nKey2 = d09ea80e7fb33449\r\nKey3 = 164fdc04c2d5f116\r\nMsg = 898e824fdc89f21779156a9e58564c4b99004b95226c2ebb8aebd0b5365a6c6a\r\nMac = 93\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 87\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 6eeff20d3d5d5223\r\nKey2 = 258076b313611c1c\r\nKey3 = b013b957f70d9e62\r\nMsg = 2d7fec1a1e9ee85cf960e5dc4e239619ed85f4b14d32cbd42dfa79f77a27f2cd\r\nMac = 0a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 88\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 193e23e6fd8aa185\r\nKey2 = 1910cbdc549da804\r\nKey3 = 6b769b4923523425\r\nMsg = bd65798a1d02ab164e2d31b1387e505874779539046820bd429043c617854c36\r\nMac = d3\r\nResult = P\r\n\r\nCount = 89\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 150789ab37ef2ce9\r\nKey2 = 10cdf45dad9ed9e5\r\nKey3 = f475fd3e153898fe\r\nMsg = 044dd73a7d1ef37a437c09e9268708c82ebad189dc1e989ab3bd8d7ff75abc23\r\nMac = e4\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 90\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 48d9d08a6bdcc4f8\r\nKey2 = 1383641c08735d0e\r\nKey3 = 374a89c8cb73a7f4\r\nMsg = d62fb84f2a2442b52acf817d7f067edca031970bea092c35f29f9a931aa06dd6\r\nMac = 26\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 91\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 68f4620da8b00201\r\nKey2 = df1c8362345180d3\r\nKey3 = 26abda897f89d90d\r\nMsg = 0ac3f7f22d24b64aa584845d3a990bb69e5d2d4650640056c16c17c0b636045f\r\nMac = f9\r\nResult = P\r\n\r\nCount = 92\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 1c259df7492361b6\r\nKey2 = cd4acdb65b3e5b1c\r\nKey3 = 3b01addc2579ef64\r\nMsg = 607f4730a5ea9dabfbcd8586f680c3021c7ebc858e73354beb975d58713b0eb1\r\nMac = fa\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 93\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = f18a9dba9db5dff1\r\nKey2 = d5987013a4b69e38\r\nKey3 = dc16e0ce1351e3f4\r\nMsg = bfe99e184a7d7bf0b4ade8f402f2c49aa4948e74b2d5c905756ba5d32934dbbd\r\nMac = e4\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 94\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 8361bac48afb1091\r\nKey2 = da85400d107fbf8f\r\nKey3 = 31ec732cc29d7045\r\nMsg = 3a1ee70d4607325c13bff68e402e0a72742f6a63ae972c6dda74b6b2a3922f0c\r\nMac = 0e\r\nResult = F (1 - Message changed)\r\n\r\nCount = 95\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = d0df1adf1cf72032\r\nKey2 = 1504d564ec1aea61\r\nKey3 = c42fada45d80a43e\r\nMsg = 3a53d9c7ae59e7811699fb0973e43256ed92162267c7ca4b57f5887ad5a24e02\r\nMac = 8a\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 96\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 973bfe5b3be573da\r\nKey2 = 94b3ec7f343e46ab\r\nKey3 = dcaeabc8df405db6\r\nMsg = c8437dba76591a9031b3aa3b59fec0562d4eac439ca8efca57c3f2022b0ff775\r\nMac = 53\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 97\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = bc89867c43a74640\r\nKey2 = df347fb319464c80\r\nKey3 = fd92108a266bcdcd\r\nMsg = 1c9898ede16139560519e808ee9ddaf710a5bab30f54ed98230d1a44c189ea4f\r\nMac = f6\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 98\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = fde925e301897f67\r\nKey2 = 54b3ab80f815df15\r\nKey3 = dc58928aa286c8e5\r\nMsg = b34f898d98a3aa0fa022b1b1d76953a5b3ecc88d60f2c79b59e1b1f636bc0d60\r\nMac = 0f\r\nResult = F (1 - Message changed)\r\n\r\nCount = 99\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 1\r\nKey1 = 8a704ffe43e951f8\r\nKey2 = 2346dc8501202a40\r\nKey3 = d67afed616230113\r\nMsg = b2b4cb5e90ebf4bd265093b7f5efd4d62dc60e29737aa496e14929724e40c74f\r\nMac = df\r\nResult = P\r\n\r\nCount = 100\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 8c1f29f440f7f8b5\r\nKey2 = 5b45fe8f1f688661\r\nKey3 = ba40f43d9e7cc86b\r\nMsg = 220817144a15a0a654fc1beaabce60270aa72df83591754ee7a5fbb40b7420d7\r\nMac = 80ac51c2ef7bd5d7\r\nResult = P\r\n\r\nCount = 101\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = d66e76d97f94ea16\r\nKey2 = f15e3ed06dd94598\r\nKey3 = ae073d1a6e5bc819\r\nMsg = 233d547ab33790859ab0dbc7a93f3bbebb610bed9acbfbce1fff580e9a1e8ef9\r\nMac = 4cb8ce681e4bc7c8\r\nResult = F (1 - Message changed)\r\n\r\nCount = 102\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 0437836df770e943\r\nKey2 = c96e2c43bffd5298\r\nKey3 = 8552fbc16215e0c4\r\nMsg = 4f87d730bdfc7a7c72525c6b26ee9cae9a219b30d9575fedbd913a07b615a616\r\nMac = ea79cbc28f4264db\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 103\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = d849ba8570b6ef9d\r\nKey2 = f1405732aeb61f92\r\nKey3 = 73c8e51ff167f857\r\nMsg = fd03202d0bd109b6e4299c7390c1407cd21ffb110013e6381185dea8f8707de6\r\nMac = 71070b17d05dabef\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 104\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 914cef7ab6d998dc\r\nKey2 = a767abc18cf485e9\r\nKey3 = a2624ff20b2a408a\r\nMsg = bc5ce4c0bf3ad1a93e5306c9d7dbb620dde8708efe84e78c2200f41a958cdef8\r\nMac = 3cf4aaf3d337c9c8\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 105\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 757f52e626eabce0\r\nKey2 = 700d91f14554bcb0\r\nKey3 = 548640d0dfaec2ab\r\nMsg = 22a4cf581584346095783be0982744c6201ff040760f868ab63895058d1edb88\r\nMac = b008b1150535ef11\r\nResult = F (1 - Message changed)\r\n\r\nCount = 106\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = d65d0e58d3133b34\r\nKey2 = 289e58704994a249\r\nKey3 = e3df20ae3d585e2f\r\nMsg = 94c8414cbbec52e2d73bb8f02ef687c91432495c0c744666317d02e6d46706d2\r\nMac = b1292e1c7074dcfc\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 107\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = d77a4989f4a17f2a\r\nKey2 = 409d91d51fa4d045\r\nKey3 = 6bb652ea1526fd4f\r\nMsg = 7a08ce579ae7af8004421cff72715e0b137da81f47d8f84da34c3ed53c32c0f6\r\nMac = 8b3cb70477ca7ca8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 108\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = e670c17519d9c2f2\r\nKey2 = dcc8a132629b462f\r\nKey3 = 58c1d52543ad570d\r\nMsg = a6dbad96ad23ff61479df39b99f0673a09f2a7eaebbd34b95d05c4146fa989f2\r\nMac = c470ec40599a0a11\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 109\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 290d292a15b6268a\r\nKey2 = 2638d9ad83ad1f34\r\nKey3 = a7d9ba62735dc2d3\r\nMsg = ef995cbfc49b0ebccdbd37d9f40a431c385d33d4b8234d7f0d6211eaddfb709a\r\nMac = 67ae62fb8142bd8b\r\nResult = P\r\n\r\nCount = 110\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 4faba73bcd5b5dfe\r\nKey2 = 1c97ea85207a97a7\r\nKey3 = 19eff116100dc82f\r\nMsg = c48e53c6956432460584c7ee1577c1c38b7fae2ff288199be25bf64081154139\r\nMac = d68a4558e95a67e4\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 111\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = d37c3dbc2f68baba\r\nKey2 = 918cb5e39237e016\r\nKey3 = f286b0739d38c4fb\r\nMsg = 2533361761ac80578fa262a50462045e3ec6e4d5d25c6e99a5c4ccf75f5affc0\r\nMac = c20f36e67732f864\r\nResult = P\r\n\r\nCount = 112\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = a0baa71c38d6d064\r\nKey2 = 8f58ba45cb494ab9\r\nKey3 = 853decc431f7b3cd\r\nMsg = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fbf11b68519d573a8a\r\nMac = 4ba956b98a99d7bf\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 113\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = b69752407c68b6bf\r\nKey2 = 8fceb05201ec4320\r\nKey3 = 2a755e372373ef26\r\nMsg = e884d65c87411584a56956d5b27ca9725b473c205b64cff09400671f5ee0473a\r\nMac = 9f3de5e8cddc374d\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 114\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 8c04e0f27f83b0ec\r\nKey2 = 042cfb6883348fe6\r\nKey3 = 404f5dfe587ab591\r\nMsg = 8a34cd562b111fe04fa0bf5e004faedaef99d0bab9344d966c8b3847486e6f40\r\nMac = 6c530215fb25015b\r\nResult = F (1 - Message changed)\r\n\r\nCount = 115\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = 429401ea49cd97b0\r\nKey2 = a8f1b6b63101cee0\r\nKey3 = 20bcd08c5d16e049\r\nMsg = 591d88123fc9a786b247e8d5ce155f136d6fe4084117c41f2056b67f9e3e1077\r\nMac = 6c414640b424cf56\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 116\r\nKlen = 3 \r\nMlen = 32\r\nTlen = 8\r\nKey1 = c470255783b32f01\r\nKey2 = e3aed6705ba4291f\r\nKey3 = 7319100e54f432d3\r\nMsg = 01acc3282fe41b62f95f5dbfb7e7bfef694c5fe34ca87d31abe7e7bbf887b48c\r", @@ -2427,9 +2507,9 @@ static const char *kData31[] = { "6a1eddd80737a724c\r\nMac = 0ff14761c982f890\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 158\r\nKlen = 3 \r\nMlen = 10\r\nTlen = 8\r\nKey1 = bc327a0bcb2575df\r\nKey2 = 6b9483e6e0755d2a\r\nKey3 = 622cdc5b2916ab89\r\nMsg = e1be89af98ffd7d9257a\r\nMac = d6f4c8d96b3e2180\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 159\r\nKlen = 3 \r\nMlen = 10\r\nTlen = 8\r\nKey1 = 9e517cd616a48ada\r\nKey2 = 6d266192d5387a97\r\nKey3 = 8a081fda97c86b94\r\nMsg = 9e9fb0b2b77be6eeaae8\r\nMac = ba0b73fbffc0ab0b\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 160\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = e0b9a826a85efe94\r\nKey2 = 4f615bce7cc1ba68\r\nKey3 = 3bb56d3d9816103e\r\nMsg = cfe9ee956cb1f5a60aa6ec79a3e454224b456879\r\nMac = 64\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 161\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 1e08a794a175b69e\r\nKey2 = f7d3ab46aeb9073e\r\nKey3 = 3e7cf8cea19d0891\r\nMsg = eb4f5b04517ee93e2c900e01948ac81ca56b2b26\r\nMac = 79\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 162\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 8f26700dc140570b\r\nKey2 = 8325e3a889c823ad\r\nKey3 = 6b048aa73decf83b\r\nMsg = cefb55151933a488e2b3d421dea9720727188106\r\nMac = 85\r\nResult = P\r\n\r\nCount = 163\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 3443f4016dadcd86\r\nKey2 = 255dec80323e5838\r\nKey3 = fd583285e6efbc51\r\nMsg = e64eeb89828b4297601a5b3fcde60075fc2424ae\r\nMac = c0\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 164\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 91a401cbb6460b16\r\nKey2 = 85438675f15b6e73\r\nKey3 = b09140318a767038\r\nMsg = 8c65cde13149d9d54a5bccc17747f1d5f3e807e3\r\nMac = 56\r\nResult = F (1 - Message changed)\r\n\r\nCount = 165\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = b78a16fb9b075d3b\r\nKey2 = dcabbf7a07150261\r\nKey3 = f7644a01d5dcea46\r\nMsg = abe2fd996bb6804ed3286c057df9cea6836a2dad\r\nMac = 09\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 166\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = ce8a467534cd679e\r\nKey2 = cb9ee6fb70a42f4f\r\nKey3 = 16c1e5c1459e4ac8\r\nMsg = 3c56ccfbe92023109983e740d6a53488b813ee87\r\nMac = c8\r\nResult = F (1 - Message changed)\r\n\r\nCount = 167\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 401f0de0efd6dfa8\r\nKey2 = 16ae7c3bbc6e5b86\r\nKey3 = 4ffebf790815f1d0\r\nMsg = 9052d5e22e6712fab88e8dfaa928b6e015ca589c\r\nMac = 61\r\nResult = P\r\n\r\nCount = 168\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = d357bf5bef2cfba7\r\nKey2 = b757d3abf49b4ac2\r\nKey3 = 16388051da8a04a7\r\nMsg = b04e8f6d20924be8e4e2c6767f87b74377bdf90c\r\nMac = 72\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 169\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = f8ea68aba1bcd9e6\r\nKey2 = 4abaa4260d864573\r\nKey3 = a49840ab737af7b0\r\nMsg = 1fc99e586f87932445930a300eb28191d9c6215b\r\nMac = 19\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 170\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 94ec086d8c0110cd\r\nKey2 = 4ea11f327f70c245\r\nKey3 = c8d07adf7c7c5eb9\r\nMsg = 812dbc453a1fda59f73aceea3bc84d2c7a437dfc\r\nMac = b2\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 171\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 9d575d582a9723c1\r\nKey2 = 294af47a54b051fe\r\nKey3 = 5131bff85bf12608\r\nMsg = 266e5305b96f497a956ae82b20367ebac0b14215\r\nMac = a9\r\nResult = F (1 - Message changed)\r\n\r\nCount = 172\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 913d800ecd0dc762\r\nKey2 = 7f6ec476b6b07c15\r\nKey3 = 973262ab7c83b634\r\nMsg = 4670a266bebcdf95c62d36cda33d50e6650fcdcd\r\nMac = 4f\r\nResult = P\r\n\r\nCount = 173\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = b97ffe79d068ece5\r\nKey2 = 4a75fe2f67dae392\r\nKey3 = 45a4d9f17a9d70f8\r\nMsg = b53017500c100dea0511845597214484fc5f7f34\r\nMac = 6d\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 174\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 7e1af10bcd86c283\r\nKey2 = 51cd37540e19021a\r\nKey3 = 988fd3c7250e2a6d\r\nMsg = da1919d4a2a7fcc34c88fb2065e52bf9dbc50731\r\nMac = 22\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 175\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 8c0dc16eb9c80775\r\nKey2 = 6eeff20d3d5d5223\r\nKey3 = 258076b313611c1c\r\nMsg = b212b857f70c9f63d0c9d2ccd253c28d1534631f\r\nMac = 2e\r\nResult = F (1 - Message changed)\r\n\r\nCount = 176\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 92c29eb0bf3e73a4\r\nKey2 = c6ecfbe6cd49bf4f\r\nKey3 = ef19d9d06d7a5e7f\r\nMsg = 969304e651ca62039088f8123085ac3263796b67\r\nMac = 57\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 177\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = a4432f52975e4316\r\nKey2 = 7f2086da04fddf4f\r\nKey3 = 8302139e79684329\r\nMsg = 5c9bcd197ea59e1b58b3da707b253491cc5a5ef8\r\nMac = ea\r\nResult = P\r\n\r\nCount = 178\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 5ae0b6d6c2855b7a\r\nKey2 = ec675d3e73bfd685\r\nKey3 = d3406b868fd3ae0e\r\nMsg = 89b9ecfef6f10e81f7956dbc7ca4a335047535a8\r\nMac = 70\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 179\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 1\r\nKey1 = 8f7f85649d5e08a4\r\nKey2 = ceda75687308e07a\r\nKey3 = 9215c4c19bdc0d46\r\nMsg = e53101e6eabcda32c13d7b1dd1d88e7c2ca3ddc2\r\nMac = 14\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 180\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 7061b5f46b98d394\r\nKey2 = 58c2ce3807623475\r\nKey3 = 0df8e3c432da8a37\r\nMsg = 1086953d352e94a51a6d4c59a2295e8fff5b311e\r\nMac = 554d4df88228eba3\r\nResult = P\r\n\r\nCount = 181\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 347a25a1ec433b52\r\nKey2 = ec75d97046152c10\r\nKey3 = 86b937b6ad1ccbf8\r\nMsg = 4fe6bd43c28143ea5d40919cb5330a7e674f5bd8\r\nMac = 3d0d841895fb7c65\r\nResult = F (1 - Message changed)\r\n\r\nCount = 182\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = b3701aa7da61512c\r\nKey2 = 46dacba40740e3c1\r\nKey3 = 8f79a4dcadbc315e\r\nMsg = 4612fb4586d7518d0d648894347ae7d49d043f29\r\nMac = e5dd4392afbeabe7\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 183\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = b5b57acb2c7fd6cb\r\nKey2 = 70b02c9d8651c889\r\nKey3 = 07f485f7b00e45d9\r\nMsg = 9011231ec382ecaaae57f34de1ac6bbb50741014\r\nMac = d34581ad5a3e9e57\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 184\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 88985bdfd9852604\r\nKey2 = f7f829aec8a208b3\r\nKey3 = d5ba012ce6754554\r\nMsg = 6cad7f3b9f196839bbc5a7f755c09aa8e17c83d9\r\nMac = fc7c93552aa14ca2\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 185\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = cd0815194319d552\r\nKey2 = 346bb634027668d9\r\nKey3 = c17f2a26257afbad\r\nMsg = e31b3d97ba6ee6f2e18f084215ca0a5ca0d816d7\r\nMac = af5772396bb63d20\r\nResult = F (1 - Message changed)\r\n\r\nCount = 186\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 236e5201dfc1081a\r\nKey2 = c81526bc85c7a2ce\r\nKey3 = ab91d0aee0d68931\r\nMsg = 1f36b9cbf3d4d4dfcc4ba7fafa7c229f0a9253f4\r\nMac = 27586cf856a41e82\r\nResult = P\r\n\r\nCount = 187\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 2e01198faeb6986e\r\nKey2 = 7cb564801f15bc5d\r\nKey3 = f2d3ef0d4fec61c1\r\nMsg = 27c8c90c9e46e14b8cbb0b7559bb166d65f58aeb\r\nMac = eaa7b4a171e449ef\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 188\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = df575b851331b016\r\nKey2 = 33ec7326e9ef31e5\r\nKey3 = 1686c1ec8a3ea16d\r\nMsg = 1e4e01d38ff65d05646d544b52a6df49b897eacc\r\nMac = 45789bd32147c0ae\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 189\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 43b68c1f29ef5b94\r\nKey2 = a7dfa1cbe9ea3df1\r\nKey3 = 83d3c286e973ada1\r\nMsg = 0ca9b0f6465db0e101f8c14b2e73859d9c355b0a\r\nMac = da439a51157ff0d5\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 190\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = bf91d679268c85ce\r\nKey2 = 46b9f7bf4aa1a2c2\r\nKey3 = f7fd15fda2cd6408\r\nMsg = 0c2933e39d7e601ee6f2519eaf01294853664262\r\nMac = 455cd46d3b452a55\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 191\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 0dad9d451f890b38\r\nKey2 = 3416e3c240a16ee6\r\nKey3 = 5b80d6aefd4ab5a4\r\nMsg = b6e1de9abef7525c5dabbdc85746958781d50139\r\nMac = 3445a869cca839fb\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 192\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 96858f8f2ab56df2\r\nKey2 = 5edc3b04b94ca7cd\r\nKey3 = bf10614ce0491645\r\nMsg = ec9aa18b3e7da99dcbd7de7617a79130abe3348a\r\nMac = c744a1392fc656c2\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 193\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 46ad6ebad9644a67\r\nKey2 = da684aa48f23d619\r\nKey3 = 43a2316b40a46e25\r\nMsg = cf97c2abe3d0fc89e05538b50147a3f405391219\r\nMac = 7ac08967edc5730b\r\nResult = P\r\n\r\nCount = 194\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 68647694efb32023\r\nKey2 = 0d2938c8fe1a4057\r\nKey3 = f479f16e7552942f\r\nMsg = 33a9c750bb532d2d37ec86fa851aeb3cad1eaad8\r\nMac = 3873ae02210eb5fc\r\nResult = F (1 - Message changed)\r\n\r\nCount = 195\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 58d62fd92af7437f\r\nKey2 = 89dfb51fc807cd6d\r\nKey3 = 024fd04f40d5d0e3\r", "\nMsg = cc293c9e1780b401d2e7fceef6f69edcf0f70b86\r\nMac = 6574bfceaf04b4e1\r\nResult = F (1 - Message changed)\r\n\r\nCount = 196\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 4b377f98df0b7598\r\nKey2 = bf73f4c2cb074001\r\nKey3 = dc9857f47fe6101f\r\nMsg = 9ba5dbe7a8ecfbedadd7889cd7f1ae073e01ee3b\r\nMac = aaaeb7223578bbad\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 197\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = 91c8851934cdecc2\r\nKey2 = 582562aef1205e32\r\nKey3 = a12a70eacbad310e\r\nMsg = aa390a0ae33751b0bd8de5723df91d999aa70358\r\nMac = 67f76912ed61eaab\r\nResult = P\r\n\r\nCount = 198\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = dcc2bacbea0dcd10\r\nKey2 = c18ca45ed57f8f97\r\nKey3 = 5d58157a677f1951\r\nMsg = a7573e5b7dd7f4ce9e4480f603c14145a27f7c7a\r\nMac = 2b6af968464ac63f\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 199\r\nKlen = 3 \r\nMlen = 20\r\nTlen = 8\r\nKey1 = fe6d49702f044f40\r\nKey2 = 33321613da401004\r\nKey3 = 8c3438f74cc2680d\r\nMsg = b15a118b3132c20c31e6c9d09acdee0e15fcc59d\r\nMac = 9f28413a00da00ab\r\nResult = F (2 - Key or Key2 changed)\r\n", }; -static const size_t kLen32 = 53587; +static const size_t kLen33 = 53587; -static const char *kData32[] = { +static const char *kData33[] = { "# CAVS 11.0\r\n# CMACVer information \r\n# Algorithms tested:Alg = AES KeySize = 128 Mode = Verify \r\n# Generated on Tue Mar 15 08:40:37 2011\r\n\r\n\r\nCount = 0\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 27b5686c79b3d242f96d3892c6135b26\r\nMsg = 00\r\nMac = c98d11822b9b4d7a\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 1\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = b4542a22baa348ee2d11ef62d44cebab\r\nMsg = 00\r\nMac = f7a2a3f519fc462f\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 2\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 7256e344f68b3e7f9dd6e04c5c65135c\r\nMsg = 00\r\nMac = d4d7fcc5f979230f\r\nResult = P\r\n\r\nCount = 3\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 7a2116595c5cf6482199d3312498006d\r\nMsg = 00\r\nMac = c3c4fa28709060b0\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 4\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 0341551d6c7e7c57f678068f0b41d1fe\r\nMsg = 00\r\nMac = 821030d4b7889fcf\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 5\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = b67ba2aa4e9ea9871c3def87e2dd77f4\r\nMsg = 00\r\nMac = ea896182698ac145\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 6\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 0091d39f3478d2c59bf874b96db9ce0f\r\nMsg = 00\r\nMac = fb12c5971b0f2f18\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 7\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 46a2e6bd3fd5336abf02eace3cd1e1f6\r\nMsg = 00\r\nMac = 9c6b46ef046ae1d1\r\nResult = P\r\n\r\nCount = 8\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 4b0fbd5e6f9298e5ced5ebdc60fc18a7\r\nMsg = 00\r\nMac = 221857badcbcd2be\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 9\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = fb20547da671acd4c6df37f6568a6428\r\nMsg = 00\r\nMac = ba0c9bfd3d9c0c95\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 10\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = b787def50aaf446bf15c562434844562\r\nMsg = 00\r\nMac = ba60bdae64068330\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 11\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 67d77f50727c7cd5b38e0b175a888c88\r\nMsg = 00\r\nMac = 555923e6b5fbc504\r\nResult = P\r\n\r\nCount = 12\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 6f552ef7d309bb98597b91cecc21e158\r\nMsg = 00\r\nMac = c2aa402c0443dfbd\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 13\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 411871267919a145532cc401e753ebff\r\nMsg = 00\r\nMac = 167a31913228f45f\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 14\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = abfe32efdf0464cb2eaafca8eac30d9b\r\nMsg = 00\r\nMac = 8edbc729b1923e10\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 15\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 85504d59a12f3e17edfb0b6337d4a081\r\nMsg = 00\r\nMac = 9045fd77cb26dcb2\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 16\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 55f7565826b0e2ccc1368f4de32022de\r\nMsg = 00\r\nMac = f82395416a8dc209\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 17\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = 43c8f984390debb0f26c6b9c2df8518c\r\nMsg = 00\r\nMac = b5d732086bf8feab\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 18\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = da288d2014616f16a2abf5923dea49ad\r\nMsg = 00\r\nMac = e03b67b53fc7863f\r\nResult = P\r\n\r\nCount = 19\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 8\r\nKey = e2f962d076df051c2d291b47a902ea0c\r\nMsg = 00\r\nMac = df1456a7edeb4e42\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 20\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 191b53e0c7d90161e5e2014e9b8aea31\r\nMsg = 00\r\nMac = 1e210cff3c90bd2e2a27a78ef7662f61\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 21\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 54666bdf6db300ee10982d14dac828bc\r\nMsg = 00\r\nMac = 9fef67209b8da28049b80efe98f85f13\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 22\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 9a143c21cc6c9528b9ddd7e4405682e1\r\nMsg = 00\r\nMac = 1c3c3b6d1d86ac5787234f8f6d707acc\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 23\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 802047ee1309e548ae81e93a17bff9e7\r\nMsg = 00\r\nMac = 1472aecaa0a09e45893a14090ed9a17f\r\nResult = P\r\n\r\nCount = 24\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = ab79ce74c0959aea0fd0b28ea5d0afe2\r\nMsg = 00\r\nMac = fde8a95536cc334f7fc8881a187afc61\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 25\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 644ac6fdc1e713ecb7ff1e0bd5729a57\r\nMsg = 00\r\nMac = 95a93bb50703521e6c1a8be1aab6a646\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 26\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = b4571e56f66a857daffbdc99370ceddd\r\nMsg = 00\r\nMac = d2742ea62f1d6513c4eb0e533922f251\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 27\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = abff2b097d688293701ff2c49ba48eb3\r\nMsg = 00\r\nMac = 17e724f66d4a9ef5dfc0cf903f8ff04a\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 28\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 9d45f6d97d1573de3cb3488befaf5b7f\r\nMsg = 00\r\nMac = 96ec3cf234d6704483a93885bd67e6dc\r\nResult = P\r\n\r\nCount = 29\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 00d385629e5df815a5300e6635351934\r\nMsg = 00\r\nMac = cb23bb449ac26e2186b02f7428fa022b\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 30\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 2f9109e7eea21b2615c81c03182ce603\r\nMsg = 00\r\nMac = 4532211f48124a9eacd795ea4313adaf\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 31\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 9f3830f5cd40a2396b6093b358cef1e9\r\nMsg = 00\r\nMac = f5ea59ec909a8ec2d8b11f5f276201fd\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 32\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 17378e17c41586b88523a6b6af738dc4\r\nMsg = 00\r\nMac = 40cc8b388be6789aca584659acc7aa06\r\nResult = P\r\n\r\nCount = 33\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 064e8c88a0a0766186d75867b5ca3acd\r\nMsg = 00\r\nMac = b2f94222a68fcf803868b00404ad170f\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 34\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 1e39f1cba97dac4e4d4f3bce7fda72e5\r\nMsg = 00\r\nMac = 60763815c1075c31078a9b44fe4b8427\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 35\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 06f0e4618e0ea8fa5443b50ea005b672\r\nMsg = 00\r\nMac = 295c6cd08b1d668d9fa85ef851b1e029\r\nResult = P\r\n\r\nCount = 36\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 648d77b57770b67ecda1ce7951eaaeea\r\nMsg = 00\r\nMac = 2f3fbc6edf5827fce440b9a7ff8535b4\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 37\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 6f3938932b5c1280311e892280d8a822\r\nMsg = 00\r\nMac = df02edfb316350c81dbee385d6e1d8e4\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 38\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = f909903451d1f9f45ffcb93a407ffb50\r\nMsg = 00\r\nMac = d176620722c5327270ef30956d7ac02f\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 39\r\nKlen = 16 \r\nMlen = 0\r\nTlen = 16\r\nKey = 181d92c7df1ebb0924719e066e08b95e\r\nMsg = 00\r\nMac = 144f688fa0d29faf787c48cd0765eecd\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 40\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 0c5b763b1e97b4f4dfc7059e4896ba58\r\nMsg = a0b3c6944b35f7208dfb40b4c4ba134a14dac928b679950793b3b6751221f178\r\nMac = d922ea85b3992a67\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 41\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 461d7d629778c8b05a688bee4fc01e9f\r\nMsg = 07571a6c9bcb6f97d626796bc74e551d1c45cce38afed761706f6264b7e751d3\r\nMac = 794b224a85396a27\r\nResult = P\r\n\r\nCount = 42\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = b91c6b09bf5a0487a9b5ea2fe0c1f3d2\r\nMsg = d31fd388e97727ba0a35d34ae05d9980e5974f6b3d86e2d4dd569b70f394a159\r\nMac = 2665ff2785bcb606\r\nResult = F (1 - Message changed)\r\n\r\nCount = 43\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 0737836cf771e842a70f3eeed7206799\r\nMsg = fce631a9eb130178018ca88cec966ae53ecc83a51d0a73173c8a9af10b4d04d6\r\nMac = 1eee822e37dd1e84\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 44\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 120132c315bfc9c4fb93023f5d3500d7\r\nMsg = c2576ed3189eff3205f5e01dd8fe7c64f12dc73c807c22918f607f9e43fcc5ba\r\nMac = ddca15c8b5a80cb2\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 45\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 5363bd7d867a9f9f0592dd9940a791e8\r\nMsg = f34e86b8803d386573b81045df945df8319a93b613de4c41904c8e1879844cee\r\nMac = 109dd7c920ebbf41\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 46\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 3fa1c7cffaa167557b250634e8052fa0\r\nMsg = 4255f8af18df7237e0abe98421aec9634443561752d893aaffe76380e829ef32\r\nMac = 0eceab8d28dd4a2a\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 47\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 6583a4ff27b6e109046d11b977c8293d\r\nMsg = b63be320f92", "e01260fba37312224494a2764dfc928287c75dc1cafee7b698d48\r\nMac = fa0cced22e896b40\r\nResult = F (1 - Message changed)\r\n\r\nCount = 48\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 5949378fd3135dd02ee1929014000411\r\nMsg = 65c16f4e66b10c7c153be7ba2dbe3a6d4eed3b04fec44188edc229747d52f8c8\r\nMac = 9ef023345848680b\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 49\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 0e80fa889b1d96a0d23d236d4d642a27\r\nMsg = f6f094e46cdb2e45fe49b18aff1427ebdac9710fa7f47f75fc9ec7140613ef3e\r\nMac = a09774009934c9d4\r\nResult = P\r\n\r\nCount = 50\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 1f88dfd4f5c52c22b1db47f9f4fb6e2f\r\nMsg = de433ebd1cdabeac46b94cc00d984f172923535ca8fdfeeb860546357dd8e266\r\nMac = bb17b3983faee0db\r\nResult = P\r\n\r\nCount = 51\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = ab0ab9e79ee53a6946a31ea807258dbb\r\nMsg = 89ddbb042aa2aea5207b312c9831fb48138aca90626ef7c5ce474d5797ae1b2b\r\nMac = 72f316d5bfcfcf6f\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 52\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 1eb19542a0064564e096e5d7d60acaa6\r\nMsg = ca25504f3f5559aa0e88199ce1551c9240b5c76f55b83bdbf2777cded54ad3af\r\nMac = d936b1fca0a96aec\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 53\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 33f11aa36d8ab0fc53486839a576b31e\r\nMsg = a58524e37c2504468f77a9c21b0e6d1a6b5e06fa051d5b8025ef97fa69417cf2\r\nMac = fd64f7cb283adce1\r\nResult = F (1 - Message changed)\r\n\r\nCount = 54\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = a7b81d8245129aa451dcb7229de415e5\r\nMsg = 2b2ec02aba10aee056443cf90585caa2510b3b835454a99f1324567b0dcbe682\r\nMac = f4cd48f32c9dc66b\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 55\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 3c1baf0d915e5aec92bb62babad0ba2c\r\nMsg = f8f2424c2dc0d0f3821af7244038da0832c547be4ff0850b98c04d4d44a716b1\r\nMac = e17ea6862129d6b9\r\nResult = P\r\n\r\nCount = 56\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = 943a49073db6ae94a88844ed895f8fd9\r\nMsg = 8a15e5be479d3a39a459ca7b50457472cbf44f6a8324ee3d4096e2c3bf1d8190\r\nMac = adcce0ea2c8b11d9\r\nResult = F (1 - Message changed)\r\n\r\nCount = 57\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = ebf8935f53dfb3bd40453c31f627c73e\r\nMsg = 7edddb03d861dc9796f8e069bde434681620f604db436f34b7a6a3beeec925b3\r\nMac = e8ea88729d49bea4\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 58\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = f18e8feed77d1b80c31483fe69073d56\r\nMsg = 37c6206e23163c39a13f19de48cc25dc26e6f83cb376e8d2048ad7c141fa503d\r\nMac = 0d4f5cdb2a49b471\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 59\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 8\r\nKey = b4e41c7bfb8fcaa5236f656185c1496b\r\nMsg = 32758ae47884fcef766dd1fee1a7f55ca6f6691574e2ea097a68cd4072ef2e7d\r\nMac = bad08badb66c8e5f\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 60\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 708484fba04972b815256c5dab12d5d4\r\nMsg = 97751b4893a83cfe6b760e10da795682e9668749c09036f9bfadce9dcbdd85e6\r\nMac = fa74b33267c5ffeca75e5e16978bd7b0\r\nResult = F (1 - Message changed)\r\n\r\nCount = 61\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = d0df1bdf1df6203241722fb9c9c1cf74\r\nMsg = 0e41361ebfbe4e6580fb5751e58e98de8ee5d9849fe875026fdab15a85804c1d\r\nMac = de4992c9d33659620cc203848e42a279\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 62\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 7c0b7db9811f10d00e476c7a0d92f6e0\r\nMsg = 1ee0ec466d46fd849b40c066b4fbbd22a20a4d80a008ac9af17e4fdfd106785e\r\nMac = baecdc91e9a1fc3572adf1e4232ae285\r\nResult = P\r\n\r\nCount = 63\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 7b4c800f5071521119e4cc6deee8729f\r\nMsg = 775946f3014523b6ea37804585cadd35e74e9382ebc1022579fbebe407281b6e\r\nMac = 2f6697f5d067aecdb3ff5a09d9169b3b\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 64\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 7618d222630138cc14246e8fddcf98cf\r\nMsg = 432e3575a966958434da38dda3606f1f69adeaca536a7bf66c8b1e451edc3716\r\nMac = d7d78aac615ffc1bb32dfea41f2b8771\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 65\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = c8804fef18ef263c010c8a205e14516e\r\nMsg = f2d23bc605181e3894f61fa63d61ed4a610123ab7d3531c0b7579a58b74161ba\r\nMac = bfe5e2c10a5cecccd3de2529f340cf6b\r\nResult = F (1 - Message changed)\r\n\r\nCount = 66\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = f98ac86ecb742c188852980b5150d100\r\nMsg = 4e6fd4fa7669ce9552154bd796644961b51067dc02303430150aacf671280031\r\nMac = 73df5f4d3ab9240d4fb2be775188adc0\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 67\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 638d7d95ff5f57571261e23ffa081189\r\nMsg = 5f5bc4e32764bb00085667b7f1b15433f09c1f6fa48689f8f50dcaf5021f2864\r\nMac = 96b270629b2bfbf721f1a70eccf9abe0\r\nResult = P\r\n\r\nCount = 68\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = a5a20d8139472a4cb38993c5711ac2ca\r\nMsg = 73e1e75538f9a63e49a068189e3b0a1a1e65ca5d1295589bdafa3136deaa287c\r\nMac = 320647d53ccdf2335a9c9a3452c1cee5\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 69\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 57656be54860414e8a62223381ca4405\r\nMsg = 3447e82ecec6c8b6fe1e44ed91f933e4a70c431911eb86eefe222d5ad78193df\r\nMac = 47c6b5a28d723129648aef418b74daa8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 70\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = e7b665600a2aa413e117c53816cbed34\r\nMsg = 5e4d49ab796025157add6d42258b9c506d9ce82bdd85c604360db0ff5aa4262c\r\nMac = e741166cfa2a58003dcae357d7a199b8\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 71\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 693cbb46bc8366086ec7cd7776f2c563\r\nMsg = 5a908ae85ff721ffc5096aeeda5ee83bddcf639e7be68d109394e5253c22dc9b\r\nMac = 9d56b03ef83082f601a9cc8730b0de42\r\nResult = F (1 - Message changed)\r\n\r\nCount = 72\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = b4190e3462e07fca26496adcb877724f\r\nMsg = 02097035a312cb02ea7f09fc1accc230a205e4a208e64a8f204291f581a12756\r\nMac = eb9604ec71aac0cacb63e0b369ae7664\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 73\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 4ae06c3b2940819e58eb24122a2988c9\r\nMsg = a2e7be3314238d7e4f604e134790bb15a87c09356c091b1aacb9f605b67475b5\r\nMac = 14b4507ae4b50cfe4989b544bede756c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 74\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 8d560de2e310ea69389221ce2e850625\r\nMsg = 04d9db45e4df19db757b9b95c25be43e822b8372ed148d49ce824a36da2b2f2e\r\nMac = 647f2874a083e82fa804b6c58c7b5c90\r\nResult = P\r\n\r\nCount = 75\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 0e1a79c5d734118c19eaba700f5da238\r\nMsg = 026470d57dad9893dc037b80978bf70c2e552fe46c8fe8c3ebf8338bda984d94\r\nMac = b936ff3bb8afb9e42351a2a3ad49d70a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 76\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = c88b1bc0050e19780ab53efbea175634\r\nMsg = 7207aa8fa87283f1f57019bf1c89645ff8fc36ab1102704e6d577671a9f7e098\r\nMac = c1dbd79e31c3b0bb824f16f735ccdfe6\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 77\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = d87df10a53eb3ea24c003d2a65e44921\r\nMsg = fedd5813146a8c2af398d6066956829833b75e44b6e010e4f025ac0fad6f869b\r\nMac = 9dd7cbb34445bfb351d01e8cdb21d695\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 78\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 4d436a4a5c02b22ad49548b97216f277\r\nMsg = 2d73204f0b2d35806a8227206922ac9c18eff6ebddc73809179d67a702cf3e21\r\nMac = d2654d9bd6396075296cbe918d90670f\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 79\r\nKlen = 16 \r\nMlen = 32\r\nTlen = 16\r\nKey = 8af7b74e35eb38f4086343bc329ab465\r\nMsg = ada1fa439c653d0cc88c0d129ba252e86c7d20a3087be93e920bf13d8e6f0391\r\nMac = 0fc9b177c874ea909b6beb1db1b802b4\r\nResult = P\r\n\r\nCount = 80\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 91ce6c87860aa84053f42e1abc16f489\r\nMsg = 4c287bc16196698d762d5fb428e801975fdaa29026b7b78dba968bfee0f534f27cfec57c6009c55c6261e0dbb14bddf76944d0c0648b910254df6c240e8a1a50\r\nMac = c1ce12f51aa823d0\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 81\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = b7b774e5c9e2f6926660c48b8df52354\r\nMsg = 937273c7355e7b88a630d15be875234cacaa44e815f31997bf10b52c008cc3bb6d3724aaa0d7da0b391b252923d0eb6119575d346857d89af6af099883af5514\r\nMac = ff845eb2d77aa5a7\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 82\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = d7572ed0e37261efa02f8c83e695efdc\r\nMsg = 85a327b0c7a31a4116e7fae0c0971e1578ab6fbdf90124b9ecacd0e70c909f51882cdca5a8b6b7e6b46d4660122bc9e1ae3932269f68e594075dbc293a2d4eb1\r\nMac = b8b3b7526419e069\r\nResult = P\r\n\r\nCount = 83\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 259129eb760f8a770410c160e4e13a6b\r\nMsg = 77d9c30", "6aa257379053cf1f2043c388a301dac2a9e2bb89eb8bab6eb3f150fe391b7a3f628be6b4b649c5c108a108f0e0c55a0800b9954251ab07e94450a23d0\r\nMac = f9376f11cbec0ec0\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 84\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 6ccd61ed20f16ca7a78192f5b6ab5528\r\nMsg = 9211231ec382ecaaae57f34de1ac6bbb50741014a978160ce59c60491e64f30da0b8aa1442e42bc0f7e31973a0dd8c3c24eebeb7c329072ea7dd0b04bc163254\r\nMac = 94c275e6a4675d8a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 85\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 1cdc44c40efc3c0ed6fb84b0c2f78aec\r\nMsg = 818c636772036761af037c23aa8cb63e424f0ba0375b645de2f8f5af23d3ca3b9a5ca3951a6d02075a2c828eee326a2676ed8247164226b0267798632a519bf1\r\nMac = 74355397c7a29bb1\r\nResult = P\r\n\r\nCount = 86\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 2e523e9d8a5532127ec63b220838f11b\r\nMsg = e6d067907610109b8789e1ad00542539991677b9efc97a98d8bfcb50f3e334d0844323207fcb5a47e353e76d49dd573dbd17278dcc287b41dea8126cc7f07ab9\r\nMac = 7bd6745c6f73d92e\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 87\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 0eee5bc8994b723a580f67d45ccb194a\r\nMsg = 1dc4fcbc73dab4e73ed9d7606acdcd42b74972460c640fe50f028abdf255d9368fa3bc65b849ac31c8000eb47e5fade40ca167726aa927f2f043133d24ad0613\r\nMac = 486721355fff9cbc\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 88\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 388468d10bf0b770cc125f8b7d359261\r\nMsg = b9aaadfb3f60e48f1b421a9450129d75af2ce811ab0b1661680e9d5b147c38167ac7252ed40d916ae1e4519c3857d2c9dc2c538a106951b26d16433131438839\r\nMac = e13cef9392f4a80b\r\nResult = F (1 - Message changed)\r\n\r\nCount = 89\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = edfe2e15edf0b0c28875651d4becfca5\r\nMsg = 70b1e2e4cf260b108f5a52d0d8234838ffd6ffe7b4acd78d7d6b95aa6342b598eaf402cb47396358ce61f8b4aa3a65bed0346e0036c3c5323f051f007aa58d0e\r\nMac = 7b70730219907d18\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 90\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 6876df1a77e11165331a5ce2e0e6bea6\r\nMsg = 34b73ba208bbe1df06da768b0321243815df4ece555974dee2bf5732295f5ea9631939425e13c47681ae2ecb0bb85aa69be38560f5752a9d034222d91ad71044\r\nMac = 80e00df873439fe7\r\nResult = F (1 - Message changed)\r\n\r\nCount = 91\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = e65d5fd5f446b4eab63d56b0a5eb1d29\r\nMsg = 554395f9b113c0f2a1f155de171d6c0a805c838beb90c3756e8b864dc52517c03d8cb894d1dceae092f0e8784c7775ac664ad7320afd246086b3bc9ef237171c\r\nMac = c60f8ced2efd52fe\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 92\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 5bdbd06f4df6e15d644f3a635d7bb14f\r\nMsg = 4fcc7c2763a8dd5bfe74e34f512be8042af9ba1c73a944edfb616ad47a8d34cbcf192f3e8be3101bb3709b29c2dec39aee1913e3ac524ccb76ad50c2cc3a3e75\r\nMac = af33d5a2746bfa5c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 93\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 13bf2f72211cc8e16ac1986a22e19f60\r\nMsg = 8ee212ed4bd110ca6a91b37bca59e19ba842e3a1b50619bc6b07ec02a09303ca5c66ba56e870d0b627d95fe829431244fe4f9218c862418f14a92bd76b5a3a82\r\nMac = 18e8cd5bd42c75ea\r\nResult = P\r\n\r\nCount = 94\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = e9b913c2f0630562eb1c16b3b1ed8409\r\nMsg = 031105ff01daa66ff95834e47b6f5c683994084d0fcb84c140d1dfa2039a95933efe6a4f91af993d966e2e45677eb1e36159047928a38eeaeb5c9a64ea59f97d\r\nMac = f00a17da0fb9e6b6\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 95\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 6fa5a5991315702cba3beb33867c7bca\r\nMsg = bb0fabffbcc6935ca35755fd4bfbd192b6812cf75c4dc95bc3a175a1501be2065d7f57058cb7a5785a185dfff7e740a5551cf7c17e65051b2c6ef9509360e878\r\nMac = dcfd143f86442183\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 96\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 3f8c6d21ec05bc439bf82774f1812bd2\r\nMsg = d726deb8537bcd671ddbaff8fcc6968f951b71aa82dfc802a53aadb2bcc2ef9a35fd90064320798b311d6d32f7dd3cd90bca39d57991eddc36260d23b108aac3\r\nMac = 449e20567875d56f\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 97\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 8ed1a4873bb37fafd4f8c2ee417443cf\r\nMsg = 1652c9539bff4b6e9f303f3e6b5d4b9ff7e85aa2a401ee8c2dc7b722dbaf6424f92ab9188882e2483405070e8666204f5a600b46949cdb830fd57433d63a55a1\r\nMac = 601eb06acc5a4e0a\r\nResult = P\r\n\r\nCount = 98\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = 83a4669cb9961448cf418cb83a16098b\r\nMsg = 26d97c3e28460d46216da39e043e024ed08e387b1e5fcfd3f962472cf1bac4676b03039b3b93927075ff41c87fe1d4a56bd9fa4784d283942787cdbdd5457f1f\r\nMac = 01a42494a10691ce\r\nResult = F (1 - Message changed)\r\n\r\nCount = 99\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 8\r\nKey = c9e6d0b3dcd8ab50ba5ff31d9c1bd95d\r\nMsg = 0d32c1cd73569ab2b10c67c167875fe22625358ed3469b424c5e052d4e49af2c97dfe1f947c972a08c938b327e01adbc48a7f57a89b49f49fa0fca5b50a57a2e\r\nMac = 476add8ee51b5e3e\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 100\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 17281acb525b13653000ab45d86e7010\r\nMsg = 225750ca982e5b34fc62e277eaaa0f248532abf374933e572b0278566cc7cf980df26abefb493ef57f8477cac0bd19408a22e71f4ded84906996d8e7a846b5c0\r\nMac = 0f2aa7f2dffcf7df34c84d101aa9bab5\r\nResult = P\r\n\r\nCount = 101\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = d3624653ad0ed144667df0e0e355c29e\r\nMsg = 39dd298acc45cb597f0733572677f7102536c0dd86fcfcc44895d29af92a5b6a87c20f1b53087d4c874f4083aad32e877142d20ad87b1d8b7295587bfd235d9f\r\nMac = 795da5a50f5b7df40317616b5a470c02\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 102\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 813b3d579664cebe50a8e7050a0b4e65\r\nMsg = 78ad6517a09b99c1113d175f3129aade4d4a2516ebe054f15bc833d08ffe5e2a2d60c976e1b4b14cf8edd2c72baadb2db8001fd2b8798d39ac5ce27d592f1def\r\nMac = 20f40553bedb6496233e0b53143b6d10\r\nResult = F (1 - Message changed)\r\n\r\nCount = 103\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 21095cdbe94afa27d84bcd68276993f3\r\nMsg = 10525eb2794d03409faeab22a6d4cc4ebc0421daacb0e865b0f94eb387722897c827e31676debec9d49c36837b6bc234a95bc10ddcc7b1e5a0d9a1dca550e93e\r\nMac = c0b806ce5eaceb51b53b028e6efea9c7\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 104\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 6c769a4822523525bb36c02518475549\r\nMsg = 4af38908fa44b46873535b39f432d9b3e677f6d06d8719af3d15b936afe515fc13d62566481fd0108bd95f6e8dbe32b3c830b1f1127d868273610aa834ccfc70\r\nMac = c1934b9c74127cfd515521df330c0333\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 105\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 6b454930925ca09d39e1e39a2e78fbfc\r\nMsg = 2bc884394ab7050c14d66fb8901cac109c0126668d918a4419bfcc5d75fb6bc2ba07f6598d06cf8cffd62f3eb29f6a033eac7490d27aa4701f0fb9f9718d1b7f\r\nMac = db19b8ef218018e5a53abcc39b7c514a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 106\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 5df295be7c44d59c44fead3f1988356f\r\nMsg = 3d7370cc2d61af35bf7b2ba50a143b23bfa0d1eff66c5ace2d8de5a28d17883d708fff7721a2977ee2164b6e34022c22523a0649ff0e40bc8134040fee02a065\r\nMac = 81b3181acbc2d6d2960ec57441ff3c40\r\nResult = P\r\n\r\nCount = 107\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 387fc73be9f019913f2222d98053f95b\r\nMsg = 944daaa76249bd9d3bd517d01b074920b7d4434d1a2618af902e0228c3fca658244d990f8ca42208239c42d4827cf114140cabebc2a72bb3cf9277ef008c1c81\r\nMac = 5de79be9ff9c3c9d64f9cce35b188648\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 108\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 7424990dee834ad05f4218861ab21eae\r\nMsg = 49fd56dec210e903f6c703332637f9c267eab9333e2701a16c74ce5e0b5a16d9da68b9c5d67bb6770a3c9a90a7e93fdd5759b27bcf3a753fa39ee7545fb60026\r\nMac = 38b66049ee8ed81f3f8ce2b45a4001ad\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 109\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 232407986ad4a8e438990fd04ffa35bf\r\nMsg = 9d88a7970d4c58cecc20ed1811298a5b37297419ca49c74fe216679dafc938a656cb92bafb78efb31f24e71c2d5b5f994f6dfd82862adfd2faeb8c408fd22aab\r\nMac = 313d46dda3ccb75f497f9069c9478b3a\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 110\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = d9bd6ac153cb0bc4e19e59c45cfe0d6f\r\nMsg = c68094c26c7f017b79f126dc26b3bbcb95f97535ca412da5f7853e15fcb52f042e6492c857c22b26ffca5520eabca20ee2cec2f0b71ea60383ece49232065e0f\r\nMac = 3b17778955990ae58e03feda7fc43998\r\nResult = P\r\n\r\nCount = 111\r\nKlen = 16 \r\nMlen = 64\r\nTlen = 16\r\nKey = 857fa35c6f70f637a9a5e6f215c694fd\r\nMsg = a1fc1307757ed91665980e2d3cf9778d8bffc9a84cce6bd5c5a07e47af5c1b409869db8286c49d07dd5083f1826e3ec441ce8cd36c85fef8c55fff889e761286\r\nMac = e1ddd63db51d3035adfd309ddc186238\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 112\r\nKlen = 16 \r\nMlen", @@ -2438,9 +2518,9 @@ static const char *kData32[] = { "35\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 195\r\nKlen = 16 \r\nMlen = 20\r\nTlen = 16\r\nKey = baf5afafd7d0c8ad42a44e4e0a90fd2c\r\nMsg = cc5a4209a6a60dcf12621e17150b4576b918732e\r\nMac = 5a43002d9144a1d5e48c2dc8dc167a52\r\nResult = P\r\n\r\nCount = 196\r\nKlen = 16 \r\nMlen = 20\r\nTlen = 16\r\nKey = fa6405355bfb5065dc81e764d20277bb\r\nMsg = 5dd1febed8e94d4715e772c3295b48eaf471daee\r\nMac = 29e96ce5ba930134670b3c68b5c512f3\r\nResult = F (1 - Message changed)\r\n\r\nCount = 197\r\nKlen = 16 \r\nMlen = 20\r\nTlen = 16\r\nKey = ad2e3d3af6195e74b3e43296b1f618d3\r\nMsg = ca776f79b8581014ae58a4d533b60483fd1fbbd0\r\nMac = b32ce1f493b126fccb9829d4dbe76382\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 198\r\nKlen = 16 \r\nMlen = 20\r\nTlen = 16\r\nKey = 04ae7190f0cabd117d30a359f80b720c\r\nMsg = b885e5e147f967032ab2552829a6e09210c44a45\r\nMac = 9386d73a01960ab399bb7d290674b21f\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 199\r\nKlen = 16 \r\nMlen = 20\r\nTlen = 16\r\nKey = 51fdc65f6bb0d20a3c08ac1493ddddb2\r\nMsg = 1f0a56fb615b594d938bb8a27f4b2f5463ee9a61\r\nMac = 8506fb1b74806381e2654c8764464d8d\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 200\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = cfb7e930b838dc3644f6c06f2ad0c8d1\r\nMsg = 611db4c194dbb54d80a4f4fa731cd9a6a330eaca734d3351f2cfebaba4bd541d86b3e35b4c1fa158edb0d15d610cd359a9c24878117f77f6b284f0363a576e0ef0\r\nMac = e9589a711f5d4a5a\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 201\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = d179dfeead9d765d000462785459b1e2\r\nMsg = 795ee78ffdf302f3f1f2b31629ae918409cb42979afe3752dd14968d603678520e6b55884b5ebcce416248aa74b3cfe39dfedc2bb5246001503ca4d62cd7826f0a\r\nMac = f16ea84f554dfb54\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 202\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 22b7eb25e688672ab0e17206623094b0\r\nMsg = d830b16fa236a1dbe60f6db8d7e81a3ddb5f658c9f446e94639cae3699ec2ea6afb4fb152939d58df287271cf4b73c34e66eaf5265a623de47b135522c7aaf9f55\r\nMac = 16229efcb7523025\r\nResult = F (1 - Message changed)\r\n\r\nCount = 203\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = a64fa98b4662d801159f61eefd1c8bc5\r\nMsg = d5982c462ad40458660cd7b120ce07fce9afe812caedcebdee536ac19b5d561d679dee8ea85d62552c86093a2ac1f8d179dbd4fc006ee4b16ebe6afd2be134498e\r\nMac = 2f9a2fbcb96461fd\r\nResult = P\r\n\r\nCount = 204\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = e4fb10325d18666c382e6cc2442381e1\r\nMsg = dc28484ebfd293d62ac759d5754bdf502423e4d419fa79020805134b2ce3dff738c7556c91d810adbad8dd210f041296b73c2185d4646c97fc0a5b69ed49ac8c7c\r\nMac = 8f771ffe0c8d3445\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 205\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = fdcd3459061c36c9a0daa0dcab2b967f\r\nMsg = 1cfa3342540d03ec3fcc8378c021443ba3321fbc26dad7c5b859faba004a082a21d6d7a43d2836cc3820d1adbe4c55518714d48fd9346a254f702107da8212f605\r\nMac = 6635f9e17949a14e\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 206\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = fc593384e6eebc508d181fc49ee10e56\r\nMsg = a6c891c9dd1fcc982c35bc74cfe71651bae424602519672b466d80e160af51eefccc5fcf76467a25bce1a10853a0209d9beffbeb53228fea5f1e77ddc956ade207\r\nMac = 7a6fd94e3928d2a0\r\nResult = F (1 - Message changed)\r\n\r\nCount = 207\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 4e4ff248f591ca27665960d9357a8de1\r\nMsg = 198d5c9c4aa35d12b62e8c4bf6f3f141e6ebefd8ab396c71f55e32bc82b094cde409547383bcc4c5e5cd2cfd2d616c8ae273e260f2c98e93f7267424b8c2421bf3\r\nMac = 9140f91a0cf70762\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 208\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = f20826990acdf225d9451a3d22f89747\r\nMsg = 03d340904ace1cd52d4b72a96d96afd77aee68ac3936415005ed0d56f46036915b1e5f2994ad49effe7bf3ee46170642e5a16f2eea804e68fa520fb79529d6c09a\r\nMac = f30b668f16bfe6c4\r\nResult = P\r\n\r\nCount = 209\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = c231ea8b75c65de68c49b76e7a3128de\r\nMsg = 5b50879191a6debdb96c0bfaf9086b7dc6e25594416b08d2c75fe16cc347d2e3c7410fe3dc030a6c161ea22f6b80973bc43d42d8558f83b32a1bfa3c03757a4d62\r\nMac = 65ba53ef4711e807\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 210\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 8ef18639bc8c831dc0b4aeeca25eff4f\r\nMsg = 094c4d9baead7c5acd7dc58f3b4b4f57f1406b4e6af81a034d90cfa94c01760f4cacb4d2c63671d16d9594e1116b0dc2c39319523afac10175b1a485a240f7cf3f\r\nMac = d84f89e16c3b1633\r\nResult = P\r\n\r\nCount = 211\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = bab9d79aae4a1b282d8c5aa35d5c0876\r\nMsg = 02815f53c2be5f7246d4794895b4b15b6c3944819dfd3051b371f6d7d52d9f8ced84fd84095c33ea013c78aa5aa7176d6aa9bacabdafe9bab89cce4d7c183b9c0d\r\nMac = a01f976031bc8140\r\nResult = F (1 - Message changed)\r\n\r\nCount = 212\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 42b97f583f64d88358885c66add5d03a\r\nMsg = 187fe16a764c0987a28088f5cfcf55a6b9591b6395d2d41043e09932cbc4b8ae073d08d39da9799b316eef2ed89851a8cfc4dc1c6d3cbed95663e0ecf25403e61d\r\nMac = 0820b1ca0cd34e5f\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 213\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 4fd555bd3a5253a90b68b5d4d46bd050\r\nMsg = 1ef253c61ac8ac66734ea80eefc1dc077edd660dc3518b5ecf709f10302925a72a3938e7449f2ae707506a67022dab63113242e9dff0d027aa3d22c8462a558165\r\nMac = 3770a6cc988a28eb\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 214\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = d3a8eb3f9e5fb264ff098d85c28dd763\r\nMsg = e97a0986bf75e0e821f5adda80778863d9d479bd8ac3e7fe64a053f8016c465d581487278ef6923610a1463bdedcded62aeb22fb210dde9a0949947f8c6a6e7753\r\nMac = 4947e6e28dbba216\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 215\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 3043857fc40be37fb0bda4f46894690b\r\nMsg = 14874a8b59b0178c5ec89cd7316d909371969c1a1a1bc8a29f78341d39ce085e7e2aad7c350a3e7b691d3929bc4b7b47fef56be9fe7e7520a00abad5308505f8f6\r\nMac = 1a8c82e9109a68a5\r\nResult = F (1 - Message changed)\r\n\r\nCount = 216\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = b325d425c810d22deb3209f29c5c1377\r\nMsg = e44c4202499440c12109296a35dfb1f669f97e7f415cd251a5e36943e134a548f0f2e841fa3541151b374c04665053382a24b99d731b99f3d411aa22644f66cd07\r\nMac = 84faaeb5a9756a27\r\nResult = P\r\n\r\nCount = 217\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 7cb6a84e99f5573c1eb27c0078f2127b\r\nMsg = d7fa7be9c10252d6e41bc1a08195a344ef77b81785cea6b4ba453d398bf6ffb31d80e0d6a45a4af283676422b5ca94c76bfb4334f61ae0abe884278976a5a3bd21\r\nMac = 64fa7f9284c24f14\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 218\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 00341fb81209c2abdfe3a9d607b98277\r\nMsg = 74f6fd37ccb4b7702bb3a03b7322c0d5fcc657cb2c3f1361488d853589d2d6207359b65d62d896ed66f217395000c2fa0d11f956332f2d4bdae55251adfe903b41\r\nMac = 4cf05b6e583c70f9\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 219\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 8\r\nKey = 647a5be8a66c83b4b238975388e15d00\r\nMsg = 0db33eda4188a9165147e24e40f79fee1985eb68d51627287e9c4ec995a77d89b27fb2fa6a6fd3fb7563f3e710b6d20ca145a25f9ac8116d9f628395eb769f75f0\r\nMac = e8ef4f3cd7442246\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 220\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = c98fc3416457d9eed0fa7ab1dc1b8a6a\r\nMsg = 190ae57ab8bb70464e4a10c112a54c646438301b5662f3536c26d754a02451d1a9c76abd7dbf656115b2a2ac702ec2cadae30cf86e0f0f96da39897d6222889428\r\nMac = 1bea94a457b2886e9098bf3ded932a3a\r\nResult = P\r\n\r\nCount = 221\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = 87428d5a53f750abdb335f70ee13b5d1\r\nMsg = 7bb0c2ecfd141e7e93a897b259732b6153af3542eb7289b1a18dc0aefeb4d129c9e0e27d7ef25d3afc9945277e75cb87cc7d1c9cb39e7e6ab2a49bbdf65e1c6d89\r\nMac = a854d2da46afb77a787f0606a69cf467\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 222\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = c725d9ef0dc6cfca84865cf5cc91d403\r\nMsg = d3208eb695e84c7a9250378e18be2f231ca3ebe72ba68e3ea4ff7bcf25206b43439bbd497e400dde738507cb542c7d6f961fb8bee99f0c8a6d9daf022368cc78a2\r\nMac = 35d57445a5f10fd567595fc668293e95\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 223\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = 13e3fe7856cd680593a85cda3d6ff873\r\nMsg = b208e5a1a852caef0795150cf8313ee0cff06e3d28d438c2351484005661cbdcea6d8a3466aef0c6a460da4d7dc902ec99c073d086704112085a76dab0994fcab0\r\nMac = efb2bef5aae555463ebbeebe69791459\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 224\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = 9b8112c1fb29fba2c8b0d8f16481b993\r\nMsg = f54105a04a4a02a1a07e020a6a4f4176e9c92bf40018ccac434988c650550c87625b84bd232d0e5ec20e6f6c46ba061b22a7fe36098bc7bf031ec6d6c1214bdb2d\r\nMac = 673281bc0effe92adfac4fef49477ee2\r\nResult = F (1 - Message changed)\r\n\r\nCount = 225\r\nKlen = 16 \r", "\nMlen = 65\r\nTlen = 16\r\nKey = 82e71e3ad1bc9a12a46e460a05ad9c05\r\nMsg = 41fb3dd6df78fe267175297e208ac753d50aaabd9edbf5e45385dfb47988b3d966f31be7a6329fd89e2869bc6f7e4bac1e3a0300f193bdc21c03d9629c9fefaa64\r\nMac = 36f7df58abb54a053988cae066110ecb\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 226\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = b46e219217ab73c34904e24c6d995b72\r\nMsg = 887d6576572a3d8f6a1649394248c4d09d15026ffa930c0659508bac4243e7360802af084f363c2bcc4c91a04c6e86f4f8b22615d7915564949ab60b8267cb91dd\r\nMac = 10c1d8054ac549ad24ae4af2d8de97e2\r\nResult = F (1 - Message changed)\r\n\r\nCount = 227\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = b66edcc59dc9d8e34bea3baf4bfc0d5e\r\nMsg = 57caadbb1a56cc5b8a5cf9584552e17e7af9542ba13e9c54695e0dc8f24eddb93d5a3678e10c8a80ff4f27b677d40bef5cb5f9b3a659cc4127970cd2c11ebf22d5\r\nMac = 0c5864eefc04a6cac4f053ab2f65f851\r\nResult = P\r\n\r\nCount = 228\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = c607f631d792499ea43586b81fa3e2f2\r\nMsg = 21ed22abc7bbb62fb2d51d1fb8830ca95b16213f56291af976274934ab0d43805f71d9b906c44973f7d4b59b7a94d35c2220e7405dfcee98499c1c1dc92a89d7d9\r\nMac = 4e65b3d58492a0eebb66928a8214498f\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 229\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = d9e9136339d361949242e4d8a0cd6917\r\nMsg = 419b9c9b093052577837862900e7de29273eb0678bf6238223b59176c78430b6f382f27bc8d9a95b53f26f1d12e545ccb434fa0a21b84fa7badb5872e208254fbd\r\nMac = 6c81094aded51ccd4da38d0412e7ca67\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 230\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = 6f349dd8b69dd41c6f246a1685115772\r\nMsg = a5a3c8afe5b84e0c3ba4f708a87b596d1b7c8694dbe691d7240e4e4815ad5aa4ca7e5b82c50989d092b96e80aa35e97f99ed79e75cf3b8750d0d263dc208289cb2\r\nMac = cbf41299c35e65fa4e2626430f95051e\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 231\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = c15e4e552c9197184b3eb0a74f5fffe0\r\nMsg = 7c4699a7d9e2d9f31410f20029676f3c97f5793f6732f95f6d33fd7ecc205d27b8e89eda803316a3cb9951f12111b4a6aeac606b43835a469eede86eebf63e5e8b\r\nMac = 77e77de5c5600900e5b928d4be3d5f8c\r\nResult = F (1 - Message changed)\r\n\r\nCount = 232\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = 2eda9b2c6d7ad95b644a8739580ab4a4\r\nMsg = beadccddcf392ee56a8913f057da183ab06ec538e581b52c027ff7f63574b32d8bc4116efa1c56f4a4a851695a87f5fc5f7c47b46fe67b0400f2599fc80fe68d7f\r\nMac = 948e63657b8b6e2d130f6f25369d6160\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 233\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = 233088b67b741f07859d122a6a406d89\r\nMsg = 5717ed57ca0b6921f04dcacad34e0f6210c36673dc9f4d92493ff733c6e5f1c2e56805ef622a5f496049ee0ef51a0d41e9d363febb87070be558e8af61e86dc76c\r\nMac = c778152b00760fcd85bced0f58861d13\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 234\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = b7471a8b2e50fb319f198a09cdaeb319\r\nMsg = 385f9fb139dbf88561b7a500b0c7b835fe57e2698c6d9f76de4fae6dcd45c47fd8a0811ebbfba35f43c17aa360f09c767c1cd9b70bb671fa638e852ace97cc73de\r\nMac = 1a8b81be875a4814e3f988c274784a63\r\nResult = P\r\n\r\nCount = 235\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = adf072ebb71e3400a2175c96fb0007a3\r\nMsg = a49840ab727bf6b03015eaca3f15a2bb64fd27b51b27fe7a2e0559c287ac8fdd4294ca990799ff66974624b8a4539dade66cf7f06b35d8dd2f8a36e6ec0bc83533\r\nMac = ceac74b3af8750467e3b3c51624d96d1\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 236\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = 1b1d471add4e7f4fe197e3a4a44d06ab\r\nMsg = da06bd1405028d93fefa3c037b5ad551879451a28314bae86a7591b359f56e4b4e26e6fb2fe7b1af0f930cc2ae785d113e8b16546d59dbae9f41e7827be1ac89aa\r\nMac = 16d0021b1f9c00b37fefb60af3358d87\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 237\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = af5d4991c189dada2cb552c3c52d599d\r\nMsg = 1bb1e0efa2d6811d2370a039a0c47c59683befbd46c04257f86a468ae25ba03304e865e62afae77a62b3cec7b3556aae0c60475a7bfb02c69f955c7f60cc8dacdd\r\nMac = d7056fe01f0ed1b20adbe05cbccc544b\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 238\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = d149441e667b245d4640e04c53ca6f51\r\nMsg = cbb34794bc8bfdf93d3c8d9f87ec1482b516b48b1e8a89b5e3b5df70c423a243384215b4bc69c76c6b18c497cf82088af74839a8c98895869a16294dfc094360d7\r\nMac = 64f5e8dce5c3e0f9cc224e306de70b87\r\nResult = P\r\n\r\nCount = 239\r\nKlen = 16 \r\nMlen = 65\r\nTlen = 16\r\nKey = c2f5d4837f9f75fb440c3bccad7c2e69\r\nMsg = 6a84594c4b3865f047c96038060b5b413db0d4e081c62e405b815ecd9e3be651f8b9075dc8b032eb2f87c1416a5fe4195f51defe75f671f9a92d966ddf18724075\r\nMac = df8c8c61e8d604e24c7e3d0115dbe898\r\nResult = F (1 - Message changed)\r\n", }; -static const size_t kLen33 = 69750; +static const size_t kLen34 = 69750; -static const char *kData33[] = { +static const char *kData34[] = { "# This file has been modified to remove the 65536-byte long inputs.\r\n\r\n# CAVS 11.0\r\n# CMACVer information \r\n# Algorithms tested:Alg = AES KeySize = 192 Mode = Verify \r\n# Generated on Tue Mar 15 08:40:38 2011\r\n\r\n\r\nCount = 0\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 771887708683bcb3577fbd0e6c13cad39955eafdc226d17b\r\nMsg = 00\r\nMac = a0db9bb6e8891e92\r\nResult = P\r\n\r\nCount = 1\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 733fd349c56d1086794eb20ed59ddc89b065bb8533b968c6\r\nMsg = 00\r\nMac = c76f82937b457105\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 2\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 761d74be5fae170a1bdfa16081b44c1e49972e15ce0818df\r\nMsg = 00\r\nMac = c65feb3d5336dffa\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 3\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 40f4a2261f154280a311f5b172c7ae34243cf2c59b98d37e\r\nMsg = 00\r\nMac = 05d920e78520839e\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 4\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = e27150ee958b998c8a7e8b9324ead937d15580d09d6ffc3a\r\nMsg = 00\r\nMac = cf60783b5defbe3f\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 5\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = d9bf5efb694089b2de533b1a65c12ae96d8c5bd75bd67fa5\r\nMsg = 00\r\nMac = ccde2029fb26c8ff\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 6\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = bcc658b2e53d51ed00c567ded2a124f8d1f85fc72dce5f80\r\nMsg = 00\r\nMac = 35d0d9ccab5b0f41\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 7\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = e31fdf3891c9068f621430315fb1daf418c328baf5e6da97\r\nMsg = 00\r\nMac = 8802047c11abcf2a\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 8\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 16a10208e91807fc479607cbaa39fa9c7273d89ce403b796\r\nMsg = 00\r\nMac = fcedadeca37381c1\r\nResult = P\r\n\r\nCount = 9\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 50fec559910391abc23eb7f5eddbc26a1031c0abd0a29ad6\r\nMsg = 00\r\nMac = cdc41e9b491092ce\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 10\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 6e9e0ae953b1b486ecd6b766d7b961ab79bcdfe2ffe95e94\r\nMsg = 00\r\nMac = 5096b9fc700929c6\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 11\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 48043c405ef221c281d1e88246b6e1dda77e072f9d10353d\r\nMsg = 00\r\nMac = cab96cfcaad5cc20\r\nResult = P\r\n\r\nCount = 12\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 10c361934fd6ff77a5051879ff228b08d841660d48b4067e\r\nMsg = 00\r\nMac = 167e7227d59d65e1\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 13\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 867ab71470f2dc3f5f11f8bfa7272dfc9c888e8e03323103\r\nMsg = 00\r\nMac = 96d9e7b084448004\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 14\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 5b10c228b447968267293ede9131d9345daa18c11d71eff4\r\nMsg = 00\r\nMac = f7055fcd9e8a8fd0\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 15\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 997b712cd9295dc43cc19b40679f218c27af3e8c638d2e5d\r\nMsg = 00\r\nMac = 79a13778151aaaba\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 16\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 465b9364b3f06f3c28da12707673fecb4b8071de06b6e0a3\r\nMsg = 00\r\nMac = 945198b568ed3db3\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 17\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = d233ef50e0ce1924abd315510464ce22de377026529085ce\r\nMsg = 00\r\nMac = 240698cd0183f002\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 18\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = eb6e828e01930a4b0afc8bda63160942ce32df7b2c38a8c9\r\nMsg = 00\r\nMac = c68fc388f0633ecf\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 19\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 8\r\nKey = 471b8a2e5cb08c21d87e9eb7ecff1d6e6fc2335581769dc4\r\nMsg = 00\r\nMac = ab5e7c91c35a0e91\r\nResult = P\r\n\r\nCount = 20\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 8b404993b4c3f62a57e4aef272788206c8076acc32cf3a1d\r\nMsg = 00\r\nMac = 6a3beff4d1d0e84ea4d4\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 21\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 7cccb84fa5c1c795bc05a05ea5bc6497acd2de2d193fba72\r\nMsg = 00\r\nMac = 557b8efe4ca9c4e603f7\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 22\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = f1d434dac8cefca05ba120a34840531bf1542c8fd03b1ff9\r\nMsg = 00\r\nMac = e2c299a2c5159eb777cb\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 23\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 7fac8beb476b470e13a404ded315db1b15a85c2783eb3017\r\nMsg = 00\r\nMac = 50faaf26afd61c5f616c\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 24\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = f5b4c2a9f096e13ab426dd8654fc7b8ae6a4a8d3daa16b9c\r\nMsg = 00\r\nMac = 535cde3d2c32788bf167\r\nResult = P\r\n\r\nCount = 25\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = f72879cc3446de9a0a43ae1cf08935b8c83f9265b8cb2258\r\nMsg = 00\r\nMac = 4eeea4a1847f2a30010c\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 26\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 7021eaab074be980543cc70c809186d93652d7674c10ddd9\r\nMsg = 00\r\nMac = d98c93f4e0228ff68cad\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 27\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 7fd546397a9a0129861fb6815d419a307f90d259d55f3503\r\nMsg = 00\r\nMac = 13597bb97e38f400e686\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 28\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 563cfb49f1af034cd38d2112685a52ebce8dca93e84ca10f\r\nMsg = 00\r\nMac = 866bc21135b11ea1bc24\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 29\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 17e9555b9b4f89cb63f2e90aca95c27ead6a099bc41c4c05\r\nMsg = 00\r\nMac = b04b3bd1719d35e80e2d\r\nResult = P\r\n\r\nCount = 30\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = a65d24bd1ab92d8d294d654423412860e113c976f12ed76b\r\nMsg = 00\r\nMac = 83c1c0f3e89f6584bdd1\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 31\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 35555c801a2e7c68cd0c347e0f006be00fcce70fdd8d60ae\r\nMsg = 00\r\nMac = 7e3670cab617e79b3f57\r\nResult = P\r\n\r\nCount = 32\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 138b3db9baca13bc66e893efee2b767ce6a912b172c2cda7\r\nMsg = 00\r\nMac = 4686805681afa38cb7c4\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 33\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 1bc05440ee3e34d0f25e90ca1ecbb555d0fb92b311621d17\r\nMsg = 00\r\nMac = 1e9f80432b39f7318433\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 34\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 5776d94b577ed26820fb13c00ab0e2d1a1c3589bfdc45cbd\r\nMsg = 00\r\nMac = 4d5f56d3543abed97233\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 35\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 22e493c1f2e27c9be7bb07fc00fdd51089582d139b0a9f68\r\nMsg = 00\r\nMac = efe1c6493542a8412118\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 36\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = d52f030107a2becde77331fff0c24cd72ef62c0f46ae3e6b\r\nMsg = 00\r\nMac = d1b9c7f13b189cd828c7\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 37\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = be31363e5144d9ff49ee67efebeef6d9a97e22f8a3ceb209\r\nMsg = 00\r\nMac = 03228a1a80d5f3d87b56\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 38\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 6a46492ab7ae5f3dbf16ee7b8876e0b4f0449f3b4f8cd89a\r\nMsg = 00\r\nMac = f016af853140edf22d31\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 39\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 10\r\nKey = 89ef2284d8245d87f88919d4d2f71a2df05ee21d85b7d689\r\nMsg = 00\r\nMac = acdbd54bfb1f20bb65cf\r\nResult = P\r\n\r\nCount = 40\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = f4e74acdeb91d0f0ab143823102d5baed1ffe168fdb5587a\r\nMsg = 00\r\nMac = 9c15bfd3c766f88190e54d395e5387\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 41\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = d9aa4efa5d75195a400018bd38f7d8cd53fdffe88df1837f\r\nMsg = 00\r\nMac = 4a11b22e871b051ea74db3f763f140\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 42\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 13439fb32b1514d48de6002f5d12e19e1ced4caf35042602\r\nMsg = 00\r\nMac = 1412aad5e6b7f0d924700b438e0aaa\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 43\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = ffead92a4a5dc1eec6d2e441de9a9e1b7a88c607c9a79079\r\nMsg = 00\r\nMac = 6fb18d51e9a30fe6b7a6f405b3d3b4\r\nResult = P\r\n\r\nCount = 44\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 176ad1686a81992e042d6497a305038ba0cabf74c6ecd8eb\r\nMsg = 00\r\nMac = f676bdc753ffdad36628b1724b967e\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 45\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = acd58261bcb2eb6345af7290b1d216c3016af6697bf5ab88\r\nMsg = 00\r\nMac = a6ae95e5a23b5f5a2dd8c8a520b9a4\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 46\r\nKlen = 24 \r\n", "Mlen = 0\r\nTlen = 15\r\nKey = 0b5eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a\r\nMsg = 00\r\nMac = a46221058177012b073c6ebc6aff1c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 47\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 7bd398d1b9b45f7a024e70e71c1ee7132795fbaa2d63306d\r\nMsg = 00\r\nMac = 119bc07d7f3da0be3a87844b425c0d\r\nResult = P\r\n\r\nCount = 48\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 47575b64fd4797cda8d67e9cf115ae850d7998c39d2f8709\r\nMsg = 00\r\nMac = 3f2010bdcb2fd70241475db9381570\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 49\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 68627d802cfc43bb1a987e1ef4401fa84e8a7b2b43759f50\r\nMsg = 00\r\nMac = 1e0e3333ca5790a7e7df0d6d4bf860\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 50\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 7f16b90a18deec135d32c836063cde963fc4e6daa1555476\r\nMsg = 00\r\nMac = 013e1d0bfc7a7a6c838ac98ce0da2e\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 51\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 3c89c59ab30eba6e5be8f69f597adc534cb52e94259780f6\r\nMsg = 00\r\nMac = 7f9f1bdba93d26cc3c1f022244bff6\r\nResult = P\r\n\r\nCount = 52\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = fdcf28931c91b4b79c8f8332b4eeb3f995eb1ed2fb1e8ab9\r\nMsg = 00\r\nMac = ad7f8852f1bfd65dfbce3bb39db59b\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 53\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 8f570ddd0963a80abec82caf8883eaddfd63cee9f375fa7a\r\nMsg = 00\r\nMac = 82b16380d804b8eef855afb5eb839d\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 54\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = cc1d70d3050f022442093e3210f5b45f1b610dc0f12fef74\r\nMsg = 00\r\nMac = d1dc61c2ef7e2cd1a4e43dc34c0ba5\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 55\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = a8a1cf9547543045fa2f00edf79bd85436bc1ae1d746790b\r\nMsg = 00\r\nMac = 48fc14782a351553ea453a3ec2538f\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 56\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = 123ff732cccb535ec7a1c47a6b0ead68df31094d896709a1\r\nMsg = 00\r\nMac = 8f29dcec0a5d026d6fe4dc64cd1d4a\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 57\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = ed06bd049d772cb6cc5a705faa734e87321dc8f2a4ea366a\r\nMsg = 00\r\nMac = e3fcf2590fa9ffe093bbfe8d3d7b0b\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 58\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = fa18c0b348aad167b7050c0ef6e7caf0436750873c7e4929\r\nMsg = 00\r\nMac = 630915919b6108770f5c3deaece1af\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 59\r\nKlen = 24 \r\nMlen = 0\r\nTlen = 15\r\nKey = f66296bf67b6e91d8ad629c1b260cb5ca1985273925e73fb\r\nMsg = 00\r\nMac = 729f983d3b49b2ebf24eb04368a851\r\nResult = P\r\n\r\nCount = 60\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 2f4a6501d8fe7b65f607757ddff6ed87ae0681b98b53331d\r\nMsg = 2361d2ed837c14b6c231daf0acf2623779e0d952e98e14149308807f79145c30\r\nMac = 9a8ad7bb37d79321\r\nResult = P\r\n\r\nCount = 61\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = e2d592cb412e65f9044257d78e7491f9f80c8b08102c2d5d\r\nMsg = 4163b7ad671761a3f27394776970b413e35a2c43ca85560cdd3c9b407bfadb4f\r\nMac = ab85ac3a4f92ee2c\r\nResult = F (1 - Message changed)\r\n\r\nCount = 62\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 1534e69565cbc541bfde6901bd6e598e41a7a703091c2240\r\nMsg = 85b78269899a4712eaa9c3de041f5a74766ec27dd5265da8a117c6f277baaa24\r\nMac = 6b177203b17cc7c2\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 63\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = f0302d9a197a285909657d611ce12458b8d24652e91ffe8c\r\nMsg = 3fd6b98961f31c7b7fff0baf1cbb5884a9290ea7b5ee49915efb4b510b6ccd8c\r\nMac = d2d84fac8ecb665d\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 64\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 2081442435626f7ce377132c46385510d9febfdd90c3f104\r\nMsg = c4185eb75fc23adff60d6380006a1c20fa2ff466ffddf67e99a421bfd729188b\r\nMac = 7373df1900b7a3df\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 65\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 715fb6fb464513f3650a9d0c3687980ab9caa9876d69dfeb\r\nMsg = d60b3402ad9f5f09375862ae7a370f0c744ffaf5001c80e3fd150730ab848689\r\nMac = ba39c81c18821872\r\nResult = F (1 - Message changed)\r\n\r\nCount = 66\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = a4d9f94e644fbcd97e0d993cb0af507eed259fbcf8fd7083\r\nMsg = 677acb68500d6cbbf77a3f34f58840f0c16044827641dc43d6767ce98f85dd5c\r\nMac = b129c1785acf17ba\r\nResult = P\r\n\r\nCount = 67\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 94b911cdc3137a6f7f32651b788eb82975660aea52b2c03b\r\nMsg = 549aa84bb182312dd016e3107f3b1f9c5b6a89b543561a450ccf713c76e66ad5\r\nMac = 7b92156f8b36d5eb\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 68\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = d3fff7b6f08dc4256239fc112890429fa00393e84e9b294f\r\nMsg = 15d1522654bcdce344b5d9753a0a6f31c859d547edf520478a8b5ae41506d5f7\r\nMac = 2d778849023fc9e9\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 69\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 77bbda69ec034d73e02b06f0af30e2dab60ac80cb7822eb1\r\nMsg = 1e6ee96598bd014c95e9540f5cadfe6885cd094e04048e81633d1d634f065f09\r\nMac = d35f3c169f67b597\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 70\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 544a757bc50658d7e73b25688e7fef86fb1f9f08ffb33a70\r\nMsg = e473fe5656713b3b0e4fd12c640e8c542950577f446b01d09cbc41b6393ef81c\r\nMac = e1dad03ab8d2f432\r\nResult = F (1 - Message changed)\r\n\r\nCount = 71\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 1bebfde2d5468ba0a3031bde629b11fd4094afcb205393fa\r\nMsg = cf27b30423bd7e40d6b3aeb4b1bc01b40aec081aa00f2e3bc63ff61ac4b684dc\r\nMac = 617fdf927d0e4e42\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 72\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = ab83567833d2f3461b5fbecc0e366694bb5ea00933b2b3e7\r\nMsg = 58d43b9f1581c590daab1a5c56d6fbcff749e489acc3ed51ee6aeeac0104e6ae\r\nMac = b29232e882dcb8ef\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 73\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 0e0fece7b6b659b642668e8ba3dca330523e70279155f485\r\nMsg = d8c35129ca5a84e2e6723332217f0fd2e19fd06eb27d84a93b75276270f97335\r\nMac = d7ea4755260630e2\r\nResult = P\r\n\r\nCount = 74\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = b15763294afa61bc27e0785500ab5739136f51bc78b65562\r\nMsg = 8e8271b2758964fa71520f26aab6f870fa76ea4aa220475b3b379ec4ef8e80a7\r\nMac = 6357fb64482d171c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 75\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 6dd6efd6f6caa63b729aa8186e308bc1bda06307c05a2c0a\r\nMsg = d2c9c1300f5a7520614550f9d23dcba6b41be6733426616f32912f155045282c\r\nMac = a12adaf849719778\r\nResult = P\r\n\r\nCount = 76\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 35631c844313ac335aa0d590fec472d805521f0905d44ca4\r\nMsg = 766f9ac761a06f4e006f405f7b3398aecad253f5cb8653e091e17427ff0fc1f9\r\nMac = 49090265af87c220\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 77\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 35008ef5baf263ae233758ca237dec1a51d67fcd3573094c\r\nMsg = a8f1b7b73100cfe1a03003331d9d55b75fb0d2596ede723fae9240581967ba38\r\nMac = af6c2ebe004c6d71\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 78\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 6f383f798df8f4b9f0a99206cff82709c367340c7b3b0401\r\nMsg = 9668a011e5a3a613ddfd149b0e529e9e66665006f98e730400adb4a8226283af\r\nMac = f97fcc39e240b547\r\nResult = F (1 - Message changed)\r\n\r\nCount = 79\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 8\r\nKey = 9071be7a11dcf7a062d582dd5932f047396fd9eb71982bcd\r\nMsg = a8a6703044010f8301ea33bd9a808ca35838c9f58683ae3925ab67b9e1fe1ccf\r\nMac = 9065cbc5249ff8b3\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 80\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 36ad69f192ae4dcab771aeeacf01bbd32609bcbbea8ff9df\r\nMsg = 6e60fac7c027aed4632444a95824e61e2c50aa3ecdaf09ed9cec92cec35adf63\r\nMac = b6bf70e67b315c256f41\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 81\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 0cbb1d567bce009d1dc5bdb8115607213ed9a516389f728f\r\nMsg = 634efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7\r\nMac = 4f0af4ff9a9c9e844fe6\r\nResult = F (1 - Message changed)\r\n\r\nCount = 82\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = ec65afd2d72bf477c7fdd9fbe3f1694c328088cb5f39d9a2\r\nMsg = 10d0e88b0db8d515bdff3a791c830b28e4e3ff4fa63f45b31a3f73dfb457bf82\r\nMac = 7172095284694f5ccdf5\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 83\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = a76b981540ce229e73064af4474a7ca4a042d03a6e6bdcbf\r\nMsg = 740d4b25ca7221d0826057701a6bfd66c50a82f010a57be8c5efa0af0f761764\r\nMac = 94b657fb57cb2fd6ed3c\r\nResult = P\r\n\r\nCount = 84\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 36bf85bf63b28093d2dae511990a0bbd75184044b033c66d\r\nMsg = c1fbbae61b81ae", "bacf151f1bccfb1584f3a211fe797996938c03e806392e14c1\r\nMac = 71796cf452f61db7f540\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 85\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 67b79d9ef1a47867c7d21f19f99ed1085f17a9f092fac689\r\nMsg = d354c54151c9dcdf0d0fd8c51413c2645efafb2bf6b680b25ad76d3825a4c04f\r\nMac = e324e8d377447b40629f\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 86\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = eafa8699695431ab3cfa1e87ffeae4b822a391653d2e9d78\r\nMsg = bd647990f7afec76c8f726d1de806ca0cae6f708b5024b514f11c4320913724e\r\nMac = b0da9d38a1e821ef1f39\r\nResult = P\r\n\r\nCount = 87\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 1fc4fcbc73dab4e73ed9d7606acdcd42b74972460c640fe5\r\nMsg = c86553a60da69bec1924788fc3ab985158a2d4788f33c01abead80974d26dd67\r\nMac = 992fd0b735b9fa9255c1\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 88\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 618041501dfcfdd2b60d71c04d635f6357ad8b0643af77aa\r\nMsg = e7e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f5521e6ca79877613\r\nMac = c183b8f21cb2aac7201a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 89\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 53bcc9e9244e2fa1752c61e65aa5c592138447ef9287fdcb\r\nMsg = 92e962f0086591b6f61c2ce5af62480722ba6a640c3f53806c421de438358721\r\nMac = 105d286777da3f2a03a5\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 90\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 6d2429921f90a22893cb65c4530e56068e9944d0b0f61fa7\r\nMsg = ea2ad7b7d3f80793391af0328fbb594d79898e1047210628bbc7441e135bfbe3\r\nMac = 482a75ec0ecf1ea59f5c\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 91\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 3100d3c70e823fee9a1bf486ec1c56771acae35246535de1\r\nMsg = 4e6ddae0d805afcd10a055bce584c848d050fb29fe8f1c64b18e1abfe46b6578\r\nMac = b0deaf1bb6d0425d1810\r\nResult = P\r\n\r\nCount = 92\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 79aa6c03dde4bc5949921563264b440ebef71b3298da67b9\r\nMsg = 879954f977e945cd4db33d20e6749a6832677adbdd9c7e262e4acf632f665f45\r\nMac = 9863fe041d191777067d\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 93\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 85467aa82c22ab019f9243c203b4371c95604dccee5d81ef\r\nMsg = b86edcc59dc9d8e34bea3baf4bfc0d5e117482a48e522c1b02a370e9124b379e\r\nMac = 54b2f4664eca96639f7a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 94\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = d37e7aa9215cb5c2c2fe81834f200192ada3dd0f4ccb9d69\r\nMsg = 064f85a23e049529c74c4f8267abbbe685b6a838841a9e304fdf14b835eee396\r\nMac = 536701771f51d2ec354f\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 95\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 72e8c7d74cec3e248fe938a1159d8d969928e6da26b8cf96\r\nMsg = 58019989445d5ee855e0ffcf84e76f3383ae09cfad74276a3edaf05cbf8d714f\r\nMac = 182d3bf14cc391aef27b\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 96\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 5f847950d2a5d44137110594d3c0afa995b36422ab36d044\r\nMsg = 70523bc397417e09d791a4976960e02636ca7144a5681cf7b116daa33eface2d\r\nMac = 5f0b325fbfaede23de5c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 97\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = b01e84220a7d514060a79088b754ac0beacb60e5b3a47020\r\nMsg = 036137cfed567fc5e234f18d6c2b8c7e9ae0f3fa526d6596e9a9ee7bf1abdf0d\r\nMac = dbe49af18c1e1bc99b73\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 98\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = d90ba47d7c9107b103cf167041dbd7b41d96016d93961917\r\nMsg = 2d53836a0437ccf27cdfe2bf2ad53f3082100a9f045cebe6b3031d21c9a6c5b6\r\nMac = 7252ee3b5eb76abeec9a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 99\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 10\r\nKey = 02e5a1306f612bdec098458cff3e691d93f050ba11ba6273\r\nMsg = 4bef96da992ab9386a3463213773f3ca7164813a15e014ab819f153386fa04a3\r\nMac = 5fac9c1a1636b66e2f55\r\nResult = P\r\n\r\nCount = 100\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 4c99ce359b8b82b67ee990529a10f2ecceadad456925a57d\r\nMsg = 89ed296a3ac03fbfb71422b9211799150b9d766a8116bebd48bd0a5068132dbc\r\nMac = e0e9583d784f87e0b7dd8fd7494a81\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 101\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = f085fb257ab64013b43a59150864a31e76c9ae94913a56ef\r\nMsg = b90ef6b773f250d4dac6fb9e62babad69ab424c96a8c0625987c030a91d27d64\r\nMac = 96f1dc9a1c668bb203428181c016ec\r\nResult = P\r\n\r\nCount = 102\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 8109f3208d5cda0f12141e40c85959b72eff1a937dae7f4c\r\nMsg = 49ab30d5c01e91bf113764342cb8ad32e6af945341a9c6a0ee2319a910416fd6\r\nMac = d13777a33f9520793eb8cbcec047cd\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 103\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 1eba29062320df7275a51aa090ab489571057e64f0ff6a52\r\nMsg = 754f03c2e298a699568d10c3e40390e0f8c398283ce1c35dbc4916fe479b87be\r\nMac = 87dcee48dfaa43e8223a2b338b220f\r\nResult = F (1 - Message changed)\r\n\r\nCount = 104\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = a04b976fa01411bcc9a3863cec91f486944fdca6e8754615\r\nMsg = abf45f39904a8f5766763fe80fa189ed9c6c15bb1a7a8fa0ae3058c9e5b87c63\r\nMac = 577aa39884335a4f66dce2a612515b\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 105\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = c6f0a3692c9280c48393b0dd763e5d0b90477f34ad69f192\r\nMsg = 737bab64c8a0fd6a07329bd729d2ec88685cb5404bd13a40e095a61846dbacbc\r\nMac = d61ad5f6d8aecb7b3fc1ddb1aff64d\r\nResult = F (1 - Message changed)\r\n\r\nCount = 106\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 095eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a\r\nMsg = 47c577d1a7e69828b5c3264738dd334be8d7678ec77bf1ccb5fec3843f85ffa1\r\nMac = 4fd309a62435edd9b1ac8861f904c1\r\nResult = P\r\n\r\nCount = 107\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 2f853c1ddb31694985ea5e47322bfc8567fd7a74a46b0597\r\nMsg = 5719e671686e87e931c2c0e5842e907bf584d226e040645eaebb896b53a28c7a\r\nMac = 75ed56da2db0ffa101578118e3f620\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 108\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 67f5adc0842d7e1a4f8591d678334c95ac83df95c4341c30\r\nMsg = 6c8aaf2f91ba87b61814ed689331264c7bf98c2223c426a4ebbf7b0db692a8d8\r\nMac = b7c591522e9a5a4f3af3aea24121b6\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 109\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 8702cfd1ff87a749ceb0a7192f5a872740b7fc600845df4f\r\nMsg = d29b6a2d421abd00a59b756af34bd72a42f5557a2ed40f8a7ea59b2e05ff01d3\r\nMac = 33b597665d375c95464af2ad56465c\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 110\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 64ec1fd6af554485856b7bb3c0ad16fcd9c4ec690914a09f\r\nMsg = 0418a0afc13d6215c7bd68b12a327587eb63c145120ea626fce59c16f7d66717\r\nMac = 80a85e77efe4f47d8938dd9c55d67e\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 111\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = f2991112c2cbd3038ae37b772a5090690006009f0c1965dc\r\nMsg = 231d72c9325f8c17aef4efc94855803eb2fc1eea601c84a98e8f7053840f0591\r\nMac = 14269c545a0e3d56ac9cb195cb6197\r\nResult = F (1 - Message changed)\r\n\r\nCount = 112\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 2c6d7fb9e92d98a1dd92e96f6b4013954ce1aaa5de242e6f\r\nMsg = 87ec7423f1ebfc37ee83c85938d58259efd16e3c8e55fb871e9998baa9cac81a\r\nMac = 782b7ebbada87c3572a3918a03305f\r\nResult = P\r\n\r\nCount = 113\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = d95a1b24964bfea5dd5a65f5a1398c6f9d43b26d98b47816\r\nMsg = 92f9cf56188322d18cb41d723847e6d419cd163e2be71b78e7b8dbdd099a99b2\r\nMac = 2498787836840fe1411a17f153c546\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 114\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 62f2490ba0c658848859fcbea8cc6774e24c9de979dd29d0\r\nMsg = 0822e3e6ba982091d532cd5271fbde25305d1f6e71880f81c618f267a9f122e0\r\nMac = ffb6c2a6c73245138ce06e458cf914\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 115\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 1841161a3752de1491b2b2f519d8447636e149437478d2ff\r\nMsg = 238e36b73b474de88226d4298121393ac9162f1736040bcd717b6e8db85125ff\r\nMac = 4d1656a2c8632260aa55a097451fe7\r\nResult = P\r\n\r\nCount = 116\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = d7d9a5f750078f1a82dffe2c70e6b0016eb42d13e1a8aad1\r\nMsg = 28a107d22fcd0499e0ea5aceda6dbc288a5f1d9da003c626bfb9a6c27922e9bd\r\nMac = b67bc2e20c422f9c7c27a84ba0bcfe\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 117\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = dc3ca30782c9c0a7fe8923d4b8d31aaf21e63895f51fb2f1\r\nMsg = 8716298bc17ed51aa273711873e2c2863e7a5021e46a183e6c6c81f99c02918e\r\nMac = f41b1896a22db30dac50b6b3e5e2b8\r\nResult = F (1 - Message changed)\r\n\r\nCount = 118\r\nKlen = 24 \r\nMlen = 32\r\nTlen = 15\r\nKey = 0b6b36339122610178c4bb72eb558abf15e5ed9ea0077a5c\r\nMsg = 52839f2f0853a30df14ec897a1914c685c1ac21470d00654c8c37", @@ -2451,9 +2531,9 @@ static const char *kData33[] = { "= 247\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = 4f98838899bb47fd3b0fd5efcf55403996567a0fbe1abdda\r\nMsg = 0c8cc752ae8d487c621be129326513a5ccb4141e324d21aab399148c1a83\r\nMac = 1aef1b7bc7856c6e\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 248\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = c98a22a667aafab0c94047e03837d51b11490693d5c57ea2\r\nMsg = e4fb1612e50607457dee8087ec41e57fcd7fc550497eaf1c8b0d47c773d8\r\nMac = 2c467fe37fee5342\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 249\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = bc6d4c46476ac1ea902be391b8a3f04e102aecead167f0e4\r\nMsg = 93b3314baf20e28a39e89592012c35adfaa3ee6d3d8e494051ee9944aaf4\r\nMac = 7f10757d2d36a55d\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 250\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = 5783548205826853ae740d35d6d69ab524c38fdfc5c51eb1\r\nMsg = 11c90809f9c53d2f77b56af0a42287ac6920e3d2921cceb824d496caf1a7\r\nMac = 07630c2fc52a24b2\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 251\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = 9cac76976750b7937b3bbc6986b4c726f0d0a63310db85d7\r\nMsg = 5de2265292780222349ac793eaa17c5a22902344063f497aabb9dc038ce2\r\nMac = fd092bab159861c0\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 252\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = 616de0b0f868eec923bf9edebbbaa51d3faaa3f86b2a5687\r\nMsg = 38013d62558647bc21d293830aa3ba80ff3fb84a8e0938754c5213077771\r\nMac = b4e782780989dc11\r\nResult = F (1 - Message changed)\r\n\r\nCount = 253\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = 5df77b26f3d34eba49d287addf0a38d20514e2b7e6059935\r\nMsg = 1930a8b428334df9fa1ac16890f3a6a93fcf9d6855d00b06ff831d8f6a70\r\nMac = a8ad975046cd7571\r\nResult = P\r\n\r\nCount = 254\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = c56f710e39deed799ffde6d10e8aebfa2bab5e5e073d78e2\r\nMsg = f6fe0f16403182d012f8b6e02539c386075b4585be5b18d6ae1c5f9ebdff\r\nMac = d0df47dda012655d\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 255\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = fef8982f7342f1b953658453cd5ea413700eff00f1ee7d6f\r\nMsg = 269b6c1c95bc079398bb31e285a887c1832202d6ec257a2cf62468e29358\r\nMac = d2c90040bf66b2a6\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 256\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = a34dfa24847c365291ce1b54bcf8d9a75d861e5133cc3a74\r\nMsg = 105d2b82676bf67ca9575ffd31d7d114e709826fccb6a5c3d3d7e26ff258\r\nMac = 5e60278f98b3135c\r\nResult = F (1 - Message changed)\r\n\r\nCount = 257\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = 520fe80cc4a3a5ad9c31f7010504923b7a7fd88292a64f98\r\nMsg = 2e1e0712ce74a1ad02079aeb0ce35edacc33f9a5d907cf70d0548d84ec3c\r\nMac = daf839ef84f1c81d\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 258\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = da4775b8f7d654bc4cf2eb75ecf4831411bbc9a960ea2df0\r\nMsg = bfaccce3a9e66f45e454090ffedc348306dc2807951ce0bf100178612703\r\nMac = 3e2eb7f029e687be\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 259\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 8\r\nKey = 15e3b3c5794fececd703ac58ccb22a78e15bbd55c579416b\r\nMsg = c6c3457ffcb6e66c085ecb69492deaa704e25aeeabb7b7795fdcc807b325\r\nMac = afd75cdc02222e65\r\nResult = P\r\n\r\nCount = 260\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = e0f2cdfb64bda8f02ab90620fc5a1943c4b536a99f3f8820\r\nMsg = fd0365ff6061e5f55c0e382f5861aad99c135f9511f33ace4bdcfe48c6e4\r\nMac = a1046d4b29fc50ed94a4\r\nResult = F (1 - Message changed)\r\n\r\nCount = 261\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = c7aafe7d3b419fa4ea06143897054846ac4b25e4744b62ba\r\nMsg = f1baf3be69f69611fcd47256e43830a1b3fd8bd3952eb26ed679eda7a4e0\r\nMac = dbc419e1ddd5cfdc63a7\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 262\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 58c219f2bc8ef2ed7a82cf70e4af4747e36a30809a5a6222\r\nMsg = 622642aa69b3efe14abe0a1d2ba20f3f76efddf62e6cafe2845c4dfaa501\r\nMac = 4e496c3d2d84d11923c2\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 263\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = abccee975feb10f635d548a8502f7c8b6adbd2be74117257\r\nMsg = 4f37a460d180a12789779fc335326c983ad6b18295b47f1715b82b2dc704\r\nMac = 41b234e0173770c469b9\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 264\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 0218eb619dbbde2e846218339aee4383792856496eb3b85c\r\nMsg = 28d3510a37d5f8481e7f22941c1fb1d6c70686fbad9747a23c9d5f18dfe2\r\nMac = 3cede44c942387d91767\r\nResult = P\r\n\r\nCount = 265\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 88b2514f368d51db283039efcde1891652a77daf68feec43\r\nMsg = 067a3a0434e92cac02710221fbb6dfcb7ef0264e2994905491317c8c3697\r\nMac = 128e652ce0a8f1a6194d\r\nResult = F (1 - Message changed)\r\n\r\nCount = 266\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = f2a78c449621278e9e927fcd50742d042d98d5142380fd3d\r\nMsg = df899dd6b99cc28d66604ca92431fa7f442a4927d03b392e707b548b8ebf\r\nMac = 2eca3c42b5e5d0f3b9e4\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 267\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 01fbfbde7dfdd6f0a0c5244cf6c36eece4d6dedd8baa463b\r\nMsg = 485ef613bdab5473763bb269a0d8c7a4bf4850bba072a96f8fc39a31cbd0\r\nMac = 333eb331d6a0d46fa279\r\nResult = P\r\n\r\nCount = 268\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 6ce99c231d2ef0fd48c2375dca93f8bb0df97d4a44e835cf\r\nMsg = 32d71e59634126ac6c6156a80a0dfa0175b29e9f40a3169680b1c15830fc\r\nMac = 3e90350e115c425ba466\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 269\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = f7a93aab5707ca3d2362c5669198e0218493acc3cb7b02d3\r\nMsg = aeec40ca8964fd6a67d3dc871ebf1bfb72f52907f1d6ad441bf2cadcc6d8\r\nMac = 7381d65aa138c86713b5\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 270\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 84f39f5207afcfd677a7544579f2b888a1eabdee4e835924\r\nMsg = b8d21e9c70bf63f04be311d50f84aad7e1bd2b0e517434ab978d68d01c5d\r\nMac = 4ab61c537f8b15f824cd\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 271\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = d488bdda400932de56a9f105f0e74ee79c2ed869faaadc31\r\nMsg = e64949ed85de6359595f286e29014c26daa7759aee56e4194ee958774606\r\nMac = 2752bc490802b9dd8686\r\nResult = F (1 - Message changed)\r\n\r\nCount = 272\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 76ddfb075fce4be8854185c6899a88d06e24854506b31237\r\nMsg = 9d86ae7d70e839078babf7fd60480a4351690867c6a8af837d9ad465220c\r\nMac = 2522efecaa1ba11c0260\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 273\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 618041501dfcfdd2b60d71c04d635f6357ad8b0643af77aa\r\nMsg = e5e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f5521e6ca7987\r\nMac = d958753757a11eacc848\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 274\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = dff6b9493de80447ee18ea7311fc9b8d74f77ac1ab21ce84\r\nMsg = d70aef3532bdc5293a3ebb11589ac1f801c9f93ea0d656e1d04068facf9f\r\nMac = 9a761e0e54767e414cf2\r\nResult = P\r\n\r\nCount = 275\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = d7780ba2dc5cc584472b64bc9f6246bedb27c70aca22c0a3\r\nMsg = 14691c1b47ff1547c1d2151913c2d1862d8f54782291ea202caa3d8ef07a\r\nMac = 78a2bf3a5fc87a14e090\r\nResult = P\r\n\r\nCount = 276\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 3bc5dba883e2e3b81df06760cc32f11009cf5a5503cbe864\r\nMsg = 9d043e368b41acb5eebb99197e15adbc3d19175a0bfcc97275e3e5efcfa5\r\nMac = f457293acf683c873add\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 277\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 7b3fba25c5ef410ecec62276b105ecc01c325dc2530e8364\r\nMsg = fda4bede287c57eea4448af5e99d41c7d307d1f202af7f387f874342a29c\r\nMac = 0cfb78ede5f4c185c33b\r\nResult = F (1 - Message changed)\r\n\r\nCount = 278\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 38efdbbc5645f65414b9cb81d2f9e4f190cf6e6e05eaedbe\r\nMsg = 50422c5e6a0fb8231b3bb6e2f89607019be6ad92a4dae8e0fe3f9e486476\r\nMac = 0c1acd8e8527e2663486\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 279\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 10\r\nKey = 94ea5b0aa6c8b07e379122006042c920077bd61610df6b4b\r\nMsg = 1d52f401f01058356d8c4c630f64c5322caa6063d6365ebf0040ec4ee12e\r\nMac = 2dec0d3bca617209b07a\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 280\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 5584994f80640233ac8eb4d2f873e8c997499095250b48b3\r\nMsg = 91febca4f1ae7e27501400c44ce8681ec90f5a5637c962db142c9284b1d1\r\nMac = f0b3135c1748e823aed10c4694fc60\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 281\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 57e99653fdcab10135a2ee3bf45c1be69e9ed57bd74dfbad\r\nMsg = 51c88fd98a7d82043a1500fc3d8a66ba7ab7760467c7fd89cfeeb22dd257\r\nMac = c588ee1d4f330e51872065c02cae61\r\nResult = F (1 - Message changed)\r\n\r\nCount = 282\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = f622d736124641bb7d53706bf2a69db2fc31461fb92818be\r\nMsg = f09569906", "381138cc49e3fc2384c5d33c34abd3d617c487b52ec6ee7b510\r\nMac = 610e1c1f9ab35059580061b8662a81\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 283\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 9662baae49c26e5452f3304ceed3b78326d2020a99a63f69\r\nMsg = 1d93aca4e2e31f5ebb84fad580fe74f5b6d1d86ab30cd0c8031be4090be1\r\nMac = 3c5a4eb51ec58ef3468bb00e7cae8c\r\nResult = P\r\n\r\nCount = 284\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = f2100615431349aba5c4f5a7f358fe7be579f4cb9e8f33d2\r\nMsg = aaf26bff7ad4116969c15d9206de6c737b7dda87619e3575d9b6b2efd8b0\r\nMac = 7396deeb4316fc6d84d3af119656f3\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 285\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = a5993acbea8c55d7eb55d60596f83e1d9f2cf636d06240da\r\nMsg = 0bc1fede6a6ed9e1deda82612fbaa6e60f0b2461fd5d131e6a7206f41a07\r\nMac = 2f6b0a9f2a972d299bfa5892f8ea83\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 286\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 775846f9dbf36415640276642cccf87e3dbdf6519c5b2db8\r\nMsg = 4fc989f327e1a1cc7b8af618ee6ae6d25f78e2b76b681455336945655f13\r\nMac = 8b3cf3171912096763a2ebe5ea9e41\r\nResult = P\r\n\r\nCount = 287\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = b214b16bbac27ccc9773d3c8dd31275da4876c039740ca8d\r\nMsg = 7786a3e30acffd6dde375bd859dd6be2c9221b979d0c66d1d5ed6e00b73f\r\nMac = 1a73acbf4e9250610b74c727b9c42c\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 288\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 032b4cfce8a1acd89de5f6f78794e2813bbcdb89959dafec\r\nMsg = 3f0bf0141dd3ace0fabeace61811eac5ec801deb7ffe3b0514d43db90bf0\r\nMac = c24066cbc00cb5c28e48141b627411\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 289\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = a053255875ed4b5193bd9c5fa4172a1f660ecfd2a394c2a5\r\nMsg = 14666eb960c6b4f8b6ccc49f79a039b12c02e0972c300f1e9d0a38c0a474\r\nMac = abce3abc224772a43c058016bf25bc\r\nResult = F (1 - Message changed)\r\n\r\nCount = 290\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 0ee87b40abaa99f598fba22c3e677a85ca3ec95c3a51aca8\r\nMsg = 1bff19aacb9c7d0a44a15ce686a2469e3934d086365d36f449484498353d\r\nMac = 4d565c2e12901845e77ed8b02746ca\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 291\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 3384f8563cfd0fc8019bacc9b691c9ba4ae6dc8cf4c00629\r\nMsg = d31e959cf7842db351db407266ddae0b36e37f34270576724083e9989764\r\nMac = 96d0dbf51d96b532321da593383964\r\nResult = P\r\n\r\nCount = 292\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 375904fb9fcafb7f19877b145b0284cef61ac7a3d88f537c\r\nMsg = 441bd4db5e80c7db1b575a19b7bad021a719658a2c818566291d3cdd32fd\r\nMac = 3b8dac029f6658e44e5f5bb8f8ee40\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 293\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 3c1ca347a7d3d8db8f704410c493d7a65718cb7bffec2dff\r\nMsg = 555fd02fad4f44484133f9472c050f9da27390fa2a3e48cb0be0d7020171\r\nMac = 32be39d874c15a0fffc7111f76bbc4\r\nResult = F (1 - Message changed)\r\n\r\nCount = 294\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 8bed296a3ac03fbfb71422b9211799150b9d766a8116bebd\r\nMsg = 6df3de543cdb6d1adb6ca7df6b5a4510fc8379a4f2c87497ad1c2b9a69da\r\nMac = f24ff3218e7905d81c3e99c84bfd26\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 295\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 9530bb291d38f6bed10318081dde8fd178f02eb0e8b7d022\r\nMsg = 5f48624302d1acf7750994d45f0999ecd89a3861cd0268d5a51e672124b1\r\nMac = 0afed54c577e550eba7ac94a2d82d8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 296\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = f5400b86ace6e3da5f090befb96fc05d0409bf41fc77b4e0\r\nMsg = 1c79b055fded54af5ad2f3253f93a090ec003863d9458d3ff718c4c13937\r\nMac = 59f94d4b13539a5f0a8672e4599bad\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 297\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = c033e4a512297caecdbead892b11a9f7007af9a74bcab89e\r\nMsg = 3ce965d58856663d54269af4791ec57ef98227ea387d525769c23ab74674\r\nMac = 0dc19e37a255dabb61957f7f89ab06\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 298\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 2459f951d1255d093b72144b83b05ea3185d5123d1ca864d\r\nMsg = 661c6ff41af91a6d828a4d5d507f8a9130abe91412070950c5fa4c75c8d7\r\nMac = ac8e75b4465a52b3a7da3746f9875a\r\nResult = F (1 - Message changed)\r\n\r\nCount = 299\r\nKlen = 24 \r\nMlen = 30\r\nTlen = 15\r\nKey = 3b63415210361822e23cccf0faae88cd7642f44cec45fe37\r\nMsg = d7f78e950d2ab520a6f1e82ec6f206b2e8c71131c85234bd80500527f131\r\nMac = 15e59760acd3dd74155d6d3739c189\r\nResult = P\r\n", }; -static const size_t kLen34 = 61387; +static const size_t kLen35 = 61387; -static const char *kData34[] = { +static const char *kData35[] = { "# CAVS 11.0\r\n# CMACVer information \r\n# Algorithms tested:Alg = AES KeySize = 256 Mode = Verify \r\n# Generated on Tue Mar 15 08:40:45 2011\r\n\r\n\r\nCount = 0\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 45b74171271e1fdc19f9beadda58010d843af69dc2f4ad003dd74b9b570d5a98\r\nMsg = 00\r\nMac = dc0ee796\r\nResult = P\r\n\r\nCount = 1\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 2cb4239fffd13762fb5391f5a4760d12d96ea12666a793b4d651e9f4891c22c1\r\nMsg = 00\r\nMac = 2e19d6cf\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 2\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = d88586da8b605a6fd5a45d316b89fea15e27ff4d92238397718e68b8e00ad605\r\nMsg = 00\r\nMac = 8ad78885\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 3\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 136ffda3359fee8c81e6dac131256f4bffc0d3c3e74f8aaf2f979a0fa5b8ed32\r\nMsg = 00\r\nMac = e430d0da\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 4\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = e1a7867476bee9928b7237ab7a3d502fbe3d2d45b6e4c41aa9f12b79099f019d\r\nMsg = 00\r\nMac = b6f00f90\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 5\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 5b4d945d55dea22e37821ec396476a4bfb617d2f392ad93afe67bcfda9cd9b72\r\nMsg = 00\r\nMac = 5076ef43\r\nResult = P\r\n\r\nCount = 6\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 23df62a79fd5866425427d0ccabf05b16590e8452ee22e028b51910926ad314a\r\nMsg = 00\r\nMac = 7bd29398\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 7\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = ce9da814595f76a7e52a1222c7c9a6579b3cc2e393ba51580ff6cc9b6ea2ad8a\r\nMsg = 00\r\nMac = ce872fd7\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 8\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 507c4f32246d637fe08e454c638b014438109e1fca31f724d40ac6ec1aa20268\r\nMsg = 00\r\nMac = 282a7ec2\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 9\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 537dfe9fc000468dde29800549b1cfaae67ad89d22c8264d7eadcd914ac54ef4\r\nMsg = 00\r\nMac = 7936b7d5\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 10\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 1f57959cecbd377374477e33b34979814f260f77867392ed645998f73a3b06ae\r\nMsg = 00\r\nMac = b4b63264\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 11\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 3d272b4a1a1031369aff514e2df98d580f972b5abeacc05cb1288e6e473c0fed\r\nMsg = 00\r\nMac = 18b35edb\r\nResult = P\r\n\r\nCount = 12\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 8774d1acf96362215a3d1e51e1a52a980685dec4f3afd2d438c03c00c04a79f9\r\nMsg = 00\r\nMac = 80eb7a84\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 13\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = f37155beb5eed8899d9ed4b5fa21b60b40af289f090a355d5bb1aee52957cd99\r\nMsg = 00\r\nMac = 6827f73d\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 14\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = fcb52c44379ae8083bdc7b827383df93cb1a7ecc21574730f9fe003b7302de23\r\nMsg = 00\r\nMac = ccad16d9\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 15\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 83e231ecf8913ebce00e62b8f00c1abbaad710142fdb912c54664169f7af0e51\r\nMsg = 00\r\nMac = 8e393f56\r\nResult = P\r\n\r\nCount = 16\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 7d35e77450e2adf8805d5ad67de5835b2c5dccafe8440865c7e7a1501ed53a98\r\nMsg = 00\r\nMac = c6899710\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 17\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = 87143071241bb65261fe7afcc102416e59b9e46ee0c9007308f0eec10e45f6d6\r\nMsg = 00\r\nMac = a1a4449e\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 18\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = d30d2d1670553c71ff0264ab861574dd03a103d954226d1b540f18fc47b3fc29\r\nMsg = 00\r\nMac = 217ac763\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 19\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 4\r\nKey = d6983226b2c3a431abcceb77c8ec6b9bae80199115b28c5d7c56561e1b12944c\r\nMsg = 00\r\nMac = 26c717ce\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 20\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 0cf53b4aae3e0a209e58385dd32d9cc6163265241332c332af4de4b99b4022fa\r\nMsg = 00\r\nMac = 1bfd19f6e1070186\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 21\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 5f988f38410d26d293ef32d74eaa81acca82545e767ab59dcc750a09849cebad\r\nMsg = 00\r\nMac = 7e52911c0d7987a2\r\nResult = P\r\n\r\nCount = 22\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = d8fd6e1dfcca8f656705aed7e356a576baf8907c8d10d54c833d62a8a6703624\r\nMsg = 00\r\nMac = 31b478b4b4adaae0\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 23\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 49fd56dec210e903f6c703332637f9c267eab9333e2701a16c74ce5e0b5a16d9\r\nMsg = 00\r\nMac = c8be2b36c93684f3\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 24\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = fa282e1f3276a3e0c769f2ba25ce830591e860300cc03ab57abdb14c0374d060\r\nMsg = 00\r\nMac = 27b8111c3d9f14f1\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 25\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 1c6942e914218135496e0d7910abe67b9f7f29bb09029bb37021865d7543c4f6\r\nMsg = 00\r\nMac = 466b7077bec98b7b\r\nResult = P\r\n\r\nCount = 26\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 08f199a8d7e3ea821dd3106e8947cd2e9d485342b25a64713db2b8a650a49ffd\r\nMsg = 00\r\nMac = 796deae0d06b1bf4\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 27\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = febacddf3448c7464297ae53166793e2ed962de0d0947c5e5e17abe3cc103b07\r\nMsg = 00\r\nMac = 5e2d21aa3351a2a0\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 28\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 59b9fb83b6a85f017bde6c0ff3ced955b9f343cc71b680c6b591302f52759412\r\nMsg = 00\r\nMac = 3e5428eca10808b6\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 29\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = f07e6655424125462a96390e02bfee9d89cb271bd9bbf22a9de45f6b7e949343\r\nMsg = 00\r\nMac = eed5aed01096226b\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 30\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = a04f84bd79406c138d02698f003276d0449120bef4578d78fecabe8e070e1171\r\nMsg = 00\r\nMac = 18553226e5f9788a\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 31\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 1673a52494e9af02472c1777232aa3813c7c162593eca7112f34b3807009af5e\r\nMsg = 00\r\nMac = c5907fff58c68ee7\r\nResult = P\r\n\r\nCount = 32\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 1e4ffbed2d5a7bcda5e24a66048660629d57567f83307087a846db8246ff332a\r\nMsg = 00\r\nMac = 29599bc212927246\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 33\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 8b80c24ab4a3c24ced82ca8c69924553a37a139bfa2541c59e15188ab0fa5a34\r\nMsg = 00\r\nMac = 299746d93b0b4881\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 34\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = a00ebf59768f6437b48a91923f5effcf31c745b980f79f2edde9ed18dcf2ffa0\r\nMsg = 00\r\nMac = 61950ed83db6bf74\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 35\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 319d3f58fd7257901ff364fa68b86b1ba27c11962b2c5be8e33eb95548444322\r\nMsg = 00\r\nMac = 26793e8f8d5eb7c2\r\nResult = F (1 - MAC changed - for 0-len msg)\r\n\r\nCount = 36\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 015a9d1f2df2c31f14cfbdc0bd68725fe8113a024f2a43312d963207fd6f0d88\r\nMsg = 00\r\nMac = b19fc2680b8b82b7\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 37\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 003cff344c4e1932ac628440d819eaaafcc3ebe7c525cb7abb7a6716d2b76e05\r\nMsg = 00\r\nMac = 48a98dbf16257142\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 38\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = 1a581f36e1816d346f7bcc6df78316aa353111e447fee6f0bd05d562f30626ab\r\nMsg = 00\r\nMac = 587155c18ebbf8b8\r\nResult = P\r\n\r\nCount = 39\r\nKlen = 32 \r\nMlen = 0\r\nTlen = 8\r\nKey = ebab54c4a22a16f7d9546bbf682b995a6ce944e949f1920eee058db95ab9c93f\r\nMsg = 00\r\nMac = 067927f063adfaac\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 40\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 58405ef8fb69e88221edc10a92c01cc44255aa7083096adb79bec3a8cec6d050\r\nMsg = b4aaf9ad1bde60a8d7e7cb16c1cf6b713df17d1507b028973068a95963a5ad5b\r\nMac = 42ffe65f\r\nResult = P\r\n\r\nCount = 41\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = ca0f404e3389e9527135f53eb58bca7726266b8086d33fb512e8143daad7633a\r\nMsg = 8f2a6b2185f73372ccaeaa7f93d30d1ca80a451ee0e46ccbbaf98c8f3f37aaf1\r\nMac = f2b311b4\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 42\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 67b896b88f07962e08471634ab7e522144d716a2969bde55a05c3c931f747a8d\r\nMsg = 0218eb619dbbde2e846218339aee4383792856496eb3b85cc43fa81446fedc5d\r\nMac = 69db1949\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 43\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 422994df8766f7a6a7ebfa2ca57ed6189d9e9e8455c8715c14f3f407b75dff4a\r\nMsg =", " 12f0c45d06a138a964fb11b2d450620a2977bcd2952afe371cad6e3d48b009bc\r\nMac = fc5f1ccc\r\nResult = F (1 - Message changed)\r\n\r\nCount = 44\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 3291be3aecd2e06cd2ee61a14d723450043d450567cbb0bf88ba32972d86dca3\r\nMsg = 343d5a4ad39acf81adcf24e9807618932abcb3bc076734f179174c77c8cb89e9\r\nMac = 3593d615\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 45\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = a1885ce431cedbb60f7b3d96a06cbc60a964df156ea4b4191abc5a9f60a0c361\r\nMsg = eedd0d767a25b24ee25fe747718256af51d7b4bfe900adc069381a71a2dc7aad\r\nMac = c558f768\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 46\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 039188ec58fa55acde53c337fcfd0013f0c6efa55c60ce470112159bcaada11e\r\nMsg = 009f47f180e085776be6644aeac0070be64c289f84a7ba3dece7cdc54f0db354\r\nMac = 20d3639b\r\nResult = P\r\n\r\nCount = 47\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = f7d946f66e1cc4e5a79dfb5559cbea5a128545eac38e17ee7f3bac9a806faefa\r\nMsg = f250c49f9882f10db247adfdb2112c2589e1011f77c48e0f219dbf85e326f8a5\r\nMac = 90b4bfcb\r\nResult = F (1 - Message changed)\r\n\r\nCount = 48\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = a61f586ddbbe0219187f8f446d4b172f5e9bf855d1d5d6592ad8e03eb4d555d6\r\nMsg = 71c8eb0079559a306e236c49b7ce1b6cfe26c7888733eb7ec07690831a72c0c5\r\nMac = 78ce0135\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 49\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 7774802fd82fe96c05431acd40b49b1160d403c0db09b10f23d0bd0435022edc\r\nMsg = e75b6ca1b87e775b33536979422a1cf743f58c71b1599adb00050972c843cdf2\r\nMac = d885703e\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 50\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = c4261ebb87a76aaa82a00392ee2e2318f0b52d5f2724e374847ad9ea5c8929c1\r\nMsg = a41bb1f256228302cd0548ae2148ff42774d18c2d6d3e38b36bc4938da13bac3\r\nMac = 857d8909\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 51\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 6219c19233c1b91d7785fde3b65df3bd2e1d74331ba62e4d365947a77cd243c4\r\nMsg = 68f17b9f57734784144112c79bf360ee324d37f9a7718137d954b15e796fa9db\r\nMac = 0e85de57\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 52\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 7e8cae1374d3a21bf2dd3786754668f17aa63dd5e3654cff9dd18041806d1968\r\nMsg = 2d335be62ecfed45183f5a04014c1a52afb7b918b9cc1f2be93b15c6e5240537\r\nMac = b56ee72c\r\nResult = P\r\n\r\nCount = 53\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = c2425ed20cd28fda67a2bcc0ab342a49d79d6b4eb196266cb0d116fc18895545\r\nMsg = b5f24c00cd15e377f444ae55e02b335379e7ae14e7c9bd05f0575d8981941553\r\nMac = 2e44c573\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 54\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 1f7871680bfa59a8a178604dc513b51a3d4c682cc4c421de594512e9dd062ad0\r\nMsg = fcb43224bf8989e1809d90481ba043328febaf4b6c1c05d18800ed98f4b71c52\r\nMac = bee03b92\r\nResult = F (1 - Message changed)\r\n\r\nCount = 55\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = d8a27558d070214d3f765cf969b2b8f09c0b14ebc492cb2539072b04db9f29fc\r\nMsg = fc69a1f0d0ba8eca9e7c0570cec9c76b511c74b2d8b65928444189675eb42fbc\r\nMac = fab3b2f6\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 56\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = 72354b455230b72a6dbfa5cf6c3726d7f8e65ca773f9d469e99d165743657b36\r\nMsg = aac60835c309d837aacc635931af95702a4784c214283ebbfb43c4e29973560b\r\nMac = 69519d9e\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 57\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = ca92b095173076a40e24522297be27fd3a765c8d417f24c71a9f03b3fe3d8e20\r\nMsg = a96c4d5c89a364263c97a453308b9360bc0ed868602b9ff54fe13f162ad31ab2\r\nMac = c59a1a39\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 58\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = aa56f98e03f559eea02ad958e125f2312ff97bc3310079ce437b383f247a9b3f\r\nMsg = 01bf2aa8dc66ca44d16d4567f1adddd4461f78706ff15cf68ad937eb57aa62d5\r\nMac = 31171cfc\r\nResult = P\r\n\r\nCount = 59\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 4\r\nKey = a0e317b790870e6703e6077dfb8ea327c12e29a17107284cb89d5effddb2d9a1\r\nMsg = eb4ea6b72dfc6657e835bf82054796183330c02a8db3c5b179abe37fd0a05675\r\nMac = 05d54199\r\nResult = F (1 - Message changed)\r\n\r\nCount = 60\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = e3de27949ff64066131c81bfee172b308f9bb0b31710678ec394837b79434605\r\nMsg = e41557341e8dae33568524f3f64b23426044c9db3526463ad16786af14f611b2\r\nMac = 975ad1d2fcff6a85\r\nResult = F (1 - Message changed)\r\n\r\nCount = 61\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 492dacdcb4a35fc438a6eaa35e26d2f683a1e85e92df28f213dfe1da6511161a\r\nMsg = 0515ad7b8576258645d37b7ac771745620e2e9e009cd778f34ed77a7dc5c30a6\r\nMac = 9f43dba2aad2f539\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 62\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = d71c50d55850d432cd8c8ff4ea427b3f19cbe14c785a7704202fcbcead0de5a5\r\nMsg = 7ffbc4a09583029cbb0acb6b13f08a189033da22c2ecf921f01d79ac68a9397b\r\nMac = 5d00ffc5f8cf1ddd\r\nResult = P\r\n\r\nCount = 63\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 557eb2e709d58915a8bada6433f2e5660247e0cb1588ea84a9d24028090eb396\r\nMsg = 003132645e3026f6a2b9d0644c16e5e4d1bf8b53a51f0e1b999bd45a67d19341\r\nMac = 6f3d9f50d09476ef\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 64\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 351d779277148ab4474843cc798942cacbe863eb1c1c9338dc25e251c12fda68\r\nMsg = 34bcdd3d0469c01d0d95a85ca705d887385bfde20596a90b47d902db826dbc8d\r\nMac = 79ded259f93456bc\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 65\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = e1c17ce3d3c61468a7652a95128bc0f6c33d9ccc46e7490327f15f645a94040c\r\nMsg = 97829c60ca9a71c23eaf1c4b4fbd72043037ef0cd356b68e0db0d4f0f50cc54d\r\nMac = a93f0d16499f63ec\r\nResult = F (1 - Message changed)\r\n\r\nCount = 66\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = a9a86a4407b7ecebc89434baa65ef173e88bd2dad9899b717ca578867c2d916f\r\nMsg = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02\r\nMac = fe84ce3defe00f67\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 67\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = ed14373671cd8041e00874b5d098ea225eaf9c68bb51cecbe8083149bdda062a\r\nMsg = 38106cdc72b1ddd0fe11f23819096dd7479e95ee9730940c28f51e28eca653ed\r\nMac = 470404ed731640a7\r\nResult = P\r\n\r\nCount = 68\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 009f47f180e085776be6644aeac0070be64c289f84a7ba3dece7cdc54f0db354\r\nMsg = 2eced43c084a86f89f61e7237425137c167aac29e4cac4071afafd3f0c9dee1a\r\nMac = f67d432e5b6fc5e4\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 69\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = f250c49f9882f10db247adfdb2112c2589e1011f77c48e0f219dbf85e326f8a5\r\nMsg = ce61d6d8de1b299c9b063d1e1cb1faf7a616faa7c6673d7f9c0a1ebe7ae285fa\r\nMac = e1d950593abc14e4\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 70\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 001150b2dd572288b6fde466ec2c2a64c75a9d516b7096f7082bec9f52c20ad8\r\nMsg = 6dc38e37d1379732df4dd535db88d17aa59d7cf9e8d60ae695b4047b90d899f7\r\nMac = 2de6700fc1562ad3\r\nResult = P\r\n\r\nCount = 71\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 68e00d394855b6697da8213a120dc2213b3a8a1e88c9b93f5edef465a809974a\r\nMsg = d21aed2073e8ae9c0560f9dc1adb961d4f959fa12c0384a44c675192bea13477\r\nMac = 9594f10d5ce5e616\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 72\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = be0f6052baf658a3607d999b81401edf7e2afac2b143e1b908c8ea0ff38193d9\r\nMsg = e502f0b4710bfe517e783c4bbb85055c8471b04e12dd6776f276367fb5d36369\r\nMac = d409a879dccca77d\r\nResult = F (1 - Message changed)\r\n\r\nCount = 73\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 7147b3c5ffb2660c45cd8d78a6fd44bdd5ba75349642b32ec88f6688a287297f\r\nMsg = cebe84df789c98dd125bf43cd993e2f089611b98d10be04904e2468d116dd2ab\r\nMac = 21cfc1e6c1c38df8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 74\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 205e751926038ef940c6599d84a9e1b4737bc826e9fcde544d43f2a10b5de931\r\nMsg = 86ffd5bd3bd1cae10706a61d247b2257b165f37cb53ff21761077a2295a9111b\r\nMac = 73d66ea826b84fc0\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 75\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 8c8a502eafcfbb813dd1ea907b1660a41fcaa3f905aa93c22320f96ebfaf632a\r\nMsg = 626aed82974ef29a1ba0a6c6fefcbf34ca982e6214835183502f6a24ea2e500f\r\nMac = ca3d007ecd99be83\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 76\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 596db502a357e102566291b916b32b8a09e99d3739f5e6543a2cd8fb0c9a1cc2\r\nMsg = 22bade59214fa4b933cb5e3dc5f096e239af4c2f44f582b095c7fea6b8914bfd\r\nMac = ff4ec21d89d4762c\r\nResult = P\r\n\r\nCount = 77\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = f51f2fb4b3fd8045b70d34b600a2697cbf7503be0d8cfb5cdc60f9312e3e269", "5\r\nMsg = 4d43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c1149\r\nMac = 3d615ee77043d8b4\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 78\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 80a4b14f951490618ce53d39abd3d786b425d4f76b26a25052d98ebdb7e9e666\r\nMsg = 0b2a77b0175ffafee40cf83bd19e785dc7ec4319786c49b3e7a741142aea901d\r\nMac = aedcaa2e26d2f5a7\r\nResult = F (1 - Message changed)\r\n\r\nCount = 79\r\nKlen = 32 \r\nMlen = 32\r\nTlen = 8\r\nKey = 39fb57fadff7cd9e1cfdba154422b71d693d08807d86da46ba63c929417ea549\r\nMsg = 567c7400f190d06e682b3dac5f751639a9007362b1a2a8b618800fbb9f6c08df\r\nMac = e29461fe8c6b3767\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 80\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 535ed61510eb268100be032b7a258e84bdb32448269d3000a76444ca74b4695c\r\nMsg = f7f28df82f910badc5f4b3860af28cbb6a1c7af3fafa6dae5398d8e0a14165def78be77ee6948f7a4d8a64167271ed0352203082368de1cd874bd3b2e351b281\r\nMac = 4a0fd541\r\nResult = F (1 - Message changed)\r\n\r\nCount = 81\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 713fd349c56d1086794eb20ed59ddc89b065bb8533b968c6dfa60bddd16646fd\r\nMsg = 4f3b91aeaaabfc7d4dd6821549d4eee2ea17f59aa196c67b422be2d46f3a2ec65494464c969b157985a6a30199a72dfb1c0b7be524e16ee9c43fd95e83e19192\r\nMac = bd4eab1e\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 82\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 1f89d9ee93294aeaf3503d15a6dbef48708de48897a72b3545b9e3852eb7fe31\r\nMsg = ea0608b19f47676f0f342cc2742e003a6a74fa2850f41e0cf162235163887a3830dd8b13b45842b3c686ca239bdb9897e646ac9f440713a0d8c5b18532db3db2\r\nMac = 8bddd404\r\nResult = P\r\n\r\nCount = 83\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 2b50dbe8a5ed0c7cb69aa60a38d10cfa4553c73d58c0ce84b26504b0fd55038a\r\nMsg = 2586563b0102f662b5a8f9bfb0c1d107a4c27569d27bc066889213e3e830427ceafaae1ca543aecaca7f34c671fbadd518cc28d9e806bba43b2e220e5cf1aa45\r\nMac = 987514d4\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 84\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 29a7ed3aa55c7eb7e5bf343ca0efbf8b2062ce67b086255551a8efa0ae16569f\r\nMsg = 2e6f2d21aa133a5061622f08ac64c6b3a3dc8154862033055c27c3a3d9e42dc885d2c9f91bd1d0212f301c3e140b2f5bfdd777be623bd162a6214ba8f60e2e49\r\nMac = 1bf45457\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 85\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982\r\nMsg = 65916ae3d88ab2add5c0c6910ea993d385cbd35c5077ea0d9db30e53f378abfcbb1e0649fe14204470d4dd53ae16650ec444cb4ef22fed86b0009b57ef71fb5e\r\nMac = 578f80b2\r\nResult = F (1 - Message changed)\r\n\r\nCount = 86\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 47e49e5b57fbb834932fa32107697471119f1be3c3a6e71a8c474d4b1596e539\r\nMsg = b3cec7ad75e2bf6c87029a67365aa83cf797ae2f4d42e720ed4c48ba21ea08ee6aa3609f69a6909fff6222dbb45172d255146e4ce1c59b48a7895936a8646766\r\nMac = e6e64597\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 87\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = f0b0aaacc25a791c236aed0e9b537fad00a15efa9c89b5068ac52c64639fb1de\r\nMsg = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c5aff71ea4069224cfbdd19ae3f0ecdfa65c27dc3bed721712784a09fdde243c193ab6a0ac2417e8d\r\nMac = 990bb31e\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 88\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 14db1ffc1c87117fc72981706c0f90404acc98aabe950839baeb6f0b727bd6d4\r\nMsg = 3d736aeca5720f5c7bbb16df61f6d785facfa070aaa89c2d9e8af9450d62490ebd6a29c7c8e521e4a00fcca7515439f006c09056cfb7f976a1e6b98b9f799e40\r\nMac = a6786e52\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 89\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = c6f0a3692c9280c48393b0dd763e5d0b90477f34ad69f192ae4dcab771aeeacf\r\nMsg = 8439ff717e1e15161119494d368d7f3812601588265bbefbc6d48e22cc8a51688dd021500cee38fe6ec402f9aeb0762f92b2a73adece96e1c7b24be2aa9924ef\r\nMac = 70126cfa\r\nResult = P\r\n\r\nCount = 90\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 75225a26d63e91281fb37ace46354f81de99dedfde8b770ea47f08503aea87d8\r\nMsg = d729d8cd1631aacfe485b1f408a4fb60256e7a8ed6e5b53afc34be7e57f1643b549fa9ba2677779318688ece225cc149babd6259ec37fbb4adc03e8f6dd63f03\r\nMac = 5112f762\r\nResult = P\r\n\r\nCount = 91\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8fa77969539152527e\r\nMsg = 5251a0aadbc92b76705eb053d09b25b5ad38eebabfe1980d143ac90aa81f7723353059824c8d9befa5ded6f5b4973f407c7a1f4aa85d8337d82d34fd3933e9c7\r\nMac = 52f7a014\r\nResult = F (1 - Message changed)\r\n\r\nCount = 92\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 6906d6533fbc33f56e38e6a639798005daa228ebd2fc8f93803d26fef30b8e95\r\nMsg = 6341370e126097f9721a13c977eb4875cf1286e15c3adfa4e7597e0e13d93b6a8ff66c809067fd5e7f40c358ee170d4ed1657c2deb3015b886e79589678e0452\r\nMac = 1b6a021e\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 93\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = cd9072aeffebbdfcce95b569c34158d0e130ef24dc99e3f98a4dd246949be269\r\nMsg = f882339f93ff114bfead78044aab1c7fe109dbf1bb2d968ad476403fdd2034cd3168ccfb0cf02f1ff7646ae3875ec349478749edf300b08be7005cc0d6bebc15\r\nMac = d16bcdc7\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 94\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 3005c0100dff59e5e4b0e3b95abbbc79749dc49ba29a79b1fcf7613ecb6aa9c8\r\nMsg = 4c2c670f3ac1c4e33a8d43063c8983e20f1ce6a73299fef1e70a42a5882c061b1ebaaa8330ee1181d946541b1d84b8d57df8de1ac9013ade36d2c682b172f8f8\r\nMac = e5689100\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 95\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = f32eefb301356fb1cad6dfa94864542b5f8cd8e98438bdbfbbb431f0c10f12b3\r\nMsg = dae6db62842a8a25123e50041b701ad17e2f63a0496443c3d905a9f943e6e4e2f3d369b693ddd0372ff11fe496af4b700378fc72fcc9915e7bc864b44c1d4f77\r\nMac = 280624c3\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 96\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = b0212ca369c611b725eccc3daa58df412787a3475f418d820971af46773382c0\r\nMsg = 13ca022396285bf7b82a600b560208c54ee14f8496bce684895029027e6451a09f4eeb0af9b889dacfa4b7b934ae30c7d991523e23edd0528048a75bfc525335\r\nMac = 8e9759db\r\nResult = F (1 - Message changed)\r\n\r\nCount = 97\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 57a9d1ea216c69c6e360221f8c858a9d356598a8b253e2cf67f1116b5df5927f\r\nMsg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d381082f379b2cae385dd526b189cc10cdebbd33bf3d8db2b449ed49064d30d4b3a359110d\r\nMac = 41022947\r\nResult = P\r\n\r\nCount = 98\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 749f2fb720d321757473afc5d3a377a0eaacb425e5591026e3a1bae6a785b921\r\nMsg = 2e4f5149d67c955c409b63b04d95538808da6202e69a50ed4d3846da52fcbc76c7089a17758d9d94a63efd5ae7054dbc0bf5a28b7381f7e78debd0549bff1e11\r\nMac = 67b34b0a\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 99\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = f8ebad761b9e73c77faae3fd9390093fef595e77e6d7f6b35e2dfccbde925c44\r\nMsg = 18430f34d5b5fddbd228a910cab9c48e1ba2b5f57819eacbde756cc0c993b736a778c8008d37776a2915077af8ecfc76b8cd2ca621e9195bd0b27e31843d2890\r\nMac = 7a446398\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 100\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 5bb9fb83b6a85f017bde6c0ff3ced955b9f343cc71b680c6b591302f52759412\r\nMsg = ee7e6655424125462a96390e02bfee9d89cb271bd9bbf22a9de45f6b7e949343def818dfc93d777528f609cd38be0a013b1eef816eb1f9593a850bb7aec5b9a7\r\nMac = 5e1fa5b9c9dcd90e\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 101\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 57a9d1ea216c69c6e360221f8c858a9d356598a8b253e2cf67f1116b5df5927f\r\nMsg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d381082f379b2cae385dd526b189cc10cdebbd33bf3d8db2b449ed49064d30d4b3a359110d\r\nMac = 430229471a1cf1b5\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 102\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 749f2fb720d321757473afc5d3a377a0eaacb425e5591026e3a1bae6a785b921\r\nMsg = 304f5149d67c955c409b63b04d95538808da6202e69a50ed4d3846da52fcbc76c7089a17758d9d94a63efd5ae7054dbc0bf5a28b7381f7e78debd0549bff1e11\r\nMac = 65b34b0ace2fc6bc\r\nResult = F (1 - Message changed)\r\n\r\nCount = 103\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = f8ebad761b9e73c77faae3fd9390093fef595e77e6d7f6b35e2dfccbde925c44\r\nMsg = 18430f34d5b5fddbd228a910cab9c48e1ba2b5f57819eacbde756cc0c993b736a778c8008d37776a2915077af8ecfc76b8cd2ca621e9195bd0b27e31843d2890\r\nMac = 7a446398a5c59ec6\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 104\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = b228c753292acd5df351000a591bf960d8555c3f6284afe7c6846cbb6c6f5445\r\nMsg = c66d322247ebf272e6a353f9940b00847cf78e27f2bc0c81a696db411e47c0e9630137d3fa860a71158e23d80b699e8006e52345fb7273b2e084407f19394258\r\nMac = 129", @@ -2463,9 +2543,9 @@ static const char *kData34[] = { " 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 5c77fe134af3fef72fcd16006097dc7dbc45ca10339ae3bc85e0993e4cdcefa1\r\nMsg = fab52c44379ae8083bdc7b827383df93cb1a7ecc21574730f9fe003b7302de237bed535d40832763e7a2cab5806de91d39aa3f38d167ae3250e48ed1f6ad45b5\r\nMac = 03f36c5a\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 201\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 997c6b4b513bbdeaf701867bbe81bdee63de0d0d18c870bcc1e9ff7f627f093e\r\nMsg = 4c23d92665e88a4f6f732de384034d493d5df37b767a8260557de05688e8d60dcd0eba9cb8cc4bceb174dcbd3c0ab5a37db3b6ecfb6a3d90a4f54a9f1117e11e\r\nMac = 9e798c73\r\nResult = F (1 - Message changed)\r\n\r\nCount = 202\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 64e390edd97c0af1ba5165900828e0630606f83d4df5240e1b05c307ee9153ff\r\nMsg = 1ae71094fc1b304adfa3378c4efa8fb290526bb314714c9613beca2a709c91f7e3f6aa74561bfc7b8fcd12f910941eea3b593e85ba2fffb31e7420c6c6199868\r\nMac = 1977347f\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 203\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 44e2f6d41e04b75f541e724c6f6325f27d7475b3676fa0247f28b36e58b6fdf5\r\nMsg = b9ac624288352617e4d375f33953b431cbf8f03f9ecbda9893330ff2d3c59db8705dc3ba4a6ef924309630ac48765b10b1c02ec0669126d76602c95012fa2f77\r\nMac = 2cba4713\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 204\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 8e0f75b7029d4afc2a86adb4a088b89ef9783965027c1176497ada0fdfd0cd99\r\nMsg = 21cd3ff946e2b3c1c61932205899502852b1333d1c79a3d4e5b6617996ffba17041e5b746ab967fb1632c7be62cbc2bbe60ecd5eec6ca4482424994f9a662cc6\r\nMac = b651d356\r\nResult = P\r\n\r\nCount = 205\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 35b1106d174acce103ecf5801b03d3c10d579c4ee491ebad25fb6f1f1787e0c8\r\nMsg = 960026395d0544975dffaaa2c56db1df5816cd80cde513dc76f6f81d21f15c383c97c7233c9af2423fb28922efed2f69aa47c30de17ae1c5be17acbd0ad6cb8e\r\nMac = 8a8f65a8\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 206\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 71efa75961dfd60ad533082a8cfe111214eb02573adc4591c5d0e961640a3ab2\r\nMsg = 6bafbd22b75e21e1fa5444af283e69d53ac2f0412f717a2153f74eb1c195fc5127d240dbc96d2833c9957920a55c505a016a05e4a7ee549bccdbbf1095502e93\r\nMac = 88fea081\r\nResult = F (1 - Message changed)\r\n\r\nCount = 207\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 11752eb8aeffa364c9947092c1612461cc19b6c3a3ddd1817b5e6f7f3745a942\r\nMsg = 2d9109e7eea21b2615c81c03182ce6033c93783b13d698624392bd2a8a202bd0ffc860f29b31afa2f71c2bb85752c66ce8dbba244671288a4135ffe2e1a0209b\r\nMac = b5a26c1c\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 208\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 279a6c226f6a48f3128626012baaa309d99065a59dc0a4c003a6e94d85e61638\r\nMsg = 9bff96ba07a52d9ea2415283321395cf57cb37c610fad7a482c74de9f5e3d7f520bf73d4a6fc8b5be023d774dd9680b6a7c68139c8a753a80d61c9978a493917\r\nMac = 5e281941\r\nResult = P\r\n\r\nCount = 209\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 0bcdcaa87ddf8bbe6db8411d14bb9064e4a121286cc8a6e97fce1844935f436b\r\nMsg = 3ec0aa8d30d5ed825b77dc7095f421b1e608158797a377ff8bed641bd387832f7c14818cabf9bd5ced6044cdc883ff7296272be693660ab234b2d870ba170131\r\nMac = 1da79d07\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 210\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 1b41d148e3c202d419ce16385139da196dede5be63987e6940a2bae86d62e567\r\nMsg = 13ecd70e2d76dd53a19b2e5fc0afe0c0793577ba8948b7d4ef3ab797a07a37927dbb33a18252b96f40e0f73a8d3298d67a6551f5854eb6a51019531a122ff8ae\r\nMac = 91bd49b2\r\nResult = F (1 - Message changed)\r\n\r\nCount = 211\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = a1ccc9c992c8a307ad39504854456696f8eafd7c8da0c0c53b3a4485570e985e\r\nMsg = f68b0c3b4556c7f8866b3fa873ed2014418d6421d3f224512e5dae8c2d8dd92175e09508acbcc66ae62d536260cf790671ef66a1bded0343ace4117c1b8d7764\r\nMac = b9317feb\r\nResult = P\r\n\r\nCount = 212\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 4d8d0264ae6d8f7a7440dd760e0ded25a3a94cb0491fe81e7b55221ac8ed24f7\r\nMsg = 5faaf6b8ee8ed5b56bfc1a7f886f9f91a6566ceb99c39462ab675a3ae3be98f68787626fdf77e6243c2e96d1396a8a43417b1f6a51f7e5b0ffaeb889bce02c4b\r\nMac = 3f610010\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 213\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = bcf95051ae2ae84ac32a763d5477ccc4659a9ed3e25de5932939826dc90e2464\r\nMsg = fce924dd27db3e07837694c34f576c16084e5b0a254ca3af0582bf6026c73b47973ac924b02992490032cae987a887932539d3fa53cdfff711b03bd11ff464bb\r\nMac = 7b7e89ef\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 214\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 45ce953ad31ee9b53a9c948883bc86f4bbe0f0744085a9943cbad1066cd7b4f3\r\nMsg = edb1aaa7e8ac37bca99ff8eff5516464aa33fc2bebef8a727d43abf971108bc604aef019c3837aa2f3d429f22fda1f305319a70d99ed77f902663298f855316f\r\nMac = cbf4addd\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 215\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = d60841cd71d7227ab56e767817760edba9ce2290f8da504b341ee2c1910b5018\r\nMsg = 365fea641559759d1e5b5581218486318b1c776de812b1aca6a9ba6b1c6e39c5cb6d5a44e3a474f709b8eac457e74f00a43ecd3d060cc7639696bd03730c70e7\r\nMac = 7406f935\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 216\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = d172f991eb697ffdefc57349dadbe51066d2744c39041cd55ca75024eead495d\r\nMsg = 6a91da64812b9bb41a026e727b4f77c384813da2948caed5a9846420c86a26b89f46b2fa6975b95d12452ca69bbfb65bc1c48a79d95c5e69ff4ab7316fe468e8\r\nMac = 6bd82bcc\r\nResult = F (1 - Message changed)\r\n\r\nCount = 217\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = 3725c7905bfaca415908c617b78f8deeeff286e0c2bba268d0de92c7664238a7\r\nMsg = fc4bbe329a86089ebe2a2f3320dad55a9bdac1133dd28ddc9ace9ed665885a2341ea9492d4cf4b7e1d0a95f308a9d613407b35b845cf515bbe7f2f35102d78a3\r\nMac = c8e11823\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 218\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = bb3087d1b5b0f6f14a532c3604c82874fb15e97a4b3883dfc50e71ffe5752d40\r\nMsg = 979a9f96112d1ea95eec2cdfdf48c55114472360aa7de24bb53761013af96b33f02b17ae470fece8aaf649d801b4040b7b5152f58a01e7852f565efc77b5dafe\r\nMac = 66466425\r\nResult = P\r\n\r\nCount = 219\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 4\r\nKey = eeb983439a03ee6a315ebf941e9368f90bb6845b03b31839d72a1946c17d2f19\r\nMsg = 6d5573c9279897d7d1602d8a95c04bb5ca3fad2dbe89a024b3651eb227e73bb559e7c0db08b215fd7efe64afcd24fb155989f2f8965d0e181389e6c4b8e244a9\r\nMac = 7f77d596\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 220\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 6f0353a0ad95df6d3190a251435f62c30ed6b9cc0dd024c3c316565cad83d2e1\r\nMsg = 83011a83db0524628b55589ba0165523ce7c916465eaf185805b97ec7f00fc01b82a3e356a6bbb44f2f8deb6425239ac8e26d4d94871c5cf4fe7017c649672f4\r\nMac = 9e56e4574dd01fe8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 221\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 777a22c5fa2f864a9233587e3e9634172ce25006daacbba97b68e7429c8266a8\r\nMsg = 1f7d58d65c36142620172fda3197d3c629bc7bc584e1aaa0f8b6dd320588becaccc39ad124b515adeb941de49ac31c851c5172c4e1c322e42e13cb5ab7f8db2f\r\nMac = 498dafe2807ba34e\r\nResult = P\r\n\r\nCount = 222\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = e17736560b1a13aa8e536500ea6cdb9a6757309aadf25a6a9189055a309c3f8b\r\nMsg = 1a6b80d506147c3c02c89f50892bd1f04d34f9f21e8307140df43835d17495c56a13be7a045be5441de01d84ea19d579f76e9ffa0f92376b5b13c0eacd3050c9\r\nMac = 52d3fbc6e5821f1d\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 223\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = f31f2fb4b3fd8045b70d34b600a2697cbf7503be0d8cfb5cdc60f9312e3e2695\r\nMsg = 4f43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c11494c31e6098e24225eb676094755c6d7e992ec0c8c1e2608e76a72d79d173a4e07\r\nMac = 71239a4c38fa04b3\r\nResult = F (1 - Message changed)\r\n\r\nCount = 224\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 10a678f591b4d87280f42d77a91635575e2e82ef610a7c9105c3a9418f932c24\r\nMsg = f7b577f1396b23c27eb637e53d3d92460270b001cc612fd3b4d68bcdd09c2d50571ea4350636324cc2428a087e7bd8785f8202791e3c2d2bafe084a1204e34dd\r\nMac = 5b11c1407904c15e\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 225\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = b8728441226558fa9764824597fe254bf8c2623789541feaf6c007efeb0dd2b1\r\nMsg = 80a2be15809f12738f305be3a210ba0c933599c4b24b48257c60e8e3aae189dc6ec58ff1f9085a15405b26a3001a2ff5ff7e1932961490676c6d2cda8417979b\r\nMac = e73ed6c4f81b0ecd\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 226\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 22a877d974cdf4d65bbd77958b2b77fc5ddb33a221aca3ecb6d5ae76596f9db4\r\nMsg = ce2ce41f76ca7477972d38a3e8fad1122db34ee80c379fa01f884cf648d1670445a8bfab8490563438c21537ac2dbfbcd7bb24a132d6973cc62ba14089adf7e5\r\nMac = 0ff91813a56b98dd\r\nResult = F (1 - Message", " changed)\r\n\r\nCount = 227\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 03fa02c4df99b8295f502e3145e2edd3ff16722b87092e708bc8d126cc1ec894\r\nMsg = ec9a9babb68e09c38617c9b16e8a2d92e711030bcda4b9e0ab35c4c2392b41692312dde30c91f32cd39cf5fe15ea0deaf3aa04a8157262acee78d7f94204d93a\r\nMac = e50d9a04f79cf9b4\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 228\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 0e12df1bf17e9645c5507bc2069ca4611dc0488c9996231dbcee1c73393b26c4\r\nMsg = 86814ce4a867f80ce9b618c6aecce37c89851508bbb095c8f7c055f569c47a30f79abe5ec75f12b601298718d6f96ea1c1ebbe7c0cb0b7fb973ec5e6d5c6a713\r\nMac = 05338bce9ed8f495\r\nResult = P\r\n\r\nCount = 229\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 51c88fd98a7d82043a1500fc3d8a66ba7ab7760467c7fd89cfeeb22dd25762a2\r\nMsg = 0e403cff47adee3ec5bb6b178dabfc7d53b60a04eaad33a2fedd9db705358a4c73ab2d982ddbbdc941f1c701d4cac89e5c56fbbe0f4170029ad25e931713ba63\r\nMac = 38c34175627b07e8\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 230\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 0feb23c7e4a19bcbd70bd300d76ec9045d696f8c9687f49ec4154400e231d2f0\r\nMsg = 0330ed97e44e8b15a49f29c72a7997d05d398a9d45dae41a6cc635258beb824362124691e86cb7fea46e4ab85bdf79e4eb30c492770bf6f0c42ea9bde37a0c01\r\nMac = 271a7c2e687d84c5\r\nResult = P\r\n\r\nCount = 231\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 5d649799771f9074d18a2477ccd4d9e136e01451c1eb2e8bb370cb79e0486770\r\nMsg = d715bc0520dbb86543e76fede49dc6be2cce59d3c0db133ff31efcb63a85514fe080da88fa1e788b9e73feb0503c4142bdc67386ac0bacf9311ecada23ca7be8\r\nMac = 42de9f52567b4506\r\nResult = F (1 - Message changed)\r\n\r\nCount = 232\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 4c96d520d8d5a54eb73f8f558e328d1b3e5ba360161fb8444739a40a97a58a1b\r\nMsg = ee409b050346fbd319c8630e4bc9dd6d055355fbb961f018d3fda0c1eea6f61248f43709737fb18d4efc4faf34a96c2f73ece54200367292692e36870a0c94c5\r\nMac = 28610f524d88e727\r\nResult = F (2 - Key or Key2 changed)\r\n\r\nCount = 233\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = b186b9273d8cd77d68c05ec5389b2f6e2f267fe6cd6e7cb35a3233c0dfe0b1f4\r\nMsg = 0df3fc6396f851785fca9aa5ffb0cd98bdecf8bbae4c82641efcb34d319e7643ca9c5e22acbde800e0f700a95685c64ccf399173f9123438dc1181b676490cbf\r\nMac = 8d2f69b44614485a\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 234\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 1b1374648d93aadb186326e4ca2b82fd37f7234712816fe4feb339a3a16880df\r\nMsg = 9a661677f1e07153e1c9c661c91901757f5b4d9938031f01a802773d6a9863b2a169c44be0d4546c4780e828ef37f3b389f84c1a41473131e9c88bcd530c7334\r\nMac = 72838b59593c011c\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 235\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = f70b8a4eee3518bba071af55f25f7b698a5b7dc8865cdaca6d1c7993657acc95\r\nMsg = 795ee1af7504621aac329f5081912de545fa11174f3979b14f11aa30df813a235b467fd8f3a14734fe5ac9e39105dcb25184673885cd19bc70ee5a53dd4e8149\r\nMac = 93542734d6cd43de\r\nResult = P\r\n\r\nCount = 236\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 0c456d199abae4758734f506c4e9ccdb767e4fd156d5a4085726f3938a516d74\r\nMsg = 78f3bf568f1c3f2866eff8a246a70cf0faee4c3078f3fb27c4bdd53312bf50812bac2280118c0396e610b4110a22406084c18283a30ce7c0e49c769817170df9\r\nMac = c4c5be3c94fb7b9c\r\nResult = F (4 - Key or Key1 changed)\r\n\r\nCount = 237\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = 0a8725bd8c8eab9ed52ca47835837b9f00a6c8d834ab17105b01eb4eb30402e7\r\nMsg = d7867ff428c37836161a534d1d697fba43e86b0096c49b63d50afaf06ec772bda86eba7222796f087c5367d1547642b974d041cb496c5cf7984e8e126c9f741e\r\nMac = b5d40f8633965c33\r\nResult = F (3 - MAC changed)\r\n\r\nCount = 238\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = ce9ea80e7fb235486b5f1d0321c68a0e44cd5f15e21f27c402754a2f7c138772\r\nMsg = c246453f5d0f4957e6418b4d17b748f5c30e7ee672b4af2e4e41e145400be94056f4e94768871849fb44c1ee65378fce32d007e0c7ee5635453d4de6b0c2aa4b\r\nMac = 33ae4c66895989ee\r\nResult = F (1 - Message changed)\r\n\r\nCount = 239\r\nKlen = 32 \r\nMlen = 64\r\nTlen = 8\r\nKey = f26fad377bf7d6b35d8ea2e0621b678dad85826fadd3ee684d9215086b77e555\r\nMsg = 63539f949990883ac4f3ef9158b382a30254023c301de9fcd3cd4faa638a0ecb241a2573a9555a5c96da2435aa02c73cfc12c10f84b565bfdea9c6274bb8d67c\r\nMac = 8cda222f03f92913\r\nResult = F (2 - Key or Key2 changed)\r\n", }; -static const size_t kLen35 = 58307; +static const size_t kLen36 = 58307; -static const char *kData35[] = { +static const char *kData36[] = { "# Tests from NIST CAVP SP 800-56A ECCCDH Primitive Test Vectors.\n# http://csrc.nist.gov/groups/STM/cavp/documents/components/ecccdhtestvectors.zip\n#\n# P-521 test vectors were fixed to have the right length.\n\nCurve = P-224\nPrivate = 8346a60fc6f293ca5a0d2af68ba71d1dd389e5e40837942df3e43cbd\nX = 8de2e26adf72c582d6568ef638c4fd59b18da171bdf501f1d929e048\nY = 4a68a1c2b0fb22930d120555c1ece50ea98dea8407f71be36efac0de\nPeerX = af33cd0629bc7e996320a3f40368f74de8704fa37b8fab69abaae280\nPeerY = 882092ccbba7930f419a8a4f9bb16978bbc3838729992559a6f2e2d7\nZ = 7d96f9a3bd3c05cf5cc37feb8b9d5209d5c2597464dec3e9983743e8\n\nCurve = P-224\nPrivate = 043cb216f4b72cdf7629d63720a54aee0c99eb32d74477dac0c2f73d\nX = 2f90f5c8eac9c7decdbb97b6c2f715ab725e4fe40fe6d746efbf4e1b\nY = 66897351454f927a309b269c5a6d31338be4c19a5acfc32cf656f45c\nPeerX = 13bfcd4f8e9442393cab8fb46b9f0566c226b22b37076976f0617a46\nPeerY = eeb2427529b288c63c2f8963c1e473df2fca6caa90d52e2f8db56dd4\nZ = ee93ce06b89ff72009e858c68eb708e7bc79ee0300f73bed69bbca09\n\nCurve = P-224\nPrivate = 5ad0dd6dbabb4f3c2ea5fe32e561b2ca55081486df2c7c15c9622b08\nX = 005bca45d793e7fe99a843704ed838315ab14a5f6277507e9bc37531\nY = 43e9d421e1486ae5893bfd23c210e5c140d7c6b1ada59d842c9a98de\nPeerX = 756dd806b9d9c34d899691ecb45b771af468ec004486a0fdd283411e\nPeerY = 4d02c2ca617bb2c5d9613f25dd72413d229fd2901513aa29504eeefb\nZ = 3fcc01e34d4449da2a974b23fc36f9566754259d39149790cfa1ebd3\n\nCurve = P-224\nPrivate = 0aa6ff55a5d820efcb4e7d10b845ea3c9f9bc5dff86106db85318e22\nX = 2f96754131e0968198aa78fbe8c201dc5f3581c792de487340d32448\nY = 61e8a5cd79615203b6d89e9496f9e236fe3b6be8731e743d615519c6\nPeerX = 0f537bf1c1122c55656d25e8aa8417e0b44b1526ae0523144f9921c4\nPeerY = f79b26d30e491a773696cc2c79b4f0596bc5b9eebaf394d162fb8684\nZ = 49129628b23afcef48139a3f6f59ff5e9811aa746aa4ff33c24bb940\n\nCurve = P-224\nPrivate = efe6e6e25affaf54c98d002abbc6328da159405a1b752e32dc23950a\nX = 355e962920bde043695f6bffb4b355c63da6f5de665ed46f2ec817e2\nY = 748e095368f62e1d364edd461719793b404adbdaacbcadd88922ff37\nPeerX = 2b3631d2b06179b3174a100f7f57131eeea8947be0786c3dc64b2239\nPeerY = 83de29ae3dad31adc0236c6de7f14561ca2ea083c5270c78a2e6cbc0\nZ = fcdc69a40501d308a6839653a8f04309ec00233949522902ffa5eac6\n\nCurve = P-224\nPrivate = 61cb2932524001e5e9eeed6df7d9c8935ee3322029edd7aa8acbfd51\nX = d50e4adabfd989d7dbc7cf4052546cc7c447a97630436997ad4b9536\nY = 5bea503473c5eaef9552d42c40b1f2f7ca292733b255b9bbe1b12337\nPeerX = 4511403de29059f69a475c5a6a5f6cabed5d9f014436a8cb70a02338\nPeerY = 7d2d1b62aa046df9340f9c37a087a06b32cf7f08a223f992812a828b\nZ = 827e9025cb62e0e837c596063f3b9b5a0f7afd8d8783200086d61ec1\n\nCurve = P-224\nPrivate = 8c7ace347171f92def98d845475fc82e1d1496da81ee58f505b985fa\nX = b1a8dcac89aca2799320b451df1c7ff4d97567abb68141c0d95fc2aa\nY = 3524950902b1510bdc987d860afc27ad871ceaea66935abd3c0a99a8\nPeerX = 314a0b26dd31c248845d7cc17b61cad4608259bed85a58d1f1ffd378\nPeerY = 66e4b350352e119eecada382907f3619fd748ea73ae4899dfd496302\nZ = 335ba51228d94acbed851ca7821c801d5cb1c7975d7aa90a7159f8fa\n\nCurve = P-224\nPrivate = 382feb9b9ba10f189d99e71a89cdfe44cb554cec13a212840977fb68\nX = abb6f1e3773ff8fc73aea2a0b107809ce70adcefed6e41fc5cb43045\nY = a963897ae906c10a055eeadb97ffdd6f748d3e5621e5fff304e48ba7\nPeerX = abe6843beec2fd9e5fb64730d0be4d165438ce922ed75dd80b4603e5\nPeerY = 6afe8673a96c4ba9900ad85995e631e436c6cc88a2c2b47b7c4886b8\nZ = 8c2e627594206b34f7356d3426eb3d79f518ef843fbe94014cceace3\n\nCurve = P-224\nPrivate = e0d62035101ef487c485c60fb4500eebe6a32ec64dbe97dbe0232c46\nX = 88537735e9b23e3e0e076f135a82d33f9bffb465f3abce8322a62a62\nY = b4c8c123673197875c0bd14ed097606d330fba2b9200ef65a44764d3\nPeerX = 13cf9d6d2c9aae8274c27d446afd0c888ffdd52ae299a35984d4f527\nPeerY = dcbee75b515751f8ee2ae355e8afd5de21c62a939a6507b538cbc4af\nZ = 632abb662728dbc994508873d5c527ca5ef923c0d31fa6c47ef4c825\n\nCurve = P-224\nPrivate = b96ade5b73ba72aa8b6e4d74d7bf9c58e962ff78eb542287c7b44ba2\nX = 37682926a54f70a4c1748f54d50d5b00138a055f924f2c65e5b0bbe4\nY = 596afefcdd640d29635015b89bdddd1f8c2723686d332e7a06ca8799\nPeerX = 965b637c0dfbc0cf954035686d70f7ec30929e664e521dbaa2280659\nPeerY = 82a58ff61bc90019bbcbb5875d3863db0bc2a1fa34b0ad4de1a83f99\nZ = 34641141aab05ef58bd376d609345901fb8f63477c6be9097f037f1f\n\nCurve = P-224\nPrivate = a40d7e12049c71e6522c7ff2384224061c3a457058b310557655b854\nX = 399801243bfe0c2da9b0a53c8ca57f2eee87aaa94a8e4d5e029f42ca\nY = aa49e6d4b47cee7a5c4ab71d5a67da84e0b9b425ce3e70da68c889e7\nPeerX = 73cc645372ca2e71637cda943d8148f3382ab6dd0f2e1a49da94e134\nPeerY = df5c355c23e6e232ebc3bee2ab1873ee0d83e3382f8e6fe613f6343c\nZ = 4f74ac8507501a32bfc5a78d8271c200e835966e187e8d00011a8c75\n\nCurve = P-224\nPrivate = ad2519bc724d484e02a69f05149bb047714bf0f5986fac2e222cd946\nX = df9c1e0ef15e53b9f626e2be1cbe893639c06f3e0439ee95d7d4b1e3\nY = 7a52a7386adda243efdf8941085c84e31239cab92b8017336748965e\nPeerX = 546578216250354e449e21546dd11cd1c5174236739acad9ce0f4512\nPeerY = d2a22fcd66d1abedc767668327c5cb9c599043276239cf3c8516af24\nZ = ad09c9ae4d2324ea81bb555b200d3c003e22a6870ee03b52df49e4de\n\nCurve = P-224\nPrivate = 3d312a9b9d8ed09140900bbac1e095527ebc9e3c6493bcf3666e3a29\nX = b4a0198dc8810e884425b750928b0c960c31f7a99663400b01a179df\nY = 812b601bfc0738242c6f86f830f27acd632ca618a0b5280c9d5769f7\nPeerX = 1d46b1dc3a28123cb51346e67baec56404868678faf7d0e8b2afa22a\nPeerY = 0ec9e65ec97e218373e7fc115c2274d5b829a60d93f71e01d58136c3\nZ = ef029c28c68064b8abd2965a38c404fb5e944ace57e8638daba9d3cd\n\nCurve = P-224\nPrivate = 8ce0822dc24c153995755ac350737ef506641c7d752b4f9300c612ed\nX = 00dfc7ec137690cd6d12fdb2fd0b8c5314582108769c2b722ffb3958\nY = 5eef3da4ba458127346bb64023868bddb7558a2ecfc813645f4ce9fe\nPeerX = 266d038cc7a4fe21f6c976318e827b82bb5b8f7443a55298136506e0\nPeerY = df123d98a7a20bbdf3943df2e3563422f8c0cf74d53aaabdd7c973ba\nZ = f83c16661dfcbad021cc3b5a5af51d9a18db4653866b3ff90787ce3e\n\nCurve = P-224\nPrivate = 0ff9b485325ab77f29e7bc379fed74bfac859482da0dee7528c19db2\nX = 7e603e6976db83c36011508fa695d1b515249e2e54b48fcbcfb90247\nY = 0179a600ce86adfca9b1b931fa5173d618da09e841803d19b0264286\nPeerX = eb0a09f7a1c236a61f595809ec5670efd92e4598d5e613e092cdfdca\nPeerY = 50787ae2f2f15b88bc10f7b5f0aee1418373f16153aebd1fba54288d\nZ = f51258c63f232e55a66aa25ebd597b2018d1052c02eeb63866758005\n\nCurve = P-224\nPrivate = 19cf5ff6306467f28b9fe0675a43c0582552c8c12e59ce7c38f292b1\nX = fc20e906e609c112cfc2e0fea6303882c5db94e87e022373ab2c082a\nY = aecdf1daa71782bc5a26bbbd8d7e8a76490e26abc17dffc774bd7341\nPeerX = 6b2f6b18a587f562ffc61bd9b0047322286986a78f1fd139b84f7c24\nPeerY = 7096908e4615266be59a53cd655515056ff92370a6271a5d3823d704\nZ = 7fdc969a186ff18429f2a276dac43beea21182d82ce2e5a0876552b1\n\nCurve = P-224\nPrivate = 90a15368e3532c0b1e51e55d139447c2c89bc160719d697291ea7c14\nX = c6837d506e976da7db3ad1267c359dff2ea6fb0b7f7f8e77024c59e9\nY = 67eb491d2fc8a530c46525d2a8b2d7c1df5fba1ae740a4649c683ee6\nPeerX = 328101ba826acd75ff9f34d5574ce0dbc92f709bad8d7a33c47940c1\nPeerY = df39f1ea88488c55d5538160878b9ced18a887ea261dd712d14024ff\nZ = 3d60ab6db2b3ffe2d29ccff46d056e54230cf34982e241556ed2920c\n\nCurve = P-224\nPrivate = 8e0838e05e1721491067e1cabc2e8051b290e2616eec427b7121897d\nX = e9150f770075626019e18f95473b71e6828041791d3f08d3faeeaa2b\nY = 475f70735eaae52308a3b763dc88efe18ab590ebafa035f6e08b001c\nPeerX = 0081e34270871e2ebbd94183f617b4ae15f0416dd634fe6e934cf3c0\nPeerY = 3a1e9f38a7b90b7317d26b9f6311063ab58b268cf489b2e50386d5d6\nZ = 9116d72786f4db5df7a8b43078c6ab9160d423513d35ea5e2559306d\n\nCurve = P-224\nPrivate = 38106e93f16a381adb1d72cee3da66ae462ad4bbfea9ecdf35d0814e\nX = 7be6c4c917829ab657dd79e8637d7aefd2f81f0de7654d957e97658d\nY = 430d22d9e8438310f61e0d43f25fa3e34585f432baad27db3021bf0d\nPeerX = 2623632fdf0bd856805a69aa186d4133ef5904e1f655a972d66cce07\nPeerY = 2cef9728dd06fb8b50150f529b695076d4507983912585c89bd0682e\nZ = 207c53dcefac789aaa0276d9200b3a940ce5f2296f4cb2e81a185d3d\n\nCurve = P-224\nPrivate = e5d1718431cf50f6cbd1bc8019fa16762dfa12c989e5999977fb4ea2\nX = 2ea4966e7f92ed7f5cc61fde792045f63b731d6e7d0de2577f2d8ece\nY = 1c4a7b1ede6f839162292df424be78e8176fb6f942a3c02391700f31\nPeerX = 8ee4d1dcc31dee4bf6fe21ca8a587721d910acfb122c16c2a77a8152\nPeerY = 4ebf323fff04eb477069a0ac68b345f6b1ae134efc31940e513cb99f\nZ = 10e467da34f48ad7072005bccd6da1b2ba3f71eafa1c393842f91d74\n\nCurve = P-224\nPrivate = 3d635691b62a9a927c633951c9369c8862bd2119d30970c2644727d6\nX =", " 438bbb980517afb20be1d674e3ac2b31cef07a9b23fb8f6e38e0d6c0\nY = 0be5f1c47d58d21b6ed28423b32f5a94750da47edcef33ea79942afd\nPeerX = 97dcbe6d28335882a6d193cc54a1063dd0775dc328565300bb99e691\nPeerY = dad11dd5ece8cfd9f97c9a526e4a1506e6355969ee87826fc38bcd24\nZ = 82fd2f9c60c4f999ac00bbe64bfc11da8ff8cda2e499fced65230bb1\n\nCurve = P-224\nPrivate = acf3c85bbdc379f02f5ea36e7f0f53095a9e7046a28685a8659bf798\nX = ff7511215c71d796bd646e8474be4416b91684ce0d269ef6f422013b\nY = b7bf5e79b5a9393bb9ea42c0bdb2d3c2dc806e1a7306aa58e4fdbea5\nPeerX = ce9126dd53972dea1de1d11efef900de34b661859c4648c5c0e534f7\nPeerY = e113b6f2c1659d07f2716e64a83c18bbce344dd2121fe85168eae085\nZ = 530f7e7fc932613b29c981f261cb036cba3f1df3864e0e1cba2685a2\n\nCurve = P-224\nPrivate = cffd62cb00a0e3163fbf2c397fadc9618210f86b4f54a675287305f0\nX = 04bf4d948f4430d18b4ed6c96dbaf981fa11a403ed16887f06754981\nY = 7c1326a9cef51f79d4e78303d6064b459f612584ac2fdf593d7d5d84\nPeerX = 84419967d6cfad41e75a02b6da605a97949a183a97c306c4b46e66a5\nPeerY = 5cc9b259718b1bc8b144fde633a894616ffd59a3a6d5d8e942c7cbb7\nZ = 49f6fd0139248ef4df2db05d1319bd5b1489e249827a45a8a5f12427\n\nCurve = P-224\nPrivate = 85f903e43943d13c68932e710e80de52cbc0b8f1a1418ea4da079299\nX = 970a4a7e01d4188497ceb46955eb1b842d9085819a9b925c84529d3d\nY = dfa2526480f833ea0edbd204e4e365fef3472888fe7d9691c3ebc09f\nPeerX = 7c9cac35768063c2827f60a7f51388f2a8f4b7f8cd736bd6bc337477\nPeerY = 29ee6b849c6025d577dbcc55fbd17018f4edbc2ef105b004d6257bcd\nZ = 8f7e34e597ae8093b98270a74a8dfcdbed457f42f43df487c5487161\n\nCurve = P-224\nPrivate = cce64891a3d0129fee0d4a96cfbe7ac470b85e967529057cfa31a1d9\nX = a6b29632db94da2125dc1cf80e03702687b2acc1122022fa2174765a\nY = 61723edd73e10daed73775278f1958ba56f1fc9d085ebc2b64c84fe5\nPeerX = 085a7642ad8e59b1a3e8726a7547afbecffdac1dab7e57230c6a9df4\nPeerY = f91c36d881fe9b8047a3530713554a1af4c25c5a8e654dcdcf689f2e\nZ = 71954e2261e8510be1a060733671d2e9d0a2d012eb4e09556d697d2a\n\nCurve = P-256\nPrivate = 7d7dc5f71eb29ddaf80d6214632eeae03d9058af1fb6d22ed80badb62bc1a534\nX = ead218590119e8876b29146ff89ca61770c4edbbf97d38ce385ed281d8a6b230\nY = 28af61281fd35e2fa7002523acc85a429cb06ee6648325389f59edfce1405141\nPeerX = 700c48f77f56584c5cc632ca65640db91b6bacce3a4df6b42ce7cc838833d287\nPeerY = db71e509e3fd9b060ddb20ba5c51dcc5948d46fbf640dfe0441782cab85fa4ac\nZ = 46fc62106420ff012e54a434fbdd2d25ccc5852060561e68040dd7778997bd7b\n\nCurve = P-256\nPrivate = 38f65d6dce47676044d58ce5139582d568f64bb16098d179dbab07741dd5caf5\nX = 119f2f047902782ab0c9e27a54aff5eb9b964829ca99c06b02ddba95b0a3f6d0\nY = 8f52b726664cac366fc98ac7a012b2682cbd962e5acb544671d41b9445704d1d\nPeerX = 809f04289c64348c01515eb03d5ce7ac1a8cb9498f5caa50197e58d43a86a7ae\nPeerY = b29d84e811197f25eba8f5194092cb6ff440e26d4421011372461f579271cda3\nZ = 057d636096cb80b67a8c038c890e887d1adfa4195e9b3ce241c8a778c59cda67\n\nCurve = P-256\nPrivate = 1accfaf1b97712b85a6f54b148985a1bdc4c9bec0bd258cad4b3d603f49f32c8\nX = d9f2b79c172845bfdb560bbb01447ca5ecc0470a09513b6126902c6b4f8d1051\nY = f815ef5ec32128d3487834764678702e64e164ff7315185e23aff5facd96d7bc\nPeerX = a2339c12d4a03c33546de533268b4ad667debf458b464d77443636440ee7fec3\nPeerY = ef48a3ab26e20220bcda2c1851076839dae88eae962869a497bf73cb66faf536\nZ = 2d457b78b4614132477618a5b077965ec90730a8c81a1c75d6d4ec68005d67ec\n\nCurve = P-256\nPrivate = 207c43a79bfee03db6f4b944f53d2fb76cc49ef1c9c4d34d51b6c65c4db6932d\nX = 24277c33f450462dcb3d4801d57b9ced05188f16c28eda873258048cd1607e0d\nY = c4789753e2b1f63b32ff014ec42cd6a69fac81dfe6d0d6fd4af372ae27c46f88\nPeerX = df3989b9fa55495719b3cf46dccd28b5153f7808191dd518eff0c3cff2b705ed\nPeerY = 422294ff46003429d739a33206c8752552c8ba54a270defc06e221e0feaf6ac4\nZ = 96441259534b80f6aee3d287a6bb17b5094dd4277d9e294f8fe73e48bf2a0024\n\nCurve = P-256\nPrivate = 59137e38152350b195c9718d39673d519838055ad908dd4757152fd8255c09bf\nX = a8c5fdce8b62c5ada598f141adb3b26cf254c280b2857a63d2ad783a73115f6b\nY = 806e1aafec4af80a0d786b3de45375b517a7e5b51ffb2c356537c9e6ef227d4a\nPeerX = 41192d2813e79561e6a1d6f53c8bc1a433a199c835e141b05a74a97b0faeb922\nPeerY = 1af98cc45e98a7e041b01cf35f462b7562281351c8ebf3ffa02e33a0722a1328\nZ = 19d44c8d63e8e8dd12c22a87b8cd4ece27acdde04dbf47f7f27537a6999a8e62\n\nCurve = P-256\nPrivate = f5f8e0174610a661277979b58ce5c90fee6c9b3bb346a90a7196255e40b132ef\nX = 7b861dcd2844a5a8363f6b8ef8d493640f55879217189d80326aad9480dfc149\nY = c4675b45eeb306405f6c33c38bc69eb2bdec9b75ad5af4706aab84543b9cc63a\nPeerX = 33e82092a0f1fb38f5649d5867fba28b503172b7035574bf8e5b7100a3052792\nPeerY = f2cf6b601e0a05945e335550bf648d782f46186c772c0f20d3cd0d6b8ca14b2f\nZ = 664e45d5bba4ac931cd65d52017e4be9b19a515f669bea4703542a2c525cd3d3\n\nCurve = P-256\nPrivate = 3b589af7db03459c23068b64f63f28d3c3c6bc25b5bf76ac05f35482888b5190\nX = 9fb38e2d58ea1baf7622e96720101cae3cde4ba6c1e9fa26d9b1de0899102863\nY = d5561b900406edf50802dd7d73e89395f8aed72fba0e1d1b61fe1d22302260f0\nPeerX = 6a9e0c3f916e4e315c91147be571686d90464e8bf981d34a90b6353bca6eeba7\nPeerY = 40f9bead39c2f2bcc2602f75b8a73ec7bdffcbcead159d0174c6c4d3c5357f05\nZ = ca342daa50dc09d61be7c196c85e60a80c5cb04931746820be548cdde055679d\n\nCurve = P-256\nPrivate = d8bf929a20ea7436b2461b541a11c80e61d826c0a4c9d322b31dd54e7f58b9c8\nX = 20f07631e4a6512a89ad487c4e9d63039e579cb0d7a556cb9e661cd59c1e7fa4\nY = 6de91846b3eee8a5ec09c2ab1f41e21bd83620ccdd1bdce3ab7ea6e02dd274f5\nPeerX = a9c0acade55c2a73ead1a86fb0a9713223c82475791cd0e210b046412ce224bb\nPeerY = f6de0afa20e93e078467c053d241903edad734c6b403ba758c2b5ff04c9d4229\nZ = 35aa9b52536a461bfde4e85fc756be928c7de97923f0416c7a3ac8f88b3d4489\n\nCurve = P-256\nPrivate = 0f9883ba0ef32ee75ded0d8bda39a5146a29f1f2507b3bd458dbea0b2bb05b4d\nX = abb61b423be5d6c26e21c605832c9142dc1dfe5a5fff28726737936e6fbf516d\nY = 733d2513ef58beab202090586fac91bf0fee31e80ab33473ab23a2d89e58fad6\nPeerX = 94e94f16a98255fff2b9ac0c9598aac35487b3232d3231bd93b7db7df36f9eb9\nPeerY = d8049a43579cfa90b8093a94416cbefbf93386f15b3f6e190b6e3455fedfe69a\nZ = 605c16178a9bc875dcbff54d63fe00df699c03e8a888e9e94dfbab90b25f39b4\n\nCurve = P-256\nPrivate = 2beedb04b05c6988f6a67500bb813faf2cae0d580c9253b6339e4a3337bb6c08\nX = 3d63e429cb5fa895a9247129bf4e48e89f35d7b11de8158efeb3e106a2a87395\nY = 0cae9e477ef41e7c8c1064379bb7b554ddcbcae79f9814281f1e50f0403c61f3\nPeerX = e099bf2a4d557460b5544430bbf6da11004d127cb5d67f64ab07c94fcdf5274f\nPeerY = d9c50dbe70d714edb5e221f4e020610eeb6270517e688ca64fb0e98c7ef8c1c5\nZ = f96e40a1b72840854bb62bc13c40cc2795e373d4e715980b261476835a092e0b\n\nCurve = P-256\nPrivate = 77c15dcf44610e41696bab758943eff1409333e4d5a11bbe72c8f6c395e9f848\nX = ad5d13c3db508ddcd38457e5991434a251bed49cf5ddcb59cdee73865f138c9f\nY = 62cec1e70588aa4fdfc7b9a09daa678081c04e1208b9d662b8a2214bf8e81a21\nPeerX = f75a5fe56bda34f3c1396296626ef012dc07e4825838778a645c8248cff01658\nPeerY = 33bbdf1b1772d8059df568b061f3f1122f28a8d819167c97be448e3dc3fb0c3c\nZ = 8388fa79c4babdca02a8e8a34f9e43554976e420a4ad273c81b26e4228e9d3a3\n\nCurve = P-256\nPrivate = 42a83b985011d12303db1a800f2610f74aa71cdf19c67d54ce6c9ed951e9093e\nX = ab48caa61ea35f13f8ed07ffa6a13e8db224dfecfae1a7df8b1bb6ebaf0cb97d\nY = 1274530ca2c385a3218bddfbcbf0b4024c9badd5243bff834ebff24a8618dccb\nPeerX = 2db4540d50230756158abf61d9835712b6486c74312183ccefcaef2797b7674d\nPeerY = 62f57f314e3f3495dc4e099012f5e0ba71770f9660a1eada54104cdfde77243e\nZ = 72877cea33ccc4715038d4bcbdfe0e43f42a9e2c0c3b017fc2370f4b9acbda4a\n\nCurve = P-256\nPrivate = ceed35507b5c93ead5989119b9ba342cfe38e6e638ba6eea343a55475de2800b\nX = 9a8cd9bd72e71752df91440f77c547509a84df98114e7de4f26cdb39234a625d\nY = d07cfc84c8e144fab2839f5189bb1d7c88631d579bbc58012ed9a2327da52f62\nPeerX = cd94fc9497e8990750309e9a8534fd114b0a6e54da89c4796101897041d14ecb\nPeerY = c3def4b5fe04faee0a11932229fff563637bfdee0e79c6deeaf449f85401c5c4\nZ = e4e7408d85ff0e0e9c838003f28cdbd5247cdce31f32f62494b70e5f1bc36307\n\nCurve = P-256\nPrivate = 43e0e9d95af4dc36483cdd1968d2b7eeb8611fcce77f3a4e7d059ae43e509604\nX = f989cf8ee956a82e7ebd9881cdbfb2fd946189b08db53559bc8cfdd48071eb14\nY = 5eff28f1a18a616b04b7d337868679f6dd84f9a7b3d7b6f8af276c19611a541d\nPeerX = 15b9e467af4d290c417402e040426fe4cf236bae72baa392ed89780dfccdb471\nPeerY = cdf4e9170fb904302b8fd93a820ba8cc7ed4efd3a6f2d6b05b80b2ff2aee4e77\nZ = ed56bcf695b734142c24ecb1fc1bb64d08f175eb243a31f37b3d9bb4407f3b96\n\nCurve = P-256\nPrivate = b2f3600df3368ef8a0bb85ab22f41fc0e5f4fdd54be8167a5c3cd4b08db04903\nX = 69c627", "625b36a429c398b45c38677cb35d8beb1cf78a571e40e99fe4eac1cd4e\nY = 81690112b0a88f20f7136b28d7d47e5fbc2ada3c8edd87589bc19ec9590637bd\nPeerX = 49c503ba6c4fa605182e186b5e81113f075bc11dcfd51c932fb21e951eee2fa1\nPeerY = 8af706ff0922d87b3f0c5e4e31d8b259aeb260a9269643ed520a13bb25da5924\nZ = bc5c7055089fc9d6c89f83c1ea1ada879d9934b2ea28fcf4e4a7e984b28ad2cf\n\nCurve = P-256\nPrivate = 4002534307f8b62a9bf67ff641ddc60fef593b17c3341239e95bdb3e579bfdc8\nX = 5fe964671315a18aa68a2a6e3dd1fde7e23b8ce7181471cfac43c99e1ae80262\nY = d5827be282e62c84de531b963884ba832db5d6b2c3a256f0e604fe7e6b8a7f72\nPeerX = 19b38de39fdd2f70f7091631a4f75d1993740ba9429162c2a45312401636b29c\nPeerY = 09aed7232b28e060941741b6828bcdfa2bc49cc844f3773611504f82a390a5ae\nZ = 9a4e8e657f6b0e097f47954a63c75d74fcba71a30d83651e3e5a91aa7ccd8343\n\nCurve = P-256\nPrivate = 4dfa12defc60319021b681b3ff84a10a511958c850939ed45635934ba4979147\nX = c9b2b8496f1440bd4a2d1e52752fd372835b364885e154a7dac49295f281ec7c\nY = fbe6b926a8a4de26ccc83b802b1212400754be25d9f3eeaf008b09870ae76321\nPeerX = 2c91c61f33adfe9311c942fdbff6ba47020feff416b7bb63cec13faf9b099954\nPeerY = 6cab31b06419e5221fca014fb84ec870622a1b12bab5ae43682aa7ea73ea08d0\nZ = 3ca1fc7ad858fb1a6aba232542f3e2a749ffc7203a2374a3f3d3267f1fc97b78\n\nCurve = P-256\nPrivate = 1331f6d874a4ed3bc4a2c6e9c74331d3039796314beee3b7152fcdba5556304e\nX = 59e1e101521046ad9cf1d082e9d2ec7dd22530cce064991f1e55c5bcf5fcb591\nY = 482f4f673176c8fdaa0bb6e59b15a3e47454e3a04297d3863c9338d98add1f37\nPeerX = a28a2edf58025668f724aaf83a50956b7ac1cfbbff79b08c3bf87dfd2828d767\nPeerY = dfa7bfffd4c766b86abeaf5c99b6e50cb9ccc9d9d00b7ffc7804b0491b67bc03\nZ = 1aaabe7ee6e4a6fa732291202433a237df1b49bc53866bfbe00db96a0f58224f\n\nCurve = P-256\nPrivate = dd5e9f70ae740073ca0204df60763fb6036c45709bf4a7bb4e671412fad65da3\nX = 30b9db2e2e977bcdc98cb87dd736cbd8e78552121925cf16e1933657c2fb2314\nY = 6a45028800b81291bce5c2e1fed7ded650620ebbe6050c6f3a7f0dfb4673ab5c\nPeerX = a2ef857a081f9d6eb206a81c4cf78a802bdf598ae380c8886ecd85fdc1ed7644\nPeerY = 563c4c20419f07bc17d0539fade1855e34839515b892c0f5d26561f97fa04d1a\nZ = 430e6a4fba4449d700d2733e557f66a3bf3d50517c1271b1ddae1161b7ac798c\n\nCurve = P-256\nPrivate = 5ae026cfc060d55600717e55b8a12e116d1d0df34af831979057607c2d9c2f76\nX = 46c9ebd1a4a3c8c0b6d572b5dcfba12467603208a9cb5d2acfbb733c40cf6391\nY = 46c913a27d044185d38b467ace011e04d4d9bbbb8cb9ae25fa92aaf15a595e86\nPeerX = ccd8a2d86bc92f2e01bce4d6922cf7fe1626aed044685e95e2eebd464505f01f\nPeerY = e9ddd583a9635a667777d5b8a8f31b0f79eba12c75023410b54b8567dddc0f38\nZ = 1ce9e6740529499f98d1f1d71329147a33df1d05e4765b539b11cf615d6974d3\n\nCurve = P-256\nPrivate = b601ac425d5dbf9e1735c5e2d5bdb79ca98b3d5be4a2cfd6f2273f150e064d9d\nX = 7c9e950841d26c8dde8994398b8f5d475a022bc63de7773fcf8d552e01f1ba0a\nY = cc42b9885c9b3bee0f8d8c57d3a8f6355016c019c4062fa22cff2f209b5cc2e1\nPeerX = c188ffc8947f7301fb7b53e36746097c2134bf9cc981ba74b4e9c4361f595e4e\nPeerY = bf7d2f2056e72421ef393f0c0f2b0e00130e3cac4abbcc00286168e85ec55051\nZ = 4690e3743c07d643f1bc183636ab2a9cb936a60a802113c49bb1b3f2d0661660\n\nCurve = P-256\nPrivate = fefb1dda1845312b5fce6b81b2be205af2f3a274f5a212f66c0d9fc33d7ae535\nX = 38b54db85500cb20c61056edd3d88b6a9dc26780a047f213a6e1b900f76596eb\nY = 6387e4e5781571e4eb8ae62991a33b5dc33301c5bc7e125d53794a39160d8fd0\nPeerX = 317e1020ff53fccef18bf47bb7f2dd7707fb7b7a7578e04f35b3beed222a0eb6\nPeerY = 09420ce5a19d77c6fe1ee587e6a49fbaf8f280e8df033d75403302e5a27db2ae\nZ = 30c2261bd0004e61feda2c16aa5e21ffa8d7e7f7dbf6ec379a43b48e4b36aeb0\n\nCurve = P-256\nPrivate = 334ae0c4693d23935a7e8e043ebbde21e168a7cba3fa507c9be41d7681e049ce\nX = 3f2bf1589abf3047bf3e54ac9a95379bff95f8f55405f64eca36a7eebe8ffca7\nY = 5212a94e66c5ae9a8991872f66a72723d80ec5b2e925745c456f5371943b3a06\nPeerX = 45fb02b2ceb9d7c79d9c2fa93e9c7967c2fa4df5789f9640b24264b1e524fcb1\nPeerY = 5c6e8ecf1f7d3023893b7b1ca1e4d178972ee2a230757ddc564ffe37f5c5a321\nZ = 2adae4a138a239dcd93c243a3803c3e4cf96e37fe14e6a9b717be9599959b11c\n\nCurve = P-256\nPrivate = 2c4bde40214fcc3bfc47d4cf434b629acbe9157f8fd0282540331de7942cf09d\nX = 29c0807f10cbc42fb45c9989da50681eead716daa7b9e91fd32e062f5eb92ca0\nY = ff1d6d1955d7376b2da24fe1163a271659136341bc2eb1195fc706dc62e7f34d\nPeerX = a19ef7bff98ada781842fbfc51a47aff39b5935a1c7d9625c8d323d511c92de6\nPeerY = e9c184df75c955e02e02e400ffe45f78f339e1afe6d056fb3245f4700ce606ef\nZ = 2e277ec30f5ea07d6ce513149b9479b96e07f4b6913b1b5c11305c1444a1bc0b\n\nCurve = P-256\nPrivate = 85a268f9d7772f990c36b42b0a331adc92b5941de0b862d5d89a347cbf8faab0\nX = 9cf4b98581ca1779453cc816ff28b4100af56cf1bf2e5bc312d83b6b1b21d333\nY = 7a5504fcac5231a0d12d658218284868229c844a04a3450d6c7381abe080bf3b\nPeerX = 356c5a444c049a52fee0adeb7e5d82ae5aa83030bfff31bbf8ce2096cf161c4b\nPeerY = 57d128de8b2a57a094d1a001e572173f96e8866ae352bf29cddaf92fc85b2f92\nZ = 1e51373bd2c6044c129c436e742a55be2a668a85ae08441b6756445df5493857\n\nCurve = P-384\nPrivate = 3cc3122a68f0d95027ad38c067916ba0eb8c38894d22e1b15618b6818a661774ad463b205da88cf699ab4d43c9cf98a1\nX = 9803807f2f6d2fd966cdd0290bd410c0190352fbec7ff6247de1302df86f25d34fe4a97bef60cff548355c015dbb3e5f\nY = ba26ca69ec2f5b5d9dad20cc9da711383a9dbe34ea3fa5a2af75b46502629ad54dd8b7d73a8abb06a3a3be47d650cc99\nPeerX = a7c76b970c3b5fe8b05d2838ae04ab47697b9eaf52e764592efda27fe7513272734466b400091adbf2d68c58e0c50066\nPeerY = ac68f19f2e1cb879aed43a9969b91a0839c4c38a49749b661efedf243451915ed0905a32b060992b468c64766fc8437a\nZ = 5f9d29dc5e31a163060356213669c8ce132e22f57c9a04f40ba7fcead493b457e5621e766c40a2e3d4d6a04b25e533f1\n\nCurve = P-384\nPrivate = 92860c21bde06165f8e900c687f8ef0a05d14f290b3f07d8b3a8cc6404366e5d5119cd6d03fb12dc58e89f13df9cd783\nX = ea4018f5a307c379180bf6a62fd2ceceebeeb7d4df063a66fb838aa35243419791f7e2c9d4803c9319aa0eb03c416b66\nY = 68835a91484f05ef028284df6436fb88ffebabcdd69ab0133e6735a1bcfb37203d10d340a8328a7b68770ca75878a1a6\nPeerX = 30f43fcf2b6b00de53f624f1543090681839717d53c7c955d1d69efaf0349b7363acb447240101cbb3af6641ce4b88e0\nPeerY = 25e46c0c54f0162a77efcc27b6ea792002ae2ba82714299c860857a68153ab62e525ec0530d81b5aa15897981e858757\nZ = a23742a2c267d7425fda94b93f93bbcc24791ac51cd8fd501a238d40812f4cbfc59aac9520d758cf789c76300c69d2ff\n\nCurve = P-384\nPrivate = 12cf6a223a72352543830f3f18530d5cb37f26880a0b294482c8a8ef8afad09aa78b7dc2f2789a78c66af5d1cc553853\nX = fcfcea085e8cf74d0dced1620ba8423694f903a219bbf901b0b59d6ac81baad316a242ba32bde85cb248119b852fab66\nY = 972e3c68c7ab402c5836f2a16ed451a33120a7750a6039f3ff15388ee622b7065f7122bf6d51aefbc29b37b03404581b\nPeerX = 1aefbfa2c6c8c855a1a216774550b79a24cda37607bb1f7cc906650ee4b3816d68f6a9c75da6e4242cebfb6652f65180\nPeerY = 419d28b723ebadb7658fcebb9ad9b7adea674f1da3dc6b6397b55da0f61a3eddacb4acdb14441cb214b04a0844c02fa3\nZ = 3d2e640f350805eed1ff43b40a72b2abed0a518bcebe8f2d15b111b6773223da3c3489121db173d414b5bd5ad7153435\n\nCurve = P-384\nPrivate = 8dd48063a3a058c334b5cc7a4ce07d02e5ee6d8f1f3c51a1600962cbab462690ae3cd974fb39e40b0e843daa0fd32de1\nX = e38c9846248123c3421861ea4d32669a7b5c3c08376ad28104399494c84ff5efa3894adb2c6cbe8c3c913ef2eec5bd3c\nY = 9fa84024a1028796df84021f7b6c9d02f0f4bd1a612a03cbf75a0beea43fef8ae84b48c60172aadf09c1ad016d0bf3ce\nPeerX = 8bc089326ec55b9cf59b34f0eb754d93596ca290fcb3444c83d4de3a5607037ec397683f8cef07eab2fe357eae36c449\nPeerY = d9d16ce8ac85b3f1e94568521aae534e67139e310ec72693526aa2e927b5b322c95a1a033c229cb6770c957cd3148dd7\nZ = 6a42cfc392aba0bfd3d17b7ccf062b91fc09bbf3417612d02a90bdde62ae40c54bb2e56e167d6b70db670097eb8db854\n\nCurve = P-384\nPrivate = 84ece6cc3429309bd5b23e959793ed2b111ec5cb43b6c18085fcaea9efa0685d98a6262ee0d330ee250bc8a67d0e733f\nX = 3222063a2997b302ee60ee1961108ff4c7acf1c0ef1d5fb0d164b84bce71c431705cb9aea9a45f5d73806655a058bee3\nY = e61fa9e7fbe7cd43abf99596a3d3a039e99fa9dc93b0bdd9cad81966d17eeaf557068afa7c78466bb5b22032d1100fa6\nPeerX = eb952e2d9ac0c20c6cc48fb225c2ad154f53c8750b003fd3b4ed8ed1dc0defac61bcdde02a2bcfee7067d75d342ed2b0\nPeerY = f1828205baece82d1b267d0d7ff2f9c9e15b69a72df47058a97f3891005d1fb38858f5603de840e591dfa4f6e7d489e1\nZ = ce7ba454d4412729a32bb833a2d1fd2ae612d4667c3a900e069214818613447df8c611de66da200db7c375cf913e4405\n\nCurve = P-384\nPrivate = 68fce2121dc3a1e37b10f1dde309f9e2e18fac47cd1770951451c3484cdb77cb136d00e731260597cc2859601c01a25b\nX = 868be0e694841830e424d913d8e7d86b84ee1021d82b0ecf523f09fe89a76c0c95c49f2dfbcf829c1e39709d55efbb3b\nY = 9195eb183675b40fd", @@ -2475,40 +2555,40 @@ static const char *kData35[] = { "fd3e0faceb636b34ed17e044a9f249dae8fc132e937e2d9349cd2ed77bb1049ceb692a2ec5b17ad61502a64c\nY = 001ec91d3058573fa6c0564a02a1a010160c313bc7c73510dc983e5461682b5be00dbce7e2c682ad73f29ca822cdc111f68fabe33a7b384a648342c3cdb9f050bcdb\nPeerX = 017200b3f16a68cbaed2bf78ba8cddfb6cffac262bba00fbc25f9dc72a07ce59372904899f364c44cb264c097b647d4412bee3e519892d534d9129f8a28f7500fee7\nPeerY = 00baba8d672a4f4a3b63de48b96f56e18df5d68f7d70d5109833f43770d6732e06b39ad60d93e5b43db8789f1ec0aba47286a39ea584235acea757dbf13d53b58364\nZ = 0101e462e9d9159968f6440e956f11dcf2227ae4aea81667122b6af9239a291eb5d6cf5a4087f358525fcacfa46bb2db01a75af1ba519b2d31da33eda87a9d565748\n\nCurve = P-521\nPrivate = 005bacfff268acf6553c3c583b464ea36a1d35e2b257a5d49eb3419d5a095087c2fb4d15cf5bf5af816d0f3ff7586490ccd3ddc1a98b39ce63749c6288ce0dbdac7d\nX = 0036e488da7581472a9d8e628c58d6ad727311b7e6a3f6ae33a8544f34b09280249020be7196916fafd90e2ec54b66b5468d2361b99b56fa00d7ac37abb8c6f16653\nY = 011edb9fb8adb6a43f4f5f5fdc1421c9fe04fc8ba46c9b66334e3af927c8befb4307104f299acec4e30f812d9345c9720d19869dbfffd4ca3e7d2713eb5fc3f42615\nPeerX = 004efd5dbd2f979e3831ce98f82355d6ca14a5757842875882990ab85ab9b7352dd6b9b2f4ea9a1e95c3880d65d1f3602f9ca653dc346fac858658d75626f4d4fb08\nPeerY = 0061cf15dbdaa7f31589c98400373da284506d70c89f074ed262a9e28140796b7236c2eef99016085e71552ff488c72b7339fefb7915c38459cb20ab85aec4e45052\nZ = 0141d6a4b719ab67eaf04a92c0a41e2dda78f4354fb90bdc35202cc7699b9b04d49616f82255debf7bbec045ae58f982a66905fcfae69d689785e38c868eb4a27e7b\n\nCurve = P-521\nPrivate = 008e2c93c5423876223a637cad367c8589da69a2d0fc68612f31923ae50219df2452e7cc92615b67f17b57ffd2f52b19154bb40d7715336420fde2e89fee244f59dc\nX = 00fa3b35118d6c422570f724a26f90b2833b19239174cea081c53133f64db60d6940ea1261299c04c1f4587cdb0c4c39616479c1bb0c146799a118032dcf98f899c0\nY = 0069f040229006151fa32b51f679c8816f7c17506b403809dc77cd58a2aec430d94d13b6c916de99f355aa45fcfbc6853d686c71be496a067d24bfaea4818fc51f75\nPeerX = 0129891de0cf3cf82e8c2cf1bf90bb296fe00ab08ca45bb7892e0e227a504fdd05d2381a4448b68adff9c4153c87eacb78330d8bd52515f9f9a0b58e85f446bb4e10\nPeerY = 009edd679696d3d1d0ef327f200383253f6413683d9e4fcc87bb35f112c2f110098d15e5701d7ceee416291ff5fed85e687f727388b9afe26a4f6feed560b218e6bb\nZ = 00345e26e0abb1aac12b75f3a9cf41efe1c336396dffa4a067a4c2cfeb878c68b2b045faa4e5b4e6fa4678f5b603c351903b14bf9a6a70c439257199a640890b61d1\n\nCurve = P-521\nPrivate = 0004d49d39d40d8111bf16d28c5936554326b197353eebbcf47545393bc8d3aaf98f14f5be7074bfb38e6cc97b989754074daddb3045f4e4ce745669fdb3ec0d5fa8\nX = 012ec226d050ce07c79b3df4d0f0891f9f7adf462e8c98dbc1a2a14f5e53a3f5ad894433587cc429a8be9ea1d84fa33b1803690dae04da7218d30026157fc995cf52\nY = 004837dfbf3426f57b5c793269130abb9a38f618532211931154db4eeb9aede88e57290f842ea0f2ea9a5f74c6203a3920fe4e305f6118f676b154e1d75b9cb5eb88\nPeerX = 01a3c20240e59f5b7a3e17c275d2314ba1741210ad58b71036f8c83cc1f6b0f409dfdd9113e94b67ec39c3291426c23ffcc447054670d2908ff8fe67dc2306034c5c\nPeerY = 01d2825bfd3af8b1e13205780c137fe938f84fde40188e61ea02cead81badfdb425c29f7d7fb0324debadc10bbb93de68f62c35069268283f5265865db57a79f7bf7\nZ = 006fe9de6fb8e672e7fd150fdc5e617fabb0d43906354ccfd224757c7276f7a1010091b17ed072074f8d10a5ec971eb35a5cb7076603b7bc38d432cbc059f80f9488\n\nCurve = P-521\nPrivate = 011a5d1cc79cd2bf73ea106f0e60a5ace220813b53e27b739864334a07c03367efda7a4619fa6eef3a9746492283b3c445610a023a9cc49bf4591140384fca5c8bb5\nX = 00eb07c7332eedb7d3036059d35f7d2288d4377d5f42337ad3964079fb120ccd4c8bd384b585621055217023acd9a94fcb3b965bfb394675e788ade41a1de73e620c\nY = 00491a835de2e6e7deb7e090f4a11f2c460c0b1f3d5e94ee8d751014dc720784fd3b54500c86ebaef18429f09e8e876d5d1538968a030d7715dde99f0d8f06e29d59\nPeerX = 007e2d138f2832e345ae8ff65957e40e5ec7163f016bdf6d24a2243daa631d878a4a16783990c722382130f9e51f0c1bd6ff5ac96780e48b68f5dec95f42e6144bb5\nPeerY = 00b0de5c896791f52886b0f09913e26e78dd0b69798fc4df6d95e3ca708ecbcbcce1c1895f5561bbabaae372e9e67e6e1a3be60e19b470cdf673ec1fc393d3426e20\nZ = 01e4e759ecedce1013baf73e6fcc0b92451d03bdd50489b78871c333114990c9ba6a9b2fc7b1a2d9a1794c1b60d9279af6f146f0bbfb0683140403bfa4ccdb524a29\n\nCurve = P-521\nPrivate = 010c908caf1be74c616b625fc8c1f514446a6aec83b5937141d6afbb0a8c7666a7746fa1f7a6664a2123e8cdf6cd8bf836c56d3c0ebdcc980e43a186f938f3a78ae7\nX = 0031890f4c7abec3f723362285d77d2636f876817db3bbc88b01e773597b969ff6f013ea470c854ab4a7739004eb8cbea69b82ddf36acadd406871798ecb2ac3aa7f\nY = 00d8b429ae3250266b9643c0c765a60dc10155bc2531cf8627296f4978b6640a9e600e19d0037d58503fa80799546a814d7478a550aa90e5ebeb052527faaeae5d08\nPeerX = 00118c36022209b1af8ebad1a12b566fc48744576e1199fe80de1cdf851cdf03e5b9091a8f7e079e83b7f827259b691d0c22ee29d6bdf73ec7bbfd746f2cd97a357d\nPeerY = 00da5ff4904548a342e2e7ba6a1f4ee5f840411a96cf63e6fe622f22c13e614e0a847c11a1ab3f1d12cc850c32e095614ca8f7e2721477b486e9ff40372977c3f65c\nZ = 0163c9191d651039a5fe985a0eea1eba018a40ab1937fcd2b61220820ee8f2302e9799f6edfc3f5174f369d672d377ea8954a8d0c8b851e81a56fda95212a6578f0e\n\nCurve = P-521\nPrivate = 01b37d6b7288de671360425d3e5ac1ccb21815079d8d73431e9b74a6f0e7ae004a357575b11ad66642ce8b775593eba9d98bf25c75ef0b4d3a2098bbc641f59a2b77\nX = 00189a5ee34de7e35aefeaeef9220c18071b4c29a4c3bd9d954458bd3e82a7a34da34cff5579b8101c065b1f2f527cf4581501e28ef5671873e65267733d003520af\nY = 01eb4bc50a7b4d4599d7e3fa773ddb9eb252c9b3422872e544bdf75c7bf60f5166ddc11eb08fa7c30822dabaee373ab468eb2d922e484e2a527fff2ebb804b7d9a37\nPeerX = 01780edff1ca1c03cfbe593edc6c049bcb2860294a92c355489d9afb2e702075ade1c953895a456230a0cde905de4a3f38573dbfcccd67ad6e7e93f0b5581e926a5d\nPeerY = 00a5481962c9162962e7f0ebdec936935d0eaa813e8226d40d7f6119bfd940602380c86721e61db1830f51e139f210000bcec0d8edd39e54d73a9a129f95cd5fa979\nZ = 015d613e267a36342e0d125cdad643d80d97ed0600afb9e6b9545c9e64a98cc6da7c5aaa3a8da0bdd9dd3b97e9788218a80abafc106ef065c8f1c4e1119ef58d298b\n\nCurve = P-521\nPrivate = 00f2661ac762f60c5fff23be5d969ccd4ec6f98e4e72618d12bdcdb9b4102162333788c0bae59f91cdfc172c7a1681ee44d96ab2135a6e5f3415ebbcd55165b1afb0\nX = 00a8e25a6902d687b4787cdc94c364ac7cecc5c495483ed363dc0aa95ee2bd739c4c4d46b17006c728b076350d7d7e54c6822f52f47162a25109aaaba690cab696ec\nY = 0168d2f08fe19e4dc9ee7a195b03c9f7fe6676f9f520b6270557504e72ca4394a2c6918625e15ac0c51b8f95cd560123653fb8e8ee6db961e2c4c62cc54e92e2a2a9\nPeerX = 016dacffa183e5303083a334f765de724ec5ec9402026d4797884a9828a0d321a8cfac74ab737fe20a7d6befcfc73b6a35c1c7b01d373e31abc192d48a4241a35803\nPeerY = 011e5327cac22d305e7156e559176e19bee7e4f2f59e86f1a9d0b6603b6a7df1069bde6387feb71587b8ffce5b266e1bae86de29378a34e5c74b6724c4d40a719923\nZ = 014d6082a3b5ced1ab8ca265a8106f302146c4acb8c30bb14a4c991e3c82a9731288bdb91e0e85bda313912d06384fc44f2153fb13506fa9cf43c9aab5750988c943\n\nCurve = P-521\nPrivate = 00f430ca1261f09681a9282e9e970a9234227b1d5e58d558c3cc6eff44d1bdf53de16ad5ee2b18b92d62fc79586116b0efc15f79340fb7eaf5ce6c44341dcf8dde27\nX = 006c1d9b5eca87de1fb871a0a32f807c725adccde9b3967453a71347d608f0c030cd09e338cdecbf4a02015bc8a6e8d3e2595fe773ffc2fc4e4a55d0b1a2cc00323b\nY = 01141b2109e7f4981c952aa818a2b9f6f5c41feccdb7a7a45b9b4b672937771b008cae5f934dfe3fed10d383ab1f38769c92ce88d9be5414817ecb073a31ab368ccb\nPeerX = 00a091421d3703e3b341e9f1e7d58f8cf7bdbd1798d001967b801d1cec27e605c580b2387c1cb464f55ce7ac80334102ab03cfb86d88af76c9f4129c01bedd3bbfc4\nPeerY = 008c9c577a8e6fc446815e9d40baa66025f15dae285f19eb668ee60ae9c98e7ecdbf2b2a68e22928059f67db188007161d3ecf397e0883f0c4eb7eaf7827a62205cc\nZ = 0020c00747cb8d492fd497e0fec54644bf027d418ab686381f109712a99cabe328b9743d2225836f9ad66e5d7fed1de247e0da92f60d5b31f9e47672e57f710598f4\n\nCurve = P-521\nPrivate = 005dc33aeda03c2eb233014ee468dff753b72f73b00991043ea353828ae69d4cd0fadeda7bb278b535d7c57406ff2e6e473a5a4ff98e90f90d6dadd25100e8d85666\nX = 00c825ba307373cec8dd2498eef82e21fd9862168dbfeb83593980ca9f82875333899fe94f137daf1c4189eb502937c3a367ea7951ed8b0f3377fcdf2922021d46a5\nY = 016b8a2540d5e65493888bc337249e67c0a68774f3e8d81e3b4574a0125165f0bd58b8af9de74b35832539f95c3cd9f1b759408560aa6851ae3ac7555347b0d3b13b\nPeerX = 004f38816681771289ce0cb83a5e29a1ab06fc91f786994b23708ff08a08a0f675b809ae99e9f9967eb1a49f196057d69e50d6dedb4dd2d9a81c02bdcc8f7f518460\nPeerY = 009efb244c8b91087de1eed766500f0e81530752d469256ef79f6b965d8a2232a0c2dbc4e8e1d09214bab38485be6e357c4200d073b52f04e4a16fc6f5247187aecb\nZ = 00c2bfafcd7fbd3e2fd1c", "750fdea61e70bd4787a7e68468c574ee99ebc47eedef064e8944a73bcb7913dbab5d93dca660d216c553622362794f7a2acc71022bdb16f\n\nCurve = P-521\nPrivate = 00df14b1f1432a7b0fb053965fd8643afee26b2451ecb6a8a53a655d5fbe16e4c64ce8647225eb11e7fdcb23627471dffc5c2523bd2ae89957cba3a57a23933e5a78\nX = 004e8583bbbb2ecd93f0714c332dff5ab3bc6396e62f3c560229664329baa5138c3bb1c36428abd4e23d17fcb7a2cfcc224b2e734c8941f6f121722d7b6b94154576\nY = 01cf0874f204b0363f020864672fadbf87c8811eb147758b254b74b14fae742159f0f671a018212bbf25b8519e126d4cad778cfff50d288fd39ceb0cac635b175ec0\nPeerX = 01a32099b02c0bd85371f60b0dd20890e6c7af048c8179890fda308b359dbbc2b7a832bb8c6526c4af99a7ea3f0b3cb96ae1eb7684132795c478ad6f962e4a6f446d\nPeerY = 017627357b39e9d7632a1370b3e93c1afb5c851b910eb4ead0c9d387df67cde85003e0e427552f1cd09059aad0262e235cce5fba8cedc4fdc1463da76dcd4b6d1a46\nZ = 01aaf24e5d47e4080c18c55ea35581cd8da30f1a079565045d2008d51b12d0abb4411cda7a0785b15d149ed301a3697062f42da237aa7f07e0af3fd00eb1800d9c41\n", }; -static const size_t kLen36 = 132435; - -static const char *kData36[] = { - "# Public key algorithm tests\n\n# Keys used for PKEY operations.\n\n# RSA 2048 bit key.\nPrivateKey = RSA-2048\nType = RSA\nInput = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f02030100010282010060297ac7991b167a06d6b24758b8cbe208beb9b2d9ec9738bd80f90a2e35005dd7ce292d9e29ba885bd316fef1f20913bc0ac90d6b0808b2414d82104441d8624a33ce0233c8f780a48b375aff02d76712228a702484db3f9ebecccfbbee1709dba182800d949e9e4216e0bff3558388f8bd90da373a1d82743ec3fbdd1427fd16825a657a316912e8695365117ca2f845c909405fcac55f895fc15d20386c26ee78c9e99075029a178a6c1e4cf0c200e8a9cfb27e9d156f86e6c2adc22b1a84a1cd5ca5b2790875d79407c84b352395cb81cc3fed5bb043b69ede0c07204550025cee8c5f440170b6120bb48e0f747bcd8f522110850df043c428dfd187053102818100f6f961b47cbc035d3aedebc7de850a956b65ecdb9cf60764063f15aa48553c58d972fe6675056e35ddfdc37bf3b9f2f622ee271337256849c9bef2176fe8f7c3f8bb91ba374dd53baf3dec814d2bdec10c1fdc88cdd16876f26b1edfa3f094197edf4d42ff1fb2971103b898ca859c427287086a842ab410bb69cf2d35af6be302818100d47e724a7ff41048b270c2524a4101878b73159bb73d3dbc187b220e635b3534f96e243a184d93f860b6bfbb6b71c1ed9a1e1f458583023c301e96a692c1a08b53d0ec9ca910100d80451e3b7dc6a01bac4aecef8df798846bc235a08cbba2cf4c06804cc11219e95608c714e3f1430d491fadbba32a5751a04f97745834c9a502818021f2452bb9b95dfd028c914bf799f1ca77e89a95d50d3c16d384f8455f8bd7af9eb3dfa3d591d9842def235f7630a8e48c088ff6642e101794535a933e1e976fa8509fc728b2da0c4a1a08d7fcf37abaae1ff3001aca1dc1bbb05d9dffbaa1a09f7fb1eef38237d9ebccc722b9338436dde7119112798c26809c1a8dec4320610281801f7510aa62c2d8de4a3c53282781f41e02d0e8b402ae78432e449c48110161a11403f02d01880a8dcc938152d79721a4711a607ac4471ebf964810f95be47a45e60499e29f4c9773c83773404f606637728c2d0351bb03c326c8bb73a721e7fa5440ea2172bba1465fcc30dcb0d9f89930e815aa1f7f9729a857e00e0338dd590281804d1f0d756fe77e01099a652f50a88b7b685dc5bf00981d5d2376fd0c6fe29cd5b638734479305a73ad3c1599d39eae3bae035fbd6fed07c28de705933879a06e48e6a603686ed8e2560a5f6af1f2c24faf4aa960e382186f15eedce9a2491ae730680dd4cf778b70faa86826ab3223477cc91377b19a6d5a2eaea219760beed5\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The public half of the same key encoded as a SubjectPublicKeyInfo.\nPublicKey = RSA-2048-SPKI\nType = RSA\nInput = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key but with a negative RSA modulus.\nPublicKey = RSA-2048-SPKI-Negative\nInput = 30820121300d06092a864886f70d01010105000382010e003082010902820100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nError = NEGATIVE_NUMBER\n\n# The same key but with missing parameters rather than a NULL.\nPublicKey = RSA-2048-SPKI-Invalid\nInput = 30820120300b06092a864886f70d0101010382010f003082010a0282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nError = DECODE_ERROR\n\n# The same key but with an incorrectly-encoded length prefix.\nPublicKey = RSA-2048-SPKI-Invalid2\nInput = 3083000122300d06092a864886f70d01010105000382010f003082010a0282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nError = DECODE_ERROR\n\n# RSA 512 bit key.\nPrivateKey = RSA-512\nType = RSA\nInput = 30820154020100300d06092a864886f70d01010105000482013e3082013a020100024100dd20403d976a38c9d79152d87b5c8e9f05033eadd7b7de709bf5b0c4a5182a97d18483526b02362b992e154a9f37faa396ca2685cdab8fec09877ebe705f4dd70203010001024055bebcca655d7e39de8a6eaa9d636db682161907064039544755c53eeb99ec618c03a210dbc61471eaba10c5c365c9726d6b7a96f54d455f7d168d49367270e1022100f21a05d9fd6817301ce49ce10448f9bdd44f5ef5b7557cd7d83155db46382ae7022100e9d1f7157783db2feab1936954ddc4e83aa365695868144cda1be6813b61d791022100d6001eb0040920860ce41fafdf23ca6dfbdf74e6e9f98cf3164cf5c16f9e727d02206f6f73f4b52b10517be6f9bc5f87fa0a3bb817e2e711636b651f9af1c85d4f21022063eff2e57f5b4ca20342cfe793e25526624e3692f192461f9e1ce7f13f2d72c8\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# RSA 515 bit key.\nPrivateKey = RSA-515\nType = RSA\nInput = 30820157020100300d06092a864886f70d0101010500048201413082013d0201000241054fa166e205e658bbe8a2dc35311c0c2b75b7e4569fd9642c8bae809279271fc824f26baa1166ea46298ca63379ea76adbada2b61e5066820a35beaec1aca227f020301000102410266c972be0d30e53ac2acb1aa13b4bd0401cccf212452a66b4615f7e943831f67b4ca48560582d0ca886044aaaaf87945252a848c1947944186e6eb83969bf91102210309e631761842cc8a2ccfd372c20a9cba21de1a199c30ab440bc6b51079f4e825022101bf715c1db432627ca7c29a293b9210f2eff1e92d12f306ebaa5334f8ee03dcd30221018ac58a765f2b8f37d434081fe5ff92b81735ead2f263f4968ccf63d61fbe3d0d0221015b247a1159a2d5a25d0db049593c6405f77f3a278c521d066e290c2a2d8fb59d0221026224aa31fd95c14d24fd03b8a195bba4cc88df7c37f5370a5ab19f882f1404d6\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# EC P-256 key\nPrivateKey = P-256\nType = EC\nInput = 308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key as above with the optional public key omitted.\nPrivateKey = P-256-MissingPublic\nType = EC\nInput = 3041020100301306072a8648ce3d020106082a8648ce3d0301070427302502010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key as above with redundant parameters.\nPrivateKey = P-256-ExtraParameters\nType = EC\nInput = 308193020100301306072a8648ce3d020106082a8648ce3d0301070479307702010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a00a06082a8648ce3d030107a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\n# The key re-encodes with the parameters removed.\nOutput = 308187020100301306072a8648c", - "e3d020106082a8648ce3d030107046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key, but with the redundant parameters in the ECPrivateKey mismatched.\nPrivateKey = P-256-BadInnerParameters\nInput = 308190020100301306072a8648ce3d020106082a8648ce3d0301070476307402010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a00706052b81040022a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = GROUP_MISMATCH\n\n# The public half of the same key encoded as a PublicKey.\nPublicKey = P-256-SPKI\nType = EC\nInput = 3059301306072a8648ce3d020106082a8648ce3d030107034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same as above, but with the curve explicitly spelled out.\nPublicKey = P-256-SPKI\nInput = 3082014b3082010306072a8648ce3d02013081f7020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff305b0420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b031500c49d360886e704936a6678e1139d26b7819f7e900441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = DECODE_ERROR\n\n# The same as above, but with trailing data after the curve name.\nPublicKey = P-256-SPKI\nInput = 305b301506072a8648ce3d020106082a8648ce3d0301070500034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = DECODE_ERROR\n\n# A DSA private key.\nPrivateKey = DSA-1024\nType = DSA\nInput = 308202650201003082023906072a8648ce3804013082022c02820101009e12fab3de12213501dd82aa10ca2d101d2d4ebfef4d2a3f8daa0fe0cedad8d6af85616aa2f3252c0a2b5a6db09e6f14900e0ddb8311876dd8f9669525f99ed65949e184d5064793271169a228680b95ec12f59a8e20b21f2b58eb2a2012d35bde2ee351822fe8f32d0a330565dcce5c672b7259c14b2433d0b5b2ca2b2db0ab626e8f13f47fe0345d904e7294bb038e9ce21a9e580b83356278706cfe768436c69de149ccff98b4aab8cb4f6385c9f102ce59346eaeef27e0ad222d53d6e89cc8cde5776dd00057b03f2d88ab3cedbafd7b585f0b7f7835e17a3728bbf25ea62572f245dc111f3ce39cb6ffacc31b0a2790e7bde90224ea9b09315362af3d2b022100f381dcf53ebf724f8b2e5ca82c010fb4b5eda9358d0fd88ed278589488b54fc3028201000c402a725dcc3a62e02bf4cf43cd17f4a493591220223669cf4193edab423ad08dfb552e308a6a57a5ffbc7cd0fb2087f81f8df0cb08ab2133287d2b6968714a94f633c940845a48a3e16708dde761cc6a8eab2d84db21b6ea5b07681493cc9c31fbc368b243f6ddf8c932a8b4038f44e7b15ca876344a147859f2b43b39458668ad5e0a1a9a669546dd2812e3b3617a0aef99d58e3bb4cc87fd94225e01d2dcc469a77268146c51918f18e8b4d70aa1f0c7623bcc52cf3731d38641b2d2830b7eecb2f09552ff137d046e494e7f33c3590002b16d1b97d936fda28f90c3ed3ca35338168ac16f77c3c57adc2e8f7c6c2256e41a5f65450590dbb5bcf06d66610423022100b0c768702743bc51242993a971a52889795444f7c6452203d0ce84fe6117d46e\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# A DSA public key.\nPublicKey = DSA-1024-SPKI\nType = DSA\nInput = 308201b73082012c06072a8648ce3804013082011f02818100b3429b8b128c9079f9b72e86857e98d265e5d91661ed8b5f4cc56e5eed1e571da30186983a9dd76297eab73ee13a1db841f8800d04a7cab478af6cde2ea4a2868531af169a24858c6268efa39ceb7ed0d4227eb5bbb01124a2a5a26038c7bcfb8cc827f68f5202345166e4718596799b65c9def82828ce44e62e38e41a0d24b1021500c5a56c81ddd87f47e676546c56d05706421624cf0281810094de40d27314fe929e47ff9b1ac65cfc73ef38c4d381c890be6217b15039ae18190e6b421af8c0bda35a5cfd050f58ae2644adce83e68c8e5ba11729df56bbb21e227a60b816cc033fa799a38fe1ba5b4aa1801b6f841ce3df99feb3b4fb96950c960af13fa2ce920aabc12dd24ad2044a35063ea0e25f67f560f4cfbdc5598303818400028180258c30ebbb7f34fdc873ce679f6cea373c7886d75d4421b90920db034daedd292c64d8edd8cdbdd7f3ad23d74cfa2135247d0cef6ecf2e14f99e19d22a8c1266bd8fb8719c0e5667c716c45c7adbdabe548085bdad2dfee636f8d52fd6adb2193df6c4f0520fbd171b91882e0e4f321f8250ffecf4dbea00e114427d3ef96c1a\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key as above, but without the parameters.\nPublicKey = DSA-1024-SPKI-No-Params\nType = DSA\nInput = 308192300906072a8648ce38040103818400028180258c30ebbb7f34fdc873ce679f6cea373c7886d75d4421b90920db034daedd292c64d8edd8cdbdd7f3ad23d74cfa2135247d0cef6ecf2e14f99e19d22a8c1266bd8fb8719c0e5667c716c45c7adbdabe548085bdad2dfee636f8d52fd6adb2193df6c4f0520fbd171b91882e0e4f321f8250ffecf4dbea00e114427d3ef96c1a\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# Private keys from RFC 8032.\nPrivateKey = Ed25519\nType = Ed25519\nInput = 302e020100300506032b6570042204209d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60\nExpectRawPrivate = 9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60\nExpectRawPublic = d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\n\nPrivateKey = Ed25519-2\nType = Ed25519\nInput = 302e020100300506032b6570042204204ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb\nExpectRawPrivate = 4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb\nExpectRawPublic = 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\n\nPrivateKey = Ed25519-3\nType = Ed25519\nInput = 302e020100300506032b657004220420c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7\nExpectRawPrivate = c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7\nExpectRawPublic = fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\n\nPrivateKey = Ed25519-4\nType = Ed25519\nInput = 302e020100300506032b657004220420f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5\nExpectRawPrivate = f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5\nExpectRawPublic = 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\n\nPrivateKey = Ed25519-5\nType = Ed25519\nInput = 302e020100300506032b657004220420833fe62409237b9d62ec77587520911e9a759cec1d19755b7da901b96dca3d42\nExpectRawPrivate = 833fe62409237b9d62ec77587520911e9a759cec1d19755b7da901b96dca3d42\nExpectRawPublic = ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\n\n# Public keys from RFC 8032.\nPublicKey = Ed25519-SPKI\nType = Ed25519\nInput = 302a300506032b6570032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\nExpectNoRawPrivate\nExpectRawPublic = d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\n\nPublicKey = Ed25519-SPKI-2\nType = Ed25519\nInput = 302a300506032b65700321003d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\nExpectNoRawPrivate\nExpectRawPublic = 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\n\nPublicKey = Ed25519-SPKI-3\nType = Ed25519\nInput = 302a300506032b6570032100fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\nExpectNoRawPrivate\nExpectRawPublic = fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\n\nPublicKey = Ed25519-SPKI-4\nType = Ed25519\nInput = 302a300506032b6570032100278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\nExpectNoRawPrivate\nExpectRawPublic = 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\n\nPublicKey = Ed25519-SPKI-5\nType = Ed25519\nInput = 302a300506032b6570032100ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\nExpectNoRawPrivate\nExpectRawPublic = ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\n\n# The first key, private and public, with invalid NULL parameters.\nPrivateKey = Ed25519-NULL\nInput = 3030020100300706032b65700500042204209d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60\nError = DECODE_ERROR\n\nPublicKey = Ed25519-SPKI-NULL\nInput = 302c300706032b65700500032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\nError = DECODE_ERROR\n\n# Sample public key from RFC 8410.\nPublicKey = Ed25519-SPKI-Spec\nType = Ed25", - "519\nInput = 302a300506032b657003210019bf44096984cdfe8541bac167dc3b96c85086aa30b6b6cb0c5c38ad703166e1\n\n# Sample private key from RFC 8410.\nPrivateKey = Ed25519-Spec\nType = Ed25519\nInput = 302e020100300506032b657004220420d4ee72dbf913584ad5b6d8f1f769f8ad3afe7c28cbf1d4fbe097a88f44755842\n\n\n# RSA tests\n\nSign = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\n\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\n\nVerify = RSA-2048-SPKI\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\n\n# Digest too long\nSign = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF12345\"\nError = INVALID_MESSAGE_LENGTH\n\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF12345\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\nError = INVALID_MESSAGE_LENGTH\n\n# Digest too short\nSign = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF123\"\nError = INVALID_MESSAGE_LENGTH\n\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF123\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\nError = INVALID_MESSAGE_LENGTH\n\n# Digest too large for key.\nSign = RSA-512\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nError = DIGEST_TOO_BIG_FOR_RSA_KEY\n\n# Mismatched digest\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1233\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\nError = BAD_SIGNATURE\n\n# Corrupted signature\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1233\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ae\nError = BLOCK_TYPE_IS_NOT_01\n\n# parameter missing (NOTE: this differs from upstream)\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3ec3fc29eb6e122bd7aa361cd09fe1bcbe85311096a7b9e4799cedfb2351ce0ab7fe4e75b4f6b37f67edd9c60c800f9ab941c0c157d7d880ca9de40c951d60fd293ae220d4bc510b1572d6e85a1bbbd8605b52e05f1c64fafdae59a1c2fbed214b7844d0134619de62851d5a0522e32e556e5950f3f97b8150e3f0dffee612c924201c27cd9bc8b423a71533380c276d3d59fcba35a2e80a1a192ec266a6c2255012cd86a349fe90a542b355fa3355b04da6cdf1df77f0e7bd44a90e880e1760266d233e465226f5db1c68857847d82072861ee266ddfc2e596845b77e1803274a579835ab5e4975d81d20b7df9cec7795489e4a2bdb8c1cf6a6b359945ac92c\nError = BAD_SIGNATURE\n\n# embedded digest too long\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d\nError = BAD_SIGNATURE\n\n# embedded digest too short\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d\nError = BAD_SIGNATURE\n\n# Garbage after DigestInfo\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 9ee34872d4271a7d8808af0a4052a145a6d6a8437d00da3ed14428c7f087cd39f4d43334c41af63e7fa1ba363fee7bcef401d9d36a662abbab55ce89a696e1be0dfa19a5d09ca617dd488787b6048baaefeb29bc8688b2fe3882de2b77c905b5a8b56cf9616041e5ec934ba6de863efe93acc4eef783fe7f72a00fa65d6093ed32bf98ce527e62ccb1d56317f4be18b7e0f55d7c36617d2d0678a306e3350956b662ac15df45215dd8f6b314babb9788e6c272fa461e4c9b512a11a4b92bc77c3a4c95c903fccb238794eca5c750477bf56ea6ee6a167367d881b485ae3889e7c489af8fdf38e0c0f2aed780831182e34abedd43c39281b290774bf35cc25274\nError = BAD_SIGNATURE\n\n# invalid tag for parameter\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 49525db4d44c755e560cba980b1d85ea604b0e077fcadd4ba44072a3487bbddb835016200a7d8739cce2dc3223d9c20cbdd25059ab02277f1f21318efd18e21038ec89aa9d40680987129e8b41ba33bceb86518bdf47268b921cce2037acabca6575d832499538d6f40cdba0d40bd7f4d8ea6ca6e2eec87f294efc971407857f5d7db09f6a7b31e301f571c6d82a5e3d08d2bb3a36e673d28b910f5bec57f0fcc4d968fd7c94d0b9226dec17f5192ad8b42bcab6f26e1bea1fdc3b958199acb00f14ebcb2a352f3afcedd4c09000128a603bbeb9696dea13040445253972d46237a25c7845e3b464e6984c2348ea1f1210a9ff0b00d2d72b50db00c009bb39f9\nError = BAD_SIGNATURE\n\n\n# RSA-PSS tests.\n\n# Zero salt leng", - "th makes the output deterministic\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n\n# Verify of above signature\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n\n# A non-zero salt length must be checked by round-tripping.\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 32\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Check a salt length with a non-standard digest length, to verify things are\n# not just working due to defaults. (The current default is a maximum salt\n# length, but the ecosystem has converged on matching the digest length, so we\n# may change this in the future.)\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 42\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Auto-detected salt length\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n\n# Signing with salt length -1 means to match the digest length.\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = -1\nVerifyPSSSaltLength = 32\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Signing with salt length -2 means to maximize the salt length.\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = -2\nVerifyPSSSaltLength = 222 # 256 - 32 - 2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Wrong digest\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"00000000000000000000000000000000\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = BAD_SIGNATURE\n\n# Digest too short\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDE\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = INVALID_MESSAGE_LENGTH\n\n# Digest too long\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF0\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = INVALID_MESSAGE_LENGTH\n\n# Wrong salt length\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = SLEN_CHECK_FAILED\n\n# Wrong salt length using implicit hash length\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = -1\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = SLEN_CHECK_FAILED\n\n# Wrong MGF1 digest, SHA-1\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nMGF1Digest = SHA1\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n# If SHA-1, this input happens to succeed recovering a salt length, but it does\n# not match.\nError = SLEN_CHECK_FAILED\n\n# Wrong MGF1 digest, SHA-384\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nMGF1Digest = SHA384\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n# If SHA-384, this input happens fail to recover the salt length altogether.\nError = SLEN_RECOVERY_FAILED\n\n# The salt length is too large for the modulus (signing).\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 223\nDigest = SHA256\nInput = ", - "\"0123456789ABCDEF0123456789ABCDEF\"\nError = DATA_TOO_LARGE_FOR_KEY_SIZE\n\n# The salt length is too large for the modulus (verifying).\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 223\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = DATA_TOO_LARGE\n\n# The hash is too large for the modulus (signing).\nSign = RSA-512\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nError = DATA_TOO_LARGE_FOR_KEY_SIZE\n\nSign = RSA-512\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nError = DATA_TOO_LARGE_FOR_KEY_SIZE\n\n# The hash is too large for the modulus (verifying).\nVerify = RSA-512\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nOutput = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nError = DATA_TOO_LARGE\n\nVerify = RSA-512\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nOutput = 457001d9ca50a93385fc5ec721c9dbbe7a0f2e9e4a2f846a30a8811dde66347b83901c7492039243537c7a667fafffd69049bcbd36afd0010d9b425e2d8785c1\nError = DATA_TOO_LARGE\n\n# Sample RSA-515 signature.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 00c5926600f160f85e7fe950cfe123908384211cd8fe25c90cb8e8cc0593308e9aa2efe3acbf100ec1658ded8f72f506525fc2c44f06251b08d896e7bb3f05b135\n\n# The above, but with too few leading zeros.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = c5926600f160f85e7fe950cfe123908384211cd8fe25c90cb8e8cc0593308e9aa2efe3acbf100ec1658ded8f72f506525fc2c44f06251b08d896e7bb3f05b135\nError = DATA_LEN_NOT_EQUAL_TO_MOD_LEN\n\n# The above, but with too many leading zeros.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 0000c5926600f160f85e7fe950cfe123908384211cd8fe25c90cb8e8cc0593308e9aa2efe3acbf100ec1658ded8f72f506525fc2c44f06251b08d896e7bb3f05b135\nError = DATA_LEN_NOT_EQUAL_TO_MOD_LEN\n\n# The above with an invalid leading byte. The top few bits of EM are required to\n# be cleared.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 007f803c832a2090aea04013d9fa9c1630732a1625232826d235f0950f7050d3fb0eb06ef9ea8b260fad68e1165a2d770a8c7fc7a8aaa68620b021fc19c97e0041\nError = FIRST_OCTET_INVALID\n\n# The above with an invalid trailing byte.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 03e68555035891eb08d96c0967db22328cd892ad2856d88516ecb946bfdba732bb029b5c0dfa2119ed7349897d2324e95e86d91d0c4afc82700a36db8933abbf58\nError = LAST_OCTET_INVALID\n\n# Non-zero salt length.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 32\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e570692e511e139\n\n# Non-zero salt length, wrong salt length.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 31\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e570692e511e139\nError = SLEN_CHECK_FAILED\n\n# Non-zero salt length, match hash length.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = -1\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e570692e511e139\n\n# Non-zero salt length, auto-detected.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e570692e511e139\n\n\n# RSA decrypt\n\nDecrypt = RSA-2048\nInput = 550af55a2904e7b9762352f8fb7fa235a9cb053aacb2d5fcb8ca48453cb2ee3619746c701abf2d4cc67003471a187900b05aa812bd25ed05c675dfc8c97a24a7bf49bd6214992cad766d05a9a2b57b74f26a737e0237b8b76c45f1f226a836d7cfbc75ba999bdbe48dbc09227aa46c88f21dccba7840141ad5a5d71fd122e6bd6ac3e564780dfe623fc1ca9b995a6037bf0bbd43b205a84ac5444f34202c05ce9113087176432476576de6ffff9a52ea57c08be3ec2f49676cb8e12f762ac71fa3c321e00ac988910c85ff52f93825666ce0d40ffaa0592078919d4493f46d95ccf76364c6d57760dd0b64805f9afc76a2365a5575ca301d5103f0ea76cb9a78\nOutput = \"Hello World\"\n\n# Corrupted ciphertext\nDecrypt = RSA-2048\nInput = 550af55a2904e7b9762352f8fb7fa235a9cb053aacb2d5fcb8ca48453cb2ee3619746c701abf2d4cc67003471a187900b05aa812bd25ed05c675dfc8c97a24a7bf49bd6214992cad766d05a9a2b57b74f26a737e0237b8b76c45f1f226a836d7cfbc75ba999bdbe48dbc09227aa46c88f21dccba7840141ad5a5d71fd122e6bd6ac3e564780dfe623fc1ca9b995a6037bf0bbd43b205a84ac5444f34202c05ce9113087176432476576de6ffff9a52ea57c08be3ec2f49676cb8e12f762ac71fa3c321e00ac988910c85ff52f93825666ce0d40ffaa0592078919d4493f46d95ccf76364c6d57760dd0b64805f9afc76a2365a5575ca301d5103f0ea76cb9a79\nError = PKCS_DECODING_ERROR\n\n# OAEP padding\nDecrypt = RSA-2048\nRSAPadding = OAEP\nInput = 458708dfbd42a1297ce7a9c86c7087ab80b1754810929b89c5107ca55368587686986fce94d86cc1595b3fb736223a656ec0f34d18ba1cc5665593610f56c58e26b272d584f3d983a5c91085700755aebd921fb280bba3eda7046ec07b43e7298e52d59edc92be4639a8ce08b2f85976ecf6d98cc469eeb9d5d8e2a32ea8a6626edafe1038b3df455668a9f3c77cad8b92fb872e00058c3d2a7ede1a1f03fc5622084ae04d9d24f6bf0995c58d35b93b699b9763595e123f2ab0863cc9229eb290e2ede7715c7a8f39e0b9a3e2e1b56ebb62f1cbfbb5986fb212ebd785b83d01d968b11d1756c7337f70c1f1a63bff03608e24f3a2fd44e67f832a8701c5d5af\nOutput = \"Hello World\"\n\n# OAEP padding with label and custom hash.\nDecrypt = RSA-2048\nRSAPadding = OAEP\nOAEPDigest = SHA512\nOAEPLabel = 00112233445566778899aabbccddeeff\nInput = 48b956c22b8e40cc38f", - "0893672ddf488fc806cf1fcc6239c66dd8345eb543d6b5cac589e6c7ae86dac1c2436c4d72c48009a737b2c649e6000dbab17203e4d9c078bd70b649700a0830d4ddc396af0c48973177a229e48259d93247f04f76474c7611b530c66f020c4da2cc861c2e4104831ecc0336e0cb10d6520fdefd0b33606f5cdd736dd439583b9b6011cce99623c93caf5f76e21e9fefab414795dd5ac12cba551be74ebf266834fcffab182c5e7c9b6c064df154cb26ddfd4fe2fd87590005f4bf45e776a0082803e9f68995b8eeb4c6802c67b5ef349e5b2dc0cf7a12fc097030f2bd28f0253f17129b04c82993a12957728b35880fdd2f8d0cc469f\nOutput = \"Hello World\"\n\n# OAEP padding, corrupted ciphertext\nDecrypt = RSA-2048\nRSAPadding = OAEP\nInput = 458708dfbd42a1297ce7a9c86c7087ab80b1754810929b89c5107ca55368587686986fce94d86cc1595b3fb736223a656ec0f34d18ba1cc5665593610f56c58e26b272d584f3d983a5c91085700755aebd921fb280bba3eda7046ec07b43e7298e52d59edc92be4639a8ce08b2f85976ecf6d98cc469eeb9d5d8e2a32ea8a6626edafe1038b3df455668a9f3c77cad8b92fb872e00058c3d2a7ede1a1f03fc5622084ae04d9d24f6bf0995c58d35b93b699b9763595e123f2ab0863cc9229eb290e2ede7715c7a8f39e0b9a3e2e1b56ebb62f1cbfbb5986fb212ebd785b83d01d968b11d1756c7337f70c1f1a63bff03608e24f3a2fd44e67f832a8701c5d5ac\nError = OAEP_DECODING_ERROR\n\n# Test that RSA encryption successfully round-trips through decryption\n# with various parameters.\nEncrypt = RSA-2048\nInput = \"Hello World\"\nCheckDecrypt\n\nEncrypt = RSA-2048\nRSAPadding = OAEP\nInput = \"Hello World\"\nCheckDecrypt\n\nEncrypt = RSA-2048\nRSAPadding = OAEP\nOAEPDigest = SHA512\nOAEPLabel = 00112233445566778899aabbccddeeff\nInput = \"Hello World\"\nCheckDecrypt\n\n# Though we will never generate such a key, test that RSA keys where p < q work\n# properly.\nPrivateKey = RSA-Swapped\nType = RSA\nInput = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100ab28f98747934779011417d5bbb4095eae6f48ed09e13081616cf390aac75b10a206a98953d402647dfef7fa363be2765a303b05ec388bd9a1d75123a1205b4ecb43c33f2e37d3e30842181d694a3acfc39afc52554946e699d97d97066596a46725ce6dea322623afcafecbd2884d9a0c5eae9c4d7da8874c29c19edb762e1902030100010281800d637ea568e169f15ab6be288f6ec55edd29425c9c6dbb941b5160fa1b89cda34ef15378b5107c016d63b0f52721e71497f876dd7f3d6b1f228c4bc20c3c12384644200e91130c9195660d1e706f55b2accf00c5e2174a1d9ee289f0e763ee58860485ec97d19d7fa2df38af5b5910b1fa52087768d288e6ec4c8d5eca23c8d3024100be757a24dc2c923692d964693b2d71ca33ccb2f946f9e5232d2090b715a97dca554068fab8876105bc9ed6dccfd0917c5e0b80339306535c3eeb787e89397bc7024100e60f5c9e52434da079b8c641791a81a96daa4d9921a07e5b48292a9fce230df7c9fc2b97b5e38834ed5caaa387a0bca35c474e989a68dd65b79a6f691a74471f0240438ccf017bc5a3260ff76291a01782204136fcd344c524ebd0f997da17a8c1a09d93f6a7d602cdfa86e79f3539cfb389f4a1079b432e1f2abc762f8a51893dc9024046604ca4e1e554c9d27283b363a888219c3a8ca25b770d303f52d8872a37eefdedfc0619d2ba57e058fc0ff71676453e73ec1c4ef26d41ccebed824754a05d6102404445374d8450e753e0a42085b56b0d6d500b3e3518536dc8f12ec8fd77aa75491835327ac0e12d73b5c3f1b09d03f6a24fe63b9c551dee6559b625435ec92429\n\nSign = RSA-Swapped\nDigest = SHA256\nInput = \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\nOutput = 07fa4e3de9c002c41c952dc292ef5a814c4c17dc1a6cf958c4c971e8089676d6661b442270ef9295c41e5385c9628aa1bdee2cc2558b8473ba212f2ba04b9ff2264c19187b9506b1d0a1cc2751844cc8dedf555d62ce81bc0e70bfe83d0184ee964593af91b9b327c0fb272c799148cd8737d412cbf36c2ad25fd66977bf805f\n\n# Though we will never generate such a key, test that RSA keys where p and q are\n# different sizes work properly.\nPrivateKey = RSA-PrimeMismatch\nType = RSA\nInput = 30820295020100300d06092a864886f70d01010105000482027f3082027b02010002818100c766f4fef89f5e9a8e13ed500fb38523ea94d7f8be066900eee58c913b4c6fdcb13d63d39b9108feabcefd1ffd04776403dc58f968ae817977d0809e567d8af512d604a0e9cb448fa5e402204ee519712a5ebbfd002faf8169495a782f54366b4665aac0d968bfec63c5446b6f9b13061c7f3d1f3f1b6bede8fff881b410a66f0203010001028180528c062f49485c771a0b18ca747d8a47f8941ea63c305626cb3f1f067e6861c4441c432687dbd08d484aac3b01f3ffdc3b762c719167f7cb22e565aa6acd597306ef6f7828b9720e9d440816186d940c4c5a9720dddf71fe0b59483f02a751515c8c27e43c575d6725d55f5bb77e0f977773b00afc058cfab6617ec90d0b62a9026100cb8f97c37b4fbc298b645bc3dc0526f8a4274e9a193b33c3acb76499b5b96330e4b586cbaa56368ffc12644952322253bc669496d572c0980f125fd7273739cf790d24401052b13732114d397c8c16a44716dc62d2320fb1ced99290dfd53e07022100fac51ac653609cdaba53280c6b6f209052e270be0c3c68fe8b37d6bf05fbba59026038dff2f04c58d7e2e7ae6fb1469d2de954bc22cb0d77ac1be4fb0ca1a1d39d7240c4b357de4cde4bd68b30f8077e38771af1b25c7e60e48cd7d1337402e1fc460ab57046720918b8aa4589452196669119c7ba65e602d4bdc264a9fdce7c5f2b0220773af0180bdc8bb7938fa6230191bcb1e236b7d4248d347e9242e25fc0c0874102605c4894cde334889f5b52ed8f86a2ee9c1fbe4166287e24ce44f3093bff383962f08043842f6ff3e6002104b0e29442c4a4483c5d06e2254fbe5e3930de3d0e28af10e96c6e341a4b8859382dbba24536a38ae71118e3e22413a93f298a7f744c\n\nSign = RSA-PrimeMismatch\nDigest = SHA256\nInput = \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\nOutput = 6192b1ce630c87d02e8245fd74d4f6ecac37eef979d188c8fa48c4d355fbe814e7dd3152f42bb020d769b540d11867af5b947387b8c99158d56901ff3708e423931178213916ae1002f162c9d497aacacdcb20e6ffe7ed40138a253fc943ddf3587433df5831a3ce46aeefce358a009bf6bad12d82d77424c2755d984d7da196\n\n\n# EC tests\n\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\n\nVerify = P-256-SPKI\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\n\n# Digest too long\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF12345\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\nError = BAD_SIGNATURE\n\n# Digest too short\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF123\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\nError = BAD_SIGNATURE\n\n# Digest invalid\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1235\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\nError = BAD_SIGNATURE\n\n# Invalid signature\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec7\nError = BAD_SIGNATURE\n\n# Garbage after signature\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec800\nError = BAD_SIGNATURE\n\n# BER signature\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3080022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec80000\nError = BAD_SIGNATURE\n\n\n# Additional RSA-PSS and RSA-OAEP tests converted from\n# ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1-vec.zip\n\nPublicKey = RSA-PSS-1\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818100a56e4a0e701017589a5187dc7ea841d156f2ec0e36ad52a44dfeb1e61f7ad991d8c51056ffedb162b4c0f283a12a88a394dff526ab7291cbb307ceabfce0b1dfd5cd9508096d5b2b8b6df5d671ef6377c0921cb23c270a70e2598e6ff89d19f105acc2d3f0cb35f29280e1386b6f64c4ef22e1e1f20d0ce8cffb2249bd9a21370203010001\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = cd8b6538cb8e8de566b68bd067569dbf1ee2718e\nOutput = 9074308fb598e9701b2294388e52f971faac2b60a5145af185df5287b5ed2887e57ce7fd44dc8634e407c8e0e4360bc226f3ec227f9d9e54638e8d31f5051215df6ebb9c2f9579aa77598a38f914b5b9c1bd83c4e2f9f382a0d0aa3542ffee65984a601bc69eb28deb27dca12c82c2d4c3f66cd500f1ff2b994d8a4e30cbb33c\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = e35befc17a1d160b9ce35fbd8eb16e7ee491d3fd\nOutput = 3ef7f46e831bf92b32274142a585ffcefbdca7b32ae90d10fb0f0c729984f04ef29a9df0780775ce43739b97838390db0a5505e63de927028d9d29b219ca2c4517832558a55d694a6", - "d25b9dab66003c4cccd907802193be5170d26147d37b93590241be51c25055f47ef62752cfbe21418fafe98c22c4d4d47724fdb5669e843\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 0652ec67bcee30f9d2699122b91c19abdba89f91\nOutput = 666026fba71bd3e7cf13157cc2c51a8e4aa684af9778f91849f34335d141c00154c4197621f9624a675b5abc22ee7d5baaffaae1c9baca2cc373b3f33e78e6143c395a91aa7faca664eb733afd14d8827259d99a7550faca501ef2b04e33c23aa51f4b9e8282efdb728cc0ab09405a91607c6369961bc8270d2d4f39fce612b1\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 39c21c4cceda9c1adf839c744e1212a6437575ec\nOutput = 4609793b23e9d09362dc21bb47da0b4f3a7622649a47d464019b9aeafe53359c178c91cd58ba6bcb78be0346a7bc637f4b873d4bab38ee661f199634c547a1ad8442e03da015b136e543f7ab07c0c13e4225b8de8cce25d4f6eb8400f81f7e1833b7ee6e334d370964ca79fdb872b4d75223b5eeb08101591fb532d155a6de87\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 36dae913b77bd17cae6e7b09453d24544cebb33c\nOutput = 1d2aad221ca4d31ddf13509239019398e3d14b32dc34dc5af4aeaea3c095af73479cf0a45e5629635a53a018377615b16cb9b13b3e09d671eb71e387b8545c5960da5a64776e768e82b2c93583bf104c3fdb23512b7b4e89f633dd0063a530db4524b01c3f384c09310e315a79dcd3d684022a7f31c865a664e316978b759fad\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 45eef191f4f79c31fe5d2ede7e5098994e929d2d\nOutput = 2a34f6125e1f6b0bf971e84fbd41c632be8f2c2ace7de8b6926e31ff93e9af987fbc06e51e9be14f5198f91f3f953bd67da60a9df59764c3dc0fe08e1cbef0b75f868d10ad3fba749fef59fb6dac46a0d6e504369331586f58e4628f39aa278982543bc0eeb537dc61958019b394fb273f215858a0a01ac4d650b955c67f4c58\n\nPublicKey = RSA-PSS-2\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818101d40c1bcf97a68ae7cdbd8a7bf3e34fa19dcca4ef75a47454375f94514d88fed006fb829f8419ff87d6315da68a1ff3a0938e9abb3464011c303ad99199cf0c7c7a8b477dce829e8844f625b115e5e9c4a59cf8f8113b6834336a2fd2689b472cbb5e5cabe674350c59b6c17e176874fb42f8fc3d176a017edc61fd326c4b33c90203010001\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 5c81a3e2a658246628cd0ee8b00bb4c012bc9739\nOutput = 014c5ba5338328ccc6e7a90bf1c0ab3fd606ff4796d3c12e4b639ed9136a5fec6c16d8884bdd99cfdc521456b0742b736868cf90de099adb8d5ffd1deff39ba4007ab746cefdb22d7df0e225f54627dc65466131721b90af445363a8358b9f607642f78fab0ab0f43b7168d64bae70d8827848d8ef1e421c5754ddf42c2589b5b3\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 27f71611446aa6eabf037f7dedeede3203244991\nOutput = 010991656cca182b7f29d2dbc007e7ae0fec158eb6759cb9c45c5ff87c7635dd46d150882f4de1e9ae65e7f7d9018f6836954a47c0a81a8a6b6f83f2944d6081b1aa7c759b254b2c34b691da67cc0226e20b2f18b42212761dcd4b908a62b371b5918c5742af4b537e296917674fb914194761621cc19a41f6fb953fbcbb649dea\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 03ecc2c33e93f05fc7224fcc0d461356cb897217\nOutput = 007f0030018f53cdc71f23d03659fde54d4241f758a750b42f185f87578520c30742afd84359b6e6e8d3ed959dc6fe486bedc8e2cf001f63a7abe16256a1b84df0d249fc05d3194ce5f0912742dbbf80dd174f6c51f6bad7f16cf3364eba095a06267dc3793803ac7526aebe0a475d38b8c2247ab51c4898df7047dc6adf52c6c4\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 246c727b4b9494849dddb068d582e179ac20999c\nOutput = 009cd2f4edbe23e12346ae8c76dd9ad3230a62076141f16c152ba18513a48ef6f010e0e37fd3df10a1ec629a0cb5a3b5d2893007298c30936a95903b6ba85555d9ec3673a06108fd62a2fda56d1ce2e85c4db6b24a81ca3b496c36d4fd06eb7c9166d8e94877c42bea622b3bfe9251fdc21d8d5371badad78a488214796335b40b\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = e8617ca3ea66ce6a58ede2d11af8c3ba8a6ba912\nOutput = 00ec430824931ebd3baa43034dae98ba646b8c36013d1671c3cf1cf8260c374b19f8e1cc8d965012405e7e9bf7378612dfcc85fce12cda11f950bd0ba8876740436c1d2595a64a1b32efcfb74a21c873b3cc33aaf4e3dc3953de67f0674c0453b4fd9f604406d441b816098cb106fe3472bc251f815f59db2e4378a3addc181ecf\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7a6fdc1a4e434ecbc35d657ad49a2f4fafd43bc8\nOutput = 00475b1648f814a8dc0abdc37b5527f543b666bb6e39d30e5b49d3b876dccc58eac14e32a2d55c2616014456ad2f246fc8e3d560da3ddf379a1c0bd200f10221df078c219a151bc8d4ec9d2fc2564467811014ef15d8ea01c2ebbff8c2c8efab38096e55fcbe3285c7aa558851254faffa92c1c72b78758663ef4582843139d7a6\n\nPublicKey = RSA-PSS-3\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818102f246ef451ed3eebb9a310200cc25859c048e4be798302991112eb68ce6db674e280da21feded1ae74880ca522b18db249385012827c515f0e466a1ffa691d98170574e9d0eadb087586ca48933da3cc953d95bd0ed50de10ddcb6736107d6c831c7f663e833ca4c097e700ce0fb945f88fb85fe8e5a773172565b914a471a4430203010001\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 3552be69dd74bdc56d2cf8c38ef7bafe269040fe\nOutput = 0088b135fb1794b6b96c4a3e678197f8cac52b64b2fe907d6f27de761124964a99a01a882740ecfaed6c01a47464bb05182313c01338a8cd097214cd68ca103bd57d3bc9e816213e61d784f182467abf8a01cf253e99a156eaa8e3e1f90e3c6e4e3aa2d83ed0345b89fafc9c26077c14b6ac51454fa26e446e3a2f153b2b16797f\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 609143ff7240e55c062aba8b9e4426a781919bc9\nOutput = 02a5f0a858a0864a4f65017a7d69454f3f973a2999839b7bbc48bf78641169179556f595fa41f6ff18e286c2783079bc0910ee9cc34f49ba681124f923dfa88f426141a368a5f5a930c628c2c3c200e18a7644721a0cbec6dd3f6279bde3e8f2be5e2d4ee56f97e7ceaf33054be7042bd91a63bb09f897bd41e81197dee99b11af\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 0afd22f879a9cda7c584f4135f8f1c961db114c0\nOutput = 0244bcd1c8c16955736c803be401272e18cb990811b14f72db964124d5fa760649cbb57afb8755dbb62bf51f466cf23a0a1607576e983d778fceffa92df7548aea8ea4ecad2c29dd9f95bc07fe91ecf8bee255bfe8762fd7690aa9bfa4fa0849ef728c2c42c4532364522df2ab7f9f8a03b63f7a499175828668f5ef5a29e3802c\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 405dd56d395ef0f01b555c48f748cc32b210650b\nOutput = 0196f12a005b98129c8df13c4cb16f8aa887d3c40d96df3a88e7532ef39cd992f273abc370bc1be6f097cfebbf0118fd9ef4b927155f3df22b904d90702d1f7ba7a52bed8b8942f412cd7bd676c9d18e170391dcd345c06a730964b3f30bcce0bb20ba106f9ab0eeb39cf8a6607f75c0347f0af79f16afa081d2c92d1ee6f836b8\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = a2c313b0440c8a0c47233b87f0a160c61af3eae7\nOutput = 021eca3ab4892264ec22411a752d92221076d4e01c0e6f0dde9afd26ba5acf6d739ef987545d16683e5674c9e70f1de649d7e61d48d0caeb4fb4d8b24fba84a6e3108fee7d0705973266ac524b4ad280f7ae17dc59d96d3351586b5a3bdb895d1e1f7820ac6135d8753480998382ba32b7349559608c38745290a85ef4e9f9bd83\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = f1bf6ca7b4bbdbb6bf20a4bf55728725d177154a\nOutput = 012fafec862f56e9e92f60ab0c77824f4299a0ca734ed26e0644d5d222c7f0bde03964f8e70a5cb65ed44e44d56ae0edf1ff86ca032cc5dd4404dbb76ab854586c44eed8336d08d457ce6c03693b45c0f1efef93624b95b8ec169c616d20e5538ebc0b6737a6f82b4bc0570924fc6b35759a3348426279f8b3d7744e2d222426ce\n\nPublicKey = RSA-PSS-4\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d00308189028181054adb7886447efe6f57e0368f06cf52b0a3370760d161cef126b91be7f89c421b62a6ec1da3c311d75ed50e0ab5fff3fd338acc3aa8a4e77ee26369acb81ba900fa83f5300cf9bb6c53ad1dc8a178b815db4235a9a9da0c06de4e615ea1277ce559e9c108de58c14a81aa77f5a6f8d1335494498848c8b95940740be7bf7c37050203010001\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = f8b0abf70fec0bca74f0accbc24f75e6e90d3bfd\nOutput = 0323d5b7bf20ba4539289ae452ae4297080feff4518423ff4811a817837e7d82f1836cdfab54514ff0887bddeebf40bf99b047abc3ecfa6a37a3ef00f4a0c4a88aae0904b745c846c4107e8797723e8ac810d9e3d95dfa30ff4966f4d75d13768d20857f2b1406f264cfe75e27d7652f4b5ed3575f28a702f8c4ed9cf9b2d44948\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 04a10944bfe11ab801e77889f3fd3d7f4ff0b629\nOutput = 049d0185845a264d28feb1e69edaec090609e8e46d93abb38371ce51f4aa65a599bdaaa81d24fba66a08a116cb644f3f1e653d95c89db8bbd5daac2709c8984000178410a7c6aa8667ddc38c741f710ec8665aa9052be929d4e3b16782c1662114c5414bb0353455c392fc28f3db59054b5f365c49e1d156f876ee10cb4fd70598\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ba01243db223eb97fb86d746c3148adaaa0ca344\nOutput = 03fbc410a2ced59500fb99f9e2af2781ada74e13145624602782e2994813eefca0519ecd253b855fb626a90d771eae028b0c47a199cbd9f8e3269734af4163599090713a3fa910fa0960652721432b971036a7181a2bc0cab4", - "3b0b598bc6217461d7db305ff7e954c5b5bb231c39e791af6bcfa76b147b081321f72641482a2aad\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 934bb0d38d6836daec9de82a9648d4593da67cd2\nOutput = 0486644bc66bf75d28335a6179b10851f43f09bded9fac1af33252bb9953ba4298cd6466b27539a70adaa3f89b3db3c74ab635d122f4ee7ce557a61e59b82ffb786630e5f9db53c77d9a0c12fab5958d4c2ce7daa807cd89ba2cc7fcd02ff470ca67b229fcce814c852c73cc93bea35be68459ce478e9d4655d121c8472f371d4f\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ec35d81abd1cceac425a935758b683465c8bd879\nOutput = 022a80045353904cb30cbb542d7d4990421a6eec16a8029a8422adfd22d6aff8c4cc0294af110a0c067ec86a7d364134459bb1ae8ff836d5a8a2579840996b320b19f13a13fad378d931a65625dae2739f0c53670b35d9d3cbac08e733e4ec2b83af4b9196d63e7c4ff1ddeae2a122791a125bfea8deb0de8ccf1f4ffaf6e6fb0a\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 72ce251d17b04dd3970d6ff1fbe3624899e9e941\nOutput = 00938dcb6d583046065f69c78da7a1f1757066a7fa75125a9d2929f0b79a60b627b082f11f5b196f28eb9daa6f21c05e5140f6aef1737d2023075c05ecf04a028c686a2ab3e7d5a0664f295ce12995e890908b6ad21f0839eb65b70393a7b5afd9871de0caa0cedec5b819626756209d13ab1e7bb9546a26ff37e9a51af9fd562e\n\nPublicKey = RSA-PSS-5\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d003081890281810d10f661f29940f5ed39aa260966deb47843679d2b6fb25b3de370f3ac7c19916391fd25fb527ebfa6a4b4df45a1759d996c4bb4ebd18828c44fc52d0191871740525f47a4b0cc8da325ed8aa676b0d0f626e0a77f07692170acac8082f42faa7dc7cd123e730e31a87985204cabcbe6670d43a2dd2b2ddef5e05392fc213bc5070203010001\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = d98b7061943510bc3dd9162f7169aabdbdcd0222\nOutput = 0ba373f76e0921b70a8fbfe622f0bf77b28a3db98e361051c3d7cb92ad0452915a4de9c01722f6823eeb6adf7e0ca8290f5de3e549890ac2a3c5950ab217ba58590894952de96f8df111b2575215da6c161590c745be612476ee578ed384ab33e3ece97481a252f5c79a98b5532ae00cdd62f2ecc0cd1baefe80d80b962193ec1d\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7ae8e699f754988f4fd645e463302e49a2552072\nOutput = 08180de825e4b8b014a32da8ba761555921204f2f90d5f24b712908ff84f3e220ad17997c0dd6e706630ba3e84add4d5e7ab004e58074b549709565d43ad9e97b5a7a1a29e85b9f90f4aafcdf58321de8c5974ef9abf2d526f33c0f2f82e95d158ea6b81f1736db8d1af3d6ac6a83b32d18bae0ff1b2fe27de4c76ed8c7980a34e\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 8d46c7c05534c1ba2cc7624500d48a4531604bff\nOutput = 05e0fdbdf6f756ef733185ccfa8ced2eb6d029d9d56e35561b5db8e70257ee6fd019d2f0bbf669fe9b9821e78df6d41e31608d58280f318ee34f559941c8df13287574bac000b7e58dc4f414ba49fb127f9d0f8936638c76e85356c994f79750f7fa3cf4fd482df75e3fb9978cd061f7abb17572e6e63e0bde12cbdcf18c68b979\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ee3de96783fd0a157c8b20bf5566124124dcfe65\nOutput = 0bc989853bc2ea86873271ce183a923ab65e8a53100e6df5d87a24c4194eb797813ee2a187c097dd872d591da60c568605dd7e742d5af4e33b11678ccb63903204a3d080b0902c89aba8868f009c0f1c0cb85810bbdd29121abb8471ff2d39e49fd92d56c655c8e037ad18fafbdc92c95863f7f61ea9efa28fea401369d19daea1\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 1204df0b03c2724e2709c23fc71789a21b00ae4c\nOutput = 0aefa943b698b9609edf898ad22744ac28dc239497cea369cbbd84f65c95c0ad776b594740164b59a739c6ff7c2f07c7c077a86d95238fe51e1fcf33574a4ae0684b42a3f6bf677d91820ca89874467b2c23add77969c80717430d0efc1d3695892ce855cb7f7011630f4df26def8ddf36fc23905f57fa6243a485c770d5681fcd\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 29926bc3280c841f601acd0d6f17ea38023eddbc\nOutput = 02802dccfa8dfaf5279bf0b4a29ba1b157611faeaaf419b8919d15941900c1339e7e92e6fae562c53e6cc8e84104b110bce03ad18525e3c49a0eadad5d3f28f244a8ed89edbafbb686277cfa8ae909714d6b28f4bf8e293aa04c41efe7c0a81266d5c061e2575be032aa464674ff71626219bd74cc45f0e7ed4e3ff96eee758e8f\n\nPublicKey = RSA-PSS-6\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d00308189028181164ca31cff609f3a0e7101b039f2e4fe6dd37519ab98598d179e174996598071f47d3a04559158d7be373cf1aa53f0aa6ef09039e5678c2a4c63900514c8c4f8aaed5de12a5f10b09c311af8c0ffb5b7a297f2efc63b8d6b0510931f0b98e48bf5fc6ec4e7b8db1ffaeb08c38e02adb8f03a48229c99e969431f61cb8c4dc698d10203010001\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ab464e8cb65ae5fdea47a53fa84b234d6bfd52f6\nOutput = 04c0cfacec04e5badbece159a5a1103f69b3f32ba593cb4cc4b1b7ab455916a96a27cd2678ea0f46ba37f7fc9c86325f29733b389f1d97f43e7201c0f348fc45fe42892335362eee018b5b161f2f9393031225c713012a576bc88e23052489868d9010cbf033ecc568e8bc152bdc59d560e41291915d28565208e22aeec9ef85d1\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 92d0bcae82b641f578f040f5151be8eda6d42299\nOutput = 0a2314250cf52b6e4e908de5b35646bcaa24361da8160fb0f9257590ab3ace42b0dc3e77ad2db7c203a20bd952fbb56b1567046ecfaa933d7b1000c3de9ff05b7d989ba46fd43bc4c2d0a3986b7ffa13471d37eb5b47d64707bd290cfd6a9f393ad08ec1e3bd71bb5792615035cdaf2d8929aed3be098379377e777ce79aaa4773\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 3569bd8fd2e28f2443375efa94f186f6911ffc2b\nOutput = 086df6b500098c120f24ff8423f727d9c61a5c9007d3b6a31ce7cf8f3cbec1a26bb20e2bd4a046793299e03e37a21b40194fb045f90b18bf20a47992ccd799cf9c059c299c0526854954aade8a6ad9d97ec91a1145383f42468b231f4d72f23706d9853c3fa43ce8ace8bfe7484987a1ec6a16c8daf81f7c8bf42774707a9df456\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7abbb7b42de335730a0b641f1e314b6950b84f98\nOutput = 0b5b11ad549863ffa9c51a14a1106c2a72cc8b646e5c7262509786105a984776534ca9b54c1cc64bf2d5a44fd7e8a69db699d5ea52087a4748fd2abc1afed1e5d6f7c89025530bdaa2213d7e030fa55df6f34bcf1ce46d2edf4e3ae4f3b01891a068c9e3a44bbc43133edad6ecb9f35400c4252a5762d65744b99cb9f4c559329f\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 55b7eb27be7a787a59eb7e5fac468db8917a7725\nOutput = 02d71fa9b53e4654fefb7f08385cf6b0ae3a817942ebf66c35ac67f0b069952a3ce9c7e1f1b02e480a9500836de5d64cdb7ecde04542f7a79988787e24c2ba05f5fd482c023ed5c30e04839dc44bed2a3a3a4fee01113c891a47d32eb8025c28cb050b5cdb576c70fe76ef523405c08417faf350b037a43c379339fcb18d3a356b\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = de2fa0367ef49083ff89b9905d3fd646fcc12c38\nOutput = 0a40a16e2fe2b38d1df90546167cf9469c9e3c3681a3442b4b2c2f581deb385ce99fc6188bb02a841d56e76d301891e24560550fcc2a26b55f4ccb26d837d350a154bcaca8392d98fa67959e9727b78cad03269f56968fc56b68bd679926d83cc9cb215550645ccda31c760ff35888943d2d8a1d351e81e5d07b86182e751081ef\n\nPublicKey = RSA-PSS-7\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818137c9da4a66c8c408b8da27d0c9d79f8ccb1eafc1d2fe48746d940b7c4ef5dee18ad12647cefaa0c4b3188b221c515386759b93f02024b25ab9242f8357d8f3fd49640ee5e643eaf6c64deefa7089727c8ff03993333915c6ef21bf5975b6e50d118b51008ec33e9f01a0a545a10a836a43ddbca9d8b5c5d3548022d7064ea29ab30203010001\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 8be4afbdd76bd8d142c5f4f46dba771ee5d6d29d\nOutput = 187f390723c8902591f0154bae6d4ecbffe067f0e8b795476ea4f4d51ccc810520bb3ca9bca7d0b1f2ea8a17d873fa27570acd642e3808561cb9e975ccfd80b23dc5771cdb3306a5f23159dacbd3aa2db93d46d766e09ed15d900ad897a8d274dc26b47e994a27e97e2268a766533ae4b5e42a2fcaf755c1c4794b294c60555823\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 402140dc605b2f5c5ec0d15bce9f9ba8857fe117\nOutput = 10fd89768a60a67788abb5856a787c8561f3edcf9a83e898f7dc87ab8cce79429b43e56906941a886194f137e591fe7c339555361fbbe1f24feb2d4bcdb80601f3096bc9132deea60ae13082f44f9ad41cd628936a4d51176e42fc59cb76db815ce5ab4db99a104aafea68f5d330329ebf258d4ede16064bd1d00393d5e1570eb8\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 3e885205892ff2b6b37c2c4eb486c4bf2f9e7f20\nOutput = 2b31fde99859b977aa09586d8e274662b25a2a640640b457f594051cb1e7f7a911865455242926cf88fe80dfa3a75ba9689844a11e634a82b075afbd69c12a0df9d25f84ad4945df3dc8fe90c3cefdf26e95f0534304b5bdba20d3e5640a2ebfb898aac35ae40f26fce5563c2f9f24f3042af76f3c7072d687bbfb959a88460af1\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 1fc2201d0c442a4736cd8b2cd00c959c47a3bf42\nOutput = 32c7ca38ff26949a15000c4ba04b2b13b35a3810e568184d7ecabaa166b7ffabddf2b6cf4ba07124923790f2e5b1a5be040aea36fe132ec130e1f10567982d17ac3e89b8d26c3094034e762d2e031264f01170beecb3d1439e05846f25458367a7d9c0206", - "0444672671e64e877864559ca19b2074d588a281b5804d23772fbbe19\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = e4351b66819e5a31501f89acc7faf57030e9aac5\nOutput = 07eb651d75f1b52bc263b2e198336e99fbebc4f332049a922a10815607ee2d989db3a4495b7dccd38f58a211fb7e193171a3d891132437ebca44f318b280509e52b5fa98fcce8205d9697c8ee4b7ff59d4c59c79038a1970bd2a0d451ecdc5ef11d9979c9d35f8c70a6163717607890d586a7c6dc01c79f86a8f28e85235f8c2f1\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 49f6cc58365e514e1a3f301f4de16f9fb5347ff2\nOutput = 18da3cdcfe79bfb77fd9c32f377ad399146f0a8e810620233271a6e3ed3248903f5cdc92dc79b55d3e11615aa056a795853792a3998c349ca5c457e8ca7d29d796aa24f83491709befcfb1510ea513c92829a3f00b104f655634f320752e130ec0ccf6754ff893db302932bb025eb60e87822598fc619e0e981737a9a4c4152d33\n\nPublicKey = RSA-PSS-8\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d00308189028181495370a1fb18543c16d3631e3163255df62be6eee890d5f25509e4f778a8ea6fbbbcdf85dff64e0d972003ab3681fbba6dd41fd541829b2e582de9f2a4a4e0a2d0900bef4753db3cee0ee06c7dfae8b1d53b5953218f9cceea695b08668edeaadced9463b1d790d5ebf27e9115b46cad4d9a2b8efab0561b0810344739ada0733f0203010001\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = a1dd230d8ead860199b6277c2ecfe3d95f6d9160\nOutput = 0262ac254bfa77f3c1aca22c5179f8f040422b3c5bafd40a8f21cf0fa5a667ccd5993d42dbafb409c520e25fce2b1ee1e716577f1efa17f3da28052f40f0419b23106d7845aaf01125b698e7a4dfe92d3967bb00c4d0d35ba3552ab9a8b3eef07c7fecdbc5424ac4db1e20cb37d0b2744769940ea907e17fbbca673b20522380c5\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = f6e68e53c602c5c65fa67b5aa6d786e5524b12ab\nOutput = 2707b9ad5115c58c94e932e8ec0a280f56339e44a1b58d4ddcff2f312e5f34dcfe39e89c6a94dcee86dbbdae5b79ba4e0819a9e7bfd9d982e7ee6c86ee68396e8b3a14c9c8f34b178eb741f9d3f121109bf5c8172fada2e768f9ea1433032c004a8aa07eb990000a48dc94c8bac8aabe2b09b1aa46c0a2aa0e12f63fbba775ba7e\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = d6f9fcd3ae27f32bb2c7c93536782eba52af1f76\nOutput = 2ad20509d78cf26d1b6c406146086e4b0c91a91c2bd164c87b966b8faa42aa0ca446022323ba4b1a1b89706d7f4c3be57d7b69702d168ab5955ee290356b8c4a29ed467d547ec23cbadf286ccb5863c6679da467fc9324a151c7ec55aac6db4084f82726825cfe1aa421bc64049fb42f23148f9c25b2dc300437c38d428aa75f96\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7ff2a53ce2e2d900d468e498f230a5f5dd0020de\nOutput = 1e24e6e58628e5175044a9eb6d837d48af1260b0520e87327de7897ee4d5b9f0df0be3e09ed4dea8c1454ff3423bb08e1793245a9df8bf6ab3968c8eddc3b5328571c77f091cc578576912dfebd164b9de5454fe0be1c1f6385b328360ce67ec7a05f6e30eb45c17c48ac70041d2cab67f0a2ae7aafdcc8d245ea3442a6300ccc7\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 4eb309f7022ba0b03bb78601b12931ec7c1be8d3\nOutput = 33341ba3576a130a50e2a5cf8679224388d5693f5accc235ac95add68e5eb1eec31666d0ca7a1cda6f70a1aa762c05752a51950cdb8af3c5379f18cfe6b5bc55a4648226a15e912ef19ad77adeea911d67cfefd69ba43fa4119135ff642117ba985a7e0100325e9519f1ca6a9216bda055b5785015291125e90dcd07a2ca9673ee\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 65033bc2f67d6aba7d526acb873b8d9241e5e4d9\nOutput = 1ed1d848fb1edb44129bd9b354795af97a069a7a00d0151048593e0c72c3517ff9ff2a41d0cb5a0ac860d736a199704f7cb6a53986a88bbd8abcc0076a2ce847880031525d449da2ac78356374c536e343faa7cba42a5aaa6506087791c06a8e989335aed19bfab2d5e67e27fb0c2875af896c21b6e8e7309d04e4f6727e69463e\n\nPublicKey = RSA-PSS-9\nType = RSA\nInput = 3081df300d06092a864886f70d01010105000381cd003081c90281c100e6bd692ac96645790403fdd0f5beb8b9bf92ed10007fc365046419dd06c05c5b5b2f48ecf989e4ce269109979cbb40b4a0ad24d22483d1ee315ad4ccb1534268352691c524f6dd8e6c29d224cf246973aec86c5bf6b1401a850d1b9ad1bb8cbcec47b06f0f8c7f45d3fc8f319299c5433ddbc2b3053b47ded2ecd4a4caefd614833dc8bb622f317ed076b8057fe8de3f84480ad5e83e4a61904a4f248fb397027357e1d30e463139815c6fd4fd5ac5b8172a45230ecb6318a04f1455d84e5a8b0203010001\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 2715a49b8b0012cd7aee84c116446e6dfe3faec0\nOutput = 586107226c3ce013a7c8f04d1a6a2959bb4b8e205ba43a27b50f124111bc35ef589b039f5932187cb696d7d9a32c0c38300a5cdda4834b62d2eb240af33f79d13dfbf095bf599e0d9686948c1964747b67e89c9aba5cd85016236f566cc5802cb13ead51bc7ca6bef3b94dcbdbb1d570469771df0e00b1a8a06777472d2316279edae86474668d4e1efff95f1de61c6020da32ae92bbf16520fef3cf4d88f61121f24bbd9fe91b59caf1235b2a93ff81fc403addf4ebdea84934a9cdaf8e1a9e\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 2dac956d53964748ac364d06595827c6b4f143cd\nOutput = 80b6d643255209f0a456763897ac9ed259d459b49c2887e5882ecb4434cfd66dd7e1699375381e51cd7f554f2c271704b399d42b4be2540a0eca61951f55267f7c2878c122842dadb28b01bd5f8c025f7e228418a673c03d6bc0c736d0a29546bd67f786d9d692ccea778d71d98c2063b7a71092187a4d35af108111d83e83eae46c46aa34277e06044589903788f1d5e7cee25fb485e92949118814d6f2c3ee361489016f327fb5bc517eb50470bffa1afa5f4ce9aa0ce5b8ee19bf5501b958\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 28d98c46cccafbd3bc04e72f967a54bd3ea12298\nOutput = 484408f3898cd5f53483f80819efbf2708c34d27a8b2a6fae8b322f9240237f981817aca1846f1084daa6d7c0795f6e5bf1af59c38e1858437ce1f7ec419b98c8736adf6dd9a00b1806d2bd3ad0a73775e05f52dfef3a59ab4b08143f0df05cd1ad9d04bececa6daa4a2129803e200cbc77787caf4c1d0663a6c5987b605952019782caf2ec1426d68fb94ed1d4be816a7ed081b77e6ab330b3ffc073820fecde3727fcbe295ee61a050a343658637c3fd659cfb63736de32d9f90d3c2f63eca\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 0866d2ff5a79f25ef668cd6f31b42dee421e4c0e\nOutput = 84ebeb481be59845b46468bafb471c0112e02b235d84b5d911cbd1926ee5074ae0424495cb20e82308b8ebb65f419a03fb40e72b78981d88aad143053685172c97b29c8b7bf0ae73b5b2263c403da0ed2f80ff7450af7828eb8b86f0028bd2a8b176a4d228cccea18394f238b09ff758cc00bc04301152355742f282b54e663a919e709d8da24ade5500a7b9aa50226e0ca52923e6c2d860ec50ff480fa57477e82b0565f4379f79c772d5c2da80af9fbf325ece6fc20b00961614bee89a183e\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 6a5b4be4cd36cc97dfde9995efbf8f097a4a991a\nOutput = 82102df8cb91e7179919a04d26d335d64fbc2f872c44833943241de8454810274cdf3db5f42d423db152af7135f701420e39b494a67cbfd19f9119da233a23da5c6439b5ba0d2bc373eee3507001378d4a4073856b7fe2aba0b5ee93b27f4afec7d4d120921c83f606765b02c19e4d6a1a3b95fa4c422951be4f52131077ef17179729cddfbdb56950dbaceefe78cb16640a099ea56d24389eef10f8fecb31ba3ea3b227c0a86698bb89e3e9363905bf22777b2a3aa521b65b4cef76d83bde4c\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = b9dfd1df76a461c51e6576c6c8ed0a923d1c50e7\nOutput = a7fdb0d259165ca2c88d00bbf1028a867d337699d061193b17a9648e14ccbbaadeacaacdec815e7571294ebb8a117af205fa078b47b0712c199e3ad05135c504c24b81705115740802487992ffd511d4afc6b854491eb3f0dd523139542ff15c3101ee85543517c6a3c79417c67e2dd9aa741e9a29b06dcb593c2336b3670ae3afbac7c3e76e215473e866e338ca244de00b62624d6b9426822ceae9f8cc460895f41250073fd45c5a1e7b425c204a423a699159f6903e710b37a7bb2bc8049f\n\nPublicKey = RSA-PSS-10\nType = RSA\nInput = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a5dd867ac4cb02f90b9457d48c14a770ef991c56c39c0ec65fd11afa8937cea57b9be7ac73b45c0017615b82d622e318753b6027c0fd157be12f8090fee2a7adcd0eef759f88ba4997c7a42d58c9aa12cb99ae001fe521c13bb5431445a8d5ae4f5e4c7e948ac227d3604071f20e577e905fbeb15dfaf06d1de5ae6253d63a6a2120b31a5da5dabc9550600e20f27d3739e2627925fea3cc509f21dff04e6eea4549c540d6809ff9307eede91fff58733d8385a237d6d3705a33e391900992070df7adf1357cf7e3700ce3667de83f17b8df1778db381dce09cb4ad058a511001a738198ee27cf55a13b754539906582ec8b174bd58d5d1f3d767c613721ae050203010001\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 9596bb630cf6a8d4ea4600422b9eba8b13675dd4\nOutput = 82c2b160093b8aa3c0f7522b19f87354066c77847abf2a9fce542d0e84e920c5afb49ffdfdace16560ee94a1369601148ebad7a0e151cf16331791a5727d05f21e74e7eb811440206935d744765a15e79f015cb66c532c87a6a05961c8bfad741a9a6657022894393e7223739796c02a77455d0f555b0ec01ddf259b6207fd0fd57614cef1a5573baaff4ec00069951659b85f24300a25160ca8522dc6e6727e57d019d7e63629b8fe5e89e25cc15beb3a647577559299280b9b28f79b0409000be25bbd96408ba3b43cc486184dd1c8e62553fa1af4040f60663de7f5e49c04388e257f1ce89c95dab48a315d9b66b1b7628233876ff2385230d070d07e1666\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest ", - "= SHA1\nInput = b503319399277fd6c1c8f1033cbf04199ea21716\nOutput = 14ae35d9dd06ba92f7f3b897978aed7cd4bf5ff0b585a40bd46ce1b42cd2703053bb9044d64e813d8f96db2dd7007d10118f6f8f8496097ad75e1ff692341b2892ad55a633a1c55e7f0a0ad59a0e203a5b8278aec54dd8622e2831d87174f8caff43ee6c46445345d84a59659bfb92ecd4c818668695f34706f66828a89959637f2bf3e3251c24bdba4d4b7649da0022218b119c84e79a6527ec5b8a5f861c159952e23ec05e1e717346faefe8b1686825bd2b262fb2531066c0de09acde2e4231690728b5d85e115a2f6b92b79c25abc9bd9399ff8bcf825a52ea1f56ea76dd26f43baafa18bfa92a504cbd35699e26d1dcc5a2887385f3c63232f06f3244c3\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 50aaede8536b2c307208b275a67ae2df196c7628\nOutput = 6e3e4d7b6b15d2fb46013b8900aa5bbb3939cf2c095717987042026ee62c74c54cffd5d7d57efbbf950a0f5c574fa09d3fc1c9f513b05b4ff50dd8df7edfa20102854c35e592180119a70ce5b085182aa02d9ea2aa90d1df03f2daae885ba2f5d05afdac97476f06b93b5bc94a1a80aa9116c4d615f333b098892b25fface266f5db5a5a3bcc10a824ed55aad35b727834fb8c07da28fcf416a5d9b2224f1f8b442b36f91e456fdea2d7cfe3367268de0307a4c74e924159ed33393d5e0655531c77327b89821bdedf880161c78cd4196b5419f7acc3f13e5ebf161b6e7c6724716ca33b85c2e25640192ac2859651d50bde7eb976e51cec828b98b6563b86bb\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = aa0b72b8b371ddd10c8ae474425ccccf8842a294\nOutput = 34047ff96c4dc0dc90b2d4ff59a1a361a4754b255d2ee0af7d8bf87c9bc9e7ddeede33934c63ca1c0e3d262cb145ef932a1f2c0a997aa6a34f8eaee7477d82ccf09095a6b8acad38d4eec9fb7eab7ad02da1d11d8e54c1825e55bf58c2a23234b902be124f9e9038a8f68fa45dab72f66e0945bf1d8bacc9044c6f07098c9fcec58a3aab100c805178155f030a124c450e5acbda47d0e4f10b80a23f803e774d023b0015c20b9f9bbe7c91296338d5ecb471cafb032007b67a60be5f69504a9f01abb3cb467b260e2bce860be8d95bf92c0c8e1496ed1e528593a4abb6df462dde8a0968dffe4683116857a232f5ebf6c85be238745ad0f38f767a5fdbf486fb\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = fad3902c9750622a2bc672622c48270cc57d3ea8\nOutput = 7e0935ea18f4d6c1d17ce82eb2b3836c55b384589ce19dfe743363ac9948d1f346b7bfddfe92efd78adb21faefc89ade42b10f374003fe122e67429a1cb8cbd1f8d9014564c44d120116f4990f1a6e38774c194bd1b8213286b077b0499d2e7b3f434ab12289c556684deed78131934bb3dd6537236f7c6f3dcb09d476be07721e37e1ceed9b2f7b406887bd53157305e1c8b4f84d733bc1e186fe06cc59b6edb8f4bd7ffefdf4f7ba9cfb9d570689b5a1a4109a746a690893db3799255a0cb9215d2d1cd490590e952e8c8786aa0011265252470c041dfbc3eec7c3cbf71c24869d115c0cb4a956f56d530b80ab589acfefc690751ddf36e8d383f83cedd2cc\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 122196deb5d122bd8c6fc781ff6924d7c695aade\nOutput = 6d3b5b87f67ea657af21f75441977d2180f91b2c5f692de82955696a686730d9b9778d970758ccb26071c2209ffbd6125be2e96ea81b67cb9b9308239fda17f7b2b64ecda096b6b935640a5a1cb42a9155b1c9ef7a633a02c59f0d6ee59b852c43b35029e73c940ff0410e8f114eed46bbd0fae165e42be2528a401c3b28fd818ef3232dca9f4d2a0f5166ec59c42396d6c11dbc1215a56fa17169db9575343ef34f9de32a49cdc3174922f229c23e18e45df9353119ec4319cedce7a17c64088c1f6f52be29634100b3919d38f3d1ed94e6891e66a73b8fb849f5874df59459e298c7bbce2eee782a195aa66fe2d0732b25e595f57d3e061b1fc3e4063bf98f\n\nPrivateKey = RSA-OAEP-1\nType = RSA\nInput = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100a8b3b284af8eb50b387034a860f146c4919f318763cd6c5598c8ae4811a1e0abc4c7e0b082d693a5e7fced675cf4668512772c0cbc64a742c6c630f533c8cc72f62ae833c40bf25842e984bb78bdbf97c0107d55bdb662f5c4e0fab9845cb5148ef7392dd3aaff93ae1e6b667bb3d4247616d4f5ba10d4cfd226de88d39f16fb020301000102818053339cfdb79fc8466a655c7316aca85c55fd8f6dd898fdaf119517ef4f52e8fd8e258df93fee180fa0e4ab29693cd83b152a553d4ac4d1812b8b9fa5af0e7f55fe7304df41570926f3311f15c4d65a732c483116ee3d3d2d0af3549ad9bf7cbfb78ad884f84d5beb04724dc7369b31def37d0cf539e9cfcdd3de653729ead5d1024100d32737e7267ffe1341b2d5c0d150a81b586fb3132bed2f8d5262864a9cb9f30af38be448598d413a172efb802c21acf1c11c520c2f26a471dcad212eac7ca39d024100cc8853d1d54da630fac004f471f281c7b8982d8224a490edbeb33d3e3d5cc93c4765703d1dd791642f1f116a0dd852be2419b2af72bfe9a030e860b0288b5d7702400e12bf1718e9cef5599ba1c3882fe8046a90874eefce8f2ccc20e4f2741fb0a33a3848aec9c9305fbecbd2d76819967d4671acc6431e4037968db37878e695c102410095297b0f95a2fa67d00707d609dfd4fc05c89dafc2ef6d6ea55bec771ea333734d9251e79082ecda866efef13c459e1a631386b7e354c899f5f112ca85d7158302404f456c502493bdc0ed2ab756a3a6ed4d67352a697d4216e93212b127a63d5411ce6fa98d5dbefd73263e3728142743818166ed7dd63687dd2a8ca1d2f4fbd8e1\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 354fe67b4a126d5d35fe36c777791a3f7ba13def484e2d3908aff722fad468fb21696de95d0be911c2d3174f8afcc201035f7b6d8e69402de5451618c21a535fa9d7bfc5b8dd9fc243f8cf927db31322d6e881eaa91a996170e657a05a266426d98c88003f8477c1227094a0d9fa1e8c4024309ce1ecccb5210035d47ac72e8a\nOutput = 6628194e12073db03ba94cda9ef9532397d50dba79b987004afefe34\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 640db1acc58e0568fe5407e5f9b701dff8c3c91e716c536fc7fcec6cb5b71c1165988d4a279e1577d730fc7a29932e3f00c81515236d8d8e31017a7a09df4352d904cdeb79aa583adcc31ea698a4c05283daba9089be5491f67c1a4ee48dc74bbbe6643aef846679b4cb395a352d5ed115912df696ffe0702932946d71492b44\nOutput = 750c4047f547e8e41411856523298ac9bae245efaf1397fbe56f9dd5\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 423736ed035f6026af276c35c0b3741b365e5f76ca091b4e8c29e2f0befee603595aa8322d602d2e625e95eb81b2f1c9724e822eca76db8618cf09c5343503a4360835b5903bc637e3879fb05e0ef32685d5aec5067cd7cc96fe4b2670b6eac3066b1fcf5686b68589aafb7d629b02d8f8625ca3833624d4800fb081b1cf94eb\nOutput = d94ae0832e6445ce42331cb06d531a82b1db4baad30f746dc916df24d4e3c2451fff59a6423eb0e1d02d4fe646cf699dfd818c6e97b051\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 45ead4ca551e662c9800f1aca8283b0525e6abae30be4b4aba762fa40fd3d38e22abefc69794f6ebbbc05ddbb11216247d2f412fd0fba87c6e3acd888813646fd0e48e785204f9c3f73d6d8239562722dddd8771fec48b83a31ee6f592c4cfd4bc88174f3b13a112aae3b9f7b80e0fc6f7255ba880dc7d8021e22ad6a85f0755\nOutput = 52e650d98e7f2a048b4f86852153b97e01dd316f346a19f67a85\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 36f6e34d94a8d34daacba33a2139d00ad85a9345a86051e73071620056b920e219005855a213a0f23897cdcd731b45257c777fe908202befdd0b58386b1244ea0cf539a05d5d10329da44e13030fd760dcd644cfef2094d1910d3f433e1c7c6dd18bc1f2df7f643d662fb9dd37ead9059190f4fa66ca39e869c4eb449cbdc439\nOutput = 8da89fd9e5f974a29feffb462b49180f6cf9e802\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 42cee2617b1ecea4db3f4829386fbd61dafbf038e180d837c96366df24c097b4ab0fac6bdf590d821c9f10642e681ad05b8d78b378c0f46ce2fad63f74e0ad3df06b075d7eb5f5636f8d403b9059ca761b5c62bb52aa45002ea70baace08ded243b9d8cbd62a68ade265832b56564e43a6fa42ed199a099769742df1539e8255\nOutput = 26521050844271\n\nPrivateKey = RSA-OAEP-2\nType = RSA\nInput = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818101947c7fce90425f47279e70851f25d5e62316fe8a1df19371e3e628e260543e4901ef6081f68c0b8141190d2ae8daba7d1250ec6db636e944ec3722877c7c1d0a67f14b1694c5f0379451a43e49a32dde83670b73da91a1c99bc23b436a60055c610f0baf99c1a079565b95a3f1526632d1d4da60f20eda25e653c4f002766f4502030100010281800823f20fadb5da89088a9d00893e21fa4a1b11fbc93c64a3be0baaea97fb3b93c3ff713704c19c963c1d107aae99054739f79e02e186de86f87a6ddefea6d8ccd1d3c81a47bfa7255be20601a4a4b2f08a167b5e279d715b1b455bdd7eab245941d9768b9acefb3ccda5952da3cee72525b4501663a8ee15c9e992d92462fe3902410159dbde04a33ef06fb608b80b190f4d3e22bcc13ac8e4a081033abfa416edb0b338aa08b57309ea5a5240e7dc6e54378c69414c31d97ddb1f406db3769cc41a430241012b652f30403b38b40995fd6ff41a1acc8ada70373236b7202d39b2ee30cfb46db09511f6f307cc61cc21606c18a75b8a62f822df031ba0df0dafd5506f568bd70240436ef508de736519c2da4c580d98c82cb7452a3fb5efadc3b9c7789a1bc6584f795addbbd32439c74686552ecb6c2c307a4d3af7f539eec157248c7b31f1a2550241012b15a89f3dfb2b39073e73f02bdd0c1a7b379dd435f05cdde2eff9e462948b7cec62ee9050d5e0816e0785a856b49108dcb75f3683874d1ca6329a19013066ff02400270db17d5914b018d76118b24389a7350ec836b0063a21721236fd8edb6d89b51e7eeb87b611b7132cb7ea7356c23151c1e7751507c786d9ee1794170a8c8e8\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0181af8922b9fcb4d79d92ebe19815992fc0c1439d8bcd491398a0f4ad3a329a5bd9385560db532683c8b7da", - "04e4b12aed6aacdf471c34c9cda891addcc2df3456653aa6382e9ae59b54455257eb099d562bbe10453f2b6d13c59c02e10f1f8abb5da0d0570932dacf2d0901db729d0fefcc054e70968ea540c81b04bcaefe720e\nOutput = 8ff00caa605c702830634d9a6c3d42c652b58cf1d92fec570beee7\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 018759ff1df63b2792410562314416a8aeaf2ac634b46f940ab82d64dbf165eee33011da749d4bab6e2fcd18129c9e49277d8453112b429a222a8471b070993998e758861c4d3f6d749d91c4290d332c7a4ab3f7ea35ff3a07d497c955ff0ffc95006b62c6d296810d9bfab024196c7934012c2df978ef299aba239940cba10245\nOutput = 2d\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 018802bab04c60325e81c4962311f2be7c2adce93041a00719c88f957575f2c79f1b7bc8ced115c706b311c08a2d986ca3b6a9336b147c29c6f229409ddec651bd1fdd5a0b7f610c9937fdb4a3a762364b8b3206b4ea485fd098d08f63d4aa8bb2697d027b750c32d7f74eaf5180d2e9b66b17cb2fa55523bc280da10d14be2053\nOutput = 74fc88c51bc90f77af9d5e9a4a70133d4b4e0b34da3c37c7ef8e\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00a4578cbc176318a638fba7d01df15746af44d4f6cd96d7e7c495cbf425b09c649d32bf886da48fbaf989a2117187cafb1fb580317690e3ccd446920b7af82b31db5804d87d01514acbfa9156e782f867f6bed9449e0e9a2c09bcecc6aa087636965e34b3ec766f2fe2e43018a2fddeb140616a0e9d82e5331024ee0652fc7641\nOutput = a7eb2a5036931d27d4e891326d99692ffadda9bf7efd3e34e622c4adc085f721dfe885072c78a203b151739be540fa8c153a10f00a\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00ebc5f5fda77cfdad3c83641a9025e77d72d8a6fb33a810f5950f8d74c73e8d931e8634d86ab1246256ae07b6005b71b7f2fb98351218331ce69b8ffbdc9da08bbc9c704f876deb9df9fc2ec065cad87f9090b07acc17aa7f997b27aca48806e897f771d95141fe4526d8a5301b678627efab707fd40fbebd6e792a25613e7aec\nOutput = 2ef2b066f854c33f3bdcbb5994a435e73d6c6c\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 010839ec20c27b9052e55befb9b77e6fc26e9075d7a54378c646abdf51e445bd5715de81789f56f1803d9170764a9e93cb78798694023ee7393ce04bc5d8f8c5a52c171d43837e3aca62f609eb0aa5ffb0960ef04198dd754f57f7fbe6abf765cf118b4ca443b23b5aab266f952326ac4581100644325f8b721acd5d04ff14ef3a\nOutput = 8a7fb344c8b6cb2cf2ef1f643f9a3218f6e19bba89c0\n\nPrivateKey = RSA-OAEP-3\nType = RSA\nInput = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818102b58fec039a860700a4d7b6462f93e6cdd491161ddd74f4e810b40e3c1652006a5c277b2774c11305a4cbab5a78efa57e17a86df7a3fa36fc4b1d2249f22ec7c2dd6a463232accea906d66ebe80b5704b10729da6f833234abb5efdd4a292cbfad33b4d33fa7a14b8c397b56e3acd21203428b77cdfa33a6da706b3d8b0fc43e9020301000102818015b48a5b5683a94670e23b5718f814fa0e13f85038f50711182cba61510581f3d22c7e232ef937e22e551d68b86e2f8cb1aad8be2e488f5df7efd279e3f568d4eaf36f80cf7141ace60fcc9113fb6c4a841fd50bbc7c512ffcbeff21487aa811eb3ca8c62005346a86de86bfa1d8a948fd3f348c22eaadf333c3ce6ce13208fd024101bf01d216d73595cf0270c2beb78d40a0d8447d31da919a983f7eea781b77d85fe371b3e9373e7b69217d3150a02d8958de7fad9d555160958b4454127e0e7eaf0241018d3399658166db3829816d7b295416759e9c91987f5b2d8aecd63b04b48bd7b2fcf229bb7f8a6dc88ba13dd2e39ad55b6d1a06160708f9700be80b8fd3744ce7024006c0a249d20a6f2ee75c88b494d53f6aae99aa427c88c28b163a769445e5f390cf40c274fd6ea6329a5ce7c7ce03a2158396ee2a7845786e09e2885a9728e4e5024100d1d27c29fedd92d86c348edd0ccbfac14f746e051ce1d1811df35d61f2ee1c97d4bf2804802f6427187ba8e90a8af44243b4079b03445e602e29fa5193e64fe90241008cb2f756bd8941b1d3b770e5ad31ee373b28acda69ff9b6f40fe578b9f1afb85836f9627d37acff73c2779e634bb26011c2c8f7f3361ae2a9ea65ed689e3639a\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 026a0485d96aebd96b4382085099b962e6a2bdec3d90c8db625e14372de85e2d5b7baab65c8faf91bb5504fb495afce5c988b3f6a52e20e1d6cbd3566c5cd1f2b8318bb542cc0ea25c4aab9932afa20760eaddec784396a07ea0ef24d4e6f4d37e5052a7a31e146aa480a111bbe926401307e00f410033842b6d82fe5ce4dfae80\nOutput = 087820b569e8fa8d\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 024db89c7802989be0783847863084941bf209d761987e38f97cb5f6f1bc88da72a50b73ebaf11c879c4f95df37b850b8f65d7622e25b1b889e80fe80baca2069d6e0e1d829953fc459069de98ea9798b451e557e99abf8fe3d9ccf9096ebbf3e5255d3b4e1c6d2ecadf067a359eea86405acd47d5e165517ccafd47d6dbee4bf5\nOutput = 4653acaf171960b01f52a7be63a3ab21dc368ec43b50d82ec3781e04\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0239bce681032441528877d6d1c8bb28aa3bc97f1df584563618995797683844ca86664732f4bed7a0aab083aaabfb7238f582e30958c2024e44e57043b97950fd543da977c90cdde5337d618442f99e60d7783ab59ce6dd9d69c47ad1e962bec22d05895cff8d3f64ed5261d92b2678510393484990ba3f7f06818ae6ffce8a3a\nOutput = d94cd0e08fa404ed89\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 02994c62afd76f498ba1fd2cf642857fca81f4373cb08f1cbaee6f025c3b512b42c3e8779113476648039dbe0493f9246292fac28950600e7c0f32edf9c81b9dec45c3bde0cc8d8847590169907b7dc5991ceb29bb0714d613d96df0f12ec5d8d3507c8ee7ae78dd83f216fa61de100363aca48a7e914ae9f42ddfbe943b09d9a0\nOutput = 6cc641b6b61e6f963974dad23a9013284ef1\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0162042ff6969592a6167031811a239834ce638abf54fec8b99478122afe2ee67f8c5b18b0339805bfdbc5a4e6720b37c59cfba942464c597ff532a119821545fd2e59b114e61daf71820529f5029cf524954327c34ec5e6f5ba7efcc4de943ab8ad4ed787b1454329f70db798a3a8f4d92f8274e2b2948ade627ce8ee33e43c60\nOutput = df5151832b61f4f25891fb4172f328d2eddf8371ffcfdbe997939295f30eca6918017cfda1153bf7a6af87593223\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00112051e75d064943bc4478075e43482fd59cee0679de6893eec3a943daa490b9691c93dfc0464b6623b9f3dbd3e70083264f034b374f74164e1a00763725e574744ba0b9db83434f31df96f6e2a26f6d8eba348bd4686c2238ac07c37aac3785d1c7eea2f819fd91491798ed8e9cef5e43b781b0e0276e37c43ff9492d005730\nOutput = 3c3bad893c544a6d520ab022319188c8d504b7a788b850903b85972eaa18552e1134a7ad6098826254ff7ab672b3d8eb3158fac6d4cbaef1\n\nPrivateKey = RSA-OAEP-4\nType = RSA\nInput = 30820277020100300d06092a864886f70d0101010500048202613082025d020100028181051240b6cc0004fa48d0134671c078c7c8dec3b3e2f25bc2564467339db38853d06b85eea5b2de353bff42ac2e46bc97fae6ac9618da9537a5c8f553c1e357625991d6108dcd7885fb3a25413f53efcad948cb35cd9b9ae9c1c67626d113d57dde4c5bea76bb5bb7de96c00d07372e9685a6d75cf9d239fa148d70931b5f3fb03902030100010281800411ffca3b7ca5e9e9be7fe38a85105e353896db05c5796aecd2a725161eb3651c8629a9b862b904d7b0c7b37f8cb5a1c2b54001018a00a1eb2cafe4ee4e9492c348bc2bedab4b9ebbf064e8eff322b9009f8eec653905f40df88a3cdc49d4567f75627d41aca624129b46a0b7c698e5e65f2b7ba102c749a10135b6540d04010241027458c19ec1636919e736c9af25d609a51b8f561d19c6bf6943dd1ee1ab8a4a3f232100bd40b88decc6ba235548b6ef792a11c9de823d0a7922c7095b6eba570102410210ee9b33ab61716e27d251bd465f4b35a1a232e2da00901c294bf22350ce490d099f642b5375612db63ba1f20386492bf04d34b3c22bceb909d13441b53b5139024039fa028b826e88c1121b750a8b242fa9a35c5b66bdfd1fa637d3cc48a84a4f457a194e7727e49f7bcc6e5a5a412657fc470c7322ebc37416ef458c307a8c09010241015d99a84195943979fa9e1be2c3c1b69f432f46fd03e47d5befbbbfd6b1d1371d83efb330a3e020942b2fed115e5d02be24fd92c9019d1cecd6dd4cf1e54cc899024101f0b7015170b3f5e42223ba30301c41a6d87cbb70e30cb7d3c67d25473db1f6cbf03e3f9126e3e97968279a865b2c2b426524cfc52a683d31ed30eb984be412ba\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 04cce19614845e094152a3fe18e54e3330c44e5efbc64ae16886cb1869014cc5781b1f8f9e045384d0112a135ca0d12e9c88a8e4063416deaae3844f60d6e96fe155145f4525b9a34431ca3766180f70e15a5e5d8e8b1a516ff870609f13f896935ced188279a58ed13d07114277d75c6568607e0ab092fd803a223e4a8ee0b1a8\nOutput = 4a86609534ee434a6cbca3f7e962e76d455e3264c19f605f6e5ff6137c65c56d7fb344cd52bc93374f3d166c9f0c6f9c506bad19330972d2\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0097b698c6165645b303486fbf5a2a4479c0ee85889b541a6f0b858d6b6597b13b854eb4f839af03399a80d79bda6578c841f90d645715b280d37143992dd186c80b949b775cae97370e4ec97443136c6da484e970ffdb1323a20847821d3b18381de13bb49aaea66530c4a4b8271f3eae172cd366e07e6636f1019d2a28aed15e\nOutput = b0adc4f3fe11da59ce992773d9059943c03046497ee9d9f9a06df1166db46d98f58d27ec074c02eee6cbe2449c8b9fc5080c5c3f4433092512ec46aa793743c8\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0301f935e9c47abcb48acbbe09895d9f5971af14839da4ff95417ee453d1fd77319072bb7297e1b55d7561cd9d1bb2", - "4c1a9a37c619864308242804879d86ebd001dce5183975e1506989b70e5a83434154d5cbfd6a24787e60eb0c658d2ac193302d1192c6e622d4a12ad4b53923bca246df31c6395e37702c6a78ae081fb9d065\nOutput = bf6d42e701707b1d0206b0c8b45a1c72641ff12889219a82bdea965b5e79a96b0d0163ed9d578ec9ada20f2fbcf1ea3c4089d83419ba81b0c60f3606da99\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 02d110ad30afb727beb691dd0cf17d0af1a1e7fa0cc040ec1a4ba26a42c59d0a796a2e22c8f357ccc98b6519aceb682e945e62cb734614a529407cd452bee3e44fece8423cc19e55548b8b994b849c7ecde4933e76037e1d0ce44275b08710c68e430130b929730ed77e09b015642c5593f04e4ffb9410798102a8e96ffdfe11e4\nOutput = fb2ef112f5e766eb94019297934794f7be2f6fc1c58e\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00dbb8a7439d90efd919a377c54fae8fe11ec58c3b858362e23ad1b8a44310799066b99347aa525691d2adc58d9b06e34f288c170390c5f0e11c0aa3645959f18ee79e8f2be8d7ac5c23d061f18dd74b8c5f2a58fcb5eb0c54f99f01a83247568292536583340948d7a8c97c4acd1e98d1e29dc320e97a260532a8aa7a758a1ec2\nOutput = 28ccd447bb9e85166dabb9e5b7d1adadc4b9d39f204e96d5e440ce9ad928bc1c2284\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00a5ffa4768c8bbecaee2db77e8f2eec99595933545520835e5ba7db9493d3e17cddefe6a5f567624471908db4e2d83a0fbee60608fc84049503b2234a07dc83b27b22847ad8920ff42f674ef79b76280b00233d2b51b8cb2703a9d42bfbc8250c96ec32c051e57f1b4ba528db89c37e4c54e27e6e64ac69635ae887d9541619a9\nOutput = f22242751ec6b1\n\nPrivateKey = RSA-OAEP-5\nType = RSA\nInput = 30820279020100300d06092a864886f70d0101010500048202633082025f0201000281810aadf3f9c125e5d891f31ac448e993defe580f802b45f9d7f22ba5021e9c47576b5a1e68031ba9db4e6dabe4d96a1d6f3d267268cff408005f118efcadb99888d1c234467166b2a2b849a05a889c060ac0da0c5fae8b55f309ba62e703742fa0326f2d10b011021489ff497770190d895fd39f52293c39efd73a698bdab9f10ed902030100010281810256eb4cba7067f2d2be540dcdff4582a36b7d31d1c9099bb214b79848466a268f80f58a49ac04c0e3648934a0206c04537c19b236643a6082732144df75fa217588f794682be89168276dc726c5c0cbdb84d31bbf26d0a43af495717f7d528acfee341561f6ff3cae05c578f8470d9682f9c0d072f9f6068b56d5880f682be2c5024103b0d3962f6d17549cbfca11294348dcf0e7e39f8c2bc6824f2164b606d687860dae1e632393cfedf513228229069e2f60e4acd7e633a436063f82385f48993707024102e4c32e2f517269b7072309f00c0e31365f7ce28b236b82912df239abf39572cf0ed604b02982e53564c52d6a05397de5c052a2fddc141ef7189836346aeb331f024101e84b119d25161fa67b00256a5bd9b645d2b232ecb05b015180029a88622adc3f09b3aeacde6161ab7cde22c2ad26e7797df54e072cbd3b2673800b3e4338dbd5024100eb90aa1a40135b4cea07197cedc8819be1e7cbff2547662116f465a4a9f487ab12f3ba4fef13822265a65297d98b7bded9372e3ffe81a38b3e9600fed055754f0241012f7f8138f9404062eb85a42924520b38f5bb886a0196f48bb8dcea60fd92cc027f18e78158a34a5c5d5f860a0f6c04071a7d01312c065062f1eb48b79d1c83cb\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 036046a4a47d9ed3ba9a89139c105038eb7492b05a5d68bfd53accff4597f7a68651b47b4a4627d927e485eed7b4566420e8b409879e5d606eae251d22a5df799f7920bfc117b992572a53b1263146bcea03385cc5e853c9a101c8c3e1bda31a519807496c6cb5e5efb408823a352b8fa0661fb664efadd593deb99fff5ed000e5\nOutput = af71a901e3a61d3132f0fc1fdb474f9ea6579257ffc24d164170145b3dbde8\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 03d6eb654edce615bc59f455265ed4e5a18223cbb9be4e4069b473804d5de96f54dcaaa603d049c5d94aa1470dfcd2254066b7c7b61ff1f6f6770e3215c51399fd4e34ec5082bc48f089840ad04354ae66dc0f1bd18e461a33cc1258b443a2837a6df26759aa2302334986f87380c9cc9d53be9f99605d2c9a97da7b0915a4a7ad\nOutput = a3b844a08239a8ac41605af17a6cfda4d350136585903a417a79268760519a4b4ac3303ec73f0f87cfb32399\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0770952181649f9f9f07ff626ff3a22c35c462443d905d456a9fd0bff43cac2ca7a9f554e9478b9acc3ac838b02040ffd3e1847de2e4253929f9dd9ee4044325a9b05cabb808b2ee840d34e15d105a3f1f7b27695a1a07a2d73fe08ecaaa3c9c9d4d5a89ff890d54727d7ae40c0ec1a8dd86165d8ee2c6368141016a48b55b6967\nOutput = 308b0ecbd2c76cb77fc6f70c5edd233fd2f20929d629f026953bb62a8f4a3a314bde195de85b5f816da2aab074d26cb6acddf323ae3b9c678ac3cf12fbdde7\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0812b76768ebcb642d040258e5f4441a018521bd96687e6c5e899fcd6c17588ff59a82cc8ae03a4b45b31299af1788c329f7dcd285f8cf4ced82606b97612671a45bedca133442144d1617d114f802857f0f9d739751c57a3f9ee400912c61e2e6992be031a43dd48fa6ba14eef7c422b5edc4e7afa04fdd38f402d1c8bb719abf\nOutput = 15c5b9ee1185\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 07b60e14ec954bfd29e60d0047e789f51d57186c63589903306793ced3f68241c743529aba6a6374f92e19e0163efa33697e196f7661dfaaa47aac6bde5e51deb507c72c589a2ca1693d96b1460381249b2cdb9eac44769f2489c5d3d2f99f0ee3c7ee5bf64a5ac79c42bd433f149be8cb59548361640595513c97af7bc2509723\nOutput = 21026e6800c7fa728fcaaba0d196ae28d7a2ac4ffd8abce794f0985f60c8a6737277365d3fea11db8923a2029a\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 08c36d4dda33423b2ed6830d85f6411ba1dcf470a1fae0ebefee7c089f256cef74cb96ea69c38f60f39abee44129bcb4c92de7f797623b20074e3d9c2899701ed9071e1efa0bdd84d4c3e5130302d8f0240baba4b84a71cc032f2235a5ff0fae277c3e8f9112bef44c9ae20d175fc9a4058bfc930ba31b02e2e4f444483710f24a\nOutput = 541e37b68b6c8872b84c02\n\nPrivateKey = RSA-OAEP-6\nType = RSA\nInput = 30820279020100300d06092a864886f70d0101010500048202633082025f02010002818112b17f6dad2ecd19ff46dc13f7860f09e0e0cfb677b38a52592305ceaf022c166db90d04ac29e33f7dd12d9faf66e0816bb63ead267cc7d46c17c37be214bca2a22d723a64e44407436b6fc965729aefc2554f376cd5dcea68293780a62bf39d0029485a160bbb9e5dc0972d21a504f52e5ee028aa416332f510b2e9cff5f722af02030100010281810295eca3560618369559cecd303aa9cfdafc1d9f06959df75ffef929aa896961bcd190dc6997eda7f5963e724d07b4dc11f3065e5ae97d96835112280b9084bb14f2a21ebd4e889d41b9c4132ec1956fcab8bb2fed0575884936522c5ff7d33261904824e7cadee4e0bb372d2457cf78e2bd1286228ff83f10731ce63c90cff3f9024104a6ce8b7358dfa69bdcf742617005afb5385f5f3a58a24ef74a22a8c05cb7cc38ebd4cc9d9a9d789a62cd0f60f0cb941d3423c9692efa4fe3adff290c4749a38b02410404c9a803371fedb4c5be39f3c00b009e5e08a63be1e40035cdaca5011cc701cf7eebcb99f0ffe17cfd0a4bf7befd2dd536ac946db797fdbc4abe8f29349b91ed024103961c8f760aa2bd5154c7aafd77225b3bacd0139ae7b5948ea3311fccd86fb95c75afa767284b9b2de559572f15d8d044c7eb83a1be5fadf2cc377c0d8475294b0241022197e066742196aabc03fa2feeb4e70b15cb787d617acd31bb75c7bc234ad706f7c48d2182d1f0ff9c228dcf41967b6c0ba6d2c0ad110a1b857831ec245e2cb102410401c4c0c53d45dbdb5e9d96d0fecf4275df0974bc4a0736b4a74c3269053efb686ace2406e22c9e058ddb4ae540627ae2fdb08261e8e7e4bcbc994daafa305c45\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0630eebcd2856c24f798806e41f9e67345eda9ceda386acc9facaea1eeed06ace583709718d9d169fadf414d5c76f92996833ef305b75b1e4b95f662a20faedc3bae0c4827a8bf8a88edbd57ec203a27a841f02e43a615bab1a8cac0701de34debdef62a088089b55ec36ea7522fd3ec8d06b6a073e6df833153bc0aefd93bd1a3\nOutput = 4046ca8baa3347ca27f49e0d81f9cc1d71be9ba517d4\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0ebc37376173a4fd2f89cc55c2ca62b26b11d51c3c7ce49e8845f74e7607317c436bc8d23b9667dfeb9d087234b47bc6837175ae5c0559f6b81d7d22416d3e50f4ac533d8f0812f2db9e791fe9c775ac8b6ad0f535ad9ceb23a4a02014c58ab3f8d3161499a260f39348e714ae2a1d3443208fd8b722ccfdfb393e98011f99e63f\nOutput = 5cc72c60231df03b3d40f9b57931bc31109f972527f28b19e7480c7288cb3c92b22512214e4be6c914792ddabdf57faa8aa7\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0a98bf1093619394436cf68d8f38e2f158fde8ea54f3435f239b8d06b8321844202476aeed96009492480ce3a8d705498c4c8c68f01501dc81db608f60087350c8c3b0bd2e9ef6a81458b7c801b89f2e4fe99d4900ba6a4b5e5a96d865dc676c7755928794130d6280a8160a190f2df3ea7cf9aa0271d88e9e6905ecf1c5152d65\nOutput = b20e651303092f4bccb43070c0f86d23049362ed96642fc5632c27db4a52e3d831f2ab068b23b149879c002f6bf3feee97591112562c\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 008e7a67cacfb5c4e24bec7dee149117f19598ce8c45808fef88c608ff9cd6e695263b9a3c0ad4b8ba4c95238e96a8422b8535629c8d5382374479ad13fa39974b242f9a759eeaf9c83ad5a8ca18940a0162ba755876df263f4bd50c6525c56090267c1f0e09ce0899a0cf359e88120abd9bf893445b3cae77d3607359ae9a52f8\nOutput = 684e3038c5c041f7\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00003474416c7b68bdf961c385737944d7f1f40c", - "b395343c693cc0b4fe63b31fedf1eaeeac9ccc0678b31dc32e0977489514c4f09085f6298a9653f01aea4045ff582ee887be26ae575b73eef7f3774921e375a3d19adda0ca31aa1849887c1f42cac9677f7a2f4e923f6e5a868b38c084ef187594dc9f7f048fea2e02955384ab\nOutput = 32488cb262d041d6e4dd35f987bf3ca696db1f06ac29a44693\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0a026dda5fc8785f7bd9bf75327b63e85e2c0fdee5dadb65ebdcac9ae1de95c92c672ab433aa7a8e69ce6a6d8897fac4ac4a54de841ae5e5bbce7687879d79634cea7a30684065c714d52409b928256bbf53eabcd5231eb7259504537399bd29164b726d33a46da701360a4168a091ccab72d44a62fed246c0ffea5b1348ab5470\nOutput = 50ba14be8462720279c306ba\n\nPrivateKey = RSA-OAEP-7\nType = RSA\nInput = 30820278020100300d06092a864886f70d0101010500048202623082025e020100028181311179f0bcfc9b9d3ca315d00ef30d7bdd3a2cfae9911bfedcb948b3a4782d0732b6ab44aa4bf03741a644dc01bec3e69b01a033e675d8acd7c4925c6b1aec3119051dfd89762d215d45475ffcb59f908148623f37177156f6ae86dd7a7c5f43dc1e1f908254058a284a5f06c0021793a87f1ac5feff7dcaee69c5e51a3789e3730203010001028181070cfcff2feb8276e27432c45dfee48f49b7917d6530e1f0ca3460f32e0276174487c56e22a45d2500d7775495219d7d165a9cf3bd92c32af9a98d8dc9cc296800adc94a0a54fb40f34291bf84ee8ea12b6f109359c6d3542a50f9c767f5cfff05a681c2e656fb77caaadb4be9468d8abcd4df98f58e86d2053fa1349f748e21b102410749262c111cd470ec2566e6b3732fc09329469aa19071d3b9c01906514c6f1d26baa14beab0971c8b7e611a4f79009d6fea776928ca25285b0de3643d1a3f8c71024106bc1e50e96c02bf636e9eea8b899bbebf7651de77dd474c3e9bc23bad8182b61904c7d97dfbebfb1e00108878b6e67e415391d67942c2b2bf9b4435f88b0cb023024103bc7ea7f0aab143abc6ce8b97118636a30172e4cfe02c8fa0dda3b7baaf90f8092982985525f488bdfcb4bd726e22639ac64a3092ab7ffcbf1d5334cfa50b5bf102410262a6aa29c2a3c67dc5346c06381afd987aa3cc93cfbfecf54fdd9f9d787d7f59a523d398979da137a2f6381fe94801f7c94da21518dc34cb40870c4697994ad90240649d4c17b6ee1721e772d0389a559c3d3cdf9550d457c46b037b74641b1d52166af8a213c8396206cdfba4422f18d6f61dbcb5d214c971bf482aeb976a7370c2\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 1688e4ce7794bba6cb7014169ecd559cede2a30b56a52b68d9fe18cf1973ef97b2a03153951c755f6294aa49adbdb55845ab6875fb3986c93ecf927962840d282f9e54ce8b690f7c0cb8bbd73440d9571d1b16cd9260f9eab4783cc482e5223dc60973871783ec27b0ae0fd47732cbc286a173fc92b00fb4ba6824647cd93c85c1\nOutput = 47aae909\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 1052ed397b2e01e1d0ee1c50bf24363f95e504f4a03434a08fd822574ed6b9736edbb5f390db10321479a8a139350e2bd4977c3778ef331f3e78ae118b268451f20a2f01d471f5d53c566937171b2dbc2d4bde459a5799f0372d6574239b2323d245d0bb81c286b63c89a361017337e4902f88a467f4c7f244bfd5ab46437ff3b6\nOutput = 1d9b2e2223d9bc13bfb9f162ce735db48ba7c68f6822a0a1a7b6ae165834e7\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2155cd843ff24a4ee8badb7694260028a490813ba8b369a4cbf106ec148e5298707f5965be7d101c1049ea8584c24cd63455ad9c104d686282d3fb803a4c11c1c2e9b91c7178801d1b6640f003f5728df007b8a4ccc92bce05e41a27278d7c85018c52414313a5077789001d4f01910b72aad05d220aa14a58733a7489bc54556b\nOutput = d976fc\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0ab14c373aeb7d4328d0aaad8c094d88b9eb098b95f21054a29082522be7c27a312878b637917e3d819e6c3c568db5d843802b06d51d9e98a2be0bf40c031423b00edfbff8320efb9171bd2044653a4cb9c5122f6c65e83cda2ec3c126027a9c1a56ba874d0fea23f380b82cf240b8cf540004758c4c77d934157a74f3fc12bfac\nOutput = d4738623df223aa43843df8467534c41d013e0c803c624e263666b239bde40a5f29aeb8de79e3daa61dd0370f49bd4b013834b98212aef6b1c5ee373b3cb\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 028387a318277434798b4d97f460068df5298faba5041ba11761a1cb7316b24184114ec500257e2589ed3b607a1ebbe97a6cc2e02bf1b681f42312a33b7a77d8e7855c4a6de03e3c04643f786b91a264a0d6805e2cea91e68177eb7a64d9255e4f27e713b7ccec00dc200ebd21c2ea2bb890feae4942df941dc3f97890ed347478\nOutput = bb47231ca5ea1d3ad46c99345d9a8a61\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 14c678a94ad60525ef39e959b2f3ba5c097a94ff912b67dbace80535c187abd47d075420b1872152bba08f7fc31f313bbf9273c912fc4c0149a9b0cfb79807e346eb332069611bec0ff9bcd168f1f7c33e77313cea454b94e2549eecf002e2acf7f6f2d2845d4fe0aab2e5a92ddf68c480ae11247935d1f62574842216ae674115\nOutput = 2184827095d35c3f86f600e8e59754013296\n\nPrivateKey = RSA-OAEP-8\nType = RSA\nInput = 30820279020100300d06092a864886f70d0101010500048202633082025f0201000281815bdf0e30d321dda5147f882408fa69195480df8f80d3f6e8bf5818504f36427ca9b1f5540b9c65a8f6974cf8447a244d9280201bb49fcbbe6378d1944cd227e230f96e3d10f819dcef276c64a00b2a4b6701e7d01de5fabde3b1e9a0df82f4631359cd22669647fbb1717246134ed7b497cfffbdc42b59c73a96ed90166212dff702030100010281810f7d1e9e5aaa25fd13e4a0663ae144e0d15f5cd18bcdb09df2cc7e64e3c5e915ad62645304161d098c715bb7ab8bd01d07eaf3fed7c7ed08af2a8a62ef44ab16b320e14af72a48f96afe262a0ae4cf65e635e910790cd4ee5cea768a4b2639f7e6f677b3f0bb6be32b75747d8909036f0264f58d401cdba131716157a75ecf633102410a02ef8448d9fad8bbd0d004c8c2aa9751ef9721c1b0d03236a54b0df947cbaed5a255ee9e8e20d491ea1723fe094704a9762e88afd16ebb5994412ca966dc4f9f0241092d362e7ed3a0bfd9e9fd0e6c0301b6df29159cf50cc83b9b0cf4d6eea71a61e002b46e0ae9f2de62d25b5d7452d498b81c9ac6fc58593d4c3fb4f5d72dfbb0a9024107c71410af103962db367404e37ae850baa4e9c29dd92145815294a67c7d1c6ded263aa030a9b633ae50303e14035d1af014123eba687820308d8ebc85b6957d7d024100ae2c75380c02c016ad05891b3301de881f28ae1171182b6b2c83bea7c515eca9ca298c7b1cab5817a597068fc85060de4da8a016378aae43c7f967bcc37904b902410598d1059e3ada4f6320752c09d805ff7d1f1ae0d017aeeee9cefa0d7dd7ff775e44b578322f6405d6211da19519666aa87fdc4cd8c88f6b6e3d67e961dcbba3d0\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 09b3683d8a2eb0fb295b62ed1fb9290b714457b7825319f4647872af889b30409472020ad12912bf19b11d4819f49614824ffd84d09c0a17e7d17309d12919790410aa2995699f6a86dbe3242b5acc23af45691080d6b1ae810fb3e3057087f0970092ce00be9562ff4053b6262ce0caa93e13723d2e3a5ba075d45f0d61b54b61\nOutput = 050b755e5e6880f7b9e9d692a74c37aae449b31bfea6deff83747a897f6c2c825bb1adbf850a3c96994b5de5b33cbc7d4a17913a7967\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2ecf15c97c5a15b1476ae986b371b57a24284f4a162a8d0c8182e7905e792256f1812ba5f83f1f7a130e42dcc02232844edc14a31a68ee97ae564a383a3411656424c5f62ddb646093c367be1fcda426cf00a06d8acb7e57776fbbd855ac3df506fc16b1d7c3f2110f3d8068e91e186363831c8409680d8da9ecd8cf1fa20ee39d\nOutput = 4eb68dcd93ca9b19df111bd43608f557026fe4aa1d5cfac227a3eb5ab9548c18a06dded23f81825986b2fcd71109ecef7eff88873f075c2aa0c469f69c92bc\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 4bc89130a5b2dabb7c2fcf90eb5d0eaf9e681b7146a38f3173a3d9cfec52ea9e0a41932e648a9d69344c50da763f51a03c95762131e8052254dcd2248cba40fd31667786ce05a2b7b531ac9dac9ed584a59b677c1a8aed8c5d15d68c05569e2be780bf7db638fd2bfd2a85ab276860f3777338fca989ffd743d13ee08e0ca9893f\nOutput = 8604ac56328c1ab5ad917861\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2e456847d8fc36ff0147d6993594b9397227d577752c79d0f904fcb039d4d812fea605a7b574dd82ca786f93752348438ee9f5b5454985d5f0e1699e3e7ad175a32e15f03deb042ab9fe1dd9db1bb86f8c089ccb45e7ef0c5ee7ca9b7290ca6b15bed47039788a8a93ff83e0e8d6244c71006362deef69b6f416fb3c684383fbd0\nOutput = fdda5fbf6ec361a9d9a4ac68af216a0686f438b1e0e5c36b955f74e107f39c0dddcc\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 1fb9356fd5c4b1796db2ebf7d0d393cc810adf6145defc2fce714f79d93800d5e2ac211ea8bbecca4b654b94c3b18b30dd576ce34dc95436ef57a09415645923359a5d7b4171ef22c24670f1b229d3603e91f76671b7df97e7317c97734476d5f3d17d21cf82b5ba9f83df2e588d36984fd1b584468bd23b2e875f32f68953f7b2\nOutput = 4a5f4914bee25de3c69341de07\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 3afd9c6600147b21798d818c655a0f4c9212db26d0b0dfdc2a7594ccb3d22f5bf1d7c3e112cd73fc7d509c7a8bafdd3c274d1399009f9609ec4be6477e453f075aa33db382870c1c3409aef392d7386ae3a696b99a94b4da0589447e955d16c98b17602a59bd736279fcd8fb280c4462d590bfa9bf13fed570eafde97330a2c210\nOutput = 8e07d66f7b880a72563abcd3f35092bc33409fb7f88f2472be\n\nPrivateKey = RSA-OAEP-9\nType = RSA\nInput = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100cf2cd41e34ca3a728ea5cb8aff64c36d27bdef5364e336fd68d3123c5a196a8c287013e853d5156d58d151954520fb4f6d7b17abb68177", - "65909c576119659d902b1906ed8a2b10c155c24d124528dab9eeae379beac66e4a411786dcb8fd0062ebc030de1219a04c2a8c1b7dd3131e4d6b6caee2e31a5ed41ac1509b2ef1ee2ab18364be568ca941c25ecc84ff9d643b5ec1aaae102a20d73f479b780fd6da91075212d9eac03a0674d899eba2e431f4c44b615b6ba2232bd4b33baed73d625d02030100010281c0198c141e23715a92bccf6a119a5bc11389468d2811f548d727e17b4ab0eb986d6f211efb53b71f7ccbea87ee69c75ee615008c5332deb52bf390abdfbfe37d7205368159b2638c1de326e21d22251f0fb5848b3bf15005d2a74330f0afe916ee62ccc1344d1d83a709e60676273840f7f377424a5e0a4da75f01b31ff76819cf9cbfdd215243c3917c03ef38199312e567b3bf7aed3ab457f371ef8a1423f45b68c6e282ec111bba2833b987fd69fad83bc1b8c613c5e1ea16c11ed125ea7ec1026100fc8d6c04bec4eb9a8192ca7900cbe536e2e8b519decf33b2459798c6909df4f176db7d23190fc72b8865a718af895f1bcd9145298027423b605e70a47cf58390a8c3e88fc8c48e8b32e3da210dfbe3e881ea5674b6a348c21e93f9e55ea65efd026100d200d45e788aacea606a401d0460f87dd5c1027e12dc1a0d7586e8939d9cf789b40f51ac0442961de7d21cc21e05c83155c1f2aa9193387cfdf956cb48d153ba270406f9bbba537d4987d9e2f9942d7a14cbfffea74fecdda928d23e259f5ee1026100db16802f79a2f0d45f358d69fd33e44b81fae828622e93a54253e997d01b0743759da0e812b4aa4e6c8beab2328d5431955a418a67ff26a8c5c807a5da354e05ef31cc8cf758f463732950b03e265726fb94e39d6a572a26244ab08db75752ad026100a0a317cfe7df1423f87a6dee8451f4e2b4a67e5497f29b4f1e4e830b9fadd9401167026f5596e5a39c97817e0f5f16e27e19ec9902e01d7ea6fb9aa3c760afee1e381b69de6ac9c07585a06ad9c4ba00bf75c8ad2fa898a479e80ae294fed2a102600b21f335c353342eb44c3aa24445780c2d655b940174cae38c7c8a4e6493c0ba9fd303748267b083b9a7a6cb61e42db362b8c9896db7064e02ad5ae61587da15b4649c90594909feb37dbcb654beb7268ec801e5a8b4aa3911bebd88542f05be\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 267bcd118acab1fc8ba81c85d73003cb8610fa55c1d97da8d48a7c7f06896a4db751aa284255b9d36ad65f37653d829f1b37f97b8001942545b2fc2c55a7376ca7a1be4b1760c8e05a33e5aa2526b8d98e317088e7834c755b2a59b12631a182c05d5d43ab1779264f8456f515ce57dfdf512d5493dab7b7338dc4b7d78db9c091ac3baf537a69fc7f549d979f0eff9a94fda4169bd4d1d19a69c99e33c3b55490d501b39b1edae118ff6793a153261584d3a5f39f6e682e3d17c8cd1261fa72\nOutput = f735fd55ba92592c3b52b8f9c4f69aaa1cbef8fe88add095595412467f9cf4ec0b896c59eda16210e7549c8abb10cdbc21a12ec9b6b5b8fd2f10399eb6\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 93ac9f0671ec29acbb444effc1a5741351d60fdb0e393fbf754acf0de49761a14841df7772e9bc82773966a1584c4d72baea00118f83f35cca6e537cbd4d811f5583b29783d8a6d94cd31be70d6f526c10ff09c6fa7ce069795a3fcd0511fd5fcb564bcc80ea9c78f38b80012539d8a4ddf6fe81e9cddb7f50dbbbbcc7e5d86097ccf4ec49189fb8bf318be6d5a0715d516b49af191258cd32dc833ce6eb4673c03a19bbace88cc54895f636cc0c1ec89096d11ce235a265ca1764232a689ae8\nOutput = 81b906605015a63aabe42ddf11e1978912f5404c7474b26dce3ed482bf961ecc818bf420c54659\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 81ebdd95054b0c822ef9ad7693f5a87adfb4b4c4ce70df2df84ed49c04da58ba5fc20a19e1a6e8b7a3900b22796dc4e869ee6b42792d15a8eceb56c09c69914e813cea8f6931e4b8ed6f421af298d595c97f4789c7caa612c7ef360984c21b93edc5401068b5af4c78a8771b984d53b8ea8adf2f6a7d4a0ba76c75e1dd9f658f20ded4a46071d46d7791b56803d8fea7f0b0f8e41ae3f09383a6f9585fe7753eaaffd2bf94563108beecc207bbb535f5fcc705f0dde9f708c62f49a9c90371d3\nOutput = fd326429df9b890e09b54b18b8f34f1e24\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = bcc35f94cde66cb1136625d625b94432a35b22f3d2fa11a613ff0fca5bd57f87b902ccdc1cd0aebcb0715ee869d1d1fe395f6793003f5eca465059c88660d446ff5f0818552022557e38c08a67ead991262254f10682975ec56397768537f4977af6d5f6aaceb7fb25dec5937230231fd8978af49119a29f29e424ab8272b47562792d5c94f774b8829d0b0d9f1a8c9eddf37574d5fa248eefa9c5271fc5ec2579c81bdd61b410fa61fe36e424221c113addb275664c801d34ca8c6351e4a858\nOutput = f1459b5f0c92f01a0f723a2e5662484d8f8c0a20fc29dad6acd43bb5f3effdf4e1b63e07fdfe6628d0d74ca19bf2d69e4a0abf86d293925a796772f8088e\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 232afbc927fa08c2f6a27b87d4a5cb09c07dc26fae73d73a90558839f4fd66d281b87ec734bce237ba166698ed829106a7de6942cd6cdce78fed8d2e4d81428e66490d036264cef92af941d3e35055fe3981e14d29cbb9a4f67473063baec79a1179f5a17c9c1832f2838fd7d5e59bb9659d56dce8a019edef1bb3accc697cc6cc7a778f60a064c7f6f5d529c6210262e003de583e81e3167b89971fb8c0e15d44fffef89b53d8d64dd797d159b56d2b08ea5307ea12c241bd58d4ee278a1f2e\nOutput = 53e6e8c729d6f9c319dd317e74b0db8e4ccca25f3c8305746e137ac63a63ef3739e7b595abb96e8d55e54f7bd41ab433378ffb911d\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 438cc7dc08a68da249e42505f8573ba60e2c2773d5b290f4cf9dff718e842081c383e67024a0f29594ea987b9d25e4b738f285970d195abb3a8c8054e3d79d6b9c9a8327ba596f1259e27126674766907d8d582ff3a8476154929adb1e6d1235b2ccb4ec8f663ba9cc670a92bebd853c8dbf69c6436d016f61add836e94732450434207f9fd4c43dec2a12a958efa01efe2669899b5e604c255c55fb7166de5589e369597bb09168c06dd5db177e06a1740eb2d5c82faeca6d92fcee9931ba9f\nOutput = b6b28ea2198d0c1008bc64\n\nPrivateKey = RSA-OAEP-10\nType = RSA\nInput = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100ae45ed5601cec6b8cc05f803935c674ddbe0d75c4c09fd7951fc6b0caec313a8df39970c518bffba5ed68f3f0d7f22a4029d413f1ae07e4ebe9e4177ce23e7f5404b569e4ee1bdcf3c1fb03ef113802d4f855eb9b5134b5a7c8085adcae6fa2fa1417ec3763be171b0c62b760ede23c12ad92b980884c641f5a8fac26bdad4a03381a22fe1b754885094c82506d4019a535a286afeb271bb9ba592de18dcf600c2aeeae56e02f7cf79fc14cf3bdc7cd84febbbf950ca90304b2219a7aa063aefa2c3c1980e560cd64afe779585b6107657b957857efde6010988ab7de417fc88d8f384c4e6e72c3f943e0c31c0c4a5cc36f879d8a3ac9d7d59860eaada6b83bb020301000102820100056b04216fe5f354ac77250a4b6b0c8525a85c59b0bd80c56450a22d5f438e596a333aa875e291dd43f48cb88b9d5fc0d499f9fcd1c397f9afc070cd9e398c8d19e61db7c7410a6b2675dfbf5d345b804d201add502d5ce2dfcb091ce9997bbebe57306f383e4d588103f036f7e85d1934d152a323e4a8db451d6f4a5b1b0f102cc150e02feee2b88dea4ad4c1baccb24d84072d14e1d24a6771f7408ee30564fb86d4393a34bcf0b788501d193303f13a2284b001f0f649eaf79328d4ac5c430ab4414920a9460ed1b7bc40ec653e876d09abc509ae45b525190116a0c26101848298509c1c3bf3a483e7274054e15e97075036e989f60932807b5257751e7902818100ecf5aecd1e5515fffacbd75a2816c6ebf49018cdfb4638e185d66a7396b6f8090f8018c7fd95cc34b857dc17f0cc6516bb1346ab4d582cadad7b4103352387b70338d084047c9d9539b6496204b3dd6ea442499207bec01f964287ff6336c3984658336846f56e46861881c10233d2176bf15a5e96ddc780bc868aa77d3ce76902818100bc46c464fc6ac4ca783b0eb08a3c841b772f7e9b2f28babd588ae885e1a0c61e4858a0fb25ac299990f35be85164c259ba1175cdd7192707135184992b6c29b746dd0d2cabe142835f7d148cc161524b4a09946d48b828473f1ce76b6cb6886c345c03e05f41d51b5c3a90a3f24073c7d74a4fe25d9cf21c75960f3fc386318302818100c73564571d00fb15d08a3de9957a50915d7126e9442dacf42bc82e862e5673ff6a008ed4d2e374617df89f17a160b43b7fda9cb6b6b74218609815f7d45ca263c159aa32d272d127faf4bc8ca2d77378e8aeb19b0ad7da3cb3de0ae7314980f62b6d4b0a875d1df03c1bae39ccd833ef6cd7e2d9528bf084d1f969e794e9f6c10281802658b37f6df9c1030be1db68117fa9d87e39ea2b693b7e6d3a2f70947413eec6142e18fb8dfcb6ac545d7c86a0ad48f8457170f0efb26bc48126c53efd1d16920198dc2a1107dc282db6a80cd3062360ba3fa13f70e4312ff1a6cd6b8fc4cd9c5c3db17c6d6a57212f73ae29f619327bad59b153858585ba4e28b60a62a45e490281806f38526b3925085534ef3e415a836ede8b86158a2c7cbfeccb0bd834304fec683ba8d4f479c433d43416e63269623cea100776d85aff401d3fff610ee65411ce3b1363d63a9709eede42647cea561493d54570a879c18682cd97710b96205ec31117d73b5f36223fadd6e8ba90dd7c0ee61d44e163251e20c7f66eb305117cb8\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 53ea5dc08cd260fb3b858567287fa91552c30b2febfba213f0ae87702d068d19bab07fe574523dfb42139d68c3c5afeee0bfe4cb7969cbf382b804d6e61396144e2d0e60741f8993c3014b58b9b1957a8babcd23af854f4c356fb1662aa72bfcc7e586559dc4280d160c126785a723ebeebeff71f11594440aaef87d10793a8774a239d4a04c87fe1467b9daf85208ec6c7255794a96cc29142f9a8bd418e3c1fd67344b0cd0829df3b2bec60253196293c6b34d3f75d32f213dd45c6273d505adf4cced1057cb758fc26aeefa441255ed4e64c199ee075e7f16646182fdb464739b68ab5daff0e63e9552016824f054bf4d3c8c90a97bb6b6553284eb429fcc\nOutput = 8bba6bf82a6c0f86d5f1756e97956870b08953b06b4eb205bc1694ee\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = a2b1a430a9d657e2fa1c2bb5ed43ffb25c05a308fe9093c01031795f5874400110828ae58fb9b581ce9d", - "ddd3e549ae04a0985459bde6c626594e7b05dc4278b2a1465c1368408823c85e96dc66c3a30983c639664fc4569a37fe21e5a195b5776eed2df8d8d361af686e750229bbd663f161868a50615e0c337bec0ca35fec0bb19c36eb2e0bbcc0582fa1d93aacdb061063f59f2ce1ee43605e5d89eca183d2acdfe9f81011022ad3b43a3dd417dac94b4e11ea81b192966e966b182082e71964607b4f8002f36299844a11f2ae0faeac2eae70f8f4f98088acdcd0ac556e9fccc511521908fad26f04c64201450305778758b0538bf8b5bb144a828e629795\nOutput = e6ad181f053b58a904f2457510373e57\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 9886c3e6764a8b9a84e84148ebd8c3b1aa8050381a78f668714c16d9cfd2a6edc56979c535d9dee3b44b85c18be8928992371711472216d95dda98d2ee8347c9b14dffdff84aa48d25ac06f7d7e65398ac967b1ce90925f67dce049b7f812db0742997a74d44fe81dbe0e7a3feaf2e5c40af888d550ddbbe3bc20657a29543f8fc2913b9bd1a61b2ab2256ec409bbd7dc0d17717ea25c43f42ed27df8738bf4afc6766ff7aff0859555ee283920f4c8a63c4a7340cbafddc339ecdb4b0515002f96c932b5b79167af699c0ad3fccfdf0f44e85a70262bf2e18fe34b850589975e867ff969d48eabf212271546cdc05a69ecb526e52870c836f307bd798780ede\nOutput = 510a2cf60e866fa2340553c94ea39fbc256311e83e94454b4124\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 6318e9fb5c0d05e5307e1683436e903293ac4642358aaa223d7163013aba87e2dfda8e60c6860e29a1e92686163ea0b9175f329ca3b131a1edd3a77759a8b97bad6a4f8f4396f28cf6f39ca58112e48160d6e203daa5856f3aca5ffed577af499408e3dfd233e3e604dbe34a9c4c9082de65527cac6331d29dc80e0508a0fa7122e7f329f6cca5cfa34d4d1da417805457e008bec549e478ff9e12a763c477d15bbb78f5b69bd57830fc2c4ed686d79bc72a95d85f88134c6b0afe56a8ccfbc855828bb339bd17909cf1d70de3335ae07039093e606d655365de6550b872cd6de1d440ee031b61945f629ad8a353b0d40939e96a3c450d2a8d5eee9f678093c8\nOutput = bcdd190da3b7d300df9a06e22caae2a75f10c91ff667b7c16bde8b53064a2649a94045c9\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 75290872ccfd4a4505660d651f56da6daa09ca1301d890632f6a992f3d565cee464afded40ed3b5be9356714ea5aa7655f4a1366c2f17c728f6f2c5a5d1f8e28429bc4e6f8f2cff8da8dc0e0a9808e45fd09ea2fa40cb2b6ce6ffff5c0e159d11b68d90a85f7b84e103b09e682666480c657505c0929259468a314786d74eab131573cf234bf57db7d9e66cc6748192e002dc0deea930585f0831fdcd9bc33d51f79ed2ffc16bcf4d59812fcebcaa3f9069b0e445686d644c25ccf63b456ee5fa6ffe96f19cdf751fed9eaf35957754dbf4bfea5216aa1844dc507cb2d080e722eba150308c2b5ff1193620f1766ecf4481bafb943bd292877f2136ca494aba0\nOutput = a7dd6c7dc24b46f9dd5f1e91ada4c3b3df947e877232a9\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2d207a73432a8fb4c03051b3f73b28a61764098dfa34c47a20995f8115aa6816679b557e82dbee584908c6e69782d7deb34dbd65af063d57fca76a5fd069492fd6068d9984d209350565a62e5c77f23038c12cb10c6634709b547c46f6b4a709bd85ca122d74465ef97762c29763e06dbc7a9e738c78bfca0102dc5e79d65b973f28240caab2e161a78b57d262457ed8195d53e3c7ae9da021883c6db7c24afdd2322eac972ad3c354c5fcef1e146c3a0290fb67adf007066e00428d2cec18ce58f9328698defef4b2eb5ec76918fde1c198cbb38b7afc67626a9aefec4322bfd90d2563481c9a221f78c8272c82d1b62ab914e1c69f6af6ef30ca5260db4a46\nOutput = eaf1a73a1b0c4609537de69cd9228bbcfb9a8ca8c6c3efaf056fe4a7f4634ed00b7c39ec6922d7b8ea2c04ebac\n\n\n# Single-shot signing tests.\n\nSignMessage = RSA-2048\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\n\nVerifyMessage = RSA-2048\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\n\nVerifyMessage = RSA-2048-SPKI\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\n\nVerifyMessage = P-256\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 304502204c66004635c267394bd6857c1e0b53b22a2bab1ca7dff9d5c1b42143858b3ea7022100ae81228510e03cd49a8863d2ebd1c05fe0c87eacd1150433132b909994cd0dbd\n\n# Digest can't be omitted in many algorithms.\nSignMessage = RSA-2048\nInput = \"Hello world\"\nError = NO_DEFAULT_DIGEST\n\nVerifyMessage = RSA-2048\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\nError = NO_DEFAULT_DIGEST\n\n# Signing test vectors from RFC 8032.\nSignMessage = Ed25519\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\nSignMessage = Ed25519-2\nInput = 72\nOutput = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\nSignMessage = Ed25519-3\nInput = af82\nOutput = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\nSignMessage = Ed25519-4\nInput = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e50", - "6b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nOutput = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\nSignMessage = Ed25519-5\nInput = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\nOutput = dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704\n\n# Signing with public keys is not allowed.\nSignMessage = Ed25519-SPKI\nInput = \"\"\nError = NOT_A_PRIVATE_KEY\n\n# Verify test vectors from RFC 8032. Test verifying with both the public and\n# private key.\nVerifyMessage = Ed25519\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\nVerifyMessage = Ed25519-SPKI\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\nVerifyMessage = Ed25519-2\nInput = 72\nOutput = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\nVerifyMessage = Ed25519-SPKI-2\nInput = 72\nOutput = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\nVerifyMessage = Ed25519-3\nInput = af82\nOutput = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\nVerifyMessage = Ed25519-SPKI-3\nInput = af82\nOutput = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\nVerifyMessage = Ed25519-4\nInput = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nOutput = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\nVerifyMessage = Ed25519-SPKI-4\nInput = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nOutput = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\nVerifyMessage = Ed25519-5\nInput = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\nOutput = dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704\n\nVerifyMessage = Ed25519-SPKI-5\nInput = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\nOutput = dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704\n\n# Length is wrong.\nVerifyMessage = Ed25519-SPKI\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a10\nError = INVALID_SIGNATURE\n\n# Message is wrong.\nVerifyMessage = Ed25519-SPKI\nInput = \"Hello world\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\nError = INVALID_SIGNATURE\n\n# Ed25519 does not support configuring a digest.\nSignMessage = Ed25519\nInput = \"\"\nDigest = SHA256\nError = COMMAND_NOT_SUPPORTED\n\n# Ed25519 does not support signing a pre-hashed value.\nSign = Ed25519\nInput = \"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\"\nError = OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE\n\nVerify = Ed25519\nInput = \"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\nError = OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE\n\n\n# Derive tests.\n\nPrivateKey = ECDH-P256-Private\nType = EC\nInput = 3041020100301306072a8648ce3d020106082a864", - "8ce3d0301070427302502010104207d7dc5f71eb29ddaf80d6214632eeae03d9058af1fb6d22ed80badb62bc1a534\n\nPublicKey = ECDH-P256-Peer\nType = EC\nInput = 3059301306072a8648ce3d020106082a8648ce3d03010703420004700c48f77f56584c5cc632ca65640db91b6bacce3a4df6b42ce7cc838833d287db71e509e3fd9b060ddb20ba5c51dcc5948d46fbf640dfe0441782cab85fa4ac\n\nDerive = ECDH-P256-Private\nDerivePeer = ECDH-P256-Peer\nOutput = 46fc62106420ff012e54a434fbdd2d25ccc5852060561e68040dd7778997bd7b\nSmallBufferTruncates\n\nPrivateKey = X25519-Private\nType = X25519\nInput = 302e020100300506032b656e04220420a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4\nExpectRawPrivate = a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4\n\nPublicKey = X25519-Peer\nType = X25519\nInput = 302a300506032b656e032100e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c\nExpectRawPublic = e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c\n\nPublicKey = X25519-SmallOrderPeer\nType = X25519\nExpectRawPublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nInput = 302a300506032b656e032100e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\n\nDerive = X25519-Private\nDerivePeer = X25519-Peer\nOutput = c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552\n\nDerive = X25519-Private\nDerivePeer = X25519-SmallOrderPeer\nError = INVALID_PEER_KEY\n", -}; -static const size_t kLen37 = 1262; +static const size_t kLen37 = 136462; static const char *kData37[] = { - "#\n# Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved.\n#\n# Licensed under the OpenSSL license (the \"License\"). You may not use\n# this file except in compliance with the License. You can obtain a copy\n# in the file LICENSE in the source distribution or at\n# https://www.openssl.org/source/license.html\n\nPassword = \"\"\nSalt = \"\"\nN = 16\nr = 1\np = 1\nKey = 77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906\n\nPassword = \"password\"\nSalt = \"NaCl\"\nN = 1024\nr = 8\np = 16\nKey = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640\n\nPassword = \"pleaseletmein\"\nSalt = \"SodiumChloride\"\nN = 16384\nr = 8\np = 1\nKey = 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887\n\n# NB: this test requires more than 1GB of memory to run so it is disabled by\n# default. Uncomment it to run.\n# Password = \"pleaseletmein\"\n# Salt = \"SodiumChloride\"\n# N = 1048576\n# r = 8\n# p = 1\n# Key = 2101cb9b6a511aaeaddbbe09cf70f881ec568d574a2ffd4dabe5ee9820adaa478e56fd8f4ba5d09ffa1c6d927c40f4c337304049e8a952fbcbf45c6fa77a41a4\n# MaxMemory = 10000000000\n", + "# Public key algorithm tests\n\n# Keys used for PKEY operations.\n\n# RSA 2048 bit key.\nPrivateKey = RSA-2048\nType = RSA\nInput = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f02030100010282010060297ac7991b167a06d6b24758b8cbe208beb9b2d9ec9738bd80f90a2e35005dd7ce292d9e29ba885bd316fef1f20913bc0ac90d6b0808b2414d82104441d8624a33ce0233c8f780a48b375aff02d76712228a702484db3f9ebecccfbbee1709dba182800d949e9e4216e0bff3558388f8bd90da373a1d82743ec3fbdd1427fd16825a657a316912e8695365117ca2f845c909405fcac55f895fc15d20386c26ee78c9e99075029a178a6c1e4cf0c200e8a9cfb27e9d156f86e6c2adc22b1a84a1cd5ca5b2790875d79407c84b352395cb81cc3fed5bb043b69ede0c07204550025cee8c5f440170b6120bb48e0f747bcd8f522110850df043c428dfd187053102818100f6f961b47cbc035d3aedebc7de850a956b65ecdb9cf60764063f15aa48553c58d972fe6675056e35ddfdc37bf3b9f2f622ee271337256849c9bef2176fe8f7c3f8bb91ba374dd53baf3dec814d2bdec10c1fdc88cdd16876f26b1edfa3f094197edf4d42ff1fb2971103b898ca859c427287086a842ab410bb69cf2d35af6be302818100d47e724a7ff41048b270c2524a4101878b73159bb73d3dbc187b220e635b3534f96e243a184d93f860b6bfbb6b71c1ed9a1e1f458583023c301e96a692c1a08b53d0ec9ca910100d80451e3b7dc6a01bac4aecef8df798846bc235a08cbba2cf4c06804cc11219e95608c714e3f1430d491fadbba32a5751a04f97745834c9a502818021f2452bb9b95dfd028c914bf799f1ca77e89a95d50d3c16d384f8455f8bd7af9eb3dfa3d591d9842def235f7630a8e48c088ff6642e101794535a933e1e976fa8509fc728b2da0c4a1a08d7fcf37abaae1ff3001aca1dc1bbb05d9dffbaa1a09f7fb1eef38237d9ebccc722b9338436dde7119112798c26809c1a8dec4320610281801f7510aa62c2d8de4a3c53282781f41e02d0e8b402ae78432e449c48110161a11403f02d01880a8dcc938152d79721a4711a607ac4471ebf964810f95be47a45e60499e29f4c9773c83773404f606637728c2d0351bb03c326c8bb73a721e7fa5440ea2172bba1465fcc30dcb0d9f89930e815aa1f7f9729a857e00e0338dd590281804d1f0d756fe77e01099a652f50a88b7b685dc5bf00981d5d2376fd0c6fe29cd5b638734479305a73ad3c1599d39eae3bae035fbd6fed07c28de705933879a06e48e6a603686ed8e2560a5f6af1f2c24faf4aa960e382186f15eedce9a2491ae730680dd4cf778b70faa86826ab3223477cc91377b19a6d5a2eaea219760beed5\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The public half of the same key encoded as a SubjectPublicKeyInfo.\nPublicKey = RSA-2048-SPKI\nType = RSA\nInput = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key but with a negative RSA modulus.\nPublicKey = RSA-2048-SPKI-Negative\nInput = 30820121300d06092a864886f70d01010105000382010e003082010902820100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nError = NEGATIVE_NUMBER\n\n# The same key but with missing parameters rather than a NULL.\nPublicKey = RSA-2048-SPKI-Invalid\nInput = 30820120300b06092a864886f70d0101010382010f003082010a0282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nError = DECODE_ERROR\n\n# The same key but with an incorrectly-encoded length prefix.\nPublicKey = RSA-2048-SPKI-Invalid2\nInput = 3083000122300d06092a864886f70d01010105000382010f003082010a0282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001\nError = DECODE_ERROR\n\n# RSA 512 bit key.\nPrivateKey = RSA-512\nType = RSA\nInput = 30820154020100300d06092a864886f70d01010105000482013e3082013a020100024100dd20403d976a38c9d79152d87b5c8e9f05033eadd7b7de709bf5b0c4a5182a97d18483526b02362b992e154a9f37faa396ca2685cdab8fec09877ebe705f4dd70203010001024055bebcca655d7e39de8a6eaa9d636db682161907064039544755c53eeb99ec618c03a210dbc61471eaba10c5c365c9726d6b7a96f54d455f7d168d49367270e1022100f21a05d9fd6817301ce49ce10448f9bdd44f5ef5b7557cd7d83155db46382ae7022100e9d1f7157783db2feab1936954ddc4e83aa365695868144cda1be6813b61d791022100d6001eb0040920860ce41fafdf23ca6dfbdf74e6e9f98cf3164cf5c16f9e727d02206f6f73f4b52b10517be6f9bc5f87fa0a3bb817e2e711636b651f9af1c85d4f21022063eff2e57f5b4ca20342cfe793e25526624e3692f192461f9e1ce7f13f2d72c8\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# RSA 515 bit key.\nPrivateKey = RSA-515\nType = RSA\nInput = 30820157020100300d06092a864886f70d0101010500048201413082013d0201000241054fa166e205e658bbe8a2dc35311c0c2b75b7e4569fd9642c8bae809279271fc824f26baa1166ea46298ca63379ea76adbada2b61e5066820a35beaec1aca227f020301000102410266c972be0d30e53ac2acb1aa13b4bd0401cccf212452a66b4615f7e943831f67b4ca48560582d0ca886044aaaaf87945252a848c1947944186e6eb83969bf91102210309e631761842cc8a2ccfd372c20a9cba21de1a199c30ab440bc6b51079f4e825022101bf715c1db432627ca7c29a293b9210f2eff1e92d12f306ebaa5334f8ee03dcd30221018ac58a765f2b8f37d434081fe5ff92b81735ead2f263f4968ccf63d61fbe3d0d0221015b247a1159a2d5a25d0db049593c6405f77f3a278c521d066e290c2a2d8fb59d0221026224aa31fd95c14d24fd03b8a195bba4cc88df7c37f5370a5ab19f882f1404d6\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# EC P-256 key\nPrivateKey = P-256\nType = EC\nInput = 308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key as above with the optional public key omitted.\nPrivateKey = P-256-MissingPublic\nType = EC\nInput = 3041020100301306072a8648ce3d020106082a8648ce3d0301070427302502010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key as above with redundant parameters.\nPrivateKey = P-256-ExtraParameters\nType = EC\nInput = 308193020100301306072a8648ce3d020106082a8648ce3d0301070479307702010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a00a06082a8648ce3d030107a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\n# The key re-encodes with the parameters removed.\nOutput = 308187020100301306072a8648c", + "e3d020106082a8648ce3d030107046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key, but with the redundant parameters in the ECPrivateKey mismatched.\nPrivateKey = P-256-BadInnerParameters\nInput = 308190020100301306072a8648ce3d020106082a8648ce3d0301070476307402010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a00706052b81040022a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = GROUP_MISMATCH\n\n# The same key, but with the curve spelled explicitly.\nPrivateKey = P-256-ExplicitParameters\nType = EC\nInput = 308201610201003081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nOutput = 308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same as above, but with the optional cofactor omitted.\nPrivateKey = P-256-ExplicitParameters-NoCofactor\nType = EC\nInput = 3082015e0201003081e906072a8648ce3d02013081dd020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nOutput = 308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same as above, but the cofactor is zero instead of one.\nPrivateKey = P-256-ExplicitParameters-CofactorZero\nInput = 308201610201003081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = UNKNOWN_GROUP\n\n# The same as above, but the cofactor is two instead of one.\nPrivateKey = P-256-ExplicitParameters-CofactorTwo\nInput = 308201610201003081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020102046d306b02010104208a872fb62893c4d1ffc5b9f0f91758069f8352e08fa05a49f8db926cb5728725a144034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = UNKNOWN_GROUP\n\n# The public half of the same key encoded as a PublicKey.\nPublicKey = P-256-SPKI\nType = EC\nInput = 3059301306072a8648ce3d020106082a8648ce3d030107034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same as above, but with the curve explicitly spelled out.\nPublicKey = P-256-SPKI\nInput = 3082014b3082010306072a8648ce3d02013081f7020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff305b0420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b031500c49d360886e704936a6678e1139d26b7819f7e900441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = DECODE_ERROR\n\n# The same as above, but with trailing data after the curve name.\nPublicKey = P-256-SPKI\nInput = 305b301506072a8648ce3d020106082a8648ce3d0301070500034200042c150f429ce70f216c252cf5e062ce1f639cd5d165c7f89424072c27197d78b33b920e95cdb664e990dcf0cfea0d94e2a8e6af9d0e58056e653104925b9fe6c9\nError = DECODE_ERROR\n\n# A DSA private key.\nPrivateKey = DSA-1024\nType = DSA\nInput = 308202650201003082023906072a8648ce3804013082022c02820101009e12fab3de12213501dd82aa10ca2d101d2d4ebfef4d2a3f8daa0fe0cedad8d6af85616aa2f3252c0a2b5a6db09e6f14900e0ddb8311876dd8f9669525f99ed65949e184d5064793271169a228680b95ec12f59a8e20b21f2b58eb2a2012d35bde2ee351822fe8f32d0a330565dcce5c672b7259c14b2433d0b5b2ca2b2db0ab626e8f13f47fe0345d904e7294bb038e9ce21a9e580b83356278706cfe768436c69de149ccff98b4aab8cb4f6385c9f102ce59346eaeef27e0ad222d53d6e89cc8cde5776dd00057b03f2d88ab3cedbafd7b585f0b7f7835e17a3728bbf25ea62572f245dc111f3ce39cb6ffacc31b0a2790e7bde90224ea9b09315362af3d2b022100f381dcf53ebf724f8b2e5ca82c010fb4b5eda9358d0fd88ed278589488b54fc3028201000c402a725dcc3a62e02bf4cf43cd17f4a493591220223669cf4193edab423ad08dfb552e308a6a57a5ffbc7cd0fb2087f81f8df0cb08ab2133287d2b6968714a94f633c940845a48a3e16708dde761cc6a8eab2d84db21b6ea5b07681493cc9c31fbc368b243f6ddf8c932a8b4038f44e7b15ca876344a147859f2b43b39458668ad5e0a1a9a669546dd2812e3b3617a0aef99d58e3bb4cc87fd94225e01d2dcc469a77268146c51918f18e8b4d70aa1f0c7623bcc52cf3731d38641b2d2830b7eecb2f09552ff137d046e494e7f33c3590002b16d1b97d936fda28f90c3ed3ca35338168ac16f77c3c57adc2e8f7c6c2256e41a5f65450590dbb5bcf06d66610423022100b0c768702743bc51242993a971a52889795444f7c6452203d0ce84fe6117d46e\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# A DSA public key.\nPublicKey = DSA-1024-SPKI\nType = DSA\nInput = 308201b73082012c06072a8648ce3804013082011f02818100b3429b8b128c9079f9b72e86857e98d265e5d91661ed8b5f4cc56e5eed1e571da30186983a9dd76297eab73ee13a1db841f8800d04a7cab478af6cde2ea4a2868531af169a24858c6268efa39ceb7ed0d4227eb5bbb01124a2a5a26038c7bcfb8cc827f68f5202345166e4718596799b65c9def82828ce44e62e38e41a0d24b1021500c5a56c81ddd87f47e676546c56d05706421624cf0281810094de40d27314fe929e47ff9b1ac65cfc73ef38c4d381c890be6217b15039ae18190e6b421af8c0bda35a5cfd050f58ae2644adce83e68c8e5ba11729df56bbb21e227a60b816cc033fa799a38fe1ba5b4aa1801b6f841ce3df99feb3b4fb96950c960af13fa2ce920aabc12dd24ad2044a35063ea0e25f67f560f4cfbdc55983", + "03818400028180258c30ebbb7f34fdc873ce679f6cea373c7886d75d4421b90920db034daedd292c64d8edd8cdbdd7f3ad23d74cfa2135247d0cef6ecf2e14f99e19d22a8c1266bd8fb8719c0e5667c716c45c7adbdabe548085bdad2dfee636f8d52fd6adb2193df6c4f0520fbd171b91882e0e4f321f8250ffecf4dbea00e114427d3ef96c1a\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# The same key as above, but without the parameters.\nPublicKey = DSA-1024-SPKI-No-Params\nType = DSA\nInput = 308192300906072a8648ce38040103818400028180258c30ebbb7f34fdc873ce679f6cea373c7886d75d4421b90920db034daedd292c64d8edd8cdbdd7f3ad23d74cfa2135247d0cef6ecf2e14f99e19d22a8c1266bd8fb8719c0e5667c716c45c7adbdabe548085bdad2dfee636f8d52fd6adb2193df6c4f0520fbd171b91882e0e4f321f8250ffecf4dbea00e114427d3ef96c1a\nExpectNoRawPrivate\nExpectNoRawPublic\n\n# Private keys from RFC 8032.\nPrivateKey = Ed25519\nType = Ed25519\nInput = 302e020100300506032b6570042204209d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60\nExpectRawPrivate = 9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60\nExpectRawPublic = d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\n\nPrivateKey = Ed25519-2\nType = Ed25519\nInput = 302e020100300506032b6570042204204ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb\nExpectRawPrivate = 4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb\nExpectRawPublic = 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\n\nPrivateKey = Ed25519-3\nType = Ed25519\nInput = 302e020100300506032b657004220420c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7\nExpectRawPrivate = c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7\nExpectRawPublic = fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\n\nPrivateKey = Ed25519-4\nType = Ed25519\nInput = 302e020100300506032b657004220420f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5\nExpectRawPrivate = f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5\nExpectRawPublic = 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\n\nPrivateKey = Ed25519-5\nType = Ed25519\nInput = 302e020100300506032b657004220420833fe62409237b9d62ec77587520911e9a759cec1d19755b7da901b96dca3d42\nExpectRawPrivate = 833fe62409237b9d62ec77587520911e9a759cec1d19755b7da901b96dca3d42\nExpectRawPublic = ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\n\n# Public keys from RFC 8032.\nPublicKey = Ed25519-SPKI\nType = Ed25519\nInput = 302a300506032b6570032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\nExpectNoRawPrivate\nExpectRawPublic = d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\n\nPublicKey = Ed25519-SPKI-2\nType = Ed25519\nInput = 302a300506032b65700321003d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\nExpectNoRawPrivate\nExpectRawPublic = 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c\n\nPublicKey = Ed25519-SPKI-3\nType = Ed25519\nInput = 302a300506032b6570032100fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\nExpectNoRawPrivate\nExpectRawPublic = fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025\n\nPublicKey = Ed25519-SPKI-4\nType = Ed25519\nInput = 302a300506032b6570032100278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\nExpectNoRawPrivate\nExpectRawPublic = 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e\n\nPublicKey = Ed25519-SPKI-5\nType = Ed25519\nInput = 302a300506032b6570032100ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\nExpectNoRawPrivate\nExpectRawPublic = ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf\n\n# The first key, private and public, with invalid NULL parameters.\nPrivateKey = Ed25519-NULL\nInput = 3030020100300706032b65700500042204209d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60\nError = DECODE_ERROR\n\nPublicKey = Ed25519-SPKI-NULL\nInput = 302c300706032b65700500032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a\nError = DECODE_ERROR\n\n# Sample public key from RFC 8410.\nPublicKey = Ed25519-SPKI-Spec\nType = Ed25519\nInput = 302a300506032b657003210019bf44096984cdfe8541bac167dc3b96c85086aa30b6b6cb0c5c38ad703166e1\n\n# Sample private key from RFC 8410.\nPrivateKey = Ed25519-Spec\nType = Ed25519\nInput = 302e020100300506032b657004220420d4ee72dbf913584ad5b6d8f1f769f8ad3afe7c28cbf1d4fbe097a88f44755842\n\n\n# RSA tests\n\nSign = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\n\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\n\nVerify = RSA-2048-SPKI\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\n\n# Digest too long\nSign = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF12345\"\nError = INVALID_MESSAGE_LENGTH\n\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF12345\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\nError = INVALID_MESSAGE_LENGTH\n\n# Digest too short\nSign = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF123\"\nError = INVALID_MESSAGE_LENGTH\n\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF123\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\nError = INVALID_MESSAGE_LENGTH\n\n# Digest too large for key.\nSign = RSA-512\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nError = DIGEST_TOO_BIG_FOR_RSA_KEY\n\n# Mismatched digest\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1233\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99", + "b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ad\nError = BAD_SIGNATURE\n\n# Corrupted signature\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1233\"\nOutput = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2eaee6cd60089a52482d4809a238149520df3bdde4cb9e23d9307b05c0a6f327052325a29adf2cc95b66523be7024e2a585c3d4db15dfbe146efe0ecdc0402e33fe5d40324ee96c5c3edd374a15cdc0f5d84aa243c0f07e188c6518fbfceae158a9943be398e31097da81b62074f626eff738be6160741d5a26957a482b3251fd85d8df78b98148459de10aa93305dbb4a5230aa1da291a9b0e481918f99b7638d72bb687f97661d304ae145d64a474437a4ef39d7b8059332ddeb07e92bf6e0e3acaf8afedc93795e4511737ec1e7aab6d5bc9466afc950c1c17b48ae\nError = BLOCK_TYPE_IS_NOT_01\n\n# parameter missing (NOTE: this differs from upstream)\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3ec3fc29eb6e122bd7aa361cd09fe1bcbe85311096a7b9e4799cedfb2351ce0ab7fe4e75b4f6b37f67edd9c60c800f9ab941c0c157d7d880ca9de40c951d60fd293ae220d4bc510b1572d6e85a1bbbd8605b52e05f1c64fafdae59a1c2fbed214b7844d0134619de62851d5a0522e32e556e5950f3f97b8150e3f0dffee612c924201c27cd9bc8b423a71533380c276d3d59fcba35a2e80a1a192ec266a6c2255012cd86a349fe90a542b355fa3355b04da6cdf1df77f0e7bd44a90e880e1760266d233e465226f5db1c68857847d82072861ee266ddfc2e596845b77e1803274a579835ab5e4975d81d20b7df9cec7795489e4a2bdb8c1cf6a6b359945ac92c\nError = BAD_SIGNATURE\n\n# embedded digest too long\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d\nError = BAD_SIGNATURE\n\n# embedded digest too short\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = afec9a0d5330a08f54283bb4a9d4e7e7e70fc1342336c4c766fba713f66970151c6e27413c48c33864ea45a0238787004f338ed3e21b53b0fe9c1151c42c388cbc7cba5a06b706c407a5b48324fbe994dc7afc3a19fb3d2841e66222596c14cd72a0f0a7455a019d8eb554f59c0183f9552b75aa96fee8bf935945e079ca283d2bd3534a86f11351f6d6181fbf433e5b01a6d1422145c7a72214d3aacdd5d3af12b2d6bf6438f9f9a64010d8aeed801c87f0859412b236150b86a545f7239be022f4a7ad246b59df87514294cb4a4c7c5a997ee53c66054d9f38ca4e76c1f7af83c30f737ef70f83a45aebe18238ddb95e1998814ca4fc72388f1533147c169d\nError = BAD_SIGNATURE\n\n# Garbage after DigestInfo\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 9ee34872d4271a7d8808af0a4052a145a6d6a8437d00da3ed14428c7f087cd39f4d43334c41af63e7fa1ba363fee7bcef401d9d36a662abbab55ce89a696e1be0dfa19a5d09ca617dd488787b6048baaefeb29bc8688b2fe3882de2b77c905b5a8b56cf9616041e5ec934ba6de863efe93acc4eef783fe7f72a00fa65d6093ed32bf98ce527e62ccb1d56317f4be18b7e0f55d7c36617d2d0678a306e3350956b662ac15df45215dd8f6b314babb9788e6c272fa461e4c9b512a11a4b92bc77c3a4c95c903fccb238794eca5c750477bf56ea6ee6a167367d881b485ae3889e7c489af8fdf38e0c0f2aed780831182e34abedd43c39281b290774bf35cc25274\nError = BAD_SIGNATURE\n\n# invalid tag for parameter\nVerify = RSA-2048\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 49525db4d44c755e560cba980b1d85ea604b0e077fcadd4ba44072a3487bbddb835016200a7d8739cce2dc3223d9c20cbdd25059ab02277f1f21318efd18e21038ec89aa9d40680987129e8b41ba33bceb86518bdf47268b921cce2037acabca6575d832499538d6f40cdba0d40bd7f4d8ea6ca6e2eec87f294efc971407857f5d7db09f6a7b31e301f571c6d82a5e3d08d2bb3a36e673d28b910f5bec57f0fcc4d968fd7c94d0b9226dec17f5192ad8b42bcab6f26e1bea1fdc3b958199acb00f14ebcb2a352f3afcedd4c09000128a603bbeb9696dea13040445253972d46237a25c7845e3b464e6984c2348ea1f1210a9ff0b00d2d72b50db00c009bb39f9\nError = BAD_SIGNATURE\n\n\n# RSA-PSS tests.\n\n# Zero salt length makes the output deterministic\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n\n# Verify of above signature\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n\n# A non-zero salt length must be checked by round-tripping.\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 32\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Check a salt length with a non-standard digest length, to verify things are\n# not just working due to defaults. (The current default is a maximum salt\n# length, but the ecosystem has converged on matching the digest length, so we\n# may change this in the future.)\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 42\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Auto-detected salt length\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n\n# Signing with salt length -1 means to match the digest length.\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = -1\nVerifyPSSSaltLength = 32\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Signing with salt length -2 means to maximize the salt length.\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = -2\nVerifyPSSSaltLength = 222 # 256 - 32 - 2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nCheckVerify\n\n# Wrong digest\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"00000000000000000000000000000000\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = BAD_SIGNATURE\n\n# Digest too short\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDE\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abba", + "c37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = INVALID_MESSAGE_LENGTH\n\n# Digest too long\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF0\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = INVALID_MESSAGE_LENGTH\n\n# Wrong salt length\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = SLEN_CHECK_FAILED\n\n# Wrong salt length using implicit hash length\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = -1\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = SLEN_CHECK_FAILED\n\n# Wrong MGF1 digest, SHA-1\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nMGF1Digest = SHA1\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n# If SHA-1, this input happens to succeed recovering a salt length, but it does\n# not match.\nError = SLEN_CHECK_FAILED\n\n# Wrong MGF1 digest, SHA-384\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nMGF1Digest = SHA384\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\n# If SHA-384, this input happens fail to recover the salt length altogether.\nError = SLEN_RECOVERY_FAILED\n\n# The salt length is too large for the modulus (signing).\nSign = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 223\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nError = DATA_TOO_LARGE_FOR_KEY_SIZE\n\n# The salt length is too large for the modulus (verifying).\nVerify = RSA-2048\nRSAPadding = PSS\nPSSSaltLength = 223\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a\nError = DATA_TOO_LARGE\n\n# The hash is too large for the modulus (signing).\nSign = RSA-512\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nError = DATA_TOO_LARGE_FOR_KEY_SIZE\n\nSign = RSA-512\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nError = DATA_TOO_LARGE_FOR_KEY_SIZE\n\n# The hash is too large for the modulus (verifying).\nVerify = RSA-512\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nOutput = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\nError = DATA_TOO_LARGE\n\nVerify = RSA-512\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA512\nInput = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"\nOutput = 457001d9ca50a93385fc5ec721c9dbbe7a0f2e9e4a2f846a30a8811dde66347b83901c7492039243537c7a667fafffd69049bcbd36afd0010d9b425e2d8785c1\nError = DATA_TOO_LARGE\n\n# Sample RSA-515 signature.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 00c5926600f160f85e7fe950cfe123908384211cd8fe25c90cb8e8cc0593308e9aa2efe3acbf100ec1658ded8f72f506525fc2c44f06251b08d896e7bb3f05b135\n\n# The above, but with too few leading zeros.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = c5926600f160f85e7fe950cfe123908384211cd8fe25c90cb8e8cc0593308e9aa2efe3acbf100ec1658ded8f72f506525fc2c44f06251b08d896e7bb3f05b135\nError = DATA_LEN_NOT_EQUAL_TO_MOD_LEN\n\n# The above, but with too many leading zeros.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 0000c5926600f160f85e7fe950cfe123908384211cd8fe25c90cb8e8cc0593308e9aa2efe3acbf100ec1658ded8f72f506525fc2c44f06251b08d896e7bb3f05b135\nError = DATA_LEN_NOT_EQUAL_TO_MOD_LEN\n\n# The above with an invalid leading byte. The top few bits of EM are required to\n# be cleared.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 007f803c832a2090aea04013d9fa9c1630732a1625232826d235f0950f7050d3fb0eb06ef9ea8b260fad68e1165a2d770a8c7fc7a8aaa68620b021fc19c97e0041\nError = FIRST_OCTET_INVALID\n\n# The above with an invalid trailing byte.\nVerify = RSA-515\nRSAPadding = PSS\nPSSSaltLength = 0\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 03e68555035891eb08d96c0967db22328cd892ad2856d88516ecb946bfdba732bb029b5c0dfa2119ed7349897d2324e95e86d91d0c4afc82700a36db8933abbf58\nError = LAST_OCTET_INVALID\n\n# Non-zero salt length.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 32\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e5706", + "92e511e139\n\n# Non-zero salt length, wrong salt length.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = 31\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e570692e511e139\nError = SLEN_CHECK_FAILED\n\n# Non-zero salt length, match hash length.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = -1\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e570692e511e139\n\n# Non-zero salt length, auto-detected.\nVerify = RSA-2048-SPKI\nRSAPadding = PSS\nPSSSaltLength = -2\nDigest = SHA256\nInput = \"0123456789ABCDEF0123456789ABCDEF\"\nOutput = 4065b284b0a6e98d4c41a8427007f878d8dd61599c87764fa79b8bf03f030c48127a4b1a5af5a6e0cf9055e57a1f47e5b0c0d8c600e78369cf1c39374899fac91a812692aa2216ba10900ce85a5cf7fddcafb726e4b83479c5bb7b3b84b08ffe183b4c2973aa3193ec7b7d4ea73bf1b579c6657b78ad7800e1975a4838c28ffe353fafef96be27b5c69677760a71b6f4df65ba6fe6b3565580a536f966928294c6e9ece807a90c1477779bcbfa3a250e98d685097c162c1c8c56ab02bd2e16eec7a019b51c067bdba7fa8cd5460796e22c607a8b6d12e1deb9be51c6943c46590f416800c48bb4cbb8c409d316573e59eadf7d3b9e6e5c2d0e570692e511e139\n\n\n# RSA decrypt\n\nDecrypt = RSA-2048\nInput = 550af55a2904e7b9762352f8fb7fa235a9cb053aacb2d5fcb8ca48453cb2ee3619746c701abf2d4cc67003471a187900b05aa812bd25ed05c675dfc8c97a24a7bf49bd6214992cad766d05a9a2b57b74f26a737e0237b8b76c45f1f226a836d7cfbc75ba999bdbe48dbc09227aa46c88f21dccba7840141ad5a5d71fd122e6bd6ac3e564780dfe623fc1ca9b995a6037bf0bbd43b205a84ac5444f34202c05ce9113087176432476576de6ffff9a52ea57c08be3ec2f49676cb8e12f762ac71fa3c321e00ac988910c85ff52f93825666ce0d40ffaa0592078919d4493f46d95ccf76364c6d57760dd0b64805f9afc76a2365a5575ca301d5103f0ea76cb9a78\nOutput = \"Hello World\"\n\n# Corrupted ciphertext\nDecrypt = RSA-2048\nInput = 550af55a2904e7b9762352f8fb7fa235a9cb053aacb2d5fcb8ca48453cb2ee3619746c701abf2d4cc67003471a187900b05aa812bd25ed05c675dfc8c97a24a7bf49bd6214992cad766d05a9a2b57b74f26a737e0237b8b76c45f1f226a836d7cfbc75ba999bdbe48dbc09227aa46c88f21dccba7840141ad5a5d71fd122e6bd6ac3e564780dfe623fc1ca9b995a6037bf0bbd43b205a84ac5444f34202c05ce9113087176432476576de6ffff9a52ea57c08be3ec2f49676cb8e12f762ac71fa3c321e00ac988910c85ff52f93825666ce0d40ffaa0592078919d4493f46d95ccf76364c6d57760dd0b64805f9afc76a2365a5575ca301d5103f0ea76cb9a79\nError = PKCS_DECODING_ERROR\n\n# OAEP padding\nDecrypt = RSA-2048\nRSAPadding = OAEP\nInput = 458708dfbd42a1297ce7a9c86c7087ab80b1754810929b89c5107ca55368587686986fce94d86cc1595b3fb736223a656ec0f34d18ba1cc5665593610f56c58e26b272d584f3d983a5c91085700755aebd921fb280bba3eda7046ec07b43e7298e52d59edc92be4639a8ce08b2f85976ecf6d98cc469eeb9d5d8e2a32ea8a6626edafe1038b3df455668a9f3c77cad8b92fb872e00058c3d2a7ede1a1f03fc5622084ae04d9d24f6bf0995c58d35b93b699b9763595e123f2ab0863cc9229eb290e2ede7715c7a8f39e0b9a3e2e1b56ebb62f1cbfbb5986fb212ebd785b83d01d968b11d1756c7337f70c1f1a63bff03608e24f3a2fd44e67f832a8701c5d5af\nOutput = \"Hello World\"\n\n# OAEP padding with label and custom hash.\nDecrypt = RSA-2048\nRSAPadding = OAEP\nOAEPDigest = SHA512\nOAEPLabel = 00112233445566778899aabbccddeeff\nInput = 48b956c22b8e40cc38f0893672ddf488fc806cf1fcc6239c66dd8345eb543d6b5cac589e6c7ae86dac1c2436c4d72c48009a737b2c649e6000dbab17203e4d9c078bd70b649700a0830d4ddc396af0c48973177a229e48259d93247f04f76474c7611b530c66f020c4da2cc861c2e4104831ecc0336e0cb10d6520fdefd0b33606f5cdd736dd439583b9b6011cce99623c93caf5f76e21e9fefab414795dd5ac12cba551be74ebf266834fcffab182c5e7c9b6c064df154cb26ddfd4fe2fd87590005f4bf45e776a0082803e9f68995b8eeb4c6802c67b5ef349e5b2dc0cf7a12fc097030f2bd28f0253f17129b04c82993a12957728b35880fdd2f8d0cc469f\nOutput = \"Hello World\"\n\n# OAEP padding, corrupted ciphertext\nDecrypt = RSA-2048\nRSAPadding = OAEP\nInput = 458708dfbd42a1297ce7a9c86c7087ab80b1754810929b89c5107ca55368587686986fce94d86cc1595b3fb736223a656ec0f34d18ba1cc5665593610f56c58e26b272d584f3d983a5c91085700755aebd921fb280bba3eda7046ec07b43e7298e52d59edc92be4639a8ce08b2f85976ecf6d98cc469eeb9d5d8e2a32ea8a6626edafe1038b3df455668a9f3c77cad8b92fb872e00058c3d2a7ede1a1f03fc5622084ae04d9d24f6bf0995c58d35b93b699b9763595e123f2ab0863cc9229eb290e2ede7715c7a8f39e0b9a3e2e1b56ebb62f1cbfbb5986fb212ebd785b83d01d968b11d1756c7337f70c1f1a63bff03608e24f3a2fd44e67f832a8701c5d5ac\nError = OAEP_DECODING_ERROR\n\n# Test that RSA encryption successfully round-trips through decryption\n# with various parameters.\nEncrypt = RSA-2048\nInput = \"Hello World\"\nCheckDecrypt\n\nEncrypt = RSA-2048\nRSAPadding = OAEP\nInput = \"Hello World\"\nCheckDecrypt\n\nEncrypt = RSA-2048\nRSAPadding = OAEP\nOAEPDigest = SHA512\nOAEPLabel = 00112233445566778899aabbccddeeff\nInput = \"Hello World\"\nCheckDecrypt\n\n# Though we will never generate such a key, test that RSA keys where p < q work\n# properly.\nPrivateKey = RSA-Swapped\nType = RSA\nInput = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100ab28f98747934779011417d5bbb4095eae6f48ed09e13081616cf390aac75b10a206a98953d402647dfef7fa363be2765a303b05ec388bd9a1d75123a1205b4ecb43c33f2e37d3e30842181d694a3acfc39afc52554946e699d97d97066596a46725ce6dea322623afcafecbd2884d9a0c5eae9c4d7da8874c29c19edb762e1902030100010281800d637ea568e169f15ab6be288f6ec55edd29425c9c6dbb941b5160fa1b89cda34ef15378b5107c016d63b0f52721e71497f876dd7f3d6b1f228c4bc20c3c12384644200e91130c9195660d1e706f55b2accf00c5e2174a1d9ee289f0e763ee58860485ec97d19d7fa2df38af5b5910b1fa52087768d288e6ec4c8d5eca23c8d3024100be757a24dc2c923692d964693b2d71ca33ccb2f946f9e5232d2090b715a97dca554068fab8876105bc9ed6dccfd0917c5e0b80339306535c3eeb787e89397bc7024100e60f5c9e52434da079b8c641791a81a96daa4d9921a07e5b48292a9fce230df7c9fc2b97b5e38834ed5caaa387a0bca35c474e989a68dd65b79a6f691a74471f0240438ccf017bc5a3260ff76291a01782204136fcd344c524ebd0f997da17a8c1a09d93f6a7d602cdfa86e79f3539cfb389f4a1079b432e1f2abc762f8a51893dc9024046604ca4e1e554c9d27283b363a888219c3a8ca25b770d303f52d8872a37eefdedfc0619d2ba57e058fc0ff71676453e73ec1c4ef26d41ccebed824754a05d6102404445374d8450e753e0a42085b56b0d6d500b3e3518536dc8f12ec8fd77aa75491835327ac0e12d73b5c3f1b09d03f6a24fe63b9c551dee6559b625435ec92429\n\nSign = RSA-Swapped\nDigest = SHA256\nInput = \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\nOutput = 07fa4e3de9c002c41c952dc292ef5a814c4c17dc1a6cf958c4c971e8089676d6661b442270ef9295c41e5385c9628aa1bdee2cc2558b8473ba212f2ba04b9ff2264c19187b9506b1d0a1cc2751844cc8dedf555d62ce81bc0e70bfe83d0184ee964593af91b9b327c0fb272c799148cd8737d412cbf36c2ad25fd66977bf805f\n\n# Though we will never generate such a key, test that RSA keys where p and q are\n# different sizes work properly.\nPrivateKey = RSA-PrimeMismatch\nType = RSA\nInput = 30820295020100300d06092a864886f70d01010105000482027f3082027b02010002818100c766f4fef89f5e9a8e13ed500fb38523ea94d7f8be066900eee58c913b4c6fdcb13d63d39b9108feabcefd1ffd04776403dc58f968ae817977d0809e567d8af512d604a0e9cb448fa5e402204ee519712a5ebbfd002faf8169495a782f54366b4665aac0d968bfec63c5446b6f9b13061c7f3d1f3f1b6bede8fff881b410a66f0203010001028180528c062f49485c771a0b18ca747d8a47f8941ea63c305626cb3f1f067e6861c4441c432687dbd08d484aac3b01f3ffdc3b762c719167f7cb22e565aa6acd597306ef6f7828b9720e9d440816186d940c4c5a9720dddf71fe0b59483f02a751515c8c27e43c575d6725d55f5bb77e0f977773b00afc058cfab6617ec90d0b62a9026100cb8f97c37b4fbc298b645bc3dc0526f8a4274e9a193b33c3acb76499b5b96330e4b586cbaa56368ffc12644952322253bc669496d572c0980f125fd7273739cf790d244010", + "52b13732114d397c8c16a44716dc62d2320fb1ced99290dfd53e07022100fac51ac653609cdaba53280c6b6f209052e270be0c3c68fe8b37d6bf05fbba59026038dff2f04c58d7e2e7ae6fb1469d2de954bc22cb0d77ac1be4fb0ca1a1d39d7240c4b357de4cde4bd68b30f8077e38771af1b25c7e60e48cd7d1337402e1fc460ab57046720918b8aa4589452196669119c7ba65e602d4bdc264a9fdce7c5f2b0220773af0180bdc8bb7938fa6230191bcb1e236b7d4248d347e9242e25fc0c0874102605c4894cde334889f5b52ed8f86a2ee9c1fbe4166287e24ce44f3093bff383962f08043842f6ff3e6002104b0e29442c4a4483c5d06e2254fbe5e3930de3d0e28af10e96c6e341a4b8859382dbba24536a38ae71118e3e22413a93f298a7f744c\n\nSign = RSA-PrimeMismatch\nDigest = SHA256\nInput = \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"\nOutput = 6192b1ce630c87d02e8245fd74d4f6ecac37eef979d188c8fa48c4d355fbe814e7dd3152f42bb020d769b540d11867af5b947387b8c99158d56901ff3708e423931178213916ae1002f162c9d497aacacdcb20e6ffe7ed40138a253fc943ddf3587433df5831a3ce46aeefce358a009bf6bad12d82d77424c2755d984d7da196\n\n\n# EC tests\n\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\n\nVerify = P-256-SPKI\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\n\n# Digest too long\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF12345\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\nError = BAD_SIGNATURE\n\n# Digest too short\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF123\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\nError = BAD_SIGNATURE\n\n# Digest invalid\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1235\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8\nError = BAD_SIGNATURE\n\n# Invalid signature\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec7\nError = BAD_SIGNATURE\n\n# Garbage after signature\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec800\nError = BAD_SIGNATURE\n\n# BER signature\nVerify = P-256\nDigest = SHA1\nInput = \"0123456789ABCDEF1234\"\nOutput = 3080022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec80000\nError = BAD_SIGNATURE\n\n\n# Additional RSA-PSS and RSA-OAEP tests converted from\n# ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1-vec.zip\n\nPublicKey = RSA-PSS-1\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818100a56e4a0e701017589a5187dc7ea841d156f2ec0e36ad52a44dfeb1e61f7ad991d8c51056ffedb162b4c0f283a12a88a394dff526ab7291cbb307ceabfce0b1dfd5cd9508096d5b2b8b6df5d671ef6377c0921cb23c270a70e2598e6ff89d19f105acc2d3f0cb35f29280e1386b6f64c4ef22e1e1f20d0ce8cffb2249bd9a21370203010001\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = cd8b6538cb8e8de566b68bd067569dbf1ee2718e\nOutput = 9074308fb598e9701b2294388e52f971faac2b60a5145af185df5287b5ed2887e57ce7fd44dc8634e407c8e0e4360bc226f3ec227f9d9e54638e8d31f5051215df6ebb9c2f9579aa77598a38f914b5b9c1bd83c4e2f9f382a0d0aa3542ffee65984a601bc69eb28deb27dca12c82c2d4c3f66cd500f1ff2b994d8a4e30cbb33c\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = e35befc17a1d160b9ce35fbd8eb16e7ee491d3fd\nOutput = 3ef7f46e831bf92b32274142a585ffcefbdca7b32ae90d10fb0f0c729984f04ef29a9df0780775ce43739b97838390db0a5505e63de927028d9d29b219ca2c4517832558a55d694a6d25b9dab66003c4cccd907802193be5170d26147d37b93590241be51c25055f47ef62752cfbe21418fafe98c22c4d4d47724fdb5669e843\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 0652ec67bcee30f9d2699122b91c19abdba89f91\nOutput = 666026fba71bd3e7cf13157cc2c51a8e4aa684af9778f91849f34335d141c00154c4197621f9624a675b5abc22ee7d5baaffaae1c9baca2cc373b3f33e78e6143c395a91aa7faca664eb733afd14d8827259d99a7550faca501ef2b04e33c23aa51f4b9e8282efdb728cc0ab09405a91607c6369961bc8270d2d4f39fce612b1\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 39c21c4cceda9c1adf839c744e1212a6437575ec\nOutput = 4609793b23e9d09362dc21bb47da0b4f3a7622649a47d464019b9aeafe53359c178c91cd58ba6bcb78be0346a7bc637f4b873d4bab38ee661f199634c547a1ad8442e03da015b136e543f7ab07c0c13e4225b8de8cce25d4f6eb8400f81f7e1833b7ee6e334d370964ca79fdb872b4d75223b5eeb08101591fb532d155a6de87\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 36dae913b77bd17cae6e7b09453d24544cebb33c\nOutput = 1d2aad221ca4d31ddf13509239019398e3d14b32dc34dc5af4aeaea3c095af73479cf0a45e5629635a53a018377615b16cb9b13b3e09d671eb71e387b8545c5960da5a64776e768e82b2c93583bf104c3fdb23512b7b4e89f633dd0063a530db4524b01c3f384c09310e315a79dcd3d684022a7f31c865a664e316978b759fad\n\nVerify = RSA-PSS-1\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 45eef191f4f79c31fe5d2ede7e5098994e929d2d\nOutput = 2a34f6125e1f6b0bf971e84fbd41c632be8f2c2ace7de8b6926e31ff93e9af987fbc06e51e9be14f5198f91f3f953bd67da60a9df59764c3dc0fe08e1cbef0b75f868d10ad3fba749fef59fb6dac46a0d6e504369331586f58e4628f39aa278982543bc0eeb537dc61958019b394fb273f215858a0a01ac4d650b955c67f4c58\n\nPublicKey = RSA-PSS-2\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818101d40c1bcf97a68ae7cdbd8a7bf3e34fa19dcca4ef75a47454375f94514d88fed006fb829f8419ff87d6315da68a1ff3a0938e9abb3464011c303ad99199cf0c7c7a8b477dce829e8844f625b115e5e9c4a59cf8f8113b6834336a2fd2689b472cbb5e5cabe674350c59b6c17e176874fb42f8fc3d176a017edc61fd326c4b33c90203010001\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 5c81a3e2a658246628cd0ee8b00bb4c012bc9739\nOutput = 014c5ba5338328ccc6e7a90bf1c0ab3fd606ff4796d3c12e4b639ed9136a5fec6c16d8884bdd99cfdc521456b0742b736868cf90de099adb8d5ffd1deff39ba4007ab746cefdb22d7df0e225f54627dc65466131721b90af445363a8358b9f607642f78fab0ab0f43b7168d64bae70d8827848d8ef1e421c5754ddf42c2589b5b3\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 27f71611446aa6eabf037f7dedeede3203244991\nOutput = 010991656cca182b7f29d2dbc007e7ae0fec158eb6759cb9c45c5ff87c7635dd46d150882f4de1e9ae65e7f7d9018f6836954a47c0a81a8a6b6f83f2944d6081b1aa7c759b254b2c34b691da67cc0226e20b2f18b42212761dcd4b908a62b371b5918c5742af4b537e296917674fb914194761621cc19a41f6fb953fbcbb649dea\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 03ecc2c33e93f05fc7224fcc0d461356cb897217\nOutput = 007f0030018f53cdc71f23d03659fde54d4241f758a750b42f185f87578520c30742afd84359b6e6e8d3ed959dc6fe486bedc8e2cf001f63a7abe16256a1b84df0d249fc05d3194ce5f0912742dbbf80dd174f6c51f6bad7f16cf3364eba095a06267dc3793803ac7526aebe0a475d38b8c2247ab51c4898df7047dc6adf52c6c4\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 246c727b4b9494849dddb068d582e179ac20999c\nOutput = 009cd2f4edbe23e12346ae8c76dd9ad3230a62076141f16c152ba18513a48ef6f010e0e37fd3df10a1ec629a0cb5a3b5d2893007298c30936a95903b6ba85555d9ec3673a06108fd62a2fda56d1ce2e85c4db6b24a81ca3b496c36d4fd06eb7c9166d8e94877c42bea622b3bfe9251fdc21d8d5371badad78a488214796335b40b\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = e8617ca3ea66ce6a58ede2d11af8c3ba8a6ba912\nOutput = 00ec430824931ebd3baa43034dae98ba646b8c36013d1671c3cf1cf8260c374b19f8e1cc8d965012405e7e9bf7378612dfcc85fce12cda11f950bd0ba8876740436c1d2595a64a1b32efcfb74a21c873b3cc33aaf4e3dc3953de67f0674c0453b4fd9f604406d441b816098cb106fe3472bc251f815f59db2e4378a3addc181ecf\n\nVerify = RSA-PSS-2\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7a6fdc1a4e434ecbc35d657ad49a2f4fafd43bc8\nOutput = 00475b1648f814a8dc0abdc37b5527f543b666bb6e39d30e5b49d3b876dccc58eac14e32a2d55c2616014456ad2f246fc8e3d560da3ddf379a1c0bd200f10221df078c219a151bc8d4ec9d2fc2564467811014ef15d8ea01c2ebbff8c2c8efab38096e55fcbe3285c7aa558851254faffa92c1c72", + "b78758663ef4582843139d7a6\n\nPublicKey = RSA-PSS-3\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818102f246ef451ed3eebb9a310200cc25859c048e4be798302991112eb68ce6db674e280da21feded1ae74880ca522b18db249385012827c515f0e466a1ffa691d98170574e9d0eadb087586ca48933da3cc953d95bd0ed50de10ddcb6736107d6c831c7f663e833ca4c097e700ce0fb945f88fb85fe8e5a773172565b914a471a4430203010001\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 3552be69dd74bdc56d2cf8c38ef7bafe269040fe\nOutput = 0088b135fb1794b6b96c4a3e678197f8cac52b64b2fe907d6f27de761124964a99a01a882740ecfaed6c01a47464bb05182313c01338a8cd097214cd68ca103bd57d3bc9e816213e61d784f182467abf8a01cf253e99a156eaa8e3e1f90e3c6e4e3aa2d83ed0345b89fafc9c26077c14b6ac51454fa26e446e3a2f153b2b16797f\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 609143ff7240e55c062aba8b9e4426a781919bc9\nOutput = 02a5f0a858a0864a4f65017a7d69454f3f973a2999839b7bbc48bf78641169179556f595fa41f6ff18e286c2783079bc0910ee9cc34f49ba681124f923dfa88f426141a368a5f5a930c628c2c3c200e18a7644721a0cbec6dd3f6279bde3e8f2be5e2d4ee56f97e7ceaf33054be7042bd91a63bb09f897bd41e81197dee99b11af\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 0afd22f879a9cda7c584f4135f8f1c961db114c0\nOutput = 0244bcd1c8c16955736c803be401272e18cb990811b14f72db964124d5fa760649cbb57afb8755dbb62bf51f466cf23a0a1607576e983d778fceffa92df7548aea8ea4ecad2c29dd9f95bc07fe91ecf8bee255bfe8762fd7690aa9bfa4fa0849ef728c2c42c4532364522df2ab7f9f8a03b63f7a499175828668f5ef5a29e3802c\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 405dd56d395ef0f01b555c48f748cc32b210650b\nOutput = 0196f12a005b98129c8df13c4cb16f8aa887d3c40d96df3a88e7532ef39cd992f273abc370bc1be6f097cfebbf0118fd9ef4b927155f3df22b904d90702d1f7ba7a52bed8b8942f412cd7bd676c9d18e170391dcd345c06a730964b3f30bcce0bb20ba106f9ab0eeb39cf8a6607f75c0347f0af79f16afa081d2c92d1ee6f836b8\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = a2c313b0440c8a0c47233b87f0a160c61af3eae7\nOutput = 021eca3ab4892264ec22411a752d92221076d4e01c0e6f0dde9afd26ba5acf6d739ef987545d16683e5674c9e70f1de649d7e61d48d0caeb4fb4d8b24fba84a6e3108fee7d0705973266ac524b4ad280f7ae17dc59d96d3351586b5a3bdb895d1e1f7820ac6135d8753480998382ba32b7349559608c38745290a85ef4e9f9bd83\n\nVerify = RSA-PSS-3\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = f1bf6ca7b4bbdbb6bf20a4bf55728725d177154a\nOutput = 012fafec862f56e9e92f60ab0c77824f4299a0ca734ed26e0644d5d222c7f0bde03964f8e70a5cb65ed44e44d56ae0edf1ff86ca032cc5dd4404dbb76ab854586c44eed8336d08d457ce6c03693b45c0f1efef93624b95b8ec169c616d20e5538ebc0b6737a6f82b4bc0570924fc6b35759a3348426279f8b3d7744e2d222426ce\n\nPublicKey = RSA-PSS-4\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d00308189028181054adb7886447efe6f57e0368f06cf52b0a3370760d161cef126b91be7f89c421b62a6ec1da3c311d75ed50e0ab5fff3fd338acc3aa8a4e77ee26369acb81ba900fa83f5300cf9bb6c53ad1dc8a178b815db4235a9a9da0c06de4e615ea1277ce559e9c108de58c14a81aa77f5a6f8d1335494498848c8b95940740be7bf7c37050203010001\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = f8b0abf70fec0bca74f0accbc24f75e6e90d3bfd\nOutput = 0323d5b7bf20ba4539289ae452ae4297080feff4518423ff4811a817837e7d82f1836cdfab54514ff0887bddeebf40bf99b047abc3ecfa6a37a3ef00f4a0c4a88aae0904b745c846c4107e8797723e8ac810d9e3d95dfa30ff4966f4d75d13768d20857f2b1406f264cfe75e27d7652f4b5ed3575f28a702f8c4ed9cf9b2d44948\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 04a10944bfe11ab801e77889f3fd3d7f4ff0b629\nOutput = 049d0185845a264d28feb1e69edaec090609e8e46d93abb38371ce51f4aa65a599bdaaa81d24fba66a08a116cb644f3f1e653d95c89db8bbd5daac2709c8984000178410a7c6aa8667ddc38c741f710ec8665aa9052be929d4e3b16782c1662114c5414bb0353455c392fc28f3db59054b5f365c49e1d156f876ee10cb4fd70598\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ba01243db223eb97fb86d746c3148adaaa0ca344\nOutput = 03fbc410a2ced59500fb99f9e2af2781ada74e13145624602782e2994813eefca0519ecd253b855fb626a90d771eae028b0c47a199cbd9f8e3269734af4163599090713a3fa910fa0960652721432b971036a7181a2bc0cab43b0b598bc6217461d7db305ff7e954c5b5bb231c39e791af6bcfa76b147b081321f72641482a2aad\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 934bb0d38d6836daec9de82a9648d4593da67cd2\nOutput = 0486644bc66bf75d28335a6179b10851f43f09bded9fac1af33252bb9953ba4298cd6466b27539a70adaa3f89b3db3c74ab635d122f4ee7ce557a61e59b82ffb786630e5f9db53c77d9a0c12fab5958d4c2ce7daa807cd89ba2cc7fcd02ff470ca67b229fcce814c852c73cc93bea35be68459ce478e9d4655d121c8472f371d4f\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ec35d81abd1cceac425a935758b683465c8bd879\nOutput = 022a80045353904cb30cbb542d7d4990421a6eec16a8029a8422adfd22d6aff8c4cc0294af110a0c067ec86a7d364134459bb1ae8ff836d5a8a2579840996b320b19f13a13fad378d931a65625dae2739f0c53670b35d9d3cbac08e733e4ec2b83af4b9196d63e7c4ff1ddeae2a122791a125bfea8deb0de8ccf1f4ffaf6e6fb0a\n\nVerify = RSA-PSS-4\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 72ce251d17b04dd3970d6ff1fbe3624899e9e941\nOutput = 00938dcb6d583046065f69c78da7a1f1757066a7fa75125a9d2929f0b79a60b627b082f11f5b196f28eb9daa6f21c05e5140f6aef1737d2023075c05ecf04a028c686a2ab3e7d5a0664f295ce12995e890908b6ad21f0839eb65b70393a7b5afd9871de0caa0cedec5b819626756209d13ab1e7bb9546a26ff37e9a51af9fd562e\n\nPublicKey = RSA-PSS-5\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d003081890281810d10f661f29940f5ed39aa260966deb47843679d2b6fb25b3de370f3ac7c19916391fd25fb527ebfa6a4b4df45a1759d996c4bb4ebd18828c44fc52d0191871740525f47a4b0cc8da325ed8aa676b0d0f626e0a77f07692170acac8082f42faa7dc7cd123e730e31a87985204cabcbe6670d43a2dd2b2ddef5e05392fc213bc5070203010001\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = d98b7061943510bc3dd9162f7169aabdbdcd0222\nOutput = 0ba373f76e0921b70a8fbfe622f0bf77b28a3db98e361051c3d7cb92ad0452915a4de9c01722f6823eeb6adf7e0ca8290f5de3e549890ac2a3c5950ab217ba58590894952de96f8df111b2575215da6c161590c745be612476ee578ed384ab33e3ece97481a252f5c79a98b5532ae00cdd62f2ecc0cd1baefe80d80b962193ec1d\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7ae8e699f754988f4fd645e463302e49a2552072\nOutput = 08180de825e4b8b014a32da8ba761555921204f2f90d5f24b712908ff84f3e220ad17997c0dd6e706630ba3e84add4d5e7ab004e58074b549709565d43ad9e97b5a7a1a29e85b9f90f4aafcdf58321de8c5974ef9abf2d526f33c0f2f82e95d158ea6b81f1736db8d1af3d6ac6a83b32d18bae0ff1b2fe27de4c76ed8c7980a34e\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 8d46c7c05534c1ba2cc7624500d48a4531604bff\nOutput = 05e0fdbdf6f756ef733185ccfa8ced2eb6d029d9d56e35561b5db8e70257ee6fd019d2f0bbf669fe9b9821e78df6d41e31608d58280f318ee34f559941c8df13287574bac000b7e58dc4f414ba49fb127f9d0f8936638c76e85356c994f79750f7fa3cf4fd482df75e3fb9978cd061f7abb17572e6e63e0bde12cbdcf18c68b979\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ee3de96783fd0a157c8b20bf5566124124dcfe65\nOutput = 0bc989853bc2ea86873271ce183a923ab65e8a53100e6df5d87a24c4194eb797813ee2a187c097dd872d591da60c568605dd7e742d5af4e33b11678ccb63903204a3d080b0902c89aba8868f009c0f1c0cb85810bbdd29121abb8471ff2d39e49fd92d56c655c8e037ad18fafbdc92c95863f7f61ea9efa28fea401369d19daea1\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 1204df0b03c2724e2709c23fc71789a21b00ae4c\nOutput = 0aefa943b698b9609edf898ad22744ac28dc239497cea369cbbd84f65c95c0ad776b594740164b59a739c6ff7c2f07c7c077a86d95238fe51e1fcf33574a4ae0684b42a3f6bf677d91820ca89874467b2c23add77969c80717430d0efc1d3695892ce855cb7f7011630f4df26def8ddf36fc23905f57fa6243a485c770d5681fcd\n\nVerify = RSA-PSS-5\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 29926bc3280c841f601acd0d6f17ea38023eddbc\nOutput = 02802dccfa8dfaf5279bf0b4a29ba1b157611faeaaf419b8919d15941900c1339e7e92e6fae562c53e6cc8e84104b110bce03ad18525e3c49a0eadad5d3f28f244a8ed89edbafbb686277cfa8ae909714d6b28f4bf8e293aa04c41efe7c0a81266d5c061e2575be032aa464674ff71626219bd74cc45f0e7ed4e3ff96eee758e8f\n\nPublicKey = RSA-PSS-6\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d00308189028181164ca31cff609f3a0e7101b039f2e4fe6dd37519ab98598d179e174996598071f47d3a04559158d7be373cf1aa53f0aa6ef09039e5678c2a4c63900514c8c4f8aaed5de12a5f10b09c311af8c0ffb5b7a297f2efc63b8d6b0510931f0b98e48bf5fc6ec4e7b8db1ffaeb08c38e02adb8f03a48229c99e969431f61cb8c4dc698d10203010001\n\nV", + "erify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = ab464e8cb65ae5fdea47a53fa84b234d6bfd52f6\nOutput = 04c0cfacec04e5badbece159a5a1103f69b3f32ba593cb4cc4b1b7ab455916a96a27cd2678ea0f46ba37f7fc9c86325f29733b389f1d97f43e7201c0f348fc45fe42892335362eee018b5b161f2f9393031225c713012a576bc88e23052489868d9010cbf033ecc568e8bc152bdc59d560e41291915d28565208e22aeec9ef85d1\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 92d0bcae82b641f578f040f5151be8eda6d42299\nOutput = 0a2314250cf52b6e4e908de5b35646bcaa24361da8160fb0f9257590ab3ace42b0dc3e77ad2db7c203a20bd952fbb56b1567046ecfaa933d7b1000c3de9ff05b7d989ba46fd43bc4c2d0a3986b7ffa13471d37eb5b47d64707bd290cfd6a9f393ad08ec1e3bd71bb5792615035cdaf2d8929aed3be098379377e777ce79aaa4773\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 3569bd8fd2e28f2443375efa94f186f6911ffc2b\nOutput = 086df6b500098c120f24ff8423f727d9c61a5c9007d3b6a31ce7cf8f3cbec1a26bb20e2bd4a046793299e03e37a21b40194fb045f90b18bf20a47992ccd799cf9c059c299c0526854954aade8a6ad9d97ec91a1145383f42468b231f4d72f23706d9853c3fa43ce8ace8bfe7484987a1ec6a16c8daf81f7c8bf42774707a9df456\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7abbb7b42de335730a0b641f1e314b6950b84f98\nOutput = 0b5b11ad549863ffa9c51a14a1106c2a72cc8b646e5c7262509786105a984776534ca9b54c1cc64bf2d5a44fd7e8a69db699d5ea52087a4748fd2abc1afed1e5d6f7c89025530bdaa2213d7e030fa55df6f34bcf1ce46d2edf4e3ae4f3b01891a068c9e3a44bbc43133edad6ecb9f35400c4252a5762d65744b99cb9f4c559329f\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 55b7eb27be7a787a59eb7e5fac468db8917a7725\nOutput = 02d71fa9b53e4654fefb7f08385cf6b0ae3a817942ebf66c35ac67f0b069952a3ce9c7e1f1b02e480a9500836de5d64cdb7ecde04542f7a79988787e24c2ba05f5fd482c023ed5c30e04839dc44bed2a3a3a4fee01113c891a47d32eb8025c28cb050b5cdb576c70fe76ef523405c08417faf350b037a43c379339fcb18d3a356b\n\nVerify = RSA-PSS-6\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = de2fa0367ef49083ff89b9905d3fd646fcc12c38\nOutput = 0a40a16e2fe2b38d1df90546167cf9469c9e3c3681a3442b4b2c2f581deb385ce99fc6188bb02a841d56e76d301891e24560550fcc2a26b55f4ccb26d837d350a154bcaca8392d98fa67959e9727b78cad03269f56968fc56b68bd679926d83cc9cb215550645ccda31c760ff35888943d2d8a1d351e81e5d07b86182e751081ef\n\nPublicKey = RSA-PSS-7\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d0030818902818137c9da4a66c8c408b8da27d0c9d79f8ccb1eafc1d2fe48746d940b7c4ef5dee18ad12647cefaa0c4b3188b221c515386759b93f02024b25ab9242f8357d8f3fd49640ee5e643eaf6c64deefa7089727c8ff03993333915c6ef21bf5975b6e50d118b51008ec33e9f01a0a545a10a836a43ddbca9d8b5c5d3548022d7064ea29ab30203010001\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 8be4afbdd76bd8d142c5f4f46dba771ee5d6d29d\nOutput = 187f390723c8902591f0154bae6d4ecbffe067f0e8b795476ea4f4d51ccc810520bb3ca9bca7d0b1f2ea8a17d873fa27570acd642e3808561cb9e975ccfd80b23dc5771cdb3306a5f23159dacbd3aa2db93d46d766e09ed15d900ad897a8d274dc26b47e994a27e97e2268a766533ae4b5e42a2fcaf755c1c4794b294c60555823\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 402140dc605b2f5c5ec0d15bce9f9ba8857fe117\nOutput = 10fd89768a60a67788abb5856a787c8561f3edcf9a83e898f7dc87ab8cce79429b43e56906941a886194f137e591fe7c339555361fbbe1f24feb2d4bcdb80601f3096bc9132deea60ae13082f44f9ad41cd628936a4d51176e42fc59cb76db815ce5ab4db99a104aafea68f5d330329ebf258d4ede16064bd1d00393d5e1570eb8\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 3e885205892ff2b6b37c2c4eb486c4bf2f9e7f20\nOutput = 2b31fde99859b977aa09586d8e274662b25a2a640640b457f594051cb1e7f7a911865455242926cf88fe80dfa3a75ba9689844a11e634a82b075afbd69c12a0df9d25f84ad4945df3dc8fe90c3cefdf26e95f0534304b5bdba20d3e5640a2ebfb898aac35ae40f26fce5563c2f9f24f3042af76f3c7072d687bbfb959a88460af1\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 1fc2201d0c442a4736cd8b2cd00c959c47a3bf42\nOutput = 32c7ca38ff26949a15000c4ba04b2b13b35a3810e568184d7ecabaa166b7ffabddf2b6cf4ba07124923790f2e5b1a5be040aea36fe132ec130e1f10567982d17ac3e89b8d26c3094034e762d2e031264f01170beecb3d1439e05846f25458367a7d9c02060444672671e64e877864559ca19b2074d588a281b5804d23772fbbe19\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = e4351b66819e5a31501f89acc7faf57030e9aac5\nOutput = 07eb651d75f1b52bc263b2e198336e99fbebc4f332049a922a10815607ee2d989db3a4495b7dccd38f58a211fb7e193171a3d891132437ebca44f318b280509e52b5fa98fcce8205d9697c8ee4b7ff59d4c59c79038a1970bd2a0d451ecdc5ef11d9979c9d35f8c70a6163717607890d586a7c6dc01c79f86a8f28e85235f8c2f1\n\nVerify = RSA-PSS-7\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 49f6cc58365e514e1a3f301f4de16f9fb5347ff2\nOutput = 18da3cdcfe79bfb77fd9c32f377ad399146f0a8e810620233271a6e3ed3248903f5cdc92dc79b55d3e11615aa056a795853792a3998c349ca5c457e8ca7d29d796aa24f83491709befcfb1510ea513c92829a3f00b104f655634f320752e130ec0ccf6754ff893db302932bb025eb60e87822598fc619e0e981737a9a4c4152d33\n\nPublicKey = RSA-PSS-8\nType = RSA\nInput = 30819f300d06092a864886f70d010101050003818d00308189028181495370a1fb18543c16d3631e3163255df62be6eee890d5f25509e4f778a8ea6fbbbcdf85dff64e0d972003ab3681fbba6dd41fd541829b2e582de9f2a4a4e0a2d0900bef4753db3cee0ee06c7dfae8b1d53b5953218f9cceea695b08668edeaadced9463b1d790d5ebf27e9115b46cad4d9a2b8efab0561b0810344739ada0733f0203010001\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = a1dd230d8ead860199b6277c2ecfe3d95f6d9160\nOutput = 0262ac254bfa77f3c1aca22c5179f8f040422b3c5bafd40a8f21cf0fa5a667ccd5993d42dbafb409c520e25fce2b1ee1e716577f1efa17f3da28052f40f0419b23106d7845aaf01125b698e7a4dfe92d3967bb00c4d0d35ba3552ab9a8b3eef07c7fecdbc5424ac4db1e20cb37d0b2744769940ea907e17fbbca673b20522380c5\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = f6e68e53c602c5c65fa67b5aa6d786e5524b12ab\nOutput = 2707b9ad5115c58c94e932e8ec0a280f56339e44a1b58d4ddcff2f312e5f34dcfe39e89c6a94dcee86dbbdae5b79ba4e0819a9e7bfd9d982e7ee6c86ee68396e8b3a14c9c8f34b178eb741f9d3f121109bf5c8172fada2e768f9ea1433032c004a8aa07eb990000a48dc94c8bac8aabe2b09b1aa46c0a2aa0e12f63fbba775ba7e\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = d6f9fcd3ae27f32bb2c7c93536782eba52af1f76\nOutput = 2ad20509d78cf26d1b6c406146086e4b0c91a91c2bd164c87b966b8faa42aa0ca446022323ba4b1a1b89706d7f4c3be57d7b69702d168ab5955ee290356b8c4a29ed467d547ec23cbadf286ccb5863c6679da467fc9324a151c7ec55aac6db4084f82726825cfe1aa421bc64049fb42f23148f9c25b2dc300437c38d428aa75f96\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 7ff2a53ce2e2d900d468e498f230a5f5dd0020de\nOutput = 1e24e6e58628e5175044a9eb6d837d48af1260b0520e87327de7897ee4d5b9f0df0be3e09ed4dea8c1454ff3423bb08e1793245a9df8bf6ab3968c8eddc3b5328571c77f091cc578576912dfebd164b9de5454fe0be1c1f6385b328360ce67ec7a05f6e30eb45c17c48ac70041d2cab67f0a2ae7aafdcc8d245ea3442a6300ccc7\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 4eb309f7022ba0b03bb78601b12931ec7c1be8d3\nOutput = 33341ba3576a130a50e2a5cf8679224388d5693f5accc235ac95add68e5eb1eec31666d0ca7a1cda6f70a1aa762c05752a51950cdb8af3c5379f18cfe6b5bc55a4648226a15e912ef19ad77adeea911d67cfefd69ba43fa4119135ff642117ba985a7e0100325e9519f1ca6a9216bda055b5785015291125e90dcd07a2ca9673ee\n\nVerify = RSA-PSS-8\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 65033bc2f67d6aba7d526acb873b8d9241e5e4d9\nOutput = 1ed1d848fb1edb44129bd9b354795af97a069a7a00d0151048593e0c72c3517ff9ff2a41d0cb5a0ac860d736a199704f7cb6a53986a88bbd8abcc0076a2ce847880031525d449da2ac78356374c536e343faa7cba42a5aaa6506087791c06a8e989335aed19bfab2d5e67e27fb0c2875af896c21b6e8e7309d04e4f6727e69463e\n\nPublicKey = RSA-PSS-9\nType = RSA\nInput = 3081df300d06092a864886f70d01010105000381cd003081c90281c100e6bd692ac96645790403fdd0f5beb8b9bf92ed10007fc365046419dd06c05c5b5b2f48ecf989e4ce269109979cbb40b4a0ad24d22483d1ee315ad4ccb1534268352691c524f6dd8e6c29d224cf246973aec86c5bf6b1401a850d1b9ad1bb8cbcec47b06f0f8c7f45d3fc8f319299c5433ddbc2b3053b47ded2ecd4a4caefd614833dc8bb622f317ed076b8057fe8de3f84480ad5e83e4a61904a4f248fb397027357e1d30e463139815c6fd4fd5ac5b8172a45230ecb6318a04f1455d84e5a8b0203010001\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 2715a49b8b0012cd7aee84c116446e6dfe3faec0\nOutput = 586107226c3ce013a7c8f04d1a6a2959bb4b8e205ba43a27b50f124111bc35ef589b039f5932187cb696d7d9a32c0c38300a5cdda4834b62d2eb240af33f79d13dfbf095bf599e0d9686948c1964", + "747b67e89c9aba5cd85016236f566cc5802cb13ead51bc7ca6bef3b94dcbdbb1d570469771df0e00b1a8a06777472d2316279edae86474668d4e1efff95f1de61c6020da32ae92bbf16520fef3cf4d88f61121f24bbd9fe91b59caf1235b2a93ff81fc403addf4ebdea84934a9cdaf8e1a9e\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 2dac956d53964748ac364d06595827c6b4f143cd\nOutput = 80b6d643255209f0a456763897ac9ed259d459b49c2887e5882ecb4434cfd66dd7e1699375381e51cd7f554f2c271704b399d42b4be2540a0eca61951f55267f7c2878c122842dadb28b01bd5f8c025f7e228418a673c03d6bc0c736d0a29546bd67f786d9d692ccea778d71d98c2063b7a71092187a4d35af108111d83e83eae46c46aa34277e06044589903788f1d5e7cee25fb485e92949118814d6f2c3ee361489016f327fb5bc517eb50470bffa1afa5f4ce9aa0ce5b8ee19bf5501b958\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 28d98c46cccafbd3bc04e72f967a54bd3ea12298\nOutput = 484408f3898cd5f53483f80819efbf2708c34d27a8b2a6fae8b322f9240237f981817aca1846f1084daa6d7c0795f6e5bf1af59c38e1858437ce1f7ec419b98c8736adf6dd9a00b1806d2bd3ad0a73775e05f52dfef3a59ab4b08143f0df05cd1ad9d04bececa6daa4a2129803e200cbc77787caf4c1d0663a6c5987b605952019782caf2ec1426d68fb94ed1d4be816a7ed081b77e6ab330b3ffc073820fecde3727fcbe295ee61a050a343658637c3fd659cfb63736de32d9f90d3c2f63eca\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 0866d2ff5a79f25ef668cd6f31b42dee421e4c0e\nOutput = 84ebeb481be59845b46468bafb471c0112e02b235d84b5d911cbd1926ee5074ae0424495cb20e82308b8ebb65f419a03fb40e72b78981d88aad143053685172c97b29c8b7bf0ae73b5b2263c403da0ed2f80ff7450af7828eb8b86f0028bd2a8b176a4d228cccea18394f238b09ff758cc00bc04301152355742f282b54e663a919e709d8da24ade5500a7b9aa50226e0ca52923e6c2d860ec50ff480fa57477e82b0565f4379f79c772d5c2da80af9fbf325ece6fc20b00961614bee89a183e\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 6a5b4be4cd36cc97dfde9995efbf8f097a4a991a\nOutput = 82102df8cb91e7179919a04d26d335d64fbc2f872c44833943241de8454810274cdf3db5f42d423db152af7135f701420e39b494a67cbfd19f9119da233a23da5c6439b5ba0d2bc373eee3507001378d4a4073856b7fe2aba0b5ee93b27f4afec7d4d120921c83f606765b02c19e4d6a1a3b95fa4c422951be4f52131077ef17179729cddfbdb56950dbaceefe78cb16640a099ea56d24389eef10f8fecb31ba3ea3b227c0a86698bb89e3e9363905bf22777b2a3aa521b65b4cef76d83bde4c\n\nVerify = RSA-PSS-9\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = b9dfd1df76a461c51e6576c6c8ed0a923d1c50e7\nOutput = a7fdb0d259165ca2c88d00bbf1028a867d337699d061193b17a9648e14ccbbaadeacaacdec815e7571294ebb8a117af205fa078b47b0712c199e3ad05135c504c24b81705115740802487992ffd511d4afc6b854491eb3f0dd523139542ff15c3101ee85543517c6a3c79417c67e2dd9aa741e9a29b06dcb593c2336b3670ae3afbac7c3e76e215473e866e338ca244de00b62624d6b9426822ceae9f8cc460895f41250073fd45c5a1e7b425c204a423a699159f6903e710b37a7bb2bc8049f\n\nPublicKey = RSA-PSS-10\nType = RSA\nInput = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a5dd867ac4cb02f90b9457d48c14a770ef991c56c39c0ec65fd11afa8937cea57b9be7ac73b45c0017615b82d622e318753b6027c0fd157be12f8090fee2a7adcd0eef759f88ba4997c7a42d58c9aa12cb99ae001fe521c13bb5431445a8d5ae4f5e4c7e948ac227d3604071f20e577e905fbeb15dfaf06d1de5ae6253d63a6a2120b31a5da5dabc9550600e20f27d3739e2627925fea3cc509f21dff04e6eea4549c540d6809ff9307eede91fff58733d8385a237d6d3705a33e391900992070df7adf1357cf7e3700ce3667de83f17b8df1778db381dce09cb4ad058a511001a738198ee27cf55a13b754539906582ec8b174bd58d5d1f3d767c613721ae050203010001\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 9596bb630cf6a8d4ea4600422b9eba8b13675dd4\nOutput = 82c2b160093b8aa3c0f7522b19f87354066c77847abf2a9fce542d0e84e920c5afb49ffdfdace16560ee94a1369601148ebad7a0e151cf16331791a5727d05f21e74e7eb811440206935d744765a15e79f015cb66c532c87a6a05961c8bfad741a9a6657022894393e7223739796c02a77455d0f555b0ec01ddf259b6207fd0fd57614cef1a5573baaff4ec00069951659b85f24300a25160ca8522dc6e6727e57d019d7e63629b8fe5e89e25cc15beb3a647577559299280b9b28f79b0409000be25bbd96408ba3b43cc486184dd1c8e62553fa1af4040f60663de7f5e49c04388e257f1ce89c95dab48a315d9b66b1b7628233876ff2385230d070d07e1666\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = b503319399277fd6c1c8f1033cbf04199ea21716\nOutput = 14ae35d9dd06ba92f7f3b897978aed7cd4bf5ff0b585a40bd46ce1b42cd2703053bb9044d64e813d8f96db2dd7007d10118f6f8f8496097ad75e1ff692341b2892ad55a633a1c55e7f0a0ad59a0e203a5b8278aec54dd8622e2831d87174f8caff43ee6c46445345d84a59659bfb92ecd4c818668695f34706f66828a89959637f2bf3e3251c24bdba4d4b7649da0022218b119c84e79a6527ec5b8a5f861c159952e23ec05e1e717346faefe8b1686825bd2b262fb2531066c0de09acde2e4231690728b5d85e115a2f6b92b79c25abc9bd9399ff8bcf825a52ea1f56ea76dd26f43baafa18bfa92a504cbd35699e26d1dcc5a2887385f3c63232f06f3244c3\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 50aaede8536b2c307208b275a67ae2df196c7628\nOutput = 6e3e4d7b6b15d2fb46013b8900aa5bbb3939cf2c095717987042026ee62c74c54cffd5d7d57efbbf950a0f5c574fa09d3fc1c9f513b05b4ff50dd8df7edfa20102854c35e592180119a70ce5b085182aa02d9ea2aa90d1df03f2daae885ba2f5d05afdac97476f06b93b5bc94a1a80aa9116c4d615f333b098892b25fface266f5db5a5a3bcc10a824ed55aad35b727834fb8c07da28fcf416a5d9b2224f1f8b442b36f91e456fdea2d7cfe3367268de0307a4c74e924159ed33393d5e0655531c77327b89821bdedf880161c78cd4196b5419f7acc3f13e5ebf161b6e7c6724716ca33b85c2e25640192ac2859651d50bde7eb976e51cec828b98b6563b86bb\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = aa0b72b8b371ddd10c8ae474425ccccf8842a294\nOutput = 34047ff96c4dc0dc90b2d4ff59a1a361a4754b255d2ee0af7d8bf87c9bc9e7ddeede33934c63ca1c0e3d262cb145ef932a1f2c0a997aa6a34f8eaee7477d82ccf09095a6b8acad38d4eec9fb7eab7ad02da1d11d8e54c1825e55bf58c2a23234b902be124f9e9038a8f68fa45dab72f66e0945bf1d8bacc9044c6f07098c9fcec58a3aab100c805178155f030a124c450e5acbda47d0e4f10b80a23f803e774d023b0015c20b9f9bbe7c91296338d5ecb471cafb032007b67a60be5f69504a9f01abb3cb467b260e2bce860be8d95bf92c0c8e1496ed1e528593a4abb6df462dde8a0968dffe4683116857a232f5ebf6c85be238745ad0f38f767a5fdbf486fb\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = fad3902c9750622a2bc672622c48270cc57d3ea8\nOutput = 7e0935ea18f4d6c1d17ce82eb2b3836c55b384589ce19dfe743363ac9948d1f346b7bfddfe92efd78adb21faefc89ade42b10f374003fe122e67429a1cb8cbd1f8d9014564c44d120116f4990f1a6e38774c194bd1b8213286b077b0499d2e7b3f434ab12289c556684deed78131934bb3dd6537236f7c6f3dcb09d476be07721e37e1ceed9b2f7b406887bd53157305e1c8b4f84d733bc1e186fe06cc59b6edb8f4bd7ffefdf4f7ba9cfb9d570689b5a1a4109a746a690893db3799255a0cb9215d2d1cd490590e952e8c8786aa0011265252470c041dfbc3eec7c3cbf71c24869d115c0cb4a956f56d530b80ab589acfefc690751ddf36e8d383f83cedd2cc\n\nVerify = RSA-PSS-10\nRSAPadding = PSS\nMGF1Digest = SHA1\nInput = 122196deb5d122bd8c6fc781ff6924d7c695aade\nOutput = 6d3b5b87f67ea657af21f75441977d2180f91b2c5f692de82955696a686730d9b9778d970758ccb26071c2209ffbd6125be2e96ea81b67cb9b9308239fda17f7b2b64ecda096b6b935640a5a1cb42a9155b1c9ef7a633a02c59f0d6ee59b852c43b35029e73c940ff0410e8f114eed46bbd0fae165e42be2528a401c3b28fd818ef3232dca9f4d2a0f5166ec59c42396d6c11dbc1215a56fa17169db9575343ef34f9de32a49cdc3174922f229c23e18e45df9353119ec4319cedce7a17c64088c1f6f52be29634100b3919d38f3d1ed94e6891e66a73b8fb849f5874df59459e298c7bbce2eee782a195aa66fe2d0732b25e595f57d3e061b1fc3e4063bf98f\n\nPrivateKey = RSA-OAEP-1\nType = RSA\nInput = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100a8b3b284af8eb50b387034a860f146c4919f318763cd6c5598c8ae4811a1e0abc4c7e0b082d693a5e7fced675cf4668512772c0cbc64a742c6c630f533c8cc72f62ae833c40bf25842e984bb78bdbf97c0107d55bdb662f5c4e0fab9845cb5148ef7392dd3aaff93ae1e6b667bb3d4247616d4f5ba10d4cfd226de88d39f16fb020301000102818053339cfdb79fc8466a655c7316aca85c55fd8f6dd898fdaf119517ef4f52e8fd8e258df93fee180fa0e4ab29693cd83b152a553d4ac4d1812b8b9fa5af0e7f55fe7304df41570926f3311f15c4d65a732c483116ee3d3d2d0af3549ad9bf7cbfb78ad884f84d5beb04724dc7369b31def37d0cf539e9cfcdd3de653729ead5d1024100d32737e7267ffe1341b2d5c0d150a81b586fb3132bed2f8d5262864a9cb9f30af38be448598d413a172efb802c21acf1c11c520c2f26a471dcad212eac7ca39d024100cc8853d1d54da630fac004f471f281c7b8982d8224a490edbeb33d3e3d5cc93c4765703d1dd791642f1f116a0dd852be2419b2af72bfe9a030e860b0288b5d7702400e12bf1718e9cef5599ba1c3882fe8046a90874eefce8f2ccc20e4f2741fb0a33a3848aec9c9305fbecbd2d76819967d4671acc6431e4037968db37878e695c102410095297b0f95a2fa67d00707d609d", + "fd4fc05c89dafc2ef6d6ea55bec771ea333734d9251e79082ecda866efef13c459e1a631386b7e354c899f5f112ca85d7158302404f456c502493bdc0ed2ab756a3a6ed4d67352a697d4216e93212b127a63d5411ce6fa98d5dbefd73263e3728142743818166ed7dd63687dd2a8ca1d2f4fbd8e1\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 354fe67b4a126d5d35fe36c777791a3f7ba13def484e2d3908aff722fad468fb21696de95d0be911c2d3174f8afcc201035f7b6d8e69402de5451618c21a535fa9d7bfc5b8dd9fc243f8cf927db31322d6e881eaa91a996170e657a05a266426d98c88003f8477c1227094a0d9fa1e8c4024309ce1ecccb5210035d47ac72e8a\nOutput = 6628194e12073db03ba94cda9ef9532397d50dba79b987004afefe34\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 640db1acc58e0568fe5407e5f9b701dff8c3c91e716c536fc7fcec6cb5b71c1165988d4a279e1577d730fc7a29932e3f00c81515236d8d8e31017a7a09df4352d904cdeb79aa583adcc31ea698a4c05283daba9089be5491f67c1a4ee48dc74bbbe6643aef846679b4cb395a352d5ed115912df696ffe0702932946d71492b44\nOutput = 750c4047f547e8e41411856523298ac9bae245efaf1397fbe56f9dd5\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 423736ed035f6026af276c35c0b3741b365e5f76ca091b4e8c29e2f0befee603595aa8322d602d2e625e95eb81b2f1c9724e822eca76db8618cf09c5343503a4360835b5903bc637e3879fb05e0ef32685d5aec5067cd7cc96fe4b2670b6eac3066b1fcf5686b68589aafb7d629b02d8f8625ca3833624d4800fb081b1cf94eb\nOutput = d94ae0832e6445ce42331cb06d531a82b1db4baad30f746dc916df24d4e3c2451fff59a6423eb0e1d02d4fe646cf699dfd818c6e97b051\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 45ead4ca551e662c9800f1aca8283b0525e6abae30be4b4aba762fa40fd3d38e22abefc69794f6ebbbc05ddbb11216247d2f412fd0fba87c6e3acd888813646fd0e48e785204f9c3f73d6d8239562722dddd8771fec48b83a31ee6f592c4cfd4bc88174f3b13a112aae3b9f7b80e0fc6f7255ba880dc7d8021e22ad6a85f0755\nOutput = 52e650d98e7f2a048b4f86852153b97e01dd316f346a19f67a85\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 36f6e34d94a8d34daacba33a2139d00ad85a9345a86051e73071620056b920e219005855a213a0f23897cdcd731b45257c777fe908202befdd0b58386b1244ea0cf539a05d5d10329da44e13030fd760dcd644cfef2094d1910d3f433e1c7c6dd18bc1f2df7f643d662fb9dd37ead9059190f4fa66ca39e869c4eb449cbdc439\nOutput = 8da89fd9e5f974a29feffb462b49180f6cf9e802\n\nDecrypt = RSA-OAEP-1\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 42cee2617b1ecea4db3f4829386fbd61dafbf038e180d837c96366df24c097b4ab0fac6bdf590d821c9f10642e681ad05b8d78b378c0f46ce2fad63f74e0ad3df06b075d7eb5f5636f8d403b9059ca761b5c62bb52aa45002ea70baace08ded243b9d8cbd62a68ade265832b56564e43a6fa42ed199a099769742df1539e8255\nOutput = 26521050844271\n\nPrivateKey = RSA-OAEP-2\nType = RSA\nInput = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818101947c7fce90425f47279e70851f25d5e62316fe8a1df19371e3e628e260543e4901ef6081f68c0b8141190d2ae8daba7d1250ec6db636e944ec3722877c7c1d0a67f14b1694c5f0379451a43e49a32dde83670b73da91a1c99bc23b436a60055c610f0baf99c1a079565b95a3f1526632d1d4da60f20eda25e653c4f002766f4502030100010281800823f20fadb5da89088a9d00893e21fa4a1b11fbc93c64a3be0baaea97fb3b93c3ff713704c19c963c1d107aae99054739f79e02e186de86f87a6ddefea6d8ccd1d3c81a47bfa7255be20601a4a4b2f08a167b5e279d715b1b455bdd7eab245941d9768b9acefb3ccda5952da3cee72525b4501663a8ee15c9e992d92462fe3902410159dbde04a33ef06fb608b80b190f4d3e22bcc13ac8e4a081033abfa416edb0b338aa08b57309ea5a5240e7dc6e54378c69414c31d97ddb1f406db3769cc41a430241012b652f30403b38b40995fd6ff41a1acc8ada70373236b7202d39b2ee30cfb46db09511f6f307cc61cc21606c18a75b8a62f822df031ba0df0dafd5506f568bd70240436ef508de736519c2da4c580d98c82cb7452a3fb5efadc3b9c7789a1bc6584f795addbbd32439c74686552ecb6c2c307a4d3af7f539eec157248c7b31f1a2550241012b15a89f3dfb2b39073e73f02bdd0c1a7b379dd435f05cdde2eff9e462948b7cec62ee9050d5e0816e0785a856b49108dcb75f3683874d1ca6329a19013066ff02400270db17d5914b018d76118b24389a7350ec836b0063a21721236fd8edb6d89b51e7eeb87b611b7132cb7ea7356c23151c1e7751507c786d9ee1794170a8c8e8\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0181af8922b9fcb4d79d92ebe19815992fc0c1439d8bcd491398a0f4ad3a329a5bd9385560db532683c8b7da04e4b12aed6aacdf471c34c9cda891addcc2df3456653aa6382e9ae59b54455257eb099d562bbe10453f2b6d13c59c02e10f1f8abb5da0d0570932dacf2d0901db729d0fefcc054e70968ea540c81b04bcaefe720e\nOutput = 8ff00caa605c702830634d9a6c3d42c652b58cf1d92fec570beee7\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 018759ff1df63b2792410562314416a8aeaf2ac634b46f940ab82d64dbf165eee33011da749d4bab6e2fcd18129c9e49277d8453112b429a222a8471b070993998e758861c4d3f6d749d91c4290d332c7a4ab3f7ea35ff3a07d497c955ff0ffc95006b62c6d296810d9bfab024196c7934012c2df978ef299aba239940cba10245\nOutput = 2d\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 018802bab04c60325e81c4962311f2be7c2adce93041a00719c88f957575f2c79f1b7bc8ced115c706b311c08a2d986ca3b6a9336b147c29c6f229409ddec651bd1fdd5a0b7f610c9937fdb4a3a762364b8b3206b4ea485fd098d08f63d4aa8bb2697d027b750c32d7f74eaf5180d2e9b66b17cb2fa55523bc280da10d14be2053\nOutput = 74fc88c51bc90f77af9d5e9a4a70133d4b4e0b34da3c37c7ef8e\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00a4578cbc176318a638fba7d01df15746af44d4f6cd96d7e7c495cbf425b09c649d32bf886da48fbaf989a2117187cafb1fb580317690e3ccd446920b7af82b31db5804d87d01514acbfa9156e782f867f6bed9449e0e9a2c09bcecc6aa087636965e34b3ec766f2fe2e43018a2fddeb140616a0e9d82e5331024ee0652fc7641\nOutput = a7eb2a5036931d27d4e891326d99692ffadda9bf7efd3e34e622c4adc085f721dfe885072c78a203b151739be540fa8c153a10f00a\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00ebc5f5fda77cfdad3c83641a9025e77d72d8a6fb33a810f5950f8d74c73e8d931e8634d86ab1246256ae07b6005b71b7f2fb98351218331ce69b8ffbdc9da08bbc9c704f876deb9df9fc2ec065cad87f9090b07acc17aa7f997b27aca48806e897f771d95141fe4526d8a5301b678627efab707fd40fbebd6e792a25613e7aec\nOutput = 2ef2b066f854c33f3bdcbb5994a435e73d6c6c\n\nDecrypt = RSA-OAEP-2\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 010839ec20c27b9052e55befb9b77e6fc26e9075d7a54378c646abdf51e445bd5715de81789f56f1803d9170764a9e93cb78798694023ee7393ce04bc5d8f8c5a52c171d43837e3aca62f609eb0aa5ffb0960ef04198dd754f57f7fbe6abf765cf118b4ca443b23b5aab266f952326ac4581100644325f8b721acd5d04ff14ef3a\nOutput = 8a7fb344c8b6cb2cf2ef1f643f9a3218f6e19bba89c0\n\nPrivateKey = RSA-OAEP-3\nType = RSA\nInput = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818102b58fec039a860700a4d7b6462f93e6cdd491161ddd74f4e810b40e3c1652006a5c277b2774c11305a4cbab5a78efa57e17a86df7a3fa36fc4b1d2249f22ec7c2dd6a463232accea906d66ebe80b5704b10729da6f833234abb5efdd4a292cbfad33b4d33fa7a14b8c397b56e3acd21203428b77cdfa33a6da706b3d8b0fc43e9020301000102818015b48a5b5683a94670e23b5718f814fa0e13f85038f50711182cba61510581f3d22c7e232ef937e22e551d68b86e2f8cb1aad8be2e488f5df7efd279e3f568d4eaf36f80cf7141ace60fcc9113fb6c4a841fd50bbc7c512ffcbeff21487aa811eb3ca8c62005346a86de86bfa1d8a948fd3f348c22eaadf333c3ce6ce13208fd024101bf01d216d73595cf0270c2beb78d40a0d8447d31da919a983f7eea781b77d85fe371b3e9373e7b69217d3150a02d8958de7fad9d555160958b4454127e0e7eaf0241018d3399658166db3829816d7b295416759e9c91987f5b2d8aecd63b04b48bd7b2fcf229bb7f8a6dc88ba13dd2e39ad55b6d1a06160708f9700be80b8fd3744ce7024006c0a249d20a6f2ee75c88b494d53f6aae99aa427c88c28b163a769445e5f390cf40c274fd6ea6329a5ce7c7ce03a2158396ee2a7845786e09e2885a9728e4e5024100d1d27c29fedd92d86c348edd0ccbfac14f746e051ce1d1811df35d61f2ee1c97d4bf2804802f6427187ba8e90a8af44243b4079b03445e602e29fa5193e64fe90241008cb2f756bd8941b1d3b770e5ad31ee373b28acda69ff9b6f40fe578b9f1afb85836f9627d37acff73c2779e634bb26011c2c8f7f3361ae2a9ea65ed689e3639a\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 026a0485d96aebd96b4382085099b962e6a2bdec3d90c8db625e14372de85e2d5b7baab65c8faf91bb5504fb495afce5c988b3f6a52e20e1d6cbd3566c5cd1f2b8318bb542cc0ea25c4aab9932afa20760eaddec784396a07ea0ef24d4e6f4d37e5052a7a31e146aa480a111bbe926401307e00f410033842b6d82fe5ce4dfae80\nOutput = 087820b569e8fa8d\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 024db89c7802989be0783847863084941bf209d761987e38f97cb5f6f1bc88da72a50b73ebaf11c879c4f95df37b850b8f65d7622e25b1b889e80fe80baca2069d6e0e1d829953fc459069de98ea9798b451e557e99abf8fe3d9ccf9096ebbf3e5255d3b4e1c6d2ecadf067a359eea86405acd47d5e165517ccafd47d6dbee4bf5\nOutput = 4653acaf17196", + "0b01f52a7be63a3ab21dc368ec43b50d82ec3781e04\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0239bce681032441528877d6d1c8bb28aa3bc97f1df584563618995797683844ca86664732f4bed7a0aab083aaabfb7238f582e30958c2024e44e57043b97950fd543da977c90cdde5337d618442f99e60d7783ab59ce6dd9d69c47ad1e962bec22d05895cff8d3f64ed5261d92b2678510393484990ba3f7f06818ae6ffce8a3a\nOutput = d94cd0e08fa404ed89\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 02994c62afd76f498ba1fd2cf642857fca81f4373cb08f1cbaee6f025c3b512b42c3e8779113476648039dbe0493f9246292fac28950600e7c0f32edf9c81b9dec45c3bde0cc8d8847590169907b7dc5991ceb29bb0714d613d96df0f12ec5d8d3507c8ee7ae78dd83f216fa61de100363aca48a7e914ae9f42ddfbe943b09d9a0\nOutput = 6cc641b6b61e6f963974dad23a9013284ef1\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0162042ff6969592a6167031811a239834ce638abf54fec8b99478122afe2ee67f8c5b18b0339805bfdbc5a4e6720b37c59cfba942464c597ff532a119821545fd2e59b114e61daf71820529f5029cf524954327c34ec5e6f5ba7efcc4de943ab8ad4ed787b1454329f70db798a3a8f4d92f8274e2b2948ade627ce8ee33e43c60\nOutput = df5151832b61f4f25891fb4172f328d2eddf8371ffcfdbe997939295f30eca6918017cfda1153bf7a6af87593223\n\nDecrypt = RSA-OAEP-3\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00112051e75d064943bc4478075e43482fd59cee0679de6893eec3a943daa490b9691c93dfc0464b6623b9f3dbd3e70083264f034b374f74164e1a00763725e574744ba0b9db83434f31df96f6e2a26f6d8eba348bd4686c2238ac07c37aac3785d1c7eea2f819fd91491798ed8e9cef5e43b781b0e0276e37c43ff9492d005730\nOutput = 3c3bad893c544a6d520ab022319188c8d504b7a788b850903b85972eaa18552e1134a7ad6098826254ff7ab672b3d8eb3158fac6d4cbaef1\n\nPrivateKey = RSA-OAEP-4\nType = RSA\nInput = 30820277020100300d06092a864886f70d0101010500048202613082025d020100028181051240b6cc0004fa48d0134671c078c7c8dec3b3e2f25bc2564467339db38853d06b85eea5b2de353bff42ac2e46bc97fae6ac9618da9537a5c8f553c1e357625991d6108dcd7885fb3a25413f53efcad948cb35cd9b9ae9c1c67626d113d57dde4c5bea76bb5bb7de96c00d07372e9685a6d75cf9d239fa148d70931b5f3fb03902030100010281800411ffca3b7ca5e9e9be7fe38a85105e353896db05c5796aecd2a725161eb3651c8629a9b862b904d7b0c7b37f8cb5a1c2b54001018a00a1eb2cafe4ee4e9492c348bc2bedab4b9ebbf064e8eff322b9009f8eec653905f40df88a3cdc49d4567f75627d41aca624129b46a0b7c698e5e65f2b7ba102c749a10135b6540d04010241027458c19ec1636919e736c9af25d609a51b8f561d19c6bf6943dd1ee1ab8a4a3f232100bd40b88decc6ba235548b6ef792a11c9de823d0a7922c7095b6eba570102410210ee9b33ab61716e27d251bd465f4b35a1a232e2da00901c294bf22350ce490d099f642b5375612db63ba1f20386492bf04d34b3c22bceb909d13441b53b5139024039fa028b826e88c1121b750a8b242fa9a35c5b66bdfd1fa637d3cc48a84a4f457a194e7727e49f7bcc6e5a5a412657fc470c7322ebc37416ef458c307a8c09010241015d99a84195943979fa9e1be2c3c1b69f432f46fd03e47d5befbbbfd6b1d1371d83efb330a3e020942b2fed115e5d02be24fd92c9019d1cecd6dd4cf1e54cc899024101f0b7015170b3f5e42223ba30301c41a6d87cbb70e30cb7d3c67d25473db1f6cbf03e3f9126e3e97968279a865b2c2b426524cfc52a683d31ed30eb984be412ba\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 04cce19614845e094152a3fe18e54e3330c44e5efbc64ae16886cb1869014cc5781b1f8f9e045384d0112a135ca0d12e9c88a8e4063416deaae3844f60d6e96fe155145f4525b9a34431ca3766180f70e15a5e5d8e8b1a516ff870609f13f896935ced188279a58ed13d07114277d75c6568607e0ab092fd803a223e4a8ee0b1a8\nOutput = 4a86609534ee434a6cbca3f7e962e76d455e3264c19f605f6e5ff6137c65c56d7fb344cd52bc93374f3d166c9f0c6f9c506bad19330972d2\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0097b698c6165645b303486fbf5a2a4479c0ee85889b541a6f0b858d6b6597b13b854eb4f839af03399a80d79bda6578c841f90d645715b280d37143992dd186c80b949b775cae97370e4ec97443136c6da484e970ffdb1323a20847821d3b18381de13bb49aaea66530c4a4b8271f3eae172cd366e07e6636f1019d2a28aed15e\nOutput = b0adc4f3fe11da59ce992773d9059943c03046497ee9d9f9a06df1166db46d98f58d27ec074c02eee6cbe2449c8b9fc5080c5c3f4433092512ec46aa793743c8\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0301f935e9c47abcb48acbbe09895d9f5971af14839da4ff95417ee453d1fd77319072bb7297e1b55d7561cd9d1bb24c1a9a37c619864308242804879d86ebd001dce5183975e1506989b70e5a83434154d5cbfd6a24787e60eb0c658d2ac193302d1192c6e622d4a12ad4b53923bca246df31c6395e37702c6a78ae081fb9d065\nOutput = bf6d42e701707b1d0206b0c8b45a1c72641ff12889219a82bdea965b5e79a96b0d0163ed9d578ec9ada20f2fbcf1ea3c4089d83419ba81b0c60f3606da99\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 02d110ad30afb727beb691dd0cf17d0af1a1e7fa0cc040ec1a4ba26a42c59d0a796a2e22c8f357ccc98b6519aceb682e945e62cb734614a529407cd452bee3e44fece8423cc19e55548b8b994b849c7ecde4933e76037e1d0ce44275b08710c68e430130b929730ed77e09b015642c5593f04e4ffb9410798102a8e96ffdfe11e4\nOutput = fb2ef112f5e766eb94019297934794f7be2f6fc1c58e\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00dbb8a7439d90efd919a377c54fae8fe11ec58c3b858362e23ad1b8a44310799066b99347aa525691d2adc58d9b06e34f288c170390c5f0e11c0aa3645959f18ee79e8f2be8d7ac5c23d061f18dd74b8c5f2a58fcb5eb0c54f99f01a83247568292536583340948d7a8c97c4acd1e98d1e29dc320e97a260532a8aa7a758a1ec2\nOutput = 28ccd447bb9e85166dabb9e5b7d1adadc4b9d39f204e96d5e440ce9ad928bc1c2284\n\nDecrypt = RSA-OAEP-4\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00a5ffa4768c8bbecaee2db77e8f2eec99595933545520835e5ba7db9493d3e17cddefe6a5f567624471908db4e2d83a0fbee60608fc84049503b2234a07dc83b27b22847ad8920ff42f674ef79b76280b00233d2b51b8cb2703a9d42bfbc8250c96ec32c051e57f1b4ba528db89c37e4c54e27e6e64ac69635ae887d9541619a9\nOutput = f22242751ec6b1\n\nPrivateKey = RSA-OAEP-5\nType = RSA\nInput = 30820279020100300d06092a864886f70d0101010500048202633082025f0201000281810aadf3f9c125e5d891f31ac448e993defe580f802b45f9d7f22ba5021e9c47576b5a1e68031ba9db4e6dabe4d96a1d6f3d267268cff408005f118efcadb99888d1c234467166b2a2b849a05a889c060ac0da0c5fae8b55f309ba62e703742fa0326f2d10b011021489ff497770190d895fd39f52293c39efd73a698bdab9f10ed902030100010281810256eb4cba7067f2d2be540dcdff4582a36b7d31d1c9099bb214b79848466a268f80f58a49ac04c0e3648934a0206c04537c19b236643a6082732144df75fa217588f794682be89168276dc726c5c0cbdb84d31bbf26d0a43af495717f7d528acfee341561f6ff3cae05c578f8470d9682f9c0d072f9f6068b56d5880f682be2c5024103b0d3962f6d17549cbfca11294348dcf0e7e39f8c2bc6824f2164b606d687860dae1e632393cfedf513228229069e2f60e4acd7e633a436063f82385f48993707024102e4c32e2f517269b7072309f00c0e31365f7ce28b236b82912df239abf39572cf0ed604b02982e53564c52d6a05397de5c052a2fddc141ef7189836346aeb331f024101e84b119d25161fa67b00256a5bd9b645d2b232ecb05b015180029a88622adc3f09b3aeacde6161ab7cde22c2ad26e7797df54e072cbd3b2673800b3e4338dbd5024100eb90aa1a40135b4cea07197cedc8819be1e7cbff2547662116f465a4a9f487ab12f3ba4fef13822265a65297d98b7bded9372e3ffe81a38b3e9600fed055754f0241012f7f8138f9404062eb85a42924520b38f5bb886a0196f48bb8dcea60fd92cc027f18e78158a34a5c5d5f860a0f6c04071a7d01312c065062f1eb48b79d1c83cb\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 036046a4a47d9ed3ba9a89139c105038eb7492b05a5d68bfd53accff4597f7a68651b47b4a4627d927e485eed7b4566420e8b409879e5d606eae251d22a5df799f7920bfc117b992572a53b1263146bcea03385cc5e853c9a101c8c3e1bda31a519807496c6cb5e5efb408823a352b8fa0661fb664efadd593deb99fff5ed000e5\nOutput = af71a901e3a61d3132f0fc1fdb474f9ea6579257ffc24d164170145b3dbde8\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 03d6eb654edce615bc59f455265ed4e5a18223cbb9be4e4069b473804d5de96f54dcaaa603d049c5d94aa1470dfcd2254066b7c7b61ff1f6f6770e3215c51399fd4e34ec5082bc48f089840ad04354ae66dc0f1bd18e461a33cc1258b443a2837a6df26759aa2302334986f87380c9cc9d53be9f99605d2c9a97da7b0915a4a7ad\nOutput = a3b844a08239a8ac41605af17a6cfda4d350136585903a417a79268760519a4b4ac3303ec73f0f87cfb32399\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0770952181649f9f9f07ff626ff3a22c35c462443d905d456a9fd0bff43cac2ca7a9f554e9478b9acc3ac838b02040ffd3e1847de2e4253929f9dd9ee4044325a9b05cabb808b2ee840d34e15d105a3f1f7b27695a1a07a2d73fe08ecaaa3c9c9d4d5a89ff890d54727d7ae40c0ec1a8dd86165d8ee2c6368141016a48b55b6967\nOutput = 308b0ecbd2c76cb77fc6f70c5edd233fd2f20929d629f026953bb62a8f4a3a314bde195de85b5f816da2aab074d26cb6acddf323ae3b9c678ac3cf12fbdde7\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0812b76768ebcb642d040258e5f4441a018521bd96687e6c5e899fcd6c17588ff59a8", + "2cc8ae03a4b45b31299af1788c329f7dcd285f8cf4ced82606b97612671a45bedca133442144d1617d114f802857f0f9d739751c57a3f9ee400912c61e2e6992be031a43dd48fa6ba14eef7c422b5edc4e7afa04fdd38f402d1c8bb719abf\nOutput = 15c5b9ee1185\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 07b60e14ec954bfd29e60d0047e789f51d57186c63589903306793ced3f68241c743529aba6a6374f92e19e0163efa33697e196f7661dfaaa47aac6bde5e51deb507c72c589a2ca1693d96b1460381249b2cdb9eac44769f2489c5d3d2f99f0ee3c7ee5bf64a5ac79c42bd433f149be8cb59548361640595513c97af7bc2509723\nOutput = 21026e6800c7fa728fcaaba0d196ae28d7a2ac4ffd8abce794f0985f60c8a6737277365d3fea11db8923a2029a\n\nDecrypt = RSA-OAEP-5\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 08c36d4dda33423b2ed6830d85f6411ba1dcf470a1fae0ebefee7c089f256cef74cb96ea69c38f60f39abee44129bcb4c92de7f797623b20074e3d9c2899701ed9071e1efa0bdd84d4c3e5130302d8f0240baba4b84a71cc032f2235a5ff0fae277c3e8f9112bef44c9ae20d175fc9a4058bfc930ba31b02e2e4f444483710f24a\nOutput = 541e37b68b6c8872b84c02\n\nPrivateKey = RSA-OAEP-6\nType = RSA\nInput = 30820279020100300d06092a864886f70d0101010500048202633082025f02010002818112b17f6dad2ecd19ff46dc13f7860f09e0e0cfb677b38a52592305ceaf022c166db90d04ac29e33f7dd12d9faf66e0816bb63ead267cc7d46c17c37be214bca2a22d723a64e44407436b6fc965729aefc2554f376cd5dcea68293780a62bf39d0029485a160bbb9e5dc0972d21a504f52e5ee028aa416332f510b2e9cff5f722af02030100010281810295eca3560618369559cecd303aa9cfdafc1d9f06959df75ffef929aa896961bcd190dc6997eda7f5963e724d07b4dc11f3065e5ae97d96835112280b9084bb14f2a21ebd4e889d41b9c4132ec1956fcab8bb2fed0575884936522c5ff7d33261904824e7cadee4e0bb372d2457cf78e2bd1286228ff83f10731ce63c90cff3f9024104a6ce8b7358dfa69bdcf742617005afb5385f5f3a58a24ef74a22a8c05cb7cc38ebd4cc9d9a9d789a62cd0f60f0cb941d3423c9692efa4fe3adff290c4749a38b02410404c9a803371fedb4c5be39f3c00b009e5e08a63be1e40035cdaca5011cc701cf7eebcb99f0ffe17cfd0a4bf7befd2dd536ac946db797fdbc4abe8f29349b91ed024103961c8f760aa2bd5154c7aafd77225b3bacd0139ae7b5948ea3311fccd86fb95c75afa767284b9b2de559572f15d8d044c7eb83a1be5fadf2cc377c0d8475294b0241022197e066742196aabc03fa2feeb4e70b15cb787d617acd31bb75c7bc234ad706f7c48d2182d1f0ff9c228dcf41967b6c0ba6d2c0ad110a1b857831ec245e2cb102410401c4c0c53d45dbdb5e9d96d0fecf4275df0974bc4a0736b4a74c3269053efb686ace2406e22c9e058ddb4ae540627ae2fdb08261e8e7e4bcbc994daafa305c45\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0630eebcd2856c24f798806e41f9e67345eda9ceda386acc9facaea1eeed06ace583709718d9d169fadf414d5c76f92996833ef305b75b1e4b95f662a20faedc3bae0c4827a8bf8a88edbd57ec203a27a841f02e43a615bab1a8cac0701de34debdef62a088089b55ec36ea7522fd3ec8d06b6a073e6df833153bc0aefd93bd1a3\nOutput = 4046ca8baa3347ca27f49e0d81f9cc1d71be9ba517d4\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0ebc37376173a4fd2f89cc55c2ca62b26b11d51c3c7ce49e8845f74e7607317c436bc8d23b9667dfeb9d087234b47bc6837175ae5c0559f6b81d7d22416d3e50f4ac533d8f0812f2db9e791fe9c775ac8b6ad0f535ad9ceb23a4a02014c58ab3f8d3161499a260f39348e714ae2a1d3443208fd8b722ccfdfb393e98011f99e63f\nOutput = 5cc72c60231df03b3d40f9b57931bc31109f972527f28b19e7480c7288cb3c92b22512214e4be6c914792ddabdf57faa8aa7\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0a98bf1093619394436cf68d8f38e2f158fde8ea54f3435f239b8d06b8321844202476aeed96009492480ce3a8d705498c4c8c68f01501dc81db608f60087350c8c3b0bd2e9ef6a81458b7c801b89f2e4fe99d4900ba6a4b5e5a96d865dc676c7755928794130d6280a8160a190f2df3ea7cf9aa0271d88e9e6905ecf1c5152d65\nOutput = b20e651303092f4bccb43070c0f86d23049362ed96642fc5632c27db4a52e3d831f2ab068b23b149879c002f6bf3feee97591112562c\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 008e7a67cacfb5c4e24bec7dee149117f19598ce8c45808fef88c608ff9cd6e695263b9a3c0ad4b8ba4c95238e96a8422b8535629c8d5382374479ad13fa39974b242f9a759eeaf9c83ad5a8ca18940a0162ba755876df263f4bd50c6525c56090267c1f0e09ce0899a0cf359e88120abd9bf893445b3cae77d3607359ae9a52f8\nOutput = 684e3038c5c041f7\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 00003474416c7b68bdf961c385737944d7f1f40cb395343c693cc0b4fe63b31fedf1eaeeac9ccc0678b31dc32e0977489514c4f09085f6298a9653f01aea4045ff582ee887be26ae575b73eef7f3774921e375a3d19adda0ca31aa1849887c1f42cac9677f7a2f4e923f6e5a868b38c084ef187594dc9f7f048fea2e02955384ab\nOutput = 32488cb262d041d6e4dd35f987bf3ca696db1f06ac29a44693\n\nDecrypt = RSA-OAEP-6\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0a026dda5fc8785f7bd9bf75327b63e85e2c0fdee5dadb65ebdcac9ae1de95c92c672ab433aa7a8e69ce6a6d8897fac4ac4a54de841ae5e5bbce7687879d79634cea7a30684065c714d52409b928256bbf53eabcd5231eb7259504537399bd29164b726d33a46da701360a4168a091ccab72d44a62fed246c0ffea5b1348ab5470\nOutput = 50ba14be8462720279c306ba\n\nPrivateKey = RSA-OAEP-7\nType = RSA\nInput = 30820278020100300d06092a864886f70d0101010500048202623082025e020100028181311179f0bcfc9b9d3ca315d00ef30d7bdd3a2cfae9911bfedcb948b3a4782d0732b6ab44aa4bf03741a644dc01bec3e69b01a033e675d8acd7c4925c6b1aec3119051dfd89762d215d45475ffcb59f908148623f37177156f6ae86dd7a7c5f43dc1e1f908254058a284a5f06c0021793a87f1ac5feff7dcaee69c5e51a3789e3730203010001028181070cfcff2feb8276e27432c45dfee48f49b7917d6530e1f0ca3460f32e0276174487c56e22a45d2500d7775495219d7d165a9cf3bd92c32af9a98d8dc9cc296800adc94a0a54fb40f34291bf84ee8ea12b6f109359c6d3542a50f9c767f5cfff05a681c2e656fb77caaadb4be9468d8abcd4df98f58e86d2053fa1349f748e21b102410749262c111cd470ec2566e6b3732fc09329469aa19071d3b9c01906514c6f1d26baa14beab0971c8b7e611a4f79009d6fea776928ca25285b0de3643d1a3f8c71024106bc1e50e96c02bf636e9eea8b899bbebf7651de77dd474c3e9bc23bad8182b61904c7d97dfbebfb1e00108878b6e67e415391d67942c2b2bf9b4435f88b0cb023024103bc7ea7f0aab143abc6ce8b97118636a30172e4cfe02c8fa0dda3b7baaf90f8092982985525f488bdfcb4bd726e22639ac64a3092ab7ffcbf1d5334cfa50b5bf102410262a6aa29c2a3c67dc5346c06381afd987aa3cc93cfbfecf54fdd9f9d787d7f59a523d398979da137a2f6381fe94801f7c94da21518dc34cb40870c4697994ad90240649d4c17b6ee1721e772d0389a559c3d3cdf9550d457c46b037b74641b1d52166af8a213c8396206cdfba4422f18d6f61dbcb5d214c971bf482aeb976a7370c2\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 1688e4ce7794bba6cb7014169ecd559cede2a30b56a52b68d9fe18cf1973ef97b2a03153951c755f6294aa49adbdb55845ab6875fb3986c93ecf927962840d282f9e54ce8b690f7c0cb8bbd73440d9571d1b16cd9260f9eab4783cc482e5223dc60973871783ec27b0ae0fd47732cbc286a173fc92b00fb4ba6824647cd93c85c1\nOutput = 47aae909\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 1052ed397b2e01e1d0ee1c50bf24363f95e504f4a03434a08fd822574ed6b9736edbb5f390db10321479a8a139350e2bd4977c3778ef331f3e78ae118b268451f20a2f01d471f5d53c566937171b2dbc2d4bde459a5799f0372d6574239b2323d245d0bb81c286b63c89a361017337e4902f88a467f4c7f244bfd5ab46437ff3b6\nOutput = 1d9b2e2223d9bc13bfb9f162ce735db48ba7c68f6822a0a1a7b6ae165834e7\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2155cd843ff24a4ee8badb7694260028a490813ba8b369a4cbf106ec148e5298707f5965be7d101c1049ea8584c24cd63455ad9c104d686282d3fb803a4c11c1c2e9b91c7178801d1b6640f003f5728df007b8a4ccc92bce05e41a27278d7c85018c52414313a5077789001d4f01910b72aad05d220aa14a58733a7489bc54556b\nOutput = d976fc\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 0ab14c373aeb7d4328d0aaad8c094d88b9eb098b95f21054a29082522be7c27a312878b637917e3d819e6c3c568db5d843802b06d51d9e98a2be0bf40c031423b00edfbff8320efb9171bd2044653a4cb9c5122f6c65e83cda2ec3c126027a9c1a56ba874d0fea23f380b82cf240b8cf540004758c4c77d934157a74f3fc12bfac\nOutput = d4738623df223aa43843df8467534c41d013e0c803c624e263666b239bde40a5f29aeb8de79e3daa61dd0370f49bd4b013834b98212aef6b1c5ee373b3cb\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 028387a318277434798b4d97f460068df5298faba5041ba11761a1cb7316b24184114ec500257e2589ed3b607a1ebbe97a6cc2e02bf1b681f42312a33b7a77d8e7855c4a6de03e3c04643f786b91a264a0d6805e2cea91e68177eb7a64d9255e4f27e713b7ccec00dc200ebd21c2ea2bb890feae4942df941dc3f97890ed347478\nOutput = bb47231ca5ea1d3ad46c99345d9a8a61\n\nDecrypt = RSA-OAEP-7\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 14c678a94ad60525ef39e959b2f3ba5c097a94ff912b67dbace80535c187abd47d075420b1872152bba08f7fc31f313bbf9273c912fc4c0149a9b0cfb79807e346eb332069611bec0ff9bcd168f1f7c33e77313cea454b94e2549eecf002e2acf7f6f2d2845d4fe0aab2e5a92ddf68c480ae11247935d", + "1f62574842216ae674115\nOutput = 2184827095d35c3f86f600e8e59754013296\n\nPrivateKey = RSA-OAEP-8\nType = RSA\nInput = 30820279020100300d06092a864886f70d0101010500048202633082025f0201000281815bdf0e30d321dda5147f882408fa69195480df8f80d3f6e8bf5818504f36427ca9b1f5540b9c65a8f6974cf8447a244d9280201bb49fcbbe6378d1944cd227e230f96e3d10f819dcef276c64a00b2a4b6701e7d01de5fabde3b1e9a0df82f4631359cd22669647fbb1717246134ed7b497cfffbdc42b59c73a96ed90166212dff702030100010281810f7d1e9e5aaa25fd13e4a0663ae144e0d15f5cd18bcdb09df2cc7e64e3c5e915ad62645304161d098c715bb7ab8bd01d07eaf3fed7c7ed08af2a8a62ef44ab16b320e14af72a48f96afe262a0ae4cf65e635e910790cd4ee5cea768a4b2639f7e6f677b3f0bb6be32b75747d8909036f0264f58d401cdba131716157a75ecf633102410a02ef8448d9fad8bbd0d004c8c2aa9751ef9721c1b0d03236a54b0df947cbaed5a255ee9e8e20d491ea1723fe094704a9762e88afd16ebb5994412ca966dc4f9f0241092d362e7ed3a0bfd9e9fd0e6c0301b6df29159cf50cc83b9b0cf4d6eea71a61e002b46e0ae9f2de62d25b5d7452d498b81c9ac6fc58593d4c3fb4f5d72dfbb0a9024107c71410af103962db367404e37ae850baa4e9c29dd92145815294a67c7d1c6ded263aa030a9b633ae50303e14035d1af014123eba687820308d8ebc85b6957d7d024100ae2c75380c02c016ad05891b3301de881f28ae1171182b6b2c83bea7c515eca9ca298c7b1cab5817a597068fc85060de4da8a016378aae43c7f967bcc37904b902410598d1059e3ada4f6320752c09d805ff7d1f1ae0d017aeeee9cefa0d7dd7ff775e44b578322f6405d6211da19519666aa87fdc4cd8c88f6b6e3d67e961dcbba3d0\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 09b3683d8a2eb0fb295b62ed1fb9290b714457b7825319f4647872af889b30409472020ad12912bf19b11d4819f49614824ffd84d09c0a17e7d17309d12919790410aa2995699f6a86dbe3242b5acc23af45691080d6b1ae810fb3e3057087f0970092ce00be9562ff4053b6262ce0caa93e13723d2e3a5ba075d45f0d61b54b61\nOutput = 050b755e5e6880f7b9e9d692a74c37aae449b31bfea6deff83747a897f6c2c825bb1adbf850a3c96994b5de5b33cbc7d4a17913a7967\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2ecf15c97c5a15b1476ae986b371b57a24284f4a162a8d0c8182e7905e792256f1812ba5f83f1f7a130e42dcc02232844edc14a31a68ee97ae564a383a3411656424c5f62ddb646093c367be1fcda426cf00a06d8acb7e57776fbbd855ac3df506fc16b1d7c3f2110f3d8068e91e186363831c8409680d8da9ecd8cf1fa20ee39d\nOutput = 4eb68dcd93ca9b19df111bd43608f557026fe4aa1d5cfac227a3eb5ab9548c18a06dded23f81825986b2fcd71109ecef7eff88873f075c2aa0c469f69c92bc\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 4bc89130a5b2dabb7c2fcf90eb5d0eaf9e681b7146a38f3173a3d9cfec52ea9e0a41932e648a9d69344c50da763f51a03c95762131e8052254dcd2248cba40fd31667786ce05a2b7b531ac9dac9ed584a59b677c1a8aed8c5d15d68c05569e2be780bf7db638fd2bfd2a85ab276860f3777338fca989ffd743d13ee08e0ca9893f\nOutput = 8604ac56328c1ab5ad917861\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2e456847d8fc36ff0147d6993594b9397227d577752c79d0f904fcb039d4d812fea605a7b574dd82ca786f93752348438ee9f5b5454985d5f0e1699e3e7ad175a32e15f03deb042ab9fe1dd9db1bb86f8c089ccb45e7ef0c5ee7ca9b7290ca6b15bed47039788a8a93ff83e0e8d6244c71006362deef69b6f416fb3c684383fbd0\nOutput = fdda5fbf6ec361a9d9a4ac68af216a0686f438b1e0e5c36b955f74e107f39c0dddcc\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 1fb9356fd5c4b1796db2ebf7d0d393cc810adf6145defc2fce714f79d93800d5e2ac211ea8bbecca4b654b94c3b18b30dd576ce34dc95436ef57a09415645923359a5d7b4171ef22c24670f1b229d3603e91f76671b7df97e7317c97734476d5f3d17d21cf82b5ba9f83df2e588d36984fd1b584468bd23b2e875f32f68953f7b2\nOutput = 4a5f4914bee25de3c69341de07\n\nDecrypt = RSA-OAEP-8\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 3afd9c6600147b21798d818c655a0f4c9212db26d0b0dfdc2a7594ccb3d22f5bf1d7c3e112cd73fc7d509c7a8bafdd3c274d1399009f9609ec4be6477e453f075aa33db382870c1c3409aef392d7386ae3a696b99a94b4da0589447e955d16c98b17602a59bd736279fcd8fb280c4462d590bfa9bf13fed570eafde97330a2c210\nOutput = 8e07d66f7b880a72563abcd3f35092bc33409fb7f88f2472be\n\nPrivateKey = RSA-OAEP-9\nType = RSA\nInput = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100cf2cd41e34ca3a728ea5cb8aff64c36d27bdef5364e336fd68d3123c5a196a8c287013e853d5156d58d151954520fb4f6d7b17abb6817765909c576119659d902b1906ed8a2b10c155c24d124528dab9eeae379beac66e4a411786dcb8fd0062ebc030de1219a04c2a8c1b7dd3131e4d6b6caee2e31a5ed41ac1509b2ef1ee2ab18364be568ca941c25ecc84ff9d643b5ec1aaae102a20d73f479b780fd6da91075212d9eac03a0674d899eba2e431f4c44b615b6ba2232bd4b33baed73d625d02030100010281c0198c141e23715a92bccf6a119a5bc11389468d2811f548d727e17b4ab0eb986d6f211efb53b71f7ccbea87ee69c75ee615008c5332deb52bf390abdfbfe37d7205368159b2638c1de326e21d22251f0fb5848b3bf15005d2a74330f0afe916ee62ccc1344d1d83a709e60676273840f7f377424a5e0a4da75f01b31ff76819cf9cbfdd215243c3917c03ef38199312e567b3bf7aed3ab457f371ef8a1423f45b68c6e282ec111bba2833b987fd69fad83bc1b8c613c5e1ea16c11ed125ea7ec1026100fc8d6c04bec4eb9a8192ca7900cbe536e2e8b519decf33b2459798c6909df4f176db7d23190fc72b8865a718af895f1bcd9145298027423b605e70a47cf58390a8c3e88fc8c48e8b32e3da210dfbe3e881ea5674b6a348c21e93f9e55ea65efd026100d200d45e788aacea606a401d0460f87dd5c1027e12dc1a0d7586e8939d9cf789b40f51ac0442961de7d21cc21e05c83155c1f2aa9193387cfdf956cb48d153ba270406f9bbba537d4987d9e2f9942d7a14cbfffea74fecdda928d23e259f5ee1026100db16802f79a2f0d45f358d69fd33e44b81fae828622e93a54253e997d01b0743759da0e812b4aa4e6c8beab2328d5431955a418a67ff26a8c5c807a5da354e05ef31cc8cf758f463732950b03e265726fb94e39d6a572a26244ab08db75752ad026100a0a317cfe7df1423f87a6dee8451f4e2b4a67e5497f29b4f1e4e830b9fadd9401167026f5596e5a39c97817e0f5f16e27e19ec9902e01d7ea6fb9aa3c760afee1e381b69de6ac9c07585a06ad9c4ba00bf75c8ad2fa898a479e80ae294fed2a102600b21f335c353342eb44c3aa24445780c2d655b940174cae38c7c8a4e6493c0ba9fd303748267b083b9a7a6cb61e42db362b8c9896db7064e02ad5ae61587da15b4649c90594909feb37dbcb654beb7268ec801e5a8b4aa3911bebd88542f05be\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 267bcd118acab1fc8ba81c85d73003cb8610fa55c1d97da8d48a7c7f06896a4db751aa284255b9d36ad65f37653d829f1b37f97b8001942545b2fc2c55a7376ca7a1be4b1760c8e05a33e5aa2526b8d98e317088e7834c755b2a59b12631a182c05d5d43ab1779264f8456f515ce57dfdf512d5493dab7b7338dc4b7d78db9c091ac3baf537a69fc7f549d979f0eff9a94fda4169bd4d1d19a69c99e33c3b55490d501b39b1edae118ff6793a153261584d3a5f39f6e682e3d17c8cd1261fa72\nOutput = f735fd55ba92592c3b52b8f9c4f69aaa1cbef8fe88add095595412467f9cf4ec0b896c59eda16210e7549c8abb10cdbc21a12ec9b6b5b8fd2f10399eb6\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 93ac9f0671ec29acbb444effc1a5741351d60fdb0e393fbf754acf0de49761a14841df7772e9bc82773966a1584c4d72baea00118f83f35cca6e537cbd4d811f5583b29783d8a6d94cd31be70d6f526c10ff09c6fa7ce069795a3fcd0511fd5fcb564bcc80ea9c78f38b80012539d8a4ddf6fe81e9cddb7f50dbbbbcc7e5d86097ccf4ec49189fb8bf318be6d5a0715d516b49af191258cd32dc833ce6eb4673c03a19bbace88cc54895f636cc0c1ec89096d11ce235a265ca1764232a689ae8\nOutput = 81b906605015a63aabe42ddf11e1978912f5404c7474b26dce3ed482bf961ecc818bf420c54659\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 81ebdd95054b0c822ef9ad7693f5a87adfb4b4c4ce70df2df84ed49c04da58ba5fc20a19e1a6e8b7a3900b22796dc4e869ee6b42792d15a8eceb56c09c69914e813cea8f6931e4b8ed6f421af298d595c97f4789c7caa612c7ef360984c21b93edc5401068b5af4c78a8771b984d53b8ea8adf2f6a7d4a0ba76c75e1dd9f658f20ded4a46071d46d7791b56803d8fea7f0b0f8e41ae3f09383a6f9585fe7753eaaffd2bf94563108beecc207bbb535f5fcc705f0dde9f708c62f49a9c90371d3\nOutput = fd326429df9b890e09b54b18b8f34f1e24\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = bcc35f94cde66cb1136625d625b94432a35b22f3d2fa11a613ff0fca5bd57f87b902ccdc1cd0aebcb0715ee869d1d1fe395f6793003f5eca465059c88660d446ff5f0818552022557e38c08a67ead991262254f10682975ec56397768537f4977af6d5f6aaceb7fb25dec5937230231fd8978af49119a29f29e424ab8272b47562792d5c94f774b8829d0b0d9f1a8c9eddf37574d5fa248eefa9c5271fc5ec2579c81bdd61b410fa61fe36e424221c113addb275664c801d34ca8c6351e4a858\nOutput = f1459b5f0c92f01a0f723a2e5662484d8f8c0a20fc29dad6acd43bb5f3effdf4e1b63e07fdfe6628d0d74ca19bf2d69e4a0abf86d293925a796772f8088e\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 232afbc927fa08c2f6a27b87d4a5cb09c07dc26fae73d73a90558839f4fd66d281b87ec734bce237ba166698ed829106a7de6942cd6cdce78fed8d2e4d81428e66490d036264cef92af941d3e35055fe3981e14d29cbb9a4f67473063baec79a1179f5a17c9c1832f2838fd7d5e59bb9659d56dce8", + "a019edef1bb3accc697cc6cc7a778f60a064c7f6f5d529c6210262e003de583e81e3167b89971fb8c0e15d44fffef89b53d8d64dd797d159b56d2b08ea5307ea12c241bd58d4ee278a1f2e\nOutput = 53e6e8c729d6f9c319dd317e74b0db8e4ccca25f3c8305746e137ac63a63ef3739e7b595abb96e8d55e54f7bd41ab433378ffb911d\n\nDecrypt = RSA-OAEP-9\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 438cc7dc08a68da249e42505f8573ba60e2c2773d5b290f4cf9dff718e842081c383e67024a0f29594ea987b9d25e4b738f285970d195abb3a8c8054e3d79d6b9c9a8327ba596f1259e27126674766907d8d582ff3a8476154929adb1e6d1235b2ccb4ec8f663ba9cc670a92bebd853c8dbf69c6436d016f61add836e94732450434207f9fd4c43dec2a12a958efa01efe2669899b5e604c255c55fb7166de5589e369597bb09168c06dd5db177e06a1740eb2d5c82faeca6d92fcee9931ba9f\nOutput = b6b28ea2198d0c1008bc64\n\nPrivateKey = RSA-OAEP-10\nType = RSA\nInput = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100ae45ed5601cec6b8cc05f803935c674ddbe0d75c4c09fd7951fc6b0caec313a8df39970c518bffba5ed68f3f0d7f22a4029d413f1ae07e4ebe9e4177ce23e7f5404b569e4ee1bdcf3c1fb03ef113802d4f855eb9b5134b5a7c8085adcae6fa2fa1417ec3763be171b0c62b760ede23c12ad92b980884c641f5a8fac26bdad4a03381a22fe1b754885094c82506d4019a535a286afeb271bb9ba592de18dcf600c2aeeae56e02f7cf79fc14cf3bdc7cd84febbbf950ca90304b2219a7aa063aefa2c3c1980e560cd64afe779585b6107657b957857efde6010988ab7de417fc88d8f384c4e6e72c3f943e0c31c0c4a5cc36f879d8a3ac9d7d59860eaada6b83bb020301000102820100056b04216fe5f354ac77250a4b6b0c8525a85c59b0bd80c56450a22d5f438e596a333aa875e291dd43f48cb88b9d5fc0d499f9fcd1c397f9afc070cd9e398c8d19e61db7c7410a6b2675dfbf5d345b804d201add502d5ce2dfcb091ce9997bbebe57306f383e4d588103f036f7e85d1934d152a323e4a8db451d6f4a5b1b0f102cc150e02feee2b88dea4ad4c1baccb24d84072d14e1d24a6771f7408ee30564fb86d4393a34bcf0b788501d193303f13a2284b001f0f649eaf79328d4ac5c430ab4414920a9460ed1b7bc40ec653e876d09abc509ae45b525190116a0c26101848298509c1c3bf3a483e7274054e15e97075036e989f60932807b5257751e7902818100ecf5aecd1e5515fffacbd75a2816c6ebf49018cdfb4638e185d66a7396b6f8090f8018c7fd95cc34b857dc17f0cc6516bb1346ab4d582cadad7b4103352387b70338d084047c9d9539b6496204b3dd6ea442499207bec01f964287ff6336c3984658336846f56e46861881c10233d2176bf15a5e96ddc780bc868aa77d3ce76902818100bc46c464fc6ac4ca783b0eb08a3c841b772f7e9b2f28babd588ae885e1a0c61e4858a0fb25ac299990f35be85164c259ba1175cdd7192707135184992b6c29b746dd0d2cabe142835f7d148cc161524b4a09946d48b828473f1ce76b6cb6886c345c03e05f41d51b5c3a90a3f24073c7d74a4fe25d9cf21c75960f3fc386318302818100c73564571d00fb15d08a3de9957a50915d7126e9442dacf42bc82e862e5673ff6a008ed4d2e374617df89f17a160b43b7fda9cb6b6b74218609815f7d45ca263c159aa32d272d127faf4bc8ca2d77378e8aeb19b0ad7da3cb3de0ae7314980f62b6d4b0a875d1df03c1bae39ccd833ef6cd7e2d9528bf084d1f969e794e9f6c10281802658b37f6df9c1030be1db68117fa9d87e39ea2b693b7e6d3a2f70947413eec6142e18fb8dfcb6ac545d7c86a0ad48f8457170f0efb26bc48126c53efd1d16920198dc2a1107dc282db6a80cd3062360ba3fa13f70e4312ff1a6cd6b8fc4cd9c5c3db17c6d6a57212f73ae29f619327bad59b153858585ba4e28b60a62a45e490281806f38526b3925085534ef3e415a836ede8b86158a2c7cbfeccb0bd834304fec683ba8d4f479c433d43416e63269623cea100776d85aff401d3fff610ee65411ce3b1363d63a9709eede42647cea561493d54570a879c18682cd97710b96205ec31117d73b5f36223fadd6e8ba90dd7c0ee61d44e163251e20c7f66eb305117cb8\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 53ea5dc08cd260fb3b858567287fa91552c30b2febfba213f0ae87702d068d19bab07fe574523dfb42139d68c3c5afeee0bfe4cb7969cbf382b804d6e61396144e2d0e60741f8993c3014b58b9b1957a8babcd23af854f4c356fb1662aa72bfcc7e586559dc4280d160c126785a723ebeebeff71f11594440aaef87d10793a8774a239d4a04c87fe1467b9daf85208ec6c7255794a96cc29142f9a8bd418e3c1fd67344b0cd0829df3b2bec60253196293c6b34d3f75d32f213dd45c6273d505adf4cced1057cb758fc26aeefa441255ed4e64c199ee075e7f16646182fdb464739b68ab5daff0e63e9552016824f054bf4d3c8c90a97bb6b6553284eb429fcc\nOutput = 8bba6bf82a6c0f86d5f1756e97956870b08953b06b4eb205bc1694ee\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = a2b1a430a9d657e2fa1c2bb5ed43ffb25c05a308fe9093c01031795f5874400110828ae58fb9b581ce9dddd3e549ae04a0985459bde6c626594e7b05dc4278b2a1465c1368408823c85e96dc66c3a30983c639664fc4569a37fe21e5a195b5776eed2df8d8d361af686e750229bbd663f161868a50615e0c337bec0ca35fec0bb19c36eb2e0bbcc0582fa1d93aacdb061063f59f2ce1ee43605e5d89eca183d2acdfe9f81011022ad3b43a3dd417dac94b4e11ea81b192966e966b182082e71964607b4f8002f36299844a11f2ae0faeac2eae70f8f4f98088acdcd0ac556e9fccc511521908fad26f04c64201450305778758b0538bf8b5bb144a828e629795\nOutput = e6ad181f053b58a904f2457510373e57\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 9886c3e6764a8b9a84e84148ebd8c3b1aa8050381a78f668714c16d9cfd2a6edc56979c535d9dee3b44b85c18be8928992371711472216d95dda98d2ee8347c9b14dffdff84aa48d25ac06f7d7e65398ac967b1ce90925f67dce049b7f812db0742997a74d44fe81dbe0e7a3feaf2e5c40af888d550ddbbe3bc20657a29543f8fc2913b9bd1a61b2ab2256ec409bbd7dc0d17717ea25c43f42ed27df8738bf4afc6766ff7aff0859555ee283920f4c8a63c4a7340cbafddc339ecdb4b0515002f96c932b5b79167af699c0ad3fccfdf0f44e85a70262bf2e18fe34b850589975e867ff969d48eabf212271546cdc05a69ecb526e52870c836f307bd798780ede\nOutput = 510a2cf60e866fa2340553c94ea39fbc256311e83e94454b4124\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 6318e9fb5c0d05e5307e1683436e903293ac4642358aaa223d7163013aba87e2dfda8e60c6860e29a1e92686163ea0b9175f329ca3b131a1edd3a77759a8b97bad6a4f8f4396f28cf6f39ca58112e48160d6e203daa5856f3aca5ffed577af499408e3dfd233e3e604dbe34a9c4c9082de65527cac6331d29dc80e0508a0fa7122e7f329f6cca5cfa34d4d1da417805457e008bec549e478ff9e12a763c477d15bbb78f5b69bd57830fc2c4ed686d79bc72a95d85f88134c6b0afe56a8ccfbc855828bb339bd17909cf1d70de3335ae07039093e606d655365de6550b872cd6de1d440ee031b61945f629ad8a353b0d40939e96a3c450d2a8d5eee9f678093c8\nOutput = bcdd190da3b7d300df9a06e22caae2a75f10c91ff667b7c16bde8b53064a2649a94045c9\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 75290872ccfd4a4505660d651f56da6daa09ca1301d890632f6a992f3d565cee464afded40ed3b5be9356714ea5aa7655f4a1366c2f17c728f6f2c5a5d1f8e28429bc4e6f8f2cff8da8dc0e0a9808e45fd09ea2fa40cb2b6ce6ffff5c0e159d11b68d90a85f7b84e103b09e682666480c657505c0929259468a314786d74eab131573cf234bf57db7d9e66cc6748192e002dc0deea930585f0831fdcd9bc33d51f79ed2ffc16bcf4d59812fcebcaa3f9069b0e445686d644c25ccf63b456ee5fa6ffe96f19cdf751fed9eaf35957754dbf4bfea5216aa1844dc507cb2d080e722eba150308c2b5ff1193620f1766ecf4481bafb943bd292877f2136ca494aba0\nOutput = a7dd6c7dc24b46f9dd5f1e91ada4c3b3df947e877232a9\n\nDecrypt = RSA-OAEP-10\nRSAPadding = OAEP\nMGF1Digest = SHA1\nInput = 2d207a73432a8fb4c03051b3f73b28a61764098dfa34c47a20995f8115aa6816679b557e82dbee584908c6e69782d7deb34dbd65af063d57fca76a5fd069492fd6068d9984d209350565a62e5c77f23038c12cb10c6634709b547c46f6b4a709bd85ca122d74465ef97762c29763e06dbc7a9e738c78bfca0102dc5e79d65b973f28240caab2e161a78b57d262457ed8195d53e3c7ae9da021883c6db7c24afdd2322eac972ad3c354c5fcef1e146c3a0290fb67adf007066e00428d2cec18ce58f9328698defef4b2eb5ec76918fde1c198cbb38b7afc67626a9aefec4322bfd90d2563481c9a221f78c8272c82d1b62ab914e1c69f6af6ef30ca5260db4a46\nOutput = eaf1a73a1b0c4609537de69cd9228bbcfb9a8ca8c6c3efaf056fe4a7f4634ed00b7c39ec6922d7b8ea2c04ebac\n\n\n# Single-shot signing tests.\n\nSignMessage = RSA-2048\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\n\nVerifyMessage = RSA-2048\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111", + "d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\n\nVerifyMessage = RSA-2048-SPKI\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\n\nVerifyMessage = P-256\nDigest = SHA256\nInput = \"Hello world\"\nOutput = 304502204c66004635c267394bd6857c1e0b53b22a2bab1ca7dff9d5c1b42143858b3ea7022100ae81228510e03cd49a8863d2ebd1c05fe0c87eacd1150433132b909994cd0dbd\n\n# Digest can't be omitted in many algorithms.\nSignMessage = RSA-2048\nInput = \"Hello world\"\nError = NO_DEFAULT_DIGEST\n\nVerifyMessage = RSA-2048\nInput = \"Hello world\"\nOutput = 301894798b49d6ec55d32dcc74314f04230591a515781f3eb4492f5324b56046836c4bc3e25942af341e88558cb4c3814a849207575d343189147989b16e296b5138dbbc717116dc416f201dfa35943d15060493953cda1f04a13ff89845cf7fd69e1a78d5d38522a77bb234e5d0ba2ae17ada6e22fdae27a4052fdb8ac267507dfe06ed7a865e61a52b530bbbf65c7caa89739613df10ae3b0e62ff6831ee0770086aad39c329462aede9f1b29a501bc3d09e0fe4034aa5d6831d44491d508111d88a1d7ba50cee5ef7e701b3a589adc09a752a974a6805956f4a1a0582f66309a1e02e9fb6b10d2c820fe98bb2eb04f435bc8a649cc9ab6c5a4c03e83800d1\nError = NO_DEFAULT_DIGEST\n\n# Signing test vectors from RFC 8032.\nSignMessage = Ed25519\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\nSignMessage = Ed25519-2\nInput = 72\nOutput = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\nSignMessage = Ed25519-3\nInput = af82\nOutput = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\nSignMessage = Ed25519-4\nInput = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nOutput = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\nSignMessage = Ed25519-5\nInput = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\nOutput = dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704\n\n# Signing with public keys is not allowed.\nSignMessage = Ed25519-SPKI\nInput = \"\"\nError = NOT_A_PRIVATE_KEY\n\n# Verify test vectors from RFC 8032. Test verifying with both the public and\n# private key.\nVerifyMessage = Ed25519\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\nVerifyMessage = Ed25519-SPKI\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\nVerifyMessage = Ed25519-2\nInput = 72\nOutput = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\nVerifyMessage = Ed25519-SPKI-2\nInput = 72\nOutput = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\nVerifyMessage = Ed25519-3\nInput = af82\nOutput = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\nVerifyMessage = Ed25519-SPKI-3\nInput = af82\nOutput = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\nVerifyMessage = Ed25519-4\nInput = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nOutput = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681", + "e30a6ac00a9704a188a03\n\nVerifyMessage = Ed25519-SPKI-4\nInput = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nOutput = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\nVerifyMessage = Ed25519-5\nInput = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\nOutput = dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704\n\nVerifyMessage = Ed25519-SPKI-5\nInput = ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\nOutput = dc2a4459e7369633a52b1bf277839a00201009a3efbf3ecb69bea2186c26b58909351fc9ac90b3ecfdfbc7c66431e0303dca179c138ac17ad9bef1177331a704\n\n# Length is wrong.\nVerifyMessage = Ed25519-SPKI\nInput = \"\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a10\nError = INVALID_SIGNATURE\n\n# Message is wrong.\nVerifyMessage = Ed25519-SPKI\nInput = \"Hello world\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\nError = INVALID_SIGNATURE\n\n# Ed25519 does not support configuring a digest.\nSignMessage = Ed25519\nInput = \"\"\nDigest = SHA256\nError = COMMAND_NOT_SUPPORTED\n\n# Ed25519 does not support signing a pre-hashed value.\nSign = Ed25519\nInput = \"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\"\nError = OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE\n\nVerify = Ed25519\nInput = \"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\"\nOutput = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\nError = OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE\n\n\n# Derive tests.\n\nPrivateKey = ECDH-P256-Private\nType = EC\nInput = 3041020100301306072a8648ce3d020106082a8648ce3d0301070427302502010104207d7dc5f71eb29ddaf80d6214632eeae03d9058af1fb6d22ed80badb62bc1a534\n\nPublicKey = ECDH-P256-Peer\nType = EC\nInput = 3059301306072a8648ce3d020106082a8648ce3d03010703420004700c48f77f56584c5cc632ca65640db91b6bacce3a4df6b42ce7cc838833d287db71e509e3fd9b060ddb20ba5c51dcc5948d46fbf640dfe0441782cab85fa4ac\n\nDerive = ECDH-P256-Private\nDerivePeer = ECDH-P256-Peer\nOutput = 46fc62106420ff012e54a434fbdd2d25ccc5852060561e68040dd7778997bd7b\nSmallBufferTruncates\n\nPrivateKey = X25519-Private\nType = X25519\nInput = 302e020100300506032b656e04220420a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4\nExpectRawPrivate = a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4\n\nPublicKey = X25519-Peer\nType = X25519\nInput = 302a300506032b656e032100e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c\nExpectRawPublic = e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c\n\nPublicKey = X25519-SmallOrderPeer\nType = X25519\nExpectRawPublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nInput = 302a300506032b656e032100e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\n\nDerive = X25519-Private\nDerivePeer = X25519-Peer\nOutput = c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552\n\nDerive = X25519-Private\nDerivePeer = X25519-SmallOrderPeer\nError = INVALID_PEER_KEY\n", }; -static const size_t kLen38 = 2270; +static const size_t kLen38 = 1262; static const char *kData38[] = { - "# Test vectors from FIPS-197, Appendix C.\n\nMode = Raw\nKey = 000102030405060708090a0b0c0d0e0f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 69c4e0d86a7b0430d8cdb78070b4c55a\n\nMode = Raw\nKey = 000102030405060708090a0b0c0d0e0f1011121314151617\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = dda97ca4864cdfe06eaf70a0ec0d7191\n\nMode = Raw\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 8ea2b7ca516745bfeafc49904b496089\n\n\n# Test vectors from\n# http://csrc.nist.gov/groups/ST/toolkit/documents/kms/key-wrap.pdf\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f1011121314151617\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f1011121314151617\nPlaintext = 00112233445566778899aabbccddeeff0001020304050607\nCiphertext = 031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff0001020304050607\nCiphertext = a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f\nCiphertext = 28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21\n\n\n# Test vectors from https://tools.ietf.org/html/rfc5649#section-6\n\nMode = KeyWrapWithPadding\nKey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nPlaintext = c37b7e6492584340bed12207808941155068f738\nCiphertext = 138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a\n\nMode = KeyWrapWithPadding\nKey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nPlaintext = 466f7250617369\nCiphertext = afbeb0f07dfbf5419200f2ccb50bb24f\n", + "#\n# Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved.\n#\n# Licensed under the OpenSSL license (the \"License\"). You may not use\n# this file except in compliance with the License. You can obtain a copy\n# in the file LICENSE in the source distribution or at\n# https://www.openssl.org/source/license.html\n\nPassword = \"\"\nSalt = \"\"\nN = 16\nr = 1\np = 1\nKey = 77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906\n\nPassword = \"password\"\nSalt = \"NaCl\"\nN = 1024\nr = 8\np = 16\nKey = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640\n\nPassword = \"pleaseletmein\"\nSalt = \"SodiumChloride\"\nN = 16384\nr = 8\np = 1\nKey = 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887\n\n# NB: this test requires more than 1GB of memory to run so it is disabled by\n# default. Uncomment it to run.\n# Password = \"pleaseletmein\"\n# Salt = \"SodiumChloride\"\n# N = 1048576\n# r = 8\n# p = 1\n# Key = 2101cb9b6a511aaeaddbbe09cf70f881ec568d574a2ffd4dabe5ee9820adaa478e56fd8f4ba5d09ffa1c6d927c40f4c337304049e8a952fbcbf45c6fa77a41a4\n# MaxMemory = 10000000000\n", }; -static const size_t kLen39 = 909405; +static const size_t kLen39 = 2270; static const char *kData39[] = { + "# Test vectors from FIPS-197, Appendix C.\n\nMode = Raw\nKey = 000102030405060708090a0b0c0d0e0f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 69c4e0d86a7b0430d8cdb78070b4c55a\n\nMode = Raw\nKey = 000102030405060708090a0b0c0d0e0f1011121314151617\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = dda97ca4864cdfe06eaf70a0ec0d7191\n\nMode = Raw\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 8ea2b7ca516745bfeafc49904b496089\n\n\n# Test vectors from\n# http://csrc.nist.gov/groups/ST/toolkit/documents/kms/key-wrap.pdf\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f1011121314151617\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff\nCiphertext = 64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f1011121314151617\nPlaintext = 00112233445566778899aabbccddeeff0001020304050607\nCiphertext = 031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff0001020304050607\nCiphertext = a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1\n\nMode = KeyWrap\nKey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nPlaintext = 00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f\nCiphertext = 28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21\n\n\n# Test vectors from https://tools.ietf.org/html/rfc5649#section-6\n\nMode = KeyWrapWithPadding\nKey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nPlaintext = c37b7e6492584340bed12207808941155068f738\nCiphertext = 138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a\n\nMode = KeyWrapWithPadding\nKey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nPlaintext = 466f7250617369\nCiphertext = afbeb0f07dfbf5419200f2ccb50bb24f\n", +}; +static const size_t kLen40 = 916997; + +static const char *kData40[] = { "# Sum tests.\n#\n# These test vectors satisfy A + B = Sum.\n\nSum = 0\nA = 0\nB = 0\n\nSum = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d\nA = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d\nB = 0\n\nSum = -c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d\nA = -c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d\nB = 0\n\nSum = 0\nA = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d\nB = -c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d\n\nSum = c590e57ee64fced3ca84d4bb013bba7d633e68b2ff4e27bf1db43f386dbfcce501f112b7fff6fb9436a576ccfccce12867becf02b91961453ea41f414764407d\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 23f85668bf4d0fa273d8c7f63c5fee57811062a674111e295a73a58e08dd0fd58eda1f473960559d5b96d1862164e96efded31f756df3f57c\n\nSum = c590e57ee64fceccd54e0bdc52476a756d32e794922dca0acc780d2c6af8852351102b40dfb97009f95e019a5bf38e5d127aa78bc34425edf96f763084a8b09f\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -4b5b16252ba2355e0b87f01baa721783c403607a4c1b5652c09a68e96926c8e314fa580bf0ad3f8f59bd70f14df86a4676661899b54c79a62\n\nSum = -c590e57ee64fcec882fef3ffd015a3fd9024d8f5f6d53eb537d6abdb0ff5e76a8fb08d5feed113fc9e74745d957adf32704a08339ba42efd5746c5d478e3f57b\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 908007a2f3c551c58958d1059427a0391d4d768f61cb802e4cb062c778354ea3eaa8f0dfbd14ca8203e07ae6d07269b58088a39f7608c5586\n\nSum = -c590e57ee64fceeb242f8a0893eaa0d2ccc3dc57ec40fe917cfde66618fba678ce0c8fffc566d4e8c7944d6443def8014fe8ee410a1b8dfd06cb0b436619e0dd\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1999301bd9877fe07ca711f308b2f1bc4a704fd194ec4dbc297355d6285340d6ad7e90cb0add1770aea19737a06750c3a7a6fa0b778ca995dc\n\nSum = c590e57ee64fcef321395bba088ca0a867e1e85a1ea77478f8783e6a6cf8f3e582bff83cb2d7d9fd549fcbb40dea22ac140351007030059500bdca81413600e9\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 219639ed8afc21e052422fff0ae5583231ebca2999404b099628093e6540b1dbc20b9c495aa7229b5965b19a5fcd653b3fa0eccab567c5b5e8\n\nSum = c590e57ee64fce834a00cc6282cb0eef49eac7a8d5b51988cb49253ed85ae261c76f2327a691fc63eceab02614807048b2816cdb9b89ca66a17b6ed1abdab580\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -4e40fea1cc899fb166dbc721a6639a28be4164ef92545307ed934796afcb9401d75c18d23352471709fbd049c50740ffeebe5590fa2d959581\n\nSum = -c590e57ee64fce1a17609c61ce02f1020c6eb6e241e3fdd01546ce7247725589de32db95f36718d410f9ce9a94fecc8fb205e876fde75ce83f4d01e1bd5d818d\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = b7739ed1cd3e67cf541943326cf76b4476f767465ee53b94c57c83de417ebee5673809b3bed1c8bac2fc4bce29a4e36d6d2083fdea1c12c974\n\nSum = -c590e57ee64fd03e2d08c3d8e5110d08e3d36557d82e0e49b408337a8c9d4298802ae5f0145a9587531a70d2f8af932b8262245428b5c549817d333f2dfaeeec\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -16ca20955a9d8a64cb2be217c089edecc02a75a1ea95fef584925742c18a234974c0a16ee7991e80bd8d4106db385eafaf421ac3373548aa3eb\n\nSum = c590e57ee64fd1bcac71b5b055e5934ba15dd7f56370063369c36e57a6b753269e085d0f4d38bfb711d5579dd1d89d07f266e727b232a497d5b0d9bfbc02d8a5\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 2eb21724781497ad2f57babeea62a20c3ec5d1559867a0968d74351a337db12c17bc8d1d5446b1115b5441530870f67da4275dfd9f3e2928da4\n\nSum = c590e57ee64fc7860b0be6ce861bc2f099db7fb623912b7b0729c019a8183c669c73efe02b195483a4cd2c78244cd59678ac4d62f6887fe686a3eed37ed460ff\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -74b7ff38760864efd658bd6699915be16cc058454b78495ade8be42c9f7470ca9b7a43655e1427ab1bc35a5693dac424a6ed92d10f85a9bea02\n\nSum = -c590e57ee64fc3126776e79d9fca06233bd2ef5570a65e4521183627bdbdbc555e9118508cf63f519bc0caedbffd5b1a913ee8c3603804820a9ce54b1207bdef\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = bbf238886916ca0ba32e9def9f9c8a8e401eb95dea96ef02df9fc25a186e52fbee9ad42b76ba6ca2c381d12cddd4292c5d355341a80c7688d12\n\nSum = -c590e57ee64fe6dfd728dfbe45aee52380b5a00cf1e05e9f09ac582e2714bb589caf2ad038111c5b1b5573a45706ab1f6fd5d5a1ee7ef4a9bf186dca8a9ede12\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -180e4c29718f394424cd5b03b6bdb8911c57fcfe435cfa66d10941f870f8c5eb1e1fd251f14af03f23ccc1841f014bb42a545f476dfeb12e9311\n\nSum = c590e57ee65004b3e18a5820de4a6d25e7c3d310003e0b8716bbfd51d5f0f3e87fdf8e00599d713397255281e66ef419a9d9bb228e8f052764f5f861ccca656f\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 35e2568ae9f1d1dfaccfc211e9c0c6eec9400a0de880a94309992528d428e77772f84e21d0287fa76cc6fb880481ebc43ad20524f895f35a1a6e\n\nSum = c590e57ee64f84896a5f11f575d34b6001f27d4b4d6e7cd9485260629f8f7f1c6ca6f6115b98d776774295dde4d59cdbbceccad097a0a054b501bfb47d81e85c\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -4a4820a05c39969774f623bf6c03ebe0c56dc45bb46e8d1e6b32ee0fc3c6168d26c4d1c0ec7b81f1ea76f164ebd00b2a2a00aacf40175bee62a5\n\nSum = -c590e57ee64edf1b2b57b4cbb92d778ea6b9d9878a0374d4ea81691b09811b105bb6dbf23a57d89264f0e6c83f8d00fe00681644feed56e15fc81103ab9b7dd6\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = efb65fa7b963533d48c77ef80fc7af4bcd72222cabb6232ccf3efeffdde537ce25a8e4129b91273a8654ade9a05ba3dd73740008eec82dd4cd2b\n\nSum = -c590e57ee650e25da7b60146e014f472bfff9809aa8f519db7943f69d9ad09ee75a3427c6127cce7bd27f224b9dec03111fb066956b4903f9f9740cce1aa4ba7\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1138c1cb69317d3aa341c9a4daeba71400f56aae62a98acff1f9f1aec88a4ef01ceac74246fcb531738de63a94fc8b3e9c5ea3fc64101083a00a6\n\nSum = c590e57ee653af8752322840ed720f628f9674c81073b58372e49ef26d4a2a9d46a0391bc170336614b27849de98709a4b321da4ddfb978e9f10df29154edb9f\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 3e0b5c732ba11e1074f0c69e48b78d724733c66368a21409c404debe97f444f4a352acbaef5f077d0e9479ce067043b30cd393f3fdf5d3bde909e\n\nSum = c590e57ee64bc13634cbd149aae35ee47bde6ea3663f74ff300cfdb2d845f902f017586c6d4f83f08c3b4f0c035055d13fc9d340b7b9ed164432aed44e8f4d7c\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -40d9b56339ce561876171a9d37aabd30fcd47dca1171e5467f14c6a9f616b04d67a4abcc8334d637731816e87e35feb10dd3f1b9e50f78ae0fd85\n\nSum = -c590e57ee6477eb692705f8da1357e71591336907a5e0a6e39715088d53b2610882765357563fd101bcf05ca545a0c718f52879fdf4f80cb9a12cf108eca60ed\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0f", "fcbd9704b01\nB = 8501af88f0ea16b3541e4cc9eb2bebef137d8d33cc4485772c43ed28f54a1fcc2012b2d347c8f126d7ae11eff2f00c37b4989c5be30bb4aa5ea14\n\nSum = -c590e57ee669b662e37f5abf13d00d2f0c1c9a8b99ec546361aad255f375bc2742a3487c351c5ba00efef09c77331577460a47c57125c620b643e9eaf36a146b\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -19e791587fec9007654cd8e66ab13c609d121c54fcbd84c6c7d1d7e7ec8ea4c2f65d64c5fb6e43106b8e2497b89124ce5afbcb5672ea1f19f9c96a\n\nSum = c590e57ee681dcbf1554f22c0b1ffead917dd414299cb37ce6967ffec9c333931e70358729843c8130ac95aba47fa1fa5da74000eff25eecae176f093a4effca\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 320ded8a5583fcfeb53e576bcbeac4f04d7135d9e86b2d9d154943c3b97bafb75e3e45e7a913523db81aa7af5589604d2794974e466f3d60deb4c9\n\nSum = c590e57ee5e505ae4a2e1f25a1ae9b7b4d17dd2cccc09f2416d964e55af6d0d31fe259c160f87646a72e6732d5110256b3b35425225d622b81418435c9dd8cc4\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -6ac92340d14f096abc24dad89a0c226c8ea322f5d4afebd1b7197c3ad46016112d87f4a1d51b2691b684fbfa9e627b806d6829de8f7b960f92be3d\n\nSum = -c590e57ee58c3ef1582bf7a516e36f92b60f5a587e2c8cb071d1d52ff215854e52de1519fd5204fa52292dfdc397d8d76b78005941358b63a3e6ca41b0eb09b7\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = c38fe032d37689f58750c36fa28ef6bb22b5969adc3fa13a98650107d8a4bd74d3f940f6da545ba32fae7b42d9b64761953ef1bbea358a2885414a\n\nSum = -c590e57ee80262967da4038a143f8ff2e78646108f25ff7183444ba507d76f9b05a34c8310e682c05495d0863ceff264964dbfa7c064adf6d26d2dca6e22ab13\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1b293c4f2a4955b07d4cf9cc1d45cc155d6bd2a769636d3db29854baaec92ab9ec084850b924e2cd6286b11e7fc09071d99e3a1729c2dfe94b26012\n\nSum = c590e57ee85427f08e8c89ffebfcc05c73370ad4cb77696c2b2f3878e6f6df341d4d931b5097aba49f14ac0312e7da1c843d6fd08119822e75e6e7a8c7bcb7b0\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 204591f038d1bd0df9200064d852185922827251e8123a7ba48f4e4c296d943de71ad69561129a9ac2052c9d5ebb92fde4eb7d91615e7dcee4c6caf\n\nSum = c590e57ee051ca1a363c47a4cc016c3de7f7e17985009b545528289e9fbc9086f4b42a73826eca0c278b0d1b4ef6d74b9a0bfcb7855d40fdb201fbad1074b927\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -5fe04b754c3268a406954183dba07d5b44ea6f2b785ec328cf159c866028f63efb7342f2178753e17d0b0071445b9e91d6d8957adcf041ec8fb91da\n\nSum = -c590e57edcd6e9ef06fe33f3817ba3d0c50c8122b77615c4b8fa50c5514f113d7ba53ce057d487bcbc373c4384d07b29a527b7ef785ca609474879b42a9a4c3a\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 978e4e284013a3b8aef1c8560a5682c81d92c8253b3c40bdb5ed911df117cf71a51767e8ccc4615e1f70c290929feb12a6e244c18888617aed5fec7\n\nSum = -c590e57f0436bdceb586a093522eb1630e0fc08f8790957aba1875a42b7676f9ca936e8f6f3478d6ef5cd590bf6ded0700440dcd769496822af8015f0a6ba2b6\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1de6eefd2a87326445c3f10ce85dd7404e415333ad6a60d2fec88caa6fdcb4b7fd0e7a9ba659533758a665b451f2572cd3c9cc2ccb27019330fb57b5\n\nSum = c590e57f1df3f004d5e49f49fa28603b26659f1fd35e0d8d7a2753591dbc12c51e6b588427dbe3faba2f0c1f2f0a2aea9ba1fcb2fe71c6ff40555058d23c8661\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 37a421334ae5311aedbd9fe500b3b5d09a0ecb466d793e87f10e2875c3b49eacb5b5e5bf712b89c5c842a397ed5046125ba6fca9e084508cf8cc3b60\n\nSum = c590e57e9a4abf4572fa7c4c9f73e9d3fd1227646fd6d15b51924bd7a5d417b01fe6b4273eaa6ece387422b81c8116f29702d7d66d2f6e8c3454807b3b7d413c\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -4c050f8c1804f1e26cf6d682289fc1eac97870ebbb1bc8f986d9d29f3ad005b0337b8f6d108f5fa14a467060174edeca359b5bc92b7c7f509df309c5\n\nSum = -c590e57e64216c306f17017ac9dd7085113e16c83168664dbb77c7ad3ddfc79b09f9ea0c474a0b497ca15e7fb258eed9666fd009f691a3b2d691c2c6b22ba3b3\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 822e62a11be86cb4428d4fd11473d28707e6dbf951364d23eece22b450bccfcb2adbf2f1cc6223d9b46e987947e1e696ac3926a2893f3d052744a74e\n\nSum = -c590e5806ab4d09773c4f94a4aac09f6ed7609eec1d0bafecb09e30f032f706e9adadc191ff9e6d7dccc821f7a8666a590e521749d24912c5a5ffeff246f7c85\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1846501c5e8c58b1b3e4149a0c7c4209f888178b7be5bce3dd681861f40242241add3e89c93c8ffc613bedf52e2936ad3fa59c6d6fa8eff334aff3184\n\nSum = c590e58248cbf5dd61ec57994fc862ab479dc6cda51cc17356c45cef66bbfdd12f5cc421940a561581c123fb17483beb7a1cce2596fa9ca76e722a6f4621eae9\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 3627c270bd6ece96a435da25521ebdd7e6bcd7f2c4a16481e3a0e1381d4a60a4a21e457da38bda1a1b080b498cbcb1784f42fd2520ea12aa36cb19fe8\n\nSum = c590e5771a85bdb1f26c0386ce837bec4b0af5656496efdf4f134d875f066dd6d477ca8f87ffb275da07da4dd1bed4232849a526836b47f2d69f2d53b6b3e2f1\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -7cbca111f98936aa83de74469daa6f3e9d4b85267bd9ac749cda77c78863eef47ea264bc56efba80b9508b32f8608117a1f5f82628931d27822bc6810\n\nSum = -c590e571c76afad23439f904e8a80fc28dcabb6cb732e361ed3eef471be6fa755e3fe746edbfe448c1f289ffed7dfc01fe9066d780564f57f93abbca9b9a995a\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = d1ee4d3ff56c5752a23c2b09397e72de2821c5ee51f6f258a10c6efd9fc76d290846619f28710f85979498b50afc14fc922747afd669644013dd5b1a7\n\nSum = -c590e598cd5d4a59ff5d6c97c6370fb517f1d492a7776f90063b0ddd6702e37c60fc78bb12857911cea37b7263584d7dc815676de6b8880200acea154b59b08b\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -19e70d7b88745dfe68b9cc4f5ef23feb436e282d48f98cf90c3a54f92d0645bee3a05f7ad6859ff918fc90c62b19c3b0cd43edbdaca0dbea4971e9658a\n\nSum = c590e5b5829e6fceb77830fbe999a98127b50302fd0f6a86ea4aea27b846747a07e6fcf5457676e6446137d6bdd8ff4fb7ca747b650b066d65d7dc1e172488e7\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 369c4ea0fd2c78c2ccdd2ee92b020319b3c3c0283fdd9cd5568b988a2aad30431dd35078aafb5db57d571177fd0978bddac2403c180606dc523db43de6\n\nSum = c590e52a3ab5d5c458634254e2f672a322000750741e969d2f6cd12d172480ad1455300e3a0575b068b85d50b58f9737be13073188d0f03b71494bd0fd2fea16\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -54ab99f90d329c2bda29744db303b1e1fec530aba9dd4143a4158969a2466189c93820888ae04b2508b137f01af03eaf6f19f9da19ee87b3fadc4060eb\n\nSum = -c590e4880579ef7241bde94e8c7847badc705f53828751f9975f0e66371d2ddff8740b143f32e88be8e686e2bf5a3ce03d864d7699a813b1777b9239af242c7d\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = f6e0d5df5f494184e07ff2789b494189fbb6c7f04d754f066af590bc6f6242aec332f315af601cfb76a76d4a7270cb692a0922b6a3e8556d922a4c1e84\n\nSum = -c590e6dbe54098694155509e38c61d503ab7e5237d2cdfc2b87fb57e3a8420fe37fe50a0dad4f0eae3d38fad6198e4ecaeae183a12078f53d09ac8099c715242\nA = -c590e5", "7ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -15cfef0c997b655e26f2c5b5cfa1505fbd443dd9d7babd1a0ad0dd636aedd4796c968aef2af9ad00d53fad15d9a005c61996f3cc4fe70c9c83dc3010741\n\nSum = c590e906254d013be2021ad591e76e26706a6815b8c484b6528fec65416e1066957002713e1183f1005f565983aad7aa031e549e6fc57094ca3e4383e7fdbc15\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 3873efd326a5702aca6857cadd04ab87ec67f75426f45e1d79414c026173ab94899cbeb85b5b75bd4001ce3505754cc9dfdccfaa63f6a6d43b80e8d7114\n\nSum = c590e0e0079190d7afd80acd6326fe93cc00903318608df31ee4493d11271dac7291bd142cca0e5dd7dda59dabd460a69b7855d9c2acb5f062de76665e07cbd7\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -49edebe3df9db276361a943c1c259b1591c20eeb453edc9cb941b86cca2e824fcc3455befdd7125dcbbbaf326ac12d960c6e01e1464fcf289657b687f2a\n\nSum = -c590d9ae456d66c1b132d844eb223867ba4560b36f53c42a616cf8cc657e6d252f813847fb9fc50127227684e5c0f5cd890eceb341d21e788e42f843e9b64080\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = bd0a0e2680fd9cc95ea214887ee6b6c889bc9fb7e1cab411c04c72f7d2a2b35818f7686393a21e10bd4810691852542e7ed60f8abdcd18e0787efba0a81\n\nSum = -c5910498291472fe1d0047d5bdd9e46deb3f26000e943fce8d83d700d9ae233ab3a28849bbb346803da142db6a471e9f79cd49571f40dbc46f7b727a4bb3016a\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1f1942c4a42c9200d9a6b16f2417c58d3cb0d544fd8780d5c22fad0038eb58ebce72498d4844f49dc082037f974ccb7b92b67c76116f0faa72ae7242b669\n\nSum = c59112d841ea109440e78563d9eefef201c81e86ae967083f8b7db80d1eaf58551d30519ca6dd79164fe69a29cf1ba22446cb2999f73292241005bf17b37528e\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 2d595b9a41c2b5e81734cd843e9bdc16353775472e3cec09c6afa53d0b35f71c4b425847d9561bfae749362a32cf961afbf8fca85ecce12f5c25a1c7078d\n\nSum = c590671f890ca06c74ac6d2c4d75aabeaaa55312e85a5e1ea9cef0e08e154e2b090eaba869e9f6e4a47ae10b9c1eb0f6ae4fb3ef12b3121d96066c6c8e592b6e\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -7e5f5d432e6516530102bef515977b0c963c50f4e42862df23f09e989c2451a80e2f083c0756a488a14dcaa8d65c000202b19017b837c9ca935f4b171f93\n\nSum = -c58ff0ae92ab03072154949a7143d45278ef77a0ba71a785d5a370e0d30a9b4b4f7e96a395d13e6afeebbd717365d471ee56ba11c472a63c0532558104bedfc5\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = f4d053a4cbca69aad9949b26ec03acc271ae7edd9ac1370aa3f059a34f040b382333dc54bfd04a17c4e7f361b2e0bffafc8ede5824195a9eaa4ad4b16b3c\n\nSum = -c5927a5fcc3b31abeca3998ad99c07626112288a6ad95b24929fed581040757fdce73881c48b02daf09986ea436a3f5ceb6833c31fa2e1691567601a26c7a6c9\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -194e0e5eb62da61a42b5bcd31470c3b603f3b318a18dd85f1d886e3928b3082307eaa5265049fa7960490dca2b80a3d167d227cd81713b596604e4d575bc8\n\nSum = c59395e94d495451e3fea153f3e4361a088004a7d5426c1b94aec44108ad6f5cecc3a80dda0cea9f51b882747258137e171bf021b4fc59f4dcf0106d4ba952fa\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 2b06a66f9858058ff3324e77975c3e2ce1b589bf329d48800af6fdbff850d920cee3667e6ec6408b5001b0b908c2b68ca398112318f9f7d1f10a1723907f9\n\nSum = c58bdb26c0fd6766f3affea389cbe7db25c06d5d56356d3d945347775bddf479ffc9e279e7d1ee88eddb239906749815ae4502fbbc6fe978a001ccdafd89cb10\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -50a582552676a974f6f8b829ed87afff17bf1e319d509785acd59d0cff5d55aecd75d8a540fb25b285ec06052ef3d000cb3a4e65ae0dcbfcf32f0dbe67ff1\n\nSum = -c581afe9b7ae86d4b7053f19649beea6cb935799a553f035f9b9a7fba6d5559e4ecdcd1637c73c8052c6cc52ee1c28d1e5aed9db7261b7356afd6e3dbc213684\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = f35952ea147fcd3fa2f15a7ced1af5a1e91b593fb521112f46cd585d894b10be8ecc13a5ec1baf63cb60678ab5e80c8a2dcc53069131ff4d3918e1d4f147d\n\nSum = -c5a19f36a65a6a8d52a53a63f99a1b957d6e376b7010ad14695d78d67b0d7c86881006188bd27bbf205c8c9c200dc8f5c08ab6b97dcd512f6cb93ed9a361ff9f\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -10b9b7c00a9bbbc7a5cc34ed2f5b3f57bc4e1c36c16acd5caf64054e5f92372d594c4119ac7d83d7590a42b94641a312390018db0286da0ce83f0dc9f1b49e\n\nSum = c5cd0e5da24b67a894402b0eee5dd586ab70e5beb0693e263a54995193663a9b770141379c1f097a49d1a889bbf0c348c6f40ed50bd7bdc11a7869c6106c6d80\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 3c28debbfb98d70940bcdfe1f3153085befc6f7719fbdf2da6848066b8504c1c4a876029f90b3f00ce263055293bf618a25834690cf36bbaa769fa36fc227f\n\nSum = c54e2c560a00226701b76cf03d5de27a8c69b38a6b85dad9f7c903d2e87f9a7d247522e72491460f6a529e5ca2aaaf690cb238b873ffb49d9fb0ecacfedd4e90\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -42b928dc4fac6a8948013ecf0cdddb994835c4cdc9676d14e510fe442e4fd2364196f04d94b82bdeb0e3fcc41cd7e9a19f7de82ecb15b7c020131eda92fc71\n\nSum = -c4bfb037f6e6e861efb090ee610c33e7568790259f747dc6e55d442aadd68c0cc93c7617f83980e8813c0fb7dd28c8aaca6ad8fdde5d2bfec9ae096faa9ef54e\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = d13546ef68e66f9b4edd40ab5e8c6ecf2a592999dac4802750d0a67ed75e42917a43bf79ec7d52c7c772a1899ebea7e3e6dda2c46d9e569622f65c2ed155b3\n\nSum = -c6aa2af8c9ae8be4aada83f66b7f31a8bce5e92c67d8938424a1405903e5502bffc4ee1e333da4bcfd0cb383b19a566372f877a8344b66dbceabc9786dd0e4f2\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1194579e35ebd131fdb15c75f1471529733ffdd2e89513d17f32b87d73765dca50e3446c117a681b409312a4ad2cf10c4a6c10791809c866edac9ac946099f1\n\nSum = c8aff66c9bdaa49eafac0f65d3ddff223b7a5471f7400431ca3a54615d600fc4a163f8fb648bddb5fd6915db1991611805040e0f86f152c8fd3333ef70d632e4\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = 31f10edb58ad5cd24aca136c7733ecc15c86b22bdf0c1eabd8c3f9030b2257546ad3f23f265df7ab4659381b2c9d9c556b2576ee42688739d6234239765e7e3\n\nSum = be1b6eb768e2cef388eebe31f9b21e51b38b351cc8175eba06d49eef04c2936f32167174dcb82297fd4180d0afb5da2c455d158c7a5bf01bdef8c295a4f20390\nA = c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -77576c77d6cffde0210affd12b8a2047226b4327137e38d05d975e227eb56e028a04862956ddba34bc20188b711ad2668f4a114286eda3980d83d36347e4771\n\nSum = -ba32fca1d5cc5f31ecaf5407f376d3aef9f4abc04fd4c6893721d3e50e9141abf356eb2ff6f7a4f9b42983148670d2918e1dff7aa7ae33a6e9dadcb708b4f9dc\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = b5de8dd10836f9f9e501a2718f3eca72bbd3d8ee97a7bbdd58c40ec1e1ca8a3675fcea77b2e594194d9ff44e056b4c12033b725fb1c96ae75f62314d0bb5125\n\nSum = -e388afbf17c495f86aa7298a45f848eb57e5baaee42b1f7de8c2311bfbb8f74549712c05fd3bd11ab8874fb55abb22a37ba3512e733ecd5c472842e8e6f7b179\nA = -c590e57ee64fced18aff6e2f0c6ac05625b1e94f394f42470cae14d12cadea4f5ab6b9d77225fe3b4903825966c78752ae51b6a0a2caca555fd0ffcbd9704b01\nB = -1df7ca403174c726dfa7bb5b398d88953233d15faadbdd36dc141c", @@ -2614,17 +2694,24 @@ static const char *kData39[] = { " 81dd561d5d5327fc5ed7c9236b5fb21ef713c6d5e36264ba65ccc801b8eb107b714aad65bb503bb1f4721c0a6f97e5ab89300f049f42a4616ae43d29c089c286687484d18629c1be1b5befbdd0b3cfc86b1d28add89df4cc5e68dac3f56f2490a9068ca9c634ec258c030ec5023baa9133fd2af32fd1112895f9da549d410247\n\nModExp = 1\nA = 9dd1e6f2d3ff24096b54e0ebf0f10e283e484a1cbafc0431adda1296ed97692f3ba99440fd4f67c96dd8bab850e1123361c99362df9ea205ff8e90d1b329459f54730992d5a360e46fcc5f5a909e691abb9a06613d6991bd7c2aa609f0d7b441d7ded0c07b8c394327672d38a905efb2d76aa3be5bb14d0c002aa37e287aee79\nE = 0\nM = fda6f9d8588e3614f5a68ce867a5619f6ddbb8d64450ff402e1c4f1a08b518f79dca21e5983c207c5b7324c16895a1e9f1282fc6cf60b0645f6b02b652ed5b129e67c939e854ab492dec30ea878c3edde10a4b7d1d14c57100c6cbcc5fc085a0d7308715ed132fb917251919c727487fedb66500d5610b0014a43419acfbb92f\n\nModExp = 0\nA = 0\nE = 8622c37631e428402343dccf8ed09d47b3f4201e95058910289a62707c3ce0b7113c390056cc4796cc9893e471b12cb3f63f900f3356ffd25c8b2fed6f6a7fba2c684eb241ca706c76cecbf72473d8a58c02338e40714b5610465cc319f0a529a7aa3898d9e638b247abd1380c6e8f7fa210c9f1a1a2164db6db83a6bba79436\nM = fda6f9d8588e3614f5a68ce867a5619f6ddbb8d64450ff402e1c4f1a08b518f79dca21e5983c207c5b7324c16895a1e9f1282fc6cf60b0645f6b02b652ed5b129e67c939e854ab492dec30ea878c3edde10a4b7d1d14c57100c6cbcc5fc085a0d7308715ed132fb917251919c727487fedb66500d5610b0014a43419acfbb92f\n\nModExp = 86fb0b8dc161c41de2adb0f3ddcc8ad49c1efd729a52793a3ac987d4011c9c1dadb18657dca718df75c8ddcc49d60f152c46ab85ae9076ee7bfd405679a7da3a5195a1bbfd7d2b998c7b135ea91f8c445cbafe1276fa502c2a85477716829a2e0d24ba02623405a3654bed8f355bc7ccdb67c3f9a01e249e358b60d7699498a9\nA = 816610e6018ca47074d55750dd16a281019dbf95dc752605794cbb8ea8d75775317ce685737859728320b529fb3b4414b40bf3a93d08d8994a21ae54682cc1c357eb529837a7b0129a0843eebd9341c9bee3a8ae30475bdbff517e885a0c9f2b6a680643bd981efb53bf9dd49f3dc3cb757e117895fb34b1b4336d9bf8384558\nE = 8622c37631e428402343dccf8ed09d47b3f4201e95058910289a62707c3ce0b7113c390056cc4796cc9893e471b12cb3f63f900f3356ffd25c8b2fed6f6a7fba2c684eb241ca706c76cecbf72473d8a58c02338e40714b5610465cc319f0a529a7aa3898d9e638b247abd1380c6e8f7fa210c9f1a1a2164db6db83a6bba79436\nM = fda6f9d8588e3614f5a68ce867a5619f6ddbb8d64450ff402e1c4f1a08b518f79dca21e5983c207c5b7324c16895a1e9f1282fc6cf60b0645f6b02b652ed5b129e67c939e854ab492dec30ea878c3edde10a4b7d1d14c57100c6cbcc5fc085a0d7308715ed132fb917251919c727487fedb66500d5610b0014a43419acfbb92f\n\nModExp = 1\nA = 9edfce4691f46eadaa2043c7b1092b831ed50f3429f0bca02f985c0b77c686d951be84d772ae4b55f08935bed6e3206c8441574f215736b5c1c1b7595b3b789b55cf56db83741b10144d6767ba2b97b23a5e83504c60e06ab22834b0145655aa0463108317a379cbfc8a93de8a66925a999b8b02bf88dd85fb9898cefe9c95c8\nE = 0\nM = dcb68f6aa530ae9b31d078e2e82670adcc98228e7cf1aa59f81e66426ef14b1591b833d889463564c75b5fd5551ea295a0da581dd80f62c7008ff0f26a1c9f4f756431d48198af157149be8698336b306b0a8b8635d3fc2c4c2194ecc4d2af31ca1892917cc2e621d702eaaeed0d9a0c3dca575451eb8bc5487e313988cae745\n\nModExp = 0\nA = 0\nE = a3be10ef04535fca6784e5dbf3733d677dedd50fabbc3a860496628950b4747a328c2ce0d903cbe1e700f0af30f59fb917202257815097a2b516df5d0a82642faeffdfc3b7883766c78fc4be5901ebef891a9ca27f3bcf00960729e659bb3fddd54a19ce628e95ab86e4c7a168588bc9f67b05dd21a583acd8dc36e615945648\nM = dcb68f6aa530ae9b31d078e2e82670adcc98228e7cf1aa59f81e66426ef14b1591b833d889463564c75b5fd5551ea295a0da581dd80f62c7008ff0f26a1c9f4f756431d48198af157149be8698336b306b0a8b8635d3fc2c4c2194ecc4d2af31ca1892917cc2e621d702eaaeed0d9a0c3dca575451eb8bc5487e313988cae745\n\nModExp = 442866609915aa6f1bae9dfb59e721e1b63f42c0f75fbf0a88344120fbbd7aacf15208fb7c9d8bb8477d553cbd826d7e685ad764a8423e81c2131c040ee83a03cab8d5ce50866a941b48c78e9f1330794d908562d4141cfbf26e8c80c69551339eec41e37e2b37b54330f7bd75748f8d26d56ab9eb3b0c127540484c6445a7fa\nA = 8ff65e2cbcbcd8697cc3ce9a26855d6422ac7eb4e66500648c08be697e005cc3c854a54cfab91d43489cd60be8b516a9b3c9688e5e009a1689c6b164a133859a5464ef422c86344fef42cc477c9df27768377c126a066d1b62f593b7f6d6e906feaee16addb7cfbfc043d741b7dc81a87c17f167b7b8ef1b1fb3dfd1eb14102d\nE = a3be10ef04535fca6784e5dbf3733d677dedd50fabbc3a860496628950b4747a328c2ce0d903cbe1e700f0af30f59fb917202257815097a2b516df5d0a82642faeffdfc3b7883766c78fc4be5901ebef891a9ca27f3bcf00960729e659bb3fddd54a19ce628e95ab86e4c7a168588bc9f67b05dd21a583acd8dc36e615945648\nM = dcb68f6aa530ae9b31d078e2e82670adcc98228e7cf1aa59f81e66426ef14b1591b833d889463564c75b5fd5551ea295a0da581dd80f62c7008ff0f26a1c9f4f756431d48198af157149be8698336b306b0a8b8635d3fc2c4c2194ecc4d2af31ca1892917cc2e621d702eaaeed0d9a0c3dca575451eb8bc5487e313988cae745\n\nModExp = 1\nA = fe9f77f7d0475e00ec964c0effb9b8e079c32e376ce77a9c40ce4018c3df44a77b4f294d9565502b2b79accb30cb58dda6d15e1543b6d4a53296543ed11c7f51baab60283ef03fae37dfeacb431392487ec2839551a933895c4dbf18844f7b375d3e6f558d3c39993cea1bbf7fb743a6a07bd3753c03eb7298811476d7f3ff1d\nE = 0\nM = e7a96cf6fa930f73c8bdc2726bbba246001a9d27f39cc2b978c99dc6f15af0e8aaf26b565302f1112e607e2df4066948baba931b89cd9bbdea2072e05b9a4968fdf282c43d997987c3a3a0434e925a679ac81f316b7a7b724b79be3d6888b66f4512759bf66cfaaa88b9513dd27a44aaea75437268a014c4eb50ba2e50093511\n\nModExp = 0\nA = 0\nE = a0bc148ed50a9b54036bb8fa1f214979052ebd47db8b347af3bb03b806bb457b468ba34781f8a25f289a7a90af4903dc14809a166df2f4c3527de2ea6911cb1afb9071a4afbb522a7d50634d66fd584c73f32d05217dc9f7f16394c68a692a953492ca85f89cc11da95fd8cac6231647923ced48a1b3b0ee68c010286d452836\nM = e7a96cf6fa930f73c8bdc2726bbba246001a9d27f39cc2b978c99dc6f15af0e8aaf26b565302f1112e607e2df4066948baba931b89cd9bbdea2072e05b9a4968fdf282c43d997987c3a3a0434e925a679ac81f316b7a7b724b79be3d6888b66f4512759bf66cfaaa88b9513dd27a44aaea75437268a014c4eb50ba2e50093511\n\nModExp = 91fd879d02f95a9f40fcd1037726f73892caf84e9b43b4aa4126d9062a0d22c464e7af2fbd91aa849612d99d9519b724a7fb1cb018fffdcff321d883ab2519953c9f174f09dd8f13ac87339887385966eb4a94842276637b2c36c0a5036b1d3bbea438bc6efd4b4851c7ec06879d60694df894717569bcd31c4b13d80df6cbca\nA = cdec5edc1cb3ea974342b85aabc0f9385cf877ca328747d40dd4d297623ad69ab6582653faeed5aef225208305135cfbee32e066cb43e18afacea3a32acc8aabbc49617ac33e741651924ae56dd6aa044a12a1ea50fef573b5befb2f4b21b9cf83ab2aaa6fd153580a0761666ade8fb94f202a3c3dc4f33297eabb4564374168\nE = a0bc148ed50a9b54036bb8fa1f214979052ebd47db8b347af3bb03b806bb457b468ba34781f8a25f289a7a90af4903dc14809a166df2f4c3527de2ea6911cb1afb9071a4afbb522a7d50634d66fd584c73f32d05217dc9f7f16394c68a692a953492ca85f89cc11da95fd8cac6231647923ced48a1b3b0ee68c010286d452836\nM = e7a96cf6fa930f73c8bdc2726bbba246001a9d27f39cc2b978c99dc6f15af0e8aaf26b565302f1112e607e2df4066948baba931b89cd9bbdea2072e05b9a4968fdf282c43d997987c3a3a0434e925a679ac81f316b7a7b724b79be3d6888b66f4512759bf66cfaaa88b9513dd27a44aaea75437268a014c4eb50ba2e50093511\n\n# Craft inputs whose Montgomery representation is 1, i.e., shorter than M, in\n# order to test the const time precomputation scattering/gathering.\n\nModExp = 9442d2eca2905ad796383947b14ddfcc341f5be8fec079135c36f6f0d9b8b2212f43e08bf29c46167ff0fe16b247cd365df4417d96cc31c94db1cf44b73b0ee3ebcc4920d9b0d003b68e49c1df91e61bc7758a8a1d2d6192ff4e1590b1a792f8be3a1b83db3ad9667d14398d873faf5d885ec3a2bef955026fae6dbf64daea2b\nA = 3a4b4c57e62c5e9d1a9065191f8268fed9d5f6f424d071acef66f0662b8210f4c029ed991512e40c9c912043c816d2c4c5b53fa0e5c253e16808aad4225130dafbbb89fd4f30cdfc1c2f2179b636a7ddc4be579795820b4b9377637bd8a21a0ef5a90d0e0f865321eee23d9be2a3b7320b4012d02941b892df2c40bdc85c1898\nE = a2c56ea1362511cac0301918e15a9afe7d37edd438a5c3538d258ea01f0a6df758de07111e868b3ad8fc89b629b4955d78a1b3af902be1806410ddde25ccc6a196ba5949395c1ad5d8725b18815dc1cd5ac1c7dd17773f571e3f2e628255af14476e0494be23a4a4dfd18e23142f33d7a59c236fec61660e360d9676a747c69f\nM = ede35a3a7afac817d413373a2032abbc067b1493f709ae6e1282ee5469743391d891b904938857168802b7872d3cd7ac18ab249a9e540a86f970b1d0f310a4cc29df1cc9d4063d98c554f1a32f4ca5eba3523cdfb142e0fc609907c7a92bb0187009d97ec471db3545f42dd5fd29c07b7816085d09477ba31fcf90084660116d\n\nModExp = a7f5844fa9e7202d4b70ee252c9846e63d3d091b0387768ded872cec53458e19df0d9b4960226e269b8ca5dd4c4eda423a67b6dbb48235c08c12c6c7c78db47287756d3ed9cecb9232f7d18d5d80b9676cb68ba4a290c97e220beb1a069976b5e6022a4c1e5ddbeec86b62dda24ffea1deda37695c9f61a8817218e6370c0679\nA = 7d6d0cc947ceb949cdc4e9e1044f5deca5bb05a491041e0d85bc4b92a0944a57c72845fad91e", "59010c61ad1712bd2f612d53a846a044632262a9f2e3373b062fde2484e0c165ff947f2469f743ab6e2e5e13c640fc4029b1c9213eb8473c674e7f9e95a4a5c5636d4656c1e696962340d77b322daba47d6fc894f2a2cd9e0afc\nE = b78012afe806e2344d004c739c97324256850980ac97d88c4ed9a838517639ca112e235978d21a176c33f5a68703aba0f2a05501bbe3fc8d49a000fbf530cdb431581dfaf8683cb15a2aee5e239cbc542827100da3b47babf4a16ca7c588aff9912e674abb449e0b767a15e415f4e7f2bbd6380d7131da3df8d49b13bfd35ce3\nM = b72d5c55bd2998472f1965e75a51be6155c1ba04656da8f66bcb34db36a7b1db66a89d1d05b1bde10206acf85be7b474ab689220faf1bb52ab39d8dc00512dd4e26df1179c11b973e1274db85a88c7cc2a17113abdffe58cb930ddc5f3ccc4d68b4e65c913730509f7ce5656e8bbaba9b1be177ab9f766678f018fea05da9cdf\n\nModExp = 465ff295786a88496828fdc763e9292d557957544e9322b7996807b87fdbfa7a11614bffeec557ca831c4824c8e4ca3b1a1c7f3f4f95ec3fd6a86b73bb13d78b73af2b3c7e76954d0cc03bcb0cd606867ebb3765a8b3d0108cbe4f343a14016be9c33f6d200f0dc547e7d6b02bfab1e79dcdf9c9835a814cc6c855a12ebeb66d\nA = 89ad02bea3e9ab839a6e23f20122409daba52c68e1e893034b30d321c0305434a6af940015e3fa5ca9c35230da34beeb1ed4fbce6c1da3a8bfe3f3ae172276c1d1723b47ee61e6f8fcfdafad102d6f7ee2a79f510c7edb93096205a40a6c9e665b88b18f39a979e2e61286d939952a6f02fe8148b7515bb25f4252337cb6e60d\nE = cbd6ac628cc7afa3c61bee9c22a06a395087ec1811fe9681b55216700c435996c815e7cec8aaa90016dd2382d0306a5414630124e14f3d396a4ba02ee17851bf720f1607ff813e4bbddf01338983db12f59bd6371a738eee3eeb716f21051d6174d2d6c77602942b9edaac18d4b3a723096c0d00dd23a8a605c585022f311560\nM = fa7a3e40364c8a8d0f14f0213a3f3e035222ca0ea19d46d10ba41580e5dd2805c8a133f3856d7d5d97f922ea540e5eb0d10ad04dfdbb74f518f58da0099a6fc2b3f3def92985176e07fc78aff2faebccca10a429794e5f15ff92f75fe90f527c60ddea8093a9078c703c372ca09f7aeb27ade02f3595308c61dd9c44e62fd101\n\nModExp = cf08bf00261402102e9fe03f3074471dcf0e9b3c96d4d1503f099f24ec85e1901b023e9e048c1ad042244f5f70b38b25a99f4c0a7b57d5844bb0d0137367f45f4ce2cc7746105b77414768cb97648dc5721149aed2d4c682408cc0d50d26dd0bd77e848911f8625c727cac5f32e63bcb548f41a57d718d772f23983a42f603bd\nA = a419646a6631c2c69b18f7aa65011825eb31692eecaee9d74f92d92203811b68e9764bda31a1585bdf69b6273fc6f9f508c395ac081336506525dad88473512f08a205621ac8b16e9864c7a7c5a4f17435de00d0b32badec6ce4897e3e1076c562b6d9523f63d0b2079eaa416cb090471657763f24931d955d1fa2720c80a9c9\nE = d5a6f4a1842aaee39805356dc8d0d678ee03b2c81277345beccb2742f899132feb43271f95968a01ae68aa8277201851992dc0aa7a71c90aae71b124d873ee264ea400fb131be0fc6c4ce8c04c45f6bdaca89ac743635caf6158983d257e21cef6800d7f990e912ba21bbfb8fb779afa4abd19e07e7e07eee9908493d1ca502c\nM = e739689b6cc6def1d45fb1a2ab551643beeb303f4aaa4da47ee5e4948510f8445b4c40e99ae8354dede60b2ba6694e93bc4d573b7e8adf871b7a9a9636eb7d70f2e49328e2d7978143b177cee8374ef01bd1ee2d95862765883f5e7971668b53ef0ff41b6539faf63c397522b0bdce916388e72e26c8d3d2e58dadeb9eb5d479\n\nModExp = 827e6312ec3b14600203bb83f5b277ded197b2967363630ef673240df05edd3ba8ab2b11c86251a612206569c6c33952b31e264f129909bfe723bd0ee1624b36cfcfaa893a6ec8b5a1f7de79f83e79b459a3350f89f412ad1cfd6bc4c2a7a29272c783d6ecceeb1398fa17041835643f4debef9b5e87b098d104bb8912dddf7c\nA = b8e49c637829021d32db3a39a0c1e58cdd4c6e4eda7e8e9293be379e9c2e2d184f929d278598a81ae231cfedcf69cce4a6e31cda3c8ac14d753a7311f2436e29795f0dfb60259a0f61a997918ff984aa2284b43a9d64c974059e9682adfffd018305835f74eda8c75fe4877d811c1620f654ec9f7f32d1af5ce59115e2f41785\nE = 80e0febf369d234bf1aaad4f82df2e2ff02882c3184781f6ccdf4f7cd93b6887af86830077c84dfb02109ada05b40970b1c65228b0c19030bd6361c3537fee22a8155c03b4e7007ca006c6daa3659518d05bb81ea0079456d0ef6116df248dffdb0c935f321f5a1034deefd5a9414a0652aa6548de33325b474b9e5a8507a082\nM = d5eb1d14af842a9973274f7463d90cf0ccff19c47d710edbae184478d4f29b02693ed7958bd487054327b9e6d8879e24c9af7730b92f323eeac05558da6c1b952e5dbf13de236050a77628bb5325fe0d14cc5773bf73338759d5ab43c212b414581280f1cee250007e53791b800b61c90de0328acd7bc43fbdda48158939392d\n\nModExp = 4a1efd29c7e78549f5cd4deed1454b37462c7810ee6a8a2493b764dfa479be13b314cf9ff98259517d61865567ef499a511630c0038c97914625df181c6fe07892f329f98b344a78d751e9471483eebaa7977371bf97bb25187ae7e93a9227d6c124ccb4644423c961a11ae59c4354f89d5a95164c23d9aa256e289e9cc0858e\nA = bd86c9211fa6a47a06e5016c46cb8a99e34a043a29e22f8c3196fa7197c26b38927b8d9bc0ddc11a5fa4bcc44deb69dbf37cbe7ebc9a2fad6c74e09ab5a9dd929fa04ab4319b6caad1035739be78ba631fb0748d9e53944836d37ccda6e6a62823c696d8f31139ccd7f2f86b22fa026ecf433cfb1271a3539ac4f1c83aaac059\nE = c40b9972006d28a84c2769a86e526a2b274f73afc7c5c6a2742166757f61b5f5fdbb228afa157af62af989ffe966f232bba9e6beef5403d1690ade31a6410f7f349a35bc4267a129afd647993df7d45cc0e1a1ba4678d7f1b6e8a344d8ff7037679e1f4db25a454e4246f6b55c416567fcfa188e8a3865115851d9edf0aa8902\nM = cf424d7af75ce7eef90cad75ae55ca8810cc7b4703fdb5bce701e7bac07e0c371cae06df2aa8facb55a0faa6793e4d2bd9d7969703743b9be170be82792aeea55e2bc0f7ab7617b276486bf474dee2f4556aab595ff3ef115139cfe5e21ccd4ee05c0e1cf901bd85df86cc17195a783b0be836d00bee82ce064077f9191188f9\n\nModExp = 3137a3049fd4ad2e26d870f5c998cf11bfe82101884a82e85e43facd0928cd7434a2e346ca124619769fa141bbe92ad6f36b99231032ddaec3b349a410f82b5ca36f45e56e5fb85dc63d32053dc90805d3f1854ab385281a71a57726bf97158494e7476057214ca7379ab8b70f5bdc15f70bdad3adf33c3a1f9cd1b6bbbad556\nA = 39a1dc6a4c3f14d9c350ee968d5ce139ef725952c967a2d1bedf48ace22091283525be03807e2e263d2640be77f0525247bcd07149bba50568cec5a082c87d72962cf9e43bcb5cdb1e7e9a650fb53e0ec2fad37f09a9f036c0d7dfa528fef846769f80a9a60854910ca1b4ee05dba82ed2ee018348d6b3e52a764b8ffae61e0\nE = deaee3a3f80c9f684ed7110c0653847ccc7be5ff6d982fd4b49f59b5dd35f7210b1077babbcedbc127df35cd469dc6e569a0f84e58149b5605c94b09fd7f0b098d02b4a04631328b3fae39e6c2fce25334225cab71829abdb9507cb903701559660f2c08c3b743336119d1260a0db27054cad3f28bc1b04b2289baa58fb33965\nM = 938388927d06ed3bb1286c0f06d3054cb0ee16dc7a0bbbf13a45293c09a5f40f1d611b2e1a1b0ec2ef109b508e27af4274954905cae52034f8740a744153b4d22059f0dd262ea51785522098ecacced6da07709ee6b5acc8c4e99331379a7c3de7f4e2d1431e43b19570140955b7bcba118dfbaa552cbfa2be531e8f781166ed\n\nModExp = c15ae334455d9f4d1030cd33e734726a27c63624c2afc576238cce5e0498298a4a0c93090a0d19568b41290303c4b558f3d9dd74f9cde8798710f68569ea0d6fd971ce67ec5b54495031de3d8842b8b49288725bee5c9f72b99054d64986ccd4e18d70d5f33943f08cd694eff538f84438ea993ebaba0910c95b3a694f213510\nA = def633b955a917569df3ba8517455eef0655e7a35985edda27097a063e0d82c7c3a76dc36c5d8a71ba9d540790ddd0ea514aaed98925f9a1808eb288d387aaf9605a9ef8a333ebee7ad7057bca012efd619d5867f02266f65976ef4b16da17468426ac4f99b3e8921707e01b4de20f6f9a068e6a19d872079a27f3a44449db83\nE = a465c47b0d15d48e01bb8b1d8e3b3253e11515f6874dbed6c25818adf1a8fd927124d5593beb367f685c11e46f18415be73ccdf16fa2e93a600b728163d21d232849e5278c3749d903edad3f1c4535a2f55a2ab65e7ebc64888bd2a0527e876ecf38cec3ab1980d08138709fad8eb88ae65d960adc3f0f8e92f784fe96fcb693\nM = e43cb9ac1446154356cdc31ec771c79b0e461e22d95185bbe1a279c0945e3af07903a0cb54d553380716fcdcafb4b7cf5dc6da481dc74a8c583d75ff6c1f8e429182d200246ebc473bb56e173787987c1b7fb2dd23f5b2e438a97bc4a1df628bc044fdd1e80c0cf37030adb7b04784dab827d0dcd64f0dbf37c980612570ce11\n\nModExp = 75c3f79ab7c991b98e65505342a8a563cfb08b5d3ccf8664c7db1de50256b1d17ebf7096dc98c7bb5d7f027a894ae5cbb14dee04d5d445e775ad7e239acc82673b0ac2d819a69c83864f34e73d9a636f05de8279619a067b4c90ad038db5910447e03841d2034635018f08cbcd21efa00994247763a249082594128112f95232\nA = 34def7d76f6f158a359fd12759fb889cdf6af0a24830dc3e84283a1ab4e9b2647a6a36b86482f829b2cdf3e3d6028f9a884b1f64f7262315446bea8b0231828e2f3d990fb103c17f820b39e4b8427c85643ceeca8f5dc8f191d1255768300e859bd7d88c770319ef38269660d221cb3bc061389b6fc0783485ef042b1c7d6fef\nE = c6c46453dd5aac6b37277a446b1d0c69cbe476eeff55b3ac35edb89ba97116b0e7783660f2c7b31b2a2d6c4709d0ab45d01a838100694b0777c9c9c14c959b07c437c73a5eabb7402f1001e802d797a2e7707285834fb6440a1c2f727f7bb84ddb2a49312d32fa0ce620c43872655cb5c394749c9e75d7fa25be00efe50d47d6\nM = fbbab6698a9142095c46b38a732592e4366c1838b84bf40f8c8fc7b630f73380a0d09765562365798f8c8030ed1b6728329d8bb06e882c35a1d59bfe84146a9db2afe42a414014e247390281c782fce806d62adb54778d2bcb49555459429d6ed446af5359657667f6aa19e8e3e0e24ab2bc312b2d90b5cb1ce6f2f15af15d9d\n\nModExp = ba16d7f3f6e162ce248490d164a13c00e7720d8a667e2d3ebeb13f1663e15ef5408d5b56cbc7bc793a8ca787cc50f8e15e0e9d4ee764531d04a9114eea556bb3e2", "06ed7d85267151a056b6e68fbf35e03f2cf829708ffe1de13e95ecfe365aff1eea36340ffcd3892dee659fb1ecbe50f5080e54737c10f9c1ba638b14ef537e\nA = 9025e6183706105e948b1b0edf922f9011b9e11887d70adb00b26f272b9e76a38f3099084d9cccf12d04b1a99c0f654f8b9ed90c6dff9478c60bf05d58d734ab60eaefa14a22230ec60c90dc1f0704b61eef0bef345785ae0e6a9af7db069cf6bd2b4e0fe58a0ade83c7e46a04b9fe1d24cb9b65c6f80de713e61d70eae5b286\nE = d7e6df5d755284929b986cd9b61c9c2c8843f24c711fbdbae1a468edcae159400943725570726cdc92b3ea94f9f206729516fdda83e31d815b0c7720e7598a91d992273e3bd8ac413b441d8f1dfe5aa7c3bf3ef573adc38292676217467731e6cf440a59611b8110af88d3e62f60209b513b01fbb69a097458ad02096b5e38f0\nM = e4e784aa1fa88625a43ba0185a153a929663920be7fe674a4d33c943d3b898cff051482e7050a070cede53be5e89f31515772c7aea637576f99f82708f89d9e244f6ad3a24a02cbe5c0ff7bcf2dad5491f53db7c3f2698a7c41b44f086652f17bb05fe4c5c0a92433c34086b49d7e1825b28bab6c5a9bd0bc95b53d659afa0d7\n\n\n# RSAZ 512-bit.\n#\n# These are regression tests for code which historically reached the RSAZ-512\n# code. That has since been removed, but the test vectors remain. Note that the\n# lengths of the inputs, especially the *bit* length of |M|, matter a lot.\n\n# Control: No relationship between A and M except that A < M and they're the same number of limbs.\nModExp = 7f34c1cd63377bc3abf2bb5b2d1bf5f06454e1e8040fe19a72245ce9731cbee1bf9e84532300776c8021ed4f3a8de508d85b4cf320bd82065a013754857b50c4\nA = 8e4e67da6ff890643d0599387955996ef6f0c2045eb9944576ddb965ca64cdb6247727ce128ef178d4a84e5a56d2e67eb0fe389ecbf691f9244ae80f4c11b364\nE = be99d8f0650e540b9b191e9cf96f74881b902e32ed169ffd8a1776c3f3e80f0ac765aa14615713e1549f250a20fe4ee48c4e0c6176162fc7842a0dd64d640d1\nM = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725491\n\n# Same as above except A is negative.\nModExp = 71fa6a4c8ae75368eda8cc6282c26afa69e2af12a97fb9444f16b7dd6c99e0a5d6034cab4248cae4357346b211039f4a2bc4c5a20a297372094162417af703cd\nA = -8e4e67da6ff890643d0599387955996ef6f0c2045eb9944576ddb965ca64cdb6247727ce128ef178d4a84e5a56d2e67eb0fe389ecbf691f9244ae80f4c11b364\nE = be99d8f0650e540b9b191e9cf96f74881b902e32ed169ffd8a1776c3f3e80f0ac765aa14615713e1549f250a20fe4ee48c4e0c6176162fc7842a0dd64d640d1\nM = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725491\n\n# A == M - 1 == -1 (mod M) and the exponent is odd so A ^ E (mod M) == A.\nModExp = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725490\nA = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725490\nE = be99d8f0650e540b9b191e9cf96f74881b902e32ed169ffd8a1776c3f3e80f0ac765aa14615713e1549f250a20fe4ee48c4e0c6176162fc7842a0dd64d640d1\nM = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725491\n\n# Same inputs as above except A is negative. Note that A mod M with a \"correct top\" isn't the right length for RSAZ.\nModExp = 1\nA = -f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725490\nE = be99d8f0650e540b9b191e9cf96f74881b902e32ed169ffd8a1776c3f3e80f0ac765aa14615713e1549f250a20fe4ee48c4e0c6176162fc7842a0dd64d640d1\nM = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725491\n\n# A == M, so A == 0 (mod M) so A ^ E (mod M) == 0. Note that A mod M with a \"correct top\" isn't the right length for RSAZ.\nModExp = 0\nA = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725491\nE = be99d8f0650e540b9b191e9cf96f74881b902e32ed169ffd8a1776c3f3e80f0ac765aa14615713e1549f250a20fe4ee48c4e0c6176162fc7842a0dd64d640d1\nM = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725491\n\n# A is negative, and A (mod M) is the right length for RSAZ.\nModExp = 8d76eb0f8c7bc3160cc8bb0e0c3590fbed26c5932f5f525b48045c0bd46dda287ba5483f97c851fb7c12c2e858ee7a4a4d1af745cbfb3eb311fa54bea12cde25\nA = -80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nE = be99d8f0650e540b9b191e9cf96f74881b902e32ed169ffd8a1776c3f3e80f0ac765aa14615713e1549f250a20fe4ee48c4e0c6176162fc7842a0dd64d640d1\nM = f12f2c19ee1ecf2c999b87bdafde60eace3790faad8f9adec13b14c6dfb69f8795a1d0fe65494250b59534014b918453042012952ae6f5786342999600725491\n\n\n# RSAZ 1024-bit.\n# Note that the lengths of the inputs, especially the *bit* length of |M|, matter a lot.\n\n# Control: No relationship between A and M except that A < M and they're the same number of limbs.\nModExp = 8984f8c16044f9c0ad7bd72347af90f58e6e003acda92b76e3c7c4a56ea8e918409d8e9b34884d4c89d0b17cb40fe898f2627c084a0f1698e46beccbf6f48eecc281e11ea9e5135adba460ddae157f2c655b5f589ce29b254d43a960a71cede8a08dbb86be4dac22458da232fb1ec2470856827302ed772c9ddafa408c931aa7\nA = 21158da5fe20356825e72b3f5384ec57720d22f727b27ce2f945c8ee311db781add73bf8fae96b775c909bd22fca75c44c2b0584284a5bb1c07f8eefcd6b0a44047a02b185df34f897f11d4fb9a86c9eb841b4cb8d0383441fdc5af3ef385b5e8380f605d73ed41bb42eb2c2a5704d6034b3ad058dafffce83dbbfb6295daaf8\nE = ecdebd112b3b5788669449dcddbd479a203ee9ab72a9bb9c406b97623513bf0ab9a22f1f23634d269e16bfd6d3b64202b71fc355057411967b6ac70f8d9cef0a4e06819a9a18cc06bbe438243fa9759303d98be8a65dc1cb13595ee9b99f138554425d50f6fbc025d8ffa3eaea828d6f3b82a3584146bafde34da257995f0575\nM = ff3a3e023db3bba929ca4ededbace13d0d1264387b5ef62734e177eaf47a78af56b58aacc8ac5d46f5b066bafb95d93d4442bb948653613eec76837b4ffb7991cb080b6c8b403fb09bc817d026e283ee47ab2fc9af274b12f626eda2fe02004a8e27b9ed7d3b614e8955c7e7c2c0700edd079455237c4475fbd41857e206e4b7\n\n# Same as above except A is negative.\nModExp = 75b54540dd6ec1e87c4e77bb93fd50477ea463fdadb5cab05119b34585d18f971617fc1194240ffa6bdfb53e4785f0a451e03f8c3c444aa6080a96af5906eaa508862a4de15b2c55c023b6f278cd04c1e24fd0711244afeda8e3444256e51261ed99fe66beedb52c43c825b4c7a1adc7d4b111e2208ecd495df91e175573ca10\nA = -21158da5fe20356825e72b3f5384ec57720d22f727b27ce2f945c8ee311db781add73bf8fae96b775c909bd22fca75c44c2b0584284a5bb1c07f8eefcd6b0a44047a02b185df34f897f11d4fb9a86c9eb841b4cb8d0383441fdc5af3ef385b5e8380f605d73ed41bb42eb2c2a5704d6034b3ad058dafffce83dbbfb6295daaf8\nE = ecdebd112b3b5788669449dcddbd479a203ee9ab72a9bb9c406b97623513bf0ab9a22f1f23634d269e16bfd6d3b64202b71fc355057411967b6ac70f8d9cef0a4e06819a9a18cc06bbe438243fa9759303d98be8a65dc1cb13595ee9b99f138554425d50f6fbc025d8ffa3eaea828d6f3b82a3584146bafde34da257995f0575\nM = ff3a3e023db3bba929ca4ededbace13d0d1264387b5ef62734e177eaf47a78af56b58aacc8ac5d46f5b066bafb95d93d4442bb948653613eec76837b4ffb7991cb080b6c8b403fb09bc817d026e283ee47ab2fc9af274b12f626eda2fe02004a8e27b9ed7d3b614e8955c7e7c2c0700edd079455237c4475fbd41857e206e4b7\n\n# A == M - 1 == -1 (mod M) and the exponent is odd so A ^ E (mod M) == A.\nModExp = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d964\nA = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d964\nE = 61803d4973ae68cfb2ba6770dbed70d36760fa42c01a16d1482eacf0d01adf7a917bc86ece58a73b920295c1291b90f49167ef856ecad149330e1fd49ec71392fb62d47270b53e6d4f3c8f044b80a5736753364896932abc6d872c4c5e135d1edb200597a93ceb262ff6c99079177cd10808b9ed20c8cd7352d80ac7f6963103\nM = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\n\n# Same inputs as above except A is negative. Note that A mod ", - "M with a \"correct top\" isn't the right length for RSAZ.\nModExp = 1\nA = -b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d964\nE = 61803d4973ae68cfb2ba6770dbed70d36760fa42c01a16d1482eacf0d01adf7a917bc86ece58a73b920295c1291b90f49167ef856ecad149330e1fd49ec71392fb62d47270b53e6d4f3c8f044b80a5736753364896932abc6d872c4c5e135d1edb200597a93ceb262ff6c99079177cd10808b9ed20c8cd7352d80ac7f6963103\nM = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\n\n# A == M, so A == 0 (mod M) so A ^ E (mod M) == 0. Note that A mod M with a \"correct top\" isn't the right length for RSAZ.\nModExp = 0\nA = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\nE = 61803d4973ae68cfb2ba6770dbed70d36760fa42c01a16d1482eacf0d01adf7a917bc86ece58a73b920295c1291b90f49167ef856ecad149330e1fd49ec71392fb62d47270b53e6d4f3c8f044b80a5736753364896932abc6d872c4c5e135d1edb200597a93ceb262ff6c99079177cd10808b9ed20c8cd7352d80ac7f6963103\nM = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\n\n# A is negative, and A (mod M) is the right length for RSAZ.\nModExp = 9cf810b9e89d5cbc4b79ae64e123ea06d92965e2bab077df97a1b906dc2e1ddcf96a9c4ed14e2cd96309b829ea9cc2a74a7d4b43c5f34d792a7c583201427754b8f78b783608070a84b61f18913e3ced7f7f530972de7764667c54e29d756eea38a93cd1703c676a4587231b0ebfeadddf908e2877a7a84b5bfc370ecf0d158d\nA = -8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nE = 61803d4973ae68cfb2ba6770dbed70d36760fa42c01a16d1482eacf0d01adf7a917bc86ece58a73b920295c1291b90f49167ef856ecad149330e1fd49ec71392fb62d47270b53e6d4f3c8f044b80a5736753364896932abc6d872c4c5e135d1edb200597a93ceb262ff6c99079177cd10808b9ed20c8cd7352d80ac7f6963103\nM = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\n\n# Regression test for CVE-2017-3738.\nModExp = d360792bd8210786607817c3dda64cc38c8d0f25569597cb1f363c7919a0c3587baff01a2283edaeb04fc288ac0ab3f279b2a89ffcb452d8bdf72422a9f9780f4aa702dc964cf033149d3a339883062cab8564aebdbfac0bf68985e522c6fe545b346044690c525ca85d3f4eb3e3c25cdf541545afc84a309e9b1d7807003461\nA = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2020202020df\nE = 2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020FF2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020\nM = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2020202020ff\n\n\n# Exp tests.\n#\n# These test vectors satisfy A ^ E = Exp.\n\nExp = aa6d7ac431\nA = d0e07\nE = 2\n\nExp = 12d416b110dbb4e467ff0c89a22122f4da8240\nA = 1a18cf6\nE = 6\n\nExp = 49a3b33e23d84f1ce0d5d83f5dcb651d50cf3920f0143da2310d0512a90a06cd8f38977df8a756c30883de38df092000\nA = 2a3acbd2\nE = d\n\nExp = 5b4a0d5a956f885f275712b194459980f24708bfb6393d71bd37dce852ce455724f5ee5030775fb86b4295edc98afaafc097e4d82a97c0078ec0eac763db16549c5145c4cf2d3124f88cf9a5c71da0625afb99b26801786fe49a778415dc025954021753d08691947a208b613f0be5c1\nA = 54b3ae461\nE = 1a\n\nExp = a0ea5f6a4de49beb8fb7f0dab280d6a32c5a3814c9a5153a7944cec0a9028497846a8a89044348721a0bb5f0c3ded3e980574ea321b0cdb0ead4f4e93841ea7478a7f15d9729b646a8165813a0750e8124f5465dda9b105e1bbeff18fd09c09a2e26610d9176d253b877c3a8908a6be521cbe1e472a7a1b7820e4e890f8f28aacd34609c686e76e15b01bd9324a71290812724ea564d11c874a6765b262c3e57d479da0287a76026a1e8fe53da0b02405da1d379eaa30fc65f\nA = fccec0f6df\nE = 25\n\n\n# ModSqrt tests.\n#\n# These test vectors satisfy ModSqrt * ModSqrt = A (mod P) with P a prime.\n# ModSqrt is in [0, (P-1)/2].\n\nModSqrt = 1\nA = 1\nP = 2\n\nModSqrt = 1\nA = 1\nP = 2\n\nModSqrt = 1\nA = 1\nP = 2\n\nModSqrt = 1\nA = -1\nP = 2\n\nModSqrt = 1\nA = -1\nP = 2\n\nModSqrt = 0\nA = 0\nP = 3\n\nModSqrt = 0\nA = -3\nP = 3\n\nModSqrt = 0\nA = -3\nP = 3\n\nModSqrt = 0\nA = 0\nP = 3\n\nModSqrt = 0\nA = 0\nP = 3\n\nModSqrt = 0\nA = 0\nP = 5\n\nModSqrt = 1\nA = -4\nP = 5\n\nModSqrt = 0\nA = -5\nP = 5\n\nModSqrt = 2\nA = 4\nP = 5\n\nModSqrt = 0\nA = -5\nP = 5\n\nModSqrt = 3\nA = -5\nP = 7\n\nModSqrt = 0\nA = 0\nP = 7\n\nModSqrt = 0\nA = 0\nP = 7\n\nModSqrt = 2\nA = 4\nP = 7\n\nModSqrt = 3\nA = -5\nP = 7\n\nModSqrt = 4\nA = 10\nP = b\n\nModSqrt = 0\nA = 0\nP = b\n\nModSqrt = 3\nA = -2\nP = b\n\nModSqrt = 3\nA = -2\nP = b\n\nModSqrt = 2\nA = 4\nP = b\n\nModSqrt = 2\nA = 1e\nP = d\n\nModSqrt = 2\nA = 1e\nP = d\n\nModSqrt = 0\nA = -d\nP = d\n\nModSqrt = 0\nA = -d\nP = d\n\nModSqrt = 3\nA = 9\nP = d\n\nModSqrt = 8\nA = d\nP = 11\n\nModSqrt = 6\nA = df\nP = 11\n\nModSqrt = 4\nA = 10\nP = 11\n\nModSqrt = 5\nA = 90\nP = 11\n\nModSqrt = 3\nA = 80\nP = 11\n\nModSqrt = 9\nA = -e\nP = 13\n\nModSqrt = 7\nA = 7d\nP = 13\n\nModSqrt = 6\nA = 37\nP = 13\n\nModSqrt = 1\nA = 1\nP = 13\n\nModSqrt = 8\nA = 1a\nP = 13\n\nModSqrt = 54d4cf0fafe265056a29016778cea6b712bc66a132fb5e6b6865e9b49e4c97ec\nA = 599c10484b22d0b5a115268c7538ca99b3253a311a4ab1ca11c3665b0bec393a1167d1ad94fb84cb2c7ad7e2c933e8f613bdd08fe1f1aa4a9b0b9de0c8a7c9d4\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 38a7365a15365e911286c1be2a7afe76ef390234d76269e04dee17313f6ea54d\nA = 1c4aabb4d8369710131c664ecf2849e963c1bc31d66e0b939bacf99a870c71f24ed71bdddcf566f3908271fee43fc1ebb51eac7e3153efae641b49d2e796a12a\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 35ab18a560dece04725667f640ca61d1d59f14d191f94c79f58531acd097d444\nA = 685168ae855d60eba220d803f5296459b30a289580668db9ed51bca51cc2d453a937e13819ae34f7a9a143ac96d17420c53919167e46279b562b550be1cd9abc\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 288370029e87024175e5bec0eab0929179f42e16995e7f6194eefc61061e54f4\nA = 2a14ab77c045bdc48220ba9c463e1a4b4049cb01edb53be0937767eb2ec19b7d719855052281250a36a0b76d9a5d967d0756e1ded7a052f7056191ad66bcfc9\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 32255cf01dc943577ec2bcb221b98491d7a1130d046d6c68e95fedff643ce3a4\nA = e26f6dd46a513a1dd3fb14b71be1d4c9e9d79eda1cde10ea4d1eb8abfd4d5857572205e247184dd0cbefa37b5c0bf680ba2bd28c5741f725cfe2aae37419baf\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 5172345e801ada63fbc4782e32583cc3b4fea88b9e6dfd542f3542f8538ade66\nA = 40dafa8342b302bb04b1f3ddb3b9015a8fc1b597857c115b40631c7be9e22de89358fca23b331596ee5ff304dad7811e6d8e8822f7aa533c9e7c882634ea550\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 4dcf63c423bf0e39aca2293d57f6792d023db649d6719fe936446904b9f7e60d\nA = 5bcdb514bbe84261e169203e8017909b60c9bb330400c766ee01b0189378e70e61867a164a12643ddc9e94b61e09e5b158cbe85be228a3cc48f95a552958b8f2\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = cf77c5c2d12a500b75cbfb1f3e66ee75d886b9365cf4f8b4d1bd18a6be0f387\nA = 4652ddc2ea7b460d8ec3c9059b8f9b5dae6cac55b51f2ad86fcb336b25235737965cc515e2ff0b54835015b7ebeeda6fadd9864", - "71d8cb424d309fc353d1e269\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 1e0549e4c5a26023e9d24fd8c67419960746f82b1ecd113bdac66f570a475d87\nA = 5f4a6d450ab1390d96ab1deaa0ba18f897cb63daf0c9e1ef6c08e804c26b5e842f6c08f13db5d4a6e88f07af2a3cb04fa06fc3e59c410b9356f025ed81acc74\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 144481a781d831c1ca046ca9e322d79ad4d2c6dd9f780bea9d1ced9cd20b7b23\nA = 4c254fabca441017132b9eacd4ca40a336db3e5c09715773fa07af095989a91cc968ff07a9ff56ed06b0ce0c5269f7b2ab68564ecab9f4467a7e96b6cc6b21b7\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 216fecc7667f488a3d2d102a38b46b4860ab858300b8638af4f34e1103fd73ba\nA = 17878f8048227573a9d70f53c0e76ff13fe9f56e9c984c92514d3d13dec23c816661f0618d21371b80dfd885cb59551bdf80046f65f22ea9b89c78645a6e455a\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 458e5e789ccd2417174f7e30bb31914b9656bd8cf2b9f5a9752a8737a67707bc\nA = 5c7d39a4bb04e69201aa519f80ee7e62ea14ca55e13656d1da3f45367e2fb2d061aa2940708d02ac67d35cd2ccf54a1bf95bcbc759779e692cfdcbb3aa1a05b\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 543125a16c2bb8b8f8a2c39c497e5224ec77533602d7dbe24002e32dcbd2ef1a\nA = 3413afae333b2ad9ff45c7f3c7e5934b3127e8b1a55225958ee6ccf42423e81559bf070ad3f3353b78c0ffd41475af49f59d268ef78bdae879f5155e8d1cc07\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 10e16859c67bdb2eaab52a7c847dbf37162eda258a9f6262ebacfe4cbbbc1080\nA = 21ce7905894faf220bdf4a82a2d855994ca2dc9feaecaa53c7f146e1f49934215695e9bb46ba370b7005a90c399674caa8969eb442e7914d90f749774d7fd194\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 32a00586adc6f6cc2b1a04e1be0ab569fde235e1436c38b6af92bc5ebd60bc1c\nA = 350da4fd8cf03c12f7dd6ac6d3ab801a3413964083e374662aaf878d6838b97d4feb9e52cd307a25b113e101661a865463ee2480c626aa4e2ec437d72e7bae4c\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 971f75bc7afa8b4b50f1d4b05e52deac7d4836a08d30546f29649bf1ca6a247\nA = 655ed4c5d8d0afb4f9360372ee1ef1303898d2423e585108a3303faedb55064d2ef25666ed4c4d71fe6063fea1f3142b435714b0e30b339dd791d347c884654\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 48fa882b7cb6a29de9e3769f72eb67f1efd4d2af56f0c7e410c610efcbce2065\nA = 14f3503f33b243800eac1defaab33e04c01e80163fb3efd03860970cc016832431ca4fc6d1b760f4f40166b0b8b3c40dbebc81460cc10890172243770338f090\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 236fd7e397ea7f8bc2a288eb7236ca41936fa702b7dccca56c8852e147511f7d\nA = 1bbd0980feac854782813bcde4da85e8a054549a1b515e065da4236528035e756882e29e762cf60453e375cca9dc6ff637f9558bf86646e3b928f68f82af7efe\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 693f0cbe8c81b0afde0cd2f83e53795dcae6b0cc4ba930ab5c752400d787f14\nA = 7b20f9664b23907e152ab8c9a907f72e8670c1c38ab4cd1411ea7c2159c09aa131afe068929b8e6ad1409b74c04975180d1cd0a9fa74e923c3fd451e8da2c34\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 4a086c50b0bad576501ddb6280743b2c9d247841eb7f14d90561432ff7dca6f0\nA = 4367431ec0cd0d7626538b93a090c30fe0c97c18ca03b97ddae304b619112b5b4d02bf0f041fa3fd673f9ef2ceb07eb2079d11c56dd903b1a87e8252a97b8079\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 18f8433fa468d8065157708f1f1e53b8e31d39c6011fbc2bad93de1b5548e19c\nA = 739c032bb4139c199c40f548d37234298772e4ccb9d3ba28412b60ad23b4c465b0787e2382f1c5a4a87af2d20eb978b7dcbe73f2112249477d15c8a85e54a79\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 49e3c8eef5e067cabd51a7c01384ce05ab8f4342f655559d8a689eb7b20e0106\nA = 18400c2cc3e06b99b4e39c77b9af5ff0e9c683f1708321afa4cd5b6988d13b36b1d9eb4379b7902d9ceb40c03f814b2b6a01b90509bbb4532f13ab1571c4d04a\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 35548c530745f440329325cc8a5fbd90c16a7f0788879a4869bc4d4f73acda0e\nA = 181a3c5ab02566e7166c4d6d2f2bd4a8ecc25991a98d270bde80cf4332766a7068b14240bf5f5dcd45e90ef252596da3eb05b11d68b2063f7b3a825742593ca9\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 1ab7046e6af061ade5f9719008fa4d989007e2a579a134a5b9f19ec410984096\nA = 1008a03e211fab0d45856377079bc96b0776c2d4c0175661f3493246cea2ab0a02a706c85314fb707ad9906bedb2cfd577d62092ae08ff21d7b949373ea954c7\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 2be9e3e7515960d90f115b89f60dedc173a73ce163b4036e85b7b6a76fd90852\nA = 392053a9f0100540a8e1a0c353e922068a84dad3a4a8e8962fbc0bee2b6a06e20d08ade16eb1409a16acfcac3db5c43c421505e07035ca308b15c4a6db0864c0\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 5b301bb93bdcf050183107e36258b53b4805918114ea1c2227b0911d5b4dc077\nA = 55e55e5f94dc3d7aabc921f6469d85fa2e1e92a87347c57afad5872306ae69f9fb99297d1e3e793dd9e8632244208154de5da7114fd876383bf1422f7ece024\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = 2df9609e2f5a5156c3260461b2ee52eacdef00bd8b091479813143a6c5283f71\nA = 2099325b7f12fe77353ddf3f2b2c5ef77b49671b150af954cf84e9675e3ecde3e057084641a633d19533b4712ab49924c8b5c31d591abcc88291f51253fa2a7\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = dfab751710e9008e25e422d1199d6fbec4dc7fba35b4da9d225a746eb4126a0\nA = c006af53d4737fb293584df6ffe2e4cb3fd8dc77fb7c1f13b97bb9c249e3ee5fb9feff7488265b3093906c08a4946f142ac7b491937d24bfba6413366ce371d\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = 26bc030008d6c60a09fb0e16093a649fcb40c6c21a8e2da2353ba4b07c4f85d5\nA = 1eaabcfad2ed349ac9356e6f4da0b301266ddde811cb0f817aba8f5c10fb8b8ba9d0ef2dd386b668f16eac296118fdb8cb7afe1b865648c81c2fa3cf21f2711b\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = 35051b1482ec2578f3dc0000a422cb5111e43c37f1ac20b1844d3de2128c4556\nA = 315ff9de178681116f2a5fa78eebf4818e1d680435eacdfaf9d0e5c4fc01fc034b352c82fd52c81ca30d68864952dacc99d08269c9dd7ca99ccf22da98c3840\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = a5474252885cacf004c460a7793ff0b0a2187bb1a9ed700ae3470199faef71f\nA = 19856fc1351c4b02abf573bb2fc6ff92355fa369d62bb8f2260fa772fb1693f509a56cad661930abcac049dd70f4b16bed4a4c172e73e772504c9990ce7f92f\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 12daf4722387ecf47de1b0b6b110a062dc5ea2685bc9dbde66b8d15622985029\nA = fb8479787069116abc42abfd7dc0c24d2ad04fe0c04b42a6dff714af715d17e0fd77855f950f264542b06d48e8818de813ddb7975798b7debefcdaa5ff86beb\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 397996ed5c0ac6ad32e43c337e9de421b87774cc162bf7ac7bbedf4a9029255e\nA = 5aa04353321bd2de92481be740357f979da464b53aa39111fdbb734cf7af6b3857d1baa08d3a126a3dd34a2fbae2bf2b84e900686c1d31505b390185acef5fe5\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 2cf4b844a54ba359dc592ef1b49f43fcfeae84d1087edfefdd0b9174b43c0a3c\nA = 365a8650510bcfd8fa87432f167cf487234c215857403b9270b5eebeafa48cd6da47fd60dc311b94d1d72baad0447c31f0b212d755f46c256e16e5e015e6546e\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 9277c73043ff767c3fa606f0cd66b9d854a600c8c18287f191ce277758c3f31\nA = 62cec3901626d03e8df66299a87c54b1f7a55cafc99f0b6bba1b5d51a3d2b7d2171c9135a9d8a5346d436e0136b12e515e703e3cd84ecfe154eb94c6772a6d72\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 4189e5a90c1b1abdc1c7c05b3587e6f362e06f927b6cf5f0d271aab3d6f90765\nA = 336b8d0f9dac842c696bc020f49c6aa023842c16f2052eb02f17959006554ca0012042c80c72590f21c6bf5a3714c9cb552aa69730e33db93a56a909b273f39\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = 36ccd38cb5a6bd8a73bca55936a2227c503664422c2296faf7e2b1c6a375a43a\nA = fecfd60a376befbe48d2c4f6d070d716d2f403cd5daefbce62b720df44deb605162c8f20f49fd7ec30d4f8e70d803d45b3a44b5d912baa3410d991165d7c507\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = 198fc8569be172dc9b71023ed3d42d2ba94bae409964", - "3f6517ab03f540527fdb\nA = 65bebdb00a96fc814ec44b81f98b59fba3c30203928fa5214c51e0a97091645280c947b005847f239758482b9bfc45b066fde340d1fe32fc9c1bf02e1b2d0ec\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = 21b7f74c30ded681d6138cf8e6fd798f32a049e94138e982f1845df3dc9e686f\nA = 9a30b791c1ba4f394b4e3dcd5837e474237f4fe8987b255c098a47b2c14c598ec69d2beae444dd4fe9c4ede8173d2b187677cc706a3c28f3b81627d8a5fb6fd\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = a1d52989f12f204d3d2167d9b1e6c8a6174c0c786a979a5952383b7b8bd186\nA = 2eee37cf06228a387788188e650bc6d8a2ff402931443f69156a29155eca07dcb45f3aac238d92943c0c25c896098716baa433f25bd696a142f5a69d5d937e81\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\n\n# NotModSquare tests.\n#\n# These test vectors are such that NotModSquare is not a square modulo P.\n\nNotModSquare = 03\nP = 07\n\nNotModSquare = 05\nP = 07\n\nNotModSquare = 06\nP = 07\n\nNotModSquare = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951e\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\n\n# ModInv tests.\n#\n# These test vectors satisfy ModInv * A = 1 (mod M) and 0 <= ModInv < M.\n\nModInv = 00\nA = 00\nM = 01\n\nModInv = 00\nA = 01\nM = 01\n\nModInv = 00\nA = 02\nM = 01\n\nModInv = 00\nA = 03\nM = 01\n\nModInv = 64\nA = 54\nM = e3\n\nModInv = 13\nA = 2b\nM = 30\n\nModInv = 2f\nA = 30\nM = 37\n\nModInv = 4\nA = 13\nM = 4b\n\nModInv = 1c47\nA = cd4\nM = 6a21\n\nModInv = 2b97\nA = 8e7\nM = 49c0\n\nModInv = 29b9\nA = fcb\nM = 3092\n\nModInv = a83\nA = 14bf\nM = 41ae\n\nModInv = 18f15fe1\nA = 11b5d53e\nM = 322e92a1\n\nModInv = 32f9453b\nA = 8af6df6\nM = 33d45eb7\n\nModInv = d696369\nA = c5f89dd5\nM = fc09c17c\n\nModInv = 622839d8\nA = 60c2526\nM = 74200493\n\nModInv = fb5a8aee7bbc4ef\nA = 24ebd835a70be4e2\nM = 9c7256574e0c5e93\n\nModInv = 846bc225402419c\nA = 23026003ab1fbdb\nM = 1683cbe32779c59b\n\nModInv = 5ff84f63a78982f9\nA = 4a2420dc733e1a0f\nM = a73c6bfabefa09e6\n\nModInv = 133e74d28ef42b43\nA = 2e9511ae29cdd41\nM = 15234df99f19fcda\n\nModInv = 46ae1fabe9521e4b99b198fc8439609023aa69be2247c0d1e27c2a0ea332f9c5\nA = 6331fec5f01014046788c919ed50dc86ac7a80c085f1b6f645dd179c0f0dc9cd\nM = 8ef409de82318259a8655a39293b1e762fa2cc7e0aeb4c59713a1e1fff6af640\n\nModInv = 444ccea3a7b21677dd294d34de53cc8a5b51e69b37782310a00fc6bcc975709b\nA = 679280bd880994c08322143a4ea8a0825d0466fda1bb6b3eb86fc8e90747512b\nM = e4fecab84b365c63a0dab4244ce3f921a9c87ec64d69a2031939f55782e99a2e\n\nModInv = 1ac7d7a03ceec5f690f567c9d61bf3469c078285bcc5cf00ac944596e887ca17\nA = 1593ef32d9c784f5091bdff952f5c5f592a3aed6ba8ea865efa6d7df87be1805\nM = 1e276882f90c95e0c1976eb079f97af075445b1361c02018d6bd7191162e67b2\n\nModInv = 639108b90dfe946f498be21303058413bbb0e59d0bd6a6115788705abd0666d6\nA = 9258d6238e4923d120b2d1033573ffcac691526ad0842a3b174dccdbb79887bd\nM = ce62909c39371d463aaba3d4b72ea6da49cb9b529e39e1972ef3ccd9a66fe08f\n\nModInv = aebde7654cb17833a106231c4b9e2f519140e85faee1bfb4192830f03f385e773c0f4767e93e874ffdc3b7a6b7e6a710e5619901c739ee8760a26128e8c91ef8cf761d0e505d8b28ae078d17e6071c372893bb7b72538e518ebc57efa70b7615e406756c49729b7c6e74f84aed7a316b6fa748ff4b9f143129d29dad1bff98bb\nA = a29dacaf5487d354280fdd2745b9ace4cd50f2bde41d0ee529bf26a1913244f708085452ff32feab19a7418897990da46a0633f7c8375d583367319091bbbe069b0052c5e48a7daac9fb650db5af768cd2508ec3e2cda7456d4b9ce1c39459627a8b77e038b826cd7e326d0685b0cd0cb50f026f18300dae9f5fd42aa150ee8b\nM = d686f9b86697313251685e995c09b9f1e337ddfaa050bd2df15bf4ca1dc46c5565021314765299c434ea1a6ec42bf92a29a7d1ffff599f4e50b79a82243fb24813060580c770d4c1140aeb2ab2685007e948b6f1f62e8001a0545619477d498132c907774479f6d95899e6251e7136f79ab6d3b7c82e4aca421e7d22fe7db19c\n\nModInv = 1ec872f4f20439e203597ca4de9d1296743f95781b2fe85d5def808558bbadef02a46b8955f47c83e1625f8bb40228eab09cad2a35c9ad62ab77a30e3932872959c5898674162da244a0ec1f68c0ed89f4b0f3572bfdc658ad15bf1b1c6e1176b0784c9935bd3ff1f49bb43753eacee1d8ca1c0b652d39ec727da83984fe3a0f\nA = 2e527b0a1dc32460b2dd94ec446c692989f7b3c7451a5cbeebf69fc0ea9c4871fbe78682d5dc5b66689f7ed889b52161cd9830b589a93d21ab26dbede6c33959f5a0f0d107169e2daaac78bac8cf2d41a1eb1369cb6dc9e865e73bb2e51b886f4e896082db199175e3dde0c4ed826468f238a77bd894245d0918efc9ca84f945\nM = b13133a9ebe0645f987d170c077eea2aa44e85c9ab10386d02867419a590cb182d9826a882306c212dbe75225adde23f80f5b37ca75ed09df20fc277cc7fbbfac8d9ef37a50f6b68ea158f5447283618e64e1426406d26ea85232afb22bf546c75018c1c55cb84c374d58d9d44c0a13ba88ac2e387765cb4c3269e3a983250fa\n\nModInv = 30ffa1876313a69de1e4e6ee132ea1d3a3da32f3b56f5cfb11402b0ad517dce605cf8e91d69fa375dd887fa8507bd8a28b2d5ce745799126e86f416047709f93f07fbd88918a047f13100ea71b1d48f6fc6d12e5c917646df3041b302187af641eaedf4908abc36f12c204e1526a7d80e96e302fb0779c28d7da607243732f26\nA = 31157208bde6b85ebecaa63735947b3b36fa351b5c47e9e1c40c947339b78bf96066e5dbe21bb42629e6fcdb81f5f88db590bfdd5f4c0a6a0c3fc6377e5c1fd8235e46e291c688b6d6ecfb36604891c2a7c9cbcc58c26e44b43beecb9c5044b58bb58e35de3cf1128f3c116534fe4e421a33f83603c3df1ae36ec88092f67f2a\nM = 53408b23d6cb733e6c9bc3d1e2ea2286a5c83cc4e3e7470f8af3a1d9f28727f5b1f8ae348c1678f5d1105dc3edf2de64e65b9c99545c47e64b770b17c8b4ef5cf194b43a0538053e87a6b95ade1439cebf3d34c6aa72a11c1497f58f76011e16c5be087936d88aba7a740113120e939e27bd3ddcb6580c2841aa406566e33c35\n\nModInv = 87355002f305c81ba0dc97ca2234a2bc02528cefde38b94ac5bd95efc7bf4c140899107fff47f0df9e3c6aa70017ebc90610a750f112cd4f475b9c76b204a953444b4e7196ccf17e93fdaed160b7345ca9b397eddf9446e8ea8ee3676102ce70eaafbe9038a34639789e6f2f1e3f352638f2e8a8f5fc56aaea7ec705ee068dd5\nA = 42a25d0bc96f71750f5ac8a51a1605a41b506cca51c9a7ecf80cad713e56f70f1b4b6fa51cbb101f55fd74f318adefb3af04e0c8a7e281055d5a40dd40913c0e1211767c5be915972c73886106dc49325df6c2df49e9eea4536f0343a8e7d332c6159e4f5bdb20d89f90e67597c4a2a632c31b2ef2534080a9ac61f52303990d\nM = d3d3f95d50570351528a76ab1e806bae1968bd420899bdb3d87c823fac439a4354c31f6c888c939784f18fe10a95e6d203b1901caa18937ba6f8be033af10c35fc869cf3d16bef479f280f53b3499e645d0387554623207ca4989e5de00bfeaa5e9ab56474fc60dd4967b100e0832eaaf2fcb2ef82a181567057b880b3afef62\n\n\n# GCD tests.\n#\n# These test vectors satisfy gcd(A, B) = GCD and lcm(A, B) = LCM.\n\nGCD = 0\nA = 0\nB = 0\n# Just to appease the syntax-checker.\nLCM = 0\n\nGCD = 1\nA = 92ff140ac8a659b31dd904161f9213706a08a817ae845e522c3af0c9096699e059b47c8c2f16434b1c5766ebb384b79190f2b2a62c2378f45e116890e7bb407a\nB = 2f532c9e5902b0d68cd2ed69b2083bc226e8b04c549212c425a5287bb171c6a47fcb926c70cc0d34b8d6201c617aee66af865d31fdc8a2eeb986c19da8bb0897\nLCM = 1b2c97003e520b0bdd59d8c35a180b4aa36bce14211590435b990ad8f4c034ce3c77899581cb4ee1a022874203459b6d53859ab1d99ff755efa253fc0e5d8487bb000c13c566e8937f0fe90b95b68bc278610d4f232770b08d1f31bee55a03da47f2d0ebb9e7861c4f16cc22168b68593e9efcde00f54104b4c3e1a0b294d7f6\n\nGCD = a\nA = faaffa431343074f5c5d6f5788500d7bc68b86eb37edf166f699b4d75b76dae2cb7c8f6eccae8f18f6d510ef72f0b9633d5740c0bebb934d3be796bd9a53808e\nB = 2f48ec5aa5511283c2935b15725d30f62244185573203b48c7eb135b2e6db5c115c9446ac78b020574665b06a75eb287e0dbeb5da7c193294699b4c2129d2ac4\nLCM = 4a15f305e9622aa19bd8f39e968bfc16d527a47f7a5219d7b02c242c77ef8b608a4a6141f643ca97cedf07c0f1f3e8879d2568b056718aa15c0756899a08ccbe0a658bae67face96fa110edb91757bfa4828e8ff7c5d71b204f36238b12dd26f17be8ba9771f7068d63e41d423671f898f054b1187605754bc5546f2b02c5ac\n\nGCD = 16\nA = cf0b21bde98b41b479ac8071086687a6707e9efaacd4e5299668ce1be8b13290f27fd32ae68df87c292e8583a09d73ec8e8a04a65a487380dcd7dacca3b6e692\nB = 3be3f563f81d5ad5c1211db7eff430aa345e830ce07b4bde7d4d32dba3ac618d2034351e5435fd6c7f077971fb4a1e83a7396a74fdff7fce1267112851db2582\nLCM = 233a2188de2c017235024b182286f17562b2ee5ab9fdfe4efa2f61c4ff99fa44e1ead5bf6cde05bd7502ce78373c83e3f9dbab0c9bb8620a87c2640bce5d12c685af656df789bb3d0ba1edbaa98cf4f0166d422ab17aa6706f8132264d45b72827d6671a00a9186e723379e3a3bb7902d08865f357c74100059f83800241976\n\nGCD = 1\nA = dd7b7597d7c1eb399b1cea9b3042c14bd6022d31b1d2642a8f82fc32de6eadaf012fbbf349eaec4922a8468740ca73c6090833d6a69a380ed947b39c2f9b0b76\nB = 8e0dc8654e70eec55496038a8d3fff3c2086bc6dbfc0e2dbdf5bd7de03c5aef01a3982556ac3fc34fd5f13368be6cdc252c82367b7462e210f940f847d382dd9\nLCM = 7ae667df4bd4dd35bbec28719a9f1b5e1f396a9ab386c086742a6ab3014a3386d39f35b50624d0c5b4e6b206c2635c7de5ea69e2faa85dd616a7e36622962a07632839857aa49332942feccf", - "f2aee1c962e2f4e8ccfd738a5da5bf528b4c5a2440409350f5a17a39d234403e8482ccf838e0d2758ccfb8018198a51dbb407506\n\nGCD = 1\nA = 0\nB = 1\nLCM = 0\n\nGCD = 1\nA = 1\nB = 0\nLCM = 0\n\nGCD = 1\nA = 1\nB = 1\nLCM = 1\n\nGCD = 2b2\nA = dfccaa3549c1b59ab3e114fe87dc5d187719abad58c51724e972741eb895ab79a49f385f61d531ec5c88dbb505ae375093fa848165f71a5ed65e7832a42ade191a\nB = fa58a81f43088da45e659fc1117d0f1cd015aa096c8e5377cf1832191baf7cc28b5c24998b93b64f8900a0973faedb9babaaf1854345f011739da8f1175d9684c\nLCM = 5132f7ab7a982b9dc55114bd96800b7637f9742cf8a7a00a0d69d5e4574fc85792c89a1c52bcfc74b9d7f3f6164819466c46b2d622e280ced7ad1211604084a15dc1fd1951a05c8ce37122c0ec15891d818a70d3763670ea3195098de9b1ca50ea89893a9753fb9ea801541058f44801f7f50967124abfc864a2b01c41f94193c\n\nGCD = 8e\nA = 248d96a8a4cab0a1b194e08c1146868b094597cadbc35531f0ed2d77cba9f15cb5cc7c10e64ce054bf93396d25259d750b3de3aba65073db1fd2b852a6454ac1a\nB = 4c7bad8e1844901fd6a2ce2edc82e698d28ec95d6672ca148d85b49ecc78dd0a8b870e202244210bc98592b99ff6abbd20630f9eee7d46b15ccfae8d08b86799de\nLCM = 13b01f9d9c6c13e90c97e3d95bbce5a835c631b3de3bd4ff5df13ad850f5223dbdf71c53912275d0397df9335ef3a3ba8e4684c6b25962bb7b18bc74144cb5edf0196f79863a7ff032619a71646a92281f7baace7f223d254cb4d05ec19bf8d4c8ce4455a9d770daec89c0d3cf338cbdae39cf982b3c4568f5c9def4e1133d28a\n\nGCD = 3e55\nA = 2fa97382f46676b7a4cc2b8153f17b58792d24660e187d33ce55c81cc193ccb6e1e2b89feea1d5fd8faa36e13bf947fb48635e450a4d1488d0978324194a1f43c6\nB = ab08ad074139963bc18e5d87ba68db64ca6f4c279616c64039b02c55f2375b3bc04114e8e05e1ba92fb6470768f61d123845aea36774c18612736a220934561faf\nLCM = 82c7c377ecda2cb9228604cd287df5eff94edd4a539c3eb3b3fdd4b4a79d2f4eaf2b22f8286272d3dad2e370cfcd9ea4d93ebb3f049c52b8fa23b68a5bf79af989822e2cfb978f68c6a5058f47319dffcb455b089b06ae6db9e5c8a2b6e951d6e118bd2b4cd08b6e5733476a446a57387d940d1289ec00e24315821ed3a5daf2\n\nGCD = a7a\nA = 923706dfed67834a1e7e6c8e8e9f93bfbc0b43ca1f324886cf1f1380fb9b77109275d4b50af1b7689802fe9b3623ac46c7ba0e17e908c20278127b07a5c12d86ec\nB = 64473e878a29021fac1c1ce34a63eae1f4f83ee6851333b67213278b9a4a16f005cba0e8cdb410035bb580062f0e486c1a3a01f4a4edf782495f1dc3ebfa837d86\nLCM = 57785ca45b8873032f1709331436995525eed815c55140582ce57fd852116835deac7ca9d95ce9f280e246ea4d4f1b7140ab7e0dd6dc869de87f1b27372098b155ad0a1828fd387dff514acc92eae708609285edaab900583a786caf95153f71e6e6092c8c5ee727346567e6f58d60a5e01c2fa8ebcf86da9ea46876ecc58e914\n\nGCD = 42\nA = 0\nB = 42\nLCM = 0\n\nGCD = 42\nA = 42\nB = 0\nLCM = 0\n\nGCD = 42\nA = 42\nB = 42\nLCM = 42\n\nGCD = f60d\nA = ef7886c3391407529d5cf2e75ed53e5c3f74439ad2e2dc48a79bc1a5322789b4ced2914b97f8ff4b9910d212243b54001eb8b375365b9a87bd022dd3772c78a9fd63\nB = d1d3ec32fa3103911830d4ec9f629c5f75af7039e307e05bc2977d01446cd2cbeeb8a8435b2170cf4d9197d83948c7b8999d901fe47d3ce7e4d30dc1b2de8af0c6e4\nLCM = cc376ed2dc362c38a45a719b2ed48201dab3e5506e3f1314e57af229dc7f3a6a0dad3d21cfb148c23a0bbb0092d667051aa0b35cff5b5cc61a7c52dec4ed72f6783edf181b3bf0500b79f87bb95abc66e4055f259791e4e5eb897d82de0e128ecf8a091119475351d65b7f320272db190898a02d33f45f03e27c36cb1c45208037dc\n\nGCD = 9370\nA = 1ee02fb1c02100d1937f9749f628c65384ff822e638fdb0f42e27b10ee36e380564d6e861fcad0518f4da0f8636c1b9f5124c0bc2beb3ca891004a14cd7b118ddfe0\nB = 67432fd1482d19c4a1c2a4997eab5dbf9c5421977d1de60b739af94c41a5ad384cd339ebfaa43e5ad6441d5b9aaed5a9f7485025f4b4d5014e1e406d5bd838a44e50\nLCM = 159ff177bdb0ffbd09e2aa7d86de266c5de910c12a48cbe61f6fa446f63a2151194777555cd59903d24cb30965973571fb1f89c26f2b760526f73ded7ee8a34ebcecd1a3374a7559bcdb9ac6e78be17a62b830d6bb3982afdf10cf83d61fd0d588eab17d6abef8e6a7a5763fcb766d9a4d86adf5bb904f2dd6b528b9faec603987a0\n\nGCD = c5f\nA = 5a3a2088b5c759420ed0fb9c4c7685da3725b659c132a710ef01e79435e63d009d2931ea0a9ed9432f3d6b8851730c323efb9db686486614332c6e6ba54d597cf98\nB = 1b1eb33b006a98178bb35bbcf09c5bebd92d9ace79fa34c1567efa8d6cf6361547807cd3f8e7b8cd3ddb6209dccbae4b4c16c8c1ec19741a3a57f61571882b7aed7\nLCM = c5cbbbe9532d30d2a7dd7c1c8a6e69fd4fa4828a844d6afb44f3747fef584f7f1f3b835b006f8747d84f7699e88f6267b634e7aef78d6c7584829537d79514eec7d11219721f91015f5cefdc296261d85dba388729438991a8027de4827cd9eb575622e2912b28c9ce26d441e97880d18db025812cef5de01adeaec1322a9c9858\n\nGCD = e052\nA = 67429f79b2ec3847cfc7e662880ab1d94acdf04284260fcfffd67c2862d59704ed45bcc53700c88a5eea023bc09029e9fd114fc94c227fd47a1faa1a5ef117b09bd2\nB = 39faa7cbdeb78f9028c1d50ab34fbe6924c83a1262596f6b85865d4e19cc258b3c3af1ee2898e39e5bee5839e92eac6753bbbb0253bd576d1839a59748b778846a86\nLCM = 1ab071fb733ef142e94def10b26d69982128561669e58b20b80d39cf7c2759d26b4a65d73b7f940c6e8fc417180ef62d7e52ac24678137bd927cd8d004ad52b02affe176a1ecde903dbc26dcc705678f76dd8cd874c0c3fe737474309767507bbe70dd7fb671bbb3694cedf0dcdaa0c716250ddd6dfec525261572fa3e1387f7b906\n\nGCD = 3523\nA = 0\nB = 3523\nLCM = 0\n\nGCD = 3523\nA = 3523\nB = 0\nLCM = 0\n\nGCD = 3523\nA = 3523\nB = 3523\nLCM = 3523\n\nGCD = f035a941\nA = 16cd5745464dfc426726359312398f3c4486ed8aaeea6386a67598b10f744f336c89cdafcb18e643d55c3a62f4ab2c658a0d19ea3967ea1af3aee22e11f12c6df6e886f7\nB = 74df09f309541d26b4b39e0c01152b8ad05ad2dfe9dd2b6706240e9d9f0c530bfb9e4b1cad3d4a94342aab309e66dd42d9df01b47a45173b507e41826f24eb1e8bcc4459\nLCM = b181771d0e9d6b36fdfcbf01d349c7de6b7e305e1485ea2aa32938aa919a3eee9811e1c3c649068a7572f5d251b424308da31400d81ac4078463f9f71d7efd2e681f92b13a6ab3ca5c9063032dcbdf3d3a9940ce65e54786463bbc06544e1280f25bc7579d264f6f1590cf09d1badbf542ce435a14ab04d25d88ddbac7d22e8cae1c91f\n\nGCD = 33ad1b8f\nA = 1af010429a74e1b612c2fc4d7127436f2a5dafda99015ad15385783bd3af8d81798a57d85038bcf09a2a9e99df713b4d6fc1e3926910fbbf1f006133cb27dc5ebb9cca85\nB = 92a4f45a90965a4ef454f1cdd883d20f0f3be34d43588b5914677c39d577a052d1b25a522be1a656860a540970f99cbc8a3adf3e2139770f664b4b7b9379e13daf7d26c\nLCM = 4c715520ed920718c3b2f62821bc75e3ff9fd184f76c60faf2906ef68d28cd540d3d6c071fa8704edd519709c3b09dfaee12cb02ab01ad0f3af4f5923d5705ce6d18bcab705a97e21896bb5dd8acb36ee8ec98c254a4ddc744297827a33c241f09016a5f109248c83dd41e4cea73ce3eabb28d76678b7e15545b96d22da83c111b6b624\n\nGCD = dc0429aa\nA = ccb423cfb78d7150201a97114b6644e8e0bbbb33cadb0ef5da5d3c521a244ec96e6d1538c64c10c85b2089bdd702d74c505adce9235aa4195068c9077217c0d431de7f96\nB = 710786f3d9022fc3acbf47ac901f62debcfda684a39234644bac630ab2d211111df71c0844b02c969fc5b4c5a15b785c96efd1e403514235dc9356f7faf75a0888de5e5a\nLCM = 6929af911850c55450e2f2c4c9a72adf284fe271cf26e41c66e1a2ee19e30d928ae824f13d4e2a6d7bb12d10411573e04011725d3b6089c28d87738749107d990162b485805f5eedc8f788345bcbb5963641f73c303b2d92f80529902d3c2d7899623958499c8a9133aae49a616c96a2c5482a37947f23af18c3247203ac2d0e760340e6\n\nGCD = 743166058\nA = 16cd476e8031d4624716238a3f85badd97f274cdfd9d53e0bd74de2a6c46d1827cc83057f3889588b6b7ca0640e7d743ed4a6eaf6f9b8df130011ecc72f56ef0af79680\nB = 86eba1fc8d761f22e0f596a03fcb6fe53ad15a03f5b4e37999f60b20966f78ba3280f02d3853f9ace40438ccfaf8faed7ace2f2bf089b2cdd4713f3f293bf602666c39f8\nLCM = 1a7a1b38727324d6ba0290f259b8e2b89c339b2445cada38a5a00ded1468ab069f40678ce76f7f78c7c6f97783cc8a49ef7e2a0c73abbac3abc66d1ce99566ce7f874a8949ca3442051e71967695dc65361184748c1908e1b587dc02ed899a524b34eb30b6f8db302432cfa1a8fbf2c46591e0ab3db7fd32c01b1f86c39832ee9f0c80\n\nGCD = 6612ba2c\nA = 0\nB = 6612ba2c\nLCM = 0\n\nGCD = 6612ba2c\nA = 6612ba2c\nB = 0\nLCM = 0\n\nGCD = 6612ba2c\nA = 6612ba2c\nB = 6612ba2c\nLCM = 6612ba2c\n\nGCD = 2272525aa08ccb20\nA = 11b9e23001e7446f6483fc9977140d91c3d82568dabb1f043a5620544fc3dda233b51009274cdb004fdff3f5c4267d34181d543d913553b6bdb11ce2a9392365fec8f9a3797e1200\nB = 11295529342bfb795f0611d03afb873c70bd16322b2cf9483f357f723b5b19f796a6206cf3ae3982daaeafcd9a68f0ce3355a7eba3fe4e743683709a2dd4b2ff46158bd99ff4d5a0\nLCM = 8d4cbf00d02f6adbaa70484bcd42ea932000843dcb667c69b75142426255f79b6c3b6bf22572597100c06c3277e40bf60c14c1f4a6822d86167812038cf1eefec2b0b19981ad99ad3125ff4a455a4a8344cbc609e1b3a173533db432bd717c72be25e05ed488d3970e7ed17a46353c5e0d91c8428d2fec7a93210759589df042cab028f545e3a00\n\nGCD = 3480bf145713d56f9\nA = 8cf8ef1d4f216c6bcec673208fd93b7561b0eb8303af57113edc5c6ff4e1eeae9ddc3112b943d947653ba2179b7f63505465126d88ad0a0a15b682f5c89aa4a2a51c768cd9fdeaa9\nB = a6fd114023e7d79017c552a9051ca827f3ffa9f31e2ee9d78f8408967064fcdc9466e95cc8fac9a4fa88248987caf7cf57af58400d27abd60d9b79d2fe03fad76b879eceb504d7f\nLCM = 1c05eee73a4f0db210a9007f94a5af88c1cdd2cba456061fd41de1e746d836fa4e0e", - "972812842e0f44f10a61505f5d55760c48ba0d06af78bb6bde7da8b0080b29f82b1161e9c0b5458e05ac090b00f4d78b1cc10cf065124ba610e3acab092a36fe408525e21c0ddc7c9696ed4e48bd2f70423deecfe62cecc865c6088f265da0e5961d3f3a84f\n\nGCD = 917e74ae941fcaae\nA = 652f8a92d96cbf0a309629011d0fbaceb1266bc2e8243d9e494eead4cf7100c661b537a8bea93dec88cfc68597d88a976c125c3b4de19aba38d4ea9578202e59848d42652518348a\nB = 32e07b71979d57e8344e97c39680a61e07d692d824ae26b682156890792d8a766ee29a4968f461aaced5bf049044fba2f4120b1c1f05985676f975d4582e9e82750d73c532cd07b2\nLCM = 23620c7b897dc26c7717e32f3517ac70bf09fbe08f7255ab010cf4cf946f4e96304c425043452c5d5a0e841d3a3cfd9c2d84d9256f3b5974fe3ebfa9255fe20a710d3e6511606c0d85970381101c7f4986d65ad6a73a71507f146b11f903043cfa805cc0b14d4f3072da98bf22282f7762040406c02d5b3ef9e7587f63bab8b29c61d8e30911aa96\n\nGCD = 2b9adc82005b2697\nA = 19764a84f46045ef1bca571d3cbf49b4545998e64d2e564cc343a53bc7a0bcfbe0baa5383f2b346e224eb9ce1137d9a4f79e8e19f946a493ff08c9b423574d56cbe053155177c37\nB = 1bbd489ad2ab825885cdac571a95ab4924e7446ce06c0f77cf29666a1e20ed5d9bc65e4102e11131d824acad1592075e13024e11f12f8210d86ab52aa60deb250b3930aabd960e5a\nLCM = 1032a0c5fffc0425e6478185db0e5985c645dd929c7ebfeb5c1ee12ee3d7b842cfab8c9aa7ff3131ac41d4988fb928c0073103cea6bb2cc39808f1b0ad79a6d080eac5a0fc6e3853d43f903729549e03dba0a4405500e0096b9c8e00510c1852982baec441ed94efb80a78ed28ed526d055ad34751b831b8749b7c19728bf229357cc5e17eb8e1a\n\nGCD = 8d9d4f30773c4edf\nA = 0\nB = 8d9d4f30773c4edf\nLCM = 0\n\nGCD = 8d9d4f30773c4edf\nA = 8d9d4f30773c4edf\nB = 0\nLCM = 0\n\nGCD = 8d9d4f30773c4edf\nA = 8d9d4f30773c4edf\nB = 8d9d4f30773c4edf\nLCM = 8d9d4f30773c4edf\n\nGCD = 6ebd8eafb9a957a6c3d3d5016be604f9624b0debf04d19cdabccf3612bbd59e00\nA = 34dc66a0ffd5b8b5e0ffc858dfc4655753e59247c4f82a4d2543b1f7bb7be0e24d2bbf27bb0b2b7e56ee22b29bbde7baf0d7bfb96331e27ba029de9ffdff7bdb7dc4da836d0e58a0829367ec84ea256833fd4fe1456ad4dd920557a345e12000\nB = 1f3406a20e20ebf96ccb765f898889a19b7636608fd7dc7c212607b641399543f71111d60e42989de01eaa6ff19a86ea8fbde1a3d368c0d86dc899e8e250fc764090f337958ca493119cbb4ad70cbfae7097d06d4f90ec62fbdd3f0a4496e600\nLCM = ee502c50e3667946e9089d0a9a0382e7fd0b75a17db23b56a0eec997a112c4dbd56d188808f76fe90451e5605550c9559ef14a95014c6eb97e9c1c659b98515c41470142843de60f72fb4c235faa55b0a97d943221003d44e2c28928f0b84bf071256254897ed31a7fd8d174fc962bc1311f67900ac3abcad83a28e259812f1ee229511ab1d82d41f5add34693ba7519babd52eb4ec9de31581f5f2e40a000\n\nGCD = ef7399b217fc6a62b90461e58a44b22e5280d480b148ec4e3b4d106583f8e428\nA = 7025e2fe5f00aec73d90f5ad80d99ca873f71997d58e59937423a5e6ddeb5e1925ed2fd2c36a5a9fc560c9023d6332c5d8a4b333d3315ed419d60b2f98ccf28bbf5bf539284fd070d2690aeaac747a3d6384ee6450903a64c3017de33c969c98\nB = df0ac41dbabce1deeb0bceb1b65b1079850052ecf6534d0cff84a5a7fb5e63baee028d240f4419925154b96eaa69e8fbb1aae5102db7916234f290aa60c5d7e69406f02aeea9fe9384afbff7d878c9ac87cd31f7c35dff243b1441e09baff478\nLCM = 687669343f5208a6b2bb2e2efcac41ec467a438fde288cc5ef7157d130139ba65db9eb53e86a30c870bd769c0e0ab15a50f656cd9626621ae68d85eaff491b98da3ea5812062e4145af11ea5e1da457084911961ef2cd2ac45715f885ba94b4082aa76ffd1f32461f47c845b229d350bf36514c5ce3a7c782418746be342eca2721346ade73a59475f178c4f2448e1326110f5d26a0fef1a7a0c9288489e4dc8\n\nGCD = 84b917557acf24dff70cb282a07fc52548b6fbbe96ca8c46d0397c8e44d30573\nA = 81dbb771713342b33912b03f08649fb2506874b96125a1ac712bc94bfd09b679db7327a824f0a5837046f58af3a8365c89e06ff4d48784f60086a99816e0065a5f6f0f49066b0ff4c972a6b837b63373ca4bb04dcc21e5effb6dfe38271cb0fa\nB = 1da91553c0a2217442f1c502a437bb14d8c385aa595db47b23a97b53927b4493dd19f1bc8baf145bc10052394243089a7b88d19b6f106e64a5ab34acad94538ab504d1c8ebf22ac42048bbd1d4b0294a2e12c09fe2a3bd92756ba7578cb34b39\nLCM = 1d0530f8142754d1ee0249b0c3968d0ae7570e37dadbe4824ab966d655abf04cd6de5eb700eba89d8352dec3ae51f2a10267c32fbd39b788c7c5047fe69da3d7ad505435a6212f44899ba7e983bb780f62bcdee6f94b7dba8af7070a4cc008f351ae8be4579bc4a2e5c659ce000ad9c8cdc83723b32c96aeb0f5f4127f6347353d05525f559a8543cd389ad0af6f9d08a75b8c0b32419c097e6efe8746aee92e\n\nGCD = 66091477ea3b37f115038095814605896e845b20259a772f09405a8818f644aa\nA = cedac27069a68edfd49bd5a859173c8e318ba8be65673d9d2ba13c717568754ed9cbc10bb6c32da3b7238cff8c1352d6325668fd21b4e82620c2e75ee0c4b1aff6fb1e9b948bbdb1af83cecdf356299b50543b72f801b6a58444b176e4369e0\nB = 5f64ca1ba481f42c4c9cf1ffa0e515b52aa9d69ceb97c4a2897f2e9fa87f72bae56ee6c5227f354304994c6a5cc742d9f09b2c058521975f69ca5835bce898cf22b28457cd7e28870df14e663bb46c9be8f6662f4ff34d5c4ae17a888eba504e\nLCM = c163cb28642e19a40aa77887c63180c2c49fc10cda98f6f929c8131752ea30b5283a814a81681b69b9d1762e6c1a9db85f480bc17f998d235fd7e64c1caa70ef170c9e816d3e80f516b29f2c80cfb68bf208b4d5082ef078da4314b3f20c7d6c54b0aeb378096b029a7b61c0a4cd14aeddc01004c53915a4f692d2291752e5af46b23d7fa6dd61f2d56c6f4bf8e6119688abac8fd7aba80e846a7764bb3fca0\n\nGCD = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nA = 0\nB = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nLCM = 0\n\nGCD = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nA = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nB = 0\nLCM = 0\n\nGCD = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nA = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nB = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nLCM = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\n\nGCD = 120451d8307219aa0c96f328ad653ccd462e92423ca93ed8a3dde45bf5cb9b13cdaf9800e4d05dd71c4db6a129fb3280ee4ec96ec5297d881c1a8b5efccbd91fef21f5c5bf5fba42a4c8eaa358f620a074b7a17054527bdaa58d5acaa0dfdc48ecba1a10ebf4d57bb4215de406e6be13fed3fe493b1cd1e2d11a8d4ac03c47756\nA = 3f8179a8e1f0b342475a855c3e1bae402dd41424cf24a0b4d2e263c8efb08bde7d92eae8607fb5e88b1378f0f1bd0733f229a35be6b1383a48d32749d5d6b32427d26323b7ab05bb5781289e96bfbc21971439319b15f6c0fe93fdb35d0b67ec41443c59a081dd3cef047ac797fccb45bece84c0bb0bb7e1797259526d8ec9cc63ba4d32cfc692ccd3d243cb2b53ac216312f3a8e8c0daa09d21b6150d697639a5e52059414a417c607be8ec0eee2e708219cadbaf37a369c4485b01ed87bbc2\nB = 2c474e396a2dd9cd10b9d7313f69d3b4ca123e9fd853edd488339236d14c56453a1381958864a04d2624e81995dabcdd0ccf60db9917813f887de68da075d0ea4440001e18f470e43b38ee3440b49be651d709fbdef980e3e4149913f4ae2681124f54523f4881376ddb533b5219e804cc26f4c2e577be4e02613c4da80ba1215775b0a5178a965ad47bd2befb32493943ded1004ef66347b4983f8d1ba990d4a943505dfce6debcfb322842ed88106cd6dee9aa592ff0d2274bc727a6e1f14c\nLCM = 9c129cf649555bfd2d3d9c64dc6d6f022295e53bca5d2f218adaa66aa60eb4694429b7e83bf81b6df4459c5104023ab9a33f006ffcd8114507baa17e2ef6fe23ebdd4740f66879033da2041f2cb7ba517ad3526ffe75614ea9432c085f71b2d65a736bac7ba42b639e330b82733372083843dcb78b6a273ab20e0d4b7c8998a14048aa15bb20a0a0bd997917107274c89b4cec175fb98043d52e6c555bd9e0036566d052a6d4e7e276d1e8835e1f06e3ca46d47747ba586e95fb1a790d992834b7c3e136141eb8a434e6c12067246ac3c0a81c69e03b1ed28aa0b3173d6eff83d278c2f461a47a416f3f9a5dae3bb410fd18817bd4115e7f1e84b936cc02364\n\nGCD = 95aa569a2c76854300d7660847dd20fe0b8c445fdbcaa98465cee61aee76ad6a438e75a8c573198570ffb62bc07ec3a2be0ae0a1f631670fa88d6f75f3161e8b9a4d44b6801ffc884c7f469c5ed1f27b1edecce9f2977f9e92d1a3b230492fea7e6f2af739dc158a7fbd29856cbedb57b4119e64b27ab09eb1c2df01507d6e7fd\nA = 4c653b5bfec44e9be100c064dffe5d8cd59b0cf4cc56b03eabb4ef87cfda6506c9a756b811907fe9d8b783eb7a0b9e129773bf1da365ddb488d27b16fb983e89345d1ccdb4f06a67a11925c3f266373be5d7b0075189c6f3c2157e2da197058fe0a7bcc50adc34e99e254a29abbe2d5948d3157e1b0c3fca3d641760f7b9862843b63abef0b3d83fd486f4526b30382fda355575da30e9a106718a3921774c4d69f5311f8d737fe618f5236b4763fe1b2ee7f13184db67367d3903c535ff6d7b\nB = 2dcca83c99a28e9fd2f84e78973699baf2f04fd454094730948b22477834a0064817b86e0835e6d7b26e5b0b1dcf4ad91a07ac0780d6522df1fcac758cf5db6c2a5623d7c0f1afefd5718f7b6de639867d07a9ec525991304e9355d1635104bea837f74758d6aa2aab4e4afbb606af1d98de7417505e4710cd0589bdff9a0bf38a857cc59a5f1781043e694fc2337fd84bdeb28b13a222bb09328a81ec409ad586e74236393d27398cc24d412135e34247c589149e134b97f4bd538ac9a3424b\nLCM = 1760c0b0066aa0695767099e87e9388729ea89b8e8c36bddcd04d257591e741613c07b0e69447c0a468c33a745084171e06523d987d8db40a1433bf435325e8a724a0876503b34495170ff3671d42117a2e4f3a75b1d9dd809a34fa0fb26fe50d84f80a9b02e40190e5", - "efb927a5a61a03f13edbce2e666af6c3a2a9bcb84e47e3090008753ff27c4b8cf06480f471379a93f5230923623a83b286b71a555cd5e5347282f664ed90b14b2c4de84a70375e488211a7b3931119ef3bbe029b712389fe784818a0bf29d80733ce9cc940c547aa1eb3f06d492eb676bf37802283c82ce76156dfaab5c2d5107e08062681b5fa169f6eb68e1ab8bd9b2005e90bd4fd\n\nGCD = 244b9b1290cf5b4ba2f810574c050651489f2d3a2b03e702b76ebfaf4e33de9bbe5da24c919e68d3a72eadd35982b3a89c6b18b38ff7082ac65263e52b6ec75a5717b971c98257b194c828bff0216a99536603b41a396ea2fb50f5ea7cf3edf10bb0d039123e78593ae9ffcbbba02e51e038533e83b6bc73c70551d6467f39809\nA = 41a0b1310669500681cdf888836f6c556758750f562d743ac780dd4c0d161856380e44fdbb1f8a2786bf45be6b0e7f1cb2cd85f6b9e50acc72793d92383c7d7fb796fc74d32e8fac8225bdc19ae47546d9c9c75f5f06ca684f07daccaf89ccf2cddeb7ec255d530c7dd1e71daf44cafdc9d30fbcb1cbaefae3480585f79f4177e3834a5bc91845e2e8cd8aeb27f484e5e5b2c3c076dbb6c23e91303f0a0fdde83cd33a8ea6ed1549e727b4d766c1017c169710fd98e1585d60f66e121f9180b3\nB = 251f5aeaa60b3959285f49540cdaf8e21451110bbddb9933bbbcaea3112f4eb45e435a3ba37c52d2ab79ce997a8f6c829b3aa561f2852924b8effb52396d09d2bf257ebb4fb56c7aa25648f69b06d2cd01e876c9f9c0679de9e6fffa79eb7e603723e5af7de46ee405a5a079229577b5b6fffb8d43e391fe6f4eb89638e64d6eff8026249aaa355a91625eb0bfd14caa81e4c3586aaa2e94fde143a44f223a91e226661d12f55dfcdb4215e5a64e14e968005733be6a71c465de312ca109b34a\nLCM = 431f918b274f3e43f446e4e85567883d6536a0332db662cef088f5a36b0f4b68372048174ba10fee94b9f8f1c2e189c974be2e6e8ae8e2ae108445326d40f63e38d8d4e2e46174589a3cbc9583e0036dc8146e79eee9e96f4436313b3f143dd0f5aceab05243def7f915169c360f55ef123977cf623c5ba432c3259c62fb5e37d5adab0f24b825aa4ada99ec4e83e9ca4698399e1ed633091ce5f9844c540a642cd264201116ed4168aa2105a5159f5df064f845830c469140f766c7319052ce59bd1ad7c3f2d8c30e54f147f6aeb5586c70c984302ba18d854a60aec01b394c7d66fa33fe18fe4a8cfb3238df219294e6e42190a30d28b10049a1b75853a4e\n\nGCD = 206695d52bc391a4db61bf8cb6ea96188333a9c78f477ee76976c2346dad682cf56ca6f176d86ef67d41ff5921b6162b0eca52359975872430dd14c45643eacdf028d830770714c033fd150669705851b2f02de932322d271d565d26768530c3f6cb84f0b3356f970b9070b26c050ead0417152c324c8ffe266d4e8b5b7bef3a\nA = 1114eb9f1a9d5947eb1399e57f5c980833489685023ed2fe537fe1276c1e026b9a19e6fff55aa889d6c4e977b6e6f3111e2ad463138637b50f42cf32e57d83f282de9e72f813e5969195159a666d74dcd689bd527c60199ae327f7bd548ac36868fea5fdf6f35d19b921e7c10b6448ca480de6826478cd0642d72f05af3f8e65ce42409fbd49f56e81946e89c8e83962c4edc0ed54600600a305e52d081aed3c351e450e11f8fb0ce5754c92cf765b71393b2b7a89c95df79b9ea1b3cb600862\nB = 1d8f3179ca7b5cc7119360c10de939ffa57c9043da2f2b0ca3009c9bdad9f19ed16e3c2c197bef4b527fa1bf2bbab98b77e26c329911db68bd63d3d0fbfc727a977395b9ad067106de3094d68e097830858c5ccfa505fc25e972bdee6f347e7d1163efacd3d29a791ec2a94ffeed467884ae04896efc5e7e5f43d8d76c147e3c9951a1999173bc4e5767d51268b92cc68487ba1295372143b538711e0a62bf0ac111cc750ca4dd6c318c9cbe106d7fc492261404b86a1ba728e2d25b1976dc42\nLCM = f9570211f694141bfb096560551080cbe02a80271b4505591aaea9e3b99ea1d5ac1c1f2378fd72799e117ac2a73381b1ad26314e39972164d93971479ee3ba21a4d98cef0bd299d540ce5826995dcee0de420dff73d30b23cbf3188c625c7696df517535bc5675d71faa00807efbebdca547933f4a37849d1c014484a77da6df0670c4974bcc91eb5f5fe5faf9dd095ef195ec32ad9eeebf0e63288b4032ed9e70b888afc642f4ff96f0b4c0a68787301c12e4527fe79bdfe72dd3844ab5e094a9295df6616f24d1b9eeebc2116177dacf91969dda73667bc421ef3ccd8d5c23dddc283f5d36568d31f2654926be67f78e181075bdc148f2b39c630b141ae8a\n\nGCD = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nA = 0\nB = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nLCM = 0\n\nGCD = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nA = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nB = 0\nLCM = 0\n\nGCD = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nA = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nB = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nLCM = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\n\nGCD = 2\nA = 14e95a85e59ade9ef39e2f400c65db18702fa5fc485b9bba479a5282b2206129160e54f73ef4917983c17b4c5ebff7be112a886de069706eee29ba902515cb038\nB = ddcfff1d39c90c599f55495bf71c1e7597c6b08b7430707f360c6a6e5137bbc7b403c6d9e2c34f3d2f29d5d32b869346853c2de239cc35381bdfb4a01569211a\nLCM = 90f38564ee72e55d362c04599e7d74f068c75f541b84e97abba2841f1a9f66b06b5c9009f6a4c2e319fced85270588de03ccebddbd9279aaecb13bdc1dbea7f42acaee751cb7da83779b8785cc86f41b94b13b54964208ca287d981634778d1096f20e76ca636c0717fd27e0800c43f599a5eded807421b502eaf9990a8c8ed8\n\nGCD = 4\nA = 3c719c1c363cdeb7b57c2aabb71f425da4c3e6d3e447204d555e7cf0f3d372bdda906f36078045044978dafc20171767c8b1464d52dfdf3e2ba8a4906da033a8\nB = 30fe0ef151ac51404e128c064d836b191921769dc02d9b09889ed40eb68d15bfdd2edea33580a1a4d7dcee918fefd5c776cbe80ca6131aa080d3989b5e77e1b24\nLCM = 2e4526157bbd765b0486d90bcd4728f890bc6dbd9a855c67ca5cb2d6b48f8e74e1d99485999e04b193afca58dbf282610185d6c0272007744ff26e00dbdc813929b47940b137dc56ba974da07d54a1c50ec4a5c2b26e83f47cf17f4ccce8c3687e8d1e91d7c491a599f3d057c73473723ce9eee52c20fe8ae1595447552a7ee8\n\nGCD = 10\nA = 44e04071d09119ea9783a53df35de4a989200133bb20280fdca6003d3ca63fdd9350ad1a1673d444d2f7c7be639824681643ec4f77535c626bd3ee8fa100e0bb0\nB = ca927a5a3124ce89accd6ac41a8441d352a5d42feb7f62687a5ebc0e181cc2679888ecc2d38516bdc3b3443550efccac81e53044ae9341ecace2598fe5ce67780\nLCM = 36805ba9b2412a0cb3fe4ed9bdabfa55515c9d615a3d0af268c45c5f6098d2de4a583f3791f1e3883c55d51ce23c5658fd0e8faa9a3709a1cfbd6a61dbab861690f27c86664f084c86cfd4a183b24aaadf59a6f8cbec04f1b0ded8a59b188cb46ae920052e3e099a570540dbc00f7d4a571eef08aa70d2d189a1804bf04e94a80\n\nGCD = 100\nA = 73725032b214a677687c811031555b0c51c1703f10d59b97a4d732b7feaec5726cb3882193419d3f057583b2bc02b297d76bb689977936febaae92638fdfc46a00\nB = 979f4c10f4dc60ad15068cedd62ff0ab293aeaa1d6935763aed41fe3e445de2e366e8661eadf345201529310f4b805c5800b99f351fddab95d7f313e3bb429d900\nLCM = 4460439b4be72f533e9c7232f7e99c48328b457969364c951868ceab56cb2cbbeda8be2e8e3cae45c0758048468b841fdb246b2086d19b59d17b389333166ab82ed785860620d53c44f7aaaff4625ee70fb8072df10fb4d1acb142eadc02978ff2bb07cea9f434e35424b3323a7bda3a1a57aa60c75e49ebb2f59fb653aa77da00\n\nGCD = 100000000\nA = f8b4f19e09f5862d79fb2931c4d616a1b8e0dd44781ca52902c8035166c8fca52d33a56ff484c365ec1257de7fa8ed2786163cfc051d5223b4aad859a049e8ba00000000\nB = 6e54cb41b454b080e68a2c3dd0fa79f516eb80239af2be8250ca9cd377ba501aabafc09146fad4402bdc7a49f2c3eec815e25f4c0a223f58e36709eefd92410500000000\nLCM = 6b3020a880ddeff9d17d3dc234da8771962de3322cd15ba7b1e4b1dd4a6a2a802a16c49653865c6fdf6c207cbe0940f8d81ef4cb0e159385fd709d515ee99d109ad9ad680031cbae4eab2ed62944babdade4e3036426", - "b18920022f737897c7d751dce98d626cdda761fec48ad87a377fb70f97a0a15aa3d10d865785719cc5a200000000\n", + "M with a \"correct top\" isn't the right length for RSAZ.\nModExp = 1\nA = -b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d964\nE = 61803d4973ae68cfb2ba6770dbed70d36760fa42c01a16d1482eacf0d01adf7a917bc86ece58a73b920295c1291b90f49167ef856ecad149330e1fd49ec71392fb62d47270b53e6d4f3c8f044b80a5736753364896932abc6d872c4c5e135d1edb200597a93ceb262ff6c99079177cd10808b9ed20c8cd7352d80ac7f6963103\nM = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\n\n# A == M, so A == 0 (mod M) so A ^ E (mod M) == 0. Note that A mod M with a \"correct top\" isn't the right length for RSAZ.\nModExp = 0\nA = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\nE = 61803d4973ae68cfb2ba6770dbed70d36760fa42c01a16d1482eacf0d01adf7a917bc86ece58a73b920295c1291b90f49167ef856ecad149330e1fd49ec71392fb62d47270b53e6d4f3c8f044b80a5736753364896932abc6d872c4c5e135d1edb200597a93ceb262ff6c99079177cd10808b9ed20c8cd7352d80ac7f6963103\nM = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\n\n# A is negative, and A (mod M) is the right length for RSAZ.\nModExp = 9cf810b9e89d5cbc4b79ae64e123ea06d92965e2bab077df97a1b906dc2e1ddcf96a9c4ed14e2cd96309b829ea9cc2a74a7d4b43c5f34d792a7c583201427754b8f78b783608070a84b61f18913e3ced7f7f530972de7764667c54e29d756eea38a93cd1703c676a4587231b0ebfeadddf908e2877a7a84b5bfc370ecf0d158d\nA = -8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nE = 61803d4973ae68cfb2ba6770dbed70d36760fa42c01a16d1482eacf0d01adf7a917bc86ece58a73b920295c1291b90f49167ef856ecad149330e1fd49ec71392fb62d47270b53e6d4f3c8f044b80a5736753364896932abc6d872c4c5e135d1edb200597a93ceb262ff6c99079177cd10808b9ed20c8cd7352d80ac7f6963103\nM = b5d257b2c50b050d42f0852eff5cfa2571157c500cd0bd9aa0b2ccdd89c531c9609d520eb81d928fb52b06da25dc713561aa0bd365ee56db9e62ac6787a85936990f44438363560f7af9e0c16f378e5b83f658252390d849401817624da97ec613a1b855fd901847352f434a777e4e32af0cb4033c7547fb6437d067fcd3d965\n\n# Regression test for CVE-2017-3738.\nModExp = d360792bd8210786607817c3dda64cc38c8d0f25569597cb1f363c7919a0c3587baff01a2283edaeb04fc288ac0ab3f279b2a89ffcb452d8bdf72422a9f9780f4aa702dc964cf033149d3a339883062cab8564aebdbfac0bf68985e522c6fe545b346044690c525ca85d3f4eb3e3c25cdf541545afc84a309e9b1d7807003461\nA = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2020202020df\nE = 2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020FF2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020\nM = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2020202020ff\n\n# Test vectors for CVE-2019-1551. (We do not carry the assembly file with the\n# bug, but we use the test vectors anyway.)\n\n# Original test vectors by OSS-Fuzz.\nModExp = 9d675d188a07e9bd1b32638cc8cfd5002ef89bd1a9648f806567b87939140a67977dc8da17323b8e4c6bc53875cda8b656df8f54cc32e44fd9c21d122ea3c0d6\nA = dea9b3e0b44ae67b2ac9b7c2b18eeb4dab206b014981a46ac409f195eeb6896f132cf8497c87d1188008ee511054ebb426203355b7d515dce9501cb759ac1373\nE = b01ae745b101e9e45ec05dcff72e7f8fc04c79ffe324301fda0b4f7be81d85c4e875c73fc6c5cb40000000000000000000000000000000000\nM = ffffffff01ffffffffffffffffffffffffffe2000000000000000000000000000010fab8d960706cd4c21818115650cad61d4f10da325dffffffff00ffff00ff\n\nModExp = 651f811b62ee8770e3598c340864dd6b0be9bb6376b6f933ab216fd55538e6ad1000cb2b3c64f54d554e004b6eec8138e6ecff00452d443a42041b72e6cd9ead\nA = 3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e\nE = 3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e09003e3e3e3e3e3e3e3e3e3e3e3e3e3e010900230a01230a2100ffffff0000adf300a58700000000ffffff00\nM = ffffff0b00000000000000000000000000ffffffff0000ffffffff00000a0000000a00000000000000000000ffffffff000000000000ffffffffffff000000ff\n\n# Test vectors for rsaz_512_sqr bug, with rcx/rbx=1\n\n# between first and second iteration\nModExp = 1\nA = 624e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a14ce297f2873536f959d8c3390d973b6\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between second and third iteration\nModExp = 1\nA = 11024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a14ce297f2873536f959d8c3390d97360800000000000000f\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between third and fourth iteration\nModExp = 1\nA = 4171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a171024e6a14ce297f2873536f959d8c3390d9736080000000000000000000000000000039\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between fourth and fifth iteration\nModExp = 1\nA = 6a171024e6a171024e6a171024e6a171024e6a171024e6a14ce297f2873536f959d8c3390d97360800000000000000000000000000000000000000000000006\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between fifth and sixth iteration\nModExp = 1\nA = 44e6a171024e6a171024e6a171024e6a14ce297f2873536f959d8c3390d97360800000000000000000000000000000000000000000000000000000000000003c\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between sixth and seventh iteration\nModExp = 1\nA = 1024e6a171024e6a14ce297f2873536f959d8c3390d973608000000000000000000000000000000000000000000000000000000000000000000000000000000e\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between seventh and eighth iteration\nModExp = 1\nA = 626eee5e3c8653be47ed15e84b97cc7f800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000187\nE = c0000000000000000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000002f8\nM = c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f9\n\n# Test vectors for rsaz_512_srq bug, with rcx/rbx=2\n\n# between first and second iteration\nModExp = 1\nA = 3c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c4093995e8efdb195e8efd8caf477ed8caf7c\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between second and third iteration\nModExp = 1\nA = 485c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c4093995e8efdb195e8efd8caf477ed8caf47800000000000003f\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between third and forth iteration\nModExp = 1\nA = 59a85c40939a85c40939a85c40939a85c40939a85c40939a85c40939a85c4093995e8efdb195e8efd8caf477ed8caf478000000000000000000000000000004e\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between forth and fifth iteration\nModExp = 1\nA = 2939a85c40939a85c40939a85c40939a85c40939a85c4093995e8efdb195e8efd8caf477ed8caf47800000000000000000000000000000000000000000000024\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between fifth and sixth iteration\nModExp = 1\nA = 640939a85c40939a85c40939a85c4093995e8efdb195e8efd8caf477ed8caf478000000000000000000000000000000000000000000000000000000000000057\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between sixth and seventh iteration\nModExp = 1\nA = 25c40939a85c4093995e8efdb195e8efd8caf477ed8caf4780000000000000000000000000000000000000000000000000000000000000000000000000000021\nE = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e\nM = 8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f\n\n# between seventh and eighth iteration\nModExp = 1\nA = 7b4919849931b28a14fcace213f2b3884fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84b6e67b66ce4d9c\nE = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000004c\nM = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000004d\n\n\n# Exp tests.\n#\n# These test vectors satisfy A ^ E = Exp.\n\nExp = aa6d7ac431\nA = d0e07\nE = 2\n\nExp = 12d416b110dbb4e467ff0c89a22122f4da8240\nA = 1a18cf6\nE = 6\n\nExp = 49a3b33e23d84f1ce0d5d83f5dcb651d50cf3920f0143da2310d0512a90a06cd8f38977df8a756c30883de38df092000\nA = 2a3acbd2\nE = d\n\nExp = 5b4a0d5a956f885f275712b194459980f24708bfb6393d71bd37dce852ce455724f5ee5030775fb86b4295edc98afaafc097e4d82a97c0078ec0eac763db16549c5145c4cf2d3124f88cf9a5c71da0625afb99b26801786fe49a778415dc025954021753d08691947a208b613f0be5c1\nA = 54b3ae461\nE = 1a\n\nExp = a0ea5f6a4de49beb8fb7f0dab280d6a32c5a3814c9a5153a7944cec0a9028497846a8a89044348721a0bb5f0c3ded3e980574ea321b0cdb0ead4f4e93841ea7478a7f15d9729b646a8165813a0750e8124f5465dda9b105e1bbeff18fd09c09a2e26610d9176d253b877c3a8908a6be521cbe1e472a7a1b7820e4e890f8f28aacd34609c686e76e15b01bd9324a71290812724ea564d11c874a6765b262c3e57d479da0287a76026a1e8fe53da0b02405da1d379eaa30fc65f\nA = fccec0f6df\nE = 25\n\n\n# ModSqrt tests.\n#\n# These test vectors satisfy ModSqrt * ModSqrt = A (mod P) with P a prime.\n# ModSqrt is in [0, (P-1)/2].\n\nModSqrt = 1\nA = 1\nP = 2\n\nModSqrt = 1\nA = 1\nP = 2\n\nModSqrt = 1\nA = 1\nP = 2\n\nModSqrt = 1\nA = -1\nP = 2\n\nModSqrt = 1\nA = -1\nP = 2\n\nModSqrt = 0\nA = 0\nP = 3\n\nModSqrt = 0\nA = -3\nP = 3\n\nModSqrt = 0\nA = -3\nP = 3\n\nModSqrt = 0\nA = 0\nP = 3\n\nModSqrt = 0\nA = 0\nP = 3\n\nModSqrt = 0\nA = 0\nP = 5\n\nModSqrt = 1\nA = -4\nP = 5\n\nModSqrt = 0\nA = -5\nP = 5\n\nModSqrt = 2\nA = 4\nP = 5\n\nModSqrt = 0\nA = -5\nP = 5\n\nModSqrt = 3\nA = -5\nP = 7\n\nModSqrt = 0\nA = 0\nP = 7\n\nModSqrt = 0\nA = 0\nP = 7\n\nModSqrt = 2\nA = 4\nP = 7\n\nModSqrt = 3\nA = -5\nP = 7\n\nModSqrt = 4\nA = 10\nP = b\n\nModSqrt = 0\nA = 0\nP = b\n\nModSqrt = 3\nA = -2\nP = b\n\nModSqrt = 3\nA = -2\nP = b\n\nModSqrt = 2\nA = 4\nP = b\n\nModSqrt = 2\nA = 1e\nP = d\n\nModSqrt = 2\nA = 1e\nP = d\n\nModSqrt = 0\nA = -d\nP = d\n\nModSqrt = 0\nA = -d\nP = d\n\nModSqrt = 3\nA = 9\nP = d\n\nModSqrt = 8\nA = d\nP = 11\n\nModSqrt = 6\nA = df\nP = 11\n\nModSqrt = 4\nA = 10\nP = 11\n\nModSqrt = 5\nA = 90\nP = 11\n\nModSqrt = 3\nA = 80\nP = 11\n\nModSqrt = 9\nA = -e\nP = 13\n\nModSqrt = 7\nA = 7d\nP = 13\n\nModSqrt = 6\nA = 37\nP = 13\n\nModSqrt = 1\nA = 1\nP = 13\n\nModSqrt = 8\nA = 1a\nP = 13\n\nModSqrt = 54d4cf0fafe265056a29016778cea6b712bc66a132fb5e6b6865e9b49e4c97ec\nA = 599c10484b22d0b5a115268c7538ca99b3253a311a4ab1ca11c3665b0bec393a1167d1ad94fb84cb2c7ad7e2c933e8f613bdd08fe1f1aa4a9b0b9de0c8a7c9d4\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 38a7365a15365e911286c1be2a7afe76ef390234d76269e04dee17313f6ea54d\nA = 1c4aabb4d8369710131c664ecf2849e963c1bc31d66e0b939bacf99a870c71f24ed71bdddcf566f3908271fee43fc1ebb51eac7e3153efae641b49d2e796a12a\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 35ab18a560dece04725667f640ca61d1d59f14d191f94c79f58531acd097d444\nA = 685168ae855d60eba220d803f5296459b30a289580668db9ed51bca51cc2d453a937e13819ae34f7a9a143ac96d17420c53919167e46279b562b550be1cd9abc\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 288370029e87024175e5bec0eab0929179f42e16995e7f6194eefc61061e54f4\nA = 2a14ab77c045bdc48220ba9c463e1a4b4049cb01edb53be0937767eb2ec19b7d719855052281250a36a0b76d9a5d967d0756e1ded7a052f7056191ad66bcfc9\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 32255cf01dc943577ec2bcb221b98491d7a1130d046d6c68e95fedff643ce3a4\nA = e26f6dd46a513a1dd3fb14b71be1d4c9e9d79eda1cde10ea4d1eb8abfd4d5857572205e247184dd0cbefa37b5c0bf680ba2bd28c5741f725cfe2aae37419baf\nP = cfc4ccae35458ab5be1a1bc0664188253301f8702af4f8fb19fed12de0c653b1\n\nModSqrt = 5172345e801ada63fbc4782e32583cc3b4fea88b9e6dfd542f3542f8538ade66\nA = 40dafa8342b302bb04b1f3ddb3b9015a8fc1b597857c115b40631c7be9e22de89358fca23b331596ee5ff304dad7811e6d8e8822f7aa533c9e7c882634ea550\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 4dcf63c423bf0e39aca2293d57f6792d023db649d6719fe936446904b9f7e60d\nA = 5bcdb514bbe84261e169203e8017909b60c9bb330400c766ee01b0189378e70e61867a164a12643ddc9e94b61e09e5b158cbe85be228a3cc48f95a552958b8f2\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = cf77c5c2d12a500b75cbfb1f3e66ee75d886b9365cf4f8b4d1bd18a6be0f387\nA = 4652ddc2ea7b460d8ec3c9059b8f9b5dae6cac55b51f2ad86fcb336b25235737965cc515e2ff0b54835015b7ebeeda6fadd986471d8cb424d309fc353d1e269\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 1e0549e4c5a26023e9d24fd8c67419960746f82b1ecd113bdac66f570a475d87\nA = 5f4a6d450ab1390d96ab1deaa0ba18f897cb63daf0c9e1ef6c08e804c26b5e842f6c08f13db5d4a6e88f07af2a3cb04fa06fc3e59c410b9356f025ed81acc74\nP = a6813d316f9aca30f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 144481a781d831c1ca046ca9e322d79ad4d2c6dd9f780bea9d1ced9cd20b7b23\nA = 4c254fabca441017132b9eacd4ca40a336db3e5c09715773fa07af095989a91cc968ff07a9ff56ed06b0ce0c5269f7b2ab68564ecab9f4467a7e96b6cc6b21b7\nP = a6813d316f9aca30", + "f98b4f864b8b4b8f51493af930bd4d3a1b205a710e99add3\n\nModSqrt = 216fecc7667f488a3d2d102a38b46b4860ab858300b8638af4f34e1103fd73ba\nA = 17878f8048227573a9d70f53c0e76ff13fe9f56e9c984c92514d3d13dec23c816661f0618d21371b80dfd885cb59551bdf80046f65f22ea9b89c78645a6e455a\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 458e5e789ccd2417174f7e30bb31914b9656bd8cf2b9f5a9752a8737a67707bc\nA = 5c7d39a4bb04e69201aa519f80ee7e62ea14ca55e13656d1da3f45367e2fb2d061aa2940708d02ac67d35cd2ccf54a1bf95bcbc759779e692cfdcbb3aa1a05b\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 543125a16c2bb8b8f8a2c39c497e5224ec77533602d7dbe24002e32dcbd2ef1a\nA = 3413afae333b2ad9ff45c7f3c7e5934b3127e8b1a55225958ee6ccf42423e81559bf070ad3f3353b78c0ffd41475af49f59d268ef78bdae879f5155e8d1cc07\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 10e16859c67bdb2eaab52a7c847dbf37162eda258a9f6262ebacfe4cbbbc1080\nA = 21ce7905894faf220bdf4a82a2d855994ca2dc9feaecaa53c7f146e1f49934215695e9bb46ba370b7005a90c399674caa8969eb442e7914d90f749774d7fd194\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 32a00586adc6f6cc2b1a04e1be0ab569fde235e1436c38b6af92bc5ebd60bc1c\nA = 350da4fd8cf03c12f7dd6ac6d3ab801a3413964083e374662aaf878d6838b97d4feb9e52cd307a25b113e101661a865463ee2480c626aa4e2ec437d72e7bae4c\nP = bd37c850cf7d702bac879f3c21a51a5a4df2b8eb0935861e0753a6eb62261a95\n\nModSqrt = 971f75bc7afa8b4b50f1d4b05e52deac7d4836a08d30546f29649bf1ca6a247\nA = 655ed4c5d8d0afb4f9360372ee1ef1303898d2423e585108a3303faedb55064d2ef25666ed4c4d71fe6063fea1f3142b435714b0e30b339dd791d347c884654\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 48fa882b7cb6a29de9e3769f72eb67f1efd4d2af56f0c7e410c610efcbce2065\nA = 14f3503f33b243800eac1defaab33e04c01e80163fb3efd03860970cc016832431ca4fc6d1b760f4f40166b0b8b3c40dbebc81460cc10890172243770338f090\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 236fd7e397ea7f8bc2a288eb7236ca41936fa702b7dccca56c8852e147511f7d\nA = 1bbd0980feac854782813bcde4da85e8a054549a1b515e065da4236528035e756882e29e762cf60453e375cca9dc6ff637f9558bf86646e3b928f68f82af7efe\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 693f0cbe8c81b0afde0cd2f83e53795dcae6b0cc4ba930ab5c752400d787f14\nA = 7b20f9664b23907e152ab8c9a907f72e8670c1c38ab4cd1411ea7c2159c09aa131afe068929b8e6ad1409b74c04975180d1cd0a9fa74e923c3fd451e8da2c34\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 4a086c50b0bad576501ddb6280743b2c9d247841eb7f14d90561432ff7dca6f0\nA = 4367431ec0cd0d7626538b93a090c30fe0c97c18ca03b97ddae304b619112b5b4d02bf0f041fa3fd673f9ef2ceb07eb2079d11c56dd903b1a87e8252a97b8079\nP = 9810151ad4bc9c5d68fc326395b509f2625bfebca1c3801ad4da7539fdbaa6f7\n\nModSqrt = 18f8433fa468d8065157708f1f1e53b8e31d39c6011fbc2bad93de1b5548e19c\nA = 739c032bb4139c199c40f548d37234298772e4ccb9d3ba28412b60ad23b4c465b0787e2382f1c5a4a87af2d20eb978b7dcbe73f2112249477d15c8a85e54a79\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 49e3c8eef5e067cabd51a7c01384ce05ab8f4342f655559d8a689eb7b20e0106\nA = 18400c2cc3e06b99b4e39c77b9af5ff0e9c683f1708321afa4cd5b6988d13b36b1d9eb4379b7902d9ceb40c03f814b2b6a01b90509bbb4532f13ab1571c4d04a\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 35548c530745f440329325cc8a5fbd90c16a7f0788879a4869bc4d4f73acda0e\nA = 181a3c5ab02566e7166c4d6d2f2bd4a8ecc25991a98d270bde80cf4332766a7068b14240bf5f5dcd45e90ef252596da3eb05b11d68b2063f7b3a825742593ca9\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 1ab7046e6af061ade5f9719008fa4d989007e2a579a134a5b9f19ec410984096\nA = 1008a03e211fab0d45856377079bc96b0776c2d4c0175661f3493246cea2ab0a02a706c85314fb707ad9906bedb2cfd577d62092ae08ff21d7b949373ea954c7\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 2be9e3e7515960d90f115b89f60dedc173a73ce163b4036e85b7b6a76fd90852\nA = 392053a9f0100540a8e1a0c353e922068a84dad3a4a8e8962fbc0bee2b6a06e20d08ade16eb1409a16acfcac3db5c43c421505e07035ca308b15c4a6db0864c0\nP = adcd56924f73836ebe4dccfe006ad3b1e5076562cd11b161642cab7af2284659\n\nModSqrt = 5b301bb93bdcf050183107e36258b53b4805918114ea1c2227b0911d5b4dc077\nA = 55e55e5f94dc3d7aabc921f6469d85fa2e1e92a87347c57afad5872306ae69f9fb99297d1e3e793dd9e8632244208154de5da7114fd876383bf1422f7ece024\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = 2df9609e2f5a5156c3260461b2ee52eacdef00bd8b091479813143a6c5283f71\nA = 2099325b7f12fe77353ddf3f2b2c5ef77b49671b150af954cf84e9675e3ecde3e057084641a633d19533b4712ab49924c8b5c31d591abcc88291f51253fa2a7\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = dfab751710e9008e25e422d1199d6fbec4dc7fba35b4da9d225a746eb4126a0\nA = c006af53d4737fb293584df6ffe2e4cb3fd8dc77fb7c1f13b97bb9c249e3ee5fb9feff7488265b3093906c08a4946f142ac7b491937d24bfba6413366ce371d\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = 26bc030008d6c60a09fb0e16093a649fcb40c6c21a8e2da2353ba4b07c4f85d5\nA = 1eaabcfad2ed349ac9356e6f4da0b301266ddde811cb0f817aba8f5c10fb8b8ba9d0ef2dd386b668f16eac296118fdb8cb7afe1b865648c81c2fa3cf21f2711b\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = 35051b1482ec2578f3dc0000a422cb5111e43c37f1ac20b1844d3de2128c4556\nA = 315ff9de178681116f2a5fa78eebf4818e1d680435eacdfaf9d0e5c4fc01fc034b352c82fd52c81ca30d68864952dacc99d08269c9dd7ca99ccf22da98c3840\nP = d43280ac150f725f4a2a1dceb1c79bcac57855a4eba72ae93762d09bcb2444fb\n\nModSqrt = a5474252885cacf004c460a7793ff0b0a2187bb1a9ed700ae3470199faef71f\nA = 19856fc1351c4b02abf573bb2fc6ff92355fa369d62bb8f2260fa772fb1693f509a56cad661930abcac049dd70f4b16bed4a4c172e73e772504c9990ce7f92f\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 12daf4722387ecf47de1b0b6b110a062dc5ea2685bc9dbde66b8d15622985029\nA = fb8479787069116abc42abfd7dc0c24d2ad04fe0c04b42a6dff714af715d17e0fd77855f950f264542b06d48e8818de813ddb7975798b7debefcdaa5ff86beb\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 397996ed5c0ac6ad32e43c337e9de421b87774cc162bf7ac7bbedf4a9029255e\nA = 5aa04353321bd2de92481be740357f979da464b53aa39111fdbb734cf7af6b3857d1baa08d3a126a3dd34a2fbae2bf2b84e900686c1d31505b390185acef5fe5\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 2cf4b844a54ba359dc592ef1b49f43fcfeae84d1087edfefdd0b9174b43c0a3c\nA = 365a8650510bcfd8fa87432f167cf487234c215857403b9270b5eebeafa48cd6da47fd60dc311b94d1d72baad0447c31f0b212d755f46c256e16e5e015e6546e\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 9277c73043ff767c3fa606f0cd66b9d854a600c8c18287f191ce277758c3f31\nA = 62cec3901626d03e8df66299a87c54b1f7a55cafc99f0b6bba1b5d51a3d2b7d2171c9135a9d8a5346d436e0136b12e515e703e3cd84ecfe154eb94c6772a6d72\nP = dc315fd52684fba79e577a204de9053b11a5d7a414263fec9eff6ff62188829d\n\nModSqrt = 4189e5a90c1b1abdc1c7c05b3587e6f362e06f927b6cf5f0d271aab3d6f90765\nA = 336b8d0f9dac842c696bc020f49c6aa023842c16f2052eb02f17959006554ca0012042c80c72590f21c6bf5a3714c9cb552aa69730e33db93a56a909b273f39\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = 36ccd38cb5a6bd8a73bca55936a2227c503664422c2296faf7e2b1c6a375a43a\nA = fecfd60a376befbe48d2c4f6d070d716d2f403cd5daefbce62b720df44deb605162c8f20f49fd7ec30d4f8e70d803d45b3a44b5d912baa3410d991165d7c507\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = 198fc8569be172dc9b71023ed3d42d2ba94bae4099643f6517ab03f540527fdb\nA = 65bebdb00a96fc814ec44b81f98b59fba3c30203928fa5214c51e0a97091645280c947b005847f239758482b9bfc45b066fde340d1fe32fc9c1bf02e1b2d0ec\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = 21b7f74c30ded681d6138cf8e6fd798f32a049e94138e982f1845df3dc9e686f\nA = 9a30b791c1ba4f394b4e3dcd5837e474237f4fe8987b255c098a47b2c14c598ec69d2beae444dd4fe9c4ede8173d2b187677cc706a3c28f3b81627d8a5fb6fd\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\nModSqrt = a1d52989f12f204d3d2167d9b1e6c8a6174c0c786a979a5952383b7b8bd186\nA = 2eee37cf06228a387788188", + "e650bc6d8a2ff402931443f69156a29155eca07dcb45f3aac238d92943c0c25c896098716baa433f25bd696a142f5a69d5d937e81\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\n\n# NotModSquare tests.\n#\n# These test vectors are such that NotModSquare is not a square modulo P.\n\nNotModSquare = 03\nP = 07\n\nNotModSquare = 05\nP = 07\n\nNotModSquare = 06\nP = 07\n\nNotModSquare = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951e\nP = 9df9d6cc20b8540411af4e5357ef2b0353cb1f2ab5ffc3e246b41c32f71e951f\n\n\n# ModInv tests.\n#\n# These test vectors satisfy ModInv * A = 1 (mod M) and 0 <= ModInv < M.\n\nModInv = 00\nA = 00\nM = 01\n\nModInv = 00\nA = 01\nM = 01\n\nModInv = 00\nA = 02\nM = 01\n\nModInv = 00\nA = 03\nM = 01\n\nModInv = 64\nA = 54\nM = e3\n\nModInv = 13\nA = 2b\nM = 30\n\nModInv = 2f\nA = 30\nM = 37\n\nModInv = 4\nA = 13\nM = 4b\n\nModInv = 1c47\nA = cd4\nM = 6a21\n\nModInv = 2b97\nA = 8e7\nM = 49c0\n\nModInv = 29b9\nA = fcb\nM = 3092\n\nModInv = a83\nA = 14bf\nM = 41ae\n\nModInv = 18f15fe1\nA = 11b5d53e\nM = 322e92a1\n\nModInv = 32f9453b\nA = 8af6df6\nM = 33d45eb7\n\nModInv = d696369\nA = c5f89dd5\nM = fc09c17c\n\nModInv = 622839d8\nA = 60c2526\nM = 74200493\n\nModInv = fb5a8aee7bbc4ef\nA = 24ebd835a70be4e2\nM = 9c7256574e0c5e93\n\nModInv = 846bc225402419c\nA = 23026003ab1fbdb\nM = 1683cbe32779c59b\n\nModInv = 5ff84f63a78982f9\nA = 4a2420dc733e1a0f\nM = a73c6bfabefa09e6\n\nModInv = 133e74d28ef42b43\nA = 2e9511ae29cdd41\nM = 15234df99f19fcda\n\nModInv = 46ae1fabe9521e4b99b198fc8439609023aa69be2247c0d1e27c2a0ea332f9c5\nA = 6331fec5f01014046788c919ed50dc86ac7a80c085f1b6f645dd179c0f0dc9cd\nM = 8ef409de82318259a8655a39293b1e762fa2cc7e0aeb4c59713a1e1fff6af640\n\nModInv = 444ccea3a7b21677dd294d34de53cc8a5b51e69b37782310a00fc6bcc975709b\nA = 679280bd880994c08322143a4ea8a0825d0466fda1bb6b3eb86fc8e90747512b\nM = e4fecab84b365c63a0dab4244ce3f921a9c87ec64d69a2031939f55782e99a2e\n\nModInv = 1ac7d7a03ceec5f690f567c9d61bf3469c078285bcc5cf00ac944596e887ca17\nA = 1593ef32d9c784f5091bdff952f5c5f592a3aed6ba8ea865efa6d7df87be1805\nM = 1e276882f90c95e0c1976eb079f97af075445b1361c02018d6bd7191162e67b2\n\nModInv = 639108b90dfe946f498be21303058413bbb0e59d0bd6a6115788705abd0666d6\nA = 9258d6238e4923d120b2d1033573ffcac691526ad0842a3b174dccdbb79887bd\nM = ce62909c39371d463aaba3d4b72ea6da49cb9b529e39e1972ef3ccd9a66fe08f\n\nModInv = aebde7654cb17833a106231c4b9e2f519140e85faee1bfb4192830f03f385e773c0f4767e93e874ffdc3b7a6b7e6a710e5619901c739ee8760a26128e8c91ef8cf761d0e505d8b28ae078d17e6071c372893bb7b72538e518ebc57efa70b7615e406756c49729b7c6e74f84aed7a316b6fa748ff4b9f143129d29dad1bff98bb\nA = a29dacaf5487d354280fdd2745b9ace4cd50f2bde41d0ee529bf26a1913244f708085452ff32feab19a7418897990da46a0633f7c8375d583367319091bbbe069b0052c5e48a7daac9fb650db5af768cd2508ec3e2cda7456d4b9ce1c39459627a8b77e038b826cd7e326d0685b0cd0cb50f026f18300dae9f5fd42aa150ee8b\nM = d686f9b86697313251685e995c09b9f1e337ddfaa050bd2df15bf4ca1dc46c5565021314765299c434ea1a6ec42bf92a29a7d1ffff599f4e50b79a82243fb24813060580c770d4c1140aeb2ab2685007e948b6f1f62e8001a0545619477d498132c907774479f6d95899e6251e7136f79ab6d3b7c82e4aca421e7d22fe7db19c\n\nModInv = 1ec872f4f20439e203597ca4de9d1296743f95781b2fe85d5def808558bbadef02a46b8955f47c83e1625f8bb40228eab09cad2a35c9ad62ab77a30e3932872959c5898674162da244a0ec1f68c0ed89f4b0f3572bfdc658ad15bf1b1c6e1176b0784c9935bd3ff1f49bb43753eacee1d8ca1c0b652d39ec727da83984fe3a0f\nA = 2e527b0a1dc32460b2dd94ec446c692989f7b3c7451a5cbeebf69fc0ea9c4871fbe78682d5dc5b66689f7ed889b52161cd9830b589a93d21ab26dbede6c33959f5a0f0d107169e2daaac78bac8cf2d41a1eb1369cb6dc9e865e73bb2e51b886f4e896082db199175e3dde0c4ed826468f238a77bd894245d0918efc9ca84f945\nM = b13133a9ebe0645f987d170c077eea2aa44e85c9ab10386d02867419a590cb182d9826a882306c212dbe75225adde23f80f5b37ca75ed09df20fc277cc7fbbfac8d9ef37a50f6b68ea158f5447283618e64e1426406d26ea85232afb22bf546c75018c1c55cb84c374d58d9d44c0a13ba88ac2e387765cb4c3269e3a983250fa\n\nModInv = 30ffa1876313a69de1e4e6ee132ea1d3a3da32f3b56f5cfb11402b0ad517dce605cf8e91d69fa375dd887fa8507bd8a28b2d5ce745799126e86f416047709f93f07fbd88918a047f13100ea71b1d48f6fc6d12e5c917646df3041b302187af641eaedf4908abc36f12c204e1526a7d80e96e302fb0779c28d7da607243732f26\nA = 31157208bde6b85ebecaa63735947b3b36fa351b5c47e9e1c40c947339b78bf96066e5dbe21bb42629e6fcdb81f5f88db590bfdd5f4c0a6a0c3fc6377e5c1fd8235e46e291c688b6d6ecfb36604891c2a7c9cbcc58c26e44b43beecb9c5044b58bb58e35de3cf1128f3c116534fe4e421a33f83603c3df1ae36ec88092f67f2a\nM = 53408b23d6cb733e6c9bc3d1e2ea2286a5c83cc4e3e7470f8af3a1d9f28727f5b1f8ae348c1678f5d1105dc3edf2de64e65b9c99545c47e64b770b17c8b4ef5cf194b43a0538053e87a6b95ade1439cebf3d34c6aa72a11c1497f58f76011e16c5be087936d88aba7a740113120e939e27bd3ddcb6580c2841aa406566e33c35\n\nModInv = 87355002f305c81ba0dc97ca2234a2bc02528cefde38b94ac5bd95efc7bf4c140899107fff47f0df9e3c6aa70017ebc90610a750f112cd4f475b9c76b204a953444b4e7196ccf17e93fdaed160b7345ca9b397eddf9446e8ea8ee3676102ce70eaafbe9038a34639789e6f2f1e3f352638f2e8a8f5fc56aaea7ec705ee068dd5\nA = 42a25d0bc96f71750f5ac8a51a1605a41b506cca51c9a7ecf80cad713e56f70f1b4b6fa51cbb101f55fd74f318adefb3af04e0c8a7e281055d5a40dd40913c0e1211767c5be915972c73886106dc49325df6c2df49e9eea4536f0343a8e7d332c6159e4f5bdb20d89f90e67597c4a2a632c31b2ef2534080a9ac61f52303990d\nM = d3d3f95d50570351528a76ab1e806bae1968bd420899bdb3d87c823fac439a4354c31f6c888c939784f18fe10a95e6d203b1901caa18937ba6f8be033af10c35fc869cf3d16bef479f280f53b3499e645d0387554623207ca4989e5de00bfeaa5e9ab56474fc60dd4967b100e0832eaaf2fcb2ef82a181567057b880b3afef62\n\n\n# GCD tests.\n#\n# These test vectors satisfy gcd(A, B) = GCD and lcm(A, B) = LCM.\n\nGCD = 0\nA = 0\nB = 0\n# Just to appease the syntax-checker.\nLCM = 0\n\nGCD = 1\nA = 92ff140ac8a659b31dd904161f9213706a08a817ae845e522c3af0c9096699e059b47c8c2f16434b1c5766ebb384b79190f2b2a62c2378f45e116890e7bb407a\nB = 2f532c9e5902b0d68cd2ed69b2083bc226e8b04c549212c425a5287bb171c6a47fcb926c70cc0d34b8d6201c617aee66af865d31fdc8a2eeb986c19da8bb0897\nLCM = 1b2c97003e520b0bdd59d8c35a180b4aa36bce14211590435b990ad8f4c034ce3c77899581cb4ee1a022874203459b6d53859ab1d99ff755efa253fc0e5d8487bb000c13c566e8937f0fe90b95b68bc278610d4f232770b08d1f31bee55a03da47f2d0ebb9e7861c4f16cc22168b68593e9efcde00f54104b4c3e1a0b294d7f6\n\nGCD = a\nA = faaffa431343074f5c5d6f5788500d7bc68b86eb37edf166f699b4d75b76dae2cb7c8f6eccae8f18f6d510ef72f0b9633d5740c0bebb934d3be796bd9a53808e\nB = 2f48ec5aa5511283c2935b15725d30f62244185573203b48c7eb135b2e6db5c115c9446ac78b020574665b06a75eb287e0dbeb5da7c193294699b4c2129d2ac4\nLCM = 4a15f305e9622aa19bd8f39e968bfc16d527a47f7a5219d7b02c242c77ef8b608a4a6141f643ca97cedf07c0f1f3e8879d2568b056718aa15c0756899a08ccbe0a658bae67face96fa110edb91757bfa4828e8ff7c5d71b204f36238b12dd26f17be8ba9771f7068d63e41d423671f898f054b1187605754bc5546f2b02c5ac\n\nGCD = 16\nA = cf0b21bde98b41b479ac8071086687a6707e9efaacd4e5299668ce1be8b13290f27fd32ae68df87c292e8583a09d73ec8e8a04a65a487380dcd7dacca3b6e692\nB = 3be3f563f81d5ad5c1211db7eff430aa345e830ce07b4bde7d4d32dba3ac618d2034351e5435fd6c7f077971fb4a1e83a7396a74fdff7fce1267112851db2582\nLCM = 233a2188de2c017235024b182286f17562b2ee5ab9fdfe4efa2f61c4ff99fa44e1ead5bf6cde05bd7502ce78373c83e3f9dbab0c9bb8620a87c2640bce5d12c685af656df789bb3d0ba1edbaa98cf4f0166d422ab17aa6706f8132264d45b72827d6671a00a9186e723379e3a3bb7902d08865f357c74100059f83800241976\n\nGCD = 1\nA = dd7b7597d7c1eb399b1cea9b3042c14bd6022d31b1d2642a8f82fc32de6eadaf012fbbf349eaec4922a8468740ca73c6090833d6a69a380ed947b39c2f9b0b76\nB = 8e0dc8654e70eec55496038a8d3fff3c2086bc6dbfc0e2dbdf5bd7de03c5aef01a3982556ac3fc34fd5f13368be6cdc252c82367b7462e210f940f847d382dd9\nLCM = 7ae667df4bd4dd35bbec28719a9f1b5e1f396a9ab386c086742a6ab3014a3386d39f35b50624d0c5b4e6b206c2635c7de5ea69e2faa85dd616a7e36622962a07632839857aa49332942feccff2aee1c962e2f4e8ccfd738a5da5bf528b4c5a2440409350f5a17a39d234403e8482ccf838e0d2758ccfb8018198a51dbb407506\n\nGCD = 1\nA = 0\nB = 1\nLCM = 0\n\nGCD = 1\nA = 1\nB = 0\nLCM = 0\n\nGCD = 1\nA = 1\nB = 1\nLCM = 1\n\nGCD = 2b2\nA = dfccaa3549c1b59ab3e114fe87dc5d187719abad58c51724e972741eb895ab79a49f385f61d531ec5c88dbb505ae375093fa848165f71a5ed65e7832a42ade191a\nB = fa58a81f43088da45e659fc1117d0f1cd015aa096c8e5377cf1832191baf7cc28b5c24998b93b64f8900a0973faedb9babaaf1854345f011739da8f1175d9684c\nLCM = 5132f7ab7a982b9dc55114bd96800b7637f9742cf8a7a00a0d69d5e4574fc85792c89a1c52bcfc74b9d7f3f6164819466c46b2d622e280ced7ad121160", + "4084a15dc1fd1951a05c8ce37122c0ec15891d818a70d3763670ea3195098de9b1ca50ea89893a9753fb9ea801541058f44801f7f50967124abfc864a2b01c41f94193c\n\nGCD = 8e\nA = 248d96a8a4cab0a1b194e08c1146868b094597cadbc35531f0ed2d77cba9f15cb5cc7c10e64ce054bf93396d25259d750b3de3aba65073db1fd2b852a6454ac1a\nB = 4c7bad8e1844901fd6a2ce2edc82e698d28ec95d6672ca148d85b49ecc78dd0a8b870e202244210bc98592b99ff6abbd20630f9eee7d46b15ccfae8d08b86799de\nLCM = 13b01f9d9c6c13e90c97e3d95bbce5a835c631b3de3bd4ff5df13ad850f5223dbdf71c53912275d0397df9335ef3a3ba8e4684c6b25962bb7b18bc74144cb5edf0196f79863a7ff032619a71646a92281f7baace7f223d254cb4d05ec19bf8d4c8ce4455a9d770daec89c0d3cf338cbdae39cf982b3c4568f5c9def4e1133d28a\n\nGCD = 3e55\nA = 2fa97382f46676b7a4cc2b8153f17b58792d24660e187d33ce55c81cc193ccb6e1e2b89feea1d5fd8faa36e13bf947fb48635e450a4d1488d0978324194a1f43c6\nB = ab08ad074139963bc18e5d87ba68db64ca6f4c279616c64039b02c55f2375b3bc04114e8e05e1ba92fb6470768f61d123845aea36774c18612736a220934561faf\nLCM = 82c7c377ecda2cb9228604cd287df5eff94edd4a539c3eb3b3fdd4b4a79d2f4eaf2b22f8286272d3dad2e370cfcd9ea4d93ebb3f049c52b8fa23b68a5bf79af989822e2cfb978f68c6a5058f47319dffcb455b089b06ae6db9e5c8a2b6e951d6e118bd2b4cd08b6e5733476a446a57387d940d1289ec00e24315821ed3a5daf2\n\nGCD = a7a\nA = 923706dfed67834a1e7e6c8e8e9f93bfbc0b43ca1f324886cf1f1380fb9b77109275d4b50af1b7689802fe9b3623ac46c7ba0e17e908c20278127b07a5c12d86ec\nB = 64473e878a29021fac1c1ce34a63eae1f4f83ee6851333b67213278b9a4a16f005cba0e8cdb410035bb580062f0e486c1a3a01f4a4edf782495f1dc3ebfa837d86\nLCM = 57785ca45b8873032f1709331436995525eed815c55140582ce57fd852116835deac7ca9d95ce9f280e246ea4d4f1b7140ab7e0dd6dc869de87f1b27372098b155ad0a1828fd387dff514acc92eae708609285edaab900583a786caf95153f71e6e6092c8c5ee727346567e6f58d60a5e01c2fa8ebcf86da9ea46876ecc58e914\n\nGCD = 42\nA = 0\nB = 42\nLCM = 0\n\nGCD = 42\nA = 42\nB = 0\nLCM = 0\n\nGCD = 42\nA = 42\nB = 42\nLCM = 42\n\nGCD = f60d\nA = ef7886c3391407529d5cf2e75ed53e5c3f74439ad2e2dc48a79bc1a5322789b4ced2914b97f8ff4b9910d212243b54001eb8b375365b9a87bd022dd3772c78a9fd63\nB = d1d3ec32fa3103911830d4ec9f629c5f75af7039e307e05bc2977d01446cd2cbeeb8a8435b2170cf4d9197d83948c7b8999d901fe47d3ce7e4d30dc1b2de8af0c6e4\nLCM = cc376ed2dc362c38a45a719b2ed48201dab3e5506e3f1314e57af229dc7f3a6a0dad3d21cfb148c23a0bbb0092d667051aa0b35cff5b5cc61a7c52dec4ed72f6783edf181b3bf0500b79f87bb95abc66e4055f259791e4e5eb897d82de0e128ecf8a091119475351d65b7f320272db190898a02d33f45f03e27c36cb1c45208037dc\n\nGCD = 9370\nA = 1ee02fb1c02100d1937f9749f628c65384ff822e638fdb0f42e27b10ee36e380564d6e861fcad0518f4da0f8636c1b9f5124c0bc2beb3ca891004a14cd7b118ddfe0\nB = 67432fd1482d19c4a1c2a4997eab5dbf9c5421977d1de60b739af94c41a5ad384cd339ebfaa43e5ad6441d5b9aaed5a9f7485025f4b4d5014e1e406d5bd838a44e50\nLCM = 159ff177bdb0ffbd09e2aa7d86de266c5de910c12a48cbe61f6fa446f63a2151194777555cd59903d24cb30965973571fb1f89c26f2b760526f73ded7ee8a34ebcecd1a3374a7559bcdb9ac6e78be17a62b830d6bb3982afdf10cf83d61fd0d588eab17d6abef8e6a7a5763fcb766d9a4d86adf5bb904f2dd6b528b9faec603987a0\n\nGCD = c5f\nA = 5a3a2088b5c759420ed0fb9c4c7685da3725b659c132a710ef01e79435e63d009d2931ea0a9ed9432f3d6b8851730c323efb9db686486614332c6e6ba54d597cf98\nB = 1b1eb33b006a98178bb35bbcf09c5bebd92d9ace79fa34c1567efa8d6cf6361547807cd3f8e7b8cd3ddb6209dccbae4b4c16c8c1ec19741a3a57f61571882b7aed7\nLCM = c5cbbbe9532d30d2a7dd7c1c8a6e69fd4fa4828a844d6afb44f3747fef584f7f1f3b835b006f8747d84f7699e88f6267b634e7aef78d6c7584829537d79514eec7d11219721f91015f5cefdc296261d85dba388729438991a8027de4827cd9eb575622e2912b28c9ce26d441e97880d18db025812cef5de01adeaec1322a9c9858\n\nGCD = e052\nA = 67429f79b2ec3847cfc7e662880ab1d94acdf04284260fcfffd67c2862d59704ed45bcc53700c88a5eea023bc09029e9fd114fc94c227fd47a1faa1a5ef117b09bd2\nB = 39faa7cbdeb78f9028c1d50ab34fbe6924c83a1262596f6b85865d4e19cc258b3c3af1ee2898e39e5bee5839e92eac6753bbbb0253bd576d1839a59748b778846a86\nLCM = 1ab071fb733ef142e94def10b26d69982128561669e58b20b80d39cf7c2759d26b4a65d73b7f940c6e8fc417180ef62d7e52ac24678137bd927cd8d004ad52b02affe176a1ecde903dbc26dcc705678f76dd8cd874c0c3fe737474309767507bbe70dd7fb671bbb3694cedf0dcdaa0c716250ddd6dfec525261572fa3e1387f7b906\n\nGCD = 3523\nA = 0\nB = 3523\nLCM = 0\n\nGCD = 3523\nA = 3523\nB = 0\nLCM = 0\n\nGCD = 3523\nA = 3523\nB = 3523\nLCM = 3523\n\nGCD = f035a941\nA = 16cd5745464dfc426726359312398f3c4486ed8aaeea6386a67598b10f744f336c89cdafcb18e643d55c3a62f4ab2c658a0d19ea3967ea1af3aee22e11f12c6df6e886f7\nB = 74df09f309541d26b4b39e0c01152b8ad05ad2dfe9dd2b6706240e9d9f0c530bfb9e4b1cad3d4a94342aab309e66dd42d9df01b47a45173b507e41826f24eb1e8bcc4459\nLCM = b181771d0e9d6b36fdfcbf01d349c7de6b7e305e1485ea2aa32938aa919a3eee9811e1c3c649068a7572f5d251b424308da31400d81ac4078463f9f71d7efd2e681f92b13a6ab3ca5c9063032dcbdf3d3a9940ce65e54786463bbc06544e1280f25bc7579d264f6f1590cf09d1badbf542ce435a14ab04d25d88ddbac7d22e8cae1c91f\n\nGCD = 33ad1b8f\nA = 1af010429a74e1b612c2fc4d7127436f2a5dafda99015ad15385783bd3af8d81798a57d85038bcf09a2a9e99df713b4d6fc1e3926910fbbf1f006133cb27dc5ebb9cca85\nB = 92a4f45a90965a4ef454f1cdd883d20f0f3be34d43588b5914677c39d577a052d1b25a522be1a656860a540970f99cbc8a3adf3e2139770f664b4b7b9379e13daf7d26c\nLCM = 4c715520ed920718c3b2f62821bc75e3ff9fd184f76c60faf2906ef68d28cd540d3d6c071fa8704edd519709c3b09dfaee12cb02ab01ad0f3af4f5923d5705ce6d18bcab705a97e21896bb5dd8acb36ee8ec98c254a4ddc744297827a33c241f09016a5f109248c83dd41e4cea73ce3eabb28d76678b7e15545b96d22da83c111b6b624\n\nGCD = dc0429aa\nA = ccb423cfb78d7150201a97114b6644e8e0bbbb33cadb0ef5da5d3c521a244ec96e6d1538c64c10c85b2089bdd702d74c505adce9235aa4195068c9077217c0d431de7f96\nB = 710786f3d9022fc3acbf47ac901f62debcfda684a39234644bac630ab2d211111df71c0844b02c969fc5b4c5a15b785c96efd1e403514235dc9356f7faf75a0888de5e5a\nLCM = 6929af911850c55450e2f2c4c9a72adf284fe271cf26e41c66e1a2ee19e30d928ae824f13d4e2a6d7bb12d10411573e04011725d3b6089c28d87738749107d990162b485805f5eedc8f788345bcbb5963641f73c303b2d92f80529902d3c2d7899623958499c8a9133aae49a616c96a2c5482a37947f23af18c3247203ac2d0e760340e6\n\nGCD = 743166058\nA = 16cd476e8031d4624716238a3f85badd97f274cdfd9d53e0bd74de2a6c46d1827cc83057f3889588b6b7ca0640e7d743ed4a6eaf6f9b8df130011ecc72f56ef0af79680\nB = 86eba1fc8d761f22e0f596a03fcb6fe53ad15a03f5b4e37999f60b20966f78ba3280f02d3853f9ace40438ccfaf8faed7ace2f2bf089b2cdd4713f3f293bf602666c39f8\nLCM = 1a7a1b38727324d6ba0290f259b8e2b89c339b2445cada38a5a00ded1468ab069f40678ce76f7f78c7c6f97783cc8a49ef7e2a0c73abbac3abc66d1ce99566ce7f874a8949ca3442051e71967695dc65361184748c1908e1b587dc02ed899a524b34eb30b6f8db302432cfa1a8fbf2c46591e0ab3db7fd32c01b1f86c39832ee9f0c80\n\nGCD = 6612ba2c\nA = 0\nB = 6612ba2c\nLCM = 0\n\nGCD = 6612ba2c\nA = 6612ba2c\nB = 0\nLCM = 0\n\nGCD = 6612ba2c\nA = 6612ba2c\nB = 6612ba2c\nLCM = 6612ba2c\n\nGCD = 2272525aa08ccb20\nA = 11b9e23001e7446f6483fc9977140d91c3d82568dabb1f043a5620544fc3dda233b51009274cdb004fdff3f5c4267d34181d543d913553b6bdb11ce2a9392365fec8f9a3797e1200\nB = 11295529342bfb795f0611d03afb873c70bd16322b2cf9483f357f723b5b19f796a6206cf3ae3982daaeafcd9a68f0ce3355a7eba3fe4e743683709a2dd4b2ff46158bd99ff4d5a0\nLCM = 8d4cbf00d02f6adbaa70484bcd42ea932000843dcb667c69b75142426255f79b6c3b6bf22572597100c06c3277e40bf60c14c1f4a6822d86167812038cf1eefec2b0b19981ad99ad3125ff4a455a4a8344cbc609e1b3a173533db432bd717c72be25e05ed488d3970e7ed17a46353c5e0d91c8428d2fec7a93210759589df042cab028f545e3a00\n\nGCD = 3480bf145713d56f9\nA = 8cf8ef1d4f216c6bcec673208fd93b7561b0eb8303af57113edc5c6ff4e1eeae9ddc3112b943d947653ba2179b7f63505465126d88ad0a0a15b682f5c89aa4a2a51c768cd9fdeaa9\nB = a6fd114023e7d79017c552a9051ca827f3ffa9f31e2ee9d78f8408967064fcdc9466e95cc8fac9a4fa88248987caf7cf57af58400d27abd60d9b79d2fe03fad76b879eceb504d7f\nLCM = 1c05eee73a4f0db210a9007f94a5af88c1cdd2cba456061fd41de1e746d836fa4e0e972812842e0f44f10a61505f5d55760c48ba0d06af78bb6bde7da8b0080b29f82b1161e9c0b5458e05ac090b00f4d78b1cc10cf065124ba610e3acab092a36fe408525e21c0ddc7c9696ed4e48bd2f70423deecfe62cecc865c6088f265da0e5961d3f3a84f\n\nGCD = 917e74ae941fcaae\nA = 652f8a92d96cbf0a309629011d0fbaceb1266bc2e8243d9e494eead4cf7100c661b537a8bea93dec88cfc68597d88a976c125c3b4de19aba38d4ea9578202e59848d42652518348a\nB = 32e07b71979d57e8344e97c39680a61e07d692d824ae26b682156890792d8a766ee29a4968f461aaced5bf049044fba2f4120b1c1f05985676f975d4582e9e82750d73c532cd07b2\nLCM = 23620c7b897dc26c7717e32f3517ac70bf09fbe08f7255ab010cf4cf946f4e96304c", + "425043452c5d5a0e841d3a3cfd9c2d84d9256f3b5974fe3ebfa9255fe20a710d3e6511606c0d85970381101c7f4986d65ad6a73a71507f146b11f903043cfa805cc0b14d4f3072da98bf22282f7762040406c02d5b3ef9e7587f63bab8b29c61d8e30911aa96\n\nGCD = 2b9adc82005b2697\nA = 19764a84f46045ef1bca571d3cbf49b4545998e64d2e564cc343a53bc7a0bcfbe0baa5383f2b346e224eb9ce1137d9a4f79e8e19f946a493ff08c9b423574d56cbe053155177c37\nB = 1bbd489ad2ab825885cdac571a95ab4924e7446ce06c0f77cf29666a1e20ed5d9bc65e4102e11131d824acad1592075e13024e11f12f8210d86ab52aa60deb250b3930aabd960e5a\nLCM = 1032a0c5fffc0425e6478185db0e5985c645dd929c7ebfeb5c1ee12ee3d7b842cfab8c9aa7ff3131ac41d4988fb928c0073103cea6bb2cc39808f1b0ad79a6d080eac5a0fc6e3853d43f903729549e03dba0a4405500e0096b9c8e00510c1852982baec441ed94efb80a78ed28ed526d055ad34751b831b8749b7c19728bf229357cc5e17eb8e1a\n\nGCD = 8d9d4f30773c4edf\nA = 0\nB = 8d9d4f30773c4edf\nLCM = 0\n\nGCD = 8d9d4f30773c4edf\nA = 8d9d4f30773c4edf\nB = 0\nLCM = 0\n\nGCD = 8d9d4f30773c4edf\nA = 8d9d4f30773c4edf\nB = 8d9d4f30773c4edf\nLCM = 8d9d4f30773c4edf\n\nGCD = 6ebd8eafb9a957a6c3d3d5016be604f9624b0debf04d19cdabccf3612bbd59e00\nA = 34dc66a0ffd5b8b5e0ffc858dfc4655753e59247c4f82a4d2543b1f7bb7be0e24d2bbf27bb0b2b7e56ee22b29bbde7baf0d7bfb96331e27ba029de9ffdff7bdb7dc4da836d0e58a0829367ec84ea256833fd4fe1456ad4dd920557a345e12000\nB = 1f3406a20e20ebf96ccb765f898889a19b7636608fd7dc7c212607b641399543f71111d60e42989de01eaa6ff19a86ea8fbde1a3d368c0d86dc899e8e250fc764090f337958ca493119cbb4ad70cbfae7097d06d4f90ec62fbdd3f0a4496e600\nLCM = ee502c50e3667946e9089d0a9a0382e7fd0b75a17db23b56a0eec997a112c4dbd56d188808f76fe90451e5605550c9559ef14a95014c6eb97e9c1c659b98515c41470142843de60f72fb4c235faa55b0a97d943221003d44e2c28928f0b84bf071256254897ed31a7fd8d174fc962bc1311f67900ac3abcad83a28e259812f1ee229511ab1d82d41f5add34693ba7519babd52eb4ec9de31581f5f2e40a000\n\nGCD = ef7399b217fc6a62b90461e58a44b22e5280d480b148ec4e3b4d106583f8e428\nA = 7025e2fe5f00aec73d90f5ad80d99ca873f71997d58e59937423a5e6ddeb5e1925ed2fd2c36a5a9fc560c9023d6332c5d8a4b333d3315ed419d60b2f98ccf28bbf5bf539284fd070d2690aeaac747a3d6384ee6450903a64c3017de33c969c98\nB = df0ac41dbabce1deeb0bceb1b65b1079850052ecf6534d0cff84a5a7fb5e63baee028d240f4419925154b96eaa69e8fbb1aae5102db7916234f290aa60c5d7e69406f02aeea9fe9384afbff7d878c9ac87cd31f7c35dff243b1441e09baff478\nLCM = 687669343f5208a6b2bb2e2efcac41ec467a438fde288cc5ef7157d130139ba65db9eb53e86a30c870bd769c0e0ab15a50f656cd9626621ae68d85eaff491b98da3ea5812062e4145af11ea5e1da457084911961ef2cd2ac45715f885ba94b4082aa76ffd1f32461f47c845b229d350bf36514c5ce3a7c782418746be342eca2721346ade73a59475f178c4f2448e1326110f5d26a0fef1a7a0c9288489e4dc8\n\nGCD = 84b917557acf24dff70cb282a07fc52548b6fbbe96ca8c46d0397c8e44d30573\nA = 81dbb771713342b33912b03f08649fb2506874b96125a1ac712bc94bfd09b679db7327a824f0a5837046f58af3a8365c89e06ff4d48784f60086a99816e0065a5f6f0f49066b0ff4c972a6b837b63373ca4bb04dcc21e5effb6dfe38271cb0fa\nB = 1da91553c0a2217442f1c502a437bb14d8c385aa595db47b23a97b53927b4493dd19f1bc8baf145bc10052394243089a7b88d19b6f106e64a5ab34acad94538ab504d1c8ebf22ac42048bbd1d4b0294a2e12c09fe2a3bd92756ba7578cb34b39\nLCM = 1d0530f8142754d1ee0249b0c3968d0ae7570e37dadbe4824ab966d655abf04cd6de5eb700eba89d8352dec3ae51f2a10267c32fbd39b788c7c5047fe69da3d7ad505435a6212f44899ba7e983bb780f62bcdee6f94b7dba8af7070a4cc008f351ae8be4579bc4a2e5c659ce000ad9c8cdc83723b32c96aeb0f5f4127f6347353d05525f559a8543cd389ad0af6f9d08a75b8c0b32419c097e6efe8746aee92e\n\nGCD = 66091477ea3b37f115038095814605896e845b20259a772f09405a8818f644aa\nA = cedac27069a68edfd49bd5a859173c8e318ba8be65673d9d2ba13c717568754ed9cbc10bb6c32da3b7238cff8c1352d6325668fd21b4e82620c2e75ee0c4b1aff6fb1e9b948bbdb1af83cecdf356299b50543b72f801b6a58444b176e4369e0\nB = 5f64ca1ba481f42c4c9cf1ffa0e515b52aa9d69ceb97c4a2897f2e9fa87f72bae56ee6c5227f354304994c6a5cc742d9f09b2c058521975f69ca5835bce898cf22b28457cd7e28870df14e663bb46c9be8f6662f4ff34d5c4ae17a888eba504e\nLCM = c163cb28642e19a40aa77887c63180c2c49fc10cda98f6f929c8131752ea30b5283a814a81681b69b9d1762e6c1a9db85f480bc17f998d235fd7e64c1caa70ef170c9e816d3e80f516b29f2c80cfb68bf208b4d5082ef078da4314b3f20c7d6c54b0aeb378096b029a7b61c0a4cd14aeddc01004c53915a4f692d2291752e5af46b23d7fa6dd61f2d56c6f4bf8e6119688abac8fd7aba80e846a7764bb3fca0\n\nGCD = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nA = 0\nB = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nLCM = 0\n\nGCD = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nA = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nB = 0\nLCM = 0\n\nGCD = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nA = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nB = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\nLCM = bb80bf51757ba696c700fa4e4c0132b3151d2bf9ebff8382f808ded78be67182\n\nGCD = 120451d8307219aa0c96f328ad653ccd462e92423ca93ed8a3dde45bf5cb9b13cdaf9800e4d05dd71c4db6a129fb3280ee4ec96ec5297d881c1a8b5efccbd91fef21f5c5bf5fba42a4c8eaa358f620a074b7a17054527bdaa58d5acaa0dfdc48ecba1a10ebf4d57bb4215de406e6be13fed3fe493b1cd1e2d11a8d4ac03c47756\nA = 3f8179a8e1f0b342475a855c3e1bae402dd41424cf24a0b4d2e263c8efb08bde7d92eae8607fb5e88b1378f0f1bd0733f229a35be6b1383a48d32749d5d6b32427d26323b7ab05bb5781289e96bfbc21971439319b15f6c0fe93fdb35d0b67ec41443c59a081dd3cef047ac797fccb45bece84c0bb0bb7e1797259526d8ec9cc63ba4d32cfc692ccd3d243cb2b53ac216312f3a8e8c0daa09d21b6150d697639a5e52059414a417c607be8ec0eee2e708219cadbaf37a369c4485b01ed87bbc2\nB = 2c474e396a2dd9cd10b9d7313f69d3b4ca123e9fd853edd488339236d14c56453a1381958864a04d2624e81995dabcdd0ccf60db9917813f887de68da075d0ea4440001e18f470e43b38ee3440b49be651d709fbdef980e3e4149913f4ae2681124f54523f4881376ddb533b5219e804cc26f4c2e577be4e02613c4da80ba1215775b0a5178a965ad47bd2befb32493943ded1004ef66347b4983f8d1ba990d4a943505dfce6debcfb322842ed88106cd6dee9aa592ff0d2274bc727a6e1f14c\nLCM = 9c129cf649555bfd2d3d9c64dc6d6f022295e53bca5d2f218adaa66aa60eb4694429b7e83bf81b6df4459c5104023ab9a33f006ffcd8114507baa17e2ef6fe23ebdd4740f66879033da2041f2cb7ba517ad3526ffe75614ea9432c085f71b2d65a736bac7ba42b639e330b82733372083843dcb78b6a273ab20e0d4b7c8998a14048aa15bb20a0a0bd997917107274c89b4cec175fb98043d52e6c555bd9e0036566d052a6d4e7e276d1e8835e1f06e3ca46d47747ba586e95fb1a790d992834b7c3e136141eb8a434e6c12067246ac3c0a81c69e03b1ed28aa0b3173d6eff83d278c2f461a47a416f3f9a5dae3bb410fd18817bd4115e7f1e84b936cc02364\n\nGCD = 95aa569a2c76854300d7660847dd20fe0b8c445fdbcaa98465cee61aee76ad6a438e75a8c573198570ffb62bc07ec3a2be0ae0a1f631670fa88d6f75f3161e8b9a4d44b6801ffc884c7f469c5ed1f27b1edecce9f2977f9e92d1a3b230492fea7e6f2af739dc158a7fbd29856cbedb57b4119e64b27ab09eb1c2df01507d6e7fd\nA = 4c653b5bfec44e9be100c064dffe5d8cd59b0cf4cc56b03eabb4ef87cfda6506c9a756b811907fe9d8b783eb7a0b9e129773bf1da365ddb488d27b16fb983e89345d1ccdb4f06a67a11925c3f266373be5d7b0075189c6f3c2157e2da197058fe0a7bcc50adc34e99e254a29abbe2d5948d3157e1b0c3fca3d641760f7b9862843b63abef0b3d83fd486f4526b30382fda355575da30e9a106718a3921774c4d69f5311f8d737fe618f5236b4763fe1b2ee7f13184db67367d3903c535ff6d7b\nB = 2dcca83c99a28e9fd2f84e78973699baf2f04fd454094730948b22477834a0064817b86e0835e6d7b26e5b0b1dcf4ad91a07ac0780d6522df1fcac758cf5db6c2a5623d7c0f1afefd5718f7b6de639867d07a9ec525991304e9355d1635104bea837f74758d6aa2aab4e4afbb606af1d98de7417505e4710cd0589bdff9a0bf38a857cc59a5f1781043e694fc2337fd84bdeb28b13a222bb09328a81ec409ad586e74236393d27398cc24d412135e34247c589149e134b97f4bd538ac9a3424b\nLCM = 1760c0b0066aa0695767099e87e9388729ea89b8e8c36bddcd04d257591e741613c07b0e69447c0a468c33a745084171e06523d987d8db40a1433bf435325e8a724a0876503b34495170ff3671d42117a2e4f3a75b1d9dd809a34fa0fb26fe50d84f80a9b02e40190e5efb927a5a61a03f13edbce2e666af6c3a2a9bcb84e47e3090008753ff27c4b8cf06480f471379a93f5230923623a83b286b71a555cd5e5347282f664ed90b14b2c4de84a70375e488211a7b3931119ef3bbe029b712389fe784818a0bf29d80733ce9cc940c547aa1eb3f06d492eb676bf37802283c82ce76156dfaab5c2d5107e08062681b5fa169f6eb68e1ab8bd9b2005e90bd4fd\n\nGCD = 244b9b1290cf5b4ba2f810574c050651489f2d3a2b03e702b76ebfaf4e33de9bbe5da24c919e68d3a72eadd35982b3a89c6b18b38ff7082ac65263e52b6ec75a5717b971c98257b194c828bff0216a99536603b41a396ea2fb50f5ea7cf3edf10bb0d039123e78593ae9ffcbbba02e51e038533e83b6bc73c70551d6467f39809\nA = 41a0b1310669500681cdf888836f6c", + "556758750f562d743ac780dd4c0d161856380e44fdbb1f8a2786bf45be6b0e7f1cb2cd85f6b9e50acc72793d92383c7d7fb796fc74d32e8fac8225bdc19ae47546d9c9c75f5f06ca684f07daccaf89ccf2cddeb7ec255d530c7dd1e71daf44cafdc9d30fbcb1cbaefae3480585f79f4177e3834a5bc91845e2e8cd8aeb27f484e5e5b2c3c076dbb6c23e91303f0a0fdde83cd33a8ea6ed1549e727b4d766c1017c169710fd98e1585d60f66e121f9180b3\nB = 251f5aeaa60b3959285f49540cdaf8e21451110bbddb9933bbbcaea3112f4eb45e435a3ba37c52d2ab79ce997a8f6c829b3aa561f2852924b8effb52396d09d2bf257ebb4fb56c7aa25648f69b06d2cd01e876c9f9c0679de9e6fffa79eb7e603723e5af7de46ee405a5a079229577b5b6fffb8d43e391fe6f4eb89638e64d6eff8026249aaa355a91625eb0bfd14caa81e4c3586aaa2e94fde143a44f223a91e226661d12f55dfcdb4215e5a64e14e968005733be6a71c465de312ca109b34a\nLCM = 431f918b274f3e43f446e4e85567883d6536a0332db662cef088f5a36b0f4b68372048174ba10fee94b9f8f1c2e189c974be2e6e8ae8e2ae108445326d40f63e38d8d4e2e46174589a3cbc9583e0036dc8146e79eee9e96f4436313b3f143dd0f5aceab05243def7f915169c360f55ef123977cf623c5ba432c3259c62fb5e37d5adab0f24b825aa4ada99ec4e83e9ca4698399e1ed633091ce5f9844c540a642cd264201116ed4168aa2105a5159f5df064f845830c469140f766c7319052ce59bd1ad7c3f2d8c30e54f147f6aeb5586c70c984302ba18d854a60aec01b394c7d66fa33fe18fe4a8cfb3238df219294e6e42190a30d28b10049a1b75853a4e\n\nGCD = 206695d52bc391a4db61bf8cb6ea96188333a9c78f477ee76976c2346dad682cf56ca6f176d86ef67d41ff5921b6162b0eca52359975872430dd14c45643eacdf028d830770714c033fd150669705851b2f02de932322d271d565d26768530c3f6cb84f0b3356f970b9070b26c050ead0417152c324c8ffe266d4e8b5b7bef3a\nA = 1114eb9f1a9d5947eb1399e57f5c980833489685023ed2fe537fe1276c1e026b9a19e6fff55aa889d6c4e977b6e6f3111e2ad463138637b50f42cf32e57d83f282de9e72f813e5969195159a666d74dcd689bd527c60199ae327f7bd548ac36868fea5fdf6f35d19b921e7c10b6448ca480de6826478cd0642d72f05af3f8e65ce42409fbd49f56e81946e89c8e83962c4edc0ed54600600a305e52d081aed3c351e450e11f8fb0ce5754c92cf765b71393b2b7a89c95df79b9ea1b3cb600862\nB = 1d8f3179ca7b5cc7119360c10de939ffa57c9043da2f2b0ca3009c9bdad9f19ed16e3c2c197bef4b527fa1bf2bbab98b77e26c329911db68bd63d3d0fbfc727a977395b9ad067106de3094d68e097830858c5ccfa505fc25e972bdee6f347e7d1163efacd3d29a791ec2a94ffeed467884ae04896efc5e7e5f43d8d76c147e3c9951a1999173bc4e5767d51268b92cc68487ba1295372143b538711e0a62bf0ac111cc750ca4dd6c318c9cbe106d7fc492261404b86a1ba728e2d25b1976dc42\nLCM = f9570211f694141bfb096560551080cbe02a80271b4505591aaea9e3b99ea1d5ac1c1f2378fd72799e117ac2a73381b1ad26314e39972164d93971479ee3ba21a4d98cef0bd299d540ce5826995dcee0de420dff73d30b23cbf3188c625c7696df517535bc5675d71faa00807efbebdca547933f4a37849d1c014484a77da6df0670c4974bcc91eb5f5fe5faf9dd095ef195ec32ad9eeebf0e63288b4032ed9e70b888afc642f4ff96f0b4c0a68787301c12e4527fe79bdfe72dd3844ab5e094a9295df6616f24d1b9eeebc2116177dacf91969dda73667bc421ef3ccd8d5c23dddc283f5d36568d31f2654926be67f78e181075bdc148f2b39c630b141ae8a\n\nGCD = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nA = 0\nB = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nLCM = 0\n\nGCD = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nA = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nB = 0\nLCM = 0\n\nGCD = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nA = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nB = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\nLCM = 3d319c42d872f21131ce5ff3ab8bec94339308e620316dda218e85fedcd511cd62f0b2f3448d5e58fd3520ae8118abd54ead9ad9e8ec3890365c6b2cca2172d4b8839b2d2c5ab02f65180826cb0cd5c9798f5d6261efe6e6ec31dea047da7c486b0590359e6f333557f67ceebf9ea9cd5dd986a999a8c88bdbd0ca21816b2423\n\nGCD = 2\nA = 14e95a85e59ade9ef39e2f400c65db18702fa5fc485b9bba479a5282b2206129160e54f73ef4917983c17b4c5ebff7be112a886de069706eee29ba902515cb038\nB = ddcfff1d39c90c599f55495bf71c1e7597c6b08b7430707f360c6a6e5137bbc7b403c6d9e2c34f3d2f29d5d32b869346853c2de239cc35381bdfb4a01569211a\nLCM = 90f38564ee72e55d362c04599e7d74f068c75f541b84e97abba2841f1a9f66b06b5c9009f6a4c2e319fced85270588de03ccebddbd9279aaecb13bdc1dbea7f42acaee751cb7da83779b8785cc86f41b94b13b54964208ca287d981634778d1096f20e76ca636c0717fd27e0800c43f599a5eded807421b502eaf9990a8c8ed8\n\nGCD = 4\nA = 3c719c1c363cdeb7b57c2aabb71f425da4c3e6d3e447204d555e7cf0f3d372bdda906f36078045044978dafc20171767c8b1464d52dfdf3e2ba8a4906da033a8\nB = 30fe0ef151ac51404e128c064d836b191921769dc02d9b09889ed40eb68d15bfdd2edea33580a1a4d7dcee918fefd5c776cbe80ca6131aa080d3989b5e77e1b24\nLCM = 2e4526157bbd765b0486d90bcd4728f890bc6dbd9a855c67ca5cb2d6b48f8e74e1d99485999e04b193afca58dbf282610185d6c0272007744ff26e00dbdc813929b47940b137dc56ba974da07d54a1c50ec4a5c2b26e83f47cf17f4ccce8c3687e8d1e91d7c491a599f3d057c73473723ce9eee52c20fe8ae1595447552a7ee8\n\nGCD = 10\nA = 44e04071d09119ea9783a53df35de4a989200133bb20280fdca6003d3ca63fdd9350ad1a1673d444d2f7c7be639824681643ec4f77535c626bd3ee8fa100e0bb0\nB = ca927a5a3124ce89accd6ac41a8441d352a5d42feb7f62687a5ebc0e181cc2679888ecc2d38516bdc3b3443550efccac81e53044ae9341ecace2598fe5ce67780\nLCM = 36805ba9b2412a0cb3fe4ed9bdabfa55515c9d615a3d0af268c45c5f6098d2de4a583f3791f1e3883c55d51ce23c5658fd0e8faa9a3709a1cfbd6a61dbab861690f27c86664f084c86cfd4a183b24aaadf59a6f8cbec04f1b0ded8a59b188cb46ae920052e3e099a570540dbc00f7d4a571eef08aa70d2d189a1804bf04e94a80\n\nGCD = 100\nA = 73725032b214a677687c811031555b0c51c1703f10d59b97a4d732b7feaec5726cb3882193419d3f057583b2bc02b297d76bb689977936febaae92638fdfc46a00\nB = 979f4c10f4dc60ad15068cedd62ff0ab293aeaa1d6935763aed41fe3e445de2e366e8661eadf345201529310f4b805c5800b99f351fddab95d7f313e3bb429d900\nLCM = 4460439b4be72f533e9c7232f7e99c48328b457969364c951868ceab56cb2cbbeda8be2e8e3cae45c0758048468b841fdb246b2086d19b59d17b389333166ab82ed785860620d53c44f7aaaff4625ee70fb8072df10fb4d1acb142eadc02978ff2bb07cea9f434e35424b3323a7bda3a1a57aa60c75e49ebb2f59fb653aa77da00\n\nGCD = 100000000\nA = f8b4f19e09f5862d79fb2931c4d616a1b8e0dd44781ca52902c8035166c8fca52d33a56ff484c365ec1257de7fa8ed2786163cfc051d5223b4aad859a049e8ba00000000\nB = 6e54cb41b454b080e68a2c3dd0fa79f516eb80239af2be8250ca9cd377ba501aabafc09146fad4402bdc7a49f2c3eec815e25f4c0a223f58e36709eefd92410500000000\nLCM = 6b3020a880ddeff9d17d3dc234da8771962de3322cd15ba7b1e4b1dd4a6a2a802a16c49653865c6fdf6c207cbe0940f8d81ef4cb0e159385fd709d515ee99d109ad9ad680031cbae4eab2ed62944babdade4e3036426b18920022f737897c7d751dce98d626cdda761fec48ad87a377fb70f97a0a15aa3d10d865785719cc5a200000000\n", }; -static const size_t kLen40 = 155170; +static const size_t kLen41 = 18795; -static const char *kData40[] = { +static const char *kData41[] = { + "# This file contains test vectors for whether B is a Miller-Rabin composite\n# witness for W. W must be odd and B must satisfy 1 <= B <= W-1.\n#\n# The following Python function may be used to check values.\n#\n# def is_miller_rabin_witness(w, b):\n# # Variable names taken from FIPS 186-4 C.3.1 but the algorithm skips a\n# # couple of optimizations in the FIPS formulation.\n# m = w - 1\n# a = 0\n# while m&1 == 0:\n# a += 1\n# m //= 2\n# # b is a composite witness for w iff the following are true:\n# # - b^m != 1 (mod w)\n# # - b^(m*2^j) != -1 (mod w), for 0 <= j < a\n# z = pow(b, m, w)\n# if z == 1:\n# # b^m = 1 (mod w)\n# return False\n# for j in range(a):\n# if z == w-1:\n# # b^(m*2^j) = -1 (mod w)\n# return False\n# z = (z * z) % w\n# # At this point, z is b^(w-1) (mod w). If z is not 1, w has failed the\n# # Fermat test and is composite. If z is 1, the value of z immediately\n# # before it became 1 is a non-trivial root of unity and w is composite.\n# return True\n\n# Exhaustively test a small prime.\n\nResult = PossiblyPrime\nW = 7\nB = 1\n\nResult = PossiblyPrime\nW = 7\nB = 2\n\nResult = PossiblyPrime\nW = 7\nB = 3\n\nResult = PossiblyPrime\nW = 7\nB = 4\n\nResult = PossiblyPrime\nW = 7\nB = 5\n\nResult = PossiblyPrime\nW = 7\nB = 6\n\n\n# Random large inputs which try to cover a few cases. The nontrivial square root\n# case appears to be difficult to hit randomly.\n\n# b^m = w-1\nResult = PossiblyPrime\nW = d6b4ffc7cf70b2a2fc5d6023015875504d40e3dcce7c2e6b762c3de7bb806a5074144e7054198dabf53d23108679ccc541d5a99efeb1d1abaf89e0dbcead2a8b\nB = fabbafdbec6494ddb5ea4bf458536e87082369b0e53a200ed413f3e64b2fddc7c57c565710fbe73fae5b188fce97d8dcca74c2b5d90906c96d3c2c358a735cd\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 52cc61c42b341ad56dc11495e7cb2fe31e506b9e99522efbf44cd7c28468d3833c5e360f3c77b0aa43c0495c4e14665ab0d7cee9294c722f0de47d4401828401\nB = 3bdc9639c0fc2e77ab48d46e0b4ac6529c11c900e8fe4d82d75767c0556feb23d3f42d4924d16876a743feb386b7b84c7fd16a6c252f662faf0024d19972e62f\n\n# b^m = w-1\nResult = PossiblyPrime\nW = cff9897aa7dce0f2afad262b2de57d301305de717f3539c537c4ce062f8cb70df13fbc1eb4a3b9f0958a8810d1ca9042b4f23334b285a15fee3fc66498761d4b\nB = 9ceb43132fddf9ee4104ea1cb3eb2253c1d7f803f05f0305de9e31a17dd75832f47b8bf189a9b7ca0905f2a7470d9c6349080f481ff1708696fa12d972e7d7ba\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 67d1825dad5344170e65247a87aef1634a1b32bdc22f2f04d9d2959767bb5a27610fba55cd607e0f9fdd9fbb0f7f98e40d5e1eb2f52318fb5be4dbfd30d38861\nB = 260fb14724ff80984736859d8755ee98b25bcb56db9fde1db001a1e1273374034c5b75fd60b3710c7a08ce7d390776f010f384d4e32943cf0c477497d53e9e05\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = ad0bc85b58aaa204177aa9431a40929beb1cbea2dd6f66a25cc54600013213b225ba881805661df43f4208965ada7aacc8095d07d3cbef1a7bbfaae8b745f731\nB = 3d9310f20e9c80269fa6830c7e1a6f02fc5c58646001a9ef6b8b3e496602ff22c3dcb2ddb6a221723fc1722ce237fb46f7a7bb2945e415c8839b15a972f076c9\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = b25c917f55f6c7b596921daba919f35039e5d805119c1587e99849dd7104460c86214f162a6f17aea847bc7f3859e59f2991d457059511972ef373d4bc75e309\nB = a1f10b261dee84619b0423201d46af19eef9ec0612cf947c4d5c36c0c4b28207f75967e69452eabad0a5dcd28f27f7a8a7ed9c8b3e5026c6e0ba5634d94c2d44\n\n# b^m = 1\nResult = PossiblyPrime\nW = d3eeb0eff05b6992e9fa61b02755e155f4aae28c6e45ddb874edd86acdd2d83d18a20e0e00d8b8bc94b92d14fc3f41ced6ababe8ac98c7730c075dbe0f699369\nB = 6b7717269c6225203681a1cacec87cacd83003ec6e9e3f04effcc4f86634770c0860e1f2770b8f303719a44949664a1094205a99d95a0856758fed66d690105e\n\n# b^m = 1\nResult = PossiblyPrime\nW = 64561b8d9aa50340c3a01ccb3e6e17f5023513661c012be288f3900a3ca76890e67290b9560fa1d480f9d2aacccca581b5690636665f243fa13aff5d0bff12d3\nB = 1f5ff70d3d60671ebc5fbfca731898a04438053dbc3c841e6335f487e457d92d9efb5d506d5bef6872d58d12b9a41c950bfc38d12ed977c90eacdd6535b811a0\n\n# b^m = 1\nResult = PossiblyPrime\nW = 69c63fbf44df21b0ed0ee929a740c12d1f3f064da0dcd9d509f31fa45fa27d1a759ab5a9f6f1040d7ee90a0b1e68f779273c41ea1c1198fd547ff6bd70c7e787\nB = 5f7996a9bbfd8fd88e472220b70077bfdacdd63d88885134431f024c2acb7126827b174eb093eb5313f07bb5461de9b0feb7d77ca2c39c2a323a150f33ea525f\n\n# End of iteration\nResult = Composite\nW = 28cc3e08c44571c6dcb98a9ab8b4f3e2b16e1f884997d94a3188bcbb7f1b7cdaecdae8329c013ec8f75dc00004da0039943e4262cd080b16a42910102e00dddb\nB = 512061ab1c69931c2fa0bb89d8d09f3c9209230bf927ddd6fb6a72075f967ed3c4dbb5f437bf4d31ca7344782b22011ad56609dc19aed65319bababfc13dd7\n\n# End of iteration\nResult = Composite\nW = 4eeb7b4d371c45fe8586fee3b1efd792176b70f6cc2698dfa1dd028366626febe0199c3c5f77a5c3cad0057a04767383051d41965255d03681b2a37edad34a9b\nB = 4afc2e85f84017b3fd6967a227eb74c8297b40ea02733d9513bff9b3f01081963f25872f4254afc4e9321eea35b2a1e42eadb186fcc84f2f30f4a994350b93b8\n\n# End of iteration\nResult = Composite\nW = 8e35a959555dd2eb66c65cee3c264071d20671f159e1f9896f1d0ceb041905fcf053eacc189de317c3ee6f93901223cbf30d5b7ddbbdab981790e2f6397e6803\nB = 44c0153759309ec4e5b1e59d57c1b126545ef7ea302b6e43561df4d16068b922389d6924f01c945d9080d1f93a0732599bdedae72d6d590839dc0884dd860441\n\n\n# 0x6c1 = 1729 = 7 * 13 * 19 is a Fermat pseudoprime.\n\n# Found non-trivial square root\nResult = Composite\nW = 6c1\nB = b8\n\n# End of iteration\nResult = Composite\nW = 6c1\nB = 111\n\n# End of iteration\nResult = Composite\nW = 6c1\nB = 11d\n\n# Found non-trivial square root\nResult = Composite\nW = 6c1\nB = 19c\n\n# Found non-trivial square root\nResult = Composite\nW = 6c1\nB = 223\n\n# End of iteration\nResult = Composite\nW = 6c1\nB = 3aa\n\n# Found non-trivial square root\nResult = Composite\nW = 6c1\nB = 653\n\n\n# 1729 has a number of false witnesses.\n\n# b^m = 1\nResult = PossiblyPrime\nW = 6c1\nB = 78\n\n# b^m = 1\nResult = PossiblyPrime\nW = 6c1\nB = eb\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 6c1\nB = 178\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 6c1\nB = 178\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 6c1\nB = 1aa\n\n# b^m = 1\nResult = PossiblyPrime\nW = 6c1\nB = 271\n\n# b^m = 1\nResult = PossiblyPrime\nW = 6c1\nB = 2b2\n\n\n# 1 and W-1 are always nonwitnesses.\nResult = PossiblyPrime\nW = 6c1\nB = 1\n\nResult = PossiblyPrime\nW = 6c1\nB = 6c0\n\n\n# https://kconrad.math.uconn.edu/blurbs/ugradnumthy/millerrabin.pdf, examples\n# 3.1 and 3.2 has a complete list of false witnesses for 65 = 0x41 and\n# 85 = 0x55.\n\n# b^m = 1\nResult = PossiblyPrime\nW = 41\nB = 1\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 41\nB = 8\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 41\nB = 12\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 41\nB = 2f\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 41\nB = 39\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 41\nB = 40\n\n# b^m = 1\nResult = PossiblyPrime\nW = 55\nB = 1\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 55\nB = d\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 55\nB = 26\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 55\nB = 2f\n\n# Some b^(m*2^j) = w-1\nResult = PossiblyPrime\nW = 55\nB = 48\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 55\nB = 54\n\n# Other witnesses for 65 and 85 will report composite:\n\n# Found non-trivial square root\nResult = Composite\nW = 41\nB = 2c\n\n# End of iteration\nResult = Composite\nW = 41\nB = 16\n\n# End of iteration\nResult = Composite\nW = 41\nB = 14\n\n# End of iteration\nResult = Composite\nW = 41\nB = 2\n\n# End of iteration\nResult = Composite\nW = 41\nB = 3a\n\n# End of iteration\nResult = Composite\nW = 55\nB = 40\n\n# End of iteration\nResult = Composite\nW = 55\nB = 7\n\n# End of iteration\nResult = Composite\nW = 55\nB = 23\n\n# End of iteration\nResult = Composite\nW = 55\nB = 2e\n\n# End of iteration\nResult = Composite\nW = 55\nB = 2a\n\n# W below is composite, but it is one of the worst case scenarios for\n# Miller-Rabin, from Wycheproof tests. 1/4 of witnesses report the value is\n# prime. Test that we correctly classify false and true witnesses.\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 379c6027f818b5164bc13dff", + "5e996ec7210976f33570d5c60275918b8988d97a63bb6582af85682c45667a8b94b7acab4d919ede00f5bd2ba7abc8634d66f8875fd930f35ec8013d37b958e65f07de015c0574e64198d73aab5466f3a971b74830b7f1671cb9277fbc95c1ba8c29dc903d8cea1b74c22ab9164f9c438ab9ba7d9919f832e40c3e36faca7343e2314669b0104d9c4f2e1b011cdbd9c686baef0\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 3cc4b644965b2133caffc2bb6258b1ecd5b586b900a09b010382fcef709e4cd37ee3e3182bf8d393c1ab6f9a933d46338b3d960923d8c9607c2b2763d5680230a2bc0c91138e9d0ecb35e7154a06aaa902d34b9b14964b81f4d8232641492d83b22cd805a115e75ddd8e63b864c00e4c90ba36a41e7966e97e063a60a6a6cfd53e1f62a57852c7443e88dcf6245557a4b65494c3e88e466ad75316aaa9727def\n\n# b^m = 1\nResult = PossiblyPrime\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 40c03b6ba22bd62c0379b1c36dfccd34d61e3d15f7af1d5f6a60ab972a9d0e956e2bb9e275294e0f1c879eb7a4555443429c99a8d74f7bd359a1046ac30072c04b0e2cbd005be15ff4ce0c93276de2c513fbc5771b5059904a87f180530f6773498114b5aaf70da01967d8294742e451df6377dd5e64b2a8968f4ba61b51a154317d63958ff3788defbeeebee21af5027c2291e8c5df8c0b66770d91b683cffe\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 3c7c71b84f0c6c3817f57511946315cec7d0120a9c30ceabda801fbaec329a8f10c7b9f0ae90a3dada9885bf73a3cabed86784af9682f3dea50a7817f65cfc9190cf997f12784223c4965ed6e52a1be26d4dde31741cd3d1a2e2f3a74040d0f3868eef849727aa855f66c94791194ad5d360298364e2de9ca9288e6423f644b01d52e1bd66a9f7f00bd7995a9ca2ed16f40e902852c6250a3b52bbbf5bfd33e8\n\n# b^m = w-1\nResult = PossiblyPrime\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 36e6aa9acb399a50f52be0324dcef05f3cff3117f94538f6d0952b7d7be88ba4dc75d843ff7ff775e11f55c86ba6b2a6ddebd8850c33424b4d35c66321af426662e7074f0a2409a9ccf1c66ef7d823efc8240b8f3c7e9e8dd65a64e8a3ca5b26695ef17171ffe136c0593b179414c5b5ad0d66f2a25146c38b2f97e60b0472ed72de34bff1b6ac186f23645a1bbe909cdfc2b2d861eb44931568f1bb117d8a0c\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 278f2215d3ab836043fbfa472216bbdcedb775a6a0ed711754d05aa75089a9e5d8201e113d68656f37381e44483cd365f5d383bdca5ae8d1f2e6575d7873851cfff0e12b1cfe100a04cb300cbd924353fcbd3307d01242cf6a5e86e752c6f4586bcabf48b018bb97e65c3ed409fd6f67f98987517356d88344b3c8945ccd753148a37b648dd2db44d19522a69a9ad8eb23edc55340e85a198abf179ad731db41\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = afa1478bebbfe1157568f4ae53549b4c3a6a8771b816970bfac6ce5c8b962231db7a41da4d5f1d8bf504dcfe440325b54e1888bdae344eb969436a35e5c6ce5300d46313cb2fcb57fc83305f65f53d392de400e9231cbbc2ac8243defcaf7063c632b9601a81d83138274702ff336d727d3e82ccacce069843ac9c1c590c772c8c586b65c7085a1df5a47fc960d4098a22418b41f0062c77b5d55d17149d167\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 10f7030590b629e0313a61bdf46936a1f25db91b2b421f7ebb671f7844c22561b44b2f7699db61e5228ebb5817afad416325f9439eff7a82d8a630c504de12eaa44d97c79ee56e726ae74ee0b472f0d5fa8f20aee426e689cd33dd084f96bf4d928a21e815f7e8aaca4a5752f39c4a76bdfaa8227dc05d0dfa885d8b26d46fbcbf0d2e0d999d2c31ad84c306c9126539dbdf447f8dc707d29c7fa8021a767668\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 97dbb6a55c039ec926aaa5ff15a2917a2b4cafc3ca07c4c6b05f931d86c9bf60ee05cbbace194e5ca97682ec67c36394018d68c3536fbf13b50f8a7e31eaed87307759a0a48c6c58d21bc7c38b878c53db5d7a8e1fdd81abefc50470a3800852e74d76fdd1933e45f39ee97b8efb68837721890d867b32a894dd0ceb4c5844a05d384145865c10973ce748ccdd8fee73f1bf8611ce0535430b6b98fb36cad7a\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 225f58add44ed2b0a64a1d8452866d0f3c0cd45c8375e1bb33c188915c77fa11b81250b920245dda7f6126e5e0c79e6f98f89dc15db86394cf81b44f0d801e613fa4d5c6fef66fa31f26cfe6153f2e8159aad6b0351dcc0e93f9a68f649b2a77cff747b605b542d22419166befebec6cde3201e3c0cacaa2bc9d87073b8d1f1aa2b114d61de45ac8b0ad2141b43434a629ef284cd999fd82b310db7c57cf5c81\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 2780926c9cf7c1eb2aaa935d90b6d4dea44eeefdfcf9ccd4a33feb215e3a1cb2d358136a490fed18403947f3d98807819737c66e12d42c3cc8c0e246b96b3c3b0795ab875fbaf668b81b5b05bf23e258ea00a0a140a790f76e04ab619800b7597f614ffc1a1c94be2f3f1a71d64eb47d98e4653d76eabedacff3a97ecf590e6a1fd55096b7bc9314629f698d0fbe9b01a1f2bc0bf3a2c097f99f1fd222b52ed2\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 129cc5b0d9f8001b3895f1fcb4833779763636aeeeb3f980e63ea506202e6bde868444b6a58ff1dca08625f025a7e95a5eaaf1a8899eee640e3f05fbdb2867e2483bdc27c87b58684416e521c107f3667ed8dd23f0381edab767c5205a4378118bc011947cb6bdfe3fa4af50b8de876b555c9a0b2b0dae01261847f63e1e0cac2d032530bf19d5da60a04dfe22ce6343f60defbb94ccf0bdf010f89a4029720\n\n# b^m = 1\nResult = PossiblyPrime\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d", + "9a6cdcf912a2dd0a12ba7e87\nB = 4e2a47cf67c3331b1e9976f583f6339cf76a8d48682d01355c25b2aed90c5544e737ecfa849c17d27a64fad7e659ef48df9a3ac0410e5c7ca8d087fc3a3ba23e5a3f000be009fcc8227ead28158c5b5d66f2efb47111638ef61cea4984de42fbd476bc2236ad02154d3ce85805c45e49d16b496e313a4052a37d4b88a3b13e598d2074a3e36a37e90278601f2b2305e034f9bf3aea8e939c3ba274e8ff4d8a14\n\n# b^m = 1\nResult = PossiblyPrime\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 2455c4ab826e2ae72708a8ff51348ce4821cb86fa89e298c751c1754211c63b2e9a712d40f0235f310606fcf296726a86973f19f890d571f5b90f026e8d24d07bc0478a3c1333171587387f1f7fe4a770b593216f2743318aabacb3320c40a4e52b9f409e1176fe8db099e93a7991eb8568168e2e486fa5aa228bb1dce9df3290ef13fd21c331479bb0f8b7a7e7f03c5211ae8cc46fa4d0f46e86b2dadeddd5b\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 9951c2c02dd7deedce29bd0c78dd80066b1d69c0e6fe4a17f7d03c6a640d866d01fc8214bafb6737efd93d80a35b8993f5367ce287459b07954e9771ffbc72ccdd812d26a9bf4be0292a24eb5c3b56f09619b1c1b481f7566f7e50e65f69f5feb591bd107fec72a783429dbde6e2607f3db2c58d4b070a45b4d6b43537e19942ce890b04ae1e91069c04a96ed03ddb2f4fc456f136b98102c70a15700dbd911\n\n# End of iteration\nResult = Composite\nW = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nB = 4cb8217d229d5f95f6d94807a99363823655d6bba6bdafa4f0dbfe7a5c538aa79c918710aad4f55caaee5ab405ebdcef29dfb76cae99fca8d5a955b6315f71a3cb2d69a217ff45aed66ba87cdc5c0de5d512c6dd12e641e9fe6a2557dd2f03bf3a18650ff139efa179f0fbe69cbb4b54e50d13177bfe7bb90de36b548d5ccfef74b05d3c08a7e2a3bb4dc8d7eb338a7a1b068c433ea204d171eda5e7c6b6722c\n", +}; +static const size_t kLen42 = 155170; + +static const char *kData42[] = { "# This file contains multiples of the base point for various curves. The point\n# at infinity is represented as X = 0, Y = 0.\n#\n# This file is generated by make_ec_scalar_base_mult_tests.go\n\nCurve = P-224\n# N = -64\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29fd\nX = d9174b3ca6b093dee706b10e1d90309aa58aebf6c9006a37f3716fde\nY = 5091be99fda790ff9e6ecd2ac66b734f157f46402bf194d3bd8c194d\n\nCurve = P-224\n# N = -63\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29fe\nX = 2e74dd665404a8900c8e3d4f822b7a9b6dcb64940ef5f5671caba7ef\nY = f58bc45165c62d4c2c2ad7a8fb7e8f03322ce8ea5dc9c29f77625b14\n\nCurve = P-224\n# N = -62\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29ff\nX = c671c49a40fdb37ee1afb59c55915461d0c4b2a67cbe4f1f0c747c97\nY = 467fdfe495f8d2f97b00b4f8b83abdf40dc6c1b666fc5edc29225ed6\n\nCurve = P-224\n# N = -61\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a00\nX = 2396b9ee84e06252585475f54b390553185c05702db27913a80911b8\nY = 5bb2feab11a9448a5a11ae2b51e4132f0da82d7866b1b971dd85edd2\n\nCurve = P-224\n# N = -60\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a01\nX = 8c64ebb538c109bbd60fd54cf7ff47216d30ecefbac0824c6e50b291\nY = bfd6736f43c5ebb33959c9ec4444f5ea6c86e645b03dbed955ae402b\n\nCurve = P-224\n# N = -59\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a02\nX = 79fb86be63eed9cf12d44df82123ac91042f888b91b1b916bd3c107e\nY = 4bac5537dc8a32199840b52e4c4002733b7941c69c711c8248e8e33e\n\nCurve = P-224\n# N = -58\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a03\nX = eb81ac109e13fe579100edba2dd5389945b3fdf247b4036b018acf60\nY = 778b905f5bd3254728b9105ad7e4c53794201298b40d5fd166a75467\n\nCurve = P-224\n# N = -57\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a04\nX = 868ef00d187fef3010c81e77e214a828b4f9227cf5761d7eed89d916\nY = dae0eef456786c9592faebd46cf44d711fe16fa66b63bf7e8f70d911\n\nCurve = P-224\n# N = -56\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a05\nX = 7cdfaa27e1972788b9891be32d4491c5a9f7187a05c7d40107b7f0fc\nY = 46bb23e1eed098c6ac43e6c7e6a48c9e1e9c8169ef82488581f3782a\n\nCurve = P-224\n# N = -55\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a06\nX = a3168f507cc5ca03ec9507ff1fbe5ca00f3a1410948250749639b32a\nY = 7d83b007949ca192bbd2a691c208fe5e0adacbee0d5bc807cfc44a9e\n\nCurve = P-224\n# N = -54\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a07\nX = e095d7363877c57e22ad1a708b7775ae804cceacecf2e2df16618035\nY = b58fa951b3d1ce053b38a7cb072e69f64d281efc8cc9f1f42bbfde5e\n\nCurve = P-224\n# N = -53\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a08\nX = df5d3ed85b75fb433d057198debdd036cd9f11f339a4d607eb424932\nY = a61a1c0ab289b7658439375678b7a2e99b0c292297dbedf22eb912e9\n\nCurve = P-224\n# N = -52\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a09\nX = 6e53e26a8b7b28a7c7a61dd4d53d509514edad71188245929589c788\nY = f85f23a7c85fd7efc006d3eb13480eb0f6f647fdea5b59d06366d558\n\nCurve = P-224\n# N = -51\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a0a\nX = 5b4ce687825f6a00f83cd3bbc77c67dc14d91bd78d4e47f7e2ce7b0f\nY = 6a86b2451d4be8409dec03799f680c806bc355e798591857fb8eddd6\n\nCurve = P-224\n# N = -50\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a0b\nX = bce605150a1d4d750c5a043fb4136726f99b4a41f35d3b3832ea583f\nY = 768e2427050ad575667f8784b7fe8c6b2ae7873a7ff11ded64a13b0c\n\nCurve = P-224\n# N = -49\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a0c\nX = f18721e462d2340c4a88e00130d86691386ba2a83d1fb1dc8b927cca\nY = b31f4d99a118d1c2c19f0815a89a921305d8d52005b64dd249b6a8e9\n\nCurve = P-224\n# N = -48\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a0d\nX = f087c8764bb082e669a8afbc5db571971898ccc2c5d4baf73cd35e9d\nY = 72edb9b8154237917e7a05581d1cb2048d4d31c4ab90d005c9b67e4a\n\nCurve = P-224\n# N = -47\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a0e\nX = eca965fd046c7fd242e29ba1a178b71b1ec6e7af6a5b88232a285c92\nY = 3e526a6b5ecbd24f9308de03fdb757a51a564ebc5872dbef7886cc7c\n\nCurve = P-224\n# N = -46\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a0f\nX = 71f8a2cdf405c7ee499dbd7216a07e5aa61b8faa4fd20b516d2761d4\nY = 7a3008d5e50050b0ab427b36d15de75c0c190f7eb0b6a130106354f7\n\nCurve = P-224\n# N = -45\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a10\nX = cc96733b052b2f04f1cebb4cb8afb448a21c09821d6288b86cb8a17a\nY = 159e86c0c38e8f7fc210036054941444c90054fd2047a4eb0dbdbc6e\n\nCurve = P-224\n# N = -44\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a11\nX = d20981b43d053ca0ca30994a5586e7f2342c479b07c6c367d0025900\nY = 572b87044e041001d988793e9ae35378f7b9121a0d7abc1941b7cf8d\n\nCurve = P-224\n# N = -43\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a12\nX = 2f9a6dce655ee5d9f00b398e756defe1499b98df1e2edac8a784ad75\nY = bd851fc17271dca923b803a4a4554a949bfc20f14f26feacc2649762\n\nCurve = P-224\n# N = -42\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a13\nX = 0a8b3acff07b4e49ed1d6cd0e8cebbb0ac9f5bc5ec7d65e0adf7b21c\nY = 6aea047a1d6c9ea9df67e58538a8c88be591728e6c0d1443063199a4\n\nCurve = P-224\n# N = -41\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a14\nX = c772baaa90a968d497e0adbf116453e4f8c21c0acbea0ee34502317c\nY = de20e75207355906ed957ac40260148fda74b9acf699fa06caf08a62\n\nCurve = P-224\n# N = -40\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a15\nX = 5e4cdfc6fc36ea0cd69a38a7485a317a0aeded6b5f6cd80072826385\nY = 14afef7672ca22afe13292524ab55dfeef828e7e1e6abd8aadb9f27f\n\nCurve = P-224\n# N = -39\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a16\nX = 9a89bcce6f9b400618997c1184c5099a154a07954cb15d5c9f4492ca\nY = f48eba6a110031e81a8e50a0c3e5c141e3a66d12ef040e2cd36c4fcd\n\nCurve = P-224\n# N = -38\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a17\nX = 68eee585a12332d41aef6f91a587bc3ca57329508fcc9f5bb3907516\nY = df09fa68ba98511870b892e5f59c02792aed884376ecc9b081641901\n\nCurve = P-224\n# N = -37\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a18\nX = 9810b8218ec461154d317a954df66f5f81e51dc07ed7421b17d0b8aa\nY = e166fda56ccb98bbfa8423bcacbcacc05ddac7e88ff0ce13c805a10a\n\nCurve = P-224\n# N = -36\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a19\nX = 6116976ec4511b1b9ee2b839378ff122c2bdb3f58823a82a68aef8e1\nY = 99b4990881ca11762f616528685fbf94eb1708fa1ae25f010d070beb\n\nCurve = P-224\n# N = -35\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a1a\nX = da200dcda742573ca097e34bb87b356b84541f765cf38d2bf07471b0\nY = ef05917f8f13fc686a8a0b6b544b0a1ed3488f1dff476a9a9c7cc19e\n\nCurve = P-224\n# N = -34\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a1b\nX = f8188c7623f76642286b8e9e4d4c5d58b8eaf7265b3b0e816076e7e4\nY = bc6fc80b788a058da4873e54acc733db09105a6775bfb3faa6c549af\n\nCurve = P-224\n# N = -33\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a1c\nX = 224c4a62c8b1028606603cce1d451409b23d680bb063a8e6875d3b5c\nY = ca97069c235efeb00a05729df91171d17605320950a1cea2e49fd119\n\nCurve = P-224\n# N = -32\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a1d\nX = b700a5c3bb6379de6caea37ff7a47ca909bec01a603c5ec5e1d1e794\nY = 39e4c2c2e0968ef8a7cd7cabbfd37d0d2335579e72145109b23ce46a\n\nCurve = P-224\n# N = -31\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a1e\nX = 0ecf1b60836e92b7af968bccd69ff8300d55a42b0e855a4ff3546eab\nY = 4bd76a3b0d1e95b063d22f890c68ebfd2327e3af12611c8f66bc1d21\n\nCurve = P-224\n# N = -30\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a1f\nX = 599b7e7e639bc335eb891295f0d8f4d8d8c76e588f0767741ab07558\nY = a5aa7d10418290c0f35d3e4fccd02e4b3bc48ac8a87ad052e4cdcc14\n\nCurve = P-224\n# N = -29\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a20\nX = f63f9d855262e9b691f9bb848c78859508a8c1e6fb3246212e146e5c\nY = f75d5db787bfb5cb199828b1040e7ccd9a20d198d9f82a81001cf9e4\n\nCurve = P-224\n# N = -28\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a21\nX = 1243a602d84f3ea7cf4a56f86ccb93395c1d609af98d6474d8e7afb1\nY = 42c598ef4d24cb1f640cafc463a244dc4a26c694bf7b4737c8c6ec7c\n\nCurve = P-224\n# N = -27\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a22\nX = 1989153b5f6636b610854bcc50afc929e914c03da51a4a8239f4865b\nY = 46c7e1923864a71fbbc324ff6e9b7c842baf5973e6e6d0ed9abd8695\n\nCurve = P-224\n# N = -26\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a23\nX = 263ed2217", "b1f0a813156e647e87e6cf618b9635c3f910f9d92153b04\nY = ba1722401bfc9e41088cac3974d5ec7ad91fa0cd95b0a3555a23194a\n\nCurve = P-224\n# N = -25\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a24\nX = f1a7ae364dba054b51dff5d5ce16fb28965fb3777dca1ce3c1ad6ad0\nY = b15ffa68153924545b397331387cee02f86c97f51fb4d28a172db95d\n\nCurve = P-224\n# N = -24\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a25\nX = affdfabc0525468041b2baf73874ec60762a670562c0248e474456a1\nY = 00828bfdac88b772536123340be2bf21ccec9cda4e9ba00d50db9e30\n\nCurve = P-224\n# N = -23\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a26\nX = 2da9b6b6ec26e646ceef802c560782026da04bf2f2d196f4bca2d074\nY = 58d6f33f99ff23e92c8a043b47b66ae89f7d30289b35b16aea963966\n\nCurve = P-224\n# N = -22\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a27\nX = c9bdd86f5fb7fe1e54c6ff9026f20add6c1984f1ef22b80a887af62c\nY = eec590de16f168bde8d375e5dcc22402db091965c0a5bf7f95cf88f5\n\nCurve = P-224\n# N = -21\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a28\nX = a3d482c3e7eec18c534d4ceb1c9b8cefecb369a68a85a4e826165174\nY = 9b11ffa67c105561b349cb872408dfdc8daf9071a39d9c38fee98408\n\nCurve = P-224\n# N = -20\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a29\nX = fcc7f2b45df1cd5a3c0c0731ca47a8af75cfb0347e8354eefe782455\nY = f2a28eefd8b345832116f1e574f2c6b2c895aa8c24941f40d8b80ad1\n\nCurve = P-224\n# N = -19\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a2a\nX = a1e81c04f30ce201c7c9ace785ed44cc33b455a022f2acdbc6cae83c\nY = 230e093c24f638f533dac6e2b6d01da3b5e7f45429315ca93fb8e634\n\nCurve = P-224\n# N = -18\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a2b\nX = c9ff61b040874c0568479216824a15eab1a838a797d189746226e4cc\nY = 156729f1a003647030666054e208180f8f7b0df2249e44fba5931fff\n\nCurve = P-224\n# N = -17\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a2c\nX = b8357c3a6ceef288310e17b8bfeff9200846ca8c1942497c484403bc\nY = 00eb610599f95942df1082e4f9426d086fb9c6231ae8b24933aab5db\n\nCurve = P-224\n# N = -16\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a2d\nX = 0b6ec4fe1777382404ef679997ba8d1cc5cd8e85349259f590c4c66d\nY = cc662b9bcba6f94ee4ff1c9c10bd6ddd0d138df2d099a282152a4b7f\n\nCurve = P-224\n# N = -15\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a2e\nX = baa4d8635511a7d288aebeedd12ce529ff102c91f97f867e21916bf9\nY = 6865a0b8a607f0b04b13d1cb0aa992a5a97f5ee8ca1849efb9ed8678\n\nCurve = P-224\n# N = -14\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a2f\nX = a53640c83dc208603ded83e4ecf758f24c357d7cf48088b2ce01e9fa\nY = 2a7eb328dbe663b5a468b5bc97a040a3745396ba636b964370dc3352\n\nCurve = P-224\n# N = -13\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a30\nX = 34e8e17a430e43289793c383fac9774247b40e9ebd3366981fcfaeca\nY = dad7e608e380480434ea641cc82c82cbc92801469c8db0204f13489a\n\nCurve = P-224\n# N = -12\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a31\nX = 6e31ee1dc137f81b056752e4deab1443a481033e9b4c93a3044f4f7a\nY = df82220fc7a4021549165325725f94c3410ddb56c54e161fc9ef62ee\n\nCurve = P-224\n# N = -11\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a32\nX = ef53b6294aca431f0f3c22dc82eb9050324f1d88d377e716448e507c\nY = df4aefffbf6d1699c930481cd102127c9a3d992048ab05929b6e5927\n\nCurve = P-224\n# N = -10\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a33\nX = aea9e17a306517eb89152aa7096d2c381ec813c51aa880e7bee2c0fd\nY = c644cf154cc81f5ade49345e541b4d4b5c1adb3eb5c01c14ee949aa2\n\nCurve = P-224\n# N = -9\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a34\nX = 2fdcccfee720a77ef6cb3bfbb447f9383117e3daa4a07e36ed15f78d\nY = c8e8cd1b0be40b0877cfca1958603122f1e6914f84b7e8e968ae8b9e\n\nCurve = P-224\n# N = -8\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a35\nX = 858e6f9cc6c12c31f5df124aa77767b05c8bc021bd683d2b55571550\nY = fb9232c15a3bc7673a3a03b0253824c53d0fd1411b1cabe2e187fb87\n\nCurve = P-224\n# N = -7\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a36\nX = db2f6be630e246a5cf7d99b85194b123d487e2d466b94b24a03c3e28\nY = f0c5cff7ab680d09ee11dae84e9c1072ac48ea2e744b1b7f72fd469e\n\nCurve = P-224\n# N = -6\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a37\nX = 1f2483f82572251fca975fea40db821df8ad82a3c002ee6c57112408\nY = 76050f3348af2664aac3a8b05281304ebc7a7914c6ad50a4b4eac383\n\nCurve = P-224\n# N = -5\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a38\nX = 31c49ae75bce7807cdff22055d94ee9021fedbb5ab51c57526f011aa\nY = d817400e8ba9ca13a45f360e3d121eaaeb39af82d6001c8186f5f866\n\nCurve = P-224\n# N = -4\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a39\nX = ae99feebb5d26945b54892092a8aee02912930fa41cd114e40447301\nY = fb7da7f5f13a43b81774373c879cd32d6934c05fa758eeb14fcfab38\n\nCurve = P-224\n# N = -3\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\nX = df1b1d66a551d0d31eff822558b9d2cc75c2180279fe0d08fd896d04\nY = 5c080fc3522f41bbb3f55a97cfecf21f882ce8cbb1e50ca6e67e56dc\n\nCurve = P-224\n# N = -2\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\nX = 706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6\nY = e3d4895843da188fd58fb0567976d7b50359d6b78530c8f62d1b1746\n\nCurve = P-224\n# N = -1\nN = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nX = b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21\nY = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd\n\nCurve = P-224\n# N = 0\nN = 00000000000000000000000000000000000000000000000000000000\nX = 00000000000000000000000000000000000000000000000000000000\nY = 00000000000000000000000000000000000000000000000000000000\n\nCurve = P-224\n# N = 1\nN = 00000000000000000000000000000000000000000000000000000001\nX = b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21\nY = bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34\n\nCurve = P-224\n# N = 2\nN = 00000000000000000000000000000000000000000000000000000002\nX = 706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6\nY = 1c2b76a7bc25e7702a704fa986892849fca629487acf3709d2e4e8bb\n\nCurve = P-224\n# N = 3\nN = 00000000000000000000000000000000000000000000000000000003\nX = df1b1d66a551d0d31eff822558b9d2cc75c2180279fe0d08fd896d04\nY = a3f7f03cadd0be444c0aa56830130ddf77d317344e1af3591981a925\n\nCurve = P-224\n# N = 4\nN = 00000000000000000000000000000000000000000000000000000004\nX = ae99feebb5d26945b54892092a8aee02912930fa41cd114e40447301\nY = 0482580a0ec5bc47e88bc8c378632cd196cb3fa058a7114eb03054c9\n\nCurve = P-224\n# N = 5\nN = 00000000000000000000000000000000000000000000000000000005\nX = 31c49ae75bce7807cdff22055d94ee9021fedbb5ab51c57526f011aa\nY = 27e8bff1745635ec5ba0c9f1c2ede15414c6507d29ffe37e790a079b\n\nCurve = P-224\n# N = 6\nN = 00000000000000000000000000000000000000000000000000000006\nX = 1f2483f82572251fca975fea40db821df8ad82a3c002ee6c57112408\nY = 89faf0ccb750d99b553c574fad7ecfb0438586eb3952af5b4b153c7e\n\nCurve = P-224\n# N = 7\nN = 00000000000000000000000000000000000000000000000000000007\nX = db2f6be630e246a5cf7d99b85194b123d487e2d466b94b24a03c3e28\nY = 0f3a30085497f2f611ee2517b163ef8c53b715d18bb4e4808d02b963\n\nCurve = P-224\n# N = 8\nN = 00000000000000000000000000000000000000000000000000000008\nX = 858e6f9cc6c12c31f5df124aa77767b05c8bc021bd683d2b55571550\nY = 046dcd3ea5c43898c5c5fc4fdac7db39c2f02ebee4e3541d1e78047a\n\nCurve = P-224\n# N = 9\nN = 00000000000000000000000000000000000000000000000000000009\nX = 2fdcccfee720a77ef6cb3bfbb447f9383117e3daa4a07e36ed15f78d\nY = 371732e4f41bf4f7883035e6a79fcedc0e196eb07b48171697517463\n\nCurve = P-224\n# N = 10\nN = 0000000000000000000000000000000000000000000000000000000a\nX = aea9e17a306517eb89152aa7096d2c381ec813c51aa880e7bee2c0fd\nY = 39bb30eab337e0a521b6cba1abe4b2b3a3e524c14a3fe3eb116b655f\n\nCurve = P-224\n# N = 11\nN = 0000000000000000000000000000000000000000000000000000000b\nX = ef53b6294aca431f0f3c22dc82eb9050324f1d88d377e716448e507c\nY = 20b510004092e96636cfb7e32efded8265c266dfb754fa6d6491a6da\n\nCurve = P-224\n# N = 12\nN = 0000000000000000000000000000000000000000000000000000000c\nX = 6e31ee1dc137f81b056752e4deab1443a481033e9b4c93a3044f4f7a\nY = 207dddf0385bfdeab6e9acda8da06b3bbef224a93ab1e9e036109d13\n\nCurve = P-224\n# N = 13\nN = 0000000000000000000000000000000000000000000000000000000d\nX = 34e8e17a430e43289793c383fac9774247b40e9ebd3366981fcfaeca\nY = 252819f71c7fb7fbcb159be337d37d3336d7feb963724fdfb0ecb767\n\nCur", "ve = P-224\n# N = 14\nN = 0000000000000000000000000000000000000000000000000000000e\nX = a53640c83dc208603ded83e4ecf758f24c357d7cf48088b2ce01e9fa\nY = d5814cd724199c4a5b974a43685fbf5b8bac69459c9469bc8f23ccaf\n\nCurve = P-224\n# N = 15\nN = 0000000000000000000000000000000000000000000000000000000f\nX = baa4d8635511a7d288aebeedd12ce529ff102c91f97f867e21916bf9\nY = 979a5f4759f80f4fb4ec2e34f5566d595680a11735e7b61046127989\n\nCurve = P-224\n# N = 16\nN = 00000000000000000000000000000000000000000000000000000010\nX = 0b6ec4fe1777382404ef679997ba8d1cc5cd8e85349259f590c4c66d\nY = 3399d464345906b11b00e363ef429221f2ec720d2f665d7dead5b482\n\nCurve = P-224\n# N = 17\nN = 00000000000000000000000000000000000000000000000000000011\nX = b8357c3a6ceef288310e17b8bfeff9200846ca8c1942497c484403bc\nY = ff149efa6606a6bd20ef7d1b06bd92f6904639dce5174db6cc554a26\n\nCurve = P-224\n# N = 18\nN = 00000000000000000000000000000000000000000000000000000012\nX = c9ff61b040874c0568479216824a15eab1a838a797d189746226e4cc\nY = ea98d60e5ffc9b8fcf999fab1df7e7ef7084f20ddb61bb045a6ce002\n\nCurve = P-224\n# N = 19\nN = 00000000000000000000000000000000000000000000000000000013\nX = a1e81c04f30ce201c7c9ace785ed44cc33b455a022f2acdbc6cae83c\nY = dcf1f6c3db09c70acc25391d492fe25b4a180babd6cea356c04719cd\n\nCurve = P-224\n# N = 20\nN = 00000000000000000000000000000000000000000000000000000014\nX = fcc7f2b45df1cd5a3c0c0731ca47a8af75cfb0347e8354eefe782455\nY = 0d5d7110274cba7cdee90e1a8b0d394c376a5573db6be0bf2747f530\n\nCurve = P-224\n# N = 21\nN = 00000000000000000000000000000000000000000000000000000015\nX = a3d482c3e7eec18c534d4ceb1c9b8cefecb369a68a85a4e826165174\nY = 64ee005983efaa9e4cb63478dbf7202272506f8e5c6263c701167bf9\n\nCurve = P-224\n# N = 22\nN = 00000000000000000000000000000000000000000000000000000016\nX = c9bdd86f5fb7fe1e54c6ff9026f20add6c1984f1ef22b80a887af62c\nY = 113a6f21e90e9742172c8a1a233ddbfc24f6e69a3f5a40806a30770c\n\nCurve = P-224\n# N = 23\nN = 00000000000000000000000000000000000000000000000000000017\nX = 2da9b6b6ec26e646ceef802c560782026da04bf2f2d196f4bca2d074\nY = a7290cc06600dc16d375fbc4b84995166082cfd764ca4e951569c69b\n\nCurve = P-224\n# N = 24\nN = 00000000000000000000000000000000000000000000000000000018\nX = affdfabc0525468041b2baf73874ec60762a670562c0248e474456a1\nY = ff7d74025377488dac9edccbf41d40dd33136325b1645ff2af2461d1\n\nCurve = P-224\n# N = 25\nN = 00000000000000000000000000000000000000000000000000000019\nX = f1a7ae364dba054b51dff5d5ce16fb28965fb3777dca1ce3c1ad6ad0\nY = 4ea00597eac6dbaba4c68ccec78311fc0793680ae04b2d75e8d246a4\n\nCurve = P-224\n# N = 26\nN = 0000000000000000000000000000000000000000000000000000001a\nX = 263ed2217b1f0a813156e647e87e6cf618b9635c3f910f9d92153b04\nY = 45e8ddbfe40361bef77353c68b2a138426e05f326a4f5caaa5dce6b7\n\nCurve = P-224\n# N = 27\nN = 0000000000000000000000000000000000000000000000000000001b\nX = 1989153b5f6636b610854bcc50afc929e914c03da51a4a8239f4865b\nY = b9381e6dc79b58e0443cdb009164837ad450a68c19192f126542796c\n\nCurve = P-224\n# N = 28\nN = 0000000000000000000000000000000000000000000000000000001c\nX = 1243a602d84f3ea7cf4a56f86ccb93395c1d609af98d6474d8e7afb1\nY = bd3a6710b2db34e09bf3503b9c5dbb22b5d9396b4084b8c837391385\n\nCurve = P-224\n# N = 29\nN = 0000000000000000000000000000000000000000000000000000001d\nX = f63f9d855262e9b691f9bb848c78859508a8c1e6fb3246212e146e5c\nY = 08a2a24878404a34e667d74efbf1833165df2e672607d57effe3061d\n\nCurve = P-224\n# N = 30\nN = 0000000000000000000000000000000000000000000000000000001e\nX = 599b7e7e639bc335eb891295f0d8f4d8d8c76e588f0767741ab07558\nY = 5a5582efbe7d6f3f0ca2c1b0332fd1b3c43b753757852fad1b3233ed\n\nCurve = P-224\n# N = 31\nN = 0000000000000000000000000000000000000000000000000000001f\nX = 0ecf1b60836e92b7af968bccd69ff8300d55a42b0e855a4ff3546eab\nY = b42895c4f2e16a4f9c2dd076f3971401dcd81c50ed9ee3709943e2e0\n\nCurve = P-224\n# N = 32\nN = 00000000000000000000000000000000000000000000000000000020\nX = b700a5c3bb6379de6caea37ff7a47ca909bec01a603c5ec5e1d1e794\nY = c61b3d3d1f69710758328354402c82f1dccaa8618debaef64dc31b97\n\nCurve = P-224\n# N = 33\nN = 00000000000000000000000000000000000000000000000000000021\nX = 224c4a62c8b1028606603cce1d451409b23d680bb063a8e6875d3b5c\nY = 3568f963dca1014ff5fa8d6206ee8e2d89facdf6af5e315d1b602ee8\n\nCurve = P-224\n# N = 34\nN = 00000000000000000000000000000000000000000000000000000022\nX = f8188c7623f76642286b8e9e4d4c5d58b8eaf7265b3b0e816076e7e4\nY = 439037f48775fa725b78c1ab5338cc23f6efa5988a404c05593ab652\n\nCurve = P-224\n# N = 35\nN = 00000000000000000000000000000000000000000000000000000023\nX = da200dcda742573ca097e34bb87b356b84541f765cf38d2bf07471b0\nY = 10fa6e8070ec03979575f494abb4f5e02cb770e200b8956563833e63\n\nCurve = P-224\n# N = 36\nN = 00000000000000000000000000000000000000000000000000000024\nX = 6116976ec4511b1b9ee2b839378ff122c2bdb3f58823a82a68aef8e1\nY = 664b66f77e35ee89d09e9ad797a0406a14e8f705e51da0fef2f8f416\n\nCurve = P-224\n# N = 37\nN = 00000000000000000000000000000000000000000000000000000025\nX = 9810b8218ec461154d317a954df66f5f81e51dc07ed7421b17d0b8aa\nY = 1e99025a93346744057bdc435343533ea2253817700f31ec37fa5ef7\n\nCurve = P-224\n# N = 38\nN = 00000000000000000000000000000000000000000000000000000026\nX = 68eee585a12332d41aef6f91a587bc3ca57329508fcc9f5bb3907516\nY = 20f605974567aee78f476d1a0a63fd85d51277bc8913364f7e9be700\n\nCurve = P-224\n# N = 39\nN = 00000000000000000000000000000000000000000000000000000027\nX = 9a89bcce6f9b400618997c1184c5099a154a07954cb15d5c9f4492ca\nY = 0b714595eeffce17e571af5f3c1a3ebd1c5992ed10fbf1d32c93b034\n\nCurve = P-224\n# N = 40\nN = 00000000000000000000000000000000000000000000000000000028\nX = 5e4cdfc6fc36ea0cd69a38a7485a317a0aeded6b5f6cd80072826385\nY = eb5010898d35dd501ecd6dadb54aa200107d7181e195427552460d82\n\nCurve = P-224\n# N = 41\nN = 00000000000000000000000000000000000000000000000000000029\nX = c772baaa90a968d497e0adbf116453e4f8c21c0acbea0ee34502317c\nY = 21df18adf8caa6f9126a853bfd9feb6f258b4653096605f9350f759f\n\nCurve = P-224\n# N = 42\nN = 0000000000000000000000000000000000000000000000000000002a\nX = 0a8b3acff07b4e49ed1d6cd0e8cebbb0ac9f5bc5ec7d65e0adf7b21c\nY = 9515fb85e293615620981a7ac75737731a6e8d7193f2ebbcf9ce665d\n\nCurve = P-224\n# N = 43\nN = 0000000000000000000000000000000000000000000000000000002b\nX = 2f9a6dce655ee5d9f00b398e756defe1499b98df1e2edac8a784ad75\nY = 427ae03e8d8e2356dc47fc5b5baab56a6403df0eb0d901533d9b689f\n\nCurve = P-224\n# N = 44\nN = 0000000000000000000000000000000000000000000000000000002c\nX = d20981b43d053ca0ca30994a5586e7f2342c479b07c6c367d0025900\nY = a8d478fbb1fbeffe267786c1651cac860846ede5f28543e6be483074\n\nCurve = P-224\n# N = 45\nN = 0000000000000000000000000000000000000000000000000000002d\nX = cc96733b052b2f04f1cebb4cb8afb448a21c09821d6288b86cb8a17a\nY = ea61793f3c7170803deffc9fab6bebba36ffab02dfb85b14f2424393\n\nCurve = P-224\n# N = 46\nN = 0000000000000000000000000000000000000000000000000000002e\nX = 71f8a2cdf405c7ee499dbd7216a07e5aa61b8faa4fd20b516d2761d4\nY = 85cff72a1affaf4f54bd84c92ea218a2f3e6f0814f495ecfef9cab0a\n\nCurve = P-224\n# N = 47\nN = 0000000000000000000000000000000000000000000000000000002f\nX = eca965fd046c7fd242e29ba1a178b71b1ec6e7af6a5b88232a285c92\nY = c1ad9594a1342db06cf721fc0248a859e5a9b143a78d241087793385\n\nCurve = P-224\n# N = 48\nN = 00000000000000000000000000000000000000000000000000000030\nX = f087c8764bb082e669a8afbc5db571971898ccc2c5d4baf73cd35e9d\nY = 8d124647eabdc86e8185faa7e2e34dfa72b2ce3b546f2ffa364981b7\n\nCurve = P-224\n# N = 49\nN = 00000000000000000000000000000000000000000000000000000031\nX = f18721e462d2340c4a88e00130d86691386ba2a83d1fb1dc8b927cca\nY = 4ce0b2665ee72e3d3e60f7ea57656debfa272adffa49b22db6495718\n\nCurve = P-224\n# N = 50\nN = 00000000000000000000000000000000000000000000000000000032\nX = bce605150a1d4d750c5a043fb4136726f99b4a41f35d3b3832ea583f\nY = 8971dbd8faf52a8a9980787b48017393d51878c5800ee2129b5ec4f5\n\nCurve = P-224\n# N = 51\nN = 00000000000000000000000000000000000000000000000000000033\nX = 5b4ce687825f6a00f83cd3bbc77c67dc14d91bd78d4e47f7e2ce7b0f\nY = 95794dbae2b417bf6213fc866097f37e943caa1867a6e7a80471222b\n\nCurve = P-224\n# N = 52\nN = 00000000000000000000000000000000000000000000000000000034\nX = 6e53e26a8b7b28a7c7a61dd4d53d509514edad71188245929589c788\nY = 07a0dc5837a028103ff92c14ecb7f14e0909b80215a4a62f9c992aa9\n\nCurve = P-224\n# N = 53\nN = 00000000000000000000000000000000000000000000000000000035\nX = df5d3ed85b75fb433d057198debdd036cd", @@ -2645,9 +2732,9 @@ static const char *kData40[] = { "9642dd68d1a988bb828d895ed5d116d7f87032133e2949da6c395738534b93220fe2ad07f0b291adc92433ee2dee160709ed9985b0c\nY = 0177acd53b00c9f29f3ece28b4724f834f49606d3f34656a52ef5443c5d9216ae388b345b828c8b09a2b2e495cf2adcdd6b5886f4ded1741425ac31c832ba74eed38\n\nCurve = P-521\n# N = 29\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d\nX = 0174c644d6c94b68287db3c1fbfcb65a085ff9f45131e86265ec28bef38f7664a1305ca9bc06876d72914003ab8e847ffb9ef33d8595d51f6d962c3927618eda25dc\nY = 011af3a7c2f87f419e6805acc95b41b7b7820233ef8fcb6441fcb5cf5eb795ad34b7be0e21952ce0d90b50c2732d706d303f0679927c26ebbfbd187bbbc4821a0c30\n\nCurve = P-521\n# N = 30\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e\nX = 00d087d70d11074b36bb0b6913261570a6b33cf015e1f913a610ea52dbcbae2a3e4435573f35d14754c6352756cc169eac6bf7d9b10f1b0af5956117fab72ec4b081\nY = 00c4d07f8c3cafdc1636811d7b95a6ac2dcebcde1cd94afbdbd3e47015660d29f15354d5b99d1d7d4adaf279efee5d860be9069edd46ff01cfc7b64d6af6579dbed3\n\nCurve = P-521\n# N = 31\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f\nX = 00d8e9920cf30f0c6615006a58cdb7307b7db574589657c2a6617260a83ca5e7726cd65543a904c9d429fc14c1ac09cd6b220dcfb5e488e248122257d0e0c16a8803\nY = 0127b023b5454a663987df09c13a214a30ec8b5406328f10c8060aefb72cbed1aa30f76b8c3244d14790139a868cae4cc263aa1bd97c7b54318aca4677c739792d19\n\nCurve = P-521\n# N = 32\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020\nX = 0166ba3596d20a3a469443707af94ba15b343e3e16654e068038dba7ecefb9e5ebd6ea04a35dc73596ec67d69bd6ba5d1f949cf7475cd6c5c78247915ab876e56a9e\nY = 00477b0ff4d1940ab8111635e75ff3e08268ff7bd8bf5ff01967c1df01c65c2dd77de204cdb818cdd6b9b74de1c7ea0f36dfcd98c965ab96163695ca9a9914a156aa\n\nCurve = P-521\n# N = 33\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021\nX = 00284195f0978fb969e68c76eb4e3c76f58e52086d482be92613f381421a74236df0abdbea7e2b77ef1ae9a519a57aa53ac2a5ec59186b2ed12d5ea2e1fc649f308d\nY = 007e43eb08c656dc636b7b7a3bc869056d3a24d513abe063c6639e016769614ac5f2e7656ecbf3d138bf00bd7216c16deb3a88effd5c228b58f36be95a3dd3e11c4d\n\nCurve = P-521\n# N = 34\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022\nX = 0122f66451d0843fb59448c58962f5b7c130eb8db26b14dbf8bf0e7d84e588581cdea866a98b697d432cc1f1f8993db2173b55ac0435b8317a8ddfeab253d54e4d87\nY = 01bed137b942249932f3c1f12141aee1538aa373f5aee0a89a48d357d7c04965b0515097293e4f87a6a413184d9be8ea91406baa5223db7571bcda9dba82fd9a06dc\n\nCurve = P-521\n# N = 35\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023\nX = 00ddc300757549630a78398b62069e0ba392a267a642b593e0bfc4a780b56f97392bb4806c84fda74023ee4a618608f6b2cea92ff614b5dcc8d8dc1039c9ccd7d718\nY = 00c1bd2d07f6ac7fc5cc1b83431f0c30dbbfa510936cb5d85bcf462796591a31db509ab1178bd2c701425c212522ee69e797deba4db422640a4d3eb1d3ef241e07f4\n\nCurve = P-521\n# N = 36\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024\nX = 01ad81c98659bd21e082514d5e71894c417b2a25afe471eb8ad9e81a91dac8198aa9f385da9cc679bb96e724672821b585e05323bdc821e585edae56cbf798bd6ef0\nY = 01217026e6cf8e6fc4e761aeda5705b3c0f8ca7f475441227b9761285bc6dc8f01af1af50b0bb140013a75db963d8698121dd2c4ba1759a98b43ac7712f8455c99ef\n\nCurve = P-521\n# N = 37\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025\nX = 00944f64a6c21832b67139e798352ded5867c35c5d56c1d59e4229ed0ae6af9d5749bd445763a28856040e58e26ee0980df28c64e76ae4780273f1ac4d59b557a36f\nY = 0150b7ee1b02028ab7410c4b9624f26cb192fe4e6ff21865f85926317da6b7991305dcbdbc2471c83f81b85c564995a057c331a4be4056988296312bf98394fb2a03\n\nCurve = P-521\n# N = 38\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026\nX = 0195aeb1530c7d932a18922563d71ef6e7449078207b610c2c77690815bcef8f312718413823ed8d4ba112ac2ecc9d4e688346f120cb19ae965d853028d72a5f4a8b\nY = 00e0c42d3cc093242000c0ec0975884bb0308611d8bd49b6090a06c5bdf7d0e1544851f9ba596291ef1ee3e3c9a002b7985ba29e51d193b701e0c87e1acd797bd130\n\nCurve = P-521\n# N = 39\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027\nX = 0124a0b8f411fbad60755264126356a499029e9661a49b5b907238d9fd62359c6ea7256b0cc58626a1e2ac0bf434e5fa31795b4fa1d48083af670b704119ee33b77c\nY = 001029616edc7335dce3602a9a406bbd399c68937baa8796154cdc0b1240c690db4818dc59feb96825aaa3caf2415944e762f212e74b698e40abd8dcdc61228b61a6\n\nCurve = P-521\n# N = 40\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028\nX = 002efdef97e46cd544553a0c67f41886ad969f67883679409022c4ad6090a169b596f85d832dc9767b2bb513eb4d0d01e18f067fffb5ac53dbcfaf456a57824c9d93\nY = 00d88e2e3fdd283592d6c4c2a4687e65a6a823ffc6106dff96f75bb3141d0df516fe46a5357b21dc22404f4ef79e44aa97b22c101fec75d81e09b591f36738ae8e5c\n\nCurve = P-521\n# N = 41\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029\nX = 0175a140ed79e85e24a763ebfd9d2883082552a523e4b28998a685b85f23864a60c816b931eaf495ccce4c08c3ddc8297bfaddfda1a522cc2af68e00ce952624381e\nY = 01b09696d71855e2d4ed36f21343ca399be7ab59e580e9ee563223de821b22c82111b39e0e11ecf327da052a6e551fa28ebdf75dd758e7f3a3ecebeb760ec1028ecf\n\nCurve = P-521\n# N = 42\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a\nX = 0161960dcd7bd7263ed37a0a1c0aa146f918874f472a2a5de6f2f5633364979e0bda2868fa8595d78243ea20d4e83c72305e420bebfa3767dcd4b7902612a9491855\nY = 016ac1cfdd433815668a5c6ae0d1031bc121a00e6a6b58d1eec42da602f01cc43b7ef728d67c4e39de86324cba6a2c4cce08414fdd6ad7d0722338a50e352ad521ef\n\nCurve = P-521\n# N = 43\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b\nX = 018c0148a165ec58e4fed55022d90544d8a070678aa2ec1419af8ef0f94438fea396fc66ad7aed7d37dda3a74e7a9b3d85ca51f0b62fdee07d20713e3083224f497e\nY = 010abbaa1f099e78869aebf7a83c7aa3bf242677e91db1d144cd7a3037819f1a0bec67fd6098879b1cf1932d602b547ce17a94edb92f76b688d2895829067683adbf\n\nCurve = P-521\n# N = 44\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c\nX = 013fdb51df11f0b29b485f0c48a04cca16cfe1cecbe9fd57f6507c3cfcbef88c88cf761e3e73e6509ec7e77fffe912d2b367b25aa02cb1d33a5378f253cdcde738d2\nY = 01d14c8c184a7228a7034e4f65b3d0338f667aac908b39acf39c9ebedc0452b7c2f2a4460186aa2271d357733ea23d7284a8a123424f99a20b5242343b5cbafa661a\n\nCurve = P-521\n# N = 45\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d\nX = 004969d186aca09e53b879596b8fff2bc0207a58f7f28c147cc07b2df5e3f197286779189b7df8a1f2d9dc8ea1ace5703f0fc2954607b66b70c4a32dec600fc95c1a\nY = 01e81ec9b50cd8d3847d4d6ac21f3149fc7b15862a423270884135584a1bbcdb40a9b8d5b2802eadae85e6ed9e879be328e13463f5d90b37564f9498a7cd000903a9\n\nCurve = P-521\n# N = 46\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e\nX = 00bbdb162d8284a910021998e2d14f33a8c51a9cfb9a69a8fc5709f753aaf1c4d248a6ddb5626540f81d07c09231d2ec1549f672b6d2bd57d22f64f2ae8093e738a5\nY = 013b86f0d5921216efe01fe9c7cabc10b00ab81c9fbd9674149d2ece424b786f6c372a1831112f54132d7d3af42dc8cd7e17b7ec80b09fa59f0e42c142895961259a\n\nCurve = P-521\n# N = 47\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "000000000000000000000000000000000000000002f\nX = 00afe31f8907048afd5f9cf5083ecc35882ce4e4fe2714033ff897233106c71dd0b2381864a0b9e922ac9cee75a3a9c4dd660a56a130d1ecbb672fda63c9abd59d11\nY = 0012f95dc8657275fe9db4290cbbb54ff69a605f079349209f88ecea7f3276f064979276080b904982a6ebb760f478d825e711ca41599f10673bd3065d2f1d90e1d6\n\nCurve = P-521\n# N = 48\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030\nX = 01fb35de3b21557462ac8158e5caec62c8ccae7d6d6672102c334b3cc8a5803e72f42da0980f3f6fbfacdedc21b10ff08ee6641752bd214aea2c87027d612ad879ad\nY = 018d34a5ac1587992deda855b9ec4bb3f5c176f27fc94d09e2cc871294f66cc2e1bae6214d64a1d97e37b7c142e0fb0e3c28596f24804841cae7b1958193d256d46b\n\nCurve = P-521\n# N = 49\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031\nX = 00a5cb98fa3c0b8c1d57cba40a63bbaba0d39d45c347ae499839f581b8b111dea9eb6bc2a2df52f6284291d8c84e2e345fa87258dab1ac4c04ca0c8cb45049efc0ad\nY = 0015dc95654090d77b971409b01bf72e151b749ee467877e5b7eb072c39d9da8bf835dd9775543d575c20c10f2ceebb72bb44b963fbfb0b88b1d0b9bf46a2c8884b4\n\nCurve = P-521\n# N = 50\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032\nX = 017176204957627b7a120baf0dbb1aa3f9ca5312b292e34a0cfbd8384cf1be365bc684804ab26d84fe02250a859beaced3f356b6ddab593aebf35386773de84d4766\nY = 01ac713d5c2ffb0e111983e07ea5f688b03dd3032d3a9450b50c5def1db4859b504caf8c1321bb6c8d5fad93d2e5b9d0e75336298e21939f704f3f16ac6addc84f8f\n\nCurve = P-521\n# N = 51\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033\nX = 0168395ba51e278415a2025d93b68145f3ccfdf9f5bde34fe9ba3ba316cbf9beea26c2edfe6af07390df1321ae1b1054cbc0fba689ef1d7be2dda8d916fffbcc9504\nY = 0071cc10f3ca041a245639d9531942d3f57952dd878f21c480ce24e5b174adeb9b3c97bc2b68badb600c849c36096e3aeba50600aabed3a89e188eb9c45edd5c087b\n\nCurve = P-521\n# N = 52\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034\nX = 001f32e875ce65d1e6d4c39a55b518749158a4dae03e0c1b4b4a58aef6be769f0693b9259354dcee33a4f00784311b6e5993955114f2afcab7a186177e368b29f6f3\nY = 005a3c8e76fb7849180b895ea8b22ee1a6fc2cbf93bbae0f4ad4a0c126d318c397911e73a061b8098a91112577769cd77ef2bd6b45f989f292da9301992d481b07f8\n\nCurve = P-521\n# N = 53\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035\nX = 0143f6e249195ee693f77b3d0ffd310306dff8688be916895fb727e82f6f948100c44e210e637209a78ed3af581fba4fe12b08153da9c98808166285684cccb69906\nY = 01053e8fcc9618eb2a74c5611a02575109877dc73fdde42c216935437e8053d10cb14fdf64f503cf3bb30f6a7a9de3b4cf8c040a3dfbc4abee6afd6ddaddd40c7861\n\nCurve = P-521\n# N = 54\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036\nX = 01938e65f2a40e6899c6414997e998e0e3e1cb09728861ea138fc6d866fdc6c98505393cf55982451c97dac4214e4dbf052bf707cab63228fdfcf5ae2048a0ce100c\nY = 0163d556dd0941ce794e9c2868a692e89dbf943485186e2074e8222e0ed99fea4bd0c6069fa8017db8bec972b99ee0d7fcbc0f607d677492659bfa47b98bb8d1b411\n\nCurve = P-521\n# N = 55\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037\nX = 004b52fc4b6d310ce7c4b551e4155c6daca97cb03e9fd9d0a79d6472d4028e8da1a18cca93917cad27e6be17486b1e0b549a7fe9ab4bda96ac4e84ad7ccebd470f5e\nY = 003585e54fe81461ae21385ea7907a1a7b2e619f44311a16a0b600fb114a7dbae15510aa85895c5a084cd69609e345b53586fa03a23006a096ea7a196cd230a36ef2\n\nCurve = P-521\n# N = 56\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038\nX = 003cd775038527f32baf7e9056e95b0cbef7638c12398e4b8b019cc29b3435be97f601378e253fef51d25730e56267acca241df04ea2e96c1840b3f739d5ae2df998\nY = 00789bf7cf42095c5b1770e1a3561fc3e1232b0430e114f67a397c1e5b54987f4a28b52a737cbaa0ffa2c431863c1a8cbf15eba60fb5d8b4723dc10d9706f4083cba\n\nCurve = P-521\n# N = 57\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039\nX = 00dc53c3e7fcf3c902e04463da75efb25ffa5a8defe72e6dbf85ef3c6d77a521b9f84af300bbde9118b2f66fd5bc64b8a5208372c8fff95c84503475330a4e9a13e2\nY = 0074e88fccd4fdbd992b68073ee6c4d4f8f7b13d0dd2caf9d989b62e7eb390dff3ea3482530d0d3bd86a4a3f82056a929f73a9493190c62a553233ad7f7fd9c4248f\n\nCurve = P-521\n# N = 58\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a\nX = 008bc46df1c09851ab92d53b6ad821b5026be61385c801f5277c9871b54c6764d3fdb96a728ad56c650d342a03e174a3106a5479d3ccb04647ad0f583210d81ab70d\nY = 01d948ff92784e9946a27a4c58d40bfb0e0b765073f1f9a731aa52b53e4fe686134fee784bec8fca81a73b8ac3a45ca1b766cdec69190bf94d71fa08b29292c1205f\n\nCurve = P-521\n# N = 59\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b\nX = 0035aeb454ad31876773063c60342df29eadc7223c5d98901999aae5c2934c222920055693c9b1344c691a90342d64373a8acba8524ec347208863be8a26eb16686b\nY = 00187ecbec147e7e43b4db0b0ca0aff1ba7f15a48db3660903f4e22f2ef3cb6efd45b8cf8c44bc83d0b8c9fd5fddd64ffec3fd82c38cfaffe51acf4aa03c5381fa2e\n\nCurve = P-521\n# N = 60\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c\nX = 00038a508e954435eff6ccb82b562ed32ff236f33caef52de9fdf79836e37bbe118392681661adc786c57fb6bf92d04b42fc051c3f6061c252749fd17ffbfca45bdc\nY = 008dbd87d8b1e7bd4d2adb7a7399b931e7169b0ecf8e37baa0e9997df1a529560a5a5edb1e7a605abfd04b1ccdfa683285b4d748f73799f3e5d4f8464ad3910e9522\n\nCurve = P-521\n# N = 61\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003d\nX = 0115544c4a011407425c92ca7c732a1c7d8f8b6cd17d5b660d1a4cd724b1be8b17177193c11a77dc0b39a5e7fce59a7b32d7952bad1671543c41cb53d8cfcfc376a1\nY = 01153df9c6c0ac6485b307996d2a399c872c79af485fef422cbfec097a3aed58c6a003f78d54b7f553a8a834ff603afa032b56f22ee9c3fe5e24b8eff8cd4a17604b\n\nCurve = P-521\n# N = 62\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e\nX = 01f605dada534c5c8ae020f6ed49f27734e2378b0b7bc177aeaf943ae59581dd5885a38bf246fec516fd213f3fe32bfd4e19f0a8c971ef2a16969627fe31114dc85e\nY = 014ff96d82698b78d305a2252c7a4be38a37f2b0afd6935f4aaa50e685ccd164a2206284a831f6b296eacb156b6e7671eb7adda2d7e072a578a319f1002224aa57b5\n\nCurve = P-521\n# N = 63\nN = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003f\nX = 01c132753b64640c457fe82f799acb0a6e8e1ca21b5affa0ddc1e7f54fe4d51b08453ae99661308e125ec63996847586265e75af7d025770ac8d0f5beb6fce8888e5\nY = 015347e184197a0538176d81ac89b205d7961a9e093286414006595e8c353aa2238005d3dbdcec1896bc13f78f82f0071283af657b5bf664a2ace9d15ad2a03dba15\n\nCurve = P-521\n# N = 64\nN = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040\nX = 01ab9aa17dce1112ecd14f3d7c0392fec2a67ebdbba81860bbacb614b9ccf8872d271bebd3c5efda3773a7c02c1603e7001df5aab8029a04fd41b53dc38ce320f742\nY = 00748d70eb848e920573aa10217c57b9586d9bb1cc8b2fb1dc1d0c63ba369e87ab8bac165ba1508d4b10f4a7b9e3af958043c1c1a5dba0653dd45af17058a5f8df5b\n\n", }; -static const size_t kLen41 = 65077; +static const size_t kLen43 = 65077; -static const char *kData41[] = { +static const char *kData43[] = { "# Negation tests.\n#\n# The following tests satisfy A = -B (mod P).\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000000000\nB = 0000000000000000000000000000000000000000000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000000001\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffffffe\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000000003\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffffffc\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000000007\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffffff8\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000000000f\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffffff0\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000000001f\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffffffe0\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000000003f\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffffffc0\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000000007f\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffffff80\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000000000ff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffffff00\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000000001ff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffffe00\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000000003ff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffffc00\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000000007ff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffff800\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000000fff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffff000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000001fff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffffe000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000003fff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffffc000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000007fff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffff8000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000000ffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffff0000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000001ffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffe0000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000003ffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffffc0000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000007ffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffff80000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000000fffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffff00000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000001fffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffe00000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000003fffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffffc00000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000007fffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffff800000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000000ffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffff000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000001ffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffe000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000003ffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffffc000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000007ffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffff8000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000000fffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffff0000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000001fffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffe0000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000003fffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffffc0000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000007fffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffff80000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000000ffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffff00000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000001ffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffe00000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000003ffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffffc00000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000007ffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffff800000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000000fffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffff000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000001fffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffe000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000003fffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffffc000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000007fffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffff8000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000000ffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffff0000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000001ffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffe0000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000003ffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffffc0000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000007ffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffff80000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000000fffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffff00000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000001fffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffe00000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000003fffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffffc00000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000007fffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffff800000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000000ffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffff000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000001ffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffe000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000003ffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffffc000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000007ffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffff8000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000000fffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffff0000000000000\n\nTest = Negate\nA ", "= 000000000000000000000000000000000000000000000000001fffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffe0000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000003fffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffffc0000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000007fffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffff80000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000000ffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffff00000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000001ffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffe00000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000003ffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffffc00000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000007ffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffff800000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000000fffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffff000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000001fffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffe000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000003fffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffffc000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000007fffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffff8000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000000ffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffff0000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000001ffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffe0000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000003ffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffffc0000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000007ffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffff80000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000000fffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffff00000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000001fffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffe00000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000003fffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffffc00000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000007fffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffff800000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000000ffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffff000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000001ffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffe000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000003ffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffffc000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000007ffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffff8000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000000fffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffff0000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000001fffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffe0000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000003fffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffffc0000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000007fffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffff80000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000000ffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffff00000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000001ffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffe00000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000003ffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fffc00000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000007ffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fff800000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000000fffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fff000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000001fffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffe000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000003fffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ffc000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000007fffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ff8000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000000ffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000ff0000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000001ffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fe0000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000003ffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000fc0000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000007ffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000f80000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000000fffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000f00000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000001fffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000e00000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000003fffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000c00000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000007fffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000800000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000000ffffffffffffffffffffffff\nB = ffffffff00000001000000000000000000000000000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000001ffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffffffff000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000003ffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffffffd000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000007ffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffffff9000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000000fffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffffff1000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000001fffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffffffe1000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000003fffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffffffc1000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000007fffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffffff81000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000000ffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffffff01000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000001ffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffffe01000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000003ffffffffffffffffffffffffff\nB = ffffffff0000", "0000fffffffffffffffffffffc01000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000007ffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffff801000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000000fffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffff001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000001fffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffffe001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000003fffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffffc001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000007fffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffff8001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000000ffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffff0001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000001ffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffe0001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000003ffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffffc0001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000007ffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffff80001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000000fffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffff00001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000001fffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffe00001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000003fffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffffc00001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000007fffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffff800001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000000ffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffff000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000001ffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffe000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000003ffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffffc000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000007ffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffff8000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000000fffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffff0000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000001fffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffe0000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000003fffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffffc0000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000007fffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffff80000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000000ffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffff00000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000001ffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffe00000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000003ffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffffc00000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000007ffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffff800000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000000fffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffff000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000001fffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffe000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000003fffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffffc000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000007fffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffff8000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000000ffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffff0000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000001ffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffe0000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000003ffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffffc0000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000007ffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffff80000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000000fffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffff00000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000001fffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffe00000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000003fffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffffc00000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000007fffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffff800000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000000ffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffff000000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000001ffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffe000000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000003ffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffffc000000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000007ffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffff8000000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000000fffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffff0000000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000001fffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffe0000000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000003fffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffffc0000000000001000000000000000000000000\n\nTest = Negate\nA = 000000000000000000000000007fffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffff80000000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000000ffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffff00000000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000001ffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffe00000000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000003ffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffffc00000000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000000000000000007ffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffff800000000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000000fffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000fffffffff000000000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000001fffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffe000000000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000003fffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffffc000000000000001000000000000000000000000\n\nTest = Negate\nA = 0000000000000000000000007fffffffffffffffffffffffffffffffffffffff\nB = ffffffff00000000ffffffff8000000000000001000000000000000000000000\n\nTest = Negate\nA = 00000000000", @@ -2657,9 +2744,9 @@ static const char *kData41[] = { "0000000000000000000000000\nResult.Y = 0000000000000000000000000000000000000000000000000000000000000000\n\n# Test some random Jacobian sums.\nTest = PointAdd\nA.X = cb8dea3327057fe69b5159e0323e60486cda3400545f7e2c60559ac7c8d0d89d\nA.Y = 553de89b31719830c3c3300aa8ad50ea81f40762a4f33ccf81a2d3bcc93a2d53\nA.Z = 4589e40df2efc546b2572c1f45eda26fc191b8d56376f2063fd9470fb277d181\nB.X = 32ad56497c6c6e8399de6814efd21b3eb949bb80dab578073cf0b0aa92054341\nB.Y = 57b33b7acfeee75ef6a31eb7ca0244b375f2d0962a3ce65c06afaa02688399e0\nB.Z = 337d5e1ec2fc711b12fd6c7a51a2f474a922cb107f592b657617d2e0b4f1d35f\nResult.X = 120c6ddd6f8ebc798c5740005bad5a2586575202df9cc3dd07401fe84d8cfdd4\nResult.Y = 966bc89126349ce41738be691f32c1a068e54a654ab2cb0eac39ef15ee17f0df\n\nTest = PointAdd\nA.X = a858b5249026ccc4d25fbd85db17826afa3c5963c26815cbf8511d84dce62a25\nA.Y = bd753e125579388da968036d50067fe0e8eccb531c4d6f1a69c61bc8259c6d76\nA.Z = 82f9cdd9abf991ac27f0caa494b7b7b2851cc6591c6362ef02d1bd2c33fd116c\nB.X = 3e5790fd7ff28a376586c8ef5625b906f2d5d7e6656191f5a530154eecd4c988\nB.Y = 6e6c91011cc5996a7db4e5539eee635ce84780a85a17778da06353048fdf6bd3\nB.Z = a9ef3402e9f15e7a91aef4a53431b2b2068914e4a09ebdafc8aa654351f32331\nResult.X = de9d6bb4dfdee64193d3eaebb9208a86e764b80e1459fd10a2e01c202e33c5e2\nResult.Y = 370e67dbb7cfa6b79adaeec48b1535f0c329856401102d546c695d0dfe1d0db5\n\nTest = PointAdd\nA.X = a2d85e21bf520691b397ac9e0c1360218cef96a8a6f4c2b24d21791360ce4d9e\nA.Y = 0cc1c5493edf586cd24f7a9f40185c1ceefa727369ed159a9fc09b700ba64f78\nA.Z = ad3083a5bd23ee1fdbd3a25abdee815052209bb1a8b22d3f7d8600442b760a61\nB.X = 7d8850dafe2c48d86b6c3f3f44453670aa7169712238d024dbd08cb4e95b9cc1\nB.Y = 6a2698c143609306fe2c402acdf26e3b42874f5ae3ea2e95898c305e791984b8\nB.Z = c81bc8988c6edabf4a03fcc456ce0c445e225c33b76a79552af0b818350ad6b0\nResult.X = 67c5f8af069b5a5636647eee50da847dff8f5f6ef71780a5d1330453db5c8a04\nResult.Y = cec9200fa541b602d94c694f1289d1d073e64f47054baa40a9921c20ca090643\n\nTest = PointAdd\nA.X = 4f9a035ffeddcc36846906cacc812ffae7f3110fe46bf7da12d0b19ec54c3873\nA.Y = 73539ed620938543f94c358dba87319dca40ae4d13d0a888527f007d26d73d74\nA.Z = 922e97056fbf12d89984346368087375560990c3fb2f337d9f46429f2022d634\nB.X = de6fa333804b1da9f046896634e498d5f456288f8f03cc41fc7ba4b1e978429a\nB.Y = fd45f1d5e905c448b947fd65bc2897928d6014425c8c502a1b2838ba882f5813\nB.Z = 50bb4c98bce36b8aad5662b8db35428bb5c1f298e17347caa5d4f542f278a1d9\nResult.X = 5c3cb05b52ec59f3cbb666b0059163afae885676cf81d64cadc943a1c0bb3a86\nResult.Y = 2871d088271faa9258e60ff28115f72294b938ef3d7b927e59177f9b41d5747e\n\n# Test some random Jacobian doublings.\nTest = PointAdd\nA.X = 75da62f76d1887e18a06483bb6b53c3ec42879ed73b7851ed4748e307653714c\nA.Y = a6f0d0d3bb492bf488d99d549aff3f0c3a48f0c35a5931578fe697b8c5f486f7\nA.Z = 6d6a50229164869f24865148a19a24d57d94ebd09dc06b5e4fc3946a95f9124f\nB.X = 3b225af8c7b6155d66061c75a03d23d94e01a2167fa7f44c5bd1e9d9c48c7421\nB.Y = af58b0e38531d1e08187c61a36b33693ef534ecae23dca4542667d93f1844d75\nB.Z = 86ed2be859c4af1d5cf99041840f3bcb7c9b8e8986811393c96e8bf57fcad872\nResult.X = ab0f931fb86a621102e67336eadcf01afe3127aeaf5b4f89e8f34628c8e1afd9\nResult.Y = 52c50e2783d69dde29d6bc75fa359ffe72e7115c2fc89a9699a499cac25e3383\n\nTest = PointAdd\nA.X = f0d499f2e3775de88ed997feeb4589506f061f93766abb0c1251d25630c4c24d\nA.Y = e8de27c3369ba718adbab5597fbaad9581f5b59ae3b758e7d664bae81d895be4\nA.Z = c62dc820a597f75518734f12b2d3c076e5b872303e37b3663636912ade79c058\nB.X = c2845b3faaa995eb88e13a44b08d8a6fdb37103f7bbcc585302c9d090be3fc5b\nB.Y = 733e5ef1b0314754b70b5b98da63cbb7475918ddb85a715e21aade0c2f2e5611\nB.Z = b8505e4a057d108b49f5d0b20884674be18bba48bbc37f765c2c32c5cc4aba5d\nResult.X = 266f2961b9352b44e61902a235b33f766f82f8199c176920dae25ad2cbad5cc9\nResult.Y = 8560e62047908b13c4247b7e4d2657f2bdecab41e73c846ba18523e5f2918a9b\n\nTest = PointAdd\nA.X = f0ca07297738d8687bffcd3f1433966241f437fa1c3381cf2d13f0fc714bc83a\nA.Y = 1181b9d61c6982e743f1c32de5d14da745290ecaf27297c36ff3ef20a7526a55\nA.Z = 93159618ca5a9f9240df7016ddc983e046126d1290e14478dfcc6a4bae9090bd\nB.X = 3a2d75803ccad665f6b785c828eaa96821cb0e81979641b9e59b5fd488fcc755\nB.Y = 99e7f820abdbcdda23d90a88788e30d67303dac86987816dbbed447431e33f3f\nB.Z = a870186c8137cdbd247d16f3aa18782de1e4c5848f49da3437223eb13d7a9ae2\nResult.X = 36a104368d39214d5a3a1a348a1de1389d1aa23009aee37464b5b3256ed4b28c\nResult.Y = da5b14dbd75f6c333929bdff88e53af7253c27e166e15ead6d778631036b7d38\n\nTest = PointAdd\nA.X = a6256508926caca56a31414aba2d5f5b04dcabdb065352a572e215b043df6e01\nA.Y = e6567d330ffb11a86ec29b406b8e3d5cce8ca46f55f38515d842dd856d6852dd\nA.Z = ec172618c8cdbfc0f4fd6dffb77858bb292f229e6d10b5c70d0d9ba75fa3ab44\nB.X = 0251f6715dbba02e6072c12ab1f89a562d35ed0ff68e021b3b5276b9faf57c52\nB.Y = d2d74ff4740ad968fa7e816bc2178458efee797669bef2e634e2857de1658e62\nB.Z = abbecea633d31f569297a4a9ec28f708c7a097cb2423ebaca66ac0e42b1c8ee4\nResult.X = d2a071d4dd72ad7e63834b58b23c4a034ed7950f5c80fad51bf96959b535d55b\nResult.Y = 3cb8dcbe25f49099b9d8dd1a9cb6073368bf6556130f2aa02637dfcff430e869\n\n# Test some random affine sums.\nTest = PointAdd\nA.X = fabada657e477f088883b2987042e595559d669de3a047b27e3ad339fb3fa5f0\nA.Y = 0551992531a68d55a8409d8466034f02808637610ce6d6bcd9cfceb8da1c3e85\nA.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nB.X = 3a831cf2b316ce371994a5622e31749407fdf59660dc88322d14c37ebb2d68d2\nB.Y = 849c511908abdfa2bcadc43f9beae88052fdb00573c783fbb1b34b99687b9a6b\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = d5dc9241b457d33b9bda849fb7aba8baaff8b6eea92974a8adf4b95fbfa849f0\nResult.Y = 089a66780811a8ce455c139c4bea6c5c16234c095a41b9e31c617689bdc6bd0f\n\nTest = PointAdd\nA.X = 9dfe6299e62453bb943356b6f7d90c8b6c646728ba3550bb7c1548f2ba5920cb\nA.Y = 60a4e342a89837c0e7d61c0e3e88a943633028f5260eff6af5ae8a6063f7a5da\nA.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nB.X = 924d7305f867afecd3cc550f4c05c83a2b4c981ba0e7ff20fd2035fabe2ccc92\nB.Y = 73934620746c23be03a40edb0662c09ef1776506bd50d6397c2654d340629bf5\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = 7384f658ccbe08afcf6b423bfdd092a8a95b03d81254a519b31517b9b9670155\nResult.Y = e922a56146b94776f805a0fbdee9084dd87be1df54f76145bf83e07cd31a083a\n\nTest = PointAdd\nA.X = 9b6642b661f06c5b3ef2a0950b3c03d35f42d3d0dcbe105a895f40132c40bd9e\nA.Y = 90cbe0ed40e47923257f064886f1e309a310cb82fc21282f8e8fa4f6c975aed6\nA.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nB.X = 587f6b4c4bb3ab3d59ba8d31457615b3df9f9f9466df3563f4419db731f494ea\nB.Y = 38135b314572346439c8d4535b892a26e5da650ae1dc9ac2d5aeb85ade24174f\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = 97e94b6d485f8de6779e4ad19cc7bede6d70ff4853a56eb6d5fd4e5caac60858\nResult.Y = 303bf4d62cf569370ae5393fac46b64efe98ee8222b9982bc3dc61b8e32411c5\n\nTest = PointAdd\nA.X = da49658b6c64fc7a7441b177987abbbdbfcfc3c2c569ed97696d706f7af91ca0\nA.Y = 9a66906a6e313603e9d78f99fbbda837e521e75bbbad9455ffd43f51f5e30ee5\nA.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nB.X = fe32e5885d0005fa1962166142d2aea201af9c4ca41cdddc5446dc2472f71f42\nB.Y = a2f9b4d35ea19303a101034e96870a7caed371a980965bf86291b03b5c85af60\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = 5375c5ea3e33c1862ca5f09322ce2012c2b4fbee9a299b66e4882e016908cc2a\nResult.Y = 936e4f12ed144cf6fcd0ab085a4929e5e3e7c28641692b1fc2ad9a3b3d447b31\n\n# Test some random affine doublings.\nTest = PointAdd\nA.X = b148cad109d4b24342eb3a03ccaa10dfd6101edf9548b1d1442b61982a4e332c\nA.Y = 7daac293162a8ee2592529630f5bd1eae96659d27c045898d33833999cd076ba\nA.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nB.X = b148cad109d4b24342eb3a03ccaa10dfd6101edf9548b1d1442b61982a4e332c\nB.Y = 7daac293162a8ee2592529630f5bd1eae96659d27c045898d33833999cd076ba\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = ad00fae6ab0898f7d5eeeffe8c94b302060fba2b191a2d342a8a302998ebe566\nResult.Y = 9ee46ba864901cad75169cdea023d7e64da39315e2fec1703fad6b613eb24006\n\nTest = PointAdd\nA.X = f21318618205f4967c4f47c9bc3cea41e144dc01830d087414da8dcb16d37cb3\nA.Y = 76cebf81ecc696024fe949191dc49b245ef8cc0d55ada88abf481ddad9eb6129\nA.Z = 00000000fffffffeffffffffffffffffffffffff00000000", "0000000000000001\nB.X = f21318618205f4967c4f47c9bc3cea41e144dc01830d087414da8dcb16d37cb3\nB.Y = 76cebf81ecc696024fe949191dc49b245ef8cc0d55ada88abf481ddad9eb6129\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = ad8e13b721bcbfc0fe629465cda5fee3494785d51dbe65f1e13429f52c83f03e\nResult.Y = 85722e168d89543dce293428e75d52765d0935bde2ef5c45a088222db0dbbeb5\n\nTest = PointAdd\nA.X = 8797ff95334b238dadf0cb3d4dc9350678f4c7fc520089ecb70ab419510f2331\nA.Y = 326c7583d54dde377fa9193c8588912c4db2219e1bb383ab13902187e5ef76ce\nA.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nB.X = 8797ff95334b238dadf0cb3d4dc9350678f4c7fc520089ecb70ab419510f2331\nB.Y = 326c7583d54dde377fa9193c8588912c4db2219e1bb383ab13902187e5ef76ce\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = e91c8ec9611de8e44e0d882df59f4fae8d15e3867858fb155256a4a2f154bbc4\nResult.Y = c12be21033c6dcea7e7d7262c47876d099aead75d8b025e45ce7986193fc6f8a\n\nTest = PointAdd\nA.X = 2f4cba9543c9537e393f126e31bedb521dc0a74a940e731800e5e39cdece355d\nA.Y = 1a0957898b746b7dbc9245acd0c6df9e6adca4d8537454c9f318a8ce7c3875c4\nA.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nB.X = 2f4cba9543c9537e393f126e31bedb521dc0a74a940e731800e5e39cdece355d\nB.Y = 1a0957898b746b7dbc9245acd0c6df9e6adca4d8537454c9f318a8ce7c3875c4\nB.Z = 00000000fffffffeffffffffffffffffffffffff000000000000000000000001\nResult.X = 5cdc40808120b68e3131bd6ed70a5ce6618f960e4d540baa582afc71be97c65d\nResult.Y = 1926a2c9f5b2d3d1dff784623fe6efe2ac629395101d38db0eff5e540bfeacb0\n\n\n# Scalar montgomery multiplication tests.\n#\n# The following tests satisfy A * B * 2^-256 = Result (mod N).\n\nTest = OrdMulMont\nA = 0000000000000000000000000000000000000000000000000000000000000000\nB = b4e9b0aea84aa5ed86964a22881a4d0e58f88e9225f30990c18751e7d4b9ec95\nResult = 0000000000000000000000000000000000000000000000000000000000000000\n\nTest = OrdMulMont\nA = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf\nB = 5d24e62244973fbd829573d5a579b4e89a6512933a2c3d255bbdbc1c89028323\nResult = 5d24e62244973fbd829573d5a579b4e89a6512933a2c3d255bbdbc1c89028323\n\nTest = OrdMulMont\nA = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nB = abafdc695e4c2c850f8fc60f1efdbf7406a3cd2c6c59bb7e608985723896c187\nResult = 917b1214c7b31a7ee7e53be0b41a139e435ff576b51ec6af1e1a944412bea38b\n\nTest = OrdMulMont\nA = cf0f01b83670a1c79154ea16f3574ca2d4c688a3c3b6017795cbe54854418904\nB = c5ec4d3b00fb2e11fb3b1aa09e60f7d187f7c515977d1343dab9745961fcbb43\nResult = 7aaddcee32e3b340af5ad06f854284cbbce5a1ab919e9b7771c3b0e937093438\n\nTest = OrdMulMont\nA = 50023f9913879ac4020bc45a89a0ea89082db6265b96b851af29969dd8a9661c\nB = 7c165b1cba80808db114441563aa0fbfba41b9e8acff77312a2dd2138b74ef89\nResult = 3d2ca1705d8d38cbc76a5409c6535044733cafcb95d12654af1d14de177978b5\n\nTest = OrdMulMont\nA = 4d5341ea735e53d2e4f2934755642adee209bd0e5a1506206513227f3c48b270\nB = 6e48f2b60eb8fb86760134abaf3d61692557862924069c599ceb31309ea18704\nResult = 37cde3e35c814d4287bd345b910d687983929907b7a08afa2acd8596832ea86c\n\nTest = OrdMulMont\nA = 33d06c3f5a595a41a6f9c4356f8ab2b8c550d4c64b806eab5560af247c5fa9ed\nB = 0e52f34adf5754343bcf3529d652620da3c05b5dd9cdcddfb08b674a1ad21a09\nResult = 9dc64d7b4c1bc33b930e0daee2a24fc41f770378659ee71b846d2239b0fea8ea\n\nTest = OrdMulMont\nA = 8f211780cce4f93b7193b9378e6f83e1147fb3602b052eef782de8cc833e54ab\nB = e1e4f7f1feb15be64292cff86b47cd9730bcb15b133340022b824d591a660cdf\nResult = dfa2b683b1ae23027c7c109e0abb40a1366eda027ad2cad1a09061a57bee391f\n\nTest = OrdMulMont\nA = 803c279c7e4c11a5568290c0a5789ceab6860f51a942bf646501a45e1ec0a6bf\nB = c0a1145a12037129c571f5f939bf16ea0b8b480f08ec774c045d059841f7d5ed\nResult = ab48fa3b4aa692a7c077cc55ee3c3fff895118a23728c2fa5f361b30730d955a\n\nTest = OrdMulMont\nA = 0e5c95158297d75dbf0b02c3090730f65bf14704495b14837dd907af569407f1\nB = 5a03e3787c8772b2fb7ab07d7fe7fe653a58bdae7fde3174c6ed305e524f5728\nResult = 71296d305dcf9ce39010ea4f4bbf9f7c1064a413597bdc7574c13dea3fa514dc\n\nTest = OrdMulMont\nA = 366299be07886f7846fc74231db624b169360e3c8f60196a1afc9f2101e03922\nB = d6d7c830a6edb6861868b964519a6b68f6f24f7c09d66003f3f88eadd1e00158\nResult = 0b89596bf5054ebe95a39dab6e975b58190160610b09b2a4f93331ecc0e79fd3\n\nTest = OrdMulMont\nA = 8f36f0ef275a72192c3b7388e84df2b8acf66fc53aaf556e3be05c76b3f782c0\nB = 704e519363d44e8df8d91f5f347eb61e8d3e85c8fc1b82980c370a379b2bc81c\nResult = b70a392e3ce5e85b5efbbded9b8c16a3068ba9b93b4cbed9a9a71dffaad6b58a\n\nTest = OrdMulMont\nA = bf4466ef4dea9f06f0f3b4f14e01140a774262c7e0706584f4d7dac19be46d58\nB = 4af12d528b2cef0f6714961bca2ab682f8abaa97600ea8181f71563d56f8a9f5\nResult = 7b6827c0881b9846e32499e13277efb07917cf4b8c8c72bfb3daa8c1786a8e15\n\n\n# Test cases where A == B to test squaring.\n\nTest = OrdMulMont\nA = 0000000000000000000000000000000000000000000000000000000000000000\nB = 0000000000000000000000000000000000000000000000000000000000000000\nResult = 0000000000000000000000000000000000000000000000000000000000000000\n\nTest = OrdMulMont\nA = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf\nB = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf\nResult = 00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf\n\nTest = OrdMulMont\nA = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nB = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nResult = 60d066334905c1e907f8b6041e607725badef3e243566fafce1bc8f79c197c79\n\nTest = OrdMulMont\nA = da43b8dd7fe8830a4fe8980ec585ccbe903a2965a695cdff398200b74b2ede41\nB = da43b8dd7fe8830a4fe8980ec585ccbe903a2965a695cdff398200b74b2ede41\nResult = 5ec68604412205b380e26ee4e4081eccc10ac7d1417b09cd534f8517b0de81ec\n\nTest = OrdMulMont\nA = a82a2b8bdbf8a37dc7cb5799691494a8c9fbf649686a4d250dc30697feb0fa47\nB = a82a2b8bdbf8a37dc7cb5799691494a8c9fbf649686a4d250dc30697feb0fa47\nResult = 552c094a8841621d6cc26b3b54ce5da5664283888445196a6433d3cfdcad3aee\n\nTest = OrdMulMont\nA = d785006e250410d9dcc6d7740795a7374c25b00b9c9a37b8285694a07307eacd\nB = d785006e250410d9dcc6d7740795a7374c25b00b9c9a37b8285694a07307eacd\nResult = 971aaa9e70ad082cf43725f2e65bc73f4bf762459cee13167545072ec7bdcaf8\n\nTest = OrdMulMont\nA = 69d6d9f5417e87d603a3fb6acafa0d1f974abf94ca57ce58d718a0ad5d02a496\nB = 69d6d9f5417e87d603a3fb6acafa0d1f974abf94ca57ce58d718a0ad5d02a496\nResult = eb3284e5799fbe93171f08e6de9f792cd17f036b3a17671b0310e49b48e589b3\n\nTest = OrdMulMont\nA = 1c28f742c3e26e74901d0425f2eb4d5272524668d2405875b32cf6433f212900\nB = 1c28f742c3e26e74901d0425f2eb4d5272524668d2405875b32cf6433f212900\nResult = 74f70a95399b7ad061a2200fa50528d68eee4654341c8158101e1e3f8f16e642\n\nTest = OrdMulMont\nA = 026b2f69f0259d221920b2f358b378a79826f0332ee36afa257765043e3d6732\nB = 026b2f69f0259d221920b2f358b378a79826f0332ee36afa257765043e3d6732\nResult = e1e9cfa4724995bb50971ca22f3c028cd31cb51fbef8a37c31f10fd1d468f13b\n\nTest = OrdMulMont\nA = 376ed4fadcc1c6c4160a0c9c2ab7c62260367968b08d304d47c65f25625d7d60\nB = 376ed4fadcc1c6c4160a0c9c2ab7c62260367968b08d304d47c65f25625d7d60\nResult = b9ccb67f377e1278f1d2eeda26e5eed76f32406c9deed9764fc0aa346d91e02b\n\nTest = OrdMulMont\nA = 50f66867d0a4ef389678d760d2a4db886583b4c068d0e240f7ddf3472c871304\nB = 50f66867d0a4ef389678d760d2a4db886583b4c068d0e240f7ddf3472c871304\nResult = 82c3467bc5f7ca8b45f4ee61546745e2f53755a02e87f65f572418d60e471c8b\n\nTest = OrdMulMont\nA = 5b8bd82b37206d2b727f19ad2d02f63773470074dde7d43d2a77c448ddf2f978\nB = 5b8bd82b37206d2b727f19ad2d02f63773470074dde7d43d2a77c448ddf2f978\nResult = dbf3c2fc67a0688c3b5ff12cab1739d50b6093c5d98943d388652b1207e4a0f2\n\nTest = OrdMulMont\nA = bed7b3a4dada0e16984eb59ee239005ab212e5b1772cdd5d240c8ee268f65c81\nB = bed7b3a4dada0e16984eb59ee239005ab212e5b1772cdd5d240c8ee268f65c81\nResult = 9232aa2759ca9c5efbaefb0cf45cc6bc9c89def8c25e5c169fe623f30787df36\n", }; -static const size_t kLen42 = 169648; +static const size_t kLen44 = 169648; -static const char *kData42[] = { +static const char *kData44[] = { "# Tests from NIST CAVP 186-4 ECDSA2VS Test Vectors, Signature Generation Test\n# http://csrc.nist.gov/groups/STM/cavp/documents/dss/186-3ecdsatestvectors.zip\n#\n# NIST's files provide message and digest pairs. Since this is a low-level test,\n# the digests have been extracted. P-521 test vectors were fixed to have the\n# right number of leading zeros.\n\nCurve = P-224\nPrivate = 16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615\nX = 605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eab\nY = f5cc733b17decc806ef1df861a42505d0af9ef7c3df3959b8dfc6669\nDigest = 07eb2a50bf70eee87467600614a490e7600437d077ec651a27e65e67\nK = d9a5a7328117f48b4b8dd8c17dae722e756b3ff64bd29a527137eec0\nR = 2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6\nS = 8d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb\n\nCurve = P-224\nPrivate = cf020a1ff36c28511191482ed1e5259c60d383606c581948c3fbe2c5\nX = fa21f85b99d3dc18c6d53351fbcb1e2d029c00fa7d1663a3dd94695e\nY = e9e79578f8988b168edff1a8b34a5ed9598cc20acd1f0aed36715d88\nDigest = bde0fbb390fb05d0b75df5bd0d0a4ea29516125f19830e3b0c93b641\nK = c780d047454824af98677cf310117e5f9e99627d02414f136aed8e83\nR = 45145f06b566ec9fd0fee1b6c6551a4535c7a3bbfc0fede45f4f5038\nS = 7302dff12545b069cf27df49b26e4781270585463656f2834917c3ca\n\nCurve = P-224\nPrivate = dde6f173fa9f307d206ce46b4f02851ebce9638a989330249fd30b73\nX = fc21a99b060afb0d9dbf3250ea3c4da10be94ce627a65874d8e4a630\nY = e8373ab7190890326aac4aacca3eba89e15d1086a05434dd033fd3f3\nDigest = c2c03fe07e10538f6a38d5831b5dda9ce7478b3ed31323d60617dc95\nK = 6629366a156840477df4875cfba4f8faa809e394893e1f5525326d07\nR = 41f8e2b1ae5add7c24da8725a067585a3ad6d5a9ed9580beb226f23a\nS = a5d71bff02dce997305dd337128046f36714398f4ef6647599712fae\n\nCurve = P-224\nPrivate = aeee9071248f077590ac647794b678ad371f8e0f1e14e9fbff49671e\nX = fad0a34991bbf89982ad9cf89337b4bd2565f84d5bdd004289fc1cc3\nY = 5d8b6764f28c8163a12855a5c266efeb9388df4994b85a8b4f1bd3bc\nDigest = 5d52747226f37a5afcd94d1b95867c0111bcb34402dad12bee76c1b7\nK = 1d35d027cd5a569e25c5768c48ed0c2b127c0f99cb4e52ea094fe689\nR = 2258184ef9f0fa698735379972ce9adf034af76017668bfcdab978de\nS = 866fb8e505dea6c909c2c9143ec869d1bac2282cf12366130ff2146c\n\nCurve = P-224\nPrivate = 29c204b2954e1406a015020f9d6b3d7c00658298feb2d17440b2c1a4\nX = 0e0fc15e775a75d45f872e5021b554cc0579da19125e1a49299c7630\nY = cb64fe462d025ae2a1394746bdbf8251f7ca5a1d6bb13e0edf6b7b09\nDigest = a1ab56bd011b7e6c7e066f25333d08cf81ac0d9c1abfa09f004ab52f\nK = 39547c10bb947d69f6c3af701f2528e011a1e80a6d04cc5a37466c02\nR = 86622c376d326cdf679bcabf8eb034bf49f0c188f3fc3afd0006325d\nS = 26613d3b33c70e635d7a998f254a5b15d2a3642bf321e8cff08f1e84\n\nCurve = P-224\nPrivate = 8986a97b24be042a1547642f19678de4e281a68f1e794e343dabb131\nX = 2c070e68e8478341938f3d5026a1fe01e778cdffbebbdd7a4cd29209\nY = cde21c9c7c6590ba300715a7adac278385a5175b6b4ea749c4b6a681\nDigest = 8ef4d8a368fad480bac518d625e97206adcafa87c52aef3d179cbfa9\nK = 509712f9c0f3370f6a09154159975945f0107dd1cee7327c68eaa90b\nR = 57afda5139b180de96373c3d649700682e37efd56ae182335f081013\nS = eb6cd58650cfb26dfdf21de32fa17464a6efc46830eedc16977342e6\n\nCurve = P-224\nPrivate = d9aa95e14cb34980cfddadddfa92bde1310acaff249f73ff5b09a974\nX = 3a0d4b8e5fad1ea1abb8d3fb742cd45cd0b76d136e5bbb33206ad120\nY = c90ac83276b2fa3757b0f226cd7360a313bc96fd8329c76a7306cc7d\nDigest = 28fabbac167f3d6a20c2f5a4bcee527c96be04bdd2c596f09d8fbab7\nK = 1f1739af68a3cee7c5f09e9e09d6485d9cd64cc4085bc2bc89795aaf\nR = 09bbdd003532d025d7c3204c00747cd52ecdfbc7ce3dde8ffbea23e1\nS = 1e745e80948779a5cc8dc5cb193beebb550ec9c2647f4948bf58ba7d\n\nCurve = P-224\nPrivate = 380fb6154ad3d2e755a17df1f047f84712d4ec9e47d34d4054ea29a8\nX = 4772c27cca3348b1801ae87b01cb564c8cf9b81c23cc74468a907927\nY = de9d253935b09617a1655c42d385bf48504e06fa386f5fa533a21dcb\nDigest = 50dd74b5af40978e809cee3eb41195402ebb5056e4437f753f9a9d0d\nK = 14dbdffa326ba2f3d64f79ff966d9ee6c1aba0d51e9a8e59f5686dc1\nR = ff6d52a09ca4c3b82da0440864d6717e1be0b50b6dcf5e1d74c0ff56\nS = 09490be77bc834c1efaa23410dcbf800e6fae40d62a737214c5a4418\n\nCurve = P-224\nPrivate = 6b98ec50d6b7f7ebc3a2183ff9388f75e924243827ddded8721186e2\nX = 1f249911b125348e6e0a473479105cc4b8cfb4fa32d897810fc69ffe\nY = a17db03b9877d1b6328329061ea67aec5a38a884362e9e5b7d7642dc\nDigest = 9fee01807ab6c43a794abf6dcd6118915252ca7d3a31a1ff96b88a8d\nK = ab3a41fedc77d1f96f3103cc7dce215bf45054a755cf101735fef503\nR = 70ccc0824542e296d17a79320d422f1edcf9253840dafe4427033f40\nS = e3823699c355b61ab1894be3371765fae2b720405a7ce5e790ca8c00\n\nCurve = P-224\nPrivate = 8dda0ef4170bf73077d685e7709f6f747ced08eb4cde98ef06ab7bd7\nX = 7df67b960ee7a2cb62b22932457360ab1e046c1ec84b91ae65642003\nY = c764ca9fc1b0cc2233fa57bdcfedaab0131fb7b5f557d6ca57f4afe0\nDigest = c349032f84384b913bd5d19b9211ddce221d66a45e8a051878254117\nK = 9ef6ebd178a76402968bc8ec8b257174a04fb5e2d65c1ab34ab039b9\nR = eef9e8428105704133e0f19636c89e570485e577786df2b09f99602a\nS = 8c01f0162891e4b9536243cb86a6e5c177323cca09777366caf2693c\n\nCurve = P-224\nPrivate = 3dbe18cd88fa49febfcb60f0369a67b2379a466d906ac46a8b8d522b\nX = b10150fd797eb870d377f1dbfa197f7d0f0ad29965af573ec13cc42a\nY = 17b63ccefbe27fb2a1139e5757b1082aeaa564f478c23a8f631eed5c\nDigest = 63fe0d82cf5edf972e97316666a0914432e420f80b4f78ceb92afd1d\nK = 385803b262ee2ee875838b3a645a745d2e199ae112ef73a25d68d15f\nR = 1d293b697f297af77872582eb7f543dc250ec79ad453300d264a3b70\nS = 517a91b89c4859fcc10834242e710c5f0fed90ac938aa5ccdb7c66de\n\nCurve = P-224\nPrivate = c906b667f38c5135ea96c95722c713dbd125d61156a546f49ddaadc6\nX = 3c9b4ef1748a1925578658d3af51995b989ad760790157b25fe09826\nY = 55648f4ff4edfb899e9a13bd8d20f5c24b35dc6a6a4e42ed5983b4a0\nDigest = 9b44ee16e576c50c0b6b37ac1437bf8f013a745615012451e54a12f2\nK = b04d78d8ac40fefadb99f389a06d93f6b5b72198c1be02dbff6195f0\nR = 4bdd3c84647bad93dcaffd1b54eb87fc61a5704b19d7e6d756d11ad0\nS = fdd81e5dca54158514f44ba2330271eff4c618330328451e2d93b9fb\n\nCurve = P-224\nPrivate = 3456745fbd51eac9b8095cd687b112f93d1b58352dbe02c66bb9b0cc\nX = f0acdfbc75a748a4a0ac55281754b5c4a364b7d61c5390b334daae10\nY = 86587a6768f235bf523fbfc6e062c7401ac2b0242cfe4e5fb34f4057\nDigest = 3c89c15dee194b3223e7b53a8a5845d4873a12a2f1581d5413359828\nK = 854b20c61bcdf7a89959dbf0985880bb14b628f01c65ef4f6446f1c1\nR = a2601fbb9fe89f39814735febb349143baa934170ffb91c6448a7823\nS = bf90f9305616020a0e34ef30803fc15fa97dffc0948452bbf6cb5f66\n\nCurve = P-224\nPrivate = 2c522af64baaca7b7a08044312f5e265ec6e09b2272f462cc705e4c3\nX = 5fad3c047074b5de1960247d0cc216b4e3fb7f3b9cd960575c8479fc\nY = e4fc9c7f05ff0b040eb171fdd2a1dfe2572c564c2003a08c3179a422\nDigest = 2b7faf36fdf0e393ddeb9fc875dd99f670e3d538fd0462395ea06c8f\nK = 9267763383f8db55eed5b1ca8f4937dc2e0ca6175066dc3d4a4586af\nR = 422e2e9fe535eb62f11f5f8ce87cf2e9ec65e61c06737cf6a0019ae6\nS = 116cfcf0965b7bc63aecade71d189d7e98a0434b124f2afbe3ccf0a9\n\nCurve = P-224\nPrivate = 3eff7d07edda14e8beba397accfee060dbe2a41587a703bbe0a0b912\nX = 6dd84f4d66f362844e41a7913c40b4aad5fa9ba56bb44c2d2ed9efac\nY = 15f65ebcdf2fd9f8035385a330bdabec0f1cd9cc7bc31d2fadbe7cda\nDigest = 5b24b6157c0d1edf3a40c22a0745d23bdb59379e5e5e776ed040288d\nK = 7bb48839d7717bab1fdde89bf4f7b4509d1c2c12510925e13655dead\nR = 127051d85326049115f307af2bc426f6c2d08f4774a0b496fb6982b1\nS = 6857e84418c1d1179333b4e5307e92abade0b74f7521ad78044bf597\n\nCurve = P-224\nPrivate = 888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa\nX = 4c741e4d20103670b7161ae72271082155838418084335338ac38fa4\nY = db7919151ac28587b72bad7ab180ec8e95ab9e2c8d81d9b9d7e2e383\nDigest = 00c6fc53c1986d19a8a8b580ee553dc1240745d760647d1c0adf442c133c7f56\nK = 06f7a56007825433c4c61153df1a135eee2f38ec687b492ed40d9c90\nR = 0909c9b9cae8d2790e29db6afdb45c04f5b072c4c20410c7dc9b6772\nS = 298f4fcae1fe271da1e0345d11d07a1fca43f58af4c113b909eedea0\n\nCurve = P-224\nPrivate = 5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972\nX = 897089f4ef05b943eeac06589f0e09ccc571a6add3eb1610a2fc830f\nY = 62ba3f6b3e6f0f062058b93e6f25b6041246c5be13584a41cae7e244\nDigest = fb5dd3b8d280fe7c4838f01b2a5c28493ed3084f46b40642600ba39e43fbff7b\nK = 5b6f7eca2bcc5899fce41b8169d48cd57cf0c4a1b66a30a150072676\nR = f12c9985d454ffbc899ebbbb6cf43e3debcac7f19029f8f2f35cce31\nS = 12fcb848adbd8b1b4c72b2b54a04d936e4a5f480ae2a3ea2e3c1baae\n\nCurve = P-224\nPrivate = f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170\nX = 40a4ab1e6a9f84b4dedb81795e6a7124d1cfdfd", "7ec64c5d4b9e32666\nY = 83aa32a3c2fc068e62626f2dafce5d7f050e826e5c145cd2d13d1b27\nDigest = f4083aebe08c9bdb8c08ff844ffc207f80fa4406fb73bdbc1c6020f71281bdae\nK = c31150420dfb38ba8347e29add189ec3e38c14b0c541497fb90bf395\nR = bf6c6daa89b21211ea2c9f45192d91603378d46b1a5057962dafaf12\nS = cb6b237950e0f0369323055cd1f643528c7a64616f75b11c4ddd63c7\n\nCurve = P-224\nPrivate = c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85\nX = 66f49457ed15f67ed4042195856f052fe774077f61cebcb9efddc365\nY = 3a6e3f3423eec7308a69eb1b0416d67cc3b84d24f251d7cbdb45c079\nDigest = cb017b280093879c4b114b52ea670f14e97b661074abccc8539a23280fe136b4\nK = 5e5405ae9ab6164bb476c1bb021ec78480e0488736e4f8222920fbd9\nR = 7b7beaf9f696ca1a8051527478c4c075ab45aa4768937886dbf38618\nS = 93d4cf110a37c5a6f15c4e6024822118539e860dee2f60b8c3f462f6\n\nCurve = P-224\nPrivate = 04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6\nX = 8d642868e4d0f55ee62a2052e6b806b566d2ac79dbde7939fe725773\nY = 79505a57cd56904d2523b3e1281e9021167657d38aeb7d42fc8ec849\nDigest = 5f1d77f456d7ed30acad33795b50733d54226e57df4281a43d3821d0762f12fe\nK = ec60ea6f3d6b74d102e5574182566b7e79a69699a307fee70a2d0d22\nR = 2fd7fcbb7832c97ce325301dd338b279a9e28b8933284d49c6eabcf6\nS = 550b2f1efc312805a6ed8f252e692d8ee19eaa5bcd5d0cda63a1a3f0\n\nCurve = P-224\nPrivate = 35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39\nX = 7924b1d7f5920cce98e25094e40f2eb3eb80d70b17e14b3d36c3671c\nY = 26c5af35f71e61858582b7cc2b41790597c53ee514ffdf7a289d108c\nDigest = cce0671ca07521fdaa81eced1dc37282bd9a6dbbaeb8cd00d13d4cf75cef044c\nK = 751869c1d0e79eb30aae8fbfb6d97bfa332123fd6b6c72c9cd3c1796\nR = 26bb1b92b0f01e94eba5fa429271371db527ce857abba13bd1103f64\nS = 836aba9c63e1252c2b2d72a21e6a41b82241ebe32647e7f814652bcb\n\nCurve = P-224\nPrivate = 2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6\nX = 18cb5826ad60e6696bf07655032a3749f6577ca36da3ccd6e66a137c\nY = 194e14820fe02d784fd1363ff7a30399518309765bd3f4412d646da2\nDigest = 4ee903b828f54f35adab0bfec06eb064abde530d8ed0384730aa23e8e9664801\nK = e2a860416229dfd3f5a5cc92344ca015093a543943a0d8f73bf2b2fd\nR = 00e300c1ef4a8c4ca5da6413856f8981db49de29bdf03f32ffc3ceab\nS = f250f18a51ba5f63e1584097841099fa6ae4e98ee458c061d1d5aed7\n\nCurve = P-224\nPrivate = 831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b\nX = 076518e393940d42dfd09819409d66966d8c9189c83d554a9cc8a082\nY = 44d0ceaf4c0f50e46bea4a52e30423ce3ada19edd363ac5694c65cb8\nDigest = 215e9817eccaa125e0c053fed373f4605de292d27a692bd4f744e63215fd8705\nK = 6be6dd9f6a083915ccba54626caf12d246d3aece0a7eda7d8d85599c\nR = ff1460946e06fb6f5d35e8d2625ca70ffb9b45308e3fabf6ad8351b1\nS = 6029aa3990918e8cb8a388d53b0772e5cdfff49c3405fe0d3a95933a\n\nCurve = P-224\nPrivate = 70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b\nX = 279649e2a2918e683520cde3fc98b0ae58a7100e8de35e7c9cc797b6\nY = aa4de6be34be61f02880139787b9038f4554a8ef1c994b887c2974b5\nDigest = 6571a344765c0512d3911a7724509b649a6ce4106823be76726f117f109ec0fa\nK = 8e984864f86f7a2a73f3edda17dbccd13fac8fa4b872814abf223b1b\nR = 3b18736fa11d04e27e2614cda03a63ec11a180f357b0b3192920d09c\nS = 2f0f3dbd570727b14fbb29155538e62c930dd51c4035275c1365dc60\n\nCurve = P-224\nPrivate = 026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8\nX = 3fa617c50b177da1a2bdb98b780ad21ad1195c4bd24465f6187de3c9\nY = e3fd8d8876dfd03a4a4e31a1acad3a08d983826d286c250c4e5620c1\nDigest = 95914b17ff0362e12305d71657bbc9d919ae4aa746bf4ebe95b2d2fe7ca3f022\nK = 0128b8e3f50731eb5fcc223517fc0cf6b96cd1d2807eb4524bc46f77\nR = 3a6b633f96f3d0b6d54f7fb29ac33709e4f0dd8fa0e51606ed9765ca\nS = 63e8c119dfa51784decd864f6911f2210a80f8f02d472d88df10d119\n\nCurve = P-224\nPrivate = e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784\nX = b7ae1e992b1c7fde1141f40bd913358538ca0f07f62b729f13cea327\nY = 811252d12120e04805fc171a439d382c43b68a21e1a0bdf5e4ec1da4\nDigest = 2dd97b10b2ac90709062989f57873e30696bf8376957e68f7de95aa333a67685\nK = 7abedab1d36f4f0959a03d968b27dd5708223b66e0fc48594d827361\nR = d35047d74e1e7305bb8c1a94e8ae47cb1591c3437a3e185e00afe710\nS = d9c425c9d5feb776ac8952e6c4eee0ecd68aef2f0e7bff2e49c9185e\n\nCurve = P-224\nPrivate = 0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c\nX = cd95cf8fb1cd21690f40d647f2353672a1076cc6c46bddaad2d0fc56\nY = 934262f74d9ee0f8a2754f64cb7415923d64bf00c94a39b52803f577\nDigest = 7c74a2e71f7bb3101787517394a67d03f977c95519526b47854e417b95bf8d1b\nK = 557d0e3995dc6377b3911546dd7aeaeec62a6d8f2af6a274382fc37f\nR = 56df0ea6afdcc232ceb41729eec00cf906b69b6e28423a36d3c92cc5\nS = f4f70fd948c9a147f55317fdea7b8a84c33e721014552d5800d63edc\n\nCurve = P-224\nPrivate = 0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583\nX = b88652020e083ccc1c43dc83d1881884dd4c7e3b4e3460b344b1ea64\nY = 22b69b517f86d7c26dc37c0f8feb4bb07fe876149fbcc3334fd2805b\nDigest = ccc04666744685c57d2256f21cee0f53857a0528a96d59bb13cdeb92fd786d4f\nK = e4f4a3280574c704c2fde47ca81ec883d27f2c5a961a294db7cda9d2\nR = b30b8a0079d9a134b5e1618c2ac63e3fbe0e95866b9dbc5f423f2707\nS = 3dc36746610271ef66e0aa52cc2ccadc5c9b08dc769e4dc4f6538c11\n\nCurve = P-224\nPrivate = 2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2\nX = ce1a06f82df874dded37cca03b56c0648e4e8917ecd40ee73ee61588\nY = ceb6177b8f1ac7c5c6e6e1f7737cc3026952ee392badd2cd7af32f9d\nDigest = 9e7d5f30677692b669e21cf5461fa7f2e887dfcbbeb2db88d666bd591a944e00\nK = e401fa80f96480d437ed4f61a783888062ec33d530b188fd48016a6d\nR = 28674f447c4742e4087bbccfb522fbad4e18b56031d2ce8f532b078a\nS = a5a7a13d15b423dd17771f73cea98d89dbffa846cc209b45c0e29b76\n\nCurve = P-224\nPrivate = f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc\nX = 0dc2cdddb990341adb1de73f02d87fc3822485a659a15145f4251d5f\nY = cf78b2a83c7352eda1af2c74e1804ea04b35f76c04e89d90281dc2bb\nDigest = d8978f697bef71b062d4b3211e8ab5b993c09920af803614dbb9437f6e261b70\nK = 5d1476c682a64162fd2fdc82696fc8cab1469a86f707ea2757416e40\nR = 82982b38ed465138df4018d7cfb835edcb591cb57446ca49d163782b\nS = 8ef1d7b326cabee7f7ab95b7b98d3c27a069c0fd95a1599c0ccb422b\n\nCurve = P-224\nPrivate = 62c572ee0d6f81b27e591d788bfc2f42b5105d2663078dfb58069ebd\nX = bd6ba605639b98fa8113a16a3bb004ddfaec901c98a931206165f4a5\nY = a3190b10ef39e88abd60b2293b4707512b45c6c5ed5794cc11454427\nDigest = 1a9fc0195bf0f53cebba8aa7ccc8567c680d75187392d6d8201854ec4a6e6abd349037d831809e9f3add2fc09d27e4a4\nK = 0f0bb1e428bcdebf4dc62a5278068efc0f8ce75f89e89b3630f102b2\nR = aac0ea27e129f544abcc77f110e70bbdd5aa3e425dc39d5e8887025d\nS = 10e5dd06aee6b8419a04aa33d9d5678b0039c3acc3c4b61fe106bfdc\n\nCurve = P-224\nPrivate = e2f86bf73ba9336fa023343060f038e9ad41e5fe868e9f80574619a3\nX = f5d5346f17898ea6bbdfff19c216a8757a5dc37b95315f5481628381\nY = ae61fd172ac8b7a4f13870a932dece465834cbd4f50bbcfb802c824e\nDigest = 0f236d9a43edd55dacf5ff9f93ee805395e130ca2c8ad2eaea0fdd68e2ee2fadae9f41aa46f881485db208bd9cdc463b\nK = 35724ac043e3b44b73b5a7919cf675190306d26aa67c27c28c873534\nR = 535147c265af138eec50c7fb570bcc8d2e6f675597b0fcc034e536bc\nS = 743812c188a1dddf9fb34b90738f8b2e58760d6cd20ccceb1bb9c516\n\nCurve = P-224\nPrivate = b0a203438e2586d7575bc417a4a798e47abc22aa3955b58fc2789f17\nX = dc5d217862a1e5b00c95affa9d8b925a72b9beaeb7a86dc397e788d8\nY = 5f05f8e976ae1eb1036eca6d683a82850795bf9127dee5f8b2859445\nDigest = 525b6241eb2a6dd00b55b172708aafd0775e959b7c601903f44ffcfc17ee979f34f204680f8a71044a6d7e3679a50576\nK = 408e9c8b1f33136d6ddb93ff3a498bc09d4eee99bf69cdd5af0aa5a2\nR = 1b5a964c8b1fc634c6e2b82322499df1d7f0c12a4d2a77723c816ab8\nS = cf54599a36ca064fae0aa936de5266f87704409d22a15d28c01b7f2a\n\nCurve = P-224\nPrivate = efcfa50fad6fb2065f9a55f28c0c42fa24c809ccb19b6fc6d8ffb085\nX = 61521a0cfb72be77ba33cb3b8e022743cd9130ff49e97093b71aa178\nY = ce0819aedaf6fce639d0e593f8ab0147eeb6058f5f2b448231584ea9\nDigest = 88c4b7ca396f17e82c92596c301e41d7f01810bfeb33173cc0d1fedf3fd5ace6892ba9a788de13417f0ef00ff87344fb\nK = d1eea821f286eae6ebc1f61b08f9ad4323a3787e94af4c32cd31351b\nR = b37caaa71103752ac559f9eb4943324409ebfa8b585f684dcaa5c411\nS = 7c28e7619e2944ab4b7be022878c8052ebdf2cae5dff4f976c49686a\n\nCurve = P-224\nPrivate = 61a17816937987764cdc064dc7b5b4f5b16db1023acdfe25902957dd\nX = a7e975c0a8f87c683bb8e31bc160843a7b69c945f4850bd60e1c08c0\nY = 8930a454dcc2aa13bed7ea89368b2c9d689d816b2acf4e52585ee9c4\nDigest = 3babfaba30f3300171e6adcf4f62a12287031ac40078c96b2c2c063849e9a42ef3be953dc11fb319c18bf22fe511bf37\nK = 44b1fdec2629f9075f89c134ac28ff19bfddaa", "9db02a5d7f853582b4\nR = b0f5635d8bc9c53a1d54a3ec63de59ed66e6b2358d4ab79755414326\nS = 67c68fe265c7e5aba4232deeafb88545a2aa266fb9f2c2bb3f3ae8d2\n\nCurve = P-224\nPrivate = 79d5367314ec664aa0f6ca36f95549502a05bf8400bf532d669fab8d\nX = 3191f0237102dac159032ab2dde53cf56c9ec827b5caddfe9e83c02a\nY = b496b1bdcca4434ac0d0d91ea38ff3bc33f9f54095bfe17796d5a9e2\nDigest = 9f36da1a5653469a52f85e7e3b2a21ac3497cc00ff37e03235bbdf951695f182312ad5c8fb8a5fbd0295dc8c5acda068\nK = da529c52f5cc1f435d873109cd991d6cd7e1631d9ff1dd9521dd5db6\nR = 8e0ac63903f4921755430572c3f08bc272790639bdf1009fe2a9a714\nS = 6278c841a2d0a270791fe54b36c49d426d67907aa4e4f59c8638ad97\n\nCurve = P-224\nPrivate = 1320eedad4745121793a7eaf732b0b4498f7cb456cac8cf45a1f66f0\nX = 9fdd99906ab77fd29e9021bde947d05a7a9eb153612269bfb0899bc9\nY = 681b65b9ac8e4c2899bb622dafb253b7bf5a6e38e5f6595f997c291a\nDigest = 12532cbcfd4e80373bc235ac0bfa2a70b1044786d29f9384d555030f5df3cb5ab9f973df638b6835cb756792d1fe1a4e\nK = 66ed8d8934633f4125f593cf1b1d3745c4db1f15dde60cf46ca1c7f2\nR = 80199485a3a96447b39f7679cd47412a78675ba17dcbd10465dc5b48\nS = a251fd9f136a3cb0dd0bc80659ae032e4a761ba7045da0034553fb8c\n\nCurve = P-224\nPrivate = e18821329447d3f65ba7279e96bd4624ffa1b32b90f6e8331b1e876d\nX = 46c9ed837232c47022df2f1a1578fbe65ac9f2e81c98a74cc22ea31a\nY = 6fc5e9568ae62b31412a0b0b367242e9fd7e518c83aa06a069e1d90d\nDigest = 89030408e06cc06d3dbfb51f6725c710a2bc9db9e07ff1ec8a32a827d93d2dc951834cdb01a7afa1fe4cf4e9186ee424\nK = a4c1eb402a2fb3af26e0e14a3d2fc8ed3bc1a8b2475270356a79fdd3\nR = d478b68733d8ad44be46766e7b66af782fbdc7ff7ed0b191176da98a\nS = 5eae9160ccf71fd1d359d89cecce72ef8afaeee2365f6ba828aa450a\n\nCurve = P-224\nPrivate = f73e030d5a696b358986d3efaca121cf71f775f8835a21e6135145d7\nX = 9ca2c6ea87ac8dd3a23a5b4010841a7c8af309038882ae44634bcf55\nY = b0a347dbd5ded3b8702ac5a457e8b32bd4de06fd315095fa1b7d5fe1\nDigest = eda24262a9e64be110a6c96763e8a4b5edb38af2a084695e294593583b462c56b0db50bc014eb19278e3f3d675eb5f22\nK = e3cc786c1288ea567836c51d6d69dd0cab5c015987d936ccc3a4beb3\nR = f1234da71761b7a0f49e661a419d2a739bdc4544bf87690e3d2f96db\nS = 096d16bf8020c3d3c233894ad8eb81206010e62c6e692a215e088fd4\n\nCurve = P-224\nPrivate = 7a0789323f8741c157a1753ae165ecaf8e8b03a60561f8b80cee467c\nX = 101271a9addd4bd1f19d00bf116c8524f52cefd598e85dc381597acb\nY = 2f17d14f4d8ccb28b216553718152ba7c104646d8eca986dd9ddea39\nDigest = 983a5d16b009cc65bdf3c3badc2f21280e04f44244b70a583c2e9732534497373f51b226c3ab7bd69c6940e46bc41fa1\nK = d169f04f05b60c625cda864d187938863964dab7bb3b9dfc04b05519\nR = e4a51be686a764b709da23ab48b1985e153c6ee238d945e743907afc\nS = 118a8f1ffe3cd556ce6345bd1a398dd9cc3729b7fd6d8af9bfd82f40\n\nCurve = P-224\nPrivate = 78e795d0edb11fd9e28dc26b21e751aa89bea0d87932ef11c95c0e18\nX = 9edd544107977134bf6360d43ccabb3c94d627c03963c0a04b439627\nY = ece4c61d319a0e41f3de7863e7c355bac94395aaa74cdb5f74a87a5b\nDigest = ae7b5fde427af9c450368b11f66f49bf8c3b6e1f5abed6bb25683001924dfb005738637e1c1b7855566330d202ecc763\nK = 36f7c0f76808b826a0a974a1fd6e155e00a73f1d34674a8f88be405a\nR = 3e319444438bc2cc92f323ea842cb402b3c3c2448c89869ef7998edb\nS = 3420cc38f058f41c31e71f4b1ad488f801111c73541de69fcee60695\n\nCurve = P-224\nPrivate = bee02d8bc5bffb3fd3b4c9d6f686409f02662d10150d1e58d689966a\nX = 8848f964c847fe9dddc774618d4588c9cd56bbe588d7b1fb369c8bfa\nY = ebbb699fbd0dc08859fe9132285fe20dff3b9d561c0640b6e0717607\nDigest = 63ef787f467ff0cd6e5012b09414c00ef56dba959c4b62bf7e76a4205078d436c45591752c8d55abe728a2d28b5b0643\nK = 59f1450d857b40e5552a4b8cd4ab0df2f01716635d172c1106840f21\nR = a206d8398a16a991bc217f77f23c6f648384f254f255a8a876404444\nS = eb1169cb5b1423dc0bfaffe565ae57f986e00de06405e3e7b605862e\n\nCurve = P-224\nPrivate = dc0ddf6e501418bb8eafc5d7ccc143369e2aa441df8fc57d5f94a738\nX = 063a5d632f4144376e14cfb03ad8ccf1489b613acd184d20dff66545\nY = e77727f057b043d8a0f7458196b72e92d11f85b0891c6aaa9d915f58\nDigest = 11f0d587e82e7490af4737c272877d9d37c1e7ae7f2fd3b00d8fa0d4f2bcb3a41d5185e65604b8c411a407eb6c558954\nK = ff0e5cae2671db7a1b90e22c63e7570bdd27352d45bac31e338debe0\nR = 5bc0b4998481ecbd3b6609184a84ca41d69b08c37138097f559259f8\nS = 0df8828eb1ca85e46405b94e1a2972c34c5e620a54e2f640f04aecc5\n\nCurve = P-224\nPrivate = 229d89b2fcf8441ffc95ebb2ac2ef156e25825782044b2b8bd6a3e01\nX = de616848d8044a44789ef1ba3a6dd66fe9257ddc57f7534e59a701be\nY = 26cbf74a6d25e5b34b96d30f327abd574cff7f7dbe6686573a7d6c5c\nDigest = 537d6d3d4be3e3beaf31014dae59ca7186c1c1a32c88068ff343180a138ceb6d7c38e0ae1e9b51003b71c1a2f3a3741b\nK = 3b18ca6ec8e8e255ac88f64302745ca0b73ff94b2b2d48be95b4aaee\nR = fa94fd8b827c06115c1eefd50afc02ce5926ee0e789667783c01c34b\nS = edf766a66973cfc33e4159966c07321a7f6549c3c60e8586ef41402b\n\nCurve = P-224\nPrivate = 97d747068147c0393a0bb5c159e2c9f1bd538f6204823294883abe28\nX = 3858a576eef2ce24d01766997fb81b3f3f78b6104cd188610be221d7\nY = 95ffc677ac7bfe3e0bb4cffb17355a964c8356a807151b3cba5d1f4e\nDigest = 7e16034a71ebf52a7a6cd00fe469c6edc121b2882462176298c9443aca2a0ad6ebe2eb9e145097409873170f40d503dd\nK = c1a2ec1ef16cfd5107c892790daefbed061be78bd8576696b60f64d5\nR = 18c908541843fcdac99b9ff6bb397f3f8094d16b42670216e4eaa2d7\nS = c107a8a508ff57c5d4f78f86cc37e129c864d1c44ed5e73909613b74\n\nCurve = P-224\nPrivate = ba5374541c13597bded6880849184a593d69d3d4f0b1cb4d0919cbd6\nX = ac635fe00e8b7a3c8ef5655bdfb7f83e8532e59c0cc0b6534d810ffa\nY = 1d067aebeba66e79b28ecfe59ac6fdf5e1970dc3a84499c9d90cd8e2\nDigest = 3edbb59a32b2464291d0a96023a798c1fc6cb5ff4fcecfadcfac2be00c26fa27181aef76c96d8269aeaf2275eeacbb777abbd9571de9279edc5695a3345cad9b\nK = 187ed1f45c466cbafcd4b9577fb222408c011225dcccfd20f08b8d89\nR = f83d54945997584c923c09662c34cf9ad1e987da8bfd9be600e7a098\nS = 4ff2dba9dba992c98a095b1144a539310e1a570e20c88b7d0aa1955c\n\nCurve = P-224\nPrivate = 1e27187134d0a63542adf4665fba22f00cfc7b0a1e02effe913ceedc\nX = ecaea8ceea55c3bd418fd34a4ff2499e25e66a104eed846bc00c31d2\nY = 3933a356ab1f2dabc303ff0a5d076131e77032e6f502336883bf78a7\nDigest = 825ab979af5c263d9f074a2d771d1d1cdfa435e7938245a3c9ee30cb77ee8c1475051d2f09d7d11d920a6c754bfd253903131c491994679cafdb8cfbf32b763d\nK = 34cb597deae9a3b1cada937abcd247161b19b2b336b20e2e42ae01f1\nR = 58177ba46fb291490b39368774accf72736412c1fb5ee0f27b9b1e02\nS = 58337d78b95a080bfcabb5809bee012501b4da84b8ef310a4628f11c\n\nCurve = P-224\nPrivate = 0905b40e6c29bfcbf55e04266f68f10ca8d3905001d68bb61a27749b\nX = d656b73b131aa4c6336a57849ce0d3682b6ab2113d013711e8c29762\nY = 6328335ffc2029afbfe2a15cc5636978778c3f9dab84840b05f2e705\nDigest = d0db7c20c201cd8c63ca777293543750d7f6a9e375b056e74cfe9fb2c95b2cc9807d8a9607a5b0fad6eeda86e4f73ace139e77a5356181b8cbef3f88173253b6\nK = dc82840d147f893497a82f023d7d2cbf0a3a5b2ac6cc1b9b23e504be\nR = 583af080e0ec7c1ba5a491a84889b7b7b11ccfe18927c7c219b11757\nS = b23700035349df25d839f0973bef78a7515287de6c83707907074fa6\n\nCurve = P-224\nPrivate = afbaede5d75e4f241dd5b53220f3f5b9c1aa1d5d298e2d43236452dc\nX = fe83e59fc8ea8b939355d3258fe53a64d45f63031a0716b7cc416173\nY = f151d23060f1c856eb7f1f58be72a7228c3af89e43b56e9695b558c7\nDigest = 37d9091eddc6fc34b45cf97140e956a42ab659f6bd442e81b57c4ecfbdab45f7380a7efdbac5400ceb1bf683194232cd086c1b4e09fc9313f1bc38af731f1a98\nK = 0fbbe7b40136c81a8fb894498d5502157a1cf5a89d0643de92cd38f6\nR = 24f3f457c7b72b7e759d5a8afbf330e31c5d8d2e36f92c0e79c5d87d\nS = 36fd1193def34f12a960740fd79fb38bf2b480726ccad540eb42cdf8\n\nCurve = P-224\nPrivate = 950b07b0c2b7539a21b5135bfede214733f2e009647d38d8b21d760c\nX = f43d13bbfcee3b724063b3910fea49fd591b81e86fdb813b1a492d0c\nY = 6b4c8d6fa5dc661889e3cf5ec64997a78222837885f85d2fe9b684fb\nDigest = 8ddf64c9c67289a76c2f5b44a30b8365f4adf487b4edadada5749cad9e5765c57a348a750817a53e5c2ff551e003747ca1e3438b2aa1952c6876fda8fd8f4de2\nK = 83e110d0d1e700d2f36543028737d2a2f1474aa3b4b28998a39e4793\nR = 2685265bc878e85d10ab13293dec190881a57c4a467f8fc2170432ea\nS = 80a347bb49036522369339bd6485a967cdda818915d8eb947302fcf9\n\nCurve = P-224\nPrivate = 015bd9f5dfef393b431c3c7fced24385d861ccb563542574a5d2a9bc\nX = e868690641e2cda13b289a6c5d2fb175940396044d9cf27b4f2240af\nY = 4c78c9abdf2b7fc67ed4497001d7bcf1daca1739dc14a661f91d7c40\nDigest = 7c22f34d5897ccdf7d807f68a7f16e3093a4413625e7853401a4e0384d26893f1997c84557515f2ea66afe7629f62415e6b98e18e97dcb4fb2dec97cf2dd68d9\nK = e2374350f47c08f3c1359d4edf87e61d1ba4e7dd1540d8d9062efa79\nR = e12dc088d2bc032bb214c77d0e0fb749fc8e61ebe1ed72996f1084b6\nS = 0ab58aa31e0bba5fbc76855e6549", @@ -2682,9 +2769,9 @@ static const char *kData42[] = { "a0cdf2910c42c9f1954a4572d8e659733d5e26cbd35e3260be40017b2f5d38ec42315f5c0b056c596d\nR = 00d732ba8b3e9c9e0a495249e152e5bee69d94e9ff012d001b140d4b5d082aa9df77e10b65f115a594a50114722db42fa5fbe457c5bd05e7ac7ee510aa68fe7b1e7f\nS = 0134ac5e1ee339727df80c35ff5b2891596dd14d6cfd137bafd50ab98e2c1ab4008a0bd03552618d217912a9ec502a902f2353e757c3b5776309f7f2cfebf913e9cd\n\nCurve = P-521\nPrivate = 013c3852a6bc8825b45fd7da1754078913d77f4e586216a6eb08b6f03adce7464f5dbc2bea0eb7b12d103870ef045f53d67e3600d7eba07aac5db03f71b64db1cceb\nX = 00c97a4ebcbbe701c9f7be127e87079edf479b76d3c14bfbee693e1638e5bff8d4705ac0c14597529dbe13356ca85eb03a418edfe144ce6cbf3533016d4efc29dbd4\nY = 011c75b7a8894ef64109ac2dea972e7fd5f79b75dab1bf9441a5b8b86f1dc1324426fa6cf4e7b973b44e3d0576c52e5c9edf8ce2fc18cb3c28742d44419f044667f8\nDigest = d209f43006e29ada2b9fe840afdf5fe6b0abeeef5662acf3fbca7e6d1bf4538f7e860332ef6122020e70104b541c30c3c0581e2b1daa0d767271769d0f073133\nK = 01e25b86db041f21c2503d547e2b1b655f0b99d5b6c0e1cf2bdbd8a8c6a053f5d79d78c55b4ef75bff764a74edc920b35536e3c470b6f6b8fd53898f3bbc467539ef\nR = 01dce45ea592b34d016497882c48dc0c7afb1c8e0f81a051800d7ab8da9d237efd892207bc9401f1d30650f66af8d5349fc5b19727756270722d5a8adb0a49b72d0a\nS = 00b79ffcdc33e028b1ab894cb751ec792a69e3011b201a76f3b878655bc31efd1c0bf3b98aea2b14f262c19d142e008b98e890ebbf464d3b025764dd2f73c4251b1a\n\nCurve = P-521\nPrivate = 01654eaa1f6eec7159ee2d36fb24d15d6d33a128f36c52e2437f7d1b5a44ea4fa965c0a26d0066f92c8b82bd136491e929686c8bde61b7c704daab54ed1e1bdf6b77\nX = 01f269692c47a55242bb08731ff920f4915bfcecf4d4431a8b487c90d08565272c52ca90c47397f7604bc643982e34d05178e979c2cff7ea1b9eaec18d69ca7382de\nY = 00750bdd866fba3e92c29599c002ac6f9e2bf39af8521b7b133f70510e9918a94d3c279edec97ab75ecda95e3dd7861af84c543371c055dc74eeeff7061726818327\nDigest = c992314e8d282d10554b2e6e8769e8b10f85686cccafb30e7db62beaad080e0da6b5cf7cd1fc5614df56705fb1a841987cb950101e2f66d55f3a285fc75829ff\nK = 01b7519becd00d750459d63a72f13318b6ac61b8c8e7077cf9415c9b4b924f35514c9c28a0fae43d06e31c670a873716156aa7bc744577d62476e038b116576a9e53\nR = 0183bddb46c249e868ef231a1ebd85d0773bf8105a092ab7d884d677a1e9b7d6014d6358c09538a99d9dca8f36f163ac1827df420c3f9360cc66900a9737a7f756f3\nS = 00d05ee3e64bac4e56d9d8bd511c8a43941e953cba4e5d83c0553acb87091ff54f3aad4d69d9f15e520a2551cc14f2c86bb45513fef0295e381a7635486bd3917b50\n\nCurve = P-521\nPrivate = 01cba5d561bf18656991eba9a1dde8bde547885ea1f0abe7f2837e569ca52f53df5e64e4a547c4f26458b5d9626ed6d702e5ab1dd585cf36a0c84f768fac946cfd4c\nX = 012857c2244fa04db3b73db4847927db63cce2fa6cb22724466d3e20bc950a9250a15eafd99f236a801e5271e8f90d9e8a97f37c12f7da65bce8a2c93bcd25526205\nY = 00f394e37c17d5b8e35b488fa05a607dbc74264965043a1fb60e92edc212296ae72d7d6fe2e3457e67be853664e1da64f57e44bd259076b3bb2b06a2c604fea1be9d\nDigest = 6e14c91db5309a075fe69f6fe8ecd663a5ba7fab14770f96b05c22e1f631cde9e086c44335a25f63d5a43ddf57da899fcedbc4a3a4350ad2edd6f70c01bb051e\nK = 00e790238796fee7b5885dc0784c7041a4cc7ca4ba757d9f7906ad1fcbab5667e3734bc2309a48047442535ff89144b518f730ff55c0c67eeb4c880c2dfd2fb60d69\nR = 01d7ce382295a2a109064ea03f0ad8761dd60eefb9c207a20e3c5551e82ac6d2ee5922b3e9655a65ba6c359dcbf8fa843fbe87239a5c3e3eaecec0407d2fcdb687c2\nS = 0161963a6237b8955a8a756d8df5dbd303140bb90143b1da5f07b32f9cb64733dc6316080924733f1e2c81ade9d0be71b5b95b55666026a035a93ab3004d0bc0b19f\n\nCurve = P-521\nPrivate = 00972e7ff25adf8a032535e5b19463cfe306b90803bf27fabc6046ae0807d2312fbab85d1da61b80b2d5d48f4e5886f27fca050b84563aee1926ae6b2564cd756d63\nX = 01d7f1e9e610619daa9d2efa563610a371677fe8b58048fdc55a98a49970f6afa6649c516f9c72085ca3722aa595f45f2803402b01c832d28aac63d9941f1a25dfea\nY = 01571facce3fcfe733a8eef4e8305dfe99103a370f82b3f8d75085414f2592ad44969a2ef8196c8b9809f0eca2f7ddc71c47879e3f37a40b9fecf97992b97af29721\nDigest = 26b4f562053f7aed8b7268e95eff336ac80a448fae52329d2771b138c9c7f70de936ef54158446afa72b0a27c2a73ca45dfa38a2ba2bf323d31aba499651128f\nK = 00517f6e4002479dc89e8cbb55b7c426d128776ca82cf81be8c1da9557178783f40e3d047db7e77867f1af030a51de470ee3128c22e9c2d642d71e4904ab5a76edfa\nR = 01c3262a3a3fb74fa5124b71a6c7f7b7e6d56738eabaf7666b372b299b0c99ee8a16be3df88dd955de093fc8c049f76ee83a4138cee41e5fe94755d27a52ee44032f\nS = 0072fd88bb1684c4ca9531748dfce4c161037fcd6ae5c2803b7117fb60d3db5df7df380591aaf3073a3031306b76f062dcc547ded23f6690293c34a710e7e9a226c3\n\nCurve = P-521\nPrivate = 01f0ec8da29295394f2f072672db014861be33bfd9f91349dad5566ff396bea055e53b1d61c8c4e5c9f6e129ed75a49f91cce1d5530ad4e78c2b793a63195eb9f0da\nX = 009ec1a3761fe3958073b9647f34202c5e8ca2428d056facc4f3fedc7077fa87f1d1eb30cc74f6e3ff3d3f82df2641cea1eb3ff1529e8a3866ae2055aacec0bf68c4\nY = 00bed0261b91f664c3ff53e337d8321cb988c3edc03b46754680097e5a8585245d80d0b7045c75a9c5be7f599d3b5eea08d828acb6294ae515a3df57a37f903ef62e\nDigest = ea13b25b80ec89ffa649a00ce85a494892f9fb7389df56eed084d670efb020c05508ac3f04872843c92a67ee5ea02e0445dad8495cd823ca16f5510d5863002b\nK = 00ac3b6d61ebda99e23301fa198d686a13c0832af594b289c9a55669ce6d62011384769013748b68465527a597ed6858a06a99d50493562b3a7dbcee975ad34657d8\nR = 00cef3f4babe6f9875e5db28c27d6a197d607c3641a90f10c2cc2cb302ba658aa151dc76c507488b99f4b3c8bb404fb5c852f959273f412cbdd5e713c5e3f0e67f94\nS = 00097ed9e005416fc944e26bcc3661a09b35c128fcccdc2742739c8a301a338dd77d9d13571612a3b9524a6164b09fe73643bbc31447ee31ef44a490843e4e7db23f\n\n# The following tests exercise the bit-shifting case of ECDSA digest\n# truncation. The digests are larger than even SHA-512, but P-521 is the only\n# common prime-field curve. (This case typically comes up with curves over\n# GF(2^m).)\n\nCurve = P-521\nPrivate = 01f0ec8da29295394f2f072672db014861be33bfd9f91349dad5566ff396bea055e53b1d61c8c4e5c9f6e129ed75a49f91cce1d5530ad4e78c2b793a63195eb9f0da\nX = 009ec1a3761fe3958073b9647f34202c5e8ca2428d056facc4f3fedc7077fa87f1d1eb30cc74f6e3ff3d3f82df2641cea1eb3ff1529e8a3866ae2055aacec0bf68c4\nY = 00bed0261b91f664c3ff53e337d8321cb988c3edc03b46754680097e5a8585245d80d0b7045c75a9c5be7f599d3b5eea08d828acb6294ae515a3df57a37f903ef62e\nDigest = 007509d92dc07644ffd324d006742d24a4497cfdb9c4efab7768426b3877d810602a84561f82439421e49533f72f50170222ed6c24ae6c11e50b7aa886ac31801580\nK = 00ac3b6d61ebda99e23301fa198d686a13c0832af594b289c9a55669ce6d62011384769013748b68465527a597ed6858a06a99d50493562b3a7dbcee975ad34657d8\nR = 00cef3f4babe6f9875e5db28c27d6a197d607c3641a90f10c2cc2cb302ba658aa151dc76c507488b99f4b3c8bb404fb5c852f959273f412cbdd5e713c5e3f0e67f94\nS = 00097ed9e005416fc944e26bcc3661a09b35c128fcccdc2742739c8a301a338dd77d9d13571612a3b9524a6164b09fe73643bbc31447ee31ef44a490843e4e7db23f\n\nCurve = P-521\nPrivate = 01f0ec8da29295394f2f072672db014861be33bfd9f91349dad5566ff396bea055e53b1d61c8c4e5c9f6e129ed75a49f91cce1d5530ad4e78c2b793a63195eb9f0da\nX = 009ec1a3761fe3958073b9647f34202c5e8ca2428d056facc4f3fedc7077fa87f1d1eb30cc74f6e3ff3d3f82df2641cea1eb3ff1529e8a3866ae2055aacec0bf68c4\nY = 00bed0261b91f664c3ff53e337d8321cb988c3edc03b46754680097e5a8585245d80d0b7045c75a9c5be7f599d3b5eea08d828acb6294ae515a3df57a37f903ef62e\nDigest = 007509d92dc07644ffd324d006742d24a4497cfdb9c4efab7768426b3877d810602a84561f82439421e49533f72f50170222ed6c24ae6c11e50b7aa886ac318015ff\nK = 00ac3b6d61ebda99e23301fa198d686a13c0832af594b289c9a55669ce6d62011384769013748b68465527a597ed6858a06a99d50493562b3a7dbcee975ad34657d8\nR = 00cef3f4babe6f9875e5db28c27d6a197d607c3641a90f10c2cc2cb302ba658aa151dc76c507488b99f4b3c8bb404fb5c852f959273f412cbdd5e713c5e3f0e67f94\nS = 00097ed9e005416fc944e26bcc3661a09b35c128fcccdc2742739c8a301a338dd77d9d13571612a3b9524a6164b09fe73643bbc31447ee31ef44a490843e4e7db23f\n\nCurve = P-521\nPrivate = 01f0ec8da29295394f2f072672db014861be33bfd9f91349dad5566ff396bea055e53b1d61c8c4e5c9f6e129ed75a49f91cce1d5530ad4e78c2b793a63195eb9f0da\nX = 009ec1a3761fe3958073b9647f34202c5e8ca2428d056facc4f3fedc7077fa87f1d1eb30cc74f6e3ff3d3f82df2641cea1eb3ff1529e8a3866ae2055aacec0bf68c4\nY = 00bed0261b91f664c3ff53e337d8321cb988c3edc03b46754680097e5a8585245d80d0b7045c75a9c5be7f599d3b5eea08d828acb6294ae515a3df57a37f903ef62e\nDigest = 007509d92dc07644ffd324d006742d24a4497cfdb9c4efab7768426b3877d810602a84561f82439421e49533f72f50170222ed6c24ae6c11e50b7aa886ac318015ffffffffffff\nK = 00ac3b6d61ebda99e23301fa198d686a13c0832af594b289c9a55669ce6d62011384769013748b68465527a597ed6858a06a99d50493562b3a7dbcee975ad34657d8\nR = ", "00cef3f4babe6f9875e5db28c27d6a197d607c3641a90f10c2cc2cb302ba658aa151dc76c507488b99f4b3c8bb404fb5c852f959273f412cbdd5e713c5e3f0e67f94\nS = 00097ed9e005416fc944e26bcc3661a09b35c128fcccdc2742739c8a301a338dd77d9d13571612a3b9524a6164b09fe73643bbc31447ee31ef44a490843e4e7db23f\n\n\n# The following tests use digests equal to the order and 2^n - 1, where n is\n# the number of bits in the order. This is to test the truncated digest not\n# being fully reduced.\n\nCurve = P-224\nPrivate = a80489eee3b15dedbc2d8ca4134f18b7d1a541fc212718f21a04692c\nX = bd283d0c18d90b69d9ee3e0f1e8e62f53822f5593fc94343666495b5\nY = b3177709b8dc4b62928f9dc561c2b4be42c7df52d4e90e7e885b4021\nDigest = ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nK = 90fbb04276d112cbb6ecd2053e2a870f02350ac7e2881c89851a4640\nR = 7d0642a2cb98b56ff91837bd23e20bd90b60613b60eabfbc078cfbfa\nS = 0209a75bbd6c2310fa55fe2c0c3ddf35be53fef6e1cccf0537f3e7be\n\nCurve = P-224\nPrivate = 72a2e505634a669d492d28b1b43974cca3aac7b5eaffa1719a551d3e\nX = 42bafdd82b5bd766a727211e4af8bf46015705b878772b296791cca3\nY = f5db26e760f4b2ec586222d3cecb525fed32a841fa0ae547f5c435db\nDigest = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nK = d6abc49b0e60f1e2e7a5736aa8e93a5de9777f4b9e6c96692fcb662b\nR = 42232b212356d9adbb5e43e96e23c376fa5d21c9ad6a50137d2e3bd2\nS = 020596ef40a9dbea4d6779ff02c9cb853b520093113a968a32309118\n\nCurve = P-256\nPrivate = fb801b1a1161c143578358dc6edf8357167c12636e5b588e171d8bffcca78d7a\nX = e57231383637c82c1ac801724cf7e03e67198f467a9beb60ac13cb582d13afa8\nY = 8f190e090155fcf63810b858bc88e259dc49afef8bdef6fd06d93dddb1991aed\nDigest = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nK = 3d1df8b364fc045d8c6517f7a4b99c91643a2bca351b3a74fe36268c97198c3e\nR = 05cc6037bb021f4910ea2e489fab2bae6bb6a2769a97f42ba5736994102b7f10\nS = 5db54832ceabf8bccdb8be99b1a49cecff8feee045cb697dec43118e2695b1da\n\nCurve = P-256\nPrivate = df1ae1f7a1043d03811c61695dba0350bbe58d36a670da66d58c69e5bc9ce1fd\nX = 6e0e2897b9a554ee287cdaf43bfbe25ca8404373971575a0e4b61c61aff5a2fe\nY = 23ea7823a411eb1b39f81bbde24c2cd6ac68be2c7eec3a0671c8676131b8905c\nDigest = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nK = 6b6e0cf93ce4482a4c23821125186f39656ccc993e4f080ac8750c32927a515f\nR = 16831feeceab2fab1c575e073e944d73ce7e6f3e9b06312088f06159c530ff50\nS = 870cb824692638538b1569c6093fcb693c054e8e3b9a919e3bb26798910f66e9\n\nCurve = P-384\nPrivate = 2218a70d35d5a9eb16442eee8e74a8b992d9475edadd6b814ae6c8779b32df164553546bf3405bd5242b85092e2f0098\nX = f4a961c19f9cc4ebe4f43081110955f3cede085a08c1415d726e80b2eb774028c5fc96f092ba3ea7d1288dd57fe1db08\nY = 981398eed0895e09b3b582a0616f3024e51cca7b1ecc347dbf0d24a5f6a222b0c31912f8f5e427d4dde5c6c45212bb10\nDigest = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nK = 118f1682e0dc4602fc6f142f98d48e36adf32566f34be311ca55ccbe00fec28e52d72857e02f139578316a5dbe1ed9b4\nR = 0b77eaff05bbd922dd80525d2ab301cc119318f5a920a12c71c4b5ff5bb77d25a538983df9bdd5984b0d159daf21f1a2\nS = 73af85ad03a34b6b3993082bf719018d25d1555717b2d2f2535d0601af06a71ad020eff8232d065ab9d7fc4cd0c0ee42\n\nCurve = P-384\nPrivate = fae6a843fcef48d15685766d189fe1f597cd85d4e07172c8e19589e1aa2e8e8c4b75731e9afccb7b585926934583829b\nX = 54dd8d7cbf2ccdf1a42f5bbc615a372803b094f6040e3c7b651a61bc6912432c836cf2410ab7d67f543236751d81066f\nY = 2219d6257b1c80bf327c96786f2b5d0b5a9b9bf7eee9c853bf66a3bf09520494cb1f7823e4c566d79a617b7e201ead96\nDigest = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nK = b7db03d70db5cdcce3c708e55ad88eba80e90f6bb0be3713686bf298709a8b326619c1d47318f9af60039ff051f33a1e\nR = 9d923e199d98272e44b8fba382bf3c19660ecb4a9aae3513ff6802a73fef510c15c202807c3f9334b0bce7d6c6a80839\nS = 520784e6290d04d9b61993ee5ebc6fa8ff527fb0777c43cdefc7586701e60edb399005a5648ff852de80208232849fbd\n\nCurve = P-521\nPrivate = 015a5274c44e51b3cce4b1d657186871a851747e086934cb132559d83e07b3b2544c5d62b26385272101e20f963d2df6e029d6a6818cc4839c3f28a4c384dff4befa\nX = 00056cc489982829b728978193d047596325a91ee2e2c9110f7da605fd2d1b78424e87d85500f391fe9f54209c42e582ca3284484afc6edfe2acdc69c3591f6c47cf\nY = 010e91be6632da7afd03caedebdb572fd41cb1a7221e9c2d984016bac4693b3d10c5b1d76ba32b89f5fadd157df122be9cd85151977b99176998cfccbd3f9a03ba3f\nDigest = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nK = 001441599703e14eca10a787dd421c334bdd4c91ad33d05fe2929100a5eb343df47fb28236423323e769ad1cbaffc6e9ad01a06b2e401d647511ad2e920c2145262d\nR = 00bd5e59a9bc97de61588d143990ad7fd5405ac53aa8e6332a085a301138b23beaba126b41549db1167df47362a9de77c73b1bfaa14b31114644b4db8d35179f706a\nS = 000cbb560f68b7240e309301ed4e6dc20d329f7e2098bcae26a07dd364e6177bb408eb5d0b47a3fcf36def98b951af9a55a47d24d95cd66cc11973269694e2f6f8d1\n\nCurve = P-521\nPrivate = 00cfac6f8a1906241d873da27b4166e0d0bd76c511177835d0978117056db44750eb0648e6899f215e6c0dd6902c114a802ed5935df8c54290fbfe184ff8ccae444e\nX = 002aca58eeac43152b292f42a6a677d327386337409ba7de17acae1978e097f21e49d47f707c6ed6045c66551c93df9ef9bcc442db804e62fcac9f0574876d6d7fea\nY = 01862ed4f9d235afcc4e6b45e491da363104d4db7b97f12d869c40ab09a3c8c72519a9712ca733ddf046ad039842e8caed2425ecaf42d5171b3e236c11fee8699684\nDigest = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nK = 00938d2f6550a46fb07b058e6287f428f0ff12aa6732a666d4a6cf2dd7cd8023ca76d0ce4e16b62830d0ff9e2fab9987261f3f3ffe0749ff70950d91b897d57007b2\nR = 00ec0b91fa4386a8acdc0e46dd9c1d1775abbe0da8ead424aa4ace58e284a5be00e2c1ef95b6f4d861615564e1e7305656567f95275ce63b534420eae77ec37492c2\nS = 01e1099fb389db498ab4cf23b4f06a74b9326878ae3c76ea13832e50702b30fe8303093a59cc9a0995f1dfc15e6f7dabca8a2acaf03ec005447d29fb429a252064ec\n", }; -static const size_t kLen43 = 170210; +static const size_t kLen45 = 170210; -static const char *kData43[] = { +static const char *kData45[] = { "# Tests from NIST CAVP 186-4 ECDSA2VS Test Vectors, Signature Verification Test\n# http://csrc.nist.gov/groups/STM/cavp/documents/dss/186-3ecdsatestvectors.zip\n#\n# NIST's files provide message and digest pairs. Since this is a low-level test,\n# the digests have been extracted. P-521 test vectors were fixed to have the\n# right number of leading zeros.\n\nCurve = P-224\nX = a100d410ce497e991070285c439cd361a1a9c6c973fd6f5e1ba9ec66\nY = 0a8c3a2f909f212c84441b8c0030529cbd731304d86f771d89d7cc29\nDigest = 6a02c84186eb132d8e91ab6fea2e066f6f8de1a5\nR = 1bfcaab01e47addd4733369320364ad208169ffb15e6aac33c2d7c06\nS = 07fb33465e7b7b373feda2ea35ab7cc9477156a1335ecad942f99627\n\nCurve = P-224\nX = a6cd3d14cd5eb188a9f59d9c32e93d890558de382f6fba5ff5c6e395\nY = 7a76734a0afead9e5e4aba65f1ae353d6445b1689b5ea402de5f9af9\nDigest = ab1205b7f9f591a013c70cb645435b38689644c1\nR = f0f670963c3d2a3281d639f850f3781c6402d99a1bf07cd9f35b2975\nS = 758e84920c1b744502cd787cdd64ec58364ccc6917258a2580097492\nInvalid =\n\nCurve = P-224\nX = f5fe7875a517207f1336ec2bb4fe5cc7eb80ee2b0f8ebeff4c56e620\nY = 0b7ac24ea9092d03b28904d89714b517be023235abc9cffa297cf4ad\nDigest = d62c7a42fcf3738276a6e0d27160328e9f27e5aa\nR = 88617e694e361d2cfef6b0658d444607fba030ad31fe8dead14db22e\nS = 5b0bf37c4a583dd75d99aec20943ea02617cecdbcd295d35ed01cc32\nInvalid =\n\nCurve = P-224\nX = 8a6a77179ffc0ff5d412cf859cc82aa19cd18e5224ab997e9c2e46b0\nY = 3d67c177ca7cc12c7b05a3bf55fb78549ef5400a566efe8ae3580c9f\nDigest = 0b5a025a4038b6f9f995001c0b8d7a660e6766c2\nR = 107b7442e6569ddde54b5da55a9dac9bd348079358047a19a3de0b91\nS = 92359be39353cb263946294fb728eecf1880f50a43637f391d3e7824\n\nCurve = P-224\nX = f9f23388d573562f29e7e7c9a98f27e7a1ff02d2d66e177c6506466f\nY = 4545937caf1878fbacc34ca38a0e5e1f6ad2b25ddd796d06c8d12351\nDigest = cf670c7589b91dac6a131fe2e863e86ee790ca75\nR = bc1db32e437c67439c27db1dc607e3c505210c984bf707a8e87abb70\nS = b760f4943a2397311e54e888a1ad379ad9c45d1fd09b5389ce1a00ee\nInvalid =\n\nCurve = P-224\nX = 8781e5a98950092570d685964e9ed27760fb7dcff8d3b6f3c8f77151\nY = 9207cef64b7c2ed181c57337001f45f1e800e0d1bc8adac296e454b5\nDigest = e5e5e8c8b3f7146c72ef86ca1b75f422181b5729\nR = 79826ae5b0297b9404829df0f02bbb7b8acb35459e13a4045c40f242\nS = 2a629dab19c9e5cd0a551a43851fe6d8409469f86cbcf6204b41e5b5\nInvalid =\n\nCurve = P-224\nX = 03c78c532b8767784fd45e75027abce3371181f8f54914811588cbb2\nY = 166c7b70e98fa11ac361d827557676ec07e553370a462b4fe502dedb\nDigest = 270606c9c9b136ffada9588f15f9786455369422\nR = ff18b493b166d832c9c25ee491525e4c188ff2b804e38b5964941c48\nS = bbf4291db484b4e4143c01a284c03543bbdaa2db1f1c571f1e5a5e2e\nInvalid =\n\nCurve = P-224\nX = 99fab11464484cee96d72dfcf0327d671787a2f6ee32f9b184c48fec\nY = fe8ec3d660cfa3f3e09e5cfc2c3298d4de2f464416deb5b4a27ac062\nDigest = 9c77c796ba619aedef68b2d30b4ba00c4972488b\nR = 714c48c143cb259408c04f77a38d6484e788cb268fc9789d5e871491\nS = 542793d5dbcabcebc83a809cca02b8e95189c93fa4e330d66d5a62ef\nInvalid =\n\nCurve = P-224\nX = 014e8e57388eba32ebdce80df60c481e5c7758374f90a92e0a82f1b9\nY = d1aa8418f992283c5b6bb0461f05dc9103050dc55e0265e1c99b935d\nDigest = 82b45d1fb3bb502c7c20ee1e2d63f2aaa9f492ab\nR = a159b83e80e656f54f614e8437821bd87f6f13264ac8eca1b3ddde29\nS = b77b7bc8cf374f012ee15f9f9224a46a560a5b689cfc92ca4fa03459\nInvalid =\n\nCurve = P-224\nX = e0b9e3cadca81311923d6d6adcfc326b62fac9c4b8d61c5f960c88fa\nY = be505338108f8d3f0ee80aefa304d51dd4a4035477934a98a6111403\nDigest = f4da99fee346e572906e6dc8083a3d0c2e09b773\nR = 8dba585dc3312056a7be61161c7af8ba8b538f0c125c80cf9af2682e\nS = 1b5b1adac4d66c7045f3f79c3aa154a0274c4a994ac7a093e2482eeb\nInvalid =\n\nCurve = P-224\nX = 29197e94a3617e62d9999c859640871a4537a073ca4f12a4c324dcad\nY = fe198969ac7cbe49df2c61c4cc6fa502c2207a7da10acdccec7b1cad\nDigest = 58fab970cb7c1f0dac21b7c7fd67d0ad169688a1\nR = 261670b09afaeee71c590c5658e3f57d859b18a887f70fdeb90e57ea\nS = d1d12c11cf7f4a9dd015ead4bd245793cb37ffee1f4cf109b7b68394\nInvalid =\n\nCurve = P-224\nX = 0fac352c1c444435e6aeb1d60f28ac773b0170ae902afb0944ef0a12\nY = ac3ca693a7c5347a074808b43edea94059e2b1d0571d935fde3f5841\nDigest = 4b69dbfac12f1b974566d8170d1672d0f5fc0506\nR = c33c7a4de313ff856d2f51cd9e3d173bd10668c296f0e6b208c036ef\nS = e562d30822b5cc69713a57ce8c70f83827add85a06c88109505ebf7a\nInvalid =\n\nCurve = P-224\nX = b0d4298e998b7d9d4509322a1ac974c6180956533debafd3d9e7f2fc\nY = 185a64ca840d4b6a2800e72433f26dd523f97daadc18d6d01533f0ad\nDigest = b84805c37e76e530729ddcb59a68ad69d40c82f9\nR = a5155ce53050cbfe84b67d62ce118c6004564087f2fe1cdf44e9c945\nS = b6894b050d77a3ff4d191ddc0c9fc7009a7472e31739949193d7cceb\nInvalid =\n\nCurve = P-224\nX = 59996a4a06658e553fc2993f0f55e3fc8ca2cb52d30f882a37729be4\nY = a5f68f26ea6608fd1f350d8da7c187c7e70f23363177a5aa41508fce\nDigest = ef0a69578d8a1dc930803a7ad2a92c3c19ab6513\nR = 704ef49e0a43c61ef5b325899acb9d12287883a849976c8b9c950634\nS = 73da6e3a26d5c512405fc09fcfdf650dd8da748e6c3dfc05032d7a9f\n\nCurve = P-224\nX = a0cfdfc5a096b0b23ba6748ebaad17e60228b204aebdc01057a7154b\nY = 9f6bd5369d21d88d7b5c3ce221af530fb9a8fb91e751cdb855ff32a6\nDigest = b05f0232e6d44151e249e7b75c7c9ab05c14d44b\nR = d68aa9048e84b8653b8ff3ab31bc73884c6ac7df1fd1bd3c38c16b0d\nS = 38ce58afe5fbc6af892e06a4ddd978c745d5ec700cab825c11dd8fd1\nInvalid =\n\nCurve = P-224\nX = f1eb36b3e1c96a18d87878d5fa8b79d77afce9d2ce40d26199f33482\nY = ae819af474f3efbd62401a407036505c5a2d60449274593865de3374\nDigest = 1dd27c95dd6fb3f080afebdf5a1ad906502e12ab8f64e5f38f67c386\nR = 003122e976bac378c06ec95fd73290b067e7ff022d23493c40663ec9\nS = b99eb4220146a282c7a34f98a9a4fa38ed3f48ca2c7983cde2d3235f\n\nCurve = P-224\nX = 3bdcc7c6112cde3c0522f1a4863f1d7b6727c5bff67598ba2f1bafc1\nY = 47acb6b254e0e8747e0039de471d0dda443cb09a592c678717d83200\nDigest = 19b39292f4e862ed3ee90c35e709587231191632dc8b35611dd24abe\nR = a5aab7768f549f8fe3c7e650154c865b71ea5089bd6303bfdfd19316\nS = ee4989c4b96bcc802464fe44b2adeb1b3506755a3f4fb3f9252bf21b\nInvalid =\n\nCurve = P-224\nX = 6d5bacf458cee3ded627d0ff14fd2aeb54fe1455d6daaf7bb43faeea\nY = caecc8d3967ca1c8889607e9ed975b8a335a17c0acbcfbfed721ee1c\nDigest = 328ab7d2a7c56d09cb72cedaacc23a6da46d5cf984dfdfd16af60964\nR = 80e7024bf30ecddf7a658785ae51cd6e5a23963c89ee96a82346d889\nS = 561252dc8d9280fc54da0046da494fa5e4b7aed213923e8b894a1ae3\nInvalid =\n\nCurve = P-224\nX = 7f9789c729355516588a5c75cb2cbcf85a14c35e14a5d03b4ef920d7\nY = 49e95c49e62dd20f02ed16594f35ebf3415ed50e6efdc0c548101a9d\nDigest = c5bb2d7ca9b37af1f4bb572ae6b6e69e8fcab9ac1cc5a6e1b6d1f8de\nR = 3c7b664413c2a0e4682a9d1c88243a96196fbd03f72cb873b9bee8b9\nS = 8f7f81ee9d3a2660ab1d666bac6cc434143ca9b04ff638ca7b4aa1ea\n\nCurve = P-224\nX = fd3efc7108edbe155adcd8686d8605e811fa79756c7e2dc8c1c04212\nY = 59edea73a4e5f91541fb4cabce539afffa85b6b0113289f049ce60a0\nDigest = 562d1a8fa642dd8bbb4f4801f2d9fc8cf3452be916c0ecd6c8ddc4fc\nR = 4907884b8b7d0eb9a7b24420f69c58e3a17314e101da0280c0ceb130\nS = f7629bed92e5c40f35d7731912fb45a3cee06eab3d409a62997f2282\nInvalid =\n\nCurve = P-224\nX = 8b3f3e31d9c8408a39997455ffe0240fe128a5f1be9b3a33a97b0910\nY = d74ac6ad8de2407887c335bd66f684454dee175a2af713bb334cb3fe\nDigest = b57ffce01c72221c6714e4a38c76746c45a8cc685f37c55a69f6773f\nR = d28ae763c22f50ae9ee9fbe5bab682fd8d820b99ab70677cc46624f7\nS = d9fa54d0300a6ac74936e7a47fbacadcbb4b25ae3a5b550aaf53991f\nInvalid =\n\nCurve = P-224\nX = f4fd02f3d224727e156a2cd7543483f3e35eb65219e32c7923f93ecf\nY = e7aa734828ef326259f98e0e8c3f30b62bd3295c6d1af2c429a087f6\nDigest = 8e70efc206d69d1bd1dce263a29a56030ad5602046bc61848899474d\nR = 9f57e28f69d2ebd96f6d98903156a4e795730e09fb67963771b0a851\nS = 8cfe716488479e04500c8eccdc86fdd54ff00258639f7177169e2030\nInvalid =\n\nCurve = P-224\nX = 0fdb8faf52d8f46229cca1e0f22e869a91bd56eb6dccc547151f9c68\nY = 96c8d1946528bdd2c14c3a0a9c17a088d3f0599752d095ba9de9ffa6\nDigest = db452771046d4b64ba673771b49df905881df9c4b6a1292a11f87515\nR = c53c0ce7d408278552a5fe5854c05641cbe93b1dc18eff1c68af53c1\nS = be7453a12693ce7812fe58746323882bc14eff972480b49431cb10b3\nInvalid =\n\nCurve = P-224\nX = 240431da69703b32ba2ae501d2458b355b66170725806b45996db195\nY = 13beb5198ee00abdcfb2cc5454416d4f7c795e97a14bd93cec3f0a56\nDigest = 3598d7d7b2cd9e482fd3bbebb9ae4549a4b452c81b89f3da6f6f2e85\nR = ad03bdf64e3450407a2a977e1985853d6ea41568c3a394d696de6739\nS = 7b55db9abf2045e2dc7ccfa2e8fb501883c494662d400590c74d100f\nInvalid =\n\nCurve = P-224\nX = 8c80c86f91b1e330f86f5177fdba839e625a27e8531f232efb10a484\nY = a24deab897", "8dfe7398f7a1da0633ff7cf5aa7b7365ce2d840ce81c80\nDigest = 44603667b2251cf051cd67b927714d67a25295679d884c4b79099a80\nR = 0c422b292308f31af78b1261d12765cced1cf96a83a6bc3bd90330fc\nS = db34f4462d0bb1927cc99273dc92d3fe654c85a3b53c6d74ed900621\nInvalid =\n\nCurve = P-224\nX = 3a5d1b7ee6749630c9619789b256f6bad5bc4b09950cd53b78d5ef30\nY = e85c7ee707df680eeb5fd78451f7302ae653f96721443826096f62a3\nDigest = 2ed9e7077df2ca2f8a96dfea2127b1b34147fcf963f9d73e8aff9df6\nR = 671ad280609364b0e26c92b13891f677db7c83499d0a3d7b6d80affa\nS = 7c4b9c5a3937d540ed8bd59e340c13f02313445e06b2bf7525f5726a\nInvalid =\n\nCurve = P-224\nX = 350f59509abc9f7f9b35a8b80065258727a8ffc27e6dac635ed68900\nY = 634fceae493b200cc7680297fd940dd86a5111da14bed68c797ef254\nDigest = 012a6edb0064f2b734b0297ab924efcb0e653be9e6ae97c371d59680\nR = 13a302b200555a0e80584e6ede32c0f9c5a199125b219c3e8d0fbf96\nS = 13f1d7b0c87acea6290cd9d36f1820f546f83dd8d7d9abe9da5812a9\nInvalid =\n\nCurve = P-224\nX = 1fdb820003a2fe61deef2b68b92ac711abc76200c534ec3abc99a187\nY = 32f87d0554b6b5e389311fd3c86825fcd42654a0b6f5d4d5ba73031b\nDigest = 2afe40d5042eb4020b14053e9ead6774d566e0b536912b7de4450090\nR = c03e551abcb12eadbc291b2d5fdd53bf725b785933e0766969f0355e\nS = 94826a8753cb949e0199be3220b4f90318f1c835cdd67efc50df7fbd\n\nCurve = P-224\nX = 208dcc6c87e7c38bd914bc9b350602ff62ac62fa4fd633c1af5b8cd7\nY = 0263587c7692c8be1f78de88ed6dc99ce1198ecc53a77ae6cf98a323\nDigest = 3f95e73294defecfc125a2dbbf322d31f323c030adf244c07a7c8746\nR = c12d3b396e1a894dfe4a28971ce4983547596879956504e1a3aed75c\nS = 067b729ca23be6cd520fbe9b972b9bb3d00c9ee96832a5c35e20e0e0\nInvalid =\n\nCurve = P-224\nX = a66a652fa36413dccd72c83febedda051182dc5758a1466366197f5f\nY = dc813a79e0fc647d8892dcf4f2132c90914a520cbbad65f458ee0fae\nDigest = 8a8942761ccd4ac7c88c4afcb6bc69d431cc3d10e6ad7a2b8610892f\nR = 809d1b4557eaf36b6eab3449dad56e61d572bd8b63d51b63af1b0bc6\nS = 8bf88226a463606ab57c27ed78f1b71ccd61732fa58b62ee845fd3dd\nInvalid =\n\nCurve = P-224\nX = 8856fb8b81a4eacd971a954560018f33cbb71cc1fc243d03f63cabcb\nY = 28afa26baf31b4d89de1dadd2289006f836f23a11383817ec7e4e799\nDigest = d8454640ad1f4632cc667823418ae56c62028825d727adfc84afdb0842b0c9a4\nR = efccef331805e71bbf876cbbc2342a6bc4508aea7c691029c8396aef\nS = bed544d09e28dbf01a30b2cfb61b98ad6201a9818f22b4f543f3e7f5\nInvalid =\n\nCurve = P-224\nX = 34c5ff3de565b85bfdd9f0a8b3fb0d46f924c57b276bcc830a1ed580\nY = 609d22200ef38b410da77f7a8ff2f58448188042978fd9ae1b2b4477\nDigest = 831979405db4eb9dadf01249fa15f68d4846e0ece70a320d3022f75f3dc281cc\nR = f0138024fe0516738f3bd0e0fec10defaca8c3b89c161a77489cf2b7\nS = 4ae0934266d9e3d64c2a12f546b132ba0f33ef50abc90e7ef5974805\n\nCurve = P-224\nX = 465afb14f4bf85022ac1f635f46c0b2f6548bace9352d32f74eab012\nY = 036371a3246dbf1069d2d268ca431553d1f2bf0181225145881b7be0\nDigest = 489cd3c10d94f7f284bc4ea472634a5d7f0d280d5abbf139c110ef80c8bf463f\nR = 9bcd57a2fec2518903e4b13dc0a7b84bafed5c4908546e94ffae87ed\nS = a337e06582f6b3973df38b93a0fb2a63f7774b62db50dba557e5cfcc\nInvalid =\n\nCurve = P-224\nX = b8b7f923c05ec95ebd484db7c58d219cfd26ee6b66149631f25ffe4c\nY = 6bda5f4f988784555a80b5494eca51ad2c7f88ce94d2090ee0c76fba\nDigest = b100feed0121d9d0471e5bd94a659510c2f84e313f476431deac17ca6d87bd79\nR = ce4d86bf5a7543d1cba8e4470a297e9a48d0096d7788c6284b1c0af3\nS = 229eb0636ee62508ce3719396d7577ed892cec70a66857fdee0d1fa0\nInvalid =\n\nCurve = P-224\nX = 13e84ec2eb993818d7d78330855ee2fbe8ddb548a5e4198e2087b3b2\nY = c95dff249e10c506fb547a92ade53c61ddbb667c760e4127a1a7f806\nDigest = 21a9f65d4cdcc287e0bf330e4f76f1168d16d0cea796dd6c0e13cd2837decaf1\nR = ed26f00ed696e114305c546ed04db5fc35efa43059c0d8bbcd418d0c\nS = 6e16efbe9501e3055d74966a49232cd76b5d1241468788b4cc7378b4\nInvalid =\n\nCurve = P-224\nX = 16c23c93699cf665a5da8b2d4baa72c36158d3433b1b945e47204b0d\nY = 12023703e1b59ec9054ff22d15567b9f74058b47cc13f2ca08ab77c1\nDigest = d62496d0ee0453e7f13f8d9c57adcd33442a5365f626381ed665f95f528aa198\nR = ada849b673a1bd2949a8b4d8fdfc239ec53524a356d37da3c9d17ae2\nS = 698de3a3d8697c2e8e5b2c85fceb8796750c5b44154f01ce86d99e24\nInvalid =\n\nCurve = P-224\nX = a580f9a0cd15abff8e1e712f16b0fd4142d0d773af3c657abc06c2a6\nY = 22c6286340dc072e64274209eda60503047700571caee64b4a2306c2\nDigest = 25ef291dd6a2047ea193f8aedd3f4692f2c135cb519922a17cba3e969423b030\nR = c6fae06274dc052e482102520b49d4ccc4cb7eb8a3ea41bd3680ddad\nS = 50d66b75a2bbd0468be1f9e61bfda85b6329505b0134d60846cbe4b7\n\nCurve = P-224\nX = 0b4fb6fe5f6cf6adc7d28683628d4b9c569d21d2397533f5bd121a23\nY = b44d60a3414b9b7b6e4ad735ce2f9cb05593b0874ada5e65acdead4c\nDigest = 7d53ebba0424c4b6731806407f97af4af863a5a87c759626830c9e8753ca50fe\nR = ab5ac2039b49690c6436793decb1a6a58ac34833a8091005312a93a7\nS = 98fe955cd836501cef78c7a05fa27edf2fb3afea80990028ff64e984\nInvalid =\n\nCurve = P-224\nX = bae2b3634c7854c932551ece8dced2139a51705059503881a9239c78\nY = 094d5e455bc9296202618d7022512b0f9ce53d796c7294e6eb076a29\nDigest = bb5c0917ec5376b2c685f3a530a9f8ef1ef1c1b398ab66f479d936cd662efc1b\nR = 2fbdc7e9e98aed5dbbcc5b034e17a95209e2fe1b01515426b8b372c3\nS = f2b19226528f10be6ef0d27ec3703db690261206b7e42f93a691192e\nInvalid =\n\nCurve = P-224\nX = 49d9ff4f4bbd4320b6806a7fbaaedd962283c766a6c130e4b62139dc\nY = 06dbe8e7fb8fccf9758101ae46939c6fd4d3afc526ba6c8156c6b013\nDigest = 9a113d3d73543e17faba847981e0b7fbc5647e547bfc989921ddc987133692d1\nR = 2d83aa59bcfc8a0237884826e08dbd78a56733598e379f2a9d51e9e2\nS = 485036c74618d0e665775fbe2d614a313c550f9826b955d3e5636fd1\nInvalid =\n\nCurve = P-224\nX = 78451cca49655978b65d8ddd45ff367c47f321f5d55ddac7969ab82b\nY = 25b77f820aa9ec93ec89d7fc84285f3f3deed496e0cd3fb9ee4a5c99\nDigest = 352afd36279bee1ef5727c55c7428bb79db949a9f1953eb98cfd38c4a4a458af\nR = 998789490e008ed11febdfe2981a55c733eb9739d7f37fd5c2a7ec96\nS = c3ec8afade81860ff23cc1e7d759d32d9a5775886ef17bfb719df4aa\nInvalid =\n\nCurve = P-224\nX = 18ced60b7fd9ebf76c3aa5976dcbdef40bd3e36033c013553043dd84\nY = 30398582dbd2004064f8055e7fe0fe8df11b2c9d9e2931ad12d09628\nDigest = a1e3668af6307f6a2b7414079e73308ee0836b588b92a48bd5baa9a62f45b0f8\nR = f880143960e812464810c175001b5d39592fe63aab544deb9ca301a0\nS = 1e0657df071a25dd791264b411c8964688f4fe17ce024e659836ebe1\nInvalid =\n\nCurve = P-224\nX = 5d67c1fca848ba7f3d9de5b1894d3993ac4ebe68cdb0b49553b3b0e9\nY = 07c219a8323273c81f5694306d0dd1d133a49efce5003bc90f05578f\nDigest = e8f714f901cd2390c66f9fa9cb81ecc5f17a82bd934cf19c5ce2bcbd3a985de9\nR = 767cb6b2efa7a40739830659b0cc24fe3de771d00104b3dcc0f640bc\nS = f2e7268bc011d79d33f3551d2edd3c95f324955479b8e29e8aba629b\n\nCurve = P-224\nX = eac72b399cb791b3ed25cb0a49eb157e69603197e0327eac5448680d\nY = bdab3a2270066e74e8210eed7b5d43fba1e26845b6c037a8a7e2a13b\nDigest = 74aa7c8f25644514582fa904cea1ea88a0b262ffca43cdf6536ad97d8550616e\nR = 55485947e9e3c194a29c8ecaddb18eefd16fb6919aeb0bbbd8c12369\nS = 6309a2cc7fdd9eccb32b86d5577aa54ada79899a9645f2e299630d31\nInvalid =\n\nCurve = P-224\nX = 17f741267bf3e8143046707d41eafc9555953fe5f57d6c035452b232\nY = c667554d9a55fc8ab1062203dcbcd2bf9769c696a295350cb28aa01a\nDigest = 3b997a1c220593cab4301e07886db745436911b8abfd9d1b03cc12e1c7fa4510\nR = 57408bfcc68e60ad000eddbfe6eccbe5f87b98c95de0e0a2e065da92\nS = 51249bddc149f0942be001b2f3d6f6d17a0cc36fefce147058944667\nInvalid =\n\nCurve = P-224\nX = 3297edac34cb802df263f8d366f62a8b746c316adfb1c84a1c79c58c\nY = 79fe82e87ef5879c12eda6adda198a662fd77afa6a1fb5696cb7da9d\nDigest = e71dc3ab7ce73995d053bc6361bbb3f20e39ec2f295d97fa2bd229ed31a56dde6bf2c9cf6b0a9cc7e65962c57f3662a3\nR = 9993defdcf83965723c03e04ce6c33b3972cef3c449cdf1bc69990db\nS = 553b22a4164549f16aa1a928eee74548fc141fd3c16f213318965974\n\nCurve = P-224\nX = 2bc010527ea7427cedd213aeccf0c62dc513785888c6373740139d8b\nY = 2e9eb7ddf027ff7678ca880511be147098b34d8e77acb4389fbc6e50\nDigest = 781195b6396344146fe8b73a2526b4b1c981d26b9adcce0123176be1239f798c847495fd714661d1ba8e41f2ccfd052b\nR = 70a7cb04295a53b4a3a695ccb5d87856fe9152fce11987d4c43207bd\nS = 49f4094368f2de9327ca2913ef940e17c5801e8f589413838831083f\nInvalid =\n\nCurve = P-224\nX = 55c6217adbefff6e21bfb5d1b75213ce7b20c900d514ee094f27ad0d\nY = a68ae9f86eb9c10de3e7d9b03868518f33f571f85c3529d2902575d3\nDigest = a318b24bbb5ba46e6656f8ad68201c024e7b3b3849d6a70f3abce8c20f5b98ae43a326f5f48994045f0ff27098837b5b\nR = c073fba87267b45853e693910c1de791908ca7a25c1716ec2d3cec71\nS = 6138c86daf1021ae4af0faaf0abd5958f93944d5b0d82c40214bacca\nInvalid =\n\nCurve = P-224\nX = 4d0cab0dae88fa0cf53a2a6562934e0cf", "0271cc7fe54a30109a232be\nY = 70835833cf9e1f989a18d419e7bee9eb5cef1fd145cf62c4411c372c\nDigest = 6abbf2557f2e9b4e020126f4a87fb0262a1ec59bd3b569581048c5692f8a1cd381ee9c3cf195fa1a362a87ab604d79b3\nR = 3b8548eab4dc123e236133d826f2badbde96f92249f456e33ccc9739\nS = c82b2e41b9e2b21594cc03b1c0de216f183403c6025e18bb29bff421\n\nCurve = P-224\nX = f55a53b818b3ec4b4402a2c63429c1d78f2cd0d8d202e33812878a03\nY = 5a2b1a00615c56b4313828bd70526b12f402df1d40fa4900c994af8b\nDigest = da8d2571bea9840494a41f03c6c357410de030a7b5c023a0487020bb5b7c45fb6c5ed0e3dc66e4c0ab8460d9bda68c94\nR = fa934f9fdb765fabb5693ccb1de4177f172a8de108805a48f4bb989c\nS = 12994f2a26252742667044a01b509b0f315e8141629f760267b850e1\nInvalid =\n\nCurve = P-224\nX = 40a5c52dda7de858a2c17d12856c552ab820023336b9b4fc196bcd67\nY = 301e5368f59c00f15e6f3a91510444fb75a4ead8efb0778b4419e7db\nDigest = 0f88ea2d9dd40c19cd31c7a7cff71379431c9dc0a3092041a5fcbd2c20a05a8cb6e5a8aa143f1dfa169d2eaf87d01e26\nR = 0fd8773fac425a2761b954c946020615336d3e350ae40743641917fe\nS = d59f2b806ccecc444f9387f511c7f9926fe7f045c0ea633a51b7db47\nInvalid =\n\nCurve = P-224\nX = 372a134eec0dae3322de8836b89dde11a69e0379a60b10343abd478c\nY = 65921970ca8cf5a75f044db0e29802afe1726d18b3e07b61c768c242\nDigest = 1547d49d33566f8c05f68b9a980e113f919bbdef8d6d53046456a2c2ebe27ad86eaa52d05677fadd5ccc3e84b04c0f94\nR = be6474845a42fd4e85b91238f1e3ba11cc88e216d295c1b07d855987\nS = 2724242ffb5775f614ee06eaa4c985358f64869ce4ae4bfb16b5271d\nInvalid =\n\nCurve = P-224\nX = 9ad2cee0d92b00b11157a18fcd752f43e772ede7a46475a50e7ad8d2\nY = a6edfae6c5589dc0db6353b8655fe3b0f7dab2aa8400cbbd72d1a572\nDigest = 60942be3ff8d2370481b04fa07743482e08a61d3724010d7edd49bcf12e1463ae059696c825ac0505f079625b95310a1\nR = c31a40b6c245572457a19efac0da0db22b2a0818de716b6fdc5bdb32\nS = ed8204de94f1d92ae3fa6e10c727eea38d0e12b58133fda1a15559bb\nInvalid =\n\nCurve = P-224\nX = ed071a20d76f81c776875f8d3307841d33b70523ea40abd691d55d21\nY = 34ca47d8ba0a984d0d728c4d8c6b9aacdded03c6070616680aac162c\nDigest = e0776a80c616b8e596bacb0391a19956b2f0e2c566c50dd2ba99f9e59ff3dfa6197622c2a64cb4d02780a39c68d249e0\nR = c7a5dce4733a81bd738e0a6e0667dc1fade86db119e7f3cde57d6dc6\nS = dfb7f43343941cce331be27047b131617910f68393630fa53d137df4\nInvalid =\n\nCurve = P-224\nX = f51097e1e4b4f3b32e92fded0b4c8b7240a62731292e615a4cae0dcf\nY = 0549003f18e67076bc68110a75252072fc29b6d4a336d152dac2c3d1\nDigest = 48803bce00fe101650dcc83b290c49a524b21422f1f6a3aaa6e2f201863ffc355346d167dcb0ac552007a46cf8d6e4ad\nR = 6875a118dbf586a51af2212d5f32908c9f31110e9e9a7e4cdf7494c5\nS = 1542ab4260459e82070bbad405193a1894ce717af158daf1d096bc01\nInvalid =\n\nCurve = P-224\nX = 5255e4fdc816044389e9c6f5e09b85aedbe1c85b1cf9b7190ef7c2cc\nY = 683c8cb6f31e4cc1e2a5361eb47e305d5d8bfeaf94e261a341aedde6\nDigest = 995229c018cd0ea061672c46ec30c99693fff1cad491b13b4093df0154872adf946644dee6192657b436931c30b7af9d\nR = f1b0f8a3fbf7d4de19cc1d3b4c525c31bd97c2e2a94eb8a27c7c197d\nS = 936d3f49a9aa58935cfe227b22db83314ffadcc4751c8e26853d8cd0\nInvalid =\n\nCurve = P-224\nX = 7cdaf519f6b1254cb8da4668a2dd2015857ceec17f838c15d7d34b27\nY = e29f80fa4f830af7737126d4454b6498905e2c633fa61ad6acb30823\nDigest = c7d8d1f060287ec402092be54ca6e06895e91f9d0c29010124c0d9bd54007d8039b7328ec7b3a29e1d5d4d8fb78807e4\nR = e640f3e676a11007e73efd00b23087adefc9b9407ae8b79b47c397f3\nS = 66b7860a0ca35c2f1c65d50f99def9f2bfc0a6cad2008dcc38d6b3d7\nInvalid =\n\nCurve = P-224\nX = ca1a04f08708ae714b7dfb3db509970d30b7e01be7fd6181613894a7\nY = 1d90a2fcda7dd6ce8b207eef48340e58cd439a3ce17658f6f82be778\nDigest = 1f710f925826bc33c0da91798cb7d7d0700883da685a1fb9503179f0a06b589bf92eb4b67496faf21cd74c8e3d560d77\nR = 9e810ec2a0bc205df6a75bd6410e0c8ea1c738e71af060e2eb271aa6\nS = 9d05eeb46258c468b0398cb6e421149bbea5ed936be3fde3380111cb\nInvalid =\n\nCurve = P-224\nX = 558c323d8259e055a025fbbe6ba8b525b02f32caddfd31e5b08219d4\nY = e1d6398b1c47132632cd3f3fae14fc3ee3092faa619074fd951a5870\nDigest = 4b662138833a976051b20ddfb02e67339715b77046bedeb1e30b9dccbcd84204e76da722bb3bd020fbbe33a182792e0f\nR = 05d8b0bcedf287a4740bfc548570b1c1fff71058e0a9d88476bbb6a1\nS = 769321d50e34939e622a727855501e25a7ad44ec979985e7389aa3f9\nInvalid =\n\nCurve = P-224\nX = 9237e61ad9ffafc61cc1c72b6d2f96d69b588c8feee4074359f694f7\nY = db25a18f1eee72734c640313f5c6c0441358611406cc62619113b4ba\nDigest = 4e7bbf78843a767536977b240e9d1516c73c0fa19bc91448280fd85361b06fdd11ee413f956ca4ea3d67c0e325a1d53a\nR = a58225b10080dab26644f10d8a817ffc4ed4535011729491b6ad5d00\nS = ddbc010e295882e0731ff240f15ed82fa3e81b7552c690cc5b40be03\n\nCurve = P-224\nX = ea7efb9a7e7bf693dc0249504ead70dd422ec86806cd649ed57a7ffe\nY = 33dfb17b1cb244279990019286ab477a2aff2b55c08959deed0b1a28\nDigest = 330f78db9f217f95d99cbcb5414a32523025b85c87ed5aaa3a5e6b006c53cecbbd446166bb9b98e944626332c3266e82356e72110bdbf7df2431b8e7faf59e45\nR = deab574de1f971419b7ba9e169866c3a6233fc627c13dc6a8cb88bdc\nS = 8d4c542bb0046da1b3912652a2c84542668cd89920808785d04e4352\nInvalid =\n\nCurve = P-224\nX = 6fce4d789b1240f2ab1c23051aa03e219da99943a18864e7876d4d11\nY = 3e84a6bddea4a28cf8151ae73aa7b1964c37e654241353a9fa723f67\nDigest = 0088e4cbf3eddb6eaf108fd3937c439684ff8fe5595f2032948423a2a15811b34b0def245bed3b4b4ca90d3f497f3aaa2577a7154d22d7254dfc4755eb9b7b17\nR = 2d1b4f1ccaebc0a929598b650ee364abfd6091a542ba426886d75f38\nS = 44f3d7afe84ae33ab5f9426dfc85248ebc7e0df434d35980ddec75e0\nInvalid =\n\nCurve = P-224\nX = 72013dd6f5b1eb709b3b7da234987f9a36c6f0b095620b8c31f02381\nY = 319d54c719b59d91900b3c20d963ddf1a10d80d6601ac155094b075a\nDigest = 3cba2980faf5579c7ddbeb31c3318a162a882129a1efe1fc9acc3219a617c460701f22fd7a5c46b017bd9ec9c40587127319ea14b148d2be4df9875d5bef6e4e\nR = eb38db9b757b3cf04020f09188c789bf0258cd0467cf7d67368e8703\nS = 7664e85f01e67881712b24083f89e838c8b818de4d665494e7016833\nInvalid =\n\nCurve = P-224\nX = c6a65011926eb64e02bf472d5ba37841d49cfb7f17a20fb9f59355de\nY = 386ccb33d944fd7be6b8531863d2b6200cd602d300d7e7681537e53f\nDigest = eaa81b1236121db12f2036611eb6d3e5386f5733125fb26844cb4188109aae402525fc63bcd73494c36c170d1934b108739d79b0c4f184bd85ffce93b1beecde\nR = 9e7c637a699dd52512faea847079f0ad41b20cd7a5461c36d01e857e\nS = dec6e9ef361de3f6ec7d87de3129eaac5fd0b43b5f7f58ce46c29173\n\nCurve = P-224\nX = 5bcdbaeb2f6c57e8a9dffe94804e74daaf9db8452d13c6a8bc2a4966\nY = a564072356c5d86200e979291a19d5e73d8bcb701cf84d9012824bf6\nDigest = 4a5de84f304f0c83365ae4213fee71c0944d8580f9d8e7455fc961e9f98bf3d51b7fc20aa44e36c0bdaa09e365767742e9bd8bc868d5c6cd8e1cd2ce2968e3dc\nR = c58436fb77aaa4468dee284e1220141ce9ff4426f75daadf5a898a6f\nS = 87aeee1229a50921d8e77e7e3478061f5c051097defb104a0455ed81\nInvalid =\n\nCurve = P-224\nX = 6c6a7deef8b3dee2eaa98d8ec877dddb460365968e63ffe5c249a421\nY = 1ad1715797b5e47c4be24d7ecb8141f1772344a2f643cc66fbcf3f9d\nDigest = f59946dd73887a1fb945ae3e5b44b574512e36dd7d35925b0bdc3a3f69a88e50dc6ebaaac86092679961a99d7ba5724363c5886e7c2cd566433c5a9d59e2515d\nR = f778faa2dc2cee7de2af0bbc4339239dc240907e59ac034464ce986b\nS = 2ac929588a8dc8785808c9d4366bd7b1a81e0fc5be0c63e62344c251\nInvalid =\n\nCurve = P-224\nX = 0ee33a134feae6ee1488bf10edf7cf7c318a2d709080a24818619b91\nY = d7d39536e42652baf55159847f475ded075385a3c1af5c3dcb17ee6a\nDigest = 00fc4992514c1053eee7facc5199161a2b0f69dad2770326371ba42c2c12ffdb4ff6bd86fc440dc8dc1354dad42ff0c2a055b61137532a62521b0f3508ebe611\nR = 34bd0407f80cb6fc759036e6d4522eb6da94874c92ce0f02d8f5f2ad\nS = 3a2dd970050ff990162e5702b06905d03e3c7bb2771050de6d84eece\nInvalid =\n\nCurve = P-224\nX = 31d3c62a4305c37a15e9102072e287a8e0ac027f9189cb9d87ecbea2\nY = 26449ca391af6a2a9f8daaa036f2c9044b336773ee48bcbd9cad59f0\nDigest = dfafbf96b70ead7e91dbf48b8efd062bf2bc0aac6d3e90a7fdf61aac13a74b304bcd0d0c23c88df269d45bdd31d50f0fccfc0324698af4dbcffef04ca05a119e\nR = dc33e8f7b52f584aa3f091aba10c2a9a23be6835e1551092652e1bbc\nS = ae84a6d19f6bad3f9886930c0a1406016fae813673db1516b31b638c\nInvalid =\n\nCurve = P-224\nX = a6e4470712df583d0c795237ff46c9df5718ba2aa24139a2d99721b4\nY = 9edb403a8c10807e8736af665dbcf6052bd4b43bcdc8b9eb8d4394fd\nDigest = 36cd6716cbb8b7f96df4617143be7b74f42bc94e468e79e6658d00b092e24d6de82f207693427fb439dd13bcf49665cac343ea35a79b5963cb21273094ce28fd\nR = 4e9ba5bc4f4fc4e507c1e5cbd0d688da4237385b16ff06601436d8ab\nS = 4e0450a57d802d0ea7b0fb57eb162267195bc4248a831a0ee8b0380d\nInvalid =\n\nCurve = P-224\nX = 350fa782e1cf7254b18cde30683e54edf2c1b4782525fd081bed5920\nY = a77de5b4139ff63e108b6fbd3a7e6c0", @@ -2707,15 +2794,15 @@ static const char *kData43[] = { "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\nS = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\nInvalid =\n\n# r = 3, x = n+3 is the smallest x with a reduction.\nCurve = P-256\nX = ce24c99032d52ac6ead23c0ae3ec68ef41e51a281fd457808c83136d7dcce90e\nY = 8f7a154b551e9f39c59279357aa491b2a62bdebc2bb78613883fc72936c057e0\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 0000000000000000000000000000000000000000000000000000000000000003\nS = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n# r = 4, x = n+3 is incorrect.\nCurve = P-256\nX = ce24c99032d52ac6ead23c0ae3ec68ef41e51a281fd457808c83136d7dcce90e\nY = 8f7a154b551e9f39c59279357aa491b2a62bdebc2bb78613883fc72936c057e0\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 0000000000000000000000000000000000000000000000000000000000000004\nS = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\nInvalid =\n\n# r = p-3-n, x = p-3 is the largest valid x.\nCurve = P-256\nX = 768a0d300a595005a520130e50927d403395c8e1e40be997b48fc048410f7cdb\nY = 16f217d8e1c02bd887e5de388a17783b182e61b5d534152dc2c4be8d75fdd706\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 000000000000000000000000000000004319055358e8617b0c46353d039cdaab\nS = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n# r = p-n+5, x = 5 is incorrect. r is too large to compare r+n with x.\nCurve = P-256\nX = 0ec505bc19b14a43e05678cccf07a443d3e871a2e19b68a4da91859a0650f324\nY = 77300e4f64e9982d94dff5d294428bb37cc9be66117cae9c389d2d495f68b987\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 000000000000000000000000000000004319055358e8617b0c46353d039cdab3\nS = ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\nInvalid =\n\n# r = 2, x = 2 is valid.\nCurve = P-384\nX = 016d2db67561bc126ad6c344d6eeb2713a9e2892c649af0f015c6b7617f160c8a3b3a88add669d7155025073c5ac5b4f\nY = 43bf2ed0088af08645c80aa0a24a567a94ba2d794e9689d3ad4b185bc5d2dd008333e2dd2ebb5069a9b32251a3cac71e\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# r = 2 + n, x = 2 is invalid. r must already be reduced.\nCurve = P-384\nX = 016d2db67561bc126ad6c344d6eeb2713a9e2892c649af0f015c6b7617f160c8a3b3a88add669d7155025073c5ac5b4f\nY = 43bf2ed0088af08645c80aa0a24a567a94ba2d794e9689d3ad4b185bc5d2dd008333e2dd2ebb5069a9b32251a3cac71e\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52975\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\nInvalid =\n\n# r = n-1, x = n-1 is the largest x without a reduction.\nCurve = P-384\nX = b5b375264c09acf145ca91d12ab10a096092a41ec43f4d718e129ea1c12b2dea62c7785efc52f46f009fb1dba133e811\nY = bc0b2af172b4b3068d032a798080e76f4d56f72069519e3c19a43682a41794e52cb3ca139348d6bbc923e6a4f7945cb1\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# r = n-2, x = n-1 is incorrect.\nCurve = P-384\nX = b5b375264c09acf145ca91d12ab10a096092a41ec43f4d718e129ea1c12b2dea62c7785efc52f46f009fb1dba133e811\nY = bc0b2af172b4b3068d032a798080e76f4d56f72069519e3c19a43682a41794e52cb3ca139348d6bbc923e6a4f7945cb1\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\nInvalid =\n\n# r = 2, x = n+2 is the smallest x with a reduction.\nCurve = P-384\nX = 01b54a697305092bac2939fb906d7471b411c4eba8654169166a5da3810e1fc96795df921f7abbf519be4a027435176c\nY = a19012a3518773d508106d4153adee43c3c384fa62ce36a4addea08f593ec9c76b09a6b9c69d29bd7d47eb48e167dd2f\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# r = 3, x = n+2 is incorrect.\nCurve = P-384\nX = 01b54a697305092bac2939fb906d7471b411c4eba8654169166a5da3810e1fc96795df921f7abbf519be4a027435176c\nY = a19012a3518773d508106d4153adee43c3c384fa62ce36a4addea08f593ec9c76b09a6b9c69d29bd7d47eb48e167dd2f\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\nInvalid =\n\n# r = p-1-n, x = p-1 is the largest valid x.\nCurve = P-384\nX = c4fd8e68006b83f7b7b20b731ae405813aa05f6e57374589b36ae1cecd1d49cae1418c22f398188bcf4ef02e89fe7394\nY = dd1164b3707f59e05129fa228b8448031db159985f035d93470dc42b3ab4129f0760c46cf201d42e73a7e33ba7402ea6\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = 000000000000000000000000000000000000000000000000389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68b\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# r = p-n+2, x = 2 is incorrect. r is too large to compare r+n with x.\nCurve = P-384\nX = 4e5e4f1a6e97059a6cf2f4e8129e5c7c64cb84f9994a41ff5bf30b29c1bf5ba6898627c91a23c73e05cd1a43c8f908c0\nY = 06a0aed7f1e63a728f87dbd5360a67571a076ab0b4cde81b10d499959814ddb3a8c7854b0bbfa87cc272f90bca2a2254\nDigest = 1fcdb6059ce05172a26bbe2a3ccc88ed5a8cd5fc53edfd9053304d429296a6da23b1cd9e5c9ed3bb34f00418a70cdb7e\nR = 000000000000000000000000000000000000000000000000389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68e\nS = ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\nInvalid =\n\n# r = 1, x = 1 is valid.\nCurve = P-521\nX = 00f07e0b593332d09ec4fd0bae93f648a3da04dd224faae3f64cc490ec8fce3a6fe53d1b2c9e326be076cafb921b7e3f8b2288db491819522d65472870668c3808c9\nY = 018e42509aca542a8de421589c38ba653e8cfd69322336217042a9dc0f67f6d7ae2cd4e385f480ffaf8981f715c7ca3765d9867dfd5a02947b0895f82eaf8b257e88\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n# r = 1 + n, x = 1 is invalid. r must already be reduced.\nCurve = P-521\nX = 00f07e0b593332d09ec4fd0bae93f648a3da04dd224faae3f64cc490ec8fce3a6fe53d1b2c9e326be076cafb921b7e3f8b2288db491819522d65472870668c3808c9\nY = 018e42509aca542a8de421589c38ba653e8cfd69322336217042a9dc0f67f6d7ae2cd4e385f480ffaf8981f715c7ca3765d9867dfd5a02947b0895f82eaf8b257e88\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\nInvalid =\n\n# r = n-2, x = n-2 is the largest x without a reduction.\nCurve = P-521\nX = 002a61afb982e49f030dd4e6ba0e495703abe0442b1283ee693fffc1b558f49f0a4cb4f138ea0604e667958495b86c61f358dce7e7f170da47372be3e4168408a260\nY = 01baa19e8929fc8e7208e854e706a3d7f21479d1f6922a6", "5ae3490fd5f52ae6580513b1fdd5bee927d002a9608abbb925b6727bdc110a3145fc8622d1fa8154c82d8\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386407\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n# r = n-3, x = n-2 is incorrect.\nCurve = P-521\nX = 002a61afb982e49f030dd4e6ba0e495703abe0442b1283ee693fffc1b558f49f0a4cb4f138ea0604e667958495b86c61f358dce7e7f170da47372be3e4168408a260\nY = 01baa19e8929fc8e7208e854e706a3d7f21479d1f6922a65ae3490fd5f52ae6580513b1fdd5bee927d002a9608abbb925b6727bdc110a3145fc8622d1fa8154c82d8\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\nInvalid =\n\n# r = 1, x = n+1 is the smallest x with a reduction.\nCurve = P-521\nX = 0049bbb2d3267a6eab2c59fac5b138b9e9c383db6637fcfe5d9f430e4c4c2ba0332340975448bd86c92a55c1a8288adf7f774096022419aa8c497499dafee7b93257\nY = 00bb52fd444ec497ce228135f2498d40fb84eb6f674df1245d3aaac3c75b55ff5fff8e90b6f0189a3132cb9fd8d6e74fda5866fe2b9fc7484c628fde97e0b00f2b67\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n# r = 2, x = n+1 is incorrect.\nCurve = P-521\nX = 0049bbb2d3267a6eab2c59fac5b138b9e9c383db6637fcfe5d9f430e4c4c2ba0332340975448bd86c92a55c1a8288adf7f774096022419aa8c497499dafee7b93257\nY = 00bb52fd444ec497ce228135f2498d40fb84eb6f674df1245d3aaac3c75b55ff5fff8e90b6f0189a3132cb9fd8d6e74fda5866fe2b9fc7484c628fde97e0b00f2b67\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\nInvalid =\n\n# r = p-1-n, x = p-1 is the largest valid x.\nCurve = P-521\nX = 00f651d53d45bf6fd55a5f184e580d11259bc65200387dbc1bf7fb867d2d12a207d2962204ccf38e9d37d23ed95bd01ec576c457127766ecb8ad00342a476ea82078\nY = 0196caedf64fbaa9a12c16836e0564e36f733957375706edb5f32911991a994c2d6a1ea5db2ee764835a9d6aff379e195f722b48e8d2b60fc50de2a5160c77c3f06c\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 00000000000000000000000000000000000000000000000000000000000000000005ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf5\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n# r = p-n+1, x = 1 is incorrect. r is too large to compare r+n with x.\nCurve = P-521\nX = 009eeb7f956230c3744ca5b683f413009363107aad18a027fa7af6ac07a699911e94143d3ef00c0062d4187c2ea74dc9322c05431a6b7fed51ee71b047ce3a0e967c\nY = 007d2c089a6720f7c7886ce8aa6aeb9b821adde0eb025ef63c62d37c32b2d6823c857ce7743b8181c35c8f34e6aeb4487dd693e01d69dfe883c07c25ebe89bdc4d56\nDigest = 8710339dcb6814d0d9d2290ef422285c9322b7163951f9a0ca8f883d3305286f44139aa374848e4174f5aada663027e4548637b6d19894aec4fb6c46a139fbf9\nR = 00000000000000000000000000000000000000000000000000000000000000000005ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf7\nS = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\nInvalid =\n\n# Although we do not support secp160r1, all our built-in curves have p > n,\n# while n > p is reachable from custom curve logic. Moreover, p and n have\n# different word widths on 32-bit machines. We include some test vectors to\n# cover these cases.\n#\n# When n > p, the reduction mod n never occurs, but an optimized implementation,\n# working mod p, may incorrectly accept, e.g., r = p+4 instead of r = 4.\n\n# r = 4, x = 4 is valid.\nCurve = secp160r1\nX = 39891bd61138e775cd012518ff00f59ae01c4733\nY = 25026b77b1c44affb1592dcf711b4290e9404c9f\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 000000000000000000000000000000000000000004\nS = 0100000000000000000001f4c8f927aed3ca752254\n\n# r = 4 + n, x = 4 is invalid. r must already be reduced.\nCurve = secp160r1\nX = 39891bd61138e775cd012518ff00f59ae01c4733\nY = 25026b77b1c44affb1592dcf711b4290e9404c9f\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 0100000000000000000001f4c8f927aed3ca75225b\nS = 0100000000000000000001f4c8f927aed3ca752254\nInvalid =\n\n# r = p-3, x = p-3 are the largest valid values of x and r.\nCurve = secp160r1\nX = d88d902a0d8d942333c7b846a933d4794fcb5807\nY = d24c4f405689b86cd5c61fe104e6365d254d5222\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 00ffffffffffffffffffffffffffffffff7ffffffc\nS = 0100000000000000000001f4c8f927aed3ca752254\n\n# r = p-4, x = p-3 is incorrect.\nCurve = secp160r1\nX = d88d902a0d8d942333c7b846a933d4794fcb5807\nY = d24c4f405689b86cd5c61fe104e6365d254d5222\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 00ffffffffffffffffffffffffffffffff7ffffffb\nS = 0100000000000000000001f4c8f927aed3ca752254\nInvalid =\n\n# r = p+4, x = 4 is incorrect. They should be compared modulo the order, not p,\n# so r >= p is never valid.\nCurve = secp160r1\nX = d8add22064027856c162243ab09ea96642975297\nY = 8822a506712385ab3ebe5c61737c3bbb722b06b9\nDigest = 09ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b\nR = 00ffffffffffffffffffffffffffffffff80000003\nS = 0100000000000000000001f4c8f927aed3ca752254\nInvalid =\n", }; -static const size_t kLen44 = 9174; +static const size_t kLen46 = 9174; -static const char *kData44[] = { +static const char *kData46[] = { "Key = 00000000000000000000000000000000\nPlaintext = \nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = \nTag = 58e2fccefa7e3061367f1d57a4e7455a\n\nKey = 00000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000\nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = 0388dace60b6a392f328c2b971b2fe78\nTag = ab6e47d42cec13bdf53a67b21257bddf\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nAdditionalData = \nNonce = cafebabefacedbaddecaf888\nCiphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985\nTag = 4d5c2af327cd64a62cf35abd2ba6fab4\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbaddecaf888\nCiphertext = 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091\nTag = 5bc94fbc3221a5db94fae95ae7121a47\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = 61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598\nTag = 3612d2e79e3b0785561be14aaca2fccb\n\nKey = feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nCiphertext = 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5\nTag = 619cc5aefffe0bfa462af43c1699d050\n\nKey = 000000000000000000000000000000000000000000000000\nPlaintext = \nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = \nTag = cd33b28ac773f74ba00ed1f312572435\n\nKey = 000000000000000000000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000\nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = 98e7247c07f0fe411c267e4384b0f600\nTag = 2ff58d80033927ab8ef4d4587514f0fb\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nAdditionalData = \nNonce = cafebabefacedbaddecaf888\nCiphertext = 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade256\nTag = 9924a7c8587336bfb118024db8674a14\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbaddecaf888\nCiphertext = 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710\nTag = 2519498e80f1478f37ba55bd6d27618c\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7\nTag = 65dcc57fcf623a24094fcca40d3533f8\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7\nTag = 65dcc57fcf623a24094fcca40d3533f8\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nCiphertext = d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b\nTag = dcf566ff291c25bbb8568fc3d376a6d9\n\nKey = 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext = \nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = \nTag = 530f8afbc74536b9a963b4f1c4cb738b\n\nKey = 0000000000000000000000000000000000000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000\nAdditionalData = \nNonce = 000000000000000000000000\nCiphertext = cea7403d4d606b6e074ec5d3baf39d18\nTag = d0d1c8a799996bf0265b98b5d48ab919\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255\nAdditionalData = \nNonce = cafebabefacedbaddecaf888\nCiphertext = 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad\nTag = b094dac5d93471bdec1a502270e3cc6c\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbaddecaf888\nCiphertext = 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662\nTag = 76fc6ece0f4e1768cddf8853bb2d551b\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = cafebabefacedbad\nCiphertext = c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f\nTag = 3a337dbf46a792c45e454913fe2ea8f2\n\nKey = feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308\nPlaintext = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39\nAdditionalData = feedfacedeadbeeffeedfacedeadbeefabaddad2\nNonce = 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b\nCiphertext = 5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f\nTag = a44a8266ee1c8eb0c8b5d4cf5ae9f19a\n\nKey = 00000000000000000000000000000000\nPlaintext = \nAdditionalData = d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad\nNonce = 000000000000000000000000\nCiphertext = \nTag = 5fea793a2d6f974d37e68e0cb8ff9492\n\nKey = 00000000000000000000000000000000\nPlaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nAdditionalData = \n# This nonce results in 0xfff in counter LSB.\nNonce = ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nCiphertext = 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606872ca10dee15b3249b1a1b958f23134c4bccb7d03200bce420a2f8eb66dcf3644d1423c1b5699003c13ecef4bf38a3b60eedc34033bac1902783dc6d89e2e774188a439c7ebcc0672dbda4ddcfb2794613b0be41315ef778708a70ee7d75165c\nTag = 8b307f6b33286d0ab026a9ed3fe1e85f\n", }; -static const size_t kLen45 = 157331; +static const size_t kLen47 = 157331; -static const char *kData45[] = { +static const char *kData47[] = { "# These test vectors were taken from NIST's CAVP tests for CTR-DRBG.\n# Specifically those for AES-256 with no derivation function.\n\nEntropyInput = e4bc23c5089a19d86f4119cb3fa08c0a4991e0a1def17e101e4c14d9c323460a7c2fb58e0b086c6c57b55f56cae25bad\nPersonalizationString =\nEntropyInputReseed = fd85a836bba85019881e8c6bad23c9061adc75477659acaea8e4a01dfe07a1832dad1c136f59d70f8653a5dc118663d6\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = b2cb8905c05e5950ca31895096be29ea3d5a3b82b269495554eb80fe07de43e193b9e7c3ece73b80e062b1c1f68202fbb1c52a040ea2478864295282234aaada\n\nEntropyInput = edfdb55e77d418a63e4414dfd42225ed257cf74e99325fba26e8f3a4524a71bc80a731af23256908cb4675a9c253ea6f\nPersonalizationString =\nEntropyInputReseed = a9372fea93d607fbbc75a97b7f65f2d4ae8c06bd184981572e888a35c5794d2bb380a4ae04bba27f2efcc9e7914b96dc\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 11b1a0f0bb935ec0c54e089e0cd20832d1f00e7069f30e9ea2e35b7f15ecf0577d0e90035bf0f91ffd9e8a1fa8a507503739afbec19393e02c9b7c230cdea36f\n\nEntropyInput = f253fd442b105434c0f47ba9b6798bc20c8832a142a2a6d965678485a3ac52393528a5e092341d60ad74429f4005f8bb\nPersonalizationString =\nEntropyInputReseed = 600c822b198dbdcd9d13ee25bd4b846e5d8665725eac5347b4cfe7512c1f3fbdc4c51c85d977ca58e9e6485a17c533bb\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 076419bdd354d6a1f1415a0a71bed94db29cad22f0205d983c841874497875a4857404e573545366850fe6eb5286e0deb87ddd63bb3317b4556a82920412aeef\n\nEntropyInput = 8dbf2c37dbbf3862f05af4b32e98edd3d8cd7bd34d8a23daa2d15200daed6e9d238387ba85ddfd35a2986bdf5790e1a7\nPersonalizationString =\nEntropyInputReseed = f67aed05dea08baa16cbb669ae310a0b8e019da0a7fe2762abf684121292186a50bc13d568576ce5d7aeb080e4604a1e\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 69666e65c5623140da35927ec39189fcfda0891674efdcd2a7d6f2628921a37bd49a164590413c04f6090a50336f040b015dd8c45452991bcdd96994c5ecc6bd\n\nEntropyInput = 2fac25dcea5274a7dbd6af112d757b59a4447f5dcbda972666af071c5d8f71583ec6914a1e685f610b8a43ffada0b411\nPersonalizationString =\nEntropyInputReseed = 52f5b1f927c0873ae375d6a6e140fe594fd474a63bcdcd6a98109e32ad980ce534714ec626dad7acd43101415e5817d2\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 3096cf20137eb6f94d9d26a4871eddf10285c6984776847105ca9294aafc68925ad8bd7f36bb68fe371476114649ead11b926f9f0fc1d21c744342ff5c44c8e3\n\nEntropyInput = 4133a0e6ce837125f46f2a44e05c4f64d76879156ea16a1d16db1d3ec460cc53609fa9e4b3081f9dde0b79f00c93ac5a\nPersonalizationString =\nEntropyInputReseed = 4613b2327dc9054f34faf933d62bf7b12ec8b34626c07ef7512cecd8aedcbd4023f26b859a941c5af77ec1e2e02a1d9c\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = be02e94fd18c488741fd90b6980118dffba1cda5bd25aa23d44414392201c5a78c3ea68252f92afaaf540b298d3f80a94818f1d1ca84c2be5f66a46191a7548b\n\nEntropyInput = e312fd67b5009ab1c896ba8f85d53fb29517ed2a26d20a4b9d09505ec004bef5739cc94e7f368989c675eee1f40501a2\nPersonalizationString =\nEntropyInputReseed = 176ec11c0d4462ea26b1bdee41208e3ff3b430de11f12567ebe982c16d709f681fcd9f5bd5309f3f2a9d80b3a426929a\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 07cb9f51e34be38fe1d1c18858ee44db227c1e6a6c2f7d09e9143e87e9e09df0af9a5cb7a183e5d26359509fe619e52e59e3333d3620373d3ae5a008b51ef786\n\nEntropyInput = 3eaf30117135d9167c829e35bd8da227a6302471b649381858085e67c65496058ded0ab176a38b3888f4e3c2e65269dd\nPersonalizationString =\nEntropyInputReseed = df60a1b9fb2f8501756edd09e489fc98a60ed08646f5a2e018f55b71c76b9b7718ac4ae61b41241593829108ddeb0ef0\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 29c4d540354e97f50f3fb1de84eef471192cd76a670de34176c6465523ff249ed5eafe2c09f091f5ed101cf8a971d782f150a2642ed291e850906e29328d6b8a\n\nEntropyInput = 99d5543c192c6a1069bf548d80d678bc42c1f020f0b29a0ceeba424c03f8a8aa38df1c0fe100ee4c1b0bc870b4afa3d2\nPersonalizationString =\nEntropyInputReseed = a0fddd29c792f6f411b5d532fff2564d492ca15ac8b7fe1b4575e9b59806823665ad7ac4e2adcd2803ccaabe87ab75ed\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 3d58e98a1f4beda50f84f773c405d106b28f4be6da2a2942098403843bffa3323c53661a7f072a020c68f55ea2b3a9cf9157b7c4cdff5e642ee9be1f436f9c18\n\nEntropyInput = 2151ba6cf2ed6a7366991e516443162b6ed4e7f8ef2d6c81ec5e5feb0061e20ced65da27847956194dc6177b5e0befa9\nPersonalizationString =\nEntropyInputReseed = 73418efab1c6039145dc6ce09b84abde4ef4f8eaccbac250213bdd75e2a5e8b42ffb1367bd8d1281e3b0051651f78a05\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 5b219cb285c820f3bce52b9eff15afa042de3036f1a52896eab34e4476c28c60127cf8daddce0809efafab03c9269cd220a49f79220e14db9d208311d2a22a1b\n\nEntropyInput = 7c7321b69fdefdece32c45e47cce07a0d599e83ea8ee5781e2f2ff341f292c0bdb848e5ab379771639e811fed45f63d7\nPersonalizationString =\nEntropyInputReseed = 4b04652d3d0515b305f4da346754c0d398c8cfefe8e5c1edacb79cb8396018bda12ad7d42bf86e801159bb62c34fff68\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 379c12dc2c8a884c6f40df5353047d74efbd9c626795b86256abec4a6f42ba26529f19e4b043f53776180c7ab16a3817b4a50c09bb3355234786e714edb9e2b4\n\nEntropyInput = 3a56329b07dffb8bc7761c0c2b4ec4ec3b7ed2513f0cc3d9be3eb9a153e8e1605d9392dbb951e4b0989ef473301f6f57\nPersonalizationString =\nEntropyInputReseed = ff6efb9b946748af0992bdc38eeb15d4991bb610692e1fe53ff828405924a544ee0e4da70aa1d0ae55e7925a58cf5597\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 9f32e40391217833176ca768beedd2839892c6fc17dec5c250f0820c576e4ed615729653515ae13292a2e4aedaa2df74c6535d8c625dd1cab479d3c5ae7bf955\n\nEntropyInput = d550f48af436ae42ea48a8cb0cd615be8db51691b365ef20ed826b28561fbacc9deb28cd3d83655033068948c55683da\nPersonalizationString =\nEntropyInputReseed = 76ea2e732f77b337ddd402e367c158dacc3433feb40d7b4376fb8dc449891336b00841580ea189583ada95cef783d540\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 8433b2ac45da6fdcbeaf3e6f76e66beb5b90a89a9cb197cfbe405ed53b1dd51a42cfc9aec5fe7cf778f88031fb7b15b0874d4d1ea87ef3895848721b34fb1a35\n\nEntropyInput = ce6137f720affd106396d9b66540580ae216d5d7dab48ed2729cdb3e587c7d8da13ce39ea8d9d8c22220a96b74e7ee9d\nPersonalizationString =\nEntropyInputReseed = af9f12fddeef001b08a5993f62da5e7c3aff23f882ae874b9f66f28eca1106e6386dd82f07ae1fb6868f186e2ec4f449\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 219fc160dbc136cdc9a7c3407eafde4639602cc58101c512dfbd85cc26b61fc9a94cdf76f15a1de7a46e36ab64aca3eeae36acd6e3d0b3fe59b75958b3eddd24\n\nEntropyInput = 1accff5a19861164c5d2cf542cf41a789f143c7956518ae158d4449ff0c257a00966faa862ccbb363bcf4aeb31089134\nPersonalizationString =\nEntropyInputReseed = f2fa58209759d84bf38a1656bae655669767a902ade22a830df56b32ef9e1c992335eb4cb27eeb142bfd21b5d31451de\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = f214b4055d182cb258d9e9b61251bebc9bf090db662c4e36023cc156964fbbe1cedf691cd0c3d7db4262fb65a5d34b942f909b0f31fc18009766413523dcaf40\n\nEntropyInput = 99903165903fea49c2db26ed675e44cc14cb2c1f28b836b203240b02771e831146ffc4335373bb344688c5c950670291\nPersonalizationString =\nEntropyInputReseed = b4ee99fa9e0eddaf4a3612013cd636c4af69177b43eebb3c58a305b9979b68b5cc820504f6c029aad78a5d29c66e84a0\nAdditionalInputReseed = 2d8c5c28b05696e74774eb69a10f01c5fabc62691ddf7848a8004bb5eeb4d2c5febe1aa01f4d557b23d7e9a0e4e90655\nAdditionalInput1 = 0dc9cde42ac6e856f01a55f219c614de90c659260948db5053d414bab0ec2e13e995120c3eb5aafc25dc4bdcef8ace24\nAdditionalInput2 = 711be6c035013189f362211889248ca8a3268e63a7eb26836d915810a680ac4a33cd1180811a31a0f44f08db3dd64f91\nReturnedBits = 11c7a0326ea737baa7a993d510fafee5374e7bbe17ef0e3e29f50fa68aac2124b017d449768491cac06d136d691a4e80785739f9aaedf311bba752a3268cc531\n\nEntropyInput = f963096540d0023d6703e18248755ad16aea91852a2db0dd0f6a414d2a5822f3224ac8b1d47b01aaecc93ae299081d7d\nPersonalizationString =\nEntropyInputReseed = 399ed54bd846de00d42fb1f92d1ade93e81e32cd6ce73825f0bf86179dd46fd79bc8cbbd3b8834e58cc86619e19b08b4\nAdditionalInputReseed = ee073f9f6145d0a7c09a5e4a12d65baeba360bc9b5d7cadf93e7d2454dfde507af37e49782cf8550dd3a548e8cf98563\nAdditionalInput1 =", " 6a42ffe56dac0b4dc5d84b49698859b3645c920151565bf29f56b6322244bcaa7cd1ebb8ee9936d8ee1d280f547ae245\nAdditionalInput2 = d057c418a758d99a8ee855093da9bc1734a5168a6df9d9c9924e8bb472b5945563d86350dcf3e11aebcbd06a22b9ef78\nReturnedBits = a0cd72e63f49ce4c1d64e21e92546afced2af268549ef48d3ca88afe4d4097f91a52ecd0e7ad12ec0a1f67dd8c5325b78ee507c0a63cf90d64e9c47862acedf3\n\nEntropyInput = 333a0269eb0fb1d9d1e92f55de9e13cd7e24de64f5f276382d3eb2ff356a66679a9a75d2da31d39a940a09cc85d9d531\nPersonalizationString =\nEntropyInputReseed = cbf504cc473c9a6e66493b71b9684e8df458e65d2cc676e4e6ad43eb59172932c0956d0623134a6a3bba23906ec9da0a\nAdditionalInputReseed = abc86c71ae0585827ffe0d19a9fe97f23cdc4afd67978e553e0669d4635ca1df30250843fefd4d1288f6fbc3bfe04a72\nAdditionalInput1 = 15d15fbe7c060e6811bf47c21e93639c00cdcc562f4e02c88f7e347ec14a2c8410fdb2ddc3dfa62ba9ed1758f12017df\nAdditionalInput2 = fff311ea4c5cbd8ce53c45fe8d8106c28eb06d01ec9d8245c29f95b50b13085a0ec28803d733bd0d8a75193e63e21d5d\nReturnedBits = fcdb52bb6e2ba8d896973b9284b32af6364a34a2b80b3e3c7684c200c9e0a02f7bc6c3cd32b159df9b98da07a17baab9b0b07eab214544d5c562e454ec643de1\n\nEntropyInput = 86e4c30c5a7dfcca86eda7723930ab3272635f0ad9e2fd70a2d7a69b6a07dc0cddeabffa9c411198e3cb7589cb29d3f2\nPersonalizationString =\nEntropyInputReseed = e1af1c42cd29dd002e10e5839e8b679d3c5192da5e1b655123132ff1ade22b35651ac6df66fa14f36e1832be7a176895\nAdditionalInputReseed = 5f619073fa2e98b9f06bb4676bb972379ceb727e1e8768ef09e532cf3d8fed5ce92a7528eb55ae552959d74f75dd0324\nAdditionalInput1 = 330e316bec4955d907d7d7bf2b7149f0aaf4285ed1a2b7e387376ea1a4e0858c114ec3ddddf7a1edd7c8a29b1f12b998\nAdditionalInput2 = 405911cf7c6779e02e4740fa9737f189370292494c80621cfaa9f7d16d68219e72d474f8d5a54aa8ea8020dff9c36650\nReturnedBits = e359c3e23315c9c1d69ab2ec96ec3c6c5aad868e58709e101b0fa08c4041248e4d538d038993250d395d9651513514fca5760dcb9970dce53d2d1c2712bc56d0\n\nEntropyInput = d8cc5d13badedbdc2fd41852247a9f2879b0103b4a8186f0a08da7d55453b7484f642a9e5a5182340584d2ca7cd5ed10\nPersonalizationString =\nEntropyInputReseed = 35788b8369fdc3dfd206efb873b5c5215f5b8ecb0541fc0a0e027e868a91053b5d58cc8ca0751e0c0893c868e2322471\nAdditionalInputReseed = 6afcdc760fe62b080f141886b516623971f8014ede86e50d62d307a90cf3512da5fefd37b3932d3d9d86ad0c03447be4\nAdditionalInput1 = 72105702fbf1da4c10ff087b02db764804963fd986de933b757b8fe5a6016e0f2700573925aced85c09e2ad9f9f7b2c2\nAdditionalInput2 = 65f9a3fe4e1953b7d538f6d6ca3c0a73bda2276fe8f80860c07b7ed139d748c3c45db5d96598f77ff863a43977ba390c\nReturnedBits = 7c2b600c3f550671215b03ad7aebf71086ec59aa4f45cf6b3bac9bba2e108f801f6478b098fcc4e063454cd3f64a951ed70f619866c1a4e70b5c47458c09e083\n\nEntropyInput = 07d14a0d9fbc76a155047a93bc0bb2b578fa7dd75cfe9a44bb8709fe3cc2302fdcc06a9c6751f4602a3a4955c0f38c7e\nPersonalizationString =\nEntropyInputReseed = 8babab6b9f8429f554156da3905122cb48c0b901fb6eaad8df771e8d583ba885dfbad02e47524b1981768593bde88260\nAdditionalInputReseed = c185c45cb07e8c8ba8eb31d3bd48a7c864137c689214c2fb3b1d6d6abcda84f2922a862a0955e67695391d60d6f2d1bf\nAdditionalInput1 = 326a5c9c4a1a2b6fdc369fe2a171bf625dc26e23d1a34faacf59bd33be98ff7ac7f16e485b6da3145ea4db37ee4ffefa\nAdditionalInput2 = de096ad13dcc1ee1449c3a0661edee028603590f087474161a7ab8fcfac896a924e14b0a57aeac17fed676f4b9c7168c\nReturnedBits = 60911e6e6455bf4d85a4f76378390f6cd537d7cce88228cf34e4a4889adf62a9cc1070dfc39c254e81a8557bb2c350fe3f462199e377d3796ed139117b6b0f45\n\nEntropyInput = b3458c6b38ca70c44fc6c601e088863fafc953c6b5d3ee57fb1a07f3f65dd5e6dc19aed17aa5530913aca598b26a40c0\nPersonalizationString =\nEntropyInputReseed = faa8d3feabf972e482e5a0b3821c23ba067c45267e3715a4c10f65716a348030d7fa5637e9f000b3e47d786c013fc035\nAdditionalInputReseed = 901ef89ea38203b83249a34a1a8cbd0da4773ccd503d60a395be3a3db113613e6c571a49960a4e99d302b6f237f64d54\nAdditionalInput1 = f2f87693d1f28f95b0a6459c538e82be99a8cefe8a2c7ca037822072e63670dd141873f3dc9e309c6ead40783f46794e\nAdditionalInput2 = 93cfefbb7624a137cbd7b177918823893e77251fc5660a76ab0cfaa3b340ae822a8a75365056f06b0a7e76afc39f6819\nReturnedBits = 5bbcdeb5d7d1ae19e4ef7878abd1ca4f2641d42c765b94a7689172a4e90baae46ebcfa5427a882c1614cab36f186a98dd3a15febc4b23add955f69dbfd5e5d2e\n\nEntropyInput = 6dbcf6f2f3997ed55471f779039982bc84a1c052fbf5883d6f62c0a61db108386e74759d7237bb0efca030aac76bc7e6\nPersonalizationString =\nEntropyInputReseed = 1a16753c195fed27a1abbe067b2b22aff4c49ae7832d18d01cef5ea5c7d5833008036f71e9c77c1629b6f61370b57f7b\nAdditionalInputReseed = ec54395931ac0aea2a8739d4c51e33c8425906005c341db373247e73b968c2c79257cf7ac74353c00fd81a80f4c95b8c\nAdditionalInput1 = dbd6bb5579a10e395b534431f3ab7c8025527bf99e4f7c162d681f8d35a56f6a03729f07ab43897ad0e80146044b1614\nAdditionalInput2 = 5d35742c25620bb795eae41178d7fc86d9cbe050ea702573ae6adb61e16c411b7445548dc535d57371bb11e2cdd59597\nReturnedBits = ba3905bfddcabf6dae311d1fc19fff1f6fc1ce779e38f864b7ccd2aeb1b3d6ec1845305c29d39b8736b3977277ecaf5735d0e4acefccf7778ac3542af815fd41\n\nEntropyInput = 3a9e8099007c67f6e5f98525cc4295a68c5d5135d01f5f66305c7048ca02525caa3f790b2d12a8520e9963a9cdd597a8\nPersonalizationString =\nEntropyInputReseed = 15993dba9775db8a5bf79778a316f2910d4dc0be59c3b21c650e3aa89c8c89b33fc69e9e5d642e7fee16d61b691de2bf\nAdditionalInputReseed = 946121bae27e5804daeba0d7dc7ae0c1c397bfab106e13b8b7c5462b540d147119af5b7c4f9c198161e5aa9be34e2d28\nAdditionalInput1 = e9799421e75bae7086731a21242dc101c93b768fc747734a357454fc0f7c082cfdb79b8bbcea2d1122d89316a7bfbd3d\nAdditionalInput2 = caa04f94b4b9d694e2c4bfa1e8e708b9c00d9c3d645243acfcb879d2e2ba723d9e48908738114eab7d15f8cf36b043ae\nReturnedBits = 9bd50f3c5384eb28d931f03a64eb97ef140e1e81f4c1d9c910cd7d79a40494e1fcc53d82cd32df35d53b05a450e54b7ec71e28359c1273848e5ab117d5ded88f\n\nEntropyInput = 7f2a0213de6738ec62bedab769a5f01732dad2d35dd4cad7a765dbbb6f9101f57b65ec8fc4e23fb3479ce6211ca3d84e\nPersonalizationString =\nEntropyInputReseed = aeb097e9ddc4dfe87874ddb1a856ec3d00fff1b38c8f954681c11e61bac8b6b2e2d8d010e6820f9c4d807b295acb8ab0\nAdditionalInputReseed = b33ad3dec7d529b71e39d59147f79b4884039d1112804fe8c70e174fdd9828c06a4d44d20aa5fc1918c3ee8082a2bf93\nAdditionalInput1 = 8632d221757132bb7b883b7dc26755f62ec2ffab0876168d11ea7b92774c15c553b11320393d64a2262133608ca92a18\nAdditionalInput2 = ccaf3bc3ae9cdbfa885aa8414c1f823c6a3ecc020b619201a52ce0b7516ba1f49755c450c532bfe11c06b9d0e049ccae\nReturnedBits = 4b1c065a288e5eec56b67fb341e25fc7521b794b52b94f9570bdb16583bb6f7a780aea5297496355ffb4bf5a444c277c96394619cc33cbb5a3b2a9f49b00f9df\n\nEntropyInput = 80773d0272ff48ba84b98c817365b097f21258624d0de8529381977950a5e49ff2b79d0f2522269970ea6d484198922c\nPersonalizationString =\nEntropyInputReseed = 9b101ac018be88da3611a236dfb1300c0049947e9f6ebef7a3ad6e1499efeca0b142826fa06f427e271865232a18dd29\nAdditionalInputReseed = a67ee22453dcaa5e4726e3084872145ab60489bcb6e83346c108f3efcce5b3d988b84d58786658d87c2dc3b9035e9d88\nAdditionalInput1 = 546515bf86e48dfb2b4dd21c2b46f10c1e797ab799b51822e8e7cd99ccebcca00b8899ef6af5cb395168aada9056a6c9\nAdditionalInput2 = 57bedda63fc5f792a608be111141a12e522496c086194515909bddcd868be997e718e7c5899e28dd6b123cbcc3f2a8f2\nReturnedBits = 4075461e459f15cd32030551be47528223693c2f44e32443cbe9271eefe74fa0a6e1ec04f4b8f41d7ed6c5f455281a3cba56d952b08b7753f6a3d7da3517317a\n\nEntropyInput = dc132c15af0e214d1b56eb88849e96b81dc17f238eb3d1bb9a659219dbd77eba38ca2796a8011e29cfad76f8cbbf099d\nPersonalizationString =\nEntropyInputReseed = cba23d4fdbb6c11e38012b71ca264bff9d1264bb20a39bb27d86dcdf7d72ce7a4f5c124cdf2aca6aaee20832495181e6\nAdditionalInputReseed = 07e043add7cc14612a82926c09934dea092f4618cce25674972b1f50b2907c7e3d40a25722ea49b0c7ceb6b57ff2d870\nAdditionalInput1 = 0017ff834967cff8827598ff6c00a9c97f0347c34f2523a85dd7d18ff5575756c1f5383de50338d0ab0505841d70a193\nAdditionalInput2 = c404dbc3cb0851b08530f96500f5a2c10d8985c82dec2ba31d4199fd07687ccf124382fbee3fa119938f0c72ac586102\nReturnedBits = 1935cce86bde7087fcab30b5dce0e072ad741c2f281902e1801e56c08ae8b256d27514de92dd48a838ca426820002c1206f86cad37cfd99d3a935e05f56a7507\n\nEntropyInput = e48495930a7fc86ecbfad807d40ca84ba35e346c812090def8f44d9e48b0a40704ac67ec80ae15b12e858ae85a7ed9cf\nPersonalizationString =\nEntropyInputReseed = f4735954d17e99077061c9604e8f1734d61dd662e54e37256c0f8bf276e025d59d21cacc0869ededb44a2aac9fcf2ccc\nAdditionalInputReseed = e796322fc0ef503251f6d4bd72dc5ea8100", "c5a59f1a4fe4837fa8eb2623bc650a0cd48c306f139e0ecd169a51deb2cd0\nAdditionalInput1 = 1c844d24b7cd9512e5035bc457612ebf6d3df6867aa909038bcbc1f474f7d0783ed474e34525a817bea1fbc883961e31\nAdditionalInput2 = 5c5671ba79bd0b83f74d0ed98e9c8b369a2de34188d8b7cada20b3363738d1252ece1e6a26d007acdfc5b6108412766a\nReturnedBits = 40f17e2bf6084a6447f2c40d601e16a43098dadd9f9614d518874623e8e684438c02e127e582b000dfd46df03dd5435edc4f0f47098320fd311afdbb8542c4db\n\nEntropyInput = df4a888ec7363fadd99ce2223ed39577a41bc220d20b253f98dbfc617aff8fe4ac66e5da1b5097228422cf8242baaf53\nPersonalizationString =\nEntropyInputReseed = e16dca80b2061706e8180dce8f59e888f150836a0bbceac179a4b8d882eead78709ed9951102728abbbbf9226a2d913e\nAdditionalInputReseed = febc9f6b9f2b90b4320d5d41e5c5506fa32b164d86d5e7f91d4a360fe179c127bd2bdeb78fe760174e856a5e04ed898b\nAdditionalInput1 = 0aba74cd299e75886c9e7e5293e5915d720da2c8c1cca7f0e1d6f2b672b4014eb4582e97a877121c87956185736ba0e9\nAdditionalInput2 = e451eac802660ac843fc72b66d59f1e1ca831f22d6a361929043f7626f1d82133f512fb1f2d8ca51004f80ed600609e4\nReturnedBits = 968b708ed6b54d2e5a66d46f22998748dfb5cf47e817732a40938bf3593fb251ccf8f2076837715d14b316bfb52560135602ff98338593696bf80a462b214c4b\n\nEntropyInput = 43bc561c4dd1b904a5333a092a670d0d1b61128a13be2e538a329094574819284e414b938dc8b1860b385c293c03010d\nPersonalizationString =\nEntropyInputReseed = eb362136f4ccc9e302505d525befbfa99d8c3336187d5902b03ed75641913ce973743757f97dae9366874ba62bd87013\nAdditionalInputReseed = a901f4daaa638804177a0b263e8cbc81688df3beb218b02316da83b729230a9e5112fb3896b727298755bb9ac6b6250a\nAdditionalInput1 = e33d181f3159fb0874eff5ef8ddd2b51a60b13ccf046f7e637ed27bed81bb604277f7345e6b8f0e09f925793ce417fff\nAdditionalInput2 = 3ecf6233820e6cceddac7b024c490c5ee14c73d5b598c92cda30940471b6ed450019120689aaf157fd87b71b13afea25\nReturnedBits = 9d793dd96b870dfa0267623bd1c2d8bd3e2c63e9f211340f630fea01358011394154145a10659c4d98274a525c48a90da0126a99b85ed5b4b903195f0dddc762\n\nEntropyInput = ffad10100025a879672ff50374b286712f457dd01441d76ac1a1cd15c7390dd93179a2f5920d198bf34a1b76fbc21289\nPersonalizationString = 1d2be6f25e88fa30c4ef42e4d54efd957dec231fa00143ca47580be666a8c143a916c90b3819a0a7ea914e3c9a2e7a3f\nEntropyInputReseed = 6c1a089cae313363bc76a780139eb4f2f2048b1f6b07896c5c412bff0385440fc43b73facbb79e3a252fa01fe17ab391\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = e053c7d4bd9099ef6a99f190a5fd80219437d642006672338da6e0fe73ca4d24ffa51151bfbdac78d8a2f6255046edf57a04626e9977139c6933274299f3bdff\n\nEntropyInput = f1e0d7b1ac7e4e155bb588500f57d0c59969267ea5427e2d7fde1f9c54e67b7f6562bfc1019b8b5799d2a833fdccac79\nPersonalizationString = 86da37245d9bd1fb59a4bc7abd289ea2999258042c5fa696f2da7344bb6ebc5b770ca284bfe642570b52ef47b780d5c9\nEntropyInputReseed = 9c2c9c07cab12cf50f8846148034a416c83366c1e20776073751553cae69da8d1f6bce6bde27087659d69a62e2ba7c3c\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = e0ac06d7eae89469b6c14a31e7f0464ee21f7b30d2264c2de3e435cb40d0e5043ee13dfbc0342156750880b2d5dddb3bebb43b162a8478235c8b87f96d0284fd\n\nEntropyInput = 1dbee767e9916ab322ba461fbf9f7515cfbcb45944a7b471577da087690d94d967018b631e0c1f64da3c805d049f449a\nPersonalizationString = 966b5cd94019d4d90b48ea7f540a698cfe30d7eb25f5f7e5fe42d9f53ebed6e94e733b0794fc6bf30627911e20cc18e8\nEntropyInputReseed = 96e828128f183c76c90ec8341a43561368b77114048ccb05db66128d54c9539d1adc1d72f7fb0950e41b1343a9e4df76\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = c4d3f5c55d3979b174020650ad7a46b423ec446dff2a9e9fe0a782bf65a72d5fcb1896bc1092a8c73f41295e2e7044434f88aa0aca78f7eac40e322cb7c25563\n\nEntropyInput = df588bff3a1fc97a908067da6a7fef08c889ac29ad7d639bd047157bacab4dbdee3dffe575f37d071af94cbd7628d398\nPersonalizationString = 548715cfb28c1bc56453b8c39e24cfd64077c0f6e9d959d51b9f0667b97d3c4e1a179d1a554df845b24c26daec85845a\nEntropyInputReseed = f8c165b5ebd8347a2ffef2218f993877027e977598b4fdac2f65d8d994c7432900f8407ab5aed1885dee5aa2458f5998\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = deed18220bd8f72a34559924f3cad925ee717690f76bc223d5ffeebbb554b61b9d9eb6ac5697b06331e236672677e2e01d6e3fd581a4fa1ebad289797b68955f\n\nEntropyInput = 98555093e443fe8e2bc8d2eb4d3a7abb8eba00b25683a6b31191fff7c043665ec2cad3e99e55bbc241b8edc699dbc9ed\nPersonalizationString = 5627a0a55457db05e3903d4b69ce15f55f933168d6eb374c044e8f1040f61ed7eb24f87f91c68cde050f504b8965dd81\nEntropyInputReseed = 18d17e1b68378801f83e7aa9a6d4b84d3960022c740e6c845869a5db553d2e02479cd92f3c0d8abd3e92fc9c9fbc6a3f\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 7a7f0ab07a540b4e9a3eda3f8bd1262015d8ea6d512dbea05942421f5a73242ac236009ef083bf2e51b19c40d1a019367a6b96fb52d254e4d881550aef0549ed\n\nEntropyInput = 07793bac6461f23e5eb0d1bc60b5f735515458d1530540df1c8e6fc5c3ebfb06b9db60a8947eb629ff7a375fe680d696\nPersonalizationString = c1e2132b77b6c15742e06e856c1549c4ccebd1b2eda93e2c43391b52cad51490fe34157f57be9eb4eff463b059986680\nEntropyInputReseed = 23e47e0c41462f7c619bbcd5b73f9ab1c68c7cdf1ec92c4c37126402958e110e329107742e70db611b93974c393936a6\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = e6dab4a887f48ec33cb293ffdab5fc69595f94c72c5a9bb43f468f75490190b7e0f14f5c04550cb62a6d0ee0c3d834be3434c8229c124087bb985a06b9a37267\n\nEntropyInput = 25cefa0512921fd4a3a4e5e7c48c6201185a6968419ae5bcc6667bb74c35de4f91988a33f25ea88a8443c65643cc73dd\nPersonalizationString = 07ddf125960c346680b4b361c0a9c6dc1008a85ce1861b45ff18907e6e7db41b046e5f016617e6c5b0ceb5575ac278a8\nEntropyInputReseed = 8cf41e5413b0c8ffacbc4dfc119f10b47569359b911448f45c7ad63dd58e872410c25176b986fee8b83966d0098d996a\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = ab58ec5c35600566dd2ee187a5b67dfa65bebe13333670d2a198fa5af0c20294c6cb69d37564d2b2587ea5587e12341e77f47f173d6cc9f9b9e5dedf0ee1a8d0\n\nEntropyInput = 929f1dec0a6d14de483a2fe114a430796d0b449fca56a4ddbbe661bdc26a8df85cafad7b677ccbf1fe4cb0d5e8cb57a9\nPersonalizationString = 0bf8c590a66653c0494750d10274b583d86e540b517bfc23bb3b0c9fde373e456558468603c2115c97d3662e6825f4f2\nEntropyInputReseed = 84030628534b7525dbd4023aed1ab08c4f2b86a7c2fa3bc9559b425cce07c34fac14e963256aea03f74f1122a7a30483\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 199f2dce5bbe32c693151a216fb36ccea7996c313f6b78fa30ad812a0e603965023fc29706a71b753d79244cb9e8fdaff467e0f963426b10ad89a98e987af316\n\nEntropyInput = 7bc5d970186b9e1b0052b7564dbabf61c89cb3d64ff42f9a62d625112aca0486cdf0336c3612254b40cbfba83ab65b42\nPersonalizationString = a25326fef30f9c94423d99759a1ee575536a9715df9526de9a0b8dbcc3a2234cd835615f5dfe7823927355f569ec6f02\nEntropyInputReseed = ef8a0137013be212402e42b28c03ed6420881aa38b3a3e6e90a861116516df1ef732a19e8935ffcd9be7a2fc236783b7\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 29f81ecf3f41d278c01bba9af9bc0fe6009539682f46723ce5b0ff75fed217ad71580b5dac46289e324d824094c332c3955c528257701a14ec2bfecce4f62a6c\n\nEntropyInput = 0c841a245a19295281163b07541590376d31d86a9be99e66cc22352dabb29f95e113ee233d74d3f2b7f2f608830525f0\nPersonalizationString = 28d3581054d87f153aee12edca47bad80bfc9b066ad1e8b9d96c851dc7b8ed768cad007b891d1c9447d43065b483d085\nEntropyInputReseed = 587a1dae75c2a1f2dea7fb42ef7bf38646b76a964ecd7043d8b62fdd9e6a5c007882f02f78fd040561d15a337e59f257\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = ba7bce080963fe2b4e8f0e1aa700e92b3908e18dc78728666904b0220e4077fef2cd18bbea29a2755a3499798cca445bb75269a5adca2f291dd3875457c69a89\n\nEntropyInput = f4afddabe515ca3e776730e7d44461b27e8f72407ca398d3fb578365e09ea8c24d6c4b09724907a610d755407d38667f\nPersonalizationString = 846bcbc7014ca8c6fb042a80d4a8c3aa50b6c5eff15e4b12f966ab17e6514cbb22fb2eed628ee5c2a8acde821a956078\nEntropyInputReseed = b2aeab1165b150908c9bb52c2b7167c149ea4fb4710edc8acfbc63f7652bb552d636a7e6fc3d1e74d3f65461baaac087\nAdditionalInputReseed =\nAdditionalInput1 =\nAdditionalInput2 =\nReturnedBits = 2a0335c3caeeec7c797f99fbc145654d3985c3c71025c8e4bd4b098801f15d21c272420417d805b0ad1ce68f904502a46130246315957bc07a5db4f3447a84e7\n\nEntropyInput = 6942413e05ac487cf539bc61aa6866ef8cbd9d0f15e1385f37bba5a951a29fc956d46f8740603af7c71800048c8312ad", @@ -2737,14 +2824,23 @@ static const char *kData45[] = { "887d92419e3c839b8b1dc43c6507026f1f851e\nAdditionalInputReseed = 857848c62203307b39728acf11ac8462302d3a41d186778b3f112a86270252f058fbe5767496e47662186b8d0817de02\nAdditionalInput1 = 9a08df0de742fd2e2d55121a58b700dfbff250a4881b02fc3b8952b48ecd4d034d6e7c757cdf91bf7c31dfaf70b1da22\nAdditionalInput2 = 3bf0e4f1291a8bc272cc985878335882c75831510f27963c7c01a879c60c5b67a9a14a656a746a80a091adf6ffb1adf6\nReturnedBits = 69361d61f4cf5ed489888934f320a9acc5383e719f09a1e30b6029bf71d4b4cb54859798ace2d8ee5e681d4acb223b9c119dab2dd07e6db3f7f844c2b46b9c47\n\nEntropyInput = 6f45b55ac62d5ffd452d36b1e4b18cc6abd6ad93e87558b79fbe99b4f4a962b74bad00821019bd126d6f9dd73912acf7\nPersonalizationString = 913a783046baefe428346085fd640caa1874d4aa6974832cacc5b51e78514bcfedd174606bef1721df7a1194a0ccd1e3\nEntropyInputReseed = d9e19ce3197004ab3a4bf995a481149b6d8e59a3970161cb0d3917374c0c86bb5e9bc509bd01b6796fa1e77e5fdddb16\nAdditionalInputReseed = fd31068c90614e04463acdf856b034293a079a816f1c5f3de63b870a9876f7397d2f93bd3f6776b56a78f7178e1fbb87\nAdditionalInput1 = 068e3791b91adb820b27c45a5d8544eed3133486a7d2d0bc503d8abad8b7093f3df214f1e0ac4ff2d347c760b2a605d5\nAdditionalInput2 = 6c55927a349d321d1a2141aeccc3543e9726ffcf3d8fdfe1aed63c61972a213c12ea65d648e476268611e9b08486a648\nReturnedBits = 552b4c4035d964b5eb26e3036445793df67b7321d36e8d2362fe284503b587c961a33b816b40b93d4b006769177c6593c553b6e669076f25a3e2a7214156c249\n\nEntropyInput = 8d492df46257a62e717302992682e28494f84d0f3237c16439efbbd16a94b3356eb7f7c2a0206892045a0d7d36d69f03\nPersonalizationString = b915f3311feadf6676df2389baacccdafc74cf200ed7b99167b33dafa875ce4aac1a61ce54972ec54f9b0901a3b050ee\nEntropyInputReseed = 2e345fe3a471c5066b20f4aaeaaf73921426ac1bc0509e93671535a8fbc016f5967403d6d13b4760491bf973c47a8ed5\nAdditionalInputReseed = 2e8f1f01a7664890feef93152f7b7f05032b4c70c58b5f261ef0a9c2aef23f2a14ee57c3d3465af24289b1c850e52ef8\nAdditionalInput1 = f8c218c996284f757c491cba025fd84cc701f9f83a16f03c314712c2354fee39214ed5994ab24641826bc15ed1bb5f61\nAdditionalInput2 = 146c53dc4af90f26d8c85822810d9bde2949495c23ca2c7c13ceee8221cbe8105491d560e0044c8d50d7e365da41890b\nReturnedBits = b19dd18494235abdcb3b4e99c9355d19d543c7fb7e1048d63d9e25abcc12dcb31549cec2818667713ad1dc35142072ca8daa511927aca71303493e500503be8b\n\nEntropyInput = 2a595f08947d0056ed19ecc8a547867834c125cf1740230a1325b93bf29951cbedcaa6a8f5cbe69801fb9a197ad576c6\nPersonalizationString = c0fb9dbea13863dfbfdb2c0dd864887413794a07a4dd228836f0f6afab901496486a2d508a3f4b784d83382629cddbc1\nEntropyInputReseed = a3ddfc3aefc94dcaf656f4d8eef0065a6d233a76e0a4c26e2d8bbb86459c9e4a173ff8cbec85ebc14712640741427668\nAdditionalInputReseed = d4eb9b12fc2a6fc75a69701c8b5ece02e47f813effb705dbdef0294e38907f5aadf40bdbcc067d0ebc0bf3661a2e0990\nAdditionalInput1 = d3c4bf4f8a3f61413fe1953523ba83bc02ae6d7eea1c8ba288f8e06f0d0276e61667a410f90548d283c4f1ae79483961\nAdditionalInput2 = e6fc29680eef141e1372e17729c9f4407b3f7a57057be1081ce46c78693334bf56867791072d9d18a7b4835bf251712d\nReturnedBits = 08475bfb8e621e12e212f4960e737023f7a3de3b204b6ffeeb929f424ca78c6ae2e0d726237915e5e244616713e88a39df302208e3a324f5444213b70b2e9c09\n\nEntropyInput = 3d5332b91dcaad893df504c7c675b69890b28055dfd3ec7d0ba56990dcda175096ff8f8f9f9ecd6dddeb96b829b98c3e\nPersonalizationString = 34753432b3c6bedc4d2296dffce8a66591b400867f7edf10cee447046f5f767036da9f3f4a02f7b8cba7bdd4365c1fef\nEntropyInputReseed = 1a69af0ff696f9a2fe0fddd26ccf6fae215faf91804461928c884eec13b1dd1501862a738373454e1b449c6026cebceb\nAdditionalInputReseed = dc47e104175f3c9812feed9e143da5cd7e553e3423db5bc8be3b652f577100267ff795804aaf42c3991589e7688a977b\nAdditionalInput1 = e64c0cad3dfc0bf0eba3317cf37b7779b91bf3de3e0ba36d3e16feb0014286596edd364c197847e8732925f971294dfa\nAdditionalInput2 = 1ff3a6bdb7e319a86b35d062cf017ed270c6b5511bc3d63083272e76bf4db9d90e836f18d98f1f79c2e91eeb0bc635e2\nReturnedBits = fdef7e67c3d19f5f74784bdc64d2c23d0a3f027846da2b2afba940fdc2f066d89b63d27e55d3d0a88bddb97e29676894ec8a18268e4bc27d181a867c5a80fe2c\n\nEntropyInput = 156c8c0f44f4a8f17044957b572ed16d54b73a9510d2b260a036ad6ef223f45e124c4ae9dae0fdf5684792da0ff5ea0a\nPersonalizationString = 1472f56d5498564a5b53d2eae27103f41f565d7873b37c37c30472075f1d84d69a8d68c92636ae06aa61678358cc47d4\nEntropyInputReseed = 6bc2bfd44f72982b23b6d22c85f7d601d5941ebe6e9ee9d06a8efe652539ec00b1136adbc4e43aaab76c3ad6a57a267e\nAdditionalInputReseed = a83b1547fadb97e491ef0bdb8b0d006ab16638fdb211613051f0f57586c146882f1062b7f71a8c15bb27200fa83ffcaf\nAdditionalInput1 = ac188da8a895e0807bab61b1ebd73acbe43f99f375c7d29174f675e1667237cedf1d41fc50da277a0db21ee2891a5abf\nAdditionalInput2 = adf9a30b6cd9dac23f193f66df9d606a5765b96cc42c099530c53c26a6d6bcf0779ae060d188e1cc5bdab6c312892267\nReturnedBits = fcc79828bf2c9d3d799d7a0e83583c70aeb156e25df0b2fde030c2775c9986c8054e848128ba38ff5e5b0b1e5b72f9e41726b960008408f5152b1a47072fbdf7\n\nEntropyInput = 5e0dd8e37aa23d0fe79efcb8e5538ee90ffb5733decc83f7677488c4f64c2e0d2a918968a5c7351de9360f23fe606a4a\nPersonalizationString = 5161b794e4a13371b320ae4b2b6b698e4df507402a7582555598089dd9484358d37f891294948512e4198a79de8ca3d9\nEntropyInputReseed = 850ffb89bc23562f3ea03947c1afa7309a0ccdc0b714bc94ff45d66884b74fba0bffce97887f2efc178388f36f0ea95e\nAdditionalInputReseed = 50f605cb940f573c4ef3ddff8caa9a3f544f40fdf583b82cd79338523d896f72f86be1f9bb37d9aca02a2856f713c812\nAdditionalInput1 = da7bcf6810a6b3820548065edbec0fa2fd4bc03e5d50666f98a8bea6b744e04aafa0714582f11b6608852c45ee51df6b\nAdditionalInput2 = 4e9c0c770699656217a0b2dbb466a0fcb0cdb5d4a4a05da40fa2eb546f2f0f28aea575a0bdf6e89352d519db44f47dc5\nReturnedBits = 40ec0e8e3e54cd4fd78f5e006bf3134c378ba619ccf9e7530c79217da631458b5f9135bc8b0d6f2e742c53b58d0ebc18263f9d2ef37a2fa0fb086d2193857863\n\nEntropyInput = 219a364ad362fd8a1d69c1284fd64cc9ec05e6bfbdd133ac9170594b5d95946d3dda2ebcc58deeace86f9dca5ad99c18\nPersonalizationString = b0b27b03fc65effe4610e61916f2e9bd252d47efcc08b84aa505b1befd3a7e9295ca764ac88f099bbecc28301f0f298e\nEntropyInputReseed = 1bccdb4b2ce863fbee104d7a56f2cd88a44a088392883a6db30e6fc7bf5611759c71d53a61fe62b6314d7426e510a722\nAdditionalInputReseed = a06eab3b05eb3649a01be82a356030effdbf45fd71f49b1862ecf33fdb28a7191a34f104b9eda1da4ba48daf9da381b6\nAdditionalInput1 = 88b17e13e02a7e9a3f8263946fae0b6a9052692c3c5cbe858369c4d0b198b9c6a8f4c87ff5e6b2835a7944b911266aa9\nAdditionalInput2 = 828222c8a275427a5f8a963d0d65e92f6170d5089c9a162429c093a28dd69f71135342f16b3baea9a4764e2cc3762267\nReturnedBits = a739f9fee9a40049e42b00b381a1f663877abb776ec655e3a7870bd94bea1a25d3c6d380eced435e498044daf78b349bc1868e4bff6257cf2711ed08e2357201\n\nEntropyInput = f8513c2f6e46f75fce3671ccb3c69158583a873b0dda83d8b1cd548f4e5efd75642f2c23cf8792d51023f31d795f6f5b\nPersonalizationString = e94f7212257885511b15a873d0158fa5ea648846afbcf9d62a7abc4e6909dd43c671fa18bc289f47e2301e9aa69c3e88\nEntropyInputReseed = 487b9c1866ffdaaf6760cdee3df5a930196d30b0ac8db780656577ddfc1ff3508c451ef2b0b478a2cf0c73027597b2ae\nAdditionalInputReseed = 7387b59f8c78e79d36edacbb428fd515ef9e58086059bf7fd642053b0f5706cfe86eb3c35ca0b6f02e5d1304e476e3cf\nAdditionalInput1 = bafc59ef40e59d8c28851212e1c357cce0d06f02c69d14585170ca8eb18396a331d635cf0651319842cee2f7c87285c2\nAdditionalInput2 = 82d905ba69b6c45ca28107beb6698a152631ab48614235f6a9f12e019f66bf326151d9ee84e0cd42b6566dbffb46ec35\nReturnedBits = 163f48d09f3e9ebf9f8647766a0b2e189a2f3a21a5a4e31c8a4f3bd138cc50030ac8bea1c4d9e9aa0b67f34926239fbcedfd1992da165b941cf03b56737737b2\n\nEntropyInput = 0a8f092764d473d48215e947ea8a32b5da8ea86d8ed0d83bce31b1b5a21e7c5f1af2186a39caf9afa61644caef02ef9b\nPersonalizationString = 84637faba756917b0f44ba2e0e26546f5239782e4d9f952ee251367081629e71c20a7459995a7563810daeab74220664\nEntropyInputReseed = eacaded3d89a63b94a5c14c3087306e670fc4ee7d56cafef4c5aa7d553ca89ed34418056a44f5447e2b07dd541ac4645\nAdditionalInputReseed = 104a1541313fc4be9d34bced288c1c1b6fa793e9096f8be5673a2c6825dabef91fd88e45a061b2d897f9b5e8a8ae0ad3\nAdditionalInput1 = e30c9d8aba0bd5dc63d911897e4dcadbeacc3ed9392d8e361b356e02a81d65bdab91f7e9f8dd2b2bf9af0da5100e77d4\nAdditionalInput2 = 2bed42b8c05461ba2756a5f38393d5538d20eb9cf1c06775e7fef7284341f61ccd34b0148d1e870c1992dfd065560ed6\nReturnedBits = 855a6af3e6dddf194ceaafcef6f7ee91f489a61a73b759d41be4d5298510b9902f5b78b1162cba417684519634b578afda9802bd782f04b3a25106f3586ad8a4\n\nEntropyInput =", " ed63e3b88a2f0d6a40b7b36a06cd8d40ec10158ab6c4f8dabdb879e45d22db573320d2641bfd7db31eb6bbf4c6330b9f\nPersonalizationString = f82a5ee81f349a69dfa6a6e53b406bb560cb0339f61b3886237023ae4582b9725b8774a8044ec5134ebd4d7606f18188\nEntropyInputReseed = 7104522c2a69bec7e010d9670d7ab92dd817ac7ff05d63ab0e12d431d4c9aef4d715421c1fb5d05d3aecba36859a6038\nAdditionalInputReseed = 3b83034ea440604d0b7d04857623e9adc0eb9aad4a45b2079863eed3d72e65abf67d255673e769a2e2584eea59f1ebaa\nAdditionalInput1 = 8678e4f831887e96a27c3a8ce0963f4b34bbca25791b06526cb6c55624c33d98a0356be624238cecacba3535e872c4c7\nAdditionalInput2 = ec3452ea2722984bbe6a5b7c22ad58df37a854abc8630b9e21bcd0469eb207e5f44e044f5f666920dd55e81a393500de\nReturnedBits = c340765fe7a3479bef2d7d59e321066f8ad0db53aed4c517bf8339566bf877d53921e6de2650d0080529004a5fd32124ce8e58a040e2d55656b37d9ea827cb91\n\nEntropyInput = 882ed05487dce4b4f9e58ec4f2da1fa5d8ebb4ef9fcbf7b0a0e15c4dccb8e19788f86dcf2885e71a20cbd9ac10a6648e\nPersonalizationString = 05f5bc41687ea1e4c34a69944fbae283cfee4c42b1bbd78fddb0973d0fca948539b6843658b67c30b73191b9a0bf2921\nEntropyInputReseed = ca1603d4c8711404c7bdc12c7c75b2943a4b042ea1d2eb54506a6876952157caf3b152dc75f27f2213645a141577e8ba\nAdditionalInputReseed = 83cda53380888d53515e58154f89d5528ab69f31fbcfca34988cf03c4cae5f60aa6291f32d99ab2a726b6e08d2502cf5\nAdditionalInput1 = 5bf5ca9f964edd91e8ef491fd3cd32faf9cb9d1993d8221914d1751fb0d4252a5ca950e213f088050900b2bd74f5e336\nAdditionalInput2 = dba28dc1d8d615651547867d4ef42519045ee16378143685101da47a27b55498078e8a8f4854052f7cc6f5b02e571ae8\nReturnedBits = 01f11971835819c1148aa079eea09fd5b1aa3ac6ba557ae3317b1a33f4505174cf9d7e940821c9b0e5527a1d3e186a7a83f187c62d3223cf5964ff9526d8484c\n", }; -static const size_t kLen46 = 6201; +static const size_t kLen48 = 6201; -static const char *kData46[] = { +static const char *kData48[] = { "HMAC = MD5\n# Note: The empty key results in passing NULL to HMAC_Init_ex, so this tests\n# that HMAC_CTX and HMAC treat NULL as the empty key initially.\nKey =\nInput = \"More text test vectors to stuff up EBCDIC machines :-)\"\nOutput = e9139d1e6ee064ef8cf514fc7dc83e86\n\n# HMAC tests from RFC2104\nHMAC = MD5\nKey = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\nInput = \"Hi There\"\nOutput = 9294727a3638bb1c13f48ef8158bfc9d\n\nHMAC = MD5\nKey = \"Jefe\"\nInput = \"what do ya want for nothing?\"\nOutput = 750c783e6ab0b503eaa86e310a5db738\n\nHMAC = MD5\nKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nInput = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\nOutput = 56be34521d144c88dbb8c733f0e8b3f6\n\n# HMAC tests from NIST test data\n\nHMAC = SHA1\nInput = \"Sample message for keylen=blocklen\"\nKey = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F\nOutput = 5FD596EE78D5553C8FF4E72D266DFD192366DA29\n\nHMAC = SHA1\nInput = \"Sample message for keylen 16\nct = 8d55dc10584e243f55d2bdbb5758b7fabcd58c8d3785f01c7e3640b2a1dadcd9\niv = 54f2459e40e002763144f4752cde2fb5\nkey = 831e664c9e3f0c3094c0b27b9d908eb2\nmsg = 26603bb76dd0a0180791c4ed4d3b058807\nresult = valid\n\n# tcId = 21\n# plaintext size > 16\nct = e9199842355ea0c3dbf1b2a94fef1c802a95d024df9e407883cf5bf1f02c3cdc\niv = 088e01c2c65b26e7ad6af7b92ea09d73\nkey = cbffc6c8c7f76f46349c32d666f4efb0\nmsg = 6df067add738195fd55ac2e76b476971b9a0e6d8\nresult = valid\n\n# tcId = 22\n# plaintext size > 16\nct = 19beb4db2be0f3aff0083583038b2281a77c85b5f345ba4d2bc7f742a14f9247\niv = d9c9468796a2f5741b84d2d41430c5d3\nkey = fda6a01194beb462953d7e6c49b32dac\nmsg = f60ae3b036abcab78c98fc1d4b67970c0955cb6fe24483f8907fd73319679b\nresult = valid\n\n# tcId = 23\n# plaintext size > 16\nct = 84904fc92bd2e7590aa268e667370327b9446f41067dd40d3e5091a63a0d5687e4926e00cc3cb461c3b85d80ee2da818\niv = c98b47808add45c0c891983ec4b09846\nkey = efd9caa8ac68e9e29acdae57e93bcea8\nmsg = 3e1d2001f1e475b972738936443a5f51eedaf802a66fadf2406cfaadb0549149fcb9f485e534dc2d\nresult = valid\n\n# tcId = 24\n# plaintext size > 16\nct = 1d1391593a336be4b207295ad0542bc4ef2f39053066e12c38f71603f377fd42f4f0b2b5a42cdfeaee2af039f06fcf347abe171af3157ff07f3cdd3b33e11a60caecf9890325c132eeb66ab847278d165c26bca7c30486bb2fd83b63c5ff7ae0\niv = 08e9410de244d3f40607ebae38fa74e7\nkey = 37e4dbdc436258d5a9adb9f205c77cf3\nmsg = 24a874aec067116ad22eb55846ded3f5e86919a135585c929a86d92b2958fed110e52e33804887243584a6a94402cc9a105e0c940ec335bd2890f16dcce3fc8bd02873c80ade6f1ac08683130bcca454\nresult = valid\n\n# tcId = 25\n# zero padding\nct = aa62606a287476777b92d8e4c4e53028\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 26\n# zero padding\nct = ada437b682c92384b6c23ec10a21b3d8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 27\n# zero padding\nct = 26c5b3e540ee3dd6b52d14afd01a44f8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 28\n# zero padding\nct = fbcbdfdaaf17980be939c0b243266ecbc0deb417e98aba3ee12fea2921f8ae51\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 29\n# zero padding\nct = fbcbdfdaaf17980be939c0b243266ecb1188ff22f6563f6173440547d1e0dfd8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 30\n# padding with 0xff\nct = 726570a34cea08139d9f836579102a0e\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 31\n# padding with 0xff\nct = c8ef7ac3fd659ce7157d72a25f0a5048\niv = 2", - "3468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 32\n# padding with 0xff\nct = 6123c889bbc766acd4bca4cb982f9978\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 33\n# padding with 0xff\nct = fbcbdfdaaf17980be939c0b243266ecb442cd16f7410fca70924b573f7967e84\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 34\n# padding with 0xff\nct = fbcbdfdaaf17980be939c0b243266ecbb20f899b0e7c1d65b931af94b5c44c25\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 35\n# bit padding\nct = 50aeed98a820c5a037a5aa4d4ef3090b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 36\n# bit padding\nct = 25ee339006f948f42713543c62467ef9\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 37\n# bit padding\nct = 97914574676ed5b8db0b6f3931195b3f\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 38\n# bit padding\nct = fbcbdfdaaf17980be939c0b243266ecb2874a1e2d28dd18e5573df9fd59fd789\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 39\n# bit padding\nct = fbcbdfdaaf17980be939c0b243266ecbb547c4fddbdcd3e02f438a2e48587594\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 40\n# padding longer than 1 block\nct = d17ccbb26f0aa95f397b20063547349bac24c5429cbea591e96595cccc11451b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 41\n# padding longer than 1 block\nct = fc07025e81d43efa85f92afdf8781b1e88598e12d6812df43733e93414b9e901\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 42\n# padding longer than 1 block\nct = deb1746f4e9e0be4a21825b071b6e93303031651e0c59091e2ae0fbcce11b987\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 43\n# padding longer than 1 block\nct = fbcbdfdaaf17980be939c0b243266ecb563d35096fde10ccb6f768438c9eb4ec90f399b76924c716e9f94143263306c6\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 44\n# padding longer than 1 block\nct = fbcbdfdaaf17980be939c0b243266ecbc8fd2e2c5362acf5212bd47859aa827d8469b87b0e6adafe3dba98c1885b6345\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 45\n# ANSI X.923 padding\nct = ca5dd2d09bd56eec9e8acaeca20af68e\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 46\n# ANSI X.923 padding\nct = 01e53a5ec9b0957c45f79ed0f4b2b982\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 47\n# ANSI X.923 padding\nct = fbcbdfdaaf17980be939c0b243266ecbd3909bb3457e5b946ff709be9a2ed84d\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 48\n# ANSI X.923 padding\nct = fbcbdfdaaf17980be939c0b243266ecbc5ab3ab637166a6a067b82b5672c08f8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 49\n# ISO 10126 padding\nct = ba0726bd6dea11382b19c842e2ddead2\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 50\n# ISO 10126 padding\nct = 22f18b85c729903744fb8db5ed2840d4\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padd", - "ing. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 51\n# ISO 10126 padding\nct = fbcbdfdaaf17980be939c0b243266ecb6b103fbe43519a18880b7e6d9153e1c2\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 52\n# ISO 10126 padding\nct = fbcbdfdaaf17980be939c0b243266ecbe00bdb15b8a61285447498700d35e0c6\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 53\n# padding longer than message\nct = d17ccbb26f0aa95f397b20063547349b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 54\n# padding longer than message\nct = 2056dfa339fa00be6836999411a98c76\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 55\n# padding longer than message\nct = f92628f6418d8d9c9afac233861b3835\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 56\n# padding longer than message\nct = fbcbdfdaaf17980be939c0b243266ecbc0c41093b495a7d5a080d976493fd0e7\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 57\n# padding longer than message\nct = fbcbdfdaaf17980be939c0b243266ecb6770446a5ccaa26f7d4f970cc5834eba\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 58\n# invalid padding\nct = 4ff3e623fdd432608c183f40864177af\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 59\n# invalid padding\nct = 6a1ef1e6ae6a788777aabd9ccf3cf43a\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 60\n# invalid padding\nct = fbcbdfdaaf17980be939c0b243266ecbee1345cd513161b241f4ae2799b0327f\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 61\n# invalid padding\nct = fbcbdfdaaf17980be939c0b243266ecbe0d539beef6f2d4f7cda4fd9f4f05570\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n[ivSize = 128]\n[keySize = 192]\n\n# tcId = 62\n# empty message\nct = ff0c315873b4b1872abef2353b792ef0\niv = db20f9a6f4d6b4e478f1a4b9d4051d34\nkey = 3d6bf9edae6d881eade0ff8c7076a4835b71320c1f36b631\nmsg = \nresult = valid\n\n# tcId = 63\n# message size divisible by block size\nct = 7dbd573e4db58a318edfe29f199d8cda538a49f36486337c2711163e55fd5d0b\niv = 69a76dc4da64d89c580eb75ae975ec39\nkey = f4bfa5aa4f0f4d62cf736cd2969c43d580fdb92f2753bedb\nmsg = 0e239f239705b282ce2200fe20de1165\nresult = valid\n\n# tcId = 64\n# message size divisible by block size\nct = bd0258909e5b72438d95ca4b29c8a79c6228fd06a3b2fa06f7659654c7b24610f23f2fb16313b7d3614cb0cd16fabb8e\niv = 6525667350930fb945dd1895a3abfcd1\nkey = 9d11abc1fcb248a436598e695be12c3c2ed90a18ba09d62c\nmsg = aa5182cae2a8fb068c0b3fb2be3e57ae523d13dffd1a944587707c2b67447f3f\nresult = valid\n\n# tcId = 65\n# message size divisible by block size\nct = 6cbeacf8de25d7dd9dcdc087bf2f80873b1eb335400589076f8d2bf81e294c5d72b85eb8ac9558b0de9e9fbee4b18716e5220c507fbb9d319a08f67816765ca6\niv = 3943d8fddd5bb2a59772df31a31a8fff\nkey = 7e41d83181659a2c38da5ead353cdb04c2b4d4a3cfe58e25\nmsg = 8a32d11c7a11aa72e13381632b1310f4fd90fc209a6a350e61c069a561871214f9c04fc1df7354cbe4d8d639c525d324\nresult = valid\n\n# tcId = 66\n# small plaintext size\nct = 519925956d32e4fa350b1144f088e4e8\niv = 1379d48493f743e6a149deb3b9bab31e\nkey = 915429743435c28997a33b33b6574a953d81dae0e7032e6a\nmsg = 58\nresult = valid\n\n# tcId = 67\n# small plaintext size\nct = bfb90aa7de1bdeed5bdc5703bdfd9630\niv = 48c7f44b43a1279d820733e6cb30617a\nkey = f0c288ba26b284f9fb321b444a6517b3cdda1a799d55fdff\nmsg = 0f7e\nresult = valid\n\n# tcId = 68\n# small plaintext size\nct = b1a25816908c086f26037d10b7be9ad9\niv = 2c287b38cc30c8c351b087b91a6a97ba\nkey = 6b55e4d4fd6847a80a6bfb0dcc0aa93f9fd797fc5c50292e\nmsg = 33f530\nresult = valid\n\n# tcId = 69\n# small plaintext size\nct = 74dbdecbfa94b71d2d6ef03200c7d095\niv = 61f6060919c9c09ef06be28f39c344aa\nkey = 1eb21a9e995a8e45c9e71ecbd6fe615b3e0318007c64b644\nmsg = 3aa73c48\nresult = valid\n\n# tcId = 70\n# small plaintext size\nct = 10c860aaee23c3c3c1b9306b189dd80d\niv = 7682005907bfef3ce00196a17ad2246d\nkey = 710e2d5d4a9f0bc7e50796655e046a18cc5769d7764355da\nmsg = 7e4c690a88\nresult = valid\n\n# tcId = 71\n# small plaintext size\nct = 673dcd444386930a0cc577fab4501e5c\niv = 1f6c912997ce007701e5fdf407c6b421\nkey = d8c09ea400779b63e774bdacd0cb7b5dd6f736ca23d52acf\nmsg = e9520280973b\nresult = valid\n\n# tcId = 72\n# small plaintext size\nct = 059e5f72a81d8820add8eae8fabcdd42\niv = 5854033ae50de090678432781a168b6c\nkey = 8e67e9a0863b55bed408866f1cbc05357abe3f9d79f406f2\nmsg = 4880b412287a0b\nresult = valid\n\n# tcId = 73\n# small plaintext size\nct = c412159fd5ae20d771b7d2e734124d6a\niv = 003b2d86d8b636c58cf664565572d5e6\nkey = 28d8da67806410e5565bcc5a9d7ab9fb357413fa0158378c\nmsg = 004e3f4a4e6db955\nresult = valid\n\n# tcId = 74\n# small plaintext size\nct = 4aba571c2c5ab9a6140f16efc68c8ec1\niv = 3f22b50f888ab9424ba871d15aac55b7\nkey = dc968dd89fd602bb7eca6f3a8a13e4f59c08d02a514b1934\nmsg = 41a25354efeb1bc3b8\nresult = valid\n\n# tcId = 75\n# small plaintext size\nct = 66d1b9152a8cd1a88eab341c775070b4\niv = e4b8dde04b49fa6b88bfccd8d70c21d1\nkey = 7658951c0f620d82afd92756cc2d7983b79da3e56fdd1b78\nmsg = f0e82fb5c5666f4af49f\nresult = valid\n\n# tcId = 76\n# small plaintext size\nct = d9377788e2881a48f9347786db7df51f\niv = 7753f616cd8796c9b8a3bbfbe6cb1e7f\nkey = d9574c3a221b986690931faac5258d9d3c52362b2cb9b054\nmsg = 178ea8404ba54ee4e4522c\nresult = valid\n\n# tcId = 77\n# small plaintext size\nct =", - " db825f4434ea3bb53576fa7385fb7dfe\niv = eae9ee19ccb7f8b087675709c4d35f73\nkey = 704409bab28085c44981f28f75dd143a4f747106f63f262e\nmsg = cda5709e7f115624e74ab031\nresult = valid\n\n# tcId = 78\n# small plaintext size\nct = 3e7287df2a5ed9de4d817e352bd47ea7\niv = a6aaff339a729d30a7ec1328db36d23e\nkey = d8d06ef6a53bbff5c8f12d791b8f4c67e574bf440736d1cc\nmsg = a1171eae1979f48345dd9485a0\nresult = valid\n\n# tcId = 79\n# small plaintext size\nct = 17c3ade4b469ae614760039a8fa6250e\niv = 92fda71e88c70d18ed71b992735a2150\nkey = 71129e781613f39d9ac39fbde2628b44c250c14deb5ef9e2\nmsg = 967593cc64bcbf7f3c58d04cb82b\nresult = valid\n\n# tcId = 80\n# small plaintext size\nct = 9cafecff2a28d02f732573f65a2cadca\niv = ed6596c86b98123ad2f3c573e974d051\nkey = 850fc859e9f7b89a367611dee6698f33962d8245ca8dc331\nmsg = 586f4f171af116519061a8e0e77940\nresult = valid\n\n# tcId = 81\n# plaintext size > 16\nct = 401ad889bdb9d38816c782e00b168ccccde9bf75f4be868ceb91237e8b37b750\niv = c45b52a240eba3bdde5dfd57f3d474fb\nkey = cfd3f68873d81a27d2bfce876c79f6e609074dec39e34614\nmsg = b1973cb25aa87ef9d1a8888b0a0f5c04c6\nresult = valid\n\n# tcId = 82\n# plaintext size > 16\nct = 455d516e87851e6c894578a0f7126e0acbc7cfbb1d80296647ab89a79dfa6f71\niv = 07ece5fe02266e073499fd4d66929034\nkey = b7f165bced1613da5e747fdf9255832d30c07f2deeb5a326\nmsg = 289647ea8d0ff31375a82aa1c620903048bb1d0e\nresult = valid\n\n# tcId = 83\n# plaintext size > 16\nct = cbf541330a5a9bda24984976b0cf96ba08ef521fa2cdb3df839128570e222ac4\niv = d799157bc1f77c182027be918b30783a\nkey = 9bbe6e004fb260dadb02b68b78954f1da5e6a2d02e0aeefe\nmsg = 665423092ce95b927e98b8082030f58e33f3ec1b0c29532c2f421855f00f97\nresult = valid\n\n# tcId = 84\n# plaintext size > 16\nct = 03225f08592efca14ad8ecf822465e8be4157465d0be150dd3d645b6fef1b19ca7bbaa5940b2a7895fa2b0ee55b0d4ec\niv = fdf97645e4192ba84728bbf6683f79de\nkey = 1381fbd5e79045d40f29790fc1a436c95b040a046ebf0b0f\nmsg = d575dce596dd0a2cd1c18dab7eb0948fafb8669969a48b6314493bfb8daf8acacd51382f9bb5b357\nresult = valid\n\n# tcId = 85\n# plaintext size > 16\nct = 27ad00313f328f0d3e6c3238ab560cb7243a9f54f7dff79b5a7a879439993d458017f09e8d3f694098bc19e61fe54085138664abb51a5b328cf2c9ce5d59726fff5e1b7553c143d9e0493c51cab23ff2ecdad91bd72bb12b32f3b611f9a4225d\niv = 059685f59247eea5d3f2a1532cb9d6b2\nkey = 1bb4ed0e8435e20729f48c1b7e3af6e69e4cebf0731131cf\nmsg = 6d29dab6a0568c961ab3c825e0d89940cef06c63ade7e557cd3e92792eaf23c8cd5a0f029c63b1cdce4754ccfad7a73c7c9e50ffe081e9136f5e9a424077339de12ea43572afe1b034e833e5887763aa\nresult = valid\n\n# tcId = 86\n# zero padding\nct = 2c010faa25c68c3b30b8c1491c316d5f\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 87\n# zero padding\nct = 818454d433154a8e00e8f590b8a1c38c\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 88\n# zero padding\nct = 0a7423fae3f4c8d4633f839d36f2e9ff\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 89\n# zero padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432e83f6e522c371e6e71bde539595b70b7\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 90\n# zero padding\nct = a7cfcdabcc5a2736a2708c1cb0b6143254d15f47701fa54f5957828f386e1d97\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 91\n# padding with 0xff\nct = 6ded36cc7603e514014dfb7199900676\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 92\n# padding with 0xff\nct = 839f772f8e5f50afdc02f954094869fe\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 93\n# padding with 0xff\nct = eefe3553c099c187929b287e54f95726\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 94\n# padding with 0xff\nct = a7cfcdabcc5a2736a2708c1cb0b61432d0531a2641d40467353542d79ce20ea8\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 95\n# padding with 0xff\nct = a7cfcdabcc5a2736a2708c1cb0b61432aaf08a090ecf66167ba5958100be7950\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 96\n# bit padding\nct = c0e402c8bbdda18c8ddd86470bd4b244\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 97\n# bit padding\nct = dc185d4572565e01131e471ec4c48125\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 98\n# bit padding\nct = 3ad1ddf3c3b320398785e6ec6544e9a2\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 99\n# bit padding\nct = a7cfcdabcc5a2736a2708c1cb0b614325876f90cfbbdbcd85e8252d37c44c638\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the mess", - "age encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 100\n# bit padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432d18f57216b0e6426d911998a0e44156b\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 101\n# padding longer than 1 block\nct = f1605abb4e6628347c616da350fe243043a8d7b6aea244ca013f45241d802213\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 102\n# padding longer than 1 block\nct = a5f027fb9514ec8844534d452c940feb2c1807f57ed628156cf753f2ab698356\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 103\n# padding longer than 1 block\nct = f346fbc9744d723c42bbb2a4c934cdd4f1019e58c226cb2491fed621271a38f3\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 104\n# padding longer than 1 block\nct = a7cfcdabcc5a2736a2708c1cb0b6143263eb325d36e13aa1d3dd1d7e071700104c7eb3e22e0859aa06296bc3194bb909\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 105\n# padding longer than 1 block\nct = a7cfcdabcc5a2736a2708c1cb0b61432219485d41584bd110a6d7a9cad472815d93921c48d4bcb509fdf2e63d7627c37\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 106\n# ANSI X.923 padding\nct = 215571a18a70140f3a0fd4c1b2dd6316\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 107\n# ANSI X.923 padding\nct = 2529985ec0ec3cf4bd22746e00d7bdc6\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 108\n# ANSI X.923 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614329a8058657ac4a150e995cf83efccf051\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 109\n# ANSI X.923 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614328a068626780ba600f880bd5323f8ac15\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 110\n# ISO 10126 padding\nct = 13e75f9ffe2afa81b9a2e7faf74aab6d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 111\n# ISO 10126 padding\nct = a382197fe491f5c3f91b629dc47c3d58\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 112\n# ISO 10126 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614320b842e5d6e32660263ff814a0277659f\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 113\n# ISO 10126 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614321d2f736515cfe17921800eb392e0139d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 114\n# padding longer than message\nct = f1605abb4e6628347c616da350fe2430\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 115\n# padding longer than message\nct = b3602ff0f797cbbdde35105d27e55b94\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 116\n# padding longer than message\nct = 0334c1bc34b597f60a639e74d8b45c4e\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 117\n# padding longer than message\nct = a7cfcdabcc5a2736a2708c1cb0b61432c3f9fe42d9715035bcda97d27405ced7\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 118\n# padding longer than message\nct = a7cfcdabcc5a2736a2708c1cb0b61432362b014a", - "9abdaf25ae1f6dfb99d03d9d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 119\n# invalid padding\nct = 97ab405b86c388f144cf74fbb9358493\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 120\n# invalid padding\nct = 691f6009802f0fb4920928db7eca1349\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 121\n# invalid padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432a99fc96a6fa0c9fcb18de1672d74914d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 122\n# invalid padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432dd1bb2e98102322fb1aa92c979d4c7c3\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n[ivSize = 128]\n[keySize = 256]\n\n# tcId = 123\n# empty message\nct = e7c166554d1bb32792c981fa674cc4d8\niv = eb38ef61717e1324ae064e86f1c3e797\nkey = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97\nmsg = \nresult = valid\n\n# tcId = 124\n# message size divisible by block size\nct = 299295be47e9f5441fe83a7a811c4aeb2650333e681e69fa6b767d28a6ccf282\niv = 9ec7b863ac845cad5e4673da21f5b6a9\nkey = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd\nmsg = cc37fae15f745a2f40e2c8b192f2b38d\nresult = valid\n\n# tcId = 125\n# message size divisible by block size\nct = a615a39ff8f59f82cf72ed13e1b01e32459700561be112412961365c7a0b58aa7a16d68c065e77ebe504999051476bd7\niv = e70d83a77a2ce722ac214c00837acedf\nkey = 96e1e4896fb2cd05f133a6a100bc5609a7ac3ca6d81721e922dadd69ad07a892\nmsg = 91a17e4dfcc3166a1add26ff0e7c12056e8a654f28a6de24f4ba739ceb5b5b18\nresult = valid\n\n# tcId = 126\n# message size divisible by block size\nct = ed3ed8ecdbabc0a8c06259e913f3ab9a1f1dc6d05e5dfdd9c80e1008f3423064d540681291bbd3e159820fee3ff190a68fe506d8ab9e62c8e7b3816093336dbc\niv = bd003c0a9d804c29f053a77cb380cb47\nkey = 649e373e681ef52e3c10ac265484750932a9918f28fb824f7cb50adab39781fe\nmsg = 39b447bd3a01983c1cb761b456d69000948ceb870562a536126a0d18a8e7e49b16de8fe672f13d0808d8b7d957899917\nresult = valid\n\n# tcId = 127\n# small plaintext size\nct = 42c0b89a706ed2606cd94f9cb361fa51\niv = 014d2e13dfbcb969ba3bb91442d52eca\nkey = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc\nmsg = 40\nresult = valid\n\n# tcId = 128\n# small plaintext size\nct = b90c326b72eb222ddb4dae47f2bc223c\niv = fae3e2054113f6b3b904aadbfe59655c\nkey = ea3b016bdd387dd64d837c71683808f335dbdc53598a4ea8c5f952473fafaf5f\nmsg = 6601\nresult = valid\n\n# tcId = 129\n# small plaintext size\nct = 567c45c5e6d570bef583d21cac43757d\niv = 203cd3e0068e43d38b6f2e48a188f252\nkey = 73d4709637857dafab6ad8b2b0a51b06524717fedf100296644f7cfdaae1805b\nmsg = f1d300\nresult = valid\n\n# tcId = 130\n# small plaintext size\nct = c45afe62fc9351ad0fc9b03bc2f3a91f\niv = abcf220eede012279c3a2d33295ff273\nkey = d5c81b399d4c0d1583a13da56de6d2dc45a66e7b47c24ab1192e246dc961dd77\nmsg = 2ae63cbf\nresult = valid\n\n# tcId = 131\n# small plaintext size\nct = 281fa533d0740cc6cdf94dd1a5f7402d\niv = 01373953578902909ae4f6cb0a72587c\nkey = 2521203fa0dddf59d837b2830f87b1aa61f958155df3ca4d1df2457cb4284dc8\nmsg = af3a015ea1\nresult = valid\n\n# tcId = 132\n# small plaintext size\nct = 3f3f39697bd7e88d85a14132be1cbc48\niv = 3fb0d5ecd06c71150748b599595833cb\nkey = 665a02bc265a66d01775091da56726b6668bfd903cb7af66fb1b78a8a062e43c\nmsg = 3f56935def3f\nresult = valid\n\n# tcId = 133\n# small plaintext size\nct = 379990d91557614836381d5026fa04a0\niv = 27a2db6114ece34fb6c23302d9ba07c6\nkey = facd75b22221380047305bc981f570e2a1af38928ea7e2059e3af5fc6b82b493\nmsg = 57bb86beed156f\nresult = valid\n\n# tcId = 134\n# small plaintext size\nct = 7ecefe24caa78a68f4031d40fdb9a43a\niv = 9b2b631e3f24bdc814a14abb3416059e\nkey = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5\nmsg = 2e4e7ef728fe11af\nresult = valid\n\n# tcId = 135\n# small plaintext size\nct = ffe4ec8baf4af40ab2e7f4d6193fae9c\niv = 92cfc4eb146b18b73fc76483fc5e1229\nkey = f942093842808ba47f64e427f7351dde6b9546e66de4e7d60aa6f328182712cf\nmsg = 852a21d92848e627c7\nresult = valid\n\n# tcId = 136\n# small plaintext size\nct = ef96215e7950e7be8aae78b9ec8aaf39\niv = 4ceed8dcb75b6259dad737bdef96f099\nkey = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4\nmsg = 195a3b292f93baff0a2c\nresult = valid\n\n# tcId = 137\n# small plaintext size\nct = 4ed0eac75b05868078303875f82fb4f0\niv = 2d4cead3f1120a2b4b59419d04951e20\nkey = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c\nmsg = afd73117330c6e8528a6e4\nresult = valid\n\n# tcId = 138\n# small plaintext size\nct = f4d298caea7c390fc8c7f558f584f852\niv = a10392634143c2a3332fa0fb3f72200a\nkey = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc\nmsg = 0ff54d6b6759120c2e8a51e3\nresult = valid\n\n# tcId = 139\n# small plaintext size\nct = 5e1c00e2ec829f92b87c6adf5c25262d\niv = 38b916a7ad3a9251ae3bd8865ca3a688\nkey = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8\nmsg = f0058d412a104e53d820b95a7f\nresult = valid\n\n# tcId = 140\n# small plaintext size\nct = bf3a04ddb2dbfe7c6dc9e15aa67be25d\niv = bfcc3ac44d12e42d780c1188ac64b57f\nkey = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19\nmsg = aacc36972f183057919ff57b49e1\nresult = valid\n\n# tcId = 141\n# small plaintext size\nct = fdcfa77f5bd09326b4c11f9281b72474\niv = 35bc82e3503b95044c6406a8b2c2ecff\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\n\n# tcId = 142\n# plaintext size > 16\nct = fbea776fb1653635f88e2937ed2450ba4e9063e96d7cdba04928f01cb85492fe\niv = 4b74bd981ea9d074757c3e2ef515e5fb\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg = d5247b8f6c3edcbfb1d591d13ece23d2f5\nresult = valid\n\n# tcId = 143\n# plaintext size > 16\nct = 3a79bb6084c7116b58afe52d7181a0aacee1caa11df959090e2e7b0073d74817\niv = 9a1d8ccc24c5e4d3995480af236be103\nkey = c2039f0d05951aa8d9fbdf68be58a37cf99bd1afcedda286a9db470c3729ca92\nmsg = ed5b5e28e9703bdf5c7b3b080f2690a605fcd0d9\nresult = valid\n\n# tcId = 144\n# plaintext size > 16\nct = 642b11efb79b49e5d038bc7aa29b8c6c3ce0bf11c3a69670eb565799908be66d\niv = 400aab92803bcbb44a96ef789655b34e\nkey = 4f097858a1aec62cf18f0966b2b120783aa4ae9149d3213109740506ae47adfe\nmsg = ee53d8e5039e82d9fcca114e375a014febfea117a7e709d9008d43858e3660\nresult = valid\n\n# tcId = 145\n# plaintext size > 16\nct = a9b051354f0cf61f11921b330e60f996de796aeb68140a0f9c5962e1f48e4805262fb6f53b26d9bb2fa0e359efe14734\niv = 6eedf45753ffe38f2407fbc28ab5959c\nkey = 5f99f7d60653d79f088dd07ef306b65e057d36e053fa1c9f6854425c019fd4df\nmsg = fcc9212c23675c5d69a1266c77389bc955e453daba20034aabbcd502a1b73e05af30f8b7622abdbc\nresult = valid\n\n# tcId = 146\n# plaintext size > 16\nct = 5074f46f1a6d0eeff070d623172eb15bbfc83e7d16466a00c9da5f4545eecf44adbf60cf9ac9aa1a3ec5eca22d4a34a7b21ca44d214c9d04ab1cb0b2c07001de9adb46f3c12f8f48436b516a409bf6cbdf1871dee3115d5cbb7943558b68867e\niv = f88551c6aa197f9ad80251c2e32d7663\nkey = 95aaa5df4ccb529e9b", - "2dc929e770c1f419f8e8933bfb36f632f532b3dcad2ba6\nmsg = f5735567b7c8312f116517788b091cc6cb1d474b010a77910154fd11c3b2f0cd19f713b63d66492e8cc7ee8ad714783f46c305a26416e11ff4b99ec5ce2550593cc5ec1b86ba6a66d10f82bdff827055\nresult = valid\n\n# tcId = 147\n# zero padding\nct = e07558d746574528fb813f34e3fb7719\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 148\n# zero padding\nct = c01af61276368818a8295f7d4b5bb2fd\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 149\n# zero padding\nct = 97dd9716f06be49160399a5b212250ae\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 150\n# zero padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce783bb4b4e18d7c646f38e0bb8ff92896\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 151\n# zero padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce64679a46621b792f643542a735f0bbbf\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 152\n# padding with 0xff\nct = c007ddffb76b95208505fe7f3be96172\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 153\n# padding with 0xff\nct = e9b7719c4c2b9fa6b94cb50e87b28156\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 154\n# padding with 0xff\nct = 77b31f474c4bd489dbadd532643d1fa5\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 155\n# padding with 0xff\nct = 8881e9e02fa9e3037b397957ba1fb7cea0166e9e1c0122cb2e2983fc0fac7176\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 156\n# padding with 0xff\nct = 8881e9e02fa9e3037b397957ba1fb7ce6f0effa789cbb0b875cc53cc8f7b3caf\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 157\n# bit padding\nct = 4dd5f910c94700235c9ed239160e34e2\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 158\n# bit padding\nct = 94d18b5923f8f3608ae7ad494fbb517e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 159\n# bit padding\nct = 0c92886dbcb030b873123a25d224da42\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 160\n# bit padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce851be67798a2937cd6681165da6dce03\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 161\n# bit padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce45658a37aaebc51098866b0894007e8e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 162\n# padding longer than 1 block\nct = 524236e25956e950713bec0d3d579068f34e4d18c4ccab081317dae526fe7fca\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 163\n# padding longer than 1 block\nct = d29eb845640c3a8878f51bc50e290aa4a65a34a93728fe8f82fdb8d3d2b7c648\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 164\n# padding longer than 1 block\nct = c34563be2952277c0f5c67ae1d6f847118730dd7f6a502ceef3c4bce5999f7aa\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the p", - "adding during decryption.\n\n# tcId = 165\n# padding longer than 1 block\nct = 8881e9e02fa9e3037b397957ba1fb7cec0f74a1aa92fd9c96f9d15d193d1695c1eb33486e269277612f90f509f0535c2\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 166\n# padding longer than 1 block\nct = 8881e9e02fa9e3037b397957ba1fb7ce151ade309ec5200bacdd83b57ce794cd2b3bf9f8957def829e8465f7db266f9e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 167\n# ANSI X.923 padding\nct = fb38cbef13f1d5be9c0ac7ed9cbe023c\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 168\n# ANSI X.923 padding\nct = 18cf8988abe9a2463a3a75db1fac8bcc\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 169\n# ANSI X.923 padding\nct = 8881e9e02fa9e3037b397957ba1fb7cee16d6fc4b4d3cdf6f915996e437fd4cc\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 170\n# ANSI X.923 padding\nct = 8881e9e02fa9e3037b397957ba1fb7cea8f41f61ead6e9936cbe7ee5a1163b9b\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 171\n# ISO 10126 padding\nct = a05c14da0109093c195b4998812fe150\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 172\n# ISO 10126 padding\nct = c477877250c8e4ca2869f35c4757cdb4\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 173\n# ISO 10126 padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce69f57c6e99c7b9df7d4879ccd15caf3d\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 174\n# ISO 10126 padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce77f89a247c928f147748ce6bc8fc4b67\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 175\n# padding longer than message\nct = 524236e25956e950713bec0d3d579068\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 176\n# padding longer than message\nct = e03b6f2ae1c963b6dfa40b42d34314b7\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 177\n# padding longer than message\nct = df14f4cbbccca57b9727d68270a1b6c1\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 178\n# padding longer than message\nct = 8881e9e02fa9e3037b397957ba1fb7ceea228bf1edd41c390e2eef140142bc00\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 179\n# padding longer than message\nct = 8881e9e02fa9e3037b397957ba1fb7ce3937e0e9abf7f672a34a500ba8e9099a\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 180\n# invalid padding\nct = 32ac6057df2a5d1e2e5131348c6ebc4e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 181\n# invalid padding\nct = df4a7c3b9f4756d30fca0d18e9b28960\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId = 182\n# invalid padding\nct = 8881e9e02fa9e3037b397957ba1fb7ceae2855c47c7988873d57f901e049494b\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n# tcId =", - " 183\n# invalid padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce0714c8de200b27ac91d9257fc93c13be\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\n# The ciphertext in this test vector is the message encrypted with an invalid or\n# unexpected padding. This allows to find implementations that are not properly\n# checking the padding during decryption.\n\n", +static const char *kData89[] = { + "# Imported from Wycheproof's aes_cbc_pkcs5_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-CBC-PKCS5\n# Generator version: 0.8r12\n\n[ivSize = 128]\n[keySize = 128]\n\n# tcId = 1\n# empty message\nct = b10ab60153276941361000414aed0a9d\niv = da9520f7d3520277035173299388bee2\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\n\n# tcId = 2\n# message size divisible by block size\nct = d1fa697f3e2e04d64f1a0da203813ca5bc226a0b1d42287b2a5b994a66eaf14a\niv = c9ee3cd746bf208c65ca9e72a266d54f\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\n\n# tcId = 3\n# message size divisible by block size\nct = 514cbc69aced506926deacdeb0cc0a5a07d540f65d825b65c7db0075cf930a06e0124ae598461cab0b3251baa853e377\niv = 8b2e86a9a185cfa6f51c7cc595b822bc\nkey = 9bd3902ed0996c869b572272e76f3889\nmsg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e\nresult = valid\n\n# tcId = 4\n# message size divisible by block size\nct = 137c824d7f7dc36f24216dde37c2e1c10cee533f6453de92e44b898fc3037d2e9e19d67a96387136dd9717a56e28614a5c177158f402ce2936fd98d1feb6a817\niv = 2717d10eb2eea3b39ec257e43307a260\nkey = 75ce184447cada672e02290310d224f7\nmsg = c774810a31a6421ad8eaafd5c22fa2455e2c167fee4a0b73ff927b2d96c69da1e939407b86b1c19bcfc69c434c3cf8a2\nresult = valid\n\n# tcId = 5\n# small plaintext size\nct = 599d77aca16910b42d8b4ac9560efe1b\niv = 155fd397579b0b5d991d42607f2cc9ad\nkey = e1e726677f4893890f8c027f9d8ef80d\nmsg = 3f\nresult = valid\n\n# tcId = 6\n# small plaintext size\nct = 74e20bf03a0ad4b49edc86a1b19c3d1d\niv = 4eb836be6808db264cb1111a3283b394\nkey = b151f491c4c006d1f28214aa3da9a985\nmsg = 27d9\nresult = valid\n\n# tcId = 7\n# small plaintext size\nct = 3f7a26558ba51cf352219d34c46907ae\niv = a8446c27ea9068d8d924d5c4eac91157\nkey = c36ff15f72777ee21deec07b63c1a0cd\nmsg = 50b428\nresult = valid\n\n# tcId = 8\n# small plaintext size\nct = c29d1463baccc558fd720c897da5bb98\niv = ef026d27da3702d7bb72e5e364a8f8f2\nkey = 32b9c5c78c3a0689a86052420fa1e8fc\nmsg = 0b9262ec\nresult = valid\n\n# tcId = 9\n# small plaintext size\nct = e24a717914f9cc8eaa1dc96f7840d6af\niv = c9defd3929dcd6c355c144e9750dd869\nkey = 43151bbaef367277ebfc97509d0aa49c\nmsg = eaa91273e7\nresult = valid\n\n# tcId = 10\n# small plaintext size\nct = f080e487f4e5b7aed793ea95ffe4bb30\niv = ce91e0454b0123f1ead0f158826459e9\nkey = 481440298525cc261f8159159aedf62d\nmsg = 6123c556c5cc\nresult = valid\n\n# tcId = 11\n# small plaintext size\nct = 27cadee413ed901f51c9366d731d95f6\niv = 1cb7bc8fe00523e7743d3cd9f483d6fe\nkey = 9ca26eb88731efbf7f810d5d95e196ac\nmsg = 7e48f06183aa40\nresult = valid\n\n# tcId = 12\n# small plaintext size\nct = 59bf12427b51a3aee0c9d3c540d04d24\niv = a345f084229dbfe0ceab6c6939571532\nkey = 48f0d03e41cc55c4b58f737b5acdea32\nmsg = f4a133aa6d5985a0\nresult = valid\n\n# tcId = 13\n# small plaintext size\nct = 1a0a18355f8ca4e6e2cf31da18d070da\niv = e5b6f73f132355b7be7d977bea068dfc\nkey = 1c958849f31996b28939ce513087d1be\nmsg = b0d2fee11b8e2f86b7\nresult = valid\n\n# tcId = 14\n# small plaintext size\nct = cef498ea61715a27f400418d1d5bfbf0\niv = c7cd10ca949ea03e7d4ba204b69e09b8\nkey = 39de0ebea97c09b2301a90009a423253\nmsg = 81e5c33b4c620852f044\nresult = valid\n\n# tcId = 15\n# small plaintext size\nct = 7ab43ddc45835ce40d2280bcea6a63f2\niv = bb8c9af30821dfeb7124392a554d9f01\nkey = 91656d8fc0aced60ddb1c4006d0dde53\nmsg = 7b3e440fe566790064b2ec\nresult = valid\n\n# tcId = 16\n# small plaintext size\nct = c70b457c945ad40895cf4c8be3ce7c66\niv = 54c3b90ca6e933f9094334d0263d3775\nkey = af7d5134720b5386158d51ea126e7cf9\nmsg = 7cc6fcc925c20f3c83b5567c\nresult = valid\n\n# tcId = 17\n# small plaintext size\nct = f9900afee2acfe63f8f15d81bbf64c39\niv = 9a2c5e91d4f0b9b9da64b46c5c2c8cb2\nkey = 4ed56753de6f75a032ebabca3ce27971\nmsg = 0c8c0f5619d9f8da5339281285\nresult = valid\n\n# tcId = 18\n# small plaintext size\nct = da4137bd8ac78e75a700b3de806f2d6f\niv = cf7951501104e1434309e6b936ec1742\nkey = beba50c936b696c15e25046dffb23a64\nmsg = 821ea8532fbabffb6e3d212e9b46\nresult = valid\n\n# tcId = 19\n# small plaintext size\nct = fed05321d11d978e2ec32527ecfce06c\niv = 90f5cf4fbfd2e2a1ab8eef402617bd5c\nkey = 501d81ebf912ddb87fbe3b7aac1437bc\nmsg = 2368e3c3636b5e8e94d2081adbf798\nresult = valid\n\n# tcId = 20\n# plaintext size > 16\nct = 8d55dc10584e243f55d2bdbb5758b7fabcd58c8d3785f01c7e3640b2a1dadcd9\niv = 54f2459e40e002763144f4752cde2fb5\nkey = 831e664c9e3f0c3094c0b27b9d908eb2\nmsg = 26603bb76dd0a0180791c4ed4d3b058807\nresult = valid\n\n# tcId = 21\n# plaintext size > 16\nct = e9199842355ea0c3dbf1b2a94fef1c802a95d024df9e407883cf5bf1f02c3cdc\niv = 088e01c2c65b26e7ad6af7b92ea09d73\nkey = cbffc6c8c7f76f46349c32d666f4efb0\nmsg = 6df067add738195fd55ac2e76b476971b9a0e6d8\nresult = valid\n\n# tcId = 22\n# plaintext size > 16\nct = 19beb4db2be0f3aff0083583038b2281a77c85b5f345ba4d2bc7f742a14f9247\niv = d9c9468796a2f5741b84d2d41430c5d3\nkey = fda6a01194beb462953d7e6c49b32dac\nmsg = f60ae3b036abcab78c98fc1d4b67970c0955cb6fe24483f8907fd73319679b\nresult = valid\n\n# tcId = 23\n# plaintext size > 16\nct = 84904fc92bd2e7590aa268e667370327b9446f41067dd40d3e5091a63a0d5687e4926e00cc3cb461c3b85d80ee2da818\niv = c98b47808add45c0c891983ec4b09846\nkey = efd9caa8ac68e9e29acdae57e93bcea8\nmsg = 3e1d2001f1e475b972738936443a5f51eedaf802a66fadf2406cfaadb0549149fcb9f485e534dc2d\nresult = valid\n\n# tcId = 24\n# plaintext size > 16\nct = 1d1391593a336be4b207295ad0542bc4ef2f39053066e12c38f71603f377fd42f4f0b2b5a42cdfeaee2af039f06fcf347abe171af3157ff07f3cdd3b33e11a60caecf9890325c132eeb66ab847278d165c26bca7c30486bb2fd83b63c5ff7ae0\niv = 08e9410de244d3f40607ebae38fa74e7\nkey = 37e4dbdc436258d5a9adb9f205c77cf3\nmsg = 24a874aec067116ad22eb55846ded3f5e86919a135585c929a86d92b2958fed110e52e33804887243584a6a94402cc9a105e0c940ec335bd2890f16dcce3fc8bd02873c80ade6f1ac08683130bcca454\nresult = valid\n\n# tcId = 25\n# zero padding\nct = aa62606a287476777b92d8e4c4e53028\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 26\n# zero padding\nct = ada437b682c92384b6c23ec10a21b3d8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 27\n# zero padding\nct = 26c5b3e540ee3dd6b52d14afd01a44f8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 28\n# zero padding\nct = fbcbdfdaaf17980be939c0b243266ecbc0deb417e98aba3ee12fea2921f8ae51\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 29\n# zero padding\nct = fbcbdfdaaf17980be939c0b243266ecb1188ff22f6563f6173440547d1e0dfd8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 30\n# padding with 0xff\nct = 726570a34cea08139d9f836579102a0e\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 31\n# padding with 0xff\nct = c8ef7ac3fd659ce7157d72a25f0a5048\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 32\n# padding with 0xff\nct = 6123c889bbc766acd4bca4cb982f9978\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 33\n# padding with 0xff\nct = fbcbdfdaaf17980be939c0b243266ecb442cd16f7410fca70924b573f7967e84\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 34\n# padding with 0xff\nct = fbcbdfdaaf17980be939c0b243266ecbb20f899b0e7c1d65b931af94b5c44c25\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 35\n# bit padding\nct = 50aeed98a820c5a037a5aa4d4ef3090b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 36\n# bit padding\nct = 25ee339006f948f42713543c", + "62467ef9\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 37\n# bit padding\nct = 97914574676ed5b8db0b6f3931195b3f\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 38\n# bit padding\nct = fbcbdfdaaf17980be939c0b243266ecb2874a1e2d28dd18e5573df9fd59fd789\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 39\n# bit padding\nct = fbcbdfdaaf17980be939c0b243266ecbb547c4fddbdcd3e02f438a2e48587594\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 40\n# padding longer than 1 block\nct = d17ccbb26f0aa95f397b20063547349bac24c5429cbea591e96595cccc11451b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 41\n# padding longer than 1 block\nct = fc07025e81d43efa85f92afdf8781b1e88598e12d6812df43733e93414b9e901\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 42\n# padding longer than 1 block\nct = deb1746f4e9e0be4a21825b071b6e93303031651e0c59091e2ae0fbcce11b987\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 43\n# padding longer than 1 block\nct = fbcbdfdaaf17980be939c0b243266ecb563d35096fde10ccb6f768438c9eb4ec90f399b76924c716e9f94143263306c6\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 44\n# padding longer than 1 block\nct = fbcbdfdaaf17980be939c0b243266ecbc8fd2e2c5362acf5212bd47859aa827d8469b87b0e6adafe3dba98c1885b6345\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 45\n# ANSI X.923 padding\nct = ca5dd2d09bd56eec9e8acaeca20af68e\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 46\n# ANSI X.923 padding\nct = 01e53a5ec9b0957c45f79ed0f4b2b982\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 47\n# ANSI X.923 padding\nct = fbcbdfdaaf17980be939c0b243266ecbd3909bb3457e5b946ff709be9a2ed84d\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 48\n# ANSI X.923 padding\nct = fbcbdfdaaf17980be939c0b243266ecbc5ab3ab637166a6a067b82b5672c08f8\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 49\n# ISO 10126 padding\nct = ba0726bd6dea11382b19c842e2ddead2\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 50\n# ISO 10126 padding\nct = 22f18b85c729903744fb8db5ed2840d4\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 51\n# ISO 10126 padding\nct = fbcbdfdaaf17980be939c0b243266ecb6b103fbe43519a18880b7e6d9153e1c2\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 52\n# ISO 10126 padding\nct = fbcbdfdaaf17980be939c0b243266ecbe00bdb15b8a61285447498700d35e0c6\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 53\n# padding longer than message\nct = d17ccbb26f0aa95f397b20063547349b\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 54\n# padding longer than message\nct = 2056dfa339fa00be6836999411a98c76\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 55\n# padding longer than message\nct = f92628f6418d8d9c9afac233861b3835\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 56\n# padding longer than message\nct = fbcbdfdaaf17980be939c0b243266ecbc0c41093b495a7d5a080d976493fd0e7\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 57\n# padding longer than message\nct = fbcbdfdaaf17980be939c0b243266ecb6770446a5ccaa26f7d4f970cc5834eba\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 58\n# invalid padding\nct = 4ff3e623fdd432608c183f40864177af\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 59\n# invalid padding\nct = 6a1ef1e6ae6a788777aabd9ccf3cf43a\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 60\n# invalid padding\nct = fbcbdfdaaf17980be939c0b243266ecbee1345cd513161b241f4ae2799b0327f\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 61\n# invalid padding\nct = fbcbdfdaaf17980be939c0b243266ecbe0d539beef6f2d4f7cda4fd9f4f05570\niv = 23468aa734f5f0f19827316ff168e94f\nkey = db4f3e5e3795cc09a073fa6a81e5a6bc\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n[ivSize = 128]\n[keySize = 192]\n\n# tcId = 62\n# empty message\nct = ff0c315873b4b1872abef2353b792ef0\niv = db20f9a6f4d6b4e478f1a4b9d4051d34\nkey = 3d6bf9edae6d881eade0ff8c7076a4835b71320c1f36b631\nmsg = \nresult = valid\n\n# tcId = 63\n# message size divisible by block size\nct = 7dbd573e4db58a318edfe29f199d8cda538a49f36486337c2711163e55fd5d0b\niv = 69a76dc4da64d89c580eb75ae975ec39\nkey = f4bfa5aa4f0f4d62cf736cd2969c43d580fdb92f2753bedb\nmsg = 0e239f239705b282ce2200fe20de1165\nresult = valid\n\n# tcId = 64\n# message size divisible by block size\nct = bd0258909e5b72438d95ca4b29c8a79c6228fd06a3b2fa06f7659654c7b24610f23f2fb16313b7d3614cb0cd16fabb8e\niv = 6525667350930fb945dd1895a3abfcd1\nkey = 9d11abc1fcb248a436598e695be12c3c2ed90a18ba09d62c\nmsg = aa5182cae2a8fb068c0b3fb2be3e57ae523d13dffd1a944587707c2b67447f3f\nresult = valid\n\n# tcId = 65\n# message size divisible by block size\nct = 6cbeacf8de25d7dd9dcdc087bf2f80873b1eb335400589076f8d2bf81e294c5d72b85eb8ac9558b0de9e9fbee4b18716e5220c507fbb9d319a08f67816765ca6\niv = 3943d8fddd5bb2a59772df31a31a8fff\nkey = 7e41d83181659a2c38da5ead353cdb04c2b4d4a3cfe58e25\nmsg = 8a32d11c7a11aa72e13381632b1310f4fd90fc209a6a350e61c069a561871214f9c04fc1df7354cbe4d8d639c525d324\nresult = valid\n\n# tcId = 66\n# small plaintext size\nct = 519925956d32e4fa350b1144f088e4e8\niv = 1379d48493f743e6a149deb3b9bab31e\nkey = 915429743435c28997a33b33b6574a953d81dae0e7032e6a\nmsg = 58\nresult = valid\n\n# tcId = 67\n# small plaintext size\nct = bfb90aa7de1bdeed5bdc5703bdfd9630\niv = 48c7f44b43a1279d820733e6cb30617a\nkey = f0c288ba26b284f9fb321b444a6517b3cdda1a799d55fdff\nmsg = 0f7e\nresult = valid\n\n# tcId = 68\n# small plaintext size\nct = b1a25816908c086f26037d10b7be9ad9\niv = 2c287b38cc30c8c351b087b91a6a97ba\nkey = 6b55e4d4fd6847a80a6bfb0dcc0aa93f9fd797fc5c50292e\nmsg = 33f530\nresult = valid\n\n# tcId = 69\n# small plaintext size\nct = 74dbdecbfa94b71d2d6ef03200c7d095\niv = 61f6060919c9c09ef06be28f39c344aa\nkey = 1eb21a9e995a8e45c9e71ecbd6fe615b3e0318007c64b644\nmsg = 3aa73c48\nresult = valid\n\n# tcId = 70\n# small plaintext size\nct = 10c860aaee23c3c3c1b9306b189dd80d\niv = 7682005907bf", + "ef3ce00196a17ad2246d\nkey = 710e2d5d4a9f0bc7e50796655e046a18cc5769d7764355da\nmsg = 7e4c690a88\nresult = valid\n\n# tcId = 71\n# small plaintext size\nct = 673dcd444386930a0cc577fab4501e5c\niv = 1f6c912997ce007701e5fdf407c6b421\nkey = d8c09ea400779b63e774bdacd0cb7b5dd6f736ca23d52acf\nmsg = e9520280973b\nresult = valid\n\n# tcId = 72\n# small plaintext size\nct = 059e5f72a81d8820add8eae8fabcdd42\niv = 5854033ae50de090678432781a168b6c\nkey = 8e67e9a0863b55bed408866f1cbc05357abe3f9d79f406f2\nmsg = 4880b412287a0b\nresult = valid\n\n# tcId = 73\n# small plaintext size\nct = c412159fd5ae20d771b7d2e734124d6a\niv = 003b2d86d8b636c58cf664565572d5e6\nkey = 28d8da67806410e5565bcc5a9d7ab9fb357413fa0158378c\nmsg = 004e3f4a4e6db955\nresult = valid\n\n# tcId = 74\n# small plaintext size\nct = 4aba571c2c5ab9a6140f16efc68c8ec1\niv = 3f22b50f888ab9424ba871d15aac55b7\nkey = dc968dd89fd602bb7eca6f3a8a13e4f59c08d02a514b1934\nmsg = 41a25354efeb1bc3b8\nresult = valid\n\n# tcId = 75\n# small plaintext size\nct = 66d1b9152a8cd1a88eab341c775070b4\niv = e4b8dde04b49fa6b88bfccd8d70c21d1\nkey = 7658951c0f620d82afd92756cc2d7983b79da3e56fdd1b78\nmsg = f0e82fb5c5666f4af49f\nresult = valid\n\n# tcId = 76\n# small plaintext size\nct = d9377788e2881a48f9347786db7df51f\niv = 7753f616cd8796c9b8a3bbfbe6cb1e7f\nkey = d9574c3a221b986690931faac5258d9d3c52362b2cb9b054\nmsg = 178ea8404ba54ee4e4522c\nresult = valid\n\n# tcId = 77\n# small plaintext size\nct = db825f4434ea3bb53576fa7385fb7dfe\niv = eae9ee19ccb7f8b087675709c4d35f73\nkey = 704409bab28085c44981f28f75dd143a4f747106f63f262e\nmsg = cda5709e7f115624e74ab031\nresult = valid\n\n# tcId = 78\n# small plaintext size\nct = 3e7287df2a5ed9de4d817e352bd47ea7\niv = a6aaff339a729d30a7ec1328db36d23e\nkey = d8d06ef6a53bbff5c8f12d791b8f4c67e574bf440736d1cc\nmsg = a1171eae1979f48345dd9485a0\nresult = valid\n\n# tcId = 79\n# small plaintext size\nct = 17c3ade4b469ae614760039a8fa6250e\niv = 92fda71e88c70d18ed71b992735a2150\nkey = 71129e781613f39d9ac39fbde2628b44c250c14deb5ef9e2\nmsg = 967593cc64bcbf7f3c58d04cb82b\nresult = valid\n\n# tcId = 80\n# small plaintext size\nct = 9cafecff2a28d02f732573f65a2cadca\niv = ed6596c86b98123ad2f3c573e974d051\nkey = 850fc859e9f7b89a367611dee6698f33962d8245ca8dc331\nmsg = 586f4f171af116519061a8e0e77940\nresult = valid\n\n# tcId = 81\n# plaintext size > 16\nct = 401ad889bdb9d38816c782e00b168ccccde9bf75f4be868ceb91237e8b37b750\niv = c45b52a240eba3bdde5dfd57f3d474fb\nkey = cfd3f68873d81a27d2bfce876c79f6e609074dec39e34614\nmsg = b1973cb25aa87ef9d1a8888b0a0f5c04c6\nresult = valid\n\n# tcId = 82\n# plaintext size > 16\nct = 455d516e87851e6c894578a0f7126e0acbc7cfbb1d80296647ab89a79dfa6f71\niv = 07ece5fe02266e073499fd4d66929034\nkey = b7f165bced1613da5e747fdf9255832d30c07f2deeb5a326\nmsg = 289647ea8d0ff31375a82aa1c620903048bb1d0e\nresult = valid\n\n# tcId = 83\n# plaintext size > 16\nct = cbf541330a5a9bda24984976b0cf96ba08ef521fa2cdb3df839128570e222ac4\niv = d799157bc1f77c182027be918b30783a\nkey = 9bbe6e004fb260dadb02b68b78954f1da5e6a2d02e0aeefe\nmsg = 665423092ce95b927e98b8082030f58e33f3ec1b0c29532c2f421855f00f97\nresult = valid\n\n# tcId = 84\n# plaintext size > 16\nct = 03225f08592efca14ad8ecf822465e8be4157465d0be150dd3d645b6fef1b19ca7bbaa5940b2a7895fa2b0ee55b0d4ec\niv = fdf97645e4192ba84728bbf6683f79de\nkey = 1381fbd5e79045d40f29790fc1a436c95b040a046ebf0b0f\nmsg = d575dce596dd0a2cd1c18dab7eb0948fafb8669969a48b6314493bfb8daf8acacd51382f9bb5b357\nresult = valid\n\n# tcId = 85\n# plaintext size > 16\nct = 27ad00313f328f0d3e6c3238ab560cb7243a9f54f7dff79b5a7a879439993d458017f09e8d3f694098bc19e61fe54085138664abb51a5b328cf2c9ce5d59726fff5e1b7553c143d9e0493c51cab23ff2ecdad91bd72bb12b32f3b611f9a4225d\niv = 059685f59247eea5d3f2a1532cb9d6b2\nkey = 1bb4ed0e8435e20729f48c1b7e3af6e69e4cebf0731131cf\nmsg = 6d29dab6a0568c961ab3c825e0d89940cef06c63ade7e557cd3e92792eaf23c8cd5a0f029c63b1cdce4754ccfad7a73c7c9e50ffe081e9136f5e9a424077339de12ea43572afe1b034e833e5887763aa\nresult = valid\n\n# tcId = 86\n# zero padding\nct = 2c010faa25c68c3b30b8c1491c316d5f\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 87\n# zero padding\nct = 818454d433154a8e00e8f590b8a1c38c\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 88\n# zero padding\nct = 0a7423fae3f4c8d4633f839d36f2e9ff\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 89\n# zero padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432e83f6e522c371e6e71bde539595b70b7\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 90\n# zero padding\nct = a7cfcdabcc5a2736a2708c1cb0b6143254d15f47701fa54f5957828f386e1d97\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 91\n# padding with 0xff\nct = 6ded36cc7603e514014dfb7199900676\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 92\n# padding with 0xff\nct = 839f772f8e5f50afdc02f954094869fe\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 93\n# padding with 0xff\nct = eefe3553c099c187929b287e54f95726\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 94\n# padding with 0xff\nct = a7cfcdabcc5a2736a2708c1cb0b61432d0531a2641d40467353542d79ce20ea8\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 95\n# padding with 0xff\nct = a7cfcdabcc5a2736a2708c1cb0b61432aaf08a090ecf66167ba5958100be7950\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 96\n# bit padding\nct = c0e402c8bbdda18c8ddd86470bd4b244\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 97\n# bit padding\nct = dc185d4572565e01131e471ec4c48125\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 98\n# bit padding\nct = 3ad1ddf3c3b320398785e6ec6544e9a2\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 99\n# bit padding\nct = a7cfcdabcc5a2736a2708c1cb0b614325876f90cfbbdbcd85e8252d37c44c638\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 100\n# bit padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432d18f57216b0e6426d911998a0e44156b\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 101\n# padding longer than 1 block\nct = f1605abb4e6628347c616da350fe243043a8d7b6aea244ca013f45241d802213\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 102\n# padding longer than 1 block\nct = a5f027fb9514ec8844534d452c940feb2c1807f57ed628156cf753f2ab698356\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 103\n# padding longer than 1 block\nct = f346fbc9744d723c42bbb2a4c934cdd4f1019e58c226cb2491fed621271a38f3\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = ", + "invalid\nflags = BadPadding\n\n# tcId = 104\n# padding longer than 1 block\nct = a7cfcdabcc5a2736a2708c1cb0b6143263eb325d36e13aa1d3dd1d7e071700104c7eb3e22e0859aa06296bc3194bb909\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 105\n# padding longer than 1 block\nct = a7cfcdabcc5a2736a2708c1cb0b61432219485d41584bd110a6d7a9cad472815d93921c48d4bcb509fdf2e63d7627c37\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 106\n# ANSI X.923 padding\nct = 215571a18a70140f3a0fd4c1b2dd6316\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 107\n# ANSI X.923 padding\nct = 2529985ec0ec3cf4bd22746e00d7bdc6\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 108\n# ANSI X.923 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614329a8058657ac4a150e995cf83efccf051\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 109\n# ANSI X.923 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614328a068626780ba600f880bd5323f8ac15\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 110\n# ISO 10126 padding\nct = 13e75f9ffe2afa81b9a2e7faf74aab6d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 111\n# ISO 10126 padding\nct = a382197fe491f5c3f91b629dc47c3d58\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 112\n# ISO 10126 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614320b842e5d6e32660263ff814a0277659f\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 113\n# ISO 10126 padding\nct = a7cfcdabcc5a2736a2708c1cb0b614321d2f736515cfe17921800eb392e0139d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 114\n# padding longer than message\nct = f1605abb4e6628347c616da350fe2430\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 115\n# padding longer than message\nct = b3602ff0f797cbbdde35105d27e55b94\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 116\n# padding longer than message\nct = 0334c1bc34b597f60a639e74d8b45c4e\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 117\n# padding longer than message\nct = a7cfcdabcc5a2736a2708c1cb0b61432c3f9fe42d9715035bcda97d27405ced7\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 118\n# padding longer than message\nct = a7cfcdabcc5a2736a2708c1cb0b61432362b014a9abdaf25ae1f6dfb99d03d9d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 119\n# invalid padding\nct = 97ab405b86c388f144cf74fbb9358493\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 120\n# invalid padding\nct = 691f6009802f0fb4920928db7eca1349\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 121\n# invalid padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432a99fc96a6fa0c9fcb18de1672d74914d\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 122\n# invalid padding\nct = a7cfcdabcc5a2736a2708c1cb0b61432dd1bb2e98102322fb1aa92c979d4c7c3\niv = a3fe6f76e8f582830bbe83574a7bb729\nkey = 9e20311eaf2eaf3e3a04bc52564e67313c84940a2996e3f2\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n[ivSize = 128]\n[keySize = 256]\n\n# tcId = 123\n# empty message\nct = e7c166554d1bb32792c981fa674cc4d8\niv = eb38ef61717e1324ae064e86f1c3e797\nkey = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97\nmsg = \nresult = valid\n\n# tcId = 124\n# message size divisible by block size\nct = 299295be47e9f5441fe83a7a811c4aeb2650333e681e69fa6b767d28a6ccf282\niv = 9ec7b863ac845cad5e4673da21f5b6a9\nkey = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd\nmsg = cc37fae15f745a2f40e2c8b192f2b38d\nresult = valid\n\n# tcId = 125\n# message size divisible by block size\nct = a615a39ff8f59f82cf72ed13e1b01e32459700561be112412961365c7a0b58aa7a16d68c065e77ebe504999051476bd7\niv = e70d83a77a2ce722ac214c00837acedf\nkey = 96e1e4896fb2cd05f133a6a100bc5609a7ac3ca6d81721e922dadd69ad07a892\nmsg = 91a17e4dfcc3166a1add26ff0e7c12056e8a654f28a6de24f4ba739ceb5b5b18\nresult = valid\n\n# tcId = 126\n# message size divisible by block size\nct = ed3ed8ecdbabc0a8c06259e913f3ab9a1f1dc6d05e5dfdd9c80e1008f3423064d540681291bbd3e159820fee3ff190a68fe506d8ab9e62c8e7b3816093336dbc\niv = bd003c0a9d804c29f053a77cb380cb47\nkey = 649e373e681ef52e3c10ac265484750932a9918f28fb824f7cb50adab39781fe\nmsg = 39b447bd3a01983c1cb761b456d69000948ceb870562a536126a0d18a8e7e49b16de8fe672f13d0808d8b7d957899917\nresult = valid\n\n# tcId = 127\n# small plaintext size\nct = 42c0b89a706ed2606cd94f9cb361fa51\niv = 014d2e13dfbcb969ba3bb91442d52eca\nkey = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc\nmsg = 40\nresult = valid\n\n# tcId = 128\n# small plaintext size\nct = b90c326b72eb222ddb4dae47f2bc223c\niv = fae3e2054113f6b3b904aadbfe59655c\nkey = ea3b016bdd387dd64d837c71683808f335dbdc53598a4ea8c5f952473fafaf5f\nmsg = 6601\nresult = valid\n\n# tcId = 129\n# small plaintext size\nct = 567c45c5e6d570bef583d21cac43757d\niv = 203cd3e0068e43d38b6f2e48a188f252\nkey = 73d4709637857dafab6ad8b2b0a51b06524717fedf100296644f7cfdaae1805b\nmsg = f1d300\nresult = valid\n\n# tcId = 130\n# small plaintext size\nct = c45afe62fc9351ad0fc9b03bc2f3a91f\niv = abcf220eede012279c3a2d33295ff273\nkey = d5c81b399d4c0d1583a13da56de6d2dc45a66e7b47c24ab1192e246dc961dd77\nmsg = 2ae63cbf\nresult = valid\n\n# tcId = 131\n# small plaintext size\nct = 281fa533d0740cc6cdf94dd1a5f7402d\niv = 01373953578902909ae4f6cb0a72587c\nkey = 2521203fa0dddf59d837b2830f87b1aa61f958155df3ca4d1df2457cb4284dc8\nmsg = af3a015ea1\nresult = valid\n\n# tcId = 132\n# small plaintext size\nct = 3f3f39697bd7e88d85a14132be1cbc48\niv = 3fb0d5ecd06c71150748b599595833cb\nkey = 665a02bc265a66d01775091da56726b6668bfd903cb7af66fb1b78a8a062e43c\nmsg = 3f56935def3f\nresult = valid\n\n# tcId = 133\n# small plaintext size\nct = 379990d91557614836381d5026fa04a0\niv = 27a2db6114ece34fb6c23302d9ba07c6\nkey = facd75b22221380047305bc981f570e2a1af38928ea7e2059e3af5fc6b82b493\nmsg = 57bb86beed156f\nresult = valid\n\n# tcId = 134\n# small plaintext size\nct = 7ecefe24caa78a68f4031d40fdb9a43a\niv = 9b2b631e3f24bdc814a14abb3416059e\nkey = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5\nmsg = 2e4e7ef728fe11af\nresult = valid\n\n# tcId = 135\n# small plaintext size\nct = ffe4ec8baf4af40ab2e7f4d6193fae9c\niv = 92cfc4eb146b18b73fc76483fc5e1229\nkey = f942093842808ba47f64e427f7351dde6b9546e66de4e7d60aa6f328182712cf\nmsg = 852a21d92848e627c7\nresult = valid\n\n# tcId = 136\n# small plaintext size\nct = ef96215e7950e7be8aae78b9ec8aaf39\niv = 4ceed8dcb75b6259dad737bdef96f0", + "99\nkey = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4\nmsg = 195a3b292f93baff0a2c\nresult = valid\n\n# tcId = 137\n# small plaintext size\nct = 4ed0eac75b05868078303875f82fb4f0\niv = 2d4cead3f1120a2b4b59419d04951e20\nkey = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c\nmsg = afd73117330c6e8528a6e4\nresult = valid\n\n# tcId = 138\n# small plaintext size\nct = f4d298caea7c390fc8c7f558f584f852\niv = a10392634143c2a3332fa0fb3f72200a\nkey = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc\nmsg = 0ff54d6b6759120c2e8a51e3\nresult = valid\n\n# tcId = 139\n# small plaintext size\nct = 5e1c00e2ec829f92b87c6adf5c25262d\niv = 38b916a7ad3a9251ae3bd8865ca3a688\nkey = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8\nmsg = f0058d412a104e53d820b95a7f\nresult = valid\n\n# tcId = 140\n# small plaintext size\nct = bf3a04ddb2dbfe7c6dc9e15aa67be25d\niv = bfcc3ac44d12e42d780c1188ac64b57f\nkey = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19\nmsg = aacc36972f183057919ff57b49e1\nresult = valid\n\n# tcId = 141\n# small plaintext size\nct = fdcfa77f5bd09326b4c11f9281b72474\niv = 35bc82e3503b95044c6406a8b2c2ecff\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\n\n# tcId = 142\n# plaintext size > 16\nct = fbea776fb1653635f88e2937ed2450ba4e9063e96d7cdba04928f01cb85492fe\niv = 4b74bd981ea9d074757c3e2ef515e5fb\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg = d5247b8f6c3edcbfb1d591d13ece23d2f5\nresult = valid\n\n# tcId = 143\n# plaintext size > 16\nct = 3a79bb6084c7116b58afe52d7181a0aacee1caa11df959090e2e7b0073d74817\niv = 9a1d8ccc24c5e4d3995480af236be103\nkey = c2039f0d05951aa8d9fbdf68be58a37cf99bd1afcedda286a9db470c3729ca92\nmsg = ed5b5e28e9703bdf5c7b3b080f2690a605fcd0d9\nresult = valid\n\n# tcId = 144\n# plaintext size > 16\nct = 642b11efb79b49e5d038bc7aa29b8c6c3ce0bf11c3a69670eb565799908be66d\niv = 400aab92803bcbb44a96ef789655b34e\nkey = 4f097858a1aec62cf18f0966b2b120783aa4ae9149d3213109740506ae47adfe\nmsg = ee53d8e5039e82d9fcca114e375a014febfea117a7e709d9008d43858e3660\nresult = valid\n\n# tcId = 145\n# plaintext size > 16\nct = a9b051354f0cf61f11921b330e60f996de796aeb68140a0f9c5962e1f48e4805262fb6f53b26d9bb2fa0e359efe14734\niv = 6eedf45753ffe38f2407fbc28ab5959c\nkey = 5f99f7d60653d79f088dd07ef306b65e057d36e053fa1c9f6854425c019fd4df\nmsg = fcc9212c23675c5d69a1266c77389bc955e453daba20034aabbcd502a1b73e05af30f8b7622abdbc\nresult = valid\n\n# tcId = 146\n# plaintext size > 16\nct = 5074f46f1a6d0eeff070d623172eb15bbfc83e7d16466a00c9da5f4545eecf44adbf60cf9ac9aa1a3ec5eca22d4a34a7b21ca44d214c9d04ab1cb0b2c07001de9adb46f3c12f8f48436b516a409bf6cbdf1871dee3115d5cbb7943558b68867e\niv = f88551c6aa197f9ad80251c2e32d7663\nkey = 95aaa5df4ccb529e9b2dc929e770c1f419f8e8933bfb36f632f532b3dcad2ba6\nmsg = f5735567b7c8312f116517788b091cc6cb1d474b010a77910154fd11c3b2f0cd19f713b63d66492e8cc7ee8ad714783f46c305a26416e11ff4b99ec5ce2550593cc5ec1b86ba6a66d10f82bdff827055\nresult = valid\n\n# tcId = 147\n# zero padding\nct = e07558d746574528fb813f34e3fb7719\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 148\n# zero padding\nct = c01af61276368818a8295f7d4b5bb2fd\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 149\n# zero padding\nct = 97dd9716f06be49160399a5b212250ae\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 150\n# zero padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce783bb4b4e18d7c646f38e0bb8ff92896\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 151\n# zero padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce64679a46621b792f643542a735f0bbbf\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 152\n# padding with 0xff\nct = c007ddffb76b95208505fe7f3be96172\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 153\n# padding with 0xff\nct = e9b7719c4c2b9fa6b94cb50e87b28156\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 154\n# padding with 0xff\nct = 77b31f474c4bd489dbadd532643d1fa5\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 155\n# padding with 0xff\nct = 8881e9e02fa9e3037b397957ba1fb7cea0166e9e1c0122cb2e2983fc0fac7176\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 156\n# padding with 0xff\nct = 8881e9e02fa9e3037b397957ba1fb7ce6f0effa789cbb0b875cc53cc8f7b3caf\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 157\n# bit padding\nct = 4dd5f910c94700235c9ed239160e34e2\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 158\n# bit padding\nct = 94d18b5923f8f3608ae7ad494fbb517e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 159\n# bit padding\nct = 0c92886dbcb030b873123a25d224da42\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 160\n# bit padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce851be67798a2937cd6681165da6dce03\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 161\n# bit padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce45658a37aaebc51098866b0894007e8e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 162\n# padding longer than 1 block\nct = 524236e25956e950713bec0d3d579068f34e4d18c4ccab081317dae526fe7fca\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 163\n# padding longer than 1 block\nct = d29eb845640c3a8878f51bc50e290aa4a65a34a93728fe8f82fdb8d3d2b7c648\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 164\n# padding longer than 1 block\nct = c34563be2952277c0f5c67ae1d6f847118730dd7f6a502ceef3c4bce5999f7aa\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 165\n# padding longer than 1 block\nct = 8881e9e02fa9e3037b397957ba1fb7cec0f74a1aa92fd9c96f9d15d193d1695c1eb33486e269277612f90f509f0535c2\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 166\n# padding longer than 1 block\nct = 8881e9e02fa9e3037b397957ba1fb7ce151ade309ec5200bacdd83b57ce794cd2b3bf9f8957def829e8465f7db266f9e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey ", + "= 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 167\n# ANSI X.923 padding\nct = fb38cbef13f1d5be9c0ac7ed9cbe023c\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 168\n# ANSI X.923 padding\nct = 18cf8988abe9a2463a3a75db1fac8bcc\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 169\n# ANSI X.923 padding\nct = 8881e9e02fa9e3037b397957ba1fb7cee16d6fc4b4d3cdf6f915996e437fd4cc\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 170\n# ANSI X.923 padding\nct = 8881e9e02fa9e3037b397957ba1fb7cea8f41f61ead6e9936cbe7ee5a1163b9b\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 171\n# ISO 10126 padding\nct = a05c14da0109093c195b4998812fe150\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 172\n# ISO 10126 padding\nct = c477877250c8e4ca2869f35c4757cdb4\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 173\n# ISO 10126 padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce69f57c6e99c7b9df7d4879ccd15caf3d\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 174\n# ISO 10126 padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce77f89a247c928f147748ce6bc8fc4b67\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 175\n# padding longer than message\nct = 524236e25956e950713bec0d3d579068\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 176\n# padding longer than message\nct = e03b6f2ae1c963b6dfa40b42d34314b7\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 177\n# padding longer than message\nct = df14f4cbbccca57b9727d68270a1b6c1\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 303132333435363738396162636465\nresult = invalid\nflags = BadPadding\n\n# tcId = 178\n# padding longer than message\nct = 8881e9e02fa9e3037b397957ba1fb7ceea228bf1edd41c390e2eef140142bc00\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 179\n# padding longer than message\nct = 8881e9e02fa9e3037b397957ba1fb7ce3937e0e9abf7f672a34a500ba8e9099a\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n# tcId = 180\n# invalid padding\nct = 32ac6057df2a5d1e2e5131348c6ebc4e\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = \nresult = invalid\nflags = BadPadding\n\n# tcId = 181\n# invalid padding\nct = df4a7c3b9f4756d30fca0d18e9b28960\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 6162636465666768\nresult = invalid\nflags = BadPadding\n\n# tcId = 182\n# invalid padding\nct = 8881e9e02fa9e3037b397957ba1fb7ceae2855c47c7988873d57f901e049494b\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 30313233343536373839414243444546\nresult = invalid\nflags = BadPadding\n\n# tcId = 183\n# invalid padding\nct = 8881e9e02fa9e3037b397957ba1fb7ce0714c8de200b27ac91d9257fc93c13be\niv = f010f61c31c9aa8fa0d5be5f6b0f2f70\nkey = 7c78f34dbce8f0557d43630266f59babd1cb92ba624bd1a8f45a2a91c84a804a\nmsg = 3031323334353637383941424344454647\nresult = invalid\nflags = BadPadding\n\n", }; -static const size_t kLen57 = 49978; +static const size_t kLen90 = 52732; -static const char *kData57[] = { - "# Imported from Wycheproof's aes_cmac_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-CMAC\n# Generator version: 0.4.12\n\n[keySize = 128]\n[tagSize = 96]\n\n# tcId = 1\n# empty message\nkey = 1607559459d30d33548a635ab1eeab9d\nmsg = \nresult = valid\ntag = 6a8974470fddb0a47e2b6e7d\n\n# tcId = 2\n# truncated mac\nkey = 994275465065fdc96ae37b5d2feb8726\nmsg = c6\nresult = valid\ntag = 3bfa9ec0fb0cc2b8509e7b1f\n\n# tcId = 3\n# truncated mac\nkey = ddc31fc7751a2bf5c8d2d815035622e8\nmsg = c81598f30b3e8ca8\nresult = valid\ntag = 323c2fd67f1bc85108f391e1\n\n# tcId = 4\n# truncated mac\nkey = acef13560296fdc6b09398ae04196f2b\nmsg = 25d99a552339745e24a0cb6a9669c4\nresult = valid\ntag = cdff8af899f61a70a97d967a\n\n# tcId = 5\n# truncated mac\nkey = 33defac4ec7c7b69aa72edb23119e619\nmsg = ceabee3f13d0718779ba86acccd6d5a9\nresult = valid\ntag = e0b19f7e0316f276a846115f\n\n# tcId = 6\n# truncated mac\nkey = d1c61c251def47b39deb1a77a8b188d9\nmsg = 0d68e86cf139677cb461a0fa76690e4afc\nresult = valid\ntag = 2c5f2629fa41555e84c0ef0c\n\n# tcId = 7\n# truncated mac\nkey = 3f71e3875f234fc569433cafa3a36330\nmsg = a3e01e9a597e57502fd849908aa7a19407cbfdc74bc5c485\nresult = valid\ntag = eb8e0bb4937e4a4f9fd55465\n\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 8\n# empty message\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\ntag = d47afca1d857a5933405b1eb7a5cb7af\n\n# tcId = 9\n# full length mac\nkey = e1e726677f4893890f8c027f9d8ef80d\nmsg = 3f\nresult = valid\ntag = 15f856bbed3b321952a584b3c4437a63\n\n# tcId = 10\n# full length mac\nkey = 48f0d03e41cc55c4b58f737b5acdea32\nmsg = f4a133aa6d5985a0\nresult = valid\ntag = 1f1cd0327c02e6d00086915937dd61d9\n\n# tcId = 11\n# full length mac\nkey = 501d81ebf912ddb87fbe3b7aac1437bc\nmsg = 2368e3c3636b5e8e94d2081adbf798\nresult = valid\ntag = aeb784a3825168ddd61f72d0202125e6\n\n# tcId = 12\n# full length mac\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\ntag = 40facf0e2fb51b73a7472681b033d6dc\n\n# tcId = 13\n# full length mac\nkey = 831e664c9e3f0c3094c0b27b9d908eb2\nmsg = 26603bb76dd0a0180791c4ed4d3b058807\nresult = valid\ntag = a8144c8b24f2aa47d9c160cff4ab1716\n\n# tcId = 14\n# full length mac\nkey = 549bd282ee21b4d7c3b1d02e3ee20ef7\nmsg = d84bf73c5eecbd38444f1a73556e2fa3253f4c54d6916545\nresult = valid\ntag = 7ed458afe02f4a513f59715b664b1bbe\n\n# tcId = 15\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 16\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43802eb1931f0032afe984443738cd31\n\n# tcId = 17\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 18\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 95dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 19\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 40802eb1931f0032afe984443738cd31\n\n# tcId = 20\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 79cfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 21\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 17dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 22\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = c2802eb1931f0032afe984443738cd31\n\n# tcId = 23\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fbcfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 24\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dc6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 25\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42812eb1931f0032afe984443738cd31\n\n# tcId = 26\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcebbca7a2ea68b966fc5399f74809e\n\n# tcId = 27\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6eda882cbd564c39ae7d1c5a31aa\n\n# tcId = 28\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802e31931f0032afe984443738cd31\n\n# tcId = 29\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbb4a7a2ea68b966fc5399f74809e\n\n# tcId = 30\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a892cbd564c39ae7d1c5a31aa\n\n# tcId = 31\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1921f0032afe984443738cd31\n\n# tcId = 32\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7b2ea68b966fc5399f74809e\n\n# tcId = 33\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a8a2cbd564c39ae7d1c5a31aa\n\n# tcId = 34\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1911f0032afe984443738cd31\n\n# tcId = 35\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca782ea68b966fc5399f74809e\n\n# tcId = 36\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbdd64c39ae7d1c5a31aa\n\n# tcId = 37\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00b2afe984443738cd31\n\n# tcId = 38\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea60b966fc5399f74809e\n\n# tcId = 39\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564d39ae7d1c5a31aa\n\n# tcId = 40\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032aee984443738cd31\n\n# tcId = 41\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b976fc5399f74809e\n\n# tcId = 42\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd56cc39ae7d1c5a31aa\n\n# tcId = 43\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00322fe984443738cd31\n\n# tcId = 44\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b166fc5399f74809e\n\n# tcId = 45\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c19ae7d1c5a31aa\n\n# tcId = 46\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afc984443738cd31\n\n# tcId = 47\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b964fc5399f74809e\n\n# tcId = 48\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39af7d1c5a31aa\n\n# tcId = 49\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe985443738cd31\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc4399f74809e\n\n# tcId = 51\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1d5a31aa\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443638cd31\n\n# tcId = 53\n# ", - "Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399e74809e\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1e5a31aa\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443538cd31\n\n# tcId = 56\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399d74809e\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d9c5a31aa\n\n# tcId = 58\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe98444b738cd31\n\n# tcId = 59\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5391f74809e\n\n# tcId = 60\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31ab\n\n# tcId = 61\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd30\n\n# tcId = 62\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74809f\n\n# tcId = 63\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31a8\n\n# tcId = 64\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd33\n\n# tcId = 65\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74809c\n\n# tcId = 66\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31ea\n\n# tcId = 67\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd71\n\n# tcId = 68\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f7480de\n\n# tcId = 69\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a312a\n\n# tcId = 70\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cdb1\n\n# tcId = 71\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74801e\n\n# tcId = 72\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dd6e5a882cbd564d39ae7d1c5a31aa\n\n# tcId = 73\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43802eb1931f0032aee984443738cd31\n\n# tcId = 74\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acfbbca7a2ea68b976fc5399f74809e\n\n# tcId = 75\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6eda882cbdd64c39ae7d1c5a31aa\n\n# tcId = 76\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802e31931f00b2afe984443738cd31\n\n# tcId = 77\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbb4a7a2ea60b966fc5399f74809e\n\n# tcId = 78\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbdd64c39ae7d1c5a312a\n\n# tcId = 79\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00b2afe984443738cdb1\n\n# tcId = 80\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea60b966fc5399f74801e\n\n# tcId = 81\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 682291a577d342a9b3c65182e3a5ce55\n\n# tcId = 82\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = bd7fd14e6ce0ffcd50167bbbc8c732ce\n\n# tcId = 83\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8430443585d1597469903ac6608b7f61\n\n# tcId = 84\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 85\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 86\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 87\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 88\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 89\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 90\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 175deeda08ac3dd6ccb92efd9cdab12a\n\n# tcId = 91\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = c200ae31139f80b22f6904c4b7b84db1\n\n# tcId = 92\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fb4f3b4afaae260b16ef45b91ff4001e\n\n# tcId = 93\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dc6f5b892dbc574d38af7c1d5b30ab\n\n# tcId = 94\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43812fb0921e0133aee885453639cc30\n\n# tcId = 95\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acebacb7b2fa78a976ec4389e75819f\n\n[keySize = 192]\n[tagSize = 96]\n\n# tcId = 96\n# empty message\nkey = 78fe7087bc810abf08f15fc69804f888435a6442677c8c79\nmsg = \nresult = valid\ntag = 48d92d311f60d51a23e56d8c\n\n# tcId = 97\n# truncated mac\nkey = 7ab6fb0e3456e40c3a6c5db57a3d0548d4c8c3cfd8849dba\nmsg = c6\nresult = valid\ntag = d904a70715bd0ad9468f37b2\n\n# tcId = 98\n# truncated mac\nkey = f095a5d39f0b499cef0130b4eb3bfae90253a1f30270efb5\nmsg = 738e196c2cb0206b\nresult = valid\ntag = 7a3b8de1c57e7c5f7babbe42\n\n# tcId = 99\n# truncated mac\nkey = 6fee9e028a35d168ffe2062338f753d3930597b341210f0c\nmsg = a1518bb8cb88f305935b91f64f2479\nresult = valid\ntag = 7ba264b276a0849bc76a2a29\n\n# tcId = 100\n# truncated mac\nkey = 304b9077a8f36fd949e38bbfb6dd71e313530ba0a34d3e77\nmsg = 87e60924ae7f2ae1567cbcb07f7ae2aa\nresult = valid\ntag = 725e51ac5b10338d940c0236\n\n# tcId = 101\n# truncated mac\nkey = fec7f37de35365c415701ba2eec2d94cb20e3e2a0c21cfcf\nmsg = cf24271e0acebd3249f996da1fe9d13e3f\nresult = valid\ntag = 7636cec43b5b7a40787580fa\n\n# tcId = 102\n# truncated mac\nkey = 5f4df68a45a5edde95907b5b002fcf3ba6747f9194536dd3\nmsg = 4cc781faaa8decb281afab7dc69f380921d04c54414bb65f\nresult = valid\ntag = bb2de41c514dd64ebc5f5a99\n\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 103\n# empty message\nkey = 3d6bf9edae6d881eade0ff8c7076a4835b71320c1f36b631\nmsg = \nresult = valid\ntag = a8dd15fe2ce3495ec5b666744ec29220\n\n# tcId = 104\n# full length mac\nkey = 915429743435c28997a33b33b6574a953d81dae0e7032e6a\nmsg = 58\nresult = va", - "lid\ntag = e13b3f7f7f510c3a059df7a68c7e2ad5\n\n# tcId = 105\n# full length mac\nkey = 28d8da67806410e5565bcc5a9d7ab9fb357413fa0158378c\nmsg = 004e3f4a4e6db955\nresult = valid\ntag = c4c2c0876be9eabeb5a956da53846b08\n\n# tcId = 106\n# full length mac\nkey = 850fc859e9f7b89a367611dee6698f33962d8245ca8dc331\nmsg = 586f4f171af116519061a8e0e77940\nresult = valid\ntag = fb11a360c9776991d73d6e41d07710a2\n\n# tcId = 107\n# full length mac\nkey = f4bfa5aa4f0f4d62cf736cd2969c43d580fdb92f2753bedb\nmsg = 0e239f239705b282ce2200fe20de1165\nresult = valid\ntag = ab20a6cf60873665b1d6999b05c7f9c6\n\n# tcId = 108\n# full length mac\nkey = cfd3f68873d81a27d2bfce876c79f6e609074dec39e34614\nmsg = b1973cb25aa87ef9d1a8888b0a0f5c04c6\nresult = valid\ntag = b95a016b83a0ae4194023333c8a7345a\n\n# tcId = 109\n# full length mac\nkey = 648a44468d67bb6744b235ee7a3fcd6ed4bdc29ec5b5fa1a\nmsg = c59d0d6981cca1be1d5519fc7881e6d230f39f6c12a9e827\nresult = valid\ntag = a1b96272ae7f9aef567271795f21d1d3\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ed12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 111\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c81307df60859acb911c7be61be7ca90\n\n# tcId = 112\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f91bde0069a6e389573bf04e7cde688c\n\n# tcId = 113\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ee12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 114\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = cb1307df60859acb911c7be61be7ca90\n\n# tcId = 115\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fa1bde0069a6e389573bf04e7cde688c\n\n# tcId = 116\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 6c12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 117\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 491307df60859acb911c7be61be7ca90\n\n# tcId = 118\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 781bde0069a6e389573bf04e7cde688c\n\n# tcId = 119\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec13390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 120\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91207df60859acb911c7be61be7ca90\n\n# tcId = 121\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81ade0069a6e389573bf04e7cde688c\n\n# tcId = 122\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12398ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 123\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c913075f60859acb911c7be61be7ca90\n\n# tcId = 124\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde8069a6e389573bf04e7cde688c\n\n# tcId = 125\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea1a7ed15d9d37a6eca1fc990\n\n# tcId = 126\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df61859acb911c7be61be7ca90\n\n# tcId = 127\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0068a6e389573bf04e7cde688c\n\n# tcId = 128\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea2a7ed15d9d37a6eca1fc990\n\n# tcId = 129\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df62859acb911c7be61be7ca90\n\n# tcId = 130\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde006ba6e389573bf04e7cde688c\n\n# tcId = 131\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed95d9d37a6eca1fc990\n\n# tcId = 132\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859a4b911c7be61be7ca90\n\n# tcId = 133\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e309573bf04e7cde688c\n\n# tcId = 134\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d8d37a6eca1fc990\n\n# tcId = 135\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb901c7be61be7ca90\n\n# tcId = 136\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389563bf04e7cde688c\n\n# tcId = 137\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed1559d37a6eca1fc990\n\n# tcId = 138\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb111c7be61be7ca90\n\n# tcId = 139\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389d73bf04e7cde688c\n\n# tcId = 140\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9f37a6eca1fc990\n\n# tcId = 141\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb913c7be61be7ca90\n\n# tcId = 142\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389571bf04e7cde688c\n\n# tcId = 143\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37b6eca1fc990\n\n# tcId = 144\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7ae61be7ca90\n\n# tcId = 145\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf14e7cde688c\n\n# tcId = 146\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6ecb1fc990\n\n# tcId = 147\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61ae7ca90\n\n# tcId = 148\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7dde688c\n\n# tcId = 149\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6ec81fc990\n\n# tcId = 150\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be619e7ca90\n\n# tcId = 151\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7ede688c\n\n# tcId = 152\n# Flipped bit 103 in ta", - "g\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6e4a1fc990\n\n# tcId = 153\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be69be7ca90\n\n# tcId = 154\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04efcde688c\n\n# tcId = 155\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc991\n\n# tcId = 156\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7ca91\n\n# tcId = 157\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde688d\n\n# tcId = 158\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc992\n\n# tcId = 159\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7ca92\n\n# tcId = 160\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde688e\n\n# tcId = 161\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc9d0\n\n# tcId = 162\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7cad0\n\n# tcId = 163\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde68cc\n\n# tcId = 164\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc910\n\n# tcId = 165\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7ca10\n\n# tcId = 166\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde680c\n\n# tcId = 167\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ed12390ea0a7ed15d8d37a6eca1fc990\n\n# tcId = 168\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c81307df60859acb901c7be61be7ca90\n\n# tcId = 169\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f91bde0069a6e389563bf04e7cde688c\n\n# tcId = 170\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12398ea0a7ed95d9d37a6eca1fc990\n\n# tcId = 171\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c913075f60859a4b911c7be61be7ca90\n\n# tcId = 172\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde8069a6e309573bf04e7cde688c\n\n# tcId = 173\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed95d9d37a6eca1fc910\n\n# tcId = 174\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859a4b911c7be61be7ca10\n\n# tcId = 175\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e309573bf04e7cde680c\n\n# tcId = 176\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 13edc6f15f5812ea262c859135e0366f\n\n# tcId = 177\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 36ecf8209f7a65346ee38419e418356f\n\n# tcId = 178\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 07e421ff96591c76a8c40fb183219773\n\n# tcId = 179\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 180\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 181\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 182\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 183\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 184\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 185\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 6c92b98e20276d955953faee4a9f4910\n\n# tcId = 186\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 4993875fe0051a4b119cfb669b674a10\n\n# tcId = 187\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 789b5e80e9266309d7bb70cefc5ee80c\n\n# tcId = 188\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ed13380fa1a6ec14d8d27b6fcb1ec891\n\n# tcId = 189\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c81206de61849bca901d7ae71ae6cb91\n\n# tcId = 190\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f91adf0168a7e288563af14f7ddf698d\n\n[keySize = 256]\n[tagSize = 96]\n\n# tcId = 191\n# empty message\nkey = e40992eb4f649e5d49134652aecc24bafa6b45ce8dd9e9d371ede7d5de84fa72\nmsg = \nresult = valid\ntag = 034762bd9014d642f7f08af7\n\n# tcId = 192\n# truncated mac\nkey = 298962335a075e9eacb7a7627beafa4ee5a02242423cdfb0b4f106eb61cf5663\nmsg = 49\nresult = valid\ntag = 4545f042beb65af2b7b74808\n\n# tcId = 193\n# truncated mac\nkey = 2e94a84c78be80cd598366058d4f6cdf8095666dcac7a00ad832d9f33e20d13c\nmsg = b978587bf028558d\nresult = valid\ntag = 6703f99ac094ed0e9d9973b5\n\n# tcId = 194\n# truncated mac\nkey = 95b330aa5fffa6c0e29fd6fa0debdcb9cf6b448820bea24875089ec8ca5a2387\nmsg = c96596ebba6f89761b9d14dfcc8fb4\nresult = valid\ntag = 2fc3ce831f693912d33f3fde\n\n# tcId = 195\n# truncated mac\nkey = 319cd78b51a689a66b232005d66ad1962d11e52faf6aaad4ce7dc30777cd9ecc\nmsg = 82ce94904b110635a8604c4f7afc786b\nresult = valid\ntag = a7685d0f2049015e6f3229ee\n\n# tcId = 196\n# truncated mac\nkey = b3b7c2c6d3d80918218afcd8bf2a71cf0220e2e8084ead8ba1abfb893ae36d40\nmsg = dbcf98254157727c35f367fe6e15a2d089\nresult = valid\ntag = 09a60999f8848d19be5242c8\n\n# tcId = 197\n# truncated mac\nkey = 8588a6f1fb8ccc0fed3fdb3f8a39d389fb9260748f3b45bd74ad42a60c9caf2b\nmsg = 020cc9dd7f06f514bd3baf939f376b8b0083ff1b35ac90d0\nresult = valid\ntag = 50649ef2b87c22d2731ace23\n\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 198\n# empty message\nkey = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97\nmsg = \nresult = valid\ntag = 736", - "c7b56957db774c5ddf7c7a70ba8a8\n\n# tcId = 199\n# full length mac\nkey = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc\nmsg = 40\nresult = valid\ntag = 9d47482c2d9252bace43a75a8335b8b8\n\n# tcId = 200\n# full length mac\nkey = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5\nmsg = 2e4e7ef728fe11af\nresult = valid\ntag = f79606b83a7706a2a19e068bce818898\n\n# tcId = 201\n# full length mac\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\ntag = b96818b7acaf879c7a7f8271375a6914\n\n# tcId = 202\n# full length mac\nkey = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd\nmsg = cc37fae15f745a2f40e2c8b192f2b38d\nresult = valid\ntag = 4b88e193000c5a4b23e95c7f2b26530b\n\n# tcId = 203\n# full length mac\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg = d5247b8f6c3edcbfb1d591d13ece23d2f5\nresult = valid\ntag = 86911c7da51dc0823d6e93d4290d1ad4\n\n# tcId = 204\n# full length mac\nkey = 0427a70e257528f3ab70640bba1a5de12cf3885dd4c8e284fbbb55feb35294a5\nmsg = 13937f8544f44270d01175a011f7670e93fa6ba7ef02336e\nresult = valid\ntag = ccb2c51bfbe2598f9109fc70ed07f0eb\n\n# tcId = 205\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af0a293d8cba0101f0089727691b7fb\n\n# tcId = 206\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d709717c3a4ef8a2ea200b297d2accec\n\n# tcId = 207\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ee3f3b5f83e290cae26dad29bba32d\n\n# tcId = 208\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 69f0a293d8cba0101f0089727691b7fb\n\n# tcId = 209\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d409717c3a4ef8a2ea200b297d2accec\n\n# tcId = 210\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 5bee3f3b5f83e290cae26dad29bba32d\n\n# tcId = 211\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ebf0a293d8cba0101f0089727691b7fb\n\n# tcId = 212\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 5609717c3a4ef8a2ea200b297d2accec\n\n# tcId = 213\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9ee3f3b5f83e290cae26dad29bba32d\n\n# tcId = 214\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf1a293d8cba0101f0089727691b7fb\n\n# tcId = 215\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d608717c3a4ef8a2ea200b297d2accec\n\n# tcId = 216\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ef3f3b5f83e290cae26dad29bba32d\n\n# tcId = 217\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a213d8cba0101f0089727691b7fb\n\n# tcId = 218\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d60971fc3a4ef8a2ea200b297d2accec\n\n# tcId = 219\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3fbb5f83e290cae26dad29bba32d\n\n# tcId = 220\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d9cba0101f0089727691b7fb\n\n# tcId = 221\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3b4ef8a2ea200b297d2accec\n\n# tcId = 222\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5e83e290cae26dad29bba32d\n\n# tcId = 223\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293dacba0101f0089727691b7fb\n\n# tcId = 224\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c384ef8a2ea200b297d2accec\n\n# tcId = 225\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5d83e290cae26dad29bba32d\n\n# tcId = 226\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0901f0089727691b7fb\n\n# tcId = 227\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef822ea200b297d2accec\n\n# tcId = 228\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e210cae26dad29bba32d\n\n# tcId = 229\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101e0089727691b7fb\n\n# tcId = 230\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2eb200b297d2accec\n\n# tcId = 231\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cbe26dad29bba32d\n\n# tcId = 232\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0109f0089727691b7fb\n\n# tcId = 233\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a26a200b297d2accec\n\n# tcId = 234\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e2904ae26dad29bba32d\n\n# tcId = 235\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f2089727691b7fb\n\n# tcId = 236\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea000b297d2accec\n\n# tcId = 237\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cac26dad29bba32d\n\n# tcId = 238\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0088727691b7fb\n\n# tcId = 239\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200a297d2accec\n\n# tcId = 240\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26cad29bba32d\n\n# tcId = 241\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727791b7fb\n\n# tcId = 242\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415", - "161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297c2accec\n\n# tcId = 243\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad28bba32d\n\n# tcId = 244\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727491b7fb\n\n# tcId = 245\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297f2accec\n\n# tcId = 246\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad2bbba32d\n\n# tcId = 247\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f008972f691b7fb\n\n# tcId = 248\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b29fd2accec\n\n# tcId = 249\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dada9bba32d\n\n# tcId = 250\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7fa\n\n# tcId = 251\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2acced\n\n# tcId = 252\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba32c\n\n# tcId = 253\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7f9\n\n# tcId = 254\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2accee\n\n# tcId = 255\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba32f\n\n# tcId = 256\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7bb\n\n# tcId = 257\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2accac\n\n# tcId = 258\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba36d\n\n# tcId = 259\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b77b\n\n# tcId = 260\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2acc6c\n\n# tcId = 261\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba3ad\n\n# tcId = 262\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af0a293d8cba0101e0089727691b7fb\n\n# tcId = 263\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d709717c3a4ef8a2eb200b297d2accec\n\n# tcId = 264\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ee3f3b5f83e290cbe26dad29bba32d\n\n# tcId = 265\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a213d8cba0901f0089727691b7fb\n\n# tcId = 266\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d60971fc3a4ef822ea200b297d2accec\n\n# tcId = 267\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3fbb5f83e210cae26dad29bba32d\n\n# tcId = 268\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0901f0089727691b77b\n\n# tcId = 269\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef822ea200b297d2acc6c\n\n# tcId = 270\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e210cae26dad29bba3ad\n\n# tcId = 271\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 940f5d6c27345fefe0ff768d896e4804\n\n# tcId = 272\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 29f68e83c5b1075d15dff4d682d53313\n\n# tcId = 273\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a611c0c4a07c1d6f351d9252d6445cd2\n\n# tcId = 274\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 275\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 276\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 277\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 278\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 279\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 280\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = eb702213584b20909f8009f2f611377b\n\n# tcId = 281\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 5689f1fcbace78226aa08ba9fdaa4c6c\n\n# tcId = 282\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d96ebfbbdf0362104a62ed2da93b23ad\n\n# tcId = 283\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af1a392d9caa1111e0188737790b6fa\n\n# tcId = 284\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d708707d3b4ff9a3eb210a287c2bcded\n\n# tcId = 285\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg", - " = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ef3e3a5e82e391cbe36cac28baa22c\n\n[keySize = 0]\n[tagSize = 128]\n\n# tcId = 286\n# invalid key size\nkey = \nmsg = 00b9449326d39416\nresult = invalid\ntag = \n\n[keySize = 8]\n[tagSize = 128]\n\n# tcId = 287\n# invalid key size\nkey = 0f\nmsg = 4538b79a1397e2aa\nresult = invalid\ntag = \n\n[keySize = 64]\n[tagSize = 128]\n\n# tcId = 288\n# invalid key size\nkey = a88e385af7185148\nmsg = dc63b7ef08096e4f\nresult = invalid\ntag = \n\n[keySize = 160]\n[tagSize = 128]\n\n# tcId = 289\n# invalid key size\nkey = 003a228008d390b645929df73a2b2bdd8298918d\nmsg = ad1d3c3122ab7ac6\nresult = invalid\ntag = \n\n[keySize = 320]\n[tagSize = 128]\n\n# tcId = 290\n# invalid key size\nkey = 94baaac150e2645ae1ec1939c7bcefb73f6edb146fae02289b6c6326ff39bc265d612bef2727fa72\nmsg = e3f75a886c4a5591\nresult = invalid\ntag = \n\n", +static const char *kData90[] = { + "# Imported from Wycheproof's aes_cmac_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-CMAC\n# Generator version: 0.8r12\n\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\n# empty message\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\ntag = d47afca1d857a5933405b1eb7a5cb7af\n\n# tcId = 2\n# short message\nkey = e1e726677f4893890f8c027f9d8ef80d\nmsg = 3f\nresult = valid\ntag = 15f856bbed3b321952a584b3c4437a63\n\n# tcId = 3\n# short message\nkey = b151f491c4c006d1f28214aa3da9a985\nmsg = 27d9\nresult = valid\ntag = bdbbebac982dd62b9f682618a6a604e9\n\n# tcId = 4\n# short message\nkey = c36ff15f72777ee21deec07b63c1a0cd\nmsg = 50b428\nresult = valid\ntag = be0c3ede157568af394023eb9a7cc983\n\n# tcId = 5\n# short message\nkey = 32b9c5c78c3a0689a86052420fa1e8fc\nmsg = 0b9262ec\nresult = valid\ntag = 57e1506856c55dd32cd9ca821adb6c81\n\n# tcId = 6\n# short message\nkey = 43151bbaef367277ebfc97509d0aa49c\nmsg = eaa91273e7\nresult = valid\ntag = e01adc3be6a7621824232c4285dd35b9\n\n# tcId = 7\n# short message\nkey = 481440298525cc261f8159159aedf62d\nmsg = 6123c556c5cc\nresult = valid\ntag = a281e0d2d5378dfdcc1310fd9782ca56\n\n# tcId = 8\n# short message\nkey = 9ca26eb88731efbf7f810d5d95e196ac\nmsg = 7e48f06183aa40\nresult = valid\ntag = fc81761f2f7b4ce13b53d36e32677332\n\n# tcId = 9\n# short message\nkey = 48f0d03e41cc55c4b58f737b5acdea32\nmsg = f4a133aa6d5985a0\nresult = valid\ntag = 1f1cd0327c02e6d00086915937dd61d9\n\n# tcId = 10\n# short message\nkey = 1c958849f31996b28939ce513087d1be\nmsg = b0d2fee11b8e2f86b7\nresult = valid\ntag = 555f462151f7dd16de698d639fb26760\n\n# tcId = 11\n# short message\nkey = 39de0ebea97c09b2301a90009a423253\nmsg = 81e5c33b4c620852f044\nresult = valid\ntag = 9b004f15b7f6f366374954e64bc58f5f\n\n# tcId = 12\n# short message\nkey = 91656d8fc0aced60ddb1c4006d0dde53\nmsg = 7b3e440fe566790064b2ec\nresult = valid\ntag = 76672ed16c29be449e0c80785cc38e89\n\n# tcId = 13\n# short message\nkey = af7d5134720b5386158d51ea126e7cf9\nmsg = 7cc6fcc925c20f3c83b5567c\nresult = valid\ntag = 2dc5c88cf3b80ab6c0199f40be904abc\n\n# tcId = 14\n# short message\nkey = 4ed56753de6f75a032ebabca3ce27971\nmsg = 0c8c0f5619d9f8da5339281285\nresult = valid\ntag = eab4366d97e99a0850f077329ad058c0\n\n# tcId = 15\n# short message\nkey = beba50c936b696c15e25046dffb23a64\nmsg = 821ea8532fbabffb6e3d212e9b46\nresult = valid\ntag = 22f33cab09c173f75d3401fe44efeead\n\n# tcId = 16\n# short message\nkey = 501d81ebf912ddb87fbe3b7aac1437bc\nmsg = 2368e3c3636b5e8e94d2081adbf798\nresult = valid\ntag = aeb784a3825168ddd61f72d0202125e6\n\n# tcId = 17\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\ntag = 40facf0e2fb51b73a7472681b033d6dc\n\n# tcId = 18\nkey = 831e664c9e3f0c3094c0b27b9d908eb2\nmsg = 26603bb76dd0a0180791c4ed4d3b058807\nresult = valid\ntag = a8144c8b24f2aa47d9c160cff4ab1716\n\n# tcId = 19\nkey = 549bd282ee21b4d7c3b1d02e3ee20ef7\nmsg = d84bf73c5eecbd38444f1a73556e2fa3253f4c54d6916545\nresult = valid\ntag = 7ed458afe02f4a513f59715b664b1bbe\n\n# tcId = 20\nkey = 9bd3902ed0996c869b572272e76f3889\nmsg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e\nresult = valid\ntag = 45082218c2d05eef32247feb1133d0a3\n\n# tcId = 21\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 22\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43802eb1931f0032afe984443738cd31\n\n# tcId = 23\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 24\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 95dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 25\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 40802eb1931f0032afe984443738cd31\n\n# tcId = 26\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 79cfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 27\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 17dd6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 28\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = c2802eb1931f0032afe984443738cd31\n\n# tcId = 29\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fbcfbbca7a2ea68b966fc5399f74809e\n\n# tcId = 30\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dc6e5a882cbd564c39ae7d1c5a31aa\n\n# tcId = 31\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42812eb1931f0032afe984443738cd31\n\n# tcId = 32\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcebbca7a2ea68b966fc5399f74809e\n\n# tcId = 33\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6eda882cbd564c39ae7d1c5a31aa\n\n# tcId = 34\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802e31931f0032afe984443738cd31\n\n# tcId = 35\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbb4a7a2ea68b966fc5399f74809e\n\n# tcId = 36\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a892cbd564c39ae7d1c5a31aa\n\n# tcId = 37\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1921f0032afe984443738cd31\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7b2ea68b966fc5399f74809e\n\n# tcId = 39\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a8a2cbd564c39ae7d1c5a31aa\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1911f0032afe984443738cd31\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca782ea68b966fc5399f74809e\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbdd64c39ae7d1c5a31aa\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00b2afe984443738cd31\n\n# tcId = 44\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea60b966fc5399f74809e\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564d39ae7d1c5a31aa\n\n# tcId = 46\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032aee984443738cd31\n\n# tcId = 47\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b976fc5399f74809e\n\n# tcId = 48\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd56cc39ae7d1c5a31aa\n\n# tcId = 49\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00322fe984443738cd31\n\n# tcId = 50\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b166fc5399f74809e\n\n# tcId = 51\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c19ae7d1c5a31aa\n\n# tcId = 52\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afc984443738cd31\n\n# tcId = 53\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = inval", + "id\ntag = 7bcfbbca7a2ea68b964fc5399f74809e\n\n# tcId = 54\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39af7d1c5a31aa\n\n# tcId = 55\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe985443738cd31\n\n# tcId = 56\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc4399f74809e\n\n# tcId = 57\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1d5a31aa\n\n# tcId = 58\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443638cd31\n\n# tcId = 59\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399e74809e\n\n# tcId = 60\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1e5a31aa\n\n# tcId = 61\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443538cd31\n\n# tcId = 62\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399d74809e\n\n# tcId = 63\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d9c5a31aa\n\n# tcId = 64\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe98444b738cd31\n\n# tcId = 65\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5391f74809e\n\n# tcId = 66\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31ab\n\n# tcId = 67\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd30\n\n# tcId = 68\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74809f\n\n# tcId = 69\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31a8\n\n# tcId = 70\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd33\n\n# tcId = 71\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74809c\n\n# tcId = 72\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a31ea\n\n# tcId = 73\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cd71\n\n# tcId = 74\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f7480de\n\n# tcId = 75\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbd564c39ae7d1c5a312a\n\n# tcId = 76\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f0032afe984443738cdb1\n\n# tcId = 77\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea68b966fc5399f74801e\n\n# tcId = 78\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dd6e5a882cbd564d39ae7d1c5a31aa\n\n# tcId = 79\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43802eb1931f0032aee984443738cd31\n\n# tcId = 80\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acfbbca7a2ea68b976fc5399f74809e\n\n# tcId = 81\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6eda882cbdd64c39ae7d1c5a31aa\n\n# tcId = 82\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802e31931f00b2afe984443738cd31\n\n# tcId = 83\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbb4a7a2ea60b966fc5399f74809e\n\n# tcId = 84\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 97dd6e5a882cbdd64c39ae7d1c5a312a\n\n# tcId = 85\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 42802eb1931f00b2afe984443738cdb1\n\n# tcId = 86\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7bcfbbca7a2ea60b966fc5399f74801e\n\n# tcId = 87\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 682291a577d342a9b3c65182e3a5ce55\n\n# tcId = 88\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = bd7fd14e6ce0ffcd50167bbbc8c732ce\n\n# tcId = 89\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8430443585d1597469903ac6608b7f61\n\n# tcId = 90\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 91\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 92\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 93\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 94\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 95\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 96\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 175deeda08ac3dd6ccb92efd9cdab12a\n\n# tcId = 97\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = c200ae31139f80b22f6904c4b7b84db1\n\n# tcId = 98\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fb4f3b4afaae260b16ef45b91ff4001e\n\n# tcId = 99\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = \nresult = invalid\ntag = 96dc6f5b892dbc574d38af7c1d5b30ab\n\n# tcId = 100\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 0001020304050607\nresult = invalid\ntag = 43812fb0921e0133aee885453639cc30\n\n# tcId = 101\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 7acebacb7b2fa78a976ec4389e75819f\n\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 102\n# empty message\nkey = 3d6bf9edae6d881eade0ff8c7076a4835b71320c1f36b631\nmsg = \nresult = valid\ntag = a8dd15fe2ce3495ec5b666744ec29220\n\n# tcId = 103\n# short message\nkey = 915429743435c28997a33b33b6574a953d81dae0e7032e6a\nmsg = 58\nresult = valid\ntag = e13b3f7f7f510c3a059df7a68c7e2ad5\n\n# tcId = 104\n# short message\nkey = f0c288ba26b284f9fb321b444a6517b3cdda1a799d55fdff\nmsg = 0f7e\nresult = valid\ntag = 06ef847f5f9dbf03a4f283da8c400220\n\n# tcId = 105\n# short message\nkey = 6b55e4d4fd6847a80a6bfb0dcc0aa93f9fd797fc5c50292e\nmsg = 33f530\nresult = valid\ntag = dd135053a47ca8f282c299e83b8c", + "57c4\n\n# tcId = 106\n# short message\nkey = 1eb21a9e995a8e45c9e71ecbd6fe615b3e0318007c64b644\nmsg = 3aa73c48\nresult = valid\ntag = 1e93fff846934a6eea0575eecb0f0e1f\n\n# tcId = 107\n# short message\nkey = 710e2d5d4a9f0bc7e50796655e046a18cc5769d7764355da\nmsg = 7e4c690a88\nresult = valid\ntag = 016d4df06c68a6a788a9ea052e1b550d\n\n# tcId = 108\n# short message\nkey = d8c09ea400779b63e774bdacd0cb7b5dd6f736ca23d52acf\nmsg = e9520280973b\nresult = valid\ntag = 8030ae9f98f5d20c6089f6b1bd87c29e\n\n# tcId = 109\n# short message\nkey = 8e67e9a0863b55bed408866f1cbc05357abe3f9d79f406f2\nmsg = 4880b412287a0b\nresult = valid\ntag = bcaf50785f062a8fb8dd3c2c4cead2e1\n\n# tcId = 110\n# short message\nkey = 28d8da67806410e5565bcc5a9d7ab9fb357413fa0158378c\nmsg = 004e3f4a4e6db955\nresult = valid\ntag = c4c2c0876be9eabeb5a956da53846b08\n\n# tcId = 111\n# short message\nkey = dc968dd89fd602bb7eca6f3a8a13e4f59c08d02a514b1934\nmsg = 41a25354efeb1bc3b8\nresult = valid\ntag = f33a62caf397f9aff71fe42941ba41d8\n\n# tcId = 112\n# short message\nkey = 7658951c0f620d82afd92756cc2d7983b79da3e56fdd1b78\nmsg = f0e82fb5c5666f4af49f\nresult = valid\ntag = 4d724d05f3402967eb65ae1e32d5469e\n\n# tcId = 113\n# short message\nkey = d9574c3a221b986690931faac5258d9d3c52362b2cb9b054\nmsg = 178ea8404ba54ee4e4522c\nresult = valid\ntag = 64a0e0b6757309ab58d74f72c310e473\n\n# tcId = 114\n# short message\nkey = 704409bab28085c44981f28f75dd143a4f747106f63f262e\nmsg = cda5709e7f115624e74ab031\nresult = valid\ntag = 6ab2074334be14a95b6a241f897a43de\n\n# tcId = 115\n# short message\nkey = d8d06ef6a53bbff5c8f12d791b8f4c67e574bf440736d1cc\nmsg = a1171eae1979f48345dd9485a0\nresult = valid\ntag = 7aa57cf98b24897cc9230e3316758e61\n\n# tcId = 116\n# short message\nkey = 71129e781613f39d9ac39fbde2628b44c250c14deb5ef9e2\nmsg = 967593cc64bcbf7f3c58d04cb82b\nresult = valid\ntag = 6cc488b0a40eadbe4bcee2623239d126\n\n# tcId = 117\n# short message\nkey = 850fc859e9f7b89a367611dee6698f33962d8245ca8dc331\nmsg = 586f4f171af116519061a8e0e77940\nresult = valid\ntag = fb11a360c9776991d73d6e41d07710a2\n\n# tcId = 118\nkey = f4bfa5aa4f0f4d62cf736cd2969c43d580fdb92f2753bedb\nmsg = 0e239f239705b282ce2200fe20de1165\nresult = valid\ntag = ab20a6cf60873665b1d6999b05c7f9c6\n\n# tcId = 119\nkey = cfd3f68873d81a27d2bfce876c79f6e609074dec39e34614\nmsg = b1973cb25aa87ef9d1a8888b0a0f5c04c6\nresult = valid\ntag = b95a016b83a0ae4194023333c8a7345a\n\n# tcId = 120\nkey = 648a44468d67bb6744b235ee7a3fcd6ed4bdc29ec5b5fa1a\nmsg = c59d0d6981cca1be1d5519fc7881e6d230f39f6c12a9e827\nresult = valid\ntag = a1b96272ae7f9aef567271795f21d1d3\n\n# tcId = 121\nkey = 9d11abc1fcb248a436598e695be12c3c2ed90a18ba09d62c\nmsg = aa5182cae2a8fb068c0b3fb2be3e57ae523d13dffd1a944587707c2b67447f3f\nresult = valid\ntag = 8597d9a04d1c271d61d42f007b435175\n\n# tcId = 122\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ed12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 123\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c81307df60859acb911c7be61be7ca90\n\n# tcId = 124\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f91bde0069a6e389573bf04e7cde688c\n\n# tcId = 125\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ee12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 126\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = cb1307df60859acb911c7be61be7ca90\n\n# tcId = 127\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = fa1bde0069a6e389573bf04e7cde688c\n\n# tcId = 128\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 6c12390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 129\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 491307df60859acb911c7be61be7ca90\n\n# tcId = 130\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 781bde0069a6e389573bf04e7cde688c\n\n# tcId = 131\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec13390ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 132\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91207df60859acb911c7be61be7ca90\n\n# tcId = 133\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81ade0069a6e389573bf04e7cde688c\n\n# tcId = 134\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12398ea0a7ed15d9d37a6eca1fc990\n\n# tcId = 135\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c913075f60859acb911c7be61be7ca90\n\n# tcId = 136\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde8069a6e389573bf04e7cde688c\n\n# tcId = 137\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea1a7ed15d9d37a6eca1fc990\n\n# tcId = 138\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df61859acb911c7be61be7ca90\n\n# tcId = 139\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0068a6e389573bf04e7cde688c\n\n# tcId = 140\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea2a7ed15d9d37a6eca1fc990\n\n# tcId = 141\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df62859acb911c7be61be7ca90\n\n# tcId = 142\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde006ba6e389573bf04e7cde688c\n\n# tcId = 143\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed95d9d37a6eca1fc990\n\n# tcId = 144\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859a4b911c7be61be7ca90\n\n# tcId = 145\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e309573bf04e7cde688c\n\n# tcId = 146\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d8d37a6eca1fc990\n\n# tcId = 147\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb901c7be61be7ca90\n\n# tcId = 148\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389563bf04e7cde688c\n\n# tcId = 149\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed1559d37a6eca1fc990\n\n# tcId = 150\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb111c7be61be7ca90\n\n# tcId = 151\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389d73bf04e7cde688c\n\n# tcId = 152\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9f37a6eca1fc990\n\n# tcId = 153\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb913c7be61be7ca90\n\n# tcId = 154\n# Flipped bit 77 in", + " tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389571bf04e7cde688c\n\n# tcId = 155\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37b6eca1fc990\n\n# tcId = 156\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7ae61be7ca90\n\n# tcId = 157\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf14e7cde688c\n\n# tcId = 158\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6ecb1fc990\n\n# tcId = 159\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61ae7ca90\n\n# tcId = 160\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7dde688c\n\n# tcId = 161\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6ec81fc990\n\n# tcId = 162\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be619e7ca90\n\n# tcId = 163\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7ede688c\n\n# tcId = 164\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6e4a1fc990\n\n# tcId = 165\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be69be7ca90\n\n# tcId = 166\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04efcde688c\n\n# tcId = 167\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc991\n\n# tcId = 168\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7ca91\n\n# tcId = 169\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde688d\n\n# tcId = 170\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc992\n\n# tcId = 171\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7ca92\n\n# tcId = 172\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde688e\n\n# tcId = 173\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc9d0\n\n# tcId = 174\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7cad0\n\n# tcId = 175\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde68cc\n\n# tcId = 176\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed15d9d37a6eca1fc910\n\n# tcId = 177\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859acb911c7be61be7ca10\n\n# tcId = 178\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e389573bf04e7cde680c\n\n# tcId = 179\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ed12390ea0a7ed15d8d37a6eca1fc990\n\n# tcId = 180\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c81307df60859acb901c7be61be7ca90\n\n# tcId = 181\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f91bde0069a6e389563bf04e7cde688c\n\n# tcId = 182\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12398ea0a7ed95d9d37a6eca1fc990\n\n# tcId = 183\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c913075f60859a4b911c7be61be7ca90\n\n# tcId = 184\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde8069a6e309573bf04e7cde688c\n\n# tcId = 185\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ec12390ea0a7ed95d9d37a6eca1fc910\n\n# tcId = 186\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c91307df60859a4b911c7be61be7ca10\n\n# tcId = 187\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f81bde0069a6e309573bf04e7cde680c\n\n# tcId = 188\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 13edc6f15f5812ea262c859135e0366f\n\n# tcId = 189\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 36ecf8209f7a65346ee38419e418356f\n\n# tcId = 190\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 07e421ff96591c76a8c40fb183219773\n\n# tcId = 191\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 192\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 193\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 194\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 195\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 196\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 197\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = 6c92b98e20276d955953faee4a9f4910\n\n# tcId = 198\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = 4993875fe0051a4b119cfb669b674a10\n\n# tcId = 199\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 789b5e80e9266309d7bb70cefc5ee80c\n\n# tcId = 200\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = \nresult = invalid\ntag = ed13380fa1a6ec14d8d27b6fcb1ec891\n\n# tcId = 201\n# lsbs changed in tag\nkey = 00010203040", + "5060708090a0b0c0d0e0f1011121314151617\nmsg = 0001020304050607\nresult = invalid\ntag = c81206de61849bca901d7ae71ae6cb91\n\n# tcId = 202\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f91adf0168a7e288563af14f7ddf698d\n\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 203\n# empty message\nkey = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97\nmsg = \nresult = valid\ntag = 736c7b56957db774c5ddf7c7a70ba8a8\n\n# tcId = 204\n# short message\nkey = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc\nmsg = 40\nresult = valid\ntag = 9d47482c2d9252bace43a75a8335b8b8\n\n# tcId = 205\n# short message\nkey = ea3b016bdd387dd64d837c71683808f335dbdc53598a4ea8c5f952473fafaf5f\nmsg = 6601\nresult = valid\ntag = c7c44e31c466334992d6f9de3c771634\n\n# tcId = 206\n# short message\nkey = 73d4709637857dafab6ad8b2b0a51b06524717fedf100296644f7cfdaae1805b\nmsg = f1d300\nresult = valid\ntag = b7086603a85e11fceb8cadea9bd30939\n\n# tcId = 207\n# short message\nkey = d5c81b399d4c0d1583a13da56de6d2dc45a66e7b47c24ab1192e246dc961dd77\nmsg = 2ae63cbf\nresult = valid\ntag = ba383a3a15c9df64bba50d611113a024\n\n# tcId = 208\n# short message\nkey = 2521203fa0dddf59d837b2830f87b1aa61f958155df3ca4d1df2457cb4284dc8\nmsg = af3a015ea1\nresult = valid\ntag = b457137c548908c629f714fe83b1ed90\n\n# tcId = 209\n# short message\nkey = 665a02bc265a66d01775091da56726b6668bfd903cb7af66fb1b78a8a062e43c\nmsg = 3f56935def3f\nresult = valid\ntag = b6d6fde93fc85de289b36b446d77b423\n\n# tcId = 210\n# short message\nkey = facd75b22221380047305bc981f570e2a1af38928ea7e2059e3af5fc6b82b493\nmsg = 57bb86beed156f\nresult = valid\ntag = 8b1ef72d0a612735b08efef981f213c2\n\n# tcId = 211\n# short message\nkey = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5\nmsg = 2e4e7ef728fe11af\nresult = valid\ntag = f79606b83a7706a2a19e068bce818898\n\n# tcId = 212\n# short message\nkey = f942093842808ba47f64e427f7351dde6b9546e66de4e7d60aa6f328182712cf\nmsg = 852a21d92848e627c7\nresult = valid\ntag = a5a877f22ac743b7fb9e050d2e3ddb02\n\n# tcId = 213\n# short message\nkey = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4\nmsg = 195a3b292f93baff0a2c\nresult = valid\ntag = 6ea172e5c4d2fac075ca602de5757a62\n\n# tcId = 214\n# short message\nkey = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c\nmsg = afd73117330c6e8528a6e4\nresult = valid\ntag = 68020bfc9bd73fd80d3ce581ba3b1208\n\n# tcId = 215\n# short message\nkey = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc\nmsg = 0ff54d6b6759120c2e8a51e3\nresult = valid\ntag = 110edd727a9bf7fa11a6358afe617d9d\n\n# tcId = 216\n# short message\nkey = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8\nmsg = f0058d412a104e53d820b95a7f\nresult = valid\ntag = 1fa24c6625a0f8e1fc37827ac84d3cc4\n\n# tcId = 217\n# short message\nkey = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19\nmsg = aacc36972f183057919ff57b49e1\nresult = valid\ntag = 868765a8fa6aa898ddec0f4123e996be\n\n# tcId = 218\n# short message\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\ntag = b96818b7acaf879c7a7f8271375a6914\n\n# tcId = 219\nkey = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd\nmsg = cc37fae15f745a2f40e2c8b192f2b38d\nresult = valid\ntag = 4b88e193000c5a4b23e95c7f2b26530b\n\n# tcId = 220\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg = d5247b8f6c3edcbfb1d591d13ece23d2f5\nresult = valid\ntag = 86911c7da51dc0823d6e93d4290d1ad4\n\n# tcId = 221\nkey = 0427a70e257528f3ab70640bba1a5de12cf3885dd4c8e284fbbb55feb35294a5\nmsg = 13937f8544f44270d01175a011f7670e93fa6ba7ef02336e\nresult = valid\ntag = ccb2c51bfbe2598f9109fc70ed07f0eb\n\n# tcId = 222\nkey = 96e1e4896fb2cd05f133a6a100bc5609a7ac3ca6d81721e922dadd69ad07a892\nmsg = 91a17e4dfcc3166a1add26ff0e7c12056e8a654f28a6de24f4ba739ceb5b5b18\nresult = valid\ntag = 925f177d85ea297ef14b203fe409f9ab\n\n# tcId = 223\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af0a293d8cba0101f0089727691b7fb\n\n# tcId = 224\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d709717c3a4ef8a2ea200b297d2accec\n\n# tcId = 225\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ee3f3b5f83e290cae26dad29bba32d\n\n# tcId = 226\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 69f0a293d8cba0101f0089727691b7fb\n\n# tcId = 227\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d409717c3a4ef8a2ea200b297d2accec\n\n# tcId = 228\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 5bee3f3b5f83e290cae26dad29bba32d\n\n# tcId = 229\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ebf0a293d8cba0101f0089727691b7fb\n\n# tcId = 230\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 5609717c3a4ef8a2ea200b297d2accec\n\n# tcId = 231\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9ee3f3b5f83e290cae26dad29bba32d\n\n# tcId = 232\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf1a293d8cba0101f0089727691b7fb\n\n# tcId = 233\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d608717c3a4ef8a2ea200b297d2accec\n\n# tcId = 234\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ef3f3b5f83e290cae26dad29bba32d\n\n# tcId = 235\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a213d8cba0101f0089727691b7fb\n\n# tcId = 236\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d60971fc3a4ef8a2ea200b297d2accec\n\n# tcId = 237\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3fbb5f83e290cae26dad29bba32d\n\n# tcId = 238\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d9cba0101f0089727691b7fb\n\n# tcId = 239\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3b4ef8a2ea200b297d2accec\n\n# tcId = 240\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5e83e290cae26dad29bba32d\n\n# tcId = 241\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293dacba0101f0089727691b7fb\n\n# tcId = 242\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c384ef8a2ea200b297d2accec\n\n# tcId = 243\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5d83e290cae26dad29bba32d\n\n# tcId = 244\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0901f0089727691b7fb\n\n# tcId = 245\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag =", + " d609717c3a4ef822ea200b297d2accec\n\n# tcId = 246\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e210cae26dad29bba32d\n\n# tcId = 247\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101e0089727691b7fb\n\n# tcId = 248\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2eb200b297d2accec\n\n# tcId = 249\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cbe26dad29bba32d\n\n# tcId = 250\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0109f0089727691b7fb\n\n# tcId = 251\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a26a200b297d2accec\n\n# tcId = 252\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e2904ae26dad29bba32d\n\n# tcId = 253\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f2089727691b7fb\n\n# tcId = 254\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea000b297d2accec\n\n# tcId = 255\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cac26dad29bba32d\n\n# tcId = 256\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0088727691b7fb\n\n# tcId = 257\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200a297d2accec\n\n# tcId = 258\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26cad29bba32d\n\n# tcId = 259\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727791b7fb\n\n# tcId = 260\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297c2accec\n\n# tcId = 261\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad28bba32d\n\n# tcId = 262\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727491b7fb\n\n# tcId = 263\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297f2accec\n\n# tcId = 264\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad2bbba32d\n\n# tcId = 265\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f008972f691b7fb\n\n# tcId = 266\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b29fd2accec\n\n# tcId = 267\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dada9bba32d\n\n# tcId = 268\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7fa\n\n# tcId = 269\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2acced\n\n# tcId = 270\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba32c\n\n# tcId = 271\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7f9\n\n# tcId = 272\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2accee\n\n# tcId = 273\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba32f\n\n# tcId = 274\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b7bb\n\n# tcId = 275\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2accac\n\n# tcId = 276\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba36d\n\n# tcId = 277\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0101f0089727691b77b\n\n# tcId = 278\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef8a2ea200b297d2acc6c\n\n# tcId = 279\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3f3b5f83e290cae26dad29bba3ad\n\n# tcId = 280\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af0a293d8cba0101e0089727691b7fb\n\n# tcId = 281\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d709717c3a4ef8a2eb200b297d2accec\n\n# tcId = 282\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ee3f3b5f83e290cbe26dad29bba32d\n\n# tcId = 283\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a213d8cba0901f0089727691b7fb\n\n# tcId = 284\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d60971fc3a4ef822ea200b297d2accec\n\n# tcId = 285\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee3fbb5f83e210cae26dad29bba32d\n\n# tcId = 286\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6bf0a293d8cba0901f0089727691b77b\n\n# tcId = 287\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d609717c3a4ef822ea200b297d2acc6c\n\n# tcId = 288\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 59ee", + "3f3b5f83e210cae26dad29bba3ad\n\n# tcId = 289\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 940f5d6c27345fefe0ff768d896e4804\n\n# tcId = 290\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 29f68e83c5b1075d15dff4d682d53313\n\n# tcId = 291\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a611c0c4a07c1d6f351d9252d6445cd2\n\n# tcId = 292\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 293\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 294\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 295\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 296\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 297\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 298\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = eb702213584b20909f8009f2f611377b\n\n# tcId = 299\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = 5689f1fcbace78226aa08ba9fdaa4c6c\n\n# tcId = 300\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d96ebfbbdf0362104a62ed2da93b23ad\n\n# tcId = 301\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 6af1a392d9caa1111e0188737790b6fa\n\n# tcId = 302\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0001020304050607\nresult = invalid\ntag = d708707d3b4ff9a3eb210a287c2bcded\n\n# tcId = 303\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58ef3e3a5e82e391cbe36cac28baa22c\n\n[keySize = 0]\n[tagSize = 128]\n\n# tcId = 304\n# invalid key size\nkey = \nmsg = 00b9449326d39416\nresult = invalid\ntag = \n\n[keySize = 8]\n[tagSize = 128]\n\n# tcId = 305\n# invalid key size\nkey = 0f\nmsg = 4538b79a1397e2aa\nresult = invalid\ntag = \n\n[keySize = 64]\n[tagSize = 128]\n\n# tcId = 306\n# invalid key size\nkey = a88e385af7185148\nmsg = dc63b7ef08096e4f\nresult = invalid\ntag = \n\n[keySize = 160]\n[tagSize = 128]\n\n# tcId = 307\n# invalid key size\nkey = 003a228008d390b645929df73a2b2bdd8298918d\nmsg = ad1d3c3122ab7ac6\nresult = invalid\ntag = \n\n[keySize = 320]\n[tagSize = 128]\n\n# tcId = 308\n# invalid key size\nkey = 94baaac150e2645ae1ec1939c7bcefb73f6edb146fae02289b6c6326ff39bc265d612bef2727fa72\nmsg = e3f75a886c4a5591\nresult = invalid\ntag = \n\n", }; -static const size_t kLen58 = 42168; +static const size_t kLen91 = 44166; -static const char *kData58[] = { - "# Imported from Wycheproof's aes_gcm_siv_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-GCM\n# Generator version: 0.4.12\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = \niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = \nresult = valid\ntag = dc20e2d83f25705bb49e439eca56de25\n\n# tcId = 2\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = b5d839330ac7b786\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0100000000000000\nresult = valid\ntag = 578782fff6013b815b287c22493a364c\n\n# tcId = 3\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 7323ea61d05932260047d942\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 010000000000000000000000\nresult = valid\ntag = a4978db357391a0bc4fdec8b0d106639\n\n# tcId = 4\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 743f7c8077ab25f8624e2e948579cf77\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 01000000000000000000000000000000\nresult = valid\ntag = 303aaf90f6fe21199c6068577437a0c4\n\n# tcId = 5\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 84e07e62ba83a6585417245d7ec413a9fe427d6315c09b57ce45f2e3936a9445\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0100000000000000000000000000000002000000000000000000000000000000\nresult = valid\ntag = 1a8e45dcd4578c667cd86847bf6155ff\n\n# tcId = 6\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 3fd24ce1f5a67b75bf2351f181a475c7b800a5b4d3dcf70106b1eea82fa1d64df42bf7226122fa92e17a40eeaac1201b\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = 5e6e311dbf395d35b0fe39c2714388f8\n\n# tcId = 7\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 2433668f1058190f6d43e360f4f35cd8e475127cfca7028ea8ab5c20f7ab2af02516a2bdcbc08d521be37ff28c152bba36697f25b4cd169c6590d1dd39566d3f\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 8a263dd317aa88d56bdf3936dba75bb8\n\n# tcId = 8\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 1e6daba35669f427\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0200000000000000\nresult = valid\ntag = 3b0a1a2560969cdf790d99759abd1508\n\n# tcId = 9\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 296c7889fd99f41917f44620\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 020000000000000000000000\nresult = valid\ntag = 08299c5102745aaa3a0c469fad9e075a\n\n# tcId = 10\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = e2b0c5da79a901c1745f700525cb335b\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000000000000000000000000000\nresult = valid\ntag = 8f8936ec039e4e4bb97ebd8c4457441f\n\n# tcId = 11\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 620048ef3c1e73e57e02bb8562c416a319e73e4caac8e96a1ecb2933145a1d71\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = e6af6a7f87287da059a71684ed3498e1\n\n# tcId = 12\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 50c8303ea93925d64090d07bd109dfd9515a5a33431019c17d93465999a8b0053201d723120a8562b838cdff25bf9d1e\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 6a8cc3865f76897c2e4b245cf31c51f2\n\n# tcId = 13\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 2f5c64059db55ee0fb847ed513003746aca4e61c711b5de2e7a77ffd02da42feec601910d3467bb8b36ebbaebce5fba30d36c95f48a3e7980f0e7ac299332a80\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000\nresult = valid\ntag = cdc46ae475563de037001ef84ae21744\n\n# tcId = 14\n# draft-irtf-cfrg-gcmsiv-06\naad = 010000000000000000000000\nct = a8fe3e87\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000\nresult = valid\ntag = 07eb1f84fb28f8cb73de8e99e2f48a14\n\n# tcId = 15\n# draft-irtf-cfrg-gcmsiv-06\naad = 010000000000000000000000000000000200\nct = 6bb0fecf5ded9b77f902c7d5da236a4391dd0297\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0300000000000000000000000000000004000000\nresult = valid\ntag = 24afc9805e976f451e6d87f6fe106514\n\n# tcId = 16\n# draft-irtf-cfrg-gcmsiv-06\naad = 0100000000000000000000000000000002000000\nct = 44d0aaf6fb2f1f34add5e8064e83e12a2ada\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 030000000000000000000000000000000400\nresult = valid\ntag = bff9b2ef00fb47920cc72a0c0f13b9fd\n\n# tcId = 17\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = \niv = f46e44bb3da0015c94f70887\nkey = e66021d5eb8e4f4066d4adb9c33560e4\nmsg = \nresult = valid\ntag = a4194b79071b01a87d65f706e3949578\n\n# tcId = 18\n# draft-irtf-cfrg-gcmsiv-06\naad = 46bb91c3c5\nct = af60eb\niv = bae8e37fc83441b16034566b\nkey = 36864200e0eaf5284d884a0e77d31646\nmsg = 7a806c\nresult = valid\ntag = 711bd85bc1e4d3e0a462e074eea428a8\n\n# tcId = 19\n# draft-irtf-cfrg-gcmsiv-06\naad = fc880c94a95198874296\nct = bb93a3e34d3c\niv = afc0577e34699b9e671fdd4f\nkey = aedb64a6c590bc84d1a5e269e4b47801\nmsg = bdc66f146545\nresult = valid\ntag = d6a9c45545cfc11f03ad743dba20f966\n\n# tcId = 20\n# draft-irtf-cfrg-gcmsiv-06\naad = 046787f3ea22c127aaf195d1894728\nct = 4f37281f7ad12949d0\niv = 275d1ab32f6d1f0434d8848c\nkey = d5cc1fd161320b6920ce07787f86743b\nmsg = 1177441f195495860f\nresult = valid\ntag = 1d02fd0cd174c84fc5dae2f60f52fd2b\n\n# tcId = 21\n# draft-irtf-cfrg-gcmsiv-06\naad = c9882e5386fd9f92ec489c8fde2be2cf97e74e93\nct = f54673c5ddf710c745641c8b\niv = 9e9ad8780c8d63d0ab4149c0\nkey = b3fed1473c528b8426a582995929a149\nmsg = 9f572c614b4745914474e7c7\nresult = valid\ntag = c1dc2f871fb7561da1286e655e24b7b0\n\n# tcId = 22\n# draft-irtf-cfrg-gcmsiv-06\naad = 2950a70d5a1db2316fd568378da107b52b0da55210cc1c1b0a\nct = c9ff545e07b88a015f05b274540aa1\niv = ac80e6f61455bfac8308a2d4\nkey = 2d4ed87da44102952ef94b02b805249b\nmsg = 0d8c8451178082355c9e940fea2f58\nresult = valid\ntag = 83b3449b9f39552de99dc214a1190b0b\n\n# tcId = 23\n# draft-irtf-cfrg-gcmsiv-06\naad = 1860f762ebfbd08284e421702de0de18baa9c9596291b08466f37de21c7f\nct = 6298b296e24e8cc35dce0bed484b7f30d580\niv = ae06556fb6aa7890bebc18fe\nkey = bde3b2f204d1e9f8b06bc47f9745b3d1\nmsg = 6b3db4da3d57aa94842b9803a96e07fb6de7\nresult = valid\ntag = 3e377094f04709f64d7b985310a4db84\n\n# tcId = 24\n# draft-irtf-cfrg-gcmsiv-06\naad = 7576f7028ec6eb5ea7e298342a94d4b202b370ef9768ec6561c4fe6b7e7296fa859c21\nct = 391cc328d484a4f46406181bcd62efd9b3ee197d05\niv = 6245709fb18853f68d833640\nkey = f901cfe8a69615a93fdf7a98cad48179\nmsg = e42a3c02c25b64869e146d7b233987bddfc240871d\nresult = valid\ntag = 2d15506c84a9edd65e13e9d24a2a6e70\n\n# tcId = 25\naad = \nct = \niv = 438a547a94ea88dce46c6c85\nkey = bedcfb5a011ebc84600fcb296c15af0d\nmsg = \nresult = valid\ntag = 596d0538e48526be1c991e40cc031073\n\n# tcId = 26\naad = \nct = 4f\niv = b30c084727ad1c592ac21d12\nkey = 384ea416ac3c2f51a76e7d8226346d4e\nmsg = 35\nresult = valid\ntag = 8b2b805fc0885e2b470d9dbe6cb15ed3\n\n# tcId = 27\naad = \nct = 04c7a55f97846e54\niv = b5e006ded553110e6dc56529\nkey = cae31cd9f55526eb038241fc44cac1e5\nmsg = d10989f2c52e94ad\nresult = valid\ntag = 48168ff846356c33032c719b518f18a8\n\n# tcId = 28\naad = \nct = fd9521041b0397a15b0070b93f48a9\niv = ecb0c42f7000ef0e6f95f24d\nkey = dd6197cd63c963919cf0c273ef6b28bf\nmsg = 4dcc1485365866e25ac3f2ca6aba97\nresult = valid\ntag = 09df91414578f7faf757d04ee26ab901\n\n# tcId = 29\naad = \nct = 6eb905287ddfafc32f6b1c10046c089f\niv = 0e1666f2dc652f7708fb8f0d\nkey = ffdf4228361ea1f8165852136b3480f7\nmsg = 25b12e28ac0ef6ead0226a3b2288c800\nresult = valid\ntag = 4ff9f939a77c34b0cb1ee75fcb0dd29a\n\n# tcId = 30\naad = \nct = 6f62bd09d4f36f73e289ab6dd114727fe3\niv = 965ff6643116ac1443a2dec7\nkey = c15ed227dd2e237ecd087eaaaad19ea4\nmsg = fee62fde973fe025ad6b322dcdf3c63fc7\nresult = valid\ntag = ea727c084db2bc948de0928edddd7fcf\n\n# tcId = 31\naad = \nct = 80133a4bea7311f0d3c9835144c37c4ef0ef20", - "c8f2e36be1\niv = fbbc04fd6e025b7193eb57f6\nkey = a8ee11b26d7ceb7f17eaa1e4b83a2cf6\nmsg = c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf\nresult = valid\ntag = b92f47c1af6713e14fbdf60efebb50c6\n\n# tcId = 32\naad = \nct = 778b308e4ca17607df36c0b94695bc64603173b814701a9f69147b42478a0b1f\niv = a2dbe708db51c68ef02994a6\nkey = 7519588f30f7f08ff98e1beee6a2a783\nmsg = 1851956319256ebb0f9ccaf325a24abfc5c3e90b055e57cdc0c7ab2165ae03b1\nresult = valid\ntag = b75c98952c0aa11958a55c9c2ecf33f5\n\n# tcId = 33\naad = 30\nct = 173ba6370171be47dbb6163a63a3b725\niv = 4bad10c6d84fd43fd13ad36f\nkey = a5b5b6bae45b741fe4663890098f326a\nmsg = 127b150080ec0bc7704e26f4ab11abb6\nresult = valid\ntag = 53aefed6e971d5a1f435f0730a6dd0fd\n\n# tcId = 34\naad = 743e\nct = 959f0ff12481dedc4302ad7a904f9486\niv = 2186a3091237adae83540e24\nkey = 0cecb9f512932d68e2c7c0bc4bd621c8\nmsg = 437aeb94d842283ba57bb758e3d229f0\nresult = valid\ntag = 0215be2ab9b0672a7b82893891057c9c\n\n# tcId = 35\naad = 25591707c004f506f4b51e85e29f6a\nct = 8ae3a16a237f1358ac8cfeb5f4cc2818\niv = 0c908e58cddad69dea1a32c3\nkey = 55e04c122780be52ed9328928039008c\nmsg = 26eb70672eef03667b34cc7d0df05872\nresult = valid\ntag = 28f5aa8a34a9f7c01c17759d142b1bae\n\n# tcId = 36\naad = c07092d799dac2b4c05fbddd04743c34\nct = d5220f6a49d1e4c10d38c77c8156ebd0\niv = c30968c967e53505621628db\nkey = 5f0a1b5f8f8673d566ec7f54e7dca4f2\nmsg = f6538476daf04524cf134309dd84e187\nresult = valid\ntag = 80b50f526286dad22d40984636f0e9ce\n\n# tcId = 37\naad = 3ea12d80f40f34f812479d2ecc13d2d6df\nct = 3e771b9376e1d1cde3d9b73349c958bc\niv = a51c37f467893c1608e56274\nkey = 671a70e883fb0611dffd0b1dd9b8cca2\nmsg = 3baf3edf04dc0c97aae081cdeb08021d\nresult = valid\ntag = ebd3ea678a1e87839a4356584ea89bac\n\n# tcId = 38\naad = 5189ea6f39b2a78c0202fdff146c5cc6bdc7491d4786f80c6c6aef65634c05da\nct = 05b568a589d0a77a8ee9c6f06415c6b6\niv = 52c20979cdaaade573dba650\nkey = 63f03172505d90e94900125cb8a4b0dd\nmsg = 602c98997ee03fd11ce00e92de193977\nresult = valid\ntag = 91ba5089dffb7538199c441728d5f84a\n\n# tcId = 39\n# Testing for ctr overflow\naad = 395f4091b410c373073bcdc79e02d3af\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 00112233445566778899aabbccddeeff\nmsg = 43488548d88e6f774bcd2d52c18fbcc933a4e9a9613ff3edbe959ec59522adc098b3133b8d17b9e9dad631ad33752c95\nresult = valid\ntag = 00000000000000000000000000000000\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 40\n# Testing for ctr overflow\naad = 616b2dff4d665e5f7ab890723dd981b1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = f012c6a7eb0e8af5bc45e015e7680a693dc709b95383f6a94babec1bc36e4be3cf4f55a31a94f11c6c3f90eed99682bc\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 41\n# Testing for ctr overflow\naad = 387a8997605fd04ae8951c4759087864\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 030303030303030303030303\nkey = 00112233445566778899aabbccddeeff\nmsg = 71ceee58179d6fb968521e9594dbf98cc0040f6aa38fe873c32a9b122d6cbfd51aa4778b3f4f37be7348690d97e2468b\nresult = valid\ntag = fefffffffefffffffefffffffeffffff\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 42\n# Testing for ctr overflow\naad = 6783b0d5e9d8a2a7274065797097d1ae\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 060606060606060606060606\nkey = 00112233445566778899aabbccddeeff\nmsg = 2e14f9e9a09ea204557367898a80dcad117af3666bea25762b70633a9f3614fbe631ba617c371fd5566d5e613496e69f\nresult = valid\ntag = ffffff7f00112233445566778899aabb\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 43\n# Testing for ctr overflow\naad = 2933810c146f4f7dd146dd43f35199c6\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 00112233445566778899aabbccddeeff\nmsg = 27fac75879c9d87cd52a0793137ba792f6f145148158eb538f2081e09cd0315986a7025045ecbb2ca1bb18a17bfcd567\nresult = valid\ntag = ffffffffffffff7f0011223344556677\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 44\n# Flipped bit 0 in tag\naad = 27dd62060507dae87c4f93f391ba15f9\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 45\n# Flipped bit 0 in tag\naad = 9ea3371e258288d5a01b15384e2c99ee\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 46\n# Flipped bit 0 in tag\naad = ce24e3ec0fe7b8550d621b71fdb5d0eb\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 47\n# Flipped bit 7 in tag\naad = 1471f354b359c235117febba854a823b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 48\n# Flipped bit 7 in tag\naad = 11f820294fc9d13f1895d2fb5509913b\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 49\n# Flipped bit 8 in tag\naad = 45e7257b814f09de44177b27b914822f\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 50\n# Flipped bit 8 in tag\naad = 4c49780b5438c4a7ea9795b9856fdae1\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 51\n# Flipped bit 8 in tag\naad = ecc2f2f4142837a34f9cd1fa030a5d7f\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 52\n# Flipped bit 31 in tag\naad = 69c7f5605da8e0684990b087411f8cf5\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 53\n# Flipped bit 31 in tag\naad = 20b346be60e7e97588bf504ce707ce0b\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 54\n# Flipped bit 63 in tag\naad = 19b298f3a061a73cb774da927ce11ca2\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 55\n# Flipped bit 63 in tag\naad = bff8c631e61c18a050a523ad4a750a20\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 56\n# Flipped bit 64 in tag\naad = 7b6171302b689c926852163e310f08d4\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 57\n# Flipped bit 97 in tag\naad = 555036128fa18ecadd090cb772ac0bf3\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 58\n# Flipped ", - "bit 97 in tag\naad = a5b43b8e1dbb2bfbda1b625fee4064a7\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 59\n# Flipped bit 120 in tag\naad = ae47cc5d7681dd480c23469c5519b647\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 60\n# Flipped bit 120 in tag\naad = d53dd677184702eaa660f1349195fc04\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 61\n# Flipped bit 120 in tag\naad = dc78584e4599dd4b2fb333db2f9ccb95\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 62\n# Flipped bit 121 in tag\naad = 0bfd9271e79153a8afdb7f3d96fe446f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 63\n# Flipped bit 121 in tag\naad = 1e0537a95b7200134d0b440657d50fd1\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 64\n# Flipped bit 121 in tag\naad = 7633155df35857258d23b0651d60847c\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 65\n# Flipped bit 126 in tag\naad = ab0a064b473de43598adf81ee297d856\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 66\n# Flipped bit 127 in tag\naad = f62bdc3f4fcb699ee12f6e87dcc704cb\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 67\n# Flipped bit 127 in tag\naad = 1320051031807b8f44e9d2cb1ec6aa92\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 68\n# Flipped bit 127 in tag\naad = 329b813d3ae2225d3e15f97a28037bcc\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 69\n# Flipped bit 0..127 in tag\naad = edc723bedd0078696acdea005c74b841\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 70\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = \niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = \nresult = valid\ntag = 07f5f4169bbf55a8400cd47ea6fd400f\n\n# tcId = 71\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = c2ef328e5c71c83b\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0100000000000000\nresult = valid\ntag = 843122130f7364b761e0b97427e3df28\n\n# tcId = 72\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 9aab2aeb3faa0a34aea8e2b1\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 010000000000000000000000\nresult = valid\ntag = 8ca50da9ae6559e48fd10f6e5c9ca17e\n\n# tcId = 73\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 85a01b63025ba19b7fd3ddfc033b3e76\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 01000000000000000000000000000000\nresult = valid\ntag = c9eac6fa700942702e90862383c6c366\n\n# tcId = 74\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 4a6a9db4c8c6549201b9edb53006cba821ec9cf850948a7c86c68ac7539d027f\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0100000000000000000000000000000002000000000000000000000000000000\nresult = valid\ntag = e819e63abcd020b006a976397632eb5d\n\n# tcId = 75\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = c00d121893a9fa603f48ccc1ca3c57ce7499245ea0046db16c53c7c66fe717e39cf6c748837b61f6ee3adcee17534ed5\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = 790bc96880a99ba804bd12c0e6a22cc4\n\n# tcId = 76\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = c2d5160a1f8683834910acdafc41fbb1632d4a353e8b905ec9a5499ac34f96c7e1049eb080883891a4db8caaa1f99dd004d80487540735234e3744512c6f90ce\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 112864c269fc0d9d88c61fa47e39aa08\n\n# tcId = 77\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 1de22967237a8132\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0200000000000000\nresult = valid\ntag = 91213f267e3b452f02d01ae33e4ec854\n\n# tcId = 78\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 163d6f9cc1b346cd453a2e4c\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 020000000000000000000000\nresult = valid\ntag = c1a4a19ae800941ccdc57cc8413c277f\n\n# tcId = 79\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = c91545823cc24f17dbb0e9e807d5ec17\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000000000000000000000000000\nresult = valid\ntag = b292d28ff61189e8e49f3875ef91aff7\n\n# tcId = 80\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 07dad364bfc2b9da89116d7bef6daaaf6f255510aa654f920ac81b94e8bad365\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = aea1bad12702e1965604374aab96dbbc\n\n# tcId = 81\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = c67a1f0f567a5198aa1fcc8e3f21314336f7f51ca8b1af61feac35a86416fa47fbca3b5f749cdf564527f2314f42fe25\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 03332742b228c647173616cfd44c54eb\n\n# tcId = 82\n# draft-irtf-cfrg-gcmsiv-06\naad = 01\nct = 67fd45e126bfb9a79930c43aad2d36967d3f0e4d217c1e551f59727870beefc98cb933a8fce9de887b1e40799988db1fc3f91880ed405b2dd298318858467c89\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000\nresult = valid\ntag = 5bde0285037c5de81e5b570a049b62a0\n\n# tcId = 83\n# draft-irtf-cfrg-gcmsiv-06\naad = 010000000000000000000000\nct = 22b3f4cd\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000\nresult = valid\ntag = 1835e517741dfddccfa07fa4661b74cf\n\n# tcId = 84\n# draft-irtf-cfrg-gcmsiv-06\naad = 010000000000000000000000000000000200\nct = 43dd0163cdb48f9fe3212bf61b201976067f342b\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0300000000000000000000000000000004000000\nresult = valid\ntag = b879ad976d8242acc188ab59cabfe307\n\n# tcId = 85\n# draft-irtf-cfrg-gcmsiv-06\naad = 0100000000000000000000000000000002000000\nct = 462401724b5ce6588d5a54aae5375513a075\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 030000000000000000000000000000000400\nresult = valid\ntag = cfcdf5042112aa29685c912fc2056543\n\n# tcId = 86\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = \niv =", - " e0eaf5284d884a0e77d31646\nkey = e66021d5eb8e4f4066d4adb9c33560e4f46e44bb3da0015c94f7088736864200\nmsg = \nresult = valid\ntag = 169fbb2fbf389a995f6390af22228a62\n\n# tcId = 87\n# draft-irtf-cfrg-gcmsiv-06\naad = 4fbdc66f14\nct = 0eaccb\niv = e4b47801afc0577e34699b9e\nkey = bae8e37fc83441b16034566b7a806c46bb91c3c5aedb64a6c590bc84d1a5e269\nmsg = 671fdd\nresult = valid\ntag = 93da9bb81333aee0c785b240d319719d\n\n# tcId = 88\n# draft-irtf-cfrg-gcmsiv-06\naad = 6787f3ea22c127aaf195\nct = a254dad4f3f9\niv = 2f6d1f0434d8848c1177441f\nkey = 6545fc880c94a95198874296d5cc1fd161320b6920ce07787f86743b275d1ab3\nmsg = 195495860f04\nresult = valid\ntag = 6b62b84dc40c84636a5ec12020ec8c2c\n\n# tcId = 89\n# draft-irtf-cfrg-gcmsiv-06\naad = 489c8fde2be2cf97e74e932d4ed87d\nct = 0df9e308678244c44b\niv = 9f572c614b4745914474e7c7\nkey = d1894728b3fed1473c528b8426a582995929a1499e9ad8780c8d63d0ab4149c0\nmsg = c9882e5386fd9f92ec\nresult = valid\ntag = c0fd3dc6628dfe55ebb0b9fb2295c8c2\n\n# tcId = 90\n# draft-irtf-cfrg-gcmsiv-06\naad = 0da55210cc1c1b0abde3b2f204d1e9f8b06bc47f\nct = 8dbeb9f7255bf5769dd56692\niv = 5c9e940fea2f582950a70d5a\nkey = a44102952ef94b02b805249bac80e6f61455bfac8308a2d40d8c845117808235\nmsg = 1db2316fd568378da107b52b\nresult = valid\ntag = 404099c2587f64979f21826706d497d5\n\n# tcId = 91\n# draft-irtf-cfrg-gcmsiv-06\naad = f37de21c7ff901cfe8a69615a93fdf7a98cad481796245709f\nct = 793576dfa5c0f88729a7ed3c2f1bff\niv = 6de71860f762ebfbd08284e4\nkey = 9745b3d1ae06556fb6aa7890bebc18fe6b3db4da3d57aa94842b9803a96e07fb\nmsg = 21702de0de18baa9c9596291b08466\nresult = valid\ntag = b3080d28f6ebb5d3648ce97bd5ba67fd\n\n# tcId = 92\n# draft-irtf-cfrg-gcmsiv-06\naad = 9c2159058b1f0fe91433a5bdc20e214eab7fecef4454a10ef0657df21ac7\nct = 857e16a64915a787637687db4a9519635cdd\niv = 028ec6eb5ea7e298342a94d4\nkey = b18853f68d833640e42a3c02c25b64869e146d7b233987bddfc240871d7576f7\nmsg = b202b370ef9768ec6561c4fe6b7e7296fa85\nresult = valid\ntag = 454fc2a154fea91f8363a39fec7d0a49\n\n# tcId = 93\n# draft-irtf-cfrg-gcmsiv-06\naad = 734320ccc9d9bbbb19cb81b2af4ecbc3e72834321f7aa0f70b7282b4f33df23f167541\nct = 626660c26ea6612fb17ad91e8e767639edd6c9faee\niv = 688089e55540db1872504e1c\nkey = 3c535de192eaed3822a2fbbe2ca9dfc88255e14a661b8aa82cc54236093bbc23\nmsg = ced532ce4159b035277d4dfbb7db62968b13cd4eec\nresult = valid\ntag = 9d6c7029675b89eaf4ba1ded1a286594\n\n# tcId = 94\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = f3f80f2cf0cb2dd9c5984fcda908456cc537703b5ba70324a6793a7bf218d3ea\niv = 000000000000000000000000\nkey = 0000000000000000000000000000000000000000000000000000000000000000\nmsg = 000000000000000000000000000000004db923dc793ee6497c76dcc03a98e108\nresult = valid\ntag = ffffffff000000000000000000000000\n\n# tcId = 95\n# draft-irtf-cfrg-gcmsiv-06\naad = \nct = 18ce4f0b8cb4d0cac65fea8f79257b20888e53e72299e56d\niv = 000000000000000000000000\nkey = 0000000000000000000000000000000000000000000000000000000000000000\nmsg = eb3640277c7ffd1303c7a542d02d3e4c0000000000000000\nresult = valid\ntag = ffffffff000000000000000000000000\n\n# tcId = 96\naad = \nct = \niv = 4da5bf8dfd5852c1ea12379d\nkey = 80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\nmsg = \nresult = valid\ntag = 181720f6ecdcdd332c89d20e09f11b0f\n\n# tcId = 97\naad = \nct = fa\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = 868ee11a7fe13996ac26962a7e861962\n\n# tcId = 98\naad = \nct = c32210c306fac7dc\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = da60d8ff4d550e6801b0ce488ed1b6fe\n\n# tcId = 99\naad = \nct = 0180029193bbb29e326b5817e8ea01\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = 4dd43e861c5f141a693ebc056ed0f0f9\n\n# tcId = 100\naad = \nct = 31cb136074adcd00cf75e9587d7e8424\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 567871b7aaaf3c00f42fd9d5962df514\n\n# tcId = 101\naad = \nct = c97e58e8730a567e8bdf5eb981cdd5f323\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = 4b2dc825fef9dc6bf234f2b8ff798f9e\n\n# tcId = 102\naad = \nct = c2669f9fc8fe6013c4dd22468d43c2af73647b7018531d29\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 06a58c8d44e99b3262cad0e920df1f85\n\n# tcId = 103\naad = \nct = faaef557c31a231115f393c4b3c1a1413fb40b4204458d5f9ef8a9f2f12486ae\niv = 72cfd90ef3026ca22b7e6e6a\nkey = e1731d5854e1b70cb3ffe8b786a2b3ebf0994370954757b9dc8c7bc5354634a3\nmsg = b9c554cbc36ac18ae897df7beecac1dbeb4eafa156bb60ce2e5d48f05715e678\nresult = valid\ntag = 72fc457255aadf708719c46986caefad\n\n# tcId = 104\naad = 02\nct = 12fffdccd1e5a9708fa30ccf99137067\niv = 87345f1055fd9e2102d50656\nkey = 7d00b48095adfa3272050607b264185002ba99957c498be022770f2ce2f3143c\nmsg = e5ccaa441bc814688f8f6e8f28b500b2\nresult = valid\ntag = 688e0b634f51c4f6d983629c8a63c1c0\n\n# tcId = 105\naad = b648\nct = b75b8e96de2ef9704ade5c64cab59671\niv = 87a3163ec0598ad95b3aa713\nkey = 6432717f1db85e41ac7836bce25185a080d5762b9e2b18444b6ec72c3bd8e4dc\nmsg = 02cde168fba3f544bbd0332f7adeada8\nresult = valid\ntag = dec00ceb899c4a6a29be67f1b30435e0\n\n# tcId = 106\naad = bd4cd02fc7502bbdbdf6c9a3cbe8f0\nct = 8e67034384170a646e9eea1606a8e899\niv = 6f573aa86baa492ba46596df\nkey = 8e34cf73d245a1082a920b86364eb896c4946467bcb3d58929fcb36690e6394f\nmsg = 16ddd23ff53f3d23c06334487040eb47\nresult = valid\ntag = fe7a3dd42beb5ff70bb471ff76f0d341\n\n# tcId = 107\naad = 89cce9fb47441d07e0245a66fe8b778b\nct = 7eeb00c65fe7e0c79255e3cd90013588\niv = 1a6518f02ede1da6809266d9\nkey = cb5575f5c7c45c91cf320b139fb594237560d0a3e6f865a67d4f633f2c08f016\nmsg = 623b7850c321e2cf0c6fbcc8dfd1aff2\nresult = valid\ntag = 957d35fb25fdc17f00db33756967fd02\n\n# tcId = 108\naad = d19f2d989095f7ab03a5fde84416e00c0e\nct = f83e3b4333400d6393d085fe947057c4\niv = 564dee49ab00d240fc1068c3\nkey = a5569e729a69b24ba6e0ff15c4627897436824c941e9d00b2e93fddc4ba77657\nmsg = 87b3a4d7b26d8d3203a0de1d64ef82e3\nresult = valid\ntag = 7a30291bb506ae3961f61d683c9d94d1\n\n# tcId = 109\naad = ba446f6f9a0ced22450feb10737d9007fd69abc19b1d4d9049a5551e86ec2b37\nct = 97db4d850442eb33e6089af6f3cadf7b\niv = 8df4b15a888c33286a7b7651\nkey = 3937986af86dafc1ba0c4672d8abc46c207062682d9c264ab06d6c5807205130\nmsg = dc9e9eaf11e314182df6a4eba17aec9c\nresult = valid\ntag = 3ccbb125b2835754c1409d227e374d0b\n\n# tcId = 110\n# Testing for ctr overflow\naad = 40c32e00c2fdab59c1a1c573b46b5068\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = bdd411814564c4218d224d50591c818855a862a0a519ac0b3d71a2edb12aa71eb81959bcc6b84c45aa424c9aca0b7bdd\nresult = valid\ntag = 00000000000000000000000000000000\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 111\n# Testing for ctr overflow\naad = 2cc3a1973e0560f7224a394e52fa8488\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = d04846a01f472262e60a1cb4cfcbdcb05c3f819628a3a49395c5dae96c434b2417ce071699afa74a60c32c0bafd9c01a\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 112\n# Testing for ctr overflow\naad = 2e34d12622a441b557eeb1d647c6cb73\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 79637cee9decf33e3080de3d2c55bd21cd529ba8080b583edb6cfe13cda04bd00debe58b8cd48d6e02a1ecfc4d87923a\nresult = valid\ntag = fefffffffefffffffefffffffeffffff\n# The counter fo", - "r AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 113\n# Testing for ctr overflow\naad = 0814a95481bf915a4097949e3525c7e7\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 6492a73880dac7f36743715b0fc7063d3e46a25044310bba5849ed88bfcb54b0adbe3978040bda849906e1aa09d1a8e3\nresult = valid\ntag = ffffff7f00112233445566778899aabb\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 114\n# Testing for ctr overflow\naad = b691ef42f2ab8d1b4a581bb08394b13a\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 7848d9e872f40bca1b82a4e7185fb75193b3496cc1dc2a72b86ed156ab8389e71687ed25eb6485e66561fa8c39853368\nresult = valid\ntag = ffffffffffffff7f0011223344556677\n# The counter for AES-GCM-SIV is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 115\n# Flipped bit 0 in tag\naad = e144878b0bbbf01b75231277e1e0d114\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 116\n# Flipped bit 0 in tag\naad = 0289eaa93eb084107d2088435ef2a0cd\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 117\n# Flipped bit 1 in tag\naad = f3bd6013669b7d9371727fcb1aafea75\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 118\n# Flipped bit 7 in tag\naad = 922e91b2c5016e4303c737d1608ca25f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 119\n# Flipped bit 7 in tag\naad = 7195dd0addce5dd7014bfddb2f23206f\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 120\n# Flipped bit 7 in tag\naad = 32fc2a53e9678f1fc6d63081c36c6f2c\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 121\n# Flipped bit 8 in tag\naad = c55ba71ee250216f8ecfe822d712dd38\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 122\n# Flipped bit 8 in tag\naad = 5546acf865fc305fbd7ff1092cb9c2c3\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 123\n# Flipped bit 31 in tag\naad = 6b060eebe1843b409a4dfd0be8f86a2b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 124\n# Flipped bit 31 in tag\naad = c4adb92f1a60eb2faff88675f62a7276\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 125\n# Flipped bit 32 in tag\naad = 70c5a8591f52f869c6415a6d7000e253\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 126\n# Flipped bit 63 in tag\naad = b5fe79f182cb9f2945208e29513928d1\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 127\n# Flipped bit 63 in tag\naad = c1dbf87e4a586b040c53f6dd9063b4cd\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 128\n# Flipped bit 64 in tag\naad = 845466e603ca85a224693d150ae13ba3\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 129\n# Flipped bit 97 in tag\naad = 18cb9f5eede6224fa3fcd525cf9f958b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 130\n# Flipped bit 97 in tag\naad = 8c4fbca37d2e361856b9f80adf455fa0\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 131\n# Flipped bit 97 in tag\naad = bc517fe140abf2b42eb1cafe8c0715a9\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 132\n# Flipped bit 120 in tag\naad = 617e1c5ef62ed35cf678e670f116ff2f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 133\n# Flipped bit 120 in tag\naad = e71802b7a37e8ef1f001ef0c52c636f2\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 134\n# Flipped bit 120 in tag\naad = be647e37f154d4a8edca5a29ca221cc5\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 135\n# Flipped bit 121 in tag\naad = b3caa01f49c7cbc56c7c92547257957e\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 136\n# Flipped bit 121 in tag\naad = ab0347a2aec4cc4c366583062442ba07\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 137\n# Flipped bit 126 in tag\naad = 62573ef39a27f77b37fb7bfc84e46cee\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 138\n# Flipped bit 126 in tag\naad = 28e3cadfb16834e824642e965588c200\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 139\n# Flipped bit 126 in tag\naad = 7edd2fc15bed224a46dc8608e1766080\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccdd", - "eeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 140\n# Flipped bit 127 in tag\naad = 7e0e03104e2c0ff20ba4c35742180c5b\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 141\n# Flipped bit 127 in tag\naad = 9a24dc75c5ddd3bab57ff532eb86d224\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 142\n# Flipped bit 127 in tag\naad = 3196aec499c15bc043b6866ba0df6e6b\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 143\n# Flipped bit 0..127 in tag\naad = 55a2987aa94bf46ad1b6d253a44c1622\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n", +static const char *kData91[] = { + "# Imported from Wycheproof's aes_gcm_siv_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-GCM-SIV\n# Generator version: 0.8r12\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = \niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = \nresult = valid\ntag = dc20e2d83f25705bb49e439eca56de25\n\n# tcId = 2\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = b5d839330ac7b786\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0100000000000000\nresult = valid\ntag = 578782fff6013b815b287c22493a364c\n\n# tcId = 3\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 7323ea61d05932260047d942\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 010000000000000000000000\nresult = valid\ntag = a4978db357391a0bc4fdec8b0d106639\n\n# tcId = 4\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 743f7c8077ab25f8624e2e948579cf77\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 01000000000000000000000000000000\nresult = valid\ntag = 303aaf90f6fe21199c6068577437a0c4\n\n# tcId = 5\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 84e07e62ba83a6585417245d7ec413a9fe427d6315c09b57ce45f2e3936a9445\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0100000000000000000000000000000002000000000000000000000000000000\nresult = valid\ntag = 1a8e45dcd4578c667cd86847bf6155ff\n\n# tcId = 6\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 3fd24ce1f5a67b75bf2351f181a475c7b800a5b4d3dcf70106b1eea82fa1d64df42bf7226122fa92e17a40eeaac1201b\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = 5e6e311dbf395d35b0fe39c2714388f8\n\n# tcId = 7\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 2433668f1058190f6d43e360f4f35cd8e475127cfca7028ea8ab5c20f7ab2af02516a2bdcbc08d521be37ff28c152bba36697f25b4cd169c6590d1dd39566d3f\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 8a263dd317aa88d56bdf3936dba75bb8\n\n# tcId = 8\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 1e6daba35669f427\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0200000000000000\nresult = valid\ntag = 3b0a1a2560969cdf790d99759abd1508\n\n# tcId = 9\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 296c7889fd99f41917f44620\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 020000000000000000000000\nresult = valid\ntag = 08299c5102745aaa3a0c469fad9e075a\n\n# tcId = 10\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = e2b0c5da79a901c1745f700525cb335b\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000000000000000000000000000\nresult = valid\ntag = 8f8936ec039e4e4bb97ebd8c4457441f\n\n# tcId = 11\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 620048ef3c1e73e57e02bb8562c416a319e73e4caac8e96a1ecb2933145a1d71\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = e6af6a7f87287da059a71684ed3498e1\n\n# tcId = 12\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 50c8303ea93925d64090d07bd109dfd9515a5a33431019c17d93465999a8b0053201d723120a8562b838cdff25bf9d1e\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 6a8cc3865f76897c2e4b245cf31c51f2\n\n# tcId = 13\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 2f5c64059db55ee0fb847ed513003746aca4e61c711b5de2e7a77ffd02da42feec601910d3467bb8b36ebbaebce5fba30d36c95f48a3e7980f0e7ac299332a80\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000\nresult = valid\ntag = cdc46ae475563de037001ef84ae21744\n\n# tcId = 14\n# draft-irtf-cfrg-gcmsiv-09\naad = 010000000000000000000000\nct = a8fe3e87\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 02000000\nresult = valid\ntag = 07eb1f84fb28f8cb73de8e99e2f48a14\n\n# tcId = 15\n# draft-irtf-cfrg-gcmsiv-09\naad = 010000000000000000000000000000000200\nct = 6bb0fecf5ded9b77f902c7d5da236a4391dd0297\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 0300000000000000000000000000000004000000\nresult = valid\ntag = 24afc9805e976f451e6d87f6fe106514\n\n# tcId = 16\n# draft-irtf-cfrg-gcmsiv-09\naad = 0100000000000000000000000000000002000000\nct = 44d0aaf6fb2f1f34add5e8064e83e12a2ada\niv = 030000000000000000000000\nkey = 01000000000000000000000000000000\nmsg = 030000000000000000000000000000000400\nresult = valid\ntag = bff9b2ef00fb47920cc72a0c0f13b9fd\n\n# tcId = 17\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = \niv = f46e44bb3da0015c94f70887\nkey = e66021d5eb8e4f4066d4adb9c33560e4\nmsg = \nresult = valid\ntag = a4194b79071b01a87d65f706e3949578\n\n# tcId = 18\n# draft-irtf-cfrg-gcmsiv-09\naad = 46bb91c3c5\nct = af60eb\niv = bae8e37fc83441b16034566b\nkey = 36864200e0eaf5284d884a0e77d31646\nmsg = 7a806c\nresult = valid\ntag = 711bd85bc1e4d3e0a462e074eea428a8\n\n# tcId = 19\n# draft-irtf-cfrg-gcmsiv-09\naad = fc880c94a95198874296\nct = bb93a3e34d3c\niv = afc0577e34699b9e671fdd4f\nkey = aedb64a6c590bc84d1a5e269e4b47801\nmsg = bdc66f146545\nresult = valid\ntag = d6a9c45545cfc11f03ad743dba20f966\n\n# tcId = 20\n# draft-irtf-cfrg-gcmsiv-09\naad = 046787f3ea22c127aaf195d1894728\nct = 4f37281f7ad12949d0\niv = 275d1ab32f6d1f0434d8848c\nkey = d5cc1fd161320b6920ce07787f86743b\nmsg = 1177441f195495860f\nresult = valid\ntag = 1d02fd0cd174c84fc5dae2f60f52fd2b\n\n# tcId = 21\n# draft-irtf-cfrg-gcmsiv-09\naad = c9882e5386fd9f92ec489c8fde2be2cf97e74e93\nct = f54673c5ddf710c745641c8b\niv = 9e9ad8780c8d63d0ab4149c0\nkey = b3fed1473c528b8426a582995929a149\nmsg = 9f572c614b4745914474e7c7\nresult = valid\ntag = c1dc2f871fb7561da1286e655e24b7b0\n\n# tcId = 22\n# draft-irtf-cfrg-gcmsiv-09\naad = 2950a70d5a1db2316fd568378da107b52b0da55210cc1c1b0a\nct = c9ff545e07b88a015f05b274540aa1\niv = ac80e6f61455bfac8308a2d4\nkey = 2d4ed87da44102952ef94b02b805249b\nmsg = 0d8c8451178082355c9e940fea2f58\nresult = valid\ntag = 83b3449b9f39552de99dc214a1190b0b\n\n# tcId = 23\n# draft-irtf-cfrg-gcmsiv-09\naad = 1860f762ebfbd08284e421702de0de18baa9c9596291b08466f37de21c7f\nct = 6298b296e24e8cc35dce0bed484b7f30d580\niv = ae06556fb6aa7890bebc18fe\nkey = bde3b2f204d1e9f8b06bc47f9745b3d1\nmsg = 6b3db4da3d57aa94842b9803a96e07fb6de7\nresult = valid\ntag = 3e377094f04709f64d7b985310a4db84\n\n# tcId = 24\n# draft-irtf-cfrg-gcmsiv-09\naad = 7576f7028ec6eb5ea7e298342a94d4b202b370ef9768ec6561c4fe6b7e7296fa859c21\nct = 391cc328d484a4f46406181bcd62efd9b3ee197d05\niv = 6245709fb18853f68d833640\nkey = f901cfe8a69615a93fdf7a98cad48179\nmsg = e42a3c02c25b64869e146d7b233987bddfc240871d\nresult = valid\ntag = 2d15506c84a9edd65e13e9d24a2a6e70\n\n# tcId = 25\naad = \nct = \niv = 438a547a94ea88dce46c6c85\nkey = bedcfb5a011ebc84600fcb296c15af0d\nmsg = \nresult = valid\ntag = 596d0538e48526be1c991e40cc031073\n\n# tcId = 26\naad = \nct = 4f\niv = b30c084727ad1c592ac21d12\nkey = 384ea416ac3c2f51a76e7d8226346d4e\nmsg = 35\nresult = valid\ntag = 8b2b805fc0885e2b470d9dbe6cb15ed3\n\n# tcId = 27\naad = \nct = 04c7a55f97846e54\niv = b5e006ded553110e6dc56529\nkey = cae31cd9f55526eb038241fc44cac1e5\nmsg = d10989f2c52e94ad\nresult = valid\ntag = 48168ff846356c33032c719b518f18a8\n\n# tcId = 28\naad = \nct = fd9521041b0397a15b0070b93f48a9\niv = ecb0c42f7000ef0e6f95f24d\nkey = dd6197cd63c963919cf0c273ef6b28bf\nmsg = 4dcc1485365866e25ac3f2ca6aba97\nresult = valid\ntag = 09df91414578f7faf757d04ee26ab901\n\n# tcId = 29\naad = \nct = 6eb905287ddfafc32f6b1c10046c089f\niv = 0e1666f2dc652f7708fb8f0d\nkey = ffdf4228361ea1f8165852136b3480f7\nmsg = 25b12e28ac0ef6ead0226a3b2288c800\nresult = valid\ntag = 4ff9f939a77c34b0cb1ee75fcb0dd29a\n\n# tcId = 30\naad = \nct = 6f62bd09d4f36f73e289ab6dd114727fe3\niv = 965ff6643116ac1443a2dec7\nkey = c15ed227dd2e237ecd087eaaaad19ea4\nmsg = fee62fde973fe025ad6b322dcdf3c63fc7\nresult = valid\ntag = ea727c084db2bc948de0928edddd7fcf\n\n# tcId = 31\naad = \nct = 80133a4bea7311f0d3c9835144c37c4ef0", + "ef20c8f2e36be1\niv = fbbc04fd6e025b7193eb57f6\nkey = a8ee11b26d7ceb7f17eaa1e4b83a2cf6\nmsg = c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf\nresult = valid\ntag = b92f47c1af6713e14fbdf60efebb50c6\n\n# tcId = 32\naad = \nct = 778b308e4ca17607df36c0b94695bc64603173b814701a9f69147b42478a0b1f\niv = a2dbe708db51c68ef02994a6\nkey = 7519588f30f7f08ff98e1beee6a2a783\nmsg = 1851956319256ebb0f9ccaf325a24abfc5c3e90b055e57cdc0c7ab2165ae03b1\nresult = valid\ntag = b75c98952c0aa11958a55c9c2ecf33f5\n\n# tcId = 33\naad = 30\nct = 173ba6370171be47dbb6163a63a3b725\niv = 4bad10c6d84fd43fd13ad36f\nkey = a5b5b6bae45b741fe4663890098f326a\nmsg = 127b150080ec0bc7704e26f4ab11abb6\nresult = valid\ntag = 53aefed6e971d5a1f435f0730a6dd0fd\n\n# tcId = 34\naad = 743e\nct = 959f0ff12481dedc4302ad7a904f9486\niv = 2186a3091237adae83540e24\nkey = 0cecb9f512932d68e2c7c0bc4bd621c8\nmsg = 437aeb94d842283ba57bb758e3d229f0\nresult = valid\ntag = 0215be2ab9b0672a7b82893891057c9c\n\n# tcId = 35\naad = 25591707c004f506f4b51e85e29f6a\nct = 8ae3a16a237f1358ac8cfeb5f4cc2818\niv = 0c908e58cddad69dea1a32c3\nkey = 55e04c122780be52ed9328928039008c\nmsg = 26eb70672eef03667b34cc7d0df05872\nresult = valid\ntag = 28f5aa8a34a9f7c01c17759d142b1bae\n\n# tcId = 36\naad = c07092d799dac2b4c05fbddd04743c34\nct = d5220f6a49d1e4c10d38c77c8156ebd0\niv = c30968c967e53505621628db\nkey = 5f0a1b5f8f8673d566ec7f54e7dca4f2\nmsg = f6538476daf04524cf134309dd84e187\nresult = valid\ntag = 80b50f526286dad22d40984636f0e9ce\n\n# tcId = 37\naad = 3ea12d80f40f34f812479d2ecc13d2d6df\nct = 3e771b9376e1d1cde3d9b73349c958bc\niv = a51c37f467893c1608e56274\nkey = 671a70e883fb0611dffd0b1dd9b8cca2\nmsg = 3baf3edf04dc0c97aae081cdeb08021d\nresult = valid\ntag = ebd3ea678a1e87839a4356584ea89bac\n\n# tcId = 38\naad = 5189ea6f39b2a78c0202fdff146c5cc6bdc7491d4786f80c6c6aef65634c05da\nct = 05b568a589d0a77a8ee9c6f06415c6b6\niv = 52c20979cdaaade573dba650\nkey = 63f03172505d90e94900125cb8a4b0dd\nmsg = 602c98997ee03fd11ce00e92de193977\nresult = valid\ntag = 91ba5089dffb7538199c441728d5f84a\n\n# tcId = 39\n# Testing for ctr overflow\naad = 395f4091b410c373073bcdc79e02d3af\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 00112233445566778899aabbccddeeff\nmsg = 43488548d88e6f774bcd2d52c18fbcc933a4e9a9613ff3edbe959ec59522adc098b3133b8d17b9e9dad631ad33752c95\nresult = valid\ntag = 00000000000000000000000000000000\nflags = ConstructedIv\n\n# tcId = 40\n# Testing for ctr overflow\naad = 616b2dff4d665e5f7ab890723dd981b1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = f012c6a7eb0e8af5bc45e015e7680a693dc709b95383f6a94babec1bc36e4be3cf4f55a31a94f11c6c3f90eed99682bc\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\nflags = ConstructedIv\n\n# tcId = 41\n# Testing for ctr overflow\naad = 387a8997605fd04ae8951c4759087864\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 030303030303030303030303\nkey = 00112233445566778899aabbccddeeff\nmsg = 71ceee58179d6fb968521e9594dbf98cc0040f6aa38fe873c32a9b122d6cbfd51aa4778b3f4f37be7348690d97e2468b\nresult = valid\ntag = fefffffffefffffffefffffffeffffff\nflags = ConstructedIv\n\n# tcId = 42\n# Testing for ctr overflow\naad = 6783b0d5e9d8a2a7274065797097d1ae\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 060606060606060606060606\nkey = 00112233445566778899aabbccddeeff\nmsg = 2e14f9e9a09ea204557367898a80dcad117af3666bea25762b70633a9f3614fbe631ba617c371fd5566d5e613496e69f\nresult = valid\ntag = ffffff7f00112233445566778899aabb\nflags = ConstructedIv\n\n# tcId = 43\n# Testing for ctr overflow\naad = 2933810c146f4f7dd146dd43f35199c6\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 00112233445566778899aabbccddeeff\nmsg = 27fac75879c9d87cd52a0793137ba792f6f145148158eb538f2081e09cd0315986a7025045ecbb2ca1bb18a17bfcd567\nresult = valid\ntag = ffffffffffffff7f0011223344556677\nflags = ConstructedIv\n\n# tcId = 44\n# Flipped bit 0 in tag\naad = 27dd62060507dae87c4f93f391ba15f9\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 45\n# Flipped bit 0 in tag\naad = 9ea3371e258288d5a01b15384e2c99ee\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 46\n# Flipped bit 0 in tag\naad = ce24e3ec0fe7b8550d621b71fdb5d0eb\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 47\n# Flipped bit 7 in tag\naad = 1471f354b359c235117febba854a823b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 48\n# Flipped bit 7 in tag\naad = 11f820294fc9d13f1895d2fb5509913b\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 49\n# Flipped bit 8 in tag\naad = 45e7257b814f09de44177b27b914822f\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 50\n# Flipped bit 8 in tag\naad = 4c49780b5438c4a7ea9795b9856fdae1\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 51\n# Flipped bit 8 in tag\naad = ecc2f2f4142837a34f9cd1fa030a5d7f\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 52\n# Flipped bit 31 in tag\naad = 69c7f5605da8e0684990b087411f8cf5\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 53\n# Flipped bit 31 in tag\naad = 20b346be60e7e97588bf504ce707ce0b\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 54\n# Flipped bit 56 in tag\naad = 3955107da2e9938c6b19bb19ae9fc09f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 55\n# Flipped bit 56 in tag\naad = b1385d46a8accd7022c142442a0b13e9\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 56\n# Flipped bit 63 in tag\naad = 19b298f3a061a73cb774da927ce11ca2\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 57\n# Flipped bit 63 in tag\naad = bff8c631e61c18a050a523ad4a750a20\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 58\n# Flipped bit 64 in tag\naad = 7b6171302b689c926852163e310f08d4\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 59\n# Flipped bit 88 in tag\naad = 4e79aa30003226402245893e91f2024c\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 60\n# Flipped bit 88 in tag\naad = 9312e1813a05b8682", + "555061b05edcef1\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 61\n# Flipped bit 96 in tag\naad = 643684185211af58061022efa360d54b\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 62\n# Flipped bit 96 in tag\naad = 786d8056e26150918e3cbe520cafeb50\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 63\n# Flipped bit 97 in tag\naad = 555036128fa18ecadd090cb772ac0bf3\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 64\n# Flipped bit 97 in tag\naad = a5b43b8e1dbb2bfbda1b625fee4064a7\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 65\n# Flipped bit 120 in tag\naad = ae47cc5d7681dd480c23469c5519b647\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 66\n# Flipped bit 120 in tag\naad = d53dd677184702eaa660f1349195fc04\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 67\n# Flipped bit 120 in tag\naad = dc78584e4599dd4b2fb333db2f9ccb95\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 68\n# Flipped bit 121 in tag\naad = 0bfd9271e79153a8afdb7f3d96fe446f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 69\n# Flipped bit 121 in tag\naad = 1e0537a95b7200134d0b440657d50fd1\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 70\n# Flipped bit 121 in tag\naad = 7633155df35857258d23b0651d60847c\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 71\n# Flipped bit 126 in tag\naad = ab0a064b473de43598adf81ee297d856\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 0fed395814f1750a\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 72\n# Flipped bit 127 in tag\naad = f62bdc3f4fcb699ee12f6e87dcc704cb\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 73\n# Flipped bit 127 in tag\naad = 1320051031807b8f44e9d2cb1ec6aa92\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 03c0e39b77bd62d32568f4c86c90bfdb\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 74\n# Flipped bit 127 in tag\naad = 329b813d3ae2225d3e15f97a28037bcc\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 75\n# Flipped bit 0..127 in tag\naad = edc723bedd0078696acdea005c74b841\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = 63995888995b338c\nresult = invalid\ntag = 00000000000000000000000000000000\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 76\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = \niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = \nresult = valid\ntag = 07f5f4169bbf55a8400cd47ea6fd400f\n\n# tcId = 77\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = c2ef328e5c71c83b\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0100000000000000\nresult = valid\ntag = 843122130f7364b761e0b97427e3df28\n\n# tcId = 78\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 9aab2aeb3faa0a34aea8e2b1\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 010000000000000000000000\nresult = valid\ntag = 8ca50da9ae6559e48fd10f6e5c9ca17e\n\n# tcId = 79\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 85a01b63025ba19b7fd3ddfc033b3e76\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 01000000000000000000000000000000\nresult = valid\ntag = c9eac6fa700942702e90862383c6c366\n\n# tcId = 80\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 4a6a9db4c8c6549201b9edb53006cba821ec9cf850948a7c86c68ac7539d027f\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0100000000000000000000000000000002000000000000000000000000000000\nresult = valid\ntag = e819e63abcd020b006a976397632eb5d\n\n# tcId = 81\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = c00d121893a9fa603f48ccc1ca3c57ce7499245ea0046db16c53c7c66fe717e39cf6c748837b61f6ee3adcee17534ed5\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = 790bc96880a99ba804bd12c0e6a22cc4\n\n# tcId = 82\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = c2d5160a1f8683834910acdafc41fbb1632d4a353e8b905ec9a5499ac34f96c7e1049eb080883891a4db8caaa1f99dd004d80487540735234e3744512c6f90ce\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 112864c269fc0d9d88c61fa47e39aa08\n\n# tcId = 83\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 1de22967237a8132\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0200000000000000\nresult = valid\ntag = 91213f267e3b452f02d01ae33e4ec854\n\n# tcId = 84\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 163d6f9cc1b346cd453a2e4c\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 020000000000000000000000\nresult = valid\ntag = c1a4a19ae800941ccdc57cc8413c277f\n\n# tcId = 85\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = c91545823cc24f17dbb0e9e807d5ec17\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000000000000000000000000000\nresult = valid\ntag = b292d28ff61189e8e49f3875ef91aff7\n\n# tcId = 86\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 07dad364bfc2b9da89116d7bef6daaaf6f255510aa654f920ac81b94e8bad365\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0200000000000000000000000000000003000000000000000000000000000000\nresult = valid\ntag = aea1bad12702e1965604374aab96dbbc\n\n# tcId = 87\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = c67a1f0f567a5198aa1fcc8e3f21314336f7f51ca8b1af61feac35a86416fa47fbca3b5f749cdf564527f2314f42fe25\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000\nresult = valid\ntag = 03332742b228c647173616cfd44c54eb\n\n# tcId = 88\n# draft-irtf-cfrg-gcmsiv-09\naad = 01\nct = 67fd45e126bfb9a79930c43aad2d36967d3f0e4d217c1e551f59727870beefc98cb933a8fce9de887b1e40799988db1fc3f91880ed405b2dd298318858467c89\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000\nresult = valid\ntag = 5bde0285037c5de81e5b570a049b62a0\n\n# tcId = 89\n# draft-irtf-cfrg-gcmsiv-09\naad = 010000000000", + "000000000000\nct = 22b3f4cd\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 02000000\nresult = valid\ntag = 1835e517741dfddccfa07fa4661b74cf\n\n# tcId = 90\n# draft-irtf-cfrg-gcmsiv-09\naad = 010000000000000000000000000000000200\nct = 43dd0163cdb48f9fe3212bf61b201976067f342b\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 0300000000000000000000000000000004000000\nresult = valid\ntag = b879ad976d8242acc188ab59cabfe307\n\n# tcId = 91\n# draft-irtf-cfrg-gcmsiv-09\naad = 0100000000000000000000000000000002000000\nct = 462401724b5ce6588d5a54aae5375513a075\niv = 030000000000000000000000\nkey = 0100000000000000000000000000000000000000000000000000000000000000\nmsg = 030000000000000000000000000000000400\nresult = valid\ntag = cfcdf5042112aa29685c912fc2056543\n\n# tcId = 92\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = \niv = e0eaf5284d884a0e77d31646\nkey = e66021d5eb8e4f4066d4adb9c33560e4f46e44bb3da0015c94f7088736864200\nmsg = \nresult = valid\ntag = 169fbb2fbf389a995f6390af22228a62\n\n# tcId = 93\n# draft-irtf-cfrg-gcmsiv-09\naad = 4fbdc66f14\nct = 0eaccb\niv = e4b47801afc0577e34699b9e\nkey = bae8e37fc83441b16034566b7a806c46bb91c3c5aedb64a6c590bc84d1a5e269\nmsg = 671fdd\nresult = valid\ntag = 93da9bb81333aee0c785b240d319719d\n\n# tcId = 94\n# draft-irtf-cfrg-gcmsiv-09\naad = 6787f3ea22c127aaf195\nct = a254dad4f3f9\niv = 2f6d1f0434d8848c1177441f\nkey = 6545fc880c94a95198874296d5cc1fd161320b6920ce07787f86743b275d1ab3\nmsg = 195495860f04\nresult = valid\ntag = 6b62b84dc40c84636a5ec12020ec8c2c\n\n# tcId = 95\n# draft-irtf-cfrg-gcmsiv-09\naad = 489c8fde2be2cf97e74e932d4ed87d\nct = 0df9e308678244c44b\niv = 9f572c614b4745914474e7c7\nkey = d1894728b3fed1473c528b8426a582995929a1499e9ad8780c8d63d0ab4149c0\nmsg = c9882e5386fd9f92ec\nresult = valid\ntag = c0fd3dc6628dfe55ebb0b9fb2295c8c2\n\n# tcId = 96\n# draft-irtf-cfrg-gcmsiv-09\naad = 0da55210cc1c1b0abde3b2f204d1e9f8b06bc47f\nct = 8dbeb9f7255bf5769dd56692\niv = 5c9e940fea2f582950a70d5a\nkey = a44102952ef94b02b805249bac80e6f61455bfac8308a2d40d8c845117808235\nmsg = 1db2316fd568378da107b52b\nresult = valid\ntag = 404099c2587f64979f21826706d497d5\n\n# tcId = 97\n# draft-irtf-cfrg-gcmsiv-09\naad = f37de21c7ff901cfe8a69615a93fdf7a98cad481796245709f\nct = 793576dfa5c0f88729a7ed3c2f1bff\niv = 6de71860f762ebfbd08284e4\nkey = 9745b3d1ae06556fb6aa7890bebc18fe6b3db4da3d57aa94842b9803a96e07fb\nmsg = 21702de0de18baa9c9596291b08466\nresult = valid\ntag = b3080d28f6ebb5d3648ce97bd5ba67fd\n\n# tcId = 98\n# draft-irtf-cfrg-gcmsiv-09\naad = 9c2159058b1f0fe91433a5bdc20e214eab7fecef4454a10ef0657df21ac7\nct = 857e16a64915a787637687db4a9519635cdd\niv = 028ec6eb5ea7e298342a94d4\nkey = b18853f68d833640e42a3c02c25b64869e146d7b233987bddfc240871d7576f7\nmsg = b202b370ef9768ec6561c4fe6b7e7296fa85\nresult = valid\ntag = 454fc2a154fea91f8363a39fec7d0a49\n\n# tcId = 99\n# draft-irtf-cfrg-gcmsiv-09\naad = 734320ccc9d9bbbb19cb81b2af4ecbc3e72834321f7aa0f70b7282b4f33df23f167541\nct = 626660c26ea6612fb17ad91e8e767639edd6c9faee\niv = 688089e55540db1872504e1c\nkey = 3c535de192eaed3822a2fbbe2ca9dfc88255e14a661b8aa82cc54236093bbc23\nmsg = ced532ce4159b035277d4dfbb7db62968b13cd4eec\nresult = valid\ntag = 9d6c7029675b89eaf4ba1ded1a286594\n\n# tcId = 100\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = f3f80f2cf0cb2dd9c5984fcda908456cc537703b5ba70324a6793a7bf218d3ea\niv = 000000000000000000000000\nkey = 0000000000000000000000000000000000000000000000000000000000000000\nmsg = 000000000000000000000000000000004db923dc793ee6497c76dcc03a98e108\nresult = valid\ntag = ffffffff000000000000000000000000\n\n# tcId = 101\n# draft-irtf-cfrg-gcmsiv-09\naad = \nct = 18ce4f0b8cb4d0cac65fea8f79257b20888e53e72299e56d\niv = 000000000000000000000000\nkey = 0000000000000000000000000000000000000000000000000000000000000000\nmsg = eb3640277c7ffd1303c7a542d02d3e4c0000000000000000\nresult = valid\ntag = ffffffff000000000000000000000000\n\n# tcId = 102\naad = \nct = \niv = 4da5bf8dfd5852c1ea12379d\nkey = 80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\nmsg = \nresult = valid\ntag = 181720f6ecdcdd332c89d20e09f11b0f\n\n# tcId = 103\naad = \nct = fa\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = 868ee11a7fe13996ac26962a7e861962\n\n# tcId = 104\naad = \nct = c32210c306fac7dc\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = da60d8ff4d550e6801b0ce488ed1b6fe\n\n# tcId = 105\naad = \nct = 0180029193bbb29e326b5817e8ea01\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = 4dd43e861c5f141a693ebc056ed0f0f9\n\n# tcId = 106\naad = \nct = 31cb136074adcd00cf75e9587d7e8424\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 567871b7aaaf3c00f42fd9d5962df514\n\n# tcId = 107\naad = \nct = c97e58e8730a567e8bdf5eb981cdd5f323\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = 4b2dc825fef9dc6bf234f2b8ff798f9e\n\n# tcId = 108\naad = \nct = c2669f9fc8fe6013c4dd22468d43c2af73647b7018531d29\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 06a58c8d44e99b3262cad0e920df1f85\n\n# tcId = 109\naad = \nct = faaef557c31a231115f393c4b3c1a1413fb40b4204458d5f9ef8a9f2f12486ae\niv = 72cfd90ef3026ca22b7e6e6a\nkey = e1731d5854e1b70cb3ffe8b786a2b3ebf0994370954757b9dc8c7bc5354634a3\nmsg = b9c554cbc36ac18ae897df7beecac1dbeb4eafa156bb60ce2e5d48f05715e678\nresult = valid\ntag = 72fc457255aadf708719c46986caefad\n\n# tcId = 110\naad = 02\nct = 12fffdccd1e5a9708fa30ccf99137067\niv = 87345f1055fd9e2102d50656\nkey = 7d00b48095adfa3272050607b264185002ba99957c498be022770f2ce2f3143c\nmsg = e5ccaa441bc814688f8f6e8f28b500b2\nresult = valid\ntag = 688e0b634f51c4f6d983629c8a63c1c0\n\n# tcId = 111\naad = b648\nct = b75b8e96de2ef9704ade5c64cab59671\niv = 87a3163ec0598ad95b3aa713\nkey = 6432717f1db85e41ac7836bce25185a080d5762b9e2b18444b6ec72c3bd8e4dc\nmsg = 02cde168fba3f544bbd0332f7adeada8\nresult = valid\ntag = dec00ceb899c4a6a29be67f1b30435e0\n\n# tcId = 112\naad = bd4cd02fc7502bbdbdf6c9a3cbe8f0\nct = 8e67034384170a646e9eea1606a8e899\niv = 6f573aa86baa492ba46596df\nkey = 8e34cf73d245a1082a920b86364eb896c4946467bcb3d58929fcb36690e6394f\nmsg = 16ddd23ff53f3d23c06334487040eb47\nresult = valid\ntag = fe7a3dd42beb5ff70bb471ff76f0d341\n\n# tcId = 113\naad = 89cce9fb47441d07e0245a66fe8b778b\nct = 7eeb00c65fe7e0c79255e3cd90013588\niv = 1a6518f02ede1da6809266d9\nkey = cb5575f5c7c45c91cf320b139fb594237560d0a3e6f865a67d4f633f2c08f016\nmsg = 623b7850c321e2cf0c6fbcc8dfd1aff2\nresult = valid\ntag = 957d35fb25fdc17f00db33756967fd02\n\n# tcId = 114\naad = d19f2d989095f7ab03a5fde84416e00c0e\nct = f83e3b4333400d6393d085fe947057c4\niv = 564dee49ab00d240fc1068c3\nkey = a5569e729a69b24ba6e0ff15c4627897436824c941e9d00b2e93fddc4ba77657\nmsg = 87b3a4d7b26d8d3203a0de1d64ef82e3\nresult = valid\ntag = 7a30291bb506ae3961f61d683c9d94d1\n\n# tcId = 115\naad = ba446f6f9a0ced22450feb10737d9007fd69abc19b1d4d9049a5551e86ec2b37\nct = 97db4d850442eb33e6089af6f3cadf7b\niv = 8df4b15a888c33286a7b7651\nkey = 3937986af86dafc1ba0c4672d8abc46c207062682d9c264ab06d6c5807205130\nmsg = dc9e9eaf11e314182df6a4eba17aec9c\nresult = valid\ntag = 3ccbb125b2835754c1409d227e374d0b\n\n# tcId = 116\n# Testing for ctr overflow\naad = 40c32e00c2fdab59c1a1c573b46b5068\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = bdd411814564c4218d224d50591c818855a862a0a519ac0b3d71a2edb12aa71eb81959bcc6b84c45aa424c9aca0b7bdd\nresult = valid\ntag = 00000000000000000000000000000000\nflags = ConstructedIv\n\n# tcId = 117\n# Testing for ctr overflow\naad = 2cc3a1973e0560f7224a394e52fa8488\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00010", + "2030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = d04846a01f472262e60a1cb4cfcbdcb05c3f819628a3a49395c5dae96c434b2417ce071699afa74a60c32c0bafd9c01a\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\nflags = ConstructedIv\n\n# tcId = 118\n# Testing for ctr overflow\naad = 2e34d12622a441b557eeb1d647c6cb73\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 79637cee9decf33e3080de3d2c55bd21cd529ba8080b583edb6cfe13cda04bd00debe58b8cd48d6e02a1ecfc4d87923a\nresult = valid\ntag = fefffffffefffffffefffffffeffffff\nflags = ConstructedIv\n\n# tcId = 119\n# Testing for ctr overflow\naad = 0814a95481bf915a4097949e3525c7e7\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000000000000\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 6492a73880dac7f36743715b0fc7063d3e46a25044310bba5849ed88bfcb54b0adbe3978040bda849906e1aa09d1a8e3\nresult = valid\ntag = ffffff7f00112233445566778899aabb\nflags = ConstructedIv\n\n# tcId = 120\n# Testing for ctr overflow\naad = b691ef42f2ab8d1b4a581bb08394b13a\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 010101010101010101010101\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 7848d9e872f40bca1b82a4e7185fb75193b3496cc1dc2a72b86ed156ab8389e71687ed25eb6485e66561fa8c39853368\nresult = valid\ntag = ffffffffffffff7f0011223344556677\nflags = ConstructedIv\n\n# tcId = 121\n# Flipped bit 0 in tag\naad = e144878b0bbbf01b75231277e1e0d114\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 122\n# Flipped bit 0 in tag\naad = 0289eaa93eb084107d2088435ef2a0cd\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 123\n# Flipped bit 1 in tag\naad = f3bd6013669b7d9371727fcb1aafea75\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 124\n# Flipped bit 7 in tag\naad = 922e91b2c5016e4303c737d1608ca25f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 125\n# Flipped bit 7 in tag\naad = 7195dd0addce5dd7014bfddb2f23206f\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 126\n# Flipped bit 7 in tag\naad = 32fc2a53e9678f1fc6d63081c36c6f2c\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 127\n# Flipped bit 8 in tag\naad = c55ba71ee250216f8ecfe822d712dd38\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 128\n# Flipped bit 8 in tag\naad = 5546acf865fc305fbd7ff1092cb9c2c3\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 129\n# Flipped bit 31 in tag\naad = 6b060eebe1843b409a4dfd0be8f86a2b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 130\n# Flipped bit 31 in tag\naad = c4adb92f1a60eb2faff88675f62a7276\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 131\n# Flipped bit 32 in tag\naad = 70c5a8591f52f869c6415a6d7000e253\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 132\n# Flipped bit 56 in tag\naad = 46c788111083d8913153a6e37e5506a3\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 133\n# Flipped bit 56 in tag\naad = 1ed7665962378cec4039c793a8f744d0\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 134\n# Flipped bit 56 in tag\naad = a0f7587c5862609c6dc983780bcda180\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 135\n# Flipped bit 63 in tag\naad = b5fe79f182cb9f2945208e29513928d1\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 136\n# Flipped bit 63 in tag\naad = c1dbf87e4a586b040c53f6dd9063b4cd\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 137\n# Flipped bit 64 in tag\naad = 845466e603ca85a224693d150ae13ba3\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 138\n# Flipped bit 88 in tag\naad = 90a992a8443d65870b4d8bca85e4a698\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 139\n# Flipped bit 88 in tag\naad = e1737a834410e5fba6cdc1d1f7d12c12\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 140\n# Flipped bit 96 in tag\naad = 445c8fffa3d960e39ca86260c66418d8\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 141\n# Flipped bit 97 in tag\naad = 18cb9f5eede6224fa3fcd525cf9f958b\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 142\n# Flipped bit 97 in tag\naad = 8c4fbca37d2e361856b9f80adf455fa0\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 143\n# Flipped bit 97 in tag\naad = bc517fe140abf2b42eb1cafe8c0715a9\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 144\n# Flipped bit 120 in tag\naad = 617e1c5ef62ed35cf678e670f116ff2f\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff001122", + "33445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 145\n# Flipped bit 120 in tag\naad = e71802b7a37e8ef1f001ef0c52c636f2\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 146\n# Flipped bit 120 in tag\naad = be647e37f154d4a8edca5a29ca221cc5\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 147\n# Flipped bit 121 in tag\naad = b3caa01f49c7cbc56c7c92547257957e\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 148\n# Flipped bit 121 in tag\naad = ab0347a2aec4cc4c366583062442ba07\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 149\n# Flipped bit 126 in tag\naad = 62573ef39a27f77b37fb7bfc84e46cee\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 150\n# Flipped bit 126 in tag\naad = 28e3cadfb16834e824642e965588c200\nct = 0000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 759dfbbb8a251ccc\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 151\n# Flipped bit 126 in tag\naad = 7edd2fc15bed224a46dc8608e1766080\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 152\n# Flipped bit 127 in tag\naad = 7e0e03104e2c0ff20ba4c35742180c5b\nct = \niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 0987e35e40981a2730c1740c7201731f\n\n# tcId = 153\n# Flipped bit 127 in tag\naad = 9a24dc75c5ddd3bab57ff532eb86d224\nct = 00000000000000000000000000000000\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = f663044a4e7dd822aba0b7de2d869981\nresult = invalid\ntag = 13a1883272188b4c8d2727178198fe95\n\n# tcId = 154\n# Flipped bit 127 in tag\naad = 3196aec499c15bc043b6866ba0df6e6b\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 155\n# Flipped bit 0..127 in tag\naad = 55a2987aa94bf46ad1b6d253a44c1622\nct = ffffffffffffffff\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 49861b1fb6bcf8e4\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n", }; -static const size_t kLen59 = 66052; +static const size_t kLen92 = 81097; -static const char *kData59[] = { - "# Imported from Wycheproof's aes_gcm_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-GCM\n# Generator version: 0.4.12\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\naad = \nct = 26073cc1d851beff176384dc9896d5ff\niv = 028318abc1824029138141a2\nkey = 5b9604fe14eadba931b0ccf34843dab9\nmsg = 001d0c231287c1182784554ca3a21908\nresult = valid\ntag = 0a3ea7a5487cb5f7d70fb6c58d038554\n\n# tcId = 2\naad = 00112233445566778899aabbccddeeff\nct = 49d8b9783e911913d87094d1f63cc765\niv = 921d2507fa8007b7bd067d34\nkey = 5b9604fe14eadba931b0ccf34843dab9\nmsg = 001d0c231287c1182784554ca3a21908\nresult = valid\ntag = 1e348ba07cca2cf04c618cb4d43a5b92\n\n# tcId = 3\naad = aac39231129872a2\nct = eea945f3d0f98cc0fbab472a0cf24e87\niv = 0432bc49ac34412081288127\nkey = aa023d0478dcb2b2312498293d9a9129\nmsg = 2035af313d1346ab00154fea78322105\nresult = valid\ntag = 4bb9b4812519dadf9e1232016d068133\n\n# tcId = 4\naad = \nct = 54\niv = b30c084727ad1c592ac21d12\nkey = 384ea416ac3c2f51a76e7d8226346d4e\nmsg = 35\nresult = valid\ntag = 7c1e4ae88bb27e5638343cb9fd3f6337\n\n# tcId = 5\naad = \nct = a036ead03193903f\niv = b5e006ded553110e6dc56529\nkey = cae31cd9f55526eb038241fc44cac1e5\nmsg = d10989f2c52e94ad\nresult = valid\ntag = 3b626940e0e9f0cbea8e18c437fd6011\n\n# tcId = 6\naad = \nct = 8a9992388e735f80ee18f4a63c10ad\niv = ecb0c42f7000ef0e6f95f24d\nkey = dd6197cd63c963919cf0c273ef6b28bf\nmsg = 4dcc1485365866e25ac3f2ca6aba97\nresult = valid\ntag = 1486a91cccf92c9a5b00f7b0e034891c\n\n# tcId = 7\naad = \nct = f7bd379d130477176b8bb3cb23dbbbaa\niv = 0e1666f2dc652f7708fb8f0d\nkey = ffdf4228361ea1f8165852136b3480f7\nmsg = 25b12e28ac0ef6ead0226a3b2288c800\nresult = valid\ntag = 1ee6513ce30c7873f59dd4350a588f42\n\n# tcId = 8\naad = \nct = 0de51fe4f7f2d1f0f917569f5c6d1b009c\niv = 965ff6643116ac1443a2dec7\nkey = c15ed227dd2e237ecd087eaaaad19ea4\nmsg = fee62fde973fe025ad6b322dcdf3c63fc7\nresult = valid\ntag = 6cd8521422c0177e83ef1b7a845d97db\n\n# tcId = 9\naad = \nct = 7cd9f4e4f365704fff3b9900aa93ba54b672bac554275650\niv = fbbc04fd6e025b7193eb57f6\nkey = a8ee11b26d7ceb7f17eaa1e4b83a2cf6\nmsg = c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf\nresult = valid\ntag = f4eb193241226db017b32ec38ca47217\n\n# tcId = 10\naad = c3\nct = f58d453212c2c8a436e9283672f579f119122978\niv = 32bcb9b569e3b852d37c766a\nkey = 28ff3def08179311e2734c6d1c4e2871\nmsg = dfc61a20df8505b53e3cd59f25770d5018add3d6\nresult = valid\ntag = 5901131d0760c8715901d881fdfd3bc0\n\n# tcId = 11\naad = 834afdc5c737186b\nct = bf864616c2347509ca9b10446379b9bdbb3b8f64\niv = 9c3a4263d983456658aad4b1\nkey = e63a43216c08867210e248859eb5e99c\nmsg = b14da56b0462dc05b871fc815273ff4810f92f4b\nresult = valid\ntag = a97d25b490390b53c5db91f6ee2a15b8\n\n# tcId = 12\naad = 4020855c66ac4595058395f367201c4c\nct = a6f2ef3c7ef74a126dd2d5f6673964e27d5b34b6\niv = 33e90658416e7c1a7c005f11\nkey = 38449890234eb8afab0bbf82e2385454\nmsg = f762776bf83163b323ca63a6b3adeac1e1357262\nresult = valid\ntag = b8bbdc4f5014bc752c8b4e9b87f650a3\n\n# tcId = 13\naad = 76eb5f147250fa3c12bff0a6e3934a0b16860cf11646773b\nct = bd64802cfebaeb487d3a8f76ce943a37b3472dd5\niv = 9f0d85b605711f34cd2a35ba\nkey = 6a68671dfe323d419894381f85eb63fd\nmsg = 0fc67899c3f1bbe196d90f1eca3797389230aa37\nresult = valid\ntag = fce9a5b530c7d7af718be1ec0ae9ed4d\n\n# tcId = 14\n# special case\naad = \nct = f62d84d649e56bc8cfedc5d74a51e2f7\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = ebd4a3e10cf6d41c50aeae007563b072\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 15\n# special case\naad = \nct = 431f31e6840931fd95f94bf88296ff69\niv = ffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff\nmsg = d593c4d8224f1b100c35e4f6c4006543\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 16\n# Flipped bit 0 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9847dbc326a06e988c77ad3863e6083\n\n# tcId = 17\n# Flipped bit 1 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = da847dbc326a06e988c77ad3863e6083\n\n# tcId = 18\n# Flipped bit 7 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 58847dbc326a06e988c77ad3863e6083\n\n# tcId = 19\n# Flipped bit 8 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8857dbc326a06e988c77ad3863e6083\n\n# tcId = 20\n# Flipped bit 31 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847d3c326a06e988c77ad3863e6083\n\n# tcId = 21\n# Flipped bit 32 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc336a06e988c77ad3863e6083\n\n# tcId = 22\n# Flipped bit 33 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc306a06e988c77ad3863e6083\n\n# tcId = 23\n# Flipped bit 63 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a066988c77ad3863e6083\n\n# tcId = 24\n# Flipped bit 64 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e989c77ad3863e6083\n\n# tcId = 25\n# Flipped bit 71 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e908c77ad3863e6083\n\n# tcId = 26\n# Flipped bit 77 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988e77ad3863e6083\n\n# tcId = 27\n# Flipped bit 80 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77bd3863e6083\n\n# tcId = 28\n# Flipped bit 96 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3873e6083\n\n# tcId = 29\n# Flipped bit 97 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3843e6083\n\n# tcId = 30\n# Flipped bit 103 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3063e6083\n\n# tcId = 31\n# Flipped bit 120 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6082\n\n# tcId = 32\n# Flipped bit 121 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6081\n\n# tcId = 33\n# Flipped bit 126 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e60c3\n\n# tcId = 34\n# Flipped bit 127 in tag\naad = \nct = eb156d081ed6b6b55f4612f02", - "1d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6003\n\n# tcId = 35\n# Flipped bits 0 and 64 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9847dbc326a06e989c77ad3863e6083\n\n# tcId = 36\n# Flipped bits 31 and 63 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847d3c326a066988c77ad3863e6083\n\n# tcId = 37\n# Flipped bits 63 and 127 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a066988c77ad3863e6003\n\n# tcId = 38\n# all bits of tag flipped\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 277b8243cd95f9167738852c79c19f7c\n\n# tcId = 39\n# Tag changed to all zero\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 40\n# tag changed to all 1\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 41\n# msbs changed in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 5804fd3cb2ea86690847fa5306bee003\n\n# tcId = 42\n# lsbs changed in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9857cbd336b07e889c67bd2873f6182\n\n[ivSize = 64]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 43\naad = aac39231129872a2\nct = 64c36bb3b732034e3a7d04efc5197785\niv = 0432bc49ac344120\nkey = aa023d0478dcb2b2312498293d9a9129\nmsg = 2035af313d1346ab00154fea78322105\nresult = valid\ntag = b7d0dd70b00d65b97cfd080ff4b819d1\n\n# tcId = 44\n# unusual IV size\naad = \nct = 9a078a04d14938918e004358\niv = 68cbeafe8f9e8a66\nkey = 25dd4d6cad5a4604957847c8c6d3fc4e\nmsg = 5c347835b3fa61c2ce253e5a\nresult = valid\ntag = 5452843e32c13c3e35ed8230fe3446c0\n\n[ivSize = 128]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 45\naad = 1a0293d8f90219058902139013908190bc490890d3ff12a3\nct = 64069c2d58690561f27ee199e6b479b6369eec688672bde9\niv = 3254202d854734812398127a3d134421\nkey = 2034a82547276c83dd3212a813572bce\nmsg = 02efd2e5782312827ed5d230189a2a342b277ce048462193\nresult = valid\ntag = 9b7abadd6e69c1d9ec925786534f5075\n\n# tcId = 46\naad = \nct = fd\niv = 9477849d6ccdfca112d92e53fae4a7ca\nkey = 209e6dbf2ad26a105445fc0207cd9e9a\nmsg = 01\nresult = valid\ntag = 032df7bba5d8ea1a14f16f70bd0e14ec\n\n# tcId = 47\naad = \nct = 2f333087bdca58219f9bfc273e45cc\niv = 5171524568e81d97e8c4de4ba56c10a0\nkey = a549442e35154032d07c8666006aa6a2\nmsg = 1182e93596cac5608946400bc73f3a\nresult = valid\ntag = e06d1ef473132957ad37eaef29733ca0\n\n# tcId = 48\naad = \nct = a780bd01c80885156c88a973264c8ee5\niv = 1275115499ae722268515bf0c164b49c\nkey = cfb4c26f126f6a0acb8e4e220f6c56cd\nmsg = 09dfd7f080275257cf97e76f966b1ad9\nresult = valid\ntag = 2adeffa682c8d8a81fada7d9fcdd2ee2\n\n# tcId = 49\naad = \nct = 7e47e10fe3c6fbfa381770eaf5d48d1482e71e0c44dff1e30ca6f95d92052084\niv = 95c1dd8c0f1705ece68937901f7add7b\nkey = 0b11ef3a08c02970f74281c860691c75\nmsg = f693d4edd825dbb0618d91113128880dbebb23e25d00ed1f077d870be9cc7536\nresult = valid\ntag = d01444fa5d9c499629d174ff3927a1ac\n\n# tcId = 50\n# J0:000102030405060708090a0b0c0d0e0f\naad = \nct = 00078d109d92143fcd5df56721b884fac64ac7762cc09eea2a3c68e92a17bdb575f87bda18be564e\niv = f95fde4a751913202aeeee32a0b55753\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 152a65045fe674f97627427af5be22da\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 51\n# J0:00000000000000000000000000000000\naad = \nct = 84d4c9c08b4f482861e3a9c6c35bc4d91df927374513bfd49f436bd73f325285daef4ff7e13d46a6\niv = 7b95b8c356810a84711d68150a1b7750\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 213a3cb93855d18e69337eee66aeec07\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 52\n# J0:ffffffffffffffffffffffffffffffff\naad = \nct = 948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc3c60ad5a949886de968cf53ea6462aed\niv = 1a552e67cdc4dc1a33b824874ebf0bed\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 99b381bfa2af9751c39d1b6e86d1be6a\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 53\n# J0:fffffffffffffffffffffffffffffffe\naad = \nct = 64b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc\niv = dd9d0b4a0c3d681524bffca31d907661\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 5281efc7f13ac8e14ccf5dca7bfbfdd1\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 54\n# J0:fffffffffffffffffffffffffffffffd\naad = \nct = 2bb69c3e5d1f91815c6b87a0d5bbea7164b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e8\niv = 57c5643c4e37b4041db794cfe8e1f0f4\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = a3ea2c09ee4f8c8a12f45cddf9aeff81\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 55\n# J0:000102030405060708090a0bffffffff\naad = \nct = 127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4af37d0fe9af033052bd537c4ae978f60\niv = 99821c2dd5daecded07300f577f7aff1\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 07eb2fe4a958f8434d40684899507c7c\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 56\n# J0:000102030405060708090a0bfffffffe\naad = \nct = 0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4\niv = 5e4a3900142358d1c774d8d124d8d27d\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = f145c2dcaf339eede427be934357eac0\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 57\n# J0:000102030405060708090a0bfffffffd\naad = \nct = f0c6ffc18bd46df5569185a9afd169eb0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57\niv = d4125676562984c0fe7cb0bdd1a954e8\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = facd0bfe8701b7b4a2ba96d98af52bd9\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 58\n# J0:000102030405060708090a0b7fffffff\naad = \nct = d6928e094c06e0a7c4db42184cf7529e95de88b767edebe9b343000be3dab47ea08b744293eed698\niv = b97ec62a5e5900ccf9e4be332e336091\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag =", - " a03e729dcfd7a03155655fece8affd7e\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 59\n# J0:000102030405060708090a0b7ffffffe\naad = \nct = d82ce58771bf6487116bf8e96421877ed6928e094c06e0a7c4db42184cf7529e95de88b767edebe9\niv = 7eb6e3079fa0b4c3eee366177d1c1d1d\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 1e43926828bc9a1614c7b1639096c195\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 60\n# J0:000102030405060708090a0bffff7fff\naad = \nct = a197a37a5d79697078536bc27fe46cd8d475526d9044aa94f088a054f8e380c64f79414795c61480\niv = 0314fcd10fdd675d3c612962c931f635\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = f08baddf0b5285c91fc06a67fe4708ca\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 61\n# J0:000102030405060708090a0bffff7ffe\naad = \nct = 149fde9abbd3a43c2548575e0db9fb84a197a37a5d79697078536bc27fe46cd8d475526d9044aa94\niv = c4dcd9fcce24d3522b66f1469a1e8bb9\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 62a4b6875c288345d6a454399eac1afa\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 62\n# special case\naad = \nct = 45a3f89d02918bfd0c8161658ccc9795\niv = 00000000000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = bec6fa05c1718b9b84c47345bbed7dcb\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 63\n# special case\naad = \nct = 1cd5a06214235ceb044d4bad7b047312\niv = ffffffffffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff\nmsg = 4d82639c39d3f3490ee903dd0be7afcf\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 64\naad = 00000000ffffffff\nct = e27abdd2d2a53d2f136b\niv = 00112233445566778899aabb\nkey = 92ace3e348cd821092cd921aa3546374299ab46209691bc28b8752d17f123c20\nmsg = 00010203040506070809\nresult = valid\ntag = 9a4a2579529301bcfb71c78d4060f52c\n\n# tcId = 65\naad = aabbccddeeff\nct = \niv = 00112233445566778899aabb\nkey = 29d3a44f8723dc640239100c365423a312934ac80239212ac3df3421a2098123\nmsg = \nresult = valid\ntag = 2a7d77fa526b8250cb296078926b5020\n\n# tcId = 66\naad = \nct = 06\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = 633c1e9703ef744ffffb40edf9d14355\n\n# tcId = 67\naad = \nct = cf332a12fdee800b\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = 602e8d7c4799d62c140c9bb834876b09\n\n# tcId = 68\naad = \nct = 43fc101bff4b32bfadd3daf57a590e\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = ec04aacb7148a8b8be44cb7eaf4efa69\n\n# tcId = 69\naad = \nct = f58c16690122d75356907fd96b570fca\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 28752c20153092818faba2a334640d6e\n\n# tcId = 70\naad = \nct = 73a6b6f45f6ccc5131e07f2caa1f2e2f56\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = 2d7379ec1db5952d4e95d30c340b1b1d\n\n# tcId = 71\naad = \nct = 0843fff52d934fc7a071ea62c0bd351ce85678cde3ea2c9e\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 7355fde599006715053813ce696237a8\n\n# tcId = 72\naad = c0\nct = eb5500e3825952866d911253f8de860c00831c81\niv = 98bc2c7438d5cd7665d76f6e\nkey = b279f57e19c8f53f2f963f5f2519fdb7c1779be2ca2b3ae8e1128b7d6c627fc4\nmsg = fcc515b294408c8645c9183e3f4ecee5127846d1\nresult = valid\ntag = ecb660e1fb0541ec41e8d68a64141b3a\n\n# tcId = 73\naad = 956846a209e087ed\nct = feca44952447015b5df1f456df8ca4bb4eee2ce2\niv = 376187894605a8d45e30de51\nkey = cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17\nmsg = e28e0e9f9d22463ac0e42639b530f42102fded75\nresult = valid\ntag = 082e91924deeb77880e1b1c84f9b8d30\n\n# tcId = 74\naad = ab2ac7c44c60bdf8228c7884adb20184\nct = 43dda832e942e286da314daa99bef5071d9d2c78\niv = 5a86a50a0e8a179c734b996d\nkey = f32364b1d339d82e4f132d8f4a0ec1ff7e746517fa07ef1a7f422f4e25a48194\nmsg = 43891bccb522b1e72a6b53cf31c074e9d6c2df8e\nresult = valid\ntag = c3922583476ced575404ddb85dd8cd44\n\n# tcId = 75\naad = 972ab4e06390caae8f99dd6e2187be6c7ff2c08a24be16ef\nct = a929ee7e67c7a2f91bbcec6389a3caf43ab49305\niv = bc2a7757d0ce2d8b1f14ccd9\nkey = ff0089ee870a4a39f645b0a5da774f7a5911e9696fc9cad646452c2aa8595a12\nmsg = 748b28031621d95ee61812b4b4f47d04c6fc2ff3\nresult = valid\ntag = ebec6774b955e789591c822dab739e12\n\n# tcId = 76\n# special case\naad = \nct = 23293e9b07ca7d1b0cae7cc489a973b3\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 561008fa07a68f5c61285cd013464eaf\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# special case\naad = \nct = 7cb6fc7c6abc009efe9551a99f36a421\niv = ffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = c6152244cea1978d3e0bc274cf8c0b3b\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 78\n# Flipped bit 0 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9de8fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 79\n# Flipped bit 1 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ee8fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 80\n# Flipped bit 7 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 1ce8fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 81\n# Flipped bit 8 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce9fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 82\n# Flipped bit 31 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fe76d8ab1bf1bf887232eab590dd\n\n# tcId = 83\n# Flipped bit 32 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d9ab1bf1bf887232eab590dd\n\n# tcId = 84\n# Flipped bit 33 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6daab1bf1bf887232eab590dd\n\n# tcId = 85\n# Flipped bit 63 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1b71bf887232eab590dd\n\n# tcId = 86\n# Flipped bit 64 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122", - "232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1be887232eab590dd\n\n# tcId = 87\n# Flipped bit 71 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf13f887232eab590dd\n\n# tcId = 88\n# Flipped bit 77 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bfa87232eab590dd\n\n# tcId = 89\n# Flipped bit 80 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887332eab590dd\n\n# tcId = 90\n# Flipped bit 96 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232ebb590dd\n\n# tcId = 91\n# Flipped bit 97 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232e8b590dd\n\n# tcId = 92\n# Flipped bit 103 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf8872326ab590dd\n\n# tcId = 93\n# Flipped bit 120 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab590dc\n\n# tcId = 94\n# Flipped bit 121 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab590df\n\n# tcId = 95\n# Flipped bit 126 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab5909d\n\n# tcId = 96\n# Flipped bit 127 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab5905d\n\n# tcId = 97\n# Flipped bits 0 and 64 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9de8fef6d8ab1bf1be887232eab590dd\n\n# tcId = 98\n# Flipped bits 31 and 63 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fe76d8ab1b71bf887232eab590dd\n\n# tcId = 99\n# Flipped bits 63 and 127 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1b71bf887232eab5905d\n\n# tcId = 100\n# all bits of tag flipped\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 631701092754e40e40778dcd154a6f22\n\n# tcId = 101\n# Tag changed to all zero\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 102\n# tag changed to all 1\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 103\n# msbs changed in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 1c687e76582b9b713f08f2b26a35105d\n\n# tcId = 104\n# lsbs changed in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9de9fff7d9aa1af0be897333ebb491dc\n\n[ivSize = 128]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 105\n# J0:000102030405060708090a0b0c0d0e0f\naad = \nct = f83cee467336e1a09b75f24e9b4385c99c13e6af722256a66129ece961fe803b167bad206f5017fb\niv = 029e0e777db092b12535d043012f09ba\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 09338a42f0acc14f97c064f52f5f1688\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 106\n# J0:00000000000000000000000000000000\naad = \nct = 0b32b648a2c28e9edd7cee08eeeb900034cae7215e5ab1e201bd2eed1032c5a97866ba582a3458a4\niv = f1be3b06b7feac07e7eab629f556047b\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 90be3606de58bd778fa5beff4a4102bd\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 107\n# J0:ffffffffffffffffffffffffffffffff\naad = \nct = 575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a68d8d9d8d23434de2cd07733be49d62ac1ae085\niv = de9eb63b1daed321a11b7547cc9e223c\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 6e4d6396125a10df5443bd0cbc8566d1\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 108\n# J0:fffffffffffffffffffffffffffffffe\naad = \nct = 2a818888d1f09f32aa7beedd2869b446575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a68d8d9d\niv = 40bb0abebc483ff6d5671241ff5d66c6\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = dc481f172545268eff63ab0490403dc3\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 109\n# J0:fffffffffffffffffffffffffffffffd\naad = \nct = 96d36b795f8e7edf6a8e0dbcd20d6c072a818888d1f09f32aa7beedd2869b446575e2ecec2b3c72d\niv = 20d5cf305e630a8f49e3bb4bab18abc9\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 8a3a22bf2592958b930292aa47f590e8\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 110\n# J0:000102030405060708090a0bffffffff\naad = \nct = cfce3d920f0e01f0bb49a751955b236d1b887baefd25c47f41303c46d5c7bf9ca4c2c45a8f1e6656\niv = 255358a71a0e5731f6dd6ce28e158ae6\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 2db9dc1b7fd315df1c95432432fcf474\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test f", - "or correct wrapping of the counter.\n\n# tcId = 111\n# J0:000102030405060708090a0bfffffffe\naad = \nct = 69a24169792e9a07f6e6f4736fa972dccfce3d920f0e01f0bb49a751955b236d1b887baefd25c47f\niv = bb76e422bbe8bbe682a10be4bdd6ce1c\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 82ad967f7ac19084354f69a751443fb2\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 112\n# J0:000102030405060708090a0bfffffffd\naad = \nct = 4e4417a83beac1eb7e24456a05f6ba5569a24169792e9a07f6e6f4736fa972dccfce3d920f0e01f0\niv = db1821ac59c38e9f1e25a2eee9930313\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 472d5dd582dc05ef5fc496b612023cb2\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 113\n# J0:000102030405060708090a0b7fffffff\naad = \nct = 6f8e174efca3097299f784efd4caff0bf168c3e5165b9ad3d20062009848044eef8f31f7d2fead05\niv = f7a02ecca03064b2ef3cce9feab79f07\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = caff723826df150934aee3201ba175e7\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 114\n# J0:000102030405060708090a0b7ffffffe\naad = \nct = af193090ce3d43a388a1d294a09616906f8e174efca3097299f784efd4caff0bf168c3e5165b9ad3\niv = 6985924901d688659b40a999d974dbfd\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 3b08958be1286c2b4acba02b3674adb2\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 115\n# J0:000102030405060708090a0bffff7fff\naad = \nct = 5deccf838b2cf5f869c90d2a611160b1e578ab8121b93735cba4a1930647b8c4c84bf776333ee45a\niv = 3f1188546c65ed0fc55e75032c68ee44\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = c14d52208f0f51b816a48971eaf8ff7e\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 116\n# J0:000102030405060708090a0bffff7ffe\naad = \nct = d2cae1684aa407a13a2e2da5357e29f55deccf838b2cf5f869c90d2a611160b1e578ab8121b93735\niv = a13434d1cd8301d8b12212051fabaabe\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = ea2d018099cd7925c507cef0ceddb0ae\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 117\n# special case\naad = \nct = 541b835dc828d541073f7d7d7504ebf5\niv = 00000000000000000000000000000000\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 5c7d3f81d4b5055ed6f8db53614587a4\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 118\n# special case\naad = \nct = a3f36154331c196624564bc395e49c3b\niv = ffffffffffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 6a347ad1190e72ede611044e7475f0eb\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 119\naad = \nct = dc\niv = 1e8259e0a43e571068f701cd2064fc0c\nkey = cee9abbc26b63e169f0ced621fe21d95904e75b881d93e6b\nmsg = 46\nresult = valid\ntag = af1f5535b125b34fc466902ea40cb3a2\n\n# tcId = 120\naad = \nct = 2aab5c87dcb4a4dae4e975ddb65aab\niv = c84442d6975f0359737de0fa828f958e\nkey = 189f0bd390ba40632586a45c39735c2b87113329c800f394\nmsg = b4bcd7b8eeca3050dd17682c6a914e\nresult = valid\ntag = 6b03b7557c7131e2352e495d54e61aef\n\n# tcId = 121\naad = \nct = d127fd2e67c0887d90eb92b91f357d97\niv = 13cd526ec77b58f62d48d03f8b88f2b8\nkey = b0724f15df5b792c2f49bc51df0ac5aad69be0030981613c\nmsg = 8da3ab9c3d195b04df452ad23953da4d\nresult = valid\ntag = eb05bda937faeed27f8833295d4ba559\n\n# tcId = 122\naad = \nct = 344c2cea17b06cb3da272e22a22a3a71ee0eaa1959a7facfff464660ddccedd1\niv = 1d3d62eccd8ac5e896f2654a7f606fc9\nkey = 998750ba784841e40a7c5b03985732b6397e5459a3843954\nmsg = 2f60ca3494a958dc3e6ebeb5d0b4e6dda0d0c4331ab9c957f6422a5100878ebf\nresult = valid\ntag = bab7fbf499ff06aad5f757b1c1a4fcc0\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 123\n# special case\naad = \nct = 3f875c9bd7d8511448459468e398c3b2\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 0b4dbbba8982e0f649f8ba85f3aa061b\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 124\n# special case\naad = \nct = 210dabea4364c6d5b3429e7743322936\niv = ffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 1ae93688ef7e2650a9342ad4718b2780\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 125\naad = \nct = fe\niv = 34047bc39b9c608384dff5b8\nkey = 21218af790428f8024d3e7e1428c9fcf578c216636d60e73\nmsg = e3\nresult = valid\ntag = 2e982e24b81cd120d35a70fe6935e665\n\n# tcId = 126\naad = \nct = 99f2ff1c8a44e5f2\niv = 4ebc13cf4636cc7c45e560a7\nkey = 3a8bf543c480925632118245bcbf5d01522b987a31a33da3\nmsg = 53fc72e71b59eeb3\nresult = valid\ntag = 6870f104ddc514477b400336fb01860e\n\n# tcId = 127\naad = \nct = afe8ef41591bfcc00db3c880ceb186\niv = 6e7ff7f0797685cfc44b05ff\nkey = 92f4d2672fceec43963ccffb17e6ea7578b11418b06a3b82\nmsg = c3ec16adb184affa8ae9738bffb916\nresult = valid\ntag = 29fff7f285768645c9c8bf7a471c9393\n\n# tcId = 128\naad = \nct = 90339dca02ef717f1603994aee6cf6d2\niv = be0326d23bdc2c64648d13f4\nkey = bcb6bc5ee6743df1396a34639327b25809ec9c81dd6a0c0e\nmsg = 80474a3a3b809560eee2ce7a7a33ea07\nresult = valid\ntag = e3d33e01ce64f271783147de226228bc\n\n# tcId = 129\naad = \nct = b98ed6321679941a3e521834296686ad98\niv = b6be6cd0681235d826aa28ea\nkey = 5e1d28213e092536525bbae09e214af4c891e202b2b4fa4f\nmsg = 53d59433a7db7f41b31ccb6d4a2d789965\nresult = valid\ntag = 9f50c03e055e519712c582ec9db3235b\n\n# tcId = 130\naad = \nct = addd303651119e52f6170dfc7a915064253d57532987b9ab\niv = b022067048505b20946216ef\nkey = 7f672d85e151aa490bc0eec8f66b5e5bee74af11642be3ff\nmsg = ef6412c72b03c643fa02565a0ae2378a9311c11a84065f80\nresult = valid\ntag = fa0484f8baa95f5b7a31c56d1b34c58b\n\n# tcId = 131\naad = cb\nct = 0d2c3a3c0cc4b40e70ed45e188e356a0e1533b31\niv = 817fe51c31f2879141a34335\nkey = 969fed5068541d65418c2c1de8fe1f845e036030496e1272\nmsg = 3d8233191a2823bf767e99167b1d4af4f4848458\nresult = valid\ntag = 92909a80e90540e1878ab59ef300072b\n\n# tcId = 132\naad = 2ed8487153e21b12\nct = c7c1cbb85ce2a0a3f32cb9ef01ad45ec1118b66d\niv = 62b9cf1e923bc1138d05d205\nkey = fa5b9b41f93f8b682c04ba816c3fecc24eec095b04dd7497\nmsg = 18159841813a69fc0f8f4229e1678da7c9016711\nresult = valid\ntag = 253317f98bdab87531ece20475cd9ebb\n\n# tcId = 133\naad = 74318d8876528243f1944b73eb77e96e\nct = ecf5e403f19c007c8da7a456caf0a6d75762829b\niv = 3f1a1e02e90a4ba7a1db9df2\nkey = fbfb395662787e2d25a2e7510f818e825936a35114e237c9\nmsg = 2952a3d64107d5cbb9602239d05a5c5c222cf72b\nresult = valid\ntag = e0877a100f9dd9d6795f0e74c56a9fab\n\n# tcId = 134\naad = 5ca354a4cb8e4fc9798aa209ad4f739dc7c232fdd1f22584\nct = 94d844d98b9467daa7e8dde7f4290037354d7fb2\niv = 0802ae86c75a73bf79561521\nkey = 5d8e9c2222316c9ed5ff94513cc957436ae447a6e1a73a29\nmsg = 42b4439e1d2116f834b91c516a26299df279956b\nresult = valid\ntag = 62196638590cef429d6b1d1a59839c02\n\n# tcId = 135\n# Flipped bit 0 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b5e44c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 136\n# Flipped bit 1 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b6e44c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 137\n# Flipped bit 7 in tag\naad = \nct = ", - "458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 34e44c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 138\n# Flipped bit 8 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e54c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 139\n# Flipped bit 31 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44cdb2fe90e4c78f358da0d99cb64\n\n# tcId = 140\n# Flipped bit 32 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2ee90e4c78f358da0d99cb64\n\n# tcId = 141\n# Flipped bit 33 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2de90e4c78f358da0d99cb64\n\n# tcId = 142\n# Flipped bit 63 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90ecc78f358da0d99cb64\n\n# tcId = 143\n# Flipped bit 64 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c79f358da0d99cb64\n\n# tcId = 144\n# Flipped bit 71 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4cf8f358da0d99cb64\n\n# tcId = 145\n# Flipped bit 77 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78d358da0d99cb64\n\n# tcId = 146\n# Flipped bit 80 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f359da0d99cb64\n\n# tcId = 147\n# Flipped bit 96 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0c99cb64\n\n# tcId = 148\n# Flipped bit 97 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0f99cb64\n\n# tcId = 149\n# Flipped bit 103 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da8d99cb64\n\n# tcId = 150\n# Flipped bit 120 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cb65\n\n# tcId = 151\n# Flipped bit 121 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cb66\n\n# tcId = 152\n# Flipped bit 126 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cb24\n\n# tcId = 153\n# Flipped bit 127 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cbe4\n\n# tcId = 154\n# Flipped bits 0 and 64 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b5e44c5b2fe90e4c79f358da0d99cb64\n\n# tcId = 155\n# Flipped bits 31 and 63 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44cdb2fe90ecc78f358da0d99cb64\n\n# tcId = 156\n# Flipped bits 63 and 127 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90ecc78f358da0d99cbe4\n\n# tcId = 157\n# all bits of tag flipped\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 4b1bb3a4d016f1b3870ca725f266349b\n\n# tcId = 158\n# Tag changed to all zero\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 159\n# tag changed to all 1\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 160\n# msbs changed in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3464ccdbaf698eccf873d85a8d194be4\n\n# tcId = 161\n# lsbs changed in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b5e54d5a2ee80f4d79f259db0c98ca65\n\n[ivSize = 128]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 162\n# J0:000102030405060708090a0b0c0d0e0f\naad = \nct = 28e1c5232f4ee8161dbe4c036309e0b3254e9212bef0a93431ce5e5604c8f6a73c18a3183018b770\niv = 5c2ea9b695fcf6e264b96074d6bfa572\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = d5808a1bd11a01129bf3c6919aff2339\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 163\n# J0:00000000000000000000000000000000\naad = \nct = cceebeb4fe4cd90c514e52d2327a2ecd75393661006cf2476d8620149aef3d1cdce491fff3e7a7a3\niv = 57b3a81f2c36b6b06577ca0fbab8fa8e\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 8132e865b69d64ef37db261f80cbbe24\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 164\n# J0:ffffffffffffffffffffffffffffffff\naad = \nct = 4f4350565d91d9aa8c5f4048550492ad6d6fdabf66da5d1e2af7bfe1a8aadaa0baa3de38a41d9713\niv = ce20a7e870696a5e68533c465bad2ba1\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 155da6441ec071ef2d8e6cffbacc1c7c\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 165\n", - "# J0:fffffffffffffffffffffffffffffffe\naad = \nct = 8316a53167b6de1a7575700693ffef274f4350565d91d9aa8c5f4048550492ad6d6fdabf66da5d1e\niv = 918e3c19dbdfee2db18156c5b93f3d75\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 6c574aa6a2490cc3b2f2f8f0ffbc56c4\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 166\n# J0:fffffffffffffffffffffffffffffffd\naad = \nct = 5175927513e751eb309f45bc2ef225f28316a53167b6de1a7575700693ffef274f4350565d91d9aa\niv = 717d900b270462b9dbf7e9419e890609\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 8082a761e1d755344bf29622144e7d39\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 167\n# J0:000102030405060708090a0bffffffff\naad = \nct = 36b3fbecd09178d04527fb37544f5579d20d60a41266f685c48098e1a52804ca387d90709d3268dd\niv = ecd52120af240e9b4bf3b9d1eeb49434\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 033e0ef2953ebfd8425737c7d393f89a\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 168\n# J0:000102030405060708090a0bfffffffe\naad = \nct = 16929b773051f12b0adac95f65e21a7f36b3fbecd09178d04527fb37544f5579d20d60a41266f685\niv = b37bbad104928ae89221d3520c2682e0\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = ca448bb7e52e897eca234ef343d057d0\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 169\n# J0:000102030405060708090a0bfffffffd\naad = \nct = 6d3faefaf691d58163846f8d4b9ffd5916929b773051f12b0adac95f65e21a7f36b3fbecd09178d0\niv = 538816c3f849067cf8576cd62b90b99c\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 84f49740e6757f63dd0df7cb7656d0ef\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 170\n# J0:000102030405060708090a0b7fffffff\naad = \nct = d60196c2d14fcf30c0991d2721ddc52d385f407a16691dade82c9023c855fd8e2e8fbb562102f018\niv = d10e631943cd3bdababab2bbd13951c0\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 877e15d9889e69a99fcc6d727465c391\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 171\n# J0:000102030405060708090a0b7ffffffe\naad = \nct = 948fbceca12a6e4fabb79b6d965e336fd60196c2d14fcf30c0991d2721ddc52d385f407a16691dad\niv = 8ea0f8e8e87bbfa96368d83833ab4714\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = cd5757626945976ba9f0264bd6bee894\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 172\n# J0:000102030405060708090a0bffff7fff\naad = \nct = a1a0120660ff52e6b1700b12c54d2d33b94b00cd7882d8857d84e6e183a1dea6ee85a7da84fbc35d\niv = 7b2df4fbed1de2727eb24898e5deabb9\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = b015d72da62c81cb4d267253b20db9e5\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 173\n# J0:000102030405060708090a0bffff7ffe\naad = \nct = 5e3434b45edbf0d1f6e02d1144dbf867a1a0120660ff52e6b1700b12c54d2d33b94b00cd7882d885\niv = 24836f0a46ab6601a760221b074cbd6d\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = ee74ccb30d649ebf6916d05a7dbe5696\n# The counter for AES-GCM is reduced modulo 2**32. This test vector was\n# constructed to test for correct wrapping of the counter.\n\n# tcId = 174\n# special case\naad = \nct = 265c42e2b96ea1de9c24f7182e337390\niv = 00000000000000000000000000000000\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 8d74f1c97243d362577ff376c393d2dc\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 175\n# special case\naad = \nct = 988f47668ea650cbaa6714711abe268d\niv = ffffffffffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 884df0e76f3ce227bf9595d103825a46\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 176\naad = \nct = 3f\niv = 0ad570d8863918fe89124e09d125a271\nkey = b7797eb0c1a6089ad5452d81fdb14828c040ddc4589c32b565aad8cb4de3e4a0\nmsg = ed\nresult = valid\ntag = fd8f593b83314e33c5a72efbeb7095e8\n\n# tcId = 177\naad = \nct = 041341078f0439e50b43c991635117\niv = 2a55caa137c5b0b66cf3809eb8f730c4\nkey = 4c010d9561c7234c308c01cea3040c925a9f324dc958ff904ae39b37e60e1e03\nmsg = 2a093c9ed72b8ff4994201e9f9e010\nresult = valid\ntag = 5b8a2f2da20ef657c903da88ef5f57bb\n\n# tcId = 178\naad = \nct = 469478d448f7e97d755541aa09ad95b0\niv = 7ee376910f08f497aa6c3aa7113697fd\nkey = e7f7a48df99edd92b81f508618aa96526b279debd9ddb292d385ddbae80b2259\nmsg = 5e51dbbb861b5ec60751c0996e00527f\nresult = valid\ntag = 254ada5cf662d90c5e11b2bd9c4db4c4\n\n# tcId = 179\naad = \nct = cb960201fa5ad41d41d1c2c8037c71d52b72e76b16b589d71b976627c9734c9d\niv = 5d1bde6fa0994b33efd8f23f531248a7\nkey = 4f84782bfbb64a973c3de3dcfa3430367fd68bc0b4c3b31e5d7c8141ba3e6a67\nmsg = 78cb6650a1908a842101ea85804fed00cc56fbdafafba0ef4d1ca607dcae57b6\nresult = valid\ntag = 8dfce16467c3a6ebb3e7242c9a551962\n\n[ivSize = 120]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 180\n# unusual IV size\naad = \nct = 2bc3ef8e7402b4631f48e9be\niv = b0a73119a97d623806b49d45ddf4c7\nkey = 34c74e28182948e03af02a01f46eb4f7\nmsg = fe82ba66cf2e265741f2c86c\nresult = valid\ntag = 4b6f6f5be291a90b9e93a8a82ddbc8d8\n\n[ivSize = 160]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 181\n# unusual IV size\naad = \nct = 4fe13ef29f118f85a63188f8\niv = e22b6b144ab26b5781316e7a42a76202ac4b2278\nkey = 55cb7cac77efe18a1ea3b30c65f3f346\nmsg = 2f3d11ea32bf5bc72cbe2b8d\nresult = valid\ntag = 05975b175316df8045889f43e0c857e0\n\n[ivSize = 64]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 182\n# unusual IV size\naad = \nct = a2966fb189f8d9d391503857\niv = 60d6bfca67f5d810\nkey = f6a4bf8c4e15034699ce5801cbbac7509cd3f94cf28d8307\nmsg = de8eaa41e5e6a590c3cfbf61\nresult = valid\ntag = e370e7dd328655929bd4691f396a1033\n\n[ivSize = 120]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 183\n# unusual IV size\naad = \nct = 9af1a022c61c4315aa0e923e\niv = edf93e16294f15eded83808f09320e\nkey = 66f75acbd8d3acf7af47d13e8384c2809d6b91503a7f294b\nmsg = a900c86b6b7e0e5563f8f826\nresult = valid\ntag = 20529bff3c59222ec33353af337b1d40\n\n[ivSize = 160]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 184\n# unusual IV size\naad = \nct = 073a5291b11df379f31b4f16\niv = 130c14c839e35b7d56b3350b194b0da342e6b65d\nkey = ef2e299dd4ecd7e3b9cc62780922cc2c89f78840564d1276\nmsg = 03f59579b14437199583270e\nresult = valid\ntag = 17205999491bd4c1d6c7ec3e56779c32\n\n[ivSize = 64]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 185\n# unusual IV size\naad = \nct = 99313a220d1fcb6658876283\niv = c0c568a400b7194f\nkey = df64c84ae52d9ca820a47421bed6e96f7165369fc4c1b65f8f6307b17ce1006c\nmsg = f5fafdded54a86a4edab44bd\nresult = valid\ntag = 00955d7d27f66868cfec734bf59c5e6d\n\n[ivSize = 120]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 186\n# unusual IV size\naad = \nct = fc213602aa423b87d7c2a874\niv = 17ca250fb7338775562632", - "23eadde1\nkey = e98b0669a645eb14cd06df6968fc5f10edc9f54feed264e3d410cdc61b72ef51\nmsg = f384b3ed7b274641f5db60cf\nresult = valid\ntag = 36b15bab6923b17218fe1c24048e2391\n\n[ivSize = 160]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 187\n# unusual IV size\naad = \nct = c1d76233e8c5042e92bf8d32\niv = 0f9d6ed7eef362dfa4a7dfa5c0f74c5b27bd4ebf\nkey = 849b3e6b8cdd85bdcfb8eb701aa5522ae2340fbe5214e389622cef76979225c4\nmsg = 8c5564e53051c0de273199b4\nresult = valid\ntag = 7cf036d235d3b2dd349a8c804b65144a\n\n[ivSize = 0]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 188\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 8f3f52e3c75c58f5cb261f518f4ad30a\nmsg = \nresult = invalid\ntag = cf71978ffcc778f3c85ac9c31b6fe191\n# AES-GCM does not allow an IV of length 0. Encrypting with such an IV leaks the\n# authentication key. Hence using an IV of length 0 is insecure even if the key\n# itself is only used for a single encryption.\n\n# tcId = 189\n# 0 size IV is not valid\naad = \nct = 00a29f0a5e2e7490279d1faf8b881c7b\niv = \nkey = 2a4bf90e56b70fdd8649d775c089de3b\nmsg = 324ced6cd15ecc5b3741541e22c18ad9\nresult = invalid\ntag = a2c7e8d7a19b884f742dfec3e76c75ee\n# AES-GCM does not allow an IV of length 0. Encrypting with such an IV leaks the\n# authentication key. Hence using an IV of length 0 is insecure even if the key\n# itself is only used for a single encryption.\n\n[ivSize = 0]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 190\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 0b18d21337035c7baa08211b702fa780ac7c09be8f9ed11f\nmsg = \nresult = invalid\ntag = ca69a2eb3a096ea36b1015d5dffff532\n# AES-GCM does not allow an IV of length 0. Encrypting with such an IV leaks the\n# authentication key. Hence using an IV of length 0 is insecure even if the key\n# itself is only used for a single encryption.\n\n# tcId = 191\n# 0 size IV is not valid\naad = \nct = 509b0658d09f7a5bb9db43b70c8387f7\niv = \nkey = ba76d594a6df915bb7ab7e6d1a8d024b2796336c1b8328a9\nmsg = d62f302742d61d823ea991b93430d589\nresult = invalid\ntag = 2c9488d53a0b2b5308c2757dfac7219f\n# AES-GCM does not allow an IV of length 0. Encrypting with such an IV leaks the\n# authentication key. Hence using an IV of length 0 is insecure even if the key\n# itself is only used for a single encryption.\n\n[ivSize = 0]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 192\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 3f8ca47b9a940582644e8ecf9c2d44e8138377a8379c5c11aafe7fec19856cf1\nmsg = \nresult = invalid\ntag = 1726aa695fbaa21a1db88455c670a4b0\n# AES-GCM does not allow an IV of length 0. Encrypting with such an IV leaks the\n# authentication key. Hence using an IV of length 0 is insecure even if the key\n# itself is only used for a single encryption.\n\n# tcId = 193\n# 0 size IV is not valid\naad = \nct = 7772ea358901f571d3d35c19497639d9\niv = \nkey = 7660d10966c6503903a552dde2a809ede9da490e5e5cc3e349da999671809883\nmsg = c314235341debfafa1526bb61044a7f1\nresult = invalid\ntag = 8fe0520ad744a11f0ccfd228454363fa\n# AES-GCM does not allow an IV of length 0. Encrypting with such an IV leaks the\n# authentication key. Hence using an IV of length 0 is insecure even if the key\n# itself is only used for a single encryption.\n\n[ivSize = 8]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 194\n# small IV sizes\naad = \nct = \niv = 80\nkey = 59a284f50aedd8d3e2a91637d3815579\nmsg = \nresult = acceptable\ntag = af498f701d2470695f6e7c8327a2398b\n\n# tcId = 195\n# small IV sizes\naad = \nct = 0a24612a9d1cbe967dbfe804bf8440e5\niv = 9d\nkey = fec58aa8cf06bfe05de829f27ec77693\nmsg = f2d99a9f893378e0757d27c2e3a3101b\nresult = acceptable\ntag = 96e6fd2cdc707e3ee0a1c90d34c9c36c\n\n[ivSize = 16]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 196\n# small IV sizes\naad = \nct = \niv = 0f2f\nkey = 88a972cce9eaf5a7813ce8149d0c1d0e\nmsg = \nresult = acceptable\ntag = 4ccf1efb4da05b4ae4452aea42f5424b\n\n# tcId = 197\n# small IV sizes\naad = \nct = ba3e7f8b2999995c7fc4006ca4f475ff\niv = 8760\nkey = b43967ee933e4632bd6562ba1201bf83\nmsg = 5a6ad6db70591d1e520b0122f05021a0\nresult = acceptable\ntag = 98f47a5279cebbcac214515710f6cd8a\n\n[ivSize = 32]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 198\n# small IV sizes\naad = \nct = \niv = cc851957\nkey = 4e9a97d3ed54c7b54610793ab05052e1\nmsg = \nresult = acceptable\ntag = e574b355bda2980e047e584feb1676ca\n\n# tcId = 199\n# small IV sizes\naad = \nct = 1b84baea9df1e65bee7b49e4a8cda1ec\niv = 7b5faeb2\nkey = d83c1d7a97c43f182409a4aa5609c1b1\nmsg = c8f07ba1d65554a9bd40390c30c5529c\nresult = acceptable\ntag = 5c0bb79d8240041edce0f94bd4bb384f\n\n[ivSize = 48]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 200\n# small IV sizes\naad = \nct = \niv = 4ad80c2854fb\nkey = c6a705677affb49e276d9511caa46145\nmsg = \nresult = acceptable\ntag = 1e2ed72af590cafb8647d185865f5463\n\n# tcId = 201\n# small IV sizes\naad = \nct = 18291aa8dc7b07448aa8f71bb8e380bf\niv = d1dafc8de3e3\nkey = eba7699b56cc0aa2f66a2a5be9944413\nmsg = d021e53d9098a2df3d6b903cdad0cd9c\nresult = acceptable\ntag = 9c0e22e5c41b1039ff5661ffaefa8e0f\n\n[ivSize = 8]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 202\n# small IV sizes\naad = \nct = \niv = cb\nkey = c70ce38e84e5f53ed41c3f0d2ca493412ad32cb04c6e2efa\nmsg = \nresult = acceptable\ntag = 08d96edb5e22874cd10cb2256ca04bc6\n\n# tcId = 203\n# small IV sizes\naad = \nct = 6c5e796ba9a3ddc64f401e68d135101d\niv = 0f\nkey = 74c816b83dfd287210a3e2c6da8d3053bbfbd9b156d3fdd8\nmsg = f2b7b2c9b312cf2af78f003df15c8e19\nresult = acceptable\ntag = 96a132ed43924e98feb888ff682bdaef\n\n[ivSize = 16]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 204\n# small IV sizes\naad = \nct = \niv = 75e5\nkey = cbf45ba488932aea1a10e5862f92e4a7e277bda9f34af6d0\nmsg = \nresult = acceptable\ntag = 1f0d23070fcd748e25bf6454f5c9136e\n\n# tcId = 205\n# small IV sizes\naad = \nct = 550b48a43e821fd76f49f0f1a897aead\niv = 8989\nkey = e1c0446f11ae6aa4fa254f9a846fc6e13e45e537e47f2042\nmsg = 3a2f5ad0eb216e546e0bcaa377b6cbc7\nresult = acceptable\ntag = f6e0a979481f9957ddad0f21a777a73a\n\n[ivSize = 32]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 206\n# small IV sizes\naad = \nct = \niv = 68d7fc38\nkey = 567563bf4cf154902275a53bc57cd6dd7b370d27011bdac8\nmsg = \nresult = acceptable\ntag = 1475563e3212f3b5e40062569afd71e3\n\n# tcId = 207\n# small IV sizes\naad = \nct = 309133e76159fe8a41b20843486511ab\niv = bb9d2aa3\nkey = 834d0bb601170865a78139428a1503695a6a291ebd747cd1\nmsg = 6f79e18b4acd5a03d3a5f7e1a8d0f183\nresult = acceptable\ntag = 03ab26993b701910a2e8ecccd2ba9e52\n\n[ivSize = 48]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 208\n# small IV sizes\naad = \nct = \niv = a984bdcdcae2\nkey = 99fb18f5ba430bb9ea942968ecb799b43406e1af4b6425a1\nmsg = \nresult = acceptable\ntag = d7b9a6b58a97982916e83219fbf71b1e\n\n# tcId = 209\n# small IV sizes\naad = \nct = e08261e46eaf90d978ea8f7889bccd4f\niv = 52aa01e0d0d6\nkey = b77b242aa0d51c92fda013e0cb0ef2437399ace5d3f507e4\nmsg = 4ba541a9914729216153801340ab1779\nresult = acceptable\ntag = c052a55df3926a50990a532efe3d80ec\n\n[ivSize = 8]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 210\n# small IV sizes\naad = \nct = \niv = a9\nkey = 8f9a38c1014966e4d9ae736139c5e79b99345874f42d4c7d2c81aa6797c417c0\nmsg = \nresult = acceptable\ntag = 2a268bf3a75fd7b00ba230b904bbb014\n\n# tcId = 211\n# small IV sizes\naad = \nct = 7bea30ecc2f73f8e121263b37966954c\niv = b3\nkey = 144cd8279229e8bb2de99d24e615306663913fe9177fcd270fafec493d43bca1\nmsg = 976229f5538f9636476d69f0c328e29d\nresult = acceptable\ntag = 8bbad4adc54b37a2b2f0f6e8617548c9\n\n[ivSize = 16]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 212\n# small IV sizes\naad = \nct = \niv = c332\nkey = 7d31861f9d3536e14016a3216b1042e0d2f7d4614314268b6f834ec7f38bbb65\nmsg = \nresult = acceptable\ntag = 1d978a693120c11f6d51a3ed88cd4ace\n\n# tcId = 213\n# small IV sizes\naad = \nct = 9c39f5b110361e9a770cc5e8b0f444bb\niv = da6c\nkey = 22b35fe9623ee11f8b60b6d22db3765b666ed972fa7ccd92b45f22deee02cab1\nmsg = 5341c78e4ce5bf8fbc3e077d1990dd5d\nresult = acceptable\ntag = b63ff43c12073ec5572b1be70f17e231\n\n[ivSize = 32]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 214\n# small IV sizes\naad = \nct = \niv = 6b30145e\nkey = c224e0bba3d7a99165f7996b67a0fce3e12f2c01179b197b69b7e628bca92096\nmsg = \nresult = acceptable\ntag = ae6f7c9a29f0d8204ca50b14a1e0dcf2\n\n# tcId = 215\n# small IV sizes\naad = \nct = f73f72f976a296ba3ca94bc6eb08cd46\niv = 5110604c\nkey = 093eb12343537ee8e91c1f715b862603f8daf9d4e1d7d67212a9d68e5aac9358\nmsg = 33efb58c91e8c70271870ec00fe2e202\nresult = acceptable\ntag = b824c33c13f289429659aa017c6", - "32f71\n\n[ivSize = 48]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 216\n# small IV sizes\naad = \nct = \niv = d4d857510888\nkey = 98e6f8ab673e804e865e32403a6551bf807a959343c60d34559360bc295ecb5b\nmsg = \nresult = acceptable\ntag = 3db16725fafc828d414ab61c16a6c38f\n\n# tcId = 217\n# small IV sizes\naad = \nct = ed463f4f43336af3f4d7e08770201145\niv = 1bdcd44b663e\nkey = 0bd0e8e7781166e1d876dec8fad34ba95b032a27cac0551595116091005947b7\nmsg = 91222263b12cf5616a049cbe29ab9b5b\nresult = acceptable\ntag = c8fc39906aca0c64e14a43ff750abd8a\n\n", +static const char *kData92[] = { + "# Imported from Wycheproof's aes_gcm_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: AES-GCM\n# Generator version: 0.8r12\n\n[ivSize = 96]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 1\naad = \nct = 26073cc1d851beff176384dc9896d5ff\niv = 028318abc1824029138141a2\nkey = 5b9604fe14eadba931b0ccf34843dab9\nmsg = 001d0c231287c1182784554ca3a21908\nresult = valid\ntag = 0a3ea7a5487cb5f7d70fb6c58d038554\n\n# tcId = 2\naad = 00112233445566778899aabbccddeeff\nct = 49d8b9783e911913d87094d1f63cc765\niv = 921d2507fa8007b7bd067d34\nkey = 5b9604fe14eadba931b0ccf34843dab9\nmsg = 001d0c231287c1182784554ca3a21908\nresult = valid\ntag = 1e348ba07cca2cf04c618cb4d43a5b92\n\n# tcId = 3\naad = aac39231129872a2\nct = eea945f3d0f98cc0fbab472a0cf24e87\niv = 0432bc49ac34412081288127\nkey = aa023d0478dcb2b2312498293d9a9129\nmsg = 2035af313d1346ab00154fea78322105\nresult = valid\ntag = 4bb9b4812519dadf9e1232016d068133\n\n# tcId = 4\naad = \nct = \niv = 438a547a94ea88dce46c6c85\nkey = bedcfb5a011ebc84600fcb296c15af0d\nmsg = \nresult = valid\ntag = 960247ba5cde02e41a313c4c0136edc3\n\n# tcId = 5\naad = \nct = 54\niv = b30c084727ad1c592ac21d12\nkey = 384ea416ac3c2f51a76e7d8226346d4e\nmsg = 35\nresult = valid\ntag = 7c1e4ae88bb27e5638343cb9fd3f6337\n\n# tcId = 6\naad = \nct = a036ead03193903f\niv = b5e006ded553110e6dc56529\nkey = cae31cd9f55526eb038241fc44cac1e5\nmsg = d10989f2c52e94ad\nresult = valid\ntag = 3b626940e0e9f0cbea8e18c437fd6011\n\n# tcId = 7\naad = \nct = 8a9992388e735f80ee18f4a63c10ad\niv = ecb0c42f7000ef0e6f95f24d\nkey = dd6197cd63c963919cf0c273ef6b28bf\nmsg = 4dcc1485365866e25ac3f2ca6aba97\nresult = valid\ntag = 1486a91cccf92c9a5b00f7b0e034891c\n\n# tcId = 8\naad = \nct = f7bd379d130477176b8bb3cb23dbbbaa\niv = 0e1666f2dc652f7708fb8f0d\nkey = ffdf4228361ea1f8165852136b3480f7\nmsg = 25b12e28ac0ef6ead0226a3b2288c800\nresult = valid\ntag = 1ee6513ce30c7873f59dd4350a588f42\n\n# tcId = 9\naad = \nct = 0de51fe4f7f2d1f0f917569f5c6d1b009c\niv = 965ff6643116ac1443a2dec7\nkey = c15ed227dd2e237ecd087eaaaad19ea4\nmsg = fee62fde973fe025ad6b322dcdf3c63fc7\nresult = valid\ntag = 6cd8521422c0177e83ef1b7a845d97db\n\n# tcId = 10\naad = \nct = 7cd9f4e4f365704fff3b9900aa93ba54b672bac554275650\niv = fbbc04fd6e025b7193eb57f6\nkey = a8ee11b26d7ceb7f17eaa1e4b83a2cf6\nmsg = c08f085e6a9e0ef3636280c11ecfadf0c1e72919ffc17eaf\nresult = valid\ntag = f4eb193241226db017b32ec38ca47217\n\n# tcId = 11\naad = c3\nct = f58d453212c2c8a436e9283672f579f119122978\niv = 32bcb9b569e3b852d37c766a\nkey = 28ff3def08179311e2734c6d1c4e2871\nmsg = dfc61a20df8505b53e3cd59f25770d5018add3d6\nresult = valid\ntag = 5901131d0760c8715901d881fdfd3bc0\n\n# tcId = 12\naad = 834afdc5c737186b\nct = bf864616c2347509ca9b10446379b9bdbb3b8f64\niv = 9c3a4263d983456658aad4b1\nkey = e63a43216c08867210e248859eb5e99c\nmsg = b14da56b0462dc05b871fc815273ff4810f92f4b\nresult = valid\ntag = a97d25b490390b53c5db91f6ee2a15b8\n\n# tcId = 13\naad = 4020855c66ac4595058395f367201c4c\nct = a6f2ef3c7ef74a126dd2d5f6673964e27d5b34b6\niv = 33e90658416e7c1a7c005f11\nkey = 38449890234eb8afab0bbf82e2385454\nmsg = f762776bf83163b323ca63a6b3adeac1e1357262\nresult = valid\ntag = b8bbdc4f5014bc752c8b4e9b87f650a3\n\n# tcId = 14\naad = 76eb5f147250fa3c12bff0a6e3934a0b16860cf11646773b\nct = bd64802cfebaeb487d3a8f76ce943a37b3472dd5\niv = 9f0d85b605711f34cd2a35ba\nkey = 6a68671dfe323d419894381f85eb63fd\nmsg = 0fc67899c3f1bbe196d90f1eca3797389230aa37\nresult = valid\ntag = fce9a5b530c7d7af718be1ec0ae9ed4d\n\n# tcId = 15\naad = \nct = d33bf6722fc29384fad75f990248b9528e0959aa67ec66869dc3996c67a2d559e7d77ce5955f8cad2a4df5fdc3acccafa7bc0def53d848111256903e5add0420\niv = 5dfc37366f5688275147d3f9\nkey = e12260fcd355a51a0d01bb1f6fa538c2\nmsg = d902deeab175c008329a33bfaccd5c0eb3a6a152a1510e7db04fa0aff7ce4288530db6a80fa7fea582aa7d46d7d56e708d2bb0c5edd3d26648d336c3620ea55e\nresult = valid\ntag = 8bc833de510863b4b432c3cbf45aa7cc\n\n# tcId = 16\naad = \nct = 17d72d90bd23e076d8364a87ecb9ac58acc5de4629bfd590409b8bf1fcd3a2f602731b4614cec15e773ea65a65e7210994256bf5450a25acb527269c065f2e2f2279d1fe8b3eda98dcf87b348f1528377bbdd258355d46e035330483d8097e80c7de9bbb606ddf723f2909217ffdd18e8bdbd7b08062f1dcba960e5c0d290f5f\niv = d767c48d2037b4bd2c231bbd\nkey = 3c55f88e9faa0d68ab50d02b47161276\nmsg = 5d6add48e7a5704e54f9c2829a9b4283dce0d3a65b133eba3793c4fbfa1d8e3a2539d0d4f3de381598ce5b2360173fbd149476c31692c5d6e872fce40219378949c2e70b5f1b9f0a1d5f38352ad814b2a035bb3f3f26425d831a2f7a5e65c5dfcd91a315c2b24f53a662605ea40857dd980e9be5cdad000c569f2d204d4bd3b0\nresult = valid\ntag = 090b8c2ec98e4116186d0e5fbefeb9c2\n\n# tcId = 17\naad = \nct = 5bc6dbafc401101c7a08c81d6c2791aa147ce093aad172be18379c747384a54a41a747ba955cade8fdfb8967aa808b43fee3d757cc80f11163b800e5e59df932757f76c40b3d9cba449aaf11e4f80e003b1f384eafa4f76e81b13c09ec1ad88e7650c750d442fe46d225a373e8a1b564b4915a5c6c513cfdfa22d929d5741ca5ebefaedcba636c7c3bbef18863fdc126b4b451611049c35d814fc2eb7e4b8f1a8995ecb4a3c86652a068c0b2a3e1c5941d59c210b458d5d5d3b06420ec2053465ccceca7c20f67404985460379e2ee806a46e8409dfab2e0dd67ea3cf46d5ad4eb78756827358c3ef1fdbd07c33834f3d9eca3ff13b744a01059a6c17a315a8fd4\niv = dfe20d1c4350e6235d987af1\nkey = a294e70fa2ac10a1fb00c588b888b673\nmsg = 6ed1d7d618d158741f52078006f28494ba72a2454f27160ae8722793fcebc538ebc2f67c3ace3e0fe7c47b9e74e081182b47c930144e3fc80d0ad50611c3afcfe2dbc5279edbbba087c0e390355f3daffcd25ad4dea007c284ad92e7fcbecb438fb60623ff89a599dca2aac141b26651386ca55b739b94901ef6db609c344d8acf4544568e31bb09361112754b1c0c6a3c875bd9453b0ee0081412151398a294ecad75add521611db5288b60ac3c0128f6e94366b69e659e6aa66f058a3a3571064edbb0f05c11e5dde938fb46c3935dd5193a4e5664688f0ae67c29b7cc49a7963140f82e311a20c98cd34fbcab7b4b515ae86557e62099e3fc37b9595c85a75c\nresult = valid\ntag = c7587e7da41bed682c37377ea4324029\n\n# tcId = 18\naad = 75fc9078b488e9503dcb568c882c9eec24d80b04f0958c82aac8484f025c90434148db8e9bfe29c7e071b797457cb1695a5e5a6317b83690ba0538fb11e325ca\nct = b6786812574a254eb43b1cb1d1753564c6b520e9\niv = 5046e7e08f0747e1efccb09e\nkey = c4b03435b91fc52e09eff27e4dc3fb42\nmsg = 8e887b224e8b89c82e9a641cf579e6879e1111c7\nresult = valid\ntag = ad8c09610d508f3d0f03cc523c0d5fcc\n\n# tcId = 19\naad = 8ed8a9be4c3d32a5098434ee5c0c4fc20f78ef5e25ed8b72a840a463e36b67b881e048b5e49f515b2541ad5ce4ebb3a917c16bcdc0dc3cb52bb4ed5a1dffcf1e1866544e8db103b2ad99c6fa6e7de1d8b45bff57ec872f1cfc78b0e4870f6f200ff1291cae033defc3327ba82792ba438e35c4bfbb684fec5ce5e3ae167d01d7\nct = cfb631790767d0645d8ec6f23bf7fa8b19ce79ee\niv = 517c55c2ec9bfea90addc2bd\nkey = 7e37d56e6b1d0172d40d64d6111dd424\nmsg = 6a7dea03c1bba70be8c73da47d5ee06d72a27430\nresult = valid\ntag = c5767ddaa747158446231766bd20490c\n\n# tcId = 20\naad = 18526e4efd995a0bf6405d9f906725c290278958d49554974d8fe025e7860daa225c1285b0573916a4b6741f7cc2e29ce4e525e12f436cb7ce0ad47df3d0f5bd80fb27e47635a4985fdaedf0e821f1c8959985cac49c97a4a02438d92b4afd4c855dcc7ef41ecfc36866334fcc05b2bb93ef13f00c5ea9b921e8a519d77f648e0efe9b5a62305a2ecf7d4999663a6ddfca517f1f36f0899b0bdef9f433c4bb2663c0cc1bb616e7d1949e522bec85485d371d1134c90eede75e865dc7be405b54c33f0acbace6cf780c78035b8035b6ea3f562a8d30a156c199fdafd25be06ee895581195ef125cb4e629e4f18e0bee979d31513896db8466e448e6b4600a316757\nct = e4d3f4898cb3d9732641d1f8d9d889b2c98af930\niv = a2712eac5e06d3cc2864aa8b\nkey = 3076741408f734ce25d48f982e8b844b\nmsg = 414ec6b149e54735302dada888b98b7fdb4c127c\nresult = valid\ntag = 76d4fbb69d529b64175b328be00b1068\n\n# tcId = 21\n# special case\naad = \nct = f62d84d649e56bc8cfedc5d74a51e2f7\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = ebd4a3e10cf6d41c50aeae007563b072\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 22\n# special case\naad = \nct = 431f31e6840931fd95f94bf88296ff69\niv = ffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff\nmsg = d593c4d8224f1b100c35e4f6c4006543\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 23\n# Flipped bit 0 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9847dbc326a06e988c77ad3863e6083\n\n# tcId = 24\n# Flipped bit 1 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = da847dbc326a06e988c7", + "7ad3863e6083\n\n# tcId = 25\n# Flipped bit 7 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 58847dbc326a06e988c77ad3863e6083\n\n# tcId = 26\n# Flipped bit 8 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8857dbc326a06e988c77ad3863e6083\n\n# tcId = 27\n# Flipped bit 31 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847d3c326a06e988c77ad3863e6083\n\n# tcId = 28\n# Flipped bit 32 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc336a06e988c77ad3863e6083\n\n# tcId = 29\n# Flipped bit 33 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc306a06e988c77ad3863e6083\n\n# tcId = 30\n# Flipped bit 63 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a066988c77ad3863e6083\n\n# tcId = 31\n# Flipped bit 64 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e989c77ad3863e6083\n\n# tcId = 32\n# Flipped bit 71 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e908c77ad3863e6083\n\n# tcId = 33\n# Flipped bit 77 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988e77ad3863e6083\n\n# tcId = 34\n# Flipped bit 80 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77bd3863e6083\n\n# tcId = 35\n# Flipped bit 96 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3873e6083\n\n# tcId = 36\n# Flipped bit 97 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3843e6083\n\n# tcId = 37\n# Flipped bit 103 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3063e6083\n\n# tcId = 38\n# Flipped bit 120 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6082\n\n# tcId = 39\n# Flipped bit 121 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6081\n\n# tcId = 40\n# Flipped bit 126 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e60c3\n\n# tcId = 41\n# Flipped bit 127 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a06e988c77ad3863e6003\n\n# tcId = 42\n# Flipped bits 0 and 64 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9847dbc326a06e989c77ad3863e6083\n\n# tcId = 43\n# Flipped bits 31 and 63 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847d3c326a066988c77ad3863e6083\n\n# tcId = 44\n# Flipped bits 63 and 127 in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d8847dbc326a066988c77ad3863e6003\n\n# tcId = 45\n# all bits of tag flipped\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 277b8243cd95f9167738852c79c19f7c\n\n# tcId = 46\n# Tag changed to all zero\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 47\n# tag changed to all 1\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 48\n# msbs changed in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 5804fd3cb2ea86690847fa5306bee003\n\n# tcId = 49\n# lsbs changed in tag\naad = \nct = eb156d081ed6b6b55f4612f021d87b39\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = d9857cbd336b07e889c67bd2873f6182\n\n[ivSize = 64]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 50\naad = aac39231129872a2\nct = 64c36bb3b732034e3a7d04efc5197785\niv = 0432bc49ac344120\nkey = aa023d0478dcb2b2312498293d9a9129\nmsg = 2035af313d1346ab00154fea78322105\nresult = valid\ntag = b7d0dd70b00d65b97cfd080ff4b819d1\n\n# tcId = 51\n# small IV sizes\naad = \nct = \niv = 28e9b7851724bae3\nkey = f3434725c82a7f8bb07df1f8122fb6c9\nmsg = \nresult = acceptable\ntag = 44aca00f42e4199b829a55e69b073d9e\nflags = SmallIv\n\n# tcId = 52\n# small IV sizes\naad = \nct = 03e1a168a7e377a913879b296a1b5f9c\niv = d084547de55bbc15\nkey = deb62233559b57476602b5adac57c77f\nmsg = d8986df0241ed3297582c0c239c724cb\nresult = acceptable\ntag = 3290aa95af505a742f517fabcc9b2094\nflags = SmallIv\n\n[ivSize = 128]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 53\naad = 1a0293d8f90219058902139013908190bc490890d3ff12a3\nct = 64069c2d58690561f27ee199e6b479b6369eec688672bde9\niv = 3254202d854734812398127a3d134421\nkey = 2034a82547276c83dd3212a813572bce\nmsg = 02efd2e5782312827ed5d230189a2a342b277ce048462193\nresult = valid\ntag = 9b7abadd6e69c1d9ec925786534f5075\n\n# tcId = 54\naad = \nct = \niv = fa294b129972f7fc5bbd5b96bba837c9\nkey = b67b1a6efdd40d37080fbe8f8047aeb9\nmsg = \nresult = valid\ntag = a2cf26481517ec25085c5b17d0786183\n\n# tcId = 55\naad = \nct = fd\niv = 9477849d6ccdfca112d92e53fae4a7ca\nkey = 209e6dbf2ad26a105445fc0207cd9e9a\nmsg = 01\nresult = valid\ntag = 032df7bba5d8ea1a14f16f70bd0e14ec\n\n# tcId = 56\naad = \nct = 2f333087bdca58219f9bfc273e45cc\niv = 5171524568e81d97e8c4de4ba56c10a0\nkey = a549442e35154032d07c8666006aa6a2\nmsg = 1182e93596cac5608946400bc73f3a\nresult = valid\ntag = e06d1ef473132957ad37eaef29733ca0\n\n# tcId = 57\naad = \nct = a780bd01c80885156c88a973264c8ee5\niv = 1275115499ae722268515bf0c164b49c\nkey = cfb4c26f126f6a0acb8e4e220f6c56cd\nmsg = 09dfd7f080275257cf97e76f966b1ad9\nresult = valid\ntag = 2adeffa682c8d8a81fada7d9fcdd2ee2\n\n# tcId = 58\naad = \nct = 7e47e10fe3c6fbfa381770eaf5d48d1482e71e0c44dff1e30ca6f95d92052084\niv = 95c1dd8c0f1705ece68937901f7add7b\nkey = 0b11ef3a08c02970f7", + "4281c860691c75\nmsg = f693d4edd825dbb0618d91113128880dbebb23e25d00ed1f077d870be9cc7536\nresult = valid\ntag = d01444fa5d9c499629d174ff3927a1ac\n\n# tcId = 59\n# J0:000102030405060708090a0b0c0d0e0f\naad = \nct = 00078d109d92143fcd5df56721b884fac64ac7762cc09eea2a3c68e92a17bdb575f87bda18be564e\niv = f95fde4a751913202aeeee32a0b55753\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 152a65045fe674f97627427af5be22da\nflags = ConstructedIv\n\n# tcId = 60\n# J0:00000000000000000000000000000000\naad = \nct = 84d4c9c08b4f482861e3a9c6c35bc4d91df927374513bfd49f436bd73f325285daef4ff7e13d46a6\niv = 7b95b8c356810a84711d68150a1b7750\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 213a3cb93855d18e69337eee66aeec07\nflags = ConstructedIv\n\n# tcId = 61\n# J0:ffffffffffffffffffffffffffffffff\naad = \nct = 948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc3c60ad5a949886de968cf53ea6462aed\niv = 1a552e67cdc4dc1a33b824874ebf0bed\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 99b381bfa2af9751c39d1b6e86d1be6a\nflags = ConstructedIv\n\n# tcId = 62\n# J0:fffffffffffffffffffffffffffffffe\naad = \nct = 64b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e88aeffb1c598f3607007702417ea0e0bc\niv = dd9d0b4a0c3d681524bffca31d907661\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 5281efc7f13ac8e14ccf5dca7bfbfdd1\nflags = ConstructedIv\n\n# tcId = 63\n# J0:fffffffffffffffffffffffffffffffd\naad = \nct = 2bb69c3e5d1f91815c6b87a0d5bbea7164b19314c31af45accdf7e3c4db79f0d948ca37a8e6649e8\niv = 57c5643c4e37b4041db794cfe8e1f0f4\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = a3ea2c09ee4f8c8a12f45cddf9aeff81\nflags = ConstructedIv\n\n# tcId = 64\n# J0:000102030405060708090a0bffffffff\naad = \nct = 127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4af37d0fe9af033052bd537c4ae978f60\niv = 99821c2dd5daecded07300f577f7aff1\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 07eb2fe4a958f8434d40684899507c7c\nflags = ConstructedIv\n\n# tcId = 65\n# J0:000102030405060708090a0bfffffffe\naad = \nct = 0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57bb11a2847c7c2d3d8f938f40f877e0c4\niv = 5e4a3900142358d1c774d8d124d8d27d\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = f145c2dcaf339eede427be934357eac0\nflags = ConstructedIv\n\n# tcId = 66\n# J0:000102030405060708090a0bfffffffd\naad = \nct = f0c6ffc18bd46df5569185a9afd169eb0cf6ae47156b14dce03c8a07a2e172b1127af9b39ecdfc57\niv = d4125676562984c0fe7cb0bdd1a954e8\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = facd0bfe8701b7b4a2ba96d98af52bd9\nflags = ConstructedIv\n\n# tcId = 67\n# J0:000102030405060708090a0b7fffffff\naad = \nct = d6928e094c06e0a7c4db42184cf7529e95de88b767edebe9b343000be3dab47ea08b744293eed698\niv = b97ec62a5e5900ccf9e4be332e336091\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = a03e729dcfd7a03155655fece8affd7e\nflags = ConstructedIv\n\n# tcId = 68\n# J0:000102030405060708090a0b7ffffffe\naad = \nct = d82ce58771bf6487116bf8e96421877ed6928e094c06e0a7c4db42184cf7529e95de88b767edebe9\niv = 7eb6e3079fa0b4c3eee366177d1c1d1d\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 1e43926828bc9a1614c7b1639096c195\nflags = ConstructedIv\n\n# tcId = 69\n# J0:000102030405060708090a0bffff7fff\naad = \nct = a197a37a5d79697078536bc27fe46cd8d475526d9044aa94f088a054f8e380c64f79414795c61480\niv = 0314fcd10fdd675d3c612962c931f635\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = f08baddf0b5285c91fc06a67fe4708ca\nflags = ConstructedIv\n\n# tcId = 70\n# J0:000102030405060708090a0bffff7ffe\naad = \nct = 149fde9abbd3a43c2548575e0db9fb84a197a37a5d79697078536bc27fe46cd8d475526d9044aa94\niv = c4dcd9fcce24d3522b66f1469a1e8bb9\nkey = 00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 62a4b6875c288345d6a454399eac1afa\nflags = ConstructedIv\n\n# tcId = 71\n# special case\naad = \nct = 45a3f89d02918bfd0c8161658ccc9795\niv = 00000000000000000000000000000000\nkey = 00112233445566778899aabbccddeeff\nmsg = bec6fa05c1718b9b84c47345bbed7dcb\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 72\n# special case\naad = \nct = 1cd5a06214235ceb044d4bad7b047312\niv = ffffffffffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff\nmsg = 4d82639c39d3f3490ee903dd0be7afcf\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 73\naad = 00000000ffffffff\nct = e27abdd2d2a53d2f136b\niv = 00112233445566778899aabb\nkey = 92ace3e348cd821092cd921aa3546374299ab46209691bc28b8752d17f123c20\nmsg = 00010203040506070809\nresult = valid\ntag = 9a4a2579529301bcfb71c78d4060f52c\n\n# tcId = 74\naad = aabbccddeeff\nct = \niv = 00112233445566778899aabb\nkey = 29d3a44f8723dc640239100c365423a312934ac80239212ac3df3421a2098123\nmsg = \nresult = valid\ntag = 2a7d77fa526b8250cb296078926b5020\n\n# tcId = 75\naad = \nct = \niv = 4da5bf8dfd5852c1ea12379d\nkey = 80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\nmsg = \nresult = valid\ntag = 4771a7c404a472966cea8f73c8bfe17a\n\n# tcId = 76\naad = \nct = 06\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = 633c1e9703ef744ffffb40edf9d14355\n\n# tcId = 77\naad = \nct = cf332a12fdee800b\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = 602e8d7c4799d62c140c9bb834876b09\n\n# tcId = 78\naad = \nct = 43fc101bff4b32bfadd3daf57a590e\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = ec04aacb7148a8b8be44cb7eaf4efa69\n\n# tcId = 79\naad = \nct = f58c16690122d75356907fd96b570fca\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 28752c20153092818faba2a334640d6e\n\n# tcId = 80\naad = \nct = 73a6b6f45f6ccc5131e07f2caa1f2e2f56\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = 2d7379ec1db5952d4e95d30c340b1b1d\n\n# tcId = 81\naad = \nct = 0843fff52d934fc7a071ea62c0bd351ce85678cde3ea2c9e\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 7355fde599006715053813ce696237a8\n\n# tcId = 82\naad = c0\nct = eb5500e3825952866d911253f8de860c00831c81\niv = 98bc2c7438d5cd7665d76f6e\nkey = b279f57e19c8f53f2f963f5f2519fdb7c1779be2ca2b3ae8e1128b7d6c627fc4\nmsg = fcc515b294408c8645c9183e3f4ecee5127846d1\nresult = valid\ntag = ecb660e1fb0541ec41e8d68a64141b3a\n\n# tcId = 83\naad = 956846a209e087ed\nct = feca44952447015b5df1f456df8ca4bb4eee2ce2\niv = 376187894605a8d45e30de51\nkey = cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17\nmsg = e28e0e9f9d22463ac0e42639b530f42102fded75\nresult = valid\ntag = 082e91924deeb77880e1b1c84f9b8d30\n\n# tcId = 84\naad = ab2ac7c44c60bdf8228c7884adb20184\nct = 43dda832e942e286da314daa99bef5071d9d2c78\niv = 5a86a50a0e8a179c734b996d\nkey = f32364b1d339d82e4f132d8f4a0ec1ff7e746517fa07ef1a7f422f4e25a48194\nmsg = 43891bccb522b1e72a6b53cf31c074e9d6c2df8e\nresult = valid\ntag = c39225", + "83476ced575404ddb85dd8cd44\n\n# tcId = 85\naad = 972ab4e06390caae8f99dd6e2187be6c7ff2c08a24be16ef\nct = a929ee7e67c7a2f91bbcec6389a3caf43ab49305\niv = bc2a7757d0ce2d8b1f14ccd9\nkey = ff0089ee870a4a39f645b0a5da774f7a5911e9696fc9cad646452c2aa8595a12\nmsg = 748b28031621d95ee61812b4b4f47d04c6fc2ff3\nresult = valid\ntag = ebec6774b955e789591c822dab739e12\n\n# tcId = 86\naad = \nct = c7d191b601f86c28b6a1bdef6a57b4f6ee3ae417bc125c381cdf1c4dac184ed1d84f1196206d62cad112b038845720e02c061179a8836f02b93fa7008379a6bf\niv = d61040a313ed492823cc065b\nkey = 5b1d1035c0b17ee0b0444767f80a25b8c1b741f4b50a4d3052226baa1c6fb701\nmsg = d096803181beef9e008ff85d5ddc38ddacf0f09ee5f7e07f1e4079cb64d0dc8f5e6711cd4921a7887de76e2678fdc67618f1185586bfea9d4c685d50e4bb9a82\nresult = valid\ntag = f15612f6c40f2e0db6dc76fc4822fcfe\n\n# tcId = 87\naad = \nct = 53cc8c920a85d1accb88636d08bbe4869bfdd96f437b2ec944512173a9c0fe7a47f8434133989ba77dda561b7e3701b9a83c3ba7660c666ba59fef96598eb621544c63806d509ac47697412f9564eb0a2e1f72f6599f5666af34cffca06573ffb4f47b02f59f21c64363daecb977b4415f19fdda3c9aae5066a57b669ffaa257\niv = 8a3ad26b28cd13ba6504e260\nkey = d7addd3889fadf8c893eee14ba2b7ea5bf56b449904869615bd05d5f114cf377\nmsg = c877a76bf595560772167c6e3bcc705305db9c6fcbeb90f4fea85116038bc53c3fa5b4b4ea0de5cc534fbe1cf9ae44824c6c2c0a5c885bd8c3cdc906f12675737e434b983e1e231a52a275db5fb1a0cac6a07b3b7dcb19482a5d3b06a9317a54826cea6b36fce452fa9b5475e2aaf25499499d8a8932a19eb987c903bd8502fe\nresult = valid\ntag = 5e63374b519e6c3608321943d790cf9a\n\n# tcId = 88\naad = \nct = d7eebc9587aa21136fa38b41cf0e2db03a7ea2ba9eaddf83d33f781093617bf50f49b2bfe2f7173b113912e2e1775f40edfed8b3b0099b9e1c220dd103be6166210b01029feb24ed9e20614eddc3cebe41b0079a9a8c117b596c90288effd3796fbd0c7e8eab00609a64be3ad9597cdbf3a818c260cd938bdf232e4059ae35a2571a838887fc196912179486e046a62227a4caddce38cbbc37587bb9439ec637602b6818c5cbe3c71a7c4143960533dc74174bd315c8db227b69b55bb7fc30ba1d5213a752ec33925043cefbc1a62943ee5f34d5da01799e69094d732aef52f8e036980d0070e22e173c67c4bbcca61cc1eedbd6016516c592144819df13204dee\niv = a6687cf508356b174625deaa\nkey = 317ba331307f3a3d3d82ee1fdab70f62a155af14daf631307a61b187d413e533\nmsg = 32c1d09107c599d3cce4e782179c966c6ef963689d45351dbe0f6f881db273e54db76fc48fdc5d30f089da838301a5f924bba3c044e19b3ed5aa6be87118554004ca30e0324337d987839412bf8f8bbdd537205d4b0e2120e965373235d6cbd2fb3776ba0a384ec1d9b7c631a0379ff997c3f974a6f7bbf4fd23016211f5fc10acadb5e400d2ff0fdfd193f5c6fc6d4f7271dfd1349ed80fbedaebb155b9b02fb3074495d55f9a2455f59bf6f113191a029c6b0ba75d97cdc0c84f131836337f29f9d96ca448eec0cc46d1ca8b3735661979d83302fec08fffcf5e58f12b1e7050657b1b97c64a4e07e317f554f8310b6ccb49f36d48c57816d24952aada711d4f\nresult = valid\ntag = bf0540d34b20f761101bc608b02458f2\n\n# tcId = 89\naad = 498d3075b09fed998280583d61bb36b6ce41f130063b80824d1586e143d349b126b16aa10fe57343ed223d6364ee602257fe313a7fc9bf9088f027795b8dc1d3\nct = aed58d8a252f740dba4bf6d36773bd5b41234bba\niv = c064fae9173b173fd6f11f34\nkey = 2ce6b4c15f85fb2da5cc6c269491eef281980309181249ebf2832bd6d0732d0b\nmsg = f8a27a4baf00dc0555d222f2fa4fb42dc666ea3c\nresult = valid\ntag = 01f93d7456aa184ebb49bea472b6d65d\n\n# tcId = 90\naad = 98d1ca1788cbeb300ea5c6b1eec95eb2347177201400913d45225622b6273eec8a74c3f12c8d5248dabee586229786ff192c4df0c79547f7ad6a92d78d9f8952758635783add2a5977d386e0aef76482211d2c3ae98de4baadb3f8b35b510464755dc75ceb2bf25b233317523f399a6c507db214f085fa2818f0d3702b10952b\nct = b42428f8094ef7e65c9e8c45ef3e95c28ce07d72\niv = 6f39afba021e4c36eb92962e\nkey = 44c8d0cdb8f7e736cfd997c872a5d9c5ef30afbe44b6566606b90aa5e3e8b797\nmsg = 2e6f40f9d3725836ac0c858177938fd67be19432\nresult = valid\ntag = 32b25dfbb896d0f9d79c823bdd8e5d06\n\n# tcId = 91\naad = 422d5efcffe364905984533f0a579d80b18bda7b29e6e46498effba53c350112c0bbb8dc4ce03bb0c69e1d0baa19f0637108aa4a16b09a281f232839d87b6d0e42be1baa7c67f1be970ea169d3960b9fe0a61f11cd2eb7398c19e641feb43f778e257a397063db5b3a6707e9db62387054f9f9d44f143583e63edad45a00251e5173d7505f22a8bce232e56c2c276a58033ae30d5dbf4e35a862e42af573be38c6406d9b4c7acbf275fe36c0ecf2c4642898a30e6146fac992a16405f98312126b7a3722f5dfb7dd4e4911c1426b2e01d04e9be6db3771100f7d7d4282e4ea585f3646241e807ca64f06a7fa9b7003d710b801d66f517d2d5ebd740872deba13d0\nct = d4a79f729487935950ec032e690ab8fe25c4158e\niv = 9f095dafe6f6e0fbafbbe02e\nkey = e40003d6e08ab80b4bfc8400ef112945a901ec64a1b6536ca92665090d608bc4\nmsg = 38c3f44bc5765de1f3d1c3684cd09cddefaf298d\nresult = valid\ntag = 876d2f334f47968b10c103859d436db8\n\n# tcId = 92\n# special case\naad = \nct = 23293e9b07ca7d1b0cae7cc489a973b3\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 561008fa07a68f5c61285cd013464eaf\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 93\n# special case\naad = \nct = 7cb6fc7c6abc009efe9551a99f36a421\niv = ffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = c6152244cea1978d3e0bc274cf8c0b3b\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 94\n# Flipped bit 0 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9de8fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 95\n# Flipped bit 1 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ee8fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 96\n# Flipped bit 7 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 1ce8fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 97\n# Flipped bit 8 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce9fef6d8ab1bf1bf887232eab590dd\n\n# tcId = 98\n# Flipped bit 31 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fe76d8ab1bf1bf887232eab590dd\n\n# tcId = 99\n# Flipped bit 32 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d9ab1bf1bf887232eab590dd\n\n# tcId = 100\n# Flipped bit 33 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6daab1bf1bf887232eab590dd\n\n# tcId = 101\n# Flipped bit 63 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1b71bf887232eab590dd\n\n# tcId = 102\n# Flipped bit 64 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1be887232eab590dd\n\n# tcId = 103\n# Flipped bit 71 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf13f887232eab590dd\n\n# tcId = 104\n# Flipped bit 77 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bfa87232eab590dd\n\n# tcId = 105\n# Flipped bit 80 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 2021", + "22232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887332eab590dd\n\n# tcId = 106\n# Flipped bit 96 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232ebb590dd\n\n# tcId = 107\n# Flipped bit 97 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232e8b590dd\n\n# tcId = 108\n# Flipped bit 103 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf8872326ab590dd\n\n# tcId = 109\n# Flipped bit 120 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab590dc\n\n# tcId = 110\n# Flipped bit 121 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab590df\n\n# tcId = 111\n# Flipped bit 126 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab5909d\n\n# tcId = 112\n# Flipped bit 127 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1bf1bf887232eab5905d\n\n# tcId = 113\n# Flipped bits 0 and 64 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9de8fef6d8ab1bf1be887232eab590dd\n\n# tcId = 114\n# Flipped bits 31 and 63 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fe76d8ab1b71bf887232eab590dd\n\n# tcId = 115\n# Flipped bits 63 and 127 in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9ce8fef6d8ab1b71bf887232eab5905d\n\n# tcId = 116\n# all bits of tag flipped\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 631701092754e40e40778dcd154a6f22\n\n# tcId = 117\n# Tag changed to all zero\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 118\n# tag changed to all 1\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 119\n# msbs changed in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 1c687e76582b9b713f08f2b26a35105d\n\n# tcId = 120\n# lsbs changed in tag\naad = \nct = b2061457c0759fc1749f174ee1ccadfa\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 9de9fff7d9aa1af0be897333ebb491dc\n\n[ivSize = 128]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 121\n# J0:000102030405060708090a0b0c0d0e0f\naad = \nct = f83cee467336e1a09b75f24e9b4385c99c13e6af722256a66129ece961fe803b167bad206f5017fb\niv = 029e0e777db092b12535d043012f09ba\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 09338a42f0acc14f97c064f52f5f1688\nflags = ConstructedIv\n\n# tcId = 122\n# J0:00000000000000000000000000000000\naad = \nct = 0b32b648a2c28e9edd7cee08eeeb900034cae7215e5ab1e201bd2eed1032c5a97866ba582a3458a4\niv = f1be3b06b7feac07e7eab629f556047b\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 90be3606de58bd778fa5beff4a4102bd\nflags = ConstructedIv\n\n# tcId = 123\n# J0:ffffffffffffffffffffffffffffffff\naad = \nct = 575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a68d8d9d8d23434de2cd07733be49d62ac1ae085\niv = de9eb63b1daed321a11b7547cc9e223c\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 6e4d6396125a10df5443bd0cbc8566d1\nflags = ConstructedIv\n\n# tcId = 124\n# J0:fffffffffffffffffffffffffffffffe\naad = \nct = 2a818888d1f09f32aa7beedd2869b446575e2ecec2b3c72d4e80830d0d859ad9e42c29c4a68d8d9d\niv = 40bb0abebc483ff6d5671241ff5d66c6\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = dc481f172545268eff63ab0490403dc3\nflags = ConstructedIv\n\n# tcId = 125\n# J0:fffffffffffffffffffffffffffffffd\naad = \nct = 96d36b795f8e7edf6a8e0dbcd20d6c072a818888d1f09f32aa7beedd2869b446575e2ecec2b3c72d\niv = 20d5cf305e630a8f49e3bb4bab18abc9\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 8a3a22bf2592958b930292aa47f590e8\nflags = ConstructedIv\n\n# tcId = 126\n# J0:000102030405060708090a0bffffffff\naad = \nct = cfce3d920f0e01f0bb49a751955b236d1b887baefd25c47f41303c46d5c7bf9ca4c2c45a8f1e6656\niv = 255358a71a0e5731f6dd6ce28e158ae6\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 2db9dc1b7fd315df1c95432432fcf474\nflags = ConstructedIv\n\n# tcId = 127\n# J0:000102030405060708090a0bfffffffe\naad = \nct = 69a24169792e9a07f6e6f4736fa972dccfce3d920f0e01f0bb49a751955b236d1b887baefd25c47f\niv = bb76e422bbe8bbe682a10be4bdd6ce1c\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 82ad967f7ac19084354f69a751443fb2\nflags = ConstructedIv\n\n# tcId = 128\n# J0:000102030405060708090a0bfffffffd\naad = \nct = 4e4417a83beac1eb7e24456a05f6ba5569a24169792e9a07f6e6f4736fa972dccfce3d920f0e01f0\niv = db1821ac59c38e9f1e25a2eee9930313\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 472d5dd582dc05ef5fc496b612023cb2\nflags = ConstructedIv\n\n# tcId = 129\n# J0:000102030405060708090a0b7fffffff\naad = \nct = 6f8e174efca3097299f784efd4caff0bf168c3e5165b9ad3d20062009848044eef8f31f7d2fead05\niv = f7a02ecca03064b2ef3cce9feab79f07\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = caff723826df150934aee3201ba175e7\nflags = ConstructedIv\n\n# tcId = 130\n# J0:000102030405060708090a0b7ffffffe\naad = \nct = af193090ce3d43a388a1d294a09616906f8e174efca3097299f784efd4caff0bf168c3e5165b9ad3\niv = 6985924901d688659b40a999d974dbfd\nkey = 00112233445566778899aabbccddeeff1021324354657687", + "\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 3b08958be1286c2b4acba02b3674adb2\nflags = ConstructedIv\n\n# tcId = 131\n# J0:000102030405060708090a0bffff7fff\naad = \nct = 5deccf838b2cf5f869c90d2a611160b1e578ab8121b93735cba4a1930647b8c4c84bf776333ee45a\niv = 3f1188546c65ed0fc55e75032c68ee44\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = c14d52208f0f51b816a48971eaf8ff7e\nflags = ConstructedIv\n\n# tcId = 132\n# J0:000102030405060708090a0bffff7ffe\naad = \nct = d2cae1684aa407a13a2e2da5357e29f55deccf838b2cf5f869c90d2a611160b1e578ab8121b93735\niv = a13434d1cd8301d8b12212051fabaabe\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = ea2d018099cd7925c507cef0ceddb0ae\nflags = ConstructedIv\n\n# tcId = 133\n# special case\naad = \nct = 541b835dc828d541073f7d7d7504ebf5\niv = 00000000000000000000000000000000\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 5c7d3f81d4b5055ed6f8db53614587a4\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 134\n# special case\naad = \nct = a3f36154331c196624564bc395e49c3b\niv = ffffffffffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 6a347ad1190e72ede611044e7475f0eb\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 135\naad = \nct = \niv = bc28433953772d57bbd933100cd47a56\nkey = fae2a14197c7d1140061fe7c3d11d9f77c79562e3593a99b\nmsg = \nresult = valid\ntag = 1bb94331f26cad24036cfeff34b89aaf\n\n# tcId = 136\naad = \nct = dc\niv = 1e8259e0a43e571068f701cd2064fc0c\nkey = cee9abbc26b63e169f0ced621fe21d95904e75b881d93e6b\nmsg = 46\nresult = valid\ntag = af1f5535b125b34fc466902ea40cb3a2\n\n# tcId = 137\naad = \nct = 2aab5c87dcb4a4dae4e975ddb65aab\niv = c84442d6975f0359737de0fa828f958e\nkey = 189f0bd390ba40632586a45c39735c2b87113329c800f394\nmsg = b4bcd7b8eeca3050dd17682c6a914e\nresult = valid\ntag = 6b03b7557c7131e2352e495d54e61aef\n\n# tcId = 138\naad = \nct = d127fd2e67c0887d90eb92b91f357d97\niv = 13cd526ec77b58f62d48d03f8b88f2b8\nkey = b0724f15df5b792c2f49bc51df0ac5aad69be0030981613c\nmsg = 8da3ab9c3d195b04df452ad23953da4d\nresult = valid\ntag = eb05bda937faeed27f8833295d4ba559\n\n# tcId = 139\naad = \nct = 344c2cea17b06cb3da272e22a22a3a71ee0eaa1959a7facfff464660ddccedd1\niv = 1d3d62eccd8ac5e896f2654a7f606fc9\nkey = 998750ba784841e40a7c5b03985732b6397e5459a3843954\nmsg = 2f60ca3494a958dc3e6ebeb5d0b4e6dda0d0c4331ab9c957f6422a5100878ebf\nresult = valid\ntag = bab7fbf499ff06aad5f757b1c1a4fcc0\n\n[ivSize = 96]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 140\n# special case\naad = \nct = 3f875c9bd7d8511448459468e398c3b2\niv = 000000000000000000000000\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 0b4dbbba8982e0f649f8ba85f3aa061b\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 141\n# special case\naad = \nct = 210dabea4364c6d5b3429e7743322936\niv = ffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff1021324354657687\nmsg = 1ae93688ef7e2650a9342ad4718b2780\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 142\naad = \nct = \niv = ff0ddb0a0d7b36d219da12b5\nkey = 5019eb9fef82e5750b631758f0213e3e5fcca12748b40eb4\nmsg = \nresult = valid\ntag = 7971284e6c9e6aac346fe2b7a0a064c2\n\n# tcId = 143\naad = \nct = fe\niv = 34047bc39b9c608384dff5b8\nkey = 21218af790428f8024d3e7e1428c9fcf578c216636d60e73\nmsg = e3\nresult = valid\ntag = 2e982e24b81cd120d35a70fe6935e665\n\n# tcId = 144\naad = \nct = 99f2ff1c8a44e5f2\niv = 4ebc13cf4636cc7c45e560a7\nkey = 3a8bf543c480925632118245bcbf5d01522b987a31a33da3\nmsg = 53fc72e71b59eeb3\nresult = valid\ntag = 6870f104ddc514477b400336fb01860e\n\n# tcId = 145\naad = \nct = afe8ef41591bfcc00db3c880ceb186\niv = 6e7ff7f0797685cfc44b05ff\nkey = 92f4d2672fceec43963ccffb17e6ea7578b11418b06a3b82\nmsg = c3ec16adb184affa8ae9738bffb916\nresult = valid\ntag = 29fff7f285768645c9c8bf7a471c9393\n\n# tcId = 146\naad = \nct = 90339dca02ef717f1603994aee6cf6d2\niv = be0326d23bdc2c64648d13f4\nkey = bcb6bc5ee6743df1396a34639327b25809ec9c81dd6a0c0e\nmsg = 80474a3a3b809560eee2ce7a7a33ea07\nresult = valid\ntag = e3d33e01ce64f271783147de226228bc\n\n# tcId = 147\naad = \nct = b98ed6321679941a3e521834296686ad98\niv = b6be6cd0681235d826aa28ea\nkey = 5e1d28213e092536525bbae09e214af4c891e202b2b4fa4f\nmsg = 53d59433a7db7f41b31ccb6d4a2d789965\nresult = valid\ntag = 9f50c03e055e519712c582ec9db3235b\n\n# tcId = 148\naad = \nct = addd303651119e52f6170dfc7a915064253d57532987b9ab\niv = b022067048505b20946216ef\nkey = 7f672d85e151aa490bc0eec8f66b5e5bee74af11642be3ff\nmsg = ef6412c72b03c643fa02565a0ae2378a9311c11a84065f80\nresult = valid\ntag = fa0484f8baa95f5b7a31c56d1b34c58b\n\n# tcId = 149\naad = cb\nct = 0d2c3a3c0cc4b40e70ed45e188e356a0e1533b31\niv = 817fe51c31f2879141a34335\nkey = 969fed5068541d65418c2c1de8fe1f845e036030496e1272\nmsg = 3d8233191a2823bf767e99167b1d4af4f4848458\nresult = valid\ntag = 92909a80e90540e1878ab59ef300072b\n\n# tcId = 150\naad = 2ed8487153e21b12\nct = c7c1cbb85ce2a0a3f32cb9ef01ad45ec1118b66d\niv = 62b9cf1e923bc1138d05d205\nkey = fa5b9b41f93f8b682c04ba816c3fecc24eec095b04dd7497\nmsg = 18159841813a69fc0f8f4229e1678da7c9016711\nresult = valid\ntag = 253317f98bdab87531ece20475cd9ebb\n\n# tcId = 151\naad = 74318d8876528243f1944b73eb77e96e\nct = ecf5e403f19c007c8da7a456caf0a6d75762829b\niv = 3f1a1e02e90a4ba7a1db9df2\nkey = fbfb395662787e2d25a2e7510f818e825936a35114e237c9\nmsg = 2952a3d64107d5cbb9602239d05a5c5c222cf72b\nresult = valid\ntag = e0877a100f9dd9d6795f0e74c56a9fab\n\n# tcId = 152\naad = 5ca354a4cb8e4fc9798aa209ad4f739dc7c232fdd1f22584\nct = 94d844d98b9467daa7e8dde7f4290037354d7fb2\niv = 0802ae86c75a73bf79561521\nkey = 5d8e9c2222316c9ed5ff94513cc957436ae447a6e1a73a29\nmsg = 42b4439e1d2116f834b91c516a26299df279956b\nresult = valid\ntag = 62196638590cef429d6b1d1a59839c02\n\n# tcId = 153\naad = \nct = e9915bc5aea63c8bc014f2ae6a4986b03115ff1f34ad6c0acd74ffca07c453ec3f3ce6902d5ff338c588a34a1c3b30ef753ec7001572cbfeafe690fd00f59b02\niv = 9189a71ac359b73c8c08df22\nkey = ccbd0f509825a5f358a14aac044ae2826bb2c9eaaaaa077f\nmsg = a1ed1007b52e36ec0f70109c68da72ee7b675c855e3e4956d2dcf9d12f675d6933f677ddcc58face857699d2e3d90adcb8c6c57c9d88b5dfcf356de4c0b63f0e\nresult = valid\ntag = fbf19b6b90e2d9df7ead0c3bc6e375a2\n\n# tcId = 154\naad = \nct = 9663e6f98b2768448e6dd0dd780e145668af5b002257e353213868c9cd9fd3a1e9427530327541775a093123076d34985db3aa248cd55e532609d1a39274c49216ea20fbab719b9c7e310b27877b9a33d1b69ab747afac944d1e97ea789367821c331f00b5d618402bfc57884d18edbd60c4dfe218c08080b8e3479ff84bdfb5\niv = 98e9153daca2522e3162cb15\nkey = d045c6eb173f440843faec3e9374602a94ee3f7176312208\nmsg = 3f0b30dc963a82d182c035b5a823060f07c4123792e6cee6bf91fea3c52fa66bb6a93ea6cce9f4813eb95bf18f816c00ad4fb56932827a39efb2fe56804e604a606774ee92ad46cd8c172a0d2bdea2fc99f67cd82c6024c315cfee6dbb8d27f745c9d0ce9bf5d09724f4bed003cf39478348b3304baa4ecc9974fc4f3ff93f95\nresult = valid\ntag = fc2ff62a41bdb79afc369842e4eccabf\n\n# tcId = 155\naad = \nct = 167183661675677625bed2d5f55f728dab80d7f06f629d99e58b45069fe9d7428e8961561b11245c709ac9ebb5c59ac2a89d8375d8a01d849c7733a1b482529927e3f1a1a53f63a4be08a11c941c634cd40373c42ffb2449c641bc9e39eafbcf9c0fba677e36496f73fc70aa0972224901ab04b0a196ab745262021b2313a8464187fecec43adb406258bddcd8c9d04dc2ae29e65d54a89dd0f1752d6d950dbf7da4dea0a7b9465579503fc8ec4451f4b39878ac4754a1aaf7b0b73fee11213cb8e601fc6039393f72e0e079ee97ecc610241757da2db2f51d5ed121481540eff47287744dac43375c4f48a46af70190453a17c3c78d735ba1d1fc76a330e6cbed\niv = 9e35d3ef1897c5fe3f647204\nkey = e602188abf6a91f3e258838cea6befeffcf6257a509c3e95\nmsg = 3b9a6edc44848c072341fd4af51ec116ac328f69cc5a3354e49299fb2e5d22fa0084e30b36ecaf54309397b2b498d686087f3457698c3639e73ca18c78c3e021d673986cfc2ceb4d07e66971e976f58f0336f82c7fc0d52d66610f26ca3bfe53c0b01cf7c207306db904c1ad300ab95c56fde820a8edd256f2b9906b312bf7af5ef4a806f618ddfcb67179b03fff80a245c38d8f4cff2875b71a0bf69129caf97121462e0501ec6574ede94706f4a04d2fb301d415c22ea12157d2e919bc7a0169a5ad5c7bb5761a8531abbe77d66a4871b3f27a7170f099044b9fdc50a8cb3b894252a501cc896ac4793bdb478bb1cb99c02341d7238dd8d593cfda02f7d520d7\nresult = valid\ntag = c72035314f43d256f8d845eb696bd943\n\n# tcId = 156\naad = df737cd77d31eb", + "9097a17c31b4c92889ef1f32b7464e2620e9007192ea675b9ad6910527ffecee2452be0248fab75608c7fdca08e86580322aac1d6a11b96ecf\nct = 3f57ec1b414f74818fead9f35aa1679402c3e750\niv = dba233ccbc7992e64e82cfa3\nkey = 55a4ca526443357ac7c896d9a67cf7d467f6921d69002d3a\nmsg = 4e56d1ea538cf49cad49959e884eb540c846556c\nresult = valid\ntag = 97b89b291419e32cf654ea630a3ad014\n\n# tcId = 157\naad = 7739aad7399d9c0f0a3c95b403888f0072d94acb76ff576e05f4a063120b84e722b4d5cd43a58e4abab444cb8ced112f3dbd8993b831c39b4edb76e92eb33ee24c5922b56552685f3b0f4cf22e0e11628f6a3d33eff9def7ec527112dfafcf122814e3d1aaf66c3f970526511088bffef8101d1cef833268ff80387df30557f7\nct = 5565c6d09c4c924d61c0ef808fb0ea144ffb4738\niv = 10aaec0de4ad75376be9fd41\nkey = f381d0ffd3373a1aa02edd1d7fa748e91908fe534bef73d2\nmsg = 653a3f033c2775e08fef73cf80f5e2699fb360cb\nresult = valid\ntag = 12b72ec1d9c32fb22c13c40b33796fa9\n\n# tcId = 158\naad = 58fd02ac23ec7fa5b9460f60bfc85b4bebba70039a8f83261d6cc4f560107c10bc69548a5d6152882fb465fd59fb8164d7c94523c3dd4206d33064f5191bd31f0c48fe03d7460e995c93175b57cb03f58711adc94632031c4305272367b4289c725d9cb7ae9ba996b3a079174508c1eae8162a0bac446c1e53fe0c402b6912dfd6702addccada30a5c010fc22c2c75e43226378ec7f4b3b71ccc71f32ab1adc877cc7b0a180c75d385c0f71a0b291a1cccf4be47e272249d61ffbf059c4f7be74eba07d5e1be3a7438458a611fe58cee4f946e25dee03e6485235566f20ed555be32cd57a94e522d2168eae23c4587371a2d145f418c59e7bbc464a3bd88b8919b\nct = c6877b03552e97d9a1e6557f90dc7adde15a2f43\niv = 12444040caede67285e490d7\nkey = 8f27b1c3b3d7023c76ee66c768a3e92d4971e25f729d8788\nmsg = 0df6e750092b9ac576dde66006a4cab2116eee21\nresult = valid\ntag = 2536272bee7446820041854e10b49a03\n\n# tcId = 159\n# Flipped bit 0 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b5e44c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 160\n# Flipped bit 1 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b6e44c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 161\n# Flipped bit 7 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 34e44c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 162\n# Flipped bit 8 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e54c5b2fe90e4c78f358da0d99cb64\n\n# tcId = 163\n# Flipped bit 31 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44cdb2fe90e4c78f358da0d99cb64\n\n# tcId = 164\n# Flipped bit 32 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2ee90e4c78f358da0d99cb64\n\n# tcId = 165\n# Flipped bit 33 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2de90e4c78f358da0d99cb64\n\n# tcId = 166\n# Flipped bit 63 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90ecc78f358da0d99cb64\n\n# tcId = 167\n# Flipped bit 64 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c79f358da0d99cb64\n\n# tcId = 168\n# Flipped bit 71 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4cf8f358da0d99cb64\n\n# tcId = 169\n# Flipped bit 77 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78d358da0d99cb64\n\n# tcId = 170\n# Flipped bit 80 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f359da0d99cb64\n\n# tcId = 171\n# Flipped bit 96 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0c99cb64\n\n# tcId = 172\n# Flipped bit 97 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0f99cb64\n\n# tcId = 173\n# Flipped bit 103 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da8d99cb64\n\n# tcId = 174\n# Flipped bit 120 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cb65\n\n# tcId = 175\n# Flipped bit 121 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cb66\n\n# tcId = 176\n# Flipped bit 126 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cb24\n\n# tcId = 177\n# Flipped bit 127 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90e4c78f358da0d99cbe4\n\n# tcId = 178\n# Flipped bits 0 and 64 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b5e44c5b2fe90e4c79f358da0d99cb64\n\n# tcId = 179\n# Flipped bits 31 and 63 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44cdb2fe90ecc78f358da0d99cb64\n\n# tcId = 180\n# Flipped bits 63 and 127 in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b4e44c5b2fe90ecc78f358da0d99cbe4\n\n# tcId = 181\n# all bits of tag flipped\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 4b1bb3a4d016f1b3870ca725f266349b\n\n# tcId = 182\n# Tag changed to all zero\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 183\n# tag changed to all 1\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag =", + " ffffffffffffffffffffffffffffffff\n\n# tcId = 184\n# msbs changed in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = 3464ccdbaf698eccf873d85a8d194be4\n\n# tcId = 185\n# lsbs changed in tag\naad = \nct = 458256842dfd297f30bd2f8f15c92db0\niv = 505152535455565758595a5b\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 202122232425262728292a2b2c2d2e2f\nresult = invalid\ntag = b5e54d5a2ee80f4d79f259db0c98ca65\n\n[ivSize = 128]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 186\n# J0:000102030405060708090a0b0c0d0e0f\naad = \nct = 28e1c5232f4ee8161dbe4c036309e0b3254e9212bef0a93431ce5e5604c8f6a73c18a3183018b770\niv = 5c2ea9b695fcf6e264b96074d6bfa572\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = d5808a1bd11a01129bf3c6919aff2339\nflags = ConstructedIv\n\n# tcId = 187\n# J0:00000000000000000000000000000000\naad = \nct = cceebeb4fe4cd90c514e52d2327a2ecd75393661006cf2476d8620149aef3d1cdce491fff3e7a7a3\niv = 57b3a81f2c36b6b06577ca0fbab8fa8e\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 8132e865b69d64ef37db261f80cbbe24\nflags = ConstructedIv\n\n# tcId = 188\n# J0:ffffffffffffffffffffffffffffffff\naad = \nct = 4f4350565d91d9aa8c5f4048550492ad6d6fdabf66da5d1e2af7bfe1a8aadaa0baa3de38a41d9713\niv = ce20a7e870696a5e68533c465bad2ba1\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 155da6441ec071ef2d8e6cffbacc1c7c\nflags = ConstructedIv\n\n# tcId = 189\n# J0:fffffffffffffffffffffffffffffffe\naad = \nct = 8316a53167b6de1a7575700693ffef274f4350565d91d9aa8c5f4048550492ad6d6fdabf66da5d1e\niv = 918e3c19dbdfee2db18156c5b93f3d75\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 6c574aa6a2490cc3b2f2f8f0ffbc56c4\nflags = ConstructedIv\n\n# tcId = 190\n# J0:fffffffffffffffffffffffffffffffd\naad = \nct = 5175927513e751eb309f45bc2ef225f28316a53167b6de1a7575700693ffef274f4350565d91d9aa\niv = 717d900b270462b9dbf7e9419e890609\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 8082a761e1d755344bf29622144e7d39\nflags = ConstructedIv\n\n# tcId = 191\n# J0:000102030405060708090a0bffffffff\naad = \nct = 36b3fbecd09178d04527fb37544f5579d20d60a41266f685c48098e1a52804ca387d90709d3268dd\niv = ecd52120af240e9b4bf3b9d1eeb49434\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 033e0ef2953ebfd8425737c7d393f89a\nflags = ConstructedIv\n\n# tcId = 192\n# J0:000102030405060708090a0bfffffffe\naad = \nct = 16929b773051f12b0adac95f65e21a7f36b3fbecd09178d04527fb37544f5579d20d60a41266f685\niv = b37bbad104928ae89221d3520c2682e0\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = ca448bb7e52e897eca234ef343d057d0\nflags = ConstructedIv\n\n# tcId = 193\n# J0:000102030405060708090a0bfffffffd\naad = \nct = 6d3faefaf691d58163846f8d4b9ffd5916929b773051f12b0adac95f65e21a7f36b3fbecd09178d0\niv = 538816c3f849067cf8576cd62b90b99c\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 84f49740e6757f63dd0df7cb7656d0ef\nflags = ConstructedIv\n\n# tcId = 194\n# J0:000102030405060708090a0b7fffffff\naad = \nct = d60196c2d14fcf30c0991d2721ddc52d385f407a16691dade82c9023c855fd8e2e8fbb562102f018\niv = d10e631943cd3bdababab2bbd13951c0\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = 877e15d9889e69a99fcc6d727465c391\nflags = ConstructedIv\n\n# tcId = 195\n# J0:000102030405060708090a0b7ffffffe\naad = \nct = 948fbceca12a6e4fabb79b6d965e336fd60196c2d14fcf30c0991d2721ddc52d385f407a16691dad\niv = 8ea0f8e8e87bbfa96368d83833ab4714\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = cd5757626945976ba9f0264bd6bee894\nflags = ConstructedIv\n\n# tcId = 196\n# J0:000102030405060708090a0bffff7fff\naad = \nct = a1a0120660ff52e6b1700b12c54d2d33b94b00cd7882d8857d84e6e183a1dea6ee85a7da84fbc35d\niv = 7b2df4fbed1de2727eb24898e5deabb9\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = b015d72da62c81cb4d267253b20db9e5\nflags = ConstructedIv\n\n# tcId = 197\n# J0:000102030405060708090a0bffff7ffe\naad = \nct = 5e3434b45edbf0d1f6e02d1144dbf867a1a0120660ff52e6b1700b12c54d2d33b94b00cd7882d885\niv = 24836f0a46ab6601a760221b074cbd6d\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\ntag = ee74ccb30d649ebf6916d05a7dbe5696\nflags = ConstructedIv\n\n# tcId = 198\n# special case\naad = \nct = 265c42e2b96ea1de9c24f7182e337390\niv = 00000000000000000000000000000000\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 8d74f1c97243d362577ff376c393d2dc\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 199\n# special case\naad = \nct = 988f47668ea650cbaa6714711abe268d\niv = ffffffffffffffffffffffffffffffff\nkey = 00112233445566778899aabbccddeeff102132435465768798a9bacbdcedfe0f\nmsg = 884df0e76f3ce227bf9595d103825a46\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 200\naad = \nct = \niv = 00c49f4ebb07393f07ebc3825f7b0830\nkey = b4cd11db0b3e0b9b34eafd9fe027746976379155e76116afde1b96d21298e34f\nmsg = \nresult = valid\ntag = 306fe8c9645cc849823e333a685b90b2\n\n# tcId = 201\naad = \nct = 3f\niv = 0ad570d8863918fe89124e09d125a271\nkey = b7797eb0c1a6089ad5452d81fdb14828c040ddc4589c32b565aad8cb4de3e4a0\nmsg = ed\nresult = valid\ntag = fd8f593b83314e33c5a72efbeb7095e8\n\n# tcId = 202\naad = \nct = 041341078f0439e50b43c991635117\niv = 2a55caa137c5b0b66cf3809eb8f730c4\nkey = 4c010d9561c7234c308c01cea3040c925a9f324dc958ff904ae39b37e60e1e03\nmsg = 2a093c9ed72b8ff4994201e9f9e010\nresult = valid\ntag = 5b8a2f2da20ef657c903da88ef5f57bb\n\n# tcId = 203\naad = \nct = 469478d448f7e97d755541aa09ad95b0\niv = 7ee376910f08f497aa6c3aa7113697fd\nkey = e7f7a48df99edd92b81f508618aa96526b279debd9ddb292d385ddbae80b2259\nmsg = 5e51dbbb861b5ec60751c0996e00527f\nresult = valid\ntag = 254ada5cf662d90c5e11b2bd9c4db4c4\n\n# tcId = 204\naad = \nct = cb960201fa5ad41d41d1c2c8037c71d52b72e76b16b589d71b976627c9734c9d\niv = 5d1bde6fa0994b33efd8f23f531248a7\nkey = 4f84782bfbb64a973c3de3dcfa3430367fd68bc0b4c3b31e5d7c8141ba3e6a67\nmsg = 78cb6650a1908a842101ea85804fed00cc56fbdafafba0ef4d1ca607dcae57b6\nresult = valid\ntag = 8dfce16467c3a6ebb3e7242c9a551962\n\n[ivSize = 120]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 205\n# unusual IV size\naad = \nct = 2bc3ef8e7402b4631f48e9be\niv = b0a73119a97d623806b49d45ddf4c7\nkey = 34c74e28182948e03af02a01f46eb4f7\nmsg = fe82ba66cf2e265741f2c86c\nresult = valid\ntag = 4b6f6f5be291a90b9e93a8a82ddbc8d8\n\n[ivSize = 160]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 206\n# unusual IV size\naad = \nct = 4fe13ef29f118f85a63188f8\niv = e22b6b144ab26b5781316e7a42a76202ac4b2278\nkey = 55cb7cac77efe18a1ea3b30c65f3f346\nmsg = 2f3d11ea32bf5bc72cbe2b8d\nresult = valid\ntag = 05975b175316df8045889f43e0c857e0\n\n[ivSize = 120]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 207\n# unusual IV size\naad = \nct = 9af1a022c61c4315aa0e923e\niv = edf93e16294f15eded83808f09320e\nkey = 66f75acbd8d3acf7af47d13e8384c2809d6b91503a7f294b\nmsg = a900c86b6b7e0", + "e5563f8f826\nresult = valid\ntag = 20529bff3c59222ec33353af337b1d40\n\n[ivSize = 160]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 208\n# unusual IV size\naad = \nct = 073a5291b11df379f31b4f16\niv = 130c14c839e35b7d56b3350b194b0da342e6b65d\nkey = ef2e299dd4ecd7e3b9cc62780922cc2c89f78840564d1276\nmsg = 03f59579b14437199583270e\nresult = valid\ntag = 17205999491bd4c1d6c7ec3e56779c32\n\n[ivSize = 120]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 209\n# unusual IV size\naad = \nct = fc213602aa423b87d7c2a874\niv = 17ca250fb733877556263223eadde1\nkey = e98b0669a645eb14cd06df6968fc5f10edc9f54feed264e3d410cdc61b72ef51\nmsg = f384b3ed7b274641f5db60cf\nresult = valid\ntag = 36b15bab6923b17218fe1c24048e2391\n\n[ivSize = 160]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 210\n# unusual IV size\naad = \nct = c1d76233e8c5042e92bf8d32\niv = 0f9d6ed7eef362dfa4a7dfa5c0f74c5b27bd4ebf\nkey = 849b3e6b8cdd85bdcfb8eb701aa5522ae2340fbe5214e389622cef76979225c4\nmsg = 8c5564e53051c0de273199b4\nresult = valid\ntag = 7cf036d235d3b2dd349a8c804b65144a\n\n[ivSize = 256]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 211\n# long IV size\naad = \nct = 5348af57fafe2485b43f2bc4\niv = 365e0b96932b13306f92e9bb23847165bcbf5d35e45a83d75c86ecca70131f4c\nkey = 5927bae748bb69d81b5a724e0a165652\nmsg = 316bf99bfafc76f1bfc0b03c\nresult = valid\ntag = 019a96c5373c031626b6c0300d4cf78b\n\n[ivSize = 512]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 212\n# long IV size\naad = \nct = f559b70fe1149cb34406a2c7\niv = 967fa7c990eb2becbd450835e28ea3a9000c7216285cfa7696e8c3dac3ce952a1fe638d7c8c73e1d708dce01b5a20fcc9aa011949d2a835f777423c172fa3aa0\nkey = dbd3676f293409273f27b375e03793a3\nmsg = 625efedb8b7f1aa62238a8f2\nresult = valid\ntag = 94180ddb7bb1995abe0219eab5ce232f\n\n[ivSize = 1024]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 213\n# long IV size\naad = \nct = 5291dd4da91ccc2e77306d83\niv = 494356c3459d60e3a83433c9bcf2c0454a763e496e4ec99bfbe4bbb83a4fda76b542213899dcf5521cd9bbbe5d11545bda44a3f4a681ce2843acea730d83d3930ea30991ee1a68ebf6d1a5a40f9b02a1aab091298df8dd689dc7613bcbff94d35f2ca43377d81618562bcf6573411ec9bc97c5a6276b554054c0fa787073d067\nkey = 7e5a39dcda7e066988f19adf4de4d501\nmsg = b04729b4adbaac63c2aaf8d8\nresult = valid\ntag = a7f7b21a3b7ece509e922647fd905f06\n\n[ivSize = 2056]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 214\n# long IV size\naad = \nct = e3be947153a26a3a54e3015c\niv = 6fd260bba87339539c37dc68fdc3656f63c83028cb8adcb531085e98bd570c6b735d0cc4b4b924696000a2d893621ae64dcce992b562b89a5285643a08febccbc52243cbfc8d45212e047b00c87c6b6bf175f8bb678ec55c1091315cbecb8b85700f4a4653623fb78e63cfff7d6235e48e9832c9f0716d10992fc5b0ad4e6972bbeeb1ad670cd7ec8fac82e07ea5a64f9761a39714aaa73affd2cb190a7ac2df5e5dcea6812ae2c872c7ac70453c5e7ec4d0b5b18c6ff3bfb9ae15fea44cf392615b80034edae596b8821f97fca58d167fb44a093b0c009a0bd5631355b0cb25d93ba9b79b006301d99db657e801933fc2764a0ce650eaf5a1299efe60cb53b634\nkey = eac3f28cd937ff29eb6158a3721b5145\nmsg = 098912a302773377b9c26ac3\nresult = valid\ntag = fd042bdde22f67c4fd298d5dc0867606\n\n[ivSize = 256]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 215\n# long IV size\naad = \nct = 8c2a9823a3b3d413be696387\niv = 36e4b381574d171c7769a788cbc147224fabd8b773f16b8ae84d8f2603aaa440\nkey = 8f9ebc67a9a6430c2b0ceeaf983e1356964bb928635b9ca4\nmsg = a3a96ee94f94caa81ebcd66d\nresult = valid\ntag = faaf01ceb40a7e145e8fe65aa9af58c0\n\n[ivSize = 512]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 216\n# long IV size\naad = \nct = a660ea5bf07a78fea0120173\niv = 90743bd5d794d52ac848b7e2384545a25846acf143be84c0ead0432fcf3172631cf58d0ca78571c03053c1e1b85ed79cb5303d0e3a98ff4f56c4f0a5eb4f0eac\nkey = f4bbdfd06f7fb1434880e4166d38d56e02a3f0df0d5301ce\nmsg = 39d2abe6697f17ec27f2a39c\nresult = valid\ntag = 7404fc7b7354694428236f203c130244\n\n[ivSize = 1024]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 217\n# long IV size\naad = \nct = f400132ff38c04ed747dde34\niv = fbb3eab379c9b8689dc30b0713690e55d51c956ca36fbcc73eeeee16a46d7c41a7a9626e68e25d685c008c19d3b2b1792bdc99c35441a6fcac35e0d6446dd914f543abd9ecd6b0cb5201c243026c4f13641d67c8d8cd5114b6e11ebbc6b1dee2a18db2150a5a575dcd21648e0337dadbccd3deffd6d979e03e6b9ddfee0abdc2\nkey = 1761c77798ef9cdfa40553f34614fe7402212087f0509411\nmsg = 35ca4eb463a2000138210b4d\nresult = valid\ntag = ca1534e7dd0336bbb32a79830c71a447\n\n[ivSize = 2056]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 218\n# long IV size\naad = \nct = 13a95a06c1bed4845af9c701\niv = 3569fca7c9d06e2a03fed1aac2484fd4416ca07d55ecbb333ec674f0ea5c6e75a10dfb9c738b69dab2eda10ada721a61c7f02b7e7f79e8a9e2dc36b3fdf609e436054c82a774ec617dceec84a577037ff1a3f120d9818d042063acb36c9584e81ec94f11f1ee240f2e45e944694a9c8e535acbb01d93958411cff68e3d32f8931746a4a0cece65e93c51c70b3111034b6867b407e0147f97c576d3ed8cec7e8ec26e95643e46e97ea3595c9c3172b4856f2d2b6dc8564666ddac92c794ffb2d4dc7f461761f0e326650f48d327604e095bd8754072116c96360d09f010ac2f39eb96b227f3d738deb756c8699460d88cf716170ae15267b14f4a89164720f1c602\nkey = f795ece7de1881fbc6843eb740f812e41e3fc49ff6c7b940\nmsg = 22dbd8037aa05b14cf81dd23\nresult = valid\ntag = 03379836b0c82f64a1bccdcd763acbbc\n\n[ivSize = 256]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 219\n# long IV size\naad = \nct = a295c2cb27ce23d26874ade1\niv = e826a79361f9d582b64450e3edc82589487853d5b22feaa0c889875bd0d87cd4\nkey = ee4171917d2337496812a2784d6a71300e6b8c1ac3b1ef58cee77c229aeaf2c5\nmsg = 94d2f8697facaaa191ba617a\nresult = valid\ntag = 04650a78bbb61db337c9c32aa3e7b6fa\n\n[ivSize = 512]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 220\n# long IV size\naad = \nct = 9cdcfc3aaa8d466f25588e4b\niv = ec51ee18cfb46897d3666c7df35c29ca5d898241c4a34f893eb1db5d5c6b76e24617459d1153868154437a0e95aa3c26e956b494a52dd5ac3b9331116c7c775f\nkey = 132c59b4bcb8afb31637734a81105bb2c9878f320ace9076d5fd7c5d216c8d12\nmsg = 12c7be00facda49596e19134\nresult = valid\ntag = 7e80f51e7180f1cd3ba84349888fcd5c\n\n[ivSize = 1024]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 221\n# long IV size\naad = \nct = 3f3c151e984d059462f9e5a0\niv = 7d08b226b4a5d03f6f8cb3a3cb8d1ce31b059dc5112385275e38a15c97e0f24022b249a5f7019ea577198cb26ac64e82b2b04681537c4198775a523b0e6494b84febaef3399b35c27b0969fa43572bf5827a763aac1af69526f37e38acb5d354f2b68487f275f4361ed39073f7dd6653ac17c0794118a0cf143293ac0be66229\nkey = 7b0b12491901d62d097fa26dc71e15cfacafa3226719e47126d99c79d98ec222\nmsg = c80312590700c3bbfacd1a40\nresult = valid\ntag = e559f5f755aa292171cc35fbf911a64f\n\n[ivSize = 2056]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 222\n# long IV size\naad = \nct = 5496ae94c3322ebf959ea9a9\niv = 92c2cee7e9138b186da51f146fb21fd5b491f1a19eef61d4ed14ce6b21b04fdb6ff8ebb60fddc55926e7bda2a8f35c610bb795232412739d6c2d74458ef5a1a1cde9bf17e47e3b00db0b0504d56dc8b8d3de23f7c3a5d52e8d0aab1e64405aaa852ec2dd667ed9c1fd8dc1fdbbc8712c7a38f30faeab594f33897b41b1720f3c2f954ed91ca450d82c3dcd35858c608ad42f36832e56b04821a132f72e0da7b62cbd3925250f64fbb3f5c4783495893097adc09a32d776e04bf72558d37830b372341f6536d8ee9df4a82e4074e7774ab6917a04fa8c499eb4b46a92def365da8b5eb1e0b438779507d1f5272a6e8629a3f9c7bd4862c5691ee8b56bfe292deb4e\nkey = 3bc3bf39d0d5ffd94cca2b45c678a2d049151ed2babc713be53cb66f54a16337\nmsg = 8125ee7637d7d0e03bbacf35\nresult = valid\ntag = 70717cc00fd1ffa59bb04329226a0c0a\n\n[ivSize = 0]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 223\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 8f3f52e3c75c58f5cb261f518f4ad30a\nmsg = \nresult = invalid\ntag = cf71978ffcc778f3c85ac9c31b6fe191\nflags = ZeroLengthIv\n\n# tcId = 224\n# 0 size IV is not valid\naad = \nct = 00a29f0a5e2e7490279d1faf8b881c7b\niv = \nkey = 2a4bf90e56b70fdd8649d775c089de3b\nmsg = 324ced6cd15ecc5b3741541e22c18ad9\nresult = invalid\ntag = a2c7e8d7a19b884f742dfec3e76c75ee\nflags = ZeroLengthIv\n\n[ivSize = 0]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 225\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 0b18d21337035c7baa08211b702fa780ac7c09be8f9ed11f\nmsg = \nresult = invalid\ntag = ca69a2eb3a096ea36b1015d5dffff532\nflags = ZeroLengthIv\n\n# tcId = 226\n# 0 size IV is not valid\naad = \nct = 509b0658d09f7a5bb9db43b70c8387f7\niv = \nkey = ba76d594a6df915bb7ab7e6d1a8d024b2796336c1b8328a9\nmsg = d62f302742d61d823ea991b93430d589\nresult = invalid\ntag = 2c9488d53a0b2b5308c2757dfac7219f\nflags = ZeroLengthIv\n\n[ivSize = 0]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 227\n# 0 size IV is not valid\naad = \nct = \niv = \nkey = 3f8ca47b9a940582644e8ecf9c2d44e8138377a8379c5c11aafe7fec19856cf1\nmsg = \nresult = invalid\ntag = 17", + "26aa695fbaa21a1db88455c670a4b0\nflags = ZeroLengthIv\n\n# tcId = 228\n# 0 size IV is not valid\naad = \nct = 7772ea358901f571d3d35c19497639d9\niv = \nkey = 7660d10966c6503903a552dde2a809ede9da490e5e5cc3e349da999671809883\nmsg = c314235341debfafa1526bb61044a7f1\nresult = invalid\ntag = 8fe0520ad744a11f0ccfd228454363fa\nflags = ZeroLengthIv\n\n[ivSize = 8]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 229\n# small IV sizes\naad = \nct = \niv = 80\nkey = 59a284f50aedd8d3e2a91637d3815579\nmsg = \nresult = acceptable\ntag = af498f701d2470695f6e7c8327a2398b\nflags = SmallIv\n\n# tcId = 230\n# small IV sizes\naad = \nct = 0a24612a9d1cbe967dbfe804bf8440e5\niv = 9d\nkey = fec58aa8cf06bfe05de829f27ec77693\nmsg = f2d99a9f893378e0757d27c2e3a3101b\nresult = acceptable\ntag = 96e6fd2cdc707e3ee0a1c90d34c9c36c\nflags = SmallIv\n\n[ivSize = 16]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 231\n# small IV sizes\naad = \nct = \niv = 0f2f\nkey = 88a972cce9eaf5a7813ce8149d0c1d0e\nmsg = \nresult = acceptable\ntag = 4ccf1efb4da05b4ae4452aea42f5424b\nflags = SmallIv\n\n# tcId = 232\n# small IV sizes\naad = \nct = ba3e7f8b2999995c7fc4006ca4f475ff\niv = 8760\nkey = b43967ee933e4632bd6562ba1201bf83\nmsg = 5a6ad6db70591d1e520b0122f05021a0\nresult = acceptable\ntag = 98f47a5279cebbcac214515710f6cd8a\nflags = SmallIv\n\n[ivSize = 32]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 233\n# small IV sizes\naad = \nct = \niv = cc851957\nkey = 4e9a97d3ed54c7b54610793ab05052e1\nmsg = \nresult = acceptable\ntag = e574b355bda2980e047e584feb1676ca\nflags = SmallIv\n\n# tcId = 234\n# small IV sizes\naad = \nct = 1b84baea9df1e65bee7b49e4a8cda1ec\niv = 7b5faeb2\nkey = d83c1d7a97c43f182409a4aa5609c1b1\nmsg = c8f07ba1d65554a9bd40390c30c5529c\nresult = acceptable\ntag = 5c0bb79d8240041edce0f94bd4bb384f\nflags = SmallIv\n\n[ivSize = 48]\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 235\n# small IV sizes\naad = \nct = \niv = 4ad80c2854fb\nkey = c6a705677affb49e276d9511caa46145\nmsg = \nresult = acceptable\ntag = 1e2ed72af590cafb8647d185865f5463\nflags = SmallIv\n\n# tcId = 236\n# small IV sizes\naad = \nct = 18291aa8dc7b07448aa8f71bb8e380bf\niv = d1dafc8de3e3\nkey = eba7699b56cc0aa2f66a2a5be9944413\nmsg = d021e53d9098a2df3d6b903cdad0cd9c\nresult = acceptable\ntag = 9c0e22e5c41b1039ff5661ffaefa8e0f\nflags = SmallIv\n\n[ivSize = 8]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 237\n# small IV sizes\naad = \nct = \niv = cb\nkey = c70ce38e84e5f53ed41c3f0d2ca493412ad32cb04c6e2efa\nmsg = \nresult = acceptable\ntag = 08d96edb5e22874cd10cb2256ca04bc6\nflags = SmallIv\n\n# tcId = 238\n# small IV sizes\naad = \nct = 6c5e796ba9a3ddc64f401e68d135101d\niv = 0f\nkey = 74c816b83dfd287210a3e2c6da8d3053bbfbd9b156d3fdd8\nmsg = f2b7b2c9b312cf2af78f003df15c8e19\nresult = acceptable\ntag = 96a132ed43924e98feb888ff682bdaef\nflags = SmallIv\n\n[ivSize = 16]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 239\n# small IV sizes\naad = \nct = \niv = 75e5\nkey = cbf45ba488932aea1a10e5862f92e4a7e277bda9f34af6d0\nmsg = \nresult = acceptable\ntag = 1f0d23070fcd748e25bf6454f5c9136e\nflags = SmallIv\n\n# tcId = 240\n# small IV sizes\naad = \nct = 550b48a43e821fd76f49f0f1a897aead\niv = 8989\nkey = e1c0446f11ae6aa4fa254f9a846fc6e13e45e537e47f2042\nmsg = 3a2f5ad0eb216e546e0bcaa377b6cbc7\nresult = acceptable\ntag = f6e0a979481f9957ddad0f21a777a73a\nflags = SmallIv\n\n[ivSize = 32]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 241\n# small IV sizes\naad = \nct = \niv = 68d7fc38\nkey = 567563bf4cf154902275a53bc57cd6dd7b370d27011bdac8\nmsg = \nresult = acceptable\ntag = 1475563e3212f3b5e40062569afd71e3\nflags = SmallIv\n\n# tcId = 242\n# small IV sizes\naad = \nct = 309133e76159fe8a41b20843486511ab\niv = bb9d2aa3\nkey = 834d0bb601170865a78139428a1503695a6a291ebd747cd1\nmsg = 6f79e18b4acd5a03d3a5f7e1a8d0f183\nresult = acceptable\ntag = 03ab26993b701910a2e8ecccd2ba9e52\nflags = SmallIv\n\n[ivSize = 48]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 243\n# small IV sizes\naad = \nct = \niv = a984bdcdcae2\nkey = 99fb18f5ba430bb9ea942968ecb799b43406e1af4b6425a1\nmsg = \nresult = acceptable\ntag = d7b9a6b58a97982916e83219fbf71b1e\nflags = SmallIv\n\n# tcId = 244\n# small IV sizes\naad = \nct = e08261e46eaf90d978ea8f7889bccd4f\niv = 52aa01e0d0d6\nkey = b77b242aa0d51c92fda013e0cb0ef2437399ace5d3f507e4\nmsg = 4ba541a9914729216153801340ab1779\nresult = acceptable\ntag = c052a55df3926a50990a532efe3d80ec\nflags = SmallIv\n\n[ivSize = 64]\n[keySize = 192]\n[tagSize = 128]\n\n# tcId = 245\n# small IV sizes\naad = \nct = \niv = d1c61cf8532531b5\nkey = d74599b3d2db81653de43b52fc994c50d0be759fab87c33a\nmsg = \nresult = acceptable\ntag = f94f2049a6560c470b3a7ca7bbc31a3d\nflags = SmallIv\n\n# tcId = 246\n# small IV sizes\naad = \nct = 3c6ec0ab1b827bf238a5384fb7e212ce\niv = 8f075cbcda9831c3\nkey = 0b177198c8b419bf74acc3bc65b5fb3d09a915ff71add754\nmsg = c4b1e05ca3d591f9543e64de3fc682ac\nresult = acceptable\ntag = 7db7402224fd583e312bc0e61cf11366\nflags = SmallIv\n\n[ivSize = 8]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 247\n# small IV sizes\naad = \nct = \niv = a9\nkey = 8f9a38c1014966e4d9ae736139c5e79b99345874f42d4c7d2c81aa6797c417c0\nmsg = \nresult = acceptable\ntag = 2a268bf3a75fd7b00ba230b904bbb014\nflags = SmallIv\n\n# tcId = 248\n# small IV sizes\naad = \nct = 7bea30ecc2f73f8e121263b37966954c\niv = b3\nkey = 144cd8279229e8bb2de99d24e615306663913fe9177fcd270fafec493d43bca1\nmsg = 976229f5538f9636476d69f0c328e29d\nresult = acceptable\ntag = 8bbad4adc54b37a2b2f0f6e8617548c9\nflags = SmallIv\n\n[ivSize = 16]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 249\n# small IV sizes\naad = \nct = \niv = c332\nkey = 7d31861f9d3536e14016a3216b1042e0d2f7d4614314268b6f834ec7f38bbb65\nmsg = \nresult = acceptable\ntag = 1d978a693120c11f6d51a3ed88cd4ace\nflags = SmallIv\n\n# tcId = 250\n# small IV sizes\naad = \nct = 9c39f5b110361e9a770cc5e8b0f444bb\niv = da6c\nkey = 22b35fe9623ee11f8b60b6d22db3765b666ed972fa7ccd92b45f22deee02cab1\nmsg = 5341c78e4ce5bf8fbc3e077d1990dd5d\nresult = acceptable\ntag = b63ff43c12073ec5572b1be70f17e231\nflags = SmallIv\n\n[ivSize = 32]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 251\n# small IV sizes\naad = \nct = \niv = 6b30145e\nkey = c224e0bba3d7a99165f7996b67a0fce3e12f2c01179b197b69b7e628bca92096\nmsg = \nresult = acceptable\ntag = ae6f7c9a29f0d8204ca50b14a1e0dcf2\nflags = SmallIv\n\n# tcId = 252\n# small IV sizes\naad = \nct = f73f72f976a296ba3ca94bc6eb08cd46\niv = 5110604c\nkey = 093eb12343537ee8e91c1f715b862603f8daf9d4e1d7d67212a9d68e5aac9358\nmsg = 33efb58c91e8c70271870ec00fe2e202\nresult = acceptable\ntag = b824c33c13f289429659aa017c632f71\nflags = SmallIv\n\n[ivSize = 48]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 253\n# small IV sizes\naad = \nct = \niv = d4d857510888\nkey = 98e6f8ab673e804e865e32403a6551bf807a959343c60d34559360bc295ecb5b\nmsg = \nresult = acceptable\ntag = 3db16725fafc828d414ab61c16a6c38f\nflags = SmallIv\n\n# tcId = 254\n# small IV sizes\naad = \nct = ed463f4f43336af3f4d7e08770201145\niv = 1bdcd44b663e\nkey = 0bd0e8e7781166e1d876dec8fad34ba95b032a27cac0551595116091005947b7\nmsg = 91222263b12cf5616a049cbe29ab9b5b\nresult = acceptable\ntag = c8fc39906aca0c64e14a43ff750abd8a\nflags = SmallIv\n\n[ivSize = 64]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 255\n# small IV sizes\naad = \nct = \niv = 0d10c5c84b88d688\nkey = 61ba694897925d1b4174d40401469c3ef267cdb9f829edb1a10618c16d666059\nmsg = \nresult = acceptable\ntag = 1311f9f830d729c189b74ec4f9080fa1\nflags = SmallIv\n\n# tcId = 256\n# small IV sizes\naad = \nct = 7e0dd6c72aec49f89cc6a80060c0b170\niv = 04102199ef21e1df\nkey = 115884f693b155563e9bfb3b07cacb2f7f7caa9bfe51f89e23feb5a9468bfdd0\nmsg = 82e3e604d2be8fcab74f638d1e70f24c\nresult = acceptable\ntag = af68a37cfefecc4ab99ba50a5353edca\nflags = SmallIv\n\n", }; -static const size_t kLen60 = 65557; +static const size_t kLen93 = 140567; -static const char *kData60[] = { - "# Imported from Wycheproof's chacha20_poly1305_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: CHACHA20-POLY1305\n# Generator version: 0.4.12\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 1\n# rfc7539\naad = 50515253c0c1c2c3c4c5c6c7\nct = d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116\niv = 070000004041424344454647\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e652074697020666f7220746865206675747572652c2073756e73637265656e20776f756c642062652069742e\nresult = valid\ntag = 1ae10b594f09e26a7e902ecbd0600691\n\n# tcId = 2\naad = \nct = \niv = 4da5bf8dfd5852c1ea12379d\nkey = 80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\nmsg = \nresult = valid\ntag = 76acb342cf3166a5b63c0c0ea1383c8d\n\n# tcId = 3\naad = bd506764f2d2c410\nct = \niv = a92ef0ac991dd516a3c6f689\nkey = 7a4cd759172e02eb204db2c3f5c746227df584fc1345196391dbb9577a250742\nmsg = \nresult = valid\ntag = 906fa6284b52f87b7359cbaa7563c709\n\n# tcId = 4\naad = \nct = 3a\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = cac27dec0968801e9f6eded69d807522\n\n# tcId = 5\naad = 91ca6c592cbcca53\nct = c4\niv = ab0dca716ee051d2782f4403\nkey = 46f0254965f769d52bdb4a70b443199f8ef207520d1220c55e4b70f0fda620ee\nmsg = 51\nresult = valid\ntag = 168310ca45b1f7c66cad4e99e43f72b9\n\n# tcId = 6\naad = \nct = 4d13\niv = 461af122e9f2e0347e03f2db\nkey = 2f7f7e4f592bb389194989743507bf3ee9cbde1786b6695fe6c025fd9ba4c100\nmsg = 5c60\nresult = valid\ntag = 91e8b61efb39c122195453077b22e5e2\n\n# tcId = 7\naad = 88364fc8060518bf\nct = b60d\niv = 61546ba5f1720590b6040ac6\nkey = c8833dce5ea9f248aa2030eacfe72bffe69a620caf793344e5718fe0d7ab1a58\nmsg = ddf2\nresult = valid\ntag = ead0fd4697ec2e5558237719d02437a2\n\n# tcId = 8\naad = \nct = 5dfe3440dbb3c3\niv = 3c4e654d663fa4596dc55bb7\nkey = 55568158d3a6483f1f7021eab69b703f614251cadc1af5d34a374fdbfc5adac7\nmsg = ab85e9c1571731\nresult = valid\ntag = ed7a434e2602d394281e0afa9fb7aa42\n\n# tcId = 9\naad = 84e46be8c0919053\nct = 4bd47212941ce3\niv = 58389375c69ee398de948396\nkey = e3c09e7fab1aefb516da6a33022a1dd4eb272c80d540c5da52a730f34d840d7f\nmsg = 4ee5cda20d4290\nresult = valid\ntag = 185f1408ee7fbf18f5abad6e2253a1ba\n\n# tcId = 10\naad = \nct = 8e9439a56eeec817\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = fbe8a6ed8fabb1937539dd6c00e90021\n\n# tcId = 11\naad = 66c0ae70076cb14d\nct = b9b910433af052b0\niv = b4ea666ee119563366484a78\nkey = 1131c1418577a054de7a4ac551950f1a053f9ae46e5b75fe4abd5608d7cddadd\nmsg = a4c9c2801b71f7df\nresult = valid\ntag = 4530f51aeee024e0a445a6328fa67a18\n\n# tcId = 12\naad = \nct = ff7dc203b26c467a6b50db33\niv = 9a59fce26df0005e07538656\nkey = 99b62bd5afbe3fb015bde93f0abf483957a1c3eb3ca59cb50b39f7f8a9cc51be\nmsg = 42baae5978feaf5c368d14e0\nresult = valid\ntag = 578c0f2758c2e14e36d4fc106dcb29b4\n\n# tcId = 13\naad = a506e1a5c69093f9\nct = 9f8816de0994e938d9e53f95\niv = 58dbd4ad2c4ad35dd906e9ce\nkey = 85f35b6282cff440bc1020c8136ff27031110fa63ec16f1e825118b006b91257\nmsg = fdc85b94a4b2a6b759b1a0da\nresult = valid\ntag = d086fc6c9d8fa915fd8423a7cf05072f\n\n# tcId = 14\naad = \nct = 0b29638e1fbdd6df53970be2210042\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = 2a9134087d67a46e79178d0a93f5e1d2\n\n# tcId = 15\naad = 6453a53384632212\nct = 32db66c4a3819d81557455e5980fed\niv = d95b3243afaef714c5035b6a\nkey = e6f1118d41e4b43fb58221b7ed79673834e0d8ac5c4fa60bbc8bc4893a58894d\nmsg = 97469da667d6110f9cbda1d1a20673\nresult = valid\ntag = feae30dec94e6ad3a9eea06a0d703917\n\n# tcId = 16\naad = \nct = e9110e9f56ab3ca483500ceabab67a13\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 836ccabf15a6a22a51c1071cfa68fa0c\n\n# tcId = 17\naad = 034585621af8d7ff\nct = e4b113cb775945f3d3a8ae9ec141c00c\niv = 118a6964c2d3e380071f5266\nkey = b907a45075513fe8a8019edee3f2591487b2a030b03c6e1d771c862571d2ea1e\nmsg = 55a465644f5b650928cbee7c063214d6\nresult = valid\ntag = 7c43f16ce096d0dc27c95849dc383b7d\n\n# tcId = 18\naad = \nct = 02cc3acb5ee1fcdd12a03bb857976474d3\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = d83b7463a2c3800fe958c28eaa290813\n\n# tcId = 19\naad = 9aaf299eeea78f79\nct = 35766488d2bc7c2b8d17cbbb9abfad9e6d\niv = f0384fb876121410633d993d\nkey = f60c6a1b625725f76c7037b48fe3577fa7f7b87b1bd5a982176d182306ffb870\nmsg = 63858ca3e2ce69887b578a3c167b421c9c\nresult = valid\ntag = 1f391e657b2738dda08448cba2811ceb\n\n# tcId = 20\naad = \nct = 42f26c56cb4be21d9d8d0c80fc99dde00d75f38074bfe764\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 54aa7e13d48fff7d7557039457040a3a\n\n# tcId = 21\naad = 3e8bc5ade182ff08\nct = 123032437b4bfd6920e8f7e7e0087ae4889ebe7a0ad0e900\niv = 6b282ebecc541bcd7834ed55\nkey = c5bc09565646e7edda954f1f739223dada20b95c44ab033d0fae4b0283d18be3\nmsg = 9222f9018e54fd6de1200806a9ee8e4cc904d29f25cba193\nresult = valid\ntag = 3cf68f179550da63d3b96c2d55411865\n\n# tcId = 22\naad = \nct = 45c7d6b53acad4abb68876a6e96a48fb59524d2c92c9d8a189c9fd2db91746\niv = 04a9be03508a5f31371a6fd2\nkey = 2eb51c469aa8eb9e6c54a8349bae50a20f0e382711bba1152c424f03b6671d71\nmsg = b053999286a2824f42cc8c203ab24e2c97a685adcc2ad32662558e55a5c729\nresult = valid\ntag = 566d3ca10e311b695f3eae1551652493\n\n# tcId = 23\naad = 374618a06ea98a48\nct = 46a80c4187024720084627580080dde5a3f4a11093a7076ed6f3d326bc7b70\niv = 470a339ecb3219b8b81a1f8b\nkey = 7f5b74c07ed1b40fd14358fe2ff2a740c116c7706510e6a437f19ea49911cec4\nmsg = f45206abc25552b2abc9ab7fa243035fedaaddc3b2293956f1ea6e7156e7eb\nresult = valid\ntag = 534d4aa2835a52e72d14df0e4f47f25f\n\n# tcId = 24\naad = \nct = ea29afa49d36e8760f5fe19723b9811ed5d519934a440f5081ac430b953b0e21\niv = 72cfd90ef3026ca22b7e6e6a\nkey = e1731d5854e1b70cb3ffe8b786a2b3ebf0994370954757b9dc8c7bc5354634a3\nmsg = b9c554cbc36ac18ae897df7beecac1dbeb4eafa156bb60ce2e5d48f05715e678\nresult = valid\ntag = 222541af46b86533c6b68d2ff108a7ea\n\n# tcId = 25\naad = 2333e5ce0f93b059\nct = 6dad637897544d8bf6be9507ed4d1bb2e954bc427e5de729daf50762846ff2f4\niv = 262880d475f3dac5340dd1b8\nkey = 27d860631b0485a410702fea61bc873f3442260caded4abde25b786a2d97f145\nmsg = 6b2604996cd30c14a13a5257ed6cffd3bc5e29d6b97eb1799eb335e281ea451e\nresult = valid\ntag = 7b997d93c982189d7095dc794c746232\n\n# tcId = 26\naad = \nct = fba78ae4f9d808a62e3da40be2cb7700c3613d9eb2c529c652e76a432c658d27095f0eb8f940c324981ea935e507f9\niv = e74a515e7e2102b90bef55d2\nkey = cf0d40a4644e5f51815165d5301b22631f4544c49a1878e3a0a5e8e1aae0f264\nmsg = 973d0c753826bae466cf9abb3493152e9de7819e2bd0c71171346b4d2cebf8041aa3cedc0dfd7b467e26228bc86c9a\nresult = valid\ntag = 8f046956db3a512908bd7afc8f2ab0a9\n\n# tcId = 27\naad = b3e4064683b02d84\nct = a1ffed80761829ecce242e0e88b138049016bca018da2b6e19986b3e318cae8d806198fb4c527cc39350ebddeac573\niv = d4d807341683825b31cd4d95\nkey = 6cbfd71c645d184cf5d23c402bdb0d25ec54898c8a0273d42eb5be109fdcb2ac\nmsg = a98995504df16f748bfb7785ff91eeb3b660ea9ed3450c3d5e7b0e79ef653659a9978d75542ef91c456762215640b9\nresult = valid\ntag = c4cbf0befda0b70242c640d7cd02d7a3\n\n# tcId = 28\naad = \nct = 9a4ef22b181677b5755c08f747c0f8d8e8d4c18a9cc2405c12bb51bb1872c8e8b877678bec442cfcbb0ff464a64b74332cf072898c7e0eddf6232ea6e27efe50\niv = d61040a313ed492823cc065b\nkey = 5b1d1035c0b17ee0b0444767f80a25b8c1b741f4b50a4d3052226baa1c6fb701\nmsg = d096803181beef9e008ff85d5ddc38ddacf0f09ee5f7e07f1e4079cb64d0dc8f5e6711cd4921a7887de76e2678fdc67618f1185586bfea9d4c685d50e4bb9a82\nresult = valid\ntag = 9ff3427a0f32fa566d9ca0a78aefc013\n\n# tcId = 29\naad = 7193f623663321a2\nct = 5fbbdecc", - "34be201614f636031eeb42f1cace3c79a12cffd871ee8e73820c829749f1abb4294367849fb6c2aa56bda8a3078f723d7c1c852024b017b58973fb1e\niv = d31c21aba175b70de4ebb19c\nkey = 97d635c4f47574d9998a90875da1d3a284b755b2d39297a5725235190e10a97e\nmsg = 94ee166d6d6ecf8832437136b4ae805d428864359586d9193a25016293edba443c58e07e7b7195ec5bd84582a9d56c8d4a108c7d7ce34e6c6f8ea1bec0567317\nresult = valid\ntag = 09263da7b4cb921452f97dca40f580ec\n\n# tcId = 30\naad = \nct = d0102f6c258bf49742cec34cf2d0fedf23d105fb4c84cf98515e1bc9a64f8ad5be8f0721bde50645d00083c3a263a31053b760245f52ae2866a5ec83b19f61be1d30d5c5d9fecc4cbbe08fd385813a2aa39a00ff9c10f7f23702add1e4b2ffa31c\niv = 17c86a8abbb7e003acde2799\nkey = fe6e55bdaed1f7284ca5fc0f8c5f2b8df56dc0f49e8ca66a41995e783351f901\nmsg = b429eb80fb8fe8baeda0c85b9c333458e7c2992e558475069d12d45c22217564121588032297eff56783742a5fc22d7410ffb29d66098661d76f126c3c27689e43b37267cac5a3a6d3ab49e391da29cd3054a5692e2807e4c3ea46c8761d50f592\nresult = valid\ntag = 41865fc71de12b19612127ce49993bb0\n\n# tcId = 31\naad = a11c40b603767330\nct = 7545391b51de01d5c53dfaca777909063e58edee4bb1227e7110ac4d2620c2aec2f848f56deeb037a8dced75afa8a6c890e2dee42f950bb33d9e2424d08a505d899563973ed38870f3de6ee2adc7fe072c366c14e2cf7ca62fb3d36bee11685461\niv = 46362f45d6379e63e5229460\nkey = aabc063474e65c4c3e9bdc480dea97b45110c8618846ff6b15bdd2a4a5682c4e\nmsg = ceb534ce50dc23ff638ace3ef63ab2cc2973eeada80785fc165d06c2f5100ff5e8ab2882c475afcd05ccd49f2e7d8f55ef3a72e3dc51d6852b8e6b9e7aece57be6556b0b6d9413e33fc5fc24a9a205ad59574bb39d944a92dc47970d84a6ad3176\nresult = valid\ntag = b70d44ef8c66c5c7bbf10dcadd7facf6\n\n# tcId = 32\naad = 02\nct = 7e72f5a185af16a611921b438f749f0b\niv = 87345f1055fd9e2102d50656\nkey = 7d00b48095adfa3272050607b264185002ba99957c498be022770f2ce2f3143c\nmsg = e5ccaa441bc814688f8f6e8f28b500b2\nresult = valid\ntag = 1242c670732334029adfe1c5001651e4\n\n# tcId = 33\naad = b648\nct = 85f29a719557cdd14d1f8fffab6d9e60\niv = 87a3163ec0598ad95b3aa713\nkey = 6432717f1db85e41ac7836bce25185a080d5762b9e2b18444b6ec72c3bd8e4dc\nmsg = 02cde168fba3f544bbd0332f7adeada8\nresult = valid\ntag = 732ca32becd515a1ed353f542e999858\n\n# tcId = 34\naad = bd4cd02fc7502bbdbdf6c9a3cbe8f0\nct = c1b295936d56fadac03e5f742bff73a1\niv = 6f573aa86baa492ba46596df\nkey = 8e34cf73d245a1082a920b86364eb896c4946467bcb3d58929fcb36690e6394f\nmsg = 16ddd23ff53f3d23c06334487040eb47\nresult = valid\ntag = 39c457dbab66382babb3b55800cda5b8\n\n# tcId = 35\naad = 89cce9fb47441d07e0245a66fe8b778b\nct = c84c9bb7c61c1bcb17772a1c500c5095\niv = 1a6518f02ede1da6809266d9\nkey = cb5575f5c7c45c91cf320b139fb594237560d0a3e6f865a67d4f633f2c08f016\nmsg = 623b7850c321e2cf0c6fbcc8dfd1aff2\nresult = valid\ntag = dbadf7a5138ca03459a2cd65831e092f\n\n# tcId = 36\naad = d19f2d989095f7ab03a5fde84416e00c0e\nct = 94bc80621ed1e71b1fd2b5c3a15e3568\niv = 564dee49ab00d240fc1068c3\nkey = a5569e729a69b24ba6e0ff15c4627897436824c941e9d00b2e93fddc4ba77657\nmsg = 87b3a4d7b26d8d3203a0de1d64ef82e3\nresult = valid\ntag = 333511861796978401598b963722f5b3\n\n# tcId = 37\naad = 5e6470facd99c1d81e37cd44015fe19480a2a4d3352a4ff560c0640fdbda\nct = 299b5d3f3d03c087209a16e285143111\niv = df8713e87ec3dbcfad14d53e\nkey = 56207465b4e48e6d04630f4a42f35cfc163ab289c22a2b4784f6f9290330bee0\nmsg = e601b38557797da2f8a4106a089d1da6\nresult = valid\ntag = 4b454ed198de117e83ec49fa8d8508d6\n\n# tcId = 38\naad = ba446f6f9a0ced22450feb10737d9007fd69abc19b1d4d9049a5551e86ec2b37\nct = 605bbf90aeb974f6602bc778056f0dca\niv = 8df4b15a888c33286a7b7651\nkey = 3937986af86dafc1ba0c4672d8abc46c207062682d9c264ab06d6c5807205130\nmsg = dc9e9eaf11e314182df6a4eba17aec9c\nresult = valid\ntag = 38ea23d99054b46b42ffe004129d2204\n\n# tcId = 39\naad = d41a828d5e71829247021905402ea257dccbc3b80fcd5675056b68bb59e62e8873\nct = 7b7ce0d824809a70de32562ccf2c2bbd\niv = be40e5f1a11817a0a8fa8949\nkey = 36372abcdb78e0279646ac3d176b9674e9154eecf0d5469c651ec7e16b4c1199\nmsg = 81ce84ede9b35859cc8c49a8f6be7dc6\nresult = valid\ntag = 15d44a00ce0d19b4231f921e22bc0a43\n\n# tcId = 40\naad = 3f2dd49bbf09d69a78a3d80ea2566614fc379474196c1aae84583da73d7ff85c6f42ca42056a9792cc1b9fb3c7d261\nct = ca82bff3e2f310ccc976672c4415e69b\niv = 84c87dae4eee27730ec35d12\nkey = 9f1479ed097d7fe529c11f2f5add9aaff4a1ca0b68997a2cb7f79749bd90aaf4\nmsg = a66747c89e857af3a18e2c79500087ed\nresult = valid\ntag = 57638c62a5d85ded774f913c813ea032\n\n# tcId = 41\naad = 00000000000000000000000000000000\nct = 0000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40888094178355d304846443fee8df99470303fb3b7b80e030beebd329be\nresult = valid\ntag = e6d3d7324a1cbba777bbb0ecdda37807\n\n# tcId = 42\naad = 00000000000000000000000000000000\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40888094178355d304846443fee8df99470303fb3b7b80e030beebd329bee3bcdb5b1edefcfe8bcda1b6a15c8c2b0869ffd2ec5e26e553b7b227fe87fdbd\nresult = valid\ntag = 062de6795f274fd2a305d76980bc9cce\n\n# tcId = 43\naad = 00000000000000000000000000000000\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40888094178355d304846443fee8df99470303fb3b7b80e030beebd329bee3bcdb5b1edefcfe8bcda1b6a15c8c2b0869ffd2ec5e26e553b7b227fe87fdbd7ada44424269bffa5527f270acf68502b74c5ae2e60c0580981a4938459392c49bb2f284b646efc7f3f0b1361dc348ed77d30bc57692ed38fbac0188380488c7\nresult = valid\ntag = d8b47902baaeafb34203051529af282e\n\n# tcId = 44\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bf777f6be87caa2cfb7b9bbc01172066b8fcfc04c4847f1fcf41142cd641\nresult = valid\ntag = b3891c849cb52c27747edfcf31213bb6\n\n# tcId = 45\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bf777f6be87caa2cfb7b9bbc01172066b8fcfc04c4847f1fcf41142cd6411c4324a4e121030174325e495ea373d4f796002d13a1d91aac484dd801780242\nresult = valid\ntag = f0c12d26ef03029b62c008da27c5dc68\n\n# tcId = 46\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bf777f6be87caa2cfb7b9bbc01172066b8fcfc04c4847f1fcf41142cd6411c4324a4e121030174325e495ea373d4f796002d13a1d91aac484dd8017802428525bbbdbd964005aad80d8f53097afd48b3a51d19f3fa7f67e5b6c7ba6c6d3b644d0d7b49b910380c0f4ec9e23cb712882cf43a896d12c70453fe77c7fb7738\nresult = valid\ntag = ee65783001c25691fa28d0f5f1c1d762\n\n# tcId = 47\naad = 00000080000000800000008000000080\nct = 0000008000000080000000800000008000000080000000800000008000000080\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40088094170355d304046443fe68df99478303fb3bfb80e0303eebd3293e\nresult = valid\ntag = 79ba7a29f5a7bb75797af87a610129a4\n\n# tcId = 48\naad = 00000080000000800000008000000080\nct = 00000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40088094170355d304046443fe68df99478303fb3bfb80e0303eebd3293ee3bcdbdb1edefc7e8bcda136a15c8cab0869ff52ec5e266553b7b2a7fe87fd3d\nresult = valid\ntag = 36b1743819e1b9ba1551e8ed922a959a\n\n# tcId = 49\naad = 0000", - "0080000000800000008000000080\nct = 0000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40088094170355d304046443fe68df99478303fb3bfb80e0303eebd3293ee3bcdbdb1edefc7e8bcda136a15c8cab0869ff52ec5e266553b7b2a7fe87fd3d7ada44c24269bf7a5527f2f0acf68582b74c5a62e60c0500981a49b8459392449bb2f204b646ef47f3f0b1b61dc3486d77d30b457692edb8fbac010838048847\nresult = valid\ntag = feac4955554e806f3a1902e24432c08a\n\n# tcId = 50\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bff77f6be8fcaa2cfbfb9bbc01972066b87cfc04c4047f1fcfc1142cd6c1\nresult = valid\ntag = 20a3798df1292c5972bf9741aec38a19\n\n# tcId = 51\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bff77f6be8fcaa2cfbfb9bbc01972066b87cfc04c4047f1fcfc1142cd6c11c432424e121038174325ec95ea37354f79600ad13a1d99aac484d58017802c2\nresult = valid\ntag = c03d9f67354a97b2f074f7551557e49c\n\n# tcId = 52\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bff77f6be8fcaa2cfbfb9bbc01972066b87cfc04c4047f1fcfc1142cd6c11c432424e121038174325ec95ea37354f79600ad13a1d99aac484d58017802c28525bb3dbd964085aad80d0f53097a7d48b3a59d19f3faff67e5b647ba6c6dbb644d0dfb49b910b80c0f4e49e23cb792882cf4ba896d12470453fef7c7fb77b8\nresult = valid\ntag = c86da8dd652286d50213d328d63e4006\n\n# tcId = 53\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 5a92bf77ff6be87c2a2cfb7b1bbc0117a066b8fc7c04c484ff1fcf41942cd641\nresult = valid\ntag = bede9083ceb36ddfe5fa811f95471c67\n\n# tcId = 54\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 5a92bf77ff6be87c2a2cfb7b1bbc0117a066b8fc7c04c484ff1fcf41942cd6419c4324a461210301f4325e49dea373d47796002d93a1d91a2c484dd881780242\nresult = valid\ntag = 300874bb0692b689dead9ae15b067390\n\n# tcId = 55\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 5a92bf77ff6be87c2a2cfb7b1bbc0117a066b8fc7c04c484ff1fcf41942cd6419c4324a461210301f4325e49dea373d47796002d93a1d91a2c484dd8817802420525bbbd3d9640052ad80d8fd3097afdc8b3a51d99f3fa7fe7e5b6c73a6c6d3be44d0d7bc9b910388c0f4ec9623cb712082cf43a096d12c78453fe7747fb7738\nresult = valid\ntag = 99cad85f45ca40942d0d4d5e950ade22\n\n# tcId = 56\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40887f6be87c55d304849bbc0117df994703fc04c48480e030be142cd641\nresult = valid\ntag = 8bbe145272e7c2d9a1891a3ab0983d9d\n\n# tcId = 57\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40887f6be87c55d304849bbc0117df994703fc04c48480e030be142cd641e3bcdb5be12103018bcda1b65ea373d40869ffd213a1d91a53b7b22701780242\nresult = valid\ntag = 3b41861913a8f6de7f61e225631bc382\n\n# tcId = 58\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 256d40887f6be87c55d304849bbc0117df994703fc04c48480e030be142cd641e3bcdb5be12103018bcda1b65ea373d40869ffd213a1d91a53b7b227017802427ada4442bd9640055527f27053097afdb74c5ae219f3fa7f981a4938ba6c6d3b9bb2f28449b91038f3f0b136e23cb71277d30bc5896d12c7fbac0188c7fb7738\nresult = valid\ntag = 8428bcf023ec6bf31fd9efb203ff0871\n\n# tcId = 59\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bf7780941783aa2cfb7b6443fee82066b8fc03fb3b7b7f1fcf41ebd329be\nresult = valid\ntag = 139fdf6474ea24f549b075825f2c7620\n\n# tcId = 60\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bf7780941783aa2cfb7b6443fee82066b8fc03fb3b7b7f1fcf41ebd329be1c4324a41edefcfe74325e49a15c8c2bf796002dec5e26e5ac484dd8fe87fdbd\nresult = valid\ntag = bbad8d863b835a8e8664fd1d4566b6b4\n\n# tcId = 61\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000000000000000001ee3200\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = da92bf7780941783aa2cfb7b6443fee82066b8fc03fb3b7b7f1fcf41ebd329be1c4324a41edefcfe74325e49a15c8c2bf796002dec5e26e5ac484dd8fe87fdbd8525bbbd4269bffaaad80d8facf6850248b3a51de60c058067e5b6c7459392c4644d0d7bb646efc70c0f4ec91dc348ed882cf43a7692ed380453fe77380488c7\nresult = valid\ntag = 42f2354297849a511d53e5571772f71f\n\n# tcId = 62\n# Flipped bit 0 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a2e3fdf9fba6861b5ad2607f40b7f447\n\n# tcId = 63\n# Flipped bit 1 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a1e3fdf9fba6861b5ad2607f40b7f447\n\n# tcId = 64\n# Flipped bit 7 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 23e3fdf9fba6861b5ad2607f40b7f447\n\n# tcId = 65\n# Flipped bit 8 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e2fdf9fba6861b5ad2607f40b7f447\n\n# tcId = 66\n# Flipped bit 31 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccdde", - "eff\nmsg = \nresult = invalid\ntag = a3e3fd79fba6861b5ad2607f40b7f447\n\n# tcId = 67\n# Flipped bit 32 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9faa6861b5ad2607f40b7f447\n\n# tcId = 68\n# Flipped bit 33 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9f9a6861b5ad2607f40b7f447\n\n# tcId = 69\n# Flipped bit 63 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6869b5ad2607f40b7f447\n\n# tcId = 70\n# Flipped bit 64 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5bd2607f40b7f447\n\n# tcId = 71\n# Flipped bit 77 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5af2607f40b7f447\n\n# tcId = 72\n# Flipped bit 80 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5ad2617f40b7f447\n\n# tcId = 73\n# Flipped bit 96 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5ad2607f41b7f447\n\n# tcId = 74\n# Flipped bit 97 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5ad2607f42b7f447\n\n# tcId = 75\n# Flipped bit 120 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5ad2607f40b7f446\n\n# tcId = 76\n# Flipped bit 121 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5ad2607f40b7f445\n\n# tcId = 77\n# Flipped bit 126 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5ad2607f40b7f407\n\n# tcId = 78\n# Flipped bit 127 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6861b5ad2607f40b7f4c7\n\n# tcId = 79\n# Flipped bit 63 and 127 in tag expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = a3e3fdf9fba6869b5ad2607f40b7f4c7\n\n# tcId = 80\n# Tag changed to all zero expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 81\n# tag change to all 1 expected tag:a3e3fdf9fba6861b5ad2607f40b7f447\naad = 616164\nct = \niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 82\n# Flipped bit 0 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 26da374f17b7f1b23844a5490bfc4001\n\n# tcId = 83\n# Flipped bit 1 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 25da374f17b7f1b23844a5490bfc4001\n\n# tcId = 84\n# Flipped bit 7 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = a7da374f17b7f1b23844a5490bfc4001\n\n# tcId = 85\n# Flipped bit 8 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27db374f17b7f1b23844a5490bfc4001\n\n# tcId = 86\n# Flipped bit 31 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da37cf17b7f1b23844a5490bfc4001\n\n# tcId = 87\n# Flipped bit 32 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f16b7f1b23844a5490bfc4001\n\n# tcId = 88\n# Flipped bit 33 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f15b7f1b23844a5490bfc4001\n\n# tcId = 89\n# Flipped bit 63 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1323844a5490bfc4001\n\n# tcId = 90\n# Flipped bit 64 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23944a5490bfc4001\n\n# tcId = 91\n# Flipped bit 77 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23864a5490bfc4001\n\n# tcId = 92\n# Flipped bit 80 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23844a4490bfc4001\n\n# tcId = 93\n# Flipped bit 96 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23844a5490afc4001\n\n# tcId = 94\n# Flipped bit 97 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey", - " = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23844a54909fc4001\n\n# tcId = 95\n# Flipped bit 120 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23844a5490bfc4000\n\n# tcId = 96\n# Flipped bit 121 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23844a5490bfc4003\n\n# tcId = 97\n# Flipped bit 126 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23844a5490bfc4041\n\n# tcId = 98\n# Flipped bit 127 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1b23844a5490bfc4081\n\n# tcId = 99\n# Flipped bit 63 and 127 in tag expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 27da374f17b7f1323844a5490bfc4081\n\n# tcId = 100\n# Tag changed to all zero expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 101\n# tag change to all 1 expected tag:27da374f17b7f1b23844a5490bfc4001\naad = 616164\nct = 2cf8ae525fc86025268a4e1d88bead19\niv = 000102030405060708090a0b\nkey = 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff\nmsg = 00000000000000000000000000000000\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 102\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 30303030303030300002506e\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = d4500bf009493551c380adf52c573a69df7e8b762463330facc16a5726be7190c63c5a1c926584a096756828dcdc64acdf963d931bf1dae238f3f157224ac4b542d785b0dd84db6be3bc5a3663e84149ffbed09e54f78f16a8223b24cb019f58b21b0e551e7aa07327629551376ccbc3937671a0629bd95c9915c78555771e7a\nresult = valid\ntag = 0b300d8da56c2185755279553c4c82ca\n\n# tcId = 103\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 3030303030303030000318a5\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = 7de87f6729945275d0655da4c7fde4569e16f111b5eb26c22d859e3ff822eced3a6dd9a60f22957f7b7c857e8822eb9fe0b8d7022141f2d0b48f4b5612d322a88dd0fe0b4d9179324f7c6c9e990efbd80e5ed6775826498b1efe0f71a0f3ec5b29cb28c2540a7dcd51b7daaee0ff4a7f3ac1ee54c29ee4c170de408f66692194\nresult = valid\ntag = c578e2aa44d309b7b6a5193bdc6118f5\n\n# tcId = 104\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000000000000007b4f0\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = 1b996f9a3ccc6785de22ff5b8add9502ce03a0faf5992a09522cdd1206d220b8f8bd07d1f1f5a1bd9a71d11c7f579b855818c08d4de036393183b7f590b335aed8de5b57b13c5fede2441c3e184aa9d46e61598506b3e11c43c62cbcaceced33190875b012218b1930fb7c38ec45ac11c353d0cf938dccb9efad8fedbe46daa5\nresult = valid\ntag = 4b0bda8ad043830d8319ab82c50c7663\n\n# tcId = 105\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000000000000020fb66\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = 86cbacae4d3f74ae01213e0551cc15160ea1be8408e3d5d74f01464995a69e6176cb9e02b2247ed299892f9182a45caf4c69405611766edfafdc285519ea30480c44f05e781eacf8fcecc7090abb28fa5fd585ac8cda7e8772e594e4ce6c883281932e0f89f877a1f04d9c32b06cf90b0e762b430c4d517c97107068f498ef7f\nresult = valid\ntag = 4bc98f72c494c2a43c2b15a1043f1cfa\n\n# tcId = 106\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000000000000038bb90\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = fab1cddf4fe198ef63add881d6ead6c57637bbe92018ca7c0b96fba0871e932db1fbf90761be25df8dfaf931ce5757e617b3d7a9f0bf0ffe5d591a33c143b8f53fd0b5a19609fd62e5c251a4281a200cfdc34f281710406f4e37625446ff6ef224913deb0d89af337128e3d155d16d3ec3246041432143e9ab3a6d2ccc2f4d62\nresult = valid\ntag = f7e9e151b02533c74658bfc7737c680d\n\n# tcId = 107\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000000000000070484a\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = 227202be7f3515e9d1c02eea2f1950b6481b048a4c91506cb40d504e6c949f82d197c25ad17dc721651125782ac7a71247feaef32f1f250ce4bb8f79acaa179d45a7b0545f0924325efa87d5e441d28478c61f2223ee67c3b41f4394535e2a24369a2e16613c459490c14fb1d755fe53fbe1ee45b1b21f7162e2fcaa742abefd\nresult = valid\ntag = 795bcff647c553c2e4eb6e0eafd9e04e\n\n# tcId = 108\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000000000000000000932f40\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = fae58345c1", - "6cb0f5cc537f2b1b3469c969463b3ea71bcf6b98d669a8e60e04fc08d5fd069c362638e3400ef4cb242e27e2245e68cb9ec583da5340b12edf423b7326ad20feeb57daca2e0467a32899b42df8e56d84e006bc8a7acc731e7c1f6becb5719f7077f0d4f4c61ab11ebac1001801ce33c4e4a77d831d3ce34e8410e1\nresult = valid\ntag = 1946d653960f947a74d3e8093cf48502\n\n# tcId = 109\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000000000000000000e29335\nkey = 3030303030303030303030303030303030303030303030303030303030303030\nmsg = ebb216ddd7ca709215f503df9ce63c5cd2194e7d9099e8a90b2afaad5eba35069925a603fdbc341aaed41505b10941fa3856a7e247b1040709746cfc2096caa631b2fff41c250506d889c1c90671ade853ee6394c19192a5cf3710d1073099e5bc946582fc0fab9f543c716ae2486a8683fdca39d2e14f23d00a582664f4ecb1\nresult = valid\ntag = 36c3002985dd21baf895d633573f12c0\n\n# tcId = 110\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0000000000000000000ef7d5\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 408ae6ef1c7ef0fb2c2d610816fc7849efa58f78273f5f166ea65f81b575747d035b3040fede1eb9459788669788408e00413b3e376d152d204aa2b7a83558fcd48a0ef7a26b1cd6d35d23b3f5dfe0ca77a4ce32b94abf83da2aefcaf068380879e89fb0a3829595cf44c3852ae2cc662b689f9355d9c183801f6acc313f8907\nresult = valid\ntag = 6514518e0a264142e0b7351f967fc2ae\n\n# tcId = 111\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0000000000000000003dfce4\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 0a0a24499bcade58cf1576c312aca984718cb4cc7e0153f5a9015810859644dfc021174e0b060a397448de8b484a8603be680a6934c0906f30dd17eae2d4c5faa777f8ca53370e08331b88c342bac959787bbb33930e3b56be86da7f2a6eb1f94089d1d181074d4302f8e0552d0de1fab306a21b42d4c3ba6e6f0cbcc81e877a\nresult = valid\ntag = 4c194da6a99fd65b40e9cad798f44b19\n\n# tcId = 112\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0000000000000000018486a8\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4a0aaff8494729188691701340f3ce2b8a78eed3a0f065994b72484e7991d25c29aa075eb1fc16de93fe069058112ab284a3ed18780326d1258a47222fa633d8b29f3bd9150b239b1546c2bb9b9f410febead396000ee477701532c3d0f5fbf895d280196d2f737c5e9fec50d92bb0df5d7e513be5b8ea971310d5bf16ba7aee\nresult = valid\ntag = c8ae7788cd2874abc138541e11fd0587\n\n# tcId = 113\n# checking for int overflows\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875c783d35f613e6d9093d38e975c38fe3b89f7aed35cb5a2fcaa0346efb936554649cf6378171eae4396ea15dc240d1abf4472d9096524fa1b2b023b8b288222773d4d206616f9293f65b45dbbc74e7c2edfbcbbf1cfb679bb739a5862de2bcb937f74d5bf8671c5a8a5092f61d54c9aa5b\nresult = valid\ntag = 933a5163c7f62368327b3fbc1036c943\n\n# tcId = 114\n# special case tag\naad = 85ffffffffffffffffffffffffffffffa6902fcbc883bbc180b256ae34ad7f00\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = 000102030405060708090a0b0c0d0e0f\n\n# tcId = 115\n# special case tag\naad = ffffffffffffffffffffffffffffffff247e50642a1c0a2f8f77219609dba958\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 116\n# special case tag\naad = 7cffffffffffffffffffffffffffffffd9e72c064ac8961f3fa585e0e2abd600\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 117\n# special case tag\naad = 65ffffffffffffffffffffffffffffff95af0f4d0b686eaeccca4307d596f502\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = 00000080000000800000008000000080\n\n# tcId = 118\n# special case tag\naad = ffffffffffffffffffffffffffffffff8540b464357707be3a39d55c34f8bcb3\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = ffffff7fffffff7fffffff7fffffff7f\n\n# tcId = 119\n# special case tag\naad = 4fffffffffffffffffffffffffffffff6623d990b898d830d212af2383330701\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = 01000000010000000100000001000000\n\n# tcId = 120\n# special case tag\naad = 83ffffffffffffffffffffffffffffff5f16d09f17787211b7d484e024f89701\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc", - "6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = ffffffff000000000000000000000000\n\n# tcId = 121\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 0039e2fd2fd312149e989880884813e7caffffffffffffffffffffffffffffff3b0e869aaa8ea49632ffff37b9e8ce00caffffffffffffffffffffffffffffff3b0e869aaa8ea49632ffff37b9e8ce00\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 005235d2a919f28d3db7664a34ae6b444d3d35f613e6d9093d38e975c38fe3b85b8b94509e2b74a36d346e33d572659ba9f6378171eae4396ea15dc240d1abf483dce9f3073efadb7d23b87ace35168c\nresult = valid\ntag = a519ac1a35b4a57787510af78d8d200a\n\n# tcId = 122\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d3ffffffffffffffffffffffffffffff6218b27f83b8b46602f6e1d834207b02ceffffffffffffffffffffffffffffff2a6416cedb1cdd296ef5d7d692daff02ceffffffffffffffffffffffffffffff2a6416cedb1cdd296ef5d7d692daff02\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = d39428d079351f665cd001354319875ce5da78766fa19290c031f75208506745ae7aed35cb5a2fcaa0346efb93655464496ddeb05509c6efffab75eb2df4ab09762d9096524fa1b2b023b8b2882227730149ef504b71b120ca4ff39519c2c210\nresult = valid\ntag = 302fe82ab0a09af64400d015ae83d9cc\n\n# tcId = 123\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = e9ffffffffffffffffffffffffffffffea33f347304abdadf8ce413433c84501e0ffffffffffffffffffffffffffffffb27f579688aee57064ce37329182ca01e0ffffffffffffffffffffffffffffffb27f579688aee57064ce37329182ca01\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e99428d079351f665cd001354319875c6df1394edc539b5b3a0957be0fb85946807aed35cb5a2fcaa0346efb93655464d1769fe806bbfeb6f590950f2eac9e0a582d9096524fa1b2b023b8b2882227739952ae0818c38979c07413711a9af713\nresult = valid\ntag = 98a7e836e0ee4d023500d0557ec2cbe0\n\n# tcId = 124\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffffe33bc552ca8b9e96169e797e8f30301b603ca99944df76528c9d6f54ab833d0f603ca99944df76528c9d6f54ab833d0f\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875c64f90f5b2692b860d4596ff4b3402c5c00b9bb53707aa667d356fe50c7199694033561e7caca6d941dc3cd6914ad6904\nresult = valid\ntag = 6ab8dce2c59da4737130b0252f68a8d8\n\n# tcId = 125\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 68ffffffffffffffffffffffffffffff374def6eb782ed002143115412b74600ffffffffffffffffffffffffffffffff4e233fb3e51d1ec7424507720dc5219dffffffffffffffffffffffffffffffff4e233fb3e51d1ec7424507720dc5219d\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 689428d079351f665cd001354319875cb08f25675b9bcbf6e38407de2ec75a479f7aed35cb5a2fcaa0346efb936554642d2af7cd6b080501d31ba54fb2eb7596472d9096524fa1b2b023b8b288222773650ec62d757072cee6ff233186dd1c8f\nresult = valid\ntag = 044dea608880412bfdffcf35579e9b26\n\n# tcId = 126\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 6dffffffffffffffffffffffffffffff26a37fa2e81026945c39e9f2eba87702ffffffffffffffffffffffffffffffffa5f1cff246fa09666e3bdf50b7f544b3ffffffffffffffffffffffffffffffffa5f1cff246fa09666e3bdf50b7f544b3\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 6d9428d079351f665cd001354319875ca161b5ab040900629efeff78d7d86b459f7aed35cb5a2fcaa0346efb93655464c6f8078cc8ef12a0ff657d6d08db10b8472d9096524fa1b2b023b8b2882227738edc366cd697656fca81fb133ced79a1\nresult = valid\ntag = 1e6bea6314542e2ef9ffcf450b2e982b\n\n# tcId = 127\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff7bc3729809e9dfe44fba0addade2aadf03c456df823cb8a0c5b900b3c935b8d303c456df823cb8a0c5b900b3c935b8d3\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875cfc01b891e5f0f9128d7d1c579192b69863414415b69968959a7291b7a5af134860cd9ea10c29a36654e7a28e761becd8\nresult = valid\ntag = ed2017c8dba4775629049d786e3bceb1\n\n# tcId = 128\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffffecaf03dbf698b88677b0e2cb0ba3cafa73b0e72170ec9042edafd8a127f6d7ee73b0e72170ec9042edafd8a127f6d7ee\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875c6b6dc9d21a819e70b577f44137d3d6bd1335f5eb44494077b26449a54b6c7c7510b92f5ffef98b847cf17a9c98d883e5\nresult = valid\ntag = 073f17cb6778645925049d8822cbcab6\n\n# tcId = 129\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffa0fc3e8032c3d5fdb62a11f096307db5ffffffffffffffffffffffffffffff766c9a8025eadea73905328c3379c004b5ffffffffffffffffffffffffffffff766c9a8025eadea73905328c3379c004\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ffcb2b1106f8234c5e99d4db4c7048de323d35f613e6d9093d38e975c38fe3b816e9884a114f0e9266cea3885fe36b9fd6f6378171eae4396ea15dc240d1abf4cebef5e9885a80ea76d975c144a41888\nresult = valid\ntag = 8b9bb4b4861289658c696a8340150405\n\n# tcId = 130\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 6ff5a7c2bd414c3985cb9490b5a56d2ea6ffffffffffffffffffffffffffffff6ce43e94b92c784684013c5f1fdce900a6ffffffffffffffffffffffffffffff6ce43e94b92c784684013c5f1fdce900\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 6f9e70ed3b8baca026e46a5a0943158d213d35f613e6d9093d38e975c38fe3b80c612c5e8d89a873dbcaad5b7346429bc5f6378171eae4396ea15dc240d1abf4d43651fd149c260bcbdd7b126801318c\nresult = valid\ntag = 8b3bbd51644459568d81ca1fa72ce404\n\n# tcId = 131\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 4140df25b8d32194e78e51d41738cc6db2ffffffffffffffffffffffffffffff0b0686f93d849859fed6b818520d4501b2ffffffffffffffffffffffffffffff0b0686f93d849859fed6b818520d4501\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 412b080a3e19c10d44a1af1eabdeb4ce353d35f613e6d9093d38e975c38fe3b86b8394330921486ca11d291c3e97ee9ad1f6378171eae4396ea15dc240d1abf4b3d4e9909034c614b10aff5525d09d8d\nresult = valid\ntag = 86fbab2b4a94f47aa56f0aea65d11008\n\n# tcId = 132\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = b22c7068a583fa350f8529c375f8eb88b6fffffffffffffffffffffffffffffffa5b162d6f12d1ec39cd90b72bff7503b6fffffffffffffffffffffffffffffffa5b162d6f12d1ec39cd90b72bff7503\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b247a74723491aacacaad709c91e932b313d35f613e6d9093d38e975c38fe3b89ade04e75bb701d9660601b34765de98d5f6378171eae4396ea15dc240d1abf442897944c2a28fa17611d7fa5c22ad8f\nresult = valid\ntag = a019ac2ed667e17da16f0afa19610d0d\n\n# tcId = 133\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 7464496670da0f3c2699a700d23ecc3aaaffffffffffffffffffffffffffffff21a884658a253c0b261fc0b466b71901aaffffffffffffffffffffffffffffff21a884658a253c0b261fc0b466b71901\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 740f9e49f610efa585b659ca6ed8b4992d3d35f613e6d9093d38e975c38fe3b8412d96afbe80ec3e79d451b00a2db29ac9f6378171eae4396ea15dc240d1abf4997aeb0c2795624669c387f9116ac18d\nresult = valid\ntag = 736e18181696a5889c3159faabab20fd\n\n# tcId = 134\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = add18a3fdd024a9f8f0cc801347ba376b0ffffffffffffffffffffffffffffff77f94d341cd0245da90907532469f201b0ffffffffffffffffffffffffffffff77f94d341cd0245da90907532469f201\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = adba5d105bc8aa062c2336cb889ddbd5373d35f613e6d9093d38e975c38fe3b8177c5ffe2875f468f6c2965748f3599ad3f6378171eae4396ea15dc240d1abf4cf2b225db1607a10e6d5401e53b42a8d\nresult = valid\ntag = bad58f10a91e6a889aba32fd17d8331a\n\n# tcId = 135\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = feffffffffffffffffffffffffffffff47c327cc365d088759098c341b4aed03d4ffffffffffffffffffffffffffffff2b0b973f745b28aae937f59f18eac701d4f", - "fffffffffffffffffffffffffffff2b0b973f745b28aae937f59f18eac701\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fe9428d079351f665cd001354319875cc001edc5da442e719bce9abe273af144b47aed35cb5a2fcaa0346efb9365546448025f41fa4e336c786957a2a7c4930a6c2d9096524fa1b2b023b8b28822277300266ea1e43644a34d8dd1dc93f2fa13\nresult = valid\ntag = d68ce174079add028dd05cf814630488\n\n# tcId = 136\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = b57867453f66f4daf9e474691f9c8515d3ffffffffffffffffffffffffffffff01101359851ad324a0dae88dc2430202d3ffffffffffffffffffffffffffffff01101359851ad324a0dae88dc2430202\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b513b06ab9ac14435acb8aa3a37afdb6543d35f613e6d9093d38e975c38fe3b861950193b1bf0311ff117989aed9a999b0f6378171eae4396ea15dc240d1abf4b9c27c3028aa8d69ef06afc0b59eda8e\nresult = valid\ntag = aa48a3887d4b059699c2fdf9c6787e0a\n\n# tcId = 137\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff5333c3e1f8d78eacca0707526cad018cafffffffffffffffffffffffffffffff3049702414b599502624fdfe29313204afffffffffffffffffffffffffffffff3049702414b599502624fdfe29313204\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875cd4f109e814cea85a08c011d850dd1dcbcf7aed35cb5a2fcaa0346efb936554645340b85a9aa08296b77a5fc3961f660f172d9096524fa1b2b023b8b2882227731b6489ba84d8f559829ed9bda2290f16\nresult = valid\ntag = b936a817f2211af129e2cf160fd42bcb\n\n# tcId = 138\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff588ea80ac1583f434a806813ae2a4a9eb6ffffffffffffffffffffffffffffff998d381adb2359ddbae786537d37b900b6ffffffffffffffffffffffffffffff998d381adb2359ddbae786537d37b900\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875cdf4c62032d4119b588477e99925a56d9d67aed35cb5a2fcaa0346efb93655464fa84f0645536421b2bb9246ec219ed0b0e2d9096524fa1b2b023b8b288222773b2a0c1844b4e35d41e5da210f62f8412\nresult = valid\ntag = 9f7ac4351f6b91e63097a713115d05be\n\n# tcId = 139\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff943ac00981d89d2c14febfa5fb9cba1297ffffffffffffffffffffffffffffff00417083a7aa8d13f2fbb5dfc255a80497ffffffffffffffffffffffffffffff00417083a7aa8d13f2fbb5dfc255a804\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875c13f80a006dc1bbdad639a92fc7eca655f77aed35cb5a2fcaa0346efb936554646348b8fd29bf96d563a517e27d7bfc0f2f2d9096524fa1b2b023b8b2882227732b6c891d37c7e11a5641919c494d9516\nresult = valid\ntag = 9a18a828070269f44700d009e7171cc9\n\n# tcId = 140\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff0527514c6e8876ce3bf49794595dda2d9cffffffffffffffffffffffffffffffd57800b44c65d9a331f28d6ee8b7dc019cffffffffffffffffffffffffffffffd57800b44c65d9a331f28d6ee8b7dc01\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875c82e59b4582915038f933811e652dc66afc7aed35cb5a2fcaa0346efb93655464b671c8cac270c265a0ac2f535799880a242d9096524fa1b2b023b8b288222773fe55f92adc08b5aa9548a92d63afe113\nresult = valid\ntag = b436a82b93d555f74300d0199ba718ce\n\n# tcId = 141\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff7613e28e5b384f7063ea6f83b71dfa48a0ffffffffffffffffffffffffffffffc4ce90e77df311376de8650dc2a90d04a0ffffffffffffffffffffffffffffffc4ce90e77df311376de8650dc2a90d04\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ff9428d079351f665cd001354319875cf1d12887b7216986a12d79098b6de60fc07aed35cb5a2fcaa0346efb93655464a7c75899f3e60af1fcb6c7307d87590f182d9096524fa1b2b023b8b288222773efe36979ed9e7d3ec952414e49b13016\nresult = valid\ntag = ce54a82e1fa942fa3f00d0294f3715d3\n\n# tcId = 142\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = cb9a0db18d63d7ead7c960d6b286745fb3ffffffffffffffffffffffffffffffdebab4a1584250bffc2fc84d95decf04b3ffffffffffffffffffffffffffffffdebab4a1584250bffc2fc84d95decf04\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = cbf1da9e0ba9377374e69e1c0e600cfc343d35f613e6d9093d38e975c38fe3b8be3fa66b6ce7808aa3e45949f944649fd0f6378171eae4396ea15dc240d1abf46668dbc8f5f20ef2b3f38f00e2031788\nresult = valid\ntag = 2383ab0b799205699b510aa709bf31f1\n\n# tcId = 143\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 8f4c51bb42233a7276a2c0912a88f3cbc5ffffffffffffffffffffffffffffff66d6f56905d45806f30828a993869a03c5ffffffffffffffffffffffffffffff66d6f56905d45806f30828a993869a03\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 8f278694c4e9daebd58d3e5b966e8b68423d35f613e6d9093d38e975c38fe3b80653e7a331718833acc3b9adff1c3198a6f6378171eae4396ea15dc240d1abf4de049a00a864064bbcd46fe4e45b428f\nresult = valid\ntag = 8bfbab17a9e0b8748b510ae7d9fd2305\n\n# tcId = 144\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d5ffffffffffffffffffffffffffffff1de01d03a4fb692b0f135717da3c93039cffffffffffffffffffffffffffffff14bc017957dcfa2cc0dbb81df583cb019cffffffffffffffffffffffffffffff14bc017957dcfa2cc0dbb81df583cb01\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = d59428d079351f665cd001354319875c9a22d70a48e24fddcdd4419de64c8f44fc7aed35cb5a2fcaa0346efb9365546477b5c907d9c9e1ea51851a204aad9f0a242d9096524fa1b2b023b8b2882227733f91f8e7c7b1962564619c5e7e9bf613\nresult = valid\ntag = 49bc6e9fc51c4d503036644d842773d2\n\n# tcId = 145\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = dbfffffffffffffffffffffffffffffff217ae3349b6b5bb4e092fa6ff9ec700a0ffffffffffffffffffffffffffffff031292ac886a33c0fbd190bcce75fc03a0ffffffffffffffffffffffffffffff031292ac886a33c0fbd190bcce75fc03\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = db9428d079351f665cd001354319875c75d5643aa5af934d8cce392cc3eedb47c07aed35cb5a2fcaa0346efb93655464601b5ad2067f28066a8f3281715ba808182d9096524fa1b2b023b8b288222773283f6b3218075fc95f6bb4ff456dc111\nresult = valid\ntag = 63da6ea251f039532c36645d38b76fd7\n\n# tcId = 146\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 93ffffffffffffffffffffffffffffffe58af369ae0fc2f5290b7c7f659c9704f7ffffffffffffffffffffffffffffffbbc10b84948b5c8c2f0c72113ea9bd04f7ffffffffffffffffffffffffffffffbbc10b84948b5c8c2f0c72113ea9bd04\niv = 0000000000000000064c2d52\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 939428d079351f665cd001354319875c624839604216e403ebcc6af559ec8b43977aed35cb5a2fcaa0346efb93655464d8c8c3fa1a9e474abe52d02c8187e90f4f2d9096524fa1b2b023b8b28822277390ecf21a04e630858bb65652b5b18016\nresult = valid\ntag = 73eb2724b5c405f04d00d0f15840a1c1\n\n[ivSize = 64]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 147\n# invalid nonce size\naad = \nct = \niv = 5f5f5f5f5f5f5f5f\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 80]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 148\n# invalid nonce size\naad = \nct = \niv = 5f5f5f5f5f5f5f5f5f5f\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 88]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 149\n# invalid nonce size\naad = \nct = \niv = 5f5f5f5f5f5f5f5f5f5f5f\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 112]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 150\n# invalid nonce size\naad = \nct = \niv = 5f5f5f5f5f5f5f5f5f5f5f5f5f5f\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 128]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 151\n# invalid nonce size\naad = \nct = \niv = 5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = \nresu", - "lt = invalid\ntag = \n\n", +static const char *kData93[] = { + "# Imported from Wycheproof's chacha20_poly1305_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: CHACHA20-POLY1305\n# Generator version: 0.8r12\n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 1\n# RFC 7539\naad = 50515253c0c1c2c3c4c5c6c7\nct = d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116\niv = 070000004041424344454647\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e652074697020666f7220746865206675747572652c2073756e73637265656e20776f756c642062652069742e\nresult = valid\ntag = 1ae10b594f09e26a7e902ecbd0600691\n\n# tcId = 2\naad = \nct = \niv = 4da5bf8dfd5852c1ea12379d\nkey = 80ba3192c803ce965ea371d5ff073cf0f43b6a2ab576b208426e11409c09b9b0\nmsg = \nresult = valid\ntag = 76acb342cf3166a5b63c0c0ea1383c8d\n\n# tcId = 3\naad = bd506764f2d2c410\nct = \niv = a92ef0ac991dd516a3c6f689\nkey = 7a4cd759172e02eb204db2c3f5c746227df584fc1345196391dbb9577a250742\nmsg = \nresult = valid\ntag = 906fa6284b52f87b7359cbaa7563c709\n\n# tcId = 4\naad = \nct = 3a\niv = 99e23ec48985bccdeeab60f1\nkey = cc56b680552eb75008f5484b4cb803fa5063ebd6eab91f6ab6aef4916a766273\nmsg = 2a\nresult = valid\ntag = cac27dec0968801e9f6eded69d807522\n\n# tcId = 5\naad = 91ca6c592cbcca53\nct = c4\niv = ab0dca716ee051d2782f4403\nkey = 46f0254965f769d52bdb4a70b443199f8ef207520d1220c55e4b70f0fda620ee\nmsg = 51\nresult = valid\ntag = 168310ca45b1f7c66cad4e99e43f72b9\n\n# tcId = 6\naad = \nct = 4d13\niv = 461af122e9f2e0347e03f2db\nkey = 2f7f7e4f592bb389194989743507bf3ee9cbde1786b6695fe6c025fd9ba4c100\nmsg = 5c60\nresult = valid\ntag = 91e8b61efb39c122195453077b22e5e2\n\n# tcId = 7\naad = 88364fc8060518bf\nct = b60d\niv = 61546ba5f1720590b6040ac6\nkey = c8833dce5ea9f248aa2030eacfe72bffe69a620caf793344e5718fe0d7ab1a58\nmsg = ddf2\nresult = valid\ntag = ead0fd4697ec2e5558237719d02437a2\n\n# tcId = 8\naad = \nct = 3cf470\niv = d2ab0abb50a8e9fba25429e1\nkey = bd8ed7fb0d607522f04d0b12d42c92570bccc5ba2486953d70ba2e8193f6225a\nmsg = 201221\nresult = valid\ntag = a27a69c9d7ee84586f11388c6884e63a\n\n# tcId = 9\naad = 6c8cf2ab3820b695\nct = 610925\niv = 94f32a6dff588f2b5a2ead45\nkey = 1c8b59b17a5ceced31bde97d4cefd9aaaa63362e096e863ec1c89580bca79b7a\nmsg = 453f95\nresult = valid\ntag = a8a7883eb7e40bc40e2e5922ae95ddc3\n\n# tcId = 10\naad = \nct = fe6849aa\niv = 7aa5ad8bf5254762171ec869\nkey = e4912cb75a1174345f1a457366f18885fe8460b06478e04be2f7fb4ec9c113e5\nmsg = 9e4c1d03\nresult = valid\ntag = 99ad07871b25c27defc31a541bd5c418\n\n# tcId = 11\naad = 15d93a96d0e6c5a9\nct = f4710e51\niv = b7f526e3fd71cf5720961aec\nkey = e05777ef3d989ace7d2abfba452bfded54801dbd5c66e91c0c2ef00479d85572\nmsg = 17bfda03\nresult = valid\ntag = b957c6a37b6a4c94996c002186d63b2b\n\n# tcId = 12\naad = \nct = f711647ff1\niv = 9447bf85d5b97d8aee0f8e51\nkey = 1a4c4f39abe890e62345c947bcf7de7c2e33bd5ceeda0a0abf0e7ef935ddf3ee\nmsg = c15a593bd0\nresult = valid\ntag = 22b12dc38cb79629f84cdbdc2425c09d\n\n# tcId = 13\naad = 96224835610b782b\nct = d171f046ea\niv = 3dbe876bd880ec8ea2017043\nkey = 800e9a24791700c9609736695ba2a8b99b2d57f1c3bfb61ed49db1c6c5219583\nmsg = a7bfd041e3\nresult = valid\ntag = d179b1b9c4184378df009019dbb8c249\n\n# tcId = 14\naad = \nct = 9351b1b1b082\niv = 27fb58ec6a21e84696cb8830\nkey = 208c2c376c9430433db20e1a6b7ba817f8ffbfa6827f26759ccede42e591d3ec\nmsg = af104b5ccd0e\nresult = valid\ntag = 560785509f60f26b681933d9cdbfd29f\n\n# tcId = 15\naad = 6d52feb2509f7fbf\nct = 41abff7b71cc\niv = b5965470c383fd29fe7eaee7\nkey = 2eb168e53b07ab04355ea792fe11a6be2ce9c39cfe15a997076b1e38c17ad620\nmsg = 6fdf2927e169\nresult = valid\ntag = 9b5174297c03cf8902d1f706fd008902\n\n# tcId = 16\naad = \nct = 5dfe3440dbb3c3\niv = 3c4e654d663fa4596dc55bb7\nkey = 55568158d3a6483f1f7021eab69b703f614251cadc1af5d34a374fdbfc5adac7\nmsg = ab85e9c1571731\nresult = valid\ntag = ed7a434e2602d394281e0afa9fb7aa42\n\n# tcId = 17\naad = 84e46be8c0919053\nct = 4bd47212941ce3\niv = 58389375c69ee398de948396\nkey = e3c09e7fab1aefb516da6a33022a1dd4eb272c80d540c5da52a730f34d840d7f\nmsg = 4ee5cda20d4290\nresult = valid\ntag = 185f1408ee7fbf18f5abad6e2253a1ba\n\n# tcId = 18\naad = \nct = 8e9439a56eeec817\niv = 4f07afedfdc3b6c2361823d3\nkey = 51e4bf2bad92b7aff1a4bc05550ba81df4b96fabf41c12c7b00e60e48db7e152\nmsg = be3308f72a2c6aed\nresult = valid\ntag = fbe8a6ed8fabb1937539dd6c00e90021\n\n# tcId = 19\naad = 66c0ae70076cb14d\nct = b9b910433af052b0\niv = b4ea666ee119563366484a78\nkey = 1131c1418577a054de7a4ac551950f1a053f9ae46e5b75fe4abd5608d7cddadd\nmsg = a4c9c2801b71f7df\nresult = valid\ntag = 4530f51aeee024e0a445a6328fa67a18\n\n# tcId = 20\naad = \nct = d9d897a9c1c5bb9f01\niv = 8092fc245b3326cddbd1424c\nkey = e1094967f86d893cdfe2e2e6d5c7ee4dfef67da3c9c5d64e6ad7c1577dcb38c5\nmsg = c37aa791ddd6accf91\nresult = valid\ntag = 085a430373058f1a12a0d589fd5be68b\n\n# tcId = 21\naad = 8c32f47a386152ec\nct = 8fdb429d47761cbf8e\niv = f1ca81338629587acf9372bf\nkey = 236f9baee4f9da15beeca40ff4af7c760f254a64bc3a3d7f4fad557e61b68586\nmsg = d7f26d5252e1765f5b\nresult = valid\ntag = 8ef647ed334fdebbc2bef80be02884e0\n\n# tcId = 22\naad = \nct = 700d35adf5100a22a1de\niv = 4c15a71dc6791a8c005ad502\nkey = 4de207a3b70c51e5f23048eed5a5da9bb65e917a69aa93e7c8b4a815cd9724de\nmsg = f2c54b6b5e490da18659\nresult = valid\ntag = 102d992ffaff599b5bddddeb2dfb399b\n\n# tcId = 23\naad = e1e27ccddb3cb407\nct = 04aad66c60e0bf8ebba9\niv = 6220527aba88e27f766658b2\nkey = 6d667fd79e5fb725f50343dccc4863227c75ee3f7a578476e3e9f32598d81559\nmsg = 0c8c5a252681f2b5b4c0\nresult = valid\ntag = c15f69a4d2aef97d7748756ff49d894b\n\n# tcId = 24\naad = \nct = 1c3d53baaa36eaa1d8ec4d\niv = ec1e2967f0f6979e5f5b07fb\nkey = 8f4bd94ef73e75d1e068c30b37ead576c5344e093ece1330e9101c82f793cf05\nmsg = b89812b34d9bced4a0ba07\nresult = valid\ntag = 4d94ebf960f12433bec43aa86d7e6e6d\n\n# tcId = 25\naad = a9bc350eaf2e6e3d\nct = 1c8578f8e75203d0336a52\niv = 28cce57a5db2cd206321e340\nkey = 2aa3bc7033351cac51364cdaf6ffac2c20f64046e1550a7b1c65f41800599019\nmsg = 83016823123484b56095b0\nresult = valid\ntag = 5910f7a9d5e4df05d7248bd7a8d65e63\n\n# tcId = 26\naad = \nct = ff7dc203b26c467a6b50db33\niv = 9a59fce26df0005e07538656\nkey = 99b62bd5afbe3fb015bde93f0abf483957a1c3eb3ca59cb50b39f7f8a9cc51be\nmsg = 42baae5978feaf5c368d14e0\nresult = valid\ntag = 578c0f2758c2e14e36d4fc106dcb29b4\n\n# tcId = 27\naad = a506e1a5c69093f9\nct = 9f8816de0994e938d9e53f95\niv = 58dbd4ad2c4ad35dd906e9ce\nkey = 85f35b6282cff440bc1020c8136ff27031110fa63ec16f1e825118b006b91257\nmsg = fdc85b94a4b2a6b759b1a0da\nresult = valid\ntag = d086fc6c9d8fa915fd8423a7cf05072f\n\n# tcId = 28\naad = \nct = e6b33a74a4ac443bd93f9c1b94\niv = b776c3fddba7c81362ce6e1b\nkey = faf4bfe8019a891c74901b17f4f48cee5cd065d55fdea60118aaf6c4319a0ea5\nmsg = 8dadff8d60c8e88f604f274833\nresult = valid\ntag = 0c115172bdb02bbad3130fff22790d60\n\n# tcId = 29\naad = 5a8e1c7aa39810d5\nct = b0a7500aca45bb15f01ece4389\niv = 6d62f159731b140eb18ce074\nkey = 841020d1606edcfc536abfb1a638a7b958e21efc10c386ac45a18493450afd5f\nmsg = d6af138f701b801e60c85ffd5c\nresult = valid\ntag = 0160e83adbec7f6a2ee2ff0215f9ef00\n\n# tcId = 30\naad = \nct = d3017e0bb1705b380b34cc333450\niv = a9ea4d619fe405d04cba7d7a\nkey = 470f9ce3d2250bd60cbbefdb2e6a1178c012299b5590639c7797b6024fa703d8\nmsg = 6ca67dd023fba6507b9f9a1f667e\nresult = valid\ntag = 5708e72ca2bd354f487f82f67fbc3acb\n\n# tcId = 31\naad = eaaaeab26957f9a1\nct = 52e9672b416d84d97033796072d0\niv = 0e23c942a0c9fb526586eead\nkey = e4b97e91e4c8e85eb7ce0a7f30bf8a0abf4468251e4c6386c0e7aacb8e879aa8\nmsg = b84b3f74cd23064bb426fe2ced2b\nresult = valid\ntag = e83839dc1fd9b8b9d1444c40e488d493\n\n# tcId = 32\naad = \nct = 0b29638e1fbdd6df53970be2210042\niv = 68ab7fdbf61901dad461d23c\nkey = 67119627bd988eda906219e08c0d0d779a07d208ce8a4fe0709af755eeec6dcb\nmsg = 51f8c1f731ea14acdb210a6d973e07\nresult = valid\ntag = 2a9134087d67a46e79178d0a93f5e1d2\n\n# tcId = 33\naad = 6453a53384632212\nct = 32db66c4a3819d81557455e5980fed\niv = d95b3243afaef714c5035b6a\nkey = e6f1118d41e4b43fb58221b7ed79673834e0d8ac5c4fa60bbc8bc4893a58894d\nmsg = 97469da667d6110f9cbda1d1a20673\nresult = valid\ntag = feae30dec94e6ad3a9eea06a0d703917\n\n# tcId = 34\naad = \nct = e9110e9f56ab3ca483500ceabab", + "67a13\niv = 2fcb1b38a99e71b84740ad9b\nkey = 59d4eafb4de0cfc7d3db99a8f54b15d7b39f0acc8da69763b019c1699f87674a\nmsg = 549b365af913f3b081131ccb6b825588\nresult = valid\ntag = 836ccabf15a6a22a51c1071cfa68fa0c\n\n# tcId = 35\naad = 034585621af8d7ff\nct = e4b113cb775945f3d3a8ae9ec141c00c\niv = 118a6964c2d3e380071f5266\nkey = b907a45075513fe8a8019edee3f2591487b2a030b03c6e1d771c862571d2ea1e\nmsg = 55a465644f5b650928cbee7c063214d6\nresult = valid\ntag = 7c43f16ce096d0dc27c95849dc383b7d\n\n# tcId = 36\naad = \nct = 02cc3acb5ee1fcdd12a03bb857976474d3\niv = 45aaa3e5d16d2d42dc03445d\nkey = 3b2458d8176e1621c0cc24c0c0e24c1e80d72f7ee9149a4b166176629616d011\nmsg = 3ff1514b1c503915918f0c0c31094a6e1f\nresult = valid\ntag = d83b7463a2c3800fe958c28eaa290813\n\n# tcId = 37\naad = 9aaf299eeea78f79\nct = 35766488d2bc7c2b8d17cbbb9abfad9e6d\niv = f0384fb876121410633d993d\nkey = f60c6a1b625725f76c7037b48fe3577fa7f7b87b1bd5a982176d182306ffb870\nmsg = 63858ca3e2ce69887b578a3c167b421c9c\nresult = valid\ntag = 1f391e657b2738dda08448cba2811ceb\n\n# tcId = 38\naad = \nct = b621d76a8dacff00b3f840cdf26c894cc5d1\niv = 37270b368f6b1e3e2ca51744\nkey = 37ceb574ccb0b701dd11369388ca27101732339f49d8d908ace4b23af0b7ce89\nmsg = f26991537257378151f4776aad28ae8bd16b\nresult = valid\ntag = e0a21716ed94c0382fa9b0903d15bb68\n\n# tcId = 39\naad = b8373438ddb2d6c3\nct = e0a745186c1a7b147f74faff2a715df5c19d\niv = bfd6ff40f2df8ca7845980cc\nkey = 68888361919bc10622f45df168e5f6a03bd8e884c0611bea2f34c1882ed9832b\nmsg = ff97f2eefb3401ac31fc8dc1590d1a92cbc1\nresult = valid\ntag = 917baf703e355d4d950e6c05fe8f349f\n\n# tcId = 40\naad = \nct = d6e0ed54fccef30bd605d72da3320e249a9cb5\niv = 2343de88be6c7196d33b8694\nkey = 1b35b856b5a86d3403d28fc2103a631d42deca5175cdb0669a5e5d90b2caafc5\nmsg = 21ef185c3ae9a96fa5eb473878f4d0b242781d\nresult = valid\ntag = c68bc6724ec803c43984ce42f6bd09ff\n\n# tcId = 41\naad = cc4efd8364fb114a\nct = 29e54d608237c3c3609dba16e6edf43842d72f\niv = 1af1d90e877e11a496efa3df\nkey = d6484e3973f6be8c83ed3208d5be5cfa06fda72fbfdc5b19d09be3f4e4eba29d\nmsg = 7335ab04b03e706109ec3ee835db9a246ea0ad\nresult = valid\ntag = d3365fdcd506aaaa5368661e80e9d99b\n\n# tcId = 42\naad = \nct = 7fe606652d858f595ec2e706754fa3d933fcc834\niv = 1e7e67be948de7352ffdb727\nkey = 422add37849d6e4c3dfd8020dc6a07e8a249788f3d6a83b9cb4d802362c97542\nmsg = d7f5e611dd3a2750fb843fc1b6b93087310dc87d\nresult = valid\ntag = 78d59235aa5d03a4c32590e590c04d22\n\n# tcId = 43\naad = 956846a209e087ed\nct = 14f707c446988a4903775ec7acec6da114d43112\niv = 376187894605a8d45e30de51\nkey = cdccfe3f46d782ef47df4e72f0c02d9c7f774def970d23486f11a57f54247f17\nmsg = e28e0e9f9d22463ac0e42639b530f42102fded75\nresult = valid\ntag = 987d4b147c490d43d376a198cab383f0\n\n# tcId = 44\naad = \nct = 1003f13ea1329cbb187316f64c3ff3a87cf5b96661\niv = f9d6320d7ce51d8ed0677d3a\nkey = e79dfc6d2fc465b8439e1c5baccb5d8ef2853899fc19753b397e6c25b35e977e\nmsg = 4f543e7938d1b878dacaeec81dce4899974816813b\nresult = valid\ntag = d2323ad625094bec84790d7958d5583f\n\n# tcId = 45\naad = 093053e20261daab\nct = 2d48b0834e9ffe3046103ef7a214f02e8e4d33360e\niv = 50ba1962cdc32a5a2d36e640\nkey = 1d7b8f1d96a1424923aef8a984869d4a777a110990ba465627acf80396c7f376\nmsg = 5d3efd5767f3c12efd08af9a44e028ae68c9eff843\nresult = valid\ntag = d533ad089be229ea606ec0f3fa22eb33\n\n# tcId = 46\naad = \nct = e9917ff3e64bbe1783579375e75ea823976b35539949\niv = c9cc0a1afc38ec6c30c38c68\nkey = dd433e28cfbcb5de4ab36a02bf38686d83208771a0e63dcd08b4df1a07ac47a1\nmsg = 8a3e17aba9606dd49e3b1a4d9e5e42f1742373632489\nresult = valid\ntag = 074a890669b25105434c75beed3248db\n\n# tcId = 47\naad = b2a4e12a19a61c75\nct = db4c700513818972b0dc0e531b1c281ca03e40c60dea\niv = 8ba77644b08d65d5e9f31942\nkey = a60924101b42ac24154a88de42142b2334cf599176caf4d1226f712dd9172930\nmsg = c949957e66439deee4b2ac1d4a6c98a6c527b90f52ab\nresult = valid\ntag = 63f4478bba2af469a7a4dc3b4f141360\n\n# tcId = 48\naad = \nct = b5f14617491fc923b683e2cc9562d043dd5986b97dbdbd\niv = 4b3dca84ecc407f424f281a9\nkey = 1aa42027836965b1e6086fa137f9cf7f1ff48676696829bd281ff81c8ea0a4a9\nmsg = 37252a3eb5c8960f0567e503a9035783b3d0a19a4b9a47\nresult = valid\ntag = 972ce54713c05c4bb4d088c0a30cacd3\n\n# tcId = 49\naad = 413036411af75745\nct = b7ca3879f95140bf6a97b3212218b7bf864a51e5bb0b3e\niv = acad618039b317470d21621b\nkey = 5d40db0cc18ef2e42815d3b6245a466a0b30a0f93e318ac10edde3bf8ad98160\nmsg = 959dde1ef3129b27702c558849e466f2baca1a45bdf4b2\nresult = valid\ntag = fe558fb570145470ea693eb76eb73171\n\n# tcId = 50\naad = \nct = 42f26c56cb4be21d9d8d0c80fc99dde00d75f38074bfe764\niv = e6b1adf2fd58a8762c65f31b\nkey = 0212a8de5007ed87b33f1a7090b6114f9e08cefd9607f2c276bdcfdbc5ce9cd7\nmsg = 10f1ecf9c60584665d9ae5efe279e7f7377eea6916d2b111\nresult = valid\ntag = 54aa7e13d48fff7d7557039457040a3a\n\n# tcId = 51\naad = 3e8bc5ade182ff08\nct = 123032437b4bfd6920e8f7e7e0087ae4889ebe7a0ad0e900\niv = 6b282ebecc541bcd7834ed55\nkey = c5bc09565646e7edda954f1f739223dada20b95c44ab033d0fae4b0283d18be3\nmsg = 9222f9018e54fd6de1200806a9ee8e4cc904d29f25cba193\nresult = valid\ntag = 3cf68f179550da63d3b96c2d55411865\n\n# tcId = 52\naad = \nct = 1d218c9f1f9f02f248a6f976a7557057f37d9393d9f213c1f3\niv = abfaf42e0dba884efcf07823\nkey = 9460b3c44ed86e70f3bda66385e1ca10b0c1677ef4f1360532830d17535f996f\nmsg = 5c5cce881b93fb7a1b7939af1ffc5f84d3280ada778cca0953\nresult = valid\ntag = bc88344c6fdc898feed394fb28511316\n\n# tcId = 53\naad = 84cdff939391c022\nct = 9715d344e8d3f3a3eaa98a9cea57c0cd717c6ef5076027c9ec\niv = 85f18ad8ff72cafee2452ab8\nkey = c111d6d5d78a071b15ab37cc8c3819199387ab7c1933aa97b1489f6584ba8e2a\nmsg = 6989c646a10b7c76f4d9f7d574da40e152013cf0dd78f5aa8a\nresult = valid\ntag = 3056ff5ee0aa8636bb639984edb5236b\n\n# tcId = 54\naad = \nct = 9089bbdb8bcfd124e227bf75c4bfe1cba2004a274fc31aa32358\niv = a6f9a8d335fa84c3b27dcd2a\nkey = 8a1b1e699a0c4a3e610b10902daedab1bf1ea0d505c47d7842cbcee0d3b1b6e6\nmsg = ee6a15fc183108f0877e7f2b8a9615f4b3fc36e1c83440f66aad\nresult = valid\ntag = fd2e21c64a019621c68594826cd7b1cd\n\n# tcId = 55\naad = 85073f2edc13d3a1\nct = 796ffb70ab43e7fa79f95583e384524727bb3e47fc45b969f714\niv = ebc19fc9ecb2339908ea3836\nkey = 74b384e6e013ec4172ed7a28a10fb9bb79b4be2a24f6999e3d3caa28e64a8656\nmsg = 3aa9f7372f056e5a0729752d9a37132d6dd07c56792e1c7582a9\nresult = valid\ntag = c3322b4445de5f3c9f18dcc847cc94c3\n\n# tcId = 56\naad = \nct = 49c81d17d67d7ba9954f497d0b0ddc21f3f839c9d2cc198d30bc2c\niv = f3307430f492d2b8a72d3a81\nkey = 77d824795d2029f0eb0e0baab5cfeb32f7e93474913a7f95c737a667a3c33314\nmsg = 0c4179a497d8fdd72796fb725692b805d63b7c718359cf10518aee\nresult = valid\ntag = 50009899e5b2a9726c8f3556cadfbe84\n\n# tcId = 57\naad = 73365f6d80edb1d8\nct = 4c129fc13cbdd9d3fe81ac755bf4fbea2fdd7e0aca0505a6ee9637\niv = 342ada4f0c115124b222df80\nkey = bec5eac68f893951cbd7d1ecd3ee6611130dd9c3f80cddf95111d07d5edd76d1\nmsg = 481433d8b1cd38af4a750e13a64b7a4e8507682b3517595938a20e\nresult = valid\ntag = 9cede1d30a03db5d55265d3648bc40d4\n\n# tcId = 58\naad = \nct = a6fa8f57ddc81d6099f667dd62402b6a5d5b7d05a329298029113169\niv = 9544d41ece0c92ef01cfac2d\nkey = a59c1e13064df8f2b8df77a492b0ca2eae921b52a84b305a3a9a51408a9ecb69\nmsg = 1c35b898821ba55c2617c25df9e6df2a8002b384902186cd69dfd20e\nresult = valid\ntag = bb24e38b31dbbc3e575b9e3ee076af2a\n\n# tcId = 59\naad = 770f6e6e89a3fe8e\nct = fd42cb5cf894f879e3cf751662aaa58a2288cc53548802becaf42359\niv = 829f005e980f0a6e2f983eaa\nkey = 084b5d7365f1a8fec6365939ed741e6ea5893e0318d82ab47500a97d77aaa041\nmsg = 7510016efadc385a71ed689ceb590c8ea9cc1e81b793338bddf5f10c\nresult = valid\ntag = 188329438afe1cd7225d0478aa90c773\n\n# tcId = 60\naad = \nct = 402302b56140c4dcc39774732c55883de124ce4bf0a0261cfa1569e2cf\niv = 4946a0d6adea93b82d4332e5\nkey = 5a7f850a1d9aafa77d59ae1b731965e8aaec6352280fc76a7b5e23ef3610cfe4\nmsg = 3c161d791f624fb0388e808f0f69ed790dbe4cbd089ebac46627bcf01d\nresult = valid\ntag = e830bfe933a96786cff2dd72b82c4bd5\n\n# tcId = 61\naad = f2415377ad283fd8\nct = d052932bad6e6c4f835f02019e52d7ff807dc2a5aac2040883c79dd3d5\niv = 2f90a65e9e48725de6ffc727\nkey = e6d5a4246f6f05618b59c8f9ec3ac8068cc0d3f351c571aa52b09cb251f9c2f6\nmsg = 964fc9e0e8355947aa1c2caadd7b3dbef82a1024e623606fac436ef573\nresult = valid\ntag = 655f93396b4d755dc4475721665fed91\n\n# tcId = 62\naad = \nct = 83f5c77396cabd28dfcc002cba0756d4ea5455e0261d847d5708aac21e8d\niv = a797205a6cacdd7e47a4789d\nkey = 09e822123adbb1ed89b79a58619c64853992f8371d46338712f6c91ab11a68bb\nmsg = 80b71bbe833629841bd3aeaeb9db6123e51d367b436", + "fe9d2d3454b62cfad\nresult = valid\ntag = 705a05820a21f381d244d40e58d2f16b\n\n# tcId = 63\naad = 200a9c95946ff05c\nct = 209b7539385c8b19ecd0fd8b5011b2996e316f1942064e68edfa363acbcd\niv = 9d8cdf289dddd09afdc1b02f\nkey = 625735fe7f8fc81b0c1edc3d08a78b41268f87a3c68488b674222630c1d587a5\nmsg = 67ae1882d0b1c1b2485bec98115ecf53b9b438deb1d0400531705038873a\nresult = valid\ntag = fa2f454b9fa2608f780f7c6f9b780fe1\n\n# tcId = 64\naad = \nct = 45c7d6b53acad4abb68876a6e96a48fb59524d2c92c9d8a189c9fd2db91746\niv = 04a9be03508a5f31371a6fd2\nkey = 2eb51c469aa8eb9e6c54a8349bae50a20f0e382711bba1152c424f03b6671d71\nmsg = b053999286a2824f42cc8c203ab24e2c97a685adcc2ad32662558e55a5c729\nresult = valid\ntag = 566d3ca10e311b695f3eae1551652493\n\n# tcId = 65\naad = 374618a06ea98a48\nct = 46a80c4187024720084627580080dde5a3f4a11093a7076ed6f3d326bc7b70\niv = 470a339ecb3219b8b81a1f8b\nkey = 7f5b74c07ed1b40fd14358fe2ff2a740c116c7706510e6a437f19ea49911cec4\nmsg = f45206abc25552b2abc9ab7fa243035fedaaddc3b2293956f1ea6e7156e7eb\nresult = valid\ntag = 534d4aa2835a52e72d14df0e4f47f25f\n\n# tcId = 66\naad = \nct = ea29afa49d36e8760f5fe19723b9811ed5d519934a440f5081ac430b953b0e21\niv = 72cfd90ef3026ca22b7e6e6a\nkey = e1731d5854e1b70cb3ffe8b786a2b3ebf0994370954757b9dc8c7bc5354634a3\nmsg = b9c554cbc36ac18ae897df7beecac1dbeb4eafa156bb60ce2e5d48f05715e678\nresult = valid\ntag = 222541af46b86533c6b68d2ff108a7ea\n\n# tcId = 67\naad = 2333e5ce0f93b059\nct = 6dad637897544d8bf6be9507ed4d1bb2e954bc427e5de729daf50762846ff2f4\niv = 262880d475f3dac5340dd1b8\nkey = 27d860631b0485a410702fea61bc873f3442260caded4abde25b786a2d97f145\nmsg = 6b2604996cd30c14a13a5257ed6cffd3bc5e29d6b97eb1799eb335e281ea451e\nresult = valid\ntag = 7b997d93c982189d7095dc794c746232\n\n# tcId = 68\naad = \nct = f5982b601c7a18fc72a65b218c44974dc564d8314cbe6f87fcf6c6cfbe618b34b1\niv = c26c4b3bfdb97ee6b0f63ca1\nkey = 5155dee9aade1cc61ee7e3f92660f7590f5e5ba82f1b59b850e3fa453d2fa6b3\nmsg = 2734e08eff8f5c4f84fa0c207f49c7fd78af1ad5123ff81f83f500edf4eda09edf\nresult = valid\ntag = c43632f55760b5d1ed37556a94d049b5\n\n# tcId = 69\naad = e99698241c599b5f\nct = eaf6810e6ec1cb7a2918856257d1aa3d51a827879146c6337ecf535e9c89b149c5\niv = ad8050dc6d122dce3e5639ed\nkey = 573f08ebbe0cce4ac9618e8c3b224bea0a32f055c6996838a32f527ca3c3b695\nmsg = 668d5e3f95fe030daf432a5fc5837af3a79c81e94b28d8204c5ee262ab3c9908a7\nresult = valid\ntag = a2950c2f394a3466c345f796323c1aa7\n\n# tcId = 70\naad = \nct = fba78ae4f9d808a62e3da40be2cb7700c3613d9eb2c529c652e76a432c658d27095f0eb8f940c324981ea935e507f9\niv = e74a515e7e2102b90bef55d2\nkey = cf0d40a4644e5f51815165d5301b22631f4544c49a1878e3a0a5e8e1aae0f264\nmsg = 973d0c753826bae466cf9abb3493152e9de7819e2bd0c71171346b4d2cebf8041aa3cedc0dfd7b467e26228bc86c9a\nresult = valid\ntag = 8f046956db3a512908bd7afc8f2ab0a9\n\n# tcId = 71\naad = b3e4064683b02d84\nct = a1ffed80761829ecce242e0e88b138049016bca018da2b6e19986b3e318cae8d806198fb4c527cc39350ebddeac573\niv = d4d807341683825b31cd4d95\nkey = 6cbfd71c645d184cf5d23c402bdb0d25ec54898c8a0273d42eb5be109fdcb2ac\nmsg = a98995504df16f748bfb7785ff91eeb3b660ea9ed3450c3d5e7b0e79ef653659a9978d75542ef91c456762215640b9\nresult = valid\ntag = c4cbf0befda0b70242c640d7cd02d7a3\n\n# tcId = 72\naad = \nct = 9a4ef22b181677b5755c08f747c0f8d8e8d4c18a9cc2405c12bb51bb1872c8e8b877678bec442cfcbb0ff464a64b74332cf072898c7e0eddf6232ea6e27efe50\niv = d61040a313ed492823cc065b\nkey = 5b1d1035c0b17ee0b0444767f80a25b8c1b741f4b50a4d3052226baa1c6fb701\nmsg = d096803181beef9e008ff85d5ddc38ddacf0f09ee5f7e07f1e4079cb64d0dc8f5e6711cd4921a7887de76e2678fdc67618f1185586bfea9d4c685d50e4bb9a82\nresult = valid\ntag = 9ff3427a0f32fa566d9ca0a78aefc013\n\n# tcId = 73\naad = 7193f623663321a2\nct = 5fbbdecc34be201614f636031eeb42f1cace3c79a12cffd871ee8e73820c829749f1abb4294367849fb6c2aa56bda8a3078f723d7c1c852024b017b58973fb1e\niv = d31c21aba175b70de4ebb19c\nkey = 97d635c4f47574d9998a90875da1d3a284b755b2d39297a5725235190e10a97e\nmsg = 94ee166d6d6ecf8832437136b4ae805d428864359586d9193a25016293edba443c58e07e7b7195ec5bd84582a9d56c8d4a108c7d7ce34e6c6f8ea1bec0567317\nresult = valid\ntag = 09263da7b4cb921452f97dca40f580ec\n\n# tcId = 74\naad = \nct = d0102f6c258bf49742cec34cf2d0fedf23d105fb4c84cf98515e1bc9a64f8ad5be8f0721bde50645d00083c3a263a31053b760245f52ae2866a5ec83b19f61be1d30d5c5d9fecc4cbbe08fd385813a2aa39a00ff9c10f7f23702add1e4b2ffa31c\niv = 17c86a8abbb7e003acde2799\nkey = fe6e55bdaed1f7284ca5fc0f8c5f2b8df56dc0f49e8ca66a41995e783351f901\nmsg = b429eb80fb8fe8baeda0c85b9c333458e7c2992e558475069d12d45c22217564121588032297eff56783742a5fc22d7410ffb29d66098661d76f126c3c27689e43b37267cac5a3a6d3ab49e391da29cd3054a5692e2807e4c3ea46c8761d50f592\nresult = valid\ntag = 41865fc71de12b19612127ce49993bb0\n\n# tcId = 75\naad = a11c40b603767330\nct = 7545391b51de01d5c53dfaca777909063e58edee4bb1227e7110ac4d2620c2aec2f848f56deeb037a8dced75afa8a6c890e2dee42f950bb33d9e2424d08a505d899563973ed38870f3de6ee2adc7fe072c366c14e2cf7ca62fb3d36bee11685461\niv = 46362f45d6379e63e5229460\nkey = aabc063474e65c4c3e9bdc480dea97b45110c8618846ff6b15bdd2a4a5682c4e\nmsg = ceb534ce50dc23ff638ace3ef63ab2cc2973eeada80785fc165d06c2f5100ff5e8ab2882c475afcd05ccd49f2e7d8f55ef3a72e3dc51d6852b8e6b9e7aece57be6556b0b6d9413e33fc5fc24a9a205ad59574bb39d944a92dc47970d84a6ad3176\nresult = valid\ntag = b70d44ef8c66c5c7bbf10dcadd7facf6\n\n# tcId = 76\naad = \nct = 294a764c03353f5f4f6e93cd7e977480d6c343071db0b7c1f0db1e95b85e6053f0423168a9c7533268db9a194e7665359d14489bc47172a9f21370e89b0bd0e5ef9661738de282572bcc3e541247626e57e75dec0f91ac5c530bd1a53271842996dcd04d865321b1ecb6e7630114fe780291b8dc3e5d0abc8e65b1c5493e9af0\niv = 8a3ad26b28cd13ba6504e260\nkey = d7addd3889fadf8c893eee14ba2b7ea5bf56b449904869615bd05d5f114cf377\nmsg = c877a76bf595560772167c6e3bcc705305db9c6fcbeb90f4fea85116038bc53c3fa5b4b4ea0de5cc534fbe1cf9ae44824c6c2c0a5c885bd8c3cdc906f12675737e434b983e1e231a52a275db5fb1a0cac6a07b3b7dcb19482a5d3b06a9317a54826cea6b36fce452fa9b5475e2aaf25499499d8a8932a19eb987c903bd8502fe\nresult = valid\ntag = f2b974ca0f14fb9f92014bff18573cff\n\n# tcId = 77\naad = 0587af8530ad0547\nct = 2b90b4f3de280c44913d1984bdd5dfa0566c6a14a058659a9b623277b0bb6e82101e79395d12e643f62d9a822bae497907493e4f8213fcf99da8a78fdf867af36bc8b0931c1886b4f0ae5729986494dbd59737e956cd8f226c7c522689d082f023894d54acab0c4d609f3746a67369bb8876008f7fd3dc6681c5fb9d728c5911\niv = 903188433c1ce8971aa19b9d\nkey = 80be86fb6fc49bc73428cab576f6ad72ff6aca04001b8b1c57a7128be73900aa\nmsg = 67ce499cd8ed68bd717dfe61c60f27d260b1c163a72e8cc8597253d3d987c2dbe1bff2e44d9bd4765d3e53d9c3f8eb3b90e751f47c7157bdc1142bc33f5833ac1cd1262cbb239066b334a4ed99ae82c74f2b49540f1a614bc239d8fc5add8c178184e41281f6e66c5c3117fd953547f7c829425b5082aa69686847eaf5784692\nresult = valid\ntag = f005ebe1c1ada75a9cee8d630881d5b8\n\n# tcId = 78\naad = 02\nct = 7e72f5a185af16a611921b438f749f0b\niv = 87345f1055fd9e2102d50656\nkey = 7d00b48095adfa3272050607b264185002ba99957c498be022770f2ce2f3143c\nmsg = e5ccaa441bc814688f8f6e8f28b500b2\nresult = valid\ntag = 1242c670732334029adfe1c5001651e4\n\n# tcId = 79\naad = b648\nct = 85f29a719557cdd14d1f8fffab6d9e60\niv = 87a3163ec0598ad95b3aa713\nkey = 6432717f1db85e41ac7836bce25185a080d5762b9e2b18444b6ec72c3bd8e4dc\nmsg = 02cde168fba3f544bbd0332f7adeada8\nresult = valid\ntag = 732ca32becd515a1ed353f542e999858\n\n# tcId = 80\naad = 8b71ac\nct = d46e8265a8c6a25393dd956bb44397ad\niv = 25b7bdf4a6dcbf7c9a3ec2b3\nkey = 7afa0f59dfcb5ad3a76490c5c804327c8d052be737a60fa8bcbf0a2c36630a43\nmsg = 623e6ba6d3166a338bfcc7af90a230c8\nresult = valid\ntag = e28f3ad9e3ef4a3d94ee07bf538eaafb\n\n# tcId = 81\naad = 3a5ddf40\nct = 2d3cb2d9303491e264f2904f0e0753f4\niv = 6fb0d1417cdfff4df37db08c\nkey = 2ec25b0ec7ac244224e9c7fc2fa5d3ef17809e19fd6e954158dd0d72738a4cc8\nmsg = a1c933768a6d573ebf68a99e5e18dae8\nresult = valid\ntag = 6c1db959362d217b2322b466536bfea0\n\n# tcId = 82\naad = 9eec540bb0\nct = a988c03c71b956ff086d0470d706bd34\niv = 2538fc67afb9eab333f83290\nkey = 0a2cf52371cf9d9f95b10108fc82b4fd6110a8ba9a88a26083685ad29826891a\nmsg = 0d8c691d044a3978d790432dc71d69f8\nresult = valid\ntag = b35d7cbf2beb894b0c746e0730429e15\n\n# tcId = 83\naad = 56e014d97c74\nct = 32bf95d4c195dbaf58d9af4001c6e57d\niv = a071be999151e2a1c41c81e9\nkey = 307e886b38bb18b445f8a2c6d6f8932492a9cea8d041ba72eb5efdfa70d0b8d2\nmsg = 9aba22b495cb7ec887ddaa62019aa14d\nresult = valid\ntag = 4393808703d67a90870578046cd8b525\n\n# tcId = 84\naad = bb5a3812f0aefd\nct = 2a2", + "07ca7e9da6b13a229604304d87eb1\niv = 3fa378a1befdddd61ae68cf4\nkey = dacd51a8a8e4d5905b4cbb947ef4013eb296889353f3c9ee35f5577b26737a51\nmsg = e148313883a77da121124d06b1c77dca\nresult = valid\ntag = 8a6b6afec87d93ec6e8dbe13d84c0f8c\n\n# tcId = 85\naad = f94bb92c1c668a695b\nct = 548a5ca0ae49211cdf30bbdcb1352d31\niv = aa077a5ce9161bde8d8edc40\nkey = 7b5fbbb202c16108fd13066446853a850d8b34e9da40519580da446a922f9162\nmsg = da471cd6935a0ca8307ddedc6b959962\nresult = valid\ntag = 204dacb98f8c8908cc5ea22bb23f901f\n\n# tcId = 86\naad = 2155627ec15a978fbcb2\nct = 28cedac24f14caa326c7fe401f68a87c\niv = 598114e8cf7fbdea8ad29683\nkey = 1ffd101eb97531f6faa821ec4d5c5702725dd033d3b830bb760c4ef27ba983df\nmsg = 28668ca8db535c7e8eb27491ad0fb7cb\nresult = valid\ntag = 2bf1b2c43d3039f8f5ce359c1102f879\n\n# tcId = 87\naad = 37ad668d4d4fe889949763\nct = 7256e856872ad3a54b34a2a6bdca8838\niv = 9acd213570ce9bb9d886c6ef\nkey = d2d0a973d5951af352cbee57ac9dab1c284c99af3b992ce015f219506f64888d\nmsg = 3f3f0076250352e1b6b5c12cfa12625e\nresult = valid\ntag = 3b12e4586e45223f78a6eea811efb863\n\n# tcId = 88\naad = b334375415f6215c0bf89a9a\nct = 852c141b4239a31feeda03550d70a2be\niv = 9183cdf3a8ba7397b6b2d5d5\nkey = adcc520b381382237d05a6400a7dfbcd0771b6aa9edb7966131ddef6af21f1be\nmsg = 958295619cf1b36f0b474663c0bc79eb\nresult = valid\ntag = 5fc59287b92d3fcf7d66f13defb11b0d\n\n# tcId = 89\naad = 2866afff0bcc6135dc63af88c8\nct = 89d6d089c4a255952aca11b24a01ff95\niv = 412c3e13ee1f7864bd15ce39\nkey = bd534f7adeca466844fb3ba34658be807f15c5291ed6026860a24f179b712c89\nmsg = d92f8ce5d8d0ad2eb5f11af02ef63949\nresult = valid\ntag = f88fa4531204da315e7317970240ce9e\n\n# tcId = 90\naad = ea2575f123268e936c8e4c8c1bb8\nct = 01ffb343c757b27843d8a900a36ce39d\niv = 9be090dba93deff27adf99ee\nkey = 910ade7d324d2c9688439e1f142e0e5f9d130ff832e507fe1985e5a26452a6d0\nmsg = 6e356094ed9d9a7053c7906c48ba3d9f\nresult = valid\ntag = a315541b7d6313c6fddf64b303d71d60\n\n# tcId = 91\naad = bd4cd02fc7502bbdbdf6c9a3cbe8f0\nct = c1b295936d56fadac03e5f742bff73a1\niv = 6f573aa86baa492ba46596df\nkey = 8e34cf73d245a1082a920b86364eb896c4946467bcb3d58929fcb36690e6394f\nmsg = 16ddd23ff53f3d23c06334487040eb47\nresult = valid\ntag = 39c457dbab66382babb3b55800cda5b8\n\n# tcId = 92\naad = 89cce9fb47441d07e0245a66fe8b778b\nct = c84c9bb7c61c1bcb17772a1c500c5095\niv = 1a6518f02ede1da6809266d9\nkey = cb5575f5c7c45c91cf320b139fb594237560d0a3e6f865a67d4f633f2c08f016\nmsg = 623b7850c321e2cf0c6fbcc8dfd1aff2\nresult = valid\ntag = dbadf7a5138ca03459a2cd65831e092f\n\n# tcId = 93\naad = d19f2d989095f7ab03a5fde84416e00c0e\nct = 94bc80621ed1e71b1fd2b5c3a15e3568\niv = 564dee49ab00d240fc1068c3\nkey = a5569e729a69b24ba6e0ff15c4627897436824c941e9d00b2e93fddc4ba77657\nmsg = 87b3a4d7b26d8d3203a0de1d64ef82e3\nresult = valid\ntag = 333511861796978401598b963722f5b3\n\n# tcId = 94\naad = 5e6470facd99c1d81e37cd44015fe19480a2a4d3352a4ff560c0640fdbda\nct = 299b5d3f3d03c087209a16e285143111\niv = df8713e87ec3dbcfad14d53e\nkey = 56207465b4e48e6d04630f4a42f35cfc163ab289c22a2b4784f6f9290330bee0\nmsg = e601b38557797da2f8a4106a089d1da6\nresult = valid\ntag = 4b454ed198de117e83ec49fa8d8508d6\n\n# tcId = 95\naad = e0100eb116cdc5e22a3b9f9b4126c149595e75107f6e237c69e82960052270\nct = 1e9687b35fbc8eaa1825ed3847798f76\niv = 28adcbc74364f26dd4b3108b\nkey = 077433022ab34d380fc192fc24c2edc6301fec6f24442f572a1087ff2e05b39a\nmsg = 03c874eeaaa6fa9f0da62c758fb0ad04\nresult = valid\ntag = 0788bf70fd04030ecd1c96d0bc1fcd5d\n\n# tcId = 96\naad = ba446f6f9a0ced22450feb10737d9007fd69abc19b1d4d9049a5551e86ec2b37\nct = 605bbf90aeb974f6602bc778056f0dca\niv = 8df4b15a888c33286a7b7651\nkey = 3937986af86dafc1ba0c4672d8abc46c207062682d9c264ab06d6c5807205130\nmsg = dc9e9eaf11e314182df6a4eba17aec9c\nresult = valid\ntag = 38ea23d99054b46b42ffe004129d2204\n\n# tcId = 97\naad = d41a828d5e71829247021905402ea257dccbc3b80fcd5675056b68bb59e62e8873\nct = 7b7ce0d824809a70de32562ccf2c2bbd\niv = be40e5f1a11817a0a8fa8949\nkey = 36372abcdb78e0279646ac3d176b9674e9154eecf0d5469c651ec7e16b4c1199\nmsg = 81ce84ede9b35859cc8c49a8f6be7dc6\nresult = valid\ntag = 15d44a00ce0d19b4231f921e22bc0a43\n\n# tcId = 98\naad = 3f2dd49bbf09d69a78a3d80ea2566614fc379474196c1aae84583da73d7ff85c6f42ca42056a9792cc1b9fb3c7d261\nct = ca82bff3e2f310ccc976672c4415e69b\niv = 84c87dae4eee27730ec35d12\nkey = 9f1479ed097d7fe529c11f2f5add9aaff4a1ca0b68997a2cb7f79749bd90aaf4\nmsg = a66747c89e857af3a18e2c79500087ed\nresult = valid\ntag = 57638c62a5d85ded774f913c813ea032\n\n# tcId = 99\naad = 00000000000000000000000000000000\nct = 0000000000000000000000000000000000000000000000000000000000000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63bf074b7283992e24b1ac0df0d22b555dbe2254d94a43f1de748d3cc6f0d\nresult = valid\ntag = 39f4fce3026d83789ffd1ee6f2cd7c4f\n\n# tcId = 100\naad = 00000000000000000000000000000000\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63bf074b7283992e24b1ac0df0d22b555dbe2254d94a43f1de748d3cc6f0d20c142fe898fbbe668d4324394434c1b18b58ead710aed9c31db1f2a8a1f1bb2\nresult = valid\ntag = f5eaa804605c3a4785f9d7f13b6f67d6\n\n# tcId = 101\naad = 00000000000000000000000000000000\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63bf074b7283992e24b1ac0df0d22b555dbe2254d94a43f1de748d3cc6f0d20c142fe898fbbe668d4324394434c1b18b58ead710aed9c31db1f2a8a1f1bb24405c183af94ee1ad630cd931158a6213d48c8fff10d0a1f9ef760188e658802aad55e41a1d99069a18db55c56af7c10a6f21ecc8af9b7ce0a7ea0b67426e925\nresult = valid\ntag = 9b5c43a78d954e8a3c659eebc13d5d55\n\n# tcId = 102\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2\nresult = valid\ntag = 37e3399d9ca696799f08f4f72bc0cdd8\n\n# tcId = 103\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44d\nresult = valid\ntag = 3d52710bec86d4ea9fea2ff269549191\n\n# tcId = 104\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f8b48d7c66d1db4e53f20f2dd4aaa241ddab26b5bc0e218b72c3390f2df3ebd0176704419972bcdbc6bbcb3e4e74a71528ef51263ce24e0d575e0e44dbbfa3e7c506b11e529cf326ceea759dec2b737000ef2f5e061089fe7719a77fd552aa1be5e266f965e724aa3a95083ef590de13375064831f5815f498bd916da\nresult = valid\ntag = 51356329e280b12d55d3d98f0a580cbe\n\n# tcId = 105\naad = 00000080000000800000008000000080\nct = 0000008000000080000000800000008000000080000000800000008000000080\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63b7074b728b992e24b9ac0df0da2b555db62254d94243f1de7c8d3cc6f8d\nresult = valid\ntag = c152a4b90c548c71dc479edeaf9211bf\n\n# tcId = 106\naad = 00000080000000800000008000000080\nct = 00000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63b7074b728b992e24b9ac0df0da2b555db62254d94243f1de7c8d3cc6f8d20c1427e898fbb6668d432c394434c9b18b5", + "8e2d710aed1c31db1faa8a1f1b32\nresult = valid\ntag = 40ef6383052d91c2e4b4611b0e32c5ff\n\n# tcId = 107\naad = 00000080000000800000008000000080\nct = 0000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63b7074b728b992e24b9ac0df0da2b555db62254d94243f1de7c8d3cc6f8d20c1427e898fbb6668d432c394434c9b18b58e2d710aed1c31db1faa8a1f1b324405c103af94ee9ad630cd131158a6a13d48c87ff10d0a9f9ef760988e658882aad55ec1a1d990e9a18db5dc56af7c90a6f21e4c8af9b74e0a7ea0367426e9a5\nresult = valid\ntag = ae9b542541e84fc74542eed6be638fee\n\n# tcId = 108\naad = 80000000800000008000000080000000\nct = 8000000080000000800000008000000080000000800000008000000080000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e5b63bf0f4b7283912e24b1a40df0d223555dbe2a54d94a4bf1de74853cc6f0d\nresult = valid\ntag = 10fee3ecfba9cdf797bae37a626ec83b\n\n# tcId = 109\naad = 80000000800000008000000080000000\nct = 80000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e5b63bf0f4b7283912e24b1a40df0d223555dbe2a54d94a4bf1de74853cc6f0da0c142fe098fbbe6e8d4324314434c1b98b58eadf10aed9cb1db1f2a0a1f1bb2\nresult = valid\ntag = 7490795bdbbbf5d0aecb9a4f65aa379f\n\n# tcId = 110\naad = 80000000800000008000000080000000\nct = 8000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e5b63bf0f4b7283912e24b1a40df0d223555dbe2a54d94a4bf1de74853cc6f0da0c142fe098fbbe6e8d4324314434c1b98b58eadf10aed9cb1db1f2a0a1f1bb2c405c1832f94ee1a5630cd939158a621bd48c8ff710d0a1f1ef760180e6588022ad55e4121d99069218db55cd6af7c1026f21ecc0af9b7ce8a7ea0b6f426e925\nresult = valid\ntag = 1d1096a8ca9e2bda2762c41d5b16f62f\n\n# tcId = 111\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c48f8b48d7466d1db4653f20f25d4aaa249ddab26bdbc0e218372c339072\nresult = valid\ntag = af8492c792bf8d8062be74ff6efb3869\n\n# tcId = 112\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c48f8b48d7466d1db4653f20f25d4aaa249ddab26bdbc0e218372c339072df3ebd8176704499972bcd3c6bbcb364e74a71d28ef512e3ce24e05575e0e4cd\nresult = valid\ntag = f24db68c46b67d6f402fa6c897913368\n\n# tcId = 113\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c48f8b48d7466d1db4653f20f25d4aaa249ddab26bdbc0e218372c339072df3ebd8176704499972bcd3c6bbcb364e74a71d28ef512e3ce24e05575e0e4cdbbfa3efc506b116529cf32eceea7595ec2b737800ef2f56061089f67719a777d552aa13e5e266f165e724a23a950836f590de1b3750648b1f5815fc98bd9165a\nresult = valid\ntag = 43f651ab2e2eb0f04bf689a40d32da24\n\n# tcId = 114\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1a49c40f0b48d7c6ed1db4e5bf20f2ddcaaa241d5ab26b5b40e218b7ac3390f2\nresult = valid\ntag = 60d95294a3694cfaa64b2f63bc1f82ec\n\n# tcId = 115\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1a49c40f0b48d7c6ed1db4e5bf20f2ddcaaa241d5ab26b5b40e218b7ac3390f25f3ebd01f6704419172bcdbcebbcb3e4674a71520ef512634e24e0d5f5e0e44d\nresult = valid\ntag = beaca0b47027196176186d944019c1c8\n\n# tcId = 116\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1a49c40f0b48d7c6ed1db4e5bf20f2ddcaaa241d5ab26b5b40e218b7ac3390f25f3ebd01f6704419172bcdbcebbcb3e4674a71520ef512634e24e0d5f5e0e44d3bfa3e7cd06b11e5a9cf326c6ea759de42b737008ef2f5e0e1089fe7f19a77fdd52aa1bede266f96de724aa3295083efd90de133f506483175815f490bd916da\nresult = valid\ntag = d4811028a577d4dd69d6b35d717f73e3\n\n# tcId = 117\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63bf08b48d7c692e24b1a3f20f2ddb555dbe2dab26b5b3f1de7482c3390f2\nresult = valid\ntag = 10fb61272b555bee104f5a71818716d6\n\n# tcId = 118\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63bf08b48d7c692e24b1a3f20f2ddb555dbe2dab26b5b3f1de7482c3390f220c142fe7670441968d432436bbcb3e418b58ead8ef5126331db1f2a75e0e44d\nresult = valid\ntag = 4756764e59583504182877d8c33120f0\n\n# tcId = 119\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 65b63bf08b48d7c692e24b1a3f20f2ddb555dbe2dab26b5b3f1de7482c3390f220c142fe7670441968d432436bbcb3e418b58ead8ef5126331db1f2a75e0e44d4405c183506b11e5d630cd93eea759de3d48c8ff0ef2f5e09ef76018719a77fdaad55e415e266f96a18db55ca95083efa6f21ecc750648310a7ea0b68bd916da\nresult = valid\ntag = 95a2b12a4a280089d4bd4f904253e754\n\n# tcId = 120\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f74b728396d1db4e5c0df0d224aaa241d254d94a4c0e218b7d3cc6f0d\nresult = valid\ntag = 60dcd45974bebe032eb7b86c9d063452\n\n# tcId = 121\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f74b728396d1db4e5c0df0d224aaa241d254d94a4c0e218b7d3cc6f0ddf3ebd01898fbbe6972bcdbc94434c1be74a7152710aed9cce24e0d58a1f1bb2\nresult = valid\ntag = f0e6a3c1f28ad92d0dbc900be291d877\n\n# tcId = 122\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000", + "\niv = 000102030405060708090a0b\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9a49c40f74b728396d1db4e5c0df0d224aaa241d254d94a4c0e218b7d3cc6f0ddf3ebd01898fbbe6972bcdbc94434c1be74a7152710aed9cce24e0d58a1f1bb2bbfa3e7caf94ee1a29cf326c1158a621c2b73700f10d0a1f61089fe78e658802552aa1bea1d990695e724aa356af7c10590de1338af9b7cef5815f497426e925\nresult = valid\ntag = 57eff4a525eeff2ebd7a28eb894282be\n\n# tcId = 123\n# Flipped bit 0 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f5409bb729039d0814ac514054323f44\n\n# tcId = 124\n# Flipped bit 1 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f6409bb729039d0814ac514054323f44\n\n# tcId = 125\n# Flipped bit 7 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 74409bb729039d0814ac514054323f44\n\n# tcId = 126\n# Flipped bit 8 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4419bb729039d0814ac514054323f44\n\n# tcId = 127\n# Flipped bit 31 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409b3729039d0814ac514054323f44\n\n# tcId = 128\n# Flipped bit 32 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb728039d0814ac514054323f44\n\n# tcId = 129\n# Flipped bit 33 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb72b039d0814ac514054323f44\n\n# tcId = 130\n# Flipped bit 63 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d8814ac514054323f44\n\n# tcId = 131\n# Flipped bit 64 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0815ac514054323f44\n\n# tcId = 132\n# Flipped bit 77 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d08148c514054323f44\n\n# tcId = 133\n# Flipped bit 80 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0814ac504054323f44\n\n# tcId = 134\n# Flipped bit 96 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0814ac514055323f44\n\n# tcId = 135\n# Flipped bit 97 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0814ac514056323f44\n\n# tcId = 136\n# Flipped bit 120 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0814ac514054323f45\n\n# tcId = 137\n# Flipped bit 121 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0814ac514054323f46\n\n# tcId = 138\n# Flipped bit 126 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0814ac514054323f04\n\n# tcId = 139\n# Flipped bit 127 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d0814ac514054323fc4\n\n# tcId = 140\n# Flipped bit 63 and 127 in tag expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = f4409bb729039d8814ac514054323fc4\n\n# tcId = 141\n# Tag changed to all zero expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 142\n# tag change to all 1 expected tag:f4409bb729039d0814ac514054323f44\naad = 000102\nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 143\n# Flipped bit 0 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 28914007a6119dd3f109bba21ce9a7d6\n\n# tcId = 144\n# Flipped bit 1 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2b914007a6119dd3f109bba21ce9a7d6\n\n# tcId = 145\n# Flipped bit 7 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a9914007a6119dd3f109bba21ce9a7d6\n\n# tcId = 146\n# Flipped bit 8 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29904007a6119dd3f109bba21ce9a7d6\n\n# tcId = 147\n# Flipped bit 31 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914087a6119dd3f109bba21ce9a7d6\n\n# tcId = 148\n# Flipped bit 32 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a7119dd3f109bba21ce9a7d6\n\n# tcId = 149\n# Flipped bit 33 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a4119dd3f109bba21ce9a7d6\n\n# tcId = 150\n# Flipped bit 63 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca5", + "2d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119d53f109bba21ce9a7d6\n\n# tcId = 151\n# Flipped bit 64 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f009bba21ce9a7d6\n\n# tcId = 152\n# Flipped bit 77 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f129bba21ce9a7d6\n\n# tcId = 153\n# Flipped bit 80 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f109baa21ce9a7d6\n\n# tcId = 154\n# Flipped bit 96 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f109bba21de9a7d6\n\n# tcId = 155\n# Flipped bit 97 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f109bba21ee9a7d6\n\n# tcId = 156\n# Flipped bit 120 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f109bba21ce9a7d7\n\n# tcId = 157\n# Flipped bit 121 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f109bba21ce9a7d4\n\n# tcId = 158\n# Flipped bit 126 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f109bba21ce9a796\n\n# tcId = 159\n# Flipped bit 127 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119dd3f109bba21ce9a756\n\n# tcId = 160\n# Flipped bit 63 and 127 in tag expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29914007a6119d53f109bba21ce9a756\n\n# tcId = 161\n# Tag changed to all zero expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 162\n# tag change to all 1 expected tag:29914007a6119dd3f109bba21ce9a7d6\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995a\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 163\n# Flipped bit 0 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 67405a16e8b44eba92aa47f5cea52b7a\n\n# tcId = 164\n# Flipped bit 1 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 64405a16e8b44eba92aa47f5cea52b7a\n\n# tcId = 165\n# Flipped bit 7 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = e6405a16e8b44eba92aa47f5cea52b7a\n\n# tcId = 166\n# Flipped bit 8 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66415a16e8b44eba92aa47f5cea52b7a\n\n# tcId = 167\n# Flipped bit 31 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a96e8b44eba92aa47f5cea52b7a\n\n# tcId = 168\n# Flipped bit 32 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e9b44eba92aa47f5cea52b7a\n\n# tcId = 169\n# Flipped bit 33 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16eab44eba92aa47f5cea52b7a\n\n# tcId = 170\n# Flipped bit 63 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44e3a92aa47f5cea52b7a\n\n# tcId = 171\n# Flipped bit 64 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba93aa47f5cea52b7a\n\n# tcId = 172\n# Flipped bit 77 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba928a47f5cea52b7a\n\n# ", + "tcId = 173\n# Flipped bit 80 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba92aa46f5cea52b7a\n\n# tcId = 174\n# Flipped bit 96 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba92aa47f5cfa52b7a\n\n# tcId = 175\n# Flipped bit 97 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba92aa47f5cca52b7a\n\n# tcId = 176\n# Flipped bit 120 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba92aa47f5cea52b7b\n\n# tcId = 177\n# Flipped bit 121 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba92aa47f5cea52b78\n\n# tcId = 178\n# Flipped bit 126 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba92aa47f5cea52b3a\n\n# tcId = 179\n# Flipped bit 127 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44eba92aa47f5cea52bfa\n\n# tcId = 180\n# Flipped bit 63 and 127 in tag expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 66405a16e8b44e3a92aa47f5cea52bfa\n\n# tcId = 181\n# Tag changed to all zero expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 182\n# tag change to all 1 expected tag:66405a16e8b44eba92aa47f5cea52b7a\naad = 000102\nct = d03bcb3ca52d48d1d203b1e7b1a5995af1a0466a61bb386a2e12d189a2c4ea15e9\niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 183\n# edge case for poly1305\n# key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef38c382cf07174142ea564920612997b1c2e38aca2438b588d5459493e97e7fa330ff9bc3b9458297ba0967d86ed090b435103478f2869b93ee29c837e95fb6b9903f3b735b7345428eb93b3db1d9b5187cebb889aa177d83e4f63fc9a5c0596eed939883d06aacdfdea44fdecdf5cb7fc\nresult = valid\ntag = c296436246c3a7c4b3ba09ab2a6a0889\n\n# tcId = 184\n# edge case for poly1305\n# key:278de313ffffffdfffe9acbf3ea59357c4e16a5bc120d346af4a8cf694a84374\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0001020304050607051e9373\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 931227274a89d0b3aade7fac62c96262c1e77b8dafd248f10ad37c6ccb69cb7131b041593c8bb8c3db38f39dd8a124c424fce4389dede1d3cb9d46cf95970aea9856b6e313d756197baf4fcb58df275bca8a2188f9e8a1ad04354ede542ddc30e8b735b2f5905f5811799282be94ae842ec126c55d2e667235e9acf1d48798f0\nresult = valid\ntag = 99a3b0fff6fdcbcce9dc5820f2a64861\n\n# tcId = 185\n# edge case for poly1305\n# key:0050799fe9e74fcffcffffcfd21aa8b5cb5aa2c6ab347b6886eedaca4bfff3c0\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0001020304050607048c3c5f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0df91f31230e8941e700a752fef08c897c511ed618fdf8a378a1f439013b40a48d4634c27d9ada7c0bb6f3fa92e341425903d7ecd0c49bee4c77e84b11f1c721922308642885b813fae364da32eaf120d6a43a74fb1632443667bfea6eef1be73eb1c3c0b5a57cee8dc4feed4a1fb9ae02f7b1695588c3c878451cb6ee0cb3dc\nresult = valid\ntag = eaff8f47ef9268fd0d94e8a9c4b78d24\n\n# tcId = 186\n# edge case for poly1305\n# key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715ba428a85431430eada56a2c5dc944b6aa6cef0b056a2eecc51d30838e640615e1458e0943e30f91ba41b4362fa9ed6037b21d14da7b4f76f9f68fa8903138d563ce2590af1201c7cfec2290cfce98a822ebb8d1ed9dc4e20d241755aff91cdfd10fdb69efa0d5c8082692601cbfbb955c7\nresult = valid\ntag = 86ed21fda080a7d13981078d86b3e3cd\n\n# tcId = 187\n# edge case for poly1305\n# key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "fffffffffffff\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 66115e67ecd3d4178c4c60e713ab4e5e66f8d1f971da17437a2b5e04fbca1671e847139a5f4e3f8e92d7a3b71eb4ff0e50354c0c1580af3662d5f8151e3f7e8264a0085c32ddfcbeb01a8be4c34d53319800ac4ef9d4e4014524bc7cd3387242e774f4d1a7a0521e42ec44844d0bd8b9d73fec959212fd7e8eacf4d984996d9b\nresult = valid\ntag = 34f9e0faa515eee0e784e6ef2678befa\n\n# tcId = 188\n# edge case for poly1305\n# key:0000003059ffce96438a246ff9536787d92bc40eafa0241a2972780ef6ca1ef8\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060726c6961b\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = e97244259af5a379238da0cad2a5f493655ec0e5024fd553bbb3deb66a94036d106c3d513407b2dd1cc5936c4c9c1e4f4b37b54dec261c601dc99e90680e23e2dc5c9a8d503d8bea49a8cdca3706bfd2a3daa0afb19a70fd3d355fc37c13f3f9e5c8d0864a5f80a780b36d4698ec2ce9ccc27b97ecbe672e41628ebd773acb81\nresult = valid\ntag = 3c94b9fe60bdb35c6b7b73b765083492\n\n# tcId = 189\n# edge case for poly1305\n# key:3fa0ea9c030000a036217d42e775ad189b96e24ee591952e2922ff151334b9ec\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0001020304050607013da060\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 9453aa159c3d87f17e21e88adabc37e553b904d00eefc66b8e0905e23576fbdc9c7bea9777f3b8368481932534b3344d309e6307cddfe7b3549300dd9cda7efe9d43c8a115912a392904079ee92bcd33099f7022ea94c1e7353b89bfc54de3ceb56f529a1a608bb5a970e1359609d1f56806b37f8605f4c27451da6066fc557a\nresult = valid\ntag = 2b11cf9f8db8490d409fc62afd7379f3\n\n# tcId = 190\n# edge case for poly1305\n# key:a556cb502baf395b020000f03c5108fb1cf76df1b8a8f724e877bd3c588d3285\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060707db33de\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 2e1836640d810c2709fb83ccf1aef3a971085d1bbfb58a425abf75ccec70b3abde0e80539e83a82546e7372a19481547053308dd7842675e9c4f61302426da0d71c1da3102031030ed928152be009b15b52f71b5911991d39f68a8658d99729df2bbef31c8989f9604558df9f2aba4b3766c58aaef3548de545ec1f080225a88\nresult = valid\ntag = c9c8366920f88381407712cec61e6607\n\n# tcId = 191\n# edge case for poly1305\n# key:0c327fbcc564555545d4fe75020000d0a65799f363ec51b1c5c427b4a04af190\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060702a11942\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 0ecb4d85c956b5268c9b35a8c63b4e9d3e5cb72b64ef98773841b947bd7d59ef7d0eb0e1c050d49a5424ce7deb527d76087e4746674c958965df32d9e5fb03b46501706128d481217aaeae2f78f9259273358a2954cac0bc2fbfe77447d1d387b9314c6541b69f1270b3438b1042b2b4663e62ba4d49c07ac6f163034afa80af\nresult = valid\ntag = 2373cfa2ab24446ad5a236167b8027fe\n\n# tcId = 192\n# edge case for poly1305\n# key:415f08302f210340240d0e903e2b01205ba43e106aebd7e2481016b31118b1ae\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00010203040506073c0df637\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 2e8e45e903bfab32f2f0d49d9a3e449bef6f4093e2722cdab2cf935c1822b830fb5a4056516d560dfc8638c9a57d2927200a56f0b67153271d498e8f08dc888c61ef634f7ae40f4608f96f92fea5a1e5bd45131120098dc5de0378e58f2ddb46fa4aa5adb38fe006bb19b69146382f77a79e06214def547cfb5ce37a7008b9b6\nresult = valid\ntag = 5f93946478d8081e7247f414ad39a515\n\n# tcId = 193\n# edge case for poly1305\n# key:feffff1ff6b87403fd6435b09775bc92491a0ae62c5842a30e3b82710cc2dad1\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000101112130bc672c3\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = 3619cb470af86dceceb6940f2d9abb34c9a9131476053387445ffebbe240d4f9818377855652f46a8219c7f71c3554f8acef8258de4b7d17c0f3d353ac981cc6a13287be1e6b41dc6d133df4ababebdf43d665ce7a4a5c982a0b139cb8202eebc74173e3224a440e4c37d2b595f384290e939ba016df0d49b36cdb4bd91c39\nresult = valid\ntag = 133fe62391744d11ce44594b96c53baf\n\n# tcId = 194\n# edge case for poly1305\n# key:bf358f18ffffffbf4b62ed6e1f53790785c4dabdfc72e2a219d377a682c85f38\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000000001011121303e9b9a4\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = af205bda819f7451be0f28667d4b01b59ff2daa8173cab52046c3c9e0d989889c5e021ef7afd06e9ce6cc30e3a6ebab509134ba10d10e570c55587c13eee53e73be54804c8539ffbf23b35922b1ca37b9e9bc24ee204837ca5a294ce05d12600c7eff6aee32270db2feff47dc5a04176169e15850628e6035f78994f9f5603\nresult = valid\ntag = e3451adb9d23a7710a1aafba26f56387\n\n# tcId = 195\n# edge case for poly1305\n# key:d0b7b3a352a4010ffeffffbfe8cc66dc6e5e7451dc61762c5753174fed88e746\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000101112130700b982\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = 68c67272036fb652a0182eeb4781358e4704a4a702fd731bf3b3ea994717989e7d9104e0ae81732a8c7e9a82b3d31d541761a366b67c3396f1a6c67e293ddb65a59e42541dda144dc6c78388cfca982e23350958ac5b3d54a1722fd64733577862e1879c9e9445ebdec5315d1706db7ebbedd4c779935e72057e5b0ecde081\nresult = valid\ntag = b0bb8a55ff5f52a5043c6e7795847557\n\n# tcId = 196\n# edge case for poly1305\n# key:7bee33931a4157a8cb701becfeffff4fbe7e69f19cd065313bb49a252628dd3d\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 0000000010111213019836bb\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = c483b7334ebe2e879b0c3f9db4fcd9f5219062360d6ce44cdae0f94e04c8345ea7e3ae33855118741dcafe0de4ae98c4e43af7b12b04ee8ab175625823ac040e5abac4403f1d45238adcb8c0cf44bd56917f9f5d93974c82b56951986a9c0450bd9047b5a616e814526ad0580e3ecd8189c9fef2cdb979a22ad3a01930fbd1\nresult = valid\ntag = f4fc25f4c5543a9afee9819e2904fb68\n\n# tcId = 197\n# edge case for poly1305\n# key:7cb5fbdffb40ff5f3c7de74f655ffc1fac03013a7fe468440b861ebe0ab1650a\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000101112131d59f288\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = bc7f4f15fd1e4c1399740836670abe39a05707be19956ce169b32321759e0f213ae19ad34aa612b3a29f02c4bbac9f785a55a3adfe419ab891bbe0acee9921322ea21002c9dd3dcdd13a7f8554dddc10f9b529ce94be7050937dab76557b7eb17c685aad8f0797e39d62553988989aab1d9764fe431cc1d4c595062ce93ce9\nresult = valid\ntag = 5e67a7b8733e0e4b01ac2178a205ae7e\n\n# tcId = 198\n# edge case for poly1305\n# key:00000090e6e328c242cde5c83e3d8262d467f2bcd53d3755c781f3c6a2cb0648\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000101112130552a411\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = eaccaa778935ef249e0900149dd889462d2a061486ba102b8caebe465f3959fb3119ebb5689676ffdd6d851a26739e772b54a2f5f473ea9c7e58ccbc4cfc953e8c420b2175d9dd519265630bb79bd87a601b113231a8b16ce54c331347ec04c2b1c9160f38207aa46e96feb06dee883eb422fa14908df300bb1a1ef758c408\nresult = valid\ntag = 177a77fce114a4349c4f8d5ec825d06f\n\n# tcId = 199\n# edge case for poly1305\n# key:9e98d64e000000505a07183c5c68c63c14c9266dd37ff86aafc22ddbdb355617\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000101112130c807a72\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = a76c330e015060a17e64cb7b6d753f201f75be8759fd7539fb92b22aef54c9d3029dba0c15cbf7c95135888319c6b2e6276da21e0c351fd522b29aabb5883a3291d6f427de773b124390ef6fd96621ffbc42dfbf7a34da272cbc9ccb1a498d078033d1ac3bf7e92715948b06d69d5c5039e9164ba9c3a02219ec5908206b3b\nresult = valid\ntag = 623c7d4424f5497aedfd1339cf8cecce\n\n# tcId = 200\n# edge case for poly1305\n# key:1048a92e65f5e63102000080d9ae08de4319a7c45fdbe707b9ec1b7e0d635161\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000101112130397a143\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = 228a7e15bcce13051de9145f77f7f4ff7921828b4f99efc4ff55ee0d9344955b69ec2d4798b0517f0273c4456ae5ffc5929cbe74ddb0da51d4f2b4df7578a31240c88ae922c3c5eca7b97d72d497062050a587447c562b343d5c71921944872f9fd06b8f34b3eb5d4341f5ff8a907dd7c2e1676b81252726ba54814da51eab\nresult = valid\ntag = 1c18b69354b189731a1a83fe8f0d57c9\n\n# tcId = 201\n# edge case for poly1305\n# key:01517a2ceb89bbfb5741f7d9000000401a65b132ad661072a00ffe7defbb18a5\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000000001011121308cb0f3f\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = c7d843188ab193dfef5c4daf583f952cd4b195f240fa2e704d021723023c123371a41e87dfc6e6c3874a42f331cf035988a38c72ba2da854b1208f98bf8cc29948169481ab3a402d5fcc7ff78f9e31925576dc3938074b8c5b27960e3afc750ad686563688b7441787288d5256c1301d563b7744843bd1ab4eff5be6f1653d\nresult = valid\ntag = 2045815b8211b9a2995effe0b8ed9868\n\n# tcId = 202\n# edge case for poly1305\n# key:bc90156087e0125006d90c30babd0590427bff19de1f2e7d0757a79528731138\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 00000000101112130d8fcf4e\nkey = 9de836aa579585081f330a7c4036e20e38ef15eff3945184d231867f505fffdf\nmsg = cfc3db8631c81c69023a3c8a9ad66c35053685144c4fa2a9510add72e211dad9ca5b982e4c194591fdb74116280311d1299ad81227258cb52f079bbcb12aff161d278dec33a326d71276b3de01a8327ee7f45f94179dff18a3fe643e56c30cfd03871c8110ab00f6612b9e17a4647360d7847bb63a3122613c2e7cdddd08ae\nresult = valid\ntag = 1ae2ed84ea9774d78d782bf8d972a8b8\n\n# tcId = 203\n# edge case for tag\naad = ffffffffffffffffffffffffffffffff415771fda4fbcc55c377f73203e60226\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = e48caf8a76183327c9561a4651c07c822ccd1642c06607d0d4bc0afb4de15915dbfa3b0b422e77e15c64bf6247031f15fdb643117809821870000adf83834da5\nresult = valid\ntag = 000102030405060708090a0b0c0d0e0f\n\n# tcId = 204\n# edge case for tag\naad = f1ffffffffffffffffffffffffffffff615af39eddb5fcd2519190d5507d3b06\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = e48caf8a76183327c9561a4651c07c822ccd1642c06607d0d4bc0afb4de15915dbfa3b0b422e77e15c64bf6247031f15fdb643117809821870000adf83834da5\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 205\n# edge case for tag\naad = b5ffffffffffffffffffffffffffffff764e5d82ce7da0d44148484fd96a6107\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = e48caf8a76183327c9561a4651c07c822ccd1642c06607d0d4bc0afb4de15915dbfa3b0b422e77e15c64bf6247031f15fdb643117809821870000adf83834da5\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 206\n# edge case for tag\naad = fdffffffffffffffffffffffffffffff2bdbf16d8ea4d39dab8dcb3d4bc4e104\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = e48caf8a76183327c9561a4651c07c822ccd1642c06607d0d4bc0afb4de15915dbfa3b0b422e77e15c64bf6247031f15fdb643117809821870000adf83834da5\nresult = valid\ntag = 00000080000000800000008000000080\n\n", + "# tcId = 207\n# edge case for tag\naad = a9ffffffffffffffffffffffffffffffaccd5eb31d8fc909e84b0de7de23bb08\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = e48caf8a76183327c9561a4651c07c822ccd1642c06607d0d4bc0afb4de15915dbfa3b0b422e77e15c64bf6247031f15fdb643117809821870000adf83834da5\nresult = valid\ntag = ffffff7fffffff7fffffff7fffffff7f\n\n# tcId = 208\n# edge case for tag\naad = d2ffffffffffffffffffffffffffffffdd4b933e7b1a7ed93cc7c050db71dc03\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = e48caf8a76183327c9561a4651c07c822ccd1642c06607d0d4bc0afb4de15915dbfa3b0b422e77e15c64bf6247031f15fdb643117809821870000adf83834da5\nresult = valid\ntag = 01000000010000000100000001000000\n\n# tcId = 209\n# edge case for tag\naad = ffffffffffffffffffffffffffffffffa08164425d7642e9e90fc8d5c32d2cf6\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = e48caf8a76183327c9561a4651c07c822ccd1642c06607d0d4bc0afb4de15915dbfa3b0b422e77e15c64bf6247031f15fdb643117809821870000adf83834da5\nresult = valid\ntag = ffffffff000000000000000000000000\n\n# tcId = 210\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = e5ffffffffffffffffffffffffffffff0871bc8f1e4aa235087712d9df183609ffffffffffffffffffffffffffffffffffffffe7a33009ef5fc604ea0f9a75e9ffffffffffffffffffffffffffffffffffffffe7a33009ef5fc604ea0f9a75e9\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = c68ce708bf26aab862d97e1b42f31ef37bb66f8090c149e452ec7f20327eb2ea2e38aca2438b588d5459493e97e7fa330ff9bc23c897df6b00af86931d6c81555103478f2869b93ee29c837e95fb6b9903f3b72debfba2384baa48ceedfedb91\nresult = valid\ntag = 3572162777262c518eef573b720e8e64\n\n# tcId = 211\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = e4ffffffffffffffffffffffffffffff05e74de09a9d7a2aff4a6356b57c7b05fffffffffffffffffffffffffffffffffe759118501a43cdd6a2064aa520adc7fffffffffffffffffffffffffffffffffe759118501a43cdd6a2064aa520adc7\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = c78ce708bf26aab862d97e1b42f31ef376209eef141691fba5d10eaf581affe62e38aca2438b588d5459493e97e7fa330e73d2dc3bbd954989cb8433b7d6597b5103478f2869b93ee29c837e95fb6b990279d9d218d1e81ac2ce4a6e474403bf\nresult = valid\ntag = 347216375f5b7b5c4e6bff4912fd9473\n\n# tcId = 212\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = dffffffffffffffffffffffffffffffff8be933274202b099b164e5aabfa9705fffffffffffffffffffffffffffffffffa4dd7da00c12a46b2140ecafa3a8b40fffffffffffffffffffffffffffffffffa4dd7da00c12a46b2140ecafa3a8b40\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = fc8ce708bf26aab862d97e1b42f31ef38b79403dfaabc0d8c18d23a3469c13e62e38aca2438b588d5459493e97e7fa330a4b941e6b66fcc2ed7d8cb3e8cc7ffc5103478f2869b93ee29c837e95fb6b9906419f10480a8191a67842ee185e2538\nresult = valid\ntag = 30721677ff2eb8894e5a9d8492b7b0af\n\n# tcId = 213\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d9ffffffffffffffffffffffffffffffe80c6bd5c9f6b3dc2db689db76dcf901f8ffffffffffffffffffffffffffffffee9bae3db6c376ec44c5ab104662d100f8ffffffffffffffffffffffffffffffee9bae3db6c376ec44c5ab104662d100\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = fa8ce708bf26aab862d97e1b42f31ef39bcbb8da477d580d772de4229bba7de22938aca2438b588d5459493e97e7fa331e9dedf9dd64a0681bac2969549425bc5603478f2869b93ee29c837e95fb6b991297e6f7fe08dd3b50a9e734a4067f78\nresult = valid\ntag = 2b7216c7873744c20ec5e2cdb260d3fa\n\n# tcId = 214\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = cdffffffffffffffffffffffffffffffca3288dae0843c9a1c9d576fd82a7f0de3ffffffffffffffffffffffffffffffd0c1cb42cd51ffa933ac79a4a7b0560ce3ffffffffffffffffffffffffffffffd0c1cb42cd51ffa933ac79a4a7b0560c\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = ee8ce708bf26aab862d97e1b42f31ef3b9f55bd56e0fd74b46063a96354cfbee3238aca2438b588d5459493e97e7fa3320c78886a6f6292d6cc5fbddb546a2b04d03478f2869b93ee29c837e95fb6b992ccd8388859a547e27c0358045d4f874\nresult = valid\ntag = 22721657b0130d28cf1ec65153c41182\n\n# tcId = 215\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ccffffffffffffffffffffffffffffffc7a8192b5dd8148f1371a8ecad8ec409e1ffffffffffffffffffffffffffffffcd375d9349a5d79e2a80ca217d149c08e1ffffffffffffffffffffffffffffffcd375d9349a5d79e2a80ca217d149c08\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = ef8ce708bf26aab862d97e1b42f31ef3b46fca24d353ff5e49eac51540e840ea3038aca2438b588d5459493e97e7fa333d311e572202011a75e948586fe268b44f03478f2869b93ee29c837e95fb6b99313b1559016e7c493eec86059f703270\nresult = valid\ntag = 2172166798485c338f9a6d60f3b21891\n\n# tcId = 216\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d6ee4ee25d3bdea81e76de8934cc51fb849cfca7685708575dc6df7a01e36a81849cfca7685708575dc6df7a01e36a81\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f59d56151de28bef83505f6d89c0b0f7f75b2fa8e6dce386075db283ec85ee62555baffad423af25f66069bb69fb6f4d\nresult = valid\ntag = 831312cbb0f165dc3e8ff52125f48640\n\n# tcId = 217\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d464e022f259679255ce87f8694190e881128ee8fc759140941e89e93658a96e81128ee8fc759140941e89e93658a96e\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f717f8d5b28032d5c8e8061cd44d71e4f2d55de772fe7a91ce85e410db3e2d8d50d5ddb5400136323fb83f285e40aca2\nresult = valid\ntag = 821312db9826b5e7fe0a9d30c5e28d4f\n\n# tcId = 218\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d1ffffffffffffffffffffffffffffff954d41231c9238de5dce20847494390afdffffffffffffffffffffffffffffff124a4419f35e64d7f465b3f489e2020dfdffffffffffffffffffffffffffffff124a4419f35e64d7f465b3f489e2020d\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f28ce708bf26aab862d97e1b42f31ef3e68a922c9219d30f07554d7d99f2bde92c38aca2438b588d5459493e97e7fa33e24c07dd98f9b253ab0c318d9b14f6b15303478f2869b93ee29c837e95fb6b99ee460cd3bb95cf00e009ffd06b86ac75\nresult = valid\ntag = c1045769d487d545cef3f0d34b7a8733\n\n# tcId = 219\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff5da057d7d954ec856796aad6faffb1183c2f9be74c6a4576e0b09a7a5c2330963c2f9be74c6a4576e0b09a7a5c233096\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef32e6784d857df07543d0dc72f179935fbede8c8baf01ee2044b162cbb343b355acc29d82327cd93f2bfd918034ed5c42a\nresult = valid\ntag = 64e7efd24516a83e2c87e06a76e2dea3\n\n# tcId = 220\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae1081042212", + "4fc5e1bd7fe301\naad = ffffffff\nct = d4ffffffffffffffffffffffffffffff3fa97e2976c1e9f48fcc19a4df9af604fdffffffffffffffffffffffffffffff94dd708f021933fd6757e3d766da8507fdffffffffffffffffffffffffffffff94dd708f021933fd6757e3d766da8507\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f78ce708bf26aab862d97e1b42f31ef34c6ead26f84a0225d557745d32fc72e72c38aca2438b588d5459493e97e7fa3364db334b69bee579383e61ae742c71bb5303478f2869b93ee29c837e95fb6b9968d138454ad2982a733baff384be2b7f\nresult = valid\ntag = e6cc6729d79ba558cd73b03cba54d660\n\n# tcId = 221\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d3ffffffffffffffffffffffffffffff3c1f107af214c2e986a06a21b5fe3b01fbffffffffffffffffffffffffffffff915302e07e6c0bf25e2b34553c3ecb03fbffffffffffffffffffffffffffffff915302e07e6c0bf25e2b34553c3ecb03\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f08ce708bf26aab862d97e1b42f31ef34fd8c3757c9f2938dc3b07d85898bfe22a38aca2438b588d5459493e97e7fa336155412415cbdd760142b62c2ec83fbf5503478f2869b93ee29c837e95fb6b996d5f4a2a36a7a0254a477871de5a657b\nresult = valid\ntag = e5cc6739bfd0f4638def574b5a43dd6f\n\n# tcId = 222\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d1ffffffffffffffffffffffffffffffacc4198b86a494a1f7152dfd27dba807faffffffffffffffffffffffffffffffd8fb02f8c11606afaeafd52ab8dc2705faffffffffffffffffffffffffffffffd8fb02f8c11606afaeafd52ab8dc2705\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f28ce708bf26aab862d97e1b42f31ef3df03ca84082f7f70ad8e4004cabd2ce42b38aca2438b588d5459493e97e7fa3328fd413caab1d02bf1c65753aa2ad3b95403478f2869b93ee29c837e95fb6b9924f74a3289ddad78bac3990e5ab8897d\nresult = valid\ntag = 0fca702228817d53ee64d142b192e665\n\n# tcId = 223\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d0ffffffffffffffffffffffffffffff6c3be2a1e7b27845e258559ea15b790af8ffffffffffffffffffffffffffffffb7788b0b55040251880407d43989ff04f8ffffffffffffffffffffffffffffffb7788b0b55040251880407d43989ff04\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f38ce708bf26aab862d97e1b42f31ef31ffc31ae69399394b8c338674c3dfde92938aca2438b588d5459493e97e7fa33477ec8cf3ea3d4d5d76d85ad2b7f0bb85603478f2869b93ee29c837e95fb6b994b74c3c11dcfa9869c684bf0dbed517c\nresult = valid\ntag = efc3b035ded6b460bfce6f494955e677\n\n# tcId = 224\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = 088e15a1ac30d236e84be13d641c8ddcb53bc366b84c04e5269ce22ef132a662b53bc366b84c04e5269ce22ef132a662\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 2bfd0d56ece98771756d60d9d9106cd0c6fc106936c7ef347c078fd71c54228164fc903b0438a3978d3a54ef992aa3ae\nresult = valid\ntag = 345fc9fe573c136c1be83730500ce662\n\n# tcId = 225\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d5ffffffffffffffffffffffffffffff0f05f652625465debbac58683768ac07f9ffffffffffffffffffffffffffffff1297b88c53a64ad580de966c074da70df9ffffffffffffffffffffffffffffff1297b88c53a64ad580de966c074da70d\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f68ce708bf26aab862d97e1b42f31ef37cc2255decdf8e0fe1373591da0e28e42838aca2438b588d5459493e97e7fa33e291fb4838019c51dfb7141515bb53b15703478f2869b93ee29c837e95fb6b99ee9bf0461b6de10294b2da48e5290975\nresult = valid\ntag = 336f97a5faa995a2a03781b591588da8\n\n# tcId = 226\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = e5ffffffffffffffffffffffffffffff0971bc8f1e4aa235087712d9df183609d5ffffffffffffffffffffffffffffff7d20502e655f60d2ed2eb547dc36e100d5ffffffffffffffffffffffffffffff7d20502e655f60d2ed2eb547dc36e100\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = c68ce708bf26aab862d97e1b42f31ef37ab66f8090c149e452ec7f20327eb2ea0438aca2438b588d5459493e97e7fa338d2613ea0ef8b656b247373ecec015bc7b03478f2869b93ee29c837e95fb6b99812c18e42d94cb05f942f9633e524f78\nresult = valid\ntag = 9351c680c8a5d34882d42145e89745c4\n\n# tcId = 227\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = e5ffffffffffffffffffffffffffffff0771bc8f1e4aa235087712d9df183609ffffffffffffffffffffffffffffffff5cdfaf41f5afb0e653abcef385232d49ffffffffffffffffffffffffffffffff5cdfaf41f5afb0e653abcef385232d49\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = c68ce708bf26aab862d97e1b42f31ef374b66f8090c149e452ec7f20327eb2ea2e38aca2438b588d5459493e97e7fa33acd9ec859e0866620cc24c8a97d5d9f55103478f2869b93ee29c837e95fb6b99a0d3e78bbd641b3147c782d767478331\nresult = valid\ntag = d79266cd25a784599a0a8e31fc84d604\n\n# tcId = 228\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d4ffffffffffffffffffffffffffffff31961e263e2142b10fe7f35b6fe5b00735256286b6535dbb4738c289eef304ff35256286b6535dbb4738c289eef304ff\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f78ce708bf26aab862d97e1b42f31ef34251cd29b0aaa960557c9ea2828334e4e4e231db0a27fac9ec9e744886eb0133c5232142ddf48b3f185140f0fc05f043\nresult = valid\ntag = 9d671d407d7660459d5d582d83915efe\n\n# tcId = 229\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = d6ffffffffffffffffffffffffffffff007a4c0e31b8da6074aab0ed22777a0dccffffffffffffffffffffffffffffff925a2aa19dbdcab24ee5f6096423430bccffffffffffffffffffffffffffffff925a2aa19dbdcab24ee5f6096423430b\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f58ce708bf26aab862d97e1b42f31ef373bd9f01bf3331b12e31dd14cf11feee1d38aca2438b588d5459493e97e7fa33625c6965f61a1c36118c747076d5b7b76203478f2869b93ee29c837e95fb6b996e56626bd57661655a89ba2d8647ed73\nresult = valid\ntag = 7b207c2c3278c64f0d6b913fe371fe63\n\n# tcId = 230\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff9fcee0ff3132f9c9943bbab7eb79d17dfcffffffffffffffffffffffffffffff7d5d2424c74985c8bdb0fb6d9547180efcffffffffffffffffffffffffffffff7d5d2424c74985c8bdb0fb6d9547180e\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef3ec0933f0bfb91218cea0d74e061f559e2d38aca2438b588d5459493e97e7fa338d5b67e0acee534ce2d9791487b1ecb25203478f2869b93ee29c837e95fb6b9981516cee8f822e1fa9dcb7497723b676\nresult = valid\ntag = 3672162bb1f3ff537ece013f1aca4f68\n\n# tcId = 231\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff9d447240c65082b3cb93632621ef0f6bfaffffffffffffffffffffffffffffff7ad3b574439d5dbdb4844ceb6aab5d0afaffffffffffffffffffffffffffffff7ad3b574439d5dbdb4844ceb6aab5d0a\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef3ee83a14f48db696291080edfcc898b882b38aca2438b588d5459493e97e7fa338ad5f6b0283a8b39ebedce92785da9b65403478f2869b93ee29c837e95fb6b9986dffdbe0b56f66aa0e800cf88cff372\nresult = valid\ntag = 3572163b99284f5f3e4aa94dbab85677\n\n# tcId = 232\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff9bba03815a6f0b9d02ec0c9556644e58f8fffffffffff", + "fffffffffffffffffff774947c5bff035b2ab589d68400fa306f8ffffffffffffffffffffffffffffff774947c5bff035b2ab589d68400fa306\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef3e87dd08ed4e4e04c5877616cbb02cabb2938aca2438b588d5459493e97e7fa33874f0401d457e336f4311f1152f957ba5603478f2869b93ee29c837e95fb6b998b450f0ff73b9e65bf34d14ca26b0d7e\nresult = valid\ntag = 3472164b815d9e6afec5505c5aa75d86\n\n# tcId = 233\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ebffffffffffffffffffffffffffffff1823e5ecc873196275d7d6571437d40cd5ffffffffffffffffffffffffffffffdfb12895594ee6728fc57571671f8309d5ffffffffffffffffffffffffffffffdfb12895594ee6728fc57571671f8309\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = c88ce708bf26aab862d97e1b42f31ef36be436e346f8f2b32f4cbbaef95150ef0438aca2438b588d5459493e97e7fa332fb76b5132e930f6d0acf70875e977b57b03478f2869b93ee29c837e95fb6b9923bd605f11854da59ba93955857b2d71\nresult = valid\ntag = 3a7216d7ee1da018ce8412f251656b19\n\n# tcId = 234\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = e6ffffffffffffffffffffffffffffff0bfb2a3fa2f6c94011a3c15b0ab5f00cccffffffffffffffffffffffffffffffd2896ee732d196512b9160755d9d9f09ccffffffffffffffffffffffffffffffd2896ee732d196512b9160755d9d9f09\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = c58ce708bf26aab862d97e1b42f31ef3783cf9302c7d22914b38aca2e7d374ef1d38aca2438b588d5459493e97e7fa33228f2d23597640d574f8e20c4f6b6bb56203478f2869b93ee29c837e95fb6b992e85262d7a1a3d863ffd2c51bff93171\nresult = valid\ntag = 367216178ff1dc45ce73b02cd21f8755\n\n# tcId = 235\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff2e70fc865fcbc0cb59e892f3713a50a8bca0fc1dc5fbf327fbb124545a50e9efbca0fc1dc5fbf327fbb124545a50e9ef\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef35db72f89d1402b1a0373ff0a9c5cd44b6d67af40798f5455501792953248ec234ca6bfd9ae5c25a3a4d8a62d48a61d53\nresult = valid\ntag = 0b4961c9525ea2f2cdad6273e1c7824c\n\n# tcId = 236\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff2ce68dc7f3e949b590403c62a7af8e95b9168e5e591a7d11320acec28fc527ddb9168e5e591a7d11320acec28fc527dd\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef35f215ec87d62a264cadb519b4ac90a7668d1dd03e56eda6399ac7803e7dd22114910cd9a32bdab956d634cbb9d33d361\nresult = valid\ntag = 0a4961d93a93f1fd8d290a8281b6895b\n\n# tcId = 237\n# edge case intermediate sums in poly1305.\n# poly_key:ffffffefeb344f6bc37ba77ea2ee06dfe8c7f4ae10810422124fc5e1bd7fe301\naad = ffffffff\nct = ffffffffffffffffffffffffffffffffa29d069f5384ab6b4237bc911bcaf399deffffffffffffffffffffffffffffff632c4abb769e76ce8c66991577f49403deffffffffffffffffffffffffffffff632c4abb769e76ce8c66991577f49403\niv = 000102030405060710abb165\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = dc8ce708bf26aab862d97e1b42f31ef3d15ad590dd0f40ba18acd168f6ac777a0f38aca2438b588d5459493e97e7fa33932a097f1d39a04ad30f1b6c650260bf7003478f2869b93ee29c837e95fb6b999f2002713e55dd19980ad53195903a7b\nresult = valid\ntag = 3572161355240943de9406292a64c551\n\n# tcId = 238\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d9ffffffffffffffffffffffffffffffa009d73c6544428cfac0b2d8c7bbef0bedffffffffffffffffffffffffffffff8a5ef60715bc4b07c92b9707376da105edffffffffffffffffffffffffffffff8a5ef60715bc4b07c92b9707376da105\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 40115e67ecd3d4178c4c60e713ab4e5e390ef93aeb61aa307f141323c38e0685fa47139a5f4e3f8e92d7a3b71eb4ff0e259445f4ffc31bce540190edd6ad207876a0085c32ddfcbeb01a8be4c34d5331eda1a5b6139750f973f0d4841baa2cb8\nresult = valid\ntag = 19532d9fa0b5fbd582aaeda830602f1d\n\n# tcId = 239\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d0ffffffffffffffffffffffffffffff792ca9a820a9d5140c8b2d4bf28c250ee3ffffffffffffffffffffffffffffff6381c873d020df8fdaf5117a613ed707e3ffffffffffffffffffffffffffffff6381c873d020df8fdaf5117a613ed707\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 49115e67ecd3d4178c4c60e713ab4e5ee02b87aeae8c3da8895f8cb0f6b9cc80f447139a5f4e3f8e92d7a3b71eb4ff0ecc4b7b803a5f8f4647df169080fe567a78a0085c32ddfcbeb01a8be4c34d5331047e9bc2d60bc471602e52f94df95aba\nresult = valid\ntag = adbd2cafc8c8f0e51250e7b81c9d0a2d\n\n# tcId = 240\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = da047b7825db1802e8e8e1aac6ba88fc2ff2344b9e99ccdc04d8836d556083412ff2344b9e99ccdc04d8836d55608341\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 43eadae036f733ea9b5b7eb22aee395db6f51a4d10bc2460810c229651556acf384ad82e3e280cad69f0df25b42b83b0\nresult = valid\ntag = 973e270a7afcab75348e14dbe19c5156\n\n# tcId = 241\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff101c5773af9f7ae7a1ddab5468716b34ffffffffffffffffffffffffffffffffc29a70deefd6160211c050231084adccffffffffffffffffffffffffffffffffc29a70deefd6160211c050231084adcc\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 66115e67ecd3d4178c4c60e713ab4e5e891b797521ba925b24090aaf6c4482bae847139a5f4e3f8e92d7a3b71eb4ff0e6d50c32d05a946cb8cea57c9f1442cb164a0085c32ddfcbeb01a8be4c34d5331a565236fe9fd0dfcab1b13a03c432071\nresult = valid\ntag = e17c273f31758e752322ae4869c1bfbb\n\n# tcId = 242\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = f3ffffffffffffffffffffffffffffffc89be2ed79009b676b58b30c466038021d65fc5026ae3c7a12685bd377d48c921d65fc5026ae3c7a12685bd377d48c92\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 6a115e67ecd3d4178c4c60e713ab4e5e519cccebf72573dbee8c12f74255d18c0add1035861ffc0b7f40079b969f8c63b2af4fa3ccd16cb38f425c3996140def\nresult = valid\ntag = a22390224c5db0f01696743d870725c5\n\n# tcId = 243\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = 7bdb195a00a87e98f6706df3c6db12c1c1c8d32c7966327313600fb655810d06c1c8d32c7966327313600fb655810d06\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = e235b8c21384557085c3f2eb2a8fa36058cffd2af743dacf96b4ae4d51b4e488d6703f49d9d7f2027e4853feb4ca0df7\nresult = valid\ntag = 437d1efad21b0865a541b5cab62e2a44\n\n# tcId = 244\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff16ac7651c417c310eaede58fe0fb9720d4ffffffffffffffffffffffffffffffde999e08e4ee117994a93eadc3421f01d4ffffffffffffffffffffffffffffffde999e08e4ee117994a93eadc3421f01\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 66115e67ecd3d4178c4c60e713ab4e5e8fab58574a322bac6f394474e4ce7eaec347139a5f4e3f8e92d7a3b71eb4ff0e71532dfb0e9141b00983394722829e7c4fa0085c32ddfcbeb01a8be4c34d5331b966cdb9e2c50a872e727d2eef8592bc\nresult = valid\ntag = acf4ffa20c0d06d61a18e9a8d4c84d1d\n\n# tcId = 245\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9", + "cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = f8ffffffffffffffffffffffffffffffc7f9499d2f566c79db6c6de23253170313d86050a363d7db52b8f5f800f8b3e213d86050a363d7db52b8f5f800f8b3e2\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 61115e67ecd3d4178c4c60e713ab4e5e5efe679ba17384c55eb8cc193666fe8d04608c3503d217aa3f90a9b0e1b3b313bc12d3a3491c8712cf92f212e138329f\nresult = valid\ntag = cd466d06e75b7fd18d5fe21d9227d9a7\n\n# tcId = 246\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = 098a19123b0c79499df7401d41758c07e0ffffffffffffffffffffffffffffff460a896b69f43eb668a0e02d475da503e0ffffffffffffffffffffffffffffff460a896b69f43eb668a0e02d475da503\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 9064b88a282052a1ee44df05ad213da679f8d1f971da17437a2b5e04fbca167151b2650ec945fec70588bc65a616a5f24f354c0c1580af3662d5f8151e3f7e82dd557ec8a4d63df7274594367bef09cd\nresult = valid\ntag = ce8a3d4d887d95613d829b538ed01196\n\n# tcId = 247\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = daffffffffffffffffffffffffffffff77f155d2f77e9cbddfe0326b5961a308ffffffffffffffffffffffffffffffff9e5d0ddb05871390b6f2fb67b644a0abffffffffffffffffffffffffffffffff9e5d0ddb05871390b6f2fb67b644a0ab\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 43115e67ecd3d4178c4c60e713ab4e5eeef67bd4795b74015a3493905d544a86e847139a5f4e3f8e92d7a3b71eb4ff0e3197be28eff843592bd8fc8d578421d664a0085c32ddfcbeb01a8be4c34d5331f9a25e6a03ac086e0c29b8e49a832d16\nresult = valid\ntag = 08289f5199df476fe90475cb95225566\n\n# tcId = 248\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = f2ffffffffffffffffffffffffffffff87336f2c3e85be548c0175422fd4fb045c92897fc21f6b57a26b23f9740b75855c92897fc21f6b57a26b23f9740b7585\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 6b115e67ecd3d4178c4c60e713ab4e5e1e34412ab0a056e809d5d4b92be1128a4b2a651a62aeab26cf437fb195407574f3583a8c28603b9e3f41241395cbf4f8\nresult = valid\ntag = 06df93f651ea5cc56911f30d3e58f997\n\n# tcId = 249\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = a608a7889c19ad7587743519c412fbb3fcffffffffffffffffffffffffffffffea06685faa687e546871cee38c80c900fcffffffffffffffffffffffffffffffea06685faa687e546871cee38c80c900\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 3fe606108f35869df4c7aa0128464a1265f8d1f971da17437a2b5e04fbca1671fdbe843a0ad9be25055992ab6dcbc9f153354c0c1580af3662d5f8151e3f7e8271599ffc674a7d152794baf8b03265ce\nresult = valid\ntag = 9264fc0f47febb30661254daf9a06189\n\n# tcId = 250\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = f7601814e4d3d5a4a530c99414c628b4fdffffffffffffffffffffffffffffffd0b7b1ee90778b838bf98a5b15450b01fdffffffffffffffffffffffffffffffd0b7b1ee90778b838bf98a5b15450b01\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 6e8eb98cf7fffe4cd683568cf892991564f8d1f971da17437a2b5e04fbca1671c70f5d8b30c64bf2e6d1d613f40e0bf052354c0c1580af3662d5f8151e3f7e824be8464d5d5588c2c41cfe4029f7a7cf\nresult = valid\ntag = 69a124fc7f96e220d1a031ced5527279\n\n# tcId = 251\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d6ffffffffffffffffffffffffffffffd85108996dfff8a26ede1e76de151701e8ffffffffffffffffffffffffffffffc5265a700c30c72da2df2eb129447b0ae8ffffffffffffffffffffffffffffffc5265a700c30c72da2df2eb129447b0a\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 4f115e67ecd3d4178c4c60e713ab4e5e4156269fe3da101eeb0abf8dda20fe8fff47139a5f4e3f8e92d7a3b71eb4ff0e6aece983e64f97e43ff5295bc884fa7773a0085c32ddfcbeb01a8be4c34d5331a2d909c10a1bdcd318046d320583f6b7\nresult = valid\ntag = 3ea8f9b2012321e63d5fb5bc2c5d332d\n\n# tcId = 252\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff81f60be9b969fce8335443cf23d235e7f3ffffffffffffffffffffffffffffff2a41bb18f72745b93ae719a2b8fbf408f3ffffffffffffffffffffffffffffff2a41bb18f72745b93ae719a2b8fbf408\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 66115e67ecd3d4178c4c60e713ab4e5e18f125ef374c1454b680e23427e7dc69e447139a5f4e3f8e92d7a3b71eb4ff0e858b08eb1d581570a7cd1e48593b757568a0085c32ddfcbeb01a8be4c34d53314dbee8a9f10c5e47803c5a21943c79b5\nresult = valid\ntag = dfaf8a3a15d45e7f4c3430048d8589f0\n\n# tcId = 253\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = 29c416dfb03cfd4bc8680819666f5912d8ffffffffffffffffffffffffffffffa01bd4d99492492e62f13093c6ec8703d8ffffffffffffffffffffffffffffffa01bd4d99492492e62f13093c6ec8703\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = b02ab747a310d6a3bbdb97018a3be8b341f8d1f971da17437a2b5e04fbca1671b7a338bc3423895f0fd96cdb27a787f277354c0c1580af3662d5f8151e3f7e823b44237a59b04a6f2d144488fa5e2bcd\nresult = valid\ntag = 3408eb2b13a9b76befcedf699422d61f\n\n# tcId = 254\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d9ffffffffffffffffffffffffffffffa109d73c6544428cfac0b2d8c7bbef0be1ffffffffffffffffffffffffffffff90bc29c302ea4f3b661c584d613d5f03e1ffffffffffffffffffffffffffffff90bc29c302ea4f3b661c584d613d5f03\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 40115e67ecd3d4178c4c60e713ab4e5e380ef93aeb61aa307f141323c38e0685f647139a5f4e3f8e92d7a3b71eb4ff0e3f769a30e8951ff2fb365fa780fdde7e7aa0085c32ddfcbeb01a8be4c34d5331f7437a7204c154c5dcc71bce4dfad2be\nresult = valid\ntag = 09f4f2a3936d7461a67ce022176bb8dd\n\n# tcId = 255\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d9ffffffffffffffffffffffffffffff9f09d73c6544428cfac0b2d8c7bbef0bf9ffffffffffffffffffffffffffffff8400c34c278e47d32b3bd6c10c9de307f9ffffffffffffffffffffffffffffff8400c34c278e47d32b3bd6c10c9de307\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 40115e67ecd3d4178c4c60e713ab4e5e060ef93aeb61aa307f141323c38e0685ee47139a5f4e3f8e92d7a3b71eb4ff0e2bca70bfcdf1171ab611d12bed5d627a62a0085c32ddfcbeb01a8be4c34d5331e3ff90fd21a55c2d91e09542205a6eba\nresult = valid\ntag = 2eb2679aadfd824a5fd8fa2e4a55a65c\n\n# tcId = 256\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = cffffffffffffffffffffffffffffffff5793d144852a712f8cafcf7c23ceb01e2ffffffffffffffffffffffffffffff2e0355ef5491859df636e2321f329b07e2ffffffffffffffffffffffffffffff2e0355ef5491859df636e2321f329b07\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 56115e67ecd3d4178c4c60e713ab4e5e6c7e1312c6774fae7d1e5d0cc609028ff547139a5f4e3f8e92d7a3b71eb4ff0e81c9e61cbeeed5546b1ce5d8fef21a7a79a0085c32ddfcbeb01a8be4c34d533149fc065e52ba9e634ceda1b133f516ba\nresult = valid\ntag = 5e89349f6b011cd6e24ee6ac2f590c21\n\n# tcId = 257\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = b746e0935ee6a77520da3f2b348fd045f5ffffffffffffffffffffffffffffffe74d62ee1add31d44c6e7b756eabc40df5ffffffffffffffffffffffffffffffe74d62ee1add31d44c6e7b756eabc40d\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415", + "161718191a1b1c1d1e1f\nmsg = 2ea8410b4dca8c9d5369a033d8db61e46cf8d1f971da17437a2b5e04fbca1671f0f58e8bba6cf1a52146273d8fe0c4fc5a354c0c1580af3662d5f8151e3f7e827c12954dd7ff3295038b0f6e521968c3\nresult = valid\ntag = b24537fcb0dcb6200b0285cafc9c3a7d\n\n# tcId = 258\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = 8eeb3be49baf8963e30e0bb6a885e597fbffffffffffffffffffffffffffffffb588f4da2ed9246284b29e9c4a748d00fbffffffffffffffffffffffffffffffb588f4da2ed9246284b29e9c4a748d00\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 17059a7c8883a28b90bd94ae44d1543662f8d1f971da17437a2b5e04fbca1671a23018bf8e68e413e99ac2d4ab3f8df154354c0c1580af3662d5f8151e3f7e822ed70379e3fb2723cb57ea8776c621ce\nresult = valid\ntag = 43300400ea36e720361153ce0c5d637d\n\n# tcId = 259\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = 334f13c0ee677f5ce406bf988632660bf1ffffffffffffffffffffffffffffff8eabc646ea3db8ea957c190f7545c302f1ffffffffffffffffffffffffffffff8eabc646ea3db8ea957c190f7545c302\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = aaa1b258fd4b54b497b520806a66d7aa68f8d1f971da17437a2b5e04fbca167199132a234a8c789bf8544547940ec3f35e354c0c1580af3662d5f8151e3f7e8215f431e5271fbbabda996d1449f76fcc\nresult = valid\ntag = d79a0310124adc30c6b64cdef8993e8d\n\n# tcId = 260\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d5ffffffffffffffffffffffffffffff225479ebbf6f3ffc3c45ae566b343e0fe7ffffffffffffffffffffffffffffff67ce98b2a5a24b73a74694819f16f904e7ffffffffffffffffffffffffffffff67ce98b2a5a24b73a74694819f16f904\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 4c115e67ecd3d4178c4c60e713ab4e5ebb5357ed314ad740b9910fad6f01d781f047139a5f4e3f8e92d7a3b71eb4ff0ec8042b414fdd1bba3a6c936b7ed678797ca0085c32ddfcbeb01a8be4c34d53310031cb03a389508d1d9dd702b3d174b9\nresult = valid\ntag = e6022cc3ba20e3f9065fdfcc43a9dc40\n\n# tcId = 261\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff6f45b891d4d214519355200c6850e16fdeffffffffffffffffffffffffffffffe6bfb5fc97a1a469054394d952cf3e01deffffffffffffffffffffffffffffffe6bfb5fc97a1a469054394d952cf3e01\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 66115e67ecd3d4178c4c60e713ab4e5ef64296975af7fced168181f76c6508e1c947139a5f4e3f8e92d7a3b71eb4ff0e4975060f7ddef4a098699333b30fbf7c45a0085c32ddfcbeb01a8be4c34d53318140e64d918abf97bf98d75a7e08b3bc\nresult = valid\ntag = 353e304fd8553286b26e0d59942fe7cd\n\n# tcId = 262\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = 01af6e513489562ce218aa5a93ad8447f7ffffffffffffffffffffffffffffffb13b249c5957b87eb7611c950c9c6b03f7ffffffffffffffffffffffffffffffb13b249c5957b87eb7611c950c9c6b03\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 9841cfc927a57dc491ab35427ff935e66ef8d1f971da17437a2b5e04fbca1671a683c8f9f9e6780fda4940ddedd76bf258354c0c1580af3662d5f8151e3f7e822a64d33f9475bb3ff884688e302ec7cd\nresult = valid\ntag = 0aeb04ecf7def40c42025bbae5509169\n\n# tcId = 263\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = dbffffffffffffffffffffffffffffff9266919df28a6b70b10ec3ae9764ab07ffffffffffffffffffffffffffffffffc6a0ef8c53a5cc1d3eb6827be9ad3550ffffffffffffffffffffffffffffffffc6a0ef8c53a5cc1d3eb6827be9ad3550\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 42115e67ecd3d4178c4c60e713ab4e5e0b61bf9b7caf83cc34da625593514289e847139a5f4e3f8e92d7a3b71eb4ff0e696a5c7fb9da9cd4a39c8591086db42d64a0085c32ddfcbeb01a8be4c34d5331a15fbc3d558ed7e3846dc1f8c56ab8ed\nresult = valid\ntag = 8fc4f77a6ee052a4c314780b8df9a2d0\n\n# tcId = 264\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d2ffffffffffffffffffffffffffffff6b896309aeeffef8c2d83d21c235e109faffffffffffffffffffffffffffffffbbaec4a846aa96567f441d9e774e2303faffffffffffffffffffffffffffffffbbaec4a846aa96567f441d9e774e2303\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 4b115e67ecd3d4178c4c60e713ab4e5ef28e4d0f20ca1644470c9cdac6000887ed47139a5f4e3f8e92d7a3b71eb4ff0e1464775bacd5c69fe26e1a74968ea27e61a0085c32ddfcbeb01a8be4c34d5331dc51971940818da8c59f5e1d5b89aebe\nresult = valid\ntag = 232ff78a96f347b453ba711b79367ee0\n\n# tcId = 265\n# edge case intermediate sums in poly1305.\n# poly_key:946aff9f2a13f56f92a5f9cfee3cdb1fef6d98d5a55ab563cb28620cd57f19d2\naad = ffffffff\nct = d4fffffffffffffffffffffffffffffff7e106fac57dd8a4c90632cd4e14d70ae9ffffffffffffffffffffffffffffff861126c93f3adf23fcda1400f9947f08e9ffffffffffffffffffffffffffffff861126c93f3adf23fcda1400f9947f08\niv = 00010203040506072dd4cd40\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 4d115e67ecd3d4178c4c60e713ab4e5e6ee628fc4b5830184cd293364a213e84fe47139a5f4e3f8e92d7a3b71eb4ff0e29db953ad5458fea61f013ea1854fe7572a0085c32ddfcbeb01a8be4c34d5331e1ee75783911c4dd46015783d553f2b5\nresult = valid\ntag = e00d2e8bae5d09c28e9bf59409545d09\n\n# tcId = 266\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f9ffffffffffffffffffffffffffffff015d1565924f6c7418de9babf8be4407edffffffffffffffffffffffffffffff2e110e5e1c0468cbaad99c8abeffff07edffffffffffffffffffffffffffffff2e110e5e1c0468cbaad99c8abeffff07\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 19de9b9ec8b247d42bbee2016d6715babc286fd979807951b183a188930ad15edcf0b056a2eecc51d30838e640615e14890e659fd3028c904e65018fdfd6038333d14da7b4f76f9f68fa8903138d563c33b7fb50c3e7ebca970f6f89a88a82d6\nresult = valid\ntag = 47e5d4294239db73b836c04070ff5b2d\n\n# tcId = 267\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff3eeafba63bfe1952ac727f1160b90039f5ffffffffffffffffffffffffffffffd7c9da8e1d0f1a84c2a34cd731fabb09f5ffffffffffffffffffffffffffffffd7c9da8e1d0f1a84c2a34cd731fabb09\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715ba839f811ad0310c77052f45320b0d9560c4f0b056a2eecc51d30838e640615e1470d6b14fd209fedf261fd1d250d3478d2bd14da7b4f76f9f68fa8903138d563cca6f2f80c2ec9985ff75bfd4278fc6d8\nresult = valid\ntag = 232c882f7a1a2f808ccf26496cff5b3d\n\n# tcId = 268\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = 771078b7d59fe2509aeb0b0e34844c61d6ffffffffffffffffffffffffffffffa41c2cb9eba7866f50684b1b05e3ab00d6ffffffffffffffffffffffffffffffa41c2cb9eba7866f50684b1b05e3ab00\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 97311cd6e2d25a7b4eaa16f0a61ca6246b8a85431430eada56a2c5dc944b6aa695136310b6b6b5c17c9f8c02ba7d0aeb71e0943e30f91ba41b4362fa9ed6037b7a329ee1a0af160fc76d3de7e99102c3\nresult = valid\ntag = d71bc70d5adc74e7dfd89406fc15f044\n\n# tcId = 269\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d4ffffffffffffffffffffffffffffffc9ba04216978fdc837945fd581859c08ed1f06e9bd9b718c799feff21bc757b1ed1f06e9bd9b718c799feff21bc757b1\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 34de9b9ec8b247d42bbee2016d6715ba74cf7e9d82b7e8ed9ec965f6ea310951dc104940e08a4222556828eba459f65a4a006d28729d95d79d237", + "2f77aeeab35\nresult = valid\ntag = 21e63987d494673f3040ae9de2bc0da0\n\n# tcId = 270\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = 070ae7307913e87b443128628e349459ffffffffffffffffffffffffffffffffebdc16f985b886f46bd85ca13994f388ffffffffffffffffffffffffffffffffebdc16f985b886f46bd85ca13994f388\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = e72b83514e5e50509070359c1cac7e1c428a85431430eada56a2c5dc944b6aa6dad35950d8a9b55a472f9bb8860a526358e0943e30f91ba41b4362fa9ed6037b35f2a4a1ceb01694fcdd2a5dd5e65a4b\nresult = valid\ntag = e4fb945d6a2d0b947834317cc415f024\n\n# tcId = 271\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = 6c40019572098da3d05a73fadd2e50ebcfffffffffffffffffffffffffffffffb9151b69c807925fe6107ec4ce8daf0acfffffffffffffffffffffffffffffffb9151b69c807925fe6107ec4ce8daf0a\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 8c6165f445443588041b6e044fb6baae728a85431430eada56a2c5dc944b6aa6881a54c09516a1f1cae7b9dd71130ee168e0943e30f91ba41b4362fa9ed6037b673ba931830f023f7115083822ff06c9\nresult = valid\ntag = c0424863a20e5fa04ccd9784c015f034\n\n# tcId = 272\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f8c2051563121fc74ae8eda3e2cf2f8fdeffffffffffffffffffffffffffffff724153f72c1168c720520c94e7952806deffffffffffffffffffffffffffffff724153f72c1168c720520c94e7952806\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 18e36174545fa7ec9ea9f05d7057c5ca638a85431430eada56a2c5dc944b6aa6434e1c5e71005b690ca5cb8d580b89ed79e0943e30f91ba41b4362fa9ed6037bac6fe1af6719f8a7b7577a680be781c5\nresult = valid\ntag = aa7293ffe5db30a31f2581e0e7ae56ed\n\n# tcId = 273\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f2ffffffffffffffffffffffffffffffe945274380aed12ede010f0e69e88f0fe6ffffffffffffffffffffffffffffff1bfa1f282e1c1a80381cbce05a90e407e6ffffffffffffffffffffffffffffff1bfa1f282e1c1a80381cbce05a90e407\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 12de9b9ec8b247d42bbee2016d6715ba54305dff6b61c40b775c352d025c1a56d7f0b056a2eecc51d30838e640615e14bce574e9e11afedbdca021e53bb9188338d14da7b4f76f9f68fa8903138d563c065cea26f1ff998105ca4fe34ce599d6\nresult = valid\ntag = 42e5d43d1e808e79f017144d4498c235\n\n# tcId = 274\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff6270e3a5a0c3fdb56540b490e801ea61edffffffffffffffffffffffffffffff92c0eac6b200642c2a3cc3a0f3df040cedffffffffffffffffffffffffffffff92c0eac6b200642c2a3cc3a0f3df040c\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715badf0599194b0ce890cc1d8eb383b57f38dcf0b056a2eecc51d30838e640615e1435df81077d068077ce805ea592f6f88833d14da7b4f76f9f68fa8903138d563c8f661fc86de3e72d17ea30a3e5aa79dd\nresult = valid\ntag = 6cf2f9230af8679e7ecb19421362fce3\n\n# tcId = 275\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d9fffffffffffffffffffffffffffffffde79b4549e39e3db110ba7f793e4b0ef6ffffffffffffffffffffffffffffffc3e1e05a1227be39edcf32fb9fbac501f6ffffffffffffffffffffffffffffffc3e1e05a1227be39edcf32fb9fbac501\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 39de9b9ec8b247d42bbee2016d6715ba4092e1f9a22c8b18184d805c128ade57c7f0b056a2eecc51d30838e640615e1464fe8b9bdd215a620973affefe93398528d14da7b4f76f9f68fa8903138d563cde471554cdc43d38d019c1f889cfb8d0\nresult = valid\ntag = 6d46d2230a9848d518f9d94bb2c49caa\n\n# tcId = 276\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f2ffffffffffffffffffffffffffffff8f0a40a7047b3d59be1839b286ba2d0de7ffffffffffffffffffffffffffffffb37fb895932f399c74cd868b141a9501e7ffffffffffffffffffffffffffffffb37fb895932f399c74cd868b141a9501\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 12de9b9ec8b247d42bbee2016d6715ba327f3a1befb4287c17450391ed0eb854d6f0b056a2eecc51d30838e640615e141460d3545c29ddc790711b8e7533698539d14da7b4f76f9f68fa8903138d563caed94d9b4cccba9d491b7588026fe8d0\nresult = valid\ntag = 74dda12e0558877bc0e40c3eace0af29\n\n# tcId = 277\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = fbffffffffffffffffffffffffffffff38c30cd80586ef11d6e2e8fef9b4e90eefffffffffffffffffffffffffffffff5c3885c6943aeb548c9736d887145103efffffffffffffffffffffffffffffff5c3885c6943aeb548c9736d887145103\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1bde9b9ec8b247d42bbee2016d6715ba85b67664ee49fa347fbfd2dd92007c57def0b056a2eecc51d30838e640615e14fb27ee075b3c0f0f682babdde63dad8731d14da7b4f76f9f68fa8903138d563c419e70c84bd96855b141c5db91612cd2\nresult = valid\ntag = 502455343d39db87947d7346a8e0af39\n\n# tcId = 278\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d6ffffffffffffffffffffffffffffffac47fba7c4d7273e00c6286047cb1303923a637b8abd431aea02868ed80ccfcb923a637b8abd431aea02868ed80ccfcb\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 36de9b9ec8b247d42bbee2016d6715ba1132811b2f18321ba99b12432c7f865aa3352cd2d7ac70b4c6f5419767926e20352508ba45bba7410ebe1b8bb925334f\nresult = valid\ntag = 14fba149d1c0edc8aa665851126b5afd\n\n# tcId = 279\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff44ec3cacb339c2569701eaf20829057cfafffffffffffffffffffffffffffffff5156664cb3f3f5b06357c7c726bfa0afafffffffffffffffffffffffffffffff5156664cb3f3f5b06357c7c726bfa0a\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715baf999461058f6d7733e5cd0d1639d9025cbf0b056a2eecc51d30838e640615e14520a0da50439db00e289e1791342068e24d14da7b4f76f9f68fa8903138d563ce8b3936a14dcbc5a3be38f7f641e87db\nresult = valid\ntag = bf7fbd422cbf0e700fd1605be8fd212f\n\n# tcId = 280\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f5ffffffffffffffffffffffffffffff71635318e71e0b8a765929a82e1b7101deffffffffffffffffffffffffffffff9315a275955e72fffc1453ed6207fb0bdeffffffffffffffffffffffffffffff9315a275955e72fffc1453ed6207fb0b\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 15de9b9ec8b247d42bbee2016d6715bacc1629a40cd11eafdf04138b45afe458eff0b056a2eecc51d30838e640615e14340ac9b45a5896a418a8cee8032e078f00d14da7b4f76f9f68fa8903138d563c8eb3577b4abdf1fec1c2a0ee747286da\nresult = valid\ntag = c6f23204865b0adde0070037d6538dd3\n\n# tcId = 281\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d1ffffffffffffffffffffffffffffff42011449d50c2059156106c7c0a9b808dc91fbff818ca8f7daa162cb66ea7381dc91fbff818ca8f7daa162cb66ea7381\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 31de9b9ec8b247d42bbee2016d6715baff746ef53ec3357cbc3c3ce4ab1d2d51ed9eb456dc9d9b59f656a5d2d974d26a7b8e903e4e8a4cac3e1dffce07c38f05\nresult = valid\ntag = 8cff61b7b3919ed6bde72b36e0d31326\n\n# tcId = 282\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f9fffffffffffffffffff", + "fffffffffff025d1565924f6c7418de9babf8be4407ffffffffffffffffffffffffffffffffc35e56b05c9d78eb406fb3f474f36294ffffffffffffffffffffffffffffffffc35e56b05c9d78eb406fb3f474f36294\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 19de9b9ec8b247d42bbee2016d6715babf286fd979807951b183a188930ad15ecef0b056a2eecc51d30838e640615e1464413d71939b9cb0a4d32ef115da9e1021d14da7b4f76f9f68fa8903138d563cdef8a3be837efbea7db940f762861f45\nresult = valid\ntag = 369cf17011cae47539e2723f010cf980\n\n# tcId = 283\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = f9ffffffffffffffffffffffffffffff005d1565924f6c7418de9babf8be4407d2ffffffffffffffffffffffffffffff5541133fd4554a1a89a3216ce40b9d0bd2ffffffffffffffffffffffffffffff5541133fd4554a1a89a3216ce40b9d0b\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 19de9b9ec8b247d42bbee2016d6715babd286fd979807951b183a188930ad15ee3f0b056a2eecc51d30838e640615e14f25e78fe1b53ae416d1fbc698522618f0cd14da7b4f76f9f68fa8903138d563c48e7e6310bb6c91bb475d26ff27ee0da\nresult = valid\ntag = 532eb8e272a8d171378b0d42dff2bed9\n\n# tcId = 284\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d2ffffffffffffffffffffffffffffff98f82782afd996d0efe3800d48c1ca05ffffffffffffffffffffffffffffffff3a0c9639358f7c6d1ee0dc082de4d96effffffffffffffffffffffffffffffff3a0c9639358f7c6d1ee0dc082de4d96e\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 32de9b9ec8b247d42bbee2016d6715ba258d5d3e441683f546beba2e23755f5ccef0b056a2eecc51d30838e640615e149d13fdf8fa899836fa5c410d4ccd25ea21d14da7b4f76f9f68fa8903138d563c27aa6337ea6cff6c23362f0b3b91a4bf\nresult = valid\ntag = d1be7426cd12446fe52e8d45331e0835\n\n# tcId = 285\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff6b3fa796480ab62f9884dc7dfb4daf88faffffffffffffffffffffffffffffff79858179ae42311dacad2f325a8d3007faffffffffffffffffffffffffffffff79858179ae42311dacad2f325a8d3007\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715bad64add2aa3c5a30a31d9e65e90f93ad1cbf0b056a2eecc51d30838e640615e14de9aeab86144d5464811b2373ba4cc8324d14da7b4f76f9f68fa8903138d563c6423747771a1b21c917bdc314cf84dd6\nresult = valid\ntag = 62630c18de8c10876adb9f30f300963f\n\n# tcId = 286\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff7141e89bc0455e348313475fa4bdb3cbffffffffffffffffffffffffffffffff97d10c4f5c7356f4ef3e5fd79afe6e08ffffffffffffffffffffffffffffffff97d10c4f5c7356f4ef3e5fd79afe6e08\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715bacc3492272b8a4b112a4e7d7ccf092692cef0b056a2eecc51d30838e640615e1430ce678e9375b2af0b82c2d2fbd7928c21d14da7b4f76f9f68fa8903138d563c8a77f9418390d5f5d2e8acd48c8b13d9\nresult = valid\ntag = feb6412b9031f076eddcd9426fff5b31\n\n# tcId = 287\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = d4ffffffffffffffffffffffffffffffcf5e1ff522101a6eade8cd6049b76f0dffffffffffffffffffffffffffffffff20c173ad1d88a70fa8cf4367eef82a8affffffffffffffffffffffffffffffff20c173ad1d88a70fa8cf4367eef82a8a\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 34de9b9ec8b247d42bbee2016d6715ba722b6549c9df0f4b04b5f7432203fa54cef0b056a2eecc51d30838e640615e1487de186cd28e43544c73de628fd1d60e21d14da7b4f76f9f68fa8903138d563c3d6786a3c26b240e9519b064f88d575b\nresult = valid\ntag = dafdf430c8124483c175404b6bff5b41\n\n# tcId = 288\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ddffffffffffffffffffffffffffffff7817ec25241bcc26c5b27dadbcb12b0f61fa3a21712933597b1da91633f3e64761fa3a21712933597b1da91633f3e647\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 3dde9b9ec8b247d42bbee2016d6715bac5629699cfd4d9036cef478ed705be5650f575882c3800f757ea6e0f8c6d47acc6e551e0be2fd7029fa1341352da1ac3\nresult = valid\ntag = f8800c5b6283dddfc41f935c01bd0d24\n\n# tcId = 289\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffffdba35e4e633a3c646379bc7f82db98ce07f07c0b2132c73943308806721c542707f07c0b2132c73943308806721c5427\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715ba66d624f288f52941ca24865ce96f0d9736ff33a27c23f4976fc74f1fcd82f5cca0ef17caee342362a78c15031335a8a3\nresult = valid\ntag = 38bfb8318c627d86c34bab1f1ebd0db0\n\n# tcId = 290\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = 14cada5efddb046351f2487c56a6e4f6e5ffffffffffffffffffffffffffffff8558412d1bf9b512930fed3d4b054406e5ffffffffffffffffffffffffffffff8558412d1bf9b512930fed3d4b054406\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = f4ebbe3fca96bc4885b35582c43e0eb3588a85431430eada56a2c5dc944b6aa6b4570e8446e886bcbff82a24f49be5ed42e0943e30f91ba41b4362fa9ed6037b5b76f37550f12572040a9bc1a777edc5\nresult = valid\ntag = af7293eb09957d9de7432dd41316f0e4\n\n# tcId = 291\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = faffffffffffffffffffffffffffffffea6f4576d71568cae5ceee80e97eaf0edbffffffffffffffffffffffffffffffd1d2b02fe01eb32df3f3f0f6dacc4f05dbffffffffffffffffffffffffffffffd1d2b02fe01eb32df3f3f0f6dacc4f05\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1ade9b9ec8b247d42bbee2016d6715ba571a3fca3cda7def4c93d4a382ca3a57eaf0b056a2eecc51d30838e640615e1476cddbee2f185776174f6df3bbe5b38105d14da7b4f76f9f68fa8903138d563ccc7445213ffd302cce2503f5ccb932d4\nresult = valid\ntag = e178b0d5eb9bc551fa645c49f9f17667\n\n# tcId = 292\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff0344dfbdb8a569b44dfc38ef4c796b50e3ffffffffffffffffffffffffffffff7a8b7d60e12965e60abea0434ec70b07e3ffffffffffffffffffffffffffffff7a8b7d60e12965e60abea0434ec70b07\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 1fde9b9ec8b247d42bbee2016d6715babe31a501536a7c91e4a102cc27cdfe09d2f0b056a2eecc51d30838e640615e14dd9416a12e2f81bdee023d462feef7833dd14da7b4f76f9f68fa8903138d563c672d886e3ecae6e73768534058b276d6\nresult = valid\ntag = bdbf63db237d195ecefdc251f5f17677\n\n# tcId = 293\n# edge case intermediate sums in poly1305.\n# poly_key:dc46b3c53be153ccd4986678ffffffafe484c316c93f64195da65a2742fd3fec\naad = ffffffff\nct = deffffffffffffffffffffffffffffff3812dd4103ddb68f86081010aac51901d3ffffffffffffffffffffffffffffff1c98423cdb89c7e94daa2af16e06d505d3ffffffffffffffffffffffffffffff1c98423cdb89c7e94daa2af16e06d505\niv = 000102030405060703e76f6f\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 3ede9b9ec8b247d42bbee2016d6715ba8567a7fde812a3aa2f552a33c1718c58e2f0b056a2eecc51d30838e640615e14bb8729fd148f23b2a916b7f40f2f29810dd14da7b4f76f9f68fa8903138d563c013eb732046a44e8707cd9f27873a8d4\nresult = valid\ntag = b4ccb422bc5f7264aff73f3675ff5b19\n\n[ivSize = 0]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 294\n# invalid nonce size\naad = \nct = \niv = \nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 64]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 295\n# invalid nonce size\naa", + "d = \nct = \niv = 0001020304050607\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 88]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 296\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 104]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 297\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 112]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 298\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 128]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 299\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d0e0f\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 160]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 300\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d0e0f10111213\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n", }; -static const size_t kLen61 = 299955; +static const size_t kLen94 = 232513; -static const char *kData61[] = { - "# Imported from Wycheproof's dsa_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: DSA\n# Generator version: 0.4.12\n\n[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]\n[key.keySize = 1024]\n[key.p = 0b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]\n[key.q = 0b90b38ba0a50a43ec6898d3f9b68049777f489b1]\n[key.type = DSAPublicKey]\n[key.y = 173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]\n[keyDer = 308201b63082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818400028180173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]\n[sha = SHA-1]\n\n# tcId = 1\n# Legacy:ASN encoding of r misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 302c0214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n# ASN encoded integers with a leading hex-digit in the range 8 .. F are\n# negative. If the first hex-digit of a positive integer is 8 .. F then a\n# leading 0 must be added. Some libraries forgot to do this an therefore\n# generated invalid DSA signatures. Some providers, accept such legacy\n# signatures for compatibility.\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 3\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30812d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 4\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 302e02811500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a028114496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 6\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 7\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 302f0282001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02820014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 9\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 302d021600aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 302d021400aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 15\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3085010000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 16\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30320285010000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a02850100000014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 18\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 19\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3036028901000000000000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3036021500aa6a258fbf7d90e15614676d377df8b10e38db4a0289010000000000000014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 21\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 22\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 303102847fffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a02847fffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 24\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 25\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30310284ffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a0284ffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 27\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 28\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30320285ffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a0285ffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 30\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 31\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30350288ffffffffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a0288ffffffffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 33\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5", - "f67d3532d1f991203bc3523b964c3b\n\n# tcId = 34\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 302d02ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02ff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 36\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 37\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 302d028000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0280496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 39\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 40\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f0000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 43\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 44\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0500\n\n# tcId = 45\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032498177302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30312500302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032221a498177021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303122192500021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30352217021500aa6a258fbf7d90e15614676d377df8b10e38db4a0004deadbeef0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a22194981770214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221825000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a22160214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef\n\n# tcId = 54\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035aa00bb00cd00302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3033aa02aabb302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035221daa00bb00cd00021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3033221baa02aabb021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a221caa00bb00cd000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3033021500aa6a258fbf7d90e15614676d377df8b10e38db4a221aaa02aabb0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 60\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 61\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 62\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30312280021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 64\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 65\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30312280031500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800314496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 67\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 68\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 322d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 73\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 74\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3031300102302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 75\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c\n\n# tcId = 76\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 77\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 78\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b00\n\n# tcId = 79\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b05000000\n\n# tcId = 80\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021500", - "aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b060811220000\n\n# tcId = 81\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000fe02beef\n\n# tcId = 82\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0002beef\n\n# tcId = 83\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f3000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 84\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b3000\n\n# tcId = 85\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 86\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3017021500aa6a258fbf7d90e15614676d377df8b10e38db4a\n\n# tcId = 87\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3043021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 88\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 30160214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 89\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3017020214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3018021500aa6a258fbf7d90e15614676d377df8b10e38db4a02\n\n# tcId = 91\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 93\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f0217000000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02160000496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 95\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 96\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a05000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0500\n\n# tcId = 98\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 301802810214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0281\n\n# tcId = 100\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 301805000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0500\n\n# tcId = 102\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d011500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d031500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d041500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302dff1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0114496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0314496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0414496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4aff14496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 112\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 301802000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0200\n\n# tcId = 114\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 303122190201000214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221802014902136d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 116\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021502aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02144b6d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 118\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38dbca0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964cbb\n\n# tcId = 120\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021400aa6a258fbf7d90e15614676d377df8b10e38db0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 302c0214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a02136d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 124\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 302e0216ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215ff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 126\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 30190901800214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 127\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 301a021500aa6a258fbf7d90e15614676d377df8b10e38db4a090180\n\n# tcId = 128\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 30190201000214496d522", - "0b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 301a021500aa6a258fbf7d90e15614676d377df8b10e38db4a020100\n\n# tcId = 130\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d02150163755e49c9ce35201c9df4acd2e5fd48862d64fb0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302c0214f15eecd5b52ceca28f8ada2d9c15f419964451990214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d0215ff5595da7040826f1ea9eb9892c882074ef1c724b60214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302c02140ea1132a4ad3135d707525d263ea0be669bbae670214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d0215fe9c8aa1b63631cadfe3620b532d1a02b779d29b050214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021501aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302c02145595da7040826f1ea9eb9892c882074ef1c724b60214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a02150102788adac0472173f95b86d0bba3c7e9b38ad5ec\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a021490621966aba5d8f66c486c5184d3bebac3a1c28a\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214b692addf4a0982cacd2e066edfc43cadc469b3c5\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02146f9de699545a270993b793ae7b2c41453c5e3d76\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215fefd8775253fb8de8c06a4792f445c38164c752a14\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a021501496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a021500b692addf4a0982cacd2e066edfc43cadc469b3c5\n\n# tcId = 144\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201000215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 145\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 146\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 147\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 148\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010002145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 149\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010002145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 150\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 151\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 152\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 153\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201000215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 154\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702010002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 155\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 156\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201010215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 157\n# Signatures with special case values fo", - "r r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 158\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 159\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 160\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010102145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 161\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010102145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 162\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 163\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 164\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 165\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201010215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 166\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702010102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 167\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 168\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff0215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 169\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 170\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 171\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 172\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30190201ff02145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 173\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30190201ff02145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 174\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 175\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 176\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 177\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff0215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 178\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3081870201ff02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check", - " for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 179\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 180\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d80215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 181\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d8020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 182\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d8020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 183\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d80201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 184\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d802145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 185\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d802145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 186\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d8021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 187\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d8021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 188\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d8021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 189\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d80215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 190\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02145c859c5d0528521f6344c69fcdb4024bbbfa44d802818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 191\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b02145c859c5d0528521f6344c69fcdb4024bbbfa44d8090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 192\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d90215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 193\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d9020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 194\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d9020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 195\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d90201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 196\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d902145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 197\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d902145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 198\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d9021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0.", - " As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 199\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d9021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 200\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d9021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 201\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d90215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 202\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02145c859c5d0528521f6344c69fcdb4024bbbfa44d902818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 203\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b02145c859c5d0528521f6344c69fcdb4024bbbfa44d9090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 204\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b00215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 205\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b0020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 206\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b0020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 207\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b00201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 208\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b002145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 209\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b002145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 210\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b0021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 211\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b0021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 212\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b0021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 213\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b00215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 214\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 215\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b0090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 216\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b10215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 217\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b1020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 218\n# Signatu", - "res with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b1020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 219\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b10201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 220\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b102145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 221\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b102145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 222\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 223\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 224\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 225\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b10215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 226\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 227\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b1090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 228\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b20215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 229\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b2020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 230\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b2020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 231\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b20201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 232\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b202145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 233\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b202145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 234\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 235\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 236\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 237\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b20215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# impl", - "ementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 238\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b202818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 239\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b2090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 240\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e02150100000000000000000000000000000000000000000215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 241\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0215010000000000000000000000000000000000000000020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 242\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0215010000000000000000000000000000000000000000020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 243\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a02150100000000000000000000000000000000000000000201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 244\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021501000000000000000000000000000000000000000002145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 245\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021501000000000000000000000000000000000000000002145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 246\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 247\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 248\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 249\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e02150100000000000000000000000000000000000000000215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 250\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021501000000000000000000000000000000000000000002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 251\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c0215010000000000000000000000000000000000000000090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 252\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 253\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 254\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 255\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869", - "fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 256\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f02145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 257\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f02145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 258\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 259\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 260\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 261\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 262\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3082010802818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 263\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818902818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 264\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe010215ff46f4c745f5af5bc1397672c06497fb68880b764f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 265\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008090380fe01020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 266\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008090380fe01020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 267\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008090380fe010201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 268\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b090380fe0102145c859c5d0528521f6344c69fcdb4024bbbfa44d8\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 269\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b090380fe0102145c859c5d0528521f6344c69fcdb4024bbbfa44d9\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 270\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 271\n# Signatures with special case values for r an", - "d s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 272\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 273\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe010215010000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 274\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 308189090380fe0102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 275\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 300a090380fe01090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 276\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302d0215008a5f67f95721189431b8bd78f145a0144bfe8cbf0214727808e1428ea9aa7fe1e62ce41e14de1f0441b0\n\n# tcId = 277\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302d02140631c067b0b9272ebf1873d51213687b5b66e388021500938e3c5cd5ce3decb2c7a1d4c95408d3058d260a\n\n# tcId = 278\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302d021500847d9264c3723d8c19eb890e5a5018e606e006a502144c59ad9e76c731a6c9dd70160eebd6186ee8b7f6\n\n# tcId = 279\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302c021422ac1f8da14b7b28b0d12911a50622865408378502144b95e54a6cf4679c60d94aa04766a9367b86fd48\n\n# tcId = 280\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302c0214312efe6ed6cc2786a069ab45af12fdd57554cea402145a2adbe9edd8c81e8fe4e703094bf9734f17ed1c\n\n[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]\n[key.keySize = 1024]\n[key.p = 0b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]\n[key.q = 0b90b38ba0a50a43ec6898d3f9b68049777f489b1]\n[key.type = DSAPublicKey]\n[key.y = 713e9f8108a6a7075485a37ce1a3b040cce563a0445614fe099fb1bffd68acb36f9e04d8ad17ace3c136da66f730eb7ff18936424ffa4e5ae5b1e7dac375d8d164697254b8b7e848f5e79da25c79df5c0727d5da3498405cd0f4e46d136c351d703cc4bf0d3f4fbb165392888684964a93ad30fa179488cad4a6655dd4fa9754]\n[keyDer = 308201b63082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818400028180713e9f8108a6a7075485a37ce1a3b040cce563a0445614fe099fb1bffd68acb36f9e04d8ad17ace3c136da66f730eb7ff18936424ffa4e5ae5b1e7dac375d8d164697254b8b7e848f5e79da25c79df5c0727d5da3498405cd0f4e46d136c351d703cc4bf0d3f4fbb165392888684964a93ad30fa179488cad4a6655dd4fa9754]\n[sha = SHA-1]\n\n# tcId = 281\n# r,s = 1,1\nmsg = 54657374\nresult = valid\nsig = 3006020101020101\n\n# tcId = 282\n# r,s = 1,5\nmsg = 54657374\nresult = valid\nsig = 3006020101020105\n\n# tcId = 283\n# u2 small\nmsg = 54657374\nresult = valid\nsig = 3019020101021425023e8b9ba9ba72f481e90cb8ae67517e641b8a\n\n# tcId = 284\n# s == q-1\nmsg = 54657374\nresult = valid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n\n[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]\n[key.keySize = 1024]\n[key.p = 0b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]\n[key.q = 0b90b38ba0a50a43ec6898d3f9b68049777f489b1]\n[key.type = DSAPublicKey]\n[key.y = 61fe5b61f6d555ada7dc0ebac3459fccd8dfbad18ba94dbea52437cd7fb431df404d4738c594e720a6d786275acd02259ca613a08a2de118d0150d2ccae602102aca0cd03666a53f67c0b9943df5046c15baeaf496a9f018b7c939de1509de71ce47dd6f44c57f4e01e569be46932773190c154470cefbd1f4af82d28e4b31]\n[keyDer = 308201b43082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818200027f61fe5b61f6d555ada7dc0ebac3459fccd8dfbad18ba94dbea52437cd7fb431df404d4738c594e720a6d786275acd02259ca613a08a2de118d0150d2ccae602102aca0cd03666a53f67c0b9943df5046c15baeaf496a9f018b7c939de1509de71ce47dd6f44c57f4e01e569be46932773190c154470cefbd1f4af82d28e4b31]\n[sha = SHA-1]\n\n# tcId = 285\n# s == 1\nmsg = 54657374\nresult = valid\nsig = 3019021462ba827381396dc44facc66c344f91788f11c6fc020101\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DSAPublicKey]\n[key.y = 1e77f842b1ae0fcd9929d394161d41e14614ff750", - "7a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201001e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[sha = SHA-224]\n\n# tcId = 286\n# Legacy:ASN encoding of s misses leading 0\nmsg = 48656c6c6f\nresult = acceptable\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n# ASN encoded integers with a leading hex-digit in the range 8 .. F are\n# negative. If the first hex-digit of a positive integer is 8 .. F then a\n# leading 0 must be added. Some libraries forgot to do this an therefore\n# generated invalid DSA signatures. Some providers, accept such legacy\n# signatures for compatibility.\n\n# tcId = 287\n# valid\nmsg = 48656c6c6f\nresult = valid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 288\n# long form encoding of length\nmsg = 48656c6c6f\nresult = invalid\nsig = 30813d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 289\n# long form encoding of length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e02811c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 290\n# long form encoding of length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02811d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 291\n# length contains leading 0\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 292\n# length contains leading 0\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f0282001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 293\n# length contains leading 0\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0282001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 294\n# wrong length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 295\n# wrong length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 296\n# wrong length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 297\n# wrong length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021b1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 298\n# wrong length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021e00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 299\n# wrong length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 300\n# uint32 overflow in length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3085010000003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 301\n# uint32 overflow in length\nmsg = 48656c6c6f\nresult = invalid\nsig = 30420285010000001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 302\n# uint32 overflow in length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0285010000001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 303\n# uint64 overflow in length\nmsg = 48656c6c6f\nresult = invalid\nsig = 308901000000000000003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 304\n# uint64 overflow in length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3046028901000000000000001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 305\n# uint64 overflow in length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3046021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd028901000000000000001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 306\n# length = 2**31 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30847fffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 307\n# length = 2**31 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 304102847fffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 308\n# length = 2**31 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02847fffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 309\n# length = 2**32 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3084ffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 310\n# length = 2**32 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30410284ffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 311\n# length = 2**32 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0284ffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 312\n# length = 2**40 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3085ffffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 313", - "\n# length = 2**40 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30420285ffffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 314\n# length = 2**40 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0285ffffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 315\n# length = 2**64 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3088ffffffffffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 316\n# length = 2**64 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30450288ffffffffffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 317\n# length = 2**64 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0288ffffffffffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 318\n# incorrect length\nmsg = 48656c6c6f\nresult = invalid\nsig = 30ff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 319\n# incorrect length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d02ff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 320\n# incorrect length\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02ff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 321\n# indefinite length without termination\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 322\n# indefinite length without termination\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d02801e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 323\n# indefinite length without termination\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd028000ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 324\n# removing sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = \n\n# tcId = 325\n# lonely sequence tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 30\n\n# tcId = 326\n# appending 0's to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 327\n# prepending 0's to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f0000021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 328\n# appending unused 0's to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 329\n# appending null value to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360500\n\n# tcId = 330\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042498177303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 331\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 30412500303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 332\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360004deadbeef\n\n# tcId = 333\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 30422221498177021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 334\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 304122202500021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 335\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045221e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0004deadbeef021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 336\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2222498177021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 337\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd22212500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 338\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd221f021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360004deadbeef\n\n# tcId = 339\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045aa00bb00cd00303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 340\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3043aa02aabb303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 341\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 30452224aa00bb00cd00021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 342\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 30432222aa02aabb021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 343\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2225aa00bb00cd00021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 344\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3043021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2223aa02aabb021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 345\n# truncated length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 3081\n\n# tcId = 346\n# using composition with indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 347\n# using composition with indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 30412280021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 348\n# using composition with indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2280021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 349\n# using composition with wrong tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080313d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 350\n# using composition with wrong tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 30412280031c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 351\n# using composition with wrong tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2280031d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 352\n# Replacing sequence with NULL\nmsg = 48656c6c6f\nresult = invalid\nsig = 0500\n\n# tcId = 353\n# changing tag value of sequence\nmsg =", - " 48656c6c6f\nresult = invalid\nsig = 2e3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 354\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 2f3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 355\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 313d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 356\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 323d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 357\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = ff3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 358\n# dropping value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 3000\n\n# tcId = 359\n# using composition for sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041300102303c1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 360\n# truncate sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862\n\n# tcId = 361\n# truncate sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 362\n# indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 363\n# indefinite length with truncated delimiter\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe878623600\n\n# tcId = 364\n# indefinite length with additional element\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe878623605000000\n\n# tcId = 365\n# indefinite length with truncated element\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236060811220000\n\n# tcId = 366\n# indefinite length with garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000fe02beef\n\n# tcId = 367\n# indefinite length with nonempty EOC\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360002beef\n\n# tcId = 368\n# prepend empty sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f3000021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 369\n# append empty sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862363000\n\n# tcId = 370\n# sequence of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 371\n# truncated sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 301e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd\n\n# tcId = 372\n# repeat element in sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 305c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 373\n# removing integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 301f021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 374\n# lonely integer tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 302002021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 375\n# lonely integer tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 301f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02\n\n# tcId = 376\n# appending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021e1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 377\n# appending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 378\n# prepending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021e00001e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 379\n# prepending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f000000ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 380\n# appending unused 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 381\n# appending null value to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021e1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 382\n# appending null value to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360500\n\n# tcId = 383\n# truncated length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210281021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 384\n# truncated length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0281\n\n# tcId = 385\n# Replacing integer with NULL\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 386\n# Replacing integer with NULL\nmsg = 48656c6c6f\nresult = invalid\nsig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0500\n\n# tcId = 387\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 388\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d011c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 389\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d031c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 390\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d041c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 391\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303dff1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 392\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 393\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd011d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 394\n# changing tag val", - "ue of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd031d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 395\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd041d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 396\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cdff1d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 397\n# dropping value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210200021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 398\n# dropping value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0200\n\n# tcId = 399\n# using composition for integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041222002011e021b41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 400\n# using composition for integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2221020100021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 401\n# modify first byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1c41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 402\n# modify first byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d02ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 403\n# modify last byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c94d021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 404\n# modify last byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862b6\n\n# tcId = 405\n# truncate integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021b1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 406\n# truncate integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021b41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 407\n# truncate integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862\n\n# tcId = 408\n# truncate integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 409\n# leading ff in integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021dff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 410\n# leading ff in integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021eff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 411\n# infinity\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022090180021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 412\n# infinity\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd090180\n\n# tcId = 413\n# replacing integer with zero\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 414\n# replacing integer with zero\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd020100\n\n# tcId = 415\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00d9384b2032d060e59848f87cb4535936bc25fa77959e96d7f88e332a021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 416\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021dff634b1dd327de7125da7903ad2163ca2addc096101fd395567ee36070021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 417\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021ce1be4b8652a896fa469f01eb15246e4f330cb7bc2546e9e8c4473633021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 418\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d009cb4e22cd8218eda2586fc52de9c35d5223f69efe02c6aa9811c9f90021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 419\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021dff26c7b4dfcd2f9f1a67b707834baca6c943da05886a6169280771ccd6021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 420\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d011e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 421\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00e1be4b8652a896fa469f01eb15246e4f330cb7bc2546e9e8c4473633021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 422\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d0168dcf02f57b0caef7ddc183bee1ca94ee09c1a02ee4b0200a54dcb93\n\n# tcId = 423\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021cf2efc2e24cbedb2fc00c236c5b2d1a430236b59b7880007f2ba2f8d9\n\n# tcId = 424\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021dff5219a6772dc82cf0610be22bdb5b1e370e969830cc9a7ec017879dca\n\n# tcId = 425\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c0d103d1db34124d03ff3dc93a4d2e5bcfdc94a64877fff80d45d0727\n\n# tcId = 426\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021dfe97230fd0a84f35108223e7c411e356b11f63e5fd11b4fdff5ab2346d\n\n# tcId = 427\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d01ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 428\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c5219a6772dc82cf0610be22bdb5b1e370e969830cc9a7ec017879dca\n\n# tcId = 429\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 430\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020100020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 431\n# Signatures wi", - "th special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020100020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 432\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201000201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 433\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 434\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 435\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 436\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 437\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 438\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 439\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802010002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 440\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008020100090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 441\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 442\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020101020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 443\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020101020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 444\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201010201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 445\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 446\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 447\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 448\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 449\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 450\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 451\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802010102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84b", - "dd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 452\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008020101090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 453\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 454\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201ff020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 455\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201ff020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 456\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201ff0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 457\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 458\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 459\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 460\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 461\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 462\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 463\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 308201080201ff02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 464\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30080201ff090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 465\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 466\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 467\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 468\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 469\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 470\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result th", - "ere are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 471\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 472\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 473\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 474\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 475\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 476\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 477\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 478\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 479\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 480\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 481\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 482\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 483\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 484\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 485\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 486\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 487\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modul", - "ar inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 488\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 489\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 490\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 491\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 492\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 493\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 494\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 495\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 496\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 497\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 498\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 499\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 500\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 501\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 502\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 503\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 504\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 505\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 506\n# Signatures with special case val", - "ues for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 507\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 508\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 509\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 510\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 511\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 512\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 513\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 514\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 515\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 516\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 517\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 518\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 519\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 520\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 521\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 522\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 523\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979c", - "ec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 524\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 525\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 526\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 527\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 528\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d01000000000000000000000000000000000000000000000000000000000201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 529\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 530\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 531\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 532\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 533\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 534\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 535\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d010000000000000000000000000000000000000000000000000000000002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 536\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d0100000000000000000000000000000000000000000000000000000000090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 537\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 538\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead", - " to forgeries.\n\n# tcId = 539\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 540\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd6670201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 541\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 542\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 543\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 544\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 545\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 546\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 547\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082020a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd66702820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f272", - "90256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 548\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 549\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 550\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008090380fe01020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 551\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008090380fe01020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 552\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008090380fe010201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 553\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 554\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 555\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 556\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 557\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 558\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 559\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010a090380fe0102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 560\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 300a090380fe01090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 561\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303c021c36f3dba9761a64a37e82b12321b2a9dfd7d33b52876cc0afc069fdfb021c2b4d30ae183b67f5f89268ae71c466d8d9b80c1877fab23e822f7f00\n\n# tcId = 562\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303d021c57d273ae3782e51af0be789e409159428af91face3071ae9423474ed021d00b7385bfcd3c9eb35a4b5cbfaeaefc67a26c75a8612ebc482eef96033\n\n# tcId = 563\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303d021c2dfa059fbea2500f7db7edb9c4b5d17c844604870f47c43554d07ca6021d00975684ce7938e43e82015d1e1ff9488cce372c11929b605fd7041645\n\n# tcId = 564\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303c021c57e06bc849dc1f43acc9eef55da7edd36ae15029d2e6fd9778f116b4021c7171a6bd9ea904d0cfb290feb28e42404c3da8ce8844c85c12ddd65f\n\n# tcId = 565\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303c021c56e35470a8d753a3eebdc96c8dfbea13198e8e12dd215afc0fdeaad6021c6022e76ad5b2d5a0cfbfec0b80d7d40c73de361d1caa91992414555b\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be", - "484c05763939601cd667]\n[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DSAPublicKey]\n[key.y = 6978b68d31334ee5bc7b3e91ab6c2336fab45c64836bd92cb5337b734db9e8e44f889f8869829f4fe174dc9344c164a0ba5b0126259ba8a43f607564fa4a1d0d49645e1d5886a1fc485e2fe91e56eae330da05e17b0b3d018c290285b249bc409e7af54300fc7c3eb34911457e2371931ad9302e8450cd95df3d561ea0ad94d0a2eabcafe0dd6728fb280029b556d9f4fa7c0f46a7804329936708e97e11fc22b2a50761a890c65b5fea2a1a4172f6be9eaa60e738cdf60c015142e2e562bb62a11e810ccdf0bf633307382f2d9a9769b115dfcdab4bacae73feca289db209dce34cbe126e8c7f9d9e4f8f711349a608d567b48c050e9dfb32bc184ecaa4f0f0]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201006978b68d31334ee5bc7b3e91ab6c2336fab45c64836bd92cb5337b734db9e8e44f889f8869829f4fe174dc9344c164a0ba5b0126259ba8a43f607564fa4a1d0d49645e1d5886a1fc485e2fe91e56eae330da05e17b0b3d018c290285b249bc409e7af54300fc7c3eb34911457e2371931ad9302e8450cd95df3d561ea0ad94d0a2eabcafe0dd6728fb280029b556d9f4fa7c0f46a7804329936708e97e11fc22b2a50761a890c65b5fea2a1a4172f6be9eaa60e738cdf60c015142e2e562bb62a11e810ccdf0bf633307382f2d9a9769b115dfcdab4bacae73feca289db209dce34cbe126e8c7f9d9e4f8f711349a608d567b48c050e9dfb32bc184ecaa4f0f0]\n[sha = SHA-224]\n\n# tcId = 566\n# r,s = 1,1\nmsg = 54657374\nresult = valid\nsig = 3006020101020101\n\n# tcId = 567\n# r,s = 1,5\nmsg = 54657374\nresult = valid\nsig = 3006020101020105\n\n# tcId = 568\n# u2 small\nmsg = 54657374\nresult = valid\nsig = 3022020101021d009592121ed12d93197f1ffb863ac63937f28ef4f62f1e009a30aabab1\n\n# tcId = 569\n# s == q-1\nmsg = 54657374\nresult = valid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DSAPublicKey]\n[key.y = 2a64953bde40789f80ed8227192286115b92d09d5de96904e803ec4ecfbd73e0f08e82910febf19fa3cdc55ff20eb970d9c712f44785c0fd592c17fb43f4625357a4ac8a1a628f72040ae5360839c7c1f6b214e7a15530fe22887139ea0f05a9daf9d95bd6b7467abf9107c9fbe31e36330276eeccce3d59635206d60ca256f9af60627626b0594984b5a075c42c42067fa8c330f258bcf145df27a97da8ee419b54e3ab296c7ce9ef6a0113389b3cac7885b44b3722d27cad60e4e5a924a1ed0342cea9e99256f6bc1308d4af2c0af9379b1cf2119ce113c085705f5519ccc1ba8562a2236190d3f0c0a10f01466ad79a48127c28433f6b34e24a539af60f3d]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201002a64953bde40789f80ed8227192286115b92d09d5de96904e803ec4ecfbd73e0f08e82910febf19fa3cdc55ff20eb970d9c712f44785c0fd592c17fb43f4625357a4ac8a1a628f72040ae5360839c7c1f6b214e7a15530fe22887139ea0f05a9daf9d95bd6b7467abf9107c9fbe31e36330276eeccce3d59635206d60ca256f9af60627626b0594984b5a075c42c42067fa8c330f258bcf145df27a97da8ee419b54e3ab296c7ce9ef6a0113389b3cac7885b44b3722d27cad60e4e5a924a1ed0342cea9e99256f6bc1308d4af2c0af9379b1cf2119ce113c085705f5519ccc1ba8562a2236190d3f0c0a10f01466ad79a48127c28433f6b34e24a539af60f3d]\n[sha = SHA-224]\n\n# tcId = 570\n# s == 1\nmsg = 54657374\nresult = valid\nsig = 3021021c5a252f4fc55618747fd94b13c9bee62bb958d85777cb07dd90710d24020101\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DSAPublicKey]\n[key.y = 1e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa271", - "10a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201001e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[sha = SHA-256]\n\n# tcId = 571\n# Legacy:ASN encoding of r misses leading 0\nmsg = 54657374\nresult = acceptable\nsig = 303c021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n# ASN encoded integers with a leading hex-digit in the range 8 .. F are\n# negative. If the first hex-digit of a positive integer is 8 .. F then a\n# leading 0 must be added. Some libraries forgot to do this an therefore\n# generated invalid DSA signatures. Some providers, accept such legacy\n# signatures for compatibility.\n\n# tcId = 572\n# valid\nmsg = 54657374\nresult = valid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 573\n# long form encoding of length\nmsg = 54657374\nresult = invalid\nsig = 30813d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 574\n# long form encoding of length\nmsg = 54657374\nresult = invalid\nsig = 303e02811d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 575\n# long form encoding of length\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302811c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 576\n# length contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 3082003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 577\n# length contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 303f0282001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 578\n# length contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930282001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 579\n# wrong length\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 580\n# wrong length\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 581\n# wrong length\nmsg = 54657374\nresult = invalid\nsig = 303d021e009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 582\n# wrong length\nmsg = 54657374\nresult = invalid\nsig = 303d021c009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 583\n# wrong length\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 584\n# wrong length\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021b5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 585\n# uint32 overflow in length\nmsg = 54657374\nresult = invalid\nsig = 3085010000003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 586\n# uint32 overflow in length\nmsg = 54657374\nresult = invalid\nsig = 30420285010000001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 587\n# uint32 overflow in length\nmsg = 54657374\nresult = invalid\nsig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930285010000001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 588\n# uint64 overflow in length\nmsg = 54657374\nresult = invalid\nsig = 308901000000000000003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 589\n# uint64 overflow in length\nmsg = 54657374\nresult = invalid\nsig = 3046028901000000000000001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 590\n# uint64 overflow in length\nmsg = 54657374\nresult = invalid\nsig = 3046021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93028901000000000000001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 591\n# length = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 30847fffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 592\n# length = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 304102847fffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 593\n# length = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302847fffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 594\n# length = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 3084ffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 595\n# length = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 30410284ffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 596\n# length = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930284ffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 597\n# length = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 3085ffffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 598\n# length = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 30420285ffffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 599\n# length = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930285ffffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 600\n# length = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 3088ffffffffffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 601\n# length = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 30450288ffffffffffffffff009b6fe4a1cbd4467d7584ae", - "382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 602\n# length = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930288ffffffffffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 603\n# incorrect length\nmsg = 54657374\nresult = invalid\nsig = 30ff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 604\n# incorrect length\nmsg = 54657374\nresult = invalid\nsig = 303d02ff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 605\n# incorrect length\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302ff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 606\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 607\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 303d0280009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 608\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302805fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 609\n# removing sequence\nmsg = 54657374\nresult = invalid\nsig = \n\n# tcId = 610\n# lonely sequence tag\nmsg = 54657374\nresult = invalid\nsig = 30\n\n# tcId = 611\n# appending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 612\n# prepending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 303f0000021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 613\n# appending unused 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 614\n# appending null value to sequence\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160500\n\n# tcId = 615\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3042498177303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 616\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 30412500303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 617\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 303f303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160004deadbeef\n\n# tcId = 618\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 30422222498177021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 619\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 304122212500021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 620\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3045221f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930004deadbeef021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 621\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932221498177021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 622\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9322202500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 623\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93221e021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160004deadbeef\n\n# tcId = 624\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3045aa00bb00cd00303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 625\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3043aa02aabb303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 626\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 30452225aa00bb00cd00021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 627\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 30432223aa02aabb021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 628\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932224aa00bb00cd00021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 629\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3043021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932222aa02aabb021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 630\n# truncated length of sequence\nmsg = 54657374\nresult = invalid\nsig = 3081\n\n# tcId = 631\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 3080303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 632\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 30412280021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 633\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932280021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 634\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 3080313d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 635\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 30412280031d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 636\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932280031c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 637\n# Replacing sequence with NULL\nmsg = 54657374\nresult = invalid\nsig = 0500\n\n# tcId = 638\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 2e3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 639\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 2f3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 640\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 313d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 641\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 323d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 642\n# changing tag", - " value of sequence\nmsg = 54657374\nresult = invalid\nsig = ff3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 643\n# dropping value of sequence\nmsg = 54657374\nresult = invalid\nsig = 3000\n\n# tcId = 644\n# using composition for sequence\nmsg = 54657374\nresult = invalid\nsig = 3041300102303c1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 645\n# truncate sequence\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1\n\n# tcId = 646\n# truncate sequence\nmsg = 54657374\nresult = invalid\nsig = 303c1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 647\n# indefinite length\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 648\n# indefinite length with truncated delimiter\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b11600\n\n# tcId = 649\n# indefinite length with additional element\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b11605000000\n\n# tcId = 650\n# indefinite length with truncated element\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116060811220000\n\n# tcId = 651\n# indefinite length with garbage\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000fe02beef\n\n# tcId = 652\n# indefinite length with nonempty EOC\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160002beef\n\n# tcId = 653\n# prepend empty sequence\nmsg = 54657374\nresult = invalid\nsig = 303f3000021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 654\n# append empty sequence\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1163000\n\n# tcId = 655\n# sequence of sequence\nmsg = 54657374\nresult = invalid\nsig = 303f303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 656\n# truncated sequence\nmsg = 54657374\nresult = invalid\nsig = 301f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93\n\n# tcId = 657\n# repeat element in sequence\nmsg = 54657374\nresult = invalid\nsig = 305b021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 658\n# removing integer\nmsg = 54657374\nresult = invalid\nsig = 301e021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 659\n# lonely integer tag\nmsg = 54657374\nresult = invalid\nsig = 301f02021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 660\n# lonely integer tag\nmsg = 54657374\nresult = invalid\nsig = 3020021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302\n\n# tcId = 661\n# appending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021f009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 662\n# appending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 663\n# prepending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021f0000009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 664\n# prepending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e00005fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 665\n# appending unused 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 666\n# appending null value to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021f009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 667\n# appending null value to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160500\n\n# tcId = 668\n# truncated length of integer\nmsg = 54657374\nresult = invalid\nsig = 30200281021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 669\n# truncated length of integer\nmsg = 54657374\nresult = invalid\nsig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930281\n\n# tcId = 670\n# Replacing integer with NULL\nmsg = 54657374\nresult = invalid\nsig = 30200500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 671\n# Replacing integer with NULL\nmsg = 54657374\nresult = invalid\nsig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930500\n\n# tcId = 672\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 673\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d011d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 674\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d031d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 675\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d041d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 676\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303dff1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 677\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 678\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93011c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 679\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93031c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 680\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93041c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 681\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93ff1c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 682\n# dropping value of integer\nmsg = 54657374\nresult = invalid\nsig = 30200200021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 683\n# dropping value of integer\nmsg = 54657374\nresult = invalid\nsig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930200\n\n# tcId", - " = 684\n# using composition for integer\nmsg = 54657374\nresult = invalid\nsig = 30412221020100021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 685\n# using composition for integer\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93222002015f021be8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 686\n# modify first byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d029b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 687\n# modify first byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5de8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 688\n# modify last byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee13021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 689\n# modify last byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b196\n\n# tcId = 690\n# truncate integer\nmsg = 54657374\nresult = invalid\nsig = 303c021c009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 691\n# truncate integer\nmsg = 54657374\nresult = invalid\nsig = 303c021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 692\n# truncate integer\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021b5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1\n\n# tcId = 693\n# truncate integer\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021be8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 694\n# leading ff in integer\nmsg = 54657374\nresult = invalid\nsig = 303e021eff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 695\n# leading ff in integer\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021dff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 696\n# infinity\nmsg = 54657374\nresult = invalid\nsig = 3021090180021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 697\n# infinity\nmsg = 54657374\nresult = invalid\nsig = 3022021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93090180\n\n# tcId = 698\n# replacing integer with zero\nmsg = 54657374\nresult = invalid\nsig = 3021020100021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 699\n# replacing integer with zero\nmsg = 54657374\nresult = invalid\nsig = 3022021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93020100\n\n# tcId = 700\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d0156667b48514d3e5d546ca89ff45ada90474113ed248b873430ab57f0021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 701\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303c021ce0794dfb465b4e9d969cb3d0616b4b8468dbaf85aec085b2b7008536021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 702\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021dff64901b5e342bb9828a7b51c7d51cecf5a7f19e469659f98c8c2a116d021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 703\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303c021c1f86b204b9a4b16269634c2f9e94b47b9724507a513f7a4d48ff7aca021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 704\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021dfea99984b7aeb2c1a2ab9357600ba5256fb8beec12db7478cbcf54a810021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 705\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d019b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 706\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303c021c64901b5e342bb9828a7b51c7d51cecf5a7f19e469659f98c8c2a116d021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 707\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d011adeb9ed974f878dc2fc26f4bf86ffda5f7abe6c26ebabf9b8181a73\n\n# tcId = 708\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021ca4f18ca08c5d97ce052c32252c9770ce81155a04b120aa783e6d47b9\n\n# tcId = 709\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021ca017dcb8ee2970521bebd37309f0c7ab8fb7f3c793f9d4c704bd4eea\n\n# tcId = 710\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5b0e735f73a26831fad3cddad3688f317eeaa5fb4edf5587c192b847\n\n# tcId = 711\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021dfee521461268b078723d03d90b40790025a0854193d914540647e7e58d\n\n# tcId = 712\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d015fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 713\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d00a017dcb8ee2970521bebd37309f0c7ab8fb7f3c793f9d4c704bd4eea\n\n# tcId = 714\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 715\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020100020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 716\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020100020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 717\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201000201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 718\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such", - " as r=1, s=0 lead to forgeries.\n\n# tcId = 719\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 720\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 721\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 722\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 723\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 724\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802010002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 725\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008020100090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 726\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 727\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020101020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 728\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020101020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 729\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201010201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 730\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 731\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 732\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 733\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 734\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 735\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 736\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802010102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 737\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008020101090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 738\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021dff450969597a870820211805983688387a10cd4d", - "cc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 739\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201ff020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 740\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201ff020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 741\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201ff0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 742\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 743\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 744\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 745\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 746\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 747\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 748\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 308201080201ff02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 749\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30080201ff090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 750\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 751\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 752\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 753\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 754\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 755\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 756\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 757\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 758\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d02", - "1c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 759\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 760\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 761\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 762\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 763\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 764\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 765\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 766\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 767\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 768\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 769\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 770\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 771\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 772\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 773\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 774\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 775\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b", - "233bae580c0bcd5695c020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 776\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 777\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 778\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 779\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 780\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 781\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 782\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 783\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 784\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 785\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 786\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 787\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 788\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 789\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 790\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 791\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 792\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 793\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. ", - "In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 794\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 795\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 796\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 797\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 798\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 799\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 800\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 801\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e0201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 802\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 803\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 804\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 805\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 806\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 807\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 808\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 809\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 810\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n#", - " cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 811\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 812\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 813\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d01000000000000000000000000000000000000000000000000000000000201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 814\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 815\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 816\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 817\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 818\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 819\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 820\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d010000000000000000000000000000000000000000000000000000000002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 821\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d0100000000000000000000000000000000000000000000000000000000090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 822\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 823\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 824\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 825\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd0", - "0233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd6670201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 826\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 827\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 828\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 829\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 830\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 831\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 832\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082020a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd66702820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 833\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 834\n# S", - "ignatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 835\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe01020100\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 836\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe01020101\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 837\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe010201ff\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 838\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 839\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 840\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 841\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 842\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 843\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d0100000000000000000000000000000000000000000000000000000000\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 844\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010a090380fe0102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 845\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 300a090380fe01090380fe01\n# Some implementations of DSA do not properly check for boundaries. In some\n# cases the modular inverse of 0 is simply 0. As a result there are\n# implementations where values such as r=1, s=0 lead to forgeries.\n\n# tcId = 846\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303d021d00a771ef48c2916d48ba9ece53cafb9acb3cf317a78216fae144c88fb3021c65663b70365747f4392d480aaf12b50b162d2ce58b61ccbee88a8df9\n\n# tcId = 847\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303e021d00946645d757f0adfbd301c9ee2c08bf0e059a5602de9525dbde789f81021d00a30eb7f2a5d9870c360315bf6d70d83e7b206bbc5ed7d2ded4bacb24\n\n# tcId = 848\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303d021c70d3d4efc14853acf33f1060fee06a072773b4c9350d205e618646ab021d00b51e853022ff4922f955458e6b22f9454207a982927db32c76ee3344\n\n# tcId = 849\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303c021c6ce7d91e02a62558e8dacd3cf180f81952a091845bbf47bf8fb9f48d021c1e6e4769bbbebc2fa9f819796e7b968c8b699c5f72ee517441c20359\n\n# tcId = 850\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303d021c04aa8a8b3f9e1c3f2304070fd797634cec352bfda916bb7a7f20a174021d00a0bb9b091b921951241fae650aab087ac896ed190a3f7cf7aaa2300d\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DSAPublicKey]\n[key.y = 0848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]\n[keyDer = 308203433082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c7", - "85ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde03820106000282010100848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]\n[sha = SHA-256]\n\n# tcId = 851\n# r,s = 1,1\nmsg = 54657374\nresult = valid\nsig = 3006020101020101\n\n# tcId = 852\n# r,s = 1,5\nmsg = 54657374\nresult = valid\nsig = 3006020101020105\n\n# tcId = 853\n# u2 small\nmsg = 54657374\nresult = valid\nsig = 3022020101021d009592121ed12d93197f1ffb863ac63937f28ef4f62f1e009a30aabab1\n\n# tcId = 854\n# s == q-1\nmsg = 54657374\nresult = valid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DSAPublicKey]\n[key.y = 629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde038201050002820100629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]\n[sha = SHA-256]\n\n# tcId = 855\n# s == 1\nmsg = 54657374\nresult = valid\nsig = 3021021c5a252f4fc55618747fd94b13c9bee62bb958d85777cb07dd90710d24020101\n\n", +static const char *kData94[] = { + "# Imported from Wycheproof's dsa_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: DSA\n# Generator version: 0.8r12\n\n[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]\n[key.keySize = 1024]\n[key.p = 00b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]\n[key.q = 00b90b38ba0a50a43ec6898d3f9b68049777f489b1]\n[key.type = DsaPublicKey]\n[key.y = 173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]\n[keyDer = 308201b63082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818400028180173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]\n[sha = SHA-1]\n\n# tcId = 1\n# Legacy:ASN encoding of r misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 302c0214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\nflags = NoLeadingZero\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 3\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30812d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 4\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 5\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 7\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 8\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 9\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 10\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 11\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 12\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 13\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 14\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 302d028000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0280496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 17\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 18\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 19\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 20\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f0000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 21\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 22\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0500\n\n# tcId = 23\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032498177302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30312500302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032221a498177021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303122192500021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30352217021500aa6a258fbf7d90e15614676d377df8b10e38db4a0004deadbeef0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a22194981770214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221825000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a22160214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef\n\n# tcId = 32\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035aa00bb00cd00302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3033aa02aabb302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035221daa00bb00cd00021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = i", + "nvalid\nsig = 3033221baa02aabb021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a221caa00bb00cd000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3033021500aa6a258fbf7d90e15614676d377df8b10e38db4a221aaa02aabb0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 38\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 39\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30312280021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 42\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30312280031500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800314496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 45\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 46\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 322d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 51\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 52\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3031300102302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 53\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 55\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 56\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b00\n\n# tcId = 57\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b05000000\n\n# tcId = 58\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b060811220000\n\n# tcId = 59\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000fe02beef\n\n# tcId = 60\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0002beef\n\n# tcId = 61\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f3000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 62\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b3000\n\n# tcId = 63\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3030021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3bbf7f00\n\n# tcId = 64\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 65\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3017021500aa6a258fbf7d90e15614676d377df8b10e38db4a\n\n# tcId = 66\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3043021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 67\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302e02811500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a028114496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 69\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 302f0282001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02820014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 71\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021600aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021400aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 75\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30320285010000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a02850100000014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 77\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3036028901000000000000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3036021500aa6a258fbf7d90e15614676d377df8b10e38db4a0289010000000000000014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 79\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 303102847fffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 80\n# length of integer = 2**", + "31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a02847fffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 81\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30310284ffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a0284ffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 83\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30320285ffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a0285ffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 85\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30350288ffffffffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a0288ffffffffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 87\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d02ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02ff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 30160214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3017020214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3018021500aa6a258fbf7d90e15614676d377df8b10e38db4a02\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f0217000000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02160000496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a05000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 301802810214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 301805000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d011500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d031500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d041500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302dff1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0014496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0114496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0314496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0414496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4aff14496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 301802000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 303122190201000214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221802014902136d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021502aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02144b6d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38dbca0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964cbb\n\n# tcId = 121\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021400aa6a258fbf7d90e15614676d377df8b10e38db0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a02136d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 124\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 302e0216ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215ff496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 126\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 30190901800214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = in", + "valid\nsig = 301a021500aa6a258fbf7d90e15614676d377df8b10e38db4a090180\n\n# tcId = 128\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 30190201000214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 301a021500aa6a258fbf7d90e15614676d377df8b10e38db4a020100\n\n# tcId = 130\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d02150163755e49c9ce35201c9df4acd2e5fd48862d64fb0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302c0214f15eecd5b52ceca28f8ada2d9c15f419964451990214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d0215ff5595da7040826f1ea9eb9892c882074ef1c724b60214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302c02140ea1132a4ad3135d707525d263ea0be669bbae670214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d0215fe9c8aa1b63631cadfe3620b532d1a02b779d29b050214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021501aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302c02145595da7040826f1ea9eb9892c882074ef1c724b60214496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a02150102788adac0472173f95b86d0bba3c7e9b38ad5ec\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a021490621966aba5d8f66c486c5184d3bebac3a1c28a\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214b692addf4a0982cacd2e066edfc43cadc469b3c5\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02146f9de699545a270993b793ae7b2c41453c5e3d76\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215fefd8775253fb8de8c06a4792f445c38164c752a14\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a021501496d5220b5f67d3532d1f991203bc3523b964c3b\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 313233343030\nresult = invalid\nsig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a021500b692addf4a0982cacd2e066edfc43cadc469b3c5\n\n# tcId = 144\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201000215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 145\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 146\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 147\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 148\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010002145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 149\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010002145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 150\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 151\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 152\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 153\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201000215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 154\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702010002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 155\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 156\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 157\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201010215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 158\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 159\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 160\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 161\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010102145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 162\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902010102145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 163\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 164\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 165\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 166\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201010215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 167\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702010102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 168\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 169\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 170\n# Signatures with special case values for r and s.\nms", + "g = 313233343030\nresult = invalid\nsig = 301a0201ff0215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 171\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 172\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 173\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 174\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30190201ff02145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 175\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30190201ff02145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 176\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 177\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 178\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 179\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0201ff0215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 180\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3081870201ff02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 181\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 182\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 183\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d80215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 184\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d8020100\nflags = EdgeCase\n\n# tcId = 185\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d8020101\nflags = EdgeCase\n\n# tcId = 186\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d80201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d802145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 188\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d802145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 189\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d8021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 190\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d8021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 191\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d8021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 192\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d80215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 193\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02145c859c5d0528521f6344c69fcdb4024bbbfa44d802818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 194\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b02145c859c5d0528521f6344c69fcdb4024bbbfa44d8090380fe01\nflags = EdgeCase\n\n# tcId = 195\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d8090142\nflags = EdgeCase\n\n# tcId = 196\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d90215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 197\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d9020100\nflags = EdgeCase\n\n# tcId = 198\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d9020101\nflags = EdgeCase\n\n# tcId = 199\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d90201ff\nflags = EdgeCase\n\n# tcId = 200\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d902145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 201\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302c02145c859c5d0528521f6344c69fcdb4024bbbfa44d902145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 202\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d9021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 203\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d9021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 204\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d9021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 205\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d02145c859c5d0528521f6344c69fcdb4024bbbfa44d90215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 206\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02145c859c5d0528521f6344c69fcdb4024bbbfa44d902818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 207\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b02145c859c5d0528521f6344c69fcdb4024bbbfa44d9090380fe01\nflags = EdgeCase\n\n# tcId = 208\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301902145c859c5d0528521f6344c69fcdb4024bbbfa44d9090142\nflags = EdgeCase\n\n# tcId = 209\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f", + "489b00215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 210\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b0020100\nflags = EdgeCase\n\n# tcId = 211\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b0020101\nflags = EdgeCase\n\n# tcId = 212\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b00201ff\nflags = EdgeCase\n\n# tcId = 213\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b002145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 214\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b002145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 215\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b0021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 216\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b0021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 217\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b0021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 218\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b00215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 219\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 220\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b0090380fe01\nflags = EdgeCase\n\n# tcId = 221\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b0090142\nflags = EdgeCase\n\n# tcId = 222\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b10215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 223\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b1020100\nflags = EdgeCase\n\n# tcId = 224\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b1020101\nflags = EdgeCase\n\n# tcId = 225\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b10201ff\nflags = EdgeCase\n\n# tcId = 226\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b102145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 227\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b102145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 228\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 229\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 230\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 231\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b10215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 232\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 233\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b1090380fe01\nflags = EdgeCase\n\n# tcId = 234\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b1090142\nflags = EdgeCase\n\n# tcId = 235\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b20215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 236\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b2020100\nflags = EdgeCase\n\n# tcId = 237\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b2020101\nflags = EdgeCase\n\n# tcId = 238\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b20201ff\nflags = EdgeCase\n\n# tcId = 239\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b202145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 240\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021500b90b38ba0a50a43ec6898d3f9b68049777f489b202145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 241\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 242\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 243\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 244\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b20215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 245\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b202818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 246\n# Signatures with", + " special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b2090380fe01\nflags = EdgeCase\n\n# tcId = 247\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b2090142\nflags = EdgeCase\n\n# tcId = 248\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e02150100000000000000000000000000000000000000000215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 249\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0215010000000000000000000000000000000000000000020100\nflags = EdgeCase\n\n# tcId = 250\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0215010000000000000000000000000000000000000000020101\nflags = EdgeCase\n\n# tcId = 251\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a02150100000000000000000000000000000000000000000201ff\nflags = EdgeCase\n\n# tcId = 252\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021501000000000000000000000000000000000000000002145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 253\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302d021501000000000000000000000000000000000000000002145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 254\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 255\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 256\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 257\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 302e02150100000000000000000000000000000000000000000215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 258\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b021501000000000000000000000000000000000000000002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 259\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c0215010000000000000000000000000000000000000000090380fe01\nflags = EdgeCase\n\n# tcId = 260\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301a0215010000000000000000000000000000000000000000090142\nflags = EdgeCase\n\n# tcId = 261\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 262\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f020100\nflags = EdgeCase\n\n# tcId = 263\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f020101\nflags = EdgeCase\n\n# tcId = 264\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0201ff\nflags = EdgeCase\n\n# tcId = 265\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f02145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 266\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819a02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f02145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 267\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 268\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 269\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 270\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 271\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3082010802818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 272\n# S", + "ignatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818902818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f090380fe01\nflags = EdgeCase\n\n# tcId = 273\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f090142\nflags = EdgeCase\n\n# tcId = 274\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe010215ff46f4c745f5af5bc1397672c06497fb68880b764f\nflags = EdgeCase\n\n# tcId = 275\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008090380fe01020100\nflags = EdgeCase\n\n# tcId = 276\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008090380fe01020101\nflags = EdgeCase\n\n# tcId = 277\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008090380fe010201ff\nflags = EdgeCase\n\n# tcId = 278\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b090380fe0102145c859c5d0528521f6344c69fcdb4024bbbfa44d8\nflags = EdgeCase\n\n# tcId = 279\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301b090380fe0102145c859c5d0528521f6344c69fcdb4024bbbfa44d9\nflags = EdgeCase\n\n# tcId = 280\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\nflags = EdgeCase\n\n# tcId = 281\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b1\nflags = EdgeCase\n\n# tcId = 282\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b2\nflags = EdgeCase\n\n# tcId = 283\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 301c090380fe010215010000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 284\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 308189090380fe0102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f\nflags = EdgeCase\n\n# tcId = 285\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 300a090380fe01090380fe01\nflags = EdgeCase\n\n# tcId = 286\n# Signatures with special case values for r and s.\nmsg = 313233343030\nresult = invalid\nsig = 3008090380fe01090142\nflags = EdgeCase\n\n# tcId = 287\n# Signature encoding contains wrong type.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 288\n# Signature encoding contains wrong type.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 289\n# Signature encoding contains wrong type.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 290\n# Signature encoding contains wrong type.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 291\n# Signature encoding contains wrong type.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 292\n# Signature encoding contains wrong type.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 293\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302e0215008854bdb52d20ff9ea499483fba4d3c101a586fc7021500b23045900995d3fe3c4c638a3e06458a25a1e9dd\n\n# tcId = 294\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302c02144f6bf18941abbf33211d9561a14f9aebd03f4e940214218cda350def7f75617fcc799d0cf2cf6b23438d\n\n# tcId = 295\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302c0214459eaf0886160081b47fc573fb3d152d680d3b4b02144293dbb94db4c930d67e27fc4ec8538b58d1c7cd\n\n# tcId = 296\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302c02140a6c12b8ff5ca21c4ea0c7acea38d76fd170b97f021429ce2cf2672fa640031680dce2223932f613f6a5\n\n# tcId = 297\n# random signature\nmsg = 313233343030\nresult = valid\nsig = 302c021434bce4773e5e11875ea2202bc33e01fe00b3321a02142b294e01a97296d84e4c60bfba05d2760981c920\n\n[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]\n[key.keySize = 1024]\n[key.p = 00b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]\n[key.q = 00b90b38ba0a50a43ec6898d3f9b68049777f489b1]\n[key.type = DsaPublicKey]\n[key.y = 713e9f8108a6a7075485a37ce1a3b040cce563a0445614fe099fb1bffd68acb36f9e04d8ad17ace3c136da66f730eb7ff18936424ffa4e5ae5b1e7dac375d8d164697254b8b7e848f5e79da25c79df5c0727d5da3498405cd0f4e46d136c351d703cc4bf0d3f4fbb165392888684964a93ad30fa179488cad4a6655dd4fa9754]\n[keyDer = 308201b63082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818400028180713e9f8108a6a7075485a37ce1a3b040cce563a0445614fe099fb1bffd68acb36f9e04d8ad17ace3c136da66f730eb7ff18936424ffa4e5ae5b1e7dac375d8d164697254b8b7e848f5e79da25c79df5c0727d5da3498405cd0f4e46d136c351d703cc4bf0d3f4fbb165392888684964a93ad30fa179488cad4a6655dd4fa9754]\n[sha = SHA-1]\n\n# tcId = 298\n# r,s = 1,1\nmsg = 54657374\nresult = valid\nsig = 3006020101020101\n\n# tcId = 299\n# r,s = 1,5\nmsg = 54657374\nresult = valid\nsig = 3006020101020105\n\n# tcId = 300\n# u2 small\nmsg = 54657374\nresult = valid\nsig = 3019020101021425023e8b9ba9ba72f481e90cb8ae67517e641b8a\n\n# tcId = 301\n# s == q-1\nmsg = 54657374\nresult = valid\nsig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b0\n\n[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]\n[key.keySize = 1024]\n[key.p = 00b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]\n[key.q = 00b90b38ba0a50a43ec6898d3f9b68049777f489b1]\n[key.type = DsaPublicKey]\n[key.y = 61fe5b61f6d555ada7dc0ebac3459fccd8dfbad18ba94dbea52437cd7fb431df404d4738c594e720a6d786275acd02259ca613a08a2de118d0150d2ccae602102aca0cd03666a53f67c0b9943df5046c15baeaf496a9f018b7c939de1509de71ce47dd6f44c57f4e01e569be46932773190c154470cefbd1f4af82d28e4b31]\n[keyDer = 308201b43082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d", + "3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818200027f61fe5b61f6d555ada7dc0ebac3459fccd8dfbad18ba94dbea52437cd7fb431df404d4738c594e720a6d786275acd02259ca613a08a2de118d0150d2ccae602102aca0cd03666a53f67c0b9943df5046c15baeaf496a9f018b7c939de1509de71ce47dd6f44c57f4e01e569be46932773190c154470cefbd1f4af82d28e4b31]\n[sha = SHA-1]\n\n# tcId = 302\n# s == 1\nmsg = 54657374\nresult = valid\nsig = 3019021462ba827381396dc44facc66c344f91788f11c6fc020101\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 1e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201001e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[sha = SHA-224]\n\n# tcId = 303\n# Legacy:ASN encoding of s misses leading 0\nmsg = 48656c6c6f\nresult = acceptable\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\nflags = NoLeadingZero\n\n# tcId = 304\n# valid\nmsg = 48656c6c6f\nresult = valid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 305\n# long form encoding of length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 30813d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 306\n# length of sequence contains leading 0\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 307\n# wrong length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 308\n# wrong length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 309\n# uint32 overflow in length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 3085010000003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 310\n# uint64 overflow in length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 308901000000000000003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 311\n# length of sequence = 2**31 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30847fffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 312\n# length of sequence = 2**32 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3084ffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 313\n# length of sequence = 2**40 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3085ffffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 314\n# length of sequence = 2**64 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3088ffffffffffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 315\n# incorrect length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 30ff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 316\n# indefinite length without termination\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 317\n# indefinite length without termination\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d02801e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 318\n# indefinite length without termination\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd028000ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 319\n# removing sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = \n\n# tcId = 320\n# lonely sequence tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 30\n\n# tcId = 321\n# appending 0's to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 322\n# prepending 0's to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f0000021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe878623", + "6\n\n# tcId = 323\n# appending unused 0's to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 324\n# appending null value to sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360500\n\n# tcId = 325\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042498177303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 326\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 30412500303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 327\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360004deadbeef\n\n# tcId = 328\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 30422221498177021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 329\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 304122202500021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 330\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045221e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0004deadbeef021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 331\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2222498177021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 332\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd22212500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 333\n# including garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd221f021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360004deadbeef\n\n# tcId = 334\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045aa00bb00cd00303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 335\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3043aa02aabb303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 336\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 30452224aa00bb00cd00021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 337\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 30432222aa02aabb021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 338\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2225aa00bb00cd00021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 339\n# including undefined tags\nmsg = 48656c6c6f\nresult = invalid\nsig = 3043021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2223aa02aabb021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 340\n# truncated length of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 3081\n\n# tcId = 341\n# using composition with indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 342\n# using composition with indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 30412280021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 343\n# using composition with indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2280021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 344\n# using composition with wrong tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080313d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 345\n# using composition with wrong tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 30412280031c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 346\n# using composition with wrong tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2280031d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 347\n# Replacing sequence with NULL\nmsg = 48656c6c6f\nresult = invalid\nsig = 0500\n\n# tcId = 348\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 2e3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 349\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 2f3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 350\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 313d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 351\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 323d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 352\n# changing tag value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = ff3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 353\n# dropping value of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 3000\n\n# tcId = 354\n# using composition for sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041300102303c1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 355\n# truncated sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862\n\n# tcId = 356\n# truncated sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 357\n# indefinite length\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 358\n# indefinite length with truncated delimiter\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe878623600\n\n# tcId = 359\n# indefinite length with additional element\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe878623605000000\n\n# tcId = 360\n# indefinite length with truncated element\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236060811220000\n\n# tcId = 361\n# indefinite length with garbage\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000fe02beef\n\n# tcId = 362\n# indefinite length with nonempty EOC", + "\nmsg = 48656c6c6f\nresult = invalid\nsig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360002beef\n\n# tcId = 363\n# prepend empty sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f3000021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 364\n# append empty sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862363000\n\n# tcId = 365\n# append garbage with high tag number\nmsg = 48656c6c6f\nresult = invalid\nsig = 3040021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236bf7f00\n\n# tcId = 366\n# sequence of sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 367\n# truncated sequence: removed last 1 elements\nmsg = 48656c6c6f\nresult = invalid\nsig = 301e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd\n\n# tcId = 368\n# repeating element in sequence\nmsg = 48656c6c6f\nresult = invalid\nsig = 305c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 369\n# long form encoding of length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e02811c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 370\n# long form encoding of length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02811d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 371\n# length of integer contains leading 0\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f0282001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 372\n# length of integer contains leading 0\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0282001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 373\n# wrong length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 374\n# wrong length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021b1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 375\n# wrong length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021e00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 376\n# wrong length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 377\n# uint32 overflow in length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 30420285010000001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 378\n# uint32 overflow in length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0285010000001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 379\n# uint64 overflow in length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3046028901000000000000001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 380\n# uint64 overflow in length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3046021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd028901000000000000001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 381\n# length of integer = 2**31 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 304102847fffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 382\n# length of integer = 2**31 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02847fffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 383\n# length of integer = 2**32 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30410284ffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 384\n# length of integer = 2**32 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0284ffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 385\n# length of integer = 2**40 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30420285ffffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 386\n# length of integer = 2**40 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0285ffffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 387\n# length of integer = 2**64 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 30450288ffffffffffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 388\n# length of integer = 2**64 - 1\nmsg = 48656c6c6f\nresult = invalid\nsig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0288ffffffffffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 389\n# incorrect length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d02ff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 390\n# incorrect length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02ff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 391\n# removing integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 301f021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 392\n# lonely integer tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 302002021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 393\n# lonely integer tag\nmsg = 48656c6c6f\nresult = invalid\nsig = 301f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02\n\n# tcId = 394\n# appending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021e1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 395\n# appending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000\n\n# tcId = 396\n# prepending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021e00001e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 397\n# prepending 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f000000ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 398\n# appending unused 0's to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 399\n# appending null value to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021e1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 400\n# appending null value to integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843da", + "b916173bb8c9cd021f00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360500\n\n# tcId = 401\n# truncated length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210281021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 402\n# truncated length of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0281\n\n# tcId = 403\n# Replacing integer with NULL\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 404\n# Replacing integer with NULL\nmsg = 48656c6c6f\nresult = invalid\nsig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0500\n\n# tcId = 405\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 406\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d011c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 407\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d031c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 408\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d041c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 409\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303dff1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 410\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 411\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd011d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 412\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd031d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 413\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd041d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 414\n# changing tag value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cdff1d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 415\n# dropping value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210200021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 416\n# dropping value of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0200\n\n# tcId = 417\n# using composition for integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041222002011e021b41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 418\n# using composition for integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2221020100021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 419\n# modify first byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1c41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 420\n# modify first byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d02ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 421\n# modify last byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c94d021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 422\n# modify last byte of integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862b6\n\n# tcId = 423\n# truncated integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021b1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 424\n# truncated integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021b41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 425\n# truncated integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862\n\n# tcId = 426\n# leading ff in integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021dff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 427\n# leading ff in integer\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021eff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 428\n# replaced integer by infinity\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022090180021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 429\n# replaced integer by infinity\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd090180\n\n# tcId = 430\n# replacing integer with zero\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 431\n# replacing integer with zero\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd020100\n\n# tcId = 432\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00d9384b2032d060e59848f87cb4535936bc25fa77959e96d7f88e332a021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 433\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021dff634b1dd327de7125da7903ad2163ca2addc096101fd395567ee36070021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 434\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021ce1be4b8652a896fa469f01eb15246e4f330cb7bc2546e9e8c4473633021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 435\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d009cb4e22cd8218eda2586fc52de9c35d5223f69efe02c6aa9811c9f90021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 436\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021dff26c7b4dfcd2f9f1a67b707834baca6c943da05886a6169280771ccd6021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 437\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d011e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 438\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00e1be4b8652a896fa469f01eb15246e4f330cb7bc2546e9e8c4473633021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 439\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d0168dcf02f57b0caef7ddc183bee1ca94ee09c1a02ee4b0200a54dcb93\n\n# tcId = 440\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb9", + "1b0ccf34843dab916173bb8c9cd021cf2efc2e24cbedb2fc00c236c5b2d1a430236b59b7880007f2ba2f8d9\n\n# tcId = 441\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021dff5219a6772dc82cf0610be22bdb5b1e370e969830cc9a7ec017879dca\n\n# tcId = 442\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c0d103d1db34124d03ff3dc93a4d2e5bcfdc94a64877fff80d45d0727\n\n# tcId = 443\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021dfe97230fd0a84f35108223e7c411e356b11f63e5fd11b4fdff5ab2346d\n\n# tcId = 444\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d01ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236\n\n# tcId = 445\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c5219a6772dc82cf0610be22bdb5b1e370e969830cc9a7ec017879dca\n\n# tcId = 446\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 447\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 448\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 449\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 450\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 451\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 452\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 453\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 454\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 455\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020100021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 456\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802010002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 457\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 458\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 459\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 460\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 461\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 462\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 463\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 464\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 465\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 466\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 467\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 468\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022020101021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 469\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802010102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 470\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 471\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 472\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 473\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 474\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 475\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 476\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 477\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 478\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 479\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 480\n# Signatures with special case values ", + "for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 481\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30220201ff021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 482\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 308201080201ff02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 483\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 484\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 485\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 486\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020100\nflags = EdgeCase\n\n# tcId = 487\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020101\nflags = EdgeCase\n\n# tcId = 488\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae0201ff\nflags = EdgeCase\n\n# tcId = 489\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 490\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 491\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 492\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 493\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 494\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 495\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 496\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae090380fe01\nflags = EdgeCase\n\n# tcId = 497\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae090142\nflags = EdgeCase\n\n# tcId = 498\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 499\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020100\nflags = EdgeCase\n\n# tcId = 500\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020101\nflags = EdgeCase\n\n# tcId = 501\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af0201ff\nflags = EdgeCase\n\n# tcId = 502\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 503\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 504\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 505\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 506\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 507\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 508\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 509\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af090380fe01\nflags = EdgeCase\n\n# tcId = 510\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af090142\nflags = EdgeCase\n\n# tcId = 511\n# Signatures with special case values for r and s.\nmsg = ", + "48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 512\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c020100\nflags = EdgeCase\n\n# tcId = 513\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c020101\nflags = EdgeCase\n\n# tcId = 514\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c0201ff\nflags = EdgeCase\n\n# tcId = 515\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 516\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 517\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 518\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 519\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 520\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 521\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 522\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c090380fe01\nflags = EdgeCase\n\n# tcId = 523\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c090142\nflags = EdgeCase\n\n# tcId = 524\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 525\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020100\nflags = EdgeCase\n\n# tcId = 526\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020101\nflags = EdgeCase\n\n# tcId = 527\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0201ff\nflags = EdgeCase\n\n# tcId = 528\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 529\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 530\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 531\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 532\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 533\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 534\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 535\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090380fe01\nflags = EdgeCase\n\n# tcId = 536\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090142\nflags = EdgeCase\n\n# tcId = 537\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 538\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020100\nflags = EdgeCase\n\n# tcId = 539\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020101\nflags = EdgeCase\n\n# tcId = 540\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e0201ff\nflags = EdgeCase\n\n# tcId = 541\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 542\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 543\n# Signatures with spe", + "cial case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 544\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 545\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 546\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 547\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 548\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090380fe01\nflags = EdgeCase\n\n# tcId = 549\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090142\nflags = EdgeCase\n\n# tcId = 550\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 551\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020100\nflags = EdgeCase\n\n# tcId = 552\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020101\nflags = EdgeCase\n\n# tcId = 553\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d01000000000000000000000000000000000000000000000000000000000201ff\nflags = EdgeCase\n\n# tcId = 554\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 555\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 556\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 557\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 558\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 559\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 560\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30820124021d010000000000000000000000000000000000000000000000000000000002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 561\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024021d0100000000000000000000000000000000000000000000000000000000090380fe01\nflags = EdgeCase\n\n# tcId = 562\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000090142\nflags = EdgeCase\n\n# tcId = 563\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 564\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020100\nflags = EdgeCase\n\n# tcId = 565\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020101\nflags = EdgeCase\n\n# tcId = 566\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd66", + "70201ff\nflags = EdgeCase\n\n# tcId = 567\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 568\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 569\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 570\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 571\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 572\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 573\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082020a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd66702820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 574\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090380fe01\nflags = EdgeCase\n\n# tcId = 575\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090142\nflags = EdgeCase\n\n# tcId = 576\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 577\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008090380fe01020100\nflags = EdgeCase\n\n# tcId = 578\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008090380fe01020101\nflags = EdgeCase\n\n# tcId = 579\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008090380fe010201ff\nflags = EdgeCase\n\n# tcId = 580\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 581\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 582\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 583\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b2", + "33bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 584\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 585\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3024090380fe01021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 586\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3082010a090380fe0102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 587\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 300a090380fe01090380fe01\nflags = EdgeCase\n\n# tcId = 588\n# Signatures with special case values for r and s.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3008090380fe01090142\nflags = EdgeCase\n\n# tcId = 589\n# Signature encoding contains wrong type.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 590\n# Signature encoding contains wrong type.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 591\n# Signature encoding contains wrong type.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 592\n# Signature encoding contains wrong type.\nmsg = 48656c6c6f\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 593\n# Signature encoding contains wrong type.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3003020101\n\n# tcId = 594\n# Signature encoding contains wrong type.\nmsg = 48656c6c6f\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 595\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303e021d0085c771ecf9c77debae0c54f749dba4b07ae519ca1037091dd6f294cf021d00a02f74985198cf88e310e55277ba598b336164850fdd5308a7beb1a7\n\n# tcId = 596\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303c021c043cd5580b8bfb5975edef132d6de7848096392e0adf46342bad7bb7021c142b6572ce61b032d45d4597a88c4e54dd593fa7ca6c8e6882df77f6\n\n# tcId = 597\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303d021d00914e4f7ba8df44cf63c57d219c6b5da093fe3a94604bd2ef88b630f5021c6a7b804cbfc69937903bbd0c8f67306a6e8bf0d0501ae3f3190dca19\n\n# tcId = 598\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303d021c0a8ffb160da0ffe319e7d3a5ea299f531f8421bfdcfd6bb66c6adcf2021d008a75e2cbaa709b2b5d81d346f6e90a8dc353c5835393b1d5a6653f3c\n\n# tcId = 599\n# random signature\nmsg = 48656c6c6f\nresult = valid\nsig = 303d021d00a7f164d32f44684fcde89f0fa9647128bc0c290f08c9b9e6f7db3fe1021c2dca34db2f320c95de4e9de4986bbf50860753d5deb728237678afb6\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 6978b68d31334ee5bc7b3e91ab6c2336fab45c64836bd92cb5337b734db9e8e44f889f8869829f4fe174dc9344c164a0ba5b0126259ba8a43f607564fa4a1d0d49645e1d5886a1fc485e2fe91e56eae330da05e17b0b3d018c290285b249bc409e7af54300fc7c3eb34911457e2371931ad9302e8450cd95df3d561ea0ad94d0a2eabcafe0dd6728fb280029b556d9f4fa7c0f46a7804329936708e97e11fc22b2a50761a890c65b5fea2a1a4172f6be9eaa60e738cdf60c015142e2e562bb62a11e810ccdf0bf633307382f2d9a9769b115dfcdab4bacae73feca289db209dce34cbe126e8c7f9d9e4f8f711349a608d567b48c050e9dfb32bc184ecaa4f0f0]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201006978b68d31334ee5bc7b3e91ab6c2336fab45c64836bd92cb5337b734db9e8e44f889f8869829f4fe174dc9344c164a0ba5b0126259ba8a43f607564fa4a1d0d49645e1d5886a1fc485e2fe91e56eae330da05e17b0b3d018c290285b249bc409e7af54300fc7c3eb34911457e2371931ad9302e8450cd95df3d561ea0ad94d0a2eabcafe0dd6728fb280029b556d9f4fa7c0f46a7804329936708e97e11fc22b2a50761a890c65b5fea2a1a4172f6be9eaa60e738cdf60c015142e2e562bb62a11e810ccdf0bf633307382f2d9a9769b115dfcdab4bacae73feca289db209dce34cbe126e8c7f9d9e4f8f711349a608d567b48c050e9dfb32bc184ecaa4f0f0]\n[sha = SHA-224]\n\n# tcId = 600\n# r,s = 1,1\nmsg = 54657374\nresult = valid\nsig = 3006020101020101\n\n# tcId = 601\n# r,s = 1,5\nmsg = 54657374\nresult = valid\nsig = 3006020101020105\n\n# tcId = 602\n# u2 small\nmsg = 54657374\nresult = valid\nsig = 3022020101021d009592121ed12d93197f1ffb863ac63937f28ef4f62f1e009a30aabab1\n\n# tcId = 603\n# s == q-1\nmsg = 54657374\nresult = valid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 2a64953bde40789f80ed8227192286115b92d09d5de96904e803ec4ecfbd73e0f08e82910febf19fa3cdc55ff20eb970d9c712f44785c0fd592c17fb43f4625357a4ac8a1a628f7", + "2040ae5360839c7c1f6b214e7a15530fe22887139ea0f05a9daf9d95bd6b7467abf9107c9fbe31e36330276eeccce3d59635206d60ca256f9af60627626b0594984b5a075c42c42067fa8c330f258bcf145df27a97da8ee419b54e3ab296c7ce9ef6a0113389b3cac7885b44b3722d27cad60e4e5a924a1ed0342cea9e99256f6bc1308d4af2c0af9379b1cf2119ce113c085705f5519ccc1ba8562a2236190d3f0c0a10f01466ad79a48127c28433f6b34e24a539af60f3d]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201002a64953bde40789f80ed8227192286115b92d09d5de96904e803ec4ecfbd73e0f08e82910febf19fa3cdc55ff20eb970d9c712f44785c0fd592c17fb43f4625357a4ac8a1a628f72040ae5360839c7c1f6b214e7a15530fe22887139ea0f05a9daf9d95bd6b7467abf9107c9fbe31e36330276eeccce3d59635206d60ca256f9af60627626b0594984b5a075c42c42067fa8c330f258bcf145df27a97da8ee419b54e3ab296c7ce9ef6a0113389b3cac7885b44b3722d27cad60e4e5a924a1ed0342cea9e99256f6bc1308d4af2c0af9379b1cf2119ce113c085705f5519ccc1ba8562a2236190d3f0c0a10f01466ad79a48127c28433f6b34e24a539af60f3d]\n[sha = SHA-224]\n\n# tcId = 604\n# s == 1\nmsg = 54657374\nresult = valid\nsig = 3021021c5a252f4fc55618747fd94b13c9bee62bb958d85777cb07dd90710d24020101\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 1e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201001e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]\n[sha = SHA-256]\n\n# tcId = 605\n# Legacy:ASN encoding of r misses leading 0\nmsg = 54657374\nresult = acceptable\nsig = 303c021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\nflags = NoLeadingZero\n\n# tcId = 606\n# valid\nmsg = 54657374\nresult = valid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 607\n# long form encoding of length of sequence\nmsg = 54657374\nresult = invalid\nsig = 30813d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 608\n# length of sequence contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 3082003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 609\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 610\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 611\n# uint32 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 3085010000003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 612\n# uint64 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 308901000000000000003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 613\n# length of sequence = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 30847fffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 614\n# length of sequence = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 3084ffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 615\n# length of sequence = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 3085ffffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 616\n# length of sequence = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 3088ffffffffffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe823", + "4711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 617\n# incorrect length of sequence\nmsg = 54657374\nresult = invalid\nsig = 30ff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 618\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 619\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 303d0280009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 620\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302805fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 621\n# removing sequence\nmsg = 54657374\nresult = invalid\nsig = \n\n# tcId = 622\n# lonely sequence tag\nmsg = 54657374\nresult = invalid\nsig = 30\n\n# tcId = 623\n# appending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 624\n# prepending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 303f0000021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 625\n# appending unused 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 626\n# appending null value to sequence\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160500\n\n# tcId = 627\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3042498177303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 628\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 30412500303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 629\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 303f303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160004deadbeef\n\n# tcId = 630\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 30422222498177021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 631\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 304122212500021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 632\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3045221f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930004deadbeef021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 633\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932221498177021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 634\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9322202500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 635\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93221e021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160004deadbeef\n\n# tcId = 636\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3045aa00bb00cd00303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 637\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3043aa02aabb303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 638\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 30452225aa00bb00cd00021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 639\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 30432223aa02aabb021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 640\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932224aa00bb00cd00021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 641\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3043021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932222aa02aabb021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 642\n# truncated length of sequence\nmsg = 54657374\nresult = invalid\nsig = 3081\n\n# tcId = 643\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 3080303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 644\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 30412280021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 645\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932280021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 646\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 3080313d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 647\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 30412280031d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 648\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932280031c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 649\n# Replacing sequence with NULL\nmsg = 54657374\nresult = invalid\nsig = 0500\n\n# tcId = 650\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 2e3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 651\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 2f3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 652\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 313d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 653\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 323d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 654\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = ff3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 655\n# dropping value of sequence\nmsg = 54657374\nresult = invalid\nsig = 3000\n\n# tcId = 656\n# using composition for sequence\nmsg = 54657374\nresult = invalid\nsig = 3041300102303c1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 657\n# truncated sequence\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d", + "68fade4142c8cf60f385470480c386c062b38fb42b1\n\n# tcId = 658\n# truncated sequence\nmsg = 54657374\nresult = invalid\nsig = 303c1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 659\n# indefinite length\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 660\n# indefinite length with truncated delimiter\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b11600\n\n# tcId = 661\n# indefinite length with additional element\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b11605000000\n\n# tcId = 662\n# indefinite length with truncated element\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116060811220000\n\n# tcId = 663\n# indefinite length with garbage\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000fe02beef\n\n# tcId = 664\n# indefinite length with nonempty EOC\nmsg = 54657374\nresult = invalid\nsig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160002beef\n\n# tcId = 665\n# prepend empty sequence\nmsg = 54657374\nresult = invalid\nsig = 303f3000021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 666\n# append empty sequence\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1163000\n\n# tcId = 667\n# append garbage with high tag number\nmsg = 54657374\nresult = invalid\nsig = 3040021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116bf7f00\n\n# tcId = 668\n# sequence of sequence\nmsg = 54657374\nresult = invalid\nsig = 303f303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 669\n# truncated sequence: removed last 1 elements\nmsg = 54657374\nresult = invalid\nsig = 301f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93\n\n# tcId = 670\n# repeating element in sequence\nmsg = 54657374\nresult = invalid\nsig = 305b021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 671\n# long form encoding of length of integer\nmsg = 54657374\nresult = invalid\nsig = 303e02811d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 672\n# long form encoding of length of integer\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302811c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 673\n# length of integer contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 303f0282001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 674\n# length of integer contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930282001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 675\n# wrong length of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021e009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 676\n# wrong length of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021c009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 677\n# wrong length of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 678\n# wrong length of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021b5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 679\n# uint32 overflow in length of integer\nmsg = 54657374\nresult = invalid\nsig = 30420285010000001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 680\n# uint32 overflow in length of integer\nmsg = 54657374\nresult = invalid\nsig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930285010000001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 681\n# uint64 overflow in length of integer\nmsg = 54657374\nresult = invalid\nsig = 3046028901000000000000001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 682\n# uint64 overflow in length of integer\nmsg = 54657374\nresult = invalid\nsig = 3046021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93028901000000000000001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 683\n# length of integer = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 304102847fffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 684\n# length of integer = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302847fffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 685\n# length of integer = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 30410284ffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 686\n# length of integer = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930284ffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 687\n# length of integer = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 30420285ffffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 688\n# length of integer = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930285ffffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 689\n# length of integer = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 30450288ffffffffffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 690\n# length of integer = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930288ffffffffffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 691\n# incorrect length of integer\nmsg = 54657374\nresult = invalid\nsig = 303d02ff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 692\n# incorrect length of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302ff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 693\n# removing integer\nmsg = 54657374\nresult = invalid\nsig = 301e021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 694\n# lonely integer tag\nmsg = 54657374\nresult = invalid\nsig = 301f02021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 695\n# lonely integer tag\nmsg = 54657374\nresult = invalid\nsig = 3020021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302\n\n# tcId = 696\n# appending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 30", + "3f021f009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 697\n# appending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000\n\n# tcId = 698\n# prepending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021f0000009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 699\n# prepending 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e00005fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 700\n# appending unused 0's to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 701\n# appending null value to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021f009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 702\n# appending null value to integer\nmsg = 54657374\nresult = invalid\nsig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160500\n\n# tcId = 703\n# truncated length of integer\nmsg = 54657374\nresult = invalid\nsig = 30200281021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 704\n# truncated length of integer\nmsg = 54657374\nresult = invalid\nsig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930281\n\n# tcId = 705\n# Replacing integer with NULL\nmsg = 54657374\nresult = invalid\nsig = 30200500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 706\n# Replacing integer with NULL\nmsg = 54657374\nresult = invalid\nsig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930500\n\n# tcId = 707\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 708\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d011d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 709\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d031d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 710\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d041d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 711\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303dff1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 712\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 713\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93011c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 714\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93031c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 715\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93041c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 716\n# changing tag value of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93ff1c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 717\n# dropping value of integer\nmsg = 54657374\nresult = invalid\nsig = 30200200021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 718\n# dropping value of integer\nmsg = 54657374\nresult = invalid\nsig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930200\n\n# tcId = 719\n# using composition for integer\nmsg = 54657374\nresult = invalid\nsig = 30412221020100021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 720\n# using composition for integer\nmsg = 54657374\nresult = invalid\nsig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93222002015f021be8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 721\n# modify first byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d029b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 722\n# modify first byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5de8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 723\n# modify last byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee13021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 724\n# modify last byte of integer\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b196\n\n# tcId = 725\n# truncated integer\nmsg = 54657374\nresult = invalid\nsig = 303c021c009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 726\n# truncated integer\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021b5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1\n\n# tcId = 727\n# truncated integer\nmsg = 54657374\nresult = invalid\nsig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021be8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 728\n# leading ff in integer\nmsg = 54657374\nresult = invalid\nsig = 303e021eff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 729\n# leading ff in integer\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021dff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 730\n# replaced integer by infinity\nmsg = 54657374\nresult = invalid\nsig = 3021090180021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 731\n# replaced integer by infinity\nmsg = 54657374\nresult = invalid\nsig = 3022021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93090180\n\n# tcId = 732\n# replacing integer with zero\nmsg = 54657374\nresult = invalid\nsig = 3021020100021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 733\n# replacing integer with zero\nmsg = 54657374\nresult = invalid\nsig = 3022021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93020100\n\n# tcId = 734\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d0156667b48514d3e5d546ca89ff45ada90474113ed248b873430ab57f0021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 735\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303c021ce0794dfb465b4e9d969cb3d0616b4b8468dbaf85aec085b2b7008536021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 736\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021dff64901b5e342bb9828a7b51c7d51cecf5a7f19e469659f98c8c2a116d021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 737\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303c021c1f86b204b9a4", + "b16269634c2f9e94b47b9724507a513f7a4d48ff7aca021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 738\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021dfea99984b7aeb2c1a2ab9357600ba5256fb8beec12db7478cbcf54a810021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 739\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d019b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 740\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303c021c64901b5e342bb9828a7b51c7d51cecf5a7f19e469659f98c8c2a116d021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 741\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d011adeb9ed974f878dc2fc26f4bf86ffda5f7abe6c26ebabf9b8181a73\n\n# tcId = 742\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021ca4f18ca08c5d97ce052c32252c9770ce81155a04b120aa783e6d47b9\n\n# tcId = 743\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021ca017dcb8ee2970521bebd37309f0c7ab8fb7f3c793f9d4c704bd4eea\n\n# tcId = 744\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5b0e735f73a26831fad3cddad3688f317eeaa5fb4edf5587c192b847\n\n# tcId = 745\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021dfee521461268b078723d03d90b40790025a0854193d914540647e7e58d\n\n# tcId = 746\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d015fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116\n\n# tcId = 747\n# Modified r or s, e.g. by adding or subtracting the group order\nmsg = 54657374\nresult = invalid\nsig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d00a017dcb8ee2970521bebd37309f0c7ab8fb7f3c793f9d4c704bd4eea\n\n# tcId = 748\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 749\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 750\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 751\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 752\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 753\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020100021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 754\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 755\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 756\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 757\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020100021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 758\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802010002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 759\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 760\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 761\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 762\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 763\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 764\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 765\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 766\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021020101021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 767\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 768\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 769\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 770\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022020101021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 771\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802010102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 772\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 773\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 774\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 775\n# Signatures with special case values for r and ", + "s.\nmsg = 54657374\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 776\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 777\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 778\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 779\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30210201ff021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 780\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 781\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 782\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 783\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30220201ff021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 784\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 308201080201ff02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 785\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 786\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 787\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 788\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020100\nflags = EdgeCase\n\n# tcId = 789\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae020101\nflags = EdgeCase\n\n# tcId = 790\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae0201ff\nflags = EdgeCase\n\n# tcId = 791\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 792\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 793\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 794\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 795\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 796\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 797\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 798\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae090380fe01\nflags = EdgeCase\n\n# tcId = 799\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae090142\nflags = EdgeCase\n\n# tcId = 800\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 801\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020100\nflags = EdgeCase\n\n# tcId = 802\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af020101\nflags = EdgeCase\n\n# tcId = 803\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af0201ff\nflags = EdgeCase\n\n# tcId = 804\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 805\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 806\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 807\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 808\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 809\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 810\n# Signatures with special case values for r and", + " s.\nmsg = 54657374\nresult = invalid\nsig = 30820123021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 811\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af090380fe01\nflags = EdgeCase\n\n# tcId = 812\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3021021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af090142\nflags = EdgeCase\n\n# tcId = 813\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 814\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c020100\nflags = EdgeCase\n\n# tcId = 815\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c020101\nflags = EdgeCase\n\n# tcId = 816\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c0201ff\nflags = EdgeCase\n\n# tcId = 817\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 818\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 819\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 820\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 821\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 822\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 823\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 824\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c090380fe01\nflags = EdgeCase\n\n# tcId = 825\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c090142\nflags = EdgeCase\n\n# tcId = 826\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 827\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020100\nflags = EdgeCase\n\n# tcId = 828\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020101\nflags = EdgeCase\n\n# tcId = 829\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0201ff\nflags = EdgeCase\n\n# tcId = 830\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 831\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 832\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 833\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 834\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 835\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 836\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 837\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090380fe01\nflags = EdgeCase\n\n# tcId = 838\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090142\nflags = EdgeCase\n\n# tcId = 839\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 840\n# Signatures with special case values for r and s.\n", + "msg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020100\nflags = EdgeCase\n\n# tcId = 841\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020101\nflags = EdgeCase\n\n# tcId = 842\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e0201ff\nflags = EdgeCase\n\n# tcId = 843\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 844\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 845\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 846\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 847\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 848\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 849\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 850\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090380fe01\nflags = EdgeCase\n\n# tcId = 851\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090142\nflags = EdgeCase\n\n# tcId = 852\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 853\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020100\nflags = EdgeCase\n\n# tcId = 854\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000020101\nflags = EdgeCase\n\n# tcId = 855\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d01000000000000000000000000000000000000000000000000000000000201ff\nflags = EdgeCase\n\n# tcId = 856\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 857\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303d021d0100000000000000000000000000000000000000000000000000000000021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 858\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 859\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 860\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 861\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 303e021d0100000000000000000000000000000000000000000000000000000000021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 862\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 30820124021d010000000000000000000000000000000000000000000000000000000002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 863\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024021d0100000000000000000000000000000000000000000000000000000000090380fe01\nflags = EdgeCase\n\n# tcId = 864\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3022021d0100000000000000000000000000000000000000000000000000000000090142\nflags = EdgeCase\n\n# tcId = 865\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 866\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020100\nflags = EdgeCase\n\n# tcId = 867\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a", + "0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020101\nflags = EdgeCase\n\n# tcId = 868\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd6670201ff\nflags = EdgeCase\n\n# tcId = 869\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 870\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012302820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 871\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 872\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 873\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 874\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 875\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082020a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd66702820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 876\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090380fe01\nflags = EdgeCase\n\n# tcId = 877\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090142\nflags = EdgeCase\n\n# tcId = 878\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3\nflags = EdgeCase\n\n# tcId = 879\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe01020100\nflags = EdgeCase\n\n# tcId = 880\n# Signatures with special case values for r and s.\nmsg ", + "= 54657374\nresult = invalid\nsig = 3008090380fe01020101\nflags = EdgeCase\n\n# tcId = 881\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe010201ff\nflags = EdgeCase\n\n# tcId = 882\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4ae\nflags = EdgeCase\n\n# tcId = 883\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3023090380fe01021c5d7b4b5342bc7befef73fd33e4bbe3c2f7995919dd72c0605e6ab4af\nflags = EdgeCase\n\n# tcId = 884\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\nflags = EdgeCase\n\n# tcId = 885\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d\nflags = EdgeCase\n\n# tcId = 886\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e\nflags = EdgeCase\n\n# tcId = 887\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3024090380fe01021d0100000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 888\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3082010a090380fe0102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667\nflags = EdgeCase\n\n# tcId = 889\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 300a090380fe01090380fe01\nflags = EdgeCase\n\n# tcId = 890\n# Signatures with special case values for r and s.\nmsg = 54657374\nresult = invalid\nsig = 3008090380fe01090142\nflags = EdgeCase\n\n# tcId = 891\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 892\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 893\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 894\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 895\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 3003020101\n\n# tcId = 896\n# Signature encoding contains wrong type.\nmsg = 54657374\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 897\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303c021c296410b8cb6200edafd1205e7377a09ad2011ac7b15b8bc9b9b4c6db021c25ca283c868dc2a5ce86aafcf681ce21d660b461da48270f15b53889\n\n# tcId = 898\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303d021c347c4f6875bf4476afbdd6b2b1f9e35c870e785e708e661109bd068e021d00b0b908a617d3ad6c8bc277f397095c00e659c86ca7c600090571ab17\n\n# tcId = 899\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303c021c3c76bc6f17369414d4c21c5361ed0cca6e79f73f90706f1f7ca9f05a021c3cc60d8a0d44fb967baa0e5621e12cd434aafd748cba3e7cdc733b2f\n\n# tcId = 900\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303e021d0086a5efea8e6a8033b8a0034b52ae614e1f14fbcbfa0bb50194efa6a7021d00b3d66f6d2b10cfe62fe96b78fcf41ca7b442aceb98ab109a01409e4a\n\n# tcId = 901\n# random signature\nmsg = 54657374\nresult = valid\nsig = 303d021c16727d52bd711e9a63e0dd2c4db045cfb993942b1e39e4f43a65c11a021d009fb9c02d10c968e75bb15acab8467f30b84481f679e136e8af65a266\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 00848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]\n[keyDer = 308203433082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde03820106000282010100848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]\n[sha = SHA-256]\n\n# tcId = 902\n# r,s = 1,1\nmsg = 54657374\nresult = valid\nsig = 3006020101020101\n\n# tcId = 903\n# r,s = 1,5\nmsg = 54657374\nresult = valid\nsig = 3006020101020105\n\n# tcId = 904\n# u2 small\nmsg = 54657374\nresult = valid\nsig = 3022020101021d009592121ed12d93197f1ffb863ac63937f28ef4f62f1e009a30aabab1\n\n# tcId = 905\n# s == q-1\nmsg = 54657374\nresult = valid\nsig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c\n\n[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296d", + "a887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]\n[key.keySize = 2048]\n[key.p = 008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]\n[key.q = 00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]\n[key.type = DsaPublicKey]\n[key.y = 629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]\n[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde038201050002820100629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]\n[sha = SHA-256]\n\n# tcId = 906\n# s == 1\nmsg = 54657374\nresult = valid\nsig = 3021021c5a252f4fc55618747fd94b13c9bee62bb958d85777cb07dd90710d24020101\n\n", }; -static const size_t kLen62 = 175947; +static const size_t kLen95 = 133793; -static const char *kData62[] = { - "# Imported from Wycheproof's ecdh_secp224r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.4.12\n\n[curve = secp224r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 565577a49415ca761a0322ad54e4ad0ae7625174baf372c2816f5328\npublic = 304e301006072a8648ce3d020106052b81040021033a00047d8ac211e1228eb094e285a957d9912e93deee433ed777440ae9fc719b01d050dfbe653e72f39491be87fb1a2742daa6e0a2aada98bb1aca\nresult = valid\nshared = b8ecdb552d39228ee332bafe4886dbff272f7109edf933bc7542bd4f\n\n# tcId = 2\n# compressed public key\nprivate = 565577a49415ca761a0322ad54e4ad0ae7625174baf372c2816f5328\npublic = 3032301006072a8648ce3d020106052b81040021031e00027d8ac211e1228eb094e285a957d9912e93deee433ed777440ae9fc71\nresult = acceptable\nshared = b8ecdb552d39228ee332bafe4886dbff272f7109edf933bc7542bd4f\n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 3\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004e73a6ca72f3a2fae6e0a01a0ed03bfa3058b04576942eaf063095e62ca16fd31fa0f38eeb592cbeea1147751fdd2a5b6cc0ead404467a5b6\nresult = valid\nshared = 00000000000000000000000000000000000000000000000000000003\n\n# tcId = 4\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00045763fa2ae16367ad23d471cc9a52466f0d81d864e5640cefe384114594d9fecfbed4f254505ac8b41d2532055a07f0241c4818b552cbb636\nresult = valid\nshared = 00000000000000000000000100000000000000000000000000000001\n\n# tcId = 5\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004142c1fd80fa2121a59aa898144084ec033f7a56a34eee0b499e29ae51c6d8c1bbb1ef2a76d565899fe44ffc1207d530d7f598fb77f4bb76b\nresult = valid\nshared = 00000000000000ffffffffffffff0000000000000100000000000000\n\n# tcId = 6\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ed6f793e10c80d12d871cf8988399c4898a9bf9ffd8f27399f63de25f0051cdf4eec7f368f922cfcd948893ceca0c92e540cc4367a99a66a\nresult = valid\nshared = 00000000ffffffffffffffff00000000000000010000000000000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a000408fcfc1a63c82860be12e4137433dfc40be9acdd245f9a8c4e56be61a385fc09f808383383f4b1d0d5365b6e5dcfacdc19bc7bcfed221274\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004d883ed77f1861e8712800d31df67888fe39f150c79a27aa88caeda6b180f3f623e2ff3ab5370cf8179165b085af3dd4502850c0104caed9a\nresult = valid\nshared = 0003fffffff00000003fffffff00000003fffffff000000040000000\n\n# tcId = 9\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00042b8b279b85ee3f3d2c0abeb36fdfc5aad6157d652d26489381a32cd73224bd757ef794acc92b0b3b9e7990618bb343a9a09bdb9d3616eff6\nresult = valid\nshared = 01fffffffc00000007fffffff00000001fffffffc000000080000001\n\n# tcId = 10\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00048bd5f03391eeeae1744e8fc53d314efffafa4d3fa4f1b95c3388a9cd7c86358b273119c537133eb55e79c6ac510b10980b379b919ccf2e2f\nresult = valid\nshared = 0a15c112ff784b1445e889f955be7e3ffdf451a2c0e76ab5cb32cf41\n\n# tcId = 11\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ce9631b6a16227778625c8e5421ae083cdd913abefde01dbe69f6c2b95386aff2b483b2c47151cfaabfd000614c683ce2e1778221ae42c1b\nresult = valid\nshared = 62989eaaa26a16f07330c3c51e0a4631fd016bfcede26552816aee39\n\n# tcId = 12\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00041f441c98eda956a6a7fdbfd8d21910860ab59d16c3e52f8e7fad6ca5df61a55fc508fc0499c55492f1e87bb2faa0cb4170b79f3a85ec2f3d\nresult = valid\nshared = 661ac958c0febbc718ccf39cefc6b66c4231fbb9a76f35228a3bf5c3\n\n# tcId = 13\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004be74583cb9d3a05ae54923624e478a329a697d842dfae33141c844d7d9ba4fc96e0fe716ac0542e87368662fc2f0cb9b0ae57936ddec7190\nresult = valid\nshared = 6d7e41821abe1094d430237923d2a50de31768ab51b12dce8a09e34c\n\n# tcId = 14\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a281ad992b363597ac93ff0de8ab1f7e51a6672dcbb58f9d739ba430ce0192874038daefc3130eec65811c7255da70fea65c1003f6892faa\nresult = valid\nshared = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 15\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004be3e22133f51203f631b81dde8c020cdea5daa1f99cfc05c88fad2dc0f243798d6e72d1de9e3cdca4144e0a6c0f2a584d07589006972c197\nresult = valid\nshared = fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008001\n\n# tcId = 16\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004af14547c20afbd91bfe64ea03d45a76a71241f23520ef897ff91eff1b54ca6ca8c25fd73852ec6654617434eff7f0225684d4dea7a4f8a97\nresult = valid\nshared = ffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004b1e484925018729926acda56ff3e2f6c1e7e8f162b178d8e8afb45564fceaa6da5d998fe26b6b26a055169063a5ab6908852ca8b54e2de6c\nresult = valid\nshared = fffff0000007fffffe000000ffffffc000001ffffff8000003ffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 0a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004937eb09fb145c8829cb7df20a4cbeed396791373de277871d6c5f9cc3b5b4fd56464a71fc4a2a6af3bd251952bffa829489e68a8d06f96b6\nresult = valid\nshared = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 19\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004000000000000000000000000000000000000000000000000000000037cac269c67bd55ea14efff4eadefe5e74978514af14c88fab46ec046\nresult = valid\nshared = 3fa0b9ff70b884f9f57bb84f7a9532d93f6ba803f89dd8ff008177d7\n\n# tcId = 20\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004000000000000000000000001000000000000000000000000000000012ea2f4917bdfdb008306cc10a18e2557633ba861001829dcbfb96fba\nresult = valid\nshared = be1ded8cb7ff8a585181f96d681e31b332fe27dcae922dca2310300d\n\n# tcId = 21\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000ffffffffffffff000000000000010000000000000073ca5f8f104997a2399e0c7f25e72a75ec29fc4542533d3fea89a33a\nresult = valid\nshared = a2e86a260e13515918a0cafdd87855f231b5624c560f976159e06a75\n\n# tcId = 22\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000ffffffffffffffff000000000000000100000000000000006fe6805f59b19b0dd389452a1d4a420bfeb6c369cf6fed5b12e6e654\nresult = valid\nshared = 31ef7c8d10404a0046994f313a70574b027e87f9028eca242c1b5", - "bf5\n\n# tcId = 23\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff77c5cfa4e2c384938d48bd8dd98f54c86b279f1df8c0a1f6692439c9\nresult = valid\nshared = d1976a8ef5f54f24f5a269ad504fdca849fc9c28587ba294ef267396\n\n# tcId = 24\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040003fffffff00000003fffffff00000003fffffff00000004000000001f0828136016bb97445461bc59f2175d8d23557d6b9381f26136e3d\nresult = valid\nshared = ce7890d108ddb2e5474e6417fcf7a9f2b3bd018816062f4835260dc8\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000401fffffffc00000007fffffff00000001fffffffc0000000800000012d8acca6f199d4a94b933ba1aa713a7debde8ac57b928f596ae66a66\nresult = valid\nshared = 30b6ff6e8051dae51e4fe34b2d9a0b1879153e007eb0b5bdf1791a9c\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040a15c112ff784b1445e889f955be7e3ffdf451a2c0e76ab5cb32cf413d4df973c563c6decdd435e4f864557e4c273096d9941ca4260a266e\nresult = valid\nshared = 77ec668a00f72d85aa527624abb16c039fe490d17dd6c455a1ed7fd8\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000462989eaaa26a16f07330c3c51e0a4631fd016bfcede26552816aee39389ee9436d616cab90032931aa7fbbfcfc13309f61e2423cc8dab93c\nresult = valid\nshared = a3f432f6aba9a92f49a5ea64ffe7059a9d9b487a0b5223ddc988208b\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004661ac958c0febbc718ccf39cefc6b66c4231fbb9a76f35228a3bf5c3103b8040e3cb41966fc64a68cacb0c14053f87d27e8ed7bf2d7fe51b\nresult = valid\nshared = 1530fd9caf03737af34a4ba716b558cbecbc35d18402535a0a142313\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00046d7e41821abe1094d430237923d2a50de31768ab51b12dce8a09e34c276cf273d75d367820dd556182def0957af0a314f48fed227c298dc0\nresult = valid\nshared = cfc39ccacb94ad0e0552b2e47112f60fbbe7ae0dc32230b9273dd210\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00047fffffffffffffffffffffffffffffffffffffffffffffffffffffff7d8dbca36c56bcaae92e3475f799294f30768038e816a7d5f7f07d77\nresult = valid\nshared = 73bd63bd384a0faafb75cfed3e95d3892cbacf0db10f282c3b644771\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc000800174f1ff5ea7fbc72b92f61e06556c26bab84c0b082dd6400ca1c1eb6d\nresult = valid\nshared = 85b079c62e1f5b0fd6841dfa16026e15b641f65e13a14042567166bb\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0126fdd5fccd0b5aa7fd5bb5b1308584b30556248cec80208a2fe962\nresult = valid\nshared = 8a834ff40e3fc9f9d412a481e18537ea799536c5520c6c7baaf12166\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fffff0000007fffffe000000ffffffc000001ffffff8000003ffffff20cfa23077acc9fbcb71339c65880cd0b966b8a9497e65abed17f0b5\nresult = valid\nshared = a0887269766e6efcbc81d2b38f2d4638663f12377468a23421044188\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffff00000000ffffffff00000000ffffffff00000000ffffffff1c05ac2d4f10b69877c3243d51f887277b7bf735c326ab2f0d70da8c\nresult = valid\nshared = c65d1911bc076a74588d8793ce7a0dcabf5793460cd2ebb02754a1be\n\n# tcId = 35\n# edge case private key\nprivate = 3\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = e71f2157bfe37697ea5193d4732dcc6e5412fa9d38387eacd391c1c6\n\n# tcId = 36\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = fa2664717c7fa0161ec2c669b2c0986cdc20456a6e5406302bb53c77\n\n# tcId = 37\n# edge case private key\nprivate = 1000000000000000000000000000000000000000000000000000000\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = af6e5ad34497bae0745f53ad78ce8b285d79f400d5c6e6a071f8e6bd\n\n# tcId = 38\n# edge case private key\nprivate = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 12fd302ff8c13c55a9c111f8bb6b0a13ecf88299c0ae3032ce2bcaff\n\n# tcId = 39\n# edge case private key\nprivate = 080000000000000000000000000000000000000000000000000000000\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 73f1a395b842f1a6752ae417e2c3dc90cafc4476d1d861b7e68ad030\n\n# tcId = 40\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03d13dd29455c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = b329c20ddb7c78ee4e622bb23a984c0d273ba34b6269f3d9e8f89f8e\n\n# tcId = 41\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03e13cd29455c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 6f48345209b290ffc5abbe754a201479e5d667a209468080d06197b4\n\n# tcId = 42\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03e13d529455c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 9f6e30c1c9dad42a153aacd4b49a8e5c721d085cd07b5d5aec244fc1\n\n# tcId = 43\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29445c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 8cadfb19a80949e61bd5b829ad0e76d18a5bb2eeb9ed7fe2b901cecd\n\n# tcId = 44\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29b7\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 475fd96e0eb8cb8f100a5d7fe043a7a6851d1d611da2643a3c6ae708\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 45\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a37\npublic = 304e301006072a8648ce3d020106052b8104002", - "1033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 41ef931d669d1f57d8bb95a01a92321da74be8c6cbc3bbe0b2e73ebd\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 46\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = e71f2157bfe37697ea5193d4732dcc6e5412fa9d38387eacd391c1c6\n\n# tcId = 47\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 11ff15126411299cbd49e2b7542e69e91ef132e2551a16ecfebb23a3\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 48\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 49\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 50\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 51\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 52\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 53\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 54\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 55\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 56\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 57\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 58\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 59\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 60\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000100000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 61\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000100000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 62\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 63\n# point is not on curve\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 64\nprivate = 0c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 3015301006072a8648ce3d020106052b81040021030100\nresult = invalid\nshared = \n\n# tcId = 65\n# public point not on curve\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5d\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 66\n# public point = (0,0)\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 67\n# order = -26959946667150639794667015087019625940457807714424391721682722368061\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b7", - "0e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021dff0000000000000000000000000000e95d1f470fc1ec22d6baa3a3d5c3020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 68\n# order = 0\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3081f73081b806072a8648ce3d02013081ac020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34020100020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 69\n# order = 1\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3081f73081b806072a8648ce3d02013081ac020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34020101020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 70\n# order = 6277101735386680763835789423207665314073163949517624387909\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3082010f3081d006072a8648ce3d02013081c4020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021900ffffffffffffffffffffffffffff16a2e0b8f03e13dd2945020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 71\n# generator = (0,0)\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb40439040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 72\n# genera", - "tor not on curve\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e36021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 73\n# cofactor = -1\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 74\n# cofactor = 0\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 75\n# cofactor = 2\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020102033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 76\n# cofactor =\n# 26959946667150639794667015087019625940457807714424391721682722368061\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3082012f3081f006072a8648ce3d02013081e4020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 77\n# cofactor = None\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201103081d106072a8648ce3d02013081c5020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffff", - "ffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 78\n# modified prime\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00c123da0a46a971da9468161e61a5c71a02e6c9bdb3392f4016fb457b303c041c3edc25f5b9568e256b97e9e19e5a38e4fd1936424cc6d0bfe904ba83041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904000000000000000000285145f31ae4d40000000000000000000003387edad63d1a600740ce66b6f04d67ed06ea1a75c16294336ed05b3fa3021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004000000000000000000285145f31ae4d40000000000000000000003387edad63d1a600740ce66b6f04d67ed06ea1a75c16294336ed05b3fa3\nresult = invalid\nshared = 3de0a5036fcde544c72cbe33cedb8709549bc3b6a4d750ee0de4c80d\n# The modulus of the public key has been modified. The public point of the\n# public key has been chosen so that it is both a point on both the curve of the\n# modified public key and the private key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 79\n# using secp256r1\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbf6606595a3ee50f9fceaa2798c2740c82540516b4e5a7d361ff24e9dd15364e5408b2e679f9d5310d1f6893b36ce16b4a507509175fcb52aea53b781556b39\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 80\n# using secp256k1\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 81\n# a = 0\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3081f83081b906072a8648ce3d02013081ad020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff0000000000000000000000013021040100041cd0d5e347a38ce5b6e1f47edddd8a223bca45d2015de76ec835a4df57043904a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 82\n# public key of order 3\nprivate = 0d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041ce8f32429d997935dc5e2e6621cc0c130464d38c8cdf26454bb36080d041cdcc54f9c4dfd9b10d8c2cc735751d55b0ab7a7765cf9d49483bf6d8804390481020a9259fe8552f4aa794669b24033bc9283bc57715cc013e8ddc612cd1b9eb05e696610a5e8cae07a522a74eff150eb553adf98c01478021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a000481020a9259fe8552f4aa794669b24033bc9283bc57715cc013e8ddc6ed32e4614fa19699ef5a17351f85add48b100eaf14aac520673feb89\nresult = invalid\nshared = 19845b25666b143d3f0f070781c1c595c66b9e854106a56b7db774cb\n# The vector contains a weak public key. The curve is not a named curve, the\n# public key point has order 3 and has been chosen to be on the same curve as\n# the private key. This test vector is used to check ECC implementations for\n# missing steps in the verification of the public key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 83\n# Public key uses wrong curve: secp256r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ea36cf70fab75684eabe6569ce623db0deaa8c95f61c8be50b8b9f3eb7d4b9ec48d9e4814f4cb1c286589eaaa990d3f3238b2d6d6be964abfad964824b653376\nresult = invalid\nshared = \n\n# tcId = ", - "84\n# Public key uses wrong curve: secp384r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3076301006072a8648ce3d020106052b81040022036200044b2470ad3d13269c10a17d222ebdffbd61fb04488db1b1d7caef8d4988b7bb8ba6d81857a05b255232b9e37a30e328bb9d9c42d86096f2bcee3d258cfe208d2fd03cbd5ccc6a3bb8ce4b0efa5b059b4afbd0377aa6e274721a57efe8ee85d86a\nresult = invalid\nshared = \n\n# tcId = 85\n# Public key uses wrong curve: secp521r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 30819b301006072a8648ce3d020106052b810400230381860004012841a2260f0f1f424865fef275374779bf0355720223f8ec6a9ba767b1603b492f58a6bba1705d882257bc6be1935de4411c5f1fdad44ec65ba8b97ce0e73e1ac90006937832a602147e37c1a42ca2a63629ffc9a35b31bfacb38c6242b42916125f7446b45c718f797259bc3011cb71e868560b331cf7d01139a0643443f9fd7306c1\nresult = invalid\nshared = \n\n# tcId = 86\n# Public key uses wrong curve: secp256k1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3056301006072a8648ce3d020106052b8104000a03420004c2199fecf75648c0e952dff143821fa4012b28f90435ce6ee54653687f969a76092a3844e17d478a594f43b28cc10a5c553b4f64906121031c3a79299c70dbd6\nresult = invalid\nshared = \n\n# tcId = 87\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a00046caa3d6d86f792df7b29e41eb4203150f60f4fca10f57d0b2454abfb201f9f7e6dcbb92bdcfb9240dc86bcaeaf157c77bca22b2ec86ee8d6\nresult = invalid\nshared = \n\n# tcId = 88\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 305a301406072a8648ce3d020106092b2403030208010107034200042750180012c3ba7489517d428e4826784e50b50ac42ef7991c61a396c03a52da5e74908ae8a89627a7c15e554b105b0ebaeebcfed10e3ea60223d0a8bc3b36ab\nresult = invalid\nshared = \n\n# tcId = 89\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 306a301406072a8648ce3d020106092b2403030208010109035200045b523d3a8f20f6a569c6951e0b8de48d89e7549a184e8506820421c3e404473692cd248d7480843b911d87a87e401112fce0d3d2c36978cf6dd7f1d93bfaebe0827d4bf4006006d3202e842126fe1b68\nresult = invalid\nshared = \n\n# tcId = 90\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 307a301406072a8648ce3d020106092b240303020801010b03620004449607c76c6dc7334c269a0ebab5beec83b6c263377ce06ef5c276f45a9916eff85f50438f5f32ced0210a6c414fe5e242c7c1070823f5395b35965bda6758acf84725f11ea836dda7d391fee91342026645241853224a437a6fb74e4cdc871f\nresult = invalid\nshared = \n\n# tcId = 91\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 30819b301406072a8648ce3d020106092b240303020801010d038182000463e7a491240848e4f53ea5fb857d428c493053193e4b0b4f995ac8bf4c56276a507870131a384aa7e236c64cd7a049a1b37e40ad00c3b8a920dcbad6531616356ce1b6e6d96a7d1b693e25e5abd83ab560a3d764bcd49ec98a1b49421163bd5fc5a625f44c91eb4c2984d5a2e51e816ebdee8fbe08364bb14b7ac876990e64d9\nresult = invalid\nshared = \n\n# tcId = 92\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a00047c592ecb8908355d1ebf8d59b3619275dbe3666209b72ced6a3c88740456ce61d6a84e0542d7cd10dd8804afb8c784d5dffd9480d8cfdc95\nresult = invalid\nshared = \n\n# tcId = 93\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 305a301406072a8648ce3d020106092b240303020801010803420004746226a3e005c37ede51828d3375ef91ebd0ff719a380af69d7dfd131b42a3e8917d4a4d573872935a74d1040f1c47d25d6b26f4156cccdcdc11833b9cde433a\nresult = invalid\nshared = \n\n# tcId = 94\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 306a301406072a8648ce3d020106092b240303020801010a035200043298b36825c7bd90ab5157b913d40bbfd732a0de0557e02a2c65a0c223e9a65d62c32462040dd6fe578103023c831caff122c1ed4b8ff7373fa2f08d11c9f4c7f85f81802262ffed9bb82cb6d92eed2d\nresult = invalid\nshared = \n\n# tcId = 95\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 307a301406072a8648ce3d020106092b240303020801010c036200043af2849b981f7e5e6ab936e6abb4f206c1fd5561998df8008bfe98d84173c9f2301cdbd5bffc569c0b5a57ce2a8f4d640f1816475fc6043baa8e5a3453bf327b54cb29c7e54a5f31348969aa94615094dbcd1a8e5c2d630465e45fc556c02194\nresult = invalid\nshared = \n\n# tcId = 96\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 30819b301406072a8648ce3d020106092b240303020801010e038182000453d2506047e72af6d98558e1633ecb7e6a05c37861cd3289455cf41bfbf1703f2e9a83052b8eca7d84cba2f001abd8b978f68b69ed6bd874755c44d347fe302c5760b2078c56b24ebd0dcd99f26b8f8a23044b3767a3d2a306587687a7b00668974674edbf18c3db2f3473a97ee77065fdcdd1a9aa053716a4c504f3d18b9170\nresult = invalid\nshared = \n\n# tcId = 97\n# invalid public key\nprivate = 0fc28a0ca0f8e36b0d4f71421845135a22aef543b9fddf8c775b2d18f\npublic = 3032301006072a8648ce3d020106052b81040021031e00020ca753db5ddeca474241f8d2dafc0844343fd0e37eded2f0192d51b2\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 98\n# long form encoding of length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30814e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 99\n# long form encoding of length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f30811006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 100\n# long form encoding of length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f30110681072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 101\n# long form encoding of length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106072a8648ce3d02010681052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 102\n# long form encoding of length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301006072a8648ce3d020106052b8104002103813a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key ", - "in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 103\n# length contains leading 0\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3082004e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 104\n# length contains leading 0\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503082001006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 105\n# length contains leading 0\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012068200072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 106\n# length contains leading 0\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d0201068200052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 107\n# length contains leading 0\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b810400210382003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 108\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 109\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 110\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301106072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 111\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e300f06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 112\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006082a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 113\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006062a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 114\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106062b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 115\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106042b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 116\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033b000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checki", - "ng the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 117\n# wrong length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b810400210339000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 118\n# uint32 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3085010000004e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 119\n# uint32 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533085010000001006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 120\n# uint32 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533015068501000000072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 121\n# uint32 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d0201068501000000052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 122\n# uint32 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b810400210385010000003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 123\n# uint64 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 308901000000000000004e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 124\n# uint64 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057308901000000000000001006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 125\n# uint64 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301906890100000000000000072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 126\n# uint64 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301906072a8648ce3d020106890100000000000000052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 127\n# uint64 overflow in length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301006072a8648ce3d020106052b81040021038901000000000000003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 128\n# length = 2**31 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30847fffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 129\n# length = 2**31 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305230847fffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 130\n# length = 2**31 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406847fffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d79422", - "8029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 131\n# length = 2**31 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d020106847fffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 132\n# length = 2**31 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b8104002103847fffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 133\n# length = 2**32 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3084ffffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 134\n# length = 2**32 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30523084ffffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 135\n# length = 2**32 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305230140684ffffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 136\n# length = 2**32 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d02010684ffffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 137\n# length = 2**32 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b810400210384ffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 138\n# length = 2**40 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3085ffffffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 139\n# length = 2**40 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533085ffffffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 140\n# length = 2**40 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305330150685ffffffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 141\n# length = 2**40 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d02010685ffffffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 142\n# length = 2**40 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b810400210385ffffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 143\n# length = 2**64 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3088ffffffffffffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 144\n# length = 2**64 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563088ffffffffffffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc", - "4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 145\n# length = 2**64 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305630180688ffffffffffffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 146\n# length = 2**64 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301806072a8648ce3d02010688ffffffffffffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 147\n# length = 2**64 - 1\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301006072a8648ce3d020106052b810400210388ffffffffffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 148\n# incorrect length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30ff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 149\n# incorrect length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e30ff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 150\n# incorrect length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006ff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 151\n# incorrect length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106ff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 152\n# incorrect length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b8104002103ff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 153\n# indefinite length without termination\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 154\n# indefinite length without termination\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e308006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 155\n# indefinite length without termination\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006802a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 156\n# indefinite length without termination\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106802b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 157\n# indefinite length without termination\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b810400210380000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 158\n# removing sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = \nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where t", - "he\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 159\n# removing sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303c033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 160\n# lonely sequence tag\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 161\n# lonely sequence tag\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303d30033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 162\n# appending 0's to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 163\n# appending 0's to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106052b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 164\n# prepending 0's to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30500000301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 165\n# prepending 0's to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012000006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 166\n# appending unused 0's to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 167\n# appending unused 0's to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 168\n# appending null value to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 169\n# appending null value to sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106052b810400210500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 170\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053498177304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 171\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30522500304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 172\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620004deadbeef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 173\n# including garbage\npri", - "vate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533015498177301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 174\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305230142500301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 175\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563012301006072a8648ce3d020106052b810400210004deadbeef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 176\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533015260c49817706072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 177\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30523014260b250006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 178\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563018260906072a8648ce3d02010004deadbeef06052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 179\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d0201260a49817706052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 180\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d02012609250006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 181\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301806072a8648ce3d0201260706052b810400210004deadbeef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 182\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b81040021233f498177033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 183\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b81040021233e2500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 184\n# including garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301006072a8648ce3d020106052b81040021233c033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620004deadbeef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 185\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056aa00bb00cd00304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 186\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054aa02aabb304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns", - " the correct shared value.\n\n# tcId = 187\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563018aa00bb00cd00301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 188\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30543016aa02aabb301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 189\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563018260faa00bb00cd0006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 190\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30543016260daa02aabb06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 191\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301806072a8648ce3d0201260daa00bb00cd0006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 192\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054301606072a8648ce3d0201260baa02aabb06052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 193\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301006072a8648ce3d020106052b810400212342aa00bb00cd00033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 194\n# including undefined tags\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054301006072a8648ce3d020106052b810400212340aa02aabb033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 195\n# truncated length of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3081\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 196\n# truncated length of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303e3081033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 197\n# Replacing sequence with NULL\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 0500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 198\n# Replacing sequence with NULL\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303e0500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 199\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 2e4e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 200\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 2f4e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 201\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 314e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b620", - "01fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 202\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 324e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 203\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = ff4e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 204\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e2e1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 205\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e2f1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 206\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e311006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 207\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e321006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 208\n# changing tag value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304eff1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 209\n# dropping value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 210\n# dropping value of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303e3000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 211\n# truncate sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 212\n# truncate sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 213\n# truncate sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06072a8648ce3d020106052b810400033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 214\n# truncate sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 215\n# indefinite length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN e", - "ncoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 216\n# indefinite length\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050308006072a8648ce3d020106052b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 217\n# indefinite length with truncated delimiter\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da6200\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 218\n# indefinite length with truncated delimiter\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f308006072a8648ce3d020106052b8104002100033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 219\n# indefinite length with additional element\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da6205000000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 220\n# indefinite length with additional element\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052308006072a8648ce3d020106052b8104002105000000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 221\n# indefinite length with truncated element\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62060811220000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 222\n# indefinite length with truncated element\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054308006072a8648ce3d020106052b81040021060811220000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 223\n# indefinite length with garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000fe02beef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 224\n# indefinite length with garbage\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054308006072a8648ce3d020106052b810400210000fe02beef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 225\n# indefinite length with nonempty EOC\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620002beef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 226\n# indefinite length with nonempty EOC\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052308006072a8648ce3d020106052b810400210002beef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 227\n# prepend empty sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503000301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 228\n# prepend empty sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012300006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 229\n# append empty sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be72", - "6b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da623000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 230\n# append empty sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106052b810400213000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 231\n# sequence of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 232\n# sequence of sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 233\n# truncated sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3012301006072a8648ce3d020106052b81040021\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 234\n# truncated sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3047300906072a8648ce3d0201033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 235\n# repeat element in sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30818a301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 236\n# repeat element in sequence\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3055301706072a8648ce3d020106052b8104002106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 237\n# removing oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3045300706052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 238\n# lonely oid tag\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304630080606052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 239\n# lonely oid tag\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3048300a06072a8648ce3d020106033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 240\n# appending 0's to oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206092a8648ce3d0201000006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 241\n# appending 0's to oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106072b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 242\n# prepending 0's to oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012060900002a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 243\n# prepending 0's to oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d0201060700002b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared =", - " 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 244\n# appending unused 0's to oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d0201000006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 245\n# appending null value to oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206092a8648ce3d0201050006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 246\n# appending null value to oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106072b810400210500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 247\n# truncated length of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30473009068106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 248\n# truncated length of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3049300b06072a8648ce3d02010681033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 249\n# Replacing oid with NULL\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30473009050006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 250\n# Replacing oid with NULL\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3049300b06072a8648ce3d02010500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 251\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301004072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 252\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301005072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 253\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301007072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 254\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301008072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 255\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e3010ff072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 256\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020104052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 257\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020105052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176", - "d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 258\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020107052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 259\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020108052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 260\n# changing tag value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d0201ff052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 261\n# dropping value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30473009060006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 262\n# dropping value of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3049300b06072a8648ce3d02010600033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 263\n# modify first byte of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e30100607288648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 264\n# modify first byte of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052981040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 265\n# modify last byte of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d028106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 266\n# modify last byte of oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b810400a1033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 267\n# truncate oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06062a8648ce3d0206052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 268\n# truncate oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06068648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 269\n# truncate oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06072a8648ce3d020106042b810400033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 270\n# truncate oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06072a8648ce3d0201060481040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 271\n# wrong oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30513013060a3262306530333032316106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parse", - "r is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 272\n# wrong oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3059301b061236303836343830313635303330343032303106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 273\n# wrong oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d0201060a32623065303330323161033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 274\n# wrong oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305b301d06072a8648ce3d02010612363038363438303136353033303430323031033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 275\n# longer oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301906103261383634386365336430323031303106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 276\n# longer oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3055301706072a8648ce3d0201060c326238313034303032313031033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 277\n# oid with modified node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30553017060e326138363438636533643032313106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 278\n# oid with modified node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305d301f06163261383634386365336430323838383038303830303106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 279\n# oid with modified node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d0201060a32623831303430303331033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 280\n# oid with modified node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305b301d06072a8648ce3d02010612326238313034303038383830383038303231033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 281\n# large integer in oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 306730290620326138363438636533643032383238303830383038303830383038303830303106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 282\n# large integer in oid\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3065302706072a8648ce3d0201061c32623831303430303832383038303830383038303830383038303231033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 283\n# oid with invalid node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3058301a0611326138363438636533643032303165303306052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 284\n# oid with invalid node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106082a808648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 285\n# oid with invalid node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301806072a8648ce3d0201060d32623831303430303231653033033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c", - "1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 286\n# oid with invalid node\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106072a8648ce3d020106062b8081040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 287\n# lonely bit string tag\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3013301006072a8648ce3d020106052b8104002103\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 288\n# appending 0's to bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 289\n# prepending 0's to bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c0000000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 290\n# appending null value to bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 291\n# truncated length of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210381\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 292\n# Replacing bit string with NULL\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 293\n# changing tag value of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021013a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 294\n# changing tag value of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021023a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 295\n# changing tag value of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021043a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 296\n# changing tag value of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021053a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 297\n# changing tag value of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021ff3a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 298\n# dropping value of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210300\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 299\n# modify first byte of bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a020486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 300\n# modify last byte of bit string\nprivate = 0a1b9444f59642d428e2", - "f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3dae2\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 301\n# truncate bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b810400210339000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 302\n# truncate bit string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b8104002103390486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 303\n# declaring bits as unused in a bit-string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a010486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 304\n# unused bits in a bit-string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b81040021033e200486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da6201020304\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 305\n# unused bits in empty bit-string\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3015301006072a8648ce3d020106052b81040021030103\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 306\n# 128 unused bits\nprivate = 0a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a800486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n", +static const char *kData95[] = { + "# Imported from Wycheproof's ecdh_secp224r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp224r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 565577a49415ca761a0322ad54e4ad0ae7625174baf372c2816f5328\npublic = 304e301006072a8648ce3d020106052b81040021033a00047d8ac211e1228eb094e285a957d9912e93deee433ed777440ae9fc719b01d050dfbe653e72f39491be87fb1a2742daa6e0a2aada98bb1aca\nresult = valid\nshared = b8ecdb552d39228ee332bafe4886dbff272f7109edf933bc7542bd4f\n\n# tcId = 2\n# compressed public key\nprivate = 565577a49415ca761a0322ad54e4ad0ae7625174baf372c2816f5328\npublic = 3032301006072a8648ce3d020106052b81040021031e00027d8ac211e1228eb094e285a957d9912e93deee433ed777440ae9fc71\nresult = acceptable\nshared = b8ecdb552d39228ee332bafe4886dbff272f7109edf933bc7542bd4f\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004e73a6ca72f3a2fae6e0a01a0ed03bfa3058b04576942eaf063095e62ca16fd31fa0f38eeb592cbeea1147751fdd2a5b6cc0ead404467a5b6\nresult = valid\nshared = 00000000000000000000000000000000000000000000000000000003\n\n# tcId = 4\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00045763fa2ae16367ad23d471cc9a52466f0d81d864e5640cefe384114594d9fecfbed4f254505ac8b41d2532055a07f0241c4818b552cbb636\nresult = valid\nshared = 00000000000000000000000100000000000000000000000000000001\n\n# tcId = 5\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004142c1fd80fa2121a59aa898144084ec033f7a56a34eee0b499e29ae51c6d8c1bbb1ef2a76d565899fe44ffc1207d530d7f598fb77f4bb76b\nresult = valid\nshared = 00000000000000ffffffffffffff0000000000000100000000000000\n\n# tcId = 6\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ed6f793e10c80d12d871cf8988399c4898a9bf9ffd8f27399f63de25f0051cdf4eec7f368f922cfcd948893ceca0c92e540cc4367a99a66a\nresult = valid\nshared = 00000000ffffffffffffffff00000000000000010000000000000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a000408fcfc1a63c82860be12e4137433dfc40be9acdd245f9a8c4e56be61a385fc09f808383383f4b1d0d5365b6e5dcfacdc19bc7bcfed221274\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004d883ed77f1861e8712800d31df67888fe39f150c79a27aa88caeda6b180f3f623e2ff3ab5370cf8179165b085af3dd4502850c0104caed9a\nresult = valid\nshared = 0003fffffff00000003fffffff00000003fffffff000000040000000\n\n# tcId = 9\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00042b8b279b85ee3f3d2c0abeb36fdfc5aad6157d652d26489381a32cd73224bd757ef794acc92b0b3b9e7990618bb343a9a09bdb9d3616eff6\nresult = valid\nshared = 01fffffffc00000007fffffff00000001fffffffc000000080000001\n\n# tcId = 10\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00048bd5f03391eeeae1744e8fc53d314efffafa4d3fa4f1b95c3388a9cd7c86358b273119c537133eb55e79c6ac510b10980b379b919ccf2e2f\nresult = valid\nshared = 0a15c112ff784b1445e889f955be7e3ffdf451a2c0e76ab5cb32cf41\n\n# tcId = 11\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ce9631b6a16227778625c8e5421ae083cdd913abefde01dbe69f6c2b95386aff2b483b2c47151cfaabfd000614c683ce2e1778221ae42c1b\nresult = valid\nshared = 62989eaaa26a16f07330c3c51e0a4631fd016bfcede26552816aee39\n\n# tcId = 12\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a00041f441c98eda956a6a7fdbfd8d21910860ab59d16c3e52f8e7fad6ca5df61a55fc508fc0499c55492f1e87bb2faa0cb4170b79f3a85ec2f3d\nresult = valid\nshared = 661ac958c0febbc718ccf39cefc6b66c4231fbb9a76f35228a3bf5c3\n\n# tcId = 13\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004be74583cb9d3a05ae54923624e478a329a697d842dfae33141c844d7d9ba4fc96e0fe716ac0542e87368662fc2f0cb9b0ae57936ddec7190\nresult = valid\nshared = 6d7e41821abe1094d430237923d2a50de31768ab51b12dce8a09e34c\n\n# tcId = 14\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a281ad992b363597ac93ff0de8ab1f7e51a6672dcbb58f9d739ba430ce0192874038daefc3130eec65811c7255da70fea65c1003f6892faa\nresult = valid\nshared = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 15\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004be3e22133f51203f631b81dde8c020cdea5daa1f99cfc05c88fad2dc0f243798d6e72d1de9e3cdca4144e0a6c0f2a584d07589006972c197\nresult = valid\nshared = fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008001\n\n# tcId = 16\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004af14547c20afbd91bfe64ea03d45a76a71241f23520ef897ff91eff1b54ca6ca8c25fd73852ec6654617434eff7f0225684d4dea7a4f8a97\nresult = valid\nshared = ffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004b1e484925018729926acda56ff3e2f6c1e7e8f162b178d8e8afb45564fceaa6da5d998fe26b6b26a055169063a5ab6908852ca8b54e2de6c\nresult = valid\nshared = fffff0000007fffffe000000ffffffc000001ffffff8000003ffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 00a2b6442a37f9201b56758034d2009be64b0ab7c02d7e398cac9665d6\npublic = 304e301006072a8648ce3d020106052b81040021033a0004937eb09fb145c8829cb7df20a4cbeed396791373de277871d6c5f9cc3b5b4fd56464a71fc4a2a6af3bd251952bffa829489e68a8d06f96b6\nresult = valid\nshared = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 19\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004000000000000000000000000000000000000000000000000000000037cac269c67bd55ea14efff4eadefe5e74978514af14c88fab46ec046\nresult = valid\nshared = 3fa0b9ff70b884f9f57bb84f7a9532d93f6ba803f89dd8ff008177d7\n\n# tcId = 20\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004000000000000000000000001000000000000000000000000000000012ea2f4917bdfdb008306cc10a18e2557633ba861001829dcbfb96fba\nresult = valid\nshared = be1ded8cb7ff8a585181f96d681e31b332fe27dcae922dca2310300d\n\n# tcId = 21\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000ffffffffffffff000000000000010000000000000073ca5f8f104997a2399e0c7f25e72a75ec29fc4542533d3fea89a33a\nresult = valid\nshared = a2e86a260e13515918a0cafdd87855f231b5624c560f976159e06a75\n\n# tcId = 22\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000ffffffffffffffff000000000000000100000000000000006fe6805f59b19b0dd389452a1d4a420bfeb6c369cf6fed5b12e6e654\nresult = valid\nshared = 31ef7c8d10404a0046994f313a70574b027e87f9028eca242c1b5bf5\n\n# tcId = 23\n# edge cases for ephemeral key\nprivate = 2bc15", + "cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff77c5cfa4e2c384938d48bd8dd98f54c86b279f1df8c0a1f6692439c9\nresult = valid\nshared = d1976a8ef5f54f24f5a269ad504fdca849fc9c28587ba294ef267396\n\n# tcId = 24\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040003fffffff00000003fffffff00000003fffffff00000004000000001f0828136016bb97445461bc59f2175d8d23557d6b9381f26136e3d\nresult = valid\nshared = ce7890d108ddb2e5474e6417fcf7a9f2b3bd018816062f4835260dc8\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000401fffffffc00000007fffffff00000001fffffffc0000000800000012d8acca6f199d4a94b933ba1aa713a7debde8ac57b928f596ae66a66\nresult = valid\nshared = 30b6ff6e8051dae51e4fe34b2d9a0b1879153e007eb0b5bdf1791a9c\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00040a15c112ff784b1445e889f955be7e3ffdf451a2c0e76ab5cb32cf413d4df973c563c6decdd435e4f864557e4c273096d9941ca4260a266e\nresult = valid\nshared = 77ec668a00f72d85aa527624abb16c039fe490d17dd6c455a1ed7fd8\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a000462989eaaa26a16f07330c3c51e0a4631fd016bfcede26552816aee39389ee9436d616cab90032931aa7fbbfcfc13309f61e2423cc8dab93c\nresult = valid\nshared = a3f432f6aba9a92f49a5ea64ffe7059a9d9b487a0b5223ddc988208b\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004661ac958c0febbc718ccf39cefc6b66c4231fbb9a76f35228a3bf5c3103b8040e3cb41966fc64a68cacb0c14053f87d27e8ed7bf2d7fe51b\nresult = valid\nshared = 1530fd9caf03737af34a4ba716b558cbecbc35d18402535a0a142313\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00046d7e41821abe1094d430237923d2a50de31768ab51b12dce8a09e34c276cf273d75d367820dd556182def0957af0a314f48fed227c298dc0\nresult = valid\nshared = cfc39ccacb94ad0e0552b2e47112f60fbbe7ae0dc32230b9273dd210\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a00047fffffffffffffffffffffffffffffffffffffffffffffffffffffff7d8dbca36c56bcaae92e3475f799294f30768038e816a7d5f7f07d77\nresult = valid\nshared = 73bd63bd384a0faafb75cfed3e95d3892cbacf0db10f282c3b644771\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc000800174f1ff5ea7fbc72b92f61e06556c26bab84c0b082dd6400ca1c1eb6d\nresult = valid\nshared = 85b079c62e1f5b0fd6841dfa16026e15b641f65e13a14042567166bb\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0126fdd5fccd0b5aa7fd5bb5b1308584b30556248cec80208a2fe962\nresult = valid\nshared = 8a834ff40e3fc9f9d412a481e18537ea799536c5520c6c7baaf12166\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fffff0000007fffffe000000ffffffc000001ffffff8000003ffffff20cfa23077acc9fbcb71339c65880cd0b966b8a9497e65abed17f0b5\nresult = valid\nshared = a0887269766e6efcbc81d2b38f2d4638663f12377468a23421044188\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 2bc15cf3981f4e15bbad387b506df647989e5478160be862f8c26969\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffff00000000ffffffff00000000ffffffff00000000ffffffff1c05ac2d4f10b69877c3243d51f887277b7bf735c326ab2f0d70da8c\nresult = valid\nshared = c65d1911bc076a74588d8793ce7a0dcabf5793460cd2ebb02754a1be\n\n# tcId = 35\n# point with coordinate y = 1\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00043b5889352ddf7468bf8c0729212aa1b2a3fcb1a844b8be91abb753d500000000000000000000000000000000000000000000000000000001\nresult = valid\nshared = e973c413cc7dd34d4e3637522b2e033c20815412b67574a1f2f6bdd7\n\n# tcId = 36\n# point with coordinate y = 1\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004bf09e268942555c73ce9e00d272c9b12bf0c3fc13a639acc791167f6b05df0023c9bd41d0b0c461854582d0601182213f2219d44ea44914a\nresult = valid\nshared = ec856e807808a9c5332e886759e03f01be02437cfe0214613e4e7dc7\n\n# tcId = 37\n# point with coordinate y = 1\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00047b664cff2eef0a4f7dce24780113432f66feb25cb0931d033d63910f548ee514f6fdf1cb6f5709581c197d76a5eb218afaed19f205f4ab80\nresult = valid\nshared = 91d424e122c9c01720bbed6b53ec1b37a86996fa4fcf74bfd30f723d\n\n# tcId = 38\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00045a2b3ec1053390550b587557712bcc0bf85654d23099420154877ec4138322ca02e5fceae870227a43ae8982b67276f6d8f1dd7e12692474\nresult = valid\nshared = 012879a1ff456acb8726455836bc4f504c1bd799a4d96f514b3730c6\n\n# tcId = 39\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004fc229bb1df3e11351e7e4224f68f40c0d0e194023c6e0840cd45ee5ca242112fbab5736e821dad26493e4006e2c6125342e7d9bc25272856\nresult = valid\nshared = fd6e5edb54d7dd554f8747ec87b8031258fc0bf1d2404b64db4540d4\n\n# tcId = 40\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000469a65f62d4159235801a246f2d13e45c8983a3362da480e7a51d42a65b7047abfc2a179d943bb196fede7ac3ad8a4fcacd4c4caa717b6b26\nresult = valid\nshared = 164e95bfa2a9c3a1f959feb88720bb7a37f988a08124639d8adf86df\n\n# tcId = 41\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004dc68eb945528af0051cbf23e3eea43b2bc4c728976231e7031e63a2744ba65a4e1e34e8ec50cf7e8df4458582b16413ab83f568508c59037\nresult = valid\nshared = b0ffd55fa112aa48eddc960db4a1200d406e144aac9e109ad9892b2d\n\n# tcId = 42\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000481c89369d7be252920e08e2d6c6841b887efb4fc747db31dd1030b1919bf8ccb629b58fea6234e39812083fb0833a0c937e348eda22ea0c0\nresult = valid\nshared = d6ab4567eff21277284be082d9e09eb08bb80685f4929dc3dca4b333\n\n# tcId = 43\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000451d830f792795409f1ee972d3b94289f59206fe09e12166920739a73d2f1831b26677901bfaf8323f82b81e1012d9d3f1c9296c59c97970f\nresult = valid\nshared = b43de12912b40cbdd56e30fdfe9a2c24fb72687168c9cfe6b7476966\n\n# tcId = 44\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ab63ce55145842149f99023f37a0a89b9fc4ae6a878fdae8caf31d17ffd0d55830eed46f8255f94b6dcf98a22f1ff26dabf773d556788881\nresult = valid\nshared = 588ee0af3bc60118a715325c6d56c850f73067dcb37b7596d0cfda5f\n\n# tcId = 45\n# point with coordinate y = 1 in left to", + " right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00041d64535d54bfcccb38165acbfac01ae33db20e802c5687343cb21b7eb59d86f1892a974741925624477eef21f4e72fa04ee6ce35dfffe5f2\nresult = valid\nshared = 7219ef73ac9e47ac2e03dead23fa8382ae898e2415017cdeb4739f0f\n\n# tcId = 46\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004d9d78436a3f9c1fa20e8c2318e61e62b94623e23a0ab746c5ac0cbc38262bd66c17515d3048944dae43b2bd6dd9d7c7a0f7042de2d1001c6\nresult = valid\nshared = 267b069aac5d768a720acc62c92f20b786fc48c7da42f1f5677424ee\n\n# tcId = 47\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000465eb3750c6401339caa69ebe6dec86dfc4d79bf657d68bbdd082c5a03eb81e85931352ff338ccbc3a1d332e2d8bc84342d516da06bef220f\nresult = valid\nshared = bbdd4ac5890b9c0412e4ef3135f666e5b3ddb658ec837691e8129be8\n\n# tcId = 48\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004e92d3be1614555ae17a90647979fbb37468c55a1fff9e15f376d49994e470f515b7b3fe50cb55def16142df594c3e46d9d1354730778f9e8\nresult = valid\nshared = f793ff0d14bd7690840c733162b589cd3413d8c41f4488b427da496f\n\n# tcId = 49\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a00043c92710c9a7f6f98bbec9d2a4fa617cc70e96bc96ecd4597e329143f4750a027c6972459c091ab02c0e2a3082fccec429a38d3596e7aff2b\nresult = valid\nshared = 56c703d4716239c954109b9b841db75b04a790f1f72aa966aece3494\n\n# tcId = 50\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004568dfbfa42efc94ce207322e637b4c94f37a5668ad230e987a91d048dcadd244fc059cffab5fa8820a969353620e708e85bd5eec8a0c68ec\nresult = valid\nshared = 7823fe7eb642d50984fb32f911ef289419d85330c3398423d0eda05f\n\n# tcId = 51\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ec10837e495b644904dba58d8dd82133c905a285ae7c2a06d5ccaf6bf0fbf00d13e21a399dc95ae5524a1a37044193e94e3300259b70e058\nresult = valid\nshared = f7014d38f460836a51075cce9667b56b8851ba19011c8b0274b74a4b\n\n# tcId = 52\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004bee2f9352f42ceeb3bf3109e90e6578d0bd4888458df7d179d746977e50e53503dee83eca1824a290566588fa3591645b1a2d56861bda760\nresult = valid\nshared = 777f99f2bdaa72a1185388465ddda1d059872ad043c7cb85b94e28bb\n\n# tcId = 53\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a0004546facbcaa8b551c51715a9add5edc3c8a66dcc47a6223f605614cf7af6d92f5bdebea738658a42c6231e53c08237ccf52f79399579b2dcc\nresult = valid\nshared = a1db178b716e51e0fa46c1d74a2603005326bca7e81170d4b33a3d2a\n\n# tcId = 54\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00938f3dbe37135cdbdb9993a187a0e9b9f0def035fbc52ad59fc50421\npublic = 304e301006072a8648ce3d020106052b81040021033a000423b1811fee891adb33c8bfee289964e92a9d3358daf975d0efb73e229a3332668b7d6da290a2edc941e8bd6f2e33745fc606756eddc013bb\nresult = valid\nshared = f455c8273416199505019861266ddb9bcde7bee3c3f15a98ee54607b\n\n# tcId = 55\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a000458f53d67332415fe5b4b81999f8332fb6dcdb965d96dbcbab0fac375f29efef7ab4d94bb2d25d25205eae29fe8d9a85b811114a50f6c6859\nresult = valid\nshared = d3af1857aca1689514fcfee8d8c40b8637d40452ae35c404f9e67494\n\n# tcId = 56\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004f2d6e58fcd3ed3f656a9bc687fe4c789ba9614d0359967bc0468eabfa1658a14ef0633f2485e29141e2c4a13bd328ec9bf6af4c7a774131b\nresult = valid\nshared = 933c385d5fadb57de53e4a5d385118fce830430703c3f585a5d4d0b5\n\n# tcId = 57\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a000402ca5d1b7638b7b88ad02176bd10ff1cfe8812a62f9769a6d62e0c6c787b3e3b2a063940911bf987fc38deebf542400b8bbd9dfeb7d90a8a\nresult = valid\nshared = 75aea79d99e5c7edaab0284443b548843371d1d9b55f2d73a1a9092f\n\n# tcId = 58\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a394d8bf9b479ec3c7ac3fc6a631d01d57d338b9fb5a0ed6e5130e050cfc600cfb08e67727ac5a33345ec1d48d4a9a18516c2203acbd2667\nresult = valid\nshared = 8c1d0850691cda7523ffccf1cba44b4d472193e6a3bb0727e490a8b5\n\n# tcId = 59\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004642e26421e96fa88f956d098ac26f02f1d6faa80e460e701a3789a66c38dd95c6b33de8768c85cbe6879d0d77e29fe5a18b26a35cb60c0b6\nresult = valid\nshared = 50b9ed4d99e2f24e0096eaeded0b552cf8deff5ca8f976964ae47e92\n\n# tcId = 60\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004f974d1cbbf4171d4773c3e84eab80bc3c6c2858dadcfbd11d64316905df36fbe345f28a3ef663125649474c6fc1ebe175c3865c4469e192b\nresult = valid\nshared = 5616ee3e63dfb424d329c2b9b50cf378bb77a8bd7e314a241b5942c7\n\n# tcId = 61\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a000455561db3cc8fb08a71654ee9573a1a36a44f0913ca8ad7582cfafbfc62b31e5e78be98ad8c8ceab4bb82e8efc0acb29f1a8d031ed044046c\nresult = valid\nshared = b1da14507b5c05159e15f77d085c017acd89f158011357a97802855d\n\n# tcId = 62\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a363bcb9bddd5de84a2f4433c039f7be3fce6057b0d3b4a3459e54a2ba32302871e7ba5c3dd7ec9b76946cdc702c15a8d9ec0f4a04e7afb6\nresult = valid\nshared = 2f1bd4a5a497481c4a21222320ff61f32674a95d540cc3f4f3ca5849\n\n# tcId = 63\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a00043a656d0e25bce27282f256b121fbfcde0a180ccd7aa601a5929fc74002f89e45b4dcb873c56da5d1a28fbca33a126177b217a098e0952e62\nresult = valid\nshared = 8c807d65ba7b9fd3061dffef26c025a89524a26b942edd3a984fe51d\n\n# tcId = 64\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004bf5f49ba0086eec289b068b783438ef24b6f28130bb1ed969ef8b041f11b0de95f15edcd835f01bab1f5faaa1749c2ca4f16a7d99d916ff4\nresult = valid\nshared = 8fda76f4d124e6727f855e5f4921cc05c48e2a8ed0fee7c75d6a8047\n\n# tcId = 65\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c0af3fb50d54c554a67bd75d25ca796f0486e3fa84f9\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a57232560d9d604655181f775859b0723d4e", + "01a4c867844eb9d81dabb5d19507bbe9cda3346bad7c184daa432e7f794a5b9b8b8d4e55be3a\nresult = valid\nshared = daf35bb7bf3a056bb62bb01ba00f581c107f64de85842b3a49bc2a4a\n\n# tcId = 66\n# edge case private key\nprivate = 03\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = e71f2157bfe37697ea5193d4732dcc6e5412fa9d38387eacd391c1c6\n\n# tcId = 67\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = fa2664717c7fa0161ec2c669b2c0986cdc20456a6e5406302bb53c77\n\n# tcId = 68\n# edge case private key\nprivate = 01000000000000000000000000000000000000000000000000000000\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = af6e5ad34497bae0745f53ad78ce8b285d79f400d5c6e6a071f8e6bd\n\n# tcId = 69\n# edge case private key\nprivate = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 12fd302ff8c13c55a9c111f8bb6b0a13ecf88299c0ae3032ce2bcaff\n\n# tcId = 70\n# edge case private key\nprivate = 0080000000000000000000000000000000000000000000000000000000\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 73f1a395b842f1a6752ae417e2c3dc90cafc4476d1d861b7e68ad030\n\n# tcId = 71\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03d13dd29455c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = b329c20ddb7c78ee4e622bb23a984c0d273ba34b6269f3d9e8f89f8e\n\n# tcId = 72\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03e13cd29455c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 6f48345209b290ffc5abbe754a201479e5d667a209468080d06197b4\n\n# tcId = 73\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03e13d529455c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 9f6e30c1c9dad42a153aacd4b49a8e5c721d085cd07b5d5aec244fc1\n\n# tcId = 74\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29445c5c2a3d\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 8cadfb19a80949e61bd5b829ad0e76d18a5bb2eeb9ed7fe2b901cecd\n\n# tcId = 75\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29b7\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 475fd96e0eb8cb8f100a5d7fe043a7a6851d1d611da2643a3c6ae708\nflags = AddSubChain\n\n# tcId = 76\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a37\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 41ef931d669d1f57d8bb95a01a92321da74be8c6cbc3bbe0b2e73ebd\nflags = AddSubChain\n\n# tcId = 77\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = e71f2157bfe37697ea5193d4732dcc6e5412fa9d38387eacd391c1c6\n\n# tcId = 78\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\npublic = 304e301006072a8648ce3d020106052b81040021033a0004478e73465bb1183583f4064e67e8b4343af4a05d29dfc04eb60ac2302e5b9a3a1b32e4208d4c284ff26822e09c3a9a4683443e4a35175504\nresult = valid\nshared = 11ff15126411299cbd49e2b7542e69e91ef132e2551a16ecfebb23a3\nflags = AddSubChain\n\n# tcId = 79\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 80\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 81\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 82\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 83\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 84\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 85\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 86\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a000400000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 87\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 88\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 89\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 90\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b9", + "91cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 91\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000100000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 92\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff00000000000000000000000100000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 93\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 94\n# point is not on curve\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffffffffffffffffffffffffff000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 95\nprivate = 00c6cafb74e2a5b5ed4b991cbbfbc28c18f6df208b6d05e7a2e6668014\npublic = 3015301006072a8648ce3d020106052b81040021030100\nresult = invalid\nshared = \n\n# tcId = 96\n# public point not on curve\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 304e301006072a8648ce3d020106052b81040021033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5d\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 97\n# public point = (0,0)\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 304e301006072a8648ce3d020106052b81040021033a00040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 98\n# order = -26959946667150639794667015087019625940457807714424391721682722368061\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021dff0000000000000000000000000000e95d1f470fc1ec22d6baa3a3d5c3020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 99\n# order = 0\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3081f73081b806072a8648ce3d02013081ac020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34020100020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 100\n# order = 1\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3081f73081b806072a8648ce3d02013081ac020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34020101020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 101\n# order = 6277101735386680763835789423207665314073163949517624387909\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3082010f3081d006072a8648ce3d02013081c4020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021900ffffffffffffffffffffffffffff16a2e0b8f03e13dd2945020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 102\n# generator = (0,0)\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb40439040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 103\n# generator not on curve\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e36021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 104\n# cofactor = -1\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 105\n# cofactor = 0\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b", + "94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 106\n# cofactor = 2\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020102033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 107\n# cofactor =\n# 26959946667150639794667015087019625940457807714424391721682722368061\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3082012f3081f006072a8648ce3d02013081e4020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = invalid\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 108\n# cofactor = None\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201103081d106072a8648ce3d02013081c5020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cfffffffffffffffffffffffffffffffefffffffffffffffffffffffe041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 109\n# modified prime\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00c123da0a46a971da9468161e61a5c71a02e6c9bdb3392f4016fb457b303c041c3edc25f5b9568e256b97e9e19e5a38e4fd1936424cc6d0bfe904ba83041cb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4043904000000000000000000285145f31ae4d40000000000000000000003387edad63d1a600740ce66b6f04d67ed06ea1a75c16294336ed05b3fa3021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004000000000000000000285145f31ae4d40000000000000000000003387edad63d1a600740ce66b6f04d67ed06ea1a75c16294336ed05b3fa3\nresult = invalid\nshared = 3de0a5036fcde544c72cbe33cedb8709549bc3b6a4d750ee0de4c80d\nflags = ModifiedPrime,InvalidPublic,UnnamedCurve\n\n# tcId = 110\n# using secp256r1\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbf6606595a3ee50f9fceaa2798c2740c82540516b4e5a7d361ff24e9dd15364e5408b2e679f9d5310d1f6893b36ce16b4a507509175fcb52aea53b781556b39\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 111\n# using secp256k1\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 112\n# a = 0\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 3081f83081b906072a8648ce3d02013081ad020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff0000000000000000000000013021040100041cd0d5e347a38ce5b6e1f47edddd8a223bca45d2015de76ec835a4df57043904a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004a10fb7bf22d299fc5bc43bd2d0e8da28af28ace8430bee28f9e5b57554275c0615d8d9a3011d7bc4c1c4cf4a834c8dc46f25b98854401a5b\nresult = acceptable\nshared = 9b992dad1c2b5dadd3b5aeb84b7a91fb6fe5f46e02ab2c7fa32696a7\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 113\n# public key of order 3\nprivate = 00d07629eb653a169ae3231ea1030faaf3e7f8ffe388030ee315d0a1d2\npublic = 308201133081d406072a8648ce3d02013081c8020101302806072a8648ce3d0101021d00ffffffffffffffffffffffffffffffff000000000000000000000001303c041cacb441c744c5af60905e78cd53b10f4aec9f30a302bb4ab0aeb53182041c2356bdcb3ae3e1c1e31741c951add1b2b0f87305d01021232aa22e0c043904bafbb7559c7335192c6f0cc5970e9c92a12e9af1a0cb5403d9bcc4eb7a545a1d9302be01456f17846a445ef45ff7c31710b08a6881dc11d1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101033a0004bafbb7559c7335192c6f0cc5970e9c92a12e9af1a0cb5403d9bcc4eb85aba5e26cfd41feba90e87b95bba10aa0083ce8ef4f75977e23ee30\nresult = invalid\nshared = \nflags = WeakPublicKey,InvalidPublic,UnnamedCurve\n\n# tcId = 114\n# Public key uses wrong curve: secp256r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ea36cf70fab75684eabe6569ce623db0deaa8c95f61c8be50b8b9f3eb7d4b9ec48d9e4814f4cb1c286589eaaa990d3f3238b2d6d6be964abfad964824b653376\nresult = invalid\nshared = \n\n# tcId = 115\n# Public key uses wrong curve: secp384r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3076301006072a8648ce3d020106052b81040022036200044b2470ad3d13269c10a17d222ebdffbd61fb04488db1b1d7caef8d4988b7bb8ba6d81857a05b255232b9e37a30e328bb9d9c42d86096f2bcee3d258cfe208d2fd03cbd5ccc6a3bb8ce4b0efa5b059b4afbd0377aa6e274721a57efe8ee85d86a\nresult = invalid\nshared = \n\n# tcId = 116\n# Public key uses wrong curve: secp521r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 30819b301006072a8648ce3d020106052b810400230381860004012841a2260f0f1f424865fef275374779bf0355720223f8ec6a9ba767b1603b492f58a6bba1705d882257bc6be1935de4411c5f1fdad44ec65ba8b97ce0e73e1ac90006937832a602147e37c1a42ca2a63629ffc9a35b31bfacb38c6242b42916125f7446b45c718f797259bc3011cb71e868560b331cf7d01139a0643443f9fd7306c1\nresult = invalid\nshared = \n\n# tcId = 117\n# Public key uses wrong curve: secp256k1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3056301006072a8648ce3d020106052b8104000a03420004c2199fecf75648c0e952dff143821fa4012b28f90435ce6ee54653687f969a76092a3844e17d478a594f43b28cc10a5c553b4f64906121031c3a79299c70dbd6\nresult = invalid\nshared = \n\n# tcId = 118\n# Public key uses wrong curve: secp224k1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 304e301006072a8648ce3d020106052b81040020033a000473e833aee75c67a34cc497fd01275372d09e3e8f2ff054c8c29e405ef3e35d699190a448079c058022512fa9976e504e298baee340d5648b\nresult = invalid\nshared = \n\n# tcId = 119\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a00046caa3d6d86f792df7b29e41eb4203150f60f4fca10f57d0b2454abfb201f9f7e6dcbb92bdcfb9240dc86bcaeaf157c77bca22b2ec86ee8d6\nresult = invalid\nshared = \n\n# tcId = 120\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 305a301406072a8648ce3d02010609", + "2b2403030208010107034200042750180012c3ba7489517d428e4826784e50b50ac42ef7991c61a396c03a52da5e74908ae8a89627a7c15e554b105b0ebaeebcfed10e3ea60223d0a8bc3b36ab\nresult = invalid\nshared = \n\n# tcId = 121\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 306a301406072a8648ce3d020106092b2403030208010109035200045b523d3a8f20f6a569c6951e0b8de48d89e7549a184e8506820421c3e404473692cd248d7480843b911d87a87e401112fce0d3d2c36978cf6dd7f1d93bfaebe0827d4bf4006006d3202e842126fe1b68\nresult = invalid\nshared = \n\n# tcId = 122\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 307a301406072a8648ce3d020106092b240303020801010b03620004449607c76c6dc7334c269a0ebab5beec83b6c263377ce06ef5c276f45a9916eff85f50438f5f32ced0210a6c414fe5e242c7c1070823f5395b35965bda6758acf84725f11ea836dda7d391fee91342026645241853224a437a6fb74e4cdc871f\nresult = invalid\nshared = \n\n# tcId = 123\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 30819b301406072a8648ce3d020106092b240303020801010d038182000463e7a491240848e4f53ea5fb857d428c493053193e4b0b4f995ac8bf4c56276a507870131a384aa7e236c64cd7a049a1b37e40ad00c3b8a920dcbad6531616356ce1b6e6d96a7d1b693e25e5abd83ab560a3d764bcd49ec98a1b49421163bd5fc5a625f44c91eb4c2984d5a2e51e816ebdee8fbe08364bb14b7ac876990e64d9\nresult = invalid\nshared = \n\n# tcId = 124\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a00047c592ecb8908355d1ebf8d59b3619275dbe3666209b72ced6a3c88740456ce61d6a84e0542d7cd10dd8804afb8c784d5dffd9480d8cfdc95\nresult = invalid\nshared = \n\n# tcId = 125\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 305a301406072a8648ce3d020106092b240303020801010803420004746226a3e005c37ede51828d3375ef91ebd0ff719a380af69d7dfd131b42a3e8917d4a4d573872935a74d1040f1c47d25d6b26f4156cccdcdc11833b9cde433a\nresult = invalid\nshared = \n\n# tcId = 126\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 306a301406072a8648ce3d020106092b240303020801010a035200043298b36825c7bd90ab5157b913d40bbfd732a0de0557e02a2c65a0c223e9a65d62c32462040dd6fe578103023c831caff122c1ed4b8ff7373fa2f08d11c9f4c7f85f81802262ffed9bb82cb6d92eed2d\nresult = invalid\nshared = \n\n# tcId = 127\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 307a301406072a8648ce3d020106092b240303020801010c036200043af2849b981f7e5e6ab936e6abb4f206c1fd5561998df8008bfe98d84173c9f2301cdbd5bffc569c0b5a57ce2a8f4d640f1816475fc6043baa8e5a3453bf327b54cb29c7e54a5f31348969aa94615094dbcd1a8e5c2d630465e45fc556c02194\nresult = invalid\nshared = \n\n# tcId = 128\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 2ddd06cb77ca2eae5266a34a107b49e56ffb4c2d3952112da2df90fc\npublic = 30819b301406072a8648ce3d020106092b240303020801010e038182000453d2506047e72af6d98558e1633ecb7e6a05c37861cd3289455cf41bfbf1703f2e9a83052b8eca7d84cba2f001abd8b978f68b69ed6bd874755c44d347fe302c5760b2078c56b24ebd0dcd99f26b8f8a23044b3767a3d2a306587687a7b00668974674edbf18c3db2f3473a97ee77065fdcdd1a9aa053716a4c504f3d18b9170\nresult = invalid\nshared = \n\n# tcId = 129\n# invalid public key\nprivate = 00fc28a0ca0f8e36b0d4f71421845135a22aef543b9fddf8c775b2d18f\npublic = 3032301006072a8648ce3d020106052b81040021031e00020ca753db5ddeca474241f8d2dafc0844343fd0e37eded2f0192d51b2\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 130\n# long form encoding of length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30814e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 131\n# long form encoding of length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f30811006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 132\n# length of sequence contains leading 0\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3082004e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 133\n# length of sequence contains leading 0\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503082001006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 134\n# wrong length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 135\n# wrong length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 136\n# wrong length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301106072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 137\n# wrong length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e300f06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 138\n# uint32 overflow in length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3085010000004e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 139\n# uint32 overflow in length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533085010000001006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 140\n# uint64 overflow in length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 308901000000000000004e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 141\n# uint64 overflow in length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npubl", + "ic = 3057308901000000000000001006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 142\n# length of sequence = 2**31 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30847fffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 143\n# length of sequence = 2**31 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305230847fffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 144\n# length of sequence = 2**32 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3084ffffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 145\n# length of sequence = 2**32 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30523084ffffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 146\n# length of sequence = 2**40 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3085ffffffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 147\n# length of sequence = 2**40 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533085ffffffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 148\n# length of sequence = 2**64 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3088ffffffffffffffff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 149\n# length of sequence = 2**64 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563088ffffffffffffffff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 150\n# incorrect length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30ff301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 151\n# incorrect length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e30ff06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 152\n# indefinite length without termination\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 153\n# indefinite length without termination\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e308006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 154\n# indefinite length without termination\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006802a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 155\n# indefinite length without termination\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106802b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 156\n# indefinite length without termination\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b810400210380000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 157\n# removing sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = \nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 158\n# removing sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303c033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 159\n# lonely sequence tag\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 160\n# lonely sequence tag\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303d30033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 161\n# appending 0's to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 162\n# appending 0's to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106052b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 163\n#", + " prepending 0's to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30500000301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 164\n# prepending 0's to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012000006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 165\n# appending unused 0's to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 166\n# appending unused 0's to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 167\n# appending null value to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 168\n# appending null value to sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106052b810400210500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 169\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053498177304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 170\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30522500304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 171\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620004deadbeef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 172\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533015498177301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 173\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305230142500301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 174\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563012301006072a8648ce3d020106052b810400210004deadbeef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 175\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533015260c49817706072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 176\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30523014260b250006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 177\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563018260906072a8648ce3d02010004deadbeef06052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 178\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d0201260a49817706052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 179\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d02012609250006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 180\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301806072a8648ce3d0201260706052b810400210004deadbeef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 181\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b81040021233f498177033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 182\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b81040021233e2500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 183\n# including garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301006072a8648ce3d020106052b81040021233c033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620004deadbeef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidA", + "sn\n\n# tcId = 184\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056aa00bb00cd00304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 185\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054aa02aabb304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 186\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563018aa00bb00cd00301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 187\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30543016aa02aabb301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 188\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30563018260faa00bb00cd0006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 189\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30543016260daa02aabb06072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 190\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301806072a8648ce3d0201260daa00bb00cd0006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 191\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054301606072a8648ce3d0201260baa02aabb06052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 192\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301006072a8648ce3d020106052b810400212342aa00bb00cd00033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 193\n# including undefined tags\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054301006072a8648ce3d020106052b810400212340aa02aabb033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 194\n# truncated length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3081\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 195\n# truncated length of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303e3081033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 196\n# Replacing sequence with NULL\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 0500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 197\n# Replacing sequence with NULL\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303e0500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 198\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 2e4e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 199\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 2f4e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 200\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 314e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 201\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 324e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 202\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = ff4e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 203\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e2e1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 204\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e2f1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 205\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e311006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3d", + "a62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 206\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e321006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 207\n# changing tag value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304eff1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 208\n# dropping value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 209\n# dropping value of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 303e3000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 210\n# truncated sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 211\n# truncated sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d1006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 212\n# truncated sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06072a8648ce3d020106052b810400033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 213\n# truncated sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 214\n# indefinite length\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 215\n# indefinite length\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050308006072a8648ce3d020106052b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 216\n# indefinite length with truncated delimiter\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da6200\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 217\n# indefinite length with truncated delimiter\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f308006072a8648ce3d020106052b8104002100033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 218\n# indefinite length with additional element\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da6205000000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 219\n# indefinite length with additional element\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052308006072a8648ce3d020106052b8104002105000000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 220\n# indefinite length with truncated element\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62060811220000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 221\n# indefinite length with truncated element\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054308006072a8648ce3d020106052b81040021060811220000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 222\n# indefinite length with garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000fe02beef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 223\n# indefinite length with garbage\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3054308006072a8648ce3d020106052b810400210000fe02beef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 224\n# indefinite length with nonempty EOC\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3080301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620002beef\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 225\n# indefinite length with nonempty EOC\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052308006072a8648ce3d020106052b810400210002beef033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 226\n# prepend empty sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503000301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags", + " = InvalidAsn\n\n# tcId = 227\n# prepend empty sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012300006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 228\n# append empty sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da623000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 229\n# append empty sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106052b810400213000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 230\n# append garbage with high tag number\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3051301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62bf7f00\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 231\n# append garbage with high tag number\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3051301306072a8648ce3d020106052b81040021bf7f00033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 232\n# sequence of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 233\n# sequence of sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 234\n# truncated sequence: removed last 1 elements\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3012301006072a8648ce3d020106052b81040021\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 235\n# truncated sequence: removed last 1 elements\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3047300906072a8648ce3d0201033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 236\n# repeating element in sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30818a301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 237\n# repeating element in sequence\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3055301706072a8648ce3d020106052b8104002106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 238\n# long form encoding of length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f30110681072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 239\n# long form encoding of length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106072a8648ce3d02010681052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 240\n# length of oid contains leading 0\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012068200072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 241\n# length of oid contains leading 0\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d0201068200052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 242\n# wrong length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006082a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 243\n# wrong length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006062a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 244\n# wrong length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106062b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 245\n# wrong length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106042b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 246\n# uint32 overflow in length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30533015068501000000072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 247\n# uint32 overflow in length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d0201068501000000052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509", + "fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 248\n# uint64 overflow in length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301906890100000000000000072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 249\n# uint64 overflow in length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301906072a8648ce3d020106890100000000000000052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 250\n# length of oid = 2**31 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406847fffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 251\n# length of oid = 2**31 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d020106847fffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 252\n# length of oid = 2**32 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305230140684ffffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 253\n# length of oid = 2**32 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d02010684ffffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 254\n# length of oid = 2**40 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305330150685ffffffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 255\n# length of oid = 2**40 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301506072a8648ce3d02010685ffffffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 256\n# length of oid = 2**64 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 305630180688ffffffffffffffff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 257\n# length of oid = 2**64 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301806072a8648ce3d02010688ffffffffffffffff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 258\n# incorrect length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006ff2a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 259\n# incorrect length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106ff2b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 260\n# removing oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3045300706052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 261\n# lonely oid tag\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304630080606052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 262\n# lonely oid tag\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3048300a06072a8648ce3d020106033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 263\n# appending 0's to oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206092a8648ce3d0201000006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 264\n# appending 0's to oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106072b810400210000033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 265\n# prepending 0's to oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012060900002a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 266\n# prepending 0's to oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d0201060700002b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 267\n# appending unused 0's to oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d0201000006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 268\n# appending null value to oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206092a8648ce3d0201050006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d79", + "4228029b10da63\nflags = InvalidAsn\n\n# tcId = 269\n# appending null value to oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301206072a8648ce3d020106072b810400210500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 270\n# truncated length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30473009068106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 271\n# truncated length of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3049300b06072a8648ce3d02010681033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 272\n# Replacing oid with NULL\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30473009050006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 273\n# Replacing oid with NULL\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3049300b06072a8648ce3d02010500033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 274\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301004072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 275\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301005072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 276\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301007072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 277\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301008072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 278\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e3010ff072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 279\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020104052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 280\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020105052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 281\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020107052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 282\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020108052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 283\n# changing tag value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d0201ff052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 284\n# dropping value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30473009060006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 285\n# dropping value of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3049300b06072a8648ce3d02010600033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 286\n# modify first byte of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e30100607288648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 287\n# modify first byte of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052981040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 288\n# modify last byte of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d028106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 289\n# modify last byte of oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b810400a1033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 290\n# truncated oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06062a8648ce3d0206052b81", + "040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 291\n# truncated oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06068648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 292\n# truncated oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06072a8648ce3d020106042b810400033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 293\n# truncated oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d300f06072a8648ce3d0201060481040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 294\n# wrong oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304c300e06052b0e03021a06052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 295\n# wrong oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30503012060960864801650304020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 296\n# wrong oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b0e03021a033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 297\n# wrong oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d02010609608648016503040201033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 298\n# longer oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106082a8648ce3d02010106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 299\n# longer oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106072a8648ce3d020106062b8104002101033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 300\n# oid with modified node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d021106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 301\n# oid with modified node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 30523014060b2a8648ce3d02888080800106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 302\n# oid with modified node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040031033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 303\n# oid with modified node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301406072a8648ce3d020106092b8104008880808021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 304\n# large integer in oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301906102a8648ce3d028280808080808080800106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 305\n# large integer in oid\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301906072a8648ce3d0201060e2b81040082808080808080808021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 306\n# oid with invalid node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106082a8648ce3d0201e006052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 307\n# oid with invalid node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106082a808648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 308\n# oid with invalid node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106072a8648ce3d020106062b81040021e0033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 309\n# oid with invalid node\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301106072a8648ce3d020106062b8081040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 310\n# long form encoding of length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304f301006072a8648ce3d020106052b8104002103813a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 311\n# length of bit string contains leading 0\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b810400210382003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshar", + "ed = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 312\n# wrong length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033b000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 313\n# wrong length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b810400210339000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 314\n# uint32 overflow in length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b810400210385010000003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 315\n# uint64 overflow in length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3057301006072a8648ce3d020106052b81040021038901000000000000003a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 316\n# length of bit string = 2**31 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b8104002103847fffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 317\n# length of bit string = 2**32 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b810400210384ffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 318\n# length of bit string = 2**40 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3053301006072a8648ce3d020106052b810400210385ffffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 319\n# length of bit string = 2**64 - 1\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3056301006072a8648ce3d020106052b810400210388ffffffffffffffff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 320\n# incorrect length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b8104002103ff000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 321\n# lonely bit string tag\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3013301006072a8648ce3d020106052b8104002103\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 322\n# appending 0's to bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620000\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 323\n# prepending 0's to bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c0000000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 324\n# appending null value to bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3050301006072a8648ce3d020106052b81040021033c000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da620500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 325\n# truncated length of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210381\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 326\n# Replacing bit string with NULL\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210500\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 327\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021013a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 328\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021023a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 329\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021043a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 330\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021053a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 331\n# changing tag value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021ff3a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 332\n# dropping value of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3014301006072a8648ce3d020106052b810400210300\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 333\n# modify first byte of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a020486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72f", + "a4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 334\n# modify last byte of bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3dae2\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 335\n# truncated bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b810400210339000486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 336\n# truncated bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304d301006072a8648ce3d020106052b8104002103390486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 337\n# declaring bits as unused in bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a010486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 338\n# unused bits in bit string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3052301006072a8648ce3d020106052b81040021033e200486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da6201020304\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 339\n# unused bits in empty bit-string\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 3015301006072a8648ce3d020106052b81040021030103\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n# tcId = 340\n# 128 unused bits\nprivate = 00a1b9444f59642d428e2f299055004165a34c3b8796c5057ae8a1a572\npublic = 304e301006072a8648ce3d020106052b81040021033a800486e2f72bccd974a3f1a4fc2cdcf22043eaf8be047de6be726b62001fda6f50f6df0b51bee99195d8a1a1c97e59e72fa4fcf8c1d21cb3da62\nresult = acceptable\nshared = 85a70fc4dfc8509fb9ba1cfcf1879443e2ce176d794228029b10da63\nflags = InvalidAsn\n\n", }; -static const size_t kLen63 = 201337; +static const size_t kLen96 = 196857; -static const char *kData63[] = { - "# Imported from Wycheproof's ecdh_secp256r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.4.12\n\n[curve = secp256r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 612465c89a023ab17855b0a6bcebfd3febb53aef84138647b5352e02c10c346\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000462d5bd3372af75fe85a040715d0f502428e07046868b0bfdfa61d731afe44f26ac333a93a9e70a81cd5a95b5bf8d13990eb741c8c38872b4a07d275a014e30cf\nresult = valid\nshared = 53020d908b0219328b658b525f26780e3ae12bcd952bb25a93bc0895e1714285\n\n# tcId = 2\n# compressed public key\nprivate = 612465c89a023ab17855b0a6bcebfd3febb53aef84138647b5352e02c10c346\npublic = 3039301306072a8648ce3d020106082a8648ce3d0301070322000362d5bd3372af75fe85a040715d0f502428e07046868b0bfdfa61d731afe44f26\nresult = acceptable\nshared = 53020d908b0219328b658b525f26780e3ae12bcd952bb25a93bc0895e1714285\n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 3\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000458fd4168a87795603e2b04390285bdca6e57de6027fe211dd9d25e2212d29e62080d36bd224d7405509295eed02a17150e03b314f96da37445b0d1d29377d12c\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040f6d20c04261ecc3e92846acad48dc8ec5ee35ae0883f0d2ea71216906ee1c47c042689a996dd12830ae459382e94aac56b717af2e2080215f9e41949b1f52be\nresult = valid\nshared = 00000000000000000000000000000000ffffffffffffffffffffffffffffffff\n\n# tcId = 5\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400c7defeb1a16236738e9a1123ba621bc8e9a3f2485b3f8ffde7f9ce98f5a8a1cb338c3912b1792f60c2b06ec5231e2d84b0e596e9b76d419ce105ece3791dbc\nresult = valid\nshared = 0000000000000000ffffffffffffffff00000000000000010000000000000001\n\n# tcId = 6\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e9b98fb2c0ac045f8c76125ffd99eb8a5157be1d7db3e85d655ec1d8210288cf218df24fd2c2746be59df41262ef3a97d986744b2836748a7486230a319ffec0\nresult = valid\nshared = 00000000ffffffff00000000ffffffff00000000ffffffff0000000100000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e9484e58f3331b66ffed6d90cb1c78065fa28cfba5c7dd4352013d3252ee4277bd7503b045a38b4b247b32c59593580f39e6abfa376c3dca20cf7f9cfb659e13\nresult = valid\nshared = 000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004767d7fbb84aa6a4db1079372644e42ecb2fec200c178822392cb8b950ffdd0c91c86853cafd09b52ba2f287f0ebaa26415a3cfabaf92c6a617a19988563d9dea\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010001\n\n# tcId = 9\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c74d546f2fcc6dd392f85e5be167e358de908756b0c0bb01cb69d864ca083e1c93f959eece6e10ee11bd3934207d65ae28af68b092585a1509260eceb39b92ef\nresult = valid\nshared = 085ec5a4af40176b63189069aeffcb229c96d3e046e0283ed2f9dac21b15ad3c\n\n# tcId = 10\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000434fc9f1e7a094cd29598d1841fa9613dbe82313d633a51d63fb6eff074cc9b9a4ecfd9f258c5c4d4210b49751213a24c596982bd1d54e0445443f21ef15492a5\nresult = valid\nshared = 190c25f88ad9ae3a098e6cffe6fd0b1bea42114eb0cedd5868a45c5fe277dff3\n\n# tcId = 11\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d5c96efd1907fd48de2ad715acf82eae5c6690fe3efe16a78d61c68d3bfd10df03eac816b9e7b776192a3f5075887c0e225617505833ca997cda32fd0f673c5e\nresult = valid\nshared = 507442007322aa895340cba4abc2d730bfd0b16c2c79a46815f8780d2c55a2dd\n\n# tcId = 12\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f475f503a770df72c45aedfe42c008f59aa57e72b232f26600bdd0353957cb20bdb8f6405b4918050a3549f44c07a8eba820cdce4ece699888c638df66f54f7c\nresult = valid\nshared = 5f177bfe19baaaee597e68b6a87a519e805e9d28a70cb72fd40f0fe5a754ba45\n\n# tcId = 13\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f3cb6754b7e2a86d064dfb9f903185aaa4c92b481c2c1a1ff276303bbc4183e49c318599b0984c3563df339311fe143a7d921ee75b755a52c6f804f897b809f7\nresult = valid\nshared = 7fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff\n\n# tcId = 14\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cce13fbdc96a946dfb8c6d9ed762dbd1731630455689f57a437fee124dd54cecaef78026c653030cf2f314a67064236b0a354defebc5e90c94124e9bf5c4fc24\nresult = valid\nshared = 8000000000000000000000000000000000000000000000000000000000000004\n\n# tcId = 15\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047633dfd0ad06765097bc11bd5022b200df31f28c4ff0625421221ac7eeb6e6f4cb9c67693609ddd6f92343a5a1c635408240f4f8e27120c12554c7ff8c76e2fe\nresult = valid\nshared = 8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000000\n\n# tcId = 16\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a386ace573f87558a68ead2a20088e3fe928bdae9e109446f93a078c15741f0421261e6db2bf12106e4c6bf85b9581b4c0302a526222f90abc5a549206b11011\nresult = valid\nshared = ff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e7b50f7d8c44d5d3496c43141a502f4a43f153d03ad43eda8e39597f1d477b8647f3da67969b7f989ff4addc393515af40c82085ce1f2ee195412c6f583774f\nresult = valid\nshared = ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c827fb930fd51d926086191b502af83abb5f717debc8de29897a3934b2571ca05990c0597b0b7a2e42febd56b13235d1d408d76ed2c93b3facf514d902f6910a\nresult = valid\nshared = ffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff\n\n# tcId = 19\n# y-coordinate of the public key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cbc1b31b43f17dc200dd70c2944c04c6cb1b082820c234a300b05b7763844c74fde0a4ef93887469793270eb2ff148287da9265b0334f9e2609aac16e8ad503\nresult = valid\nshared = 7fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff\n\n# tcId = 20\n# y-coordinate of the public key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042830d96489ae24b79cad425056e82746f9e3f419ab9aa21ca1fbb11c7325e7d318abe66f575ee8a2f1c4a80e35260ae82ad7d6f661d15f06967930a585097ef7\nresult = valid\nshared = 00000000000000000000000011112", - "4f400000000000000000000000000000000\n\n# tcId = 21\n# y-coordinate of the public key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004450b6b6e2097178e9d2850109518d28eb3b6ded2922a5452003bc2e4a4ec775c894e90f0df1b0e6cadb03b9de24f6a22d1bd0a4a58cd645c273cae1c619bfd61\nresult = valid\nshared = 000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff\n\n# tcId = 22\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cbc1b31b43f17dc200dd70c2944c04c6cb1b082820c234a300b05b7763844c7b021f5b006c778ba686cd8f14d00eb7d78256d9b4fccb061d9f6553e91752afc\nresult = valid\nshared = 7fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff\n\n# tcId = 23\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042830d96489ae24b79cad425056e82746f9e3f419ab9aa21ca1fbb11c7325e7d3e754198fa8a1175e0e3b57f1cad9f517d528290a9e2ea0f96986cf5a7af68108\nresult = valid\nshared = 000000000000000000000000111124f400000000000000000000000000000000\n\n# tcId = 24\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004450b6b6e2097178e9d2850109518d28eb3b6ded2922a5452003bc2e4a4ec775c76b16f0e20e4f194524fc4621db095dd2e42f5b6a7329ba3d8c351e39e64029e\nresult = valid\nshared = 000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff\n\n# tcId = 25\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049a0f0e3dd31417bbd9e298bc068ab6d5c36733af26ed67676f410c804b8b2ca1b02c82f3a61a376db795626e9400557112273a36cddb08caaa43953965454730\nresult = valid\nshared = 7fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff\n\n# tcId = 26\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e5d22d5e53ec797c55ecd68a08a7c3361cd99ca7fad1a68ea802a6a4cb58a918ea7a07023ef67677024bd3841e187c64b30a30a3750eb2ee873fbe58fa1357b\nresult = valid\nshared = 0000000000000000000000001f6bd1e500000000000000000000000000000000\n\n# tcId = 27\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004293aa349b934ab2c839cf54b8a737df2304ef9b20fa494e31ad62b315dd6a53c118182b85ef466eb9a8e87f9661f7d017984c15ea82043f536d1ee6a6d95b509\nresult = valid\nshared = 000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff\n\n# tcId = 28\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049a0f0e3dd31417bbd9e298bc068ab6d5c36733af26ed67676f410c804b8b2ca14fd37d0b59e5c893486a9d916bffaa8eedd8c5ca3224f73555bc6ac69abab8cf\nresult = valid\nshared = 7fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff\n\n# tcId = 29\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e5d22d5e53ec797c55ecd68a08a7c3361cd99ca7fad1a68ea802a6a4cb58a9171585f8edc1098998fdb42c7be1e7839b4cf5cf6c8af14d1178c041a705eca84\nresult = valid\nshared = 0000000000000000000000001f6bd1e500000000000000000000000000000000\n\n# tcId = 30\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004293aa349b934ab2c839cf54b8a737df2304ef9b20fa494e31ad62b315dd6a53cee7e7d46a10b99156571780699e082fe867b3ea257dfbc0ac92e1195926a4af6\nresult = valid\nshared = 000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000000000000000000000000000000000000000000066485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4\nresult = valid\nshared = cfe4077c8730b1c9384581d36bff5542bc417c9eff5c2afcb98cc8829b2ce848\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000ffffffffffffffffffffffffffffffff4f2b92b4c596a5a47f8b041d2dea6043021ac77b9a80b1343ac9d778f4f8f733\nresult = valid\nshared = 49ae50fe096a6cd26698b78356b2c8adf1f6a3490f14e364629f7a0639442509\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000ffffffffffffffff0000000000000001000000000000000138120be6ab31edfa34768c4387d2f84fb4b0be8a9a985864a1575f4436bb37b0\nresult = valid\nshared = 5a1334572b2a711ead8b4653eb310cd8d9fd114399379a8f6b872e3b8fdda2d9\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000ffffffff00000000ffffffff00000000ffffffff0000000100000000462c0466e41802238d6c925ecbefc747cfe505ea196af9a2d11b62850fce946e\nresult = valid\nshared = c73755133b6b9b4b2a00631cbc7940ecbe6ec08f20448071422e3362f2556888\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff1582fa32e2d4a89dfcfb3d0b149f667dba3329490f4d64ee2ad586c0c9e8c508\nresult = valid\nshared = 06fa1059935e47a9fd667e13f469614eb257cc9a7e3fc599bfb92780d59b146d\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010001684c8a9586ed6f9cbe447058a7da2108bab1e5e0a60d1f73e4e2e713f0a3dfe0\nresult = valid\nshared = f237df4c10bd3e357971bb2b16b293566b7e355bdc8141d6c92cabc682983c45\n\n# tcId = 37\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004085ec5a4af40176b63189069aeffcb229c96d3e046e0283ed2f9dac21b15ad3c7859f97cb6e203f46bf3438f61282325e94e681b60b5669788aeb0655bf19d38\nresult = valid\nshared = d874b55678d0a04d216c31b02f3ad1f30c92caaf168f34e3a743356d9276e993\n\n# tcId = 38\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004190c25f88ad9ae3a098e6cffe6fd0b1bea42114eb0cedd5868a45c5fe277dff321b8342ef077bc6724112403eaee5a15b4c31a71589f02ded09cd99cc5db9c83\nresult = valid\nshared = 11a8582057463fc76fda3ab8087eb0a420b0d601bb3134165a369646931e52a6\n\n# tcId = 39\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004507442007322aa895340cba4abc2d730bfd0b16c2c79a46815f8780d2c55a2dd4619d69f9940f51663aa12381bc7cf678bd1a72a49fbc11b0b69cb22d1af9f2d\nresult = valid\nshared = 4e173a80907f361fe5a5d335ba7685d5eba93e9dfc8d8fcdb1dcd2d2bde27507\n\n# tcId = 40\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045f177bfe19baaaee597e68b6a87a519e805e9d28a70cb72fd40f0fe5a754ba4562ca1103f70a2006cd1f67f5f6a3580b29dc446abc90e0e910c1e05a9aa788cd\nresult = valid\nshared = 73220471ec8bad99a297db488a34a259f", - "9bc891ffaf09922e6b5001f5df67018\n\n# tcId = 41\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff2e2213caf03033e0fd0f7951154f6e6c3a9244a72faca65e9ce9eeb5c8e1cea9\nresult = valid\nshared = 55d0a203e22ffb523c8d2705060cee9d28308b51f184beefc518cff690bad346\n\n# tcId = 42\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000480000000000000000000000000000000000000000000000000000000000000042be8789db81bb4870a9e60c5c18c80c83de464277281f1af1e640843a1a3148e\nresult = valid\nshared = 2518d846e577d95e9e7bc766cde7997cb887fb266d3a6cb598a839fd54aa2f4f\n\n# tcId = 43\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000000722540f8a471c379083c600b58fde4d95c7dcad5095f4219fc5e9bdde3c5cd39\nresult = valid\nshared = bdb49f4bdf42ac64504e9ce677b3ec5c0a03828c5b3efad726005692d35c0f26\n\n# tcId = 44\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff5df80fc6cae26b6c1952fbd00ed174ee1209d069335f5b48588e29e80b9191ad\nresult = valid\nshared = f503ac65637e0f17cb4408961cb882c875e4c6ef7a548d2d52d8c2f681838c55\n\n# tcId = 45\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff2c63650e6a5d332e2987dd09a79008e8faabbd37e49cb016bfb92c8cd0f5da77\nresult = valid\nshared = e3c18e7d7377dc540bc45c08d389bdbe255fa80ca8faf1ef6b94d52049987d21\n\n# tcId = 46\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff7a116c964a4cd60668bf89cffe157714a3ce21b93b3ca607c8a5b93ac54ffc0a\nresult = valid\nshared = 516d6d329b095a7c7e93b4023d4d05020c1445ef1ddcb3347b3a27d7d7f57265\n\n# tcId = 47\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff00000001c7c30643abed0af0a49fe352cb483ff9b97dccdf427c658e8793240d\nresult = valid\nshared = 6fd26661851a8de3c6d06f834ef3acb8f2a5f9c136a985ffe10d5eeb51edcfa3\n\n# tcId = 48\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffeecf2230fffffffffffffffffffffffffffffffffffffffd383cf9bd5412f50f5b601cad34b7c00746823320bd839a71786cdbf2\nresult = valid\nshared = 6fd26661851a8de3c6d06f834ef3acb8f2a5f9c136a985ffe10d5eeb51edcfa3\n\n# tcId = 49\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff267bfdf8a61148decd80283732dd4c1095e4bb40b9658408208dc1147fffffff\nresult = valid\nshared = 44236c8b9505a19d48774a3903c0292759b0f826e6ac092ff898d87e53d353fc\n\n# tcId = 50\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffffd984020659eeb722327fd7c8cd22b3ef6a1b44c0469a7bf7df723eeb80000000\nresult = valid\nshared = 44236c8b9505a19d48774a3903c0292759b0f826e6ac092ff898d87e53d353fc\n\n# tcId = 51\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000111124f4000000000000000000000000000000000000000d12d381b0760b1c50be8acf859385052c7f53cde67ce13759de3123a0\nresult = valid\nshared = f1f0e43b374feb7e7f96d4ffe7519fa8bb6c3cfd25f6f87dab2623d2a2d33851\n\n# tcId = 52\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000111124f400000000000000000000000000000000fffffff1ed2c7e5089f4e3af4175307a6c7afad480ac3219831ec8a621cedc5f\nresult = valid\nshared = f1f0e43b374feb7e7f96d4ffe7519fa8bb6c3cfd25f6f87dab2623d2a2d33851\n\n# tcId = 53\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000001f6bd1e5000000000000000000000000000000004096edd6871c320cb8a9f4531751105c97b4c257811bbc32963eaf39ffffffff\nresult = valid\nshared = 3ebbace1098a81949d5605dd94a7aa88dc396c2c23e01a9c8cca5bb07bfbb6a1\n\n# tcId = 54\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000001f6bd1e500000000000000000000000000000000bf69122878e3cdf447560bace8aeefa3684b3da97ee443cd69c150c600000000\nresult = valid\nshared = 3ebbace1098a81949d5605dd94a7aa88dc396c2c23e01a9c8cca5bb07bfbb6a1\n\n# tcId = 55\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff000000007afbc0b325e820646dec622fb558a51c342aa257f4b6a8ec5ddf144f\nresult = valid\nshared = 1b085213a9c89d353e1111af078c38c502b7b4771efba51f589b5be243417bdc\n\n# tcId = 56\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000001ea77d449fffffffffffffffffffffffffffffffffffffffe85043f4dda17df9b92139dd04aa75ae4cbd55da80b495713a220ebb0\nresult = valid\nshared = 1b085213a9c89d353e1111af078c38c502b7b4771efba51f589b5be243417bdc\n\n# tcId = 57\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff152c1a22d823a27855ed03f8e2ab5038bb1df4d87e43865f2daf6948ffffffff\nresult = valid\nshared = 67cb63566c7ceb12fdd85ce9d2f77c359242bbaa0ea1bf3cf510a4a26591d1f1\n\n# tcId = 58\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000002099f55d5ffffffffffffffffffffffffffffffffead3e5dc27dc5d88aa12fc071d54afc744e20b2881bc79a0d25096b700000000\nresult = valid\nshared = 67cb63566c7ceb12fdd85ce9d2f77c359242bbaa0ea1bf3cf510a4a26591d1f1\n\n# tcId = 59\n# edge case private key\nprivate = 3\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 85a0b58519b28e70a694ec5198f72c4bfdabaa30a70f7143b5b1cd7536f716ca\n\n# tcId = 60\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = a329a7d80424ea2d6c904393808e510dfbb28155092f1bac284dceda1f13afe5\n\n# tcId = 61\n# edge case private key\nprivate = 100000000000000000000000000000000000000000000000000000000000000\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a193", - "0189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = bd26d0293e8851c51ebe0d426345683ae94026aca545282a4759faa85fde6687\n\n# tcId = 62\n# edge case private key\nprivate = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = ea9350b2490a2010c7abf43fb1a38be729a2de375ea7a6ac34ff58cc87e51b6c\n\n# tcId = 63\n# edge case private key\nprivate = 08000000000000000000000000000000000000000000000000000000000000000\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 34eed3f6673d340b6f716913f6dfa36b5ac85fa667791e2d6a217b0c0b7ba807\n\n# tcId = 64\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e83f3b9cac2fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 1354ce6692c9df7b6fc3119d47c56338afbedccb62faa546c0fe6ed4959e41c3\n\n# tcId = 65\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3a9cac2fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = fe7496c30d534995f0bf428b5471c21585aaafc81733916f0165597a55d12cb4\n\n# tcId = 66\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b1cac2fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 348bf8042e4edf1d03c8b36ab815156e77c201b764ed4562cfe2ee90638ffef5\n\n# tcId = 67\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac1fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 6e4ec5479a7c20a537501700484f6f433a8a8fe53c288f7a25c8e8c92d39e8dc\n\n# tcId = 68\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f3\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = f7407d61fdf581be4f564621d590ca9b7ba37f31396150f9922f1501da8c83ef\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 69\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632533\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 82236fd272208693e0574555ca465c6cc512163486084fa57f5e1bd2e2ccc0b3\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 70\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632543\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 06537149664dba1a9924654cb7f787ed224851b0df25ef53fcf54f8f26cd5f3f\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 71\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254b\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = f2b38539bce995d443c7bfeeefadc9e42cc2c89c60bf4e86eac95d51987bd112\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 72\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 85a0b58519b28e70a694ec5198f72c4bfdabaa30a70f7143b5b1cd7536f716ca\n\n# tcId = 73\n# edge case private key\nprivate = 0ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 027b013a6f166db655d69d643c127ef8ace175311e667dff2520f5b5c75b7659\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 74\n# CVE-2017-8932\nprivate = 2a265f8bcbdcaf94d58519141e578124cb40d64a501fba9c11847b28965bc737\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004023819813ac969847059028ea88a1f30dfbcde03fc791d3a252c6b41211882eaf93e4ae433cc12cf2a43fc0ef26400c0e125508224cdb649380f25479148a4ad\nresult = valid\nshared = 4d4de80f1534850d261075997e3049321a0864082d24a917863366c0724f5ae3\n\n# tcId = 75\n# CVE-2017-8932\nprivate = 313f72ff9fe811bf573176231b286a3bdb6f1b14e05c40146590727a71c3bccd\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cc11887b2d66cbae8f4d306627192522932146b42f01d3c6f92bd5c8ba739b06a2f08a029cd06b46183085bae9248b0ed15b70280c7ef13a457f5af382426031\nresult = valid\nshared = 831c3f6b5f762d2f461901577af41354ac5f228c2591f84f8a6e51e2e3f17991\n\n# tcId = 76\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 77\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 78\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000000ffffffff00000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 79\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000000ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 80\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000", - "0000010000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 81\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 82\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000001ffffffff00000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 83\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000001ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 84\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffe0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 85\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffe0000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 86\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffeffffffff00000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 87\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffeffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 88\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 89\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 90\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 91\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 92\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3018301306072a8648ce3d020106082a8648ce3d030107030100\nresult = invalid\nshared = \n\n# tcId = 93\n# public point not on curve\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764c\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 94\n# public point = (0,0)\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 95\n# order =\n# -115792089210356248762697446949407573529996955224135760342422259061068512044369\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f50221ff00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 96\n# order = 0\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201133081cc06072a8648ce3d02013081c0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5020100020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# The order of the public key has been modified. If this order is used in a\n# cryptographic pri", - "mitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 97\n# order = 1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201133081cc06072a8648ce3d02013081c0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5020101020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 98\n# order = 26959946660873538060741835960514744168612397095220107664918121663170\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3082012f3081e806072a8648ce3d02013081dc020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5021d00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 99\n# generator = (0,0)\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b04410400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 100\n# generator not on curve\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f7022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 101\n# cofactor = -1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff0000000100000000000000000000", - "0000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325510201ff034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 102\n# cofactor = 0\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 103\n# cofactor = 2\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020102034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 104\n# cofactor =\n# 115792089210356248762697446949407573529996955224135760342422259061068512044369\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201553082010d06072a8648ce3d020130820100020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 105\n# cofactor = None\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201303081e906072a8648ce3d02013081dd020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 106\n# modified prime\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e002010130", - "2c06072a8648ce3d0101022100fd091059a6893635f900e9449d63f572b2aebc4cff7b4e5e33f1b200e8bbc1453044042002f6efa55976c9cb06ff16bb629c0a8d4d5143b40084b1a1cc0e4dff17443eb704205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441040000000000000000000006597fa94b1fd90000000000000000000000000000021b8c7dd77f9a95627922eceefea73f028f1ec95ba9b8fa95a3ad24bdf9fff414022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200040000000000000000000006597fa94b1fd90000000000000000000000000000021b8c7dd77f9a95627922eceefea73f028f1ec95ba9b8fa95a3ad24bdf9fff414\nresult = invalid\nshared = cea0fbd8f20abc8cf8127c132e29756d25ff1530a88bf5c9e22dc1c137c36be9\n# The modulus of the public key has been modified. The public point of the\n# public key has been chosen so that it is both a point on both the curve of the\n# modified public key and the private key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 107\n# using secp224r1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 304e301006072a8648ce3d020106052b81040021033a0004074f56dc2ea648ef89c3b72e23bbd2da36f60243e4d2067b70604af1c2165cec2f86603d60c8a611d5b84ba3d91dfe1a480825bcc4af3bcf\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 108\n# using secp256k1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 109\n# a = 0\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201143081cd06072a8648ce3d02013081c1020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff302504010004201b95c2f46065dbf0f3ff09153e4748ed71595e0774ba8e25c364ff1e6be039b70441041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 110\n# public key of order 3\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff304404205a715b6a9ef865f5058e21e20b575d9d585533bd588a9d5fb61cd69534b4e581042036a1a972d367abf9054cce4d54424592882c345283dc9cf0ec47231711f56b22044104d68a3dfbaeb2d277742e833c51625c2ded89b13ea1ec5d33b9cbca77334d79ec89c97eb4143dc3c88d1925fc4f30baba454bb201e5c0d3158ec98bb1fd045e12022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255102010103420004d68a3dfbaeb2d277742e833c51625c2ded89b13ea1ec5d33b9cbca77334d79ec7636814aebc23c3872e6da03b0cf4545bab44dff1a3f2cea7136744e02fba1ed\nresult = invalid\nshared = f0652d1cc135c763cd51e429d320a6101634d13b59790c3b1db0063f9f00dc99\n# The vector contains a weak public key. The curve is not a named curve, the\n# public key point has order 3 and has been chosen to be on the same curve as\n# the private key. This test vector is used to check ECC implementations for\n# missing steps in the verification of the public key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 111\n# Public key uses wrong curve: secp224r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 304e301006072a8648ce3d020106052b81040021033a00042af270d2a6030e3dd38cc46e7d719f176c2ca4eb04d7e8b84290c8edbcaed964ebe226b2d7ce17251622804c0d3b7adce020a3cdc97cac6c\nresult = invalid\nshared = \n\n# tcId = 112\n# Public key uses wrong curve: secp384r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3076301006072a8648ce3d020106052b81040022036200041f17901e731b06f349b6e9d7d17d45e8a2b46115a47485be16197932db87b39405b5c941b36fd61b9ef7dd20878e129e55a2277099c601dcdb3747f80ad6e166116378e1ebce2c95744a0986128cfeeaac7f90b71787d9a1cfe417cd4c8f6af5\nresult = invalid\nshared = \n\n# tcId = 113\n# Public key uses wrong curve: secp521r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400ed76e5888428fad409ff203ab298b0f24827c091939ae0f9b1245d865ac5fbcd2749f9ae6c90fa8e29414d1bc7dc7b3c4aca904cd824484421cc66fe6af43bdfd200c1f790a0b3ae994937f91b6bdb9778b08c83ecadb8cba22a78c37bf565dac164f18e719be0ef890ee5cbf20e17fcfc9a5585e5416470b9862f82fb769339994f4e\nresult = invalid\nshared = \n\n# tcId = 114\n# Public key uses wrong curve: secp256k1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3056301006072a8648ce3d020106052b8104000a034200048028d16082b07696d4aa4aab9d6b1f1463435ac097900631108f9888e13da67c4841fd8dd3ced6e7ad8c6fc656621c2f93d3db0eb29d48d1423154519865dbc1\nresult = in", - "valid\nshared = \n\n# tcId = 115\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a0004a6bae3d155c1f9ca263928c986ede69acefd0dd9b3a19d2b9f4b0a3a66bea5d167318dcc028945fc1b40c60ce716ba2d414a743c6b856a6f\nresult = invalid\nshared = \n\n# tcId = 116\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 305a301406072a8648ce3d020106092b2403030208010107034200045d3ddbbb9bc071d8b59855c74bdf3541ae4cb6c1a24ec439034df7abde16a346523edf6a67896b304cb2cd2a083eec2b16935bbc910e85ec6eae38b50230bf70\nresult = invalid\nshared = \n\n# tcId = 117\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 306a301406072a8648ce3d020106092b240303020801010903520004a43c6ef2500723d54c1fc88f8844d83445ca5a0f585c10b8eb3f022d47d0e84862b7f5cbf97d352d4348ca730f600f2258d1d192da223f6ba83a7cc0d6da598d55c2b77824d326c8df000b8fff156d2c\nresult = invalid\nshared = \n\n# tcId = 118\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 307a301406072a8648ce3d020106092b240303020801010b036200042391c062833d1e6d89ec256cf4a3989534c1ead5e1e14ffae933a53f962857e4713087e1b3d65ac79634c71577af24698b5ce959183835551f7b08aef7853378c299930b360813fd58d5e4da8b37d5a7473e891ee11cb02881bd848b364fb7d5\nresult = invalid\nshared = \n\n# tcId = 119\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 30819b301406072a8648ce3d020106092b240303020801010d038182000484beae85096640953c1fd6ebbc32697263d53f89943cbaf14432061aea8c0318acbd9389ab1d2e904fa0e081d08cfabb614ed9bca618211142d94623c14b476a25e47abf98fd3b1da1417dfc2e2cfc8424b16ea14dd45e1422be7d4e0a5cc7f4d4ab5f198cdbaaa3f642ec6361842cbe869382ee78cd596ff5e740d9ec2c3ad6\nresult = invalid\nshared = \n\n# tcId = 120\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a00042b0a1a858ffc44e7752940731d378f96570837e279ea3948fe00cff8b5f89adb4e2fe6f8781ba6426364f4590b34dd79fc80629de4a86084\nresult = invalid\nshared = \n\n# tcId = 121\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 305a301406072a8648ce3d020106092b2403030208010108034200043037c01b4a5ac53742e3f5528dffb0f010ab6ebeb08d792b32e19e9006ca331a024b67698d7cf4b575ccd9389441d5c640b77c63771cef1bd85675361c6602a4\nresult = invalid\nshared = \n\n# tcId = 122\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 306a301406072a8648ce3d020106092b240303020801010a035200040f0fd972a495a140124a4019291a20f5b39fb755c126bf268643bb3091eca44f2a3cda1dead6ab1f4fe08a4b3872423f71e5bf96b1c20bc0ca73b7e2c134cc14a5f77bc838ebcf01084da3bf15663536\nresult = invalid\nshared = \n\n# tcId = 123\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 307a301406072a8648ce3d020106092b240303020801010c0362000403b65faf5a6bf74bd5c166278a4b566c6c705ac6363e61f3b0699e116d3c5b19e8b7021b75b005f78a8cea8de34c49397f9b3b2bfc8706eb8163c802371eff7dfc825c40aa84dd9d1c4b34615ee5ae28c6c05d58d2a8ccc3786382b712d3bcda\nresult = invalid\nshared = \n\n# tcId = 124\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 0b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 30819b301406072a8648ce3d020106092b240303020801010e03818200047504d660943a69ab043378e44c034896534a346e0e95f35fcaad3503b490856bfb20a753ecabc6d7bfeec28d057f919923b7d3c086953eb16c5bd287b59788db72dbb7c273854294c927ea7eca205aae2f0830e5faaddad8316231bfc3572c85c33cb7054e04c8936e3ce059c907e59f40593444e590b31820bc1f514ed0ec8a\nresult = invalid\nshared = \n\n# tcId = 125\n# invalid public key\nprivate = 6f953faff3599e6c762d7f4cabfeed092de2add1df1bc5748c6cbb725cf35458\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220002fd4bf61763b46581fd9174d623516cf3c81edd40e29ffa2777fb6cb0ae3ce535\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 126\n# public key is a low order point on twist\nprivate = 0d27edf0ff5b6b6b465753e7158370332c153b468a1be087ad0f490bdb99e5f02\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220003efdde3b32872a9effcf3b94cbf73aa7b39f9683ece9121b9852167f4e3da609b\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 127\n# public key is a low order point on twist\nprivate = 0d27edf0ff5b6b6b465753e7158370332c153b468a1be087ad0f490bdb99e5f03\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220002efdde3b32872a9effcf3b94cbf73aa7b39f9683ece9121b9852167f4e3da609b\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 128\n# public key is a low order point on twist\nprivate = 095ead84540c2d027aa3130ff1b47888cc1ed67e8dda46156e71ce0991791e835\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220002c49524b2adfd8f5f972ef554652836e2efb2d306c6d3b0689234cec93ae73db5\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 129\n# public key is a low order point on twist\nprivate = 0a8681ef67fb1f189647d95e8db00c52ceef6d41a85ba0a5bd74c44e8e62c8aa4\npublic = 3039301306072a8648ce3d020106082a8648ce3d0301070322000318f9bae7747cd844e98525b7ccd0daf6e1d20a818b2175a9a91e4eae5343bc98\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 130\n# public key is a low order point on twist\nprivate = 0a8681ef67fb1f189647d95e8db00c52ceef6d41a85ba0a5bd74c44e8e62c8aa5\npublic = 3039301306072a8648ce3d020106082a8648ce3d0301070322000218f9bae7747cd844e98525b7ccd0daf6e1d20a818b2175a9a91e4eae5343bc98\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 131\n# public key is a low order point on twist\nprivate = 095ead84540c2d027aa3130ff1b47888cc1ed67e8dda46156e71ce0991791e834\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220003c49524b2adfd8f5f972ef554652836e2efb2d306c6d3b0689234cec93ae73db5\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 132\n# long form encoding of length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 308159301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 133\n# long form encoding of length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a30811306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 134\n# long form encoding of length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a30140681072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783", - "e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 135\n# long form encoding of length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406072a8648ce3d02010681082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 136\n# long form encoding of length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301306072a8648ce3d020106082a8648ce3d03010703814200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 137\n# length contains leading 0\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30820059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 138\n# length contains leading 0\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3082001306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 139\n# length contains leading 0\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015068200072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 140\n# length contains leading 0\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201068200082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 141\n# length contains leading 0\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d0301070382004200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 142\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 143\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 144\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301406072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 145\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301206072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 146\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306082a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 147\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306062a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared =", - " f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 148\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106092a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 149\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106072a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 150\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034300042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 151\n# wrong length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034100042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 152\n# uint32 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30850100000059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 153\n# uint32 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3085010000001306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 154\n# uint32 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3018068501000000072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 155\n# uint32 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301806072a8648ce3d0201068501000000082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 156\n# uint32 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301306072a8648ce3d020106082a8648ce3d0301070385010000004200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 157\n# uint64 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3089010000000000000059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 158\n# uint64 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062308901000000000000001306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 159\n# uint64 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301c06890100000000000000072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 160\n# uint64 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301c06072a8648ce3d020106890100000000000000082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d6", - "95137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 161\n# uint64 overflow in length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301306072a8648ce3d020106082a8648ce3d030107038901000000000000004200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 162\n# length = 2**31 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30847fffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 163\n# length = 2**31 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d30847fffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 164\n# length = 2**31 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706847fffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 165\n# length = 2**31 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706072a8648ce3d020106847fffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 166\n# length = 2**31 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d03010703847fffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 167\n# length = 2**32 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3084ffffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 168\n# length = 2**32 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d3084ffffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 169\n# length = 2**32 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d30170684ffffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 170\n# length = 2**32 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706072a8648ce3d02010684ffffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 171\n# length = 2**32 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d0301070384ffffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 172\n# length = 2**40 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3085ffffffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 173\n# length = 2**40 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3085ffffffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key", - " in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 174\n# length = 2**40 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e30180685ffffffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 175\n# length = 2**40 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301806072a8648ce3d02010685ffffffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 176\n# length = 2**40 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301306072a8648ce3d020106082a8648ce3d0301070385ffffffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 177\n# length = 2**64 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3088ffffffffffffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 178\n# length = 2**64 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30613088ffffffffffffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 179\n# length = 2**64 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b0688ffffffffffffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 180\n# length = 2**64 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b06072a8648ce3d02010688ffffffffffffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 181\n# length = 2**64 - 1\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301306072a8648ce3d020106082a8648ce3d0301070388ffffffffffffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 182\n# incorrect length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30ff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 183\n# incorrect length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305930ff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 184\n# incorrect length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306ff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 185\n# incorrect length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106ff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 186\n# incorrect length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703ff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not", - " strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 187\n# indefinite length without termination\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 188\n# indefinite length without termination\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059308006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 189\n# indefinite length without termination\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306802a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 190\n# indefinite length without termination\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106802a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 191\n# indefinite length without termination\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107038000042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 192\n# removing sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = \nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 193\n# removing sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3044034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 194\n# lonely sequence tag\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 195\n# lonely sequence tag\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 304530034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 196\n# appending 0's to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 197\n# appending 0's to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d020106082a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 198\n# prepending 0's to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b0000301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 199\n# prepending 0's to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015000006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 200\n# appending unused 0's to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c4", - "74d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 201\n# appending unused 0's to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 202\n# appending null value to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 203\n# appending null value to sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d020106082a8648ce3d0301070500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 204\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e4981773059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 205\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d25003059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 206\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0004deadbeef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 207\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3018498177301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 208\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d30172500301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 209\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30613015301306072a8648ce3d020106082a8648ce3d0301070004deadbeef034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 210\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3018260c49817706072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 211\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d3017260b250006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 212\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b260906072a8648ce3d02010004deadbeef06082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 213\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301806072a8648ce3d0201260d49817706082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb", - "182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 214\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706072a8648ce3d0201260c250006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 215\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b06072a8648ce3d0201260a06082a8648ce3d0301070004deadbeef034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 216\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301306072a8648ce3d020106082a8648ce3d0301072347498177034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 217\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d03010723462500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 218\n# including garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301306072a8648ce3d020106082a8648ce3d0301072344034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0004deadbeef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 219\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061aa00bb00cd003059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 220\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305faa02aabb3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 221\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301baa00bb00cd00301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 222\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f3019aa02aabb301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 223\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b260faa00bb00cd0006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 224\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f3019260daa02aabb06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 225\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b06072a8648ce3d02012610aa00bb00cd0006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 226\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f301906072a8648ce3d0201260eaa02aabb06082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c", - "474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 227\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301306072a8648ce3d020106082a8648ce3d030107234aaa00bb00cd00034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 228\n# including undefined tags\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f301306072a8648ce3d020106082a8648ce3d0301072348aa02aabb034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 229\n# truncated length of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3081\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 230\n# truncated length of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30463081034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 231\n# Replacing sequence with NULL\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 0500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 232\n# Replacing sequence with NULL\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30460500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 233\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 2e59301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 234\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 2f59301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 235\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3159301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 236\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3259301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 237\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = ff59301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 238\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30592e1306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 239\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30592f1306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 240\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059311306072a8648ce3d020106082a8648ce3d0301070342000", - "42998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 241\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059321306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 242\n# changing tag value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059ff1306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 243\n# dropping value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 244\n# dropping value of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30463000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 245\n# truncate sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 246\n# truncate sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30581306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 247\n# truncate sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206072a8648ce3d020106082a8648ce3d0301034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 248\n# truncate sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30583012072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 249\n# indefinite length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 250\n# indefinite length\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b308006072a8648ce3d020106082a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 251\n# indefinite length with truncated delimiter\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b00\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 252\n# indefinite length with truncated delimiter\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a308006072a8648ce3d020106082a8648ce3d03010700034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 253\n# indefinite length with additional element\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b05000000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding.", - " Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 254\n# indefinite length with additional element\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d308006072a8648ce3d020106082a8648ce3d03010705000000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 255\n# indefinite length with truncated element\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b060811220000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 256\n# indefinite length with truncated element\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f308006072a8648ce3d020106082a8648ce3d030107060811220000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 257\n# indefinite length with garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000fe02beef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 258\n# indefinite length with garbage\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f308006072a8648ce3d020106082a8648ce3d0301070000fe02beef034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 259\n# indefinite length with nonempty EOC\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0002beef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 260\n# indefinite length with nonempty EOC\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d308006072a8648ce3d020106082a8648ce3d0301070002beef034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 261\n# prepend empty sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3000301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 262\n# prepend empty sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015300006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 263\n# append empty sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b3000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 264\n# append empty sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d020106082a8648ce3d0301073000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 265\n# sequence of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 266\n# sequence of sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# Th", - "e public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 267\n# truncated sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3015301306072a8648ce3d020106082a8648ce3d030107\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 268\n# truncated sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 304f300906072a8648ce3d0201034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 269\n# repeat element in sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30819d301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 270\n# repeat element in sequence\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3063301d06072a8648ce3d020106082a8648ce3d03010706082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 271\n# removing oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3050300a06082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 272\n# lonely oid tag\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b0606082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 273\n# lonely oid tag\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3050300a06072a8648ce3d020106034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 274\n# appending 0's to oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506092a8648ce3d0201000006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 275\n# appending 0's to oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201060a2a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 276\n# prepending 0's to oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015060900002a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 277\n# prepending 0's to oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201060a00002a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 278\n# appending unused 0's to oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201000006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 279\n# appending null value to oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506092a8648ce3d0201050006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still", - " returns the correct shared value.\n\n# tcId = 280\n# appending null value to oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201060a2a8648ce3d0301070500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 281\n# truncated length of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3052300c068106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 282\n# truncated length of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b06072a8648ce3d02010681034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 283\n# Replacing oid with NULL\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3052300c050006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 284\n# Replacing oid with NULL\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b06072a8648ce3d02010500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 285\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301304072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 286\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301305072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 287\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301307072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 288\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301308072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 289\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30593013ff072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 290\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020104082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 291\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020105082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 292\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020107082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 293\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npu", - "blic = 3059301306072a8648ce3d020108082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 294\n# changing tag value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d0201ff082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 295\n# dropping value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3052300c060006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 296\n# dropping value of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b06072a8648ce3d02010600034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 297\n# modify first byte of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305930130607288648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 298\n# modify first byte of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d02010608288648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 299\n# modify last byte of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d028106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 300\n# modify last byte of oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030187034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 301\n# truncate oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206062a8648ce3d0206082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 302\n# truncate oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206068648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 303\n# truncate oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206072a8648ce3d020106072a8648ce3d0301034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 304\n# truncate oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206072a8648ce3d020106078648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 305\n# wrong oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305c3016060a3262306530333032316106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 306\n# wrong oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3064301e061236303836343830313635303330343032303106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = ac", - "ceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 307\n# wrong oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201060a32623065303330323161034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 308\n# wrong oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3063301d06072a8648ce3d02010612363038363438303136353033303430323031034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 309\n# longer oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301c06103261383634386365336430323031303106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 310\n# longer oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3063301d06072a8648ce3d02010612326138363438636533643033303130373031034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 311\n# oid with modified node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3060301a060e326138363438636533643032313106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 312\n# oid with modified node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3068302206163261383634386365336430323838383038303830303106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 313\n# oid with modified node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b06072a8648ce3d0201061032613836343863653364303330313137034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 314\n# oid with modified node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3069302306072a8648ce3d02010618326138363438636533643033303138383830383038303037034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 315\n# large integer in oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3072302c0620326138363438636533643032383238303830383038303830383038303830303106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 316\n# large integer in oid\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3073302d06072a8648ce3d0201062232613836343863653364303330313832383038303830383038303830383038303037034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 317\n# oid with invalid node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3063301d0611326138363438636533643032303165303306082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 318\n# oid with invalid node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406082a808648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 319\n# oid with invalid node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3064301e06072a8648ce3d0201061332613836343863653364303330313037653033034200042998705a9a71c783e1cf4397dbed9", - "375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 320\n# oid with invalid node\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406072a8648ce3d020106092a808648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 321\n# lonely bit string tag\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3016301306072a8648ce3d020106082a8648ce3d03010703\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 322\n# appending 0's to bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034400042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 323\n# prepending 0's to bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d0301070344000000042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 324\n# appending null value to bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034400042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 325\n# truncated length of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070381\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 326\n# Replacing bit string with NULL\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 327\n# changing tag value of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107014200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 328\n# changing tag value of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107024200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 329\n# changing tag value of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107044200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 330\n# changing tag value of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107054200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 331\n# changing tag value of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107ff4200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 332\n# dropping value of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070300\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 333\n# modify first byte of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305930130", - "6072a8648ce3d020106082a8648ce3d030107034202042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 334\n# modify last byte of bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6eb\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 335\n# truncate bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d030107034100042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 336\n# truncate bit string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d0301070341042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 337\n# declaring bits as unused in a bit-string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034201042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 338\n# unused bits in a bit-string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d030107034620042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b01020304\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 339\n# unused bits in empty bit-string\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3018301306072a8648ce3d020106082a8648ce3d030107030103\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 340\n# 128 unused bits\nprivate = 0c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034280042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n", +static const char *kData96[] = { + "# Imported from Wycheproof's ecdh_secp256r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp256r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 0612465c89a023ab17855b0a6bcebfd3febb53aef84138647b5352e02c10c346\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000462d5bd3372af75fe85a040715d0f502428e07046868b0bfdfa61d731afe44f26ac333a93a9e70a81cd5a95b5bf8d13990eb741c8c38872b4a07d275a014e30cf\nresult = valid\nshared = 53020d908b0219328b658b525f26780e3ae12bcd952bb25a93bc0895e1714285\n\n# tcId = 2\n# compressed public key\nprivate = 0612465c89a023ab17855b0a6bcebfd3febb53aef84138647b5352e02c10c346\npublic = 3039301306072a8648ce3d020106082a8648ce3d0301070322000362d5bd3372af75fe85a040715d0f502428e07046868b0bfdfa61d731afe44f26\nresult = acceptable\nshared = 53020d908b0219328b658b525f26780e3ae12bcd952bb25a93bc0895e1714285\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000458fd4168a87795603e2b04390285bdca6e57de6027fe211dd9d25e2212d29e62080d36bd224d7405509295eed02a17150e03b314f96da37445b0d1d29377d12c\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040f6d20c04261ecc3e92846acad48dc8ec5ee35ae0883f0d2ea71216906ee1c47c042689a996dd12830ae459382e94aac56b717af2e2080215f9e41949b1f52be\nresult = valid\nshared = 00000000000000000000000000000000ffffffffffffffffffffffffffffffff\n\n# tcId = 5\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400c7defeb1a16236738e9a1123ba621bc8e9a3f2485b3f8ffde7f9ce98f5a8a1cb338c3912b1792f60c2b06ec5231e2d84b0e596e9b76d419ce105ece3791dbc\nresult = valid\nshared = 0000000000000000ffffffffffffffff00000000000000010000000000000001\n\n# tcId = 6\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e9b98fb2c0ac045f8c76125ffd99eb8a5157be1d7db3e85d655ec1d8210288cf218df24fd2c2746be59df41262ef3a97d986744b2836748a7486230a319ffec0\nresult = valid\nshared = 00000000ffffffff00000000ffffffff00000000ffffffff0000000100000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e9484e58f3331b66ffed6d90cb1c78065fa28cfba5c7dd4352013d3252ee4277bd7503b045a38b4b247b32c59593580f39e6abfa376c3dca20cf7f9cfb659e13\nresult = valid\nshared = 000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004767d7fbb84aa6a4db1079372644e42ecb2fec200c178822392cb8b950ffdd0c91c86853cafd09b52ba2f287f0ebaa26415a3cfabaf92c6a617a19988563d9dea\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010001\n\n# tcId = 9\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c74d546f2fcc6dd392f85e5be167e358de908756b0c0bb01cb69d864ca083e1c93f959eece6e10ee11bd3934207d65ae28af68b092585a1509260eceb39b92ef\nresult = valid\nshared = 085ec5a4af40176b63189069aeffcb229c96d3e046e0283ed2f9dac21b15ad3c\n\n# tcId = 10\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000434fc9f1e7a094cd29598d1841fa9613dbe82313d633a51d63fb6eff074cc9b9a4ecfd9f258c5c4d4210b49751213a24c596982bd1d54e0445443f21ef15492a5\nresult = valid\nshared = 190c25f88ad9ae3a098e6cffe6fd0b1bea42114eb0cedd5868a45c5fe277dff3\n\n# tcId = 11\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d5c96efd1907fd48de2ad715acf82eae5c6690fe3efe16a78d61c68d3bfd10df03eac816b9e7b776192a3f5075887c0e225617505833ca997cda32fd0f673c5e\nresult = valid\nshared = 507442007322aa895340cba4abc2d730bfd0b16c2c79a46815f8780d2c55a2dd\n\n# tcId = 12\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f475f503a770df72c45aedfe42c008f59aa57e72b232f26600bdd0353957cb20bdb8f6405b4918050a3549f44c07a8eba820cdce4ece699888c638df66f54f7c\nresult = valid\nshared = 5f177bfe19baaaee597e68b6a87a519e805e9d28a70cb72fd40f0fe5a754ba45\n\n# tcId = 13\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f3cb6754b7e2a86d064dfb9f903185aaa4c92b481c2c1a1ff276303bbc4183e49c318599b0984c3563df339311fe143a7d921ee75b755a52c6f804f897b809f7\nresult = valid\nshared = 7fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff\n\n# tcId = 14\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cce13fbdc96a946dfb8c6d9ed762dbd1731630455689f57a437fee124dd54cecaef78026c653030cf2f314a67064236b0a354defebc5e90c94124e9bf5c4fc24\nresult = valid\nshared = 8000000000000000000000000000000000000000000000000000000000000004\n\n# tcId = 15\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047633dfd0ad06765097bc11bd5022b200df31f28c4ff0625421221ac7eeb6e6f4cb9c67693609ddd6f92343a5a1c635408240f4f8e27120c12554c7ff8c76e2fe\nresult = valid\nshared = 8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000000\n\n# tcId = 16\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a386ace573f87558a68ead2a20088e3fe928bdae9e109446f93a078c15741f0421261e6db2bf12106e4c6bf85b9581b4c0302a526222f90abc5a549206b11011\nresult = valid\nshared = ff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e7b50f7d8c44d5d3496c43141a502f4a43f153d03ad43eda8e39597f1d477b8647f3da67969b7f989ff4addc393515af40c82085ce1f2ee195412c6f583774f\nresult = valid\nshared = ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c827fb930fd51d926086191b502af83abb5f717debc8de29897a3934b2571ca05990c0597b0b7a2e42febd56b13235d1d408d76ed2c93b3facf514d902f6910a\nresult = valid\nshared = ffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff\n\n# tcId = 19\n# y-coordinate of the public key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cbc1b31b43f17dc200dd70c2944c04c6cb1b082820c234a300b05b7763844c74fde0a4ef93887469793270eb2ff148287da9265b0334f9e2609aac16e8ad503\nresult = valid\nshared = 7fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff\n\n# tcId = 20\n# y-coordinate of the public key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042830d96489ae24b79cad425056e82746f9e3f419ab9aa21ca1fbb11c7325e7d318abe66f575ee8a2f1c4a80e35260ae82ad7d6f661d15f06967930a585097ef7\nresult = valid\nshared = 000000000000000000000000111124f400000000000000000000000000000000\n\n# tcId = 21\n# y-coordinate of the public", + " key is small\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004450b6b6e2097178e9d2850109518d28eb3b6ded2922a5452003bc2e4a4ec775c894e90f0df1b0e6cadb03b9de24f6a22d1bd0a4a58cd645c273cae1c619bfd61\nresult = valid\nshared = 000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff\n\n# tcId = 22\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cbc1b31b43f17dc200dd70c2944c04c6cb1b082820c234a300b05b7763844c7b021f5b006c778ba686cd8f14d00eb7d78256d9b4fccb061d9f6553e91752afc\nresult = valid\nshared = 7fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff\n\n# tcId = 23\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042830d96489ae24b79cad425056e82746f9e3f419ab9aa21ca1fbb11c7325e7d3e754198fa8a1175e0e3b57f1cad9f517d528290a9e2ea0f96986cf5a7af68108\nresult = valid\nshared = 000000000000000000000000111124f400000000000000000000000000000000\n\n# tcId = 24\n# y-coordinate of the public key is large\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004450b6b6e2097178e9d2850109518d28eb3b6ded2922a5452003bc2e4a4ec775c76b16f0e20e4f194524fc4621db095dd2e42f5b6a7329ba3d8c351e39e64029e\nresult = valid\nshared = 000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff\n\n# tcId = 25\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049a0f0e3dd31417bbd9e298bc068ab6d5c36733af26ed67676f410c804b8b2ca1b02c82f3a61a376db795626e9400557112273a36cddb08caaa43953965454730\nresult = valid\nshared = 7fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff\n\n# tcId = 26\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e5d22d5e53ec797c55ecd68a08a7c3361cd99ca7fad1a68ea802a6a4cb58a918ea7a07023ef67677024bd3841e187c64b30a30a3750eb2ee873fbe58fa1357b\nresult = valid\nshared = 0000000000000000000000001f6bd1e500000000000000000000000000000000\n\n# tcId = 27\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004293aa349b934ab2c839cf54b8a737df2304ef9b20fa494e31ad62b315dd6a53c118182b85ef466eb9a8e87f9661f7d017984c15ea82043f536d1ee6a6d95b509\nresult = valid\nshared = 000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff\n\n# tcId = 28\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049a0f0e3dd31417bbd9e298bc068ab6d5c36733af26ed67676f410c804b8b2ca14fd37d0b59e5c893486a9d916bffaa8eedd8c5ca3224f73555bc6ac69abab8cf\nresult = valid\nshared = 7fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff\n\n# tcId = 29\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e5d22d5e53ec797c55ecd68a08a7c3361cd99ca7fad1a68ea802a6a4cb58a9171585f8edc1098998fdb42c7be1e7839b4cf5cf6c8af14d1178c041a705eca84\nresult = valid\nshared = 0000000000000000000000001f6bd1e500000000000000000000000000000000\n\n# tcId = 30\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a0d622a47e48f6bc1038ace438c6f528aa00ad2bd1da5f13ee46bf5f633d71a\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004293aa349b934ab2c839cf54b8a737df2304ef9b20fa494e31ad62b315dd6a53cee7e7d46a10b99156571780699e082fe867b3ea257dfbc0ac92e1195926a4af6\nresult = valid\nshared = 000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000000000000000000000000000000000000000000066485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4\nresult = valid\nshared = cfe4077c8730b1c9384581d36bff5542bc417c9eff5c2afcb98cc8829b2ce848\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000ffffffffffffffffffffffffffffffff4f2b92b4c596a5a47f8b041d2dea6043021ac77b9a80b1343ac9d778f4f8f733\nresult = valid\nshared = 49ae50fe096a6cd26698b78356b2c8adf1f6a3490f14e364629f7a0639442509\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000ffffffffffffffff0000000000000001000000000000000138120be6ab31edfa34768c4387d2f84fb4b0be8a9a985864a1575f4436bb37b0\nresult = valid\nshared = 5a1334572b2a711ead8b4653eb310cd8d9fd114399379a8f6b872e3b8fdda2d9\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000ffffffff00000000ffffffff00000000ffffffff0000000100000000462c0466e41802238d6c925ecbefc747cfe505ea196af9a2d11b62850fce946e\nresult = valid\nshared = c73755133b6b9b4b2a00631cbc7940ecbe6ec08f20448071422e3362f2556888\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff1582fa32e2d4a89dfcfb3d0b149f667dba3329490f4d64ee2ad586c0c9e8c508\nresult = valid\nshared = 06fa1059935e47a9fd667e13f469614eb257cc9a7e3fc599bfb92780d59b146d\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010001684c8a9586ed6f9cbe447058a7da2108bab1e5e0a60d1f73e4e2e713f0a3dfe0\nresult = valid\nshared = f237df4c10bd3e357971bb2b16b293566b7e355bdc8141d6c92cabc682983c45\n\n# tcId = 37\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004085ec5a4af40176b63189069aeffcb229c96d3e046e0283ed2f9dac21b15ad3c7859f97cb6e203f46bf3438f61282325e94e681b60b5669788aeb0655bf19d38\nresult = valid\nshared = d874b55678d0a04d216c31b02f3ad1f30c92caaf168f34e3a743356d9276e993\n\n# tcId = 38\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004190c25f88ad9ae3a098e6cffe6fd0b1bea42114eb0cedd5868a45c5fe277dff321b8342ef077bc6724112403eaee5a15b4c31a71589f02ded09cd99cc5db9c83\nresult = valid\nshared = 11a8582057463fc76fda3ab8087eb0a420b0d601bb3134165a369646931e52a6\n\n# tcId = 39\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004507442007322aa895340cba4abc2d730bfd0b16c2c79a46815f8780d2c55a2dd4619d69f9940f51663aa12381bc7cf678bd1a72a49fbc11b0b69cb22d1af9f2d\nresult = valid\nshared = 4e173a80907f361fe5a5d335ba7685d5eba93e9dfc8d8fcdb1dcd2d2bde27507\n\n# tcId = 40\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045f177bfe19baaaee597e68b6a87a519e805e9d28a70cb72fd40f0fe5a754ba4562ca1103f70a2006cd1f67f5f6a3580b29dc446abc90e0e910c1e05a9aa788cd\nresult = valid\nshared = 73220471ec8bad99a297db488a34a259f9bc891ffaf09922e6b5001f5df67018\n\n# tcId = 41\n# edge cases for ephemeral key\np", + "rivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff2e2213caf03033e0fd0f7951154f6e6c3a9244a72faca65e9ce9eeb5c8e1cea9\nresult = valid\nshared = 55d0a203e22ffb523c8d2705060cee9d28308b51f184beefc518cff690bad346\n\n# tcId = 42\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000480000000000000000000000000000000000000000000000000000000000000042be8789db81bb4870a9e60c5c18c80c83de464277281f1af1e640843a1a3148e\nresult = valid\nshared = 2518d846e577d95e9e7bc766cde7997cb887fb266d3a6cb598a839fd54aa2f4f\n\n# tcId = 43\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000000722540f8a471c379083c600b58fde4d95c7dcad5095f4219fc5e9bdde3c5cd39\nresult = valid\nshared = bdb49f4bdf42ac64504e9ce677b3ec5c0a03828c5b3efad726005692d35c0f26\n\n# tcId = 44\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff5df80fc6cae26b6c1952fbd00ed174ee1209d069335f5b48588e29e80b9191ad\nresult = valid\nshared = f503ac65637e0f17cb4408961cb882c875e4c6ef7a548d2d52d8c2f681838c55\n\n# tcId = 45\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff2c63650e6a5d332e2987dd09a79008e8faabbd37e49cb016bfb92c8cd0f5da77\nresult = valid\nshared = e3c18e7d7377dc540bc45c08d389bdbe255fa80ca8faf1ef6b94d52049987d21\n\n# tcId = 46\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff7a116c964a4cd60668bf89cffe157714a3ce21b93b3ca607c8a5b93ac54ffc0a\nresult = valid\nshared = 516d6d329b095a7c7e93b4023d4d05020c1445ef1ddcb3347b3a27d7d7f57265\n\n# tcId = 47\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffeecf2230ffffffffffffffffffffffffffffffff00000001c7c30643abed0af0a49fe352cb483ff9b97dccdf427c658e8793240d\nresult = valid\nshared = 6fd26661851a8de3c6d06f834ef3acb8f2a5f9c136a985ffe10d5eeb51edcfa3\n\n# tcId = 48\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffeecf2230fffffffffffffffffffffffffffffffffffffffd383cf9bd5412f50f5b601cad34b7c00746823320bd839a71786cdbf2\nresult = valid\nshared = 6fd26661851a8de3c6d06f834ef3acb8f2a5f9c136a985ffe10d5eeb51edcfa3\n\n# tcId = 49\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffff267bfdf8a61148decd80283732dd4c1095e4bb40b9658408208dc1147fffffff\nresult = valid\nshared = 44236c8b9505a19d48774a3903c0292759b0f826e6ac092ff898d87e53d353fc\n\n# tcId = 50\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047fffffffffffffffffffffffca089011ffffffffffffffffffffffffffffffffd984020659eeb722327fd7c8cd22b3ef6a1b44c0469a7bf7df723eeb80000000\nresult = valid\nshared = 44236c8b9505a19d48774a3903c0292759b0f826e6ac092ff898d87e53d353fc\n\n# tcId = 51\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000111124f4000000000000000000000000000000000000000d12d381b0760b1c50be8acf859385052c7f53cde67ce13759de3123a0\nresult = valid\nshared = f1f0e43b374feb7e7f96d4ffe7519fa8bb6c3cfd25f6f87dab2623d2a2d33851\n\n# tcId = 52\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000111124f400000000000000000000000000000000fffffff1ed2c7e5089f4e3af4175307a6c7afad480ac3219831ec8a621cedc5f\nresult = valid\nshared = f1f0e43b374feb7e7f96d4ffe7519fa8bb6c3cfd25f6f87dab2623d2a2d33851\n\n# tcId = 53\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000001f6bd1e5000000000000000000000000000000004096edd6871c320cb8a9f4531751105c97b4c257811bbc32963eaf39ffffffff\nresult = valid\nshared = 3ebbace1098a81949d5605dd94a7aa88dc396c2c23e01a9c8cca5bb07bfbb6a1\n\n# tcId = 54\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000001f6bd1e500000000000000000000000000000000bf69122878e3cdf447560bace8aeefa3684b3da97ee443cd69c150c600000000\nresult = valid\nshared = 3ebbace1098a81949d5605dd94a7aa88dc396c2c23e01a9c8cca5bb07bfbb6a1\n\n# tcId = 55\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000001ea77d449ffffffffffffffffffffffffffffffff000000007afbc0b325e820646dec622fb558a51c342aa257f4b6a8ec5ddf144f\nresult = valid\nshared = 1b085213a9c89d353e1111af078c38c502b7b4771efba51f589b5be243417bdc\n\n# tcId = 56\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000001ea77d449fffffffffffffffffffffffffffffffffffffffe85043f4dda17df9b92139dd04aa75ae4cbd55da80b495713a220ebb0\nresult = valid\nshared = 1b085213a9c89d353e1111af078c38c502b7b4771efba51f589b5be243417bdc\n\n# tcId = 57\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000002099f55d5ffffffffffffffffffffffffffffffff152c1a22d823a27855ed03f8e2ab5038bb1df4d87e43865f2daf6948ffffffff\nresult = valid\nshared = 67cb63566c7ceb12fdd85ce9d2f77c359242bbaa0ea1bf3cf510a4a26591d1f1\n\n# tcId = 58\n# edge cases for ephemeral key\nprivate = 55d55f11bb8da1ea318bca7266f0376662441ea87270aa2077f1b770c4854a48\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000002099f55d5ffffffffffffffffffffffffffffffffead3e5dc27dc5d88aa12fc071d54afc744e20b2881bc79a0d25096b700000000\nresult = valid\nshared = 67cb63566c7ceb12fdd85ce9d2f77c359242bbaa0ea1bf3cf510a4a26591d1f1\n\n# tcId = 59\n# point with coordinate x = 0\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004000000000000000000000000000000000000000000000000000000000000000066485c780e2f83d72433bd5d84a06bb6541c2af31dae871728bf856a174f93f4\nresult = valid\nshared = d11c640b4382e60ec8d254ee76f09b8fac57651ab73b6dd3fdc935a61564a3e9\n\n# tcId = 60\n# point with coordinate x = 0\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004100121f1a09443851c9aa2ab6ee6440e2ac5e1be648274bd5d26c12fb3ba3f7f032a1c219fa1457cb20588297e0513cfd4901f9a95414f7e914f9179f38567a6\nresult = valid\nshared = 90e712e2afd14171c19467a2bfe7abf1c477d1f40f6675f00e622fd5604fa16a\n\n# tcId = 61\n# point with coordinate x = 0\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cad02ab537c80831ccdd395129fc4bfe4a89ae0c866f6619a3e1", + "4146d3691694689d477065b40f140ed87b37ad041e28229b0f79a6b3c992689954c97f7336d0\nresult = valid\nshared = 159583103d83f63538bd4e203607d7348990bb7f847ffbc9e5e509c7e34d392c\n\n# tcId = 62\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004abd12eed4d654baa7d968633770f4a582f173d6633906000ed8acf6233c6365f0912f30bb98e7cb525890d5ea1e217149d52a6c59f7802a9f307e80d2a9fee3a\nresult = valid\nshared = 546a2dfadb1d60140becac2dc2e62d20c789037755ad5a49e37e48f2ca1b7680\n\n# tcId = 63\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a562c1ad9a72217df00147c7d2ceafc65a1620a1469c947e14fe43003ac5371b7ad1d33c01f0eb92b779ed6e460d0334447075a3cf66b2ffbdae31b438df6d7b\nresult = valid\nshared = e5859c7811c5c3aca6c236ab499ccad10301c7c5ee913ce91bb66428cde11e4d\n\n# tcId = 64\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048cdbebe9d07d2ebc4e41b1d72a9bac2974cfc4cf738d8b6de71a40ede9920d88dc2439ee0003fbde7b0a3ae41710c64b17b08a8841e97a390e482c9768fe01ea\nresult = valid\nshared = 65754ab459a10471af00943f414f28de1bc37968b097ad2845fe111420855008\n\n# tcId = 65\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f0cd7cd8334678308cfeb785a68a1504a91418d4441c4d4c740c57488b9aafb079d8a8d29973eb502267eccf6eda326626fc6e025d532b85e9f711f8ce6971bb\nresult = valid\nshared = 8631fedee6ceb3386ac42edf322c188824893d267d6108f0cf5de6964b88331b\n\n# tcId = 66\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048ad0af23b90e0341b4e2a5a963c8522fe011ace19b1b8610cbe7927a17a7249736b87ab9907289a23a0fb20ca4be42d421fe38d35af09d79cbe6e6a4e95a1a8b\nresult = valid\nshared = 68c58599c123be6d37d343bd41b11cecc5f84b2635661163656f76d7fb04b426\n\n# tcId = 67\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000459c9cc2d7297ddb0be6304c94cebf42d813e970c50f45287753b8e9cb0c6db45f571d986990897851fc8e1db67c99759e8979c3d9ddfd02f633cf1ea5b6c48ab\nresult = valid\nshared = b58d00525c4c4b4f46562852c15ce2e48dbe23a3be37541e048446eff5152ec6\n\n# tcId = 68\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e97080da7263a29c3072a65178b7b31587a5dffc19754c561e32fc53199234f04e0b9b70c97b60e940d5629f2266d1a8e242deb71eb7f0b2b2da2e3044738ab0\nresult = valid\nshared = 4baa01c211af8f94aca89548902a71f7b53f7814bbceb3d4bef31b376e34b476\n\n# tcId = 69\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000444f600da7160b975a0232cb6a4a9e72803fd77caac84352039ce9f4a67a1da77626045599381e599eb9cd03f282e267b8cfd3ba98dabbb0f29ab1c0944270f3f\nresult = valid\nshared = e19fe9d1294cca94a6388825249e6b37931a231eb917cfecb292792d0c18f1b8\n\n# tcId = 70\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000471e3e9be0e0ee4449a19d2ef7919266814a0fafd04fb677edc32656e6a46e4d2bc5f404c5b54f03e294be22e8820a71b4d4ac04a708e13cd71fdb0041e7e9698\nresult = valid\nshared = ddc1f4663b928add06b1e57c48db98ea08c4d33c3c2106371407f3848a9d53f7\n\n# tcId = 71\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000427b693610154d5b7f08094e46ff2a2ac1c01d3cd826e3208e5254436ed279960f2364e3a604f3b592e19262a1b22b1a148e38cd82c9e54f108ef8f833683f8b4\nresult = valid\nshared = 91dfa95ed1eacbea419156471a8ddbb6cb93dd456433e18633d26817611b9c64\n\n# tcId = 72\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c32a52af6dac369b6a499a49d3e38e7c9534bb9139f57d4984b1d3c04ab8220653cdc2daefac83cf43c0d64604e5f9d85b55dde62b692cd36af99ebff4140c39\nresult = valid\nshared = 9f91a9633daa4c56465e9fbef4431e13041f68910fb5ba89f8da9381d68a0dfe\n\n# tcId = 73\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200046f4e2f72f32ae66f1f4610966004c436aa0d90b7df07ce9c4aca52b02d46b4d0c6a3ec76bf321b7fe5203cf3d66e2d52e3ee0495ec766d579a4511175e01bc4d\nresult = valid\nshared = 014ae81442f8cb6df58ff41e6db203db40ea951b91bebf86d42cda7be33fea64\n\n# tcId = 74\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042e065975df642fcfdafe2fa5affc18b2c68371796f9d963d89c4f5ac5ccea28b990f31522fbb265c3f4d5c4bb82ebf5ddff5a8ea588db4d282acdca7a6ccf428\nresult = valid\nshared = 78e81e8573c3ae6089df7db1fb29d7be12dc11f15bb25bff2af802e15ddc136e\n\n# tcId = 75\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e1331eee03c50cc2b90944ddfc0d3a7dd8185e6c21c75fa92a0c14b0f1949ac9154d783f4547dcf5508bbd86c3dd8c3b17b61989f93db5490ec02a46a1005c2c\nresult = valid\nshared = ed67195a272c63c50205abf27439291134ffa1e8ec597f3b302716d93632e98d\n\n# tcId = 76\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e0c56d486e9c01163ed6c3ff25de3cdf5744dbf9e0e00bdcf19965df4ba1f311bd5e44430665823d8c0b34ebec0a6aab5ea96cf239de214fd011e6f9ec501dd4\nresult = valid\nshared = 50774347848828eeb6230f497cd181f8c57fbd18ffbf8328cd008321a1c37c43\n\n# tcId = 77\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00e461c5b5e63d75b4c8c123bf8b9cd45e712af08f7e2e494a8f255ac9d80e058b\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004885ead6c074f8d751a767e918c4e89210a587c4b19d42244ae07027e361831053e80772be57fbd744955a2e8523063cc6136f2bb37befbef7a681d3bbbc57788\nresult = valid\nshared = 913da71044b8021a86c8fcaf4f634d0d625ff91ee1c8474d548bd10888964fb1\n\n# tcId = 78\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000441e9d4cfa8efe80b895a8cbcce2568e251db7ecdfd20a7ad710d4a4bf2addc6b5ec36a8339168a03f15b8c80f2a2a828f151d38791584853ba2ff44a2a0460a1\nresult = valid\nshared = b48e119d29eef7dbb76b64218e728ddbf6ec600505ec7ced6ab6fb8763308da5\n\n# tcId = 79\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004776aef1acb82b628e132cc29440988f0a15d4cc2b4f328aecb063c9b86e5018e6e44dfc60444faa9c4e36bc217451f7ac2956cb3b2e9bbd655eba297163d1f34\nresult = valid\nshared = 28a88b6b258f233020ba6fa9c00d1d72831f4515b86966a9782f521315e18aa7\n\n# tcId = 80\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a864", + "8ce3d020106082a8648ce3d030107034200049ec06b0b08662c0e1dd9111696a63a1601cc83cee20695778adf84d43064fc90156001f084cd3c1df1a087f626533b6572584889bd3d5c2c99f0e311e22b41e6\nresult = valid\nshared = c4ff865ff3dc4953ea78d92a02f3345a53bdb6050cfd8f41baa4395ecb6acab8\n\n# tcId = 81\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fa51d128adc2000f09ff12c6fd8e25aa08556d708bf6b0ffff9e8eaad4783f0de22bf529e516e1f64b8e0d09f98fad4e501695a930a1b22076659da707e3ccd0\nresult = valid\nshared = de1069f051637e10166559cef44688afc809341855261215c4f381d9d7da76ca\n\n# tcId = 82\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004614dcfbea4789a3f3eb4a8e2f111c887f0248d9316b99d0864c927a045d6941753a073befe08491a8050a4d96d08ba4790ae18db3ef7f0eaccf59ce1095afc54\nresult = valid\nshared = 4207bf4159faa0e50ed238b9c0ff46194a539a1ba03a5a4c8d68f369aecd31a5\n\n# tcId = 83\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004efe7754ed4c0b3c1dd301bc1ed69800aa2ff5d51fb85937715e60d2e7bcada8eb1581ab75fb3c797ef94a9dba3d82568c84617eaf3fa04f279fbfd898f704604\nresult = valid\nshared = b5a0ec92aecc3010d27d2263d3da66e3d2f3395d23947024a3f4744454622027\n\n# tcId = 84\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d8e13fbd017f1f9a26be35c611d7b2299f5d10de3c8a26362273fffb85238f3ed1426b748c1f87e3afa2c1e7a0224310c980655e07399590d1494d6d6bea0396\nresult = valid\nshared = d2a5bc66498c6036aecdfaad041cef732a893de190a0a5b42ff71e13f09280e7\n\n# tcId = 85\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045a1027666a0e372481fec0b3901e058d60107c07b1115550ceb05789b55a6d35063d4c8ee66ed45ff3e1dfdcfd73ed96a9e83193884adbcaa574b2dd118a692b\nresult = valid\nshared = 1f812313ddcf36bc38071d0e51a74100d630c8e20cc414326eefa42ecb1b5f8e\n\n# tcId = 86\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047937b9c40986dd755a0656203089782583da7d8113a44190762ab474a20bcf60efcbc1525aed5b4ad8e687cb02c2ef8887095cadca56c765b41b4a9544ff2fe8\nresult = valid\nshared = f284089bddd5e2e1be3f82640efa0658468fa1f10b281963a3ca190c3982fda6\n\n# tcId = 87\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049368066a0748867a7b870244f5c9f82ea8bd51552959dd550bb7394497159a5d40764add1ae24c8e3f432ee011be97d3130718fe0a6a90ed8b1011b2034d09a0\nresult = valid\nshared = 4529f4b631c9984ab216a6801281fc4fd8731a58b65ca8d07bff07811116371f\n\n# tcId = 88\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004981d7449bdf0013f5eeddbb7e42c442f7ccdd9427bd26d7b388755aa5e26f46a1292b88fa6bf5dffca054dd42ed3594277b593dcc402d80340fb7816e4dcab37\nresult = valid\nshared = 64bbc9fdd73643eb2954f4ab640381b938c5e601846a0c6b6954966e0dc73e6f\n\n# tcId = 89\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000409e78d4ef60d05f750f6636209092bc43cbdd6b47e11a9de20a9feb2a50bb96c0000000000000000000000000000000000000000000000000000000000000001\nresult = valid\nshared = 28f67757acc28b1684ba76ffd534aed42d45b8b3f10b82a5699416eff7199a74\n\n# tcId = 90\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045384d6c0def78960db967b8096d35477c5a5ce30ef0c6d8879a5568ca87e979401ee56c4581722610b43f3cbfcf3862c082a6e36baa36fd6f78403c0e399faa5\nresult = valid\nshared = 9ee653cda46db67612760ce35bac8450bbf48dbf74451ed93abb6db408a9fe10\n\n# tcId = 91\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200044eca7641a4afd5eab0b214657ff3bdcbfc66f1551a53bb59493bc38ed78ff39614a0cadff14c14736edbdcdab510cba07a8924ffd0490ee514aedfaadb648b01\nresult = valid\nshared = 9736ad6b2a2ef17ec3f8c8dc2e35715fb1c06f28d82e4e26876f0214588165f1\n\n# tcId = 92\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048d0177ebab9c6e9e10db6dd095dbac0d6375e8a97b70f611875d877f0069d2c70000000000000000000000000000000000000000000000000000000000000001\nresult = valid\nshared = 748fa4f5a399320382dc920026938694c41a26fe2aaa318c5e710198dd71c793\n\n# tcId = 93\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045fdb7f0cffb8b5b1142d24698a4bda76bf9827d63b1a6bd85a4e2f9b59c510cfbcb35ba9c987108b6d4337ad5393f9f910ec92410c230869d66528ed88c1b98a\nresult = valid\nshared = 7f97db83b4d86f04fe286041ee21e80ec3d59f3ce82cdeeaf362016fc87a3e02\n\n# tcId = 94\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004530b2293e60c6b6f14c75c90b1ef8b9f9fa6b2151b8d9855792eb2b3dc69f07a0db42440e73fd7d6df04aed5022fbe21ceaec33c5fbade1bd6ad321ef2e10d0b\nresult = valid\nshared = 21794cf24f56273fa4463cc7ae4232fa34dbe0f18b73613b8ae9cbfb9c36abf0\n\n# tcId = 95\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200046916fac45e568b6b9e2e2ecd611b282e5fcc40a3067d601057f879ce5a8a73cc0000000000000000000000000000000000000000000000000000000000000001\nresult = valid\nshared = 915106d07816e879e7643f00abf6d79fb8f1cb78bf64a6a3827f91a7b0ef0f41\n\n# tcId = 96\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ed9568c85bc52a6b45733618c3602107c1fdacf23b1a38e486af95978a214e2efa0d71d5e737891c4276e247581ee6139011ca1460db9b1e20b364d9275683e2\nresult = valid\nshared = 2fcce552310819dd775ab7ba9ff0f96a1fcadd25a0c709703cef04bb6e1a7bd7\n\n# tcId = 97\n# point with coordinate y = 1\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049ff7731c00f2aa88b3fc174aba907ad17595e602e768a5f1e9462a6d4b89b2d23f178a70b9bb3edce289118338a33df30c432c347f12a3de0a2b03b353878d96\nresult = valid\nshared = 757d926a2693bc8a3d2d8c0554a13579ef9e559186578911f37edc88b2f5e61a\n\n# tcId = 98\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048270f8179d57436b34dfc0bdf7d417a5c895116b90cb51aec718614f864a635d174804e0c0e06e3d68d3149e0b956621c6aa2bde83f4d17d03d28ef8aa389fff\nresult = valid\nshared = 3db29ec6f978d2269e92e9c7eb5c8b5a8e56c2228a4fb9e483feca50aa3e451f\n\n# tcId = 99\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c61750e98abaf20225a881dbfd3510532cfc3df971bbbca4a2bd52f91acc9c59d0fe79342097f88ae78fc79a8032245fdd2c30cc64aceaaa9fd57b0825692531\nresult = valid\nshared = 72c57c2e1", + "0d77318b3a796097bbf768c6366142d80f98c90a93780a841075f32\n\n# tcId = 100\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049c5d3bb54650d9550e1ee2efa3ea43c14ab99d18bb049f37b42a6dac48232f0bd3a2760d83d33afe4ce6f1d1245489c509bd26b0251f308f8c996e80f7a3f8eb\nresult = valid\nshared = a96b07944e9eb2b22a9a36575eff1f4f6363b4aa3a53b100b8518a67ba5405dd\n\n# tcId = 101\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f1724efd481ad45a55795f06126b1f5ed28e7d9bb4fee910af2ad8c1373b18ff77edbc34da6c787ec73430347f4da86810032d88f7475f6c42f15914079d179e\nresult = valid\nshared = 855883316b6d097ae5eab6c67e8411a1397349a09b9d7d8f096b2ba1bd03ea31\n\n# tcId = 102\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fc3680af52fa89ffcd193ecc0b0714466fe5db277ee5872846c520bf4e3721d927260a0e225a3d377e6723ecb6bef8d4493c2da78a22a307fcca8f88f4527208\nresult = valid\nshared = 5a75bb7a0c96b8340d0842bcccf11974e1a5a2c8f4bc22b333433cce646b6a8a\n\n# tcId = 103\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004106b6f81e3482db18d74029291821ae448c38844ef783bf1d6999a404401f63f6a5753f0edc68a62cfd6a0b181bb2599e1f3bac5fa8824af160de79ed867c350\nresult = valid\nshared = d96412e31cf4d26195920cac952fb79ea25f6c50abc79b5ed0ef8026a6e83319\n\n# tcId = 104\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004093cb5193a4f94cd18edaa20a973b87ff79b0c03684c79487ecfee347e5354eb04fcb5752539170777932be15cd84c97f03815ffee8b60b647c178eebb8e14d4\nresult = valid\nshared = 2b0eed9badc92a1068196dfec124fe8f9d3f451e294d322eb881cce02f286026\n\n# tcId = 105\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d6c38f448b964e27b5b450cc38d3cf41ef9df83d8a959771eb9c21855cb36445df638aef46a2aeb13199281e1a26d12fe61b029ec7f68b90faa89f88c7a95942\nresult = valid\nshared = ed0b1d8dfd27a61fce91dc6405bfc53b6d48a8c13ba541c96ef3dcf31d7cdb88\n\n# tcId = 106\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048a748d61f59c3b6a29b733b0d554b2492e7f76fad7cae1c17f2ac3de9e4a65d2eedbe6c26b6fd22bfc03c1687555d2f0a38e02adee5570686171abfec6681917\nresult = valid\nshared = a796dd144f21ba3318f9e10828ecefc9c0f6ef2c427ae31351c16c2fbfa3cfa6\n\n# tcId = 107\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f1052699d87e5677c75e26b2abe719310648d820a96e5b381fff58b392401581b1bb16ae8b68cbb76a3256870bad1ee5a30ff9fd662fd4f8d1fe5b5f1f98ff46\nresult = valid\nshared = 1f3a9615b0745046a972bad5d59794a0b60b032b4ac94fe85f77dfb380d1f32b\n\n# tcId = 108\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200041219af5230064ee9778667225f0e009cdb961330e386edb34e4fa9fddd0e5be7e2a12554227f613aaaa78938ddbbc99b923f9d181b8192dc4b816577e8f3b7e9\nresult = valid\nshared = caf9141d1fca4d0f10683b5e86d2b41af5602f017991fe7348d44e8d7014115c\n\n# tcId = 109\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000460def130f190e6dc44f5eb8a59e12e7efb27db968c7fa6cc6d31785f066b41b1f1bb556ac4cd77033e7aa6c5ba16f47ebafb14975a7fd72dd9b7fe23116bca55\nresult = valid\nshared = 6539ec1c98fa75197ba07c678b26300b3da1fe407dd4c68b89457ed669082e06\n\n# tcId = 110\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f23f09bdb7d17289eb005975a757a39325b4df9b29e55ba2ca679b5ec0973ae918c881f3c7b6c12bed1ec54b837d08c5908e89bdcedd84b9177720378f789600\nresult = valid\nshared = 0b6619827cfa948d63f021e9eddb92f884fb5ce8a404bfe059e993fc23447a69\n\n# tcId = 111\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045dbec098c1b7de3e3e2e73d0b62cd49c877e1a0130a1b39eb2fd4dbd4426aa4ccbeee217591a8d76cc8deaf14dde52e3f401e53b30cbb9c1807910d827d0041d\nresult = valid\nshared = 2a53a561acf5caec6eb0d8aa40727942881a75d136899dfbff91528236926c39\n\n# tcId = 112\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200041e70730dc4f39c8970182e1a29cc836b9e9d6cbd6fcaa8c0dc1062fed9a849693e7b9151f9c8a3345366f8221c8fb700e8c3a9aa7f0cc46a48864e1605592094\nresult = valid\nshared = 9b377716ff1d056dac8e392249eaec740d2f5aa62303f4baf6bb1b03b2a276c5\n\n# tcId = 113\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f428c9ae3e23eaf9c2a5b9a7e41efd1cffbf35f881bfc35694d9c05d1e312b10ef6da9023cfd2dd0cb7b9e2a77d644affe62a63fb0f29d45291c6861aa063c5c\nresult = valid\nshared = 0c0c6867669743082547aa94451feb362fa29fbaf228dfb3eaf375f1a5ec2fb3\n\n# tcId = 114\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b9a16d9a5b85a714e2bb2aa22b086a17404c7a3ff62452732347419c99e90bdad578b462f523994304b6afcf6944a9cc5d0ad1afad956475c8f2953c06b06b97\nresult = valid\nshared = d11f9e32587fd3b6f4a2354812618b4b3b4a7539b8a223b388bb7437f8d138a5\n\n# tcId = 115\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048f659a163a58e9f900c1e9b34fb1cd61ffc9890267be3417c8afe79d57214da05cd5cb68a2b93da0dbe56c1cfc0dce8b6c3260e0c48379c6d2091f16b39221c0\nresult = valid\nshared = 4babf6368e0359b78614060241ece46facca3f52f5bbc47ac0b46a075b5dd3a0\n\n# tcId = 116\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d257f133f00a079f4e6778ea4a9bf42b9f231290431b5b93d7e8b0e35b48010650d6c6b46574d1efce03510b8db4a0981ce138c5bd8fe0e54c988c40c5fc9200\nresult = valid\nshared = 9627cc5c8d8b72278be89c32b52210173e6f4b8e2f48e460c6429f46f9f469ae\n\n# tcId = 117\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045ef2ac57c4e93cf78d8f86c35d413b98dc1902dd245affde5c16034afc7ea45547b3e9f77fbc5075bad03c418094f1aec1d03edeafa167fa6af83526552f7034\nresult = valid\nshared = d2b178bc9bb16b5a91a100bb72e15a9639e050c034346061413ec20c4fcc9bbc\n\n# tcId = 118\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a7b513f96266414fa6ff439a35d8f09ab615db0bb6a3b1a120c217683f724b2342007a2c9feabcd6249a0d17acecd995e2a217fb5f07", + "bec96938016e297efa52\nresult = valid\nshared = 6cdca0a731aff1ccfb1904a769cef79eba965fbab1cc64d2049d0df45dccd276\n\n# tcId = 119\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200047743ab7248dae5f1a59ac6b0a136e9f1e51aff8bd45795ace5f8187a13edf9adbd9642078378bab5c6d484f9e1ce39675b72170bf39abc9be7942fc01fc435d7\nresult = valid\nshared = bd15e97a7f49aa33e57b54140a75fffce71b788ce0faa334cf8b45623dcc818a\n\n# tcId = 120\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040e3aa971bacdace350dc0957fa5bde0946324eb139939d7fc1997c701effd04a4e6c3625d9564168d3a752961221a1de8cf5f3d603752a8c2e6277ac3a918c25\nresult = valid\nshared = c8b5e8e7488857a2dde62c5fc21e4525ebaba0e06b5be83ec6e7dd771e15a01a\n\n# tcId = 121\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040f563e21bf9b24015a7cdbb6f000a692784ac2e4bc2715c76f684264a899c8240cab0d76e6b01cabe4f327429d11be115ed6dc0ca74f02c1b987a082f5af43a8\nresult = valid\nshared = 1c63a457509b148272687e6e442bde51982d41b0080d8c0c5eb714257af971e7\n\n# tcId = 122\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045da49f10249e4df3dbb4e31ece0b0ee9aa073f2588195aaae63e74f6567a774810b5dd61b6bf219e9eab30ef09c13fc184b3d09ff7a4e192bca8f5111c4163c7\nresult = valid\nshared = 73a1ac9ece354a930dfd9c77577b4f50acc0a78964ea0d7775631d64c709c4a2\n\n# tcId = 123\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200046f72e6e5c6300679d3f14f0f6e590665643576ae8bbcb7c05b2f4a83e75e6ac3e712cb056ff034da340543c5da6997e65a3ab4cd39e997892bb92ee2c22b8167\nresult = valid\nshared = fcaa406329bb74f995862cea7cecc7425c6bd4148ef1a9f46b5d42da5994556a\n\n# tcId = 124\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b544df9168e7787db282e2ae01dd72306d9c9bc80f5ab38ce594766c3d929e967493ff601ca60862b47d3a0785c917e44584044e36023a54424015e58be5040\nresult = valid\nshared = e49ff11d46b6c4b5dde528b04132d15c040e79f9b7151fbc650030988028cb87\n\n# tcId = 125\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200041c31385b9db9b374e92499939ab0fd7e7eda464561eba89fcd7b4769814a8638a4764cf8ce97b5d143bb8eeb9e1b27287f2b73942ecdbc6359aafb1ee7a152c2\nresult = valid\nshared = fc8f64eac1c7e688c52c467185de21914e8b253056d9e4be010ed0128f92a889\n\n# tcId = 126\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004aabcf8b1443d6cbb1de129a0ffe09f60b23fd9d0a44b6bdf25bed7373fdbfd1db716bde7fe9f2f46de0b688e3025e029cff15244429ad4f83484f5dea4af8583\nresult = valid\nshared = 6b56d8a01a884319ab5fb9d890cacfc7aabd81ad938cb5eaae207c8c1aa06efb\n\n# tcId = 127\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e7cd580bd957915d527056832e37793ab3b082ddfad9372412e1908e5c16bbb6208601a970d5844b780d9246e9583eb35918c42ed695c07d52244037f0e31db5\nresult = valid\nshared = 2f64b5c8046d41a4e1d631ff23846bff956a4925a47f8534490a20b4b1918b9c\n\n# tcId = 128\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042a52db1fe246b71c79c0d0ac49a7d38de67b202995efbbd2a9cc525f6f36010368f494be27e0593e2d612f1fa10a9211437e6aa16e65d97735014072f0dcec94\nresult = valid\nshared = 63ac31e718b9a780a85f0670e1d3685bbe306e5f06fee282a8784700b503c124\n\n# tcId = 129\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200041c50dc49fef708c4cdd62e766f9b60f784d51afee17a8fe9f3701b2fae55b7a5d10f0d9639d83dce8f26a869705a6d6d38e6d328f5685581142aec0dcd1f90e7\nresult = valid\nshared = 555c1917b770cebe6a98337a008ae3d8d04f571565327c93debf61ef90ddddd8\n\n# tcId = 130\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200046d0aa1bc1cee6d07d045002c13290d0ca25ca3c8783343a525fac70472b92c62d6fba71174448b472cf172b0ca9e377f1a2603ba7ae1276d153b20c63e7d24bf\nresult = valid\nshared = 3a65a9200f8f96635912faa5e7859fa303a76a1c2a41ea97ef61aa39287700a9\n\n# tcId = 131\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f07e3d8be2ba54c6084141e1fd2b29cfd00d4e6dd6ffb115ed839b10bd8a422f42992cb9a5243897d55408e9bb556043318d87349af35dcc0975ed805c8fa2c9\nresult = valid\nshared = bb7bb52da570ba58e05fd322f82d556c2d65b365db30815879f67f233b089b51\n\n# tcId = 132\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000443a9b90274dbd5f36dd29046fc8390008dde74513ce4c3e8892b236efff80c9dc71547152a5897dbe16957bd15d1a87d770496f814fe2921c8f33df04393c7f8\nresult = valid\nshared = e8cae9944233b867eedf5902fc49ecd07e4c81c46279531e89520b74ba5370b5\n\n# tcId = 133\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e9af8e8c19da9d5c2f3b3c03b8e927c3cbe2d717f98f500972e56d82eb07c2b14e83fcaacadc26f8bb5e7b94741fe54f31275ebd6e1c969d7ec2fecead8a0dae\nresult = valid\nshared = e72ad0cdb25f4307d1d834a5f792e9af64fd1b69a47041ec8fa46d526f419e4d\n\n# tcId = 134\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000433d9582b567aadbe59606fa6ffc11848e4947b5179597317776317b2b4ff65d0b4d8568dc843319cc04f4bf110496dee7c9229fc68cb0958f3cbd37ecca6990f\nresult = valid\nshared = 000197fbc260a84dbcbf88136aeaa79b03bb8949aefd2416bef63929ef789bf3\n\n# tcId = 135\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e21c0282adb1b2055fda744644c68612cfb0c68a70b9812d007f21a78f1adc4849f3e7644bc6633e2773a2f3cc5214fa7208e30afb3de992f077ee321569dc48\nresult = valid\nshared = cdb18bf62670a853488ca510d8f55bab2918991424925bd9b74a821d2c6e7e3c\n\n# tcId = 136\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004af27de0da6556e4e64588c9694afee9a84e1cbd0c388972df3a997f760bbcd903c5a02e161551f333d770559ab1af49bf8b68274896590939ce956d9913b676f\nresult = valid\nshared = 167303505d22cf9ef78c5b9687a5418fa9fb284f2b0ff68316288ecd7f2e2e09\n\n# tcId = 137\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040da41b82550b358ff474915d83104d41a83a12ef70589b9d392f0f", + "30dc32429edc76163c8fe07a3f709cbd92da0bbfc5045f3db82aa5344cf1fd5b27fcd2f7a6\nresult = valid\nshared = 85600ff23c3cde26009fea9b6539664bf045056883728ab0d4498ea0a8f4a453\n\n# tcId = 138\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000419c844b8c7209026a0996a782983e1bd0f0de9255b86739be9bef08ea5475cc669a779ddf57747cf7d9a22f00ed8efc6e818af5827b750d665fee6d6d58a22e8\nresult = valid\nshared = a3250a2bfb145ce86e706ac3ab2bf503a66486ac0b2f7522601c124b0e0f9c5b\n\n# tcId = 139\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bd07bd4326cdcabf42905efa4559a30e68cb215d40c9afb60ce02d4fda617579b927b5cba02d24fb9aafe1d429351e48bae9dd92d7bc7be15e5b8a30a86be13d\nresult = valid\nshared = 2d70cc8c8af01366051cc8359c2fc8f258757e2601fd8f3e08422a7b23bfeff5\n\n# tcId = 140\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040089dee27a60d071dabbaf58f3e56614dad3b7f9a8030769fd0463b3e6e0f03a147b4d6e7e7fd939b9b54dab458fd556ad8fdaf4da6c3909588c4e050ca74a67\nresult = valid\nshared = cbe0c571d1080ea34ee20ad1bfd21ea5ecc442ead733fb4eee3c0d7b0cce9935\n\n# tcId = 141\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000442ede106cf85aef46df7e5dba8a8b00459317d9e766a7b77c299aa0e17dea142b6e9a86f4fc3e945d4323ba8e459f6b7b14c563a698c757a2d5f7b0bc301ede2\nresult = valid\nshared = 33320fc7917fe4e19280bfbfe16f223c037f7c2dc30c0fda98310740f57fe289\n\n# tcId = 142\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004974b4316c5e7d1348b28dbc4fd61d8d3470de744c30f5be237f85f29969dea77b5f00b58b83cfc7bc51655465b4a28abe1ed3dbec20c6b4643aec85b95a5bec6\nresult = valid\nshared = 35c726ead66c39414fe0c24604df7838e5725d2fc1bd0853261e1de3338ecb4f\n\n# tcId = 143\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000459873d7523936a121b629e9870f930419f253a5767b9d0dc49716f2c50e17bd0163b71f2bf4318fbde1ceaa585450080eec28474cd18bf7c21d2d1bfde4ff677\nresult = valid\nshared = 66ea42fe6fd8741b37599bbdada3ec0e6b08c0b52ea67c29a33172f72742583c\n\n# tcId = 144\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bd85a79f81c4f9613e64fa347886437856c7358d1b69cf1e923d7742d82f9b6767d26918eaa8acb113a1daadaedc709742457303ebc23cdda5572613dc827703\nresult = valid\nshared = 2f8a502e4f440133e84fb625292cbeabe2cb79da73987c76d4fed864d1b1b762\n\n# tcId = 145\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200043e6a4effc47c2f5926bb6b4acf2eac48b9524c47d511f816976796778600d6c5bfce593242a5985a977590f8d7485df3f953352957f3c17c13e94583d9c0e7b9\nresult = valid\nshared = 06436817d8928b77b73d16c5c3b35e243ad3ef2ab59ad047142c67a6d0923c84\n\n# tcId = 146\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200049a4487fcfce8396688e7449e095fe803caa253d4bd7c66dbc6261cc9d9f883a50e5251bae29c5a5cdfa31bc61105671a88a018467398158d35b88829237c0bff\nresult = valid\nshared = 7e83fd2c3d713bc85d6d85d9078b3a0842824d410e8abde04da0fd71c7d94705\n\n# tcId = 147\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fed6ce127290c1291ca5ce64acb4e0f2f8905654d1d25ba57c1f74ab52f21f42963d31671c06b802169929525c4a1fdeff5b1eafab919dc2df6c52be84dfaef3\nresult = valid\nshared = 0e3dfdab606ebdc6428282acd443f189c99b3b483aa101fd8d6bed38aec59e02\n\n# tcId = 148\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f7cee5b55f1869f137dd707c8f8fb8965a2be5840c3149fb759695a4661b9c0d23c78c4e9647b0d6cb2f2602be73ff25cf3d09c96d892b5745fe5eca814aec91\nresult = valid\nshared = f489f2bd93f76b8e41fc6b9f211bc599d49db1f17a38e95bab1d31b2a2b55829\n\n# tcId = 149\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042baaaec3b3e8d54a4e18f0960b947da2535e3cfcca2cfa8b7113aad8e3b6626f72f71e7c9e96042c1d39cc8f1139d5147c6f4fe62e23cf6df364b5f4d899f842\nresult = valid\nshared = cc5738b49d30d5d02cf7e0c54a3de09b5b6f3c4dea91dd0679072a3562444c37\n\n# tcId = 150\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a51ab1238bc1bed25247e7d179c83a61ae2d4a9fe2288c363ae0eb7a77de432a3c6d35d82ba8017e6ca9041cc785a30703f7bc4427506e624ac5979d715421dd\nresult = valid\nshared = 89a11177d6907a81d47467093bf6a3cc8ba55dee05239b160a31a3000f5d807b\n\n# tcId = 151\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048b5ae8a0e55f30f509061315abae79ac480f88b44655f7269a385c81526884be262974a31a0e2322126c2d77b26b108abd81f8b952c458ccc95d46fb4924c7c0\nresult = valid\nshared = 2cb03c30b20037a5cf4d5b33574f3abac895bfab37867eb2ebed260e0929058d\n\n# tcId = 152\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045f60c77e474dd66c8135ee3dafc75ba644649824c72737542091ad469adbb685312c09c69b629d0436bf3bd6c6083ff2a87be484a73ef3a5d2c3e06b5d9b21b3\nresult = valid\nshared = e54d487d0c4b12fe522af3e663ce316e632ba9d63a1f02a36fc5a82bf82731a4\n\n# tcId = 153\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e06eaa73f6feae45417d859bbad4bc404b2885bcd213ebace594e16f4970e0c411ed3323a3d7afc7076239884307f91849ed5f5e36b6171d309c81344c53e06d\nresult = valid\nshared = ccea969d40fa42933f4fbdc4cabe2185f8a452996254c1f4e0dde5e14feeea8d\n\n# tcId = 154\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040f1c1b89e9fc6fc0faefc9109fc4a1247d9f54c7497b6cc975e6a5455bef410836cb3818548ac9b41e2b8336c3eb8d97075ae47e1827fa1ff93d4341d43c0c1d\nresult = valid\nshared = eaae0e188c9427bf3c8b3ded772122204c328d5941e389d808e2724638f9aff8\n\n# tcId = 155\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004577069e8284a95f51dcab919b0536657058971dab76217f8d3ae722a64092e26e51f68a722cc0397f4801401771e9a3d1988d4af76f14f9e2f9c36e0773e29c2\nresult = valid\nshared = fea0cce1358f1ff40ffeaaffbf91b2e8d426d4e31e9627731ace3a122eab6b0d\n\n# tcId = 156\n# point with coordinat", + "e y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042406a2759050b925dd4f814c5033e355548f42bbf1afb791c110f0031f29f68099d5f4b005de3927f165abeff196a28c7217fab1be2b5209c324e7d62d2dd687\nresult = valid\nshared = 837621ea4827bba0376aaa8aa66cfe144a2ff1e359dc619a06441d3e055f9771\n\n# tcId = 157\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ccaac61f35a27861183621642bc573af913356fb47cf582f0b5299099d6f6c6991f7272b83b738a7a5d30447c87f126a7d98ec72fa2609d0939d18db7ea7eb3a\nresult = valid\nshared = 63974ce6153762e5b364523cead93e8ce8bcc77dda56365d676136169fc4e39b\n\n# tcId = 158\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000401415917272f1984e7217a36fb311fd2904d41a6b13973f92aae3b90e85e4d56d97c822eb7b21a84d0d1be4867404a80c34867f43139dadcc3619e10b222562b\nresult = valid\nshared = 0a0488144bc36d690b62148ac3076047d46d48f7adbb0f34fee9a636295fe737\n\n# tcId = 159\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b2575d100c6fa056bcd137ab111b5315a8908c29243b84f3dc996d0e45764b9166cabeb41885588ec08b47257df58bd58f7dcd9e012e2669fa2f52e25767fc4c\nresult = valid\nshared = 1232165538a44268aa7c199c54d6d207c4ef3f5aa790c10c926a20752ca645ce\n\n# tcId = 160\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c17355ed30ccd6427f9685709021b25c11ed176e9610c479bcc4cc7552a738e61f75114761dba0ec60cd264bbab763c5d5abcc75cd8fb5651d0645179988cc6d\nresult = valid\nshared = dcab5e874e4fb76bc4312528e9d76dfae56145922533089734110bf5653f4d77\n\n# tcId = 161\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004341592390ccce485de8880f3d727f664c381914a1becec383b35586751fc81c2add71852b87016e1019cae7a9080e75ce0b0b8aac175d692d5e7b4dad088f5cc\nresult = valid\nshared = 4ce2701b2be63a0083a4c53f7a0bf04cf871654f5edb6f625e3ea5e7d0bdcc90\n\n# tcId = 162\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fa764b6b76a86c3b762120825d353a24766208c1f5cc0fe3fe7998026a2ec5c43bb2f948fd94cdaa5869b1e0e73a4d97035cc49357fb7b74d7ed0a2c5b8d54eb\nresult = valid\nshared = 7abef9765cca721320fbf8edcbef6d2ba25d17b70ffa1776029bc38fe677a12c\n\n# tcId = 163\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a71fbb617199bd585b4b66212ca33ca9e09370e6bf15c8ea0acefd9c8e945d06840f058863078e743e220ff99f23bbc1daa36835d4b1269f0a7536e63f06d853\nresult = valid\nshared = 5f61404dbbbc2867dff95c1f37ed44f4cb8fabcd223b03739d888308d13bc412\n\n# tcId = 164\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000413c8292d854d39451c0c63a802b8c03e4fcb875ef01239896295ba1c0f386975f82df197086fd86032cb36b69a27876dd75a8e9679f36ffc2210edb128d4be13\nresult = valid\nshared = 8d673a577e35bf9d5d00676c08b2c739617c46a052188403aa06dc714af6acc1\n\n# tcId = 165\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040cd9df415acc0c32fd4e3d6924ce53075b0452bf919a2ab2ebe26597570f1ecd5985d8d2c5df78fc100f87efb6dfa9543757bdffecf083dfcd1ecb38de6c23f8\nresult = valid\nshared = a7835ffee0f2a69dfcf70d4e798dbe3ed32ba03cfddae5ddd11d8c0ac3d74f9b\n\n# tcId = 166\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d2dbea4046b23fd2b233d1ce31dceddb89b25f26c0627a9d2db3c5605c9cc99535bdc8de7451c1e27e97aa91402cce3882c71269d9cbdcb5d7ac0ceb911b9b6d\nresult = valid\nshared = e98ea22209cd397edb6c319648c1eb24bc4d39598ab11995571926684ce2ceca\n\n# tcId = 167\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004888fb044fb2b6caa60366bfa662adba479b8365a6555a29887d580f587086ba8482f4ec24082a48d6402afa1622143f26e61d91b7e30d6a4b223630ee10f70fb\nresult = valid\nshared = 91b65733860b1bdb9541d9f55895a3dbb3f13c199251d33006b6dcf90ac349ed\n\n# tcId = 168\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042e2bec134249379d57700301f3a58e4b395a4d28370d2a06e65e7ac89ed76ac697dc960bd795cdf4fbcfdd75149057b8e022331c7b5461f383ac589d764df333\nresult = valid\nshared = 1fdf7c5c48047a113e5e5d1b7ed593337e769231cca5c7110160e0c1b97f4256\n\n# tcId = 169\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c78cda7e3b9e1772ebed30b2b51dcf155a69a0fc504557836e25147cfb8127d2f8289cf38b033d3763c8f9f6c091787a3142fb83dff5719590282c6f852e0105\nresult = valid\nshared = ba0abc3e71726cb51330489176357b81b8074d7690e4e82e9a3c00151e1fa318\n\n# tcId = 170\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200041e3df4dd7fb7718cb0aa0dd72f8a25c83c4e804e7cbd48c5e965651f9e23bf4ef0ff40dd9796e4a9a5eddd2c4ca4ebd10990d8fb8918d12d53c76001afa9de7f\nresult = valid\nshared = 16e632f9752d36602c95ec274b32ad594f39f6ac3bd4b0b20f8637392142cef4\n\n# tcId = 171\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e5c5dc3fd88d85668b3b709fd6b4232f1f80949cbccb5588363e6c217a2b3ed88dbd0d6e3cc97f3081d16602aa3d1b655ee0791c87fcb5abe6217d8c8513807e\nresult = valid\nshared = 9eed4b96569f604a4d3f5af97499807111fc9888c458ece2e3000e245c2c02b0\n\n# tcId = 172\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004021c41eceec24e0fba894ad7415a9598cbcd14fa6ca46e25575268a1d8e5bbc63f846c6a185fa3f23bb92c14e7e2cba8c74047c09af766f55ef0c907c80d9451\nresult = valid\nshared = 21ac32013838812621dbb584965bded6fc851d3a029810679bc57b2381bb7a7d\n\n# tcId = 173\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200048e24192cd33335a114f5070266c014cb0d8c704d16d6042e89c17597bcd4e77ebdb4c5171704c2c09275c22a310e0c4fe092e4084856da99b94abbfa9f469f48\nresult = valid\nshared = fc5978da01ca83e127dddf989a0358871b3c4ce0755bfb020633db467e21a53c\n\n# tcId = 174\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431c90ae47a93d09a2352b6f3677e7975ea62aadedb56c118eb8b9f771e2dd9f5f2601fb9cca2304e594423cf48064dbed17ae40452f18b", + "e6ae018321911e8cb3\nresult = valid\nshared = 9f417341261aa45d396b0ccf2a3dee7a466ca47e3ce86ecd2071d9c4db08820e\n\n# tcId = 175\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00809c461d8b39163537ff8f5ef5b977e4cdb980e70e38a7ee0b37cc876729e9ff\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d2f211cfab84e01c8e5544036234debe35ae103bb878d7abcea6825f753e03a385f7f1870e64f1262af67a25ef9880419f45608e7f9da6dee83f5f46ceb53dcb\nresult = valid\nshared = f419febb32c254611adf569c2d583b17542b1538caa0001967f0a4bc34b8b789\n\n# tcId = 176\n# edge case private key\nprivate = 03\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 85a0b58519b28e70a694ec5198f72c4bfdabaa30a70f7143b5b1cd7536f716ca\n\n# tcId = 177\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = a329a7d80424ea2d6c904393808e510dfbb28155092f1bac284dceda1f13afe5\n\n# tcId = 178\n# edge case private key\nprivate = 0100000000000000000000000000000000000000000000000000000000000000\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = bd26d0293e8851c51ebe0d426345683ae94026aca545282a4759faa85fde6687\n\n# tcId = 179\n# edge case private key\nprivate = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = ea9350b2490a2010c7abf43fb1a38be729a2de375ea7a6ac34ff58cc87e51b6c\n\n# tcId = 180\n# edge case private key\nprivate = 008000000000000000000000000000000000000000000000000000000000000000\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 34eed3f6673d340b6f716913f6dfa36b5ac85fa667791e2d6a217b0c0b7ba807\n\n# tcId = 181\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e83f3b9cac2fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 1354ce6692c9df7b6fc3119d47c56338afbedccb62faa546c0fe6ed4959e41c3\n\n# tcId = 182\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3a9cac2fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = fe7496c30d534995f0bf428b5471c21585aaafc81733916f0165597a55d12cb4\n\n# tcId = 183\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b1cac2fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 348bf8042e4edf1d03c8b36ab815156e77c201b764ed4562cfe2ee90638ffef5\n\n# tcId = 184\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac1fc632551\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 6e4ec5479a7c20a537501700484f6f433a8a8fe53c288f7a25c8e8c92d39e8dc\n\n# tcId = 185\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324f3\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = f7407d61fdf581be4f564621d590ca9b7ba37f31396150f9922f1501da8c83ef\nflags = AddSubChain\n\n# tcId = 186\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632533\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 82236fd272208693e0574555ca465c6cc512163486084fa57f5e1bd2e2ccc0b3\nflags = AddSubChain\n\n# tcId = 187\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632543\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 06537149664dba1a9924654cb7f787ed224851b0df25ef53fcf54f8f26cd5f3f\nflags = AddSubChain\n\n# tcId = 188\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254b\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = f2b38539bce995d443c7bfeeefadc9e42cc2c89c60bf4e86eac95d51987bd112\nflags = AddSubChain\n\n# tcId = 189\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 85a0b58519b28e70a694ec5198f72c4bfdabaa30a70f7143b5b1cd7536f716ca\n\n# tcId = 190\n# edge case private key\nprivate = 00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000431028f3377fc8f2b1967edaab90213acad0da9f50897f08f57537f78f116744743a1930189363bbde2ac4cbd1649cdc6f451add71dd2f16a8a867f2b17caa16b\nresult = valid\nshared = 027b013a6f166db655d69d643c127ef8ace175311e667dff2520f5b5c75b7659\nflags = AddSubChain\n\n# tcId = 191\n# CVE-2017-8932\nprivate = 2a265f8bcbdcaf94d58519141e578124cb40d64a501fba9c11847b28965bc737\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004023819813ac969847059028ea88a1f30dfbcde03fc791d3a252c6b41211882eaf93e4ae433cc12cf2a43fc0ef26400c0e125508224cdb649380f25479148a4ad\nresult = valid\nshared = 4d4de80f1534850d261075997e3049321a0864082d24a917863366c0724f5ae3\n\n# tcId = 192\n# CVE-2017-8932\nprivate = 313f72ff9fe811bf573176231b286a3bdb6f1b14e05c40146590727a71c3bccd\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cc11887b2d66cbae8f4d306627192522932146b42f01d3c6f92bd5c8ba739b06a2f08a029cd06b46183085bae9248b0ed15b70280c7ef13a457f5af382426031\nresult = valid\nshared = 831c3f6b5f762d2f461901577af41354ac5f228c2591f84f8a6e51e2e3f17991\n\n# tcId = 193\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 194\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 195\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000000ffffffff00", + "000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 196\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000000ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 197\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 198\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 199\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000001ffffffff00000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 200\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200040000000000000000000000000000000000000000000000000000000000000001ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 201\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffe0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 202\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffe0000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 203\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffeffffffff00000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 204\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000fffffffffffffffffffffffeffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 205\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 206\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 207\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000001000000000000000000000000fffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 208\n# point is not on curve\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffffffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 209\nprivate = 7e4aa54f714bf01df85c50269bea3a86721f84afe74f7b41ea58abcf3474e88d\npublic = 3018301306072a8648ce3d020106082a8648ce3d030107030100\nresult = invalid\nshared = \n\n# tcId = 210\n# public point not on curve\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764c\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 211\n# public point = (0,0)\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 212\n# order =\n# -115792089210356248762697446949407573529996955224135760342422259061068512044369\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f50221ff00000000ffffffff00000000000000004319055258e8617b0c46353d039cdaaf020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 213\n# order = 0\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201133081cc06072a8648ce3d02013081c0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5020100020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 214\n# order = 1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201133081cc06072a8648ce3d02013081c0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5020101020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 215\n# order = 26959946660873538060741835960514744168612397095220107664918121663170\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3082012f3081e806072a8648ce3d02013081dc020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff0000000100000", + "0000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5021d00ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 216\n# generator = (0,0)\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b04410400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 217\n# generator not on curve\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f7022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 218\n# cofactor = -1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325510201ff034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 219\n# cofactor = 0\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 220\n# cofactor = 2\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020102034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 221\n# cofactor =\n# 115792089210356248762697446949407573529996955224135760342422259061068512044369\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201553082010d06072a8648ce3d020130820100020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = invalid\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 222\n# cofactor = None\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201303081e906072a8648ce3d02013081dd020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff30440420ffffffff00000001000000000000000000000000fffffffffffffffffffffffc04205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 223\n# modified prime\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fd091059a6893635f900e9449d63f572b2aebc4cff7b4e5e33f1b200e8bbc1453044042002f6efa55976c9cb06ff16bb629c0a8d4d5143b40084b1a1cc0e4dff17443eb704205ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b0441040000000000000000000006597fa94b1fd90000000000000000000000000000021b8c7dd77f9a95627922eceefea73f028f1ec95ba9b8fa95a3ad24bdf9fff414022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200040000000000000000000006597fa94b1fd90000000000000000000000000000021b8c7dd77f9a95627922eceefea73f028f1ec95ba9b8fa95a3ad24bdf9fff414\nresult = invalid\nshared = cea0fbd8f20abc8cf8127c132e29756d25ff1530a88bf5c9e22dc1c137c36be9\nflags = ModifiedPrime,InvalidPublic,UnnamedCurve\n\n# tcId = 224\n# using secp224r1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 304e301006072a8648ce3d020106052b81040021033a0004074f56dc2ea648ef89c3b72e23bbd2da36f60243e4d2067b70604af1c2165cec2f86603d60c8a611d5b84ba3d91dfe1a480825bcc4af3bcf\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 225\n# using secp256k1\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8", + "f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 226\n# a = 0\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201143081cd06072a8648ce3d02013081c1020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff302504010004201b95c2f46065dbf0f3ff09153e4748ed71595e0774ba8e25c364ff1e6be039b70441041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101034200041510264c189c3d523ff9916abd7069efa6968d8dc7ddb6457d7869b53ea60cdcfafb7ed4786da15d29ee59256f536da3575a4888c1bb0a95b256f4a7e9fd764a\nresult = acceptable\nshared = d003f5cc83852584061f7a8a28bcb5671ecbda096e16e7accfa8f8d311a3db7a\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 227\n# public key of order 3\nprivate = 4f3414d1589b49f7172d439cbbe78e5b5350dc85dea40cd2d6274740c6e0239c\npublic = 308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff304404207b5c92a0cac0f30673473f260f89926a14da905bc7e5e07df1e8df69059d98570420cb2eaa5643572372d5cba1e69f687d287fd62f5518322af2614ce512dd680a76044104843587c1bea197a1be63c67c9f1641c70f7d3cba49147e9fc0c9bb246e1498186049243e8e92743df2f9994d60f90ab21635e00183e69b317f00ad226da8f546022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255102010103420004843587c1bea197a1be63c67c9f1641c70f7d3cba49147e9fc0c9bb246e1498189fb6dbc0716d8bc30d0666b29f06f54de9ca1fff7c1964ce80ff52dd92570ab9\nresult = invalid\nshared = \nflags = WeakPublicKey,InvalidPublic,UnnamedCurve\n\n# tcId = 228\n# Public key uses wrong curve: secp224r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 304e301006072a8648ce3d020106052b81040021033a00042af270d2a6030e3dd38cc46e7d719f176c2ca4eb04d7e8b84290c8edbcaed964ebe226b2d7ce17251622804c0d3b7adce020a3cdc97cac6c\nresult = invalid\nshared = \n\n# tcId = 229\n# Public key uses wrong curve: secp384r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3076301006072a8648ce3d020106052b81040022036200041f17901e731b06f349b6e9d7d17d45e8a2b46115a47485be16197932db87b39405b5c941b36fd61b9ef7dd20878e129e55a2277099c601dcdb3747f80ad6e166116378e1ebce2c95744a0986128cfeeaac7f90b71787d9a1cfe417cd4c8f6af5\nresult = invalid\nshared = \n\n# tcId = 230\n# Public key uses wrong curve: secp521r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400ed76e5888428fad409ff203ab298b0f24827c091939ae0f9b1245d865ac5fbcd2749f9ae6c90fa8e29414d1bc7dc7b3c4aca904cd824484421cc66fe6af43bdfd200c1f790a0b3ae994937f91b6bdb9778b08c83ecadb8cba22a78c37bf565dac164f18e719be0ef890ee5cbf20e17fcfc9a5585e5416470b9862f82fb769339994f4e\nresult = invalid\nshared = \n\n# tcId = 231\n# Public key uses wrong curve: secp256k1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3056301006072a8648ce3d020106052b8104000a034200048028d16082b07696d4aa4aab9d6b1f1463435ac097900631108f9888e13da67c4841fd8dd3ced6e7ad8c6fc656621c2f93d3db0eb29d48d1423154519865dbc1\nresult = invalid\nshared = \n\n# tcId = 232\n# Public key uses wrong curve: secp224k1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 304e301006072a8648ce3d020106052b81040020033a0004dc79fc28da096ac19f3cf0bc70b8e52529a83861ac66b1d44b9f2e9c68856babaa94f5fa67a1edfce5bd1768f9b9a1621483d214436aab02\nresult = invalid\nshared = \n\n# tcId = 233\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a0004a6bae3d155c1f9ca263928c986ede69acefd0dd9b3a19d2b9f4b0a3a66bea5d167318dcc028945fc1b40c60ce716ba2d414a743c6b856a6f\nresult = invalid\nshared = \n\n# tcId = 234\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 305a301406072a8648ce3d020106092b2403030208010107034200045d3ddbbb9bc071d8b59855c74bdf3541ae4cb6c1a24ec439034df7abde16a346523edf6a67896b304cb2cd2a083eec2b16935bbc910e85ec6eae38b50230bf70\nresult = invalid\nshared = \n\n# tcId = 235\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 306a301406072a8648ce3d020106092b240303020801010903520004a43c6ef2500723d54c1fc88f8844d83445ca5a0f585c10b8eb3f022d47d0e84862b7f5cbf97d352d4348ca730f600f2258d1d192da223f6ba83a7cc0d6da598d55c2b77824d326c8df000b8fff156d2c\nresult = invalid\nshared = \n\n# tcId = 236\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 307a301406072a8648ce3d020106092b240303020801010b036200042391c062833d1e6d89ec256cf4a3989534c1ead5e1e14ffae933a53f962857e4713087e1b3d65ac79634c71577af24698b5ce959183835551f7b08aef7853378c299930b360813fd58d5e4da8b37d5a7473e891ee11cb02881bd848b364fb7d5\nresult = invalid\nshared = \n\n# tcId = 237\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 30819b301406072a8648ce3d020106092b240303020801010d038182000484beae85096640953c1fd6ebbc32697263d53f89943cbaf14432061aea8c0318acbd9389ab1d2e904fa0e081d08cfabb614ed9bca618211142d94623c14b476a25e47abf98fd3b1da1417dfc2e2cfc8424b16ea14dd45e1422be7d4e0a5cc7f4d4ab5f198cdbaaa3f642ec6361842cbe869382ee78cd596ff5e740d9ec2c3ad6\nresult = invalid\nshared = \n\n# tcId = 238\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a00042b0a1a858ffc44e7752940731d378f96570837e279ea3948fe00cff8b5f89adb4e2fe6f8781ba6426364f4590b34dd79fc80629de4a86084\nresult = invalid\nshared = \n\n# tcId = 239\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 305a301406072a8648ce3d020106092b2403030208010108034200043037c01b4a5ac53742e3f5528dffb0f010ab6ebeb08d792b32e19e9006ca331a024b67698d7cf4b575ccd9389441d5c640b77c63771cef1bd85675361c6602a4\nresult = invalid\nshared = \n\n# tcId = 240\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 306a301406072a8648ce3d020106092b240303020801010a035200040f0fd972a495a140124a4019291a20f5b39fb755c126bf268643bb3091eca44f2a3cda1dead6ab1f4fe08a4b3872423f71e5bf96b1c20bc0ca73b7e2c134cc14a5f77bc838ebcf01084da3bf15663536\nresult = invalid\nshared = \n\n# tcId = 241\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 307a301406072a8648ce3d020106092b240303020801010c0362000403b65faf5a6bf74bd5c166278a4b566c6c705ac6363e61f3b0699e116d3c5b19e8b7021b75b005f78a8cea8de34c49397f9b3b2bfc8706eb8163c802371eff7dfc825c40aa84dd9d1c4b34615ee5ae28c6c05d58d2a8ccc3786382b712d3bcda\nresult = invalid\nshared = \n\n# tcId = 242\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 00b44f9670fedba887ad8e806226063e77604b27c362836326e93ecb7fcc6dc297\npublic = 30819b301406072a8648ce3d020106092b240303020801010e03818200047504d660943a69ab043378e44c034896534a346e0e95f35fcaad3503b490856bfb20a753ecabc6d7bfeec28d057f919923b7d3c086953eb16c5bd287b59788db72dbb7c273854294c927ea7eca205aae2f0830e5faaddad8316231bfc3572c85c33cb7054e04c8936e3ce059c907e59f40593444e590b31820bc1f514ed0ec8a\nresult = invalid\nshared = \n\n# tcId = 243\n# invalid public key\nprivate = 6f953faff3599e6c762d7f4cabfeed092de2add1df1bc5748c6cbb725cf35458\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220002fd4bf61763b46581fd9174d623516cf3c81edd40e29ffa2777fb6cb0ae3ce535\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 244\n# public key is a low order point on twist\nprivate = 00d27edf0ff5b6b6b465753e7158370332c153b468a1be087ad0f490bdb99e5f02\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220003efdde3b32872a9effcf3b94cbf73aa7b39f9683e", + "ce9121b9852167f4e3da609b\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 245\n# public key is a low order point on twist\nprivate = 00d27edf0ff5b6b6b465753e7158370332c153b468a1be087ad0f490bdb99e5f03\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220002efdde3b32872a9effcf3b94cbf73aa7b39f9683ece9121b9852167f4e3da609b\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 246\n# public key is a low order point on twist\nprivate = 0095ead84540c2d027aa3130ff1b47888cc1ed67e8dda46156e71ce0991791e835\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220002c49524b2adfd8f5f972ef554652836e2efb2d306c6d3b0689234cec93ae73db5\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 247\n# public key is a low order point on twist\nprivate = 00a8681ef67fb1f189647d95e8db00c52ceef6d41a85ba0a5bd74c44e8e62c8aa4\npublic = 3039301306072a8648ce3d020106082a8648ce3d0301070322000318f9bae7747cd844e98525b7ccd0daf6e1d20a818b2175a9a91e4eae5343bc98\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 248\n# public key is a low order point on twist\nprivate = 00a8681ef67fb1f189647d95e8db00c52ceef6d41a85ba0a5bd74c44e8e62c8aa5\npublic = 3039301306072a8648ce3d020106082a8648ce3d0301070322000218f9bae7747cd844e98525b7ccd0daf6e1d20a818b2175a9a91e4eae5343bc98\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 249\n# public key is a low order point on twist\nprivate = 0095ead84540c2d027aa3130ff1b47888cc1ed67e8dda46156e71ce0991791e834\npublic = 3039301306072a8648ce3d020106082a8648ce3d03010703220003c49524b2adfd8f5f972ef554652836e2efb2d306c6d3b0689234cec93ae73db5\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 250\n# long form encoding of length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 308159301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 251\n# long form encoding of length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a30811306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 252\n# length of sequence contains leading 0\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30820059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 253\n# length of sequence contains leading 0\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3082001306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 254\n# wrong length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 255\n# wrong length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 256\n# wrong length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301406072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 257\n# wrong length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301206072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 258\n# uint32 overflow in length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30850100000059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 259\n# uint32 overflow in length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3085010000001306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 260\n# uint64 overflow in length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3089010000000000000059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 261\n# uint64 overflow in length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062308901000000000000001306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 262\n# length of sequence = 2**31 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30847fffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 263\n# length of sequence = 2**31 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d30847fffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 264\n# length of sequence = 2**32 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3084ffffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags", + " = InvalidAsn\n\n# tcId = 265\n# length of sequence = 2**32 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d3084ffffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 266\n# length of sequence = 2**40 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3085ffffffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 267\n# length of sequence = 2**40 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3085ffffffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 268\n# length of sequence = 2**64 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3088ffffffffffffffff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 269\n# length of sequence = 2**64 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30613088ffffffffffffffff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 270\n# incorrect length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30ff301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 271\n# incorrect length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305930ff06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 272\n# indefinite length without termination\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 273\n# indefinite length without termination\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059308006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 274\n# indefinite length without termination\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306802a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 275\n# indefinite length without termination\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106802a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 276\n# indefinite length without termination\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107038000042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 277\n# removing sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = \nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 278\n# removing sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3044034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 279\n# lonely sequence tag\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 280\n# lonely sequence tag\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 304530034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 281\n# appending 0's to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 282\n# appending 0's to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d020106082a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 283\n# prepending 0's to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b0000301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 284\n# prepending 0's to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015000006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n", + "# tcId = 285\n# appending unused 0's to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 286\n# appending unused 0's to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 287\n# appending null value to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 288\n# appending null value to sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d020106082a8648ce3d0301070500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 289\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e4981773059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 290\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d25003059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 291\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0004deadbeef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 292\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3018498177301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 293\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d30172500301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 294\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30613015301306072a8648ce3d020106082a8648ce3d0301070004deadbeef034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 295\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3018260c49817706072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 296\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d3017260b250006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 297\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b260906072a8648ce3d02010004deadbeef06082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 298\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301806072a8648ce3d0201260d49817706082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 299\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706072a8648ce3d0201260c250006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 300\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b06072a8648ce3d0201260a06082a8648ce3d0301070004deadbeef034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 301\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301306072a8648ce3d020106082a8648ce3d0301072347498177034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 302\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d03010723462500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 303\n# including garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301306072a8648ce3d020106082a8648ce3d0301072344034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0004deadbeef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 304\n# including undefined tags\npr", + "ivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061aa00bb00cd003059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 305\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305faa02aabb3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 306\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301baa00bb00cd00301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 307\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f3019aa02aabb301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 308\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b260faa00bb00cd0006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 309\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f3019260daa02aabb06072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 310\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b06072a8648ce3d02012610aa00bb00cd0006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 311\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f301906072a8648ce3d0201260eaa02aabb06082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 312\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301306072a8648ce3d020106082a8648ce3d030107234aaa00bb00cd00034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 313\n# including undefined tags\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f301306072a8648ce3d020106082a8648ce3d0301072348aa02aabb034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 314\n# truncated length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3081\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 315\n# truncated length of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30463081034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 316\n# Replacing sequence with NULL\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 0500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 317\n# Replacing sequence with NULL\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30460500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 318\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 2e59301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 319\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 2f59301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 320\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3159301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 321\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3259301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 322\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = ff59301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 323\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30592e1306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 324\n#", + " changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30592f1306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 325\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059311306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 326\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059321306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 327\n# changing tag value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059ff1306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 328\n# dropping value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 329\n# dropping value of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30463000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 330\n# truncated sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 331\n# truncated sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30581306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 332\n# truncated sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206072a8648ce3d020106082a8648ce3d0301034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 333\n# truncated sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30583012072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 334\n# indefinite length\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 335\n# indefinite length\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b308006072a8648ce3d020106082a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 336\n# indefinite length with truncated delimiter\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b00\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 337\n# indefinite length with truncated delimiter\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a308006072a8648ce3d020106082a8648ce3d03010700034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 338\n# indefinite length with additional element\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b05000000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 339\n# indefinite length with additional element\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d308006072a8648ce3d020106082a8648ce3d03010705000000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 340\n# indefinite length with truncated element\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b060811220000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 341\n# indefinite length with truncated element\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f308006072a8648ce3d020106082a8648ce3d030107060811220000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 342\n# indefinite length with garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000fe02beef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 343\n# indefinite length with garbage\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305f308006072a8648ce3d020106082a8648ce3d0301070000fe02beef034200042998705a9a71c783e1cf4397dbed9375a", + "44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 344\n# indefinite length with nonempty EOC\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3080301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0002beef\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 345\n# indefinite length with nonempty EOC\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d308006072a8648ce3d020106082a8648ce3d0301070002beef034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 346\n# prepend empty sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3000301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 347\n# prepend empty sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015300006072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 348\n# append empty sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b3000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 349\n# append empty sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d020106082a8648ce3d0301073000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 350\n# append garbage with high tag number\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305c301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66bbf7f00\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 351\n# append garbage with high tag number\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305c301606072a8648ce3d020106082a8648ce3d030107bf7f00034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 352\n# sequence of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 353\n# sequence of sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 354\n# truncated sequence: removed last 1 elements\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3015301306072a8648ce3d020106082a8648ce3d030107\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 355\n# truncated sequence: removed last 1 elements\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 304f300906072a8648ce3d0201034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 356\n# repeating element in sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30819d301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 357\n# repeating element in sequence\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3063301d06072a8648ce3d020106082a8648ce3d03010706082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 358\n# long form encoding of length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a30140681072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 359\n# long form encoding of length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406072a8648ce3d02010681082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 360\n# length of oid contains leading 0\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015068200072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 361\n# length of oid contains leading 0\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201068200082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 362\n# wrong length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306082a8648ce3d020106082a8648ce3d030107034200042998705a9a71c78", + "3e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 363\n# wrong length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306062a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 364\n# wrong length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106092a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 365\n# wrong length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106072a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 366\n# uint32 overflow in length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e3018068501000000072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 367\n# uint32 overflow in length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301806072a8648ce3d0201068501000000082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 368\n# uint64 overflow in length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301c06890100000000000000072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 369\n# uint64 overflow in length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301c06072a8648ce3d020106890100000000000000082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 370\n# length of oid = 2**31 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706847fffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 371\n# length of oid = 2**31 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706072a8648ce3d020106847fffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 372\n# length of oid = 2**32 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d30170684ffffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 373\n# length of oid = 2**32 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706072a8648ce3d02010684ffffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 374\n# length of oid = 2**40 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e30180685ffffffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 375\n# length of oid = 2**40 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301806072a8648ce3d02010685ffffffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 376\n# length of oid = 2**64 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b0688ffffffffffffffff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 377\n# length of oid = 2**64 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301b06072a8648ce3d02010688ffffffffffffffff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 378\n# incorrect length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306ff2a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 379\n# incorrect length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106ff2a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 380\n# removing oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3050300a06082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 381\n# lonely oid tag\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b0606082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b", + "063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 382\n# lonely oid tag\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3050300a06072a8648ce3d020106034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 383\n# appending 0's to oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506092a8648ce3d0201000006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 384\n# appending 0's to oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201060a2a8648ce3d0301070000034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 385\n# prepending 0's to oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015060900002a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 386\n# prepending 0's to oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201060a00002a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 387\n# appending unused 0's to oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201000006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 388\n# appending null value to oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506092a8648ce3d0201050006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 389\n# appending null value to oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301506072a8648ce3d0201060a2a8648ce3d0301070500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 390\n# truncated length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3052300c068106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 391\n# truncated length of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b06072a8648ce3d02010681034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 392\n# Replacing oid with NULL\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3052300c050006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 393\n# Replacing oid with NULL\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b06072a8648ce3d02010500034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 394\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301304072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 395\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301305072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 396\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301307072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 397\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301308072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 398\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 30593013ff072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 399\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020104082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 400\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020105082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 401\n# changing tag value of ", + "oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020107082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 402\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020108082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 403\n# changing tag value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d0201ff082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 404\n# dropping value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3052300c060006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 405\n# dropping value of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3051300b06072a8648ce3d02010600034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 406\n# modify first byte of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305930130607288648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 407\n# modify first byte of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d02010608288648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 408\n# modify last byte of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d028106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 409\n# modify last byte of oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030187034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 410\n# truncated oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206062a8648ce3d0206082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 411\n# truncated oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206068648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 412\n# truncated oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206072a8648ce3d020106072a8648ce3d0301034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 413\n# truncated oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301206072a8648ce3d020106078648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 414\n# wrong oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3057301106052b0e03021a06082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 415\n# wrong oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b3015060960864801650304020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 416\n# wrong oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3056301006072a8648ce3d020106052b0e03021a034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 417\n# wrong oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406072a8648ce3d02010609608648016503040201034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 418\n# longer oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406082a8648ce3d02010106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 419\n# longer oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406072a8648ce3d020106092a8648ce3d03010701034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 420\n# oid with modified node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d021106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f", + "082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 421\n# oid with modified node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d3017060b2a8648ce3d02888080800106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 422\n# oid with modified node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030117034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 423\n# oid with modified node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301706072a8648ce3d0201060c2a8648ce3d03018880808007034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 424\n# large integer in oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301c06102a8648ce3d028280808080808080800106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 425\n# large integer in oid\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301c06072a8648ce3d020106112a8648ce3d030182808080808080808007034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 426\n# oid with invalid node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406082a8648ce3d0201e006082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 427\n# oid with invalid node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406082a808648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 428\n# oid with invalid node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406072a8648ce3d020106092a8648ce3d030107e0034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 429\n# oid with invalid node\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301406072a8648ce3d020106092a808648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 430\n# long form encoding of length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305a301306072a8648ce3d020106082a8648ce3d03010703814200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 431\n# length of bit string contains leading 0\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d0301070382004200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 432\n# wrong length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034300042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 433\n# wrong length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034100042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 434\n# uint32 overflow in length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301306072a8648ce3d020106082a8648ce3d0301070385010000004200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 435\n# uint64 overflow in length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3062301306072a8648ce3d020106082a8648ce3d030107038901000000000000004200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 436\n# length of bit string = 2**31 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d03010703847fffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 437\n# length of bit string = 2**32 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d0301070384ffffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 438\n# length of bit string = 2**40 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305e301306072a8648ce3d020106082a8648ce3d0301070385ffffffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 439\n# length of bit string = 2**64 - 1\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3061301306072a8648ce3d020106082a8648ce3d0301070388ffffffffffffffff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult", + " = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 440\n# incorrect length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703ff00042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 441\n# lonely bit string tag\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3016301306072a8648ce3d020106082a8648ce3d03010703\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 442\n# appending 0's to bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034400042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0000\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 443\n# prepending 0's to bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d0301070344000000042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 444\n# appending null value to bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305b301306072a8648ce3d020106082a8648ce3d030107034400042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b0500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 445\n# truncated length of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070381\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 446\n# Replacing bit string with NULL\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070500\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 447\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107014200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 448\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107024200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 449\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107044200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 450\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107054200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 451\n# changing tag value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107ff4200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 452\n# dropping value of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3017301306072a8648ce3d020106082a8648ce3d0301070300\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 453\n# modify first byte of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034202042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 454\n# modify last byte of bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6eb\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 455\n# truncated bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d030107034100042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add6\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 456\n# truncated bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3058301306072a8648ce3d020106082a8648ce3d0301070341042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 457\n# declaring bits as unused in bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034201042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 458\n# unused bits in bit string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 305d301306072a8648ce3d020106082a8648ce3d030107034620042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b01020304\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 459\n# unused bits in empty bit-string\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3018301306072a8648ce3d020106082a8648ce3d030107030103\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n# tcId = 460\n# 128 unused bits\nprivate = 00c9551ffe53ce60d73cbf8af553d0cb5f7632ece499590182c28cb6db2e3978d2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703", + "4280042998705a9a71c783e1cf4397dbed9375a44e4cb88053594b0ea982203b6363b063d0af4971d1c3813db3c7799f9f9324cbe1b90054c81b510ff6297160add66b\nresult = acceptable\nshared = f0b6d851dcd8e9a8c474d695137962f082c4f2a1a2eefb182df58d88a72829e4\nflags = InvalidAsn\n\n", }; -static const size_t kLen64 = 231526; +static const size_t kLen97 = 236047; -static const char *kData64[] = { - "# Imported from Wycheproof's ecdh_secp384r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.4.12\n\n[curve = secp384r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 766e61425b2da9f846c09fc3564b93a6f8603b7392c785165bf20da948c49fd1fb1dee4edd64356b9f21c588b75dfd81\npublic = 3076301006072a8648ce3d020106052b8104002203620004790a6e059ef9a5940163183d4a7809135d29791643fc43a2f17ee8bf677ab84f791b64a6be15969ffa012dd9185d8796d9b954baa8a75e82df711b3b56eadff6b0f668c3b26b4b1aeb308a1fcc1c680d329a6705025f1c98a0b5e5bfcb163caa\nresult = valid\nshared = 6461defb95d996b24296f5a1832b34db05ed031114fbe7d98d098f93859866e4de1e229da71fef0c77fe49b249190135\n\n# tcId = 2\n# compressed public key\nprivate = 766e61425b2da9f846c09fc3564b93a6f8603b7392c785165bf20da948c49fd1fb1dee4edd64356b9f21c588b75dfd81\npublic = 3046301006072a8648ce3d020106052b8104002203320002790a6e059ef9a5940163183d4a7809135d29791643fc43a2f17ee8bf677ab84f791b64a6be15969ffa012dd9185d8796\nresult = acceptable\nshared = 6461defb95d996b24296f5a1832b34db05ed031114fbe7d98d098f93859866e4de1e229da71fef0c77fe49b249190135\n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 3\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004490e96d17f4c6ceccd45def408cea33e9704a5f1b01a3de2eaaa3409fd160d78d395d6b3b003d71fd1f590fad95bf1c9d8665efc2070d059aa847125c2f707435955535c7c5df6d6c079ec806dce6b6849d337140db7ca50616f9456de1323c4\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200040161328909675213e32098d35a6b8308a8d500cca39dcee5e804e73bdb8deaf06fe417291fd9793b231ef5fe86945444a97a01f3ae3a8310c4af49b592cb291ef70ee5bc7f5534d3c23dc9eefde2304842c7737ae937ccf9bd215c28103e9fe2\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 5\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004af4ae964e3bcbd923accda5da3175d411fd62d17dd3c3a1c410bef1730985a6265d90e950ac0fc50743b1ed771906ff33b68cf4d3d83a885a87097fdd329ce83b189f98cec5be44c31d1a3a2bba10f471963232b8ba7610fa8c72179050eb86d\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\n\n# tcId = 6\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200041478ab6e032b9545eda9ac2c264e57a11f08acbc76d16a0ab77b04dbdaf20f215c4183437b32afc471eaa603d14c7c5d8a4c84ee0e895bec5c37f0a1ca075e106ff6bf38801b5c697409d39675231108d33c4a5ea65aaa8c03e939c95d96c4c4\nresult = valid\nshared = 0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00000000000000010000000000000001\n\n# tcId = 7\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004f63208e34e7e90bb5fb036432467a89981444010663b8533b47bfa94bd2bc16f38aa516b930a4726e3876d3091bfb72ec783ed4da0cac06320817dc8bc64f59ccf06f48abc4386a150913fa95743a7b4601190e1c6ee8f8bf6354b254ecace45\nresult = valid\nshared = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004033271ef42d92ad47b273b09ea2f45401161baa52696590d0e175ff2d1c0dfa3fea40e4266d446546c05e480d57fabec7889f16a8bcc176602f6d46561614a2f4284abe697b7cb9ce79f7e2e71b155cb1f155ce925d16391a680eda23152e6e1\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff\n\n# tcId = 9\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004737e8437e18683de2455b68945bba31daec3e754d72f0a0776d3192b2f9298bb95ca1464baa6687aabb679f804cf6ec6c2b4d47d61a60404df63b1e9ac0954b3419bbc2ad52a0409aeeb82f4703758588059165b20367dcb4b235b0caf71d727\nresult = valid\nshared = 007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008000\n\n# tcId = 10\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000437f9004983156bbd9c47891e75237bb13016bd7fe6f4e0f71cef0e63f16a672f0d3b0e20165c33407e146b6a4ae6962dd3b57ccb99e7aaf1303240516d0ebe08e585513e3695d42c467dcab5340ef761990cadc8d8840aacc944481415c07feb\nresult = valid\nshared = 3b5eed80727bcbc5113b8a9e4db1c81b1dddc2d99ff56d9c3c1054348913bde296311c4bd2fa899b4d0e66aaa1b6a0dd\n\n# tcId = 11\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200049655d8e5622718b317cfbc09894357f75a6b13fa516bcd6630721b869a620196cf0c3dec8860b32d27ed9bac2cf263af17321698116d7d811ae8da9b9cbbf9382c1e36e2b67d6c6af9bcea7d9de00ca72b398606c098a0a0f0c4b8941943ed65\nresult = valid\nshared = 6a99a5acd4a7edb1c707d7f8be12e81140338e3e14ba563c703c681a319a3f9ce1f90f032bf840f3758e89cb852ceca6\n\n# tcId = 12\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004ccb13d427b3c4bb33dd4f20cddabc68600eaf97eeb2c81e8c218ae90743e74ff38ca56f0c0224379db464dcf4a40f04350cd7a659b2c4851a5dcf8c990fc920c07d4d5aa50a2185750e6b84c42e83cff635050482decb4780f812e4c49fc7404\nresult = valid\nshared = 7c25a4f57f76ab13b25cab3c265db9d9bd925fecbf7bf93bef1308778646628decab067ed988a9755cd88e88de367104\n\n# tcId = 13\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200042664624307c02ef487030a632162c515f841d15ea3152d98ff2364232d7aab39343d5f703a4d5a31092aa7356c3a2f671c1cd603addfd8b5477552a3b32a18edaf3e33bec22ee2167f9da729636002a7974eaeb5ff082b2aabf8c7056b84c3ab\nresult = valid\nshared = 7fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000002\n\n# tcId = 14\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004665f1f320b6ab1c1b52d144e52d87a154c2b4489838c9119de622c2d1b52b65b0a3955e44e0d4859175360c0f63dee813f14f69972f18caed7916c94a4d20ec344591e7536a4a7a4d8c9832818c96d60b1a81fabe64ea02c5f647e361bf5b60f\nresult = valid\nshared = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 15\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000491357ca87dbb08e85d7b1acecfd1e086078a82d19f81474da389364a39fe2543eb934b440173c38e61a1d9407855b5d89ef0d9e920764b6d7765b084cf9541dacc43d1dabaa390b0fb856097b0c00a8556f4e3848568ab4ae790c3d346ca01b6\nresult = valid\nshared = fff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff\n\n# tcId = 16\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006", - "072a8648ce3d020106052b8104002203620004d5a833bae33b2d10fdff6db7c5477adb614b191c70d97c6f130a14e93931cc1dc058053fee54a264a00fdd16d3166fdc42992276b79925bafcd183b03ed18235350980abfe67b814c6c11074c38f74cd4e734ad58cdb49d9fcd2181d1b8f1119\nresult = valid\nshared = fffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000004000000\n\n# tcId = 17\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000467547cda7fbe8f16be5a4477cbb02979f1af72fc0f39302773552fbcf4667a8e23abc0e12856ee6234deeca5f22ae0503a4df7c068e7432417260cb9fe0d68b9c7fcf7e16a2ada05687d8f8900b84723103edbff0a42b27517da2760b7d38843\nresult = valid\nshared = ffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200041363e3b99008e09bb3f085949b9b6ea26a318f496de568a96630fdb9d4c72c2814df3087a1741f32f24989b428167f93c653cb3ae8c3ecfaec57efd54bb8ce9d79c7bf6cc70fb1114f939be8f1a99bf1e42b97431124ef9fa33450faa4e76839\nresult = valid\nshared = ffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff0000000000000100000000000001\n\n# tcId = 19\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004ba2be8d7147e2417c2ec80b24b4c1aa94464ffd0aae1fa2e078b3afbc77c144489ca9d064acbb7a9cfa6196d0f467b7e65ee1ca1eb1351ff9968f553dfe2e4c59ff8ba34c22a42b3baa13a9a1adc7f13abd40f1fd25d46bc5330852b9371966a\nresult = valid\nshared = ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff\n\n# tcId = 20\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004d69850ccbacc4736ea200ff2f8488f26247945a2ab48dd3708f494b293d8cba83417f48974881c7fb03854089bbf66cc1c773ec03cb8cd5f007ec3b03bdd05a409b352103f0decf25b41673ab8ca3d04334babee01219f15701f2bca22d40b37\nresult = valid\nshared = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\n\n# tcId = 21\n# y-coordinate of the public key has many trailing 0's\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200046fcaf82d982d222d6096ba83e55b1c7dcb71a41e88f323333f44284d95c4bd3616da7a1bef928f31c26f885ba7adb487826fde2ed9f5649c11cf8465f8bf8ad50f68914936fc39666f68219d066506bea4001fdc816c9a90e7e2afb19bea085f\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000001f03123b00000000000000000000000000000000\n\n# tcId = 22\n# y-coordinate of the public key has many trailing 1's\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200046fcaf82d982d222d6096ba83e55b1c7dcb71a41e88f323333f44284d95c4bd3616da7a1bef928f31c26f885ba7adb4877d9021d1260a9b63ee307b9a0740752af0976eb6c903c6999097de62f99af9405bffe0227e93656f181d504f6415f7a0\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000001f03123b00000000000000000000000000000000\n\n# tcId = 23\n# y-coordinate of the public key is small\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004bfeb47fb40a65878e6b642f40b8e15022ade9ecfa8cb618043063494e2bc5d2df10d36f37869b58ef12dcc35e3982835fd2e55ec41fdfe8cabbbb7bcd8163645a19e9dac59630f3fe93b208094ff87cd461b53cef53482e70e2e8ea87200cc3f\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000\n\n# tcId = 24\n# y-coordinate of the public key is large\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004bfeb47fb40a65878e6b642f40b8e15022ade9ecfa8cb618043063494e2bc5d2df10d36f37869b58ef12dcc35e398283502d1aa13be0201735444484327e9c9ba5e616253a69cf0c016c4df7f6b007831b9e4ac300acb7d18f1d171588dff33c0\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e\nresult = valid\nshared = 6092a1757ddd43a04e185ff9472a0d18c7f7a7dc802f7e059e0c69ae16c802651719406e04de27652ff83da4a780ef2f\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002732152442fb6ee5c3e6ce1d920c059bc623563814d79042b903ce60f1d4487fccd450a86da03f3e6ed525d02017bfdb3\nresult = valid\nshared = 89c804cb81443386b185bcd9e2e6c35ee6177c3b90298985c4e81a89d520cceb17d729540e56ecc343c26bf314f2d052\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036660041b1c7984620e8d7fd7ccdb50cc3ba816da14d41a4d8affaba8488867f0ca5a24f8d42dd7e44b530a27dc5b58da\nresult = valid\nshared = 35513157e804bd918d04de202778b81a6fc7ad8aa541ee94116a0f18466725d75e71c6942bf044b1b0ecba19db33e0de\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00000000000000010000000000000001141b9ee5310ea8170131b604484a6d677ed42576045b7143c026710ae92b277afbbea0c4458c220d561e69404dc7d888\nresult = valid\nshared = 102080c047881d19aefb01c29c82a4fb328a8ea6e6d6c914af73100507c8ee499799aaa646de0ea8c2727c0b5ed2439b\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b810400220362000400000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff70370385413d3eff6fa3407ba24f682c2b01b51445dbdf5ef7b0dd0979f17e713e09081571f1e94dfb66bf282002f39f\nresult = valid\nshared = f689f6e475b4e15162521acab4637a3cdb9cb42aa92f9114b0ee300ddae89d5eafff3463a1f5004a2a1bd4aeffa47b78\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff112e191f1f78bbc54b6cc4f0b1e59ae8c6ff1a07f5128e41dfa2828e1b6538d4fa2ca2394c6aab3449dcb3fc4eb44c09\nresult = valid\nshared = f3486244119b3632fd55be9e6951eb5d9c8c62f6a27042f94b924155ecfd4ff8744ba3d25bcf85a7b925bd28a12b897f\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008000028a4c8da5a05112fe6025ef41908969de20d05d9668e5c852ef2d492172ddc2a0a622fc488164fcc1a076b872942af2\nresult = valid\nshared = 8171b7c80d4c90bb58ae54393921ab9c5", - "c0b3196f045e9fe5c8b168f0e5f6a77e1aa34ecedc5481ce55ab34c14e0f2e8\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200043b5eed80727bcbc5113b8a9e4db1c81b1dddc2d99ff56d9c3c1054348913bde296311c4bd2fa899b4d0e66aaa1b6a0dd7b7f0f28d55e2f3a50f1f1bef3976834a05b43418e979303bc0363ed16d2d0b4011cc37b3c06ad73154faeab7915cd87\nresult = valid\nshared = 1fe6fea5f00d3005abaae2267ff18e430915838d87909ab503885edf38be7618ecb321f0a4df71b0913fbf12c76fc1f0\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200046a99a5acd4a7edb1c707d7f8be12e81140338e3e14ba563c703c681a319a3f9ce1f90f032bf840f3758e89cb852ceca63cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e\nresult = valid\nshared = f58adc13ff997d38383910db7befb17670393a33d95b049c2aa19d760c8e728ecedd32168476b90b26a3742dcc121b07\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200047c25a4f57f76ab13b25cab3c265db9d9bd925fecbf7bf93bef1308778646628decab067ed988a9755cd88e88de367104562ee0c57e71d96cefe31b4c4045bd4086a38e8ab9adf2d5567be318051d70f3aa68b753f271ab032b6abcce919e2962\nresult = valid\nshared = 56299684ec5ceb09ba4d94d1231005a826c9c08a5219c757e0136cbe8b6430badd4925172f2939891da7c7893850512f\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200047fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff80000040000024480ab33cb4bf7cb79c024eeade3fd641e2f3003698400e8986a7343a5da59a3b26eea4b4176e53239371437d834a1a7\nresult = valid\nshared = 1911a0ee6aebe263fdcf3db073f2598cdafabec2123a2f24a28c3d9151c871f32d6dc2f31d25af9c498fd68da23e5bef\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200048000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020797da4c0751ced16de80d16ab7c654a5dc27d092626d0865a192a1c5ea7c1b88c9fcab057946741e41cc28c80ec0b9a\nresult = valid\nshared = 15900643e2e0583976974b05f83c7a96611425f7c4a6eb51916ab958a037fd9cc172bdcfff4540a2ff3ce64e6505557e\n\n# tcId = 37\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff6c70898ae6fb31fa2f086562af2d10486ba4c6fd5e41dfe4aa61598b4707a3bc276a62feb1b98557e3b17c025f7adf4e\nresult = valid\nshared = 88a544a769d5c34a051416bd509dfac911863f604c83ea844bf0e4c5c272dec86d057a88b152a9274701938c705900c3\n\n# tcId = 38\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff00000040000000eb1592858b6e6e3a199c0f3e7c5f0b4a92915936efb8bc0407680eb7274be7422156ce8cfc8b505b2d902c39992380f\nresult = valid\nshared = b7db26b286e7527cb1f454782fe541862ff0f8d7eed960e22855deb7ac2a69611668c777c53bb74c2bcd40edfbf7944d\n\n# tcId = 39\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff4987abae412809c2fa48fd23b1bdf9e622f5a606c44117215ffa61b18ef46e54a7fbbf11f9a6ba59c991b4ae501fedce\nresult = valid\nshared = b1e8aab1aa633d98dc6b768594e1e3edb801a9ef483f287c83e19744d2ad343ad3debdc4dc178213ad6876b52284f552\n\n# tcId = 40\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000001000000000000013691fe493d4d28bf8ee1dfec812d6c306eae0842919eda6dc525f0d49ac2d26a992251912139a2936849f9d6fa949a68\nresult = valid\nshared = b0de006f80f6f89e4eea6e46dfe305153005612d1e903171ec2886230971961b5202a9f3187bdac413ac24c836adf7a0\n\n# tcId = 41\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff615842aa06b06f78f0a66f7bea88d4b6ee59653eeaa00dc5e0a2b658f969b71af90c9b4e96bd3ca33846955bdccbd359\nresult = valid\nshared = ca8cfa42c5e374914c14d6402b1a99208e47e02ec49818913694ea0822a2cc6c310259a8f3ab7559b9974bc4c2fa337e\n\n# tcId = 42\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe732152442fb6ee5c3e6ce1d920c059bc623563814d79042b903ce60f1d4487fccd450a86da03f3e6ed525d02017bfdb3\nresult = valid\nshared = edf040bace18d90bf9ce720df2a3b31d76d95b7ed9530a159ac0b24e82a871033eada40552f9e606f7115e6a78927511\n\n# tcId = 43\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000001f03123b0000000000000000000000000000000071bd1e700c34075c3cade8ce29d33724af68a7672b265a4e157055360440ab7c461b8e9ac8024e63a8b9c17c00000000\nresult = valid\nshared = ea817dff44f1944a38444498f1b6c1a70a8b913aa326bc2acc5068805d8ddd7a5e41b8ee5b8371a1cf3f7a094258e3a6\n\n# tcId = 44\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000001f03123b000000000000000000000000000000008e42e18ff3cbf8a3c3521731d62cc8db50975898d4d9a5b1ea8faac9fbbf5482b9e4716437fdb19c57463e84ffffffff\nresult = valid\nshared = ea817dff44f1944a38444498f1b6c1a70a8b913aa326bc2acc5068805d8ddd7a5e41b8ee5b8371a1cf3f7a094258e3a6\n\n# tcId = 45\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000000000007f57b69a014783dbfa4967b2f9cfa678a6f0b6e9cfd41648cec5b3c498e72152da3f82d3da2e8e9f8ef37b11\nresult = valid\nshared = bfa93e184f76279fd707d53ddcb3628855cfafb111bcbd0b4df6ef77aee624924d681626a153fa4e59c923b71fc090b3\n\n# tcId = 46\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000ffffffff80a84965feb87c2405b6984d06305987590f4916302be9b7313a4c3a6718deac25c07d2c25d17161710c84ee\nresult = valid\nshared = bfa93e184f76279fd707d53ddcb3628855cfafb111bcbd0b4df6ef77aee624924d681626a153fa4e59c923b71fc090b3\n\n# tcId = 47\n# edge case private key\nprivate = 3\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e", - "\nresult = valid\nshared = 455aea9924330bd6d2d6403478327900e172e93598e254cf6d8eb13f0a3d21be51a46107333844e61dfa3d80df6928e9\n\n# tcId = 48\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = db1d8ef1117282870db8113aa4f58723c756ce598686eb8ea531aa4d39abb1b982b1e7bb2648a6c268d2d351204db8d5\n\n# tcId = 49\n# edge case private key\nprivate = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = e98062df47ef884c9411e16466af84ad271d586008b1fbc50aeb3b36836a35a770dd42e0db84d39b26f4dcd2dc03d90b\n\n# tcId = 50\n# edge case private key\nprivate = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 898aae0ebf1cb49fb6b1234d60f59006325421049a8a320820e1ad6af6593cdc2229a08c500aa55ca05999d12829db9c\n\n# tcId = 51\n# edge case private key\nprivate = 0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 83f862f496ab8af12b82a8a0c047d836bdfa36281324b3a1eb2e9c1d46699d81cb125cbe4b93939fd84e1ae86d8a83cb\n\n# tcId = 52\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a779ecec196accc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 9a26894887a0342ca559a74a4d4a8e1d6b2084f02e1c65b3097121a9a9af047d8810fb945dc25bbf02222b3b625f1e0a\n\n# tcId = 53\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecdc196accc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 8a8d9dc194a26910cbdae7908d185b6ad04b620c94c5ee331e584ed804e495bebc2290a2d7006a06e65b9bcace86c6f6\n\n# tcId = 54\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aece4196accc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = d57f6aa12d3f07e8958499f249e52cfbe5be58482e146c5414dbbf984fc5333710350e2ce96b33beb7678381f40f1dcb\n\n# tcId = 55\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec1969ccc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 188e8041d9a5f0b6cfdad315ada4823beda0146774fad65b500e6ef94376ebf8af7a40ff6f6b45019a09dde7d7fb5552\n\n# tcId = 56\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52959\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 2ecf9dc47e8b07ae61ddbd1680ead02698e9e8469f78d5a28328e48d0c9d7a2ac787e50cba58cc44a32fb1235d2d7027\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 57\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 06ee9f55079d3d3c18c683ba33e0d2521be97c4fbf7917bf3b6287d58ffcde2df88842e3f5530b39549ac20974b1b60e\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 58\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 455aea9924330bd6d2d6403478327900e172e93598e254cf6d8eb13f0a3d21be51a46107333844e61dfa3d80df6928e9\n\n# tcId = 59\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 024c5281487216058270cd1cfe259e948310e4adc263a9edaa4da0bc3f5f8ce8ffc88ae41b2c050bf6dd9c8c66857237\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 60\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 61\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 62\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 63\n# point is not o", - "n curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 64\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 65\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 66\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 67\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 68\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 69\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 70\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 71\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 72\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 73\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 74\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 75\n# point is not on curve\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 76\nprivate = 0c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3015301006072a8648ce3d020106052b81040022030100\nresult = invalid\nshared = \n\n# tcId = 77\n# public point not on curve\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3076301006072a8648ce3d020106052b81040022036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c8\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 78\n# public point = (0,0)\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 79\n# order =\n# -39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f02", - "31ff000000000000000000000000000000000000000000000000389cb27e0bc8d220a7e5f24db74f58851313e695333ad68d020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 80\n# order = 0\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201853082011d06072a8648ce3d020130820110020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f020100020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 81\n# order = 1\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201853082011d06072a8648ce3d020130820110020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f020101020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 82\n# order =\n# 9173994463960286046443283581208347763186259956673124494950032159599396260248791326163093631191247821216106\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b13082014906072a8648ce3d02013082013c020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f022d00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196a020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 83\n# generator = (0,0)\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffff", - "ffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 84\n# generator not on curve\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e61023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 85\n# cofactor = -1\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 86\n# cofactor = 0\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 87\n# cofactor = 2\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c0", - "0a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020102036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 88\n# cofactor =\n# 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201e53082017d06072a8648ce3d020130820170020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 89\n# cofactor = None\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b23082014a06072a8648ce3d02013082013d020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 90\n# modified prime\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100f47e533e4e43e4bf04e901db0eea6efba14bbcdc3b1c5753a7c141487e4f43784e57a72310202323361f44760c8368bf306404300b81acc1b1bc1b40fb16fe24f11591045eb44323c4e3a8ac583ebeb781b0bc86b1a858dbefdfdcdcc9e0bb8af37c973d0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef04610400000000000000000000000000000000fffffffffffd38000000000000000000000000000000000000000000000001cf3646298bba2f24e84189cf0d1e75188fc4fcf5b0844281822e789e3d534b159f4c419342260197625ad924a2c72c4d0f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201010362000400000000000000000000000000000000fffffffffffd38000000000000000000000000000000000000000000000001cf3646298bba2f24e84189cf0d1e75188fc4fcf5b0844281822e789e3d534b159f4c419342260197625ad924a2c72c4d0f\nresult = invalid\nshared = 5df0762488bc0a7be1121508949382861f781c331676048c2d45d245be6f476c872113e6710bc746c3d06970510193ce\n# The modulus of the public key has been modified. The public point of the\n# public key has been chosen so that it is both a point on both the curve of the\n# modified public key and the private key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 91\n# using secp224r1\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 304e301006072a8648ce3d020106052b81040021033a0004074f56dc2ea648ef89c3b72e23bbd2da36f60243e4d2067b70604af1c2165cec2f86603d60c8a611d5b84ba3d91dfe1a480825bcc4af3bcf\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve ", - "of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 92\n# using secp256r1\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbf6606595a3ee50f9fceaa2798c2740c82540516b4e5a7d361ff24e9dd15364e5408b2e679f9d5310d1f6893b36ce16b4a507509175fcb52aea53b781556b39\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 93\n# using secp256k1\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 94\n# a = 0\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201863082011e06072a8648ce3d020130820111020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff303504010004304fcc45ccf5e23ee407b9291d2e85523962a2a79a50da3facca04b7267ad316db202cb07c24905740d201ded3028881090461042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 95\n# public key of order 3\nprivate = 0de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430d5d9a63564e6f51f051c1d8272d6d7b0c005f95ec949ab25c202e3392111ae93bac9c835802fa5ac20d1656d35a333fc0430b1fe2e222bf5a03e2e8a676a529a5583237dc76b25d747b9dc4c51159d51bef52456c83b927c64da7512aca99605480b04610471acb2a68e98de42473717a8873eb556e8a26237207605f16b96ff6511717f5b9e5d039fbb093c5e2c27af63c20cff3545867f2c325566f298770d2da6cc39f81e6ee5fb8c383e91771f962e5a60a63350d72793359f61f2da9493989eaa29a5023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201010362000471acb2a68e98de42473717a8873eb556e8a26237207605f16b96ff6511717f5b9e5d039fbb093c5e2c27af63c20cff35ba7980d3cdaa990d6788f2d25933c607e1911a0473c7c16e88e069d1a59f59cbaf28d86bca609e0d256b6c686155d65a\nresult = invalid\nshared = dca6f0f2efbc90881cbbcf53d09634e8af0909384113f236165d1c05cbda054394312114317b87d251cc176db3e3dcb6\n# The vector contains a weak public key. The curve is not a named curve, the\n# public key point has order 3 and has been chosen to be on the same curve as\n# the private key. This test vector is used to check ECC implementations for\n# missing steps in the verification of the public key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 96\n# Public key uses wrong curve: secp224r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 304e301006072a8648ce3d020106052b81040021033a00040710b0c6f4675459f3df2bdf7ca02819f8086198d15c69b8abda37639e6031caca8a0121894d2491d8b3dce093703c70705bc5dbc8fa17c8\nresult = invalid\nshared = \n\n# tcId = 97\n# Public key uses wrong curve: secp256r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045fa4fa0b235c21e5c9f3baea9303bf86eccb7d31d0b998e141bc54b5dc43b23eef7fc5cf56308ed595eee99ade6aaf74d591c3d00aa1b438abc59c9607c22c36\nresult = invalid\nshared = \n\n# tcId = 98\n# Public key uses wrong curve: secp521r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 30819b301006072a8648ce3d020106052b810400230381860004005bce61fe27c440fedbad47d88bccf645db9c1d30daa086e592e8b6a0a173b87991b619801907b420fa558c7953ab97badd9c6c1d85859d9ebef7441a088ff57ed5008d7638de703faabeb5a78e83e8fcd4eb786144a75d79bd4cc8cfa8be66612d756c7b65c67f72c6acbade6f0d59e9752e845205b2a560d4f8d6a9e84bf812f94d18\nresult = invalid\nshared = \n\n# tcId = 99\n# Public key uses wrong curve: secp256k1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a69ced11a8bf7a907bfa47cba3368f2498b465a2407c90649c8da224d2a85bf445ad2df3d0113e72aedccf92ba6b8529ed6faa154bc27aba25f49371981e3b38\nresult = invalid\nshared = \n\n# tcId = 100\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a0004a9b0f90e49a57fbe508847bf16e4a7b565dfe870a50164bc2862fe6e4d54bd8b109939f7dbbf800522722b9c0b309ace3884abb69c927ad0\nresult = invalid\nshared = \n\n# tcId = 101\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 305a301406072a8648ce3d020106092b240303020801010703420004512fe17172db1125a49f9dbb85e387869adf015e4899c06f66ef870d72092d4d195e1d21b4a4647bf734468bee802ddad5449202eba1041df2fd8cde04697237\nresult = in", - "valid\nshared = \n\n# tcId = 102\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 306a301406072a8648ce3d020106092b240303020801010903520004c391dc7a817d47a3961ea1857895e101c0f5a8767d3a9c7cad49f7af8029f24c67309373cedd0831ccc0a0f45d344f3ab5923d2452507a980301a283848ae31574a57db51ce5e61d35aee483f1bb8e66\nresult = invalid\nshared = \n\n# tcId = 103\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 307a301406072a8648ce3d020106092b240303020801010b0362000419d3c811c04c5c0990d0258386195b2e29fdaba58d3f12b0bac8d3d53828c66c7a35e3d1eb0bdf2c08f23d0e4ab6a3246e456bf0fb863d03423dbe431baf799657c7816a619662fe5b900b754107ba5cc06b1d62c9a927891efee1a1fd404d7e\nresult = invalid\nshared = \n\n# tcId = 104\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 30819b301406072a8648ce3d020106092b240303020801010d0381820004216eb619457f1168ac873f5b560a75df80749f2bdf9abac31d6580e521ad70368013c3db74f663263b61eb12d4dcd597ad6c77cef6a5d6d2240b1e244d76403f693fb317ffc602a7ac313991b0a62f7bf469bbc95b3ff35003d972eb8ebcc8d4833e6c24ad52d49c1ce6244c7889ab67a8818232e192944542763fc667e5799d\nresult = invalid\nshared = \n\n# tcId = 105\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a0004691b24004380a599770214d0c60ab37cfc804cfaa7aedd11cbf0a05467ebec5e33322cda707b848086fd740244f62cdeb867fc057207fde2\nresult = invalid\nshared = \n\n# tcId = 106\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 305a301406072a8648ce3d020106092b24030302080101080342000422bf69f3a81dfa1ed8a97301943626e20377b78f7e7d714b880deb5a4a9c63a11591c2e47b777488990771855768b9a4050d61bf02d84cc6aa40447a07507285\nresult = invalid\nshared = \n\n# tcId = 107\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 306a301406072a8648ce3d020106092b240303020801010a0352000476568300e2b4c68861589b4966e67bc414811e4011260cb8be5f884869fa179ca8af40f80009e0a58b17ac3e551a772e76683c32e6e09112572542d7c1fe3d49abb56da56d669186e2623dc797129dc0\nresult = invalid\nshared = \n\n# tcId = 108\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 307a301406072a8648ce3d020106092b240303020801010c036200043345dffded3c33f7dcc19bb8997a39f2d6230abcb765d6142c30bf320c1fadff535feafd8505eb3e614db71826c1e258077a1e6057add7474f6d35dce68417812e7b919b1c673032b28c45d0a9251c43a2a73ab152f64ff8eba4eab312fa73bd\nresult = invalid\nshared = \n\n# tcId = 109\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 0d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 30819b301406072a8648ce3d020106092b240303020801010e0381820004a3677c646cd887685940c28076f55cda7469032845f2cb2af51c61492dc435aaa5b771d8e1528417cdeb89b5f629e06b234e21236b9edf46c7025177ee65a8e940f670d10c722cea355bd3a5c8847a38324b9a06a50a95da4e70bb492cd00194a8830975dd1e115e19315575ff841b30fd4a3f8a44725dfe280d0af57fc80cc3\nresult = invalid\nshared = \n\n# tcId = 110\n# invalid public key\nprivate = 2b9e57572da6cf4fb58cb94eab8df19383a136f219f2a515776a8bf48e1538dd1d811946c16d9f0184c9ce5cdf1dac51\npublic = 3046301006072a8648ce3d020106052b81040022033200024424530ea70bace90601f8d5869e4179a6cd689b6a18fdfec50cecf17cb836d24820211ada67815b42c2c2606303f69e\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 111\n# long form encoding of length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 308176301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 112\n# long form encoding of length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307730811006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 113\n# long form encoding of length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307730110681072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 114\n# long form encoding of length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106072a8648ce3d02010681052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 115\n# long form encoding of length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301006072a8648ce3d020106052b810400220381620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 116\n# length contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30820076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a", - "5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 117\n# length contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783082001006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 118\n# length contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012068200072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 119\n# length contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d0201068200052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 120\n# length contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b81040022038200620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 121\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 122\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 123\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301106072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 124\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076300f06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 125\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006082a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 126\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006062a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 127\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106062b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797", - "\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 128\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106042b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 129\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203630004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 130\n# wrong length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203610004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 131\n# uint32 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30850100000076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 132\n# uint32 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3085010000001006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 133\n# uint32 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3015068501000000072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 134\n# uint32 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d0201068501000000052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 135\n# uint32 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b81040022038501000000620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 136\n# uint64 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3089010000000000000076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 137\n# uint64 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f308901000000000000001006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 138\n# uint64 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301906890100000000000000072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f9", - "0c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 139\n# uint64 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301906072a8648ce3d020106890100000000000000052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 140\n# uint64 overflow in length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301006072a8648ce3d020106052b8104002203890100000000000000620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 141\n# length = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30847fffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 142\n# length = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a30847fffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 143\n# length = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406847fffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 144\n# length = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406072a8648ce3d020106847fffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 145\n# length = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b8104002203847fffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 146\n# length = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3084ffffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 147\n# length = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a3084ffffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 148\n# length = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a30140684ffffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 149\n# length = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406072a8648ce3d02010684ffffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40", - "c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 150\n# length = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b810400220384ffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 151\n# length = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3085ffffffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 152\n# length = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3085ffffffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 153\n# length = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b30150685ffffffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 154\n# length = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d02010685ffffffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 155\n# length = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b810400220385ffffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 156\n# length = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3088ffffffffffffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 157\n# length = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3088ffffffffffffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 158\n# length = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e30180688ffffffffffffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 159\n# length = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301806072a8648ce3d02010688ffffffffffffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 160\n# length = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301006072a8648ce3d020106052b810400220388ffffffffffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a71", - "3207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 161\n# incorrect length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30ff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 162\n# incorrect length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307630ff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 163\n# incorrect length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006ff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 164\n# incorrect length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106ff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 165\n# incorrect length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203ff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 166\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 167\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076308006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 168\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006802a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 169\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106802b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 170\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203800004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 171\n# removing sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = \nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser", - " is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 172\n# removing sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306403620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 173\n# lonely sequence tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 174\n# lonely sequence tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30653003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 175\n# appending 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 176\n# appending 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106052b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 177\n# prepending 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30780000301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 178\n# prepending 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012000006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 179\n# appending unused 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 180\n# appending unused 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 181\n# appending null value to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 182\n# appending null value to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106052b81040022050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 183\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic ", - "= 307b4981773076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 184\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a25003076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 185\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510004deadbeef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 186\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3015498177301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 187\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a30142500301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 188\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3012301006072a8648ce3d020106052b810400220004deadbeef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 189\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3015260c49817706072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 190\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a3014260b250006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 191\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3018260906072a8648ce3d02010004deadbeef06052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 192\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d0201260a49817706052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 193\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406072a8648ce3d02012609250006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 194\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3", - "c27a2562dcb49a3a\npublic = 307e301806072a8648ce3d0201260706052b810400220004deadbeef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 195\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b81040022236749817703620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 196\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b810400222366250003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 197\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301006072a8648ce3d020106052b81040022236403620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510004deadbeef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 198\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307eaa00bb00cd003076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 199\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307caa02aabb3076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 200\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3018aa00bb00cd00301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 201\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c3016aa02aabb301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 202\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3018260faa00bb00cd0006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 203\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c3016260daa02aabb06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 204\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301806072a8648ce3d0201260daa00bb00cd0006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 205\n# inclu", - "ding undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c301606072a8648ce3d0201260baa02aabb06052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 206\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301006072a8648ce3d020106052b81040022236aaa00bb00cd0003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 207\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c301006072a8648ce3d020106052b810400222368aa02aabb03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 208\n# truncated length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3081\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 209\n# truncated length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3066308103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 210\n# Replacing sequence with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 0500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 211\n# Replacing sequence with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3066050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 212\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 2e76301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 213\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 2f76301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 214\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3176301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 215\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3276301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 216\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = ff76301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff273", - "26a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 217\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30762e1006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 218\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30762f1006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 219\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076311006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 220\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076321006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 221\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076ff1006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 222\n# dropping value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 223\n# dropping value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3066300003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 224\n# truncate sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 225\n# truncate sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30751006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 226\n# truncate sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06072a8648ce3d020106052b81040003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 227\n# truncate sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 228\n# indefinite length\npr", - "ivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 229\n# indefinite length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078308006072a8648ce3d020106052b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 230\n# indefinite length with truncated delimiter\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125100\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 231\n# indefinite length with truncated delimiter\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077308006072a8648ce3d020106052b810400220003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 232\n# indefinite length with additional element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125105000000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 233\n# indefinite length with additional element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a308006072a8648ce3d020106052b810400220500000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 234\n# indefinite length with truncated element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251060811220000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 235\n# indefinite length with truncated element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c308006072a8648ce3d020106052b8104002206081122000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 236\n# indefinite length with garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000fe02beef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 237\n# indefinite length with garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c308006072a8648ce3d020106052b810400220000fe02beef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 238\n# indefinite length with nonempty EOC\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510002beef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where th", - "e\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 239\n# indefinite length with nonempty EOC\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a308006072a8648ce3d020106052b810400220002beef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 240\n# prepend empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783000301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 241\n# prepend empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012300006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 242\n# append empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312513000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 243\n# append empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106052b81040022300003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 244\n# sequence of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 245\n# sequence of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 246\n# truncated sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3012301006072a8648ce3d020106052b81040022\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 247\n# truncated sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f300906072a8648ce3d020103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 248\n# repeat element in sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3081da301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 249\n# repeat element in sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307d301706072a8648ce3d020106052b8104002206052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where th", - "e\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 250\n# removing oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306d300706052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 251\n# lonely oid tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306e30080606052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 252\n# lonely oid tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3070300a06072a8648ce3d02010603620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 253\n# appending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206092a8648ce3d0201000006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 254\n# appending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106072b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 255\n# prepending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012060900002a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 256\n# prepending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d0201060700002b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 257\n# appending unused 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d0201000006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 258\n# appending null value to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206092a8648ce3d0201050006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 259\n# appending null value to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106072b81040022050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 260\n# truncated length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f3009068106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH c", - "omputation still returns the correct shared value.\n\n# tcId = 261\n# truncated length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3071300b06072a8648ce3d0201068103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 262\n# Replacing oid with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f3009050006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 263\n# Replacing oid with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3071300b06072a8648ce3d0201050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 264\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301004072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 265\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301005072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 266\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301007072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 267\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301008072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 268\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30763010ff072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 269\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020104052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 270\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020105052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 271\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020107052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared valu", - "e.\n\n# tcId = 272\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020108052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 273\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d0201ff052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 274\n# dropping value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f3009060006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 275\n# dropping value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3071300b06072a8648ce3d0201060003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 276\n# modify first byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307630100607288648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 277\n# modify first byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d02010605298104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 278\n# modify last byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d028106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 279\n# modify last byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b810400a203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 280\n# truncate oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06062a8648ce3d0206052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 281\n# truncate oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06068648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 282\n# truncate oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06072a8648ce3d020106042b81040003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 283\n# truncate oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f3", - "93e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06072a8648ce3d020106048104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 284\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30793013060a3262306530333032316106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 285\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 308181301b061236303836343830313635303330343032303106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 286\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d0201060a3262306530333032316103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 287\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 308183301d06072a8648ce3d0201061236303836343830313635303330343032303103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 288\n# longer oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301906103261383634386365336430323031303106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 289\n# longer oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307d301706072a8648ce3d0201060c32623831303430303232303103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 290\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307d3017060e326138363438636533643032313106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 291\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 308185301f06163261383634386365336430323838383038303830303106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 292\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d0201060a3262383130343030333203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 293\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 308183301d06072a8648ce3d0201061232623831303430303838383038303830323203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 294\n# large integer in ", - "oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30818f30290620326138363438636533643032383238303830383038303830383038303830303106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 295\n# large integer in oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30818d302706072a8648ce3d0201061c3262383130343030383238303830383038303830383038303830323203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 296\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 308180301a0611326138363438636533643032303165303306052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 297\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106082a808648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 298\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301806072a8648ce3d0201060d3262383130343030323265303303620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 299\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106072a8648ce3d020106062b808104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 300\n# lonely bit string tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3013301006072a8648ce3d020106052b8104002203\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 301\n# appending 0's to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203640004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 302\n# prepending 0's to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b81040022036400000004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 303\n# appending null value to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203640004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 304\n# truncated length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220381\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 305\n# Replacing bit string with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe46551", - "8f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 306\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002201620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 307\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002202620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 308\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002204620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 309\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002205620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 310\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b81040022ff620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 311\n# dropping value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220300\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 312\n# modify first byte of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620204c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 313\n# modify last byte of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312d1\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 314\n# truncate bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b8104002203610004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 315\n# truncate bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b81040022036104c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 316\n# declaring bits as unused in a bit-string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620104c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly chec", - "king the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 317\n# unused bits in a bit-string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b8104002203662004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125101020304\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 318\n# unused bits in empty bit-string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3015301006072a8648ce3d020106052b81040022030103\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 319\n# 128 unused bits\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203628004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n", +static const char *kData97[] = { + "# Imported from Wycheproof's ecdh_secp384r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp384r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 766e61425b2da9f846c09fc3564b93a6f8603b7392c785165bf20da948c49fd1fb1dee4edd64356b9f21c588b75dfd81\npublic = 3076301006072a8648ce3d020106052b8104002203620004790a6e059ef9a5940163183d4a7809135d29791643fc43a2f17ee8bf677ab84f791b64a6be15969ffa012dd9185d8796d9b954baa8a75e82df711b3b56eadff6b0f668c3b26b4b1aeb308a1fcc1c680d329a6705025f1c98a0b5e5bfcb163caa\nresult = valid\nshared = 6461defb95d996b24296f5a1832b34db05ed031114fbe7d98d098f93859866e4de1e229da71fef0c77fe49b249190135\n\n# tcId = 2\n# compressed public key\nprivate = 766e61425b2da9f846c09fc3564b93a6f8603b7392c785165bf20da948c49fd1fb1dee4edd64356b9f21c588b75dfd81\npublic = 3046301006072a8648ce3d020106052b8104002203320002790a6e059ef9a5940163183d4a7809135d29791643fc43a2f17ee8bf677ab84f791b64a6be15969ffa012dd9185d8796\nresult = acceptable\nshared = 6461defb95d996b24296f5a1832b34db05ed031114fbe7d98d098f93859866e4de1e229da71fef0c77fe49b249190135\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004490e96d17f4c6ceccd45def408cea33e9704a5f1b01a3de2eaaa3409fd160d78d395d6b3b003d71fd1f590fad95bf1c9d8665efc2070d059aa847125c2f707435955535c7c5df6d6c079ec806dce6b6849d337140db7ca50616f9456de1323c4\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200040161328909675213e32098d35a6b8308a8d500cca39dcee5e804e73bdb8deaf06fe417291fd9793b231ef5fe86945444a97a01f3ae3a8310c4af49b592cb291ef70ee5bc7f5534d3c23dc9eefde2304842c7737ae937ccf9bd215c28103e9fe2\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 5\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004af4ae964e3bcbd923accda5da3175d411fd62d17dd3c3a1c410bef1730985a6265d90e950ac0fc50743b1ed771906ff33b68cf4d3d83a885a87097fdd329ce83b189f98cec5be44c31d1a3a2bba10f471963232b8ba7610fa8c72179050eb86d\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003\n\n# tcId = 6\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200041478ab6e032b9545eda9ac2c264e57a11f08acbc76d16a0ab77b04dbdaf20f215c4183437b32afc471eaa603d14c7c5d8a4c84ee0e895bec5c37f0a1ca075e106ff6bf38801b5c697409d39675231108d33c4a5ea65aaa8c03e939c95d96c4c4\nresult = valid\nshared = 0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00000000000000010000000000000001\n\n# tcId = 7\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004f63208e34e7e90bb5fb036432467a89981444010663b8533b47bfa94bd2bc16f38aa516b930a4726e3876d3091bfb72ec783ed4da0cac06320817dc8bc64f59ccf06f48abc4386a150913fa95743a7b4601190e1c6ee8f8bf6354b254ecace45\nresult = valid\nshared = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 8\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004033271ef42d92ad47b273b09ea2f45401161baa52696590d0e175ff2d1c0dfa3fea40e4266d446546c05e480d57fabec7889f16a8bcc176602f6d46561614a2f4284abe697b7cb9ce79f7e2e71b155cb1f155ce925d16391a680eda23152e6e1\nresult = valid\nshared = 0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff\n\n# tcId = 9\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004737e8437e18683de2455b68945bba31daec3e754d72f0a0776d3192b2f9298bb95ca1464baa6687aabb679f804cf6ec6c2b4d47d61a60404df63b1e9ac0954b3419bbc2ad52a0409aeeb82f4703758588059165b20367dcb4b235b0caf71d727\nresult = valid\nshared = 007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008000\n\n# tcId = 10\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000437f9004983156bbd9c47891e75237bb13016bd7fe6f4e0f71cef0e63f16a672f0d3b0e20165c33407e146b6a4ae6962dd3b57ccb99e7aaf1303240516d0ebe08e585513e3695d42c467dcab5340ef761990cadc8d8840aacc944481415c07feb\nresult = valid\nshared = 3b5eed80727bcbc5113b8a9e4db1c81b1dddc2d99ff56d9c3c1054348913bde296311c4bd2fa899b4d0e66aaa1b6a0dd\n\n# tcId = 11\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200049655d8e5622718b317cfbc09894357f75a6b13fa516bcd6630721b869a620196cf0c3dec8860b32d27ed9bac2cf263af17321698116d7d811ae8da9b9cbbf9382c1e36e2b67d6c6af9bcea7d9de00ca72b398606c098a0a0f0c4b8941943ed65\nresult = valid\nshared = 6a99a5acd4a7edb1c707d7f8be12e81140338e3e14ba563c703c681a319a3f9ce1f90f032bf840f3758e89cb852ceca6\n\n# tcId = 12\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004ccb13d427b3c4bb33dd4f20cddabc68600eaf97eeb2c81e8c218ae90743e74ff38ca56f0c0224379db464dcf4a40f04350cd7a659b2c4851a5dcf8c990fc920c07d4d5aa50a2185750e6b84c42e83cff635050482decb4780f812e4c49fc7404\nresult = valid\nshared = 7c25a4f57f76ab13b25cab3c265db9d9bd925fecbf7bf93bef1308778646628decab067ed988a9755cd88e88de367104\n\n# tcId = 13\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200042664624307c02ef487030a632162c515f841d15ea3152d98ff2364232d7aab39343d5f703a4d5a31092aa7356c3a2f671c1cd603addfd8b5477552a3b32a18edaf3e33bec22ee2167f9da729636002a7974eaeb5ff082b2aabf8c7056b84c3ab\nresult = valid\nshared = 7fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000002\n\n# tcId = 14\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004665f1f320b6ab1c1b52d144e52d87a154c2b4489838c9119de622c2d1b52b65b0a3955e44e0d4859175360c0f63dee813f14f69972f18caed7916c94a4d20ec344591e7536a4a7a4d8c9832818c96d60b1a81fabe64ea02c5f647e361bf5b60f\nresult = valid\nshared = 800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 15\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000491357ca87dbb08e85d7b1acecfd1e086078a82d19f81474da389364a39fe2543eb934b440173c38e61a1d9407855b5d89ef0d9e920764b6d7765b084cf9541dacc43d1dabaa390b0fb856097b0c00a8556f4e3848568ab4ae790c3d346ca01b6\nresult = valid\nshared = fff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff\n\n# tcId = 16\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004d5a833bae33b2d10fdff6db7c54", + "77adb614b191c70d97c6f130a14e93931cc1dc058053fee54a264a00fdd16d3166fdc42992276b79925bafcd183b03ed18235350980abfe67b814c6c11074c38f74cd4e734ad58cdb49d9fcd2181d1b8f1119\nresult = valid\nshared = fffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000004000000\n\n# tcId = 17\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b810400220362000467547cda7fbe8f16be5a4477cbb02979f1af72fc0f39302773552fbcf4667a8e23abc0e12856ee6234deeca5f22ae0503a4df7c068e7432417260cb9fe0d68b9c7fcf7e16a2ada05687d8f8900b84723103edbff0a42b27517da2760b7d38843\nresult = valid\nshared = ffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 18\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200041363e3b99008e09bb3f085949b9b6ea26a318f496de568a96630fdb9d4c72c2814df3087a1741f32f24989b428167f93c653cb3ae8c3ecfaec57efd54bb8ce9d79c7bf6cc70fb1114f939be8f1a99bf1e42b97431124ef9fa33450faa4e76839\nresult = valid\nshared = ffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff0000000000000100000000000001\n\n# tcId = 19\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004ba2be8d7147e2417c2ec80b24b4c1aa94464ffd0aae1fa2e078b3afbc77c144489ca9d064acbb7a9cfa6196d0f467b7e65ee1ca1eb1351ff9968f553dfe2e4c59ff8ba34c22a42b3baa13a9a1adc7f13abd40f1fd25d46bc5330852b9371966a\nresult = valid\nshared = ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff\n\n# tcId = 20\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004d69850ccbacc4736ea200ff2f8488f26247945a2ab48dd3708f494b293d8cba83417f48974881c7fb03854089bbf66cc1c773ec03cb8cd5f007ec3b03bdd05a409b352103f0decf25b41673ab8ca3d04334babee01219f15701f2bca22d40b37\nresult = valid\nshared = fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\n\n# tcId = 21\n# y-coordinate of the public key has many trailing 0's\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200046fcaf82d982d222d6096ba83e55b1c7dcb71a41e88f323333f44284d95c4bd3616da7a1bef928f31c26f885ba7adb487826fde2ed9f5649c11cf8465f8bf8ad50f68914936fc39666f68219d066506bea4001fdc816c9a90e7e2afb19bea085f\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000001f03123b00000000000000000000000000000000\n\n# tcId = 22\n# y-coordinate of the public key has many trailing 1's\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b81040022036200046fcaf82d982d222d6096ba83e55b1c7dcb71a41e88f323333f44284d95c4bd3616da7a1bef928f31c26f885ba7adb4877d9021d1260a9b63ee307b9a0740752af0976eb6c903c6999097de62f99af9405bffe0227e93656f181d504f6415f7a0\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000001f03123b00000000000000000000000000000000\n\n# tcId = 23\n# y-coordinate of the public key is small\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004bfeb47fb40a65878e6b642f40b8e15022ade9ecfa8cb618043063494e2bc5d2df10d36f37869b58ef12dcc35e3982835fd2e55ec41fdfe8cabbbb7bcd8163645a19e9dac59630f3fe93b208094ff87cd461b53cef53482e70e2e8ea87200cc3f\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000\n\n# tcId = 24\n# y-coordinate of the public key is large\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75b14f5a6766da8035cc1943b15a8e4ebb6025f373be334080f22ab821a3535a6a7\npublic = 3076301006072a8648ce3d020106052b8104002203620004bfeb47fb40a65878e6b642f40b8e15022ade9ecfa8cb618043063494e2bc5d2df10d36f37869b58ef12dcc35e398283502d1aa13be0201735444484327e9c9ba5e616253a69cf0c016c4df7f6b007831b9e4ac300acb7d18f1d171588dff33c0\nresult = valid\nshared = 0000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e\nresult = valid\nshared = 6092a1757ddd43a04e185ff9472a0d18c7f7a7dc802f7e059e0c69ae16c802651719406e04de27652ff83da4a780ef2f\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002732152442fb6ee5c3e6ce1d920c059bc623563814d79042b903ce60f1d4487fccd450a86da03f3e6ed525d02017bfdb3\nresult = valid\nshared = 89c804cb81443386b185bcd9e2e6c35ee6177c3b90298985c4e81a89d520cceb17d729540e56ecc343c26bf314f2d052\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036660041b1c7984620e8d7fd7ccdb50cc3ba816da14d41a4d8affaba8488867f0ca5a24f8d42dd7e44b530a27dc5b58da\nresult = valid\nshared = 35513157e804bd918d04de202778b81a6fc7ad8aa541ee94116a0f18466725d75e71c6942bf044b1b0ecba19db33e0de\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00000000000000010000000000000001141b9ee5310ea8170131b604484a6d677ed42576045b7143c026710ae92b277afbbea0c4458c220d561e69404dc7d888\nresult = valid\nshared = 102080c047881d19aefb01c29c82a4fb328a8ea6e6d6c914af73100507c8ee499799aaa646de0ea8c2727c0b5ed2439b\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b810400220362000400000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff70370385413d3eff6fa3407ba24f682c2b01b51445dbdf5ef7b0dd0979f17e713e09081571f1e94dfb66bf282002f39f\nresult = valid\nshared = f689f6e475b4e15162521acab4637a3cdb9cb42aa92f9114b0ee300ddae89d5eafff3463a1f5004a2a1bd4aeffa47b78\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff112e191f1f78bbc54b6cc4f0b1e59ae8c6ff1a07f5128e41dfa2828e1b6538d4fa2ca2394c6aab3449dcb3fc4eb44c09\nresult = valid\nshared = f3486244119b3632fd55be9e6951eb5d9c8c62f6a27042f94b924155ecfd4ff8744ba3d25bcf85a7b925bd28a12b897f\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0008000028a4c8da5a05112fe6025ef41908969de20d05d9668e5c852ef2d492172ddc2a0a622fc488164fcc1a076b872942af2\nresult = valid\nshared = 8171b7c80d4c90bb58ae54393921ab9c5c0b3196f045e9fe5c8b168f0e5f6a77e1aa34ecedc5481ce55ab34c14", + "e0f2e8\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200043b5eed80727bcbc5113b8a9e4db1c81b1dddc2d99ff56d9c3c1054348913bde296311c4bd2fa899b4d0e66aaa1b6a0dd7b7f0f28d55e2f3a50f1f1bef3976834a05b43418e979303bc0363ed16d2d0b4011cc37b3c06ad73154faeab7915cd87\nresult = valid\nshared = 1fe6fea5f00d3005abaae2267ff18e430915838d87909ab503885edf38be7618ecb321f0a4df71b0913fbf12c76fc1f0\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200046a99a5acd4a7edb1c707d7f8be12e81140338e3e14ba563c703c681a319a3f9ce1f90f032bf840f3758e89cb852ceca63cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e\nresult = valid\nshared = f58adc13ff997d38383910db7befb17670393a33d95b049c2aa19d760c8e728ecedd32168476b90b26a3742dcc121b07\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200047c25a4f57f76ab13b25cab3c265db9d9bd925fecbf7bf93bef1308778646628decab067ed988a9755cd88e88de367104562ee0c57e71d96cefe31b4c4045bd4086a38e8ab9adf2d5567be318051d70f3aa68b753f271ab032b6abcce919e2962\nresult = valid\nshared = 56299684ec5ceb09ba4d94d1231005a826c9c08a5219c757e0136cbe8b6430badd4925172f2939891da7c7893850512f\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200047fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff80000040000024480ab33cb4bf7cb79c024eeade3fd641e2f3003698400e8986a7343a5da59a3b26eea4b4176e53239371437d834a1a7\nresult = valid\nshared = 1911a0ee6aebe263fdcf3db073f2598cdafabec2123a2f24a28c3d9151c871f32d6dc2f31d25af9c498fd68da23e5bef\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200048000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020797da4c0751ced16de80d16ab7c654a5dc27d092626d0865a192a1c5ea7c1b88c9fcab057946741e41cc28c80ec0b9a\nresult = valid\nshared = 15900643e2e0583976974b05f83c7a96611425f7c4a6eb51916ab958a037fd9cc172bdcfff4540a2ff3ce64e6505557e\n\n# tcId = 37\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff6c70898ae6fb31fa2f086562af2d10486ba4c6fd5e41dfe4aa61598b4707a3bc276a62feb1b98557e3b17c025f7adf4e\nresult = valid\nshared = 88a544a769d5c34a051416bd509dfac911863f604c83ea844bf0e4c5c272dec86d057a88b152a9274701938c705900c3\n\n# tcId = 38\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff00000040000000eb1592858b6e6e3a199c0f3e7c5f0b4a92915936efb8bc0407680eb7274be7422156ce8cfc8b505b2d902c39992380f\nresult = valid\nshared = b7db26b286e7527cb1f454782fe541862ff0f8d7eed960e22855deb7ac2a69611668c777c53bb74c2bcd40edfbf7944d\n\n# tcId = 39\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff4987abae412809c2fa48fd23b1bdf9e622f5a606c44117215ffa61b18ef46e54a7fbbf11f9a6ba59c991b4ae501fedce\nresult = valid\nshared = b1e8aab1aa633d98dc6b768594e1e3edb801a9ef483f287c83e19744d2ad343ad3debdc4dc178213ad6876b52284f552\n\n# tcId = 40\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000001000000000000013691fe493d4d28bf8ee1dfec812d6c306eae0842919eda6dc525f0d49ac2d26a992251912139a2936849f9d6fa949a68\nresult = valid\nshared = b0de006f80f6f89e4eea6e46dfe305153005612d1e903171ec2886230971961b5202a9f3187bdac413ac24c836adf7a0\n\n# tcId = 41\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004ffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff615842aa06b06f78f0a66f7bea88d4b6ee59653eeaa00dc5e0a2b658f969b71af90c9b4e96bd3ca33846955bdccbd359\nresult = valid\nshared = ca8cfa42c5e374914c14d6402b1a99208e47e02ec49818913694ea0822a2cc6c310259a8f3ab7559b9974bc4c2fa337e\n\n# tcId = 42\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe732152442fb6ee5c3e6ce1d920c059bc623563814d79042b903ce60f1d4487fccd450a86da03f3e6ed525d02017bfdb3\nresult = valid\nshared = edf040bace18d90bf9ce720df2a3b31d76d95b7ed9530a159ac0b24e82a871033eada40552f9e606f7115e6a78927511\n\n# tcId = 43\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000001f03123b0000000000000000000000000000000071bd1e700c34075c3cade8ce29d33724af68a7672b265a4e157055360440ab7c461b8e9ac8024e63a8b9c17c00000000\nresult = valid\nshared = ea817dff44f1944a38444498f1b6c1a70a8b913aa326bc2acc5068805d8ddd7a5e41b8ee5b8371a1cf3f7a094258e3a6\n\n# tcId = 44\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000001f03123b000000000000000000000000000000008e42e18ff3cbf8a3c3521731d62cc8db50975898d4d9a5b1ea8faac9fbbf5482b9e4716437fdb19c57463e84ffffffff\nresult = valid\nshared = ea817dff44f1944a38444498f1b6c1a70a8b913aa326bc2acc5068805d8ddd7a5e41b8ee5b8371a1cf3f7a094258e3a6\n\n# tcId = 45\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000000000007f57b69a014783dbfa4967b2f9cfa678a6f0b6e9cfd41648cec5b3c498e72152da3f82d3da2e8e9f8ef37b11\nresult = valid\nshared = bfa93e184f76279fd707d53ddcb3628855cfafb111bcbd0b4df6ef77aee624924d681626a153fa4e59c923b71fc090b3\n\n# tcId = 46\n# edge cases for ephemeral key\nprivate = 2bc15cf3981eab6102c39f9a925aa1309db59c2c02a54411928d73c3945d157848dc36959efef7495c8528ea284c1c97\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000036a2907c00000000000000000000000000000000ffffffff80a84965feb87c2405b6984d06305987590f4916302be9b7313a4c3a6718deac25c07d2c25d17161710c84ee\nresult = valid\nshared = bfa93e184f76279fd707d53ddcb3628855cfafb111bcbd0b4df6ef77aee624924d681626a153fa4e59c923b71fc090b3\n\n# tcId = 47\n# edge case for Jacobian and projective coordinates\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe732152442fb6ee5c3e6ce1d920c0", + "59bc623563814d79042b903ce60f1d4487fccd450a86da03f3e6ed525d02017bfdb3\nresult = valid\nshared = c3d38450a5dfdbe64f4b5da3add4ac1315f87d11720f29beb6f3616a65ebca1d569c0fae5c5bbb6d146bf9103e645b9f\n\n# tcId = 48\n# edge case for Jacobian and projective coordinates\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004183c0d3650d35a33423c0d00896aa0af9f340217f42086ba51203d158a60fa91ee83b52034ee6167c6593ce67a31c38a20813d9e7eea718d46485650420366dcc1cfdb5cde93eab28308def758ba4c3ba386139d4a3a3bdad64c54192f2bde32\nresult = valid\nshared = 18150961859e3efad6267582f97417f19ed8e7e537b692b91050944a6fab8030411dd92e941357c7494af0118840a614\n\n# tcId = 49\n# edge case for Jacobian and projective coordinates\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004ce5ad811e7eb08024e40e30c1cb29cacdfc8f809f7f0110e6b225c6d8336f60c30a573ef1b912f5fd300b0615e9fdf1f631ba974beb9544b4a8c9945f72f3e5fc569438c4303672279fafa900e53690aff753da92f400ab62de8067da99fe37b\nresult = valid\nshared = cdfc9463af891682c51b6f4c9656551c33b80739f177612f27a4b1f37c97fd8023495b0bc15c688ab19b7f9880efc8c5\n\n# tcId = 50\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b810400220362000442faac2ae2bbad43a6e45a796f1dcc70cac444ec1570ac769d6e86207443db8c03a33ba07862fcc619cec806ce8826c2776e31dd086c1b19323b58084553bb0825d091ffb123d265afa5970cb72c2e6804ab327834299641e70ff14291975bb1\nresult = valid\nshared = bee46c5518e8e2f5c7fa23f2ab8fc43f5a7419f70373daa1a674630b161ea39c381a1eaaa90efd34aefa9ac6edb53c75\n\n# tcId = 51\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200046ad66f673d832f8a86cfd7a66d216d23a26583235c28ecb7b598ff8dd1132bc6cf0dc46a98c864665f195a996563e57770aaaadcbf36531a318da95120d9a800226ac9fbff06f47837911c7b95f5187c43ef959a4ea3e117b847f1dd1f8cc4b2\nresult = valid\nshared = 1ef2e485531e26d69ab7c7b8c27c1b4be152728961875681042683678c7bb4ef8b59c7c1d62adb5f034bb2886ff691e9\n\n# tcId = 52\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004f842e8f47151949b5cb6cde4acc7a83d901173ae316ec423e1c966c8a39638ffa6def3160f7bea664982b9636f639f72702fe1d593454f73d06050655e28ecb8cfdfe13dcc7752bde38fe0070b43bda5e6b7203b45077471825df1b816a428c9\nresult = valid\nshared = a8573b49006362d9b7363c502969b2233b2fc5730cf575d414c50a45f0a5b4d518bd450288c89e81d5171efadbce59c5\n\n# tcId = 53\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b810400220362000464e68d8a8e6d44142fd0b3353275df4be95b0ff9465d114a18ff238fa4d3947ff4e3fc66970d85731d784b0a17157887cb961cf636c0e8d4b5f8db0060c2b699ed750e92a05ac4da49780b8a48729c6c2b866c75754afb2c7c2d661ecf640cc2\nresult = valid\nshared = 33f9aa308445cdc2d159cd39c33b495382ff8b9e21b6d1b160577a4b3c5daf00b8dad3c83852f18f27a4402ce94421ee\n\n# tcId = 54\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004237e5a05a3b9dd16f27d1cc04d16f19ec3d27881b90c2049fd2665cec7eaae1cacded4e0f8abba5a64d4183a71449d9b741073dc2594d02ac9a88988e51d7bee22111962f63748efdc8c311f631ae8680c8996028da4e956ac1284d0c01614f5\nresult = valid\nshared = ddf7fea52b92e1544fb1c7ce2274409bca1704f44bc0ae1a6a8b388eaf316c90bce99b0c203f7556e5baaa26c6b7ad6d\n\n# tcId = 55\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004810face99512bec259d575229d9586791bdfb1b221d23c1738e4f9af0498f54b18cc0cbb01b64cf3411ec4b68480db6d6c06e6209188f354323b4db6f54f2b1dfc5c1c3dd4fef0cb379a7d7ea085acdac9e60e04f8db488be97f81ded66ea33e\nresult = valid\nshared = d2287ccb642a76e001124dba6c6ce19e82536690abf542104cbd45c8708e462d8ce06e05ad2a0fea4d68492fcf376afe\n\n# tcId = 56\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004f0b00271a2bdde4bddbdac00406adf056d32b9b03f4bd29cc66093df22e5da09fe48cabfc8d44bf136b5be275c7f53f66ccdd0d00354a307fea0091070b61fa9e2da1e2f329fad68013449ecf477fe33458039bac911104da62c29c08192a315\nresult = valid\nshared = 36151b0d1c1b28ac062e0829f41bd55044dae6f1daf30ab3ff4148a83ccbccf507bef7340c9544f047f554c71272ae24\n\n# tcId = 57\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004f82cbbaf1c9b6063a1b505580766b1446b6b5a990151703e7afd8a3175387fae567081019e0fdba7964ed6c0e4d0e45ecf379bc1eda30ce4fa560106b3d09bf38e9fcbec3eadc9e12c5622c01130c870c6136498f52bf62f3987defd294df33c\nresult = valid\nshared = 2451fd979864169462a77d742adb6f4505f2db956d2d2dea5b05e40f40f2654fc17d1cd1d3b353322bf0d1f3cf828c49\n\n# tcId = 58\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004ccec117025eece29e0ed077d98678738fd1a5cca20e40bb322a40566831243dac806555b8508f4eaa68beb4e78ed917686415f11232c5ecb9f805b0dcc6ce06b57fdf4e4ae4e6d822472d6725a9c1da41c2fee1519586c502bbb1a4ce2582863\nresult = valid\nshared = 0b3c06fb8c7c31a96fa6dc80250143e39af9e5c201fdbe92245771e345cf787f99234ecc1d6870599ad50a1cadf687e9\n\n# tcId = 59\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200041e829bdbd8a2c1321d04932aacd42972f5b2ac5b6a61b041216ca9481bb0da8abf6d5c1b63e868479f88d91345cb9153fca2c5698fd5b404c9bc125bdc3c608fe385367ee2b68408e959b83ec8bc3ec1e05a6fb984fedb256574885f5dd98940\nresult = valid\nshared = 5388905aee7f826b9a5b46faeffe26d49f8566c7a8e8af5a1653fcfbff7c0dfde566f043401248486ff91c390f5cc6ed\n\n# tcId = 60\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200044dd1e1b454814f3be1c62eb87c120772c2062a3d7e5461d5554b3963a9fb1190db965695caf555a45ae25be73e47c3745baa93fe2bfb094fe718c8c9bd8e1e6e86cd629dca0bb91ee934e93469d4fff32a41dfd78c27ba534a3d5970c388effb\nresult = valid\nshared = b920299ba26075d2647ccb978d15a54ef48330db3a8794d868ae02bf152b3c24ffa966893ea9eb5d3cce83e0239be02c\n\n# tcId = 61\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200049471abf4fd1b89d14df2325cb0a6bc92e73c8ec8e06c47b0978d93e9225adf089d3ee4e25c222b60d02199c1b58004c1d1b35bc1475cfcf3e3a6116593e2ca5a70344127ad907a4aa1d0c66139f287a7fe48cea5844a20df5a688b89211f19c3\nresult = valid\nshared = 705421b36618115fccb7ce6db8575fc4b3f0a2780ce02a3487e4055dd0d51", + "834006270e992e0afaa4c7ce0f699f7fea2\n\n# tcId = 62\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b810400220362000497046c4438b040315be39ee3869f3e8711c3196758476f2b4d90cd4399665c8c5c87f9cf64289c2bb01166742e1ae036b281922e8872b48b7d3e1384ab4d0a92c602ace7df3a93a47dc50c8c2e5e8a875d2d927f7201ce11fd8df812baa1e4f8\nresult = valid\nshared = 3c510006f8658f3fa414fef9723d634a179db7aaf0b7068b7696cff93f88e04136dfdac68349781bf05a787ae19e9021\n\n# tcId = 63\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200048e3dae500fe2c645aab15379170682503154af1fd0a21ffd2e34f0501c518507e0ebf45d7cb8653fd57bf1f894f2a552cb69af7e009d43bd6e688bf28f5e2815f3c9f4fab1d829d29f05312bad99d75c2518d2a301a74d5ecee1333582d79c14\nresult = valid\nshared = 248967afa36386cfeaa2214847c7c8c32a891a2438b83665f99e5fe7ab6dd86353ff7a8b15d4be4e1277c721d69cbba7\n\n# tcId = 64\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200041fca8f9695650a02d6fb8049b1531a3783e449df75a98d45999fb9857c3e756219d48b2c84d5143f08c2ab097b365a3345aa197e10c659d9c53fa754f112d77973107ee35c3aee3b0b1322b362fa08497c097c1881934e36cebd5e18e9240cb6\nresult = valid\nshared = a454ff4d944587a188e7ebaccd97649ab0cf83f8f8d19b3653a2e621206d3992868b5a5765d1fa762f0e3b0161a6809b\n\n# tcId = 65\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004731ba784e2ed21f4a4a2b4dd4877aec2fcd59031f80193b9558bbc1cf7fe6704469443fc7f398e8bec4086f88aa76aa26c389acfd51f69c89a153bfadb5d703a36cb12a4d85f5517cf462bf5d02abf7d19722f480eaf1a2617cba1941e1c76b6\nresult = valid\nshared = 99780ed215dc417f798c24327c3caf22f3685e5cf2ab835fc54b428117b7d17f0feb63f1755468157f3237b8117dffa6\n\n# tcId = 66\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200048725cb754b5527a3b053d63e0c4b097e4c34c5d731ab5cd4728650a618b4ded4bf9214d793ad74cfc470e35c5493a4b420a3c50049a42791721bc50d5f608cb272b60a5545db0608855bac8fbfa93990d6b80e3041773e10937d837010cae640\nresult = valid\nshared = d738b7373fe978f27b194f69edd5c421b98922f5e313b76859a9357a1faf42ed0e06dc13d55843357538ce7f4127cee1\n\n# tcId = 67\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200049c7a594eaf2ddf3c8ab6c6e94f1ec011dac9fa42bd27df2fbe402ac949d3a2c676b684a24c99f7d1b7e89e9f8a0634eb3b83095c7a1cd6aa9332460ecbf257f7afa449608b9e0ddd15292b875ad2fd069dc927ce00a4b5e679338023bd3a4e6c\nresult = valid\nshared = d9cc861db305b04a273d6b55348ef9f0a0a2aedf8b3d041a19e263ed6ae2e01e439a46823098f2aaa4867d4f08891e36\n\n# tcId = 68\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b810400220362000421b1aa359d72ff33a84ec9621483e65881d4fa8ce6df3669e0abbb9f6bf8d0ee3d9862a7dfb45213e39ffac7b3e1ed871f5e59cda5a5b861ab3eb86caa7c6e85933676efe660dff8ac5625ec8a7630a9cba9eb3fc149d3ef379d4a5ec174d237\nresult = valid\nshared = c59281d09f44f679294aee5668eb538d503ef25aac591614b46f525d8c0b109ab129674963500ad7b6268941a28c0067\n\n# tcId = 69\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b8104002203620004e1ad2b68fa69456574de95b1e048b0715009409ef5cc270be51fdd40b4f65b1ade67938a6a6d725b01310f2253a38cf444f726b3eb5c5ddc257d6d9bda9bfa60bec6a07fe07dae967511314370d3a4e041c34f1cb49fe6b70663f020488e98a8\nresult = valid\nshared = 9eb70f8949861c30f2456990abe4d345550008b8531901521361aaa17296dbca06fb3c87e8f4592b7dc5d1997c58c076\n\n# tcId = 70\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 00938f3dbe37135cd8c8c04182952f6e6f9bfe7a4cff4eacf90612a48865dc43e9b5d230f761d1fc4dfb69be20e84ccc8f\npublic = 3076301006072a8648ce3d020106052b81040022036200040bad67ea0cca960ed3ea0588d5eeef366c24342ab3e46602891d1adb4d85d80dd242962c5654bd6af5913aeaefab27ad9a07b4197180c9869af795f696fdf6f25cdc66469f4ca7ca89c5c904636d85f6b9a19e7bcf0540831ca7aa40446dd8e1\nresult = valid\nshared = 45b02fd4dd76496701be3b37e632056cf7f63e9808f627fa858eecc5bac16a01a949741b4de151fe35e774c6d1e389e2\n\n# tcId = 71\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200042c4069bc8078236eb23a8c4d575bde9b537b13b79989688c40d89d898a8c29bd7ac61745797b7ee55aca60ea7d6c2a8430fcfbed18a2504661e0253c43e47be01940e81fcb2d65a5e501111978059949c5d25b0b60de7821476b88a8342a0bdf\nresult = valid\nshared = 6ce9bffb8901baa801d1b19e92b5e5f47f5bee10c15fe44b8209977572cc8bd7902ccfc0d7ae98f6b58bb87f316a5792\n\n# tcId = 72\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000444bc1cb2d42ff974e72bc883dff784e86978501f918eef4d96d6e5242da6f5651a29cf5205c3dc3be33332fa2defc34788f88f549ed78732063020dd3fcb872515b25e088700e3eacb925de767e9edf6e89f089c4f9e0f4d8846980393667f6d\nresult = valid\nshared = c6dd2d372d5a5173ac63f6d5ab5dec972e8ae44d566c7f826beb7f2693e200c470ddedb1c9929c11ed86d135f44c979f\n\n# tcId = 73\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004b824eb72c43edb5b3ce9af94ebbd33b446b4a7233b89affe1cfa3beb53cd199fb119a356772bfec178c03b077df12f53f99851fbeb9971ffcf29ad61ba484bd0580036dcaa59f407bc88a471cd862b80a163c91a6f64602b6f713959b2f6c2fd\nresult = valid\nshared = 0299b7fc3e5506926fea66d20f65b9791fb6c88c7179f7d4701d68c13427ab56ac0f9e1da96c1d5f3d1a65ff3122c153\n\n# tcId = 74\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200049270b8cefb61a5d52fbb5e6b3b62361f3afa5d1a6b01419db9266e2dbabab36aea5b1961318eaf8f0bd7cca75ff2df5b7e538c63012a73f777b25e1737d44fdbc299a76288d7bcb57c8484c71c9bb6453245f239b6c6df32898424383b4c0309\nresult = valid\nshared = 13d78b7a4daf8ddd62e347ba235c36486fb2eb4a75a3e17a137ec6c2de37abaf45da92d1cf1b2966ded8d5381fd2319f\n\n# tcId = 75\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000419e5c28657479eb41d3718f63e0678be0daa58502a5406d65913567df7b86ab25e905ec846789530d81d8d1fc2a8cade4aaf131a0ccfc79a24bc889c953249ee85b49e2a1bfa52167fe20de296e6497ef9014c2cd0a02afbad1f9d00ac3d924d\nresult = valid\nshared = 7b0863fc6d72c4bd058576cff7a4aedf86482d3d9bc9c5fc55bd8fac8", + "4107dd0bf9f27d7e8d624edb0aa6ef1b9cc2246\n\n# tcId = 76\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000459666df447dabc386d8dddae93543dc76151f7c1c04858660d9ca8e0655b51a72feffb7085bacbde153fea75b5716ab5c3c7811d0c7435be9e36db00cd29c6ca879ef991adb157a6b4bf56e3de5cb34598b79a684cc3d4e23f22d10063e8d19c\nresult = valid\nshared = fba2bdfb54e468a4ff5afbaa54c7037400d76414c98eafaa419adab0df50c9692aac67d44a9efbd00d4f9cfc206d537b\n\n# tcId = 77\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200043bafce9b32616f3bde17fc989f1e556f92faf5c30e2cddebc2aba44edf36ae3957c9c610a34521e6ac454652aa597811827b4ff45f991f9405f2d8cf45d5d0876a260ef0deb6e86090c5b45f5b7b1786105324f40a0d2b43ded57868b38b43ef\nresult = valid\nshared = ba9b68d1c00aa1246edafb70db6ddaed8570c465d9a5836d4156a1ac7fda2a209c25471a0df6d7de93f980c89c841620\n\n# tcId = 78\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000453385b9303d2c5d1ea83e7700b3e811a7c905d1775c379a44e9e5c96821559700b492ee2868c5a01950aa4e2b05932ee8fa1bd83035aabbabc2be7b61f388f78b8046d36bee99b5489bafb3a86dede29c14d5373ed9bac72a92ab8e7c31fb86a\nresult = valid\nshared = 33c6c7e2c805889caae5679aa024dd79f54456f798eff0a0ddcc1b28d8ad302d2f67092275ff55f8f4d99357ac86ce58\n\n# tcId = 79\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200049ebf8d313da3e5ba237ee33e6dd5be770390f837c9528fbdd440a9eb2ba1cffb27837d865cbe1b32ff9c7995d5dd511caa4125ec258d182ee7f7173ca1d17139ae13e6072acd970ba56f6d5034e9f45da36b2ec774349be2168f32bbf04f9a31\nresult = valid\nshared = 0deeb01decaae0eee55e2c29501cdd9cf7d4db2f1679fb72efcaa5db6e05cc4a658480245c59fec9984c613501411b0a\n\n# tcId = 80\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004d4cd22e8dfa620ca7d68e290451b09285298a1db5a7ca00ea830d6e9ec9cc4d03f5cd43fb2a9aaaa142fe4c6e2269cdc747e0ca07e38f4c5b412e52cb7930c381100d2aafe54b619ebf72e81a46e1149635d25a37fa66e2d1bc9ac25fc1a83f3\nresult = valid\nshared = d360753c568698d7f7b261dd2f5064ffc8aa9f03343a2291b967632646d51570562f1ae87775648e74f9f30e966e7380\n\n# tcId = 81\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000421b91b9c374ecf5cedc6d73422c6539b22ae5db61bfdb06b9c89e68112f6433e9d49715f474534fb9cd6c2cbfcdef94fb5d4fe306d59025af4e88f8cb3ddc3d64f707e6820b41cdfc055cd6762da23de01c1b311f1a5bf7010c4ff4ed0a7e84c\nresult = valid\nshared = 596af71209cdd23c386bb861edbd171ea9bc6a858993110c9333a956b3a03fc0f55393ca46bb15bcf9f12b496459c4e6\n\n# tcId = 82\n# point with coordinate x = 0\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cf99ef04f51a5ea630ba3f9f960dd593a14c9be39fd2bd215d3b4b08aaaf86bbf927f2c46e52ab06fb742b8850e521e\nresult = valid\nshared = 96876e9ed89edf3e3dfd8ead06dcba0acdce7763eb98aded82976fa36181c79ac4e833df385af5ee860ca1f20df4cb72\n\n# tcId = 83\n# point with coordinate x = 0\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004dd607e954556c62e39b432d1f1b2fe6652d75a1fe33cd15c799ffac9d13d5d521899d25940da653d0824ad8456ddfb629f4142e08a3bd1d87bf6119a9ef4b0a80dc712a4d6c001bcb2794c4d1a03b1f1d392dc088c89ef844f93adb139d956b8\nresult = valid\nshared = 60d597a99c86a432e144bc2b0e0a89b91c4a72f3e1ff8e56e7f07d53b2e563e979c09e27b34be98bb19865e808d4290e\n\n# tcId = 84\n# point with coordinate x = 0\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004826d71ae4f7b3ecbb2a9bdf59512949542d0116f616440a550168f4b58812fd6c1ab94f310385fdf246db5efc0fd13995de099bdfcea355ee63827cf2a2e2d868f5cf0b487e41245df54fdc735eed6eb726cfc928bd5b4d01719d1644967ed1f\nresult = valid\nshared = 85961906edaa9adfa9c9b8279da66158f57fb350ff9b15dc4d75b8cab64b9d34f5ce912f1aa512a54c71821c6e31ff8f\n\n# tcId = 85\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004fa8919e4524e7040489cc17aa3d620f88276ef248d1ecd1e9a6637c7a06765f6f1d593b1febe331b9f696e82c5be61a4a074a912309662f44ce0825bf134582116cac3310577d5a00722ba513e6334cc17101091223346db67063cf6e7bffbff\nresult = valid\nshared = 43484dcf01492eab684d39881908da7f40119fe7183bba625c32fdc14da3c4236dc3397234e7db41857495cd0d09491b\n\n# tcId = 86\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004aecb8f15ab87579a03f5b8fcf33aa094337e4c362359c9f2727634909c6913c321be69f3f8aed693a31059989997fb32d4f4a37ff236d8f6237186a3a721a82a2ba22f8a628d7273ef3173e21ecc69969a47e669383ecf0cf5396eb02f46c3ed\nresult = valid\nshared = 65e6133929c8b061c25fe0bec9142c93d52c9f1695061b105f6c7da1347a967b5a3f1183565645f7b8fad8863f9a6345\n\n# tcId = 87\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000440dc66d81c4e15e1a4c009c60c3441725fff08b2543773b0dde00db231f44badd77a8bc9619479bd5288e40da153b8ddc3d530262b169a6fa700ee32a5cd057baf43d29627f342fda8f6f0fb21b1fa35be96a452ab4881f417c9a4e4136b1e6d\nresult = valid\nshared = 0773673dae337a1688c2c31d1a600c0ed72604a171c665b5307ebaf740fd518e4a7c5c91e4f86f65905640ee37f4f830\n\n# tcId = 88\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000453b5874738275a2e1d734e51f83636f89179c16fe89f46f4d8e71f521c594769d31725f6404122f21112943a1a22ff07586b41bb24bf303ae8545b25f7b98425ea62c4d3bf51d23d9d85e07719b828777efa0a28fb30f33b899980de3c532611\nresult = valid\nshared = ea25b07a161f318a81a693f6604810b8142843c4fd26658d9b64fedb58a5eba58c217c4176569cf33fa47ac9f2b3d7f5\n\n# tcId = 89\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200042988addf62149e6ac08219d2f036d3f5720aa862905cf3fe7bdf136dc08b845e8a61be43db86d71a26dc17bf55374a9d53ac99c5d07de10ce74ed3b1c413686ebba700f49260b08357f95daf5b31a555345c076079f25d8690fc1ac20c71528d\nresult = valid\nshared = a8d424068fb7846b0d43a5cc13029d054b11c97e508ee0f92e73d35ac8351a462eedfc9da9dd1279f12812ba46c06053\n\n# tcId = 90\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004494b59de1b69534b4b62d75810ee3dad05a19afa41c7836db5ca78630208a800388d04034ba", + "f2923ad5af6ac72ee05f989df6d08f9a6400858d084fe770c0ddde298966cdc56a921a43184384d5a13f31c1eb4e834e23bed3069c10dfed6b63c\nresult = valid\nshared = 296f5d6fe4ddd8c3c7304beadd45f6cd3e3fcd4230c9d2ba1a13bd9b9498a3c8d1ef0ab6ee2a450b0c68e89a83711fa2\n\n# tcId = 91\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004b64c49ddf18bce79cff3b8cb7b0e58d48421eb6739f59d271fc4f54dd2fcb1cf56dd3b3c69173a5eab50ab1a2e0616d05d92b864cbc9e4a3f75650eff39e0eacbf87c4c010088f3338842cd97832724f79bb15986bd3fa85255816350473bbd3\nresult = valid\nshared = db1edbbb1f3ac6df9f46128812bce7818b5d745c75322a9abe89983be868aa1aac555f4d60ec272730bb4ad949a53d38\n\n# tcId = 92\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004a40b1ca1a51a8ee6bef5b58aaabcffe2e15f74a3087edb2620885d7d933e4f50d625eaad93b87b8dff58f0565792b174ab89717ffe87cd29ffbf3cd7d938b1173747bfc0311b78723684d7c9a1c2be3b597bf9236eed090028eda2146c477e65\nresult = valid\nshared = 1f84c641ade162a274ab2efc7cf6582f5a5d91ce7993af6956d55eea0e1b7fbf040da9750486b0fbb2bd70d9ccabb785\n\n# tcId = 93\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200044e7a82ad74a1b7851995f6e1a18141bb4584ac22e839d4d916018b150fed9cd0cce427bd446798522744d395e90ee4b63445c1a6a4cd467c20cdb298854f1e270afbea053b7784976b504d0e1339c5c86007cec363839958a1fa51e9483de561\nresult = valid\nshared = 54efb9bb7269d86b06282b1d7dc28a940cd7789ca4e104c4bb7c5e5736676c3e5370cfd97849e1200a031b668388d8d0\n\n# tcId = 94\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200049b54678f8581ce665108abeb0c09cb7985bb5dd858bbb71c88e05344de5b45b4e67f33ab58d359dca2da8df1149dd1bbd09ba7f63a8d35848b40746ed5fec7944ed44fd9a9a2fc3d13ebc5c05ff94d5f500ee15072d1b4c1375fd6ec4f32125c\nresult = valid\nshared = 1e96c829cc8a79d73fa6434bc159dc432c2ace3b49ad2e74380e7b02feb53b3393446a0331b974f2bf219ae95d2b23e7\n\n# tcId = 95\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000486cb7a3ff3aedb2f39ae22f2e828ec0817d94b831ae654dd66aff31a4d84b33fab46fec1abe1a9e6bbfac5c99565fd3bb2f72d565d2ff5c5c24f375448dd7bb442dfdcb61e073e48402707bbcc26ad43d4788a9f44715f1b8e5b62bf49ceca65\nresult = valid\nshared = 84e7af176ddba3ec3ce7b7fc43df1ed59b4e3228fa3f6fb41a01f413b0a6c7404e43f7747118ba264b7b026d714e90d0\n\n# tcId = 96\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004ccf5a5b80deba6318b85f57a0d563e95765c7fe30df5ac88837f35329dd51070e29896f4d96ef40bcccf36244df835614e8785f8065f81c5e9270fd559b6a380b483874d298d0d382eee1edb6a59d9c163296ab7a068186b0d23f33737dd0eed\nresult = valid\nshared = 82864ef4d5fd25204ae1591c619f3ed813c762baa009ba3b49ac38c57b2f46652f719adceabfbcaf985b29958d1f420c\n\n# tcId = 97\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004c7f77ad286c68b88ffa64fefe4aaab3dee1f9bae37b7d069bb92bea82089e831a70dd9ed007ba6dce14f9c6d5e744eccb319ad6ec134376cb059a1c86984ea8bd154d826ed3dbae8d8d8e06aa0cbe0127ddfc32621bbc1f731f9d90e687a7cf5\nresult = valid\nshared = 1d0d3ed8c1e0d28f5e3766f193da7bdca1cc08376293f9bbde7bde0e9b1ebcf4cfa3c683dc63bcb42b2d9ede54242bc2\n\n# tcId = 98\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004aac3b4d280fc70a9fe175e1882a69eaca2482a0c9ded9200444028ca3dbf501fc361f7658bffec321ad577b48c9786b07f596bd868d51e73f0f7c25db956b12171cfab11abd4abb00a59ac432c0b0f058f4cca44fb581bc5803e472a05305f33\nresult = valid\nshared = bf19548bb1d7333f46cff4d9d2a81dbb48ca82a52faec2b20c3b27bde392a66b8e44780c2098a7b5253157b014b40e51\n\n# tcId = 99\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004747efb595d03dc05dd50c17155e1018ca14715054592906e671a2e2204acae552b6f5d345d3fcf9b4171892afb3e5587d8e709b083a8b5363663492f8a2a9af64c3ad01c64d8fa4764d61f43e6901a2445ce94b586f6090ae0687af0090fcd47\nresult = valid\nshared = 32d569310f61af475b6c6d075599625a3381b0a5b6a0b8c27c7165d00e2fd4dc8b2cf8e3b33e28ad4005525384227fb4\n\n# tcId = 100\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004ab14764bf24f8313b1c49c4bd6e367231275b303c601c66f7e8b3105c6b02a90b60f38745d755ce4dd40681ed15a1ac93e14cf2fa708300a2b279f2c37fbc0da7175c92c1114c57ef251467f6f3de79fbc38cb1e3db70e4d95225fbd8ad96889\nresult = valid\nshared = 266b261b6dd9eb51770f6c4c11b87134abff1629b65171107a9b20e0c7d168e1efc3cbc402464f36aeb3c027b9198e10\n\n# tcId = 101\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200041e1fe9730fcd5b87b065fa90a69534036be45758513443f79c6427dbc31fc403e894043fb9c7f9f58c0a3670b1c0d80359db8f6a48970ccb9918cef04f352a4d91a204502119b2b7efc6c671a6ba4537e82c196e6d42685c5a6f559e4e8af704\nresult = valid\nshared = fa9f208dcedee597f51122e6274b86710e36561f2361e76186fcb73d1d7f2928426d98c3f69e4cf48d3001d64970425e\n\n# tcId = 102\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000483fcea208c79227cbd97319a86597f85cbfc19ef60c5ba7a92fc521c685e208cec7735be9be27c737d3f9d2faa1c3f4695a32184d58fc9001402436ce00b52b8885bb1150f61e660eceba10768d0f41d5e4e7c21d4fd909aceaf61a7455dd0c6\nresult = valid\nshared = 9a1ddf3d9feb190a26f20ed925ffbd35df1017c4a4c9485d344cb8f81c7f452b2ff3aec44baf34e50886f183480b6325\n\n# tcId = 103\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200042bf26936c9164ba1072544c410757630b97d4e853fdb7844f1811507d04a687d951fa65a34364e894cf8b0815db95f5e10664627bf6f72330a2d6f212361a233155abb79da54343b8572e30eace8c8f5480200e751c2102078528812c83f3cf4\nresult = valid\nshared = 47e4608e9bccf6a3296e41fe34eb7181a1b5ec306a93aabd5fb38e75e3d75e8e2ee4c1c44a7d08660681b9fa66642910\n\n# tcId = 104\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004bb583da5de4c352e8a4fad31e9f71297bc963134ec182e96379c6b28a11d25fa4b77a4a0f947085db33b0ea77b9da09be1a0bd1300383ebd60b5aa6eeb20f03d56dd14df46157465146278536ebc28c5471a94f095554c4c085ac9dceb1da55f\nresult = valid\nshared = 8393a2689b376a228f3233ac61578be1aa2de1dbfbb28b03ad24f11ad9d77f8543e0977aea9a761d84e115b61507ae59\n\n# tcId = 105\n# point with coordinate x = 0 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691", + "376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004e37791595b54e9b17cc30726d2425eeacc9672f5fbc91fc108cf8c84fff9b66ea65483841b7618694815e1a415186ba727af3ae6c658eb8c485d6ad8e49c1eade751457562d6003de75cd1f1e13ec15ea1d0413602ed7f6a6b7b84efd8a3056e\nresult = valid\nshared = 209417da721b49d64dfa09983a8683520e5e300a52b2e8f1677772ee3c086b339a1da25cab2be6e44de4526c31f4ebbc\n\n# tcId = 106\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200047f12cb987b08c235523465146b42258584398062a107429ce486b4b2f26a9628293ae4d30aa61c64bf92f97e6c08aea8d6621cfce5270cd7fa69dcb038ed8ba428afd77d528c230f8e5c9b83ef659c7e573f6671a18d8b8c4ceb20f2d760858e\nresult = valid\nshared = e7eac460eada6eb99988cc39f6129a74d9510d2ec39601adae76b2b8fd6122407b79411f8e7adfbc4f0dc50da9f2b82b\n\n# tcId = 107\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004dc4f06d671d86012cd5ce10377ffefbde657da08fa9259e4aeffe6211ac57f6e1c5bf8732989d44c1342a84fa6fd7fba2714ce23cc0f8e0a8bda593ec2b4b5294ffc0363e6e89403d4482f3537dba9e4f36be68d8e2edafd8cc2c01f5f7dcec4\nresult = valid\nshared = 5a197a9a8793d94d8b84084c6dc36c36a293ac90337a1cf6a2653435d05e2f563bfd2933f23ed3aefd75555ead76e827\n\n# tcId = 108\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004ca1ec6798c5667813bfc45dd1815e82bec93eaa7081069767bec3685cdfa56267fc24da6c186d8b3271627a852560c5a097d7c41e610e5267dabf525763f4a4a7478c5f9ae4b80baa1e620ac1f22d8689b07ed9a99dce0cd4a11682f07227fc4\nresult = valid\nshared = 8bf520337de6e5c6f27005161b3b2f1cf08759527c8fc7935e3621f68936f191ac6e931b794278d3ca1e3772dbfb19bf\n\n# tcId = 109\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000444b9e976b9e89aa31519fc0a35288c55e2d7630a1cd1fffd288cdac8c74bc2edcb0ff878fcccebbb78df9e7eb0afa6b1384782b8a1138946594d8fd3b6c9b4954e73d8c040a7a153f3da5a40f9fdaf3bf31a4522416c316f10dc7cd8afc2849b\nresult = valid\nshared = 1e56dc30dad33e34273535688605bb98ad7c6dd51d9267c90a62562d08e47dd684180d4ab7abb6cc14ae4c9bd6ae9e92\n\n# tcId = 110\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004cf661b71c2b8734f7cf5142a66edf787c56a33174303c20741f07e0c348e1b5425705d9ebbb459967621ded6eb56d71037337aa16e1cf6e503182184c9451f9ba457d81a0313fb987343b8b39344f3693298010cd5b73e38bcdece66c67fa508\nresult = valid\nshared = 14e3a97e9ee69089410b72459870495a037d4077bba027eff4c499567d7e7f1af2720e1fedd07bd780509a4516fa5c48\n\n# tcId = 111\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000450790908c043344e1cf42b27e4dc33a35d68a0b93be0ec2be05745b3c83c35f0a3ecc3ed27fb3188a5ed9f24cdbd29d1b0f03ff85fd7fcad4ea5bbd8bd4c42935f0957ca8011cfc93ebeb789c47214e60e5da16e4dd87a53547eedee479b0978\nresult = valid\nshared = 85a8ddb9997e2525cd555721f2d5f3b199ff76b57e91eec6fc7d2c95703a1a32f46e3d46952a90b51054c5fd046b3107\n\n# tcId = 112\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200042395d00779b6c7d4dad8cc9a8918496c28b2d4077e6886d0a1bef515e3125ddd813e5a9ea0f185cd009a69ea92210174b676775f763183c86f6fa50551ba137d79a83e8e32ff2fc09a2c28cdf80cddafcc0f40693e3985f28fe5c7dfe2d8b275\nresult = valid\nshared = c269465cfb336ed8c7e9c0377349193aa4dbdb92a9f4670dbf7fa7a1f7556e8e4b240d5b70edeedd1bf5ce769cb8415e\n\n# tcId = 113\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200045634ee155263c07d7d1e346b868ddd80e9a282fcef93bf6df8e8bc4ea34ff02e119a9f707816d06368ccb94c6e4802fbaadc33991574dde851e547e47027f54353e02d70be6bfa9f73953ca259011f23a4a80cbbaae8805d9d094ef150e0c54a\nresult = valid\nshared = 6a21f244472522389f084e2e4ae99b747b39cbee996ce9a3fa05353219b60c20fa3834d39b0b826f1096b7a467e8a218\n\n# tcId = 114\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000463aa6c3c249a32ebbccce65ffa1c56a205644b2c40b931b1ec9b042b52c1e99cd07e538299fb837fe67586aae71b4706166ac450fbd6d4921b442a11679f7786ba5a772ab33db00543a941bbc015e23581ba625a72c0e4eb44838e5f406ca1dc\nresult = valid\nshared = c469919f58d80b1e45d5d53ee28d616bdf827a88e0b2f499291ec4f76c3c89f276776ea96a6b9053cf02776698864526\n\n# tcId = 115\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004a287bd74d501c29df23d786b7c34ea0daf10e4b3fce71d720f61a272f22151db2c5914867493028c01e103820b0ba6b121cb298ff8977ecf21fea8ee1b6ba7d9b98dacc2a45d75c63ec8323001a9bf5f5ba4d3cbfee80482ca1333f4de90a14a\nresult = valid\nshared = 18dd1d7b6bbc6311afe5383d796a5fec13844bae25708725554de0b5f03ec0f7d2e63b64db5f83d4ee9890c61e442c41\n\n# tcId = 116\n# point with coordinate x = 0 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004ba406b46c1d92d4ba3f40b7b1fcf1e182289b84cdb387f28e5ad20f1ed8c43fe5ffa37128462763051e87f0d5ebfcd9d9dd4107ce4d92d783d0f0f81d7a998b76060735b6fd63bfcd971ca70132fe6dc9fbf8534ecc74b501ea01cd2e4f6c564\nresult = valid\nshared = d639b9c31ad3ceddda7745d19e82fde272a86d31f8e6c203eed53bcb705e9ff58d659f8e9d66aa0492da545a399294ec\n\n# tcId = 117\n# point with coordinate y = 1\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200042261b2bf605c22f2f3aef6338719b2c486388ad5240719a5257315969ef01ba27f0a104c89704773a81fdabee6ab5c78000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = valid\nshared = c923fb0d4b24e996e5e0d5df151d3c26b1f61c05b17b7fb39fc8590b47eeaff34709f6f7328923bdcaf7e8e413d77ddc\n\n# tcId = 118\n# point with coordinate y = 1\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004d39c38aafa095233ef1af8c0f4aaf357dd684131b4ac58a534f3d9446196b60092072dc7e538106b7b2e66dc33cac7283a1b203fca47828e6f7a09af645af0f729802ca2f4000c4b9773b08c5af40e201a27493ab3eba9cad7da157f89f14a2c\nresult = valid\nshared = af3904f83b9a0e95ee0b86b06155993ae598d14898366e5dcfc643de9d5ab72fc5fbef17d0a8fb36ebfddce46e5d4455\n\n# tcId = 119\n# point with coordinate y = 1\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000486da578567788ea3cc0f2a9da8d1393ed3a4447a75c18ea86af9d84b0cacc3b03749199890ef8e5d3188d4f1d041d46e433acd5d9f5542439eb2384ec1de0847d056058ea92489a74e083ffd6e030d060fad674f6a2a9a7c2198b8be9e465bae\nresult = valid\nshared = 1124bedd4c538ae71293085f2c95cf6b13cfe741f21d62c1f02a1e911667d5348b16d8afb544021acdc3cb7448d4d358\n\n# tcId = 120\n# po", + "int with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004111447d242f6b421ca91f561d04b2f1d2f0d9212d918bb4a0ffb1ae6459d078e21a312b2a12594fc8c78fe944c81d513d3c981d5e9cda06c4380d1a842ca5bb51ed3a712b049dda3a50ce10a9fbd0b69dfffaff0787c74d83237ba9c4686a01e\nresult = valid\nshared = 69426158a29971ef44b11783ef559ef4297246611c994d4815637128869d5f6a0202632fe9b5ad7c365b63050c9f2d08\n\n# tcId = 121\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004d7cd5024c4481e27d1653566152efba3284b50ba2a141b2643ffda18f300fa64b81b234b8f646cab4728b4e7a97024d76850aec0a2d131c6acd5b298b6f905cdba18e68564bc31f882fed51b28786a2e72f8812668c976f9ddc042695595fc6f\nresult = valid\nshared = 6597401c837fb498ef0780a382decd4a0dd580e1af5f24c44ac164e256a4884ad5bd2fb1f6c964682cb0bf79e2c7a6c6\n\n# tcId = 122\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004e31487548037c0423e5710fc60e746ab6e47352561e416b583123a6d45caa911762cd88a60bce57b29a2ec1a1dc97fc1bd4b604038e6ac016dbdd48f0e6bd9f4b5daad8d68fc28838c6ab4a4eb5ab0eaea2cbdefa61dc57a3e04ae71242938b6\nresult = valid\nshared = 89411d9c8149b951fa0d5bea1e141bdfc2be7ed56d5e61473935789016bfd2daf6a40ac7bf5b1b0c0c02cd3aa0b2d95f\n\n# tcId = 123\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200041e17e173d37ab9838283f84f24a0a25caaa60c411fbfea582c44f8fba2560ece028cbe397b0eda69fc872d80d9ebe065789c0723eafcc9e9a2bad431b11caf7c5d7598ca999074056ba808a5d07977c678f9534de152ffdaca3f63cba3f97894\nresult = valid\nshared = 6f0aa11ab74ae5034e231ef2630bc76cda6eed26325d123642fce6a950b50f904bc0269f8f589bc4d38107332b14da84\n\n# tcId = 124\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000476efcc8322f0af8d62e736a0e110f66b3aad5c87bf7a77333fce864f4ba6e8dfdc16d6add2c542c4805589a71f0e48a3c268feab02714c892f826622b25bd21ce2a33514b16c9ee84c722b523b19ec5fc34d874133080e158981849355e1f50d\nresult = valid\nshared = 7eb9962e0449ccd2e60b4f8094d5a7b461d0d4b06af0ba306b74ab0d60ad5cf894fbfc282ac8dca3da196d7a296baa14\n\n# tcId = 125\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004c147d6c235d740b388e6d2afafcf85d5b7166e0df4ea21294088e3049b5c27d7633c93d30fdcf2b9375e1814f51b57bbefb2c12575c2234ee1f6b147b2e04c104a4d2b29cd8458f59b57bff75cab9b6acbe854fc4d96fb73372d6054bb768390\nresult = valid\nshared = 790295bed69f5347ecaae9befe15cd3499759cdfbe51974b1f1c4bc576e7d881cefa93d5e8bf2c21ebb982698e1c7aeb\n\n# tcId = 126\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004849c98fff5e31b108aefb16cc5cf5c7e88439d8b3ef188f2a5bc53f30901dedfe294abb38fb8cb46547a23cfe47909d656449f8a09aa88f8e260598ea2772df74d26a4431a03785934373be7b0ec9187b8215965761723e79591176960eac014\nresult = valid\nshared = 58a11a17c4ada4d446c08b83aa05687fee8fd6e78303648b8583262197f87be97dbe0bbd274e444a384e221696530fc9\n\n# tcId = 127\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000457cf645578dd242c714d100dd23568b16d3745da809708d01eb6a7168e6f71dec2074c5a6c23bd05523dfccc97dea6f08da195daa2056da0576bbc0ffb5e73bbdad03b04d23b4b602451a5ba91b17dce302f4ad164c6a4a2b58e3f0253a5e9d6\nresult = valid\nshared = 9260483a165690d54c10cb867a9f896bbd123d4768a18d322300d420aac88ae20f188b57f8e97afad55ebb815728f49a\n\n# tcId = 128\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004cab2d9d36c8ec09f18baa0abb521372a5cc2f624848f95460a8615238e68c11c1b43d22b84d1e535ec1d85560de293ce1fd5e6e7ac7eb6f173ad27b63985fcc83b9532aa56f2b59b53a9d116098fda9aba49d57c1eed0f063bcc701bb10f6c2b\nresult = valid\nshared = b4679af80a2ad34ef86eacf2c2191556bc0240c7913fb14c4c1f8623b5db41b854d630dc65738d1faf544aa42979aed0\n\n# tcId = 129\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004d71df4095c138523340a4010cfa976b3b27af48ca83e8c6bb4596f9f8e8f13e38de4e25ce1d379b41a95f9d7f8a84606b28c69704b68788eb6a35c8bcaa7d9718e00c9bc567acdc458b6732aa87041d27b6a574d51e95437855bdc86748c5cac\nresult = valid\nshared = 8a34de8beb884364b583c9cbce390969967cc2a50090ee132acbd49bf780ad7f092ae3ebd4686a70ba554efdd6acd4ed\n\n# tcId = 130\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004a5761775850a25985a32430442d660aadf9e1e388b57e6e1bfe41495b9a05a8240f77f3397c5cdb0c83d73945984abedd2c7cfa5d5d91738c6577646658c0448f0155b5bf839575a36d1b26d87d1b2b3afb4f68653a6bfa5edfc57aa8529e622\nresult = valid\nshared = 790dfcff4721ef1701e3ff521e4221be51ae242f95166b9292c7aa2fa3c9b799afd353987a535690ff20d66f578f38fc\n\n# tcId = 131\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000454fc2f89cde6f6e86b6cf3286198f9a9e33c8d662c2151205ddcff12e2d32fa891eec2359bc07224d64c5e339ff9d58918a3b79372d142fb341df3b15b54b30e8f956b079b1278276a33b4d8508920940ca63fb8e970ff98f91ecc7986275edb\nresult = valid\nshared = cb861053c1d685194ea58413d8f9981e07145bc573ba924bdba2e29c5f98e9e70ea0cd0412d6c387449e9ae767dc4330\n\n# tcId = 132\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004bfbf3fab1acb39ce28f063d78cf250772bd00bdca98b769e1f1fd442b77f4270106a5f7d913c1905bea0dc75b31f87a115c566dbff0cd1073325450a91096fe5f5d601a636407cfbc4f5720f396fa6cb16987370ce70e29bb7ed2f447425f10a\nresult = valid\nshared = 375ffb90ad6c518668e5d25941acd5f9c017346d06f893cf95752258bcc5f9a25996a80f42e0475a80443dc4197bba6c\n\n# tcId = 133\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200045757577480f32aedac6e19765f9197cc278cb0b1a21fc6b6423c8f6c6cdea1d324c93eea8bd7dcca8fd293d69876524360b1a4825522acd833d38dbd61508547358a2f5c281b496abd57072ab14f9a2235bca02545e0427526bc2bbc9268349f\nresult = valid\nshared = d1a02a264ab15aef52a534eb5000e2943d8cf1f77255a27f845e96e1f81df47ee903c3e921539d77d72f55b7efc9dfbb\n\n# tcId = 134\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b81040022036200041452f5eafbb5cc563f2c7ca403b803f6f8d66479062508a2258a8d988a769b80e077735b45efab1f297ceebd74347f584f2badbca55457404866baefabfa99b70fbf105d17f352347f6799647448708f788f8a145bdd96d4af2d7e65", + "4be7e5f1\nresult = valid\nshared = ccaa37769d035170bb5c19c135da2291446efd7ecd3be9008612b8ccc29f6e9d7a45dd4e0479123f03e7e304f34729e9\n\n# tcId = 135\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004ad27a365e4b6994c5ed135fc4794d73eb71ec26d787fec10f1382b19c1b5cd1d672999feee86d5f305516d601fd1c6aaf8664858988f02f36c888f71872007870bb32654aa75530fc3b7a235f7fd2bcd815e303445526960f6ffcdd61d2d1340\nresult = valid\nshared = 4ae94d3eda5839f4b8b9ffe6d510144cf28bde98581e82726f2d76d933919adab71d2cdf4c4310f8abcc74d70eba3a33\n\n# tcId = 136\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004733041f3a60468bc0711d5a5073a71ef6062d0ae70706af51316033580cae058fc4ac99ebba823b19f48f309e34fb02933670dcc75ed47744771f60238ccebcddccd42d64e41045fd8ebc35bbae0a37b43388ddb87356cbb525a13d57f47a2cd\nresult = valid\nshared = 062b8a968e45435c2b5b54b417f55e89f935b66dec44882c06ab8d6cda8dcfb553a78361d382a9211191871e9a34220f\n\n# tcId = 137\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000481885804ee931988cff3f218c9af1429573ccf8c8f3df40c698d976e8bc7c12881953445ddc4f1902b2f2f3153304e82d7094b673b76beebfa5d84c49b01ce168c459201cb8192ef96d891010e4bc88f0acc4fbb40ad61966e787b9a298a2bba\nresult = valid\nshared = ba41c38d33b2ae342797ee69723f042a71dd7fb15f3dc80dae403d4f88acae28e2e51f2ca9d52b4aa4e2b3e58257e24d\n\n# tcId = 138\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004167915d962a405f8d04d6d6494270d883fe7594e9a21f7b57715750f8d78ec0714f0fb85a9fe5aee4e6d10344e4b12f91f00441c8bf567ff84e6ee4298b9d3392c78fb32461958102e1d29d2f4c4732104242cc4bfee22aa8f4a172aa510ac88\nresult = valid\nshared = c6af4eae5999e0d0658505cb4b395e9d73592a3d9d0b3c07caeb2bef1b03ca4d603b33e6f6bbd90f9416c4aa0022e584\n\n# tcId = 139\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000466e1fe893f72ffea5e24ea5a4f0d6558fdbd3222dba6e3340753c82979ac59530dbd37fac2f51355465d56afe1de582beaca9104ad269b0f848d8b4d71182afc30129147369a74193ddf4ddb3b6ff128f94168ce0bc60e7791b4b1ca2e29431b\nresult = valid\nshared = 9e364adcb72b15a42cbd6fa79114889e22b93b533b0119afd90914b181128151b8a17db49004ec39ad5db5603fb9711d\n\n# tcId = 140\n# point with coordinate y = 1 in left to right addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000462ebaabff2a07a852af9aab8126e93c31109e893cc61b354a72a1744cb409a02cec6e6195845957a53bde97dec7a87c25ea11b003a694e371c2be1cf5db5b7fba278f6968f54c5fb6677987bbb6b55dd9072e8325b365c25262c5024f68b2e5b\nresult = valid\nshared = 23104806dbd85f71d8fc38101b0cd0bbcd60331d8f74869f0643116ac362b5e933db8743ff80dfcc2df5cbcbf027185e\n\n# tcId = 141\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004276a5a274b46a0a36f811cf64bc7a644d5ad9c124be002a6fdd1cc111880655c8d2987674ea49e7d70d2a0ae820d1a7d4ec3bae2dd1d77af082fabcd68ac20f209e8fa446478794223be1d63d71987e964e45f0bcf6a2ea0a12c633445285a46\nresult = valid\nshared = 283502355b21189f7361e89457550974f86ae2b66d025506899c15b390da248e14fd1b4f25c8584d1a71e7f8c93fa976\n\n# tcId = 142\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000498fee314cfb3c01cc2d9fd7c2568336027840008bcfbfc8292421ed6b0727fa20b7002a5726a685d44963ad8f74c695da25a542b8e0bb9a4858be64f70800da93af6776bb795bb169f4c9d151795f3a5a37a3c82264cf6870c4ded684a71269b\nresult = valid\nshared = 9044be70566664ed91dab85aa5ff644d7a346810d2678d27751917c3820c4c825034b78a957b8fd1d47e86e67e5ba9f8\n\n# tcId = 143\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004d16d0b11d0a326bb2725b3c9cd598746af11924f6172ce53b19a942b965562c2a2875fd15ce1f4869156d5cf08780c74d4c4927ca175b5327c9f321cd2a7b1acb58fce351160daea5d5c64d76d38d3ab17f7c1432093ad4d620053f6f675864a\nresult = valid\nshared = 1fa4c8e6dec89088a8fe725530f5c154672e84488baaf70a08b2e96565962653577402161424294b7f377208fc936139\n\n# tcId = 144\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000410526e3b097a99ea507ba6795ea1f77718690460117bfac9ed95bee311db5f8a1a2767c134b19db3c387a1fb45be7029312c75d7bbeeee48bc15b55dfb716511c5634d719d26903bcace1c60a8e030496156d9ccac97cac724e093574ae4bc83\nresult = valid\nshared = 04f4029d372332b4b226c9f32521ea39a58b655d24e35190ce04d58f0c04814be7f6ffcb8a4a15134224134f029eda9f\n\n# tcId = 145\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004e632cb201288b643f235533c44846b11a28740ee4137a22cff7f542054d6337f46363849c8310e20d8b29baddb3109ff948d42ae959c3ae143d4f02d268726bc2b66bafed7657b1a53e23eed48094c5ca8d28d16121aa6237d8150ad6c326655\nresult = valid\nshared = f41f912165827cea27ab8147a46abeb30c1bc73cfe0520d7d8698df8f9529afe26eac707340f38b49ec5e741d646b9a7\n\n# tcId = 146\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004088330380613adb0b8e531649809fbea340edbdf598af028e74ba0b4f18e2d50118531b9a92b07753b2c13ceb87d3c8e38e625b500f4b9bd2dc781892fff96d89271909d3e561a63e415467d6d455d0a4c19c36f16dcc2417a3425c2adda9034\nresult = valid\nshared = 6e437e26316eb2596400d8fdda5be90caa94d62c425f27df5ca67898a8ffdf3cde577c4d2d66f6522498f0b295d77a2e\n\n# tcId = 147\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004d9a9d1e0aacaef4aecf241d690ee4101df74d7a37f18ce3181128f8d4255cd34702b17f116b2506cb8f577d9357e3629966e62e6f95c9eb7833ccc1f22956a1e2599a875f8139d9a2b31e2000611b4d6db1d23e7f0db5b5c17bb44e150ea2695\nresult = valid\nshared = 854772b9b77d4687571f1934061dbce0016d47b90a8b5d38229475c213cd5df25f960b775ae72909cccc5ba14dd03448\n\n# tcId = 148\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004535d22f39c8a5591e7a1deef7a6c34965fb5d1e616f14bb12a7e6310d520350f2f75836f9c8189ec4503ef74a0b850d4abb05ab1e5c6061884d1eff3d2be78c76759b986dde70552aa1e97bc014f333c0d5af8b46d61e1ae06774e2f86267312\nresult = valid\nshared = 037d459a54fe6b69d893f4d3094a5e0a93251d5254cef5b022e7065fdf52e3be8127f2ae2e336e261a71f6e41aacb2e1\n\n# tcId = 149\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae", + "4b580691376187\npublic = 3076301006072a8648ce3d020106052b810400220362000489402a143d57ec585aee1243d3a7adfa87eb80c60bd09cbb56b64eb0a1b7f5927318d8573c6239c6feeaa58dc2ae2e40d605189ac4a66bd6b9e708bdbccc4647543c0dd1d3c64a2c160c32f729f2b15dd95852c9b207508651d7746395a5a490\nresult = valid\nshared = e8d03dffead2e40ea915db4c9c67abb45aa60992422b70374239caf58b96f86716600c1cc4449362dc56ca057bfc5e5e\n\n# tcId = 150\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004c2a9c52a5936910c05c4144315127bf662c292b8f0681811c2bf8f4f9cc5bd7ab693f7cbddb5724e7e29dd023d155ffd335e8b872ae1b7a91293ae9cc8f654f05ff4767db208b76c73b6b34c5626512e6ba92bcc937c9bcca9447dbec22ff106\nresult = valid\nshared = e820f997928a71186ce09b96923c317cc128cb761c87e97073a851610ca12f219937938789bd227a8d72b2b406c471fd\n\n# tcId = 151\n# point with coordinate y = 1 in right to left addition chain\nprivate = 00c1781d86cac2c052b7e4f48cef415c5c133052f4e504397e75e4d7cd0ca149da0b4988b8a6ded5ceae4b580691376187\npublic = 3076301006072a8648ce3d020106052b8104002203620004dcd0224ad2219dc3af05eea5d27974a75fb1960d0d721c39f107bf45346220994e520ca5a646701e9319ceb08017a302e0b1bee292cd1cb99f145ead3d12285903b1e549fcce7591a101a1675fb9b6e30e678037f4d58d220c1e36a4e79f883c\nresult = valid\nshared = 0aed8ac7d04af070b73a03f37ef711296db8ac64bab13e15418df6373aad81d8e0fa789b9292933d7f11b8614076e074\n\n# tcId = 152\n# edge case private key\nprivate = 03\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 455aea9924330bd6d2d6403478327900e172e93598e254cf6d8eb13f0a3d21be51a46107333844e61dfa3d80df6928e9\n\n# tcId = 153\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = db1d8ef1117282870db8113aa4f58723c756ce598686eb8ea531aa4d39abb1b982b1e7bb2648a6c268d2d351204db8d5\n\n# tcId = 154\n# edge case private key\nprivate = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = e98062df47ef884c9411e16466af84ad271d586008b1fbc50aeb3b36836a35a770dd42e0db84d39b26f4dcd2dc03d90b\n\n# tcId = 155\n# edge case private key\nprivate = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 898aae0ebf1cb49fb6b1234d60f59006325421049a8a320820e1ad6af6593cdc2229a08c500aa55ca05999d12829db9c\n\n# tcId = 156\n# edge case private key\nprivate = 00800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 83f862f496ab8af12b82a8a0c047d836bdfa36281324b3a1eb2e9c1d46699d81cb125cbe4b93939fd84e1ae86d8a83cb\n\n# tcId = 157\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a779ecec196accc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 9a26894887a0342ca559a74a4d4a8e1d6b2084f02e1c65b3097121a9a9af047d8810fb945dc25bbf02222b3b625f1e0a\n\n# tcId = 158\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecdc196accc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 8a8d9dc194a26910cbdae7908d185b6ad04b620c94c5ee331e584ed804e495bebc2290a2d7006a06e65b9bcace86c6f6\n\n# tcId = 159\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aece4196accc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = d57f6aa12d3f07e8958499f249e52cfbe5be58482e146c5414dbbf984fc5333710350e2ce96b33beb7678381f40f1dcb\n\n# tcId = 160\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec1969ccc52973\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 188e8041d9a5f0b6cfdad315ada4823beda0146774fad65b500e6ef94376ebf8af7a40ff6f6b45019a09dde7d7fb5552\n\n# tcId = 161\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52959\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 2ecf9dc47e8b07ae61ddbd1680ead02698e9e8469f78d5a28328e48d0c9d7a2ac787e50cba58cc44a32fb1235d2d7027\nflags = AddSubChain\n\n# tcId = 162\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 06ee9f55079d3d3c18c683ba33e0d2521be97c4fbf7917bf3b6287d58ffcde2df88842e3f5530b39549ac20974b1b60e\nflags = AddSubChain\n\n# tcId = 163\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 455aea9924330bd6d2d6403478327900e172e93598e254cf6d8eb13f0a3d21be51a46107333844e61dfa3d80df6928e9\n\n# tcId = 164\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971\npublic = 3076301006072a8648ce3d020106052b8104002203620004e9dfaaab808b3aac1ccca7cc6242a7ee583249afe8ee8f66b904cc8eec34ad334456e00f33a94de8b5169cf0199550c020156e9651734ff999c5f3ea62b83d0083a6093f234457251ecf72c41e4df7cea2420b5454a7f690034380bac981e92e\nresult = valid\nshared = 024c5281487216058270cd1cfe259e948310e4adc263a9edaa4da0bc3f5f8ce8ffc88ae41b2c050bf6dd9c8c66857237\nflags = AddSubChain\n\n# tcId ", + "= 165\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 166\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 167\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 168\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 169\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 170\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 171\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 172\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 173\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 174\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 175\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 176\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 177\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 178\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 179\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe\nresult = invalid\nshared = \n\n# tcId = 180\n# point is not on curve\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3076301006072a8648ce3d020106052b8104002203620004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nresult = invalid\nshared = \n\n# tcId = 181\nprivate = 00c6cafb74e2a50c82c7a63d13294bfea13d0bc504ba2b08a392c9081bf3815d9e44d969ed7f05ffd1d8594355053c6147\npublic = 3015301006072a8648ce3d020106052b81040022030100\nresult = invalid\nshared = \n\n# tcId = 182\n# public point not on curve\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3076301006072a8648ce3d020106052b81040022036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c8\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 183\n# public point = (0,0)\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3076301006072a8648ce3d020106052b8104002203620004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 184\n# order =\n# -39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c0", + "6072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f0231ff000000000000000000000000000000000000000000000000389cb27e0bc8d220a7e5f24db74f58851313e695333ad68d020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 185\n# order = 0\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201853082011d06072a8648ce3d020130820110020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f020100020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 186\n# order = 1\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201853082011d06072a8648ce3d020130820110020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f020101020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 187\n# order =\n# 9173994463960286046443283581208347763186259956673124494950032159599396260248791326163093631191247821216106\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b13082014906072a8648ce3d02013082013c020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f022d00ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196a020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 188\n# generator = (0,0)\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 189\n# generator not on curve\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e61023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 190\n# cofactor = -1\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 191\n# cofactor = 0\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c", + "6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 192\n# cofactor = 2\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020102036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 193\n# cofactor =\n# 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201e53082017d06072a8648ce3d020130820170020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = invalid\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 194\n# cofactor = None\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b23082014a06072a8648ce3d02013082013d020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff30640430fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef046104aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204adfe419b2dbbfb942dc98b16d8323150cf6\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 195\n# modified prime\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100f47e533e4e43e4bf04e901db0eea6efba14bbcdc3b1c5753a7c141487e4f43784e57a72310202323361f44760c8368bf306404300b81acc1b1bc1b40fb16fe24f11591045eb44323c4e3a8ac583ebeb781b0bc86b1a858dbefdfdcdcc9e0bb8af37c973d0430b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef04610400000000000000000000000000000000fffffffffffd38000000000000000000000000000000000000000000000001cf3646298bba2f24e84189cf0d1e75188fc4fcf5b0844281822e789e3d534b159f4c419342260197625ad924a2c72c4d0f023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201010362000400000000000000000000000000000000fffffffffffd38000000000000000000000000000000000000000000000001cf3646298bba2f24e84189cf0d1e75188fc4fcf5b0844281822e789e3d534b159f4c419342260197625ad924a2c72c4d0f\nresult = invalid\nshared = 5df0762488bc0a7be1121508949382861f781c331676048c2d45d245be6f476c872113e6710bc746c3d06970510193ce\nflags = ModifiedPrime,InvalidPublic,UnnamedCurve\n\n# tcId = 196\n# using secp224r1\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 304e301006072a8648ce3d020106052b81040021033a0004074f56dc2ea648ef89c3b72e23bbd2da36f60243e4d2067b70604af1c2165cec2f86603d60c8a611d5b84ba3d91dfe1a480825bcc4af3bcf\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 197\n# using secp256r1\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbf6606595a3ee50f9fceaa2798c2740c82540516b4e5a7d361ff24e9dd15364e5408b2e679f9d5310d1f6893b36ce16b4a507509175fcb52aea53b781556b39\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 198\n# using secp256k1\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 199\n# a = 0\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201863082011e06072a8648ce3d020130820111020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff303504010004304fcc45ccf5e23ee407b9291d2e85523962a2a79a50da3facca04b7267ad316db202cb07c24905740d201ded3028881090461042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101036200042121a348f9743855859c496f91d0f39fe728fc46e48d007713051b22f1c0257fe20dd85b21df7e1ec82bf8b39b2138a2ae74f80e6257778f8cca9f279b57d25eeeb155960642972f0567e204514f0ac1eb1e27db5115053211914961d09644c6\nresult = acceptable\nshared = 455cf3c0b0090688599825522ef3312878201514f6330ccc7f42ec1945204a", + "dfe419b2dbbfb942dc98b16d8323150cf6\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 200\n# public key of order 3\nprivate = 00de44e63fd924f177340d780af6aaaea271f52d2cb9a5c519b6020e06c3cf0baafbc0b801c6508c2e1483b15cfef7afc2\npublic = 308201b53082014d06072a8648ce3d020130820140020101303c06072a8648ce3d0101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff3064043074a89c1d95030a24dddf35deb3d490665cab6a0e72741abb05f3fb7e34ec8b432b39fc1ba64285f407856ca80690f125043054e7a558b35bb0e9af4a419ec6635f3c0d34ae013cde6debef47514bcb980ad547c9aa5834be44eaa02e93bf851344e8046104c98adce2b5ef154f90d7d6f0c2ec6c526a9f214cce85ee84290e45fd6e5e88f82dfe994c0050d838789744af8b8d9505f29cbb59d91d1908faaab1cd17b7e0736df1e09a4fc42366abb339565086f7d872c779af84980f9fd725446ff0e2dde5023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5297302010103620004c98adce2b5ef154f90d7d6f0c2ec6c526a9f214cce85ee84290e45fd6e5e88f82dfe994c0050d838789744af8b8d95050d6344a626e2e6f705554e32e8481f8c920e1f65b03bdc99544cc6a9af7908268d38864f7b67f06028dabb910f1d221a\nresult = invalid\nshared = \nflags = WeakPublicKey,InvalidPublic,UnnamedCurve\n\n# tcId = 201\n# Public key uses wrong curve: secp224r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 304e301006072a8648ce3d020106052b81040021033a00040710b0c6f4675459f3df2bdf7ca02819f8086198d15c69b8abda37639e6031caca8a0121894d2491d8b3dce093703c70705bc5dbc8fa17c8\nresult = invalid\nshared = \n\n# tcId = 202\n# Public key uses wrong curve: secp256r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3059301306072a8648ce3d020106082a8648ce3d030107034200045fa4fa0b235c21e5c9f3baea9303bf86eccb7d31d0b998e141bc54b5dc43b23eef7fc5cf56308ed595eee99ade6aaf74d591c3d00aa1b438abc59c9607c22c36\nresult = invalid\nshared = \n\n# tcId = 203\n# Public key uses wrong curve: secp521r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 30819b301006072a8648ce3d020106052b810400230381860004005bce61fe27c440fedbad47d88bccf645db9c1d30daa086e592e8b6a0a173b87991b619801907b420fa558c7953ab97badd9c6c1d85859d9ebef7441a088ff57ed5008d7638de703faabeb5a78e83e8fcd4eb786144a75d79bd4cc8cfa8be66612d756c7b65c67f72c6acbade6f0d59e9752e845205b2a560d4f8d6a9e84bf812f94d18\nresult = invalid\nshared = \n\n# tcId = 204\n# Public key uses wrong curve: secp256k1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a69ced11a8bf7a907bfa47cba3368f2498b465a2407c90649c8da224d2a85bf445ad2df3d0113e72aedccf92ba6b8529ed6faa154bc27aba25f49371981e3b38\nresult = invalid\nshared = \n\n# tcId = 205\n# Public key uses wrong curve: secp224k1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 304e301006072a8648ce3d020106052b81040020033a0004fef61198c88514f19fe00b2def1bd6073f5c50eb572ae806c0b657ff8ba79186771e73f598036e5dca1a1ddc899a56ea8663c10f212e452a\nresult = invalid\nshared = \n\n# tcId = 206\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a0004a9b0f90e49a57fbe508847bf16e4a7b565dfe870a50164bc2862fe6e4d54bd8b109939f7dbbf800522722b9c0b309ace3884abb69c927ad0\nresult = invalid\nshared = \n\n# tcId = 207\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 305a301406072a8648ce3d020106092b240303020801010703420004512fe17172db1125a49f9dbb85e387869adf015e4899c06f66ef870d72092d4d195e1d21b4a4647bf734468bee802ddad5449202eba1041df2fd8cde04697237\nresult = invalid\nshared = \n\n# tcId = 208\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 306a301406072a8648ce3d020106092b240303020801010903520004c391dc7a817d47a3961ea1857895e101c0f5a8767d3a9c7cad49f7af8029f24c67309373cedd0831ccc0a0f45d344f3ab5923d2452507a980301a283848ae31574a57db51ce5e61d35aee483f1bb8e66\nresult = invalid\nshared = \n\n# tcId = 209\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 307a301406072a8648ce3d020106092b240303020801010b0362000419d3c811c04c5c0990d0258386195b2e29fdaba58d3f12b0bac8d3d53828c66c7a35e3d1eb0bdf2c08f23d0e4ab6a3246e456bf0fb863d03423dbe431baf799657c7816a619662fe5b900b754107ba5cc06b1d62c9a927891efee1a1fd404d7e\nresult = invalid\nshared = \n\n# tcId = 210\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 30819b301406072a8648ce3d020106092b240303020801010d0381820004216eb619457f1168ac873f5b560a75df80749f2bdf9abac31d6580e521ad70368013c3db74f663263b61eb12d4dcd597ad6c77cef6a5d6d2240b1e244d76403f693fb317ffc602a7ac313991b0a62f7bf469bbc95b3ff35003d972eb8ebcc8d4833e6c24ad52d49c1ce6244c7889ab67a8818232e192944542763fc667e5799d\nresult = invalid\nshared = \n\n# tcId = 211\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a0004691b24004380a599770214d0c60ab37cfc804cfaa7aedd11cbf0a05467ebec5e33322cda707b848086fd740244f62cdeb867fc057207fde2\nresult = invalid\nshared = \n\n# tcId = 212\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 305a301406072a8648ce3d020106092b24030302080101080342000422bf69f3a81dfa1ed8a97301943626e20377b78f7e7d714b880deb5a4a9c63a11591c2e47b777488990771855768b9a4050d61bf02d84cc6aa40447a07507285\nresult = invalid\nshared = \n\n# tcId = 213\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 306a301406072a8648ce3d020106092b240303020801010a0352000476568300e2b4c68861589b4966e67bc414811e4011260cb8be5f884869fa179ca8af40f80009e0a58b17ac3e551a772e76683c32e6e09112572542d7c1fe3d49abb56da56d669186e2623dc797129dc0\nresult = invalid\nshared = \n\n# tcId = 214\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 307a301406072a8648ce3d020106092b240303020801010c036200043345dffded3c33f7dcc19bb8997a39f2d6230abcb765d6142c30bf320c1fadff535feafd8505eb3e614db71826c1e258077a1e6057add7474f6d35dce68417812e7b919b1c673032b28c45d0a9251c43a2a73ab152f64ff8eba4eab312fa73bd\nresult = invalid\nshared = \n\n# tcId = 215\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 00d6331a5a968e4d3bd7336a423b41055b68edd100b8b998d00eb9ed93881c21e3912bb2ee08e71327be205898675ef7a4\npublic = 30819b301406072a8648ce3d020106092b240303020801010e0381820004a3677c646cd887685940c28076f55cda7469032845f2cb2af51c61492dc435aaa5b771d8e1528417cdeb89b5f629e06b234e21236b9edf46c7025177ee65a8e940f670d10c722cea355bd3a5c8847a38324b9a06a50a95da4e70bb492cd00194a8830975dd1e115e19315575ff841b30fd4a3f8a44725dfe280d0af57fc80cc3\nresult = invalid\nshared = \n\n# tcId = 216\n# invalid public key\nprivate = 2b9e57572da6cf4fb58cb94eab8df19383a136f219f2a515776a8bf48e1538dd1d811946c16d9f0184c9ce5cdf1dac51\npublic = 3046301006072a8648ce3d020106052b81040022033200024424530ea70bace90601f8d5869e4179a6cd689b6a18fdfec50cecf17cb836d24820211ada67815b42c2c2606303f69e\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 217\n# long form encoding of length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 308176301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47", + "ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 218\n# long form encoding of length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307730811006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 219\n# length of sequence contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30820076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 220\n# length of sequence contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783082001006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 221\n# wrong length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 222\n# wrong length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 223\n# wrong length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301106072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 224\n# wrong length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076300f06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 225\n# uint32 overflow in length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30850100000076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 226\n# uint32 overflow in length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3085010000001006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 227\n# uint64 overflow in length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3089010000000000000076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 228\n# uint64 overflow in length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f308901000000000000001006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 229\n# length of sequence = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30847fffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 230\n# length of sequence = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a30847fffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 231\n# length of sequence = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3084ffffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 232\n# length of sequence = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npu", + "blic = 307a3084ffffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 233\n# length of sequence = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3085ffffffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 234\n# length of sequence = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3085ffffffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 235\n# length of sequence = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3088ffffffffffffffff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 236\n# length of sequence = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3088ffffffffffffffff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 237\n# incorrect length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30ff301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 238\n# incorrect length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307630ff06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 239\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 240\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076308006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 241\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006802a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 242\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106802b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 243\n# indefinite length without termination\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203800004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 244\n# removing sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = \nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 245\n# removing sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306403620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 246\n# lonely sequence tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 247\n# lonely sequence tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30653003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 248\n# appending 0's to sequence\nprivate = 4b065d2dbbad95d7e", + "ebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 249\n# appending 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106052b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 250\n# prepending 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30780000301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 251\n# prepending 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012000006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 252\n# appending unused 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 253\n# appending unused 0's to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 254\n# appending null value to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 255\n# appending null value to sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106052b81040022050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 256\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b4981773076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 257\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a25003076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 258\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510004deadbeef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 259\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3015498177301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 260\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a30142500301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 261\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3012301006072a8648ce3d020106052b810400220004deadbeef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 262\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3015260c49817706072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 263\n# i", + "ncluding garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a3014260b250006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 264\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3018260906072a8648ce3d02010004deadbeef06052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 265\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d0201260a49817706052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 266\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406072a8648ce3d02012609250006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 267\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301806072a8648ce3d0201260706052b810400220004deadbeef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 268\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b81040022236749817703620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 269\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b810400222366250003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 270\n# including garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301006072a8648ce3d020106052b81040022236403620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510004deadbeef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 271\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307eaa00bb00cd003076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 272\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307caa02aabb3076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 273\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3018aa00bb00cd00301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 274\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c3016aa02aabb301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 275\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e3018260faa00bb00cd0006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 276\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c3016260daa02aabb06072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 277\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301806072a8648ce3d0201260daa00bb00cd0006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593", + "f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 278\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c301606072a8648ce3d0201260baa02aabb06052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 279\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301006072a8648ce3d020106052b81040022236aaa00bb00cd0003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 280\n# including undefined tags\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c301006072a8648ce3d020106052b810400222368aa02aabb03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 281\n# truncated length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3081\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 282\n# truncated length of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3066308103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 283\n# Replacing sequence with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 0500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 284\n# Replacing sequence with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3066050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 285\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 2e76301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 286\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 2f76301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 287\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3176301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 288\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3276301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 289\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = ff76301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 290\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30762e1006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 291\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30762f1006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 292\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076311006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 293\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076321006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nres", + "ult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 294\n# changing tag value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076ff1006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 295\n# dropping value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 296\n# dropping value of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3066300003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 297\n# truncated sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 298\n# truncated sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30751006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 299\n# truncated sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06072a8648ce3d020106052b81040003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 300\n# truncated sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 301\n# indefinite length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 302\n# indefinite length\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078308006072a8648ce3d020106052b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 303\n# indefinite length with truncated delimiter\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125100\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 304\n# indefinite length with truncated delimiter\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077308006072a8648ce3d020106052b810400220003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 305\n# indefinite length with additional element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125105000000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 306\n# indefinite length with additional element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a308006072a8648ce3d020106052b810400220500000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 307\n# indefinite length with truncated element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251060811220000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 308\n# indefinite length with truncated element\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c308006072a8648ce3d020106052b8104002206081122000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 309\n# indefinite length with garbage\nprivate ", + "= 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000fe02beef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 310\n# indefinite length with garbage\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307c308006072a8648ce3d020106052b810400220000fe02beef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 311\n# indefinite length with nonempty EOC\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3080301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510002beef\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 312\n# indefinite length with nonempty EOC\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a308006072a8648ce3d020106052b810400220002beef03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 313\n# prepend empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783000301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 314\n# prepend empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012300006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 315\n# append empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312513000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 316\n# append empty sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106052b81040022300003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 317\n# append garbage with high tag number\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3079301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251bf7f00\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 318\n# append garbage with high tag number\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3079301306072a8648ce3d020106052b81040022bf7f0003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 319\n# sequence of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 320\n# sequence of sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 321\n# truncated sequence: removed last 1 elements\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3012301006072a8648ce3d020106052b81040022\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 322\n# truncated sequence: removed last 1 elements\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f300906072a8648ce3d020103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 323\n# repeating element in sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3081da301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b", + "5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 324\n# repeating element in sequence\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307d301706072a8648ce3d020106052b8104002206052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 325\n# long form encoding of length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307730110681072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 326\n# long form encoding of length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106072a8648ce3d02010681052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 327\n# length of oid contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012068200072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 328\n# length of oid contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d0201068200052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 329\n# wrong length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006082a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 330\n# wrong length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006062a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 331\n# wrong length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106062b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 332\n# wrong length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106042b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 333\n# uint32 overflow in length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b3015068501000000072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 334\n# uint32 overflow in length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d0201068501000000052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 335\n# uint64 overflow in length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301906890100000000000000072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 336\n# uint64 overflow in length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301906072a8648ce3d020106890100000000000000052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 337\n# length of oid = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406847fffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 338\n# length of oid = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406072a8648ce3d020106847fffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0", + "31251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 339\n# length of oid = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a30140684ffffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 340\n# length of oid = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406072a8648ce3d02010684ffffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 341\n# length of oid = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b30150685ffffffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 342\n# length of oid = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301506072a8648ce3d02010685ffffffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 343\n# length of oid = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e30180688ffffffffffffffff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 344\n# length of oid = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301806072a8648ce3d02010688ffffffffffffffff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 345\n# incorrect length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006ff2a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 346\n# incorrect length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106ff2b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 347\n# removing oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306d300706052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 348\n# lonely oid tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306e30080606052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 349\n# lonely oid tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3070300a06072a8648ce3d02010603620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 350\n# appending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206092a8648ce3d0201000006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 351\n# appending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106072b81040022000003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 352\n# prepending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012060900002a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 353\n# prepending 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d0201060700002b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a9", + "7dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 354\n# appending unused 0's to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d0201000006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 355\n# appending null value to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206092a8648ce3d0201050006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 356\n# appending null value to oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301206072a8648ce3d020106072b81040022050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 357\n# truncated length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f3009068106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 358\n# truncated length of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3071300b06072a8648ce3d0201068103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 359\n# Replacing oid with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f3009050006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 360\n# Replacing oid with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3071300b06072a8648ce3d0201050003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 361\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301004072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 362\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301005072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 363\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301007072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 364\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301008072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 365\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30763010ff072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 366\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020104052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 367\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020105052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 368\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020107052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5", + "becb9ec797\nflags = InvalidAsn\n\n# tcId = 369\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020108052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 370\n# changing tag value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d0201ff052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 371\n# dropping value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 306f3009060006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 372\n# dropping value of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3071300b06072a8648ce3d0201060003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 373\n# modify first byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307630100607288648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 374\n# modify first byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d02010605298104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 375\n# modify last byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d028106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 376\n# modify last byte of oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b810400a203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 377\n# truncated oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06062a8648ce3d0206052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 378\n# truncated oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06068648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 379\n# truncated oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06072a8648ce3d020106042b81040003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 380\n# truncated oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075300f06072a8648ce3d020106048104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 381\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3074300e06052b0e03021a06052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 382\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30783012060960864801650304020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 383\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b0e03021a03620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 384\n# wrong oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 30", + "7a301406072a8648ce3d0201060960864801650304020103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 385\n# longer oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106082a8648ce3d02010106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 386\n# longer oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106072a8648ce3d020106062b810400220103620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 387\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d021106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 388\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a3014060b2a8648ce3d02888080800106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 389\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104003203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 390\n# oid with modified node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301406072a8648ce3d020106092b810400888080802203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 391\n# large integer in oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301906102a8648ce3d028280808080808080800106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 392\n# large integer in oid\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301906072a8648ce3d0201060e2b8104008280808080808080802203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 393\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106082a8648ce3d0201e006052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 394\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106082a808648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 395\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106072a8648ce3d020106062b81040022e003620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 396\n# oid with invalid node\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301106072a8648ce3d020106062b808104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 397\n# long form encoding of length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3077301006072a8648ce3d020106052b810400220381620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 398\n# length of bit string contains leading 0\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b81040022038200620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 399\n# wrong length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\np", + "ublic = 3076301006072a8648ce3d020106052b8104002203630004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 400\n# wrong length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203610004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 401\n# uint32 overflow in length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b81040022038501000000620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 402\n# uint64 overflow in length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307f301006072a8648ce3d020106052b8104002203890100000000000000620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 403\n# length of bit string = 2**31 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b8104002203847fffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 404\n# length of bit string = 2**32 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b810400220384ffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 405\n# length of bit string = 2**40 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307b301006072a8648ce3d020106052b810400220385ffffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 406\n# length of bit string = 2**64 - 1\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307e301006072a8648ce3d020106052b810400220388ffffffffffffffff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 407\n# incorrect length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203ff0004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 408\n# lonely bit string tag\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3013301006072a8648ce3d020106052b8104002203\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 409\n# appending 0's to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203640004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510000\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 410\n# prepending 0's to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b81040022036400000004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 411\n# appending null value to bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3078301006072a8648ce3d020106052b8104002203640004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312510500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 412\n# truncated length of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220381\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 413\n# Replacing bit string with NULL\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220500\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 414\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002201620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 415\n# changing tag value of bit string\nprivate ", + "= 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002202620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 416\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002204620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 417\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002205620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 418\n# changing tag value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b81040022ff620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 419\n# dropping value of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3014301006072a8648ce3d020106052b810400220300\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 420\n# modify first byte of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620204c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 421\n# modify last byte of bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312d1\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 422\n# truncated bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b8104002203610004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed0312\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 423\n# truncated bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3075301006072a8648ce3d020106052b81040022036104c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 424\n# declaring bits as unused in bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203620104c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 425\n# unused bits in bit string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 307a301006072a8648ce3d020106052b8104002203662004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed03125101020304\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 426\n# unused bits in empty bit-string\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3015301006072a8648ce3d020106052b81040022030103\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n# tcId = 427\n# 128 unused bits\nprivate = 4b065d2dbbad95d7eebed00a3e79f772ccddfd93101c1b1f393e8adc465d94bc21346d8f341907a3c27a2562dcb49a3a\npublic = 3076301006072a8648ce3d020106052b8104002203628004c2bed48c5e15e8208411b1a14c77c440b9a8c3b6b2af6eef05e4fbae13cfe7ba5e9af208c54e3035e3b4559f97b0f2798dbe522a47ee950419b5faa273d24ff2748a8349c591cc80871acf3c6702cce129c68351a713207a69f02b5bed031251\nresult = acceptable\nshared = 40c344fb1185a5a97dd00b114f1b9c5ce4009f90c593f236fe465518f9ff27326a421e05b5bc1bfe3768d5becb9ec797\nflags = InvalidAsn\n\n", }; -static const size_t kLen65 = 277731; +static const size_t kLen98 = 333824; -static const char *kData65[] = { - "# Imported from Wycheproof's ecdh_secp521r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.4.12\n\n[curve = secp521r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 1939982b529596ce77a94bc6efd03e92c21a849eb4f87b8f619d506efc9bb22e7c61640c90d598f795b64566dc6df43992ae34a1341d458574440a7371f611c7dcd\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040064da3e94733db536a74a0d8a5cb2265a31c54a1da6529a198377fbd38575d9d79769ca2bdf2d4c972642926d444891a652e7f492337251adf1613cf3077999b5ce00e04ad19cf9fd4722b0c824c069f70c3c0e7ebc5288940dfa92422152ae4a4f79183ced375afb54db1409ddf338b85bb6dbfc5950163346bb63a90a70c5aba098f7\nresult = valid\nshared = 01f1e410f2c6262bce6879a3f46dfb7dd11d30eeee9ab49852102e1892201dd10f27266c2cf7cbccc7f6885099043dad80ff57f0df96acf283fb090de53df95f7d87\n\n# tcId = 2\n# compressed public key\nprivate = 1939982b529596ce77a94bc6efd03e92c21a849eb4f87b8f619d506efc9bb22e7c61640c90d598f795b64566dc6df43992ae34a1341d458574440a7371f611c7dcd\npublic = 3058301006072a8648ce3d020106052b81040023034400030064da3e94733db536a74a0d8a5cb2265a31c54a1da6529a198377fbd38575d9d79769ca2bdf2d4c972642926d444891a652e7f492337251adf1613cf3077999b5ce\nresult = acceptable\nshared = 01f1e410f2c6262bce6879a3f46dfb7dd11d30eeee9ab49852102e1892201dd10f27266c2cf7cbccc7f6885099043dad80ff57f0df96acf283fb090de53df95f7d87\n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 3\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004014c643329691ba27459a40dfe7c4ce17b3ea14d0cd7aa47b01f1315404db51436fbbfe6de0842e0f7e1265f6ff3aca28750677d3370b2fb2a6ef497356f4b95811201051b14178639a09a41465c72d3743436ee1c191ff7388a40140b34d5317de5911ea03cdbb0329fdeb446695a3b92d437271a9f3c318b02dec4d473908158140e97\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040029cd32125c23a41af24fd4b729da0faacbc35516ef0ba59096602571693cd282e26d67e18ef4643d0f6f158d7370d3394ca9a8de7938032ac178c6fd34e3702b8d008649834e2b41be3a8b7510bfe570f4c67075943cd0cbb9d9e1d1da52618b5b96d6aec9b650daf1ca6624c13e5116302b9c79c8c4d3d351915d1e8e1ab6ad76098e\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 5\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040032c6f06ce6a15ea064464d35aa368d299c9a9e1e368f694aefb603876248f898f223ce0217bef37d61eb09b27c93187cf8e61ba7b14e3c9bee692b06ac6d95f836019fd19f8480e21c63211d48d45f96f6365cf55f958e1a0fe7ea6b6b9ff230a87b70bb1b14d3a5fb6669a91641c6acf4570c1d3a9e709913b7fe6b35ff81c394d6a7\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 6\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f7eb96e64b1a62daf9e0801bfd96a0b15b68e5f5cb3e90b434495a473907338e53098e1c2e493335d09c6aae6fdda0345b98aaed588f2abe82910713fb6c20252901396b17cf250bc018f4cead097e7e09863f14cf1239b065e57d884949eee141926f7e7c9f7f34cf0536368767bc0e1ab5142877293a4c722693a73fe14a5390af93\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004006ddf9b10965d5fc129e96f7a37667ccf66cc44384772906fedb21f9de4629e01aaa09ac7c9866112064bbc9bd58ebc123ab2fe19d8fed1a056d27bfef0630509c7001c441311ef20a16346332ea42d5c65788d68f6817b0267fcab11ea9c948ed108115dda8e823a380b601460742d3772d6424c67b240da24772ff0d2ccd9a1e0cea6\nresult = valid\nshared = 000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff0000000000000100000000000000\n\n# tcId = 8\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004007a8c547268c948b626da636cf54428ea2ab23861d499a84ad7be1cf691b92872a06e26c6dba08ca9ed386f83d396156d5fa023f57d5ea6440ec7401dad2c08ad70018c3815b1b9a2e42555419a6c19043fa2b0ddcc4b5a6e372fee9fcb227d85bad704687e7e1a818b612d5c046cd75972f7a2dd5c9a200ac5582cd59fec47ac525ecf\nresult = valid\nshared = 00003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 9\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040029153cf062f88f303e5d6f9aac968bd901076d5994ea7f831833b1e69b67e9e9fe20cf9c5623e00e0b9e3592fca2a03324b5df7c93186aff697aca864600d44ecc002801a62e2f4106f34106da23dc93d50e3e975a1d47510021835290649b7a4125109f656b6b0b5bd00b24d84ea1ba4e1ed49e61c526fb1011005131caee7ee0501e\nresult = valid\nshared = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 10\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400a61eb994e28722c59b3c6007dfdf8b37893f6350f461b26a00e1a45104314aae9989da87e4facb2c4ef721185b7d96d9a45a28a102756501a1acc5d329a21bbf73010e8d0e12f5a9a40e0d59c90ce73043d39730aeadd3788e31d7c2bb62a1166161994664afa658ce2e60a13f45f27f914307c8d6f8d4ed16ab041b8f69908a62782f\nresult = valid\nshared = 010000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 11\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004011dd497b30c73709906b164a9a79dc7f2a98c0148ed63016bb95243834fbcdf8eb74b0ff652d54f59f31aef51da6e8974d363655b1da138dc4de0f2a8d800f475ae0057bd4b84607400d863ffbf45a3cf58999ee24ba05e93eca7b0e4ae760eb1733559a45d15579d3370d716ffa3ec4bfdae418e32fb06138dfca213720a938577610e\nresult = valid\nshared = 01ff00000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000\n\n# tcId = 12\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401283eb93fa369fe7012b647d21e0a97cf9950e5fbed819ef56158f20c8a9473a418eccbca4dc2b47f4cb6d322f917005859bf221e84ac9827cab82a801c627fb1ec0075c480cbafb352fcaf93baf23a1405fd81febe09729a908d1077e177dd8993d94b251a0d52652da3edb6fdf864e80cd51540e73d0b5107e3433576dcaa4e18db43\nresult = valid\nshared = 01ff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff\n\n# tcId = 13\n# edge ca", - "se for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400173beefe35ee868d497ff6601628f65ce18a1591f7e4a3a406622f3f508e2da68f101ed02febc38418c6ddfc26a5ec9848c42792463b1e945f9e167db34bdf2d660053070647aba7cd60eb295ab81a268a3903f393c5d28bbc5e022351c377cd84f02c19deb36442372cae1332e92f95ba60b6c852e0de0718e89d24e43cd479c9fb11\nresult = valid\nshared = 01ff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 14\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009829cd5432687739ab6ae10af8ea73d2cb53b81ebb06b5961b7badc1676b3ef7b00454f7cde56774a01312d574a9193c1a5fe5336fbe62623ad9bf81143789f9f90012f955697ed578207197bf9aac3896521615dbacc8dc665d4f1715b08439f49c2aa6ed337023ffccc5075a85944936826db92f919737ca3afeadba1847084bdef7\nresult = valid\nshared = 01ff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010000\n\n# tcId = 15\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040126e3c959cd41120bb83693b1d6a034b385137c1bb3213b776122fed96056e329885718a73bee639c0ba4b68818682f498ce5496925002bd7652516405fcc4fecad0073a9c6e3b0c694bf7cc8ccbbd09800e81e3548ba44a0c2381cef0b07bf702a19054bb5d717a1b79294609cbdafd4e2018064f7b2c4c204d818eb7ce521c3268ce5\nresult = valid\nshared = 01ffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000001\n\n# tcId = 16\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040153dc481ab3c5dc8decd24ceaee1bec77f59f21f7f31c19538af047d281ac9e2567933fd3d21096b185d4098919571931bb9b0be7197995e2fbaf21c8a10007ade001ad69f08fcae164390be826256b50fae47502ce0e9ca46af0c490cb4033c886f88661a99ff2bd3c9c8e7da30faf2b4c769edc5831810ac05054c97e41063f496e1f\nresult = valid\nshared = 01ffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f586611c87150288c3e86116c5db94a26718978829d701ddac05e9b0ce22dee4b18e95f60cba783ed3384da373deaefc57b8265d3a34eeb458bf24b9d82be32819008456e0f1d80492ef0078cc246d32fc7c7fb6720b4d458b51b2098d35746752b0ef0345bd0d342dfee6dd2f12ed12b34bd95d058c2811fd479d2dde32180e6c9ef2\nresult = valid\nshared = 01ffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc000000080000002\n\n# tcId = 18\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004015edc87fd499a73eabffd14d2b6a70a8fb69b6a39d0d9c4dda2337b53cc72e49a9e3d5a2d9e8930cfa11852dac33443227fba6684bd74732e6879884b6ef9dae98f010eeb8d2e3360ea9726628085268af3f2a05ad41235d0a892098bd661b636f7ef0a820282906eda3f1ff1980b98fb5937228e9edcd6332e3641216c7307e7f3f452\nresult = valid\nshared = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\n\n# tcId = 19\n# edge case for shared secret\nprivate = 0a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040131b43002f7e687eec1ecf6a253c2ccc9e48f04d86fccd18fee0d2d22191f1ea539c40d521970b4709dc03986f647e0e8bb3340cf8a3e643a3541035437cf25f01500b27a55ac45f0296f8c9656bcfd52b5cea9f4115c06e4c64319609847d45e92418400e7868672c0d3e6e5e6e004a7190476ed77cfc33ad19a4bd2c615ad9950f374\nresult = valid\nshared = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n# tcId = 20\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d20ec9fea6b577c10d26ca1bb446f40b299e648b1ad508aad068896fee3f8e614bc63054d5772bf01a65d412e0bcaa8e965d2f5d332d7f39f846d440ae001f4f87\nresult = valid\nshared = 0053bf137fee8922769f8d0fe279caa4dac9c6054ad0460995588a845d0a959e24bc0fc2391a2b92f7bd400f50a11a9db37f07bef7fa8dad2a903fcf534abc8736f7\n\n# tcId = 21\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010e59be93c4f269c0269c79e2afd65d6aeaa9b701eacc194fb3ee03df47849bf550ec636ebee0ddd4a16f1cd9406605af38f584567770e3f272d688c832e843564\nresult = valid\nshared = 01c95ac417c90a520149b29105cdab36f528a23efb5621520dbdafea95a7d43499c4c8be02cd1c2de000da18104fa84a1e9ece6386f0e0efa5234a24595d7c4c96f4\n\n# tcId = 22\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200d9254fdf800496acb33790b103c5ee9fac12832fe546c632225b0f7fce3da4574b1a879b623d722fa8fc34d5fc2a8731aad691a9a8bb8b554c95a051d6aa505acf\nresult = valid\nshared = 01b47ec41e3a5abd9dd9808fc04d9078cbed72b9eba98d3c1ded70a29938f0efd5a27a7113ff721f122cb17411de307a355c685074f5766b6d1a033d2fa188c945b6\n\n# tcId = 23\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000005f880f50ec94bfac6658fa2fce05945c6a36b266407b6fbd5437a83e2f2f9b9c50a734872e48e70df65457f13e47d06c6b8b29f4735acf105ea63e051904d18aea\nresult = valid\nshared = 013aefe3245728a08c904fe7d61cd9c2fdac63f29cf664d8f161bebacb93f8a710e9692f9689480ad498de00f00061e40e46e76e4754c1130ef4217a58933e0b1dc6\n\n# tcId = 24\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff000000000000010000000000000000f33ffc45da3eac1baab727ab8fd355cfa134c42047d55262651654fb50df7e9a5a75f179c8c86c4388213b5687dc43dfebb37f30128703c44ccd5c3284833b8717\nresult = valid\nshared = 0168df272d53e3161926168c4aeab5f355b8d2a6689cfd567f2b6eb2011a18c775ac2a21f8dd497f6957217020b3b1afcb7021f24fccc2523be76a2bff44596e5a14\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic ", - "= 30819b301006072a8648ce3d020106052b81040023038186000400003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00cd2839d857b4699f5c8e8a0194786e26a862f086b4ba80746ae5225ed3aa68f96b7aaec55225830bb98f52d75221141897ba49d7a31ebbf0b6d7d31352e5266190\nresult = valid\nshared = 013db1b9241b23d33860d32dec37a79e4546a41afdfdd9c438d04e1f8b566ac8d9d3f572c293e96943722a4ee290e113fffaa82a61867d9ca28d349982354c9b256f\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000813d9829119f42ffa95fea8ba9e81e4cd6a6ca97fb0778e12e5f5dfe35201dd4cca8eca0d2e395555997041381e6ac1f18ddf4c74e0b6e9041cfdca1d1c103091\nresult = valid\nshared = 01d2bbe9f754584ebbc7c7ad74136d1c8a144948948aa8be49989dd9b4c514db2e2ab1e0713ad1699f632dd2cea53da218ed549f030a113e282fd9e3be462d9aba84\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff00878ad597d290db2cf660594aeed0f9b7c8dd68451d2d1b2cbc816b1ec4f35465b3964aff2edf1255163f5fca580132f85cade2887a017e7cd0b37196ad85221107\nresult = valid\nshared = 000f37a2e2caef54fff4126c0fa96e7c47f0cad74626ef91e589e12d2e1e8c221be7295be9dc2712b87bb0aa0f5880b738bc1242f2ba773bf9eb2a54e3c1ca4758d7\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff00000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000010000000000000000000000000000000000b5e1191b449fa1ebdbd677daa48f90e2d1d6c058c877087cafd9364d99dbb283c68402e6e6c5f5411b2ed42824d8b280ceb910aba6847883a7e3780e2132af41c1\nresult = valid\nshared = 017aeb254d9c8c8ee06215ff33811357da73bf7f6dd6d7f8f176d62c065a88a9005f680c630e9f2763585ea2ee76b6e4ab45e673f814ebfa95947c0c63fb24fa6e9b\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00207513d615656a1cc7505c18aa21b08e2b1d5a841de0816cc29c004efdb2d902ac1a7bb05e20722b576b64a3ddf4d2486421ac706bf4a424f252386368a5340fb6\nresult = valid\nshared = 0061bed42248a37b4625ef04c4f9c7ef69ee3c6f9503378351fcab1b8ce1343206997eec1b88449eb6f7355711ea1a818a486ee30a24126241a7e2289267cf5dd61f\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff001fe800c50e54012b75a33e4be7d07c8d60f29680a395e951a6a31c5096b0ea928fc2cbf327dd784dc0a7ca46ea73992b758b5641364b4aba39e93798a4d925a008\nresult = valid\nshared = 001067d9104e296ef42b944587de11b10df05d2d959ed44cac9e7ef1c7a05d90819c43bc79c7397918f957cc98db931763bbeb1bdfc35865e8a359a013f13d60c433\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010000008dd18a1f5e482140be79bb65a21ad60c8987e532c84345f0135affd46ec71ef02b1ca3ad56f301d955fa306c122d441d6fedcf8b855ef256350bf69d23a7207ad9\nresult = valid\nshared = 00b779d83035cf7bb0bb04c7b2f46d08f6791f0d1542c9bcce7250e772b12ad8e38fce1d2b063a06f0fa3a1b072dd976f5f8542979903075162f1f5c6ba3b76cc45d\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff800000400000100566203dd325a081c4441f001f780365874fd3d0c9bc47227481afe76a93ae1bfde63af972203abfe22c63b80e83f7cc2184c3cb8cfd0152c54324c4759fd1f9a50\nresult = valid\nshared = 01afe5d23733728b79c743933b9ba7dfec5ed19b7737e393908a1d000918aa795d1ce0ad533983d018f927b35d2af6463356573f387febd75911a49486202ca69d3a\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff00b11c668fbd549f36889f7b63434051da26f15705839136b1b14a09152d7a182ea7806c35478a32d3aa3c9c1627a61519ebec71b36fa77449025b8829e27f307834\nresult = valid\nshared = 019612aeb386febb1a28096fe5b2f682dead02389785225b80a27df439510d08349a193839525f248b7f9bcabfd3dc8da8cc1724022299b7b5e72399d89464b82e44\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000008000000200aa75efc0a8daac1d73f32c9c552414bccf44af8e74331b47439e7dcc49a135b3ee61e9f69717d89b4bba3567a195aeda13fbec634bf2984b5ec6b6f80f5978ed5a\nresult = valid\nshared = 00570673f87adcef49c1f011e8b9f1e11f7fd3b3c93114d08d3f515aa4a895a6c701c523063bdc13ad1db0a54f6e7b476fe10db2070441befc58c8cff3c08ef76e59\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0010e59be93c4f269c0269c79e2afd65d6aeaa9b701eacc194fb3ee03df47849bf550ec636ebee0ddd4a16f1cd9406605af38f584567770e3f272d688c832e843564\nresult = valid\nshared = 0016aaf228b0aec190d4e4e5b8138ff9cc46d705da1bf002901c6ab420f59314d5b641712b14ef3e4fb125652c47888676804fb5575b741a8408c5625bfccff4fdda\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 12bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00d9254fdf800496acb33790b103c5ee9fac12832fe546c632225b0f7fce3da4574b1a879b623d722fa8fc34d5fc2a8731aad691a9a8bb8b554c95a051d6aa505acf\nresult = valid\nshared = 00a5d6dfda2b269f4ab895a41c3b71b6ba10d5c9f0d9b3e730275345e4721594abfd39464c227716ded8ef3e60bb1ca0b551716e3f6eebb48d5ce8e0ab58cb1b73c9\n\n# tcId = 37\n# edge case private key\nprivate = 3\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7", - "655c50b2b7835f314\nresult = valid\nshared = 00f2246431b597930f2eae61e9aabbd39f8f6ae97c3cf2521a6aeecedda10b5ef5f3b2eb3a8906d02f51d244710aa9e19cc0be21db920132be1c91deb85e466c28df\n\n# tcId = 38\n# edge case private key\nprivate = 1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 00347c51f587c726070bdeb9173d0a547427ead3f2c8de62d9ecc3013285f645d220931520bcef85d08cfb6786045745fbfbfb1924c44a89d06676131a965677272a\n\n# tcId = 39\n# edge case private key\nprivate = 200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01c41dc4437c2f2b94a940711b3a691723397a1f83d6bc0c67ddc7a657160925c7f85bb4eb3842b60b2610ddb7c0b8676267710e58359a8750843c6d8e25d48d1cd9\n\n# tcId = 40\n# edge case private key\nprivate = 0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 006a239cdb7a783840658d5f314bfe5c51e806a4bf1236f8421265bcc503c673eb16c5c2b38b5717fa04ee7dbcdeb15c871711507abb7557a8a8c7b3250141e854d5\n\n# tcId = 41\n# edge case private key\nprivate = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 0112dbf9713aadd478e4f2ebcb058f05b512b1959c7da1994f851f373ce8c341d39c6843373f6fe559905953e1147640159437953c571961c09bad157a8e1a5bf476\n\n# tcId = 42\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47adbb6fb71e91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 003eca2210c8623105085aa284d119f3d716730595c6291aa89bf32a95e8a5fdc64f3d76e92494a43a9dced12d05b6dca4ffe649b32ac12cb0202e702dc83a2cb277\n\n# tcId = 43\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb5fb71e91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01c4cae9fbfdd45de51d8525e8447a7553c35cf358f1346f1d79666887bb749a3ba0de62e1866b47a447d53b6f1ca5a33ec94507e2cfb65544f5a1195fc6b4dc5810\n\n# tcId = 44\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb67b71e91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 008073b4796e748f3d0de5e85b22aed463f1a6aecdb336bc287b50d139e3591ef5f86b78c3f6051467755f059f295d758075347d657aaae02383838bb96071eacbd4\n\n# tcId = 45\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71d91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01f11ff8983792d4a790d0de4b56d078b9033ad6318a440e8119342937cc48a39375150ab2cf98273b0fe35d5a3af5d84322a685e89f2cb378a99b9b7bac87e44952\n\n# tcId = 46\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138631b\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 00286cefaaf38ca4c6657eb9b187d8614d51775fd71c1a79b4c0ef1a0d4ce72b6f5b2bc854a4e78283530942a3f4fd2a8586d5ea51513c89d3d29de5de06321e118e\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 47\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138639b\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 014790de14c481f1336fcb7d33a8bf8e23eb594cc48608e9edfe0e326e106b67e7eaa3f04ec9985599178f632a5ee6419e11217060e9fcd5958a43882bf8cd3be6ba\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 48\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863db\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01ae775dbc4096a3aea7977b1a0af4b2830ecf9ca927a6247fba4cccb46b3f71d0e7abb8dda72d1c1ee7bb5b875b4773cc8df40f732819c4147da330775d1742ea35\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 49\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c", - "9b8899c47aebb6fb71e913863fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01979fb05e068a12a3f20cfdfb9eaee9f22b356edcc7655383ed38124b86814f86a6f2216a34f3fc2299d403ee42408f95d08c5c6cd11db72cbf299a4a3c2545be25\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 50\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386403\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 0197ebe26798bf67f06ff0282773af75115531f41d94c093d87481b76bef707bc222f2d6672f84a00fa20c5ed27027ab4006b68d93ee2151016c9ddbe014346272e2\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 51\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 00f2246431b597930f2eae61e9aabbd39f8f6ae97c3cf2521a6aeecedda10b5ef5f3b2eb3a8906d02f51d244710aa9e19cc0be21db920132be1c91deb85e466c28df\n\n# tcId = 52\n# edge case private key\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386407\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01c168314cdc85757ade34a52a9e5379ffa5968f084b7e404939a8033a0fc698e26211754b9b2c04cf8a1420abe6e986ef1a238bbb91dd402b72e0ed50a876f1a83e\n# The private key has a special value. Implementations using addition\n# subtraction chains for the point multiplication may get the point at infinity\n# as an intermediate result. See CVE_2017_10176\n\n# tcId = 53\n# CVE-2017-10176: Issue with elliptic curve addition\nprivate = 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863f7\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\nresult = valid\nshared = 01bc33425e72a12779eacb2edcc5b63d1281f7e86dbc7bf99a7abd0cfe367de4666d6edbb8525bffe5222f0702c3096dec0884ce572f5a15c423fdf44d01dd99c61d\n# This test vector leads to an EC point multiplication where an intermediate\n# result can be the point at infinity, if addition-subtraction chains are used\n# to speed up the point multiplication.\n\n# tcId = 54\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 55\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 56\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 57\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 58\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 59\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 60\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 61\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "ffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 62\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 63\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 64\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 65\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 66\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 67\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 68\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 69\n# point is not on curve\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 70\nprivate = 1c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 3015301006072a8648ce3d020106052b81040023030100\nresult = invalid\nshared = \n\n# tcId = 71\n# public point not on curve\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fe1\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 72\n# public point = (0,0)\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 73\n# order =\n# -6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd166500242fe000000000000000000000000000000000000000000000000000000000000000005ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf7020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# The order of the public key has been modified. If this order is used in a\n", - "# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 74\n# order = 0\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 308202043082017706072a8648ce3d02013082016a020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650020100020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 75\n# order = 1\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 308202043082017706072a8648ce3d02013082016a020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650020101020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 76\n# order =\n# 1598335257761788022467377781654101148543282249044465229239888363328190330275719844327554513312228302828260696579553960150541916632196023208175974174\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820241308201b406072a8648ce3d0201308201a7020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650023e01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# The order of the public key has been modified. If this order is used in a\n# cryptographic primitive instead of the correct order then private keys may\n# leak. E.g. ECDHC in BC 1.52 suffered from this.\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. Howev", - "er, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 77\n# generator = (0,0)\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f0004818504000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 78\n# generator not on curve\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16652024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 79\n# cofactor = -1\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090201ff038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 80\n# cofactor = 0\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc", - "0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020100038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 81\n# cofactor = 2\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020102038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 82\n# cofactor =\n# 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820286308201f906072a8648ce3d0201308201ec020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 83\n# cofactor = None\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820242308201b506072a8648ce3d0201308201a8020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a n", - "amed curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 84\n# modified prime\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820244308201b706072a8648ce3d0201308201aa020101304d06072a8648ce3d0101024201e99d17d498f3c68ed8e50430ec4f36c14dbeeaf7652e985636bf0548ffb981e9e011607fd0059cd4fe51e882f19a3839ebe7f1d7376cb761431b214ed76970cc0130818604411662e82b670c3971271afbcf13b0c93eb24115089ad167a9c940fab700467e161fee9f802ffa632b01ae177d0e65c7c614180e28c893489ebce4deb128968f33fb044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f0004818504000000000000000000000000000000000000000000000a14517cc6b91f8000000000000000000000000000000000000000000000000000000000000000000000032c006b0f530bec5bed532357d436727699f0e3c5b9366f1a435be640b97cd43d937655b1f157c7d0c7df25011fef7c3ab7d8e556e6125b59b847fcdd89a4051796a797024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090201010381860004000000000000000000000000000000000000000000000a14517cc6b91f8000000000000000000000000000000000000000000000000000000000000000000000032c006b0f530bec5bed532357d436727699f0e3c5b9366f1a435be640b97cd43d937655b1f157c7d0c7df25011fef7c3ab7d8e556e6125b59b847fcdd89a4051796a797\nresult = invalid\nshared = 00ebef6771455911ee573c183e990f7086650f9bafdb722c896751bd2c0f87959c78a39382d10fdfb46fd3515c8feb590943dd79778b13adbc7f670ba2a009753483\n# The modulus of the public key has been modified. The public point of the\n# public key has been chosen so that it is both a point on both the curve of the\n# modified public key and the private key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 85\n# using secp224r1\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 304e301006072a8648ce3d020106052b81040021033a0004074f56dc2ea648ef89c3b72e23bbd2da36f60243e4d2067b70604af1c2165cec2f86603d60c8a611d5b84ba3d91dfe1a480825bcc4af3bcf\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 86\n# using secp256r1\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbf6606595a3ee50f9fceaa2798c2740c82540516b4e5a7d361ff24e9dd15364e5408b2e679f9d5310d1f6893b36ce16b4a507509175fcb52aea53b781556b39\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 87\n# using secp256k1\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n\n# tcId = 88\n# a = 0\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 308202033082017606072a8648ce3d020130820169020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3046040100044109a88e6f050cfefa0b49fac45689b6b93ad4fa3b65db7d2f4cb31b67fe056a100066dd80dc5f785d27f82e3369eb22ab2c5729a9e5d9906a1dc31e02f84026484a0481850400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\n# A parameter that is typically not used for ECDH has been modified. Sometimes\n# libraries ignore small differences between public and private key. For\n# example, a library might ignore an incorrect cofactor in the public key. We\n# consider ignoring such changes as acceptable as long as these differences do\n# not change the outcome of the ECDH computation, i.e. as long as the\n# computation is done on the curve from the private key.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 89\n# public key of order 3\nprivate = 1396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820244308201b706072a8648ce3d0201308201aa020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308186044163dd8adacb707513ee414c8ef43488d841c6dee055e7524338729de3f0f80d5a7f5a2f9451681187763175d5fa44b124a736c1e335ab2bc44e90afd9d73afdcf81044139acb17f9aea561444370f028fabe3abd6abc36dfaecd355019c030fc56571cb027a33c4ded31a03d257c8e05180a0199487dcc6bfa009db62b36021c7ca0767720481850401955425b4109a40c74ada7d7fb4fe7b160a9fc16955847666b", - "6450b0905ca920866e52664275b0b3cf7b9e2628dde865ed6ce3c8596638c1acbb71608dd81005b1001197944c6bf8dd7b06144a5b7cd32746aac97c8a5bc6274acd571fece0c14c9e57122e8e6d7d70db21d55d0123f004fd9698067392de468abfeef8890103b954e51024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000401955425b4109a40c74ada7d7fb4fe7b160a9fc16955847666b6450b0905ca920866e52664275b0b3cf7b9e2628dde865ed6ce3c8596638c1acbb71608dd81005b1000e686bb394072284f9ebb5a4832cd8b955368375a439d8b532a8e0131f3eb361a8edd17192828f24de2aa2fedc0ffb026967f98c6d21b97540110776fefc46ab1ae\nresult = invalid\nshared = 01f1f914da0c64135b9c4334c82393abf73d3112a1197581e9c8e97b2e3c02696f6d445400aefb87eda50aced68209f961e1af3fa37efbde303880a4371b776085ab\n# The vector contains a weak public key. The curve is not a named curve, the\n# public key point has order 3 and has been chosen to be on the same curve as\n# the private key. This test vector is used to check ECC implementations for\n# missing steps in the verification of the public key.\n# The public key has been modified and is invalid. An implementation should\n# always check whether the public key is valid and on the same curve as the\n# private key. The test vector includes the shared secret computed with the\n# original public key if the public point is on the curve of the private key.\n# Generating a shared secret other than the one with the original key likely\n# indicates that the bug is exploitable.\n# The public key does not use a named curve. RFC 3279 allows to encode such\n# curves by explicitly encoding, the parameters of the curve equation, modulus,\n# generator, order and cofactor. However, many crypto libraries only support\n# named curves. Modifying some of the EC parameters and encoding the\n# corresponding public key as an unnamed curve is a potential attack vector.\n\n# tcId = 90\n# Public key uses wrong curve: secp224r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 304e301006072a8648ce3d020106052b81040021033a0004af6dd5b71a8c1cf921e36854ae091aaa589d337e740e8579f816eb9e36b03eec5cf956d0fdd2fc1687335507fc1c4a5717d3b5b8ea8340d1\nresult = invalid\nshared = \n\n# tcId = 91\n# Public key uses wrong curve: secp256r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000453366db79b320781936df61bb55d4499949d813ee5abaa5dda70da4f97f68228ccc69d7cd0b7266cfc28d0dcafdf3e83738cc611acb08f8b896c4ecf82dd65ae\nresult = invalid\nshared = \n\n# tcId = 92\n# Public key uses wrong curve: secp384r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3076301006072a8648ce3d020106052b8104002203620004aa45c13ce3cfea8538422712903edc0ce56df74ede0776e843555a786f9738de1943dffd729addfd4772169751d7765a45b5bb540a47d198f4c8c7c21e67560c1e12f70b64520109bb8858a3f8d6bb4012003431db0778633313fdb9464c47ec\nresult = invalid\nshared = \n\n# tcId = 93\n# Public key uses wrong curve: secp256k1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3056301006072a8648ce3d020106052b8104000a0342000475e01a1555380be188d69aac340a4675e4a6f73d63976a1075249827d8ecc2a31e65ed1eb591954e33a38f68ef8aa6c930229d8755e53257602b3eaa87de6f02\nresult = invalid\nshared = \n\n# tcId = 94\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a0004905a06d5bc093697155aaff67305976a769b904d8db9573c4be361626def2ffe1d5ec14462c02e5ffb24fb3edb2b6c77a5cfee2492db757b\nresult = invalid\nshared = \n\n# tcId = 95\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 305a301406072a8648ce3d020106092b2403030208010107034200042b87df1b6a5cbc4c4a184b7eec9b6c0483f7b80e6477b29649630c37481876bb0e3423f7a00d469320b7e60c88370979064efb9ceb8b387aa87a7c6941ccd9ed\nresult = invalid\nshared = \n\n# tcId = 96\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 306a301406072a8648ce3d020106092b24030302080101090352000470df62394ee036eefbc8ef11a9a5f3a8af659016f29e7125e52cfda0a74e52c7b21d18ac4375f5e4164c5338fa2f545a3fb2022f0e0686d5b4882958f72b1bb626e37093e3f19673968c237823327fd6\nresult = invalid\nshared = \n\n# tcId = 97\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 307a301406072a8648ce3d020106092b240303020801010b03620004808dc7b1c6d3ec470a7fe5d6144c9c3a8c92b116103aa2edbfce0b2c827312eebcd1350d09a739eac901af341487861b195270f671e0a758deb23222db4fe7983d42a785b35fd158344cd6483c4da5b409e77d0a284dfa9c3e0d91a4d275fce9\nresult = invalid\nshared = \n\n# tcId = 98\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 30819b301406072a8648ce3d020106092b240303020801010d0381820004aa11b560dc1e572f2374e5869210304d66d95b1d8ce40940157f5f5b4a7dc8a340f7c305d6bea289f5c430eb888e2a03528336aaf4680d9d153cd162e2229df330425025df2625b147568927f6acf704e4936f8989ff9d44f33ee22196e70dfd8711e8934d8d42abb4b67afcfee213c3ad5e5c83fcf4283d253d6c5c0e581970\nresult = invalid\nshared = \n\n# tcId = 99\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a00048d7a746de095728a8d83219e587040cb6e794d088ab6eab426638202579850b0f235edcf4eb8adcb51bf41878f6b71a1f2d4101022964340\nresult = invalid\nshared = \n\n# tcId = 100\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 305a301406072a8648ce3d020106092b24030302080101080342000424ad316bf41e4102dd7ae16311b64464df2d13ea68a11dd27a4445ed900962180ff8c627ed73f0c667863ee3a671e6ed1fa2781b51a229ee2cd21fbf69437d60\nresult = invalid\nshared = \n\n# tcId = 101\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 306a301406072a8648ce3d020106092b240303020801010a03520004548ce4997cc618800d3834dd4b3346e4559be066ab5d0cecd7123c4de940c168fecd3bae067fe3fc7aee875c9da0a86932f0779f42344470860c22dbc6f305eab792fc0874157e175c7d3c4d3bf54c4b\nresult = invalid\nshared = \n\n# tcId = 102\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 307a301406072a8648ce3d020106092b240303020801010c036200044fc2b35e3019a57a8ca6efe2ec1f72072c599a78c2725f7cfc2d9edf220b5f6abdb0c0d8d160182de451e26bcbb4e8c18726263e21ce56fb4bafaa1f186c745e2c8392ef8c5a1c03f5462ebbbcde0ffcc31e9a0b3e898ddb9c1c79e420fd7a35\nresult = invalid\nshared = \n\n# tcId = 103\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 30819b301406072a8648ce3d020106092b240303020801010e03818200047122f743122681ac73b0d611af86847d8bec654cf99e7eaf5d4f684e4078a8e61dc6d07e831ad02cd40d41dbdb6b0e877d960b78a5ac34c1e6ce7c483503d6de2eaddeffbfb3f144d29d13535a05815934186707146e45f64476bbdbc8645be973270a4c5e35d70ffd5eab2f08d1fb04762bc8aa80e999da14f744be9ff8c923\nresult", - " = invalid\nshared = \n\n# tcId = 104\n# invalid public key\nprivate = 1c1fb2cac9087a3397814b198a80e2ea5b437aac1b41e8a2bd8fef8700e4812aa817320e6e1e3865bd2cf75e43a78be5c27ff1c4b5f5019333cb37d0c9c4ff3ec61\npublic = 3058301006072a8648ce3d020106052b810400230344000200429cb431c18f5f4e4e502f74214e6ac5ec2c3f86b830bac24de95feae142ca7d9aa8aa5b34f55af4b2848f2e6ba6df4c3ecd401a1d7b2a8287a332b202196fadbb\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 105\n# public key is a low order point on twist\nprivate = 6619644155c449758f65e2dfe7ba89dee1e090c1d68b6342f43cb1ac000090a7f0408138c1de217990bb015cd1d95f1d884cf659f7324f2fe21eeba63ea988aacd\npublic = 3058301006072a8648ce3d020106052b81040023034400020108cbf3c9bf8e42135d87127556831076d84d5e549e645afda8a099249231b59b6c508dee4e91c9a543e90ebc82613f86cb1290e29102a0f2fdeb57bf4193fb4639\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 106\n# public key is a low order point on twist\nprivate = 0a257d97aa4e5195e2919c147c1639bb0da0cce479a036489006b7b8e7e885096066e5adc8fe7c45940c5a6b94d5065b966a45f099a0cecfe9cce1b3e99dca479f2\npublic = 3058301006072a8648ce3d020106052b8104002303440003011f2dca6b686e2141c11822e2d5439261583ce98cd6c4041c6d1be9e17dee33ea4a65c3e8cca6de50a30a39c788a585f1188bef0680a9c0264b3c8dcf494d0eb948\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 107\n# public key is a low order point on twist\nprivate = 0a257d97aa4e5195e2919c147c1639bb0da0cce479a036489006b7b8e7e885096066e5adc8fe7c45940c5a6b94d5065b966a45f099a0cecfe9cce1b3e99dca479f3\npublic = 3058301006072a8648ce3d020106052b8104002303440002011f2dca6b686e2141c11822e2d5439261583ce98cd6c4041c6d1be9e17dee33ea4a65c3e8cca6de50a30a39c788a585f1188bef0680a9c0264b3c8dcf494d0eb948\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 108\n# public key is a low order point on twist\nprivate = 6619644155c449758f65e2dfe7ba89dee1e090c1d68b6342f43cb1ac000090a7f0408138c1de217990bb015cd1d95f1d884cf659f7324f2fe21eeba63ea988aacc\npublic = 3058301006072a8648ce3d020106052b81040023034400030108cbf3c9bf8e42135d87127556831076d84d5e549e645afda8a099249231b59b6c508dee4e91c9a543e90ebc82613f86cb1290e29102a0f2fdeb57bf4193fb4639\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 109\n# public key is a low order point on twist\nprivate = 2a35258787f91ad0bd3432c3022e4d3ed349c8768a7e7caa1836022fc0c89a9073f6ce14d0990d5b7bb413061c7160e7bd566a5c89f14901b2cc19f1ad531f41e2\npublic = 3058301006072a8648ce3d020106052b81040023034400020009cc73141cf1843d2b2c95dc5cbc4d615c6da4814c1c7208615d8e78c7a8666aba1852faaa45a45d32bd0fde6ea78f262a96bf1e02949cea48c33c695103683048\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 110\n# public key is a low order point on twist\nprivate = 1afe5c77a626161fb2c25964c7895b9fff787099db83f077f05a4bfa320fb61f9315bb44d3fb9dd72225d9d993a18df82ac53fb4a5f86b23cb650e5e4778066f677\npublic = 3058301006072a8648ce3d020106052b81040023034400030047b9cf28e04b38796858545d60d6133fbdc20ede086e5d95111c982b8c276628235e536c075637a97c0a6c30d02b83b19e578203473eea16dfdeaeccb1dc0d9b19\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 111\n# public key is a low order point on twist\nprivate = 24ae709e1644e3087b52470c565268becbdbf97de59916763507d109c2e5b7c21727c64e9b560aa248d7bc9fe0ac95720d507263b7b2859b056ea165301cd599d5\npublic = 3058301006072a8648ce3d020106052b810400230344000300c18410f5727ee0101a52ef95c0ac455cbc65bf9967f0a2c419aa0a291cabad569f2337e102d0a9128f4212dbf9fa9e5a8f14ca7f28e82977281facdd9ca7a92c78\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 112\n# public key is a low order point on twist\nprivate = 24ae709e1644e3087b52470c565268becbdbf97de59916763507d109c2e5b7c21727c64e9b560aa248d7bc9fe0ac95720d507263b7b2859b056ea165301cd599d6\npublic = 3058301006072a8648ce3d020106052b810400230344000200c18410f5727ee0101a52ef95c0ac455cbc65bf9967f0a2c419aa0a291cabad569f2337e102d0a9128f4212dbf9fa9e5a8f14ca7f28e82977281facdd9ca7a92c78\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 113\n# public key is a low order point on twist\nprivate = 1afe5c77a626161fb2c25964c7895b9fff787099db83f077f05a4bfa320fb61f9315bb44d3fb9dd72225d9d993a18df82ac53fb4a5f86b23cb650e5e4778066f678\npublic = 3058301006072a8648ce3d020106052b81040023034400020047b9cf28e04b38796858545d60d6133fbdc20ede086e5d95111c982b8c276628235e536c075637a97c0a6c30d02b83b19e578203473eea16dfdeaeccb1dc0d9b19\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 114\n# public key is a low order point on twist\nprivate = 2a35258787f91ad0bd3432c3022e4d3ed349c8768a7e7caa1836022fc0c89a9073f6ce14d0990d5b7bb413061c7160e7bd566a5c89f14901b2cc19f1ad531f41e1\npublic = 3058301006072a8648ce3d020106052b81040023034400030009cc73141cf1843d2b2c95dc5cbc4d615c6da4814c1c7208615d8e78c7a8666aba1852faaa45a45d32bd0fde6ea78f262a96bf1e02949cea48c33c695103683048\nresult = invalid\nshared = \n# The point in the public key is compressed. Not every library supports points\n# in compressed format.\n\n# tcId = 115\n# length contains leading 0\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3082009b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 116\n# length contains leading 0\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3082001006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 117\n# length contains leading 0\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012068200072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this t", - "est uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 118\n# length contains leading 0\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d0201068200052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 119\n# length contains leading 0\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301006072a8648ce3d020106052b81040023038200860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 120\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 309c301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 121\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 309a301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 122\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301106072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 123\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b300f06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 124\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006082a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 125\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006062a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 126\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106062b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 127\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44", - "eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106042b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 128\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303870004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 129\n# wrong length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303850004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 130\n# uint32 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3085010000009b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 131\n# uint32 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03085010000001006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 132\n# uint32 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03015068501000000072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 133\n# uint32 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d0201068501000000052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 134\n# uint32 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301006072a8648ce3d020106052b81040023038501000000860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 135\n# uint64 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308901000000000000009b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 136\n# uint64 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4308901000000000000001006", - "072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 137\n# uint64 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301906890100000000000000072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 138\n# uint64 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301906072a8648ce3d020106890100000000000000052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 139\n# uint64 overflow in length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301006072a8648ce3d020106052b8104002303890100000000000000860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 140\n# length = 2**31 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30847fffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 141\n# length = 2**31 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f30847fffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 142\n# length = 2**31 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406847fffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 143\n# length = 2**31 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d020106847fffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 144\n# length = 2**31 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e301006072a8648ce3d020106052b8104002303847fffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 145\n# length = 2**32 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3084ffffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a", - "724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 146\n# length = 2**32 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f3084ffffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 147\n# length = 2**32 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f30140684ffffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 148\n# length = 2**32 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d02010684ffffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 149\n# length = 2**32 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e301006072a8648ce3d020106052b810400230384ffffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 150\n# length = 2**40 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3085ffffffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 151\n# length = 2**40 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03085ffffffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 152\n# length = 2**40 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a030150685ffffffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 153\n# length = 2**40 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d02010685ffffffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 154\n# length = 2**40 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301006072a8648ce3d020106052b810400230385ffffffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba0487", - "49b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 155\n# length = 2**64 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3088ffffffffffffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 156\n# length = 2**64 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33088ffffffffffffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 157\n# length = 2**64 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a330180688ffffffffffffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 158\n# length = 2**64 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301806072a8648ce3d02010688ffffffffffffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 159\n# length = 2**64 - 1\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301006072a8648ce3d020106052b810400230388ffffffffffffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 160\n# incorrect length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30ff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 161\n# incorrect length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b30ff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 162\n# incorrect length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006ff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 163\n# incorrect length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106ff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e", - "869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 164\n# incorrect length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303ff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 165\n# indefinite length without termination\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 166\n# indefinite length without termination\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b308006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 167\n# indefinite length without termination\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006802a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 168\n# indefinite length without termination\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106802b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 169\n# indefinite length without termination\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303800004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 170\n# removing sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = \nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 171\n# removing sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081890381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 172\n# lonely sequence tag\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 173\n# lonely sequence tag\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818a300381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115", - "b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 174\n# appending 0's to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 175\n# appending 0's to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106052b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 176\n# prepending 0's to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d0000301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 177\n# prepending 0's to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012000006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 178\n# appending unused 0's to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 179\n# appending unused 0's to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 180\n# appending null value to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 181\n# appending null value to sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106052b8104002305000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 182\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a149817730819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encodi", - "ng. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 183\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0250030819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 184\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500004deadbeef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 185\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03015498177301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 186\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f30142500301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 187\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33012301006072a8648ce3d020106052b810400230004deadbeef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 188\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03015260c49817706072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 189\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f3014260b250006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 190\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33018260906072a8648ce3d02010004deadbeef06052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 191\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d0201260a49817706052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns th", - "e correct shared value.\n\n# tcId = 192\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d02012609250006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 193\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301806072a8648ce3d0201260706052b810400230004deadbeef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 194\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1301006072a8648ce3d020106052b8104002323818c4981770381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 195\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301006072a8648ce3d020106052b8104002323818b25000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 196\n# including garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301006072a8648ce3d020106052b810400232381890381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500004deadbeef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 197\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4aa00bb00cd0030819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 198\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2aa02aabb30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 199\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33018aa00bb00cd00301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 200\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a13016aa02aabb301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 201\n# including undefined tags\nprivate = 18c3c384368133e46c", - "99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33018260faa00bb00cd0006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 202\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a13016260daa02aabb06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 203\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301806072a8648ce3d0201260daa00bb00cd0006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 204\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1301606072a8648ce3d0201260baa02aabb06052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 205\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301006072a8648ce3d020106052b8104002323818faa00bb00cd000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 206\n# including undefined tags\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301006072a8648ce3d020106052b8104002323818daa02aabb0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 207\n# truncated length of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 208\n# truncated length of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818b30810381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 209\n# Replacing sequence with NULL\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 0500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 210\n# Replacing sequence with NULL\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818b05000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# EC", - "DH computation still returns the correct shared value.\n\n# tcId = 211\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 2e819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 212\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 2f819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 213\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 31819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 214\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 32819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 215\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = ff819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 216\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b2e1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 217\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b2f1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 218\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b311006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 219\n# changing tag value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b321006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 220\n# changing tag value of sequence\nprivate = 18c3c384368133e4", - "6c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819bff1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 221\n# dropping value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 222\n# dropping value of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818b30000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 223\n# truncate sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 224\n# truncate sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 225\n# truncate sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06072a8648ce3d020106052b8104000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 226\n# truncate sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 227\n# indefinite length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 228\n# indefinite length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d308006072a8648ce3d020106052b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 229\n# indefinite length with truncated delimiter\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d5000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb860857", - "36115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 230\n# indefinite length with truncated delimiter\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c308006072a8648ce3d020106052b81040023000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 231\n# indefinite length with additional element\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d5005000000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 232\n# indefinite length with additional element\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f308006072a8648ce3d020106052b81040023050000000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 233\n# indefinite length with truncated element\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50060811220000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 234\n# indefinite length with truncated element\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1308006072a8648ce3d020106052b810400230608112200000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 235\n# indefinite length with garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000fe02beef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 236\n# indefinite length with garbage\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1308006072a8648ce3d020106052b810400230000fe02beef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 237\n# indefinite length with nonempty EOC\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500002beef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 238\n# indefinite length with nonempty EOC\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f308006072a8648ce3d020106052b810400230002beef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07db", - "f3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 239\n# prepend empty sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3000301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 240\n# prepend empty sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012300006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 241\n# append empty sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d503000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 242\n# append empty sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106052b8104002330000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 243\n# sequence of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 244\n# sequence of sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 245\n# truncated sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3012301006072a8648ce3d020106052b81040023\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 246\n# truncated sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308194300906072a8648ce3d02010381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 247\n# repeat element in sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30820124301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN forma", - "t are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 248\n# repeat element in sequence\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301706072a8648ce3d020106052b8104002306052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 249\n# long form encoding of length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c30811006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 250\n# long form encoding of length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c30110681072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 251\n# long form encoding of length\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106072a8648ce3d02010681052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 252\n# removing oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308192300706052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 253\n# lonely oid tag\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819330080606052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 254\n# lonely oid tag\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308195300a06072a8648ce3d0201060381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 255\n# appending 0's to oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206092a8648ce3d0201000006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 256\n# appending 0's to oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106072b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 257\n# prepending 0's to oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da2", - "2f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012060900002a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 258\n# prepending 0's to oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d0201060700002b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 259\n# appending unused 0's to oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d0201000006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 260\n# appending null value to oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206092a8648ce3d0201050006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 261\n# appending null value to oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106072b8104002305000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 262\n# truncated length of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081943009068106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 263\n# truncated length of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308196300b06072a8648ce3d020106810381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 264\n# Replacing oid with NULL\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081943009050006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 265\n# Replacing oid with NULL\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308196300b06072a8648ce3d020105000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 266\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301004072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd", - "2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 267\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301005072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 268\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301007072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 269\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301008072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 270\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b3010ff072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 271\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020104052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 272\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020105052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 273\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020107052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 274\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020108052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 275\n# changing tag value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d0201ff052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acce", - "ptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 276\n# dropping value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081943009060006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 277\n# dropping value of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308196300b06072a8648ce3d020106000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 278\n# modify first byte of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b30100607288648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 279\n# modify first byte of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d0201060529810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 280\n# modify last byte of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d028106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 281\n# modify last byte of oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400a30381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 282\n# truncate oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06062a8648ce3d0206052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 283\n# truncate oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06068648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 284\n# truncate oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06072a8648ce3d020106042b8104000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strict", - "ly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 285\n# truncate oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06072a8648ce3d02010604810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 286\n# wrong oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e3013060a3262306530333032316106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 287\n# wrong oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a6301b061236303836343830313635303330343032303106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 288\n# wrong oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d0201060a326230653033303231610381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 289\n# wrong oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a8301d06072a8648ce3d020106123630383634383031363530333034303230310381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 290\n# longer oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301906103261383634386365336430323031303106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 291\n# longer oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301706072a8648ce3d0201060c3262383130343030323330310381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 292\n# oid with modified node\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a23017060e326138363438636533643032313106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 293\n# oid with modified node\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081aa301f06163261383634386365336430323838383038303830303106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 294\n# oid with modified no", - "de\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d0201060a326238313034303033330381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 295\n# oid with modified node\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a8301d06072a8648ce3d020106123262383130343030383838303830383032330381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 296\n# large integer in oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081b430290620326138363438636533643032383238303830383038303830383038303830303106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 297\n# large integer in oid\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081b2302706072a8648ce3d0201061c326238313034303038323830383038303830383038303830383032330381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 298\n# oid with invalid node\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a5301a0611326138363438636533643032303165303306052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 299\n# oid with invalid node\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106082a808648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 300\n# oid with invalid node\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301806072a8648ce3d0201060d326238313034303032336530330381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 301\n# oid with invalid node\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106072a8648ce3d020106062b80810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 302\n# lonely bit string tag\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3013301006072a8648ce3d020106052b8104002303\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 303\n# appending 0's to bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381880004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63", - "007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 304\n# prepending 0's to bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b8104002303818800000004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 305\n# appending null value to bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381880004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 306\n# truncated length of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230381\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 307\n# Replacing bit string with NULL\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 308\n# changing tag value of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230181860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 309\n# changing tag value of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230281860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 310\n# changing tag value of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230481860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 311\n# changing tag value of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230581860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 312\n# changing tag value of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b81040023ff81860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 313\n# dropping value of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa", - "70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230300\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 314\n# modify first byte of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860204017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 315\n# modify last byte of bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32dd0\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 316\n# truncate bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b810400230381850004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 317\n# truncate bit string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303818504017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 318\n# declaring bits as unused in a bit-string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860104017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 319\n# unused bits in a bit-string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301006072a8648ce3d020106052b8104002303818a2004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d5001020304\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 320\n# unused bits in empty bit-string\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3015301006072a8648ce3d020106052b81040023030103\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n# tcId = 321\n# 128 unused bits\nprivate = 18c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381868004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\n# The public key in this test uses an invalid ASN encoding. Some cases where the\n# ASN parser is not strictly checking the ASN format are benign as long as the\n# ECDH computation still returns the correct shared value.\n\n", +static const char *kData98[] = { + "# Imported from Wycheproof's ecdh_secp521r1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDH\n# Generator version: 0.8r12\n\n[curve = secp521r1]\n[encoding = asn]\n\n# tcId = 1\n# normal case\nprivate = 01939982b529596ce77a94bc6efd03e92c21a849eb4f87b8f619d506efc9bb22e7c61640c90d598f795b64566dc6df43992ae34a1341d458574440a7371f611c7dcd\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040064da3e94733db536a74a0d8a5cb2265a31c54a1da6529a198377fbd38575d9d79769ca2bdf2d4c972642926d444891a652e7f492337251adf1613cf3077999b5ce00e04ad19cf9fd4722b0c824c069f70c3c0e7ebc5288940dfa92422152ae4a4f79183ced375afb54db1409ddf338b85bb6dbfc5950163346bb63a90a70c5aba098f7\nresult = valid\nshared = 01f1e410f2c6262bce6879a3f46dfb7dd11d30eeee9ab49852102e1892201dd10f27266c2cf7cbccc7f6885099043dad80ff57f0df96acf283fb090de53df95f7d87\n\n# tcId = 2\n# compressed public key\nprivate = 01939982b529596ce77a94bc6efd03e92c21a849eb4f87b8f619d506efc9bb22e7c61640c90d598f795b64566dc6df43992ae34a1341d458574440a7371f611c7dcd\npublic = 3058301006072a8648ce3d020106052b81040023034400030064da3e94733db536a74a0d8a5cb2265a31c54a1da6529a198377fbd38575d9d79769ca2bdf2d4c972642926d444891a652e7f492337251adf1613cf3077999b5ce\nresult = acceptable\nshared = 01f1e410f2c6262bce6879a3f46dfb7dd11d30eeee9ab49852102e1892201dd10f27266c2cf7cbccc7f6885099043dad80ff57f0df96acf283fb090de53df95f7d87\nflags = CompressedPoint\n\n# tcId = 3\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004014c643329691ba27459a40dfe7c4ce17b3ea14d0cd7aa47b01f1315404db51436fbbfe6de0842e0f7e1265f6ff3aca28750677d3370b2fb2a6ef497356f4b95811201051b14178639a09a41465c72d3743436ee1c191ff7388a40140b34d5317de5911ea03cdbb0329fdeb446695a3b92d437271a9f3c318b02dec4d473908158140e97\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 4\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040029cd32125c23a41af24fd4b729da0faacbc35516ef0ba59096602571693cd282e26d67e18ef4643d0f6f158d7370d3394ca9a8de7938032ac178c6fd34e3702b8d008649834e2b41be3a8b7510bfe570f4c67075943cd0cbb9d9e1d1da52618b5b96d6aec9b650daf1ca6624c13e5116302b9c79c8c4d3d351915d1e8e1ab6ad76098e\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 5\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040032c6f06ce6a15ea064464d35aa368d299c9a9e1e368f694aefb603876248f898f223ce0217bef37d61eb09b27c93187cf8e61ba7b14e3c9bee692b06ac6d95f836019fd19f8480e21c63211d48d45f96f6365cf55f958e1a0fe7ea6b6b9ff230a87b70bb1b14d3a5fb6669a91641c6acf4570c1d3a9e709913b7fe6b35ff81c394d6a7\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 6\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f7eb96e64b1a62daf9e0801bfd96a0b15b68e5f5cb3e90b434495a473907338e53098e1c2e493335d09c6aae6fdda0345b98aaed588f2abe82910713fb6c20252901396b17cf250bc018f4cead097e7e09863f14cf1239b065e57d884949eee141926f7e7c9f7f34cf0536368767bc0e1ab5142877293a4c722693a73fe14a5390af93\nresult = valid\nshared = 000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 7\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004006ddf9b10965d5fc129e96f7a37667ccf66cc44384772906fedb21f9de4629e01aaa09ac7c9866112064bbc9bd58ebc123ab2fe19d8fed1a056d27bfef0630509c7001c441311ef20a16346332ea42d5c65788d68f6817b0267fcab11ea9c948ed108115dda8e823a380b601460742d3772d6424c67b240da24772ff0d2ccd9a1e0cea6\nresult = valid\nshared = 000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff0000000000000100000000000000\n\n# tcId = 8\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004007a8c547268c948b626da636cf54428ea2ab23861d499a84ad7be1cf691b92872a06e26c6dba08ca9ed386f83d396156d5fa023f57d5ea6440ec7401dad2c08ad70018c3815b1b9a2e42555419a6c19043fa2b0ddcc4b5a6e372fee9fcb227d85bad704687e7e1a818b612d5c046cd75972f7a2dd5c9a200ac5582cd59fec47ac525ecf\nresult = valid\nshared = 00003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff\n\n# tcId = 9\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040029153cf062f88f303e5d6f9aac968bd901076d5994ea7f831833b1e69b67e9e9fe20cf9c5623e00e0b9e3592fca2a03324b5df7c93186aff697aca864600d44ecc002801a62e2f4106f34106da23dc93d50e3e975a1d47510021835290649b7a4125109f656b6b0b5bd00b24d84ea1ba4e1ed49e61c526fb1011005131caee7ee0501e\nresult = valid\nshared = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 10\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400a61eb994e28722c59b3c6007dfdf8b37893f6350f461b26a00e1a45104314aae9989da87e4facb2c4ef721185b7d96d9a45a28a102756501a1acc5d329a21bbf73010e8d0e12f5a9a40e0d59c90ce73043d39730aeadd3788e31d7c2bb62a1166161994664afa658ce2e60a13f45f27f914307c8d6f8d4ed16ab041b8f69908a62782f\nresult = valid\nshared = 010000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff\n\n# tcId = 11\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004011dd497b30c73709906b164a9a79dc7f2a98c0148ed63016bb95243834fbcdf8eb74b0ff652d54f59f31aef51da6e8974d363655b1da138dc4de0f2a8d800f475ae0057bd4b84607400d863ffbf45a3cf58999ee24ba05e93eca7b0e4ae760eb1733559a45d15579d3370d716ffa3ec4bfdae418e32fb06138dfca213720a938577610e\nresult = valid\nshared = 01ff00000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000\n\n# tcId = 12\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401283eb93fa369fe7012b647d21e0a97cf9950e5fbed819ef56158f20c8a9473a418eccbca4dc2b47f4cb6d322f917005859bf221e84ac9827cab82a801c627fb1ec0075c480cbafb352fcaf93baf23a1405fd81febe09729a908d1077e177dd8993d94b251a0d52652da3edb6fdf864e80cd51540e73d0b5107e3433576dcaa4e18db43\nresult = valid\nshared = 01ff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff\n\n# tcId = 13\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6", + "b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400173beefe35ee868d497ff6601628f65ce18a1591f7e4a3a406622f3f508e2da68f101ed02febc38418c6ddfc26a5ec9848c42792463b1e945f9e167db34bdf2d660053070647aba7cd60eb295ab81a268a3903f393c5d28bbc5e022351c377cd84f02c19deb36442372cae1332e92f95ba60b6c852e0de0718e89d24e43cd479c9fb11\nresult = valid\nshared = 01ff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\n\n# tcId = 14\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009829cd5432687739ab6ae10af8ea73d2cb53b81ebb06b5961b7badc1676b3ef7b00454f7cde56774a01312d574a9193c1a5fe5336fbe62623ad9bf81143789f9f90012f955697ed578207197bf9aac3896521615dbacc8dc665d4f1715b08439f49c2aa6ed337023ffccc5075a85944936826db92f919737ca3afeadba1847084bdef7\nresult = valid\nshared = 01ff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010000\n\n# tcId = 15\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040126e3c959cd41120bb83693b1d6a034b385137c1bb3213b776122fed96056e329885718a73bee639c0ba4b68818682f498ce5496925002bd7652516405fcc4fecad0073a9c6e3b0c694bf7cc8ccbbd09800e81e3548ba44a0c2381cef0b07bf702a19054bb5d717a1b79294609cbdafd4e2018064f7b2c4c204d818eb7ce521c3268ce5\nresult = valid\nshared = 01ffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000004000001\n\n# tcId = 16\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040153dc481ab3c5dc8decd24ceaee1bec77f59f21f7f31c19538af047d281ac9e2567933fd3d21096b185d4098919571931bb9b0be7197995e2fbaf21c8a10007ade001ad69f08fcae164390be826256b50fae47502ce0e9ca46af0c490cb4033c886f88661a99ff2bd3c9c8e7da30faf2b4c769edc5831810ac05054c97e41063f496e1f\nresult = valid\nshared = 01ffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff\n\n# tcId = 17\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f586611c87150288c3e86116c5db94a26718978829d701ddac05e9b0ce22dee4b18e95f60cba783ed3384da373deaefc57b8265d3a34eeb458bf24b9d82be32819008456e0f1d80492ef0078cc246d32fc7c7fb6720b4d458b51b2098d35746752b0ef0345bd0d342dfee6dd2f12ed12b34bd95d058c2811fd479d2dde32180e6c9ef2\nresult = valid\nshared = 01ffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc000000080000002\n\n# tcId = 18\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b810400230381860004015edc87fd499a73eabffd14d2b6a70a8fb69b6a39d0d9c4dda2337b53cc72e49a9e3d5a2d9e8930cfa11852dac33443227fba6684bd74732e6879884b6ef9dae98f010eeb8d2e3360ea9726628085268af3f2a05ad41235d0a892098bd661b636f7ef0a820282906eda3f1ff1980b98fb5937228e9edcd6332e3641216c7307e7f3f452\nresult = valid\nshared = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd\n\n# tcId = 19\n# edge case for shared secret\nprivate = 00a2b6442a37f8a3759d2cb91df5eca75af6b89e27baf2f6cbf971dee5058ffa9d8dac805c7bc72f3718489d6a9cb2787af8c93a17ddeb1a19211ab23604d47b7646\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040131b43002f7e687eec1ecf6a253c2ccc9e48f04d86fccd18fee0d2d22191f1ea539c40d521970b4709dc03986f647e0e8bb3340cf8a3e643a3541035437cf25f01500b27a55ac45f0296f8c9656bcfd52b5cea9f4115c06e4c64319609847d45e92418400e7868672c0d3e6e5e6e004a7190476ed77cfc33ad19a4bd2c615ad9950f374\nresult = valid\nshared = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\n\n# tcId = 20\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d20ec9fea6b577c10d26ca1bb446f40b299e648b1ad508aad068896fee3f8e614bc63054d5772bf01a65d412e0bcaa8e965d2f5d332d7f39f846d440ae001f4f87\nresult = valid\nshared = 0053bf137fee8922769f8d0fe279caa4dac9c6054ad0460995588a845d0a959e24bc0fc2391a2b92f7bd400f50a11a9db37f07bef7fa8dad2a903fcf534abc8736f7\n\n# tcId = 21\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010010e59be93c4f269c0269c79e2afd65d6aeaa9b701eacc194fb3ee03df47849bf550ec636ebee0ddd4a16f1cd9406605af38f584567770e3f272d688c832e843564\nresult = valid\nshared = 01c95ac417c90a520149b29105cdab36f528a23efb5621520dbdafea95a7d43499c4c8be02cd1c2de000da18104fa84a1e9ece6386f0e0efa5234a24595d7c4c96f4\n\n# tcId = 22\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200d9254fdf800496acb33790b103c5ee9fac12832fe546c632225b0f7fce3da4574b1a879b623d722fa8fc34d5fc2a8731aad691a9a8bb8b554c95a051d6aa505acf\nresult = valid\nshared = 01b47ec41e3a5abd9dd9808fc04d9078cbed72b9eba98d3c1ded70a29938f0efd5a27a7113ff721f122cb17411de307a355c685074f5766b6d1a033d2fa188c945b6\n\n# tcId = 23\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000005f880f50ec94bfac6658fa2fce05945c6a36b266407b6fbd5437a83e2f2f9b9c50a734872e48e70df65457f13e47d06c6b8b29f4735acf105ea63e051904d18aea\nresult = valid\nshared = 013aefe3245728a08c904fe7d61cd9c2fdac63f29cf664d8f161bebacb93f8a710e9692f9689480ad498de00f00061e40e46e76e4754c1130ef4217a58933e0b1dc6\n\n# tcId = 24\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff00000000000000ffffffffffffff000000000000010000000000000000f33ffc45da3eac1baab727ab8fd355cfa134c42047d55262651654fb50df7e9a5a75f179c8c86c4388213b5687dc43dfebb37f30128703c44ccd5c3284833b8717\nresult = valid\nshared = 0168df272d53e3161926168c4aeab5f355b8d2a6689cfd567f2b6eb2011a18c775ac2a21f8dd497f6957217020b3b1afcb7021f24fccc2523be76a2bff44596e5a14\n\n# tcId = 25\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004", + "00003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff00cd2839d857b4699f5c8e8a0194786e26a862f086b4ba80746ae5225ed3aa68f96b7aaec55225830bb98f52d75221141897ba49d7a31ebbf0b6d7d31352e5266190\nresult = valid\nshared = 013db1b9241b23d33860d32dec37a79e4546a41afdfdd9c438d04e1f8b566ac8d9d3f572c293e96943722a4ee290e113fffaa82a61867d9ca28d349982354c9b256f\n\n# tcId = 26\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000813d9829119f42ffa95fea8ba9e81e4cd6a6ca97fb0778e12e5f5dfe35201dd4cca8eca0d2e395555997041381e6ac1f18ddf4c74e0b6e9041cfdca1d1c103091\nresult = valid\nshared = 01d2bbe9f754584ebbc7c7ad74136d1c8a144948948aa8be49989dd9b4c514db2e2ab1e0713ad1699f632dd2cea53da218ed549f030a113e282fd9e3be462d9aba84\n\n# tcId = 27\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003ffffff00878ad597d290db2cf660594aeed0f9b7c8dd68451d2d1b2cbc816b1ec4f35465b3964aff2edf1255163f5fca580132f85cade2887a017e7cd0b37196ad85221107\nresult = valid\nshared = 000f37a2e2caef54fff4126c0fa96e7c47f0cad74626ef91e589e12d2e1e8c221be7295be9dc2712b87bb0aa0f5880b738bc1242f2ba773bf9eb2a54e3c1ca4758d7\n\n# tcId = 28\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff00000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000010000000000000000000000000000000000b5e1191b449fa1ebdbd677daa48f90e2d1d6c058c877087cafd9364d99dbb283c68402e6e6c5f5411b2ed42824d8b280ceb910aba6847883a7e3780e2132af41c1\nresult = valid\nshared = 017aeb254d9c8c8ee06215ff33811357da73bf7f6dd6d7f8f176d62c065a88a9005f680c630e9f2763585ea2ee76b6e4ab45e673f814ebfa95947c0c63fb24fa6e9b\n\n# tcId = 29\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff00207513d615656a1cc7505c18aa21b08e2b1d5a841de0816cc29c004efdb2d902ac1a7bb05e20722b576b64a3ddf4d2486421ac706bf4a424f252386368a5340fb6\nresult = valid\nshared = 0061bed42248a37b4625ef04c4f9c7ef69ee3c6f9503378351fcab1b8ce1343206997eec1b88449eb6f7355711ea1a818a486ee30a24126241a7e2289267cf5dd61f\n\n# tcId = 30\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff001fe800c50e54012b75a33e4be7d07c8d60f29680a395e951a6a31c5096b0ea928fc2cbf327dd784dc0a7ca46ea73992b758b5641364b4aba39e93798a4d925a008\nresult = valid\nshared = 001067d9104e296ef42b944587de11b10df05d2d959ed44cac9e7ef1c7a05d90819c43bc79c7397918f957cc98db931763bbeb1bdfc35865e8a359a013f13d60c433\n\n# tcId = 31\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00010000008dd18a1f5e482140be79bb65a21ad60c8987e532c84345f0135affd46ec71ef02b1ca3ad56f301d955fa306c122d441d6fedcf8b855ef256350bf69d23a7207ad9\nresult = valid\nshared = 00b779d83035cf7bb0bb04c7b2f46d08f6791f0d1542c9bcce7250e772b12ad8e38fce1d2b063a06f0fa3a1b072dd976f5f8542979903075162f1f5c6ba3b76cc45d\n\n# tcId = 32\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffe000000ffffffc000001ffffff800000400000100566203dd325a081c4441f001f780365874fd3d0c9bc47227481afe76a93ae1bfde63af972203abfe22c63b80e83f7cc2184c3cb8cfd0152c54324c4759fd1f9a50\nresult = valid\nshared = 01afe5d23733728b79c743933b9ba7dfec5ed19b7737e393908a1d000918aa795d1ce0ad533983d018f927b35d2af6463356573f387febd75911a49486202ca69d3a\n\n# tcId = 33\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff00b11c668fbd549f36889f7b63434051da26f15705839136b1b14a09152d7a182ea7806c35478a32d3aa3c9c1627a61519ebec71b36fa77449025b8829e27f307834\nresult = valid\nshared = 019612aeb386febb1a28096fe5b2f682dead02389785225b80a27df439510d08349a193839525f248b7f9bcabfd3dc8da8cc1724022299b7b5e72399d89464b82e44\n\n# tcId = 34\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000007fffffff00000001fffffffc00000008000000200aa75efc0a8daac1d73f32c9c552414bccf44af8e74331b47439e7dcc49a135b3ee61e9f69717d89b4bba3567a195aeda13fbec634bf2984b5ec6b6f80f5978ed5a\nresult = valid\nshared = 00570673f87adcef49c1f011e8b9f1e11f7fd3b3c93114d08d3f515aa4a895a6c701c523063bdc13ad1db0a54f6e7b476fe10db2070441befc58c8cff3c08ef76e59\n\n# tcId = 35\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0010e59be93c4f269c0269c79e2afd65d6aeaa9b701eacc194fb3ee03df47849bf550ec636ebee0ddd4a16f1cd9406605af38f584567770e3f272d688c832e843564\nresult = valid\nshared = 0016aaf228b0aec190d4e4e5b8138ff9cc46d705da1bf002901c6ab420f59314d5b641712b14ef3e4fb125652c47888676804fb5575b741a8408c5625bfccff4fdda\n\n# tcId = 36\n# edge cases for ephemeral key\nprivate = 012bc15cf3981eab6102c39f9a925aa130763d01ed6edaf14306eb0a14dd75dff504070def7b88d8b165082f69992de0ffa5ee922cb3ab39917da8524cac73f0a09c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00d9254fdf800496acb33790b103c5ee9fac12832fe546c632225b0f7fce3da4574b1a879b623d722fa8fc34d5fc2a8731aad691a9a8bb8b554c95a051d6aa505acf\nresult = valid\nshared = 00a5d6dfda2b269f4ab895a41c3b71b6ba10d5c9f0d9b3e730275345e4721594abfd39464c227716ded8ef3e60bb1ca0b551716e3f6eebb48d5ce8e0ab58cb1b73c9\n\n# tcId = 37\n# edge case for Jacobian and projective coordinates\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "10010e59be93c4f269c0269c79e2afd65d6aeaa9b701eacc194fb3ee03df47849bf550ec636ebee0ddd4a16f1cd9406605af38f584567770e3f272d688c832e843564\nresult = valid\nshared = 008f61e15e8c8545dcdab188f10ba9111b6345d529d9c5470677342df7ef54c56a1fb9fbe8dea76afbe8f2dd4c3cfb4d5b749d743944c96d74fb47bc4bf601e5dc7e\n\n# tcId = 38\n# edge case for Jacobian and projective coordinates\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004004dc16cafca9833eeb97c136c154f3ae390830f26d300edef06f867efab1c4214f563c25e1c81e16a86eaac8272892d1b65b2ee7fb2b69ba1110b083bbeb6b8873a010dbb701266a8df32d17bd58bea365c2637d686272900a5ea7a19ff98db3bf92425a483c70fdd9db25b6ee69981cb69dcc9c418c32989e73f0a5fd7f3c3ba44b051\nresult = valid\nshared = 017e7eecdb0f52e3b8aedd0f5550f26cd5e27e711d6860c54f88cfd3ff075df8d363ee3be4dac2f42d036b7c64e2b50d90764ab4eef0b9d68c29682b9707d45ec283\n\n# tcId = 39\n# edge case for Jacobian and projective coordinates\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004018255c014f2533ad930e4320216496a3f4e0d78b50fa27d42209e270e39baf480a987a2c84098eee53889ea8b6cc9036ddeebefc00b5542d2425fafd5e1babae84101db817b332b297a003cffc4251b58d9c7ce0b90301ef5c65e8ac0f82517fd1730a167d83af50d92f7e25e08787130618920345c435337ef45eb2e9b1ace530d0eaf\nresult = valid\nshared = 0115ba7fc1ef5d1547bb259d7302cf84400160a599a3fd1d368e4d8f136848bc32b345a7926b95140c319db39d3d89479d44aeacc05c8af37d55450c1ae114beb583\n\n# tcId = 40\n# edge case for Jacobian and projective coordinates\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00d9254fdf800496acb33790b103c5ee9fac12832fe546c632225b0f7fce3da4574b1a879b623d722fa8fc34d5fc2a8731aad691a9a8bb8b554c95a051d6aa505acf\nresult = valid\nshared = 01d63965c150dcc6c834dd2a9446a9006e011affb8241a38e3409752b7f478d32c6d461f978296a57339ff4ab1a308f8fd0330a932979b3fc2363d04538e72510176\n\n# tcId = 41\n# edge case for Jacobian and projective coordinates\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040173de990978da53a05c463a567304727bbc9dbed8d5dab3bad11d1804dea864fbed5bbec807c13e4128749cf8c11727a4c528f91ff0217f953a3048de5ba7a2b9ad00f0213d032cc674e1029c71d10cb3f91de53753a01d6ddc41064036a43d613f2bb83fb999874a0fadcf8a6d40b91713cc9114bd44c0f1333ef98f0efb6372a9a453\nresult = valid\nshared = 00815a61f2c7622d1b9e3310104a41c576835a29cf3a875e3b1062e4588716d25777f0a90fa6a99a95226320ba225b8965d0ef5af674fba69a8acb850b7773be0c82\n\n# tcId = 42\n# edge case for Jacobian and projective coordinates\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010f43662f4bad6187ad22a41dfc831dcba255af6c4b5f1c14b2ed5447f88b65d690b875848ea7a0c4efe55b821488d1b0f85cda6e7173d87e0d76441aaf60e960d10017fa4b51097c5ef9cb66d6c3eb851e1a8a41102452bd3f8902f17ee72ab0772241510144674686419c7cd55a930951165ba07d34c2c20c421069c1fe3d976737a4\nresult = valid\nshared = 0110ea8af76567351766d7ddcb7343ee04edd95035f727e6bae0d89d5017019a3df79554d1d0e84fe339a7c0fd79829cdae1372e5d9900a0dc8bac63ae33066d3f11\n\n# tcId = 43\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004012183fff5777e319e8cd23ab5392baa9d4b1d43c7f8b01f78f295c0c37d4a3a122f88c163a8f9648d9da23b389ba56e8e9ca022c2fe9c273f2585429a2de43295b901e18e9eaaf8a406f10b1dcbaa684743a43d203f6cddd8709db90f43fe7b8b3815ead2046b6b37239e065da62d797cd0a73122ee9bf1bd00b0d801297a3d2bcefd0d\nresult = valid\nshared = 01f3c9b44faf754be250c2ed756541c261cb53795a555e924782dc4f2c1dd4a3855c823f33bdfcb0f0503ea3f9a911e24235375a69da21a9ae4c647738b7e5c52909\n\n# tcId = 44\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040096068a512e317ec63588ff28d380a8d7c91e3a59279c85f5416e8ed321747b05d537d19d797364afce0e548bfb758e33cc6d751b5c217972de2ec4ff000cc15dee0085aff0f0252ab46ff80d849e14943de8145dbb307b4bc45c9eede78c040a0836d80406770c7c9459c065c53367e683128e8fc1dd89190e747893d9f27e49610bfb\nresult = valid\nshared = 01f567d01152c90644be34fc7f4dcdacda02e1e14d80cdb377611a8c9a7a4d0fa5413b9d415410c9ac6ff1467cf37235e588d114a54e6f9e0a65b6d02cdb82889814\n\n# tcId = 45\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401bfd8c3e346ef884b4b1c01fd273e982fed38b5c8046165cc1e0de876787690c19c4ec24606bc8e1ed83a4ce10b7a42e6db19c7aa5e9971654e57842d41e70985a300b357351499600560bafaa25e243aff7b33602cf41d3518499e1b43ba1e814a0b45ec01fe694789e0157a3c281d17fa00e7019f47ae7a10ce40ed0cb7ca56b41e26\nresult = valid\nshared = 01819cd3a3b36883c480c270db139a94d7f94afd8879b34ef65a304d0b9a6201a1dbcfcb8ee5c4e66698d98dd0e8bdd53e563628b15afe05f48230fa1c52952d8989\n\n# tcId = 46\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000cc8c84d1db71fb91595f00703df257f2a03057847b4b9506d3b2615a8b724062d93a62954219df9ec986261fb7708eaa13954182e105e8e93c111c0d2a8bdc51d00e20cc6488c7761f31a3e762698553e5f2bf49b41a3a95ac5b4823c29759c738151c3019ce9d3d9ee7411a4106d5810c8b8aafd37f544f1caf37f6f5fad592e59bd\nresult = valid\nshared = 0080859c07cae1911b753964ee175c8884bd19abad666e2e472ed6329e71f951534227b2742805c6e6310f6ea3230bd403c2260e97b0d7f1274027f7e69fc7b81273\n\n# tcId = 47\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004005494023709ee6ae39d0c5b67d959f5f8cbd1bea96442933a8929e332b704f7146ecc689b7fdb85c83f3a60846e692dde0c2748cd7becbb0d6b4c7c0c0f793f3ade01a77d75c2600687241843e2eb6ac81ab19d0f8a9747988c03f2c770593dfa48048f2816e3856c5f11ce3cdcca3ae0e1f13718c2c5db2c1c859f7caeffffdfd629fc\nresult = valid\nshared = 009d532af8d99dfc0ce93e2b63305b1f055c42afff3fa90111b071341ccad45ba63ad9ed3a141e95c0cd0d70e78a7ebd82c22e68fac46aa5c9335a955631f9b7c66a\n\n# tcId = 48\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400912809b73f50475a3b97e9602b757eb2e94fd245e483040e167b833840a62df27912a9c2e0317dbfe58dc43ba2053deede5eca2b22bd06792001dbcaa7ea6b700000438e5bb84f3ef7865152b2317d8df0c691c3d2bed2467d5e7507268a7ba98cab4e4608cea0f5fbf50fd0a487d005b381905c95aaf6a18cd1a2dbd6742b5b05ba71\nresult = valid\nshared = 001b018fecf2c07811a54b43a0b284c996eecc7742210269373c39dba299d1ab91c778b0df40aaa52530766650ff1178de05b69c3bc46b29d1af193433fa125eb900\n\n# tcId = 49\n# edge case for Jacobian and projective coordinates in left to right addition\n# cha", + "in\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040043cfe2c30d3f9f0ff96e0e37f61eb2dea3816999c91c5b77957ef92b0ecde092c7504ba57406eadd744381906337cd13ae4555e50a9eb257168c2140e828a46ad30005c129fa9725a82d3e6da721ec0d1412ff6d6a2d8f75bfc7b2b6aadc5fad86fc1a8a67cd7e6b7aab42a546179c6e0560554db5f6138a7ef2dc79d2be385356c9ea\nresult = valid\nshared = 001450d8402f269dfb636499f1645445106c3d95f93080c994726db7e43fb68488f7430f6d171543a127038c930264e60dbf0f48d332af210ecd32320b1cb90acf60\n\n# tcId = 50\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004012eda9020c665ae69a506ac6b3287465e0fc0137b21075cfb6c69963d9acb39a26ca940c3a39e0d94c054672ffc1761e56ded3c180f006857d131dc34a5ace7fd5001709e8a2cd99e1e2016c24f1c5485e3c47947bcc6efbebd2211c0d529a83d097ac611aa50d7879979f4be2d9cecc16360fe4b949ea9970f1075cbf957f031ccfdb2\nresult = valid\nshared = 007846a20b43a498277904686f3766b9a3ad994dc61329db3ae9d97618b8130c2bbece0da7e2c79dbd0e1dc8303ae5f9903d97157d0a74db7f465abe9965cfa83eee\n\n# tcId = 51\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400084ba1cb8f33cfba89d1c14ed2b50da737a05ae0a4ca35fede3b26324d3be74f5e3320a90bf388bcf8bbcc4c3c1c88ed52103cc7c5ca2b59ccd3e7dfab6d2f4bdc01a3f175c3c8a89d4fda95d47b2d4f3047aebc75ca7ea416ed76d8e689d7ebe7e977737bc6eff9733e6a6c0593486e62834ff46121b72fde5b3359fa707fba6d67cc\nresult = valid\nshared = 018e645fbedd9f12d4474db1206aa67057e08df567c1eecbda395edb2049f770908e3515cce779e37169ebc026eb5c353040058da85fbabd674c8d52a78a39723196\n\n# tcId = 52\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ea36ce4e51bbb333ea942a5325e1410896e73652c2833b462262da5d791b1835538b06cd9d7b9741f3414d520da87f8be0be218043b05cad61b93b0bc0484e0b2801ece28df4d9ca3ffb23d69c36966cc26b492f7010dfaca67b4bded71cf74c2b0a86e61bc77903397eb8a4362379f09492aa63d9c9f5ff30d105b530c01f46cd7cdc\nresult = valid\nshared = 01912aa177ea8f8878447b4a19da17d482357a272dea19b542398a6bb48b80598754ae27c73958046aaa1c69951302727dddaaf966f03ff5b723acb7db7fccf3a6e4\n\n# tcId = 53\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009c96024fac77e64b846f141cd1011f2ad52e3aa551103b96e35b439cf89c0304293f1bfb522f981fbb56921db87151e797d07f1127a01c3f3de56dd499656c103b0177b67fb2678b720d08ed05a5c06bcf88134201c192997fc6dc15f820b60bcc0f777d0661bd8f81cfed59deec33cd696e1c1ef72c7666cd5aed49eb325714739bed\nresult = valid\nshared = 006a5b0c09a7bdef316d25f39579279e286b781c2e430f201c54cfc9e154a38ec31eee9d09f6d5aed45056c5b7bb44213c6357c7492d1fd9b1c7dba116fa51d21cfa\n\n# tcId = 54\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004008d4d677aaaef3925a1d41fce4d30543a1fa33a2b3051b367cfdf1b8da7cd1ab67ce9bb255e60475684443cf19ea2e1f01e58fd79f47725661be208767cb2a17530010be175e24d3bbf27dcad2596b8090c7f2e005901038657284a80ff77d3894a29ee2d7daa5880b3ba052261e4796f132db9e8a9781facb32bd8a09babd9e0cba918\nresult = valid\nshared = 00652fbaa411ad316dea40a37d3798d0c03ca7ca590d8eeaee454c7d24ff1c4ec7dffd5ef3e90762d5539c5a57e745b9c0f88e18fff6f737729e67606ddfe3a77519\n\n# tcId = 55\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009b76bfa396b3706381552ad08fb3b9f92b492c43d6102b7c02cca4017718e0643478c0d73765c27958138c7f6d23b4e83baaf27eaf217ed565e6602b4d080200b1017ba7aefc45677b8c4d4ca468e8a9f5a2fc411a4af4ff4593a9b781f1357aae46988642a1254d6cf588708efe60b2dfab15d371ba4f4d9e09e61f06d4d243e5ec57\nresult = valid\nshared = 00b1ae05c2a91f7e1e9d626b1a46bed2009dd6662e712416e19c1be9e5e512ec734127adafe6129a83d74ba7a797f41afc4b1145a16f6e389169c8b6592bf628f747\n\n# tcId = 56\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010089190e9b63f5a29e41b5a1837d9bf41c0b2ca107d6d088f4c1d468773150d7d145cce70a240827268371144e4acdda79d09a51b31ca20bac1197e619d1a84f4d0122c638c06912586580c7a7dee429b1ba000f6285b7fda441388c323c0895ff90443f0615011caa332622e67ede867a8c445335444ea112e80532d5f6df1408e72b\nresult = valid\nshared = 00037d3e4359c326f74a8cdcc4bb82090e93bd48757b6caf749fb39a83f992a7fa9676ad466c8d7193902214dabcfc104bc8664eb934a2df648b2e1f401d745e16b3\n\n# tcId = 57\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040070550537e385e4601490ac5a78348ef26678a4ab3a7469f299dc493bd2976416f649ee3e3cdd77191d8f8f9d600e8cb9fde3afe635e224635b70fa79eb1053744f000a546959ae4abcda827429a47a8cbc6afe42fa0f8391293da778be296c722e02c7ff55e20c119531d211173f02eb108fe1b8bb10d465c7158dd3cb2d9f320d1711\nresult = valid\nshared = 018e22a63dfeb14f28d4f338b78455877851e95b349796245effa830e29ea1978499f07ad9704b352746dac30bfbb827e1f00b979f642bb886f156b538ac6be91746\n\n# tcId = 58\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040001b66958931ef30c54f83195cc40530c0e44baa223d28d8bfaabf10d16302f3a19601fb74efcbefc1b71d1e81ae4f60b3f8d7c21de1dfafd5cf19c94b396410c39008f13c42ff46d1a18f3d975fdbc0bbb43c31da9423fa935f4c211435518a01437bfaeb6aaf031f92b0c37d76290ff682378c2651cd975eac192cd6582dbbec09974\nresult = valid\nshared = 0032284ed3e15d5e9deda53ceaf5aff21c230e6038e6d7e5caae2a715a5288bcb8469ce2befaaf3b4184eab34869144095661788d3fdf41ac61ef1256890dc7a0beb\n\n# tcId = 59\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040050571167dc9f3b1f4ae301dd1fac47002d901398823f2e3dea4338288de8a8fb432a683bd52bfa380700b27a904ad60a5a4d363951ffe74540d54de8e7d48ea16c0085f6a7a743969ae27e9a96bc6037039a87d97c696aed99a39f6e2d56ace558074d49546e417d791aa5ff049c9d30c30502f40020ae41e7a512671cdcc49b6079b5\nresult = valid\nshared = 01dfb46afe0bf064dff0b4177f7fd27fa2ee0832af7cdc921f66c0e5be30c80630c41e09202ea2f370f5bbd02ed298b08820ce86e2cb724a1962c6e7b1062f5032dd\n\n# tcId = 60\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004017e4f402b", + "1ce209f673ddf50ae87b9ef61d814d51e14f43da3c23f40fac422f1058fd8930dfaf11710c41a7f6b79255e1c2cfbad69d257a0ecc102f5e38e1407f9d00e10a67d175b399bf1941bd0fc13127f7eb112e1a8681acc2cfae0dc2959e8237488146281ca3df2b1e6056ee932feb1ac6e6e9df3f7a6ee6021578a0ffdb50eca2\nresult = valid\nshared = 0017b99fab0ee0d7f93f7309ffdc9149ba3cb683042fb3d02bd5319eb42678ac7ac7de214e5c0f8473627ef15112c0d1a3194284b6fcccf561d0d252ad25fcc93953\n\n# tcId = 61\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040004cd97e12d062b7490be45d85e85bd401c1791fbb44e74a45438a8317c7ec9f025b34c595b4769c7b37f44296b4b8f73d5641da281fe35508a23ad503da91ee7db017c4ed0d84b401dab7488da839b20b57809fe7127fa66ef94dc029e44b250857b309a11c91f736a76f3c89d9aded97f5b0beec93a7b6d7882e428befcc20d90df15\nresult = valid\nshared = 01b66a065e62ca0ea49c25fe2a37799b46867e274f8b853a534dd6cd1ad81cc13d27f279d1ee5bc2d96d0b7701abb2d213fa37836bbcd2d1d8937b6d20dcb35b53e0\n\n# tcId = 62\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401b23c60eefdbde07ce9751d9f9939bf75458e6f2af0afa3d90fa1762d01a6d6e3fa4082c37ad6bf03ba8ff17919e8b9625b5a909c925d9feb7c3ee19a0425385cea000df68406c674be5e1f42d14bf50c19460aeebdde379ad3130a332e8fbeea1569d314d507b37f1dcd283b1c1715852bd39b81c4edcae0f2e1ce5358c6598b8c970a\nresult = valid\nshared = 0059a320501bde6b9b268236f966ac881dede98ce6356a7a900a452c59cbf8d8d20630321625c689c79dffffae7f870a7fbf298695896cacdd2d0e13b702f22e7e43\n\n# tcId = 63\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004006836154477db9db03bb8a404c5942d32e1cdea20354eda9693c3333914b5190c9d63a0433a43062b8860d5e59c0f27ac633038491d46b91fc11ecef8326e75b50e014178e1bbf08473ee5ba856856416e6326cafe6f74227768e835c25c520bae05d1d451f639158dccaa293642a572ac7612d60e96df4c673ab8f2a4ed82e5e2af30b\nresult = valid\nshared = 00204ccc5356219beef3b6d90ea2ef3785f76f14aa3b84ca04f6b2a5e90700596431546e104e7788307147312ca890984f76b53c489de04cc728ef003d246fddb360\n\n# tcId = 64\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004019c26d815bbe92358e1ecd02145a5f45e1f8f46cb90bae131ee589e51bb093d8410206585c03ed7c5b3975445ba07fb7dd668a8e58c27e01dd00b08fe409b4440e7009fe859e9d22bb1652e384d5ae579e44a0f8c5c82e59b4639d42a9b27cb140599c1236e932338dce03de46a60fbece61fd34b8ece7da937b5cc1e3e7cebcce339ee\nresult = valid\nshared = 017a82403f78f8a51729e8bc63c5de9b67c572d41f2aac28bdd95792e658338f19bddc45a6a1cb1bb275f8a910fa64daae2502600aa97b71f49b28981b718f6ae066\n\n# tcId = 65\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401dd2ae95764078496804529a5eed0da6182be0f085c95789a2634a9569f0080861b183cefd1a1489d0f90465353b972c8450c2aeb5fd80be64f15a719d0873e0a1600e1098dd4b30f78e3fe6c1aaf0048b15b1d0f98ff0744c1c888641d17ac216329376be7113e9321ca7f9f7e1935dff661bce9ffbe86aedbc933f2438fc482c462bf\nresult = valid\nshared = 0088797d31f9b66faee97eeb9a695cf668c7960f49bdce051b2fc273d5ea6d86c78688ee3ef4be14eab0659c57ccecb2bdb190e50be04f65079950c5eb90d676ee57\n\n# tcId = 66\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004007124ed9d261bc3e5d29947ff49cc4420db90d3afac7eb6ab91bbab090bd84ffcc3ef33e963bcc05685910ee63b063bb9adae7fcea41199619988d34d6477d11ea90039738ed5529f31a557970f89e6c927fe0bdd6413dc31237e75270fee8e3ba6f3a24ee56516ece117733c385a8bb759e57ee79533f3c857327b7542677d834b8dfb\nresult = valid\nshared = 002ba25d016989ea24d55fcdd9dae69bc767a4f3281935f5066203812977737b6a256ae839cde9b273281672d7d85dfb40ca895fc1449ce4283f7416cd913a56d8e0\n\n# tcId = 67\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 018f3dbe37135cd8c8c04182952f6e6f9bfdbb6af4c98f31ba30abc68d88e1ea980d4edcdb5b19f0610082194137ebb019e7a664b522189a186cbe5a03376c0713fb\npublic = 30819b301006072a8648ce3d020106052b810400230381860004004220b1642db63810f96cf54f93ba6c3c9b16baa8ab42ecacc281a2fca368be876024b6ae18a8aaf9e433799fb43c0fa175d4ca4a5e121739c7249e9a26fc9044d701b06ae58dc3f7b773013e2dc800e001220bad2e68115ca67516e9c81763d17eadfad2c6d38226f66623a2d5c11786e07face42d7b0a1df96d095bbbedfcd348e4d6\nresult = valid\nshared = 01f5646e724f637e1d4ea8997cc67268da3f741b9af6d21f30775a9a9b0977ed75bfa0ca5a80db2d44822de494d15c87d392cff4acecfb50609b43d7845928286541\n\n# tcId = 68\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004006db3dbd1af249980effd624e9f500e4d9fa446c9be94e39b4860767b55b1310889e178caf6c859f60ffb0d87612c5790833cad160a5b23f741221a123e36f0eeb7002ce839f2ba3072919297ee5a6829b8746af39fbce9fa70dbbf59bd209bb500d6129419ba96020a2550be0a19426ee9e111e6987af0c326e1ae1da4365d15a7bbf5\nresult = valid\nshared = 0177701749c0c54bd6d54ada39aa2222e5b4d32273ea165941d1a9a6114d2cbe609ee62c2306bc5c1ababe082272157fdac8dda39c7b452820c943db4267fed8c2eb\n\n# tcId = 69\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000d2fcab62b467f978a0267ff3598e6fdff087d3237f8fb00c17d0f5accbb4eded3c4c4858d4553033e59946030c6f5223779a21205ba2a49b4545be596b76f91b20057c975da0520e1dcaa518951db057864966c818e4e64fa910a0c0c7f9b894c06461fed9b44f7ec43b70e3339da0f566aac07fde501bbf22871452dba5c93e5d623\nresult = valid\nshared = 00f524b1726e889d14d5fd70bbfc76fb2eb32dc2425f112a5fca5203305416b85609f337cf87ef878e64e375fa29eb32f9f139bf775c0d3229a72c2e880979f822bf\n\n# tcId = 70\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004002cca1f37dd94a0a47c8168acea473fb057652713015e585743c9d33f5b7d01d638bc0d039147581a5f3096139e5ee8ed38bdcb72cde493924776579bcbb2522961015bd4859c2015c081696ab105b8922c1f81ce4a6104e5b56b3cd99ccc3c5066cbc339ae685a904df5dd15485cc3ca72d2c84f15f625397f4605905b361701e00d2b\nresult = valid\nshared = 01ca20d556bf1baf10153e2c1d99b58fa8d8f21cd7eef30afc94efb47d38bb364abdb59a326dffc41fc056efb714384b5d3f09270b4806fcb0e271383cdaec023baf\n\n# tcId = 71\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401b5386fc61597307632b3f2c984fe0ee8e22c5fd904b1d14b3568e9eb76500379d917f2430b7f2f55e0bac356e74672a23df2a5ddd46fc0a58f9f5407093726c25d009cbf983303fcbe0b5a926e28c0654ed457437e4010ccc1d1e02e28688c9f210c76af02ed0df6b727fb18b938718e9", + "dcc2c2421a639d732a61711a5a45faa1ba144\nresult = valid\nshared = 01206d9bc747f0e7591dbe7a88950a78db2770cebac4e91f71b3052a336bd19f0f906b7298eb92790be7bda33c28216b2816b100fe31ba8a7489a9eca3ba82b9d198\n\n# tcId = 72\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040012d9ebd3feb543b43cf38f7baba9c20fcd5fe2dee9049ca8854184a2ead64aa5405e169ae827413725958307939ee2440c21b8da58b3ff516ae569953cf48737ee00cd5bec6cf728632d31e3a199a298240dded0ab5d2b3513bcb2d114c6b8f279a075ff0c56a3ee9e4058acec8936bf86bb2844ba1307a434fb43d289746662a83dd5\nresult = valid\nshared = 0128dde1341ca17b37efb34b30ee479b763e878dc8006c8cee435c0bd21073c5bb3df52865bd4131f5cec41588ef778ef14af4ca47dc49a16d5b7008ede0b6e6b1b6\n\n# tcId = 73\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400f3aa49feaf686fcffe3a0a360692ef02feb14de6e0fd8dc922857b29d6837a59ce4013bee99bf87f8323c3ab7f57e02e7b0a0dfaa072bf1ada4836be4908ddae49006af81ab3e305fbe5ce8a819f8168a8b44e40b16eae8268a60ea5d66c0f284365e609a19123370beee420d0f019a1984156ce29ade49510e7a3163705333b858914\nresult = valid\nshared = 0058bd4d206df1cfb3fe349cda27b013d59dd6f507c066c0b6cf458aa54a1c13832554c66ff27f6175f1bf4058378c9f7c7a9d8b810e40a3a8af19fe0e48c7284ed3\n\n# tcId = 74\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040054682c186f9b80c4c76d7050f6a180fad9fc8519419574bfafca9678c59ca95e2253348e0b157949461e9551ca7ddfb9fae8fd7fd23a8855d9962913c66f2fce5400f405297310ed41239c565c044cfc4cad2868126d444b373d52e0518245600a99c40f1bfa5cca7d1f397c18ead33c4d3fd4d431ef84f1129238e296e3ed7be0f99e\nresult = valid\nshared = 01612ebacb6c31af2008aa264c45d1cee7aa533d78e1fcf480a3118d23418e23621f0ce9c7509f7182bf23a02a6530659ba62c5f16f8634a4f74d4c32b26c6eecc27\n\n# tcId = 75\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401eabf319253f883417a0ce265d3142396a75f830f33589486889bbd4e2091b827fef6090ab65768a38ffb3a9c97796464634d070622adbc3e9af198efb9d729d7ca0002fa30581a7b2681f7e224ead135ec7a6163af4f40aa333043a2badeceac1353ab5ffbeef929609137cd437e8accc0b02411603959d61c7a70f1391a7a992327a7\nresult = valid\nshared = 006a3235df6b85343eab82350620889feba273604e59eb98d78fe63bd441ce39411ead8402e2507fe10a03fad9562c3be4488378cf2a1f4c42785e7d93218d99fe8e\n\n# tcId = 76\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401d36e696aadbbc409b4733fc3c86dcb2e980a1b7d0158f82a27e5b1337fd2272e52a27fe67cc5872b5b46040d88325b2b524a2d5b873bc54ff051c1d16c99d9bc81003e3f6b1a737da16802430f809e084cd8b3420019c2f9f1b978a1128ffcb900b9c4faf177a7877e4a8384728a1c309d2bcfb412fa983982ae6b459fe07eb9c79edd\nresult = valid\nshared = 0009ca929a3ad9525d0ae19d36b40dc543d2348f8b0d95c59c4207f86a898849858e939b4458b568f57c054ee9d95632aa24c5d5f1d4eaa89faf8fac4d11da28dde9\n\n# tcId = 77\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401061aa89a317c63b824f7ebfc8bd9534e297df9bacf80b8350cbd94cdc4d3d8127a80db9555b77d50ea82c99e667f6fe5379a77c9078bf9c7cc049abe9eac7f174c00a9abfc2a892f104e30cb20cc2bfba6b948c6637ac062e83ae478f096869f17dc1bb4eaf52f7d63518031edecb220ec14b0652e6c96e023490d5ed08fb4259da9fa\nresult = valid\nshared = 013950ddb6b915454125e37a03845794fe32037eddc04143d91cbf2ab842495012896460d3824374b214ece10f39d2ac606bb4b2f9b27548e21720ae13266d14beb0\n\n# tcId = 78\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400df58f193b6d4fdba1d61a4e073a305c95dba4ca0fdd58f86ee32a9304a62097ac3c0d1fae32cf2e4e65ba4efc6d0408725f57274f9bc2289ed426ec27079ae0b6e01f07d98e2aba8d38e6d54b1496d68251004547f50789754c4097662827bc83f2cf59192eb9e09011b30c54cad9f9241c092415a366ffe5b6bdb4cfcbcdc46edcc12\nresult = valid\nshared = 01a1bc2b5e8e0a6210ef8a514ded99eee30ac8e9aa7758adecc4910301fc626a5666e4541cea03a90f1e59fd82b8cd87086f261052124cd43b1c89fd048dad5f2911\n\n# tcId = 79\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040073b917a356c0de8fef14593f66d5dab1f0d56b042ba65d203ec139c6cb71d90bb7dc0444d0e3b01bed97a5c69f27549c92e95bbc7e8e0ce932e6c43a75550e86ec009f2014e29acb2b255bf6ec9118bebe7325e1f11ff7885d1a2e142945cb741e26b4ffc6de72b715a148b840df549b49c9a05f8827f3ef05db98a4f664f6dd8478f0\nresult = valid\nshared = 00f34f3b8ae2f0fec368396633f581b93c38e329770085a51a93457087f8116386d58dea54b99ce56a80896aad40c2dfe69b2dfe126be17bf15ab7f19ce667bff4f7\n\n# tcId = 80\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401d860abb5c65f6d1791bc3fd626e3da1ce890514417d67b407168dc7fc96641fda56fb1830f3695ab0171d7866730747b3dce3de61ce70f831af85e5c6eae0b7c7701b1eba92b65ba7ee9691d908a14ad0a116a4e09b40c9ea4197e60c0b54f948422baa97d80b4ccaf7b35be681ded0aecdd8bdd3059054af838057888489c00a3b759\nresult = valid\nshared = 01203df60db39732207bd8db87501bcd8481664a9111c8c65b46f002b0b83159960e4710eba548f0039db24f66190c56053370b3c9884d445971a1296da4d656f9c3\n\n# tcId = 81\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401b341a7b58122c70b72e70b051a335186c89fe47b8f68c35d099b7759fb6208718875d8cd8c45d1151a370201a1b047002f619b05cafe39d494b6a69a52b42653330127e70b8fc840891395afd3b03732d0a52f4777651c3d8a8579d6658510d868b69f143c7eecd2be412e0ad2b2d7aef0717796f3f8480fa924b09df90188debe51bb\nresult = valid\nshared = 00b22d94b53fb00d48e12f12560eafcdec7ea157c9b042436fc66681de96af98ba98adb7faf79d12b399e901ec7bc9d5117883da205ac26b38f788a7885d434b6e18\n\n# tcId = 82\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040001ff249aaba806d838c1a1d00d9d2259e60ea1e8eec6686405462ab22a32a5b673932bbf63fd74eab3f63348a6c22e0d6e594b253f01ea211bb76f0b9dce66d671005052c1f44d17c334e522a0d8e3d99ae32fa48df6fb9117bee431b7a37440310985e5fdd82170817b0f68c0bb7300d217854e45fb694b46f5f50300627390900087\nresult = valid\nshared = 00e17a9ebd3ce6a19e5eaaf889b120ac1e38778e1c1129c383fec2bf9780d1c412ebc8fbc29b0646d77b84e45493376e991d5954ce3b3caf479cf8f701d88351aed1\n\n# tcId = 83\n# edge ca", + "se for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400d2cb243bdfc5ffb2bacbf437161f02cf22971d8b7f9cd0e65c174989f5ed7c9cc752a0c6a7719dc1bf3cbb67af5cd6025e313a4b0c46429eac1320a6ceb279dac2018093c8ffb1767b2b50109e40f18dbe748a357de1e284664aa7b10a8df3092a81edc1889d153965eb2e4f7b314827512b018baaf392581e2a49941f606135648f8c\nresult = valid\nshared = 00ff5caf7fd6da41a1a8bb47de3a083883e2e382477c1ff1d6ecaa44a163e7bd375b67d7013763a776df38e79662310a74873a4ce6126d2ec6f68263f24879699700\n\n# tcId = 84\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401da72330fd00ebaf4e6ff8a303d25c2527dff19d10d8e8aad05fd759d98073f262e693ce2fc49747aed29e27e323e535d469f0fcd1a8a1d08604fafe00d1badc4b300b7de13e7dcedb7376004a9f589922f187bd1be72e2de7893873d2392bbb84aa871100f8b95548f5df89662e98b631c4ee4d0558096d4170be0c1e21cc05955823b\nresult = valid\nshared = 01a64da0503e2df5d383837d05cd436ea627381e48e3695891175ac8ede9169ddf573b66726c28132277beda84bb47f2792b41113a0d2aca71084618f55daae55f79\n\n# tcId = 85\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040077fe7958119535ca6c1a7c87bb4dc9b936678ab3b757e7816938bc857643606e61647d231b9dad3e03fc4dd29ace5fc823e15f3464d8e236d5862b1f6280c836920061ba736c11ffa6d0fae6bc8f3e66babd3c6d79b89ee639459ec65a71f12eabcdaca447a993121dc63dde6ae0ccebe415f4bfe60fe3fec3d2f48a084b759f078ac4\nresult = valid\nshared = 0140952c273ab512e3a58934e3754f272463407e6189b9c1e259c27f6d433c4827532df627745acda64fd17993508bfdef54711f575cffad61c729e8d6dd8784204f\n\n# tcId = 86\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004011d3ff14f8906db60c7bc09c786be6847768b8684957bf3928c556bf5ce7a8cc82f9ab0e63b4bd7eb87767b3db2624957c3f103e87b5c197dc8c6d2507333ea569d004ab9eeeeab950086e030fc60b6b2e47973582a282e3b019e62744f19c60ca0208e3a537d6ca3532c59a77c540bce03999887483ddddfd524b6f9d7bfb6b1139bba\nresult = valid\nshared = 001a3a4343a4295b07d4b28f71697caf7e363e2f3ca205ebb828c44deb2f5bb3d95116f36e25e90eb00424c9880b4553554ff01f38b52cb34da643207d6f29312f94\n\n# tcId = 87\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009c9eb4cc6bed689da815f05e3ccd2675473c427d31158f1210fd8a6afcfb272971ef0a0696e48fc01ed9d82c9b1d4be086fa5a1363702780838da4fbd6481536d300b387bdba82a5fe57732ebed26a487d031572c223403c063039617f8e5c2702f602e4b87524f298392ae1d5862fa0ff992e51fce7f1457a0991bf25f66cf845639e\nresult = valid\nshared = 00103eda707b4d5e9a4adc17b88cc341966798b64c242cd13abdf319b77cb9ef2f06816ee820898235198f62071ee8b5c1735e288dd75bb0e5d5479287a02d21e833\n\n# tcId = 88\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401993d74f0a4a12d2804bf9e25752fab9dc0ae60abc6772dfe10afb056b3261f14fc51584baf256340b3652120f24fac700b729dedec97b421a1e931c17c528d5a4300903f97782ec1c5aacd7c3ab02082d7a2f631d9944dc52c9ad4e0258a899efb33bd81068ad43d7dc643b4d7f239a7ac42a26f4d2780215a68495f79eda81e8ead64\nresult = valid\nshared = 01087ad97d7121928c8e35e2fe915f8c90f3450dee09d3f6761c290426c74318e88fd04464c0fcc0432171667b571d834ae77ecca8a410379685d30b8cd28dc04bd7\n\n# tcId = 89\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040107d8b63bc0958510eddab9f11fa35ae4e5d97c92304038d8ec27f6e97005d0143e969c5419e82eba509336e23498c5b73e8f0b21e3d9f5cb561609669ef678c7d40196c535b623be6efa504e969ea71cb925287608740d04acb342b4135882783db8d255a6d556ffc16524babeee06d1f280ab8171848e7db54b76a3b31e4157219614\nresult = valid\nshared = 0074c332bec2028372dac82bb74c3f3b4bd0f0a6521dfdf0cce877b1a99e506ef0e4fd9bcefd3365428f257ed1595dcedbefe99928e7fa7af891fdc1b6ff9de12536\n\n# tcId = 90\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401d3f5704dbc67fe3e9ec3a02612edf04a82fcf9d5a41c5a330f4dc65b7c1e8a927fedf31a52b28bfe2b84e08f9dd98a2689440553dd8919fddd56ed736b9d064cc3000179aada2320049f18430d32a65889ab5a9840ff43388f7e2253be3e0ea41d6abe9e33b0c8a805c80c52fa66dab45f7ed2043900e3ada8d025648c4822743b5194\nresult = valid\nshared = 018d9f7f732023d2f87097c6f58afc7cee91c67b3df3b318517bbb402664f5829408d911b0a9b41cb2f7dcb96d4fba36d90f0275e0bf6b1253d17ce3f267a7b56bff\n\n# tcId = 91\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400d3dc62a070af81ad1dbe02ff075868aa35e3c3b555f58da4485e15bde789b6802b579887d753aa13589167dd26b12489734e80a34941c638c102fa5c199e4d11180190a3534120b8ff4cf7a9386185cd2c7aee6667f130cff1b060242d340029c15eb7d521e1f6a9663f19b2fe740b4384bf3480e76cbdee1da77b8f1c45b9e926884f\nresult = valid\nshared = 016f129531c671388010d41c934a2592d57de3376de7abfd32db1b42b34fdb13e5c8371db8c36101ea35e26d04e19ba891b0816a821c5103a1f68c9dc399b1e4ed50\n\n# tcId = 92\n# edge case for Jacobian and projective coordinates in left to right addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400d51e31634926269b2a0885c828a5ab76b1fe4e5e3d941d9678e4bb079002bd3c8e6c1f157e63c275731d57379142a8df9587d10b75ffe62eb4530e75d7634026d7000780e8bcea8d1399943f5bd0f4fd1837db2f9be7fc4669d0422c428c223da53b9566ef0d27bb64cae01d9f949d1a744e8b0e792780d1a243a079395418166d176b\nresult = valid\nshared = 00f55504f1714e07702acb1c594dd246603fb71f11e49de5906acf6dc3bef6a2402e1c5dad8831aa18894531cae087a2dda40fe2db582d3c20d602af62dc12b7e295\n\n# tcId = 93\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004019d7770d5d9dbe50786ec909d071f12d0b6d10c8b1ddbf546d0e6f4a3ff7e0476f04472eee33d8775586504f005e82329cd6b6cae3f63012a37ab16c47f27ceb36c009d6b670eb33fefcafa11857f5c3bab4fbe41c174650e25e49c65ac63cdd2c2a8f8f605d7e267ec2023f39996b8e825dd0431822108e2c01ff07757d2495805b44b\nresult = valid\nshared = 01b63a08a8fea820ed8c01f0b8482549a13606bd95a7f3689fdfca6c3f4e3d349c7d41847f134d06fabc012bffe98cc6e16ef573b534b3d64792d12d0cd3f1ccf1af\n\n# tcId = 94\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79", + "e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f383ca1fa8fba4ec0131927e6688a374f1fbf04f2e793b6b0631d19c24ec6cd75c52d0b19ec27c377a4ac4834bc99001624204552154bea298566300643c63287c00bd95617d1655dccc5b8ad50fe7b1c00bd5111b00338d6e5987a0742f608b74a93502b1260fd193b3bd3a90c843c1344af1638773189036637c3d7504d50e806555\nresult = valid\nshared = 015353c08ca7c484e27a3e04c1d8dfeeecac173c2b6e2a5dbcb0da5223e634bd2d527d8b34ba0e592caf9d6234fc54452c5fb505833a97708ccb8debc4df5dcacbb3\n\n# tcId = 95\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004005d11ffc03c08ae323cb938fb6f2a33efbcbd61a65840c33b207265ec8add0764d59e5840a85a062bfb1f705559c1954aee96e23c888e0ab6704f362bf5c58882f7013d7a4af3b3a58ad19612a1c371234388d8c06f53f03b39e84c22557cc6641a5580687bb08632eed31e0cc114d179da6865376a9d9b0eec67c1c598ee972b771b6e\nresult = valid\nshared = 01740f76c8d2bbd7179fbed614123fe2fdbb85fe8220300b40cbbb539d4754c5ef63f7b2bc27e129478e7aceec834713ceba27e2f6795344372d3c4d935a9c9e4696\n\n# tcId = 96\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401e9e395fe1b0b1662256a4b5953e98971dceee098b34f9faa87c07a15e2d9618e713f98cc4f8e89d66e06bf7f6b5b2e012491851b11d71141385fa9b43347c4823f008205a391bb03750c7951f410691dd42cf3d71df5f76b98c0d082460c21f96361013952224dda7463cde16f242c34c62673d9156aed7260e7b01757eee6bea60ee5\nresult = valid\nshared = 01734253e8d5e9308cd51bf04104ee08d163acb590b1a955896447b8a255fcd3c1256b4e86b9f316eff4d7613b3829f5785961eda4ee9eddeda4db4d60af19e31973\n\n# tcId = 97\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040164016e2bc36fa9ef56713da89acf0b048082dc631156740ec8ecd22c1238488371284345a96ecef6dcdda2e13b4f2b9491c386274897fa13c6b2313c500041975501c90a405431005532377c204bac9a0d9d226542584fbe3c89f785c708a23399a1bd14daa3e68cc76aed9f5fd4bfbe4eecab4a7ad2a00170dad37e6fe56e925e6bfe\nresult = valid\nshared = 009c6234171b4c43f79ff0ad95812e36b0784ad59253d20ea0cb98633fb063ffd8aa22a2dcba29d4116cd70737c1b1f6ebab4731c5b8a455788597a607b5a45bd547\n\n# tcId = 98\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401d36d2b3ec425a6c2507c4ddfb5b4a10ec4d4a150c5c2b80a263baddebd3198797e97ed7d0cca818cf4ddd47f6134b7a6d2b0a15ee60973f9d7da220f62800c5467011bbb5f8e9df65b9b2c105e4d8f6dbdc4f23f256b53b47bc2892c295e7cbdb4aae81858ba66443255659beaa308aea4c509c99d578fdfb873f51ff53681aea622e0\nresult = valid\nshared = 01cec1f027a10de4a6905ea32f534851a2f23ddc9e7ecd3d24b8b88be01f7639cac7847c9abdbe746c171a913d6719d7c2a0c0359c4036360be1e75e8b2f7aaa678e\n\n# tcId = 99\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400db63bd5aee53bd63fce054063dc364aae4f320f7ad2df294140431ad1550c7eab371a13d4dbb78f63d7188e61dc8e268888d9319906a28f360bf7ce868eb67d0c7007d66371152954f48581db91c1533ddf3b148b7e96a5e9964f706cb3f6ee805793fd7c5767e79f426233308c8effc1da71ec73744a49a69fb5f662407ff54d94879\nresult = valid\nshared = 005f900efbbad497ee904b80fce07029ad3f979cb3423dc7d16c9cf0853f89a487dfdc5cc34530afa8ccdf5a0e376e278a091bd4f6077c941ded6f1b0fc8840100a3\n\n# tcId = 100\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004015681f7786b77079c6aa9ccdaa58f39e9ec4e14e24d1bb3f0d6cb56bf7b78761c3bf58c7fb76a22943bb25db80eb0af7410d607154ef927152a8921fdefe7288dba01e5b19c827b288558da2df5f9fca3137ed0694078d3f600aa7a495fe28f418d458bc55276bf7d2969ac2429e2af8d05d4112edbe93b041f2d5d56a4fee5fb918b69\nresult = valid\nshared = 0124c23c00d30329065611075b02e55c3c667bbe3d65160fa189128af455240eb677a1ee07ca8789be7a8ed074ce17504a5903d9a752681afe6342b054866cbbf199\n\n# tcId = 101\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400b3e7c9774c523bbef857d59f8ccecd067fd18c7d7777c82c68146b338e14c5d0998b3b962354d9b107337afd4137233047adb352b8b1e215fcac25f1e3395940770148e5ced58410183d15c719f8ae4c19d95f910f3583de6e0b63b938e2d5ec670755dc24cbf08f9340f914c5534bf7f1483947b6b40626f1c7fe0e4d8ed843027b14\nresult = valid\nshared = 017a940dca15b1db9a1e3f54c0aa8eb072dce11650ed920a2931c68b930c34b5811d076c0a3d10397a18bd0a7a87faa78a6d984fb48b3ee53d20bcda84cb2ea7baad\n\n# tcId = 102\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400aff0e5216ee7cd115cc630909d20fd3c382357f0744480d86b177af4ff9471a1e360532a92a58252d93d1ea16ab47f4c090b6aefdc6a7a3778d15c68a866758b9a0098e23c4372372a527be2c6c3117380b4836d5ebd0807b80cd9c6efd96a7cf0757c2a635b9ad6dfe01157ff92ded313a78cad968082af33d136873f808d8e491626\nresult = valid\nshared = 01b98447f0c3a57def592cc0599ce7406f148186f94cd307bf87e4ab273d3a9b5ae6369b26692cab5c24bce59c13959844077783ecfeb777fcf3ce998f656a2382f7\n\n# tcId = 103\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad13af79e8bda33120a2a924b481001117479c8fbeccd0a6af4f50edbf7df8e395e32ff6a1e5b2c1b874336c44c65e1eed209e547b3c5761cab96f56daf17bc69300286bd6b0206cbcc7a99e7807f15df0ff83cc17e4474f1769c473e7141c384b8a39f5b5abcdcfc70497057ae7e09b707ac3a71b824a55d4d8648c5a95d63bd82241\nresult = valid\nshared = 00a3cd900b9885629ae8d83fd8143e7d8a291cd933163bc658f37913511837355082d5f39425ea322b19d61db3dda05f255e140eec4e98a7a10121eb2918dcf126a6\n\n# tcId = 104\n# edge case for Jacobian and projective coordinates in precomputation or right\n# to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400d4d76b40d97046ccf02d5bd131a5452d91195a13204b6eb4f71a5da9dc9156f619af8bfae8fbaced475c27ca89456f35e547688a6d0d9948fea49ef4b75b5e839c01738db8b3d3fffb1ab697fbc8146a70cdd657d307a6e6ca8a338661a08131e05c680ee9da4c88a90fde96c5630227c2fd4323f302d53a0b5121163ccc40befaf533\nresult = valid\nshared = 00931d8aa38c530db8d5e77daa406d166169c9ceb74ccf7020965673d09133253ca230287ec9997447f1ccbbbbe868cb73ea0e28f4b67ed49132995e75f417838d57\n\n# tcId = 105\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543", + "192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040103f36ec425dd88e5d82d1f8d747c93eecc4b46ac98cd364fc678bc0d6c79f8bf1fe0bd28235ee43fbd0dc237332cc2ed6eba8c7a5610b5651c9e0f2644587ca3bc014dde8fbe83b569739b860d7b1edadc7bf73f7f0e7a8702eb488d230da284322ce020e9c8831298da14180ab008465e6ded1f1ebaf65640d92ccf29abb6751a6f6c\nresult = valid\nshared = 01270cfe9b869d88e7dff6d45fc752a4ac72ccde73cf12ec227c274328b001a9f24d92b00ca0326fe19d69573d5b3e35f822ccbf4c83a3b3bf6e3153f0984281b3b6\n\n# tcId = 106\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004013f8cc5569346bf3325d8405fdde9fde71dd1e953c10ed6215b4f4010f5bbe173718a8e2e6d9f802726cd916e16ea1cd3148c879f0acebd8db2628f589c19aaa5be01595d669cfa786bfeb9dcdacedf563d04059867898f42e8a157c91133c952a97d90389891b3647875c822eb48f761930afef9b068853efec0d260d8e51dbcb6d24b\nresult = valid\nshared = 014df04e39e8bf5f6c34472f94f6f428962ac8a39d273377d0007231fa7f5f79ed896269f65bf84eca44e0739cd8b99f2e67977eefd768553d464c79e7d4d90a0ce8\n\n# tcId = 107\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401375cc4e1a928513598081ac4e4c0632c24bd1997e4850d1472507bc71422fccb64cd823d3365c06e3f08c9fd6e6e476a68120f203ef69ca11c70889e3809eb75dc00d1ed8d7ab74a72462367cb93e843c60389bfceeb2f869aa33491961c4b8389238f5db1f78b39fc0923a54d9a7e0be8edcb9572b2dbff0a729585382bffa6901925\nresult = valid\nshared = 01d3772b252c9ba35ff3472b280a7635ca04513ed02e4d8c25596c900c37994d26ea774737d9a9a8f8618a6ef0c1019344cb3f9656a6369dfb1d8f2a3f28b4f059cc\n\n# tcId = 108\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004006b6c4149ce3b4fa619e360f0979427d2c6bfeb3fa41205a0ced3a437287c711cc6e5875992cea313ae3d2ec0df6e4217c8c42bbcffa732c403e7b4471d0cf3953300ad7f74c69b7308b78747f73b4e3e66e33bfe4b21d45ac82a0b293b0f635addbee42a718b726aeeb9df1355700497900d9cdd0a42e0228cd1794f767d3bffb1c7a7\nresult = valid\nshared = 01c548cbdfdb40541dab744cbe5c45d96a4f0d1cf2e537d33a9fb4e4675c1ef54582c19294fd17c5fae2c51a9b18c37195e0eac0d9b5ff47a643df375a708dec71a1\n\n# tcId = 109\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401a7bae08725b97e8ad3d91843a4714d9205000dedea86076105330730bd8b6e5a683049496cd9f08b321cb2f3f8a05badf2370bb90ea1a49236e3fefd91b9c3d76c008c50244040c65bcb86cdbe193eaf6daaae2ba3a328adebc6b72c12736608abaf9c1de7e7b351c8e75d4ab801ffdd6e84b7e46b50976247c32515bf91cea3348906\nresult = valid\nshared = 0052c6c1b82b8e26f7ede705a8b484068b501a8da469caa5c203be018143618d984fa9421b135e1ae2212a27cbbbce3a745780d1847059d56c3c3dda474862a7904a\n\n# tcId = 110\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040090f74a2c8a5d2a990cdf38b185c7176b37ee50b70559ed85daff2fd45b94b7f9df34ce57eea654427bfad8991f6a5d385342af3a5688b1f8c724fb7e78dc18f20e016141f2b7bc942286dbe8344b68e0f9a2d0950da65191f47eba738abef20b9d107cc0cccf60bc9299b75f0d14147a6c7a7d5ae67a0087eb1f4b48a2780ec086428b\nresult = valid\nshared = 0113de20aea691f5d38b80bad93c80d92377ebb7302014f64ccd893fa9e67d384a4ed1a5e3fce2c84ba5fc379a0a6bdacdb6176594df876d3d13fdf1dc824da825a5\n\n# tcId = 111\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f7be229dcb35e444d3d891bb04ff5aaf270e8f8d90afd65afb1c56f8c77eab3d32e55daa31da9aebda76fb67298e3a1bb71505d3a5b6c5af37366c88041090e96e00cf3e132fd88384fae8753ae32ba669e96793b69d6a815365387cd9d4d21ad2862e4b2ffca1fa8ea05e34275fea95ff1dccab750bc742de12611cc3a135a9daf9c0\nresult = valid\nshared = 012090847293ba80dc7a8a4d5038ad6f3ed436b5a82e7a4a6d7cfaea1c19d6c74d3f707fa0ffc9f15a8c95c3e040b4f1b5d2b5ee08b9436410e36fda203fd6c5fc7f\n\n# tcId = 112\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401d8578b222092103bb17764fda334974b121305c4c1cfaee7d86e814dee33057a03bea234546605cf7fba50d2d57abd0808760a4f8d23f724c00f9f5dd4b026f62801923325a37b0314c7a1d185173b48c14051bc0efc9bf3e57ae778ba537e90c82cc0d42dd98e9ff5a8235ede5c42867e961def8f9f66a631168c2e3a1099c9c2de06\nresult = valid\nshared = 0199aaaf777a6c29b85e0ec9902f4f8d004a297b4570dd4677622305f4339ec726afb98b554175b99b8b3243f12a60b79ffe259471053e14c768a18cbf9ae59e149b\n\n# tcId = 113\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401badf6a411a405652d3e54b8fb2c5aaed8eb9ada9f06effc2e65299053b8a3216e0b5ee7b256561dfa1779970547b1072424b86bb6ef408cef575bdb02b79de35d4014ef3a47c25265b1cb2f28d5963f533f7acfbde34d45fa1ae5fae77b4c4e0c894280247664aad91c31a011fba50eb6e34bdfdf28f3e406a602c5071eebb632cdbe5\nresult = valid\nshared = 016b74ca4a588fa48cc5fe738aa84952e7d4908ef9fb69a4bc470eb72ed86b1c6bca0b6314939c311b0e3dae7fedd8daf96a37b7420dc556ac2bbcbd0dfdda281748\n\n# tcId = 114\n# edge case for Jacobian and projective coordinates in right to left addition\n# chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004018b9237723c029c551b1e14492460e7d2e4957dceee536dec92bb35fe8ede36e6b1cce155b69a0d7212c2b4f0ba89d3f6fc0e7f6777ff5c2eed8c71eff3c44da8480125bee78039fbd3c339a58bbf625e50346a3e8a9c73460ec68fb028fd4d14cd6315310e0311a0ec4f39fb3408519377dd4ea9d57779003862c312bfd09a9a1f9659\nresult = valid\nshared = 01d81c812e14804d562e4a89e9eea7d26302cfd755fe9221fca577e32fd5bc534e3fb2d81b1701afa0b4d9f25bbd1b2d7ec984da404014b5c23d8b2958aed864db7f\n\n# tcId = 115\n# point with coordinate x = 0\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d20ec9fea6b577c10d26ca1bb446f40b299e648b1ad508aad068896fee3f8e614bc63054d5772bf01a65d412e0bcaa8e965d2f5d332d7f39f846d440ae001f4f87\nresult = valid\nshared = 017fdede9470801568298e0a94cd49a0e81702b6f4ef916983ff89e4f01ade2ee13001c6eaa677499a9de7a48b7c7956faac580e63933853134dc96852264fb23f2c\n\n# tcId = 116\n# point with coordinate x = 0\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040199ff89acaa60d0e479c8168736a7795ee0c1b5c0b21f6cbf90e30682cf4464df9232343c91f3650cf01f7bc2b148d8f3b707fd2e3dff502bca0c03941a9afe631c0084e27155c0903dfe65d7b5d8b1bdec2456ca50c977a43f44e4fc4dd70d94b29c4469655981af4f0c2181f19dc4481307e69e206d4e0a59d48e4", + "3f55809139ada7c\nresult = valid\nshared = 005ff9d0e33b19a1ed65408254957a43c0050b195dfd8feb56472d3fefc463d95910862f9bb0a32d98053763333f92332637dabe2a4f9eebcf48a4630ec50bbf132d\n\n# tcId = 117\n# point with coordinate x = 0\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004014369b6e6717e0854380833d974beea9cccc01d7fbcc39245bc1427104c214326809fd1a678f89612d087df5e3d5ab1855178e01fbc6712482b3443cdbbfec3c77a007e5a8786aacae75f9f7e59b3b00cf136acdac42ff0da06a0de82d5e3c4169a9b5d63cd7c0c68308585f6f31a300d33c010042b44cdd0e6a811ad614ef18b6d4e06\nresult = valid\nshared = 00014a36b98ab57d1d599351272b3131fd12e18cb0f665cc9805b2402c670ee309a85b6e0c2a9cca28d5a4583ccccde7b8d5aaf30c6780cedf8a0b9a4f6a49e9c1e9\n\n# tcId = 118\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400b08df0612ddbbd8abe1cadf654f7b1500942971cb17fb63936750308bdf3e91daba0e2005575de7e7038f8379e997596d6696e5722489f7fd5f41a85f9b27b206e006d4f3558ec858e8b7b8f31af480a80484223a6f3652868a36d8aa0412e79d57c5d32297d80b508bf5a1bb52fb439163acc26b473033dc24834e0a44dfa43480a9e\nresult = valid\nshared = 015415d54abdb8536e1ae2ac00051e2af3c042a821530165d1febb6ebdd74781ebd3387f9dd8845d31a0331e4eb542085b61f0f9f408ba5b4635dd24dabadaef4701\n\n# tcId = 119\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400b574f6df47932a1827e36c9441e9a61670969817735632f1ec8fcde60509f6cc99a5c6530a96003d033f4ab63836ca292652b860641a2b98df83ceff2bf2419f7d016c80742e0392dde7016b106e3fb976bd5d8f46a8f0e74b900a8d26f6928b02d4fc1a97d84844c2380f6fd6249bebbba6e5f87fc5ea2edc1362d77e1c246651a56c\nresult = valid\nshared = 00e5a33aa0d346ba57866741f99011f145adbf2dfcc10cbc988c86e8a26e977b419ac748b106f14ff2fdee5a326616ab53ccbe2d80e809811377fe9af2032ca18464\n\n# tcId = 120\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004003174c3d34077f946f8986af218ca01f31efe57a236718eb88df26a3cccb24b30f1f8e9d4fbba2b953e161bd19447039dbaf1bce04c3460e1e3a2170e267302d2df0010cfe18ae6cb536ac3e14b3e60ccbe52b29a1952a47b5b3b1f4c2637ada534b61a5d94f658fc386beed612467f3dd1cbd8e4d6d154566ab994328d2a58e69ca7a8\nresult = valid\nshared = 018779cbba1718bd2b7fc2ac5cb471308576250ad412a5f98e28d14d76dafecb8455603bb24591b8e83e8a5c2c5505609445bf7a019a229861351d165801285b19e8\n\n# tcId = 121\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400f87bb74f77e9bb4611af79dc582e368a51f45e6ba1e0f3a56ff25a600a5afe0a20edf6496204fbd2e73a9a54d9c8807fc0b95301df19ca7d67299f44b280bc69630144cd54358b301bf341e7b0db7efff4b0010f179262e5fa181b30d19139129f42464b71ea2e0688ba3244d4f7cbe2f7a8c2a2b379c64a72d6bfbf87f6f1a87bc06b\nresult = valid\nshared = 01f455816acb59e6189e6c14dad7a779958b9b60a9549728d628b0af1a38bee029a717b311fb2b6cea5ff3c8aea096236c67c6a3ace04264ac7ed1beea2a4f5e9044\n\n# tcId = 122\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004005820a12b529aa3906afb061203c124d3b81f399b67f48f5cc3b5fd45907051ce0536dbdeeb4b3e4ea3e2c37991bf68be9a1a1c609a2ec7b4ab55dc006eae440dda01cb77d7df78b9874470c3dd268e9199f98f832953aeb7b07449d37904054c9dd217daf2f0ae6db058975123c9eaf9d886d5c3d6036907a5cff3c71c7a7a85f62f0b\nresult = valid\nshared = 002007fd98b4e334d9dd7686ae5da379c3c3a0512232844fa00ece76ea9421178b9c154942c0981ca2b8187161d59ad36ab2daf1753e3b59d8fa5b4c9bf224a7377d\n\n# tcId = 123\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040058e0d20d8a188d48ca57d4b73ea4e9f453a389d5d8fb948737ef55eec30ab60fad580d9e12bb840f82e74950da3d12be7266457bbdd943b831f8ad0d3b57e6243400d70c27ab9cb29f9d753967ffafd27551c78a1bae47441ad38204134f83495deb198247d875f19af99322c2937390340b327d9e6a58b41c76a326c6efbec02c9956\nresult = valid\nshared = 00199e65e06f7c56f3c47aaf9fb6651f5d2fce23fa4b93a21dbbff96559b491bb4a60cb2b9f35b7b45c3a838828a53c547543656c657c916597ac04cc005b0205bce\n\n# tcId = 124\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040014251e9b87ce81f7f149770c007f1d6320b2d813d27545773ccff4ce7484354fdfd19f9380de8cce76ceabd6530a0c812a34e4404bd82269cd012e1a17c71c9d6600fbcd443052cfaf03760bd5366378308fdd6bf29379f9b6b677c9e88b036ef26a3a276b64a7519e0d019a00760fef387dd483d0d58ab3d30158cd18b260e5041589\nresult = valid\nshared = 002ee30bb081a04b7c585d12cf2e0dcce94938deb0b72a5fba80160863854cbf7495fc4e8399ad06aa6ea05957b76281057f0701196b983371aeec0e4e31f6b42b6c\n\n# tcId = 125\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f51838aee36d1dfbb000c0a3dd84755a87d6dcc5ee5c78c88b30d3fe1549a8918204afbb742acd9b5120f109dbfdf9e16f0eae84bc82caf41349252fa9812a944101e0b3a7669bb3aee54e64bb03b68a622831150719a21d4328f732a649666a2598d5ad0f62b00a265a9e08f5ec0b7b6f9e1f8cada04378580b4a287a3af4ae395315\nresult = valid\nshared = 0189786700902cf0c1f5479d839ee4e2401bd249f413c04aa3018732fc5ff9c46a637479f93427e030fa474660e18b2cab46f6ae78f331c5bd351cbf32ea6791fed8\n\n# tcId = 126\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400a8bb7b5f4257a3319c6dcb1df58988cdf60453e439d230f4251632ff92b2424b147ca40824b25e6ec5f71599ccfd13ea62139e0eadf250c0d0da626f4f1ef0ccbe00494fa65939d5f5d144cea542dea27d7b26dcb5d5d6e813bc5307753b618410465b1b96bed79c98b6a60b58a0bdf83608c81a9ed362b66a4c61323b34d2a6416c83\nresult = valid\nshared = 007068311b5c58397c1637bd9af38b6ba87f10851eee675cbadc27860e78d448abf33dec174d982dab6d100d315c557872bc8f7aff2ba0ffd5082ee203840a7d64c7\n\n# tcId = 127\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ec49de21d692fcd7084280460dc1410b5ce14855f530214447b6f53d03b019b8e1fa7a862eae55fa9018fc93579936747c96592c98eec62571572e4b40ac8165e1014573cee65cae4d54389e8d74e120b308298f15b075a44ed0f50ecf3e4ab081aca152c614c51a7b312117df7fc607a861d2dad102379bbabb8d72fc836ec2c8230c\nresult = valid\nshared = 004e26f46b5204c8ea45f80115741ac6b0ad0fbc34ae30d89b85c1a390ca28b6b83dcd7448cd413a0057283dae285625bec2932e933ff348099821587beed65d37d7\n\n# tcId = 128\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400558582568ff68175cecaa0652bef373d6875a196a30d777", + "15638cd45059e9c207595f92ba5a02990a9b7a05fc8649365518cefea24601ec1187a9b6a6fd37d3e82002c2524983d5c3d4c093599f00f96a7a388e2dcd18ddd24923ab6f8236dfcd544721fd22cdaf20fa51e1bf9f9a9e998f34154f26624827cd2cfa1b0e634c83056d9\nresult = valid\nshared = 0159f2d6523ed3f373f2f955bb302bb94efb742c39fc081da1b96b36ce5f3fe07bff07fbd225dba9ea2a82c3bff8939b3cffecb5844be0ece9abe5c51dbf0212647f\n\n# tcId = 129\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040188dcd8cdf3855cf7cf7f622511c649aa96824bdcfe318485970ab2eeb2428e49ae46e279e3b02110839d5a4471f6a236adee760361043b3106488488ccbd2cafb8004b584ac1d3223c7a01a725c38c182b4ca92858dd2e769f83051db953e20c63d45d6972c6659fca664d9708b6973905e7304c396c5f739a0fc66813acaac1ec1b0c\nresult = valid\nshared = 015b29e33f7959e2ca91f58a7e9e4b132a0989687f5a39f8bd61f7f42275cc256059a04f05a5a7a386edf071f7c981235c3d052ff733843bc9738fa104b9deb9245e\n\n# tcId = 130\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040113c71cb3b6b32f6d2087978f3f0aee36ea8cb1f028d2d98161f7758bbbeeb3b96588af97bcb4f3fffc457b90b51739e7894f238116e985caacff3e751b56518b3b005b71f5230598689e6254788b894003dc91ebd953a2fedbed23a068b9f943798bfe4d045f7b0bad536727a73a66f250136f8f5006753ff04b00a148afbe70efc143\nresult = valid\nshared = 0039cf5009c6411a5b71b0453f85b41f506b72dccb33f344ad257244dcf9c524caa8fdd376b523480ba22531904215d26c8a818b8f80a4aa1dd111acd8ee84cd453d\n\n# tcId = 131\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004017575a3f85834ca4832bf64c59df1bf30ac8304291c815397dd9d90c02ae055964110814b158f029d40b36b2a85a9568679fb56a5ab4973068d9edd80edb7a6a76a00efa3ca3101158694ba599d27b4ed0c439977d2855dd57dd4bd311acc3882b09967af64fa34ab08caf24d2acaaf32d93cac8839d391aac51e2cd067f4046b5f87d3\nresult = valid\nshared = 01ba069254a951a961aade066ff04797bfc9cdfebf2a19e4f4b724024e316e8afd9ed48b636a4a0d78cc4d37d9402ad1c981640f90d28f4e566ceac9b66c4000d3ef\n\n# tcId = 132\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004006dd0ee8e43f615e30b63dc455701661c9dec69dfde65ab7cf9721039e3e5d3cc5c12f8e4c0b6a3422bf13d32e4108255290f9cc9d6e4cfb9c9ea165f9345e1759c004649f03b78e5dffabba70e74e96c5362fa83186bdc44820bb0eaf1bbd1a51976cbbcfc03a986bddf93996d960fa77aac46f9b7a5c32c62c3402c400b3165c1ba21\nresult = valid\nshared = 016c4bfe17c91c3ab2c60e5c9c2fac1be4893f80fca05647c34c82ee8ee5e3b3c89c6e87bc3af444dfdd1d692a3da45a45975bd50774471313d5b7d149a5395ba7ed\n\n# tcId = 133\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401a6d5d068b1908177a1b18fe078df8f89945870ca8811695b4470048ce0c34443b9a7f95f8af9fb6a4ca0285d1791ce975ad5a65a5c9f6b3df805cc69b3984efed401025339e40a26a3f6f4fe54101706b7f6d475b90f58f7ca5817ab5c3df4d83844f42979dcc88dab0785ea242643159529bd1ceed9be4eeeb2302facc6b440b58264\nresult = valid\nshared = 005191849104cde5be2563c0133065ffcbf4bf411af32e09865989b394ec75e82b4e4649d33125034f2b8cae1c29592aaa9e50700da74c088318d720a68f58653e12\n\n# tcId = 134\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401bd7d67379b3096728a366796f7014977d11eff92f1fd30983c7452b82fea61f77ae4a431873e2c5588951b663504610d1391b8f9122fd7896ed45b27d2320382a3019547260a021bd86bb149032bad3c6ae194445899573c4007f44cec88e232e43d027a362cf59cf128367cdd595360e0bbc2a25aca863b097757167de4410d261b16\nresult = valid\nshared = 001f8e925d5b2d22f7d1d7fddaa3575fa32d446f99e774db282c93d00beecabda9aacfc644b9cecd76e7f122515b6ebef3b56075f7a2101f9c492e83e62147d09b46\n\n# tcId = 135\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009143dcc8d445d7f664481fbace68900453949537fad73756d818561e59448ffb49022b737fc3e725d6c1c45bb0b068809228b0fd8961eef220612be05040c5402e01f8bd056f5f9fb3083e9083374864731d75441a1dc52b41904d6b2eaab805030b04cda6fb42eaccc7c9d50656f0a85225120a0671b1892f2c118e7b538e5c55aa64\nresult = valid\nshared = 0072a7f99e291a15c45bc78c484e4fe94903a958048126f3c2405c5ff8bac7dd07dd96d450b017f6cbf6acf69fe113fb7a6766de8a956ec06f772c15c84de9f4d462\n\n# tcId = 136\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040080faa5685c19f085101f010e83b2f0100962a18478c9b51aa0d752bd0e439537892a107c34a553c18db4f7515f2ef38caf8253ad2af8c59d84b7f79172cf2eb4cb01e9c0328270b761a0c915a6ed29ee223133eb466efe2317c6f8ad2b3c8d88794e4aba3f966b4aca5594c9a74b37b4503ee5a0794d59c108666897f5ec9bc7bbcbd1\nresult = valid\nshared = 00fe7b90eda1f723c5e442017dadde8affe3ca80afc9f4703267626f4774f06e2c21a5d9c6472882ea8806a9139c4a740f2654d10caa5e3d7bbb7e59713fa032b9fd\n\n# tcId = 137\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004014d6f8fa157eebea8bc272862d9f8fbee63da5be953e333d06b7443cbb96d0c464a171943b82565ea710c126498aeb7979823b2eb1e81bed3ffdd6e40f4521e6cb900701bcf9e45d6ae4899d96ed59a8015c454735f9efddb47598fbe047e8c4021d786db3539da79760358c0f928b2b72cb936cb66e4fc81ff079ecde8e18989e87950\nresult = valid\nshared = 014063b3dce4c99f5f53e5f360875c02bd4534a83bbb779be9eb05e670595e57a708691c5df0a0062b43d0fa349db201d6279c131d84e9662cf82fbeeab6ea0294b6\n\n# tcId = 138\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004016361d19207fad3b9cf68a0d7cb224744daf5c18c0d79f060ab1369d7f026c21da2dea098739fc79e664bceed06bd8b8f29471907754319cefd9f216f3226a4a87b00b7007b2df9a123dd81df4f5d5213580c174fd68aa5de23e5386c1f76bc6711babfab72cf9bfa328e97fbe9a3b79ad0d39a778e3c64b74a34319aea0423fa270067\nresult = valid\nshared = 00765188ff6d0db190914b3ee9cbf633e9e5c2607b7323e70e76c3cf3e2b3f1cdceda62b5075a8d43b306fc83e5e4394cba6be0098877b2000385508d0942cdba46a\n\n# tcId = 139\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401123d8bb17d84760ceb4e3ec98387478f9587dcc05b4720d8834ffcd82c06f59aba278365e834bca2736ed6333757f57920256bd9e1b1bf3d43b620896dbfd877a3012135f587ed6a6bd6b095d41c7abc2a70c9d49461d3ed7cf4e781c8200583a0e8e94ab8a00b52a7d0bbf182cb3bc0832fe82cca18e53e78b049bf9ea6ac6017e3d8\nresult = valid\nshared = 01b1c9e8a4748e6e1aea3dabf37ae74baf2861e482af32309dc93e7c7eaceaa584416445a1ec4f0f24b3938e118191a5bf9e72885bba5c282275c49f5e4bd82e2567\n\n# tcId = 140\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac", + "2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040061aa4aa680e5a327ee0495beff81c9a9601a4a42a830725538f9940d234f8fec38ffd21537094492b58ecc4102eddfe18ee8f5947c4736dc60066fa8d9b8230f4001730296bd1d13ab65e85adc69c0822e20e7dd739755bc28d7231e79ba1c31250c1972252c280896f30a26c880a348041b0958ee0443c2e403eb9828599cda90f7a8\nresult = valid\nshared = 0153a4709fc474476e76948b04d430c2ed708ab697bb54589d35a7c96d33632072b4a37deea3428d8d0a933c7bffed068d92a9061f0fa39e62e7d552b31e4a150509\n\n# tcId = 141\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040086b5bcf4bbd05a5b5651bca9791e550fec3e9b2ff0d6bb255b2d9190f5946439b53f9513a122e5ca0a9ff12e3386b7524e46d7f56167ca6127ce83e67bf5dce6ce00865b2083d5c0200285ee7ff4950922a8abd4eef93d8ded25b53cf9af327e6e4c30c4438ed2c40c67e87835518361c98fd743d859f6c173a951a95a99409e831959\nresult = valid\nshared = 0167d0da4c5dadd25f8787a84a96445c254d8e17feeeb7d21af6712e307cd7351ebe185c0a527402a5fedaa1b26ace5549ab13b208156d14389fd8133c6f4fe31e2d\n\n# tcId = 142\n# point with coordinate x = 0 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401a09aca765c949b656abdb5968055316384245ab775e8584119405c85ab79fdc7ef1e079a35bd299ae149d65f15ab0d64912c5c9a62bca41bdb586782e8eb0cff9600258a50f1bb542dd164b8943bde1f2078ea7d3e89181efab242da30b1a12562184104449e4d759dae9cb9d075c30456b1a4e48740dccad7b59b17dc1c81d517f2cd\nresult = valid\nshared = 01528f5ab758d9b6112f19e1021f5089d526cc50911026e27d44ca6d77220c816b2326a2dd6b9152408813bf8d399906cb1ae33a52cf67e74709d796c70701710457\n\n# tcId = 143\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400a6e216a09b636032f39eea552192c242be7ff5478f7f7f9b0caa25b8aeedeaded33ba66b5feec7e75b0de3e7fee142f250e6cb4c7b09a1686ca0bd9cf2d2d48bae00fcfafca2391a55ade0a77fb9a381cb0af16253cd3bc58723f8527670b59567698e7fc3a17e6d26b3a8a4a617e2b12e6d60391f503117fea2ddb46978b6d2d30a26\nresult = valid\nshared = 01d937db2fcaae795f4aec6365be81a514939c548357c6140075db4a076be8c0d3a6126b720b105b3d9cf6a8307346cb832fbe3a936017a6e62059bab6723e885176\n\n# tcId = 144\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040050b862a82a0ba92ab45b396c51aa519aa44d117f55760e5a4f1f177dfb5bcdf0d54fb99565e9f7d6757c04f49456aea87075560b1dc5145bfa4068684b04178a8501e1c68a57b38e2281806f3db7b0af0e3c2b5e52d5d5d4890c5b9f5d737df9a706e631e4453f6e79cbc28d57bdc604aea8010eb491f5c09feb20e3bc0c0ed4ae44bf\nresult = valid\nshared = 00cbeb5c9df0bb30a8b45bc17a5bd255e2c8249dbf9133705bf1e502d4e730edd3131c8d370aa7fc78d46b2291181bb40ca85e7a0ac6077cf4367927d8c5b6744306\n\n# tcId = 145\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040057f27cc7400b6f9bb3a0f723bc0670938ff888f87917100a932115b12753a1fbb086e5b225209b4f70703aba374443f11fcbcf8779491e2297fbae7f18be2d4f230006a7f04e4de374149dcf596d94a6d7ef8d30d9888bc7500226ed7bc8560729b7c4b4bf28f4f92d7f3b25a5ace886e8be3ed01af02169caea765dc763d0da9495c7\nresult = valid\nshared = 01a26aa99222e44ea4d6dcee229f21f40f723b5cbbe92d56561252e7b09f96eb271ad92b3e16464608745615182fbb7050e2991b0afc040f27ca74e358346466cb8a\n\n# tcId = 146\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400e04a04d1e2bfa1a5f6f37867ec251450d46e6bd28067cb99a612f6efabf1f72c70eaf72d70daab53890d54806c46047766293de085f0f40462b2f56ac4fc6811bb00a20fa00fe8ccd8b007efdd6dafbdaf91b10924c0b8d583ce829202c8533e9815451719f12cafefc3d3bdca5d510247d59ffd20d539e22165f11b5d10e912f1f9e4\nresult = valid\nshared = 009a6c017dae44957db6ab3476a9dbeb660ea54e20ab785d5a341e0e0265050fde217900718908e1763eeb66530475fc0d0a1346c6c3bc2952da7cf034df18650645\n\n# tcId = 147\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004008d3e0c9820d2b49711780849ab9349de295851b69ac0ff6b2eda1fddc17e97c7ac2695f28ef6ddc1e16062ee48295fff5711cd871992a8a184b8e5b49d7178b5ff01709e435ee6c7ccfe6692c7f169ae357e94feebcad5d6ff0da7ff55a19d1409006aa6083f897824de4c0c59bc80d40607a9bcfdf666b9aa388fa3b865d76c492916\nresult = valid\nshared = 01efd3feffad8d28373dffc0e3a9cd544085ffc28f5bb80697801db4ccb983fa2328222a429e7d6367ddd4a40811ac2adc8fbd8ea06ea408809d5b82fbed3c8a95cb\n\n# tcId = 148\n# point with coordinate x = 0 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401c02ebd54765a3825d7bfad5635a98d97f73cfb57da9c42c1f464205fac01cd899f7e095a1039b47e0fcbebd65b6ea2c486a7bde4900e9548d8a64a0e6f39d61c9501f5eb9d2491b42e3d02c20ff853080aa2db823f6091a62a2a6bb52d09d3c162a3ad02e0242d243a61ce0063ff8f8e93ec21aeca4ae2b152b8f68d40dd876f80e7c3\nresult = valid\nshared = 01424784d1fca3b4c7811083855fbf8662e1f0ee52b5ffaaa0cf890bb904150512a75a1077ead39ae37ec67d5a3c03d2fcb5f9f695f9918cf4872c5b4a757d1d0fe2\n\n# tcId = 149\n# point with coordinate x = 0 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004004b04d3d1c6c47069c0bd44973e75ac753c9f284b0b1d52308bcdd9a1e06307a8ce7af09362f8cc6a2b5b4b2349e2830956abb1191c7e84582db1228c2ec25021cc00c2af05e5c310388c8a16835d06042e490a9ea8c4c9bc532c2e7d46f200107a97e0fbc5d9faca9dcb2249510e199896ac36e0399b0f17650485eb748e1fff9c77fa\nresult = valid\nshared = 0132b97632e57be55586e887d26dad41e500bffcfa96368484557f347c4be821302de8f3f72b9865834d579cf696406145eab512e2f96d2aa589748f64420869121d\n\n# tcId = 150\n# point with coordinate x = 0 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400cda2db7fc4f9d4c1ce36ba82a184b2fbfee206d9a5d050d2bf1b2fc92c0d0b78eca3b51d724aa5fa48f666972b473accedc49724ac2b3e779d4c894198d9ab937c00cd13857d84871837f77a54f0ba9d18f6e942d1d6d2e7167fb53e3585b249438289abc68927ac8c29d65377cc73f85d113511f2622bff697465294f5cd1a3772839\nresult = valid\nshared = 01baeff727530ded5f903b2090f922b479c4631afced97ef1780984d9d98fe06a47ef0714ee4f2a32f08afac5a583a516229539c2c4c82f361b6f159222d5c1376b0\n\n# tcId = 151\n# point with coordinate x = 0 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004003ab4db21d5645f42bbf1622e26cfe7603bf222af84549dd484a62e98ffef26c13da61aeb5157a91d70a828e96873e25f06c45d652509307b0c998391f951d611dd014e599e94f3275ce60190aa63bd8c8b6edd7ed11eeb138", + "5d0d1137168624eb6d8125ae9b85461187201988cc11bc557680d5bbbb4f54c27b4549831b7b6f1e59e93\nresult = valid\nshared = 01855a6685db05fee3eec9dd11750d31449e40696e8e1c6a5e63343de2dae83147fad337ad9020ea131fab8c4ca30f4a03e0bc628a4a5ab78a09e071fead711543be\n\n# tcId = 152\n# point with coordinate x = 0 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400bcaf9df5986efa542d7ce9eea05e557c393a3a3e3ddfabeb47549ef9a2924ebff58f7fb5989d404258791659cf421cd9d2eb1ef6cf21fe428182acb72aadb3fdc0003d638efe16363a8af869ee85dad1c6f003d4f4f827a7a18c75bd7feb330133e5bd297abf56159c50c0d04aa2e3b0194d8de2e7d0fe4d6d7a8901fd362e310ed4e6\nresult = valid\nshared = 00a57bfff03140611be23ad52b3f0d525abc854f830d3e4835d801fa9754e1cfc12a4e6018958b44ba828087ecfab3ae917aba090be1464154ace55d4c481ad83145\n\n# tcId = 153\n# point with coordinate x = 0 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400118c04c32a75b07702323ca226a4ace054424b1a6e6edcd4011a035f4bc0789f6151ff849eff8949554fe4d542af1f03c79b369ff4c38d1d29b4a3bc41d5e05bb2010f4b8d511ac5b1a6534aac9dd2486b8cd07cf3d5babc24f74f537b04115a0a8f6d797798fc807fb002746b27892ae30f751034b680b1723c2ee859bdaed0540e77\nresult = valid\nshared = 01519ba4179ef85a4b51b30db2f6e9e2f3d49b1f3e8611c9ba3286d78ca645d29d7a163055fe44accfc724091d0842081a0fc39f0ff7b7d742346ef293e51a1d7107\n\n# tcId = 154\n# point with coordinate y = 1\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400d9cb7a32dab342f863edb340f3ea61ddf833e755ce66bb1a918a42714ba05bcdf4ff10994f616a9d80cd0b48b326e3a8a2a8f5634d824875b6e71fb7cddd7b5018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = valid\nshared = 01b43cd9280faff242c6eb21243f54477a0dd91ff1b0b1a31d6011acb9211bd7c4e7602e488d4cd384face2aa243db2cf8c8220c566dcf9511feade8fc26b07b1d73\n\n# tcId = 155\n# point with coordinate y = 1\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400703dde202ea03d1d673735002cc62cc740536104d81fc9fd8ebdb7dfa908f599d8fea46debc190a5b2ef5f4493f9b5ecd8da9407bf4fc8e1732803a74ee65f747b017c9b038d86afc941403facaa1e2a6376dec075c035ab2c1f42db5fcda3ad3fec67bcf22baf6c81b4241b4a9257f8c2126880e1d6a69a3e5ac7e98710fb24d505df\nresult = valid\nshared = 01b248dbd8dfa667a10ab32af68fa8967c69496ebf80c11fd0efb769ea93f84f5a2968b7ed81b2fd9aa913accec701ddce0d1f8b43b1c671f547822f796efb12d559\n\n# tcId = 156\n# point with coordinate y = 1\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040004fabe53e63193571d44521d36c4b646e299b390efe50e5fa1a738e700586fe41bf543b07fe4fafcb724301246e8c096c499b8a5d063233aa748db9d2163d1000400928a59f3e4bec0464f021c5ad086456231a4e44f162fe6aefa7a2caef9031ba83768b54762ef90b1e508eddbef69e53f3f9ae215d4a0612f737d16096ddda322aa\nresult = valid\nshared = 01081c5a3289354db20a929fa3d9607c2ac58cab7b1ffb2802e6a778af1b79ca7a68c7bc1bd37a05772ef8c28f4609557f43387b271fb5a274ae3e8814c7505444c4\n\n# tcId = 157\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400b108b6cb1e04341473646c80f8c9c51014cec7f079f968110ab35c0f05b24ea7722327b5eb5bca748c35c771aba67b232c820ed544f9d4efd43d37ec49960db2d700ac758a1e225e3db19a1f3ea9583ad9ea6e994568f6ddc124b8dab49bae8357b3c70537404ed4d02370e1637ed5916b43334859ece3dbe6dd26065c24df11b8f281\nresult = valid\nshared = 010e64a6dd87610bfb99a134039b518c8cc87019ed5a2fa0b3f98be8fb3b2d900381a50755739bff483e400e5ad92c016ee3174df8d528fdc08a176d6080c183e094\n\n# tcId = 158\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040124508b182dccea6ace2136e53a2d9b6149dd0ae450830666f0a9c844918f0fb3eb87f7f3f7707addd77bb12cd1e552ef12105c6867a4fe81cd1f6a4001c3fe6e0801576d60d07c02b2559cd189abaa703e36e29c66d3da18d34926ae821bd21694e15319093db25f620b6480e04a4c6c53b1fa388f959b65fbf8a8829b3b262f55e4f2\nresult = valid\nshared = 004af556f09b9d7a024c4dc941931d655d2231932ea045a7faf322b14f97341999a5a5605c7d31b2e93d56f9d8136306a899d82bbe2b61b36af2336a0ede70dcd392\n\n# tcId = 159\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400e2b5d2bcd2b483871b7d83c2db0e957ef223f65b30f45d4ada33725373785c0d664a8ca2c35bc35a952fd822b0072a960c60e319f4e06de6c785fd8ddcbbea18d200300234471a92ac2c5f778cba8a97f3b3c45cc8eac1d815b45dc02f9b74079ac56649093d43613005867b38f3f6695d50273ea2f68ffa81000c7895e91ec53856e3\nresult = valid\nshared = 0184771f10891b6dab953663dc41600bb7b2bcd0cc6bd319795bc89ce2cca1883cf92fd6fa7b16fb39c3737454bd3c22f4fb2c2e86914db418b653a9e0dce3be5ebf\n\n# tcId = 160\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400aee0e3097441d50138803ff9b17806bfca1064feec209fd0b5ae57c6d87d9e5eb32cb0670f12fbde06c3f3ed8b1861b6d18f6bc6a2552266a240686c529f044f570100898b3c6501ebaa81e69ee019b879d6ee3715d5096df83961e10bc805d5c674caa98a1ba29ed004808931a9615dfeda8673cf39f0ce4a618d181c04a866189037\nresult = valid\nshared = 0024f79251c86e06ac18e6404cd303c2fabcaa9564218c160c1fb7a99fb2c699b3ae65ca2da8f66ad9d75cee42f19f1d77f194fdf2ad7854186b977ba26c0e87cdab\n\n# tcId = 161\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040047ad264a373c4994f942ad0942dae8b23a329fb7a46e987cb921c28bcaed4aed60e5ea6fcced4b3ece4ab7d91b349e3e45abce93e9765ee2fe9f13d5f230715a230059654010a57f0e9d1ed46afac4aaf5b3228763ed2cb2b4d78a131636bd1333f12799779a9f0fec3ef24452c51e8e4f31ef6dc1129a454f079258eac10adf8879af\nresult = valid\nshared = 01646e6ed95c47f60851b16b8da121b7a027ae9b05facb08bf52ef17e67a0efb1c49ef903de89082d3b34acacc5cfb63eb6a620d0e1498720e04559ee476bb9a75d5\n\n# tcId = 162\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400075daa66c8b4298a8a8cd395022bf2f27e52830868b13b1760f22bc29c99666f392385805b9490eca476defdf7df0d6b49181c3723770933c82761a2f7d3cea39a01bd89c2ffbbfb461f212d16e9a9047253cdcdf179ce763fd49172f8bfeeb68d1c1fd6e2fd6e6416a8b015513222734360f51280cef5f39ec5ffdc756e44a5942764\nresult = valid\nshared = 0129e92c8bcf5e735732a7f876321aeb2655e8d226c228e51d5ab6fc7c05b63ca9400a0c25bfa12b0a7ebc84efd62f695da7cd44c1ced1ed5cb788c4de12a517f1b7\n\n# tcId = 163\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004004abcd8469f194d0ccc0db46492cddfb0552bc1306", + "2b7487acc38f59a074f682001db1addef6b28c5479eaf5d6b95b37c394eb91ecfe02f0087fc639700b490eddf0121398673af0d639191e3122dec7b58526df7054627f696a569892851f904382dbff7b61ed4ab1953910d27aa356095a2ca45956456c8d4e1ac56b1ffec95fbe8cf\nresult = valid\nshared = 00cee0328e75f016d056986b4c7fceee7610237f69dc2cbbb6266659535541269f851e36e0888d635b506b8c00a8dee7d987745d8d06519d15bc752bd5756fe327aa\n\n# tcId = 164\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401bd163989c407d5f8f9fd2e087b1473710c4bc2d6a97d281984c12cbb0615be9ac806c292c9d90cf35ffec665760193b1d7681c47f8bdae37ac50d8a40760a047fc0167cce4dc54e67ebf56407aec33a5aa20ba867c856f929fad778b39b0dc51249d24e390d7e33c72382c4a1d02bf73d605948a73a481bdf329ef7b7f04cf3a333c76\nresult = valid\nshared = 001e872a534bd079550d50a2def1d439083bb3423a58a923ded2ed7de768022981b7cfc75c970caa2cbbf2c4c7cfd9cf9846844e9c5400356700080a7097f00e1548\n\n# tcId = 165\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401f3d659378997a75e456f770f34bfac638f1d38777cd0a77207cbc42b540c1fcbad583b93873163426eb91699f8c0834b13695400de49796788c592410c520e859f01946225c71e241a3a785d26d121d56145ea8f9768f3a009a2e3c54f9c876b899e81ab1261b2bd5ef99f54f44535f9cc76bf0f44e91a5f139e9927b88d16dccc4b39\nresult = valid\nshared = 01f9717e8a71cfa94b943d41bf12c70bcf51437419b2da0b6e160d06a3187d781769c75d2a9f97a8499e396069a059725f47a10103b78e568e0768499112f2f16b79\n\n# tcId = 166\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000520d4f93ad15bd8399697da58b203a581a3868c55c8ad9af9aef613e214046e56f2a82382fd9eafb1f5281e6f6e9f0bcbb4386ffd8cdf5dce09257cadab97a010011b425853ccf7987de724596be0c23f1d5e1c7d0932d2fe72c5f223b9d03a78b88cb09eba6c4245240f8549c7216e53a879c96668cddc01d51c7a52db201ab77b89\nresult = valid\nshared = 0191c0565fdd561298755620d9a7693cfce185c57b6391e4f9b90f7b22288b4f3ea3d95dd4d91b731615646aa9cf66db8aa0c302ff0703026c303a8c3b1f3e15ecad\n\n# tcId = 167\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400568a78ce5d2d030ff850879ee03c201e4dc64c58588d2c8feb3ba9b2d03857af3c29cfbd789b797f8dba4b7470f0c84121231f356b63e613d0fff5f8aaea8c86f9003d67dd0bbb1d8588f18ccf31cbe5cd286422b708c386c1f81008647c824f694c1153553009773c657b2b84cdae98e52fb6240872a31bfb0fee3f2d8a94e5319e49\nresult = valid\nshared = 01f86b35038af9371a8412d75e5d46a4fa76eda9d7be740b14e8cf19416fd5df2a4ced3064fc3846ae99542488d69e3879619fa9078cb987dd0d14860b724da9339f\n\n# tcId = 168\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400d724ed03cea80c5794c0f077b8060662dd744e4e8d4190f7f313c40597fe94bd2aa70b20f73ac4dcef99313608c2031c73f13ed1f5d9ace837c580fd02a4f2d6d50155ff556f046657ee5f50757b9078c5467fec8a0f7566ac15db168afecb7f514541d2d1ff87c5f67c511a4f61a91c579991489ad5a1c8c0c554d9b36d1486b27e72\nresult = valid\nshared = 01d1047bf7e622cd428e1c76aa2c044a2058a2d9f4b5c179cf9c9d4607008181b159c156473e7d25fe49dd63ad150073cbc2de2fa9cad50dbad9a08d56eb22d8d341\n\n# tcId = 169\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009339ef1c1f93ca5fedec1ff5fe30334eb123c30e6a17c7b65f3ac8461fb779075fe69889a42837b01eaf44bb7ff8984c0beda0e1b5278a62c07ec128caaf52d8bd0019c095ffad69ed800e223a8bfa55d21f588dc7f9f41b9d75dc010792b6fe243d2308f12dfcd312729ebef9cc407443c04b0cdbe57714615241dab8745cf6487bc9\nresult = valid\nshared = 003eef535275e15f779ec13e5cc7ff939c3dc152e79aad0c32a03b8cb9f8c449b4d9469b362e959887c5a6f20962783c667b32b3791fa701ed52e82d1e3d2229733b\n\n# tcId = 170\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400c25a9065377d2d84372580a2687667cdcecea580be1a5e72e1fd2adb42ebda8d6a70ac053e49da485732bf13430282fa4cedac64e1b0693051d1354d8d6efcec1201e2d2bfb7b44f535b87312ae67bea3d62800b69d43422fcd3689a1bceca6fcfe4399b7c318a5688d0b4d2333922d595cf8142584fa898c69426f4bc478576edc8bf\nresult = valid\nshared = 019034896afa681fdcfb11ee0c03e5c588a65239be8e555a89280b7a9814174254fdb496ec0faeb2a1d6816d276aceaa98a53e09efe84a752c09c501b2bacaba69b8\n\n# tcId = 171\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401c2402f341b4e1c9755b3e102223c80563c61c41a64cb119958c41bec2dd9519a475ab84baafb708397000b80b9d275c13d7cdb49127e1eb29a65d2d374904d090b019e06c3da4e884d6ed935c4b92c84bc63e91cbd665cee86cc151344a3a363fa75ad56a9b804b4651ed85663114188e63cebb2c1887f96994db9703c1d0643812cd6\nresult = valid\nshared = 002865551ba95fccdb0c814b145b5a57c808b47d5b08259ee41174770a7302d74a2cc78c7822a6edfa19b22e8a0d616260f1851e0d5dba50a9188e45afcb7dbbab40\n\n# tcId = 172\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040083f99cf2767ce0cc8898e461f9104060a9c9ea1342a2aff705610469286592aa41f319c50c83524881fc42169d072550825cf92e5ad110abd77e8ecdd8ca09f95e0037af6a24d6dbc9c85dfaada6c5a945dd6349b9f1d1ee10f25f8dfcf0522f3623337bfcba204e7e8e08c25564b4fe933cb6fc145ffef82baa2fd03a89678ffb7585\nresult = valid\nshared = 01b384b48405396fdcb2c57f680be52f91b7c885225ecfb4f786ce6c1490162b3c15ebd8e6755e469a7ffcb91cfd7406cf0ab934a4645c3a039941e7d8cdc07ddace\n\n# tcId = 173\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400d7fb4d5592e7cf724e57e6ab95e158d818f197f74031318dc83d3c2bec5cd8486481fac97ad6b481e837abbf352b992c2264b16f563f8442526bc6dd05a6374df80161dd90c908f5524ee6b157a86f6734a25e140638bdd839276fb09b3fad93e7ba899d6b6b3ed24fff8d499ad98cc45a35d62b8c461f7cc25699723a033e5b1dbb03\nresult = valid\nshared = 008b00b65cbd72a51c279d1b59628d4e7a1a847277f6d8bd5311e5eae945c887e4c8024dc412eb4205c76103ea493e25df4cdf0011619e3efb290d1cea8c290581a5\n\n# tcId = 174\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040058499315bb2297d78f8e74d3634bbf83bdc10eae306d8260ad0c62a41cbf78929144bbb69371ac9218d18eee59fe8200c10173d380cd7843808eb16b2c4cdc56dc004ecdecafe59b4aeed084d2d73af0911a7d54474874689bd6f7716c16ee5f4f293f72ba7d26989e551adac0568cd345c5c948231d5e49bc26290115186b185b5ded\nresult = valid\nshared = 007df53f8d32a1ea1f5734b59456564cac461f1c3a949d4fedff5ea96928e7f2b4753520334760f14ede15eaa964f6a0e520346c4f6b3b401ba6e301b581dd49bd21\n\n# tcId = 175\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781", + "d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004011d2660b0f8fa5bbaaeb0e1d9e2a9642558969f13cd08c51c5725b19f18481af2be6edf0bc2ce59065bbed4b1f383f32f52fc559174f2a402275ee951adea00091d005a3426945e6cb706b8e42010a69a47c09948fec3f2c55f8da5cef5ecbf3f0ea3dc2cde92cbe2eeb76dc7fd33825435ee5457beb7a6069e3e348d26ed33e07dcdb8\nresult = valid\nshared = 00725e7b5b8f0d7eb2d4fc6045d61b5b8505a156fef8fa4b1a2e351760b2f635a1837f23a4c6b724df076b2187b7e213da636b06250c66193a235a4e3c90ed86eb5b\n\n# tcId = 176\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009c93065d67cd839187233fbfb33f808f7a6cd444924ee4ea0fd4bb9b3dbc8b4affa7d3c8e3ac2abf82449d7cf4166c6c181b4f609fe09e3ff7a2b6640f8163b08100b5f44a947b7d9bc78069d15d5049ac1ee9da21e78131523eba4d9c9ee6726d32bd4ad849dbd71270710cccb3cb88d243188fd04ac394c125dcb62735570e123890\nresult = valid\nshared = 00718e900a7ef993d671ab0dc5417c98f61f6eb0731641e552ff48fa4f93318b8bfffaff2a1cfa4b759d351e56036a61dd1061d85c3d144b8a882f469810c58e0646\n\n# tcId = 177\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004003c1f1be461d3cf4302cf1fa8eb921e5c2806fe5673f27f6da3a5bc2b3d78a8aae7ba410236dd9e650942ccdb110423abf53c5d13167638ff8162b4b931a0bcbba900608d6517009d99fc3bf1165e8199221a7989f2ebda3b739a748cc938d2db3e697c5f75c32dd5bcc5578e549e429f454a039579ea1e796851e7578efd280858cc96\nresult = valid\nshared = 0161c84c64cbd65e718abfab1f827af33064e7029ae6feeb11e057181b4b7ff3dbce4d856862b49abbc0b923164361728f6274d890603b7ce187d7ccfc3ff157b42a\n\n# tcId = 178\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004010b7b6fada1f602c9e97da4acd7ebfd2f9f8e30e0b30b77fb3954deaafaa2ae2628ba042b9257a0b611df770a7ad70da7b9a20bf4d6f80512cee74ba214c61c6d66002061f890cd81b9b49c91007a325ddb67c46062bb64266d3e72934249cb7262b8b92a737234f6e85b74f818b954abbc3529da116c0321f82e21dd25e53c073abbe1\nresult = valid\nshared = 0172bdb24ac7ef741a94c15acc7e208d8d01183be1c45f5e510da1c0809102a9603fe30dcbb03325086aed94ba23422be9404287cdeae4a288afddc2aaa0e8cbc415\n\n# tcId = 179\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004011d28b1a95fbf27a4ad21ef4613e1983cce354c018aa757330fe13572f848abfa255898d1398f13ceb06b3b53292d000e87dd20dd1954763a94fdceb128fe63af1b0111ffc1b26866dcff9e42104a121a24ef5a15d78141cc93c26167398975916eafc8ad8baae13f59df23fe79aafb6e2078ba465c6b14e44c060eeaaa1ae6f4c7c979\nresult = valid\nshared = 0124eacfd598b6fc20b9f01873ed3c55b0dbb3f9dbc18a05233e59a4ec7270d012b790840d22051c4f1c55a252e8adb10dae855599e22abcb3e23904aa0767e3cc84\n\n# tcId = 180\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040187b3111a718b18077d9789125ebdb6fdec77890875440d36692e30159b4cfbde1807b3ebb1b1a8c7db00c1fa66cf32c5f9ae0f5941e32d7c7d2af0fa98832f01ba008f7def2063a7797625236797fbeaf8d07d74e07d139e6d73583d2d450a7794a8f712ff7852aaa23da6ee8142d9b697568f7f4a63a87f97d6354fc469596406926c\nresult = valid\nshared = 012fdcff44a9af94f18b50f49c19a1e0e6f999964d5ca4327f280b2edbabf8235d2e2ba2e101b391d0dc1aa067d3593cafb3c5a99c053165fa28d677990ea886fc7a\n\n# tcId = 181\n# point with coordinate y = 1 in left to right addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004009a64ba8c6662bb51553f85608aa2e522bbffd1b44ef646de0938f6267990dd9d7f52505136b67620afc1f6d25acf6d1dc3972c3a88493ae3927230225c03a8135d008952c15dc94461873c232a2fbeb4a7a4687e641d10b3348d17a31ea3fbf17ced9065bfcddfd92ac742cee61d5bf582b958d253e939ce5cf92ce79615433d069d8d\nresult = valid\nshared = 01cdf3f0c813badf7454de520d1248b298502194504afd5904080941cb85a371562848e4756011713593af46145d0652b2edce18d5c9e4a4cd55370bcd6083990628\n\n# tcId = 182\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400393bd8fe3c49f7885efbcab87962ef12458c18f255f01a24a1ab795cbfe2b4ddf6e8ac253e4fd9484377f59ddc7c087996386ed9a165cca81f853c918be1c9d399007c47aca4aee1795d414c4334ce4bfecafabf3c3391a02e9332d7f17ec1b5c542009f980fbaf3eadcc192f400b9ad2400220c090a758784dba66de40600c626e4a1\nresult = valid\nshared = 01d10825bb71d094ea2b01855583a8226871ebe7d6bcae064227bdd841788d1c489b94db20c39562450db84735f9285259b34c5d3b43a487f0708632b75de2ebe104\n\n# tcId = 183\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401b4b19a125bc0cbd0606064a051af4ab17f791880475f00a1fbcd4a797b401bda390ef7826fa01682651d72cb1353704d7a18027c4d609334b2e8c5d4def86ea0e40190e4cd6a4e0ba9ea45d3b7144f74aaf1986462558c8b3a10501882c2669ec265efc152f5510f3e990d67218471cafc66c845cf69e5eff6e0308cc59ac59a407667\nresult = valid\nshared = 0031eb146616d7bc61ffb553b7ca8522a5b6088d23d5ca6e30b201b86da2375d1f6cc48e88a24b52b0e22045ca7c506c206930619c289fc4a688432adee4702880d3\n\n# tcId = 184\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400e7fa4ac2365af9378dd2c81f32f9ef55d4d341ac324eb46923ec7f15448c37ef607c975c352754f472873e469f8d37d38d97d161a7b9b1dae2e965fdcc959747ba01e6c09639729499b607330d7daba2b5c1efae4f121e540bf7e691809a055542284cb5ee87475589cec663b53f21b91231a638d8402e358fd169953491ab3953122a\nresult = valid\nshared = 00a8f2dad749ea1e15673586bb67b5c85ff8f45c72ef8447efef3efc626a6a10ca88451643b434a25176cbae77899a3e32a4484781b700e03857bdd158ad3cfbf200\n\n# tcId = 185\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040104f43ffbb37ce5d0ea956171c070d6147acfa9519b887995832a0eb801e0dbc66896dfaff94409b497f4a416ccd82750da47a520b870dfe6cd3764f0e3c0f1bc3b00a5f3db9939c21147ab4488c8128ba0564f192f2788560145d2b14a852816b4851ef69a462c9854bace720e4629ed55af9d2c7da74cd309fc5566e11630746a3522\nresult = valid\nshared = 01ee85a3b6d35d0df6a445593c94609932530e25ee71909c5681ae398a38309e8699e94e0f23f56c64a0d04fc10e2896c50f213f12c685151fa40f18ac6d8ed85906\n\n# tcId = 186\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401250ecad894d3fdffb580099c2c305bd5d903fedd2e532ea58d29d63c3281b39e6f47a11b3be97c1c04e042d3f19bd0cbe0ef4121a257279bbd76c66a05e8d222d001a2b3ce41ca09b5b6287b4c328a315dca243c726e8616629d2b37506b7", + "eb31eb76f513decb0ab20a52c0c260a920e92ae1a629fb817df5ad6d7e62367ac5e8ee5f0\nresult = valid\nshared = 011e7d529dc9615209162401ab2bb717378109d87a1ac86b98b7954ea91b960b08fa9374ea72703519c39c69797240c977817e2b34b5322665dd518251bcc1fa970b\n\n# tcId = 187\n# point with coordinate y = 1 in precomputation or right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040019f6ffd81d012b70804c308594b47066516bbb339b44abadb4da194399d1b4d5fc98dd9d0dc363a9bcb14396327ffadb39f9b357b7e631a84b23039396f1cc96f101a6a8c0af8e083a9f8c19cb0fbae7b4523c4c54fc9ffefb735113f528f7a3e9662571060861dd6c9c71b33d99b53d716c36a8a902bca64c46c7e34a2e88dbc96b6d\nresult = valid\nshared = 006b46bbda9f37961aec9efcd6fcbaf4e25b6674ea37f8d82ca2edcc06353e24d09ea5d86136fedee34e0c391b859072ab91918b51d0800ab20255f438c660882e91\n\n# tcId = 188\n# point with coordinate y = 1 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b8104002303818600040077d897cff6a2a3446fb38528ad80cf3cc503ad93da06c7c5a525cf9a7bba33d79d686a0c53290a4594240540a02a85cf14336a23da56efdb562b0656800ff396a40120779ae0df7c1d928ca18d63fcabf0d21bd437c86e40966bae8c9fef2ac72738a75be49938ab9917034a2536c023695e821f70b458339bd8de218a5cf741e55a7d\nresult = valid\nshared = 01109989b62a379397232c238cf57d81884babb39b041fbf0f0b48bb7d794944f9a302de0eccaa9a5625b222c6692d24077654f19836b8f14d8622ba14eeace274c9\n\n# tcId = 189\n# point with coordinate y = 1 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401a02719244df807864707fbc6c5285da784301dabffb85853daf946f8d71598fa95f7c90a3d5f06e45051799c16f9af0afe275ff4f51e83e1bfabc18176f2bc4a740154de99c74dd263456034abdf5b2a173e318442d13200f4090aaa2714524c43a85ec5f607d5f355205fef0f4aa3b41b2ff79eca361fc28878fd4e26bcc57ac014d8\nresult = valid\nshared = 01054b6191cb257e0f18d09cf454fca4c45716ea00f167b2fbd2d028b66c903b5e751a6caaccf4ed18e28635d8454ed3811e1c4b3638eb420ad21ea4fdbdbadae866\n\n# tcId = 190\n# point with coordinate y = 1 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b810400230381860004018a82cb60812fd36cccb29e4747d20579ac9ac6b5ef6490326b30c5f077e9d7841ed189ad172140055d7ee6b015e02b1ebb9fc17d6acd8bb4c08d2ddb4541bb88f4007750fe2640e590f15426d64e2334cb2ad597340c445a42379fc194ef74d7e06a220aadb8e69e361b4960dde70f085e924319dea0df1d4c12c41519535702670ea8\nresult = valid\nshared = 007113f5f3c547a2bdee4af7625bf161ad9840e83f2c3b871b18be0c9db5686cafd3948c831a251a4649999193852650e6dc8a9f82cc696ad57c7181ac9a9ec220ec\n\n# tcId = 191\n# point with coordinate y = 1 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400273b9bf3818c129cc272270b5bb0b8b7e557ca8c548a6f3205e37b611962b14d9be317dc44fe82b2d2504984db98a902e7ea2a5afe584dc2b2990e5a790fd55b1900b9211fbfa221e3c24bc3de2f70e8f0e84f4b05c2d2bc5e98da3e379e80becd53d221136ad740b2732ecbc3c7e06c07e064d5de69e6a6d567713f644e8ac25a1d93\nresult = valid\nshared = 019188478c62349299ba2f12aec3c7ef65858f50395380ed0e7e70e731d7c47885cfb183ecca22fc71f0afd0621243750786969a0097b36a521ef41df9f08f9a4558\n\n# tcId = 192\n# point with coordinate y = 1 in right to left addition chain\nprivate = 01781d86cac2c052b7e4f48cef415c5c1319e07db70db92a497c2ac764e9509ac0b07322801f5ae1f28c9d7db71f79e5f51bf646790af988d62339a6d1543192e327\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400b9d403df5b1dacbef2baece88a0b10fabc5d729753f4e936015afb96b929392a9eeb03460968ed18868714caac2dc16c07245a9ef4832ac418e3290d1f8d0d102e008494f4442d00fdca67d31b3eb656c8a06bd521046c1af075b0ed26c26d5bdd8b800493c68cf493516027ede771aee3ed8b5fb947e9d600cc0a82c3f2076d96aac0\nresult = valid\nshared = 01adf724cf47ae319791a3dbe336b2f54a4d74bc28ff8a23c2f333e2a5a36bbe73dd6c9de72616ad5b779e51636d08f7cec58ff18b7127e396856bc13d39094410af\n\n# tcId = 193\n# edge case private key\nprivate = 03\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 00f2246431b597930f2eae61e9aabbd39f8f6ae97c3cf2521a6aeecedda10b5ef5f3b2eb3a8906d02f51d244710aa9e19cc0be21db920132be1c91deb85e466c28df\n\n# tcId = 194\n# edge case private key\nprivate = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 00347c51f587c726070bdeb9173d0a547427ead3f2c8de62d9ecc3013285f645d220931520bcef85d08cfb6786045745fbfbfb1924c44a89d06676131a965677272a\n\n# tcId = 195\n# edge case private key\nprivate = 0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01c41dc4437c2f2b94a940711b3a691723397a1f83d6bc0c67ddc7a657160925c7f85bb4eb3842b60b2610ddb7c0b8676267710e58359a8750843c6d8e25d48d1cd9\n\n# tcId = 196\n# edge case private key\nprivate = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 006a239cdb7a783840658d5f314bfe5c51e806a4bf1236f8421265bcc503c673eb16c5c2b38b5717fa04ee7dbcdeb15c871711507abb7557a8a8c7b3250141e854d5\n\n# tcId = 197\n# edge case private key\nprivate = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 0112dbf9713aadd478e4f2ebcb058f05b512b1959c7da1994f851f373ce8c341d39c6843373f6fe559905953e1147640159437953c571961c09bad157a8e1a5bf476\n\n# tcId = 198\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47adbb6fb71e91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 003eca2210c862310508", + "5aa284d119f3d716730595c6291aa89bf32a95e8a5fdc64f3d76e92494a43a9dced12d05b6dca4ffe649b32ac12cb0202e702dc83a2cb277\n\n# tcId = 199\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb5fb71e91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01c4cae9fbfdd45de51d8525e8447a7553c35cf358f1346f1d79666887bb749a3ba0de62e1866b47a447d53b6f1ca5a33ec94507e2cfb65544f5a1195fc6b4dc5810\n\n# tcId = 200\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb67b71e91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 008073b4796e748f3d0de5e85b22aed463f1a6aecdb336bc287b50d139e3591ef5f86b78c3f6051467755f059f295d758075347d657aaae02383838bb96071eacbd4\n\n# tcId = 201\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71d91386409\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01f11ff8983792d4a790d0de4b56d078b9033ad6318a440e8119342937cc48a39375150ab2cf98273b0fe35d5a3af5d84322a685e89f2cb378a99b9b7bac87e44952\n\n# tcId = 202\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138631b\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 00286cefaaf38ca4c6657eb9b187d8614d51775fd71c1a79b4c0ef1a0d4ce72b6f5b2bc854a4e78283530942a3f4fd2a8586d5ea51513c89d3d29de5de06321e118e\nflags = AddSubChain\n\n# tcId = 203\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138639b\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 014790de14c481f1336fcb7d33a8bf8e23eb594cc48608e9edfe0e326e106b67e7eaa3f04ec9985599178f632a5ee6419e11217060e9fcd5958a43882bf8cd3be6ba\nflags = AddSubChain\n\n# tcId = 204\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863db\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01ae775dbc4096a3aea7977b1a0af4b2830ecf9ca927a6247fba4cccb46b3f71d0e7abb8dda72d1c1ee7bb5b875b4773cc8df40f732819c4147da330775d1742ea35\nflags = AddSubChain\n\n# tcId = 205\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863fb\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01979fb05e068a12a3f20cfdfb9eaee9f22b356edcc7655383ed38124b86814f86a6f2216a34f3fc2299d403ee42408f95d08c5c6cd11db72cbf299a4a3c2545be25\nflags = AddSubChain\n\n# tcId = 206\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386403\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 0197ebe26798bf67f06ff0282773af75115531f41d94c093d87481b76bef707bc222f2d6672f84a00fa20c5ed27027ab4006b68d93ee2151016c9ddbe014346272e2\nflags = AddSubChain\n\n# tcId = 207\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 00f2246431b597930f2eae61e9aabbd39f8f6ae97c3cf2521a6aeecedda10b5ef5f3b2eb3a8906d02f51d244710aa9e19cc0be21db920132be1c91deb85e466c28df\n\n# tcId = 208\n# edge case private key\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386407\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ad5043591dbe81657fe3d1c3d7a516606ad9d320a35fce8aaec8a950fb53f95388f3fc48be998e99334ad9e9234cded14471fe86caccaa07d058ee8771733ac3b900854de36366590b9ee4d0370ea6b00f7ebd8156ccf14e99f1a5344a9b4964fbb8348b081a8840c6b64be77997ad8bebfea5e7d9f7a6a7fa6d7655c50b2b7835f314\nresult = valid\nshared = 01c168314cdc85757ade34a52a9e5379ffa5968f084b7e404939a8033a0fc698e26211754b9b2c04cf8a1420abe6e986ef1a238bbb91dd402b72e0ed50a876f1a83e\nflags = AddSubChain\n\n# tcId = 209\n# CVE-2017-10176: Issue with elliptic curve addition\nprivate = 01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913863f7\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\nresult = valid\nshared = 01bc33425e72a12779eacb2edcc5b63d1281f7e86dbc7bf99a7abd0cfe367de4666d6edbb8525bffe5222f0702c3096dec0884ce572f5a15c423fdf44d01dd99c61d\nflags = CVE_2017_10176\n\n# tcId = 210\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 211\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a", + "63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 212\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 213\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 214\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 215\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 216\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 217\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 218\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 219\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 220\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 221\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 222\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \n\n# tcId = 223\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nresult = invalid\nshared = \n\n# tcId = 224\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe\nresult = invalid\nshared = \n\n# tcId = 225\n# point is not on curve\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 30819b301006072a8648ce3d020106052b81040023038186000401ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\nshared = \n\n# tcId = 226\nprivate = 01c6cafb74e2a50c82c7a63d13294bfea113f271e01ae305f79af43203cd32115ecdf2fee5fedba2ad3126783db0c3c4d3029a14369e8f80dbd15d512f13e51c503c\npublic = 3015301006072a8648ce3d020106052b81040023030100\nresult = invalid\nshared = \n\n# tcId = 2", + "27\n# public point not on curve\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30819b301006072a8648ce3d020106052b81040023038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fe1\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 228\n# public point = (0,0)\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30819b301006072a8648ce3d020106052b810400230381860004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 229\n# order =\n# -6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd166500242fe000000000000000000000000000000000000000000000000000000000000000005ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf7020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 230\n# order = 0\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 308202043082017706072a8648ce3d02013082016a020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650020100020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = WrongOrder,InvalidPublic,UnnamedCurve\n\n# tcId = 231\n# order = 1\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 308202043082017706072a8648ce3d02013082016a020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650020101020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 232\n# order =\n# 1598335257761788022467377781654101148543282249044465229239888363328190330275719844327554513312228302828260696579553960150541916632196023208175974174\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820241308201b406072a8648ce3d0201308201a7020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650023e01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = WrongOrder,UnusedParam,UnnamedCurve\n\n# tcId = 233\n# generator = (0,0)\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00048185040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 234\n# generator not on curve\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16652024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 235\n# cofactor = -1\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090201ff038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 236\n# cofactor = 0\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020100038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 237\n# cofactor = 2\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020102038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 238\n# cofactor =\n# 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820286308201f906072a8648ce3d0201308201ec020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201ffffffffffffffffffffffffffffffffffffff", + "fffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = invalid\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = InvalidPublic,UnnamedCurve\n\n# tcId = 239\n# cofactor = None\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820242308201b506072a8648ce3d0201308201a8020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f000481850400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 240\n# modified prime\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820244308201b706072a8648ce3d0201308201aa020101304d06072a8648ce3d0101024201e99d17d498f3c68ed8e50430ec4f36c14dbeeaf7652e985636bf0548ffb981e9e011607fd0059cd4fe51e882f19a3839ebe7f1d7376cb761431b214ed76970cc0130818604411662e82b670c3971271afbcf13b0c93eb24115089ad167a9c940fab700467e161fee9f802ffa632b01ae177d0e65c7c614180e28c893489ebce4deb128968f33fb044151953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f0004818504000000000000000000000000000000000000000000000a14517cc6b91f8000000000000000000000000000000000000000000000000000000000000000000000032c006b0f530bec5bed532357d436727699f0e3c5b9366f1a435be640b97cd43d937655b1f157c7d0c7df25011fef7c3ab7d8e556e6125b59b847fcdd89a4051796a797024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090201010381860004000000000000000000000000000000000000000000000a14517cc6b91f8000000000000000000000000000000000000000000000000000000000000000000000032c006b0f530bec5bed532357d436727699f0e3c5b9366f1a435be640b97cd43d937655b1f157c7d0c7df25011fef7c3ab7d8e556e6125b59b847fcdd89a4051796a797\nresult = invalid\nshared = 00ebef6771455911ee573c183e990f7086650f9bafdb722c896751bd2c0f87959c78a39382d10fdfb46fd3515c8feb590943dd79778b13adbc7f670ba2a009753483\nflags = ModifiedPrime,InvalidPublic,UnnamedCurve\n\n# tcId = 241\n# using secp224r1\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 304e301006072a8648ce3d020106052b81040021033a0004074f56dc2ea648ef89c3b72e23bbd2da36f60243e4d2067b70604af1c2165cec2f86603d60c8a611d5b84ba3d91dfe1a480825bcc4af3bcf\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 242\n# using secp256r1\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbf6606595a3ee50f9fceaa2798c2740c82540516b4e5a7d361ff24e9dd15364e5408b2e679f9d5310d1f6893b36ce16b4a507509175fcb52aea53b781556b39\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 243\n# using secp256k1\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 3056301006072a8648ce3d020106052b8104000a03420004a1263e75b87ae0937060ff1472f330ee55cdf8f4329d6284a9ebfbcc856c11684225e72cbebff41e54fb6f00e11afe53a17937bedbf2df787f8ef9584f775838\nresult = invalid\nshared = \nflags = InvalidPublic\n\n# tcId = 244\n# a = 0\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 308202033082017606072a8648ce3d020130820169020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3046040100044109a88e6f050cfefa0b49fac45689b6b93ad4fa3b65db7d2f4cb31b67fe056a100066dd80dc5f785d27f82e3369eb22ab2c5729a9e5d9906a1dc31e02f84026484a0481850400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000400c2a43ac3742b09e006c2dfc9c36444d7e699f567a73f674ce257330b312dd7a8a04fbe92d1d9acbcc65f6184711ada5bf39f6e11e0cbde98f1640d099eb90dfce701802d7755c2fe3180848d4a70b170096ec64eba99b478ba7f6fc129b0566279b8e1ab7962fa912fc4ae53b5202a03520617843dc63e5cb5f956ec7f1453d0865fdf\nresult = acceptable\nshared = 00fb8542487cbd45e609632f681db6b48fdabed9b97a2467a34205eadadad9dedb54a2a647d23dca68e929a2041888b091f4bb4023a0517be669a6c9f9c847ef89de\nflags = UnusedParam,UnnamedCurve\n\n# tcId = 245\n# public key of order 3\nprivate = 01396a99a337821d8c92d75f562793c70afa4074ae5e6dad2bd2cc6aea8f36f6c45ddde73931440d229f340093ab8c6fb3f20d20999a37371fe92104692136d019b7\npublic = 30820245308201b806072a8648ce3d0201308201ab020101304d06072a8648ce3d0101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff308187044122cf9f56681fb138292f337d49937d24268b13b89617117fc35c880de0b3d4185ea9bef6e077a3bef09e0835c68dd301f5eafd873361149e8bdc295050f43c22f20442011f108b762c3e4b4945577057a910ca94481d69f8abc3239c36ad492af73bb8e81c8a8f9cf658165b32914a4a4fff8c3aec5982f734de122cf65610a139592496a70481850401c70f1e46f736e8ee0c78ec2253266bc62da9bbec44fe109321c9bab98a441b4a94840e85546e895f50d7331adc8a48275204ee12d6865597a521efcf01f4839d840000576bfe88eca0e48ab49df0e823e24a7d0b32b5b9ac1ac46819f4c51e801675e16872395c9eca3ffb5e2b7d4763d6858882b94b5bb6764c00e0b57891ee995cd1024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101038186000401c70f1e46f736e8ee0c78ec2253266bc62da9bbec44fe109321c9bab98a441b4a94840e85546e895f50d7331adc8a48275204ee12d6865597a521efcf01f4839d8401ffa8940177135f1b754b620f17dc1db582f4cd4a4653e53b97e60b3ae17fe98a1e978dc6a36135c004a1d482b89c297a777d46b4a44989b3ff1f4a876e1166a32e\nresult = invalid\nshared = \nflags = WeakPublicKey,InvalidPublic,UnnamedCurve\n\n# tcId = 246\n# Public key uses wrong curve: secp224r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 304e301006072a8648ce3d020106052b81040021033a0004af6dd5b71a8c1cf921e36854ae091aaa589d337e740e8579f816eb9e36b03eec5cf956d0fdd2fc1687335507fc1c4a5717d3b5b8ea8340d1\nresult = invalid\nshared = \n\n# tcId = 247\n# Public key uses wrong curve: secp256r1\nprivate = 2b0d", + "77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3059301306072a8648ce3d020106082a8648ce3d0301070342000453366db79b320781936df61bb55d4499949d813ee5abaa5dda70da4f97f68228ccc69d7cd0b7266cfc28d0dcafdf3e83738cc611acb08f8b896c4ecf82dd65ae\nresult = invalid\nshared = \n\n# tcId = 248\n# Public key uses wrong curve: secp384r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3076301006072a8648ce3d020106052b8104002203620004aa45c13ce3cfea8538422712903edc0ce56df74ede0776e843555a786f9738de1943dffd729addfd4772169751d7765a45b5bb540a47d198f4c8c7c21e67560c1e12f70b64520109bb8858a3f8d6bb4012003431db0778633313fdb9464c47ec\nresult = invalid\nshared = \n\n# tcId = 249\n# Public key uses wrong curve: secp256k1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3056301006072a8648ce3d020106052b8104000a0342000475e01a1555380be188d69aac340a4675e4a6f73d63976a1075249827d8ecc2a31e65ed1eb591954e33a38f68ef8aa6c930229d8755e53257602b3eaa87de6f02\nresult = invalid\nshared = \n\n# tcId = 250\n# Public key uses wrong curve: secp224k1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 304e301006072a8648ce3d020106052b81040020033a00041acbc8b814bcbb1e233ff7fb8a0c2c699d0cc59ac28678dd3f2f9502699b6518a221ff5f1d9de4555226e5bba0ae0586af95701d0fa5ba51\nresult = invalid\nshared = \n\n# tcId = 251\n# Public key uses wrong curve: brainpoolP224r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3052301406072a8648ce3d020106092b2403030208010105033a0004905a06d5bc093697155aaff67305976a769b904d8db9573c4be361626def2ffe1d5ec14462c02e5ffb24fb3edb2b6c77a5cfee2492db757b\nresult = invalid\nshared = \n\n# tcId = 252\n# Public key uses wrong curve: brainpoolP256r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 305a301406072a8648ce3d020106092b2403030208010107034200042b87df1b6a5cbc4c4a184b7eec9b6c0483f7b80e6477b29649630c37481876bb0e3423f7a00d469320b7e60c88370979064efb9ceb8b387aa87a7c6941ccd9ed\nresult = invalid\nshared = \n\n# tcId = 253\n# Public key uses wrong curve: brainpoolP320r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 306a301406072a8648ce3d020106092b24030302080101090352000470df62394ee036eefbc8ef11a9a5f3a8af659016f29e7125e52cfda0a74e52c7b21d18ac4375f5e4164c5338fa2f545a3fb2022f0e0686d5b4882958f72b1bb626e37093e3f19673968c237823327fd6\nresult = invalid\nshared = \n\n# tcId = 254\n# Public key uses wrong curve: brainpoolP384r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 307a301406072a8648ce3d020106092b240303020801010b03620004808dc7b1c6d3ec470a7fe5d6144c9c3a8c92b116103aa2edbfce0b2c827312eebcd1350d09a739eac901af341487861b195270f671e0a758deb23222db4fe7983d42a785b35fd158344cd6483c4da5b409e77d0a284dfa9c3e0d91a4d275fce9\nresult = invalid\nshared = \n\n# tcId = 255\n# Public key uses wrong curve: brainpoolP512r1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 30819b301406072a8648ce3d020106092b240303020801010d0381820004aa11b560dc1e572f2374e5869210304d66d95b1d8ce40940157f5f5b4a7dc8a340f7c305d6bea289f5c430eb888e2a03528336aaf4680d9d153cd162e2229df330425025df2625b147568927f6acf704e4936f8989ff9d44f33ee22196e70dfd8711e8934d8d42abb4b67afcfee213c3ad5e5c83fcf4283d253d6c5c0e581970\nresult = invalid\nshared = \n\n# tcId = 256\n# Public key uses wrong curve: brainpoolP224t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 3052301406072a8648ce3d020106092b2403030208010106033a00048d7a746de095728a8d83219e587040cb6e794d088ab6eab426638202579850b0f235edcf4eb8adcb51bf41878f6b71a1f2d4101022964340\nresult = invalid\nshared = \n\n# tcId = 257\n# Public key uses wrong curve: brainpoolP256t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 305a301406072a8648ce3d020106092b24030302080101080342000424ad316bf41e4102dd7ae16311b64464df2d13ea68a11dd27a4445ed900962180ff8c627ed73f0c667863ee3a671e6ed1fa2781b51a229ee2cd21fbf69437d60\nresult = invalid\nshared = \n\n# tcId = 258\n# Public key uses wrong curve: brainpoolP320t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 306a301406072a8648ce3d020106092b240303020801010a03520004548ce4997cc618800d3834dd4b3346e4559be066ab5d0cecd7123c4de940c168fecd3bae067fe3fc7aee875c9da0a86932f0779f42344470860c22dbc6f305eab792fc0874157e175c7d3c4d3bf54c4b\nresult = invalid\nshared = \n\n# tcId = 259\n# Public key uses wrong curve: brainpoolP384t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 307a301406072a8648ce3d020106092b240303020801010c036200044fc2b35e3019a57a8ca6efe2ec1f72072c599a78c2725f7cfc2d9edf220b5f6abdb0c0d8d160182de451e26bcbb4e8c18726263e21ce56fb4bafaa1f186c745e2c8392ef8c5a1c03f5462ebbbcde0ffcc31e9a0b3e898ddb9c1c79e420fd7a35\nresult = invalid\nshared = \n\n# tcId = 260\n# Public key uses wrong curve: brainpoolP512t1\nprivate = 2b0d77cd5c47890a52612fc9b38d804266b9784abca2b94de99bdc67475aecc2abc31e72a6dada0cf1d4d776b002c8d2dbd601ab8a0cae4157370846b20e8dd657\npublic = 30819b301406072a8648ce3d020106092b240303020801010e03818200047122f743122681ac73b0d611af86847d8bec654cf99e7eaf5d4f684e4078a8e61dc6d07e831ad02cd40d41dbdb6b0e877d960b78a5ac34c1e6ce7c483503d6de2eaddeffbfb3f144d29d13535a05815934186707146e45f64476bbdbc8645be973270a4c5e35d70ffd5eab2f08d1fb04762bc8aa80e999da14f744be9ff8c923\nresult = invalid\nshared = \n\n# tcId = 261\n# invalid public key\nprivate = 01c1fb2cac9087a3397814b198a80e2ea5b437aac1b41e8a2bd8fef8700e4812aa817320e6e1e3865bd2cf75e43a78be5c27ff1c4b5f5019333cb37d0c9c4ff3ec61\npublic = 3058301006072a8648ce3d020106052b810400230344000200429cb431c18f5f4e4e502f74214e6ac5ec2c3f86b830bac24de95feae142ca7d9aa8aa5b34f55af4b2848f2e6ba6df4c3ecd401a1d7b2a8287a332b202196fadbb\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 262\n# public key is a low order point on twist\nprivate = 6619644155c449758f65e2dfe7ba89dee1e090c1d68b6342f43cb1ac000090a7f0408138c1de217990bb015cd1d95f1d884cf659f7324f2fe21eeba63ea988aacd\npublic = 3058301006072a8648ce3d020106052b81040023034400020108cbf3c9bf8e42135d87127556831076d84d5e549e645afda8a099249231b59b6c508dee4e91c9a543e90ebc82613f86cb1290e29102a0f2fdeb57bf4193fb4639\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 263\n# public key is a low order point on twist\nprivate = 00a257d97aa4e5195e2919c147c1639bb0da0cce479a036489006b7b8e7e885096066e5adc8fe7c45940c5a6b94d5065b966a45f099a0cecfe9cce1b3e99dca479f2\npublic = 3058301006072a8648ce3d020106052b8104002303440003011f2dca6b686e2141c11822e2d5439261583ce98cd6c4041c6d1be9e17dee33ea4a65c3e8cca6de50a30a39c788a585f1188bef0680a9c0264b3c8dcf494d0eb948\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 264\n# public key is a low order point on twist\nprivate = 00a257d97aa4e5195e2919c147c1639bb0da0cce479a036489006b7b8e7e885096066e5adc8fe7c45940c5a6b94d5065b966a45f099a0cecfe9cce1b3e99dca479f3\npublic = 3058301006072a8648ce3d020106052b8104002303440002011f2dca6b686e2141c11822e2d5439261583ce98cd6c4041c6d1be9e17dee33ea4a65c3e8cca6de50a30a39c788a585f1188bef0680a9c0264b3c8dcf494d0eb948\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 265\n# public key is a low order point on twist\nprivate = 6619644155c449758f65e2dfe7ba89dee1e090c1d68b6342f43cb1ac000090a7f0408138c1de217990bb015cd1d95f1d884cf659f7324f", + "2fe21eeba63ea988aacc\npublic = 3058301006072a8648ce3d020106052b81040023034400030108cbf3c9bf8e42135d87127556831076d84d5e549e645afda8a099249231b59b6c508dee4e91c9a543e90ebc82613f86cb1290e29102a0f2fdeb57bf4193fb4639\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 266\n# public key is a low order point on twist\nprivate = 2a35258787f91ad0bd3432c3022e4d3ed349c8768a7e7caa1836022fc0c89a9073f6ce14d0990d5b7bb413061c7160e7bd566a5c89f14901b2cc19f1ad531f41e2\npublic = 3058301006072a8648ce3d020106052b81040023034400020009cc73141cf1843d2b2c95dc5cbc4d615c6da4814c1c7208615d8e78c7a8666aba1852faaa45a45d32bd0fde6ea78f262a96bf1e02949cea48c33c695103683048\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 267\n# public key is a low order point on twist\nprivate = 01afe5c77a626161fb2c25964c7895b9fff787099db83f077f05a4bfa320fb61f9315bb44d3fb9dd72225d9d993a18df82ac53fb4a5f86b23cb650e5e4778066f677\npublic = 3058301006072a8648ce3d020106052b81040023034400030047b9cf28e04b38796858545d60d6133fbdc20ede086e5d95111c982b8c276628235e536c075637a97c0a6c30d02b83b19e578203473eea16dfdeaeccb1dc0d9b19\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 268\n# public key is a low order point on twist\nprivate = 24ae709e1644e3087b52470c565268becbdbf97de59916763507d109c2e5b7c21727c64e9b560aa248d7bc9fe0ac95720d507263b7b2859b056ea165301cd599d5\npublic = 3058301006072a8648ce3d020106052b810400230344000300c18410f5727ee0101a52ef95c0ac455cbc65bf9967f0a2c419aa0a291cabad569f2337e102d0a9128f4212dbf9fa9e5a8f14ca7f28e82977281facdd9ca7a92c78\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 269\n# public key is a low order point on twist\nprivate = 24ae709e1644e3087b52470c565268becbdbf97de59916763507d109c2e5b7c21727c64e9b560aa248d7bc9fe0ac95720d507263b7b2859b056ea165301cd599d6\npublic = 3058301006072a8648ce3d020106052b810400230344000200c18410f5727ee0101a52ef95c0ac455cbc65bf9967f0a2c419aa0a291cabad569f2337e102d0a9128f4212dbf9fa9e5a8f14ca7f28e82977281facdd9ca7a92c78\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 270\n# public key is a low order point on twist\nprivate = 01afe5c77a626161fb2c25964c7895b9fff787099db83f077f05a4bfa320fb61f9315bb44d3fb9dd72225d9d993a18df82ac53fb4a5f86b23cb650e5e4778066f678\npublic = 3058301006072a8648ce3d020106052b81040023034400020047b9cf28e04b38796858545d60d6133fbdc20ede086e5d95111c982b8c276628235e536c075637a97c0a6c30d02b83b19e578203473eea16dfdeaeccb1dc0d9b19\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 271\n# public key is a low order point on twist\nprivate = 2a35258787f91ad0bd3432c3022e4d3ed349c8768a7e7caa1836022fc0c89a9073f6ce14d0990d5b7bb413061c7160e7bd566a5c89f14901b2cc19f1ad531f41e1\npublic = 3058301006072a8648ce3d020106052b81040023034400030009cc73141cf1843d2b2c95dc5cbc4d615c6da4814c1c7208615d8e78c7a8666aba1852faaa45a45d32bd0fde6ea78f262a96bf1e02949cea48c33c695103683048\nresult = invalid\nshared = \nflags = CompressedPoint\n\n# tcId = 272\n# length of sequence contains leading 0\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3082009b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 273\n# length of sequence contains leading 0\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3082001006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 274\n# wrong length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 309c301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 275\n# wrong length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 309a301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 276\n# wrong length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301106072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 277\n# wrong length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b300f06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 278\n# uint32 overflow in length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3085010000009b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 279\n# uint32 overflow in length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03085010000001006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116c", + "e049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 280\n# uint64 overflow in length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308901000000000000009b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 281\n# uint64 overflow in length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4308901000000000000001006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 282\n# length of sequence = 2**31 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30847fffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 283\n# length of sequence = 2**31 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f30847fffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 284\n# length of sequence = 2**32 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3084ffffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 285\n# length of sequence = 2**32 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f3084ffffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 286\n# length of sequence = 2**40 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3085ffffffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 287\n# length of sequence = 2**40 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03085ffffffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 288\n# length of sequence = 2**64 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3088ffffffffffffffff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 289\n# length of sequence = 2**64 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33088ffffffffffffffff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 290\n# incorrect length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30ff301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 291\n# incorrect length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d20", + "9cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b30ff06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 292\n# indefinite length without termination\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 293\n# indefinite length without termination\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b308006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 294\n# indefinite length without termination\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006802a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 295\n# indefinite length without termination\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106802b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 296\n# indefinite length without termination\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303800004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 297\n# removing sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = \nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 298\n# removing sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081890381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 299\n# lonely sequence tag\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 300\n# lonely sequence tag\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818a300381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 301\n# appending 0's to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 302\n# appending 0's to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106052b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 303\n# prepending 0's to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d0000301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488", + "ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 304\n# prepending 0's to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012000006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 305\n# appending unused 0's to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 306\n# appending unused 0's to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 307\n# appending null value to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 308\n# appending null value to sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106052b8104002305000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 309\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a149817730819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 310\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0250030819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 311\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500004deadbeef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 312\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03015498177301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 313\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f30142500301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 314\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33012301006072a8648ce3d020106052b810400230004deadbeef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 315\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03015260c49817706072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b4", + "2223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 316\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f3014260b250006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 317\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33018260906072a8648ce3d02010004deadbeef06052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 318\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d0201260a49817706052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 319\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d02012609250006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 320\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301806072a8648ce3d0201260706052b810400230004deadbeef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 321\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1301006072a8648ce3d020106052b8104002323818c4981770381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 322\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301006072a8648ce3d020106052b8104002323818b25000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 323\n# including garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301006072a8648ce3d020106052b810400232381890381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500004deadbeef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 324\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4aa00bb00cd0030819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 325\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2aa02aabb30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 326\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33018aa00bb00cd00301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 327\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a13016aa02aabb301006072a8648ce3d020106052b810400230381860004017e", + "e16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 328\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a33018260faa00bb00cd0006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 329\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a13016260daa02aabb06072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 330\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301806072a8648ce3d0201260daa00bb00cd0006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 331\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1301606072a8648ce3d0201260baa02aabb06052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 332\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301006072a8648ce3d020106052b8104002323818faa00bb00cd000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 333\n# including undefined tags\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301006072a8648ce3d020106052b8104002323818daa02aabb0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 334\n# truncated length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 335\n# truncated length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818b30810381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 336\n# Replacing sequence with NULL\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 0500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 337\n# Replacing sequence with NULL\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818b05000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 338\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 2e819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 339\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 2f819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 340\n# changing tag v", + "alue of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 31819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 341\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 32819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 342\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = ff819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 343\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b2e1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 344\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b2f1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 345\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b311006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 346\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b321006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 347\n# changing tag value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819bff1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 348\n# dropping value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 349\n# dropping value of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30818b30000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 350\n# truncated sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 351\n# truncated sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a1006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 352\n# truncated sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06072a8648ce3d020106052b81040003818600040", + "17ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 353\n# truncated sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 354\n# indefinite length\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 355\n# indefinite length\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d308006072a8648ce3d020106052b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 356\n# indefinite length with truncated delimiter\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d5000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 357\n# indefinite length with truncated delimiter\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c308006072a8648ce3d020106052b81040023000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 358\n# indefinite length with additional element\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d5005000000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 359\n# indefinite length with additional element\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f308006072a8648ce3d020106052b81040023050000000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 360\n# indefinite length with truncated element\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50060811220000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 361\n# indefinite length with truncated element\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1308006072a8648ce3d020106052b810400230608112200000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 362\n# indefinite length with garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000fe02beef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 363\n# indefinite length with garbage\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a1308006072a8648ce3d020106052b810400230000fe02beef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags =", + " InvalidAsn\n\n# tcId = 364\n# indefinite length with nonempty EOC\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3080301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500002beef\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 365\n# indefinite length with nonempty EOC\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f308006072a8648ce3d020106052b810400230002beef0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 366\n# prepend empty sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3000301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 367\n# prepend empty sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012300006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 368\n# append empty sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d503000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 369\n# append empty sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106052b8104002330000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 370\n# append garbage with high tag number\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50bf7f00\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 371\n# append garbage with high tag number\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e301306072a8648ce3d020106052b81040023bf7f000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 372\n# sequence of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 373\n# sequence of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 374\n# truncated sequence: removed last 1 elements\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3012301006072a8648ce3d020106052b81040023\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 375\n# truncated sequence: removed last 1 elements\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308194300906072a8648ce3d02010381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 376\n# repeating element in sequence\nprivate = 018c3c", + "384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30820124301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 377\n# repeating element in sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301706072a8648ce3d020106052b8104002306052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 378\n# long form encoding of length of sequence\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c30811006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 379\n# long form encoding of length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c30110681072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 380\n# long form encoding of length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106072a8648ce3d02010681052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 381\n# length of oid contains leading 0\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012068200072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 382\n# length of oid contains leading 0\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d0201068200052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 383\n# wrong length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006082a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 384\n# wrong length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006062a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 385\n# wrong length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106062b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 386\n# wrong length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106042b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 387\n# uint32 overflow in length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a03015068501000000072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c50", + "11d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 388\n# uint32 overflow in length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d0201068501000000052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 389\n# uint64 overflow in length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301906890100000000000000072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 390\n# uint64 overflow in length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301906072a8648ce3d020106890100000000000000052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 391\n# length of oid = 2**31 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406847fffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 392\n# length of oid = 2**31 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d020106847fffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 393\n# length of oid = 2**32 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f30140684ffffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 394\n# length of oid = 2**32 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d02010684ffffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 395\n# length of oid = 2**40 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a030150685ffffffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 396\n# length of oid = 2**40 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a0301506072a8648ce3d02010685ffffffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 397\n# length of oid = 2**64 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a330180688ffffffffffffffff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 398\n# length of oid = 2**64 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301806072a8648ce3d02010688ffffffffffffffff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 399\n# incorrect", + " length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006ff2a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 400\n# incorrect length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106ff2b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 401\n# removing oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308192300706052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 402\n# lonely oid tag\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819330080606052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 403\n# lonely oid tag\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308195300a06072a8648ce3d0201060381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 404\n# appending 0's to oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206092a8648ce3d0201000006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 405\n# appending 0's to oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106072b8104002300000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 406\n# prepending 0's to oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012060900002a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 407\n# prepending 0's to oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d0201060700002b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 408\n# appending unused 0's to oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d0201000006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 409\n# appending null value to oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206092a8648ce3d0201050006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 410\n# appending null value to oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301206072a8648ce3d020106072b8104002305000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nf", + "lags = InvalidAsn\n\n# tcId = 411\n# truncated length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081943009068106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 412\n# truncated length of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308196300b06072a8648ce3d020106810381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 413\n# Replacing oid with NULL\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081943009050006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 414\n# Replacing oid with NULL\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308196300b06072a8648ce3d020105000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 415\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301004072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 416\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301005072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 417\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301007072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 418\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301008072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 419\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b3010ff072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 420\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020104052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 421\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020105052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 422\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020107052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb8608573", + "6115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 423\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020108052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 424\n# changing tag value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d0201ff052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 425\n# dropping value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081943009060006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 426\n# dropping value of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308196300b06072a8648ce3d020106000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 427\n# modify first byte of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b30100607288648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 428\n# modify first byte of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d0201060529810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 429\n# modify last byte of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d028106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 430\n# modify last byte of oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400a30381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 431\n# truncated oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06062a8648ce3d0206052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 432\n# truncated oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06068648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 433\n# truncated oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06072a8648ce3d020106042b8104000381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 434\n# truncated oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a300f06072a8648ce3d02010604810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062", + "e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 435\n# wrong oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 308199300e06052b0e03021a06052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 436\n# wrong oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d3012060960864801650304020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 437\n# wrong oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b0e03021a0381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 438\n# wrong oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d020106096086480165030402010381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 439\n# longer oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106082a8648ce3d02010106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 440\n# longer oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106072a8648ce3d020106062b81040023010381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 441\n# oid with modified node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d021106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 442\n# oid with modified node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f3014060b2a8648ce3d02888080800106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 443\n# oid with modified node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400330381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 444\n# oid with modified node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301406072a8648ce3d020106092b81040088808080230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 445\n# large integer in oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301906102a8648ce3d028280808080808080800106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 446\n# large integer in oid\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a4301906072a8648ce3d0201060e2b810400828080808080808080230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = ", + "00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 447\n# oid with invalid node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106082a8648ce3d0201e006052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 448\n# oid with invalid node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106082a808648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 449\n# oid with invalid node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106072a8648ce3d020106062b81040023e00381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 450\n# oid with invalid node\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301106072a8648ce3d020106062b80810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 451\n# length of bit string contains leading 0\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819c301006072a8648ce3d020106052b81040023038200860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 452\n# wrong length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303870004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 453\n# wrong length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303850004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 454\n# uint32 overflow in length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301006072a8648ce3d020106052b81040023038501000000860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 455\n# uint64 overflow in length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a3301006072a8648ce3d020106052b8104002303890100000000000000860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 456\n# length of bit string = 2**31 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e301006072a8648ce3d020106052b8104002303847fffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 457\n# length of bit string = 2**32 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819e301006072a8648ce3d020106052b810400230384ffffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 458\n# length of bit string = 2**40 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301006072a8648ce3d020106052b810400230385ffffffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a72", + "4a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 459\n# length of bit string = 2**64 - 1\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3081a2301006072a8648ce3d020106052b810400230388ffffffffffffffff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 460\n# incorrect length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303ff0004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 461\n# lonely bit string tag\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3013301006072a8648ce3d020106052b8104002303\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 462\n# appending 0's to bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381880004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500000\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 463\n# prepending 0's to bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b8104002303818800000004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 464\n# appending null value to bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819d301006072a8648ce3d020106052b810400230381880004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d500500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 465\n# truncated length of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230381\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 466\n# Replacing bit string with NULL\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230500\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 467\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230181860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 468\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230281860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 469\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230481860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 470\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230581860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 471\n# changing tag value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b81040023ff81860004017ee1", + "6985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 472\n# dropping value of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3014301006072a8648ce3d020106052b810400230300\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 473\n# modify first byte of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860204017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 474\n# modify last byte of bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32dd0\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 475\n# truncated bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b810400230381850004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 476\n# truncated bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819a301006072a8648ce3d020106052b8104002303818504017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 477\n# declaring bits as unused in bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381860104017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 478\n# unused bits in bit string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819f301006072a8648ce3d020106052b8104002303818a2004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d5001020304\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 479\n# unused bits in empty bit-string\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 3015301006072a8648ce3d020106052b81040023030103\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n# tcId = 480\n# 128 unused bits\nprivate = 018c3c384368133e46c99ad2421ff44eed459b5d209cb2aa70b09bd7d38cc6225164a9815dff6d69afbf49f80da22f6ea33454b6544b69b3330008c6a22259f9f9e5\npublic = 30819b301006072a8648ce3d020106052b810400230381868004017ee16985c3678234d272913682a7c122b35c1c5011d1933bb7b08c8b883afcf469453079e2ef02a724a6ddbe25ee3b2e63007dd2838c5bb00fa1ff8fd18cf81eaa01116ce049d63f22f71c7d11c0acd67cacd1b4ea0125bd48e872dc5cc9fc4073b7c844c4b42223483b4aa8402b198d981dc8b7aba048749b4a0496e2537d3cc32d50\nresult = acceptable\nshared = 00d397252813d37329b9e277823e2dfccdd1ee519f0c32ccbb3f5fc62062e8c07dbf3fb86085736115b70f86f44ad852f3488ecbb5e7ec31e961e869b40b6add05f5\nflags = InvalidAsn\n\n", }; -static const size_t kLen66 = 119449; +static const size_t kLen99 = 112343; -static const char *kData66[] = { - "# Imported from Wycheproof's ecdsa_secp224r1_sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 0eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 0eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-224]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c2840bf24f6f66be287066b7cbf38788e1b7770b18fd1aa6a26d7c6dc\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# Some implementations of ECDSA and DSA incorrectly encode r and s by not\n# including leading zeros in the ASN encoding of integers when necessary. Hence,\n# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings\n# assuming that the signature is otherwise valid.\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 4\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30813d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 303e02811c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02811d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 7\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f0282001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 9\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0282001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021d70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021b70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021e00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 15\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 16\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30420285010000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 18\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285010000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 19\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3046028901000000000000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 21\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3046021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028901000000000000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 22\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304102847fffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 24\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02847fffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 25\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410284ffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 27\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0284ffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 28\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult ", - "= invalid\nsig = 30420285ffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 30\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285ffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 31\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30450288ffffffffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 33\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0288ffffffffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 34\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 303d02ff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 36\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02ff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 37\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d028070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 39\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 40\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 41\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 42\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f0000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 45\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042498177303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412500303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30422221498177021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304122202500021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045221e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0004deadbeef021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2222498177021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a22212500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a221f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045aa00bb00cd00303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043aa02aabb303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30452224aa00bb00cd00021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30432222aa02aabb021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2225aa00bb00cd00021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 60\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2223aa02aabb021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 61\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 62\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30412280021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 64\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 65\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30412280031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 67\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 68\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 3132333", - "43030\nresult = invalid\nsig = 2e3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 73\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 74\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 75\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3041300102303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 76\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463\n\n# tcId = 77\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 78\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 79\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636100\n\n# tcId = 80\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636105000000\n\n# tcId = 81\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361060811220000\n\n# tcId = 82\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000fe02beef\n\n# tcId = 83\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610002beef\n\n# tcId = 84\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f3000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 85\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463613000\n\n# tcId = 86\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 87\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 301e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a\n\n# tcId = 88\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302002021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e000070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f000000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210281021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30210500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d011c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d041c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 107\n# ch", - "anging tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303dff1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a011d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a041d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480aff1d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210200021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30412220020170021b049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2221020100021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c72049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d02d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a488a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463e1\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a48021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463\n\n# tcId = 124\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021eff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 127\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3022090180021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 128\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0170049af31f8348673d56cece2b26fc2a84bbe2e2a2e84aeced767247021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff70049af31f8348673d56cece2b28cee4c34a02667b2df86234be1dcd021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c8ffb650ce07cb798c2a93131d4d81a785bfd0d5b70f4de586ee5b7f6021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d008ffb650ce07cb798c2a93131d4d7311b3cb5fd9984d2079dcb41e233021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dfe8ffb650ce07cb798c2a93131d4d903d57b441d1d5d17b51312898db9021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0170049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d008ffb650ce07cb798c2a93131d4d81a785bfd0d5b70f4de586ee5b7f6021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d01d7bf40db0909941d78f9948340c5b4b7a5fa6fca97e8a82091e08d9e\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c78771e4888f4e702e5595d9283924\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021dff2840bf24f6f66be287066b7cbf3961eb3abe80737bf48124ca7b9c9f\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021dfe2840bf24f6f66be287066b7cbf3a4b485a059035681757df6e1f7262\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d01d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c2840bf24f6f66be287066b7cbf3961eb3abe80737bf48124ca7b9c9f\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forg", - "eries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invali", - "d\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff0000000", - "00000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 216\n# Edge case for Shamir multiplication\nmsg = 3137353738\nresult = valid\nsig = 303c021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021c3116e1a38e4ab2008eca032fb2d185e5c21a232eaf4507ae56177fd2\n\n# tcId = 217\n# special case hash\nmsg = 32323534363238393834\nresult = valid\nsig = 303d021d008ce2afe20b684576fdd91b4b34168c9c011996af5b0eb85fa929f381021c662af5ca651bffbc623c3a3b372779bd09e1948cd19188f5339a979d\n\n# tcId = 218\n# special case hash\nmsg = 31383237383738363130\nresult = valid\nsig = 303e021d00da573cf73aed174710c232155735248f8ebef696374647527da52258021d00b251856b66a83c32bf0b7b81a01f1db4507e622125f301bd832a5ccc\n\n# tcId = 219\n# special case hash\nmsg = 31353138383631373039\nresult = valid\nsig = 303e021d00c368da86582b2c82b696b2f7c79027968f3fd25cbba9688cdc67b17a021d00aba8e3c2ff1af9bb9c66ca88a3825a19ce17206e7a658ff47025891e\n\n# tcId = 220\n# special case hash\nmsg = 32313239323333343232\nresult = valid\nsig = 303d021d00ffcefcb57190d0b87efb789fb53407fd2c65c5ae3551da3eccf8ddd5021c05c89b41238f1e1def8fbe8d4af", - "ebf20be077e82972f91297487e118\n\n# tcId = 221\n# special case hash\nmsg = 31323231393739303539\nresult = valid\nsig = 303c021c2b98c67ebf6597b08bc7f1b73ff8662cf125e9700ec973ece9c6ff48021c2e3f72a8f76e12c8cdf4487e0956c1ef4578e1da4d29d8db824d415b\n\n# tcId = 222\n# special case hash\nmsg = 32333032353637363131\nresult = valid\nsig = 303d021c5794d70440f166904d24d0b910cd127c63a9eddca45a4d9032db47e8021d008ba5d290834d9a0963122d928da902f7b03467396072180bb1801b43\n\n# tcId = 223\n# special case hash\nmsg = 31313035383638343732\nresult = valid\nsig = 303e021d00c29c70b0b21782d1c727f4907aef5641b6d6c6e7b2a1ebfa57794223021d00aac2d3a02592f298dd3198e388425ec7a91d7e6be48248a64773614c\n\n# tcId = 224\n# special case hash\nmsg = 31343636363134343432\nresult = valid\nsig = 303d021c5c3ef3778c811e69ef0b0e370e45ec0d7eb88505c3e8ffb8c50b9993021d00e06b5c6e47dc4da9e64fd21bc3e1da13cf7c264fa64ccb89da87387c\n\n# tcId = 225\n# special case hash\nmsg = 343431393536343230\nresult = valid\nsig = 303e021d00ed8f586563232cf15ebd014bd4f99727e337cfe4ce48694fe6748ec2021d00fff779a3eca9513522908e252a2b4aab2060608e6cd2d4f1b8c696cd\n\n# tcId = 226\n# special case hash\nmsg = 31393639343836303634\nresult = valid\nsig = 303c021c64c084f6b775bbf7915c1964a68b0259629328598f13557872867830021c2a6f3b289d130ec3d99e4caaf601497895a069c1a5a75b559ad28444\n\n# tcId = 227\n# special case hash\nmsg = 32323335363732383833\nresult = valid\nsig = 303d021c2b514e9b0e0eb68adc01915abbee9fa21f3034be5581dedaa6b15982021d00b8f71c5fdc68d698716bfc623b278216c0fcc0298497fc9c03db44e9\n\n# tcId = 228\n# special case hash\nmsg = 32323537383433373033\nresult = valid\nsig = 303e021d00e4103f4a8a814485b6b406fe8dd72206bad6a50e7126bc655c3d2285021d009bcb99693284cac26e6641a861dbec24f9cc5dd7bb535339d09ac984\n\n# tcId = 229\n# special case hash\nmsg = 393434353030393436\nresult = valid\nsig = 303d021d009edfb833446ec8b6fc84eea34ee40a85b732e5c99da8abc8bafcc515021c5052b40f9d407ae90003299cabe3e1a587b0558127cafb31de6b2638\n\n# tcId = 230\n# special case hash\nmsg = 31363837373839343130\nresult = valid\nsig = 303d021d00ad2647c8ff377798a6aeaed436d30c7b25fb52428829ce6424dd34e8021c28f58671d77c86da302418c51e5ab86d137ba6ef4389722bc79b8751\n\n# tcId = 231\n# special case hash\nmsg = 333933323631323238\nresult = valid\nsig = 303c021c5dfc6fad385bdb24b2b70a64fd4253405c0028bb36f4793aa3bd31fe021c1c210b74924171378992b03bb1bd78c5cfcfc879d2e5c736d35516c3\n\n# tcId = 232\n# special case hash\nmsg = 31303733353731303935\nresult = valid\nsig = 303d021c766bef46229695e6829dd12cd558369ec34519ba4a72dcaf6f73f7b0021d00fc015ccdd1e943b910101607d81ff1398ca6a4d70c25832b02b221e4\n\n# tcId = 233\n# special case hash\nmsg = 3630383837343734\nresult = valid\nsig = 303c021c120055f90ad1290c4c5fc5faf69b215139182c770d2b55e95712442f021c01ac47f7446543d4003b039d9f54daa9d0799f98291a32df4fcd472a\n\n# tcId = 234\n# special case hash\nmsg = 31313932353639393632\nresult = valid\nsig = 303d021d00f480591f6f40a25b37a035fd91954145ec342e593d09e142f25da408021c5c6ba44ff52f52c51490743d9b650916be58d06d7c1fd99dfa2eab58\n\n# tcId = 235\n# special case hash\nmsg = 3930303736303933\nresult = valid\nsig = 303c021c57daddb0cb6af939b1ea1aaf4bc72e56150c0c46a581827193e65d17021c3bc37bde4e60b789ba86a054d37f1191e0814926c1a0100168d16c17\n\n# tcId = 236\n# special case hash\nmsg = 31363032383336313337\nresult = valid\nsig = 303c021c3a74102bd1fc617018efc4fbc042e719a81b55830aac1f1dcdedec65021c4bb9fe90015a45f31c8c95dda24f54fcdb64682c13f68d4da3d1abe0\n\n# tcId = 237\n# special case hash\nmsg = 32303830323435363734\nresult = valid\nsig = 303e021d00e3b6bb1b5beed048e0177e3e310fa14eb923a1e3274c0946f9275454021d00e044e0494ff46573c37007e3efa3233588f1d103ced1823c7e87e7c8\n\n# tcId = 238\n# special case hash\nmsg = 31373938323734363539\nresult = valid\nsig = 303c021c3c212b5a7e65d9af44643bd62fa42a9b9cffe6bdb623e9b9e4337156021c29c8121a12427a324e5d551ff5a83d3c252e32257af2800d080817d2\n\n# tcId = 239\n# special case hash\nmsg = 31313535353737373230\nresult = valid\nsig = 303c021c1630554989fffd0e35f2d9105623d73a543634c48000484c422272ca021c214da487d5e51f73814dff80a08c77bd8a83a9889a1b26a5578ba954\n\n# tcId = 240\n# special case hash\nmsg = 32343332343734363634\nresult = valid\nsig = 303d021c0a4609242f2193b94bc54f49bcf532a576e035cec50e043668574bef021d00aa68bd67624d8812002bbb3a5f530594451372d4ab36896a2929c3df\n\n# tcId = 241\n# special case hash\nmsg = 32343137323832323737\nresult = valid\nsig = 303e021d00ef9ff446e8eef3e948f4129fe8804f81f5b7f116a5383f9e8bc359e4021d00f4c7055bd98f4a7ea49d9574160eac167809f6a78b9dd220958dd0f3\n\n# tcId = 242\n# special case hash\nmsg = 3737383734373731\nresult = valid\nsig = 303d021c1a6c59d85d5b3120b28c0d30bc058a92dc725d8ef450c198cc3ca522021d008b17fefc8ab1ff0bb37a93446453d40f65bc2cb9636b11207f5c90a1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]\n[key.wx = 08bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7]\n[key.wy = 0eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]\n[sha = SHA-224]\n\n# tcId = 243\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n# tcId = 244\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 042646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]\n[key.wx = 2646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818]\n[key.wy = 0ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]\n[sha = SHA-224]\n\n# tcId = 245\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]\n[key.wx = 0ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988]\n[key.wy = 0f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]\n[sha = SHA-224]\n\n# tcId = 246\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0492ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]\n[key.wx = 092ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13]\n[key.wy = 0e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000492ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]\n[sha = SHA-224]\n\n# tcId = 247\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b157315cc1aaeae64eb5b38452884195fdfe8a15fb5618284f48afe5e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]\n[key.wx = 0b157315cc1aaeae64eb5b38452884195fdfe8a15fb5618284f48afe5]\n[key.wy = 0e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b157315cc1aaeae64eb5b38452884195f", - "dfe8a15fb5618284f48afe5e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]\n[sha = SHA-224]\n\n# tcId = 248\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020101\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0487d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1db5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]\n[key.wx = 087d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1d]\n[key.wy = 0b5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000487d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1db5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]\n[sha = SHA-224]\n\n# tcId = 249\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020103\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f518b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]\n[key.wx = 461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f5]\n[key.wy = 18b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f518b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]\n[sha = SHA-224]\n\n# tcId = 250\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020104\n\n# tcId = 251\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]\n[key.wx = 08093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a]\n[key.wy = 10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]\n[sha = SHA-224]\n\n# tcId = 252\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]\n[key.wx = 0c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e]\n[key.wy = 3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]\n[sha = SHA-224]\n\n# tcId = 253\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed634835503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]\n[key.wx = 0beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed6348]\n[key.wy = 35503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed634835503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]\n[sha = SHA-224]\n\n# tcId = 254\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]\n[key.wx = 1955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c]\n[key.wy = 0807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]\n[sha = SHA-224]\n\n# tcId = 255\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 302d020d1033e67e37b32b445580bf4efb021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 045cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]\n[key.wx = 5cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf]\n[key.wy = 4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]\n[sha = SHA-224]\n\n# tcId = 256\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 047b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7bdee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]\n[key.wx = 7b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7b]\n[key.wy = 0dee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7bdee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]\n[sha = SHA-224]\n\n# tcId = 257\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0403f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f76767d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]\n[key.wx = 3f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f7676]\n[key.wy = 7d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000403f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f76767d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]\n[sha = SHA-224]\n\n# tcId = 258\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3ca46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]\n[key.wx = 0b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3c]\n[key.wy = 0a46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3ca46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]\n[sha = SHA-224]\n\n# tcId = 259\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101\n\n# tcId = 260\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0476e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]\n[key.wx = 76e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682]\n[key.wy = 0cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000476e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]\n[sha = SHA-224]\n\n# tcId = 261\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384dcce4e5b83c32a800e8de28fa936d582cdcad185e8", - "94caac797f1d14]\n[key.wx = 0b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384]\n[key.wy = 0dcce4e5b83c32a800e8de28fa936d582cdcad185e894caac797f1d14]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384dcce4e5b83c32a800e8de28fa936d582cdcad185e894caac797f1d14]\n[sha = SHA-224]\n\n# tcId = 262\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]\n[key.wx = 0941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538]\n[key.wy = 0c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]\n[sha = SHA-224]\n\n# tcId = 263\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0443c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb4729ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]\n[key.wx = 43c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb472]\n[key.wy = 09ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000443c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb4729ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]\n[sha = SHA-224]\n\n# tcId = 264\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f104596997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]\n[key.wx = 0d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f10459]\n[key.wy = 6997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f104596997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]\n[sha = SHA-224]\n\n# tcId = 265\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad40d3e1b8392e81c29\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]\n[key.wx = 0d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4]\n[key.wy = 713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]\n[sha = SHA-224]\n\n# tcId = 266\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d1be91557d866ad5f2945b14ec3317bc43c1338fd06af6496201cce2\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff377d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]\n[key.wx = 3d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff37]\n[key.wy = 7d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff377d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]\n[sha = SHA-224]\n\n# tcId = 267\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7ac54a381d9bd3f2698359d6f658b5e4167d15a75b576e82d2efbd37\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]\n[key.wx = 0a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60]\n[key.wy = 0d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]\n[sha = SHA-224]\n\n# tcId = 268\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4fbb063e82402e16fe14edda4d7986b0b88344a1f53b0e2684ee7e31\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 044d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]\n[key.wx = 4d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab]\n[key.wy = 106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]\n[sha = SHA-224]\n\n# tcId = 269\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d3be5f50d726f99b8ac44bff876bfe78dd7ae630d227ef0ba87ae39b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]\n[key.wx = 08c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f]\n[key.wy = 5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]\n[sha = SHA-224]\n\n# tcId = 270\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00e5f50d726f99b8ac44bff876cbf710e47f9087d1afdfb1dab6d6daf1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf412e86d4ae55f4460aba6a932f307ee78efdc136e9a3df6313100bf4f]\n[key.wx = 0ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf4]\n[key.wy = 12e86d4ae55f4460aba6a932f307ee78efdc136e9a3df6313100bf4f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf412e86d4ae55f4460aba6a932f307ee78efdc136e9a3df6313100bf4f]\n[sha = SHA-224]\n\n# tcId = 271\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00cbea1ae4df337158897ff0ed97ef0b261e681f654be23a7011518ba5\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992023c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]\n[key.wx = 3fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992]\n[key.wy = 23c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992023c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]\n[sha = SHA-224]\n\n# tcId = 272\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d726f99b8ac44bff876cbf7e28422aa07ec3cb1d9472bd704f4029f0\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc9a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]\n[key.wx = 0e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc]\n[key.wy = 09a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]\n[keyDer = 304e301006072a8648ce3d02", - "0106052b81040021033a0004e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc9a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]\n[sha = SHA-224]\n\n# tcId = 273\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009720b755413cca9506b5d27589e58ac4bed856762ba7ae20ab5b43cc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e28131b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]\n[key.wx = 3c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e2813]\n[key.wy = 1b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e28131b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]\n[sha = SHA-224]\n\n# tcId = 274\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2e416eaa8279952a0d6ba4eb13cbfee69cf7bcae437232fbfa5a5d5b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c053ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]\n[key.wx = 0c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c]\n[key.wy = 53ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c053ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]\n[sha = SHA-224]\n\n# tcId = 275\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00c56225ffc3b65fbf142177609db189ab5bd013246f19e11ca5b5a127\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 047c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd56e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]\n[key.wx = 7c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd5]\n[key.wy = 6e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd56e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]\n[sha = SHA-224]\n\n# tcId = 276\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00a7dd831f4120170b7f0a76ed26bc4ea9cc9e1a70048c1bb5f0a55437\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 044108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]\n[key.wx = 4108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b]\n[key.wy = 46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]\n[sha = SHA-224]\n\n# tcId = 277\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 042f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e35a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]\n[key.wx = 2f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e3]\n[key.wy = 5a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e35a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]\n[sha = SHA-224]\n\n# tcId = 278\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 047dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c72834353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]\n[key.wx = 7dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c7283]\n[key.wy = 4353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c72834353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]\n[sha = SHA-224]\n\n# tcId = 279\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd32882663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]\n[key.wx = 0dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd328]\n[key.wy = 082663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd32882663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]\n[sha = SHA-224]\n\n# tcId = 280\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed255beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]\n[key.wx = 0e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed2]\n[key.wy = 55beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed255beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]\n[sha = SHA-224]\n\n# tcId = 281\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca242b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]\n[key.wx = 0c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca2]\n[key.wy = 42b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca242b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]\n[sha = SHA-224]\n\n# tcId = 282\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0408a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f433fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]\n[key.wx = 08a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f4]\n[key.wy = 33fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000408a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f433fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]\n[sha = SHA-224]\n\n# tcId = 283\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]\n[key.wx = 1a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c]\n[key.wy = 6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]\n[sha = SHA-224]\n\n# tcId = 284\n", - "# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 042d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb95bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]\n[key.wx = 2d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb]\n[key.wy = 095bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb95bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]\n[sha = SHA-224]\n\n# tcId = 285\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]\n[key.wx = 1161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c]\n[key.wy = 08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]\n[sha = SHA-224]\n\n# tcId = 286\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0484dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]\n[key.wx = 084dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af]\n[key.wy = 7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000484dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]\n[sha = SHA-224]\n\n# tcId = 287\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041767574e645c550ef3d353f76d4428f9616ac288b36378857de332629fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]\n[key.wx = 1767574e645c550ef3d353f76d4428f9616ac288b36378857de33262]\n[key.wy = 09fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041767574e645c550ef3d353f76d4428f9616ac288b36378857de332629fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]\n[sha = SHA-224]\n\n# tcId = 288\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c1ef359e4bd146f63d8155c5c2523fa3353c9820f84f28150bad3819a\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041767574e645c550ef3d353f76d4428f9616ac288b36378857de33262601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]\n[key.wx = 1767574e645c550ef3d353f76d4428f9616ac288b36378857de33262]\n[key.wy = 601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041767574e645c550ef3d353f76d4428f9616ac288b36378857de33262601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]\n[sha = SHA-224]\n\n# tcId = 289\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c1ef359e4bd146f63d8155c5c2523fa3353c9820f84f28150bad3819a\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]\n[key.wx = 0e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142]\n[key.wy = 0f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]\n[sha = SHA-224]\n\n# tcId = 290\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea699484fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]\n[key.wx = 0b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea69948]\n[key.wy = 4fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea699484fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]\n[sha = SHA-224]\n\n# tcId = 291\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04286e80429c8796dcd885d95f960d209fed19f87e2ce423d166c8e2202e30882c09970d5dd58b67e5bb80affec74248a9cb4a783384c8b6a0]\n[key.wx = 286e80429c8796dcd885d95f960d209fed19f87e2ce423d166c8e220]\n[key.wy = 2e30882c09970d5dd58b67e5bb80affec74248a9cb4a783384c8b6a0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004286e80429c8796dcd885d95f960d209fed19f87e2ce423d166c8e2202e30882c09970d5dd58b67e5bb80affec74248a9cb4a783384c8b6a0]\n[sha = SHA-224]\n\n# tcId = 292\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 045599a3faf96aba7302bd3d98cfde69525b7292762383f4a0b5c310393faa45feb6c35d2b7bf25ffc633c420ebfc4e715765302c5a11ac793]\n[key.wx = 5599a3faf96aba7302bd3d98cfde69525b7292762383f4a0b5c31039]\n[key.wy = 3faa45feb6c35d2b7bf25ffc633c420ebfc4e715765302c5a11ac793]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045599a3faf96aba7302bd3d98cfde69525b7292762383f4a0b5c310393faa45feb6c35d2b7bf25ffc633c420ebfc4e715765302c5a11ac793]\n[sha = SHA-224]\n\n# tcId = 293\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 045b5234b8db6bbd396eae7d1ca4e6d877824c98cde9fbfab34b6b8ccb1f38ae9f87adc3e6d2474eb5e3cd9aeff0927320214be550f5e62ed4]\n[key.wx = 5b5234b8db6bbd396eae7d1ca4e6d877824c98cde9fbfab34b6b8ccb]\n[key.wy = 1f38ae9f87adc3e6d2474eb5e3cd9aeff0927320214be550f5e62ed4]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045b5234b8db6bbd396eae7d1ca4e6d877824c98cde9fbfab34b6b8ccb1f38ae9f87adc3e6d2474eb5e3cd9aeff0927320214be550f5e62ed4]\n[sha = SHA-224]\n\n# tcId = 294\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aced4ea8949e5ae37ef2f5eb5e00675d08e17c34be6677b0f269b6725e3ad0af49ebfff415ee4f2a838ead1f84cafaa652c17acc26130725]\n[key.wx = 0aced4ea8949e5ae37ef2f5eb5e00675d08e", - "17c34be6677b0f269b672]\n[key.wy = 5e3ad0af49ebfff415ee4f2a838ead1f84cafaa652c17acc26130725]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aced4ea8949e5ae37ef2f5eb5e00675d08e17c34be6677b0f269b6725e3ad0af49ebfff415ee4f2a838ead1f84cafaa652c17acc26130725]\n[sha = SHA-224]\n\n# tcId = 295\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043e8c1bcc16195e8769e25d4c859807dffe178bed5bca9db06efa15324e3b53b3048b8ccd8cdc1265be240c8ee204060486a99ad31eaad3a4]\n[key.wx = 3e8c1bcc16195e8769e25d4c859807dffe178bed5bca9db06efa1532]\n[key.wy = 4e3b53b3048b8ccd8cdc1265be240c8ee204060486a99ad31eaad3a4]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043e8c1bcc16195e8769e25d4c859807dffe178bed5bca9db06efa15324e3b53b3048b8ccd8cdc1265be240c8ee204060486a99ad31eaad3a4]\n[sha = SHA-224]\n\n# tcId = 296\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0424819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]\n[key.wx = 24819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13]\n[key.wy = 0b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000424819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]\n[sha = SHA-224]\n\n# tcId = 297\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0444cf57bac30a83da39f90bf3faacd52211a70fb92547db7778ea6c812b3fd1bf14688d2770c50cd5a890a3807ba0e8612136a1b11e030f82]\n[key.wx = 44cf57bac30a83da39f90bf3faacd52211a70fb92547db7778ea6c81]\n[key.wy = 2b3fd1bf14688d2770c50cd5a890a3807ba0e8612136a1b11e030f82]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000444cf57bac30a83da39f90bf3faacd52211a70fb92547db7778ea6c812b3fd1bf14688d2770c50cd5a890a3807ba0e8612136a1b11e030f82]\n[sha = SHA-224]\n\n# tcId = 298\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04dc17f1001d326127f7375cffa70b7530bca4da1040dc43d0044aaca07a146f04c5294cfe7e1ed587da55bae70b7fa8e32f6aa800314d01dd]\n[key.wx = 0dc17f1001d326127f7375cffa70b7530bca4da1040dc43d0044aaca0]\n[key.wy = 7a146f04c5294cfe7e1ed587da55bae70b7fa8e32f6aa800314d01dd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004dc17f1001d326127f7375cffa70b7530bca4da1040dc43d0044aaca07a146f04c5294cfe7e1ed587da55bae70b7fa8e32f6aa800314d01dd]\n[sha = SHA-224]\n\n# tcId = 299\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0468e2d7088eac18ba775bf68c5c509e86afd6f93451b4e4ee1d73e277e24ff4e27ef6c519db676d822c5db040482888013c8f3881bc9ac65a]\n[key.wx = 68e2d7088eac18ba775bf68c5c509e86afd6f93451b4e4ee1d73e277]\n[key.wy = 0e24ff4e27ef6c519db676d822c5db040482888013c8f3881bc9ac65a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000468e2d7088eac18ba775bf68c5c509e86afd6f93451b4e4ee1d73e277e24ff4e27ef6c519db676d822c5db040482888013c8f3881bc9ac65a]\n[sha = SHA-224]\n\n# tcId = 300\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04cd4171adcb8be75e7734061a048b2bf228d167c2742d27f854392046865eb958ebd320ba87662ad3ac7af568c6be0f09be090bcfe083b3e5]\n[key.wx = 0cd4171adcb8be75e7734061a048b2bf228d167c2742d27f854392046]\n[key.wy = 0865eb958ebd320ba87662ad3ac7af568c6be0f09be090bcfe083b3e5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004cd4171adcb8be75e7734061a048b2bf228d167c2742d27f854392046865eb958ebd320ba87662ad3ac7af568c6be0f09be090bcfe083b3e5]\n[sha = SHA-224]\n\n# tcId = 301\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04eefdf99ab69d1888772cabe21d406045e1beab82761a7040beeb7ed359718c889af80f22f320fbe662d5ea0f65dfb4a5589c294ce5b73359]\n[key.wx = 0eefdf99ab69d1888772cabe21d406045e1beab82761a7040beeb7ed3]\n[key.wy = 59718c889af80f22f320fbe662d5ea0f65dfb4a5589c294ce5b73359]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eefdf99ab69d1888772cabe21d406045e1beab82761a7040beeb7ed359718c889af80f22f320fbe662d5ea0f65dfb4a5589c294ce5b73359]\n[sha = SHA-224]\n\n# tcId = 302\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 0bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[sha = SHA-224]\n\n# tcId = 303\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 304\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[sha = SHA-224]\n\n# tcId = 305\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 306\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]\n[key.wy = 0ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[sha = SHA-224]\n\n# tcId = 307\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 303d021c2770", - "403d42b7b45e553308d1f6a480640b61cac0ae36665d6f14d34e021d0085506b0404265ededf9a89fc7c9c7a55c16c5b0d781f774de8f46fa1\n\n# tcId = 308\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 303d021d00b68da722bbba7f6a58417bb5d0dd88f40316fc628b0edfcb0f02b062021c5c742e330b6febadf9a12d58ba2a7199629457ef2e9e4cecd2f09f50\n\n# tcId = 309\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 303c021c01ec1ff15c8a55d697a5424d674753f82f711593828368d2fbb41a17021c20d9089db7baf46b8135e17e01645e732d22d5adb20e3772da740eee\n\n# tcId = 310\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 303c021c3e46e9ba4dc089ff30fa8c0209c31b11ff49dbeec090f9f53c000c75021c6f2e3b36369416602bca83206809ed898fcf158a56c25a5474143f68\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[key.wx = 0aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]\n[key.wy = 08a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[sha = SHA-224]\n\n# tcId = 311\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c77b38da37079d27b837613ac3e8248d66eabd5d637076c8e62c7991e021d00d40cd9f81efc52db4429c0c1af7c1d8a22b6c7babbe7fbd8b5b3f02f\n\n# tcId = 312\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008c03b32c166c0c8b99d7f876acd109447efb13f6b82945e78d51a269021c657568f1a0a8bd7df5ffa43097ebb2b64435c8e3335bcaafc63f9ed5\n\n# tcId = 313\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00d199a375253d30f1d2b4493542e9934f9f1f8b0680117679f5bc4ad2021c11419ddbf02c8ad5f518f8dac33f86a85e777af51a034132e2767a6d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 0bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-224]\n\n# tcId = 314\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008ff82699e2e82870be9cfdd8a408bb34f8f38a83a4ac8370f18f2bc8021c7e5008fab6a0d4159200077ef9918dad6592cd8359838852c636ac05\n\n# tcId = 315\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c3f3b60b529ae0f950c517264adf2e481616bc47416742d5103589660021d00f731ebe98e58384b3a64b4696d4cc9619828ad51d7c39980749709a6\n\n# tcId = 316\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00dc11ffdc6b78754a335f168c4033916a2158d125a3f4fed9dc736661021c6dd84364717d9f4b0790f2b282f9245ecb316874eac025600397f109\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 0eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-224]\n\n# tcId = 317\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00a59b25b786d55f26b04dfe90ee02a6bde64ed6e431dc9fbdc3ab360e021d00fc14b5ad20f39da9900e35437936c8626fccf6632e7a3d9e587e3311\n\n# tcId = 318\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2eda1f96c1a6e3ad8a3321ce82cbb13a5b935b501abf6c06f7fd2b3f021d00e81050c3e5f53a3c7b9d0bdb9ed92a326dfeac44791ba1abe4d6e973\n\n# tcId = 319\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c60f5e093fda08fc14ac99d820a18ad1370c58150bea0aca24fc6db9d021d00c2220a0ebbf4896e68fdb5bd824f88291c1c862b916f9c4af87f8f5f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 0ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-224]\n\n# tcId = 320\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2ead37846a5e36a490b75140bdc7b636c6e9f6d8f980f6fadb08f769021d00e1fe130ae1798c196d7be62c7a5ddb3168cf4b8d48b6b6b4dc94ab3b\n\n# tcId = 321\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a8a4c9416d72c860573d073281cb08c86ad65313f06b15a329e82eb2021c5a6edd2f0816b7263d915d72c67d50a854e3abee5cde1b679a0cef09\n\n# tcId = 322\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c576bb86c517bfecdc930a4c8501725548d425afbb96d93f5c1e2a0e1021c77248c5ecd620c431438c50e6bee6858091b54a87f8548ae35c21027\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-224]\n\n# tcId = 323\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c34e41cba628fd8787ba1a528f6015d2cae015c1c9a866e08a7133801021d0083d422ffdd99cc3c6d7096ef927f0b11988d1824e6e93840ff666ccd\n\n# tcId = 324\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c2558a42e79689244bccd5e855f6a1e42b4ff726873f30b532b89ef53021c07f9bd947785187175d848b6e2d79f7ab3bbc1087b42590b0cfb256a\n\n# tcId = 325\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00d5fe7dd5fb4fd1ea5ce66c0824f53f96ce47fd9b6c63b4d57827fd17021d00bce5bc3af705afaacb81bfa6d552d6198962fece9fba41546c602ddc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 0ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-224]\n\n# tcId = 326\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008c1da2f07cdcbce4db8067b863468cfc728df52980229028689e57b6021c32175c1390a4b2cab6359bab9f854957d4fd7976c9c6d920c871c051\n\n# tcId = 327\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e46d4f11b86b5a12f6fe781d1f934ef2b30e78f6f9cc86a9996e20c0021d008351974b965526034a0ccef0e7d3bc13d91798151488c91533143f7b\n\n# tcId = 328\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c305ccf0b5d0cf33dc745bb7c7964c233f6cfd8892a1c1ae9f50b2f3f021c785f6e85f5e652587c6e15d0c45c427278cf65bb1429a57d8826ca39\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ", - "ECPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 0f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 0de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-224]\n\n# tcId = 329\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0e4fde0ac8d37536505f7b8bdc2d22c5c334b064ac5ed27bea9c179e021d00c4d6bf829dd547000d6f70b9ad9e9c1503bebcf1d95c2608942ca19d\n\n# tcId = 330\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00818afcaf491da9d08a7cc29318d5e85dce568dcca7018059f44e9b7e021d00bf32a233d5fc6ed8e2d9270b1bdad4bbd2a0f2c293d289bd91ffbcf3\n\n# tcId = 331\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c0e05ed675c673e5e70a4fdd5a47b114c5d542d4f6d7a367597d713ea021c26d70d65c48430373363987810bdcc556e02718eab214403ae008db4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 0ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-224]\n\n# tcId = 332\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ab7a19eecf63e9668278963b65236b2768e57cae0e268cb86a0ddda1021d008829f5d3a3394f9467ba62e66ef1768e3e54f93ed23ec962bc443c2e\n\n# tcId = 333\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c17111a77cf79bead456ed86a7d8a935531440281eb8b15a885e341c0021d00fdc3958d04f037b1d4bb2cee307b5201be062e0d4e089df1c1917668\n\n# tcId = 334\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00acafa1e33345eeba0c338c2204b4cd8ba21de7ec3e1213317038e968021c0b42fbbaeda98a35da0de4c79546f3a0f7d9dec275d2cd671f93c874\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-224]\n\n# tcId = 335\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a3fe71a2a56f554e98fd10a8098c2a543c98bc6b3602ef39f2412308021c5d1d68f9a870ef2bc87484b3386549fae95811ab72bc0e3a514720da\n\n# tcId = 336\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c132f7625704756c13f2bfa449e60952f836f4904660b5b1da07e5a9f021d0082b4abafc40e8fd19b0c967f02fff152737ce01153658df445c4d7b7\n\n# tcId = 337\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00f36a8347c6fe0397a1161a364cbc4bdfb4d8b7894cbaa6edc55a4ff7021d009c9c90515da5e602d62e99f48eac414e913dd0b7cbf680c1a5399952\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-224]\n\n# tcId = 338\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2125ecc08e52e9e39e590117de2145bd879626cb87180e52e9d3ce03021d008f7e838d0e8fb80005fe3c72fca1b7cc08ed321a34487896b0c90b04\n\n# tcId = 339\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e485747ac2f3d045e010cdadab4fd5dbd5556c0008445fb73e07cd90021d00e2133a7906aeac504852e09e6d057f29ab21368cfc4e2394be565e68\n\n# tcId = 340\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a4de0d931ddab90e667ebc0ad800ce49e971c60543abdc46cefff926021c550816170bd87593b9fb8ad5ed9ab4ddb12403ff6fe032252833bac4\n\n", +static const char *kData99[] = { + "# Imported from Wycheproof's ecdsa_secp224r1_sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 00eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 00eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-224]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c2840bf24f6f66be287066b7cbf38788e1b7770b18fd1aa6a26d7c6dc\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30813d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d028070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f0000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042498177303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412500303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30422221498177021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304122202500021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045221e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0004deadbeef021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2222498177021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a22212500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a221f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045aa00bb00cd00303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043aa02aabb303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30452224aa00bb00cd00021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig", + " = 30432222aa02aabb021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2225aa00bb00cd00021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2223aa02aabb021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30412280021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30412280031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3041300102303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636100\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636105000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f3000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463613000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3040021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361bf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 301e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e02811c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02811d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f0282001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0282001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021d70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021b70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021e00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 75\n#", + " wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30420285010000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285010000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046028901000000000000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028901000000000000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304102847fffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02847fffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410284ffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0284ffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30420285ffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285ffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30450288ffffffffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0288ffffffffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d02ff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02ff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302002021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e000070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f000000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210281021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30210500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d011c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d041c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303dff1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a011d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a041d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480aff1d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210200021d0", + "0d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 115\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0200\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30412220020170021b049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 117\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2221020100021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c72049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 119\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d02d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a488a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 121\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463e1\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a48021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 124\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021eff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3022090180021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 128\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0170049af31f8348673d56cece2b26fc2a84bbe2e2a2e84aeced767247021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff70049af31f8348673d56cece2b28cee4c34a02667b2df86234be1dcd021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c8ffb650ce07cb798c2a93131d4d81a785bfd0d5b70f4de586ee5b7f6021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d008ffb650ce07cb798c2a93131d4d7311b3cb5fd9984d2079dcb41e233021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dfe8ffb650ce07cb798c2a93131d4d903d57b441d1d5d17b51312898db9021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0170049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d008ffb650ce07cb798c2a93131d4d81a785bfd0d5b70f4de586ee5b7f6021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d01d7bf40db0909941d78f9948340c5b4b7a5fa6fca97e8a82091e08d9e\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c78771e4888f4e702e5595d9283924\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021dff2840bf24f6f66be287066b7cbf3961eb3abe80737bf48124ca7b9c9f\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021dfe2840bf24f6f66be287066b7cbf3a4b485a059035681757df6e1f7262\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d01d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c2840bf24f6f66be287066b7cbf3961eb3abe80737bf48124ca7b9c9f\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 154\n# Signature wit", + "h special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090142\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090142\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101\nflags = EdgeCase\n\n# tcId = 196\n#", + " Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090142\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001090142\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01\nflags = EdgeCase\n\n# tcId = 223\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002090142\nflags = EdgeCase\n\n# tcId = 224\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 230\n# Edge case for Shamir multiplication\nmsg = 3137353738\nresult = valid\nsig = 303c021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021c3116e1a38e4ab2008eca032fb2d185e5c21a232eaf4507ae56177fd2\n\n# tcId = 231\n# special case hash\nmsg = 32323534363238393834\nresult = valid\nsig = 303d021d008ce2afe20b684576fdd91b4b34168c9c011996af5b0eb85fa929f381021c662af5ca651bffbc623c3a3b372779bd09e1948cd19188f5339a979d\n\n# tcId = 232\n# special case hash\nmsg = 31383237383738363130\nresult = valid\nsig = 303e021d00da573cf73aed174710c232155735248f8ebef696374647527da52258021d00b251856b66a83c32bf0b7b81a01f1db4507e622125f301bd832a5ccc\n\n# tcId = 233\n# special case hash\nmsg = 31353138383631373039\nresult = valid\nsig = 303e021d00c368da86582b2c82b696b2f7c79027968f3fd25cbba9688cdc67b17a021d00aba8e3c2ff1af9bb9c66ca88a3825a19ce17206e7a658ff47025891e\n\n# tcId = 234\n# special case hash\nmsg = 32313239323333343232\nresult = valid\nsig = 303d021d00ffcefcb57190d0b87efb789fb53407fd2c65c5ae3551da3eccf8ddd5021c05c89b41238f1e1def8fbe8d4afebf20be077e82972f91297487e118\n\n# tcId = 235\n# special case hash\nmsg = 31323231393739303539\nresult = valid\nsig = 303c021c2b98c67ebf6597b08bc7f1b73ff8662cf125e9700ec973ece9c6", + "ff48021c2e3f72a8f76e12c8cdf4487e0956c1ef4578e1da4d29d8db824d415b\n\n# tcId = 236\n# special case hash\nmsg = 32333032353637363131\nresult = valid\nsig = 303d021c5794d70440f166904d24d0b910cd127c63a9eddca45a4d9032db47e8021d008ba5d290834d9a0963122d928da902f7b03467396072180bb1801b43\n\n# tcId = 237\n# special case hash\nmsg = 31313035383638343732\nresult = valid\nsig = 303e021d00c29c70b0b21782d1c727f4907aef5641b6d6c6e7b2a1ebfa57794223021d00aac2d3a02592f298dd3198e388425ec7a91d7e6be48248a64773614c\n\n# tcId = 238\n# special case hash\nmsg = 31343636363134343432\nresult = valid\nsig = 303d021c5c3ef3778c811e69ef0b0e370e45ec0d7eb88505c3e8ffb8c50b9993021d00e06b5c6e47dc4da9e64fd21bc3e1da13cf7c264fa64ccb89da87387c\n\n# tcId = 239\n# special case hash\nmsg = 343431393536343230\nresult = valid\nsig = 303e021d00ed8f586563232cf15ebd014bd4f99727e337cfe4ce48694fe6748ec2021d00fff779a3eca9513522908e252a2b4aab2060608e6cd2d4f1b8c696cd\n\n# tcId = 240\n# special case hash\nmsg = 31393639343836303634\nresult = valid\nsig = 303c021c64c084f6b775bbf7915c1964a68b0259629328598f13557872867830021c2a6f3b289d130ec3d99e4caaf601497895a069c1a5a75b559ad28444\n\n# tcId = 241\n# special case hash\nmsg = 32323335363732383833\nresult = valid\nsig = 303d021c2b514e9b0e0eb68adc01915abbee9fa21f3034be5581dedaa6b15982021d00b8f71c5fdc68d698716bfc623b278216c0fcc0298497fc9c03db44e9\n\n# tcId = 242\n# special case hash\nmsg = 32323537383433373033\nresult = valid\nsig = 303e021d00e4103f4a8a814485b6b406fe8dd72206bad6a50e7126bc655c3d2285021d009bcb99693284cac26e6641a861dbec24f9cc5dd7bb535339d09ac984\n\n# tcId = 243\n# special case hash\nmsg = 393434353030393436\nresult = valid\nsig = 303d021d009edfb833446ec8b6fc84eea34ee40a85b732e5c99da8abc8bafcc515021c5052b40f9d407ae90003299cabe3e1a587b0558127cafb31de6b2638\n\n# tcId = 244\n# special case hash\nmsg = 31363837373839343130\nresult = valid\nsig = 303d021d00ad2647c8ff377798a6aeaed436d30c7b25fb52428829ce6424dd34e8021c28f58671d77c86da302418c51e5ab86d137ba6ef4389722bc79b8751\n\n# tcId = 245\n# special case hash\nmsg = 333933323631323238\nresult = valid\nsig = 303c021c5dfc6fad385bdb24b2b70a64fd4253405c0028bb36f4793aa3bd31fe021c1c210b74924171378992b03bb1bd78c5cfcfc879d2e5c736d35516c3\n\n# tcId = 246\n# special case hash\nmsg = 31303733353731303935\nresult = valid\nsig = 303d021c766bef46229695e6829dd12cd558369ec34519ba4a72dcaf6f73f7b0021d00fc015ccdd1e943b910101607d81ff1398ca6a4d70c25832b02b221e4\n\n# tcId = 247\n# special case hash\nmsg = 3630383837343734\nresult = valid\nsig = 303c021c120055f90ad1290c4c5fc5faf69b215139182c770d2b55e95712442f021c01ac47f7446543d4003b039d9f54daa9d0799f98291a32df4fcd472a\n\n# tcId = 248\n# special case hash\nmsg = 31313932353639393632\nresult = valid\nsig = 303d021d00f480591f6f40a25b37a035fd91954145ec342e593d09e142f25da408021c5c6ba44ff52f52c51490743d9b650916be58d06d7c1fd99dfa2eab58\n\n# tcId = 249\n# special case hash\nmsg = 3930303736303933\nresult = valid\nsig = 303c021c57daddb0cb6af939b1ea1aaf4bc72e56150c0c46a581827193e65d17021c3bc37bde4e60b789ba86a054d37f1191e0814926c1a0100168d16c17\n\n# tcId = 250\n# special case hash\nmsg = 31363032383336313337\nresult = valid\nsig = 303c021c3a74102bd1fc617018efc4fbc042e719a81b55830aac1f1dcdedec65021c4bb9fe90015a45f31c8c95dda24f54fcdb64682c13f68d4da3d1abe0\n\n# tcId = 251\n# special case hash\nmsg = 32303830323435363734\nresult = valid\nsig = 303e021d00e3b6bb1b5beed048e0177e3e310fa14eb923a1e3274c0946f9275454021d00e044e0494ff46573c37007e3efa3233588f1d103ced1823c7e87e7c8\n\n# tcId = 252\n# special case hash\nmsg = 31373938323734363539\nresult = valid\nsig = 303c021c3c212b5a7e65d9af44643bd62fa42a9b9cffe6bdb623e9b9e4337156021c29c8121a12427a324e5d551ff5a83d3c252e32257af2800d080817d2\n\n# tcId = 253\n# special case hash\nmsg = 31313535353737373230\nresult = valid\nsig = 303c021c1630554989fffd0e35f2d9105623d73a543634c48000484c422272ca021c214da487d5e51f73814dff80a08c77bd8a83a9889a1b26a5578ba954\n\n# tcId = 254\n# special case hash\nmsg = 32343332343734363634\nresult = valid\nsig = 303d021c0a4609242f2193b94bc54f49bcf532a576e035cec50e043668574bef021d00aa68bd67624d8812002bbb3a5f530594451372d4ab36896a2929c3df\n\n# tcId = 255\n# special case hash\nmsg = 32343137323832323737\nresult = valid\nsig = 303e021d00ef9ff446e8eef3e948f4129fe8804f81f5b7f116a5383f9e8bc359e4021d00f4c7055bd98f4a7ea49d9574160eac167809f6a78b9dd220958dd0f3\n\n# tcId = 256\n# special case hash\nmsg = 3737383734373731\nresult = valid\nsig = 303d021c1a6c59d85d5b3120b28c0d30bc058a92dc725d8ef450c198cc3ca522021d008b17fefc8ab1ff0bb37a93446453d40f65bc2cb9636b11207f5c90a1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]\n[key.wx = 008bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7]\n[key.wy = 00eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]\n[sha = SHA-224]\n\n# tcId = 257\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n# tcId = 258\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 042646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]\n[key.wx = 2646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818]\n[key.wy = 00ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]\n[sha = SHA-224]\n\n# tcId = 259\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]\n[key.wx = 00ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988]\n[key.wy = 00f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]\n[sha = SHA-224]\n\n# tcId = 260\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0492ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]\n[key.wx = 0092ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13]\n[key.wy = 00e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000492ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]\n[sha = SHA-224]\n\n# tcId = 261\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b157315cc1aaeae64eb5b38452884195fdfe8a15fb5618284f48afe5e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]\n[key.wx = 00b157315cc1aaeae64eb5b38452884195fdfe8a15fb5618284f48afe5]\n[key.wy = 00e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b157315cc1aaeae64eb5b38452884195fdfe8a15fb5618284f48afe5e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]\n[sha = SHA-224]\n\n# tcId = 262\n# small r and s\nmsg = 313233343030\nresult = valid\nsi", + "g = 3006020103020101\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0487d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1db5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]\n[key.wx = 0087d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1d]\n[key.wy = 00b5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000487d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1db5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]\n[sha = SHA-224]\n\n# tcId = 263\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020103\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f518b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]\n[key.wx = 461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f5]\n[key.wy = 18b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f518b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]\n[sha = SHA-224]\n\n# tcId = 264\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020104\n\n# tcId = 265\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]\n[key.wx = 008093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a]\n[key.wy = 10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]\n[sha = SHA-224]\n\n# tcId = 266\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]\n[key.wx = 00c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e]\n[key.wy = 3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]\n[sha = SHA-224]\n\n# tcId = 267\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed634835503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]\n[key.wx = 00beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed6348]\n[key.wy = 35503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed634835503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]\n[sha = SHA-224]\n\n# tcId = 268\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]\n[key.wx = 1955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c]\n[key.wy = 00807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]\n[sha = SHA-224]\n\n# tcId = 269\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 302d020d1033e67e37b32b445580bf4efb021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 045cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]\n[key.wx = 5cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf]\n[key.wy = 4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]\n[sha = SHA-224]\n\n# tcId = 270\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 047b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7bdee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]\n[key.wx = 7b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7b]\n[key.wy = 00dee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7bdee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]\n[sha = SHA-224]\n\n# tcId = 271\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0403f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f76767d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]\n[key.wx = 03f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f7676]\n[key.wy = 7d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000403f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f76767d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]\n[sha = SHA-224]\n\n# tcId = 272\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3ca46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]\n[key.wx = 00b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3c]\n[key.wy = 00a46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3ca46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]\n[sha = SHA-224]\n\n# tcId = 273\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101\n\n# tcId = 274\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0476e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]\n[key.wx = 76e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682]\n[key.wy = 00cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000476e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]\n[sha = SHA-224]\n\n# tcId = 275\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0451839e545c872f4a381f278ed5b4c24cf38aac77b02953405618bf27394e41226594c499db6a7dd7a6901bda5e6474b1ffa10a6567210010]\n[key.wx = 51839e545c872f4a381f278ed5b4c24cf38aac77b02953405618bf27]\n[key.wy = 394e41226594c499db6a7dd7a6901bda5e6474b1ffa10a6567210010]\n", + "[keyDer = 304e301006072a8648ce3d020106052b81040021033a000451839e545c872f4a381f278ed5b4c24cf38aac77b02953405618bf27394e41226594c499db6a7dd7a6901bda5e6474b1ffa10a6567210010]\n[sha = SHA-224]\n\n# tcId = 276\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a3ec90053d1e100815d1becfe96c9b3646e52df794f6b03b766a7574c3b7e17e73acc8cefe71b6eb13d4f1c94c57e58bee43c69d9d41a964]\n[key.wx = 00a3ec90053d1e100815d1becfe96c9b3646e52df794f6b03b766a7574]\n[key.wy = 00c3b7e17e73acc8cefe71b6eb13d4f1c94c57e58bee43c69d9d41a964]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a3ec90053d1e100815d1becfe96c9b3646e52df794f6b03b766a7574c3b7e17e73acc8cefe71b6eb13d4f1c94c57e58bee43c69d9d41a964]\n[sha = SHA-224]\n\n# tcId = 277\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384dcce4e5b83c32a800e8de28fa936d582cdcad185e894caac797f1d14]\n[key.wx = 00b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384]\n[key.wy = 00dcce4e5b83c32a800e8de28fa936d582cdcad185e894caac797f1d14]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384dcce4e5b83c32a800e8de28fa936d582cdcad185e894caac797f1d14]\n[sha = SHA-224]\n\n# tcId = 278\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]\n[key.wx = 00941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538]\n[key.wy = 00c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]\n[sha = SHA-224]\n\n# tcId = 279\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0443c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb4729ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]\n[key.wx = 43c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb472]\n[key.wy = 009ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000443c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb4729ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]\n[sha = SHA-224]\n\n# tcId = 280\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f104596997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]\n[key.wx = 00d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f10459]\n[key.wy = 6997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f104596997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]\n[sha = SHA-224]\n\n# tcId = 281\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad40d3e1b8392e81c29\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]\n[key.wx = 00d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4]\n[key.wy = 713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]\n[sha = SHA-224]\n\n# tcId = 282\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d1be91557d866ad5f2945b14ec3317bc43c1338fd06af6496201cce2\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff377d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]\n[key.wx = 3d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff37]\n[key.wy = 7d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff377d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]\n[sha = SHA-224]\n\n# tcId = 283\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7ac54a381d9bd3f2698359d6f658b5e4167d15a75b576e82d2efbd37\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]\n[key.wx = 00a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60]\n[key.wy = 00d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]\n[sha = SHA-224]\n\n# tcId = 284\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4fbb063e82402e16fe14edda4d7986b0b88344a1f53b0e2684ee7e31\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 044d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]\n[key.wx = 4d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab]\n[key.wy = 106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]\n[sha = SHA-224]\n\n# tcId = 285\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d3be5f50d726f99b8ac44bff876bfe78dd7ae630d227ef0ba87ae39b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]\n[key.wx = 008c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f]\n[key.wy = 5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]\n[sha = SHA-224]\n\n# tcId = 286\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00e5f50d726f99b8ac44bff876cbf710e47f9087d1afdfb1dab6d6daf1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf412e86d4ae55f4460aba6a932f307ee78efdc136e9a3df6313100bf4f]\n[key.wx = 00ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf4]\n[key.wy = 12e86d4ae55f4460aba6a932f307ee78efdc136e9a3df6313100bf4f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf412e86d4ae55f4460aba6a9", + "32f307ee78efdc136e9a3df6313100bf4f]\n[sha = SHA-224]\n\n# tcId = 287\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00cbea1ae4df337158897ff0ed97ef0b261e681f654be23a7011518ba5\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992023c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]\n[key.wx = 3fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992]\n[key.wy = 023c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992023c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]\n[sha = SHA-224]\n\n# tcId = 288\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d726f99b8ac44bff876cbf7e28422aa07ec3cb1d9472bd704f4029f0\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc9a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]\n[key.wx = 00e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc]\n[key.wy = 009a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc9a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]\n[sha = SHA-224]\n\n# tcId = 289\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009720b755413cca9506b5d27589e58ac4bed856762ba7ae20ab5b43cc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e28131b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]\n[key.wx = 3c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e2813]\n[key.wy = 1b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e28131b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]\n[sha = SHA-224]\n\n# tcId = 290\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2e416eaa8279952a0d6ba4eb13cbfee69cf7bcae437232fbfa5a5d5b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c053ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]\n[key.wx = 00c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c]\n[key.wy = 053ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c053ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]\n[sha = SHA-224]\n\n# tcId = 291\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00c56225ffc3b65fbf142177609db189ab5bd013246f19e11ca5b5a127\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 047c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd56e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]\n[key.wx = 7c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd5]\n[key.wy = 6e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd56e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]\n[sha = SHA-224]\n\n# tcId = 292\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00a7dd831f4120170b7f0a76ed26bc4ea9cc9e1a70048c1bb5f0a55437\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 044108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]\n[key.wx = 4108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b]\n[key.wy = 46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]\n[sha = SHA-224]\n\n# tcId = 293\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 042f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e35a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]\n[key.wx = 2f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e3]\n[key.wy = 5a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e35a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]\n[sha = SHA-224]\n\n# tcId = 294\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 047dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c72834353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]\n[key.wx = 7dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c7283]\n[key.wy = 4353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c72834353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]\n[sha = SHA-224]\n\n# tcId = 295\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd32882663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]\n[key.wx = 00dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd328]\n[key.wy = 0082663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd32882663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]\n[sha = SHA-224]\n\n# tcId = 296\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed255beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]\n[key.wx = 00e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed2]\n[key.wy = 55beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed255beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]\n[sha = SHA-224]\n\n# tcId = 297\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca242b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]\n[key.wx = 00c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca2]\n[key.wy = 42b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca242b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]\n[sha = SHA-224]\n\n# tcId = 298\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0408a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f433fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]\n[key.wx = 08a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f4]\n[key.wy = 33fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000408a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f433fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]\n[sha = SHA-224]\n\n# tcId = 299\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]\n[key.wx = 1a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c]\n[key.wy = 6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]\n[sha = SHA-224]\n\n# tcId = 300\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 042d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb95bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]\n[key.wx = 2d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb]\n[key.wy = 0095bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb95bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]\n[sha = SHA-224]\n\n# tcId = 301\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]\n[key.wx = 1161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c]\n[key.wy = 08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]\n[sha = SHA-224]\n\n# tcId = 302\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0484dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]\n[key.wx = 0084dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af]\n[key.wy = 7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000484dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]\n[sha = SHA-224]\n\n# tcId = 303\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041767574e645c550ef3d353f76d4428f9616ac288b36378857de332629fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]\n[key.wx = 1767574e645c550ef3d353f76d4428f9616ac288b36378857de33262]\n[key.wy = 009fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041767574e645c550ef3d353f76d4428f9616ac288b36378857de332629fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]\n[sha = SHA-224]\n\n# tcId = 304\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c1ef359e4bd146f63d8155c5c2523fa3353c9820f84f28150bad3819a\nflags = PointDuplication\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041767574e645c550ef3d353f76d4428f9616ac288b36378857de33262601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]\n[key.wx = 1767574e645c550ef3d353f76d4428f9616ac288b36378857de33262]\n[key.wy = 601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041767574e645c550ef3d353f76d4428f9616ac288b36378857de33262601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]\n[sha = SHA-224]\n\n# tcId = 305\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c1ef359e4bd146f63d8155c5c2523fa3353c9820f84f28150bad3819a\nflags = PointDuplication\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]\n[key.wx = 00e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142]\n[key.wy = 00f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]\n[sha = SHA-224]\n\n# tcId = 306\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea699484fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]\n[key.wx = 00b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea69948]\n[key.wy = 4fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea699484fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]\n[sha = SHA-224]\n\n# tcId = 307\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04286e80429c8796dcd885d95f960d209fed19f87e2ce423d166c8e2202e30882c09970d5dd58b67e5bb80affec74248a9cb4a783384c8b6a0]\n[key.wx = 286e80429c8796dcd885d95f960d209fed19f87e2ce423d166c8e220]\n[key.wy = 2e30882c09970d5dd58b67e5bb80affec74248a9cb4a783384c8b6a0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004286e80429c8796dcd885d95f960d209fed19f87e2ce423d166c8e2202e30882c09970d5dd58b67e5bb80affec74248a9cb4a783384c8b6a0]\n[sha = SHA-224]\n\n# tcId = 308\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 045599a3faf96aba7302bd3d98cfde69525b7292762383f4a0b5c310393faa45feb6c35d2b7bf25ffc633c420ebfc4e715765302c5a11ac793]\n[key.wx = 5599a3faf96aba7302bd3d98cfde69525b7292762383f4a0b5c31039]\n[key.wy = 3faa45feb6c35d2b7bf25ffc633c420ebfc4e715765302c5a11ac793]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045599a3faf96aba7302bd3d98cfde69525b7292762383f4a0b5c310393faa45feb6c35d2b7bf25ffc633c420ebfc4e715765302c5a11ac793]\n[sha = SHA-224]\n\n# tcId = 309\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1", + "a704fa6021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 045b5234b8db6bbd396eae7d1ca4e6d877824c98cde9fbfab34b6b8ccb1f38ae9f87adc3e6d2474eb5e3cd9aeff0927320214be550f5e62ed4]\n[key.wx = 5b5234b8db6bbd396eae7d1ca4e6d877824c98cde9fbfab34b6b8ccb]\n[key.wy = 1f38ae9f87adc3e6d2474eb5e3cd9aeff0927320214be550f5e62ed4]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045b5234b8db6bbd396eae7d1ca4e6d877824c98cde9fbfab34b6b8ccb1f38ae9f87adc3e6d2474eb5e3cd9aeff0927320214be550f5e62ed4]\n[sha = SHA-224]\n\n# tcId = 310\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aced4ea8949e5ae37ef2f5eb5e00675d08e17c34be6677b0f269b6725e3ad0af49ebfff415ee4f2a838ead1f84cafaa652c17acc26130725]\n[key.wx = 00aced4ea8949e5ae37ef2f5eb5e00675d08e17c34be6677b0f269b672]\n[key.wy = 5e3ad0af49ebfff415ee4f2a838ead1f84cafaa652c17acc26130725]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aced4ea8949e5ae37ef2f5eb5e00675d08e17c34be6677b0f269b6725e3ad0af49ebfff415ee4f2a838ead1f84cafaa652c17acc26130725]\n[sha = SHA-224]\n\n# tcId = 311\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043e8c1bcc16195e8769e25d4c859807dffe178bed5bca9db06efa15324e3b53b3048b8ccd8cdc1265be240c8ee204060486a99ad31eaad3a4]\n[key.wx = 3e8c1bcc16195e8769e25d4c859807dffe178bed5bca9db06efa1532]\n[key.wy = 4e3b53b3048b8ccd8cdc1265be240c8ee204060486a99ad31eaad3a4]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043e8c1bcc16195e8769e25d4c859807dffe178bed5bca9db06efa15324e3b53b3048b8ccd8cdc1265be240c8ee204060486a99ad31eaad3a4]\n[sha = SHA-224]\n\n# tcId = 312\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0424819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]\n[key.wx = 24819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13]\n[key.wy = 00b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000424819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]\n[sha = SHA-224]\n\n# tcId = 313\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0444cf57bac30a83da39f90bf3faacd52211a70fb92547db7778ea6c812b3fd1bf14688d2770c50cd5a890a3807ba0e8612136a1b11e030f82]\n[key.wx = 44cf57bac30a83da39f90bf3faacd52211a70fb92547db7778ea6c81]\n[key.wy = 2b3fd1bf14688d2770c50cd5a890a3807ba0e8612136a1b11e030f82]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000444cf57bac30a83da39f90bf3faacd52211a70fb92547db7778ea6c812b3fd1bf14688d2770c50cd5a890a3807ba0e8612136a1b11e030f82]\n[sha = SHA-224]\n\n# tcId = 314\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04dc17f1001d326127f7375cffa70b7530bca4da1040dc43d0044aaca07a146f04c5294cfe7e1ed587da55bae70b7fa8e32f6aa800314d01dd]\n[key.wx = 00dc17f1001d326127f7375cffa70b7530bca4da1040dc43d0044aaca0]\n[key.wy = 7a146f04c5294cfe7e1ed587da55bae70b7fa8e32f6aa800314d01dd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004dc17f1001d326127f7375cffa70b7530bca4da1040dc43d0044aaca07a146f04c5294cfe7e1ed587da55bae70b7fa8e32f6aa800314d01dd]\n[sha = SHA-224]\n\n# tcId = 315\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0468e2d7088eac18ba775bf68c5c509e86afd6f93451b4e4ee1d73e277e24ff4e27ef6c519db676d822c5db040482888013c8f3881bc9ac65a]\n[key.wx = 68e2d7088eac18ba775bf68c5c509e86afd6f93451b4e4ee1d73e277]\n[key.wy = 00e24ff4e27ef6c519db676d822c5db040482888013c8f3881bc9ac65a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000468e2d7088eac18ba775bf68c5c509e86afd6f93451b4e4ee1d73e277e24ff4e27ef6c519db676d822c5db040482888013c8f3881bc9ac65a]\n[sha = SHA-224]\n\n# tcId = 316\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04cd4171adcb8be75e7734061a048b2bf228d167c2742d27f854392046865eb958ebd320ba87662ad3ac7af568c6be0f09be090bcfe083b3e5]\n[key.wx = 00cd4171adcb8be75e7734061a048b2bf228d167c2742d27f854392046]\n[key.wy = 00865eb958ebd320ba87662ad3ac7af568c6be0f09be090bcfe083b3e5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004cd4171adcb8be75e7734061a048b2bf228d167c2742d27f854392046865eb958ebd320ba87662ad3ac7af568c6be0f09be090bcfe083b3e5]\n[sha = SHA-224]\n\n# tcId = 317\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04eefdf99ab69d1888772cabe21d406045e1beab82761a7040beeb7ed359718c889af80f22f320fbe662d5ea0f65dfb4a5589c294ce5b73359]\n[key.wx = 00eefdf99ab69d1888772cabe21d406045e1beab82761a7040beeb7ed3]\n[key.wy = 59718c889af80f22f320fbe662d5ea0f65dfb4a5589c294ce5b73359]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eefdf99ab69d1888772cabe21d406045e1beab82761a7040beeb7ed359718c889af80f22f320fbe662d5ea0f65dfb4a5589c294ce5b73359]\n[sha = SHA-224]\n\n# tcId = 318\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[key.wx = 00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 00bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[sha = SHA-224]\n\n# tcId = 319\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 320\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[key.wx = 00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5e", + "a5f8b89bbb2a7e667aff81cd]\n[sha = SHA-224]\n\n# tcId = 321\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 322\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]\n[key.wy = 00ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[sha = SHA-224]\n\n# tcId = 323\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 303d021c2770403d42b7b45e553308d1f6a480640b61cac0ae36665d6f14d34e021d0085506b0404265ededf9a89fc7c9c7a55c16c5b0d781f774de8f46fa1\n\n# tcId = 324\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 303d021d00b68da722bbba7f6a58417bb5d0dd88f40316fc628b0edfcb0f02b062021c5c742e330b6febadf9a12d58ba2a7199629457ef2e9e4cecd2f09f50\n\n# tcId = 325\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 303c021c01ec1ff15c8a55d697a5424d674753f82f711593828368d2fbb41a17021c20d9089db7baf46b8135e17e01645e732d22d5adb20e3772da740eee\n\n# tcId = 326\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 303c021c3e46e9ba4dc089ff30fa8c0209c31b11ff49dbeec090f9f53c000c75021c6f2e3b36369416602bca83206809ed898fcf158a56c25a5474143f68\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[key.wx = 00aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]\n[key.wy = 008a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[sha = SHA-224]\n\n# tcId = 327\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c77b38da37079d27b837613ac3e8248d66eabd5d637076c8e62c7991e021d00d40cd9f81efc52db4429c0c1af7c1d8a22b6c7babbe7fbd8b5b3f02f\n\n# tcId = 328\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008c03b32c166c0c8b99d7f876acd109447efb13f6b82945e78d51a269021c657568f1a0a8bd7df5ffa43097ebb2b64435c8e3335bcaafc63f9ed5\n\n# tcId = 329\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00d199a375253d30f1d2b4493542e9934f9f1f8b0680117679f5bc4ad2021c11419ddbf02c8ad5f518f8dac33f86a85e777af51a034132e2767a6d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 00bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-224]\n\n# tcId = 330\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008ff82699e2e82870be9cfdd8a408bb34f8f38a83a4ac8370f18f2bc8021c7e5008fab6a0d4159200077ef9918dad6592cd8359838852c636ac05\n\n# tcId = 331\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c3f3b60b529ae0f950c517264adf2e481616bc47416742d5103589660021d00f731ebe98e58384b3a64b4696d4cc9619828ad51d7c39980749709a6\n\n# tcId = 332\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00dc11ffdc6b78754a335f168c4033916a2158d125a3f4fed9dc736661021c6dd84364717d9f4b0790f2b282f9245ecb316874eac025600397f109\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 00eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-224]\n\n# tcId = 333\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00a59b25b786d55f26b04dfe90ee02a6bde64ed6e431dc9fbdc3ab360e021d00fc14b5ad20f39da9900e35437936c8626fccf6632e7a3d9e587e3311\n\n# tcId = 334\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2eda1f96c1a6e3ad8a3321ce82cbb13a5b935b501abf6c06f7fd2b3f021d00e81050c3e5f53a3c7b9d0bdb9ed92a326dfeac44791ba1abe4d6e973\n\n# tcId = 335\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c60f5e093fda08fc14ac99d820a18ad1370c58150bea0aca24fc6db9d021d00c2220a0ebbf4896e68fdb5bd824f88291c1c862b916f9c4af87f8f5f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 00ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-224]\n\n# tcId = 336\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2ead37846a5e36a490b75140bdc7b636c6e9f6d8f980f6fadb08f769021d00e1fe130ae1798c196d7be62c7a5ddb3168cf4b8d48b6b6b4dc94ab3b\n\n# tcId = 337\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a8a4c9416d72c860573d073281cb08c86ad65313f06b15a329e82eb2021c5a6edd2f0816b7263d915d72c67d50a854e3abee5cde1b679a0cef09\n\n# tcId = 338\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c576bb86c517bfecdc930a4c8501725548d425afbb96d93f5c1e2a0e1021c77248c5ecd620c431438c50e6bee6858091b54a87f8548ae35c21027\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-224]\n\n# tcId = 339\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c34e41cba628fd8787ba1a528f6015d2cae015c1c9a866e08a7133801021d0083d422ffdd99cc3c6d7096ef927f0b11988d1824e6e93840ff666ccd\n\n# tcId = 340\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c2558a42e79689244bccd5e855f6a1e42b4ff726873f30b532b89ef53021c07f9bd947785187175d848b6e2d79f7ab3bbc1087b42590b0cfb256a\n\n# tcId = 341\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00d5fe7dd5fb4fd1ea5ce66c0824f53f96ce47fd9b6c63b4d57827fd17021d00bce5bc3af705afaacb81bfa6d552d6198962fece9fba41546c602ddc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a9", + "92b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 00ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-224]\n\n# tcId = 342\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008c1da2f07cdcbce4db8067b863468cfc728df52980229028689e57b6021c32175c1390a4b2cab6359bab9f854957d4fd7976c9c6d920c871c051\n\n# tcId = 343\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e46d4f11b86b5a12f6fe781d1f934ef2b30e78f6f9cc86a9996e20c0021d008351974b965526034a0ccef0e7d3bc13d91798151488c91533143f7b\n\n# tcId = 344\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c305ccf0b5d0cf33dc745bb7c7964c233f6cfd8892a1c1ae9f50b2f3f021c785f6e85f5e652587c6e15d0c45c427278cf65bb1429a57d8826ca39\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 00f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 00de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-224]\n\n# tcId = 345\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0e4fde0ac8d37536505f7b8bdc2d22c5c334b064ac5ed27bea9c179e021d00c4d6bf829dd547000d6f70b9ad9e9c1503bebcf1d95c2608942ca19d\n\n# tcId = 346\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00818afcaf491da9d08a7cc29318d5e85dce568dcca7018059f44e9b7e021d00bf32a233d5fc6ed8e2d9270b1bdad4bbd2a0f2c293d289bd91ffbcf3\n\n# tcId = 347\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c0e05ed675c673e5e70a4fdd5a47b114c5d542d4f6d7a367597d713ea021c26d70d65c48430373363987810bdcc556e02718eab214403ae008db4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 00ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 0086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-224]\n\n# tcId = 348\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ab7a19eecf63e9668278963b65236b2768e57cae0e268cb86a0ddda1021d008829f5d3a3394f9467ba62e66ef1768e3e54f93ed23ec962bc443c2e\n\n# tcId = 349\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c17111a77cf79bead456ed86a7d8a935531440281eb8b15a885e341c0021d00fdc3958d04f037b1d4bb2cee307b5201be062e0d4e089df1c1917668\n\n# tcId = 350\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00acafa1e33345eeba0c338c2204b4cd8ba21de7ec3e1213317038e968021c0b42fbbaeda98a35da0de4c79546f3a0f7d9dec275d2cd671f93c874\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-224]\n\n# tcId = 351\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a3fe71a2a56f554e98fd10a8098c2a543c98bc6b3602ef39f2412308021c5d1d68f9a870ef2bc87484b3386549fae95811ab72bc0e3a514720da\n\n# tcId = 352\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c132f7625704756c13f2bfa449e60952f836f4904660b5b1da07e5a9f021d0082b4abafc40e8fd19b0c967f02fff152737ce01153658df445c4d7b7\n\n# tcId = 353\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00f36a8347c6fe0397a1161a364cbc4bdfb4d8b7894cbaa6edc55a4ff7021d009c9c90515da5e602d62e99f48eac414e913dd0b7cbf680c1a5399952\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 00fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-224]\n\n# tcId = 354\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2125ecc08e52e9e39e590117de2145bd879626cb87180e52e9d3ce03021d008f7e838d0e8fb80005fe3c72fca1b7cc08ed321a34487896b0c90b04\n\n# tcId = 355\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e485747ac2f3d045e010cdadab4fd5dbd5556c0008445fb73e07cd90021d00e2133a7906aeac504852e09e6d057f29ab21368cfc4e2394be565e68\n\n# tcId = 356\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00a4de0d931ddab90e667ebc0ad800ce49e971c60543abdc46cefff926021c550816170bd87593b9fb8ad5ed9ab4ddb12403ff6fe032252833bac4\n\n", }; -static const size_t kLen67 = 124562; +static const size_t kLen100 = 118159; -static const char *kData67[] = { - "# Imported from Wycheproof's ecdsa_secp224r1_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 0eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 0eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-256]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d009e82950ebe102f37ff3645cc7d3c1bab8864e5e03a5011eeba8150bc\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 3\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30813c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 4\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 303d02811c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402811c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 7\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303e0282001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040282001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 9\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303c021d3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303c021b3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 15\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 16\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30410285010000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285010000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 18\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 19\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3045028901000000000000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3045021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04028901000000000000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 21\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 22\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304002847fffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402847fffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 24\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 25\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30400284ffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040284ffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 27\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 28\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410285ffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285ffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 30\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5d", - "d98d1756a1dad981\n\n# tcId = 31\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30440288ffffffffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040288ffffffffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 33\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 34\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 303c02ff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402ff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 36\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 37\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303c02803ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040280617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 39\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 40\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e0000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 43\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 44\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500\n\n# tcId = 45\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041498177303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30402500303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412221498177021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304022202500021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3044221e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040004deadbeef021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042221498177021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0422202500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04221e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef\n\n# tcId = 54\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3044aa00bb00cd00303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3042aa02aabb303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30442224aa00bb00cd00021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30422222aa02aabb021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042224aa00bb00cd00021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3042021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042222aa02aabb021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 60\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 61\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 62\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30402280021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 64\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 65\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30402280031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 67\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 68\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 31", - "3233343030\nresult = invalid\nsig = 323c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 73\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 74\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3040300102303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 75\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9\n\n# tcId = 76\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 77\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 78\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98100\n\n# tcId = 79\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98105000000\n\n# tcId = 80\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981060811220000\n\n# tcId = 81\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000fe02beef\n\n# tcId = 82\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810002beef\n\n# tcId = 83\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e3000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 84\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9813000\n\n# tcId = 85\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 86\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 301e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04\n\n# tcId = 87\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305a021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 88\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 89\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f02021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402\n\n# tcId = 91\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 93\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e00003ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e0000617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 95\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 96\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500\n\n# tcId = 98\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30200281021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040281\n\n# tcId = 100\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30200500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500\n\n# tcId = 102\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c011c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c041c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303cff1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04011c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\n", - "sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04041c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04ff1c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 112\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30200200021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040200\n\n# tcId = 114\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3040222002013a021bde5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042220020161021b7d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 116\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c38de5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c637d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 118\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a84021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad901\n\n# tcId = 120\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021b3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021bde5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b7d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 124\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021dff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 126\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021090180021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 127\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04090180\n\n# tcId = 128\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021020100021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04020100\n\n# tcId = 130\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d013ade5c0624a5677ed7b6450d941fd283098d8a004fc718e2e7e6b441021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021dff3ade5c0624a5677ed7b6450d9421a53d481ba984280cc6582f2e5fc7021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021cc521a3f9db5a98812849baf26bdf441fd72b663dc4161062747575fc021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c521a3f9db5a98812849baf26bde5ac2b7e4567bd7f339a7d0d1a039021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021dfec521a3f9db5a98812849baf26be02d7cf67275ffb038e71d18194bbf021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d013ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c521a3f9db5a98812849baf26bdf441fd72b663dc4161062747575fc021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d01617d6af141efd0c800c9ba3382c2119a390cfa9bed6a409bfe3703be\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dff617d6af141efd0c800c9ba3382c3e454779b1a1fc5afee11457eaf44\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c9e82950ebe102f37ff3645cc7d3d0508a7abf5a22672e8a95e25267f\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dfe9e82950ebe102f37ff3645cc7d3dee65c6f305641295bf6401c8fc42\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d01617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d009e82950ebe102f37ff3645cc7d3d0508a7abf5a22672e8a95e25267f\n\n# tcId = 143\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffff", - "ffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03", - "e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01\n# Edge case values such as r=1 and s=0 ca", - "n lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Edge case for Shamir multiplication\nmsg = 3839313737\nresult = valid\nsig = 303d021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021d0096ad91f02a3bc40c118abd416ed5c6203ed7ced0330860d7b88c10ab\n\n# tcId = 216\n# special case hash\nmsg = 343236343739373234\nresult = valid\nsig = 303d021d00bcca2365cebdcf7c6cda1ee7b27c7fe79e371537b01869c715eabb1e021c3ae76f9bbfe519d778816dc8fe10635ee7576b6b7916f0c21df320c0\n\n# tcId = 217\n# special case hash\nmsg = 37313338363834383931\nresult = valid\nsig = 303c021c59a9f83289ef6995d5d5592e80ab4f6a81123f69d385d3cfb152faf2021c3a97d5be190d5819241067e2be56375ab84155baab8fc7aeb7f8cb3d\n\n# tcId = 218\n# special case hash\nmsg = 3130333539333331363638\nresult = valid\nsig = 303e021d00b54bac9be2beaaa09456a3968a1faf27c9d96bd5f6738fec6066d31e021d00d72c22129344a96d52fda60b264cf5e6fae45fd2c1b1b78bcba30070\n\n# tcId = 219\n# special case hash\nmsg = 33393439343031323135\nresult = valid\nsig = 303d021c323dbdecd40910c6fa7a5691846fa7769113d1f2ba64ef0dc97d2ddb021d00ca9e73a4587af042f8ba924bb61829c5e24046f9803eb76ab80ef327\n\n# tcId = 220\n# special case hash\nmsg = 31333434323933303739\nresult = valid\nsig = 303d021d00a55dccc27d287f15960ed79908a3edb6bb31aff07c8caa0e65fc0785021c559cb51aa5f2b9066610199dd01291a47729a6189a622ae9e7af7621\n\n# tcId = 221\n# special case hash\nmsg = 33373036323131373132\nresult = valid\nsig = 303d021c137ed6105148d6f5b84e87735d57955f81c5914a6e69f55347ade074021d00dfa5d56b1a12567efacb348a133b79d48da7aac78d78ee589c2ec027\n\n# tcId = 222\n# special case hash\nmsg = 333433363838373132\nresult = valid\nsig = 303e021d00856ff63d779163e78fed8c48330b48f08bf953a95266b3857eee91aa021d00f4aa917cd37f556c6df9d0960c2f7daa7ea118e5c30cc40ca1eed418\n\n# tcId = 223\n# special case hash\nmsg = 31333531353330333730\nresult = valid\nsig = 303d021d00a9d7716f04", - "c5ce247f6b8c608b37db55f68e2ff94a5883863e867708021c61bc093faa6fb25cd240aea4b56fed728f7b3669b4dc84c449d38c5d\n\n# tcId = 224\n# special case hash\nmsg = 36353533323033313236\nresult = valid\nsig = 303d021d00f6d088fd3b9c981ac491c62030643bbd82d4f4588e8517de5884e73d021c773eee477980763b1ea27ae998bda0244cb67b07aa6779a38cd2ba3f\n\n# tcId = 225\n# special case hash\nmsg = 31353634333436363033\nresult = valid\nsig = 303e021d00eacb55588e446bbf3687089ba8ba3b05cfef7458bb81b4277f90a853021d008039e8944cc3df7f4ce5badc349975d471a81dea14e9bcae3065d410\n\n# tcId = 226\n# special case hash\nmsg = 34343239353339313137\nresult = valid\nsig = 303c021c5984af8c89fb9d596a1f28fd3d41e46f7205fe12fa63437ac79e7e81021c33b16b742d45f18f88de2713078384e6150f06b8b99f36ab2ce3dd49\n\n# tcId = 227\n# special case hash\nmsg = 3130393533323631333531\nresult = valid\nsig = 303d021c3cda62d84711c262f782d5c3a79b567485227b34afb821f5241b1961021d00b615cef399706ff758f072931852b717ec898e9a1e6339d0ee81b8da\n\n# tcId = 228\n# special case hash\nmsg = 35393837333530303431\nresult = valid\nsig = 303d021d00e1db7304609191ea1ac91183ffb31df51b5b3fdc6b1a1129d85818d6021c441886d003ae80fbe7139e1d02845cd1bd959f0df1468f5836dd6ea5\n\n# tcId = 229\n# special case hash\nmsg = 33343633303036383738\nresult = valid\nsig = 303d021c3545dc4a4ef84bbb3a526ff929c91ad234516a9e95455ac8db4012b1021d00af49926f693a7cf11f71e199f382a8d640c0c85e46d94ee26e384344\n\n# tcId = 230\n# special case hash\nmsg = 39383137333230323837\nresult = valid\nsig = 303d021c0ccafdeae4582c9de6795b2d09a7fc3848c75904fa960989156cbbb9021d00af1f994da3e7d89cc8aaa44616cb77e3be7a83ccecc965775194e502\n\n# tcId = 231\n# special case hash\nmsg = 33323232303431303436\nresult = valid\nsig = 303e021d00a3b2145d8c669027532501eea1913abb22a78a827fdd82fe9d6d3757021d009b2f1ae84f5606d68653065f74e9d089886694c739fbe3fd4a1b2b4a\n\n# tcId = 232\n# special case hash\nmsg = 36363636333037313034\nresult = valid\nsig = 303e021d009aac3a7e3d142344991bf177b4f4dbfa074148ad9e20f27555b547d9021d00f830a3c7fdf251d79d41977d28e6d9a72a36df11b86e17c8dc3acae0\n\n# tcId = 233\n# special case hash\nmsg = 31303335393531383938\nresult = valid\nsig = 303c021c4769fba554fd436051c285bdadfa33a443d4f7084dd598ce3b98b8fb021c0c014c87cb14113d75864f74905f75b34f9970ba58b5d0676021826d\n\n# tcId = 234\n# special case hash\nmsg = 31383436353937313935\nresult = valid\nsig = 303d021d008b91fc5054a75c34a508624b85708b3d25fa74328c68741c3aeb92d9021c155e3e46b1209583135a9fef15abe325b25bd19285ee6b5b4549629f\n\n# tcId = 235\n# special case hash\nmsg = 33313336303436313839\nresult = valid\nsig = 303d021d00a4a2a85fbb8bb26c4d845cfac191f89d65b00d3f1b9450d177f78890021c6605a460e60402685c7a5accd2615e9232e51937bd83dfa3065eabf7\n\n# tcId = 236\n# special case hash\nmsg = 32363633373834323534\nresult = valid\nsig = 303d021d00a89d333ae34187855cf7fa435ff39be6b7bb39b2d0ce682133ad9646021c483dcc89a3b43be250f5c3f78f78418e7b8341a8bcfb93dfd58e46d8\n\n# tcId = 237\n# special case hash\nmsg = 31363532313030353234\nresult = valid\nsig = 303d021c2d0f99c71933c82ded544ef4faac9d669e437dea13b57186f4c20a0e021d00d9682b9f3a05d7832947bc45eadbc742d96e7ab1124832ddb7a8c65b\n\n# tcId = 238\n# special case hash\nmsg = 35373438303831363936\nresult = valid\nsig = 303d021d00840208f7c41b1fbadcc701fb3a1d0f98a3e2a75235e695bfd378f8b4021c44c8daad4efc03e1753803c362b409c3ca6e0f21e538fe3a364c0e53\n\n# tcId = 239\n# special case hash\nmsg = 36333433393133343638\nresult = valid\nsig = 303e021d0087cc582cb10602110566fcb10a233aede993fae5fb3f81b0bbff94ca021d00c971c05bd51d9685825b2cfc0a2596c7f80d9f9dc68c28c159aa395a\n\n# tcId = 240\n# special case hash\nmsg = 31353431313033353938\nresult = valid\nsig = 303d021c50d73d949b3adcd3e8fa94dafefaf9d263ebc702128d891afac47ea7021d00f8423c378f0190574925142eb5b97c612abfa048fa3ab5375ec795a1\n\n# tcId = 241\n# special case hash\nmsg = 3130343738353830313238\nresult = valid\nsig = 303e021d00d608915dfcd5d3c63ed10d0d9b614f7a866f8858a6e59dc03eb0a8ee021d008e701aa0bab491430f6e4da92244b0bb174957ee6f495bc5d15fabb1\n\n# tcId = 242\n# special case hash\nmsg = 3130353336323835353638\nresult = valid\nsig = 303e021d00c87b0ab842c4769ed94b910bd7719691f9991bc5a347889608f07034021d00d083111048d6e019771fc2669c55156a3d09615a6b2d9cae52ddabee\n\n# tcId = 243\n# special case hash\nmsg = 393533393034313035\nresult = valid\nsig = 303c021c0a1c2c2478e244464226c660edf724db1213f4923eb725d611d976fd021c764e55186a76f734891d05fb57af2727fab8fbea684ca4321d5de540\n\n# tcId = 244\n# special case hash\nmsg = 393738383438303339\nresult = valid\nsig = 303e021d008a2747c5dd9ef5298b8aeabd2fb3a2beb16158fb2cc62be9e51b2152021d00f96251bc048bcad832e6cbc09c9c2e585ab7543dc552eaa5125be0d3\n\n# tcId = 245\n# special case hash\nmsg = 33363130363732343432\nresult = valid\nsig = 303e021d00d9eac32a734f3a3e5b5a2905bed8164ef4c6cd24d5c0fc54cc83f3cc021d00a784930d16c3b753bb3ed9151d583c50ff97bc976274bde482fb9644\n\n# tcId = 246\n# special case hash\nmsg = 31303534323430373035\nresult = valid\nsig = 303d021c6c40c6b15ae573f77b677cd878cc5e4da8171cf50d79974fde374e00021d00c88c9828037bf7013a1415537ca074d6c8a553bdb4b26b14a7e88d93\n\n# tcId = 247\n# special case hash\nmsg = 35313734343438313937\nresult = valid\nsig = 303d021d00dca0aaa0a395393142b323edced09372760350f2ab261ce3339b114d021c0983bf6e510ce7f0a7520f2b7c60cd68a4912b78162c7ac33789e0c6\n\n# tcId = 248\n# special case hash\nmsg = 31393637353631323531\nresult = valid\nsig = 303d021d00a0526ed47e2607e6bae6dcf3b8f54f4e0638023673a38cad4569c3ba021c61516f55746b379d11cbaa02cef35311d7771a47d1e127cff46dcfd6\n\n# tcId = 249\n# special case hash\nmsg = 33343437323533333433\nresult = valid\nsig = 303d021c5c00db60178c8361092bdfb47fc9a47b33363d7e0d76e32520f79657021d00e1baf7ae7d81045793c73173f49d60bdfc8779942795d9d082b3ca11\n\n# tcId = 250\n# special case hash\nmsg = 333638323634333138\nresult = valid\nsig = 303d021c46f69b6a99717949eee74092a0c1438a290a2cd82fe1e10d8f37e88b021d0099a5f59f09bd980a066233523397846987a8a1bfdde355062d140a4b\n\n# tcId = 251\n# special case hash\nmsg = 33323631313938363038\nresult = valid\nsig = 303e021d00e643d8085a22706fa0e6540f3d5e169ad8cc49b4bfe98e325321c705021d00f95bd423f9cafe0cedfec6fd97871536d71b2ac58dfb2f7ab8952d4b\n\n# tcId = 252\n# special case hash\nmsg = 39363738373831303934\nresult = valid\nsig = 303e021d00e65fb9bcdd791f141ccff2b3cfbf45d84f8c6272021a68dde8c36bc8021d00df6e08c74b5e36b7772658f02515ae0ea813b64df24f3522ea15fb15\n\n# tcId = 253\n# special case hash\nmsg = 34393538383233383233\nresult = valid\nsig = 303e021d00a476d468221ef55611e8a724c9b4cd79c34f6940d5f665e3335f6231021d00bfddc18e7a008bc206c8e1ca6c878363e4138508e0c3a84a27eabe35\n\n# tcId = 254\n# special case hash\nmsg = 383234363337383337\nresult = valid\nsig = 303c021c1b393477941879271873a8c043a77caadb9957fcdd263a6ac978e4ba021c270060d5f356ebb6d185772baa78b878af6807378e0d5c532da0a4a7\n\n# tcId = 255\n# special case hash\nmsg = 3131303230383333373736\nresult = valid\nsig = 303e021d00b2eda8c969d4b1bdd31867fd1f92d547b406840c257f2f80dfbdc4e3021d00e6297b059ce64ef04de9715a8f686a9f73980865066a94975b7f8117\n\n# tcId = 256\n# special case hash\nmsg = 313333383731363438\nresult = valid\nsig = 303d021d00938189a18a4bff5712ac99c2b8e92c218af3e4d4e3a84b906b0f704e021c7bb3e538f0b70664dad462ab14b0ed416c86ac6e9060fe760dabb715\n\n# tcId = 257\n# special case hash\nmsg = 333232313434313632\nresult = valid\nsig = 303e021d00bb7c1d8120d2aa7765b16eeac44282de605fb2a1665657dea4492935021d00e0a8adb3a143883f981ea1323fa6f1d347845be2b8dcc6cd5cc93ee5\n\n# tcId = 258\n# special case hash\nmsg = 3130363836363535353436\nresult = valid\nsig = 303c021c74a4c51dd60c7118467be29652060f39af94f8c0eb7f15c64771010c021c6102ec0c9257e607af3f3ff7490b54e78111f422bec11ba01277171f\n\n# tcId = 259\n# special case hash\nmsg = 3632313535323436\nresult = valid\nsig = 303d021c625da18d676f02fae9dbcb3092265909488fb95d662569d7746b9687021d00c4f1ec831e36604d604b630fd0b1999cd09960862294251d85e5873d\n\n# tcId = 260\n# special case hash\nmsg = 37303330383138373734\nresult = valid\nsig = 303d021d008ee0d4a31fd1c4d854d75c14151926899dde1c7332fd4769443d213d021c4b8278b89ba4f8fbd7dcc6affe4c12156f7409909416989685dd5a39\n\n# tcId = 261\n# special case hash\nmsg = 35393234353233373434\nresult = valid\nsig = 303e021d00bdde45fc9ebb3749c9fb2c25bf02e2a217ccc112f8e65499eeffb6a1021d00becd6b88ef2bee872ebc0e2b805a56066e19179fce9f0dc0df3f6378\n\n# tcId = 262\n# special case hash\nmsg = 31343935353836363231\nresult = valid\nsig = 303d021c50186e023a1f5053fcb4d0473039b1b2cdeba5697", - "19a4ebabdd675c8021d00f8fb893c1b6b5b827b5f3f4bb5eab75b6212bb56a5a39bb35c127a1c\n\n# tcId = 263\n# special case hash\nmsg = 34303035333134343036\nresult = valid\nsig = 303e021d00d3b454639b0fb3da93b20d55be8609e40902cb4a608f3b9064c0deb7021d00ec7aa9637fd71b543e5243faab4c7a2edc2c48e982c5ac017807f19a\n\n# tcId = 264\n# special case hash\nmsg = 33303936343537353132\nresult = valid\nsig = 303d021d00c202abbd98e03809de842bdef268a1c616a7306da69a87abaf03169c021c7e7e04823af8ed6836fd2ac011e47de8e1bef91ed1da5144893fc259\n\n# tcId = 265\n# special case hash\nmsg = 32373834303235363230\nresult = valid\nsig = 303d021c2e4b76638816cce057a4a27a49258dcb5437ae97739f27ebc0973c0b021d00e9f6c0b64e764ad39dd92b576e11c23e5994b02095cb2a4720c8662c\n\n# tcId = 266\n# special case hash\nmsg = 32363138373837343138\nresult = valid\nsig = 303c021c7e0f48761089aa4c7ecd5a7ac5380836b1e5d381d3400174d15df98b021c0c3df50060e3a6714aa565a33d784e7b16ac87bebfb3c2255cfd832c\n\n# tcId = 267\n# special case hash\nmsg = 31363432363235323632\nresult = valid\nsig = 303c021c4d6f7408508eb0814dcd48007f0efd9e2b91cdac4030540cc678de19021c1e74f8dc34d13613ef42462fe88981cbe2489be10e4cdae975a1b38e\n\n# tcId = 268\n# special case hash\nmsg = 36383234313839343336\nresult = valid\nsig = 303d021d00967f2c5d304c7932eaaa1682197945e66cc912b703824776ef16ad7a021c73957001d9037c63d6471c809a2388383ad695137c622cd5f5584414\n\n# tcId = 269\n# special case hash\nmsg = 343834323435343235\nresult = valid\nsig = 303d021c49260804bb2ceae4b9cee63b02ea60173ec3f4f90167627c0bb39888021d00c9eb022f96db3e90fe0ff617730a629f342e02fb208d6836cbbdc7d3\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0493b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]\n[key.wx = 093b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2]\n[key.wy = 482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000493b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]\n[sha = SHA-256]\n\n# tcId = 270\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n# tcId = 271\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]\n[key.wx = 0da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789]\n[key.wy = 0ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]\n[sha = SHA-256]\n\n# tcId = 272\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0420888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fcde00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]\n[key.wx = 20888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fc]\n[key.wy = 0de00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000420888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fcde00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]\n[sha = SHA-256]\n\n# tcId = 273\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 049545c86f032c5df255a4490bb0b83eca201181792ad74246874db229405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]\n[key.wx = 09545c86f032c5df255a4490bb0b83eca201181792ad74246874db229]\n[key.wy = 405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049545c86f032c5df255a4490bb0b83eca201181792ad74246874db229405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]\n[sha = SHA-256]\n\n# tcId = 274\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]\n[key.wx = 579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8]\n[key.wy = 0df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]\n[sha = SHA-256]\n\n# tcId = 275\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020101\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]\n[key.wx = 0d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628]\n[key.wy = 0acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]\n[sha = SHA-256]\n\n# tcId = 276\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020103\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]\n[key.wx = 0e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4]\n[key.wy = 326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]\n[sha = SHA-256]\n\n# tcId = 277\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020104\n\n# tcId = 278\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 042b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103ad465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]\n[key.wx = 2b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103a]\n[key.wy = 0d465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103ad465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]\n[sha = SHA-256]\n\n# tcId = 279\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7afd73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]\n[key.wx = 0d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7af]\n[key.wy = 0d73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7afd73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]\n[sha = SHA-256]\n\n# tcId = 280\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a30", - "4f7d3c74e617dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]\n[key.wx = 0f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a304f7d3c74e6]\n[key.wy = 17dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a304f7d3c74e617dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]\n[sha = SHA-256]\n\n# tcId = 281\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]\n[key.wx = 0d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317]\n[key.wy = 0d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]\n[sha = SHA-256]\n\n# tcId = 282\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 302d020d1033e67e37b32b445580bf4efb021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce89668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]\n[key.wx = 08a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce8]\n[key.wy = 09668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce89668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]\n[sha = SHA-256]\n\n# tcId = 283\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]\n[key.wx = 0b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137]\n[key.wy = 0f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]\n[sha = SHA-256]\n\n# tcId = 284\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0477f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c978129f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]\n[key.wx = 77f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c97812]\n[key.wy = 09f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000477f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c978129f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]\n[sha = SHA-256]\n\n# tcId = 285\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f31736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]\n[key.wx = 0a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f3]\n[key.wy = 1736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f31736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]\n[sha = SHA-256]\n\n# tcId = 286\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101\n\n# tcId = 287\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 049cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f6921c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]\n[key.wx = 09cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f69]\n[key.wy = 21c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f6921c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]\n[sha = SHA-256]\n\n# tcId = 288\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0410518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c83f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]\n[key.wx = 10518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c8]\n[key.wy = 3f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000410518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c83f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]\n[sha = SHA-256]\n\n# tcId = 289\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd3badfbb8a4c6fd80e66510957927c78a2aa02ecef62816d0356b49c3]\n[key.wx = 08a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd]\n[key.wy = 3badfbb8a4c6fd80e66510957927c78a2aa02ecef62816d0356b49c3]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd3badfbb8a4c6fd80e66510957927c78a2aa02ecef62816d0356b49c3]\n[sha = SHA-256]\n\n# tcId = 290\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0483a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]\n[key.wx = 083a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff]\n[key.wy = 1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000483a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]\n[sha = SHA-256]\n\n# tcId = 291\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0458bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a75be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]\n[key.wx = 58bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a7]\n[key.wy = 5be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000458bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a75be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]\n[sha = SHA-256]\n\n# tcId = 292\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad40d3e1b8392e81c29\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 047fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]\n[key.wx = 7fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c]\n[key.wy = 0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]\n[keyDer = 304e3010060", - "72a8648ce3d020106052b81040021033a00047fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]\n[sha = SHA-256]\n\n# tcId = 293\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0093c8c651653430cb4f1675fc86b5e82ca04ff2ab1501674476aac169\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]\n[key.wx = 3ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674]\n[key.wy = 0fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]\n[sha = SHA-256]\n\n# tcId = 294\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009df50acc33b3625a2d5940dd13dbb97d1f7dd56afff8b7de7545127c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]\n[key.wx = 1cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37]\n[key.wy = 0b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]\n[sha = SHA-256]\n\n# tcId = 295\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00dce8c223f235699d1f5d2dcde4809d013390b59129f783239525c08f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0444e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]\n[key.wx = 44e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36]\n[key.wy = 477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000444e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]\n[sha = SHA-256]\n\n# tcId = 296\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c074aae944ee7a7d544a5ad0bd06366f872d2250ba3018a63d2a7f2e6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e110129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]\n[key.wx = 0c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e1]\n[key.wy = 10129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e110129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]\n[sha = SHA-256]\n\n# tcId = 297\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00aae944ee7a7d544a5ad0bd0636d9455f4e83de0f186f89bca56b3c5c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d63099667220cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]\n[key.wx = 0c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d6309966722]\n[key.wy = 0cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d63099667220cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]\n[sha = SHA-256]\n\n# tcId = 298\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c55d289dcf4faa894b5a17a0c6db3741bbc4ecbe01d01ea33ee7a4e7b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33caa967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]\n[key.wx = 0b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33ca]\n[key.wy = 0a967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33caa967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]\n[sha = SHA-256]\n\n# tcId = 299\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4ee7a7d544a5ad0bd0636d9e12bc561ce04faaf1312bba3a15601ebc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27ec30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]\n[key.wx = 0f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27e]\n[key.wy = 0c30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27ec30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]\n[sha = SHA-256]\n\n# tcId = 300\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c361b9cd74d65e79a5874c501bca4973b20347ec97f6de10072d8b46a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0456d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd116cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]\n[key.wx = 56d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd11]\n[key.wy = 6cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000456d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd116cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]\n[sha = SHA-256]\n\n# tcId = 301\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c3739ae9acbcf34b0e98a0379492e764068fd92fedbc200e5b168d4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0430bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]\n[key.wx = 30bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5]\n[key.wy = 0f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000430bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]\n[sha = SHA-256]\n\n# tcId = 302\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00a252d685e831b6cf095e4f0535edc5b1609d7c5c7e49a301588a1d3e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]\n[key.wx = 0e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5]\n[key.wy = 539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]\n[sha = SHA-256]\n\n# tcId = 303\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00ee746111f91ab4ce8fae96e6f23fd9d20a24d2e79eea563478c0f566\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f02816c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]\n[key.wx = 113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f0281]\n[key.wy = 6c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f02816c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]\n[sha = SHA-", - "256]\n\n# tcId = 304\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0423dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74ad661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]\n[key.wx = 23dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74a]\n[key.wy = 0d661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000423dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74ad661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]\n[sha = SHA-256]\n\n# tcId = 305\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256dfe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]\n[key.wx = 0bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256d]\n[key.wy = 0fe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256dfe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]\n[sha = SHA-256]\n\n# tcId = 306\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04035f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a495347bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]\n[key.wx = 35f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a4953]\n[key.wy = 47bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004035f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a495347bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]\n[sha = SHA-256]\n\n# tcId = 307\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]\n[key.wx = 0911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279]\n[key.wy = 508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]\n[sha = SHA-256]\n\n# tcId = 308\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0462b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]\n[key.wx = 62b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3]\n[key.wy = 124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000462b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]\n[sha = SHA-256]\n\n# tcId = 309\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 040f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]\n[key.wx = 0f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6]\n[key.wy = 0defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00040f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]\n[sha = SHA-256]\n\n# tcId = 310\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]\n[key.wx = 08f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d]\n[key.wy = 3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]\n[sha = SHA-256]\n\n# tcId = 311\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 042bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c095b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]\n[key.wx = 2bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c09]\n[key.wy = 5b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c095b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]\n[sha = SHA-256]\n\n# tcId = 312\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]\n[key.wx = 0a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec]\n[key.wy = 3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]\n[sha = SHA-256]\n\n# tcId = 313\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe82ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]\n[key.wx = 0a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe8]\n[key.wy = 2ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe82ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]\n[sha = SHA-256]\n\n# tcId = 314\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f280562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]\n[key.wx = 34ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f2]\n[key.wy = 080562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f280562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]\n[sha = SHA-256]\n\n# tcId = 315\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c702", - "1c3f552f1c2b01651edf5902650fe9ab046f71999ac928edc0087bdb13\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f27fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]\n[key.wx = 34ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f2]\n[key.wy = 7fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f27fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]\n[sha = SHA-256]\n\n# tcId = 316\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c3f552f1c2b01651edf5902650fe9ab046f71999ac928edc0087bdb13\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb67ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]\n[key.wx = 3672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb6]\n[key.wy = 7ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb67ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]\n[sha = SHA-256]\n\n# tcId = 317\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0433eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648051749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]\n[key.wx = 33eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648]\n[key.wy = 51749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000433eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648051749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]\n[sha = SHA-256]\n\n# tcId = 318\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bda03b24b62243c61e288b6ea1e99a2886f700944eb1b8f0466cffd61c712a3aaace69331989b707e69e8de39d7cd1aeb65d97ad1800bf7f]\n[key.wx = 0bda03b24b62243c61e288b6ea1e99a2886f700944eb1b8f0466cffd6]\n[key.wy = 1c712a3aaace69331989b707e69e8de39d7cd1aeb65d97ad1800bf7f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bda03b24b62243c61e288b6ea1e99a2886f700944eb1b8f0466cffd61c712a3aaace69331989b707e69e8de39d7cd1aeb65d97ad1800bf7f]\n[sha = SHA-256]\n\n# tcId = 319\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 047abba0cbff134ddcf54d04846f954b882ca9faefdfe818898bfb378b792f10b57970ae57bb4fb01c08886848855aeb1984d3d6fcb2b412df]\n[key.wx = 7abba0cbff134ddcf54d04846f954b882ca9faefdfe818898bfb378b]\n[key.wy = 792f10b57970ae57bb4fb01c08886848855aeb1984d3d6fcb2b412df]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047abba0cbff134ddcf54d04846f954b882ca9faefdfe818898bfb378b792f10b57970ae57bb4fb01c08886848855aeb1984d3d6fcb2b412df]\n[sha = SHA-256]\n\n# tcId = 320\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f68d99e28653b9ba3e7cedb3b78165f5a54fbe90d4b9f88497977e16234da3eaa0178a51b5b0c208ef0818df6f6578793c1af1787026b8da]\n[key.wx = 0f68d99e28653b9ba3e7cedb3b78165f5a54fbe90d4b9f88497977e16]\n[key.wy = 234da3eaa0178a51b5b0c208ef0818df6f6578793c1af1787026b8da]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f68d99e28653b9ba3e7cedb3b78165f5a54fbe90d4b9f88497977e16234da3eaa0178a51b5b0c208ef0818df6f6578793c1af1787026b8da]\n[sha = SHA-256]\n\n# tcId = 321\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04065d9ef133ce81c2d6b66e928360f9527f8f36b5badd35b5f10934272004852755f77440a0b08b9f165489c0696e8b4981d6d04a285b0fd1]\n[key.wx = 65d9ef133ce81c2d6b66e928360f9527f8f36b5badd35b5f1093427]\n[key.wy = 2004852755f77440a0b08b9f165489c0696e8b4981d6d04a285b0fd1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004065d9ef133ce81c2d6b66e928360f9527f8f36b5badd35b5f10934272004852755f77440a0b08b9f165489c0696e8b4981d6d04a285b0fd1]\n[sha = SHA-256]\n\n# tcId = 322\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d6cea09472ede574ce1e0546c9acd0e1cd8cba9b121df29e89d5092e83904ebfb902ea61c987dc0508e0c9a7e563e2609feaf79140ab91d6]\n[key.wx = 0d6cea09472ede574ce1e0546c9acd0e1cd8cba9b121df29e89d5092e]\n[key.wy = 083904ebfb902ea61c987dc0508e0c9a7e563e2609feaf79140ab91d6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d6cea09472ede574ce1e0546c9acd0e1cd8cba9b121df29e89d5092e83904ebfb902ea61c987dc0508e0c9a7e563e2609feaf79140ab91d6]\n[sha = SHA-256]\n\n# tcId = 323\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb80e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]\n[key.wx = 0c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb8]\n[key.wy = 0e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb80e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]\n[sha = SHA-256]\n\n# tcId = 324\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 049dd0b99bb7a830bcc7d55abac42912d525b063c50cf377ca5771a26ca141fccf0793c2ba2469a946c2d4ed26344052c63a6d7e7797ce96c3]\n[key.wx = 09dd0b99bb7a830bcc7d55abac42912d525b063c50cf377ca5771a26c]\n[key.wy = 0a141fccf0793c2ba2469a946c2d4ed26344052c63a6d7e7797ce96c3]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049dd0b99bb7a830bcc7d55abac42912d525b063c50cf377ca5771a26ca141fccf0793c2ba2469a946c2d4ed26344052c63a6d7e7797ce96c3]\n[sha = SHA-256]\n\n# tcId = 325\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043dab9f1b19e715d174a7360920375d569a181f055e66f01391871b6f47a6d87c23a5b6a1e3d0a9721302cc02cce35f35dea08e22619be521]\n[key.wx = 3dab9f1b19e715d174a7360920375d569a181f055e66f01391871b6f]\n[key.wy = 47a6d87c23a5b6a1e3d0a9721302cc02cce35f35dea08e22619be521]\n[keyDer = 304", - "e301006072a8648ce3d020106052b81040021033a00043dab9f1b19e715d174a7360920375d569a181f055e66f01391871b6f47a6d87c23a5b6a1e3d0a9721302cc02cce35f35dea08e22619be521]\n[sha = SHA-256]\n\n# tcId = 326\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0456dde1ba58ea31053b2535c66623344c24c72d214af5be6982e89100e771084806143e86f2b31bdaf62280f5b311d0d2bdbb385b20fc6c87]\n[key.wx = 56dde1ba58ea31053b2535c66623344c24c72d214af5be6982e89100]\n[key.wy = 0e771084806143e86f2b31bdaf62280f5b311d0d2bdbb385b20fc6c87]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000456dde1ba58ea31053b2535c66623344c24c72d214af5be6982e89100e771084806143e86f2b31bdaf62280f5b311d0d2bdbb385b20fc6c87]\n[sha = SHA-256]\n\n# tcId = 327\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0494efe1387fc0447d7dbcb53739a0e4e0ddec181d382caea645b1a6124414a6b1c78908d0fa206f8f2de950ad4a14d1ce94d9cddbe32e4601]\n[key.wx = 094efe1387fc0447d7dbcb53739a0e4e0ddec181d382caea645b1a612]\n[key.wy = 4414a6b1c78908d0fa206f8f2de950ad4a14d1ce94d9cddbe32e4601]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000494efe1387fc0447d7dbcb53739a0e4e0ddec181d382caea645b1a6124414a6b1c78908d0fa206f8f2de950ad4a14d1ce94d9cddbe32e4601]\n[sha = SHA-256]\n\n# tcId = 328\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 046286803b952976ee1897013695d3ef2cbb6f977142a042b236572577722a6ce9ad3e3fd28e451833496c63b8ab70538877215f204942bf59]\n[key.wx = 6286803b952976ee1897013695d3ef2cbb6f977142a042b236572577]\n[key.wy = 722a6ce9ad3e3fd28e451833496c63b8ab70538877215f204942bf59]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00046286803b952976ee1897013695d3ef2cbb6f977142a042b236572577722a6ce9ad3e3fd28e451833496c63b8ab70538877215f204942bf59]\n[sha = SHA-256]\n\n# tcId = 329\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 0bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[sha = SHA-256]\n\n# tcId = 330\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 331\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[sha = SHA-256]\n\n# tcId = 332\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 333\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]\n[key.wy = 0ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[sha = SHA-256]\n\n# tcId = 334\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 303d021c0364e7d96832614a80216e730c353534d4bffd2c26649c0b4b0e2628021d008f40064b412fe38c5ba9cf664e6172ed48e6e79f0fe5e31a54985dfc\n\n# tcId = 335\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 303d021d00f4b68df62b9238363ccc1bbee00deb3fb2693f7894178e14eeac596a021c7f51c9451adacd2bcbc721f7df0643d7cd18a6b52064b507e1912f23\n\n# tcId = 336\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b2970cdec29c70294a18bbc49985efa33acc0af509c326a3977a35e8021c0cea3ed8ebaaf6ee6aef6049a23cbc39f61fcf8fc6be4bab13385579\n\n# tcId = 337\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 303d021c7e7b0eb7da8c68a7072b11404ee95a5c407fbfe3d69646802e28ae77021d00d409a2f6bbaae59bb60fc0a092b12fa4e67dc8d088cf19a833322fd6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[key.wx = 0aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]\n[key.wy = 08a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[sha = SHA-256]\n\n# tcId = 338\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c519bf185ff4635271961fa491be257231deeea9c53a6ede3b4a89ed1021c486bdad484a6a3134e1471cf56a9df0fac50f773b3e37d6f327617d7\n\n# tcId = 339\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c09fd644898b7cb5d018b52234e7b4ef2b54789afd0ce9c434e9e5515021d00f19309532164ea2053cae55df7bdcbab536c83ea7bfe6fe10d60c1ab\n\n# tcId = 340\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00ec919d4e283ccf1f71a9e3c0f781a36758d3f38b1b78a87a74288e80021c4c4663044a73c79bd88f0dc245ab1a32f89f06f40a704b31e9fabc51\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 0bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-256]\n\n# tcId = 341\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00c51760478447217597ecc6f4001bd45088d53c90f53103608bf88aea021d00a201253aa903f9781e8992101d7171d2dd3a5d48c44d8e1d544cd6d7\n\n# tcId = 342\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c76be0112674ec29128823e1af7512e6143872fef30a64e2f1799bd56021c187e503e1a48c27b549fe0a4ce5e581e242c8663fc9efb02d6f2b193\n\n# tcId = 343\n# y-coordinate of the public key has many trailing ", - "1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c36245ef126b5b51e459f84eaaad5a495061f0471dc8c23f1c5f16282021c39e31d72a06ba8e14fcf95778e07bc16a2628e39449da8857d506edc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 0eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-256]\n\n# tcId = 344\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c258682975df8bca7f203f771ebeb478ef637360c860fc386cfb21745021c7663e70188047e41469a2a35c8c330dd900f2340ba82aafd22962a96\n\n# tcId = 345\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d0085c98614f36c0d66f8d87834cae978611b7b4eebf59a46bea1b89ae9021d00d1a18e378dda840e06b60f6279bf0a2231d9fa2d8d2c31e88bc1bdd7\n\n# tcId = 346\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ca7b7432ba41ff2112e1116fffde89bbd68f5ce67fe5513d16c8e6f7021d00e421b7599e0180798acc2006451603cda2db1d582741116e6033ce5f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 0ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-256]\n\n# tcId = 347\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c19397fe5d3ecabf80fc624c1bf379564387517c185087dc97d605069021c33b5773e9aaf6c34cb612cfc81efd3bf9c22224e8c4fa1bfccf5c501\n\n# tcId = 348\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c70f24f5c164164bfbb8459aa12a981aa312dbcf00204326ebaaabdc8021d00f5cebee8caedae8662c43501665084b45d2f494fb70d603043543dc4\n\n# tcId = 349\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0bf2d86ecaa8b56aca5e8f8ebcb45081d078a14555b75f5be8e9b132021d009a55b3ce4734849966b5034ccd9b19f76407ee0241c3f58e7b8fc89a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-256]\n\n# tcId = 350\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00bfc5dc4434cd09369610687d38d2d418b63fd475dea246a456b25a3a021d00b171dfa6cf722f20816370a868785da842b37bac31d7b78e6751fc50\n\n# tcId = 351\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d008fdbe8da646c5642d767c7dbeb3872b1edab6e37365805f0e94ce0a9021d00bcf35ab81222883dd3526cb0cf93138f4687cd0b10c2b0a126385161\n\n# tcId = 352\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e23a11275848fd4f8b6f4ac4fc305eae981d3b7dc453e5a980c46422021c1a875693f24a03ea1614c4c3bbd0dd7221429f22b337ea7d98348ca4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 0ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-256]\n\n# tcId = 353\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c76645164ff9af3a1a9205fda2eef326d2bffc795dcc4829547fe01dd021d00b65bba503719314b27734dd06b1395d540af8396029b78b84e0149eb\n\n# tcId = 354\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c32fa0ca7e07f1f86ac350734994e1f31b6da9c82f93dced2b983c29c021c7b7891282206a45711bdfcb2a102b5d289df84ff5778548603574004\n\n# tcId = 355\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2d5492478ca64e5111dfd8521867b6477b7e78227849ad090b855694021d00a532f5a2fa3594af81cd5928b81b4057da717be5fb42a3a86c68190d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 0f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 0de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-256]\n\n# tcId = 356\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c191eee5daf55cd499e8539cb2cff797cfec5d566d2027bf9f8d64693021d00dadfeae8131f64d96b94fd340197caa2bc04818554812feef3343070\n\n# tcId = 357\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e0e2c08180b8a207ee9105a7d379fa112368e8370fa09dfde4a45c45021d00c717bc0860e016e7ce48f8fe6a299b36906a6055adad93b416ce8838\n\n# tcId = 358\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c1b919ef93532292743bb2e1b7b4894fd847c6e5de52a08e1b0f2dcfb021d00c2d30d6b7594d8dbd261491ae1d58779505b075b64e5564dc97a418b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 0ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-256]\n\n# tcId = 359\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e75db49ed33ff2885ea6100cc95b8fe1b9242ea4248db07bcac2e020021c796c866142ae8eb75bb0499c668c6fe45497692fbcc66b37c2e4624f\n\n# tcId = 360\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1f81cd924362ec825890307b9b3936e0d8f728a7c84bdb43c5cf0433021c39d3e46a03040ad41ac026b18e0629f6145e3dc8d1e6bbe200c8482b\n\n# tcId = 361\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c00fda613aa67ca42673ad4309f3f0f05b2569f3dee63f4aa9cc54cf3021c1e5a64b68a37e5b201c918303dc7a40439aaeacf019c5892a8f6d0ce\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-256]\n\n# tcId = 362\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00b932b3f7e6467e1ec7a561f31160248c7f224550a8508788634b53ce021d00a0c5312acf9e801aff6d6fc98550c", - "fa712bbf65937165a36f2c32dc9\n\n# tcId = 363\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e509593fb09245ee8226ce72786b0cc352be555a7486be628f4fd00c021c0b7abde0061b1e07bf13319150a4ff6a464abab636ab4e297b0d7633\n\n# tcId = 364\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c6e54f941204d4639b863c98a65b7bee318d51ab1900a8f345eac6f07021c0da5054829214ecde5e10579b36a2fe6426c24b064ed77c38590f25c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-256]\n\n# tcId = 365\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d0085ea4ab3ffdc992330c0ca8152faf991386bce82877dbb239ba654f6021c0806c6baf0ebea4c1aaa190e7d4325d46d1f7789d550632b70b5fc9b\n\n# tcId = 366\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c44d53debb646b73485402eab2d099081b97b1243c025b624f0dd67ea021d00e5de789a7d4b77eac6d7bba41658e6e4dc347dabed2f9680c04a6f55\n\n# tcId = 367\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1526eb2f657ebea9af4ca184b975c02372c88e24e835f3f5774c0e12021c1f1ecce38ee52372cb201907794de17b6d6c1afa13c316c51cb07bc7\n\n", +static const char *kData100[] = { + "# Imported from Wycheproof's ecdsa_secp224r1_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 00eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 00eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-256]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d009e82950ebe102f37ff3645cc7d3c1bab8864e5e03a5011eeba8150bc\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 3\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30813c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 4\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 5\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 7\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 8\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 9\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 10\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 11\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 12\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 13\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 14\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303c02803ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040280617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 17\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 18\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 19\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 20\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e0000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 21\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 22\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500\n\n# tcId = 23\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041498177303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30402500303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412221498177021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304022202500021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3044221e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040004deadbeef021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042221498177021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0422202500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04221e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef\n\n# tcId = 32\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3044aa00bb00cd00303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3042aa02aabb303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30442224aa00bb00cd00021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30422222aa02aabb021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042224aa00bb00cd00021c6", + "17d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3042021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042222aa02aabb021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 38\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 39\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30402280021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 42\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30402280031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 45\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 46\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 51\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 52\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3040300102303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 53\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 55\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\nflags = BER\n\n# tcId = 56\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98100\n\n# tcId = 57\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98105000000\n\n# tcId = 58\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981060811220000\n\n# tcId = 59\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000fe02beef\n\n# tcId = 60\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810002beef\n\n# tcId = 61\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e3000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 62\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9813000\n\n# tcId = 63\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 303f021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981bf7f00\n\n# tcId = 64\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 65\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 301e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04\n\n# tcId = 66\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305a021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 67\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d02811c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402811c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 69\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303e0282001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040282001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 71\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021d3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 75\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30410285010000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c", + "800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285010000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 77\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045028901000000000000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04028901000000000000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 79\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304002847fffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402847fffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 81\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30400284ffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040284ffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 83\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410285ffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285ffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 85\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30440288ffffffffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040288ffffffffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 87\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c02ff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402ff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f02021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e00003ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e0000617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\nflags = BER\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30200281021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30200500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c011c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c041c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303cff1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04011c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04041c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04ff1c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30200200021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3040222002013a021bde5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 116\n# using ", + "composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042220020161021b7d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c38de5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c637d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a84021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad901\n\n# tcId = 121\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021b3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021bde5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9\n\n# tcId = 124\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b7d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021dff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021090180021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 128\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021020100021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d013ade5c0624a5677ed7b6450d941fd283098d8a004fc718e2e7e6b441021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021dff3ade5c0624a5677ed7b6450d9421a53d481ba984280cc6582f2e5fc7021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021cc521a3f9db5a98812849baf26bdf441fd72b663dc4161062747575fc021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c521a3f9db5a98812849baf26bde5ac2b7e4567bd7f339a7d0d1a039021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021dfec521a3f9db5a98812849baf26be02d7cf67275ffb038e71d18194bbf021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d013ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c521a3f9db5a98812849baf26bdf441fd72b663dc4161062747575fc021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d01617d6af141efd0c800c9ba3382c2119a390cfa9bed6a409bfe3703be\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dff617d6af141efd0c800c9ba3382c3e454779b1a1fc5afee11457eaf44\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c9e82950ebe102f37ff3645cc7d3d0508a7abf5a22672e8a95e25267f\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dfe9e82950ebe102f37ff3645cc7d3dee65c6f305641295bf6401c8fc42\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d01617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d009e82950ebe102f37ff3645cc7d3d0508a7abf5a22672e8a95e25267f\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case ", + "values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090142\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090142\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101\nflags = EdgeCase\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d", + "00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090142\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001090142\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01\nflags = EdgeCase\n\n# tcId = 223\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002090142\nflags = EdgeCase\n\n# tcId = 224\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 230\n# Edge case for Shamir multiplication\nmsg = 3839313737\nresult = valid\nsig = 303d021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021d0096ad91f02a3bc40c118abd416ed5c6203ed7ced0330860d7b88c10ab\n\n# tcId = 231\n# special case hash\nmsg = 343236343739373234\nresult = valid\nsig = 303d021d00bcca2365cebdcf7c6cda1ee7b27c7fe79e371537b01869c715eabb1e021c3ae76f9bbfe519d778816dc8fe10635ee7576b6b7916f0c21df320c0\n\n# tcId = 232\n# special case hash\nmsg = 37313338363834383931\nresult = valid\nsig = 303c021c59a9f83289ef6995d5d5592e80ab4f6a81123f69d385d3cfb152faf2021c3a97d5be190d5819241067e2be56375ab84155baab8fc7aeb7f8cb3d\n\n# tcId = 233\n# special case hash\nmsg = 3130333539333331363638\nresult = valid\nsig = 303e021d00b54bac9be2beaaa09456a3968a1faf27c9d96bd5f6738fec6066d31e021d00d72c22129344a96d52fda60b264cf5e6fae45fd2c1b1b78bcba30070\n\n# tcId = 234\n# special case hash\nmsg = 33393439343031323135\nresult = valid\nsig = 303d021c323dbdecd40910c6fa7a5691846fa7769113d1f2ba64ef0dc97d2ddb021d00ca9e73a4587af042f8ba924bb61829c5e24046f9803eb76ab80ef327\n\n# tcId = 235\n# special case hash\nmsg = 31333434323933303739\nresult = valid\nsig = 303d021d00a55dccc27d287f15960ed79908a3edb6bb31aff07c8caa0e65fc0785021c559cb51aa5f2b9066610199dd01291a47729a6189a622ae9e7af7621\n\n# tcId = 236\n# special case hash\nmsg = 33373036323131373132\nresult = valid\nsig = 303d021c137ed6105148d6f5b84e87735d57955f81c5914a6e69f55347ade074021d00dfa5d56b1a12567efacb348a133b79d48da7aac78d78ee589c2ec027\n\n# tcId = 237\n# spe", + "cial case hash\nmsg = 333433363838373132\nresult = valid\nsig = 303e021d00856ff63d779163e78fed8c48330b48f08bf953a95266b3857eee91aa021d00f4aa917cd37f556c6df9d0960c2f7daa7ea118e5c30cc40ca1eed418\n\n# tcId = 238\n# special case hash\nmsg = 31333531353330333730\nresult = valid\nsig = 303d021d00a9d7716f04c5ce247f6b8c608b37db55f68e2ff94a5883863e867708021c61bc093faa6fb25cd240aea4b56fed728f7b3669b4dc84c449d38c5d\n\n# tcId = 239\n# special case hash\nmsg = 36353533323033313236\nresult = valid\nsig = 303d021d00f6d088fd3b9c981ac491c62030643bbd82d4f4588e8517de5884e73d021c773eee477980763b1ea27ae998bda0244cb67b07aa6779a38cd2ba3f\n\n# tcId = 240\n# special case hash\nmsg = 31353634333436363033\nresult = valid\nsig = 303e021d00eacb55588e446bbf3687089ba8ba3b05cfef7458bb81b4277f90a853021d008039e8944cc3df7f4ce5badc349975d471a81dea14e9bcae3065d410\n\n# tcId = 241\n# special case hash\nmsg = 34343239353339313137\nresult = valid\nsig = 303c021c5984af8c89fb9d596a1f28fd3d41e46f7205fe12fa63437ac79e7e81021c33b16b742d45f18f88de2713078384e6150f06b8b99f36ab2ce3dd49\n\n# tcId = 242\n# special case hash\nmsg = 3130393533323631333531\nresult = valid\nsig = 303d021c3cda62d84711c262f782d5c3a79b567485227b34afb821f5241b1961021d00b615cef399706ff758f072931852b717ec898e9a1e6339d0ee81b8da\n\n# tcId = 243\n# special case hash\nmsg = 35393837333530303431\nresult = valid\nsig = 303d021d00e1db7304609191ea1ac91183ffb31df51b5b3fdc6b1a1129d85818d6021c441886d003ae80fbe7139e1d02845cd1bd959f0df1468f5836dd6ea5\n\n# tcId = 244\n# special case hash\nmsg = 33343633303036383738\nresult = valid\nsig = 303d021c3545dc4a4ef84bbb3a526ff929c91ad234516a9e95455ac8db4012b1021d00af49926f693a7cf11f71e199f382a8d640c0c85e46d94ee26e384344\n\n# tcId = 245\n# special case hash\nmsg = 39383137333230323837\nresult = valid\nsig = 303d021c0ccafdeae4582c9de6795b2d09a7fc3848c75904fa960989156cbbb9021d00af1f994da3e7d89cc8aaa44616cb77e3be7a83ccecc965775194e502\n\n# tcId = 246\n# special case hash\nmsg = 33323232303431303436\nresult = valid\nsig = 303e021d00a3b2145d8c669027532501eea1913abb22a78a827fdd82fe9d6d3757021d009b2f1ae84f5606d68653065f74e9d089886694c739fbe3fd4a1b2b4a\n\n# tcId = 247\n# special case hash\nmsg = 36363636333037313034\nresult = valid\nsig = 303e021d009aac3a7e3d142344991bf177b4f4dbfa074148ad9e20f27555b547d9021d00f830a3c7fdf251d79d41977d28e6d9a72a36df11b86e17c8dc3acae0\n\n# tcId = 248\n# special case hash\nmsg = 31303335393531383938\nresult = valid\nsig = 303c021c4769fba554fd436051c285bdadfa33a443d4f7084dd598ce3b98b8fb021c0c014c87cb14113d75864f74905f75b34f9970ba58b5d0676021826d\n\n# tcId = 249\n# special case hash\nmsg = 31383436353937313935\nresult = valid\nsig = 303d021d008b91fc5054a75c34a508624b85708b3d25fa74328c68741c3aeb92d9021c155e3e46b1209583135a9fef15abe325b25bd19285ee6b5b4549629f\n\n# tcId = 250\n# special case hash\nmsg = 33313336303436313839\nresult = valid\nsig = 303d021d00a4a2a85fbb8bb26c4d845cfac191f89d65b00d3f1b9450d177f78890021c6605a460e60402685c7a5accd2615e9232e51937bd83dfa3065eabf7\n\n# tcId = 251\n# special case hash\nmsg = 32363633373834323534\nresult = valid\nsig = 303d021d00a89d333ae34187855cf7fa435ff39be6b7bb39b2d0ce682133ad9646021c483dcc89a3b43be250f5c3f78f78418e7b8341a8bcfb93dfd58e46d8\n\n# tcId = 252\n# special case hash\nmsg = 31363532313030353234\nresult = valid\nsig = 303d021c2d0f99c71933c82ded544ef4faac9d669e437dea13b57186f4c20a0e021d00d9682b9f3a05d7832947bc45eadbc742d96e7ab1124832ddb7a8c65b\n\n# tcId = 253\n# special case hash\nmsg = 35373438303831363936\nresult = valid\nsig = 303d021d00840208f7c41b1fbadcc701fb3a1d0f98a3e2a75235e695bfd378f8b4021c44c8daad4efc03e1753803c362b409c3ca6e0f21e538fe3a364c0e53\n\n# tcId = 254\n# special case hash\nmsg = 36333433393133343638\nresult = valid\nsig = 303e021d0087cc582cb10602110566fcb10a233aede993fae5fb3f81b0bbff94ca021d00c971c05bd51d9685825b2cfc0a2596c7f80d9f9dc68c28c159aa395a\n\n# tcId = 255\n# special case hash\nmsg = 31353431313033353938\nresult = valid\nsig = 303d021c50d73d949b3adcd3e8fa94dafefaf9d263ebc702128d891afac47ea7021d00f8423c378f0190574925142eb5b97c612abfa048fa3ab5375ec795a1\n\n# tcId = 256\n# special case hash\nmsg = 3130343738353830313238\nresult = valid\nsig = 303e021d00d608915dfcd5d3c63ed10d0d9b614f7a866f8858a6e59dc03eb0a8ee021d008e701aa0bab491430f6e4da92244b0bb174957ee6f495bc5d15fabb1\n\n# tcId = 257\n# special case hash\nmsg = 3130353336323835353638\nresult = valid\nsig = 303e021d00c87b0ab842c4769ed94b910bd7719691f9991bc5a347889608f07034021d00d083111048d6e019771fc2669c55156a3d09615a6b2d9cae52ddabee\n\n# tcId = 258\n# special case hash\nmsg = 393533393034313035\nresult = valid\nsig = 303c021c0a1c2c2478e244464226c660edf724db1213f4923eb725d611d976fd021c764e55186a76f734891d05fb57af2727fab8fbea684ca4321d5de540\n\n# tcId = 259\n# special case hash\nmsg = 393738383438303339\nresult = valid\nsig = 303e021d008a2747c5dd9ef5298b8aeabd2fb3a2beb16158fb2cc62be9e51b2152021d00f96251bc048bcad832e6cbc09c9c2e585ab7543dc552eaa5125be0d3\n\n# tcId = 260\n# special case hash\nmsg = 33363130363732343432\nresult = valid\nsig = 303e021d00d9eac32a734f3a3e5b5a2905bed8164ef4c6cd24d5c0fc54cc83f3cc021d00a784930d16c3b753bb3ed9151d583c50ff97bc976274bde482fb9644\n\n# tcId = 261\n# special case hash\nmsg = 31303534323430373035\nresult = valid\nsig = 303d021c6c40c6b15ae573f77b677cd878cc5e4da8171cf50d79974fde374e00021d00c88c9828037bf7013a1415537ca074d6c8a553bdb4b26b14a7e88d93\n\n# tcId = 262\n# special case hash\nmsg = 35313734343438313937\nresult = valid\nsig = 303d021d00dca0aaa0a395393142b323edced09372760350f2ab261ce3339b114d021c0983bf6e510ce7f0a7520f2b7c60cd68a4912b78162c7ac33789e0c6\n\n# tcId = 263\n# special case hash\nmsg = 31393637353631323531\nresult = valid\nsig = 303d021d00a0526ed47e2607e6bae6dcf3b8f54f4e0638023673a38cad4569c3ba021c61516f55746b379d11cbaa02cef35311d7771a47d1e127cff46dcfd6\n\n# tcId = 264\n# special case hash\nmsg = 33343437323533333433\nresult = valid\nsig = 303d021c5c00db60178c8361092bdfb47fc9a47b33363d7e0d76e32520f79657021d00e1baf7ae7d81045793c73173f49d60bdfc8779942795d9d082b3ca11\n\n# tcId = 265\n# special case hash\nmsg = 333638323634333138\nresult = valid\nsig = 303d021c46f69b6a99717949eee74092a0c1438a290a2cd82fe1e10d8f37e88b021d0099a5f59f09bd980a066233523397846987a8a1bfdde355062d140a4b\n\n# tcId = 266\n# special case hash\nmsg = 33323631313938363038\nresult = valid\nsig = 303e021d00e643d8085a22706fa0e6540f3d5e169ad8cc49b4bfe98e325321c705021d00f95bd423f9cafe0cedfec6fd97871536d71b2ac58dfb2f7ab8952d4b\n\n# tcId = 267\n# special case hash\nmsg = 39363738373831303934\nresult = valid\nsig = 303e021d00e65fb9bcdd791f141ccff2b3cfbf45d84f8c6272021a68dde8c36bc8021d00df6e08c74b5e36b7772658f02515ae0ea813b64df24f3522ea15fb15\n\n# tcId = 268\n# special case hash\nmsg = 34393538383233383233\nresult = valid\nsig = 303e021d00a476d468221ef55611e8a724c9b4cd79c34f6940d5f665e3335f6231021d00bfddc18e7a008bc206c8e1ca6c878363e4138508e0c3a84a27eabe35\n\n# tcId = 269\n# special case hash\nmsg = 383234363337383337\nresult = valid\nsig = 303c021c1b393477941879271873a8c043a77caadb9957fcdd263a6ac978e4ba021c270060d5f356ebb6d185772baa78b878af6807378e0d5c532da0a4a7\n\n# tcId = 270\n# special case hash\nmsg = 3131303230383333373736\nresult = valid\nsig = 303e021d00b2eda8c969d4b1bdd31867fd1f92d547b406840c257f2f80dfbdc4e3021d00e6297b059ce64ef04de9715a8f686a9f73980865066a94975b7f8117\n\n# tcId = 271\n# special case hash\nmsg = 313333383731363438\nresult = valid\nsig = 303d021d00938189a18a4bff5712ac99c2b8e92c218af3e4d4e3a84b906b0f704e021c7bb3e538f0b70664dad462ab14b0ed416c86ac6e9060fe760dabb715\n\n# tcId = 272\n# special case hash\nmsg = 333232313434313632\nresult = valid\nsig = 303e021d00bb7c1d8120d2aa7765b16eeac44282de605fb2a1665657dea4492935021d00e0a8adb3a143883f981ea1323fa6f1d347845be2b8dcc6cd5cc93ee5\n\n# tcId = 273\n# special case hash\nmsg = 3130363836363535353436\nresult = valid\nsig = 303c021c74a4c51dd60c7118467be29652060f39af94f8c0eb7f15c64771010c021c6102ec0c9257e607af3f3ff7490b54e78111f422bec11ba01277171f\n\n# tcId = 274\n# special case hash\nmsg = 3632313535323436\nresult = valid\nsig = 303d021c625da18d676f02fae9dbcb3092265909488fb95d662569d7746b9687021d00c4f1ec831e36604d604b630fd0b1999cd09960862294251d85e5873d\n\n# tcId = 275\n# special case hash\nmsg = 37303330383138373734\nresult = valid\nsig = 303d021d008ee0d4a31fd1c4d854d75c14151926899dde1c7332fd4769443d213d021c4b8278b89ba4f8fbd7dcc6affe4c12156f7409909416989685dd5a39\n\n# tcId = 276\n# special case hash\nmsg = 3539323435", + "3233373434\nresult = valid\nsig = 303e021d00bdde45fc9ebb3749c9fb2c25bf02e2a217ccc112f8e65499eeffb6a1021d00becd6b88ef2bee872ebc0e2b805a56066e19179fce9f0dc0df3f6378\n\n# tcId = 277\n# special case hash\nmsg = 31343935353836363231\nresult = valid\nsig = 303d021c50186e023a1f5053fcb4d0473039b1b2cdeba569719a4ebabdd675c8021d00f8fb893c1b6b5b827b5f3f4bb5eab75b6212bb56a5a39bb35c127a1c\n\n# tcId = 278\n# special case hash\nmsg = 34303035333134343036\nresult = valid\nsig = 303e021d00d3b454639b0fb3da93b20d55be8609e40902cb4a608f3b9064c0deb7021d00ec7aa9637fd71b543e5243faab4c7a2edc2c48e982c5ac017807f19a\n\n# tcId = 279\n# special case hash\nmsg = 33303936343537353132\nresult = valid\nsig = 303d021d00c202abbd98e03809de842bdef268a1c616a7306da69a87abaf03169c021c7e7e04823af8ed6836fd2ac011e47de8e1bef91ed1da5144893fc259\n\n# tcId = 280\n# special case hash\nmsg = 32373834303235363230\nresult = valid\nsig = 303d021c2e4b76638816cce057a4a27a49258dcb5437ae97739f27ebc0973c0b021d00e9f6c0b64e764ad39dd92b576e11c23e5994b02095cb2a4720c8662c\n\n# tcId = 281\n# special case hash\nmsg = 32363138373837343138\nresult = valid\nsig = 303c021c7e0f48761089aa4c7ecd5a7ac5380836b1e5d381d3400174d15df98b021c0c3df50060e3a6714aa565a33d784e7b16ac87bebfb3c2255cfd832c\n\n# tcId = 282\n# special case hash\nmsg = 31363432363235323632\nresult = valid\nsig = 303c021c4d6f7408508eb0814dcd48007f0efd9e2b91cdac4030540cc678de19021c1e74f8dc34d13613ef42462fe88981cbe2489be10e4cdae975a1b38e\n\n# tcId = 283\n# special case hash\nmsg = 36383234313839343336\nresult = valid\nsig = 303d021d00967f2c5d304c7932eaaa1682197945e66cc912b703824776ef16ad7a021c73957001d9037c63d6471c809a2388383ad695137c622cd5f5584414\n\n# tcId = 284\n# special case hash\nmsg = 343834323435343235\nresult = valid\nsig = 303d021c49260804bb2ceae4b9cee63b02ea60173ec3f4f90167627c0bb39888021d00c9eb022f96db3e90fe0ff617730a629f342e02fb208d6836cbbdc7d3\n\n# tcId = 285\n# Signature generated without truncating the hash\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00f3e712597a4b22632c5f8eb9f2845882bb03a139735f80af8826fc56021c62865bd91c0903511a481d607eb6b5fe28f6f6c89295681a3e8d55d8\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0493b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]\n[key.wx = 0093b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2]\n[key.wy = 482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000493b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]\n[sha = SHA-256]\n\n# tcId = 286\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n# tcId = 287\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]\n[key.wx = 00da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789]\n[key.wy = 00ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]\n[sha = SHA-256]\n\n# tcId = 288\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0420888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fcde00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]\n[key.wx = 20888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fc]\n[key.wy = 00de00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000420888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fcde00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]\n[sha = SHA-256]\n\n# tcId = 289\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 049545c86f032c5df255a4490bb0b83eca201181792ad74246874db229405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]\n[key.wx = 009545c86f032c5df255a4490bb0b83eca201181792ad74246874db229]\n[key.wy = 405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049545c86f032c5df255a4490bb0b83eca201181792ad74246874db229405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]\n[sha = SHA-256]\n\n# tcId = 290\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]\n[key.wx = 579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8]\n[key.wy = 00df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]\n[sha = SHA-256]\n\n# tcId = 291\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020101\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]\n[key.wx = 00d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628]\n[key.wy = 00acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]\n[sha = SHA-256]\n\n# tcId = 292\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020103\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]\n[key.wx = 00e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4]\n[key.wy = 326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]\n[sha = SHA-256]\n\n# tcId = 293\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020104\n\n# tcId = 294\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 042b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103ad465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]\n[key.wx = 2b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103a]\n[key.wy = 00d465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103ad465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]\n[sha = SHA-256]\n\n# tcId = 295\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7afd73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]\n[key.wx = 00d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7af]\n[key.wy", + " = 00d73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7afd73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]\n[sha = SHA-256]\n\n# tcId = 296\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a304f7d3c74e617dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]\n[key.wx = 00f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a304f7d3c74e6]\n[key.wy = 17dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a304f7d3c74e617dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]\n[sha = SHA-256]\n\n# tcId = 297\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]\n[key.wx = 00d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317]\n[key.wy = 00d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]\n[sha = SHA-256]\n\n# tcId = 298\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 302d020d1033e67e37b32b445580bf4efb021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce89668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]\n[key.wx = 008a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce8]\n[key.wy = 009668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce89668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]\n[sha = SHA-256]\n\n# tcId = 299\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]\n[key.wx = 00b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137]\n[key.wy = 00f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]\n[sha = SHA-256]\n\n# tcId = 300\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0477f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c978129f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]\n[key.wx = 77f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c97812]\n[key.wy = 009f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000477f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c978129f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]\n[sha = SHA-256]\n\n# tcId = 301\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f31736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]\n[key.wx = 00a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f3]\n[key.wy = 1736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f31736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]\n[sha = SHA-256]\n\n# tcId = 302\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101\n\n# tcId = 303\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 049cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f6921c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]\n[key.wx = 009cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f69]\n[key.wy = 21c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f6921c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]\n[sha = SHA-256]\n\n# tcId = 304\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ae9b3636b8547232df438559b5a109e0238a73a76afc25d070ea27427210a69de44ad645b1b03845040f46fce238e92c131a71e4b184c01f]\n[key.wx = 00ae9b3636b8547232df438559b5a109e0238a73a76afc25d070ea2742]\n[key.wy = 7210a69de44ad645b1b03845040f46fce238e92c131a71e4b184c01f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ae9b3636b8547232df438559b5a109e0238a73a76afc25d070ea27427210a69de44ad645b1b03845040f46fce238e92c131a71e4b184c01f]\n[sha = SHA-256]\n\n# tcId = 305\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048d57d4fce62757791888c1938076fd766daeb2ec9f1bda8ad5df4809aade924d7ea3ae5abbd0719a7d4865759da654cf76cf7ec031277108]\n[key.wx = 008d57d4fce62757791888c1938076fd766daeb2ec9f1bda8ad5df4809]\n[key.wy = 00aade924d7ea3ae5abbd0719a7d4865759da654cf76cf7ec031277108]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048d57d4fce62757791888c1938076fd766daeb2ec9f1bda8ad5df4809aade924d7ea3ae5abbd0719a7d4865759da654cf76cf7ec031277108]\n[sha = SHA-256]\n\n# tcId = 306\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0410518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c83f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]\n[key.wx = 10518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c8]\n[key.wy = 3f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000410518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c83f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]\n[sha = SHA-256]\n\n# tcId = 307\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd3badfbb8a4c6fd80e66510957927c78a2aa02ecef62816d0356b49c3]\n[key.wx = 008a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd]\n[key.wy = 3badfbb8a4c6fd80e66510957927c78a2aa02ecef62816d0356b49c3]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd3badfbb8a4c6fd80e66510957", + "927c78a2aa02ecef62816d0356b49c3]\n[sha = SHA-256]\n\n# tcId = 308\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0483a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]\n[key.wx = 0083a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff]\n[key.wy = 1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000483a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]\n[sha = SHA-256]\n\n# tcId = 309\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0458bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a75be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]\n[key.wx = 58bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a7]\n[key.wy = 5be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000458bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a75be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]\n[sha = SHA-256]\n\n# tcId = 310\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad40d3e1b8392e81c29\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 047fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]\n[key.wx = 7fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c]\n[key.wy = 0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]\n[sha = SHA-256]\n\n# tcId = 311\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0093c8c651653430cb4f1675fc86b5e82ca04ff2ab1501674476aac169\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]\n[key.wx = 3ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674]\n[key.wy = 00fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]\n[sha = SHA-256]\n\n# tcId = 312\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009df50acc33b3625a2d5940dd13dbb97d1f7dd56afff8b7de7545127c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]\n[key.wx = 1cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37]\n[key.wy = 00b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]\n[sha = SHA-256]\n\n# tcId = 313\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00dce8c223f235699d1f5d2dcde4809d013390b59129f783239525c08f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0444e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]\n[key.wx = 44e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36]\n[key.wy = 477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000444e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]\n[sha = SHA-256]\n\n# tcId = 314\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c074aae944ee7a7d544a5ad0bd06366f872d2250ba3018a63d2a7f2e6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e110129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]\n[key.wx = 00c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e1]\n[key.wy = 10129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e110129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]\n[sha = SHA-256]\n\n# tcId = 315\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00aae944ee7a7d544a5ad0bd0636d9455f4e83de0f186f89bca56b3c5c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d63099667220cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]\n[key.wx = 00c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d6309966722]\n[key.wy = 0cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d63099667220cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]\n[sha = SHA-256]\n\n# tcId = 316\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c55d289dcf4faa894b5a17a0c6db3741bbc4ecbe01d01ea33ee7a4e7b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33caa967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]\n[key.wx = 00b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33ca]\n[key.wy = 00a967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33caa967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]\n[sha = SHA-256]\n\n# tcId = 317\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4ee7a7d544a5ad0bd0636d9e12bc561ce04faaf1312bba3a15601ebc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27ec30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]\n[key.wx = 00f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27e]\n[key.wy = 00c30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27ec30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]\n[sha = SHA-256]\n\n# tcId = 318\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c361b9cd74d65e79a5874c501bca4973b20347ec97f6de10072d8b46a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0456d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd116cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]\n[key.wx = 56d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd11]\n[key.wy = 6cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000456d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd116cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]\n[sha = SHA-256]\n\n# tcId = 319\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffff", + "ffffffffffd021c6c3739ae9acbcf34b0e98a0379492e764068fd92fedbc200e5b168d4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0430bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]\n[key.wx = 30bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5]\n[key.wy = 00f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000430bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]\n[sha = SHA-256]\n\n# tcId = 320\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00a252d685e831b6cf095e4f0535edc5b1609d7c5c7e49a301588a1d3e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]\n[key.wx = 00e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5]\n[key.wy = 539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]\n[sha = SHA-256]\n\n# tcId = 321\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00ee746111f91ab4ce8fae96e6f23fd9d20a24d2e79eea563478c0f566\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f02816c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]\n[key.wx = 113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f0281]\n[key.wy = 6c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f02816c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]\n[sha = SHA-256]\n\n# tcId = 322\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0423dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74ad661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]\n[key.wx = 23dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74a]\n[key.wy = 00d661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000423dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74ad661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]\n[sha = SHA-256]\n\n# tcId = 323\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256dfe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]\n[key.wx = 00bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256d]\n[key.wy = 00fe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256dfe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]\n[sha = SHA-256]\n\n# tcId = 324\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04035f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a495347bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]\n[key.wx = 035f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a4953]\n[key.wy = 47bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004035f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a495347bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]\n[sha = SHA-256]\n\n# tcId = 325\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]\n[key.wx = 00911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279]\n[key.wy = 508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]\n[sha = SHA-256]\n\n# tcId = 326\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0462b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]\n[key.wx = 62b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3]\n[key.wy = 124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000462b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]\n[sha = SHA-256]\n\n# tcId = 327\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 040f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]\n[key.wx = 0f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6]\n[key.wy = 00defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00040f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]\n[sha = SHA-256]\n\n# tcId = 328\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]\n[key.wx = 008f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d]\n[key.wy = 3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]\n[sha = SHA-256]\n\n# tcId = 329\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 042bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c095b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]\n[key.wx = 2bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c09]\n[key.wy = 5b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c095b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]\n[sha = SHA-256]\n\n# tcId = 330\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompres", + "sed = 04a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]\n[key.wx = 00a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec]\n[key.wy = 3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]\n[sha = SHA-256]\n\n# tcId = 331\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe82ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]\n[key.wx = 00a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe8]\n[key.wy = 2ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe82ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]\n[sha = SHA-256]\n\n# tcId = 332\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f280562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]\n[key.wx = 034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f2]\n[key.wy = 0080562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f280562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]\n[sha = SHA-256]\n\n# tcId = 333\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c3f552f1c2b01651edf5902650fe9ab046f71999ac928edc0087bdb13\nflags = PointDuplication\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f27fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]\n[key.wx = 034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f2]\n[key.wy = 7fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f27fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]\n[sha = SHA-256]\n\n# tcId = 334\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c3f552f1c2b01651edf5902650fe9ab046f71999ac928edc0087bdb13\nflags = PointDuplication\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb67ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]\n[key.wx = 3672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb6]\n[key.wy = 7ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb67ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]\n[sha = SHA-256]\n\n# tcId = 335\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0433eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648051749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]\n[key.wx = 33eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648]\n[key.wy = 051749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000433eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648051749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]\n[sha = SHA-256]\n\n# tcId = 336\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bda03b24b62243c61e288b6ea1e99a2886f700944eb1b8f0466cffd61c712a3aaace69331989b707e69e8de39d7cd1aeb65d97ad1800bf7f]\n[key.wx = 00bda03b24b62243c61e288b6ea1e99a2886f700944eb1b8f0466cffd6]\n[key.wy = 1c712a3aaace69331989b707e69e8de39d7cd1aeb65d97ad1800bf7f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bda03b24b62243c61e288b6ea1e99a2886f700944eb1b8f0466cffd61c712a3aaace69331989b707e69e8de39d7cd1aeb65d97ad1800bf7f]\n[sha = SHA-256]\n\n# tcId = 337\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 047abba0cbff134ddcf54d04846f954b882ca9faefdfe818898bfb378b792f10b57970ae57bb4fb01c08886848855aeb1984d3d6fcb2b412df]\n[key.wx = 7abba0cbff134ddcf54d04846f954b882ca9faefdfe818898bfb378b]\n[key.wy = 792f10b57970ae57bb4fb01c08886848855aeb1984d3d6fcb2b412df]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047abba0cbff134ddcf54d04846f954b882ca9faefdfe818898bfb378b792f10b57970ae57bb4fb01c08886848855aeb1984d3d6fcb2b412df]\n[sha = SHA-256]\n\n# tcId = 338\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f68d99e28653b9ba3e7cedb3b78165f5a54fbe90d4b9f88497977e16234da3eaa0178a51b5b0c208ef0818df6f6578793c1af1787026b8da]\n[key.wx = 00f68d99e28653b9ba3e7cedb3b78165f5a54fbe90d4b9f88497977e16]\n[key.wy = 234da3eaa0178a51b5b0c208ef0818df6f6578793c1af1787026b8da]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f68d99e28653b9ba3e7cedb3b78165f5a54fbe90d4b9f88497977e16234da3eaa0178a51b5b0c208ef0818df6f6578793c1af1787026b8da]\n[sha = SHA-256]\n\n# tcId = 339\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04065d9ef133ce81c2d6b66e928360f9527f8f36b5badd35b5f10934272004852755f77440a0b08b9f165489c0696e8b4981d6d04a285b0fd1]\n[key.wx = 065d9ef133ce81c2d6b66e928360f9527f8f36b5badd35b5f1093427]\n[key.wy = 2004852755f77440a0b08b9f165489c0696e8b4981d6d04a285b0fd1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004065d9ef133ce81c2d6b66e928360f9527f8f36b5badd35b5f10934272004852755f77440a0b08b9f165489c0696e8b4981d6d04a285b0fd1]\n[sha = SHA-256]\n\n# tcId = 340\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d6cea09472ede574ce1e0546c9acd0e1cd8cba9b121df29e89d5092e83904ebfb902ea61c987dc0508e0c9a7e563e2609feaf79140ab91d6]\n[key.wx = 00d6cea09472ede574ce1e0546c9acd0e1cd8cba9b121df29e89d5092e]\n[key.wy = 0083904ebfb902ea61c987dc0508e0c9a7e563e2609feaf79140ab91d6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d6cea09472ede574ce1e0546c9acd0e1cd8cba9b121df29e89d5092e83904ebfb902ea61c987dc0508e0c9a7e563e2609feaf79140ab91d6]\n[sha = SHA-256]\n\n# tcId = 341\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompre", + "ssed = 04c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb80e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]\n[key.wx = 00c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb8]\n[key.wy = 0e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb80e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]\n[sha = SHA-256]\n\n# tcId = 342\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 049dd0b99bb7a830bcc7d55abac42912d525b063c50cf377ca5771a26ca141fccf0793c2ba2469a946c2d4ed26344052c63a6d7e7797ce96c3]\n[key.wx = 009dd0b99bb7a830bcc7d55abac42912d525b063c50cf377ca5771a26c]\n[key.wy = 00a141fccf0793c2ba2469a946c2d4ed26344052c63a6d7e7797ce96c3]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049dd0b99bb7a830bcc7d55abac42912d525b063c50cf377ca5771a26ca141fccf0793c2ba2469a946c2d4ed26344052c63a6d7e7797ce96c3]\n[sha = SHA-256]\n\n# tcId = 343\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043dab9f1b19e715d174a7360920375d569a181f055e66f01391871b6f47a6d87c23a5b6a1e3d0a9721302cc02cce35f35dea08e22619be521]\n[key.wx = 3dab9f1b19e715d174a7360920375d569a181f055e66f01391871b6f]\n[key.wy = 47a6d87c23a5b6a1e3d0a9721302cc02cce35f35dea08e22619be521]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043dab9f1b19e715d174a7360920375d569a181f055e66f01391871b6f47a6d87c23a5b6a1e3d0a9721302cc02cce35f35dea08e22619be521]\n[sha = SHA-256]\n\n# tcId = 344\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0456dde1ba58ea31053b2535c66623344c24c72d214af5be6982e89100e771084806143e86f2b31bdaf62280f5b311d0d2bdbb385b20fc6c87]\n[key.wx = 56dde1ba58ea31053b2535c66623344c24c72d214af5be6982e89100]\n[key.wy = 00e771084806143e86f2b31bdaf62280f5b311d0d2bdbb385b20fc6c87]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000456dde1ba58ea31053b2535c66623344c24c72d214af5be6982e89100e771084806143e86f2b31bdaf62280f5b311d0d2bdbb385b20fc6c87]\n[sha = SHA-256]\n\n# tcId = 345\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0494efe1387fc0447d7dbcb53739a0e4e0ddec181d382caea645b1a6124414a6b1c78908d0fa206f8f2de950ad4a14d1ce94d9cddbe32e4601]\n[key.wx = 0094efe1387fc0447d7dbcb53739a0e4e0ddec181d382caea645b1a612]\n[key.wy = 4414a6b1c78908d0fa206f8f2de950ad4a14d1ce94d9cddbe32e4601]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000494efe1387fc0447d7dbcb53739a0e4e0ddec181d382caea645b1a6124414a6b1c78908d0fa206f8f2de950ad4a14d1ce94d9cddbe32e4601]\n[sha = SHA-256]\n\n# tcId = 346\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 046286803b952976ee1897013695d3ef2cbb6f977142a042b236572577722a6ce9ad3e3fd28e451833496c63b8ab70538877215f204942bf59]\n[key.wx = 6286803b952976ee1897013695d3ef2cbb6f977142a042b236572577]\n[key.wy = 722a6ce9ad3e3fd28e451833496c63b8ab70538877215f204942bf59]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00046286803b952976ee1897013695d3ef2cbb6f977142a042b236572577722a6ce9ad3e3fd28e451833496c63b8ab70538877215f204942bf59]\n[sha = SHA-256]\n\n# tcId = 347\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[key.wx = 00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 00bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[sha = SHA-256]\n\n# tcId = 348\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 349\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[key.wx = 00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[sha = SHA-256]\n\n# tcId = 350\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 351\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]\n[key.wy = 00ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[sha = SHA-256]\n\n# tcId = 352\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 303d021c0364e7d96832614a80216e730c353534d4bffd2c26649c0b4b0e2628021d008f40064b412fe38c5ba9cf664e6172ed48e6e79f0fe5e31a54985dfc\n\n# tcId = 353\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 303d021d00f4b68df62b9238363ccc1bbee00deb3fb2693f7894178e14eeac596a021c7f51c9451adacd2bcbc721f7df0643d7cd18a6b52064b507e1912f23\n\n# tcId = 354\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b2970cdec29c70294a18bbc49985efa33acc0af509c326a3977a35e8021c0cea3ed8ebaaf6ee6aef6049a23cbc39f61fcf8fc6be4bab13385579\n\n# tcId = 355\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 303d021c7e7b0eb7da8c68a7072b11404ee95a5c407fbfe3d69646802e28ae77021d00d409a2f6bbaae59bb60fc0a092b12fa4e67dc8d088cf19a833322fd6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[key.wx = 00aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]\n[key.wy = 008a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[sha = SHA-256]\n\n# tcI", + "d = 356\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c519bf185ff4635271961fa491be257231deeea9c53a6ede3b4a89ed1021c486bdad484a6a3134e1471cf56a9df0fac50f773b3e37d6f327617d7\n\n# tcId = 357\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c09fd644898b7cb5d018b52234e7b4ef2b54789afd0ce9c434e9e5515021d00f19309532164ea2053cae55df7bdcbab536c83ea7bfe6fe10d60c1ab\n\n# tcId = 358\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00ec919d4e283ccf1f71a9e3c0f781a36758d3f38b1b78a87a74288e80021c4c4663044a73c79bd88f0dc245ab1a32f89f06f40a704b31e9fabc51\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 00bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-256]\n\n# tcId = 359\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00c51760478447217597ecc6f4001bd45088d53c90f53103608bf88aea021d00a201253aa903f9781e8992101d7171d2dd3a5d48c44d8e1d544cd6d7\n\n# tcId = 360\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c76be0112674ec29128823e1af7512e6143872fef30a64e2f1799bd56021c187e503e1a48c27b549fe0a4ce5e581e242c8663fc9efb02d6f2b193\n\n# tcId = 361\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c36245ef126b5b51e459f84eaaad5a495061f0471dc8c23f1c5f16282021c39e31d72a06ba8e14fcf95778e07bc16a2628e39449da8857d506edc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 00eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-256]\n\n# tcId = 362\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c258682975df8bca7f203f771ebeb478ef637360c860fc386cfb21745021c7663e70188047e41469a2a35c8c330dd900f2340ba82aafd22962a96\n\n# tcId = 363\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d0085c98614f36c0d66f8d87834cae978611b7b4eebf59a46bea1b89ae9021d00d1a18e378dda840e06b60f6279bf0a2231d9fa2d8d2c31e88bc1bdd7\n\n# tcId = 364\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ca7b7432ba41ff2112e1116fffde89bbd68f5ce67fe5513d16c8e6f7021d00e421b7599e0180798acc2006451603cda2db1d582741116e6033ce5f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 00ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-256]\n\n# tcId = 365\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c19397fe5d3ecabf80fc624c1bf379564387517c185087dc97d605069021c33b5773e9aaf6c34cb612cfc81efd3bf9c22224e8c4fa1bfccf5c501\n\n# tcId = 366\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c70f24f5c164164bfbb8459aa12a981aa312dbcf00204326ebaaabdc8021d00f5cebee8caedae8662c43501665084b45d2f494fb70d603043543dc4\n\n# tcId = 367\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0bf2d86ecaa8b56aca5e8f8ebcb45081d078a14555b75f5be8e9b132021d009a55b3ce4734849966b5034ccd9b19f76407ee0241c3f58e7b8fc89a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-256]\n\n# tcId = 368\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00bfc5dc4434cd09369610687d38d2d418b63fd475dea246a456b25a3a021d00b171dfa6cf722f20816370a868785da842b37bac31d7b78e6751fc50\n\n# tcId = 369\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d008fdbe8da646c5642d767c7dbeb3872b1edab6e37365805f0e94ce0a9021d00bcf35ab81222883dd3526cb0cf93138f4687cd0b10c2b0a126385161\n\n# tcId = 370\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e23a11275848fd4f8b6f4ac4fc305eae981d3b7dc453e5a980c46422021c1a875693f24a03ea1614c4c3bbd0dd7221429f22b337ea7d98348ca4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 00ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-256]\n\n# tcId = 371\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c76645164ff9af3a1a9205fda2eef326d2bffc795dcc4829547fe01dd021d00b65bba503719314b27734dd06b1395d540af8396029b78b84e0149eb\n\n# tcId = 372\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c32fa0ca7e07f1f86ac350734994e1f31b6da9c82f93dced2b983c29c021c7b7891282206a45711bdfcb2a102b5d289df84ff5778548603574004\n\n# tcId = 373\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c2d5492478ca64e5111dfd8521867b6477b7e78227849ad090b855694021d00a532f5a2fa3594af81cd5928b81b4057da717be5fb42a3a86c68190d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 00f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 00de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-256]\n\n# tcId = 374\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c191eee5daf55cd499e8539cb2cff797cfec5d566d2027bf9f8d64693021d00dadfeae8131f64d96b94fd340197caa2bc04818554812feef3343070\n\n# tcId = 375\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00e0e2c08180b8a207ee9105a7d379fa112368e8370fa09dfde4a45c45021d00c717bc0860e016e7ce48f8fe6a299b36906a6055adad93b416ce8838\n\n# tcId = 376\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c1b919ef93532292743bb2e1b7b4894fd847c6e5de52a08e1b0f2dcfb021d00c2d30d6b7594d8dbd261491ae1d58779505b075b64e5564dc97a418b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242", + "a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 00ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 0086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-256]\n\n# tcId = 377\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e75db49ed33ff2885ea6100cc95b8fe1b9242ea4248db07bcac2e020021c796c866142ae8eb75bb0499c668c6fe45497692fbcc66b37c2e4624f\n\n# tcId = 378\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1f81cd924362ec825890307b9b3936e0d8f728a7c84bdb43c5cf0433021c39d3e46a03040ad41ac026b18e0629f6145e3dc8d1e6bbe200c8482b\n\n# tcId = 379\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c00fda613aa67ca42673ad4309f3f0f05b2569f3dee63f4aa9cc54cf3021c1e5a64b68a37e5b201c918303dc7a40439aaeacf019c5892a8f6d0ce\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-256]\n\n# tcId = 380\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00b932b3f7e6467e1ec7a561f31160248c7f224550a8508788634b53ce021d00a0c5312acf9e801aff6d6fc98550cfa712bbf65937165a36f2c32dc9\n\n# tcId = 381\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e509593fb09245ee8226ce72786b0cc352be555a7486be628f4fd00c021c0b7abde0061b1e07bf13319150a4ff6a464abab636ab4e297b0d7633\n\n# tcId = 382\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c6e54f941204d4639b863c98a65b7bee318d51ab1900a8f345eac6f07021c0da5054829214ecde5e10579b36a2fe6426c24b064ed77c38590f25c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 00fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-256]\n\n# tcId = 383\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d0085ea4ab3ffdc992330c0ca8152faf991386bce82877dbb239ba654f6021c0806c6baf0ebea4c1aaa190e7d4325d46d1f7789d550632b70b5fc9b\n\n# tcId = 384\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c44d53debb646b73485402eab2d099081b97b1243c025b624f0dd67ea021d00e5de789a7d4b77eac6d7bba41658e6e4dc347dabed2f9680c04a6f55\n\n# tcId = 385\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1526eb2f657ebea9af4ca184b975c02372c88e24e835f3f5774c0e12021c1f1ecce38ee52372cb201907794de17b6d6c1afa13c316c51cb07bc7\n\n", }; -static const size_t kLen68 = 139779; +static const size_t kLen101 = 132917; -static const char *kData68[] = { - "# Imported from Wycheproof's ecdsa_secp224r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 0eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 0eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c394766fb67a65fe0af6c154f7cbd285ea180b4c6150cdafafb0f6f0f\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021cc6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# Some implementations of ECDSA and DSA incorrectly encode r and s by not\n# including leading zeros in the ASN encoding of integers when necessary. Hence,\n# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings\n# assuming that the signature is otherwise valid.\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 4\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30813d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 303e02811c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02811d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 7\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f0282001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 9\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0282001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021d691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021b691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021e00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 15\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 16\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30420285010000001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 18\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0285010000001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 19\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3046028901000000000000001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 21\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3046021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab028901000000000000001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 22\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304102847fffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 24\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02847fffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 25\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410284ffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 27\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0284ffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 28\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult ", - "= invalid\nsig = 30420285ffffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 30\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0285ffffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 31\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30450288ffffffffffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 33\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0288ffffffffffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 34\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 303d02ff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 36\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02ff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 37\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d0280691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 39\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab028000c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 40\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 41\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 42\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f0000021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 45\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0500\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042498177303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412500303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0004deadbeef\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30422221498177021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304122202500021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045221e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0004deadbeef021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2222498177021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab22212500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab221f021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0004deadbeef\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045aa00bb00cd00303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043aa02aabb303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30452224aa00bb00cd00021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30432222aa02aabb021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2225aa00bb00cd00021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 60\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2223aa02aabb021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 61\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 62\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30412280021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 64\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2280021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 65\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30412280031c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 67\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2280031d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 68\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 3132333", - "43030\nresult = invalid\nsig = 2e3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 73\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 74\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 75\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3041300102303c1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 76\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb\n\n# tcId = 77\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 78\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 79\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e00\n\n# tcId = 80\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e05000000\n\n# tcId = 81\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e060811220000\n\n# tcId = 82\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000fe02beef\n\n# tcId = 83\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0002beef\n\n# tcId = 84\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f3000021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 85\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e3000\n\n# tcId = 86\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 87\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 301e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab\n\n# tcId = 88\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301f021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302002021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e0000691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f000000c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210281021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30210500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d011c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d031c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d041c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 107\n# ch", - "anging tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303dff1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab011d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab031d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab041d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92abff1d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210200021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30412220020169021b1c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2221020100021cc6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c6b1c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d02c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf922b021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbbae\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b1c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb\n\n# tcId = 124\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021cc6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021eff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 127\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3022090180021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 128\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d01691c723dd6a7f5d11b8c8e8bd08173428bc48a2c3f031caaec3bbce8021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff691c723dd6a7f5d11b8c8e8bd08345fcca52a9b01748ca203383686e021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c96e38dc229580a2ee47371742f7da36054f46611d4da0c9a70206d55021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0096e38dc229580a2ee47371742f7cba0335ad564fe8b735dfcc7c9792021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dfe96e38dc229580a2ee47371742f7e8cbd743b75d3c0fce35513c44318021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d01691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0096e38dc229580a2ee47371742f7da36054f46611d4da0c9a70206d55021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d01c6b899049859a01f5093eab0834104e71ff12bb612ad778fbda8e56b\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021cc6b899049859a01f5093eab08342d7a15e7f4b39eaf3250504f090f1\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021dff394766fb67a65fe0af6c154f7cbe11bbc0c7c488012fb1b59eb344d2\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021dfe394766fb67a65fe0af6c154f7cbefb18e00ed449ed52887042571a95\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d01c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c394766fb67a65fe0af6c154f7cbe11bbc0c7c488012fb1b59eb344d2\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forg", - "eries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invali", - "d\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff0000000", - "00000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 216\n# Edge case for Shamir multiplication\nmsg = 3639313930\nresult = valid\nsig = 303c021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021c221a25eb9cc8dd66fdf156b2f6ab601ab6d9c509247f8de5d2671a96\n\n# tcId = 217\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 303c021c3b3008ed596b7fa276498def40d96b1eb2ffb731a44050ffb732e4e6021c6dbb08c56db737e9392ff4f3a54d8b806d70af226ecf413b3465de55\n\n# tcId = 218\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 303d021d00d1fe269c3061e4b94604e8d612d70887068cc7d5232cd5a9b72923a1021c3c1cbc027d33fb2451d52dce3a828a8c7ecc490a28a94e5e5bb2c4d7\n\n# tcId = 219\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 303d021c04586134cc679295dd93499311c4a8af37cb94dadbae18d8ee279b9b021d00bf9170a1b65b665664cf567d40a995ce252a23d6a9f962b05e364486\n\n# tcId = 220\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 303d021d00c1f51009b935b4773374364ec3eed72a24b70926e0349c77862f3475021c46df3d98f104ba6602f8041a5bf5495", - "fb240e103d1bd17f2fa878923\n\n# tcId = 221\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 303e021d00e822242872f1ecf338a4f773df87b67e9b21bb283acac7d66b26551e021d0094d4e0fc3c6359994a6eaedddd1533f490f72ef85139f8d3b39cf07b\n\n# tcId = 222\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 303c021c7fd45528eb7bfc3710e273c4468f0b50ebf93f94cd0e7a602a4929a6021c46613dd1ffd85df8d71f3498001721fda4982c27a1c291359b05b1b8\n\n# tcId = 223\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 303d021c36d137b69171a486933b50138d1db1842724766afd25c85b0032daf5021d008e700de21f2fc350a34c7cc19054cf371ecab6f7331ccecf68fca0f4\n\n# tcId = 224\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 303e021d00da3b436908f5a82f26bc17a8577ad2a782946e3a7587b01d253b1dd0021d00a6544e38f24e8117370c049b5d1f6712ea14337a94511224df4496a3\n\n# tcId = 225\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 303c021c4314a2bd139d47be3d9fd9ebdd72a06a220219c7596b944178ee6f5f021c0e6f1d2f57c699654e9c705d7b8fa3c1ccb0f939f6368bed246b2e10\n\n# tcId = 226\n# special case hash\nmsg = 36323139353630323031\nresult = valid\nsig = 303d021c6a25643464682679d84970c603927f4a8ca83e7ef9715dd1ed84c28f021d00932b78d165c225a5253e6201c0b1ded0898ba24de44b23233eb78054\n\n# tcId = 227\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 303c021c476aaa58677d9e60477cffd026c43248e2cf3cc21e8fdccb75ceefad021c7799fc7af8f9b929203faf899bb5ca1aecf2492555157282dfde790d\n\n# tcId = 228\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 303d021c63a98614a1421e2ebb278de53b61618bafc757122647affd358c667a021d008edba806e0a7e438ca35f98405a8ad2d5c3e8cc2d5c4384233aef0a5\n\n# tcId = 229\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 303e021d00880b5238a014f8b44655b83c175880eb1e8307899a824ea3e07dbd6d021d00a4724c8649fd74e5bc8d7fe6a9067a1376fb8e08dbdaed68980b0f50\n\n# tcId = 230\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 303e021d00f8743588234634dd9891f4f2f40f4e46b77f97b82dc5dbe234aa6b5d021d0080656e5262bc25e158f3b78f51ae0d6a41cc8cca1aa457221b2eb7fb\n\n# tcId = 231\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 303d021c2a2357e3d8fe34434582be4dabd58b77b388d1d52adcc664f45dece4021d0094be3a369b7c2788df4587ec5bd4163c4cbc40b77de1a85e8bcfb251\n\n# tcId = 232\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 303d021d00b6b0c0aba6c611300ecad8816242c415f183a2bd4d46cd7769033d9b021c7750b24be02f22dc0b656fe4af377413f9453dff99226915dbb6e08f\n\n# tcId = 233\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 303d021d00a5c1a75c2779f3eb83a65e295927cce4288e9d5c2132a4c7ca92526e021c10fe30f0be33a785385137b57d806140a402b9bd3c1df1b57de6da63\n\n# tcId = 234\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 303d021d00b92b5521d1a7abe77e8524dbd3001121cf83c08017e3917bc58b5d1c021c224b113779017f6a522171edf930f1b5d4f5e7dedc6d2d514fd7883c\n\n# tcId = 235\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 303e021d00ebd3ecf3aa64cdcdd171585a141a4a673a8d5de0ca087dfcdf62432e021d00e0f1a0f7b8f5ac4a42632f87156ad1094079393b03f2051a9fd60249\n\n# tcId = 236\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 303d021c6c3854297e1f267b64a28e0cd6148e0fadcf85bc8d5c23947543bcb8021d00aa0594ee11312f5d4767d296e5ca83df68072811f81a8d27e178ca5d\n\n# tcId = 237\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 303c021c785ac8c956d7797ae67498775b3c446c41735eb15f3430b49f6a09f2021c5710879ab83994e809c8d2cbd6f2ac5c205b4b8d6226e98be03e7967\n\n# tcId = 238\n# special case hash\nmsg = 32323332313935383233\nresult = valid\nsig = 303e021d00f1f3d016693125ba73981c8f9a1748e5dce1d9634355f26fa536190e021d00b574e97def60dcd0e9177106483791b2edb4ab0342b9f5ebb957d5b0\n\n# tcId = 239\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 303e021d00e64f3371522cb1a5f0d1511b152b20e01deca0b3284786853cac279a021d00c9a2e5f4ffde22b9d4ed0179ce74fff408ea918dda7685c7980ae61a\n\n# tcId = 240\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 303d021c1f99dd6ef72feeeda6c123baa4fabb126d7dedb64130fae3f4230797021d00e441ec51dca6271b043e95753c4043d7cb4e76fdc13d6aea45fbf243\n\n# tcId = 241\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 303d021d008637a09627c52766bf96f0b6cea6f2ac3eb303001c5f6fe6d628e4ba021c10b66c599455d40077bb865ed43e2c2cc403473baa6d63b16be48c84\n\n# tcId = 242\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 303c021c52a010a23e4f9ebb459bbe9f3057e6c19761fb99d25c9b16b8f007d8021c526dc1f34444de00447ba23c76950f2c159579d548b6335d127ea321\n\n# tcId = 243\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 303d021d00fc49caaada528f3357e5a264f2e7f970ca1b15ca5fee28741d1202ac021c175e884d10d0bfd20b39311ce2c53083da167d1f3dfeb990e59ed628\n\n# tcId = 244\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig = 303d021d00d95d539a85c9edacd4e02ede27b0e0b737099612d166c637c83a9f34021c59936a2b90b7f3f3da83f64dec8e347a3bfa57baadf9acea18c071d8\n\n# tcId = 245\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 303c021c1895e65593d71e5635cce022dda19bd155bb9a7f2e307e5ce9127ade021c121b487c320c544dcdd471d46fcde2ce5dc9d17fda70544c4eab50a2\n\n# tcId = 246\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 303d021d00b5f4c85b13b51a5da81a236f1105937f3d98856d2aeb57101b6b499c021c3be74ae770fa6467f76a742eb9e504a815a4a60e74b38bcaa89f9b06\n\n# tcId = 247\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 303c021c07a57197667a0c40423d4811ff96384c9330467e8a28eaa4c0d519f4021c011062c8694494baaed24ff610e1e4227efb59a163c33fafd40100f9\n\n# tcId = 248\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 303c021b7f718615ba1d0a9d27a8c5a678a6225ffe1233ed8b417c9343b310021d00cf6a87e4496725c6a2612f4034ddf4b31c7435e2fc3a163e92d463ba\n\n# tcId = 249\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 303e021d00ba8f95a4363c493a9f78bb61dbefaa9587d028bb8344420de2b0cf21021d00b3798c2d6e27a2591c2edc18320b78bf11df194b11b3fb498c595232\n\n# tcId = 250\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 303c021c596b74077801db2e889d3b2aaa3990fe180abc152d48528385ca955d021c38bffd416f779843fad389750003eb0708112a4834c554f476a3e0d1\n\n# tcId = 251\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 303d021d008547f62967523a06c9690e5ff66c3f2254cda28f09ffccc222433d39021c3d9ebf664ee551bb7b33157d6c6c5fd456bda3d4ae460215ec1a5f94\n\n# tcId = 252\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 303d021d0090ee3fab9c6ce373a1b35fc135fe878280ee25e58a4bd7529e91b4f0021c6451e7526505b44e88472b46eda3fd2679824dcdfc445e67f35ea382\n\n# tcId = 253\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 303c021c0a530530b6a9238d2d1a3cf468986c87f3b208f61ea0486d53140c17021c5f027a73f31a5cc2bee81ff0019477c542fd782ecde0e551fcd37e93\n\n# tcId = 254\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 303e021d00beab4abd23df5e2acfff07c82e245dfa7d587d0238c2c9ab9c88a96a021d0098c6507635536840edf604f9baae6408ce4d3fbee694db3abd825011\n\n# tcId = 255\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 303d021c3ec8c36335cb98fa07b983c35b7fc256f44a5aa192d6087595145a15021d00c32b7a47ac6271f4593562bbbf91f9e07395a5e4d46970495cf29f05\n\n# tcId = 256\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 303d021d00bd635a741f1f2a1d9ac1698baf5cfc491d5e3f8e15f1cacbe4ffe4dc021c4bb606cf7cc11d0d7d96b83966f42276095ccc445882ed5afddabf1e\n\n# tcId = 257\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 303d021d00812c08622c0a09d949b7628585c4f4f2db4c5591b5da148ff46d5cd4021c2104f9bc9d0079acb3077d2db58f388119500c5322cb9b5389b5c5d7\n\n# tcId = 258\n# special case hash\nmsg = 33323639383937333231\nresult = valid\nsig = 303e021d00fa4e1c8b0006f269c855eb495fa3a113f643fa8b1fef2b08ab145994021d00fe85b8b522c7f9e8943e0f62643395bd1fcdabc892c315d108b75f65\n\n# tcId = 259\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 303e021d008c1d9b7911bacb6b4a09582648b992d46a1832eb006178c0c77fcb10021d00becbe12b99f243766da5bdad07461b9226a8298672b4f1adb35357ef\n\n# tcId = 2", - "60\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 303c021c78850a40530aa258e478e7c547d3a5e4944d3524f1676443e4dfb37d021c687058e1ca478f52a30c9a3f8e2eea9d8c40599cd47ef66b9430d17d\n\n# tcId = 261\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 303c021c066e7268a6abefe1b4b916ca51c3e958e40dc78c3661313e0ed2e77d021c6404d8a332a837f2ab6bd13e3ee4aad1e9307d449e7f9b7d6332030c\n\n# tcId = 262\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 303c021c4eca73709a67c41603ca5af494c8132483ffc2e0bf171b52de5a5e81021c2c79137cd2add3ce3a76792270e347221a3ad786eafc2682b39bcf95\n\n# tcId = 263\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 303d021c0178512f8844984222393a63263e0a009601869e632f07eb7470aa05021d00e32657cded1122cee0a4f66ff50a32da1f05de4c5e217acdf5eb6fe2\n\n# tcId = 264\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 303d021d00e2c7bf1222ca23a56492873c2d3fa6c7030cc166d693142dcea272b6021c715a4c82fda4404217dea6c0bbf3ac24f8faa2b435fbc6d51a32c4a8\n\n# tcId = 265\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 303c021c49886a8c26c91d649cbfecda6ce8d1441e764c66f5d81dceedb6c5ba021c4370d8bcd4f052fac9491d62850b6a6a85d5acc44d9248c3dff30bf2\n\n# tcId = 266\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 303e021d00e1ae225e1aeca40747ff3e7ad1f75eb9bc90d637160a7f58ce12e591021d00b97cbea3a9323110315760b7e2ede496514b30f0eec521ffeb07a634\n\n# tcId = 267\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 303d021d008a93b87b46512544fb9a7af5c41e3aa72e40235ef87ccb7108daae48021c157db617ac697df407af7a11626c52a1af7ef189514da39918c43010\n\n# tcId = 268\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 303e021d00ebdebe6388b9f460fce6d84faa67ded1e864ef09e77ea3ce58a5deff021d00be5052033eb40380c2b1325fe97dcc55841e147a89f02a296b4505ef\n\n# tcId = 269\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 303e021d00e85d0667972d003c82afb9e18b702357119b4f38401a5ebdfcbea88c021d00eb7b3e5268a4ce6280f72d7e9a3d74e5cac50b1c3a5296cdb5a49d82\n\n# tcId = 270\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 303c021c3d243581c0874fd4eb4d80f896c5067429ad455314881951ab5ec6e3021c0ec47aba08ccba88c1a6ddc289f595bda08dc2dd34d12dcefb68094d\n\n# tcId = 271\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 303d021c75c966bbdcef9157d47a134231229f9f5ee8ce458775fc747d4509bd021d00e344fa716e2088d95a55d02a978a416da10f22a5cccf35a2863227cf\n\n# tcId = 272\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 303e021d00cfdf599e986d770b73784d97149f9945fd16d22c302bb796156e7fb4021d00c6409785047b0083f008771b40db8502583208b61c8984671acb0929\n\n# tcId = 273\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 303e021d00c53c4aeec8f2e7a5cc0e885a6031aa1a6c1b7b7fec83b5084cbe291f021d00b0e6d10a8fd86f958c3b0f4662ed8ca0d6eadbc892aac4200fcf8315\n\n# tcId = 274\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 303d021c2386550d6e75350bcc32507bfc9beb9c26d72ff82f671c1f5282e98b021d00a55b8de808c4359fb529b80a80d9fc6eddb5ce08082c3b677c689991\n\n# tcId = 275\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 303d021c1fbd192d955ce02b64a3be5bb21bef22b53a6c6f9576d8f889b09e4e021d00f5a9b673a4ee5aabf1ca8e8289f25b62a3e08b956f7418c03e2d3031\n\n# tcId = 276\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 303d021d00b80ffba451db9fc2194e450bdd43bc0f53a7d0f4a78900c09fb8d9bc021c0124eeeab9035b6c845959e70b04d1e187d554807d6751afabcc1802\n\n# tcId = 277\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 303c021c187fb026ade3ad16dd4b2813e8ebda433cb6cc3af1615bedf486a9e2021c6fbee53fa884d296f34f7719f74919434d1b7090c485eeed2fb8fd6c\n\n# tcId = 278\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 303d021d00e598a16fe12da79e9814f6985c9a9334010f287dc9e38de857ca5fc0021c19e0ed54f0e08ad091a163b4c7b86d0634da2c86a7a8991f5d8706d8\n\n# tcId = 279\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 303d021d00b31a10480e397c8aa46f52a0f2fb5c22ebc0534fba156718b50cf6ea021c602004df4b47a2065130ca3b05f1eb02d0b37b79b04b1eb799408346\n\n# tcId = 280\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 303e021d00bc47e242d19dcc6321913980d73923e430bc6623d219529d586619b6021d0081397dd2f52811b534ed754a937d904f04a7de278fa3bc8926de6946\n\n# tcId = 281\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = 303c021c5be0e0dfb26b1caa88f866504aa8e76f035a82abe00028d962bcfafa021c3c3c1df06026123471bed324ca79c51b28b3d10b1ce877cef21b852d\n\n# tcId = 282\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 303e021d00fe79d0cfe455724792cb5ab0580ad4f2918c1403ec12f0bdd2ce6528021d00f1357cd4afc402994ab868b0163f41701e0f00e561fdd97e0db6f7b9\n\n# tcId = 283\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 303d021c1858c5d857124cd703e7c2f5e99d5025d6d979539c6f50b1d00fbd34021d00d94a5adb6d9c5001162620415541d49334fb929bc86a350ca4591195\n\n# tcId = 284\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 303e021d00e6b2ec967cfa25f57234b9ef1d87c5945502cbbd5831c862f00774d1021d00caea26368bffc8e562b2bd03aa6c9dc41c529659fefe6597fce9cd9c\n\n# tcId = 285\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 303d021d00a59b438b2472074a93a289b33f5b13e604977dd3ab4d744d08e1061b021c699574a17dc8c7298c9321ca78552e5128ea801d056f387ba42f7a09\n\n# tcId = 286\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 303d021c748481709c6882c4a130193834a57f4bc714906211ec6cc12c400dff021d00eec6c9d5a06786f821a8117eec3dc025ed3ac74e39e98a16a4aa285c\n\n# tcId = 287\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 303e021d00bc8991b506997403e123136a9c140a4336364733b0815f40d1dbd5fe021d00819503ea3b4c07fc157f948f6949705d560a881fc1c6af4b7391765c\n\n# tcId = 288\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 303c021c1caece75c8e31bb0c5cceb0842f23683b8557a97036574ea88ceeabd021c645ad3276aaee22b693647f00dce5f91a03b678b789b667cd3b8e751\n\n# tcId = 289\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 303c021c3a7d582068aaecaba945203bc445b3312e5cb40886522987aced68d0021c39b3c612b6743a13bb2ffb83514d690cfcb9a7055e3a993cb0863938\n\n# tcId = 290\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 303e021d00f773c49fd0645716d16e559e22c39101df266cdfa7cb61ce46f85280021d00df6109fd77a241031cf03b376e001d8a3cd2a6b646edbf9e578133f1\n\n# tcId = 291\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 303c021c79cf893f66f7faa5ca08553ea03456107e7bb391a5e51260cedaea84021c32e8e3509468da7216c59975d4f3d5493848a03f864b2332044e68d1\n\n# tcId = 292\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 303d021c025ecd1a7ab765fbfd25a6d7cd3c461e17f465e6958bce9f492b7a5a021d00a1ca95038603d302761e416935acbd6b716a316c9b79c57d4053cb79\n\n# tcId = 293\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 303d021c3d14a4c21ba4dbd338fdd8b15fcdd0a9228f157cfaf2b09dd4f2aa67021d00e1640e8bd2a6110dc18d6f290b7325814710c0dc88b76f127c5e9e21\n\n# tcId = 294\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 303c021c258dce916ef78b9d8a87beaf6edd35bcccc08c5de488586e1b7b749a021c4ff500db4d665c7062179c099b2985a814f99fbfa44a3a709024d589\n\n# tcId = 295\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 303e021d00cecf0aec5357749f357c459575298a3384dc4ac381438ff99acd9993021d00da7adb092a6890e0918c235a62d4a949b0cae5e57856975108fb2b91\n\n# tcId = 296\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 303d021d00d77f2e547fd68d5db314901da1ff7ecaf3d0c17ec047a974a7cec33e021c443a97afdf882272bf0233c8c4a8d23c9352ad89b1770c26240f6650\n\n# tcId = 297\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 303e021d00d5dcf93e6e1b93323ea2642d3405a7423cb04f59c03420193f394886021d00ddd5842e4928ee4b5d77d43d4a4bfc7f991c899727b75fc941b52995\n\n# tcId = 298\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 303d021d00a9bc3ebc6ee34421326711ce29518d02bd403ead806a3e4502efa0ce021c12610b89a61689a8eb6e062d2524278155fe499ffecc0e0d940d48a7\n\n# tcId = 299\n# special case hash\nmsg = 373138363136", - "32313030\nresult = valid\nsig = 303e021d00c703c508784ef71b596dcd61c5b01b45c6c69d2b36a5a3b7701e5976021d00f05444a777204118f3ac2afc92d0212831bf7002158e7c656f4c07db\n\n# tcId = 300\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 303e021d0080674b740b64d383677c049a6f4baeb214f4a6b5933033853e634578021d009b3a804c75ed790e31966bc25730b7428af8c73c65fb503c06c597eb\n\n# tcId = 301\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 303c021c7ed658c30f4a0dcc894c39f9320f59a185509ffee45eac6023577c7c021c47ac94a501806d5adffea9fcf3ccd8cf79f3cc47eca9fe38fc4886b4\n\n# tcId = 302\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 303d021c397f669cc399a91da96c16efd233f6fe60d1b7caa397cc257843b30b021d00f19375fe66eae4738ec9dc5b7ef51cb33d4cb258f36944d37dd245cb\n\n# tcId = 303\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 303c021c537ec369b3f0d891e166f6c74e5d73dd2c4822210c5fe5f978c34072021c0b183c48b5f6e69245cb76e1e2c39663eedfb74ba9538739ac495ff5\n\n# tcId = 304\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 303d021d00d0ed7159cc3a79988f3c279287ca8ed10bb8f02c8b5a6204aead1223021c75ee1e5c00e81899bfa8545edcc64fdf707dae1f61d976d2f0883777\n\n# tcId = 305\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 303e021d00cf43329a9781db8044a920758e58399866fe7748c0f5d6a3bcdcbcbd021d00d9740d2dd716290ad4160345bcd4af03af01c44b610b1e5953199075\n\n# tcId = 306\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 303e021d008ab2e92c8c9143f9d8da3bdb1d935cce3ab60ae99b3ccfe863b15d14021d0088c89302e8a9c591c6ed16b1ae46f966004d0b2685449842e291d742\n\n# tcId = 307\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 303d021c04f60f8450b448198cf7981116de06d4c4888cd26be3a5947092238f021d00cb23fcb33c14f089c2ae030146d68fa65eb9b086fa792f95be8ecf35\n\n# tcId = 308\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 303e021d00f270f7a70a96a0f916c7530c6dea7178e6c087ddbcc60aacd8a7c553021d008b2c378554121365a180ad4edf1a12e566ba55eeabf525356783e603\n\n# tcId = 309\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 303e021d0085ad01b236ca4a5451969242e16165d322428235a2af8fdcd6c4c7b9021d008eb2998c5e0aaf279793caff59a266ca2068d94ebf77bae81fd0fb6a\n\n# tcId = 310\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 303d021d00cffdb8d64b5b84b490ff73d77e51cc7797bf67c5ee0a4999def17230021c3baf4b34e1a35e9606a460b395063a554264a9c43cc302ab5abf473e\n\n# tcId = 311\n# special case hash\nmsg = 33373033393135373035\nresult = valid\nsig = 303c021c66cda58a5a6ddb9476e36dbad5df542be88d7e447bdc3dfe1d9e8b2c021c0d99d387486a964ebab4e29bad583e46a5a200391d1065768a4e35fd\n\n# tcId = 312\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 303c021c3200761902825bd353908accd2be6b482645646971f96dc490706a37021c3ed77899efdbe418370fa7998df3b7c924bed6864535277f805c894f\n\n# tcId = 313\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 303e021d00ba0eff0ee46aa9fca5ab8ad64aee4037931d3ad0b953d404ef9f7bdc021d00afdf21df0dcbe39c2f5fa9ef7e1a2bca87d1213d1eca438929ad8982\n\n# tcId = 314\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 303e021d00a20c6883fc6ec1ca4bb378ac88ed670a742a6284113d5fa3182a1858021d00e0a73b913b94163175d264224cc70736f2fb8e8d58e914b18c921323\n\n# tcId = 315\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 303e021d00f2f4af956b0c5409949d377e9bc68e4f1abef7969b518f8beacf27db021d00df3a7b5993d2393ade70a2cfc1e8671a78ca4fecb56425a661a2d2fc\n\n# tcId = 316\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 303c021c331a1a553494f8524adb4e8a722d558965fb703ae432bf3cbdb255c2021c5ab6e3dee6a2516fc4e0ac88e6dfc81d2bc37c98949cc03e521d389d\n\n# tcId = 317\n# special case hash\nmsg = 33313331323837323737\nresult = valid\nsig = 303e021d00867135558e06e19796ebce8e3555c607a6607d46f7c8da6b8552ffc1021d008e827e8b9a4f74efeec7d7ba5c23428fde0227df55a1efc179a353b1\n\n# tcId = 318\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 303d021c6746903ca095bfd3f6378a70092723483ca190b2392d8b1ad337969f021d00f33bfae0835c23a80ec9f33ce9a9035c192836a0b2fadd347d803f96\n\n# tcId = 319\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 303d021c7fc0d8739ecfe349e506e71203a6e60e628a1bb0c67d5e574cb8831c021d00cf8bb1557152c57550a0fde6571456fa752782f7f92f7bb235dde39f\n\n# tcId = 320\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 303e021d00b4486e3139e0b1542892db3d3f51b0524894e19cb00cd07b03ee9c97021d00ad9728d77a8b7b4fa435b3345847860c332d65d8152aa6503ab18755\n\n# tcId = 321\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 303e021d00afbbdc8e50e801ecbd2e3705079717f4f9d69f3b3d85215aeecb4fbc021d00eceadd4e2cc9cea10b56d16a03fa551fec3eb808bd8d9f0926d14ed3\n\n# tcId = 322\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 303d021c4a762f7d146f9eafff5ad11a6978260c818b801c3488dd60411f5cf6021d009ea77512585620ef2cfae8b8c9d8171229a32197e1949561bb75a049\n\n# tcId = 323\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 303d021c227fe52b579833feee16c287d29273e2256df68aff0b94d2752d877b021d00bd79935e5faa8e9356622fea0135ecf796daf60333d5ab125f71e512\n\n# tcId = 324\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 303e021d00cd5365983eb165db39ba0c66c3a45b2ce1370c9ad14a9aa76dd4633a021d00a8c77ce42ab1c888a6b5d04b71139fd882328622e15e80252e5cf7da\n\n# tcId = 325\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 303c021c54d6d44373f7dfc98455a22cd39a0b320fabc33215216b37365b5a16021c29cc690f2467c02e07bc416ad47204975af8c5c3346973f2b03ded3d\n\n# tcId = 326\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 303c021c2f5048c9ef9f30da7cb3fe4624552200f9e57a46d79db0484a0d9cf2021c06dad3a4682725852869a1a459bec865661e1a38a9e546eeaac7cb84\n\n# tcId = 327\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 303e021d00abbf0a02332fbea779899d31d3abd2d22c9c02d4058ced639bf06c45021d00cce0570f3812e5cfcb23376c554c7fc35dbcfeb623a7958c664ac6a4\n\n# tcId = 328\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 303d021c1c30cb8bc21087b77eb1216ee8629e3676d925f1ae15077cc631da4f021d00ee998157bdefb77d1044e983a6afec7d91a23d95c937fc5c6548c989\n\n# tcId = 329\n# special case hash\nmsg = 31343437383437303635\nresult = valid\nsig = 303c021c43ee11a7ab62e2125e765c2ce5d4f84704183539810512268d87f195021c65897e54025777659ee802b39c6bfd5ccc5706a9d1b38f95c078abaf\n\n# tcId = 330\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 303e021d00a1fe3f4d3f43aaa3dcafa79ed99fbc045c11c352caacd89f0f63847e021d00ca2e37bd2c13b9fb3f8a55b7a67eb034240395abd39fecde75141336\n\n# tcId = 331\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 303e021d00bd290286ca08485ea4137010c67203c2455e7b669d153c6be40087c7021d0097dd7502ba3637f33baea5b2398647ad24c0fe35072bd963149b5aa0\n\n# tcId = 332\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 303e021d00c917269a5a4ce80b7fe54a8bed49326b50527a4d2fb0a3093182b5a5021d00a195ec0e69e3172e854e87dd651b44433fcd7dcbb7bd59515d2afe8e\n\n# tcId = 333\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 303c021c0b7b5aab8364dd4b11001a0b986d5aa4fb61ee720237417a7f63722f021c7f13b411e645e819fed1b925ebe807d9560b44d0ba1b75bd2fbd1294\n\n# tcId = 334\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 303c021c505b974f8ecf07b60ffdbd2b2df9324de92b39476eb763a4c25f126a021c1c36ed1dee772c724205f717c383f49a87a5bc3caa0ef81360f9d800\n\n# tcId = 335\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 303d021c24219e49b98a9b64e56d21c908c870eb88b447d9f1ddb735083d6df2021d00bc4d7644faeff1e134443b2bb3bb2a20e2a4a7c193180626127ce937\n\n# tcId = 336\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 303d021c083246081cf2f8c5e1cd42b60450fc6cac3b0ab03d38bdd271cd7370021d008d117ec32dbf939394499f7dbc2ab77290e9222d6d60ea02ce45c58a\n\n# tcId = 337\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 303c021c24916961dd0d168c2878ca4fd065b81311c03b7f23f8416f4a23b14b021c1e37e3c03b2333b33bbb2ebe05b031042af19315adfdccdfc8d078ee\n\n# tcId = 338\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig", - " = 303e021d008df5468b123b92477a5c57ea86c54c5c9e41d119370dc18922aa8303021d0086bdf06b75f4d49d02c5806926f5d01b1a4f6a8146664a03fa820772\n\n# tcId = 339\n# special case hash\nmsg = 36323135363635313234\nresult = valid\nsig = 303d021d00f65bf16f7ced97b0cdc22b08c62ef811306813134b001bc51140e828021c3a9b7c008cdaf803368df9ee50e274c7a9f9369344d9918e0c08dba9\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 044408e5c95e332ab6c2823a63959391d60a6d69c59eb1f7bd272206b9f5278e901fb4773aeeb2d8255ba4df3cf3db7e0557dbc6134c55f3a6]\n[key.wx = 4408e5c95e332ab6c2823a63959391d60a6d69c59eb1f7bd272206b9]\n[key.wy = 0f5278e901fb4773aeeb2d8255ba4df3cf3db7e0557dbc6134c55f3a6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044408e5c95e332ab6c2823a63959391d60a6d69c59eb1f7bd272206b9f5278e901fb4773aeeb2d8255ba4df3cf3db7e0557dbc6134c55f3a6]\n[sha = SHA-512]\n\n# tcId = 340\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n# tcId = 341\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04315a83008dba00b351c3f9fca0811c3ae1884fa9a2a75e6d5e71f269504bbe6a25be253b582efab4b8b9e61372767a7a3a423c0943127296]\n[key.wx = 315a83008dba00b351c3f9fca0811c3ae1884fa9a2a75e6d5e71f269]\n[key.wy = 504bbe6a25be253b582efab4b8b9e61372767a7a3a423c0943127296]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004315a83008dba00b351c3f9fca0811c3ae1884fa9a2a75e6d5e71f269504bbe6a25be253b582efab4b8b9e61372767a7a3a423c0943127296]\n[sha = SHA-512]\n\n# tcId = 342\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 042f6983b6e9f8ef96c2d981f69be54b06591ed73fe40c8a546b936a7971bf57726c26c811d7625a9d851951c1fffe236b0eb3b896bc4c98ef]\n[key.wx = 2f6983b6e9f8ef96c2d981f69be54b06591ed73fe40c8a546b936a79]\n[key.wy = 71bf57726c26c811d7625a9d851951c1fffe236b0eb3b896bc4c98ef]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042f6983b6e9f8ef96c2d981f69be54b06591ed73fe40c8a546b936a7971bf57726c26c811d7625a9d851951c1fffe236b0eb3b896bc4c98ef]\n[sha = SHA-512]\n\n# tcId = 343\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d1f515971cc9391153569c2befa1f915e2931110757760ebd7e61f8641c3db8beea20b13205389dcc4ba8a6af4d6da2604cacd7184ec9dbc]\n[key.wx = 0d1f515971cc9391153569c2befa1f915e2931110757760ebd7e61f86]\n[key.wy = 41c3db8beea20b13205389dcc4ba8a6af4d6da2604cacd7184ec9dbc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d1f515971cc9391153569c2befa1f915e2931110757760ebd7e61f8641c3db8beea20b13205389dcc4ba8a6af4d6da2604cacd7184ec9dbc]\n[sha = SHA-512]\n\n# tcId = 344\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e8f90a717714f0158d9521f18c14ae8c83bf1eeba115c46cbdabb20b66f50ac13461c02da02edfe4296a1f543dde7b4359f905e04193d3cf]\n[key.wx = 0e8f90a717714f0158d9521f18c14ae8c83bf1eeba115c46cbdabb20b]\n[key.wy = 66f50ac13461c02da02edfe4296a1f543dde7b4359f905e04193d3cf]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e8f90a717714f0158d9521f18c14ae8c83bf1eeba115c46cbdabb20b66f50ac13461c02da02edfe4296a1f543dde7b4359f905e04193d3cf]\n[sha = SHA-512]\n\n# tcId = 345\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020101\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04723bc0c9b7ce6ea784ec075036cede90452c76576bd8fb5be4dc0fb1cf405820d92f48552b551c7b11f49406dc892fd659971ae7f9e74b59]\n[key.wx = 723bc0c9b7ce6ea784ec075036cede90452c76576bd8fb5be4dc0fb1]\n[key.wy = 0cf405820d92f48552b551c7b11f49406dc892fd659971ae7f9e74b59]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004723bc0c9b7ce6ea784ec075036cede90452c76576bd8fb5be4dc0fb1cf405820d92f48552b551c7b11f49406dc892fd659971ae7f9e74b59]\n[sha = SHA-512]\n\n# tcId = 346\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020103\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a0dcce127084f955a4e49a7c86b9b91b05ae7afd6eb07225a6541d88f10a1d4fef93934967bb6c5d8792bbd47ab3abb406899a00b1c91b4a]\n[key.wx = 0a0dcce127084f955a4e49a7c86b9b91b05ae7afd6eb07225a6541d88]\n[key.wy = 0f10a1d4fef93934967bb6c5d8792bbd47ab3abb406899a00b1c91b4a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a0dcce127084f955a4e49a7c86b9b91b05ae7afd6eb07225a6541d88f10a1d4fef93934967bb6c5d8792bbd47ab3abb406899a00b1c91b4a]\n[sha = SHA-512]\n\n# tcId = 347\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020104\n\n# tcId = 348\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e10abc9fe15bcc63f009e161aaee26602415bcb45bc6c99ce7ab2b10fbebff4e4de0dfaaf04594dd603cee80b5d9ab78b6707608a95e574d]\n[key.wx = 0e10abc9fe15bcc63f009e161aaee26602415bcb45bc6c99ce7ab2b10]\n[key.wy = 0fbebff4e4de0dfaaf04594dd603cee80b5d9ab78b6707608a95e574d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e10abc9fe15bcc63f009e161aaee26602415bcb45bc6c99ce7ab2b10fbebff4e4de0dfaaf04594dd603cee80b5d9ab78b6707608a95e574d]\n[sha = SHA-512]\n\n# tcId = 349\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fbfabe6c640856ae5dcdc9e4b706fb3db23ddca46b80b9057ab9e44f6b62d4697977ffe19bf3185083b1ede2161aa5725401a8f57851fc82]\n[key.wx = 0fbfabe6c640856ae5dcdc9e4b706fb3db23ddca46b80b9057ab9e44f]\n[key.wy = 6b62d4697977ffe19bf3185083b1ede2161aa5725401a8f57851fc82]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004fbfabe6c640856ae5dcdc9e4b706fb3db23ddca46b80b9057ab9e44f6b62d4697977ffe19bf3185083b1ede2161aa5725401a8f57851fc82]\n[sha = SHA-512]\n\n# tcId = 350\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0491a85b3c5e90b409f6b8d3bca9117a54a40f4162b388bb9367fd6439f1cedf20ab52eb7154b7ea1f2934a9c8292906e18a0e572002cd2f7c]\n[key.wx = 091a85b3c5e90b409f6b8d3bca9117a54a40f4162b388bb9367fd6439]\n[key.wy = 0f1cedf20ab52eb7154b7ea1f2934a9c8292906e18a0e572002cd2f7c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000491a85b3c5e90b409f6b8d3bca9117a54a40f4162b388bb9367fd6439f1cedf20ab52eb7154b7ea1f2934a9c8292906e18a0e572002cd2f7c]\n[sha = SHA-512]\n\n# tcId = 351\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d1ca7a5c1aa086b2951c1ac14e005f0072fb28383973a05117f9652cce523c05ebe94991c47fecd241d0a07e86c88ab3c620eae792aba3d1]\n[key.wx = 0d1ca7a5c1aa086b2951c1ac14e005f0072fb28383973a05117f9652c]\n[key.wy = 0ce523c05ebe94991c47fecd241d0a07e86c88ab3c620eae792aba3d1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d1ca7a5c1aa086b2951c1ac14e005f0072fb28383973a05117f9652cce523c05ebe94991c47fecd241d0a07e86c88ab3c620eae792aba3d1]\n[sha = SHA-512]\n\n# tcId = 352\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 302d020d1033e67e37b32b445580bf4ef", - "b021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 043565af2a481f9390e71d7642717d0427e02e5e7de8a3c0c1ffd5f33e9474547e0d54dcaae85494c74faa23394a056e41c2839638b8523b72]\n[key.wx = 3565af2a481f9390e71d7642717d0427e02e5e7de8a3c0c1ffd5f33e]\n[key.wy = 09474547e0d54dcaae85494c74faa23394a056e41c2839638b8523b72]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043565af2a481f9390e71d7642717d0427e02e5e7de8a3c0c1ffd5f33e9474547e0d54dcaae85494c74faa23394a056e41c2839638b8523b72]\n[sha = SHA-512]\n\n# tcId = 353\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0429c694790fbd23777cfde434badcb061a326a5534264bcfe193c716c178a943f7bd4fb132565ba602358b13433a5217ac04cc035566c73f8]\n[key.wx = 29c694790fbd23777cfde434badcb061a326a5534264bcfe193c716c]\n[key.wy = 178a943f7bd4fb132565ba602358b13433a5217ac04cc035566c73f8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000429c694790fbd23777cfde434badcb061a326a5534264bcfe193c716c178a943f7bd4fb132565ba602358b13433a5217ac04cc035566c73f8]\n[sha = SHA-512]\n\n# tcId = 354\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048fd43aac8556f4665fd4c13f4e151140f42a395763c5da247a398f979687d24a9fcd6b20a59451c348a6364d0ffaf0ecfe164313db6594ab]\n[key.wx = 08fd43aac8556f4665fd4c13f4e151140f42a395763c5da247a398f97]\n[key.wy = 09687d24a9fcd6b20a59451c348a6364d0ffaf0ecfe164313db6594ab]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fd43aac8556f4665fd4c13f4e151140f42a395763c5da247a398f979687d24a9fcd6b20a59451c348a6364d0ffaf0ecfe164313db6594ab]\n[sha = SHA-512]\n\n# tcId = 355\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c2ae0e357a43f97549a725ae3704449051c96bf3633355c35b6eb7e96a84dfb6d4517d1de46b18786a506178724bf4ae4f9e418c75ab17ef]\n[key.wx = 0c2ae0e357a43f97549a725ae3704449051c96bf3633355c35b6eb7e9]\n[key.wy = 6a84dfb6d4517d1de46b18786a506178724bf4ae4f9e418c75ab17ef]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c2ae0e357a43f97549a725ae3704449051c96bf3633355c35b6eb7e96a84dfb6d4517d1de46b18786a506178724bf4ae4f9e418c75ab17ef]\n[sha = SHA-512]\n\n# tcId = 356\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101\n\n# tcId = 357\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04961617d9855f202fd600b584abe94a46674927cfdc6333c5be56ce7b89b4150d9ccdfbd77e7682ca862c0c3e96d89c918b7d3b7bbb92ff43]\n[key.wx = 0961617d9855f202fd600b584abe94a46674927cfdc6333c5be56ce7b]\n[key.wy = 089b4150d9ccdfbd77e7682ca862c0c3e96d89c918b7d3b7bbb92ff43]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004961617d9855f202fd600b584abe94a46674927cfdc6333c5be56ce7b89b4150d9ccdfbd77e7682ca862c0c3e96d89c918b7d3b7bbb92ff43]\n[sha = SHA-512]\n\n# tcId = 358\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0455b212919cd6886b13cd7a2556430ce442e86942f1bf6e4618ae363e795c664ae960ee1106308b7dba91240ab0c3ef8beb7d0a4d7a102a7f]\n[key.wx = 55b212919cd6886b13cd7a2556430ce442e86942f1bf6e4618ae363e]\n[key.wy = 795c664ae960ee1106308b7dba91240ab0c3ef8beb7d0a4d7a102a7f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000455b212919cd6886b13cd7a2556430ce442e86942f1bf6e4618ae363e795c664ae960ee1106308b7dba91240ab0c3ef8beb7d0a4d7a102a7f]\n[sha = SHA-512]\n\n# tcId = 359\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c43f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c0288a63ce32263f3651198dab801c896fb9308362fc40e35959e14010d00bd1c228cfb6a5faa647387804e34fa1a7f9fcc472c05ea2eeda]\n[key.wx = 0c0288a63ce32263f3651198dab801c896fb9308362fc40e35959e140]\n[key.wy = 10d00bd1c228cfb6a5faa647387804e34fa1a7f9fcc472c05ea2eeda]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c0288a63ce32263f3651198dab801c896fb9308362fc40e35959e14010d00bd1c228cfb6a5faa647387804e34fa1a7f9fcc472c05ea2eeda]\n[sha = SHA-512]\n\n# tcId = 360\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00bc07ff041506dc73a75086a4325211e696eb6b31da8ff5c2c728d38d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 040c8e2cb5f6a903e1cccf3ac2d465f1d0dc3452237fd9e8a4df5d5341d044ca8ceecb54a1b951270971e5ab4eb226116c48c553499d1a4899]\n[key.wx = 0c8e2cb5f6a903e1cccf3ac2d465f1d0dc3452237fd9e8a4df5d5341]\n[key.wy = 0d044ca8ceecb54a1b951270971e5ab4eb226116c48c553499d1a4899]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00040c8e2cb5f6a903e1cccf3ac2d465f1d0dc3452237fd9e8a4df5d5341d044ca8ceecb54a1b951270971e5ab4eb226116c48c553499d1a4899]\n[sha = SHA-512]\n\n# tcId = 361\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041ff6b9901784d88b25527b3702622a2734b83d8a0fed0f740bb784e20e83ee0aa82933dcdc637a3760606a04974c2dc75f12095f8fdaf003]\n[key.wx = 1ff6b9901784d88b25527b3702622a2734b83d8a0fed0f740bb784e2]\n[key.wy = 0e83ee0aa82933dcdc637a3760606a04974c2dc75f12095f8fdaf003]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041ff6b9901784d88b25527b3702622a2734b83d8a0fed0f740bb784e20e83ee0aa82933dcdc637a3760606a04974c2dc75f12095f8fdaf003]\n[sha = SHA-512]\n\n# tcId = 362\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad40d3e1b8392e81c29\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b21faca17b68058752d943a81f853b800562df8b2172e150953c624201c2c0f5ed3b342956cacd26f9097562d0fb0a3ddab91c5ae7e90c01]\n[key.wx = 0b21faca17b68058752d943a81f853b800562df8b2172e150953c6242]\n[key.wy = 1c2c0f5ed3b342956cacd26f9097562d0fb0a3ddab91c5ae7e90c01]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b21faca17b68058752d943a81f853b800562df8b2172e150953c624201c2c0f5ed3b342956cacd26f9097562d0fb0a3ddab91c5ae7e90c01]\n[sha = SHA-512]\n\n# tcId = 363\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00c152aafea3a8612ec83a7dc9448e6600ae6a772d75ad2caf19f9390e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f49278419e4f506889b0168b1fce1f87ee5b61efa0e73c7833eeb29cb1b334f81be8f05f3b2e98d38b030cff57947b96135ec4465c5e53f3]\n[key.wx = 0f49278419e4f506889b0168b1fce1f87ee5b61efa0e73c7833eeb29c]\n[key.wy = 0b1b334f81be8f05f3b2e98d38b030cff57947b96135ec4465c5e53f3]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f49278419e4f506889b0168b1fce1f87ee5b61efa0e73c7833eeb29cb1b334f81be8f05f3b2e98d38b030cff57947b96135ec4465c5e53f3]\n[sha = SHA-512]\n\n# tcId = 364\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4e158ef86cc53054f1635c74e65508206048929315e097a59f1519e2\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0475c6a886e2", - "2bc04b996d4a19575ce0c6686b449b6e05ef1301bd8ba233ab29f65df2d4144da2b21e90359a064765c95e325bb7e54ca28e40]\n[key.wx = 75c6a886e22bc04b996d4a19575ce0c6686b449b6e05ef1301bd8ba2]\n[key.wy = 33ab29f65df2d4144da2b21e90359a064765c95e325bb7e54ca28e40]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000475c6a886e22bc04b996d4a19575ce0c6686b449b6e05ef1301bd8ba233ab29f65df2d4144da2b21e90359a064765c95e325bb7e54ca28e40]\n[sha = SHA-512]\n\n# tcId = 365\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00e2ac0b24512e84f6fb015620d689d30d14736cf00c18838753c3814f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f554014cc14f319c18f5fa6cd739249075ff35ba3b2afdab5329ef0fd2c501f25a704addbd85c0e022748956e5998d99c387fbfd343c89e0]\n[key.wx = 0f554014cc14f319c18f5fa6cd739249075ff35ba3b2afdab5329ef0f]\n[key.wy = 0d2c501f25a704addbd85c0e022748956e5998d99c387fbfd343c89e0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f554014cc14f319c18f5fa6cd739249075ff35ba3b2afdab5329ef0fd2c501f25a704addbd85c0e022748956e5998d99c387fbfd343c89e0]\n[sha = SHA-512]\n\n# tcId = 366\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c5221f3c2de0c6fbc07ff04150679b57f57512b814f413aebafe731\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bcfa8db704aca56feb23bd4b4049213233aa652045a0a81a2e0da64c091b359f7be7ae00a0e9777d9510f847430b5dfda878e66d4fb0d62f]\n[key.wx = 0bcfa8db704aca56feb23bd4b4049213233aa652045a0a81a2e0da64c]\n[key.wy = 091b359f7be7ae00a0e9777d9510f847430b5dfda878e66d4fb0d62f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bcfa8db704aca56feb23bd4b4049213233aa652045a0a81a2e0da64c091b359f7be7ae00a0e9777d9510f847430b5dfda878e66d4fb0d62f]\n[sha = SHA-512]\n\n# tcId = 367\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c221f3c2de0c6fbc07ff041506dc71b5a312063d87beb4c30c289210f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 049fd4d828ae98056be58fa69eaf9cde98ca0ed9b415d6463fa1864d9fb2a5e41f10e8789450217daafd259f204aed87b0e26100f43f7c5bad]\n[key.wx = 09fd4d828ae98056be58fa69eaf9cde98ca0ed9b415d6463fa1864d9f]\n[key.wy = 0b2a5e41f10e8789450217daafd259f204aed87b0e26100f43f7c5bad]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049fd4d828ae98056be58fa69eaf9cde98ca0ed9b415d6463fa1864d9fb2a5e41f10e8789450217daafd259f204aed87b0e26100f43f7c5bad]\n[sha = SHA-512]\n\n# tcId = 368\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c443e785bc18df780ffe082a0db8e36b46240c7b0f7d698618512421e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 046123a33969f2e036fc27885f55755d391cb0c2d3fafb0c4056c1995da03bb490047e88fe7e608912a6205b65f950a8a0a360362d3339e62c]\n[key.wx = 6123a33969f2e036fc27885f55755d391cb0c2d3fafb0c4056c1995d]\n[key.wy = 0a03bb490047e88fe7e608912a6205b65f950a8a0a360362d3339e62c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00046123a33969f2e036fc27885f55755d391cb0c2d3fafb0c4056c1995da03bb490047e88fe7e608912a6205b65f950a8a0a360362d3339e62c]\n[sha = SHA-512]\n\n# tcId = 369\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00c2de0c6fbc07ff041506dc73a74fd50136878b7e1341521b2f880b19\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a10b7aa7785b2f2791b1d4c43e127aab5669612d740b38abaa0d306ec178f216fad379ad80baa0eac57bf9a56d446d685576371b74762382]\n[key.wx = 0a10b7aa7785b2f2791b1d4c43e127aab5669612d740b38abaa0d306e]\n[key.wy = 0c178f216fad379ad80baa0eac57bf9a56d446d685576371b74762382]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a10b7aa7785b2f2791b1d4c43e127aab5669612d740b38abaa0d306ec178f216fad379ad80baa0eac57bf9a56d446d685576371b74762382]\n[sha = SHA-512]\n\n# tcId = 370\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009f56aa80ae2bcf689be2c11b5db7e3a28983b4a7590692edcf5f8db6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e012c23c6867e9553313d0179e9db953de7c368cdb59abe05f1c52bad352a57bb59c45159352c114eeb696ec3b79caa835ef5c2ae71ddcfa]\n[key.wx = 0e012c23c6867e9553313d0179e9db953de7c368cdb59abe05f1c52ba]\n[key.wy = 0d352a57bb59c45159352c114eeb696ec3b79caa835ef5c2ae71ddcfa]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e012c23c6867e9553313d0179e9db953de7c368cdb59abe05f1c52bad352a57bb59c45159352c114eeb696ec3b79caa835ef5c2ae71ddcfa]\n[sha = SHA-512]\n\n# tcId = 371\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3ead55015c579ed137c58236bb70b0a2324e79109e2ffc964262f12f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b9ccd7f0f3594954aa729bda4be883e107e7f1226465b64c2ca7105789829d787016c5c118d3ba3317a2da0a0daaf56d3004c10962333a9f]\n[key.wx = 0b9ccd7f0f3594954aa729bda4be883e107e7f1226465b64c2ca71057]\n[key.wy = 089829d787016c5c118d3ba3317a2da0a0daaf56d3004c10962333a9f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b9ccd7f0f3594954aa729bda4be883e107e7f1226465b64c2ca7105789829d787016c5c118d3ba3317a2da0a0daaf56d3004c10962333a9f]\n[sha = SHA-512]\n\n# tcId = 372\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00de03ff820a836e39d3a8435219289444bbd22db7f7368f8411c27ee5\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04321a17de024fe89c1864e128b9e0af3e6b48800a70d6e802b8b6dffeb1a8ae96911ddbdeb83948a992b1b0fe316679c64814b6a45ec56fe9]\n[key.wx = 321a17de024fe89c1864e128b9e0af3e6b48800a70d6e802b8b6dffe]\n[key.wy = 0b1a8ae96911ddbdeb83948a992b1b0fe316679c64814b6a45ec56fe9]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004321a17de024fe89c1864e128b9e0af3e6b48800a70d6e802b8b6dffeb1a8ae96911ddbdeb83948a992b1b0fe316679c64814b6a45ec56fe9]\n[sha = SHA-512]\n\n# tcId = 373\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00f15605922897427b7d80ab106b4474d7fa962e970ffad666580fd5c6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0408842f19b114d16be27bb4b6971377ed6b1d0915e133a9ebf01674ee4c97738b6912ff71553c4a747c782eddd9d2a20fbeae38864d217859]\n[key.wx = 08842f19b114d16be27bb4b6971377ed6b1d0915e133a9ebf01674ee]\n[key.wy = 4c97738b6912ff71553c4a747c782eddd9d2a20fbeae38864d217859]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000408842f19b114d16be27bb4b6971377ed6b1d0915e133a9ebf01674ee4c97738b6912ff71553c4a747c782eddd9d2a20fbeae38864d217859]\n[sha = SHA-512]\n\n# tcId = 374\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0484d651596fd2348f1bb5c8ae9d22c8b21c4f7509240b609abad5cc243196b67b4cfaffaf0dce25ab00bfeaa1a64821332efa6dedd87cc9e7]\n[key.wx = 084d651596fd2348f1bb5c8ae9d22c8b21c4f7509240b609abad5cc24]\n[key.wy = 3196b67b4cfaffaf0dce25ab00bfeaa1a64821332efa6dedd87cc9e7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000484d651596fd2348f1bb5c8ae9d22c8b21c4f7509240b609abad5cc243196b67b4cfaffaf0dce25ab00bfeaa1a64821332efa6dedd87cc9e7]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048fbe39e75bc4fd8a15e4b52e4bbebe2047d54385a7117e17a4d0b2b207abdb40824538e5787c718d6548583f523f6b5bbfa239a7f622c8a0]\n[key.wx = 08fbe39e75bc4fd8a15e4b52e4bbebe2047d54385a71", - "17e17a4d0b2b2]\n[key.wy = 7abdb40824538e5787c718d6548583f523f6b5bbfa239a7f622c8a0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fbe39e75bc4fd8a15e4b52e4bbebe2047d54385a7117e17a4d0b2b207abdb40824538e5787c718d6548583f523f6b5bbfa239a7f622c8a0]\n[sha = SHA-512]\n\n# tcId = 376\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c336b340bc99d46c2c52df5428b6a0c4eb2da76c423530f767cc7652f3ab9981bd05d2955123935a379cbb2d4361a17d19878673e1e17dcc]\n[key.wx = 0c336b340bc99d46c2c52df5428b6a0c4eb2da76c423530f767cc7652]\n[key.wy = 0f3ab9981bd05d2955123935a379cbb2d4361a17d19878673e1e17dcc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c336b340bc99d46c2c52df5428b6a0c4eb2da76c423530f767cc7652f3ab9981bd05d2955123935a379cbb2d4361a17d19878673e1e17dcc]\n[sha = SHA-512]\n\n# tcId = 377\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04816fdcf370827e3f7771564e1aa73ed73e62556deadad89711cef663edcda0ea42235f4c9a8c13f787351ffe5ceb32f15fc0ccb24e0a409c]\n[key.wx = 0816fdcf370827e3f7771564e1aa73ed73e62556deadad89711cef663]\n[key.wy = 0edcda0ea42235f4c9a8c13f787351ffe5ceb32f15fc0ccb24e0a409c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004816fdcf370827e3f7771564e1aa73ed73e62556deadad89711cef663edcda0ea42235f4c9a8c13f787351ffe5ceb32f15fc0ccb24e0a409c]\n[sha = SHA-512]\n\n# tcId = 378\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 046429d2b7b07ab0d5ea352902df0efc036d7270a0a6ed39f635d04f394f7932883bc45394151324aab26ae29bbd7385fa6a42c3db84432897]\n[key.wx = 6429d2b7b07ab0d5ea352902df0efc036d7270a0a6ed39f635d04f39]\n[key.wy = 4f7932883bc45394151324aab26ae29bbd7385fa6a42c3db84432897]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00046429d2b7b07ab0d5ea352902df0efc036d7270a0a6ed39f635d04f394f7932883bc45394151324aab26ae29bbd7385fa6a42c3db84432897]\n[sha = SHA-512]\n\n# tcId = 379\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04288f38fd77dd1603ff0275cb11cba280ae3408affa6a760f396f1a1ec84ca6fd772c6ac6cc523cc72c2e7e95eb6a36a66b5cca5a58ba078a]\n[key.wx = 288f38fd77dd1603ff0275cb11cba280ae3408affa6a760f396f1a1e]\n[key.wy = 0c84ca6fd772c6ac6cc523cc72c2e7e95eb6a36a66b5cca5a58ba078a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004288f38fd77dd1603ff0275cb11cba280ae3408affa6a760f396f1a1ec84ca6fd772c6ac6cc523cc72c2e7e95eb6a36a66b5cca5a58ba078a]\n[sha = SHA-512]\n\n# tcId = 380\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c769c138f9d71ffff113273b71a4afde4f9996a1c4be658a3903cf7f430e512b868b37bb96bc17a09b0ab01b262f2e23f34f00418f6b63d6]\n[key.wx = 0c769c138f9d71ffff113273b71a4afde4f9996a1c4be658a3903cf7f]\n[key.wy = 430e512b868b37bb96bc17a09b0ab01b262f2e23f34f00418f6b63d6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c769c138f9d71ffff113273b71a4afde4f9996a1c4be658a3903cf7f430e512b868b37bb96bc17a09b0ab01b262f2e23f34f00418f6b63d6]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0475f007c11b93e6f46e9a815cb765990a8305d3ad8d22c76fe6b257cc71b5c1951b5d464c66df7c290cf0a4f156bbf52f1e41a79dc63abce5]\n[key.wx = 75f007c11b93e6f46e9a815cb765990a8305d3ad8d22c76fe6b257cc]\n[key.wy = 71b5c1951b5d464c66df7c290cf0a4f156bbf52f1e41a79dc63abce5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000475f007c11b93e6f46e9a815cb765990a8305d3ad8d22c76fe6b257cc71b5c1951b5d464c66df7c290cf0a4f156bbf52f1e41a79dc63abce5]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 041255fb94a0f20e6faa2505c394cc3c39f07def4107127dffc4dacb6eea73c1044544a1496560bd1b049ff615e68ae0d483220327569884e1]\n[key.wx = 1255fb94a0f20e6faa2505c394cc3c39f07def4107127dffc4dacb6e]\n[key.wy = 0ea73c1044544a1496560bd1b049ff615e68ae0d483220327569884e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041255fb94a0f20e6faa2505c394cc3c39f07def4107127dffc4dacb6eea73c1044544a1496560bd1b049ff615e68ae0d483220327569884e1]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f656a632a0804cf688446b261208f793373c5ff4454bd1e0a882113f30a25d6f586e02dd4dcbf73d96af3e483b7acb5f8f4c06450dec1982]\n[key.wx = 0f656a632a0804cf688446b261208f793373c5ff4454bd1e0a882113f]\n[key.wy = 30a25d6f586e02dd4dcbf73d96af3e483b7acb5f8f4c06450dec1982]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f656a632a0804cf688446b261208f793373c5ff4454bd1e0a882113f30a25d6f586e02dd4dcbf73d96af3e483b7acb5f8f4c06450dec1982]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3f074d20e1da7232d279461732bc1bae0c5416ab9d696308622e7ffe8]\n[key.wx = 08fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3]\n[key.wy = 0f074d20e1da7232d279461732bc1bae0c5416ab9d696308622e7ffe8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3f074d20e1da7232d279461732bc1bae0c5416ab9d696308622e7ffe8]\n[sha = SHA-512]\n\n# tcId = 385\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 303e021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021d00ec0ce3fa725c1027475a5f5bf4ee980de61c3b4875afe8b654b24ee2\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a30f8b2df1e258dcd2d86b9e8cd43e451e3abe95462969cf79dd180019]\n[key.wx = 08fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3]\n[key.wy = 0f8b2df1e258dcd2d86b9e8cd43e451e3abe95462969cf79dd180019]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a30f8b2df1e258dcd2d86b9e8cd43e451e3abe95462969cf79dd180019]\n[sha = SHA-512]\n\n# tcId = 386\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021d00ec0ce3fa725c1027475a5f5bf4ee980de61c3b4875afe8b654b24ee2\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp224r1]\n[key.key", - "Size = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e5462d3a838d4a14de96a7b0b1071eb622ae6e71ede8f95ff01c2121368e3a90d8584e194616d3211a7541f6a0960339cab28e8bfd6b1dfd]\n[key.wx = 0e5462d3a838d4a14de96a7b0b1071eb622ae6e71ede8f95ff01c2121]\n[key.wy = 368e3a90d8584e194616d3211a7541f6a0960339cab28e8bfd6b1dfd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e5462d3a838d4a14de96a7b0b1071eb622ae6e71ede8f95ff01c2121368e3a90d8584e194616d3211a7541f6a0960339cab28e8bfd6b1dfd]\n[sha = SHA-512]\n\n# tcId = 387\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 045d97670c1f121f7f1ba541505609f20143b312a7bb49d376690e1831c1b4567141a7b534e21bd2f706ae034169ab9c3f8536147904de8c5f]\n[key.wx = 5d97670c1f121f7f1ba541505609f20143b312a7bb49d376690e1831]\n[key.wy = 0c1b4567141a7b534e21bd2f706ae034169ab9c3f8536147904de8c5f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045d97670c1f121f7f1ba541505609f20143b312a7bb49d376690e1831c1b4567141a7b534e21bd2f706ae034169ab9c3f8536147904de8c5f]\n[sha = SHA-512]\n\n# tcId = 388\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d2675278da2d7daa8373dd63b7aa46cb14766571c2d8098b83a102a5699b572d4b951497418a376930022d48fe59966b158fa08340e24b98]\n[key.wx = 0d2675278da2d7daa8373dd63b7aa46cb14766571c2d8098b83a102a5]\n[key.wy = 699b572d4b951497418a376930022d48fe59966b158fa08340e24b98]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d2675278da2d7daa8373dd63b7aa46cb14766571c2d8098b83a102a5699b572d4b951497418a376930022d48fe59966b158fa08340e24b98]\n[sha = SHA-512]\n\n# tcId = 389\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 045a5cd1162388348734dae20e2235ae2c464adef0a196f9aaf02482ca2ae94e8b9a024375036429b632ab485e02c5a9665b289b8a47bade8f]\n[key.wx = 5a5cd1162388348734dae20e2235ae2c464adef0a196f9aaf02482ca]\n[key.wy = 2ae94e8b9a024375036429b632ab485e02c5a9665b289b8a47bade8f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045a5cd1162388348734dae20e2235ae2c464adef0a196f9aaf02482ca2ae94e8b9a024375036429b632ab485e02c5a9665b289b8a47bade8f]\n[sha = SHA-512]\n\n# tcId = 390\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04cacd93eb11a821de3d882bab7411e7c77f23c08da174189cc987dc41716fe378ab842161bc16def6e037d4ba9d30d8cb41ad30cf0656e50b]\n[key.wx = 0cacd93eb11a821de3d882bab7411e7c77f23c08da174189cc987dc41]\n[key.wy = 716fe378ab842161bc16def6e037d4ba9d30d8cb41ad30cf0656e50b]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004cacd93eb11a821de3d882bab7411e7c77f23c08da174189cc987dc41716fe378ab842161bc16def6e037d4ba9d30d8cb41ad30cf0656e50b]\n[sha = SHA-512]\n\n# tcId = 391\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04cf46960060453e55577f1bee6a9c4709e7cdcba45ca8020bb3536931ea4ec33309213864a1318aee0a86d8b6f0c1b9741cd6bd5dea4f4066]\n[key.wx = 0cf46960060453e55577f1bee6a9c4709e7cdcba45ca8020bb3536931]\n[key.wy = 0ea4ec33309213864a1318aee0a86d8b6f0c1b9741cd6bd5dea4f4066]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004cf46960060453e55577f1bee6a9c4709e7cdcba45ca8020bb3536931ea4ec33309213864a1318aee0a86d8b6f0c1b9741cd6bd5dea4f4066]\n[sha = SHA-512]\n\n# tcId = 392\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0462f4eaf3797bdc3d5d8cfaa07b5af7060e131b183ca4eded4819e561bff3eadd7b55db2dc01bd20569e6c47c9212f9b2d6793795b51e4f6c]\n[key.wx = 62f4eaf3797bdc3d5d8cfaa07b5af7060e131b183ca4eded4819e561]\n[key.wy = 0bff3eadd7b55db2dc01bd20569e6c47c9212f9b2d6793795b51e4f6c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000462f4eaf3797bdc3d5d8cfaa07b5af7060e131b183ca4eded4819e561bff3eadd7b55db2dc01bd20569e6c47c9212f9b2d6793795b51e4f6c]\n[sha = SHA-512]\n\n# tcId = 393\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c4a4bf5ae0138587f50ab7a2c336a430527a86f59f9765c2f3f5488df9419bf9df5f121de3a32db17b49c72b606b2be5ce56acb565cc12b7]\n[key.wx = 0c4a4bf5ae0138587f50ab7a2c336a430527a86f59f9765c2f3f5488d]\n[key.wy = 0f9419bf9df5f121de3a32db17b49c72b606b2be5ce56acb565cc12b7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c4a4bf5ae0138587f50ab7a2c336a430527a86f59f9765c2f3f5488df9419bf9df5f121de3a32db17b49c72b606b2be5ce56acb565cc12b7]\n[sha = SHA-512]\n\n# tcId = 394\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e7cb5ae54dbe619ab5069f14566236b3c6b0b44f1c4c531e66d89b3e64be7fdc18789629dfddf7158f8ff27abd553bfac3f7c874bccdc31b]\n[key.wx = 0e7cb5ae54dbe619ab5069f14566236b3c6b0b44f1c4c531e66d89b3e]\n[key.wy = 64be7fdc18789629dfddf7158f8ff27abd553bfac3f7c874bccdc31b]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e7cb5ae54dbe619ab5069f14566236b3c6b0b44f1c4c531e66d89b3e64be7fdc18789629dfddf7158f8ff27abd553bfac3f7c874bccdc31b]\n[sha = SHA-512]\n\n# tcId = 395\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0430db5d8279319cf5a3b6768a0c5e5c84752f6314f735d63f6c5650cdd32fb54f74d4a5088e6774a13201683642790d2e69e55e4f47612934]\n[key.wx = 30db5d8279319cf5a3b6768a0c5e5c84752f6314f735d63f6c5650cd]\n[key.wy = 0d32fb54f74d4a5088e6774a13201683642790d2e69e55e4f47612934]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000430db5d8279319cf5a3b6768a0c5e5c84752f6314f735d63f6c5650cdd32fb54f74d4a5088e6774a13201683642790d2e69e55e4f47612934]\n[sha = SHA-512]\n\n# tcId = 396\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 047db27da4d67a2de0c78815809719bdf6976332c67ef0f3827df4adc22ab37aec2eed0d5e67acfd6a195f21032d9af71ce73e120fdda29f1a]\n[key.wx = 7db27da4d67a2de0c78815809719bdf6976332c67ef0f3827df4adc2]\n[key.wy = 2ab37aec2eed0d5e67acfd6a195f21032d9af71ce73e120fdda29f1a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047db27da4d67a2de0c78815809719bdf6976332c67ef0f3827df4adc22ab37aec2eed0d5e67acfd6a195f21032d9af71ce73e120fdda29f1a]\n[sha = SHA-512]\n\n# tcId = 397\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[k", - "ey.type = ECPublicKey]\n[key.uncompressed = 04d1c19d46b517bb3bd7bdf074ff975c0dbd2bde10d1ad217e58ebc8c55ac898c040a185804ddb032b48103d6c8d12043d3a4fec93aba7a6d7]\n[key.wx = 0d1c19d46b517bb3bd7bdf074ff975c0dbd2bde10d1ad217e58ebc8c5]\n[key.wy = 5ac898c040a185804ddb032b48103d6c8d12043d3a4fec93aba7a6d7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d1c19d46b517bb3bd7bdf074ff975c0dbd2bde10d1ad217e58ebc8c55ac898c040a185804ddb032b48103d6c8d12043d3a4fec93aba7a6d7]\n[sha = SHA-512]\n\n# tcId = 398\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d95ac96ae9dbfb80911862e00a4cadbcb2359f499b53be007f0711c093d3da931acbb9242800dc521695b4f19ff2dffc3613f40bdb15c3cd]\n[key.wx = 0d95ac96ae9dbfb80911862e00a4cadbcb2359f499b53be007f0711c0]\n[key.wy = 093d3da931acbb9242800dc521695b4f19ff2dffc3613f40bdb15c3cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d95ac96ae9dbfb80911862e00a4cadbcb2359f499b53be007f0711c093d3da931acbb9242800dc521695b4f19ff2dffc3613f40bdb15c3cd]\n[sha = SHA-512]\n\n# tcId = 399\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 0bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[sha = SHA-512]\n\n# tcId = 400\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c43f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 401\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bc07ff041506dc73a75086a4325211e696eb6b31da8ff5c2c728d38d021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[sha = SHA-512]\n\n# tcId = 402\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c43f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 403\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bc07ff041506dc73a75086a4325211e696eb6b31da8ff5c2c728d38d021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]\n[key.wy = 0ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[sha = SHA-512]\n\n# tcId = 404\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 303e021d00f72915d6d916014279616186869a01228fcd9f1b4078353018b399ab021d00b67f2b91eeeb910381f5b461a4a39c642aea4792013d4eb63da1832b\n\n# tcId = 405\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 303e021d00a5d179c336ccdc760dfddd913cdf8ea468d0f4686f7b2d3825698ed7021d00a77f12060a4d1b94b0d1c443eae3ad6e21b7eacfdf6fbf39a2b29658\n\n# tcId = 406\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b7c65dce56abe24fb4592ece5ac1e6ee8353431f7452409add736884021d00e5fe5db7988931026b937dc4ef983fe446ca134d29b94ac777cde317\n\n# tcId = 407\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 303d021c05c563d3a4bad874e4610adfa57777a59f995bfa06ef97bf125a4988021d0097ed68f546cf4bb4998524c18356f3af162d2bf2744be93357bc4b4b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[key.wx = 0aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]\n[key.wy = 08a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[sha = SHA-512]\n\n# tcId = 408\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00c7a6f358b7d93815189ae5d2c3ab4d4e05f43176a52dd4fc5b48a34a021d00a2458512bb8dbe6f1bd6eb01d2d77d5624e8547bf87d85fc731c0c86\n\n# tcId = 409\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c5f56ca587d16664a20dad13df85a475978e5cee81a8d0f49faaf6158021d00b64ef59d79461fe1a09a5864907435f70bd75f183afb11903f560b7c\n\n# tcId = 410\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00dd94f5b56e9947d007e7c8efd894a5c882f1d0b5dd56c32b5b266521021d00fbc883741bd27c59958ae17ba6e4a41ad1edeca9a3ba31c8f233b5ac\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 0bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-512]\n\n# tcId = 411\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d008071e6682c6e8a32706dc7e411503946546b31fff27dcce188ae389f021d00dc396c797d44edf794432d1da091f8c762974d8ce1f06e08ca013622\n\n# tcId = 412\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c791624e5f234b8950d509d0b456ef6fa778b19dccd609d496b62a211021c6c51e846fa53d03d42f798e6bb90954f9a48c1794b47e84ac97b460a\n\n# tcId = 413\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021b34befa1d25b756ce76b383a6e8753741c12a59266c2c7921ff6e8b021d00bc44e3823e4d807cbc92fa786a89e62a4b217b5fb0c0f1865d4a7e43\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 0eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-512]\n\n# tcId = 414\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c224a38e733ebd3fac274ecc50ecef2e7c3189be2b9d093a8dcc6fa3a021c134fa5a4f923d296b3c6dd4683d249ccf0ad272890e4149c9a0d7415\n\n# tcId = 415\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c338d07d990879ad844e24c1788e362269d8aca70500357d385768227021d00f745cc4ebaaf1cd42830026a66e5b95564cdbee5edf853", - "bb2cc91259\n\n# tcId = 416\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c689fce4b33d8212a663640a1ae0efaa7a7d7711beba719374fe634ee021c04bd9981fa52293063076f0fd70fc31875d580ef94f020d2f95440e0\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 0ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-512]\n\n# tcId = 417\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c2a4287e01510e7fb5fed2e1ccc3f2a6929cf7d03850e49d7ae8a504a021c355c3915f3fa9637dc8001438a8c04e15d14934cabd430feb0cb5ba5\n\n# tcId = 418\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00b5bf795a38adb052b401468ffcab81103d2d9fca2e15b8d08ab98ce8021c5ec0d2c6aec71888c941af324c7272bec192abb292f9df82a24e8a41\n\n# tcId = 419\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c100ed07f467133bf10917f7a15ab2bfda519bdbc2653b95955e22211021d00b38a081f7c2e2b775d1da868d0381c09ba1559c9613b5be7159363ad\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-512]\n\n# tcId = 420\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c54e6add8ac910e52c6228fe3980d8f586218334d8d859ba9a3329917021c5836cc79ec88519eab4a6b2614c501628c9fee32fbafd93e32158409\n\n# tcId = 421\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1230d5409f379584b4d548b7bccba64baf81d512a9f2e6398c4e3a66021c1937a298f8cbdfa85b8e6fcf0a12be4966d80270cade85a0c37ee6f3\n\n# tcId = 422\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00862f43b044fb32adb45e00378ba083ae761c84452054f17b1341bf5b021d0095d8d8e5e3a6cc2b0a06c792252ca11a642257721831578520f96b9e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 0ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-512]\n\n# tcId = 423\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00cb5cabb1ca01b847a6bc70558d1e5d3a204d1741bbe800f4b159af35021c3580cc85f218394130bddf1c4eac04fe96f59f14fb436686950398be\n\n# tcId = 424\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00c9d83dc04cf4ee89c405045d0fd1d704f627ca5bbe350f40b826bbc1021c74fedc9e55045e9759f2124460fdfb991dc620cfee6effc0b4adaa9e\n\n# tcId = 425\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c46dd65b6e7f10c0841841b01033a5befd3a0e78c85f1f390bb3cdf25021d00f33acea3d47cf0dd5273735b004104f6512ed641052509422c0325a7\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 0f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 0de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-512]\n\n# tcId = 426\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ddb4a7e400a1e98118f474722da3f421f65a76eec61f4f7b699faf07021d00db80cba199859cdfe916d6ab3deb91d76aaf0ed554c8f9ed7e5aa59d\n\n# tcId = 427\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c4c260b546280604e4c80384721c9e803ef704e7fb70168e6730fc1f3021d00a8aceae219ac25c9f04231b4e0c171413db1d26df1c1e8430062eb2b\n\n# tcId = 428\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00f4098d2c0240e78fceabb0183df0b39e7ad3e7f5d6da1587fa09853c021d00d42412b2abaa614c95eb11f9b9346282ce3a1c93aac35ce7aa372f4a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 0ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-512]\n\n# tcId = 429\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c48ddc497f9a4732c677e46c0e2bdabec54fc9d27e46ab595056db4d9021d00b8219ebbfaebc2fe4311efab0c35d4392751351bcc1971e8d01941e4\n\n# tcId = 430\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e1abaf51d27a6d7d4c9b28078325cac2d7ce3d5403916c68903760b7021c2c45a99e2770f782fee5ca1d713eaecf07e62d53c64b7cf93de9900d\n\n# tcId = 431\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00868cd127c99e1149f7fc8d878cdfa986b62e99addea281149611ff15021c16e5953820135b7d462ce5434ef85920e973eec9e4d14d7cb3cc2a3f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-512]\n\n# tcId = 432\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00a375929718ec4e6ada9c9370c51df6bdaee7ebab2a70675d42a0b6b3021d009eaf4802efaf7ca082ffbf5ed774af43792d9b3fd711c6b1c36112ff\n\n# tcId = 433\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00d97b32f3bf8bc11ec2672dd6320418beeed99527a63fe4c52199ec61021c68dd9006b03319ccbe651d0bdaf84c63356f03cb007a6865ee3e0206\n\n# tcId = 434\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008ee5794dc2e66f2584910ea1d8361e5b53db535adcf5c1c35e128309021c5d1d8b9b996c0a488e05af14421b86e9841f0cba706027fc827d4d95\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-512]\n\n# tcId = 435\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c7999727c0cc02d88ef274012a762afcbb19e7fce19091a02acd00", - "564021d00dbfacf67999f22c499d48a60a6fe4bbb746199c29957a1ec7a0900e0\n\n# tcId = 436\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c5797c21c0162e42f69693c6c0244dfdf9218c01e9235760177b61a54021c5452c887b27fb342a8a00d27579c7195dddb73df399233ed0dea567b\n\n# tcId = 437\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0eb9dc5d67bb0d4009544f8654977907dfe770e7fae4571d31d7b4fa021d00ab5cda53e868bff5198be4be3681b186cb0c1396d272c71f093f8b12\n\n", +static const char *kData101[] = { + "# Imported from Wycheproof's ecdsa_secp224r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[key.wx = 00eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]\n[key.wy = 00eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c394766fb67a65fe0af6c154f7cbd285ea180b4c6150cdafafb0f6f0f\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021cc6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30813d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000003d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d0280691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab028000c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f0000021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042498177303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30412500303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30422221498177021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304122202500021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045221e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0004deadbeef021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2222498177021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab22212500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab221f021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045aa00bb00cd00303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043aa02aabb303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30452224aa00bb00cd00021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig", + " = 30432222aa02aabb021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2225aa00bb00cd00021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3043021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2223aa02aabb021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30412280021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2280021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080313d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30412280031c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2280031d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 313d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 323d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff3d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 3041300102303c1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 303c1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e00\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e05000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f3000021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e3000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3040021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2ebf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 303f303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 301e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 305c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e02811c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02811d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f0282001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0282001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021d691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021b691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021e00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 75\n#", + " wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30420285010000001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0285010000001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046028901000000000000001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3046021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab028901000000000000001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304102847fffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02847fffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30410284ffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0284ffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30420285ffffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3042021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0285ffffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30450288ffffffffffffffff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3045021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0288ffffffffffffffff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d02ff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02ff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 301f021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302002021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 301f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab02\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e0000691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f000000c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0000021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021e691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 303f021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021f00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e0500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210281021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30210500021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d001c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d011c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d031c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d041c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303dff1c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab001d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab011d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab031d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab041d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92abff1d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30210200021d0", + "0c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 115\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3020021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab0200\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30412220020169021b1c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 117\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3041021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab2221020100021cc6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c6b1c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 119\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d02c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf922b021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 121\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbbae\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021b1c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 124\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 303e021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021eff00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3022090180021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 128\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3021021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3021021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d01691c723dd6a7f5d11b8c8e8bd08173428bc48a2c3f031caaec3bbce8021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dff691c723dd6a7f5d11b8c8e8bd08345fcca52a9b01748ca203383686e021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c96e38dc229580a2ee47371742f7da36054f46611d4da0c9a70206d55021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0096e38dc229580a2ee47371742f7cba0335ad564fe8b735dfcc7c9792021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021dfe96e38dc229580a2ee47371742f7e8cbd743b75d3c0fce35513c44318021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d01691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303e021d0096e38dc229580a2ee47371742f7da36054f46611d4da0c9a70206d55021d00c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d01c6b899049859a01f5093eab0834104e71ff12bb612ad778fbda8e56b\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021cc6b899049859a01f5093eab08342d7a15e7f4b39eaf3250504f090f1\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021dff394766fb67a65fe0af6c154f7cbe11bbc0c7c488012fb1b59eb344d2\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021dfe394766fb67a65fe0af6c154f7cbefb18e00ed449ed52887042571a95\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303d021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021d01c6b899049859a01f5093eab08341ee443f383b77fed04e4a614cbb2e\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 303c021c691c723dd6a7f5d11b8c8e8bd0825c9fab0b99ee2b25f3658fdf92ab021c394766fb67a65fe0af6c154f7cbe11bbc0c7c488012fb1b59eb344d2\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 154\n# Signature wit", + "h special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090142\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090142\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101\nflags = EdgeCase\n\n# tcId = 196\n#", + " Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090142\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001090142\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01\nflags = EdgeCase\n\n# tcId = 223\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002090142\nflags = EdgeCase\n\n# tcId = 224\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 230\n# Edge case for Shamir multiplication\nmsg = 3639313930\nresult = valid\nsig = 303c021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021c221a25eb9cc8dd66fdf156b2f6ab601ab6d9c509247f8de5d2671a96\n\n# tcId = 231\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 303c021c3b3008ed596b7fa276498def40d96b1eb2ffb731a44050ffb732e4e6021c6dbb08c56db737e9392ff4f3a54d8b806d70af226ecf413b3465de55\n\n# tcId = 232\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 303d021d00d1fe269c3061e4b94604e8d612d70887068cc7d5232cd5a9b72923a1021c3c1cbc027d33fb2451d52dce3a828a8c7ecc490a28a94e5e5bb2c4d7\n\n# tcId = 233\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 303d021c04586134cc679295dd93499311c4a8af37cb94dadbae18d8ee279b9b021d00bf9170a1b65b665664cf567d40a995ce252a23d6a9f962b05e364486\n\n# tcId = 234\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 303d021d00c1f51009b935b4773374364ec3eed72a24b70926e0349c77862f3475021c46df3d98f104ba6602f8041a5bf5495fb240e103d1bd17f2fa878923\n\n# tcId = 235\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 303e021d00e822242872f1ecf338a4f773df87b67e9b21bb283acac7d66b26", + "551e021d0094d4e0fc3c6359994a6eaedddd1533f490f72ef85139f8d3b39cf07b\n\n# tcId = 236\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 303c021c7fd45528eb7bfc3710e273c4468f0b50ebf93f94cd0e7a602a4929a6021c46613dd1ffd85df8d71f3498001721fda4982c27a1c291359b05b1b8\n\n# tcId = 237\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 303d021c36d137b69171a486933b50138d1db1842724766afd25c85b0032daf5021d008e700de21f2fc350a34c7cc19054cf371ecab6f7331ccecf68fca0f4\n\n# tcId = 238\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 303e021d00da3b436908f5a82f26bc17a8577ad2a782946e3a7587b01d253b1dd0021d00a6544e38f24e8117370c049b5d1f6712ea14337a94511224df4496a3\n\n# tcId = 239\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 303c021c4314a2bd139d47be3d9fd9ebdd72a06a220219c7596b944178ee6f5f021c0e6f1d2f57c699654e9c705d7b8fa3c1ccb0f939f6368bed246b2e10\n\n# tcId = 240\n# special case hash\nmsg = 36323139353630323031\nresult = valid\nsig = 303d021c6a25643464682679d84970c603927f4a8ca83e7ef9715dd1ed84c28f021d00932b78d165c225a5253e6201c0b1ded0898ba24de44b23233eb78054\n\n# tcId = 241\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 303c021c476aaa58677d9e60477cffd026c43248e2cf3cc21e8fdccb75ceefad021c7799fc7af8f9b929203faf899bb5ca1aecf2492555157282dfde790d\n\n# tcId = 242\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 303d021c63a98614a1421e2ebb278de53b61618bafc757122647affd358c667a021d008edba806e0a7e438ca35f98405a8ad2d5c3e8cc2d5c4384233aef0a5\n\n# tcId = 243\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 303e021d00880b5238a014f8b44655b83c175880eb1e8307899a824ea3e07dbd6d021d00a4724c8649fd74e5bc8d7fe6a9067a1376fb8e08dbdaed68980b0f50\n\n# tcId = 244\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 303e021d00f8743588234634dd9891f4f2f40f4e46b77f97b82dc5dbe234aa6b5d021d0080656e5262bc25e158f3b78f51ae0d6a41cc8cca1aa457221b2eb7fb\n\n# tcId = 245\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 303d021c2a2357e3d8fe34434582be4dabd58b77b388d1d52adcc664f45dece4021d0094be3a369b7c2788df4587ec5bd4163c4cbc40b77de1a85e8bcfb251\n\n# tcId = 246\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 303d021d00b6b0c0aba6c611300ecad8816242c415f183a2bd4d46cd7769033d9b021c7750b24be02f22dc0b656fe4af377413f9453dff99226915dbb6e08f\n\n# tcId = 247\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 303d021d00a5c1a75c2779f3eb83a65e295927cce4288e9d5c2132a4c7ca92526e021c10fe30f0be33a785385137b57d806140a402b9bd3c1df1b57de6da63\n\n# tcId = 248\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 303d021d00b92b5521d1a7abe77e8524dbd3001121cf83c08017e3917bc58b5d1c021c224b113779017f6a522171edf930f1b5d4f5e7dedc6d2d514fd7883c\n\n# tcId = 249\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 303e021d00ebd3ecf3aa64cdcdd171585a141a4a673a8d5de0ca087dfcdf62432e021d00e0f1a0f7b8f5ac4a42632f87156ad1094079393b03f2051a9fd60249\n\n# tcId = 250\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 303d021c6c3854297e1f267b64a28e0cd6148e0fadcf85bc8d5c23947543bcb8021d00aa0594ee11312f5d4767d296e5ca83df68072811f81a8d27e178ca5d\n\n# tcId = 251\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 303c021c785ac8c956d7797ae67498775b3c446c41735eb15f3430b49f6a09f2021c5710879ab83994e809c8d2cbd6f2ac5c205b4b8d6226e98be03e7967\n\n# tcId = 252\n# special case hash\nmsg = 32323332313935383233\nresult = valid\nsig = 303e021d00f1f3d016693125ba73981c8f9a1748e5dce1d9634355f26fa536190e021d00b574e97def60dcd0e9177106483791b2edb4ab0342b9f5ebb957d5b0\n\n# tcId = 253\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 303e021d00e64f3371522cb1a5f0d1511b152b20e01deca0b3284786853cac279a021d00c9a2e5f4ffde22b9d4ed0179ce74fff408ea918dda7685c7980ae61a\n\n# tcId = 254\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 303d021c1f99dd6ef72feeeda6c123baa4fabb126d7dedb64130fae3f4230797021d00e441ec51dca6271b043e95753c4043d7cb4e76fdc13d6aea45fbf243\n\n# tcId = 255\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 303d021d008637a09627c52766bf96f0b6cea6f2ac3eb303001c5f6fe6d628e4ba021c10b66c599455d40077bb865ed43e2c2cc403473baa6d63b16be48c84\n\n# tcId = 256\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 303c021c52a010a23e4f9ebb459bbe9f3057e6c19761fb99d25c9b16b8f007d8021c526dc1f34444de00447ba23c76950f2c159579d548b6335d127ea321\n\n# tcId = 257\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 303d021d00fc49caaada528f3357e5a264f2e7f970ca1b15ca5fee28741d1202ac021c175e884d10d0bfd20b39311ce2c53083da167d1f3dfeb990e59ed628\n\n# tcId = 258\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig = 303d021d00d95d539a85c9edacd4e02ede27b0e0b737099612d166c637c83a9f34021c59936a2b90b7f3f3da83f64dec8e347a3bfa57baadf9acea18c071d8\n\n# tcId = 259\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 303c021c1895e65593d71e5635cce022dda19bd155bb9a7f2e307e5ce9127ade021c121b487c320c544dcdd471d46fcde2ce5dc9d17fda70544c4eab50a2\n\n# tcId = 260\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 303d021d00b5f4c85b13b51a5da81a236f1105937f3d98856d2aeb57101b6b499c021c3be74ae770fa6467f76a742eb9e504a815a4a60e74b38bcaa89f9b06\n\n# tcId = 261\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 303c021c07a57197667a0c40423d4811ff96384c9330467e8a28eaa4c0d519f4021c011062c8694494baaed24ff610e1e4227efb59a163c33fafd40100f9\n\n# tcId = 262\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 303c021b7f718615ba1d0a9d27a8c5a678a6225ffe1233ed8b417c9343b310021d00cf6a87e4496725c6a2612f4034ddf4b31c7435e2fc3a163e92d463ba\n\n# tcId = 263\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 303e021d00ba8f95a4363c493a9f78bb61dbefaa9587d028bb8344420de2b0cf21021d00b3798c2d6e27a2591c2edc18320b78bf11df194b11b3fb498c595232\n\n# tcId = 264\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 303c021c596b74077801db2e889d3b2aaa3990fe180abc152d48528385ca955d021c38bffd416f779843fad389750003eb0708112a4834c554f476a3e0d1\n\n# tcId = 265\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 303d021d008547f62967523a06c9690e5ff66c3f2254cda28f09ffccc222433d39021c3d9ebf664ee551bb7b33157d6c6c5fd456bda3d4ae460215ec1a5f94\n\n# tcId = 266\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 303d021d0090ee3fab9c6ce373a1b35fc135fe878280ee25e58a4bd7529e91b4f0021c6451e7526505b44e88472b46eda3fd2679824dcdfc445e67f35ea382\n\n# tcId = 267\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 303c021c0a530530b6a9238d2d1a3cf468986c87f3b208f61ea0486d53140c17021c5f027a73f31a5cc2bee81ff0019477c542fd782ecde0e551fcd37e93\n\n# tcId = 268\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 303e021d00beab4abd23df5e2acfff07c82e245dfa7d587d0238c2c9ab9c88a96a021d0098c6507635536840edf604f9baae6408ce4d3fbee694db3abd825011\n\n# tcId = 269\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 303d021c3ec8c36335cb98fa07b983c35b7fc256f44a5aa192d6087595145a15021d00c32b7a47ac6271f4593562bbbf91f9e07395a5e4d46970495cf29f05\n\n# tcId = 270\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 303d021d00bd635a741f1f2a1d9ac1698baf5cfc491d5e3f8e15f1cacbe4ffe4dc021c4bb606cf7cc11d0d7d96b83966f42276095ccc445882ed5afddabf1e\n\n# tcId = 271\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 303d021d00812c08622c0a09d949b7628585c4f4f2db4c5591b5da148ff46d5cd4021c2104f9bc9d0079acb3077d2db58f388119500c5322cb9b5389b5c5d7\n\n# tcId = 272\n# special case hash\nmsg = 33323639383937333231\nresult = valid\nsig = 303e021d00fa4e1c8b0006f269c855eb495fa3a113f643fa8b1fef2b08ab145994021d00fe85b8b522c7f9e8943e0f62643395bd1fcdabc892c315d108b75f65\n\n# tcId = 273\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 303e021d008c1d9b7911bacb6b4a09582648b992d46a1832eb006178c0c77fcb10021d00becbe12b99f243766da5bdad07461b9226a8298672b4f1adb35357ef\n\n# tcId = 274\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 303c021c78850a40530aa258e478e7c547d3a5e4944d3524f1676443e4dfb37d021c687058e1ca478f52a30c9a3f8e2eea9d8", + "c40599cd47ef66b9430d17d\n\n# tcId = 275\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 303c021c066e7268a6abefe1b4b916ca51c3e958e40dc78c3661313e0ed2e77d021c6404d8a332a837f2ab6bd13e3ee4aad1e9307d449e7f9b7d6332030c\n\n# tcId = 276\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 303c021c4eca73709a67c41603ca5af494c8132483ffc2e0bf171b52de5a5e81021c2c79137cd2add3ce3a76792270e347221a3ad786eafc2682b39bcf95\n\n# tcId = 277\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 303d021c0178512f8844984222393a63263e0a009601869e632f07eb7470aa05021d00e32657cded1122cee0a4f66ff50a32da1f05de4c5e217acdf5eb6fe2\n\n# tcId = 278\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 303d021d00e2c7bf1222ca23a56492873c2d3fa6c7030cc166d693142dcea272b6021c715a4c82fda4404217dea6c0bbf3ac24f8faa2b435fbc6d51a32c4a8\n\n# tcId = 279\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 303c021c49886a8c26c91d649cbfecda6ce8d1441e764c66f5d81dceedb6c5ba021c4370d8bcd4f052fac9491d62850b6a6a85d5acc44d9248c3dff30bf2\n\n# tcId = 280\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 303e021d00e1ae225e1aeca40747ff3e7ad1f75eb9bc90d637160a7f58ce12e591021d00b97cbea3a9323110315760b7e2ede496514b30f0eec521ffeb07a634\n\n# tcId = 281\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 303d021d008a93b87b46512544fb9a7af5c41e3aa72e40235ef87ccb7108daae48021c157db617ac697df407af7a11626c52a1af7ef189514da39918c43010\n\n# tcId = 282\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 303e021d00ebdebe6388b9f460fce6d84faa67ded1e864ef09e77ea3ce58a5deff021d00be5052033eb40380c2b1325fe97dcc55841e147a89f02a296b4505ef\n\n# tcId = 283\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 303e021d00e85d0667972d003c82afb9e18b702357119b4f38401a5ebdfcbea88c021d00eb7b3e5268a4ce6280f72d7e9a3d74e5cac50b1c3a5296cdb5a49d82\n\n# tcId = 284\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 303c021c3d243581c0874fd4eb4d80f896c5067429ad455314881951ab5ec6e3021c0ec47aba08ccba88c1a6ddc289f595bda08dc2dd34d12dcefb68094d\n\n# tcId = 285\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 303d021c75c966bbdcef9157d47a134231229f9f5ee8ce458775fc747d4509bd021d00e344fa716e2088d95a55d02a978a416da10f22a5cccf35a2863227cf\n\n# tcId = 286\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 303e021d00cfdf599e986d770b73784d97149f9945fd16d22c302bb796156e7fb4021d00c6409785047b0083f008771b40db8502583208b61c8984671acb0929\n\n# tcId = 287\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 303e021d00c53c4aeec8f2e7a5cc0e885a6031aa1a6c1b7b7fec83b5084cbe291f021d00b0e6d10a8fd86f958c3b0f4662ed8ca0d6eadbc892aac4200fcf8315\n\n# tcId = 288\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 303d021c2386550d6e75350bcc32507bfc9beb9c26d72ff82f671c1f5282e98b021d00a55b8de808c4359fb529b80a80d9fc6eddb5ce08082c3b677c689991\n\n# tcId = 289\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 303d021c1fbd192d955ce02b64a3be5bb21bef22b53a6c6f9576d8f889b09e4e021d00f5a9b673a4ee5aabf1ca8e8289f25b62a3e08b956f7418c03e2d3031\n\n# tcId = 290\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 303d021d00b80ffba451db9fc2194e450bdd43bc0f53a7d0f4a78900c09fb8d9bc021c0124eeeab9035b6c845959e70b04d1e187d554807d6751afabcc1802\n\n# tcId = 291\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 303c021c187fb026ade3ad16dd4b2813e8ebda433cb6cc3af1615bedf486a9e2021c6fbee53fa884d296f34f7719f74919434d1b7090c485eeed2fb8fd6c\n\n# tcId = 292\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 303d021d00e598a16fe12da79e9814f6985c9a9334010f287dc9e38de857ca5fc0021c19e0ed54f0e08ad091a163b4c7b86d0634da2c86a7a8991f5d8706d8\n\n# tcId = 293\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 303d021d00b31a10480e397c8aa46f52a0f2fb5c22ebc0534fba156718b50cf6ea021c602004df4b47a2065130ca3b05f1eb02d0b37b79b04b1eb799408346\n\n# tcId = 294\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 303e021d00bc47e242d19dcc6321913980d73923e430bc6623d219529d586619b6021d0081397dd2f52811b534ed754a937d904f04a7de278fa3bc8926de6946\n\n# tcId = 295\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = 303c021c5be0e0dfb26b1caa88f866504aa8e76f035a82abe00028d962bcfafa021c3c3c1df06026123471bed324ca79c51b28b3d10b1ce877cef21b852d\n\n# tcId = 296\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 303e021d00fe79d0cfe455724792cb5ab0580ad4f2918c1403ec12f0bdd2ce6528021d00f1357cd4afc402994ab868b0163f41701e0f00e561fdd97e0db6f7b9\n\n# tcId = 297\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 303d021c1858c5d857124cd703e7c2f5e99d5025d6d979539c6f50b1d00fbd34021d00d94a5adb6d9c5001162620415541d49334fb929bc86a350ca4591195\n\n# tcId = 298\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 303e021d00e6b2ec967cfa25f57234b9ef1d87c5945502cbbd5831c862f00774d1021d00caea26368bffc8e562b2bd03aa6c9dc41c529659fefe6597fce9cd9c\n\n# tcId = 299\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 303d021d00a59b438b2472074a93a289b33f5b13e604977dd3ab4d744d08e1061b021c699574a17dc8c7298c9321ca78552e5128ea801d056f387ba42f7a09\n\n# tcId = 300\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 303d021c748481709c6882c4a130193834a57f4bc714906211ec6cc12c400dff021d00eec6c9d5a06786f821a8117eec3dc025ed3ac74e39e98a16a4aa285c\n\n# tcId = 301\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 303e021d00bc8991b506997403e123136a9c140a4336364733b0815f40d1dbd5fe021d00819503ea3b4c07fc157f948f6949705d560a881fc1c6af4b7391765c\n\n# tcId = 302\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 303c021c1caece75c8e31bb0c5cceb0842f23683b8557a97036574ea88ceeabd021c645ad3276aaee22b693647f00dce5f91a03b678b789b667cd3b8e751\n\n# tcId = 303\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 303c021c3a7d582068aaecaba945203bc445b3312e5cb40886522987aced68d0021c39b3c612b6743a13bb2ffb83514d690cfcb9a7055e3a993cb0863938\n\n# tcId = 304\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 303e021d00f773c49fd0645716d16e559e22c39101df266cdfa7cb61ce46f85280021d00df6109fd77a241031cf03b376e001d8a3cd2a6b646edbf9e578133f1\n\n# tcId = 305\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 303c021c79cf893f66f7faa5ca08553ea03456107e7bb391a5e51260cedaea84021c32e8e3509468da7216c59975d4f3d5493848a03f864b2332044e68d1\n\n# tcId = 306\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 303d021c025ecd1a7ab765fbfd25a6d7cd3c461e17f465e6958bce9f492b7a5a021d00a1ca95038603d302761e416935acbd6b716a316c9b79c57d4053cb79\n\n# tcId = 307\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 303d021c3d14a4c21ba4dbd338fdd8b15fcdd0a9228f157cfaf2b09dd4f2aa67021d00e1640e8bd2a6110dc18d6f290b7325814710c0dc88b76f127c5e9e21\n\n# tcId = 308\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 303c021c258dce916ef78b9d8a87beaf6edd35bcccc08c5de488586e1b7b749a021c4ff500db4d665c7062179c099b2985a814f99fbfa44a3a709024d589\n\n# tcId = 309\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 303e021d00cecf0aec5357749f357c459575298a3384dc4ac381438ff99acd9993021d00da7adb092a6890e0918c235a62d4a949b0cae5e57856975108fb2b91\n\n# tcId = 310\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 303d021d00d77f2e547fd68d5db314901da1ff7ecaf3d0c17ec047a974a7cec33e021c443a97afdf882272bf0233c8c4a8d23c9352ad89b1770c26240f6650\n\n# tcId = 311\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 303e021d00d5dcf93e6e1b93323ea2642d3405a7423cb04f59c03420193f394886021d00ddd5842e4928ee4b5d77d43d4a4bfc7f991c899727b75fc941b52995\n\n# tcId = 312\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 303d021d00a9bc3ebc6ee34421326711ce29518d02bd403ead806a3e4502efa0ce021c12610b89a61689a8eb6e062d2524278155fe499ffecc0e0d940d48a7\n\n# tcId = 313\n# special case hash\nmsg = 37313836313632313030\nresult = valid\nsig = 303e021d00c703c508784ef71b596dcd61c5b01b45c6c69d2b36a5a3b7701e5976021d00f05444a777204118f3ac2afc92d0212831bf7002158e7c656f4c07db\n\n# tcId = 314", + "\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 303e021d0080674b740b64d383677c049a6f4baeb214f4a6b5933033853e634578021d009b3a804c75ed790e31966bc25730b7428af8c73c65fb503c06c597eb\n\n# tcId = 315\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 303c021c7ed658c30f4a0dcc894c39f9320f59a185509ffee45eac6023577c7c021c47ac94a501806d5adffea9fcf3ccd8cf79f3cc47eca9fe38fc4886b4\n\n# tcId = 316\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 303d021c397f669cc399a91da96c16efd233f6fe60d1b7caa397cc257843b30b021d00f19375fe66eae4738ec9dc5b7ef51cb33d4cb258f36944d37dd245cb\n\n# tcId = 317\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 303c021c537ec369b3f0d891e166f6c74e5d73dd2c4822210c5fe5f978c34072021c0b183c48b5f6e69245cb76e1e2c39663eedfb74ba9538739ac495ff5\n\n# tcId = 318\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 303d021d00d0ed7159cc3a79988f3c279287ca8ed10bb8f02c8b5a6204aead1223021c75ee1e5c00e81899bfa8545edcc64fdf707dae1f61d976d2f0883777\n\n# tcId = 319\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 303e021d00cf43329a9781db8044a920758e58399866fe7748c0f5d6a3bcdcbcbd021d00d9740d2dd716290ad4160345bcd4af03af01c44b610b1e5953199075\n\n# tcId = 320\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 303e021d008ab2e92c8c9143f9d8da3bdb1d935cce3ab60ae99b3ccfe863b15d14021d0088c89302e8a9c591c6ed16b1ae46f966004d0b2685449842e291d742\n\n# tcId = 321\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 303d021c04f60f8450b448198cf7981116de06d4c4888cd26be3a5947092238f021d00cb23fcb33c14f089c2ae030146d68fa65eb9b086fa792f95be8ecf35\n\n# tcId = 322\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 303e021d00f270f7a70a96a0f916c7530c6dea7178e6c087ddbcc60aacd8a7c553021d008b2c378554121365a180ad4edf1a12e566ba55eeabf525356783e603\n\n# tcId = 323\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 303e021d0085ad01b236ca4a5451969242e16165d322428235a2af8fdcd6c4c7b9021d008eb2998c5e0aaf279793caff59a266ca2068d94ebf77bae81fd0fb6a\n\n# tcId = 324\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 303d021d00cffdb8d64b5b84b490ff73d77e51cc7797bf67c5ee0a4999def17230021c3baf4b34e1a35e9606a460b395063a554264a9c43cc302ab5abf473e\n\n# tcId = 325\n# special case hash\nmsg = 33373033393135373035\nresult = valid\nsig = 303c021c66cda58a5a6ddb9476e36dbad5df542be88d7e447bdc3dfe1d9e8b2c021c0d99d387486a964ebab4e29bad583e46a5a200391d1065768a4e35fd\n\n# tcId = 326\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 303c021c3200761902825bd353908accd2be6b482645646971f96dc490706a37021c3ed77899efdbe418370fa7998df3b7c924bed6864535277f805c894f\n\n# tcId = 327\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 303e021d00ba0eff0ee46aa9fca5ab8ad64aee4037931d3ad0b953d404ef9f7bdc021d00afdf21df0dcbe39c2f5fa9ef7e1a2bca87d1213d1eca438929ad8982\n\n# tcId = 328\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 303e021d00a20c6883fc6ec1ca4bb378ac88ed670a742a6284113d5fa3182a1858021d00e0a73b913b94163175d264224cc70736f2fb8e8d58e914b18c921323\n\n# tcId = 329\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 303e021d00f2f4af956b0c5409949d377e9bc68e4f1abef7969b518f8beacf27db021d00df3a7b5993d2393ade70a2cfc1e8671a78ca4fecb56425a661a2d2fc\n\n# tcId = 330\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 303c021c331a1a553494f8524adb4e8a722d558965fb703ae432bf3cbdb255c2021c5ab6e3dee6a2516fc4e0ac88e6dfc81d2bc37c98949cc03e521d389d\n\n# tcId = 331\n# special case hash\nmsg = 33313331323837323737\nresult = valid\nsig = 303e021d00867135558e06e19796ebce8e3555c607a6607d46f7c8da6b8552ffc1021d008e827e8b9a4f74efeec7d7ba5c23428fde0227df55a1efc179a353b1\n\n# tcId = 332\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 303d021c6746903ca095bfd3f6378a70092723483ca190b2392d8b1ad337969f021d00f33bfae0835c23a80ec9f33ce9a9035c192836a0b2fadd347d803f96\n\n# tcId = 333\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 303d021c7fc0d8739ecfe349e506e71203a6e60e628a1bb0c67d5e574cb8831c021d00cf8bb1557152c57550a0fde6571456fa752782f7f92f7bb235dde39f\n\n# tcId = 334\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 303e021d00b4486e3139e0b1542892db3d3f51b0524894e19cb00cd07b03ee9c97021d00ad9728d77a8b7b4fa435b3345847860c332d65d8152aa6503ab18755\n\n# tcId = 335\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 303e021d00afbbdc8e50e801ecbd2e3705079717f4f9d69f3b3d85215aeecb4fbc021d00eceadd4e2cc9cea10b56d16a03fa551fec3eb808bd8d9f0926d14ed3\n\n# tcId = 336\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 303d021c4a762f7d146f9eafff5ad11a6978260c818b801c3488dd60411f5cf6021d009ea77512585620ef2cfae8b8c9d8171229a32197e1949561bb75a049\n\n# tcId = 337\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 303d021c227fe52b579833feee16c287d29273e2256df68aff0b94d2752d877b021d00bd79935e5faa8e9356622fea0135ecf796daf60333d5ab125f71e512\n\n# tcId = 338\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 303e021d00cd5365983eb165db39ba0c66c3a45b2ce1370c9ad14a9aa76dd4633a021d00a8c77ce42ab1c888a6b5d04b71139fd882328622e15e80252e5cf7da\n\n# tcId = 339\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 303c021c54d6d44373f7dfc98455a22cd39a0b320fabc33215216b37365b5a16021c29cc690f2467c02e07bc416ad47204975af8c5c3346973f2b03ded3d\n\n# tcId = 340\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 303c021c2f5048c9ef9f30da7cb3fe4624552200f9e57a46d79db0484a0d9cf2021c06dad3a4682725852869a1a459bec865661e1a38a9e546eeaac7cb84\n\n# tcId = 341\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 303e021d00abbf0a02332fbea779899d31d3abd2d22c9c02d4058ced639bf06c45021d00cce0570f3812e5cfcb23376c554c7fc35dbcfeb623a7958c664ac6a4\n\n# tcId = 342\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 303d021c1c30cb8bc21087b77eb1216ee8629e3676d925f1ae15077cc631da4f021d00ee998157bdefb77d1044e983a6afec7d91a23d95c937fc5c6548c989\n\n# tcId = 343\n# special case hash\nmsg = 31343437383437303635\nresult = valid\nsig = 303c021c43ee11a7ab62e2125e765c2ce5d4f84704183539810512268d87f195021c65897e54025777659ee802b39c6bfd5ccc5706a9d1b38f95c078abaf\n\n# tcId = 344\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 303e021d00a1fe3f4d3f43aaa3dcafa79ed99fbc045c11c352caacd89f0f63847e021d00ca2e37bd2c13b9fb3f8a55b7a67eb034240395abd39fecde75141336\n\n# tcId = 345\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 303e021d00bd290286ca08485ea4137010c67203c2455e7b669d153c6be40087c7021d0097dd7502ba3637f33baea5b2398647ad24c0fe35072bd963149b5aa0\n\n# tcId = 346\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 303e021d00c917269a5a4ce80b7fe54a8bed49326b50527a4d2fb0a3093182b5a5021d00a195ec0e69e3172e854e87dd651b44433fcd7dcbb7bd59515d2afe8e\n\n# tcId = 347\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 303c021c0b7b5aab8364dd4b11001a0b986d5aa4fb61ee720237417a7f63722f021c7f13b411e645e819fed1b925ebe807d9560b44d0ba1b75bd2fbd1294\n\n# tcId = 348\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 303c021c505b974f8ecf07b60ffdbd2b2df9324de92b39476eb763a4c25f126a021c1c36ed1dee772c724205f717c383f49a87a5bc3caa0ef81360f9d800\n\n# tcId = 349\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 303d021c24219e49b98a9b64e56d21c908c870eb88b447d9f1ddb735083d6df2021d00bc4d7644faeff1e134443b2bb3bb2a20e2a4a7c193180626127ce937\n\n# tcId = 350\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 303d021c083246081cf2f8c5e1cd42b60450fc6cac3b0ab03d38bdd271cd7370021d008d117ec32dbf939394499f7dbc2ab77290e9222d6d60ea02ce45c58a\n\n# tcId = 351\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 303c021c24916961dd0d168c2878ca4fd065b81311c03b7f23f8416f4a23b14b021c1e37e3c03b2333b33bbb2ebe05b031042af19315adfdccdfc8d078ee\n\n# tcId = 352\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig = 303e021d008df5468b123b92477a5c57ea86c54c5c9e41d119370dc18922aa8303021d0086bdf06b75f4d49d02c5806926f5d01b1a4f6a8146664a03fa820772\n\n# tcId = 353\n# special case hash\nmsg = ", + "36323135363635313234\nresult = valid\nsig = 303d021d00f65bf16f7ced97b0cdc22b08c62ef811306813134b001bc51140e828021c3a9b7c008cdaf803368df9ee50e274c7a9f9369344d9918e0c08dba9\n\n# tcId = 354\n# Signature generated without truncating the hash\nmsg = 313233343030\nresult = invalid\nsig = 303c021c6239877430e268f1a3ada2c90357247c6ca6687f49023bed0fb5b597021c355c60c09f0dacb9d74b7ccde71806c50fda8750c6ecb7abba910ac7\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 044408e5c95e332ab6c2823a63959391d60a6d69c59eb1f7bd272206b9f5278e901fb4773aeeb2d8255ba4df3cf3db7e0557dbc6134c55f3a6]\n[key.wx = 4408e5c95e332ab6c2823a63959391d60a6d69c59eb1f7bd272206b9]\n[key.wy = 00f5278e901fb4773aeeb2d8255ba4df3cf3db7e0557dbc6134c55f3a6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044408e5c95e332ab6c2823a63959391d60a6d69c59eb1f7bd272206b9f5278e901fb4773aeeb2d8255ba4df3cf3db7e0557dbc6134c55f3a6]\n[sha = SHA-512]\n\n# tcId = 355\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n# tcId = 356\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04315a83008dba00b351c3f9fca0811c3ae1884fa9a2a75e6d5e71f269504bbe6a25be253b582efab4b8b9e61372767a7a3a423c0943127296]\n[key.wx = 315a83008dba00b351c3f9fca0811c3ae1884fa9a2a75e6d5e71f269]\n[key.wy = 504bbe6a25be253b582efab4b8b9e61372767a7a3a423c0943127296]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004315a83008dba00b351c3f9fca0811c3ae1884fa9a2a75e6d5e71f269504bbe6a25be253b582efab4b8b9e61372767a7a3a423c0943127296]\n[sha = SHA-512]\n\n# tcId = 357\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 042f6983b6e9f8ef96c2d981f69be54b06591ed73fe40c8a546b936a7971bf57726c26c811d7625a9d851951c1fffe236b0eb3b896bc4c98ef]\n[key.wx = 2f6983b6e9f8ef96c2d981f69be54b06591ed73fe40c8a546b936a79]\n[key.wy = 71bf57726c26c811d7625a9d851951c1fffe236b0eb3b896bc4c98ef]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042f6983b6e9f8ef96c2d981f69be54b06591ed73fe40c8a546b936a7971bf57726c26c811d7625a9d851951c1fffe236b0eb3b896bc4c98ef]\n[sha = SHA-512]\n\n# tcId = 358\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1f515971cc9391153569c2befa1f915e2931110757760ebd7e61f8641c3db8beea20b13205389dcc4ba8a6af4d6da2604cacd7184ec9dbc]\n[key.wx = 00d1f515971cc9391153569c2befa1f915e2931110757760ebd7e61f86]\n[key.wy = 41c3db8beea20b13205389dcc4ba8a6af4d6da2604cacd7184ec9dbc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d1f515971cc9391153569c2befa1f915e2931110757760ebd7e61f8641c3db8beea20b13205389dcc4ba8a6af4d6da2604cacd7184ec9dbc]\n[sha = SHA-512]\n\n# tcId = 359\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e8f90a717714f0158d9521f18c14ae8c83bf1eeba115c46cbdabb20b66f50ac13461c02da02edfe4296a1f543dde7b4359f905e04193d3cf]\n[key.wx = 00e8f90a717714f0158d9521f18c14ae8c83bf1eeba115c46cbdabb20b]\n[key.wy = 66f50ac13461c02da02edfe4296a1f543dde7b4359f905e04193d3cf]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e8f90a717714f0158d9521f18c14ae8c83bf1eeba115c46cbdabb20b66f50ac13461c02da02edfe4296a1f543dde7b4359f905e04193d3cf]\n[sha = SHA-512]\n\n# tcId = 360\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020101\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04723bc0c9b7ce6ea784ec075036cede90452c76576bd8fb5be4dc0fb1cf405820d92f48552b551c7b11f49406dc892fd659971ae7f9e74b59]\n[key.wx = 723bc0c9b7ce6ea784ec075036cede90452c76576bd8fb5be4dc0fb1]\n[key.wy = 00cf405820d92f48552b551c7b11f49406dc892fd659971ae7f9e74b59]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004723bc0c9b7ce6ea784ec075036cede90452c76576bd8fb5be4dc0fb1cf405820d92f48552b551c7b11f49406dc892fd659971ae7f9e74b59]\n[sha = SHA-512]\n\n# tcId = 361\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020103\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a0dcce127084f955a4e49a7c86b9b91b05ae7afd6eb07225a6541d88f10a1d4fef93934967bb6c5d8792bbd47ab3abb406899a00b1c91b4a]\n[key.wx = 00a0dcce127084f955a4e49a7c86b9b91b05ae7afd6eb07225a6541d88]\n[key.wy = 00f10a1d4fef93934967bb6c5d8792bbd47ab3abb406899a00b1c91b4a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a0dcce127084f955a4e49a7c86b9b91b05ae7afd6eb07225a6541d88f10a1d4fef93934967bb6c5d8792bbd47ab3abb406899a00b1c91b4a]\n[sha = SHA-512]\n\n# tcId = 362\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020103020104\n\n# tcId = 363\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e10abc9fe15bcc63f009e161aaee26602415bcb45bc6c99ce7ab2b10fbebff4e4de0dfaaf04594dd603cee80b5d9ab78b6707608a95e574d]\n[key.wx = 00e10abc9fe15bcc63f009e161aaee26602415bcb45bc6c99ce7ab2b10]\n[key.wy = 00fbebff4e4de0dfaaf04594dd603cee80b5d9ab78b6707608a95e574d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e10abc9fe15bcc63f009e161aaee26602415bcb45bc6c99ce7ab2b10fbebff4e4de0dfaaf04594dd603cee80b5d9ab78b6707608a95e574d]\n[sha = SHA-512]\n\n# tcId = 364\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fbfabe6c640856ae5dcdc9e4b706fb3db23ddca46b80b9057ab9e44f6b62d4697977ffe19bf3185083b1ede2161aa5725401a8f57851fc82]\n[key.wx = 00fbfabe6c640856ae5dcdc9e4b706fb3db23ddca46b80b9057ab9e44f]\n[key.wy = 6b62d4697977ffe19bf3185083b1ede2161aa5725401a8f57851fc82]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004fbfabe6c640856ae5dcdc9e4b706fb3db23ddca46b80b9057ab9e44f6b62d4697977ffe19bf3185083b1ede2161aa5725401a8f57851fc82]\n[sha = SHA-512]\n\n# tcId = 365\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0491a85b3c5e90b409f6b8d3bca9117a54a40f4162b388bb9367fd6439f1cedf20ab52eb7154b7ea1f2934a9c8292906e18a0e572002cd2f7c]\n[key.wx = 0091a85b3c5e90b409f6b8d3bca9117a54a40f4162b388bb9367fd6439]\n[key.wy = 00f1cedf20ab52eb7154b7ea1f2934a9c8292906e18a0e572002cd2f7c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000491a85b3c5e90b409f6b8d3bca9117a54a40f4162b388bb9367fd6439f1cedf20ab52eb7154b7ea1f2934a9c8292906e18a0e572002cd2f7c]\n[sha = SHA-512]\n\n# tcId = 366\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1ca7a5c1aa086b2951c1ac14e005f0072fb28383973a05117f9652cce523c05ebe94991c47fecd241d0a07e86c88ab3c620eae792aba3d1]\n[key.wx = 00d1ca7a5c1aa086b2951c1ac14e005f0072fb28383973a05117f9652c]\n[key.wy = 00ce523c05ebe94991c47fecd241d0a07e86c88ab3c620eae792aba3d1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d1ca7a5c1aa086b2951c1ac14e005f0072fb28383973a05117f9652cce523c05ebe94991c47fecd241d0a07e86c88ab3c620eae792aba3d1]\n[sha = SHA-512]\n\n# tcId = 367\n# 100-bit r and small s^-1\nm", + "sg = 313233343030\nresult = valid\nsig = 302d020d1033e67e37b32b445580bf4efb021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 043565af2a481f9390e71d7642717d0427e02e5e7de8a3c0c1ffd5f33e9474547e0d54dcaae85494c74faa23394a056e41c2839638b8523b72]\n[key.wx = 3565af2a481f9390e71d7642717d0427e02e5e7de8a3c0c1ffd5f33e]\n[key.wy = 009474547e0d54dcaae85494c74faa23394a056e41c2839638b8523b72]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043565af2a481f9390e71d7642717d0427e02e5e7de8a3c0c1ffd5f33e9474547e0d54dcaae85494c74faa23394a056e41c2839638b8523b72]\n[sha = SHA-512]\n\n# tcId = 368\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0429c694790fbd23777cfde434badcb061a326a5534264bcfe193c716c178a943f7bd4fb132565ba602358b13433a5217ac04cc035566c73f8]\n[key.wx = 29c694790fbd23777cfde434badcb061a326a5534264bcfe193c716c]\n[key.wy = 178a943f7bd4fb132565ba602358b13433a5217ac04cc035566c73f8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000429c694790fbd23777cfde434badcb061a326a5534264bcfe193c716c178a943f7bd4fb132565ba602358b13433a5217ac04cc035566c73f8]\n[sha = SHA-512]\n\n# tcId = 369\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048fd43aac8556f4665fd4c13f4e151140f42a395763c5da247a398f979687d24a9fcd6b20a59451c348a6364d0ffaf0ecfe164313db6594ab]\n[key.wx = 008fd43aac8556f4665fd4c13f4e151140f42a395763c5da247a398f97]\n[key.wy = 009687d24a9fcd6b20a59451c348a6364d0ffaf0ecfe164313db6594ab]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fd43aac8556f4665fd4c13f4e151140f42a395763c5da247a398f979687d24a9fcd6b20a59451c348a6364d0ffaf0ecfe164313db6594ab]\n[sha = SHA-512]\n\n# tcId = 370\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c2ae0e357a43f97549a725ae3704449051c96bf3633355c35b6eb7e96a84dfb6d4517d1de46b18786a506178724bf4ae4f9e418c75ab17ef]\n[key.wx = 00c2ae0e357a43f97549a725ae3704449051c96bf3633355c35b6eb7e9]\n[key.wy = 6a84dfb6d4517d1de46b18786a506178724bf4ae4f9e418c75ab17ef]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c2ae0e357a43f97549a725ae3704449051c96bf3633355c35b6eb7e96a84dfb6d4517d1de46b18786a506178724bf4ae4f9e418c75ab17ef]\n[sha = SHA-512]\n\n# tcId = 371\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101\n\n# tcId = 372\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04961617d9855f202fd600b584abe94a46674927cfdc6333c5be56ce7b89b4150d9ccdfbd77e7682ca862c0c3e96d89c918b7d3b7bbb92ff43]\n[key.wx = 00961617d9855f202fd600b584abe94a46674927cfdc6333c5be56ce7b]\n[key.wy = 0089b4150d9ccdfbd77e7682ca862c0c3e96d89c918b7d3b7bbb92ff43]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004961617d9855f202fd600b584abe94a46674927cfdc6333c5be56ce7b89b4150d9ccdfbd77e7682ca862c0c3e96d89c918b7d3b7bbb92ff43]\n[sha = SHA-512]\n\n# tcId = 373\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048db53fe4168df43ee538bc9d758b8c26fa433fb0101bcbad039585de2310dfc20835379ea406993036fd4bb0f67d14760e1eb414c32dd1f3]\n[key.wx = 008db53fe4168df43ee538bc9d758b8c26fa433fb0101bcbad039585de]\n[key.wy = 2310dfc20835379ea406993036fd4bb0f67d14760e1eb414c32dd1f3]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048db53fe4168df43ee538bc9d758b8c26fa433fb0101bcbad039585de2310dfc20835379ea406993036fd4bb0f67d14760e1eb414c32dd1f3]\n[sha = SHA-512]\n\n# tcId = 374\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 040b7fa61983e7a227f738847d457f3e8cf0a4085c312fb6dcec822570ee7434ce2ff3fbcc1d0960379876e9dd5bed28aad576eea233a44b0d]\n[key.wx = 0b7fa61983e7a227f738847d457f3e8cf0a4085c312fb6dcec822570]\n[key.wy = 00ee7434ce2ff3fbcc1d0960379876e9dd5bed28aad576eea233a44b0d]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00040b7fa61983e7a227f738847d457f3e8cf0a4085c312fb6dcec822570ee7434ce2ff3fbcc1d0960379876e9dd5bed28aad576eea233a44b0d]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0455b212919cd6886b13cd7a2556430ce442e86942f1bf6e4618ae363e795c664ae960ee1106308b7dba91240ab0c3ef8beb7d0a4d7a102a7f]\n[key.wx = 55b212919cd6886b13cd7a2556430ce442e86942f1bf6e4618ae363e]\n[key.wy = 795c664ae960ee1106308b7dba91240ab0c3ef8beb7d0a4d7a102a7f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000455b212919cd6886b13cd7a2556430ce442e86942f1bf6e4618ae363e795c664ae960ee1106308b7dba91240ab0c3ef8beb7d0a4d7a102a7f]\n[sha = SHA-512]\n\n# tcId = 376\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c43f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c0288a63ce32263f3651198dab801c896fb9308362fc40e35959e14010d00bd1c228cfb6a5faa647387804e34fa1a7f9fcc472c05ea2eeda]\n[key.wx = 00c0288a63ce32263f3651198dab801c896fb9308362fc40e35959e140]\n[key.wy = 10d00bd1c228cfb6a5faa647387804e34fa1a7f9fcc472c05ea2eeda]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c0288a63ce32263f3651198dab801c896fb9308362fc40e35959e14010d00bd1c228cfb6a5faa647387804e34fa1a7f9fcc472c05ea2eeda]\n[sha = SHA-512]\n\n# tcId = 377\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00bc07ff041506dc73a75086a4325211e696eb6b31da8ff5c2c728d38d\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 040c8e2cb5f6a903e1cccf3ac2d465f1d0dc3452237fd9e8a4df5d5341d044ca8ceecb54a1b951270971e5ab4eb226116c48c553499d1a4899]\n[key.wx = 0c8e2cb5f6a903e1cccf3ac2d465f1d0dc3452237fd9e8a4df5d5341]\n[key.wy = 00d044ca8ceecb54a1b951270971e5ab4eb226116c48c553499d1a4899]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00040c8e2cb5f6a903e1cccf3ac2d465f1d0dc3452237fd9e8a4df5d5341d044ca8ceecb54a1b951270971e5ab4eb226116c48c553499d1a4899]\n[sha = SHA-512]\n\n# tcId = 378\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041ff6b9901784d88b25527b3702622a2734b83d8a0fed0f740bb784e20e83ee0aa82933dcdc637a3760606a04974c2dc75f12095f8fdaf003]\n[key.wx = 1ff6b9901784d88b25527b3702622a2734b83d8a0fed0f740bb784e2]\n[key.wy = 0e83ee0aa82933dcdc637a3760606a04974c2dc75f12095f8fdaf003]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041ff6b9901784d88b25527b3702622a2734b83d8a0fed0f740bb784e20e83ee0aa82933dcdc637a3760606a04974c2dc75f12095f8fdaf003]\n[sha = SHA-512]\n\n# tcId = 379\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad", + "40d3e1b8392e81c29\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b21faca17b68058752d943a81f853b800562df8b2172e150953c624201c2c0f5ed3b342956cacd26f9097562d0fb0a3ddab91c5ae7e90c01]\n[key.wx = 00b21faca17b68058752d943a81f853b800562df8b2172e150953c6242]\n[key.wy = 01c2c0f5ed3b342956cacd26f9097562d0fb0a3ddab91c5ae7e90c01]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b21faca17b68058752d943a81f853b800562df8b2172e150953c624201c2c0f5ed3b342956cacd26f9097562d0fb0a3ddab91c5ae7e90c01]\n[sha = SHA-512]\n\n# tcId = 380\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00c152aafea3a8612ec83a7dc9448e6600ae6a772d75ad2caf19f9390e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f49278419e4f506889b0168b1fce1f87ee5b61efa0e73c7833eeb29cb1b334f81be8f05f3b2e98d38b030cff57947b96135ec4465c5e53f3]\n[key.wx = 00f49278419e4f506889b0168b1fce1f87ee5b61efa0e73c7833eeb29c]\n[key.wy = 00b1b334f81be8f05f3b2e98d38b030cff57947b96135ec4465c5e53f3]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f49278419e4f506889b0168b1fce1f87ee5b61efa0e73c7833eeb29cb1b334f81be8f05f3b2e98d38b030cff57947b96135ec4465c5e53f3]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4e158ef86cc53054f1635c74e65508206048929315e097a59f1519e2\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0475c6a886e22bc04b996d4a19575ce0c6686b449b6e05ef1301bd8ba233ab29f65df2d4144da2b21e90359a064765c95e325bb7e54ca28e40]\n[key.wx = 75c6a886e22bc04b996d4a19575ce0c6686b449b6e05ef1301bd8ba2]\n[key.wy = 33ab29f65df2d4144da2b21e90359a064765c95e325bb7e54ca28e40]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000475c6a886e22bc04b996d4a19575ce0c6686b449b6e05ef1301bd8ba233ab29f65df2d4144da2b21e90359a064765c95e325bb7e54ca28e40]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00e2ac0b24512e84f6fb015620d689d30d14736cf00c18838753c3814f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f554014cc14f319c18f5fa6cd739249075ff35ba3b2afdab5329ef0fd2c501f25a704addbd85c0e022748956e5998d99c387fbfd343c89e0]\n[key.wx = 00f554014cc14f319c18f5fa6cd739249075ff35ba3b2afdab5329ef0f]\n[key.wy = 00d2c501f25a704addbd85c0e022748956e5998d99c387fbfd343c89e0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f554014cc14f319c18f5fa6cd739249075ff35ba3b2afdab5329ef0fd2c501f25a704addbd85c0e022748956e5998d99c387fbfd343c89e0]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c5221f3c2de0c6fbc07ff04150679b57f57512b814f413aebafe731\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcfa8db704aca56feb23bd4b4049213233aa652045a0a81a2e0da64c091b359f7be7ae00a0e9777d9510f847430b5dfda878e66d4fb0d62f]\n[key.wx = 00bcfa8db704aca56feb23bd4b4049213233aa652045a0a81a2e0da64c]\n[key.wy = 091b359f7be7ae00a0e9777d9510f847430b5dfda878e66d4fb0d62f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bcfa8db704aca56feb23bd4b4049213233aa652045a0a81a2e0da64c091b359f7be7ae00a0e9777d9510f847430b5dfda878e66d4fb0d62f]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c221f3c2de0c6fbc07ff041506dc71b5a312063d87beb4c30c289210f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 049fd4d828ae98056be58fa69eaf9cde98ca0ed9b415d6463fa1864d9fb2a5e41f10e8789450217daafd259f204aed87b0e26100f43f7c5bad]\n[key.wx = 009fd4d828ae98056be58fa69eaf9cde98ca0ed9b415d6463fa1864d9f]\n[key.wy = 00b2a5e41f10e8789450217daafd259f204aed87b0e26100f43f7c5bad]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049fd4d828ae98056be58fa69eaf9cde98ca0ed9b415d6463fa1864d9fb2a5e41f10e8789450217daafd259f204aed87b0e26100f43f7c5bad]\n[sha = SHA-512]\n\n# tcId = 385\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c443e785bc18df780ffe082a0db8e36b46240c7b0f7d698618512421e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 046123a33969f2e036fc27885f55755d391cb0c2d3fafb0c4056c1995da03bb490047e88fe7e608912a6205b65f950a8a0a360362d3339e62c]\n[key.wx = 6123a33969f2e036fc27885f55755d391cb0c2d3fafb0c4056c1995d]\n[key.wy = 00a03bb490047e88fe7e608912a6205b65f950a8a0a360362d3339e62c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00046123a33969f2e036fc27885f55755d391cb0c2d3fafb0c4056c1995da03bb490047e88fe7e608912a6205b65f950a8a0a360362d3339e62c]\n[sha = SHA-512]\n\n# tcId = 386\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00c2de0c6fbc07ff041506dc73a74fd50136878b7e1341521b2f880b19\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a10b7aa7785b2f2791b1d4c43e127aab5669612d740b38abaa0d306ec178f216fad379ad80baa0eac57bf9a56d446d685576371b74762382]\n[key.wx = 00a10b7aa7785b2f2791b1d4c43e127aab5669612d740b38abaa0d306e]\n[key.wy = 00c178f216fad379ad80baa0eac57bf9a56d446d685576371b74762382]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a10b7aa7785b2f2791b1d4c43e127aab5669612d740b38abaa0d306ec178f216fad379ad80baa0eac57bf9a56d446d685576371b74762382]\n[sha = SHA-512]\n\n# tcId = 387\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009f56aa80ae2bcf689be2c11b5db7e3a28983b4a7590692edcf5f8db6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e012c23c6867e9553313d0179e9db953de7c368cdb59abe05f1c52bad352a57bb59c45159352c114eeb696ec3b79caa835ef5c2ae71ddcfa]\n[key.wx = 00e012c23c6867e9553313d0179e9db953de7c368cdb59abe05f1c52ba]\n[key.wy = 00d352a57bb59c45159352c114eeb696ec3b79caa835ef5c2ae71ddcfa]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e012c23c6867e9553313d0179e9db953de7c368cdb59abe05f1c52bad352a57bb59c45159352c114eeb696ec3b79caa835ef5c2ae71ddcfa]\n[sha = SHA-512]\n\n# tcId = 388\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3ead55015c579ed137c58236bb70b0a2324e79109e2ffc964262f12f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b9ccd7f0f3594954aa729bda4be883e107e7f1226465b64c2ca7105789829d787016c5c118d3ba3317a2da0a0daaf56d3004c10962333a9f]\n[key.wx = 00b9ccd7f0f3594954aa729bda4be883e107e7f1226465b64c2ca71057]\n[key.wy = 0089829d787016c5c118d3ba3317a2da0a0daaf56d3004c10962333a9f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b9ccd7f0f3594954aa729bda4be883e107e7f1226465b64c2ca7105789829d787016c5c118d3ba3317a2da0a0daaf56d3004c10962333a9f]\n[sha = SHA-512]\n\n# tcId = 389\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00de03ff820a836e39d3a8435219289444bbd22db7f7368f8411c27ee5\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04321a17de024fe89c1864e128b9e0af3e6b48800a70d6e802b8b6dffeb1a8ae96911ddbdeb83948a992b1b0fe316679c64814b6a45ec56fe9]\n[key.wx = 321a17de024fe89c1864e128b9e0af3e6b48800a70d6e802b8b6dffe]\n[key.wy = 00b1a8ae96911ddbdeb83948a992b1b0fe316679c64814b6a45ec56fe9]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004321a17de024fe89c1864e128b9e0af3e6b48800a70d6e802b8b6dffeb1a8ae96911ddbdeb83948a992b1b0fe316679c64814b6a45ec56fe9]\n[sha = SHA-512]\n\n# tcId = 390\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00f15605922897427b7d80ab106b4474d7fa962e970ffad666580fd5c6\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0408842f19b114d16be27bb4b6971377", + "ed6b1d0915e133a9ebf01674ee4c97738b6912ff71553c4a747c782eddd9d2a20fbeae38864d217859]\n[key.wx = 08842f19b114d16be27bb4b6971377ed6b1d0915e133a9ebf01674ee]\n[key.wy = 4c97738b6912ff71553c4a747c782eddd9d2a20fbeae38864d217859]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000408842f19b114d16be27bb4b6971377ed6b1d0915e133a9ebf01674ee4c97738b6912ff71553c4a747c782eddd9d2a20fbeae38864d217859]\n[sha = SHA-512]\n\n# tcId = 391\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0484d651596fd2348f1bb5c8ae9d22c8b21c4f7509240b609abad5cc243196b67b4cfaffaf0dce25ab00bfeaa1a64821332efa6dedd87cc9e7]\n[key.wx = 0084d651596fd2348f1bb5c8ae9d22c8b21c4f7509240b609abad5cc24]\n[key.wy = 3196b67b4cfaffaf0dce25ab00bfeaa1a64821332efa6dedd87cc9e7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000484d651596fd2348f1bb5c8ae9d22c8b21c4f7509240b609abad5cc243196b67b4cfaffaf0dce25ab00bfeaa1a64821332efa6dedd87cc9e7]\n[sha = SHA-512]\n\n# tcId = 392\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048fbe39e75bc4fd8a15e4b52e4bbebe2047d54385a7117e17a4d0b2b207abdb40824538e5787c718d6548583f523f6b5bbfa239a7f622c8a0]\n[key.wx = 008fbe39e75bc4fd8a15e4b52e4bbebe2047d54385a7117e17a4d0b2b2]\n[key.wy = 07abdb40824538e5787c718d6548583f523f6b5bbfa239a7f622c8a0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fbe39e75bc4fd8a15e4b52e4bbebe2047d54385a7117e17a4d0b2b207abdb40824538e5787c718d6548583f523f6b5bbfa239a7f622c8a0]\n[sha = SHA-512]\n\n# tcId = 393\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c336b340bc99d46c2c52df5428b6a0c4eb2da76c423530f767cc7652f3ab9981bd05d2955123935a379cbb2d4361a17d19878673e1e17dcc]\n[key.wx = 00c336b340bc99d46c2c52df5428b6a0c4eb2da76c423530f767cc7652]\n[key.wy = 00f3ab9981bd05d2955123935a379cbb2d4361a17d19878673e1e17dcc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c336b340bc99d46c2c52df5428b6a0c4eb2da76c423530f767cc7652f3ab9981bd05d2955123935a379cbb2d4361a17d19878673e1e17dcc]\n[sha = SHA-512]\n\n# tcId = 394\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04816fdcf370827e3f7771564e1aa73ed73e62556deadad89711cef663edcda0ea42235f4c9a8c13f787351ffe5ceb32f15fc0ccb24e0a409c]\n[key.wx = 00816fdcf370827e3f7771564e1aa73ed73e62556deadad89711cef663]\n[key.wy = 00edcda0ea42235f4c9a8c13f787351ffe5ceb32f15fc0ccb24e0a409c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004816fdcf370827e3f7771564e1aa73ed73e62556deadad89711cef663edcda0ea42235f4c9a8c13f787351ffe5ceb32f15fc0ccb24e0a409c]\n[sha = SHA-512]\n\n# tcId = 395\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 046429d2b7b07ab0d5ea352902df0efc036d7270a0a6ed39f635d04f394f7932883bc45394151324aab26ae29bbd7385fa6a42c3db84432897]\n[key.wx = 6429d2b7b07ab0d5ea352902df0efc036d7270a0a6ed39f635d04f39]\n[key.wy = 4f7932883bc45394151324aab26ae29bbd7385fa6a42c3db84432897]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00046429d2b7b07ab0d5ea352902df0efc036d7270a0a6ed39f635d04f394f7932883bc45394151324aab26ae29bbd7385fa6a42c3db84432897]\n[sha = SHA-512]\n\n# tcId = 396\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04288f38fd77dd1603ff0275cb11cba280ae3408affa6a760f396f1a1ec84ca6fd772c6ac6cc523cc72c2e7e95eb6a36a66b5cca5a58ba078a]\n[key.wx = 288f38fd77dd1603ff0275cb11cba280ae3408affa6a760f396f1a1e]\n[key.wy = 00c84ca6fd772c6ac6cc523cc72c2e7e95eb6a36a66b5cca5a58ba078a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004288f38fd77dd1603ff0275cb11cba280ae3408affa6a760f396f1a1ec84ca6fd772c6ac6cc523cc72c2e7e95eb6a36a66b5cca5a58ba078a]\n[sha = SHA-512]\n\n# tcId = 397\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c769c138f9d71ffff113273b71a4afde4f9996a1c4be658a3903cf7f430e512b868b37bb96bc17a09b0ab01b262f2e23f34f00418f6b63d6]\n[key.wx = 00c769c138f9d71ffff113273b71a4afde4f9996a1c4be658a3903cf7f]\n[key.wy = 430e512b868b37bb96bc17a09b0ab01b262f2e23f34f00418f6b63d6]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c769c138f9d71ffff113273b71a4afde4f9996a1c4be658a3903cf7f430e512b868b37bb96bc17a09b0ab01b262f2e23f34f00418f6b63d6]\n[sha = SHA-512]\n\n# tcId = 398\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0475f007c11b93e6f46e9a815cb765990a8305d3ad8d22c76fe6b257cc71b5c1951b5d464c66df7c290cf0a4f156bbf52f1e41a79dc63abce5]\n[key.wx = 75f007c11b93e6f46e9a815cb765990a8305d3ad8d22c76fe6b257cc]\n[key.wy = 71b5c1951b5d464c66df7c290cf0a4f156bbf52f1e41a79dc63abce5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000475f007c11b93e6f46e9a815cb765990a8305d3ad8d22c76fe6b257cc71b5c1951b5d464c66df7c290cf0a4f156bbf52f1e41a79dc63abce5]\n[sha = SHA-512]\n\n# tcId = 399\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 041255fb94a0f20e6faa2505c394cc3c39f07def4107127dffc4dacb6eea73c1044544a1496560bd1b049ff615e68ae0d483220327569884e1]\n[key.wx = 1255fb94a0f20e6faa2505c394cc3c39f07def4107127dffc4dacb6e]\n[key.wy = 00ea73c1044544a1496560bd1b049ff615e68ae0d483220327569884e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041255fb94a0f20e6faa2505c394cc3c39f07def4107127dffc4dacb6eea73c1044544a1496560bd1b049ff615e68ae0d483220327569884e1]\n[sha = SHA-512]\n\n# tcId = 400\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f656a632a0804cf688446b261208f793373c5ff4454bd1e0a882113f30a25d6f586e02dd4dcbf73d96af3e483b7acb5f8f4c06450dec1982]\n[key.wx = 00f656a632a0804cf688446b261208f793373c5ff4454bd1e0a882113f]\n[key.wy = 30a25d6f586e02dd4dcbf73d96af3e483b7acb5f8f4c06450dec1982]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f656a632a0804cf688446b261208f793373c5ff4454bd1e0a882113f30a25d6f586e02dd4dcbf73d96af3e483b7acb5f8f4c06450dec1982]\n[sha = SHA-512]\n\n# tcId = 401\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3f074d20e1da7232d279461732bc1bae0c5416ab9d696308622e7ffe8]\n[key.wx = 008fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3]\n", + "[key.wy = 00f074d20e1da7232d279461732bc1bae0c5416ab9d696308622e7ffe8]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3f074d20e1da7232d279461732bc1bae0c5416ab9d696308622e7ffe8]\n[sha = SHA-512]\n\n# tcId = 402\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 303e021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021d00ec0ce3fa725c1027475a5f5bf4ee980de61c3b4875afe8b654b24ee2\nflags = PointDuplication\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a30f8b2df1e258dcd2d86b9e8cd43e451e3abe95462969cf79dd180019]\n[key.wx = 008fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a3]\n[key.wy = 0f8b2df1e258dcd2d86b9e8cd43e451e3abe95462969cf79dd180019]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048fb572de4daf76702624ce4ed819d026762224e8a54215bf81b202a30f8b2df1e258dcd2d86b9e8cd43e451e3abe95462969cf79dd180019]\n[sha = SHA-512]\n\n# tcId = 403\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 303e021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021d00ec0ce3fa725c1027475a5f5bf4ee980de61c3b4875afe8b654b24ee2\nflags = PointDuplication\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e5462d3a838d4a14de96a7b0b1071eb622ae6e71ede8f95ff01c2121368e3a90d8584e194616d3211a7541f6a0960339cab28e8bfd6b1dfd]\n[key.wx = 00e5462d3a838d4a14de96a7b0b1071eb622ae6e71ede8f95ff01c2121]\n[key.wy = 368e3a90d8584e194616d3211a7541f6a0960339cab28e8bfd6b1dfd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e5462d3a838d4a14de96a7b0b1071eb622ae6e71ede8f95ff01c2121368e3a90d8584e194616d3211a7541f6a0960339cab28e8bfd6b1dfd]\n[sha = SHA-512]\n\n# tcId = 404\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 045d97670c1f121f7f1ba541505609f20143b312a7bb49d376690e1831c1b4567141a7b534e21bd2f706ae034169ab9c3f8536147904de8c5f]\n[key.wx = 5d97670c1f121f7f1ba541505609f20143b312a7bb49d376690e1831]\n[key.wy = 00c1b4567141a7b534e21bd2f706ae034169ab9c3f8536147904de8c5f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045d97670c1f121f7f1ba541505609f20143b312a7bb49d376690e1831c1b4567141a7b534e21bd2f706ae034169ab9c3f8536147904de8c5f]\n[sha = SHA-512]\n\n# tcId = 405\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d2675278da2d7daa8373dd63b7aa46cb14766571c2d8098b83a102a5699b572d4b951497418a376930022d48fe59966b158fa08340e24b98]\n[key.wx = 00d2675278da2d7daa8373dd63b7aa46cb14766571c2d8098b83a102a5]\n[key.wy = 699b572d4b951497418a376930022d48fe59966b158fa08340e24b98]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d2675278da2d7daa8373dd63b7aa46cb14766571c2d8098b83a102a5699b572d4b951497418a376930022d48fe59966b158fa08340e24b98]\n[sha = SHA-512]\n\n# tcId = 406\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 045a5cd1162388348734dae20e2235ae2c464adef0a196f9aaf02482ca2ae94e8b9a024375036429b632ab485e02c5a9665b289b8a47bade8f]\n[key.wx = 5a5cd1162388348734dae20e2235ae2c464adef0a196f9aaf02482ca]\n[key.wy = 2ae94e8b9a024375036429b632ab485e02c5a9665b289b8a47bade8f]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045a5cd1162388348734dae20e2235ae2c464adef0a196f9aaf02482ca2ae94e8b9a024375036429b632ab485e02c5a9665b289b8a47bade8f]\n[sha = SHA-512]\n\n# tcId = 407\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04cacd93eb11a821de3d882bab7411e7c77f23c08da174189cc987dc41716fe378ab842161bc16def6e037d4ba9d30d8cb41ad30cf0656e50b]\n[key.wx = 00cacd93eb11a821de3d882bab7411e7c77f23c08da174189cc987dc41]\n[key.wy = 716fe378ab842161bc16def6e037d4ba9d30d8cb41ad30cf0656e50b]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004cacd93eb11a821de3d882bab7411e7c77f23c08da174189cc987dc41716fe378ab842161bc16def6e037d4ba9d30d8cb41ad30cf0656e50b]\n[sha = SHA-512]\n\n# tcId = 408\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04cf46960060453e55577f1bee6a9c4709e7cdcba45ca8020bb3536931ea4ec33309213864a1318aee0a86d8b6f0c1b9741cd6bd5dea4f4066]\n[key.wx = 00cf46960060453e55577f1bee6a9c4709e7cdcba45ca8020bb3536931]\n[key.wy = 00ea4ec33309213864a1318aee0a86d8b6f0c1b9741cd6bd5dea4f4066]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004cf46960060453e55577f1bee6a9c4709e7cdcba45ca8020bb3536931ea4ec33309213864a1318aee0a86d8b6f0c1b9741cd6bd5dea4f4066]\n[sha = SHA-512]\n\n# tcId = 409\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0462f4eaf3797bdc3d5d8cfaa07b5af7060e131b183ca4eded4819e561bff3eadd7b55db2dc01bd20569e6c47c9212f9b2d6793795b51e4f6c]\n[key.wx = 62f4eaf3797bdc3d5d8cfaa07b5af7060e131b183ca4eded4819e561]\n[key.wy = 00bff3eadd7b55db2dc01bd20569e6c47c9212f9b2d6793795b51e4f6c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000462f4eaf3797bdc3d5d8cfaa07b5af7060e131b183ca4eded4819e561bff3eadd7b55db2dc01bd20569e6c47c9212f9b2d6793795b51e4f6c]\n[sha = SHA-512]\n\n# tcId = 410\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c4a4bf5ae0138587f50ab7a2c336a430527a86f59f9765c2f3f5488df9419bf9df5f121de3a32db17b49c72b606b2be5ce56acb565cc12b7]\n[key.wx = 00c4a4bf5ae0138587f50ab7a2c336a430527a86f59f9765c2f3f5488d]\n[key.wy = 00f9419bf9df5f121de3a32db17b49c72b606b2be5ce56acb565cc12b7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c4a4bf5ae0138587f50ab7a2c336a430527a86f59f9765c2f3f5488df9419bf9df5f121de3a32db17b49c72b606b2be5ce56acb565cc12b7]\n[sha = SHA-512]\n\n# tcId = 411\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e7cb5ae54dbe619ab5069f14566236b3c6b0b44f1c4c531e66d89b3e64be7fdc18789629dfddf7158f8ff27abd553bfac3f7c874bccdc31b]\n[key.wx = 00e7cb5ae54dbe619ab5069f14566236b3c6b0b44f1c4c531e66d89b3e]\n[key.wy = 64be7fdc18789629dfddf7158f8ff27abd553bfac3f7c874bccdc31b]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e7cb5ae54dbe619ab5069f14566236b3c6b0b44f1c4c531e66d89b3e64be7fdc18789629dfddf7158f8ff27abd553bfac3f7c874bccdc31b]\n[sha = SHA-512]\n\n# tcId = 412\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00db6db6db6db6db6db6db6db6db6ceed4c09e84c77ebd9116e17391eb\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0430db5d8279319cf5a3b6768a0c5e5c84752f6314f735d63f6c5650cdd32fb54f74d4a5088e6774a13201683642790d2e69e55e4f47612934]\n[key.wx = 30db5d827", + "9319cf5a3b6768a0c5e5c84752f6314f735d63f6c5650cd]\n[key.wy = 00d32fb54f74d4a5088e6774a13201683642790d2e69e55e4f47612934]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000430db5d8279319cf5a3b6768a0c5e5c84752f6314f735d63f6c5650cdd32fb54f74d4a5088e6774a13201683642790d2e69e55e4f47612934]\n[sha = SHA-512]\n\n# tcId = 413\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 047db27da4d67a2de0c78815809719bdf6976332c67ef0f3827df4adc22ab37aec2eed0d5e67acfd6a195f21032d9af71ce73e120fdda29f1a]\n[key.wx = 7db27da4d67a2de0c78815809719bdf6976332c67ef0f3827df4adc2]\n[key.wy = 2ab37aec2eed0d5e67acfd6a195f21032d9af71ce73e120fdda29f1a]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047db27da4d67a2de0c78815809719bdf6976332c67ef0f3827df4adc22ab37aec2eed0d5e67acfd6a195f21032d9af71ce73e120fdda29f1a]\n[sha = SHA-512]\n\n# tcId = 414\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021d00cccccccccccccccccccccccccccc121be6fa59cb431754377d168831\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1c19d46b517bb3bd7bdf074ff975c0dbd2bde10d1ad217e58ebc8c55ac898c040a185804ddb032b48103d6c8d12043d3a4fec93aba7a6d7]\n[key.wx = 00d1c19d46b517bb3bd7bdf074ff975c0dbd2bde10d1ad217e58ebc8c5]\n[key.wy = 5ac898c040a185804ddb032b48103d6c8d12043d3a4fec93aba7a6d7]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d1c19d46b517bb3bd7bdf074ff975c0dbd2bde10d1ad217e58ebc8c55ac898c040a185804ddb032b48103d6c8d12043d3a4fec93aba7a6d7]\n[sha = SHA-512]\n\n# tcId = 415\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c249249249249249249249249249227ce201a6b76951f982e7ae89852\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d95ac96ae9dbfb80911862e00a4cadbcb2359f499b53be007f0711c093d3da931acbb9242800dc521695b4f19ff2dffc3613f40bdb15c3cd]\n[key.wx = 00d95ac96ae9dbfb80911862e00a4cadbcb2359f499b53be007f0711c0]\n[key.wy = 0093d3da931acbb9242800dc521695b4f19ff2dffc3613f40bdb15c3cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d95ac96ae9dbfb80911862e00a4cadbcb2359f499b53be007f0711c093d3da931acbb9242800dc521695b4f19ff2dffc3613f40bdb15c3cd]\n[sha = SHA-512]\n\n# tcId = 416\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c0eb10e5ab95facded4061029d63a46f46f12947411f2ea561a592057\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[key.wx = 00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 00bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]\n[sha = SHA-512]\n\n# tcId = 417\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c43f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 418\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bc07ff041506dc73a75086a4325211e696eb6b31da8ff5c2c728d38d021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[key.wx = 00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]\n[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]\n[sha = SHA-512]\n\n# tcId = 419\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303c021c43f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n# tcId = 420\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 303d021d00bc07ff041506dc73a75086a4325211e696eb6b31da8ff5c2c728d38d021c249249249249249249249249249227ce201a6b76951f982e7ae89851\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]\n[key.wy = 00ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]\n[sha = SHA-512]\n\n# tcId = 421\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 303e021d00f72915d6d916014279616186869a01228fcd9f1b4078353018b399ab021d00b67f2b91eeeb910381f5b461a4a39c642aea4792013d4eb63da1832b\n\n# tcId = 422\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 303e021d00a5d179c336ccdc760dfddd913cdf8ea468d0f4686f7b2d3825698ed7021d00a77f12060a4d1b94b0d1c443eae3ad6e21b7eacfdf6fbf39a2b29658\n\n# tcId = 423\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 303e021d00b7c65dce56abe24fb4592ece5ac1e6ee8353431f7452409add736884021d00e5fe5db7988931026b937dc4ef983fe446ca134d29b94ac777cde317\n\n# tcId = 424\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 303d021c05c563d3a4bad874e4610adfa57777a59f995bfa06ef97bf125a4988021d0097ed68f546cf4bb4998524c18356f3af162d2bf2744be93357bc4b4b\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[key.wx = 00aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]\n[key.wy = 008a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]\n[sha = SHA-512]\n\n# tcId = 425\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00c7a6f358b7d93815189ae5d2c3ab4d4e05f43176a52dd4fc5b48a34a021d00a2458512bb8dbe6f1bd6eb01d2d77d5624e8547bf87d85fc731c0c86\n\n# tcId = 426\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c5f56ca587d16664a20dad13df85a475978e5cee81a8d0f49faaf6158021d00b64ef59d79461fe1a09a5864907435f70bd75f183afb11903f560b7c\n\n# tcId = 427\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00dd94f5b56e9947d007e7c8efd894a5c882f1d0b5dd56c32b5b266521021d00fbc883741bd27c59958ae17ba6e4a41ad1edeca9a3ba31c8f233b5ac\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[key.wx = 00bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]\n[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]\n[sha = SHA-512]\n\n# tcId = 428\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d008071e6682c6e8a32706dc7e411503946546b31fff27dcce188ae389f021d00dc396c797d44edf794432d1da091f8c762974d8ce1f06e08ca013622\n\n# tcId = 429\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c791624e5f234b8950d509d0b456", + "ef6fa778b19dccd609d496b62a211021c6c51e846fa53d03d42f798e6bb90954f9a48c1794b47e84ac97b460a\n\n# tcId = 430\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021b34befa1d25b756ce76b383a6e8753741c12a59266c2c7921ff6e8b021d00bc44e3823e4d807cbc92fa786a89e62a4b217b5fb0c0f1865d4a7e43\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]\n[key.wy = 00eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]\n[sha = SHA-512]\n\n# tcId = 431\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c224a38e733ebd3fac274ecc50ecef2e7c3189be2b9d093a8dcc6fa3a021c134fa5a4f923d296b3c6dd4683d249ccf0ad272890e4149c9a0d7415\n\n# tcId = 432\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c338d07d990879ad844e24c1788e362269d8aca70500357d385768227021d00f745cc4ebaaf1cd42830026a66e5b95564cdbee5edf853bb2cc91259\n\n# tcId = 433\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c689fce4b33d8212a663640a1ae0efaa7a7d7711beba719374fe634ee021c04bd9981fa52293063076f0fd70fc31875d580ef94f020d2f95440e0\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[key.wx = 00ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]\n[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]\n[sha = SHA-512]\n\n# tcId = 434\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c2a4287e01510e7fb5fed2e1ccc3f2a6929cf7d03850e49d7ae8a504a021c355c3915f3fa9637dc8001438a8c04e15d14934cabd430feb0cb5ba5\n\n# tcId = 435\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00b5bf795a38adb052b401468ffcab81103d2d9fca2e15b8d08ab98ce8021c5ec0d2c6aec71888c941af324c7272bec192abb292f9df82a24e8a41\n\n# tcId = 436\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c100ed07f467133bf10917f7a15ab2bfda519bdbc2653b95955e22211021d00b38a081f7c2e2b775d1da868d0381c09ba1559c9613b5be7159363ad\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]\n[sha = SHA-512]\n\n# tcId = 437\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c54e6add8ac910e52c6228fe3980d8f586218334d8d859ba9a3329917021c5836cc79ec88519eab4a6b2614c501628c9fee32fbafd93e32158409\n\n# tcId = 438\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c1230d5409f379584b4d548b7bccba64baf81d512a9f2e6398c4e3a66021c1937a298f8cbdfa85b8e6fcf0a12be4966d80270cade85a0c37ee6f3\n\n# tcId = 439\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00862f43b044fb32adb45e00378ba083ae761c84452054f17b1341bf5b021d0095d8d8e5e3a6cc2b0a06c792252ca11a642257721831578520f96b9e\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]\n[key.wy = 00ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]\n[sha = SHA-512]\n\n# tcId = 440\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00cb5cabb1ca01b847a6bc70558d1e5d3a204d1741bbe800f4b159af35021c3580cc85f218394130bddf1c4eac04fe96f59f14fb436686950398be\n\n# tcId = 441\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00c9d83dc04cf4ee89c405045d0fd1d704f627ca5bbe350f40b826bbc1021c74fedc9e55045e9759f2124460fdfb991dc620cfee6effc0b4adaa9e\n\n# tcId = 442\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c46dd65b6e7f10c0841841b01033a5befd3a0e78c85f1f390bb3cdf25021d00f33acea3d47cf0dd5273735b004104f6512ed641052509422c0325a7\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[key.wx = 00f7e4713d085112112c37cdf4601ff688da796016b71a727a]\n[key.wy = 00de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]\n[sha = SHA-512]\n\n# tcId = 443\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00ddb4a7e400a1e98118f474722da3f421f65a76eec61f4f7b699faf07021d00db80cba199859cdfe916d6ab3deb91d76aaf0ed554c8f9ed7e5aa59d\n\n# tcId = 444\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c4c260b546280604e4c80384721c9e803ef704e7fb70168e6730fc1f3021d00a8aceae219ac25c9f04231b4e0c171413db1d26df1c1e8430062eb2b\n\n# tcId = 445\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00f4098d2c0240e78fceabb0183df0b39e7ad3e7f5d6da1587fa09853c021d00d42412b2abaa614c95eb11f9b9346282ce3a1c93aac35ce7aa372f4a\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[key.wx = 00ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]\n[key.wy = 0086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]\n[sha = SHA-512]\n\n# tcId = 446\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c48ddc497f9a4732c677e46c0e2bdabec54fc9d27e46ab595056db4d9021d00b8219ebbfaebc2fe4311efab0c35d4392751351bcc1971e8d01941e4\n\n# tcId = 447\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00e1abaf51d27a6d7d4c9b28078325cac2d7ce3d5403916c68903760b7021c2c45a99e2770f782fee5ca1d713eaecf07e62d53c64b7cf93de9900d\n\n# tcId = 448\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00868cd127c99e1149f7fc8d878cdfa986b62e99addea281149611ff15021c16e5953820135b7d462ce5434ef85920e973eec9e4d14d7cb3cc2a3f\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]\n[sha = SHA-512]\n\n# tcId = 449\n# y-coordinate of the publ", + "ic key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303e021d00a375929718ec4e6ada9c9370c51df6bdaee7ebab2a70675d42a0b6b3021d009eaf4802efaf7ca082ffbf5ed774af43792d9b3fd711c6b1c36112ff\n\n# tcId = 450\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d00d97b32f3bf8bc11ec2672dd6320418beeed99527a63fe4c52199ec61021c68dd9006b03319ccbe651d0bdaf84c63356f03cb007a6865ee3e0206\n\n# tcId = 451\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 303d021d008ee5794dc2e66f2584910ea1d8361e5b53db535adcf5c1c35e128309021c5d1d8b9b996c0a488e05af14421b86e9841f0cba706027fc827d4d95\n\n[key.curve = secp224r1]\n[key.keySize = 224]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[key.wx = 00b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]\n[key.wy = 00fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]\n[sha = SHA-512]\n\n# tcId = 452\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c7999727c0cc02d88ef274012a762afcbb19e7fce19091a02acd00564021d00dbfacf67999f22c499d48a60a6fe4bbb746199c29957a1ec7a0900e0\n\n# tcId = 453\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303c021c5797c21c0162e42f69693c6c0244dfdf9218c01e9235760177b61a54021c5452c887b27fb342a8a00d27579c7195dddb73df399233ed0dea567b\n\n# tcId = 454\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 303d021c0eb9dc5d67bb0d4009544f8654977907dfe770e7fae4571d31d7b4fa021d00ab5cda53e868bff5198be4be3681b186cb0c1396d272c71f093f8b12\n\n", }; -static const size_t kLen69 = 138649; +static const size_t kLen102 = 131736; -static const char *kData69[] = { - "# Imported from Wycheproof's ecdsa_secp256r1_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[key.wx = 2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838]\n[key.wy = 0c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[sha = SHA-256]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802204cd60b855d442f5b3c7b11eb6c4e0ae7525fe710fab9aa7c77a67f79e6fadd76\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# Some implementations of ECDSA and DSA incorrectly encode r and s by not\n# including leading zeros in the ASN encoding of integers when necessary. Hence,\n# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings\n# assuming that the signature is otherwise valid.\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 4\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30814502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30460281202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802812100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 7\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047028200202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 9\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180282002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304502212ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3045021f2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022200b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 15\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 16\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3085010000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304a028501000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 18\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285010000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 19\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304e02890100000000000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 21\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304e02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028901000000000000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 22\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 24\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802847fffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 25\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 27\n# ", - "length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180284ffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 28\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 30\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285ffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 31\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 33\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180288ffffffffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 34\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 304502ff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 36\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802ff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 37\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502802ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 39\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 40\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 41\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 42\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047000002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 45\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0500\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a498177304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492500304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a222549817702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492224250002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d222202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180004deadbeef022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182226498177022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1822252500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182223022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd00304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2228aa00bb00cd0002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2226aa02aabb02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182229aa00bb00cd00022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 60\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182227aa02aabb022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 61\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 62\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049228002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 64\n# using composition with indefin", - "ite length\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 65\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049228003202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 67\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280032100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 68\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 324502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 73\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 74\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 75\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30493001023044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 76\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847\n\n# tcId = 77\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 78\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 79\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db00\n\n# tcId = 80\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db05000000\n\n# tcId = 81\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db060811220000\n\n# tcId = 82\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000fe02beef\n\n# tcId = 83\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0002beef\n\n# tcId = 84\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047300002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 85\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db3000\n\n# tcId = 86\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 87\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 302202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18\n\n# tcId = 88\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 306802202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3023022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302402022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302302202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022200002ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180223000000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134", - "b49156847db0500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250281022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30250500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304500202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304501202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304503202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304504202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045ff202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18012100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18032100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18042100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18ff2100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250200022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3049222402012b021fa3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1822250201000220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045022029a3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022102b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e98022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b491568475b\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021f2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021fa3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847\n\n# tcId = 124\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180222ff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 127\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3026090180022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 128\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 302502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 302502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012ba3a8bd6b94d5ed80a6d9d1190a436ebccc0833490686deac8635bcb9bf5369022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2ba3a8bf6b94d5eb80a6d9d1190a436f42fe12d7fad749d4c512a036c0f908c7022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30450220d45c5741946b2a137f59262ee6f5bc91001af27a5e1117a64733950642a3d1e8022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100d45c5740946b2a147f59262ee6f5bc90bd01ed280528b62b3aed5fc93f06f739022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221fed45c5742946b2a127f59262ee6f5bc914333f7ccb6f979215379ca434640ac97022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8", - "cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100d45c5741946b2a137f59262ee6f5bc91001af27a5e1117a64733950642a3d1e8022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022101b329f478a2bbd0a6c384ee1493b1f518276e0e4a5375928d6fcd160c11cb6d2c\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f47aa2bbd0a4c384ee1493b1f518ada018ef05465583885980861905228a\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180221ff4cd60b865d442f5a3c7b11eb6c4e0ae79578ec6353a20bf783ecb4b6ea97b825\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180221fe4cd60b875d442f593c7b11eb6c4e0ae7d891f1b5ac8a6d729032e9f3ee3492d4\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022101b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802204cd60b865d442f5a3c7b11eb6c4e0ae79578ec6353a20bf783ecb4b6ea97b825\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special ca", - "se values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325510201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325500201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000", - "000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325520201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff000000010000000000000000000000010000000000000000000000000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nr", - "esult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000001000000000000000000000000090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 216\n# Edge case for Shamir multiplication\nmsg = 3639383139\nresult = valid\nsig = 3044022064a1aab5000d0e804f3e2fc02bdee9be8ff312334e2ba16d11547c97711c898e02206af015971cc30be6d1a206d4e013e0997772a2f91d73286ffd683b9bb2cf4f1b\n\n# tcId = 217\n# special case hash\nmsg = 343236343739373234\nresult = valid\nsig = 3044022016aea964a2f6506d6f78c81c91fc7e8bded7d397738448de1e19a0ec580bf2660220252cd762130c6667cfe8b7bc47d27d78391e8e80c578d1cd38c3ff033be928e9\n\n# tcId = 218\n# special case hash\nmsg = 37313338363834383931\nresult = valid\nsig = 30450221009cc98be2347d469bf476dfc26b9b733df2d26d6ef524af917c665baccb23c8820220093496459effe2d8d70727b82462f61d0ec1b7847929d10ea631dacb16b56c32\n\n# tcId = 219\n# special case hash\nmsg = 3130333539333331363638\nresult = valid\nsig = 3044022073b3c90ecd390028058164524dde892703dce3dea0d53fa8093999f07ab8aa4302202f67b0b8e20636695bb7d8bf0a651c802ed25a395387b5f4188c0c4075c88634\n\n# tcId = 220\n# special case hash\nmsg = 33393439343031323135\nresult = valid\nsig = 3046022100bfab3098252847b328fadf2f89b95c851a7f0eb390763378f37e90119d5ba3dd022100bdd64e234e832b1067c2d058ccb44d978195ccebb65c2aaf1e2da9b8b4987e3b\n\n# tcId = 221\n# special case hash\nmsg = 31333434323933303739\nresult = valid\nsig = 30440220204a9784074b246d8bf8bf04a4ceb1c1f1c9aaab168b1596d17093c5cd21d2cd022051cce41670636783dc06a759c8847868a406c2506fe17975582fe648d1d88b52\n\n# tcId = 222\n# special case hash\nmsg = 33373036323131373132\nresult = valid\nsig = 3046022100ed66dc34f551ac82f63d4aa4f81fe2cb0031a91d1314f835027bca0f1ceeaa0302210099ca123aa09b13cd194a422e18d5fda167623c3f6e5d4d6abb8953d67c0c48c7\n\n# tcId = 223\n# special case hash\nmsg = 333433363838373132\nresult = valid\nsig = 30450220060b700bef665c68899d44f2356a578d126b062023ccc3c056bf0f60a237012b0221008d186c027832965f4fcc78a3366ca95dedbb410cbef3f26d6be5d581c11d3610\n\n# tcId = 224\n# special case hash\nmsg = 31333531353330333730\nresult = valid\nsig = 30460221009f6adfe8d5eb5b2c24d7aa7934b6cf29c93ea76cd313c9132bb0c8e38c96831d022100b26a9c9e40e55ee0890c944cf271756c906a33e66b5bd15e051593883b5e9902\n\n# tcId = 225\n# special case hash\nmsg = 36353533323033313236\nresult = valid\nsig = 3045022100a1af03ca91677b673ad2f33615e56174a1abf6da168cebfa8868f4ba273f16b7022020aa73ffe48afa6435cd258b173d0c2377d69022e7d098d75caf24c8c5e06b1c\n\n# tcId = 226\n# special case hash\nmsg = 31353634333436363033\nresult = valid\nsig = 3045022100fdc70602766f8eed11a6c99a71c973d5659355507b843da6e327a28c11893db902203df5349688a085b137b1eacf456a9e9e0f6d15ec0078ca60a7f83f2b10d21350\n\n# tcId = 227\n# special case hash\nmsg = 34343239353339313137\nresult = valid\nsig = 3046022100b516a314f2fce530d6537f6a6c49966c23456f63c643cf8e0dc738f7b876e675022100d39ffd033c92b6d717dd536fbc5efdf1967c4bd80954479ba66b0120cd16fff2\n\n# tcId = 228\n# special case hash\nmsg = 3130393533323631333531\nresult = valid\nsig = 304402203b2cbf046eac45842ecb7984d475831582717bebb6492fd0a485c101e29ff0a802204c9b7b47a98b0f82de512bc9313aaf51701099cac5f76e68c8595fc1c1d99258\n\n# tcId = 229\n# special case hash\nmsg = 35393837333530303431\nresult = valid\nsig = 3044022030c87d35e636f540841f14af54e2f9edd79d0312cfa1ab656c3fb15bfde48dcf022047c15a5a82d24b75c85a692bd6ecafeb71409ede23efd08e0db9abf6340677ed\n\n# tcId = 230\n# special case hash\nmsg = 33343633303036383738\nresult = valid\nsig = 3044022038686ff0fda2cef6bc43b58cfe6647b9e2e8176d168dec3c68ff262113760f520220067ec3b651f422669601662167fa8717e976e2db5e6a4cf7c2ddabb3fde9d67d\n\n# tcId = 231\n# special case hash\nmsg = 39383137333230323837\nresult = valid\nsig = 3044022044a3e23bf314f2b344fc25c7f2de8b6af3e17d27f5ee844b225985ab6e2775cf02202d48e223205e98041ddc87be532abed584f0411f5729500493c9cc3f4dd15e86\n\n# tcId = 232\n# special case hash\nmsg = 33323232303431303436\nresult = valid\nsig = 304402202ded5b7ec8e90e7bf11f967a3d95110c41b99db3b5aa8d330eb9d638781688e902207d5792c53628155e1bfc46fb1a67e3088de049c328ae1f44ec69238a009808f9\n\n# tcId = 233\n# special case hash\nmsg = 36363636333037313034\nresult = valid\nsig = 3046022100bdae7bcb580bf335efd3bc3d31870f923eaccafcd40ec2f605976f15137d8b8f022100f6dfa12f19e525270b0106eecfe257499f373a4fb318994f24838122ce7ec3c7\n\n# tcId = 234\n# special case hash\nmsg = 31303335393531383938\nresult = valid\nsig = 3045022050f9c4f0cd6940e162720957ffff513799209b78596956d21ece251c2401f1c6022100d7033a0a787d338e889defaaabb106b95a4355e411a59c32aa5167dfab244726\n\n# tcId = 235\n# special case hash\nmsg = 31383436353937313935\nresult = valid\nsig = 3045022100f612820687604fa01906066a378d67540982e29575d019aabe90924ead5c860d02203f9367702dd7dd4f75ea98afd20e328a1a99f4857b316525328230ce294b0fef\n\n# tcId = 236\n# special case hash\nmsg = 33313336303436313839\nresult = valid\nsig = 30460221009505e407657d6e8bc93db5da7aa6f5081f61980c1949f56b0f2f507da5782a7a022100c60d31904e3669738ffbeccab6c3656c08e0ed5cb92b3cfa5e7f71784f9c5021\n\n# tcId = 237\n# special case hash\nmsg = 32363633373834323534\nresult = valid\nsig = 3046022100bbd16fbbb656b6d0d83e6a7787cd691b08735aed371732723e1c68a40404517d0221009d8e35dba96028b7787d91315be675877d2d097be5e8ee34560e3e7fd25c0f00\n\n# tcId = 238\n# special case hash\nmsg = 31363532313030353234\nresult = valid\nsig = 304402202ec9760122db98fd06ea76848d35a6da442d2ceef7559a30cf57c61e92df327e02207ab271da90859479701fccf86e462ee3393fb6814c27b760c4963625c0a19878\n\n# tcId = 239\n# special case hash\nmsg = 35373438303831363936\nresult = valid\nsig = 3044022054e76b7683b6650baa6a7fc49b1c51eed9ba9dd463221f7a4f1005a89fe00c5902202ea076886c773eb937ec1cc8374b7915cfd11b1c1ae1166152f2f7806a31c8fd\n\n# tcId = 240\n# special case hash\nmsg = 36333433393133343638\nresult = valid\nsig = 304402205291deaf24659ffbbce6e3c26f6021097a74abdbb69be4fb10419c0c496c9466022065d6fcf336d27cc7cdb982bb4e4ecef5827f84742f29f10abf83469270a03dc3\n\n# tcId = 241\n# special case hash\nmsg = 31353431313033353938\nresult = valid\nsig = 30450220207a3241812d75d947419dc58efb05e8003b33fc17eb50f9d15166a88479f107022100cdee749f2e492b213ce80b32d0574f62f1c5d70793cf55e382d5caadf7592767\n\n# tcId = 242\n# special case hash\nmsg = 3130343738353830313238\nresult = valid\nsig = 304502206554e49f82a855204328ac94913bf01bbe84437a355a0a37c0dee3cf81aa7728022100aea00de2507ddaf5c94e1e126980d3df16250a2eaebc8be486effe7f22b4f929\n\n# tcId = 243\n# special case hash\nmsg = 3130353336323835353638\nresult = valid\nsig = 3046022100a54c5062648339d2bff06f71c88216c26c6e19b4d80a8c602990ac82707efdfc022100e99bbe7fcfafae3e69fd016777517aa01056317f467ad09aff09be73c9731b0d\n\n# tcId = 244\n# special case hash\nmsg = 393533393034313035\nresult = valid\nsi", - "g = 3045022100975bd7157a8d363b309f1f444012b1a1d23096593133e71b4ca8b059cff37eaf02207faa7a28b1c822baa241793f2abc930bd4c69840fe090f2aacc46786bf919622\n\n# tcId = 245\n# special case hash\nmsg = 393738383438303339\nresult = valid\nsig = 304402205694a6f84b8f875c276afd2ebcfe4d61de9ec90305afb1357b95b3e0da43885e02200dffad9ffd0b757d8051dec02ebdf70d8ee2dc5c7870c0823b6ccc7c679cbaa4\n\n# tcId = 246\n# special case hash\nmsg = 33363130363732343432\nresult = valid\nsig = 3045022100a0c30e8026fdb2b4b4968a27d16a6d08f7098f1a98d21620d7454ba9790f1ba602205e470453a8a399f15baf463f9deceb53acc5ca64459149688bd2760c65424339\n\n# tcId = 247\n# special case hash\nmsg = 31303534323430373035\nresult = valid\nsig = 30440220614ea84acf736527dd73602cd4bb4eea1dfebebd5ad8aca52aa0228cf7b99a880220737cc85f5f2d2f60d1b8183f3ed490e4de14368e96a9482c2a4dd193195c902f\n\n# tcId = 248\n# special case hash\nmsg = 35313734343438313937\nresult = valid\nsig = 3045022100bead6734ebe44b810d3fb2ea00b1732945377338febfd439a8d74dfbd0f942fa02206bb18eae36616a7d3cad35919fd21a8af4bbe7a10f73b3e036a46b103ef56e2a\n\n# tcId = 249\n# special case hash\nmsg = 31393637353631323531\nresult = valid\nsig = 30440220499625479e161dacd4db9d9ce64854c98d922cbf212703e9654fae182df9bad2022042c177cf37b8193a0131108d97819edd9439936028864ac195b64fca76d9d693\n\n# tcId = 250\n# special case hash\nmsg = 33343437323533333433\nresult = valid\nsig = 3045022008f16b8093a8fb4d66a2c8065b541b3d31e3bfe694f6b89c50fb1aaa6ff6c9b20221009d6455e2d5d1779748573b611cb95d4a21f967410399b39b535ba3e5af81ca2e\n\n# tcId = 251\n# special case hash\nmsg = 333638323634333138\nresult = valid\nsig = 3046022100be26231b6191658a19dd72ddb99ed8f8c579b6938d19bce8eed8dc2b338cb5f8022100e1d9a32ee56cffed37f0f22b2dcb57d5c943c14f79694a03b9c5e96952575c89\n\n# tcId = 252\n# special case hash\nmsg = 33323631313938363038\nresult = valid\nsig = 3045022015e76880898316b16204ac920a02d58045f36a229d4aa4f812638c455abe0443022100e74d357d3fcb5c8c5337bd6aba4178b455ca10e226e13f9638196506a1939123\n\n# tcId = 253\n# special case hash\nmsg = 39363738373831303934\nresult = valid\nsig = 30440220352ecb53f8df2c503a45f9846fc28d1d31e6307d3ddbffc1132315cc07f16dad02201348dfa9c482c558e1d05c5242ca1c39436726ecd28258b1899792887dd0a3c6\n\n# tcId = 254\n# special case hash\nmsg = 34393538383233383233\nresult = valid\nsig = 304402204a40801a7e606ba78a0da9882ab23c7677b8642349ed3d652c5bfa5f2a9558fb02203a49b64848d682ef7f605f2832f7384bdc24ed2925825bf8ea77dc5981725782\n\n# tcId = 255\n# special case hash\nmsg = 383234363337383337\nresult = valid\nsig = 3045022100eacc5e1a8304a74d2be412b078924b3bb3511bac855c05c9e5e9e44df3d61e9602207451cd8e18d6ed1885dd827714847f96ec4bb0ed4c36ce9808db8f714204f6d1\n\n# tcId = 256\n# special case hash\nmsg = 3131303230383333373736\nresult = valid\nsig = 304502202f7a5e9e5771d424f30f67fdab61e8ce4f8cd1214882adb65f7de94c31577052022100ac4e69808345809b44acb0b2bd889175fb75dd050c5a449ab9528f8f78daa10c\n\n# tcId = 257\n# special case hash\nmsg = 313333383731363438\nresult = valid\nsig = 3045022100ffcda40f792ce4d93e7e0f0e95e1a2147dddd7f6487621c30a03d710b3300219022079938b55f8a17f7ed7ba9ade8f2065a1fa77618f0b67add8d58c422c2453a49a\n\n# tcId = 258\n# special case hash\nmsg = 333232313434313632\nresult = valid\nsig = 304602210081f2359c4faba6b53d3e8c8c3fcc16a948350f7ab3a588b28c17603a431e39a8022100cd6f6a5cc3b55ead0ff695d06c6860b509e46d99fccefb9f7f9e101857f74300\n\n# tcId = 259\n# special case hash\nmsg = 3130363836363535353436\nresult = valid\nsig = 3045022100dfc8bf520445cbb8ee1596fb073ea283ea130251a6fdffa5c3f5f2aaf75ca8080220048e33efce147c9dd92823640e338e68bfd7d0dc7a4905b3a7ac711e577e90e7\n\n# tcId = 260\n# special case hash\nmsg = 3632313535323436\nresult = valid\nsig = 3046022100ad019f74c6941d20efda70b46c53db166503a0e393e932f688227688ba6a576202210093320eb7ca0710255346bdbb3102cdcf7964ef2e0988e712bc05efe16c199345\n\n# tcId = 261\n# special case hash\nmsg = 37303330383138373734\nresult = valid\nsig = 3046022100ac8096842e8add68c34e78ce11dd71e4b54316bd3ebf7fffdeb7bd5a3ebc1883022100f5ca2f4f23d674502d4caf85d187215d36e3ce9f0ce219709f21a3aac003b7a8\n\n# tcId = 262\n# special case hash\nmsg = 35393234353233373434\nresult = valid\nsig = 30440220677b2d3a59b18a5ff939b70ea002250889ddcd7b7b9d776854b4943693fb92f702206b4ba856ade7677bf30307b21f3ccda35d2f63aee81efd0bab6972cc0795db55\n\n# tcId = 263\n# special case hash\nmsg = 31343935353836363231\nresult = valid\nsig = 30450220479e1ded14bcaed0379ba8e1b73d3115d84d31d4b7c30e1f05e1fc0d5957cfb0022100918f79e35b3d89487cf634a4f05b2e0c30857ca879f97c771e877027355b2443\n\n# tcId = 264\n# special case hash\nmsg = 34303035333134343036\nresult = valid\nsig = 3044022043dfccd0edb9e280d9a58f01164d55c3d711e14b12ac5cf3b64840ead512a0a302201dbe33fa8ba84533cd5c4934365b3442ca1174899b78ef9a3199f49584389772\n\n# tcId = 265\n# special case hash\nmsg = 33303936343537353132\nresult = valid\nsig = 304402205b09ab637bd4caf0f4c7c7e4bca592fea20e9087c259d26a38bb4085f0bbff11022045b7eb467b6748af618e9d80d6fdcd6aa24964e5a13f885bca8101de08eb0d75\n\n# tcId = 266\n# special case hash\nmsg = 32373834303235363230\nresult = valid\nsig = 304502205e9b1c5a028070df5728c5c8af9b74e0667afa570a6cfa0114a5039ed15ee06f022100b1360907e2d9785ead362bb8d7bd661b6c29eeffd3c5037744edaeb9ad990c20\n\n# tcId = 267\n# special case hash\nmsg = 32363138373837343138\nresult = valid\nsig = 304502200671a0a85c2b72d54a2fb0990e34538b4890050f5a5712f6d1a7a5fb8578f32e022100db1846bab6b7361479ab9c3285ca41291808f27fd5bd4fdac720e5854713694c\n\n# tcId = 268\n# special case hash\nmsg = 31363432363235323632\nresult = valid\nsig = 304402207673f8526748446477dbbb0590a45492c5d7d69859d301abbaedb35b2095103a02203dc70ddf9c6b524d886bed9e6af02e0e4dec0d417a414fed3807ef4422913d7c\n\n# tcId = 269\n# special case hash\nmsg = 36383234313839343336\nresult = valid\nsig = 304402207f085441070ecd2bb21285089ebb1aa6450d1a06c36d3ff39dfd657a796d12b50220249712012029870a2459d18d47da9aa492a5e6cb4b2d8dafa9e4c5c54a2b9a8b\n\n# tcId = 270\n# special case hash\nmsg = 343834323435343235\nresult = valid\nsig = 3046022100914c67fb61dd1e27c867398ea7322d5ab76df04bc5aa6683a8e0f30a5d287348022100fa07474031481dda4953e3ac1959ee8cea7e66ec412b38d6c96d28f6d37304ea\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 040ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]\n[key.wx = 0ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103]\n[key.wy = 0c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]\n[sha = SHA-256]\n\n# tcId = 271\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 303502104319055358e8617b0c46353d039cdaab022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n# tcId = 272\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000fffffffffffffffffffffffc022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c58220455419235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]\n[key.wx = 0ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c582204554]\n[key.wy = 19235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c58220455419235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]\n[sha = SHA-256]\n\n# tcId = 273\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0480984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c5611feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95]\n[key.wx = 080984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c56]\n[key.wy = 11feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95]\n[keyDer = 3059301306072a8648ce3d020106082a8648", - "ce3d0301070342000480984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c5611feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95]\n[sha = SHA-256]\n\n# tcId = 274\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100909135bdb6799286170f5ead2de4f6511453fe50914f3df2de54a36383df8dd4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c0595c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]\n[key.wx = 4201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c05]\n[key.wy = 095c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c0595c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]\n[sha = SHA-256]\n\n# tcId = 275\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022027b4577ca009376f71303fd5dd227dcef5deb773ad5f5a84360644669ca249a5\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac9575d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]\n[key.wx = 0a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac957]\n[key.wy = 5d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac9575d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]\n[sha = SHA-256]\n\n# tcId = 276\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020101\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 046627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b15726170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]\n[key.wx = 6627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b1572]\n[key.wy = 6170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b15726170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]\n[sha = SHA-256]\n\n# tcId = 277\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020103\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bfef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]\n[key.wx = 5a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bf]\n[key.wy = 0ef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bfef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]\n[sha = SHA-256]\n\n# tcId = 278\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020105\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c73770af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]\n[key.wx = 0cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c737]\n[key.wy = 70af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c73770af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]\n[sha = SHA-256]\n\n# tcId = 279\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020106\n\n# tcId = 280\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632556020106\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e13920f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]\n[key.wx = 4be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e139]\n[key.wy = 20f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e13920f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]\n[sha = SHA-256]\n\n# tcId = 281\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026020105022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc75fbd8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]\n[key.wx = 0d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9]\n[key.wy = 0971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]\n[sha = SHA-256]\n\n# tcId = 282\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3027020201000221008f1e3c7862c58b16bb76eddbb76eddbb516af4f63f2d74d76e0d28c9bb75ea88\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05ffa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]\n[key.wx = 4838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05f]\n[key.wy = 0fa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05ffa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]\n[sha = SHA-256]\n\n# tcId = 283\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302c02072d9b4d347952d6022100ef3043e7329581dbb3974497710ab11505ee1c87ff907beebadd195a0ffe6d7a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 047393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]\n[key.wx = 7393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64]\n[key.wy = 0e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200047393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]\n[sha = SHA-256]\n\n# tcId = 284\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d1033e67e37b32b445580bf4eff0221008b748b74000000008b748b748b748b7466e769ad4a16d3dcd87129b8e91d1b4d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]\n[key.wx = 5ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5]\n[key.wy = 0fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]\n[sha = SHA-256]\n\n# tcId = 285\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702020100022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 041d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9]\n[key.wx = 1d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509]\n[key.wy = 0dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d", - "040d8c9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9]\n[sha = SHA-256]\n\n# tcId = 286\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d062522bbd3ecbe7c39e93e7c25022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]\n[key.wx = 083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99]\n[key.wy = 0915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]\n[sha = SHA-256]\n\n# tcId = 287\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3045022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d50220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 048aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e1937387405bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]\n[key.wx = 08aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e19373874]\n[key.wy = 5bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e1937387405bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]\n[sha = SHA-256]\n\n# tcId = 288\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020101\n\n# tcId = 289\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020100\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f2871b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]\n[key.wx = 0b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f287]\n[key.wy = 1b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f2871b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]\n[sha = SHA-256]\n\n# tcId = 290\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a80220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0469da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b866d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]\n[key.wx = 69da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b8]\n[key.wy = 66d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000469da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b866d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]\n[sha = SHA-256]\n\n# tcId = 291\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff3233e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]\n[key.wx = 0d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff32]\n[key.wy = 33e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff3233e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]\n[sha = SHA-256]\n\n# tcId = 292\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab7858db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]\n[key.wx = 3623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab785]\n[key.wy = 08db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab7858db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]\n[sha = SHA-256]\n\n# tcId = 293\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c700220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]\n[key.wx = 0cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1]\n[key.wy = 0e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]\n[sha = SHA-256]\n\n# tcId = 294\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100aaaaaaaa00000000aaaaaaaaaaaaaaaa7def51c91a0fbf034d26872ca84218e1\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff773504f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]\n[key.wx = 0db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff77350]\n[key.wy = 4f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff773504f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]\n[sha = SHA-256]\n\n# tcId = 295\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100e91e1ba60fdedb76a46bcb51dc0b8b4b7e019f0a28721885fa5d3a8196623397\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]\n[key.wx = 0dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f]\n[key.wy = 1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]\n[sha = SHA-256]\n\n# tcId = 296\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100fdea5843ffeb73af94313ba4831b53fe24f799e525b1e8e8c87b59b95b430ad9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]\n[key.wx = 0d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9]\n[key.wy = 0986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9986c723ea4843d48389", - "b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]\n[sha = SHA-256]\n\n# tcId = 297\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022003ffcabf2f1b4d2a65190db1680d62bb994e41c5251cd73b3c3dfc5e5bafc035\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c326337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]\n[key.wx = 0a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c32]\n[key.wy = 6337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c326337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]\n[sha = SHA-256]\n\n# tcId = 298\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02204dfbc401f971cd304b33dfdb17d0fed0fe4c1a88ae648e0d2847f74977534989\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b73877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]\n[key.wx = 0c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b7]\n[key.wy = 3877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b73877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]\n[sha = SHA-256]\n\n# tcId = 299\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bc4024761cd2ffd43dfdb17d0fed112b988977055cd3a8e54971eba9cda5ca71\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]\n[key.wx = 5eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e]\n[key.wy = 5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]\n[sha = SHA-256]\n\n# tcId = 300\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220788048ed39a5ffa77bfb62fa1fda2257742bf35d128fb3459f2a0c909ee86f91\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47adeb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]\n[key.wx = 5caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47a]\n[key.wy = 0deb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47adeb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]\n[sha = SHA-256]\n\n# tcId = 301\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220476d9131fd381bd917d0fed112bc9e0a5924b5ed5b11167edd8b23582b3cb15e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b0986237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]\n[key.wx = 0c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b098]\n[key.wy = 6237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b0986237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]\n[sha = SHA-256]\n\n# tcId = 302\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221008374253e3e21bd154448d0a8f640fe46fafa8b19ce78d538f6cc0a19662d3601\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced03ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]\n[key.wx = 3fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced]\n[key.wy = 3ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced03ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]\n[sha = SHA-256]\n\n# tcId = 303\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220357cfd3be4d01d413c5b9ede36cba5452c11ee7fe14879e749ae6a2d897a52d6\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 049cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]\n[key.wx = 09cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114]\n[key.wy = 0b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200049cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]\n[sha = SHA-256]\n\n# tcId = 304\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022029798c5c0ee287d4a5e8e6b799fd86b8df5225298e6ffc807cd2f2bc27a0a6d8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]\n[key.wx = 0a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a]\n[key.wy = 4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]\n[sha = SHA-256]\n\n# tcId = 305\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02200b70f22c781092452dca1a5711fa3a5a1f72add1bf52c2ff7cae4820b30078dd\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]\n[key.wx = 0f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88]\n[key.wy = 0cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]\n[sha = SHA-256]\n\n# tcId = 306\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022016e1e458f021248a5b9434ae23f474b43ee55ba37ea585fef95c90416600f1ba\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0483a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]\n[key.wx = 083a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8]\n[key.wy = 0c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000483a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]\n[sha = SHA-256]\n\n# tcId = 307\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207fffffffffffffffffffffffffffffffffffffffffffffffffffff", - "fffffffffd02202252d6856831b6cf895e4f0535eeaf0e5e5809753df848fe760ad86219016a97\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]\n[key.wx = 0dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7]\n[key.wy = 0bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]\n[sha = SHA-256]\n\n# tcId = 308\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02210081ffe55f178da695b28c86d8b406b15dab1a9e39661a3ae017fbe390ac0972c3\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0467e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]\n[key.wx = 67e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460]\n[key.wy = 0a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000467e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]\n[sha = SHA-256]\n\n# tcId = 309\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffffaaaaaaaaffffffffffffffffe9a2538f37b28a2c513dee40fecbb71a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]\n[key.wx = 2eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf]\n[key.wy = 0805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]\n[sha = SHA-256]\n\n# tcId = 310\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100b62f26b5f2a2b26f6de86d42ad8a13da3ab3cccd0459b201de009e526adf21f2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0484db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f356d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]\n[key.wx = 084db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f35]\n[key.wy = 6d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000484db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f356d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]\n[sha = SHA-256]\n\n# tcId = 311\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bb1d9ac949dd748cd02bbbe749bd351cd57b38bb61403d700686aa7b4c90851e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0491b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad66349aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]\n[key.wx = 091b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad663]\n[key.wy = 49aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000491b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad66349aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]\n[sha = SHA-256]\n\n# tcId = 312\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022066755a00638cdaec1c732513ca0234ece52545dac11f816e818f725b4f60aaf2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834df97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]\n[key.wx = 0f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834d]\n[key.wy = 0f97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834df97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]\n[sha = SHA-256]\n\n# tcId = 313\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022055a00c9fcdaebb6032513ca0234ecfffe98ebe492fdf02e48ca48e982beb3669\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc885ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]\n[key.wx = 0d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc88]\n[key.wy = 5ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc885ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]\n[sha = SHA-256]\n\n# tcId = 314\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ab40193f9b5d76c064a27940469d9fffd31d7c925fbe05c919491d3057d66cd2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 040a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cde6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]\n[key.wx = 0a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cd]\n[key.wy = 0e6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cde6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]\n[sha = SHA-256]\n\n# tcId = 315\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ca0234ebb5fdcb13ca0234ecffffffffcb0dadbbc7f549f8a26b4408d0dc8600\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e868612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]\n[key.wx = 0d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e8]\n[key.wy = 68612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e868612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]\n[sha = SHA-256]\n\n# tcId = 316\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff3ea3677e082b9310572620ae19933a9e65b285598711c77298815ad3\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb2769ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]\n[key.wx = 0836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb276]\n[key.wy = 09ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb2769ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]\n[sha = SHA-256]\n\n# tcId = 317\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220266666663bbbbbbbe6666666666666665b37902e023fab7c8f055d86e5cc41f4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0492f99fbe973ed4a2", - "99719baee4b432741237034dec8d72ba5103cb33e55feeb8033dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]\n[key.wx = 092f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8]\n[key.wy = 33dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000492f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8033dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]\n[sha = SHA-256]\n\n# tcId = 318\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff36db6db7a492492492492492146c573f4c6dfc8d08a443e258970b09\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09eff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]\n[key.wx = 0d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09e]\n[key.wy = 0ff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09eff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]\n[sha = SHA-256]\n\n# tcId = 319\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff2aaaaaab7fffffffffffffffc815d0e60b3e596ecb1ad3a27cfd49c4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 048651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]\n[key.wx = 08651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224]\n[key.wy = 0e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]\n[sha = SHA-256]\n\n# tcId = 320\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffff55555555ffffffffffffffffd344a71e6f651458a27bdc81fd976e37\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 046d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6def6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]\n[key.wx = 6d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6d]\n[key.wy = 0ef6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6def6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]\n[sha = SHA-256]\n\n# tcId = 321\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02203fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192aa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 040ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e15428911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]\n[key.wx = 0ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e1542]\n[key.wy = 08911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e15428911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]\n[sha = SHA-256]\n\n# tcId = 322\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02205d8ecd64a4eeba466815ddf3a4de9a8e6abd9c5db0a01eb80343553da648428f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]\n[key.wx = 5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963]\n[key.wy = 0838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]\n[sha = SHA-256]\n\n# tcId = 323\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc469637c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]\n[key.wx = 5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963]\n[key.wy = 7c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc469637c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]\n[sha = SHA-256]\n\n# tcId = 324\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 046adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a647e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]\n[key.wx = 6adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a6]\n[key.wy = 47e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a647e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]\n[sha = SHA-256]\n\n# tcId = 325\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 30250201010220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f382065f3450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]\n[key.wx = 2fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f3820]\n[key.wy = 65f3450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f382065f3450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]\n[sha = SHA-256]\n\n# tcId = 326\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3045022101000000000000000000000000000000000000000000000000000000000000000002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d25045d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]\n[key.wx = 0dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d250]\n[key.wy = 45d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d25045d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]\n[sha = SHA-256]\n\n# tcId = 327\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c700220333", - "3333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]\n[key.wx = 4fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5]\n[key.wy = 0d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]\n[sha = SHA-256]\n\n# tcId = 328\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc476699780220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c6a771527024227792170a6f8eee735bf32b7f98af669ead299802e32d7c3107bc3b4b5e65ab887bbd343572b3e5619261fe3a073e2ffd78412f726867db589e]\n[key.wx = 0c6a771527024227792170a6f8eee735bf32b7f98af669ead299802e32d7c3107]\n[key.wy = 0bc3b4b5e65ab887bbd343572b3e5619261fe3a073e2ffd78412f726867db589e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c6a771527024227792170a6f8eee735bf32b7f98af669ead299802e32d7c3107bc3b4b5e65ab887bbd343572b3e5619261fe3a073e2ffd78412f726867db589e]\n[sha = SHA-256]\n\n# tcId = 329\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04851c2bbad08e54ec7a9af99f49f03644d6ec6d59b207fec98de85a7d15b956efcee9960283045075684b410be8d0f7494b91aa2379f60727319f10ddeb0fe9d6]\n[key.wx = 0851c2bbad08e54ec7a9af99f49f03644d6ec6d59b207fec98de85a7d15b956ef]\n[key.wy = 0cee9960283045075684b410be8d0f7494b91aa2379f60727319f10ddeb0fe9d6]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004851c2bbad08e54ec7a9af99f49f03644d6ec6d59b207fec98de85a7d15b956efcee9960283045075684b410be8d0f7494b91aa2379f60727319f10ddeb0fe9d6]\n[sha = SHA-256]\n\n# tcId = 330\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f6417c8a670584e388676949e53da7fc55911ff68318d1bf3061205acb19c48f8f2b743df34ad0f72674acb7505929784779cd9ac916c3669ead43026ab6d43f]\n[key.wx = 0f6417c8a670584e388676949e53da7fc55911ff68318d1bf3061205acb19c48f]\n[key.wy = 08f2b743df34ad0f72674acb7505929784779cd9ac916c3669ead43026ab6d43f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f6417c8a670584e388676949e53da7fc55911ff68318d1bf3061205acb19c48f8f2b743df34ad0f72674acb7505929784779cd9ac916c3669ead43026ab6d43f]\n[sha = SHA-256]\n\n# tcId = 331\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997802203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04501421277be45a5eefec6c639930d636032565af420cf3373f557faa7f8a06438673d6cb6076e1cfcdc7dfe7384c8e5cac08d74501f2ae6e89cad195d0aa1371]\n[key.wx = 501421277be45a5eefec6c639930d636032565af420cf3373f557faa7f8a0643]\n[key.wy = 08673d6cb6076e1cfcdc7dfe7384c8e5cac08d74501f2ae6e89cad195d0aa1371]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004501421277be45a5eefec6c639930d636032565af420cf3373f557faa7f8a06438673d6cb6076e1cfcdc7dfe7384c8e5cac08d74501f2ae6e89cad195d0aa1371]\n[sha = SHA-256]\n\n# tcId = 332\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 040d935bf9ffc115a527735f729ca8a4ca23ee01a4894adf0e3415ac84e808bb343195a3762fea29ed38912bd9ea6c4fde70c3050893a4375850ce61d82eba33c5]\n[key.wx = 0d935bf9ffc115a527735f729ca8a4ca23ee01a4894adf0e3415ac84e808bb34]\n[key.wy = 3195a3762fea29ed38912bd9ea6c4fde70c3050893a4375850ce61d82eba33c5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040d935bf9ffc115a527735f729ca8a4ca23ee01a4894adf0e3415ac84e808bb343195a3762fea29ed38912bd9ea6c4fde70c3050893a4375850ce61d82eba33c5]\n[sha = SHA-256]\n\n# tcId = 333\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca215de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]\n[key.wx = 5e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca21]\n[key.wy = 5de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca215de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]\n[sha = SHA-256]\n\n# tcId = 334\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2960220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04169fb797325843faff2f7a5b5445da9e2fd6226f7ef90ef0bfe924104b02db8e7bbb8de662c7b9b1cf9b22f7a2e582bd46d581d68878efb2b861b131d8a1d667]\n[key.wx = 169fb797325843faff2f7a5b5445da9e2fd6226f7ef90ef0bfe924104b02db8e]\n[key.wy = 7bbb8de662c7b9b1cf9b22f7a2e582bd46d581d68878efb2b861b131d8a1d667]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004169fb797325843faff2f7a5b5445da9e2fd6226f7ef90ef0bfe924104b02db8e7bbb8de662c7b9b1cf9b22f7a2e582bd46d581d68878efb2b861b131d8a1d667]\n[sha = SHA-256]\n\n# tcId = 335\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04271cd89c000143096b62d4e9e4ca885aef2f7023d18affdaf8b7b548981487540a1c6e954e32108435b55fa385b0f76481a609b9149ccb4b02b2ca47fe8e4da5]\n[key.wx = 271cd89c000143096b62d4e9e4ca885aef2f7023d18affdaf8b7b54898148754]\n[key.wy = 0a1c6e954e32108435b55fa385b0f76481a609b9149ccb4b02b2ca47fe8e4da5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004271cd89c000143096b62d4e9e4ca885aef2f7023d18affdaf8b7b548981487540a1c6e954e32108435b55fa385b0f76481a609b9149ccb4b02b2ca47fe8e4da5]\n[sha = SHA-256]\n\n# tcId = 336\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043d0bc7ed8f09d2cb7ddb46ebc1ed799ab1563a9ab84bf524587a220afe499c12e22dc3b3c103824a4f378d96adb0a408abf19ce7d68aa6244f78cb216fa3f8df]\n[key.wx = 3d0bc7ed8f09d2cb7ddb46ebc1ed799ab1563a9ab84bf524587a220afe499c12]\n[key.wy = 0e22dc3b3c103824a4f378d96adb0a408abf19ce7d68aa6244f78cb216fa3f8df]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043d0bc7ed8f09d2cb7ddb46ebc1ed799ab1563a9ab84bf524587a220afe499c12e22dc3b3c103824a4f378d96adb0a408abf19ce7d68aa6244f78cb216fa3f8df]\n[sha = SHA-256]\n\n# tcId = 337\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29602203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curv", - "e = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a6c885ade1a4c566f9bb010d066974abb281797fa701288c721bcbd23663a9b72e424b690957168d193a6096fc77a2b004a9c7d467e007e1f2058458f98af316]\n[key.wx = 0a6c885ade1a4c566f9bb010d066974abb281797fa701288c721bcbd23663a9b7]\n[key.wy = 2e424b690957168d193a6096fc77a2b004a9c7d467e007e1f2058458f98af316]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a6c885ade1a4c566f9bb010d066974abb281797fa701288c721bcbd23663a9b72e424b690957168d193a6096fc77a2b004a9c7d467e007e1f2058458f98af316]\n[sha = SHA-256]\n\n# tcId = 338\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 048d3c2c2c3b765ba8289e6ac3812572a25bf75df62d87ab7330c3bdbad9ebfa5c4c6845442d66935b238578d43aec54f7caa1621d1af241d4632e0b780c423f5d]\n[key.wx = 08d3c2c2c3b765ba8289e6ac3812572a25bf75df62d87ab7330c3bdbad9ebfa5c]\n[key.wy = 4c6845442d66935b238578d43aec54f7caa1621d1af241d4632e0b780c423f5d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048d3c2c2c3b765ba8289e6ac3812572a25bf75df62d87ab7330c3bdbad9ebfa5c4c6845442d66935b238578d43aec54f7caa1621d1af241d4632e0b780c423f5d]\n[sha = SHA-256]\n\n# tcId = 339\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[sha = SHA-256]\n\n# tcId = 340\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 341\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e0220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 0b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[sha = SHA-256]\n\n# tcId = 342\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 343\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e0220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[key.wx = 4aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad5]\n[key.wy = 087d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[sha = SHA-256]\n\n# tcId = 344\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 3045022100b292a619339f6e567a305c951c0dcbcc42d16e47f219f9e98e76e09d8770b34a02200177e60492c5a8242f76f07bfe3661bde59ec2a17ce5bd2dab2abebdf89a62e2\n\n# tcId = 345\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30450220530bd6b0c9af2d69ba897f6b5fb59695cfbf33afe66dbadcf5b8d2a2a6538e23022100d85e489cb7a161fd55ededcedbf4cc0c0987e3e3f0f242cae934c72caa3f43e9\n\n# tcId = 346\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 3046022100a8ea150cb80125d7381c4c1f1da8e9de2711f9917060406a73d7904519e51388022100f3ab9fa68bd47973a73b2d40480c2ba50c22c9d76ec217257288293285449b86\n\n# tcId = 347\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3045022100986e65933ef2ed4ee5aada139f52b70539aaf63f00a91f29c69178490d57fb7102203dafedfb8da6189d372308cbf1489bbbdabf0c0217d1c0ff0f701aaa7a694b9c\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[key.wx = 4f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000]\n[key.wy = 0ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[sha = SHA-256]\n\n# tcId = 348\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100d434e262a49eab7781e353a3565e482550dd0fd5defa013c7f29745eff3569f10221009b0c0a93f267fb6052fd8077be769c2b98953195d7bc10de844218305c6ba17a\n\n# tcId = 349\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304402200fe774355c04d060f76d79fd7a772e421463489221bf0a33add0be9b1979110b0220500dcba1c69a8fbd43fa4f57f743ce124ca8b91a1f325f3fac6181175df55737\n\n# tcId = 350\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bb40bf217bed3fb3950c7d39f03d36dc8e3b2cd79693f125bfd06595ee1135e30220541bf3532351ebb032710bdb6a1bf1bfc89a1e291ac692b3fa4780745bb55677\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 084fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[sha = SHA-256]\n\n# tcId = 351\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30440220664eb7ee6db84a34df3c86ea31389a5405badd5ca99231ff556d3e75a233e73a022059f3c752e52eca46137642490a51560ce0badc678754b8f72e51a2901426a1bd\n\n# tcId = 352\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304502204cd0429bbabd2827009d6fcd843d4ce39c3e42e2d1631fd001985a79d1fd8b430221009638bf12dd682f60be7ef1d0e0d98f08b7bca77a1a2b869ae466189d2acdabe3\n\n# tcId = 353\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e56c6ea2d1b017091c44d8b6cb62b9f460e3ce9aed5e5fd41e8added97c56c04022100a308ec31f281e955be20b457e463440b4fcf2b80258078207fc1378180f89b55\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 7b05e8b186e38d41d31c77f5769f22", - "d58385ecc857d07a561a6324217fffffff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[sha = SHA-256]\n\n# tcId = 354\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304402201158a08d291500b4cabed3346d891eee57c176356a2624fb011f8fbbf34668300220228a8c486a736006e082325b85290c5bc91f378b75d487dda46798c18f285519\n\n# tcId = 355\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100b1db9289649f59410ea36b0c0fc8d6aa2687b29176939dd23e0dde56d309fa9d02203e1535e4280559015b0dbd987366dcf43a6d1af5c23c7d584e1c3f48a1251336\n\n# tcId = 356\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b7b16e762286cb96446aa8d4e6e7578b0a341a79f2dd1a220ac6f0ca4e24ed86022100ddc60a700a139b04661c547d07bbb0721780146df799ccf55e55234ecb8f12bc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[key.wx = 2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffff]\n[key.wy = 0a01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[sha = SHA-256]\n\n# tcId = 357\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100d82a7c2717261187c8e00d8df963ff35d796edad36bc6e6bd1c91c670d9105b402203dcabddaf8fcaa61f4603e7cbac0f3c0351ecd5988efb23f680d07debd139929\n\n# tcId = 358\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304402205eb9c8845de68eb13d5befe719f462d77787802baff30ce96a5cba063254af7802202c026ae9be2e2a5e7ca0ff9bbd92fb6e44972186228ee9a62b87ddbe2ef66fb5\n\n# tcId = 359\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304602210096843dd03c22abd2f3b782b170239f90f277921becc117d0404a8e4e36230c28022100f2be378f526f74a543f67165976de9ed9a31214eb4d7e6db19e1ede123dd991d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[key.wx = 0fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f5]\n[key.wy = 5a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[sha = SHA-256]\n\n# tcId = 360\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30440220766456dce1857c906f9996af729339464d27e9d98edc2d0e3b760297067421f60220402385ecadae0d8081dccaf5d19037ec4e55376eced699e93646bfbbf19d0b41\n\n# tcId = 361\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100c605c4b2edeab20419e6518a11b2dbc2b97ed8b07cced0b19c34f777de7b9fd9022100edf0f612c5f46e03c719647bc8af1b29b2cde2eda700fb1cff5e159d47326dba\n\n# tcId = 362\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100d48b68e6cabfe03cf6141c9ac54141f210e64485d9929ad7b732bfe3b7eb8a84022100feedae50c61bd00e19dc26f9b7e2265e4508c389109ad2f208f0772315b6c941\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[key.wx = 3fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e]\n[key.wy = 1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[sha = SHA-256]\n\n# tcId = 363\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b7c81457d4aeb6aa65957098569f0479710ad7f6595d5874c35a93d12a5dd4c7022100b7961a0b652878c2d568069a432ca18a1a9199f2ca574dad4b9e3a05c0a1cdb3\n\n# tcId = 364\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402206b01332ddb6edfa9a30a1321d5858e1ee3cf97e263e669f8de5e9652e76ff3f702205939545fced457309a6a04ace2bd0f70139c8f7d86b02cb1cc58f9e69e96cd5a\n\n# tcId = 365\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100efdb884720eaeadc349f9fc356b6c0344101cd2fd8436b7d0e6a4fb93f106361022100f24bee6ad5dc05f7613975473aadf3aacba9e77de7d69b6ce48cb60d8113385d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[key.wx = 0bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 1352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[sha = SHA-256]\n\n# tcId = 366\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3044022031230428405560dcb88fb5a646836aea9b23a23dd973dcbe8014c87b8b20eb0702200f9344d6e812ce166646747694a41b0aaf97374e19f3c5fb8bd7ae3d9bd0beff\n\n# tcId = 367\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100caa797da65b320ab0d5c470cda0b36b294359c7db9841d679174db34c4855743022100cf543a62f23e212745391aaf7505f345123d2685ee3b941d3de6d9b36242e5a0\n\n# tcId = 368\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304502207e5f0ab5d900d3d3d7867657e5d6d36519bc54084536e7d21c336ed8001859450221009450c07f201faec94b82dfb322e5ac676688294aad35aa72e727ff0b19b646aa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[key.wx = 0bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 0fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[sha = SHA-256]\n\n# tcId = 369\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100d7d70c581ae9e3f66dc6a480bf037ae23f8a1e4a2136fe4b03aa69f0ca25b35602210089c460f8a5a5c2bbba962c8a3ee833a413e85658e62a59e2af41d9127cc47224\n\n# tcId = 370\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30440220341c1b9ff3c83dd5e0dfa0bf68bcdf4bb7aa20c625975e5eeee34bb396266b34022072b69f061b750fd5121b22b11366fad549c634e77765a017902a67099e0a4469\n\n# tcId = 371\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022070bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67022100aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a9\n\n", +static const char *kData102[] = { + "# Imported from Wycheproof's ecdsa_secp256r1_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[key.wx = 2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838]\n[key.wy = 00c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[sha = SHA-256]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802204cd60b855d442f5b3c7b11eb6c4e0ae7525fe710fab9aa7c77a67f79e6fadd76\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30814502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502802ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047000002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a498177304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492500304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a222549817702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492224250002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d222202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180004deadbeef022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182226498177022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1822252500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182223022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd00304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac", + "5df4087c134b49156847db\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2228aa00bb00cd0002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2226aa02aabb02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182229aa00bb00cd00022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182227aa02aabb022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049228002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049228003202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280032100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 324502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30493001023044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db00\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db05000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047300002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db3000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 304802202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847dbbf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 302202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 306802202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30460281202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802812100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 70\n# length of integer con", + "tains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047028200202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180282002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502212ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045021f2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022200b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a028501000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285010000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02890100000000000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028901000000000000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802847fffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180284ffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285ffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180288ffffffffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502ff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802ff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3023022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302402022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302302202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022200002ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180223000000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250281022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30250500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304500202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304501202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304503202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b4", + "9156847db\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304504202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045ff202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18012100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18032100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18042100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18ff2100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250200022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 115\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180200\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3049222402012b021fa3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 117\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1822250201000220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045022029a3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 119\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022102b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e98022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 121\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b491568475b\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021f2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021fa3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 124\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180222ff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3026090180022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 128\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 302502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 302502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012ba3a8bd6b94d5ed80a6d9d1190a436ebccc0833490686deac8635bcb9bf5369022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2ba3a8bf6b94d5eb80a6d9d1190a436f42fe12d7fad749d4c512a036c0f908c7022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30450220d45c5741946b2a137f59262ee6f5bc91001af27a5e1117a64733950642a3d1e8022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100d45c5740946b2a147f59262ee6f5bc90bd01ed280528b62b3aed5fc93f06f739022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221fed45c5742946b2a127f59262ee6f5bc914333f7ccb6f979215379ca434640ac97022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100d45c5741946b2a137f59262ee6f5bc91001af27a5e1117a64733950642a3d1e8022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022101b329f478a2bbd0a6c384ee1493b1f518276e0e4a5375928d6fcd160c11cb6d2c\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f47aa2bbd0a4c384ee1493b1f518ada018ef05465583885980861905228a\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180221ff4cd60b865d442f5a3c7b11eb6c4e0ae79578ec6353a20bf783ecb4b6ea97b825\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180221fe4cd60b875d442f593c7b11eb6c4e0ae7d891f1b5ac8a6d729032e9f3ee3492d4\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nm", + "sg = 313233343030\nresult = invalid\nsig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022101b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802204cd60b865d442f5a3c7b11eb6c4e0ae79578ec6353a20bf783ecb4b6ea97b825\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325510201ff\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551090380fe01\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551090142\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020100\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special c", + "ase values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020101\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325500201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550090380fe01\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550090142\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020100\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020101\nflags = EdgeCase\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325520201ff\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552090380fe01\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552090142\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020100\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020101\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0201ff\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff090380fe01\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff090142\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020100\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020101\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff000000010000000000000000000000010000000000000000000000000201ff\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179", + "e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000001000000000000000000000000090380fe01\nflags = EdgeCase\n\n# tcId = 223\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000090142\nflags = EdgeCase\n\n# tcId = 224\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 230\n# Edge case for Shamir multiplication\nmsg = 3639383139\nresult = valid\nsig = 3044022064a1aab5000d0e804f3e2fc02bdee9be8ff312334e2ba16d11547c97711c898e02206af015971cc30be6d1a206d4e013e0997772a2f91d73286ffd683b9bb2cf4f1b\n\n# tcId = 231\n# special case hash\nmsg = 343236343739373234\nresult = valid\nsig = 3044022016aea964a2f6506d6f78c81c91fc7e8bded7d397738448de1e19a0ec580bf2660220252cd762130c6667cfe8b7bc47d27d78391e8e80c578d1cd38c3ff033be928e9\n\n# tcId = 232\n# special case hash\nmsg = 37313338363834383931\nresult = valid\nsig = 30450221009cc98be2347d469bf476dfc26b9b733df2d26d6ef524af917c665baccb23c8820220093496459effe2d8d70727b82462f61d0ec1b7847929d10ea631dacb16b56c32\n\n# tcId = 233\n# special case hash\nmsg = 3130333539333331363638\nresult = valid\nsig = 3044022073b3c90ecd390028058164524dde892703dce3dea0d53fa8093999f07ab8aa4302202f67b0b8e20636695bb7d8bf0a651c802ed25a395387b5f4188c0c4075c88634\n\n# tcId = 234\n# special case hash\nmsg = 33393439343031323135\nresult = valid\nsig = 3046022100bfab3098252847b328fadf2f89b95c851a7f0eb390763378f37e90119d5ba3dd022100bdd64e234e832b1067c2d058ccb44d978195ccebb65c2aaf1e2da9b8b4987e3b\n\n# tcId = 235\n# special case hash\nmsg = 31333434323933303739\nresult = valid\nsig = 30440220204a9784074b246d8bf8bf04a4ceb1c1f1c9aaab168b1596d17093c5cd21d2cd022051cce41670636783dc06a759c8847868a406c2506fe17975582fe648d1d88b52\n\n# tcId = 236\n# special case hash\nmsg = 33373036323131373132\nresult = valid\nsig = 3046022100ed66dc34f551ac82f63d4aa4f81fe2cb0031a91d1314f835027bca0f1ceeaa0302210099ca123aa09b13cd194a422e18d5fda167623c3f6e5d4d6abb8953d67c0c48c7\n\n# tcId = 237\n# special case hash\nmsg = 333433363838373132\nresult = valid\nsig = 30450220060b700bef665c68899d44f2356a578d126b062023ccc3c056bf0f60a237012b0221008d186c027832965f4fcc78a3366ca95dedbb410cbef3f26d6be5d581c11d3610\n\n# tcId = 238\n# special case hash\nmsg = 31333531353330333730\nresult = valid\nsig = 30460221009f6adfe8d5eb5b2c24d7aa7934b6cf29c93ea76cd313c9132bb0c8e38c96831d022100b26a9c9e40e55ee0890c944cf271756c906a33e66b5bd15e051593883b5e9902\n\n# tcId = 239\n# special case hash\nmsg = 36353533323033313236\nresult = valid\nsig = 3045022100a1af03ca91677b673ad2f33615e56174a1abf6da168cebfa8868f4ba273f16b7022020aa73ffe48afa6435cd258b173d0c2377d69022e7d098d75caf24c8c5e06b1c\n\n# tcId = 240\n# special case hash\nmsg = 31353634333436363033\nresult = valid\nsig = 3045022100fdc70602766f8eed11a6c99a71c973d5659355507b843da6e327a28c11893db902203df5349688a085b137b1eacf456a9e9e0f6d15ec0078ca60a7f83f2b10d21350\n\n# tcId = 241\n# special case hash\nmsg = 34343239353339313137\nresult = valid\nsig = 3046022100b516a314f2fce530d6537f6a6c49966c23456f63c643cf8e0dc738f7b876e675022100d39ffd033c92b6d717dd536fbc5efdf1967c4bd80954479ba66b0120cd16fff2\n\n# tcId = 242\n# special case hash\nmsg = 3130393533323631333531\nresult = valid\nsig = 304402203b2cbf046eac45842ecb7984d475831582717bebb6492fd0a485c101e29ff0a802204c9b7b47a98b0f82de512bc9313aaf51701099cac5f76e68c8595fc1c1d99258\n\n# tcId = 243\n# special case hash\nmsg = 35393837333530303431\nresult = valid\nsig = 3044022030c87d35e636f540841f14af54e2f9edd79d0312cfa1ab656c3fb15bfde48dcf022047c15a5a82d24b75c85a692bd6ecafeb71409ede23efd08e0db9abf6340677ed\n\n# tcId = 244\n# special case hash\nmsg = 33343633303036383738\nresult = valid\nsig = 3044022038686ff0fda2cef6bc43b58cfe6647b9e2e8176d168dec3c68ff262113760f520220067ec3b651f422669601662167fa8717e976e2db5e6a4cf7c2ddabb3fde9d67d\n\n# tcId = 245\n# special case hash\nmsg = 39383137333230323837\nresult = valid\nsig = 3044022044a3e23bf314f2b344fc25c7f2de8b6af3e17d27f5ee844b225985ab6e2775cf02202d48e223205e98041ddc87be532abed584f0411f5729500493c9cc3f4dd15e86\n\n# tcId = 246\n# special case hash\nmsg = 33323232303431303436\nresult = valid\nsig = 304402202ded5b7ec8e90e7bf11f967a3d95110c41b99db3b5aa8d330eb9d638781688e902207d5792c53628155e1bfc46fb1a67e3088de049c328ae1f44ec69238a009808f9\n\n# tcId = 247\n# special case hash\nmsg = 36363636333037313034\nresult = valid\nsig = 3046022100bdae7bcb580bf335efd3bc3d31870f923eaccafcd40ec2f605976f15137d8b8f022100f6dfa12f19e525270b0106eecfe257499f373a4fb318994f24838122ce7ec3c7\n\n# tcId = 248\n# special case hash\nmsg = 31303335393531383938\nresult = valid\nsig = 3045022050f9c4f0cd6940e162720957ffff513799209b78596956d21ece251c2401f1c6022100d7033a0a787d338e889defaaabb106b95a4355e411a59c32aa5167dfab244726\n\n# tcId = 249\n# special case hash\nmsg = 31383436353937313935\nresult = valid\nsig = 3045022100f612820687604fa01906066a378d67540982e29575d019aabe90924ead5c860d02203f9367702dd7dd4f75ea98afd20e328a1a99f4857b316525328230ce294b0fef\n\n# tcId = 250\n# special case hash\nmsg = 33313336303436313839\nresult = valid\nsig = 30460221009505e407657d6e8bc93db5da7aa6f5081f61980c1949f56b0f2f507da5782a7a022100c60d31904e3669738ffbeccab6c3656c08e0ed5cb92b3cfa5e7f71784f9c5021\n\n# tcId = 251\n# special case hash\nmsg = 32363633373834323534\nresult = valid\nsig = 3046022100bbd16fbbb656b6d0d83e6a7787cd691b08735aed371732723e1c68a40404517d0221009d8e35dba96028b7787d91315be675877d2d097be5e8ee34560e3e7fd25c0f00\n\n# tcId = 252\n# special case hash\nmsg = 31363532313030353234\nresult = valid\nsig = 304402202ec9760122db98fd06ea76848d35a6da442d2ceef7559a30cf57c61e92df327e02207ab271da90859479701fccf86e462ee3393fb6814c27b760c4963625c0a19878\n\n# tcId = 253\n# special case hash\nmsg = 35373438303831363936\nresult = valid\nsig = 3044022054e76b7683b6650baa6a7fc49b1c51eed9ba9dd463221f7a4f1005a89fe00c5902202ea076886c773eb937ec1cc8374b7915cfd11b1c1ae1166152f2f7806a31c8fd\n\n# tcId = 254\n# special case hash\nmsg = 36333433393133343638\nresult = valid\nsig = 304402205291deaf24659ffbbce6e3c26f6021097a74abdbb69be4fb10419c0c496c9466022065d6fcf336d27cc7cdb982bb4e4ecef5827f84742f29f10abf83469270a03dc3\n\n# tcId = 255\n# special case hash\nmsg = 31353431313033353938\nresult = valid\nsig = 30450220207a3241812d75d947419dc58efb05e8003b33fc17eb50f9d15166a88479f107022100cdee749f2e492b213ce80b32d0574f62f1c5d70793cf55e382d5caadf7592767\n\n# tcId = 256\n# special case hash\nmsg = 3130343738353830313238\nresult = valid\nsig = 304502206554e49f82a855204328ac94913bf01bbe84437a355a0a37c0dee3cf81aa7728022100aea00de2507ddaf5c94e1e126980d3df16250a2eaebc8be486effe7f22b4f929\n\n# tcId = 257\n# special case hash\nmsg = 3130353336323835353638\nresult = valid\nsig = 3046022100a54c5062648339d2bff06f71c88216c26c6e19b4d80a8c602990ac82707efdfc022100e99bbe7fcfafae3e69fd016777517aa01056317f467ad09aff09be73c9731b0d\n\n# tcId = 258\n# special case hash\nmsg = 393533393034313035\nresult = valid\nsig = 3045022100975bd7157a8d363b309f1f444012b1a1d23096593133e71b4ca8b059cff37eaf02207faa7a28b1c822baa241793f2abc930bd4c69840fe090f2aacc", + "46786bf919622\n\n# tcId = 259\n# special case hash\nmsg = 393738383438303339\nresult = valid\nsig = 304402205694a6f84b8f875c276afd2ebcfe4d61de9ec90305afb1357b95b3e0da43885e02200dffad9ffd0b757d8051dec02ebdf70d8ee2dc5c7870c0823b6ccc7c679cbaa4\n\n# tcId = 260\n# special case hash\nmsg = 33363130363732343432\nresult = valid\nsig = 3045022100a0c30e8026fdb2b4b4968a27d16a6d08f7098f1a98d21620d7454ba9790f1ba602205e470453a8a399f15baf463f9deceb53acc5ca64459149688bd2760c65424339\n\n# tcId = 261\n# special case hash\nmsg = 31303534323430373035\nresult = valid\nsig = 30440220614ea84acf736527dd73602cd4bb4eea1dfebebd5ad8aca52aa0228cf7b99a880220737cc85f5f2d2f60d1b8183f3ed490e4de14368e96a9482c2a4dd193195c902f\n\n# tcId = 262\n# special case hash\nmsg = 35313734343438313937\nresult = valid\nsig = 3045022100bead6734ebe44b810d3fb2ea00b1732945377338febfd439a8d74dfbd0f942fa02206bb18eae36616a7d3cad35919fd21a8af4bbe7a10f73b3e036a46b103ef56e2a\n\n# tcId = 263\n# special case hash\nmsg = 31393637353631323531\nresult = valid\nsig = 30440220499625479e161dacd4db9d9ce64854c98d922cbf212703e9654fae182df9bad2022042c177cf37b8193a0131108d97819edd9439936028864ac195b64fca76d9d693\n\n# tcId = 264\n# special case hash\nmsg = 33343437323533333433\nresult = valid\nsig = 3045022008f16b8093a8fb4d66a2c8065b541b3d31e3bfe694f6b89c50fb1aaa6ff6c9b20221009d6455e2d5d1779748573b611cb95d4a21f967410399b39b535ba3e5af81ca2e\n\n# tcId = 265\n# special case hash\nmsg = 333638323634333138\nresult = valid\nsig = 3046022100be26231b6191658a19dd72ddb99ed8f8c579b6938d19bce8eed8dc2b338cb5f8022100e1d9a32ee56cffed37f0f22b2dcb57d5c943c14f79694a03b9c5e96952575c89\n\n# tcId = 266\n# special case hash\nmsg = 33323631313938363038\nresult = valid\nsig = 3045022015e76880898316b16204ac920a02d58045f36a229d4aa4f812638c455abe0443022100e74d357d3fcb5c8c5337bd6aba4178b455ca10e226e13f9638196506a1939123\n\n# tcId = 267\n# special case hash\nmsg = 39363738373831303934\nresult = valid\nsig = 30440220352ecb53f8df2c503a45f9846fc28d1d31e6307d3ddbffc1132315cc07f16dad02201348dfa9c482c558e1d05c5242ca1c39436726ecd28258b1899792887dd0a3c6\n\n# tcId = 268\n# special case hash\nmsg = 34393538383233383233\nresult = valid\nsig = 304402204a40801a7e606ba78a0da9882ab23c7677b8642349ed3d652c5bfa5f2a9558fb02203a49b64848d682ef7f605f2832f7384bdc24ed2925825bf8ea77dc5981725782\n\n# tcId = 269\n# special case hash\nmsg = 383234363337383337\nresult = valid\nsig = 3045022100eacc5e1a8304a74d2be412b078924b3bb3511bac855c05c9e5e9e44df3d61e9602207451cd8e18d6ed1885dd827714847f96ec4bb0ed4c36ce9808db8f714204f6d1\n\n# tcId = 270\n# special case hash\nmsg = 3131303230383333373736\nresult = valid\nsig = 304502202f7a5e9e5771d424f30f67fdab61e8ce4f8cd1214882adb65f7de94c31577052022100ac4e69808345809b44acb0b2bd889175fb75dd050c5a449ab9528f8f78daa10c\n\n# tcId = 271\n# special case hash\nmsg = 313333383731363438\nresult = valid\nsig = 3045022100ffcda40f792ce4d93e7e0f0e95e1a2147dddd7f6487621c30a03d710b3300219022079938b55f8a17f7ed7ba9ade8f2065a1fa77618f0b67add8d58c422c2453a49a\n\n# tcId = 272\n# special case hash\nmsg = 333232313434313632\nresult = valid\nsig = 304602210081f2359c4faba6b53d3e8c8c3fcc16a948350f7ab3a588b28c17603a431e39a8022100cd6f6a5cc3b55ead0ff695d06c6860b509e46d99fccefb9f7f9e101857f74300\n\n# tcId = 273\n# special case hash\nmsg = 3130363836363535353436\nresult = valid\nsig = 3045022100dfc8bf520445cbb8ee1596fb073ea283ea130251a6fdffa5c3f5f2aaf75ca8080220048e33efce147c9dd92823640e338e68bfd7d0dc7a4905b3a7ac711e577e90e7\n\n# tcId = 274\n# special case hash\nmsg = 3632313535323436\nresult = valid\nsig = 3046022100ad019f74c6941d20efda70b46c53db166503a0e393e932f688227688ba6a576202210093320eb7ca0710255346bdbb3102cdcf7964ef2e0988e712bc05efe16c199345\n\n# tcId = 275\n# special case hash\nmsg = 37303330383138373734\nresult = valid\nsig = 3046022100ac8096842e8add68c34e78ce11dd71e4b54316bd3ebf7fffdeb7bd5a3ebc1883022100f5ca2f4f23d674502d4caf85d187215d36e3ce9f0ce219709f21a3aac003b7a8\n\n# tcId = 276\n# special case hash\nmsg = 35393234353233373434\nresult = valid\nsig = 30440220677b2d3a59b18a5ff939b70ea002250889ddcd7b7b9d776854b4943693fb92f702206b4ba856ade7677bf30307b21f3ccda35d2f63aee81efd0bab6972cc0795db55\n\n# tcId = 277\n# special case hash\nmsg = 31343935353836363231\nresult = valid\nsig = 30450220479e1ded14bcaed0379ba8e1b73d3115d84d31d4b7c30e1f05e1fc0d5957cfb0022100918f79e35b3d89487cf634a4f05b2e0c30857ca879f97c771e877027355b2443\n\n# tcId = 278\n# special case hash\nmsg = 34303035333134343036\nresult = valid\nsig = 3044022043dfccd0edb9e280d9a58f01164d55c3d711e14b12ac5cf3b64840ead512a0a302201dbe33fa8ba84533cd5c4934365b3442ca1174899b78ef9a3199f49584389772\n\n# tcId = 279\n# special case hash\nmsg = 33303936343537353132\nresult = valid\nsig = 304402205b09ab637bd4caf0f4c7c7e4bca592fea20e9087c259d26a38bb4085f0bbff11022045b7eb467b6748af618e9d80d6fdcd6aa24964e5a13f885bca8101de08eb0d75\n\n# tcId = 280\n# special case hash\nmsg = 32373834303235363230\nresult = valid\nsig = 304502205e9b1c5a028070df5728c5c8af9b74e0667afa570a6cfa0114a5039ed15ee06f022100b1360907e2d9785ead362bb8d7bd661b6c29eeffd3c5037744edaeb9ad990c20\n\n# tcId = 281\n# special case hash\nmsg = 32363138373837343138\nresult = valid\nsig = 304502200671a0a85c2b72d54a2fb0990e34538b4890050f5a5712f6d1a7a5fb8578f32e022100db1846bab6b7361479ab9c3285ca41291808f27fd5bd4fdac720e5854713694c\n\n# tcId = 282\n# special case hash\nmsg = 31363432363235323632\nresult = valid\nsig = 304402207673f8526748446477dbbb0590a45492c5d7d69859d301abbaedb35b2095103a02203dc70ddf9c6b524d886bed9e6af02e0e4dec0d417a414fed3807ef4422913d7c\n\n# tcId = 283\n# special case hash\nmsg = 36383234313839343336\nresult = valid\nsig = 304402207f085441070ecd2bb21285089ebb1aa6450d1a06c36d3ff39dfd657a796d12b50220249712012029870a2459d18d47da9aa492a5e6cb4b2d8dafa9e4c5c54a2b9a8b\n\n# tcId = 284\n# special case hash\nmsg = 343834323435343235\nresult = valid\nsig = 3046022100914c67fb61dd1e27c867398ea7322d5ab76df04bc5aa6683a8e0f30a5d287348022100fa07474031481dda4953e3ac1959ee8cea7e66ec412b38d6c96d28f6d37304ea\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 040ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]\n[key.wx = 0ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103]\n[key.wy = 00c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]\n[sha = SHA-256]\n\n# tcId = 285\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 303502104319055358e8617b0c46353d039cdaab022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n# tcId = 286\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000fffffffffffffffffffffffc022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c58220455419235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]\n[key.wx = 00ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c582204554]\n[key.wy = 19235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c58220455419235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]\n[sha = SHA-256]\n\n# tcId = 287\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0480984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c5611feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95]\n[key.wx = 0080984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c56]\n[key.wy = 11feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000480984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c5611feb97390d9826e7a06dfb41871c940d74415ed3cac2089", + "f1445019bb55ed95]\n[sha = SHA-256]\n\n# tcId = 288\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100909135bdb6799286170f5ead2de4f6511453fe50914f3df2de54a36383df8dd4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c0595c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]\n[key.wx = 4201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c05]\n[key.wy = 0095c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c0595c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]\n[sha = SHA-256]\n\n# tcId = 289\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022027b4577ca009376f71303fd5dd227dcef5deb773ad5f5a84360644669ca249a5\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac9575d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]\n[key.wx = 00a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac957]\n[key.wy = 5d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac9575d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]\n[sha = SHA-256]\n\n# tcId = 290\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020101\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b15726170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]\n[key.wx = 6627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b1572]\n[key.wy = 6170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b15726170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]\n[sha = SHA-256]\n\n# tcId = 291\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020103\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bfef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]\n[key.wx = 5a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bf]\n[key.wy = 00ef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bfef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]\n[sha = SHA-256]\n\n# tcId = 292\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020105\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c73770af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]\n[key.wx = 00cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c737]\n[key.wy = 70af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c73770af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]\n[sha = SHA-256]\n\n# tcId = 293\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020106\n\n# tcId = 294\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632556020106\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e13920f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]\n[key.wx = 4be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e139]\n[key.wy = 20f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e13920f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]\n[sha = SHA-256]\n\n# tcId = 295\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026020105022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc75fbd8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]\n[key.wx = 00d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9]\n[key.wy = 00971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]\n[sha = SHA-256]\n\n# tcId = 296\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3027020201000221008f1e3c7862c58b16bb76eddbb76eddbb516af4f63f2d74d76e0d28c9bb75ea88\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05ffa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]\n[key.wx = 4838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05f]\n[key.wy = 00fa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05ffa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]\n[sha = SHA-256]\n\n# tcId = 297\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302c02072d9b4d347952d6022100ef3043e7329581dbb3974497710ab11505ee1c87ff907beebadd195a0ffe6d7a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 047393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]\n[key.wx = 7393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64]\n[key.wy = 00e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200047393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]\n[sha = SHA-256]\n\n# tcId = 298\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d1033e67e37b32b445580bf4eff0221008b748b74000000008b748b748b748b7466e769ad4a16d3dcd87129b8e91d1b4d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]\n[key.wx = 5ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5]\n[key.wy = 00fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]\n[sha = SHA-256]\n\n# tcId = 299\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702020100022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 041d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9]\n[key.wx = 1d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509]\n[key.wy = 00dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041d209be8de2de877095a399d3904c74cc458d926e27bb8e", + "58e5eae5767c41509dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9]\n[sha = SHA-256]\n\n# tcId = 300\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d062522bbd3ecbe7c39e93e7c25022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]\n[key.wx = 083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99]\n[key.wy = 00915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]\n[sha = SHA-256]\n\n# tcId = 301\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3045022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d50220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 048aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e1937387405bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]\n[key.wx = 008aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e19373874]\n[key.wy = 05bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e1937387405bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]\n[sha = SHA-256]\n\n# tcId = 302\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020101\n\n# tcId = 303\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020100\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f2871b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]\n[key.wx = 00b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f287]\n[key.wy = 1b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f2871b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]\n[sha = SHA-256]\n\n# tcId = 304\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a80220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f50d371b91bfb1d7d14e1323523bc3aa8cbf2c57f9e284de628c8b4536787b86f94ad887ac94d527247cd2e7d0c8b1291c553c9730405380b14cbb209f5fa2dd]\n[key.wx = 00f50d371b91bfb1d7d14e1323523bc3aa8cbf2c57f9e284de628c8b4536787b86]\n[key.wy = 00f94ad887ac94d527247cd2e7d0c8b1291c553c9730405380b14cbb209f5fa2dd]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f50d371b91bfb1d7d14e1323523bc3aa8cbf2c57f9e284de628c8b4536787b86f94ad887ac94d527247cd2e7d0c8b1291c553c9730405380b14cbb209f5fa2dd]\n[sha = SHA-256]\n\n# tcId = 305\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a902207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0468ec6e298eafe16539156ce57a14b04a7047c221bafc3a582eaeb0d857c4d94697bed1af17850117fdb39b2324f220a5698ed16c426a27335bb385ac8ca6fb30]\n[key.wx = 68ec6e298eafe16539156ce57a14b04a7047c221bafc3a582eaeb0d857c4d946]\n[key.wy = 0097bed1af17850117fdb39b2324f220a5698ed16c426a27335bb385ac8ca6fb30]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000468ec6e298eafe16539156ce57a14b04a7047c221bafc3a582eaeb0d857c4d94697bed1af17850117fdb39b2324f220a5698ed16c426a27335bb385ac8ca6fb30]\n[sha = SHA-256]\n\n# tcId = 306\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a902207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0469da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b866d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]\n[key.wx = 69da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b8]\n[key.wy = 66d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000469da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b866d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]\n[sha = SHA-256]\n\n# tcId = 307\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff3233e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]\n[key.wx = 00d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff32]\n[key.wy = 33e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff3233e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]\n[sha = SHA-256]\n\n# tcId = 308\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab7858db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]\n[key.wx = 3623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab785]\n[key.wy = 008db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab7858db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]\n[sha = SHA-256]\n\n# tcId = 309\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c700220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]\n[key.wx = 00cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1]\n[key.wy = 00e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]\n[sha = SHA-256]\n\n# tcId = 310\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100aaaaaaaa00000000aaaaaaaaaaaaaaaa7def51c91a0fbf034d26872ca84218e1\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff773504f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]\n[key.wx = 00db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff77350]\n[key.wy = 4f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff773504f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]\n[sha = SHA-256]\n\n# tcId =", + " 311\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100e91e1ba60fdedb76a46bcb51dc0b8b4b7e019f0a28721885fa5d3a8196623397\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]\n[key.wx = 00dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f]\n[key.wy = 1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]\n[sha = SHA-256]\n\n# tcId = 312\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100fdea5843ffeb73af94313ba4831b53fe24f799e525b1e8e8c87b59b95b430ad9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]\n[key.wx = 00d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9]\n[key.wy = 00986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]\n[sha = SHA-256]\n\n# tcId = 313\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022003ffcabf2f1b4d2a65190db1680d62bb994e41c5251cd73b3c3dfc5e5bafc035\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c326337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]\n[key.wx = 00a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c32]\n[key.wy = 6337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c326337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]\n[sha = SHA-256]\n\n# tcId = 314\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02204dfbc401f971cd304b33dfdb17d0fed0fe4c1a88ae648e0d2847f74977534989\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b73877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]\n[key.wx = 00c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b7]\n[key.wy = 3877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b73877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]\n[sha = SHA-256]\n\n# tcId = 315\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bc4024761cd2ffd43dfdb17d0fed112b988977055cd3a8e54971eba9cda5ca71\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]\n[key.wx = 5eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e]\n[key.wy = 5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]\n[sha = SHA-256]\n\n# tcId = 316\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220788048ed39a5ffa77bfb62fa1fda2257742bf35d128fb3459f2a0c909ee86f91\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47adeb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]\n[key.wx = 5caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47a]\n[key.wy = 00deb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47adeb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]\n[sha = SHA-256]\n\n# tcId = 317\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220476d9131fd381bd917d0fed112bc9e0a5924b5ed5b11167edd8b23582b3cb15e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b0986237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]\n[key.wx = 00c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b098]\n[key.wy = 6237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b0986237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]\n[sha = SHA-256]\n\n# tcId = 318\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221008374253e3e21bd154448d0a8f640fe46fafa8b19ce78d538f6cc0a19662d3601\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced03ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]\n[key.wx = 3fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced]\n[key.wy = 03ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced03ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]\n[sha = SHA-256]\n\n# tcId = 319\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220357cfd3be4d01d413c5b9ede36cba5452c11ee7fe14879e749ae6a2d897a52d6\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 049cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]\n[key.wx = 009cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114]\n[key.wy = 00b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200049cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]\n[sha = SHA-256]\n\n# tcId = 320\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022029798c5c0ee287d4a5e8e6b799fd86b8df5225298e6ffc807cd2f2bc27a0a6d8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]\n[key.wx = 00a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a]\n[key.wy = 4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]\n[sha = SHA-256]\n\n# tcId = 321\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02200b70f22c781092452dca1a5711fa3a5a1f72add1bf52", + "c2ff7cae4820b30078dd\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]\n[key.wx = 00f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88]\n[key.wy = 00cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]\n[sha = SHA-256]\n\n# tcId = 322\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022016e1e458f021248a5b9434ae23f474b43ee55ba37ea585fef95c90416600f1ba\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0483a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]\n[key.wx = 0083a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8]\n[key.wy = 00c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000483a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]\n[sha = SHA-256]\n\n# tcId = 323\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02202252d6856831b6cf895e4f0535eeaf0e5e5809753df848fe760ad86219016a97\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]\n[key.wx = 00dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7]\n[key.wy = 00bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]\n[sha = SHA-256]\n\n# tcId = 324\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02210081ffe55f178da695b28c86d8b406b15dab1a9e39661a3ae017fbe390ac0972c3\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0467e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]\n[key.wx = 67e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460]\n[key.wy = 00a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000467e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]\n[sha = SHA-256]\n\n# tcId = 325\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffffaaaaaaaaffffffffffffffffe9a2538f37b28a2c513dee40fecbb71a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]\n[key.wx = 2eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf]\n[key.wy = 00805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]\n[sha = SHA-256]\n\n# tcId = 326\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100b62f26b5f2a2b26f6de86d42ad8a13da3ab3cccd0459b201de009e526adf21f2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0484db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f356d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]\n[key.wx = 0084db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f35]\n[key.wy = 6d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000484db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f356d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]\n[sha = SHA-256]\n\n# tcId = 327\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bb1d9ac949dd748cd02bbbe749bd351cd57b38bb61403d700686aa7b4c90851e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0491b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad66349aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]\n[key.wx = 0091b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad663]\n[key.wy = 49aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000491b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad66349aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]\n[sha = SHA-256]\n\n# tcId = 328\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022066755a00638cdaec1c732513ca0234ece52545dac11f816e818f725b4f60aaf2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834df97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]\n[key.wx = 00f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834d]\n[key.wy = 00f97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834df97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]\n[sha = SHA-256]\n\n# tcId = 329\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022055a00c9fcdaebb6032513ca0234ecfffe98ebe492fdf02e48ca48e982beb3669\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc885ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]\n[key.wx = 00d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc88]\n[key.wy = 5ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc885ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]\n[sha = SHA-256]\n\n# tcId = 330\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ab40193f9b5d76c064a27940469d9fffd31d7c925fbe05c919491d3057d66cd2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 040a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cde6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]\n[key.wx = 0a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cd]\n[key.wy = 00e6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cde6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]\n[sha = SHA-256]\n\n# tcId = 331\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ca0234ebb5fdcb13ca0234ecffffffffcb0dadbbc7f549f8a26b4408d0dc8600\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d8437", + "5e868612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]\n[key.wx = 00d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e8]\n[key.wy = 68612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e868612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]\n[sha = SHA-256]\n\n# tcId = 332\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff3ea3677e082b9310572620ae19933a9e65b285598711c77298815ad3\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb2769ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]\n[key.wx = 00836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb276]\n[key.wy = 009ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb2769ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]\n[sha = SHA-256]\n\n# tcId = 333\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220266666663bbbbbbbe6666666666666665b37902e023fab7c8f055d86e5cc41f4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0492f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8033dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]\n[key.wx = 0092f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8]\n[key.wy = 033dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000492f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8033dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]\n[sha = SHA-256]\n\n# tcId = 334\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff36db6db7a492492492492492146c573f4c6dfc8d08a443e258970b09\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09eff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]\n[key.wx = 00d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09e]\n[key.wy = 00ff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09eff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]\n[sha = SHA-256]\n\n# tcId = 335\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff2aaaaaab7fffffffffffffffc815d0e60b3e596ecb1ad3a27cfd49c4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 048651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]\n[key.wx = 008651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224]\n[key.wy = 00e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]\n[sha = SHA-256]\n\n# tcId = 336\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffff55555555ffffffffffffffffd344a71e6f651458a27bdc81fd976e37\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6def6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]\n[key.wx = 6d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6d]\n[key.wy = 00ef6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6def6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]\n[sha = SHA-256]\n\n# tcId = 337\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02203fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192aa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 040ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e15428911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]\n[key.wx = 0ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e1542]\n[key.wy = 008911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e15428911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]\n[sha = SHA-256]\n\n# tcId = 338\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02205d8ecd64a4eeba466815ddf3a4de9a8e6abd9c5db0a01eb80343553da648428f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]\n[key.wx = 5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963]\n[key.wy = 00838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]\n[sha = SHA-256]\n\n# tcId = 339\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b\nflags = PointDuplication\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc469637c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]\n[key.wx = 5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963]\n[key.wy = 7c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc469637c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]\n[sha = SHA-256]\n\n# tcId = 340\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b\nflags = PointDuplication\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a647e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]\n[key.wx = 6adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a6]\n[key.wy = 47e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a647e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]\n[sha = SHA-256]\n\n# tcId = 341\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 30250201010220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f382065f3450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]\n[key.wx = 2fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f3820]\n[key.wy = 65f3", + "450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f382065f3450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]\n[sha = SHA-256]\n\n# tcId = 342\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3045022101000000000000000000000000000000000000000000000000000000000000000002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d25045d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]\n[key.wx = 00dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d250]\n[key.wy = 45d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d25045d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]\n[sha = SHA-256]\n\n# tcId = 343\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c7002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]\n[key.wx = 4fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5]\n[key.wy = 00d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]\n[sha = SHA-256]\n\n# tcId = 344\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc476699780220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c6a771527024227792170a6f8eee735bf32b7f98af669ead299802e32d7c3107bc3b4b5e65ab887bbd343572b3e5619261fe3a073e2ffd78412f726867db589e]\n[key.wx = 00c6a771527024227792170a6f8eee735bf32b7f98af669ead299802e32d7c3107]\n[key.wy = 00bc3b4b5e65ab887bbd343572b3e5619261fe3a073e2ffd78412f726867db589e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c6a771527024227792170a6f8eee735bf32b7f98af669ead299802e32d7c3107bc3b4b5e65ab887bbd343572b3e5619261fe3a073e2ffd78412f726867db589e]\n[sha = SHA-256]\n\n# tcId = 345\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04851c2bbad08e54ec7a9af99f49f03644d6ec6d59b207fec98de85a7d15b956efcee9960283045075684b410be8d0f7494b91aa2379f60727319f10ddeb0fe9d6]\n[key.wx = 00851c2bbad08e54ec7a9af99f49f03644d6ec6d59b207fec98de85a7d15b956ef]\n[key.wy = 00cee9960283045075684b410be8d0f7494b91aa2379f60727319f10ddeb0fe9d6]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004851c2bbad08e54ec7a9af99f49f03644d6ec6d59b207fec98de85a7d15b956efcee9960283045075684b410be8d0f7494b91aa2379f60727319f10ddeb0fe9d6]\n[sha = SHA-256]\n\n# tcId = 346\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f6417c8a670584e388676949e53da7fc55911ff68318d1bf3061205acb19c48f8f2b743df34ad0f72674acb7505929784779cd9ac916c3669ead43026ab6d43f]\n[key.wx = 00f6417c8a670584e388676949e53da7fc55911ff68318d1bf3061205acb19c48f]\n[key.wy = 008f2b743df34ad0f72674acb7505929784779cd9ac916c3669ead43026ab6d43f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f6417c8a670584e388676949e53da7fc55911ff68318d1bf3061205acb19c48f8f2b743df34ad0f72674acb7505929784779cd9ac916c3669ead43026ab6d43f]\n[sha = SHA-256]\n\n# tcId = 347\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997802203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04501421277be45a5eefec6c639930d636032565af420cf3373f557faa7f8a06438673d6cb6076e1cfcdc7dfe7384c8e5cac08d74501f2ae6e89cad195d0aa1371]\n[key.wx = 501421277be45a5eefec6c639930d636032565af420cf3373f557faa7f8a0643]\n[key.wy = 008673d6cb6076e1cfcdc7dfe7384c8e5cac08d74501f2ae6e89cad195d0aa1371]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004501421277be45a5eefec6c639930d636032565af420cf3373f557faa7f8a06438673d6cb6076e1cfcdc7dfe7384c8e5cac08d74501f2ae6e89cad195d0aa1371]\n[sha = SHA-256]\n\n# tcId = 348\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 040d935bf9ffc115a527735f729ca8a4ca23ee01a4894adf0e3415ac84e808bb343195a3762fea29ed38912bd9ea6c4fde70c3050893a4375850ce61d82eba33c5]\n[key.wx = 0d935bf9ffc115a527735f729ca8a4ca23ee01a4894adf0e3415ac84e808bb34]\n[key.wy = 3195a3762fea29ed38912bd9ea6c4fde70c3050893a4375850ce61d82eba33c5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040d935bf9ffc115a527735f729ca8a4ca23ee01a4894adf0e3415ac84e808bb343195a3762fea29ed38912bd9ea6c4fde70c3050893a4375850ce61d82eba33c5]\n[sha = SHA-256]\n\n# tcId = 349\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca215de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]\n[key.wx = 5e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca21]\n[key.wy = 5de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca215de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]\n[sha = SHA-256]\n\n# tcId = 350\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2960220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04169fb797325843faff2f7a5b5445da9e2fd6226f7ef90ef0bfe924104b02db8e7bbb8de662c7b9b1cf9b22f7a2e582bd46d581d68878efb2b861b131d8a1d667]\n[key.wx = 169fb797325843faff2f7a5b5445da9e2fd6226f7ef90ef0bfe924104b02db8e]\n[key.wy = 7bbb8de662c7b9b1cf9b22f7a2e582bd46d581d68878efb2b861b131d8a1d667]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004169fb797325843faff2f7a5b5445da9e2fd6226f7ef90ef0bfe924104b02db8e7bbb8de662c7b9b1cf9b22f7a2e582bd46d581d68878efb2b861b131d8a1d667]\n[sha = SHA-256]\n\n# tcId = 351\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04271cd89c000143096b62d4e9e4ca885aef2f7023d18affdaf8b7b548981487540a1c6e954e32108435b55fa385b0f76481a609b9149ccb4b02b2ca47fe8e4da5]\n[key.wx = 271cd89c000143096b62d4e9e4ca885aef2f7023d18affdaf8b7b54898148754]\n[key.wy = 0a1c6e954e32108435b55fa385b0f76481a609b9149ccb4b02b2ca47fe8e", + "4da5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004271cd89c000143096b62d4e9e4ca885aef2f7023d18affdaf8b7b548981487540a1c6e954e32108435b55fa385b0f76481a609b9149ccb4b02b2ca47fe8e4da5]\n[sha = SHA-256]\n\n# tcId = 352\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043d0bc7ed8f09d2cb7ddb46ebc1ed799ab1563a9ab84bf524587a220afe499c12e22dc3b3c103824a4f378d96adb0a408abf19ce7d68aa6244f78cb216fa3f8df]\n[key.wx = 3d0bc7ed8f09d2cb7ddb46ebc1ed799ab1563a9ab84bf524587a220afe499c12]\n[key.wy = 00e22dc3b3c103824a4f378d96adb0a408abf19ce7d68aa6244f78cb216fa3f8df]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043d0bc7ed8f09d2cb7ddb46ebc1ed799ab1563a9ab84bf524587a220afe499c12e22dc3b3c103824a4f378d96adb0a408abf19ce7d68aa6244f78cb216fa3f8df]\n[sha = SHA-256]\n\n# tcId = 353\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29602203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a6c885ade1a4c566f9bb010d066974abb281797fa701288c721bcbd23663a9b72e424b690957168d193a6096fc77a2b004a9c7d467e007e1f2058458f98af316]\n[key.wx = 00a6c885ade1a4c566f9bb010d066974abb281797fa701288c721bcbd23663a9b7]\n[key.wy = 2e424b690957168d193a6096fc77a2b004a9c7d467e007e1f2058458f98af316]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a6c885ade1a4c566f9bb010d066974abb281797fa701288c721bcbd23663a9b72e424b690957168d193a6096fc77a2b004a9c7d467e007e1f2058458f98af316]\n[sha = SHA-256]\n\n# tcId = 354\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 048d3c2c2c3b765ba8289e6ac3812572a25bf75df62d87ab7330c3bdbad9ebfa5c4c6845442d66935b238578d43aec54f7caa1621d1af241d4632e0b780c423f5d]\n[key.wx = 008d3c2c2c3b765ba8289e6ac3812572a25bf75df62d87ab7330c3bdbad9ebfa5c]\n[key.wy = 4c6845442d66935b238578d43aec54f7caa1621d1af241d4632e0b780c423f5d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048d3c2c2c3b765ba8289e6ac3812572a25bf75df62d87ab7330c3bdbad9ebfa5c4c6845442d66935b238578d43aec54f7caa1621d1af241d4632e0b780c423f5d]\n[sha = SHA-256]\n\n# tcId = 355\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[sha = SHA-256]\n\n# tcId = 356\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 357\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e0220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 00b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[sha = SHA-256]\n\n# tcId = 358\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 359\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e0220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[key.wx = 04aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad5]\n[key.wy = 0087d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[sha = SHA-256]\n\n# tcId = 360\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 3045022100b292a619339f6e567a305c951c0dcbcc42d16e47f219f9e98e76e09d8770b34a02200177e60492c5a8242f76f07bfe3661bde59ec2a17ce5bd2dab2abebdf89a62e2\n\n# tcId = 361\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30450220530bd6b0c9af2d69ba897f6b5fb59695cfbf33afe66dbadcf5b8d2a2a6538e23022100d85e489cb7a161fd55ededcedbf4cc0c0987e3e3f0f242cae934c72caa3f43e9\n\n# tcId = 362\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 3046022100a8ea150cb80125d7381c4c1f1da8e9de2711f9917060406a73d7904519e51388022100f3ab9fa68bd47973a73b2d40480c2ba50c22c9d76ec217257288293285449b86\n\n# tcId = 363\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3045022100986e65933ef2ed4ee5aada139f52b70539aaf63f00a91f29c69178490d57fb7102203dafedfb8da6189d372308cbf1489bbbdabf0c0217d1c0ff0f701aaa7a694b9c\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[key.wx = 4f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000]\n[key.wy = 00ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[sha = SHA-256]\n\n# tcId = 364\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100d434e262a49eab7781e353a3565e482550dd0fd5defa013c7f29745eff3569f10221009b0c0a93f267fb6052fd8077be769c2b98953195d7bc10de844218305c6ba17a\n\n# tcId = 365\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304402200fe774355c04d060f76d79fd7a772e421463489221bf0a33add0be9b1979110b0220500dcba1c69a8fbd43fa4f57f743ce124ca8b91a1f325f3fac6181175df55737\n\n# tcId = 366\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bb40bf217bed3fb3950c7d39f03d36dc8e3b2cd79693f125bfd06595ee1135e30220541bf3532351ebb032710bdb6a1bf1bfc89a1e291ac692b3fa4780745bb55677\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 0084fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[keyDer = 3059301306072a8648ce3d02010", + "6082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[sha = SHA-256]\n\n# tcId = 367\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30440220664eb7ee6db84a34df3c86ea31389a5405badd5ca99231ff556d3e75a233e73a022059f3c752e52eca46137642490a51560ce0badc678754b8f72e51a2901426a1bd\n\n# tcId = 368\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304502204cd0429bbabd2827009d6fcd843d4ce39c3e42e2d1631fd001985a79d1fd8b430221009638bf12dd682f60be7ef1d0e0d98f08b7bca77a1a2b869ae466189d2acdabe3\n\n# tcId = 369\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e56c6ea2d1b017091c44d8b6cb62b9f460e3ce9aed5e5fd41e8added97c56c04022100a308ec31f281e955be20b457e463440b4fcf2b80258078207fc1378180f89b55\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 7b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[sha = SHA-256]\n\n# tcId = 370\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304402201158a08d291500b4cabed3346d891eee57c176356a2624fb011f8fbbf34668300220228a8c486a736006e082325b85290c5bc91f378b75d487dda46798c18f285519\n\n# tcId = 371\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100b1db9289649f59410ea36b0c0fc8d6aa2687b29176939dd23e0dde56d309fa9d02203e1535e4280559015b0dbd987366dcf43a6d1af5c23c7d584e1c3f48a1251336\n\n# tcId = 372\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b7b16e762286cb96446aa8d4e6e7578b0a341a79f2dd1a220ac6f0ca4e24ed86022100ddc60a700a139b04661c547d07bbb0721780146df799ccf55e55234ecb8f12bc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[key.wx = 2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffff]\n[key.wy = 00a01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[sha = SHA-256]\n\n# tcId = 373\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100d82a7c2717261187c8e00d8df963ff35d796edad36bc6e6bd1c91c670d9105b402203dcabddaf8fcaa61f4603e7cbac0f3c0351ecd5988efb23f680d07debd139929\n\n# tcId = 374\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304402205eb9c8845de68eb13d5befe719f462d77787802baff30ce96a5cba063254af7802202c026ae9be2e2a5e7ca0ff9bbd92fb6e44972186228ee9a62b87ddbe2ef66fb5\n\n# tcId = 375\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304602210096843dd03c22abd2f3b782b170239f90f277921becc117d0404a8e4e36230c28022100f2be378f526f74a543f67165976de9ed9a31214eb4d7e6db19e1ede123dd991d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[key.wx = 00fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f5]\n[key.wy = 5a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[sha = SHA-256]\n\n# tcId = 376\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30440220766456dce1857c906f9996af729339464d27e9d98edc2d0e3b760297067421f60220402385ecadae0d8081dccaf5d19037ec4e55376eced699e93646bfbbf19d0b41\n\n# tcId = 377\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100c605c4b2edeab20419e6518a11b2dbc2b97ed8b07cced0b19c34f777de7b9fd9022100edf0f612c5f46e03c719647bc8af1b29b2cde2eda700fb1cff5e159d47326dba\n\n# tcId = 378\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100d48b68e6cabfe03cf6141c9ac54141f210e64485d9929ad7b732bfe3b7eb8a84022100feedae50c61bd00e19dc26f9b7e2265e4508c389109ad2f208f0772315b6c941\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[key.wx = 03fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e]\n[key.wy = 1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[sha = SHA-256]\n\n# tcId = 379\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b7c81457d4aeb6aa65957098569f0479710ad7f6595d5874c35a93d12a5dd4c7022100b7961a0b652878c2d568069a432ca18a1a9199f2ca574dad4b9e3a05c0a1cdb3\n\n# tcId = 380\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402206b01332ddb6edfa9a30a1321d5858e1ee3cf97e263e669f8de5e9652e76ff3f702205939545fced457309a6a04ace2bd0f70139c8f7d86b02cb1cc58f9e69e96cd5a\n\n# tcId = 381\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100efdb884720eaeadc349f9fc356b6c0344101cd2fd8436b7d0e6a4fb93f106361022100f24bee6ad5dc05f7613975473aadf3aacba9e77de7d69b6ce48cb60d8113385d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 1352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[sha = SHA-256]\n\n# tcId = 382\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3044022031230428405560dcb88fb5a646836aea9b23a23dd973dcbe8014c87b8b20eb0702200f9344d6e812ce166646747694a41b0aaf97374e19f3c5fb8bd7ae3d9bd0beff\n\n# tcId = 383\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100caa797da65b320ab0d5c470cda0b36b294359c7db9841d679174db34c4855743022100cf543a62f23e212745391aaf7505f345123d2685ee3b941d3de6d9b36242e5a0\n\n# tcId = 384\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304502207e5f0ab5d900d3d3d7867657e5d6d36519bc54084536e7d21c336ed8001859450221009450c07f201faec94b82dfb322e5ac676688294aad35aa72e727ff0b19b646aa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 00fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[sha = SHA-256]\n\n# tcId = 385\n# y-coordinate of the public key is large\nmsg ", + "= 4d657373616765\nresult = valid\nsig = 3046022100d7d70c581ae9e3f66dc6a480bf037ae23f8a1e4a2136fe4b03aa69f0ca25b35602210089c460f8a5a5c2bbba962c8a3ee833a413e85658e62a59e2af41d9127cc47224\n\n# tcId = 386\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30440220341c1b9ff3c83dd5e0dfa0bf68bcdf4bb7aa20c625975e5eeee34bb396266b34022072b69f061b750fd5121b22b11366fad549c634e77765a017902a67099e0a4469\n\n# tcId = 387\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022070bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67022100aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a9\n\n", }; -static const size_t kLen70 = 154185; +static const size_t kLen103 = 147510; -static const char *kData70[] = { - "# Imported from Wycheproof's ecdsa_secp256r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[key.wx = 2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838]\n[key.wy = 0c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002205f85a63a5be977ad714cea16b10035f07cadf7513ae8cca86f35b7692aafd69f\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00220a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# Some implementations of ECDSA and DSA incorrectly encode r and s by not\n# including leading zeros in the ASN encoding of integers when necessary. Hence,\n# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings\n# assuming that the signature is otherwise valid.\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 4\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30814502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30460281202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002812100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 7\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047028200202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 9\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00282002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304502212478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3045021f2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022200a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 15\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 16\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3085010000004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304a028501000000202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 18\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00285010000002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 19\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304e02890100000000000000202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 21\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 304e02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0028901000000000000002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 22\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 24\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002847fffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 25\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 27\n# ", - "length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00284ffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 28\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 30\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00285ffffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 31\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 33\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00288ffffffffffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 34\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 304502ff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 36\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002ff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 37\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502802478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 39\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0028000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 40\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 41\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 42\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047000002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 45\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20500\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a498177304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492500304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20004deadbeef\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a222549817702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492224250002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d222202202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00004deadbeef022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02226498177022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c022252500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02223022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20004deadbeef\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd00304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2228aa00bb00cd0002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2226aa02aabb02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02229aa00bb00cd00022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 60\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02227aa02aabb022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 61\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 62\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049228002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 64\n# using composition with indefin", - "ite length\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02280022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 65\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080314502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049228003202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 67\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02280032100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 68\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 314502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 324502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 73\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 74\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 75\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30493001023044202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 76\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34e\n\n# tcId = 77\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 78\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 79\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb200\n\n# tcId = 80\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb205000000\n\n# tcId = 81\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2060811220000\n\n# tcId = 82\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000fe02beef\n\n# tcId = 83\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20002beef\n\n# tcId = 84\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047300002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 85\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb23000\n\n# tcId = 86\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 87\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 302202202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0\n\n# tcId = 88\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 306802202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3023022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302402022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302302202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022300a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022200002478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00223000000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022300a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841", - "359d1b34eb20500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250281022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30250500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304500202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304501202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304503202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304504202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045ff202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0012100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0032100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0042100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0ff2100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250200022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30492224020124021f78f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c022250201000220a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202678f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022102a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f98140022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34e32\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021f2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021f78f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34e\n\n# tcId = 124\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00220a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00222ff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 127\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3026090180022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 128\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 302502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 302502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012478f1cf49f6d858ac900a7af177222661ac95e206d32ee63020beee955ca711022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2478f1d149f6d856ac900a7af1772226e7dea086b8a3f1dc48ad29689c965c6f022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30450220db870e2fb60927a8536ff5850e88ddd95b3a64cba0446f9ec3990bd467067e40022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100db870e2eb60927a9536ff5850e88ddd918215f79475c0e23b752d6976369a391022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221fedb870e30b60927a7536ff5850e88ddd99e536a1df92cd119cfdf41116aa358ef022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c", - "66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100db870e2fb60927a8536ff5850e88ddd95b3a64cba0446f9ec3990bd467067e40022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022101a07a59c3a41688548eb315e94effca0efd1ffe0a13467061783dde1cce167403\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00220a07a59c5a41688528eb315e94effca0f835208aec517335790ca4896d5502961\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00221ff5f85a63b5be977ac714cea16b10035f0bfc6fca393d12e237b7beca62e4cb14e\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00221fe5f85a63c5be977ab714cea16b10035f102e001f5ecb98f9e87c221e331e98bfd\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022101a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002205f85a63b5be977ac714cea16b10035f0bfc6fca393d12e237b7beca62e4cb14e\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special ca", - "se values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325510201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325500201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000", - "000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325520201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff000000010000000000000000000000010000000000000000000000000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nr", - "esult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000001000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000001000000000000000000000000090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 216\n# Edge case for Shamir multiplication\nmsg = 3932323038\nresult = valid\nsig = 3044022064a1aab5000d0e804f3e2fc02bdee9be8ff312334e2ba16d11547c97711c898e02203c623e7f7598376825fa8bc09e727c75794cbb4ee8716ae15c31cd1cbe9ca3ee\n\n# tcId = 217\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 304402203a4f61f7f8c4546e3580f7848411786fee1229a07a6ecf5fb84870869188215d022018c5ce44354e2274eadb8fea319f8d6f60944532dbaae86bfd8105f253041bcb\n\n# tcId = 218\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 304502203fa9975fb2b08b7b6e33f3843099da3f43f1dcfe9b171a60cafd5489ca9c5328022100985a86825a0cc728f5d9dac2a513b49127a06100f0fc4b8b1f200903e0df9ed2\n\n# tcId = 219\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 304402204d66e7ee5edd02ab96db25954050079ef8de1d0f02f34d4d75112eaf3f73124002206292d1563140013c589be40e599862bdd6bda2103809928928a119b43851a2ce\n\n# tcId = 220\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 3046022100a9228305f7b486f568eb65d44e49ba007e3f14b8f23c689c952e4ced1e6cf91e022100b73c74d28bd1268002bed784a6b06c40a90ee5938ea6d08f272d027e0f96a72c\n\n# tcId = 221\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 304402203fa39842bfab6c38afa7963c60beb09484d4579fc75ef09efff44e91bc62ca8302205612add1924f0285ace5b158828e2b32ab2b6e7f10ee68dca1cc54591fee1fec\n\n# tcId = 222\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 3045022006c04b02edfeecd8620f035ea4f449bd924593e86e5288a6f22d1923b0e2e8a9022100f666718e6fefb515bb9339d29cc0e58cfba89d605ca0066bca87f6a3f08ebcfa\n\n# tcId = 223\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 304402201ddd953c32a5f84109cd4d9ec8c364dd318376ff5d228211a367483077d638800220563dba4845de762baf04910618d587e0dd0c97dd1c9785c24ffdf2f8a660abf2\n\n# tcId = 224\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 30460221009fe4ec4831ef4945f100d5d35a2e6312411ca5df6c900ca60690f2985d553482022100c674ad5e1bead2f767c9248e444452a4a8530dd47246cbbc968da865bdf212b6\n\n# tcId = 225\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 3046022100e8703d6b16a79fc2ab3653cece29d06f65dd6f2c230cb08ee30c5517407d75db0221008cfeb87b8e95ddacd638b37d315393c5005f3ab8bba0cc1cd1a050829b775bfb\n\n# tcId = 226\n# special case hash\nmsg = 36323139353630323031\nresult = valid\nsig = 3046022100def608caf1f277d71403009f209c1d7eef11aaa7920397fbf429b8146181aece022100f3b8f2aa5b3df9a8b37313ea66ad5b74673f3e8614ff471b1eb6773217511fb0\n\n# tcId = 227\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 304402204f5d08e8d936ce831d02d6b23fb8fce0e0750101af3ab9c3b28636b95a5e24ad02206f034480553bcecac221f8be8288163c55492e2e56a88f4d0341b61436a0a6c0\n\n# tcId = 228\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 3045022100bdd822bfe3733d9f4b88764fe091db2e8f8af366e4c44d876bf82e62bd48c7ee02207fbf7750c5dc849a2c55dbdd067806f869652a7b3a57baa4733781d3128f02de\n\n# tcId = 229\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 304402201c4fc02961b7f4245566b410bf08f447502ea4f75b15690344681efa2edf7b4b02207d63eef119dc88bc4a1b2c43ac21cd53892443661f8c3a97d558bf888c29f769\n\n# tcId = 230\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 304402206406f2d249ab1264e175476ca3300efd049fcad569dff40b922082b41cc7b7ce0220461872b803383f785077714a9566c4d652e87b2cad90dd4f4cc84bc55004c530\n\n# tcId = 231\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 30450220415c924b9ba1902b340058117d90623602d48b8280583fb231dc93823b83a153022100f18be8cdc2063a26ab030504d3397dc6e9c6b6c56f4e3a59832c0e4643c0263c\n\n# tcId = 232\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 3045022100d12e96c7d2f177b7cf6d8a1ede060a2b174dc993d43f5fe60f75604824b64fef02200c97d87035fcca0a5f47fe6461bb30cbaf05b37e4211ec3fcd51fc71a12239ca\n\n# tcId = 233\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 304502207df72a64c7e982c88f83b3a22802690098147e0e42ef4371ef069910858c0646022100adbaa7b10c6a3f995ed5f83d7bda4ba626b355f34a72bf92ff788300b70e72d0\n\n# tcId = 234\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 30440220047c4306f8d30e425ae70e0bee9e0b94faa4ef18a9c6d7f2c95de0fe6e2a323702207a4d0d0a596bd9ea3fe9850e9c8c77322594344623c0b46ac2a8c95948aefd98\n\n# tcId = 235\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 3044022057d603a367e23af39c95dd418c0176da8b211d50b1be82bf5ef621a2640204f702205dc3f285ad015c4d71157bd11e5b8df6a89e4b267393b08b5ad5013bdae544b1\n\n# tcId = 236\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 3044022011df6741021ec8cc567584aea16817c540859c4e5011551c00b097fcfc2337e50220668551919d43206ac0571fc5ad3ac0efb489bea599e7bf99fe4c7468d6c2c5e0\n\n# tcId = 237\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 304402207451ffede471bd370406533436fc42a89daa0af4903d087cbc062fe7e54dbf700220590895398f22b48ce72cbf7c3d3ee1dd7fb0ee645edb0b1b1de35f370e5bf5ee\n\n# tcId = 238\n# special case hash\nmsg = 32323332313935383233\nresult = valid\nsig = 3045022100fc4c4d81da6f687a6426263193c1a680b67734a1b180647b8c76407cc4f0a9c6022056f775d372c9bee685374085be676c9cf31cf1f978a5e6ccb04e4a0761159cc7\n\n# tcId = 239\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 3045022100feb978ca33c46ffba47eb63bb40de7833e43d5654575b54de1fea3d1de3c8ad50220108078ba997bfa064521baf342c97b0c64bd25240c8fd0fd7533ae2d03081b70\n\n# tcId = 240\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 3046022100cc61729698467ba53da199ff481fe7433f194fc96367907e8dc5e1d9f42b1e2102210083dd9ef156e7c1f9c09b3bf86a4f1c88e5dd20cd74d997858e600797dbe74ad2\n\n# tcId = 241\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 3045022100d47f616303ff0eb813eac32e760ba30ad445e0af7dc57e70756104823f6a895f0220047f2217b399c46a426b936a124980a6011f0896f51dbe07632828a72d7173f1\n\n# tcId = 242\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 3046022100cff73dfa2bac67ce1340b25c885abb3e7979ef7f840f15d5f19e86640cdd40a3022100c7d1210802796c4f251049ee08a2c29f5c71064033d17010c65bf2e94499381e\n\n# tcId = 243\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 3044022010acaf9c485ab1220355b95be269f124e12eb252f2224b0fc50785eb2ee3df45022032443b557efc6896347fa778e1fcf33cbb769c9a7da896b20d93fea7c2791ea4\n\n# tcId = 244\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig ", - "= 3046022100f919da0651abc2bff994a879d2778fa5195d57400e003e8dd6adb3fc7a0cc4cc0221009b945d06bd119665b278a59bd24fdd2350817d0be87997bee57b70c479d64a2d\n\n# tcId = 245\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 3045022100cc38e7a018f6d70b2d9b49120cc9b4a169f2f72238821a86b81f553b6225d24e0220276efd8bf06ccce07c7aae35eaac3bd1c374dcf0cf0588d5e0e4171936688636\n\n# tcId = 246\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 3045022100ff85ad66621991c318b85cef73c576cb2a8d43c568c1aafc85b40ef2a9a6b41c0220732a79e6837ebf8434fea6e7fefa948f506ae455c1a3eb36a030185a23037d96\n\n# tcId = 247\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 3044022033f016e51eef9b1136380cb8b84c6b38b107e24c6731bd07cb1c7f4a29f33a83022036b177bb8be94c8be67ff3a41fcc4d22b5c9eb377da713eb014ae01c64ca6dd7\n\n# tcId = 248\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 3045022100929413ee91f27454d74e91370a10a86fc98ac7305c8ab4ca59752bda3a7bfc370220483b47a26a0d7d2e6bd37d351d9ee37c5ec2a4686d884d78b6beb7f6b08c50f9\n\n# tcId = 249\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 30450220578202c7d0abac93ca43dde3cb44414e5601c1eb557604cb9adb4bde0a12633b022100fb9a7412e307aee95ef4b53540571a21559414e5306794ab5182cfb229dab3e9\n\n# tcId = 250\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 3045022046d45ad0bb75b8639d0e91d8450fc31887c211328a5784fc83b4cb7f5b962c1b022100d6751d13ede2079b7aa1d822bdb32d7f3cf00273a1ff03df90c0ec7c62a47568\n\n# tcId = 251\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 3046022100abe84c941783d5ced284fea56341ecc68d6bdd3196d318fbd074641f8c885bd5022100bdea3c44d48e01aa40935c1c9723ff733199563440f26b4ecf0b444b0418d9f5\n\n# tcId = 252\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 3045022005277cdbf491e336fe81be24e393a161a4fb89112c9ffed1ee6649c406713408022100ab6934332e68e108bb0484d21c457dcf381a620c3a4712fdbfeb658a3fafd60c\n\n# tcId = 253\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 30450220293825737c8c14430ed10dbadd7da337275f9b61d1d26377f778ffaa00c139de022100cdddec267a8678c96829bf6c1d6f38322e119937cfd2fee01e9dc9525f43ed6b\n\n# tcId = 254\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 304402202041fdd6111c45dfd29e750e082dcdadc9a584a8a2be46580fb0ba3b3dc658620220421824fe987e4172a0f8bbcb7bcd9e1b073b7742ed9f9df98f2a1a37cd374ce3\n\n# tcId = 255\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 30450220267941db660e046ab14e795669e002b852f7788447c53ebef46a2056978b5574022100d00183bcaf75bc11e37653f952f6a6537151c3aa0a1b9e4e41b004a29185395b\n\n# tcId = 256\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 304402205dcd7f6814739d47f80a363b9414e6cbfb5f0846223888510abd5b3903d7ae09022043418f138bb3c857c0ad750ca8389ebcf3719cb389634ac54a91de9f18fd7238\n\n# tcId = 257\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 304502205e0e8cc0280409a0ce252da02b2424d2de3a52b406c3778932dbc60cb86c356702210093d25e929c5b00e950d89585ec6c01b6589ae0ec0af8a79c04df9e5b27b58bc5\n\n# tcId = 258\n# special case hash\nmsg = 33323639383937333231\nresult = valid\nsig = 304502204fcf9c9d9ffbf4e0b98268c087071bffe0673bb8dcb32aa667f8a639c364ea47022100820db0730bee8227fc831643fcb8e2ef9c0f7059ce42da45cf74828effa8d772\n\n# tcId = 259\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 3046022100c60cd2e08248d58d1639b123633643c63f89aff611f998937ccb08c9113bcdca022100ac4bb470ce0164616dada7a173364ed3f9d16fd32c686136f904c99266fda17e\n\n# tcId = 260\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 304502207cfdaf6f22c1c7668d7b6f56f8a7be3fdeeb17a7863539555bbfa899dd70c5f1022100cee151adc71e68483b95a7857a862ae0c5a6eee478d93d40ccc7d40a31dcbd90\n\n# tcId = 261\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 304402202270be7ee033a706b59746eab34816be7e15c8784061d5281060707a0abe0a7d022056a163341ee95e7e3c04294a57f5f7d24bf3c3c6f13ef2f161077c47bd27665d\n\n# tcId = 262\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 3044022016b5d2bfcaba21167a69f7433d0c476b21ded37d84dc74ca401a3ecddb2752a8022062852cf97d89adfb0ebbe6f398ee641bfea8a2271580aac8a3d8326d8c6e0ef9\n\n# tcId = 263\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 3046022100d907eefa664115848b90c3d5baa0236f08eafaf81c0d52bb9d0f8acb57490847022100fd91bc45a76e31cdc58c4bfb3df27f6470d20b19f0fba6a77b6c8846650ed8a6\n\n# tcId = 264\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 30450220048337b34f427e8774b3bf7c8ff4b1ae65d132ac8af94829bb2d32944579bb31022100bd6f8eab82213ccf80764644204bb6bf16c668729cdd31dd8596286c15686e8e\n\n# tcId = 265\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 3046022100b2bc46b7c44293557ab7ebeb0264924277193f87a25d94c924df1518ba7c7260022100abf1f6238ff696aaafaf4f0cbbe152c3d771c5bfc43f36d7e5f5235819d02c1a\n\n# tcId = 266\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 3045022040d4b38a61232e654ffd08b91e18609851f4189f7bf8a425ad59d9cbb1b54c990221009e775a7bd0d934c3ed886037f5d3b356f60eda41191690566e99677d7aaf64f3\n\n# tcId = 267\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 3046022100ac8f64d7df8d9fea005744e3ac4af70aa3a38e5a0f3d069d85806a4f29710339022100c014e96decfef3857cc174f2c46ad0882bef0c4c8a17ce09441961e4ae8d2df3\n\n# tcId = 268\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 3044022041b3766f41a673a01e2c0cab5ceedbcec8d82530a393f884d72aa4e6685dea0a0220073a55dca2da577cafb40e12dd20bf8529a13a6acdf9a1c7d4b2048d60876cb3\n\n# tcId = 269\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 304502201942755aa8128382cd8e35a4350c22cc45ba5704d99e8a240970df11956ad866022100f64cf1e0816cf7ac5044f73ba938e142ef3305cb09becb80a0a5b9ad7ba3eb07\n\n# tcId = 270\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 3045022051aba4ff1c7ddf17e0632ab71684d8de6dc700219ef346cb28ce9dafc3565b3b022100b6aaebe1af0ad01f07a68bf1cf57f9d6040b43c14b7eb8238542760e32ce3b0c\n\n# tcId = 271\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 304502210091efbfcc731650e9f004c38b71db146c17bf871c82c4e87716f7ff2f7f9e51d00220089ea631a7c5f05311c521d21ba798b5174881f0fd8095fb3a77515913efb6e0\n\n# tcId = 272\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 304502204a7e47bd281ea09b9e3a32934c7a969e1f788f978b41585989f4689e804663fb022100e65f6bd702403cbbed7f8ad0045f331d4a96fbf8c43f71f11615b7d1b9153b7f\n\n# tcId = 273\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 3046022100c795f5da86e10a604d4f94bf7cac381c73edad1461d66929e53aa57ca294e89f022100bae784ab6c7b58332ee05e7d54169edf55ce45f030e71ae8df63969fb327a10c\n\n# tcId = 274\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 3046022100ea68b24843b225f505e01c0e608b20b4d93e8faf6b9cf70cf8f9134a80e7b668022100a3abc044b4728f80fe414bdc66f032b262356720547bec7729fad94151c6adc7\n\n# tcId = 275\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 3046022100bfe7502140c57a24a77edc3d9b3c4bc11d21bdb0b196977b7f2b13ac973ad697022100947a01da9731849d72b67ef7bc40b012480fd389895aad1f6b1cdbeab3b93b8d\n\n# tcId = 276\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 304402203434ee1142740a0ab8623b97fc8dc2567eda45dadf6039b45c448819e840cf3002203c0fac0487841997202c29f3bf2df540b115b29dc619160d52203d4a1fd4b9f7\n\n# tcId = 277\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 304502205338500e23ba96a0adc6ef84932e25fbad7435d9f70eb7f476c6912de12e33c8022100a002f5583ea8c0d7fb17136d0ee0415acf629879ce6b01ac52e3ecd7772a3704\n\n# tcId = 278\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 304402204ff2d4e31f4180de6901d2d20341d12387c9c55f4cf003a742f049b84af6fe0502200312f38771414555fa5ed2817dcc629a8c7cf69d306300e87bc167278ec3ef37\n\n# tcId = 279\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 3044022051d665bad5f2d6306c6bbfe1f27555887670061d4df36ec9f4ce6cdfaf9ea7ac02202905e43f6207ee93df35a2e9fb9bc8098c448ae98a14e4ad1ebaea5d56b6e493\n\n# tcId = 280\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 3046022100b804e0235f135aba7b7531b6831f26cc9fb77d3f83854957431be20706b813690221009d317fd08e4e04", - "67617db819cde1d7d4d74da489b2bce4db055ea01eccfafcf2\n\n# tcId = 281\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = 30450221008ab50ef3660ccb6af34c78e795ded6b256ffca5c94f249f3d907fb65235ef680022049d5aaeae5a6d0c15b286e428b5e720cf37a822ede445baa143ffae69aba91b8\n\n# tcId = 282\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 30440220571b9c46a47c5cc53a574c196c3fb07f3510c0f4443b9f2fe781252c24d343de022068a9aebd50ff165c89b5b9cb6c1754191958f360b4d2851a481a3e1106ee7809\n\n# tcId = 283\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 304502204cb7817b04dc73be60d3711803bc10687a6e3f4ab79c4c1a4e9d63a73174d4eb022100ce398d2d6602d2af58a64042f830bf774aee18209d6fb5c743b6a6e437826b98\n\n# tcId = 284\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 30450220684399c6cd6ebb1c5d5efb0d78dce40ebd48d9d944eb6548c9ce68d7fdc82229022100cf25c8e427fae359bfe60fa02964f4c9b8d6db54612e05c78c341f0a8c52d0b5\n\n# tcId = 285\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 3045022020b7b36d5bc76fa182ca27152a99a956e6a0880000694296e31af98a7312d04b022100eeeabc5521f9856e920eb7d29ed7e4042f178ff706dff8eeb24b429e3b63402a\n\n# tcId = 286\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 304402206b65c95e8e121d2e6ee506cfd62cb88e0bfb3589da40876898ef66c43982aca9022009642c05ad619b4402fd297eb57e29cca5c2eb6823931ba82de32d7c652ba73e\n\n# tcId = 287\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 3044022067c74cbf5ea4b777bf521ace099f4f094d8f58900e15e67e1b4bd399056629ed02203d2884655c49b8b5f64e802a054e7bf09b0fc80ca18ebf927b82e58bb4a00400\n\n# tcId = 288\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 3045022079a5e40da5cf34c4c39adf7dfc5d454995a250314ebd212b5c8e3f4e6f875feb022100b268920e403ba17828ff271938a6558a5b2dd000229f8edb4a9d9f9b6ac1b472\n\n# tcId = 289\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 3045022100c8b13006c3a51a322fff9321761b01de134f526be582b22e19693c443fc9fe46022034e7f60179c6162ab980fcd58f173b0e6c30b524d35c67921677522dcef843a1\n\n# tcId = 290\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 304502203513db745489a487c88a6cedf8795b640f8f71578397bdabd6cc586c25bd66ad02210099a72cd3f0ca6c799149283ca0af37f86b88200d0c905bd3c9f1b859e55b1659\n\n# tcId = 291\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 304402203a6386afb08f7ff8140b5a270f764e8706ef2830fb177446f7b4eeb8a25aac6402204b70854b38c29245b2b980eba10ea936c68a38c1da5255ce2386db23afc7c06a\n\n# tcId = 292\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 3046022100b8fc54a8a6be3c55e99c06f99ccdcce7af5c18a3c5829726a870cc1068458f64022100cc7237c39c8e6a4a1c8c62f5f88636549c7410798b89684c502c3adfe5fb7ad2\n\n# tcId = 293\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 3045022047b460851e5607f2021626635c565a63f78f558795e1b330d09115970dbbb8ab022100a6a9f4f213e08d3c736d3e1c44a35140cb107619f265a5b13608ed729fd6d894\n\n# tcId = 294\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 30450221008cfda4f7a65864ebbea3144863da9b075c07b5b42cb4569643ddfd70dd753b190220595784b1ab217874b82b9585521f8090b9f6322884ab7a620464f51cf846c5b7\n\n# tcId = 295\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 304402204cd6a45bd7c8bf0edbdf073dbf1f746234cbbca31ec20b526b077c9f480096e702207cf97ae0d33f50b73a5d7adf8aa4eeeb6ff10f89a8794efe1d874e23299c1b3d\n\n# tcId = 296\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 304402202e233f4df8ffebeaec64842b23cce161c80d303b016eca562429b227ae2b58ec022046b6b56adec82f82b54daa6a5fca286740a1704828052072a5f0bc8c7b884242\n\n# tcId = 297\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 30440220549f658d4a3f98233a2c93bd5b1a52d64af10815ae60becb4139cac822b579c3022027bdddf0dbcf374a2aec8accc47a8ac897f8d1823dda8eb2052590970b39ce2a\n\n# tcId = 298\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 30450221009fabcc1e5fd965226902f594559e231369e584453974e74f49d7d762e134fb9d0220293cccc510793bac45ce5da2bb6c9e906437f59435ca206655f74b625df07c7c\n\n# tcId = 299\n# special case hash\nmsg = 37313836313632313030\nresult = valid\nsig = 304502202e5c140fd6f5f823addc8088ffaae967e7f4897274316769561dfb31435825d9022100eda47327d7cfae1daa344ff5582a467bd18eb9f01caeab9c6da3c0cc89df6713\n\n# tcId = 300\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 304402204c11e3b7efbe3908ad2118e54d7d34d6c6eb4570bf7fdb11a7679fe93afa254c0220712e90f421836e542dac49d10bb39db4a98b2735b6336d8a3c392f3b90e60bbe\n\n# tcId = 301\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 3045022100dfb4619303f4ff689563d2275069fac44d63ea3c3b18f4fb1ac805d7df3d12ec022068e37b846583901db256329f9cf64f40c416fba50dcb9be333a3e29c76ae32db\n\n# tcId = 302\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 3045022100e70e8e17bd758ff0c48f91cb2c53d293f0f5ae82eb9dfe76ab98f9b064278635022021dde32cb0389cad7bdf676d9b9b7d25bb034ad25a55ea71ee7ee26a18359dd2\n\n# tcId = 303\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 30440220421397ecae30617a5a6081ad1badf6ce9d9d4cb2afdabf1f900e7fdb7fb0af5a022057ca89dc22801c75fdbefdaeca65c675625f94de7d635062b08ed308df5762cc\n\n# tcId = 304\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 304502200610c08076909bb722fba105c23eac8f66b4db1d58f66a882fc90d59acdec8e0022100af59e8d570761cac589d49f11c884007f7ac1eea1a44c6f3fdad1d542187d25e\n\n# tcId = 305\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 3045022059a1181cab0ee8ce94ab2b5ab4f4b13a422e38efe69f634bf947485a5b9ea49c0221009b3c913d98a4ab15f6a39f1802b8f2d28559aa1f8d03a3a88df00c89dc293a97\n\n# tcId = 306\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 30460221008cae6c4dfbf901bd66ab82541011fa15c8e90e2c18c01bd881acaa2b63cb587b022100a86acf943f29cef91d1b66a7de5547df6cdfc45dd7bef816dcb8de9f5a425d2d\n\n# tcId = 307\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 30450221008b00c74b86474d782eac9974aea606d8f7ee78c79597e15687021f5991e86acd0220309dfe3686648eae104e87b3e9b5616a3ad479ca4f0b558ae4f1e5ab3115346a\n\n# tcId = 308\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 30450220433a915504c977809634a36fcf4480e4c8069fc127d201d30dfdb1f423c95fd4022100bcb1b89aafd50a1766b09741fc6a9a96e744ae9826d839bf85ffb50a91981773\n\n# tcId = 309\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 304502204b69abd2b39840a545cdd4a72d384234580e2fd938b7091d0ecdb562780857db022100fdab9957119e0a4092af82f6cc29f3c8a692671ec86efb0a03c1112a0a1e0467\n\n# tcId = 310\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 3045022100dab9d3686c28363ad017b4a2b36d35bf2eb80633613d44deb9501d42a3efbd3802201392a562d79f9ab19014e4f7e2f2668259f3720a76c120d4a3c3964e880f7679\n\n# tcId = 311\n# special case hash\nmsg = 33373033393135373035\nresult = valid\nsig = 3045022023f94e47b440ce379b74c9311232b19a64e3e7c9b90da34b0c1c3f3d7af28105022100e1425903b1479c2ce18b108a6d1ec8b7a4f0f657dedb00de3a3ceea7fdeee9be\n\n# tcId = 312\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 30450221009d706a8fa85d15bd0c3492c6672dfe529f4073b217b3947b5b2cfd61f87ccb7102206aaaaf369f82a0e542f72ded7d7eb90c8314ffa613a0ea81da1c8393dbae2bac\n\n# tcId = 313\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 3046022100ac77918c4085c8a7ce5020b00c315629aee053a445cb4661eb50f6b62a47da29022100df2aea2b9c11a6ce39d3cd9e1faf4a53057e0b1b2e48a324be9e773203fe9fbb\n\n# tcId = 314\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 30460221009db2dbd2935f147fae7f6a95c8e2307bd8537c3d96eb732ad6d5ebdd89bc754e02210093a9ab99d2de9d08fe0a61e26c8fe1ebbf88726e4b69d551b57d15f0ae16df5a\n\n# tcId = 315\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 30440220769f70093939afbd1fa15873decfa803ca523ace8040280ba78cf833497722bc0220369875aba5e1ced5a4ca8444ec9399a38038b00e153a0ae34d9b3c9781447eea\n\n# tcId = 316\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 3045022026e5182b9822550ad52f46ad80781d6bef3d110a204db5e58a0746f796982200022100a9418e76029ced0cf78a571a9e59ad04086e91f70e6813981bb33c1dee891165\n\n# tcId = 317\n# special case hash\nmsg = 3331333132383732373", - "7\nresult = valid\nsig = 3046022100e7bd6aefcf7b27e1f3fadbe713f9adb3d23398e88200cd2e94989c9d12e921770221009583e0de3b76f8d4b1e634a81cbc34af54e2f8599f3684ce48d372760c8204c4\n\n# tcId = 318\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 30450221008638ed7eaa83609a01a6af9c52ec9bfddda90442b1e6031d61cfa22e48b2e1e2022020c284d596f71c6c8df732f5a5a2006302301e1a792e2b39663d93a9760762d2\n\n# tcId = 319\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 3044022061d924307a96180b06383608ba91674e15c3ea06ff2534412b93a587dde649c1022059b84aa2115b2547edac88088ca6313e9fbe1ca6a361c7e57938f9dde3f4349c\n\n# tcId = 320\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 30450220424fcfc3fd63d128c2eb125e88c7fe5d283b63470a786b82783edbb8a0b7a6d7022100b11548c2cd7fce9d44e795ca51af0b2f6a5180e9c9be0314007ed9e7f4bbe5e9\n\n# tcId = 321\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 3045022100a5f747ae6290fa9582c6ce8d5608621d495f061551bc4531bacba586a563b184022062faf8f92291e12812835b3f1d43c967bceb885b110bd06e5a68e2d74781ae2b\n\n# tcId = 322\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 3045022100b731dc0d92c2cc7a605d78233f7814699bdf1cab2df297b6844eec4015af8ea0022039b1a0cc88eb85bcdc356b3620c51f1298c60aec5306b107e900ffdba049dd6f\n\n# tcId = 323\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 3046022100ef73c4fa322da39fb6503bab6b66b64d241056afbcd6908f84b61ccbbe890433022100f1ef85413e5764aa58a3128ccfcf388324fe5340e5edf8d0135ae76786ce415b\n\n# tcId = 324\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 30450220694cd30e2ad0182579331474b271ee2d48723bc8415dc6513873586ce705b76b022100c5ac0c0ed5a4017d110cb45d63aa955dc7dc5ce23e7965c5397c3ff46a884636\n\n# tcId = 325\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 3046022100f38b2236be3024e10b894ffb1cc68d0bb8d4cf0fcd2cfc1779f8883765d3cd96022100da69cd0b74c25566d60a486edd559fc39d569fb2751445a4798df8a36891802c\n\n# tcId = 326\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 3046022100a881732c205a0b4b95669c00756fd91973450109a46f17d5a9d971b5e92b9aa40221008acefdca4e06c16b47ccad1c57c05912637e107096ba230c92b97187db79e19e\n\n# tcId = 327\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 3044022004452f554bae819b42effb84ef44a9f1cb7e2d75b4ba9ff9b9cfffaddde3fd1b022061a3fbc5e73c350f2e3d85a7452cd231a3f3375fc11f5fe153b185f53b09c1d0\n\n# tcId = 328\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 3045022005814f57f58efc7cb490119e584e635e6f0ad1c19fb5dc2edafda075bb55f98e0221009dd5c6e39009d67d965903ecffe08a851775cc1248cc19c0b77798282131b8f6\n\n# tcId = 329\n# special case hash\nmsg = 31343437383437303635\nresult = valid\nsig = 3045022100dc1c4a46085e198843b1f01980cd5e4a1ff6f8e8ff7014397f0afd5b247fb0a0022038a13dc723ed90b30251d742b14733a03292ff26530a1ebcaf3d10862a6eff82\n\n# tcId = 330\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 304502201067667bf525734ca7f2510e36348fd9c2c9bccf032dfd571de6d45abd49361a022100fa762568d3a19e5a1d8ea65e00202a5b16f9afae56733a01f86e35378c558da4\n\n# tcId = 331\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 3046022100e58d69dc56bc1031644847e3e046e2ea845a515d969d07ea1aa53aea5bd92fa1022100bfe50b80f7c512f5ab521fe7e1a131045fde78d4de826c91573baaba1e35ca97\n\n# tcId = 332\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 3046022100fe79c6b8c14d0f23d426e3d157f1b541f6bb91bf29957ef97c55949c9ba48a350221009da112c4a4cf4b1ff490c426f6c8ff122183964a0de56f7336ab382dc9d10285\n\n# tcId = 333\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 3045022045d4ed7e9edacb5a730944ab0037fba0a136ed9d0d26b2f4d4058554f148fa6f022100f136f15fd30cfe5e5548b3f4965c16a66a7c12904686abe12da777619212ae8c\n\n# tcId = 334\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 304402204fb7c1727e40bae272f6143a50001b54b536f90233157896dbf845e263f2486302206fea5c924dca17519f6e502ef67efa08d39eb5cc3381266f0216864d2bd00a62\n\n# tcId = 335\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 30450220779aac665dd988054b04f2e9d483ca79179b3372b58ca00fe43520f44fcb4c32022100b4eca1182cd51f0abd3ea2268dcda49a807ad4116a583102047498aa863653f5\n\n# tcId = 336\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 3046022100db7ac6f65fb1c38d80064fd11861631237a09924b4eeca4e1569fa4b7d80ad24022100a38d178d37e13e1afa07a9d03da025d594461938a62a6c6744f5c8f7d7b7bb81\n\n# tcId = 337\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 3046022100c90043b4aadf795d870ac223f33acdbd1948c31afff059054dc99528c6503fa6022100829f67b312bb134f6954a23c611a7f7b5b2a69efced9c48db589ac0b4d3da827\n\n# tcId = 338\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig = 3045022100fa16c0125b6615b90e81f7499804308a90179bf3fcff6a4b2695271c68b23ded02200d6cda5ce041dc5a5f319ad9c0de4927d0cf5e89e37b79216194413d42976d54\n\n# tcId = 339\n# special case hash\nmsg = 36323135363635313234\nresult = valid\nsig = 304502201a4b5bd0f806549f46a3e71bfe412d6d89206017640ded66f3d0b2d9b26bec45022100aac5f74e3130264e01428570ee82ee47e245d160ed812ae252dedffd82e1ec2c\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b6e08b1bcc89e7fb0b84d7497e310553495be4877eccc4b3d6d79f7c68a0573431760fa1bcea4972759174ac1103bc6011985ccee251918d0573fbcb78969116]\n[key.wx = 0b6e08b1bcc89e7fb0b84d7497e310553495be4877eccc4b3d6d79f7c68a05734]\n[key.wy = 31760fa1bcea4972759174ac1103bc6011985ccee251918d0573fbcb78969116]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b6e08b1bcc89e7fb0b84d7497e310553495be4877eccc4b3d6d79f7c68a0573431760fa1bcea4972759174ac1103bc6011985ccee251918d0573fbcb78969116]\n[sha = SHA-512]\n\n# tcId = 340\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 303502104319055358e8617b0c46353d039cdaab022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n# tcId = 341\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000fffffffffffffffffffffffc022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043590c6a10353d669bc94d8e2ff9e14bbeed4a7f45b887255ab7e37b676387bb615fc6f97ce39a3874c2b34cc571889abfa0a706c2cfb0e5a4750cc25690696f8]\n[key.wx = 3590c6a10353d669bc94d8e2ff9e14bbeed4a7f45b887255ab7e37b676387bb6]\n[key.wy = 15fc6f97ce39a3874c2b34cc571889abfa0a706c2cfb0e5a4750cc25690696f8]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043590c6a10353d669bc94d8e2ff9e14bbeed4a7f45b887255ab7e37b676387bb615fc6f97ce39a3874c2b34cc571889abfa0a706c2cfb0e5a4750cc25690696f8]\n[sha = SHA-512]\n\n# tcId = 342\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04369e96402f2cfd1a37b3acbdecfc562862dbca944a0f12d7aaacb8d325d7650aa723621922be2bdac9186290fdcdda028d94437966507d93f2fc1f5c887fdedb]\n[key.wx = 369e96402f2cfd1a37b3acbdecfc562862dbca944a0f12d7aaacb8d325d7650a]\n[key.wy = 0a723621922be2bdac9186290fdcdda028d94437966507d93f2fc1f5c887fdedb]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004369e96402f2cfd1a37b3acbdecfc562862dbca944a0f12d7aaacb8d325d7650aa723621922be2bdac9186290fdcdda028d94437966507d93f2fc1f5c887fdedb]\n[sha = SHA-512]\n\n# tcId = 343\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100909135bdb6799286170f5ead2de4f6511453fe50914f3df2de54a36383df8dd4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0427a0a80ea2e1aa798ea9bcc3aedbf01ab78e49c9ec2ad0e08a0429a0e1db4d0d32a8ee7bee9d0a40014e484f34a92bd6f33fe63624ea9579657441ac79666e7f]\n[key.wx = 27a0a80ea2e1aa798ea9bcc3aedbf01ab78e49c9ec2ad0e08a0429a0e1db4d0d]\n[key.wy = 32a8ee7bee9d0a40014e484f34a92bd6f33fe63624ea9579657441ac79666e7f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000427", - "a0a80ea2e1aa798ea9bcc3aedbf01ab78e49c9ec2ad0e08a0429a0e1db4d0d32a8ee7bee9d0a40014e484f34a92bd6f33fe63624ea9579657441ac79666e7f]\n[sha = SHA-512]\n\n# tcId = 344\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022027b4577ca009376f71303fd5dd227dcef5deb773ad5f5a84360644669ca249a5\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 049cff61712d4bc5b3638341e6e0a576a8098c9c6d3f198d389c4669f398dc0867f3b9e09f567f3dfd9c4d2c1163e82beadf16c76e8f9d7a64673800ea76fa1e59]\n[key.wx = 09cff61712d4bc5b3638341e6e0a576a8098c9c6d3f198d389c4669f398dc0867]\n[key.wy = 0f3b9e09f567f3dfd9c4d2c1163e82beadf16c76e8f9d7a64673800ea76fa1e59]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200049cff61712d4bc5b3638341e6e0a576a8098c9c6d3f198d389c4669f398dc0867f3b9e09f567f3dfd9c4d2c1163e82beadf16c76e8f9d7a64673800ea76fa1e59]\n[sha = SHA-512]\n\n# tcId = 345\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020101\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d9117cae81295e82682fa387991e668e1570e0e90100bf4e63964822460561bc19f96b1787ed15769929978ba3dd7f68c97adf5c16f671e756cd8f08c49456ca]\n[key.wx = 0d9117cae81295e82682fa387991e668e1570e0e90100bf4e63964822460561bc]\n[key.wy = 19f96b1787ed15769929978ba3dd7f68c97adf5c16f671e756cd8f08c49456ca]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d9117cae81295e82682fa387991e668e1570e0e90100bf4e63964822460561bc19f96b1787ed15769929978ba3dd7f68c97adf5c16f671e756cd8f08c49456ca]\n[sha = SHA-512]\n\n# tcId = 346\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020103\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 048cfcbad3524c22b992529f943e3ce0b2d126085501d6e3edd4f1dbf74bdca21eafb259b1ba179cac09e8e43a88c8a09e7339910a7c941932e44b8be56f1fccde]\n[key.wx = 08cfcbad3524c22b992529f943e3ce0b2d126085501d6e3edd4f1dbf74bdca21e]\n[key.wy = 0afb259b1ba179cac09e8e43a88c8a09e7339910a7c941932e44b8be56f1fccde]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048cfcbad3524c22b992529f943e3ce0b2d126085501d6e3edd4f1dbf74bdca21eafb259b1ba179cac09e8e43a88c8a09e7339910a7c941932e44b8be56f1fccde]\n[sha = SHA-512]\n\n# tcId = 347\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020105\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fbb51127e1f1b6a38e9fe9a2544614edb8e43ad7cd8c56f14b3235dda3bc11179abd9753a9e647e9340c395fb2b91384d6d33fcb6456214350b6f3fa00f4364c]\n[key.wx = 0fbb51127e1f1b6a38e9fe9a2544614edb8e43ad7cd8c56f14b3235dda3bc1117]\n[key.wy = 09abd9753a9e647e9340c395fb2b91384d6d33fcb6456214350b6f3fa00f4364c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fbb51127e1f1b6a38e9fe9a2544614edb8e43ad7cd8c56f14b3235dda3bc11179abd9753a9e647e9340c395fb2b91384d6d33fcb6456214350b6f3fa00f4364c]\n[sha = SHA-512]\n\n# tcId = 348\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020106\n\n# tcId = 349\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632556020106\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04dc80905500d7d74ed47de5224d8734545f22b776ae086cabfffe6ce58d5ef994dc3067ce7d2cdfa9f4d5ace296b752814acc69c19a932d8b14077927901de3bf]\n[key.wx = 0dc80905500d7d74ed47de5224d8734545f22b776ae086cabfffe6ce58d5ef994]\n[key.wy = 0dc3067ce7d2cdfa9f4d5ace296b752814acc69c19a932d8b14077927901de3bf]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dc80905500d7d74ed47de5224d8734545f22b776ae086cabfffe6ce58d5ef994dc3067ce7d2cdfa9f4d5ace296b752814acc69c19a932d8b14077927901de3bf]\n[sha = SHA-512]\n\n# tcId = 350\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026020105022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc75fbd8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 041b824a11eed94fbcd9b722d06613bbcf7eca00b9136f2652642178f37b1a920ee900de495d9ef56fa6d19f3dd1e0edb23d23835ac8c2d3d13c0227e852e503eb]\n[key.wx = 1b824a11eed94fbcd9b722d06613bbcf7eca00b9136f2652642178f37b1a920e]\n[key.wy = 0e900de495d9ef56fa6d19f3dd1e0edb23d23835ac8c2d3d13c0227e852e503eb]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041b824a11eed94fbcd9b722d06613bbcf7eca00b9136f2652642178f37b1a920ee900de495d9ef56fa6d19f3dd1e0edb23d23835ac8c2d3d13c0227e852e503eb]\n[sha = SHA-512]\n\n# tcId = 351\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3027020201000221008f1e3c7862c58b16bb76eddbb76eddbb516af4f63f2d74d76e0d28c9bb75ea88\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042914b30c4c784696ffc3dddcec05f36cb1488bc342b9f529d5387acb9e48cb8d3dbd30d0d5d6d6a39108863c2d6a6e8571cd3261fb9eb98ce46125bd8f139136]\n[key.wx = 2914b30c4c784696ffc3dddcec05f36cb1488bc342b9f529d5387acb9e48cb8d]\n[key.wy = 3dbd30d0d5d6d6a39108863c2d6a6e8571cd3261fb9eb98ce46125bd8f139136]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042914b30c4c784696ffc3dddcec05f36cb1488bc342b9f529d5387acb9e48cb8d3dbd30d0d5d6d6a39108863c2d6a6e8571cd3261fb9eb98ce46125bd8f139136]\n[sha = SHA-512]\n\n# tcId = 352\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302c02072d9b4d347952d6022100ef3043e7329581dbb3974497710ab11505ee1c87ff907beebadd195a0ffe6d7a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042579f546fe2f2aeb5f822feb28f2f8371618d04815455a7e903c10024a17da415528e951147f76bee1314e65a49c6ec70686e62d38fbc23472f96e3d3b33fd1f]\n[key.wx = 2579f546fe2f2aeb5f822feb28f2f8371618d04815455a7e903c10024a17da41]\n[key.wy = 5528e951147f76bee1314e65a49c6ec70686e62d38fbc23472f96e3d3b33fd1f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042579f546fe2f2aeb5f822feb28f2f8371618d04815455a7e903c10024a17da415528e951147f76bee1314e65a49c6ec70686e62d38fbc23472f96e3d3b33fd1f]\n[sha = SHA-512]\n\n# tcId = 353\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d1033e67e37b32b445580bf4eff0221008b748b74000000008b748b748b748b7466e769ad4a16d3dcd87129b8e91d1b4d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b102196bf455ee5aafc6f895504d3c3b6b2d37c35f8669bd0f0b694795fbd992f777b6f829b9628ac35db0ef43f6a89f0a42812614e4c15924d8d47ebe45bae5]\n[key.wx = 0b102196bf455ee5aafc6f895504d3c3b6b2d37c35f8669bd0f0b694795fbd992]\n[key.wy = 0f777b6f829b9628ac35db0ef43f6a89f0a42812614e4c15924d8d47ebe45bae5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b102196bf455ee5aafc6f895504d3c3b6b2d37c35f8669bd0f0b694795fbd992f777b6f829b9628ac35db0ef43f6a89f0a42812614e4c15924d8d47ebe45bae5]\n[sha = SHA-512]\n\n# tcId = 354\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702020100022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044d056ab2ff57662fd6eebbe23930fef5cd08083e24146190cd01960b1fcd3749fe7ec5847651c857898be0f09efd6e0116a5dbe327f6f3080a65fc966bf64d91]\n[key.wx = 4d056ab2ff57662fd6eebbe23930fef5cd08083e24146190cd01960b1fcd3749]\n[key.wy = 0fe7ec5847651c857898be0f09efd6e0116a5dbe327f6f3080a65fc966bf64d91]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044d056ab2ff57662fd6eebbe23930fef5cd08083e24146190cd01960b1fcd3749fe7ec5847651c857898be0f09efd6e0116a5dbe327f6f3080a65fc966bf64d91]\n[sha = SHA-512]\n\n# tcId = 355\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d062522bbd3ecbe7c39e93e7c25022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04361c4a62cd867613138dfe24ccebc4b7df1b55fc7410f4995ee2b6b9ab2220584f116c6c84e53d262fd13a5f5de6b57e7a1981de4ecdffdf3323b4e91d80649c]\n[key.wx = 361c4a62cd867613138dfe24ccebc4b7df1b55fc7410f4995ee2b6b9ab222058]\n[key.wy = 4f116c6c84e53d262fd13a5f5de6b57e7a1981de4ecdffdf3323b4e91d80649c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000436", - "1c4a62cd867613138dfe24ccebc4b7df1b55fc7410f4995ee2b6b9ab2220584f116c6c84e53d262fd13a5f5de6b57e7a1981de4ecdffdf3323b4e91d80649c]\n[sha = SHA-512]\n\n# tcId = 356\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3045022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d50220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04db9d5c5113f00822a146c9cda2e75cb6634cd0dff54aff6e22875171f57a0dad1c424cdd83eb01c02f6f8d36f42c6dc7e39db74358da8ac9bc9dc5890d46f667]\n[key.wx = 0db9d5c5113f00822a146c9cda2e75cb6634cd0dff54aff6e22875171f57a0dad]\n[key.wy = 1c424cdd83eb01c02f6f8d36f42c6dc7e39db74358da8ac9bc9dc5890d46f667]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004db9d5c5113f00822a146c9cda2e75cb6634cd0dff54aff6e22875171f57a0dad1c424cdd83eb01c02f6f8d36f42c6dc7e39db74358da8ac9bc9dc5890d46f667]\n[sha = SHA-512]\n\n# tcId = 357\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020101\n\n# tcId = 358\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020100\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0499f19f07b33e03caf4703e04b930d57d6d9baa44460c596a2d3064e0b63ea41286a74c4612a812ee348d2b43f80de627c11c75d81511e22a199c32119b792c6a]\n[key.wx = 099f19f07b33e03caf4703e04b930d57d6d9baa44460c596a2d3064e0b63ea412]\n[key.wy = 086a74c4612a812ee348d2b43f80de627c11c75d81511e22a199c32119b792c6a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000499f19f07b33e03caf4703e04b930d57d6d9baa44460c596a2d3064e0b63ea41286a74c4612a812ee348d2b43f80de627c11c75d81511e22a199c32119b792c6a]\n[sha = SHA-512]\n\n# tcId = 359\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a80220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 045e31eccd4704ebf7a4247ea57f9351abadff63679f2276e2a3b05009ebc1b8df648465a925010db823b2a5f3a6072343a6cc9961a9c482399d0d82051c2e3232]\n[key.wx = 5e31eccd4704ebf7a4247ea57f9351abadff63679f2276e2a3b05009ebc1b8df]\n[key.wy = 648465a925010db823b2a5f3a6072343a6cc9961a9c482399d0d82051c2e3232]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045e31eccd4704ebf7a4247ea57f9351abadff63679f2276e2a3b05009ebc1b8df648465a925010db823b2a5f3a6072343a6cc9961a9c482399d0d82051c2e3232]\n[sha = SHA-512]\n\n# tcId = 360\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ce0a47f881fd7315a733c4317848fa33c72e38de0b8fda36b61aa9a164f5808a85b05d25115ea4097ddf63f878c8e83657e66de136a8f9e62ed81a58bf117ff9]\n[key.wx = 0ce0a47f881fd7315a733c4317848fa33c72e38de0b8fda36b61aa9a164f5808a]\n[key.wy = 085b05d25115ea4097ddf63f878c8e83657e66de136a8f9e62ed81a58bf117ff9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ce0a47f881fd7315a733c4317848fa33c72e38de0b8fda36b61aa9a164f5808a85b05d25115ea4097ddf63f878c8e83657e66de136a8f9e62ed81a58bf117ff9]\n[sha = SHA-512]\n\n# tcId = 361\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100bc07ff031506dc74a75086a43252fb43731975a16dca6b025e867412d94222d0\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04cd6f487b47f36c0dea8f4b04c4e6ac637c76b725929c611f48addcf3d2f65941b50ea8f3a491190ee0b20cfb6efd113608e7c7c127577500e7f5c4a4e490fd60]\n[key.wx = 0cd6f487b47f36c0dea8f4b04c4e6ac637c76b725929c611f48addcf3d2f65941]\n[key.wy = 0b50ea8f3a491190ee0b20cfb6efd113608e7c7c127577500e7f5c4a4e490fd60]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cd6f487b47f36c0dea8f4b04c4e6ac637c76b725929c611f48addcf3d2f65941b50ea8f3a491190ee0b20cfb6efd113608e7c7c127577500e7f5c4a4e490fd60]\n[sha = SHA-512]\n\n# tcId = 362\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c700220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04456e5f8067d68a1b0a2e8fe2b28acad5755687154a0f167734ebabbdc059070d720dbe96659a66ef0cf27a73e7b3f3f145a60e0ad29f1e21dcc2bb42f0d82c1e]\n[key.wx = 456e5f8067d68a1b0a2e8fe2b28acad5755687154a0f167734ebabbdc059070d]\n[key.wy = 720dbe96659a66ef0cf27a73e7b3f3f145a60e0ad29f1e21dcc2bb42f0d82c1e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004456e5f8067d68a1b0a2e8fe2b28acad5755687154a0f167734ebabbdc059070d720dbe96659a66ef0cf27a73e7b3f3f145a60e0ad29f1e21dcc2bb42f0d82c1e]\n[sha = SHA-512]\n\n# tcId = 363\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100aaaaaaaa00000000aaaaaaaaaaaaaaaa7def51c91a0fbf034d26872ca84218e1\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0442bf0c0ac1e3850baf5515748a878e34249f71035e20a9f54ed468ec273cb0fc5b3138500230055c71f12d53f5c7d0e3d8aa54a94c668cb311e20d195fc71abb]\n[key.wx = 42bf0c0ac1e3850baf5515748a878e34249f71035e20a9f54ed468ec273cb0fc]\n[key.wy = 5b3138500230055c71f12d53f5c7d0e3d8aa54a94c668cb311e20d195fc71abb]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000442bf0c0ac1e3850baf5515748a878e34249f71035e20a9f54ed468ec273cb0fc5b3138500230055c71f12d53f5c7d0e3d8aa54a94c668cb311e20d195fc71abb]\n[sha = SHA-512]\n\n# tcId = 364\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02206bfd55a8f8fdb68472e52873ef39ac3eace6d53df576f0ad2da4607bb52c0d46\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ffdd48da63d3af67223f16c51eb7e95600eb0b0e8b964f4fcd8c534face3c2c2b4e009ab2a76829480e69c9e43b2f1fe076cfafb3fa8d27dd4d6bab4d6c3db54]\n[key.wx = 0ffdd48da63d3af67223f16c51eb7e95600eb0b0e8b964f4fcd8c534face3c2c2]\n[key.wy = 0b4e009ab2a76829480e69c9e43b2f1fe076cfafb3fa8d27dd4d6bab4d6c3db54]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffdd48da63d3af67223f16c51eb7e95600eb0b0e8b964f4fcd8c534face3c2c2b4e009ab2a76829480e69c9e43b2f1fe076cfafb3fa8d27dd4d6bab4d6c3db54]\n[sha = SHA-512]\n\n# tcId = 365\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220654937791db0686f712ff9b453eeadb0026c9b058bba49199ca3e8fac03c094f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04793cbfce6f335dcfede7c6898ea1c537d7661ed6a8c9d308d64a2560d21c6e2c483d23a5ff05da00eaf9d52cf5362be9b53b95316c6a32e9ebe68d9ac35c2fd6]\n[key.wx = 793cbfce6f335dcfede7c6898ea1c537d7661ed6a8c9d308d64a2560d21c6e2c]\n[key.wy = 483d23a5ff05da00eaf9d52cf5362be9b53b95316c6a32e9ebe68d9ac35c2fd6]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004793cbfce6f335dcfede7c6898ea1c537d7661ed6a8c9d308d64a2560d21c6e2c483d23a5ff05da00eaf9d52cf5362be9b53b95316c6a32e9ebe68d9ac35c2fd6]\n[sha = SHA-512]\n\n# tcId = 366\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100c51bbee23a95437abe5c978f8fe596a31c858ac8d55be9786aa5d36a5ac74e97\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a9f7023f559d4bb6c9f4bc3643e2824aff5451d929479ec3ea5eb30bad2c36ac6a7c77e8dd21f4ad49b103e67da9d3cda62b653dd194fad2ba8d1dd37bb0ea9b]\n[key.wx = 0a9f7023f559d4bb6c9f4bc3643e2824aff5451d929479ec3ea5eb30bad2c36ac]\n[key.wy = 6a7c77e8dd21f4ad49b103e67da9d3cda62b653dd194fad2ba8d1dd37bb0ea9b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a9f7023f559d4bb6c9f4bc3643e2824aff5451d929479ec3ea5eb30bad2c36ac6a7c77e8dd21f4ad49b103e67da9d3cda62b653dd194fad2ba8d1dd37bb0ea", - "9b]\n[sha = SHA-512]\n\n# tcId = 367\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221008ba4c3da7154ba564ab344ae12005aa482b6c1639ea191f8568afb6e47163c45\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04df79ee082b2fc77e9ce4633471f569bbcb5ce53856e3067774f37e8a64a2c7ffaa488a6c34d499df76f427de3609bfcfd9feae67ffe0b0de594463c453b0ab16]\n[key.wx = 0df79ee082b2fc77e9ce4633471f569bbcb5ce53856e3067774f37e8a64a2c7ff]\n[key.wy = 0aa488a6c34d499df76f427de3609bfcfd9feae67ffe0b0de594463c453b0ab16]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004df79ee082b2fc77e9ce4633471f569bbcb5ce53856e3067774f37e8a64a2c7ffaa488a6c34d499df76f427de3609bfcfd9feae67ffe0b0de594463c453b0ab16]\n[sha = SHA-512]\n\n# tcId = 368\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02204c3dafcf4ba55bf1344ae12005aa4a74f46eaa85f5023131cc637ae2ea90ab26\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044cc3bf65e32e00284adfca00f40df755415c485091ac0489ae9a337103a5f8f0123ab86dd433b933b4f2063c002144df3cfeba78dad0ed89c0377541532908c2]\n[key.wx = 4cc3bf65e32e00284adfca00f40df755415c485091ac0489ae9a337103a5f8f0]\n[key.wy = 123ab86dd433b933b4f2063c002144df3cfeba78dad0ed89c0377541532908c2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044cc3bf65e32e00284adfca00f40df755415c485091ac0489ae9a337103a5f8f0123ab86dd433b933b4f2063c002144df3cfeba78dad0ed89c0377541532908c2]\n[sha = SHA-512]\n\n# tcId = 369\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100987b5f9e974ab7e26895c2400b5494e9e8dd550bea04626398c6f5c5d521564c\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04264a7ad439a4828a9dc97ecf837155355f99ae0b65975f851b541ad3a0e032f067268b7298c73e581866fbcbd161689b16b81cf262e007ce68e25a28c83ef041]\n[key.wx = 264a7ad439a4828a9dc97ecf837155355f99ae0b65975f851b541ad3a0e032f0]\n[key.wy = 67268b7298c73e581866fbcbd161689b16b81cf262e007ce68e25a28c83ef041]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004264a7ad439a4828a9dc97ecf837155355f99ae0b65975f851b541ad3a0e032f067268b7298c73e581866fbcbd161689b16b81cf262e007ce68e25a28c83ef041]\n[sha = SHA-512]\n\n# tcId = 370\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100fcf97e2fbf0e80d412005aa4a75086a3f004f59d512cb47271798733ab418606\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 041d7ff4d3a41206c8143635f12876e0ea0875ea5e4a5a249250d0eda33daa211f56e89c0beaf910ac934ca12380455600d0fd85b56a7035cb171b3f1c72a15569]\n[key.wx = 1d7ff4d3a41206c8143635f12876e0ea0875ea5e4a5a249250d0eda33daa211f]\n[key.wy = 56e89c0beaf910ac934ca12380455600d0fd85b56a7035cb171b3f1c72a15569]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041d7ff4d3a41206c8143635f12876e0ea0875ea5e4a5a249250d0eda33daa211f56e89c0beaf910ac934ca12380455600d0fd85b56a7035cb171b3f1c72a15569]\n[sha = SHA-512]\n\n# tcId = 371\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022079d482b60864d6c5cb4fd5db9e7e28ccd9a5948c316c8740fb429c0f37169a02\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b09685f338dceb421778a1458d52bed734c236242da2baa280d6f6b7b86e4f117fe6a34146b422d7aebd1a51b20948d7872a514c4cfd7686dc436b70733d6473]\n[key.wx = 0b09685f338dceb421778a1458d52bed734c236242da2baa280d6f6b7b86e4f11]\n[key.wy = 7fe6a34146b422d7aebd1a51b20948d7872a514c4cfd7686dc436b70733d6473]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b09685f338dceb421778a1458d52bed734c236242da2baa280d6f6b7b86e4f117fe6a34146b422d7aebd1a51b20948d7872a514c4cfd7686dc436b70733d6473]\n[sha = SHA-512]\n\n# tcId = 372\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221008ecd11081a4d0759c14f7bf46813d52cc6738115321be0a4da78a3356bb71510\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04dd811f2c0f5e9d4fbb2ef31818c1cd807247bc14fcd1170bef00e2c71dc037b443a15cdf8f3fbdc87e06250c0720d261d2b8d087fa7bf9548f6293f0ce5ae899]\n[key.wx = 0dd811f2c0f5e9d4fbb2ef31818c1cd807247bc14fcd1170bef00e2c71dc037b4]\n[key.wy = 43a15cdf8f3fbdc87e06250c0720d261d2b8d087fa7bf9548f6293f0ce5ae899]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd811f2c0f5e9d4fbb2ef31818c1cd807247bc14fcd1170bef00e2c71dc037b443a15cdf8f3fbdc87e06250c0720d261d2b8d087fa7bf9548f6293f0ce5ae899]\n[sha = SHA-512]\n\n# tcId = 373\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100e8dbffed13c9a2093085c079714f11f24eb583d73ba2b416b3169183e7d9b4c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0469d60ae1f39e1da95809d408894707ad2134f4943a1db089bebf815a391f18db32b401d98bf894d3b6d59e6eb45573285642e358ad687b7d7bf9600b1987809e]\n[key.wx = 69d60ae1f39e1da95809d408894707ad2134f4943a1db089bebf815a391f18db]\n[key.wy = 32b401d98bf894d3b6d59e6eb45573285642e358ad687b7d7bf9600b1987809e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000469d60ae1f39e1da95809d408894707ad2134f4943a1db089bebf815a391f18db32b401d98bf894d3b6d59e6eb45573285642e358ad687b7d7bf9600b1987809e]\n[sha = SHA-512]\n\n# tcId = 374\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ca01552a838124bec68d6bc6086329e06673900eac5c262e5ce79a8521cd1eae\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a658553a0620c95e987b5c3163bcfea68c52065f53c9d553f2a924d8b3ed511f79f0dfec4536b65aa5fb31297e96f6b464aa669b9268b3156c43d4612978a577]\n[key.wx = 0a658553a0620c95e987b5c3163bcfea68c52065f53c9d553f2a924d8b3ed511f]\n[key.wy = 79f0dfec4536b65aa5fb31297e96f6b464aa669b9268b3156c43d4612978a577]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a658553a0620c95e987b5c3163bcfea68c52065f53c9d553f2a924d8b3ed511f79f0dfec4536b65aa5fb31297e96f6b464aa669b9268b3156c43d4612978a577]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221009402aa560702497c8d1ad78c10c653c11000256fb1a0add7c6156a474737180b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bc4d3354a6a973dd8088919cc181194e879ed7920db30d0d1278edf74413b7b92450d162b26dcb25fbbd53ea4044189981d737055925bd2e86bfb0374b09f3ca]\n[key.wx = 0bc4d3354a6a973dd8088919cc181194e879ed7920db30d0d1278edf74413b7b9]\n[key.wy = 2450d162b26dcb25fbbd53ea4044189981d737055925bd2e86bfb0374b09f3ca]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bc4d3354a6a973dd8088919cc181194e879ed7920db30d0d1278edf74413b7b92450d162b26dcb25fbbd53ea4044189981d737055925bd2e86bfb0374b09f3ca]\n[sha = SHA-512]\n\n# tcId = 376\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02205e03ff818a836e3a53a8435219297da1b98cbad0b6e535812f433a096ca11168\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 040eb628724fce764c687d874ade7b8e0aa4abf20ee6e3610fac9fe3e72f97ab5aed09f4843660eb1daf015d397a7c1073d7ae43bda0ba3e117008785abfffa00f]\n[key.wx = 0eb628724fce764c687d874ade7b8e0aa4abf20ee6e3610fac9fe3e72f97ab5a]\n[key.wy = 0ed09f4843660eb1daf015d397a7c1073d7ae43bda0ba3e117008785abfffa00f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040eb628724fce764c687d874ade7b8e0aa4abf20ee6e3610fac9fe3e72f97ab5aed09f4843660eb1daf015d397a7c1073d7ae43bda0ba3e117008785abfffa00f]\n[sha = SHA-512]\n\n# tcId = 377\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100e28ddf709d4aa1bddf2e", - "4bc7c7f2cb516cb642bb3e39c3feaf2fcf16ab9539f4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e7ac5cc7f296912f703f59fe88e49b521da245e12e6eee161ee6b3b1127611a77b3bedd2a773cf58b0629b936dd85dad2d0c39676306ed63e1a9bcd0e08bccc2]\n[key.wx = 0e7ac5cc7f296912f703f59fe88e49b521da245e12e6eee161ee6b3b1127611a7]\n[key.wy = 7b3bedd2a773cf58b0629b936dd85dad2d0c39676306ed63e1a9bcd0e08bccc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e7ac5cc7f296912f703f59fe88e49b521da245e12e6eee161ee6b3b1127611a77b3bedd2a773cf58b0629b936dd85dad2d0c39676306ed63e1a9bcd0e08bccc2]\n[sha = SHA-512]\n\n# tcId = 378\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffffaaaaaaaaffffffffffffffffe9a2538f37b28a2c513dee40fecbb71a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042407b60abf3ee5edaf92ed505a11d0ddce0ea33eca58a031bb2f162c512f4062fb81bff36bf967e834e3d5d468730dcd70440022ab60061a62fac53350fe259f]\n[key.wx = 2407b60abf3ee5edaf92ed505a11d0ddce0ea33eca58a031bb2f162c512f4062]\n[key.wy = 0fb81bff36bf967e834e3d5d468730dcd70440022ab60061a62fac53350fe259f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042407b60abf3ee5edaf92ed505a11d0ddce0ea33eca58a031bb2f162c512f4062fb81bff36bf967e834e3d5d468730dcd70440022ab60061a62fac53350fe259f]\n[sha = SHA-512]\n\n# tcId = 379\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100b62f26b5f2a2b26f6de86d42ad8a13da3ab3cccd0459b201de009e526adf21f2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0447b2ad96dfc2f23fe5926809f38042b2c801962bd7394cefbf4aacb2554b7b0bdf2b937a16a7d96a2a0682cd164428890208597f2cdcc734fda73600b5cf6c59]\n[key.wx = 47b2ad96dfc2f23fe5926809f38042b2c801962bd7394cefbf4aacb2554b7b0b]\n[key.wy = 0df2b937a16a7d96a2a0682cd164428890208597f2cdcc734fda73600b5cf6c59]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000447b2ad96dfc2f23fe5926809f38042b2c801962bd7394cefbf4aacb2554b7b0bdf2b937a16a7d96a2a0682cd164428890208597f2cdcc734fda73600b5cf6c59]\n[sha = SHA-512]\n\n# tcId = 380\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bb1d9ac949dd748cd02bbbe749bd351cd57b38bb61403d700686aa7b4c90851e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0469a65b75f31ae7b4930292f90902461befcee5d1606939c28e01b652a7fbc498cf68619e5860128f56cecf53eba2ffe82889a9bb04a5fa4c8b722bc91d55978a]\n[key.wx = 69a65b75f31ae7b4930292f90902461befcee5d1606939c28e01b652a7fbc498]\n[key.wy = 0cf68619e5860128f56cecf53eba2ffe82889a9bb04a5fa4c8b722bc91d55978a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000469a65b75f31ae7b4930292f90902461befcee5d1606939c28e01b652a7fbc498cf68619e5860128f56cecf53eba2ffe82889a9bb04a5fa4c8b722bc91d55978a]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022066755a00638cdaec1c732513ca0234ece52545dac11f816e818f725b4f60aaf2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b2037176c84db04a6c773e32f9ed1d6b25ef4c303c6725c6932ec2cc2788bcbb9361505e6b771691adb41598f292d6521722404bf183241b195738b77abd6cfe]\n[key.wx = 0b2037176c84db04a6c773e32f9ed1d6b25ef4c303c6725c6932ec2cc2788bcbb]\n[key.wy = 09361505e6b771691adb41598f292d6521722404bf183241b195738b77abd6cfe]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b2037176c84db04a6c773e32f9ed1d6b25ef4c303c6725c6932ec2cc2788bcbb9361505e6b771691adb41598f292d6521722404bf183241b195738b77abd6cfe]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022055a00c9fcdaebb6032513ca0234ecfffe98ebe492fdf02e48ca48e982beb3669\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 041eef95aef71f793afd50bb2604064d63e88bef7404a4d0e206446245ae2e7834c96e86dd040f9794b63712d90e719576b8b92c406ab0f288ad9b327bd124454f]\n[key.wx = 1eef95aef71f793afd50bb2604064d63e88bef7404a4d0e206446245ae2e7834]\n[key.wy = 0c96e86dd040f9794b63712d90e719576b8b92c406ab0f288ad9b327bd124454f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041eef95aef71f793afd50bb2604064d63e88bef7404a4d0e206446245ae2e7834c96e86dd040f9794b63712d90e719576b8b92c406ab0f288ad9b327bd124454f]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ab40193f9b5d76c064a27940469d9fffd31d7c925fbe05c919491d3057d66cd2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a9734899c954e5b7adbca8f783428b5fbcbdfd3d2813f8d2f95b31a78ab107567667abf8c02ce4951bc59b2564130c27d7b64cdbc5cad95ca42d5bbb7cd4e793]\n[key.wx = 0a9734899c954e5b7adbca8f783428b5fbcbdfd3d2813f8d2f95b31a78ab10756]\n[key.wy = 7667abf8c02ce4951bc59b2564130c27d7b64cdbc5cad95ca42d5bbb7cd4e793]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a9734899c954e5b7adbca8f783428b5fbcbdfd3d2813f8d2f95b31a78ab107567667abf8c02ce4951bc59b2564130c27d7b64cdbc5cad95ca42d5bbb7cd4e793]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ca0234ebb5fdcb13ca0234ecffffffffcb0dadbbc7f549f8a26b4408d0dc8600\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 041ae51662331a1dbfab0751d30dfab2273a04a239e055a537b16ab595f9612396434f21c2bfe6555c9fc4a8e82dab1fa5631881b016e0831d9e1bbf5799fcf32e]\n[key.wx = 1ae51662331a1dbfab0751d30dfab2273a04a239e055a537b16ab595f9612396]\n[key.wy = 434f21c2bfe6555c9fc4a8e82dab1fa5631881b016e0831d9e1bbf5799fcf32e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041ae51662331a1dbfab0751d30dfab2273a04a239e055a537b16ab595f9612396434f21c2bfe6555c9fc4a8e82dab1fa5631881b016e0831d9e1bbf5799fcf32e]\n[sha = SHA-512]\n\n# tcId = 385\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff3ea3677e082b9310572620ae19933a9e65b285598711c77298815ad3\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0453c90cdd8b0dadd21c44ad557b327f4dbf57144aaf06597deb3f94125206a6c14603475bd79b30e36340cd09b0b59e6cd46ce90150e9ffe5c8a0172b2c9898e3]\n[key.wx = 53c90cdd8b0dadd21c44ad557b327f4dbf57144aaf06597deb3f94125206a6c1]\n[key.wy = 4603475bd79b30e36340cd09b0b59e6cd46ce90150e9ffe5c8a0172b2c9898e3]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000453c90cdd8b0dadd21c44ad557b327f4dbf57144aaf06597deb3f94125206a6c14603475bd79b30e36340cd09b0b59e6cd46ce90150e9ffe5c8a0172b2c9898e3]\n[sha = SHA-512]\n\n# tcId = 386\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220266666663bbbbbbbe6666666666666665b37902e023fab7c8f055d86e5cc41f4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0433797539515c51f429967b8e36930d9fdda1edb13aecec9771f7cde5f6f2e74eba51d0b6456bb902dba1f3ea436f96ad2355da454dc9b32c503c4bc6cfd6d410]\n[key.wx = 33797539515c51f429967b8e36930d9fdda1edb13aecec9771f7cde5f6f2e74e]\n[key.wy = 0ba51d0b6456bb902dba1f3ea436f96ad2355da454dc9b32c503c4bc6cfd6d410]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000433797539515c51f429967b8e36930d9fdda1edb13aecec9771f7cde5f6f2e74eba51d0b6456bb902dba1f3ea436f96ad2355da454dc9b32c503c4bc6cfd6d410]\n[sha = SHA-512]\n\n# tcId = 387\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff36db6db7a492492492492492146c573f4c6dfc8d08a443e258970b09\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 040a8f5f1d5bbd2783fa7f37c86879057fb2fcf25383aafb86d03d6b", - "afb41a17b3eaf6da715fe950349fd5736117b08e15e32cf1d2fdc003e510009f1b4ba1e648]\n[key.wx = 0a8f5f1d5bbd2783fa7f37c86879057fb2fcf25383aafb86d03d6bafb41a17b3]\n[key.wy = 0eaf6da715fe950349fd5736117b08e15e32cf1d2fdc003e510009f1b4ba1e648]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040a8f5f1d5bbd2783fa7f37c86879057fb2fcf25383aafb86d03d6bafb41a17b3eaf6da715fe950349fd5736117b08e15e32cf1d2fdc003e510009f1b4ba1e648]\n[sha = SHA-512]\n\n# tcId = 388\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff2aaaaaab7fffffffffffffffc815d0e60b3e596ecb1ad3a27cfd49c4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 041dbc94e96c056b9d2cb6773bb24b69ed473851badf927a29955aff290ef3675a65e587561122aa8226facb95df08308cadf01c8351a1569176d917821113aa7c]\n[key.wx = 1dbc94e96c056b9d2cb6773bb24b69ed473851badf927a29955aff290ef3675a]\n[key.wy = 65e587561122aa8226facb95df08308cadf01c8351a1569176d917821113aa7c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041dbc94e96c056b9d2cb6773bb24b69ed473851badf927a29955aff290ef3675a65e587561122aa8226facb95df08308cadf01c8351a1569176d917821113aa7c]\n[sha = SHA-512]\n\n# tcId = 389\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffff55555555ffffffffffffffffd344a71e6f651458a27bdc81fd976e37\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04084ab885dbff7f12e6cdadb59d456e500797779425c7518c259c83718289e6e991c345d3a093e86670605bbc2ff4c69d0ed694fd433ec6b6ba1bf7d56c3e6b51]\n[key.wx = 084ab885dbff7f12e6cdadb59d456e500797779425c7518c259c83718289e6e9]\n[key.wy = 091c345d3a093e86670605bbc2ff4c69d0ed694fd433ec6b6ba1bf7d56c3e6b51]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004084ab885dbff7f12e6cdadb59d456e500797779425c7518c259c83718289e6e991c345d3a093e86670605bbc2ff4c69d0ed694fd433ec6b6ba1bf7d56c3e6b51]\n[sha = SHA-512]\n\n# tcId = 390\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02203fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192aa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04003adfa4c620a207096cd18ee8fd2a90e20106cf824a0c63d6dec727a9fe7f509430d26bdd5f71e819d12b70069901461ae083cc809122d4fb86b5c475244e5a]\n[key.wx = 3adfa4c620a207096cd18ee8fd2a90e20106cf824a0c63d6dec727a9fe7f50]\n[key.wy = 09430d26bdd5f71e819d12b70069901461ae083cc809122d4fb86b5c475244e5a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004003adfa4c620a207096cd18ee8fd2a90e20106cf824a0c63d6dec727a9fe7f509430d26bdd5f71e819d12b70069901461ae083cc809122d4fb86b5c475244e5a]\n[sha = SHA-512]\n\n# tcId = 391\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02205d8ecd64a4eeba466815ddf3a4de9a8e6abd9c5db0a01eb80343553da648428f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c58848d5ca99b350bd7d10ab5ee6fcfe46623fdc03e9f828158f4d4cc08ad1ff83de4]\n[key.wx = 7c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c5884]\n[key.wy = 08d5ca99b350bd7d10ab5ee6fcfe46623fdc03e9f828158f4d4cc08ad1ff83de4]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c58848d5ca99b350bd7d10ab5ee6fcfe46623fdc03e9f828158f4d4cc08ad1ff83de4]\n[sha = SHA-512]\n\n# tcId = 392\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100b4cfa1996ec1d24cdbc8fa17fcabc3a5d4b2b36cf4b50a7b775ab78785710746\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c588472a35663caf4282ff54a1190301b99dc023fc1617d7ea70b2b33f752e007c21b]\n[key.wx = 7c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c5884]\n[key.wy = 72a35663caf4282ff54a1190301b99dc023fc1617d7ea70b2b33f752e007c21b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c588472a35663caf4282ff54a1190301b99dc023fc1617d7ea70b2b33f752e007c21b]\n[sha = SHA-512]\n\n# tcId = 393\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100b4cfa1996ec1d24cdbc8fa17fcabc3a5d4b2b36cf4b50a7b775ab78785710746\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b7a90e21e7547d73267940033cea05042c50f7c9fa5eaeb471cd6260c685f2e38bb7309d0c3bab249faaf3e44179d6dd5302375c580fd0570a788c6be3680c67]\n[key.wx = 0b7a90e21e7547d73267940033cea05042c50f7c9fa5eaeb471cd6260c685f2e3]\n[key.wy = 08bb7309d0c3bab249faaf3e44179d6dd5302375c580fd0570a788c6be3680c67]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b7a90e21e7547d73267940033cea05042c50f7c9fa5eaeb471cd6260c685f2e38bb7309d0c3bab249faaf3e44179d6dd5302375c580fd0570a788c6be3680c67]\n[sha = SHA-512]\n\n# tcId = 394\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 30250201010220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 041550a173373b2d594374f0642cd73de06a045c09c7a4f388c731e8cd8971adfc9a3a9843583a86c0e1c62cbde67165f40a926b1028ba38aa3895e188ebbc7066]\n[key.wx = 1550a173373b2d594374f0642cd73de06a045c09c7a4f388c731e8cd8971adfc]\n[key.wy = 09a3a9843583a86c0e1c62cbde67165f40a926b1028ba38aa3895e188ebbc7066]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041550a173373b2d594374f0642cd73de06a045c09c7a4f388c731e8cd8971adfc9a3a9843583a86c0e1c62cbde67165f40a926b1028ba38aa3895e188ebbc7066]\n[sha = SHA-512]\n\n# tcId = 395\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3045022101000000000000000000000000000000000000000000000000000000000000000002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04313447778195daa1791a6530cd0697ae34bf9d8d225984394f72eef3505971110996a8fbdd1a70ecd64cb00b595afe1669bfef80d91756a62d84c1d83e0f22ab]\n[key.wx = 313447778195daa1791a6530cd0697ae34bf9d8d225984394f72eef350597111]\n[key.wy = 0996a8fbdd1a70ecd64cb00b595afe1669bfef80d91756a62d84c1d83e0f22ab]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004313447778195daa1791a6530cd0697ae34bf9d8d225984394f72eef3505971110996a8fbdd1a70ecd64cb00b595afe1669bfef80d91756a62d84c1d83e0f22ab]\n[sha = SHA-512]\n\n# tcId = 396\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c7002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044ada634941476ca63c2c5803eec2f33b2d17920f798a5be6275f5a54cd2e7639b1a04bead5c7314c427492db21b9544d81caa8159587e41aa023aa967f31aaa1]\n[key.wx = 4ada634941476ca63c2c5803eec2f33b2d17920f798a5be6275f5a54cd2e7639]\n[key.wy = 0b1a04bead5c7314c427492db21b9544d81caa8159587e41aa023aa967f31aaa1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044ada634941476ca63c2c5803eec2f33b2d17920f798a5be6275f5a54cd2e7639b1a04bead5c7314c427492db21b9544d81caa8159587e41aa023aa967f31aaa1]\n[sha = SHA-512]\n\n# tcId = 397\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc476699780220555555550000000055555555555", - "555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aacce093270fa59ad412b5459a08e490743b97086c781ac3c8d54030b41a31193bece4956172d56befb7011d684e772905e48d2115444a75ac7a325a3f25f4b1]\n[key.wx = 0aacce093270fa59ad412b5459a08e490743b97086c781ac3c8d54030b41a3119]\n[key.wy = 3bece4956172d56befb7011d684e772905e48d2115444a75ac7a325a3f25f4b1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004aacce093270fa59ad412b5459a08e490743b97086c781ac3c8d54030b41a31193bece4956172d56befb7011d684e772905e48d2115444a75ac7a325a3f25f4b1]\n[sha = SHA-512]\n\n# tcId = 398\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f62b8d7feeff5a847ab79212269e55e62fa87ebe930821747b57a511a5ea99f0439ee057bb27898582a683c3fdb7f95404d41d42f276803751a316eb3aab7ebf]\n[key.wx = 0f62b8d7feeff5a847ab79212269e55e62fa87ebe930821747b57a511a5ea99f0]\n[key.wy = 439ee057bb27898582a683c3fdb7f95404d41d42f276803751a316eb3aab7ebf]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f62b8d7feeff5a847ab79212269e55e62fa87ebe930821747b57a511a5ea99f0439ee057bb27898582a683c3fdb7f95404d41d42f276803751a316eb3aab7ebf]\n[sha = SHA-512]\n\n# tcId = 399\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044baa07ff6e7bb9aa223d1c61932005fe98fe78b787fdab4bd3619bc8833072a2bcacd63802c56af82607953e72a0f5d3c23bd265544e020951824ea485555d33]\n[key.wx = 4baa07ff6e7bb9aa223d1c61932005fe98fe78b787fdab4bd3619bc8833072a2]\n[key.wy = 0bcacd63802c56af82607953e72a0f5d3c23bd265544e020951824ea485555d33]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044baa07ff6e7bb9aa223d1c61932005fe98fe78b787fdab4bd3619bc8833072a2bcacd63802c56af82607953e72a0f5d3c23bd265544e020951824ea485555d33]\n[sha = SHA-512]\n\n# tcId = 400\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997802203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 040c753ed1ba92f766800fdd0ae1c0d7f8f4cd8305fd803d8bca881397b5937e2db568509b1faf3cf251de6db9810e8b8caed235da10eeddbed62775c8e5c9460a]\n[key.wx = 0c753ed1ba92f766800fdd0ae1c0d7f8f4cd8305fd803d8bca881397b5937e2d]\n[key.wy = 0b568509b1faf3cf251de6db9810e8b8caed235da10eeddbed62775c8e5c9460a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040c753ed1ba92f766800fdd0ae1c0d7f8f4cd8305fd803d8bca881397b5937e2db568509b1faf3cf251de6db9810e8b8caed235da10eeddbed62775c8e5c9460a]\n[sha = SHA-512]\n\n# tcId = 401\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04030fdcae6541f22c5bab254e4f1a285c507d1cefea03bf90cf19daf3cb62df695ff2c94d588f2c2b2b0a12bebc011bcee4fa1b54506ec07d0a29d24a0891193c]\n[key.wx = 30fdcae6541f22c5bab254e4f1a285c507d1cefea03bf90cf19daf3cb62df69]\n[key.wy = 5ff2c94d588f2c2b2b0a12bebc011bcee4fa1b54506ec07d0a29d24a0891193c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004030fdcae6541f22c5bab254e4f1a285c507d1cefea03bf90cf19daf3cb62df695ff2c94d588f2c2b2b0a12bebc011bcee4fa1b54506ec07d0a29d24a0891193c]\n[sha = SHA-512]\n\n# tcId = 402\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0403fc621eaf90c23d8f9fa125d2c59b8728ebccb30ca3e3db879a06ca90f20cdcae58d3f0c6aef0e805be10ea54e23cf6f0397f9addddc2b09088855316b0ef44]\n[key.wx = 3fc621eaf90c23d8f9fa125d2c59b8728ebccb30ca3e3db879a06ca90f20cdc]\n[key.wy = 0ae58d3f0c6aef0e805be10ea54e23cf6f0397f9addddc2b09088855316b0ef44]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000403fc621eaf90c23d8f9fa125d2c59b8728ebccb30ca3e3db879a06ca90f20cdcae58d3f0c6aef0e805be10ea54e23cf6f0397f9addddc2b09088855316b0ef44]\n[sha = SHA-512]\n\n# tcId = 403\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2960220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0470f2ce24dc62923bb09cc92d74329bbd0d2e6b0e354c0be2383d24acdccb9e4cd42d1f973466f5e5462a939084a294ebfc7a45629c70ee5def46de9536ea7bf7]\n[key.wx = 70f2ce24dc62923bb09cc92d74329bbd0d2e6b0e354c0be2383d24acdccb9e4c]\n[key.wy = 0d42d1f973466f5e5462a939084a294ebfc7a45629c70ee5def46de9536ea7bf7]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000470f2ce24dc62923bb09cc92d74329bbd0d2e6b0e354c0be2383d24acdccb9e4cd42d1f973466f5e5462a939084a294ebfc7a45629c70ee5def46de9536ea7bf7]\n[sha = SHA-512]\n\n# tcId = 404\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04732b8ac0c30fe44307431235271cb5d6e5f677a19ce3f058b939a7bf19349d3c858cc735af8577468275847cf5ec19972e6c20738276e2708b23c595bfc4433d]\n[key.wx = 732b8ac0c30fe44307431235271cb5d6e5f677a19ce3f058b939a7bf19349d3c]\n[key.wy = 0858cc735af8577468275847cf5ec19972e6c20738276e2708b23c595bfc4433d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004732b8ac0c30fe44307431235271cb5d6e5f677a19ce3f058b939a7bf19349d3c858cc735af8577468275847cf5ec19972e6c20738276e2708b23c595bfc4433d]\n[sha = SHA-512]\n\n# tcId = 405\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0447aff9501825a166782bb58a5b459006eacdbce5e5323addad34ec1b6444cdce9199c31502ad4277c73ddd0c807b72634c45762404837d9814a5d4b5a7c3f398]\n[key.wx = 47aff9501825a166782bb58a5b459006eacdbce5e5323addad34ec1b6444cdce]\n[key.wy = 09199c31502ad4277c73ddd0c807b72634c45762404837d9814a5d4b5a7c3f398]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000447aff9501825a166782bb58a5b459006eacdbce5e5323addad34ec1b6444cdce9199c31502ad4277c73ddd0c807b72634c45762404837d9814a5d4b5a7c3f398]\n[sha = SHA-512]\n\n# tcId = 406\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29602203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aed8eeff77644bf83b9222f8f57173fa8217ec7e0763ee7d7171fb6092fba5c06486a86d94f48834ba5adbaf349687f9cee400389642b828e68207b147ca2c46]\n[key.wx = 0aed8eeff77644bf83b9222f8f57173fa8217ec7e0763ee7d7171fb6092fba5c0]\n[key.wy = 6486a86d94f48834ba5adbaf349687f9cee400389642b828e68207b147ca2c46]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004aed8eeff77644bf83b9222f8f57173fa8217ec7e0763ee7d7171fb6092fba5c06486a86d94f48834ba5adbaf349687f9cee400389642b828e68207b147ca2c46]\n[sha = SHA-512]\n\n# tcId = 407\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 25", - "6]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f7c54a585a904300d05b53ef3b854e71999a344b89adc0caaa28e254db9bc7c7c161a79f38ff446051303577e40638fb020329940a63c241bb32c2205eb57b7d]\n[key.wx = 0f7c54a585a904300d05b53ef3b854e71999a344b89adc0caaa28e254db9bc7c7]\n[key.wy = 0c161a79f38ff446051303577e40638fb020329940a63c241bb32c2205eb57b7d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f7c54a585a904300d05b53ef3b854e71999a344b89adc0caaa28e254db9bc7c7c161a79f38ff446051303577e40638fb020329940a63c241bb32c2205eb57b7d]\n[sha = SHA-512]\n\n# tcId = 408\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[sha = SHA-512]\n\n# tcId = 409\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0232102810220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 410\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bc07ff031506dc74a75086a43252fb43731975a16dca6b025e867412d94222d00220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 0b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[sha = SHA-512]\n\n# tcId = 411\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0232102810220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 412\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bc07ff031506dc74a75086a43252fb43731975a16dca6b025e867412d94222d00220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[key.wx = 4aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad5]\n[key.wy = 087d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[sha = SHA-512]\n\n# tcId = 413\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 30440220093f3825c0cf820cced816a3a67446c85606a6d529e43857643fccc11e1f705f0220769782888c63058630f97a5891c8700e82979e4f233586bfc5042fa73cb70a4e\n\n# tcId = 414\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 3046022100e8564e3e515a09f9f35258442b99e162d27e10975fcb7963d3c26319dc093f84022100c3af01ed0fd0148749ca323364846c862fc6f4beb682b7ead3b2d89b9da8bad4\n\n# tcId = 415\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 304502201412254f8c1dd2742a00ddee5192e7baa288741026871f3057ad9f983b5ab114022100bcdf878fa156f37040922698ad6fb6928601ddc26c40448ea660e67c25eda090\n\n# tcId = 416\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 30450221009e0676048381839bb0a4703a0ae38facfe1e2c61bd25950c896aa975cd6ec86902206ea0cedf96f11fff0e746941183492f4d17272c92449afd20e34041a6894ee82\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[key.wx = 4f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000]\n[key.wy = 0ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[sha = SHA-512]\n\n# tcId = 417\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30440220554482404173a5582884b0d168a32ef8033d7eb780936c390e8eedf720c7f56402200a15413f9ed0d454b92ab901119e7251a4d444ba1421ba639fa57e0d8cf6b313\n\n# tcId = 418\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304502200b1d838dd54a462745e2c8d5f32637f26fb16dde20a385e45f8a20a8a1f8370e022100ae855e0a10ef087075fda0ed84e2bc5786a681172ea9834e53351316df332bbd\n\n# tcId = 419\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100af89e4f2b03e5d1f0352e258ef71493040c17d70c36cfd044128302df2ed5e4a0220420f04148c3e6f06561bd448362d6c6fa3f9aeeb7e42843b4674e7ddfd0ba901\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 084fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[sha = SHA-512]\n\n# tcId = 420\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304402206c1581f1485ccc4e657606fa1a38cf227e3870dc9f41e26b84e28483635e321b02201b3e3c22af23e919b30330f8710f6ef3760c0e2237a9a9f5cf30a1d9f5bbd464\n\n# tcId = 421\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100dc83bf97ca28db0e04104a16fe3de694311a6cd9f230a300504ae71d8ec755b1022064a83af0ab3e6037003a1f4240dffd8a342afdee50604ed1afa416fd009e4668\n\n# tcId = 422\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30450220575b70b4375684291b95d81e3c820ed9bde9e5b7343036e4951f3c46894a6d9d022100f10d716efbfeba953701b603fc9ef6ff6e47edef38c9eeef2d55e6486bc4d6e6\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 7b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[sha = SHA-512]\n\n# tcId = 423\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 30450221008d4f113189dfd3d3239e331f76d3fca9cef86fcd5dc9b4ab2ca38aeba56c178b022078389c3cf11dcff6d6c7f5efd277d480060691144b568a6f090c8902557bfc61\n\n# tcId = 424\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100834d10ec2d2d50eeebfecd6328f03fafbb488fc043c362cbc67880ec0ebd04b302210094c026feaf6e68759146fe5b6fd52eaa3c3c5552d83719d2cb900615e2a634db\n\n# tcId = 425\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nre", - "sult = valid\nsig = 304502206894de495e7bb5566807d475d96a0d414a94f4f02c3ab7c2edc2916deafc1e1f022100a603642c20fabc07182867fcc6923d35be23ad3f97a5f93c6ec5b9cce8239569\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[key.wx = 2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffff]\n[key.wy = 0a01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[sha = SHA-512]\n\n# tcId = 426\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e500c086fedd59e090ce7bfb615751ed9abe4c09b839ee8f05320245b9796f3e022100807b1d0638c86ef6113fff0d63497800e1b848b5a303a54c748e45ca8f35d7d7\n\n# tcId = 427\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b922c1abe1a8309c0acf90e586c6de8c33e37057673390a97ff098f71680b32b022100f86d92b051b7923d82555c205e21b54eab869766c716209648c3e6cc2629057d\n\n# tcId = 428\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100823c37e46c74ec8497d89245fde3bf53ddb462c00d840e983dcb1b72bbf8bf27022100c4552f2425d14f0f0fa988778403d60a58962e7c548715af83b2edabbb24a49f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[key.wx = 0fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f5]\n[key.wy = 5a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[sha = SHA-512]\n\n# tcId = 429\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30450220577a08a95db6dcda9985109942d3786630f640190f920b95bd4d5d84e0f163ef022100d762286e92925973fd38b67ef944a99c0ec5b499b7175cbb4369e053c1fcbb10\n\n# tcId = 430\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402207ba458cfe952326922c7aa2854bdc673ce3daaf65d464dfb9f700701503056b102200df8821c92d20546fa741fb426bf56728a53182691964225c9b380b56b22ee6d\n\n# tcId = 431\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402205cd60c3b021b4be116f06f1d447f65e458329a8bbae1d9b5977d18cf5618486102204c635cd7aa9aebb5716d5ae09e57f8c481a741a029b40f71ec47344ef883e86e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[key.wx = 3fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e]\n[key.wy = 1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[sha = SHA-512]\n\n# tcId = 432\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402204b50e1e8cf830e04c17e7472caf60da8150ffa568e2c64498cc972a379e542e502202e3adaa5afab89cca91693609555f40543578852cde29c21cb037c0c0b78478e\n\n# tcId = 433\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402205aea930c7d8fffcd5c6df2c9430ef76f8b5ed58a8b9c95847288abf8f09a1ac202207ddfef7688a6053ce4eeeeefd6f1a9d71381b7548925f6682aa0a9d05cf5a3a3\n\n# tcId = 434\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304602210098b092c2d14b5b14a23e9368e0ce1be744dfae9f9a5cdaba51e7872099df96f202210090d3e4f87bd7bc94589f8150b6b01045cd8759a00af78b24d7de771887610df5\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[key.wx = 0bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 1352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[sha = SHA-512]\n\n# tcId = 435\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30460221009e95f2856a9fff9a172b07817c8c60fe185cd3ce9582678f8cc4b02bc444621a022100c54ca51d8117d904f0d3773911cb2792348fae21c2da7dad25f990d122376e4c\n\n# tcId = 436\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e77df8f9782696344c33de29ebdc9f8d3fcf463d950cdbe256fd4fc2fd44877e02210087028850c962cf2fb450ffe6b983981e499dc498fbd654fa454c9e07c8cb5ca8\n\n# tcId = 437\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bd2dd6f5026d2b5ad7ead74bdf52b8cbcabc08facee0a1c8584658a85ed0c5dc02203e8543e819bdae47d872e29a85ba38addf3eaeaad8786d79c3fb027f6f1ff4bf\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[key.wx = 0bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 0fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[sha = SHA-512]\n\n# tcId = 438\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bd5c0294acc28c15c5d1ebc7274c9ca21a081c8a67da430a34a7fff1a564fabb02207ec103a2385b4ff38b47d306434e9091de24dc9f1a25967ee06f8a0a53ac0181\n\n# tcId = 439\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402203c7dbfb43dd80379ee2c23ad5472873a22c8a0179ac8f381ad9e0f193231dc1f02207cf8e07530ade503b3d43a84b75a2a76fc40763daed4e9734e745c58c9ae72d3\n\n# tcId = 440\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100b38ca4dac6d949be5e5f969860269f0eedff2eb92f45bfc02470300cc96dd52602201c7b22992bb13749cc0c5bc25330a17446e40db734203f9035172725fc70f863\n\n", +static const char *kData103[] = { + "# Imported from Wycheproof's ecdsa_secp256r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[key.wx = 2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838]\n[key.wy = 00c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002205f85a63a5be977ad714cea16b10035f07cadf7513ae8cca86f35b7692aafd69f\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00220a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30814502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000004502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502802478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0028000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047000002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a498177304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492500304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a222549817702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30492224250002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d222202202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00004deadbeef022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02226498177022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c022252500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02223022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304daa00bb00cd00304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c", + "2ed1dc84841359d1b34eb2\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304baa02aabb304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d2228aa00bb00cd0002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b2226aa02aabb02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02229aa00bb00cd00022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 304b02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02227aa02aabb022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3049228002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02280022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3080314502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3049228003202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c02280032100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 314502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 324502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff4502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30493001023044202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34e\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3044202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 56\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb200\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb205000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047300002202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb23000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 304802202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2bf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 302202202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 306802202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30460281202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002812100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 70\n# length of integer con", + "tains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3047028200202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00282002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502212478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045021f2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022200a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a028501000000202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00285010000002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02890100000000000000202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304e02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0028901000000000000002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902847fffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002847fffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30490284ffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00284ffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a0285ffffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304a02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00285ffffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d0288ffffffffffffffff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 304d02202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00288ffffffffffffffff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502ff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002ff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3023022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302402022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 302302202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022300a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3047022200002478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00223000000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00000022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702222478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 304702202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022300a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb20500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250281022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30250500022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304500202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304501202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304503202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc8484135", + "9d1b34eb2\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304504202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3045ff202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0002100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0012100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0032100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0042100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0ff2100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30250200022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 115\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 302402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00200\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30492224020124021f78f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 117\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 304902202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c022250201000220a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202678f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 119\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022102a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f98140022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 121\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34e32\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021f2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3044021f78f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 124\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022000a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34e\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 304602202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00222ff00a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3026090180022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 128\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 302502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 302502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012478f1cf49f6d858ac900a7af177222661ac95e206d32ee63020beee955ca711022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221ff2478f1d149f6d856ac900a7af1772226e7dea086b8a3f1dc48ad29689c965c6f022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30450220db870e2fb60927a8536ff5850e88ddd95b3a64cba0446f9ec3990bd467067e40022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100db870e2eb60927a9536ff5850e88ddd918215f79475c0e23b752d6976369a391022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221fedb870e30b60927a7536ff5850e88ddd99e536a1df92cd119cfdf41116aa358ef022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30460221012478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3046022100db870e2fb60927a8536ff5850e88ddd95b3a64cba0446f9ec3990bd467067e40022100a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022101a07a59c3a41688548eb315e94effca0efd1ffe0a13467061783dde1cce167403\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00220a07a59c5a41688528eb315e94effca0f835208aec517335790ca4896d5502961\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00221ff5f85a63b5be977ac714cea16b10035f0bfc6fca393d12e237b7beca62e4cb14e\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c00221fe5f85a63c5be977ab714cea16b10035f102e001f5ecb98f9e87c221e331e98bfd\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nm", + "sg = 313233343030\nresult = invalid\nsig = 304502202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c0022101a07a59c4a41688538eb315e94effca0f4039035c6c2ed1dc84841359d1b34eb2\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 304402202478f1d049f6d857ac900a7af1772226a4c59b345fbb90613c66f42b98f981c002205f85a63b5be977ac714cea16b10035f0bfc6fca393d12e237b7beca62e4cb14e\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020100022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026020101022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30260201ff022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325510201ff\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551090380fe01\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551090142\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020100\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special c", + "ase values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020101\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325500201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550090380fe01\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550090142\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020100\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020101\nflags = EdgeCase\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325520201ff\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552090380fe01\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552090142\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020100\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020101\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0201ff\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff090380fe01\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff090142\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020100\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020101\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff000000010000000000000000000000010000000000000000000000000201ff\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179", + "e84f3b9cac2fc632552\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000001000000000000000000000000\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3028022100ffffffff00000001000000000000000000000001000000000000000000000000090380fe01\nflags = EdgeCase\n\n# tcId = 223\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000090142\nflags = EdgeCase\n\n# tcId = 224\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 230\n# Edge case for Shamir multiplication\nmsg = 3932323038\nresult = valid\nsig = 3044022064a1aab5000d0e804f3e2fc02bdee9be8ff312334e2ba16d11547c97711c898e02203c623e7f7598376825fa8bc09e727c75794cbb4ee8716ae15c31cd1cbe9ca3ee\n\n# tcId = 231\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 304402203a4f61f7f8c4546e3580f7848411786fee1229a07a6ecf5fb84870869188215d022018c5ce44354e2274eadb8fea319f8d6f60944532dbaae86bfd8105f253041bcb\n\n# tcId = 232\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 304502203fa9975fb2b08b7b6e33f3843099da3f43f1dcfe9b171a60cafd5489ca9c5328022100985a86825a0cc728f5d9dac2a513b49127a06100f0fc4b8b1f200903e0df9ed2\n\n# tcId = 233\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 304402204d66e7ee5edd02ab96db25954050079ef8de1d0f02f34d4d75112eaf3f73124002206292d1563140013c589be40e599862bdd6bda2103809928928a119b43851a2ce\n\n# tcId = 234\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 3046022100a9228305f7b486f568eb65d44e49ba007e3f14b8f23c689c952e4ced1e6cf91e022100b73c74d28bd1268002bed784a6b06c40a90ee5938ea6d08f272d027e0f96a72c\n\n# tcId = 235\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 304402203fa39842bfab6c38afa7963c60beb09484d4579fc75ef09efff44e91bc62ca8302205612add1924f0285ace5b158828e2b32ab2b6e7f10ee68dca1cc54591fee1fec\n\n# tcId = 236\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 3045022006c04b02edfeecd8620f035ea4f449bd924593e86e5288a6f22d1923b0e2e8a9022100f666718e6fefb515bb9339d29cc0e58cfba89d605ca0066bca87f6a3f08ebcfa\n\n# tcId = 237\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 304402201ddd953c32a5f84109cd4d9ec8c364dd318376ff5d228211a367483077d638800220563dba4845de762baf04910618d587e0dd0c97dd1c9785c24ffdf2f8a660abf2\n\n# tcId = 238\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 30460221009fe4ec4831ef4945f100d5d35a2e6312411ca5df6c900ca60690f2985d553482022100c674ad5e1bead2f767c9248e444452a4a8530dd47246cbbc968da865bdf212b6\n\n# tcId = 239\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 3046022100e8703d6b16a79fc2ab3653cece29d06f65dd6f2c230cb08ee30c5517407d75db0221008cfeb87b8e95ddacd638b37d315393c5005f3ab8bba0cc1cd1a050829b775bfb\n\n# tcId = 240\n# special case hash\nmsg = 36323139353630323031\nresult = valid\nsig = 3046022100def608caf1f277d71403009f209c1d7eef11aaa7920397fbf429b8146181aece022100f3b8f2aa5b3df9a8b37313ea66ad5b74673f3e8614ff471b1eb6773217511fb0\n\n# tcId = 241\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 304402204f5d08e8d936ce831d02d6b23fb8fce0e0750101af3ab9c3b28636b95a5e24ad02206f034480553bcecac221f8be8288163c55492e2e56a88f4d0341b61436a0a6c0\n\n# tcId = 242\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 3045022100bdd822bfe3733d9f4b88764fe091db2e8f8af366e4c44d876bf82e62bd48c7ee02207fbf7750c5dc849a2c55dbdd067806f869652a7b3a57baa4733781d3128f02de\n\n# tcId = 243\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 304402201c4fc02961b7f4245566b410bf08f447502ea4f75b15690344681efa2edf7b4b02207d63eef119dc88bc4a1b2c43ac21cd53892443661f8c3a97d558bf888c29f769\n\n# tcId = 244\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 304402206406f2d249ab1264e175476ca3300efd049fcad569dff40b922082b41cc7b7ce0220461872b803383f785077714a9566c4d652e87b2cad90dd4f4cc84bc55004c530\n\n# tcId = 245\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 30450220415c924b9ba1902b340058117d90623602d48b8280583fb231dc93823b83a153022100f18be8cdc2063a26ab030504d3397dc6e9c6b6c56f4e3a59832c0e4643c0263c\n\n# tcId = 246\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 3045022100d12e96c7d2f177b7cf6d8a1ede060a2b174dc993d43f5fe60f75604824b64fef02200c97d87035fcca0a5f47fe6461bb30cbaf05b37e4211ec3fcd51fc71a12239ca\n\n# tcId = 247\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 304502207df72a64c7e982c88f83b3a22802690098147e0e42ef4371ef069910858c0646022100adbaa7b10c6a3f995ed5f83d7bda4ba626b355f34a72bf92ff788300b70e72d0\n\n# tcId = 248\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 30440220047c4306f8d30e425ae70e0bee9e0b94faa4ef18a9c6d7f2c95de0fe6e2a323702207a4d0d0a596bd9ea3fe9850e9c8c77322594344623c0b46ac2a8c95948aefd98\n\n# tcId = 249\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 3044022057d603a367e23af39c95dd418c0176da8b211d50b1be82bf5ef621a2640204f702205dc3f285ad015c4d71157bd11e5b8df6a89e4b267393b08b5ad5013bdae544b1\n\n# tcId = 250\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 3044022011df6741021ec8cc567584aea16817c540859c4e5011551c00b097fcfc2337e50220668551919d43206ac0571fc5ad3ac0efb489bea599e7bf99fe4c7468d6c2c5e0\n\n# tcId = 251\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 304402207451ffede471bd370406533436fc42a89daa0af4903d087cbc062fe7e54dbf700220590895398f22b48ce72cbf7c3d3ee1dd7fb0ee645edb0b1b1de35f370e5bf5ee\n\n# tcId = 252\n# special case hash\nmsg = 32323332313935383233\nresult = valid\nsig = 3045022100fc4c4d81da6f687a6426263193c1a680b67734a1b180647b8c76407cc4f0a9c6022056f775d372c9bee685374085be676c9cf31cf1f978a5e6ccb04e4a0761159cc7\n\n# tcId = 253\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 3045022100feb978ca33c46ffba47eb63bb40de7833e43d5654575b54de1fea3d1de3c8ad50220108078ba997bfa064521baf342c97b0c64bd25240c8fd0fd7533ae2d03081b70\n\n# tcId = 254\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 3046022100cc61729698467ba53da199ff481fe7433f194fc96367907e8dc5e1d9f42b1e2102210083dd9ef156e7c1f9c09b3bf86a4f1c88e5dd20cd74d997858e600797dbe74ad2\n\n# tcId = 255\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 3045022100d47f616303ff0eb813eac32e760ba30ad445e0af7dc57e70756104823f6a895f0220047f2217b399c46a426b936a124980a6011f0896f51dbe07632828a72d7173f1\n\n# tcId = 256\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 3046022100cff73dfa2bac67ce1340b25c885abb3e7979ef7f840f15d5f19e86640cdd40a3022100c7d1210802796c4f251049ee08a2c29f5c71064033d17010c65bf2e94499381e\n\n# tcId = 257\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 3044022010acaf9c485ab1220355b95be269f124e12eb252f2224b0fc50785eb2ee3df45022032443b557efc6896347fa778e1fcf33cbb769c9a7da896b20d93fea7c2791ea4\n\n# tcId = 258\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig = 3046022100f919da0651abc2bff994a879d2778fa5195d57400e003e8dd6adb3fc7a0cc4cc0221009b945d06bd119665b278a59bd24fdd2350817d0be87997bee57", + "b70c479d64a2d\n\n# tcId = 259\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 3045022100cc38e7a018f6d70b2d9b49120cc9b4a169f2f72238821a86b81f553b6225d24e0220276efd8bf06ccce07c7aae35eaac3bd1c374dcf0cf0588d5e0e4171936688636\n\n# tcId = 260\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 3045022100ff85ad66621991c318b85cef73c576cb2a8d43c568c1aafc85b40ef2a9a6b41c0220732a79e6837ebf8434fea6e7fefa948f506ae455c1a3eb36a030185a23037d96\n\n# tcId = 261\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 3044022033f016e51eef9b1136380cb8b84c6b38b107e24c6731bd07cb1c7f4a29f33a83022036b177bb8be94c8be67ff3a41fcc4d22b5c9eb377da713eb014ae01c64ca6dd7\n\n# tcId = 262\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 3045022100929413ee91f27454d74e91370a10a86fc98ac7305c8ab4ca59752bda3a7bfc370220483b47a26a0d7d2e6bd37d351d9ee37c5ec2a4686d884d78b6beb7f6b08c50f9\n\n# tcId = 263\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 30450220578202c7d0abac93ca43dde3cb44414e5601c1eb557604cb9adb4bde0a12633b022100fb9a7412e307aee95ef4b53540571a21559414e5306794ab5182cfb229dab3e9\n\n# tcId = 264\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 3045022046d45ad0bb75b8639d0e91d8450fc31887c211328a5784fc83b4cb7f5b962c1b022100d6751d13ede2079b7aa1d822bdb32d7f3cf00273a1ff03df90c0ec7c62a47568\n\n# tcId = 265\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 3046022100abe84c941783d5ced284fea56341ecc68d6bdd3196d318fbd074641f8c885bd5022100bdea3c44d48e01aa40935c1c9723ff733199563440f26b4ecf0b444b0418d9f5\n\n# tcId = 266\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 3045022005277cdbf491e336fe81be24e393a161a4fb89112c9ffed1ee6649c406713408022100ab6934332e68e108bb0484d21c457dcf381a620c3a4712fdbfeb658a3fafd60c\n\n# tcId = 267\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 30450220293825737c8c14430ed10dbadd7da337275f9b61d1d26377f778ffaa00c139de022100cdddec267a8678c96829bf6c1d6f38322e119937cfd2fee01e9dc9525f43ed6b\n\n# tcId = 268\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 304402202041fdd6111c45dfd29e750e082dcdadc9a584a8a2be46580fb0ba3b3dc658620220421824fe987e4172a0f8bbcb7bcd9e1b073b7742ed9f9df98f2a1a37cd374ce3\n\n# tcId = 269\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 30450220267941db660e046ab14e795669e002b852f7788447c53ebef46a2056978b5574022100d00183bcaf75bc11e37653f952f6a6537151c3aa0a1b9e4e41b004a29185395b\n\n# tcId = 270\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 304402205dcd7f6814739d47f80a363b9414e6cbfb5f0846223888510abd5b3903d7ae09022043418f138bb3c857c0ad750ca8389ebcf3719cb389634ac54a91de9f18fd7238\n\n# tcId = 271\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 304502205e0e8cc0280409a0ce252da02b2424d2de3a52b406c3778932dbc60cb86c356702210093d25e929c5b00e950d89585ec6c01b6589ae0ec0af8a79c04df9e5b27b58bc5\n\n# tcId = 272\n# special case hash\nmsg = 33323639383937333231\nresult = valid\nsig = 304502204fcf9c9d9ffbf4e0b98268c087071bffe0673bb8dcb32aa667f8a639c364ea47022100820db0730bee8227fc831643fcb8e2ef9c0f7059ce42da45cf74828effa8d772\n\n# tcId = 273\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 3046022100c60cd2e08248d58d1639b123633643c63f89aff611f998937ccb08c9113bcdca022100ac4bb470ce0164616dada7a173364ed3f9d16fd32c686136f904c99266fda17e\n\n# tcId = 274\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 304502207cfdaf6f22c1c7668d7b6f56f8a7be3fdeeb17a7863539555bbfa899dd70c5f1022100cee151adc71e68483b95a7857a862ae0c5a6eee478d93d40ccc7d40a31dcbd90\n\n# tcId = 275\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 304402202270be7ee033a706b59746eab34816be7e15c8784061d5281060707a0abe0a7d022056a163341ee95e7e3c04294a57f5f7d24bf3c3c6f13ef2f161077c47bd27665d\n\n# tcId = 276\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 3044022016b5d2bfcaba21167a69f7433d0c476b21ded37d84dc74ca401a3ecddb2752a8022062852cf97d89adfb0ebbe6f398ee641bfea8a2271580aac8a3d8326d8c6e0ef9\n\n# tcId = 277\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 3046022100d907eefa664115848b90c3d5baa0236f08eafaf81c0d52bb9d0f8acb57490847022100fd91bc45a76e31cdc58c4bfb3df27f6470d20b19f0fba6a77b6c8846650ed8a6\n\n# tcId = 278\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 30450220048337b34f427e8774b3bf7c8ff4b1ae65d132ac8af94829bb2d32944579bb31022100bd6f8eab82213ccf80764644204bb6bf16c668729cdd31dd8596286c15686e8e\n\n# tcId = 279\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 3046022100b2bc46b7c44293557ab7ebeb0264924277193f87a25d94c924df1518ba7c7260022100abf1f6238ff696aaafaf4f0cbbe152c3d771c5bfc43f36d7e5f5235819d02c1a\n\n# tcId = 280\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 3045022040d4b38a61232e654ffd08b91e18609851f4189f7bf8a425ad59d9cbb1b54c990221009e775a7bd0d934c3ed886037f5d3b356f60eda41191690566e99677d7aaf64f3\n\n# tcId = 281\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 3046022100ac8f64d7df8d9fea005744e3ac4af70aa3a38e5a0f3d069d85806a4f29710339022100c014e96decfef3857cc174f2c46ad0882bef0c4c8a17ce09441961e4ae8d2df3\n\n# tcId = 282\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 3044022041b3766f41a673a01e2c0cab5ceedbcec8d82530a393f884d72aa4e6685dea0a0220073a55dca2da577cafb40e12dd20bf8529a13a6acdf9a1c7d4b2048d60876cb3\n\n# tcId = 283\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 304502201942755aa8128382cd8e35a4350c22cc45ba5704d99e8a240970df11956ad866022100f64cf1e0816cf7ac5044f73ba938e142ef3305cb09becb80a0a5b9ad7ba3eb07\n\n# tcId = 284\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 3045022051aba4ff1c7ddf17e0632ab71684d8de6dc700219ef346cb28ce9dafc3565b3b022100b6aaebe1af0ad01f07a68bf1cf57f9d6040b43c14b7eb8238542760e32ce3b0c\n\n# tcId = 285\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 304502210091efbfcc731650e9f004c38b71db146c17bf871c82c4e87716f7ff2f7f9e51d00220089ea631a7c5f05311c521d21ba798b5174881f0fd8095fb3a77515913efb6e0\n\n# tcId = 286\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 304502204a7e47bd281ea09b9e3a32934c7a969e1f788f978b41585989f4689e804663fb022100e65f6bd702403cbbed7f8ad0045f331d4a96fbf8c43f71f11615b7d1b9153b7f\n\n# tcId = 287\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 3046022100c795f5da86e10a604d4f94bf7cac381c73edad1461d66929e53aa57ca294e89f022100bae784ab6c7b58332ee05e7d54169edf55ce45f030e71ae8df63969fb327a10c\n\n# tcId = 288\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 3046022100ea68b24843b225f505e01c0e608b20b4d93e8faf6b9cf70cf8f9134a80e7b668022100a3abc044b4728f80fe414bdc66f032b262356720547bec7729fad94151c6adc7\n\n# tcId = 289\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 3046022100bfe7502140c57a24a77edc3d9b3c4bc11d21bdb0b196977b7f2b13ac973ad697022100947a01da9731849d72b67ef7bc40b012480fd389895aad1f6b1cdbeab3b93b8d\n\n# tcId = 290\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 304402203434ee1142740a0ab8623b97fc8dc2567eda45dadf6039b45c448819e840cf3002203c0fac0487841997202c29f3bf2df540b115b29dc619160d52203d4a1fd4b9f7\n\n# tcId = 291\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 304502205338500e23ba96a0adc6ef84932e25fbad7435d9f70eb7f476c6912de12e33c8022100a002f5583ea8c0d7fb17136d0ee0415acf629879ce6b01ac52e3ecd7772a3704\n\n# tcId = 292\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 304402204ff2d4e31f4180de6901d2d20341d12387c9c55f4cf003a742f049b84af6fe0502200312f38771414555fa5ed2817dcc629a8c7cf69d306300e87bc167278ec3ef37\n\n# tcId = 293\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 3044022051d665bad5f2d6306c6bbfe1f27555887670061d4df36ec9f4ce6cdfaf9ea7ac02202905e43f6207ee93df35a2e9fb9bc8098c448ae98a14e4ad1ebaea5d56b6e493\n\n# tcId = 294\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 3046022100b804e0235f135aba7b7531b6831f26cc9fb77d3f83854957431be20706b813690221009d317fd08e4e0467617db819cde1d7d4d74da489b2bce4db055ea01eccfafcf2\n\n# tcId = 295\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = ", + "30450221008ab50ef3660ccb6af34c78e795ded6b256ffca5c94f249f3d907fb65235ef680022049d5aaeae5a6d0c15b286e428b5e720cf37a822ede445baa143ffae69aba91b8\n\n# tcId = 296\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 30440220571b9c46a47c5cc53a574c196c3fb07f3510c0f4443b9f2fe781252c24d343de022068a9aebd50ff165c89b5b9cb6c1754191958f360b4d2851a481a3e1106ee7809\n\n# tcId = 297\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 304502204cb7817b04dc73be60d3711803bc10687a6e3f4ab79c4c1a4e9d63a73174d4eb022100ce398d2d6602d2af58a64042f830bf774aee18209d6fb5c743b6a6e437826b98\n\n# tcId = 298\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 30450220684399c6cd6ebb1c5d5efb0d78dce40ebd48d9d944eb6548c9ce68d7fdc82229022100cf25c8e427fae359bfe60fa02964f4c9b8d6db54612e05c78c341f0a8c52d0b5\n\n# tcId = 299\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 3045022020b7b36d5bc76fa182ca27152a99a956e6a0880000694296e31af98a7312d04b022100eeeabc5521f9856e920eb7d29ed7e4042f178ff706dff8eeb24b429e3b63402a\n\n# tcId = 300\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 304402206b65c95e8e121d2e6ee506cfd62cb88e0bfb3589da40876898ef66c43982aca9022009642c05ad619b4402fd297eb57e29cca5c2eb6823931ba82de32d7c652ba73e\n\n# tcId = 301\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 3044022067c74cbf5ea4b777bf521ace099f4f094d8f58900e15e67e1b4bd399056629ed02203d2884655c49b8b5f64e802a054e7bf09b0fc80ca18ebf927b82e58bb4a00400\n\n# tcId = 302\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 3045022079a5e40da5cf34c4c39adf7dfc5d454995a250314ebd212b5c8e3f4e6f875feb022100b268920e403ba17828ff271938a6558a5b2dd000229f8edb4a9d9f9b6ac1b472\n\n# tcId = 303\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 3045022100c8b13006c3a51a322fff9321761b01de134f526be582b22e19693c443fc9fe46022034e7f60179c6162ab980fcd58f173b0e6c30b524d35c67921677522dcef843a1\n\n# tcId = 304\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 304502203513db745489a487c88a6cedf8795b640f8f71578397bdabd6cc586c25bd66ad02210099a72cd3f0ca6c799149283ca0af37f86b88200d0c905bd3c9f1b859e55b1659\n\n# tcId = 305\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 304402203a6386afb08f7ff8140b5a270f764e8706ef2830fb177446f7b4eeb8a25aac6402204b70854b38c29245b2b980eba10ea936c68a38c1da5255ce2386db23afc7c06a\n\n# tcId = 306\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 3046022100b8fc54a8a6be3c55e99c06f99ccdcce7af5c18a3c5829726a870cc1068458f64022100cc7237c39c8e6a4a1c8c62f5f88636549c7410798b89684c502c3adfe5fb7ad2\n\n# tcId = 307\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 3045022047b460851e5607f2021626635c565a63f78f558795e1b330d09115970dbbb8ab022100a6a9f4f213e08d3c736d3e1c44a35140cb107619f265a5b13608ed729fd6d894\n\n# tcId = 308\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 30450221008cfda4f7a65864ebbea3144863da9b075c07b5b42cb4569643ddfd70dd753b190220595784b1ab217874b82b9585521f8090b9f6322884ab7a620464f51cf846c5b7\n\n# tcId = 309\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 304402204cd6a45bd7c8bf0edbdf073dbf1f746234cbbca31ec20b526b077c9f480096e702207cf97ae0d33f50b73a5d7adf8aa4eeeb6ff10f89a8794efe1d874e23299c1b3d\n\n# tcId = 310\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 304402202e233f4df8ffebeaec64842b23cce161c80d303b016eca562429b227ae2b58ec022046b6b56adec82f82b54daa6a5fca286740a1704828052072a5f0bc8c7b884242\n\n# tcId = 311\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 30440220549f658d4a3f98233a2c93bd5b1a52d64af10815ae60becb4139cac822b579c3022027bdddf0dbcf374a2aec8accc47a8ac897f8d1823dda8eb2052590970b39ce2a\n\n# tcId = 312\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 30450221009fabcc1e5fd965226902f594559e231369e584453974e74f49d7d762e134fb9d0220293cccc510793bac45ce5da2bb6c9e906437f59435ca206655f74b625df07c7c\n\n# tcId = 313\n# special case hash\nmsg = 37313836313632313030\nresult = valid\nsig = 304502202e5c140fd6f5f823addc8088ffaae967e7f4897274316769561dfb31435825d9022100eda47327d7cfae1daa344ff5582a467bd18eb9f01caeab9c6da3c0cc89df6713\n\n# tcId = 314\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 304402204c11e3b7efbe3908ad2118e54d7d34d6c6eb4570bf7fdb11a7679fe93afa254c0220712e90f421836e542dac49d10bb39db4a98b2735b6336d8a3c392f3b90e60bbe\n\n# tcId = 315\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 3045022100dfb4619303f4ff689563d2275069fac44d63ea3c3b18f4fb1ac805d7df3d12ec022068e37b846583901db256329f9cf64f40c416fba50dcb9be333a3e29c76ae32db\n\n# tcId = 316\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 3045022100e70e8e17bd758ff0c48f91cb2c53d293f0f5ae82eb9dfe76ab98f9b064278635022021dde32cb0389cad7bdf676d9b9b7d25bb034ad25a55ea71ee7ee26a18359dd2\n\n# tcId = 317\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 30440220421397ecae30617a5a6081ad1badf6ce9d9d4cb2afdabf1f900e7fdb7fb0af5a022057ca89dc22801c75fdbefdaeca65c675625f94de7d635062b08ed308df5762cc\n\n# tcId = 318\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 304502200610c08076909bb722fba105c23eac8f66b4db1d58f66a882fc90d59acdec8e0022100af59e8d570761cac589d49f11c884007f7ac1eea1a44c6f3fdad1d542187d25e\n\n# tcId = 319\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 3045022059a1181cab0ee8ce94ab2b5ab4f4b13a422e38efe69f634bf947485a5b9ea49c0221009b3c913d98a4ab15f6a39f1802b8f2d28559aa1f8d03a3a88df00c89dc293a97\n\n# tcId = 320\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 30460221008cae6c4dfbf901bd66ab82541011fa15c8e90e2c18c01bd881acaa2b63cb587b022100a86acf943f29cef91d1b66a7de5547df6cdfc45dd7bef816dcb8de9f5a425d2d\n\n# tcId = 321\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 30450221008b00c74b86474d782eac9974aea606d8f7ee78c79597e15687021f5991e86acd0220309dfe3686648eae104e87b3e9b5616a3ad479ca4f0b558ae4f1e5ab3115346a\n\n# tcId = 322\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 30450220433a915504c977809634a36fcf4480e4c8069fc127d201d30dfdb1f423c95fd4022100bcb1b89aafd50a1766b09741fc6a9a96e744ae9826d839bf85ffb50a91981773\n\n# tcId = 323\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 304502204b69abd2b39840a545cdd4a72d384234580e2fd938b7091d0ecdb562780857db022100fdab9957119e0a4092af82f6cc29f3c8a692671ec86efb0a03c1112a0a1e0467\n\n# tcId = 324\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 3045022100dab9d3686c28363ad017b4a2b36d35bf2eb80633613d44deb9501d42a3efbd3802201392a562d79f9ab19014e4f7e2f2668259f3720a76c120d4a3c3964e880f7679\n\n# tcId = 325\n# special case hash\nmsg = 33373033393135373035\nresult = valid\nsig = 3045022023f94e47b440ce379b74c9311232b19a64e3e7c9b90da34b0c1c3f3d7af28105022100e1425903b1479c2ce18b108a6d1ec8b7a4f0f657dedb00de3a3ceea7fdeee9be\n\n# tcId = 326\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 30450221009d706a8fa85d15bd0c3492c6672dfe529f4073b217b3947b5b2cfd61f87ccb7102206aaaaf369f82a0e542f72ded7d7eb90c8314ffa613a0ea81da1c8393dbae2bac\n\n# tcId = 327\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 3046022100ac77918c4085c8a7ce5020b00c315629aee053a445cb4661eb50f6b62a47da29022100df2aea2b9c11a6ce39d3cd9e1faf4a53057e0b1b2e48a324be9e773203fe9fbb\n\n# tcId = 328\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 30460221009db2dbd2935f147fae7f6a95c8e2307bd8537c3d96eb732ad6d5ebdd89bc754e02210093a9ab99d2de9d08fe0a61e26c8fe1ebbf88726e4b69d551b57d15f0ae16df5a\n\n# tcId = 329\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 30440220769f70093939afbd1fa15873decfa803ca523ace8040280ba78cf833497722bc0220369875aba5e1ced5a4ca8444ec9399a38038b00e153a0ae34d9b3c9781447eea\n\n# tcId = 330\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 3045022026e5182b9822550ad52f46ad80781d6bef3d110a204db5e58a0746f796982200022100a9418e76029ced0cf78a571a9e59ad04086e91f70e6813981bb33c1dee891165\n\n# tcId = 331\n# special case hash\nmsg = 33313331323837323737\nresult = valid\nsig = 3046022100e7bd6aefcf7b27e1f3fadbe713f9adb3d23398e88200cd2e94989c9d12e921770221009583e0de3b76f8d4b1e634a81cbc34", + "af54e2f8599f3684ce48d372760c8204c4\n\n# tcId = 332\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 30450221008638ed7eaa83609a01a6af9c52ec9bfddda90442b1e6031d61cfa22e48b2e1e2022020c284d596f71c6c8df732f5a5a2006302301e1a792e2b39663d93a9760762d2\n\n# tcId = 333\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 3044022061d924307a96180b06383608ba91674e15c3ea06ff2534412b93a587dde649c1022059b84aa2115b2547edac88088ca6313e9fbe1ca6a361c7e57938f9dde3f4349c\n\n# tcId = 334\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 30450220424fcfc3fd63d128c2eb125e88c7fe5d283b63470a786b82783edbb8a0b7a6d7022100b11548c2cd7fce9d44e795ca51af0b2f6a5180e9c9be0314007ed9e7f4bbe5e9\n\n# tcId = 335\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 3045022100a5f747ae6290fa9582c6ce8d5608621d495f061551bc4531bacba586a563b184022062faf8f92291e12812835b3f1d43c967bceb885b110bd06e5a68e2d74781ae2b\n\n# tcId = 336\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 3045022100b731dc0d92c2cc7a605d78233f7814699bdf1cab2df297b6844eec4015af8ea0022039b1a0cc88eb85bcdc356b3620c51f1298c60aec5306b107e900ffdba049dd6f\n\n# tcId = 337\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 3046022100ef73c4fa322da39fb6503bab6b66b64d241056afbcd6908f84b61ccbbe890433022100f1ef85413e5764aa58a3128ccfcf388324fe5340e5edf8d0135ae76786ce415b\n\n# tcId = 338\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 30450220694cd30e2ad0182579331474b271ee2d48723bc8415dc6513873586ce705b76b022100c5ac0c0ed5a4017d110cb45d63aa955dc7dc5ce23e7965c5397c3ff46a884636\n\n# tcId = 339\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 3046022100f38b2236be3024e10b894ffb1cc68d0bb8d4cf0fcd2cfc1779f8883765d3cd96022100da69cd0b74c25566d60a486edd559fc39d569fb2751445a4798df8a36891802c\n\n# tcId = 340\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 3046022100a881732c205a0b4b95669c00756fd91973450109a46f17d5a9d971b5e92b9aa40221008acefdca4e06c16b47ccad1c57c05912637e107096ba230c92b97187db79e19e\n\n# tcId = 341\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 3044022004452f554bae819b42effb84ef44a9f1cb7e2d75b4ba9ff9b9cfffaddde3fd1b022061a3fbc5e73c350f2e3d85a7452cd231a3f3375fc11f5fe153b185f53b09c1d0\n\n# tcId = 342\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 3045022005814f57f58efc7cb490119e584e635e6f0ad1c19fb5dc2edafda075bb55f98e0221009dd5c6e39009d67d965903ecffe08a851775cc1248cc19c0b77798282131b8f6\n\n# tcId = 343\n# special case hash\nmsg = 31343437383437303635\nresult = valid\nsig = 3045022100dc1c4a46085e198843b1f01980cd5e4a1ff6f8e8ff7014397f0afd5b247fb0a0022038a13dc723ed90b30251d742b14733a03292ff26530a1ebcaf3d10862a6eff82\n\n# tcId = 344\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 304502201067667bf525734ca7f2510e36348fd9c2c9bccf032dfd571de6d45abd49361a022100fa762568d3a19e5a1d8ea65e00202a5b16f9afae56733a01f86e35378c558da4\n\n# tcId = 345\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 3046022100e58d69dc56bc1031644847e3e046e2ea845a515d969d07ea1aa53aea5bd92fa1022100bfe50b80f7c512f5ab521fe7e1a131045fde78d4de826c91573baaba1e35ca97\n\n# tcId = 346\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 3046022100fe79c6b8c14d0f23d426e3d157f1b541f6bb91bf29957ef97c55949c9ba48a350221009da112c4a4cf4b1ff490c426f6c8ff122183964a0de56f7336ab382dc9d10285\n\n# tcId = 347\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 3045022045d4ed7e9edacb5a730944ab0037fba0a136ed9d0d26b2f4d4058554f148fa6f022100f136f15fd30cfe5e5548b3f4965c16a66a7c12904686abe12da777619212ae8c\n\n# tcId = 348\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 304402204fb7c1727e40bae272f6143a50001b54b536f90233157896dbf845e263f2486302206fea5c924dca17519f6e502ef67efa08d39eb5cc3381266f0216864d2bd00a62\n\n# tcId = 349\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 30450220779aac665dd988054b04f2e9d483ca79179b3372b58ca00fe43520f44fcb4c32022100b4eca1182cd51f0abd3ea2268dcda49a807ad4116a583102047498aa863653f5\n\n# tcId = 350\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 3046022100db7ac6f65fb1c38d80064fd11861631237a09924b4eeca4e1569fa4b7d80ad24022100a38d178d37e13e1afa07a9d03da025d594461938a62a6c6744f5c8f7d7b7bb81\n\n# tcId = 351\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 3046022100c90043b4aadf795d870ac223f33acdbd1948c31afff059054dc99528c6503fa6022100829f67b312bb134f6954a23c611a7f7b5b2a69efced9c48db589ac0b4d3da827\n\n# tcId = 352\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig = 3045022100fa16c0125b6615b90e81f7499804308a90179bf3fcff6a4b2695271c68b23ded02200d6cda5ce041dc5a5f319ad9c0de4927d0cf5e89e37b79216194413d42976d54\n\n# tcId = 353\n# special case hash\nmsg = 36323135363635313234\nresult = valid\nsig = 304502201a4b5bd0f806549f46a3e71bfe412d6d89206017640ded66f3d0b2d9b26bec45022100aac5f74e3130264e01428570ee82ee47e245d160ed812ae252dedffd82e1ec2c\n\n# tcId = 354\n# Signature generated without truncating the hash\nmsg = 313233343030\nresult = invalid\nsig = 3045022100f8e272234b51475ec4c6f327562a6e5c9080a96225e88b2e5f72a8eecbd41ab40220516b91617fc39e3141b3bc769f6a3b2e468e687f50bdc29e19088af62d203f4b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b6e08b1bcc89e7fb0b84d7497e310553495be4877eccc4b3d6d79f7c68a0573431760fa1bcea4972759174ac1103bc6011985ccee251918d0573fbcb78969116]\n[key.wx = 00b6e08b1bcc89e7fb0b84d7497e310553495be4877eccc4b3d6d79f7c68a05734]\n[key.wy = 31760fa1bcea4972759174ac1103bc6011985ccee251918d0573fbcb78969116]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b6e08b1bcc89e7fb0b84d7497e310553495be4877eccc4b3d6d79f7c68a0573431760fa1bcea4972759174ac1103bc6011985ccee251918d0573fbcb78969116]\n[sha = SHA-512]\n\n# tcId = 355\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 303502104319055358e8617b0c46353d039cdaab022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n# tcId = 356\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3046022100ffffffff00000001000000000000000000000000fffffffffffffffffffffffc022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043590c6a10353d669bc94d8e2ff9e14bbeed4a7f45b887255ab7e37b676387bb615fc6f97ce39a3874c2b34cc571889abfa0a706c2cfb0e5a4750cc25690696f8]\n[key.wx = 3590c6a10353d669bc94d8e2ff9e14bbeed4a7f45b887255ab7e37b676387bb6]\n[key.wy = 15fc6f97ce39a3874c2b34cc571889abfa0a706c2cfb0e5a4750cc25690696f8]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043590c6a10353d669bc94d8e2ff9e14bbeed4a7f45b887255ab7e37b676387bb615fc6f97ce39a3874c2b34cc571889abfa0a706c2cfb0e5a4750cc25690696f8]\n[sha = SHA-512]\n\n# tcId = 357\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04369e96402f2cfd1a37b3acbdecfc562862dbca944a0f12d7aaacb8d325d7650aa723621922be2bdac9186290fdcdda028d94437966507d93f2fc1f5c887fdedb]\n[key.wx = 369e96402f2cfd1a37b3acbdecfc562862dbca944a0f12d7aaacb8d325d7650a]\n[key.wy = 00a723621922be2bdac9186290fdcdda028d94437966507d93f2fc1f5c887fdedb]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004369e96402f2cfd1a37b3acbdecfc562862dbca944a0f12d7aaacb8d325d7650aa723621922be2bdac9186290fdcdda028d94437966507d93f2fc1f5c887fdedb]\n[sha = SHA-512]\n\n# tcId = 358\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100909135bdb6799286170f5ead2de4f6511453fe50914f3df2de54a36383df8dd4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0427a0a80ea2e1aa798ea9bcc3aedbf01ab78e49c9ec2ad0e08a0429a0e1db4d0d32a8ee7bee9d0a40014e484f34a92bd6f33fe63624ea9579657441ac79666e7f]\n[key.wx = 27a0a80ea2e1aa798ea9bcc3aedbf01ab78e49c9ec2ad0e08a0429a0e1db4d0d]\n[key.wy = 32a8ee7bee9d0a", + "40014e484f34a92bd6f33fe63624ea9579657441ac79666e7f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000427a0a80ea2e1aa798ea9bcc3aedbf01ab78e49c9ec2ad0e08a0429a0e1db4d0d32a8ee7bee9d0a40014e484f34a92bd6f33fe63624ea9579657441ac79666e7f]\n[sha = SHA-512]\n\n# tcId = 359\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022027b4577ca009376f71303fd5dd227dcef5deb773ad5f5a84360644669ca249a5\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 049cff61712d4bc5b3638341e6e0a576a8098c9c6d3f198d389c4669f398dc0867f3b9e09f567f3dfd9c4d2c1163e82beadf16c76e8f9d7a64673800ea76fa1e59]\n[key.wx = 009cff61712d4bc5b3638341e6e0a576a8098c9c6d3f198d389c4669f398dc0867]\n[key.wy = 00f3b9e09f567f3dfd9c4d2c1163e82beadf16c76e8f9d7a64673800ea76fa1e59]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200049cff61712d4bc5b3638341e6e0a576a8098c9c6d3f198d389c4669f398dc0867f3b9e09f567f3dfd9c4d2c1163e82beadf16c76e8f9d7a64673800ea76fa1e59]\n[sha = SHA-512]\n\n# tcId = 360\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020101\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d9117cae81295e82682fa387991e668e1570e0e90100bf4e63964822460561bc19f96b1787ed15769929978ba3dd7f68c97adf5c16f671e756cd8f08c49456ca]\n[key.wx = 00d9117cae81295e82682fa387991e668e1570e0e90100bf4e63964822460561bc]\n[key.wy = 19f96b1787ed15769929978ba3dd7f68c97adf5c16f671e756cd8f08c49456ca]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d9117cae81295e82682fa387991e668e1570e0e90100bf4e63964822460561bc19f96b1787ed15769929978ba3dd7f68c97adf5c16f671e756cd8f08c49456ca]\n[sha = SHA-512]\n\n# tcId = 361\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020103\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 048cfcbad3524c22b992529f943e3ce0b2d126085501d6e3edd4f1dbf74bdca21eafb259b1ba179cac09e8e43a88c8a09e7339910a7c941932e44b8be56f1fccde]\n[key.wx = 008cfcbad3524c22b992529f943e3ce0b2d126085501d6e3edd4f1dbf74bdca21e]\n[key.wy = 00afb259b1ba179cac09e8e43a88c8a09e7339910a7c941932e44b8be56f1fccde]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048cfcbad3524c22b992529f943e3ce0b2d126085501d6e3edd4f1dbf74bdca21eafb259b1ba179cac09e8e43a88c8a09e7339910a7c941932e44b8be56f1fccde]\n[sha = SHA-512]\n\n# tcId = 362\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020105\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fbb51127e1f1b6a38e9fe9a2544614edb8e43ad7cd8c56f14b3235dda3bc11179abd9753a9e647e9340c395fb2b91384d6d33fcb6456214350b6f3fa00f4364c]\n[key.wx = 00fbb51127e1f1b6a38e9fe9a2544614edb8e43ad7cd8c56f14b3235dda3bc1117]\n[key.wy = 009abd9753a9e647e9340c395fb2b91384d6d33fcb6456214350b6f3fa00f4364c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fbb51127e1f1b6a38e9fe9a2544614edb8e43ad7cd8c56f14b3235dda3bc11179abd9753a9e647e9340c395fb2b91384d6d33fcb6456214350b6f3fa00f4364c]\n[sha = SHA-512]\n\n# tcId = 363\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020105020106\n\n# tcId = 364\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632556020106\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04dc80905500d7d74ed47de5224d8734545f22b776ae086cabfffe6ce58d5ef994dc3067ce7d2cdfa9f4d5ace296b752814acc69c19a932d8b14077927901de3bf]\n[key.wx = 00dc80905500d7d74ed47de5224d8734545f22b776ae086cabfffe6ce58d5ef994]\n[key.wy = 00dc3067ce7d2cdfa9f4d5ace296b752814acc69c19a932d8b14077927901de3bf]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dc80905500d7d74ed47de5224d8734545f22b776ae086cabfffe6ce58d5ef994dc3067ce7d2cdfa9f4d5ace296b752814acc69c19a932d8b14077927901de3bf]\n[sha = SHA-512]\n\n# tcId = 365\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3026020105022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc75fbd8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 041b824a11eed94fbcd9b722d06613bbcf7eca00b9136f2652642178f37b1a920ee900de495d9ef56fa6d19f3dd1e0edb23d23835ac8c2d3d13c0227e852e503eb]\n[key.wx = 1b824a11eed94fbcd9b722d06613bbcf7eca00b9136f2652642178f37b1a920e]\n[key.wy = 00e900de495d9ef56fa6d19f3dd1e0edb23d23835ac8c2d3d13c0227e852e503eb]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041b824a11eed94fbcd9b722d06613bbcf7eca00b9136f2652642178f37b1a920ee900de495d9ef56fa6d19f3dd1e0edb23d23835ac8c2d3d13c0227e852e503eb]\n[sha = SHA-512]\n\n# tcId = 366\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3027020201000221008f1e3c7862c58b16bb76eddbb76eddbb516af4f63f2d74d76e0d28c9bb75ea88\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042914b30c4c784696ffc3dddcec05f36cb1488bc342b9f529d5387acb9e48cb8d3dbd30d0d5d6d6a39108863c2d6a6e8571cd3261fb9eb98ce46125bd8f139136]\n[key.wx = 2914b30c4c784696ffc3dddcec05f36cb1488bc342b9f529d5387acb9e48cb8d]\n[key.wy = 3dbd30d0d5d6d6a39108863c2d6a6e8571cd3261fb9eb98ce46125bd8f139136]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042914b30c4c784696ffc3dddcec05f36cb1488bc342b9f529d5387acb9e48cb8d3dbd30d0d5d6d6a39108863c2d6a6e8571cd3261fb9eb98ce46125bd8f139136]\n[sha = SHA-512]\n\n# tcId = 367\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 302c02072d9b4d347952d6022100ef3043e7329581dbb3974497710ab11505ee1c87ff907beebadd195a0ffe6d7a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042579f546fe2f2aeb5f822feb28f2f8371618d04815455a7e903c10024a17da415528e951147f76bee1314e65a49c6ec70686e62d38fbc23472f96e3d3b33fd1f]\n[key.wx = 2579f546fe2f2aeb5f822feb28f2f8371618d04815455a7e903c10024a17da41]\n[key.wy = 5528e951147f76bee1314e65a49c6ec70686e62d38fbc23472f96e3d3b33fd1f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042579f546fe2f2aeb5f822feb28f2f8371618d04815455a7e903c10024a17da415528e951147f76bee1314e65a49c6ec70686e62d38fbc23472f96e3d3b33fd1f]\n[sha = SHA-512]\n\n# tcId = 368\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d1033e67e37b32b445580bf4eff0221008b748b74000000008b748b748b748b7466e769ad4a16d3dcd87129b8e91d1b4d\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b102196bf455ee5aafc6f895504d3c3b6b2d37c35f8669bd0f0b694795fbd992f777b6f829b9628ac35db0ef43f6a89f0a42812614e4c15924d8d47ebe45bae5]\n[key.wx = 00b102196bf455ee5aafc6f895504d3c3b6b2d37c35f8669bd0f0b694795fbd992]\n[key.wy = 00f777b6f829b9628ac35db0ef43f6a89f0a42812614e4c15924d8d47ebe45bae5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b102196bf455ee5aafc6f895504d3c3b6b2d37c35f8669bd0f0b694795fbd992f777b6f829b9628ac35db0ef43f6a89f0a42812614e4c15924d8d47ebe45bae5]\n[sha = SHA-512]\n\n# tcId = 369\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 302702020100022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044d056ab2ff57662fd6eebbe23930fef5cd08083e24146190cd01960b1fcd3749fe7ec5847651c857898be0f09efd6e0116a5dbe327f6f3080a65fc966bf64d91]\n[key.wx = 4d056ab2ff57662fd6eebbe23930fef5cd08083e24146190cd01960b1fcd3749]\n[key.wy = 00fe7ec5847651c857898be0f09efd6e0116a5dbe327f6f3080a65fc966bf64d91]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044d056ab2ff57662fd6eebbe23930fef5cd08083e24146190cd01960b1fcd3749fe7ec5847651c857898be0f09efd6e0116a5dbe327f6f3080a65fc966bf64d91]\n[sha = SHA-512]\n\n# tcId = 370\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3032020d062522bbd3ecbe7c39e93e7c25022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04361c4a62cd867613138dfe24ccebc4b7df1b55fc7410f4995ee2b6b9ab2220584f116c6c84e53d262fd13a5f5de6b57e7a1981de4ecdffdf3323b4e91d80649c]\n[key.wx = 361c4a62cd867613138dfe24ccebc4b7df1b55fc7410f4995ee2b6b9ab222058]\n[key.wy = 4", + "f116c6c84e53d262fd13a5f5de6b57e7a1981de4ecdffdf3323b4e91d80649c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004361c4a62cd867613138dfe24ccebc4b7df1b55fc7410f4995ee2b6b9ab2220584f116c6c84e53d262fd13a5f5de6b57e7a1981de4ecdffdf3323b4e91d80649c]\n[sha = SHA-512]\n\n# tcId = 371\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3045022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d50220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04db9d5c5113f00822a146c9cda2e75cb6634cd0dff54aff6e22875171f57a0dad1c424cdd83eb01c02f6f8d36f42c6dc7e39db74358da8ac9bc9dc5890d46f667]\n[key.wx = 00db9d5c5113f00822a146c9cda2e75cb6634cd0dff54aff6e22875171f57a0dad]\n[key.wy = 1c424cdd83eb01c02f6f8d36f42c6dc7e39db74358da8ac9bc9dc5890d46f667]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004db9d5c5113f00822a146c9cda2e75cb6634cd0dff54aff6e22875171f57a0dad1c424cdd83eb01c02f6f8d36f42c6dc7e39db74358da8ac9bc9dc5890d46f667]\n[sha = SHA-512]\n\n# tcId = 372\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020101\n\n# tcId = 373\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020100\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0499f19f07b33e03caf4703e04b930d57d6d9baa44460c596a2d3064e0b63ea41286a74c4612a812ee348d2b43f80de627c11c75d81511e22a199c32119b792c6a]\n[key.wx = 0099f19f07b33e03caf4703e04b930d57d6d9baa44460c596a2d3064e0b63ea412]\n[key.wy = 0086a74c4612a812ee348d2b43f80de627c11c75d81511e22a199c32119b792c6a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000499f19f07b33e03caf4703e04b930d57d6d9baa44460c596a2d3064e0b63ea41286a74c4612a812ee348d2b43f80de627c11c75d81511e22a199c32119b792c6a]\n[sha = SHA-512]\n\n# tcId = 374\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a80220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04313f3309b236484c6eb4ea381e007854467a617343a2e97d845801c01a632cfe33f231854bba89a8ca3f802a2764d3bf6c3233c811a31e5e8028a0b862cb1977]\n[key.wx = 313f3309b236484c6eb4ea381e007854467a617343a2e97d845801c01a632cfe]\n[key.wy = 33f231854bba89a8ca3f802a2764d3bf6c3233c811a31e5e8028a0b862cb1977]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004313f3309b236484c6eb4ea381e007854467a617343a2e97d845801c01a632cfe33f231854bba89a8ca3f802a2764d3bf6c3233c811a31e5e8028a0b862cb1977]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a902207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d3aa01fe59bad92cffe3db59e1385391fafd7af4e4ce462e8aac157274cc8a05c7a7e603e18538aac15f89610beacc21e39898e6c5f7680a81c5bd7bd744a989]\n[key.wx = 00d3aa01fe59bad92cffe3db59e1385391fafd7af4e4ce462e8aac157274cc8a05]\n[key.wy = 00c7a7e603e18538aac15f89610beacc21e39898e6c5f7680a81c5bd7bd744a989]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d3aa01fe59bad92cffe3db59e1385391fafd7af4e4ce462e8aac157274cc8a05c7a7e603e18538aac15f89610beacc21e39898e6c5f7680a81c5bd7bd744a989]\n[sha = SHA-512]\n\n# tcId = 376\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a902207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 045e31eccd4704ebf7a4247ea57f9351abadff63679f2276e2a3b05009ebc1b8df648465a925010db823b2a5f3a6072343a6cc9961a9c482399d0d82051c2e3232]\n[key.wx = 5e31eccd4704ebf7a4247ea57f9351abadff63679f2276e2a3b05009ebc1b8df]\n[key.wy = 648465a925010db823b2a5f3a6072343a6cc9961a9c482399d0d82051c2e3232]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045e31eccd4704ebf7a4247ea57f9351abadff63679f2276e2a3b05009ebc1b8df648465a925010db823b2a5f3a6072343a6cc9961a9c482399d0d82051c2e3232]\n[sha = SHA-512]\n\n# tcId = 377\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ce0a47f881fd7315a733c4317848fa33c72e38de0b8fda36b61aa9a164f5808a85b05d25115ea4097ddf63f878c8e83657e66de136a8f9e62ed81a58bf117ff9]\n[key.wx = 00ce0a47f881fd7315a733c4317848fa33c72e38de0b8fda36b61aa9a164f5808a]\n[key.wy = 0085b05d25115ea4097ddf63f878c8e83657e66de136a8f9e62ed81a58bf117ff9]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ce0a47f881fd7315a733c4317848fa33c72e38de0b8fda36b61aa9a164f5808a85b05d25115ea4097ddf63f878c8e83657e66de136a8f9e62ed81a58bf117ff9]\n[sha = SHA-512]\n\n# tcId = 378\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100bc07ff031506dc74a75086a43252fb43731975a16dca6b025e867412d94222d0\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04cd6f487b47f36c0dea8f4b04c4e6ac637c76b725929c611f48addcf3d2f65941b50ea8f3a491190ee0b20cfb6efd113608e7c7c127577500e7f5c4a4e490fd60]\n[key.wx = 00cd6f487b47f36c0dea8f4b04c4e6ac637c76b725929c611f48addcf3d2f65941]\n[key.wy = 00b50ea8f3a491190ee0b20cfb6efd113608e7c7c127577500e7f5c4a4e490fd60]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cd6f487b47f36c0dea8f4b04c4e6ac637c76b725929c611f48addcf3d2f65941b50ea8f3a491190ee0b20cfb6efd113608e7c7c127577500e7f5c4a4e490fd60]\n[sha = SHA-512]\n\n# tcId = 379\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c700220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04456e5f8067d68a1b0a2e8fe2b28acad5755687154a0f167734ebabbdc059070d720dbe96659a66ef0cf27a73e7b3f3f145a60e0ad29f1e21dcc2bb42f0d82c1e]\n[key.wx = 456e5f8067d68a1b0a2e8fe2b28acad5755687154a0f167734ebabbdc059070d]\n[key.wy = 720dbe96659a66ef0cf27a73e7b3f3f145a60e0ad29f1e21dcc2bb42f0d82c1e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004456e5f8067d68a1b0a2e8fe2b28acad5755687154a0f167734ebabbdc059070d720dbe96659a66ef0cf27a73e7b3f3f145a60e0ad29f1e21dcc2bb42f0d82c1e]\n[sha = SHA-512]\n\n# tcId = 380\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100aaaaaaaa00000000aaaaaaaaaaaaaaaa7def51c91a0fbf034d26872ca84218e1\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0442bf0c0ac1e3850baf5515748a878e34249f71035e20a9f54ed468ec273cb0fc5b3138500230055c71f12d53f5c7d0e3d8aa54a94c668cb311e20d195fc71abb]\n[key.wx = 42bf0c0ac1e3850baf5515748a878e34249f71035e20a9f54ed468ec273cb0fc]\n[key.wy = 5b3138500230055c71f12d53f5c7d0e3d8aa54a94c668cb311e20d195fc71abb]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000442bf0c0ac1e3850baf5515748a878e34249f71035e20a9f54ed468ec273cb0fc5b3138500230055c71f12d53f5c7d0e3d8aa54a94c668cb311e20d195fc71abb]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02206bfd55a8f8fdb68472e52873ef39ac3eace6d53df576f0ad2da4607bb52c0d46\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffdd48da63d3af67223f16c51eb7e95600eb0b0e8b964f4fcd8c534face3c2c2b4e009ab2a76829480e69c9e43b2f1fe076cfafb3fa8d27dd4d6bab4d6c3db54]\n[key.wx = 00ffdd48da63d3af67223f16c51eb7e95600eb0b0e8b964f4fcd8c534face3c2c2]\n[key.wy = 00b4e009ab2a76829480e69c9e43b2f1fe076cfafb3fa8d27dd4d6bab4d6c3db54]\n[keyDer =", + " 3059301306072a8648ce3d020106082a8648ce3d03010703420004ffdd48da63d3af67223f16c51eb7e95600eb0b0e8b964f4fcd8c534face3c2c2b4e009ab2a76829480e69c9e43b2f1fe076cfafb3fa8d27dd4d6bab4d6c3db54]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220654937791db0686f712ff9b453eeadb0026c9b058bba49199ca3e8fac03c094f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04793cbfce6f335dcfede7c6898ea1c537d7661ed6a8c9d308d64a2560d21c6e2c483d23a5ff05da00eaf9d52cf5362be9b53b95316c6a32e9ebe68d9ac35c2fd6]\n[key.wx = 793cbfce6f335dcfede7c6898ea1c537d7661ed6a8c9d308d64a2560d21c6e2c]\n[key.wy = 483d23a5ff05da00eaf9d52cf5362be9b53b95316c6a32e9ebe68d9ac35c2fd6]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004793cbfce6f335dcfede7c6898ea1c537d7661ed6a8c9d308d64a2560d21c6e2c483d23a5ff05da00eaf9d52cf5362be9b53b95316c6a32e9ebe68d9ac35c2fd6]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100c51bbee23a95437abe5c978f8fe596a31c858ac8d55be9786aa5d36a5ac74e97\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a9f7023f559d4bb6c9f4bc3643e2824aff5451d929479ec3ea5eb30bad2c36ac6a7c77e8dd21f4ad49b103e67da9d3cda62b653dd194fad2ba8d1dd37bb0ea9b]\n[key.wx = 00a9f7023f559d4bb6c9f4bc3643e2824aff5451d929479ec3ea5eb30bad2c36ac]\n[key.wy = 6a7c77e8dd21f4ad49b103e67da9d3cda62b653dd194fad2ba8d1dd37bb0ea9b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a9f7023f559d4bb6c9f4bc3643e2824aff5451d929479ec3ea5eb30bad2c36ac6a7c77e8dd21f4ad49b103e67da9d3cda62b653dd194fad2ba8d1dd37bb0ea9b]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221008ba4c3da7154ba564ab344ae12005aa482b6c1639ea191f8568afb6e47163c45\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04df79ee082b2fc77e9ce4633471f569bbcb5ce53856e3067774f37e8a64a2c7ffaa488a6c34d499df76f427de3609bfcfd9feae67ffe0b0de594463c453b0ab16]\n[key.wx = 00df79ee082b2fc77e9ce4633471f569bbcb5ce53856e3067774f37e8a64a2c7ff]\n[key.wy = 00aa488a6c34d499df76f427de3609bfcfd9feae67ffe0b0de594463c453b0ab16]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004df79ee082b2fc77e9ce4633471f569bbcb5ce53856e3067774f37e8a64a2c7ffaa488a6c34d499df76f427de3609bfcfd9feae67ffe0b0de594463c453b0ab16]\n[sha = SHA-512]\n\n# tcId = 385\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02204c3dafcf4ba55bf1344ae12005aa4a74f46eaa85f5023131cc637ae2ea90ab26\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044cc3bf65e32e00284adfca00f40df755415c485091ac0489ae9a337103a5f8f0123ab86dd433b933b4f2063c002144df3cfeba78dad0ed89c0377541532908c2]\n[key.wx = 4cc3bf65e32e00284adfca00f40df755415c485091ac0489ae9a337103a5f8f0]\n[key.wy = 123ab86dd433b933b4f2063c002144df3cfeba78dad0ed89c0377541532908c2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044cc3bf65e32e00284adfca00f40df755415c485091ac0489ae9a337103a5f8f0123ab86dd433b933b4f2063c002144df3cfeba78dad0ed89c0377541532908c2]\n[sha = SHA-512]\n\n# tcId = 386\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100987b5f9e974ab7e26895c2400b5494e9e8dd550bea04626398c6f5c5d521564c\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04264a7ad439a4828a9dc97ecf837155355f99ae0b65975f851b541ad3a0e032f067268b7298c73e581866fbcbd161689b16b81cf262e007ce68e25a28c83ef041]\n[key.wx = 264a7ad439a4828a9dc97ecf837155355f99ae0b65975f851b541ad3a0e032f0]\n[key.wy = 67268b7298c73e581866fbcbd161689b16b81cf262e007ce68e25a28c83ef041]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004264a7ad439a4828a9dc97ecf837155355f99ae0b65975f851b541ad3a0e032f067268b7298c73e581866fbcbd161689b16b81cf262e007ce68e25a28c83ef041]\n[sha = SHA-512]\n\n# tcId = 387\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100fcf97e2fbf0e80d412005aa4a75086a3f004f59d512cb47271798733ab418606\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 041d7ff4d3a41206c8143635f12876e0ea0875ea5e4a5a249250d0eda33daa211f56e89c0beaf910ac934ca12380455600d0fd85b56a7035cb171b3f1c72a15569]\n[key.wx = 1d7ff4d3a41206c8143635f12876e0ea0875ea5e4a5a249250d0eda33daa211f]\n[key.wy = 56e89c0beaf910ac934ca12380455600d0fd85b56a7035cb171b3f1c72a15569]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041d7ff4d3a41206c8143635f12876e0ea0875ea5e4a5a249250d0eda33daa211f56e89c0beaf910ac934ca12380455600d0fd85b56a7035cb171b3f1c72a15569]\n[sha = SHA-512]\n\n# tcId = 388\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022079d482b60864d6c5cb4fd5db9e7e28ccd9a5948c316c8740fb429c0f37169a02\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b09685f338dceb421778a1458d52bed734c236242da2baa280d6f6b7b86e4f117fe6a34146b422d7aebd1a51b20948d7872a514c4cfd7686dc436b70733d6473]\n[key.wx = 00b09685f338dceb421778a1458d52bed734c236242da2baa280d6f6b7b86e4f11]\n[key.wy = 7fe6a34146b422d7aebd1a51b20948d7872a514c4cfd7686dc436b70733d6473]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b09685f338dceb421778a1458d52bed734c236242da2baa280d6f6b7b86e4f117fe6a34146b422d7aebd1a51b20948d7872a514c4cfd7686dc436b70733d6473]\n[sha = SHA-512]\n\n# tcId = 389\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221008ecd11081a4d0759c14f7bf46813d52cc6738115321be0a4da78a3356bb71510\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04dd811f2c0f5e9d4fbb2ef31818c1cd807247bc14fcd1170bef00e2c71dc037b443a15cdf8f3fbdc87e06250c0720d261d2b8d087fa7bf9548f6293f0ce5ae899]\n[key.wx = 00dd811f2c0f5e9d4fbb2ef31818c1cd807247bc14fcd1170bef00e2c71dc037b4]\n[key.wy = 43a15cdf8f3fbdc87e06250c0720d261d2b8d087fa7bf9548f6293f0ce5ae899]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd811f2c0f5e9d4fbb2ef31818c1cd807247bc14fcd1170bef00e2c71dc037b443a15cdf8f3fbdc87e06250c0720d261d2b8d087fa7bf9548f6293f0ce5ae899]\n[sha = SHA-512]\n\n# tcId = 390\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100e8dbffed13c9a2093085c079714f11f24eb583d73ba2b416b3169183e7d9b4c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0469d60ae1f39e1da95809d408894707ad2134f4943a1db089bebf815a391f18db32b401d98bf894d3b6d59e6eb45573285642e358ad687b7d7bf9600b1987809e]\n[key.wx = 69d60ae1f39e1da95809d408894707ad2134f4943a1db089bebf815a391f18db]\n[key.wy = 32b401d98bf894d3b6d59e6eb45573285642e358ad687b7d7bf9600b1987809e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000469d60ae1f39e1da95809d408894707ad2134f4943a1db089bebf815a391f18db32b401d98bf894d3b6d59e6eb45573285642e358ad687b7d7bf9600b1987809e]\n[sha = SHA-512]\n\n# tcId = 391\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ca01552a838124bec68d6bc6086329e06673900eac5c262e5ce79a8521cd1eae\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a658553a0620c95e987b5c3163bcfea68c52065f53c9d553f2a924d8b3ed511f79f0dfec4536b65aa5fb31297e96f6b464aa669b9268b3156c43d4612978a577]\n[key.wx = 00a658553a0620c95e987b5c3163bcfea68c52065f53c9d553f2a924d8b3ed511f]\n[key.wy = 79f0dfec4536b65aa5fb31297e96f6b464aa669b9268b3156c43d4612978a577]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a658553a0620c95e987b5c3163bcfea68c52065f53c9d553f2a924d8b3ed511f79f0dfec4536b65aa5fb31297e96f6b464aa669b9268b3156c43d4612978a577]\n[", + "sha = SHA-512]\n\n# tcId = 392\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221009402aa560702497c8d1ad78c10c653c11000256fb1a0add7c6156a474737180b\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bc4d3354a6a973dd8088919cc181194e879ed7920db30d0d1278edf74413b7b92450d162b26dcb25fbbd53ea4044189981d737055925bd2e86bfb0374b09f3ca]\n[key.wx = 00bc4d3354a6a973dd8088919cc181194e879ed7920db30d0d1278edf74413b7b9]\n[key.wy = 2450d162b26dcb25fbbd53ea4044189981d737055925bd2e86bfb0374b09f3ca]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bc4d3354a6a973dd8088919cc181194e879ed7920db30d0d1278edf74413b7b92450d162b26dcb25fbbd53ea4044189981d737055925bd2e86bfb0374b09f3ca]\n[sha = SHA-512]\n\n# tcId = 393\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02205e03ff818a836e3a53a8435219297da1b98cbad0b6e535812f433a096ca11168\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 040eb628724fce764c687d874ade7b8e0aa4abf20ee6e3610fac9fe3e72f97ab5aed09f4843660eb1daf015d397a7c1073d7ae43bda0ba3e117008785abfffa00f]\n[key.wx = 0eb628724fce764c687d874ade7b8e0aa4abf20ee6e3610fac9fe3e72f97ab5a]\n[key.wy = 00ed09f4843660eb1daf015d397a7c1073d7ae43bda0ba3e117008785abfffa00f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040eb628724fce764c687d874ade7b8e0aa4abf20ee6e3610fac9fe3e72f97ab5aed09f4843660eb1daf015d397a7c1073d7ae43bda0ba3e117008785abfffa00f]\n[sha = SHA-512]\n\n# tcId = 394\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100e28ddf709d4aa1bddf2e4bc7c7f2cb516cb642bb3e39c3feaf2fcf16ab9539f4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e7ac5cc7f296912f703f59fe88e49b521da245e12e6eee161ee6b3b1127611a77b3bedd2a773cf58b0629b936dd85dad2d0c39676306ed63e1a9bcd0e08bccc2]\n[key.wx = 00e7ac5cc7f296912f703f59fe88e49b521da245e12e6eee161ee6b3b1127611a7]\n[key.wy = 7b3bedd2a773cf58b0629b936dd85dad2d0c39676306ed63e1a9bcd0e08bccc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004e7ac5cc7f296912f703f59fe88e49b521da245e12e6eee161ee6b3b1127611a77b3bedd2a773cf58b0629b936dd85dad2d0c39676306ed63e1a9bcd0e08bccc2]\n[sha = SHA-512]\n\n# tcId = 395\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffffaaaaaaaaffffffffffffffffe9a2538f37b28a2c513dee40fecbb71a\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042407b60abf3ee5edaf92ed505a11d0ddce0ea33eca58a031bb2f162c512f4062fb81bff36bf967e834e3d5d468730dcd70440022ab60061a62fac53350fe259f]\n[key.wx = 2407b60abf3ee5edaf92ed505a11d0ddce0ea33eca58a031bb2f162c512f4062]\n[key.wy = 00fb81bff36bf967e834e3d5d468730dcd70440022ab60061a62fac53350fe259f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042407b60abf3ee5edaf92ed505a11d0ddce0ea33eca58a031bb2f162c512f4062fb81bff36bf967e834e3d5d468730dcd70440022ab60061a62fac53350fe259f]\n[sha = SHA-512]\n\n# tcId = 396\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100b62f26b5f2a2b26f6de86d42ad8a13da3ab3cccd0459b201de009e526adf21f2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0447b2ad96dfc2f23fe5926809f38042b2c801962bd7394cefbf4aacb2554b7b0bdf2b937a16a7d96a2a0682cd164428890208597f2cdcc734fda73600b5cf6c59]\n[key.wx = 47b2ad96dfc2f23fe5926809f38042b2c801962bd7394cefbf4aacb2554b7b0b]\n[key.wy = 00df2b937a16a7d96a2a0682cd164428890208597f2cdcc734fda73600b5cf6c59]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000447b2ad96dfc2f23fe5926809f38042b2c801962bd7394cefbf4aacb2554b7b0bdf2b937a16a7d96a2a0682cd164428890208597f2cdcc734fda73600b5cf6c59]\n[sha = SHA-512]\n\n# tcId = 397\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bb1d9ac949dd748cd02bbbe749bd351cd57b38bb61403d700686aa7b4c90851e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0469a65b75f31ae7b4930292f90902461befcee5d1606939c28e01b652a7fbc498cf68619e5860128f56cecf53eba2ffe82889a9bb04a5fa4c8b722bc91d55978a]\n[key.wx = 69a65b75f31ae7b4930292f90902461befcee5d1606939c28e01b652a7fbc498]\n[key.wy = 00cf68619e5860128f56cecf53eba2ffe82889a9bb04a5fa4c8b722bc91d55978a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000469a65b75f31ae7b4930292f90902461befcee5d1606939c28e01b652a7fbc498cf68619e5860128f56cecf53eba2ffe82889a9bb04a5fa4c8b722bc91d55978a]\n[sha = SHA-512]\n\n# tcId = 398\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022066755a00638cdaec1c732513ca0234ece52545dac11f816e818f725b4f60aaf2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b2037176c84db04a6c773e32f9ed1d6b25ef4c303c6725c6932ec2cc2788bcbb9361505e6b771691adb41598f292d6521722404bf183241b195738b77abd6cfe]\n[key.wx = 00b2037176c84db04a6c773e32f9ed1d6b25ef4c303c6725c6932ec2cc2788bcbb]\n[key.wy = 009361505e6b771691adb41598f292d6521722404bf183241b195738b77abd6cfe]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b2037176c84db04a6c773e32f9ed1d6b25ef4c303c6725c6932ec2cc2788bcbb9361505e6b771691adb41598f292d6521722404bf183241b195738b77abd6cfe]\n[sha = SHA-512]\n\n# tcId = 399\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022055a00c9fcdaebb6032513ca0234ecfffe98ebe492fdf02e48ca48e982beb3669\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 041eef95aef71f793afd50bb2604064d63e88bef7404a4d0e206446245ae2e7834c96e86dd040f9794b63712d90e719576b8b92c406ab0f288ad9b327bd124454f]\n[key.wx = 1eef95aef71f793afd50bb2604064d63e88bef7404a4d0e206446245ae2e7834]\n[key.wy = 00c96e86dd040f9794b63712d90e719576b8b92c406ab0f288ad9b327bd124454f]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041eef95aef71f793afd50bb2604064d63e88bef7404a4d0e206446245ae2e7834c96e86dd040f9794b63712d90e719576b8b92c406ab0f288ad9b327bd124454f]\n[sha = SHA-512]\n\n# tcId = 400\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ab40193f9b5d76c064a27940469d9fffd31d7c925fbe05c919491d3057d66cd2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a9734899c954e5b7adbca8f783428b5fbcbdfd3d2813f8d2f95b31a78ab107567667abf8c02ce4951bc59b2564130c27d7b64cdbc5cad95ca42d5bbb7cd4e793]\n[key.wx = 00a9734899c954e5b7adbca8f783428b5fbcbdfd3d2813f8d2f95b31a78ab10756]\n[key.wy = 7667abf8c02ce4951bc59b2564130c27d7b64cdbc5cad95ca42d5bbb7cd4e793]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a9734899c954e5b7adbca8f783428b5fbcbdfd3d2813f8d2f95b31a78ab107567667abf8c02ce4951bc59b2564130c27d7b64cdbc5cad95ca42d5bbb7cd4e793]\n[sha = SHA-512]\n\n# tcId = 401\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ca0234ebb5fdcb13ca0234ecffffffffcb0dadbbc7f549f8a26b4408d0dc8600\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 041ae51662331a1dbfab0751d30dfab2273a04a239e055a537b16ab595f9612396434f21c2bfe6555c9fc4a8e82dab1fa5631881b016e0831d9e1bbf5799fcf32e]\n[key.wx = 1ae51662331a1dbfab0751d30dfab2273a04a239e055a537b16ab595f9612396]\n[key.wy = 434f21c2bfe6555c9fc4a8e82dab1fa5631881b016e0831d9e1bbf5799fcf32e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041ae51662331a1dbfab0751d30dfab2273a04a239e055a537b16ab595f9612396434f21c2bfe6555c9fc4a8e82dab1fa5631881b016e0831d9e1bbf5799fcf32e]\n[sha = SHA-512]\n\n# tcId = 402\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff3ea367", + "7e082b9310572620ae19933a9e65b285598711c77298815ad3\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0453c90cdd8b0dadd21c44ad557b327f4dbf57144aaf06597deb3f94125206a6c14603475bd79b30e36340cd09b0b59e6cd46ce90150e9ffe5c8a0172b2c9898e3]\n[key.wx = 53c90cdd8b0dadd21c44ad557b327f4dbf57144aaf06597deb3f94125206a6c1]\n[key.wy = 4603475bd79b30e36340cd09b0b59e6cd46ce90150e9ffe5c8a0172b2c9898e3]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000453c90cdd8b0dadd21c44ad557b327f4dbf57144aaf06597deb3f94125206a6c14603475bd79b30e36340cd09b0b59e6cd46ce90150e9ffe5c8a0172b2c9898e3]\n[sha = SHA-512]\n\n# tcId = 403\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220266666663bbbbbbbe6666666666666665b37902e023fab7c8f055d86e5cc41f4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0433797539515c51f429967b8e36930d9fdda1edb13aecec9771f7cde5f6f2e74eba51d0b6456bb902dba1f3ea436f96ad2355da454dc9b32c503c4bc6cfd6d410]\n[key.wx = 33797539515c51f429967b8e36930d9fdda1edb13aecec9771f7cde5f6f2e74e]\n[key.wy = 00ba51d0b6456bb902dba1f3ea436f96ad2355da454dc9b32c503c4bc6cfd6d410]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000433797539515c51f429967b8e36930d9fdda1edb13aecec9771f7cde5f6f2e74eba51d0b6456bb902dba1f3ea436f96ad2355da454dc9b32c503c4bc6cfd6d410]\n[sha = SHA-512]\n\n# tcId = 404\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff36db6db7a492492492492492146c573f4c6dfc8d08a443e258970b09\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 040a8f5f1d5bbd2783fa7f37c86879057fb2fcf25383aafb86d03d6bafb41a17b3eaf6da715fe950349fd5736117b08e15e32cf1d2fdc003e510009f1b4ba1e648]\n[key.wx = 0a8f5f1d5bbd2783fa7f37c86879057fb2fcf25383aafb86d03d6bafb41a17b3]\n[key.wy = 00eaf6da715fe950349fd5736117b08e15e32cf1d2fdc003e510009f1b4ba1e648]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040a8f5f1d5bbd2783fa7f37c86879057fb2fcf25383aafb86d03d6bafb41a17b3eaf6da715fe950349fd5736117b08e15e32cf1d2fdc003e510009f1b4ba1e648]\n[sha = SHA-512]\n\n# tcId = 405\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff2aaaaaab7fffffffffffffffc815d0e60b3e596ecb1ad3a27cfd49c4\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 041dbc94e96c056b9d2cb6773bb24b69ed473851badf927a29955aff290ef3675a65e587561122aa8226facb95df08308cadf01c8351a1569176d917821113aa7c]\n[key.wx = 1dbc94e96c056b9d2cb6773bb24b69ed473851badf927a29955aff290ef3675a]\n[key.wy = 65e587561122aa8226facb95df08308cadf01c8351a1569176d917821113aa7c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041dbc94e96c056b9d2cb6773bb24b69ed473851badf927a29955aff290ef3675a65e587561122aa8226facb95df08308cadf01c8351a1569176d917821113aa7c]\n[sha = SHA-512]\n\n# tcId = 406\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffff55555555ffffffffffffffffd344a71e6f651458a27bdc81fd976e37\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04084ab885dbff7f12e6cdadb59d456e500797779425c7518c259c83718289e6e991c345d3a093e86670605bbc2ff4c69d0ed694fd433ec6b6ba1bf7d56c3e6b51]\n[key.wx = 084ab885dbff7f12e6cdadb59d456e500797779425c7518c259c83718289e6e9]\n[key.wy = 0091c345d3a093e86670605bbc2ff4c69d0ed694fd433ec6b6ba1bf7d56c3e6b51]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004084ab885dbff7f12e6cdadb59d456e500797779425c7518c259c83718289e6e991c345d3a093e86670605bbc2ff4c69d0ed694fd433ec6b6ba1bf7d56c3e6b51]\n[sha = SHA-512]\n\n# tcId = 407\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02203fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192aa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04003adfa4c620a207096cd18ee8fd2a90e20106cf824a0c63d6dec727a9fe7f509430d26bdd5f71e819d12b70069901461ae083cc809122d4fb86b5c475244e5a]\n[key.wx = 3adfa4c620a207096cd18ee8fd2a90e20106cf824a0c63d6dec727a9fe7f50]\n[key.wy = 009430d26bdd5f71e819d12b70069901461ae083cc809122d4fb86b5c475244e5a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004003adfa4c620a207096cd18ee8fd2a90e20106cf824a0c63d6dec727a9fe7f509430d26bdd5f71e819d12b70069901461ae083cc809122d4fb86b5c475244e5a]\n[sha = SHA-512]\n\n# tcId = 408\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02205d8ecd64a4eeba466815ddf3a4de9a8e6abd9c5db0a01eb80343553da648428f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c58848d5ca99b350bd7d10ab5ee6fcfe46623fdc03e9f828158f4d4cc08ad1ff83de4]\n[key.wx = 7c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c5884]\n[key.wy = 008d5ca99b350bd7d10ab5ee6fcfe46623fdc03e9f828158f4d4cc08ad1ff83de4]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c58848d5ca99b350bd7d10ab5ee6fcfe46623fdc03e9f828158f4d4cc08ad1ff83de4]\n[sha = SHA-512]\n\n# tcId = 409\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100b4cfa1996ec1d24cdbc8fa17fcabc3a5d4b2b36cf4b50a7b775ab78785710746\nflags = PointDuplication\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c588472a35663caf4282ff54a1190301b99dc023fc1617d7ea70b2b33f752e007c21b]\n[key.wx = 7c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c5884]\n[key.wy = 72a35663caf4282ff54a1190301b99dc023fc1617d7ea70b2b33f752e007c21b]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200047c98b2d47eb433c0d18e533cfbc8909d66f7b79d5925ccb17eccec9d105c588472a35663caf4282ff54a1190301b99dc023fc1617d7ea70b2b33f752e007c21b]\n[sha = SHA-512]\n\n# tcId = 410\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100b4cfa1996ec1d24cdbc8fa17fcabc3a5d4b2b36cf4b50a7b775ab78785710746\nflags = PointDuplication\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b7a90e21e7547d73267940033cea05042c50f7c9fa5eaeb471cd6260c685f2e38bb7309d0c3bab249faaf3e44179d6dd5302375c580fd0570a788c6be3680c67]\n[key.wx = 00b7a90e21e7547d73267940033cea05042c50f7c9fa5eaeb471cd6260c685f2e3]\n[key.wy = 008bb7309d0c3bab249faaf3e44179d6dd5302375c580fd0570a788c6be3680c67]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b7a90e21e7547d73267940033cea05042c50f7c9fa5eaeb471cd6260c685f2e38bb7309d0c3bab249faaf3e44179d6dd5302375c580fd0570a788c6be3680c67]\n[sha = SHA-512]\n\n# tcId = 411\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 30250201010220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 041550a173373b2d594374f0642cd73de06a045c09c7a4f388c731e8cd8971adfc9a3a9843583a86c0e1c62cbde67165f40a926b1028ba38aa3895e188ebbc7066]\n[key.wx = 1550a173373b2d594374f0642cd73de06a045c09c7a4f388c731e8cd8971adfc]\n[key.wy = 009a3a9843583a86c0e1c62cbde67165f40a926b1028ba38aa3895e188ebbc7066]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041550a173373b2d594374f0642cd73de06a045c09c7a4f388c731e8cd8971adfc9a3a9843583a86c0e1c62cbde67165f40a926b1028ba38aa3895e188ebbc7066]\n[sha = SHA-512]\n\n# tcId = 412\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3045022101000000000000000000000000000000000000000000000000000000000000000002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04313447778195d", + "aa1791a6530cd0697ae34bf9d8d225984394f72eef3505971110996a8fbdd1a70ecd64cb00b595afe1669bfef80d91756a62d84c1d83e0f22ab]\n[key.wx = 313447778195daa1791a6530cd0697ae34bf9d8d225984394f72eef350597111]\n[key.wy = 0996a8fbdd1a70ecd64cb00b595afe1669bfef80d91756a62d84c1d83e0f22ab]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004313447778195daa1791a6530cd0697ae34bf9d8d225984394f72eef3505971110996a8fbdd1a70ecd64cb00b595afe1669bfef80d91756a62d84c1d83e0f22ab]\n[sha = SHA-512]\n\n# tcId = 413\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c7002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044ada634941476ca63c2c5803eec2f33b2d17920f798a5be6275f5a54cd2e7639b1a04bead5c7314c427492db21b9544d81caa8159587e41aa023aa967f31aaa1]\n[key.wx = 4ada634941476ca63c2c5803eec2f33b2d17920f798a5be6275f5a54cd2e7639]\n[key.wy = 00b1a04bead5c7314c427492db21b9544d81caa8159587e41aa023aa967f31aaa1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044ada634941476ca63c2c5803eec2f33b2d17920f798a5be6275f5a54cd2e7639b1a04bead5c7314c427492db21b9544d81caa8159587e41aa023aa967f31aaa1]\n[sha = SHA-512]\n\n# tcId = 414\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc476699780220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aacce093270fa59ad412b5459a08e490743b97086c781ac3c8d54030b41a31193bece4956172d56befb7011d684e772905e48d2115444a75ac7a325a3f25f4b1]\n[key.wx = 00aacce093270fa59ad412b5459a08e490743b97086c781ac3c8d54030b41a3119]\n[key.wy = 3bece4956172d56befb7011d684e772905e48d2115444a75ac7a325a3f25f4b1]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004aacce093270fa59ad412b5459a08e490743b97086c781ac3c8d54030b41a31193bece4956172d56befb7011d684e772905e48d2115444a75ac7a325a3f25f4b1]\n[sha = SHA-512]\n\n# tcId = 415\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f62b8d7feeff5a847ab79212269e55e62fa87ebe930821747b57a511a5ea99f0439ee057bb27898582a683c3fdb7f95404d41d42f276803751a316eb3aab7ebf]\n[key.wx = 00f62b8d7feeff5a847ab79212269e55e62fa87ebe930821747b57a511a5ea99f0]\n[key.wy = 439ee057bb27898582a683c3fdb7f95404d41d42f276803751a316eb3aab7ebf]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f62b8d7feeff5a847ab79212269e55e62fa87ebe930821747b57a511a5ea99f0439ee057bb27898582a683c3fdb7f95404d41d42f276803751a316eb3aab7ebf]\n[sha = SHA-512]\n\n# tcId = 416\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044baa07ff6e7bb9aa223d1c61932005fe98fe78b787fdab4bd3619bc8833072a2bcacd63802c56af82607953e72a0f5d3c23bd265544e020951824ea485555d33]\n[key.wx = 4baa07ff6e7bb9aa223d1c61932005fe98fe78b787fdab4bd3619bc8833072a2]\n[key.wy = 00bcacd63802c56af82607953e72a0f5d3c23bd265544e020951824ea485555d33]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044baa07ff6e7bb9aa223d1c61932005fe98fe78b787fdab4bd3619bc8833072a2bcacd63802c56af82607953e72a0f5d3c23bd265544e020951824ea485555d33]\n[sha = SHA-512]\n\n# tcId = 417\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997802203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 040c753ed1ba92f766800fdd0ae1c0d7f8f4cd8305fd803d8bca881397b5937e2db568509b1faf3cf251de6db9810e8b8caed235da10eeddbed62775c8e5c9460a]\n[key.wx = 0c753ed1ba92f766800fdd0ae1c0d7f8f4cd8305fd803d8bca881397b5937e2d]\n[key.wy = 00b568509b1faf3cf251de6db9810e8b8caed235da10eeddbed62775c8e5c9460a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040c753ed1ba92f766800fdd0ae1c0d7f8f4cd8305fd803d8bca881397b5937e2db568509b1faf3cf251de6db9810e8b8caed235da10eeddbed62775c8e5c9460a]\n[sha = SHA-512]\n\n# tcId = 418\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04030fdcae6541f22c5bab254e4f1a285c507d1cefea03bf90cf19daf3cb62df695ff2c94d588f2c2b2b0a12bebc011bcee4fa1b54506ec07d0a29d24a0891193c]\n[key.wx = 030fdcae6541f22c5bab254e4f1a285c507d1cefea03bf90cf19daf3cb62df69]\n[key.wy = 5ff2c94d588f2c2b2b0a12bebc011bcee4fa1b54506ec07d0a29d24a0891193c]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004030fdcae6541f22c5bab254e4f1a285c507d1cefea03bf90cf19daf3cb62df695ff2c94d588f2c2b2b0a12bebc011bcee4fa1b54506ec07d0a29d24a0891193c]\n[sha = SHA-512]\n\n# tcId = 419\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc47669978022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0403fc621eaf90c23d8f9fa125d2c59b8728ebccb30ca3e3db879a06ca90f20cdcae58d3f0c6aef0e805be10ea54e23cf6f0397f9addddc2b09088855316b0ef44]\n[key.wx = 03fc621eaf90c23d8f9fa125d2c59b8728ebccb30ca3e3db879a06ca90f20cdc]\n[key.wy = 00ae58d3f0c6aef0e805be10ea54e23cf6f0397f9addddc2b09088855316b0ef44]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000403fc621eaf90c23d8f9fa125d2c59b8728ebccb30ca3e3db879a06ca90f20cdcae58d3f0c6aef0e805be10ea54e23cf6f0397f9addddc2b09088855316b0ef44]\n[sha = SHA-512]\n\n# tcId = 420\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2960220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0470f2ce24dc62923bb09cc92d74329bbd0d2e6b0e354c0be2383d24acdccb9e4cd42d1f973466f5e5462a939084a294ebfc7a45629c70ee5def46de9536ea7bf7]\n[key.wx = 70f2ce24dc62923bb09cc92d74329bbd0d2e6b0e354c0be2383d24acdccb9e4c]\n[key.wy = 00d42d1f973466f5e5462a939084a294ebfc7a45629c70ee5def46de9536ea7bf7]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000470f2ce24dc62923bb09cc92d74329bbd0d2e6b0e354c0be2383d24acdccb9e4cd42d1f973466f5e5462a939084a294ebfc7a45629c70ee5def46de9536ea7bf7]\n[sha = SHA-512]\n\n# tcId = 421\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100b6db6db6249249254924924924924924625bd7a09bec4ca81bcdd9f8fd6b63cc\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04732b8ac0c30fe44307431235271cb5d6e5f677a19ce3f058b939a7bf19349d3c858cc735af8577468275847cf5ec19972e6c20738276e2708b23c595bfc4433d]\n[key.wx = 732b8ac0c30fe44307431235271cb5d6e5f677a19ce3f058b939a7bf19349d3c]\n[key.wy = 00858cc735af8577468275847cf5ec19972e6c20738276e2708b23c595bfc4433d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004732b8ac0c30fe44307431235271cb5d6e5f677a19ce3f058b939a7bf19349d3c858cc735af8577468275847cf5ec19972e6c20738276e2708b23c595bfc4433d]\n[sha = SHA-512]\n\n# tcId = 422\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304502206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022100cccccccc00000000cccccccccccccccc971f2ef152794b9d8fc7d568c9e8eaa7\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0447aff9501825a166782bb58a5b459006eacdbce5e5323addad34ec1b6444cdce9199c3", + "1502ad4277c73ddd0c807b72634c45762404837d9814a5d4b5a7c3f398]\n[key.wx = 47aff9501825a166782bb58a5b459006eacdbce5e5323addad34ec1b6444cdce]\n[key.wy = 009199c31502ad4277c73ddd0c807b72634c45762404837d9814a5d4b5a7c3f398]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000447aff9501825a166782bb58a5b459006eacdbce5e5323addad34ec1b6444cdce9199c31502ad4277c73ddd0c807b72634c45762404837d9814a5d4b5a7c3f398]\n[sha = SHA-512]\n\n# tcId = 423\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29602203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aaa\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aed8eeff77644bf83b9222f8f57173fa8217ec7e0763ee7d7171fb6092fba5c06486a86d94f48834ba5adbaf349687f9cee400389642b828e68207b147ca2c46]\n[key.wx = 00aed8eeff77644bf83b9222f8f57173fa8217ec7e0763ee7d7171fb6092fba5c0]\n[key.wy = 6486a86d94f48834ba5adbaf349687f9cee400389642b828e68207b147ca2c46]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004aed8eeff77644bf83b9222f8f57173fa8217ec7e0763ee7d7171fb6092fba5c06486a86d94f48834ba5adbaf349687f9cee400389642b828e68207b147ca2c46]\n[sha = SHA-512]\n\n# tcId = 424\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022049249248db6db6dbb6db6db6db6db6db5a8b230d0b2b51dcd7ebf0c9fef7c185\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f7c54a585a904300d05b53ef3b854e71999a344b89adc0caaa28e254db9bc7c7c161a79f38ff446051303577e40638fb020329940a63c241bb32c2205eb57b7d]\n[key.wx = 00f7c54a585a904300d05b53ef3b854e71999a344b89adc0caaa28e254db9bc7c7]\n[key.wy = 00c161a79f38ff446051303577e40638fb020329940a63c241bb32c2205eb57b7d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f7c54a585a904300d05b53ef3b854e71999a344b89adc0caaa28e254db9bc7c7c161a79f38ff446051303577e40638fb020329940a63c241bb32c2205eb57b7d]\n[sha = SHA-512]\n\n# tcId = 425\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296022016a4502e2781e11ac82cbc9d1edd8c981584d13e18411e2f6e0478c34416e3bb\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]\n[sha = SHA-512]\n\n# tcId = 426\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0232102810220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 427\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bc07ff031506dc74a75086a43252fb43731975a16dca6b025e867412d94222d00220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]\n[key.wy = 00b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]\n[sha = SHA-512]\n\n# tcId = 428\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3044022043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b0232102810220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n# tcId = 429\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3045022100bc07ff031506dc74a75086a43252fb43731975a16dca6b025e867412d94222d00220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[key.wx = 04aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad5]\n[key.wy = 0087d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]\n[sha = SHA-512]\n\n# tcId = 430\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 30440220093f3825c0cf820cced816a3a67446c85606a6d529e43857643fccc11e1f705f0220769782888c63058630f97a5891c8700e82979e4f233586bfc5042fa73cb70a4e\n\n# tcId = 431\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 3046022100e8564e3e515a09f9f35258442b99e162d27e10975fcb7963d3c26319dc093f84022100c3af01ed0fd0148749ca323364846c862fc6f4beb682b7ead3b2d89b9da8bad4\n\n# tcId = 432\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 304502201412254f8c1dd2742a00ddee5192e7baa288741026871f3057ad9f983b5ab114022100bcdf878fa156f37040922698ad6fb6928601ddc26c40448ea660e67c25eda090\n\n# tcId = 433\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 30450221009e0676048381839bb0a4703a0ae38facfe1e2c61bd25950c896aa975cd6ec86902206ea0cedf96f11fff0e746941183492f4d17272c92449afd20e34041a6894ee82\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[key.wx = 4f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000]\n[key.wy = 00ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]\n[sha = SHA-512]\n\n# tcId = 434\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30440220554482404173a5582884b0d168a32ef8033d7eb780936c390e8eedf720c7f56402200a15413f9ed0d454b92ab901119e7251a4d444ba1421ba639fa57e0d8cf6b313\n\n# tcId = 435\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304502200b1d838dd54a462745e2c8d5f32637f26fb16dde20a385e45f8a20a8a1f8370e022100ae855e0a10ef087075fda0ed84e2bc5786a681172ea9834e53351316df332bbd\n\n# tcId = 436\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100af89e4f2b03e5d1f0352e258ef71493040c17d70c36cfd044128302df2ed5e4a0220420f04148c3e6f06561bd448362d6c6fa3f9aeeb7e42843b4674e7ddfd0ba901\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 0084fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]\n[sha = SHA-512]\n\n# tcId = 437\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 304402206c1581f1485ccc4e657606fa1a38cf227e3870dc9f41e26b84e28483635e321b02201b3e3c22af23e919b30330f8710f6ef3760c0e2237a9a9f5cf30a1d9f5bbd464\n\n# tcId = 438\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100dc83bf97ca28db0e04104a16fe3de694311a6cd9f230a300504ae71d8ec755", + "b1022064a83af0ab3e6037003a1f4240dffd8a342afdee50604ed1afa416fd009e4668\n\n# tcId = 439\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30450220575b70b4375684291b95d81e3c820ed9bde9e5b7343036e4951f3c46894a6d9d022100f10d716efbfeba953701b603fc9ef6ff6e47edef38c9eeef2d55e6486bc4d6e6\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]\n[key.wy = 7b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]\n[sha = SHA-512]\n\n# tcId = 440\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 30450221008d4f113189dfd3d3239e331f76d3fca9cef86fcd5dc9b4ab2ca38aeba56c178b022078389c3cf11dcff6d6c7f5efd277d480060691144b568a6f090c8902557bfc61\n\n# tcId = 441\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100834d10ec2d2d50eeebfecd6328f03fafbb488fc043c362cbc67880ec0ebd04b302210094c026feaf6e68759146fe5b6fd52eaa3c3c5552d83719d2cb900615e2a634db\n\n# tcId = 442\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 304502206894de495e7bb5566807d475d96a0d414a94f4f02c3ab7c2edc2916deafc1e1f022100a603642c20fabc07182867fcc6923d35be23ad3f97a5f93c6ec5b9cce8239569\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[key.wx = 2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffff]\n[key.wy = 00a01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]\n[sha = SHA-512]\n\n# tcId = 443\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e500c086fedd59e090ce7bfb615751ed9abe4c09b839ee8f05320245b9796f3e022100807b1d0638c86ef6113fff0d63497800e1b848b5a303a54c748e45ca8f35d7d7\n\n# tcId = 444\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100b922c1abe1a8309c0acf90e586c6de8c33e37057673390a97ff098f71680b32b022100f86d92b051b7923d82555c205e21b54eab869766c716209648c3e6cc2629057d\n\n# tcId = 445\n# x-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100823c37e46c74ec8497d89245fde3bf53ddb462c00d840e983dcb1b72bbf8bf27022100c4552f2425d14f0f0fa988778403d60a58962e7c548715af83b2edabbb24a49f\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[key.wx = 00fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f5]\n[key.wy = 5a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]\n[sha = SHA-512]\n\n# tcId = 446\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30450220577a08a95db6dcda9985109942d3786630f640190f920b95bd4d5d84e0f163ef022100d762286e92925973fd38b67ef944a99c0ec5b499b7175cbb4369e053c1fcbb10\n\n# tcId = 447\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402207ba458cfe952326922c7aa2854bdc673ce3daaf65d464dfb9f700701503056b102200df8821c92d20546fa741fb426bf56728a53182691964225c9b380b56b22ee6d\n\n# tcId = 448\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402205cd60c3b021b4be116f06f1d447f65e458329a8bbae1d9b5977d18cf5618486102204c635cd7aa9aebb5716d5ae09e57f8c481a741a029b40f71ec47344ef883e86e\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[key.wx = 03fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e]\n[key.wy = 1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]\n[sha = SHA-512]\n\n# tcId = 449\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402204b50e1e8cf830e04c17e7472caf60da8150ffa568e2c64498cc972a379e542e502202e3adaa5afab89cca91693609555f40543578852cde29c21cb037c0c0b78478e\n\n# tcId = 450\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304402205aea930c7d8fffcd5c6df2c9430ef76f8b5ed58a8b9c95847288abf8f09a1ac202207ddfef7688a6053ce4eeeeefd6f1a9d71381b7548925f6682aa0a9d05cf5a3a3\n\n# tcId = 451\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 304602210098b092c2d14b5b14a23e9368e0ce1be744dfae9f9a5cdaba51e7872099df96f202210090d3e4f87bd7bc94589f8150b6b01045cd8759a00af78b24d7de771887610df5\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 1352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]\n[sha = SHA-512]\n\n# tcId = 452\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30460221009e95f2856a9fff9a172b07817c8c60fe185cd3ce9582678f8cc4b02bc444621a022100c54ca51d8117d904f0d3773911cb2792348fae21c2da7dad25f990d122376e4c\n\n# tcId = 453\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3046022100e77df8f9782696344c33de29ebdc9f8d3fcf463d950cdbe256fd4fc2fd44877e02210087028850c962cf2fb450ffe6b983981e499dc498fbd654fa454c9e07c8cb5ca8\n\n# tcId = 454\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bd2dd6f5026d2b5ad7ead74bdf52b8cbcabc08facee0a1c8584658a85ed0c5dc02203e8543e819bdae47d872e29a85ba38addf3eaeaad8786d79c3fb027f6f1ff4bf\n\n[key.curve = secp256r1]\n[key.keySize = 256]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[key.wx = 00bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]\n[key.wy = 00fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]\n[sha = SHA-512]\n\n# tcId = 455\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100bd5c0294acc28c15c5d1ebc7274c9ca21a081c8a67da430a34a7fff1a564fabb02207ec103a2385b4ff38b47d306434e9091de24dc9f1a25967ee06f8a0a53ac0181\n\n# tcId = 456\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 304402203c7dbfb43dd80379ee2c23ad5472873a22c8a0179ac8f381ad9e0f193231dc1f02207cf8e07530ade503b3d43a84b75a2a76fc40763daed4e9734e745c58c9ae72d3\n\n# tcId = 457\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3045022100b38ca4dac6d949be5e5f969860269f0eedff2eb92f45bfc02470300cc96dd52602201c7b22992bb1", + "3749cc0c5bc25330a17446e40db734203f9035172725fc70f863\n\n", }; -static const size_t kLen71 = 174442; +static const size_t kLen104 = 168183; -static const char *kData71[] = { - "# Imported from Wycheproof's ecdsa_secp384r1_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]\n[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[sha = SHA-384]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702301840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca03995ca30240e09513805bf6209b58ac7aa9cff54eecd82b9f1\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# Some implementations of ECDSA and DSA incorrectly encode r and s by not\n# including leading zeros in the ASN encoding of integers when necessary. Hence,\n# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings\n# assuming that the signature is otherwise valid.\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 4\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 308165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 306602813012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702813100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 7\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30820065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30670282003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 9\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70282003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3065023112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3065022f12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023200e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 15\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 16\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30850100000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306a0285010000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 18\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70285010000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 19\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3089010000000000000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306e028901000000000000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2a", - "bec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 21\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306e023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028901000000000000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 22\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306902847fffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 24\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702847fffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 25\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30690284ffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 27\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70284ffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 28\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a0285ffffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 30\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70285ffffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 31\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306d0288ffffffffffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 33\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70288ffffffffffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 34\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 306502ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 36\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702ff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 37\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3065028012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 39\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 40\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 41\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 42\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30670000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 45\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820500\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a4981773065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306925003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a2235498177023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 50\n# includin", - "g garbage\nmsg = 313233343030\nresult = invalid\nsig = 306922342500023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306d2232023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70004deadbeef023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72236498177023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d722352500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72233023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306daa00bb00cd003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306baa02aabb3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306d2238aa00bb00cd00023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306b2236aa02aabb023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72239aa00bb00cd00023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 60\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306b023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72237aa02aabb023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 61\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 62\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30803065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30692280023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 64\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 65\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30803165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30692280033012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 67\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280033100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 68\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3265023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 73\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 74\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 75\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 306930010230643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 76\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f\n\n# tcId = 77\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 30643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 78\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit", - " signature malleability.\n\n# tcId = 79\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8200\n\n# tcId = 80\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8205000000\n\n# tcId = 81\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82060811220000\n\n# tcId = 82\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000fe02beef\n\n# tcId = 83\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820002beef\n\n# tcId = 84\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30673000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 85\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f823000\n\n# tcId = 86\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 87\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3032023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7\n\n# tcId = 88\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 308198023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 89\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3033023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 303402023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3033023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023212b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023300e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30670232000012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70233000000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 96\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023212b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023300e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820500\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30350281023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70281\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30350500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70500\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065013012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065033012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065043012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065ff3012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc", - "45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7013100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7033100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7043100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7ff3100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30350200023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70200\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30692234020112022fb30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d722350201000230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023010b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023102e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c54857023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f02\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3064022f12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3064022fb30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f\n\n# tcId = 124\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30660231ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70232ff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 127\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3036090180023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 128\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3035023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3035023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 306602310112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19a25617aad7485e6312a8589714f647acf7a94cffbe8a724a023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe1a138f7ca6eeda02a462743d328394f8b71dd11a2a25001f64023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30650230ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e6250d35d71ceecf7c4571b51b33ba5fcdf542cc6b0e3ab729023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e5ec7083591125fd5b9d8bc2cd7c6b0748e22ee5d5daffe09c023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231feed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e65da9e85528b7a19ced57a768eb09b8530856b30041758db6023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 306602310112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc63", - "1991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e6250d35d71ceecf7c4571b51b33ba5fcdf542cc6b0e3ab729023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023101e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc5f8fc6adfda650a86aa74b95adbd6874b3cd8dde6cc0798f5\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc66a35cfdbf1f6aec7fa409df64a7538556300ab11327d460f\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70231ff1840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca039ce66e2a219d22358ada554576cda202fb0133b8400bd907e\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70231fe1840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca03a07039520259af579558b46a5242978b4c327221933f8670b\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023101e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702301840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca039ce66e2a219d22358ada554576cda202fb0133b8400bd907e\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\n", - "sig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529720201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a7", - "7aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529740201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case v", - "alues for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000001000000000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 216\n# Edge case for Shamir multiplication\nmsg = 3133323237\nresult = valid\nsig = 3066023100ac042e13ab83394692019170707bc21dd3d7b8d233d11b651757085bdd5767eabbb85322984f14437335de0cdf565684023100bd770d3ee4beadbabe7ca46e8c4702783435228d46e2dd360e322fe61c86926fa49c8116ec940f72ac8c30d9beb3e12f\n\n# tcId = 217\n# special case hash\nmsg = 31373530353531383135\nresult = valid\nsig = 3066023100d3298a0193c4316b34e3833ff764a82cff4ef57b5dd79ed6237b51ff76ceab13bf92131f41030515b7e012d2ba857830023100bfc7518d2ad20ed5f58f3be79720f1866f7a23b3bd1bf913d3916819d008497a071046311d3c2fd05fc284c964a39617\n\n# tcId = 218\n# special case hash\nmsg = 3130333633303731\nresult = valid\nsig = 3065023100e14f41a5fc83aa4725a9ea60ab5b0b9de27f519af4b557a601f1fee0243f8eee5180f8c531414f3473f4457430cb7a2602301047ed2bf1f98e3ce93e8fdbdc63cc79f238998fee74e1bb6cd708694950bbffe3945066064da043f04d7083d0a596ec\n\n# tcId = 219\n# special case hash\nmsg = 32333632343231333231\nresult = valid\nsig = 3066023100b7c8b5cf631a96ad908d6a8c8d0e0a35fcc22a5a36050230b665932764ae45bd84cb87ebba8e444abd89e4483fc9c4a8023100a11636c095aa9bc69cf24b50a0a9e5377d0ffbba4fab5433159f006ab4563d55e918493020a19691574e4d1e66e3975e\n\n# tcId = 220\n# special case hash\nmsg = 34353838303134363536\nresult = valid\nsig = 306402304a7df2df6a32d59b6bfed54f032c3d6f3acd3ac4063704099cd162ab3908e8eeba4e973ee75b5e285dd572062338fe58023035365be327e2463dc759951c5c0be5e3d094cb706912fdf7d26b15d4a5c42ffebeca5ae73a1823f5e65d571b4ccf1a82\n\n# tcId = 221\n# special case hash\nmsg = 32313436363035363432\nresult = valid\nsig = 30660231009ad363a1bbc67c57c82a378e988cc083cc91f8b32739ec647c0cb348fb5c86472015131a7d9083bf4740af3351755195023100d310dc1509f8c00281efe571768d488027ea760fe32971f6cb7b57cdf90621b7d0086e26443d3761df7aa3a4eccc6c58\n\n# tcId = 222\n# special case hash\nmsg = 333335333030383230\nresult = valid\nsig = 306502310095078af5c2ac230239557f5fcee2e712a7034e95437a9b34c1692a81270edcf8ddd5aba1138a42012663e5f81c9beae2023040ee510a0cceb8518ad4f618599164da0f3ba75eceeac216216ec62bcceae8dc98b5e35b2e7ed47c4b8ebacfe84a74e6\n\n# tcId = 223\n# special case hash\nmsg = 36333936363033363331\nresult = valid\nsig = 3066023100a538076362043de54864464c14a6c1c3a478443726c1309a36b9e9ea1592b40c3f3f90d195bd298004a71e8f285e093a023100d74f97ef38468515a8c927a450275c14dc16ddbdd92b3a5cae804be20d29c682129247d2e01d37dabe38ffb74808a8b7\n\n# tcId = 224\n# special case hash\nmsg = 33333931363630373935\nresult = valid\nsig = 3065023100bbe835113f8ea4dc469f0283af6603f3d7a3a222b3ab5a93db56007ef2dc07c97988fc7b8b833057fa3fbf97413b6c150230737c316320b61002c2acb184d82e60e46bd2129a9bbf563c80da423121c161decd363518b260aaacf3734c1ef9faa925\n\n# tcId = 225\n# special case hash\nmsg = 31343436393735393634\nresult = valid\nsig = 30650230679c3640ad8ffe9577d9b59b18ff5598dbfe61122bbab8238d268907c989cd94dc7f601d17486af93f6d18624aa524a3023100e84dd195502bdcdd77b7f51d8c1ea789006905844a0e185474af1a583bab564ee23be0bc49500390dceb3d3948f06730\n\n# tcId = 226\n# special case hash\nmsg = 35313539343738363431\nresult = valid\nsig = 3066023100f6f1afe6febce799cc9b754279f2499f3825c3e789accef46d3f068e2b6781fd50669e80c3c7293a5c0c0af48e068e35023100f59cc8c2222ed63b4553f8149ebecc43b866719b294ef0832a12b3e3dbc825eeab68b5779625b10ae5541412ec295354\n\n# tcId = 227\n# special case hash\nmsg = 353234313739323333", - "31\nresult = valid\nsig = 3065023100f46496f6d473f3c091a68aaa3749220c840061cd4f888613ccfeac0aa0411b451edbd4facbe38d2dd9d6d0d0d255ed34023000c3a74fa6666f58c4798f30c3779813e5c6d08ac31a792c2d0f9cb708733f26ad6bf3b1e46815ae536aa151680bdee2\n\n# tcId = 228\n# special case hash\nmsg = 31313437323930323034\nresult = valid\nsig = 3066023100df8b8e4cb1bc4ec69cb1472fa5a81c36642ed47fc6ce560033c4f7cb0bc8459b5788e34caa7d96e6071188e449f0207a0231008b8ee0177962a489938f3feffae55729d9d446fe438c7cb91ea5f632c80aa72a43b9b04e6de7ff34f76f4425107fd697\n\n# tcId = 229\n# special case hash\nmsg = 3130383738373235363435\nresult = valid\nsig = 30660231008bb6a8ecdc8b483ad7b9c94bb39f63b5fc1378efe8c0204a74631dded7159643821419af33863b0414bd87ecf73ba3fb0231008928449f2d6db2b2c65d44d98beb77eeadcbda83ff33e57eb183e1fc29ad86f0ba29ee66e750e8170ccc434cf70ae199\n\n# tcId = 230\n# special case hash\nmsg = 37333433333036353633\nresult = valid\nsig = 3065023100e3832877c80c4ed439d8eadcf615c0286ff54943e3ae2f66a3b9f886245fea470e6d5812cef80c23e4f568d0215a3bfc02303177a7dbf0ab8f8f5fc1d01b19d6a5e89642899f369dfe213b7cc55d8eaf21dd2885efce52b5959c1f06b7cac5773e5b\n\n# tcId = 231\n# special case hash\nmsg = 393734343630393738\nresult = valid\nsig = 306502306275738f0880023286a9b6f28ea0a9779e8d644c3dec48293c64f1566b34e15c7119bd9d02fa2357774cabc9e53ef7e6023100d2f0a52b1016082bd5517609ee81c0764dc38a8f32d9a5074e717ee1d832f9ea0e4c6b100b1fd5e7f4bc7468c79d3933\n\n# tcId = 232\n# special case hash\nmsg = 33323237303836383339\nresult = valid\nsig = 3066023100d316fe5168cf13753c8c3bbef83869a6703dc0d5afa82af49c88ff3555660f57919a6f36e84451c3e8e5783e3b83fe3b023100995f08c8fec7cd82ce27e7509393f5a3803a48fe255fcb160321c6e1890eb36e37bcda158f0fa6899e7d107e52de8c3c\n\n# tcId = 233\n# special case hash\nmsg = 323332393736343130\nresult = valid\nsig = 306402300b13b8fd10fa7b42169137588ad3f557539a4e9206f3a1f1fe9202b0690defded2be18147f5b2da9285c0e7349735ea302300478ad317b22a247bf9334719b4c8ee84acf134515db77e6141c75d08961e1e51eaca29836744103de0f6a4c798d3eeb\n\n# tcId = 234\n# special case hash\nmsg = 3934303437333831\nresult = valid\nsig = 3065023015804429bcb5277d4f0af73bd54c8a177499a7b64f18afc566c3ce7096bdc6c275e38548edcfa0b78dd7f57b6f393e49023100d5951f243e65b82ba5c0c7552d33b11f1e90fde0c3fd014aac1bb27db2aaf09b667c8b247c4cdd5b0723fba83b4f999e\n\n# tcId = 235\n# special case hash\nmsg = 33323230353639313233\nresult = valid\nsig = 30650230359247c95776bb17492b7bf827f5f330fa9f9de7cc10441a1479c81776ce36cdc6a13c5f5149c4e39147a196bb02ed34023100f6ed9252a73de48516f4eabab6368fbff6875128af4e1226d54db558bd76eec369cc9b285bc196d512e531f84864d33f\n\n# tcId = 236\n# special case hash\nmsg = 343134303533393934\nresult = valid\nsig = 3065023100a557d1f63a2094f683429ecb35a6533bac897682775c0051e111eed6e076c48867cae005c5e0803800b050311e381cd602302a2f871efcf03cf1c8f509e076aaa2a76f1ea78d1c64804ea5b063b0324b8e98eb5825d04370106020ee15805dbedf81\n\n# tcId = 237\n# special case hash\nmsg = 31393531353638363439\nresult = valid\nsig = 3065023100f22bf91169b4aec84ca84041cb826f7dfc6f33d973f3c72433b8a0ca203aac93f7eed62be9bea01706402d5b5d3b0e6502307841d3bc34aa47e813a55c25203c5ec2342d838d5b4638c2705dcf4bac9c24f765b5d4c28fa3c7fda7a38ed5048c7de3\n\n# tcId = 238\n# special case hash\nmsg = 35393539303731363335\nresult = valid\nsig = 30660231009c196e39a2d61a3c2565f5932f357e242892737e9adfc86c6609f291e5e6fdbb23029ff915a032b0c5390ba9d15f203e023100d721e28e5269d7813e8a9aed53a37e652fec1560ca61f28f55ab4c262cc6214eee8d3c4c2ba9d1ba0ba19e5e3c7484a7\n\n# tcId = 239\n# special case hash\nmsg = 323135333436393533\nresult = valid\nsig = 30660231008ba1e9dec14d300b0e250ea0bcd4419c3d9559622cc7b8375bd73f7d70133242e3d5bf70bc782808734654bacd12daea023100d893d3970f72ccab35555ae91ebcfed3c5bfc5d39181071bc06ba382587a695e02ed482f1a74fe309a399eaee5f5bc52\n\n# tcId = 240\n# special case hash\nmsg = 34383037313039383330\nresult = valid\nsig = 306402302f521d9d83e1bff8d25255a9bdca90e15d78a8c9ea7885b884024a40de9a315bed7f746b5da4ce96b070208e9ae0cfa502304185c6f4225b8c255a4d31abb5c9b6c686a6ee50a8eb7103aaef90245a4722fc8996f266f262109c3b5957ba73289a20\n\n# tcId = 241\n# special case hash\nmsg = 343932393339363930\nresult = valid\nsig = 3065023100d4900f54c1bc841d38eb2f13e0bafbb12b5667393b07102db90639744f54d78960b344c8fbfbf3540b38d00278e177aa02303a16eff0399700009b6949f3f506c543495bf8e0f3a34feb8edd63648747b531adc4e75398e4da8083b88b34c2fb97a8\n\n# tcId = 242\n# special case hash\nmsg = 32313132333535393630\nresult = valid\nsig = 3065023100c0169e2b8b97eeb0650e27653f2e473b97a06e1e888b07c1018c730cabfdeeec4a626c3edee0767d44e8ed07080c2ac4023013f46475f955f9701928067e3982d4ba5a58a379a66f91b74fad9ac8aee30086be6f41c9c2d8fb80e0924dedbe67e968\n\n# tcId = 243\n# special case hash\nmsg = 31323339323735373034\nresult = valid\nsig = 306402302e868871ea8b27a8a746882152051f2b146af4ac9d8473b4b6852f80a1d0c7cab57489aa43f89024388aec0605b0263702306d8c89eed8a5a6252c5cead1c55391c6743d881609e3db24d70ead80a663570020798fbf41d4c624fcb1ce36c536fe38\n\n# tcId = 244\n# special case hash\nmsg = 32303831313838373638\nresult = valid\nsig = 3065023100abe6a51179ee87c957805ecad5ccebca30c6e3a3e6dbe4eb4d130b71df2bf590b9d67c8f49e81bf90ce0909d3c2dab4c02307110582fab495b21bd9dda064fbd7acc09d0544dcf7699be35ad16207ffa10e8904f9241a709487ba2ba7e34430b81c3\n\n# tcId = 245\n# special case hash\nmsg = 343534363038393633\nresult = valid\nsig = 3064023050252c19e60e4120b7c28b2c2e0a588e5d107518cd61e5c7999c6d465ea134f752322d8b83f5988fcdc62bd9adb36ccd0230193899352491dabfe4fc942e14ddacb200673729d61602cc0baf5732d262f36e5279865a810ce2f977f57686a0d0137a\n\n# tcId = 246\n# special case hash\nmsg = 31333837363837313131\nresult = valid\nsig = 3066023100eb725fdd539d7de8ea02fac8db6ec464f40c272a63e6b2718c4e0266bf1235dae330f747a6052f4319ecbe7bdade9bd0023100ae84507648ba2d1944bb67722ccd2cb94b92b59e89a1ae698c668bb57f481c42b216c23da4b1d8c0e502ef97fda05ad0\n\n# tcId = 247\n# special case hash\nmsg = 32303331333831383735\nresult = valid\nsig = 3064023025aa56fcbd92f2cf53bddbaa0db537de5843290731c1dd78036fcbded4a8f7187ddfed9f5ca9d98ea7b12d24b8d29d570230028f68372d66164810bf79c30a191116d496fe32314605dc1668289425fb3a15d7532dde1052a49a35866c147abde1d9\n\n# tcId = 248\n# special case hash\nmsg = 323535333538333333\nresult = valid\nsig = 3065023054bf7adc8548e7cae270e7b097f16b5e315158d21b0e652ce1cfe4b33126ba4a65bf227b4cddcaf22d33d82478937b20023100bfc1b8f1d02846a42f31e1bd10ba334065459f712a3bbc76005d6c6488889f88c0983f4834d0bf2249dbf0a6db760701\n\n# tcId = 249\n# special case hash\nmsg = 34363138383431343732\nresult = valid\nsig = 3066023100d3bb29ac0bd1f6058a5197f766d6ea3216c572ded62af46318c8c7f9547bb246553654279d69989d9af5ef4ccacf64da023100e10281122c2112a2a5a9d87ac58f64fb07c996a2d09292119e8f24d5499b2e8524ebd0570097f6cc7f9c26094a35c857\n\n# tcId = 250\n# special case hash\nmsg = 31303039323435383534\nresult = valid\nsig = 3066023100bc32e85e3112472408f9324586e525325128a38313c34b79700cb0a3f7262a90a1fcc40eef1f1a3884032a7a21810e0a023100c02f52541360358107a13dbea31f83d80397710901734b7adb78b1fc904454a28a378514ccef80ecc70c1d8e55f11311\n\n# tcId = 251\n# special case hash\nmsg = 32373536343636353238\nresult = valid\nsig = 3066023100f04b9e17c71d2d2133ea380d71b6b82c8a8e3332703e9d535b2c2bca9b0ad586d176a6049afa35edd9722edb5c33daa3023100bd44d4a6263380ca6f22e76c26d5f70f41f4d7cae7d4b9c1b8dc2ba5298d9d12408b04614e2f3796cc19c950c8c88a10\n\n# tcId = 252\n# special case hash\nmsg = 313139363937313032\nresult = valid\nsig = 3065023100c8807351d8e261338e750cb9a52f4be4470b63f6f181cbe0e81d43b60824ba4be1bba42b1783897a0d72b0614018b02f023052e3a598c8be982127e961eed2b04f21c86df4ebcab0d955a7c66ec7f818898798ee75367a85022276b912c0a072bff7\n\n# tcId = 253\n# special case hash\nmsg = 323333313432313732\nresult = valid\nsig = 306402306152841b6fb460546eeb4158a3e5ffa54f51aa6a208987be899b706055cd59d8ec7c01f4634254fe050e1d4ec525a173023073f0c5f13640d892c28f701428e8fbfb736b6478bbd972c8c684977556ed599a70d313e06b126080e13068d56e1c10be\n\n# tcId = 254\n# special case hash\nmsg = 31363733343831383938\nresult = valid\nsig = 3066023100842f8d2814f5b7163f4b21bd9727246e078ad1e7435dfe1bc5f9e0e7374232e686b9b98b73deab9e43b3b7f25416c2be023100852c106c412300bac3ba265990b428a26076ab3f00fd7657bbd9315fa1cd2a1230a9a60d06b7af87aa0a6cf3f48b344c\n\n# tcId = 255\n# special case hash\nmsg = 31343630313539383237\nresult = valid\nsig = 3066023100e13f6d638b9d4fba54aa436a945cfea66dec058fab6f026293265884457b5a86e8e927d699bc64", - "431b71e3d41df200440231009832cd1b4177118ed247b4f31277da15f420179f45c71a237d77f599a45df68247bac3dcef0868ecd1665005c25b7c6c\n\n# tcId = 256\n# special case hash\nmsg = 38393930383539393239\nresult = valid\nsig = 3064023009fff1c2e4ff8643cbfad588620c2bf7aaca5cf4242969142c7145b927bd82ed14f3ae8c6e2ce2da63b990b9f1be6d640230780c816f6c86343b008235ee986abf2136123ed247e4751e4d5467334f08e5e2ca1161254f68c3e6678e2d0b87d1cc7c\n\n# tcId = 257\n# special case hash\nmsg = 34333236343430393831\nresult = valid\nsig = 3066023100ffae6e7d2cea71b5a9c73cbc1285a8d252949772afe1aa27fb137740fc429c2a8c8648c9a5ba678a32f7ae7689b395ca02310089d54cd13a162c34189ff524813690e79768af8ebe794cc941dfe7fdf2cb8dd0b42519f034ea4d4f1c870046d13210e1\n\n# tcId = 258\n# special case hash\nmsg = 32333736343337353537\nresult = valid\nsig = 3066023100efa3c5fc3c8be1007475a2dbd46e3578bb30579445909c2445f850fb8aa60aa5b1749cc3400d8ffd81cb8832b50d27b4023100b36a08db3845b3d2ebd2c335480f12fb83f2a7351841ea3842ec62ad904b098efbf9faa7828b9c185746d9c8bd047d76\n\n# tcId = 259\n# special case hash\nmsg = 383630333937373230\nresult = valid\nsig = 3066023100f577095f7c74594aa1c69aca9bb26e0c7475ae5163058ecc074b03af89e56b12b6a72450589dacf0d7e6b172d0017a0e023100bee756a0b5d0a677bf95f98da512854f3ecb712f94570e1ad230eab17c527b6a8bcc9ae202b657a3611ecffa94ba0d54\n\n# tcId = 260\n# special case hash\nmsg = 35383037373733393837\nresult = valid\nsig = 306502300ae7688c7de5882eb9c3172f5500015552f998fb53702c6cd4b03404d5a0510a8073db95db544808dbd76659fd20cf12023100bc610fe5f04d8909cc439615fb7e302d3d82992817647c50c1f467090a52b328cbbc0262f18ffb6fd9f3bd60013cea08\n\n# tcId = 261\n# special case hash\nmsg = 353731383636383537\nresult = valid\nsig = 306502305dc8a6d84afaaf900d78c6a91dc5e12e7d17891a52c1468253061d704b8940bef85b9fe807a0e02b56e8dd37c22fbb82023100914258de52932c4604dceb5ce7cc0a92e021edca9b819b84a9f25652f9af13f956a1139ee95c7aa7a079e3ad8317fbdb\n\n# tcId = 262\n# special case hash\nmsg = 38363737333039333632\nresult = valid\nsig = 3066023100da55a6dbb845205c87c995b0bbc8444ffcba6eb1f4eb9d30f721d2dacc198fb1a8296075e68eb3d25ef596a952b8ea19023100829f671dccad6d7b0b8c4b39ff3f42597965d55c645fb880a66fe198d9344c9311f1598930392470379fa5ff43c75d04\n\n# tcId = 263\n# special case hash\nmsg = 32343735353135303630\nresult = valid\nsig = 306402303730dfd0985de77decdd358a544b47f418d3fab42481530d5d514859894c6f23b729af72b44686058de29687b34b3b0c023065bdfaf0ac217a80b82eb09c9f59c5c8cfbf50a6eb979a8f5f63eab9bd38ee0938e4b23102112033b230a14ad2790e3f\n\n# tcId = 264\n# special case hash\nmsg = 393733313736383734\nresult = valid\nsig = 3065023055210df2124c170e259af1dafa73e66613aa18ced8eb40a7f66155d50d5f3124edfa55276de4797013177291e8afeff6023100c314d3a310a60647dad3318ed7f0405a64c3f94b5ac98e6be12208c8ad9835fa6b81a0ea59f476608634657b66e00ffd\n\n# tcId = 265\n# special case hash\nmsg = 33363938303935313438\nresult = valid\nsig = 3065023100f6c9897144b5d84964515eb0c8c3d0d9c6687c957887e93c29b2a21804b40307fb88bfd5cca11c95885d28867cb33a740230656bafca242290f7d7e9801b6cfd4bd1b07e8d7c6c1c59fd3d8e82e9846a1b2855c85420e4ee6ec2d97fec2161eeb243\n\n# tcId = 266\n# special case hash\nmsg = 3130373530323638353736\nresult = valid\nsig = 3065023100bfbcc5f343e2ab392ce6c1c02d91c00650c47136836a5d0622d476ac2b3274395721b1ab21882ed5cabed093b43b133f0230043e9fc64c6108df73f9eced90f91185f83d89662f5a9d810c1824fbfd97b842f784305fd6b9c28c80d32d52b1538d12\n\n# tcId = 267\n# special case hash\nmsg = 383639313439353538\nresult = valid\nsig = 3066023100b8f793ddd47e657a9081cbed1600fb22b38ad6a155f9c006ba98de1f383b4c0918ceea72253e0f869524b2369cd9bd8c02310096c452ff58f42e0853040a6d5c7e750b57dd4af06e2df8194e8d524e81ac000ee3315bbeabbf6a21f61b8904c55378d9\n\n# tcId = 268\n# special case hash\nmsg = 32313734363535343335\nresult = valid\nsig = 30640230263ab1c93567e93b5ec4e380b0d3bb5ea1ce693c14a47afccc539aaf197f099d331ea9e26f1a0057148d46727acb61880230621db07ce94110e2be74fa953a00a8a554225b3f2c0f6c56b4ebd4db2f57ca2565ed3323fd708bb56ac6e28bfb40f2e7\n\n# tcId = 269\n# special case hash\nmsg = 363434353530373932\nresult = valid\nsig = 306502310096f4a2b3529c65e45a0b4c19c582dc8db635d4e74f0b81309696b23be920ba8ec553d4b370df4c59d74dd654bac6df5802301573ba1b280c735a3401d957ecd3b8908e4e0b7d80239ce042594d182faf2ddf811c9056aac4c87f4f85043766a26614\n\n# tcId = 270\n# special case hash\nmsg = 353332383138333338\nresult = valid\nsig = 306602310096a691b19a6294b311a438f8da345e480b1deaa1e940cfbf02177d5f08479976ea58aee31011d50b5542be188c9d63df0231008f67dc9e1588aeb8be180013d41a036f9badfad9fe9340910cbf87243776f54bef7da2ebf3a7643866eb9a3b23fe59b9\n\n# tcId = 271\n# special case hash\nmsg = 31313932303736333832\nresult = valid\nsig = 3066023100cff27948c6d902c73d103d0802eb144dd89c1b0e3b9f9a5e498b0361dc122a0d555160d8c64d61539c1dbbd4bc18971f023100b60827488c9f16ba28378fd59b1a29c65073335a7f236131134674c62c8396f193c76f2395ddaaa4f24b69161eb69b4d\n\n# tcId = 272\n# special case hash\nmsg = 31353332383432323230\nresult = valid\nsig = 3066023100e90e22d9e535dfdfd86e098d5d6a0ae08f69d4a3ffaa39f6930bcf5f5ad02ee0d0472ae984edd9f0bbe5e7d63fd4f6ac023100e3f57b0a4629ecaa21f2d34a7a0834d57ba20f99c6e31b43c37811cc23b9957c8f3356f4462214d3c8e58745e50f23f6\n\n# tcId = 273\n# special case hash\nmsg = 313536373137373339\nresult = valid\nsig = 3064023018b70e272a98cc48e1e0af73146f0f972bbfbeb6b985feb2c4acd695a7a41b99c415be9c46aedaf3ddff67a65a89e387023047d6bcea088f622ad35d88bcf46d71827bcba2f57c36d6fb8a4bf2befdc0d4e3ef366d5966c4d076d3cfa43d6626717b\n\n# tcId = 274\n# special case hash\nmsg = 34333033303931313230\nresult = valid\nsig = 3066023100acfd981c55fd5286cfce173726d51c3d25f65b11b7673729a62167256774f7c894b74662a212c706e00cef096074162f023100f4d471c97797c24d96aec1de85a249ef468d6036cd712563aeb65cea4995f3ee85e769b874f09a08637a44a96084be7a\n\n# tcId = 275\n# special case hash\nmsg = 37373335393135353831\nresult = valid\nsig = 3065023100f15fcbeea8b64dad5e8566a2c37913c82d6be9d9668df469bd0b591c3923a6e12644eaf697d466fa7cd513983d946a40023070063966801079351526999e5c5c2c5f627e4c8bc96784bcbe715fe7c7afcf69785d1c8c7ccd3725e364101638396597\n\n# tcId = 276\n# special case hash\nmsg = 323433393636373430\nresult = valid\nsig = 3066023100d995147939ae6d8f62bb57372227395839e25a0d4308b899d5f506cf9e0a01e8115b7e4b822f037ec95752bd9e892f5e0231009bb4d07333e468f8482a790a2a2e650e2c42da8240ec5e402506b368122f046680cd71e0117897cce3df4a1555fc8876\n\n# tcId = 277\n# special case hash\nmsg = 34333237363032383233\nresult = valid\nsig = 3064023043c6ce5184476f3f496afeae3cb96a3f9f038957686c93437b8266a233022371d266e904aa096c3566cb33824b88075e0230680c13245a8bc560b638d26f0c5f261964130256939552d3fffb07b658355611612c268a89541055d3c2bf9e82cf4da3\n\n# tcId = 278\n# special case hash\nmsg = 32393332303032353932\nresult = valid\nsig = 30630230447539941dc350767fc841083d25d9247a0807e1e22e0bb9d94f504f721981b413d521efbd75e4fe831ee26338cf3de3022f395ab27ea782cee4be53e06c7616bbd41d6926b18d219d75d5979f13cba2f52101019b0ec0a41ffdbf29ef73ddba70\n\n# tcId = 279\n# special case hash\nmsg = 36343039383737323834\nresult = valid\nsig = 3066023100a0ba8e8b979c20345e34fca98531900164a859923bd6986a9c39236a2f5de053a252997f35e5b84b0d48ba0f8d09aedd023100facd6df04358fcd95fa9018a6fc0828dfe319812ff65929c060b18ad4b9f06e7fc0addd1b695315d71c15e51dc51d719\n\n# tcId = 280\n# special case hash\nmsg = 36303735363930343132\nresult = valid\nsig = 3065023100b8378390f71f0bb6663f1846daf6908f8c84f770ae740cc8054122494cf0ffa9437ab26040ca22808fb29a810b70126e0230427636b929a500abc34d9f22977b81e734919afaf3ed2c91eeada7074e0c16bdc52f960eaec9db5a879c1e6414035101\n\n# tcId = 281\n# special case hash\nmsg = 32333231363233313335\nresult = valid\nsig = 3066023100f36a9048fd94803d3d6d1b11430b90b94ef8d5d2ad89018c69473ce9cfe0d6105b3c2fb2e7555ccd25f65af8c872bdc602310081254841e7ecbfd0d810afaaf5afd6d6c5d0542bb00cc183b1db01767120afbcc0006ddcba8db7baf65f302723dabc4d\n\n# tcId = 282\n# special case hash\nmsg = 36343130313532313731\nresult = valid\nsig = 3066023100d8a4d96409c191baa9540bf35f1d5192f9352d7f0e14f92c0e8e1f19f559b42ed3c6b7bdb6becc56584fb5c09421e2e4023100d966ba13d4245e248eafb46f2a3df92c2037d5969c7db6dbcb0ff4b21850e16a18a29785267239886365cf721a212536\n\n# tcId = 283\n# special case hash\nmsg = 383337323835373438\nresult = valid\nsig = 306402301d5d86fd48e65b0cf0b0b46062241f89cf65785dd818f93f1162771a38a15f20febc261812ecaaf6f4f2b86b3362d7eb02300c76e363de1432513cb9dad6493931381ecd25f142e61968b6f20d7b1270cb9e38a7ae54e4778aff40", - "25eb00c6a67aef\n\n# tcId = 284\n# special case hash\nmsg = 33333234373034353235\nresult = valid\nsig = 306402300508eed148f061114be18e8a86188feabf76b873b36eadcca9c2c60e24a2002fe456231decf7a8f6f032c08dbe0ab5a90230694c0ad781b2341e30e1d0739ac99672064f48821a69852c7940cf1d621738199c980d56d2a0b71b3fc6011c6b2444ba\n\n# tcId = 285\n# special case hash\nmsg = 31343033393636383732\nresult = valid\nsig = 30650230726ef88bb7947a043116c111cb519ddeda3e6ffbf724884a1b22c24409cdf2779d93ce610c8c07411c2b001399103d6d02310095dc1d65046caf0e8dad07b224798d6f7807278e737883e7c7bf0b446791d4ee144c26f710134861af4e6771d4082896\n\n# tcId = 286\n# special case hash\nmsg = 31323237363035313238\nresult = valid\nsig = 3066023100eb0e8e3c639f5eba8eccd9020d0ec62d8ac73f3fddbdfa08fdb2155deb0a536923ebd55e20020cab9f8e39a43a88be11023100c796df399fc35883dd5dae6817d02d3d67a8eec6601585e5e36fd2c134eddb1447ec12b144dddc9aae28a84f22602641\n\n# tcId = 287\n# special case hash\nmsg = 34393531343838333632\nresult = valid\nsig = 3065023100e8f8c69d0396ea900f9757736d2b19dbc2d2a8c01dccf490c8b9455bd63b34c095867e7cf3b84dc7c3c3d6b51bebf405023058152a7564eeb22a3e26597026d0cd7835725bd512245448cb5016eb48ea759809fd6949d0ee5d579643f72f908c16bb\n\n# tcId = 288\n# special case hash\nmsg = 32343532313237303139\nresult = valid\nsig = 30650230380b4e48b3ff012af7c08bf871d9f4da0c708b5494a986d3d80b1979e579d0dbee61db9bc3c04c396176410788e15a0f023100e6971c013c965a7e4df10f95620a5092fab096bd5b50828f4bc91c5e479bccf6e0daf287e7ef580fa9ea153fa1a507a2\n\n# tcId = 289\n# special case hash\nmsg = 31373331353530373036\nresult = valid\nsig = 30650231008061de12029e2b000d157a455ecf2301222f092df95b9551b78cf0ef3a64f12212b57ec7b16d2c0f258946f51cb1633a02300ac2ca6ad99b29ca29a0dc38b34443ee41020f81ed9087cef7681a00c4fe60653a572944ba37f1fe51d112bfffbdd701\n\n# tcId = 290\n# special case hash\nmsg = 31363637303639383738\nresult = valid\nsig = 3066023100e74f2a791eeb7341cff6cc1c24f459e6c0109924f7984639ae387e3ceb58758a1bc3839dea1fc3a3799562225e70a733023100d90e4d0f47343268e56bbcb011bd4734390abc9aa1304b6253e78f5a78b6905aa6bf6a3892a4ae1a875c823ae5a83e87\n\n# tcId = 291\n# special case hash\nmsg = 343431353437363137\nresult = valid\nsig = 306402306a1cd0ff7906be207b56862edcbc0d0bbfb26d43255c99f6ab77639f5e6103a07aa322b22ed43870d1ce6df68aa0a8c10230655558b129aa23184500bd4aab4f0355d3192e9b8860f60b05a1c29261f4486a6ae235a526339b86c05f5fac477b6723\n\n# tcId = 292\n# special case hash\nmsg = 343233393434393938\nresult = valid\nsig = 306602310081111fdc5f0de65583c7a5668d26c04ee52e08dac227753132cff1741cb721e112aa793c0d5fa047faf14cb45dd13e1f0231009a25cf1e6c152bc3e216e021561d194979f1c11fe17019ed7bac2c13c4010f209665e3b6f33b86641704d922b407818f\n\n# tcId = 293\n# special case hash\nmsg = 34383037363230373132\nresult = valid\nsig = 30660231009b66d122a315095b2b66ccb97272c476a2d760e827fdea05732d634df3d066569c984dd941aad5f5dec4c2e1b7b94a0002310096c32403c85bc3d0ee87f96a600182796dce53d54d7467ae660a42b87bb70792f14650ac28a5fa47ce9ca4d3b2c25878\n\n# tcId = 294\n# special case hash\nmsg = 32313634363636323839\nresult = valid\nsig = 306402302bb062a002088d62a0b7338d0484fedfe2af7e20cebf6a4788264eb27cb4ebc3cc81c816e6a35722cf9b464783094cb8023046cc21b70f2133f85ab0443bebe9c6fc62c6e2ec1fd9c4ddf4a6d5f3f48eb7abf1ee7bdf6725879fd1b7daafb44f6e04\n\n# tcId = 295\n# special case hash\nmsg = 31393432383533383635\nresult = valid\nsig = 3065023033e87061ee9a82eb74d8bb4ae91606563c2e4db8b09183cc00d1119ab4f5033d287a1fc90a2348163fdf68d35006fd7f02310096db97c947ee2e96e6139d3bcbf5a43606bae1ad3ca28290fbad43b281ef115ec1b98bc581ef48094f8c1aa8e36c282a\n\n# tcId = 296\n# special case hash\nmsg = 32323139333833353231\nresult = valid\nsig = 3064023070f80b438424ba228a7d80f26e22ff6a896243c9d49c75573489ee0de58ec60efd103838143465bd8fe34672ba9496170230115492bd9365b96f38747536318bffb819e7c146df3a5a7a46d6288c7fdf31cff570b22176aa398daba9073ab1e7b9bf\n\n# tcId = 297\n# special case hash\nmsg = 393236393333343139\nresult = valid\nsig = 3066023100ff16ca0389ea6948f4305b434fe0aa589f880f5aa937767c31170ee8da6c1ad620c993d40ddf141b7fda37424d51b5cd023100ba0f86985dffc61d6e35a37de06918b11e431b72403161acfb8f05c469f1fcfa6e215c6f7eb5a0a5e0cc9e7be79ce18b\n\n# tcId = 298\n# special case hash\nmsg = 373639333836333634\nresult = valid\nsig = 3065023100d60c24bee05f5198cd155ad095ffb956bbcfb66b82fc0d3755119915a62f2f923557b85ddc1d12e6a757f23042cb601b02302c4d968b5eac930b51d283b418fcff6df3a9d6d66e3812cd1bf5fde797fd203a7c439b1b381e4fe8b44e6f108764a7dd\n\n# tcId = 299\n# special case hash\nmsg = 32373335393330353733\nresult = valid\nsig = 3066023100bdf634d915a4fae7a155532ca2847c33a6babe7ef8db0af50f485db3dd2c8bffe722394583932f6eb5cd97f6db7561d9023100bb425cae2e5483174b5ed873af4329da4618c14458141850bee3c7bf1ffb3f2030159043277dacc708e9d32f63400083\n\n# tcId = 300\n# special case hash\nmsg = 38333030353634303635\nresult = valid\nsig = 30650230061320a3bcebac33cf399d45d1e1e1b34f37288fe4753f4fddfd496eff427e1d26b1b91d749cc34c12f4ecef837c0e8f023100fd5cf468cda319fe06e773a190c38de6e150a321ac1c416ad875432cdb7a07134c446f13068e71a1a96e35da923974ad\n\n# tcId = 301\n# special case hash\nmsg = 34333037363535373338\nresult = valid\nsig = 3065023100d620f063d33efa859b623f6c9a92340e4cdd854ffbe3e5e01379177aee31715ce587b00bd0aea98fddf236d2fc8a7a740230671f4b7c187297dc236c61888b6d9397e97783077cc4101807d79ee62e4a53a78c4b6a3a31b03178668af894a3d8902e\n\n# tcId = 302\n# special case hash\nmsg = 39363537303138313735\nresult = valid\nsig = 306502310091c556c5bddd529fe903b86afc0eb8fa1f49425b779a39114ae563bebc947e633ba4ee98948faa8940dfe2562c63e1c50230198b00079d8db072d25b0a49bc8bc36457926f3c101527528df6679f92c76f1b487e6695d4b92fe33b4ee7046a6a5df9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 044bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85dd30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]\n[key.wx = 4bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85d]\n[key.wy = 0d30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85dd30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]\n[sha = SHA-384]\n\n# tcId = 303\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 304d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68b023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# tcId = 304\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 043623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]\n[key.wx = 3623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6]\n[key.wy = 768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]\n[sha = SHA-384]\n\n# tcId = 305\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d516cb8ac8e4457b693d5192beeb6ce7d9a46bef48eecf3ea823286f101f98d130f5a26dc6fec23662eff07f14486fd58456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]\n[key.wx = 0d516cb8ac8e4457b693d5192beeb6ce7d9a46bef48eecf3ea8", - "23286f101f98d130f5a26dc6fec23662eff07f14486fd5]\n[key.wy = 08456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d516cb8ac8e4457b693d5192beeb6ce7d9a46bef48eecf3ea823286f101f98d130f5a26dc6fec23662eff07f14486fd58456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]\n[sha = SHA-384]\n\n# tcId = 306\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d1aee55fdc2a716ba2fabcb57020b72e539bf05c7902f98e105bf83d4cc10c2a159a3cf7e01d749d2205f4da6bd8fcf1\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a992a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]\n[key.wx = 0a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a9]\n[key.wy = 092a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a992a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]\n[sha = SHA-384]\n\n# tcId = 307\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b6b681dc484f4f020fd3f7e626d88edc6ded1b382ef3e143d60887b51394260832d4d8f2ef70458f9fa90e38c2e19e4f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd32251171312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]\n[key.wx = 554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd322511]\n[key.wy = 71312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd32251171312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]\n[sha = SHA-384]\n\n# tcId = 308\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020101\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0444ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591cd027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]\n[key.wx = 44ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591c]\n[key.wy = 0d027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000444ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591cd027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]\n[sha = SHA-384]\n\n# tcId = 309\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020102\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]\n[key.wx = 0e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390]\n[key.wy = 0e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]\n[sha = SHA-384]\n\n# tcId = 310\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020103\n\n# tcId = 311\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52975020103\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0405e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab88a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]\n[key.wx = 5e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab]\n[key.wy = 088a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000405e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab88a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]\n[sha = SHA-384]\n\n# tcId = 312\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036020102023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accd7fffa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 040bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]\n[key.wx = 0bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1]\n[key.wy = 0ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]\n[sha = SHA-384]\n\n# tcId = 313\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3036020201000230489122448912244891224489122448912244891224489122347ce79bc437f4d071aaa92c7d6c882ae8734dc18cb0d553\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0458f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]\n[key.wx = 58f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566]\n[key.wy = 497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000458f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]\n[sha = SHA-384]\n\n# tcId = 314\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c02072d9b4d347952cd023100ce751512561b6f57c75342848a3ff98ccf9c3f0219b6b68d00449e6c971a85d2e2ce73554b59219d54d2083b46327351\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12998d63a5b5ad1b72b899f0b132e4952aaa19d41fdeea48b1ed6b8358dd1db207fd66e01453ad40f67b836adc802d5fe8]\n[key.wx = 0fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12]\n[key.wy = 0998d63a5b5ad1b72b899f0b132e4952aaa19d41fdeea48b1ed6b8358dd1db207fd66e01453ad40f67b836adc802d5fe8]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12998d63a5b5ad1b72b899f0b132e4952aaa19d41fdeea48b1ed6b8358dd1db207fd66e01453ad40f67", - "b836adc802d5fe8]\n[sha = SHA-384]\n\n# tcId = 315\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d1033e67e37b32b445580bf4efb02302ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad5215c51b320e460542f9cc38968ccdf4263684004eb79a452\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 041b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]\n[key.wx = 1b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51]\n[key.wy = 0c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]\n[sha = SHA-384]\n\n# tcId = 316\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 303602020100023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 041734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]\n[key.wx = 1734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403]\n[key.wy = 0ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]\n[sha = SHA-384]\n\n# tcId = 317\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d062522bbd3ecbe7c39e93e7c24023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0452ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c787a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]\n[key.wx = 52ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c7]\n[key.wy = 087a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000452ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c787a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]\n[sha = SHA-384]\n\n# tcId = 318\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3065023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c443adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]\n[key.wx = 0bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c44]\n[key.wy = 3adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c443adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]\n[sha = SHA-384]\n\n# tcId = 319\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020101\n\n# tcId = 320\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020100\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bddac4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]\n[key.wx = 0f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bdda]\n[key.wy = 0c4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bddac4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]\n[sha = SHA-384]\n\n# tcId = 321\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 043ecfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]\n[key.wx = 3ecfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383]\n[key.wy = 0d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043ecfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]\n[sha = SHA-384]\n\n# tcId = 322\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 044150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]\n[key.wx = 4150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4]\n[key.wy = 0eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]\n[sha = SHA-384]\n\n# tcId = 323\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec63260230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992ff34ebba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]\n[key.wx = 0e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992f]\n[key.wy = 0f34ebba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992ff34eb", - "ba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]\n[sha = SHA-384]\n\n# tcId = 324\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c090a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]\n[key.wx = 0ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c09]\n[key.wy = 0a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c090a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]\n[sha = SHA-384]\n\n# tcId = 325\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa84ecde56a2cf73ea3abc092185cb1a51f34810f1ddd8c64d\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 043d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c139aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]\n[key.wx = 3d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c1]\n[key.wy = 39aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c139aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]\n[sha = SHA-384]\n\n# tcId = 326\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0230533b0d50480a3ef07e7e8af8b1097759bc03ac9a1c7ed6075a052869f57f12b285613162d08ee7aab9fe54aaa984a39a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd001ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]\n[key.wx = 0ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd00]\n[key.wy = 1ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd001ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]\n[sha = SHA-384]\n\n# tcId = 327\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d49a253986bbaa8ce9c3d3808313d39c3b950a478372edc009bc0566b73be7b05dad0737e16960257cc16db6ec6c620f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0488738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab2529388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]\n[key.wx = 088738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab252]\n[key.wy = 09388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000488738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab2529388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]\n[sha = SHA-384]\n\n# tcId = 328\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0230285090b0d6a6820bbba394efbee5c24a2281e825d2f6c55fb7a85b8251db00f75ab07cc993ceaf664f3c116baf34b021\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]\n[key.wx = 0f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36]\n[key.wy = 0b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]\n[sha = SHA-384]\n\n# tcId = 329\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b39af4a81ee4ae79064ed80f27e1432e84845f15ece399f2a43d2505a0a8c72c5731f4fd967420b1000e3f75502ed7b7\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d4b39e62fd48bae141d0e1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]\n[key.wx = 399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d4b39e62fd48bae141d0e]\n[key.wy = 1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d4b39e62fd48bae141d0e1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]\n[sha = SHA-384]\n\n# tcId = 330\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100af4a81ee4ae79064ed80f27e1432e84845f15ece399f2cbf28df829ccd30f5ef62ec23957b837d73fe4e156edccd4465\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 041578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]\n[key.wx = 1578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c]\n[key.wy = 76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]\n[sha = SHA-384]\n\n# tcId = 331\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02305e9503dc95cf20c9db01e4fc2865d0908be2bd9c733e597e8a5bb7b7a62abdff6dbe3978ae56536d0fb01172ecd55f57\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0433ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d823dd03f3919027f004537bd8ee09f3a3]\n[key.wx = 33ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab]\n[key.wy = 1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d82", - "3dd03f3919027f004537bd8ee09f3a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000433ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d823dd03f3919027f004537bd8ee09f3a3]\n[sha = SHA-384]\n\n# tcId = 332\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02301ee4ae79064ed80f27e1432e84845f15ece399f2cbf4fa31a3ae8edab84dc3330a39f70938e3912bd59753de5aed3088\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04040771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33ddae5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]\n[key.wx = 40771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33dda]\n[key.wy = 0e5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004040771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33ddae5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]\n[sha = SHA-384]\n\n# tcId = 333\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bb51cd3ba8eb201f53ddb4e34e08c0ff7dff9378106784d798d5a3440bd6dc34be3a0eaef8776619a0c97fefb15720b3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0498d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b792399a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]\n[key.wx = 098d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b7923]\n[key.wy = 099a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000498d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b792399a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]\n[sha = SHA-384]\n\n# tcId = 334\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100e707e267ea635384a6da09823149f5cb7acbb29e910d2630c5fb5afbc42aa8436349b214a3b8fb9481ec999e005091f8\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]\n[key.wx = 0d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5]\n[key.wy = 0f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]\n[sha = SHA-384]\n\n# tcId = 335\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100acc4f2afb7f5c10f818175074ef688a643fc5365e38129f86d5e2517feb81b2cd2b8dc4f7821bfd032edc4c0234085d9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0482f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d318a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]\n[key.wx = 082f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d31]\n[key.wy = 08a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000482f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d318a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]\n[sha = SHA-384]\n\n# tcId = 336\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02310083276c0793f0a19742422f8af671ccf965fa7d18d541bef4c05b90e303f891d39008439e0fda4bfad5ee9a6ace7e340c\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f9990f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]\n[key.wx = 0f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f99]\n[key.wy = 090f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f9990f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]\n[sha = SHA-384]\n\n# tcId = 337\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100942848586b534105ddd1ca77df72e1251140f412e97b62afbf85d4822309176b5965453dee3fab709e14156b3dfcecca\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb591524a7f15dd41496681eda98939aae729fede85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]\n[key.wx = 0f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb591524a7f15dd41496681eda98939aae729fed]\n[key.wy = 0e85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb591524a7f15dd41496681eda98939aae729fede85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]\n[sha = SHA-384]\n\n# tcId = 338\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffed2119d5fc12649fc808af3b6d9037d3a44eb32399970dd0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0414249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]\n[key.wx = 14249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a]\n[key.wy = 28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000414249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]\n[sha = SHA-384]\n\n# tcId = 339\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023079b95c013b0472de04d8faeec3b779c39fe729ea84fb554cd091c7178c2f054eabbc62c3e1cfbac2c2e69d7aa45d9072\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0450a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6cbdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e", - "35221c51259f337c7288a2f86bc]\n[key.wx = 50a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6c]\n[key.wy = 0bdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e35221c51259f337c7288a2f86bc]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000450a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6cbdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e35221c51259f337c7288a2f86bc]\n[sha = SHA-384]\n\n# tcId = 340\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bfd40d0caa4d9d42381f3d72a25683f52b03a1ed96fb72d03f08dcb9a8bc8f23c1a459deab03bcd39396c0d1e9053c81\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 044d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]\n[key.wx = 4d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd]\n[key.wy = 680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]\n[sha = SHA-384]\n\n# tcId = 341\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304c7d219db9af94ce7fffffffffffffffffffffffffffffffef15cf1058c8d8ba1e634c4122db95ec1facd4bb13ebf09a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0463d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13aa9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]\n[key.wx = 63d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13a]\n[key.wy = 0a9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000463d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13aa9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]\n[sha = SHA-384]\n\n# tcId = 342\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d219db9af94ce7ffffffffffffffffffffffffffffffffffd189bdb6d9ef7be8504ca374756ea5b8f15e44067d209b9b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c49ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]\n[key.wx = 0d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c4]\n[key.wy = 09ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c49ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]\n[sha = SHA-384]\n\n# tcId = 343\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a433b735f299cfffffffffffffffffffffffffffffffffffdbb02debbfa7c9f1487f3936a22ca3f6f5d06ea22d7c0dc3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0431f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b47823140035bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]\n[key.wx = 31f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b4782314003]\n[key.wy = 5bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000431f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b47823140035bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]\n[sha = SHA-384]\n\n# tcId = 344\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b9af94ce7fffffffffffffffffffffffffffffffffffffffd6efeefc876c9f23217b443c80637ef939e911219f96c179\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]\n[key.wx = 0bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3]\n[key.wy = 0c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]\n[sha = SHA-384]\n\n# tcId = 345\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a276276276276276276276276276276276276276276276273d7228d4f84b769be0fd57b97e4c1ebcae9a5f635e80e9df\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 046fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]\n[key.wx = 6fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4]\n[key.wy = 375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]\n[sha = SHA-384]\n\n# tcId = 346\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023073333333333333333333333333333333333333333333333316e4d9f42d4eca22df403a0c578b86f0a9a93fe89995c7ed\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cdecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]\n[key.wx = 0baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cd]\n[key.wy = 0ecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cdecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]\n[sha = SHA-384]\n\n# tcId = 347\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffda4233abf824c93f90115e76db206fa7489d6647332e1ba3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[k", - "ey.type = ECPublicKey]\n[key.uncompressed = 0481e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]\n[key.wx = 081e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317]\n[key.wy = 0cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000481e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]\n[sha = SHA-384]\n\n# tcId = 348\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294bb\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0441fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e71c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]\n[key.wx = 41fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e7]\n[key.wy = 1c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000441fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e71c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]\n[sha = SHA-384]\n\n# tcId = 349\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100dfea06865526cea11c0f9eb9512b41fa9581d0f6cb7db9680336151dce79de818cdf33c879da322740416d1e5ae532fa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]\n[key.wx = 0e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b]\n[key.wy = 572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]\n[sha = SHA-384]\n\n# tcId = 350\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 3065023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023064adb4d51a93f96bed4665de2d4e1169cc95819ec6e9333edfd5c07ca134ceef7c95957b719ae349fc439eaa49fbbe34\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86ba8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]\n[key.wx = 0e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b]\n[key.wy = 0a8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86ba8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]\n[sha = SHA-384]\n\n# tcId = 351\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 3065023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023064adb4d51a93f96bed4665de2d4e1169cc95819ec6e9333edfd5c07ca134ceef7c95957b719ae349fc439eaa49fbbe34\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba01fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]\n[key.wx = 0b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba]\n[key.wy = 1fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba01fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]\n[sha = SHA-384]\n\n# tcId = 352\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3035020101023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 046e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]\n[key.wx = 6e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a]\n[key.wy = 4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]\n[sha = SHA-384]\n\n# tcId = 353\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3065023101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]\n[key.wx = 0b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a]\n[key.wy = 1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]\n[sha = SHA-384]\n\n# tcId = 354\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 046761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc273605c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]\n[key.wx = 6761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc2736]\n[key.wy = 5c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200", - "046761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc273605c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]\n[sha = SHA-384]\n\n# tcId = 355\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 046922c591502f01046fee5617bf16496f58398822e69afa8335308f36c09a8ed437209fefcffbbdf0a4876b35a3c7ab2655854db825b94b3f27e5f892d3bbb6c7240ec922894dd3598e91fcc6134a2b8fd154e1790466906206f0f623416e63a1]\n[key.wx = 6922c591502f01046fee5617bf16496f58398822e69afa8335308f36c09a8ed437209fefcffbbdf0a4876b35a3c7ab26]\n[key.wy = 55854db825b94b3f27e5f892d3bbb6c7240ec922894dd3598e91fcc6134a2b8fd154e1790466906206f0f623416e63a1]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046922c591502f01046fee5617bf16496f58398822e69afa8335308f36c09a8ed437209fefcffbbdf0a4876b35a3c7ab2655854db825b94b3f27e5f892d3bbb6c7240ec922894dd3598e91fcc6134a2b8fd154e1790466906206f0f623416e63a1]\n[sha = SHA-384]\n\n# tcId = 356\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04892dac0e700fc29d1802d9a449a6f56b2172cb1b7d881013cd3b31c0edb052f2d340c8995a4477bcb9225fec15667233cc6c34ae17445444516fd8fd22ee83f79eb0771ebff6677ac5d4e089f87a1c72df957acb24492adcd7c3816b8e0c75b1]\n[key.wx = 0892dac0e700fc29d1802d9a449a6f56b2172cb1b7d881013cd3b31c0edb052f2d340c8995a4477bcb9225fec15667233]\n[key.wy = 0cc6c34ae17445444516fd8fd22ee83f79eb0771ebff6677ac5d4e089f87a1c72df957acb24492adcd7c3816b8e0c75b1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004892dac0e700fc29d1802d9a449a6f56b2172cb1b7d881013cd3b31c0edb052f2d340c8995a4477bcb9225fec15667233cc6c34ae17445444516fd8fd22ee83f79eb0771ebff6677ac5d4e089f87a1c72df957acb24492adcd7c3816b8e0c75b1]\n[sha = SHA-384]\n\n# tcId = 357\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401634117e6478ce0568b0a2469237bbac6ff096acb7e514072bf77123cb51ba0cc3e8d69284d534d8e6d1e876cecf22231e5ef04dc96762ce7d5ef3348ad1e241ac797ae3b630ea249afc5139af49b8ef68b32f812d6b514210363d498efc28c]\n[key.wx = 1634117e6478ce0568b0a2469237bbac6ff096acb7e514072bf77123cb51ba0cc3e8d69284d534d8e6d1e876cecf222]\n[key.wy = 31e5ef04dc96762ce7d5ef3348ad1e241ac797ae3b630ea249afc5139af49b8ef68b32f812d6b514210363d498efc28c]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000401634117e6478ce0568b0a2469237bbac6ff096acb7e514072bf77123cb51ba0cc3e8d69284d534d8e6d1e876cecf22231e5ef04dc96762ce7d5ef3348ad1e241ac797ae3b630ea249afc5139af49b8ef68b32f812d6b514210363d498efc28c]\n[sha = SHA-384]\n\n# tcId = 358\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04675bdc79d8243887fe1b305d12ac10d2e9c0bde070a6e3394cd5f6adfbceda75498b0e7a794c7212f42be93f616744563e96d1bf6f95cdbefa774911ba06463d8a90a0c9d73c9699b061d779dc52496e8ee9b9ae9c5d4d90e89cd1157d811895]\n[key.wx = 675bdc79d8243887fe1b305d12ac10d2e9c0bde070a6e3394cd5f6adfbceda75498b0e7a794c7212f42be93f61674456]\n[key.wy = 3e96d1bf6f95cdbefa774911ba06463d8a90a0c9d73c9699b061d779dc52496e8ee9b9ae9c5d4d90e89cd1157d811895]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004675bdc79d8243887fe1b305d12ac10d2e9c0bde070a6e3394cd5f6adfbceda75498b0e7a794c7212f42be93f616744563e96d1bf6f95cdbefa774911ba06463d8a90a0c9d73c9699b061d779dc52496e8ee9b9ae9c5d4d90e89cd1157d811895]\n[sha = SHA-384]\n\n# tcId = 359\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 040fd1aab89f47b565b8160dfcc433b6408adeb1473c036b26b7ddec714fb4d0e7dd756c88469e86e218813ead8e8e7676f1cc955c4139e0071c0079ec1d77164e0569bdf453837e8b33c98535a0e7c9c61ef24762067bb46b6116ea7909a69b23]\n[key.wx = 0fd1aab89f47b565b8160dfcc433b6408adeb1473c036b26b7ddec714fb4d0e7dd756c88469e86e218813ead8e8e7676]\n[key.wy = 0f1cc955c4139e0071c0079ec1d77164e0569bdf453837e8b33c98535a0e7c9c61ef24762067bb46b6116ea7909a69b23]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040fd1aab89f47b565b8160dfcc433b6408adeb1473c036b26b7ddec714fb4d0e7dd756c88469e86e218813ead8e8e7676f1cc955c4139e0071c0079ec1d77164e0569bdf453837e8b33c98535a0e7c9c61ef24762067bb46b6116ea7909a69b23]\n[sha = SHA-384]\n\n# tcId = 360\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0434d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f786f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56df63acfde648f3f5002dbc239ffd1582]\n[key.wx = 34d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f7]\n[key.wy = 086f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56df63acfde648f3f5002dbc239ffd1582]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000434d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f786f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56df63acfde648f3f5002dbc239ffd1582]\n[sha = SHA-384]\n\n# tcId = 361\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 044376c9893e9277296c766a83abbe36b34da7a631f8cbfd32a1888de0dd1455a21a153ea2d61cfa5071fc6be12a658f6b290ba1a8ee8c78b5dd58f9ffcacb22955682eea02429c3fa8cdcb649fa4d007c8693e3f8f3c0a5f3c4de7a51beaa9809]\n[key.wx = 4376c9893e9277296c766a83abbe36b34da7a631f8cbfd32a1888de0dd1455a21a153ea2d61cfa5071fc6be12a658f6b]\n[key.wy = 290ba1a8ee8c78b5dd58f9ffcacb22955682eea02429c3fa8cdcb649fa4d007c8693e3f8f3c0a5f3c4de7a51beaa9809]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044376c9893e9277296c766a83abbe36b34da7a631f8cbfd32a1888de0dd1455a21a153ea2d61cfa5071fc6be12a658f6b290ba1a8ee8c78b5dd58f9ffcacb22955682eea02429c3fa8cdcb649fa4d007c8693e3f8f3c0a5f3c4de7a51beaa9809]\n[sha = SHA-384]\n\n# tcId = 362\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0410878fc4807f6732a23c883e838e38c787f7088f94c1824b84673e8b9eab16de1544ae4bf2c6fe3fe4fb343b7487e2b43036ff439533d22f951dae966584bafb23b217dcad2f8f4e0e6999c0c4d0f076634b", - "e805f676fd2a59c27f9fe7c5d95b]\n[key.wx = 10878fc4807f6732a23c883e838e38c787f7088f94c1824b84673e8b9eab16de1544ae4bf2c6fe3fe4fb343b7487e2b4]\n[key.wy = 3036ff439533d22f951dae966584bafb23b217dcad2f8f4e0e6999c0c4d0f076634be805f676fd2a59c27f9fe7c5d95b]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000410878fc4807f6732a23c883e838e38c787f7088f94c1824b84673e8b9eab16de1544ae4bf2c6fe3fe4fb343b7487e2b43036ff439533d22f951dae966584bafb23b217dcad2f8f4e0e6999c0c4d0f076634be805f676fd2a59c27f9fe7c5d95b]\n[sha = SHA-384]\n\n# tcId = 363\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04036b253e3b4ac88bb8585a2b32b978766a931e5ad0d0e653a2e34b44d6ddcc0d386e20c4def2d8bb3f8da128c1eac69f9c8e3b5ff5dde2205af359b3974d52758d7abae812b8b275e1452c4e59cb62e9b6771d347dbd1dea761c70291cc5e0a6]\n[key.wx = 36b253e3b4ac88bb8585a2b32b978766a931e5ad0d0e653a2e34b44d6ddcc0d386e20c4def2d8bb3f8da128c1eac69f]\n[key.wy = 09c8e3b5ff5dde2205af359b3974d52758d7abae812b8b275e1452c4e59cb62e9b6771d347dbd1dea761c70291cc5e0a6]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004036b253e3b4ac88bb8585a2b32b978766a931e5ad0d0e653a2e34b44d6ddcc0d386e20c4def2d8bb3f8da128c1eac69f9c8e3b5ff5dde2205af359b3974d52758d7abae812b8b275e1452c4e59cb62e9b6771d347dbd1dea761c70291cc5e0a6]\n[sha = SHA-384]\n\n# tcId = 364\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 042783c1be922fce155864ecb41d0a316e193a55843e80192f1fe556772f3debd04b9fc93c27bc6f353938886a404419941a352cec336946424fa3c208ea7105f5549edde8688abd305344bf4f66dda7eabcda6f8557c9af88109804d702e9670b]\n[key.wx = 2783c1be922fce155864ecb41d0a316e193a55843e80192f1fe556772f3debd04b9fc93c27bc6f353938886a40441994]\n[key.wy = 1a352cec336946424fa3c208ea7105f5549edde8688abd305344bf4f66dda7eabcda6f8557c9af88109804d702e9670b]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042783c1be922fce155864ecb41d0a316e193a55843e80192f1fe556772f3debd04b9fc93c27bc6f353938886a404419941a352cec336946424fa3c208ea7105f5549edde8688abd305344bf4f66dda7eabcda6f8557c9af88109804d702e9670b]\n[sha = SHA-384]\n\n# tcId = 365\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fa92538cdc740368caf16480ff1304cebbbe59a46a7a84603726b9592d105be069df1c61b5974f27e7552f797de97cdb620e03a46da862e4b089bafbb80df8f055c8f47991b3a3ddb2b089aedb2f15841a6a5b5e14c1dc36b3c155c4f74d3409]\n[key.wx = 0fa92538cdc740368caf16480ff1304cebbbe59a46a7a84603726b9592d105be069df1c61b5974f27e7552f797de97cdb]\n[key.wy = 620e03a46da862e4b089bafbb80df8f055c8f47991b3a3ddb2b089aedb2f15841a6a5b5e14c1dc36b3c155c4f74d3409]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fa92538cdc740368caf16480ff1304cebbbe59a46a7a84603726b9592d105be069df1c61b5974f27e7552f797de97cdb620e03a46da862e4b089bafbb80df8f055c8f47991b3a3ddb2b089aedb2f15841a6a5b5e14c1dc36b3c155c4f74d3409]\n[sha = SHA-384]\n\n# tcId = 366\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[sha = SHA-384]\n\n# tcId = 367\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 368\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 30640230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea502302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 0c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[sha = SHA-384]\n\n# tcId = 369\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 370\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 30640230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea502302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]\n[key.wy = 09a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[sha = SHA-384]\n\n# tcId = 371\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 3064023032401249714e9091f05a5e109d5c1216fdc05e98614261aa0dbd9e9cd4415dee29238afbd3b103c1e40ee5c9144aee0f02304326756fb2c4fd726360dd6479b5849478c7a9d054a833a58c1631c33b63c3441336ddf2c7fe0ed129aae6d4ddfeb753\n\n# tcId = 372\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 3066023100d7143a836608b25599a7f28dec6635494c2992ad1e2bbeecb7ef601a9c01746e710ce0d9c48accb38a79ede5b9638f3402310080f9e165e8c61035bf8aa7b5533960e46dd0e211c904a064edb6de41f797c0eae4e327612ee3f816f4157272bb4fabc9\n\n# tcId = 373\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 30650230234503fcca578121986d96be07fbc8da5d894ed8588c6dbcdbe974b4b813b21c52d20a8928f2e2fdac14705b0", - "705498c023100cd7b9b766b97b53d1a80fc0b760af16a11bf4a59c7c367c6c7275dfb6e18a88091eed3734bf5cf41b3dc6fecd6d3baaf\n\n# tcId = 374\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 306502305cad9ae1565f2588f86d821c2cc1b4d0fdf874331326568f5b0e130e4e0c0ec497f8f5f564212bd2a26ecb782cf0a18d023100bf2e9d0980fbb00696673e7fbb03e1f854b9d7596b759a17bf6e6e67a95ea6c1664f82dc449ae5ea779abd99c78e6840\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[key.wx = 0ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]\n[key.wy = 0acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[sha = SHA-384]\n\n# tcId = 375\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023007648b6660d01ba2520a09d298adf3b1a02c32744bd2877208f5a4162f6c984373139d800a4cdc1ffea15bce4871a0ed02310099fd367012cb9e02cde2749455e0d495c52818f3c14f6e6aad105b0925e2a7290ac4a06d9fadf4b15b578556fe332a5f\n\n# tcId = 376\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100a049dcd96c72e4f36144a51bba30417b451a305dd01c9e30a5e04df94342617dc383f17727708e3277cd7246ca44074102303970e264d85b228bf9e9b9c4947c5dd041ea8b5bde30b93aa59fedf2c428d3e2540a54e0530688acccb83ac7b29b79a2\n\n# tcId = 377\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30650230441800ea9377c27865be000ad008eb3d7502bdd105824b26d15cf3d06452969a9d0607a915a8fe989215fc4d61af6e05023100dce29faa5137f75ad77e03918c8ee6747cc7a39b0a69f8b915654cac4cf4bfd9c87cc46ae1631b5c6baebd4fc08ff8fd\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[key.wx = 0d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]\n[key.wy = 0c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[sha = SHA-384]\n\n# tcId = 378\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402303244768016457c463b74f2097f216d9670b191f76281c74bc6a1a1971d19f209bf4696468f5eb75d6326a0a43c0a65290230501e0ad985ed9f95697bd17fdbe3f9ca92e0f76426d3664e6896648d9c750bf588d0ce7d011c1a1e8d6c2e082422dc93\n\n# tcId = 379\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402305e1af40f2480e3d97c4ae4bfd34a9f45269241356f3a46becd86a4a7c9716d73ca5aebdb3db1a7765650666683bc856b02307e7c4b473a2baaa4953785be8aa2a10006f6d36b400ab981864d69cecec046718d0404b9647454b159aa5a92d76d7955\n\n# tcId = 380\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306502306688e36a26f15bdc1c3f91367f8a7667f7bb3e30a335d6f0900e9534eb88b260cb29344c723fedfbe7ac9c5a33f4bf0d023100aa35fddf0fdc9017860b378f801cd806f3e2d754cd2fd94eb7bb36a46ce828cef87e9ebbf447068e630b87fee385ad8f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]\n[key.wy = 0e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[sha = SHA-384]\n\n# tcId = 381\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100d4a8f3b0b4d3a5769e3a0bbc644b35f1d509355ed1fe401e170f667b661f693b32598e8c143a817a958982845042bb48023004cc07578bbd1981dbf6e8a97a354c98d41b8b6f6e8a2c2b1763c7c2a29d79e24f8476075c9aed9aec6c64dff50461ae\n\n# tcId = 382\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100c286d1928e9c79fdd3bebdf22a1dbd37c8105e8ecf41e9e3777fe341b6b8d5a89b9d986827d6d1dbb381cd8239484a220230201119ae305b9360aa9b5e5d1567e0674c09e4f025556ebf81b987466b0f421b8d31f72bbe95f3ce2aa9874a84edfd40\n\n# tcId = 383\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100d9c678550167f10c511e62acb4bd0a3f7f336bc090c94e6c6b02622439c348a2159c5f41f9b5aa4b470590d40dcd7cc202301fd5eaee295abb4081cb626745f4ad279ceb44604062830b58e6c0465c562d41f02ba588fc0db1ebbe339cdc008d7a1b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]\n[key.wy = 0d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[sha = SHA-384]\n\n# tcId = 384\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023020fee7c71b6cb0d1da3641ec6622c055a3b16a1f596c64b34da1b2d0b868b66a8f0a0d0db983b3dc7e53bb7295da81970231008141a931d3579aec1cac9887d2fff9c6f12d47a27e4aab8cf262a9d14a715bca0b2057cbc3f18b6fd3d1df76f7410f16\n\n# tcId = 385\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100913eecc559b3cf7108a65d6cc3076bfdf36c6f94dcc6693d06690470f34a2e81564241e1de5f5f51421de30af467f10f0230649bd3717244e8ef3c6b0eda983f84dca5ea86d1bec15386b9c473ec43a8cd0ba558eee819f791d9ff9272b9afd59551\n\n# tcId = 386\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3064023023855c46403a97b76cbb316ec3fe7e2c422b818387604bda8c3d91121b4f20179d9107c5f92dedc8b620d7db87fccccd023050f57343ab148e50662320c4161e44543c35bc992011ea5b1680b94382cf224ea0ec5da511e102f566cb67201f30a2ee\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[sha = SHA-384]\n\n# tcId = 387\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100d200958d491fcebde667cd736c9dba0961c70db2ecaf573c31dd7fa41ecca32b40b5896f9a0ddf272110e3d", - "21e84593a023100c2ecf73943b9adce596bac14fce62495ae93825c5ff6f61c247d1d8afcba52082fc96f63a26e55bccfc3779f88cfd799\n\n# tcId = 388\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306402306ac17d71260c79f81a7566124738cb3ee5d0aa690e73a98ae9e766f1336691e500cad51ba1302366c09cc06b8f7049e0023032ca965d6d7012ec187c7cab9544334d66c2a7658ddefa67e4ad40429815518ecc87b1492ddd57333bd2300b4660a835\n\n# tcId = 389\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e19a4646f0ed8a271fe86ba533f8be4fd81bbf4674716f668efa89a40cac51eec2a6cfbd92327d25efe91ca4ff712bc502304a86b2e8e12378e633dec2691e3b1eed4e932cc48b28e45fa3d464cc0e948c02cc9decf2bb43b25937fcf37e9ad86ef0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 0ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[sha = SHA-384]\n\n# tcId = 390\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3064023015aac6c0f435cb662d110db5cf686caee53c64fe2d6d600a83ebe505a0e6fc62dc5705160477c47528c8c903fa865b5d02307f94ddc01a603f9bec5d10c9f2c89fb23b3ffab6b2b68d0f04336d499085e32d22bf3ab67a49a74c743f72473172b59f\n\n# tcId = 391\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306602310090b95a7d194b73498fba5afc95c1aea9be073162a9edc57c4d12f459f0a1730baf2f87d7d6624aea7b931ec53370fe47023100cbc1ef470e666010604c609384b872db7fa7b8a5a9f20fdefd656be2fcc75db53948102f7ab203ea1860a6a32af246a1\n\n# tcId = 392\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100dd4391ce7557cbd005e3d5d727cd264399dcc3c6501e4547505b6d57b40bbf0a7fac794dcc8d4233159dd0aa40d4e0b9023100a77fa1374fd60aa91600912200fc83c6aa447f8171ecea72ae322df32dccd68951dc5caf6c50380e400e45bf5c0e626b\n\n", +static const char *kData104[] = { + "# Imported from Wycheproof's ecdsa_secp384r1_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]\n[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[sha = SHA-384]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702301840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca03995ca30240e09513805bf6209b58ac7aa9cff54eecd82b9f1\n\n# tcId = 2\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = MissingZero\n\n# tcId = 3\n# valid\nmsg = 313233343030\nresult = valid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 4\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 5\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30820065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 6\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 8\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30850100000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 9\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3089010000000000000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 10\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 11\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 12\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 13\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 14\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3065028012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 18\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 19\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 20\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 21\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30670000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 22\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 23\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820500\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a4981773065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306925003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3", + "394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a2235498177023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306922342500023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306d2232023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70004deadbeef023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72236498177023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d722352500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72233023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306daa00bb00cd003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306baa02aabb3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306d2238aa00bb00cd00023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306b2236aa02aabb023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72239aa00bb00cd00023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306b023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72237aa02aabb023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 39\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30803065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30692280023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30803165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30692280033012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280033100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 46\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3265023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 52\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 53\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 306930010230643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 54\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 30643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 56\n# indefini", + "te length\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\nflags = BER\n\n# tcId = 57\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8200\n\n# tcId = 58\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8205000000\n\n# tcId = 59\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82060811220000\n\n# tcId = 60\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000fe02beef\n\n# tcId = 61\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820002beef\n\n# tcId = 62\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30673000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 63\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f823000\n\n# tcId = 64\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3068023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82bf7f00\n\n# tcId = 65\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 66\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3032023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7\n\n# tcId = 67\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 308198023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 68\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306602813012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702813100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 70\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30670282003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70282003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065022f12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023200e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 76\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306a0285010000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70285010000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 78\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306e028901000000000000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306e023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028901000000000000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 80\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306902847fffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702847fffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 82\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30690284ffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff4", + "26f82\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70284ffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 84\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a0285ffffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70285ffffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 86\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306d0288ffffffffffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70288ffffffffffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 88\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306502ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702ff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3033023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 303402023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3033023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023212b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023300e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30670232000012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70233000000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\nflags = BER\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023212b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023300e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30350281023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30350500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065013012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065033012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065043012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065ff3012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7013100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7033100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7043100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fe", + "cc47bff426f82\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7ff3100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30350200023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 115\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70200\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30692234020112022fb30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 117\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d722350201000230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023010b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 119\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023102e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c54857023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 121\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f02\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3064022f12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3064022fb30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 124\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30660231ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70232ff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3036090180023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 128\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3035023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3035023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 306602310112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19a25617aad7485e6312a8589714f647acf7a94cffbe8a724a023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe1a138f7ca6eeda02a462743d328394f8b71dd11a2a25001f64023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30650230ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e6250d35d71ceecf7c4571b51b33ba5fcdf542cc6b0e3ab729023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e5ec7083591125fd5b9d8bc2cd7c6b0748e22ee5d5daffe09c023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231feed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e65da9e85528b7a19ced57a768eb09b8530856b30041758db6023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 306602310112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e6250d35d71ceecf7c4571b51b33ba5fcdf542cc6b0e3ab729023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023101e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc5f8fc6adfda650a86aa74b95adbd6874b3cd8dde6cc0798f5\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc66a35cfdbf1f6aec7fa409df64a7538556300ab11327d460f\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70231ff1840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca039ce66e2a219d22358ada554576cda202fb0133b8400bd907e\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b3", + "0abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70231fe1840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca03a07039520259af579558b46a5242978b4c327221933f8670b\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023101e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702301840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca039ce66e2a219d22358ada554576cda202fb0133b8400bd907e\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId =", + " 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090380fe01\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090142\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020100\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020101\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529720201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090380fe01\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090142\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020100\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020101\nflags = EdgeCase\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529740201ff\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090380fe01\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090142\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020100\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020101\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff0201ff\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 209\n# Signature with", + " special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090380fe01\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090142\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020100\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020101\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000001000000000201ff\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090380fe01\nflags = EdgeCase\n\n# tcId = 223\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090142\nflags = EdgeCase\n\n# tcId = 224\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 230\n# Edge case for Shamir multiplication\nmsg = 3133323237\nresult = valid\nsig = 3066023100ac042e13ab83394692019170707bc21dd3d7b8d233d11b651757085bdd5767eabbb85322984f14437335de0cdf565684023100bd770d3ee4beadbabe7ca46e8c4702783435228d46e2dd360e322fe61c86926fa49c8116ec940f72ac8c30d9beb3e12f\n\n# tcId = 231\n# special case hash\nmsg = 31373530353531383135\nresult = valid\nsig = 3066023100d3298a0193c4316b34e3833ff764a82cff4ef57b5dd79ed6237b51ff76ceab13bf92131f41030515b7e012d2ba857830023100bfc7518d2ad20ed5f58f3be79720f1866f7a23b3bd1bf913d3916819d008497a071046311d3c2fd05fc284c964a39617\n\n# tcId = 232\n# special case hash\nmsg = 3130333633303731\nresult = valid\nsig = 3065023100e14f41a5fc83aa4725a9ea60ab5b0b9de27f519af4b557a601f1fee0243f8eee5180f8c531414f3473f4457430cb7a2602301047ed2bf1f98e3ce93e8fdbdc63cc79f238998fee74e1bb6cd708694950bbffe3945066064da043f04d7083d0a596ec\n\n# tcId = 233\n# special case hash\nmsg = 32333632343231333231\nresult = valid\nsig = 3066023100b7c8b5cf631a96ad908d6a8c8d0e0a35fcc22a5a36050230b665932764ae45bd84cb87ebba8e444abd89e4483fc9c4a8023100a11636c095aa9bc69cf24b50a0a9e5377d0ffbba4fab5433159f006ab4563d55e918493020a19691574e4d1e66e3975e\n\n# tcId = 234\n# special case hash\nmsg = 34353838303134363536\nresult = valid\nsig = 306402304a7df2df6a32d59b6bfed54f032c3d6f3acd3ac4063704099cd162ab3908e8eeba4e973ee75b5e285dd572062338fe58023035365be327e2463dc759951c5c0be5e3d094cb706912fdf7d26b15d4a5c42ffebeca5ae73a1823f5e65d571b4ccf1a82\n\n# tcId = 235\n# special case hash\nmsg = 32313436363035363432\nresult = valid\nsig = 30660231009ad363a1bbc67c57c82a378e988cc083cc91f8b32739ec647c0cb348fb5c86472015131a7d9083bf4740af3351755195023100d310dc1509f8c00281efe571768d488027ea760fe32971f6cb7b57cdf90621b7d0086e26443d3761df7aa3a4eccc6c58\n\n# tcId = 236\n# special case hash\nmsg = 333335333030383230\nresult = valid\nsig = 306502310095078af5c2ac230239557f5fcee2e712a7034e95437a9b34c1692a81270edcf8ddd5aba1138a42012663e5f81c9beae2023040ee510a0cceb8518ad4f618599164da0f3ba75eceeac216216ec62bcceae8dc98b5e35b2e7ed47c4b8ebacfe84a74e6\n\n# tcId = 237\n# special case hash\nmsg = 36333936363033363331\nresult = valid\nsig = 3066023100a538076362043de54864464c14a6c1c3a478443726c1309a36b9e9ea1592b40c3f3f90d195bd298004a71e8f285e093a023100d74f97ef38468515a8c927a450275c14dc16ddbdd92b3a5cae804be20d29c682129247d2e01d37dabe38ffb74808a8b7\n\n# tcId = 238\n# special case hash\nmsg = 33333931363630373935\nresult = valid\nsig = 3065023100bbe835113f8ea4dc469f0283af6603f3d7a3a222b3ab5a93db56007ef2dc07c97988fc7b8b833057fa3fbf97413b6c150230737c316320b61002c2acb184d82e60e46bd2129a9bbf563c80da423121c161decd363518b260aaacf3734c1ef9faa925\n\n# tcId = 239\n# special case hash\nmsg = 31343436393735393634\nresult = valid\nsig = 30650230679c3640ad8ffe9577d9b59b18ff5598dbfe61122bbab8238d268907c989cd94dc7f601d17486af93f6d18624aa524a3023100e84dd195502bdcdd77b7f51d8c1ea789006905844a0e185474af1a583bab564ee23be0bc49500390dceb3d3948f06730\n\n# tcId = 240\n# special case hash\nmsg = 35313539343738363431\nresult = valid\nsig = 3066023100f6f1afe6febce799cc9b754279f2499f3825c3e789accef46d3f068e2b6781fd50669e80c3c7293a5c0c0af48e068e35023100f59cc8c2222ed63b4553f8149ebecc43b866719b294ef0832a12b3e3dbc825eeab68b5779625b10ae5541412ec295354\n\n# tcId = 241\n# special case has", + "h\nmsg = 35323431373932333331\nresult = valid\nsig = 3065023100f46496f6d473f3c091a68aaa3749220c840061cd4f888613ccfeac0aa0411b451edbd4facbe38d2dd9d6d0d0d255ed34023000c3a74fa6666f58c4798f30c3779813e5c6d08ac31a792c2d0f9cb708733f26ad6bf3b1e46815ae536aa151680bdee2\n\n# tcId = 242\n# special case hash\nmsg = 31313437323930323034\nresult = valid\nsig = 3066023100df8b8e4cb1bc4ec69cb1472fa5a81c36642ed47fc6ce560033c4f7cb0bc8459b5788e34caa7d96e6071188e449f0207a0231008b8ee0177962a489938f3feffae55729d9d446fe438c7cb91ea5f632c80aa72a43b9b04e6de7ff34f76f4425107fd697\n\n# tcId = 243\n# special case hash\nmsg = 3130383738373235363435\nresult = valid\nsig = 30660231008bb6a8ecdc8b483ad7b9c94bb39f63b5fc1378efe8c0204a74631dded7159643821419af33863b0414bd87ecf73ba3fb0231008928449f2d6db2b2c65d44d98beb77eeadcbda83ff33e57eb183e1fc29ad86f0ba29ee66e750e8170ccc434cf70ae199\n\n# tcId = 244\n# special case hash\nmsg = 37333433333036353633\nresult = valid\nsig = 3065023100e3832877c80c4ed439d8eadcf615c0286ff54943e3ae2f66a3b9f886245fea470e6d5812cef80c23e4f568d0215a3bfc02303177a7dbf0ab8f8f5fc1d01b19d6a5e89642899f369dfe213b7cc55d8eaf21dd2885efce52b5959c1f06b7cac5773e5b\n\n# tcId = 245\n# special case hash\nmsg = 393734343630393738\nresult = valid\nsig = 306502306275738f0880023286a9b6f28ea0a9779e8d644c3dec48293c64f1566b34e15c7119bd9d02fa2357774cabc9e53ef7e6023100d2f0a52b1016082bd5517609ee81c0764dc38a8f32d9a5074e717ee1d832f9ea0e4c6b100b1fd5e7f4bc7468c79d3933\n\n# tcId = 246\n# special case hash\nmsg = 33323237303836383339\nresult = valid\nsig = 3066023100d316fe5168cf13753c8c3bbef83869a6703dc0d5afa82af49c88ff3555660f57919a6f36e84451c3e8e5783e3b83fe3b023100995f08c8fec7cd82ce27e7509393f5a3803a48fe255fcb160321c6e1890eb36e37bcda158f0fa6899e7d107e52de8c3c\n\n# tcId = 247\n# special case hash\nmsg = 323332393736343130\nresult = valid\nsig = 306402300b13b8fd10fa7b42169137588ad3f557539a4e9206f3a1f1fe9202b0690defded2be18147f5b2da9285c0e7349735ea302300478ad317b22a247bf9334719b4c8ee84acf134515db77e6141c75d08961e1e51eaca29836744103de0f6a4c798d3eeb\n\n# tcId = 248\n# special case hash\nmsg = 3934303437333831\nresult = valid\nsig = 3065023015804429bcb5277d4f0af73bd54c8a177499a7b64f18afc566c3ce7096bdc6c275e38548edcfa0b78dd7f57b6f393e49023100d5951f243e65b82ba5c0c7552d33b11f1e90fde0c3fd014aac1bb27db2aaf09b667c8b247c4cdd5b0723fba83b4f999e\n\n# tcId = 249\n# special case hash\nmsg = 33323230353639313233\nresult = valid\nsig = 30650230359247c95776bb17492b7bf827f5f330fa9f9de7cc10441a1479c81776ce36cdc6a13c5f5149c4e39147a196bb02ed34023100f6ed9252a73de48516f4eabab6368fbff6875128af4e1226d54db558bd76eec369cc9b285bc196d512e531f84864d33f\n\n# tcId = 250\n# special case hash\nmsg = 343134303533393934\nresult = valid\nsig = 3065023100a557d1f63a2094f683429ecb35a6533bac897682775c0051e111eed6e076c48867cae005c5e0803800b050311e381cd602302a2f871efcf03cf1c8f509e076aaa2a76f1ea78d1c64804ea5b063b0324b8e98eb5825d04370106020ee15805dbedf81\n\n# tcId = 251\n# special case hash\nmsg = 31393531353638363439\nresult = valid\nsig = 3065023100f22bf91169b4aec84ca84041cb826f7dfc6f33d973f3c72433b8a0ca203aac93f7eed62be9bea01706402d5b5d3b0e6502307841d3bc34aa47e813a55c25203c5ec2342d838d5b4638c2705dcf4bac9c24f765b5d4c28fa3c7fda7a38ed5048c7de3\n\n# tcId = 252\n# special case hash\nmsg = 35393539303731363335\nresult = valid\nsig = 30660231009c196e39a2d61a3c2565f5932f357e242892737e9adfc86c6609f291e5e6fdbb23029ff915a032b0c5390ba9d15f203e023100d721e28e5269d7813e8a9aed53a37e652fec1560ca61f28f55ab4c262cc6214eee8d3c4c2ba9d1ba0ba19e5e3c7484a7\n\n# tcId = 253\n# special case hash\nmsg = 323135333436393533\nresult = valid\nsig = 30660231008ba1e9dec14d300b0e250ea0bcd4419c3d9559622cc7b8375bd73f7d70133242e3d5bf70bc782808734654bacd12daea023100d893d3970f72ccab35555ae91ebcfed3c5bfc5d39181071bc06ba382587a695e02ed482f1a74fe309a399eaee5f5bc52\n\n# tcId = 254\n# special case hash\nmsg = 34383037313039383330\nresult = valid\nsig = 306402302f521d9d83e1bff8d25255a9bdca90e15d78a8c9ea7885b884024a40de9a315bed7f746b5da4ce96b070208e9ae0cfa502304185c6f4225b8c255a4d31abb5c9b6c686a6ee50a8eb7103aaef90245a4722fc8996f266f262109c3b5957ba73289a20\n\n# tcId = 255\n# special case hash\nmsg = 343932393339363930\nresult = valid\nsig = 3065023100d4900f54c1bc841d38eb2f13e0bafbb12b5667393b07102db90639744f54d78960b344c8fbfbf3540b38d00278e177aa02303a16eff0399700009b6949f3f506c543495bf8e0f3a34feb8edd63648747b531adc4e75398e4da8083b88b34c2fb97a8\n\n# tcId = 256\n# special case hash\nmsg = 32313132333535393630\nresult = valid\nsig = 3065023100c0169e2b8b97eeb0650e27653f2e473b97a06e1e888b07c1018c730cabfdeeec4a626c3edee0767d44e8ed07080c2ac4023013f46475f955f9701928067e3982d4ba5a58a379a66f91b74fad9ac8aee30086be6f41c9c2d8fb80e0924dedbe67e968\n\n# tcId = 257\n# special case hash\nmsg = 31323339323735373034\nresult = valid\nsig = 306402302e868871ea8b27a8a746882152051f2b146af4ac9d8473b4b6852f80a1d0c7cab57489aa43f89024388aec0605b0263702306d8c89eed8a5a6252c5cead1c55391c6743d881609e3db24d70ead80a663570020798fbf41d4c624fcb1ce36c536fe38\n\n# tcId = 258\n# special case hash\nmsg = 32303831313838373638\nresult = valid\nsig = 3065023100abe6a51179ee87c957805ecad5ccebca30c6e3a3e6dbe4eb4d130b71df2bf590b9d67c8f49e81bf90ce0909d3c2dab4c02307110582fab495b21bd9dda064fbd7acc09d0544dcf7699be35ad16207ffa10e8904f9241a709487ba2ba7e34430b81c3\n\n# tcId = 259\n# special case hash\nmsg = 343534363038393633\nresult = valid\nsig = 3064023050252c19e60e4120b7c28b2c2e0a588e5d107518cd61e5c7999c6d465ea134f752322d8b83f5988fcdc62bd9adb36ccd0230193899352491dabfe4fc942e14ddacb200673729d61602cc0baf5732d262f36e5279865a810ce2f977f57686a0d0137a\n\n# tcId = 260\n# special case hash\nmsg = 31333837363837313131\nresult = valid\nsig = 3066023100eb725fdd539d7de8ea02fac8db6ec464f40c272a63e6b2718c4e0266bf1235dae330f747a6052f4319ecbe7bdade9bd0023100ae84507648ba2d1944bb67722ccd2cb94b92b59e89a1ae698c668bb57f481c42b216c23da4b1d8c0e502ef97fda05ad0\n\n# tcId = 261\n# special case hash\nmsg = 32303331333831383735\nresult = valid\nsig = 3064023025aa56fcbd92f2cf53bddbaa0db537de5843290731c1dd78036fcbded4a8f7187ddfed9f5ca9d98ea7b12d24b8d29d570230028f68372d66164810bf79c30a191116d496fe32314605dc1668289425fb3a15d7532dde1052a49a35866c147abde1d9\n\n# tcId = 262\n# special case hash\nmsg = 323535333538333333\nresult = valid\nsig = 3065023054bf7adc8548e7cae270e7b097f16b5e315158d21b0e652ce1cfe4b33126ba4a65bf227b4cddcaf22d33d82478937b20023100bfc1b8f1d02846a42f31e1bd10ba334065459f712a3bbc76005d6c6488889f88c0983f4834d0bf2249dbf0a6db760701\n\n# tcId = 263\n# special case hash\nmsg = 34363138383431343732\nresult = valid\nsig = 3066023100d3bb29ac0bd1f6058a5197f766d6ea3216c572ded62af46318c8c7f9547bb246553654279d69989d9af5ef4ccacf64da023100e10281122c2112a2a5a9d87ac58f64fb07c996a2d09292119e8f24d5499b2e8524ebd0570097f6cc7f9c26094a35c857\n\n# tcId = 264\n# special case hash\nmsg = 31303039323435383534\nresult = valid\nsig = 3066023100bc32e85e3112472408f9324586e525325128a38313c34b79700cb0a3f7262a90a1fcc40eef1f1a3884032a7a21810e0a023100c02f52541360358107a13dbea31f83d80397710901734b7adb78b1fc904454a28a378514ccef80ecc70c1d8e55f11311\n\n# tcId = 265\n# special case hash\nmsg = 32373536343636353238\nresult = valid\nsig = 3066023100f04b9e17c71d2d2133ea380d71b6b82c8a8e3332703e9d535b2c2bca9b0ad586d176a6049afa35edd9722edb5c33daa3023100bd44d4a6263380ca6f22e76c26d5f70f41f4d7cae7d4b9c1b8dc2ba5298d9d12408b04614e2f3796cc19c950c8c88a10\n\n# tcId = 266\n# special case hash\nmsg = 313139363937313032\nresult = valid\nsig = 3065023100c8807351d8e261338e750cb9a52f4be4470b63f6f181cbe0e81d43b60824ba4be1bba42b1783897a0d72b0614018b02f023052e3a598c8be982127e961eed2b04f21c86df4ebcab0d955a7c66ec7f818898798ee75367a85022276b912c0a072bff7\n\n# tcId = 267\n# special case hash\nmsg = 323333313432313732\nresult = valid\nsig = 306402306152841b6fb460546eeb4158a3e5ffa54f51aa6a208987be899b706055cd59d8ec7c01f4634254fe050e1d4ec525a173023073f0c5f13640d892c28f701428e8fbfb736b6478bbd972c8c684977556ed599a70d313e06b126080e13068d56e1c10be\n\n# tcId = 268\n# special case hash\nmsg = 31363733343831383938\nresult = valid\nsig = 3066023100842f8d2814f5b7163f4b21bd9727246e078ad1e7435dfe1bc5f9e0e7374232e686b9b98b73deab9e43b3b7f25416c2be023100852c106c412300bac3ba265990b428a26076ab3f00fd7657bbd9315fa1cd2a1230a9a60d06b7af87aa0a6cf3f48b344c\n\n# tcId = 269\n# special case hash\nmsg = 31343630313539383237\nresult = valid\nsig = 3066023100e13f6d638b9d4fba54aa436a945cfea66dec058fab6f02629326", + "5884457b5a86e8e927d699bc64431b71e3d41df200440231009832cd1b4177118ed247b4f31277da15f420179f45c71a237d77f599a45df68247bac3dcef0868ecd1665005c25b7c6c\n\n# tcId = 270\n# special case hash\nmsg = 38393930383539393239\nresult = valid\nsig = 3064023009fff1c2e4ff8643cbfad588620c2bf7aaca5cf4242969142c7145b927bd82ed14f3ae8c6e2ce2da63b990b9f1be6d640230780c816f6c86343b008235ee986abf2136123ed247e4751e4d5467334f08e5e2ca1161254f68c3e6678e2d0b87d1cc7c\n\n# tcId = 271\n# special case hash\nmsg = 34333236343430393831\nresult = valid\nsig = 3066023100ffae6e7d2cea71b5a9c73cbc1285a8d252949772afe1aa27fb137740fc429c2a8c8648c9a5ba678a32f7ae7689b395ca02310089d54cd13a162c34189ff524813690e79768af8ebe794cc941dfe7fdf2cb8dd0b42519f034ea4d4f1c870046d13210e1\n\n# tcId = 272\n# special case hash\nmsg = 32333736343337353537\nresult = valid\nsig = 3066023100efa3c5fc3c8be1007475a2dbd46e3578bb30579445909c2445f850fb8aa60aa5b1749cc3400d8ffd81cb8832b50d27b4023100b36a08db3845b3d2ebd2c335480f12fb83f2a7351841ea3842ec62ad904b098efbf9faa7828b9c185746d9c8bd047d76\n\n# tcId = 273\n# special case hash\nmsg = 383630333937373230\nresult = valid\nsig = 3066023100f577095f7c74594aa1c69aca9bb26e0c7475ae5163058ecc074b03af89e56b12b6a72450589dacf0d7e6b172d0017a0e023100bee756a0b5d0a677bf95f98da512854f3ecb712f94570e1ad230eab17c527b6a8bcc9ae202b657a3611ecffa94ba0d54\n\n# tcId = 274\n# special case hash\nmsg = 35383037373733393837\nresult = valid\nsig = 306502300ae7688c7de5882eb9c3172f5500015552f998fb53702c6cd4b03404d5a0510a8073db95db544808dbd76659fd20cf12023100bc610fe5f04d8909cc439615fb7e302d3d82992817647c50c1f467090a52b328cbbc0262f18ffb6fd9f3bd60013cea08\n\n# tcId = 275\n# special case hash\nmsg = 353731383636383537\nresult = valid\nsig = 306502305dc8a6d84afaaf900d78c6a91dc5e12e7d17891a52c1468253061d704b8940bef85b9fe807a0e02b56e8dd37c22fbb82023100914258de52932c4604dceb5ce7cc0a92e021edca9b819b84a9f25652f9af13f956a1139ee95c7aa7a079e3ad8317fbdb\n\n# tcId = 276\n# special case hash\nmsg = 38363737333039333632\nresult = valid\nsig = 3066023100da55a6dbb845205c87c995b0bbc8444ffcba6eb1f4eb9d30f721d2dacc198fb1a8296075e68eb3d25ef596a952b8ea19023100829f671dccad6d7b0b8c4b39ff3f42597965d55c645fb880a66fe198d9344c9311f1598930392470379fa5ff43c75d04\n\n# tcId = 277\n# special case hash\nmsg = 32343735353135303630\nresult = valid\nsig = 306402303730dfd0985de77decdd358a544b47f418d3fab42481530d5d514859894c6f23b729af72b44686058de29687b34b3b0c023065bdfaf0ac217a80b82eb09c9f59c5c8cfbf50a6eb979a8f5f63eab9bd38ee0938e4b23102112033b230a14ad2790e3f\n\n# tcId = 278\n# special case hash\nmsg = 393733313736383734\nresult = valid\nsig = 3065023055210df2124c170e259af1dafa73e66613aa18ced8eb40a7f66155d50d5f3124edfa55276de4797013177291e8afeff6023100c314d3a310a60647dad3318ed7f0405a64c3f94b5ac98e6be12208c8ad9835fa6b81a0ea59f476608634657b66e00ffd\n\n# tcId = 279\n# special case hash\nmsg = 33363938303935313438\nresult = valid\nsig = 3065023100f6c9897144b5d84964515eb0c8c3d0d9c6687c957887e93c29b2a21804b40307fb88bfd5cca11c95885d28867cb33a740230656bafca242290f7d7e9801b6cfd4bd1b07e8d7c6c1c59fd3d8e82e9846a1b2855c85420e4ee6ec2d97fec2161eeb243\n\n# tcId = 280\n# special case hash\nmsg = 3130373530323638353736\nresult = valid\nsig = 3065023100bfbcc5f343e2ab392ce6c1c02d91c00650c47136836a5d0622d476ac2b3274395721b1ab21882ed5cabed093b43b133f0230043e9fc64c6108df73f9eced90f91185f83d89662f5a9d810c1824fbfd97b842f784305fd6b9c28c80d32d52b1538d12\n\n# tcId = 281\n# special case hash\nmsg = 383639313439353538\nresult = valid\nsig = 3066023100b8f793ddd47e657a9081cbed1600fb22b38ad6a155f9c006ba98de1f383b4c0918ceea72253e0f869524b2369cd9bd8c02310096c452ff58f42e0853040a6d5c7e750b57dd4af06e2df8194e8d524e81ac000ee3315bbeabbf6a21f61b8904c55378d9\n\n# tcId = 282\n# special case hash\nmsg = 32313734363535343335\nresult = valid\nsig = 30640230263ab1c93567e93b5ec4e380b0d3bb5ea1ce693c14a47afccc539aaf197f099d331ea9e26f1a0057148d46727acb61880230621db07ce94110e2be74fa953a00a8a554225b3f2c0f6c56b4ebd4db2f57ca2565ed3323fd708bb56ac6e28bfb40f2e7\n\n# tcId = 283\n# special case hash\nmsg = 363434353530373932\nresult = valid\nsig = 306502310096f4a2b3529c65e45a0b4c19c582dc8db635d4e74f0b81309696b23be920ba8ec553d4b370df4c59d74dd654bac6df5802301573ba1b280c735a3401d957ecd3b8908e4e0b7d80239ce042594d182faf2ddf811c9056aac4c87f4f85043766a26614\n\n# tcId = 284\n# special case hash\nmsg = 353332383138333338\nresult = valid\nsig = 306602310096a691b19a6294b311a438f8da345e480b1deaa1e940cfbf02177d5f08479976ea58aee31011d50b5542be188c9d63df0231008f67dc9e1588aeb8be180013d41a036f9badfad9fe9340910cbf87243776f54bef7da2ebf3a7643866eb9a3b23fe59b9\n\n# tcId = 285\n# special case hash\nmsg = 31313932303736333832\nresult = valid\nsig = 3066023100cff27948c6d902c73d103d0802eb144dd89c1b0e3b9f9a5e498b0361dc122a0d555160d8c64d61539c1dbbd4bc18971f023100b60827488c9f16ba28378fd59b1a29c65073335a7f236131134674c62c8396f193c76f2395ddaaa4f24b69161eb69b4d\n\n# tcId = 286\n# special case hash\nmsg = 31353332383432323230\nresult = valid\nsig = 3066023100e90e22d9e535dfdfd86e098d5d6a0ae08f69d4a3ffaa39f6930bcf5f5ad02ee0d0472ae984edd9f0bbe5e7d63fd4f6ac023100e3f57b0a4629ecaa21f2d34a7a0834d57ba20f99c6e31b43c37811cc23b9957c8f3356f4462214d3c8e58745e50f23f6\n\n# tcId = 287\n# special case hash\nmsg = 313536373137373339\nresult = valid\nsig = 3064023018b70e272a98cc48e1e0af73146f0f972bbfbeb6b985feb2c4acd695a7a41b99c415be9c46aedaf3ddff67a65a89e387023047d6bcea088f622ad35d88bcf46d71827bcba2f57c36d6fb8a4bf2befdc0d4e3ef366d5966c4d076d3cfa43d6626717b\n\n# tcId = 288\n# special case hash\nmsg = 34333033303931313230\nresult = valid\nsig = 3066023100acfd981c55fd5286cfce173726d51c3d25f65b11b7673729a62167256774f7c894b74662a212c706e00cef096074162f023100f4d471c97797c24d96aec1de85a249ef468d6036cd712563aeb65cea4995f3ee85e769b874f09a08637a44a96084be7a\n\n# tcId = 289\n# special case hash\nmsg = 37373335393135353831\nresult = valid\nsig = 3065023100f15fcbeea8b64dad5e8566a2c37913c82d6be9d9668df469bd0b591c3923a6e12644eaf697d466fa7cd513983d946a40023070063966801079351526999e5c5c2c5f627e4c8bc96784bcbe715fe7c7afcf69785d1c8c7ccd3725e364101638396597\n\n# tcId = 290\n# special case hash\nmsg = 323433393636373430\nresult = valid\nsig = 3066023100d995147939ae6d8f62bb57372227395839e25a0d4308b899d5f506cf9e0a01e8115b7e4b822f037ec95752bd9e892f5e0231009bb4d07333e468f8482a790a2a2e650e2c42da8240ec5e402506b368122f046680cd71e0117897cce3df4a1555fc8876\n\n# tcId = 291\n# special case hash\nmsg = 34333237363032383233\nresult = valid\nsig = 3064023043c6ce5184476f3f496afeae3cb96a3f9f038957686c93437b8266a233022371d266e904aa096c3566cb33824b88075e0230680c13245a8bc560b638d26f0c5f261964130256939552d3fffb07b658355611612c268a89541055d3c2bf9e82cf4da3\n\n# tcId = 292\n# special case hash\nmsg = 32393332303032353932\nresult = valid\nsig = 30630230447539941dc350767fc841083d25d9247a0807e1e22e0bb9d94f504f721981b413d521efbd75e4fe831ee26338cf3de3022f395ab27ea782cee4be53e06c7616bbd41d6926b18d219d75d5979f13cba2f52101019b0ec0a41ffdbf29ef73ddba70\n\n# tcId = 293\n# special case hash\nmsg = 36343039383737323834\nresult = valid\nsig = 3066023100a0ba8e8b979c20345e34fca98531900164a859923bd6986a9c39236a2f5de053a252997f35e5b84b0d48ba0f8d09aedd023100facd6df04358fcd95fa9018a6fc0828dfe319812ff65929c060b18ad4b9f06e7fc0addd1b695315d71c15e51dc51d719\n\n# tcId = 294\n# special case hash\nmsg = 36303735363930343132\nresult = valid\nsig = 3065023100b8378390f71f0bb6663f1846daf6908f8c84f770ae740cc8054122494cf0ffa9437ab26040ca22808fb29a810b70126e0230427636b929a500abc34d9f22977b81e734919afaf3ed2c91eeada7074e0c16bdc52f960eaec9db5a879c1e6414035101\n\n# tcId = 295\n# special case hash\nmsg = 32333231363233313335\nresult = valid\nsig = 3066023100f36a9048fd94803d3d6d1b11430b90b94ef8d5d2ad89018c69473ce9cfe0d6105b3c2fb2e7555ccd25f65af8c872bdc602310081254841e7ecbfd0d810afaaf5afd6d6c5d0542bb00cc183b1db01767120afbcc0006ddcba8db7baf65f302723dabc4d\n\n# tcId = 296\n# special case hash\nmsg = 36343130313532313731\nresult = valid\nsig = 3066023100d8a4d96409c191baa9540bf35f1d5192f9352d7f0e14f92c0e8e1f19f559b42ed3c6b7bdb6becc56584fb5c09421e2e4023100d966ba13d4245e248eafb46f2a3df92c2037d5969c7db6dbcb0ff4b21850e16a18a29785267239886365cf721a212536\n\n# tcId = 297\n# special case hash\nmsg = 383337323835373438\nresult = valid\nsig = 306402301d5d86fd48e65b0cf0b0b46062241f89cf65785dd818f93f1162771a38a15f20febc261812ecaaf6f4f2b86b3362d7eb02300c76e363de1432513cb9dad6493931381ecd25f142e61968b6f20d7b", + "1270cb9e38a7ae54e4778aff4025eb00c6a67aef\n\n# tcId = 298\n# special case hash\nmsg = 33333234373034353235\nresult = valid\nsig = 306402300508eed148f061114be18e8a86188feabf76b873b36eadcca9c2c60e24a2002fe456231decf7a8f6f032c08dbe0ab5a90230694c0ad781b2341e30e1d0739ac99672064f48821a69852c7940cf1d621738199c980d56d2a0b71b3fc6011c6b2444ba\n\n# tcId = 299\n# special case hash\nmsg = 31343033393636383732\nresult = valid\nsig = 30650230726ef88bb7947a043116c111cb519ddeda3e6ffbf724884a1b22c24409cdf2779d93ce610c8c07411c2b001399103d6d02310095dc1d65046caf0e8dad07b224798d6f7807278e737883e7c7bf0b446791d4ee144c26f710134861af4e6771d4082896\n\n# tcId = 300\n# special case hash\nmsg = 31323237363035313238\nresult = valid\nsig = 3066023100eb0e8e3c639f5eba8eccd9020d0ec62d8ac73f3fddbdfa08fdb2155deb0a536923ebd55e20020cab9f8e39a43a88be11023100c796df399fc35883dd5dae6817d02d3d67a8eec6601585e5e36fd2c134eddb1447ec12b144dddc9aae28a84f22602641\n\n# tcId = 301\n# special case hash\nmsg = 34393531343838333632\nresult = valid\nsig = 3065023100e8f8c69d0396ea900f9757736d2b19dbc2d2a8c01dccf490c8b9455bd63b34c095867e7cf3b84dc7c3c3d6b51bebf405023058152a7564eeb22a3e26597026d0cd7835725bd512245448cb5016eb48ea759809fd6949d0ee5d579643f72f908c16bb\n\n# tcId = 302\n# special case hash\nmsg = 32343532313237303139\nresult = valid\nsig = 30650230380b4e48b3ff012af7c08bf871d9f4da0c708b5494a986d3d80b1979e579d0dbee61db9bc3c04c396176410788e15a0f023100e6971c013c965a7e4df10f95620a5092fab096bd5b50828f4bc91c5e479bccf6e0daf287e7ef580fa9ea153fa1a507a2\n\n# tcId = 303\n# special case hash\nmsg = 31373331353530373036\nresult = valid\nsig = 30650231008061de12029e2b000d157a455ecf2301222f092df95b9551b78cf0ef3a64f12212b57ec7b16d2c0f258946f51cb1633a02300ac2ca6ad99b29ca29a0dc38b34443ee41020f81ed9087cef7681a00c4fe60653a572944ba37f1fe51d112bfffbdd701\n\n# tcId = 304\n# special case hash\nmsg = 31363637303639383738\nresult = valid\nsig = 3066023100e74f2a791eeb7341cff6cc1c24f459e6c0109924f7984639ae387e3ceb58758a1bc3839dea1fc3a3799562225e70a733023100d90e4d0f47343268e56bbcb011bd4734390abc9aa1304b6253e78f5a78b6905aa6bf6a3892a4ae1a875c823ae5a83e87\n\n# tcId = 305\n# special case hash\nmsg = 343431353437363137\nresult = valid\nsig = 306402306a1cd0ff7906be207b56862edcbc0d0bbfb26d43255c99f6ab77639f5e6103a07aa322b22ed43870d1ce6df68aa0a8c10230655558b129aa23184500bd4aab4f0355d3192e9b8860f60b05a1c29261f4486a6ae235a526339b86c05f5fac477b6723\n\n# tcId = 306\n# special case hash\nmsg = 343233393434393938\nresult = valid\nsig = 306602310081111fdc5f0de65583c7a5668d26c04ee52e08dac227753132cff1741cb721e112aa793c0d5fa047faf14cb45dd13e1f0231009a25cf1e6c152bc3e216e021561d194979f1c11fe17019ed7bac2c13c4010f209665e3b6f33b86641704d922b407818f\n\n# tcId = 307\n# special case hash\nmsg = 34383037363230373132\nresult = valid\nsig = 30660231009b66d122a315095b2b66ccb97272c476a2d760e827fdea05732d634df3d066569c984dd941aad5f5dec4c2e1b7b94a0002310096c32403c85bc3d0ee87f96a600182796dce53d54d7467ae660a42b87bb70792f14650ac28a5fa47ce9ca4d3b2c25878\n\n# tcId = 308\n# special case hash\nmsg = 32313634363636323839\nresult = valid\nsig = 306402302bb062a002088d62a0b7338d0484fedfe2af7e20cebf6a4788264eb27cb4ebc3cc81c816e6a35722cf9b464783094cb8023046cc21b70f2133f85ab0443bebe9c6fc62c6e2ec1fd9c4ddf4a6d5f3f48eb7abf1ee7bdf6725879fd1b7daafb44f6e04\n\n# tcId = 309\n# special case hash\nmsg = 31393432383533383635\nresult = valid\nsig = 3065023033e87061ee9a82eb74d8bb4ae91606563c2e4db8b09183cc00d1119ab4f5033d287a1fc90a2348163fdf68d35006fd7f02310096db97c947ee2e96e6139d3bcbf5a43606bae1ad3ca28290fbad43b281ef115ec1b98bc581ef48094f8c1aa8e36c282a\n\n# tcId = 310\n# special case hash\nmsg = 32323139333833353231\nresult = valid\nsig = 3064023070f80b438424ba228a7d80f26e22ff6a896243c9d49c75573489ee0de58ec60efd103838143465bd8fe34672ba9496170230115492bd9365b96f38747536318bffb819e7c146df3a5a7a46d6288c7fdf31cff570b22176aa398daba9073ab1e7b9bf\n\n# tcId = 311\n# special case hash\nmsg = 393236393333343139\nresult = valid\nsig = 3066023100ff16ca0389ea6948f4305b434fe0aa589f880f5aa937767c31170ee8da6c1ad620c993d40ddf141b7fda37424d51b5cd023100ba0f86985dffc61d6e35a37de06918b11e431b72403161acfb8f05c469f1fcfa6e215c6f7eb5a0a5e0cc9e7be79ce18b\n\n# tcId = 312\n# special case hash\nmsg = 373639333836333634\nresult = valid\nsig = 3065023100d60c24bee05f5198cd155ad095ffb956bbcfb66b82fc0d3755119915a62f2f923557b85ddc1d12e6a757f23042cb601b02302c4d968b5eac930b51d283b418fcff6df3a9d6d66e3812cd1bf5fde797fd203a7c439b1b381e4fe8b44e6f108764a7dd\n\n# tcId = 313\n# special case hash\nmsg = 32373335393330353733\nresult = valid\nsig = 3066023100bdf634d915a4fae7a155532ca2847c33a6babe7ef8db0af50f485db3dd2c8bffe722394583932f6eb5cd97f6db7561d9023100bb425cae2e5483174b5ed873af4329da4618c14458141850bee3c7bf1ffb3f2030159043277dacc708e9d32f63400083\n\n# tcId = 314\n# special case hash\nmsg = 38333030353634303635\nresult = valid\nsig = 30650230061320a3bcebac33cf399d45d1e1e1b34f37288fe4753f4fddfd496eff427e1d26b1b91d749cc34c12f4ecef837c0e8f023100fd5cf468cda319fe06e773a190c38de6e150a321ac1c416ad875432cdb7a07134c446f13068e71a1a96e35da923974ad\n\n# tcId = 315\n# special case hash\nmsg = 34333037363535373338\nresult = valid\nsig = 3065023100d620f063d33efa859b623f6c9a92340e4cdd854ffbe3e5e01379177aee31715ce587b00bd0aea98fddf236d2fc8a7a740230671f4b7c187297dc236c61888b6d9397e97783077cc4101807d79ee62e4a53a78c4b6a3a31b03178668af894a3d8902e\n\n# tcId = 316\n# special case hash\nmsg = 39363537303138313735\nresult = valid\nsig = 306502310091c556c5bddd529fe903b86afc0eb8fa1f49425b779a39114ae563bebc947e633ba4ee98948faa8940dfe2562c63e1c50230198b00079d8db072d25b0a49bc8bc36457926f3c101527528df6679f92c76f1b487e6695d4b92fe33b4ee7046a6a5df9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 044bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85dd30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]\n[key.wx = 4bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85d]\n[key.wy = 00d30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85dd30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]\n[sha = SHA-384]\n\n# tcId = 317\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 304d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68b023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# tcId = 318\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 043623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]\n[key.wx = 3623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6]\n[key.wy = 768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]\n[sha = SHA-384]\n\n# tcId = 319\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d516cb8ac8e4457b693d5192beeb6ce7d9a46bef48eecf3ea823286f101f98d130f5a26dc6fec23662eff07f14486fd58456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]\n[key.wx = 00d516cb8ac8e4457b693d51", + "92beeb6ce7d9a46bef48eecf3ea823286f101f98d130f5a26dc6fec23662eff07f14486fd5]\n[key.wy = 008456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d516cb8ac8e4457b693d5192beeb6ce7d9a46bef48eecf3ea823286f101f98d130f5a26dc6fec23662eff07f14486fd58456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]\n[sha = SHA-384]\n\n# tcId = 320\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d1aee55fdc2a716ba2fabcb57020b72e539bf05c7902f98e105bf83d4cc10c2a159a3cf7e01d749d2205f4da6bd8fcf1\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a992a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]\n[key.wx = 00a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a9]\n[key.wy = 0092a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a992a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]\n[sha = SHA-384]\n\n# tcId = 321\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b6b681dc484f4f020fd3f7e626d88edc6ded1b382ef3e143d60887b51394260832d4d8f2ef70458f9fa90e38c2e19e4f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd32251171312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]\n[key.wx = 554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd322511]\n[key.wy = 71312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd32251171312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]\n[sha = SHA-384]\n\n# tcId = 322\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020101\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0444ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591cd027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]\n[key.wx = 44ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591c]\n[key.wy = 00d027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000444ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591cd027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]\n[sha = SHA-384]\n\n# tcId = 323\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020102\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]\n[key.wx = 00e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390]\n[key.wy = 00e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]\n[sha = SHA-384]\n\n# tcId = 324\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020103\n\n# tcId = 325\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52975020103\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0405e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab88a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]\n[key.wx = 05e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab]\n[key.wy = 0088a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000405e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab88a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]\n[sha = SHA-384]\n\n# tcId = 326\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036020102023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accd7fffa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 040bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]\n[key.wx = 0bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1]\n[key.wy = 00ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]\n[sha = SHA-384]\n\n# tcId = 327\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3036020201000230489122448912244891224489122448912244891224489122347ce79bc437f4d071aaa92c7d6c882ae8734dc18cb0d553\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0458f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]\n[key.wx = 58f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566]\n[key.wy = 497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000458f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]\n[sha = SHA-384]\n\n# tcId = 328\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c02072d9b4d347952cd023100ce751512561b6f57c75342848a3ff98ccf9c3f0219b6b68d00449e6c971a85d2e2ce73554b59219d54d2083b46327351\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12998d63a5b5ad1b72b899f0b132e4952aaa19d41fdeea48b1ed6b8358dd1db207fd66e01453ad40f67b836adc802d5fe8]\n[key.wx = 00fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12]\n[key.wy = 00998d63a5b5ad1b72b899f0b132e4952aaa19d41fdeea48b1ed6b8358dd1db207fd66e01453ad40f67b836adc802d5fe8]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12998d63a5b5ad1b72b899f0b132e4952aaa19d41fde", + "ea48b1ed6b8358dd1db207fd66e01453ad40f67b836adc802d5fe8]\n[sha = SHA-384]\n\n# tcId = 329\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d1033e67e37b32b445580bf4efb02302ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad5215c51b320e460542f9cc38968ccdf4263684004eb79a452\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]\n[key.wx = 1b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51]\n[key.wy = 00c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]\n[sha = SHA-384]\n\n# tcId = 330\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 303602020100023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]\n[key.wx = 1734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403]\n[key.wy = 00ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]\n[sha = SHA-384]\n\n# tcId = 331\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d062522bbd3ecbe7c39e93e7c24023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0452ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c787a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]\n[key.wx = 52ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c7]\n[key.wy = 0087a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000452ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c787a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]\n[sha = SHA-384]\n\n# tcId = 332\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3065023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c443adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]\n[key.wx = 00bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c44]\n[key.wy = 3adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c443adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]\n[sha = SHA-384]\n\n# tcId = 333\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020101\n\n# tcId = 334\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020100\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bddac4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]\n[key.wx = 00f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bdda]\n[key.wy = 00c4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bddac4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]\n[sha = SHA-384]\n\n# tcId = 335\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04370d9e2e31c712c8028092f802319d7fdf5b3319a8518d08bed3891508c7060cfe2236e18fa14fe077093ceae633e5430fd79aacf9d16ecc19b12d60fba4998dfc682702ec7c8bdd4a590035773b8c9c570ac7dcd414e03252f7a0e6f53b5863]\n[key.wx = 370d9e2e31c712c8028092f802319d7fdf5b3319a8518d08bed3891508c7060cfe2236e18fa14fe077093ceae633e543]\n[key.wy = 0fd79aacf9d16ecc19b12d60fba4998dfc682702ec7c8bdd4a590035773b8c9c570ac7dcd414e03252f7a0e6f53b5863]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004370d9e2e31c712c8028092f802319d7fdf5b3319a8518d08bed3891508c7060cfe2236e18fa14fe077093ceae633e5430fd79aacf9d16ecc19b12d60fba4998dfc682702ec7c8bdd4a590035773b8c9c570ac7dcd414e03252f7a0e6f53b5863]\n[sha = SHA-384]\n\n# tcId = 336\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b902307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04941e6cfa356e572dcccaeb594b06955d99dc4bf07958fc98ffa17de11c7521bf2c7aa8ff260952fcb7aac078ede67b4790a78a0296b041a10f003df1998da4cc4a1614ebcbf5d239431f33d90d3023edc1802e8db6dabcbae67cc314da2aabab]\n[key.wx = 00941e6cfa356e572dcccaeb594b06955d99dc4bf07958fc98ffa17de11c7521bf2c7aa8ff260952fcb7aac078ede67b47]\n[key.wy = 0090a78a0296b041a10f003df1998da4cc4a1614ebcbf5d239431f33d90d3023edc1802e8db6dabcbae67cc314da2aabab]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004941e6cfa356e572dcccaeb594b06955d99dc4bf07958fc98ffa17de11c7521bf2c7aa8ff260952fcb7aac078ede67b4790a78a0296b041a10f003df1998da4cc4a1614ebcbf5d239431f33d90d3023edc1802e8db6dabcbae67cc314da2aabab]\n[sha = SHA-384]\n\n# tcId = 337\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b902307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294ba\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 043ecfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]\n[key.wx = 3ecfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383]\n[key.wy = 00d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043e", + "cfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]\n[sha = SHA-384]\n\n# tcId = 338\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 044150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]\n[key.wx = 4150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4]\n[key.wy = 00eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]\n[sha = SHA-384]\n\n# tcId = 339\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec63260230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992ff34ebba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]\n[key.wx = 00e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992f]\n[key.wy = 00f34ebba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992ff34ebba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]\n[sha = SHA-384]\n\n# tcId = 340\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c090a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]\n[key.wx = 00ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c09]\n[key.wy = 0a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c090a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]\n[sha = SHA-384]\n\n# tcId = 341\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa84ecde56a2cf73ea3abc092185cb1a51f34810f1ddd8c64d\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 043d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c139aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]\n[key.wx = 3d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c1]\n[key.wy = 39aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c139aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]\n[sha = SHA-384]\n\n# tcId = 342\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0230533b0d50480a3ef07e7e8af8b1097759bc03ac9a1c7ed6075a052869f57f12b285613162d08ee7aab9fe54aaa984a39a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd001ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]\n[key.wx = 00ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd00]\n[key.wy = 1ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd001ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]\n[sha = SHA-384]\n\n# tcId = 343\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d49a253986bbaa8ce9c3d3808313d39c3b950a478372edc009bc0566b73be7b05dad0737e16960257cc16db6ec6c620f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0488738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab2529388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]\n[key.wx = 0088738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab252]\n[key.wy = 009388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000488738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab2529388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]\n[sha = SHA-384]\n\n# tcId = 344\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0230285090b0d6a6820bbba394efbee5c24a2281e825d2f6c55fb7a85b8251db00f75ab07cc993ceaf664f3c116baf34b021\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]\n[key.wx = 00f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36]\n[key.wy = 00b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]\n[sha = SHA-384]\n\n# tcId = 345\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b39af4a81ee4ae79064ed80f27e1432e84845f15ece399f2a43d2505a0a8c72c5731f4fd967420b1000e3f75502ed7b7\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d4b39e62fd48bae141d0e1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]\n[key.wx = 399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d", + "4b39e62fd48bae141d0e]\n[key.wy = 1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d4b39e62fd48bae141d0e1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]\n[sha = SHA-384]\n\n# tcId = 346\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100af4a81ee4ae79064ed80f27e1432e84845f15ece399f2cbf28df829ccd30f5ef62ec23957b837d73fe4e156edccd4465\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]\n[key.wx = 1578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c]\n[key.wy = 76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]\n[sha = SHA-384]\n\n# tcId = 347\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02305e9503dc95cf20c9db01e4fc2865d0908be2bd9c733e597e8a5bb7b7a62abdff6dbe3978ae56536d0fb01172ecd55f57\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0433ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d823dd03f3919027f004537bd8ee09f3a3]\n[key.wx = 33ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab]\n[key.wy = 1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d823dd03f3919027f004537bd8ee09f3a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000433ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d823dd03f3919027f004537bd8ee09f3a3]\n[sha = SHA-384]\n\n# tcId = 348\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02301ee4ae79064ed80f27e1432e84845f15ece399f2cbf4fa31a3ae8edab84dc3330a39f70938e3912bd59753de5aed3088\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04040771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33ddae5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]\n[key.wx = 040771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33dda]\n[key.wy = 00e5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004040771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33ddae5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]\n[sha = SHA-384]\n\n# tcId = 349\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bb51cd3ba8eb201f53ddb4e34e08c0ff7dff9378106784d798d5a3440bd6dc34be3a0eaef8776619a0c97fefb15720b3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0498d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b792399a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]\n[key.wx = 0098d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b7923]\n[key.wy = 0099a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000498d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b792399a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]\n[sha = SHA-384]\n\n# tcId = 350\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100e707e267ea635384a6da09823149f5cb7acbb29e910d2630c5fb5afbc42aa8436349b214a3b8fb9481ec999e005091f8\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]\n[key.wx = 00d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5]\n[key.wy = 00f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]\n[sha = SHA-384]\n\n# tcId = 351\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100acc4f2afb7f5c10f818175074ef688a643fc5365e38129f86d5e2517feb81b2cd2b8dc4f7821bfd032edc4c0234085d9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0482f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d318a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]\n[key.wx = 0082f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d31]\n[key.wy = 008a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000482f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d318a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]\n[sha = SHA-384]\n\n# tcId = 352\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02310083276c0793f0a19742422f8af671ccf965fa7d18d541bef4c05b90e303f891d39008439e0fda4bfad5ee9a6ace7e340c\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f9990f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]\n[key.wx = 00f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f99]\n[key.wy = 0090f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f9990f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]\n[sha = SHA-384]\n\n# tcId = 353\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100942848586b534105ddd1ca77df72e1251140f412e97b62afbf85d4822309176b5965453dee3fab709e14156b3dfcecca\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb", + "591524a7f15dd41496681eda98939aae729fede85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]\n[key.wx = 00f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb591524a7f15dd41496681eda98939aae729fed]\n[key.wy = 00e85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb591524a7f15dd41496681eda98939aae729fede85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]\n[sha = SHA-384]\n\n# tcId = 354\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffed2119d5fc12649fc808af3b6d9037d3a44eb32399970dd0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0414249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]\n[key.wx = 14249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a]\n[key.wy = 28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000414249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]\n[sha = SHA-384]\n\n# tcId = 355\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023079b95c013b0472de04d8faeec3b779c39fe729ea84fb554cd091c7178c2f054eabbc62c3e1cfbac2c2e69d7aa45d9072\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0450a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6cbdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e35221c51259f337c7288a2f86bc]\n[key.wx = 50a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6c]\n[key.wy = 00bdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e35221c51259f337c7288a2f86bc]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000450a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6cbdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e35221c51259f337c7288a2f86bc]\n[sha = SHA-384]\n\n# tcId = 356\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bfd40d0caa4d9d42381f3d72a25683f52b03a1ed96fb72d03f08dcb9a8bc8f23c1a459deab03bcd39396c0d1e9053c81\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 044d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]\n[key.wx = 4d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd]\n[key.wy = 680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]\n[sha = SHA-384]\n\n# tcId = 357\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304c7d219db9af94ce7fffffffffffffffffffffffffffffffef15cf1058c8d8ba1e634c4122db95ec1facd4bb13ebf09a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0463d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13aa9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]\n[key.wx = 63d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13a]\n[key.wy = 00a9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000463d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13aa9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]\n[sha = SHA-384]\n\n# tcId = 358\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d219db9af94ce7ffffffffffffffffffffffffffffffffffd189bdb6d9ef7be8504ca374756ea5b8f15e44067d209b9b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c49ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]\n[key.wx = 00d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c4]\n[key.wy = 009ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c49ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]\n[sha = SHA-384]\n\n# tcId = 359\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a433b735f299cfffffffffffffffffffffffffffffffffffdbb02debbfa7c9f1487f3936a22ca3f6f5d06ea22d7c0dc3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0431f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b47823140035bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]\n[key.wx = 31f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b4782314003]\n[key.wy = 5bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000431f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b47823140035bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]\n[sha = SHA-384]\n\n# tcId = 360\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b9af94ce7fffffffffffffffffffffffffffffffffffffffd6efeefc876c9f23217b443c80637ef939e911219f96c179\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]\n[key.wx = 00bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3]\n[key.wy = 00c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]\n[sha = SHA-384]\n\n# tcId = 361\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a2762762762762762762762762762", + "76276276276276276273d7228d4f84b769be0fd57b97e4c1ebcae9a5f635e80e9df\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 046fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]\n[key.wx = 6fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4]\n[key.wy = 375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]\n[sha = SHA-384]\n\n# tcId = 362\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023073333333333333333333333333333333333333333333333316e4d9f42d4eca22df403a0c578b86f0a9a93fe89995c7ed\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cdecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]\n[key.wx = 00baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cd]\n[key.wy = 00ecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cdecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]\n[sha = SHA-384]\n\n# tcId = 363\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffda4233abf824c93f90115e76db206fa7489d6647332e1ba3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0481e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]\n[key.wx = 0081e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317]\n[key.wy = 00cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000481e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]\n[sha = SHA-384]\n\n# tcId = 364\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294bb\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0441fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e71c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]\n[key.wx = 41fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e7]\n[key.wy = 1c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000441fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e71c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]\n[sha = SHA-384]\n\n# tcId = 365\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100dfea06865526cea11c0f9eb9512b41fa9581d0f6cb7db9680336151dce79de818cdf33c879da322740416d1e5ae532fa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]\n[key.wx = 00e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b]\n[key.wy = 572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]\n[sha = SHA-384]\n\n# tcId = 366\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 3065023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023064adb4d51a93f96bed4665de2d4e1169cc95819ec6e9333edfd5c07ca134ceef7c95957b719ae349fc439eaa49fbbe34\nflags = PointDuplication\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86ba8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]\n[key.wx = 00e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b]\n[key.wy = 00a8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86ba8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]\n[sha = SHA-384]\n\n# tcId = 367\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 3065023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023064adb4d51a93f96bed4665de2d4e1169cc95819ec6e9333edfd5c07ca134ceef7c95957b719ae349fc439eaa49fbbe34\nflags = PointDuplication\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba01fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]\n[key.wx = 00b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba]\n[key.wy = 01fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba01fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]\n[sha = SHA-384]\n\n# tcId = 368\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3035020101023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 046e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]\n[key.wx = 6e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a]\n[key.wy = 4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]\n[sha = SHA-384]\n\n# tcId", + " = 369\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3065023101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]\n[key.wx = 00b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a]\n[key.wy = 1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]\n[sha = SHA-384]\n\n# tcId = 370\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 046761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc273605c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]\n[key.wx = 6761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc2736]\n[key.wy = 05c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc273605c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]\n[sha = SHA-384]\n\n# tcId = 371\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 046922c591502f01046fee5617bf16496f58398822e69afa8335308f36c09a8ed437209fefcffbbdf0a4876b35a3c7ab2655854db825b94b3f27e5f892d3bbb6c7240ec922894dd3598e91fcc6134a2b8fd154e1790466906206f0f623416e63a1]\n[key.wx = 6922c591502f01046fee5617bf16496f58398822e69afa8335308f36c09a8ed437209fefcffbbdf0a4876b35a3c7ab26]\n[key.wy = 55854db825b94b3f27e5f892d3bbb6c7240ec922894dd3598e91fcc6134a2b8fd154e1790466906206f0f623416e63a1]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046922c591502f01046fee5617bf16496f58398822e69afa8335308f36c09a8ed437209fefcffbbdf0a4876b35a3c7ab2655854db825b94b3f27e5f892d3bbb6c7240ec922894dd3598e91fcc6134a2b8fd154e1790466906206f0f623416e63a1]\n[sha = SHA-384]\n\n# tcId = 372\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04892dac0e700fc29d1802d9a449a6f56b2172cb1b7d881013cd3b31c0edb052f2d340c8995a4477bcb9225fec15667233cc6c34ae17445444516fd8fd22ee83f79eb0771ebff6677ac5d4e089f87a1c72df957acb24492adcd7c3816b8e0c75b1]\n[key.wx = 00892dac0e700fc29d1802d9a449a6f56b2172cb1b7d881013cd3b31c0edb052f2d340c8995a4477bcb9225fec15667233]\n[key.wy = 00cc6c34ae17445444516fd8fd22ee83f79eb0771ebff6677ac5d4e089f87a1c72df957acb24492adcd7c3816b8e0c75b1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004892dac0e700fc29d1802d9a449a6f56b2172cb1b7d881013cd3b31c0edb052f2d340c8995a4477bcb9225fec15667233cc6c34ae17445444516fd8fd22ee83f79eb0771ebff6677ac5d4e089f87a1c72df957acb24492adcd7c3816b8e0c75b1]\n[sha = SHA-384]\n\n# tcId = 373\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401634117e6478ce0568b0a2469237bbac6ff096acb7e514072bf77123cb51ba0cc3e8d69284d534d8e6d1e876cecf22231e5ef04dc96762ce7d5ef3348ad1e241ac797ae3b630ea249afc5139af49b8ef68b32f812d6b514210363d498efc28c]\n[key.wx = 01634117e6478ce0568b0a2469237bbac6ff096acb7e514072bf77123cb51ba0cc3e8d69284d534d8e6d1e876cecf222]\n[key.wy = 31e5ef04dc96762ce7d5ef3348ad1e241ac797ae3b630ea249afc5139af49b8ef68b32f812d6b514210363d498efc28c]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000401634117e6478ce0568b0a2469237bbac6ff096acb7e514072bf77123cb51ba0cc3e8d69284d534d8e6d1e876cecf22231e5ef04dc96762ce7d5ef3348ad1e241ac797ae3b630ea249afc5139af49b8ef68b32f812d6b514210363d498efc28c]\n[sha = SHA-384]\n\n# tcId = 374\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04675bdc79d8243887fe1b305d12ac10d2e9c0bde070a6e3394cd5f6adfbceda75498b0e7a794c7212f42be93f616744563e96d1bf6f95cdbefa774911ba06463d8a90a0c9d73c9699b061d779dc52496e8ee9b9ae9c5d4d90e89cd1157d811895]\n[key.wx = 675bdc79d8243887fe1b305d12ac10d2e9c0bde070a6e3394cd5f6adfbceda75498b0e7a794c7212f42be93f61674456]\n[key.wy = 3e96d1bf6f95cdbefa774911ba06463d8a90a0c9d73c9699b061d779dc52496e8ee9b9ae9c5d4d90e89cd1157d811895]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004675bdc79d8243887fe1b305d12ac10d2e9c0bde070a6e3394cd5f6adfbceda75498b0e7a794c7212f42be93f616744563e96d1bf6f95cdbefa774911ba06463d8a90a0c9d73c9699b061d779dc52496e8ee9b9ae9c5d4d90e89cd1157d811895]\n[sha = SHA-384]\n\n# tcId = 375\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 040fd1aab89f47b565b8160dfcc433b6408adeb1473c036b26b7ddec714fb4d0e7dd756c88469e86e218813ead8e8e7676f1cc955c4139e0071c0079ec1d77164e0569bdf453837e8b33c98535a0e7c9c61ef24762067bb46b6116ea7909a69b23]\n[key.wx = 0fd1aab89f47b565b8160dfcc433b6408adeb1473c036b26b7ddec714fb4d0e7dd756c88469e86e218813ead8e8e7676]\n[key.wy = 00f1cc955c4139e0071c0079ec1d77164e0569bdf453837e8b33c98535a0e7c9c61ef24762067bb46b6116ea7909a69b23]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040fd1aab89f47b565b8160dfcc433b6408adeb1473c036b26b7ddec714fb4d0e7dd756c88469e86e218813ead8e8e7676f1cc955c4139e0071c0079ec1d77164e0569bdf453837e8b33c98535a0e7c9c61ef24762067bb46b6116ea7909a69b23]\n[sha = SHA-384]\n\n# tcId = 376\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0434d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f786f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56df63acfde648f3f5002dbc239ffd1582]\n[key.wx = 34d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f7]\n[key.wy = 0086f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56d", + "f63acfde648f3f5002dbc239ffd1582]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000434d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f786f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56df63acfde648f3f5002dbc239ffd1582]\n[sha = SHA-384]\n\n# tcId = 377\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 044376c9893e9277296c766a83abbe36b34da7a631f8cbfd32a1888de0dd1455a21a153ea2d61cfa5071fc6be12a658f6b290ba1a8ee8c78b5dd58f9ffcacb22955682eea02429c3fa8cdcb649fa4d007c8693e3f8f3c0a5f3c4de7a51beaa9809]\n[key.wx = 4376c9893e9277296c766a83abbe36b34da7a631f8cbfd32a1888de0dd1455a21a153ea2d61cfa5071fc6be12a658f6b]\n[key.wy = 290ba1a8ee8c78b5dd58f9ffcacb22955682eea02429c3fa8cdcb649fa4d007c8693e3f8f3c0a5f3c4de7a51beaa9809]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044376c9893e9277296c766a83abbe36b34da7a631f8cbfd32a1888de0dd1455a21a153ea2d61cfa5071fc6be12a658f6b290ba1a8ee8c78b5dd58f9ffcacb22955682eea02429c3fa8cdcb649fa4d007c8693e3f8f3c0a5f3c4de7a51beaa9809]\n[sha = SHA-384]\n\n# tcId = 378\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0410878fc4807f6732a23c883e838e38c787f7088f94c1824b84673e8b9eab16de1544ae4bf2c6fe3fe4fb343b7487e2b43036ff439533d22f951dae966584bafb23b217dcad2f8f4e0e6999c0c4d0f076634be805f676fd2a59c27f9fe7c5d95b]\n[key.wx = 10878fc4807f6732a23c883e838e38c787f7088f94c1824b84673e8b9eab16de1544ae4bf2c6fe3fe4fb343b7487e2b4]\n[key.wy = 3036ff439533d22f951dae966584bafb23b217dcad2f8f4e0e6999c0c4d0f076634be805f676fd2a59c27f9fe7c5d95b]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000410878fc4807f6732a23c883e838e38c787f7088f94c1824b84673e8b9eab16de1544ae4bf2c6fe3fe4fb343b7487e2b43036ff439533d22f951dae966584bafb23b217dcad2f8f4e0e6999c0c4d0f076634be805f676fd2a59c27f9fe7c5d95b]\n[sha = SHA-384]\n\n# tcId = 379\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04036b253e3b4ac88bb8585a2b32b978766a931e5ad0d0e653a2e34b44d6ddcc0d386e20c4def2d8bb3f8da128c1eac69f9c8e3b5ff5dde2205af359b3974d52758d7abae812b8b275e1452c4e59cb62e9b6771d347dbd1dea761c70291cc5e0a6]\n[key.wx = 036b253e3b4ac88bb8585a2b32b978766a931e5ad0d0e653a2e34b44d6ddcc0d386e20c4def2d8bb3f8da128c1eac69f]\n[key.wy = 009c8e3b5ff5dde2205af359b3974d52758d7abae812b8b275e1452c4e59cb62e9b6771d347dbd1dea761c70291cc5e0a6]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004036b253e3b4ac88bb8585a2b32b978766a931e5ad0d0e653a2e34b44d6ddcc0d386e20c4def2d8bb3f8da128c1eac69f9c8e3b5ff5dde2205af359b3974d52758d7abae812b8b275e1452c4e59cb62e9b6771d347dbd1dea761c70291cc5e0a6]\n[sha = SHA-384]\n\n# tcId = 380\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 042783c1be922fce155864ecb41d0a316e193a55843e80192f1fe556772f3debd04b9fc93c27bc6f353938886a404419941a352cec336946424fa3c208ea7105f5549edde8688abd305344bf4f66dda7eabcda6f8557c9af88109804d702e9670b]\n[key.wx = 2783c1be922fce155864ecb41d0a316e193a55843e80192f1fe556772f3debd04b9fc93c27bc6f353938886a40441994]\n[key.wy = 1a352cec336946424fa3c208ea7105f5549edde8688abd305344bf4f66dda7eabcda6f8557c9af88109804d702e9670b]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042783c1be922fce155864ecb41d0a316e193a55843e80192f1fe556772f3debd04b9fc93c27bc6f353938886a404419941a352cec336946424fa3c208ea7105f5549edde8688abd305344bf4f66dda7eabcda6f8557c9af88109804d702e9670b]\n[sha = SHA-384]\n\n# tcId = 381\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fa92538cdc740368caf16480ff1304cebbbe59a46a7a84603726b9592d105be069df1c61b5974f27e7552f797de97cdb620e03a46da862e4b089bafbb80df8f055c8f47991b3a3ddb2b089aedb2f15841a6a5b5e14c1dc36b3c155c4f74d3409]\n[key.wx = 00fa92538cdc740368caf16480ff1304cebbbe59a46a7a84603726b9592d105be069df1c61b5974f27e7552f797de97cdb]\n[key.wy = 620e03a46da862e4b089bafbb80df8f055c8f47991b3a3ddb2b089aedb2f15841a6a5b5e14c1dc36b3c155c4f74d3409]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fa92538cdc740368caf16480ff1304cebbbe59a46a7a84603726b9592d105be069df1c61b5974f27e7552f797de97cdb620e03a46da862e4b089bafbb80df8f055c8f47991b3a3ddb2b089aedb2f15841a6a5b5e14c1dc36b3c155c4f74d3409]\n[sha = SHA-384]\n\n# tcId = 382\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[key.wx = 00aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[sha = SHA-384]\n\n# tcId = 383\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 384\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 30640230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea502302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[key.wx = 00aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 00c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[sha = SHA-384]\n\n# tcId = 385\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d3817", + "9023942871acb7002dfafdfffc8deace02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 386\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 30640230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea502302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]\n[key.wy = 009a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[sha = SHA-384]\n\n# tcId = 387\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 3064023032401249714e9091f05a5e109d5c1216fdc05e98614261aa0dbd9e9cd4415dee29238afbd3b103c1e40ee5c9144aee0f02304326756fb2c4fd726360dd6479b5849478c7a9d054a833a58c1631c33b63c3441336ddf2c7fe0ed129aae6d4ddfeb753\n\n# tcId = 388\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 3066023100d7143a836608b25599a7f28dec6635494c2992ad1e2bbeecb7ef601a9c01746e710ce0d9c48accb38a79ede5b9638f3402310080f9e165e8c61035bf8aa7b5533960e46dd0e211c904a064edb6de41f797c0eae4e327612ee3f816f4157272bb4fabc9\n\n# tcId = 389\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 30650230234503fcca578121986d96be07fbc8da5d894ed8588c6dbcdbe974b4b813b21c52d20a8928f2e2fdac14705b0705498c023100cd7b9b766b97b53d1a80fc0b760af16a11bf4a59c7c367c6c7275dfb6e18a88091eed3734bf5cf41b3dc6fecd6d3baaf\n\n# tcId = 390\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 306502305cad9ae1565f2588f86d821c2cc1b4d0fdf874331326568f5b0e130e4e0c0ec497f8f5f564212bd2a26ecb782cf0a18d023100bf2e9d0980fbb00696673e7fbb03e1f854b9d7596b759a17bf6e6e67a95ea6c1664f82dc449ae5ea779abd99c78e6840\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[key.wx = 00ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]\n[key.wy = 00acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[sha = SHA-384]\n\n# tcId = 391\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023007648b6660d01ba2520a09d298adf3b1a02c32744bd2877208f5a4162f6c984373139d800a4cdc1ffea15bce4871a0ed02310099fd367012cb9e02cde2749455e0d495c52818f3c14f6e6aad105b0925e2a7290ac4a06d9fadf4b15b578556fe332a5f\n\n# tcId = 392\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100a049dcd96c72e4f36144a51bba30417b451a305dd01c9e30a5e04df94342617dc383f17727708e3277cd7246ca44074102303970e264d85b228bf9e9b9c4947c5dd041ea8b5bde30b93aa59fedf2c428d3e2540a54e0530688acccb83ac7b29b79a2\n\n# tcId = 393\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30650230441800ea9377c27865be000ad008eb3d7502bdd105824b26d15cf3d06452969a9d0607a915a8fe989215fc4d61af6e05023100dce29faa5137f75ad77e03918c8ee6747cc7a39b0a69f8b915654cac4cf4bfd9c87cc46ae1631b5c6baebd4fc08ff8fd\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[key.wx = 00d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]\n[key.wy = 00c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[sha = SHA-384]\n\n# tcId = 394\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402303244768016457c463b74f2097f216d9670b191f76281c74bc6a1a1971d19f209bf4696468f5eb75d6326a0a43c0a65290230501e0ad985ed9f95697bd17fdbe3f9ca92e0f76426d3664e6896648d9c750bf588d0ce7d011c1a1e8d6c2e082422dc93\n\n# tcId = 395\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402305e1af40f2480e3d97c4ae4bfd34a9f45269241356f3a46becd86a4a7c9716d73ca5aebdb3db1a7765650666683bc856b02307e7c4b473a2baaa4953785be8aa2a10006f6d36b400ab981864d69cecec046718d0404b9647454b159aa5a92d76d7955\n\n# tcId = 396\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306502306688e36a26f15bdc1c3f91367f8a7667f7bb3e30a335d6f0900e9534eb88b260cb29344c723fedfbe7ac9c5a33f4bf0d023100aa35fddf0fdc9017860b378f801cd806f3e2d754cd2fd94eb7bb36a46ce828cef87e9ebbf447068e630b87fee385ad8f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]\n[key.wy = 00e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[sha = SHA-384]\n\n# tcId = 397\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100d4a8f3b0b4d3a5769e3a0bbc644b35f1d509355ed1fe401e170f667b661f693b32598e8c143a817a958982845042bb48023004cc07578bbd1981dbf6e8a97a354c98d41b8b6f6e8a2c2b1763c7c2a29d79e24f8476075c9aed9aec6c64dff50461ae\n\n# tcId = 398\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100c286d1928e9c79fdd3bebdf22a1dbd37c8105e8ecf41e9e3777fe341b6b8d5a89b9d986827d6d1dbb381cd8239484a220230201119ae305b9360aa9b5e5d1567e0674c09e4f025556ebf81b987466b0f421b8d31f72bbe95f3ce2aa9874a84edfd40\n\n# tcId = 399\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100d9c678550167f10c511e62acb4bd0a3f7f336bc090c94e6c6b02622439c348a2159c5f41f9b5aa4b470590d40dcd7cc202301fd5eaee295abb4081cb626745f4ad279ceb44604062830b58e6c0465c562d41f02ba588fc0db1ebbe339cdc008d7a1b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]\n[key.wy = 00d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300", + "e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[sha = SHA-384]\n\n# tcId = 400\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023020fee7c71b6cb0d1da3641ec6622c055a3b16a1f596c64b34da1b2d0b868b66a8f0a0d0db983b3dc7e53bb7295da81970231008141a931d3579aec1cac9887d2fff9c6f12d47a27e4aab8cf262a9d14a715bca0b2057cbc3f18b6fd3d1df76f7410f16\n\n# tcId = 401\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100913eecc559b3cf7108a65d6cc3076bfdf36c6f94dcc6693d06690470f34a2e81564241e1de5f5f51421de30af467f10f0230649bd3717244e8ef3c6b0eda983f84dca5ea86d1bec15386b9c473ec43a8cd0ba558eee819f791d9ff9272b9afd59551\n\n# tcId = 402\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3064023023855c46403a97b76cbb316ec3fe7e2c422b818387604bda8c3d91121b4f20179d9107c5f92dedc8b620d7db87fccccd023050f57343ab148e50662320c4161e44543c35bc992011ea5b1680b94382cf224ea0ec5da511e102f566cb67201f30a2ee\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[sha = SHA-384]\n\n# tcId = 403\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100d200958d491fcebde667cd736c9dba0961c70db2ecaf573c31dd7fa41ecca32b40b5896f9a0ddf272110e3d21e84593a023100c2ecf73943b9adce596bac14fce62495ae93825c5ff6f61c247d1d8afcba52082fc96f63a26e55bccfc3779f88cfd799\n\n# tcId = 404\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306402306ac17d71260c79f81a7566124738cb3ee5d0aa690e73a98ae9e766f1336691e500cad51ba1302366c09cc06b8f7049e0023032ca965d6d7012ec187c7cab9544334d66c2a7658ddefa67e4ad40429815518ecc87b1492ddd57333bd2300b4660a835\n\n# tcId = 405\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e19a4646f0ed8a271fe86ba533f8be4fd81bbf4674716f668efa89a40cac51eec2a6cfbd92327d25efe91ca4ff712bc502304a86b2e8e12378e633dec2691e3b1eed4e932cc48b28e45fa3d464cc0e948c02cc9decf2bb43b25937fcf37e9ad86ef0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 00ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[sha = SHA-384]\n\n# tcId = 406\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3064023015aac6c0f435cb662d110db5cf686caee53c64fe2d6d600a83ebe505a0e6fc62dc5705160477c47528c8c903fa865b5d02307f94ddc01a603f9bec5d10c9f2c89fb23b3ffab6b2b68d0f04336d499085e32d22bf3ab67a49a74c743f72473172b59f\n\n# tcId = 407\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306602310090b95a7d194b73498fba5afc95c1aea9be073162a9edc57c4d12f459f0a1730baf2f87d7d6624aea7b931ec53370fe47023100cbc1ef470e666010604c609384b872db7fa7b8a5a9f20fdefd656be2fcc75db53948102f7ab203ea1860a6a32af246a1\n\n# tcId = 408\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100dd4391ce7557cbd005e3d5d727cd264399dcc3c6501e4547505b6d57b40bbf0a7fac794dcc8d4233159dd0aa40d4e0b9023100a77fa1374fd60aa91600912200fc83c6aa447f8171ecea72ae322df32dccd68951dc5caf6c50380e400e45bf5c0e626b\n\n", }; -static const size_t kLen72 = 186011; +static const size_t kLen105 = 179510; -static const char *kData72[] = { - "# Imported from Wycheproof's ecdsa_secp384r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]\n[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202307b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19fbb197e4c4250926e30c5303a2c2d34250f17fcf5ab3181a6\n\n# tcId = 2\n# Legacy:ASN encoding of r misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 30650230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# Some implementations of ECDSA and DSA incorrectly encode r and s by not\n# including leading zeros in the ASN encoding of integers when necessary. Hence,\n# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings\n# assuming that the signature is otherwise valid.\n\n# tcId = 3\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# Some implementations of ECDSA and DSA incorrectly encode r and s by not\n# including leading zeros in the ASN encoding of integers when necessary. Hence,\n# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings\n# assuming that the signature is otherwise valid.\n\n# tcId = 4\n# valid\nmsg = 313233343030\nresult = valid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 5\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 308166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 306702813100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 7\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20281310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 8\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30820066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 9\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30680282003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 10\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028200310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 12\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 13\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3066023200814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 14\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3066023000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 15\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202320084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 16\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202300084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 17\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30850100000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 18\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306b0285010000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 19\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028501000000310084f5ef11d22f", - "22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 20\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3089010000000000000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 21\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306f028901000000000000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 22\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 306f023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202890100000000000000310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 23\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 24\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a02847fffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 25\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202847fffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 26\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 27\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a0284ffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 28\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20284ffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 29\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 30\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306b0285ffffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 31\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20285ffffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 32\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 33\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306e0288ffffffffffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 34\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20288ffffffffffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 35\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 36\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 306602ff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 37\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202ff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 38\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 39\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3066028000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 40\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202800084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 41\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 42\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 43\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 44\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30680000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0500\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b4981773066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a25003066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50d", - "bf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b2236498177023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a22352500023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306e2233023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20004deadbeef02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223649817702310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22235250002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223302310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306eaa00bb00cd003066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 57\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306caa02aabb3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 58\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306e2239aa00bb00cd00023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 59\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306c2237aa02aabb023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 60\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22239aa00bb00cd0002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 61\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306c023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22237aa02aabb02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 62\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 63\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30803066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 64\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 306a2280023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 65\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 66\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30803166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 67\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 306a2280033100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 68\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228003310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 69\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 70\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 71\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 72\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 73\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3266023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 74\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 75\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 76\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 306a30010230653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 77\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7\n\n# tcId = ", - "78\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 30653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 79\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 80\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd00\n\n# tcId = 81\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd05000000\n\n# tcId = 82\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd060811220000\n\n# tcId = 83\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000fe02beef\n\n# tcId = 84\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0002beef\n\n# tcId = 85\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30683000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 86\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd3000\n\n# tcId = 87\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 88\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3033023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2\n\n# tcId = 89\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 308199023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 90\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 303302310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 91\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 30340202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3034023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202\n\n# tcId = 93\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023300814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202330084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 95\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30680233000000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023300000084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 97\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 98\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023300814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2050002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202330084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0500\n\n# tcId = 100\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035028102310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20281\n\n# tcId = 102\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3035050002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20500\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066013100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd78", - "1c837355ddd41c752193a7cd\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066033100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066043100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066ff3100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e200310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e201310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e203310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 112\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e204310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2ff310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 114\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035020002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 115\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20200\n\n# tcId = 116\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 306a22350201000230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 117\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22235020100023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 118\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023102814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 119\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310284f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 120\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a156202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 121\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a74d\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a1502310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 123\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 30650230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 124\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202300084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7\n\n# tcId = 125\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30670232ff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 127\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20232ff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 128\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 303609018002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 129\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3036023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2090180\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 303602010002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 131\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3036023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2020100\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023101814cc9a70febda342d4ada87fc39426f403d5e8980842845d38217e2bcceedb5caa7aef8bc35edeec4beb155610f3f5502310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30650230814cc9a70febda342d4ada87fc39426f403d5e898084284644bb7cded46091f71a7393942ad49ef8eae67e7fc784ec6f02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231ff7eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9f3e1359f376840298d725eb98c7ab98c282d68156bb5ea1e02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065", - "02307eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9bb4483212b9f6e08e58c6c6bd52b610715198180387b139102310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231fe7eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7ba2c7de81d4331124a3558510743ca12113b414eaa9ef0c0ab02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023101814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 306502307eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9f3e1359f376840298d725eb98c7ab98c282d68156bb5ea1e02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310184f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e5fd3ad1cb7a61dc9507f6eeb2a65341ad0cac035dfee58d140\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e6044e681b3bdaf6d91cf3acfc5d3d2cbdaf0e8030a54ce7e5a\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20231ff7b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19ff3b630ca4e19648ed8ab2287e37c8caa222be38ade6c5833\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20231fe7b0a10ee2dd0dd2fab75095af240d095e446faba7a50a1a02c52e34859e236af809114d59acbe52f353fca2011a72ec0\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310184f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 144\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202307b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19ff3b630ca4e19648ed8ab2287e37c8caa222be38ade6c5833\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as ", - "r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634", - "d81f4372ddf581a0db248b0a77aecec196accc529720201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529740201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100f", - "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000001000000000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 217\n# Edge case for Shamir multiplication\nmsg = 3637323636\nresult = valid\nsig = 3066023100ac042e13ab83394692019170707bc21dd3d7b8d233d11b651757085bdd5767eabbb85322984f14437335de0cdf5656840231008f8a277dde5282671af958e3315e795a20e2885157b77663a67a77ef2379020c5d12be6c732fd725402cb9ee8c345284\n\n# tcId = 218\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 3065023100d51c53fa3e201c440a4e33ea0bbc1d3f3fe18b0cc2a4d6812dd217a9b426e54eb4024113b354441272174549c979857c02300992c5442dc6d5d6095a45720f5c5344acb78bc18817ef32c1334e6eba7726246577d4257942bdefe994c1575ed15a6e\n\n# tcId = 219\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 3065023100c8d44c8b70abed9e6ae6bbb9f4b72ed6e8b50a52a8e6e1bd3447c0828dad26fc6f395ba09069b307f040d1e86a42c022023001e0af500505bb88b3a2b0f132acb4da64adddc0598318cb7612b5812d29c2d0dde1413d0ce40044b44590e91b97bacd\n\n# tcId = 220\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 3065023100d3513bd06496d8576e01e8c4b284587acafd239acfd739a19a5899f0a00d269f990659a671b2e0e25f935b3a28a1f5fd0230366b35315ce114bffbb75a969543646ee253f046a8630fbbb121ecc5d62df4a7eb09d2878805d5dab9c9b3880b747b68\n\n# tcId = 221\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 3065023100b08c4018556ca8833b524504e30c58346e1c0345b678fdf91891c464a33180ed85a99bc8911acf4f22aceb40440afc9402304a595f7eed2db9f6bd3e90355d5c0e96486dc64242319e41fc07be00a732354b62ec9c34319720b9ffb24c994b1cf875\n\n# tcId = 222\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 306502302b08f784617fd0707a83d3c2615efa0c45f28d7d928fc45cd8a886e116b45f4686aee97474d091012e27057b6ba8f7e6023100c440aa6ecb63e0d43c639b37e5810a96def7eec8e90a4c55e5b57971c48dfb4e850232fbb37bd32bb3b0523b815ff985\n\n# tcId = 223\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 306402300609f4ec120c8838bda916f668e9600af7652e1d3f7182734f97f54da5d106bbfd216c32f227b76d583de1c53949b2ee023046926dffc766ff90c3b921b3e51a2982a1072314c1fdfb4175de7adea5a6f97bdff587a473504a9c402aac7c05bd4785\n\n# tcId = 224\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 306502305ae2220e4716e1ef0382afcc39db339e5bd5f05e8a188d4a5daaab71c6c35263ee8820a34558092877449ebb15898c5c023100c4d38e2e85451c43ee35b0c56196cbf3059acf2b8b529f06dc1de9b281d9b0f3f3983df8936e944ab0b18330a342ee88\n\n# tcId = 225\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 30", - "65023051fb84ed71d436c737ab24e2a45c68f8f623748be2caebd89e02bfc89309b8350042ab1b97849b9f680f044a58765175023100d4a8f60791657a8c12985fd896ac77e7d95cb050582f2466471dc2c6dcf90db05ce34beadbfcfe690dc56c0cc9944007\n\n# tcId = 226\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 3065023040159290d161df6b3f81a92cefb6df56149d588e7b886bf24939f5c8b6bb515d325b3764f0ed284a77fa9081ccfa5237023100bd55dfb47709287ce7b88dfd96ac7543eeba9bd31b8c91f203d2b90418122406399c80a53539b81f1cb60fa3b23a2563\n\n# tcId = 227\n# special case hash\nmsg = 36323139353630323031\nresult = valid\nsig = 3066023100d7fb9f53865cdf9d4cad6f66981aea35a1454858ceb678d7b851c12a4c6644fe1915a4b219b51389a5ae2c98a433cc3a02310094ad75c3dea88740205cab41032dfe149341cf4ee94dcd2f0c8bbe5af5860b30b5e1f764b2c767b09fd10761050c989c\n\n# tcId = 228\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 30650230157ef8f85cdb9257983d06a7f29674752659097364b401e701705b3bd9ead884fd32141320ae76ae05f6fc7ec155d6c2023100ccadc3851020e41dd91bc28a6c073409136a47f20b8dbf2553fd456a8ed5fa7e73e4ec59dca499e0d082efbb9ad34dc7\n\n# tcId = 229\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 3066023100e763001769c76f6a6d06fad37b584d7f25832501491bec283b3b6836f947dc4e2cef021c6c6e525b0a6a3890d1da122a023100acbd88729cce3992d14ec99e69ff0712b82a33a1c1e8b90e1399c66fe196f7c99bdb3ff81db77dc25ae6f0c1a025117d\n\n# tcId = 230\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 3066023100c6425b6b046ec91ebc32b9e6de750e5d3d36d4ddc6dffd25ba47817385a9466f6fc52259c7d02c66af5bf12045b5659d02310084cdc06e35fecc85a3e00b16488eac3584942f663d8b59df111c0650139d7cda20d68dccae569d433170d832147bc94c\n\n# tcId = 231\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 306502303061f090e4932133a0e08ac984d1c8d8d4f565e21cf15427671503880341265cd44f35a437ee3c3a8857579dd7af0c3502310093ae374a0f63dcbe41a1b7b07a50faf2b33f35e0b6600bb36aa5cda05238640fa35c635c0fa78e1410f3a879bbb8a541\n\n# tcId = 232\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 306502300ccc627f35454cc84e08a828f5bd5f5e41eeeaa40475bcc2e71ff372e8c718a5e179d3b7f2d7051db9060c4c978eb638023100b12d0240afbdfc64c60861548c33663b8960316a55f860cc33d1908e89aa6fc9519f23a900e0488fa6a37cfb37856565\n\n# tcId = 233\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 3065023100e72419fb67ebbcc0de9c46ce5475c608f9de7e83fc5e582920b8e9848000d820d393fdac6c96ea35ce941cb14951640002306aa19934ef60f4a247bc261ba256283a94857a268f42a0939c95a536fbd4f8e1f1c285a7b164c12213abb9e3393cbe9f\n\n# tcId = 234\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 30660231008b740931f9afa8a04c08cde896b7fdd9aca3177d5e4a3e5a51e54bfa824b66ab11df4e90f49798d644babfede7830224023100afd91e7ce15059a5b5499e5aef4afa91fd090e4e5029b3f4348f0d4349df11745869f9255117eea405a78af5dd6a646d\n\n# tcId = 235\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 3066023100989024bce204a7539fbd2b185ecf375590d873177c1ff26bbf755838ae5bcde180054663702ac3a4e68fe8b58fd88c70023100bdbedf64e424dbd7f979f83adef3fc85077fa76f8b1724815b5b8c24fde7fbd72f4b369a415d9bbf565cdc459bdce54c\n\n# tcId = 236\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 3064023022624fc23403955c0c9f5b89871177fa53879c8424de3b4ab1bcbcddc6e57b870b0491b848e19f728722b3163f4aa32802305bb82642cdaa84d6977fb95b3ede4ec7f2d54881cf435636d3509816f13ebb7be24fd7d4e1e81fddf07bde685e8d630d\n\n# tcId = 237\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 3065023100da5a2daa7437df4566ebba6ac5ed424655633e354ef4d943dc95ddefb0dae69f3616e506cc8cb5bc433a82ba71f6feb402305107b24041bba45073ce54488a5aef861e7805bbb8f970aedc1c59149cfe72c7025e2d117337e8677c88ef43374e6907\n\n# tcId = 238\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 306402302b0659fb7fa5fc1fce767418c20978de9a6a59941fc54f8380619b2ab2a7d6039de5373fbb503c24f2ce38e9c57995de02300d94dba98dd874bfffeac96a9295b6ab667708b8e33252edc029574c484a132135b13e52db6f877987c1be4f51fca193\n\n# tcId = 239\n# special case hash\nmsg = 32323332313935383233\nresult = valid\nsig = 306402304a5a14f1ecf053bf3ec14843db8c7dd153e9545d20d76345a9e1d1a8fcb49558ca1ee5a9402311c2eaa102e646e57c2c02301573b8b4b633496da320e99a85c6f57b7ee543548180a77f7fced2d0665911cb4cde9de21bc1a981b97742c9040a6369\n\n# tcId = 240\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 30650230104e66e6e26c36633c0af001f0d9a216236816923ec93b70bea0a8ff053a15aaaef5fe3483e5cc73564e60fe8364ce0e023100ec2df9100e34875a5dc436da824916487b38e7aeb02944860e257fd982b01782b3bd6b13b376e8a6dbd783dfa0d77169\n\n# tcId = 241\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 306402304b06795da82bda354e8d9422a76c7bc064027fcdd68f95b7bc6177a85b2d822c84dc31cb91fc016afa48816a3a019267023018e31018e312d3dd3dd49ec355fdb0def3bb3e44393c26cf1bc110b23a3aacf6c442bfcec5535ce37527d0e068f75c03\n\n# tcId = 242\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 3066023100ad75ca5a3df34e5a6d3ea4c9df534e8910cfb1d8c605fc398fbee4c05f2b715bd2146221920de8bac86c2b210221bcff023100a322d3df3bb2cf9e4215adf1ff459e70f2f86bec6dd6af5d04ae307d21ed5955136c8e258fdc0f9cbd6cf89c31aa691f\n\n# tcId = 243\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 3065023100b0fa6289cc61bab335932ea1ac6540462653cc747ef67827825f77689a4398602297835d08aa16e23a76dea9f75404ef0230278d654a0b50c57d13f9c9c8c7c694001167f8e3b71491772a7427f1410fb6de518740c22e455e58de48846479b300cc\n\n# tcId = 244\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 3065023100c216cb4fe97facb7cd66f02cd751155b94fa2f35f8a62ba565aca575728af533540ff5d769b7c15c1345ab6414e150680230278a8a372b75d6eb17a4f7c7f62d5555c7357a1a047026bead52185cbcc01d73b80a1577e86220b2278da2b1ee8c983a\n\n# tcId = 245\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig = 30660231009591c80453cffbcd0b8d6d20fce0cbb2a458e54aed7ba1c767e6c017af4c4aa07a76859c0b249f6692a3c9ace893f14e023100893b567cd2959cd60557d3d6013d6e1741421a6edc5bc18244b3e8d7744e57928ce006a3fbd6e6324cb8ea3e5177e7e3\n\n# tcId = 246\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 30650230350b5515ba9785f149e2a566c14f4178757bb325179888f526f7db11161aedcd752551381316c2713f5de21d3d517af002310097d48a90c3bb3444736bec69db0649f82428b39238ada6048a0bead84f2f3b73816b48fed4d57b5f87a194ce4004ed7b\n\n# tcId = 247\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 3066023100833210c45d2448d9a4d69622d6f2193e64c65c79d45d62e28f517ca5c68eef05a2e98b1faed4cc87cbdbec6fe6bb8987023100b777b44cd30e6a049dc56af19a251d955c1bbab0c307fe12e9e5382fd48c173db0292f0b1047da28ee18518e11688eea\n\n# tcId = 248\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 306402307728ef10d9d5f3f32132716e6b403926929b05201700658d4b7f25a0692f153b8d666fd0da39888ab6234212659268d0023055df9466ee2c98225a2b0c4ff77622f9d11b4e48aa7f9279cdc2e245fdd9b9f4282106e25a458ff618bc3ca9422bea25\n\n# tcId = 249\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 30640230552040701dba17be3b4d5d6e136ce412b6a4c50ce1ee53415d8100c69a8ee4726652648f50e695f8bb552d0df3e8d1c402301374972b2f35b2fd86d45ed0c9358b394e271575e429ac8aa60eb94b9df7e755d9317fb259269e9d3b1db8d48d91dc7e\n\n# tcId = 250\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 3065023100fe6ef07056ce647128584bec156b68b8005f42d8c85dfb122134c488cc0e72cf8f06700417d7ff694b45e894ec23cbbd02307f5e33c5bfa697c144d440b32d06221f630a9ccaa8e9a0489490c04b86e8daae0e41d2466429b4b3cc1d37348e36cc0b\n\n# tcId = 251\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 3065023100e009fc1a13d282bd37f10693350a5b421a0039713d29cb9e816e013c173bd1ec2bd6eb6bd88429023ee3d75d9a5ec06f02300b8bd481982a6e52355bcde5fe0092abac41f0543c31d1928b9a585e63e9520e24a65f46db2696e1b85a65c4e5240879\n\n# tcId = 252\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 3065023100acee00dfdfcee7343aeffa8514b11020c5435027887529d255bdbd45a90f160c68f05bd4b567daa8fa14e5807f5167a402301c9fdf546190970aa33121a3043280669be694e5f700b52a805aa6101b4c58f0467e7b699641d1d03f6229b2faf4253f\n\n# tcId = 253\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 30650231008a4ee1e3bb251982475877d18763fafcf49ccc8b0fec1da63b0edccbb8d3e38608a2e02d0d951031179e12ac89", - "9d30c3023073cb62ad7632cd42dff829abfbfcb6165207e3708ed10043c0cdee951c7f8012432696e9cf732dcbadb504630648419f\n\n# tcId = 254\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 306402303903b59f837ff5f41f42cbe3e2fc8e17d859cbb35386c4327d3947fb012b3629fea911c83cefdbd503aebbcc1114afd102300e5be9094b5a22ade00c24644f476baad0f7741dfb2ce9644a1c45769404f8dccc522017c2b8cc630f1a0ef5fee99fe8\n\n# tcId = 255\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 306502307717ffc8d0811f357299423c56ec181c58f1981f5c1dd4f346f6a2ad71d3582e203a11e8609c1146ff3247a1820f832c02310096c89ec707da3cd8b09084b065e3265327a536a974c4285155388011e348f2e7f005ae7e3e502732fc2971ac13fd72c0\n\n# tcId = 256\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 3065023100a21519ce3533c80826f1e47fa9afde7096151144291134421990285a8d89a8c2d4afdadd547a923dcc17bfcdd0e9ffb9023040577245dd2e022c8ed8b5de7b8c26f31307429a7a64e5729311cc4128e3b486867e61b4a8a1cd0731792eb1466d08f3\n\n# tcId = 257\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 3065023100a727addad0b2acd2942cb1e3f7b2917ca65453275198b06436a993bfc982d3f54620c395e253d57b8fe026efcf7252f902307a19811aa4c12c45c3c041e7c614d0d98051ca7a0c57a9a107d552793ba1d0debb373525aafcc13ae1acd50a42a89adf\n\n# tcId = 258\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 3065023022287277872d175d8a3ff5be9818658f845eb9c1b2edc093ae82a75aa31cc26fe1771b4bfbd4c320251388d7279b5245023100b47d1833867e889fcfd7ac171855293a50aa6db24c6522e374fe87be12bf49b13c8b5e1455a2f25aa7912f799eebe552\n\n# tcId = 259\n# special case hash\nmsg = 33323639383937333231\nresult = valid\nsig = 3065023100a0f41362009b8e7e7545d0f7c4127e22d82ac1921eb61bf51e9ea711e41557a84f7bb6ace499a3bc9ebca8e83728787b02301f6e0c15a3e402370885e2aceb712280ebc45b63986357765b7e54b06cd00db8308e4715c39d48d246030bf960e6a2ff\n\n# tcId = 260\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 306502304144e1c6ad29ad88aa5472d6d1a8d1f15de315f5b281f87cc392d66d7042547e6af7c733b31828f89c8a5dafce5bb9af023100f5d0d81f92428df2977757c88ba67f9e03abd4c15b1e87fa1dd49e601a9dd479e7c3dc03a8bfea60fcfc1c543931a7de\n\n# tcId = 261\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 306402305f177fc05542be6e09027b7eac5eb34f34fc10ad1429e4daaea75834de48dd22626f2bf653dfcc46234921d19b97406b02307def6c993a87560425f2c911046357c4b1c4c376bfa22bb45d533654fea6f565ba722147b2269ea7652f9c4af62ed118\n\n# tcId = 262\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 3066023100bd77a8ff0cd798d8f6e75dfbbb16c3ee5bf3f626dcb5abdfd453b301cb4fd4caee8e84dd650a8b4cf6655dea163788c7023100ef8f42394469eb8cd7b2ac6942cdb5e70dd54980ad8c0c483099573d75b936880459c9d14f9e73645865a4f24ee2c4ce\n\n# tcId = 263\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 3066023100a02e2196258436da6a35a2f73cf6b08880f27757566ce80c7fc45f5dcbaec62d3fcebb784b4a650e24c1a997e4b971f7023100f1195d2ba3321b6938e04169d7baf605001b6311f08a5e82157a7675d54993f2fd1e41f8c84fc437a1a139d2e73e8d46\n\n# tcId = 264\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 30640230686c5dfe858629125fdee522b77a9b9be5e03a347d79cb4c407f17fd25c97293cd99711f33e77814bd30d2453d3a86c10230509ac9b18c1b2b5a2b1b889d994b950743a988c2fcfb683e89211a43da6ee362c2e414d84fe82db1904b81701c257822\n\n# tcId = 265\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 306502310083ce818ecd276432a8ddfe75406d01329e76d7586cd6f611c1fe1a0913ad80014c2156381942d58dd6356e44ccdc52a8023036a35983b97a9ae2a19cf05ba947dd880c973d5c78f9676ebbcb0b40d639124030c137236232f1fad15afd71c52ad8ec\n\n# tcId = 266\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 306502307cb78ebb712b5a2e0b0573d28440a5da36bd2338805d90ef3b0c1178ae613be8ae8bf548af4e7403e5a5410462afc2e30231008631a82cbdb8c2c7df70f012405f06ad0ab20d6c4fbceb3e736f40fdff1a8e5f6e667a0e77259f277494de84ec0de50d\n\n# tcId = 267\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 306602310085110fe21156b7764b91bcb6cf44da3eb21d162395071c216a13b5920d67a31aaa20dfc4669cf32c04964d0831bcdc29023100e19187033d8b4e1edf7ab8eaaae1e13c80c0c4db51d921ccf62f424524cbd530d07de2cf902a0ecda5e01206ae61e240\n\n# tcId = 268\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 306402300fd621a892ee5a3eb0bcb80f3184714a6635f568d92f41ad8d523887d5b82d2b930eb5ff2922fda1a3d299f5a045837f02301278725a607fa6f2fc7549b0de816fe2f88e3a1ec1ccaf9fb58e70a0f6646c2d7aad6e4f73d116e73096bdef231d0c89\n\n# tcId = 269\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 3066023100802cbe405d3ce9663b0b13c639aa27730b3377ce42521098ae09096b7fc5e7ac998b6994344e89abfb50c05476f9cae80231009aa7258c0dc4eff4b2d583575368301e2a7865cfaa3753055a79c8b8e91e94496a5d539181c2fd77941df50fe87453cd\n\n# tcId = 270\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 3066023100859b0446949d7f78a0301ac4cc02b599a758fd1be006bf1a12570015869e59b9a429ce1c77a750969f49e291f6ab899402310099a812a1acc2c646814315cf9b6290d2232236cdf131f9590088e75a55786cdfc9d9027ec70056408ab55445fd79fe60\n\n# tcId = 271\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 3065023100dbcc7ee9fa620e943193deae3f46b3142779caa2bce2df79a20639c8d01bce414a61f72764c1ec949c945320f5ee2a1d02301d9879787b880bd05db39bac07bfe3e7d0792932144e211e81f21da9621b83bff11bc52bcc7cb40cf5093f9bad8650fb\n\n# tcId = 272\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 306402307a1f9fbd0f6e776c3e3a3c798f5c0d9e20f0e2f3f4d22e5893dd09e5af69a46abc2f888d3c76834462008069275dfeb9023045e6d62a74d3eb81f0a3a62902b8949132821b45d8e6cad9bb3d8660451727cdf7b332a9ac7bb04604991312143f8a6a\n\n# tcId = 273\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 30640230047962e09e1b61823d23726bf72b4dde380e032b534e3273db157fa60908159ab7ee4cadce14fd06ebe8e08e8d8d5a0702301892f65ee09e34ce45dd44b5a172b200ce66b678b0e200c17e424e319f414f8dfbb2769a0259c9cc105191aa924e48d5\n\n# tcId = 274\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 30660231008f02799390ab861452cd4949942cbbcc25cad7c4334c4bc6146fbef8ad96c86f923fbf376d9ab79073e5fcb663f1ea91023100ce15d9862d100ff95ad7368922eec3f6d7060ce412c01ff13870aa61626ee49edf39bb27005ecbe406bb6825f74c0438\n\n# tcId = 275\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 306502301879c4d6cf7c5425515547575049be2a40c624a928cf281250f8bdcbf47e9f95310d0992c9887dc6318b3197114f358e023100e1116bf68320bade7d07a1a9651512d60b551af8625b98b5eb8ca222d4073ae5c140a80e5dbe59f073647daa00837aee\n\n# tcId = 276\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 3064023031dced9a6767f39045472749baec1644ae7d93a810a4b60eb213c02c42de65152ffc669af96089554570801a704e2a2d02303022ecfbc88a72b9c50ef65344765b615738f2b3d420ade68cbf3ec40bef0e10c5cc43bcfe003bb6f17ec23802c40569\n\n# tcId = 277\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 3066023100f4bdf786c61c5f1ce7568638ba9dbc9a134e27fc142003bf9870353980a8f4c2fbd03c8d0171e4048ef30db6fe15388a023100d0e96768bc6adc91f93ae5704e86888853f479f32a45bfd436dc8a030603d233c56880124b7971362aa11b71315ae304\n\n# tcId = 278\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 3065023100ec0f635b7ce31988a07f41b3df35ca03c70e376bfb3b6ab24831a83be2121b9f9e93928b10a8f5fc0322bdb9edd406fe023066618ccb473c6dac3b14cfab6dfb24d219b37aec63425067c2c1c631d64a80b9cab6445f5a5439adb28bb99daa9234a5\n\n# tcId = 279\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 306402304f2bea24f7de57901e365d4c332ddb62d294d0c5fd58342a43bdd3ba5cbaf25adaddb5944bfef9dcc88f94d93650bbbb02300851b97ddc433e4521c600904970e2bf55aa901e1aaaaf06818377f84a28e033a49eebc21ffe9cff3cbefd0963fbed00\n\n# tcId = 280\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 3064023072a9bab30f8da1437f17115cc37b6ef8cf6591ed934d596675ad7b000c6a74cca5f37210a68228a58023790e3726c357023012d697c4e20b18f63a3e0164dca8ca4a5fa0058ad7cd1c571cef356e85fd8f56ab7963d8aba824e8d31efb3e690c27b9\n\n# tcId = 281\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 3064023033b7105f4cc98a1ea2abad45dbbe3761b4613ddd350e62da91560da694be3e84b1684f9a8ee4b3f556c61d02af54446202302c86e3a216dc7dd784cdcbf5084bdf6cdc1c7e67dbd61f9f6ed161fda4d4c26167e5b12731cf2b0cf5d9a5f0b6124939\n\n", - "# tcId = 282\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = 30640230252e3b5b60b8f80748b83623e30013723115cabcc48770c0ab6e7ee29c429ef1d9da78db3a9a8504133b9bd6feceb82502301ba740f87907cf6d450080f7807a50f21c31cd245dd30f95849a168d63b37628e8043c292ab7f130a4468eaf8b47e56d\n\n# tcId = 283\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 3066023100b8694dbf8310ccd78398a1cffa51493f95e3317f238291771cb331f8e3a9753774ae3be78df16d22b3fbe9ad45bed793023100daaead431bbdbf8d82368fbbd2473695683206ee67092c146b266ed32f56b31cb0f033eebf6c75118730eef7b7f96ba7\n\n# tcId = 284\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 3066023100d37ba39cd1b5289e7aa3f33afefa4df6821a07d3e8ee1c11e7df036c37e36214bb90264633d4c395644cd2cc2523833f0231008b0d58ed75af59e2abbcec9226836f176b27da2d9f3094f2d4a09898136436235025208cf5444265af66fed05b3dc27c\n\n# tcId = 285\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 3066023100b4ef419020c0dcbdeeeed76c255560f1ed783c0f9e7fcea4c08a0714b9d1f491fda9ae7bb1eb96d294b02799f82861290231008d987611063d2f28cb309a56eaf1ea65f27d95c97b77a5f037f2f914fed728267aaf62a37f3c7b44fc4b15125b349863\n\n# tcId = 286\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 3066023100b2df7b11cf60ac93c078d19f37f889717aa5d9af1d00d0964f9e9f5257c3b51b3d3e47ca5b5aa72058ed63b52464e582023100b524968ea8c58d379e38f4cfa9da1527a2acb26d605d22f173fcf1e834db0d7f031cb9245cb62b8458ff499b8d3decbe\n\n# tcId = 287\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 3066023100e0edc08b4122b75ebbd1635d07f0bb55771bda15573a5081da971955f9a63f6decdd4919911dbfea503ea8ed1faad93d023100ca7850c74ce878587056206c590a1097d197a2090cfe3e057becfa2700c7a531623ae7331e163def693e26a97feb540d\n\n# tcId = 288\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 3065023068f555eef5a323a929719bfd8cf81d6d8a977ecb35defd86fa54d8e5749c7b5f3e80087fbd39f8aa0cd29d8310bd6578023100e2c2314a50fc0ad78c1ec02ea77ee2e13dcef1460957c6b573f721d72c209ac5fb529ab20397234c59ed44f60400971a\n\n# tcId = 289\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 30660231009e330e29f18123813e83b9c6abd68de96a57f97a4005b88d5b470a67a541b6d3af12124cf8658b751671c6698fb8b021023100d210fba9bde6ef077ca06b75e1cf7ce8dd70b08e9dd42d81a215ef9272f1779ae3e9f0dec510571d87237cc6bf3203e8\n\n# tcId = 290\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 30650230483192056f753f64ddf0f21072b73d68893e6fa5432c981c7a1955b6592a6045a5c1c58c383e70023c34e09b7964ec8d02310094b005d5f98c4fd2ad40ff8e03a8599f45e206082112f834df1d48502d2ac690cd3204f0078913794c9c39077ad6c58b\n\n# tcId = 291\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 306402302b7ec14fd77c4b33230dd0a4e2710fbd307e469baec54b6f25daac7e196b7b4b5df251cdddba7bdc9836ca1319bb900b0230590036192586ff66ae9a288199db9d02bbd5b703f8c329a9a1f986001b190f20ae96fe8b63681eda17bac2a57fd40f2e\n\n# tcId = 292\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 306402302611484e7ff47dfaece4aa883dd73f891869e2786f20c87b980055ddd792070c0d0d9a370878126bab89a402b9ea173c02304e0006b8aabe9d6a3c3018d9c87eae7f46461187d3c20b33e975c850599ec1cb52c76e1f507e439afc43f9f682e7a8d2\n\n# tcId = 293\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 306502302d504e38cdb1bb80bf29e07afbc66aea732accc85a722011069988f21eef685084f55efa30bfe32427eb8636db9171b4023100883e3d80d766ccb29e73a9e929111930da8353ec69769785633fe1b4505f9051e78d50c79a6b7c885c10b160bbb57fb6\n\n# tcId = 294\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 3064023028dc1b63dc61ecde754ff4913780e486339103178e27d761987dac0b03c9bdf4a4a96b8680fa07fc47ae175b780e896e02305a9898eedf8781b9afeb506e0272a12c0c79bb893b8a5893c5a0a1bf4324d46dde71a245be2fd8aa2975fdeb40adf8f3\n\n# tcId = 295\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 306402304c978a47b9e9449337178aa6413a794c4c9bf182a42062646a469b1d2c2c95621e818e661352b07e63254b6954e1459802306997345f05cfc05c0fd4d1dd133e555e5e5002e0929a59f60bbffc354234783ebf4fe5db10a870952cabd453635c1082\n\n# tcId = 296\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 3065023036d8e2cfc80d0436e1fad3702ec05aa138618cdb745652cb85b0b121ee107bdf1ade0464dc0c6bd16875bcc364044d8c023100898b8775c9b39aa9fd130b5ab77e6c462ced6114898045b7f606142277d9eb2aa897f24c9ba4c8d112111de04dc57c10\n\n# tcId = 297\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 3065023100ce2bdcf924caaa81e79bd7dd983dfeeee91652e4ea6edd077f8b56ada4953733a22dd3a6336446a648aec4ffc367cb3e023008eb09faeef4b0e5c1262eda2127464f7e2981ea1736e80afc7c622461c3d26fe08694fb4914ce9dbba83704e3077b3c\n\n# tcId = 298\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 3066023100e3a1b4b0567d6c664dec02f3ee9cd8581129046944b0e6650f6e6a41b5d9d4bf79d7a6fd54ea5a218492cfa1bb03ca07023100986206925cbfa186c7d88f7100d87dd3b2d03b8789309a722d582f119eef48cd0ea5460917cf27246c31f90e28540424\n\n# tcId = 299\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 306502310095a5e29940e42099c4637f4ae51e7d1ec02be0dcfb0b627030984c35e477e80cc57e7eef970e384dee16a9b9fc8f2bf202300ca166c390339653cde84e79a87e5ceb4f52c1a515a5878542fd82705b9983976fd31a4123b5d0bde95a0818114cf462\n\n# tcId = 300\n# special case hash\nmsg = 37313836313632313030\nresult = valid\nsig = 3066023100c30c49d0ba131944e2075daacb1259d5580a712a08f73d889c4d3d484d73dd9719a439a986f48b072c4595c507a01083023100a5595c0691bc2d215f981fab513e3a88a452f2a1433367b99b02b6efe507519afedbe1ad0337899944e29c9ccccb2476\n\n# tcId = 301\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 30650231009fd0585f8740669885c162842bba25323ea12b1d05e524bb945cad4e31538742eda5128f467b3c562c5f0a99019d3406023043acfadd03915c2350e1d8e514c47eb36f3c3456169c9a562a6262c1c2d7d33378bf9fec7f220239d5c61e06414414a4\n\n# tcId = 302\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 306402304ecac0cdbf665c584f8a40614cd55d042706c54895b1de02984fe309122566c959a4dd3315e7d3f089879f8f45821336023009187da6587a3de90eba41f4e6510e711f4467f3122971566ecc39a4bd53e95b8a19380e20ec2a7c752d29de54fd2e8f\n\n# tcId = 303\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 3065023037a1ba49f11e97ad0ec47e687c6c6e94f794f874720c0dd2da501437b50e5b00fb6ed33adf7cf1f9c870fd3d37165bf7023100b3ad08c9886b4ca1593a68938b67142c65ed4da1714c22204cba71300c094ccdbdf84c38a3f6d896db72ed5051a19266\n\n# tcId = 304\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 3066023100a0abe896d2f30207bc9b21e75400eedb88d3498d49806f41aa8e7f9bd815a33382f278db39710c2cb097937790d0236c0231009a29aded30e8ce4790756208d12044e18c34168608026000a883044dd0d91109d866b422a054c232810ddfbb2ae440bb\n\n# tcId = 305\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 3065023100b024fc3479d0ddde1c9e06b63c9bfb76a00d0f2f555220cb9a1311c2deec32eb3d6d2b648f5e8c104d5f88931754c0c20230767950cc149697edbae836f977bd38d89d141ff9774147b13ddd525b7a3f3a14a80d9979856f65b99a6faff173b5d6eb\n\n# tcId = 306\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 306402302a0ae7b5d42645051212cafb7339b9c5283d1fd9881d77ad5c18d25ee10907b7809740a510e65aecd61b53ba3a0f660a02304c0457dd19ef6e4d6ae65f45417ddf1a58c07663a86737d271becfa3ea5724b6018f1fa9e64fd08601a7dbd3957761d9\n\n# tcId = 307\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 306502300c1657320faca6668c6e9f06f657a310b01939a7d9640fa0429872fe28bd1667688bc162221285ecfb14e8d80627450a023100f5272aa08c321aa4f7e520825cc720f6511d635598c648d4d514669b3ad803ad259c799e195a095982f66c176435be21\n\n# tcId = 308\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 3066023100d821798a7a72bfb483e6e9840e8d921200ef1976b7e514036bf9133a01740ce397c73fa046054438c5806c294a02c6800231008c5d12887fcd945ba123fc5a5605d13a5a3e7e781ad69c6103577ee9dc47adc3e39a21080dd50304b59e5f5cf3f5a385\n\n# tcId = 309\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 3065023100c996bd6fa63c9586779f27523d5583135a594808514f98cc44cac1fa5cfa03c78c7f12f746c6bd20608ecbe3060eb068023027d40a11d52373df3054a28b0ab98a91ad689d1211d69919fc04cadc22ff0367d3ef9433012a760c1d1df3715c8d5cf3\n\n# tcId = 310\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 3065023042dd6c8d9", - "95938701a538909ed6aeae0ba50c995138de84e195bbb9c56180e108d4a6274548c7be6e121c4d218d2d4a0023100fae8668bb2003f0da1dc90bec67d354ccbb899432599c3198b96c5ca4bd2324c46998f4fb76a123467cf24570b1b6916\n\n# tcId = 311\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 30650230061f185633291b9a768e15ec03a2b7c356c757b023b61e313fdf0c5349d128a78668d20b2561709b3bd8451b920f12ab0231008fc5edc66410dbf20a7cbc3498e405761756ed39866856e74256ac1f255f62b0edff519762ecdbbc8395d14715c4388e\n\n# tcId = 312\n# special case hash\nmsg = 33373033393135373035\nresult = valid\nsig = 3065023069326e047c62e8bac5c090b76bf73ae652fa9a6aecfa1ccb8702f419094c9727511264fb1aeec00e425c7a0d746793d30231009dbddd22db4a77dbe16114bc6fbb981aecba7e82a9cbc1ed385e28a51793561770fb3f9696090efca24f268d8788f2c9\n\n# tcId = 313\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 306402304ca1df89b23ed5efcdf601d295c45e402d786a14d62f7261104e4cb05b8cae17abb095799e71173841749615c829411b02301bb777e0a6fee8a2337a436a6fa26a487de4640ff97d57b44b55305989803863d748c7302f2dfde8b8cedd69bb602e2d\n\n# tcId = 314\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 3065023067be1b06f67172c503a5ac50582235d30bc9079eaa4cdec69a39c096310f8d99186cc9af7c8b4369a291d3e921d60705023100ab645fc91f06b1ff7cc58fccf6f7cfac74db30d839748a78cb5f3b8fefc7a06f3b5ff0310a8580c6050bebb75eda972c\n\n# tcId = 315\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 3066023100d966442d6c29e5a4cc60e2374eccd373db3ebe405ee7c9664c4273100cd1899a1c58110487528616d8c5321dbf5227640231009bb0e4a2c041a3b7b672029fe480d155f57671ecd6eb598660d025acce1f613d03cd6cff4a214131c8c7a8ad22df1397\n\n# tcId = 316\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 3064023008a84a2bc39b082ab82e6e45f088a36f1cb255f97ec8124eca929d4506d7dab63957c647994be2c2c7344f902de5b38f02300c9645e84a304ba0970ca5ce00b8c8a971fa0d0bcbec6a70134894c44d3075030ff04333ea3889f847a1ed769ee618ee\n\n# tcId = 317\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 306502310083004b034202bbf51a327d32ed3ddf67b46eda9bac695a4422744a4bd99aaac3b3e8ed80ddac6538939c9385d6c8f61602307b4e61926cb9afa8cdaaf44909df6dc6449887d59fe2acac05f7684a235fa77179bdbcc69fd8f359e8eda19e5a5d4807\n\n# tcId = 318\n# special case hash\nmsg = 33313331323837323737\nresult = valid\nsig = 3065023100ad93375a1d374c41e5de268a8c08c205ff5652445bfe3ddf4ca77a70f5819f9f06db861d82fc9637946f0fe38457f2bd02304bc043acbc6a68d4824ed768af9476ad5b93e4cb3bbac284fb5fbd548ae3b96c265c6d1ef4588a3e2da21b124c0d6b12\n\n# tcId = 319\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 30660231009e0d45d2dc93fd363dc919405818e39922f3f9dd0827bcad86d4ba80a44b45a6f60b8e593b580c91262b32859dbb1e53023100eb9b8dfe5ba4a055a974f19b488f3a6fa07161006ac94eb1fe1c12dd0e20f3a7be38a37ce96d671183c5871249b2a3c5\n\n# tcId = 320\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 306502307a5d04cd2fda59d8565c79ea2a7f1289ab79cae9fde060094c805c591a2534e4393e28c3fd858529bf17643846aceb830231008de0d8c0092fd02d554afe25f814744beaaa17c6946a6387ec7046b602db8a6c900246c2fb63fcef2ac8d9394444a0fc\n\n# tcId = 321\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 3065023100a564eea0cdac051a769f8ff1e0c834a288ce514f67d138113727b53a1a6fc95ce237367b91f1b91b2f65d589adc8288e0230182e5b47b6fbd8e741a04e809487ba5fcb8a5f2f1b9af6ce214128623a4768e38e6ddc958ff39078c36c04a314708427\n\n# tcId = 322\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 306402306758867cd1ca1446cc41043d1625c967a0ae04d9db17bbb42fa9c076b3593125d63cd3e7471ee6cdba5235a21cec2f220230563db387adb537e1d89231d935ac790316925aeb29132b9f87bee91116c33bf50943fe39b671ce9535dca0a5d22bbfa4\n\n# tcId = 323\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 3066023100cde033e38d3f791db87d8a6907516bd8021acd47e897df683fda529d48050f8b5688f6361daf1b14bc3f45fc7f76150f023100e14f4811a667c85335a4709a589ea46bac72055b794eaea92d28e834d5bc459c605fe4f27c1ab18d186d59e7d205cb67\n\n# tcId = 324\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 3065023100f2384468b55553c68f9764d8248cfd7358d604fa377ebb13828c43a8ebdf308fbbbebfa49a9458bfda957d2068d24e3f02301fdf4891d56e3e90c02b05c14c27c17f56f8e6aa144f02328c90109e1f70c9e3f582f0d299c44da505c543cc89c6a990\n\n# tcId = 325\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 3065023100b1ccafedcc21ba90b342fa23c0149f3d12a939ab6c3342b36ae61fddbdc753927a7c3e978bd780cf25cd78c8c5efe28002304c32a73f3157bbe2384095eb67726b9cd3c2623b98a182a3b4f00e8db933e1113b7ada2695a7d79b471026462b20e289\n\n# tcId = 326\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 3066023100f3ed170e449758299ae55eb85244745e1876621c1f708e07e55c0d2d9ab5f9af9e0a8b3c7bdf8936ab3c9ebd1908e9dc023100da62ccdb658868147286d7269bcbd4addb4dec9ea3d5d79fdbe0ccffa40d055170bddeb4ef4c5e0bc99fae5db62b4477\n\n# tcId = 327\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 306502310083455fc4629e7693c8e495fec2d29bb23bb6db79180fcfa83a4f9310d9db27e29297dee27ee80a71ab2f7a2d59f48b8802307736c056c8f2bb57e9fb6b8de0ab6d09879f6611e737634e7b6337aa5c5a01f515d5e3702dec9a702177c816e32bac67\n\n# tcId = 328\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 3065023074961587cbe49bbf0a73fea82b8b2242f67b0ea09224774639f437c60378a36b2d511a9145d576b440dffd1f02286a8b0231008fb95d46c22889085cc1d3e20bcfbcbc52f4532445f76f08efae2de8b56fe8525204643330dfd23cce946687a0aef046\n\n# tcId = 329\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 3065023100a3fd322330d0f0efccc54bd7d73c3159eb1bcca08cec369a4a08fd00f9ec6d482ced58eb08a0d7c2113bd5575de4917d0230164e3232a628c40fbba1de82bfb9627cec78a8040cf325a5a8bb8f864c2ac19e3524ac93f4db5713ce62ba256176e05e\n\n# tcId = 330\n# special case hash\nmsg = 31343437383437303635\nresult = valid\nsig = 306502304c862ff9e4ff88f9a58e9fceaaf9bbb30740d3f6c8c6a69b5627fe234b144f8cdf09520735cfd708f5e341a78cc4873d023100a861972514a0e975cf2da214125ec93288524cc77492ed63c516424278e5ec8d41724467cb7c3111fa34c69193abb435\n\n# tcId = 331\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 3065023062225e4e492a9773397870336168960a66b9e50391ef7289cb2d3878f32252dc1b904f6682545e14564e415bd93e01170231009f4d0327f79e043505c691e361fa2e00f87f41324777eca6966f4bea2fa0858876aa01980b2cad7f66037524de49bf65\n\n# tcId = 332\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 30640230450c65d2d88ba464eee3a5ce9310b519d5dcf608799fb2275eee987a67c2c4d7ac53716987cc5139c18c67ef07b1e20702301ee0439311a7bce1c4fed0a3152d1b354d96536c6ca0c9188ac1f1afcc5cd7305b5611ef0d19d8bd57c5059976dc5e68\n\n# tcId = 333\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 3066023100aa2575fb5bea0effb5247d20c3d0165d575831840b5c18b0245a99a61b7ad5d7bf8a8cfcc375e095a84e781025bee3ee0231009c8b7797ad330abc206060b28b6ca1c639d89f59582528bda1527e3ab081697a2ab576f9d09c2ee329dd73231667308d\n\n# tcId = 334\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 3064023001fc45285aa2c2e50458199ade2ded0dd36b1de03e8969175be4a6f09f9719b195ded8d9eb4ea132d95d19a3528fd6c9023059609a358c5919fef4781061804d4d64a067edecdcfd14620161aae3ef2735095a558e4f8ae345040123f093e5f70af2\n\n# tcId = 335\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 3065023100d8e1f6b19e5b92e36060e59e53eeb788a4758c2c8ee9519f3949d5f3315abafbe937b8ed44d47e886a07c107aa8ac9f4023012550574318371e5168d0a339f20fcacaec87db211bba4d4e7c7e055b63b75fd31790ad285f4cc061378692b0a248e34\n\n# tcId = 336\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 306402304815aec44a7a6b86ae87fc2556accd77832fa33a4710e02ec5ef6f41f68a910e6af4d173ae462a759bd98079b371bf5d02306e78d562f9e8be65e8d7a74a7305e5d6cf2f3c4c980f2b18dfb8e9c8b0134ec86548053b3d125e56d5872294d2d14ebc\n\n# tcId = 337\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 3065023100d302f9db6b2d94e194412f0d40a135a554aee014bd939b3d7e45c1221ef7ce45c2aed875f9a2bc43dbc8264d92e444a5023004e7247b258c6e7739979c0a07282f62958ac45e52dd76a41d5e1aca31a5cda73d7b026d67b4d609803001cb661d74c6\n\n# tcId = 338\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 3065023100889f0e2a6ae2ddcad1cde3f65b61d4dd40985917ba841b47a1f802491f5af5067722b7683df0fca7ee19d2b73724c8fd02301f989", - "bac23b51c49e5d7dcc319eed2fc767e9b432bf75af92814d9e67a5d4b3398eb15e98b70527abbc029abc1bea524\n\n# tcId = 339\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig = 3066023100e69c70c679795ca7d2b66e2632529651c120055fa3cf25435fe8bb28987c02412ce73e6ca5ca7e0b42e9670c0a588175023100edd8513bff40cdca9e22659238fbcea2de2caeef53c5287a515db9168b3008ec446c9b94f28a6e021c69bc6637fc4634\n\n# tcId = 340\n# special case hash\nmsg = 36323135363635313234\nresult = valid\nsig = 30640230068cbecfd47bfd688f495df05e45fd5fced6d8e240605c5b2be5e69368740b694b9b1ea034af3180e571dd38a86369ef02301a1d2976f748d1621128013c61abda5398a3e24f0073d1a6e07a1e96c12be4f1e2e7b144f9b5a350500acfc5cb0698d9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b182aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]\n[key.wx = 0ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b18]\n[key.wy = 2aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b182aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]\n[sha = SHA-512]\n\n# tcId = 341\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 304d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68b023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# tcId = 342\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0470e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]\n[key.wx = 70e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12]\n[key.wy = 424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000470e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]\n[sha = SHA-512]\n\n# tcId = 343\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 045a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]\n[key.wx = 5a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d]\n[key.wy = 4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200045a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]\n[sha = SHA-512]\n\n# tcId = 344\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d1aee55fdc2a716ba2fabcb57020b72e539bf05c7902f98e105bf83d4cc10c2a159a3cf7e01d749d2205f4da6bd8fcf1\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0488531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe0389375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]\n[key.wx = 088531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe038]\n[key.wy = 09375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000488531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe0389375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]\n[sha = SHA-512]\n\n# tcId = 345\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b6b681dc484f4f020fd3f7e626d88edc6ded1b382ef3e143d60887b51394260832d4d8f2ef70458f9fa90e38c2e19e4f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]\n[key.wx = 080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c]\n[key.wy = 5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]\n[sha = SHA-512]\n\n# tcId = 346\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020101\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 040e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]\n[key.wx = 0e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05]\n[key.wy = 0a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]\n[sha = SHA-512]\n\n# tcId = 347\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020102\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]\n[key.wx = 0a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf]\n[key.wy = 604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]\n[sha = SHA-512]\n\n# tcId = 348\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020103\n\n# tcId = 349\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52975020103\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffabb924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd6c86c6f532276a", - "f38b779bf2350d7f]\n[key.wx = 0a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffab]\n[key.wy = 0b924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd6c86c6f532276af38b779bf2350d7f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffabb924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd6c86c6f532276af38b779bf2350d7f]\n[sha = SHA-512]\n\n# tcId = 350\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036020102023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accd7fffa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 043c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]\n[key.wx = 3c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24]\n[key.wy = 0da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]\n[sha = SHA-512]\n\n# tcId = 351\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3036020201000230489122448912244891224489122448912244891224489122347ce79bc437f4d071aaa92c7d6c882ae8734dc18cb0d553\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb61f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]\n[key.wx = 559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb6]\n[key.wy = 1f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb61f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]\n[sha = SHA-512]\n\n# tcId = 352\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c02072d9b4d347952cd023100ce751512561b6f57c75342848a3ff98ccf9c3f0219b6b68d00449e6c971a85d2e2ce73554b59219d54d2083b46327351\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 040548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f47700363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]\n[key.wx = 548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f4770]\n[key.wy = 363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f47700363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]\n[sha = SHA-512]\n\n# tcId = 353\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d1033e67e37b32b445580bf4efb02302ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad5215c51b320e460542f9cc38968ccdf4263684004eb79a452\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76afb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]\n[key.wx = 0a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76a]\n[key.wy = 0fb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76afb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]\n[sha = SHA-512]\n\n# tcId = 354\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 303602020100023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]\n[key.wx = 254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3]\n[key.wy = 710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]\n[sha = SHA-512]\n\n# tcId = 355\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d062522bbd3ecbe7c39e93e7c24023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 049129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f8e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]\n[key.wx = 09129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f]\n[key.wy = 08e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200049129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f8e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]\n[sha = SHA-512]\n\n# tcId = 356\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3065023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]\n[key.wx = 0a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43]\n[key.wy = 0e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]\n[sha = SHA-512]\n\n# tcId = 357\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020101\n\n# tcId = 358\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020100\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57b58f456cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b70dd1134b7558b64b55b200c5732c50f05aa032ae7c00]\n[key.wx = 0b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57b58f45]\n[key.wy = 6cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b7", - "0dd1134b7558b64b55b200c5732c50f05aa032ae7c00]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57b58f456cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b70dd1134b7558b64b55b200c5732c50f05aa032ae7c00]\n[sha = SHA-512]\n\n# tcId = 359\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f16d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]\n[key.wx = 0b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f1]\n[key.wy = 6d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f16d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]\n[sha = SHA-512]\n\n# tcId = 360\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]\n[key.wx = 0842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123]\n[key.wy = 0868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]\n[sha = SHA-512]\n\n# tcId = 361\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 049ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d8085110135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]\n[key.wx = 09ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d808511]\n[key.wy = 135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200049ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d8085110135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]\n[sha = SHA-512]\n\n# tcId = 362\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0428771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272ebf92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]\n[key.wx = 28771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272eb]\n[key.wy = 0f92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000428771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272ebf92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]\n[sha = SHA-512]\n\n# tcId = 363\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa84ecde56a2cf73ea3abc092185cb1a51f34810f1ddd8c64d\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 049d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd271eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]\n[key.wx = 09d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd27]\n[key.wy = 1eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200049d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd271eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]\n[sha = SHA-512]\n\n# tcId = 364\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100c152aafea3a8612ec83a7dc9448f01941899d7041319bbd60bfdfb3c03da74c00c8fc4176128a6263268711edc6e8e90\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 048e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315c3184e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]\n[key.wx = 08e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315]\n[key.wy = 0c3184e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200048e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315c3184e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]\n[sha = SHA-512]\n\n# tcId = 365\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304764eeac3e7a08daacfad7d1e1e3696042164b06f77bd78c3213ddea6f9fd449a34c97b9e560a6bf7195da41333c7565\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae26f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]\n[key.wx = 0b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae2]\n[key.wy = 6f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae26f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]\n[sha = SHA-512]\n\n# tcId = 366\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100cb4d5c0ff0abe29b2771fe9f179a5614e2e4c3cc1134a7aad08d8ec3fd8fcd07fd34b3473ca65ead1c7bb20bcf3ea5c9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 044fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb484d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da5076", - "9809ecbf37358dd83c74fc25f]\n[key.wx = 4fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb4]\n[key.wy = 084d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da50769809ecbf37358dd83c74fc25f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb484d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da50769809ecbf37358dd83c74fc25f]\n[sha = SHA-512]\n\n# tcId = 367\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02306e441db253bf798dbc07ff041506dc73a75086a43252fb439dd016110475d8381f65f7f27f9e1cfc9b48f06a2dfa8eb6\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 047d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5be7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]\n[key.wx = 7d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5b]\n[key.wy = 0e7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200047d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5be7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]\n[sha = SHA-512]\n\n# tcId = 368\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023041db253bf798dbc07ff041506dc73a75086a43252fb43b63191efcd0914b6afb4bf8c77d008dbeac04277ef4aa59c394\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]\n[key.wx = 608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf]\n[key.wy = 674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]\n[sha = SHA-512]\n\n# tcId = 369\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02310083b64a77ef31b780ffe082a0db8e74ea10d4864a5f6876c6323df9a12296d5f697f18efa011b7d58084efde954b38728\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0448d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]\n[key.wx = 48d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18]\n[key.wy = 0e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000448d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]\n[sha = SHA-512]\n\n# tcId = 370\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023053bf798dbc07ff041506dc73a75086a43252fb43b6327af3b42da6d3e9a72cde0b5c2de6bf072e780e94ad12dcab270a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 045d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]\n[key.wx = 5d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94]\n[key.wy = 0d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200045d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]\n[sha = SHA-512]\n\n# tcId = 371\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023024c53b0a00cf087a9a20a2b78bc81d5b383d04ba9b55a567405239d224387344c41cceff0f68ffc930dbaa0b3d346f45\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 041da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]\n[key.wx = 1da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9]\n[key.wy = 0e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]\n[sha = SHA-512]\n\n# tcId = 372\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100c600ccb39bb3e2d85d880d76d1d519205f050c4b93deae0c5d63e8898ca8d7a5babbb944debe0f3c44332aae5770cb7b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 048b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b19d33468a130b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]\n[key.wx = 08b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b1]\n[key.wy = 09d33468a130b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200048b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b19d33468a130b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]\n[sha = SHA-512]\n\n# tcId = 373\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303ead55015c579ed137c58236bb70fe6be76628fbece64429bb655245f05cb91f4b8a499ae7880154ba83a84bf0569ae3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f756b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]\n[key.wx = 442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f7]\n[key.wy = 56b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f756b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]\n[sha = SHA-512]\n\n# tcId = 374\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100de03ff820a836e39d3a8435219297da1db193d79e359663e7cc9a229e2a6ac9e9d5c75417fa455bc8e3b89274ee47d0e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type", - " = ECPublicKey]\n[key.uncompressed = 0411342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998af533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]\n[key.wx = 11342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998a]\n[key.wy = 0f533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000411342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998af533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100e5a6ae07f855f14d93b8ff4f8bcd2b0a717261e6089a53d54bf86e22f8e37d73aaa7607cc2ab831404b3e5bb4e01e79e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 043c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]\n[key.wx = 3c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6]\n[key.wy = 169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]\n[sha = SHA-512]\n\n# tcId = 376\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffed2119d5fc12649fc808af3b6d9037d3a44eb32399970dd0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89bb353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]\n[key.wx = 388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89b]\n[key.wy = 0b353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89bb353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]\n[sha = SHA-512]\n\n# tcId = 377\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023079b95c013b0472de04d8faeec3b779c39fe729ea84fb554cd091c7178c2f054eabbc62c3e1cfbac2c2e69d7aa45d9072\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce868cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]\n[key.wx = 0c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce8]\n[key.wy = 68cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce868cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]\n[sha = SHA-512]\n\n# tcId = 378\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bfd40d0caa4d9d42381f3d72a25683f52b03a1ed96fb72d03f08dcb9a8bc8f23c1a459deab03bcd39396c0d1e9053c81\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b910e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]\n[key.wx = 0e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b91]\n[key.wy = 0e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b910e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]\n[sha = SHA-512]\n\n# tcId = 379\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304c7d219db9af94ce7fffffffffffffffffffffffffffffffef15cf1058c8d8ba1e634c4122db95ec1facd4bb13ebf09a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d496ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]\n[key.wx = 0e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d4]\n[key.wy = 096ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d496ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]\n[sha = SHA-512]\n\n# tcId = 380\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d219db9af94ce7ffffffffffffffffffffffffffffffffffd189bdb6d9ef7be8504ca374756ea5b8f15e44067d209b9b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]\n[key.wx = 637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21]\n[key.wy = 0f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a433b735f299cfffffffffffffffffffffffffffffffffffdbb02debbfa7c9f1487f3936a22ca3f6f5d06ea22d7c0dc3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 047f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]\n[key.wx = 7f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565]\n[key.wy = 0fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200047f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffff", - "ffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b9af94ce7fffffffffffffffffffffffffffffffffffffffd6efeefc876c9f23217b443c80637ef939e911219f96c179\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a134634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]\n[key.wx = 0a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a1]\n[key.wy = 34634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a134634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a276276276276276276276276276276276276276276276273d7228d4f84b769be0fd57b97e4c1ebcae9a5f635e80e9df\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 047cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]\n[key.wx = 7cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0]\n[key.wy = 0fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200047cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023073333333333333333333333333333333333333333333333316e4d9f42d4eca22df403a0c578b86f0a9a93fe89995c7ed\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 042024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]\n[key.wx = 2024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906]\n[key.wy = 0d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]\n[sha = SHA-512]\n\n# tcId = 385\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffda4233abf824c93f90115e76db206fa7489d6647332e1ba3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0440c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]\n[key.wx = 40c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476]\n[key.wy = 0c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000440c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]\n[sha = SHA-512]\n\n# tcId = 386\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294bb\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0474acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]\n[key.wx = 74acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8]\n[key.wy = 496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000474acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]\n[sha = SHA-512]\n\n# tcId = 387\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100dfea06865526cea11c0f9eb9512b41fa9581d0f6cb7db9680336151dce79de818cdf33c879da322740416d1e5ae532fa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]\n[key.wx = 0da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734]\n[key.wy = 0945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]\n[sha = SHA-512]\n\n# tcId = 388\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 3066023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023100e16043c2face20228dba6366e19ecc6db71b918bbe8a890b9dad2fcead184e071c9ac4acaee2f831a1e4cc337994f5ec\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a39917346ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]\n[key.wx = 0da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734]\n[key.wy = 6ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a39917346ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]\n[sha = SHA-512]\n\n# tcId = 389\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 3066023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023100e16043c2face20228dba6366e19ecc6db71b918bbe8a890b9dad2fcead184e071c9ac4acaee2f831a1e4cc337994f5ec\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]\n[key.wx = 0", - "820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32]\n[key.wy = 631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]\n[sha = SHA-512]\n\n# tcId = 390\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3035020101023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0452fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee119f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]\n[key.wx = 52fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee11]\n[key.wy = 09f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000452fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee119f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]\n[sha = SHA-512]\n\n# tcId = 391\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3065023101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]\n[key.wx = 0a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c]\n[key.wy = 64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]\n[sha = SHA-512]\n\n# tcId = 392\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]\n[key.wx = 0878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79]\n[key.wy = 0fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]\n[sha = SHA-512]\n\n# tcId = 393\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 048faa8497ae3006b612999b03f91f7884d95543a266598e897b71e44ecfd9abd7908bfd122bb366c016a577cb1b2e2e412bb1a719289c749804ca677d14c0900fab031da8c70724723a0d54e3a0035da7dcddeef6fce80df2f81940817d27b2b5]\n[key.wx = 08faa8497ae3006b612999b03f91f7884d95543a266598e897b71e44ecfd9abd7908bfd122bb366c016a577cb1b2e2e41]\n[key.wy = 2bb1a719289c749804ca677d14c0900fab031da8c70724723a0d54e3a0035da7dcddeef6fce80df2f81940817d27b2b5]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200048faa8497ae3006b612999b03f91f7884d95543a266598e897b71e44ecfd9abd7908bfd122bb366c016a577cb1b2e2e412bb1a719289c749804ca677d14c0900fab031da8c70724723a0d54e3a0035da7dcddeef6fce80df2f81940817d27b2b5]\n[sha = SHA-512]\n\n# tcId = 394\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04c59cc648629e62dc1855f653583da0ace631e0f4b4589b7fe5cc449e12df2dceeb862cae00cd100233b999af657ae16cb138f659dcc8d342fd17664d86c5bddaa866c20b0031f65c8442a0ed62b337d09adb63a443ab14e3587b9299053717f9]\n[key.wx = 0c59cc648629e62dc1855f653583da0ace631e0f4b4589b7fe5cc449e12df2dceeb862cae00cd100233b999af657ae16c]\n[key.wy = 0b138f659dcc8d342fd17664d86c5bddaa866c20b0031f65c8442a0ed62b337d09adb63a443ab14e3587b9299053717f9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004c59cc648629e62dc1855f653583da0ace631e0f4b4589b7fe5cc449e12df2dceeb862cae00cd100233b999af657ae16cb138f659dcc8d342fd17664d86c5bddaa866c20b0031f65c8442a0ed62b337d09adb63a443ab14e3587b9299053717f9]\n[sha = SHA-512]\n\n# tcId = 395\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04386bdc98fe3c156a790eee6d556e0036a4b84853358bd5ab6856db5985b9e8ea92e8d4c1f8d04ecd1e6de4548bf288215503292c2c570f57b42f2caf5e7ab94d87817a800b2af6ffcd4f13e30edb8caaf23c6d5be22abea18c2f9450ad1a4715]\n[key.wx = 386bdc98fe3c156a790eee6d556e0036a4b84853358bd5ab6856db5985b9e8ea92e8d4c1f8d04ecd1e6de4548bf28821]\n[key.wy = 5503292c2c570f57b42f2caf5e7ab94d87817a800b2af6ffcd4f13e30edb8caaf23c6d5be22abea18c2f9450ad1a4715]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004386bdc98fe3c156a790eee6d556e0036a4b84853358bd5ab6856db5985b9e8ea92e8d4c1f8d04ecd1e6de4548bf288215503292c2c570f57b42f2caf5e7ab94d87817a800b2af6ffcd4f13e30edb8caaf23c6d5be22abea18c2f9450ad1a4715]\n[sha = SHA-512]\n\n# tcId = 396\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04294c37b3ec91a1b0500042d8b97bc9619d17f784a9ea528c0602d700783bfbac9ac49bff1e527b39bb2a49d1dc3abd471e798679b7c58f4dfa33cfe40bb62e7df6d2f190b0f3804c700fa19eba28ad7fd6edd7e3a754af852921c2705f444f0b]\n[key.wx = 294c37b3ec91a1b0500042d8b97bc9619d17f784a9ea528c0602d700783bfbac9ac49bff1e527b39bb2a49d1dc3abd47]\n[key.wy = 1e798679b7c58f4dfa33cfe40bb62e7df6d2f190b0f3804c700fa19eba28ad7fd6edd7e3a754af852921c2705f444f0b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004294c37b3ec91a1b0500042d8b97bc9619d17f784a9ea528c0602d700783bfbac9ac49bff1e527b39bb2a49d1dc3abd471e798679b7c58f4dfa33cfe40bb62e7df6d2f190b0f3804c700fa19eba28ad7fd6edd7e3a754af852921c2705f444f0b]\n[sha = SHA-512]\n\n# tcId = 397\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.un", - "compressed = 04bac7cd8a7755a174fab58e5374ec55a5ce5313235ec51c919c6684bd49305b7005393f72bc4d810ca864fb046d2c83415a33b77f4145680bde63b669ea1f10f3ee1836018c11a6f97155d90827c83dbac388402ac8f59368ddaf2c33548611af]\n[key.wx = 0bac7cd8a7755a174fab58e5374ec55a5ce5313235ec51c919c6684bd49305b7005393f72bc4d810ca864fb046d2c8341]\n[key.wy = 5a33b77f4145680bde63b669ea1f10f3ee1836018c11a6f97155d90827c83dbac388402ac8f59368ddaf2c33548611af]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bac7cd8a7755a174fab58e5374ec55a5ce5313235ec51c919c6684bd49305b7005393f72bc4d810ca864fb046d2c83415a33b77f4145680bde63b669ea1f10f3ee1836018c11a6f97155d90827c83dbac388402ac8f59368ddaf2c33548611af]\n[sha = SHA-512]\n\n# tcId = 398\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00eb4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]\n[key.wx = 0984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00e]\n[key.wy = 0b4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00eb4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]\n[sha = SHA-512]\n\n# tcId = 399\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04f00d6327b1226eaa1b0897295eeddadf7510249e6f0f811b57d7197eb6e61199a8f1c6665ec4821d3e18675d5399fdf787bf1e3fb7fee5cb3582a4159808b75e8b1de07eaffd49d3882d15c77443ad83213d21a4be9285223aa44a840e47eb56]\n[key.wx = 0f00d6327b1226eaa1b0897295eeddadf7510249e6f0f811b57d7197eb6e61199a8f1c6665ec4821d3e18675d5399fdf7]\n[key.wy = 087bf1e3fb7fee5cb3582a4159808b75e8b1de07eaffd49d3882d15c77443ad83213d21a4be9285223aa44a840e47eb56]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f00d6327b1226eaa1b0897295eeddadf7510249e6f0f811b57d7197eb6e61199a8f1c6665ec4821d3e18675d5399fdf787bf1e3fb7fee5cb3582a4159808b75e8b1de07eaffd49d3882d15c77443ad83213d21a4be9285223aa44a840e47eb56]\n[sha = SHA-512]\n\n# tcId = 400\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04452b047743346898b087daaac5d982d378752ba534e569f21ac592c09654d0809b94ccf822045f2885cbd3b221453cd668a01f502f551af14aab35c2c30ec7bac0709f525fe7960439b1e9de53cdad245efd8930967cde6caf8d222c8200cd69]\n[key.wx = 452b047743346898b087daaac5d982d378752ba534e569f21ac592c09654d0809b94ccf822045f2885cbd3b221453cd6]\n[key.wy = 68a01f502f551af14aab35c2c30ec7bac0709f525fe7960439b1e9de53cdad245efd8930967cde6caf8d222c8200cd69]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004452b047743346898b087daaac5d982d378752ba534e569f21ac592c09654d0809b94ccf822045f2885cbd3b221453cd668a01f502f551af14aab35c2c30ec7bac0709f525fe7960439b1e9de53cdad245efd8930967cde6caf8d222c8200cd69]\n[sha = SHA-512]\n\n# tcId = 401\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0444a8f54795bdb81e00fc84fa8373d125b16da6e2bf4cfa9ee1dc13d7f157394683963c170f4c15e8cf21b5466b49fa72bb5693655b3e0a85e27e3e6d265fba0131f3083bf447f62b6e3e5275496f34daa522e16195d81488a31fe982c2b75f16]\n[key.wx = 44a8f54795bdb81e00fc84fa8373d125b16da6e2bf4cfa9ee1dc13d7f157394683963c170f4c15e8cf21b5466b49fa72]\n[key.wy = 0bb5693655b3e0a85e27e3e6d265fba0131f3083bf447f62b6e3e5275496f34daa522e16195d81488a31fe982c2b75f16]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000444a8f54795bdb81e00fc84fa8373d125b16da6e2bf4cfa9ee1dc13d7f157394683963c170f4c15e8cf21b5466b49fa72bb5693655b3e0a85e27e3e6d265fba0131f3083bf447f62b6e3e5275496f34daa522e16195d81488a31fe982c2b75f16]\n[sha = SHA-512]\n\n# tcId = 402\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0410b336b3afb80c80ff50716e734110fe83cd5b8d41d7f2f94f0dec7ecf1facc663babb8ed94e4bdf3592e37464970afa9be144d354e9b456873c6387a12a3eefd3e2feb66f7519ac72ac502c09d20d72cae9d04c88549a285c081023e1c1da08]\n[key.wx = 10b336b3afb80c80ff50716e734110fe83cd5b8d41d7f2f94f0dec7ecf1facc663babb8ed94e4bdf3592e37464970afa]\n[key.wy = 09be144d354e9b456873c6387a12a3eefd3e2feb66f7519ac72ac502c09d20d72cae9d04c88549a285c081023e1c1da08]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000410b336b3afb80c80ff50716e734110fe83cd5b8d41d7f2f94f0dec7ecf1facc663babb8ed94e4bdf3592e37464970afa9be144d354e9b456873c6387a12a3eefd3e2feb66f7519ac72ac502c09d20d72cae9d04c88549a285c081023e1c1da08]\n[sha = SHA-512]\n\n# tcId = 403\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0481f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132221d81323509391f7b61bd796011337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[key.wx = 081f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132]\n[key.wy = 221d81323509391f7b61bd796011337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000481f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132221d81323509391f7b61bd796011337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[sha = SHA-512]\n\n# tcId = 404\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[sha = SHA-512]\n\n# tcId = 405\n# testing point duplication\nmsg = 313233343030\nresul", - "t = invalid\nsig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 406\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 0c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[sha = SHA-512]\n\n# tcId = 407\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 408\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 0429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]\n[key.wy = 09a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[sha = SHA-512]\n\n# tcId = 409\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 306402302290c886bbad8f53089583d543a269a727665626d6b94a3796324c62d08988f66f6011e845811a03589e92abe1f17faf023066e2cb4380997f4e7f85022541adb22d24d1196be68a3db888b03eb3d2d40b0d9a3a6a00a1a4782ee0a00e8410ba2d86\n\n# tcId = 410\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30650231008071d8cf9df9efef696ebafc59f74db90c1f1ecf5ccde18858de22fe4d7df2a25cb3001695d706dfd7984b39df65a0f4023027291e6339c2a7fed7a174bb97ffe41d8cfdc20c1260c6ec85d7259f0cc7781bf2ae7a6e6fb4c08e0d75b7381bb7d9b8\n\n# tcId = 411\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 30650230470014ccd7a1a5e5333d301c8ea528ac3b07b01944af30cec60f4bad94db108509e45ba381818b5bdfaf9daf0d372301023100e3d49d6a05a755aa871d7cb96fffb79fed7625f83f69498ba07c0d65166a67107c9a17ae6e1028e244377a44096217b2\n\n# tcId = 412\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 30640230377044d343f900175ac6833071be74964cd636417039e10e837da94b6919bffc3f5a517b945a450852af3259f5cbf108023032ea25006375c153581e80c09f53ad585c736f823c70147aba4fb47bb0a224fae4d8819adad80d4c144ecc2380954a9e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[key.wx = 0ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]\n[key.wy = 0acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[sha = SHA-512]\n\n# tcId = 413\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ccb13c4dc9805a9b4e06ee25ef8c7593eaff7326c432d4b12b923163cf1cbe5fe1cfd3546c1d0761d8874e83ffd2e15d023100db1b0c082ae314b539f05e8a14ad51e5db37f29cacea9b2aab63a04917d58d008cf3f7ba41d5ea280f3b6a67be3ae8f8\n\n# tcId = 414\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100c79a30e36d2126b348dd9eb2f5db6aa98f79d80214027e51bcf3cabec188a7ebaf25cb7bbe9ec6bfed135e2a3b70e9160230241338ee2ac931adea9a56e7bfe909947128d54d5122a47b00c278e684e10102740d26e89e343290a5b2fa8b401faec6\n\n# tcId = 415\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306402300df82e4ec2960e3df614f8b49cec9a4ee1054365414241361feec9d9d9b6909d8775f222ec385a14afab46266db390c302300968485e854addba0f8354e677e955e1ef2df973d564c49f65f2562cb2a2b80d75e92f8784042955f7b8765f609ce221\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[key.wx = 0d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]\n[key.wy = 0c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[sha = SHA-512]\n\n# tcId = 416\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402301fafd83d728422e1485f1e52e5b631548647cc3c76c109c3177a73751d91a19012fa4628b218f2229fc4d55f105fe00102304474f9af7b4b0bb96fdb05ae918f799024e8d5b864e49ccd047cf97e7b9f8763cce015c11cf1f461c9027cb901055101\n\n# tcId = 417\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100e6025bb957ab197fb4c080d0a5c647e428afb0d7cc235c605ae97545494fd31a9979790bb2da6e1cf186789422b15c970231008ae9872291430d1bb371ef72360dad5afbb6fb001f403d9aaa1445f0326eb1eef775c9dfe1d7ef8bf4e744822108d27e\n\n# tcId = 418\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100877d5567c18fa568259005a89c2300d1b3825b732fa14964c1477d4b3098afd09384b97d497464adba41e9df8a74d339023100c40f0760717b4b3bae75742b6dc3dcf04cc22a449cfea19d305e0658cb705fda75163e7399e0b3125ca7d1919c13851e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]\n[key.wy = 0e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[sha = SHA-512]\n\n# tcId = 419\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e706b0045a6f54bd175e2437b48767b0204f93d8a4d9d3d00838278137e5b670de4305c5c55e49059b8b5f6e264654c902", - "30405741adff94afd9a88e08d0b1021911fa4cedb2466b1a8fd302a5b5d96566ada63ccb82b6c5e8452fde860c545e0a19\n\n# tcId = 420\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306502300c57ce2bc579fbd3a759dfbf5e84c3cef2414846a2e300453e1e4c5188f24432b14ca647a733b6ad35c980a880d36145023100f12a119e22d48b82049df611f1c851fb22795056498a873c730fcb9fd8f314728de0298b9b22c348abc6de2aba97e972\n\n# tcId = 421\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30660231009a8f80697ccf2e0617612027d861a3a3a657fb75cc82810b40dd5072d39ff37eca29008390da356137e2c9babd814198023100a86537a83c3d57da50e4b29b47dcc3717c5a1ed0fff18ade8dcce4220eac63aab60b9bfed5f1bdd241dab655a9bdd75f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]\n[key.wy = 0d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[sha = SHA-512]\n\n# tcId = 422\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306602310093718f6f8542725f62de7039fc193d3fcc81d622230ccc94e9e265390b385af3a3ba50c91a9d6a5b1e07d79af2bd80b2023100d08499f3d298e8afecea122265a36dbf337259020654739783c8ec8ef783d072555b5907285ce83fc8ced9c8398c6269\n\n# tcId = 423\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ce26e42c490dec92cf59d6b1ba75c9a1400d6e5c3fd7c47e1eeb1cded30a3a3d18c81cdfdcbad2742a97293369ce21c202310094671085d941fd27d495452a4c8559a1fe24f3225f5b8ef75faf9d3fb01372c586e23b82714359d0e47144ff5d946161\n\n# tcId = 424\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ffc4738acf71f04a13104c328c138b331fb7202aef66f583ba543ed490d12993c18f724c81ad0f7ea18dae352e5c6480023100e67d4ccdeb68a9a731f06f77eae00175be076d92529b109a62542692c8749ddfde03bed1c119a5901a4e852f2115578f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[sha = SHA-512]\n\n# tcId = 425\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e6fa8455bc14e730e4ca1eb5faf6c8180f2f231069b93a0bb17d33ad5513d93a36214f5ce82ca6bd785ccbacf7249a4c02303979b4b480f496357c25aa3fc850c67ff1c5a2aabd80b6020d2eac3dd7833cf2387d0be64df54a0e9b59f12c3bebf886\n\n# tcId = 426\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306502301b49b037783838867fbaa57305b2aa28df1b0ec40f43140067fafdea63f87c02dfb0e6f41b760fbdf51005e90c0c3715023100e7d4eb6ee61611264ea8a668a70287e3d63489273da2b30ad0c221f1893feaea3e878c9a81c6cec865899dbda4fa79ae\n\n# tcId = 427\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306502310091d9da3d577408189dcaae33d95ed0a0118afd460d5228fa352b6ea671b172eb413816a70621ddaf23c5e2ef79df0c110230053dadbfcd564bddbe44e0ecb4d1e608dbd35d4e83b6634cc72afb87a2d61675ee13960c243f6be70519e167b1d3ceb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = ECPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 0ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[sha = SHA-512]\n\n# tcId = 428\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100af0ed6ce6419662db80f02a2b632675445c7bf8a34bbacdc81cc5dd306c657ca4c5a3fb1b05f358d8f36fda8ae238806023046b472c0badb17e089c8f9697fd0b4ce71f0f4471b235483d4c8dd3d00aa282cde990253df38ba733b2ad82a601c7508\n\n# tcId = 429\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100e2aa9468ccaaadad8b9f43a429c97f0c6a7eedcb4d4af72d639df0fe53f610b953408a8e24e8db138551770750680f7a023100d81020846d1c50ee9ae23601dd638cb71b38d37fb555268c2fa1ad8a761fa7b27afcab2fa69224d1f976699914e09de2\n\n# tcId = 430\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306402306bf6fa7a663802c3382cc5fd02004ec71e5a031e3d9bfc0858fa994e88497a7782308bc265b8237a6bbbdd38658b36fc02303a9d5941a013bf70d99cc3ff255ce85573688dac40344b5db7144b19bf57bb2701e6850a8f819796b67f7d0b6aea7e50\n\n", +static const char *kData105[] = { + "# Imported from Wycheproof's ecdsa_secp384r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]\n[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202307b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19fbb197e4c4250926e30c5303a2c2d34250f17fcf5ab3181a6\n\n# tcId = 2\n# Legacy:ASN encoding of r misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 30650230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = MissingZero\n\n# tcId = 3\n# Legacy:ASN encoding of s misses leading 0\nmsg = 313233343030\nresult = acceptable\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = MissingZero\n\n# tcId = 4\n# valid\nmsg = 313233343030\nresult = valid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 5\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 6\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30820066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 7\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 8\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 9\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30850100000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 10\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3089010000000000000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 11\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 12\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 13\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 14\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 15\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 16\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 17\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3066028000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 18\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202800084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 19\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 20\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 21\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 22\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30680000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 23\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 24\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0500\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b4981773066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a2500306602", + "3100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b2236498177023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a22352500023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306e2233023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20004deadbeef02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 31\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223649817702310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22235250002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 33\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223302310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306eaa00bb00cd003066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306caa02aabb3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306e2239aa00bb00cd00023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 37\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306c2237aa02aabb023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 38\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22239aa00bb00cd0002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 39\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 306c023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22237aa02aabb02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 40\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 41\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30803066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 42\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 306a2280023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 43\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 44\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30803166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 45\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 306a2280033100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 46\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228003310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 47\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 50\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 51\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3266023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 52\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 53\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 54\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 306a30010230653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 55\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673", + "854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7\n\n# tcId = 56\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 30653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 57\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\nflags = BER\n\n# tcId = 58\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd00\n\n# tcId = 59\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd05000000\n\n# tcId = 60\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd060811220000\n\n# tcId = 61\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000fe02beef\n\n# tcId = 62\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0002beef\n\n# tcId = 63\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30683000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 64\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd3000\n\n# tcId = 65\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 3069023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cdbf7f00\n\n# tcId = 66\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 67\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3033023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2\n\n# tcId = 68\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 308199023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 69\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306702813100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 70\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20281310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 71\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30680282003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 72\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028200310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023200814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 74\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 75\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202320084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 76\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202300084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 77\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306b0285010000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 78\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028501000000310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 79\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306f028901000000000000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 80\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306f023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202890100000000000000310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 81\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a02847fffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 82\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada", + "87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202847fffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 83\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a0284ffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 84\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20284ffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 85\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306b0285ffffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 86\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20285ffffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 87\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306e0288ffffffffffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 88\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20288ffffffffffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 89\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 306602ff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 90\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202ff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 91\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 303302310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 92\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 30340202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 93\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 3034023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202\n\n# tcId = 94\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023300814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 95\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202330084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000\n\n# tcId = 96\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30680233000000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 97\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023300000084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\nflags = BER\n\n# tcId = 98\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 99\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023300814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2050002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 100\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202330084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0500\n\n# tcId = 101\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035028102310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 102\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20281\n\n# tcId = 103\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3035050002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 104\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20500\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066013100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066033100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066043100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066ff3100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e200310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e201310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 112\n# changing tag value of intege", + "r\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e203310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 113\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e204310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 114\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2ff310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 115\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035020002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 116\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20200\n\n# tcId = 117\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 306a22350201000230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 118\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22235020100023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 119\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023102814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 120\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310284f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 121\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a156202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 122\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a74d\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a1502310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 124\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202300084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30670232ff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 126\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20232ff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 303609018002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 128\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3036023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2090180\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 303602010002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 130\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3036023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2020100\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023101814cc9a70febda342d4ada87fc39426f403d5e8980842845d38217e2bcceedb5caa7aef8bc35edeec4beb155610f3f5502310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30650230814cc9a70febda342d4ada87fc39426f403d5e898084284644bb7cded46091f71a7393942ad49ef8eae67e7fc784ec6f02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231ff7eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9f3e1359f376840298d725eb98c7ab98c282d68156bb5ea1e02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 306502307eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9bb4483212b9f6e08e58c6c6bd52b610715198180387b139102310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30660231fe7eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7ba2c7de81d4331124a3558510743ca12113b414eaa9ef0c0ab02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023101814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 306502307eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9f3e1359f376840298d725eb98c7ab98c282d68156bb5ea1e02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310184f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e5fd3ad1cb7a61dc9507f6eeb2a65341ad0cac035dfee58d140\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e6044e681b3bdaf6d91cf3acfc5d3d2cbdaf0e8030a54ce7e5a\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca", + "60c897bfd6728da14673854673d7d297ea944a15e20231ff7b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19ff3b630ca4e19648ed8ab2287e37c8caa222be38ade6c5833\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20231fe7b0a10ee2dd0dd2fab75095af240d095e446faba7a50a1a02c52e34859e236af809114d59acbe52f353fca2011a72ec0\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310184f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202307b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19ff3b630ca4e19648ed8ab2287e37c8caa222be38ade6c5833\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case value", + "s for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090380fe01\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090142\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020100\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020101\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529720201ff\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090380fe01\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090142\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020100\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020101\nflags = EdgeCase\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529740201ff\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090380fe01\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090142\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020100\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020101\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff0201ff\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 3", + "13233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090380fe01\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090142\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020100\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020101\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000001000000000201ff\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090380fe01\nflags = EdgeCase\n\n# tcId = 223\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090142\nflags = EdgeCase\n\n# tcId = 224\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 230\n# Edge case for Shamir multiplication\nmsg = 3637323636\nresult = valid\nsig = 3066023100ac042e13ab83394692019170707bc21dd3d7b8d233d11b651757085bdd5767eabbb85322984f14437335de0cdf5656840231008f8a277dde5282671af958e3315e795a20e2885157b77663a67a77ef2379020c5d12be6c732fd725402cb9ee8c345284\n\n# tcId = 231\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 3065023100d51c53fa3e201c440a4e33ea0bbc1d3f3fe18b0cc2a4d6812dd217a9b426e54eb4024113b354441272174549c979857c02300992c5442dc6d5d6095a45720f5c5344acb78bc18817ef32c1334e6eba7726246577d4257942bdefe994c1575ed15a6e\n\n# tcId = 232\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 3065023100c8d44c8b70abed9e6ae6bbb9f4b72ed6e8b50a52a8e6e1bd3447c0828dad26fc6f395ba09069b307f040d1e86a42c022023001e0af500505bb88b3a2b0f132acb4da64adddc0598318cb7612b5812d29c2d0dde1413d0ce40044b44590e91b97bacd\n\n# tcId = 233\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 3065023100d3513bd06496d8576e01e8c4b284587acafd239acfd739a19a5899f0a00d269f990659a671b2e0e25f935b3a28a1f5fd0230366b35315ce114bffbb75a969543646ee253f046a8630fbbb121ecc5d62df4a7eb09d2878805d5dab9c9b3880b747b68\n\n# tcId = 234\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 3065023100b08c4018556ca8833b524504e30c58346e1c0345b678fdf91891c464a33180ed85a99bc8911acf4f22aceb40440afc9402304a595f7eed2db9f6bd3e90355d5c0e96486dc64242319e41fc07be00a732354b62ec9c34319720b9ffb24c994b1cf875\n\n# tcId = 235\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 306502302b08f784617fd0707a83d3c2615efa0c45f28d7d928fc45cd8a886e116b45f4686aee97474d091012e27057b6ba8f7e6023100c440aa6ecb63e0d43c639b37e5810a96def7eec8e90a4c55e5b57971c48dfb4e850232fbb37bd32bb3b0523b815ff985\n\n# tcId = 236\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 306402300609f4ec120c8838bda916f668e9600af7652e1d3f7182734f97f54da5d106bbfd216c32f227b76d583de1c53949b2ee023046926dffc766ff90c3b921b3e51a2982a1072314c1fdfb4175de7adea5a6f97bdff587a473504a9c402aac7c05bd4785\n\n# tcId = 237\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 306502305ae2220e4716e1ef0382afcc39db339e5bd5f05e8a188d4a5daaab71c6c35263ee8820a34558092877449ebb15898c5c023100c4d38e2e85451c43ee35b0c56196cbf3059acf2b8b529f06dc1de9b281d9b0f3f3983df8936e944ab0b18330a342ee88\n\n# tcId = 238\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 3065023051fb84ed71d436c737ab24e2a45c68f8f623748be2caebd89e02bfc89309b8350042ab1b97849b9f680f044a58765175023100d4a8f60791657a8c12985fd896ac77e7d95cb050582f2466471dc2c6dcf90db05ce34beadbfcfe690dc56c0cc9944007\n\n# tcId = 239\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 3065023040159290d161df6b3f81a92cefb6df56149d588e7b886bf24939f5c8b6bb515d325b3764f0ed284a77fa9081ccfa5237023100bd55dfb47709287ce7b88dfd96ac7543eeba9bd31b8c91f203d2b90418122406399c80a53539b81f1cb60fa3b23a2563\n\n# tcId = 240\n# special case", + " hash\nmsg = 36323139353630323031\nresult = valid\nsig = 3066023100d7fb9f53865cdf9d4cad6f66981aea35a1454858ceb678d7b851c12a4c6644fe1915a4b219b51389a5ae2c98a433cc3a02310094ad75c3dea88740205cab41032dfe149341cf4ee94dcd2f0c8bbe5af5860b30b5e1f764b2c767b09fd10761050c989c\n\n# tcId = 241\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 30650230157ef8f85cdb9257983d06a7f29674752659097364b401e701705b3bd9ead884fd32141320ae76ae05f6fc7ec155d6c2023100ccadc3851020e41dd91bc28a6c073409136a47f20b8dbf2553fd456a8ed5fa7e73e4ec59dca499e0d082efbb9ad34dc7\n\n# tcId = 242\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 3066023100e763001769c76f6a6d06fad37b584d7f25832501491bec283b3b6836f947dc4e2cef021c6c6e525b0a6a3890d1da122a023100acbd88729cce3992d14ec99e69ff0712b82a33a1c1e8b90e1399c66fe196f7c99bdb3ff81db77dc25ae6f0c1a025117d\n\n# tcId = 243\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 3066023100c6425b6b046ec91ebc32b9e6de750e5d3d36d4ddc6dffd25ba47817385a9466f6fc52259c7d02c66af5bf12045b5659d02310084cdc06e35fecc85a3e00b16488eac3584942f663d8b59df111c0650139d7cda20d68dccae569d433170d832147bc94c\n\n# tcId = 244\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 306502303061f090e4932133a0e08ac984d1c8d8d4f565e21cf15427671503880341265cd44f35a437ee3c3a8857579dd7af0c3502310093ae374a0f63dcbe41a1b7b07a50faf2b33f35e0b6600bb36aa5cda05238640fa35c635c0fa78e1410f3a879bbb8a541\n\n# tcId = 245\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 306502300ccc627f35454cc84e08a828f5bd5f5e41eeeaa40475bcc2e71ff372e8c718a5e179d3b7f2d7051db9060c4c978eb638023100b12d0240afbdfc64c60861548c33663b8960316a55f860cc33d1908e89aa6fc9519f23a900e0488fa6a37cfb37856565\n\n# tcId = 246\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 3065023100e72419fb67ebbcc0de9c46ce5475c608f9de7e83fc5e582920b8e9848000d820d393fdac6c96ea35ce941cb14951640002306aa19934ef60f4a247bc261ba256283a94857a268f42a0939c95a536fbd4f8e1f1c285a7b164c12213abb9e3393cbe9f\n\n# tcId = 247\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 30660231008b740931f9afa8a04c08cde896b7fdd9aca3177d5e4a3e5a51e54bfa824b66ab11df4e90f49798d644babfede7830224023100afd91e7ce15059a5b5499e5aef4afa91fd090e4e5029b3f4348f0d4349df11745869f9255117eea405a78af5dd6a646d\n\n# tcId = 248\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 3066023100989024bce204a7539fbd2b185ecf375590d873177c1ff26bbf755838ae5bcde180054663702ac3a4e68fe8b58fd88c70023100bdbedf64e424dbd7f979f83adef3fc85077fa76f8b1724815b5b8c24fde7fbd72f4b369a415d9bbf565cdc459bdce54c\n\n# tcId = 249\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 3064023022624fc23403955c0c9f5b89871177fa53879c8424de3b4ab1bcbcddc6e57b870b0491b848e19f728722b3163f4aa32802305bb82642cdaa84d6977fb95b3ede4ec7f2d54881cf435636d3509816f13ebb7be24fd7d4e1e81fddf07bde685e8d630d\n\n# tcId = 250\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 3065023100da5a2daa7437df4566ebba6ac5ed424655633e354ef4d943dc95ddefb0dae69f3616e506cc8cb5bc433a82ba71f6feb402305107b24041bba45073ce54488a5aef861e7805bbb8f970aedc1c59149cfe72c7025e2d117337e8677c88ef43374e6907\n\n# tcId = 251\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 306402302b0659fb7fa5fc1fce767418c20978de9a6a59941fc54f8380619b2ab2a7d6039de5373fbb503c24f2ce38e9c57995de02300d94dba98dd874bfffeac96a9295b6ab667708b8e33252edc029574c484a132135b13e52db6f877987c1be4f51fca193\n\n# tcId = 252\n# special case hash\nmsg = 32323332313935383233\nresult = valid\nsig = 306402304a5a14f1ecf053bf3ec14843db8c7dd153e9545d20d76345a9e1d1a8fcb49558ca1ee5a9402311c2eaa102e646e57c2c02301573b8b4b633496da320e99a85c6f57b7ee543548180a77f7fced2d0665911cb4cde9de21bc1a981b97742c9040a6369\n\n# tcId = 253\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 30650230104e66e6e26c36633c0af001f0d9a216236816923ec93b70bea0a8ff053a15aaaef5fe3483e5cc73564e60fe8364ce0e023100ec2df9100e34875a5dc436da824916487b38e7aeb02944860e257fd982b01782b3bd6b13b376e8a6dbd783dfa0d77169\n\n# tcId = 254\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 306402304b06795da82bda354e8d9422a76c7bc064027fcdd68f95b7bc6177a85b2d822c84dc31cb91fc016afa48816a3a019267023018e31018e312d3dd3dd49ec355fdb0def3bb3e44393c26cf1bc110b23a3aacf6c442bfcec5535ce37527d0e068f75c03\n\n# tcId = 255\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 3066023100ad75ca5a3df34e5a6d3ea4c9df534e8910cfb1d8c605fc398fbee4c05f2b715bd2146221920de8bac86c2b210221bcff023100a322d3df3bb2cf9e4215adf1ff459e70f2f86bec6dd6af5d04ae307d21ed5955136c8e258fdc0f9cbd6cf89c31aa691f\n\n# tcId = 256\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 3065023100b0fa6289cc61bab335932ea1ac6540462653cc747ef67827825f77689a4398602297835d08aa16e23a76dea9f75404ef0230278d654a0b50c57d13f9c9c8c7c694001167f8e3b71491772a7427f1410fb6de518740c22e455e58de48846479b300cc\n\n# tcId = 257\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 3065023100c216cb4fe97facb7cd66f02cd751155b94fa2f35f8a62ba565aca575728af533540ff5d769b7c15c1345ab6414e150680230278a8a372b75d6eb17a4f7c7f62d5555c7357a1a047026bead52185cbcc01d73b80a1577e86220b2278da2b1ee8c983a\n\n# tcId = 258\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig = 30660231009591c80453cffbcd0b8d6d20fce0cbb2a458e54aed7ba1c767e6c017af4c4aa07a76859c0b249f6692a3c9ace893f14e023100893b567cd2959cd60557d3d6013d6e1741421a6edc5bc18244b3e8d7744e57928ce006a3fbd6e6324cb8ea3e5177e7e3\n\n# tcId = 259\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 30650230350b5515ba9785f149e2a566c14f4178757bb325179888f526f7db11161aedcd752551381316c2713f5de21d3d517af002310097d48a90c3bb3444736bec69db0649f82428b39238ada6048a0bead84f2f3b73816b48fed4d57b5f87a194ce4004ed7b\n\n# tcId = 260\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 3066023100833210c45d2448d9a4d69622d6f2193e64c65c79d45d62e28f517ca5c68eef05a2e98b1faed4cc87cbdbec6fe6bb8987023100b777b44cd30e6a049dc56af19a251d955c1bbab0c307fe12e9e5382fd48c173db0292f0b1047da28ee18518e11688eea\n\n# tcId = 261\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 306402307728ef10d9d5f3f32132716e6b403926929b05201700658d4b7f25a0692f153b8d666fd0da39888ab6234212659268d0023055df9466ee2c98225a2b0c4ff77622f9d11b4e48aa7f9279cdc2e245fdd9b9f4282106e25a458ff618bc3ca9422bea25\n\n# tcId = 262\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 30640230552040701dba17be3b4d5d6e136ce412b6a4c50ce1ee53415d8100c69a8ee4726652648f50e695f8bb552d0df3e8d1c402301374972b2f35b2fd86d45ed0c9358b394e271575e429ac8aa60eb94b9df7e755d9317fb259269e9d3b1db8d48d91dc7e\n\n# tcId = 263\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 3065023100fe6ef07056ce647128584bec156b68b8005f42d8c85dfb122134c488cc0e72cf8f06700417d7ff694b45e894ec23cbbd02307f5e33c5bfa697c144d440b32d06221f630a9ccaa8e9a0489490c04b86e8daae0e41d2466429b4b3cc1d37348e36cc0b\n\n# tcId = 264\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 3065023100e009fc1a13d282bd37f10693350a5b421a0039713d29cb9e816e013c173bd1ec2bd6eb6bd88429023ee3d75d9a5ec06f02300b8bd481982a6e52355bcde5fe0092abac41f0543c31d1928b9a585e63e9520e24a65f46db2696e1b85a65c4e5240879\n\n# tcId = 265\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 3065023100acee00dfdfcee7343aeffa8514b11020c5435027887529d255bdbd45a90f160c68f05bd4b567daa8fa14e5807f5167a402301c9fdf546190970aa33121a3043280669be694e5f700b52a805aa6101b4c58f0467e7b699641d1d03f6229b2faf4253f\n\n# tcId = 266\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 30650231008a4ee1e3bb251982475877d18763fafcf49ccc8b0fec1da63b0edccbb8d3e38608a2e02d0d951031179e12ac899d30c3023073cb62ad7632cd42dff829abfbfcb6165207e3708ed10043c0cdee951c7f8012432696e9cf732dcbadb504630648419f\n\n# tcId = 267\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 306402303903b59f837ff5f41f42cbe3e2fc8e17d859cbb35386c4327d3947fb012b3629fea911c83cefdbd503aebbcc1114afd102300e5be9094b5a22ade00c24644f476baad0f7741dfb2ce9644a1c45769404f8dccc522017c2b8cc630f1a0ef5fee99fe8\n\n# tcId = 268\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 306502307717ffc8d0811f357299423c56ec181c58f198", + "1f5c1dd4f346f6a2ad71d3582e203a11e8609c1146ff3247a1820f832c02310096c89ec707da3cd8b09084b065e3265327a536a974c4285155388011e348f2e7f005ae7e3e502732fc2971ac13fd72c0\n\n# tcId = 269\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 3065023100a21519ce3533c80826f1e47fa9afde7096151144291134421990285a8d89a8c2d4afdadd547a923dcc17bfcdd0e9ffb9023040577245dd2e022c8ed8b5de7b8c26f31307429a7a64e5729311cc4128e3b486867e61b4a8a1cd0731792eb1466d08f3\n\n# tcId = 270\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 3065023100a727addad0b2acd2942cb1e3f7b2917ca65453275198b06436a993bfc982d3f54620c395e253d57b8fe026efcf7252f902307a19811aa4c12c45c3c041e7c614d0d98051ca7a0c57a9a107d552793ba1d0debb373525aafcc13ae1acd50a42a89adf\n\n# tcId = 271\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 3065023022287277872d175d8a3ff5be9818658f845eb9c1b2edc093ae82a75aa31cc26fe1771b4bfbd4c320251388d7279b5245023100b47d1833867e889fcfd7ac171855293a50aa6db24c6522e374fe87be12bf49b13c8b5e1455a2f25aa7912f799eebe552\n\n# tcId = 272\n# special case hash\nmsg = 33323639383937333231\nresult = valid\nsig = 3065023100a0f41362009b8e7e7545d0f7c4127e22d82ac1921eb61bf51e9ea711e41557a84f7bb6ace499a3bc9ebca8e83728787b02301f6e0c15a3e402370885e2aceb712280ebc45b63986357765b7e54b06cd00db8308e4715c39d48d246030bf960e6a2ff\n\n# tcId = 273\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 306502304144e1c6ad29ad88aa5472d6d1a8d1f15de315f5b281f87cc392d66d7042547e6af7c733b31828f89c8a5dafce5bb9af023100f5d0d81f92428df2977757c88ba67f9e03abd4c15b1e87fa1dd49e601a9dd479e7c3dc03a8bfea60fcfc1c543931a7de\n\n# tcId = 274\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 306402305f177fc05542be6e09027b7eac5eb34f34fc10ad1429e4daaea75834de48dd22626f2bf653dfcc46234921d19b97406b02307def6c993a87560425f2c911046357c4b1c4c376bfa22bb45d533654fea6f565ba722147b2269ea7652f9c4af62ed118\n\n# tcId = 275\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 3066023100bd77a8ff0cd798d8f6e75dfbbb16c3ee5bf3f626dcb5abdfd453b301cb4fd4caee8e84dd650a8b4cf6655dea163788c7023100ef8f42394469eb8cd7b2ac6942cdb5e70dd54980ad8c0c483099573d75b936880459c9d14f9e73645865a4f24ee2c4ce\n\n# tcId = 276\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 3066023100a02e2196258436da6a35a2f73cf6b08880f27757566ce80c7fc45f5dcbaec62d3fcebb784b4a650e24c1a997e4b971f7023100f1195d2ba3321b6938e04169d7baf605001b6311f08a5e82157a7675d54993f2fd1e41f8c84fc437a1a139d2e73e8d46\n\n# tcId = 277\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 30640230686c5dfe858629125fdee522b77a9b9be5e03a347d79cb4c407f17fd25c97293cd99711f33e77814bd30d2453d3a86c10230509ac9b18c1b2b5a2b1b889d994b950743a988c2fcfb683e89211a43da6ee362c2e414d84fe82db1904b81701c257822\n\n# tcId = 278\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 306502310083ce818ecd276432a8ddfe75406d01329e76d7586cd6f611c1fe1a0913ad80014c2156381942d58dd6356e44ccdc52a8023036a35983b97a9ae2a19cf05ba947dd880c973d5c78f9676ebbcb0b40d639124030c137236232f1fad15afd71c52ad8ec\n\n# tcId = 279\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 306502307cb78ebb712b5a2e0b0573d28440a5da36bd2338805d90ef3b0c1178ae613be8ae8bf548af4e7403e5a5410462afc2e30231008631a82cbdb8c2c7df70f012405f06ad0ab20d6c4fbceb3e736f40fdff1a8e5f6e667a0e77259f277494de84ec0de50d\n\n# tcId = 280\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 306602310085110fe21156b7764b91bcb6cf44da3eb21d162395071c216a13b5920d67a31aaa20dfc4669cf32c04964d0831bcdc29023100e19187033d8b4e1edf7ab8eaaae1e13c80c0c4db51d921ccf62f424524cbd530d07de2cf902a0ecda5e01206ae61e240\n\n# tcId = 281\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 306402300fd621a892ee5a3eb0bcb80f3184714a6635f568d92f41ad8d523887d5b82d2b930eb5ff2922fda1a3d299f5a045837f02301278725a607fa6f2fc7549b0de816fe2f88e3a1ec1ccaf9fb58e70a0f6646c2d7aad6e4f73d116e73096bdef231d0c89\n\n# tcId = 282\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 3066023100802cbe405d3ce9663b0b13c639aa27730b3377ce42521098ae09096b7fc5e7ac998b6994344e89abfb50c05476f9cae80231009aa7258c0dc4eff4b2d583575368301e2a7865cfaa3753055a79c8b8e91e94496a5d539181c2fd77941df50fe87453cd\n\n# tcId = 283\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 3066023100859b0446949d7f78a0301ac4cc02b599a758fd1be006bf1a12570015869e59b9a429ce1c77a750969f49e291f6ab899402310099a812a1acc2c646814315cf9b6290d2232236cdf131f9590088e75a55786cdfc9d9027ec70056408ab55445fd79fe60\n\n# tcId = 284\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 3065023100dbcc7ee9fa620e943193deae3f46b3142779caa2bce2df79a20639c8d01bce414a61f72764c1ec949c945320f5ee2a1d02301d9879787b880bd05db39bac07bfe3e7d0792932144e211e81f21da9621b83bff11bc52bcc7cb40cf5093f9bad8650fb\n\n# tcId = 285\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 306402307a1f9fbd0f6e776c3e3a3c798f5c0d9e20f0e2f3f4d22e5893dd09e5af69a46abc2f888d3c76834462008069275dfeb9023045e6d62a74d3eb81f0a3a62902b8949132821b45d8e6cad9bb3d8660451727cdf7b332a9ac7bb04604991312143f8a6a\n\n# tcId = 286\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 30640230047962e09e1b61823d23726bf72b4dde380e032b534e3273db157fa60908159ab7ee4cadce14fd06ebe8e08e8d8d5a0702301892f65ee09e34ce45dd44b5a172b200ce66b678b0e200c17e424e319f414f8dfbb2769a0259c9cc105191aa924e48d5\n\n# tcId = 287\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 30660231008f02799390ab861452cd4949942cbbcc25cad7c4334c4bc6146fbef8ad96c86f923fbf376d9ab79073e5fcb663f1ea91023100ce15d9862d100ff95ad7368922eec3f6d7060ce412c01ff13870aa61626ee49edf39bb27005ecbe406bb6825f74c0438\n\n# tcId = 288\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 306502301879c4d6cf7c5425515547575049be2a40c624a928cf281250f8bdcbf47e9f95310d0992c9887dc6318b3197114f358e023100e1116bf68320bade7d07a1a9651512d60b551af8625b98b5eb8ca222d4073ae5c140a80e5dbe59f073647daa00837aee\n\n# tcId = 289\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 3064023031dced9a6767f39045472749baec1644ae7d93a810a4b60eb213c02c42de65152ffc669af96089554570801a704e2a2d02303022ecfbc88a72b9c50ef65344765b615738f2b3d420ade68cbf3ec40bef0e10c5cc43bcfe003bb6f17ec23802c40569\n\n# tcId = 290\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 3066023100f4bdf786c61c5f1ce7568638ba9dbc9a134e27fc142003bf9870353980a8f4c2fbd03c8d0171e4048ef30db6fe15388a023100d0e96768bc6adc91f93ae5704e86888853f479f32a45bfd436dc8a030603d233c56880124b7971362aa11b71315ae304\n\n# tcId = 291\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 3065023100ec0f635b7ce31988a07f41b3df35ca03c70e376bfb3b6ab24831a83be2121b9f9e93928b10a8f5fc0322bdb9edd406fe023066618ccb473c6dac3b14cfab6dfb24d219b37aec63425067c2c1c631d64a80b9cab6445f5a5439adb28bb99daa9234a5\n\n# tcId = 292\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 306402304f2bea24f7de57901e365d4c332ddb62d294d0c5fd58342a43bdd3ba5cbaf25adaddb5944bfef9dcc88f94d93650bbbb02300851b97ddc433e4521c600904970e2bf55aa901e1aaaaf06818377f84a28e033a49eebc21ffe9cff3cbefd0963fbed00\n\n# tcId = 293\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 3064023072a9bab30f8da1437f17115cc37b6ef8cf6591ed934d596675ad7b000c6a74cca5f37210a68228a58023790e3726c357023012d697c4e20b18f63a3e0164dca8ca4a5fa0058ad7cd1c571cef356e85fd8f56ab7963d8aba824e8d31efb3e690c27b9\n\n# tcId = 294\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 3064023033b7105f4cc98a1ea2abad45dbbe3761b4613ddd350e62da91560da694be3e84b1684f9a8ee4b3f556c61d02af54446202302c86e3a216dc7dd784cdcbf5084bdf6cdc1c7e67dbd61f9f6ed161fda4d4c26167e5b12731cf2b0cf5d9a5f0b6124939\n\n# tcId = 295\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = 30640230252e3b5b60b8f80748b83623e30013723115cabcc48770c0ab6e7ee29c429ef1d9da78db3a9a8504133b9bd6feceb82502301ba740f87907cf6d450080f7807a50f21c31cd245dd30f95849a168d63b37628e8043c292ab7f130a4468eaf8b47e56d\n\n# tcId = 296\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 3066023100b8694dbf8310ccd78398a1cffa51493f95e3317f238291771cb331f8e3a9753774ae3be78df16d22b3fbe9ad45bed793023100daaead431bbdbf8d82368fbbd2473695683206ee67", + "092c146b266ed32f56b31cb0f033eebf6c75118730eef7b7f96ba7\n\n# tcId = 297\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 3066023100d37ba39cd1b5289e7aa3f33afefa4df6821a07d3e8ee1c11e7df036c37e36214bb90264633d4c395644cd2cc2523833f0231008b0d58ed75af59e2abbcec9226836f176b27da2d9f3094f2d4a09898136436235025208cf5444265af66fed05b3dc27c\n\n# tcId = 298\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 3066023100b4ef419020c0dcbdeeeed76c255560f1ed783c0f9e7fcea4c08a0714b9d1f491fda9ae7bb1eb96d294b02799f82861290231008d987611063d2f28cb309a56eaf1ea65f27d95c97b77a5f037f2f914fed728267aaf62a37f3c7b44fc4b15125b349863\n\n# tcId = 299\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 3066023100b2df7b11cf60ac93c078d19f37f889717aa5d9af1d00d0964f9e9f5257c3b51b3d3e47ca5b5aa72058ed63b52464e582023100b524968ea8c58d379e38f4cfa9da1527a2acb26d605d22f173fcf1e834db0d7f031cb9245cb62b8458ff499b8d3decbe\n\n# tcId = 300\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 3066023100e0edc08b4122b75ebbd1635d07f0bb55771bda15573a5081da971955f9a63f6decdd4919911dbfea503ea8ed1faad93d023100ca7850c74ce878587056206c590a1097d197a2090cfe3e057becfa2700c7a531623ae7331e163def693e26a97feb540d\n\n# tcId = 301\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 3065023068f555eef5a323a929719bfd8cf81d6d8a977ecb35defd86fa54d8e5749c7b5f3e80087fbd39f8aa0cd29d8310bd6578023100e2c2314a50fc0ad78c1ec02ea77ee2e13dcef1460957c6b573f721d72c209ac5fb529ab20397234c59ed44f60400971a\n\n# tcId = 302\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 30660231009e330e29f18123813e83b9c6abd68de96a57f97a4005b88d5b470a67a541b6d3af12124cf8658b751671c6698fb8b021023100d210fba9bde6ef077ca06b75e1cf7ce8dd70b08e9dd42d81a215ef9272f1779ae3e9f0dec510571d87237cc6bf3203e8\n\n# tcId = 303\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 30650230483192056f753f64ddf0f21072b73d68893e6fa5432c981c7a1955b6592a6045a5c1c58c383e70023c34e09b7964ec8d02310094b005d5f98c4fd2ad40ff8e03a8599f45e206082112f834df1d48502d2ac690cd3204f0078913794c9c39077ad6c58b\n\n# tcId = 304\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 306402302b7ec14fd77c4b33230dd0a4e2710fbd307e469baec54b6f25daac7e196b7b4b5df251cdddba7bdc9836ca1319bb900b0230590036192586ff66ae9a288199db9d02bbd5b703f8c329a9a1f986001b190f20ae96fe8b63681eda17bac2a57fd40f2e\n\n# tcId = 305\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 306402302611484e7ff47dfaece4aa883dd73f891869e2786f20c87b980055ddd792070c0d0d9a370878126bab89a402b9ea173c02304e0006b8aabe9d6a3c3018d9c87eae7f46461187d3c20b33e975c850599ec1cb52c76e1f507e439afc43f9f682e7a8d2\n\n# tcId = 306\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 306502302d504e38cdb1bb80bf29e07afbc66aea732accc85a722011069988f21eef685084f55efa30bfe32427eb8636db9171b4023100883e3d80d766ccb29e73a9e929111930da8353ec69769785633fe1b4505f9051e78d50c79a6b7c885c10b160bbb57fb6\n\n# tcId = 307\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 3064023028dc1b63dc61ecde754ff4913780e486339103178e27d761987dac0b03c9bdf4a4a96b8680fa07fc47ae175b780e896e02305a9898eedf8781b9afeb506e0272a12c0c79bb893b8a5893c5a0a1bf4324d46dde71a245be2fd8aa2975fdeb40adf8f3\n\n# tcId = 308\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 306402304c978a47b9e9449337178aa6413a794c4c9bf182a42062646a469b1d2c2c95621e818e661352b07e63254b6954e1459802306997345f05cfc05c0fd4d1dd133e555e5e5002e0929a59f60bbffc354234783ebf4fe5db10a870952cabd453635c1082\n\n# tcId = 309\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 3065023036d8e2cfc80d0436e1fad3702ec05aa138618cdb745652cb85b0b121ee107bdf1ade0464dc0c6bd16875bcc364044d8c023100898b8775c9b39aa9fd130b5ab77e6c462ced6114898045b7f606142277d9eb2aa897f24c9ba4c8d112111de04dc57c10\n\n# tcId = 310\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 3065023100ce2bdcf924caaa81e79bd7dd983dfeeee91652e4ea6edd077f8b56ada4953733a22dd3a6336446a648aec4ffc367cb3e023008eb09faeef4b0e5c1262eda2127464f7e2981ea1736e80afc7c622461c3d26fe08694fb4914ce9dbba83704e3077b3c\n\n# tcId = 311\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 3066023100e3a1b4b0567d6c664dec02f3ee9cd8581129046944b0e6650f6e6a41b5d9d4bf79d7a6fd54ea5a218492cfa1bb03ca07023100986206925cbfa186c7d88f7100d87dd3b2d03b8789309a722d582f119eef48cd0ea5460917cf27246c31f90e28540424\n\n# tcId = 312\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 306502310095a5e29940e42099c4637f4ae51e7d1ec02be0dcfb0b627030984c35e477e80cc57e7eef970e384dee16a9b9fc8f2bf202300ca166c390339653cde84e79a87e5ceb4f52c1a515a5878542fd82705b9983976fd31a4123b5d0bde95a0818114cf462\n\n# tcId = 313\n# special case hash\nmsg = 37313836313632313030\nresult = valid\nsig = 3066023100c30c49d0ba131944e2075daacb1259d5580a712a08f73d889c4d3d484d73dd9719a439a986f48b072c4595c507a01083023100a5595c0691bc2d215f981fab513e3a88a452f2a1433367b99b02b6efe507519afedbe1ad0337899944e29c9ccccb2476\n\n# tcId = 314\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 30650231009fd0585f8740669885c162842bba25323ea12b1d05e524bb945cad4e31538742eda5128f467b3c562c5f0a99019d3406023043acfadd03915c2350e1d8e514c47eb36f3c3456169c9a562a6262c1c2d7d33378bf9fec7f220239d5c61e06414414a4\n\n# tcId = 315\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 306402304ecac0cdbf665c584f8a40614cd55d042706c54895b1de02984fe309122566c959a4dd3315e7d3f089879f8f45821336023009187da6587a3de90eba41f4e6510e711f4467f3122971566ecc39a4bd53e95b8a19380e20ec2a7c752d29de54fd2e8f\n\n# tcId = 316\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 3065023037a1ba49f11e97ad0ec47e687c6c6e94f794f874720c0dd2da501437b50e5b00fb6ed33adf7cf1f9c870fd3d37165bf7023100b3ad08c9886b4ca1593a68938b67142c65ed4da1714c22204cba71300c094ccdbdf84c38a3f6d896db72ed5051a19266\n\n# tcId = 317\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 3066023100a0abe896d2f30207bc9b21e75400eedb88d3498d49806f41aa8e7f9bd815a33382f278db39710c2cb097937790d0236c0231009a29aded30e8ce4790756208d12044e18c34168608026000a883044dd0d91109d866b422a054c232810ddfbb2ae440bb\n\n# tcId = 318\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 3065023100b024fc3479d0ddde1c9e06b63c9bfb76a00d0f2f555220cb9a1311c2deec32eb3d6d2b648f5e8c104d5f88931754c0c20230767950cc149697edbae836f977bd38d89d141ff9774147b13ddd525b7a3f3a14a80d9979856f65b99a6faff173b5d6eb\n\n# tcId = 319\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 306402302a0ae7b5d42645051212cafb7339b9c5283d1fd9881d77ad5c18d25ee10907b7809740a510e65aecd61b53ba3a0f660a02304c0457dd19ef6e4d6ae65f45417ddf1a58c07663a86737d271becfa3ea5724b6018f1fa9e64fd08601a7dbd3957761d9\n\n# tcId = 320\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 306502300c1657320faca6668c6e9f06f657a310b01939a7d9640fa0429872fe28bd1667688bc162221285ecfb14e8d80627450a023100f5272aa08c321aa4f7e520825cc720f6511d635598c648d4d514669b3ad803ad259c799e195a095982f66c176435be21\n\n# tcId = 321\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 3066023100d821798a7a72bfb483e6e9840e8d921200ef1976b7e514036bf9133a01740ce397c73fa046054438c5806c294a02c6800231008c5d12887fcd945ba123fc5a5605d13a5a3e7e781ad69c6103577ee9dc47adc3e39a21080dd50304b59e5f5cf3f5a385\n\n# tcId = 322\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 3065023100c996bd6fa63c9586779f27523d5583135a594808514f98cc44cac1fa5cfa03c78c7f12f746c6bd20608ecbe3060eb068023027d40a11d52373df3054a28b0ab98a91ad689d1211d69919fc04cadc22ff0367d3ef9433012a760c1d1df3715c8d5cf3\n\n# tcId = 323\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 3065023042dd6c8d995938701a538909ed6aeae0ba50c995138de84e195bbb9c56180e108d4a6274548c7be6e121c4d218d2d4a0023100fae8668bb2003f0da1dc90bec67d354ccbb899432599c3198b96c5ca4bd2324c46998f4fb76a123467cf24570b1b6916\n\n# tcId = 324\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 30650230061f185633291b9a768e15ec03a2b7c356c757b023b61e313fdf0c5349d128a78668d20b2561709b3bd8451b920f12ab0231008fc5edc66410dbf20a7cbc3498e405761756ed39866856e74256ac1f255f62b0edff519762ecdbbc8395d14715c4388e\n\n# tcId = 325\n# special case hash\nmsg = 3", + "3373033393135373035\nresult = valid\nsig = 3065023069326e047c62e8bac5c090b76bf73ae652fa9a6aecfa1ccb8702f419094c9727511264fb1aeec00e425c7a0d746793d30231009dbddd22db4a77dbe16114bc6fbb981aecba7e82a9cbc1ed385e28a51793561770fb3f9696090efca24f268d8788f2c9\n\n# tcId = 326\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 306402304ca1df89b23ed5efcdf601d295c45e402d786a14d62f7261104e4cb05b8cae17abb095799e71173841749615c829411b02301bb777e0a6fee8a2337a436a6fa26a487de4640ff97d57b44b55305989803863d748c7302f2dfde8b8cedd69bb602e2d\n\n# tcId = 327\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 3065023067be1b06f67172c503a5ac50582235d30bc9079eaa4cdec69a39c096310f8d99186cc9af7c8b4369a291d3e921d60705023100ab645fc91f06b1ff7cc58fccf6f7cfac74db30d839748a78cb5f3b8fefc7a06f3b5ff0310a8580c6050bebb75eda972c\n\n# tcId = 328\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 3066023100d966442d6c29e5a4cc60e2374eccd373db3ebe405ee7c9664c4273100cd1899a1c58110487528616d8c5321dbf5227640231009bb0e4a2c041a3b7b672029fe480d155f57671ecd6eb598660d025acce1f613d03cd6cff4a214131c8c7a8ad22df1397\n\n# tcId = 329\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 3064023008a84a2bc39b082ab82e6e45f088a36f1cb255f97ec8124eca929d4506d7dab63957c647994be2c2c7344f902de5b38f02300c9645e84a304ba0970ca5ce00b8c8a971fa0d0bcbec6a70134894c44d3075030ff04333ea3889f847a1ed769ee618ee\n\n# tcId = 330\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 306502310083004b034202bbf51a327d32ed3ddf67b46eda9bac695a4422744a4bd99aaac3b3e8ed80ddac6538939c9385d6c8f61602307b4e61926cb9afa8cdaaf44909df6dc6449887d59fe2acac05f7684a235fa77179bdbcc69fd8f359e8eda19e5a5d4807\n\n# tcId = 331\n# special case hash\nmsg = 33313331323837323737\nresult = valid\nsig = 3065023100ad93375a1d374c41e5de268a8c08c205ff5652445bfe3ddf4ca77a70f5819f9f06db861d82fc9637946f0fe38457f2bd02304bc043acbc6a68d4824ed768af9476ad5b93e4cb3bbac284fb5fbd548ae3b96c265c6d1ef4588a3e2da21b124c0d6b12\n\n# tcId = 332\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 30660231009e0d45d2dc93fd363dc919405818e39922f3f9dd0827bcad86d4ba80a44b45a6f60b8e593b580c91262b32859dbb1e53023100eb9b8dfe5ba4a055a974f19b488f3a6fa07161006ac94eb1fe1c12dd0e20f3a7be38a37ce96d671183c5871249b2a3c5\n\n# tcId = 333\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 306502307a5d04cd2fda59d8565c79ea2a7f1289ab79cae9fde060094c805c591a2534e4393e28c3fd858529bf17643846aceb830231008de0d8c0092fd02d554afe25f814744beaaa17c6946a6387ec7046b602db8a6c900246c2fb63fcef2ac8d9394444a0fc\n\n# tcId = 334\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 3065023100a564eea0cdac051a769f8ff1e0c834a288ce514f67d138113727b53a1a6fc95ce237367b91f1b91b2f65d589adc8288e0230182e5b47b6fbd8e741a04e809487ba5fcb8a5f2f1b9af6ce214128623a4768e38e6ddc958ff39078c36c04a314708427\n\n# tcId = 335\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 306402306758867cd1ca1446cc41043d1625c967a0ae04d9db17bbb42fa9c076b3593125d63cd3e7471ee6cdba5235a21cec2f220230563db387adb537e1d89231d935ac790316925aeb29132b9f87bee91116c33bf50943fe39b671ce9535dca0a5d22bbfa4\n\n# tcId = 336\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 3066023100cde033e38d3f791db87d8a6907516bd8021acd47e897df683fda529d48050f8b5688f6361daf1b14bc3f45fc7f76150f023100e14f4811a667c85335a4709a589ea46bac72055b794eaea92d28e834d5bc459c605fe4f27c1ab18d186d59e7d205cb67\n\n# tcId = 337\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 3065023100f2384468b55553c68f9764d8248cfd7358d604fa377ebb13828c43a8ebdf308fbbbebfa49a9458bfda957d2068d24e3f02301fdf4891d56e3e90c02b05c14c27c17f56f8e6aa144f02328c90109e1f70c9e3f582f0d299c44da505c543cc89c6a990\n\n# tcId = 338\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 3065023100b1ccafedcc21ba90b342fa23c0149f3d12a939ab6c3342b36ae61fddbdc753927a7c3e978bd780cf25cd78c8c5efe28002304c32a73f3157bbe2384095eb67726b9cd3c2623b98a182a3b4f00e8db933e1113b7ada2695a7d79b471026462b20e289\n\n# tcId = 339\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 3066023100f3ed170e449758299ae55eb85244745e1876621c1f708e07e55c0d2d9ab5f9af9e0a8b3c7bdf8936ab3c9ebd1908e9dc023100da62ccdb658868147286d7269bcbd4addb4dec9ea3d5d79fdbe0ccffa40d055170bddeb4ef4c5e0bc99fae5db62b4477\n\n# tcId = 340\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 306502310083455fc4629e7693c8e495fec2d29bb23bb6db79180fcfa83a4f9310d9db27e29297dee27ee80a71ab2f7a2d59f48b8802307736c056c8f2bb57e9fb6b8de0ab6d09879f6611e737634e7b6337aa5c5a01f515d5e3702dec9a702177c816e32bac67\n\n# tcId = 341\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 3065023074961587cbe49bbf0a73fea82b8b2242f67b0ea09224774639f437c60378a36b2d511a9145d576b440dffd1f02286a8b0231008fb95d46c22889085cc1d3e20bcfbcbc52f4532445f76f08efae2de8b56fe8525204643330dfd23cce946687a0aef046\n\n# tcId = 342\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 3065023100a3fd322330d0f0efccc54bd7d73c3159eb1bcca08cec369a4a08fd00f9ec6d482ced58eb08a0d7c2113bd5575de4917d0230164e3232a628c40fbba1de82bfb9627cec78a8040cf325a5a8bb8f864c2ac19e3524ac93f4db5713ce62ba256176e05e\n\n# tcId = 343\n# special case hash\nmsg = 31343437383437303635\nresult = valid\nsig = 306502304c862ff9e4ff88f9a58e9fceaaf9bbb30740d3f6c8c6a69b5627fe234b144f8cdf09520735cfd708f5e341a78cc4873d023100a861972514a0e975cf2da214125ec93288524cc77492ed63c516424278e5ec8d41724467cb7c3111fa34c69193abb435\n\n# tcId = 344\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 3065023062225e4e492a9773397870336168960a66b9e50391ef7289cb2d3878f32252dc1b904f6682545e14564e415bd93e01170231009f4d0327f79e043505c691e361fa2e00f87f41324777eca6966f4bea2fa0858876aa01980b2cad7f66037524de49bf65\n\n# tcId = 345\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 30640230450c65d2d88ba464eee3a5ce9310b519d5dcf608799fb2275eee987a67c2c4d7ac53716987cc5139c18c67ef07b1e20702301ee0439311a7bce1c4fed0a3152d1b354d96536c6ca0c9188ac1f1afcc5cd7305b5611ef0d19d8bd57c5059976dc5e68\n\n# tcId = 346\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 3066023100aa2575fb5bea0effb5247d20c3d0165d575831840b5c18b0245a99a61b7ad5d7bf8a8cfcc375e095a84e781025bee3ee0231009c8b7797ad330abc206060b28b6ca1c639d89f59582528bda1527e3ab081697a2ab576f9d09c2ee329dd73231667308d\n\n# tcId = 347\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 3064023001fc45285aa2c2e50458199ade2ded0dd36b1de03e8969175be4a6f09f9719b195ded8d9eb4ea132d95d19a3528fd6c9023059609a358c5919fef4781061804d4d64a067edecdcfd14620161aae3ef2735095a558e4f8ae345040123f093e5f70af2\n\n# tcId = 348\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 3065023100d8e1f6b19e5b92e36060e59e53eeb788a4758c2c8ee9519f3949d5f3315abafbe937b8ed44d47e886a07c107aa8ac9f4023012550574318371e5168d0a339f20fcacaec87db211bba4d4e7c7e055b63b75fd31790ad285f4cc061378692b0a248e34\n\n# tcId = 349\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 306402304815aec44a7a6b86ae87fc2556accd77832fa33a4710e02ec5ef6f41f68a910e6af4d173ae462a759bd98079b371bf5d02306e78d562f9e8be65e8d7a74a7305e5d6cf2f3c4c980f2b18dfb8e9c8b0134ec86548053b3d125e56d5872294d2d14ebc\n\n# tcId = 350\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 3065023100d302f9db6b2d94e194412f0d40a135a554aee014bd939b3d7e45c1221ef7ce45c2aed875f9a2bc43dbc8264d92e444a5023004e7247b258c6e7739979c0a07282f62958ac45e52dd76a41d5e1aca31a5cda73d7b026d67b4d609803001cb661d74c6\n\n# tcId = 351\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 3065023100889f0e2a6ae2ddcad1cde3f65b61d4dd40985917ba841b47a1f802491f5af5067722b7683df0fca7ee19d2b73724c8fd02301f989bac23b51c49e5d7dcc319eed2fc767e9b432bf75af92814d9e67a5d4b3398eb15e98b70527abbc029abc1bea524\n\n# tcId = 352\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig = 3066023100e69c70c679795ca7d2b66e2632529651c120055fa3cf25435fe8bb28987c02412ce73e6ca5ca7e0b42e9670c0a588175023100edd8513bff40cdca9e22659238fbcea2de2caeef53c5287a515db9168b3008ec446c9b94f28a6e021c69bc6637fc4634\n\n# tcId = 353\n# special case hash\nmsg = 36323135363635313234\nresult = valid\nsig = 30640230068cbecfd47bfd688f495df05e45fd5fced6d8e240605c5", + "b2be5e69368740b694b9b1ea034af3180e571dd38a86369ef02301a1d2976f748d1621128013c61abda5398a3e24f0073d1a6e07a1e96c12be4f1e2e7b144f9b5a350500acfc5cb0698d9\n\n# tcId = 354\n# Signature generated without truncating the hash\nmsg = 313233343030\nresult = invalid\nsig = 306402300e2c56eb5f6612f0c2b22ab03d57d9a443075a2b7a0b460883e4f4876121e9b6f1ed67de20b79f028f7f66ed0281db7102303916b72b12d035a307b7c45a9878333a8c61445aad2330dc49a12b92e2e5dab72e53e5789f40afb90aea0ea4431f2dd1\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b182aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]\n[key.wx = 00ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b18]\n[key.wy = 2aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b182aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]\n[sha = SHA-512]\n\n# tcId = 355\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 304d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68b023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n# tcId = 356\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0470e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]\n[key.wx = 70e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12]\n[key.wy = 424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000470e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]\n[sha = SHA-512]\n\n# tcId = 357\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 045a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]\n[key.wx = 5a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d]\n[key.wy = 4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200045a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]\n[sha = SHA-512]\n\n# tcId = 358\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d1aee55fdc2a716ba2fabcb57020b72e539bf05c7902f98e105bf83d4cc10c2a159a3cf7e01d749d2205f4da6bd8fcf1\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0488531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe0389375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]\n[key.wx = 0088531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe038]\n[key.wy = 009375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000488531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe0389375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]\n[sha = SHA-512]\n\n# tcId = 359\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b6b681dc484f4f020fd3f7e626d88edc6ded1b382ef3e143d60887b51394260832d4d8f2ef70458f9fa90e38c2e19e4f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]\n[key.wx = 080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c]\n[key.wy = 5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]\n[sha = SHA-512]\n\n# tcId = 360\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020101\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 040e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]\n[key.wx = 0e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05]\n[key.wy = 00a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]\n[sha = SHA-512]\n\n# tcId = 361\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020102\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]\n[key.wx = 00a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf]\n[key.wy = 604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]\n[sha = SHA-512]\n\n# tcId = 362\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020102020103\n\n# tcId = 363\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52975020103\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffabb924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd6c86c6f532276af38b779bf2350d7f]\n[key.wx = 00a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffab]\n[key.wy = 00b924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd", + "6c86c6f532276af38b779bf2350d7f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffabb924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd6c86c6f532276af38b779bf2350d7f]\n[sha = SHA-512]\n\n# tcId = 364\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3036020102023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accd7fffa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 043c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]\n[key.wx = 3c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24]\n[key.wy = 00da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]\n[sha = SHA-512]\n\n# tcId = 365\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3036020201000230489122448912244891224489122448912244891224489122347ce79bc437f4d071aaa92c7d6c882ae8734dc18cb0d553\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb61f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]\n[key.wx = 559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb6]\n[key.wy = 1f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb61f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]\n[sha = SHA-512]\n\n# tcId = 366\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 303c02072d9b4d347952cd023100ce751512561b6f57c75342848a3ff98ccf9c3f0219b6b68d00449e6c971a85d2e2ce73554b59219d54d2083b46327351\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 040548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f47700363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]\n[key.wx = 0548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f4770]\n[key.wy = 0363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200040548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f47700363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]\n[sha = SHA-512]\n\n# tcId = 367\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d1033e67e37b32b445580bf4efb02302ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad5215c51b320e460542f9cc38968ccdf4263684004eb79a452\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76afb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]\n[key.wx = 00a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76a]\n[key.wy = 00fb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76afb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]\n[sha = SHA-512]\n\n# tcId = 368\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 303602020100023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]\n[key.wx = 254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3]\n[key.wy = 710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]\n[sha = SHA-512]\n\n# tcId = 369\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3041020d062522bbd3ecbe7c39e93e7c24023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 049129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f8e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]\n[key.wx = 009129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f]\n[key.wy = 008e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200049129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f8e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]\n[sha = SHA-512]\n\n# tcId = 370\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 3065023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]\n[key.wx = 00a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43]\n[key.wy = 00e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]\n[sha = SHA-512]\n\n# tcId = 371\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020101\n\n# tcId = 372\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020100\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57b58f456cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b70dd1134b7558b64b55b200c5732c50f05aa032ae7c00]\n[key.wx = 00b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57b58f45]\n[key.wy = 6cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b70dd1134b7558b64b55b200c5732c50f05aa032ae7c00]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57", + "b58f456cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b70dd1134b7558b64b55b200c5732c50f05aa032ae7c00]\n[sha = SHA-512]\n\n# tcId = 373\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041af19841ff3df8bdc4f8cce957e0dab763efe413929b279f1d46dde1c6f2bbc55af1bb1d8011fc587a4d599a4ae7cd8d5f663860c43c88e08399f00ef6641123787956a2b7012883b5ff7c46bd156d96d3c02a63ef86e060a2a0fa5b80d0c0e5]\n[key.wx = 1af19841ff3df8bdc4f8cce957e0dab763efe413929b279f1d46dde1c6f2bbc55af1bb1d8011fc587a4d599a4ae7cd8d]\n[key.wy = 5f663860c43c88e08399f00ef6641123787956a2b7012883b5ff7c46bd156d96d3c02a63ef86e060a2a0fa5b80d0c0e5]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041af19841ff3df8bdc4f8cce957e0dab763efe413929b279f1d46dde1c6f2bbc55af1bb1d8011fc587a4d599a4ae7cd8d5f663860c43c88e08399f00ef6641123787956a2b7012883b5ff7c46bd156d96d3c02a63ef86e060a2a0fa5b80d0c0e5]\n[sha = SHA-512]\n\n# tcId = 374\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b902307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 046836084fddfcfd527cb3847fb8b911c0fa002537fa460ca8f5d40f025603a4d89aa6ec640fde0cc4b31c46239a1d0bb76beed7019892e87287e23f0d35093ab14c4d41c0efe8463ede3494230a384eb1bc410de918c5484a25640741acb8cc0d]\n[key.wx = 6836084fddfcfd527cb3847fb8b911c0fa002537fa460ca8f5d40f025603a4d89aa6ec640fde0cc4b31c46239a1d0bb7]\n[key.wy = 6beed7019892e87287e23f0d35093ab14c4d41c0efe8463ede3494230a384eb1bc410de918c5484a25640741acb8cc0d]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200046836084fddfcfd527cb3847fb8b911c0fa002537fa460ca8f5d40f025603a4d89aa6ec640fde0cc4b31c46239a1d0bb76beed7019892e87287e23f0d35093ab14c4d41c0efe8463ede3494230a384eb1bc410de918c5484a25640741acb8cc0d]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b902307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294ba\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f16d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]\n[key.wx = 00b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f1]\n[key.wy = 6d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f16d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]\n[sha = SHA-512]\n\n# tcId = 376\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]\n[key.wx = 00842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123]\n[key.wy = 00868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]\n[sha = SHA-512]\n\n# tcId = 377\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 049ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d8085110135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]\n[key.wx = 009ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d808511]\n[key.wy = 0135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200049ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d8085110135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]\n[sha = SHA-512]\n\n# tcId = 378\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0428771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272ebf92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]\n[key.wx = 28771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272eb]\n[key.wy = 00f92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000428771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272ebf92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]\n[sha = SHA-512]\n\n# tcId = 379\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa84ecde56a2cf73ea3abc092185cb1a51f34810f1ddd8c64d\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 049d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd271eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]\n[key.wx = 009d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd27]\n[key.wy = 1eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200049d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd271eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]\n[sha = SHA-512]\n\n# tcId = 380\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100c152aafea3a8612ec83a7dc9448f01941899d7041319bbd60bfdfb3c03da74c00c8fc4176128a6263268711edc6e8e90\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 048e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315c3184e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]\n[key.wx = 008e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315]\n[key.wy = 00c31", + "84e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200048e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315c3184e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304764eeac3e7a08daacfad7d1e1e3696042164b06f77bd78c3213ddea6f9fd449a34c97b9e560a6bf7195da41333c7565\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae26f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]\n[key.wx = 00b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae2]\n[key.wy = 6f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae26f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100cb4d5c0ff0abe29b2771fe9f179a5614e2e4c3cc1134a7aad08d8ec3fd8fcd07fd34b3473ca65ead1c7bb20bcf3ea5c9\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 044fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb484d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da50769809ecbf37358dd83c74fc25f]\n[key.wx = 4fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb4]\n[key.wy = 0084d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da50769809ecbf37358dd83c74fc25f]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200044fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb484d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da50769809ecbf37358dd83c74fc25f]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02306e441db253bf798dbc07ff041506dc73a75086a43252fb439dd016110475d8381f65f7f27f9e1cfc9b48f06a2dfa8eb6\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 047d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5be7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]\n[key.wx = 7d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5b]\n[key.wy = 00e7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200047d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5be7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023041db253bf798dbc07ff041506dc73a75086a43252fb43b63191efcd0914b6afb4bf8c77d008dbeac04277ef4aa59c394\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]\n[key.wx = 608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf]\n[key.wy = 674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]\n[sha = SHA-512]\n\n# tcId = 385\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02310083b64a77ef31b780ffe082a0db8e74ea10d4864a5f6876c6323df9a12296d5f697f18efa011b7d58084efde954b38728\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0448d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]\n[key.wx = 48d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18]\n[key.wy = 00e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000448d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]\n[sha = SHA-512]\n\n# tcId = 386\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023053bf798dbc07ff041506dc73a75086a43252fb43b6327af3b42da6d3e9a72cde0b5c2de6bf072e780e94ad12dcab270a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 045d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]\n[key.wx = 5d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94]\n[key.wy = 00d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200045d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]\n[sha = SHA-512]\n\n# tcId = 387\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023024c53b0a00cf087a9a20a2b78bc81d5b383d04ba9b55a567405239d224387344c41cceff0f68ffc930dbaa0b3d346f45\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]\n[key.wx = 1da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9]\n[key.wy = 00e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]\n[sha = SHA-512]\n\n# tcId = 388\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100c600ccb39bb3e2d85d880d76d1d519205f050c4b93deae0c5d63e8898ca8d7a5babbb944debe0f3c44332aae5770cb7b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 048b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b19d33468a1", + "30b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]\n[key.wx = 008b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b1]\n[key.wy = 009d33468a130b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200048b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b19d33468a130b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]\n[sha = SHA-512]\n\n# tcId = 389\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303ead55015c579ed137c58236bb70fe6be76628fbece64429bb655245f05cb91f4b8a499ae7880154ba83a84bf0569ae3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f756b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]\n[key.wx = 442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f7]\n[key.wy = 56b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f756b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]\n[sha = SHA-512]\n\n# tcId = 390\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100de03ff820a836e39d3a8435219297da1db193d79e359663e7cc9a229e2a6ac9e9d5c75417fa455bc8e3b89274ee47d0e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0411342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998af533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]\n[key.wx = 11342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998a]\n[key.wy = 00f533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000411342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998af533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]\n[sha = SHA-512]\n\n# tcId = 391\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100e5a6ae07f855f14d93b8ff4f8bcd2b0a717261e6089a53d54bf86e22f8e37d73aaa7607cc2ab831404b3e5bb4e01e79e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 043c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]\n[key.wx = 3c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6]\n[key.wy = 169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200043c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]\n[sha = SHA-512]\n\n# tcId = 392\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffed2119d5fc12649fc808af3b6d9037d3a44eb32399970dd0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89bb353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]\n[key.wx = 388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89b]\n[key.wy = 00b353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89bb353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]\n[sha = SHA-512]\n\n# tcId = 393\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023079b95c013b0472de04d8faeec3b779c39fe729ea84fb554cd091c7178c2f054eabbc62c3e1cfbac2c2e69d7aa45d9072\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce868cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]\n[key.wx = 00c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce8]\n[key.wy = 68cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce868cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]\n[sha = SHA-512]\n\n# tcId = 394\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bfd40d0caa4d9d42381f3d72a25683f52b03a1ed96fb72d03f08dcb9a8bc8f23c1a459deab03bcd39396c0d1e9053c81\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b910e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]\n[key.wx = 00e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b91]\n[key.wy = 0e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b910e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]\n[sha = SHA-512]\n\n# tcId = 395\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304c7d219db9af94ce7fffffffffffffffffffffffffffffffef15cf1058c8d8ba1e634c4122db95ec1facd4bb13ebf09a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d496ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]\n[key.wx = 00e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d4]\n[key.wy = 0096ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d496ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]\n[sha = SHA-512]\n\n# tcId = 396\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d219db9af94ce7ffffffffffffffffffffffffffffffffffd189bdb6d9ef7be8504ca374756ea5", + "b8f15e44067d209b9b\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]\n[key.wx = 637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21]\n[key.wy = 00f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]\n[sha = SHA-512]\n\n# tcId = 397\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a433b735f299cfffffffffffffffffffffffffffffffffffdbb02debbfa7c9f1487f3936a22ca3f6f5d06ea22d7c0dc3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 047f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]\n[key.wx = 7f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565]\n[key.wy = 00fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200047f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]\n[sha = SHA-512]\n\n# tcId = 398\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b9af94ce7fffffffffffffffffffffffffffffffffffffffd6efeefc876c9f23217b443c80637ef939e911219f96c179\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a134634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]\n[key.wx = 00a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a1]\n[key.wy = 34634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a134634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]\n[sha = SHA-512]\n\n# tcId = 399\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a276276276276276276276276276276276276276276276273d7228d4f84b769be0fd57b97e4c1ebcae9a5f635e80e9df\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 047cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]\n[key.wx = 7cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0]\n[key.wy = 00fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200047cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]\n[sha = SHA-512]\n\n# tcId = 400\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023073333333333333333333333333333333333333333333333316e4d9f42d4eca22df403a0c578b86f0a9a93fe89995c7ed\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 042024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]\n[key.wx = 2024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906]\n[key.wy = 00d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200042024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]\n[sha = SHA-512]\n\n# tcId = 401\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffda4233abf824c93f90115e76db206fa7489d6647332e1ba3\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0440c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]\n[key.wx = 40c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476]\n[key.wy = 00c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000440c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]\n[sha = SHA-512]\n\n# tcId = 402\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294bb\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0474acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]\n[key.wx = 74acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8]\n[key.wy = 496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000474acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]\n[sha = SHA-512]\n\n# tcId = 403\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100dfea06865526cea11c0f9eb9512b41fa9581d0f6cb7db9680336151dce79de818cdf33c879da322740416d1e5ae532fa\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]\n[key.wx = 00da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734]\n[key.wy = 00945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]\n[sha = SHA-512]\n\n# tcId = 404\n# point duplication during ve", + "rification\nmsg = 313233343030\nresult = valid\nsig = 3066023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023100e16043c2face20228dba6366e19ecc6db71b918bbe8a890b9dad2fcead184e071c9ac4acaee2f831a1e4cc337994f5ec\nflags = PointDuplication\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a39917346ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]\n[key.wx = 00da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734]\n[key.wy = 6ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a39917346ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]\n[sha = SHA-512]\n\n# tcId = 405\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 3066023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023100e16043c2face20228dba6366e19ecc6db71b918bbe8a890b9dad2fcead184e071c9ac4acaee2f831a1e4cc337994f5ec\nflags = PointDuplication\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]\n[key.wx = 00820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32]\n[key.wy = 631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]\n[sha = SHA-512]\n\n# tcId = 406\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3035020101023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0452fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee119f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]\n[key.wx = 52fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee11]\n[key.wy = 009f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000452fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee119f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]\n[sha = SHA-512]\n\n# tcId = 407\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3065023101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]\n[key.wx = 00a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c]\n[key.wy = 64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]\n[sha = SHA-512]\n\n# tcId = 408\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]\n[key.wx = 00878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79]\n[key.wy = 00fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]\n[sha = SHA-512]\n\n# tcId = 409\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 048faa8497ae3006b612999b03f91f7884d95543a266598e897b71e44ecfd9abd7908bfd122bb366c016a577cb1b2e2e412bb1a719289c749804ca677d14c0900fab031da8c70724723a0d54e3a0035da7dcddeef6fce80df2f81940817d27b2b5]\n[key.wx = 008faa8497ae3006b612999b03f91f7884d95543a266598e897b71e44ecfd9abd7908bfd122bb366c016a577cb1b2e2e41]\n[key.wy = 2bb1a719289c749804ca677d14c0900fab031da8c70724723a0d54e3a0035da7dcddeef6fce80df2f81940817d27b2b5]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200048faa8497ae3006b612999b03f91f7884d95543a266598e897b71e44ecfd9abd7908bfd122bb366c016a577cb1b2e2e412bb1a719289c749804ca677d14c0900fab031da8c70724723a0d54e3a0035da7dcddeef6fce80df2f81940817d27b2b5]\n[sha = SHA-512]\n\n# tcId = 410\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04c59cc648629e62dc1855f653583da0ace631e0f4b4589b7fe5cc449e12df2dceeb862cae00cd100233b999af657ae16cb138f659dcc8d342fd17664d86c5bddaa866c20b0031f65c8442a0ed62b337d09adb63a443ab14e3587b9299053717f9]\n[key.wx = 00c59cc648629e62dc1855f653583da0ace631e0f4b4589b7fe5cc449e12df2dceeb862cae00cd100233b999af657ae16c]\n[key.wy = 00b138f659dcc8d342fd17664d86c5bddaa866c20b0031f65c8442a0ed62b337d09adb63a443ab14e3587b9299053717f9]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004c59cc648629e62dc1855f653583da0ace631e0f4b4589b7fe5cc449e12df2dceeb862cae00cd100233b999af657ae16cb138f659dcc8d342fd17664d86c5bddaa866c20b0031f65c8442a0ed62b337d09adb63a443ab14e3587b9299053717f9]\n[sha = SHA-512]\n\n# tcId = 411\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04386bdc98fe3c156a790eee6d556e0036a4b84853358bd5ab6856db5985b9e8ea92e8d4c1f8d04ecd1e6de4548bf288215503292c2c570f57b42f2caf5e7ab94d87817a800b2af6ffcd4f13e30edb8caaf23c6d5be22abea18c2f9450ad1a4715]\n[key.wx = 386bdc98fe3c156a790eee6d556e0036a4b84853358bd5ab6856db5985b9e8ea92e8d4c1f8d04ecd1e6de4548bf28821]\n[key.wy = 5503292c2c570f57b42f2caf5e7ab94d87817a800b2af6ffcd4f13e30edb8caaf23c6d5be22abea18c2f9450ad1a4715]\n[keyDer = 3076301006072a8648c", + "e3d020106052b8104002203620004386bdc98fe3c156a790eee6d556e0036a4b84853358bd5ab6856db5985b9e8ea92e8d4c1f8d04ecd1e6de4548bf288215503292c2c570f57b42f2caf5e7ab94d87817a800b2af6ffcd4f13e30edb8caaf23c6d5be22abea18c2f9450ad1a4715]\n[sha = SHA-512]\n\n# tcId = 412\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04294c37b3ec91a1b0500042d8b97bc9619d17f784a9ea528c0602d700783bfbac9ac49bff1e527b39bb2a49d1dc3abd471e798679b7c58f4dfa33cfe40bb62e7df6d2f190b0f3804c700fa19eba28ad7fd6edd7e3a754af852921c2705f444f0b]\n[key.wx = 294c37b3ec91a1b0500042d8b97bc9619d17f784a9ea528c0602d700783bfbac9ac49bff1e527b39bb2a49d1dc3abd47]\n[key.wy = 1e798679b7c58f4dfa33cfe40bb62e7df6d2f190b0f3804c700fa19eba28ad7fd6edd7e3a754af852921c2705f444f0b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004294c37b3ec91a1b0500042d8b97bc9619d17f784a9ea528c0602d700783bfbac9ac49bff1e527b39bb2a49d1dc3abd471e798679b7c58f4dfa33cfe40bb62e7df6d2f190b0f3804c700fa19eba28ad7fd6edd7e3a754af852921c2705f444f0b]\n[sha = SHA-512]\n\n# tcId = 413\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04bac7cd8a7755a174fab58e5374ec55a5ce5313235ec51c919c6684bd49305b7005393f72bc4d810ca864fb046d2c83415a33b77f4145680bde63b669ea1f10f3ee1836018c11a6f97155d90827c83dbac388402ac8f59368ddaf2c33548611af]\n[key.wx = 00bac7cd8a7755a174fab58e5374ec55a5ce5313235ec51c919c6684bd49305b7005393f72bc4d810ca864fb046d2c8341]\n[key.wy = 5a33b77f4145680bde63b669ea1f10f3ee1836018c11a6f97155d90827c83dbac388402ac8f59368ddaf2c33548611af]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bac7cd8a7755a174fab58e5374ec55a5ce5313235ec51c919c6684bd49305b7005393f72bc4d810ca864fb046d2c83415a33b77f4145680bde63b669ea1f10f3ee1836018c11a6f97155d90827c83dbac388402ac8f59368ddaf2c33548611af]\n[sha = SHA-512]\n\n# tcId = 414\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df6102300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00eb4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]\n[key.wx = 00984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00e]\n[key.wy = 00b4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00eb4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]\n[sha = SHA-512]\n\n# tcId = 415\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04f00d6327b1226eaa1b0897295eeddadf7510249e6f0f811b57d7197eb6e61199a8f1c6665ec4821d3e18675d5399fdf787bf1e3fb7fee5cb3582a4159808b75e8b1de07eaffd49d3882d15c77443ad83213d21a4be9285223aa44a840e47eb56]\n[key.wx = 00f00d6327b1226eaa1b0897295eeddadf7510249e6f0f811b57d7197eb6e61199a8f1c6665ec4821d3e18675d5399fdf7]\n[key.wy = 0087bf1e3fb7fee5cb3582a4159808b75e8b1de07eaffd49d3882d15c77443ad83213d21a4be9285223aa44a840e47eb56]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f00d6327b1226eaa1b0897295eeddadf7510249e6f0f811b57d7197eb6e61199a8f1c6665ec4821d3e18675d5399fdf787bf1e3fb7fee5cb3582a4159808b75e8b1de07eaffd49d3882d15c77443ad83213d21a4be9285223aa44a840e47eb56]\n[sha = SHA-512]\n\n# tcId = 416\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04452b047743346898b087daaac5d982d378752ba534e569f21ac592c09654d0809b94ccf822045f2885cbd3b221453cd668a01f502f551af14aab35c2c30ec7bac0709f525fe7960439b1e9de53cdad245efd8930967cde6caf8d222c8200cd69]\n[key.wx = 452b047743346898b087daaac5d982d378752ba534e569f21ac592c09654d0809b94ccf822045f2885cbd3b221453cd6]\n[key.wy = 68a01f502f551af14aab35c2c30ec7bac0709f525fe7960439b1e9de53cdad245efd8930967cde6caf8d222c8200cd69]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004452b047743346898b087daaac5d982d378752ba534e569f21ac592c09654d0809b94ccf822045f2885cbd3b221453cd668a01f502f551af14aab35c2c30ec7bac0709f525fe7960439b1e9de53cdad245efd8930967cde6caf8d222c8200cd69]\n[sha = SHA-512]\n\n# tcId = 417\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702306666666666666666666666666666666666666666666666664fc15233fb49458c89a4057a8379dc9791f80a2ab84edd61\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0444a8f54795bdb81e00fc84fa8373d125b16da6e2bf4cfa9ee1dc13d7f157394683963c170f4c15e8cf21b5466b49fa72bb5693655b3e0a85e27e3e6d265fba0131f3083bf447f62b6e3e5275496f34daa522e16195d81488a31fe982c2b75f16]\n[key.wx = 44a8f54795bdb81e00fc84fa8373d125b16da6e2bf4cfa9ee1dc13d7f157394683963c170f4c15e8cf21b5466b49fa72]\n[key.wy = 00bb5693655b3e0a85e27e3e6d265fba0131f3083bf447f62b6e3e5275496f34daa522e16195d81488a31fe982c2b75f16]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000444a8f54795bdb81e00fc84fa8373d125b16da6e2bf4cfa9ee1dc13d7f157394683963c170f4c15e8cf21b5466b49fa72bb5693655b3e0a85e27e3e6d265fba0131f3083bf447f62b6e3e5275496f34daa522e16195d81488a31fe982c2b75f16]\n[sha = SHA-512]\n\n# tcId = 418\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702310099999999999999999999999999999999999999999999999977a1fb4df8ede852ce760837c536cae35af40f4014764c12\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0410b336b3afb80c80ff50716e734110fe83cd5b8d41d7f2f94f0dec7ecf1facc663babb8ed94e4bdf3592e37464970afa9be144d354e9b456873c6387a12a3eefd3e2feb66f7519ac72ac502c09d20d72cae9d04c88549a285c081023e1c1da08]\n[key.wx = 10b336b3afb80c80ff50716e734110fe83cd5b8d41d7f2f94f0dec7ecf1facc663babb8ed94e4bdf3592e37464970afa]\n[key.wy = 009be144d354e9b456873c6387a12a3eefd3e2feb66f7519ac72ac502c09d20d72cae9d04c88549a285c081023e1c1da08]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000410b336b3afb80c80ff50716e734110fe83cd5b8d41d7f2f94f0dec7ecf1facc663babb8ed94e4bdf3592e37464970afa9be144d354e9b456873c6387a12a3eefd3e2feb66f7519ac72ac502c09d20d72cae9d04c88549a285c081023e1c1da08]\n[sha = SHA-512]\n\n# tcId = 419\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3066023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023100db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6aae76701acc1950894a89e068772d8b281eef136f8a8fef5\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0481f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132221d81323509391f7b61bd7960", + "11337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[key.wx = 0081f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132]\n[key.wy = 221d81323509391f7b61bd796011337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000481f92630778777a01781e7924fced35fc09018d9b00820881b14a814c1836a1f73c3641f7a17c821ffd95da902efe132221d81323509391f7b61bd796011337e6af36ae0798c17043d79e8efcdae8e724adf96a2309207c2d2cfd88e8c483acb]\n[sha = SHA-512]\n\n# tcId = 420\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab702300eb10e5ab95f2f26a40700b1300fb8c3e754d5c453d9384ecce1daa38135a48a0a96c24efc2a76d00bde1d7aeedf7f6a\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[key.wx = 00aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]\n[sha = SHA-512]\n\n# tcId = 421\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 422\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[key.wx = 00aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]\n[key.wy = 00c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]\n[sha = SHA-512]\n\n# tcId = 423\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n# tcId = 424\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 0429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]\n[key.wy = 009a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]\n[sha = SHA-512]\n\n# tcId = 425\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 306402302290c886bbad8f53089583d543a269a727665626d6b94a3796324c62d08988f66f6011e845811a03589e92abe1f17faf023066e2cb4380997f4e7f85022541adb22d24d1196be68a3db888b03eb3d2d40b0d9a3a6a00a1a4782ee0a00e8410ba2d86\n\n# tcId = 426\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30650231008071d8cf9df9efef696ebafc59f74db90c1f1ecf5ccde18858de22fe4d7df2a25cb3001695d706dfd7984b39df65a0f4023027291e6339c2a7fed7a174bb97ffe41d8cfdc20c1260c6ec85d7259f0cc7781bf2ae7a6e6fb4c08e0d75b7381bb7d9b8\n\n# tcId = 427\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 30650230470014ccd7a1a5e5333d301c8ea528ac3b07b01944af30cec60f4bad94db108509e45ba381818b5bdfaf9daf0d372301023100e3d49d6a05a755aa871d7cb96fffb79fed7625f83f69498ba07c0d65166a67107c9a17ae6e1028e244377a44096217b2\n\n# tcId = 428\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 30640230377044d343f900175ac6833071be74964cd636417039e10e837da94b6919bffc3f5a517b945a450852af3259f5cbf108023032ea25006375c153581e80c09f53ad585c736f823c70147aba4fb47bb0a224fae4d8819adad80d4c144ecc2380954a9e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[key.wx = 00ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]\n[key.wy = 00acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]\n[sha = SHA-512]\n\n# tcId = 429\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ccb13c4dc9805a9b4e06ee25ef8c7593eaff7326c432d4b12b923163cf1cbe5fe1cfd3546c1d0761d8874e83ffd2e15d023100db1b0c082ae314b539f05e8a14ad51e5db37f29cacea9b2aab63a04917d58d008cf3f7ba41d5ea280f3b6a67be3ae8f8\n\n# tcId = 430\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100c79a30e36d2126b348dd9eb2f5db6aa98f79d80214027e51bcf3cabec188a7ebaf25cb7bbe9ec6bfed135e2a3b70e9160230241338ee2ac931adea9a56e7bfe909947128d54d5122a47b00c278e684e10102740d26e89e343290a5b2fa8b401faec6\n\n# tcId = 431\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306402300df82e4ec2960e3df614f8b49cec9a4ee1054365414241361feec9d9d9b6909d8775f222ec385a14afab46266db390c302300968485e854addba0f8354e677e955e1ef2df973d564c49f65f2562cb2a2b80d75e92f8784042955f7b8765f609ce221\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[key.wx = 00d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]\n[key.wy = 00c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]\n[sha = SHA-512]\n\n# tcId = 432\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306402301fafd83d728422e1485f1e52e5b631548647cc3c76c109c3177a73751d91a19012fa4628b218f2229fc4d55f105fe00102304474f9af7b4b0bb96fdb05ae918f799024e8d5b86", + "4e49ccd047cf97e7b9f8763cce015c11cf1f461c9027cb901055101\n\n# tcId = 433\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100e6025bb957ab197fb4c080d0a5c647e428afb0d7cc235c605ae97545494fd31a9979790bb2da6e1cf186789422b15c970231008ae9872291430d1bb371ef72360dad5afbb6fb001f403d9aaa1445f0326eb1eef775c9dfe1d7ef8bf4e744822108d27e\n\n# tcId = 434\n# y-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100877d5567c18fa568259005a89c2300d1b3825b732fa14964c1477d4b3098afd09384b97d497464adba41e9df8a74d339023100c40f0760717b4b3bae75742b6dc3dcf04cc22a449cfea19d305e0658cb705fda75163e7399e0b3125ca7d1919c13851e\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]\n[key.wy = 00e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]\n[sha = SHA-512]\n\n# tcId = 435\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e706b0045a6f54bd175e2437b48767b0204f93d8a4d9d3d00838278137e5b670de4305c5c55e49059b8b5f6e264654c90230405741adff94afd9a88e08d0b1021911fa4cedb2466b1a8fd302a5b5d96566ada63ccb82b6c5e8452fde860c545e0a19\n\n# tcId = 436\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 306502300c57ce2bc579fbd3a759dfbf5e84c3cef2414846a2e300453e1e4c5188f24432b14ca647a733b6ad35c980a880d36145023100f12a119e22d48b82049df611f1c851fb22795056498a873c730fcb9fd8f314728de0298b9b22c348abc6de2aba97e972\n\n# tcId = 437\n# x-coordinate of the public key has many trailing 0's\nmsg = 4d657373616765\nresult = valid\nsig = 30660231009a8f80697ccf2e0617612027d861a3a3a657fb75cc82810b40dd5072d39ff37eca29008390da356137e2c9babd814198023100a86537a83c3d57da50e4b29b47dcc3717c5a1ed0fff18ade8dcce4220eac63aab60b9bfed5f1bdd241dab655a9bdd75f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]\n[key.wy = 00d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]\n[sha = SHA-512]\n\n# tcId = 438\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306602310093718f6f8542725f62de7039fc193d3fcc81d622230ccc94e9e265390b385af3a3ba50c91a9d6a5b1e07d79af2bd80b2023100d08499f3d298e8afecea122265a36dbf337259020654739783c8ec8ef783d072555b5907285ce83fc8ced9c8398c6269\n\n# tcId = 439\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ce26e42c490dec92cf59d6b1ba75c9a1400d6e5c3fd7c47e1eeb1cded30a3a3d18c81cdfdcbad2742a97293369ce21c202310094671085d941fd27d495452a4c8559a1fe24f3225f5b8ef75faf9d3fb01372c586e23b82714359d0e47144ff5d946161\n\n# tcId = 440\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100ffc4738acf71f04a13104c328c138b331fb7202aef66f583ba543ed490d12993c18f724c81ad0f7ea18dae352e5c6480023100e67d4ccdeb68a9a731f06f77eae00175be076d92529b109a62542692c8749ddfde03bed1c119a5901a4e852f2115578f\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]\n[sha = SHA-512]\n\n# tcId = 441\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100e6fa8455bc14e730e4ca1eb5faf6c8180f2f231069b93a0bb17d33ad5513d93a36214f5ce82ca6bd785ccbacf7249a4c02303979b4b480f496357c25aa3fc850c67ff1c5a2aabd80b6020d2eac3dd7833cf2387d0be64df54a0e9b59f12c3bebf886\n\n# tcId = 442\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306502301b49b037783838867fbaa57305b2aa28df1b0ec40f43140067fafdea63f87c02dfb0e6f41b760fbdf51005e90c0c3715023100e7d4eb6ee61611264ea8a668a70287e3d63489273da2b30ad0c221f1893feaea3e878c9a81c6cec865899dbda4fa79ae\n\n# tcId = 443\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 306502310091d9da3d577408189dcaae33d95ed0a0118afd460d5228fa352b6ea671b172eb413816a70621ddaf23c5e2ef79df0c110230053dadbfcd564bddbe44e0ecb4d1e608dbd35d4e83b6634cc72afb87a2d61675ee13960c243f6be70519e167b1d3ceb0\n\n[key.curve = secp384r1]\n[key.keySize = 384]\n[key.type = EcPublicKey]\n[key.uncompressed = 04fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[key.wx = 00fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]\n[key.wy = 00ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]\n[sha = SHA-512]\n\n# tcId = 444\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3065023100af0ed6ce6419662db80f02a2b632675445c7bf8a34bbacdc81cc5dd306c657ca4c5a3fb1b05f358d8f36fda8ae238806023046b472c0badb17e089c8f9697fd0b4ce71f0f4471b235483d4c8dd3d00aa282cde990253df38ba733b2ad82a601c7508\n\n# tcId = 445\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 3066023100e2aa9468ccaaadad8b9f43a429c97f0c6a7eedcb4d4af72d639df0fe53f610b953408a8e24e8db138551770750680f7a023100d81020846d1c50ee9ae23601dd638cb71b38d37fb555268c2fa1ad8a761fa7b27afcab2fa69224d1f976699914e09de2\n\n# tcId = 446\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 306402306bf6fa7a663802c3382cc5fd02004ec71e5a031e3d9bfc0858fa994e88497a7782308bc265b8237a6bbbdd38658b36fc02303a9d5941a013bf70d99cc3ff255ce85573688dac40344b5db7144b19bf57bb2701e6850a8f819796b67f7d0b6aea7e50\n\n", }; -static const size_t kLen73 = 229819; +static const size_t kLen106 = 225135; -static const char *kData73[] = { - "# Imported from Wycheproof's ecdsa_secp521r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.4.12\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04005c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508007878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[key.wx = 5c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508]\n[key.wy = 7878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508007878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024201d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5a27a24a1aae1e218fdccd8cd7d4990b666d4bf4902b84fdad123f941fe906d948\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 3\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 4\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 308188028200414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 5\n# length contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450282004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 6\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 308702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 7\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 308502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 8\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 30818602424e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 9\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 30818602404e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 10\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024228b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 11\n# wrong length\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 12\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 3085010000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 13\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30818b028501000000414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 14\n# uint32 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450285010000004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 15\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 16\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30818f02890100000000000000414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 17\n# uint64 overflow in length\nmsg = 313233343030\nresult = invalid\nsig = 30818f02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645028901000000000000004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 18\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022f", - "ea8318ac1\n\n# tcId = 19\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a02847fffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 20\n# length = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502847fffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 21\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 22\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a0284ffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 23\n# length = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450284ffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 24\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 25\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818b0285ffffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 26\n# length = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450285ffffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 27\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 28\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818e0288ffffffffffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 29\n# length = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450288ffffffffffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 30\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30ff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 31\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30818602ff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 32\n# incorrect length\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502ff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 30818602804e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645028028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 37\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 38\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 39\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 308188000002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 40\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 41\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10500\n\n# tcId = 42\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818c49817730818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 43\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = ", - "30818b250030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 44\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818930818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef\n\n# tcId = 45\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b224649817702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 46\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818a2245250002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 47\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818e224302414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450004deadbeef024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452246498177024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864522452500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452243024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef\n\n# tcId = 51\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818faa00bb00cd0030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 52\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818daa02aabb30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 53\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818e2249aa00bb00cd0002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 54\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818c2247aa02aabb02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 55\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452249aa00bb00cd00024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 56\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818c02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452247aa02aabb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 57\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 58\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 59\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30818a228002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 60\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 61\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 308031818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 62\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30818a228003414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 63\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280034128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 64\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 65\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 66\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69", - "d5285e174a01a93022fea8318ac1\n\n# tcId = 67\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 31818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 68\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 32818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 69\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 70\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 71\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818b300102308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 72\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a\n\n# tcId = 73\n# truncate sequence\nmsg = 313233343030\nresult = invalid\nsig = 308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 74\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 75\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac100\n\n# tcId = 76\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac105000000\n\n# tcId = 77\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1060811220000\n\n# tcId = 78\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000fe02beef\n\n# tcId = 79\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10002beef\n\n# tcId = 80\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 308188300002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 81\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac13000\n\n# tcId = 82\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818930818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 83\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 304302414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645\n\n# tcId = 84\n# repeat element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081c902414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 85\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 3081870281414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 86\n# long form encoding of length\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502814128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 87\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3043024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 88\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 304402024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 89\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 304402414e4223ee43e8cb89de3b1339ffc279e582f82c7a", - "b0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502\n\n# tcId = 90\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802434e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 91\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024328b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 92\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 308188024300004e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 93\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450243000028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n# This is a signature with correct values for (r, s) but using some alternative\n# BER encoding instead of DER encoding. Implementations should not accept such\n# signatures to limit signature malleability.\n\n# tcId = 94\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 95\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802434e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 96\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024328b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10500\n\n# tcId = 97\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30450281024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 98\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450281\n\n# tcId = 99\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30450500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 100\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 304502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450500\n\n# tcId = 101\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818600414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 102\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818601414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818603414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818604414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 308186ff414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645014128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645034128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645044128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645ff4128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 111\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30450200024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 112\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450200\n\n# tcId = 113\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30818a224502014e02404223ee43e8cb89de3b1339ffc279e582f8", - "2c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 114\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864522450201280240b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 115\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414c4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 116\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502412ab5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 117\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86c5024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 118\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a41\n\n# tcId = 119\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502404e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 120\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502404223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 121\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a\n\n# tcId = 122\n# truncate integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450240b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 123\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 3081870242ff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 124\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450242ff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 125\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 3046090180024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 126\n# infinity\nmsg = 313233343030\nresult = invalid\nsig = 304602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645090180\n\n# tcId = 127\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3046020100024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 128\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 304602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645020100\n\n# tcId = 129\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242024e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbe97b3367122fa4a20584c271233f3ec3b7f7b31b0faa4d340b92a6b0d5cd17ea4e024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 130\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242fe4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbf4d826580ab145752e852a6e91512b78178047879e9714a4ae1bc74298aaa7223c024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081860241b1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a00410d65320718f8af465fb099025b7cae2184402aea8df4f13a328c90648c42079bb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 308187024201b1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a0040b27d9a7f54eba8ad17ad5916eaed487e87fb8786168eb5b51e438bd675558ddc4024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242fdb1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a0041684cc98edd05b5dfa7b3d8edcc0c13c48084ce4f055b2cbf46d594f2a32e815b2024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242024e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242fe4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 308187024201b1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a00410d65320718f8af465fb099025b7cae2184402aea8df4f13a328c90648c42079bb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a", - "697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502420228b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba09a7b6ac4ecd0410b4722ca75ba197a403a0a1f9ee0e7b391b0649fda1d3969eeca\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450242fe28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a5d85db5e551e1de70233273282b66f49992b40b6fd47b0252edc06be016f926b8\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450241d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5fd61bc296eeee8b245d018b8edd8f659631962ad7a1e8b5fe56cfdd0157ce753f\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450242fdd74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f6584953b132fbef4b8dd358a45e685bfc5f5e0611f184c6e4f9b6025e2c6961136\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502420228b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450242fe28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024201d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5fd61bc296eeee8b245d018b8edd8f659631962ad7a1e8b5fe56cfdd0157ce753f\n\n# tcId = 144\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201000242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and", - " s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201010242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff0242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 174\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc01", - "48f709a5d03bb5c9b8899c47aebb6fb71e91386408020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864080201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864080242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a0242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-", - "1)==0.\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020100\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020101\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 304702420200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000201ff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30818802420200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 304902420200000000000000000000000000000000000000000000000000000000000000000", - "00000000000000000000000000000000000000000000000000000000000000000090380fe01\n# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA\n# implementation does not check boundaries and computes s^(-1)==0.\n\n# tcId = 216\n# Edge case for Shamir multiplication\nmsg = 39353032\nresult = valid\nsig = 308187024200b4b10646a668c385e1c4da613eb6592c0976fc4df843fc446f20673be5ac18c7d8608a943f019d96216254b09de5f20f3159402ced88ef805a4154f780e093e044024165cd4e7f2d8b752c35a62fc11a4ab745a91ca80698a226b41f156fb764b79f4d76548140eb94d2c477c0a9be3e1d4d1acbf9cf449701c10bd47c2e3698b3287934\n\n# tcId = 217\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 308188024201209e6f7b6f2f764261766d4106c3e4a43ac615f645f3ef5c7139651e86e4a177f9c2ab68027afbc6784ccb78d05c258a8b9b18fb1c0f28be4d024da90738fbd374024201ade5d2cb6bf79d80583aeb11ac3254fc151fa363305508a0f121457d00911f8f5ef6d4ec27460d26f3b56f4447f434ff9abe6a91e5055e7fe7707345e562983d64\n\n# tcId = 218\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 308188024201c0832c973a455cac48a4439659aa21146036c52ec1514121c66714348a1c0e2c7099a2466d9acb49325a0cb509e5dff2efbcd90369d3027cbb7dca58a134278d05024200a426c063ab5cc6af20dd1ba8a519fac910183561598e67c0929e25f9c3aaeb245c5647fba21e30c103304dc6f49e6dec68a7833533e4e5448240bde023fe201eb9\n\n# tcId = 219\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 30818702410d01cde64dda4dbcef1a9b924779598217b97eb688d9b4a4fd20d1b81ff0bb870abff1b0db6dfc3762f27c3954f230a7933d9ea397a972caac5ed2183ec72716c7024201c6530fb6b913005f81e156be89b3847701829fbb310d8a4c761212c6d2f8750174f2bf81c238fdde4370fa87de320f57dbed96691af45cb99f3daa865edcdda59e\n\n# tcId = 220\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 308187024200c009c74ec707252325d78f4e7f14be28f56272be17c0c18c90ad4c07322cef4eea444c8feabf41a213e3e846f8ac8bb7750d49143069cd01877d530bb981f1a85b02411f1c27ef97f434a8c2ff315dd39d909709775bb3c7588243bdfd8f7c866c49b3369719d5b74a47924bbce57301675e2baadcec438e07e6d532aba664253ab09550\n\n# tcId = 221\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 308188024201d3b17a34b19d134773988c434a9fb7f22a57dfb4c4bcca031e213e1b9a56db0ecb2f3c54cf9b1b6e5981369652de37337a7a7d7ddb54d67b067bbce01fd7fd2808024200c90317dfa061122557eb3899939924a8ea3cdd886e0f2e5f2c384b65b1a40de5f00fd9fce889fc313a6a9d5f0a9cd3a7b89b7ba8e97807031f3d1e3f9c103f0a10\n\n# tcId = 222\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 308188024200cdca5299e788600a3ca5938d4a4c5f42b5eea3cefc990e67af95a4449aac0ab50e8fc4778efa497223cdca07c0e5a5920110f3a87afaaf265beadbb91c00d13464024201a92b9a5570b42f91ebc3d8ba272db9241468154783548d3fcfb6ef46c9e037bb6217af0a31ef952c27604629ad5775e7695c63efa138cee8326a51c1b04d0c658f\n\n# tcId = 223\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 308188024201660b0ed15d5f63044cb189e1a405bcb591c37217d0e000008614b152665d5bb9353a3826854a8bc6ebed423b15680e4340a00701b17bae24bd399bcff7e0438bfb024201c47f2f5c6143d2eef063757114aaeb27827b6a8f675d1825dac7f4548cbf78a37eb9621a29e9b14cf61fc6ae49e7e6e15350a4b90a4a897ff69b0c59b69508ebc7\n\n# tcId = 224\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 3081870241364684856c7c02bfb2ad2de603d10883ca93c122d4cebef276467a9b7620fb530e4d05d07c15ab948b9ce7682561307913b64ea6896ece1095dc64369f1a9d5c0d0242009e6db2ff96d9d71150440fd44992656ca118fcaf6bd04499314e8ba61a55a8790aac023ddb68600fbd7ed4cd4decb176e8bd7822ea31d75adcbdaccafcf510c26c\n\n# tcId = 225\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 308188024201a317e49014f1bf3afc09cc048531010e2144b662cac657e51b32bb432d274a730b535fb2de66fa8ddd26faa3f46e004389d25517c56e7d8a1d39563b0e8c9c215b024201ad2e1212e1680b660a1c07f54addff575c8c8298e26a14c516f517fb5f966a2b383aa46a483fdbfa72711d60c0f67a2c03d63d2626ffe271e0ce353a4d4b09bd5e\n\n# tcId = 226\n# special case hash\nmsg = 36323139353630323031\nresult = valid\nsig = 308188024201c09b29fc4da04e9b86097bd6d6806aa969ceb37ce52eeac5e9518d27541c3f30c00f113d9dd3b007dae6f381896d43fc6ddfb3fa256a36529b054e416ed638059902420113e5622cb1e4c4bb0842f3d396d7e660241116e94e8120a602e3d2952701b1a11415a3d8c503adced160450fd13157ad147d2d65d77449458659350e20a545602e\n\n# tcId = 227\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 308187024178f4a2968460ea8f64a938b3a97c914eb0ccfa94eb08636efee9d5ad8668ce1c9099573abd146df9e7b2ccaaa1a25de903f85962849356a872e88e545babc28974024200f2729e9593c9fcdf5971b21e367ffdc87aa7520393527c6f68ab512b88b839003c1c9952b04f2dc74010a31071ee20a9fb1c7e1187d04de71b3f4327df128ccd43\n\n# tcId = 228\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 3081870242019faed147a76b65779d0989e1300802844c9ba09f338c5e31a24d9ebf8f0b0b4c21f59d369ac10e315fa2b7605b0f17a9c07cf6ce4c83838e58333a3390142d79d002415f4de71fdaced1e8da86efd47ecbdac6a6ffc6d69df71da7ceb5596475cdfecea3d00f074d2de89e0fcc05e3231d531f0d38f2b7c6fe4ecf67a0cdddc21d0867b8\n\n# tcId = 229\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 308188024200d0b144350a2128f042bc1a27f6c021dad1ec031be8f1d8304797f9ddcb742974aae209f014980174b9d4e434e3f53247889d2da4b767593179cb4eda47e799643002420184d3416dee35ba8807703a91ac927096c10959a05cbffd8103a93a9f20a11537bed7a645f32295e4abce493579caa4e2242060cc4d58b2414870e98b9336795787\n\n# tcId = 230\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 308187024105257a0f45ee2ae5cc30283d23c47c96f6deaa3ac1473e8e8a40eaf61bc4b0ef8bd18d11983f257ec4b1d8d04e76a122b5bbe1d31065159072c58fd9bc3e98376802420122dba50d0eb71bdbf092a94a7ea280412906e1f849e91dbd5d8158e3fc6cd12e20461b77653e3df2e45b86883f81071b33651ae1b84cc8e7c365ab8d6a36d1cfa6\n\n# tcId = 231\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 3081880242014f624af9d8096fe7a290651d23ab260da64e44b886fef4f3881d0d984d3b387fddcf65b1fa1dbb239028fbab4a1de6ad150cc8a4e4db0a971bb8bcf01c4728ff9802420105e3b55db0141c06d9854096cc0f73415dd2b85a331da50cfea3bbf648bbf8651f61f2cd09386b62fbb8ce67248683c260894d9ed54d6667ae02978e38ab99320a\n\n# tcId = 232\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 30818702412c952d7e61e1097cd7f709e62ec486879b380b63791c146b545c064e65b3060250d00af279cf15eade67384b28594db542845fcc6574ef5d8d5bb8a162e0350a0002420135ac6d1cc05b095fbae28b652fe5386b8689e21a14990236d3ada7ceeb0c12a4f774bff7b81c8d07572b0c7985364c5d31f33271f0ac3a2afb88b46bfeefbaeaa8\n\n# tcId = 233\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 3081880242017919eff78225e1937a921f98f5d153cbffa03929819f228ee013f8e59549b04b9867006a8df25a93a6a25dd1d3f540239a8ed14047ea00811da9305ec515ad000d0242011fb873bdae1757801e575c5df62cf82a1881af3cd6ed17dc50edbe6c5fd0f4d31766670b2aa572a9e6547b36142afa8464d0be4bf41930629dc04c85e01b2ee8e2\n\n# tcId = 234\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 30818702416ac9b370067b13ac2b57f35d6d9b1faa93b9b068ef5ddf8bde3a54024810aa2226560065b0cb7501df96b4756ce1e1fa607f86a942367894a1f7728bd5f22cf1770242008b47a9e1370c9f5bf4677d554c00e9ac3ea7cdfc78836ac53ac710b7f3bff8c2297780c69a9fddb80e03a605e5e48a52e52fd35f41668cd9064886366fda206086\n\n# tcId = 235\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 308187024200c4bcfff265cd32442220976ffc7e4ec09181d694696eb89af0cb2d5a2dfc3876deb3c6adea168965200c355c3bff5e47ab17ecc44c8434333280796d3a183449ea024162debe91550f8a760eaea309f48483c65a52c7e88a83867c31730cbc6b0a64d4c564bde67e6539af787ecfd18016cde46ddf91740f58f6ea6ec80b173fd1c47ad0\n\n# tcId = 236\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 30818802420174d744ddc631fcf8202fca0ab10f6d96d3f7552bb2a9ae5ac573634133f61c59a120fedbc39cfb521ab0cd572afbd5147981090d1dcbfe902e03f0c0579967b5810242012f59ca927c4ae331d2f667fcd9ec01b0b5514e2ab5da0561ea614431dc1fcb761c351cd1211092720ebb7074a5128f8019b7c18e048d5ed3573ed61686e9713f72\n\n# tcId = 237\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 3081880242019a513cfaf871287340d8a51d2f4348ab4096c5fe244b22add38ce433e3178e8ff5b2df0fe74a1ba40fe8341f734c71f9a1177b41035777e2da6b082e0b566690de024200d0c43eb33a817c3aab30281c593c74517ee84e958b114395ce0b31fcf30bb8f5dfe60dbc7f6f14698977d8e0516a9274a5bd71847057e006fa315fae6922eaaa55\n\n# tcId = 238\n# special case hash\nmsg = 323", - "23332313935383233\nresult = valid\nsig = 3081870242013204800efcb40ab09ae4137325a3e8c468edae91880a51616ba61f3ef1f72fd89feb956bfb39818d827468bb4475110a04779fd6bb3def25c61c4ba60889ed0ff70241704b7394687698c8841f4875d40e5b3c914f154ccb2b54466ae163ed3410f20d0a07ac5f90c0c31271ec8a524ca2dae4b8bc4f6e1ece173ea907890693c5f2190c\n\n# tcId = 239\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 30818802420180241cd2e6163158a39599890dabee99c2c86b88accd2b04b5a72874fbdfbde0d18143c4d78e0da1abf3796b238738840d60e34775a8ff810d58a9bb3559a3997c024200bc396c2ef28b244fb8e004bf5361572ba1fef6fbe081ed1dedba4d9af78deee126599f75a0a9d0f1b1618ded7a0c5e672e40917fdd30582460da3aeb1e9c4477d7\n\n# tcId = 240\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 308188024201485fc03fcd629fd4c564775ab6969bbc696b5b0f38141b69f86e052e7fe8849a64af2dd37a2adf64672f20bd6f97cd32f0efea51aa22064c5f10a3911177e1979d02420180fab473ff9d726db6d266541a0bddff8610e4026d26b6c9abf972eaef477d50670bdd3067c9d711a8346e16869147751e89b4ea75bb00ece71300cc3b80cf8899\n\n# tcId = 241\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 308188024201bea49b150a27026fdf848297b0491019f76abf90f3e6d782e3d3fa6caddb81b7ef58b27f1b2b3f7898889b4e2b6cdda7b5636177a27eb9a67b2055b6f21d262c26024200dffb13c2d5f746c8573aa444afc8baf8bf881cc4d0fca8169f6cb304f400eb3932666cd3758c437c9cad79abfd89c72a788505763aabdfabf8903ad4a70d9ec9f7\n\n# tcId = 242\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 308187024201d56bf6f3758f627f470706d1d28c28fbfcad6dc30465cb285a274fc057f791de73ac30baccde044473fa9e3dce6d395eadf98d1f97259bd851a1eb6f3d31d2d756024133704b4ad37300a96682569f4f7fea3e14d6e1f65864663f39aa67f40b5c949f198d5de9f2ac2369bbb9111c89b393199537c6c08ed7c02709c733ef7660113d53\n\n# tcId = 243\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 308188024201554035ba84b051d50901c622b98be4de0123a02928dffa7eb13b0403fd5e255f226505e15694956a66a878ff581173d123d1b24eaa85c5fe46d8973a55040ff405024201b016dd6b5176ad8347eb9802dd7727e06a29db33cc946f809a42f9193040692b0f82ebbd04eff9f099b7f75f8e45e74ac00a51a9cd4f2cbf5f03f4d2bee99c24eb\n\n# tcId = 244\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig = 3081860241293e8d6775f3c14183aecc22f608e9013d7b15dad167bb38a1dfef6b373619f1ba2751d77b43f643f68643cfdb5c04a8ed858bfcf3858a681ae93bfc7cd7e3143802412c7d96db7dbbe347bab9f6f7b88f48cb32ab963248737d2c901b90d64591cbdb0f0ca7a14557f8a50fd80d402f929dad141141f1f0c85d9414b32d1fd4d796e6e7\n\n# tcId = 245\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 308188024200b16a9b3aceece85908125f96f6cb6b1afd0ef04171936b3766f8e43beb340d382084b33439f775a29a83945da8efc4190db1343e87d8c0ffb97aeb3be159d90f59024200e5c2bbd98e449bd0bb4f75a07f1a88dd63c0602a7660f4acd33937c4913a9c16ba44dc5808892ec88a4255109a7bc5b221c07e6a278888a9712fc2a25b374427e3\n\n# tcId = 246\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 30818702413b47a8ed52f5b0566365313520bc0b6e4e4efb3ea4176ed7a352c4b2f8bffbdb0148ff44f3f13d9e5e31b1cdeae097574aad8bf393c54a5c842e749ee87a74c6b0024201d3f484e9e224bda9c8f10fbb74bbb62d7a18245707f4eb52f17dde793892c16e4bdf504960fba55da487f542d412b1b833f6f46336118618fcff69469c83963777\n\n# tcId = 247\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 30818802420128b8988bfe9287f82ac97be507a544b823e85cc2813b6929e63699cff85a40283076028e7bf8d24330f89adb96bf24a4e183a898e679b36768909574e7d4733d61024200c18aae44e6801fc2e3d9c7a20ff9d42b46e4a31ca37772f8c46ce65219b195ca23717f816e1fed51e5b6f9a0ca12c3cf81ae7fc9cc6946a88330b2011ddd160930\n\n# tcId = 248\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 3081870242015edf1fa95b17159f762d68c1736101309e80fe5b2c4415609a5ac0837fe5901f3c2d3d826a43b1f8cd1babf494ffd96cca1267950188a924d4e1bf7f68189f27d302412e8697efbbf53adb7cb1b904718fc71eb2561f331c209c50848b5bc50bef77c5c3487d285bfaa3caa14025cbb71bdbaea6911e3610335641d2799c3fd75019f716\n\n# tcId = 249\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 30818802420161f64bbe93fdc0e61134cfd4c453ab740233b436179351aa68a3e38a83400d86ff464d7ceb7a51f541b86eb2f12e32a879b3a29bcb92e08cd50e74f86a0ed52ae90242008f6fef49ba12ced6696f4f6d24e6c68057a84496d42eede630199e9bd06d91363542a9776bfcd6d77fbae422e80fe466edd2c2c5e1f5cc79bedd1a7becc1a12660\n\n# tcId = 250\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 3081870242013a6faccc1c06cb5dadb2cf083cb94a7181fd5cbf3954fdc430c2691248fcfcd13767e32491f00269b549cae93777ced0f7b069440726adde7605d4038d7b5ea4cc02417622c9065f4c49a6f8649073dfc6a827b897b6984176b1a09d151b9733a68f6da746c47427cdeb3be075da4a351ab78dd5e472cd98d1586edd6ff2a11c6c169fbb\n\n# tcId = 251\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 308188024201899609e7f7cd2ef14bfbb1cb9ba9283ae11a9346a34bef23b1c249da2e76a7708e0f2f97f819e4e25b0d5227eeb85aa593c3fae9398a7020f61ae1606945d13841024201b8d5e9c4f030295447106d2b5c80cc2e7d4e36b458a90a08f505df62d2234e59d08187385ba5501049b34e12ec92f7839a18361a52a9a0b6f6a664b118680b53d7\n\n# tcId = 252\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 308187024201ddc69d1508021eb560db39f3add8a28dd7fbce417e5fa1f4f626705caaad72b634868d01dfc474e926c97927c56ac51f9bdcfd0e7627be35cc300a0cdc083b00d402416e862caf9f2df11b0a46104e78865fbbabe30bfac0b1fe7f99badc11746a288c1ff27f6fa2aaba6441bab0372af906eef083ff03ba466b896c9344cd396dd46dbd\n\n# tcId = 253\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 30818702420117fe2c21f282c7e4a8415e9c53c254514eeeb0adadc771adbc6d21a09add4f17ea0c597469488238be795f2e187fa016d590535b4ff10c62d2246aa17bb013f9ee02413c9f1590ce7a68fc84c617f478188e71aefe8c74c4b9979b8c9196bcc262205aecce5fd2bb80c360d3e20da20e36c5ab70d810d4ba97d13858199d3a1c9c140c63\n\n# tcId = 254\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 308188024200be6b47254a3cf93e2e276adfb072256404744070d6dec83ef34e3e6c119206422bb275e61fc47053ef7b2af9e33aca8f8b2e4938057070eb6ebbcf82fabb44a5fe024201061ef80935ff6d0e9f87f3537b639945acf50c5d97d30b4b9c347e3f5f5ec02b15a376ae754d64b2efaa811b3d12a0fff0bc689022025dd2f69f2f4b40dda8687a\n\n# tcId = 255\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 30818802420130b6fd7dec5cb6f90a8b54ce7b58c61b013d0aed7c4a26639de80aeac3d9e3388e9f87e1e6419d3f0339af324e1421b5d130317ffd9d8be36500a84bb41d026cea02420176b460a3eae01d8aa8ccffb0d6cf4d1595aa697c65510a1197b97343c1a6234552ce9d6d318c5f20f48bec0dc311dd62eb40058f3cb22fa958edaf9ddded191a08\n\n# tcId = 256\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 308188024200a87de42d827ae1f55d6fab3277c7a9fdfac3af22fe47e52bfee34fa1ee3e765095fff20175becbdc94b4a5ad3a149ea7c1bebf4d45370e6b4404a0437d8fae264f024201a3c1c5186d8aa491b4623f5765a388930f37bb8f3e1c0db508983585b9090b3aaf22bb846e0fb6d915b5811ac55e4d6cb08f605cb84deb55ab7fba2dde8736b1c4\n\n# tcId = 257\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 3081880242010e46055d9aa087f1c4b6056319cbf17a0694fe073266a3f30363030e345a4bd461acbd99d1261fc05ef3c9a1c37afba6e21c2d513ea3d4709de5586810d7d29ec6024200d0c95c7e97a94efb44aa717cd6ebe82de0644e32676d197351f128ee8d2b223ab476d3e66014ecc003081f7040c578b8984628d6ec80733f713e26b2c98cb4ede1\n\n# tcId = 258\n# special case hash\nmsg = 33323639383937333231\nresult = valid\nsig = 3081880242012c04d08a7a2d07403aba604ea85ec23a52b52786e7fce04170e867be6146eea75a7180f5d4f3b82a204a3c996811a1e61a3e76ed209c22428b35c51fe60f3bee1e0242016f2feabc25733b0a460463b9933e6e4ae9f4124cd0ad3785c77755dbf0848ec1cfd2ab08b960b556870fa00388d23d9a9fa3112ac3e62a0f342d58fb1f0aa81748\n\n# tcId = 259\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 308188024201ca9532c9daeb80d0dbc07a4138ba62a6bab8c88b9e1e2edf2675132eb97cfb26f4c395f3b9d1d1275694956b34c3ef72cd00bab86777465b9edba29a41b0114c6202420140eb6dddff253a7ff5b032d82fbd18e481a376fe242f6405b81b57165665c9bfe61e25cd3358245bdfb8de7632de72ed20cdacf384764096c8fe3a376563a348af\n\n# tcId = 260\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 308188024200d609e1f1cc1adf5889dc6deda441682e760be08932b31592fef3ada143fb4940e4ea75ae519e4fb0769c4fbd33a52b183a21d0bba1ffa3fe50fd11f75c6ac58ff60242012400cc4ddc24ddcd47a6d639a2abdef29a65d4fe9175f51b316f4bf918bc918879495c572f8e98364", - "e2e1aa0d4d53ad29e803a4470d94dd06a982a1d041bf2b5dd\n\n# tcId = 261\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 30818702413775a7e61bdda9a3a990ba9fde98f9d81d4b03195547bbd0658e1059daa00da9270671b2fada1bbbf13982f87c9f3f26dda5cd4f24de63bceb5fd9390163c58d260242010a03e4ba08f9e2b6915a6c0b83156b00f59efc5417394c51ca7616b58cf91ab7166d8459eb4eeb0d57146ed6560e173faf354b4390817e0aafb38294df25992cbd\n\n# tcId = 262\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 3081880242017ab00a30c88faeced3e4a10f9c63785bc29e9af4499466bd8880827cfa580b6171f4a20f36487f7b94592946bca4162faf65872af6bfb1919e6b026c14e51e2740024201927515f6489e9b7d9cbf61e103295857c8131320217e7a86d3f2fdcb350da5b42c2dbe173fcb025d14da239d7d610de8475914748573429c9590d3594f4fa3aab3\n\n# tcId = 263\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 30818602413b2ba1509aea9d42d400400033952a022fe7e00c7ad65c39a2f76d41130aada99c3cdfb9cf44575a2163de29f097beb9bd3aef9334e6fd0813dde2a087f938c5f602411afb56087dfd5cb4fff6679a114c340f3a59f6b3e1813373bf3ebe30cb5e8b285a5875d1b5a9120db80f70310201559f89bb1df147961d1ca4fcdb5e8e84cae082\n\n# tcId = 264\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 3081880242010efb321a347625343f5126ed8545017d799eb103c75558922eabe44211e8fd834655dc2ec5bee9bb3e44350eb6885e0ab974730222e55f13ad27c066722fecaa25024200d62e3d7ff9215369aa7da818db302e49033875010b2f9b73d25ca5b9bf2c62ed756686230cd5f4a37c1fa881c97e623919fab827de5995ab456a1fd7ac7b85b1f8\n\n# tcId = 265\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 30818702412f778cd552f54da5f567f47e6979872ba130dc0890172bf3b3bb952f03c64bc8783abe9f056d60e1667780f5ea88f59ef33c735d540561a197d31fe34853a60a52024200bd2816f06372f2e3f2582d53e583e133a551aaec04ddc2fdb7b8131787e73e4295ac28a9604a2402ed5b272cc03be57dd4a7df84d9ee24cb0c2bf124ed927defee\n\n# tcId = 266\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 3081880242012a459fffea70d3bfc13e9ea0abb10aae3910df604997cb5e4bb0548abd852abac6b9a32418c3b5ed4e7951ae88eecc0a2f1065caf24c6a814674e95682d9b493f2024200e2abd05c585e0c213a219a7e7d38b810d252ffea67650d4d1994a41c2ca325bb964920c6c2545381c45ca3e1eca05e00514b366cb0e1e49b8c236d383b260b9cbd\n\n# tcId = 267\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 3081870242010f2653d94aa28bcbd667a5013f9b283d8487c44d093ee47660329398caa550ca9c9388c7aadeceacac1507e76590afb736adb3583f54f31ae25c9c717ec9f89b5e0241494448a7ffe4a4eed84b4602781ecef77a23fed116b1b791b8d2e4231b7ca2a7b6f06d132705932d446e61d344714ee24014fa5bb144a96572b3d48d038a55ad68\n\n# tcId = 268\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 308188024200c2da48552c39d94f5a45427ae9dcd891b65cca33e624ad2532ffa333666b241d873336fab7bbd7b4c193db4d865cd50f0c1d8cb5c14cf3f089ad42dd43cfff634e0242014f2070dcf860b96a45f2a6061e4ec2a6ad64d7d0e9fbdb25aa93b99941be280f5c70c0e32b6234df545bace7341af94c140c865d44fa8ea7ebe0fe53bda44645df\n\n# tcId = 269\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 3081880242009bc6e74549b48a1e7c181b179687fb27d6e9acac47ec34b1b8bd044d329320544e4e568e67d17f4cda2f0a3fe303d561a11fc0c981ed9be2fcc6d397a43ad49e10024200ff295e43fec5b68b00ce8044434bcd17af1ba04a74556353e258d017ba26bed67f458fad5dd8e7d2734d56f59928c2419441a9e8c0573db3586ca056951ca935e0\n\n# tcId = 270\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 308187024120963638d0b058494254efce57778ac65e5f23491f7adfa72e4713b7c03946b543c014d9660d855246f308085eeee495cd831b7dbece47aea48e90433bd0fe818402420161a4f4977fecae92d4f67e56f3338c7a9b820b5e05db1f28d05d71f7e5f36bc63f6edda4d3c1b2d73bb8a30c4d745b73e634ef574cf47656a372e3eb42cc038850\n\n# tcId = 271\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 308187024201bcc5858597ce8d4dc5ffa6be33f7d804f2f8ef59c5db9301785e0cceb7ed57462f455a465710c7414570c9a35a3100bd15fa40e3ec350d1f75406c2a25885e9d76024143757d282fd1d44c253f9a05d8142c29a6d63c0a1f5508431bc9fb9b60a38b7f414e730e0d59b7b709706a67022e1922fe88b182a57443c58bd06a69ee7814bcab\n\n# tcId = 272\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 308188024201240120b97ea67bcbd0e412d87137a13e347a870a2249375fccf8c004da35e592620774160e7b82aed1f57997fb015a764d014d4be1f389e5499777054576e7bf000242019f157ec3a2410853274bc4d8e7565e9eaa5dc47d5e515abc86c22fa6dc215482df5c0e2b885f37baef3a6ae83daac930617a5fb37bb03ce40f06fa4ece26cbb11c\n\n# tcId = 273\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 308188024201a7536d55876f8392a6eba18f075118c273015844eb3536c727c004c1bf23067d57e8fe31872f8bf839640e80e06aba3c0a365a268cabc2da96d84550a569f17f9c024200e840b6a7cba718d91103faa134c2f63763f3b6b91db7ecbd3b10f10171a875712cb9384325411beca9a3aa87aaae3902c282d2dedaa1cbddd40ccf0d29975df22a\n\n# tcId = 274\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 3081880242013f72be1c331214f45007ff72ce54afce1c910a90e4ff3d176620ff3ca976c2b62d0cdf5d1134290ee97440715531455dc29818828094d366f959e1adc7d7e98ea4024201e80ac38ba69f3e53116e5432fbdb3b1e7ea1b43e5f86d1c0e3d1c469442dbb406ffe524f0685f71e811d94a9efa9ed38ccd9213f983983035f2add0b8f2fa4ae23\n\n# tcId = 275\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 308188024201aceaa6d567ddb39ba52d297e60e4a814c9b476cab568c09d8ace878d846218dd2b5d2a2461f0d5a56c12f0bd803e3253dc5b387b94e86589cb1d0cb809c7071125024201b1fb021b10b593cf9e793cf22a88bde9a4b92f9e218094f270b093e8c6c95aced43d097bfa3354e6b98d195c599c2e6f13351c63c28967e08b7e497e120665c663\n\n# tcId = 276\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 308188024200f6ffb5dd786326041e74564b719d38924a28329868177c13463cff90c4b09d3d2dbc011281cc78aa0e5e8656123bc50605601a547bb4b1761f852a120ea46df9df024201a407fdd445614a16a5ebd4ba075c6c1d7564f3cfd477d6b2620abf18a5bf78311282ea45b9bff813f24c3c7854e6091c8055144f9592fbf2e456421a41c555d7a9\n\n# tcId = 277\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 308187024201a15af4d5ca3deadecd75ec1baec31c8d43fbc889466475e6c23106db4e63ab69003f56d819ddfc5a673c8289f9e6df806b07af57a2541af694e6489734c8eec837024169c35433a3217fcd738a65b7da9e81cd81f04f0ef060050b9c843e9e808d8b8175f3adaefa105d215ea9a46bf415fe2ac180958fcdd878d54f8d19d23e11b76d1a\n\n# tcId = 278\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 308188024200ba899f94841db6c33b850867c8906b436be3853640dbfc863197fa1e5a55ce25240f2be498b9bdcfc0a89dbdca192d8f84ca3c44e5e0ee6f83e7900e085e1bd48102420086e6d558de8d8f014a85cb4a5f6908627e7a1acd70581d9d9c7d14df44d437aa09e5a10a0b760e98d46731f2512ca1b0240c602b5f0a2030485e34de9c6cd08e7e\n\n# tcId = 279\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 3081880242008eb5c92dbf5e00888b85e6bf6617017e97c04ae950dd731856b9dfb20e0c0e5c54284f411231fed1d071b321f78618d2a75c139663fb9db3435214cbac5a0dcb4f024201da0dd29d4728fe6331c8e2ade5045b1237664aed157db2a6cbdeaf5abea81324e28920a1c49c334b1226441f88e1a7f2c7e01d63e950d4378f08973db16b2e6161\n\n# tcId = 280\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 30818802420130779f943df098ddb5315cdca4b731c83472d589f4ba4d32c172faf6b3a9e4154c0517fcc5c432eb269b0152297f6df490ece59496bea8047e2f32d0b5f91e85ef024200c9eb0b56273114ce2e553341247da86b813bfd65f143a5562bb1c874ff970523836bcdf390dc196e67dd75cd28112ef74afd51b1fb35333be0505a012efebd4e22\n\n# tcId = 281\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = 3081870241593f0132f7b5c282355978a2cba73fd3bd5ce3272066d4ad9bd8bd8b3e2be0990071b3509ea445dd155cf97e294e2b8d1355809d880e10700eeab0eb8ebbaa4f0902420107eb3d5ed75cbb9bcb9278f2266c14c57cf703cbd8f7c7de45c51f0f3baf1dff6bb92f1cbf89ba649677bcdca776fc57f587ce714e2e43e6cc523f0d0a286d38fb\n\n# tcId = 282\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 3081880242016ded17fad10f945e3d953b4fd3b72898c370f15164bb7712673385c10bf3929bea293e08bfc30029a465138ad47abe604df807b31707fef55adf3e104920038e3b024200b76b212d74e4b6eb994d926e9e796975235fad90e339a21a329e6eed3fe96b6d3c0d5426e8464c4a9ed5cbe08eeb5e490f72e9e0406c0d76ad076b476d07c0144a\n\n# tcId = 283\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 308187024201f8624ffa5a6aa8d9d04ed1c2272ea55f5271ca2cfc9aa6a3778a0b8a230f611e5d65af18d8251a0cc4ace663878c33205239ee7e8388cc0a040ea5151507", - "2e3f6102412c1e61197229f40e840ea37325f3bd87a6cd32d080bd61bbde4b072cf7a0c8a89d402cd9235c26f19a084ddceb1cc0bae4006251ccbe10de3954e85a8c5efaf6cc\n\n# tcId = 284\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 3081880242012b01c6601ceca9e58e8abb85d1f6663df70cee761a756b77e45294f09ae609a6b76cfcd67f60e47a3494cb85511e33d92a8d297a1b89e9a9038c0c5b78c3a3d4ca0242010ef5d2fab59bd42e2e92a2fca7a975b959dfb372519330defc8fa8954bfcfb397ba939edb6a944a2ce9f6fafbfcda6092cddf628801f6dd8cd40cad4d809d5c1bf\n\n# tcId = 285\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 308188024201c54a330b9dc47eb88dbf60c9ee49f2c7518c0a78baf642c74105fe283fa4c357ff22931ef42f92d16d6a0b806ef718539d21cad71955a530e21cab49a56f561673024201c2cc32c5a4d335c48d0cbb0407fb7e4729c57251afbf9534c5309b94e6aae13614a1f2514252f48cc7f143ee761782f8dcebf2fb490e08fdeaf570a7ed9d287da2\n\n# tcId = 286\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 308188024201467b4511b9d6601da3557b8ed432c14a80e5999847be136c756a88dd5134689b5ab70d0a2e8fd8d6141e2b143282f98afb93b7e17609522dd9e64c9e4a31c7c34f024200f50ee66a1dfbf86167ba5968d4ee3506a7cffe0f521c1bf830d0867241e345d319e77eeca45858bb3062acbf8d100bc6bfd3127d57a7e91a8199e05052b8ccf304\n\n# tcId = 287\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 30818602417af90f6227750f917d65b1c60200c755158bb783a479be6877c59ed89ff595fea3f3a4137591aab23826ed385bd6156277364b5d603ca272259083e6e9ab5db3f9024170842eb62c894935b82da15ca611d9d754ef57859e0c912c0358d0820f4940cdf5360f116a7547a81bf65617f182e597eb1007e26c62838487ca021c3829a590db\n\n# tcId = 288\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 308188024200b0169e68062caa79f99ec0c72d83c4d0fc2a1c818665cfed1aba3e684392b9a95afb82ddd1de49e3fc3cb3889b4f5a86a7bdf944361db2cfa57021a7643fcfce9502420115ec784e042436892c6cc1bede0f4b7b6eb24b300b1f0c674999a6da816dbefb2d53f90b0dedb962a085e5209fcea50311130800d2a9249d279c7bde2f88622512\n\n# tcId = 289\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 308188024201de4ed1ee81d5cffcf8256a06858cba5eb925ee68e3ed848ac98071b6e30c3b44b102a2de8117cce5b4f9e42603225e0dbcb3fcc171d1492e7ed8bcb6ec286c7de0024200fd1e93bbc8b8adeb7864a2bf8e29d6f9c0966fe3d543525bf268b57cd6fa8852bfe0d2750726d5445560f2fc211aa7859dd3ee10078ef907e49cd64326b397e01c\n\n# tcId = 290\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 308188024201fcafa62ee6275443d7277fc46e4c30b4db845ba45b5d6b54faf47bbf921f825f6fd0f23a38c0c7f4debc33add282afad1154c8707b6e18cd65adcb07d32915b46202420087a27b2bf3c35d18fd397e0cd7159516cf563b98441e030bfde93ceacd2c4e41228b7b33443ef0a351ce553d6d1d71c12092df796276175cd779b8090c4958b391\n\n# tcId = 291\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 308187024178989628acfba86d4bf28beeb9f44001fb8f2d8e245320a19efdede31eae3ec8b496faec30c85e8f63f8ae06046fe1d1575321fa04953e460f6b1386dd5df94edb0242012aba3349732e21a5bb27d7d6facd8c7688b9d0d0271d6a077f9d6d82db45b5456b767f4b9f1a80f487031f9c0b3ea833c63fdf9c6a25e6b424c19c2e55305d7a0f\n\n# tcId = 292\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 308187024114a5a46a3ba415f6e8c566ca1b15fa2055649687b1a9fc84cc0fa8631296898fe014e0d45927e4271396baa4cfb3675669b16e76c339db3c0edaf61337e8bebe91024201fb313129757f76754b60fdb1e4077f9fe3dd62c8bce52190cfeb9c03021cc92f6d7d1302b8a84733486bf769ae94d3db4b60b6df28fed481d3d7c510299f0c319f\n\n# tcId = 293\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 3081870242008a3250eb5f28b598c4a42890d25f6af84082d4376f84f1717e5112a76623e6fe0d207c39463d20bb86341bc26c9f68bcdf794671a01f90465025f87a8c52137edf02411ddd317f6622d9b032223f76765ba6c9116ae4b43a1bd357bc9db6fa62f0867dc5d8f781f08c1cbd49b4424fe8c22cfd1dcd07cfde7b3598342442589825aa67f7\n\n# tcId = 294\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 308187024160ee161741d5cb2dd0ff2cf9924aca0376b1544681627a31688e4d8b3b63a01adbb417ee113b9ba8d4d13b7b4e1b14b51a24dbc3f099b068d916aa94862ee081b40242015caff8d30141e1c163e3ec62b7e14874da624a6d8e0252d8e829860e5a49d3732321b625262e5c9b1ef348c3e7cbb1de8227513f320637866785e97e1931d35ccb\n\n# tcId = 295\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 308188024200a1ef8229db9f45da38ae3b6d601110611e209878bbd03ac2a6de65e8402957c669a115e3f02d085fe2d031c61324b77052ab346b4b1a437b58062fb36f9d56cf45024200cc5c0a3b68970279ae16880f6ca579d0171a827e99a46aa82b9242dcc09cb0b22a44ebcfca84293e6d21aeea492f00ba3157c5b6e2e4caea6a1c09c824720552f2\n\n# tcId = 296\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 30818702415aa0c8a378c4e02bcc2f56c2c365ccee424e2973c28f0daae8f4c3f0d90b421fefd456e749087e0c667c2a7147bc67b90c696244f216b4d9d7418eadc7d06ef1d2024201e28914bd341f526b041128f2d251131d8b2c65847e541d65adca3442962cddb2a71c64fae39fdd56e41686ad632f99c6038d8de0b3aac4045e0a961efdbf4c6a22\n\n# tcId = 297\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 30818702415a05f5366c8b8be28654bc39a6671d1b1593495e445c07c995c3be3e168ffdec92e44288802fd455007f8746570d93b5683e4d40e9d9e59de539f0e62bc40d92bc02420187a47d8f70adcc5e10267b8fec89d7011d9985427645aed19a8efa2d1189b469cb7aab1998e0c1d2fcac5a5054d79d2ec1c9a00b183dc9af20f555a1140be2dcef\n\n# tcId = 298\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 308187024201e213bcb8b960b1296ae176993b2449bae556b6d90df2f07fb08ad8fd60e3b7fe6c73f9c8a7364417611d60119c550261c54bbca8d61e264130ab90187e27d22dbd024134f519382cfacfd07b0a6f3aca117c13d2be725d2f9ee4e5f88739c99121e63ed7358046bfb1575fc73e1ede8339e46c5139843e52e9184bb8c579061a154a0b8f\n\n# tcId = 299\n# special case hash\nmsg = 37313836313632313030\nresult = valid\nsig = 308188024200ed11ac7efb1f29ee64108a5e2606fa9af3bbc12d1a952e47240d5236df64f5b2b77a0f7a0a73d30d0708b5b23ac6d584bf6997d8851623793655dee8774549b829024201e1602a2cae7d3212df47eebd12e2fe404851201101bbde702be9d74d040ed998e79a09ebf6d055f94473b1f8d87c99aa165bdaf0a5f270d46caabb8e88bfa54103\n\n# tcId = 300\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 308187024107123c45e6e9338bc9fe225cdd96c5ab36cad5c06163f44f6bd903c7594e8068ba9bc89f652ec31b6e1298766b246c1f10877f1e3ec9829b0937b8d36e3c1ab2b5024201688bbaeb188b5047be6e8023b14fb121eb1451dcb19f814f5f4dca55ff95128011e3bae505a4d22166d00cb7cf14130590335ee923dc5db3e736832a128a067aa4\n\n# tcId = 301\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 308187024201264e3cc4fb802aa221d0787cd0cdf44eb6568982a00a6639f15238af36e894b14f45f06f8c2180fdeaaac77f674e056d1928cbbdfc4b2ceca0b35345ca07bfff7f02415c2dedee6b3aa096fc47ba0991a077ef4d5df20d8eff1bf8354412b171f08a98cea1704c8189a7951b0e7a8270ccb285b8db8e35285ed926b19c1eef07fdc05ee5\n\n# tcId = 302\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 308188024200ca3814747888751794b0488955e2aee07e5fab4b9872074aa7432698e7c83b8079773734df1bc752548a218fa59a362e0657b77ae7798ef4a7a3873256ea59ec670242015df8f1f16611c960d56647424b97936c8a06f62dc3a95d66bf4aa378d7a9e17d2afb53565780025927e6928f5313428f1d6708339787c8f460ba18457d4c0f521f\n\n# tcId = 303\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 3081870242017ba871aee34a893c4ded7a2a546da0d6867d428497b80fca7eea6e51b73d6411aff7609743e6242b6d4d3736ddcc9ee1aa12c8b62de5382e5c33d1fc4853e3e47d02415feb9d9f8fdd44622e4f9effe73fd9b467d355fd6b8de205527f722ee2f5a15eebd59ccdd7b57da26cf953f78886db5a6e5bdd0d56c9bd47ba2271f77687a64b63\n\n# tcId = 304\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 308188024201840793684765410baf26b66cbcf7c36658d6c18a2f750c1225520e9f3a7c1b890583f321d4e48752c3b3116dfef733ee386c52a53402acea77cfad1db9380110e6024201b51985a306fcdbe3692181106d7d6308873912d003946992098bc98b4261fd78869ed8218849459780b6079f6899a47fcb9ea4874d1c08fab82c6f1e9c9aaae245\n\n# tcId = 305\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 3081870242012276720b2725ba556d06be39cd16ca0a0351d8f530913c4f0cfb71fdda74b83f02febddc8da0a1f0f910d37d3f5332c027d7bd4c38fd08ebc770bf1252078649540241637e70b06045a86e2f329f907e079a785d7f8649541860322fb8b64b9736363f90156b9a5532d808cf2af33b87ff970c02e648dc4f1c90ff0704028ec2c2d9a82d\n\n# tcId = 306\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 30818702417aade608b22c77245734fc5c4be8737ba24dc2ed4321b58", - "124ae46a77ea7befaa5bcf166cb966aad007911623af10925a324bc3c6d06f24d0e2e7b2c7b8468b8ee024201e9913a412300b3980719148de0bb03826184aabd58f19659aa8ca18045f36c73c97df3d12b921de510ffa96ceac5454b801c86c55a06b2d771fa77bca784332c39\n\n# tcId = 307\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 308187024201eefc7b6c1468ffa7d60b8408bd44c64a3ffaff298168c5016c6f504031867ea14ae48c661b8124418b4ed6ccc32df6bac6d0a485b1990236e15676268b7868d2760241515d48436afffdb65caed737116a861974b734bd1903e37dbbc231a9db37464ed762e364cac8b32f1546d6de37979fa05f8b80159a0f747d9470291af6569d6d94\n\n# tcId = 308\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 308188024201271b912ca055040c227955df729757654aa9bbdb73c61ba14155220e4e7132319f6fb0ee94f2fbe160738f1dce2ad690845c38d962db4fda1598e93270da84a2bb024200b8907f041c3b19b9234ab555d0b48325b0cd330889a53276a1e913bab892b9c05cfa889005b14ee2730220746aecf12af911c5baea4be377ee76c0eeaf47b7a712\n\n# tcId = 309\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 3081880242016a813db0f75f9047fb11f3e19fc1688c29328a54f56ae30c1c9d9378537bfc40c5719d084e49a3b4aea255f5b7f6cc775492b5371e6b67b2d6abd5743e10fac709024201c258ffd830151bfd41ccdabb86b24af846612788b361c196d24e997ccf3f17d4452f63d32851a483072e6908095e5c49bbc241a0417749b097bc1ca0e4d127779b\n\n# tcId = 310\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 3081870241156a04c22ea5bdb7871124f1117301d781113ac4c9d4da05fea536e983d9261d25dc97006f8c78de23c788718557cf6f98863994af2086f0be3e8aa8812dc3a11d024200ffca96b04c56a4a6ce5d22b36e44d3b974d520e7f7c0f9d69034f9e59e0bbdc43236b3e4bfb0f6bde8802cc5cd6022cff166f4c488d64f38d44e3c563da31cf6fe\n\n# tcId = 311\n# special case hash\nmsg = 33373033393135373035\nresult = valid\nsig = 3081880242010913540ad73ceef7314d1758264e1d1525a371a7b9b3086971599a6b749be4d6ba69269b089508f6500dd925aa89a7c7cb7185e0cca7d2ee5664f22845d961e31702420135256c79ea5e5768fb3a55e2899b12219b8f68953ccd98c710b6a13de0f59786f4331845e65c7dd6340023a5e280206ca31416058f395fff4bb5de411ff66fc018\n\n# tcId = 312\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 308188024201b5051ca0dd3b20df7d8c5b92cb42b8a204f92fb4e58c612f43d3800de8c0683c427e832ce622156747052b81bfbf6ed5fa177b6d47858ec8478f6c9ca7948fd511024201fe5710fac0e9d3e2b3b83081b28b194b822d0c13397bf1516140cbe3faa52e908848f69789a741b9cd54d703a94577fa813e2f2c75834807401ca010fde5328317\n\n# tcId = 313\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 3081870242008d3c8f8e7ab74d49e16a4c7db3a393fa9567777e373313667f9ce32b1b5e648debffedfd2ff5345ca1b8154c18c8b883957d911e41336285f86261c3ee225fdedd02413c51b84c2c9a3feb76a6518634b6f09c0dde8a9d08dec0b3d66135cc1bdb0a80fd69636104af69de8f4062646b29fa3af685ec82704cef706a18c59ca7eca0fb56\n\n# tcId = 314\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 308187024201195625a64ac11c4fc1fc479ef80430eb85c1af77f8a197a17e009569ef6c41ac6f35850755379f478d8928b154e3baaa29e92b481ac04dc72f3728b4f088ff37dc02410d55c7067877dd1302fdc6bb69b7b7c024e4cf3a0e924102d744ac52366d9d76d5855d3da228c4b67bc7bc4b2a14e7999962cc9bbdc517fc24a823abf584b8f56e\n\n# tcId = 315\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 308187024126eb68bc0fb7664c35bf5762cd532dce33b0e396e97d6f4143dc6e1e766c836e27c069da9ea1e74e0b03d030cf8a81490508c1c728f86e59282df94de8d8a0dcaf024200a9fb584b712986f19ab7568693df278cafa43272dba400ff333cf48b5556e6e78353a665605c70b6fd0f18f30b850e1a47cda42c4c924bca80102e6793be9a8698\n\n# tcId = 316\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 308188024200f3d34e36f9754dfa8eafab160ca96d91c7f4f388ec82ac33784026bb6c6a035719eaeec3ee511fffb22dd5d6ab819e6c6387192d6c3a6e9249ead565157e323f62024201b5786b1d662d26fe9f69c370d2bc18882abef693c8f17100a02725de7c9f03602fd53a9208b573b3b7b0b66db971767bde835f9e8f42ada201e7b7391b86fe0294\n\n# tcId = 317\n# special case hash\nmsg = 33313331323837323737\nresult = valid\nsig = 308188024200e69c833b604075e9b28a2ff73a56a32e1a247ef9ae01e7a0e471f6015c2b86eb864c281c8c93d2acf5653ad05bafab2f58027f37513eb8569f50bd475e770e9a81024200b9c9d6ce09b53025bfcaa7d172ae41a9b636aa4b80a930931fc99e5e2aa23306f19dc57399b0431e72440a1f4ec7d5ca902f0f7b81c91de85e469f992fdfd4c52e\n\n# tcId = 318\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 308188024201c6b8b5cf3c4dd3d62391f18e97eef3aa6ace0ae2c6fc97a561cb8e49c087dbcf8135fa433b566b3385cb57202f1b12164fe62765ef73b72a94e7a57870989a498102420185944434b83a0d0fb4bcdce8ddaadb30a1e440815e7674562df9c8bf711222208cc346b9665d90abedb437912391505dd5d26f0178e7c063790f5518f47d1b05c7\n\n# tcId = 319\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 3081880242009f351a41d5375b8993e90b8d8a65bf01d52d14aba1dbe49cbb4ea823804f2b533e0c167903c8bbc593297c18f309798a544787d598074cbf56ef0e5022520912ad024201b892740a57204186bd5f434f72d1534b4289f8f7114cb7b1c9cf4541d754f314448cc32deaf35608263488fdc7596f7481ec098b36f8e440829194becc746c77f5\n\n# tcId = 320\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 308187024201fe24ea831199e31cc68ef23980c4babd3773040870af8823a19708bd0229adc1ce99d02e4d95224101e3e974236f54df86051fa1e9fd21380432633b2495ab782a02410efd1f2a281f967e7b09d721581356a714c499f9b14f781992eb9ae7a19f6825045fdc6d9d763f44e1e7c91480a678a1d8ecf6d66e76cea3505f65ff78cff15cbd\n\n# tcId = 321\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 3081870242014c6ee9de0a2a0b60c981831e0acd6636b46ae134fedce61b0488112663b24e1d7e74e227fea883d26b68f21e4135ba0e2069bbe0d9c6433c3908fd5b00182894b002416a180a493182c6bc2a09d7e17ff5d62015293f1e8ae205a16fa09042b0a9af6794cb377f4b8b1175fcee5137c234900f735c484feb7da4cbb405cf9e5370fe4f49\n\n# tcId = 322\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 308188024201044a45853ada17ca761acc7df6d1d380252cb0fa66124d9278a5ed8a4a60453bc71de1dbe32b0261165948823c461c7c1eb1714ec1dbf66fd602c7a47446d1dae1024200f8b27f7c71e37e4b440d2c86f1c1d50bf7c53d3878ed27e7bcfbeb902f769f86d6c3e8820b99f890050f0dbebd2132e84626c5b16a8c7ffffc3a30ace69dd15a11\n\n# tcId = 323\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 3081870241676a381b18d05207cddd73b44e4dd71449985c0fa7de1fff43ca5155139a1a09e5e3fd754d86ebbe32f6609f6e906d48d24790e494343c61faa90bfdaa4f49fdc7024200fbc1c891bf6e368fccad51cc9b2c29e8e92b658e88c0d23285af269aff6702a55a0ab16807e5523b6637bbb004727f6f55c51ad4cec8c924f9c1feb24601aeddef\n\n# tcId = 324\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 3081880242013c9a575382ff6881c908fb5184be7baf38edb0b06008592558efd57dd8fb9993c893800a6ac8c6d2e34ebfbeff43e63263f133868d0ac7a838f69aff26d60a38490242009d22ae7bca8a75a53214c3eece437fb28e05b076ec704d751a28a7ed7e529d5c5338be8c724afa547574a17f70510b2462748a53678e39752a688dc8cf39e886c2\n\n# tcId = 325\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 308188024201071ce5a19a09aacd43c7cacd58a439dcca4e85f94ea1d48a60f298ee01bb3eeb11d5daf545e7086486f8e4b518a15be69620ab920cf95c5c15ff178c903124fac3024201ad6eaeedece9a7592bd21508b2720f1b8c4bf55637b1e8a5ce5359775b980b21eb1d33e8ebf5c0b3d7829152a295b8a9a1343c25350e35f709936accc8ce08b0b1\n\n# tcId = 326\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 308188024201bdae499160f4cc6cd163cf110bb1f9b421e8786a8ef9297e4b98fd508a1d14c50617c8d1a3de94fc8bd6c38055e4906b20fdcab6ef7bf9e7e5c98ef3e83e38ec3b024201ba867b8ee72bb7304ff83fc2d734749447420791d5609e0515de4e05fa70a83385a853cac6c47a075c8c61e4b65b9774574101cf4e081770f83ae1b7e727010ba3\n\n# tcId = 327\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 3081860240269fc7ed89e554aa52b3875dc00bc140c1937d4f1b32e29da41ff241cdb9bd3058fc148f905982b8717b035e0db00ded7ebcb08572ec76bf0128411145d73091024201b4bd6bc4ba7befd5c305e018448a771b71fa1a11b3a2c6185dd6b8477c35eaeb4733fecd90f38ecba628f27c02f809191e993e1e7ff590383e2ec2afd08020b267\n\n# tcId = 328\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 308188024201a5cecc0e572f5ee4eed6755d3230ec5a933c1fb0e35ae771a1fcf0dc880e1c159dd5b6d192dc377505048b7188de3feb815a81a4f30d9226cdc85f751dec1a0410024201ef4a743e1e16f0a60201cc1060625ede6f0936e7af90b42736281e89fe7f2de6aa3f25c68576da705d8b3f6d5d8a34d3073307ea198d1cc8d72a18ef25e90f31af\n\n# tcId = 329\n# special case hash\nmsg = 3134343738", - "3437303635\nresult = valid\nsig = 308188024201a92b43f57421e54d2528d305e7d5aac9a708e75a7d6fedb47908a4e3edcabdd836a2c4e8436f3b7b64895254536174d88c6dca143699522bc2dfdeebcbf38eb90502420093b0b99a89de72aca0c03e12724c2be323577a4629cb47fdda5b12b61ace0b9fdb97549d3d2a1dac15da66ba6389ee54cbc82c995b9f3aa3ae8474f4bb4b52da8a\n\n# tcId = 330\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 308188024200a0400f255174ffb8548c29f5faa70e806bb6f6ca08a08753c85c5d145a555cc8e2df285af9985f2e729d4a99a734b7e7fc95560d546a067fda03529f56b2fe66bc024200d7fb60271d22ecb5d8ec904a9df1a416be706ce539e34650b8fc514d1dd7afebc1344c0c68c533c5b20ee249a77c075293b2d7efc8731c2e3619be59da871bb083\n\n# tcId = 331\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 3081880242019207c7b645aa45c2722331f46e094f2eb0052075b8ac9414ad77baafd01d4d1fdc68344136fbce01edfa5627bfb8f3c128abb61072c74802192e89137c68d0cc31024200ff15b0218f81f0a848742f683cb4d1b7c517efdb8fcf8ac6a35e4971b35536851ed68de40a6e1a4a23bddb5b42efca23b91e91959a4f7e2afa196779c96c6c654c\n\n# tcId = 332\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 308188024200aaf119702b9985354bbe3f6b6cda8c46151af4202546dfbe04d5f0ffd18ebe7b29d616f1c40376a412a52f4204b5a13e7f3e4304ead566fc41bf4b5fc0b84c8a2d024200d599deafd4fa2368cd072b854a3d53425d06adf3573e886b81248a7328a546ddc41caed38c6b1ffeaec9a98c940905cbffa87b936da980d4a9003da41e0c59c92f\n\n# tcId = 333\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 30818702416c09a59e71cf34f983f75dbb4724c4828a93021cee8fd7d92af6941ca8efc9c5ddda7c49a0e1777225782e09313e3091f056122e585c4eaa689fb2fdb1cb7848d80242019f0c5ff6b4638f4c33916db76f9d078bfa8f9e25ae00348e46bb32d777aa26155b82ea73a9e4e2f21f6a65c73ed6c6ab2101cef3524d45b9fc6ea1292f1986acad\n\n# tcId = 334\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 3081880242014e791c42f3998458c5e17f895d25c85cb419195d65e5a0b9a42cf13ddd36959c73460f54aa840d2254355c6ac626f440cb3a84fba632262c9dc5cab31be7da106b024200abb97b682f01f45168403613a7e2ff82bb4a9fc20952a35d935428f71ddcc799c6d9085fe3230d72261d73cd082e8108523da7ba0b1691ad6ea63f5f4e8e8909f4\n\n# tcId = 335\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 3081880242013ded35ddff2f97780bbc60b8cec89855a35183a48f8fa6bbdc183994bf89021118cc019629df72112b2c529c023e7a5cfce253f7fdb49105d238680b64275a213c0242009c92e7a0f71608e8d8cfab3f850f7fda1a1a1d056e72254469afe5ceec3c718e6a462e1346941eb08c105501647502c1a810a29df8b208da6a5b296b2bd1e98137\n\n# tcId = 336\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 308188024201d0d29756ebff02b71674fa4eae37557ccd51a036fb1eb0b7121b405e7fabd60592927d805b75815af1bca6e9d6c5484225bdd0ec7a40735da972fd5ff645d86f1d0242008b9fe55357dc118070cf898973a64e7554b734e900c675541e20332a260ca51a23248d9b8f47ded811cfce556a06a71ba5dc5b873075f264a6843e675caf06a534\n\n# tcId = 337\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 30818802420165fb993f39d350ed60c8483dd6e4e6736591dea974ecd8ab027d3839b752322ee220d40bb6fc0b0d5a8c42928bde50f659b18f51f42fb2b1aa4583892a9114a0c3024200a8816c09d47138bf662da4ba25caf44e24185696d4914a7de2b2535f73b9afbd3ffa9cb0a86a115e4d9ac5be48cf7e8fe276466abdf17127bcc7aaf4d096008ca4\n\n# tcId = 338\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig = 30818702410b901c88ea699e715f6db864e23a676e7f7f2415ac1f850f2dde1ad0d3f9c92e8c5de66d45174d619955fae4b0dfebe49c583506481d28d30cbf58e2ac49f370c202420144c97b688b9ecc07b84c68095267e17e48232922756609e9859d18d2eb7844ec925150c39f2b3a255c882be705e0a8e30e68e49fe7914dbcc3ccfbc1d467050f80\n\n# tcId = 339\n# special case hash\nmsg = 36323135363635313234\nresult = valid\nsig = 308188024200abbd9e77ef1e2a36c6b06f063d93effb8e852387a94bfdf8359b5c18708f90d9f4e9749fd45347f637546b08733789c988fda4f0309551bde813a0bb1a232adee102420191165d58d153fec68f5cc83bcf5891e2e0ca9681204876e872453e9ebd45870b6878ee437e4d833c6ec54337b779acbf9f8202df510d269a710d0c43e4e07b040d\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400491cd6c5f93b7414d6d45cfe3d264bd077fc4427a4b0afede76cac537a7ca5ee2c44564258260f7691b81fdfecebfd03ba672277875c5b311ea920e74fb3978af50144a353a251b4297894161bae12d16a89c33b719f904cfccc277df78cea5379198642fd549df919904dc0cf3662eeab01ef11b8e3cb49b51b853d98f042600c0997]\n[key.wx = 491cd6c5f93b7414d6d45cfe3d264bd077fc4427a4b0afede76cac537a7ca5ee2c44564258260f7691b81fdfecebfd03ba672277875c5b311ea920e74fb3978af5]\n[key.wy = 144a353a251b4297894161bae12d16a89c33b719f904cfccc277df78cea5379198642fd549df919904dc0cf3662eeab01ef11b8e3cb49b51b853d98f042600c0997]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400491cd6c5f93b7414d6d45cfe3d264bd077fc4427a4b0afede76cac537a7ca5ee2c44564258260f7691b81fdfecebfd03ba672277875c5b311ea920e74fb3978af50144a353a251b4297894161bae12d16a89c33b719f904cfccc277df78cea5379198642fd549df919904dc0cf3662eeab01ef11b8e3cb49b51b853d98f042600c0997]\n[sha = SHA-512]\n\n# tcId = 340\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3067022105ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf5024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n# tcId = 341\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04015f281dcdc976641ce024dca1eac8ddd7f949e3290d3b2de11c4873f3676a06ff9f704c24813bd8d63528b2e813f78b869ff38112527e79b383a3bd527badb929ff01502e4cc7032d3ec35b0f8d05409438a86966d623f7a2f432bf712f76dc6345405dfcfcdc36d477831d38eec64ede7f4d39aa91bffcc56ec4241cb06735b2809fbe]\n[key.wx = 15f281dcdc976641ce024dca1eac8ddd7f949e3290d3b2de11c4873f3676a06ff9f704c24813bd8d63528b2e813f78b869ff38112527e79b383a3bd527badb929ff]\n[key.wy = 1502e4cc7032d3ec35b0f8d05409438a86966d623f7a2f432bf712f76dc6345405dfcfcdc36d477831d38eec64ede7f4d39aa91bffcc56ec4241cb06735b2809fbe]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004015f281dcdc976641ce024dca1eac8ddd7f949e3290d3b2de11c4873f3676a06ff9f704c24813bd8d63528b2e813f78b869ff38112527e79b383a3bd527badb929ff01502e4cc7032d3ec35b0f8d05409438a86966d623f7a2f432bf712f76dc6345405dfcfcdc36d477831d38eec64ede7f4d39aa91bffcc56ec4241cb06735b2809fbe]\n[sha = SHA-512]\n\n# tcId = 342\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386407024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400336d5d08fe75c50946e6dddd36c550bb054d9925c8f254cfe1c3388f720b1d6500a90412b020b3db592b92ab9f68f1c693b8d1365371635e21bc43eaadf89e4e7401d48d60319dfd06f935fc46488c229b611eecd038804ae9f681a078dde8ed8f8e20ad9504bcf3c24a0b566b1e85b2d3ed0a1273292ff5f87bae5b3c87857e67ed81]\n[key.wx = 336d5d08fe75c50946e6dddd36c550bb054d9925c8f254cfe1c3388f720b1d6500a90412b020b3db592b92ab9f68f1c693b8d1365371635e21bc43eaadf89e4e74]\n[key.wy = 1d48d60319dfd06f935fc46488c229b611eecd038804ae9f681a078dde8ed8f8e20ad9504bcf3c24a0b566b1e85b2d3ed0a1273292ff5f87bae5b3c87857e67ed81]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400336d5d08fe75c50946e6dddd36c550bb054d9925c8f254cfe1c3388f720b1d6500a90412b020b3db592b92ab9f68f1c693b8d1365371635e21bc43eaadf89e4e7401d48d60319dfd06f935fc46488c229b611eecd038804ae9f681a078dde8ed8f8e20ad9504bcf3c24a0b566b1e85b2d3ed0a1273292ff5f87bae5b3c87857e67ed81]\n[sha = SHA-512]\n\n# tcId = 343\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe02420095e19fd2b755d603bf994562d9a11f63cf4eadecbdc0ecb5a394e54529e8da58a527bc6d", - "85725043786362ab4de6cbc7d80e625ae0a98861aea1c7bf7109c91f66\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04006f8fadedbae63701072c287c633f9c0052ea1e6cd00a84342cc0f626210071576abfd0875664b0746cdaf2745effc18d94905b0fc9d2cad4ba375c0ea2298c8d1c0150d128cb62a527ae6df3e92f1f280ea33248711ffe4b35c1b162a9508576860165e0ddc361d96fafcd2ff82776c743b9cd6845db61eb56739f5c4ef561e6c20d8c]\n[key.wx = 6f8fadedbae63701072c287c633f9c0052ea1e6cd00a84342cc0f626210071576abfd0875664b0746cdaf2745effc18d94905b0fc9d2cad4ba375c0ea2298c8d1c]\n[key.wy = 150d128cb62a527ae6df3e92f1f280ea33248711ffe4b35c1b162a9508576860165e0ddc361d96fafcd2ff82776c743b9cd6845db61eb56739f5c4ef561e6c20d8c]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004006f8fadedbae63701072c287c633f9c0052ea1e6cd00a84342cc0f626210071576abfd0875664b0746cdaf2745effc18d94905b0fc9d2cad4ba375c0ea2298c8d1c0150d128cb62a527ae6df3e92f1f280ea33248711ffe4b35c1b162a9508576860165e0ddc361d96fafcd2ff82776c743b9cd6845db61eb56739f5c4ef561e6c20d8c]\n[sha = SHA-512]\n\n# tcId = 344\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe024115837645583a37a7a665f983c5e347f65dca47647aa80fd2498a791d44d9b2850a151a6e86fce7d7bb814e724ff11b9ef726bf36c6e7548c37f82a24902876ee19\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04005e7eb6c4f481830abaad8a60ddb09891164ee418ea4cd2995062e227d33c229fb737bf330703097d6b3b69a3f09e79c9de0b402bf846dd26b5bb1191cff801355d01789c9afda567e61de414437b0e93a17611e6e76853762bc0aff1e2bc9e46ce1285b931651d7129b85aef2c1fab1728e7eb4449b2956dec33e6cd7c9ba125c5cd9d]\n[key.wx = 5e7eb6c4f481830abaad8a60ddb09891164ee418ea4cd2995062e227d33c229fb737bf330703097d6b3b69a3f09e79c9de0b402bf846dd26b5bb1191cff801355d]\n[key.wy = 1789c9afda567e61de414437b0e93a17611e6e76853762bc0aff1e2bc9e46ce1285b931651d7129b85aef2c1fab1728e7eb4449b2956dec33e6cd7c9ba125c5cd9d]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005e7eb6c4f481830abaad8a60ddb09891164ee418ea4cd2995062e227d33c229fb737bf330703097d6b3b69a3f09e79c9de0b402bf846dd26b5bb1191cff801355d01789c9afda567e61de414437b0e93a17611e6e76853762bc0aff1e2bc9e46ce1285b931651d7129b85aef2c1fab1728e7eb4449b2956dec33e6cd7c9ba125c5cd9d]\n[sha = SHA-512]\n\n# tcId = 345\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020101020101\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400b420fb1fecdd9cc5ea7d7c7617e70538db32e6d7a0ad722c63580f1f6a1f5537eb50930b90fd6fdd9abd40015f746d2fd8adf945a75621407edb6863588e41979e00295108a7e9d2191a287fd160bd24f498055dc9badbd61c6a89fede27b4f9d479d86a20b6dc07c90f008ebe68a0e0cc15a4a03b8cf990e4ff7ed6e3892b21c52153]\n[key.wx = 0b420fb1fecdd9cc5ea7d7c7617e70538db32e6d7a0ad722c63580f1f6a1f5537eb50930b90fd6fdd9abd40015f746d2fd8adf945a75621407edb6863588e41979e]\n[key.wy = 295108a7e9d2191a287fd160bd24f498055dc9badbd61c6a89fede27b4f9d479d86a20b6dc07c90f008ebe68a0e0cc15a4a03b8cf990e4ff7ed6e3892b21c52153]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400b420fb1fecdd9cc5ea7d7c7617e70538db32e6d7a0ad722c63580f1f6a1f5537eb50930b90fd6fdd9abd40015f746d2fd8adf945a75621407edb6863588e41979e00295108a7e9d2191a287fd160bd24f498055dc9badbd61c6a89fede27b4f9d479d86a20b6dc07c90f008ebe68a0e0cc15a4a03b8cf990e4ff7ed6e3892b21c52153]\n[sha = SHA-512]\n\n# tcId = 346\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020101020102\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040032b9a17c201aec34d29b8c2764e7c7f6aeef10fb61bf9837117fad879f8c6a22a300006d2018cf42b25898ffc9a1bf507352e59e6a52e627cda160e17ea2f4600500317a89899b7cb3a0d33eafa02b0137a0fb1b05102b22b676f35b9ff6c050ddee9f185609ffb7f5165a769e440792b75044a43e838690d13f884aaae888bf5f86f0]\n[key.wx = 32b9a17c201aec34d29b8c2764e7c7f6aeef10fb61bf9837117fad879f8c6a22a300006d2018cf42b25898ffc9a1bf507352e59e6a52e627cda160e17ea2f46005]\n[key.wy = 317a89899b7cb3a0d33eafa02b0137a0fb1b05102b22b676f35b9ff6c050ddee9f185609ffb7f5165a769e440792b75044a43e838690d13f884aaae888bf5f86f0]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040032b9a17c201aec34d29b8c2764e7c7f6aeef10fb61bf9837117fad879f8c6a22a300006d2018cf42b25898ffc9a1bf507352e59e6a52e627cda160e17ea2f4600500317a89899b7cb3a0d33eafa02b0137a0fb1b05102b22b676f35b9ff6c050ddee9f185609ffb7f5165a769e440792b75044a43e838690d13f884aaae888bf5f86f0]\n[sha = SHA-512]\n\n# tcId = 347\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020101020103\n\n# tcId = 348\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a020103\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040067dd456b52f82a5d4c4a71b3ea9302f62a852ddc04ad25b62fef1ddf657374fb4e80679ddf42d212f0711db32b626d8593bd70892e93ed0adb273157b6df187938014d2c78509f3bd6f7d0fba4a90cb456286e267f5dd9d967842a6086884d66c7b2a932833470c721a4a728cd8486d15314232d801f17e3a6fd7068bdebacdf82c0b4]\n[key.wx = 67dd456b52f82a5d4c4a71b3ea9302f62a852ddc04ad25b62fef1ddf657374fb4e80679ddf42d212f0711db32b626d8593bd70892e93ed0adb273157b6df187938]\n[key.wy = 14d2c78509f3bd6f7d0fba4a90cb456286e267f5dd9d967842a6086884d66c7b2a932833470c721a4a728cd8486d15314232d801f17e3a6fd7068bdebacdf82c0b4]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040067dd456b52f82a5d4c4a71b3ea9302f62a852ddc04ad25b62fef1ddf657374fb4e80679ddf42d212f0711db32b626d8593bd70892e93ed0adb273157b6df187938014d2c78509f3bd6f7d0fba4a90cb456286e267f5dd9d967842a6086884d66c7b2a932833470c721a4a728cd8486d15314232d801f17e3a6fd7068bdebacdf82c0b4]\n[sha = SHA-512]\n\n# tcId = 349\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e914b3a90\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040068d7b518214766ac734a7461d499352444377d50af42a1bbdb7f0032065ee6dc341ccf231af65250e7d13a80733abebff559891d4211d6c28cf952c9222303b53b00a2f3d7e14d9d8fabe1939d664e4615c6e24f5490c815c7651ccf6cc65252f88bcfd3b07fbdbaa0ba00441e590ccbcea00658f388f22c42d8a6d0f781ae5bb4d78b]\n[key.wx = 68d7b518214766ac734a7461d499352444377d50af42a1bbdb7f0032065ee6dc341ccf231af65250e7d13a80733abebff559891d4211d6c28cf952c9222303b53b]\n[key.wy = 0a2f3d7e14d9d8fabe1939d664e4615c6e24f5490c815c7651ccf6cc65252f88bcfd3b07fbdbaa0ba00441e590ccbcea00658f388f22c42d8a6d0f781ae5bb4d78b]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040068d7b518214766ac734a7461d499352444377d50af42a1bbdb7f0032065ee6dc341ccf231af65250e7d13a80733abebff559891d4211d6c28cf952c9222303b53b00a2f3d7e14d9d8fabe1939d664e4615c6e24f5490c815c7651ccf6cc65252f88bcfd3b07fbdbaa0ba00441e590ccbcea00658f388f22c42d8a6d0f781ae5bb4d78b]\n[sha = SHA-512]\n\n# tcId = 350\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304802020100024201efdfbf7efdfbf7efdfbf7efdfbf7efdfbf7efdfbf7efdfbf7efdfbf7efdfbf7ef87b4de1fc92dd757639408a50bee10764e326fdd2fa308dfde3e5243fdf4ac5ac\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04011edc3b22b20f9a188b32b1e827d6e46b2ed61b9be6f4ada0b2c95835bee2738ec4dc5313831cce5f927210a7bc2f13abc02fa90e716fc1bd2f63c429a760ed23630118daad88fe9b9d66e66e71ce05d74137d277a9ca81c7d7aef1e74550890564103cc0d95d30f6205c9124829192e15d66fb1f4033032a42ba606e3edca6ec065c50]\n[key.wx = 11edc3b22b20f9a188b32b1e827d6e46b2ed61b9be6f4ada0b2c95835bee2738ec4dc5313831cce5f927210a7bc2f13abc02fa90e716fc1bd2f63c429a760ed2363]\n[key.wy = 118daad88fe9b9d66e66e71ce05d74137d277a9ca81c7d7aef1e74550890564103cc0d95d30f6205c9124829192e15d66fb1f4033032a42ba606e3edca6ec065c50]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004011edc3b22b20f9a188b32b1e827d6e46b2ed61b9be6f4ada0b2c95835bee2738ec4dc5313831cce5f927210a7bc2f13abc02fa90e716fc1bd2f63c429a760ed23630118daad88fe9b9d66e66e71ce05d74137d277a9ca81c7d7aef1e74550890564103cc0d", - "95d30f6205c9124829192e15d66fb1f4033032a42ba606e3edca6ec065c50]\n[sha = SHA-512]\n\n# tcId = 351\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304d02072d9b4d347952cd02420100508d073413de829275e76509fd81cff49adf4c80ed2ddd4a7937d1d918796878fec24cc46570982c3fb8f5e92ccdcb3e677f07e9bd0db0b84814be1c7949b0de\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04012f8b9863a1887eca6827ad4accc2ba607f8592e5be15d9692b697a4061fcc81560c8feb2ae3851d00e06df3e0091f1f1ca5ec64761f4f8bd6d0c2cab2a121024440174b4e34aec517a0d2ceb2fd152ed1736bc330efca5e6d530ea170802fb6af031425903fa6a378405be5e47d1e52f62f859f537df9c0f6a4a6479a0aadafe219821]\n[key.wx = 12f8b9863a1887eca6827ad4accc2ba607f8592e5be15d9692b697a4061fcc81560c8feb2ae3851d00e06df3e0091f1f1ca5ec64761f4f8bd6d0c2cab2a12102444]\n[key.wy = 174b4e34aec517a0d2ceb2fd152ed1736bc330efca5e6d530ea170802fb6af031425903fa6a378405be5e47d1e52f62f859f537df9c0f6a4a6479a0aadafe219821]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004012f8b9863a1887eca6827ad4accc2ba607f8592e5be15d9692b697a4061fcc81560c8feb2ae3851d00e06df3e0091f1f1ca5ec64761f4f8bd6d0c2cab2a121024440174b4e34aec517a0d2ceb2fd152ed1736bc330efca5e6d530ea170802fb6af031425903fa6a378405be5e47d1e52f62f859f537df9c0f6a4a6479a0aadafe219821]\n[sha = SHA-512]\n\n# tcId = 352\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3053020d1033e67e37b32b445580bf4eff0242013cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc3393f632affd3eaa3c8fb64507bd5996497bd588fb9e3947c097ced7546b57c8998\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04008aed779a32b9bf56ea7ab46e4b914e55c65301cdbe9ea6e7ed44f7e978c0365989a19a5e48282fb1158f481c556505d66ff414a07003ebf82fca1698c33f2884c600a62426993ed5b177b6045e60b5fa1a1f8ce1ad5d70e7bc7b5af811dbf86e651f9ea02ec796ab991e1439bf07ffe2ac6052a8a0b0174d78a9441aaf4d8fc757d80f]\n[key.wx = 08aed779a32b9bf56ea7ab46e4b914e55c65301cdbe9ea6e7ed44f7e978c0365989a19a5e48282fb1158f481c556505d66ff414a07003ebf82fca1698c33f2884c6]\n[key.wy = 0a62426993ed5b177b6045e60b5fa1a1f8ce1ad5d70e7bc7b5af811dbf86e651f9ea02ec796ab991e1439bf07ffe2ac6052a8a0b0174d78a9441aaf4d8fc757d80f]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004008aed779a32b9bf56ea7ab46e4b914e55c65301cdbe9ea6e7ed44f7e978c0365989a19a5e48282fb1158f481c556505d66ff414a07003ebf82fca1698c33f2884c600a62426993ed5b177b6045e60b5fa1a1f8ce1ad5d70e7bc7b5af811dbf86e651f9ea02ec796ab991e1439bf07ffe2ac6052a8a0b0174d78a9441aaf4d8fc757d80f]\n[sha = SHA-512]\n\n# tcId = 353\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 30480202010002420086ecbf54ab59a4e195f0be1402edd8657bb94618fab50f2fe20fe5ebbc9ff0e491397ed313cc918d438eedb9b5ecb4d9dfa305303505baf25400ed8c20fc3fc47b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040093697b0378312b38c31deae073f24a8163f086ac2116b7c37c99157cfae7970ab4201f5a7e06ec39eedbf7d87f3021ca439e3ff7c5988b84679937bab786dbe12e01c6987c86077c05423ac281de6d23f6a685870e12855463770eccabc9f3a1d23cb2a0c15479420b5dd40fbdc9886c463b62ee23239df3a8b861c3291d28224f6057]\n[key.wx = 093697b0378312b38c31deae073f24a8163f086ac2116b7c37c99157cfae7970ab4201f5a7e06ec39eedbf7d87f3021ca439e3ff7c5988b84679937bab786dbe12e]\n[key.wy = 1c6987c86077c05423ac281de6d23f6a685870e12855463770eccabc9f3a1d23cb2a0c15479420b5dd40fbdc9886c463b62ee23239df3a8b861c3291d28224f6057]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040093697b0378312b38c31deae073f24a8163f086ac2116b7c37c99157cfae7970ab4201f5a7e06ec39eedbf7d87f3021ca439e3ff7c5988b84679937bab786dbe12e01c6987c86077c05423ac281de6d23f6a685870e12855463770eccabc9f3a1d23cb2a0c15479420b5dd40fbdc9886c463b62ee23239df3a8b861c3291d28224f6057]\n[sha = SHA-512]\n\n# tcId = 354\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3053020d062522bbd3ecbe7c39e93e7c2402420086ecbf54ab59a4e195f0be1402edd8657bb94618fab50f2fe20fe5ebbc9ff0e491397ed313cc918d438eedb9b5ecb4d9dfa305303505baf25400ed8c20fc3fc47b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04019a9f1b7b7f574a021fedd8679a4e998b48524854eefbaae4104a3973d693e02104fa119243256e3d986f8b4966c286ab8cb1f5267c0bbd6bc182aeb57493a5d5b60158b97eb74862fbca41763e8d3a7beb5fccd05565b75a3a43c2b38b96eb2ccff149c23ef1ac09fc455d808ff28081e985f9e172fc62d0900585172cfbff87383595]\n[key.wx = 19a9f1b7b7f574a021fedd8679a4e998b48524854eefbaae4104a3973d693e02104fa119243256e3d986f8b4966c286ab8cb1f5267c0bbd6bc182aeb57493a5d5b6]\n[key.wy = 158b97eb74862fbca41763e8d3a7beb5fccd05565b75a3a43c2b38b96eb2ccff149c23ef1ac09fc455d808ff28081e985f9e172fc62d0900585172cfbff87383595]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004019a9f1b7b7f574a021fedd8679a4e998b48524854eefbaae4104a3973d693e02104fa119243256e3d986f8b4966c286ab8cb1f5267c0bbd6bc182aeb57493a5d5b60158b97eb74862fbca41763e8d3a7beb5fccd05565b75a3a43c2b38b96eb2ccff149c23ef1ac09fc455d808ff28081e985f9e172fc62d0900585172cfbff87383595]\n[sha = SHA-512]\n\n# tcId = 355\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138638a0242015555555555555555555555555555555555555555555555555555555555555555518baf05027f750ef25532ab85fa066e8ad2793125b112da747cf524bf0b7aed5b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401aa9f3a894b727d7a01b09c4f051b469d661de1e06915b599e211463319ac1b7ca8a6097f1be401d70a71d0b53655cdf9bef748d886e08ee7de2fa781e93ec41a2601ba9ea67385e19894fc9cd4b0173ab215f7b96f23bc420665d46c75447bf200ae3ac7b42bd9b857fd1c85cce8ea9c8d2345e4687dd70df59f5149510735bb9c7b64]\n[key.wx = 1aa9f3a894b727d7a01b09c4f051b469d661de1e06915b599e211463319ac1b7ca8a6097f1be401d70a71d0b53655cdf9bef748d886e08ee7de2fa781e93ec41a26]\n[key.wy = 1ba9ea67385e19894fc9cd4b0173ab215f7b96f23bc420665d46c75447bf200ae3ac7b42bd9b857fd1c85cce8ea9c8d2345e4687dd70df59f5149510735bb9c7b64]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401aa9f3a894b727d7a01b09c4f051b469d661de1e06915b599e211463319ac1b7ca8a6097f1be401d70a71d0b53655cdf9bef748d886e08ee7de2fa781e93ec41a2601ba9ea67385e19894fc9cd4b0173ab215f7b96f23bc420665d46c75447bf200ae3ac7b42bd9b857fd1c85cce8ea9c8d2345e4687dd70df59f5149510735bb9c7b64]\n[sha = SHA-512]\n\n# tcId = 356\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3047024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad020101\n\n# tcId = 357\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3047024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad020100\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04002a07f13f3e8df382145b7942fe6f91c12ff3064b314b4e3476bf3afbb982070f17f63b2de5fbe8c91a87ae632869facf17d5ce9d139b37ed557581bb9a7e4b8fa30024b904c5fc536ae53b323a7fd0b7b8e420302406ade84ea8a10ca7c5c934bad5489db6e3a8cc3064602cc83f309e9d247aae72afca08336bc8919e15f4be5ad77a]\n[key.wx = 2a07f13f3e8df382145b7942fe6f91c12ff3064b314b4e3476bf3afbb982070f17f63b2de5fbe8c91a87ae632869facf17d5ce9d139b37ed557581bb9a7e4b8fa3]\n[key.wy = 24b904c5fc536ae53b323a7fd0b7b8e420302406ade84ea8a10ca7c5c934bad5489db6e3a8cc3064602cc83f309e9d247aae72afca08336bc8919e15f4be5ad77a]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004002a07f13f3e8df382145b7942fe6f91c12ff3064b314b4e3476bf3afbb982070f17f63b2de5fbe8c91a87ae632869facf17d5ce9d139b37ed557581bb9a7e4b8fa30024b904c5fc536ae53b323a7fd0b7b8e420302406ade84ea8a10ca7c5c934bad5489db6e3a8cc3064602cc83f309e9d247aae72afca08336bc8919e15f4be5ad77a]\n[sha = SHA-512]\n\n# tcId = 358\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd28c343c1df97cb35bfe600a47b84d2e81ddae4dc44ce23d75db7db8f489c3204024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[k", - "ey.uncompressed = 040060daf59638158ed9d3d7e8428501334764162f9be239e168fae9af348c30a7be1cfa4d9636c3bb621d7e0aa71446f8d4a37f2d43274a4255b226f612382f63152e016e48300124a636b206fad4d0355862a852623799afee941e864d96dcbf55b801cabd6249b6f567506d5a503e7d03b4764c70fc44c5365f32c3603678476d62b09d]\n[key.wx = 60daf59638158ed9d3d7e8428501334764162f9be239e168fae9af348c30a7be1cfa4d9636c3bb621d7e0aa71446f8d4a37f2d43274a4255b226f612382f63152e]\n[key.wy = 16e48300124a636b206fad4d0355862a852623799afee941e864d96dcbf55b801cabd6249b6f567506d5a503e7d03b4764c70fc44c5365f32c3603678476d62b09d]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040060daf59638158ed9d3d7e8428501334764162f9be239e168fae9af348c30a7be1cfa4d9636c3bb621d7e0aa71446f8d4a37f2d43274a4255b226f612382f63152e016e48300124a636b206fad4d0355862a852623799afee941e864d96dcbf55b801cabd6249b6f567506d5a503e7d03b4764c70fc44c5365f32c3603678476d62b09d]\n[sha = SHA-512]\n\n# tcId = 359\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 308186024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040051fe6a35a85070c7c29502a87672a38153d799aef734226b64d8fd3398621701117f0af9d9afaf6dbb8ca3007255dc79b0f41ed552512cb29207b15a01cdfdfaae01a16c61277586356efadcb24764f21f574ef96f2caabc3f47fa66fb8719d7785824061c2d6d7a4bcb851540e62b2f00960b283eac7808d1813ef51b46e1149d3e4d]\n[key.wx = 51fe6a35a85070c7c29502a87672a38153d799aef734226b64d8fd3398621701117f0af9d9afaf6dbb8ca3007255dc79b0f41ed552512cb29207b15a01cdfdfaae]\n[key.wy = 1a16c61277586356efadcb24764f21f574ef96f2caabc3f47fa66fb8719d7785824061c2d6d7a4bcb851540e62b2f00960b283eac7808d1813ef51b46e1149d3e4d]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040051fe6a35a85070c7c29502a87672a38153d799aef734226b64d8fd3398621701117f0af9d9afaf6dbb8ca3007255dc79b0f41ed552512cb29207b15a01cdfdfaae01a16c61277586356efadcb24764f21f574ef96f2caabc3f47fa66fb8719d7785824061c2d6d7a4bcb851540e62b2f00960b283eac7808d1813ef51b46e1149d3e4d]\n[sha = SHA-512]\n\n# tcId = 360\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 308188024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024201ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94fdcdefd78dc0b56a22d16f2eec26ae0c1fb484d059300e80bd6b0472b3d1222ff5d08b03d\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400b4ffc0fff087607ad26c4b23d6d31ae5f904cc064e350f47131ce2784fbb359867988a559d4386752e56277bef34e26544dedda88cc20a3411fa98834eeae869ad009d6e8ca99949b7b34fd06a789744ecac3356247317c4d7aa9296676dd623594f3684bc13064cab8d2db7edbca91f1c8beb542bc97978a3f31f3610a03f46a982d2]\n[key.wx = 0b4ffc0fff087607ad26c4b23d6d31ae5f904cc064e350f47131ce2784fbb359867988a559d4386752e56277bef34e26544dedda88cc20a3411fa98834eeae869ad]\n[key.wy = 09d6e8ca99949b7b34fd06a789744ecac3356247317c4d7aa9296676dd623594f3684bc13064cab8d2db7edbca91f1c8beb542bc97978a3f31f3610a03f46a982d2]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400b4ffc0fff087607ad26c4b23d6d31ae5f904cc064e350f47131ce2784fbb359867988a559d4386752e56277bef34e26544dedda88cc20a3411fa98834eeae869ad009d6e8ca99949b7b34fd06a789744ecac3356247317c4d7aa9296676dd623594f3684bc13064cab8d2db7edbca91f1c8beb542bc97978a3f31f3610a03f46a982d2]\n[sha = SHA-512]\n\n# tcId = 361\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 308188024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400809fba320fe96ded24611b72a2a5428fe46049ff080d6e0813ab7a35897018fe6418613abd860d1eb484959059a01af7d68cba69d1c52ea64ad0f28a18a41fc78a01108acc5577e9e8962e2a7cea0bb37df1d0ca4050fb6cfeba41a7f868d988dbbcebc962986748fa485183f6b60f453ec8606f8c33d43767dddbbef8c412b2c37939]\n[key.wx = 0809fba320fe96ded24611b72a2a5428fe46049ff080d6e0813ab7a35897018fe6418613abd860d1eb484959059a01af7d68cba69d1c52ea64ad0f28a18a41fc78a]\n[key.wy = 1108acc5577e9e8962e2a7cea0bb37df1d0ca4050fb6cfeba41a7f868d988dbbcebc962986748fa485183f6b60f453ec8606f8c33d43767dddbbef8c412b2c37939]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400809fba320fe96ded24611b72a2a5428fe46049ff080d6e0813ab7a35897018fe6418613abd860d1eb484959059a01af7d68cba69d1c52ea64ad0f28a18a41fc78a01108acc5577e9e8962e2a7cea0bb37df1d0ca4050fb6cfeba41a7f868d988dbbcebc962986748fa485183f6b60f453ec8606f8c33d43767dddbbef8c412b2c37939]\n[sha = SHA-512]\n\n# tcId = 362\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 308188024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad0242015555555555555555555555555555555555555555555555555555555555555555518baf05027f750ef25532ab85fa066e8ad2793125b112da747cf524bf0b7aed5c\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040145130dca77d9674dfceffa851b4a2672e490e8fba8277622b0020e2fe9101e76933b0c01d248071f854e9bc523733936dc0b9930cbe154b9a402f681ee3c6cef6b000d0c94b2ad28556643aa3d27523048d227a1de82f8a664707e75394d21da181bec82e1afb0e627539531affa849a2409bcac83fb786c351c88bac2fb2e4322e54a]\n[key.wx = 145130dca77d9674dfceffa851b4a2672e490e8fba8277622b0020e2fe9101e76933b0c01d248071f854e9bc523733936dc0b9930cbe154b9a402f681ee3c6cef6b]\n[key.wy = 0d0c94b2ad28556643aa3d27523048d227a1de82f8a664707e75394d21da181bec82e1afb0e627539531affa849a2409bcac83fb786c351c88bac2fb2e4322e54a]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040145130dca77d9674dfceffa851b4a2672e490e8fba8277622b0020e2fe9101e76933b0c01d248071f854e9bc523733936dc0b9930cbe154b9a402f681ee3c6cef6b000d0c94b2ad28556643aa3d27523048d227a1de82f8a664707e75394d21da181bec82e1afb0e627539531affa849a2409bcac83fb786c351c88bac2fb2e4322e54a]\n[sha = SHA-512]\n\n# tcId = 363\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201556bfd55a94e530bd972e52873ef39ac3ec34481aebdc46680dc66723ab66056275d82bff85ad29ac694530bb2f89c36ce600ad1b49761854afc69ab741ce0294a\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400ed3e09809fe5985818f90592fd06e71d2c493d9a781714c9157cbafa5ba196b987fd49ae24274c76251c70b9f7970f1f713ad274590a702f463c73a0704831ce5d00cac278297093bd9f9ac2d00bef3d67a01b43b28b9f829407264c738117438300c7704772976916ea102a776262ccf4222cc348c34aac683d8f00179a348323babd]\n[key.wx = 0ed3e09809fe5985818f90592fd06e71d2c493d9a781714c9157cbafa5ba196b987fd49ae24274c76251c70b9f7970f1f713ad274590a702f463c73a0704831ce5d]\n[key.wy = 0cac278297093bd9f9ac2d00bef3d67a01b43b28b9f829407264c738117438300c7704772976916ea102a776262ccf4222cc348c34aac683d8f00179a348323babd]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400ed3e09809fe5985818f90592fd06e71d2c493d9a781714c9157cbafa5ba196b987fd49ae24274c76251c70b9f7970f1f713ad274590a702f463c73a0704831ce5d00cac278297093bd9f9ac2d00bef3d67a01b43b28b9f829407264c738117438300c7704772976916ea102a776262ccf4222cc348c34aac683d8f00179a348323babd]\n[sha = SHA-512]\n\n# tcId = 364\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200dcf9e7f441448a125b96d72b989d9f4dac7508c7e036f6080d4758e736f5e0636b0ff503f128a98d08e0ae189921065219d2cc3aa83e3c660ca0cb85e7c11a24d0\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04000ac2c5a4c79309a5132d5d7494befb3905d33fda5f80eeaf63775183aae7af108a3d97f3a441532cf6fac47f6c898329d69182e1fa07ce45997ebec3781c9ad7410173a5b6b80a8b73d30ac97e1a4aacb773c", - "1ad692c5ea63f68e373842782bd677864ff656cf8d1e6ec1e58e9a83856ef92677555916749fb95e800ae2e011618ca3a]\n[key.wx = 0ac2c5a4c79309a5132d5d7494befb3905d33fda5f80eeaf63775183aae7af108a3d97f3a441532cf6fac47f6c898329d69182e1fa07ce45997ebec3781c9ad741]\n[key.wy = 173a5b6b80a8b73d30ac97e1a4aacb773c1ad692c5ea63f68e373842782bd677864ff656cf8d1e6ec1e58e9a83856ef92677555916749fb95e800ae2e011618ca3a]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004000ac2c5a4c79309a5132d5d7494befb3905d33fda5f80eeaf63775183aae7af108a3d97f3a441532cf6fac47f6c898329d69182e1fa07ce45997ebec3781c9ad7410173a5b6b80a8b73d30ac97e1a4aacb773c1ad692c5ea63f68e373842782bd677864ff656cf8d1e6ec1e58e9a83856ef92677555916749fb95e800ae2e011618ca3a]\n[sha = SHA-512]\n\n# tcId = 365\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024166eb57733c19a7003cf8253279fce41907bc4f127153c4576dd4814f8b335a0b51560b4447f0382c69b3fe509522c891f0eec3999ad2526835f33ae22a642843af\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401eb2a353dec6b460fbda49c67f431190fff6f195639c226ef8fefcbf191d72529a12cc5485b282a52704c1fd84529a1aa0ad794f96493e299718d2618a1b83a526c01f704604d5b2b94a42bfc3ab93317d66a54de15258337433fc96a965d8e2d056fd1134b7989d7b3f709adc28227bdabc11fe2f359c6a6e5111ab43379ca25b66f2f]\n[key.wx = 1eb2a353dec6b460fbda49c67f431190fff6f195639c226ef8fefcbf191d72529a12cc5485b282a52704c1fd84529a1aa0ad794f96493e299718d2618a1b83a526c]\n[key.wy = 1f704604d5b2b94a42bfc3ab93317d66a54de15258337433fc96a965d8e2d056fd1134b7989d7b3f709adc28227bdabc11fe2f359c6a6e5111ab43379ca25b66f2f]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401eb2a353dec6b460fbda49c67f431190fff6f195639c226ef8fefcbf191d72529a12cc5485b282a52704c1fd84529a1aa0ad794f96493e299718d2618a1b83a526c01f704604d5b2b94a42bfc3ab93317d66a54de15258337433fc96a965d8e2d056fd1134b7989d7b3f709adc28227bdabc11fe2f359c6a6e5111ab43379ca25b66f2f]\n[sha = SHA-512]\n\n# tcId = 366\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242017106d1131b3300d7ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc79527ac09f0a3f0a8aa38285585b6afceac5ff6692842232d106d15d4df1b66aa8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401e43dfecc7e6caad03d17b407322c878f701c5add6eb2afcd786ff3803622dfbb6baa01246e1ea059f7b78842919b2507daa9e3434efa7e8d3ae6c35499f82d0ac8018b0e4d6378222a07ccdb4214001f97b1a503d1aac3ab925ea64faa9c739ba04ee3480b147cb07f93edf40b6856a22f4159c3f5cd6c9e7165452907c8d02fab201e]\n[key.wx = 1e43dfecc7e6caad03d17b407322c878f701c5add6eb2afcd786ff3803622dfbb6baa01246e1ea059f7b78842919b2507daa9e3434efa7e8d3ae6c35499f82d0ac8]\n[key.wy = 18b0e4d6378222a07ccdb4214001f97b1a503d1aac3ab925ea64faa9c739ba04ee3480b147cb07f93edf40b6856a22f4159c3f5cd6c9e7165452907c8d02fab201e]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401e43dfecc7e6caad03d17b407322c878f701c5add6eb2afcd786ff3803622dfbb6baa01246e1ea059f7b78842919b2507daa9e3434efa7e8d3ae6c35499f82d0ac8018b0e4d6378222a07ccdb4214001f97b1a503d1aac3ab925ea64faa9c739ba04ee3480b147cb07f93edf40b6856a22f4159c3f5cd6c9e7165452907c8d02fab201e]\n[sha = SHA-512]\n\n# tcId = 367\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc02416d1131b3300d7ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6ab94bf496f53ea229e7fe6b456088ea32f6e2b104f5112798bb59d46a0d468f838\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040141a4d714628c192b8ace1a42854da06e0e1ddb82a07618e4efb05d7095cd1eb65425078160594715eaf59fcb41c9e573fe10298c75c9e9135c775ca73f63d13aac0089524b475170d4391cc032a0543ea22dab60ea07538f3a37607f0d4ed516634fde545e2f0a6ba8d0d2fe6aded0a771b4b134a5a280e54799fa476ef0ec87d44e1c]\n[key.wx = 141a4d714628c192b8ace1a42854da06e0e1ddb82a07618e4efb05d7095cd1eb65425078160594715eaf59fcb41c9e573fe10298c75c9e9135c775ca73f63d13aac]\n[key.wy = 089524b475170d4391cc032a0543ea22dab60ea07538f3a37607f0d4ed516634fde545e2f0a6ba8d0d2fe6aded0a771b4b134a5a280e54799fa476ef0ec87d44e1c]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040141a4d714628c192b8ace1a42854da06e0e1ddb82a07618e4efb05d7095cd1eb65425078160594715eaf59fcb41c9e573fe10298c75c9e9135c775ca73f63d13aac0089524b475170d4391cc032a0543ea22dab60ea07538f3a37607f0d4ed516634fde545e2f0a6ba8d0d2fe6aded0a771b4b134a5a280e54799fa476ef0ec87d44e1c]\n[sha = SHA-512]\n\n# tcId = 368\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200da226366601afff780ffe082a0db8e74ea10d4864a5f6876c64f5e78d6598fad57297e92dea7d4453cffcd68ac111d465edc56209ea224f3176b3a8d41a8d1f070\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040147fbcc65d4818e029e0a3af13a1f7c90f0605a00cd0781200eb656a591d669a787620e6fc8cc594aa28a0b0f2939ec73472c494e09cecaf5f331dafd32d5ac31c30075432bdaeecaa0bec7feddc298c565723fb669ee76e38a4c5ff1701f1b38cda9dc9ac43bff18da2047e4dcd80c05a7bb7e7464829d608b68176b04c87f409f46d6]\n[key.wx = 147fbcc65d4818e029e0a3af13a1f7c90f0605a00cd0781200eb656a591d669a787620e6fc8cc594aa28a0b0f2939ec73472c494e09cecaf5f331dafd32d5ac31c3]\n[key.wy = 75432bdaeecaa0bec7feddc298c565723fb669ee76e38a4c5ff1701f1b38cda9dc9ac43bff18da2047e4dcd80c05a7bb7e7464829d608b68176b04c87f409f46d6]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040147fbcc65d4818e029e0a3af13a1f7c90f0605a00cd0781200eb656a591d669a787620e6fc8cc594aa28a0b0f2939ec73472c494e09cecaf5f331dafd32d5ac31c30075432bdaeecaa0bec7feddc298c565723fb669ee76e38a4c5ff1701f1b38cda9dc9ac43bff18da2047e4dcd80c05a7bb7e7464829d608b68176b04c87f409f46d6]\n[sha = SHA-512]\n\n# tcId = 369\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242011b3300d7ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94cb85df5e6c1125394fcd34f6521ffdaddd98f88a99fedcedd9384288bb793cf2f\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400b5b1c3998589b25c96a700bbd450d04da1f273df8053767a3b03ed1a763ed089c0de99bcf54d49c1520d3a09b845296f0445b3bd5b87918d3752cf651e0ff3007b00e896380876b9419c56096914ff6eec01aee247eefef0741895f14ee280f360e11508c37826af82cd915b9002f046cb51008d9ead21124c591bd8265d1492b35ffb]\n[key.wx = 0b5b1c3998589b25c96a700bbd450d04da1f273df8053767a3b03ed1a763ed089c0de99bcf54d49c1520d3a09b845296f0445b3bd5b87918d3752cf651e0ff3007b]\n[key.wy = 0e896380876b9419c56096914ff6eec01aee247eefef0741895f14ee280f360e11508c37826af82cd915b9002f046cb51008d9ead21124c591bd8265d1492b35ffb]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400b5b1c3998589b25c96a700bbd450d04da1f273df8053767a3b03ed1a763ed089c0de99bcf54d49c1520d3a09b845296f0445b3bd5b87918d3752cf651e0ff3007b00e896380876b9419c56096914ff6eec01aee247eefef0741895f14ee280f360e11508c37826af82cd915b9002f046cb51008d9ead21124c591bd8265d1492b35ffb]\n[sha = SHA-512]\n\n# tcId = 370\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc02420161be37ed5f748e06a89d72c4b7051cae809d9567848b1d8d7ed019221efb06ae81e1264ce49c5d29ee5fe22ccf70899002643aca7b99f57756f2639b6d459ae410\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401aadb41fadc35cf6d11a7c7d01d049b74b37677f04e1bd3dc08450fabae28adcd2d135f966616d283fb18a5e69eabfe7ec41e1a0edb3682f1d39f2af64a94d602b9014ae81ebf5e3d2d0529479d4ae8eb05f4b42e519608466ad69e7662d6e9b236765f9be535c058f00f0866bbb4b172ef47a03cb97c58dde5750344bb293035f8e97e]\n[key.wx = 1aadb41fadc35cf6d11a7c7d01d049b74b37677f04e1bd3dc", - "08450fabae28adcd2d135f966616d283fb18a5e69eabfe7ec41e1a0edb3682f1d39f2af64a94d602b9]\n[key.wy = 14ae81ebf5e3d2d0529479d4ae8eb05f4b42e519608466ad69e7662d6e9b236765f9be535c058f00f0866bbb4b172ef47a03cb97c58dde5750344bb293035f8e97e]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401aadb41fadc35cf6d11a7c7d01d049b74b37677f04e1bd3dc08450fabae28adcd2d135f966616d283fb18a5e69eabfe7ec41e1a0edb3682f1d39f2af64a94d602b9014ae81ebf5e3d2d0529479d4ae8eb05f4b42e519608466ad69e7662d6e9b236765f9be535c058f00f0866bbb4b172ef47a03cb97c58dde5750344bb293035f8e97e]\n[sha = SHA-512]\n\n# tcId = 371\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201e9bbbd64270b9668f7623ef7cbead5483eb07b883cf39fb6884aab67dac7958b0e03144357b9433e69adc696c86c63a23d35724cbd749b7c34f8e34232d21ea420\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401b706fc3f4aae5b86da261a66fbce47eb3b3e1e91544a40a9989fccf74154bbecac042dbbbf411a39090058b62c46fccd1d5eaba0c4879a688ea5fd0a7b4f9a0b4f01eda01930c6b22745a97f2d59e182598dfdfbfdb463335293901de7fc9d49cf55ed7fcf5d767d4c22f89f171b4137c8415c3ed438089270c41f88eadef3018140e1]\n[key.wx = 1b706fc3f4aae5b86da261a66fbce47eb3b3e1e91544a40a9989fccf74154bbecac042dbbbf411a39090058b62c46fccd1d5eaba0c4879a688ea5fd0a7b4f9a0b4f]\n[key.wy = 1eda01930c6b22745a97f2d59e182598dfdfbfdb463335293901de7fc9d49cf55ed7fcf5d767d4c22f89f171b4137c8415c3ed438089270c41f88eadef3018140e1]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401b706fc3f4aae5b86da261a66fbce47eb3b3e1e91544a40a9989fccf74154bbecac042dbbbf411a39090058b62c46fccd1d5eaba0c4879a688ea5fd0a7b4f9a0b4f01eda01930c6b22745a97f2d59e182598dfdfbfdb463335293901de7fc9d49cf55ed7fcf5d767d4c22f89f171b4137c8415c3ed438089270c41f88eadef3018140e1]\n[sha = SHA-512]\n\n# tcId = 372\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200924449b6c96f3758e3b085c079714f11f28d039b11699f0e9b3e7c553c8fc6c8f5212fec5eac3068713b8ec72fc6e2a90872b94e161a89822887f4a9bd5c9efd74\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040058a1fa96111bf30be76c3b8ba4435666677b6dd05031b5c4a840e1ea81f6025f70e1d395ef63cb59fa71e3674cb678f7250887f5d734e3ec377dbe3ae637d24f82007a4eaf02cc57e658b5b9fa08ee30e0ef5b3429bb5a10438b0e05bacaebc60317010a334d7f896028aef620f5d9c7cabc38306e032b1b91c2376c3fef3e455a10df]\n[key.wx = 58a1fa96111bf30be76c3b8ba4435666677b6dd05031b5c4a840e1ea81f6025f70e1d395ef63cb59fa71e3674cb678f7250887f5d734e3ec377dbe3ae637d24f82]\n[key.wy = 7a4eaf02cc57e658b5b9fa08ee30e0ef5b3429bb5a10438b0e05bacaebc60317010a334d7f896028aef620f5d9c7cabc38306e032b1b91c2376c3fef3e455a10df]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040058a1fa96111bf30be76c3b8ba4435666677b6dd05031b5c4a840e1ea81f6025f70e1d395ef63cb59fa71e3674cb678f7250887f5d734e3ec377dbe3ae637d24f82007a4eaf02cc57e658b5b9fa08ee30e0ef5b3429bb5a10438b0e05bacaebc60317010a334d7f896028aef620f5d9c7cabc38306e032b1b91c2376c3fef3e455a10df]\n[sha = SHA-512]\n\n# tcId = 373\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201554a01552b58d67a13468d6bc6086329e09e5dbf28a11dccbf91ccc6e2a4cfd4e6a2c5278791c6490835a27b6f7abb8a690bb060de3deb85093d3ae16482c84f64\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400303ba5ef90b05110002fdf74d2b8d4c7ab189c64004859c69d7c4730fcacb5f4d9b761ae987d1f3b63bb3ecb78aeecf4a04ff60f5f367a96ac2da8da27a3687a3e006673d0d4ccd4c3ce1abc9980fd1885002c3e7b86078214caf7f0962fa51e116363032d7a1b93c92a4d62827549d5a33e4e6b9b6c2ab6ad9c2a15e410c5b1a846b2]\n[key.wx = 303ba5ef90b05110002fdf74d2b8d4c7ab189c64004859c69d7c4730fcacb5f4d9b761ae987d1f3b63bb3ecb78aeecf4a04ff60f5f367a96ac2da8da27a3687a3e]\n[key.wy = 6673d0d4ccd4c3ce1abc9980fd1885002c3e7b86078214caf7f0962fa51e116363032d7a1b93c92a4d62827549d5a33e4e6b9b6c2ab6ad9c2a15e410c5b1a846b2]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400303ba5ef90b05110002fdf74d2b8d4c7ab189c64004859c69d7c4730fcacb5f4d9b761ae987d1f3b63bb3ecb78aeecf4a04ff60f5f367a96ac2da8da27a3687a3e006673d0d4ccd4c3ce1abc9980fd1885002c3e7b86078214caf7f0962fa51e116363032d7a1b93c92a4d62827549d5a33e4e6b9b6c2ab6ad9c2a15e410c5b1a846b2]\n[sha = SHA-512]\n\n# tcId = 374\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200aa9402aa56b1acf4268d1ad78c10c653c13cbb7e51423b997f23998dc5499fa9d2f403c78b645cfba4eb78f595fe6d6f01dbaaf803f23ac263bf060baa74583abf\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400a94eea843a5c49637041598e30c381f7173bf8cd127f3caf5c16cbc728aa4d99173fb38d6a1b1ec21e40336e8d802249272b0ccbf4f8c3636ef66290a81b58fa5b01116c23464fad61df8d2d5d1250a5a4c427e9c58e2cf1d059cdd88a7c34984fdd22a4cf18411e1b0224d444a5bd39d5fc97fc0b3648600f19d6ab80aa6a7c083a17]\n[key.wx = 0a94eea843a5c49637041598e30c381f7173bf8cd127f3caf5c16cbc728aa4d99173fb38d6a1b1ec21e40336e8d802249272b0ccbf4f8c3636ef66290a81b58fa5b]\n[key.wy = 1116c23464fad61df8d2d5d1250a5a4c427e9c58e2cf1d059cdd88a7c34984fdd22a4cf18411e1b0224d444a5bd39d5fc97fc0b3648600f19d6ab80aa6a7c083a17]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400a94eea843a5c49637041598e30c381f7173bf8cd127f3caf5c16cbc728aa4d99173fb38d6a1b1ec21e40336e8d802249272b0ccbf4f8c3636ef66290a81b58fa5b01116c23464fad61df8d2d5d1250a5a4c427e9c58e2cf1d059cdd88a7c34984fdd22a4cf18411e1b0224d444a5bd39d5fc97fc0b3648600f19d6ab80aa6a7c083a17]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201ffde03ff820a836e39d3a8435219297da1db193d79e359663eb56654a7ee6f7eb996c8ef12f62344ad211b71057928f96ae75b58e23026476cfc40ed0ef7208a23\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04014f71d2ca5bd2051336854657f09a1fab14c7f2f7865d71bd3fa354bf27b69dc8738972140553b525658b6fd203cc05ca0822e0904bad21b632e0de74a2ad3f0e72004525f90519f9497425460b31cbb69ab3701a9ea68aaab72c6d65d364d0f0ed4d0524280f113bd69ef1ba9825202b10287a088c4bf30debecb720ac0739ec67434d]\n[key.wx = 14f71d2ca5bd2051336854657f09a1fab14c7f2f7865d71bd3fa354bf27b69dc8738972140553b525658b6fd203cc05ca0822e0904bad21b632e0de74a2ad3f0e72]\n[key.wy = 4525f90519f9497425460b31cbb69ab3701a9ea68aaab72c6d65d364d0f0ed4d0524280f113bd69ef1ba9825202b10287a088c4bf30debecb720ac0739ec67434d]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004014f71d2ca5bd2051336854657f09a1fab14c7f2f7865d71bd3fa354bf27b69dc8738972140553b525658b6fd203cc05ca0822e0904bad21b632e0de74a2ad3f0e72004525f90519f9497425460b31cbb69ab3701a9ea68aaab72c6d65d364d0f0ed4d0524280f113bd69ef1ba9825202b10287a088c4bf30debecb720ac0739ec67434d]\n[sha = SHA-512]\n\n# tcId = 376\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242013375abb99e0cd3801e7c12993cfe720c83de278938a9e22bb6ea40a7c599ad05a5d3c8e5e5d7b3e16a99e528ef0ce91be0953cb1a9adf757f257554ca47ab053dc\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401d2ecad921dd100a8dc1a7b824b0ac6c9b654ab179833c2881ce237f1b8497ade851302cf50ea5ea169c2a50c0c09cb6ea539a7290a0f3437044b7a2e9ca8d40500003fd5651535dcba1f331981c216a1c7d9842f65c5f38ca43dd71c41e19efcac384617656fd0afdd83c50c5e524e9b672b7aa8a66b289afa688e45ca6edb3477a8b0]\n[key.wx = 1d2ecad921dd100a8dc1a7b824b0ac6c9b654ab179833c2881ce237f1b8497ade851302cf50ea5ea169c2a50c0c09cb6ea539a7290a0f3437044b7a2e9ca8d40500]\n[key.wy = 3fd5651535dcba1f331981c216a1c7d9842f65c5f38ca43dd71c41e19efcac3", - "84617656fd0afdd83c50c5e524e9b672b7aa8a66b289afa688e45ca6edb3477a8b0]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401d2ecad921dd100a8dc1a7b824b0ac6c9b654ab179833c2881ce237f1b8497ade851302cf50ea5ea169c2a50c0c09cb6ea539a7290a0f3437044b7a2e9ca8d40500003fd5651535dcba1f331981c216a1c7d9842f65c5f38ca43dd71c41e19efcac384617656fd0afdd83c50c5e524e9b672b7aa8a66b289afa688e45ca6edb3477a8b0]\n[sha = SHA-512]\n\n# tcId = 377\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc02415555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555554\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040165d67972a48fddc2f41c03f79ab5e0d42fd0992c013ead135c3394049645e26ad7c7be96510df59ba677dc94f1146e8e8e8fbe56debcb66920639581956b92b4d1008aeb66ee0be18abaa909a973c70b5749d688f8e2cd2e6e1613af93d0033492d26a6e82cfb80ac6925ac6bc79b984f73e3ebbff2f223a38676891c1ecd784a8a789]\n[key.wx = 165d67972a48fddc2f41c03f79ab5e0d42fd0992c013ead135c3394049645e26ad7c7be96510df59ba677dc94f1146e8e8e8fbe56debcb66920639581956b92b4d1]\n[key.wy = 08aeb66ee0be18abaa909a973c70b5749d688f8e2cd2e6e1613af93d0033492d26a6e82cfb80ac6925ac6bc79b984f73e3ebbff2f223a38676891c1ecd784a8a789]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040165d67972a48fddc2f41c03f79ab5e0d42fd0992c013ead135c3394049645e26ad7c7be96510df59ba677dc94f1146e8e8e8fbe56debcb66920639581956b92b4d1008aeb66ee0be18abaa909a973c70b5749d688f8e2cd2e6e1613af93d0033492d26a6e82cfb80ac6925ac6bc79b984f73e3ebbff2f223a38676891c1ecd784a8a789]\n[sha = SHA-512]\n\n# tcId = 378\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242009f57708fa97eba94c6d4782cdd4e33bb95c1353bde095232e3e2bab277bb5d2b48f55a53ffe928d034c29970a9e5f384a003907d3d9b82a86817cc61fb17f4c59e\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04018cd11252f0a434f446d3af18518c6b84cb0b7bf33758b4d83b97c2a56e0037b54d57d2b0b842e9c17d70504e01896389c066db8f2bfec025259a51dff51466830801cca54365156c59e2c73c17664f09fcdcfd5b910f9ab48d0899b6a7064de8b80fc7a992e47ee7f23ec82fd80179a19f4cf89b4c02b7218f435298da5d322a982c1e]\n[key.wx = 18cd11252f0a434f446d3af18518c6b84cb0b7bf33758b4d83b97c2a56e0037b54d57d2b0b842e9c17d70504e01896389c066db8f2bfec025259a51dff514668308]\n[key.wy = 1cca54365156c59e2c73c17664f09fcdcfd5b910f9ab48d0899b6a7064de8b80fc7a992e47ee7f23ec82fd80179a19f4cf89b4c02b7218f435298da5d322a982c1e]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004018cd11252f0a434f446d3af18518c6b84cb0b7bf33758b4d83b97c2a56e0037b54d57d2b0b842e9c17d70504e01896389c066db8f2bfec025259a51dff51466830801cca54365156c59e2c73c17664f09fcdcfd5b910f9ab48d0899b6a7064de8b80fc7a992e47ee7f23ec82fd80179a19f4cf89b4c02b7218f435298da5d322a982c1e]\n[sha = SHA-512]\n\n# tcId = 379\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024168d98fa90736eff3e90f8fcfe50838b6fa0bf2cde77bc51e3f41019c8006f4e9cbaeadce7dbb44462da6425be9cfdaecb234c41749ce695be1b5ead2e6b1205f35\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401d6329a8afdea27cf1028a44d19c3c72927590d64628775f324514c81de301aa9be9c775c53a6349d1cbd5ecfc7bd39b373e613a10c1439441b141430fdadac168c00071342d63dba901b93bdc444a1fe2ec6a15108bdf49eb1dfd218373884520d84bce03c5012f5837051cb8abf6a0be78dfdfeeb3a5872dff75b3f874faa6d2243bf]\n[key.wx = 1d6329a8afdea27cf1028a44d19c3c72927590d64628775f324514c81de301aa9be9c775c53a6349d1cbd5ecfc7bd39b373e613a10c1439441b141430fdadac168c]\n[key.wy = 71342d63dba901b93bdc444a1fe2ec6a15108bdf49eb1dfd218373884520d84bce03c5012f5837051cb8abf6a0be78dfdfeeb3a5872dff75b3f874faa6d2243bf]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401d6329a8afdea27cf1028a44d19c3c72927590d64628775f324514c81de301aa9be9c775c53a6349d1cbd5ecfc7bd39b373e613a10c1439441b141430fdadac168c00071342d63dba901b93bdc444a1fe2ec6a15108bdf49eb1dfd218373884520d84bce03c5012f5837051cb8abf6a0be78dfdfeeb3a5872dff75b3f874faa6d2243bf]\n[sha = SHA-512]\n\n# tcId = 380\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200e97ae66bcd4cae36fffffffffffffffffffffffffffffffffffffffffffffffffd68bc9726f02dbf8598a98b3e5077eff6f2491eb678ed040fb338c084a9ea8a4c\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401c963b64cdc3ecb1c35cda5ced9419ac146b060adb04c638cf6b66658013cb25e915a6ad0055668342881ed27f438b50ae4bb86ae3c7c02b727a130c77bad69800800481bfffaead856b4137fd4268ecd74a6c2d4bd6cd13998ce7f0e828b220135d8df23253e681dc90673e0537e7590769a2a441aaaaa3a9901c4fbe44fa9513951ef]\n[key.wx = 1c963b64cdc3ecb1c35cda5ced9419ac146b060adb04c638cf6b66658013cb25e915a6ad0055668342881ed27f438b50ae4bb86ae3c7c02b727a130c77bad698008]\n[key.wy = 481bfffaead856b4137fd4268ecd74a6c2d4bd6cd13998ce7f0e828b220135d8df23253e681dc90673e0537e7590769a2a441aaaaa3a9901c4fbe44fa9513951ef]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401c963b64cdc3ecb1c35cda5ced9419ac146b060adb04c638cf6b66658013cb25e915a6ad0055668342881ed27f438b50ae4bb86ae3c7c02b727a130c77bad69800800481bfffaead856b4137fd4268ecd74a6c2d4bd6cd13998ce7f0e828b220135d8df23253e681dc90673e0537e7590769a2a441aaaaa3a9901c4fbe44fa9513951ef]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201ae66bcd4cae36ffffffffffffffffffffffffffffffffffffffffffffffffffffb3954212f8bea578d93e685e5dba329811b2542bb398233e2944bceb19263325d\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04005dfbc867d53c57b2945502b8e56d96ca2d4d485aa33452200a2f4ba16042357976afeecf3e63b2fdcd5cdd76076c1a73e496caf9d6de3e8831d955d138e05884ae01e04aa0b5360a0d3badd0120fbb8cc42a38bf1c61755d00858e40e4b10da4ea2575830dc92e312c20af2b8b167d7a58d178661d48cd932fe47a4bc7145e620ae22c]\n[key.wx = 5dfbc867d53c57b2945502b8e56d96ca2d4d485aa33452200a2f4ba16042357976afeecf3e63b2fdcd5cdd76076c1a73e496caf9d6de3e8831d955d138e05884ae]\n[key.wy = 1e04aa0b5360a0d3badd0120fbb8cc42a38bf1c61755d00858e40e4b10da4ea2575830dc92e312c20af2b8b167d7a58d178661d48cd932fe47a4bc7145e620ae22c]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005dfbc867d53c57b2945502b8e56d96ca2d4d485aa33452200a2f4ba16042357976afeecf3e63b2fdcd5cdd76076c1a73e496caf9d6de3e8831d955d138e05884ae01e04aa0b5360a0d3badd0120fbb8cc42a38bf1c61755d00858e40e4b10da4ea2575830dc92e312c20af2b8b167d7a58d178661d48cd932fe47a4bc7145e620ae22c]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242015ccd79a995c6dffffffffffffffffffffffffffffffffffffffffffffffffffffc2121badb58a518afa8010a82c03cad31fa94bbbde96820166d27e644938e00b1\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040078be6c43e366cf63ddc4235e8b969386e95012fbca5cebf1b0a6fe3c03c1257df7cf47b002eb6c4497f310bff6131b5ccb54fd0e8ee7fcf6b49d487e1b54508f68009b61a547104c8516e0dc35d3d17659ca098d023b0593908fe979c29e62373738a3c30094ba47105a49edbc6e1d37cce317b49d2701470eeb53d9b24dce9d809166]\n[key.wx = 78be6c43e366cf63ddc4235e8b969386e95012fbca5cebf1b0a6fe3c03c1257df7cf47b002eb6c4497f310bff6131b5ccb54fd0e8ee7fcf6b49d487e1b54508f68]\n[key.wy = 09b61a547104c8516e0dc35d3d17659ca098d023b0593908fe979c29e62373738a3c30094ba47105a49edbc6e1d37cce317b49d2701470eeb53d9b24dce9d809166]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040078be6c43e366cf63ddc4235e8b96", - "9386e95012fbca5cebf1b0a6fe3c03c1257df7cf47b002eb6c4497f310bff6131b5ccb54fd0e8ee7fcf6b49d487e1b54508f68009b61a547104c8516e0dc35d3d17659ca098d023b0593908fe979c29e62373738a3c30094ba47105a49edbc6e1d37cce317b49d2701470eeb53d9b24dce9d809166]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201cd4cae36fffffffffffffffffffffffffffffffffffffffffffffffffffffffffae18dcc11dff7526233d923a0b202cb29e713f22de8bb6ab0a12821c5abbe3f23\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040093f68961005f3040dc1a8ff1416c917bdcc77f1dfa85506c3bb62dac47f7be9529b4cbe57dd2c19e860bd2a0db71d47ef1eca8a20bfc3e0bc5e05c8303001c1960002b9a3d45f2f5120fee06445f0d34e6138e3ac5b16d2a22f0460cea258c368ca9e478eb7b8253e7c6f2f7250fdc7dcd7243761f8d56f2350ac51e47ee063f41da31]\n[key.wx = 093f68961005f3040dc1a8ff1416c917bdcc77f1dfa85506c3bb62dac47f7be9529b4cbe57dd2c19e860bd2a0db71d47ef1eca8a20bfc3e0bc5e05c8303001c1960]\n[key.wy = 2b9a3d45f2f5120fee06445f0d34e6138e3ac5b16d2a22f0460cea258c368ca9e478eb7b8253e7c6f2f7250fdc7dcd7243761f8d56f2350ac51e47ee063f41da31]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040093f68961005f3040dc1a8ff1416c917bdcc77f1dfa85506c3bb62dac47f7be9529b4cbe57dd2c19e860bd2a0db71d47ef1eca8a20bfc3e0bc5e05c8303001c1960002b9a3d45f2f5120fee06445f0d34e6138e3ac5b16d2a22f0460cea258c368ca9e478eb7b8253e7c6f2f7250fdc7dcd7243761f8d56f2350ac51e47ee063f41da31]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024122e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b9c4c3f73cc816143fac3412b62de4c63db08f8c57e4c58c31f1b457ca5e57e20a\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04002d2d7d40bf17c4e8b18757e451ddded95e6b1007cd144809d21af31353b03038372c4af204d4414b71060b48b3a8439c632809bd33c4736263044405a1ad766e3600bb0c5a8848f93fa3e85376b012bf064e303746529a673b852bb5a969c24c0156a8dd26242d0aad4bae43e23631b01fb9d050f9744b59f3b52b1c572217a1d70588]\n[key.wx = 2d2d7d40bf17c4e8b18757e451ddded95e6b1007cd144809d21af31353b03038372c4af204d4414b71060b48b3a8439c632809bd33c4736263044405a1ad766e36]\n[key.wy = 0bb0c5a8848f93fa3e85376b012bf064e303746529a673b852bb5a969c24c0156a8dd26242d0aad4bae43e23631b01fb9d050f9744b59f3b52b1c572217a1d70588]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004002d2d7d40bf17c4e8b18757e451ddded95e6b1007cd144809d21af31353b03038372c4af204d4414b71060b48b3a8439c632809bd33c4736263044405a1ad766e3600bb0c5a8848f93fa3e85376b012bf064e303746529a673b852bb5a969c24c0156a8dd26242d0aad4bae43e23631b01fb9d050f9744b59f3b52b1c572217a1d70588]\n[sha = SHA-512]\n\n# tcId = 385\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242010590b21642c8590b21642c8590b21642c8590b21642c8590b21642c8590b2164298eb57e5aff9343597a542d3132f9e734fdc305125e0ec139c5f780ee8e8cb9c2\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04018ac11dfe62d1f2a8202732c79b423d29f43bec4db6080a220796a10f2685f92c71c7f72d9da0a8acb22680cca018eba2e8ba3bfde1db9a4ef3b97da16474364e96005aad3b286707bd3ad07a060cabca49c53de4f56c05a0a8de40fd969d7d4f995f7c6701fe5c5321f85318b98be66251fa490088fd727da2454e00b3b94dc6e1241b]\n[key.wx = 18ac11dfe62d1f2a8202732c79b423d29f43bec4db6080a220796a10f2685f92c71c7f72d9da0a8acb22680cca018eba2e8ba3bfde1db9a4ef3b97da16474364e96]\n[key.wy = 5aad3b286707bd3ad07a060cabca49c53de4f56c05a0a8de40fd969d7d4f995f7c6701fe5c5321f85318b98be66251fa490088fd727da2454e00b3b94dc6e1241b]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004018ac11dfe62d1f2a8202732c79b423d29f43bec4db6080a220796a10f2685f92c71c7f72d9da0a8acb22680cca018eba2e8ba3bfde1db9a4ef3b97da16474364e96005aad3b286707bd3ad07a060cabca49c53de4f56c05a0a8de40fd969d7d4f995f7c6701fe5c5321f85318b98be66251fa490088fd727da2454e00b3b94dc6e1241b]\n[sha = SHA-512]\n\n# tcId = 386\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201a4924924924924924924924924924924924924924924924924924924924924924445e10670ed0437c9db4125ac4175fbd70e9bd1799a85f44ca0a8e61a3354e808\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040051b2c3e0494564ed48ed3479b596ea4078240550a3c28da33d71d259e8e623e37ab43f396c49363f31c8de8a4644d37e94ed80e0dd4f92c3df2106e2795c2798b800a530d5e961f0696bbeb962aca8e71f65956ae04cdc22a4ac65146943e99a4a2fdb477df75aa069c8dd37a5daaea3848079a6a7bc03e0faa3d65d42f8053db2078b]\n[key.wx = 51b2c3e0494564ed48ed3479b596ea4078240550a3c28da33d71d259e8e623e37ab43f396c49363f31c8de8a4644d37e94ed80e0dd4f92c3df2106e2795c2798b8]\n[key.wy = 0a530d5e961f0696bbeb962aca8e71f65956ae04cdc22a4ac65146943e99a4a2fdb477df75aa069c8dd37a5daaea3848079a6a7bc03e0faa3d65d42f8053db2078b]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040051b2c3e0494564ed48ed3479b596ea4078240550a3c28da33d71d259e8e623e37ab43f396c49363f31c8de8a4644d37e94ed80e0dd4f92c3df2106e2795c2798b800a530d5e961f0696bbeb962aca8e71f65956ae04cdc22a4ac65146943e99a4a2fdb477df75aa069c8dd37a5daaea3848079a6a7bc03e0faa3d65d42f8053db2078b]\n[sha = SHA-512]\n\n# tcId = 387\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201d5555555555555555555555555555555555555555555555555555555555555554fa6dbdcd91484ebc0d521569e4c5efb25910b1f0ddef19d0410c50c73e68db95f\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401ba31a6f9c2d227da57de00759e2e844d607bc9bd92bcdf282006884dc347c9284f0dc0623af1e9db22117364a7a80a5b067efa19b204dac8faf2230d80b704addc00d88b761cd3a4b0947bfc17e204b4d751f76880a82c9b7c6fd93ded55883c995002d8b8bfff1e021189c08d829d16b088f4fb39ad9456eafbc77c20353bc0f3c038]\n[key.wx = 1ba31a6f9c2d227da57de00759e2e844d607bc9bd92bcdf282006884dc347c9284f0dc0623af1e9db22117364a7a80a5b067efa19b204dac8faf2230d80b704addc]\n[key.wy = 0d88b761cd3a4b0947bfc17e204b4d751f76880a82c9b7c6fd93ded55883c995002d8b8bfff1e021189c08d829d16b088f4fb39ad9456eafbc77c20353bc0f3c038]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401ba31a6f9c2d227da57de00759e2e844d607bc9bd92bcdf282006884dc347c9284f0dc0623af1e9db22117364a7a80a5b067efa19b204dac8faf2230d80b704addc00d88b761cd3a4b0947bfc17e204b4d751f76880a82c9b7c6fd93ded55883c995002d8b8bfff1e021189c08d829d16b088f4fb39ad9456eafbc77c20353bc0f3c038]\n[sha = SHA-512]\n\n# tcId = 388\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4fc31322e69da41162a76abf3a1b4507ae66074633446f259661a61c93be30eb5\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040137bbb48ef281133849ed723f5662a19fff9cc7389a0170d311bd34f4dbdc656246db695ea0712d8aceff9d1d0ef7921ec2e3f8b533e4ca122f9f7f4460738893340163e4500d998095f60fa3fed4149d2d9b5b018e03eb5344efe8ffcc1c7d276e7401a4df639c4ab108820062495471be7b29398aadbae440a9bdcd55cf0bb5d96f79]\n[key.wx = 137bbb48ef281133849ed723f5662a19fff9cc7389a0170d311bd34f4dbdc656246db695ea0712d8aceff9d1d0ef7921ec2e3f8b533e4ca122f9f7f446073889334]\n[key.wy = 163e4500d998095f60fa3fed4149d2d9b5b018e03eb5344efe8ffcc1c7d276e7401a4df639c4ab108820062495471be7b29398aadbae440a9bdcd55cf0bb5d96f79]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040137bbb48ef281133849ed723f5662a19fff9cc7389a0170d311bd34f4dbdc656246db695ea0712d8aceff9d1d0ef7921ec2e3f8b533e4ca122f9f7f4460738893340163e4500d998095f60fa3fed4149d2d9b5b018e03eb5344efe8ffcc", - "1c7d276e7401a4df639c4ab108820062495471be7b29398aadbae440a9bdcd55cf0bb5d96f79]\n[sha = SHA-512]\n\n# tcId = 389\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400726dda8b7b6ed25f97f1fc6c3ccf554d60fc71e4fab2a578286d32612e7f3e669faed0b97619aef2d5aff9c8ffd987feddc0d6c38b7eec028191400874803f498b00c0b8870c612e06c13c57ed6f7ef3d53b5e5fa2db62707b034b5ec13fb47018e31da7ecc991d575943468d701e118eca33122cf6d394b8a6ec0f45bc09701603a26]\n[key.wx = 726dda8b7b6ed25f97f1fc6c3ccf554d60fc71e4fab2a578286d32612e7f3e669faed0b97619aef2d5aff9c8ffd987feddc0d6c38b7eec028191400874803f498b]\n[key.wy = 0c0b8870c612e06c13c57ed6f7ef3d53b5e5fa2db62707b034b5ec13fb47018e31da7ecc991d575943468d701e118eca33122cf6d394b8a6ec0f45bc09701603a26]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400726dda8b7b6ed25f97f1fc6c3ccf554d60fc71e4fab2a578286d32612e7f3e669faed0b97619aef2d5aff9c8ffd987feddc0d6c38b7eec028191400874803f498b00c0b8870c612e06c13c57ed6f7ef3d53b5e5fa2db62707b034b5ec13fb47018e31da7ecc991d575943468d701e118eca33122cf6d394b8a6ec0f45bc09701603a26]\n[sha = SHA-512]\n\n# tcId = 390\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201346cc7d4839b77f9f487c7e7f2841c5b7d05f966f3bde28f1fa080ce40037a74e3001a2b00bd39ee4c93072e9963724941383cf0812c02d1c838ad4502a12c619f\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc27970083f130792d6c45c8f2a67471e51246e2b8781465b8291cbda66d22719cd536bf801e0076030919d5701732ce7678bf472846ed0777937ed77caad74d05664614a2]\n[key.wx = 16fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797]\n[key.wy = 083f130792d6c45c8f2a67471e51246e2b8781465b8291cbda66d22719cd536bf801e0076030919d5701732ce7678bf472846ed0777937ed77caad74d05664614a2]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc27970083f130792d6c45c8f2a67471e51246e2b8781465b8291cbda66d22719cd536bf801e0076030919d5701732ce7678bf472846ed0777937ed77caad74d05664614a2]\n[sha = SHA-512]\n\n# tcId = 391\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 30818802420090c8d0d718cb9d8d81094e6d068fb13c16b4df8c77bac676dddfe3e68855bed06b9ba8d0f8a80edce03a9fac7da561e24b1cd22d459239a146695a671f81f73aaf024201150b0fe9f0dff27fa180cc9442c3bfc9e395232898607b110a51bcb1086cb9726e251a07c9557808df32460715950a3dc446ae4229b9ed59fe241b389aee3a6963\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797017c0ecf86d293ba370d598b8e1aedb91d4787eb9a47d6e3425992dd8e632ac9407fe1ff89fcf6e62a8fe8cd31898740b8d7b912f8886c8128835528b2fa99b9eb5d]\n[key.wx = 16fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797]\n[key.wy = 17c0ecf86d293ba370d598b8e1aedb91d4787eb9a47d6e3425992dd8e632ac9407fe1ff89fcf6e62a8fe8cd31898740b8d7b912f8886c8128835528b2fa99b9eb5d]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797017c0ecf86d293ba370d598b8e1aedb91d4787eb9a47d6e3425992dd8e632ac9407fe1ff89fcf6e62a8fe8cd31898740b8d7b912f8886c8128835528b2fa99b9eb5d]\n[sha = SHA-512]\n\n# tcId = 392\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 30818802420090c8d0d718cb9d8d81094e6d068fb13c16b4df8c77bac676dddfe3e68855bed06b9ba8d0f8a80edce03a9fac7da561e24b1cd22d459239a146695a671f81f73aaf024201150b0fe9f0dff27fa180cc9442c3bfc9e395232898607b110a51bcb1086cb9726e251a07c9557808df32460715950a3dc446ae4229b9ed59fe241b389aee3a6963\n# Some implementations of ECDSA do not handle duplication and points at infinity\n# correctly. This is a test vector that has been specially crafted to check for\n# such an omission.\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040110fb89aff135edb801a1cb5bc49525b81dc74da45090d228122871814f489fdcb02ebee46b703e6b4e6af56c5024422b31fd4252c44d0bfd29d945de782d98543f01ec425b4c4928e12b619227f1da6d0a9675070d9c5b49ca523050acb718e62643b0e5801543b76dc11f8d694ba09436d8391b477ad2c143ec50c2384c4f688512dc]\n[key.wx = 110fb89aff135edb801a1cb5bc49525b81dc74da45090d228122871814f489fdcb02ebee46b703e6b4e6af56c5024422b31fd4252c44d0bfd29d945de782d98543f]\n[key.wy = 1ec425b4c4928e12b619227f1da6d0a9675070d9c5b49ca523050acb718e62643b0e5801543b76dc11f8d694ba09436d8391b477ad2c143ec50c2384c4f688512dc]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040110fb89aff135edb801a1cb5bc49525b81dc74da45090d228122871814f489fdcb02ebee46b703e6b4e6af56c5024422b31fd4252c44d0bfd29d945de782d98543f01ec425b4c4928e12b619227f1da6d0a9675070d9c5b49ca523050acb718e62643b0e5801543b76dc11f8d694ba09436d8391b477ad2c143ec50c2384c4f688512dc]\n[sha = SHA-512]\n\n# tcId = 393\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401c693a3fccbc9f625284239c2725f2a5c90b29b7ce3d07730f7de6031c9e74446d217888ae023aae23df6a4aa153f58c79597d57f42ce5c1354e5dc43a5eb311e13015f99658443b2e39c3edcbcda70707fc5a4d39545eabe354816d09284a6265e47ebf0a47355828e818a767f8452a6d18451e0e3817a896ff404cb1611bfc4c4b4a3]\n[key.wx = 1c693a3fccbc9f625284239c2725f2a5c90b29b7ce3d07730f7de6031c9e74446d217888ae023aae23df6a4aa153f58c79597d57f42ce5c1354e5dc43a5eb311e13]\n[key.wy = 15f99658443b2e39c3edcbcda70707fc5a4d39545eabe354816d09284a6265e47ebf0a47355828e818a767f8452a6d18451e0e3817a896ff404cb1611bfc4c4b4a3]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401c693a3fccbc9f625284239c2725f2a5c90b29b7ce3d07730f7de6031c9e74446d217888ae023aae23df6a4aa153f58c79597d57f42ce5c1354e5dc43a5eb311e13015f99658443b2e39c3edcbcda70707fc5a4d39545eabe354816d09284a6265e47ebf0a47355828e818a767f8452a6d18451e0e3817a896ff404cb1611bfc4c4b4a3]\n[sha = SHA-512]\n\n# tcId = 394\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3081870242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81401\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04017d7bf723678df574ce4366741e1d3787f834af9997b41c8260a074cb1f325d2bae9f8565dc6b51b6cb02dceeb5a1b774ee8dd7057c99e2d94c3c71299a9ce0f1b00162c65632fff88bdbb17ce2525ccac8df37c501ab0e6626e273fb6cf99000424344c0ac539c9fd6c4f3d28876b257c010d347a45bb010cc058443843a758328d491]\n[key.wx = 17d7bf723678df574ce4366741e1d3787f834af9997b41c8260a074cb1f325d2bae9f8565dc6b51b6cb02dceeb5a1b774ee8dd7057c99e2d94c3c71299a9ce0f1b0]\n[key.wy = 162c65632fff88bdbb17ce2525ccac8df37c501ab0e6626e273fb6cf99000424344c0ac539c9fd6c4f3d28876b257c010d347a45bb010cc058443843a758328d491]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004017d7bf723678df574ce4366741e1d3787f834af9997b41c8260a074cb1f325d2bae9", - "f8565dc6b51b6cb02dceeb5a1b774ee8dd7057c99e2d94c3c71299a9ce0f1b00162c65632fff88bdbb17ce2525ccac8df37c501ab0e6626e273fb6cf99000424344c0ac539c9fd6c4f3d28876b257c010d347a45bb010cc058443843a758328d491]\n[sha = SHA-512]\n\n# tcId = 395\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 308187024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81401\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401e06db423a902e239b97340ab052534ead37e79412c675bf0eb823999e6b731040bff2b0e4fa64edf3962a328921ea5ae4e8f4079eab439e12f92335dfc4863c07f007ee9f0ecb409cb133c0cd08b85e840b076f3d615e1ef1393b5222338b227d768003da5f3ba1f72f6654ca54ac11c2ba91a6cb5883d6d1a82304ad2b79de09215f3]\n[key.wx = 1e06db423a902e239b97340ab052534ead37e79412c675bf0eb823999e6b731040bff2b0e4fa64edf3962a328921ea5ae4e8f4079eab439e12f92335dfc4863c07f]\n[key.wy = 7ee9f0ecb409cb133c0cd08b85e840b076f3d615e1ef1393b5222338b227d768003da5f3ba1f72f6654ca54ac11c2ba91a6cb5883d6d1a82304ad2b79de09215f3]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401e06db423a902e239b97340ab052534ead37e79412c675bf0eb823999e6b731040bff2b0e4fa64edf3962a328921ea5ae4e8f4079eab439e12f92335dfc4863c07f007ee9f0ecb409cb133c0cd08b85e840b076f3d615e1ef1393b5222338b227d768003da5f3ba1f72f6654ca54ac11c2ba91a6cb5883d6d1a82304ad2b79de09215f3]\n[sha = SHA-512]\n\n# tcId = 396\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3081870241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04015053744d53811dbed8880f38d3a34578a7f1c172ec65bd8ad8183ba0ae10093416107f3c942742bde60719949b2c4f026f43582125c99ed48cbc7c5a051a5a744800b36d4c91a2b0367c566b2c12981ce0fdbc3beb983717403f69bf4264fc6182478af0b236ff120bcfca116924c552abef6663b6023be1986b70206d9bb89b5ed298]\n[key.wx = 15053744d53811dbed8880f38d3a34578a7f1c172ec65bd8ad8183ba0ae10093416107f3c942742bde60719949b2c4f026f43582125c99ed48cbc7c5a051a5a7448]\n[key.wy = 0b36d4c91a2b0367c566b2c12981ce0fdbc3beb983717403f69bf4264fc6182478af0b236ff120bcfca116924c552abef6663b6023be1986b70206d9bb89b5ed298]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004015053744d53811dbed8880f38d3a34578a7f1c172ec65bd8ad8183ba0ae10093416107f3c942742bde60719949b2c4f026f43582125c99ed48cbc7c5a051a5a744800b36d4c91a2b0367c566b2c12981ce0fdbc3beb983717403f69bf4264fc6182478af0b236ff120bcfca116924c552abef6663b6023be1986b70206d9bb89b5ed298]\n[sha = SHA-512]\n\n# tcId = 397\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081860241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401fb2e26596cc80473917dd46b4a1d14bd9a1ca9769dd12bfac1bff17cdc282e74c73a801ec1be83edfe4bfe9813ec943ac151678f0a9a0bf27d9ef308177eb0400f019e03a5da3da67e6b8d068dbdacf091b9d5efadaf63f4a7e9c6b6ed0a1c9a5d3cbc3e0244d481066018fba7674a2b59139a5656780563bb4618014f176752e177e0]\n[key.wx = 1fb2e26596cc80473917dd46b4a1d14bd9a1ca9769dd12bfac1bff17cdc282e74c73a801ec1be83edfe4bfe9813ec943ac151678f0a9a0bf27d9ef308177eb0400f]\n[key.wy = 19e03a5da3da67e6b8d068dbdacf091b9d5efadaf63f4a7e9c6b6ed0a1c9a5d3cbc3e0244d481066018fba7674a2b59139a5656780563bb4618014f176752e177e0]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401fb2e26596cc80473917dd46b4a1d14bd9a1ca9769dd12bfac1bff17cdc282e74c73a801ec1be83edfe4bfe9813ec943ac151678f0a9a0bf27d9ef308177eb0400f019e03a5da3da67e6b8d068dbdacf091b9d5efadaf63f4a7e9c6b6ed0a1c9a5d3cbc3e0244d481066018fba7674a2b59139a5656780563bb4618014f176752e177e0]\n[sha = SHA-512]\n\n# tcId = 398\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081870241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d0242019999999999999999999999999999999999999999999999999999999999999999950e053936328c7855ffd6676d926e1e402fc4a1606e169fbefc595f4ba7605007\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04008422cea9dcf8ae01f7a157888f018a40a66461d3566ec4a4dfc89ecb3c2404be734d329137d630387b012d033221857d5bfb290fa8027640b4063072a3e5b14c860025a219e724b81814901a677a8bee9b716b33b16a5b65f2272956a46b5e8683dc896984309ac79449657a1895c9f62bde99c7f5e24ed2defbc9f8dde35ebd0bddc1]\n[key.wx = 08422cea9dcf8ae01f7a157888f018a40a66461d3566ec4a4dfc89ecb3c2404be734d329137d630387b012d033221857d5bfb290fa8027640b4063072a3e5b14c86]\n[key.wy = 25a219e724b81814901a677a8bee9b716b33b16a5b65f2272956a46b5e8683dc896984309ac79449657a1895c9f62bde99c7f5e24ed2defbc9f8dde35ebd0bddc1]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004008422cea9dcf8ae01f7a157888f018a40a66461d3566ec4a4dfc89ecb3c2404be734d329137d630387b012d033221857d5bfb290fa8027640b4063072a3e5b14c860025a219e724b81814901a677a8bee9b716b33b16a5b65f2272956a46b5e8683dc896984309ac79449657a1895c9f62bde99c7f5e24ed2defbc9f8dde35ebd0bddc1]\n[sha = SHA-512]\n\n# tcId = 399\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081860241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81402\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401bc19cf4b94bcd34114ce83c5f1a7e048e2fc4fd457d57e39b3da29f4766acbaef1c10cb13c796a6fffb56d6a392e47b6c74522df7fa02754c33d95b1a9a3c92a1500f5744c2bed308cb4f41b512e632cd01d270ef1a0d3f47ea780e73c6a6c9ea6a996faef4d282896c64fa50f5b04e204c56b504bc122ffba7aea4574d7d7ab6303c0]\n[key.wx = 1bc19cf4b94bcd34114ce83c5f1a7e048e2fc4fd457d57e39b3da29f4766acbaef1c10cb13c796a6fffb56d6a392e47b6c74522df7fa02754c33d95b1a9a3c92a15]\n[key.wy = 0f5744c2bed308cb4f41b512e632cd01d270ef1a0d3f47ea780e73c6a6c9ea6a996faef4d282896c64fa50f5b04e204c56b504bc122ffba7aea4574d7d7ab6303c0]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401bc19cf4b94bcd34114ce83c5f1a7e048e2fc4fd457d57e39b3da29f4766acbaef1c10cb13c796a6fffb56d6a392e47b6c74522df7fa02754c33d95b1a9a3c92a1500f5744c2bed308cb4f41b512e632cd01d270ef1a0d3f47ea780e73c6a6c9ea6a996faef4d282896c64fa50f5b04e204c56b504bc122ffba7aea4574d7d7ab6303c0]\n[sha = SHA-512]\n\n# tcId = 400\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081870241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d024201b6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db68d82a2b033628ca12ffd36ed0d3bf206957c063c2bf183d7132f20aac7c797a51\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04017b0ebce08b09f21e30d15e0edd9fcdf24ab4831ec8a65a3d1e38f72b15f0115da6ed1885e42fcfae31c0914b71e9df2cd106adc039a82810a92924dd154dc05da300c614d1afc4f63de3803bb5490a34e1e2fab9eb78422b21d377fc0d7f991b938c22f4d7dd665f8dd21fadde43172a55f80d05cc4557b6663f9e7a3fe490d25c5531]\n[key.wx = 17b0ebce08b09f21e30d15e0edd9fcdf24ab4831ec8a65a3d1e38f72b15f0115da6ed1885e42fcfae31c0914b71e9df2cd106adc039a82810a92924dd154dc05da3]\n[key.wy = 0c614d1afc4f63de3803bb5490a34e1e2fab9eb78422b21d377fc0d7f991b938c22f4d7dd665f8dd21fadde43172a55f80d05cc4557b6663f9e7a3fe490d25c5531]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004017b0ebce08b09f21e30d15e0edd9fcdf24ab4831ec8a65a3d1e38f72b15f0115da6ed1885e42fcfae31c0914b71e9df2cd106adc039a82810a92924dd154dc05da300c614d1afc4f63de3803", - "bb5490a34e1e2fab9eb78422b21d377fc0d7f991b938c22f4d7dd665f8dd21fadde43172a55f80d05cc4557b6663f9e7a3fe490d25c5531]\n[sha = SHA-512]\n\n# tcId = 401\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3081860241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d02410eb10e5ab95f2f26a40700b1300fb8c3c8d5384ffbecf1fdb9e11e67cb7fd6a7f503e6e25ac09bb88b6c3983df764d4d72bc2920e233f0f7974a234a21b00bb447\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040004c3ec8d7d23ce74be8b9c7c27be869c23bafc6874ebc44f47e107422ab1e75ed09bebd7cb1ec4626e442bcf512a25c5ddde26eb08ba37506461830cf9241cbe9c0050a1bc08f4ba8da1d641ac3891823ab519facd4159768b1c0738f0e23450f374e4d6de55cceed95722be635c5dc0023a1498862f87bfe61d77e20e592cc20bb2ca]\n[key.wx = 4c3ec8d7d23ce74be8b9c7c27be869c23bafc6874ebc44f47e107422ab1e75ed09bebd7cb1ec4626e442bcf512a25c5ddde26eb08ba37506461830cf9241cbe9c]\n[key.wy = 50a1bc08f4ba8da1d641ac3891823ab519facd4159768b1c0738f0e23450f374e4d6de55cceed95722be635c5dc0023a1498862f87bfe61d77e20e592cc20bb2ca]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040004c3ec8d7d23ce74be8b9c7c27be869c23bafc6874ebc44f47e107422ab1e75ed09bebd7cb1ec4626e442bcf512a25c5ddde26eb08ba37506461830cf9241cbe9c0050a1bc08f4ba8da1d641ac3891823ab519facd4159768b1c0738f0e23450f374e4d6de55cceed95722be635c5dc0023a1498862f87bfe61d77e20e592cc20bb2ca]\n[sha = SHA-512]\n\n# tcId = 402\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 308188024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400a7c8204f2864dcef089165c3914dcc2c0896075870ca0bc1ce37856f80f23815b0c8f2ec05145c421049e80ec1e7694f9f04174bbef21bc0972e559cf222de7e1a01ff1108c28f01b703820e1c0187912962ab23109618dfcb0c062ccee339002222a3f7dd8dd21675b0e20908fe5855ea876d6a9e02c5f5b793d38fdf79fb83603ea9]\n[key.wx = 0a7c8204f2864dcef089165c3914dcc2c0896075870ca0bc1ce37856f80f23815b0c8f2ec05145c421049e80ec1e7694f9f04174bbef21bc0972e559cf222de7e1a]\n[key.wy = 1ff1108c28f01b703820e1c0187912962ab23109618dfcb0c062ccee339002222a3f7dd8dd21675b0e20908fe5855ea876d6a9e02c5f5b793d38fdf79fb83603ea9]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400a7c8204f2864dcef089165c3914dcc2c0896075870ca0bc1ce37856f80f23815b0c8f2ec05145c421049e80ec1e7694f9f04174bbef21bc0972e559cf222de7e1a01ff1108c28f01b703820e1c0187912962ab23109618dfcb0c062ccee339002222a3f7dd8dd21675b0e20908fe5855ea876d6a9e02c5f5b793d38fdf79fb83603ea9]\n[sha = SHA-512]\n\n# tcId = 403\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308187024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd660241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401802fc79fc8e55bce50a581632b51d6eec04a3c74ac2bf4fae16ce6c7efef1701d69f9c00a91ad521d75ac7539d54bf464caeec871456103dc974354460898a19c600722fc1f528506618b1da9f8b2edbdbdaf7eec02e8fb9203d2b277735a1d867911b131f453f52ccc4ced05c3b1bc29e4d20f1e6d34979faa688ce8003f79d8e0c95]\n[key.wx = 1802fc79fc8e55bce50a581632b51d6eec04a3c74ac2bf4fae16ce6c7efef1701d69f9c00a91ad521d75ac7539d54bf464caeec871456103dc974354460898a19c6]\n[key.wy = 722fc1f528506618b1da9f8b2edbdbdaf7eec02e8fb9203d2b277735a1d867911b131f453f52ccc4ced05c3b1bc29e4d20f1e6d34979faa688ce8003f79d8e0c95]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401802fc79fc8e55bce50a581632b51d6eec04a3c74ac2bf4fae16ce6c7efef1701d69f9c00a91ad521d75ac7539d54bf464caeec871456103dc974354460898a19c600722fc1f528506618b1da9f8b2edbdbdaf7eec02e8fb9203d2b277735a1d867911b131f453f52ccc4ced05c3b1bc29e4d20f1e6d34979faa688ce8003f79d8e0c95]\n[sha = SHA-512]\n\n# tcId = 404\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308188024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd660242019999999999999999999999999999999999999999999999999999999999999999950e053936328c7855ffd6676d926e1e402fc4a1606e169fbefc595f4ba7605007\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401beb0b4c2e494226404fca4ad505ebfed13d184b1572683215b16173c29a4475aede47f266e0c9c4143137d3e0001f9f0148b689286a7c64e229458b824ed7658360130205169783ed9ada9f3a193027ae4e21829ad4a71d05d969605c04f3231dabab03beb2fab07dd8323d7132755734f4e6d1fb43fc8a63bfd244160c23efb6c1429]\n[key.wx = 1beb0b4c2e494226404fca4ad505ebfed13d184b1572683215b16173c29a4475aede47f266e0c9c4143137d3e0001f9f0148b689286a7c64e229458b824ed765836]\n[key.wy = 130205169783ed9ada9f3a193027ae4e21829ad4a71d05d969605c04f3231dabab03beb2fab07dd8323d7132755734f4e6d1fb43fc8a63bfd244160c23efb6c1429]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401beb0b4c2e494226404fca4ad505ebfed13d184b1572683215b16173c29a4475aede47f266e0c9c4143137d3e0001f9f0148b689286a7c64e229458b824ed7658360130205169783ed9ada9f3a193027ae4e21829ad4a71d05d969605c04f3231dabab03beb2fab07dd8323d7132755734f4e6d1fb43fc8a63bfd244160c23efb6c1429]\n[sha = SHA-512]\n\n# tcId = 405\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308187024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81402\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040121e59aaf26b8301f4fcc3e0a563c4104ae00b47c55b8945ce749116fdf6761d768bd50ed431e2b51e646fe4fe7dc2985b6aefa7f9441ea11840d2ace2f34293cb1000cf1e1a46d4d637216e28abd124cc641ae7a673445d573856bc2fec58d86e5ed63bc2a7f2049234e335a7bee95bb2724fb1480c97c38cd0d296cbcc113de3f135f]\n[key.wx = 121e59aaf26b8301f4fcc3e0a563c4104ae00b47c55b8945ce749116fdf6761d768bd50ed431e2b51e646fe4fe7dc2985b6aefa7f9441ea11840d2ace2f34293cb1]\n[key.wy = 0cf1e1a46d4d637216e28abd124cc641ae7a673445d573856bc2fec58d86e5ed63bc2a7f2049234e335a7bee95bb2724fb1480c97c38cd0d296cbcc113de3f135f]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040121e59aaf26b8301f4fcc3e0a563c4104ae00b47c55b8945ce749116fdf6761d768bd50ed431e2b51e646fe4fe7dc2985b6aefa7f9441ea11840d2ace2f34293cb1000cf1e1a46d4d637216e28abd124cc641ae7a673445d573856bc2fec58d86e5ed63bc2a7f2049234e335a7bee95bb2724fb1480c97c38cd0d296cbcc113de3f135f]\n[sha = SHA-512]\n\n# tcId = 406\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308188024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66024201b6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db68d82a2b033628ca12ffd36ed0d3bf206957c063c2bf183d7132f20aac7c797a51\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04008e859e66d1237fdc928a4b954954fef565d203a0731d065d9df41a4fd3812b1cc2487053ea19ce839d200845952f80d80698771d83ccc1fc7f236dbee4c76b2bb4005a04b24c88cd40233fb43c59ea5cf2cb9510d16b1168bc126db64aaf9ab07a7453208fde079095966272bf03bc3312c9b9bab8c795ae375e8a0e8dd81c924e7c27]\n[key.wx = 08e859e66d1237fdc928a4b954954fef565d203a0731d065d9df41a4fd3812b1cc2487053ea19ce839d200845952f80d80698771d83ccc1fc7f236dbee4c76b2bb4]\n[key.wy = 5a04b24c88cd40233fb43c59ea5cf2cb9510d16b1168bc126db64aaf9ab07a7453208fde079095966272bf03bc3312c9b9bab8c795ae375e8a0e8dd81c924e7c27]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004008e859e66d1237fdc928a4b954954fef565d203a0731d065d9df41a4fd3812b1cc2487053ea19ce839d200845952f80d80698771d83ccc1fc7f236dbee4c76b2bb4005a04b24c88cd40233fb43c59ea5cf2cb9510d16b1168bc126db64aaf9ab07a7453208fde079095966272bf03bc3312c9b9bab8c795ae375e8a0e", - "8dd81c924e7c27]\n[sha = SHA-512]\n\n# tcId = 407\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 308187024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd6602410eb10e5ab95f2f26a40700b1300fb8c3c8d5384ffbecf1fdb9e11e67cb7fd6a7f503e6e25ac09bb88b6c3983df764d4d72bc2920e233f0f7974a234a21b00bb447\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650]\n[key.wx = 0c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66]\n[key.wy = 11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650]\n[sha = SHA-512]\n\n# tcId = 408\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308185024043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n# tcId = 409\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308187024201ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94fdcdefd78dc0b56a22d16f2eec26ae0c1fb484d059300e80bd6b0472b3d1222ff5d08b03d0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd6600e7c6d6958765c43ffba375a04bd382e426670abbb6a864bb97e85042e8d8c199d368118d66a10bd9bf3aaf46fec052f89ecac38f795d8d3dbf77416b89602e99af]\n[key.wx = 0c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66]\n[key.wy = 0e7c6d6958765c43ffba375a04bd382e426670abbb6a864bb97e85042e8d8c199d368118d66a10bd9bf3aaf46fec052f89ecac38f795d8d3dbf77416b89602e99af]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd6600e7c6d6958765c43ffba375a04bd382e426670abbb6a864bb97e85042e8d8c199d368118d66a10bd9bf3aaf46fec052f89ecac38f795d8d3dbf77416b89602e99af]\n[sha = SHA-512]\n\n# tcId = 410\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308185024043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n# tcId = 411\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308187024201ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94fdcdefd78dc0b56a22d16f2eec26ae0c1fb484d059300e80bd6b0472b3d1222ff5d08b03d0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 04012a908bfc5b70e17bdfae74294994808bf2a42dab59af8b0523a026d640a2a3d6d344520b62177e2cfa339ca42fb0883ec425904fbda2833a3b5b0a9a00811365d8012333d532f8f8eb1a623c378a3694651192bbda833e3b8d7b8f90b2bfc9b045f8a55e1b6a5fe1512c400c4bc9c86fd7c699d642f5cee9bb827c8b0abc0da01cef1e]\n[key.wx = 12a908bfc5b70e17bdfae74294994808bf2a42dab59af8b0523a026d640a2a3d6d344520b62177e2cfa339ca42fb0883ec425904fbda2833a3b5b0a9a00811365d8]\n[key.wy = 12333d532f8f8eb1a623c378a3694651192bbda833e3b8d7b8f90b2bfc9b045f8a55e1b6a5fe1512c400c4bc9c86fd7c699d642f5cee9bb827c8b0abc0da01cef1e]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004012a908bfc5b70e17bdfae74294994808bf2a42dab59af8b0523a026d640a2a3d6d344520b62177e2cfa339ca42fb0883ec425904fbda2833a3b5b0a9a00811365d8012333d532f8f8eb1a623c378a3694651192bbda833e3b8d7b8f90b2bfc9b045f8a55e1b6a5fe1512c400c4bc9c86fd7c699d642f5cee9bb827c8b0abc0da01cef1e]\n[sha = SHA-512]\n\n# tcId = 412\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 308188024201625d6115092a8e2ee21b9f8a425aa73814dec8b2335e86150ab4229f5a3421d2e6256d632c7a4365a1ee01dd2a936921bbb4551a512d1d4b5a56c314e4a02534c5024201b792d23f2649862595451055777bda1b02dc6cc8fef23231e44b921b16155cd42257441d75a790371e91819f0a9b1fd0ebd02c90b5b774527746ed9bfe743dbe2f\n\n# tcId = 413\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30818602415adc833cbc1d6141ced457bab2b01b0814054d7a28fa8bb2925d1e7525b7cf7d5c938a17abfb33426dcc05ce8d44db02f53a75ea04017dca51e1fbb14ce3311b1402415f69b2a6de129147a8437b79c72315d35173d88c2d6119085c90dae8ec05c55e067e7dfa4f681035e3dccab099291c0ecf4428332a9cb0736d16e79111ac76d766\n\n# tcId = 414\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 3081880242014141e4d94a58c1e747cbd9ee6670a41eac3c26fb4db3248e45d583179076e6b19a8e2003657a108f91f9a103157edff9b37df2b436a77dc112927d907ac9ba258702420108afa91b34bd904c680471e943af336fb90c5fb2b91401a58c9b1f467bf81af8049965dd8b45f12e152f4f7fd3780e3492f31ed2680d4777fbe655fe779ad897ab\n\n# tcId = 415\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 308187024108135d3f1ae9e26fba825643ed8a29d63d7843720e93566aa09db2bdf5aaa69afbcc0c51e5295c298f305ba7b870f0a85bb5699cdf40764aab59418f77c6ffb4520242011d345256887fb351f5700961a7d47572e0d669056cb1d5619345c0c987f3331c2fe2c6df848a5c610422defd6212b64346161aa871ae55b1fe4add5f68836eb181\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a00000000009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[key.wx = 304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a]\n[key.wy = 09b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a00000000009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[sha = SHA-512]\n\n# tcId = 416\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081870242011c9684af6dc52728410473c63053b01c358d67e81f8a1324ad711c60481a4a86dd3e75de20ca55ce7a9a39b1f82fd5da4fadf26a5bb8edd467af8825efe4746218024134c058aba6488d6943e11e0d1348429449ea17ac5edf8bcaf654106b98b2ddf346c537b8a9a3f9b3174b77637d220ef5318dbbc33d0aac0fe2ddeda17b23cb2de6\n\n# tcId = 417\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30818702417c47a668625648cd8a31ac92174cf3d61041f7ad292588def6ed143b1ff9a288fd20cf36f58d4bfe4b2cd4a381d4da50c8eda5674f020449ae1d3dd77e44ed485e024201058e86b327d284e35bab49fc7c335417573f310afa9e1a53566e0fae516e099007965030f6f46b077116353f26cb466d1cf3f35300d744d2d8f883c8a31b43c20d\n\n# tcId = 418\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201e4e9f3a7b800de63407b8703ac545226541c97a673566711f70e2b9ccb21a145ad4637825b023d1ea9f18e60897413711611a85c1179bff9c107368f1c1b61c24c02", - "4201de948ee577c3d4e4122a52ecccac59abb6fa937dfb3e4b988cb243efe98740309452ba013112b225b3b1b1384d5f68796845199a2602a8d4505a331b07d101188e\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[key.wx = 304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a]\n[key.wy = 1ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[sha = SHA-512]\n\n# tcId = 419\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308187024200b6cf64861a2b16e33976095dbf45a592c7c24228c4a1dd727f303d5eeb87e5388ad05c328f824c40abd3e6ce003fef5cd59dee0069ad6348ea6e57f90f6bdc0a820241228181c180366e5451dfef3593ce664804cb42d5a8d5046b816b3daf6602fafd9ac2dc24b8c93a10024480882558b6ad3d9e905923dcd0fd2a11964754a9b46b8f\n\n# tcId = 420\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420093c8f766827d6dc15c810fa30433153a5e742859205ee8389fbf695c8840dc917440870acc5b160087ffd0cd9a6081029c60a7c26d5e8aa9a0570f4efdeb13dea20242012ec3bbf75a0ad3df40310266648a36db820217ed7fa94e9c8313e03293ef4f6a40e736fb8f208ad8fb883ca509d48046910523645459c27829d54431463b2548c7\n\n# tcId = 421\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420152388c6da66164b706b41dd4dd48176d6eaf6525f876ef0ff2d147f6966ebfadf1767fa66d04203d3ec9c937a1f0c945aed953e34be444c219fd3b94d3277aa652024201658c1e5b2e563a49d11c883d05c491d628f0a92c3e3dc8db9a4c8d5f0dc846ac22af8b3c5fb5bbe2cfa98614dcffd87de1cee2c5912a5899505a0c5bcaa513e2c6\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 040000000002fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[key.wx = 2fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b]\n[key.wy = 1993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040000000002fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[sha = SHA-512]\n\n# tcId = 422\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081880242010e89470f981d2c7c5c96587121a67323bb96ff2427739d0d885ea277293efa3b25c0bda04d81466198a3cbfc441f1b1b98f6bcdc2589d9d91a17a7899f70d0461e0242017351b0da8c8d0e4aa0974669d190fa2f90aa50227160594dfb55755002365441de17ea42902128a6f81e554177ed509c0cec31fd5053fae03f62ff76579ba92bda\n\n# tcId = 423\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081880242011094ac23ca46a3e2b4ac3baae6504f1bfb3ddf2db9ab40eda32d8e0a05727998f8552a033bb05241e826a86a1d03014eae3aa5fe1a45caac1db3e8138b9cf5906802420147edb15a5080ee2f929f78b6ac86604aae51b674fa46eaae7fdfd90bf64d6189341155f4eba937eae74c9e480eb4fb7e6aafd4285e7fc503ee6ec20f0b1415be06\n\n# tcId = 424\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201d876ae174da31e128babff9f1d15507660bdc7958750844dc4f4291f75a882a22f177f704be6067bf7ce8f06b8626d971e6ef5dcb666fa975c1e11126e04fccce2024201abb12630a68b669e6ad2d8d62654d75dfbc6b54a8e3a9c915be663e080ddcc348e57a10e2b1dd9f03e1b897796ad889b075e5919dc5bf37a112d92c693456e6457\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0401fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca6333101b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d0de6d2de407fd7117551a70826eada6]\n[key.wx = 1fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca63331]\n[key.wy = 1b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d0de6d2de407fd7117551a70826eada6]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca6333101b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d0de6d2de407fd7117551a70826eada6]\n[sha = SHA-512]\n\n# tcId = 425\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818602414ed692af1ed1b4bd5cea3aa8ddc6f3f15d8a6ee0016fa0e8eb958580e7421832ecc0e387c34aafac6380bac419ea45c42ae6426af503847f22c49c2f456338c1a702417aceadde02ace1668bc1a3360d34e125afde230f536c154d91e6c876bee1d34ae06edcbbca0c7cd17646840913164740b12e2e224fe3ef3dec6fd84a81b581c188\n\n# tcId = 426\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308188024200e01094048fcf7a1e2ec66faedffc40f48c9c93514325bde6b4958d80f0413efde7eec1dc6de65f96009c069397e51da2eb1729efa287afd5552b25a9e427a6d836024201489e7e124f66942e642de992e60b3a86fcce576767719390c3a312fcdeaa560a7fbb0cabb35e05a6d6f3499160fd2dba12d29b613b16dec7494c950d65fdf11fa3\n\n# tcId = 427\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201d296292213380de133dc66eceb8bd857a5c468afe855c05da9db937373b51f9020ca11353415da76bb6af997a486d2370e31adcc0a4531952a3b59428678ee59430242015979a3c609c2c2099ae1b290da3d613b248e3a10de7ad770dffc82fb33e74fc3207533f97285cf4557a6407e9a775e59efeaee4264b2634933a6baf8c406f0c4a9\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = ECPublicKey]\n[key.uncompressed = 0400c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd4913490008bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[key.wx = 0c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd491349]\n[key.wy = 08bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd4913490008bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[sha = SHA-512]\n\n# tcId = 428\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201ef8f785c51a25ae2cd93487b5c848d4af133217a91f51359c966e7538e68743578122df5830002f96f6fadb5bc44480e3b3b2c804e4c51cf95d059d5646c5cef21024201ba2276cc003e87bea37c3724e58a0ab885f56d09b8b5718f674f9c70f3b5ecfb4ad1f3417b420ec40810e08826efa7d8ad6ca7c6a7840348097f92b2de8d6e080b\n\n# tcId = 429\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420155978adc4b570d897511f5ecfb65a31947e6e989da17dea716625bb3fa7b92b853623eb0cd9ce2a5e2b4d8c1c2a90ec04fe79d012576ec728a45c5ce47c6d500c0024200f79fa8b94ee282a3d1815892cbf15d7ebdf62cb042c76bb3c710c23e32b75992cc249d84072198e", - "4ed63d72435a07d2ed76f278d7399f61a5b5c997f45692fed22\n\n# tcId = 430\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201a2af29c58184ca861e7cd931f39cea064b199eee563f241cd5ecf6ebb2ade728f1be23cf007ebe8ef0c42d99f9f5190f6815446afc3043a820d7daf27e86b83b8a024201a2acd1822eb539383defff8769aad8bacd50cd24ca7aa6670671418110177808c3f4fbe6041b9cb898359ee61e04824adedd62b39fe5791907a20586333bd3c76d\n\n", +static const char *kData106[] = { + "# Imported from Wycheproof's ecdsa_secp521r1_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: ECDSA\n# Generator version: 0.8r12\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04005c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508007878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[key.wx = 5c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508]\n[key.wy = 7878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508007878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]\n[sha = SHA-512]\n\n# tcId = 1\n# signature malleability\nmsg = 313233343030\nresult = valid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024201d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5a27a24a1aae1e218fdccd8cd7d4990b666d4bf4902b84fdad123f941fe906d948\n\n# tcId = 2\n# valid\nmsg = 313233343030\nresult = valid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 3\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 3082008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 4\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 5\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 6\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3085010000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 7\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 308901000000000000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 8\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30847fffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 9\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3084ffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 10\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3085ffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 11\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3088ffffffffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 12\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30ff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 13\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 14\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 30818602804e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 15\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645028028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 16\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 17\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 30\n\n# tcId = 18\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 19\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 308188000002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 20\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 21\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df92", + "3a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10500\n\n# tcId = 22\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818c49817730818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 23\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b250030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 24\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818930818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef\n\n# tcId = 25\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b224649817702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 26\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818a2245250002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 27\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818e224302414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450004deadbeef024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 28\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452246498177024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 29\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864522452500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 30\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452243024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef\n\n# tcId = 31\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818faa00bb00cd0030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 32\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818daa02aabb30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 33\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818e2249aa00bb00cd0002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 34\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818c2247aa02aabb02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 35\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452249aa00bb00cd00024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 36\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30818c02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452247aa02aabb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 37\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081\n\n# tcId = 38\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 39\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30818a228002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 40\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 41\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 308031818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 42\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30818a228003414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 43\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280034128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 44\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0500\n\n# tcId = 45\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf", + "8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 46\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 47\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 31818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 48\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 32818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 49\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ff818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 50\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3000\n\n# tcId = 51\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818b300102308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 52\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a\n\n# tcId = 53\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 54\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\nflags = BER\n\n# tcId = 55\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac100\n\n# tcId = 56\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac105000000\n\n# tcId = 57\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1060811220000\n\n# tcId = 58\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000fe02beef\n\n# tcId = 59\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10002beef\n\n# tcId = 60\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 308188300002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 61\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac13000\n\n# tcId = 62\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 30818902414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1bf7f00\n\n# tcId = 63\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 30818930818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 64\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 304302414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645\n\n# tcId = 65\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3081c902414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 66\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 3081870281414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 67\n# long form encoding of length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502814128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 68\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 308188028200414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf", + "8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 69\n# length of integer contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450282004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 70\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602424e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 71\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602404e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 72\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024228b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 73\n# wrong length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 74\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818b028501000000414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 75\n# uint32 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450285010000004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 76\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818f02890100000000000000414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 77\n# uint64 overflow in length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818f02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645028901000000000000004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 78\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a02847fffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 79\n# length of integer = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502847fffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 80\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a0284ffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 81\n# length of integer = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450284ffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 82\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818b0285ffffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 83\n# length of integer = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450285ffffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 84\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818e0288ffffffffffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 85\n# length of integer = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450288ffffffffffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 86\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602ff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 87\n# incorrect length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502ff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 88\n# removing integer\nmsg = 313233343030\nresult = invalid\nsig = 3043024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 89\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 304402024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 90\n# lonely integer tag\nmsg = 313233343030\nresult = invalid\nsig = 304402414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502\n\n# tcId = 91\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802434e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e", + "43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 92\n# appending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024328b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000\n\n# tcId = 93\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 308188024300004e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 94\n# prepending 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450243000028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\nflags = BER\n\n# tcId = 95\n# appending unused 0's to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 96\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802434e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 97\n# appending null value to integer\nmsg = 313233343030\nresult = invalid\nsig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024328b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10500\n\n# tcId = 98\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 30450281024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 99\n# truncated length of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450281\n\n# tcId = 100\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 30450500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 101\n# Replacing integer with NULL\nmsg = 313233343030\nresult = invalid\nsig = 304502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450500\n\n# tcId = 102\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818600414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 103\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818601414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 104\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818603414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 105\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818604414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 106\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 308186ff414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 107\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 108\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645014128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 109\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645034128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 110\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645044128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 111\n# changing tag value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645ff4128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 112\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 30450200024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 113\n# dropping value of integer\nmsg = 313233343030\nresult = invalid\nsig = 304502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450200\n\n# tcId = 114\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30818a224502014e02404223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 115\n# using composition for integer\nmsg = 313233343030\nresult = invalid\nsig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864522450201280240b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 116\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414c4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b", + "9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 117\n# modify first byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502412ab5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 118\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86c5024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 119\n# modify last byte of integer\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a41\n\n# tcId = 120\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502404e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 121\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502404223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 122\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a\n\n# tcId = 123\n# truncated integer\nmsg = 313233343030\nresult = invalid\nsig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450240b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 124\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 3081870242ff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 125\n# leading ff in integer\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450242ff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 126\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 3046090180024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 127\n# replaced integer by infinity\nmsg = 313233343030\nresult = invalid\nsig = 304602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645090180\n\n# tcId = 128\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 3046020100024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 129\n# replacing integer with zero\nmsg = 313233343030\nresult = invalid\nsig = 304602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645020100\n\n# tcId = 130\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242024e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbe97b3367122fa4a20584c271233f3ec3b7f7b31b0faa4d340b92a6b0d5cd17ea4e024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 131\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242fe4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbf4d826580ab145752e852a6e91512b78178047879e9714a4ae1bc74298aaa7223c024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 132\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081860241b1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a00410d65320718f8af465fb099025b7cae2184402aea8df4f13a328c90648c42079bb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 133\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 308187024201b1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a0040b27d9a7f54eba8ad17ad5916eaed487e87fb8786168eb5b51e438bd675558ddc4024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 134\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242fdb1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a0041684cc98edd05b5dfa7b3d8edcc0c13c48084ce4f055b2cbf46d594f2a32e815b2024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 135\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242024e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 136\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 3081870242fe4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 137\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 308187024201b1bddc11bc17347621c4ecc6003d861a7d07d3854f08e4421bc241c8b538a00410d65320718f8af465fb099025b7cae2184402aea8df4f13a328c90648c42079bb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 138\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502420228b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba09a7b6ac4ecd0410b4722ca75ba197a403a0a1f9ee0e7b391b0649fda1d3969eeca\n\n# tcId = 139\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd5157", + "20b0ec5cd736f9b73bdf86450242fe28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a5d85db5e551e1de70233273282b66f49992b40b6fd47b0252edc06be016f926b8\n\n# tcId = 140\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450241d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5fd61bc296eeee8b245d018b8edd8f659631962ad7a1e8b5fe56cfdd0157ce753f\n\n# tcId = 141\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450242fdd74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f6584953b132fbef4b8dd358a45e685bfc5f5e0611f184c6e4f9b6025e2c6961136\n\n# tcId = 142\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502420228b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 143\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450242fe28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1\n\n# tcId = 144\n# Modified r or s, e.g. by adding or subtracting the order of the group\nmsg = 313233343030\nresult = invalid\nsig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024201d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5fd61bc296eeee8b245d018b8edd8f659631962ad7a1e8b5fe56cfdd0157ce753f\n\n# tcId = 145\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020100\nflags = EdgeCase\n\n# tcId = 146\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100020101\nflags = EdgeCase\n\n# tcId = 147\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201000201ff\nflags = EdgeCase\n\n# tcId = 148\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 149\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 150\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 151\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020100024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 152\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201000242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 153\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020100090380fe01\nflags = EdgeCase\n\n# tcId = 154\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020100090142\nflags = EdgeCase\n\n# tcId = 155\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020100\nflags = EdgeCase\n\n# tcId = 156\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101020101\nflags = EdgeCase\n\n# tcId = 157\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201010201ff\nflags = EdgeCase\n\n# tcId = 158\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 159\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 160\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 161\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 162\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201010242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 163\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3008020101090380fe01\nflags = EdgeCase\n\n# tcId = 164\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3006020101090142\nflags = EdgeCase\n\n# tcId = 165\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020100\nflags = EdgeCase\n\n# tcId = 166\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff020101\nflags = EdgeCase\n\n# tcId = 167\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff0201ff\nflags = EdgeCase\n\n# tcId = 168\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 169\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 170\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 171\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 172\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470201ff0242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 173\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30080201ff090380fe01\nflags = EdgeCase\n\n# tcId = 174\n#", + " Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30060201ff090142\nflags = EdgeCase\n\n# tcId = 175\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020100\nflags = EdgeCase\n\n# tcId = 176\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409020101\nflags = EdgeCase\n\n# tcId = 177\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090201ff\nflags = EdgeCase\n\n# tcId = 178\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 179\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 180\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 181\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 182\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864090242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 183\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409090380fe01\nflags = EdgeCase\n\n# tcId = 184\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409090142\nflags = EdgeCase\n\n# tcId = 185\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408020100\nflags = EdgeCase\n\n# tcId = 186\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408020101\nflags = EdgeCase\n\n# tcId = 187\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864080201ff\nflags = EdgeCase\n\n# tcId = 188\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 189\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 190\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 191\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 192\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e913864080242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 193\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408090380fe01\nflags = EdgeCase\n\n# tcId = 194\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408090142\nflags = EdgeCase\n\n# tcId = 195\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a020100\nflags = EdgeCase\n\n# tcId = 196\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a020101\nflags = EdgeCase\n\n# tcId = 197\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a0201ff\nflags = EdgeCase\n\n# tcId = 198\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 199\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 200\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 201\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 202\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a0242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 203\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a090380fe01\nflags = EdgeCase\n\n# tcId = 204\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a090142\nflags = EdgeCase\n\n# tcId = 205\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020100\nflags = EdgeCase\n\n# tcId = 206\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff020101\nflags = EdgeCase\n\n# tcId = 207\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0201ff\nflags = EdgeCase\n\n# tcId = 208\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 209\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 210\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 211\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 212\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 308188024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 213\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3049024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090380fe01\nflags = EdgeCase\n\n# tcId = 214\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3047024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090142\nflags = EdgeCase\n\n# tcId = 215\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020100\nflags = EdgeCase\n\n# tcId = 216\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020101\nflags = EdgeCase\n\n# tcId = 217\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 304702420200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000201ff\nflags = EdgeCase\n\n# tcId = 218\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\nflags = EdgeCase\n\n# tcId = 219\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386408\nflags = EdgeCase\n\n# tcId = 220\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a\nflags = EdgeCase\n\n# tcId = 221\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 3081880242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024201ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nflags = EdgeCase\n\n# tcId = 222\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30818802420200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = EdgeCase\n\n# tcId = 223\n# Signature with s", + "pecial case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30490242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090380fe01\nflags = EdgeCase\n\n# tcId = 224\n# Signature with special case values for r and s\nmsg = 313233343030\nresult = invalid\nsig = 30470242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090142\nflags = EdgeCase\n\n# tcId = 225\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30060201010c0130\n\n# tcId = 226\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30050201010c00\n\n# tcId = 227\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30090c0225730c03732573\n\n# tcId = 228\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 30080201013003020100\n\n# tcId = 229\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3003020101\n\n# tcId = 230\n# Signature encoding contains wrong types.\nmsg = 313233343030\nresult = invalid\nsig = 3006020101010100\n\n# tcId = 231\n# Edge case for Shamir multiplication\nmsg = 39353032\nresult = valid\nsig = 308187024200b4b10646a668c385e1c4da613eb6592c0976fc4df843fc446f20673be5ac18c7d8608a943f019d96216254b09de5f20f3159402ced88ef805a4154f780e093e044024165cd4e7f2d8b752c35a62fc11a4ab745a91ca80698a226b41f156fb764b79f4d76548140eb94d2c477c0a9be3e1d4d1acbf9cf449701c10bd47c2e3698b3287934\n\n# tcId = 232\n# special case hash\nmsg = 33393439313934313732\nresult = valid\nsig = 308188024201209e6f7b6f2f764261766d4106c3e4a43ac615f645f3ef5c7139651e86e4a177f9c2ab68027afbc6784ccb78d05c258a8b9b18fb1c0f28be4d024da90738fbd374024201ade5d2cb6bf79d80583aeb11ac3254fc151fa363305508a0f121457d00911f8f5ef6d4ec27460d26f3b56f4447f434ff9abe6a91e5055e7fe7707345e562983d64\n\n# tcId = 233\n# special case hash\nmsg = 35333637363431383737\nresult = valid\nsig = 308188024201c0832c973a455cac48a4439659aa21146036c52ec1514121c66714348a1c0e2c7099a2466d9acb49325a0cb509e5dff2efbcd90369d3027cbb7dca58a134278d05024200a426c063ab5cc6af20dd1ba8a519fac910183561598e67c0929e25f9c3aaeb245c5647fba21e30c103304dc6f49e6dec68a7833533e4e5448240bde023fe201eb9\n\n# tcId = 234\n# special case hash\nmsg = 35363731343831303935\nresult = valid\nsig = 30818702410d01cde64dda4dbcef1a9b924779598217b97eb688d9b4a4fd20d1b81ff0bb870abff1b0db6dfc3762f27c3954f230a7933d9ea397a972caac5ed2183ec72716c7024201c6530fb6b913005f81e156be89b3847701829fbb310d8a4c761212c6d2f8750174f2bf81c238fdde4370fa87de320f57dbed96691af45cb99f3daa865edcdda59e\n\n# tcId = 235\n# special case hash\nmsg = 3131323037313732393039\nresult = valid\nsig = 308187024200c009c74ec707252325d78f4e7f14be28f56272be17c0c18c90ad4c07322cef4eea444c8feabf41a213e3e846f8ac8bb7750d49143069cd01877d530bb981f1a85b02411f1c27ef97f434a8c2ff315dd39d909709775bb3c7588243bdfd8f7c866c49b3369719d5b74a47924bbce57301675e2baadcec438e07e6d532aba664253ab09550\n\n# tcId = 236\n# special case hash\nmsg = 3131323938303334323336\nresult = valid\nsig = 308188024201d3b17a34b19d134773988c434a9fb7f22a57dfb4c4bcca031e213e1b9a56db0ecb2f3c54cf9b1b6e5981369652de37337a7a7d7ddb54d67b067bbce01fd7fd2808024200c90317dfa061122557eb3899939924a8ea3cdd886e0f2e5f2c384b65b1a40de5f00fd9fce889fc313a6a9d5f0a9cd3a7b89b7ba8e97807031f3d1e3f9c103f0a10\n\n# tcId = 237\n# special case hash\nmsg = 39383736303239363833\nresult = valid\nsig = 308188024200cdca5299e788600a3ca5938d4a4c5f42b5eea3cefc990e67af95a4449aac0ab50e8fc4778efa497223cdca07c0e5a5920110f3a87afaaf265beadbb91c00d13464024201a92b9a5570b42f91ebc3d8ba272db9241468154783548d3fcfb6ef46c9e037bb6217af0a31ef952c27604629ad5775e7695c63efa138cee8326a51c1b04d0c658f\n\n# tcId = 238\n# special case hash\nmsg = 3230323034323936353139\nresult = valid\nsig = 308188024201660b0ed15d5f63044cb189e1a405bcb591c37217d0e000008614b152665d5bb9353a3826854a8bc6ebed423b15680e4340a00701b17bae24bd399bcff7e0438bfb024201c47f2f5c6143d2eef063757114aaeb27827b6a8f675d1825dac7f4548cbf78a37eb9621a29e9b14cf61fc6ae49e7e6e15350a4b90a4a897ff69b0c59b69508ebc7\n\n# tcId = 239\n# special case hash\nmsg = 31343531363639313830\nresult = valid\nsig = 3081870241364684856c7c02bfb2ad2de603d10883ca93c122d4cebef276467a9b7620fb530e4d05d07c15ab948b9ce7682561307913b64ea6896ece1095dc64369f1a9d5c0d0242009e6db2ff96d9d71150440fd44992656ca118fcaf6bd04499314e8ba61a55a8790aac023ddb68600fbd7ed4cd4decb176e8bd7822ea31d75adcbdaccafcf510c26c\n\n# tcId = 240\n# special case hash\nmsg = 31303933363835393531\nresult = valid\nsig = 308188024201a317e49014f1bf3afc09cc048531010e2144b662cac657e51b32bb432d274a730b535fb2de66fa8ddd26faa3f46e004389d25517c56e7d8a1d39563b0e8c9c215b024201ad2e1212e1680b660a1c07f54addff575c8c8298e26a14c516f517fb5f966a2b383aa46a483fdbfa72711d60c0f67a2c03d63d2626ffe271e0ce353a4d4b09bd5e\n\n# tcId = 241\n# special case hash\nmsg = 36323139353630323031\nresult = valid\nsig = 308188024201c09b29fc4da04e9b86097bd6d6806aa969ceb37ce52eeac5e9518d27541c3f30c00f113d9dd3b007dae6f381896d43fc6ddfb3fa256a36529b054e416ed638059902420113e5622cb1e4c4bb0842f3d396d7e660241116e94e8120a602e3d2952701b1a11415a3d8c503adced160450fd13157ad147d2d65d77449458659350e20a545602e\n\n# tcId = 242\n# special case hash\nmsg = 35363832343734333033\nresult = valid\nsig = 308187024178f4a2968460ea8f64a938b3a97c914eb0ccfa94eb08636efee9d5ad8668ce1c9099573abd146df9e7b2ccaaa1a25de903f85962849356a872e88e545babc28974024200f2729e9593c9fcdf5971b21e367ffdc87aa7520393527c6f68ab512b88b839003c1c9952b04f2dc74010a31071ee20a9fb1c7e1187d04de71b3f4327df128ccd43\n\n# tcId = 243\n# special case hash\nmsg = 33373336353331373836\nresult = valid\nsig = 3081870242019faed147a76b65779d0989e1300802844c9ba09f338c5e31a24d9ebf8f0b0b4c21f59d369ac10e315fa2b7605b0f17a9c07cf6ce4c83838e58333a3390142d79d002415f4de71fdaced1e8da86efd47ecbdac6a6ffc6d69df71da7ceb5596475cdfecea3d00f074d2de89e0fcc05e3231d531f0d38f2b7c6fe4ecf67a0cdddc21d0867b8\n\n# tcId = 244\n# special case hash\nmsg = 34373935393033373932\nresult = valid\nsig = 308188024200d0b144350a2128f042bc1a27f6c021dad1ec031be8f1d8304797f9ddcb742974aae209f014980174b9d4e434e3f53247889d2da4b767593179cb4eda47e799643002420184d3416dee35ba8807703a91ac927096c10959a05cbffd8103a93a9f20a11537bed7a645f32295e4abce493579caa4e2242060cc4d58b2414870e98b9336795787\n\n# tcId = 245\n# special case hash\nmsg = 39333939363131303037\nresult = valid\nsig = 308187024105257a0f45ee2ae5cc30283d23c47c96f6deaa3ac1473e8e8a40eaf61bc4b0ef8bd18d11983f257ec4b1d8d04e76a122b5bbe1d31065159072c58fd9bc3e98376802420122dba50d0eb71bdbf092a94a7ea280412906e1f849e91dbd5d8158e3fc6cd12e20461b77653e3df2e45b86883f81071b33651ae1b84cc8e7c365ab8d6a36d1cfa6\n\n# tcId = 246\n# special case hash\nmsg = 31303837343931313835\nresult = valid\nsig = 3081880242014f624af9d8096fe7a290651d23ab260da64e44b886fef4f3881d0d984d3b387fddcf65b1fa1dbb239028fbab4a1de6ad150cc8a4e4db0a971bb8bcf01c4728ff9802420105e3b55db0141c06d9854096cc0f73415dd2b85a331da50cfea3bbf648bbf8651f61f2cd09386b62fbb8ce67248683c260894d9ed54d6667ae02978e38ab99320a\n\n# tcId = 247\n# special case hash\nmsg = 33323336363738353030\nresult = valid\nsig = 30818702412c952d7e61e1097cd7f709e62ec486879b380b63791c146b545c064e65b3060250d00af279cf15eade67384b28594db542845fcc6574ef5d8d5bb8a162e0350a0002420135ac6d1cc05b095fbae28b652fe5386b8689e21a14990236d3ada7ceeb0c12a4f774bff7b81c8d07572b0c7985364c5d31f33271f0ac3a2afb88b46bfeefbaeaa8\n\n# tcId = 248\n# special case hash\nmsg = 31343438393937373033\nresult = valid\nsig = 3081880242017919eff78225e1937a921f98f5d153cbffa03929819f228ee013f8e59549b04b9867006a8df25a93a6a25dd1d3f540239a8ed14047ea00811da9305ec515ad000d0242011fb873bdae1757801e575c5df62cf82a1881af3cd6ed17dc50edbe6c5fd0f4d31766670b2aa572a9e6547b36142afa8464d0be4bf41930629dc04c85e01b2ee8e2\n\n# tcId = 249\n# special case hash\nmsg = 35373134363332383037\nresult = valid\nsig = 30818702416ac9b370067b13ac2b57f35d6d9b1faa93b9b068ef5ddf8bde3a54024810aa2226560065b0cb7501df96b4756ce1e1fa607f86a942367894a1f7728bd5f22cf1770242008b47a9e1370c9f5bf4677d554c00e9ac3ea7cdfc78836ac53ac710b7f3bff8c2297780c69a9fddb80e03a605e5e48a52e52fd35f41668cd9064886366fda206086\n\n# tcId = 250\n# special case hash\nmsg = 323236343837343932\nresult = valid\nsig = 308187024200c4bcfff265cd32442220976ffc7e4ec09181d69", + "4696eb89af0cb2d5a2dfc3876deb3c6adea168965200c355c3bff5e47ab17ecc44c8434333280796d3a183449ea024162debe91550f8a760eaea309f48483c65a52c7e88a83867c31730cbc6b0a64d4c564bde67e6539af787ecfd18016cde46ddf91740f58f6ea6ec80b173fd1c47ad0\n\n# tcId = 251\n# special case hash\nmsg = 35333533343439343739\nresult = valid\nsig = 30818802420174d744ddc631fcf8202fca0ab10f6d96d3f7552bb2a9ae5ac573634133f61c59a120fedbc39cfb521ab0cd572afbd5147981090d1dcbfe902e03f0c0579967b5810242012f59ca927c4ae331d2f667fcd9ec01b0b5514e2ab5da0561ea614431dc1fcb761c351cd1211092720ebb7074a5128f8019b7c18e048d5ed3573ed61686e9713f72\n\n# tcId = 252\n# special case hash\nmsg = 34373837333033383830\nresult = valid\nsig = 3081880242019a513cfaf871287340d8a51d2f4348ab4096c5fe244b22add38ce433e3178e8ff5b2df0fe74a1ba40fe8341f734c71f9a1177b41035777e2da6b082e0b566690de024200d0c43eb33a817c3aab30281c593c74517ee84e958b114395ce0b31fcf30bb8f5dfe60dbc7f6f14698977d8e0516a9274a5bd71847057e006fa315fae6922eaaa55\n\n# tcId = 253\n# special case hash\nmsg = 32323332313935383233\nresult = valid\nsig = 3081870242013204800efcb40ab09ae4137325a3e8c468edae91880a51616ba61f3ef1f72fd89feb956bfb39818d827468bb4475110a04779fd6bb3def25c61c4ba60889ed0ff70241704b7394687698c8841f4875d40e5b3c914f154ccb2b54466ae163ed3410f20d0a07ac5f90c0c31271ec8a524ca2dae4b8bc4f6e1ece173ea907890693c5f2190c\n\n# tcId = 254\n# special case hash\nmsg = 3130373339333931393137\nresult = valid\nsig = 30818802420180241cd2e6163158a39599890dabee99c2c86b88accd2b04b5a72874fbdfbde0d18143c4d78e0da1abf3796b238738840d60e34775a8ff810d58a9bb3559a3997c024200bc396c2ef28b244fb8e004bf5361572ba1fef6fbe081ed1dedba4d9af78deee126599f75a0a9d0f1b1618ded7a0c5e672e40917fdd30582460da3aeb1e9c4477d7\n\n# tcId = 255\n# special case hash\nmsg = 31383831303237333135\nresult = valid\nsig = 308188024201485fc03fcd629fd4c564775ab6969bbc696b5b0f38141b69f86e052e7fe8849a64af2dd37a2adf64672f20bd6f97cd32f0efea51aa22064c5f10a3911177e1979d02420180fab473ff9d726db6d266541a0bddff8610e4026d26b6c9abf972eaef477d50670bdd3067c9d711a8346e16869147751e89b4ea75bb00ece71300cc3b80cf8899\n\n# tcId = 256\n# special case hash\nmsg = 36303631363933393037\nresult = valid\nsig = 308188024201bea49b150a27026fdf848297b0491019f76abf90f3e6d782e3d3fa6caddb81b7ef58b27f1b2b3f7898889b4e2b6cdda7b5636177a27eb9a67b2055b6f21d262c26024200dffb13c2d5f746c8573aa444afc8baf8bf881cc4d0fca8169f6cb304f400eb3932666cd3758c437c9cad79abfd89c72a788505763aabdfabf8903ad4a70d9ec9f7\n\n# tcId = 257\n# special case hash\nmsg = 38383935323237303934\nresult = valid\nsig = 308187024201d56bf6f3758f627f470706d1d28c28fbfcad6dc30465cb285a274fc057f791de73ac30baccde044473fa9e3dce6d395eadf98d1f97259bd851a1eb6f3d31d2d756024133704b4ad37300a96682569f4f7fea3e14d6e1f65864663f39aa67f40b5c949f198d5de9f2ac2369bbb9111c89b393199537c6c08ed7c02709c733ef7660113d53\n\n# tcId = 258\n# special case hash\nmsg = 31353830323334303934\nresult = valid\nsig = 308188024201554035ba84b051d50901c622b98be4de0123a02928dffa7eb13b0403fd5e255f226505e15694956a66a878ff581173d123d1b24eaa85c5fe46d8973a55040ff405024201b016dd6b5176ad8347eb9802dd7727e06a29db33cc946f809a42f9193040692b0f82ebbd04eff9f099b7f75f8e45e74ac00a51a9cd4f2cbf5f03f4d2bee99c24eb\n\n# tcId = 259\n# special case hash\nmsg = 33393635393931353132\nresult = valid\nsig = 3081860241293e8d6775f3c14183aecc22f608e9013d7b15dad167bb38a1dfef6b373619f1ba2751d77b43f643f68643cfdb5c04a8ed858bfcf3858a681ae93bfc7cd7e3143802412c7d96db7dbbe347bab9f6f7b88f48cb32ab963248737d2c901b90d64591cbdb0f0ca7a14557f8a50fd80d402f929dad141141f1f0c85d9414b32d1fd4d796e6e7\n\n# tcId = 260\n# special case hash\nmsg = 32323838373332313938\nresult = valid\nsig = 308188024200b16a9b3aceece85908125f96f6cb6b1afd0ef04171936b3766f8e43beb340d382084b33439f775a29a83945da8efc4190db1343e87d8c0ffb97aeb3be159d90f59024200e5c2bbd98e449bd0bb4f75a07f1a88dd63c0602a7660f4acd33937c4913a9c16ba44dc5808892ec88a4255109a7bc5b221c07e6a278888a9712fc2a25b374427e3\n\n# tcId = 261\n# special case hash\nmsg = 32323330383837333139\nresult = valid\nsig = 30818702413b47a8ed52f5b0566365313520bc0b6e4e4efb3ea4176ed7a352c4b2f8bffbdb0148ff44f3f13d9e5e31b1cdeae097574aad8bf393c54a5c842e749ee87a74c6b0024201d3f484e9e224bda9c8f10fbb74bbb62d7a18245707f4eb52f17dde793892c16e4bdf504960fba55da487f542d412b1b833f6f46336118618fcff69469c83963777\n\n# tcId = 262\n# special case hash\nmsg = 313239303536393337\nresult = valid\nsig = 30818802420128b8988bfe9287f82ac97be507a544b823e85cc2813b6929e63699cff85a40283076028e7bf8d24330f89adb96bf24a4e183a898e679b36768909574e7d4733d61024200c18aae44e6801fc2e3d9c7a20ff9d42b46e4a31ca37772f8c46ce65219b195ca23717f816e1fed51e5b6f9a0ca12c3cf81ae7fc9cc6946a88330b2011ddd160930\n\n# tcId = 263\n# special case hash\nmsg = 32373438363536343338\nresult = valid\nsig = 3081870242015edf1fa95b17159f762d68c1736101309e80fe5b2c4415609a5ac0837fe5901f3c2d3d826a43b1f8cd1babf494ffd96cca1267950188a924d4e1bf7f68189f27d302412e8697efbbf53adb7cb1b904718fc71eb2561f331c209c50848b5bc50bef77c5c3487d285bfaa3caa14025cbb71bdbaea6911e3610335641d2799c3fd75019f716\n\n# tcId = 264\n# special case hash\nmsg = 37353833353032363034\nresult = valid\nsig = 30818802420161f64bbe93fdc0e61134cfd4c453ab740233b436179351aa68a3e38a83400d86ff464d7ceb7a51f541b86eb2f12e32a879b3a29bcb92e08cd50e74f86a0ed52ae90242008f6fef49ba12ced6696f4f6d24e6c68057a84496d42eede630199e9bd06d91363542a9776bfcd6d77fbae422e80fe466edd2c2c5e1f5cc79bedd1a7becc1a12660\n\n# tcId = 265\n# special case hash\nmsg = 32333237373534323739\nresult = valid\nsig = 3081870242013a6faccc1c06cb5dadb2cf083cb94a7181fd5cbf3954fdc430c2691248fcfcd13767e32491f00269b549cae93777ced0f7b069440726adde7605d4038d7b5ea4cc02417622c9065f4c49a6f8649073dfc6a827b897b6984176b1a09d151b9733a68f6da746c47427cdeb3be075da4a351ab78dd5e472cd98d1586edd6ff2a11c6c169fbb\n\n# tcId = 266\n# special case hash\nmsg = 373735353038353834\nresult = valid\nsig = 308188024201899609e7f7cd2ef14bfbb1cb9ba9283ae11a9346a34bef23b1c249da2e76a7708e0f2f97f819e4e25b0d5227eeb85aa593c3fae9398a7020f61ae1606945d13841024201b8d5e9c4f030295447106d2b5c80cc2e7d4e36b458a90a08f505df62d2234e59d08187385ba5501049b34e12ec92f7839a18361a52a9a0b6f6a664b118680b53d7\n\n# tcId = 267\n# special case hash\nmsg = 3137393832363438333832\nresult = valid\nsig = 308187024201ddc69d1508021eb560db39f3add8a28dd7fbce417e5fa1f4f626705caaad72b634868d01dfc474e926c97927c56ac51f9bdcfd0e7627be35cc300a0cdc083b00d402416e862caf9f2df11b0a46104e78865fbbabe30bfac0b1fe7f99badc11746a288c1ff27f6fa2aaba6441bab0372af906eef083ff03ba466b896c9344cd396dd46dbd\n\n# tcId = 268\n# special case hash\nmsg = 32333936373737333635\nresult = valid\nsig = 30818702420117fe2c21f282c7e4a8415e9c53c254514eeeb0adadc771adbc6d21a09add4f17ea0c597469488238be795f2e187fa016d590535b4ff10c62d2246aa17bb013f9ee02413c9f1590ce7a68fc84c617f478188e71aefe8c74c4b9979b8c9196bcc262205aecce5fd2bb80c360d3e20da20e36c5ab70d810d4ba97d13858199d3a1c9c140c63\n\n# tcId = 269\n# special case hash\nmsg = 35393938313035383031\nresult = valid\nsig = 308188024200be6b47254a3cf93e2e276adfb072256404744070d6dec83ef34e3e6c119206422bb275e61fc47053ef7b2af9e33aca8f8b2e4938057070eb6ebbcf82fabb44a5fe024201061ef80935ff6d0e9f87f3537b639945acf50c5d97d30b4b9c347e3f5f5ec02b15a376ae754d64b2efaa811b3d12a0fff0bc689022025dd2f69f2f4b40dda8687a\n\n# tcId = 270\n# special case hash\nmsg = 3136363737383237303537\nresult = valid\nsig = 30818802420130b6fd7dec5cb6f90a8b54ce7b58c61b013d0aed7c4a26639de80aeac3d9e3388e9f87e1e6419d3f0339af324e1421b5d130317ffd9d8be36500a84bb41d026cea02420176b460a3eae01d8aa8ccffb0d6cf4d1595aa697c65510a1197b97343c1a6234552ce9d6d318c5f20f48bec0dc311dd62eb40058f3cb22fa958edaf9ddded191a08\n\n# tcId = 271\n# special case hash\nmsg = 323036323134333632\nresult = valid\nsig = 308188024200a87de42d827ae1f55d6fab3277c7a9fdfac3af22fe47e52bfee34fa1ee3e765095fff20175becbdc94b4a5ad3a149ea7c1bebf4d45370e6b4404a0437d8fae264f024201a3c1c5186d8aa491b4623f5765a388930f37bb8f3e1c0db508983585b9090b3aaf22bb846e0fb6d915b5811ac55e4d6cb08f605cb84deb55ab7fba2dde8736b1c4\n\n# tcId = 272\n# special case hash\nmsg = 36383432343936303435\nresult = valid\nsig = 3081880242010e46055d9aa087f1c4b6056319cbf17a0694fe073266a3f30363030e345a4bd461acbd99d1261fc05ef3c9a1c37afba6e21c2d513ea3d4709de5586810d7d29ec6024200d0c95c7e97a94efb44aa717cd6ebe82de0644e32676d197351f128ee8d2b223ab476d3e66014ecc003081f7040c578b8984628d6ec80733f713e26b2c98cb4ede1\n\n# tcId = 273\n# special case hash\nmsg = 33", + "323639383937333231\nresult = valid\nsig = 3081880242012c04d08a7a2d07403aba604ea85ec23a52b52786e7fce04170e867be6146eea75a7180f5d4f3b82a204a3c996811a1e61a3e76ed209c22428b35c51fe60f3bee1e0242016f2feabc25733b0a460463b9933e6e4ae9f4124cd0ad3785c77755dbf0848ec1cfd2ab08b960b556870fa00388d23d9a9fa3112ac3e62a0f342d58fb1f0aa81748\n\n# tcId = 274\n# special case hash\nmsg = 31333837333234363932\nresult = valid\nsig = 308188024201ca9532c9daeb80d0dbc07a4138ba62a6bab8c88b9e1e2edf2675132eb97cfb26f4c395f3b9d1d1275694956b34c3ef72cd00bab86777465b9edba29a41b0114c6202420140eb6dddff253a7ff5b032d82fbd18e481a376fe242f6405b81b57165665c9bfe61e25cd3358245bdfb8de7632de72ed20cdacf384764096c8fe3a376563a348af\n\n# tcId = 275\n# special case hash\nmsg = 34313138383837353336\nresult = valid\nsig = 308188024200d609e1f1cc1adf5889dc6deda441682e760be08932b31592fef3ada143fb4940e4ea75ae519e4fb0769c4fbd33a52b183a21d0bba1ffa3fe50fd11f75c6ac58ff60242012400cc4ddc24ddcd47a6d639a2abdef29a65d4fe9175f51b316f4bf918bc918879495c572f8e98364e2e1aa0d4d53ad29e803a4470d94dd06a982a1d041bf2b5dd\n\n# tcId = 276\n# special case hash\nmsg = 393838363036353435\nresult = valid\nsig = 30818702413775a7e61bdda9a3a990ba9fde98f9d81d4b03195547bbd0658e1059daa00da9270671b2fada1bbbf13982f87c9f3f26dda5cd4f24de63bceb5fd9390163c58d260242010a03e4ba08f9e2b6915a6c0b83156b00f59efc5417394c51ca7616b58cf91ab7166d8459eb4eeb0d57146ed6560e173faf354b4390817e0aafb38294df25992cbd\n\n# tcId = 277\n# special case hash\nmsg = 32343739313135383435\nresult = valid\nsig = 3081880242017ab00a30c88faeced3e4a10f9c63785bc29e9af4499466bd8880827cfa580b6171f4a20f36487f7b94592946bca4162faf65872af6bfb1919e6b026c14e51e2740024201927515f6489e9b7d9cbf61e103295857c8131320217e7a86d3f2fdcb350da5b42c2dbe173fcb025d14da239d7d610de8475914748573429c9590d3594f4fa3aab3\n\n# tcId = 278\n# special case hash\nmsg = 35303736383837333637\nresult = valid\nsig = 30818602413b2ba1509aea9d42d400400033952a022fe7e00c7ad65c39a2f76d41130aada99c3cdfb9cf44575a2163de29f097beb9bd3aef9334e6fd0813dde2a087f938c5f602411afb56087dfd5cb4fff6679a114c340f3a59f6b3e1813373bf3ebe30cb5e8b285a5875d1b5a9120db80f70310201559f89bb1df147961d1ca4fcdb5e8e84cae082\n\n# tcId = 279\n# special case hash\nmsg = 393838353036393637\nresult = valid\nsig = 3081880242010efb321a347625343f5126ed8545017d799eb103c75558922eabe44211e8fd834655dc2ec5bee9bb3e44350eb6885e0ab974730222e55f13ad27c066722fecaa25024200d62e3d7ff9215369aa7da818db302e49033875010b2f9b73d25ca5b9bf2c62ed756686230cd5f4a37c1fa881c97e623919fab827de5995ab456a1fd7ac7b85b1f8\n\n# tcId = 280\n# special case hash\nmsg = 32373231333036313331\nresult = valid\nsig = 30818702412f778cd552f54da5f567f47e6979872ba130dc0890172bf3b3bb952f03c64bc8783abe9f056d60e1667780f5ea88f59ef33c735d540561a197d31fe34853a60a52024200bd2816f06372f2e3f2582d53e583e133a551aaec04ddc2fdb7b8131787e73e4295ac28a9604a2402ed5b272cc03be57dd4a7df84d9ee24cb0c2bf124ed927defee\n\n# tcId = 281\n# special case hash\nmsg = 33323034313031363535\nresult = valid\nsig = 3081880242012a459fffea70d3bfc13e9ea0abb10aae3910df604997cb5e4bb0548abd852abac6b9a32418c3b5ed4e7951ae88eecc0a2f1065caf24c6a814674e95682d9b493f2024200e2abd05c585e0c213a219a7e7d38b810d252ffea67650d4d1994a41c2ca325bb964920c6c2545381c45ca3e1eca05e00514b366cb0e1e49b8c236d383b260b9cbd\n\n# tcId = 282\n# special case hash\nmsg = 33313530363830393530\nresult = valid\nsig = 3081870242010f2653d94aa28bcbd667a5013f9b283d8487c44d093ee47660329398caa550ca9c9388c7aadeceacac1507e76590afb736adb3583f54f31ae25c9c717ec9f89b5e0241494448a7ffe4a4eed84b4602781ecef77a23fed116b1b791b8d2e4231b7ca2a7b6f06d132705932d446e61d344714ee24014fa5bb144a96572b3d48d038a55ad68\n\n# tcId = 283\n# special case hash\nmsg = 31373237343630313033\nresult = valid\nsig = 308188024200c2da48552c39d94f5a45427ae9dcd891b65cca33e624ad2532ffa333666b241d873336fab7bbd7b4c193db4d865cd50f0c1d8cb5c14cf3f089ad42dd43cfff634e0242014f2070dcf860b96a45f2a6061e4ec2a6ad64d7d0e9fbdb25aa93b99941be280f5c70c0e32b6234df545bace7341af94c140c865d44fa8ea7ebe0fe53bda44645df\n\n# tcId = 284\n# special case hash\nmsg = 3134353731343631323235\nresult = valid\nsig = 3081880242009bc6e74549b48a1e7c181b179687fb27d6e9acac47ec34b1b8bd044d329320544e4e568e67d17f4cda2f0a3fe303d561a11fc0c981ed9be2fcc6d397a43ad49e10024200ff295e43fec5b68b00ce8044434bcd17af1ba04a74556353e258d017ba26bed67f458fad5dd8e7d2734d56f59928c2419441a9e8c0573db3586ca056951ca935e0\n\n# tcId = 285\n# special case hash\nmsg = 34313739353136303930\nresult = valid\nsig = 308187024120963638d0b058494254efce57778ac65e5f23491f7adfa72e4713b7c03946b543c014d9660d855246f308085eeee495cd831b7dbece47aea48e90433bd0fe818402420161a4f4977fecae92d4f67e56f3338c7a9b820b5e05db1f28d05d71f7e5f36bc63f6edda4d3c1b2d73bb8a30c4d745b73e634ef574cf47656a372e3eb42cc038850\n\n# tcId = 286\n# special case hash\nmsg = 35383932373133303534\nresult = valid\nsig = 308187024201bcc5858597ce8d4dc5ffa6be33f7d804f2f8ef59c5db9301785e0cceb7ed57462f455a465710c7414570c9a35a3100bd15fa40e3ec350d1f75406c2a25885e9d76024143757d282fd1d44c253f9a05d8142c29a6d63c0a1f5508431bc9fb9b60a38b7f414e730e0d59b7b709706a67022e1922fe88b182a57443c58bd06a69ee7814bcab\n\n# tcId = 287\n# special case hash\nmsg = 33383936313832323937\nresult = valid\nsig = 308188024201240120b97ea67bcbd0e412d87137a13e347a870a2249375fccf8c004da35e592620774160e7b82aed1f57997fb015a764d014d4be1f389e5499777054576e7bf000242019f157ec3a2410853274bc4d8e7565e9eaa5dc47d5e515abc86c22fa6dc215482df5c0e2b885f37baef3a6ae83daac930617a5fb37bb03ce40f06fa4ece26cbb11c\n\n# tcId = 288\n# special case hash\nmsg = 38323833333436373332\nresult = valid\nsig = 308188024201a7536d55876f8392a6eba18f075118c273015844eb3536c727c004c1bf23067d57e8fe31872f8bf839640e80e06aba3c0a365a268cabc2da96d84550a569f17f9c024200e840b6a7cba718d91103faa134c2f63763f3b6b91db7ecbd3b10f10171a875712cb9384325411beca9a3aa87aaae3902c282d2dedaa1cbddd40ccf0d29975df22a\n\n# tcId = 289\n# special case hash\nmsg = 33333636393734383931\nresult = valid\nsig = 3081880242013f72be1c331214f45007ff72ce54afce1c910a90e4ff3d176620ff3ca976c2b62d0cdf5d1134290ee97440715531455dc29818828094d366f959e1adc7d7e98ea4024201e80ac38ba69f3e53116e5432fbdb3b1e7ea1b43e5f86d1c0e3d1c469442dbb406ffe524f0685f71e811d94a9efa9ed38ccd9213f983983035f2add0b8f2fa4ae23\n\n# tcId = 290\n# special case hash\nmsg = 32313939313533323239\nresult = valid\nsig = 308188024201aceaa6d567ddb39ba52d297e60e4a814c9b476cab568c09d8ace878d846218dd2b5d2a2461f0d5a56c12f0bd803e3253dc5b387b94e86589cb1d0cb809c7071125024201b1fb021b10b593cf9e793cf22a88bde9a4b92f9e218094f270b093e8c6c95aced43d097bfa3354e6b98d195c599c2e6f13351c63c28967e08b7e497e120665c663\n\n# tcId = 291\n# special case hash\nmsg = 35363030333136383232\nresult = valid\nsig = 308188024200f6ffb5dd786326041e74564b719d38924a28329868177c13463cff90c4b09d3d2dbc011281cc78aa0e5e8656123bc50605601a547bb4b1761f852a120ea46df9df024201a407fdd445614a16a5ebd4ba075c6c1d7564f3cfd477d6b2620abf18a5bf78311282ea45b9bff813f24c3c7854e6091c8055144f9592fbf2e456421a41c555d7a9\n\n# tcId = 292\n# special case hash\nmsg = 383639363531363935\nresult = valid\nsig = 308187024201a15af4d5ca3deadecd75ec1baec31c8d43fbc889466475e6c23106db4e63ab69003f56d819ddfc5a673c8289f9e6df806b07af57a2541af694e6489734c8eec837024169c35433a3217fcd738a65b7da9e81cd81f04f0ef060050b9c843e9e808d8b8175f3adaefa105d215ea9a46bf415fe2ac180958fcdd878d54f8d19d23e11b76d1a\n\n# tcId = 293\n# special case hash\nmsg = 36353833393236333732\nresult = valid\nsig = 308188024200ba899f94841db6c33b850867c8906b436be3853640dbfc863197fa1e5a55ce25240f2be498b9bdcfc0a89dbdca192d8f84ca3c44e5e0ee6f83e7900e085e1bd48102420086e6d558de8d8f014a85cb4a5f6908627e7a1acd70581d9d9c7d14df44d437aa09e5a10a0b760e98d46731f2512ca1b0240c602b5f0a2030485e34de9c6cd08e7e\n\n# tcId = 294\n# special case hash\nmsg = 3133323035303135373235\nresult = valid\nsig = 3081880242008eb5c92dbf5e00888b85e6bf6617017e97c04ae950dd731856b9dfb20e0c0e5c54284f411231fed1d071b321f78618d2a75c139663fb9db3435214cbac5a0dcb4f024201da0dd29d4728fe6331c8e2ade5045b1237664aed157db2a6cbdeaf5abea81324e28920a1c49c334b1226441f88e1a7f2c7e01d63e950d4378f08973db16b2e6161\n\n# tcId = 295\n# special case hash\nmsg = 35303835333330373931\nresult = valid\nsig = 30818802420130779f943df098ddb5315cdca4b731c83472d589f4ba4d32c172faf6b3a9e4154c0517fcc5c432eb269b0152297f6df490ece59496bea8047e2f32d0b5f91e85ef024200c9eb0b56273114ce2e553341247da86b813bfd65f143a5562bb1c874ff970523836bcdf390dc196e", + "67dd75cd28112ef74afd51b1fb35333be0505a012efebd4e22\n\n# tcId = 296\n# special case hash\nmsg = 37383636383133313139\nresult = valid\nsig = 3081870241593f0132f7b5c282355978a2cba73fd3bd5ce3272066d4ad9bd8bd8b3e2be0990071b3509ea445dd155cf97e294e2b8d1355809d880e10700eeab0eb8ebbaa4f0902420107eb3d5ed75cbb9bcb9278f2266c14c57cf703cbd8f7c7de45c51f0f3baf1dff6bb92f1cbf89ba649677bcdca776fc57f587ce714e2e43e6cc523f0d0a286d38fb\n\n# tcId = 297\n# special case hash\nmsg = 32303832353339343239\nresult = valid\nsig = 3081880242016ded17fad10f945e3d953b4fd3b72898c370f15164bb7712673385c10bf3929bea293e08bfc30029a465138ad47abe604df807b31707fef55adf3e104920038e3b024200b76b212d74e4b6eb994d926e9e796975235fad90e339a21a329e6eed3fe96b6d3c0d5426e8464c4a9ed5cbe08eeb5e490f72e9e0406c0d76ad076b476d07c0144a\n\n# tcId = 298\n# special case hash\nmsg = 3130303635393536363937\nresult = valid\nsig = 308187024201f8624ffa5a6aa8d9d04ed1c2272ea55f5271ca2cfc9aa6a3778a0b8a230f611e5d65af18d8251a0cc4ace663878c33205239ee7e8388cc0a040ea51515072e3f6102412c1e61197229f40e840ea37325f3bd87a6cd32d080bd61bbde4b072cf7a0c8a89d402cd9235c26f19a084ddceb1cc0bae4006251ccbe10de3954e85a8c5efaf6cc\n\n# tcId = 299\n# special case hash\nmsg = 33303234313831363034\nresult = valid\nsig = 3081880242012b01c6601ceca9e58e8abb85d1f6663df70cee761a756b77e45294f09ae609a6b76cfcd67f60e47a3494cb85511e33d92a8d297a1b89e9a9038c0c5b78c3a3d4ca0242010ef5d2fab59bd42e2e92a2fca7a975b959dfb372519330defc8fa8954bfcfb397ba939edb6a944a2ce9f6fafbfcda6092cddf628801f6dd8cd40cad4d809d5c1bf\n\n# tcId = 300\n# special case hash\nmsg = 37373637383532383734\nresult = valid\nsig = 308188024201c54a330b9dc47eb88dbf60c9ee49f2c7518c0a78baf642c74105fe283fa4c357ff22931ef42f92d16d6a0b806ef718539d21cad71955a530e21cab49a56f561673024201c2cc32c5a4d335c48d0cbb0407fb7e4729c57251afbf9534c5309b94e6aae13614a1f2514252f48cc7f143ee761782f8dcebf2fb490e08fdeaf570a7ed9d287da2\n\n# tcId = 301\n# special case hash\nmsg = 353434313939393734\nresult = valid\nsig = 308188024201467b4511b9d6601da3557b8ed432c14a80e5999847be136c756a88dd5134689b5ab70d0a2e8fd8d6141e2b143282f98afb93b7e17609522dd9e64c9e4a31c7c34f024200f50ee66a1dfbf86167ba5968d4ee3506a7cffe0f521c1bf830d0867241e345d319e77eeca45858bb3062acbf8d100bc6bfd3127d57a7e91a8199e05052b8ccf304\n\n# tcId = 302\n# special case hash\nmsg = 35383433343830333931\nresult = valid\nsig = 30818602417af90f6227750f917d65b1c60200c755158bb783a479be6877c59ed89ff595fea3f3a4137591aab23826ed385bd6156277364b5d603ca272259083e6e9ab5db3f9024170842eb62c894935b82da15ca611d9d754ef57859e0c912c0358d0820f4940cdf5360f116a7547a81bf65617f182e597eb1007e26c62838487ca021c3829a590db\n\n# tcId = 303\n# special case hash\nmsg = 373138383932363239\nresult = valid\nsig = 308188024200b0169e68062caa79f99ec0c72d83c4d0fc2a1c818665cfed1aba3e684392b9a95afb82ddd1de49e3fc3cb3889b4f5a86a7bdf944361db2cfa57021a7643fcfce9502420115ec784e042436892c6cc1bede0f4b7b6eb24b300b1f0c674999a6da816dbefb2d53f90b0dedb962a085e5209fcea50311130800d2a9249d279c7bde2f88622512\n\n# tcId = 304\n# special case hash\nmsg = 31373433323233343433\nresult = valid\nsig = 308188024201de4ed1ee81d5cffcf8256a06858cba5eb925ee68e3ed848ac98071b6e30c3b44b102a2de8117cce5b4f9e42603225e0dbcb3fcc171d1492e7ed8bcb6ec286c7de0024200fd1e93bbc8b8adeb7864a2bf8e29d6f9c0966fe3d543525bf268b57cd6fa8852bfe0d2750726d5445560f2fc211aa7859dd3ee10078ef907e49cd64326b397e01c\n\n# tcId = 305\n# special case hash\nmsg = 32343036303035393336\nresult = valid\nsig = 308188024201fcafa62ee6275443d7277fc46e4c30b4db845ba45b5d6b54faf47bbf921f825f6fd0f23a38c0c7f4debc33add282afad1154c8707b6e18cd65adcb07d32915b46202420087a27b2bf3c35d18fd397e0cd7159516cf563b98441e030bfde93ceacd2c4e41228b7b33443ef0a351ce553d6d1d71c12092df796276175cd779b8090c4958b391\n\n# tcId = 306\n# special case hash\nmsg = 31363134303336393838\nresult = valid\nsig = 308187024178989628acfba86d4bf28beeb9f44001fb8f2d8e245320a19efdede31eae3ec8b496faec30c85e8f63f8ae06046fe1d1575321fa04953e460f6b1386dd5df94edb0242012aba3349732e21a5bb27d7d6facd8c7688b9d0d0271d6a077f9d6d82db45b5456b767f4b9f1a80f487031f9c0b3ea833c63fdf9c6a25e6b424c19c2e55305d7a0f\n\n# tcId = 307\n# special case hash\nmsg = 32303935343235363835\nresult = valid\nsig = 308187024114a5a46a3ba415f6e8c566ca1b15fa2055649687b1a9fc84cc0fa8631296898fe014e0d45927e4271396baa4cfb3675669b16e76c339db3c0edaf61337e8bebe91024201fb313129757f76754b60fdb1e4077f9fe3dd62c8bce52190cfeb9c03021cc92f6d7d1302b8a84733486bf769ae94d3db4b60b6df28fed481d3d7c510299f0c319f\n\n# tcId = 308\n# special case hash\nmsg = 31303038303938393833\nresult = valid\nsig = 3081870242008a3250eb5f28b598c4a42890d25f6af84082d4376f84f1717e5112a76623e6fe0d207c39463d20bb86341bc26c9f68bcdf794671a01f90465025f87a8c52137edf02411ddd317f6622d9b032223f76765ba6c9116ae4b43a1bd357bc9db6fa62f0867dc5d8f781f08c1cbd49b4424fe8c22cfd1dcd07cfde7b3598342442589825aa67f7\n\n# tcId = 309\n# special case hash\nmsg = 31353734313437393237\nresult = valid\nsig = 308187024160ee161741d5cb2dd0ff2cf9924aca0376b1544681627a31688e4d8b3b63a01adbb417ee113b9ba8d4d13b7b4e1b14b51a24dbc3f099b068d916aa94862ee081b40242015caff8d30141e1c163e3ec62b7e14874da624a6d8e0252d8e829860e5a49d3732321b625262e5c9b1ef348c3e7cbb1de8227513f320637866785e97e1931d35ccb\n\n# tcId = 310\n# special case hash\nmsg = 32383636373731353232\nresult = valid\nsig = 308188024200a1ef8229db9f45da38ae3b6d601110611e209878bbd03ac2a6de65e8402957c669a115e3f02d085fe2d031c61324b77052ab346b4b1a437b58062fb36f9d56cf45024200cc5c0a3b68970279ae16880f6ca579d0171a827e99a46aa82b9242dcc09cb0b22a44ebcfca84293e6d21aeea492f00ba3157c5b6e2e4caea6a1c09c824720552f2\n\n# tcId = 311\n# special case hash\nmsg = 31363934323830373837\nresult = valid\nsig = 30818702415aa0c8a378c4e02bcc2f56c2c365ccee424e2973c28f0daae8f4c3f0d90b421fefd456e749087e0c667c2a7147bc67b90c696244f216b4d9d7418eadc7d06ef1d2024201e28914bd341f526b041128f2d251131d8b2c65847e541d65adca3442962cddb2a71c64fae39fdd56e41686ad632f99c6038d8de0b3aac4045e0a961efdbf4c6a22\n\n# tcId = 312\n# special case hash\nmsg = 39393231363932353638\nresult = valid\nsig = 30818702415a05f5366c8b8be28654bc39a6671d1b1593495e445c07c995c3be3e168ffdec92e44288802fd455007f8746570d93b5683e4d40e9d9e59de539f0e62bc40d92bc02420187a47d8f70adcc5e10267b8fec89d7011d9985427645aed19a8efa2d1189b469cb7aab1998e0c1d2fcac5a5054d79d2ec1c9a00b183dc9af20f555a1140be2dcef\n\n# tcId = 313\n# special case hash\nmsg = 3131363039343339373938\nresult = valid\nsig = 308187024201e213bcb8b960b1296ae176993b2449bae556b6d90df2f07fb08ad8fd60e3b7fe6c73f9c8a7364417611d60119c550261c54bbca8d61e264130ab90187e27d22dbd024134f519382cfacfd07b0a6f3aca117c13d2be725d2f9ee4e5f88739c99121e63ed7358046bfb1575fc73e1ede8339e46c5139843e52e9184bb8c579061a154a0b8f\n\n# tcId = 314\n# special case hash\nmsg = 37313836313632313030\nresult = valid\nsig = 308188024200ed11ac7efb1f29ee64108a5e2606fa9af3bbc12d1a952e47240d5236df64f5b2b77a0f7a0a73d30d0708b5b23ac6d584bf6997d8851623793655dee8774549b829024201e1602a2cae7d3212df47eebd12e2fe404851201101bbde702be9d74d040ed998e79a09ebf6d055f94473b1f8d87c99aa165bdaf0a5f270d46caabb8e88bfa54103\n\n# tcId = 315\n# special case hash\nmsg = 33323934333437313737\nresult = valid\nsig = 308187024107123c45e6e9338bc9fe225cdd96c5ab36cad5c06163f44f6bd903c7594e8068ba9bc89f652ec31b6e1298766b246c1f10877f1e3ec9829b0937b8d36e3c1ab2b5024201688bbaeb188b5047be6e8023b14fb121eb1451dcb19f814f5f4dca55ff95128011e3bae505a4d22166d00cb7cf14130590335ee923dc5db3e736832a128a067aa4\n\n# tcId = 316\n# special case hash\nmsg = 3138353134343535313230\nresult = valid\nsig = 308187024201264e3cc4fb802aa221d0787cd0cdf44eb6568982a00a6639f15238af36e894b14f45f06f8c2180fdeaaac77f674e056d1928cbbdfc4b2ceca0b35345ca07bfff7f02415c2dedee6b3aa096fc47ba0991a077ef4d5df20d8eff1bf8354412b171f08a98cea1704c8189a7951b0e7a8270ccb285b8db8e35285ed926b19c1eef07fdc05ee5\n\n# tcId = 317\n# special case hash\nmsg = 343736303433393330\nresult = valid\nsig = 308188024200ca3814747888751794b0488955e2aee07e5fab4b9872074aa7432698e7c83b8079773734df1bc752548a218fa59a362e0657b77ae7798ef4a7a3873256ea59ec670242015df8f1f16611c960d56647424b97936c8a06f62dc3a95d66bf4aa378d7a9e17d2afb53565780025927e6928f5313428f1d6708339787c8f460ba18457d4c0f521f\n\n# tcId = 318\n# special case hash\nmsg = 32353637333738373431\nresult = valid\nsig = 3081870242017ba871aee34a893c4ded7a2a546da0d6867d428497b80fca7eea6e51b73d6411aff7609743e6242b6d4d3736ddcc9ee1aa12c8b62de5382e5c33d1fc4853e3e47d0", + "2415feb9d9f8fdd44622e4f9effe73fd9b467d355fd6b8de205527f722ee2f5a15eebd59ccdd7b57da26cf953f78886db5a6e5bdd0d56c9bd47ba2271f77687a64b63\n\n# tcId = 319\n# special case hash\nmsg = 35373339393334393935\nresult = valid\nsig = 308188024201840793684765410baf26b66cbcf7c36658d6c18a2f750c1225520e9f3a7c1b890583f321d4e48752c3b3116dfef733ee386c52a53402acea77cfad1db9380110e6024201b51985a306fcdbe3692181106d7d6308873912d003946992098bc98b4261fd78869ed8218849459780b6079f6899a47fcb9ea4874d1c08fab82c6f1e9c9aaae245\n\n# tcId = 320\n# special case hash\nmsg = 33343738333636313339\nresult = valid\nsig = 3081870242012276720b2725ba556d06be39cd16ca0a0351d8f530913c4f0cfb71fdda74b83f02febddc8da0a1f0f910d37d3f5332c027d7bd4c38fd08ebc770bf1252078649540241637e70b06045a86e2f329f907e079a785d7f8649541860322fb8b64b9736363f90156b9a5532d808cf2af33b87ff970c02e648dc4f1c90ff0704028ec2c2d9a82d\n\n# tcId = 321\n# special case hash\nmsg = 363439303532363032\nresult = valid\nsig = 30818702417aade608b22c77245734fc5c4be8737ba24dc2ed4321b58124ae46a77ea7befaa5bcf166cb966aad007911623af10925a324bc3c6d06f24d0e2e7b2c7b8468b8ee024201e9913a412300b3980719148de0bb03826184aabd58f19659aa8ca18045f36c73c97df3d12b921de510ffa96ceac5454b801c86c55a06b2d771fa77bca784332c39\n\n# tcId = 322\n# special case hash\nmsg = 34373633383837343936\nresult = valid\nsig = 308187024201eefc7b6c1468ffa7d60b8408bd44c64a3ffaff298168c5016c6f504031867ea14ae48c661b8124418b4ed6ccc32df6bac6d0a485b1990236e15676268b7868d2760241515d48436afffdb65caed737116a861974b734bd1903e37dbbc231a9db37464ed762e364cac8b32f1546d6de37979fa05f8b80159a0f747d9470291af6569d6d94\n\n# tcId = 323\n# special case hash\nmsg = 353739303230303830\nresult = valid\nsig = 308188024201271b912ca055040c227955df729757654aa9bbdb73c61ba14155220e4e7132319f6fb0ee94f2fbe160738f1dce2ad690845c38d962db4fda1598e93270da84a2bb024200b8907f041c3b19b9234ab555d0b48325b0cd330889a53276a1e913bab892b9c05cfa889005b14ee2730220746aecf12af911c5baea4be377ee76c0eeaf47b7a712\n\n# tcId = 324\n# special case hash\nmsg = 35333434373837383438\nresult = valid\nsig = 3081880242016a813db0f75f9047fb11f3e19fc1688c29328a54f56ae30c1c9d9378537bfc40c5719d084e49a3b4aea255f5b7f6cc775492b5371e6b67b2d6abd5743e10fac709024201c258ffd830151bfd41ccdabb86b24af846612788b361c196d24e997ccf3f17d4452f63d32851a483072e6908095e5c49bbc241a0417749b097bc1ca0e4d127779b\n\n# tcId = 325\n# special case hash\nmsg = 3139323636343130393230\nresult = valid\nsig = 3081870241156a04c22ea5bdb7871124f1117301d781113ac4c9d4da05fea536e983d9261d25dc97006f8c78de23c788718557cf6f98863994af2086f0be3e8aa8812dc3a11d024200ffca96b04c56a4a6ce5d22b36e44d3b974d520e7f7c0f9d69034f9e59e0bbdc43236b3e4bfb0f6bde8802cc5cd6022cff166f4c488d64f38d44e3c563da31cf6fe\n\n# tcId = 326\n# special case hash\nmsg = 33373033393135373035\nresult = valid\nsig = 3081880242010913540ad73ceef7314d1758264e1d1525a371a7b9b3086971599a6b749be4d6ba69269b089508f6500dd925aa89a7c7cb7185e0cca7d2ee5664f22845d961e31702420135256c79ea5e5768fb3a55e2899b12219b8f68953ccd98c710b6a13de0f59786f4331845e65c7dd6340023a5e280206ca31416058f395fff4bb5de411ff66fc018\n\n# tcId = 327\n# special case hash\nmsg = 3831353435373730\nresult = valid\nsig = 308188024201b5051ca0dd3b20df7d8c5b92cb42b8a204f92fb4e58c612f43d3800de8c0683c427e832ce622156747052b81bfbf6ed5fa177b6d47858ec8478f6c9ca7948fd511024201fe5710fac0e9d3e2b3b83081b28b194b822d0c13397bf1516140cbe3faa52e908848f69789a741b9cd54d703a94577fa813e2f2c75834807401ca010fde5328317\n\n# tcId = 328\n# special case hash\nmsg = 313935353330333737\nresult = valid\nsig = 3081870242008d3c8f8e7ab74d49e16a4c7db3a393fa9567777e373313667f9ce32b1b5e648debffedfd2ff5345ca1b8154c18c8b883957d911e41336285f86261c3ee225fdedd02413c51b84c2c9a3feb76a6518634b6f09c0dde8a9d08dec0b3d66135cc1bdb0a80fd69636104af69de8f4062646b29fa3af685ec82704cef706a18c59ca7eca0fb56\n\n# tcId = 329\n# special case hash\nmsg = 31323637383130393033\nresult = valid\nsig = 308187024201195625a64ac11c4fc1fc479ef80430eb85c1af77f8a197a17e009569ef6c41ac6f35850755379f478d8928b154e3baaa29e92b481ac04dc72f3728b4f088ff37dc02410d55c7067877dd1302fdc6bb69b7b7c024e4cf3a0e924102d744ac52366d9d76d5855d3da228c4b67bc7bc4b2a14e7999962cc9bbdc517fc24a823abf584b8f56e\n\n# tcId = 330\n# special case hash\nmsg = 3131313830373230383135\nresult = valid\nsig = 308187024126eb68bc0fb7664c35bf5762cd532dce33b0e396e97d6f4143dc6e1e766c836e27c069da9ea1e74e0b03d030cf8a81490508c1c728f86e59282df94de8d8a0dcaf024200a9fb584b712986f19ab7568693df278cafa43272dba400ff333cf48b5556e6e78353a665605c70b6fd0f18f30b850e1a47cda42c4c924bca80102e6793be9a8698\n\n# tcId = 331\n# special case hash\nmsg = 38333831383639323930\nresult = valid\nsig = 308188024200f3d34e36f9754dfa8eafab160ca96d91c7f4f388ec82ac33784026bb6c6a035719eaeec3ee511fffb22dd5d6ab819e6c6387192d6c3a6e9249ead565157e323f62024201b5786b1d662d26fe9f69c370d2bc18882abef693c8f17100a02725de7c9f03602fd53a9208b573b3b7b0b66db971767bde835f9e8f42ada201e7b7391b86fe0294\n\n# tcId = 332\n# special case hash\nmsg = 33313331323837323737\nresult = valid\nsig = 308188024200e69c833b604075e9b28a2ff73a56a32e1a247ef9ae01e7a0e471f6015c2b86eb864c281c8c93d2acf5653ad05bafab2f58027f37513eb8569f50bd475e770e9a81024200b9c9d6ce09b53025bfcaa7d172ae41a9b636aa4b80a930931fc99e5e2aa23306f19dc57399b0431e72440a1f4ec7d5ca902f0f7b81c91de85e469f992fdfd4c52e\n\n# tcId = 333\n# special case hash\nmsg = 3134333331393236353338\nresult = valid\nsig = 308188024201c6b8b5cf3c4dd3d62391f18e97eef3aa6ace0ae2c6fc97a561cb8e49c087dbcf8135fa433b566b3385cb57202f1b12164fe62765ef73b72a94e7a57870989a498102420185944434b83a0d0fb4bcdce8ddaadb30a1e440815e7674562df9c8bf711222208cc346b9665d90abedb437912391505dd5d26f0178e7c063790f5518f47d1b05c7\n\n# tcId = 334\n# special case hash\nmsg = 333434393038323336\nresult = valid\nsig = 3081880242009f351a41d5375b8993e90b8d8a65bf01d52d14aba1dbe49cbb4ea823804f2b533e0c167903c8bbc593297c18f309798a544787d598074cbf56ef0e5022520912ad024201b892740a57204186bd5f434f72d1534b4289f8f7114cb7b1c9cf4541d754f314448cc32deaf35608263488fdc7596f7481ec098b36f8e440829194becc746c77f5\n\n# tcId = 335\n# special case hash\nmsg = 36383239383335393239\nresult = valid\nsig = 308187024201fe24ea831199e31cc68ef23980c4babd3773040870af8823a19708bd0229adc1ce99d02e4d95224101e3e974236f54df86051fa1e9fd21380432633b2495ab782a02410efd1f2a281f967e7b09d721581356a714c499f9b14f781992eb9ae7a19f6825045fdc6d9d763f44e1e7c91480a678a1d8ecf6d66e76cea3505f65ff78cff15cbd\n\n# tcId = 336\n# special case hash\nmsg = 33343435313538303233\nresult = valid\nsig = 3081870242014c6ee9de0a2a0b60c981831e0acd6636b46ae134fedce61b0488112663b24e1d7e74e227fea883d26b68f21e4135ba0e2069bbe0d9c6433c3908fd5b00182894b002416a180a493182c6bc2a09d7e17ff5d62015293f1e8ae205a16fa09042b0a9af6794cb377f4b8b1175fcee5137c234900f735c484feb7da4cbb405cf9e5370fe4f49\n\n# tcId = 337\n# special case hash\nmsg = 3132363937393837363434\nresult = valid\nsig = 308188024201044a45853ada17ca761acc7df6d1d380252cb0fa66124d9278a5ed8a4a60453bc71de1dbe32b0261165948823c461c7c1eb1714ec1dbf66fd602c7a47446d1dae1024200f8b27f7c71e37e4b440d2c86f1c1d50bf7c53d3878ed27e7bcfbeb902f769f86d6c3e8820b99f890050f0dbebd2132e84626c5b16a8c7ffffc3a30ace69dd15a11\n\n# tcId = 338\n# special case hash\nmsg = 333939323432353533\nresult = valid\nsig = 3081870241676a381b18d05207cddd73b44e4dd71449985c0fa7de1fff43ca5155139a1a09e5e3fd754d86ebbe32f6609f6e906d48d24790e494343c61faa90bfdaa4f49fdc7024200fbc1c891bf6e368fccad51cc9b2c29e8e92b658e88c0d23285af269aff6702a55a0ab16807e5523b6637bbb004727f6f55c51ad4cec8c924f9c1feb24601aeddef\n\n# tcId = 339\n# special case hash\nmsg = 31363031393737393737\nresult = valid\nsig = 3081880242013c9a575382ff6881c908fb5184be7baf38edb0b06008592558efd57dd8fb9993c893800a6ac8c6d2e34ebfbeff43e63263f133868d0ac7a838f69aff26d60a38490242009d22ae7bca8a75a53214c3eece437fb28e05b076ec704d751a28a7ed7e529d5c5338be8c724afa547574a17f70510b2462748a53678e39752a688dc8cf39e886c2\n\n# tcId = 340\n# special case hash\nmsg = 3130383738373535313435\nresult = valid\nsig = 308188024201071ce5a19a09aacd43c7cacd58a439dcca4e85f94ea1d48a60f298ee01bb3eeb11d5daf545e7086486f8e4b518a15be69620ab920cf95c5c15ff178c903124fac3024201ad6eaeedece9a7592bd21508b2720f1b8c4bf55637b1e8a5ce5359775b980b21eb1d33e8ebf5c0b3d7829152a295b8a9a1343c25350e35f709936accc8ce08b0b1\n\n# tcId = 341\n# special case hash\nmsg = 37303034323532393939\nresult = valid\nsig = 308188024201bdae499160f4cc6cd163cf110bb1f9b421e8786a8ef929", + "7e4b98fd508a1d14c50617c8d1a3de94fc8bd6c38055e4906b20fdcab6ef7bf9e7e5c98ef3e83e38ec3b024201ba867b8ee72bb7304ff83fc2d734749447420791d5609e0515de4e05fa70a83385a853cac6c47a075c8c61e4b65b9774574101cf4e081770f83ae1b7e727010ba3\n\n# tcId = 342\n# special case hash\nmsg = 31353635333235323833\nresult = valid\nsig = 3081860240269fc7ed89e554aa52b3875dc00bc140c1937d4f1b32e29da41ff241cdb9bd3058fc148f905982b8717b035e0db00ded7ebcb08572ec76bf0128411145d73091024201b4bd6bc4ba7befd5c305e018448a771b71fa1a11b3a2c6185dd6b8477c35eaeb4733fecd90f38ecba628f27c02f809191e993e1e7ff590383e2ec2afd08020b267\n\n# tcId = 343\n# special case hash\nmsg = 3233383236333432333530\nresult = valid\nsig = 308188024201a5cecc0e572f5ee4eed6755d3230ec5a933c1fb0e35ae771a1fcf0dc880e1c159dd5b6d192dc377505048b7188de3feb815a81a4f30d9226cdc85f751dec1a0410024201ef4a743e1e16f0a60201cc1060625ede6f0936e7af90b42736281e89fe7f2de6aa3f25c68576da705d8b3f6d5d8a34d3073307ea198d1cc8d72a18ef25e90f31af\n\n# tcId = 344\n# special case hash\nmsg = 31343437383437303635\nresult = valid\nsig = 308188024201a92b43f57421e54d2528d305e7d5aac9a708e75a7d6fedb47908a4e3edcabdd836a2c4e8436f3b7b64895254536174d88c6dca143699522bc2dfdeebcbf38eb90502420093b0b99a89de72aca0c03e12724c2be323577a4629cb47fdda5b12b61ace0b9fdb97549d3d2a1dac15da66ba6389ee54cbc82c995b9f3aa3ae8474f4bb4b52da8a\n\n# tcId = 345\n# special case hash\nmsg = 3134323630323035353434\nresult = valid\nsig = 308188024200a0400f255174ffb8548c29f5faa70e806bb6f6ca08a08753c85c5d145a555cc8e2df285af9985f2e729d4a99a734b7e7fc95560d546a067fda03529f56b2fe66bc024200d7fb60271d22ecb5d8ec904a9df1a416be706ce539e34650b8fc514d1dd7afebc1344c0c68c533c5b20ee249a77c075293b2d7efc8731c2e3619be59da871bb083\n\n# tcId = 346\n# special case hash\nmsg = 31393933383335323835\nresult = valid\nsig = 3081880242019207c7b645aa45c2722331f46e094f2eb0052075b8ac9414ad77baafd01d4d1fdc68344136fbce01edfa5627bfb8f3c128abb61072c74802192e89137c68d0cc31024200ff15b0218f81f0a848742f683cb4d1b7c517efdb8fcf8ac6a35e4971b35536851ed68de40a6e1a4a23bddb5b42efca23b91e91959a4f7e2afa196779c96c6c654c\n\n# tcId = 347\n# special case hash\nmsg = 34323932313533353233\nresult = valid\nsig = 308188024200aaf119702b9985354bbe3f6b6cda8c46151af4202546dfbe04d5f0ffd18ebe7b29d616f1c40376a412a52f4204b5a13e7f3e4304ead566fc41bf4b5fc0b84c8a2d024200d599deafd4fa2368cd072b854a3d53425d06adf3573e886b81248a7328a546ddc41caed38c6b1ffeaec9a98c940905cbffa87b936da980d4a9003da41e0c59c92f\n\n# tcId = 348\n# special case hash\nmsg = 34343539393031343936\nresult = valid\nsig = 30818702416c09a59e71cf34f983f75dbb4724c4828a93021cee8fd7d92af6941ca8efc9c5ddda7c49a0e1777225782e09313e3091f056122e585c4eaa689fb2fdb1cb7848d80242019f0c5ff6b4638f4c33916db76f9d078bfa8f9e25ae00348e46bb32d777aa26155b82ea73a9e4e2f21f6a65c73ed6c6ab2101cef3524d45b9fc6ea1292f1986acad\n\n# tcId = 349\n# special case hash\nmsg = 31333933393731313731\nresult = valid\nsig = 3081880242014e791c42f3998458c5e17f895d25c85cb419195d65e5a0b9a42cf13ddd36959c73460f54aa840d2254355c6ac626f440cb3a84fba632262c9dc5cab31be7da106b024200abb97b682f01f45168403613a7e2ff82bb4a9fc20952a35d935428f71ddcc799c6d9085fe3230d72261d73cd082e8108523da7ba0b1691ad6ea63f5f4e8e8909f4\n\n# tcId = 350\n# special case hash\nmsg = 32333930363936343935\nresult = valid\nsig = 3081880242013ded35ddff2f97780bbc60b8cec89855a35183a48f8fa6bbdc183994bf89021118cc019629df72112b2c529c023e7a5cfce253f7fdb49105d238680b64275a213c0242009c92e7a0f71608e8d8cfab3f850f7fda1a1a1d056e72254469afe5ceec3c718e6a462e1346941eb08c105501647502c1a810a29df8b208da6a5b296b2bd1e98137\n\n# tcId = 351\n# special case hash\nmsg = 3131343436303536323634\nresult = valid\nsig = 308188024201d0d29756ebff02b71674fa4eae37557ccd51a036fb1eb0b7121b405e7fabd60592927d805b75815af1bca6e9d6c5484225bdd0ec7a40735da972fd5ff645d86f1d0242008b9fe55357dc118070cf898973a64e7554b734e900c675541e20332a260ca51a23248d9b8f47ded811cfce556a06a71ba5dc5b873075f264a6843e675caf06a534\n\n# tcId = 352\n# special case hash\nmsg = 363835303034373530\nresult = valid\nsig = 30818802420165fb993f39d350ed60c8483dd6e4e6736591dea974ecd8ab027d3839b752322ee220d40bb6fc0b0d5a8c42928bde50f659b18f51f42fb2b1aa4583892a9114a0c3024200a8816c09d47138bf662da4ba25caf44e24185696d4914a7de2b2535f73b9afbd3ffa9cb0a86a115e4d9ac5be48cf7e8fe276466abdf17127bcc7aaf4d096008ca4\n\n# tcId = 353\n# special case hash\nmsg = 3232323035333630363139\nresult = valid\nsig = 30818702410b901c88ea699e715f6db864e23a676e7f7f2415ac1f850f2dde1ad0d3f9c92e8c5de66d45174d619955fae4b0dfebe49c583506481d28d30cbf58e2ac49f370c202420144c97b688b9ecc07b84c68095267e17e48232922756609e9859d18d2eb7844ec925150c39f2b3a255c882be705e0a8e30e68e49fe7914dbcc3ccfbc1d467050f80\n\n# tcId = 354\n# special case hash\nmsg = 36323135363635313234\nresult = valid\nsig = 308188024200abbd9e77ef1e2a36c6b06f063d93effb8e852387a94bfdf8359b5c18708f90d9f4e9749fd45347f637546b08733789c988fda4f0309551bde813a0bb1a232adee102420191165d58d153fec68f5cc83bcf5891e2e0ca9681204876e872453e9ebd45870b6878ee437e4d833c6ec54337b779acbf9f8202df510d269a710d0c43e4e07b040d\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400491cd6c5f93b7414d6d45cfe3d264bd077fc4427a4b0afede76cac537a7ca5ee2c44564258260f7691b81fdfecebfd03ba672277875c5b311ea920e74fb3978af50144a353a251b4297894161bae12d16a89c33b719f904cfccc277df78cea5379198642fd549df919904dc0cf3662eeab01ef11b8e3cb49b51b853d98f042600c0997]\n[key.wx = 491cd6c5f93b7414d6d45cfe3d264bd077fc4427a4b0afede76cac537a7ca5ee2c44564258260f7691b81fdfecebfd03ba672277875c5b311ea920e74fb3978af5]\n[key.wy = 0144a353a251b4297894161bae12d16a89c33b719f904cfccc277df78cea5379198642fd549df919904dc0cf3662eeab01ef11b8e3cb49b51b853d98f042600c0997]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400491cd6c5f93b7414d6d45cfe3d264bd077fc4427a4b0afede76cac537a7ca5ee2c44564258260f7691b81fdfecebfd03ba672277875c5b311ea920e74fb3978af50144a353a251b4297894161bae12d16a89c33b719f904cfccc277df78cea5379198642fd549df919904dc0cf3662eeab01ef11b8e3cb49b51b853d98f042600c0997]\n[sha = SHA-512]\n\n# tcId = 355\n# k*G has a large x-coordinate\nmsg = 313233343030\nresult = valid\nsig = 3067022105ae79787c40d069948033feb708f65a2fc44a36477663b851449048e16ec79bf5024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n# tcId = 356\n# r too large\nmsg = 313233343030\nresult = invalid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04015f281dcdc976641ce024dca1eac8ddd7f949e3290d3b2de11c4873f3676a06ff9f704c24813bd8d63528b2e813f78b869ff38112527e79b383a3bd527badb929ff01502e4cc7032d3ec35b0f8d05409438a86966d623f7a2f432bf712f76dc6345405dfcfcdc36d477831d38eec64ede7f4d39aa91bffcc56ec4241cb06735b2809fbe]\n[key.wx = 015f281dcdc976641ce024dca1eac8ddd7f949e3290d3b2de11c4873f3676a06ff9f704c24813bd8d63528b2e813f78b869ff38112527e79b383a3bd527badb929ff]\n[key.wy = 01502e4cc7032d3ec35b0f8d05409438a86966d623f7a2f432bf712f76dc6345405dfcfcdc36d477831d38eec64ede7f4d39aa91bffcc56ec4241cb06735b2809fbe]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004015f281dcdc976641ce024dca1eac8ddd7f949e3290d3b2de11c4873f3676a06ff9f704c24813bd8d63528b2e813f78b869ff38112527e79b383a3bd527badb929ff01502e4cc7032d3ec35b0f8d05409438a86966d623f7a2f432bf712f76dc6345405dfcfcdc36d477831d38eec64ede7f4d39aa91bffcc56ec4241cb06735b2809fbe]\n[sha = SHA-512]\n\n# tcId = 357\n# r,s are large\nmsg = 313233343030\nresult = valid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386407024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386406\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400336d5d08fe75c50946e6dddd36c550bb054d9925c8f254cfe1c3388f720b1d6500a90412b020b3db592b92ab9f68f1c693b8d1365371635e21bc43eaadf89e4e7401d48d60319dfd06f935fc46488c229b611eecd038804ae9f681a078dde8ed8f8e20ad9504bcf3c24a0b", + "566b1e85b2d3ed0a1273292ff5f87bae5b3c87857e67ed81]\n[key.wx = 336d5d08fe75c50946e6dddd36c550bb054d9925c8f254cfe1c3388f720b1d6500a90412b020b3db592b92ab9f68f1c693b8d1365371635e21bc43eaadf89e4e74]\n[key.wy = 01d48d60319dfd06f935fc46488c229b611eecd038804ae9f681a078dde8ed8f8e20ad9504bcf3c24a0b566b1e85b2d3ed0a1273292ff5f87bae5b3c87857e67ed81]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400336d5d08fe75c50946e6dddd36c550bb054d9925c8f254cfe1c3388f720b1d6500a90412b020b3db592b92ab9f68f1c693b8d1365371635e21bc43eaadf89e4e7401d48d60319dfd06f935fc46488c229b611eecd038804ae9f681a078dde8ed8f8e20ad9504bcf3c24a0b566b1e85b2d3ed0a1273292ff5f87bae5b3c87857e67ed81]\n[sha = SHA-512]\n\n# tcId = 358\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe02420095e19fd2b755d603bf994562d9a11f63cf4eadecbdc0ecb5a394e54529e8da58a527bc6d85725043786362ab4de6cbc7d80e625ae0a98861aea1c7bf7109c91f66\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04006f8fadedbae63701072c287c633f9c0052ea1e6cd00a84342cc0f626210071576abfd0875664b0746cdaf2745effc18d94905b0fc9d2cad4ba375c0ea2298c8d1c0150d128cb62a527ae6df3e92f1f280ea33248711ffe4b35c1b162a9508576860165e0ddc361d96fafcd2ff82776c743b9cd6845db61eb56739f5c4ef561e6c20d8c]\n[key.wx = 6f8fadedbae63701072c287c633f9c0052ea1e6cd00a84342cc0f626210071576abfd0875664b0746cdaf2745effc18d94905b0fc9d2cad4ba375c0ea2298c8d1c]\n[key.wy = 0150d128cb62a527ae6df3e92f1f280ea33248711ffe4b35c1b162a9508576860165e0ddc361d96fafcd2ff82776c743b9cd6845db61eb56739f5c4ef561e6c20d8c]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004006f8fadedbae63701072c287c633f9c0052ea1e6cd00a84342cc0f626210071576abfd0875664b0746cdaf2745effc18d94905b0fc9d2cad4ba375c0ea2298c8d1c0150d128cb62a527ae6df3e92f1f280ea33248711ffe4b35c1b162a9508576860165e0ddc361d96fafcd2ff82776c743b9cd6845db61eb56739f5c4ef561e6c20d8c]\n[sha = SHA-512]\n\n# tcId = 359\n# r and s^-1 have a large Hamming weight\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe024115837645583a37a7a665f983c5e347f65dca47647aa80fd2498a791d44d9b2850a151a6e86fce7d7bb814e724ff11b9ef726bf36c6e7548c37f82a24902876ee19\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04005e7eb6c4f481830abaad8a60ddb09891164ee418ea4cd2995062e227d33c229fb737bf330703097d6b3b69a3f09e79c9de0b402bf846dd26b5bb1191cff801355d01789c9afda567e61de414437b0e93a17611e6e76853762bc0aff1e2bc9e46ce1285b931651d7129b85aef2c1fab1728e7eb4449b2956dec33e6cd7c9ba125c5cd9d]\n[key.wx = 5e7eb6c4f481830abaad8a60ddb09891164ee418ea4cd2995062e227d33c229fb737bf330703097d6b3b69a3f09e79c9de0b402bf846dd26b5bb1191cff801355d]\n[key.wy = 01789c9afda567e61de414437b0e93a17611e6e76853762bc0aff1e2bc9e46ce1285b931651d7129b85aef2c1fab1728e7eb4449b2956dec33e6cd7c9ba125c5cd9d]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005e7eb6c4f481830abaad8a60ddb09891164ee418ea4cd2995062e227d33c229fb737bf330703097d6b3b69a3f09e79c9de0b402bf846dd26b5bb1191cff801355d01789c9afda567e61de414437b0e93a17611e6e76853762bc0aff1e2bc9e46ce1285b931651d7129b85aef2c1fab1728e7eb4449b2956dec33e6cd7c9ba125c5cd9d]\n[sha = SHA-512]\n\n# tcId = 360\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020101020101\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400b420fb1fecdd9cc5ea7d7c7617e70538db32e6d7a0ad722c63580f1f6a1f5537eb50930b90fd6fdd9abd40015f746d2fd8adf945a75621407edb6863588e41979e00295108a7e9d2191a287fd160bd24f498055dc9badbd61c6a89fede27b4f9d479d86a20b6dc07c90f008ebe68a0e0cc15a4a03b8cf990e4ff7ed6e3892b21c52153]\n[key.wx = 00b420fb1fecdd9cc5ea7d7c7617e70538db32e6d7a0ad722c63580f1f6a1f5537eb50930b90fd6fdd9abd40015f746d2fd8adf945a75621407edb6863588e41979e]\n[key.wy = 295108a7e9d2191a287fd160bd24f498055dc9badbd61c6a89fede27b4f9d479d86a20b6dc07c90f008ebe68a0e0cc15a4a03b8cf990e4ff7ed6e3892b21c52153]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400b420fb1fecdd9cc5ea7d7c7617e70538db32e6d7a0ad722c63580f1f6a1f5537eb50930b90fd6fdd9abd40015f746d2fd8adf945a75621407edb6863588e41979e00295108a7e9d2191a287fd160bd24f498055dc9badbd61c6a89fede27b4f9d479d86a20b6dc07c90f008ebe68a0e0cc15a4a03b8cf990e4ff7ed6e3892b21c52153]\n[sha = SHA-512]\n\n# tcId = 361\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020101020102\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040032b9a17c201aec34d29b8c2764e7c7f6aeef10fb61bf9837117fad879f8c6a22a300006d2018cf42b25898ffc9a1bf507352e59e6a52e627cda160e17ea2f4600500317a89899b7cb3a0d33eafa02b0137a0fb1b05102b22b676f35b9ff6c050ddee9f185609ffb7f5165a769e440792b75044a43e838690d13f884aaae888bf5f86f0]\n[key.wx = 32b9a17c201aec34d29b8c2764e7c7f6aeef10fb61bf9837117fad879f8c6a22a300006d2018cf42b25898ffc9a1bf507352e59e6a52e627cda160e17ea2f46005]\n[key.wy = 317a89899b7cb3a0d33eafa02b0137a0fb1b05102b22b676f35b9ff6c050ddee9f185609ffb7f5165a769e440792b75044a43e838690d13f884aaae888bf5f86f0]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040032b9a17c201aec34d29b8c2764e7c7f6aeef10fb61bf9837117fad879f8c6a22a300006d2018cf42b25898ffc9a1bf507352e59e6a52e627cda160e17ea2f4600500317a89899b7cb3a0d33eafa02b0137a0fb1b05102b22b676f35b9ff6c050ddee9f185609ffb7f5165a769e440792b75044a43e838690d13f884aaae888bf5f86f0]\n[sha = SHA-512]\n\n# tcId = 362\n# small r and s\nmsg = 313233343030\nresult = valid\nsig = 3006020101020103\n\n# tcId = 363\n# r is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3047024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640a020103\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040067dd456b52f82a5d4c4a71b3ea9302f62a852ddc04ad25b62fef1ddf657374fb4e80679ddf42d212f0711db32b626d8593bd70892e93ed0adb273157b6df187938014d2c78509f3bd6f7d0fba4a90cb456286e267f5dd9d967842a6086884d66c7b2a932833470c721a4a728cd8486d15314232d801f17e3a6fd7068bdebacdf82c0b4]\n[key.wx = 67dd456b52f82a5d4c4a71b3ea9302f62a852ddc04ad25b62fef1ddf657374fb4e80679ddf42d212f0711db32b626d8593bd70892e93ed0adb273157b6df187938]\n[key.wy = 014d2c78509f3bd6f7d0fba4a90cb456286e267f5dd9d967842a6086884d66c7b2a932833470c721a4a728cd8486d15314232d801f17e3a6fd7068bdebacdf82c0b4]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040067dd456b52f82a5d4c4a71b3ea9302f62a852ddc04ad25b62fef1ddf657374fb4e80679ddf42d212f0711db32b626d8593bd70892e93ed0adb273157b6df187938014d2c78509f3bd6f7d0fba4a90cb456286e267f5dd9d967842a6086884d66c7b2a932833470c721a4a728cd8486d15314232d801f17e3a6fd7068bdebacdf82c0b4]\n[sha = SHA-512]\n\n# tcId = 364\n# s is larger than n\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e914b3a90\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040068d7b518214766ac734a7461d499352444377d50af42a1bbdb7f0032065ee6dc341ccf231af65250e7d13a80733abebff559891d4211d6c28cf952c9222303b53b00a2f3d7e14d9d8fabe1939d664e4615c6e24f5490c815c7651ccf6cc65252f88bcfd3b07fbdbaa0ba00441e590ccbcea00658f388f22c42d8a6d0f781ae5bb4d78b]\n[key.wx = 68d7b518214766ac734a7461d499352444377d50af42a1bbdb7f0032065ee6dc341ccf231af65250e7d13a80733abebff559891d4211d6c28cf952c9222303b53b]\n[key.wy = 00a2f3d7e14d9d8fabe1939d664e4615c6e24f5490c815c7651ccf6cc65252f88bcfd3b07fbdbaa0ba00441e590ccbcea00658f388f22c42d8a6d0f781ae5bb4d78b]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040068d7b518214766ac734a7461d499352444377d50af42a1bbdb7f0032065ee6dc341ccf231af65250e7d13a80733abebff559891d4211d6c28cf952c9222303b53b00a2f3d7e14d9d8fabe1939d664e4615c6e24f5490c815c7651ccf6cc65252f88bcfd3b07fbdbaa0ba00441e590ccbcea00658f388f22c42d8a6d0f781ae5bb4d78b]\n[sha = SHA-512]\n\n# tcId = 365\n# small r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304802020100024201efdfbf7efdfbf7efdfbf7efdfbf7efdfbf7efdfb", + "f7efdfbf7efdfbf7efdfbf7ef87b4de1fc92dd757639408a50bee10764e326fdd2fa308dfde3e5243fdf4ac5ac\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04011edc3b22b20f9a188b32b1e827d6e46b2ed61b9be6f4ada0b2c95835bee2738ec4dc5313831cce5f927210a7bc2f13abc02fa90e716fc1bd2f63c429a760ed23630118daad88fe9b9d66e66e71ce05d74137d277a9ca81c7d7aef1e74550890564103cc0d95d30f6205c9124829192e15d66fb1f4033032a42ba606e3edca6ec065c50]\n[key.wx = 011edc3b22b20f9a188b32b1e827d6e46b2ed61b9be6f4ada0b2c95835bee2738ec4dc5313831cce5f927210a7bc2f13abc02fa90e716fc1bd2f63c429a760ed2363]\n[key.wy = 0118daad88fe9b9d66e66e71ce05d74137d277a9ca81c7d7aef1e74550890564103cc0d95d30f6205c9124829192e15d66fb1f4033032a42ba606e3edca6ec065c50]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004011edc3b22b20f9a188b32b1e827d6e46b2ed61b9be6f4ada0b2c95835bee2738ec4dc5313831cce5f927210a7bc2f13abc02fa90e716fc1bd2f63c429a760ed23630118daad88fe9b9d66e66e71ce05d74137d277a9ca81c7d7aef1e74550890564103cc0d95d30f6205c9124829192e15d66fb1f4033032a42ba606e3edca6ec065c50]\n[sha = SHA-512]\n\n# tcId = 366\n# smallish r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 304d02072d9b4d347952cd02420100508d073413de829275e76509fd81cff49adf4c80ed2ddd4a7937d1d918796878fec24cc46570982c3fb8f5e92ccdcb3e677f07e9bd0db0b84814be1c7949b0de\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04012f8b9863a1887eca6827ad4accc2ba607f8592e5be15d9692b697a4061fcc81560c8feb2ae3851d00e06df3e0091f1f1ca5ec64761f4f8bd6d0c2cab2a121024440174b4e34aec517a0d2ceb2fd152ed1736bc330efca5e6d530ea170802fb6af031425903fa6a378405be5e47d1e52f62f859f537df9c0f6a4a6479a0aadafe219821]\n[key.wx = 012f8b9863a1887eca6827ad4accc2ba607f8592e5be15d9692b697a4061fcc81560c8feb2ae3851d00e06df3e0091f1f1ca5ec64761f4f8bd6d0c2cab2a12102444]\n[key.wy = 0174b4e34aec517a0d2ceb2fd152ed1736bc330efca5e6d530ea170802fb6af031425903fa6a378405be5e47d1e52f62f859f537df9c0f6a4a6479a0aadafe219821]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004012f8b9863a1887eca6827ad4accc2ba607f8592e5be15d9692b697a4061fcc81560c8feb2ae3851d00e06df3e0091f1f1ca5ec64761f4f8bd6d0c2cab2a121024440174b4e34aec517a0d2ceb2fd152ed1736bc330efca5e6d530ea170802fb6af031425903fa6a378405be5e47d1e52f62f859f537df9c0f6a4a6479a0aadafe219821]\n[sha = SHA-512]\n\n# tcId = 367\n# 100-bit r and small s^-1\nmsg = 313233343030\nresult = valid\nsig = 3053020d1033e67e37b32b445580bf4eff0242013cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc33cc3393f632affd3eaa3c8fb64507bd5996497bd588fb9e3947c097ced7546b57c8998\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04008aed779a32b9bf56ea7ab46e4b914e55c65301cdbe9ea6e7ed44f7e978c0365989a19a5e48282fb1158f481c556505d66ff414a07003ebf82fca1698c33f2884c600a62426993ed5b177b6045e60b5fa1a1f8ce1ad5d70e7bc7b5af811dbf86e651f9ea02ec796ab991e1439bf07ffe2ac6052a8a0b0174d78a9441aaf4d8fc757d80f]\n[key.wx = 008aed779a32b9bf56ea7ab46e4b914e55c65301cdbe9ea6e7ed44f7e978c0365989a19a5e48282fb1158f481c556505d66ff414a07003ebf82fca1698c33f2884c6]\n[key.wy = 00a62426993ed5b177b6045e60b5fa1a1f8ce1ad5d70e7bc7b5af811dbf86e651f9ea02ec796ab991e1439bf07ffe2ac6052a8a0b0174d78a9441aaf4d8fc757d80f]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004008aed779a32b9bf56ea7ab46e4b914e55c65301cdbe9ea6e7ed44f7e978c0365989a19a5e48282fb1158f481c556505d66ff414a07003ebf82fca1698c33f2884c600a62426993ed5b177b6045e60b5fa1a1f8ce1ad5d70e7bc7b5af811dbf86e651f9ea02ec796ab991e1439bf07ffe2ac6052a8a0b0174d78a9441aaf4d8fc757d80f]\n[sha = SHA-512]\n\n# tcId = 368\n# small r and 100 bit s^-1\nmsg = 313233343030\nresult = valid\nsig = 30480202010002420086ecbf54ab59a4e195f0be1402edd8657bb94618fab50f2fe20fe5ebbc9ff0e491397ed313cc918d438eedb9b5ecb4d9dfa305303505baf25400ed8c20fc3fc47b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040093697b0378312b38c31deae073f24a8163f086ac2116b7c37c99157cfae7970ab4201f5a7e06ec39eedbf7d87f3021ca439e3ff7c5988b84679937bab786dbe12e01c6987c86077c05423ac281de6d23f6a685870e12855463770eccabc9f3a1d23cb2a0c15479420b5dd40fbdc9886c463b62ee23239df3a8b861c3291d28224f6057]\n[key.wx = 0093697b0378312b38c31deae073f24a8163f086ac2116b7c37c99157cfae7970ab4201f5a7e06ec39eedbf7d87f3021ca439e3ff7c5988b84679937bab786dbe12e]\n[key.wy = 01c6987c86077c05423ac281de6d23f6a685870e12855463770eccabc9f3a1d23cb2a0c15479420b5dd40fbdc9886c463b62ee23239df3a8b861c3291d28224f6057]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040093697b0378312b38c31deae073f24a8163f086ac2116b7c37c99157cfae7970ab4201f5a7e06ec39eedbf7d87f3021ca439e3ff7c5988b84679937bab786dbe12e01c6987c86077c05423ac281de6d23f6a685870e12855463770eccabc9f3a1d23cb2a0c15479420b5dd40fbdc9886c463b62ee23239df3a8b861c3291d28224f6057]\n[sha = SHA-512]\n\n# tcId = 369\n# 100-bit r and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3053020d062522bbd3ecbe7c39e93e7c2402420086ecbf54ab59a4e195f0be1402edd8657bb94618fab50f2fe20fe5ebbc9ff0e491397ed313cc918d438eedb9b5ecb4d9dfa305303505baf25400ed8c20fc3fc47b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04019a9f1b7b7f574a021fedd8679a4e998b48524854eefbaae4104a3973d693e02104fa119243256e3d986f8b4966c286ab8cb1f5267c0bbd6bc182aeb57493a5d5b60158b97eb74862fbca41763e8d3a7beb5fccd05565b75a3a43c2b38b96eb2ccff149c23ef1ac09fc455d808ff28081e985f9e172fc62d0900585172cfbff87383595]\n[key.wx = 019a9f1b7b7f574a021fedd8679a4e998b48524854eefbaae4104a3973d693e02104fa119243256e3d986f8b4966c286ab8cb1f5267c0bbd6bc182aeb57493a5d5b6]\n[key.wy = 0158b97eb74862fbca41763e8d3a7beb5fccd05565b75a3a43c2b38b96eb2ccff149c23ef1ac09fc455d808ff28081e985f9e172fc62d0900585172cfbff87383595]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004019a9f1b7b7f574a021fedd8679a4e998b48524854eefbaae4104a3973d693e02104fa119243256e3d986f8b4966c286ab8cb1f5267c0bbd6bc182aeb57493a5d5b60158b97eb74862fbca41763e8d3a7beb5fccd05565b75a3a43c2b38b96eb2ccff149c23ef1ac09fc455d808ff28081e985f9e172fc62d0900585172cfbff87383595]\n[sha = SHA-512]\n\n# tcId = 370\n# r and s^-1 are close to n\nmsg = 313233343030\nresult = valid\nsig = 308188024201fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138638a0242015555555555555555555555555555555555555555555555555555555555555555518baf05027f750ef25532ab85fa066e8ad2793125b112da747cf524bf0b7aed5b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401aa9f3a894b727d7a01b09c4f051b469d661de1e06915b599e211463319ac1b7ca8a6097f1be401d70a71d0b53655cdf9bef748d886e08ee7de2fa781e93ec41a2601ba9ea67385e19894fc9cd4b0173ab215f7b96f23bc420665d46c75447bf200ae3ac7b42bd9b857fd1c85cce8ea9c8d2345e4687dd70df59f5149510735bb9c7b64]\n[key.wx = 01aa9f3a894b727d7a01b09c4f051b469d661de1e06915b599e211463319ac1b7ca8a6097f1be401d70a71d0b53655cdf9bef748d886e08ee7de2fa781e93ec41a26]\n[key.wy = 01ba9ea67385e19894fc9cd4b0173ab215f7b96f23bc420665d46c75447bf200ae3ac7b42bd9b857fd1c85cce8ea9c8d2345e4687dd70df59f5149510735bb9c7b64]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401aa9f3a894b727d7a01b09c4f051b469d661de1e06915b599e211463319ac1b7ca8a6097f1be401d70a71d0b53655cdf9bef748d886e08ee7de2fa781e93ec41a2601ba9ea67385e19894fc9cd4b0173ab215f7b96f23bc420665d46c75447bf200ae3ac7b42bd9b857fd1c85cce8ea9c8d2345e4687dd70df59f5149510735bb9c7b64]\n[sha = SHA-512]\n\n# tcId = 371\n# s == 1\nmsg = 313233343030\nresult = valid\nsig = 3047024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad020101\n\n# tcId = 372\n# s == 0\nmsg = 313233343030\nresult = invalid\nsig = 3047024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad020100\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04002a07f13f3e8df382145b7942fe6f91c12ff3064b314b4e3476bf3afbb982070f17f63b2de5fbe8c91a87ae632869facf17d5ce9d139b37ed557581bb9a7e4b8fa30024b904c5fc536ae53b323a7fd0b7b8e420302406ade84ea8a10ca7c5c934bad5489db6e3a8cc3064602cc83f309e9d247aae72afca08336bc8919e15f4be5ad77a]\n[key.wx = 2a07f13f3e8df382145b7942fe6f91c12ff3064b314b4e3", + "476bf3afbb982070f17f63b2de5fbe8c91a87ae632869facf17d5ce9d139b37ed557581bb9a7e4b8fa3]\n[key.wy = 24b904c5fc536ae53b323a7fd0b7b8e420302406ade84ea8a10ca7c5c934bad5489db6e3a8cc3064602cc83f309e9d247aae72afca08336bc8919e15f4be5ad77a]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004002a07f13f3e8df382145b7942fe6f91c12ff3064b314b4e3476bf3afbb982070f17f63b2de5fbe8c91a87ae632869facf17d5ce9d139b37ed557581bb9a7e4b8fa30024b904c5fc536ae53b323a7fd0b7b8e420302406ade84ea8a10ca7c5c934bad5489db6e3a8cc3064602cc83f309e9d247aae72afca08336bc8919e15f4be5ad77a]\n[sha = SHA-512]\n\n# tcId = 373\n# point at infinity during verify\nmsg = 313233343030\nresult = invalid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd28c343c1df97cb35bfe600a47b84d2e81ddae4dc44ce23d75db7db8f489c3204024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04004bb904073cb6da9e5028df54fc22cf5a9d5ca73a01feedd2b4ce43b87bfd4300a72bdf26b146b2e7b506c03c7a0ad4a7e3e67204dddca9b65d43560ffaf9bfd540012b8895632e0406b78463fe1bc5360a3cf796fddda9db2b18ca9171558e6158fa4b0b1d0461d9a46b9b958d629bd62a29ee3942238e0fa83e932a66abb1b50c5f37]\n[key.wx = 4bb904073cb6da9e5028df54fc22cf5a9d5ca73a01feedd2b4ce43b87bfd4300a72bdf26b146b2e7b506c03c7a0ad4a7e3e67204dddca9b65d43560ffaf9bfd540]\n[key.wy = 012b8895632e0406b78463fe1bc5360a3cf796fddda9db2b18ca9171558e6158fa4b0b1d0461d9a46b9b958d629bd62a29ee3942238e0fa83e932a66abb1b50c5f37]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004004bb904073cb6da9e5028df54fc22cf5a9d5ca73a01feedd2b4ce43b87bfd4300a72bdf26b146b2e7b506c03c7a0ad4a7e3e67204dddca9b65d43560ffaf9bfd540012b8895632e0406b78463fe1bc5360a3cf796fddda9db2b18ca9171558e6158fa4b0b1d0461d9a46b9b958d629bd62a29ee3942238e0fa83e932a66abb1b50c5f37]\n[sha = SHA-512]\n\n# tcId = 374\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd28c343c1df97cb35bfe600a47b84d2e81ddae4dc44ce23d75db7db8f489c3206024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd28c343c1df97cb35bfe600a47b84d2e81ddae4dc44ce23d75db7db8f489c3204\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04016454afca385eb53eaeaab711537d95c50e01268b100a22656adf5cedf68b4a78a6c14a70245df707f6565ce15948c2e38e3d90e05dda3188ab43a73f30dbc6bda80151dca6dc5aec84fa35c79f21365993f0b267ca486ea66c2186a52a3fb62b53501ce2822d4691fbc25cf27adb70734071be523b9231dd8d33a401dea00cf0ae30a1]\n[key.wx = 016454afca385eb53eaeaab711537d95c50e01268b100a22656adf5cedf68b4a78a6c14a70245df707f6565ce15948c2e38e3d90e05dda3188ab43a73f30dbc6bda8]\n[key.wy = 0151dca6dc5aec84fa35c79f21365993f0b267ca486ea66c2186a52a3fb62b53501ce2822d4691fbc25cf27adb70734071be523b9231dd8d33a401dea00cf0ae30a1]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004016454afca385eb53eaeaab711537d95c50e01268b100a22656adf5cedf68b4a78a6c14a70245df707f6565ce15948c2e38e3d90e05dda3188ab43a73f30dbc6bda80151dca6dc5aec84fa35c79f21365993f0b267ca486ea66c2186a52a3fb62b53501ce2822d4691fbc25cf27adb70734071be523b9231dd8d33a401dea00cf0ae30a1]\n[sha = SHA-512]\n\n# tcId = 375\n# edge case for signature malleability\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd28c343c1df97cb35bfe600a47b84d2e81ddae4dc44ce23d75db7db8f489c3206024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd28c343c1df97cb35bfe600a47b84d2e81ddae4dc44ce23d75db7db8f489c3205\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040060daf59638158ed9d3d7e8428501334764162f9be239e168fae9af348c30a7be1cfa4d9636c3bb621d7e0aa71446f8d4a37f2d43274a4255b226f612382f63152e016e48300124a636b206fad4d0355862a852623799afee941e864d96dcbf55b801cabd6249b6f567506d5a503e7d03b4764c70fc44c5365f32c3603678476d62b09d]\n[key.wx = 60daf59638158ed9d3d7e8428501334764162f9be239e168fae9af348c30a7be1cfa4d9636c3bb621d7e0aa71446f8d4a37f2d43274a4255b226f612382f63152e]\n[key.wy = 016e48300124a636b206fad4d0355862a852623799afee941e864d96dcbf55b801cabd6249b6f567506d5a503e7d03b4764c70fc44c5365f32c3603678476d62b09d]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040060daf59638158ed9d3d7e8428501334764162f9be239e168fae9af348c30a7be1cfa4d9636c3bb621d7e0aa71446f8d4a37f2d43274a4255b226f612382f63152e016e48300124a636b206fad4d0355862a852623799afee941e864d96dcbf55b801cabd6249b6f567506d5a503e7d03b4764c70fc44c5365f32c3603678476d62b09d]\n[sha = SHA-512]\n\n# tcId = 376\n# u1 == 1\nmsg = 313233343030\nresult = valid\nsig = 308186024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040051fe6a35a85070c7c29502a87672a38153d799aef734226b64d8fd3398621701117f0af9d9afaf6dbb8ca3007255dc79b0f41ed552512cb29207b15a01cdfdfaae01a16c61277586356efadcb24764f21f574ef96f2caabc3f47fa66fb8719d7785824061c2d6d7a4bcb851540e62b2f00960b283eac7808d1813ef51b46e1149d3e4d]\n[key.wx = 51fe6a35a85070c7c29502a87672a38153d799aef734226b64d8fd3398621701117f0af9d9afaf6dbb8ca3007255dc79b0f41ed552512cb29207b15a01cdfdfaae]\n[key.wy = 01a16c61277586356efadcb24764f21f574ef96f2caabc3f47fa66fb8719d7785824061c2d6d7a4bcb851540e62b2f00960b283eac7808d1813ef51b46e1149d3e4d]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040051fe6a35a85070c7c29502a87672a38153d799aef734226b64d8fd3398621701117f0af9d9afaf6dbb8ca3007255dc79b0f41ed552512cb29207b15a01cdfdfaae01a16c61277586356efadcb24764f21f574ef96f2caabc3f47fa66fb8719d7785824061c2d6d7a4bcb851540e62b2f00960b283eac7808d1813ef51b46e1149d3e4d]\n[sha = SHA-512]\n\n# tcId = 377\n# u1 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 308188024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024201ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94fdcdefd78dc0b56a22d16f2eec26ae0c1fb484d059300e80bd6b0472b3d1222ff5d08b03d\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400b4ffc0fff087607ad26c4b23d6d31ae5f904cc064e350f47131ce2784fbb359867988a559d4386752e56277bef34e26544dedda88cc20a3411fa98834eeae869ad009d6e8ca99949b7b34fd06a789744ecac3356247317c4d7aa9296676dd623594f3684bc13064cab8d2db7edbca91f1c8beb542bc97978a3f31f3610a03f46a982d2]\n[key.wx = 00b4ffc0fff087607ad26c4b23d6d31ae5f904cc064e350f47131ce2784fbb359867988a559d4386752e56277bef34e26544dedda88cc20a3411fa98834eeae869ad]\n[key.wy = 009d6e8ca99949b7b34fd06a789744ecac3356247317c4d7aa9296676dd623594f3684bc13064cab8d2db7edbca91f1c8beb542bc97978a3f31f3610a03f46a982d2]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400b4ffc0fff087607ad26c4b23d6d31ae5f904cc064e350f47131ce2784fbb359867988a559d4386752e56277bef34e26544dedda88cc20a3411fa98834eeae869ad009d6e8ca99949b7b34fd06a789744ecac3356247317c4d7aa9296676dd623594f3684bc13064cab8d2db7edbca91f1c8beb542bc97978a3f31f3610a03f46a982d2]\n[sha = SHA-512]\n\n# tcId = 378\n# u2 == 1\nmsg = 313233343030\nresult = valid\nsig = 308188024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400809fba320fe96ded24611b72a2a5428fe46049ff080d6e0813ab7a35897018fe6418613abd860d1eb484959059a01af7d68cba69d1c52ea64ad0f28a18a41fc78a01108acc5577e9e8962e2a7cea0bb37df1d0ca4050fb6cfeba41a7f868d988dbbcebc962986748fa485183f6b60f453ec8606f8c33d43767dddbbef8c412b2c37939]\n[key.wx = 00809fba320fe96ded24611b72a2a5428fe46049ff080d6e0813ab7a35897018fe6418613abd860d1eb484959059a01af7d68cba69d1c52ea64ad0f28a18a41fc78a]\n[key.wy = 01108acc5577e9e8962e2a7", + "cea0bb37df1d0ca4050fb6cfeba41a7f868d988dbbcebc962986748fa485183f6b60f453ec8606f8c33d43767dddbbef8c412b2c37939]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400809fba320fe96ded24611b72a2a5428fe46049ff080d6e0813ab7a35897018fe6418613abd860d1eb484959059a01af7d68cba69d1c52ea64ad0f28a18a41fc78a01108acc5577e9e8962e2a7cea0bb37df1d0ca4050fb6cfeba41a7f868d988dbbcebc962986748fa485183f6b60f453ec8606f8c33d43767dddbbef8c412b2c37939]\n[sha = SHA-512]\n\n# tcId = 379\n# u2 == n - 1\nmsg = 313233343030\nresult = valid\nsig = 308188024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad0242015555555555555555555555555555555555555555555555555555555555555555518baf05027f750ef25532ab85fa066e8ad2793125b112da747cf524bf0b7aed5c\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040145130dca77d9674dfceffa851b4a2672e490e8fba8277622b0020e2fe9101e76933b0c01d248071f854e9bc523733936dc0b9930cbe154b9a402f681ee3c6cef6b000d0c94b2ad28556643aa3d27523048d227a1de82f8a664707e75394d21da181bec82e1afb0e627539531affa849a2409bcac83fb786c351c88bac2fb2e4322e54a]\n[key.wx = 0145130dca77d9674dfceffa851b4a2672e490e8fba8277622b0020e2fe9101e76933b0c01d248071f854e9bc523733936dc0b9930cbe154b9a402f681ee3c6cef6b]\n[key.wy = 0d0c94b2ad28556643aa3d27523048d227a1de82f8a664707e75394d21da181bec82e1afb0e627539531affa849a2409bcac83fb786c351c88bac2fb2e4322e54a]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040145130dca77d9674dfceffa851b4a2672e490e8fba8277622b0020e2fe9101e76933b0c01d248071f854e9bc523733936dc0b9930cbe154b9a402f681ee3c6cef6b000d0c94b2ad28556643aa3d27523048d227a1de82f8a664707e75394d21da181bec82e1afb0e627539531affa849a2409bcac83fb786c351c88bac2fb2e4322e54a]\n[sha = SHA-512]\n\n# tcId = 380\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201556bfd55a94e530bd972e52873ef39ac3ec34481aebdc46680dc66723ab66056275d82bff85ad29ac694530bb2f89c36ce600ad1b49761854afc69ab741ce0294a\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400ed3e09809fe5985818f90592fd06e71d2c493d9a781714c9157cbafa5ba196b987fd49ae24274c76251c70b9f7970f1f713ad274590a702f463c73a0704831ce5d00cac278297093bd9f9ac2d00bef3d67a01b43b28b9f829407264c738117438300c7704772976916ea102a776262ccf4222cc348c34aac683d8f00179a348323babd]\n[key.wx = 00ed3e09809fe5985818f90592fd06e71d2c493d9a781714c9157cbafa5ba196b987fd49ae24274c76251c70b9f7970f1f713ad274590a702f463c73a0704831ce5d]\n[key.wy = 00cac278297093bd9f9ac2d00bef3d67a01b43b28b9f829407264c738117438300c7704772976916ea102a776262ccf4222cc348c34aac683d8f00179a348323babd]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400ed3e09809fe5985818f90592fd06e71d2c493d9a781714c9157cbafa5ba196b987fd49ae24274c76251c70b9f7970f1f713ad274590a702f463c73a0704831ce5d00cac278297093bd9f9ac2d00bef3d67a01b43b28b9f829407264c738117438300c7704772976916ea102a776262ccf4222cc348c34aac683d8f00179a348323babd]\n[sha = SHA-512]\n\n# tcId = 381\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200dcf9e7f441448a125b96d72b989d9f4dac7508c7e036f6080d4758e736f5e0636b0ff503f128a98d08e0ae189921065219d2cc3aa83e3c660ca0cb85e7c11a24d0\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04000ac2c5a4c79309a5132d5d7494befb3905d33fda5f80eeaf63775183aae7af108a3d97f3a441532cf6fac47f6c898329d69182e1fa07ce45997ebec3781c9ad7410173a5b6b80a8b73d30ac97e1a4aacb773c1ad692c5ea63f68e373842782bd677864ff656cf8d1e6ec1e58e9a83856ef92677555916749fb95e800ae2e011618ca3a]\n[key.wx = 0ac2c5a4c79309a5132d5d7494befb3905d33fda5f80eeaf63775183aae7af108a3d97f3a441532cf6fac47f6c898329d69182e1fa07ce45997ebec3781c9ad741]\n[key.wy = 0173a5b6b80a8b73d30ac97e1a4aacb773c1ad692c5ea63f68e373842782bd677864ff656cf8d1e6ec1e58e9a83856ef92677555916749fb95e800ae2e011618ca3a]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004000ac2c5a4c79309a5132d5d7494befb3905d33fda5f80eeaf63775183aae7af108a3d97f3a441532cf6fac47f6c898329d69182e1fa07ce45997ebec3781c9ad7410173a5b6b80a8b73d30ac97e1a4aacb773c1ad692c5ea63f68e373842782bd677864ff656cf8d1e6ec1e58e9a83856ef92677555916749fb95e800ae2e011618ca3a]\n[sha = SHA-512]\n\n# tcId = 382\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024166eb57733c19a7003cf8253279fce41907bc4f127153c4576dd4814f8b335a0b51560b4447f0382c69b3fe509522c891f0eec3999ad2526835f33ae22a642843af\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401eb2a353dec6b460fbda49c67f431190fff6f195639c226ef8fefcbf191d72529a12cc5485b282a52704c1fd84529a1aa0ad794f96493e299718d2618a1b83a526c01f704604d5b2b94a42bfc3ab93317d66a54de15258337433fc96a965d8e2d056fd1134b7989d7b3f709adc28227bdabc11fe2f359c6a6e5111ab43379ca25b66f2f]\n[key.wx = 01eb2a353dec6b460fbda49c67f431190fff6f195639c226ef8fefcbf191d72529a12cc5485b282a52704c1fd84529a1aa0ad794f96493e299718d2618a1b83a526c]\n[key.wy = 01f704604d5b2b94a42bfc3ab93317d66a54de15258337433fc96a965d8e2d056fd1134b7989d7b3f709adc28227bdabc11fe2f359c6a6e5111ab43379ca25b66f2f]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401eb2a353dec6b460fbda49c67f431190fff6f195639c226ef8fefcbf191d72529a12cc5485b282a52704c1fd84529a1aa0ad794f96493e299718d2618a1b83a526c01f704604d5b2b94a42bfc3ab93317d66a54de15258337433fc96a965d8e2d056fd1134b7989d7b3f709adc28227bdabc11fe2f359c6a6e5111ab43379ca25b66f2f]\n[sha = SHA-512]\n\n# tcId = 383\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242017106d1131b3300d7ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc79527ac09f0a3f0a8aa38285585b6afceac5ff6692842232d106d15d4df1b66aa8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401e43dfecc7e6caad03d17b407322c878f701c5add6eb2afcd786ff3803622dfbb6baa01246e1ea059f7b78842919b2507daa9e3434efa7e8d3ae6c35499f82d0ac8018b0e4d6378222a07ccdb4214001f97b1a503d1aac3ab925ea64faa9c739ba04ee3480b147cb07f93edf40b6856a22f4159c3f5cd6c9e7165452907c8d02fab201e]\n[key.wx = 01e43dfecc7e6caad03d17b407322c878f701c5add6eb2afcd786ff3803622dfbb6baa01246e1ea059f7b78842919b2507daa9e3434efa7e8d3ae6c35499f82d0ac8]\n[key.wy = 018b0e4d6378222a07ccdb4214001f97b1a503d1aac3ab925ea64faa9c739ba04ee3480b147cb07f93edf40b6856a22f4159c3f5cd6c9e7165452907c8d02fab201e]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401e43dfecc7e6caad03d17b407322c878f701c5add6eb2afcd786ff3803622dfbb6baa01246e1ea059f7b78842919b2507daa9e3434efa7e8d3ae6c35499f82d0ac8018b0e4d6378222a07ccdb4214001f97b1a503d1aac3ab925ea64faa9c739ba04ee3480b147cb07f93edf40b6856a22f4159c3f5cd6c9e7165452907c8d02fab201e]\n[sha = SHA-512]\n\n# tcId = 384\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc02416d1131b3300d7ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6ab94bf496f53ea229e7fe6b456088ea32f6e2b104f5112798bb59d46a0d468f838\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040141a4d714628c192b8ace1a42854da06e0e1ddb82a07618e4efb05d7095cd1eb65425078160594715eaf59fcb41c9e573fe10298c75c9e9135c775ca73f63d13aac0089524b475170d4391cc032a0543ea22dab60ea07538f3a37607f0d4ed516634fde545e2f0a6ba8d0d2fe6aded0a771b4b134a5a280e54799fa476ef0ec87d44e1c]\n[key.wx = 0141a4d714628c192b8ace1a42854da06e0e1ddb82a07618e4efb05d7095cd1eb65425078160594715eaf59fcb41c9e573fe10298c75c9e9135c775ca73f63d13aac]\n[key.wy = 0089524b475170d4391cc032a0543ea22dab60ea07538f3a37607f0d4ed516634fde545e2f0a6ba8d0d2fe6aded0a771b4b134a5a280e54799fa476ef0ec87d44e1c]\n[keyDer = 30819b301006072a8648ce3d02010605", + "2b8104002303818600040141a4d714628c192b8ace1a42854da06e0e1ddb82a07618e4efb05d7095cd1eb65425078160594715eaf59fcb41c9e573fe10298c75c9e9135c775ca73f63d13aac0089524b475170d4391cc032a0543ea22dab60ea07538f3a37607f0d4ed516634fde545e2f0a6ba8d0d2fe6aded0a771b4b134a5a280e54799fa476ef0ec87d44e1c]\n[sha = SHA-512]\n\n# tcId = 385\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200da226366601afff780ffe082a0db8e74ea10d4864a5f6876c64f5e78d6598fad57297e92dea7d4453cffcd68ac111d465edc56209ea224f3176b3a8d41a8d1f070\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040147fbcc65d4818e029e0a3af13a1f7c90f0605a00cd0781200eb656a591d669a787620e6fc8cc594aa28a0b0f2939ec73472c494e09cecaf5f331dafd32d5ac31c30075432bdaeecaa0bec7feddc298c565723fb669ee76e38a4c5ff1701f1b38cda9dc9ac43bff18da2047e4dcd80c05a7bb7e7464829d608b68176b04c87f409f46d6]\n[key.wx = 0147fbcc65d4818e029e0a3af13a1f7c90f0605a00cd0781200eb656a591d669a787620e6fc8cc594aa28a0b0f2939ec73472c494e09cecaf5f331dafd32d5ac31c3]\n[key.wy = 75432bdaeecaa0bec7feddc298c565723fb669ee76e38a4c5ff1701f1b38cda9dc9ac43bff18da2047e4dcd80c05a7bb7e7464829d608b68176b04c87f409f46d6]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040147fbcc65d4818e029e0a3af13a1f7c90f0605a00cd0781200eb656a591d669a787620e6fc8cc594aa28a0b0f2939ec73472c494e09cecaf5f331dafd32d5ac31c30075432bdaeecaa0bec7feddc298c565723fb669ee76e38a4c5ff1701f1b38cda9dc9ac43bff18da2047e4dcd80c05a7bb7e7464829d608b68176b04c87f409f46d6]\n[sha = SHA-512]\n\n# tcId = 386\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242011b3300d7ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94cb85df5e6c1125394fcd34f6521ffdaddd98f88a99fedcedd9384288bb793cf2f\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400b5b1c3998589b25c96a700bbd450d04da1f273df8053767a3b03ed1a763ed089c0de99bcf54d49c1520d3a09b845296f0445b3bd5b87918d3752cf651e0ff3007b00e896380876b9419c56096914ff6eec01aee247eefef0741895f14ee280f360e11508c37826af82cd915b9002f046cb51008d9ead21124c591bd8265d1492b35ffb]\n[key.wx = 00b5b1c3998589b25c96a700bbd450d04da1f273df8053767a3b03ed1a763ed089c0de99bcf54d49c1520d3a09b845296f0445b3bd5b87918d3752cf651e0ff3007b]\n[key.wy = 00e896380876b9419c56096914ff6eec01aee247eefef0741895f14ee280f360e11508c37826af82cd915b9002f046cb51008d9ead21124c591bd8265d1492b35ffb]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400b5b1c3998589b25c96a700bbd450d04da1f273df8053767a3b03ed1a763ed089c0de99bcf54d49c1520d3a09b845296f0445b3bd5b87918d3752cf651e0ff3007b00e896380876b9419c56096914ff6eec01aee247eefef0741895f14ee280f360e11508c37826af82cd915b9002f046cb51008d9ead21124c591bd8265d1492b35ffb]\n[sha = SHA-512]\n\n# tcId = 387\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc02420161be37ed5f748e06a89d72c4b7051cae809d9567848b1d8d7ed019221efb06ae81e1264ce49c5d29ee5fe22ccf70899002643aca7b99f57756f2639b6d459ae410\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401aadb41fadc35cf6d11a7c7d01d049b74b37677f04e1bd3dc08450fabae28adcd2d135f966616d283fb18a5e69eabfe7ec41e1a0edb3682f1d39f2af64a94d602b9014ae81ebf5e3d2d0529479d4ae8eb05f4b42e519608466ad69e7662d6e9b236765f9be535c058f00f0866bbb4b172ef47a03cb97c58dde5750344bb293035f8e97e]\n[key.wx = 01aadb41fadc35cf6d11a7c7d01d049b74b37677f04e1bd3dc08450fabae28adcd2d135f966616d283fb18a5e69eabfe7ec41e1a0edb3682f1d39f2af64a94d602b9]\n[key.wy = 014ae81ebf5e3d2d0529479d4ae8eb05f4b42e519608466ad69e7662d6e9b236765f9be535c058f00f0866bbb4b172ef47a03cb97c58dde5750344bb293035f8e97e]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401aadb41fadc35cf6d11a7c7d01d049b74b37677f04e1bd3dc08450fabae28adcd2d135f966616d283fb18a5e69eabfe7ec41e1a0edb3682f1d39f2af64a94d602b9014ae81ebf5e3d2d0529479d4ae8eb05f4b42e519608466ad69e7662d6e9b236765f9be535c058f00f0866bbb4b172ef47a03cb97c58dde5750344bb293035f8e97e]\n[sha = SHA-512]\n\n# tcId = 388\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201e9bbbd64270b9668f7623ef7cbead5483eb07b883cf39fb6884aab67dac7958b0e03144357b9433e69adc696c86c63a23d35724cbd749b7c34f8e34232d21ea420\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401b706fc3f4aae5b86da261a66fbce47eb3b3e1e91544a40a9989fccf74154bbecac042dbbbf411a39090058b62c46fccd1d5eaba0c4879a688ea5fd0a7b4f9a0b4f01eda01930c6b22745a97f2d59e182598dfdfbfdb463335293901de7fc9d49cf55ed7fcf5d767d4c22f89f171b4137c8415c3ed438089270c41f88eadef3018140e1]\n[key.wx = 01b706fc3f4aae5b86da261a66fbce47eb3b3e1e91544a40a9989fccf74154bbecac042dbbbf411a39090058b62c46fccd1d5eaba0c4879a688ea5fd0a7b4f9a0b4f]\n[key.wy = 01eda01930c6b22745a97f2d59e182598dfdfbfdb463335293901de7fc9d49cf55ed7fcf5d767d4c22f89f171b4137c8415c3ed438089270c41f88eadef3018140e1]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401b706fc3f4aae5b86da261a66fbce47eb3b3e1e91544a40a9989fccf74154bbecac042dbbbf411a39090058b62c46fccd1d5eaba0c4879a688ea5fd0a7b4f9a0b4f01eda01930c6b22745a97f2d59e182598dfdfbfdb463335293901de7fc9d49cf55ed7fcf5d767d4c22f89f171b4137c8415c3ed438089270c41f88eadef3018140e1]\n[sha = SHA-512]\n\n# tcId = 389\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200924449b6c96f3758e3b085c079714f11f28d039b11699f0e9b3e7c553c8fc6c8f5212fec5eac3068713b8ec72fc6e2a90872b94e161a89822887f4a9bd5c9efd74\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040058a1fa96111bf30be76c3b8ba4435666677b6dd05031b5c4a840e1ea81f6025f70e1d395ef63cb59fa71e3674cb678f7250887f5d734e3ec377dbe3ae637d24f82007a4eaf02cc57e658b5b9fa08ee30e0ef5b3429bb5a10438b0e05bacaebc60317010a334d7f896028aef620f5d9c7cabc38306e032b1b91c2376c3fef3e455a10df]\n[key.wx = 58a1fa96111bf30be76c3b8ba4435666677b6dd05031b5c4a840e1ea81f6025f70e1d395ef63cb59fa71e3674cb678f7250887f5d734e3ec377dbe3ae637d24f82]\n[key.wy = 7a4eaf02cc57e658b5b9fa08ee30e0ef5b3429bb5a10438b0e05bacaebc60317010a334d7f896028aef620f5d9c7cabc38306e032b1b91c2376c3fef3e455a10df]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040058a1fa96111bf30be76c3b8ba4435666677b6dd05031b5c4a840e1ea81f6025f70e1d395ef63cb59fa71e3674cb678f7250887f5d734e3ec377dbe3ae637d24f82007a4eaf02cc57e658b5b9fa08ee30e0ef5b3429bb5a10438b0e05bacaebc60317010a334d7f896028aef620f5d9c7cabc38306e032b1b91c2376c3fef3e455a10df]\n[sha = SHA-512]\n\n# tcId = 390\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201554a01552b58d67a13468d6bc6086329e09e5dbf28a11dccbf91ccc6e2a4cfd4e6a2c5278791c6490835a27b6f7abb8a690bb060de3deb85093d3ae16482c84f64\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400303ba5ef90b05110002fdf74d2b8d4c7ab189c64004859c69d7c4730fcacb5f4d9b761ae987d1f3b63bb3ecb78aeecf4a04ff60f5f367a96ac2da8da27a3687a3e006673d0d4ccd4c3ce1abc9980fd1885002c3e7b86078214caf7f0962fa51e116363032d7a1b93c92a4d62827549d5a33e4e6b9b6c2ab6ad9c2a15e410c5b1a846b2]\n[key.wx = 303ba5ef90b05110002fdf74d2b8d4c7ab189c64004859c69d7c4730fcacb5f4d9b761ae987d1f3b63bb3ecb78aeecf4a04ff60f5f367a96ac2da8da27a3687a3e]\n[key.wy = 6673d0d4ccd4c3ce1abc9980fd1885002c3e7b86078214caf7f0962fa51e116363032d7a1b93c92a4d62827549d5a33e4e6b9b6c2ab6ad9c2a15e410c5b1a846b2]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400303ba5ef90b05110002fdf74d2b8d4c7ab189c64004859c69d7c4730fcacb5f4d9b761ae987d1f3b63bb3ecb78aeecf4a04ff60f5f367a96ac2da8da27a3687a", + "3e006673d0d4ccd4c3ce1abc9980fd1885002c3e7b86078214caf7f0962fa51e116363032d7a1b93c92a4d62827549d5a33e4e6b9b6c2ab6ad9c2a15e410c5b1a846b2]\n[sha = SHA-512]\n\n# tcId = 391\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200aa9402aa56b1acf4268d1ad78c10c653c13cbb7e51423b997f23998dc5499fa9d2f403c78b645cfba4eb78f595fe6d6f01dbaaf803f23ac263bf060baa74583abf\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400a94eea843a5c49637041598e30c381f7173bf8cd127f3caf5c16cbc728aa4d99173fb38d6a1b1ec21e40336e8d802249272b0ccbf4f8c3636ef66290a81b58fa5b01116c23464fad61df8d2d5d1250a5a4c427e9c58e2cf1d059cdd88a7c34984fdd22a4cf18411e1b0224d444a5bd39d5fc97fc0b3648600f19d6ab80aa6a7c083a17]\n[key.wx = 00a94eea843a5c49637041598e30c381f7173bf8cd127f3caf5c16cbc728aa4d99173fb38d6a1b1ec21e40336e8d802249272b0ccbf4f8c3636ef66290a81b58fa5b]\n[key.wy = 01116c23464fad61df8d2d5d1250a5a4c427e9c58e2cf1d059cdd88a7c34984fdd22a4cf18411e1b0224d444a5bd39d5fc97fc0b3648600f19d6ab80aa6a7c083a17]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400a94eea843a5c49637041598e30c381f7173bf8cd127f3caf5c16cbc728aa4d99173fb38d6a1b1ec21e40336e8d802249272b0ccbf4f8c3636ef66290a81b58fa5b01116c23464fad61df8d2d5d1250a5a4c427e9c58e2cf1d059cdd88a7c34984fdd22a4cf18411e1b0224d444a5bd39d5fc97fc0b3648600f19d6ab80aa6a7c083a17]\n[sha = SHA-512]\n\n# tcId = 392\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201ffde03ff820a836e39d3a8435219297da1db193d79e359663eb56654a7ee6f7eb996c8ef12f62344ad211b71057928f96ae75b58e23026476cfc40ed0ef7208a23\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04014f71d2ca5bd2051336854657f09a1fab14c7f2f7865d71bd3fa354bf27b69dc8738972140553b525658b6fd203cc05ca0822e0904bad21b632e0de74a2ad3f0e72004525f90519f9497425460b31cbb69ab3701a9ea68aaab72c6d65d364d0f0ed4d0524280f113bd69ef1ba9825202b10287a088c4bf30debecb720ac0739ec67434d]\n[key.wx = 014f71d2ca5bd2051336854657f09a1fab14c7f2f7865d71bd3fa354bf27b69dc8738972140553b525658b6fd203cc05ca0822e0904bad21b632e0de74a2ad3f0e72]\n[key.wy = 4525f90519f9497425460b31cbb69ab3701a9ea68aaab72c6d65d364d0f0ed4d0524280f113bd69ef1ba9825202b10287a088c4bf30debecb720ac0739ec67434d]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004014f71d2ca5bd2051336854657f09a1fab14c7f2f7865d71bd3fa354bf27b69dc8738972140553b525658b6fd203cc05ca0822e0904bad21b632e0de74a2ad3f0e72004525f90519f9497425460b31cbb69ab3701a9ea68aaab72c6d65d364d0f0ed4d0524280f113bd69ef1ba9825202b10287a088c4bf30debecb720ac0739ec67434d]\n[sha = SHA-512]\n\n# tcId = 393\n# edge case for u1\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242013375abb99e0cd3801e7c12993cfe720c83de278938a9e22bb6ea40a7c599ad05a5d3c8e5e5d7b3e16a99e528ef0ce91be0953cb1a9adf757f257554ca47ab053dc\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401d2ecad921dd100a8dc1a7b824b0ac6c9b654ab179833c2881ce237f1b8497ade851302cf50ea5ea169c2a50c0c09cb6ea539a7290a0f3437044b7a2e9ca8d40500003fd5651535dcba1f331981c216a1c7d9842f65c5f38ca43dd71c41e19efcac384617656fd0afdd83c50c5e524e9b672b7aa8a66b289afa688e45ca6edb3477a8b0]\n[key.wx = 01d2ecad921dd100a8dc1a7b824b0ac6c9b654ab179833c2881ce237f1b8497ade851302cf50ea5ea169c2a50c0c09cb6ea539a7290a0f3437044b7a2e9ca8d40500]\n[key.wy = 3fd5651535dcba1f331981c216a1c7d9842f65c5f38ca43dd71c41e19efcac384617656fd0afdd83c50c5e524e9b672b7aa8a66b289afa688e45ca6edb3477a8b0]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401d2ecad921dd100a8dc1a7b824b0ac6c9b654ab179833c2881ce237f1b8497ade851302cf50ea5ea169c2a50c0c09cb6ea539a7290a0f3437044b7a2e9ca8d40500003fd5651535dcba1f331981c216a1c7d9842f65c5f38ca43dd71c41e19efcac384617656fd0afdd83c50c5e524e9b672b7aa8a66b289afa688e45ca6edb3477a8b0]\n[sha = SHA-512]\n\n# tcId = 394\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc02415555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555554\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040165d67972a48fddc2f41c03f79ab5e0d42fd0992c013ead135c3394049645e26ad7c7be96510df59ba677dc94f1146e8e8e8fbe56debcb66920639581956b92b4d1008aeb66ee0be18abaa909a973c70b5749d688f8e2cd2e6e1613af93d0033492d26a6e82cfb80ac6925ac6bc79b984f73e3ebbff2f223a38676891c1ecd784a8a789]\n[key.wx = 0165d67972a48fddc2f41c03f79ab5e0d42fd0992c013ead135c3394049645e26ad7c7be96510df59ba677dc94f1146e8e8e8fbe56debcb66920639581956b92b4d1]\n[key.wy = 008aeb66ee0be18abaa909a973c70b5749d688f8e2cd2e6e1613af93d0033492d26a6e82cfb80ac6925ac6bc79b984f73e3ebbff2f223a38676891c1ecd784a8a789]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040165d67972a48fddc2f41c03f79ab5e0d42fd0992c013ead135c3394049645e26ad7c7be96510df59ba677dc94f1146e8e8e8fbe56debcb66920639581956b92b4d1008aeb66ee0be18abaa909a973c70b5749d688f8e2cd2e6e1613af93d0033492d26a6e82cfb80ac6925ac6bc79b984f73e3ebbff2f223a38676891c1ecd784a8a789]\n[sha = SHA-512]\n\n# tcId = 395\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242009f57708fa97eba94c6d4782cdd4e33bb95c1353bde095232e3e2bab277bb5d2b48f55a53ffe928d034c29970a9e5f384a003907d3d9b82a86817cc61fb17f4c59e\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04018cd11252f0a434f446d3af18518c6b84cb0b7bf33758b4d83b97c2a56e0037b54d57d2b0b842e9c17d70504e01896389c066db8f2bfec025259a51dff51466830801cca54365156c59e2c73c17664f09fcdcfd5b910f9ab48d0899b6a7064de8b80fc7a992e47ee7f23ec82fd80179a19f4cf89b4c02b7218f435298da5d322a982c1e]\n[key.wx = 018cd11252f0a434f446d3af18518c6b84cb0b7bf33758b4d83b97c2a56e0037b54d57d2b0b842e9c17d70504e01896389c066db8f2bfec025259a51dff514668308]\n[key.wy = 01cca54365156c59e2c73c17664f09fcdcfd5b910f9ab48d0899b6a7064de8b80fc7a992e47ee7f23ec82fd80179a19f4cf89b4c02b7218f435298da5d322a982c1e]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004018cd11252f0a434f446d3af18518c6b84cb0b7bf33758b4d83b97c2a56e0037b54d57d2b0b842e9c17d70504e01896389c066db8f2bfec025259a51dff51466830801cca54365156c59e2c73c17664f09fcdcfd5b910f9ab48d0899b6a7064de8b80fc7a992e47ee7f23ec82fd80179a19f4cf89b4c02b7218f435298da5d322a982c1e]\n[sha = SHA-512]\n\n# tcId = 396\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024168d98fa90736eff3e90f8fcfe50838b6fa0bf2cde77bc51e3f41019c8006f4e9cbaeadce7dbb44462da6425be9cfdaecb234c41749ce695be1b5ead2e6b1205f35\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401d6329a8afdea27cf1028a44d19c3c72927590d64628775f324514c81de301aa9be9c775c53a6349d1cbd5ecfc7bd39b373e613a10c1439441b141430fdadac168c00071342d63dba901b93bdc444a1fe2ec6a15108bdf49eb1dfd218373884520d84bce03c5012f5837051cb8abf6a0be78dfdfeeb3a5872dff75b3f874faa6d2243bf]\n[key.wx = 01d6329a8afdea27cf1028a44d19c3c72927590d64628775f324514c81de301aa9be9c775c53a6349d1cbd5ecfc7bd39b373e613a10c1439441b141430fdadac168c]\n[key.wy = 071342d63dba901b93bdc444a1fe2ec6a15108bdf49eb1dfd218373884520d84bce03c5012f5837051cb8abf6a0be78dfdfeeb3a5872dff75b3f874faa6d2243bf]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401d6329a8afdea27cf1028a44d19c3c72927590d64628775f324514c81de301aa9be9c775c53a6349d1cbd5ecfc7bd39b373e613a10c1439441b141430fdadac168c00071342d63dba901b93bdc444a1fe2ec6a15108bdf49eb1dfd218373884520d84bce03c5012f5837051cb8abf6a0be78dfdfeeb3a5872dff75b3f874faa6d2243bf]\n[sha = SHA-512", + "]\n\n# tcId = 397\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024200e97ae66bcd4cae36fffffffffffffffffffffffffffffffffffffffffffffffffd68bc9726f02dbf8598a98b3e5077eff6f2491eb678ed040fb338c084a9ea8a4c\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401c963b64cdc3ecb1c35cda5ced9419ac146b060adb04c638cf6b66658013cb25e915a6ad0055668342881ed27f438b50ae4bb86ae3c7c02b727a130c77bad69800800481bfffaead856b4137fd4268ecd74a6c2d4bd6cd13998ce7f0e828b220135d8df23253e681dc90673e0537e7590769a2a441aaaaa3a9901c4fbe44fa9513951ef]\n[key.wx = 01c963b64cdc3ecb1c35cda5ced9419ac146b060adb04c638cf6b66658013cb25e915a6ad0055668342881ed27f438b50ae4bb86ae3c7c02b727a130c77bad698008]\n[key.wy = 481bfffaead856b4137fd4268ecd74a6c2d4bd6cd13998ce7f0e828b220135d8df23253e681dc90673e0537e7590769a2a441aaaaa3a9901c4fbe44fa9513951ef]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401c963b64cdc3ecb1c35cda5ced9419ac146b060adb04c638cf6b66658013cb25e915a6ad0055668342881ed27f438b50ae4bb86ae3c7c02b727a130c77bad69800800481bfffaead856b4137fd4268ecd74a6c2d4bd6cd13998ce7f0e828b220135d8df23253e681dc90673e0537e7590769a2a441aaaaa3a9901c4fbe44fa9513951ef]\n[sha = SHA-512]\n\n# tcId = 398\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201ae66bcd4cae36ffffffffffffffffffffffffffffffffffffffffffffffffffffb3954212f8bea578d93e685e5dba329811b2542bb398233e2944bceb19263325d\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04005dfbc867d53c57b2945502b8e56d96ca2d4d485aa33452200a2f4ba16042357976afeecf3e63b2fdcd5cdd76076c1a73e496caf9d6de3e8831d955d138e05884ae01e04aa0b5360a0d3badd0120fbb8cc42a38bf1c61755d00858e40e4b10da4ea2575830dc92e312c20af2b8b167d7a58d178661d48cd932fe47a4bc7145e620ae22c]\n[key.wx = 5dfbc867d53c57b2945502b8e56d96ca2d4d485aa33452200a2f4ba16042357976afeecf3e63b2fdcd5cdd76076c1a73e496caf9d6de3e8831d955d138e05884ae]\n[key.wy = 01e04aa0b5360a0d3badd0120fbb8cc42a38bf1c61755d00858e40e4b10da4ea2575830dc92e312c20af2b8b167d7a58d178661d48cd932fe47a4bc7145e620ae22c]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005dfbc867d53c57b2945502b8e56d96ca2d4d485aa33452200a2f4ba16042357976afeecf3e63b2fdcd5cdd76076c1a73e496caf9d6de3e8831d955d138e05884ae01e04aa0b5360a0d3badd0120fbb8cc42a38bf1c61755d00858e40e4b10da4ea2575830dc92e312c20af2b8b167d7a58d178661d48cd932fe47a4bc7145e620ae22c]\n[sha = SHA-512]\n\n# tcId = 399\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242015ccd79a995c6dffffffffffffffffffffffffffffffffffffffffffffffffffffc2121badb58a518afa8010a82c03cad31fa94bbbde96820166d27e644938e00b1\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040078be6c43e366cf63ddc4235e8b969386e95012fbca5cebf1b0a6fe3c03c1257df7cf47b002eb6c4497f310bff6131b5ccb54fd0e8ee7fcf6b49d487e1b54508f68009b61a547104c8516e0dc35d3d17659ca098d023b0593908fe979c29e62373738a3c30094ba47105a49edbc6e1d37cce317b49d2701470eeb53d9b24dce9d809166]\n[key.wx = 78be6c43e366cf63ddc4235e8b969386e95012fbca5cebf1b0a6fe3c03c1257df7cf47b002eb6c4497f310bff6131b5ccb54fd0e8ee7fcf6b49d487e1b54508f68]\n[key.wy = 009b61a547104c8516e0dc35d3d17659ca098d023b0593908fe979c29e62373738a3c30094ba47105a49edbc6e1d37cce317b49d2701470eeb53d9b24dce9d809166]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040078be6c43e366cf63ddc4235e8b969386e95012fbca5cebf1b0a6fe3c03c1257df7cf47b002eb6c4497f310bff6131b5ccb54fd0e8ee7fcf6b49d487e1b54508f68009b61a547104c8516e0dc35d3d17659ca098d023b0593908fe979c29e62373738a3c30094ba47105a49edbc6e1d37cce317b49d2701470eeb53d9b24dce9d809166]\n[sha = SHA-512]\n\n# tcId = 400\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201cd4cae36fffffffffffffffffffffffffffffffffffffffffffffffffffffffffae18dcc11dff7526233d923a0b202cb29e713f22de8bb6ab0a12821c5abbe3f23\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040093f68961005f3040dc1a8ff1416c917bdcc77f1dfa85506c3bb62dac47f7be9529b4cbe57dd2c19e860bd2a0db71d47ef1eca8a20bfc3e0bc5e05c8303001c1960002b9a3d45f2f5120fee06445f0d34e6138e3ac5b16d2a22f0460cea258c368ca9e478eb7b8253e7c6f2f7250fdc7dcd7243761f8d56f2350ac51e47ee063f41da31]\n[key.wx = 0093f68961005f3040dc1a8ff1416c917bdcc77f1dfa85506c3bb62dac47f7be9529b4cbe57dd2c19e860bd2a0db71d47ef1eca8a20bfc3e0bc5e05c8303001c1960]\n[key.wy = 2b9a3d45f2f5120fee06445f0d34e6138e3ac5b16d2a22f0460cea258c368ca9e478eb7b8253e7c6f2f7250fdc7dcd7243761f8d56f2350ac51e47ee063f41da31]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040093f68961005f3040dc1a8ff1416c917bdcc77f1dfa85506c3bb62dac47f7be9529b4cbe57dd2c19e860bd2a0db71d47ef1eca8a20bfc3e0bc5e05c8303001c1960002b9a3d45f2f5120fee06445f0d34e6138e3ac5b16d2a22f0460cea258c368ca9e478eb7b8253e7c6f2f7250fdc7dcd7243761f8d56f2350ac51e47ee063f41da31]\n[sha = SHA-512]\n\n# tcId = 401\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308187024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024122e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8ba2e8b9c4c3f73cc816143fac3412b62de4c63db08f8c57e4c58c31f1b457ca5e57e20a\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04002d2d7d40bf17c4e8b18757e451ddded95e6b1007cd144809d21af31353b03038372c4af204d4414b71060b48b3a8439c632809bd33c4736263044405a1ad766e3600bb0c5a8848f93fa3e85376b012bf064e303746529a673b852bb5a969c24c0156a8dd26242d0aad4bae43e23631b01fb9d050f9744b59f3b52b1c572217a1d70588]\n[key.wx = 2d2d7d40bf17c4e8b18757e451ddded95e6b1007cd144809d21af31353b03038372c4af204d4414b71060b48b3a8439c632809bd33c4736263044405a1ad766e36]\n[key.wy = 00bb0c5a8848f93fa3e85376b012bf064e303746529a673b852bb5a969c24c0156a8dd26242d0aad4bae43e23631b01fb9d050f9744b59f3b52b1c572217a1d70588]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004002d2d7d40bf17c4e8b18757e451ddded95e6b1007cd144809d21af31353b03038372c4af204d4414b71060b48b3a8439c632809bd33c4736263044405a1ad766e3600bb0c5a8848f93fa3e85376b012bf064e303746529a673b852bb5a969c24c0156a8dd26242d0aad4bae43e23631b01fb9d050f9744b59f3b52b1c572217a1d70588]\n[sha = SHA-512]\n\n# tcId = 402\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242010590b21642c8590b21642c8590b21642c8590b21642c8590b21642c8590b2164298eb57e5aff9343597a542d3132f9e734fdc305125e0ec139c5f780ee8e8cb9c2\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04018ac11dfe62d1f2a8202732c79b423d29f43bec4db6080a220796a10f2685f92c71c7f72d9da0a8acb22680cca018eba2e8ba3bfde1db9a4ef3b97da16474364e96005aad3b286707bd3ad07a060cabca49c53de4f56c05a0a8de40fd969d7d4f995f7c6701fe5c5321f85318b98be66251fa490088fd727da2454e00b3b94dc6e1241b]\n[key.wx = 018ac11dfe62d1f2a8202732c79b423d29f43bec4db6080a220796a10f2685f92c71c7f72d9da0a8acb22680cca018eba2e8ba3bfde1db9a4ef3b97da16474364e96]\n[key.wy = 5aad3b286707bd3ad07a060cabca49c53de4f56c05a0a8de40fd969d7d4f995f7c6701fe5c5321f85318b98be66251fa490088fd727da2454e00b3b94dc6e1241b]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004018ac11dfe62d1f2a8202732c79b423d29f43bec4db6080a220796a10f2685f92c71c7f72d9da0a8acb22680cca018eba2e8ba3bfde1db9a4ef3b97da16474364e96005aad3b286707bd3ad07a060cabca49c53de4f56c05a0a8de40fd969d7d4f995f7c6701fe5c5321f85318b98be66251fa490088fd727da2454e00b3b94dc6e1241b]\n[sha = SHA-512]\n\n# tcId = 403\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201a4924924924924924924924924924924924924924924924924924924924924924445e10670ed0437c9db4125ac4175fbd70e9bd1799a85f44ca0a8e61a3354e808\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040051b2c3e0494564ed48ed3479b596ea4078240550a3c28da33d71d259e8e623e37ab43f396c49363f31c8de8a4644d37e94ed80e0dd4f92c3df2106e2795c2798b800a530d5e961f0696bbeb962aca8e71f65956ae04cdc22a4ac65146943e99a4a2fdb477df75aa069c8dd37a5daaea3848079a6a7bc03e0faa3d65d42f8053db2078b]\n[key.wx = 51b2c3e0494564ed48ed3479b596ea4078240550a3c28da33d71d259e8e623e37ab43f396c49363f31c8de8a4644d37e94ed80e0dd4f92c3df2106e2795c2798b8]\n[key.wy = 00a530d5e961f0696bbeb962aca8e71f65956ae04cdc22a4ac65146943e99a4a2fdb477df75aa069c8dd37a5daaea3848079a6a7bc03e0faa3d65d42f8053db2078b]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040051b2c3e0494564ed48ed3479b596ea4078240550a3c28da33d71d259e8e623e37ab43f396c49363f31c8de8a4644d37e94ed80e0dd4f92c3df2106e2795c2798b800a530d5e961f0696bbeb962aca8e71f65956ae04cdc22a4ac65146943e99a4a2fdb477df75aa069c8dd37a5daaea3848079a6a7bc03e0faa3d65d42f8053db2078b]\n[sha = SHA-512]\n\n# tcId = 404\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201d5555555555555555555555555555555555555555555555555555555555555554fa6dbdcd91484ebc0d521569e4c5efb25910b1f0ddef19d0410c50c73e68db95f\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401ba31a6f9c2d227da57de00759e2e844d607bc9bd92bcdf282006884dc347c9284f0dc0623af1e9db22117364a7a80a5b067efa19b204dac8faf2230d80b704addc00d88b761cd3a4b0947bfc17e204b4d751f76880a82c9b7c6fd93ded55883c995002d8b8bfff1e021189c08d829d16b088f4fb39ad9456eafbc77c20353bc0f3c038]\n[key.wx = 01ba31a6f9c2d227da57de00759e2e844d607bc9bd92bcdf282006884dc347c9284f0dc0623af1e9db22117364a7a80a5b067efa19b204dac8faf2230d80b704addc]\n[key.wy = 00d88b761cd3a4b0947bfc17e204b4d751f76880a82c9b7c6fd93ded55883c995002d8b8bfff1e021189c08d829d16b088f4fb39ad9456eafbc77c20353bc0f3c038]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401ba31a6f9c2d227da57de00759e2e844d607bc9bd92bcdf282006884dc347c9284f0dc0623af1e9db22117364a7a80a5b067efa19b204dac8faf2230d80b704addc00d88b761cd3a4b0947bfc17e204b4d751f76880a82c9b7c6fd93ded55883c995002d8b8bfff1e021189c08d829d16b088f4fb39ad9456eafbc77c20353bc0f3c038]\n[sha = SHA-512]\n\n# tcId = 405\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4fc31322e69da41162a76abf3a1b4507ae66074633446f259661a61c93be30eb5\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040137bbb48ef281133849ed723f5662a19fff9cc7389a0170d311bd34f4dbdc656246db695ea0712d8aceff9d1d0ef7921ec2e3f8b533e4ca122f9f7f4460738893340163e4500d998095f60fa3fed4149d2d9b5b018e03eb5344efe8ffcc1c7d276e7401a4df639c4ab108820062495471be7b29398aadbae440a9bdcd55cf0bb5d96f79]\n[key.wx = 0137bbb48ef281133849ed723f5662a19fff9cc7389a0170d311bd34f4dbdc656246db695ea0712d8aceff9d1d0ef7921ec2e3f8b533e4ca122f9f7f446073889334]\n[key.wy = 0163e4500d998095f60fa3fed4149d2d9b5b018e03eb5344efe8ffcc1c7d276e7401a4df639c4ab108820062495471be7b29398aadbae440a9bdcd55cf0bb5d96f79]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040137bbb48ef281133849ed723f5662a19fff9cc7389a0170d311bd34f4dbdc656246db695ea0712d8aceff9d1d0ef7921ec2e3f8b533e4ca122f9f7f4460738893340163e4500d998095f60fa3fed4149d2d9b5b018e03eb5344efe8ffcc1c7d276e7401a4df639c4ab108820062495471be7b29398aadbae440a9bdcd55cf0bb5d96f79]\n[sha = SHA-512]\n\n# tcId = 406\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0242017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138640b\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400726dda8b7b6ed25f97f1fc6c3ccf554d60fc71e4fab2a578286d32612e7f3e669faed0b97619aef2d5aff9c8ffd987feddc0d6c38b7eec028191400874803f498b00c0b8870c612e06c13c57ed6f7ef3d53b5e5fa2db62707b034b5ec13fb47018e31da7ecc991d575943468d701e118eca33122cf6d394b8a6ec0f45bc09701603a26]\n[key.wx = 726dda8b7b6ed25f97f1fc6c3ccf554d60fc71e4fab2a578286d32612e7f3e669faed0b97619aef2d5aff9c8ffd987feddc0d6c38b7eec028191400874803f498b]\n[key.wy = 00c0b8870c612e06c13c57ed6f7ef3d53b5e5fa2db62707b034b5ec13fb47018e31da7ecc991d575943468d701e118eca33122cf6d394b8a6ec0f45bc09701603a26]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400726dda8b7b6ed25f97f1fc6c3ccf554d60fc71e4fab2a578286d32612e7f3e669faed0b97619aef2d5aff9c8ffd987feddc0d6c38b7eec028191400874803f498b00c0b8870c612e06c13c57ed6f7ef3d53b5e5fa2db62707b034b5ec13fb47018e31da7ecc991d575943468d701e118eca33122cf6d394b8a6ec0f45bc09701603a26]\n[sha = SHA-512]\n\n# tcId = 407\n# edge case for u2\nmsg = 313233343030\nresult = valid\nsig = 308188024200fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc024201346cc7d4839b77f9f487c7e7f2841c5b7d05f966f3bde28f1fa080ce40037a74e3001a2b00bd39ee4c93072e9963724941383cf0812c02d1c838ad4502a12c619f\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc27970083f130792d6c45c8f2a67471e51246e2b8781465b8291cbda66d22719cd536bf801e0076030919d5701732ce7678bf472846ed0777937ed77caad74d05664614a2]\n[key.wx = 016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797]\n[key.wy = 0083f130792d6c45c8f2a67471e51246e2b8781465b8291cbda66d22719cd536bf801e0076030919d5701732ce7678bf472846ed0777937ed77caad74d05664614a2]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc27970083f130792d6c45c8f2a67471e51246e2b8781465b8291cbda66d22719cd536bf801e0076030919d5701732ce7678bf472846ed0777937ed77caad74d05664614a2]\n[sha = SHA-512]\n\n# tcId = 408\n# point duplication during verification\nmsg = 313233343030\nresult = valid\nsig = 30818802420090c8d0d718cb9d8d81094e6d068fb13c16b4df8c77bac676dddfe3e68855bed06b9ba8d0f8a80edce03a9fac7da561e24b1cd22d459239a146695a671f81f73aaf024201150b0fe9f0dff27fa180cc9442c3bfc9e395232898607b110a51bcb1086cb9726e251a07c9557808df32460715950a3dc446ae4229b9ed59fe241b389aee3a6963\nflags = PointDuplication\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797017c0ecf86d293ba370d598b8e1aedb91d4787eb9a47d6e3425992dd8e632ac9407fe1ff89fcf6e62a8fe8cd31898740b8d7b912f8886c8128835528b2fa99b9eb5d]\n[key.wx = 016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797]\n[key.wy = 017c0ecf86d293ba370d598b8e1aedb91d4787eb9a47d6e3425992dd8e632ac9407fe1ff89fcf6e62a8fe8cd31898740b8d7b912f8886c8128835528b2fa99b9eb5d]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004016fce9f375bbd2968adaaf3575595129ef3e721c3b7c83d5a4a79f4b5dfbbdb1f66da7243e5120c5dbd7be1ca073e04b4cc58ca8ce2f34ff6a3d02a929bf2fc2797017c0ecf86d293ba370d598b8e1aedb91d4787eb9a47d6e3425992dd8e632ac9407fe1ff89fcf6e62a8fe8cd31898740b8d7b912f8886c8128835528b2fa99b9eb5d]\n[sha = SHA-512]\n\n# tcId = 409\n# duplication bug\nmsg = 313233343030\nresult = invalid\nsig = 30818802420090c8d0d718cb9d8d81094e6d068fb13c16b4df8c77bac676dddfe3e68855bed06b9ba8d0f8a80edce03a9fac7da561e24b1cd22d459239a146695a671f81f73aaf024201150b0fe9f0dff27fa180cc9442c3", + "bfc9e395232898607b110a51bcb1086cb9726e251a07c9557808df32460715950a3dc446ae4229b9ed59fe241b389aee3a6963\nflags = PointDuplication\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040110fb89aff135edb801a1cb5bc49525b81dc74da45090d228122871814f489fdcb02ebee46b703e6b4e6af56c5024422b31fd4252c44d0bfd29d945de782d98543f01ec425b4c4928e12b619227f1da6d0a9675070d9c5b49ca523050acb718e62643b0e5801543b76dc11f8d694ba09436d8391b477ad2c143ec50c2384c4f688512dc]\n[key.wx = 0110fb89aff135edb801a1cb5bc49525b81dc74da45090d228122871814f489fdcb02ebee46b703e6b4e6af56c5024422b31fd4252c44d0bfd29d945de782d98543f]\n[key.wy = 01ec425b4c4928e12b619227f1da6d0a9675070d9c5b49ca523050acb718e62643b0e5801543b76dc11f8d694ba09436d8391b477ad2c143ec50c2384c4f688512dc]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040110fb89aff135edb801a1cb5bc49525b81dc74da45090d228122871814f489fdcb02ebee46b703e6b4e6af56c5024422b31fd4252c44d0bfd29d945de782d98543f01ec425b4c4928e12b619227f1da6d0a9675070d9c5b49ca523050acb718e62643b0e5801543b76dc11f8d694ba09436d8391b477ad2c143ec50c2384c4f688512dc]\n[sha = SHA-512]\n\n# tcId = 410\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3047020101024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401c693a3fccbc9f625284239c2725f2a5c90b29b7ce3d07730f7de6031c9e74446d217888ae023aae23df6a4aa153f58c79597d57f42ce5c1354e5dc43a5eb311e13015f99658443b2e39c3edcbcda70707fc5a4d39545eabe354816d09284a6265e47ebf0a47355828e818a767f8452a6d18451e0e3817a896ff404cb1611bfc4c4b4a3]\n[key.wx = 01c693a3fccbc9f625284239c2725f2a5c90b29b7ce3d07730f7de6031c9e74446d217888ae023aae23df6a4aa153f58c79597d57f42ce5c1354e5dc43a5eb311e13]\n[key.wy = 015f99658443b2e39c3edcbcda70707fc5a4d39545eabe354816d09284a6265e47ebf0a47355828e818a767f8452a6d18451e0e3817a896ff404cb1611bfc4c4b4a3]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401c693a3fccbc9f625284239c2725f2a5c90b29b7ce3d07730f7de6031c9e74446d217888ae023aae23df6a4aa153f58c79597d57f42ce5c1354e5dc43a5eb311e13015f99658443b2e39c3edcbcda70707fc5a4d39545eabe354816d09284a6265e47ebf0a47355828e818a767f8452a6d18451e0e3817a896ff404cb1611bfc4c4b4a3]\n[sha = SHA-512]\n\n# tcId = 411\n# point with x-coordinate 0\nmsg = 313233343030\nresult = invalid\nsig = 3081870242020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81401\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04017d7bf723678df574ce4366741e1d3787f834af9997b41c8260a074cb1f325d2bae9f8565dc6b51b6cb02dceeb5a1b774ee8dd7057c99e2d94c3c71299a9ce0f1b00162c65632fff88bdbb17ce2525ccac8df37c501ab0e6626e273fb6cf99000424344c0ac539c9fd6c4f3d28876b257c010d347a45bb010cc058443843a758328d491]\n[key.wx = 017d7bf723678df574ce4366741e1d3787f834af9997b41c8260a074cb1f325d2bae9f8565dc6b51b6cb02dceeb5a1b774ee8dd7057c99e2d94c3c71299a9ce0f1b0]\n[key.wy = 0162c65632fff88bdbb17ce2525ccac8df37c501ab0e6626e273fb6cf99000424344c0ac539c9fd6c4f3d28876b257c010d347a45bb010cc058443843a758328d491]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004017d7bf723678df574ce4366741e1d3787f834af9997b41c8260a074cb1f325d2bae9f8565dc6b51b6cb02dceeb5a1b774ee8dd7057c99e2d94c3c71299a9ce0f1b00162c65632fff88bdbb17ce2525ccac8df37c501ab0e6626e273fb6cf99000424344c0ac539c9fd6c4f3d28876b257c010d347a45bb010cc058443843a758328d491]\n[sha = SHA-512]\n\n# tcId = 412\n# comparison with point at infinity \nmsg = 313233343030\nresult = invalid\nsig = 308187024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81401\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401e06db423a902e239b97340ab052534ead37e79412c675bf0eb823999e6b731040bff2b0e4fa64edf3962a328921ea5ae4e8f4079eab439e12f92335dfc4863c07f007ee9f0ecb409cb133c0cd08b85e840b076f3d615e1ef1393b5222338b227d768003da5f3ba1f72f6654ca54ac11c2ba91a6cb5883d6d1a82304ad2b79de09215f3]\n[key.wx = 01e06db423a902e239b97340ab052534ead37e79412c675bf0eb823999e6b731040bff2b0e4fa64edf3962a328921ea5ae4e8f4079eab439e12f92335dfc4863c07f]\n[key.wy = 7ee9f0ecb409cb133c0cd08b85e840b076f3d615e1ef1393b5222338b227d768003da5f3ba1f72f6654ca54ac11c2ba91a6cb5883d6d1a82304ad2b79de09215f3]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401e06db423a902e239b97340ab052534ead37e79412c675bf0eb823999e6b731040bff2b0e4fa64edf3962a328921ea5ae4e8f4079eab439e12f92335dfc4863c07f007ee9f0ecb409cb133c0cd08b85e840b076f3d615e1ef1393b5222338b227d768003da5f3ba1f72f6654ca54ac11c2ba91a6cb5883d6d1a82304ad2b79de09215f3]\n[sha = SHA-512]\n\n# tcId = 413\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 3081870241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04015053744d53811dbed8880f38d3a34578a7f1c172ec65bd8ad8183ba0ae10093416107f3c942742bde60719949b2c4f026f43582125c99ed48cbc7c5a051a5a744800b36d4c91a2b0367c566b2c12981ce0fdbc3beb983717403f69bf4264fc6182478af0b236ff120bcfca116924c552abef6663b6023be1986b70206d9bb89b5ed298]\n[key.wx = 015053744d53811dbed8880f38d3a34578a7f1c172ec65bd8ad8183ba0ae10093416107f3c942742bde60719949b2c4f026f43582125c99ed48cbc7c5a051a5a7448]\n[key.wy = 00b36d4c91a2b0367c566b2c12981ce0fdbc3beb983717403f69bf4264fc6182478af0b236ff120bcfca116924c552abef6663b6023be1986b70206d9bb89b5ed298]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004015053744d53811dbed8880f38d3a34578a7f1c172ec65bd8ad8183ba0ae10093416107f3c942742bde60719949b2c4f026f43582125c99ed48cbc7c5a051a5a744800b36d4c91a2b0367c566b2c12981ce0fdbc3beb983717403f69bf4264fc6182478af0b236ff120bcfca116924c552abef6663b6023be1986b70206d9bb89b5ed298]\n[sha = SHA-512]\n\n# tcId = 414\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081860241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401fb2e26596cc80473917dd46b4a1d14bd9a1ca9769dd12bfac1bff17cdc282e74c73a801ec1be83edfe4bfe9813ec943ac151678f0a9a0bf27d9ef308177eb0400f019e03a5da3da67e6b8d068dbdacf091b9d5efadaf63f4a7e9c6b6ed0a1c9a5d3cbc3e0244d481066018fba7674a2b59139a5656780563bb4618014f176752e177e0]\n[key.wx = 01fb2e26596cc80473917dd46b4a1d14bd9a1ca9769dd12bfac1bff17cdc282e74c73a801ec1be83edfe4bfe9813ec943ac151678f0a9a0bf27d9ef308177eb0400f]\n[key.wy = 019e03a5da3da67e6b8d068dbdacf091b9d5efadaf63f4a7e9c6b6ed0a1c9a5d3cbc3e0244d481066018fba7674a2b59139a5656780563bb4618014f176752e177e0]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401fb2e26596cc80473917dd46b4a1d14bd9a1ca9769dd12bfac1bff17cdc282e74c73a801ec1be83edfe4bfe9813ec943ac151678f0a9a0bf27d9ef308177eb0400f019e03a5da3da67e6b8d068dbdacf091b9d5efadaf63f4a7e9c6b6ed0a1c9a5d3cbc3e0244d481066018fba7674a2b59139a5656780563bb4618014f176752e177e0]\n[sha = SHA-512]\n\n# tcId = 415\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081870241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d0242019999999999999999999999999999999999999999999999999999999999999999950e053936328c7855ffd6676d926e1e402fc4a1606e169fbefc595f4ba7605007\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key", + ".uncompressed = 04008422cea9dcf8ae01f7a157888f018a40a66461d3566ec4a4dfc89ecb3c2404be734d329137d630387b012d033221857d5bfb290fa8027640b4063072a3e5b14c860025a219e724b81814901a677a8bee9b716b33b16a5b65f2272956a46b5e8683dc896984309ac79449657a1895c9f62bde99c7f5e24ed2defbc9f8dde35ebd0bddc1]\n[key.wx = 008422cea9dcf8ae01f7a157888f018a40a66461d3566ec4a4dfc89ecb3c2404be734d329137d630387b012d033221857d5bfb290fa8027640b4063072a3e5b14c86]\n[key.wy = 25a219e724b81814901a677a8bee9b716b33b16a5b65f2272956a46b5e8683dc896984309ac79449657a1895c9f62bde99c7f5e24ed2defbc9f8dde35ebd0bddc1]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004008422cea9dcf8ae01f7a157888f018a40a66461d3566ec4a4dfc89ecb3c2404be734d329137d630387b012d033221857d5bfb290fa8027640b4063072a3e5b14c860025a219e724b81814901a677a8bee9b716b33b16a5b65f2272956a46b5e8683dc896984309ac79449657a1895c9f62bde99c7f5e24ed2defbc9f8dde35ebd0bddc1]\n[sha = SHA-512]\n\n# tcId = 416\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081860241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81402\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401bc19cf4b94bcd34114ce83c5f1a7e048e2fc4fd457d57e39b3da29f4766acbaef1c10cb13c796a6fffb56d6a392e47b6c74522df7fa02754c33d95b1a9a3c92a1500f5744c2bed308cb4f41b512e632cd01d270ef1a0d3f47ea780e73c6a6c9ea6a996faef4d282896c64fa50f5b04e204c56b504bc122ffba7aea4574d7d7ab6303c0]\n[key.wx = 01bc19cf4b94bcd34114ce83c5f1a7e048e2fc4fd457d57e39b3da29f4766acbaef1c10cb13c796a6fffb56d6a392e47b6c74522df7fa02754c33d95b1a9a3c92a15]\n[key.wy = 00f5744c2bed308cb4f41b512e632cd01d270ef1a0d3f47ea780e73c6a6c9ea6a996faef4d282896c64fa50f5b04e204c56b504bc122ffba7aea4574d7d7ab6303c0]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401bc19cf4b94bcd34114ce83c5f1a7e048e2fc4fd457d57e39b3da29f4766acbaef1c10cb13c796a6fffb56d6a392e47b6c74522df7fa02754c33d95b1a9a3c92a1500f5744c2bed308cb4f41b512e632cd01d270ef1a0d3f47ea780e73c6a6c9ea6a996faef4d282896c64fa50f5b04e204c56b504bc122ffba7aea4574d7d7ab6303c0]\n[sha = SHA-512]\n\n# tcId = 417\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 3081870241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d024201b6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db68d82a2b033628ca12ffd36ed0d3bf206957c063c2bf183d7132f20aac7c797a51\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04017b0ebce08b09f21e30d15e0edd9fcdf24ab4831ec8a65a3d1e38f72b15f0115da6ed1885e42fcfae31c0914b71e9df2cd106adc039a82810a92924dd154dc05da300c614d1afc4f63de3803bb5490a34e1e2fab9eb78422b21d377fc0d7f991b938c22f4d7dd665f8dd21fadde43172a55f80d05cc4557b6663f9e7a3fe490d25c5531]\n[key.wx = 017b0ebce08b09f21e30d15e0edd9fcdf24ab4831ec8a65a3d1e38f72b15f0115da6ed1885e42fcfae31c0914b71e9df2cd106adc039a82810a92924dd154dc05da3]\n[key.wy = 00c614d1afc4f63de3803bb5490a34e1e2fab9eb78422b21d377fc0d7f991b938c22f4d7dd665f8dd21fadde43172a55f80d05cc4557b6663f9e7a3fe490d25c5531]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004017b0ebce08b09f21e30d15e0edd9fcdf24ab4831ec8a65a3d1e38f72b15f0115da6ed1885e42fcfae31c0914b71e9df2cd106adc039a82810a92924dd154dc05da300c614d1afc4f63de3803bb5490a34e1e2fab9eb78422b21d377fc0d7f991b938c22f4d7dd665f8dd21fadde43172a55f80d05cc4557b6663f9e7a3fe490d25c5531]\n[sha = SHA-512]\n\n# tcId = 418\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 3081860241433c219024277e7e682fcb288148c282747403279b1ccc06352c6e5505d769be97b3b204da6ef55507aa104a3a35c5af41cf2fa364d60fd967f43e3933ba6d783d02410eb10e5ab95f2f26a40700b1300fb8c3c8d5384ffbecf1fdb9e11e67cb7fd6a7f503e6e25ac09bb88b6c3983df764d4d72bc2920e233f0f7974a234a21b00bb447\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040004c3ec8d7d23ce74be8b9c7c27be869c23bafc6874ebc44f47e107422ab1e75ed09bebd7cb1ec4626e442bcf512a25c5ddde26eb08ba37506461830cf9241cbe9c0050a1bc08f4ba8da1d641ac3891823ab519facd4159768b1c0738f0e23450f374e4d6de55cceed95722be635c5dc0023a1498862f87bfe61d77e20e592cc20bb2ca]\n[key.wx = 04c3ec8d7d23ce74be8b9c7c27be869c23bafc6874ebc44f47e107422ab1e75ed09bebd7cb1ec4626e442bcf512a25c5ddde26eb08ba37506461830cf9241cbe9c]\n[key.wy = 50a1bc08f4ba8da1d641ac3891823ab519facd4159768b1c0738f0e23450f374e4d6de55cceed95722be635c5dc0023a1498862f87bfe61d77e20e592cc20bb2ca]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040004c3ec8d7d23ce74be8b9c7c27be869c23bafc6874ebc44f47e107422ab1e75ed09bebd7cb1ec4626e442bcf512a25c5ddde26eb08ba37506461830cf9241cbe9c0050a1bc08f4ba8da1d641ac3891823ab519facd4159768b1c0738f0e23450f374e4d6de55cceed95722be635c5dc0023a1498862f87bfe61d77e20e592cc20bb2ca]\n[sha = SHA-512]\n\n# tcId = 419\n# extreme value for k and edgecase s\nmsg = 313233343030\nresult = valid\nsig = 308188024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66024200aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa8c5d782813fba87792a9955c2fd033745693c9892d8896d3a3e7a925f85bd76ad\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400a7c8204f2864dcef089165c3914dcc2c0896075870ca0bc1ce37856f80f23815b0c8f2ec05145c421049e80ec1e7694f9f04174bbef21bc0972e559cf222de7e1a01ff1108c28f01b703820e1c0187912962ab23109618dfcb0c062ccee339002222a3f7dd8dd21675b0e20908fe5855ea876d6a9e02c5f5b793d38fdf79fb83603ea9]\n[key.wx = 00a7c8204f2864dcef089165c3914dcc2c0896075870ca0bc1ce37856f80f23815b0c8f2ec05145c421049e80ec1e7694f9f04174bbef21bc0972e559cf222de7e1a]\n[key.wy = 01ff1108c28f01b703820e1c0187912962ab23109618dfcb0c062ccee339002222a3f7dd8dd21675b0e20908fe5855ea876d6a9e02c5f5b793d38fdf79fb83603ea9]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400a7c8204f2864dcef089165c3914dcc2c0896075870ca0bc1ce37856f80f23815b0c8f2ec05145c421049e80ec1e7694f9f04174bbef21bc0972e559cf222de7e1a01ff1108c28f01b703820e1c0187912962ab23109618dfcb0c062ccee339002222a3f7dd8dd21675b0e20908fe5855ea876d6a9e02c5f5b793d38fdf79fb83603ea9]\n[sha = SHA-512]\n\n# tcId = 420\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308187024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd660241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401802fc79fc8e55bce50a581632b51d6eec04a3c74ac2bf4fae16ce6c7efef1701d69f9c00a91ad521d75ac7539d54bf464caeec871456103dc974354460898a19c600722fc1f528506618b1da9f8b2edbdbdaf7eec02e8fb9203d2b277735a1d867911b131f453f52ccc4ced05c3b1bc29e4d20f1e6d34979faa688ce8003f79d8e0c95]\n[key.wx = 01802fc79fc8e55bce50a581632b51d6eec04a3c74ac2bf4fae16ce6c7efef1701d69f9c00a91ad521d75ac7539d54bf464caeec871456103dc974354460898a19c6]\n[key.wy = 722fc1f528506618b1da9f8b2edbdbdaf7eec02e8fb9203d2b277735a1d867911b131f453f52ccc4ced05c3b1bc29e4d20f1e6d34979faa688ce8003f79d8e0c95]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401802fc79fc8e55bce50a581632b51d6eec04a3c74ac2bf4fae16ce6c7efef1701d69f9c00a91ad521d75ac7539d54bf464caeec871456103dc974354460898a19c600722fc1f528506618b1da9f8b2edbdbdaf7eec02e8fb9203d2b277735a1d867911b131f453f52ccc4ced05c3b1bc29e4d20f1e6d34979faa688ce8003f79d8e0c95]\n[sha = SHA-512]\n\n# tcId = 421\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308188024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd660242019999999999999999999999999999999999999999999999999999999999999999950e053936328c7855ffd6676d926e1e402fc4a1606e169fbefc595f4ba7605007\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401beb0b4c2e494226404fca4ad505ebfed13d184b1572683215b16173c29a4475aede47f2", + "66e0c9c4143137d3e0001f9f0148b689286a7c64e229458b824ed7658360130205169783ed9ada9f3a193027ae4e21829ad4a71d05d969605c04f3231dabab03beb2fab07dd8323d7132755734f4e6d1fb43fc8a63bfd244160c23efb6c1429]\n[key.wx = 01beb0b4c2e494226404fca4ad505ebfed13d184b1572683215b16173c29a4475aede47f266e0c9c4143137d3e0001f9f0148b689286a7c64e229458b824ed765836]\n[key.wy = 0130205169783ed9ada9f3a193027ae4e21829ad4a71d05d969605c04f3231dabab03beb2fab07dd8323d7132755734f4e6d1fb43fc8a63bfd244160c23efb6c1429]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401beb0b4c2e494226404fca4ad505ebfed13d184b1572683215b16173c29a4475aede47f266e0c9c4143137d3e0001f9f0148b689286a7c64e229458b824ed7658360130205169783ed9ada9f3a193027ae4e21829ad4a71d05d969605c04f3231dabab03beb2fab07dd8323d7132755734f4e6d1fb43fc8a63bfd244160c23efb6c1429]\n[sha = SHA-512]\n\n# tcId = 422\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308187024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66024166666666666666666666666666666666666666666666666666666666666666666543814e4d8ca31e157ff599db649b87900bf128581b85a7efbf1657d2e9d81402\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040121e59aaf26b8301f4fcc3e0a563c4104ae00b47c55b8945ce749116fdf6761d768bd50ed431e2b51e646fe4fe7dc2985b6aefa7f9441ea11840d2ace2f34293cb1000cf1e1a46d4d637216e28abd124cc641ae7a673445d573856bc2fec58d86e5ed63bc2a7f2049234e335a7bee95bb2724fb1480c97c38cd0d296cbcc113de3f135f]\n[key.wx = 0121e59aaf26b8301f4fcc3e0a563c4104ae00b47c55b8945ce749116fdf6761d768bd50ed431e2b51e646fe4fe7dc2985b6aefa7f9441ea11840d2ace2f34293cb1]\n[key.wy = 0cf1e1a46d4d637216e28abd124cc641ae7a673445d573856bc2fec58d86e5ed63bc2a7f2049234e335a7bee95bb2724fb1480c97c38cd0d296cbcc113de3f135f]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040121e59aaf26b8301f4fcc3e0a563c4104ae00b47c55b8945ce749116fdf6761d768bd50ed431e2b51e646fe4fe7dc2985b6aefa7f9441ea11840d2ace2f34293cb1000cf1e1a46d4d637216e28abd124cc641ae7a673445d573856bc2fec58d86e5ed63bc2a7f2049234e335a7bee95bb2724fb1480c97c38cd0d296cbcc113de3f135f]\n[sha = SHA-512]\n\n# tcId = 423\n# extreme value for k and s^-1\nmsg = 313233343030\nresult = valid\nsig = 308188024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66024201b6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db6db68d82a2b033628ca12ffd36ed0d3bf206957c063c2bf183d7132f20aac7c797a51\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04008e859e66d1237fdc928a4b954954fef565d203a0731d065d9df41a4fd3812b1cc2487053ea19ce839d200845952f80d80698771d83ccc1fc7f236dbee4c76b2bb4005a04b24c88cd40233fb43c59ea5cf2cb9510d16b1168bc126db64aaf9ab07a7453208fde079095966272bf03bc3312c9b9bab8c795ae375e8a0e8dd81c924e7c27]\n[key.wx = 008e859e66d1237fdc928a4b954954fef565d203a0731d065d9df41a4fd3812b1cc2487053ea19ce839d200845952f80d80698771d83ccc1fc7f236dbee4c76b2bb4]\n[key.wy = 5a04b24c88cd40233fb43c59ea5cf2cb9510d16b1168bc126db64aaf9ab07a7453208fde079095966272bf03bc3312c9b9bab8c795ae375e8a0e8dd81c924e7c27]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004008e859e66d1237fdc928a4b954954fef565d203a0731d065d9df41a4fd3812b1cc2487053ea19ce839d200845952f80d80698771d83ccc1fc7f236dbee4c76b2bb4005a04b24c88cd40233fb43c59ea5cf2cb9510d16b1168bc126db64aaf9ab07a7453208fde079095966272bf03bc3312c9b9bab8c795ae375e8a0e8dd81c924e7c27]\n[sha = SHA-512]\n\n# tcId = 424\n# extreme value for k\nmsg = 313233343030\nresult = valid\nsig = 308187024200c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd6602410eb10e5ab95f2f26a40700b1300fb8c3c8d5384ffbecf1fdb9e11e67cb7fd6a7f503e6e25ac09bb88b6c3983df764d4d72bc2920e233f0f7974a234a21b00bb447\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650]\n[key.wx = 00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66]\n[key.wy = 011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650]\n[sha = SHA-512]\n\n# tcId = 425\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308185024043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n# tcId = 426\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308187024201ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94fdcdefd78dc0b56a22d16f2eec26ae0c1fb484d059300e80bd6b0472b3d1222ff5d08b03d0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd6600e7c6d6958765c43ffba375a04bd382e426670abbb6a864bb97e85042e8d8c199d368118d66a10bd9bf3aaf46fec052f89ecac38f795d8d3dbf77416b89602e99af]\n[key.wx = 00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66]\n[key.wy = 00e7c6d6958765c43ffba375a04bd382e426670abbb6a864bb97e85042e8d8c199d368118d66a10bd9bf3aaf46fec052f89ecac38f795d8d3dbf77416b89602e99af]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd6600e7c6d6958765c43ffba375a04bd382e426670abbb6a864bb97e85042e8d8c199d368118d66a10bd9bf3aaf46fec052f89ecac38f795d8d3dbf77416b89602e99af]\n[sha = SHA-512]\n\n# tcId = 427\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308185024043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n# tcId = 428\n# testing point duplication\nmsg = 313233343030\nresult = invalid\nsig = 308187024201ffbc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d6acca94fdcdefd78dc0b56a22d16f2eec26ae0c1fb484d059300e80bd6b0472b3d1222ff5d08b03d0241492492492492492492492492492492492492492492492492492492492492492491795c5c808906cc587ff89278234a8566e3f565f5ca840a3d887dac7214bee9b8\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 04012a908bfc5b70e17bdfae74294994808bf2a42dab59af8b0523a026d640a2a3d6d344520b62177e2cfa339ca42fb0883ec425904fbda2833a3b5b0a9a00811365d8012333d532f8f8eb1a623c378a3694651192bbda833e3b8d7b8f90b2bfc9b045f8a55e1b6a5fe1512c400c4bc9c86fd7c699d642f5cee9bb827c8b0abc0da01cef1e]\n[key.wx = 012a908bfc5b70e17bdfae74294994808bf2a42dab59af8b0523a026d640a2a3d6d344520b62177e2cfa339ca42fb0883ec425904fbda2833a3b5b0a9a00811365d8]\n[key.wy = 012333d532f8f8eb1a623c378a3694651192bbda833e3b8d7b8f90b2bfc9b045f8a55e1b6a5fe1512c400c4bc9c86fd7c699d642f5cee9bb827c8b0abc0da01cef1e]\n[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004012a908bfc5b70e17bdfae74294994808bf2a42dab59af8b0523a026d640a2a3d6d344520b62177e2cfa339ca42fb0883ec425904fbda2833a3b5b0a9a00811365d8012333d532f8f8eb1a623c378a3694651192bbda833e3b8d7b8f90b2", + "bfc9b045f8a55e1b6a5fe1512c400c4bc9c86fd7c699d642f5cee9bb827c8b0abc0da01cef1e]\n[sha = SHA-512]\n\n# tcId = 429\n# pseudorandom signature\nmsg = \nresult = valid\nsig = 308188024201625d6115092a8e2ee21b9f8a425aa73814dec8b2335e86150ab4229f5a3421d2e6256d632c7a4365a1ee01dd2a936921bbb4551a512d1d4b5a56c314e4a02534c5024201b792d23f2649862595451055777bda1b02dc6cc8fef23231e44b921b16155cd42257441d75a790371e91819f0a9b1fd0ebd02c90b5b774527746ed9bfe743dbe2f\n\n# tcId = 430\n# pseudorandom signature\nmsg = 4d7367\nresult = valid\nsig = 30818602415adc833cbc1d6141ced457bab2b01b0814054d7a28fa8bb2925d1e7525b7cf7d5c938a17abfb33426dcc05ce8d44db02f53a75ea04017dca51e1fbb14ce3311b1402415f69b2a6de129147a8437b79c72315d35173d88c2d6119085c90dae8ec05c55e067e7dfa4f681035e3dccab099291c0ecf4428332a9cb0736d16e79111ac76d766\n\n# tcId = 431\n# pseudorandom signature\nmsg = 313233343030\nresult = valid\nsig = 3081880242014141e4d94a58c1e747cbd9ee6670a41eac3c26fb4db3248e45d583179076e6b19a8e2003657a108f91f9a103157edff9b37df2b436a77dc112927d907ac9ba258702420108afa91b34bd904c680471e943af336fb90c5fb2b91401a58c9b1f467bf81af8049965dd8b45f12e152f4f7fd3780e3492f31ed2680d4777fbe655fe779ad897ab\n\n# tcId = 432\n# pseudorandom signature\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 308187024108135d3f1ae9e26fba825643ed8a29d63d7843720e93566aa09db2bdf5aaa69afbcc0c51e5295c298f305ba7b870f0a85bb5699cdf40764aab59418f77c6ffb4520242011d345256887fb351f5700961a7d47572e0d669056cb1d5619345c0c987f3331c2fe2c6df848a5c610422defd6212b64346161aa871ae55b1fe4add5f68836eb181\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a00000000009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[key.wx = 304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a]\n[key.wy = 009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a00000000009b98bfd33398c2cf8606fc0ae468b6d617ccb3e704af3b8506642a775d5b4da9d00209364a9f0a4ad77cbac604a015c97e6b5a18844a589a4f1c7d9625]\n[sha = SHA-512]\n\n# tcId = 433\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081870242011c9684af6dc52728410473c63053b01c358d67e81f8a1324ad711c60481a4a86dd3e75de20ca55ce7a9a39b1f82fd5da4fadf26a5bb8edd467af8825efe4746218024134c058aba6488d6943e11e0d1348429449ea17ac5edf8bcaf654106b98b2ddf346c537b8a9a3f9b3174b77637d220ef5318dbbc33d0aac0fe2ddeda17b23cb2de6\n\n# tcId = 434\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 30818702417c47a668625648cd8a31ac92174cf3d61041f7ad292588def6ed143b1ff9a288fd20cf36f58d4bfe4b2cd4a381d4da50c8eda5674f020449ae1d3dd77e44ed485e024201058e86b327d284e35bab49fc7c335417573f310afa9e1a53566e0fae516e099007965030f6f46b077116353f26cb466d1cf3f35300d744d2d8f883c8a31b43c20d\n\n# tcId = 435\n# y-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201e4e9f3a7b800de63407b8703ac545226541c97a673566711f70e2b9ccb21a145ad4637825b023d1ea9f18e60897413711611a85c1179bff9c107368f1c1b61c24c024201de948ee577c3d4e4122a52ecccac59abb6fa937dfb3e4b988cb243efe98740309452ba013112b225b3b1b1384d5f68796845199a2602a8d4505a331b07d101188e\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[key.wx = 304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a]\n[key.wy = 01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400304b3d071ed1ef302391b566af8c9d1cb7afe9aabc141ac39ab39676c63e48c1b2c6451eb460e452bd573e1fb5f15b8e5f9c03f634d8db6897285064b3ce9bd98a01ffffffff6467402ccc673d3079f903f51b974929e8334c18fb50c47af99bd588a2a4b2562ffdf6c9b560f5b528834539fb5fea368194a5e77bb5a765b0e38269da]\n[sha = SHA-512]\n\n# tcId = 436\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308187024200b6cf64861a2b16e33976095dbf45a592c7c24228c4a1dd727f303d5eeb87e5388ad05c328f824c40abd3e6ce003fef5cd59dee0069ad6348ea6e57f90f6bdc0a820241228181c180366e5451dfef3593ce664804cb42d5a8d5046b816b3daf6602fafd9ac2dc24b8c93a10024480882558b6ad3d9e905923dcd0fd2a11964754a9b46b8f\n\n# tcId = 437\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420093c8f766827d6dc15c810fa30433153a5e742859205ee8389fbf695c8840dc917440870acc5b160087ffd0cd9a6081029c60a7c26d5e8aa9a0570f4efdeb13dea20242012ec3bbf75a0ad3df40310266648a36db820217ed7fa94e9c8313e03293ef4f6a40e736fb8f208ad8fb883ca509d48046910523645459c27829d54431463b2548c7\n\n# tcId = 438\n# y-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420152388c6da66164b706b41dd4dd48176d6eaf6525f876ef0ff2d147f6966ebfadf1767fa66d04203d3ec9c937a1f0c945aed953e34be444c219fd3b94d3277aa652024201658c1e5b2e563a49d11c883d05c491d628f0a92c3e3dc8db9a4c8d5f0dc846ac22af8b3c5fb5bbe2cfa98614dcffd87de1cee2c5912a5899505a0c5bcaa513e2c6\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 040000000002fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[key.wx = 02fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b]\n[key.wy = 01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[keyDer = 30819b301006072a8648ce3d020106052b8104002303818600040000000002fba6a061201ea6b1ed4265163568735ebab78600cdf6a71101dc63beaf546d97a214fc6396793b014eb1aa7a728f53deb2ff9999a3808ddfed15e9629b01993852dadc39299a5a45b6bd7c8dc8ec67e7adbb359fa8fa5d44977e15e2e5a9acf0c33645f3f2c68c526e07732fb35043719cfafc16063c8e58850a958436a4e5]\n[sha = SHA-512]\n\n# tcId = 439\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081880242010e89470f981d2c7c5c96587121a67323bb96ff2427739d0d885ea277293efa3b25c0bda04d81466198a3cbfc441f1b1b98f6bcdc2589d9d91a17a7899f70d0461e0242017351b0da8c8d0e4aa0974669d190fa2f90aa50227160594dfb55755002365441de17ea42902128a6f81e554177ed509c0cec31fd5053fae03f62ff76579ba92bda\n\n# tcId = 440\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 3081880242011094ac23ca46a3e2b4ac3baae6504f1bfb3ddf2db9ab40eda32d8e0a05727998f8552a033bb05241e826a86a1d03014eae3aa5fe1a45caac1db3e8138b9cf5906802420147edb15a5080ee2f929f78b6ac86604aae51b674fa46eaae7fdfd90bf64d6189341155f4eba937eae74c9e480eb4fb7e6aafd4285e7fc503ee6ec20f0b1415be06\n\n# tcId = 441\n# x-coordinate of the public key is small\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201d876ae174da31e128babff9f1d15507660bdc7958750844dc4f4291f75a882a22f177f704be6067bf7ce8f06b8626d971e6ef5dcb666fa975c1e11126e04fccce2024201abb12630a68b669e6ad2d8d62654d75dfbc6b54a8e3a9c915be663e080ddcc348e57a10e2b1dd9f03e1b897796ad889b075e5919dc5bf37a112d92c693456e6457\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0401fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca6333101b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d", + "0de6d2de407fd7117551a70826eada6]\n[key.wx = 01fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca63331]\n[key.wy = 01b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d0de6d2de407fd7117551a70826eada6]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000401fffffffe1d5d52b31ca52f8947a35593edf164cd324f833b90935846c64db1454df9f028dc8bc36bb04cb7f0cceceba01a3844097f7c35eeaa81428db0cca6333101b7c70277d0bf78a3c7b62c937f0cb2cad2565f5514f6205ceb1a193d4fdb45ba6e6cec07827bae0b16b8316c3539a15114d0de6d2de407fd7117551a70826eada6]\n[sha = SHA-512]\n\n# tcId = 442\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 30818602414ed692af1ed1b4bd5cea3aa8ddc6f3f15d8a6ee0016fa0e8eb958580e7421832ecc0e387c34aafac6380bac419ea45c42ae6426af503847f22c49c2f456338c1a702417aceadde02ace1668bc1a3360d34e125afde230f536c154d91e6c876bee1d34ae06edcbbca0c7cd17646840913164740b12e2e224fe3ef3dec6fd84a81b581c188\n\n# tcId = 443\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308188024200e01094048fcf7a1e2ec66faedffc40f48c9c93514325bde6b4958d80f0413efde7eec1dc6de65f96009c069397e51da2eb1729efa287afd5552b25a9e427a6d836024201489e7e124f66942e642de992e60b3a86fcce576767719390c3a312fcdeaa560a7fbb0cabb35e05a6d6f3499160fd2dba12d29b613b16dec7494c950d65fdf11fa3\n\n# tcId = 444\n# x-coordinate of the public key is large\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201d296292213380de133dc66eceb8bd857a5c468afe855c05da9db937373b51f9020ca11353415da76bb6af997a486d2370e31adcc0a4531952a3b59428678ee59430242015979a3c609c2c2099ae1b290da3d613b248e3a10de7ad770dffc82fb33e74fc3207533f97285cf4557a6407e9a775e59efeaee4264b2634933a6baf8c406f0c4a9\n\n[key.curve = secp521r1]\n[key.keySize = 521]\n[key.type = EcPublicKey]\n[key.uncompressed = 0400c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd4913490008bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[key.wx = 00c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd491349]\n[key.wy = 08bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[keyDer = 30819b301006072a8648ce3d020106052b81040023038186000400c7c8817bf2f0652a4a4b5140c773e261080a0a111395856e8a3350f5eb5612bd63b367b965e92e9538ea3b7908aef1ade4b68e17f9f9148495c167d1c4dd4913490008bf0be2979abb8111fd0d768adcad774113a822c1bb60887053b5cf8c9563e76705a391ece154b5dfb114b20e351df4014bec19fa87720845801cf06b7fffffff]\n[sha = SHA-512]\n\n# tcId = 445\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201ef8f785c51a25ae2cd93487b5c848d4af133217a91f51359c966e7538e68743578122df5830002f96f6fadb5bc44480e3b3b2c804e4c51cf95d059d5646c5cef21024201ba2276cc003e87bea37c3724e58a0ab885f56d09b8b5718f674f9c70f3b5ecfb4ad1f3417b420ec40810e08826efa7d8ad6ca7c6a7840348097f92b2de8d6e080b\n\n# tcId = 446\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 30818802420155978adc4b570d897511f5ecfb65a31947e6e989da17dea716625bb3fa7b92b853623eb0cd9ce2a5e2b4d8c1c2a90ec04fe79d012576ec728a45c5ce47c6d500c0024200f79fa8b94ee282a3d1815892cbf15d7ebdf62cb042c76bb3c710c23e32b75992cc249d84072198e4ed63d72435a07d2ed76f278d7399f61a5b5c997f45692fed22\n\n# tcId = 447\n# y-coordinate of the public key has many trailing 1's\nmsg = 4d657373616765\nresult = valid\nsig = 308188024201a2af29c58184ca861e7cd931f39cea064b199eee563f241cd5ecf6ebb2ade728f1be23cf007ebe8ef0c42d99f9f5190f6815446afc3043a820d7daf27e86b83b8a024201a2acd1822eb539383defff8769aad8bacd50cd24ca7aa6670671418110177808c3f4fbe6041b9cb898359ee61e04824adedd62b39fe5791907a20586333bd3c76d\n\n", }; -static const size_t kLen74 = 33597; +static const size_t kLen107 = 52032; -static const char *kData74[] = { - "# Imported from Wycheproof's eddsa_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: EDDSA\n# Generator version: 0.4.12\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa]\n[key.sk = add4bb8103785baf9ac534258e8aaf65f5f1adb5ef5f3df19bb80ab989c4d64b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = d4fbdb52bfa726b44d1786a8c0d171c3e62ca83c9e5bbe63de0bb2483f8fd6cc1429ab72cafc41ab56af02ff8fcc43b99bfe4c7ae940f60f38ebaa9d311c4007\n\n# tcId = 2\nmsg = 78\nresult = valid\nsig = d80737358ede548acb173ef7e0399f83392fe8125b2ce877de7975d8b726ef5b1e76632280ee38afad12125ea44b961bf92f1178c9fa819d020869975bcbe109\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 4\nmsg = 48656c6c6f\nresult = valid\nsig = 1c1ad976cbaae3b31dee07971cf92c928ce2091a85f5899f5e11ecec90fc9f8e93df18c5037ec9b29c07195ad284e63d548cd0a6fe358cc775bd6c1608d2c905\n\n# tcId = 5\nmsg = 313233343030\nresult = valid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bf0cf5b3a289976458a1be6277a5055545253b45b07dcc1abd96c8b989c00f301\n\n# tcId = 6\nmsg = 000000000000000000000000\nresult = valid\nsig = d46543bfb892f84ec124dcdfc847034c19363bf3fc2fa89b1267833a14856e52e60736918783f950b6f1dd8d40dc343247cd43ce054c2d68ef974f7ed0f3c60f\n\n# tcId = 7\nmsg = 6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161\nresult = valid\nsig = 879350045543bc14ed2c08939b68c30d22251d83e018cacbaf0c9d7a48db577e80bdf76ce99e5926762bc13b7b3483260a5ef63d07e34b58eb9c14621ac92f00\n\n# tcId = 8\nmsg = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60\nresult = valid\nsig = 7bdc3f9919a05f1d5db4a3ada896094f6871c1f37afc75db82ec3147d84d6f237b7e5ecc26b59cfea0c7eaf1052dc427b0f724615be9c3d3e01356c65b9b5109\n\n# tcId = 9\nmsg = ffffffffffffffffffffffffffffffff\nresult = valid\nsig = 5dbd7360e55aa38e855d6ad48c34bd35b7871628508906861a7c4776765ed7d1e13d910faabd689ec8618b78295c8ab8f0e19c8b4b43eb8685778499e943ae04\n\n# tcId = 10\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 11\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 12\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 13\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 14\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 15\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 16\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 01000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 17\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 18\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 19\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 20\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 21\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 22\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 23\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 24\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 25\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 26\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 27\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 28\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 29\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 30\n# empty signature\nmsg = 54657374\nresult = invalid\nsig = \n\n# tcId = 31\n# s missing\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0\n\n# tcId = 32\n# signature too short\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946\n\n# tcId = 33\n# signature too long\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d2020\n\n# tcId = 34\n# include pk in signature\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa\n\n# tcId = 35\n# prepending 0 byte to signature\nmsg = 54657374\nresult = invalid\nsig = 007c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 36\n# prepending 0 byte to s\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0007a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 37\n# appending 0 byte to signature\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d00\n\n# tcId = 38\n# removing 0 byte from signature\nmsg = 546573743137\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b3\n\n# tcId = 39\n# removing 0 byte from signature\nms", - "g = 54657374313236\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab09155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 40\n# removing leading 0 byte from signature\nmsg = 546573743530\nresult = invalid\nsig = 38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 41\n# dropping byte from signature\nmsg = 54657374333437\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab09155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 42\n# modified bit 0 in R\nmsg = 313233343030\nresult = invalid\nsig = 647c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b1d125e5538f38afbcc1c84e489521083041d24bc6240767029da063271a1ff0c\n\n# tcId = 43\n# modified bit 1 in R\nmsg = 313233343030\nresult = invalid\nsig = 677c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bc108ca4b87a49c9ed2cf383aecad8f54a962b2899da891e12004d7993a627e01\n\n# tcId = 44\n# modified bit 2 in R\nmsg = 313233343030\nresult = invalid\nsig = 617c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b9ce23fc6213ed5b87912e9bbf92f5e2c780eae26d15c50a112d1e97d2ea33c06\n\n# tcId = 45\n# modified bit 7 in R\nmsg = 313233343030\nresult = invalid\nsig = e57c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bbb3eb51cd98dddb235a5f46f2bded6af184a58d09cce928bda43f41d69118a03\n\n# tcId = 46\n# modified bit 8 in R\nmsg = 313233343030\nresult = invalid\nsig = 657d1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcd237dda9a116501f67a5705a854b9adc304f34720803a91b324f2c13e0f5a09\n\n# tcId = 47\n# modified bit 16 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1592402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b6b167bbdc0d881cc04d28905552c1876f3709851abc5007376940cc8a435c300\n\n# tcId = 48\n# modified bit 31 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1412402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7fd2ac7da14afffcceeb13f2a0d6b887941cb1a5eb57a52f3cb131a16cce7b0e\n\n# tcId = 49\n# modified bit 32 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492412ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7373ba13ebbef99cd2a8ead55ce735c987d85a35320925a8e871702dc7c5c40d\n\n# tcId = 50\n# modified bit 63 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab54e03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bd35bd331c03f0855504ca1cab87b83c36a028425a3cf007ede4f4254c261cb00\n\n# tcId = 51\n# modified bit 64 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce02e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcb35101f73cf467deac8c1a03b6c3dc35af544132734b7e57ab20c89b2e4750d\n\n# tcId = 52\n# modified bit 97 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f2384d051b9cf3570f1207fc78c1bcc98c281c2bb58d2e8878290bff8d3355fdd4ea381924ee578752354eb6dee678ab4011c301\n\n# tcId = 53\n# modified bit 127 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d851b9cf3570f1207fc78c1bcc98c281c2bb978c866187ffb1cc7b29a0b4045aefc08768df65717194ff0c6e63f4dea0d02\n\n# tcId = 54\n# modified bit 240 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281d2b0576ecf8eaf675f00f3dfbe19f75b83b7607a6c96414f6821af920a2498d0305\n\n# tcId = 55\n# modified bit 247 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c289c2be5241a345c7b5428054c74b7c382fa10d4a5f1e8f8b79a71d3fdea2254f1ff0e\n\n# tcId = 56\n# modified bit 248 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2a63950c85cd6dc96364e768de50ff7732b538f8a0b1615d799190ab600849230e\n\n# tcId = 57\n# modified bit 253 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c0b543bd3da0a56a8c9c152f59c9fec12f31fa66434d48b817b30d90cb4efa8b501\n\n# tcId = 58\n# modified bit 254 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c6b8da07efd07a6dafb015ed6a32fe136319a972ffbc341f3a0beae97ccf8136505\n\n# tcId = 59\n# modified bit 255 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281cab227aedf259f910f0f3a759a335062665217925d019173b88917eae294f75d40f\n\n# tcId = 60\n# R==0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000e0b8e7770d51c7a36375d006c5bffd6af43ff54aaf47e4330dc118c71d61ec02\n\n# tcId = 61\n# invalid R\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff463a1908382e7eb7693acef9884f7cf931a215e0791876be22c631a59881fd0e\n\n# tcId = 62\n# all bits flipped in R\nmsg = 313233343030\nresult = invalid\nsig = 9a83eb6dbfd54a31fc1d3c580fc7b2fae4630ca8f0edf803873e433673d7e3d40e94254586cb6188c5386c3febed477cb9a6cb29e3979adc4cb27cf5278fb70a\n\n# tcId = 63\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab067654bce3832c2d76f8f6f5dafc08d9339d4eef676573336a5c51eb6f946b31d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n# tcId = 64\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab05439412b5395d42f462c67008eba6ca839d4eef676573336a5c51eb6f946b32d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n# tcId = 65\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab02ee12ce5875bf9dff26556464bae2ad239d4eef676573336a5c51eb6f946b34d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n# tcId = 66\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0e2300459f1e742404cd934d2c595a6253ad4eef676573336a5c51eb6f946b38d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n# tcId = 67\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b32d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n# tcId = 68\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b34d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n# tcId = 69\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n# tcId = 70\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0679155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d\n# EdDSA signatures are non-malleable, if implemented accordingly. Failing to\n# check the range of S allows to modify signatures. See RFC 8032, Section 5.2.7\n# and Section 8.4.\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c]\n[key.sk = 0a23a20072891237aa0864b5765139514908787878cd77135a0059881d313f00]\n[key.type = ED", - "DSAKeyPair]\n[keyDer = 302a300506032b6570032100a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c]\n\n# tcId = 71\nmsg = \nresult = valid\nsig = 5056325d2ab440bf30bbf0f7173199aa8b4e6fbc091cf3eb6bc6cf87cd73d992ffc216c85e4ab5b8a0bbc7e9a6e9f8d33b7f6e5ac0ffdc22d9fcaf784af84302\n\n# tcId = 72\nmsg = 78\nresult = valid\nsig = 481fafbf4364d7b682475282f517a3ac0538c9a6b6a562e99a3d8e5afb4f90a559b056b9f07af023905753b02d95eb329a35c77f154b79abbcd291615ce42f02\n\n# tcId = 73\nmsg = 54657374\nresult = valid\nsig = 8a9bb4c465a3863abc9fd0dd35d80bb28f7d33d37d74679802d63f82b20da114b8d765a1206b3e9ad7cf2b2d8d778bb8651f1fa992db293c0039eacb6161480f\n\n# tcId = 74\nmsg = 48656c6c6f\nresult = valid\nsig = d839c20abfda1fd429531831c64f813f84b913e9928540310cf060b44c3dbf9457d44a7721fdc0d67724ff81cb450dd39b10cfb65db15dda4b8bf09d26bd3801\n\n# tcId = 75\nmsg = 313233343030\nresult = valid\nsig = 9bbb1052dcfa8ad2715c2eb716ae4f1902dea353d42ee09fd4c0b4fcb8b52b5219e2200016e1199d0061891c263e31b0bc3b55673c19610c4e0fa5408004160b\n\n# tcId = 76\nmsg = 000000000000000000000000\nresult = valid\nsig = f63b5c0667c7897fc283296416f7f60e84bbde9cbd832e56be463ed9f568069702b17a2f7c341ebf590706a6388ac76ac613c1675ec0f2c7118f2573422a500b\n\n# tcId = 77\nmsg = 6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161\nresult = valid\nsig = 1bc44d7001e6b5b9090fef34b2ca480f9786bbefa7d279353e5881e8dfb91b803ccd46500e270ef0109bfd741037558832120bc2a4f20fbe7b5fb3c3aaf23e08\n\n# tcId = 78\nmsg = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60\nresult = valid\nsig = ea8e22143b02372e76e99aece3ed36aec529768a27e2bb49bdc135d44378061e1f62d1ac518f33ebf37b2ee8cc6dde68a4bd7d4a2f4d6cb77f015f71ca9fc30d\n\n# tcId = 79\nmsg = ffffffffffffffffffffffffffffffff\nresult = valid\nsig = 8acd679e1a914fc45d5fa83d3021f0509c805c8d271df54e52f43cfbd00cb6222bf81d58fe1de2de378df67ee9f453786626961fe50a9b05f12b6f0899ebdd0a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a]\n[key.sk = 9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a]\n\n# tcId = 80\n# draft-josefsson-eddsa-ed25519-02: Test 1\nmsg = \nresult = valid\nsig = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c]\n[key.sk = 4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321003d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c]\n\n# tcId = 81\n# draft-josefsson-eddsa-ed25519-02: Test 2\nmsg = 72\nresult = valid\nsig = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025]\n[key.sk = c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025]\n\n# tcId = 82\n# draft-josefsson-eddsa-ed25519-02: Test 3\nmsg = af82\nresult = valid\nsig = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e]\n[key.sk = f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e]\n\n# tcId = 83\n# draft-josefsson-eddsa-ed25519-02: Test 1024\nmsg = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nresult = valid\nsig = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 8fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a]\n[key.sk = d7ad3f1f6bbe0477c3c357a806a19eb41ae3f94025035bc87f281f8ee9fc0e34]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321008fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a]\n\n# tcId = 84\n# Random test failure 1\nmsg = b0729a713593a92e46b56eaa66b9e435f7a09a8e7de03b078f6f282285276635f301e7aaafe42187c45d6f5b13f9f16b11195cc125c05b90d24dfe4c\nresult = valid\nsig = 7db17557ac470c0eda4eedaabce99197ab62565653cf911f632ee8be0e5ffcfc88fb94276b42e0798fd3aa2f0318be7fc6a29fae75f70c3dcdc414a0ad866601\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 2a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082]\n[key.sk = ad9b22793336fcdac10e136c4deea599be187a38eef91c1cf7c7a4ec884dda08]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321002a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082]\n\n# tcId = 85\n# Random test failure 2\nmsg = a8546e50ba31cae3234310d32672447be213fad91a227a19669c53d309b959782b0e6b71f8791fdb470043b58122003157d2d96a43a6cbd7d3a8d86bf4c97391883e268d50af80e1e6e12939c2bd50ca746cdadfad4edf1bda875299740724148efb1ebe73fb60088cda890317658627a5f7ab5a0c075d9d8f3f97b6492b35519e50ff6b38377432a7081f9176bb1c29a862deac1336ca20b097a47829cec10a6a7cec178eda2d12f6dc6c87f910454af0123555ba184e68804d9cced60fd5c8c90943e56599c8f0ba59a38491ba5e5a53460682474c07e40ca142983314fd762856bb1093f359da6eb0a756bd93a3160c10dd8feea6b97e7c6a17cb54bd5d7649c05c66d7bdee056671dfdaf689fa3945bb8e29a429f4bd5d355dce9687b06f01d5e33e3999f0e8\nresult = valid\nsig = 67d84d4c3945aaf06e06d524be63acbfb5dbb1988c4aea96a5ee9f7a9b9eecc29df4f66b8aa1d9e8607a58fb1ef0c2ad69aac005b4f58e34103344a9c8871a09\n\n# tcId = 86\n# Random test failure 24\nmsg = b477b0480bb84642608b908d29a51cf2fce63f24ee95\nresult = valid\nsig = 28fafbb62b4d688fa79e1ac92851f46e319b161f801d4dc09acc21fdd6780a2c4292b8c1003c61c2bcebe7f3f88ccc4bb26d407387c5f27cb8c94cf6ce810405\n", - "\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051]\n[key.sk = 04a6553d68a9baef78a2175af375458eaa01cdb77350c61e282ef5f0c7116599]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051]\n\n# tcId = 87\n# Random test failure 3\nmsg = cd2212eddb0706f62c995cef958634f0cb7793444cbf4d30e81c27c41ebea6cb02607510131f9c015692dfd521b148841e9a2d3564d20ac401f6cb8e40f520fe0cafbeaa88840b83013369d879f013463fe52a13267aa0c8c59c45cde9399cd1e6be8cc64cf48315ac2eb31a1c567a4fb7d601746d1f63b5ac020712adbbe07519bded6f\nresult = valid\nsig = 24087d47f3e20af51b9668ae0a88ce76586802d0ec75d8c0f28fc30962b5e1d1a1d509571a1624ed125a8df92a6e963728d6b5de99200b8e285f70feb6f05207\n\n# tcId = 88\n# Random test failure 20\nmsg = 27d465bc632743522aefa23c\nresult = valid\nsig = c2656951e2a0285585a51ff0eda7e9a23c2dfd2ffa273aee7808f4604e8f9a8c8ea49e9fce4eb2d8d75d36b7238fe6fc13b6c5d9427dd58f8c6615d033c0bd0f\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e]\n[key.sk = c367c8d2ebeeecd70c1e8985b70c3808b75657f243b21ba4f322792540e92257]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e]\n\n# tcId = 89\n# Random test failure 4\nmsg = ec5c7cb078\nresult = valid\nsig = d920d421a5956b69bfe1ba834c025e2babb6c7a6d78c97de1d9bb1116dfdd1185147b2887e34e15578172e150774275ea2aad9e02106f7e8ca1caa669a066f0c\n\n# tcId = 90\n# Random test failure 5\nmsg = 4668c6a76f0e482190a7175b9f3806a5fe4314a004fa69f988373f7a\nresult = valid\nsig = 4f62daf7f7c162038552ad7d306e195baa37ecf6ca7604142679d7d1128e1f8af52e4cb3545748c44ef1ff1c64e877e4f4d248259b7f6eb56e3ef72097dc8e0c\n\n# tcId = 91\n# Random test failure 8\nmsg = 5dc9bb87eb11621a93f92abe53515697d2611b2eef73\nresult = valid\nsig = deecafb6f2ede73fec91a6f10e45b9c1c61c4b9bfbe6b6147e2de0b1df6938971f7896c3ab83851fb5d9e537037bff0fca0ccb4a3cc38f056f91f7d7a0557e08\n\n# tcId = 92\n# Random test failure 10\nmsg = 7dcfe60f881e1285676f35b68a1b2dbcdd7be6f719a288ababc28d36e3a42ac3010a1ca54b32760e74\nresult = valid\nsig = 7f8663cf98cbd39d5ff553f00bcf3d0d520605794f8866ce75714d77cc51e66c91818b657d7b0dae430a68353506edc4a714c345f5ddb5c8b958ba3d035f7a01\n\n# tcId = 93\n# Random test failure 12\nmsg = 58e456064dff471109def4ca27fa8310a1df32739655b624f27e6418d34b7f007173f3faa5\nresult = valid\nsig = 6aab49e5c0bc309b783378ee03ffda282f0185cdf94c847701ff307a6ee8d0865411c44e0a8206f6a5f606107451940c2593af790ce1860f4c14ab25b2deae08\n\n# tcId = 94\n# Random test failure 15\nmsg = a1\nresult = valid\nsig = 1a74ed2cbdc7d8f3827014e8e6ecf8fd2698ac8f86833acccdd400df710fe0d6b0543c9cfa00d52bf024ab7ce0d91981944097233ec134d5c7abbd44bfd32d0d\n\n# tcId = 95\n# Random test failure 19\nmsg = 11cb1eafa4c42a8402c4193c4696f7b2e6d4585e4b42dcf1a8b67a80b2da80bc9d4b649fb2f35eaf1f56c426fd0b\nresult = valid\nsig = 14ceb2eaf4688d995d482f44852d71ad878cd7c77b41e60b0065fd01a59b054ee74759224187dbde9e59a763a70277c960892ef89fba997aba2576b2c54ba608\n\n# tcId = 96\n# Random test failure 25\nmsg = aa365b442d12b7f3c925\nresult = valid\nsig = 83c40ce13d483cc58ff65844875862d93df4bd367af77efa469ec06a8ed9e6d7905a04879535708ddf225567a815c9b941d405c98e918fd0c151165cea7fb101\n\n# tcId = 97\n# Random test failure 28\nmsg = 475f\nresult = valid\nsig = 71a4a06a34075f2fd47bc3abf4714d46db7e97b08cb6180d3f1539ac50b18ce51f8af8ae95ed21d4fa0daab7235925631ecea1fd9d0d8a2ba7a7583fd04b900c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a]\n[key.sk = 56c1e22d616cbb6dea869288b4b1c02bb98696583c2f6e650013a03e17049c62]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a]\n\n# tcId = 98\n# Random test failure 6\nmsg = 0f325ffd87e58131ffa23c05ea4579513b287fdba87b44\nresult = valid\nsig = 6669acf94667c5b541afe5307bde9476b13ae7e0e6058a772101ac8eb0a94331428eb4db0a2c68a9b6c1763b8624dab259b0876cdcfaeacc17b21a18e3fc010a\n\n# tcId = 99\n# Random test failure 21\nmsg = 5ffa\nresult = valid\nsig = 931e5152fcef078c22cc5d6a3a65f06e396289f6f5f2d1efa6340254a53526ef5dc6874eeddf35c3f50991c53cd02bf06313e37d93ee1f7022128ffa3b8f300b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10]\n[key.sk = b7d2f64276df417fed27d8e15b4e90f6fd93dace707294c338bd32bc4bbd8fdb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10]\n\n# tcId = 100\n# Random test failure 7\nmsg = ec5c7cb078\nresult = valid\nsig = 30490c28f806298225df62103521dcee047153912c33ab8ab8bbdd1ffabd70fd4fdb360f05be535b067d1cf4e78c2cb432206bf280aab3bd21aaa1cb894c5b06\n\n# tcId = 101\n# Random test failure 9\nmsg = 67484059b2490b1a0a4f8dee77979e26\nresult = valid\nsig = 4cd4f77ed473a6647387f3163541c67a1708a3c3bd1673247cb87f0cb68b3c56f04bfa72970c8a483efe659c87009ab4020b590b6641316b3deddb5450544e02\n\n# tcId = 102\n# Random test failure 11\nmsg = a020a4381dc9141f47ee508871ab7a8b5a3648727c4281ae9932376f23a8e1bcda0626b7129197d864178631ec89c4332dbb18\nresult = valid\nsig = 1e41a24fe732bd7cab14c2a2f5134ee8c87fcbd2e987e60957ed9239e5c32404d56977e1b4282871896cb10625a1937468e4dc266e16a9c1b8e9891177eca802\n\n# tcId = 103\n# Random test failure 14\nmsg = a25176b3afea318b2ec11ddacb10caf7179c0b3f8eabbfa2895581138d3c1e0e\nresult = valid\nsig = 2a833aadecd9f28235cb5896bf3781521dc71f28af2e91dbe1735a61dce3e31ac15ca24b3fc47817a59d386bbbb2ce60a6adc0a2703bb2bdea8f70f91051f706\n\n# tcId = 104\n# Random test failure 18\nmsg = a9e6d94870a67a9fe1cf13b1e6f9150cdd407bf6480ec841ea586ae3935e9787163cf419c1\nresult = valid\nsig = c97e3190f83bae7729ba473ad46b420b8aad735f0808ea42c0f898ccfe6addd4fd9d9fa3355d5e67ee21ab7e1f805cd07f1fce980e307f4d7ad36cc924eef00c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56]\n[key.sk = 7d597c3b7283929d07ed8f01f31d2596823e5e46ab226c7be4234d1a9dcaef37]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56]\n\n# tcId = 105\n# Random test failure 13\nmsg = e1cbf2d86827825613fb7a85811d\nresult = valid\nsig = 01abfa4d6bbc726b196928ec84fd03f0c953a4fa2b228249562ff1442a4f63a7150b064f3712b51c2af768d2c2711a71aabf8d186833e941a0301b82f0502905\n\n# tcId = 106\n# Random test failure 22\nmsg = 25\nresult = valid\nsig = e4ae21f7a8f4b3b325c161a8c6e53e2edd7005b9c2f8a2e3b0ac4ba94aa80be6f2ee22ac8d4a96b9a3eb73a825e7bb5aff4a3393bf5b4a38119e9c9b1b041106\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 2252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1]\n[key.sk = f401cee4bfb1732f0e9b8d8ba79469565c3115296141dbdf7e9c311a0ac1823b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321002252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1]\n\n# tcId = 107\n# Random test failure 16\nmsg = 975ef941710071a9e1e6325a0c860becd7c695b5117c3107b686e330e5\nresult = valid\nsig = af0fd9dda7e03e12313410d8d8844ebb6fe6b7f65141f22d7bcba5695a25414a9e54326fb44d59fb14707899a8aae70857b23d4080d7ab2c396ef3a36d45ce02\n\n# tcId = 108\n# Random test failure 23\nmsg = 80fdd6218f29c8c8f6bd820945f9b0854e3a8824\nresult = valid\nsig = e097e0bd0370bff5bde359175a11b728ee9639095d5df8eda496395565616edfe079977f7d4dc8c75d6113a83d6a55e6e1676408c0967a2906339b43337dcb01\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = c0a773110f975de3732355bb7ec7f0c41c091c0252966070205516693b992a4a]\n[key.sk = 3d658956410377d0644676d2599542412a4f3b0e4eadfb7f3f836615f42b18bc]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100c0a773110f975de3732355bb7ec7f0c41c091c0252966070205516693b992a4a]\n\n# tcId = 109\n# Random test failure 17\nmsg = \nresult = valid\nsig = 0280427e713378f49d478df6373c6cac847b622b567daa2376c839e7ac10e22c380ab0fa8617c9dcfe76c4d9db5459b21dc1413726e46cc8f387d359e344f407\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 54cda623245759ad6d43e620a606908befc633d60792bc7798447a0ef38e7311]\n[key.sk = bccb61323840c2a96fc36f7e54ea6c8e55f9d221f7f05791ed60025e06064439]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210054cda623245759ad6d43e620a60690", - "8befc633d60792bc7798447a0ef38e7311]\n\n# tcId = 110\n# Random test failure 26\nmsg = 27e792b28b2f1702\nresult = valid\nsig = 14d9b497c19b91d43481c55bb6f5056de252d9ecb637575c807e58e9b4c5eac8b284089d97e2192dc242014363208e2c9a3435edf8928fb1d893553e9be4c703\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 2362bac514d5fad33802642e979a1e82de6eb6f1bcbf6a5b304f2bb02b9e57fe]\n[key.sk = f2d3023b9c19e241748bc4039a7a43c595701f23675505015213a8a2a0274c1b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321002362bac514d5fad33802642e979a1e82de6eb6f1bcbf6a5b304f2bb02b9e57fe]\n\n# tcId = 111\n# Random test failure 27\nmsg = eef3bb0f617c17d0420c115c21c28e3762edc7b7fb048529b84a9c2bc6\nresult = valid\nsig = 242ddb3a5d938d07af690b1b0ef0fa75842c5f9549bf39c8750f75614c712e7cbaf2e37cc0799db38b858d41aec5b9dd2fca6a3c8e082c10408e2cf3932b9d08\n\n", +static const char *kData107[] = { + "# Imported from Wycheproof's eddsa_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: EDDSA\n# Generator version: 0.8rc16\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa]\n[key.sk = add4bb8103785baf9ac534258e8aaf65f5f1adb5ef5f3df19bb80ab989c4d64b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = d4fbdb52bfa726b44d1786a8c0d171c3e62ca83c9e5bbe63de0bb2483f8fd6cc1429ab72cafc41ab56af02ff8fcc43b99bfe4c7ae940f60f38ebaa9d311c4007\n\n# tcId = 2\nmsg = 78\nresult = valid\nsig = d80737358ede548acb173ef7e0399f83392fe8125b2ce877de7975d8b726ef5b1e76632280ee38afad12125ea44b961bf92f1178c9fa819d020869975bcbe109\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 4\nmsg = 48656c6c6f\nresult = valid\nsig = 1c1ad976cbaae3b31dee07971cf92c928ce2091a85f5899f5e11ecec90fc9f8e93df18c5037ec9b29c07195ad284e63d548cd0a6fe358cc775bd6c1608d2c905\n\n# tcId = 5\nmsg = 313233343030\nresult = valid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bf0cf5b3a289976458a1be6277a5055545253b45b07dcc1abd96c8b989c00f301\n\n# tcId = 6\nmsg = 000000000000000000000000\nresult = valid\nsig = d46543bfb892f84ec124dcdfc847034c19363bf3fc2fa89b1267833a14856e52e60736918783f950b6f1dd8d40dc343247cd43ce054c2d68ef974f7ed0f3c60f\n\n# tcId = 7\nmsg = 6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161\nresult = valid\nsig = 879350045543bc14ed2c08939b68c30d22251d83e018cacbaf0c9d7a48db577e80bdf76ce99e5926762bc13b7b3483260a5ef63d07e34b58eb9c14621ac92f00\n\n# tcId = 8\nmsg = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60\nresult = valid\nsig = 7bdc3f9919a05f1d5db4a3ada896094f6871c1f37afc75db82ec3147d84d6f237b7e5ecc26b59cfea0c7eaf1052dc427b0f724615be9c3d3e01356c65b9b5109\n\n# tcId = 9\nmsg = ffffffffffffffffffffffffffffffff\nresult = valid\nsig = 5dbd7360e55aa38e855d6ad48c34bd35b7871628508906861a7c4776765ed7d1e13d910faabd689ec8618b78295c8ab8f0e19c8b4b43eb8685778499e943ae04\n\n# tcId = 10\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 11\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 12\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 13\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 14\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 15\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 16\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 01000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 17\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 18\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 19\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = 0100000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 20\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 21\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 22\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 23\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 24\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 25\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 26\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0100000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 27\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 28\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010\n\n# tcId = 29\n# special values for r and s\nmsg = 3f\nresult = invalid\nsig = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 30\n# empty signature\nmsg = 54657374\nresult = invalid\nsig = \n\n# tcId = 31\n# s missing\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0\n\n# tcId = 32\n# signature too short\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946\n\n# tcId = 33\n# signature too long\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d2020\n\n# tcId = 34\n# include pk in signature\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa\n\n# tcId = 35\n# prepending 0 byte to signature\nmsg = 54657374\nresult = invalid\nsig = 007c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 36\n# prepending 0 byte to s\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0007a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d\n\n# tcId = 37\n# appending 0 byte to signature\nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d00\n\n# tcId = 38\n# removing 0 byte from signature\nmsg = 546573743137\nresult = invalid\nsig = 93de3ca252426c95f735cb9edd92e83321ac62372d5aa5b379786bae111ab6b17251330e8f9a7c30d6993137c596007d7b001409287535ac4804e662bc58a3\n\n# tcId = 39\n# removing 0 byte from signature\nm", + "sg = 54657374313236\nresult = invalid\nsig = dffed33a7f420b62bb1731cfd03be805affd18a281ec02b1067ba6e9d20826569e742347df59c88ae96db1f1969fb189b0ec34381d85633e1889da48d95e0e\n\n# tcId = 40\n# removing leading 0 byte from signature\nmsg = 546573743530\nresult = invalid\nsig = 6e170c719577c25e0e1e8b8aa7a6346f8b109f37385cc2e85dc3b4c0f46a9c6bcafd67f52324c5dbaf40a1b673fb29c4a56052d2d6999d0838a8337bccb502\n\n# tcId = 41\n# dropping byte from signature\nmsg = 54657374333437\nresult = invalid\nsig = b0928b46e99fbbad3f5cb502d2cd309d94a7e86cfd4d84b1fcf4cea18075a9c36993c0582dba1e9e519fae5a8654f454201ae0c3cb397c37b8f4f8eef18400\n\n# tcId = 42\n# modified bit 0 in R\nmsg = 313233343030\nresult = invalid\nsig = 647c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b1d125e5538f38afbcc1c84e489521083041d24bc6240767029da063271a1ff0c\n\n# tcId = 43\n# modified bit 1 in R\nmsg = 313233343030\nresult = invalid\nsig = 677c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bc108ca4b87a49c9ed2cf383aecad8f54a962b2899da891e12004d7993a627e01\n\n# tcId = 44\n# modified bit 2 in R\nmsg = 313233343030\nresult = invalid\nsig = 617c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b9ce23fc6213ed5b87912e9bbf92f5e2c780eae26d15c50a112d1e97d2ea33c06\n\n# tcId = 45\n# modified bit 7 in R\nmsg = 313233343030\nresult = invalid\nsig = e57c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bbb3eb51cd98dddb235a5f46f2bded6af184a58d09cce928bda43f41d69118a03\n\n# tcId = 46\n# modified bit 8 in R\nmsg = 313233343030\nresult = invalid\nsig = 657d1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcd237dda9a116501f67a5705a854b9adc304f34720803a91b324f2c13e0f5a09\n\n# tcId = 47\n# modified bit 16 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1592402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b6b167bbdc0d881cc04d28905552c1876f3709851abc5007376940cc8a435c300\n\n# tcId = 48\n# modified bit 31 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1412402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7fd2ac7da14afffcceeb13f2a0d6b887941cb1a5eb57a52f3cb131a16cce7b0e\n\n# tcId = 49\n# modified bit 32 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492412ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7373ba13ebbef99cd2a8ead55ce735c987d85a35320925a8e871702dc7c5c40d\n\n# tcId = 50\n# modified bit 63 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab54e03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bd35bd331c03f0855504ca1cab87b83c36a028425a3cf007ede4f4254c261cb00\n\n# tcId = 51\n# modified bit 64 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce02e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcb35101f73cf467deac8c1a03b6c3dc35af544132734b7e57ab20c89b2e4750d\n\n# tcId = 52\n# modified bit 97 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f2384d051b9cf3570f1207fc78c1bcc98c281c2bb58d2e8878290bff8d3355fdd4ea381924ee578752354eb6dee678ab4011c301\n\n# tcId = 53\n# modified bit 127 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d851b9cf3570f1207fc78c1bcc98c281c2bb978c866187ffb1cc7b29a0b4045aefc08768df65717194ff0c6e63f4dea0d02\n\n# tcId = 54\n# modified bit 240 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281d2b0576ecf8eaf675f00f3dfbe19f75b83b7607a6c96414f6821af920a2498d0305\n\n# tcId = 55\n# modified bit 247 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c289c2be5241a345c7b5428054c74b7c382fa10d4a5f1e8f8b79a71d3fdea2254f1ff0e\n\n# tcId = 56\n# modified bit 248 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2a63950c85cd6dc96364e768de50ff7732b538f8a0b1615d799190ab600849230e\n\n# tcId = 57\n# modified bit 253 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c0b543bd3da0a56a8c9c152f59c9fec12f31fa66434d48b817b30d90cb4efa8b501\n\n# tcId = 58\n# modified bit 254 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c6b8da07efd07a6dafb015ed6a32fe136319a972ffbc341f3a0beae97ccf8136505\n\n# tcId = 59\n# modified bit 255 in R\nmsg = 313233343030\nresult = invalid\nsig = 657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281cab227aedf259f910f0f3a759a335062665217925d019173b88917eae294f75d40f\n\n# tcId = 60\n# R==0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000e0b8e7770d51c7a36375d006c5bffd6af43ff54aaf47e4330dc118c71d61ec02\n\n# tcId = 61\n# invalid R\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff463a1908382e7eb7693acef9884f7cf931a215e0791876be22c631a59881fd0e\n\n# tcId = 62\n# all bits flipped in R\nmsg = 313233343030\nresult = invalid\nsig = 9a83eb6dbfd54a31fc1d3c580fc7b2fae4630ca8f0edf803873e433673d7e3d40e94254586cb6188c5386c3febed477cb9a6cb29e3979adc4cb27cf5278fb70a\n\n# tcId = 63\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab067654bce3832c2d76f8f6f5dafc08d9339d4eef676573336a5c51eb6f946b31d\nflags = SignatureMalleability\n\n# tcId = 64\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab05439412b5395d42f462c67008eba6ca839d4eef676573336a5c51eb6f946b32d\nflags = SignatureMalleability\n\n# tcId = 65\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab02ee12ce5875bf9dff26556464bae2ad239d4eef676573336a5c51eb6f946b34d\nflags = SignatureMalleability\n\n# tcId = 66\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0e2300459f1e742404cd934d2c595a6253ad4eef676573336a5c51eb6f946b38d\nflags = SignatureMalleability\n\n# tcId = 67\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b32d\nflags = SignatureMalleability\n\n# tcId = 68\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b34d\nflags = SignatureMalleability\n\n# tcId = 69\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d\nflags = SignatureMalleability\n\n# tcId = 70\n# checking malleability \nmsg = 54657374\nresult = invalid\nsig = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0679155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d\nflags = SignatureMalleability\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c]\n[key.sk = 0a23a20072891237aa0864b5765139514908787878cd77135a0059881d313f00]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c]\n\n# tcId = 71\nmsg = \nresult = valid\nsig = 5056325d2ab440bf30bbf0f7173199aa8b4e6fbc091cf3eb6bc6cf87cd73d992ffc216c85e4ab5b8a0bbc7e9a6e9f8d33b7f6e5ac0ffdc22d9fcaf784af84302\n\n# tcId = 72\nmsg = 78\nresult = valid\nsig = 481fafbf4364d7b682475282f517a3ac0538c9a6b6a562e99a3d8e5afb4f90a559b056b9f07af023905753b02d95eb329a35c77f154b79abbcd291615ce42f02\n\n# tcId = 73\nmsg = 54657374\nresult = valid\nsig = 8a9bb4c465a3863abc9fd0dd35d80bb28f7d33d37d74679802d63f82b20da114b8d765a1206b3e9ad7cf2b2d8d778bb8651f1fa992db293c0039eacb6161480f\n\n# tcId = 74\nmsg = 48656c6c6f\nresult = valid\nsig = d839c20abfda1fd429531831c64f813f84b913e9928540310cf060b44c3dbf9457d44a7721fdc0d67724ff81cb450dd39b10cfb65db15dda4b8bf09d26bd3801\n\n# tcId = 75\nmsg = 313233343030\nresult = valid\nsig = 9bbb1052dcfa8ad2715c2eb716ae4f1902dea353d42ee09fd4c0b4fcb8b52b5219e2200016e1199d0061891c263e31b0bc3b55673c19610c4e0fa5408004160b\n\n# tcId = 76\nmsg = 000000000000000000000000\nresult = valid\nsig = f63b5c0667c7897fc283296416f7f60e84bbde9cbd832e56be463ed9f568069702b17a2f7c341ebf590706a6388ac76ac613c1675ec0", + "f2c7118f2573422a500b\n\n# tcId = 77\nmsg = 6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161\nresult = valid\nsig = 1bc44d7001e6b5b9090fef34b2ca480f9786bbefa7d279353e5881e8dfb91b803ccd46500e270ef0109bfd741037558832120bc2a4f20fbe7b5fb3c3aaf23e08\n\n# tcId = 78\nmsg = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60\nresult = valid\nsig = ea8e22143b02372e76e99aece3ed36aec529768a27e2bb49bdc135d44378061e1f62d1ac518f33ebf37b2ee8cc6dde68a4bd7d4a2f4d6cb77f015f71ca9fc30d\n\n# tcId = 79\nmsg = ffffffffffffffffffffffffffffffff\nresult = valid\nsig = 8acd679e1a914fc45d5fa83d3021f0509c805c8d271df54e52f43cfbd00cb6222bf81d58fe1de2de378df67ee9f453786626961fe50a9b05f12b6f0899ebdd0a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a]\n[key.sk = 9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a]\n\n# tcId = 80\n# draft-josefsson-eddsa-ed25519-02: Test 1\nmsg = \nresult = valid\nsig = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c]\n[key.sk = 4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321003d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c]\n\n# tcId = 81\n# draft-josefsson-eddsa-ed25519-02: Test 2\nmsg = 72\nresult = valid\nsig = 92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025]\n[key.sk = c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025]\n\n# tcId = 82\n# draft-josefsson-eddsa-ed25519-02: Test 3\nmsg = af82\nresult = valid\nsig = 6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e]\n[key.sk = f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e]\n\n# tcId = 83\n# draft-josefsson-eddsa-ed25519-02: Test 1024\nmsg = 08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0\nresult = valid\nsig = 0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 8fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a]\n[key.sk = d7ad3f1f6bbe0477c3c357a806a19eb41ae3f94025035bc87f281f8ee9fc0e34]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321008fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a]\n\n# tcId = 84\n# Random test failure 1\nmsg = b0729a713593a92e46b56eaa66b9e435f7a09a8e7de03b078f6f282285276635f301e7aaafe42187c45d6f5b13f9f16b11195cc125c05b90d24dfe4c\nresult = valid\nsig = 7db17557ac470c0eda4eedaabce99197ab62565653cf911f632ee8be0e5ffcfc88fb94276b42e0798fd3aa2f0318be7fc6a29fae75f70c3dcdc414a0ad866601\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 2a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082]\n[key.sk = ad9b22793336fcdac10e136c4deea599be187a38eef91c1cf7c7a4ec884dda08]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321002a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082]\n\n# tcId = 85\n# Random test failure 2\nmsg = a8546e50ba31cae3234310d32672447be213fad91a227a19669c53d309b959782b0e6b71f8791fdb470043b58122003157d2d96a43a6cbd7d3a8d86bf4c97391883e268d50af80e1e6e12939c2bd50ca746cdadfad4edf1bda875299740724148efb1ebe73fb60088cda890317658627a5f7ab5a0c075d9d8f3f97b6492b35519e50ff6b38377432a7081f9176bb1c29a862deac1336ca20b097a47829cec10a6a7cec178eda2d12f6dc6c87f910454af0123555ba184e68804d9cced60fd5c8c90943e56599c8f0ba59a38491ba5e5a53460682474c07e40ca142983314fd762856bb1093f359da6eb0a756bd93a3160c10dd8feea6b97e7c6a17cb54bd5d7649c05c66d7bdee056671dfdaf689fa3945bb8e29a429f4bd5d355dce9687b06f01d5e33e3999f0e8\nresult = valid\nsig = 67d84d4c3945aaf06e06d524be63acbfb5dbb1988c4aea96a5ee9f7a9b9eecc29df4f66b8aa1d9e8607a58fb1ef0c2ad69aac005b4f58e34103344a9c8871a09\n\n# tcId = 86\n# Random test failure 24\nmsg = b477b0480bb84642608b908d29a51cf2fce63f24ee95\nresult = valid\nsig = 28fafbb62b4d688fa79e1ac92851f46e319b161f801d4dc09acc21fdd6780a2c4292b8c1003c61c2bcebe7f3f88ccc4bb26d407387c5f27cb8c94cf6ce810405\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051]\n[key.sk = 04a6553d68a9baef78a2175af375458eaa01cdb77350c61e282ef5f0c7116599]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051]\n\n# tcId = 87\n# Random test failure 3\nmsg = cd2212eddb0706f62c995cef958634f0cb7793444cbf4d30e81c27c41ebea6cb02607510131f9c015692dfd521b148841e9a2d3564d20ac401f6cb8e40f520fe0cafbeaa88840b83013369d879f013463fe52a13267aa0c8c59c45cde9399cd1e6be8cc64cf48315ac2eb31a1c567a4fb7d601746d1f63b5ac020712adbbe07519bded6f\nresult = valid\nsig = 24087d47f3e20af51b9668ae0a88ce76586802d0ec75d8c0f28fc30962b5e1d1a1d509571a1624ed125a8df92a6e963728d6b5de99200b8e285f70feb6f05207\n\n# tcId = 88\n# Random test failure 20\nmsg = 27d465bc632743522aefa23c\nresult = valid\nsig = c2656951e2a0285585a51ff0eda7e9a23c2dfd2ffa273aee7808f4604e8f9a8c8ea49e9fce4eb2d8d75d36b7238fe6fc13b6c5d9427dd58f8c6615d033c0bd0f\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e]\n[key.sk = c367c8d2ebeeecd70c1e8985b70c38", + "08b75657f243b21ba4f322792540e92257]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e]\n\n# tcId = 89\n# Random test failure 4\nmsg = ec5c7cb078\nresult = valid\nsig = d920d421a5956b69bfe1ba834c025e2babb6c7a6d78c97de1d9bb1116dfdd1185147b2887e34e15578172e150774275ea2aad9e02106f7e8ca1caa669a066f0c\n\n# tcId = 90\n# Random test failure 5\nmsg = 4668c6a76f0e482190a7175b9f3806a5fe4314a004fa69f988373f7a\nresult = valid\nsig = 4f62daf7f7c162038552ad7d306e195baa37ecf6ca7604142679d7d1128e1f8af52e4cb3545748c44ef1ff1c64e877e4f4d248259b7f6eb56e3ef72097dc8e0c\n\n# tcId = 91\n# Random test failure 8\nmsg = 5dc9bb87eb11621a93f92abe53515697d2611b2eef73\nresult = valid\nsig = deecafb6f2ede73fec91a6f10e45b9c1c61c4b9bfbe6b6147e2de0b1df6938971f7896c3ab83851fb5d9e537037bff0fca0ccb4a3cc38f056f91f7d7a0557e08\n\n# tcId = 92\n# Random test failure 10\nmsg = 7dcfe60f881e1285676f35b68a1b2dbcdd7be6f719a288ababc28d36e3a42ac3010a1ca54b32760e74\nresult = valid\nsig = 7f8663cf98cbd39d5ff553f00bcf3d0d520605794f8866ce75714d77cc51e66c91818b657d7b0dae430a68353506edc4a714c345f5ddb5c8b958ba3d035f7a01\n\n# tcId = 93\n# Random test failure 12\nmsg = 58e456064dff471109def4ca27fa8310a1df32739655b624f27e6418d34b7f007173f3faa5\nresult = valid\nsig = 6aab49e5c0bc309b783378ee03ffda282f0185cdf94c847701ff307a6ee8d0865411c44e0a8206f6a5f606107451940c2593af790ce1860f4c14ab25b2deae08\n\n# tcId = 94\n# Random test failure 15\nmsg = a1\nresult = valid\nsig = 1a74ed2cbdc7d8f3827014e8e6ecf8fd2698ac8f86833acccdd400df710fe0d6b0543c9cfa00d52bf024ab7ce0d91981944097233ec134d5c7abbd44bfd32d0d\n\n# tcId = 95\n# Random test failure 19\nmsg = 11cb1eafa4c42a8402c4193c4696f7b2e6d4585e4b42dcf1a8b67a80b2da80bc9d4b649fb2f35eaf1f56c426fd0b\nresult = valid\nsig = 14ceb2eaf4688d995d482f44852d71ad878cd7c77b41e60b0065fd01a59b054ee74759224187dbde9e59a763a70277c960892ef89fba997aba2576b2c54ba608\n\n# tcId = 96\n# Random test failure 25\nmsg = aa365b442d12b7f3c925\nresult = valid\nsig = 83c40ce13d483cc58ff65844875862d93df4bd367af77efa469ec06a8ed9e6d7905a04879535708ddf225567a815c9b941d405c98e918fd0c151165cea7fb101\n\n# tcId = 97\n# Random test failure 28\nmsg = 475f\nresult = valid\nsig = 71a4a06a34075f2fd47bc3abf4714d46db7e97b08cb6180d3f1539ac50b18ce51f8af8ae95ed21d4fa0daab7235925631ecea1fd9d0d8a2ba7a7583fd04b900c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a]\n[key.sk = 56c1e22d616cbb6dea869288b4b1c02bb98696583c2f6e650013a03e17049c62]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a]\n\n# tcId = 98\n# Random test failure 6\nmsg = 0f325ffd87e58131ffa23c05ea4579513b287fdba87b44\nresult = valid\nsig = 6669acf94667c5b541afe5307bde9476b13ae7e0e6058a772101ac8eb0a94331428eb4db0a2c68a9b6c1763b8624dab259b0876cdcfaeacc17b21a18e3fc010a\n\n# tcId = 99\n# Random test failure 21\nmsg = 5ffa\nresult = valid\nsig = 931e5152fcef078c22cc5d6a3a65f06e396289f6f5f2d1efa6340254a53526ef5dc6874eeddf35c3f50991c53cd02bf06313e37d93ee1f7022128ffa3b8f300b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10]\n[key.sk = b7d2f64276df417fed27d8e15b4e90f6fd93dace707294c338bd32bc4bbd8fdb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10]\n\n# tcId = 100\n# Random test failure 7\nmsg = ec5c7cb078\nresult = valid\nsig = 30490c28f806298225df62103521dcee047153912c33ab8ab8bbdd1ffabd70fd4fdb360f05be535b067d1cf4e78c2cb432206bf280aab3bd21aaa1cb894c5b06\n\n# tcId = 101\n# Random test failure 9\nmsg = 67484059b2490b1a0a4f8dee77979e26\nresult = valid\nsig = 4cd4f77ed473a6647387f3163541c67a1708a3c3bd1673247cb87f0cb68b3c56f04bfa72970c8a483efe659c87009ab4020b590b6641316b3deddb5450544e02\n\n# tcId = 102\n# Random test failure 11\nmsg = a020a4381dc9141f47ee508871ab7a8b5a3648727c4281ae9932376f23a8e1bcda0626b7129197d864178631ec89c4332dbb18\nresult = valid\nsig = 1e41a24fe732bd7cab14c2a2f5134ee8c87fcbd2e987e60957ed9239e5c32404d56977e1b4282871896cb10625a1937468e4dc266e16a9c1b8e9891177eca802\n\n# tcId = 103\n# Random test failure 14\nmsg = a25176b3afea318b2ec11ddacb10caf7179c0b3f8eabbfa2895581138d3c1e0e\nresult = valid\nsig = 2a833aadecd9f28235cb5896bf3781521dc71f28af2e91dbe1735a61dce3e31ac15ca24b3fc47817a59d386bbbb2ce60a6adc0a2703bb2bdea8f70f91051f706\n\n# tcId = 104\n# Random test failure 18\nmsg = a9e6d94870a67a9fe1cf13b1e6f9150cdd407bf6480ec841ea586ae3935e9787163cf419c1\nresult = valid\nsig = c97e3190f83bae7729ba473ad46b420b8aad735f0808ea42c0f898ccfe6addd4fd9d9fa3355d5e67ee21ab7e1f805cd07f1fce980e307f4d7ad36cc924eef00c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56]\n[key.sk = 7d597c3b7283929d07ed8f01f31d2596823e5e46ab226c7be4234d1a9dcaef37]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56]\n\n# tcId = 105\n# Random test failure 13\nmsg = e1cbf2d86827825613fb7a85811d\nresult = valid\nsig = 01abfa4d6bbc726b196928ec84fd03f0c953a4fa2b228249562ff1442a4f63a7150b064f3712b51c2af768d2c2711a71aabf8d186833e941a0301b82f0502905\n\n# tcId = 106\n# Random test failure 22\nmsg = 25\nresult = valid\nsig = e4ae21f7a8f4b3b325c161a8c6e53e2edd7005b9c2f8a2e3b0ac4ba94aa80be6f2ee22ac8d4a96b9a3eb73a825e7bb5aff4a3393bf5b4a38119e9c9b1b041106\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 2252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1]\n[key.sk = f401cee4bfb1732f0e9b8d8ba79469565c3115296141dbdf7e9c311a0ac1823b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321002252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1]\n\n# tcId = 107\n# Random test failure 16\nmsg = 975ef941710071a9e1e6325a0c860becd7c695b5117c3107b686e330e5\nresult = valid\nsig = af0fd9dda7e03e12313410d8d8844ebb6fe6b7f65141f22d7bcba5695a25414a9e54326fb44d59fb14707899a8aae70857b23d4080d7ab2c396ef3a36d45ce02\n\n# tcId = 108\n# Random test failure 23\nmsg = 80fdd6218f29c8c8f6bd820945f9b0854e3a8824\nresult = valid\nsig = e097e0bd0370bff5bde359175a11b728ee9639095d5df8eda496395565616edfe079977f7d4dc8c75d6113a83d6a55e6e1676408c0967a2906339b43337dcb01\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = c0a773110f975de3732355bb7ec7f0c41c091c0252966070205516693b992a4a]\n[key.sk = 3d658956410377d0644676d2599542412a4f3b0e4eadfb7f3f836615f42b18bc]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100c0a773110f975de3732355bb7ec7f0c41c091c0252966070205516693b992a4a]\n\n# tcId = 109\n# Random test failure 17\nmsg = \nresult = valid\nsig = 0280427e713378f49d478df6373c6cac847b622b567daa2376c839e7ac10e22c380ab0fa8617c9dcfe76c4d9db5459b21dc1413726e46cc8f387d359e344f407\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 54cda623245759ad6d43e620a606908befc633d60792bc7798447a0ef38e7311]\n[key.sk = bccb61323840c2a96fc36f7e54ea6c8e55f9d221f7f05791ed60025e06064439]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210054cda623245759ad6d43e620a606908befc633d60792bc7798447a0ef38e7311]\n\n# tcId = 110\n# Random test failure 26\nmsg = 27e792b28b2f1702\nresult = valid\nsig = 14d9b497c19b91d43481c55bb6f5056de252d9ecb637575c807e58e9b4c5eac8b284089d97e2192dc242014363208e2c9a3435edf8928fb1d893553e9be4c703\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 2362bac514d5fad33802642e979a1e82de6eb6f1bcbf6a5b304f2bb02b9e57fe]\n[key.sk = f2d3023b9c19e241748bc4039a7a43c595701f23675505015213a8a2a0274c1b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321002362bac514d5fad33802642e979a1e82de6eb6f1bcbf6a5b304f2bb02b9e57fe]\n\n# tcId = 111\n# Random test failure 27\nmsg = eef3bb0f617c17d0420c115c21c28e3762edc7b7fb048529b84a9c2bc6\nresult = valid\nsig = 242ddb3a5d938d07af690b1b0ef0fa75842c5f9549bf39c8750f75614c712e7cbaf2e37cc0799db38b858d41aec5b9dd2fca6a3c8e082c10408e2cf3932b9d08\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 037b55b427dc8daa0f80fcebaf0846902309f8a6cf18b465c0ce9b6539629ac8]\n[key.sk = 12fc31c40d5a7af71e05424623ba970b670cf6ecb44cda6120210e6370245ddb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100037b55b427dc8daa0f80fcebaf0846902309f8a6cf18b465c0ce9b6539629ac8]\n\n# tcId = 112", + "\n# Test case for overflow in signature generation\nmsg = 01234567\nresult = valid\nsig = c964e100033ce8888b23466677da4f4aea29923f642ae508f9d0888d788150636ab9b2c3765e91bbb05153801114d9e52dc700df377212222bb766be4b8c020d\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 9c0007698f177998a7666c7cf7973e2b88e9c4946e33804a7bbe8968d2394b2e]\n[key.sk = e54bcc4ce95db48072c7b49575617dd1f9403b072105259ca06d8d01530d07fb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321009c0007698f177998a7666c7cf7973e2b88e9c4946e33804a7bbe8968d2394b2e]\n\n# tcId = 113\n# Test case for overflow in signature generation\nmsg = 9399a6db9433d2a28d2b0c11c8794ab7d108c95b\nresult = valid\nsig = 176065c6d64a136a2227687d77f61f3fca3b16122c966276fd9a8b14a1a2cea4c33b3533d11101717016684e3810efbea63bb23773f7cc480174199abd734f08\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = ed3a6f9721dc9729c1f76635bcf080d7036e1c2f0228654ccbbe1e738c17b963]\n[key.sk = de7f2bb12b875a79ccb057344b2867a2edb25dbc1ecfc8cb07c69e2dd3df3e02]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100ed3a6f9721dc9729c1f76635bcf080d7036e1c2f0228654ccbbe1e738c17b963]\n\n# tcId = 114\n# Test case for overflow in signature generation\nmsg = 7af783afbbd44c1833ab7237ecaf63b94ffdd003\nresult = valid\nsig = 7ca69331eec8610d38f00e2cdbd46966cb359dcde98a257ac6f362cc00c8f4fe85c02285fe4d66e31a44cadb2bf474e1a7957609eb4fe95a71473fe6699aa70d\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 4abfb535313705a6570018440cdec1a3ae33e51f352112fa6acbd0c6bc3ea859]\n[key.sk = ea792b7a9d420bf74f6a82a78e58a2cc94f3ab3eb931270611b1f8da75c3d60b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321004abfb535313705a6570018440cdec1a3ae33e51f352112fa6acbd0c6bc3ea859]\n\n# tcId = 115\n# Test case for overflow in signature generation\nmsg = 321b5f663c19e30ee7bbb85e48ecf44db9d3f512\nresult = valid\nsig = f296715e855d8aecccba782b670163dedc4458fe4eb509a856bcac450920fd2e95a3a3eb212d2d9ccaf948c39ae46a2548af125f8e2ad9b77bd18f92d59f9200\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 4f2162e6bf03a712db0efa418b7e7006e23871d9d7ec555a313885c4afd96385]\n[key.sk = eca28645f63646575ee2e4bdb36f51838142ce2474664c2b66ef054b37af6124]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321004f2162e6bf03a712db0efa418b7e7006e23871d9d7ec555a313885c4afd96385]\n\n# tcId = 116\n# Test case for overflow in signature generation\nmsg = c48890e92aeeb3af04858a8dc1d34f16a4347b91\nresult = valid\nsig = 367d07253a9d5a77d054b9c1a82d3c0a448a51905343320b3559325ef41839608aa45564978da1b2968c556cfb23b0c98a9be83e594d5e769d69d1156e1b1506\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 0717d75ce27ea181ed5a30e6456c649b5cf453a6b4c12cd3f9fd16b31e0c25cd]\n[key.sk = 728238602b7e6753b3f49eb0fc4cde38c7bb14ab58ddcaef2537275b13e99dd3]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321000717d75ce27ea181ed5a30e6456c649b5cf453a6b4c12cd3f9fd16b31e0c25cd]\n\n# tcId = 117\n# regression test for arithmetic error\nmsg = 26d5f0631f49106db58c4cfc903691134811b33c\nresult = valid\nsig = 9588e02bc815649d359ce710cdc69814556dd8c8bab1c468f40a49ebefb7f0de7ed49725edfd1b708fa1bad277c35d6c1b9c5ec25990997645780f9203d7dd08\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = db5b9eab7e84e5a13505865fa711c9c896c898609fc11fc9bc1e55028f9496df]\n[key.sk = dc4092d7809c6b070f2808c434267b6697428f4ab1e4626ab56a3059643be43c]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100db5b9eab7e84e5a13505865fa711c9c896c898609fc11fc9bc1e55028f9496df]\n\n# tcId = 118\n# regression test for arithmetic error\nmsg = 2a71f064af982a3a1103a75cef898732d7881981\nresult = valid\nsig = 2217a0be57dd0d6c0090641496bcb65e37213f02a0df50aff0368ee2808e1376504f37b37494132dfc4d4887f58b9e86eff924040db3925ee4f8e1428c4c500e\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7bac18f6d2625d3915f233434cda38a577247a7332a5170b37142a34644145e0]\n[key.sk = 38765b89ec56836ea4190fc957802b6a47167f9b5ef942e92652803b7de6abfd]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007bac18f6d2625d3915f233434cda38a577247a7332a5170b37142a34644145e0]\n\n# tcId = 119\n# regression test for arithmetic error\nmsg = bf26796cef4ddafcf5033c8d105057db0210b6ad\nresult = valid\nsig = 1fda6dd4519fdbefb515bfa39e8e5911f4a0a8aa65f40ef0c542b8b34b87f9c249dc57f320718ff457ed5915c4d0fc352affc1287724d3f3a9de1ff777a02e01\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 38ead304624abebf3e2b31e20e5629531e3fc659008887c9106f5e55adbbc62a]\n[key.sk = 97575308a490af0c145411dd16d519a073ef03c2e4a0a1cd6b5de2e881e5eabe]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210038ead304624abebf3e2b31e20e5629531e3fc659008887c9106f5e55adbbc62a]\n\n# tcId = 120\n# regression test for arithmetic error\nmsg = ae03da6997e40cea67935020152d3a9a365cc055\nresult = valid\nsig = 068eafdc2f36b97f9bae7fbda88b530d16b0e35054d3a351e3a4c914b22854c711505e49682e1a447e10a69e3b04d0759c859897b64f71137acf355b63faf100\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = e9bc95049af7e4817b17c402269ba5e767b7348757ac8002fec9e08390c0a9cf]\n[key.sk = ad129e89e0eec908df51adc227c8c4908a8095d75621536c8a28dca4b3c30dbb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100e9bc95049af7e4817b17c402269ba5e767b7348757ac8002fec9e08390c0a9cf]\n\n# tcId = 121\n# regression test for arithmetic error\nmsg = 489d473f7fb83c7f6823baf65482517bccd8f4ea\nresult = valid\nsig = 43670abc9f09a8a415e76f4a21c6a46156f066b5a37b3c1e867cf67248c7b927e8d13a763e37abf936f5f27f7a8aa290539d21f740efd26b65fd5ad27085f400\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = ee8155ca4e8fe7bc5bca5992044eab7f8c3c6a13db1176f42f46c29da5b064f4]\n[key.sk = 03ce643d6d341b7065bc9e70da8193451cf83ca7ff5a8640fd07af094640365a]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100ee8155ca4e8fe7bc5bca5992044eab7f8c3c6a13db1176f42f46c29da5b064f4]\n\n# tcId = 122\n# regression test for arithmetic error\nmsg = 1b704d6692d60a07ad1e1d047b65e105a80d3459\nresult = valid\nsig = 56388f2228893b14ce4f2a5e0cc626591061de3a57c50a5ecab7b9d5bb2caeea191560a1cf2344c75fdb4a085444aa68d727b39f498169eaa82cf64a31f59803\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = db507bfcc9576393f7157bb360532b05c5fcf2e764b690cc6698a4a30d349095]\n[key.sk = 581f593a5cd94594dc0f5dd142026a436a930e573391b7aeea6a8253eeef6ceb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100db507bfcc9576393f7157bb360532b05c5fcf2e764b690cc6698a4a30d349095]\n\n# tcId = 123\n# regression test for arithmetic error\nmsg = dc87030862c4c32f56261e93a367caf458c6be27\nresult = valid\nsig = 553e5845fc480a577da6544e602caadaa00ae3e5aa3dce9ef332b1541b6d5f21bdf1d01e98baf80b8435f9932f89b3eb70f02da24787aac8e77279e797d0bd0b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 994eaf03309d6ad9d95a656bc1744e2886f029023a3750b34f35086b3c7227f8]\n[key.sk = 6f207dc94b844d4dc71f982da8d9f3ae0b37b4623e441eca75ba62621c524d98]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100994eaf03309d6ad9d95a656bc1744e2886f029023a3750b34f35086b3c7227f8]\n\n# tcId = 124\n# regression test for arithmetic error\nmsg = 7f41ef68508343ef18813cb2fb332445ec6480cd\nresult = valid\nsig = bc10f88081b7be1f2505b6e76c5c82e358cf21ec11b7df1f334fb587bada465b53d9f7b4d4fec964432ee91ead1bc32ed3c82f2167da1c834a37515df7fe130e\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 127d37e406e0d83e4b55a09e21e8f50fb88af47e4a43f018cdebffc1948757f0]\n[key.sk = dea9bbb9fb20512fa67eea696afd786f3928265f5208aeaba638f3177d0db70e]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100127d37e406e0d83e4b55a09e21e8f50fb88af47e4a43f018cdebffc1948757f0]\n\n# tcId = 125\n# regression test for arithmetic error\nmsg = e1ce107971534bc46a42ac609a1a37b4ca65791d\nresult = valid\nsig = 00c11e76b5866b7c37528b0670188c1a0473fb93c33b72ae604a8865a7d6e094ff722e8ede3cb18389685ff3c4086c29006047466f81e71a329711e0b9294709\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d83ba84edfb4bec49f29be31d80a64b7c0b5a502438cdb1d0dd1e0e3e55786de]\n[key.sk = c99c52ae1e61f7c79a164ee4910fdcaa02946259ea5443f68b23d721d0472f63]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d83ba84edfb4bec49f29be31d80a64b7c0b5a502438cdb1d0dd1e0e3e55786de]\n\n# tcId = 126\n# regression test for arithmetic error\nmsg = 869a827397c585cf35acf88a8728833ab1c8c81e\nresult = valid\nsig = 0a", + "6f0ac47ea136cb3ff00f7a96638e4984048999ee2da0af6e5c86bffb0e70bb97406b6ad5a4b764f7c99ebb6ec0fd434b8efe253b0423ef876c037998e8ab07\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d3c9aa2f3d6ef217a166e8ae403ed436c37facbbe3beceb78df6eb439f8fa04a]\n[key.sk = d8aaad0749db159569a68b46048b3d3e8266e110150251c42806f0752a84e95b]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d3c9aa2f3d6ef217a166e8ae403ed436c37facbbe3beceb78df6eb439f8fa04a]\n\n# tcId = 127\n# regression test for arithmetic error\nmsg = 619d8c4f2c93104be01cd574a385ceca08c33a9e\nresult = valid\nsig = b7cbb942a6661e2312f79548224f3e44f5841c6e880c68340756a00ce94a914e8404858265985e6bb97ef01d2d7e5e41340309606bfc43c8c6a8f925126b3d09\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = d53280367c1c0b95ac4112218b92c6a71c51fb6312ce668de196c7d52a136155]\n[key.sk = e78d26ab5b726c9d4dfb1f634082abded90432a2fd18089c7c85253a5d2fc7d0]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100d53280367c1c0b95ac4112218b92c6a71c51fb6312ce668de196c7d52a136155]\n\n# tcId = 128\n# regression test for arithmetic error\nmsg = 5257a0bae8326d259a6ce97420c65e6c2794afe2\nresult = valid\nsig = 27a4f24009e579173ff3064a6eff2a4d20224f8f85fdec982a9cf2e6a3b51537348a1d7851a3a932128a923a393ea84e6b35eb3473c32dceb9d7e9cab03a0f0d\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 94ac2336ba97a476fb4c9f2b5563e4167ca292c6e99e422350a911ae3172c315]\n[key.sk = 8e7ca56e07f1438ac3615fd9ec77ae63679d0ec059b4595febf40be59d976a05]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210094ac2336ba97a476fb4c9f2b5563e4167ca292c6e99e422350a911ae3172c315]\n\n# tcId = 129\n# regression test for arithmetic error\nmsg = 5acb6afc9b368f7acac0e71f6a4831c72d628405\nresult = valid\nsig = 985b605fe3f449f68081197a68c714da0bfbf6ac2ab9abb0508b6384ea4999cb8d79af98e86f589409e8d2609a8f8bd7e80aaa8d92a84e7737fbe8dcef41920a\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = e1e7316d231f7f275bdf403360304da1509fdf1af1fd25ca214eaac0a289398f]\n[key.sk = e77525af5856ab9df5abb64e5312576b498cc27f61f266e21f382e0526d4e6fb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100e1e7316d231f7f275bdf403360304da1509fdf1af1fd25ca214eaac0a289398f]\n\n# tcId = 130\n# regression test for arithmetic error\nmsg = 3c87b3453277b353941591fc7eaa7dd37604b42a\nresult = valid\nsig = 1c8fbda3d39e2b441f06da6071c13115cb4115c7c3341704cf6513324d4cf1ef4a1dd7678a048b0dde84e48994d080befcd70854079d44b6a0b0f9fa002d130c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = fffbeea71215efaf9888fec2cc68edb3703ff11a66fd629b53cbda5eabc18750]\n[key.sk = 1f43235ad716f1beb754ab0f546dfa934488fdf7472b493d7cc3c60353005d24]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100fffbeea71215efaf9888fec2cc68edb3703ff11a66fd629b53cbda5eabc18750]\n\n# tcId = 131\n# regression test for arithmetic error\nmsg = 0a68e27ef6847bfd9e398b328a0ded3679d4649d\nresult = valid\nsig = 59097233eb141ed948b4f3c28a9496b9a7eca77454ecfe7e46737d1449a0b76b15aacf77cf48af27a668aa4434cfa26c504d75a2bcc4feac46465446234c0508\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 19ccc0527599cb032e0b4c4d74e60f13901768a99df041c3bc1bf6c0ef271169]\n[key.sk = 3977785b9f8c5320e51a3a16f8cc22c4f7e64857617f9550147fa35d685ca34f]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b657003210019ccc0527599cb032e0b4c4d74e60f13901768a99df041c3bc1bf6c0ef271169]\n\n# tcId = 132\n# regression test for arithmetic error\nmsg = 4e9bef60737c7d4dd10bd52567e1473a36d3573d\nresult = valid\nsig = 519105608508fe2f1b6da4cc8b23e39798b1d18d25972beed0404cec722e01ba1b6a0f85e99e092cca8076b101b60d4ac5035684357f4d0daacdc642da742a06\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 0e726e27047563aa0a1a9c2e085d8d26af2acba129d0869c65031e3e6cac329a]\n[key.sk = 1aa4415c5db0131bec6fa188d0c23d49a65bf795657153fae94777e3f19bcf54]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321000e726e27047563aa0a1a9c2e085d8d26af2acba129d0869c65031e3e6cac329a]\n\n# tcId = 133\n# regression test for arithmetic error\nmsg = cc82b3163efda3ba7e9240e765112caa69113694\nresult = valid\nsig = d8b03ee579e73f16477527fc9dc37a72eaac0748a733772c483ba013944f01ef64fb4ec5e3a95021dc22f4ae282baff6e9b9cc8433c6b6710d82e7397d72ef04\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = e77717b54a2b5e5bce5bccb8f0c5fdb5fd7df77ac254020fc9120dc0d4df4178]\n[key.sk = 0fb7680a50d3f2940077ea4dfcb7eb040a125c4f4b5dcefa16d3af968fc8e5de]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100e77717b54a2b5e5bce5bccb8f0c5fdb5fd7df77ac254020fc9120dc0d4df4178]\n\n# tcId = 134\n# regression test for arithmetic error\nmsg = 923a5c9e7b5635bb6c32c5a408a4a15b652450eb\nresult = valid\nsig = 26da61fdfd38e6d01792813f27840c8b4766b0faaed39d0ee898cb450d94a5d5f57e58b6a003d7f9b56b20561954c6edcf66492d116b8b5e91f205a3a6449d0b\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 6220972d3f7d150b36790d7d522384876d64d640cd9913186815e1629582ed36]\n[key.sk = e222c444d6bc8a4796a0d5a2d71d19b98845cc56e39caaf8233ea4c6b0704f09]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321006220972d3f7d150b36790d7d522384876d64d640cd9913186815e1629582ed36]\n\n# tcId = 135\n# regression test for arithmetic error\nmsg = 6f2f0245de4587062979d0422d349f93ccdc3af2\nresult = valid\nsig = 4adeaff7a58c5010a5a067feea0ae504d37b0c6a76c6c153e222f13409dff2df0fab69bc5059b97d925dc1b89e9851d7c627cb82d65585f9fd976124553f8902\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7b64a28c50ec7678a90e3e1a21522e30ac9db7b5215aea2bfb33bea037eab987]\n[key.sk = a89ea18476b9ad90cb14b8b1ff24777e4ebd015bc810a60785a9154dacf3be52]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007b64a28c50ec7678a90e3e1a21522e30ac9db7b5215aea2bfb33bea037eab987]\n\n# tcId = 136\n# regression test for arithmetic error\nmsg = 6e911edb27a170b983d4dee1110554f804330f41\nresult = valid\nsig = 4204d620cde0c3008c0b2901f5d6b44f88f0e3cb4f4d62252bf6f3cb37c1fb150a9ccb296afe5e7c75f65b5c8edd13dc4910ffe1e1265b3707c59042cf9a5902\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 724452210a9e4c994819229bf12bf84e95768a3a97c08d8d8f5f939a4cad34c5]\n[key.sk = 69b1da56cde8d1676c2a8c0e7f95c7d0bf60739efd1304dd2ccb02729d17a22c]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100724452210a9e4c994819229bf12bf84e95768a3a97c08d8d8f5f939a4cad34c5]\n\n# tcId = 137\n# regression test for arithmetic error\nmsg = b8cf807eea809aaf739aa091f3b7a3f2fd39fb51\nresult = valid\nsig = f8a69d3fd8c2ff0a9dec41e4c6b43675ce08366a35e220b1185ffc246c339e22c20ac661e866f52054015efd04f42eca2adcee6834c4df923b4a62576e4dff0e\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = bad265b294ed2f422cb6a141694086238fbfe987571aa765d8b4f3a24105aa01]\n[key.sk = b332265cf95595f0c90221593b5a2b3c574d60dc634ddff6186f0eed7980a383]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100bad265b294ed2f422cb6a141694086238fbfe987571aa765d8b4f3a24105aa01]\n\n# tcId = 138\n# regression test for arithmetic error\nmsg = 01a2b5f7fee813b4e9bd7fc25137648004795010\nresult = valid\nsig = 61792c9442bc6338ac41fd42a40bee9b02ec1836503d60ff725128c63d72808880c36e6190b7da525cbee5d12900aa043547dd14a2709ef9e49d628f37f6b70c\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 0aaee4b723db9b51ba7d22eb23eb8a76a5ac02f4fc9dd06f77bea42e1d37ec5a]\n[key.sk = faec9764b369df0ef10890dd022c502e551a3222b43e8429455496c76feea45d]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321000aaee4b723db9b51ba7d22eb23eb8a76a5ac02f4fc9dd06f77bea42e1d37ec5a]\n\n# tcId = 139\n# regression test for arithmetic error\nmsg = 0fbf5d47cb5d498feace8f98f1896208da38a885\nresult = valid\nsig = fa3cd41e3a8c00b19eecd404a63c3cb787cd30de0dfc936966cff2117f5aff18db6bef80fcfd8856f3fb2e9c3dc47593e9471103032af918feee638a33d40505\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 812344af15a91ba83c2c91e96f1727ac0f3c4c41385b9fa84efa399ada5168be]\n[key.sk = 4eb19e278f7a30a06a7d55e42c44775f4a81b7a45c0512aae026262e71770dac]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100812344af15a91ba83c2c91e96f1727ac0f3c4c41385b9fa84efa399ada5168be]\n\n# tcId = 140\n# regression test for arithmetic error\nmsg = 36e67c1939750bffb3e4ba6cb85562612275e862\nresult = valid\nsig = 97fbbcd7a1d0eb42d2f8c42448ef35a2c2472740556b645547865330d6c57068af377fced08aaf810c08cd3c43d296f1975710312e9334c98b485f831efa4103\n\n", + "[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 0ee5cb5597fbdf8dccc48b01485e39b33aa133b52d30d23740277267cfec3e3e]\n[key.sk = 1998d5949cab365a00f828e7d17b06c708d33fef0031d353a4e15bf7222a73b0]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321000ee5cb5597fbdf8dccc48b01485e39b33aa133b52d30d23740277267cfec3e3e]\n\n# tcId = 141\n# regression test for arithmetic error\nmsg = 13945c894c1d3fe8562e8b20e5f0efaa26ade8e3\nresult = valid\nsig = d7dbaa337ffd2a5fd8d5fd8ad5aeccc0c0f83795c2c59fe62a40b87903b1ae62ed748a8df5af4d32f9f822a65d0e498b6f40eaf369a9342a1164ee7d08b58103\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 9fba1de92b60b5b4703089763d0d6f9125e4dd7efae41f08a22882aef96892c4]\n[key.sk = 6164676114c66bd9887dac341c66209dc587ccf0cc5cd9baffdfac9295a00c4a]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321009fba1de92b60b5b4703089763d0d6f9125e4dd7efae41f08a22882aef96892c4]\n\n# tcId = 142\n# regression test for arithmetic error\nmsg = 4de142af4b8402f80a47fa812df84f42e283cee7\nresult = valid\nsig = 09a2ed303a2fa7027a1dd7c3b0d25121eeed2b644a2fbc17aa0c8aea4524071ede7e7dd7a536d5497f8165d29e4e1b63200f74bbae39fbbbccb29889c62c1f09\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = 7582ab1b52e1316e5c13671f43b39ca36b28133cd0832831bcddd0b0f23398cb]\n[key.sk = 4b0bd03a03b20069ccbcc214a7448473f4e7a491fa7ceb48ddbe24c83c4aa4bb]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b65700321007582ab1b52e1316e5c13671f43b39ca36b28133cd0832831bcddd0b0f23398cb]\n\n# tcId = 143\n# regression test for arithmetic error\nmsg = 563357f41b8b23b1d83f19f5667177a67da20b18\nresult = valid\nsig = e6884a6e6b2e60a0b5862251c001e7c79d581d777d6fc11d218d0aecd79f26a30e2ca22cc7c4674f8b72655bc4ee5cb5494ca07c05177656142ac55cc9d33e02\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = dd2d678bae222f3fb6e8278f08cc9e1a66339c926c29ac0a16f9717f5ee18cd8]\n[key.sk = 2fce7870be1f392d21fb1d2350ec7877db8aa99b359fe5bdd5338ff35a791d1c]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100dd2d678bae222f3fb6e8278f08cc9e1a66339c926c29ac0a16f9717f5ee18cd8]\n\n# tcId = 144\n# regression test for arithmetic error\nmsg = 931bbf9c877a6571cf7d4609fc3eb867edd43f51\nresult = valid\nsig = 6124c206d864507ea5d984b363b4cf583314db6856a45ded5e61eebff4d5e337e0b4c82b445ae2e52d549d2d961eace2ea01f81158e09a9686baa040db65ad08\n\n[key.curve = edwards25519]\n[key.keySize = 255]\n[key.pk = ccbe7cb2e4bc215cee2f885e1d22f7e0d582b2bbbd782c104e548b152d26fc69]\n[key.sk = a9ace42195ddbb3a16f366b24dd9d37a8a043ed2e6001f54652296750379367d]\n[key.type = EDDSAKeyPair]\n[keyDer = 302a300506032b6570032100ccbe7cb2e4bc215cee2f885e1d22f7e0d582b2bbbd782c104e548b152d26fc69]\n\n# tcId = 145\n# regression test for arithmetic error\nmsg = 44530b0b34f598767a7b875b0caee3c7b9c502d1\nresult = valid\nsig = cfbd450a2c83cb8436c348822fe3ee347d4ee937b7f2ea11ed755cc52852407c9eec2c1fa30d2f9aef90e89b2cc3bcef2b1b9ca59f712110d19894a9cf6a2802\n\n", }; -static const size_t kLen75 = 48818; +static const size_t kLen108 = 61255; -static const char *kData75[] = { - "# Imported from Wycheproof's third_party/wycheproof_testvectors/kwp_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: KWP\n# Generator version: 0.4.12\n\n[keySize = 128]\n\n# tcId = 1\nct = 8cd63fa6788aa5edfa753fc87d645a672b14107c3b4519e7\nkey = 6f67486d1e914419cb43c28509c7c1ea\nmsg = 8dc0632d92ee0be4f740028410b08270\nresult = valid\n\n# tcId = 2\nct = e8bac475d1429034b32f9bdeec09a37f9b3704028f1e0270\nkey = a0b17172bb296db7f5c869e9a36b5ce3\nmsg = 615dd022d607c910f20178cbdf42060f\nresult = valid\n\n# tcId = 3\nct = 4c8bcd601b508ef399f71b841294497a4493c4a0014c0103\nkey = 0e49d571c19b5250effd41d94bde39d6\nmsg = f25e4de8caca363fd5f29442eb147b55\nresult = valid\n\n# tcId = 4\n# wrapped key is longer than wrapping key\nct = 9e4510cc84c4bd7abab0a8a5d7f1e6ff3e6777ca2dff9be7e223652239fe57d8\nkey = e0e12959109103e30ae8b5684a22e662\nmsg = dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e\nresult = acceptable\n\n# tcId = 5\n# wrapped key is longer than wrapping key\nct = 8fbf39ae583bd4efa7a3e8f7b86870b34766ae7d8923a8e97b0cd289ad98cacb\nkey = dd583d9f1059861430ec8b5d8a180e9b\nmsg = f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487\nresult = acceptable\n\n# tcId = 6\n# wrapped key is longer than wrapping key\nct = df2fbe5fa86418edc7b5b04a4aea724aca17e88cedc84ca8b0b0f048e64590cb\nkey = faf5ccfae42b43cee2c5f0f3177a7c5d\nmsg = 4e02084833660c463830483b36dab866c64c8cf7429cac3d\nresult = acceptable\n\n# tcId = 7\n# wrapped key is longer than wrapping key\nct = 67f8edf57f84ea0a35b35511d67d3f299c9984b2c07d3809c3d7f5f45091f1a8fbb937ed447677f6\nkey = c2b9d23f2831ddcdeb456853d4014db9\nmsg = f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907\nresult = acceptable\n\n# tcId = 8\n# wrapped key is longer than wrapping key\nct = 60d55a22ba7dbd7d8f317388e01e6be561d15d29f85c566f1259aa7e7dc3d5d30e0ef5f4c6267553\nkey = 620a08f320cdedbf7ae551add348d95e\nmsg = cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291\nresult = acceptable\n\n# tcId = 9\n# wrapped key is longer than wrapping key\nct = d78a8291108f0f2d8be0ec10ec08240bf4d3021f0a5ed7faba0748db73762f34a0504bd373212df2\nkey = ed089ac274f8c7cea2415671a94b5e53\nmsg = 6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299\nresult = acceptable\n\n# tcId = 10\n# Round counter overflows 256\nct = 9341221aca1c647e2afc2bdd9cf4ed6e60058eb0a84cb3fc2daf3a87d9fad0a1f8268b27aaf7201d705e72f7e2240309ad98742094e3f1c99b7faa9ae181b441f5004b8bc93cdd4160d403d0884749a3c379d47c112a45788c05c2106c98f59758d393e04c880691b0e8683a12df7f876e1e1f68b4acbae9cc8310b34d59ccf4617cee72e845df1e0e32e5b4938f2923d55f1bb5156dd8c787401e6ef241ea4073d0a59ddfcd7a53db5d89b480b030cfb9084ea8479b964f090bb612d5251eee9ef8870a45f1e76fd24abdd9b350fe148b15a4cfeb032d57b5743b3548a7ce9eec8e21a31ce832530edfd1cffd9bb37369e6463c6b373ab60d80b0a2677e92e658f7daf2a5234b7312bf2d967cd0bc809e9be2f706ae63bd632fd611f161e48ee19677f3243aa0e91f6651a1cef62feff7a72eedf830bae1dc6d89e55ccb5e6f97889c6266f7d3f2eb0aea6c8c42200febccc5916825368adc87e04e835de06fd7bc2805c219e7f0b6252563f29969b1f30cfa1a8da4b90ae7534fb849d068a7e77de7360f8af173\nkey = b6121acad51038e11873aaa7e6c7be06\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\n\n# tcId = 11\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = \nresult = acceptable\n\n# tcId = 12\n# wrapping small key\nct = 09bcbab50b8dd45ad83412e2919030d3\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 4c\nresult = acceptable\n\n# tcId = 13\n# wrapping small key\nct = 0cbe852cdce4f0b5333366f446b2b1c5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = be52\nresult = acceptable\n\n# tcId = 14\n# wrapping small key\nct = a9dc66e03435ab3d4f97ff66f2c911a3\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 2d5244\nresult = acceptable\n\n# tcId = 15\n# wrapping small key\nct = 1b970c8ecb4187447e60e6083da03086\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 6c3d3b4c\nresult = acceptable\n\n# tcId = 16\n# wrapping small key\nct = 0344f7b34ab8ef28aaa843f276b0b3d5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 0412ab3ec6\nresult = acceptable\n\n# tcId = 17\n# wrapping small key\nct = 17356c7148334ca1a24aab7e82a66e18\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8ae08938929c\nresult = acceptable\n\n# tcId = 18\n# wrapping small key\nct = 1db7510a55591a455d9f8167e6db3c88\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 7c8dfbb68d72af\nresult = acceptable\n\n# tcId = 19\n# wrapping small key\nct = 936fe58b629ea6ec158145218f2361c7\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 536f8f83b64771c1\nresult = acceptable\n\n# tcId = 20\n# wrapping small key\nct = 6787816804b3127d0ca4073f1dba5c4d3db1ec9c227e6556\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8571f282b18b64ec5e\nresult = acceptable\n\n# tcId = 21\n# wrapping small key\nct = 34131c3bfcc48af15eea8672e52927b462f81d5ba0e6260f\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8ada889862813e364c4d\nresult = acceptable\n\n# tcId = 22\n# wrapping small key\nct = 4d1ec9287cd4dd378b9aefee79d4ed35bcb98ad9fa9fe529\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = f9c56e8058758a5c7c2baa\nresult = acceptable\n\n# tcId = 23\n# wrapping small key\nct = 7209f5b6bd5d4916f4995d280e9aa89edd5e96e3c9283ad2\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 7c7dbc83fa62206a521ed4ad\nresult = acceptable\n\n# tcId = 24\n# wrapping small key\nct = d85a1efc6ab3a40948f723d9810a5deb019b3ce0208a0d94\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = a6614daf00df6d14f50388bad5\nresult = acceptable\n\n# tcId = 25\n# wrapping small key\nct = 43509b5df3688b6e44c1a994592f4c03da34712f886e63d5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 450580a47d7008321496bfb82f48\nresult = acceptable\n\n# tcId = 26\n# wrapping small key\nct = 16e369351c40f220d3fb1197f35da652a3a40ca3b1e99bfb\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 9efd21e13855eea8907afdcd8935f4\nresult = acceptable\n\n# tcId = 27\n# Modified IV\nct = 82af032f5389caa503147d2825336eab84816fb6f8ae6df4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 28\n# Modified IV\nct = 4e00a9eeef87eb6d7be4ec46204d94006c216d5177d2a83c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 29\n# Modified IV\nct = d3dc6c3b4707a08039d621879caf419b9895482fff7bdcd0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 30\n# Modified IV\nct = 09d3bfc3c9c5af2b2951b06406f7ea4d84e9c37402637e2c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 31\n# Modified IV\nct = 3396679a4d87caf7ce7eb4707ba1c6526728f5a973191713\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 32\n# Modified IV\nct = ec637d90d945e92929c1c873d9aa9c47bc7b172237319d15\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 33\n# Modified IV\nct = 748f373d48d8590e2216b294b9ef94860dbb6b0b0ab625c5\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 34\n# Modified IV\nct = 61d7c584197f257caf2583e444896f1d3ba12509b1ef725b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 35\n# Modified IV\nct = 7f8cda973fe58b484b120fc710b520c5636057629795f89a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 36\n# Modified IV\nct = ccea198029edb9d848d6ca76667b666b1dbebd1e4b1faa8d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 37\n# Modified IV\nct = ee08cb9d20a98b88b2d8f0e39acf34219d105dc14afbe364\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nm", - "sg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 38\n# Modified IV\nct = 6782992bf8cff068cf41341dd2ca04adedea92e846f74411\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 39\n# Modified IV\nct = 7ed35d0c08042dd56bb5df78056ecd21b8c797d36f57aaec\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 40\n# Modified IV\nct = 37e3b4cefee648766a8efe73d6af12812eded603ab7141bb\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 41\n# Modified IV\nct = fe73777d8992e07eef0d053ad5ec0bf8243fc7e0bc2b405b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 42\n# Modified IV\nct = 39292c91b6b826d47d502043c3ba4f41e2ce32960a0291b5\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 43\n# Modified IV\nct = 36ef8fc13d0f1f5745e3939877b62b8ecba2f5f0b19f9e90\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 44\n# Modified IV\nct = 7255c4eacb4105a68095e9e5b5a4bd8f9623a0da5c6fc230\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 45\n# Modified IV\nct = ea26eec89a46ff1a628834c7247a8e4e45d8a8d3229e26cc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 46\n# Modified IV\nct = 508593fa85a8effd27c8a225981978fcec6e992eb488c9c2\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 47\n# Modified IV\nct = b8a4cb22f15529864d4ced8e8abae69752a9045a084dfc3f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 48\n# Modified IV\nct = a0a6bf5e47e89706932b1057b680c3c81dc4d9d0b4f9153b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 49\n# Modified IV\nct = 11f3af4ed30e77520517c880f1d0c272a89a968dc697cb5a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 50\n# Modified IV\nct = 6fc912a0bda73bacfa93db4002f18f349fa30f22f7a95ab9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 51\n# RFC 3349 padding\nct = 3731038571c35f7dcc55e48892de353e54c079b89774bbfd\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 52\n# Invalid encryption\nct = d85c6bfd092df1aeae5a548e47aa7681\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 53\n# padding too long\nct = 7a92427387f5587ee825d1ffa011c40286844ecdadce31cd9678338694ea2682\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 54\n# padding too long\nct = a437d354606ae752894feb62c8def7d17046d8e47f9aed755fba48b3a3009e3ff67d34e26a779064\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 55\n# incorrectly encoded length\nct = e8d240d64f16d1522ae2ded42ced257dfec158ff2fe1467d\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 56\n# length = 2**32-1\nct = 6d1bfda356b7b954e7aaccc6df953322f75be95947b02b30\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 57\n# length = 2**32-1\nct = 17dbf878ef4076cfcaba5f81d7b123d7\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 58\n# length = 2**31-1\nct = 75c23e253478037802fae0f86af9c78d4e4d9be0c3bff89f\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 59\n# length = 2**31 + 16\nct = 55717658c6a35e15ee36c66cce91083b63091f51525c0b51\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 60\n# data is incorrectly padded\nct = 8ede88a52ccb8a6d617456955a9f04c94d87696125ded87eebe3e97e185496d9\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 61\n# data is incorrectly padded\nct = 5b4a8f1abffa51676ac8b5ddf9366c12\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 62\n# length = 0\nct = 205cc6dd9592da0ebff6b4b48a0c450eeaeb11a60d33f387\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 63\n# RFC 3349 padding with incorrect size\nct = 908a68b0d2054e199220d37c34a2e136\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 64\n# length = 9\nct = f84bdb15045cee3a8a0f3ed2f07c1771\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 65\n# length = 16\nct = 7592b1ee6ee92c9467db366adcfa65bb\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 66\n# length = 2**31 + 8\nct = db93a1db3b5babc80a304d527682c1ef\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n[keySize = 192]\n\n# tcId = 67\nct = 5c117a678223cfe5ee691503061e7ab1e5f720e005171b32\nkey = f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe\nmsg = 9adbc00c710b1101bdf6a4ed65b32d72\nresult = valid\n\n# tcId = 68\nct = 6a7f9e03b6f379c56da3a56d8f32eba515454a91fd417449\nkey = b713f6b7814f98894d7b153974684359f1460213eb74be68\nmsg = 78585f0c49922e82caf17ebc3721b4db\nresult = valid\n\n# tcId = 69\nct = 764097f5ee8236bc0d93bbcea139a652f4b211cc33a61ac9\nkey = 13ecf423211caa334ba6db37259a535c20de8ad10fc8c432\nmsg = 4fc75d0f221e22408a37e11265d49a05\nresult = valid\n\n# tcId = 70\nct = 04b83ec803a75bbcb2f87fc6f488a4ccc1827b412483070eed195b6f0048ccbe\nkey = 4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1\nmsg = f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5\nresult = valid\n\n# tcId = 71\nct = 46ab71f032cb1ccbcc7447a5183574268c0167a26a93fe8422bf284417aa93ea\nkey = b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e\nmsg = 0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a\nresult = valid\n\n# tcId = 72\nct = 47ca298ee47b1b755a499129347e11e7a25754ccb6c2689e8eff270e98c81d18\nkey = f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000\nmsg = 241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea\nresult = valid\n\n# tcId = 73\n# wrapped key is longer than wrapping key\nct = ecac4c91758e1ae7bb010c34f4c5f99a3d728b9fa92cb778d3fe80d777a20d3de85ef46e7a0c6a6a\nkey = 1639f9f81e53e2eeb677a249e5eced3af108971301601a7b\nmsg = ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691\nresult = acceptable\n\n# tcId = 74\n# wrapped key is longer than wrapping key\nct = 39b7326a44eaed08bffbd4aeaf3e2c3f899c1fd049384ed7b3eb92b788c6449acd6385f0bb18cf28\nkey = 1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0\nmsg = 50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380\nresult = acceptable\n\n# tcId = 75\n# wrapped key is longer than wrapping key\nct = 3d2e9f39c7b13e9585227c4344fbe596f92b002456616f137deacc6a8c941649ce294bb2695c1807\nkey = 3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771\nmsg = 65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf\nresult = acceptable\n\n# tcId = 76\n# Round counter overflows 256\nct = d6aacfb52c26baae78c2f54259a4e4168f817064344e2ba8fbfa7fae9f1fd69bd5bc5c1e20a6101b4a7119cbce028e25a9e93d29ee260c4e609baedee788411c2afe60218ce1b0d28b9c29b941251fdcbac3009d59040a0337b8b4a3a020c6d8f310cba63db046d8f36b64c9092e75cee463fc7692ef56bed395c4579da0ecb02129e45ad8a7f116aac6170204888e40693f017a6a0a7dd3962004e60db3a9b6c8b7614a467ccb799bce1ba83f5c0921f1e52bb3909bc0486ec0eaea736498f3ba520a519c3ddf491307958620b737613417b15b438b80b43189baa455031f5771502002ea170c767b33d247feebce62e606f2262537f85f18d1951cc75cedef291c6a501cb1778586249b58156eb8d7283a3f508ee8bcc1206d77bbd6892fe74b865bfc02a8f07223087a6c1e50a41b7cf5f6ee04bd07766b2e5b34c4a7666b0ce06f670e6434a59fb74e0df36c91d94e5e8b721e53e09b6f6504c5d515492a373fcc348a63122cc6e4716e0e1a543d038c6f7731199f691780a8a655cca6718e3dc56e815b3669\nkey = b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1\nmsg = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\n\n# tcId = 77\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = \nresult = acceptable\n\n# tcId = 78\n# wrapping small key\nct = 52c7f388d0d4237afaa29f2b94723475\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = a3\nresult = acceptable\n\n# tcId = 79\n# wrapping small key\nct = 833431ce8799be69b36aafe3f38d9dac\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 594b\nresult = acceptable\n\n# tcId = 80\n# wrapping small key\nct = 31674f46b989f6ead582c70dedc8c6b9\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 72ab34\nresult = acceptable\n\n# tcId = 81\n# wrapping small key\nct = 80535172d2a498aa31601d70fdca9dea\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = d4d9460f\nresult = acceptable\n\n# tcId = 82\n# wrapping small key\nct = 56232300dd7b2a71d2328b6df47af8e3\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 643972e552\nresult = acceptable\n\n# tcId = 83\n# wrapping small key\nct = e27e08efe39adbbad8d300b87be2c258\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = f3cdb73d2561\nresult = acceptable\n\n# tcId = 84\n# wrapping small key\nct = 8f90942cdab33e58b24a23ad7efb7538\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 7b0b53b6429e14\nresult = acceptable\n\n# tcId = 85\n# wrapping small key\nct = 0ebaf23c858015d3bda5b8d908db6049\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 6b2393773e6d1378\nresult = acceptable\n\n# tcId = 86\n# wrapping small key\nct = d56f89977b8eff511158edad6b993007189e5a4b8c0e2faf\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 2c52d6639e769960e8\nresult = acceptable\n\n# tcId = 87\n# wrapping small key\nct = dd889475a76733849f59bed49a15d4315bdb5ba00dc63470\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 707c9356216d69c69048\nresult = acceptable\n\n# tcId = 88\n# wrapping small key\nct = 1a9b3369239b0f40a8dc5bd8d965caf7431445799337b99b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 615f6fa79e1847e7359a8a\nresult = acceptable\n\n# tcId = 89\n# wrapping small key\nct = 5232f8f6679a17d3303b0bd72b06b56b5089e80372dc295b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 7f5e999168ec60624426cbb1\nresult = acceptable\n\n# tcId = 90\n# wrapping small key\nct = e5544361c60980f3d38f2d8820a150f48f49ef3f9184b29f\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 3f93aaf4463775baf6c0c975ae\nresult = acceptable\n\n# tcId = 91\n# wrapping small key\nct = 55396065905915ec914b8d1efbf471e37d283fc2c1496b49\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = fefcf10c976309b2beb085771e50\nresult = acceptable\n\n# tcId = 92\n# wrapping small key\nct = d90376be302a24c541bd6d96094f0025e3d73888391b4306\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 6854354d0099f7eff740b0587140b3\nresult = acceptable\n\n# tcId = 93\n# Modified IV\nct = eee27510be39cc88379459420f3773642a423ac1ff0cfb84\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 94\n# Modified IV\nct = 765df3fa1aca6f13268ba79f8659807049a313a0308b643e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 95\n# Modified IV\nct = 71346c17a2718cb7c357e3af2b2d0c3e29b7e02317926746\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 96\n# Modified IV\nct = 55fd49ba081fdf72896068c5a968e2b3c4a473786a2e12c2\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 97\n# Modified IV\nct = 133c66fcbf0e9d5139eff3fcb494b672d72bb622d7015c4b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 98\n# Modified IV\nct = 8439244f27470e5f1f294cfa22ef5412675d7fbbd92ff016\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 99\n# Modified IV\nct = 4265bdb7d8ea30d9a51e5f48b7ac5487e0c95f154ea8baeb\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 100\n# Modified IV\nct = 31afcca8ff2b8806408c3460181ee5a96bbaf51d133211be\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 101\n# Modified IV\nct = 196f2a6eccb5368fe6a3f2fa0874d8fc9b3b52484e2d6351\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 102\n# Modified IV\nct = 8dc73d363fdb32f6e0ff830c2a48db5815f66d0922694c74\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 103\n# Modified IV\nct = e90022b9da998b4a30c91c1bd1a1f8ca05a52432867e5e78\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 104\n# Modified IV\nct = c9898a1b70bd718df45f1f3eca82eab1eaddb8ed7f2380dc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 105\n# Modified IV\nct = cc3f2cd6476eddbbfdc801b61174301688554f3db54c2903\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 106\n# Modified IV\nct = 23e15705e7b00d82bd052f0e0135ab7ac0dcce471ff2f1a7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 107\n# Modified IV\nct = b8e2862c0f9eae4f44ad99496e3ed62b3b9c4ce7ab5afb74\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 108\n# Modified IV\nct = 66d8a7769d81421efda456992f6c26cb17665fe080b0160e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 109\n# Modified IV\nct = a6a28bceb91551a395369ff09370658cc92b092855f417aa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 110\n# Modified IV\nct = 03ff601cf12b432078a2185590fb5d01e3441cf084bcb04a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 111\n# Modified IV\nct = e250d358d16d9fd20ad80a99656509229dca391aad3798f0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 112\n# Modified IV\nct = 643a17860b116ec74089bc574685a6328a3d7a07cd18b520\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 113\n# Modified IV\nct = 3e86e8128904f753c0f3fe3401ba36672966567725c4726c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 114\n# Modified IV\nct = d4b8cc849176b8344b0849490143d3512915171bd7d5759e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 115\n# Modified IV\nct = f84e0e6ff64e0b27b8b59b5b77c223023f0fea95433864ec\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 116\n# Modified IV\nct = 4030b4b0e9c1b1ce8e52f6bdb48088e65b05844307989c8b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 117\n# Modified IV\nct = ccb3b36c26b2d901b7f0765362d992b2d5089c2a7559b195becbe173780352fa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462b", - "e4f1\nresult = invalid\n\n# tcId = 118\n# Modified IV\nct = 4e5fc8dccaeec9b1c8a606a2bd7d7201eede62b9c2e939a5aba663a6a040e361\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 119\n# Modified IV\nct = af21f5e7f15a63c8ea6001cf024f281e7f44aedd68954564fc2bd146e96d793a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 120\n# Modified IV\nct = 3a4f571ffbf761d3f7d413172ee1e4ae2862baacfd5ab66dc685b9af8b70b538\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 121\n# Modified IV\nct = 273de386d5fef497f9487afd54c1c0fae8aacabf2af465caf352e2300d29266b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 122\n# Modified IV\nct = 16511743dc44199cee1dbf5045141b075f01ee13326c9faf2c74b7c99791830f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 123\n# Modified IV\nct = 370f92db00f7fc8a0e654318a5b3ff89a604034f421339201d79e0ec4d6088de\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 124\n# Modified IV\nct = e3edd0e84832f3615f6deefb444de3b9ec527741686029db91de0bb9b2a5c05d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 125\n# RFC 3349 padding\nct = 36ee480138edf11e144efcddd24d2c121749da6e4eab17fe\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 126\n# Invalid encryption\nct = 166beb49e97a4a9cc7b0ccf441ec15b5\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 127\n# padding too long\nct = 74ff3070a0a08471c001febb95a890f35159a9fe263719e40c2332ce5c58fada\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 128\n# padding too long\nct = 4f0b38eb328d1227b1e17c103a44a373ff67cee953c59eea26117947b5d3ef8932c8858b4f9fb47c\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 129\n# incorrectly encoded length\nct = 775dcabab9e4be8fd9963a4dc7a1447ef82888403882bdb6\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 130\n# length = 2**32-1\nct = 669803237fa10eabb4d2c6ad85bd9f7df5f4a33340eb0ce9\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 131\n# length = 2**32-1\nct = c788504d786f5c21b6671bf190657301\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 132\n# length = 2**31-1\nct = d079f60d3258f5e695d1a73db008ef38516b713eca2c0eaf\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 133\n# length = 2**31 + 16\nct = f1ae4b8865013b0fc63b463e664cec3c6031f61f2de82f43\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 134\n# data is incorrectly padded\nct = 8874e1b6e15e3ef6c461411a5f5ad0c8b05368cd5b3ee39b2b413d18a4eebfc9\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 135\n# data is incorrectly padded\nct = 890a3dab8439bb73b14c6e99c34f0b0e\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 136\n# length = 0\nct = d4f633aedeb89e349a98738b00ee42c90d583b16e986e49f\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 137\n# RFC 3349 padding with incorrect size\nct = b8b2a5b1d3280dcb4daeeed43f36509b\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 138\n# length = 9\nct = 4429cf64251d8a54a9d1389c01c30900\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 139\n# length = 16\nct = e5634eca10372c867c7f91ee813ec3f3\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 140\n# length = 2**31 + 8\nct = 9e517d4d0142e1544ba1e7419a696c21\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 141\n# RFC 3394\nct = 138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a\nkey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nmsg = c37b7e6492584340bed12207808941155068f738\nresult = valid\n\n# tcId = 142\n# RFC 3394\nct = afbeb0f07dfbf5419200f2ccb50bb24f\nkey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nmsg = 466f7250617369\nresult = valid\n\n[keySize = 256]\n\n# tcId = 143\nct = e3eab96d9a2fda12f9e252053aff15e753e5ea6f5172c92b\nkey = fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c\nmsg = 287326b5ed0078e7ca0164d748f667e7\nresult = valid\n\n# tcId = 144\nct = 9d2b42fb2fdb92c89fb0c3bcd9e1600d3334b4e35e791369\nkey = 0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22\nmsg = b40b6828729b456322a8d065abc0d081\nresult = valid\n\n# tcId = 145\nct = 5291e05abd55f5886850855e3f9f2f576b101acc222d6766\nkey = d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588\nmsg = 037b27b3dc95b19d15bd4091e320bfe1\nresult = valid\n\n# tcId = 146\nct = 4b1220525c537aec30ebcd562b694b4e9e2ccd819de22ef608b5d8090779d9de\nkey = 07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121\nmsg = faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071\nresult = valid\n\n# tcId = 147\nct = 67b2cbd68f6a208d647bdc5af7d0bccf6711a9e8fd0d9434363006addd4b9696\nkey = ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1\nmsg = dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825\nresult = valid\n\n# tcId = 148\nct = cfdbbd95f187508a488fe017c5e5d5a5975b68441d520e0e931922388e28784c\nkey = fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87\nmsg = 966b07047354966a703e79607b556032f4f596b7f9206f05\nresult = valid\n\n# tcId = 149\nct = b63b7e0fec7e315816233db6758fd3e744b9f6a40862bdf866487e53bcb950d8b2649269e51b4475\nkey = 38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd\nmsg = 80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a\nresult = valid\n\n# tcId = 150\nct = 837cfc316b49299edaf427e0988020ee876204b29d847669daab72c8660b0d860e9de3bd851198ff\nkey = c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7\nmsg = 3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270\nresult = valid\n\n# tcId = 151\nct = 0e9e2e9aa34bbf973d67bc534ac86fc5b5a5f9da5f026866177894ec6077a5c84501510e1bf4afb3\nkey = aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c\nmsg = 57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5\nresult = valid\n\n# tcId = 152\n# Round counter overflows 256\nct = 1c6b7e4003384f071bf29baea9098ad81da8e9862909329f52793b35d592c10dba15aa89400ea6403df8dcaffd0dbf5606303f109f79ad700ed5d5ad4e59950ce9ce5296c9d186a0df441973d1835f9ac000ad1a6797875c3a03161e9e3f5ea464032e407854eadca5a9e7a386bb0d29253e3804adefd8c0402cc8c40ac7f9041429cc0bb77a405b284baa2dae764ea09c654c0a82f2c5724221ba44e341503d3103dbc393c7702182f8cc2762ddbc873b7f84197709886a4b5df5b04ff9d21b79b50904af3c32128dfb9cde94fe1254d981e6ce3acfda82db1fa2badbccd2d29052a04a69ce1f5652f30496ea57edc7e3e885dd4a35ca15aba602bb4c888a8064da94c2ac5c12c11f608810af46fbb49c3e8f8771ff661f8d8dccd163d0c4a401b8b9aa74e68a56011cf78d21dc7541a974f9dad5ae27f8a26d1b0e76be2f86c6a21e9d1c2b5df3c8878a8bcae143b3af1f082afc52616eeadd2232926597b245d394931e02e493b0bc27a92d013e111694cac2c5a2a46e008a8498b5c31bb5ec35a4e9957e365d\nkey = b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1c02f9981ed49d16a\nmsg = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\n\n# tcId = 153\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = \nresult = acceptable\n\n# tcId = 154\n# wrapping small key\nct = 06c1e65ac0f385b4e8c400d229f39422\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = ae\nresult = acceptable\n\n# tcId = 155\n# wrapping small key\nct = c98da5936a1313eba1a6773b8060ea5e\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = c548\nresult = acceptable\n\n# tcId = 156\n# wrapping small key\nct = b2a77d9b837e87cdb7391e1df7cdaf14\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = f713b9\nresult = acceptable\n\n# tcId = 157\n# wrapping small key\nct = d8ecf20191f75aa36686298bfa5022ab\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = f375cbf7\nresult = acceptable\n\n# tcId = 158\n# wrapping small key\nct = 077362f50356fc7c54c70f9cb4306f7d\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = d9445094b1\nresult = acceptable\n\n# tcId = 159\n# wrapping small key\nct = a4bd6a116ad88a52aae3f0c0cb893f9b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = fab43e91ae15\nresult = acceptable\n\n# tcId = 160\n# wrapping small key\nct = 68a52de00ec0f1ebbedc38fee6be0c23\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 90735025797bd2\nresult = acceptable\n\n# tcId = 161\n# wrapping small key\nct = 3a6746052a1744cfe7e2f36dafc4042d\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = e43f5e4e123a03c4\nresult = acceptable\n\n# tcId = 162\n# wrapping small key\nct = db7e73da22219e1baac0f4e955c3db2b900b5d3078f94b59\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 1723eb9d000916996a\nresult = acceptable\n\n# tcId = 163\n# wrapping small key\nct = f77ec14a010777f1f1071808f285c1c00b4e9420f0e8bf48\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 8b18daecde14b8472ffd\nresult = acceptable\n\n# tcId = 164\n# wrapping small key\nct = 6b40d4f0863581a7d0365ad477568bfad94f8bf134984838\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = e5bd6fbacbf3ef0d40c884\nresult = acceptable\n\n# tcId = 165\n# wrapping small key\nct = 660f645b02405a18f7225b68c0a09a949b2b5ba784922cfe\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = b3be5e5397df5f46b099e821\nresult = acceptable\n\n# tcId = 166\n# wrapping small key\nct = 6bea6bf57601bf063873f47ec3572cfb9cfb595d8bdb5e97\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 4cdd960cabcf8aaf69c37da1d3\nresult = acceptable\n\n# tcId = 167\n# wrapping small key\nct = b631292536aaf02d829cc6d3c39e5a5cd76240889e9d51d0\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = da29e0889cf98742612e0326300b\nresult = acceptable\n\n# tcId = 168\n# wrapping small key\nct = de497acf18a177a3a9b3d8da46d74dfa58dcc537a3a95323\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 72aaee126a822184806c7d22eed66b\nresult = acceptable\n\n# tcId = 169\n# Modified IV\nct = aef4d2357a8fc5c3b4a80a15ed49781d3a82c98eb78c9180\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 170\n# Modified IV\nct = 6eaefd5193f0725fea545077a430860663901979f0b6f4a3\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 171\n# Modified IV\nct = f9ded536c1ae9c680f7d9c4b91a566a07b1628e9b9f4fccd\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 172\n# Modified IV\nct = 443526477c779a329ded0b230307afa64fdc10dfc86414dd\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 173\n# Modified IV\nct = 21ba79f3b423a66e7baad86fe49786e07a33dfdf227687e9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 174\n# Modified IV\nct = 3e65dbacaae556fa18bd192035cd55958adeac30e5ca7b3b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 175\n# Modified IV\nct = de2054883b00f81ff68e42b7ff1c05ef5faaf75b2bb14004\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 176\n# Modified IV\nct = 2aa3c6ba891d1211677d59f886cc6d05698243d10dc189f7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 177\n# Modified IV\nct = 9b1e7d6caf42bb3a15530f2387ed7329310ba76e1852566a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 178\n# Modified IV\nct = daf6a9f5e4b4985fcd4815bf6298a3039bcb32327b0876ff\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 179\n# Modified IV\nct = 14c4079399721142fd5fce26e9417064c7e0201fb7b5255c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 180\n# Modified IV\nct = f48a30b8691a2a80dd79c355c281addf779bfed8971e3ce4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 181\n# Modified IV\nct = 248f867430ffc954b494c936a3ef815b1754009928aaf0c4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 182\n# Modified IV\nct = dcaa88dad9b03e59a3ac8350239824368004e2ca616c15d7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 183\n# Modified IV\nct = a6cc8470192687ec9a31258ddb73084005784475f3442705\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 184\n# Modified IV\nct = 0527ab5408b4f1484b27f98641511143ab88783688256815\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 185\n# Modified IV\nct = 7fd3ad3aee0545da1ed3a54d5a198a2c76cf8290c011c042\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 186\n# Modified IV\nct = a24e94c12b2e6b776c8febe9179521beae0cfbd507d358b4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 187\n# Modified IV\nct = 9395b071fa3d9908b2e1b349bf7cd6a1cfc86b979c8c73cd\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 188\n# Modified IV\nct = 1eb452770bc0f26a3576b604bf5ac72f714fc468c357eba7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 189\n# Modified IV\nct = b42bcb4161f40b30f3d2f740f43e441d3c9a39613914f1c6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 190\n# Modified IV\nct = f3d76dd320e5f1b3f85b8f73a9ebcfabfb8346daafaf36e6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 191\n# Modified ", - "IV\nct = b8e26164496942f44f16751096fb47952ec478bb288e72a1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 192\n# Modified IV\nct = fa783b3aca0ec1e677378f23ebe937776fa590ecc6b01392\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 193\n# Modified IV\nct = 8b011408049eab81cc185796b9636982c1ad28e940e5c35ab1219434c23e8c59\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 194\n# Modified IV\nct = 08db2f06aa2400d4cc1113b1c9e3ba1b39e3e26a84918f9266796c426c166428\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 195\n# Modified IV\nct = 3114404be000ee167b65dd3cfae3b10c50dffe1df864b5e52a2805f0c80021c0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 196\n# Modified IV\nct = 405ae5bdeff8b05d28ea55900b8e81dc789d532ec3fc457730819e762172f751\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 197\n# Modified IV\nct = 7c19e66d21c0f1409ee6f03a36ab6ba532349e2567200b95d7f5012b2b7e5d33\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 198\n# Modified IV\nct = 955ac67d6e496b9b93a4dda8f6e65e668f1326b256ee146a7647ba18deee7986\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 199\n# Modified IV\nct = c8600aa18be27279493fd68c84130c8bc328b0f6821e01e892b6c2dc1c005270\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 200\n# Modified IV\nct = 492566e0dc539e234b08b95fb23594a6d14f59fa4367799495c2e7f2993135ec\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 201\n# Modified IV\nct = 8c5c2ea18125a03d15d2a624c9bfcccdf53709a89ae03d5728c98943b13df72c6f02fc8e1cfcdfa7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 202\n# Modified IV\nct = 8836c5cb2eec2ca2541b18c1259933ebd601bd6763d9f7cebf06ed6abbe37d455aca13a2db87d111\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 203\n# Modified IV\nct = 2554e0faf721d77f7dfadaaa90b70c2f242f93bdc4f876cd058a86ccfff33f8fd88736997f505d98\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 204\n# Modified IV\nct = 53ee4c8f03212b389f5bc2b26bc898deb91a457f258a22028a688919e12c4da23090c26b5c9ff692\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 205\n# Modified IV\nct = 3a63b0283ec071a4d4c32b0f30b384eccb3cd8d7fb12de6806e12fef5da82a7a39aad8128c3e5915\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 206\n# Modified IV\nct = d1cfaaa9adc25f948c0c4720967b01488e06d3dfc5622b5de38a722798d4a3a44fa6194a92c5ede7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 207\n# Modified IV\nct = 251a71511a4e73d1469a051fd88fa78cae96547fd8ca8e323b05d8717cdcd239292c7bbe0708fae5\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 208\n# Modified IV\nct = 14a62f7284124d795826cc89852e97dbe6b8a30ac56df07173878cf0136dbe386ec46327d6fc65f1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 209\n# RFC 3349 padding\nct = ac1a774a5de27e4f9c356e4f62deaf8b7eeee6bcafafd895\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 210\n# Invalid encryption\nct = b3941437f55e7cbc3f88050aff703967\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 211\n# padding too long\nct = 86175acf19ad0b7ac60d1fe4bb7850635e7ec6f8a314f85b6dd3d8f9349ea38d\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 212\n# padding too long\nct = 791f088847a76731e0d56b9b2dcb28bf9f091a9725790e0a64fc8e7cb3ad50f380297a98e3b1c33e\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 213\n# incorrectly encoded length\nct = 868c34495bd3d7b4e2c1861e7fcbbdb372099488dd96c9ea\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 214\n# length = 2**32-1\nct = 4a8b4aeaa713469bfd9bf88d4072379fc858e40b24b0bebe\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 215\n# length = 2**32-1\nct = c210aa3b5fbf5eac97e68d98d7727f38\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 216\n# length = 2**31-1\nct = e0ebd376e050cc9027b76dfc38ee2c6ae2808cecf480a560\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 217\n# length = 2**31 + 16\nct = 23a693e211c08ab9b222c2ede2db18f437e22917fdff8032\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 218\n# data is incorrectly padded\nct = 003f2916fea6827e01199028d3dc4e03889113f97b1860cc242e5a0f28a0f159\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 219\n# data is incorrectly padded\nct = 5c25a170d5225a6d66e117c691b37383\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 220\n# length = 0\nct = df9ef924eb59634be5b27cabd33d72bd6be6e01e4672ab05\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 221\n# RFC 3349 padding with incorrect size\nct = e6e66fad359a7b63a977788acd297121\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 222\n# length = 9\nct = 76b88ecda760b1af80703036185fc476\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 223\n# length = 16\nct = fd101943f4ab7c38ec68c75d4b3193dc\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 224\n# length = 2**31 + 8\nct = 1793a3a9bd146726edbcb9589f20e849\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n", +static const char *kData108[] = { + "# Imported from Wycheproof's hkdf_sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-1\n# Generator version: 0.8rc17\n\n[keySize = 88]\n\n# tcId = 1\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b\ninfo = f0f1f2f3f4f5f6f7f8f9\nokm = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896\nresult = valid\nsalt = 000102030405060708090a0b0c\nsize = 42\n\n[keySize = 640]\n\n# tcId = 2\n# RFC 5869\nikm = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f\ninfo = b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nokm = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4\nresult = valid\nsalt = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf\nsize = 82\n\n[keySize = 176]\n\n# tcId = 3\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\ninfo = \nokm = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 4\n# RFC 5869\nikm = 0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c\ninfo = \nokm = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n[keySize = 128]\n\n# tcId = 5\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = 73bf325f0fcc78f15b6cee7c9e7d927d4016eafd\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 6\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = a9382b2bb04ceb4fe0543cee88753df8cb90c9dc440f7e476e95150c82e1376e123f058875c00cff6f29\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 7\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = d10d4bd0ed723533adfceaa903f1ee8836e61cd085fd951dfc6a291edded082e8478c9f8bd1f7a2611a6a049761dfc2888a9e32be9c326833c6559487c33f6e1\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 8\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = c1b8065a9ea8e79d404f882089cf423a99bde5ea\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 9\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = c7d3c9ab74081357d0f6ee3aef0442afee7325381090a2df642926a3e6e6a7e213f05ea5c39978d52165\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 10\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 1535a41d6e8a94c5bd51b7447bbd9c2b8fa00ba05b92e7ab0da7d1fec7d348ee7d50a4bdbbde173dd6eeff83aba9e8b822823b339a76811d62771336f4e08f3d\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 11\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 4ab2bf78f2678effaced317249e116862d3d9b8a\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 12\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = bbcf63065c761017f229183e767683b98633a85f4d8f32236cfa0fd3f6b182a5f41c33506636d18c5eba\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 13\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = 3084fee371179b60a4fd27ea2637a9b89a3dcf6ab45d4805c99880b26e5d73efed4b421f1fea4cabb60893241765b19554aa51689bf00d7d94a053a94bfec55e\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 14\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 3917a782fed4d7f525ca16ca1dfde0faa7207262\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 15\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = ca0903f17759fc29df761469e3b98a5b1476977706f3c87e9d39050e5b36c7ae6bbafeb3814037b12ca0\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 16\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 1761915ac282909fbfd43ce31934e7a10951f901ad33f614a9394b6f5ca04e00906aa14b91132bf9e8ae0aa2102c3c7a67756e81b57d89192a62ca0cf907a3dc\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 17\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = 4a54220ecee20a84e1b7b6f5407af234b14938d1\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 18\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = 741662ad515bf9d2661aa0731eebd674f7390bd20fa3bb7cb2e9d6ca953c2bd839929c44a6f0ba5ae614\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 19\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = 695807f517ba39e33eadeb6a7b71d2016163e9f5e6aaad5f493bcbe24ac06f8a6770097da76b50338a4dcbd9fac4d3a545c45eb1e733f70e9e82ca03830d0ee9\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 20\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = e36789305dd2613dedd29e041afddf558d6fb8b6\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 21\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = 6016f537e75e1aaf2e6920827d18aa25e9fc8742c607b0cd97a38cad0bed0a6622981f97b63b08f31ed9\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 22\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = b31f845aa6ad9b6803153872145a28617035e9b2d2a5c1ce8d0d2c6017f17403a67326cd06068af972eb8b734903d10b633d07de05f02fc70ed383a60bd82b48\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 23\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = d547c94891439eb7dc9e0c425adf20262d27fd9b55e7b0516e836db6b2f778c70296bc97c466e05ce2d5\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 24\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = c508b4bc7503440f3ee04c5b8c5832bf70b54a6caea8d2a0ade43a0ea72c08e474904587334d699ba2ce\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 25\n# maximal output size\nikm = 9ab09999adde788dc2bf82c7ec8fab03\ninfo = 60999543d9cec9d3\nokm = 033293a76b1496c9619331f089d402d0deae28166bccf304bf25822f369479cf0aa1600b6ebcae43fd1f5d3389c55331b81cbe1e9f6ae29aa86d8a332d298d50516af4926f01691754981c9c92d743d0d26a94423120761a4d0d0e562368696ab78684e51a65b30cc4849a6a5a6c53a076c276db287b787dbb43d1e107f86bce19986cfcb86ec40fd74dfba08784219c2aea2152e21be5a87dacdd18b22ef23292623bcc64bd03a3a1b408a77fbbf4e18ae59a94cac72f43687190e358579d1b0a54d3f2df7f08b867af0b941deb9f7035a1a8f13c6d0da4f9e02f817ea0a92c02140ff5a7d7e398a7b410574d2e6ef7a710efbd1db628318650236ea02f1b617bc79087f5a6c3adeb7037176ef51fda844b2607a4960e3852107dd2703558a534a06ab5a1595d237fe3eb0c0ea3f14400332abb221784914e99fa5ca7a1f67338860283bf589a6b6ea0b32e2779e207fa8139dfeee954e762ebf6255250b1fc58c4c79b3d98fbbeaf786907b5fc7a8c34a25a642b7286a4b2ecdfd1dce041294322bc54b3c15ac44913dd1a3a4361e2d2a0e58c13f34ab2ead723fa01311a2659f74722a09f5b1837a7666da60728ae5cb4b837621961bf0278da749f79a47249ea0e361be3afd14ea9ead4e2f70d9941fa55862d86b53046de5dceec48a4b9f7b895693e328c59c0b2543ef2cd84b2c549a8e0013351703f7669b8346d2b32f7627b7df9ee746b1092f34033f69314a985ce2e948b9a98dabe9bf259f92b78b9a1de7285db617784001894af381618e9a2992c5738337930408b7e0fb57697bf4839e7e72ffa1010319a50aef208829950d60b6c4e57b76bc62d1923003c374710d5370249172064e4e5e0aacae369fecd4ac4bec3861fd24a6c633aca87f2d73c7accb43f9d83bce2d544563c9213e2eaf4a159520500d576bee5d3301613c31580cd6ca8c47039a4d4085dd8b959e5b8ca4835705bcba8982bcf9e8fef0a1602a76364cedb6daf92952ca58be7076ff5536403023", + "0daff9fee31152d64fa0d6541d862970c2c013efd711c4f96b532fe9f4a4a180ac4d3cd41e5d66d62371616e6ea88896320944a8f3df632ae0188bd93929ce6a6669803c04be549d80fba1815ec67a0269b74e0a1d33beabc1c94ef6636722a2b27bc0f249da083feeb39ef2fa5666ee38339791602afacc9829abf6541a5ede2cd45ece276ddaa9f49fc4d02b755eab466d5bb0ceb3b7b771ce6a9d85283d4a53f53c54b63b4011110b42e9c1fc8c8dca6e4b69e6c4b3b89c53f0f990e26b84ca5f0660e712c775c1824eab5055527bd92495cc59f8d4c04ae13b49c466e886d81639d00b7bc68875a8ab6cb87807d4b2257252561d69788cc136a5273e5f3e68b9ac4ba4f7547422544edd4ca658e1c13c756420e4a6290c7db03f5ff7f44ac78fe4d353847caacd1692c1521b12f1f55362ae755c9714712a6d80362080d865062905ed0e9601c5b12b1300dca219f7676d0080a33d1a6b08718c36f084211461c0f50f6911f17746752f3a6bda656e3a065aab0cf30ce2542eda35a42821c62c838ed18dcd4dcf5d51346804c034fb2c3a16b0c84a6aad62972c84b499a370965a959e17d537acc13d5d08000d732c11aaad9e0f192a9b74d94ef408040c8bc50e7b2ba9edbac047fd4b80c16dbd3962f7eb528e0d80cb5a439eb3d6cc62e41e2cc7f4e2d5141bd48b400ffd19da07d0694e983b91744e420541c01bbfba3f333c5e3e7946d2dd245b70304c3b1a35cd9485aa6908c7a7a846f23466265c1e55e6dfdf8d0cc320033a18feff132c0e3b1216d33b954679121ff2c8795e7c4f9a4a9725d31200bfc72444cb76f50f198b04afbd4821a31a183593210789f93ed612a2e1d70facfa0b23e5aa854059b83979b55ac382777e351589d266d3ceba76a5bc345c5514f4f07e79e54a8b70a024cb031808bc13524c04b4d1fe28781da04688bad13f379a0659915ce438985428473823a70687daa8b6afb659edf07e25518b00114e9847e3d6598f23f2eecf07e59cd2a801eea6e3891735e457b7fa03872358e682571fec629cf19f17fe167a6253dee7b6deb39773e0d3606e025df91f35fc27be8c046d67489e010f743d84599283fcc418b628dc244d2f859db667c376b2953991e0db773b3e068c1da262302c391681fb414c26c41ed85eb4212e982d0e15eab5a67257a3ff913ce68d6aed6e9a8ff385c7d878cd4789ec9adee99fe25438911252de7a7cf6ef5d6662cb424208003d0ddc04d38e04c32d9beb4f6e8cbb19a8dc0835515bb5ddbc600f148861d6dec69dc8cbd4aaa7fbbe49f782199d618cfcc9820e77f2a474a3fa219c384d66bc8abccecf9f82caed37f05f3f0e1d448af96a5a8287a8c877b25b842dd9e0f66ef810f1b0be4e76f8f4e6e15d7eeadd07633fa3763c493e12a84639f76f67cfc823ab945403ce84d50263edcc95223a22acebb79b85aecd82b3aee931c891ba61bd8ff94c625cfa4d55e1b2bd996b5d99e6cab245e243e6414005f1cc4f0dea54b35e1309cc2db46cd785b294aad50ebd634d363688e3206a57fe38d83cc068c4b8504c11bb4c1d256d496513667170163f7ec98b5b9c3e23777d6a3cf72598ed68fc51466ec4e3ebd0412e002af200f1bc8800400e816ab29293b1c7ef24e30415a8e513e4a9efc851fa549b3d1e0d881fda0a6c393d0ff0c57f44260b3f5d7dd60408ca687429c4cd4274c206f80833d605290e5c992f17e05dbc9552f8c40300bc1f3480c6bb404c75c4220d8888afeaa779eb0f625c5c044bb12349af62adf5b0a18e07b37c954146851dd628dc26e894ffea95c84e78a75c25cb751cc81dc93d3146b6beee9871ca3004af6e644b65e972df9934717e075b53eaa6c878cb94f5d1fea89c3e8c9da4d0bd7d8d8ffedda0b48eee4c9877748be05a06b3e69342d5366e9db9be38f36af0f759fb6904876f5ce327dfc777fad8732e4372ada25106477d8311095b8d9dc4c0100cffd70847305695be46b2b5ba8df8ab3de333d09a7f32736061eadf9182bc4c0ea5965ba7d91d655d6942f0796fb4a05c959b6afb52a8b943065de6e0eae3639006c5b130b0a8b00b617409c5c8d5cfcdd88b1e981930ec92f21ada92a8373fc7b49d3ccc5c63b776849d5efa51de531f9387a9d11ae9fba6987d6b680fe15fc19c88bf0b5e1764044bd689554a12c8013f1e7dd6d2214c74c3fa65b4a0a35bf479d2582e948ef91c464c4dbfbea80d42bc8b1ce1fa42ccc38f492e3acf93b2b64f5e956fb171eb2c0e4ff537c4ea2ca13978dbd280aaa1d5a798b423942b6897663aa75d4c153f76d653b4fbdda2d2e141e9731679d52225fbc6dd0e81e03095b37af927e0c2aaf7eea5bdcbf59749e54e391b2af88626ef8f86920c81043334b3a09acd8c0a20e9aa0849dd56a2643803d133fefa3ee0f6b52b6109170ec5d6a15d0d20f7fb546ed78930b4298f4b5623ed912d0a5d6688b05b1b5c892e6fe60b2f1c68623bcf9a0ed513ac75c17cde5e01c3be75b1ce441174d26244873a7946ec1953666512efae05547dc8cf58fc342b262c3ab072f29ee876327e1de6c67f5c480814ea26702e1c7672de4655a87350b38f7b290cb22a3a0725f8aa2d24a794fea6f70fac5a345fc426ea2931cc3890b8cae7e92cc171d86f5f1baddae8f4b1db7aab80e629022eccfad9276c578d2a6085a446ed4b017e6a0da40343be3761f190d801283c061865610c3173753384bf87ef3ec78e63aebb1b051236f9f4d6712b487f0c407a44c7241c96e2af404a2ca14b8b6a11564d0aa2b6efe18072d6d596e26d105783a57beb5954f6066f7d2f4eefc2b455171d56364b21c3d8747d5f407cff5bd8bd350d904c17a4b91f37b48ffca09e5334420bdcb6fc3797417cf99af8773a027d0dccf56087c7e751e519c365119dd9195ee2449de13aac6d538c31d58dfb3b4183be4e71f6b4893ca588876514b581b03ac897b5e9305234740858f2b2a368b26b4d560c54a3f1018df913344d66229c56b3995a9c67d5f6db145e495159501522472dfd3d38deebf4c8cdd698325914d7472d02c49af1a9c85d20c019b03259a849130a53909929695a2f911e11f04caec36280f9653218911f4fa62ff63d77ecbeab3f2eaa235598617c424eb6caceaf365fdb7659eb06569623d38e47306ca2dfa98398586c4d5aba8ee29b9046416b3d7c6660b03aa5f59ca921e9f25090769428587428c8715f053323dff1eecbc2bec9ce90bda4d890416fcb952018f50f9ac9119d45e7ed56af58a4d0d9ab8a2a301eb17325f89359575a6277d340c8fb40f3271387fcbe04f2d3c1d63b490d12b5d2e8e592529c62d07d5d9c315f54157d30cf5ffb870b6a466c6c1f19fd0aa4b8973f1c3492b77cd7aeea7bd85f21cec76b61c3183cccf83e754d8ecca2b2e39420fbd4724f03efd9b6f4d4d59f1e8cdc3746b1dfebcad85287127de3658c2aadaa514e35c84bc772839575622d872a0e8469b3eec05e143b2129c6a75d1d4f043b2785fd2818a3db7dcf2991ea95caf73db5b2340df001771a8548db332006378466ff16dd0c60fcf6fe0c185da8e501afebcc9f566e1ff34f69b5af7997e6413c9e17e34745e131edce9820540c07ada9f500368b0f3dda452b3d1f8312e2926e20ad55fd398d21fed2ae3440834c9779d747f4553cfa2d5edd8242f3e6b1b3694031fa2c7430e78f117e69487798f1f3ac539979e29cb69ec44d8dcf6d0220d956cb4e6a5c9b8ce5263a950362f88f3ba56ad7d2f38fcfb2195cfe79baf44845dc124aeb5283962691abc25a4e016bed2f127e4e6bb78b22437ebc87cc975fc898793dd20f94784cad271dafeda980b4c6a91de39ba71eed0529bf05907db0b1bb9ff09e2bbec611d8238eac1939c3a7fabe8ab631337300ed6c40dbd5299f934790137ea875e54af87a60a169eb920522af2a50b62856a6e471e6c52f285cca854d0bc98b69622aa2c4364843279ac21eb4002c9814fec8be3de5f1e587ea62b0b2f1b5313b69ea407f1f2b7bab8c13cd54ce2a7704ee97d01c1d40feca1aa698fd90b2003507b32644043254dc61ac50f92840a408c62d6754e80108ca656b0ac977e9d1da44f87f4e8be3f1b2258f092714b9c4027b1678388546031a1c7391d9a151a33c5d291d85a457fe46b12ba6faac046630ad646fd5705a67ae2b2f85e4a79f780bf506829fc9cdcf6b8c2cad831ef7b26b37d3db8d4cf63776eb60151f17b68d86002e878c6198c171c8db609f870ef0ce62bc27b0c97788c25262020c4b42036ac3ea666429f7a47248fc41126bfc5777ea036775437b9d14154aea29884aee95e46966699a6a5707726057de573d77f31d190624dc3833c939c318784fb1d80c448fca6f0af4cd18168cb40d3c19377852195ba42da113d5953c1a0fbe5d188d884f6162503d69442798c891d1fa0c706c80565b9e6300918e6f718770058f18e80ae393a96c83a987ab08b2065c42d02f03d88385f1b2041ed70b90b124b6973990d61cff38b493c778c3eb26c722408f4060da392632be571b7260051cf18dfaea3efbc3d37c67b0c182a0cfacc1d013c38ad0592bfd868797790bc8f5a5e2a95c33bf078bfcee82afa438cd4ce48eb8698906cee16e0eee03c551d8c0df8d3448924d3d1108a6dd89739ae1745d637035af515ef94ab3ef461eb479281e743b9d7ea10e7bc1a033da2eac28a97e1b81550c32033ad630efa2a6ec9f666c34adf8dab8367a40c21f1b70fb8254976eed50be0764be04e62cb0427cfa51a9b78d1f4ddfa09c995d20fa0cc3cda2978ccc762146ce9441394df789bfd8233950f84df64d20808758f19e00b5c6aabe64d3c23f709ce866fffa5d35590801459f076e6751827d131185e36e818c30bd5ade360e4f0818a03188a5266c44747ed5e7154c4c93a87f0ce05b745bc7ebd3fe011c5169f1ca118bab34337eeb61206f251d8a0307f6dcb33aea11b1ec7eb888667c7145b2fc601dac47787c842a45ee0f5af1811b7a57759c14f5da6f8b86f73a3bea7b3f1effd9366dc6658fb3b8510f54621d8d13f330163a6530da45f7263a8fda2c43123ef46580b3990d51def937db27f9e06e87fdfd186df2fd6a5dd6133a8f3ee06e0e14719861def6cccf68f085caa631db3e85b4bcdedf83923c2950665b0187e224522060d5d54a02d5501a0c0a384bd247164caedb02c9a69f9a3638d258b945aeba029250ab549478cb855cb27404fa5cdb15a46b9f1ff8dda401f2dd472a6d6c66dfe8f5f7449238eb959c091db1c26e5efb5e7efe096489c7a25515de6399d7399b793aea554bf9fa1f6083f3c955f144171e8584b133a2ea77f49c974c2e79846e83541f37e0671d65173b3327de75c5173644959ba119f49195ed3ca26b144ca3001aa5044d46781a1336967911496da309744bb6ad244d1a96d47c7089c539486a1977a63b6523782bc2701495d50ea208a7fa411c70953cb506befe8ef37cc41dded7edc0a91de2e952abe338141e020afcff657e3eae7d11b384b0a496dc105fcba6c9cb3404dc20c704f0d37c5a96cc37ee132c47ce1ad12791d48a96ea2dfd0881b1d1d777619405b9040fb52cb1a7ca1ca993f34eaa2a7e97edeec2382ff73bfcf3ed5b6fd911c8d610551aaf92c92111d95a3919e20974ac27f3ceabe6aa3be7b6bceab0080f7ad9ee3d48bdfa7e44f6c71845c4e744726f1069324c519188d7ea3607d466ffd25b2d65a4ae1023929087e959eb8277eb495fa4dbbd1fa2", + "29490db87ba6b3a46c55524e398000d7f3d50c11aad2b9e3d033e503fa279f77d2a2fca9c8bd026a006ecc4c913dd3fa519594784c9eb43a9e3f862c3014cc1f01284545004d3733e63b6832607685b329988f26dc394bf17d2d4355e5e4622f86a4a2179b48f6e3a2eb391c343364a6040a384e70babdfb557d23fbf08730f9e8894f28b6c43a8fee397bdb39555c9e1cb389388776f72ac3c88656e4f36ff032c6324d68949bd2608313651eb6662095d40ed72a89dc85b420168c1c299f78ef8601609c1a5a29625545794b89a01e13cbaa339c05f7504bd45b79239d8f0ed106450918fc0be03205e414a58c734cc9fa134e6d7af2e106f25861511c6bb1510f1a4a493bacbad33bea4f41c3d8d28488a87d8fc\nresult = valid\nsalt = 1aa93ccbc92e29d7016f71e7f806bae2027f62c4\nsize = 5100\n\n# tcId = 26\n# invalid output size\nikm = 7727bdfb91621dcd4ca5e8cea6b4e2eb\ninfo = f3fecf4736e28862\nokm = \nresult = invalid\nsalt = 96b2e11fe817e1e40fba8aa5083cd490482b2abe\nsize = 5101\nflags = SizeTooLarge\n\n# tcId = 27\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = bfe5a1669df67ed5638007f620875759af8c0242535a263cd4d17ee9bd9219d2\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 28\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = bfe5a1669df67ed5638007f620875759af8c0242535a263cd4d17ee9bd9219d2\nresult = valid\nsalt = 0000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 29\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef793d5a62169cc1911fe5dac7ddb3ce07404e8299296f7c139442b721a75ef4\nresult = valid\nsalt = 329f445e7de8a156cf26a0208dbb028d9de6ef76b8de67ca634f4a5a732138a1bd436a7b345d7a0314c7ed0a00b0d34ecad2cb8bd141e2ecc1c77e237094d55154\nsize = 32\n\n# tcId = 30\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef793d5a62169cc1911fe5dac7ddb3ce07404e8299296f7c139442b721a75ef4\nresult = valid\nsalt = ff881c9fd53adc0535d68f4690bbbd4f4990c7c1\nsize = 32\n\n# tcId = 31\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb0536\nsize = 32\n\n# tcId = 32\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb05360000000000000000\nsize = 32\n\n# tcId = 33\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000\nsize = 32\n\n# tcId = 34\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 35\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb05360000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 36\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 37\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 2a031029e1b02289917618b7e0dcaf0226f84ff1a5770896c92e42cbe6d27d00\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 160]\n\n# tcId = 38\nikm = e2865d6bbc1abf6a815067edc4ee7aa33c290d5a\ninfo = \nokm = 1c9f5d2c19e47feddf19af9bbf38ed6aab1f872b\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 39\nikm = 8c177ab5f40e9c57203883562f01f174070ccd97\ninfo = \nokm = 07d4aa3e002dad7940089482d10e80b349da499fe7d9530b27a8dc5c61940bb44aa703fba340d21c1fec\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 40\nikm = e842a4fc1a147cf2f87de9bd5a42fce6457496f7\ninfo = \nokm = 5f426da341127db39b959cd77c13cfa4a7a29259f105f2b181067492a54ba259020a5289b0fff0ffe0b9f72606bb980c929a1aa37255d3cec453bdfb26a3ffe0\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 41\nikm = 5b870ee1bb97ee83f67fa7335b4a0f9dadc80d12\ninfo = 0a0dfb2a6e051441678788bdec04cc1b63ebe1f4\nokm = 31aa4cff955a0bc5884e1653087f9d97e284775c\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 42\nikm = 58ea7ab33acff514ec08f41e59c17a3c66c1ceef\ninfo = 1cf9e25bd70c5546ea7a79eaf5d90cacf754c4f0\nokm = 16ec1734868565540efe2967cae02d8be26a86abe83edcb4b599f08e016b25b925660179b9dcbf0bf07b\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 43\nikm = e8d20934b9d320458f4854e2442e2f0fa092f461\ninfo = 4425999958aa3cc629300c25ab15be8cea7a4277\nokm = ad2bdb5383dc53258ca2051b26c53adc156b31acaf61ecef7d0ecfa14b81b0f53b1c98ce28ee804e964f8b106312f429670287ddcf5bbb67bcbf96ac66c242b5\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 44\nikm = dc9e488c684dbf0ac8ff1eefaa0666d413d258f0\ninfo = \nokm = 65580e5feab001f31405f812d87c7d8bcc187c78\nresult = valid\nsalt = 9afa7df500d7a17af1f44422d25a62bf\nsize = 20\n\n# tcId = 45\nikm = 34b85c341a04cbade472b3f7dee4de4d1954bf70\ninfo = \nokm = e02ff2640000391f1fcb3d0fcec40150b20c5af7c3a0c4965281e1761539d48555cddb2cc35efd27ff86\nresult = valid\nsalt = b066b42acea664350a8448f8e064225f\nsize = 42\n\n# tcId = 46\nikm = 44cc641e09f7d5642f7b6007ca5a1c0813319666\ninfo = \nokm = 81c3016fe63b57cfcb13ad04eea7e2f5ab1402dc489c20824271c5a95ac1cb9b0809d76d5d7437e4ac74a36c1693d964d37d10064649fe9003503197456dc4d2\nresult = valid\nsalt = 69c0dde6c8e5bd40553a5981fad6ad87\nsize = 64\n\n# tcId = 47\nikm = 88a8880cc2b73e73b3b6ca1d4902caf2128732c3\ninfo = 6dc723df3d26f704067afb2fb6d95a66516d089c\nokm = 69614a2ebf14d74188e830ee5623c0e0366ea994\nresult = valid\nsalt = 0579f690ed32e57a26701a9f6877f243\nsize = 20\n\n# tcId = 48\nikm = 8408668b9d671121b8c7d31113f045c0d7c020fe\ninfo = b4451b0f1a217db703582881e86d8044d5f2e092\nokm = 6a6ee276cb321c6cf237360a7b30faab9060653ecad213a3aee36735e29164c6fc929b7f206ea4fc2f1c\nresult = valid\nsalt = 679b30e6930a8ea3f076e317b9595d5e\nsize = 42\n\n# tcId = 49\nikm = e6715cc4ee13c4d999d8f8f500243c321f70b0be\ninfo = ef17c9227a5ca654fbdb35dd00dd6dc77b6321de\nokm = 1532fbae2e75d854c96a0b172cbe40b91d36143a93bd1b68d26be85f19de06f585d8670190380dd0690f5fd168cd0c64bcbd99b8dcb9fda9eb345af917f75739\nresult = valid\nsalt = ecfaca2ea3301a992b4de081d9d3a4cc\nsize = 64\n\n# tcId = 50\nikm = 9a6b88f3f68f5a8e79903b51dcd733abaece1a41\ninfo = \nokm = 0b45a0d3ee381c5c1a33556af0a050c81a336f9d\nresult = valid\nsalt = 0226df3d66ee3abb275eb39c8ec3d3e12e9b87b67f85c552accc4279ec17\nsize = 20\n\n# tcId = 51\nikm = 0b9eaec88b2940a4754e83272cbf47fb6f86aaa1\ninfo = \nokm = 844af69cb0e4dbd1a768f69c4a5d2b280b645e48f11cf9f9dfd5930dacae47f5a8a0a58cda227747638f\nresult = valid\nsalt = c1616497d49246400ba68242b635c67515d2528ee1c3b71b318b631f9bef\nsize = 42\n\n# tcId = 52\nikm = c4717276e7c7f794c4ee333b2f7a2ab244be9e8c\ninfo = \nokm = e1e9d8dabba5f8bf934c933170abf15edfa69a19e32666503b00694a1952c38c16703c79ee41d76cc6219533876d162727fa738b949b74b8d04a880d7e917dba\nresult = valid\nsalt = af4c63e5b554063e83e37bf730ffa401c696088ccc4f133a8695ffcbf2a9\nsize = 64\n\n# tcId = 53\nikm = 5e43a900ee0d432c5fe6fc81db8d5f81a54e39df\ninfo = 32460280e60910b10abee2e9f80a3dab48acbc59\nokm = 113ea70eb9eb87624ca2956afa5d5acdb4a5eabd", + "\nresult = valid\nsalt = 8cc815009350b0b6a924ed93e73c8f8c57a1105726663b72741b67209c1f\nsize = 20\n\n# tcId = 54\nikm = 070c170fca600aa2b23618150ab9044bff7d4dcf\ninfo = c1b0971fefa0a23cf4b7185879475ebd8d83b9bc\nokm = 3184be87cfb54d3cf95b2baf96a415c470be4aaf40c38ecddfdc2ea113c0996f1e2c42040d4508ae9fc8\nresult = valid\nsalt = f32a1cddb32693860eeb39a5d190f5667a303d5403712cdcebb575c6563b\nsize = 42\n\n# tcId = 55\nikm = 87a23208df5e66488d23f7aaa066e87bdced8e2b\ninfo = e4d66fa23a6020820013d94d1f8e84a58cba2a82\nokm = 26ed80390ef739f3497e5765f1253706e070a103201988099333c14a70c53762974117c2eeec6b90357e4f5d71f07151fa7d37af7084159653c745915aa23a2c\nresult = valid\nsalt = 0488ffa08062f1fe83e9c3934f5688a2e17827f898aa5daa2d595f09b245\nsize = 64\n\n# tcId = 56\nikm = 214746af12a669b726364027e9a1cfa40c18f8e0\ninfo = \nokm = b7fa371a39453ea956670a412fe6c76bfa4efc0199b20fefd7fdcbd5bb506c9369de90b5d2702ba6e1c7\nresult = valid\nsalt = f65ab21816c5eaa5c9ce77d58608ab67176d2255438096f4b45779d15c2afda12718ec557bfe161e7fab89ebad4fa634cf73f2d12c884c4583e64d2b59b9d8b9\nsize = 42\n\n# tcId = 57\nikm = d509c509f91d78c33b9d661e6df1992b2b6ae429\ninfo = bea4f60eff1a0c6ab664ff3db2f774347920a482\nokm = e3acc2fed4cbffa22a903ed7718017931584e6cbaf7c61234c27bc1a3fd383df74fdd354cb022fa7b6c6\nresult = valid\nsalt = 95ff4b20ade46bada320316dad7e2b4286e93dfa2a72c6366c5ddfe8ce2ff344729ea56416d5b53074c6d6c4eb4e4873980e5e4a4991d6b1497aef822e16e209\nsize = 42\n\n# tcId = 58\nikm = 71a4a7f2ccfdbfa5a907e43f46ab5ccd12abe98c\ninfo = 4f4a4b68bb234db3\nokm = cfb7a0e0dfca246a458c830c77eea7a98f8421a9\nresult = valid\nsalt = 4769ee2fdaa773b6f8293d45a1727adfcb1c8a95\nsize = 20\n\n# tcId = 59\nikm = b1818c1e56aca23595c583b89a2bf39bf90ce9ef\ninfo = 5dbc8584e5facee8\nokm = 63dbd61113df62afed82f2cfdf336f224a528dbe26deaf2446bae9becdd44bee\nresult = valid\nsalt = 70aa181d4b639d67e8ae33881869c8e7f0f1e75c\nsize = 32\n\n# tcId = 60\nikm = 2bf9f0f061cd37f97141853dd93fad6109bd9d1f\ninfo = d1f3077fbe2316e8\nokm = 93b206bd2e38cd81ebfea96fa3cc0573f0f52266ecc5a47fd001cb0b432ed0c2bcb32dbd8d13cd909ab43c905bbd78eba3a976ee16010fc7c77c23c515964a73c19224ae555b5bb207d86073c903718c\nresult = valid\nsalt = 51e306b1bcb7722ded9697541366d5c905ca9395\nsize = 80\n\n# tcId = 61\n# maximal output size\nikm = a974f779dfb38415d1cc69df4c2e7dac023e058a\ninfo = 7a036703c77d7bd4\nokm = 752d5f1fcdaba5f778ef92a8218c730e1d8e43845eb3e976fb05d51397a57f8b94e7cce3e20469283ec1b6b471bce8c1fbd280a3c49670634a47c877069a54f1e8b478bbd9b4662b314b326258334fa40c2d2b7ae953d71301aa309f14d7e54e658ddd259cc7bb05efa475c00630905396dd8aa5f8fe72d3af04f9fa844b1f0ea9975915073d544b3be33db8df48b9d328ef07a800eda472e38df3fb57de8564b2460d80cf0539d5b86501178314704d9f6af54dec9b06313f9cf85112b05f6351c86841214f5f4d7a7981bc3c8f8d68b9ccd8a81e44e3530739409b1a6fd8a6ea91a5f7bc5b91690e423cad62de26437c5c43c99ba84d84d34e83c34a0b2df6449113e5e3bc602e3f07c3ae2c08416d304308deffa44039212f1c8bac344ce1787232d6628b225f0d624574b977371a611c56515c449b324d2fe9d4d3215ffa95753a3aeb2608087240d32bc8eab576a21b37526d9e35917f512ac886da5a3302f4b76b4b6868e35795a44a0ecd4d23a4f252543ea3bad81d337ad13be1ab417a7967aacb48a564808c225919909ccc33c0f34e8911d59c017b3b279d0a176bdbb77c3c11b5a2c0a91a0e67a4c8a498fbd563ee49cdd3b9794c38efbfe1a45d110b3705070a2da15e010ac90b4b4e0a6863acf20c49c4be0d596104925432678dd39a2f9117fc6579e42c3b245174c2aefb5e63308ba372152596fd842304c335a0010e7c3965829b6bfe4352c41c40bdf1d55879e2c3d30c7e6ea892f5b0832f5fa504d20a202ef1a91baa70ecab57684168cf02224ff45af135da178fb4ca48c03865a9857f62d280272e182c82d53cd0b9ab11620e7edb1a3f9e9df3d59a3b01468208651ec3c53b9e4c49f66ec021b5cd4d47bc8db46132c2ad3e0aa9124b312c6b5366f2108c2a74a9876e556182dd96731179c5c6e6519d4dd83d64e7a49c6b70a96e89b7baab690e15e1263e93434b9b9f4f1ca2c53edee06066d69724506493d216fb44eb6096e35f205bbe0fdaae76fbcc2da07891933b864881d331b49bac09f6a98dfaa2d32fdaf36717017c61105bd1b0d238313b1916ff69a67c5c51da53108d46ecf651aff07a106a09c8fcfc3c6b9e22255f9a95b7e804c1b1678e11050fe6f50c7c53b339c89de46ffa605fb3174ab6cb92f9ab8daef7a5aca41497f489f573269b361efe1e0703a75b91516a88e123b2e82a989e0dbe4e69e37ddb9e20864014d9fb6c6040f2c5558cc22c84b1e8286e0d46400361820a39afca673f898ea57c1cbb9c2d0d643e32b1837a153f70aca708775b84605f60d8d2d0200f55a4a4eab235489c391da0fb885a6948965d5144a85d33fbb795caaf2995338ff206638be4a47faaaff20b79eed27096b3da2c9996a8cafb7b28fe7df4c0be6daf4f32992f2223fb90fd6cd4a15db37a29b10c017e8fef57609ce35239c8017428ce6a4f069b5feaec6f1ac46d54450ad066a6da304b65feb5e9b1c905eb35e051e2ea8d5b8c37c6a75a110e351c2a16f61e944ebe2513986df9917b796cd632b26b533d79b26970d71e741ddd4f899195d036cbf03fe8e3fc9596b0f684bf79babf83d232745bcaa58350a0fa50ba99f87382a5346481f1c91ca8367ab0b4b8386f5aef3ef02f90d19e21f3f89fab1b614fef03fe1da6309c2f0067ba5430d79884359b5387a920d913f48c2f71b0b71d1196a9755b1b7a574b84655da35afe333d6babd3ce46c51167fbd845a0a105121a356234cf2704d4a585b817899d230c0e9f03c96f0bbe0c313cf00b031e5b0e7f2e154a122bf625a5bbf406c2d0d7c404fa1a23e9533fc8632401f01088ce6a8e8bf45aef62b3ccad031fc92c262e3197b11c8e4f97122306eac0dd9a7d2060ed1469c67dda2e086d470c2635dbce357b3ff0a1d5fbb808f33869d0b7a37e97510148f1d41a4c53cf4f04069131ba4bcd48d5aff3f484d51431d7e717e8bfec270775a6336b39c4b314d0ce43f82136458c4344953a2ed9d42b8335ffd23b260b026b213156cc6d9aa512aaa90c6d59116aa78404469756740d0eb232b38fd5268b88c6dd04e25eb7c122c5470c65d48e90765012c3a29c3aa692eeb856d7e33a46661ccc2d9dc1d6fb99c8f19f7fe77a0d042a34124057ee4ff8982e45ea19c7c257547b8a4b46a1f042cf8b42bf045c23628b6998553be1d1fd64464c144251e809698b8b7d095a2a45df7db6b6382fb3818ec3e2bff53956279930c7a73dd4477b6bdc53e959dcf9875ceecac88aecb5dcaeedfdea18ae79b41c04f675a9ec0fdf0b8113741a91cf8f3627c83f78f6aae081d6d4b2ed6e08427528e0bbc8ea52dc8b8e6c5327d9c9fd3f09b772ead820b7b4e2b71b5ec579775ff16b978709a7e17d78ef50998b5858cd0cac664e4b341995535f11888b09d8b028ec66961aafb871c12dcf5c6a30514bcf677383f56ad36b8e1ca42f1c4dea49611f4fb4eb57e5724cbf6767c57213767ccda73a9215802801f4804e68d6f7cf35089092bb12da8b091ac90a242e5feeafb576d7392d829b702651d310544d9875edf4225449dad035fcb3473b704650f9ccf48ace3f076abad1797e5ece1ce0fc6181be66457d6c330be1bbba8547b547bb7512645f92403f39b66611bf8f8879cea8421dad5c076dfc5e68ed5c2e8a7e75e47867c6f30c7f44b178a4ca7c9036d0a8e907c9bc12b38ab2f25cdd320046b55e17a2b4f5218b8cf4228c7d4755acf1d188a3795998209a3b2fff15d6c0994da88cb42b9e06de60824f957b2a2299af5774856de93e7d9f88f4e2d833dffb431190cbecc47a7f3c172cd80ce2c496838b6558062c4f60dca3d0c3a754829007fbd462a1718b205214e797b03e834d36c4877fbc6f7bcf091cd905dd4797fc709967f0f0b612311ffc0126b07a09d54d3a87c19e5ff2ab1fa9a2c08c0931fe94be2f334d2a4ac02c3714ae8be23fc08de5d067871438d3cd9f794af08f81fe4921454410dff0ec370fee9af3f29d9f4bd4a6b3a71539ae87e94609b1decd20310f917ed2143c622e239ee3c9de096a79102b86abcbf25b689c2d9fcd9ef5f7d16e197fdd2d640dc9ddf6346d639725efcdf293dfd070ac0c1fb53bbe9e576509174d11bde19cb8c14ee9efbe297f4fabebdb600233abfbe39ee670ea687a9731b9677a59a50f1ee4d0828f1dbb33031df527c3064c6349c51589273218da3c67833a0e86cda700f2d57337ce71d2ab37919b9be78c2895f52b82c088f662c5e8e9d474aa0922f1ff99a106ec931f5e74cdd468a36c34ae0074fd9bcb315fa2ee0c3513dbe8a681fe1634331a885d86bf44972bc94e79a7eeb068bddd629684430e757781992c88549158345557d49039ce61c4f1cf76e6d0ba3279f99a8685d83421d85d50ef5ffe03b2bf414099c34854d39d6938630ca33f0024530ca85e1d590612a5d8b3c2efede0946621bdb2d51da9b8d3bea6d9b22f2f32f764e11db88b360c4ba4092ee7711ea895736f13a1e29ef7480dbfe8257150b80d6c2e3bc7595c3807e1d9b127f354951155da4cc89e13dd694196fcccc62bbc192a1296f2e44b367c88ec4eaf578bc6aa85d0e03c6b70a15344fd649567f6968a96b518e0eb3f981328b1dcbf2a89c8181395fc7ade3061e3106826c9f0bcdd163d9a5bc9979f9b671ad6a6b57ed5e930f763a593b01c10fcd7e27ee79a7b28d62d5f110ed3f96be8468b5922735d99893b63a395aa0b8e0c5ec8abdfe76e5ceef73a5b7326dace9fbc560fb0c50939f45e849c9519875febe765e6f08e5e65c9d551743e36ebbd34f83c22a2c3f89e7056380b2f5d2303a21fea83e445b07e25e45b11299893b73ad73bdfa574ec51641fd8c1bf1aa2051f179ce9448b6b6d32068684c59ae9afb9095ce0eb42ed78281e3fbbc51ca634676b56725b770f7f46c383154bc398f9cef9aae65a04d334700c2c479ab6170cdee3a75a72071087cb22911db25489e64db66707149202468c10b5b3ae7b26c26f487423e411f849965ad2fa8632993be938ffaefc120a1dade3296624d51a5ef1295f455792b89d223916a41b24a6bb3b8ef848d3e57dc4e0e7fc2c2bc5eb0c187578ebd6def2375d4f7b85b2cb10a9e043a7aad0cbae17609dbf43ad3759bf7f6e32fdea4ecd614a9d6dce4f5f204adf86f6a0b73607fe9efe", + "66b2335f9545a93d56ac15a7c763bf1c7246c8f3208f2a6d16bbbe93fb6f712c6dcdb98b25765eeb56c54871d4c2d7c387432153d848a72d592e61f4a1715a9282a8b97f9888fac216fbef2a784f148c9da8a3cd74ecea787fb4996a5fccf6a044ec138a2df359d23570d99b5b43802d0bb0f26f292f62629dcefd86b105e4f0b3258a446ddaeb5a5c52968d49f212b796ca0d2867c03e613558b5854884c96dbe26a1a8db0ff2af83057dcdcd651751d42ad08b366a8a8c8789754a747c7093bf84ca7c537abc024f55279a4a32a77287dd37703093871988f4e439a5aac058a1dc679904d11990c6319b163a41d91be270884b14c528a297556c78118842ff227e63f2d2411c26b5b5c08e1e21b2ae65b2d8fd8d6755b74f7bffe6a247861abb8e2f67802a32fc30543e3b09c01ecb628a8062a130c85a1f89c1b99ee4f87937c0fec871dc6cdb5faa0cde40f187161e2395207595a10863d9de3c77f67d330bc4eca8d296d459fc245b66ef95be412cc34ea63a4b6ef54667de97ab642f3e04ff1d52fd0c53d91aa4c2a099e95c674cb0062ca64a787271c6f3d1f7a151e49564e717093ccc316d201109655a951a2cbc1452d6c9ad6c8a85f0225f1864448e184f6f345f119ea794633fa4ed14f73cb4a93a565a32b23263ee98d6d7ae6d7e72747d0e701d275549cb0e8cc1836473bca962ed3f1634e12336d8e2031276953da8dbaadf43febb2bbc185deb4e4b6bd5b5ae36351f19b3d5fd4eb224185e06ddd7dd9002543d0d165884a48cf560e68decc251cd308eff3fa3d605e749163920c648311f0d458a6d2e162bb54c25eb4ae35c0388c917155eac3e39600a5f56221f8e2874f19dd3620d5148f40be1905a053c7da299dd665c2a2aed1e72c0b02278c6e67f6ec94b4eb9986169b15375ef2cdef3b8ded36ef3f70d2fedbc33ca04f0ecc8214bb754e30bc9596f1425e318d6ef012d8a5360e85bce81a10b4376f9f668382c5453338c0e4ef03a4787bcf971066e1827925ac3db01c8a26abe8270e727d5e946785503ce3e18a1e01c5caab42cde3770d3c133e4504fb040303ae41d707410bbfd76850e8a91fed41759fe84d12c16043a8cdd8d61b999b0f964fe3c3829e365463382ac4e88b50e0a0a25d42df3dd5c9216e117b45ac9168a5190fa7356a050970257871f1e90760b5156ee694372e2751a2c79e31a49a00f546a1e9c829df7066a0b015bde5caffc7f209f6fc888cb5801613b2b7bae1f4fa7266187e6295f3f7e780b86c401cdb965228fc1e343eb18c57ab92295e4fa9f9f6a1de3f4be78453ea916aba396ca6fc77c4694ade2216d7419ea6817ca28e103d36833dc6020a5131a9c7573d8b5fa7b145fad562a061bdd1fa713a3a2cd19bc5d0f58fdb3a10ab41b984ee7bdce5ec312f0986a30bf9eccf5366e90be9aee28f16bd8fe80d521b5050d352c79389eb3c20f83bc3b354633f0c74264761426f3ac09302cd64ecf2b8a28997b40cbcfdccba88c95c4fb38b15ba75295c3540c9d5c61f5f3b33b6183982d0683638109ac91cd77ac59fb9ec61de4e4e753b2731443556848b6c72ba29d436021e12bc33da2049d50cdc955dc13b03d7b7af5b6e646e2d3d1d66a95f19a107d827c1b6cb1a9df3ada381f18b2789eeacf7c48a181bbd29308527ac6c04002029583edc71b9c93d9ac1e22db647f41f8de22641526c5e9fe09b0dd5161445b7c8a574f60c59487a99dd020e01001d937fd6bef90977948bb99717ed59fdfc59ea2a75ebb3ec627470e6dece5a5a4f5b77d453099ec398397019bf38e70f8b43ad39524c55575778136f8715f61043fa7f26bd8deb04a667b4a524c956f625c1cc40b125a73a7fcb8293f7e85e0cb213d3a70eef24bb8ca8fc9c528ba3e99e6288168f494074f0c35ec8caa57932e626f227f571ba3e54cdeae80456b0aa084f91edd2227c4a2fc9a88b070aac07c1356d6add76b1df1cf8bf2220eded9bfda697867e2a8db619f535e3e71593b3a47ca8f7ab8c4343288700dd322317e28d016f777ebfef45915050315e9d7d43424e6326486f4595167ddb226134e72685723564ef8cd5cf3998ecf47fcea5c9e794366d036a263962d39a97aad98c2c183501d480a2b0492f31642ded1cac194e06ea4bf1ddb73d327d526d63bafda5061a6ed1f056959c260ae7371e70bba49e7e002f2f4a1107f5e3b3575e1b80254b637340a0e5ad28f04453a87450f9d8de3e461cf226627c78a3c0f9a022da96c77122b3d00f50a023148d0736dfd694329d5d47381f4f090f3822476d9644024f4ddb95efb0516d1d036a4224c6797468a3de72cad2a0a61dbff3cf8bd1bd77a5e000f96c2487ab180d6c14592bdba2d2ee7f0877ab62c9bbb59c2d420bab61b760f86f2486d4ebeca62b8143ccae97ce1aada007b24fb923c7213d4e824b328a044190c8b668d58208bdcdd14b040c19d58f11e6a773a6f5ab35e4f81d5558259d5717c81798d5edb538b1767e19881f1e3c4cd28a8b27087a78472f4b4d146216ae001b18d5d0d7eb5f4575b23334ea97e4aa99ee4315a34a52cec41856ee6b6c3f203f78172eb21d9af1e75b42b5fe3a5edb5c700a736fcd25fdfed833078f5d2d4f1e6a3e37036509db0e69ee7054fc9245a9d7ef08c2d54851b5be1ceabedac30b21c1c2540498e98080670e1fdd915430ecccfef3bb3c8bbf9e97e63a664841e8eacea6fb770a4ca66bc61cd317c18455857f561a3d4413f66dff4799dd1d0eebb380967e67b657661ca437da3be1838f2577ebcb0bf43977a6e4c570f0a6af142a9c385cb3371130ba19edb4f4b1e47d5ece1631b4685dd0961fe1ddad831f4d73df810ba636f2f6ba2ad86c5e333ecf2e67f6276252e301d648ea8cefb2c906b635e962aa8f237bd8f782a87a3b2e6434633f024f90b5c44b555831d659d5fc98c295d8abf3b6b5cc7da453bad40c0bb5258860f05ec8ef698848a2f9b7569f9b028278eee239968bf3be77ab9\nresult = valid\nsalt = c2a82e526587f4849d37bcab274aacb2bc01529c\nsize = 5100\n\n# tcId = 62\n# invalid output size\nikm = 7b5b2acc573537f4bbcca4bb02d06c902803ead7\ninfo = 26a8336ac6218c2b\nokm = \nresult = invalid\nsalt = cfe7614e2db108b12f077ff8e58e2b80718d981e\nsize = 5101\nflags = SizeTooLarge\n\n# tcId = 63\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = eb919ce9c8382ba88195f4fc48df903947f98705bbff58d576ac9bc129034a18\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 64\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = eb919ce9c8382ba88195f4fc48df903947f98705bbff58d576ac9bc129034a18\nresult = valid\nsalt = 0000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 65\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = bbb1f0bcef58029d47d31d32b5219f5c89e6a108402fbd7f35076455a7f6dc8a\nresult = valid\nsalt = 1a08959149f4b073bcd902c9bc4ed0324c21c95590773afc77037d610b9584806aeeeda8b5d588d0cd79e7c12211b8e394067516ce12946d61111a52042b539353\nsize = 32\n\n# tcId = 66\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = bbb1f0bcef58029d47d31d32b5219f5c89e6a108402fbd7f35076455a7f6dc8a\nresult = valid\nsalt = 36d0017c873ac651fefae61522d41d97ecc66dee\nsize = 32\n\n# tcId = 67\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = dea2015fd2e84a9ca599dc622fc9c87aab224569261290a63cbed6f7f61939b6\nresult = valid\nsalt = af856d5eed5c77f4\nsize = 32\n\n# tcId = 68\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = dea2015fd2e84a9ca599dc622fc9c87aab224569261290a63cbed6f7f61939b6\nresult = valid\nsalt = af856d5eed5c77f40000000000000000\nsize = 32\n\n# tcId = 69\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = dea2015fd2e84a9ca599dc622fc9c87aab224569261290a63cbed6f7f61939b6\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000\nsize = 32\n\n# tcId = 70\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = dea2015fd2e84a9ca599dc622fc9c87aab224569261290a63cbed6f7f61939b6\nresult = valid\nsalt = af856d5eed5c77f4000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 71\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = dea2015fd2e84a9ca599dc622fc9c87aab224569261290a63cbed6f7f61939b6\nresult = valid\nsalt = af856d5eed5c77f40000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 72\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = dea2015fd2e84a9ca599dc622fc9c87aab224569261290a63cbed6f7f61939b6\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 73\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = dea2015fd2e84a9ca599dc622fc9c87aab224569261290a63cbed6f7f61939b6\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000\nsize = 32\n\n[keySize = 256]\n\n# tcId = 74\nikm = b18e35e63cc4fe4117bf2754ec3f9ebb5346dbb0bf6d4e5f2422418771816fc4\ninfo = \nokm = 8842b25685d615b84d2aded432bc637a6291bf72\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 75\nikm = 236c2ba20c72242820f63d3e9c20633162c1cb048a45dea13861e8a138b9640d\ninfo = \nokm = 7963ec539686050e96da3e3da97ee1fb997209c0c2d73ae0750032cab8b6ea4d3682568753815b9da183\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 76\nikm = f2cba42dd82acb5d2d569406815a3769b7becb13fa48537fa7d7d5e121081d39\ninfo = \nokm = e8687a27812286db996d44fe0c21dbe772bf3589d40b36845cb8585f7d55b433d35dbf5bd566ce742eb3c3e9975821cfd67ca223a2f8a53b4575489dfb7ba116\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 77\nikm = 73d97f2ffde01b447a5b8573190a8eb4f87f7ac04482836143f780ad876bfffe\ninfo = 74d2301c5aca2441372cf6077bd8806dab3e8721\nokm = 0f0e082b4d3afbd94d5aaa583c0ad3d8b746b9b1\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 78\nikm = 6948521434707e96fa943e44988d1ad409ec57e6594867e8193e9d727238916d\ninfo = 9eaddd1e7edb6b84c96fb5ac7e0d673a8f5084f2\nokm = 623eb8c00bc85148d561833bc44a092b4e05e033640decbf36a70fdba26987cacaba3c19f71536986348\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 79\nikm = b72b3854923b8a0048497a86bddef962552c8f6b2c72b2b2006a1820fea5c6a9\ninfo = 113b708f7522ec3b362999db18699bf7871e3b8f\nokm = 0e9718ad1fa0c5501b42ef7a9b1bb1e4a985f834d44aa10cd77510c182dc2e948c801d5c6fffc92a8342c034b53c499d6af89f0e80ed1942ecee741195aec71c\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 80\nikm = 44d774def90685c0e9a685fa50fd434c807d1a57896fa42f91778821fe232057\ninfo = \nokm = 05a30d9926c5ae588f0694962837d40d412a0555\nresult = valid\nsalt = 0d7d3b47bf8484c8adab7f9c27c9584f\nsize = 20\n\n# tcId = 81\nikm = 098ecd86354496a701ffcac8d589a1217231da3b80ccce4ef85762d7f3a2c211\ninfo = \nokm = d8c830bdab6a974b492da563d100201b3361de746a77fc29cb9b886a84aebff5eae86d9cf2ed5fbbd8cd\nresult = valid\nsalt = 5232e5e4e2dd6133d46ebe5a8a51a0bc\nsize = 42\n\n# tcId = 82\nikm = 917ad396520e454a571ac39a9f6bc845a8920954fba1ac400cb2988cd8847ba0\ninfo = \nokm = c0d75cd597ac28549030c94a90a8935608ec1300577bc84fc09cb35a3cec2a60b98cfb5d6adab160a960c0032e470cf82a80b683c1580871334f248ed92beff6\nresult = valid\nsalt = 962d86949506450eaca929286ce5d9e7\nsize = 64\n\n# tcId = 83\nikm = 1cbff2202268edf1985bc91466b80133644988c5e81368cf0995274204fb0aa3\ninfo = 3e4f9c8d3d607c2ed43caa9e87e6ecbc307c6048\nokm = 6c8dd17408c8c2492537ea032874aba93e19386f\nresult = valid\nsalt = 2bde6e33534731f52d39add940ff46f6\nsize = 20\n\n# tcId = 84\nikm = d00d6b4fe088077ffbc64127d6bdb9707a0f9061c0b873c334c3be0adaa7c2bd\ninfo = 4266351bad419173279c901aea148e8b1d99e50f\nokm = e0d47f91e475fd3c8d53e9a5bb4230c0dbd7be0b96ba9ea66d9066291e0f397bf634d2699d935686d4c3\nresult = valid\nsalt = 1647a044472179d454b8d2108e4a2aa8\nsize = 42\n\n# tcId = 85\nikm = 9a27c19b607adc8f152faeaeb1282002d3a2166894b7fe5d65829ecdcfaf73b9\ninfo = 36356cdc28187c11cbb9046f9ce7502ab4d2ea46\nokm = 20e2676587655ee3c899bef116ad4515e947cb549c0fd5d0f3cc61335bbedc7518caafe1950000a067f67bc7bfe5ca81f021723013fd687a13b621613a0775b4\nresult = valid\nsalt = 70d83929a6376a6eab859f0d6225f131\nsize = 64\n\n# tcId = 86\nikm = f5d1c855d3448e212d76d3927ec797dc439cb182f427064288452988ab79c83f\ninfo = \nokm = a605589e0fe22ad6dee3e7910534a58f69d24e02\nresult = valid\nsalt = 87ef5da5400db731d658972ea82b76848004e70d3b22cec76c8be06283c4\nsize = 20\n\n# tcId = 87\nikm = 3f19b7095a6b3d313b59c3ba2c3a78d8b24f30c9ed4f8be9eb92f8eeaabd2c3c\ninfo = \nokm = f364e1b27fa697d6ebc5e2931ba9a4d81c42be447337a8ff519455fd5f89cd356bef5fc8b795334d6a8f\nresult = valid\nsalt = 8f1f6c8e4f68830319ae859b4b1fa71f1d69552b0c3e53cbbad26293651e\nsize = 42\n\n# tcId = 88\nikm = b1d396c69f14994dc8add0f6e0cde4455677ba9ee95ff84a142295f9177ee629\ninfo = \nokm = 66ee99f5b2ce636fad989225301ad571d2124cd9c758042eb005a9f3ef091694c036a5975b39396877aa84342e26f8020eda23f0097b89ed7f3252afc87b37f4\nresult = valid\nsalt = 7f693304bff77534b8246d832749387ecc0e8daeae11d77d022ca9e362d1\nsize = 64\n\n# tcId = 89\nikm = 003d1901a10c062ec44e0f2a94c544b7f53b33f1ea4679fa6e023c2d0a907fcd\ninfo = d5d3ef5beb9840d15efe9c778aefe38f1bf7bae3\nokm = 6924d12a17521e8a235a4b0df4eb8dbe3d5cf277\nresult = valid\nsalt = ed86cb8c8ba1c989f9a60a4a82c38be98c70e6218576b292c93fcc18192e\nsize = 20\n\n# tcId = 90\nikm = 02e0647a4b7ccfc0d3ee7ddfe24ce69c02f51cbaa836b96cbc5a9c2885c45599\ninfo = 4e9e27d971e76fda614fde15031f6664b97d4786\nokm = 3fae59261e358dfe04edd33c1b328ff656a3cb4fac2f1130c97d4e34f10777aa5fc3fd586c4aadc7dbff\nresult = valid\nsalt = f0862f61f2377ca34b76476ae21e331b114c7712aef501a1bf00f7e9cb79\nsize = 42\n\n# tcId = 91\nikm = 92bfb7e31e839f109e6622b2c2c4f41ce84c9907172681920e7d90e80e2339bf\ninfo = ff36776fc755722ff371f21cfb37a168a2731e99\nokm = 6ec989baee1db032c1867222e1f98104c546dc784329367a1e0ff4fe55435a88235a52786b6854f2fd809e1ec3d4fe836b9345474fafec29418da2e213a283f0\nresult = valid\nsalt = ce869619607f71fde53ef55e18d01d20002e3f91a8b7584190fc6667b8d2\nsize = 64\n\n# tcId = 92\nikm = 17632581c34ab743992cd99318889b32f92812bd37f41636b5fbbf2b12190c6f\ninfo = \nokm = 2486d2d795a6be77f2bca215de895ac1b011bf84b58b07020136cf87972402243ee2c210902c33116789\nresult = valid\nsalt = 55e39431c83648867ac98eb7ecbbc8b41c5a5e774646b926a9b49c511915b0de1241f8666da198f6ba4bf7e9025e434b6d7ef794e7a563309303055fe3bbe769\nsize = 42\n\n# tcId = 93\nikm = 045b4d451bc30c39afe0932f6cd62e65b4b2ae2cf1160f19e8ba1323f7ca146c\ninfo = 613e353162c6c1b12fb1477fbc54074ff7848a14\nokm = 7c9b85c582725a15a90570f03c8ba3be2c5ce553db3ff429fcf6eb58e3888c5dfdf29f003740301346c9\nresult = valid\nsalt = b73682dda0fad41095070b2b26f2d7d98ac62202d918258ca9aca0f794ef5e4d23b3fc43c8cabf9fcb37ad9a62337fbce967fe24054c3bf891195858e53997f4\nsize = 42\n\n# tcId = 94\n# maximal output size\nikm = a65a2526a0452a6bda7e16555658611216973b1e85412e0c6fc8f4e25168cc3a\ninfo = af7eddefd083edca\nokm = 70e1bf4b225a9a6828cd59bd32f1e83264b7eaa6123592002498497bde3f7386c1a42a1866a668c56916e3b3ab355b8807e21f79f0fca49d5ef88be9a6f157c1dc1f74a473212ce8f1ffd759fa6d301718578a7c2332c32d2d924d7ea767954a976fa40043e70c980626ecb4a3326e889a23d0c7267292161da339df633540ffee5a4ee5213e4b37ee302a611fc5130eeb5c0d8e18e7657081867deb121194b3e0c2186e61d4f58c89561de51791708091ae2b2aa2467d8969f67720ef1f6bcdf636cc015fb0b76d8085cf006f7eeaaad6a64301723aaf0a6279aaf1ee7819e882cd5a9ac33cf8b8f5e8b56642f6d540126010f7976b3a8a07152f17353919bbe7447126b004f6100d706627f00a7cd5660026064d50b11b7b487c1a2ac9ebcca2e4a590807293e8e46b6655d4f2aa170a4d42011f0cf406afc63c6685c2e6bb203fa1b80a90160fd4ea1ccc87402bf658cc776ce1133250a35a4c22a34450d180f4eabd9a63a4a38b67a91a4bf6f2c2ace2935e36b03d24566bac6446e0916af2a70675cca74828c5f70861c438d58dce384a3df4bff3c6f372996e2d104878d93b9dee0a7ee4c83d56c206b6d3dea1af2f9ba268303c6be86d99f0b576115f5523dc0918a54709189b3d1e458caa80ea376a3cf9ec421962b89e9ced740dc6ddf065af43afa9cd925ffa8c7d7a9a7643ca73890e490608ad77e0c9a9b98db65ddbda8ad76c8b2539a34370cc79433e0023ddf81bc8a83bea1ac4fbb181ee800bb5682d67fc9c607b178fb984ae9f55471bdceece6c3c5e6af9491fb7d3962bc8ab914f0ef65358a6cd63bee8290d581c1e0bf8b5c118642aa1bdbc02938773754cf6a5a3aa98b9012cebe9c87eed630496d27a28eea3835b7ff9cb51d779a5a60528d08b3ec23a31ec6b5603ddc85b18f0c6772e91019cb15159da61c5df0bc29c4bdeb2c68c66021196b8ccd12d6ca75180b1c129f9a75cd59fc8afc51574d2503ee76fffcf6ed6d46477b874665ef45e6ff04a916b67c89f9e57819c66baa782f12ebabd3a5468b5b729834b0ee0e782201235cc09ffa7f5293ca8d3ca347545e2f3f5806ff44bdc5c8d0ace63e947820b67281bfc1ecf36e637c430e1cf47e39b2ab5f47b4cdbaf60e6db884bf6c5200e0249f7c3e0ba814d6f0ccd914222beaa845884b00faf29b2e630c1a55e1fcbf5d5b3a6fa74dafac252647ff40a271a749fade39df7a1f86f046ca0fc618b649ce023b3a92b35e657deb8ce2d181f2ae6eca0989452853e4f2115567793748164c1cc0a114506cc3ba32bf682030003928fe9f9e00be2236c2b7173b33623452fbbf40c90e5085e90703dbcf1a7267422a68840c9010bbd49961ed0a935f5e6e8c1963ac04b851f0ef8716cbebc27db8868e78556aad4ed4b80e39443bc8ec25359bcc1737330be79227f136a0357475afc585c621a8520d0639fc750d1a44f243b553aab880025687a06947e45da0044a74ef4f352dfdeb629eb1bc1ea343192c68139e36c816f74cf3ae3e476a3652d1d6cfd02c0b84a99c728ec1a3b97f28fb5a3ce2b03c2eb8c0f42aed83e4f5891911fbf189dda44f302def860b308a9022b1c46800616ddd799ee19f7394e3ac10a305537d9f0659bc48fcc9d01996a1fda0df5597c606", + "00cdd0299971ac4f1cdfc6af7de2a3f131c868714a24b3c0aff8162951852aa97a29cee9eb7558bd2f384065130abc4de58ee5b268aab6b2380d885e5c98d22138fdf77bff9fe2370eff28f22a4515341d9c226a6dded964086f3bcb5342acee09451c6257eeb434b61b8d93b0850d49e2d229fbd0bb84ba4efa3fc1c2d59a2e725a528fcdb44d43a0e1f5572d52b3f526581af49043d939e9857713d04ba2a96139e007b974b2971f71a0bbdfa76998f250802eecce869bee6e4bd3e4523c3b5d32a61c9f9aa1e0bc215484a4b11bc81ba3b2562ea49d08f63b46edfdcdcb7a496f414d80f853547ae94d8654de4729774b08dfe3acb94ec5ee2a940efef53bb76d2517ffe1acc915ea5c17652ec6651d3f7734cb8b7aa176c5f2e601dc42f0700357b592d4bc72c25e42ad9897ef1fb43bec5be51b7225e57b87732383d0274e1a9594d4cc22451611ec5de786e31a69fdb3c5aa4a857e02539f1655c542c84a32f40dffc4ae8d83ae8c8f7e54dfcc4362fb4c8134a9137836f0ea40b329bb7040eacb31e7b362010fda9fabfa96622db22316c3b297e26d2b867bdee55f600e97d338cd5a2969f38a76f968d9b76aabc392bf1089c0f99dad174b6f8b8e9897bbb0680e9fb08b39f1b9d618b81e1295b546c3ddf7b8b807950199d9fb48a3c1754d97344908e8a4831477132cc7e8525a5fbbe15608619dd369ace1f9c73c67224358f4ce07dbb3cde19df4bac7bc706f18df54c17c3a8284610ae25c00913edbaf2c9fc8ef582ea3ba5c50b7d15a93acc50f632ce4473009da29a6e1852e752a15e6b7c56f5a0dfe65e5cdd00edd363469dcb9866397646722c6ae0f48502dc75bf8381225a17f3533be924a0864f60ba58341a75b1a83404d1d4380f0565c3d55533e858d4c9f427c712965c015fe91589d43a4ef4e95f4bcff164ba8752ed83cb57a7b460d2c9796177433588f800fcd518c5e99baf8ed652e61c1fb4d47a882174e4a0d2d03078b2316327799adb88d07270fc7c9d7919b6be24bbbe2ee7999ca00eae4c64c19e217196c8df9a45d7a9009f11444340eac6454db20263873c86d884d466dd75ffa5315a693fca6ed2af24452a48c9a5e36c1cd7408f5e6a8fbc41e3653986e0f355a05288c51d1f911c494540e9eb164e2cf270d4d07c334a47fdd3d870a2fe69516f8b4ddbc3c0f21179c3ba3863d2851ee1ff0f336a23add665ddbbf7a8168c6e04119eaf4944b132df977cfc826cb53768c275848a498fb3c68a352c1d0a51701bdbe7194beb546c6f9cca343a7e3d86aa74cae125b926dcb5037bf7b3ac08e15c024b1997c4d01f95fc1a941027f8efc6b8abf34c6b25aed0b4052c0bf15aa56812d90c7a43856d9134dc1140788dd2300c555a0ede7be750bea34dd3f8ccbdba143abf975879f9e374b6d417fba64e22b5c848189173a9f972176ca68e2591e4be093e51ba3775443101767db9be8dd92953ce03d91a9f1bb3ebf0a3bdc434be0197f527da23927d8ab4ce0613e363fb7acafa3f2b11ad4c1f12a1990c431bf2553d936d98822a1c893a41663b0ccae8541da379d14895584151c57605c76390b1c91dbc752acae6ad571ab4d0a47e2a4db7b88fedf2081e1c0bb0cf5f60230129711586fa5c99fd34cc3816fcc30644195c4bb72fe8578d4007f7cc16ede32eaf34ce19084782080e2815f25d117dd1d911601fb77bc0e471189fd0a4bbe01b1aa979f052e0431dae1abd9dc8e2cb7d575c5749fdd82f247f1686c24677f8d3a358b6860632d26af38f2d4c91457372c11acde9b447fa1a598b5ec1a3ac0babdbd4eb737f3c4c2f2e15b5d8df3b8d6e6b70a3cd365b57349e6ac60b8759bb09bbef1855c1468d10a777a2babb7e77313a321f2169761108d5e8f11c51c1314fe8fd59aea60551c402c4102d08f4d0c54e4a8ad7303905e42bae5b1ceb09119324e274b63c32215eedf7dc51e4f1ed19f013c5a23c8a2f0841eafbe1ae2ea5f4cf20719010a448f154397b6c65be5867508cf112f9f2ff236024c8254d921c8de4e4c39d91e847e7aef69a2747f75edde39e3adc4c653f20d5742606baaf985260b955c2b6e1947b469927a61d866f797e73fadb2821ffe03c109219078d8c24c852188e3352fe257ca3e371043470575f1b180d0747550d9ae8b55b29b06be0cdfe6955a1acba316f2e0d9fc4a99d7725d022fc240e3956bd66425dd2c844b4824cb5307af5d6d77ee97590ecd849650cab25567bdfef5661d35966a16ad5fea8ca1dad42e19bb6b2b28b06e24dcd8bb240e065ea027ca71ee286e9b8c7a4100f1f08391dfdc0ea125e35c2867aa55f21af22a5ff685ef1bc3a023453bdd381b3cc0a1f0470f0e198c8e9ece8d469479b73f3eced657dabb588b95f82de80b58a924e41146274cdd7b32aaf7c2c1f600f30353cbd88bd236c37619ec4c54f44dad9eb79b5e0f5900dedf93b43e33b94a0bbd24bcf17aa7986287232717a8ccf085ba6826f7224d4a35fbee2592b32ad48cbb30961d2412c65f6d6385107267b7595568d7d76fc8cf4ec6fb06f1c38d29357511454a28ef029da6b9007f3d6a400c381f4b0bd99c5f8371d97a7adcf122bc8d1b51f914016fc96f1ebf1628d62d0c1ff93bc16b960f93d782c66d73023685a881acef65f40e5891132e723697082b8a9bc48eaa170e5935a801914c175906b0e7a54f199907562bc2a3d919bc41b4b4fc43872aceceb494f186fd2510925d082c623a3f17f80d1d421710b91035dcfdfdb912b84270e07c9be495e8713ff51df5eda5a030e51516917605e24d29f2238d27b2a823443e8c7659c62ee4d69d3094e95e630e27e2c0c913d200e23fdfb947f7d2d2037284680aac2d002adb79848e99ca1ee7d5c40e190a3ef5f05c59eeadc97449300b0f41943dd70f3ca2f59a218a093cc036cad4f8f3bf1d488f402d5c5abf5ac9fee0263f6d44fae0d5c157ac12b78032604b618bd66a2dbec688b28a0c301ae294b1e2fffaf0f4f92030aaf4154f91baa6d1167ace84be70da0cb2c38c1f1e8a0e8a7474f3f3e508c1fc9d4a431e2f1f45d142f8cc22af65ac656b94109905ca95d33e809586d3b409ca68269bda1368ecd8e9b6e2d95327aa491b6bc162a9f6c4e8162809b0efd7bee9e4c915534083d5cb9ff27bfaa40f7cfacd1c301c740254ab4421aaeb4fdf8d6f46014a3c3ea23256ac64fb2fc95cfb99688a8788759d1dc35992d455b3ecc4a4c99ebab223d774270d7ebefa8545203cefd49bb21397b6d68664dad1b3461a5162fced871d8fc2160d57834356ec88841f89da475fa7acebcc2321f04c6cb56268b42087b52191d43bc82c29c44d451d6798758b43040617a6024b5750577ee3679f43e08a893da6c330b54cbcb6a3c6eee525d4740ad5cca9c7dd75c3d1b24801961f7a517386fb0ed2b181521ab207574fd4edfa09597afd0fe976d2edc428ea28ba9a5c96162bf891e6b50e345855bd6852252959586aaeb63c1aa0c07c422d70e5655507c090ee47e98c2b7cecfa6a4d11210ee8f22a28806b5f5dce15f139385dcccd2838a7c6c71740b80a7f0239706fde8be06cb1e8e352c176b8bb564b5cc98eec6d4a554a4d7bca07b5f72ca8131fa8479d706d367d32d1652c6f8ec4b9cd374153acdf29bdedd5d385e3b581a3142092b28cc3c8d89c3470cf56ceb9109d70d5a0d98ebe4e9432143d6ccd58fcde6a1f0eaa845175dca5ff85dcfa5448bae273be2dd5354654763de0f2fb0974164f001b42d1156ede02fce2ca912355d59e510ddef52589210506439138c230298e2c7f1b76a4ca7dbcffda66fa2a52e146dcca8ecc0cfae3340fccd033e83fb85cd3ceb30ff33a8bfaac4e9d3c28bd0a1ab89d6582c3c9cc6894e299e71551e4f394ffd81b0a67985a65c9c9850ce869635da0c769bb283bf27c1c2b70fac3b7f0ec6773351753c7527cab97a982722b422eb950b41b9e03e025c17c8dc73852490bc83e82ae956b2c546aa0b1c9a06dd9d4c60c3702753385f67df61422906f5a63cc5ff225efdfd57d9e33acc917b68661c8145e2db301777659692925511534e701ad80c46479e5808aeb1f90ed45526ccf995255555d57f987e2e56bfb04233aad88790207b67b7675db58cc00f7594bfe5089671617991124b72ad32d46b304a87c2a5074c581421652bd730808ebb039e74cdd6dfd1f8dcbb55f978458d1b161780fbbbfa52e3a2288653210c0ba901b385dd7d886cb2db18407b37e3c455b2773bc670436ff702af2bd9d87dce441ed7083231763ca76fb07389de0be1029f29c0fc873fc2c986ffb21724c6c1a746ec03729a0d9cdcf123129c550b8e1500968110c363bdf0fd68df0e3a60146790b216447f82b17718c3ceff4df0ee840f42712f9bf4b898ac9e703afd5869309d89604f2c6fdae0c8ca348e1a980303c522d89949dda61e02982814708630324e6362839f3d28b80adf42a0772c52b532ebb2636c8a006a39b0d384cdabcfab075e66116fdd9ad6c6af17cc812d4b691708f671d9a63244dd833e2c3a90aadfd68ddc03fa290663f0fc7445aee617dca94941f94ca0c6638d99b92f0ed7ebbe5fb6f1c02273751094d8aaee32772365cd8efdb5a85290bb356c4c787dd8bbb9a97ae562c27941bc68cd38f314080c89e27fc1bd7f45bca8412149be8260eec24928f77fc7a722a42e5050ab5d135985c56cb68abd5b7ec49c56ec519c63373a1c8d6dee785671e3c104ca6f5c740c7ca3bb1fd8cce68a097c540fa40f9a4f2b21a7853554556596665881038d4d4530862931aca8cd76e412bf5d2ef66b0d67ba991c4c676d95e2a8d6a4ba8b9dc70e165c697227e59323c96f28f81d79db8ac1fb80de77f13358a2255b9a8c56eeb7a4e504de72e71d31cc6e4b4166313035bb6a44dd80a369c9106e9baf69f5963f92b2bc7c16d39e0e8b88611c36523a7635bf8172b995892bf67bf2f5b4d971508f1a1a8d8d1bbfc46f87f2bc50ef30a8922a354764c66e9daa50194e3ee90ad0b59072fa84b1c2e36f93446c9b920f543ddbb0485f18191cd1aba0387d7793aa3b6e62dc49e3bb5b7ec1cc06840fb671dfb8e6c185ae1e0c62a142d244863689a5772eb78c6356122498bc088e53f0c6895cdb1cf0f646ac6db2d8efdeea5f7ff23c91901c4d496e34550695667a7db538e2a4982d34e8256f18be3d493fa2cbe46c1f04b0474328f4eb417ba155cf3d926107845f0a734488bfc5c9c3b0b236750bcbe0bed15b7a5d219a7c2df95d3505a4f116fa6dafa8b746f4d1fdb1a502d9a45849cf2cad4dbe24eae0b65cf4f38ee38078997a5ade9ccf13fe11206362300fff7628603a4707c1c2fd5eb883f5321e8882c1dcfa1867877447ed9b6813031b95ab9603ced93317b265f70229bfd702da85e3ec5df6d2b9dc2958fb9a0f99e501efd391e22c0e198eec87bd2db850058e6f42b53d888cf8c5fb400ecf6e804554fe2b8e7a3a9d9db7a7704c3a2c82643816d8362c909720a693b665d3eb\nresult = valid\nsalt = bd5cafafd71f517269ce6300208db7593c558639\nsize = 5100\n\n# tcId = 95\n# invalid output size\nikm = ac106eababe3b8fcdfe44ed3f332695aa50833d5d110632b4215a86f9f4ceebb\ninfo = 9824a5f84186c0ea\nokm = \nresult = invalid\nsalt = aac161c03b3d3cf4d94072a48fd6ca3619510888\nsize = 5101\nflags = SizeTooLarge\n\n# tcId = 96\n# output collision for ", + "different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 06e27d970948bb30a9d453d843ab332ae2231dfdffbc4815788695c38368fb03\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 97\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 06e27d970948bb30a9d453d843ab332ae2231dfdffbc4815788695c38368fb03\nresult = valid\nsalt = 0000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 98\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = e86ef68c222337607de55e6bef35d9df3563cfd8754a5a231a5fb110f1ed1b40\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 99\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = e86ef68c222337607de55e6bef35d9df3563cfd8754a5a231a5fb110f1ed1b40\nresult = valid\nsalt = ce4fbf306d1eecef0d60543d9726b5b3d3d5d8d2\nsize = 32\n\n# tcId = 100\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 101\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 102\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 103\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 104\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 105\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 106\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 87cf7342816d0b08822263edae8567b453a251373e2f3ce338114b6738cdd1b4\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n", }; -static const size_t kLen76 = 36808; +static const size_t kLen109 = 80000; -static const char *kData76[] = { - "# Imported from Wycheproof's kw_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: KW\n# Generator version: 0.4.12\n\n[keySize = 128]\n\n# tcId = 1\nct = 9de453ced5d4ab46a5601708eeefefb5e593e6ae8e86b26b\nkey = 6f67486d1e914419cb43c28509c7c1ea\nmsg = 8dc0632d92ee0be4f740028410b08270\nresult = valid\n\n# tcId = 2\nct = 8c3aba85cc0ae1ae10b36658b068f595baf8caafb745ef3c\nkey = a0b17172bb296db7f5c869e9a36b5ce3\nmsg = 615dd022d607c910f20178cbdf42060f\nresult = valid\n\n# tcId = 3\nct = 1de093654826f18fcd0f3fd499416ff22ed75ee12fe0b624\nkey = 0e49d571c19b5250effd41d94bde39d6\nmsg = f25e4de8caca363fd5f29442eb147b55\nresult = valid\n\n# tcId = 4\n# wrapped key is longer than wrapping key\nct = 9c3ddc23827b7b3c13105f9e8b11523baccdfb6c8b7e7825496e7a840bd32aec\nkey = e0e12959109103e30ae8b5684a22e662\nmsg = dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e\nresult = acceptable\n\n# tcId = 5\n# wrapped key is longer than wrapping key\nct = afb744aaf746dcc0b57f8b378c404cbe877f44cf3d45140d60814eda3f541f01\nkey = dd583d9f1059861430ec8b5d8a180e9b\nmsg = f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487\nresult = acceptable\n\n# tcId = 6\n# wrapped key is longer than wrapping key\nct = cff98cd64cb51ab99b81aee82cee4274d0df3e1b6a4943d39236ea989846d0cc\nkey = faf5ccfae42b43cee2c5f0f3177a7c5d\nmsg = 4e02084833660c463830483b36dab866c64c8cf7429cac3d\nresult = acceptable\n\n# tcId = 7\n# wrapped key is longer than wrapping key\nct = 58dcfb0e7ec4d3bc8003418d865fbd520c6b24b2bde35b1be5b1c5ff32a130f33d035e5932616083\nkey = c2b9d23f2831ddcdeb456853d4014db9\nmsg = f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907\nresult = acceptable\n\n# tcId = 8\n# wrapped key is longer than wrapping key\nct = 4ee47bd68d418586c447a39111e2ec1502ff0f1726ea91c5d97370409d89b8e66e889b638ac40ced\nkey = 620a08f320cdedbf7ae551add348d95e\nmsg = cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291\nresult = acceptable\n\n# tcId = 9\n# wrapped key is longer than wrapping key\nct = d3b093fd822ce454ebc251c6f21fa71c3858ee7e623ecbfbbf887398a30b40c55d0565c7a15e4015\nkey = ed089ac274f8c7cea2415671a94b5e53\nmsg = 6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299\nresult = acceptable\n\n# tcId = 10\n# Round counter overflows 256\nct = 222deadde6efb760cae42fa188310e0c07e7d557529766444a9efb330907d42f0dd8f3d17b3a38bf40d68c095a9cce19daf907bf2c92f1e59b18b277ff0397fc50f45f582db936aa8afb943de01b58abfdc81daef4e038c99e4c1eb3ee447464bb8f89a4ea81e56556cc26c72883c06a7fe850d04347d68bbadc4a06775030676db8cc34aeb07e39c7f059c2bff76a7f2baf076749004ef7189f887f89029f88c5c1d0f5ee62320b423048e2ad8186e63be23c553f5576a40d967e8b527ccd783c41abc64bea1aec8a76deb3e9c9a6656756e1dac38bd25ff008888a5591af763fd73f5addd749794817070990484654a46ef442adaeacab14d12daaf87bcb91661a21593717d9b93529d813ea5fc812d708c0d8e9b68122d9f5e6267cde363780a45d07e4caa5bf14f2334f25b9d177632bb80a82894aa47b6f360b2da1138dedd4331f077c900554c7a68b5d154980bb3517ac20a78a51f6f21e42b2c4c960d31cbd22bd610819182c5e456ba7d7e903f5e60f6e0c4cc014feb4f81973ce48ad6f4dab8da51eb7\nkey = 31cacbb17d6dbbecae40727c5048fe0c\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\n\n# tcId = 11\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = \nresult = invalid\n\n# tcId = 12\n# keys of size 8 byte cannot be wrapped\nct = dc26fb6911d71971df0356d6bb9ed6e6\nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 13\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00\nresult = invalid\n\n# tcId = 14\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001\nresult = invalid\n\n# tcId = 15\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102\nresult = invalid\n\n# tcId = 16\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00010203\nresult = invalid\n\n# tcId = 17\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001020304\nresult = invalid\n\n# tcId = 18\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102030405\nresult = invalid\n\n# tcId = 19\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 20\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 21\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 22\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 23\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 24\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 25\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 26\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 27\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 28\n# bytes appended to wrapped key\nct = 9790ab51fbcb850df6764e011ae97c85785bed2633aea66500\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 29\n# Incorrect IV\nct = 0aac329ccd513edbdd6367df67999eaac9e7b51984c4d38d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 30\n# Incorrect IV\nct = 5a55dc429749ca49bb4ab01d966b19ea9a9e1402e6ab2962\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 31\n# Incorrect IV\nct = 45f533f6072f640eb7e1e512d56072085567f4ad6012a97a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 32\n# Incorrect IV\nct = 84f284565df47c409107f7a0a71bc370a8ed4489d414b9e9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 33\n# Incorrect IV\nct = 3941c366554fc896e9fe52f02493ca03d439eb17c236146d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 34\n# Incorrect IV\nct = 45c9d42363d981d086a972728e130a42f5dd90bda562a85a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 35\n# Incorrect IV\nct = 037d17859519d6c0728a9eb6e64113e86919decabd3bbb88\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 36\n# Incorrect IV\nct = 1ad10af7f6c042b267a0c7bc4d25d27c003deb50e2cc566a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 37\n# Incorrect IV\nct = 630c571b7fb8647ac5360a255f9f5d3645795ac45285cbaa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 38\n# Incorrect IV\nct = 16db553e467d4029d0fea62b2c440e5df6c6591f0497a99d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 39\n# Incorrect IV\nct = 097991090a156047d4784b757f262e12ce57e13a3d5d28", - "6c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 40\n# Incorrect IV\nct = 3957c338b750a3285eb7b65c9cfe77053dd7d8149f42caa1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 41\n# RFC 3394\nct = 1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n[keySize = 192]\n\n# tcId = 42\nct = 00be1caddfd5ad7697877017795f9cee4bce5a61687a6126\nkey = f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe\nmsg = 9adbc00c710b1101bdf6a4ed65b32d72\nresult = valid\n\n# tcId = 43\nct = 54e7f278b5a1fb4c31a0d79ac1f615edd910bf22015a0668\nkey = b713f6b7814f98894d7b153974684359f1460213eb74be68\nmsg = 78585f0c49922e82caf17ebc3721b4db\nresult = valid\n\n# tcId = 44\nct = 510455bd9c078ac1f07bb3752cbd04e421b0dd635190fa62\nkey = 13ecf423211caa334ba6db37259a535c20de8ad10fc8c432\nmsg = 4fc75d0f221e22408a37e11265d49a05\nresult = valid\n\n# tcId = 45\nct = 880da5b410f913ad72cc93f46344f1152165bdea14664fd2d3afbd87b8cc5cfd\nkey = 4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1\nmsg = f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5\nresult = valid\n\n# tcId = 46\nct = 27654cf6a63d6004ae83da54c2e5d7b5fad20878f350087ddd17ac44a2be868f\nkey = b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e\nmsg = 0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a\nresult = valid\n\n# tcId = 47\nct = ad7ca66ad4664f43e4dd09296a6e6f02d5af4408f225c0abeb0d9b76c8d1e982\nkey = f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000\nmsg = 241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea\nresult = valid\n\n# tcId = 48\n# wrapped key is longer than wrapping key\nct = e245c90a6b46caece94f47117d608331958c8f75f531ebcdc902c0213d9105f2155af07daa62d132\nkey = 1639f9f81e53e2eeb677a249e5eced3af108971301601a7b\nmsg = ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691\nresult = acceptable\n\n# tcId = 49\n# wrapped key is longer than wrapping key\nct = 8a32b9f207ae5aaedb7e8a0d945107412c1bd06999bc5ac83c1f958dfb77ebdcf9d98c60dbd4650a\nkey = 1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0\nmsg = 50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380\nresult = acceptable\n\n# tcId = 50\n# wrapped key is longer than wrapping key\nct = 4a5842b10d2db96ea1039ef4785ce722555b3751a9b6dd39126ad363378c72320d83ea7adb81615a\nkey = 3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771\nmsg = 65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf\nresult = acceptable\n\n# tcId = 51\n# Round counter overflows 256\nct = e2192598e6124f2791b2751f930958435bb1d02e98aa1e09781bba0b159435db659fa73fa310111704692c68e16ddf4be06022c52fe9dba6279aad1aeb814125d0ddf33f31e58e625af32305050cfea390d8782d32caac558889ca8e641908208da6976542b40dbd090178e2a6812a436c18a5e891ac8083176ace1ddfee4d382856a59c80c643ecd5c1ab68c66b2b8984ce6e0e386f6554a9cb91d363bb4accf028878ec20b8b2e37214f7b12dbcd78fb38f711a90fe262c78491b9058354e27b34fc92ef0d7028594cb08259f86b54cb1d317ec55f2ef2ab7e8b141671f8bcb1a90bb7d82bc8cb4fb02c9ce430ef4ae0dc847e91e7d4fb463eb9dd87fc9dc9568f3a4ef504d74c134dcb60ca01b36ce10cb467268ea297c0518a50d12cc025cfeea1381ddd7dd63e4ac94890a0eae9dbd8db244625a3c8af2e1aff6a8112c4d3d98e8263588ee1dd9063b709b8ec00474c4ea413a802b8cde814e7b3731410809ed000060fb7b9b0bf8509ef17515f333e868b188ea16445f380b3a7d42774f6456cdf724246fa\nkey = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab63502\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\n\n# tcId = 52\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = \nresult = invalid\n\n# tcId = 53\n# keys of size 8 byte cannot be wrapped\nct = 38d8238cdb0d9a2da28d6d56194f2e78\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 54\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00\nresult = invalid\n\n# tcId = 55\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001\nresult = invalid\n\n# tcId = 56\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102\nresult = invalid\n\n# tcId = 57\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00010203\nresult = invalid\n\n# tcId = 58\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001020304\nresult = invalid\n\n# tcId = 59\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102030405\nresult = invalid\n\n# tcId = 60\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 61\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 62\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 63\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 64\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 65\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 66\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 67\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 68\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 69\n# bytes appended to wrapped key\nct = 55dfb2f7e0c1ea04fead897c451c0505921dc47f308c491700\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 70\n# Incorrect IV\nct = 9b1593fd7d4fe25a660bbc1976ea4ab68bcc53f848a8eb9d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 71\n# Incorrect IV\nct = e7edb847fa91e2deded726edf3ab93da91151697425fee28\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 72\n# Incorrect IV\nct = 1b51a7c033c1efb5ee2994259c40f03bb57d8cc09e507e6e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 73\n# Incorrect IV\nct = c40b614a5062f5fd049c5379b3e8141614c2da97893589fb\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 74\n# Incorrect IV\nct = d7575ef02df54b3086eb49035eeafbce0e08336e89b35ab0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 75\n# Incorrect IV\nct = 0d617f1c12485a35917d2a941e949d2fdbf03a346889b850\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 76\n# Incorrect IV\nct = c7df34729174db2e83ee16c6de74d5eb9766715fad049b40\nkey = 4f", - "710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 77\n# Incorrect IV\nct = c3ed38d6f9ccb9bf3c56bb3176f00d3ce9887521f8d4c70b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 78\n# Incorrect IV\nct = 6582b5f4652744b0537e97e7cdae0f443130140dbaea604c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 79\n# Incorrect IV\nct = fc9b9bdf25f2b48ad79934c8d34897cdbf4c846f8cb4b11d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 80\n# Incorrect IV\nct = fc23c7f4fe20aa81105efc1a7105a5316b23399ac792c824\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 81\n# Incorrect IV\nct = 37b4a261b96bcec9cc93eef5b2fbbbe84634f978c5893dda\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 82\n# Incorrect IV\nct = 1831109847d17d010bfcd93fb46f3150cdafd52733db74c221b034fe8e1552c0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 83\n# Incorrect IV\nct = 2b2b89c3c6b2db4903877ad4622ca33f3a3cb7e6701d1340e6afc0fdab7dbd72\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 84\n# Incorrect IV\nct = 3c6903f37da57161af6706050a2ed747cd55344d869189fd49d2536ff948129d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 85\n# Incorrect IV\nct = 8a8dc8b131c6b968b60c1dd819a655392d1a96d6cafa48e30fb1146f096229c6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 86\n# Incorrect IV\nct = 303e0b3602d514a7d52edba3306d7383e8999e7c652a510335a8949efb42eb66\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 87\n# Incorrect IV\nct = 319befbf2ddbb475723fb2fa30f2ae7fc1ceb1e6f361715eca7209608873c7fc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 88\n# Incorrect IV\nct = 9b3e440341c5da131559959db6b3553a534691162f4f009327bf2c21d6fe5ada\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 89\n# Incorrect IV\nct = eba6cc0959e6a56339b141629840add80f4565656dc687a3b996960c994dfd26\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 90\n# Incorrect IV\nct = b703b6cf4587709353c7e4004d3da61ce5f5deaf7163ca9d6158dde919e0ac34\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 91\n# Incorrect IV\nct = 72549d52d6f4ff912d833c74136d90634ce8afa4f84412bbee8074084d4cecff\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 92\n# Incorrect IV\nct = 1337c8bd6c8a5dd43aba8d298864ffe76ad6ea909f3488157a15e6c46acf2214\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 93\n# Incorrect IV\nct = 4aaffaca5fe85814d040aa2a306ba4d1d44746cfe46c978aa057b53fd25316c1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 94\n# RFC 3394\nct = 96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n# tcId = 95\n# RFC 3394\nct = 031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 00112233445566778899aabbccddeeff0001020304050607\nresult = valid\n\n[keySize = 256]\n\n# tcId = 96\nct = 940b1c580e0c7233a791b0f192438d2eace14214cee455b7\nkey = fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c\nmsg = 287326b5ed0078e7ca0164d748f667e7\nresult = valid\n\n# tcId = 97\nct = 939b3389336fea4a9751bf014ef18011323090e8a0500bc4\nkey = 0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22\nmsg = b40b6828729b456322a8d065abc0d081\nresult = valid\n\n# tcId = 98\nct = 59ee8e5198861237f682edec6ba906526c016d4d935942bd\nkey = d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588\nmsg = 037b27b3dc95b19d15bd4091e320bfe1\nresult = valid\n\n# tcId = 99\nct = 1ab53a065d8f776a08b33e51383071b6f154612116655137bd3b7ec29b70fd56\nkey = 07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121\nmsg = faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071\nresult = valid\n\n# tcId = 100\nct = a1bf8e73e3fa1db759f0ab2ab0b1ca6f2c85b63d83e25f7a0b5293d0a216a2b7\nkey = ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1\nmsg = dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825\nresult = valid\n\n# tcId = 101\nct = 27308a0e1a6c0a1d15d6174ab7d68675207b615df16fcf7a3c69b25f551cca9f\nkey = fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87\nmsg = 966b07047354966a703e79607b556032f4f596b7f9206f05\nresult = valid\n\n# tcId = 102\nct = 7155ee932b0358d98182a23f7f427c774ab340a4757d0b6a63facd3de90578438cf03201c3f88057\nkey = 38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd\nmsg = 80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a\nresult = valid\n\n# tcId = 103\nct = f20b9b553bc0847529f8d4379fa909211e68249bd429f436c615c4c4a5d9f1a1968f0b89c5237b30\nkey = c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7\nmsg = 3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270\nresult = valid\n\n# tcId = 104\nct = 2811716854a214aecdd318c6670b9b2a7511713c9a0c0fa805230ff05cf84af795dd72f6c1a44512\nkey = aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c\nmsg = 57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5\nresult = valid\n\n# tcId = 105\n# Round counter overflows 256\nct = 5322bc62bd8379abbb75f69688b8f00e31962b8f9ae1e89771952d8a2a749e1352ec33b5435a674271b314760ab9f753b16726185ec7d319ac60531355344c1d53c7903000a8039eb40f70564a0ad3f41b2355ea5dfa6a1d46392f1d106a5da569bfb0493bf7c12dff04bafeae377df4bb47cd440b6f60fbab2a54a98551b76273e02cac8d7be9f2343d3abb2a23af1c91a7011c67a7907260116b67d510aabe5c7ca46c1c20f77106c45966583b3e4ed799a47ee19bb4223209265c2b1ac8183a678ff43bc9a3470a50b9ee4d10f60674268d72c68be003a0d9dd6849aba836fe8a1792b81c90e12945bfe1f27a9c6b2af66a063cdb7721a7f23fb30afdbd8b18db377dd1697f157be81c1578d08b066c71b0c5ca7feecac1cdd938cf9ad525f74844660908194b28e54eddb158f6e4c921b811d90db71a92ff872db2250dcc3f847fc752b66d77e33c85084d3fa53b4f30503d2a06e6cabb9033d59fc1dc15e32f19846a039b91597b0ba3141a7d9717630062170117b2131dab77406e9ed7d66b2c754d849c60\nkey = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab635025cbac1ecf52ca495\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\n\n# tcId = 106\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = \nresult = invalid\n\n# tcId = 107\n# keys of size 8 byte cannot be wrapped\nct = 181ba6a3a4392469e3de98ddbbdd2432\nkey = 574957151fc2afe0fa3d", - "c7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 108\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00\nresult = invalid\n\n# tcId = 109\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 0001\nresult = invalid\n\n# tcId = 110\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102\nresult = invalid\n\n# tcId = 111\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00010203\nresult = invalid\n\n# tcId = 112\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 0001020304\nresult = invalid\n\n# tcId = 113\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030405\nresult = invalid\n\n# tcId = 114\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 115\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 116\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 117\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 118\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 119\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 120\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 121\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 122\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 123\n# bytes appended to wrapped key\nct = 7dfbd7cf6158d75bb5900b3bf1e3871003402a6508b1912800\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 124\n# Incorrect IV\nct = a417671bc62a23c7a65543092124024df72c048d8db330c7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 125\n# Incorrect IV\nct = 9518d0f99d7a73ed4a502b449c14c285971b0e6177ce0eca\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 126\n# Incorrect IV\nct = f3511f0491bd74ae1defb5307f0e18db864b57b5c404d428\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 127\n# Incorrect IV\nct = 6c03ce779259661c43d41d5d0e45687f874353bba516c73e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 128\n# Incorrect IV\nct = 8df01969a11c87026535bfccf72b1d064c86ecc7e5227157\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 129\n# Incorrect IV\nct = 8ed1cde228d9c8d046dca65c7a27aef2edf8ae90c705d1e9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 130\n# Incorrect IV\nct = d69b3e34e9de38d44de1998992362a6fa1f696b5acab3f10\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 131\n# Incorrect IV\nct = 67865122af3294b8da0588775125cbd6dc19d5e5cab97b6d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 132\n# Incorrect IV\nct = 9f0fa52363dd55df472d867e6faf5da8eb204a1d6d497030\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 133\n# Incorrect IV\nct = c399f999c96a4204325e7f08d6a4de256faf21ec2c007ddf\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 134\n# Incorrect IV\nct = 282082264a87dc35ce1cc5b9931b77d80d82fcacc0927f85\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 135\n# Incorrect IV\nct = c192c90b83003ca96744498014b6ad6bedda837955269819\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 136\n# Incorrect IV\nct = 30a983cd9e69d561acc95c42b252aba4185f8392f2e6c935c8eb105af8082e34\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 137\n# Incorrect IV\nct = 4de9a639b799630b45b49e28dbfc44dabb9843ee588a8cff286b8d5fbd7b32ee\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 138\n# Incorrect IV\nct = d915b2cdfb769d9d82259dc3d124646bbf972b83efd4c2eae9b9f751073f78d6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 139\n# Incorrect IV\nct = 117d653f480b69fce564f1fe99572492945189ed5af789ce05a2651baf90bb5e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 140\n# Incorrect IV\nct = 8226d07a2f919e24ada1081c69a75520be895e3a2bda9b805d9747773ddeaa38\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 141\n# Incorrect IV\nct = b0a74345bedf8865348daf45d054b99ce515ea8be136270d1cf71e1cfa7aa4a2\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 142\n# Incorrect IV\nct = a261db77f17f7ec736d1a8be16e5f9ae432fe2a17012e5a6f07c5426a9f0ca59\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 143\n# Incorrect IV\nct = c53acb5e096b54548e1385b2ff18eaef68d235c95b0194e74a2383d3a7a530dc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 144\n# Incorrect IV\nct = faef482d99ebb180e5bc5e3cf775ba292c2a3b6c44aa4a21ad400906f11af392\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 145\n# Incorrect IV\nct = 73a450b63b07b3aece9d1ae5bf097a3dd3fcf73e3ec2f1bd8fc3b5586cb9bd73\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 146\n# Incorrect IV\nct = d34b6ee184d387c9aa4b2d180ae0a89498014e55fe8e416be4f826fcf7d56522\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 147\n# Incorrect IV\nct = 2af823d1602803740bfa9040c2c4e769a5b6de919d403cfba9ad360f63af1113\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84f", - "a01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 148\n# Incorrect IV\nct = dd78ebd3091c55a5da5b24504200f7fadd1b3ac6ad35f814f733e603c13936245d69d83f262f6b1e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 149\n# Incorrect IV\nct = 3d8338eae7de322399e1d1b4a3df54326b242b563612ea4b27da22a041d3c80966911bc009911761\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 150\n# Incorrect IV\nct = d04bf75cadd3b5f099c34b27a91e64a8f2dbcf08e8c5c1c9f07a777eeb805d5d0e8c5c01afc43944\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 151\n# Incorrect IV\nct = be0c5d193b61c5137a8fd8a6d7d1ed8f0fa28cec516f544697c12add4f8f4d5cfca65edeb1019974\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 152\n# Incorrect IV\nct = a83ebcbeb2be9d6807b5cfc31c89849d1343dd4eb22e5bfe9e2b2b3790ad8900601f1f5d54fd472f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 153\n# Incorrect IV\nct = 416221485a6cb98ad1342ea9a12926a9a133ead8bd919323fe789bb8f89a4fcaf81e1be54f9d358e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 154\n# Incorrect IV\nct = bf6a53286fac48e7f25d89b7056b27aa917d5b54c0d3171dff369f7249153bf09da5891eb4dc2d88\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 155\n# Incorrect IV\nct = 99d517a1321bb633b0d5f3afda2372d3abf68b41d13cbfdffc78f173b88bc4b97efcab2b2904788d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 156\n# Incorrect IV\nct = d92456bc77a268ef71cba76064a1b772d1fee2ae4f0ee3bb932a2adb2b031796b9eadb51753f2868\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 157\n# Incorrect IV\nct = 5bb54630ab8d73a040f0f87e70e263d1aeb2358bcdc0dce6994d0d874452bbd8741b7ec1d59d8298\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 158\n# Incorrect IV\nct = 4581d6536039db1b23da50c648777e90c82d6128bb92e28b2974bae1141543a19a1592fda1fbd61f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 159\n# Incorrect IV\nct = d35bc67e62064c34f48150999ba30ded475d8c75978f45737320f23edaaa7a40d7803fc61add34a4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 160\n# RFC 3394\nct = 64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n# tcId = 161\n# RFC 3394\nct = a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff0001020304050607\nresult = valid\n\n# tcId = 162\n# RFC 3394\nct = 28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f\nresult = valid\n\n", +static const char *kData109[] = { + "# Imported from Wycheproof's hkdf_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-256\n# Generator version: 0.8rc17\n\n[keySize = 176]\n\n# tcId = 1\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\ninfo = f0f1f2f3f4f5f6f7f8f9\nokm = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865\nresult = valid\nsalt = 000102030405060708090a0b0c\nsize = 42\n\n# tcId = 2\n# RFC 5869\nikm = 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b\ninfo = \nokm = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n[keySize = 640]\n\n# tcId = 3\n# RFC 5869\nikm = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f\ninfo = b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nokm = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87\nresult = valid\nsalt = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf\nsize = 82\n\n[keySize = 128]\n\n# tcId = 4\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = ae5dbce80bbab5bca5b3c6d3b7e6548fb2c23b2f\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 5\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = 207ebfa8798c6d8d5260d797fdb9c9969173442186d9e932b18fb589fee2fd00ca4ab49d0402aba2c1b0\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 6\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = d875a072bb18fd7717ceaac8829178884b8e51a926849210caf7f42574109f218596e27b92041155d2012917c20e09539bf52016d78aac0b53a51d9cc21e3b15\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 7\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = 3d36966f29c0561b4e50f9325c7c98292b6d28bc\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 8\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = b10173a66a08fffa6cf7c1057744eba73cbbde83a3d8674bb0bc1a46d80792a9d5a0d2ca72510e02a6e4\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 9\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 7a8e83577d8aeb830d772d8e42fbd105e54ee3f38da12388030580c8b8935f4a2be01c5092f28d5b1bb757bec0a527250eba2549e770d21224e1cdaa5bb76a98\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 10\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 4b1c4f54615e31f713f2364bf194d3f14f68e704\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 11\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = a6823c9940138becba3f9baac05ec119a2715a018f51f4c0ce2add465db8635a6453efdf7c161c2d172a\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 12\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = ce632c353328d59ec519023d08652a97252f2c8f3f29104237fe35261c82eed7e0df52514a157a00fd82d7e46ebf9acc23512e1cda7d5b65b92f692965943e8d\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 13\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 7fce7c021469c8e016f7a9eee111ad71df7c4fdf\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 14\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = d3e6274c91a88821367b1853b852a96f3ec12ed466769fdb88e14622165d5878cd736fecc93b9e8633e0\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 15\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 17c2b03dc593fe9bb94f5b9bf646ff15749e82cd4bf569f7806275c241c83e1fe0615663a628ecfd7c1b700215a450f9f42529800424c4707d54488150299f11\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 16\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = ff23874bcf844f88f2fb57c0c3a4e3a7a498965c\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 17\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = 19d4b9e3bf37ca1affeb953ac3a593882b2dd0002409be198718b376253f1e8522af9f276152739e2d5c\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 18\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = d623e645a84b5ed4a210b9457aad79c9c3171f306bdb8bc9b60496a99e640cdef1cfb56ee336d216aa20122ee33b91c7aac3e5e7d56d87dbed3a446cd5224208\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 19\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = b75be6d7fdb9a7c58514c81e6596973058e8198e\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 20\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = afcec12e5ba6481f144f6e6bfeab0a054b30f2710aeedea90d4be9c790c8e05e601fcb208afafc6cb991\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 21\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = e70ba99926c4edd98bf001ed3c8a1557987449a6fbe58360e96c2d1a3c1f2eac7806fa406ec64c4dc2a743129f97ca449380ff495462d1b1858af83d40fb31ff\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 22\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = 31e7b971f165eb923b499460c94937477fd61cc4e96c27fa2abb552accceef42aa3a35637bce32d996e9\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 23\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = b80f7525a93a3f630465033ac53f1ace76caf7dcae3bc7374ffdc6d1be60179e1adb9aa8def2d47823e8\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 24\n# maximal output size\nikm = 195b2a73c91f69140910664d79ee7f3c\ninfo = 5b3afef0895fee8a\nokm = ba560d02f6661eb3d0bf3a17438343b231d2757e4c8ac2d0f57de4ae267f3b3a40919c4dde2ad7d11ff636e25e4fdc21db7c2b2f20fa1ce7bd6acd2d534f1f660e0487703adde77a0f72c8e3f2b9202c94527e4bb9adf53a0b897a09abc0dddb7f94e6d6ac00d8eb5233f0b88921c8f4b97a1ebd8dfc32ac5cd089bf07720bec56f85dafe527cdbbeffeb168c8a7867fe35ff6fb57a969189d3c17b230db2d213a6860b5cb678fdc913aef231601d131588f021799625c080013a3547cdca49599368b5a483d830fe182bf4639bf830bdba4e301643c20c09434766dc554d7d4effc7165933ae420b136623ca1314383661593fe5aedddabdb44f77afa633149c832fbefd1c884d2717d61156a1916698ecb30aa2f8a43ef7238eb11e4cb1acc7e98a83f66eb8eb4387a7d6cd26249338054d9e5328d97506ecf06e9bf8923756f2f586dd8f17faf515c75d140f502fd162eb074c250b0c4430b659ee49c0dc2176d60ae2e4818b7089c1ba58cf1d80075ac3446fc8f14ad8a9fe26fc677c398bcafb401dd84755e7e550d20684650ca590376b140942410173149fbd9cbe4781bf81b3a3a2e04130e0b392d747f16aa54b323a8dada9fc690e05f75d9108d49ea10015c90505c2d500ceee985354b28fb74bf5f45c3c412ef281c372f4ee2f8df2ddbe889a9cd541326cc2528728159019bdd4925dce7d8cb6c6672298e24cc8760e8a33a5ec9dfe84725dbaba05a8215b30f0ea143d53706d99351f31fc6632f6a28b57baad13bb6768cf52bafd820ad0b2949b789bb4e4d449c8cf6e6c1543c2882bc225f94f70ca6d25855019f29f9d3ce5746ae88a12b70aca25cc16c7ad19769d63ad0de5e0207c994709755c2816febbdc3c381bcd90c5252139bfe45dc86d0ccafa5d437cb3c2c0cb74c59a1f67a206fb0aafc7282aafc7efc5de534c76425c699dff283cd10d7313f342ff79dca06a12dd44f168fe857d41658015e74f40c76f6765b57bc5827082b6ca55e57221428e812b74df3ff82d18678b619f1ac727751fc4b27f1dfcff461ad30bb17e2774288ec3e337a7c8438877f8006d8024c7a62a02d5ba2f1eb302396de86bccff719dfa721abc5be82373a5e62b69f2fd02cef4cde6e66e98c891221f0de23b6223470d34e357efac653c943ae7ce487", + "18a549ce85a0c5f53b966e0ae1495efafa6f70bfd73e915b67cf9439029153161459ed07c7d3fd54cd66a89d366ff9a86f5595044060b612f2ec65e9f2216e30489545c706d79d23abc7ca26aa486480047a92ac01164c3b97fbf253b722c4545ab83741ff483d8ad28b54c072f0ea72119f2807ef71994d18e9015a6cd813c525ea838d3a437640e4f99273369cde21dd580b8e08865603ca87d9d28e1244e93e560f3fe4ce219b55f8f6753e87e59dbf51d89cd4b8aea2f45cfc1be2863b108920a5c380fc1f07b174c72a3ce791bf0799089a571a6dbc0adc4ea668fd8f6e4a8b5a92363d00f92ece0ccbffdebde591779210b34b329f943c426788661b58d637a37094744d7ff967bb27a9d4fbbf00f3a1c2c49e50c14b55e56224d98dbe7bc1e7612d1fe956f048f831ce663b85778478a8572a63ffbfc04e9db2bb307c655707548e48f2e91b86cedb00877e9fd7fea3f07341f4ac342ed020e2ac993209f7a721ae8ca4b9273790f571de9f9d22ab89572fc9a9743efe5a6accc921be33327ca7fe3d3b1f980919f2f62a58475a570ac9f08d39c6e0f9599bb8ebc2101cd9f60da8331dab6dfa3e65a6fecd113f8d28fb87d3750a7019527b388f5eac13b49640554f031e240f52e202e55938b80471560437be12619e1bbf98f3ae350f5a03722e811693285b4774505fc36ea01a97faa35ecc30fcfa8eab0fbf661293bf79877014c68cf582aad70e5c212b18588a6ef3d75202bc4a02f86c62f99a97fb0ffd980f2d7f2fbe7f1eec22c6bbbe2685b4c1693b0429a5069ee387cef60bf0cbf2fd81263085dfb22f404e09284f075d782dc3cdbc24cf242e6a4c7ef6dd65f0269c5a9b49baa1bc0526cd72ee78db3621fa294ee8b7d6cb15f0edf6d9e62b743f25c38f317d100b706baebcffc11396d5400af4657a267dedd3bcfd96527f03be8d733195c0c47d7dcc97e8c8f639c7c972338dc88861f023b5621b6b55549b47aac9630b19884b072aa58fe1a975e86fbf8482821147597914b28ea5a84fcaff9d8ad021282df1a06feae1d813f4094680c6709d63a3907e98a67a5c7a9232e7d4c01bceda04bec5a5dd8e29753af74521d01e346c29955bde6112e131948582695980b71a777e2c42c37c0cec771b1de9f737cfe5301b487e9bfcf35d2750940de6fbaaf00b9897e3fa99f6c5c79e5d27acd055212e0dea3162b27e2b1a400eabf4e8b78077381fe8bba84c8732f469972a0122b8009138ea77592f68717d66bb8ffb3e9bcf4f77a2b472a393f5c6d7758afa9f6adb1a939da7164c22fda33f290bb15fa17ffb87b445931248c9a67edc3e116bbb75fc9439ba7b451e06a589c1cf506a04c2d1c889ed5b9af2002171055580b9555b58ce083a9f5b9f05d440e7fda4eb9a62df33ce6ecd2399ad2725f1eda7568e313f3dfd85d240924ac987d9273f14259170ab30d7363929e3f22dd2e3976b5592e73ba3b4a2f58c4f490affca796ada73db38bdf8b56211038b22242dac86910c132496e9cd1b7fe0e6daeef0c44e31df2c7424d5a8cca7fd812b5b90fe1566e7558e22c35080a73a12c0057e024c60bbf849c9bf20b5acebf48acb4d513ebe9436fa6c6f2c5334504162e6a0e4297c814408483ef02a21b9bdcddb91e73809c36ba0728659eca89fc978f1f154fbdc84638e00620b505965be1b41dd7e2022fe2100cd5aaea63c2e6f1fe80b9188da7655c8c1457ec3f2b02a839260b8cd39d63a6734064ac59251a167e6d25d9d0384c9b526c10b6b258e40496fdd46c85c3ef2b1e4ba91f5c27ba1624c9135535fb922b43970cf7e9b357f2057137cb3df1375a6e6df71e392f2efd6c5ea6e256a0f7b766c30931d89b09dda788e082f9cd4cb8c9c82734d83b817de5877f3ddf0ca4f5392aebf9e70eb9f5c35ad4c40b26b0c485fe8f46638d3994011f2883a70f898fcdf84edf7f3e95309f2e3b166b0bba18f385cdf1d2e530632422c81766fe9e841c205e5e792b49b572415a5f7f5024aaee6e99c65f63df7967d8b3c1976a6c275c7e5668cfb6378bff333477bf599bdd6fc8a969287f796717f6713b375a9262e06fab02684da3ec5d533de48505e41b766540aea29ec73d7c563f2c5d131c1c758aa932a6e5bb039e725e3958b4f1556ea6e2307e2cf3f111421e4acb596aaf6d83a483b11a5c8dd44ae3ef5e3ad813495b54a5fb2688ec3d22d8109297a87fe891e9f67439f0ea7199d3bfd41ab61531414a4f858d0af8338753257934c05c25dc4618b90829c3a7714e732e4dbca579169bed379a46dbb638a7fdac8838d3b4f0769b75880b142568ce9d55e930db5f4d158262b1dc953ccdb6e0fddfee14f042fbfddc88d64b46b7ac177d26c6b7c20341b53a3f31b5c53e9b824b9d5d5d0f7917295409fb497b7ee9450b9d242b009792c8bcf25413c45ac27532d8f36fccac3922fd6a19d1868b558dafa58680e3add12a3fdbd1cdc92f2aa899ad36eae392ce29fbe66af974361a12495a041b5ffb82843750544c2a3a0e817f55877538ab75524b09ff702d04d694b9f7d4d6716a9e461249c298d2d4dd28ce99c64492477d9aa1b1294bd51b45eab201f4c42636bd2dcfa38f509ab8b49ae4e88ab4ef628491b77f073a4a128f452a7cbe3d82d26ba2d354af17cd6bf77164269da782261cf6daecb328573cf975b4d6e8a984839b1f3e6ec81c5c692e32f78f158c1f472ceceb9b448cb8676b56c7d6bde38fb9a37170492a469f936113127e01a8c3801630d56576654552504860b7677d4e49e021640003c093ba2efa8f4a9e2e3286327d7a84527af378029f4306ef188f02204bad184f9a3c977e9a270892b9c0af614373798f5a089c21db136fe3d078586875e6bda63ac7c25859b83a3d2979374eceb99039baee563ac5c6fc54e7b9d818f6d834fb240b3393e56f465ac497a95ea743d6f48a8e34f9c83915678d6dd580aaf103fa8c87ccc667bc66b8a6964d7705f739828272e4e342d495ce5b10aae5a17c68a86d28086ef7d7cc363fb73f763e6b72975f35b3e0e70d38a90d30577d86099de0d2f4570f852b52876c86a2589c199ef5b22485babf4d655a975e22c9c21db0d01dc32a3bd5b808a7434f3025e04a1559f9b1c8e74d928dade07d4fb01e37691077d4f2b9006c15e8122607a3c3176177ba1e6a8238632f705f3f25693c9a9aabee45b9296fe3b2d9333caca0935553f0fc2a57535bf459066442a922de1b96fdd69d5ff57a051eabb0f4781a46f122d393d21fb0d1856d40f6805546fe1d0778f8ee5d1d41d274f6c9edcd0a1d96bf7360389319a21aa2d116fb6ebc44397f1bf3f7d8382cd16f24ec49fa0285f293ee7c3f6b560097b60eada98927584c1bbf30ff9432e6e377d02876390dea6ef7661d3c3d3a7b481883c2e49714238dce4aa8c428f7fb4a5f601782d8b8f719ad89c2ce74333dbd61c7262a5145f5f7b42d3d642e0c393a6d5a2d4633053a4a2e109d70feea7b020b2691c28b5844bd361a442ee779b836100f8b08bd78fa9cf0baf07722570228f12971bf927e31c61365faef3d1e7692f1e48a579dcf3d5b64ad28fb0a7cdc483dc654ce82ceb69ede7f6a960d6c9fab900164aada8a0f600792caab44bd0b6dd8692d6060f90a751625968413dbe4d1d1a2ef3bbff2a21566e4cb41c3abf7006f6d81eebd0f9afcb4de724d16bb0720553523b33654ec6a0fef8af2d49a171dafad2e3751eb21637e4743375107925cb8e9c15d4f6aabcafa3a9659ee3dce219b6cb3e5205b836bbd75fa21baa00e7885613a241c2de00d0cb0b5de2b944f97b0aa758eb708872f7fb4110b852a27286092d31d2f49ec5104212068051f6ee4576f55e23447aef5172673e6268b977156f5bd5b23640bd0915d2e4313557af0ec6d4d0bf98cc881a4f7b5ccbcb77b74ae60c2e4b1c2c32e3738bde4ba6ff854f7d3912df0e28dd30b36f4008430166aff51725cc973c8c69115a219f677390b37ef442257d46d23fd3963904402cb93c6b6c6dad972478a0d8b79670f6f69f9e0cd8d819d8d1d45c38440cc749cf09ab90434d7b57fb1e66af9d09d38c3961a35cb526023b0469c948199aef59a8e1341ab2a73e42b9f05b8ce78c6ede74e9a355ffa0b81aad630bbbe9ef325be7149acb62b02ec7f0dc72b7ac576daa5b19993fb4a52ecc154935beef88abdfd133d51e9953aaa23669e423467a2be1bd35c09c5959f5861a7f9455fdbd25e4a792907b33f6db7f8ee11e5f36aa14a277785b0af2b8ac49700fcbda5aa55c47a24dfc8081003343d55973615b3783037abde6ae0bb35f4175f01b7ff3054b64ee4eb18cd50e0b879b6d41ccbda2638a33ebc23fbac7a09ccf92e19a0bd62725e555079ab1a3f4362ff43b363cae144034f33366f108f284c63ad8d4a798a540c6687823dab864832dbf299e7065594520156842659efad38e48464561bd7d5259af3e590c63cd43ecb95720cefc5b28c3d6b1c7128334db2c112991addaa5b91ac37f06debcd89852c6e8438024c5b4c10049b03169172ef733b1aadb6edf7add5477fc26a48ed428cf0d5cd336e646d17af02642837371913c7286d71aec82d4854617dd362bafc2d582e87bec7afc57ef3c81876e201ea87603b208031583c78876c3f9eaa3fd8995fe691d5ab476a91223c16ebebdc299b23eefd6e93174624021510a7fa1ee3c6cbc268c969f99eafd01f0f86e0146f9fa963c287b704d6fb11ee0b7d465cfc73d1d4c915cf2de87e94e2de498749cb2e0ee9e3cbba76b1a4b9e9e363b7f35088e99be1880fd235a06a614c3e82ceed6e27a72657a4d4f860b336f090adbfc99d4a80754cc747bf4151ab57358b6b4ca5233b17a2b2d1dfe8ef9ae0a92bc4304653b95578aeb5457ca665323292c441f91b6e237cf3a0b2cbee2f1ef8f356c2b42f4d2dee26729b89ddb7747145fd5e4344a82e4a3cedee77506ff79115f00aaa4ee1ecac6999a543d745cc0977340a2502ba6d32607ffbeb3c693a7910907da1a28f6818e6bf83fc72628cda0ec80947c5fda35ec61c3a87c89f1cba548d4a7bf0b911b35b187179d1c74ce03f14682eccf253933bc0b2bc3d4e3a8cc57ab254511075ccb4cf162cc11d36da79125e31f6ae4e758cc62afd8238b28ab8d4020006fc90854eb729edc885179b2f011b0f6d1be61a47e7e9e52110fd8eba49443bb3ec68617d4584c6e6cdfb6bf85db554d777ad8d7fb1ce7fedd3b873d8788a0103a9bf9dad1b07498eb026f455793bde9210c11b173c1304ec6bb44ec007451be41206009f8c723e9e05b3add083abbcd15ef7026af358880a3e9e66ee891c8c36d8133c13c0afb903869980c30d1df0ec297d0f5434fb3d66ffde872f3d97a723d1a30cc297a2e49b7a4590617e6a3c355cd654c9f5ffc5145ff1484b7f87a1e3ace368dca920a593580520438463900d1f079f27ebf68b48dc0fc39f7d7301b3224b760bb1170571135c82fbf1e1d653719c40a726b02262e846494e83a606a47283f002739faa870593c9e57270e36fa7ef18f490f6ada2f93319a4876b3f481880bc762d7cecd0569641b0705914090185793262c8bb5bbd669c86947bdc3b908a8f8abd9f0175dcdea4c952e2255576adf472da19d077e2988b0d5ce05a1aa5dc5c02646ecc7d5fe0a4bdf233f66cbb761e43e5c4c0863ea9e2876c9f846f6bd1b9b84d2521eb8ca0e3be5a9fcbb76713c69d29181acc9f97d73986f95e140d92b901fbe7399aa191d027c438688", + "8ed49665ff8e2843745a065809990aa0c4fcccf24220fdf1e27aa789e334446e13a5788a5e9de3e575f582df12dd3e520fed30cb04d9349424b71587f581939ecfbeb7b48744cfd30e551ddce85a62b903afb33d999a5a1fdc40215a0cc01812b41a2a52ecd4def95ee47345d90865e8f4269f16214e97a7e1df0b4de2e20359a89f88ab906ae05430a211cfa0a33658fa65af3742c1541be4d3a6582fc4b20e42d9e818a62125a7d148966624cd65ebb5528c8c01dca81d20381d832add767a0126203fe9a2837d0479727876673b611afc9a7f5e87294c00deed48fae0fac6506aadda0f7e999a877f527a61d47e440c5f19c8ce12a8b09dcdcf4ea96b8af6fa7e83caecb2ca03fa35a454c419e1121f23cae9d24e53ba352c701211f3138c413d431937ed83da75aebe0acbb8ec9837e857be00a9cff2ca3eb13f045f347f7c745f56df8b73399b1f3d923571a20b5a9a7ebece39e8f379f6df72765272725bea9612e5bcf3cfb6adc56dd05f3249e799cd02adec060b809ca4425e1eef11f7ef2e5721aa37d051c34daa07fab8e729af4b981636083621d7044c13e52c987621a69ca8eac3889776d9c8aa3070aaf563f96ca393d118ce161fb7911b2952b8af451e1bdb717fc70c6e24f3e2f0048e1ca36be23c13d9957d6a021ebb35677f68fa33778ef7524dfb15ae96a296bc393ac5f25261a422e1f7238464d13e3f8726a75d10ad9fb74b480d44c2e9a6bfe0ca0c8d22fbf0f9ad53e9369d0ffecc27b8a0dd1b85cc77b81e701706231c39a045b1bd891a54b0ed1c87b282de40691dee685423f14ad5a6304fc5997482fe0d1351b34136d60b04cab130ab2e7f5721c6e021983dfd3e868cf2dd9f0b180d5218eae554fabe07a62aa7409a93e7e3b3718961106ca3d1ceb606a2e6e93e5d9c05a8d43d34ea1e14cfed1f25074cb7bdc1289f3f7a6ddaf43cc5e7508a964e0a93e26f6711cd234765f7a35c71975ed4e919f4c45cf83ce20076f5238b995a65cb0b402d3690b0a36cd2d164bc7ca986327ec955f49fad0c3f0e94c18638c5473f5b20ba654646d0178e3ba35353a278f32920a75567c7b87991b413db47a164acb93f73339bfe0f72b034c8785de3da8e22a445b5bbc0d13ff3312a13c11f8b5326e8860c136fdbf79da666469da270e0167735941648dfd8fe1b23ce03305bcbc60930906346821ac373a51eedf5c938d3c9f3de9ab43c68a2035068bcd4eb1585c0a696090c25c2825382d8eeb4b75bafd6e5cec3327e80c72b14445aced447bca79ce78d0e1869146c12fb57fc0e27529cfca81bf30b5829f903ac1a36dd560e2ab2ca33c521dadb57c3caae0298a1df936da26a6afe2c9d280f8d9861be48668150385d589ea349cc77c9f67ed448a01b4615decfd902c01ba53df4416736631256afb890af6aff39e47e5cbe59070aed031f20f16e3589d63540904d7ad5709c4830f09c1bbd5b33cd47ff3da3232e11c17d4d9eb02ceb827e092e8e7b7614adab4b3d9aafb45b083f4cb71e25ff7a865541ea185d95d1e80224c732cc5fbe1f2df689fa4ba1753d148d7f6b1846736071d9a4cecc99e96f47f6ff082cef981183d01b08fd14950878d7dc1101770fb3a1565eac3714820c0e058f83b7f85cd38a1ebe3f0fde0734e99efb883c1d08900253963e17333dc90901c56c8fcaf44e4389cc0515ff06bce030367c1301653fee32dbb8ea88c17cc1346aa072723cdf0644ad3d6d5f0608f21131d2fb7d3c994db65f2a615fb21087b4a9e73d81021d1e0316785c96b8236ac14ebcc6efb194a8f05d8120a6fbe19429c27ad8cb8db54e9404d04f94f681791b8d3251c9307cdbcfcc3619111fb10b1daf8de24da449e0e3c6f4f488dbd42c53ef2765a6e5d1a349d13489225ce8eba209ea228ba155648f59c77d5f8856e80e515741aab423e7f3ebe4700aa5c32d30756c4e37d7552f8e63be7a4612a5f1c6ff6c5846bb85611ffe0241200aa188cdd77303db4ad75489afaab6155212a1aea646b50221a9479c0c7ae53579e44c617d20e6cdadb19583835b19c41d230535cb7b4d06fc286554db084dd5b07e6dc7bb798549a68055b86ef86a119e8dbda606e006610f44f6fb62b0c1abfd3c69aece8746ab44f4993048148f4fa6d13399c70a422383be38844c0a1ba4e4b98c0dbfb2be577f62a5669d05ab1aea757959e1c20c691b1924a7fa7ff0c54a8b7388f1f9eb1641771b782a04366ad5799631fc3951ae756d2f54de50a356520be51eb6699a8e224bcf9c223947235da1286824b0feaad9681e68583697da87f55e0402d2baf68251f938930fdd1536cccac63e2ef55d90fbdc91f725846c592dd8b154e19fac278c3df0c90b5032d79ffd12203c626dcfe3091b59624451cdc9811cb5bb61e2894e0c1d5bbd462d2404302dd881109f99cc5b37b3d42ef44e55a8d68eafc143f01ec1a5d48090745f97ff747fe1aa7dabbaaee2d107d73852c38b35ade93c7e7a6cdfd8b3dba80a63626fd0d10adc304ab5c28fdfeecc83f3e04fbb298dff5233f3e7dbac1736c4ae9e80364b06f8bbade5fd619f4655f5f73ae4e978799f725c3c6f9e51528d9842a4c9df7630c857e856dfbe0d7c7753233a16151eae8bb1e018132a28156ccf9d5a085b73d0a3a530ca431a3e705f419091fad1d0dc3e163433f4b5846db6c15214580a533540dc1e14f90cadaa64f662f41377bf35a86310c9bd4ea2a890e672b5a3cc1ab945edaefaf5a7b99f6b664814c728e1ee958bbfd9e810502cacaf5b9671dc8c52982c810d9b737f7210ba7eab97ed95e03dcb75b2b4bd87b19c474a559829deb5f2459d8c25b4518821ac3e9c0294393126efc184fb52cd14e6381a976ba1bb579ca6249ea09d8fc16de82da10413b1251e9a8d85efa079f1afd02dcb8d92876e4d24fcbbe9b134183a28cdab503d18708395c33f94d50d9d4c1d16f2f417fff903f77c6de34e1f506dae723063052645c98217677ade132e466a07a2256f87aa7ad9bc1061cc9482c74717e544c2050b0ea8729bc1a34ce7ecf825b2137a815701fe04c1a3e50fd590521bd26ca7a193a45f864d33e8c7de51b3c686c47074b03d2c442a6882bc03154a61ba68a5ba5a1bc72a5d8c455f0c67371aba5140793aa1a3dc158004bd4da50b70d5a67cf250c665cb897394df202d79cfbb8917827c705a481c9429c7ed6b2cdcc008e6c33132b9173222ad2219b461d69ccbc63a0587bbb550d0e07711c9e4da24a29664be3222c7463661455021fe64027c1d31b052104c3f7a13c8b669aafc16b9558a0431ac7e997884a8a39f92511caf9647cd8dadfeba6ed0ac35813bb9149ac44f1597b00f85786ddd972474d6a572954383fbef702118754ee38b24bcb72ebe91e9ca9a84ad5cd6bac94157bf63ecec1f77bfeb5942430037378e5776d6931af7254590b90b8ccfd3e05f37bddd9dde73bfd7e3b285bcc494964d180a01ceea8f8cef3b7c34e9192f1c89310c1734dbef35fd13d612f699ffdc50e435a07f556f246ede04074b465150fd8f0d9305526d869db0f1b90386e5f775048e6bfe2e826320bdd95ae65061fae55e7a6a427bcf248008bc7d9a05ecb8ef768e24018a3c4063fc2703e650f4080ef663a80525771b147064037eb819c3f00e9b980dc091f9dd8367e79ec2d1c30ca6aa598554af86f347cb95d0f15b0a41423c27e1491a82a29284d5e0721d1ca8b515a2e2f365add9d4c577d7d769585d2e826dacf5e501b25ee58d1ed04e16955213f557b9d774c26fe2c621c0f38d4bc3a2ee4f39fb1738240cdc121c09f9ccb36fb3c839733027152d4db959a4654ed1cb50e35ab6988a551c560b62ed5c19ae6a1d28673ab5a7c10cf4bd956d14016d1d9e063a8c5135b6a4d0d6ad15195c738a9b2fd890e834b0cbb258a10acb46014c08f77458eaae5fbdcf3cc54a404578fbe639ae1a46139a906a94bffd319fd5ee35d1938dc165935bfd453046f5881bb9161ec199a1daac82dadd11df0427afd77c9789c0fa9cbfbf7406aed350f62ef54a54398f013fcbdb5b9ad58a14c024a9e8b390b06229e005fec042a74a3e169d6c54049fd303be7344695942bd50a4689f5a7c31c63e295d38ffc90802844cfa92980b429fe1d2cf4041f3131090b59bcfc7255319ce362d2dd90cf873f87ef01ee1ccbe31a8eb17cfb2660a169375068e2bc4d2a318d964c0d3a514093f77b50f28498e4fed5b90804b649002650720fb0eea7b9da0f92440c8aae5e4017c67475acca73c946425a588d50e5cea5bb5395b8db5cec759503a6e73858dc53e76bb21320a740cec4023195687cf5e82a68a40f8acad2e68df3b8949af88ce071d2db7b389c09ef55b9d7ff4d27d157bb78aa1db6acb793c82cf0c798cd204b48622a5f6af33c80d4d8068c2468c8a1ccc07e44fa27c3ec9d505a3aae1e7508254921905fa29f5c2e232ba2e5380f64603f44ac8acff4ebcdbc53b4ed75a7534bbe9ee9ceed15d9bedeef5398526b31a766364b5952ee2809ee10a58de9e7d04a1f3b729\nresult = valid\nsalt = 45cf5b7711c199f70999902eb755aefe490c86b96cf86ac20d4e67fd87a1c8bf\nsize = 8160\n\n# tcId = 25\n# invalid output size\nikm = febaf0ce3a452bdad48338ae258775db\ninfo = 572d90bc31fc1edd\nokm = \nresult = invalid\nsalt = 701dfbe3f22c13268a04871dbb9711f371bd702b2bb41dba24409578e6481bc1\nsize = 8161\nflags = SizeTooLarge\n\n# tcId = 26\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e7f384df2eae32addabd068a758dec84ed7fcfd87a5fcceb37b70c51422d7387\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 27\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e7f384df2eae32addabd068a758dec84ed7fcfd87a5fcceb37b70c51422d7387\nresult = valid\nsalt = 0000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 28\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 12fce691378f28f92cb26ae9cc7ec5a34007fc693944ab79b6fc461093a66c4e\nresult = valid\nsalt = 329f445e7de8a156cf26a0208dbb028d9de6ef76b8de67ca634f4a5a732138a1bd436a7b345d7a0314c7ed0a00b0d34ecad2cb8bd141e2ecc1c77e237094d55154\nsize = 32\n\n# tcId = 29\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 12fce691378f28f92cb26ae9cc7ec5a34007fc693944ab79b6fc461093a66c4e\nresult = valid\nsalt = ed16eaa37a3cb51a9ae18e69b1ccb5950ba29ece2e94894ba05715bcc9d926f8\nsize = 32\n\n# tcId = 30\n# a salt shorter than the block size is padded", + " with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 43e371354001617abb70454751059625ef1a64e0f818469c2f886b27140a0166\nresult = valid\nsalt = e69dcaad55fb0536\nsize = 32\n\n# tcId = 31\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 43e371354001617abb70454751059625ef1a64e0f818469c2f886b27140a0166\nresult = valid\nsalt = e69dcaad55fb05360000000000000000\nsize = 32\n\n# tcId = 32\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 43e371354001617abb70454751059625ef1a64e0f818469c2f886b27140a0166\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000\nsize = 32\n\n# tcId = 33\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 43e371354001617abb70454751059625ef1a64e0f818469c2f886b27140a0166\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 34\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 43e371354001617abb70454751059625ef1a64e0f818469c2f886b27140a0166\nresult = valid\nsalt = e69dcaad55fb05360000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 35\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 43e371354001617abb70454751059625ef1a64e0f818469c2f886b27140a0166\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 36\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 43e371354001617abb70454751059625ef1a64e0f818469c2f886b27140a0166\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 160]\n\n# tcId = 37\nikm = e2865d6bbc1abf6a815067edc4ee7aa33c290d5a\ninfo = \nokm = affd91484b5ba2185adb698632e315e1ae238d19\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 38\nikm = 8c177ab5f40e9c57203883562f01f174070ccd97\ninfo = \nokm = 279bba84f187099f5b5b4f248b7e99114f012b805eb37b4f2bd777c7f626d8026cc3c36afcc6b95dbc53\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 39\nikm = e842a4fc1a147cf2f87de9bd5a42fce6457496f7\ninfo = \nokm = d331254a687cdb1572b5061984689d4a3f321ac82248dbf7c88f9c7d43bf295558d945503b573b268de153d22334133ffd026baa58b70da52169b7d4cc2a0f1d\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 40\nikm = 5b870ee1bb97ee83f67fa7335b4a0f9dadc80d12\ninfo = 0a0dfb2a6e051441678788bdec04cc1b63ebe1f4\nokm = f1e1474524b1de386ef1171e2db18b32e074c2d7\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 41\nikm = 58ea7ab33acff514ec08f41e59c17a3c66c1ceef\ninfo = 1cf9e25bd70c5546ea7a79eaf5d90cacf754c4f0\nokm = b35bdc6ce6a357934f6b078e3210d6a1a4427c808f759394f0cbdaeec4de12425c988b7deb545ba452d1\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 42\nikm = e8d20934b9d320458f4854e2442e2f0fa092f461\ninfo = 4425999958aa3cc629300c25ab15be8cea7a4277\nokm = d9ca1874238b99baa7f62f9e61db9ec45bc6c6618030b0c42c71551e0c56d37a7c59b39dbfa2447647b296a657d096259ed72cc1497f2e6b774da05c00274f05\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 43\nikm = dc9e488c684dbf0ac8ff1eefaa0666d413d258f0\ninfo = \nokm = 6c91116d61a04407703a3b59cfdba2d71999564d\nresult = valid\nsalt = 9afa7df500d7a17af1f44422d25a62bf\nsize = 20\n\n# tcId = 44\nikm = 34b85c341a04cbade472b3f7dee4de4d1954bf70\ninfo = \nokm = a043e45d56fb32c784a3aa016f40cba8fa298aa813a27e0797c4a48ac464cfd36a61f0aaa184802a16ca\nresult = valid\nsalt = b066b42acea664350a8448f8e064225f\nsize = 42\n\n# tcId = 45\nikm = 44cc641e09f7d5642f7b6007ca5a1c0813319666\ninfo = \nokm = a8493c8ba5b733dd1e11ef719fd7cdc6773c5b53b5be55acf4d3365ecb6a82c5d692f0cfda042cef5265d21efb587213155cf17399ae61bd0f167f90eca74f9c\nresult = valid\nsalt = 69c0dde6c8e5bd40553a5981fad6ad87\nsize = 64\n\n# tcId = 46\nikm = 88a8880cc2b73e73b3b6ca1d4902caf2128732c3\ninfo = 6dc723df3d26f704067afb2fb6d95a66516d089c\nokm = 27e233f30c2d8501d42d229259c1ec350f7fc9ba\nresult = valid\nsalt = 0579f690ed32e57a26701a9f6877f243\nsize = 20\n\n# tcId = 47\nikm = 8408668b9d671121b8c7d31113f045c0d7c020fe\ninfo = b4451b0f1a217db703582881e86d8044d5f2e092\nokm = 01c4c9b37f4a5c01c89544bfa5aa92072a36206d90e2feeb0d5dd7c222a4340d65f4cba61ed01e79fd75\nresult = valid\nsalt = 679b30e6930a8ea3f076e317b9595d5e\nsize = 42\n\n# tcId = 48\nikm = e6715cc4ee13c4d999d8f8f500243c321f70b0be\ninfo = ef17c9227a5ca654fbdb35dd00dd6dc77b6321de\nokm = a3bdbce02823523eaf356cd8f2dcfb450f42f93d03f73487ca86fab09da7e6cc54e0b1e38b8a04fe02c528cb50efe0e3aa172e620b3c3fc11303d1005a137d90\nresult = valid\nsalt = ecfaca2ea3301a992b4de081d9d3a4cc\nsize = 64\n\n# tcId = 49\nikm = 9a6b88f3f68f5a8e79903b51dcd733abaece1a41\ninfo = \nokm = 06fb02949f1f1212cf27436ef3f595a15ce52057\nresult = valid\nsalt = 0226df3d66ee3abb275eb39c8ec3d3e12e9b87b67f85c552accc4279ec17\nsize = 20\n\n# tcId = 50\nikm = 0b9eaec88b2940a4754e83272cbf47fb6f86aaa1\ninfo = \nokm = fee9dbc5b95515e77a78fe4c8ea77e76c21f15a1a8207a38dcbe45c3498795be6ec145cc92bd6ea02432\nresult = valid\nsalt = c1616497d49246400ba68242b635c67515d2528ee1c3b71b318b631f9bef\nsize = 42\n\n# tcId = 51\nikm = c4717276e7c7f794c4ee333b2f7a2ab244be9e8c\ninfo = \nokm = d6fb5c20957dd52e3cf5ba3f7b1b28b7be3957a0b2a39cd913376e95dcbf30b481a5cf37d50e3de4c59a67b6113adb0b6a23458d0c4be71d2baef446944fae9c\nresult = valid\nsalt = af4c63e5b554063e83e37bf730ffa401c696088ccc4f133a8695ffcbf2a9\nsize = 64\n\n# tcId = 52\nikm = 5e43a900ee0d432c5fe6fc81db8d5f81a54e39df\ninfo = 32460280e60910b10abee2e9f80a3dab48acbc59\nokm = aaec302f32a812fef48e69dadbb56936b0c3119a\nresult = valid\nsalt = 8cc815009350b0b6a924ed93e73c8f8c57a1105726663b72741b67209c1f\nsize = 20\n\n# tcId = 53\nikm = 070c170fca600aa2b23618150ab9044bff7d4dcf\ninfo = c1b0971fefa0a23cf4b7185879475ebd8d83b9bc\nokm = f56000669f0a987954a1e80e3b10588126eb087440b4b253587f5d05ef46530bbe83089aeb1eaa45f0c8\nresult = valid\nsalt = f32a1cddb32693860eeb39a5d190f5667a303d5403712cdcebb575c6563b\nsize = 42\n\n# tcId = 54\nikm = 87a23208df5e66488d23f7aaa066e87bdced8e2b\ninfo = e4d66fa23a6020820013d94d1f8e84a58cba2a82\nokm = 3c5003f24499773817f13695c45b937faa82a8d579a0afcb2ef473b925dbeee8dbb62f28c22d1379f02d29e26327d22c2e4a6d951865ae1a6a3ac2bd441c805e\nresult = valid\nsalt = 0488ffa08062f1fe83e9c3934f5688a2e17827f898aa5daa2d595f09b245\nsize = 64\n\n# tcId = 55\nikm = 214746af12a669b726364027e9a1cfa40c18f8e0\ninfo = \nokm = ac9d8595b73c4e23791aecf157ff1ceb9320db1149a5b8e0eea62ea15e4d36d979b3f79e58747b5b6d51\nresult = valid\nsalt = f65ab21816c5eaa5c9ce77d58608ab67176d2255438096f4b45779d15c2afda12718ec557bfe161e7fab89ebad4fa634cf73f2d12c884c4583e64d2b59b9d8b9\nsize = 42\n\n# tcId = 56\nikm = d509c509f91d78c33b9d661e6df1992b2b6ae429\ninfo = bea4f60eff1a0c6ab664ff3db2f774347920a482\nokm = b8eb1092a47f8b538d33f065b688b3db48b1c47724d26c7106be333228a5f892010eb4ec58597f3ae801\nresult = valid\nsalt = 95ff4b20ade46bada320316dad7e2b4286e93dfa2a72c6366c5ddfe8ce2ff344729ea56416d5b53074c6d6c4eb4e4873980e5e4a4991d6b1497aef822e16e209\nsize = 42\n\n# tcId = 57\n# maximal output size\nikm = 79210bdd3e2d9185c241114eb2ccdc9cd9a92eda\ninfo = 583afffd66331da0\nokm = cf24e0b4c6290e8df554afa553e5b6dc85afb681efa20563871e8ffc1fe2b16c2c6ed18f7913c337ddf462475db5af55b5ccc3dc9f80350a9b538573c8cc3fa0e14286af2ac908794a53e065fbc062e65129548f18be49a029d23a2215a89b16fc802467e313a23e1607b08dff77d2e46233c5232cb27acae0ae98199fbaa42cb8315f0762aa320477371021b933c27e99ce59e45e706c36e1ed24788f0080955aec82b3b8d72da158258ee9ab3f9c62e426df25b3673d37b8961e7b57b36c1b75f8b086abc3cec04fb526ba1cf15c8e91e8d60f2e774b99a1c446c707f7947e14b4e074410ea15c84531a7b487091a9dd37e947d6809bc5c16aee9e1b9ee6eadf11763e3a5d55a973e75d2739c631dbc89a5157fd8bba4de5abc42160320771667efd8fd2f7c47ea5300513b655161eb29b8b056ce4d970b2150d18d42c7392dc67b9e6cecd8da53887316819e21699a0385", + "a1e51affa46b19e4addede417978c6e510a1823392a94e99b3fb47880394e39c13931c665477c76da3281393a8a7c63e80bafc203f0cb9d81ae23daea602d2a1a6640dc10abd36265d84a10e3205ac547a6d89f4d43afff02e854d5e0864ae429f38c7ab959f2a5a701c23e4d619d632552bef2f51d85a00eb173e544f7eb14b62b9d5901ad37be747403ba78eb512ae162d6eccc52436fe36d95f0d0baa13a4a1eeacc470cff29f9a9ccdc1d3bcb216af278eeee3dd039e366a66acfc5c51bf5a4800069baf54989ea911f61f1b58790a6318cb856dbd849cbc35bd445083fb33bcda8a97a4b7bc26ae02439e06414b652c61ecbd1fd1fac1319ca9c4b60cac2d2a539e7a5596f040d801fda9e56fcdca560c67056da14137e0b068f333f3526154e2bad4a92dcd777387e7eba1068b6c1ad30215f8e948b48cd89d03665b5bd7605d6b06b1b908a07c729c78501ee490505f1dbab1b545fd612feee0f12bdf94953b41b95b122288575ca36bffa6d32dc5c6ad88bb759c8cb894b607e56499c1037cd9d5a28a5a85766bf9fe8a0a705227b3bb2d6df3377611af40a4750e9587dadbad132f243947e62f2e74dde1d842544583403d778c9045c88c70d30d0f6167ba97828985aa39019f129fb85311eed6f91504931fd431ff90a44b8dd7f117c18dbfa5346dd39b1f9e67a00f04e8ebe69dd275099b3ad752d4162239265bda196d6f6d61f3fd6dbb9eef4bc85955e26d6eec2fbe513cfeaa7eee840c32b7bc06f1d53c7ff4e4e8f5d30a3f8c45e581bf59814b95c3566e47d74ebecde07ce9d3526f71f0c075682c03aebc0e582f2245c9aa3ccebc851d1052190a6f66dc47ce4bb2428d2fbdaa2bebe569995abe925549f56a1d9de904828bc9c11daea269f181f67ce03af3efffa79c5244cde5a552e840352f8aeb741025f71aee4cd800e362bf5554302d5124843a8e71ca03714f7c103d54a1e425d2a80be6b512ed0fda41a0417d49285c71ccbcb662d7bd85e6d599defc315dac7b70fa5ea32ea9469c42feebb78619727fd75ea1da649d51539fa5c16ab24bdaca44f17040bc638009adac1b0ccee9114b2aa67c9f87997bccd9757e9c8f80fb860909f366ed8db6760c92bb5a09205396634c408e3d549305180e232d5ad0d51adae83541330ccc2e92bb8fcd50926376956a00fc195c8373df5d24d0ea45bde59c1f97d68f25eefec352578d305bb0d8c2ec46737c4ddd7bf9a8fb5d0001c9a4baf544a84d2706be2a1f149091f6e03e86ff78fdfe64be9c8fb3413f229cc9c5783192f401c5532d8f359b8f0ee493be40ca9b5d2c1a3d76519d64eb3cdef6f4ed522c52f8e83ff20ad3e35ce7d7d4cedeff21e398828b49d1f2b880477ff7c107349447e1fee43949118f302547ec168810c99339aec5ba3064a58dc2de08b4c15eacfa42a66362feeabdbedd495716b9344503059d20c1b06a135955439ca71f0274e56dc85dbc135d33a9d992784da58603d3ab6873065a36b68f8078acd3a276610e4c4335f57430ba591de81834417e770595317b02491619c259c0f5002afe89058c244468e8c8ed2fcb98bf6cf8fec723eb055eb8745de08b4b4978ab272a5db69dcd4a2ac712a66749e603648076713aea17e046e66d68102eec7a629e57803116d5f90a790ec86e3b54a5dcebb100d6fe6c04a170d9a54f81784cf59c0b3d373396e8310774a0f2063b8a8bfd4406a4e0e14cd52112334d1d1a2fe90a91a40b1becb806c53ad8039cc08885485550d7b84d7dd2d7b24174ebc1186097f44f904646bc68fdda207a99bee9a68dc41351c9a7a76a06cd66190ab922f5c8d0b03e2616f8451241b22a919e60f63431e9d688dbec5b72f7aec8a1d164d0d236767df3490131f01572e97f479fe7a4589936df3e7cd1bc267d71d182f227c9cf8c53ce5f2f29c709f21ef9cbcf89ae646a5b9f1107456ecc20ef28adc28dbe616cdd8373cf1c97863e3d17f078d6fb9c136a1ec619b1353ca6c18e2b6b9276aa14bc2013734c31d0a7641b7c478ac62c0cd19b3b33f4b40691b96a3aabb65cb17fee503bd383ecbf04219fe545b9b4e538bf3bd78a60c6973e0fabf36854cb2420f0996e68832591865db34ff84b84e7701697336d090cc0d43c6fe2cb8d98faa81b74072a4b51af9a43ff52a4a2a794793b2287fc4d611dfb681a3d87fd5dadb64469c2b3eff8770971135bc53552910ba78f154c139ee1ea7ac3d407f86b856fbd5cdcbb5ff51c8f7ac81303ac78ea78a9b2c1f4f7c50dbd4a3079033177194c9249252653dfde9dc1a09ffe849adac8cd952c6a2ae4f7931e3ae4bf49b1ea0f0381abf3877b49e920cfb24c0013fa6bdb95803d465e0165461b8ba4bd085a7581b822f2821f4fef32d1dc80655050911c93dcc86b2784e2c67faf164a1329afb12b92031b80bfd589d2b8e5b4548caf3d656fda7d59e8d6b499c2151d28586b4b735fedda3c731749ae715fa616185993c46c0a1aea431cb5e666d13937917dfcf3519c52917dd8d327e1cb6f7c02f1d83945e8d469cf73ab888e86894b64ffc632159c66af0ac8dd6783300d1f68f553db359194719cb31c0bd652affb1beb4511e4a8e896373cef1e83f88850d4c5799dad239d37116d8b87ffc27c478260011d9da68578218d493dc0b09d2112dc33e97e2de97351fdbc5009d8b351b859253e2072c268e0da6b4bbbebfcecf86c9d8a665020831566ed4f1c8c206b32362397774aa6d0c506d18890a1d616d9ce0844dda2d06af3cb3e7f53bffc642d261b16927ffa15a8fe025b77e693bd434f503c977e0d8ac1402f6b2ddf92aebc8c29ed3b64802d890174ee63348e404c936351aecafafa7eee855c68a4cfa503edfa51e927cbc2f89a8eac7427d96274453631232643da696312a75ca433e919b8fcf563cc5c84f1c2fa1a3d5e46078bd276fab4323b541e6326dfd0cdc057e6dd33172ccbed29bd35d289367cd378c78e96c4e2c01d3bfa295b3164d028ba8b7f0f8d45bfe54525fd847ead0b46af5dccc53fa96ac8237ef2f5389fb7b1dac15458c145425370c22989e09d6249c1a8266b0c924252f5a9b81695c9e566698428ec655d786bc1dddf0c2107824f0ef9f28a6eb97787d77872c0629758bdd8c47b36fcb104714b91d65d4b62a37077e6cbca5102ed64e4960d14b68bdf5f51f5aa19056fd9c4f82b3eae0d05824f3a257f5d5e7e2a22e847b1e2b9dc0ce1d146805513b29fcce72f3d03c9a6a2a4599d77fdff432f76690e42829f51f7c5af716372e830701d8e264bd89a3cecd896b973dd39c07ba39efad8e4e38ebcf040edd4c497f199b00c470cf1c8d5d619f856a003570dc421576fb781f29a2097b7851fc237ff4bb462af5fbfa266614bfadabbf4d631825ab02cdece4b27c9d4023d480d52da3d26ce09f86584d67ea2a8fbe36e61bdcf4065bb2db1c08f57178a6fb9491b9e6fb13a72b99cf25773fa79d0ba9dad45d0682598d8aaa7130b6866158fe71adb7f23c27b8338ecbafffe8b12216b3e9205686b2b819942b3296c03d77e58797ab1e0ee7c61ec507d3f4e9ab7380348753386a0e3a3a9f026d789f2f5192c97d0303bab9980b943428044516725779bb0189ff7c5d0cb05f093ca5940ed30f1b28add3a8c040663777f93bbcc070cb84b8e569da3f02fb4a425c73d14e49972828fa67b819b22cb69f49d3acdbd09963ddf174cbcad48193f2ec2e8b5cfdc785980abd790f18533da0e0965dff388a9121573aa090f1ad3d63ee7b1bbe98d956f3c56db55a22e93123375d7f0315ee15355b0588277de76cd46837ca6a2b1cb8dc00a98c06707f04c23113c0aa3d7c06b351c59ea1d2294c4ec19ad142de809d8277bdd4a40fbcfbe4dccb11d4bf323955e1415fa91efdba9dc79eaaa9be1f17652f68e51588c847fef9447aba64b6806d8013ecde501439503eda39b2d20809f78a96ef4ef88ff71c9430469f2db5069a725a09dd465e7c9c946c04778a9b1dc02fec2d7c655ccbb277572850fd2ea4ac0a45468e8efa97fa23950195957b079a0b002647b08025edb7781b0979b1a7e3a1d681eb59a70b1cfc055e0aedbe9fe56c34a479a85e766bd32a6780a193704b9216dec17dc7d92eb46ed27f091c1f62cca2a329a0d7d748502f21c072bc4b90b71afbd5d66d19df779bcf9514e81eda5b934a14a0509e6721916a2f35e937763a46dd5a7eeaa5ffaab6c68a7c0188d9a4f70f30556ee43a9604a7aa43507067ceafe41a98df64451a1047efd6c88d17c4b5fff71a2312b3d6ff558e579fb2b6acee500bd0a8f9e4e4f81734c6ef4a8fe83a977a67e98c8d2eb6ee099daf0ef410d59a60c49250d48be47511cfcbeff34b8ecdd83802dc4683c32b404609a41629a67e17e6a2bfe6cf0ac5bc926fe97c15552bff54a0d20987281f8574ede505cf802eb2cbbe4a3149e68c4f504c21d91c576a8cfbaffec52a74b842e5d7733b07624741772bdfa75e5b5e0e3785f18357c66a7e50d991748c76c29cb44167d60dfaae9b6b1837361b10e45921090fc9644a4bf968bddc0acfcddffbd44dfbd5824169e3534d7fe7d28ffefe3e992a6579fbbe06bc79d5816eea0b4033830acecc0b84ce000c377d6447796a76869dee1747a3a37891a3c00e809d1b83d0aa4e70c3a6874247e719a648e78e02d17c9547e62c398d6e5c04c88090cd7b7a1dc1e4a57b1e0382bb7bece72c973574ae0ef2f11e4f0c4c6e2e76dea70411ec01a2be5ec2f93d001ac919d01b5ceb2b86f7f4a2081b42210d6f1a8e4301390f54343db84ef4aee9dec2f2a7dd5dc0780fe95d0818b6f9aa0fc7672de920e8187dbd7ec7e3885e5e34d268b2cda1f4c4feb28cda9669fce58cad9b2598f04d767ed8ca2ae78ff5add40596e327af23353f935c7fde402fab88405f4ff78f02e69bc5ec166280f04d886ba2270c895ddf5942ccdae139cd38edbc708630f41d5aef67c7be8f73234b990a3ebb21f50a493ce10f571a04fca61f67677aee0f8531e671ca2a32aeb3540b3228bea0353feee3c144207e5fe5c2198cfda2ac9798bf376f19565c43371153e5f41bc15b80cabf67cda36aa93f92a3530dee33e4556d1702bc916598e92f78bc5637a02398f46e376eabef664b5fe7733b2d0cbb27c5a9c8d7b481cba3f07e56a87cf7aa5e039965a1237b098a8ecb89148f1e077e2fc216b24f7aef754a65809736ec673c018fa9d98831f69838600b011328f17310036dc043c333fba65812934d4f9a2a6b61fabe75b396c3848a095d63e9eb301d0e6d7d77ea2dafae8f40c577a8d3a9f1a77c3d21d18e81b8ec3936c3cc0f06982e5ffcef5479d3172e381144a352109698a3b590f73e238ba7b7d07306ba970964fa92bc3916b4efb301b586988d3f17d0c1caf2021c318173692f543ba7a8ff792608ae4bdf407e41ef017610d784f9ca3e7cc2009ab4c4c3c597677e4c4eea76014e70bb8ea84f474128d648904407acc5a7a75a5dcee6ae81b2fa97e95d9e210fecac7daad4a0a2c45bea7357b4986b25ea97fc234dff28374cddf4adf5702ebf25eafa83fa67623e2417442f78870a78141dcd57a7e3854d133362e711a06cfac847670906c9c0a54e50bf183369d65c254666a9562b42a733254fcffc51120b4ec5b911460da89a9714e204241411ae02cbfa771acfa328a7d777cf802a5b1814e0e227304b006fad8b2579c15f66397830bdaf9cd02399107332fbd538a29a0b3432775b2a1d2b088ea5828adc5a4", + "69a900af172c6a24a2a56d9a387c74b55fd38451ec802b8a29271d61d8f1e9b6e6ce964861f10b67d04a521a53e45a73e1085974f2d044175d66689b194e3596538695e83e881fec13537cbef21d5a2ab9dc9719752c188bfc3f204950dba940ba8f8023ed3a571cb0ec9c7a2c247a89b4a3fc6c4d09b5e3b90f76e617da43f1048a17bae73856b971df3fbf52eb4eb6adfc7894401df77d165e1572bccb941f99ee6219cd71ec82a3ce48ac556686cde78136ea28d5b801ad7d73d0890b96497fc6e7799548f82d2071df84dba792066a769f2e616a939958747087464c00d04f814685595ce26d81fb43f07f78daaa85fd32152356976756ba728dbde26ebdb8568ae15d2c6d7b41ce08b024417f471e65f6e143860130985c2c4b6d1b8ba51b87d94ef534b285dc99945f5599c602155a194b03c114cd40ebbd03011c6e8595eed8a9264af8f13201bffc5225e369cc2ed17c5c732331d504b4821aeea3acf79acaa9e98e3d2ee1261c366486c4bc59dbfb62b8a971b976c8c6e7379134d0c42277c779db551c8fd39942f88e2b5f6eac2412b1354cb782047f20dbd9a6fe081888a970d9f3aa881c6ea7ac8aa5d67606e03268c65875aed52d87081b9bf140f2a0598b9f743f290880cb816ab5a8cacc56e079380f25e559b8f7914dfa8aa44e3eeee479bb2fcf297223377c3a153d3cb04f22c4345d80953a1b65ca9d9256f129278bf7538d884384e76932eeac09dd287077ad60a07bf588e1504ae5581c9c30e8a82589b00844d3b337f44bf9d3fbdc34bbc4530551dbbb25bf7c309d700586bbce48a2499698134cfd224ed04597390abc324f6a28361dfe4bcbc04ae47aa7e59d8b1952cd54a169e978055103e573a68dc2dffa6600ebb95acdcefa98009ce111278d3a77a134ec1e3801e030a2ee72d179f9f7b9f1bd53517e0591076353bc5f0079d3a13e35a7da033c39d6448dffb07d4b647fd54f76f78bbb186fb9df42837fd8fc809b388f8105f1ffba02cfd150c7e35ccf513835a7c58d17fa3bb6cc36acbb12a83d4bc6d52d9f9d84227a8b25484eb9c7947f8fc45cfec7c3ebbea0a90c2ae84dc5b92fafc91ead28e5019fb3e9cccd08401f9a829ee441376fc48027b413a2a079adf7a251c3e741439e5193dc2e592038b69bcda4238830fcec5452e12b8df0697f623ffd944884de86c828b603d8577911a0d1948a06b6f81a7bc5b2980b7179d37cc0e7deb148094a0f4837db396063da3cf3df6567221e82aa9b45dc432682cf53674ac3ae20dc8187e3118fc6553e08d1da793de157c36534982abd529fed5fb325aaa14d92a9ec4ea02ad77087280a1ca530e086ef456cb22e68673b6d07ba608f34631f19d4c9846ee2f66f2891b0278d7e8151af3976bba441bfaf95938a041c8553d767777cf6e5a51b10d176fe9e58f242bfd0513e677e1f9fedd7c4ae7de1973b3f094eaf36d0b471fb1a0b67867d2720e513140e569f93240f809b711c54a12daef29fd573e58793b4e597037a0e01ec13fa06e36c88f6eea90136a51ba6cbfd2b5c38e7da13f3b903b5d89a8410bcff27fc2286b7033b228b7639e004cda29b24ce06e17fdbbfc346b8abaff01680df78d01a45d65cf594e4244eeb9f0cef5dcabfe7fd2b1dedfc3cc0540fd4959a90ead36bf92e738506ae6beac4c84cf01df8183a6f3cf7ea7983520b59a8f09a47138b0f5a75d12411e82214ab312fb54f575b33025c3f5ed5ca9bfe3fe9571b9c4b06854232e1d65bd5ac71d7be9196bc7102e7e77fb305e49a16e9eaa24f12948fbee62f4f9e5619e36cc92358252f9a17182ae12c2d78e1942e94ebb0a9cb7c58164186d100e73f93dc7a3bc543579a379514fad48d99e32fe04a947be3df5324da6267ac9b928baeb3c9f9b5181262b7e2956f0a997a469fd079ebe57f7396025abf8c594d09ff2f353790cfda055ed8b570abce9c1c18b5ad4d82a0b7195e4f77c48b58d4f31e36f11d4b64deec09c2068aadb0d74f01ff25ec85569a854f9b171bcb41de033beb985413c3f92c7650edebe9af6ed5c4882045ffaadb95e88d0d737188e81c1430b96c4afd02d2895088522706c0b5e22883ef9bb4040bd276f526971d0e7cfaf9b0d965dec0841ff9db5afae213eec385c6967aa84385e5c1148303b54a45ecea61f3e6279066fa51db25a1c42c88e340c1e8ab6f1ffbe3d2eb6a26279486f9202d8b8c02fe4a7830a4adf57764544cc82df4ca6dcf14e332e283ca6349acc8a90f0dbf1adb93ca294a93e5a34eae79a8ae2b066795f242e8408ceba322608f892de6e559c25118d1f16ead863f90456a036f4e976fa07cc9a61f213a62ed075e0668e90c0241f1dc92a14e09602ca27df696de8f90f0e8ae48960a80db14855b0b0b6c7a7a31a6e719a41df797e09dbfa17f93e9f152fb72d5f2cd56caf3a1532640ae8e5dad86bd6d87ff60cace9b651cf90fb8ff42b5d9caa904ef6ca5164fa1275010b4482d12cf46f4c240b3944e0a9b1d9ddf306668c6049ee3276ab596469882f603eede5ee5e890319693f42f16884c7fe00f06c132ae40cde57f2c0cea275edd6b40f866fad63c0661eb07176b43b529099591e63dc369bccb13b7b38ace2347052b457fccc4510639dd4ce5f324bfd6b7ca399398ff20f58bff4d2fb48a160fa04239106c633414289c419b270fa2c8866392b220a142e00299e4f85ecb1c73c6222c7228eb26bccf3af56cb6c4d308e03010b46327aa08af24bb82acecc978824493cfa7ca97646c936b641fabbf151f85f06992ef48f9e7298a8e6a77836a092d1742ab9cfb1d032e75acb3c5db7125b0407591d54d3952c5f1d597c3adb5013e92b172b9175fa38aa3a4968676112620dcb561adb016a45afa5b4b18660f4fbff9f98f21833e8b46c1070aa8e8e95850631f7e25361eac044e662158aec08cf87ec02e16ba4b1e19a969fec3c7d595694c5b48bfbb7aac5abcada36dfaec9c64256e0649942a1171f886a85cf9ef29881f297f5d6ca63679f6dbed9c638f970d65b602ba63ecb00b9e3b8e5d91d339f400f5c5908e6fd16535d93348e41bb0383c0a7f2790111415a3e8948ca0910a4f1e73f85bdeffa4b3355ab2a14e2e8368de0559c4315486ec21346823d21049860bc0d698766c1f5a86cb283b4f549c31bbd48f26184aabf676bf5ad8377df558e3cc33e5668358e12e3c442df86fa18c60241b8a77be7f12af62618e615a6a9193cd6a15fad70f67e63833cc0eb561688be0cfd9eda0e42481fe5a419778e07b82bc45682af16a7ff00055070f5cc0f2062e0a60d4d59a2ba3aad38f055affdb01e4ffed87124d07650e39eb00ba8dda82cde140cfeec546dd555ca15e1ac231db239caba419a2b39393face30ed9e9971f970fb59883b9d524745d8bf1b250da59704349227e9f2dbb0ce7339c7c9e3b8ac6e3c90974ea8e81b1b73d04f254aee6384903ed2fa844a2ab2759d32e0676d7a64f0f8cd3e5547e5e486c0011304a7b4878caf6e89e4c02306e848d266bca823d9631006aa3fb7986eb35eddc423eba51853945b786179d2580e69177311b76da29c6420549cdc8c4bf76aa0138b27a4d7a0986bb891602482ddeb6472fd6be465c06c7261a6fe0f6f8821786ae408b7de34846f158b3518cf3ca21d660d630c860cef9cb392f5019fa32cf12549d1a0479aaa70fd51a0d293d84d45668d072b17d7101aa49957e2ff5d83a59410ee9d0fde24f335a523fa35298fb5aa8c00445e972f6ba8ceac8b46562c781b9398fb2896b1121d66630b50afdfc93607d8bc020c606b6cdaa8f51146d2038abb193f98371d4235207399994b6f2eaeeec8fc5275b1f087057482ae2792a340f9c0eac56149f04012b2b59d72b1ca596cf11ec9401abb77fd62bbeea3a0c6e25ec6e17e6a5cc4cdafd8e8b940e50ad0994878ade0321f4d2c0732fefb0c5306d3835847626a82909b0b96f0fc9a58c8af8f25d8f0ade664cad6efc79739d4532aabfea8d138478b3757b306d75a8ee51cfa7be05da9255b9734261589433ceea6ab8c44264efa08503d7e87de60c40b3fb9112e8c104e96caf323c2d2972680a2145a45218b5780bd769392f9c649093373cca9555a2a837e7b719a19f446e12d427ee2c5f1161d9d1ad24e4f532db0f24a3d902d02ba3d7e6fdc222ec73c16838519d672aa767382510059edee74c619cc2d064a521224abb370d947a8ddfc26a439a028fca6b0ba40b420ec5313db8198317812e1d784b902797d3bf80593d247ad46ce2a9bcc87174527f1ed9a6bb4a27329fe7af6989c31fda897baa7f38b2231e86546654854fc979539125062a6de298677df139b9602d927e316f942cb83da88497c453a45673c3ce40e3b5385e25d0291f25d187894af86560cfd4714b912c9a4fcc2b12598b55c0d9c9173109769b4a3fb5c1d45a21f5103273d89fc3553f5fb4c19079e64b99ab9f3d39ab2b3ccf16ff00f155f3fdf33c1f85aedc471525c1a9cb468489dd92d6be3e3a864b8dbf4a21beb4771f24ea8ce6f434910d99f6141a1d64041ec3cfdcd8589db60a2cde9ced50a50f9986ef7a334173c7604d16e65f1dc67d9e7d7fa8b154a3973c6ce20479626f1706c3efd7bab3d85a9f12690c29aa786e3aaf80352640d0cb393cceee83a6ce68112052d2f6d6ba1d9c7d4089576bbd2550863fc7a0f0a382878c8095d2f3829853d6b221e49070d8512c72879521d5e956d2d0c0895fc4d9a5a59d07135228ba85d20b672db77b4bba77d7a00d45a039daa98cd70973c57c772dc3b0b9df0b3649a8afc35962a03370a5871cc1ea51f54ed2b52c5bfb4fd54cdc68ed519a40d04e6153d4a1f86c276215cf5fba4ee67f6a9d2f38d1ba579d9634ffd22e05c75a90a825f75911ac787e8cdf70366afbe6a35527b8ea875a7e218d15c9b3d833bf485a716ccbaadaf7f501829aaccdd92c02b77c24d49434f0735be5454be94010b68cbd5a7c70525a81052a46e64447caad264d71199db69791d2b8f9466238c9514feffcd74793d43641fdbc54c692e38b28830df7ddc27524cb97f1861034f5f1c9afb935e062411e407b582b09b8c4a6cccc90fbb491fbaa375bb60893979e86d7081017a8ed25538ba08d49e3fe989083869e88a38a8fb2b3044945f121c7e10a5719a93d2b33e080b9ce3e1d783048c6567e2103987d1f842693c41e44d34c130c3371cc2502cda329eb2a46cbeb56d8bd52f804c162\nresult = valid\nsalt = eb5f77214e3b70a7422822986dc397ae75bc953d3759a1ab44eea1f08b789d36\nsize = 8160\n\n# tcId = 58\n# invalid output size\nikm = b237665db1d0652011a5eb49101c4d910b11f7f9\ninfo = 5901d8fb43a50973\nokm = \nresult = invalid\nsalt = 9ad532fb460bf6d4c3eb565dcb84dd0f3c04c5ce962076f1397ca7ca472ae2c2\nsize = 8161\nflags = SizeTooLarge\n\n# tcId = 59\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 234b37551fb454431c62edd79d67da984eea21e86e56093cff9645d7f80b8188\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 60\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313", + "e25509a7b\nokm = 234b37551fb454431c62edd79d67da984eea21e86e56093cff9645d7f80b8188\nresult = valid\nsalt = 0000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 61\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = d45c3909269f4b5f9de1fb2eeb0593a7cb9175c8835aba37e0ee0c4cb3bd87c4\nresult = valid\nsalt = 1a08959149f4b073bcd902c9bc4ed0324c21c95590773afc77037d610b9584806aeeeda8b5d588d0cd79e7c12211b8e394067516ce12946d61111a52042b539353\nsize = 32\n\n# tcId = 62\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = d45c3909269f4b5f9de1fb2eeb0593a7cb9175c8835aba37e0ee0c4cb3bd87c4\nresult = valid\nsalt = c737d7278df1ec7c0a549ce964abd51c3df1d3584d49e77208cd3f9f5bbfb32e\nsize = 32\n\n# tcId = 63\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 5940d282b0f3f91000dd0fd2579db6ac5d86236d5657742fc00e4d9e1757f7c7\nresult = valid\nsalt = af856d5eed5c77f4\nsize = 32\n\n# tcId = 64\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 5940d282b0f3f91000dd0fd2579db6ac5d86236d5657742fc00e4d9e1757f7c7\nresult = valid\nsalt = af856d5eed5c77f40000000000000000\nsize = 32\n\n# tcId = 65\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 5940d282b0f3f91000dd0fd2579db6ac5d86236d5657742fc00e4d9e1757f7c7\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000\nsize = 32\n\n# tcId = 66\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 5940d282b0f3f91000dd0fd2579db6ac5d86236d5657742fc00e4d9e1757f7c7\nresult = valid\nsalt = af856d5eed5c77f4000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 67\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 5940d282b0f3f91000dd0fd2579db6ac5d86236d5657742fc00e4d9e1757f7c7\nresult = valid\nsalt = af856d5eed5c77f40000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 68\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 5940d282b0f3f91000dd0fd2579db6ac5d86236d5657742fc00e4d9e1757f7c7\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 69\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 5940d282b0f3f91000dd0fd2579db6ac5d86236d5657742fc00e4d9e1757f7c7\nresult = valid\nsalt = af856d5eed5c77f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 256]\n\n# tcId = 70\nikm = b18e35e63cc4fe4117bf2754ec3f9ebb5346dbb0bf6d4e5f2422418771816fc4\ninfo = \nokm = dffa900130e1d074c51fe2ed2d7764abe94a2adc\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 71\nikm = 236c2ba20c72242820f63d3e9c20633162c1cb048a45dea13861e8a138b9640d\ninfo = \nokm = e764a7de3f1a3637f41f102d586b8e98f9e95bbc2db63fdd391ec8141cd326259a533fc4b2c7dc6b4fc9\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 72\nikm = f2cba42dd82acb5d2d569406815a3769b7becb13fa48537fa7d7d5e121081d39\ninfo = \nokm = a9ff577bfbbc7e01651d10589f0958f5ec2316d6ad96f9a8c822e4b0af8a707ed5c04839ace033274e5eb748db183d48a2876ba13fc11a3fefc05cbe30b9a18a\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 73\nikm = 73d97f2ffde01b447a5b8573190a8eb4f87f7ac04482836143f780ad876bfffe\ninfo = 74d2301c5aca2441372cf6077bd8806dab3e8721\nokm = 7e447411adcc3af485031fa5cb8d624c812b4d84\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 74\nikm = 6948521434707e96fa943e44988d1ad409ec57e6594867e8193e9d727238916d\ninfo = 9eaddd1e7edb6b84c96fb5ac7e0d673a8f5084f2\nokm = c746740b67f49da7bb6f5d5e6cb5e23509bece3637f33c45abd96fd8b1da48772baf655f24049af16451\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 75\nikm = b72b3854923b8a0048497a86bddef962552c8f6b2c72b2b2006a1820fea5c6a9\ninfo = 113b708f7522ec3b362999db18699bf7871e3b8f\nokm = 6b00010a427093de7e0eed1f22642b2b034b84ebac3b9002229962ef12e53b5baee7ae771a821b385656398739043da5f60d027e1d01e42736a401c853f2e0ca\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 76\nikm = 44d774def90685c0e9a685fa50fd434c807d1a57896fa42f91778821fe232057\ninfo = \nokm = 651d20c6a40e23cf2dcb0d929776e64cc04c3466\nresult = valid\nsalt = 0d7d3b47bf8484c8adab7f9c27c9584f\nsize = 20\n\n# tcId = 77\nikm = 098ecd86354496a701ffcac8d589a1217231da3b80ccce4ef85762d7f3a2c211\ninfo = \nokm = bfbcf6c703d8650b8a7d7d0c84f13f635c73e2e8f608adc8964e0ae632bca4d3a70e92e5da871821ee1e\nresult = valid\nsalt = 5232e5e4e2dd6133d46ebe5a8a51a0bc\nsize = 42\n\n# tcId = 78\nikm = 917ad396520e454a571ac39a9f6bc845a8920954fba1ac400cb2988cd8847ba0\ninfo = \nokm = 547e55f20ca5d7eb38596f6b60f9bcada416cb9c987439ad3c772b27b98cd39d954f7ca5d60c05164b7680ea25b101310671a427162e39baf08f8efa5d0569c3\nresult = valid\nsalt = 962d86949506450eaca929286ce5d9e7\nsize = 64\n\n# tcId = 79\nikm = 1cbff2202268edf1985bc91466b80133644988c5e81368cf0995274204fb0aa3\ninfo = 3e4f9c8d3d607c2ed43caa9e87e6ecbc307c6048\nokm = 7ce3df3702e7b7aeebc2c11c9fc0bf28b2b90aad\nresult = valid\nsalt = 2bde6e33534731f52d39add940ff46f6\nsize = 20\n\n# tcId = 80\nikm = d00d6b4fe088077ffbc64127d6bdb9707a0f9061c0b873c334c3be0adaa7c2bd\ninfo = 4266351bad419173279c901aea148e8b1d99e50f\nokm = 84afe4ccca3e7c99c6eb84b33a25e66a604308861622009bc7ca1c52e8ddbbecf10aa92415b003686dd5\nresult = valid\nsalt = 1647a044472179d454b8d2108e4a2aa8\nsize = 42\n\n# tcId = 81\nikm = 9a27c19b607adc8f152faeaeb1282002d3a2166894b7fe5d65829ecdcfaf73b9\ninfo = 36356cdc28187c11cbb9046f9ce7502ab4d2ea46\nokm = 96a4cbf7f84bab262ad8cb024cc2766031957b75fc412aee2f539cedcb66cc2acf7a5481c155ae91d7f6b6c2e8484a8c03a3505f0d2210f3053d43d83bc651bd\nresult = valid\nsalt = 70d83929a6376a6eab859f0d6225f131\nsize = 64\n\n# tcId = 82\nikm = f5d1c855d3448e212d76d3927ec797dc439cb182f427064288452988ab79c83f\ninfo = \nokm = 8d910333d171e6ac3bdbfc703a1eb64e1db04cdc\nresult = valid\nsalt = 87ef5da5400db731d658972ea82b76848004e70d3b22cec76c8be06283c4\nsize = 20\n\n# tcId = 83\nikm = 3f19b7095a6b3d313b59c3ba2c3a78d8b24f30c9ed4f8be9eb92f8eeaabd2c3c\ninfo = \nokm = 7deb232b3eea8f89dfb2527aad8b4e4bf0675cea335d423fe6dd224992aaea61661c886d77034111d8e3\nresult = valid\nsalt = 8f1f6c8e4f68830319ae859b4b1fa71f1d69552b0c3e53cbbad26293651e\nsize = 42\n\n# tcId = 84\nikm = b1d396c69f14994dc8add0f6e0cde4455677ba9ee95ff84a142295f9177ee629\ninfo = \nokm = 192858a93bba3736472d44cfd406f745a19afcf72824f5367fc2f931ed0057b88c06f42aaae31b660720a2db6c6052ed91b3c642a67d04d9621682ce877665a4\nresult = valid\nsalt = 7f693304bff77534b8246d832749387ecc0e8daeae11d77d022ca9e362d1\nsize = 64\n\n# tcId = 85\nikm = 003d1901a10c062ec44e0f2a94c544b7f53b33f1ea4679fa6e023c2d0a907fcd\ninfo = d5d3ef5beb9840d15efe9c778aefe38f1bf7bae3\nokm = 3154e598c6416fccebc1ab5c820fa8498177ad38\nresult = valid\nsalt = ed86cb8c8ba1c989f9a60a4a82c38be98c70e6218576b292c93fcc18192e\nsize = 20\n\n# tcId = 86\nikm = 02e0647a4b7ccfc0d3ee7ddfe24ce69c02f51cbaa836b96cbc5a9c2885c45599\ninfo = 4e9e27d971e76fda614fde15031f6664b97d4786\nokm = 693bccb2426f36134c61fe44d8f77801dc55489cfaea660f0c91093a82cfe16844a7f60e416edb0fc5d1\nresult = valid\nsalt = f0862f61f2377ca34b76476ae21e331b114c7712aef501a1bf00f7e9cb79\nsize = 42\n\n# tcId = 87\nikm = 92bfb7e31e839f109e6622b2c2c4f41ce84c9907172681920e7d90e80e2339bf\ninfo = ff36776fc755722ff371f21cfb37a168a2731e99\nokm = 325bcbf88f99f347fd2a565814d435a295ad73ec203b951e56c11055c62b989bd8138f3d0268672b8b1a1b7ef00578b5d30bac41848383f4e5392b7276121d0a\nresult = valid\nsalt = ce869619607f71fde53ef", + "55e18d01d20002e3f91a8b7584190fc6667b8d2\nsize = 64\n\n# tcId = 88\nikm = 17632581c34ab743992cd99318889b32f92812bd37f41636b5fbbf2b12190c6f\ninfo = \nokm = 696d76e5811d7808a8d1ab3f88c699685e04f12ebcb7eff276bcadbc9492fd163618f01ef9c92e597d57\nresult = valid\nsalt = 55e39431c83648867ac98eb7ecbbc8b41c5a5e774646b926a9b49c511915b0de1241f8666da198f6ba4bf7e9025e434b6d7ef794e7a563309303055fe3bbe769\nsize = 42\n\n# tcId = 89\nikm = 045b4d451bc30c39afe0932f6cd62e65b4b2ae2cf1160f19e8ba1323f7ca146c\ninfo = 613e353162c6c1b12fb1477fbc54074ff7848a14\nokm = 46f80edfd0107fa0ee7679870d8053efdc002b34a631ef9e80c4ff71f26f1adf67ad86e5e010e03e71cb\nresult = valid\nsalt = b73682dda0fad41095070b2b26f2d7d98ac62202d918258ca9aca0f794ef5e4d23b3fc43c8cabf9fcb37ad9a62337fbce967fe24054c3bf891195858e53997f4\nsize = 42\n\n# tcId = 90\nikm = 82efaeb5675daa97466cc61626f3979943f3fdbd115488655cf7d10f278b4777\ninfo = 2ef76656956e76c6\nokm = 7c46dbc4ff032e1f51eff7e5b42f7964c0033d2eb1fb9792c9a2e881abf28cf3\nresult = valid\nsalt = f0950b72da1658417656aaff8300de0ba25c294cc37c8cbb5d21500db5329655\nsize = 32\n\n# tcId = 91\nikm = 29f4a06c406716a2d0977bec7da2b1744558bf9cddab315d9a335664e0b3e7fe\ninfo = 5faad6499cb41564\nokm = 7cf6836ad2510c69ef9fe46956aa21646c59debe68aa2275245406fc317ff9aaef1ee4ade1c393070136c96eca5f84ade585215f4ec4d6db\nresult = valid\nsalt = 76ce4f337e3cfd2e2f6b285a658bb91e036f9dd2e18cf29c46765e62ffa37b29\nsize = 56\n\n# tcId = 92\nikm = 2b1cce4f551d59327f13e0eb78fe51ed5e74d1c5bce2d500d832b4b880c041dd\ninfo = ebd644650e75a774\nokm = 7710f9f762a96aceaa5096058e1fb32d62803c1f7fd3f63495bf7773ef16956f3000c53616bd5bd12a5b28df53ae7ba7c36267e2970bbcf3c4b1476928f44c0906b6ab204a746f069cc9f065e038143b842a9e69208a37e740e808c043ddaa663e52a1357617eededfdcbefdd7d5b2c5c0b208f981da0a588b10413fae9ee7f8\nresult = valid\nsalt = 7b9ab6287dea796394ab0b7d260476d02f86e02266bc9711f8ba4861ab69ac8d\nsize = 128\n\n# tcId = 93\n# maximal output size\nikm = bdd9c30b5fab7f22d859db774779b41cc124daf3ce872f6e80951c0edd8f8214\ninfo = e6483e923d37e4ba\nokm = 5fd99b6a94d1fd2fe8e1f0b9a7b32b6be4b9dc967b78b9d7a221321154c12ce014581e7660649e582377272bd13cbac2c9ae66625b613ed01f3408a560a213e8b6d364bef03ecef71cf58598dcf218e461fefd6d12db5cf2bb196b79082c5ddcb5dc7a83217fbf93c4d89dc803af71c7bd1b91ed9eed4e9515032445d83fa9698433dbc2c357a587df8d1ee4230e1519234992759bcc2b5261fa109141eed97c090806929af8a26d949f505c5f6d0a7c9f5c85e687d947691fc63c44215afdf0223b3813da09b2683e19b8625403eff8e28bd5de09a250e900d9fa8d74dd43904cc21304e708df0fbc6c42f35ad2f1223326ea921d92b03d56208cad1477249e0c9d741327dd264b1fae6f2869da8cb3f4ea0385d7ff27afd49155d2d4099c8f2afc5a93da83b8d2f8fa9668c2dbc66cb84376edc38674b7cd0285c1cff8db4d9b339973055c74bbbc8070591da6b86f5819eaa774124ec203f8e16ed9f9b03207c21769be4b989c0990eb5fc8a25a48b9a906c72f22c5b9d1fe3bbc77d0f276ed3de40bf3699cdc9cc00c5289c8fe1071703d9282d751e0d57d1d68b427a642d73a31b57d9cf321d5faf612223824a58422cbecb9d5f5497758f6c84799649a06cd59d6bdf786ef28fa0fc4d27c33fab33aa9118403286e0f0f5bb01db77e3683dd2765639d5f67b39e3178be9adcadcb336f25ab81701382c8cd9a1faa79d89817060bc3972e5279b3e04d01ace7be1ae79904091f2127945e853eedac23f6eb2ce61aba8e4f789ecc82c6ff846c289de412e0f393de8f1de0ee2024a3acd432f8806122c98be4bc2cc54ddcc80453880ac122a5b37c24a2daac608436a148f83a59f8bf8d9cf40a61ae1e03f8985ce181aa16c6dde9f23f1847ef8c142db603abf27902796140b776b3a98157e449cece81755ad3e0f963cc655b06e4f732a0c4cb8b5902d79d534738662b7f484a2ed9d328b7cc8c22ed5f29bdd13c1a655ed39f0d01b91d5d1b57c0b9368caa362792ba43a6fe58d37af166fda6f440539676fda63b1f42cea3e621bdb8e6f2909d06a38a59e9928f1bb8b0014b43eedd178a14cf070822f4db83491a42a2a07da28e728a998c4386a36f4b4b78f3b66a4716e059b636074f26a9b4535d3009ada020cb04adcdf03b798255896338b16331931b3a803c1472435ede2539d15068f6a06faa16d007ae0660105f3f6a0533792889a13c43fe7cd1ad269e188ffc3eb7dda490848239bfaba8720d85cc8189d48e3be227fd95dfb75bf6ef60bb56dc61ab0bd11bd7e82a6290a249ad7aedb9d0a5d4e5f24fde436b863602285c4825f53ffa99763aef3fc2de5c09d3daa37c5a81b42444676c48d39bfb710921a9e3fbe0cebc110c02952f3dd870fad0c61abaa40b90756e86496de4ceaff9e4123d3e561d62484a7e4f4acbf104ca2c1c4158c9f5e19661c89264d084e5e0b1e505fd83a644ae6b61be6ba04ccd79f42045e2c9254c422aa9a95ae632bd0d2f004e6d7406e83f86a37bd59ed571d0c2ff5c27a7fe97cbe922e0632c93bb7f59f3ff2773774038fda7a617aeb3fbb3ed3732f2b3119333ca100b0a43a0be9cc8e22e699f3e5465edf697d7fd209516002feadcd5a2fc5c3120ec1eba7267c25b12e47493425a257574e6815d0a82d75182b8793eb2f5ef11802ed8cc548d3d465cb54b2e393a840fbbce3d52d404706b441bac12eb462048e3da796c31effc64e3ec372edff1ca546fca3446504e05f5ff9116ab6e0d511a768f70dfb4ab612f12a94714baa0d9df0360d4398d2a7f706a6237d11cb8c36ddf06082008fe1518c694ffb291fd17b8fa7aec004c0696b7ebda028f428fb1130b554590d9d3c0ac15d596ff2ed065e0e812b1e6056862207ab2fb6651009c4a724a41c31d060342fa54ea30390596295e7861d52b9eaf4c7c1c4bef5b1f2606696c570068d8a8f9b6395576071bab35d6749d042370a4042c8a1d044c8e9db39fdc475e3294d2f3faa5c8cd6b833f432ad966f044e4a6e76e4ea985caafca2f2f8828919092fb5f4b7ec5021c1835b60a04f746c73018f01c0cf72a8004076f2fbec0e6f5572241b0141684544998b085e931402282895c027eae0819719a14c42984f46712a954343c4739e817460a1d79e06e8653060de7e1eb34b2a05ebb80750e42cc77060635aefd549cbbaefc55820da18ef2a784a7d8d87104517447085b59e8f2b97a9e6deac97d759fd363cfffc4c4c3b63af30e6958dc27bf46c786a7211dc74cb6405d374c24fc02362a283d822cde59dc72dc0a2deb07d7bc702c49459d142adcdf364103b45eff74c682fb47c7cb34a00ec01de18687c48675494ebef1f09a0a05d5597be15be76faffcb321e0d6984e4a449c92078a9b32ded0cc61bc80bf2b3f06f9b3379f438b022960ce4cc570644db11c1b9833a0f054b6311e155c17ecb0ee8cf73d4e8a762a10ec9e98d7057dd4f00d0970cdc8b6f489118fa3b18d98d506179206b1c4c43910fd81e8df00c1a5e38cfe04c0c5128eedab41f33a238693a42dc02ffa7313cbb79919b482c03659001c5aa36ac96482e882e2963bd33ce69dc0f7a5b82daab911ed9585cfc5a1880667adc0a37a090392b760d9077711ee77d06a7c9f9c68089f1477a4996c32c6f6370c57740605725b46c0faf7ca759004fe19a2ba7829b21e413dc609d039235b97fb5bd4bd6634da0b2ce67946d2047920c7c11279ba0c0ab4fddeb12a53bebe7b5f9c9b02ce66c0c7f691fbcb19914479ef3dea2285a6f0c78e8c81816c35b00109b5f4a6c71909a617ea4d73e4d9311257b828c65019db542b31a72986194b233476cf107cea9779788837f06cdaf9cdeec5e8df4e20af6fd8308d2bf848bfa742ed71ea6edad4b4595ce051abde0d456ff3adf51663d7b7bf291c2f25fb4c0def031d59d48eb365314e1c46d60fb326b136b51cecc05770fcd8fd4d2c7de05ad33be61daa48b96740710fcbf264a5b5a9bd4adef533bd32b1b7a9069ba30c0dec693337d0904019acb1e56858112052955dccf36951eb8ddb50b3e1c37d429c2ebeeda10a0f4c08ff73f7c4147ecf325334ad1e7b85bbccabe7f5cfc225f083cb2615af44d5621449c949d7cb15f23665c7f575ec0adf5718b72eb94e91dd3efee019b255ac09f69bc581adfca4c81432ff189e88da22a4393abc531af4d59344b55df8b81fe7e8f165cb584b120353fb96b6dd2f05e39ee71c859260b4047ca143da050541201355723b8a7a799602e3d67c24cc67629a03876dcf59e9b279cc7ed6503898d6a29eb7051936b5ceefe5a3aa95d31cde6814d7dbbce5cc738f6d04611e8326bf297605107be86e47892fc834cdbb7bc6f45306cb1cb4a9d9f8ee173e8b2af810f827f568e0c43d0c31d782b09a971b414e0ff003cabd04a3e05a596dbbf51de01bccc17ab7b14c4cfc10813cacac54c15e0b1835baf04319463e0198dda56e225016530f35f88cd29a2b5d4dd22b76471fa781a4ac92cca161e2b0b4c41573c638119125722195be871dab7db109b5e66e79bca5306b255b58d3589b3e08bdbf48ec6c4cb5f80163ee84eb55fb17aafe437ea8baccc91a40d078a213f2480752097110aaae940e9edcb1a5db2bd4819286160651ada8665381be49419e01be43ba9c26b0b46fa5d3149ca2b9ba01a15b46612f1a61b3a3769dad50f2e8b05d94fb6cf58790ec3dc0238a7ed6bb2988a7f8e56eba7b228db66d4defab147cf254051852c70f7019bf0dd7e3aad7e49e5bd73f7f6b0dda03476126b0403da7d1b1328921362011a9326b022913fa7b054aef78fb95d3f979aae8f1e1198f105b84a3c097cb77a6cf85958eacf940d274284f4681ff0bcd3a37df5e6fead6c252e3a3af01b730b7cfa90fbcc1e0e1d9af39b4824203c0f4e247c9d393d1ad045f7578972d1b2e4bb970b2545d773e46e2dfdebbc0193372cbb35fb3c9799a49e2bbb196c78321ab28b1e29b4e1f3ac263ca0f3854c4f28314d7dc5ae5c3b47e8fdf8ca74313eabe774acd8feb84583216d53c50d7ebc507f0bccbaf713395c6641021c46aa188be18a3a10c81bbd37f273ce93978ad300ed9691ebb52784f7a0208d34c1eaa2a32a56ff863272f7620576d6a3bf593b87344bfb2a36f1526733cb657ddf0d71881035e3d15f722c69cadf7a3c3f690bae474cd619bca8adc4917322db1130ed4ecd0eeb986f2532760ccb0050dc993e88ba425ed35220cbb7de97b7491c511f244aa243301ab24a72d8dfd6de27ddc5bae277b818cecd1066d0929a11ef1527cd9cace1c598a709aa8ee160f062b1cba0e05f2aa0a9fb5496283465d036fa736bb7e162b693733409da5b2245314926a965f4599d", + "8e3197751cfc33c0d47e2f32a53440109bc257e171bcdcc2cd92adc8f63eeaab0a9d8111a752d37998ac37e47b1b73abe52036c418b039ca2d7214b010104dcc31ecda77670e49ce591e8c422a87243e7529d1a214a84720328811bba534b64a4a893169322d03b2bff9fdaa6df1ac474bb7ff285f3652d171a460cdde44706e757ee9b9e5957d3503734df518dfa30792b6d916877c61a96bba4f104b409f6e6c378dd331fdf6ad124b2b83b885838cc8ee3092b6b30e752058e821a66b217ccbf651dfc504450e71ec6586e5f17d68e7114a1caa8da5360a5aeee9de512ef24aedfb9b48ca3d218f2800aa0c2b8e9e7cddc99a7efda35d71f11916be2cffcf12be9dca9644a856fc64cccc93940d2ecca09b2ec74af5279a3b33eed028ca439e2aa7ea02d043aaf3bf6f13511ca11162951fb9a638de1bd4925d430a63a02da095bd1439f121de1c619627edef0d652c08e4240509f99a715c51e30c6a95c08705355a64d79df580e24700283bb31692b1d1d558187d13dbf61174585915f5da61f22792572de06a64be18270608e0f4723612ca55d295d99a12751d85a54c153713d8bd3cdd0ec92f5ac910b8d27124192cb6d61479461fac6b4b6f0bff38a67c131e3a01c2eaeb6e88673a2b7d45ae3275a19e4a127a672cd91e5497a55ae90178d8130862a223a4b20b3ef51dcf658d63d26514a22107a18051f7f70a3aa1bc69cd60de295b3ac351552b909605a48a983f6ebcfaa1bc13f75db0f92ac8ee4af89daf8cedbc64cb880ef0f2b4679935f0d1cc60a60c5024a7c16ad27ca9fc21c889387977ea6b497d7c3d5e5c45d1ece8c19cca96c4193a19b36b829334385dfab2bac6158f47eefbeec3b171069f516d0fe68fbabde4009d09735fede9298d59d70791ce0572a48283a0549165f9937f165b91003dbacbedf6341b97115710021c1c32263d0edff55d10410628ff4cb5ce3b010951cc6b16d2756eb14ade18005944f0787c1d3860b750ee1e90d1d7a7bafab9d45e29260e0f228869fb353bdf071ac6fcdc0b87071b20d131cdc8305c5a91352d9ffb376e86cd72ce5973713f1e0a2d2079b133ca8a27ca6594c4631900da68dc067dac381dc16ab4da1cdb1c494f295cdd83adc791644fc6ea04915cbe120bc4f2c0e0a93d81c9cf1ca9c302497068c854d2b26d2d39b08c80efc43ec29f268a21a1c3afe2582e5741d7e7a1f364f0fc1e6a760caf6dbdea461b273b34a501dcb7e323f5f3467949692e2548dd60781e8c98262592f73e158d58d579d7859173bd25624e18c310ea8b2dcc5eabb1581b59131c877b663e55532cfa079fd08b4ebf4e9227152d69677d6e7152cde685feaff986167d5331fe5f8d2b509abaec8d2a8771e310c5aa188daca39170f42002ad8dcffd74477ce628c5d157e6e2323c3d2e768749a4194d41a9f6a204663b9efdde8b65d9739812513374659c5ba2ecb72b29a874c814e9ac1e71c005fbbe2b9bd73b00918118a8d6cccbaf2facb4cfab078aef373fa61a7aba5bed3e4b902f2ac9e5a41672c0b8aa024eae9a3e0c9b2365e2f5d8f4b94aa80425db5e16a414499f27eb4e8103cc1da41f2f25579246e0c32d8bc09f36f1f0591ff8a7acc32b2b16dc36ae4c8eb35ccd330eb9dba0abd1646b685f90cc6564ebfd51b0541050ea10e920051c2c2d720747a0ecc8c59bfead9ed542ffe1ff84c8755a2174e6292077e1bb452d199c75fc65218701a3d65a5acdd252a83df1c39745789cd35b05b041206b6e7e7b8ca46671aace80601dfbb50a9b88d636b6c8bc8318e3fd1015f6aa06a59982104ed7d08065a7d99c52f5e03ee16e0e58ca717a899fc1d329aab6ef3f5c442cabea9c20e61e7518c637a975bfc55f5957700b16e2ee0abaae3ea3a10198d7cb7cfde8d74588c9416896a477945712ba256d458b7a076f7f5750588afffc44f53ff99f77060c6dadf5cd921661f72050af110bed15d92a9853c5190d1cfa0cfbd5d73209f00b9257f9fdfc960b338642b7007b7b449bc9858391a4e090402f4b26b818f4f0e759aa583fccb0a54f1707cc222071e8b571ad78a68a1e37601ae655666a955bc5385084830ed2bff7d48af88ef15c08a59f163670a6d908dbdc464075134ee28a8b91a82a711b0ec8eed5ae747b023f0323ad5db9c1c8e7cd1436260754363f3910a94e240becec54980cd3ae6cf82f7e0d642f91045f722bc1f62866ccda4069718c2ab6f831b9b17e87ab967f58fb50ad011c541b2ece0971eda5bfa563c9d3be13cbb3c9c00b9e0297159049ab1f798fae5d555f1b76dedee3eb174955aa76b960815a9f9d9039c45e23f0b855d1c936adbc44cf79217332bde34937e523c797355f95e1ed5ca1e7ec55df924a92abd8ea4beed019aee23d4c31dc78870c90371d02f8c499bf94d6ebc8dca987a294c705f455637ca13f486d6bdd2cc4f6c6e41576ac70479f63eb74f10bb0ed3e82e26d92399046c5fa2b77720415b25c0d86ebb435d5faa4a53aa7103d035e050aec235e848c1d30ef28f49bc12badf7e1f1e9928614e373ad0f462991f0f2cfe39b7fb10d44d6abd53c506e7b2e728ae537ea2a126dfdb3466e373fd773deacc438d55b06f78b4abd8aab4ab2b694ef7422c177cc358ee977afef5b5d50717d4856c4839e747cf106cf1af079c33e8d946cd20a240fb94efe18f0ac7b1c9ab8be58e891976b7e7693cfb0592901bb56da2918b55da38a3615207720972a028266398ef451666fabe85d79b154c0e8157057847d93c7cd14d9fd2173b0f6b57fd7aaf2fee3eb98f059c7539557679090b842186357e19fabb891957788e34264ae867a83f5c5a1d79cadca44dee4ed6797611e9731da5a98b5b43f6a48a67431fb5b1f28e5edffe36a188cb696b0861194bb809b0f8687d790d0a5ada98ab06f6c1aeed04bc1beb0dbcceeece2e0ff3dcb54615206ec070cd109dd6eb5b4a84eccab44ab4712429eb91c5bd2b22f04ea140c252db8f65c42fcb09ceebb9e1de961a8d9ce1e536a5e040f9999ebf9bd8b38cb3562fa9b52ce8e27877303d542896526d5638f8fce8b69dc0ad08e9b1edbb404d24ba86bc37297a5dc0608557f9c520007078480adff54f8a6f36cba5441d7261f1985ad48d0d12b9172e1a1bd463d102134527099ce0c919d427dc53478fa6d6276e438cf83abc94414a5f73da8cdd206613833c836edf4a5d2dbbc7689a8c1abb9cdef52944d31a65d61f5d5a780db652e55ca89dca7d67b7e920c08e95d7d0252d008194b5392c948e4c00da29c0ab2d6a8d8e71fafb5c25e006a5c60ca27179312c7254e5eb82a9797b50169b21306cadc75a96b51c76f0685ee77b13d1d05985c1fcb8dcdb131f5292b79e076f101228173700800e8cb992e2fb3f06565ea245320b1abcf4461e40e6d01708758aad1c790f7859c47d85ad07ba8e693a056907ef24c37e7b2ed52ae5a36552043dc4cb67139b5bac5cb42d2641dbaa76d16aa1471305d677eca15b2ab5a0c54ac4686afc42e541c2ca6c82b8f2a0e4ca0b84d70822d3c86c3c8344f11cac9a1d9a846dfdd55d3789fc1b48c4382d02eb6d9c1b56d7ab915e10907383770457c13ac1ed8cb37b382043b00b921dad98b35ae0f62664b612032752a11902b4abb2b57f403a8417d58467eb35566fee7508e4efeba70f10fe8eea45aed2c3ed7d1c4124d491a4a609267bbeef11f79dfd8fa009b0053cf07750264a44771d94fd7f59477ba8cc35e98dd58e3b32564449b5477abdc1626352124323a28db2340a3813fed4291d6e1ce3d247cbed072c92b0c02214673a5332cf8df8f533a1d042e63b087c0c6666082a6688bdaf355c28592e933ca0d22b271e3973f8c3e19a73eb247041f0c4888ce1933e64b9353b8991e8e6dcc4bb680a4cda36eadb8684ed368247c079e3ad3c9eca7bf36af7f45ef899345b8fb087d7b9e0d74169b9fa5a25cb01512479c6deddaceca52e56682cc4cdbe1228de2e2fd4e2d960c39dbeadf0a170dfee63c326b4a1ecad2229c8244920331aca9b2aee0e2f8734f8b33044eaf313adc11332a2c9665d11021ed9807b8cb25fd533f36e9aaa71a725de7b51b60d00f1ef156027d7170d3a3ac9f05d7ff28c985322ec94758a93ae09c916f114bced7fbf18f8a87e1e7e0d38a45609c78c3c7f4215de6319be36f4900c2a6a333b680be8997b2e5ebef0dc61c45085ac0e7194070f17d1982ae77ea146fca09f02f4fe51ebc3dee456bac5103a7e9d92c6c3c33fa401e64fd35e4ec598c61a9a3a509383cc8bf206ff3686e16a62e603ced7512249b8d0bdbfc8c8e17610e04313ef99787bb305d7eafaf61c3f4bbd655fece58867d68a49aa0569e1d4c267cf30af3096b9c6974a1e14b88ea41d390540c7b9dbf5f796d23d4fa78493eab7f2d8f9004f7ffdea1545a49e54802468d30bce39995d712645aeddbecbb0cfebff195ab658fe05c04a31c6254858af5d8e57f4098e638f1faf3361d851bc7d19e72d8347c3fd27a16fcb329bbf9130af7120e6b8551fb82466f6a75562c50199017ca29fab28b0a38c1a3787a1b66d5edc9d7937ddc8205a210b5a339170bba3fd387e776fbe0f0dc1f05a339c0ffc8ea6f5ec60a7b8d51154103939fbb09496c79e6a62acfa592654be3067ce0fb5faf4499a7bfbe01f0aada0c03f8bb84de45f09e5a4b54bc6edc14588b705688fef1d0188c8726e69ce8c6cf22b576e96810c586601feed56c7926f4fab1cf71802fd25f8ec4ec5b27a5e163ea7a9562efcdb31cf49d310e073287941335babe8d8b1df469e47ae1dd068fa820453db30c3cfc4f6d5857235bb0951ab5e2efacadaa5381184d0a03eaf9be1bb86f8c7a15f078f0be01ac7adb3b1c455e76d1dd3767592ea6cb12986c48aaa4c20a00c8d11bfa44606f5d8475cc6dab844940f88831955d3686e3d0a659abe6482d560aa2c721525e66baa84ebe53aece8e36252b8d2458b955f55eb3706047683130aee910ff235fe48d2e44c868afaa3fc4641948d5dfbecf3ad74f7acc4457207f7e292ff1355af9fa109c498e2613f13071b229a4ebdc69caf29872b6c98cbd17b60fc797214bad78c987451e46418735bed33551e997e6bc8093941ae3d4a6d6a01c786f689e121e02827fc0303852bdf72f44330ca69ce6cc498cdb68823de53768741dea09be1bd98cceeb7f89cf473ccef1f3e672d32188cc599f37ce5255edc6148e7e2e3428d74f112916709609911f6b7f3569c50b9ae727f3365e1f14238184e9c67d2149c2ac408c6f7d7eae8b3fa763706dbaf0271402d92c639810f59698dc9117ad42e1c19701c1d32f069875838b2d83e5a8c8a064ec82dcd1ed3526e01bc511c41fc09d53856dab28f60107769eb259658d84c50e6739edef6f4df380a74c17db01dd0ac1f5465b3eefcd046a1e52bb54c98e52a22af4497c5b59d667b54d7f11969a547555d573df24946d51887f45fce145982b4f2632007f25f280dd87aec910932fba1f742218895412136ef7041f3d00e88efd80260597434a0fef735d07a3f57939821f13dec8de69fc4bb98f5ea8317ff7f89bf7af215c7875142e6c894c596a24acbb703fd5a4705d37ead919326ad55d19775b5765a7cd60314cb453a96bd8c64f51f19f9144f3f88072260d1a27d758fa670d63cca7b5d1ac750b591f0227fbc250f139e663f42b0e8318ee709f3e2e04015ed16918c57bf108f7a8fa0901c99161734db72e530c4e2f41860b0fd703913b4e1993", + "a0fe32e26c2b93fd195aada3b88ae1bb5f40ec7e07bd6bfe95fa1e3cb060a3dab1ca52d87fc955956a25543af410888972e7984eaf94e80faa1b254569c95b0d52badeefd14e4cc14c42ae12adaac72c9eea48cff90ec96d85b37e0225ff9bc82cfea6499ec29d56a61bec24284e885e0021163b14649a050de5a90b5b941aa0ec0891e7d7052d045ef1ca93c47921019b3140b075eb6d99ff5c327f964b5ccb4d3fd4e9985606fa1f2850d1fa5fb1e902049c015d13b128f322fa47ba2552fdc2cabddcc3161b34ae0541945429d7607627b45bd7a808997dc1d5fff59ff3962a300da1dd37296d1cb39425e5fabae502da8d740bdea15101e63b97d896229910241dc438b0937b66a0df0730a966a00df510a54ddf1fbec550093591f891b2cb17934f0380094e096d0448c91bc7d28a5719ec9a8a2f6df5b593a15597a7fc6989eacbb343c928d7fc5e9051299b02b42db3cf3723e92250bb84fda24f61bd5a86e2696f5aa07dd1108fd5862ea54ea307f5a54e7a192f9ed2b214ef65924eed31e07dc3b7ba9a4195b53d446104060f29b26acbd1e36ffae1c0f96d2310ecc1d9ca125f3dc682678a47993bedb9cd91133740d17eca07bc0eb3d8ba18a3eb52f3d6779298045766f33f813212e766f76e48a4b0416b5ee646969659b490da413df61fc3d961b87793676a877123ae7038b3d10fda9fdb2a990097262004b63ae4d992270d53ceb9572f87655f0dc91b78bb4a8ba6047a16ec25fab31c06ac7a2dca432d4b7ae82b1acfa3ee0910af0f7717ea57f98d3330bbbfd0ce475815e85340be8f3d1d713b0d7c437cd5a04c5e511c6d55314d61274e8354c37b8c54b3cc613e9bc97ce393fb2f55873105ba127fca0716bdd399905948fe42b76e7ce9a3f6e91abeb51c346952241edd6edb9c6873f8ed5ac470ec6f69e75d42b88a643b9e10c7515b93cd66cf65a636f5f6157001c4082d53c5876ace30248dd982f035e6c4122a7a5d9d299c7774e55449af162b7a7a33394742817ffd6c4b5aad1e62c7319c1e6724d6fd0c8c2cecbacd2a7eefe17c1cb0b87945f3a19a3cda8cad0935fe7cf6211bd71b54463ce9e5a9616a5ec60bc5c85060ec0a6e63d0c5750d2bd36f6042db66accf596724bbff5d200e3286ca26b744aaad6288cde5540c8d2e99e6b682d19baf0bd70582c572d0271f259b6260ceb5bb831207992c5b20c8bd37067e48062c309236bc08cae43ccb0fe28dd0e1d05a910c5bdf7e255e056b06cf36d9e384e76c8cc42827083a300be06d63e2f17dc39415597fa647c502fe45cdecea40cdf6a5a133ebc8beb2303bd6a628f6c796d71ba2a5aaa4f0105\nresult = valid\nsalt = 90983ed74912c6173d0f7cf8164b525361b89bda04d085341a057bde9083b5af\nsize = 8160\n\n# tcId = 94\n# invalid output size\nikm = 2b1017f28a19841832f576bfb3108db78a1e6f2009d49d25aade75d403ded34f\ninfo = e4978d1c18687176\nokm = \nresult = invalid\nsalt = 41535a35ec11384df15a0a24a65f067591b446ac4514f7d981724db4900a6106\nsize = 8161\nflags = SizeTooLarge\n\n# tcId = 95\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 2d0d642aea95ee9892fb87ac392b06aeaead1735c3468fff85c4d65fa62d4a06\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 96\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 2d0d642aea95ee9892fb87ac392b06aeaead1735c3468fff85c4d65fa62d4a06\nresult = valid\nsalt = 0000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 97\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 99dfa94cc0a5e1c313ffc5b3e664149bfe9c85afa7f4d8cff61b7b4fe4b9515a\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 98\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 99dfa94cc0a5e1c313ffc5b3e664149bfe9c85afa7f4d8cff61b7b4fe4b9515a\nresult = valid\nsalt = 4031634ed8a9a6152058b921eee93908e7277f79263e73976967278317c2b885\nsize = 32\n\n# tcId = 99\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 100\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 101\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 102\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 103\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 104\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 105\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 64f72009dd00e4ca7a63f4b9f92dddf6dd074b5cb3e0fa753d47748dc42f0824\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n", }; -static const size_t kLen77 = 32019; +static const size_t kLen110 = 104065; -static const char *kData77[] = { - "# Imported from Wycheproof's rsa_pss_2048_sha1_mgf1_20_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.4.12\n\n[e = 10001]\n[keyAsn = 3082010a0282010100af3897c38ca932c661de8cd18315dcbd8582e98f9f9a21d8cd822d4d1bf1ff1d1bb98dc0ac25c4c268d82ec61dbf32dac496eab4622be114a9309634cc85c16036088026da96abd350152e549552500d6ab9341f6b695c0d4d160f6d50fe97519b44cd74edd65bce876db5da9adeb87a7cba1c5c02f0d0fba690b4ca855024dceee68d04f48679d5c63ec87fd65e1e42604d32f0453db7e83a1bf4dbb8230308bf7c0e36013d555429c6650d7bf576b37b25f420798b22842340e370702fd1cc0fce98a407fff326017dd985f8c64bb6686aa274b664ca44e40de1cbbbf79ad760693c256f820d0dbdfcaaa440b0e69899b7b9bb2911082ba957c4b188e6d6db0203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100af3897c38ca932c661de8cd18315dcbd8582e98f9f9a21d8cd822d4d1bf1ff1d1bb98dc0ac25c4c268d82ec61dbf32dac496eab4622be114a9309634cc85c16036088026da96abd350152e549552500d6ab9341f6b695c0d4d160f6d50fe97519b44cd74edd65bce876db5da9adeb87a7cba1c5c02f0d0fba690b4ca855024dceee68d04f48679d5c63ec87fd65e1e42604d32f0453db7e83a1bf4dbb8230308bf7c0e36013d555429c6650d7bf576b37b25f420798b22842340e370702fd1cc0fce98a407fff326017dd985f8c64bb6686aa274b664ca44e40de1cbbbf79ad760693c256f820d0dbdfcaaa440b0e69899b7b9bb2911082ba957c4b188e6d6db0203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0af3897c38ca932c661de8cd18315dcbd8582e98f9f9a21d8cd822d4d1bf1ff1d1bb98dc0ac25c4c268d82ec61dbf32dac496eab4622be114a9309634cc85c16036088026da96abd350152e549552500d6ab9341f6b695c0d4d160f6d50fe97519b44cd74edd65bce876db5da9adeb87a7cba1c5c02f0d0fba690b4ca855024dceee68d04f48679d5c63ec87fd65e1e42604d32f0453db7e83a1bf4dbb8230308bf7c0e36013d555429c6650d7bf576b37b25f420798b22842340e370702fd1cc0fce98a407fff326017dd985f8c64bb6686aa274b664ca44e40de1cbbbf79ad760693c256f820d0dbdfcaaa440b0e69899b7b9bb2911082ba957c4b188e6d6db]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = \nresult = acceptable\nsig = 50dfd875f0a46683f4783667b72993151e6a69e2954538d806fc362725ac6c05d7cb2b99b28b8e2b1c911402bae45fab0270b0eba744e97c00eed757e57fc0ea839421587b3011237adc3373963dfd3d31f5d254a6d6c206f1eb360e9b0ad3675250a4b0cc09f6e63e1bb578a440b2a2a83296056949f61b81a5381e7d05f24f593c471b43d0b408b090af63893bbc535ccf9e1a6c6c96186e59e5428999e2df768ee7ccd4a7ace1feae6b0794d44688ce59c3c5086e5dffdb572abbb4929db6ce219257421aec6f94fdcd2f519dee15d3a0757e366a3942d606937701f5d7e4a1ed9b903739e7c73d98bac19075f050b782225824ce3e28a3175384dab91935\n# The key for this test vector uses a weak hash function.\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 3b32d1225fc5702a3b4fc4bd29a0cb84e0ad17f8b9879d5d8c870f12ad5a77e45995bfc79f6f73078aa76dacfc2160bd322f5a6854604da364b44d267fe13a9016ab408436d5fb2dddeee07bf0d936b7415f565e0b0d9a0cecbb2a62677a3059d07ffa9a191ec7dd5b26914aa15084c10b3ee4c30444f5777901f15f693077876f3691845f32e94a5ad991f6135a7d139281fbf01ca27a889e93d07a79e48c2cbc02847a4ba685ad4b84e1459fbfc848dd203d04361df1441b3184414704ccfad2e7f5b2dd863cdb1ae52989e82148a1c6bfb605bbd0f38fb7755c7381e6392746477d96304444a1003307f7b21faebb44333d88435b3ae0248729d17cf83e81\n# The key for this test vector uses a weak hash function.\n\n# tcId = 3\nmsg = 54657374\nresult = acceptable\nsig = 719d263205cdbc0d8a9af580628386f68501f29f4026dad9116f149fc285870ac06f570a3632abd20a01d76f617b0001e88ad7606f0a48bb49a8ab1331ce61439ed35c7e45df9c22e54f499309dc2bde89ee9edc8dbbf9b25b60b021f25ae11166a9fda31a0f3a84efc891fe436e3b22e3e0a6c0f2dde3868179abf673848a53ee235671eb401e3b79faf94ce508a7ca3431c2ade11b7fa629ed893881ac731d6d673e5ef4d5ef7f1c12145c9d060fdbdb49fd43db4fdeddaf526cda93dd1a45636168e1b9115ba41e17adcdd95e6a1b7525452244ab6f46cfa01bfa787fab605b82c43a2f65d2e0b066b34b5684369d3ceab10c37a73d3c979be2ac996ea036\n# The key for this test vector uses a weak hash function.\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 1ad9d6447423c4436a96c17407f8ffbcb8a41ab5421fe319222899e9091fd219690a97f801113d33e13fb5920335646616a35ce4996d63504a2c0dbf7172533b06738706ce20484698cfbd24eade67ed91e6b985ac2df1f17c4598125b2439286c9c01fd10901058b7318f8cc49aadab349560d473c30c3389905311d78288f900cab33b5db060694489a018c2552e588f32832820703e3838b44519ee9430eafd65076e5c8195acbb85ea1e4502810ac13ed72614db0c4bf94ad83dc95ca2bd47688021a56429c4b74b1acd82f242aca266f8a02defdae8b47e12d790c6a7c157d2bf530d50134b1e7c8446bd13884f3de0d44fdca612cd3d4260b6570ad0d8\n# The key for this test vector uses a weak hash function.\n\n# tcId = 5\nmsg = 4d657373616765\nresult = acceptable\nsig = 19f7396f4f538b1dcb82f556ba9b4817aed67eb97229587db7ea1d70f5fffb2af67f4bdf31915ac5c528648fdafa19c21e41d868a78709ec3a1f1f9a4d992c8e5dc98ee7668e66812bac88d39721e6bd6262679652357be5a5d54569ec74a0ab4e9c52244a927b1472d97368854c1dd1bc253d7618d5a94d1e64dc1630461c1c506a5323583e75fcd32b2e30efcff352250580dc8b780dfe1abd5e2ce4b2c58b17f9a95b177e4302e99815aa1de7e84050323cda3fd9fa0e22f5ece22278f075fbe3a09874a464795cb72080a3ba4d5a94c2aef5733fa3b11a9a0172e761aed2eb7e364c885c6fb66c54996d92a98ecf837ae2c3e55354f56def5d71c09a7698\n# The key for this test vector uses a weak hash function.\n\n# tcId = 6\nmsg = 61\nresult = acceptable\nsig = 640c44887275af542fb28ea33a7cc1c05188481d69c8a46d05a3651abb658d7ebe5c5d955c0b27ecbc2cbc05d131910b563e56409d2d0ffd09380a880c58324bb77d4d91c64d94d4f50751a046e1f2a617c20bc34c18636389c89fae170370da1c83c3926431ed164d0518c1fb8646aa7ea43c20695fb9bb1a34adfa2a78bcd97829d87b0a87c9d8e510d25a51ec1969c3ee0b8a22aad0394a36f0a98af973f7fac61e4f9d5c6c0c9b6e703c33e28b39e28d9a65e4f451d3d5ff6ea369f65a38d93bd91b30459f4fd1ef5445dd6ac45715274d3ed28278424324a52fc1be917e4ead14a94fc2baa3e5101fc37f8f1beb2f9601e44c0789c325ad2189c9d4a2d2\n# The key for this test vector uses a weak hash function.\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = ad5150442d1b552326200ff1fe9bc797e4be9e3146b92b269a0b2acfb18e7ba326319c7752ea7e6392854a5070f3cf09e0ec54227b16526bc13dc8df4a7ccde94c7237c4d49de949c2c407679f8aa49be386e09f0e35e6a3fece34273a7e88b91a658d3e002a939b16637ee152398ba912284f2d3726354616c155cde76df1fd421936ce213df0a4f84baa01b111479e1c4593cec97a609e2fd54d0350d7f08b2a9dc094c6bde3907583da25f3d6abcc404d2a321282d3a17379137e5ad04e544efdcc62af54a544ae1c17467d99a68cd8e20daa5fb4f906e7528e306688ba58e80d41f2b0c6a1801780cb6b6c36e5be80d1da4e0af005e217d57c3fc26345da\n# The key for this test vector uses a weak hash function.\n\n# tcId = 8\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 4f732634b50d2ebaa205b8ea73349ffb95cc494b4c8f722de0569c33c2ed4a977095e03e87abe532f48e811d86c8185042cc0dae7cbc59cba0f0aff6dfcdbabfa3dbb2e18e0033cba1cb2661d289c15aacf45469bd5772de4bf378fa4cf4adc7dece05436781c4ff1085dee1ede3f3979d553af3c68f42919ddfd151710644c80c8d1da6cf4cb51f9149efe4e7921ee2f192f057dc6690f6db54a1affd0ecd0d8c205818bac599856fa7729ad63332c1aac2a0148102f549b11b8f33afa638710abae7ab052ba118af38fa87c7f6b7b6f722b513c9c202ba47d3c7a7d0228b535e5f583ed19a014e2e81e4495dede1b72650a4eda669a0e76e78a40b46020c74\n# The key for this test vector uses a weak hash function.\n\n# tcId = 9\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 52c4c54d30d822b6c7d1741395f95dc303f068680efd2bbbb864c0cce58737f3ab12f5a086603b6806812e3ce39330fde071a6c113a7f9f64c9bff494832f0bff229a0d40e4b67a6e505dbf942af6eeb700b4e6b6e0936ee30fa1a25710cabfc75348a30c951b84f975789e0fc78e9298af5f3f2cfbe9cae763e127720c8451647d3e9c39efc19761c3d7a0c880ca7f84d0737f59ac0e12a32863a34888518f95edaa1cc057e1bb6137d497807b878c91536e09a0a4514cad144822bd7d10c61d11a8810b9d5b81b2127bf626540a5b1af5eabb3db40bdcb528c6bb115ffe61d107d3d593ef2edb375ebf25a91d17ccb63f1f9be27127dc0d00c58e8f6b5f3bb\n# The key for this test vector uses a weak hash function.\n\n# tcId = 10\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 5b7524c140e80b5fbded9106c9d731233aceaadf71580e5b5632f62c298c670fcb0872b1ff9034a27be61539484d477a3b56e1557b7e6f851ec0aa74e4b6df7b8e0d36771cccdc06c8a1a076a803cd31b1abd1c8037be9fa4320a339a28d731d2824070d7fc816691a6faf233c83e66c598943d41191912edcb298fbd35164c1d5d4e35483f477665a5c0a4d518e77ef60b09bb4281c47a25c20a1a91f6a1749ad0a94145b3c47113ed08e3ba5e938a751e1d1b282cbd48ae980ae02a41604b2f5ed10", - "fdb6f1ab3427cbdaa9467caab56da29a2290b92e6be75f242fe97b96e55545cb18216bd5b654cd014107b2448ac33a833682bb4f79401be44498655687\n# The key for this test vector uses a weak hash function.\n\n# tcId = 11\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 0a1a47c81b13e02edac4ee16a40e84e1b400285feef1224dd787516cdaf9c81431eb3523226d95856f83c0e58f804ad9c0765f5173dce0268a6dd73d65981a678bcfaf867bcd880bab60b779e032ea7ffa1c4755fa2cc0b67f1714e1db97603b47285e4d43b0e4c1c349d338f904968a8ae6a86683e840c3018186b4dc2d7ea58213120d1dc724a3fe72c980e148fc9892ad4ffcf8336d2f0d99963edc2ec7f3bc5382db750c3c6ea34d9a2c78baa9dadb98cf30361a91aaa01a12dba123745796e13eaa3e200c725a999cd84063f14657ab51ce76f7743333dfb4b74af77e8bd32092776b892430beeace6bd3c2f59a364b9820d31bb3adeca568491fcac10a\n# The key for this test vector uses a weak hash function.\n\n# tcId = 12\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 2b69fdadae6e8854e0e4aa6df667d4cb4e278388a25b4c37f90d45d425bf4f9efdf078cc2e7888c1ff71c2a593a8982c19a6c5b2a9b54703bb007c43226a2d51c35d011a981dd6bf3f5c7c68520468d42417b4f11f62e7bb35c4520bd7d02b74cef0492ee32caabcc35b42166af3a7fd3cc8dac12474a7c71b87f8f018d7631f6452bc7ddb35ceafa5964b010ed1595ac53098557dec598a0c7e861160949e1e5e43ce126add866eaa035b76d1b10724994703178faa228aa0c3ca90f1602dc90a53e8b1493b44192b4488068b802c3ce91c2696c336e1b789e9cf4f1e153cc0eedc8c7f23c580d842078199a263e26bb6ebe469612694e8c6121d97edc64918\n# The key for this test vector uses a weak hash function.\n\n# tcId = 13\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 63384fa945e41c0e4343f43ee12c115cd021737b7cab9c778cc451d180359c9f39a1c457ce5308d029a508c19ca61fe3434bddf28e836726e6e6d4d635cc3d265c8918b4bd921971fcc7fe8857ca330d01cca47d0dbea91ffa7bc813240cd9a81f799f961d00adb060f599836987f5ae194e22262d27f216dd48497205fbafc4274e97f427ec99ab29c6090a62ae6edc777a0494d7e9812dcaeaa51c436d924a38d8c731f4a82243f0fb132fd9f77403f9f0c7f5569608b530b61a69ee8e0c9f32da8d5bcdb0e8370e964a952250b3fece411cbe28d39ce7eabd54f23110f97fbbdb902966524493fd47833addea2baf31979ef65e9ea5f087f7cc898c463503\n# The key for this test vector uses a weak hash function.\n\n# tcId = 14\n# s_len changed to 32\nmsg = 313233343030\nresult = invalid\nsig = 6249a0d0651ea272e9308178eeac74e98e48822bcfa21a2663689e1cca6735d5d298be1d1aa3bf70754a91d87342b78b385cbed55fa761d6ce58ed81411770cd7f4d0d1ac96b2966caade37db00e27c74b497cbbd76f9fa13c08596880a3357cbf05e42f826cef564e707e378af170f9ac892e081930b20183925d6f4a8e934829784472c49c9f384fb631310b376282476130750ef3de53fbf564f2d2cf3161485ffbfd0b96d98b47d4df23dc35974bb853544389fc6ff6eade53d9f4f14f0ace492eaf59dce778bb4398478a531a5ea9fc3f230e0bb973eb173a197d840d1eb080632cb7f4f0193e82a1c9571127616609f55e9f258b42890189a70adee22e\n# The key for this test vector uses a weak hash function.\n\n# tcId = 15\n# salt is all 0\nmsg = 313233343030\nresult = acceptable\nsig = 0580894932c20ad27584f68b560d97e095cacdf2b69286eca83396ef0a9ab5d89263ca8e90f6c7fa59736d0d99ce437f6409f56a07b6ccf228965f556f6ae9f1e505a512bda0420e177535582204fdd933d510dc3ed9cbfd80ae37d1bc1c621f06d32162e0509f2c5e139953796cf306216106ab4379030a26d87b9c761bc9b35d26e296446eae2c5df7a54ce98a155292a7bab987c7eba884b0638e659d57b85ee9093401ec11514e67bd0106fd59542470ab328bdbead97efcccf9d0f85bc6ec1879a2420c5ebf6aa53afe3f62b8197ae16593ef4049c0e8d76b2990beebccb407822701fef5e8b5210982a9f392192491113a7e2e69bae2b1779554d97435\n# The key for this test vector uses a weak hash function.\n\n# tcId = 16\n# salt is all 1\nmsg = 313233343030\nresult = acceptable\nsig = 8f183006f11363b35cb506412c27a1b2b12e0da08ae92233b0248d8ef6c4981ed0993a447e6a5e2336eb33fd8145e8b1465f5ce3cc157bdabca33a2aadda31223ce2f0e8c4ef20546d98476f889064d8e95043ad7923bc2e97498580085fc84a36bd14e3fd056d859a677c3fb01868f8a2bd27d08bc52056d060b25c9b5361871e693cd084918fde00f2d6794a3975c92436dca1d07f20f321c0e5d0a52499be6c1ea7be2ebfdfb7982bb51e72a4306ec1ed7484fda2cdc3d38655d92bded1541387d90ceae0ee0e14837ca61c3acad3b3b06b45b84819fbd4df0502eef53139ebf96c804d780396b397eab38f2ca25ccad4cfc8bc4cebe70386d7432e876ec0\n# The key for this test vector uses a weak hash function.\n\n# tcId = 17\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 6dc8af93242468b652f14c470730651d6b2de224c15701f025ff056a7b0d72b383fe944e0e4537ab47ce5818e13787e652c373b614543da38a2708b6a522e4c3ffb5790a16d2aeb1aa69610a7dd858ac9bf415ff7c277cf6c9cfecff85df6bbd400f000bde74206068a658f27ccac13055c50911af77d1647c582d5ee140c971701f15c5520e355d32704e383fbf8c4fa571c26a55c6c49ebf4b3f6bc26ef939b575ebeefd4cad99afcab0a9ecc8551e428b9858bd5f6f8d497fc75121d0bcb651bd739d93223197b9306fa6842f695fe651e9b143023b962eb166d21384bebcbb99bc9af257b0f8997da90410646f7783ac65741171e7c94a10c3aee10c1a25\n# The key for this test vector uses a weak hash function.\n\n# tcId = 18\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 89c0510bdadd44bebee7eb52cef303a1b751539ca4ad31752a9dcf3af755844eb1b47d1879a4da10ff766d47df1871fcf6fcba06e101134c304e87f1d8d255f5363bb123d56c9d2bb5c3056aa5561cfa772a1f9265f714fa0a5118356699b57efdb2c2c553af1ff41026bd8c01512dc760ce0d62a88d868d46914f6ac3793be6aa65e0059e61babff5a8e58c3bd459533013ca0bb19e63018c926c11e4f910b18263fe58b259f1e6f517f0241d4787cc2da771039ef73db3ab3bc364f65a672561c533205740e0c5a0ff754aa90683d3a8637781d3d4438acb8f917d946543f9054a2d032723e0106c56c278ebf63f66dec7eb6022a5afa352bbd8c19248e6e4\n# The key for this test vector uses a weak hash function.\n\n# tcId = 19\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 5e0670e048659ad9e3b9ceb3a07cc4a549ad80fab3f76b532dd077c2e841383a781ca0bcb4de50dd0f737f923fe03062c2d33a9ae9f4ce827cb993369088c8cf6dc3e1765d09d836ed63c3f6a949d2726f429841c6b945adbb8d10d5d7d3f0570d30a813a32c20633f03a6cac4850f5aac776c7e573902af39daebddb205efdbb057662116c41fcf9f46d1d0ab536e300dd9c56fb7dc702fc0385e25149c64cfbb5fe663660feeebbfa009bd40a9d011203a2b216f449c5b949805abfb766a3c2a1d8dc8fd37c1ab4f228c0719f72e223c3d4937fc871f6972268313fba32788f79d20df3ce6e0a540f061711059a7a259f5c38e0389a77e61f13b094f1c4010\n# The key for this test vector uses a weak hash function.\n\n# tcId = 20\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 5694842681c2892a52cd903b55004859553dd7b42f85ef93492c74278aa4ded900a13245b4e3fbae340bee5880e2be0ead44c5ac0d529063d9a22145ddd9652259b0a134213a56b7947c66e525e136dc86d1ead3e2d057018085b5cf03a2621683d59e60cf7712515343681f857821548dd55092644219015b2e39ba4efcf3ac8794f942e1e7f9285dbd7b24eabe422a23e1c9e61bb42f3c204f572ffda99ba97c90cb0db3936c262177e1562fb333f9cc1b859f55c9f3645e14086804ee965184a436ca13fe458ad74818b554ac834ebcffa4d54cde2a82233da5aa9ab0de031960e1cf48fb00aa89949f8cbb9e149914aa401ad948b32f90f93505706a8cf3\n# The key for this test vector uses a weak hash function.\n\n# tcId = 21\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 012739d50132db2da632e03fe9126b3b3044f3c71aace80cfbda5c58c22083d0be128a972a6dfdece0445e19161713f33bff4a49ca808c5d0ef2e79de010f3e28eeb00233e2ecf35cc7766b1c130912557beae44717524da4ba553eb2d4ecf06a331c9a82ab6182b02c7143dc9ad1bb33075d234a6c40c6551c864811bb1a4cc8171c6d814d79bda4647f2f11df515132f605b38f080ed400a976f36fb81e58ddd1e01b7de4f96a952e7fb13b2169f70ee679f07b99abca564efebb234a0d66c24bcd7710f89839c93ee6868341327a14960c0e385cb786888e8d462668f0d5f1db94c69a3b4f271e4e7cb64117a0004c87df15ca9fca63f19a0f49a9b61da63\n# The key for this test vector uses a weak hash function.\n\n# tcId = 22\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 9e98e3431040f3f939def28cf782ba23cdb0a92ceafddd4c6469351c639780a195140eac331416d00a2f846582433b5141a3021459a2eafc229448b178c376c0f6ad8dc7dc1a0cd048def48eace50e8f77a0345cd3666d20389fdeafa3d4474d50a41b7bc6db000b128174c82df7cff6bd17335dfd3f6d954e065ada694ed33c291b82191a1a90cbff58dcfed4f0fdc720369f74a9b218d85eb14c0450e1523b688f5ea1e5ec9ff10d39a42f58902f6639d0f8e760d8f6067a57921515b2edd8338cefe09171decc00a50ae806a47a7d35dda7376aa962d63b0189a63642d33dbf9153a03c1e496c01b9ef74d6871e1d63bb61719b3ef5d40f4dfc15264a07d8\n# The key for this test vector uses a weak hash function.\n\n# tcId = 23\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 76533757a9a6f4efaf59b8e4fa38c50cc7ac5f9bbaa7f45583ef79dcfd50afe07390f572", - "c5880c27badc4ba3130494aa396540b8fa3d15d1d510d0d0ad7a07d3b44fa989957d6e50ad3921449aa6adea1af2879cfba9f8f045f5c3457fdfc53525c00de55ca0069e239b737e0c02b497c5f2f33f66c9fad5599ae3168bbb1b0dbf40f4d941ad26a9483488d06276b167d089d242cc423b785a4c34568817af7747782db559a32610cbdb368511b7ccb5be09c0ba5a21f677405c73a43088b193d445eb54416d282fab82453ffbeb68e3a1e5eb33a705db4d8be0149817a255c40a53040c05395abfe2c56fae34b8e2ba083955dce77bb7cb5e5905d0ad9bff6d\n# The key for this test vector uses a weak hash function.\n\n# tcId = 24\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 80fdee23937b15c70116b060340bc7a430914506880dd3f71b5fda9f24964a9ba69454e7929c529327a7bb648c2789d3b4d5d2ca465c74b7659cf445e57a8e7d11e614e34b2f9917139352c0f322428d7c1dda1fa11750a7eb9e7558a6152114f148a90a14250adcdc8918dd0c748b71ade03126ff13a8a191c024291bbb1ef80e5e559a27d6d204247e241864ecff580c56b3345a803967aa0952b59a5401780299cde2cf1b783bdc3f8bff9ccfdf283896ecfdc995ecdb54e394add4fbf16c0904a5f581b4061bf00b2ceda8f7acffc463323584ef69a194f2ddc2c2ac6002bb5647643eba036f4ccf30472387c99b6e199a3a04caea8135ec82654a2cbe3e\n# The key for this test vector uses a weak hash function.\n\n# tcId = 25\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 2fd19f1af2e56de93cd223e96318b336fc587fe333ec6b81b0b4304d85af72cd56dbce64d9d75f023c39e7d82307ea6504c81bb28119df545e1ac8b73453a87a6c1fff0619c537c6c1f98694b35afedf37540a70f4665c1fc8ee0cce2e29e68c821ff558433845ae46118179cb24ed247419bdc48c13b927e9d4a6da9e445dfb0a1d0d3f599ff1927956fbf04cee1f6e004490198edb6b9cc440ae786f74ddf257474ef3a5f273d87ad361434117ea0172e7cf4a8fa3f0768eb4c26cda4f8d0bc7ce90b2ad39b588897f85513d22ad0af86ddc0a2664ba2dab0b0832160010d743ac0a5ac69b00a68a148ba6c4ac36496addbeb188b58bab9e9b06a2f5e30ed9\n# The key for this test vector uses a weak hash function.\n\n# tcId = 26\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 004524fd468f6b32c1e39aa51df5052e174d02851aa433871dc4c9f72b6fc5dd776a7e68f57d180f049d6f90c4c6d5aa21d0749d2232bc2e257dbeae0640b985706eb285b700f6480a29fbf42152f5505b91a73ec8cc80e17b5236dfedd15280e6de907080b339b116f644ddeed18361851ff25f0b6c174e49e0b33962086cf19bc4423f6ddca67c52ec62b8b664504b6a5d97c6d68e80ac522a98008b3d4deef1f0147f3574f4acadb8e3687b410c2f4e52cbe85163a26356dcae935581fd75434da19e1022bc7865ebb1c15c93968fa357e7029b328ba7e59ee6429d4858bc9acf78fbb68508d653c73b97da4bcacb1088ce88c651a7d90c7951b920a2ee80\n# The key for this test vector uses a weak hash function.\n\n# tcId = 27\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = aa33236940904a0c0c88e3f7b9744343c4577854cc017e8ab0aa08694393bf1166a55b56f6589fed56bb4bf4c87151407363c36a9530d200a92eb7a04f2451245b105d1d44260ae10385edb5edc6e118e7b27f4270fa2988b1dbca3fd21e1d3ae6d62f24bb4af5138eaef53c598fabf108ee78a6a986c14e5c472f71b24aa67a48c5986ac3962a6eeb9f35d0f09d22f0f9a665cf80e08a19e9cd7bed243af7edef90e5a025fc2b8b0b3ea49940836e9971d3558defb2a08ea6b7c40a4c3db6fc4a7aa4891297f9c9dc92d16b2e6cfb7f558603fd17ce5bada483688b344278e27d05c5bcc1d2f44f91cf24bcd50b53289c744ca67b909ea04fe1a1bb4f680b41\n# The key for this test vector uses a weak hash function.\n\n# tcId = 28\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 7fd4d853d91dac3e29a1d24df4586aae452aeb7d997ed8a039490c2257a259c2fd4e868320a5391d5cdfe13905ab7fb248d722a6932ea15750d8a26b810d10d5c494639b88265d385516acbcf6dbce502b834999387635690b65b65ba1053a42f909b05d590498bfc9962db35f14a1ffa10cecaef5dbcb6ce73b783ac4ec4119cc22f976f3e91be86d67b0a1a45f3b8b757f893bca0f717e9dc4184aac01296e18ce1a1dc643a37635d2ea0618793b1624c0c0da74a46e422df25c56a6610e02a723bf80f147f10939eed5ac347779dbdcdc4b994cb4cd3388283cb6a04e4837d903f75ea7d08a43d334be80b3c05a6b0806502eaf4aecad28abb86c790cc4b7\n# The key for this test vector uses a weak hash function.\n\n# tcId = 29\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 952e142d407387b8bf807790bbb1c8bbf73f86cf8efb897157d5f15ec6579ff2478216eae543b9e81fa45a015070d31f5e8087a987df01e66c332cc0626c984032b3368621b53157a7531d491e70b756a2112a4644486ea74eed5536aa63e5b992317fe1a68cf1f37109aa4709b6347da34c4f846a82b25d51837df3bdb59a41e6edccd92e25f4885d58a164b23e11dbb9ecf3981917ae8682f7ca8606d770114527f34799686bfd3b6e000df2e719fa88d6272bb308403cbd3b216133b60ed74448b04909dc24e2bd3005673667157fa336f3934da3b9991f5584641e67b8dacae279d6e92bd564364719f8a79415c59e1150281ceccc23a312f39c783f0c4f\n# The key for this test vector uses a weak hash function.\n\n# tcId = 30\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 3cc78a8aa312cb60d3452c235d8a530b3f32c376eccf1c981f87658ccf492989aa059aed5a18971182d1a083015c2616b6f5305e37843e8b182a71f19d09a03e46447ee6a4b03846b6cc629c2f39dea75aee0c79040cf6ed930abeabda242032e47082ddb23e62cbf11379022ae08d5463837a10d22d9faf63f3436c8a762a030832333064e73642a01a0bc722d39b11dc720247081280d6790847314401a4def0b1ac9e307c8531fc1136efca55b19c4d0697af168f81c62aa82a8105566b46f690209b6829b7238f579168e11ba1f02646c4a8557a4b15d2136fc2a2f9a46da9688a5c3ae61e91b2463075b5422e82bc40903afa867cd7a77998e097b921f9\n# The key for this test vector uses a weak hash function.\n\n# tcId = 31\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 3e68229146bee8f86f1a85439d59132c20f161762d35e117b46a8c9bf6ef7a7b3a6ffc7e83382c8f0550b491c304c397d8240ede43efa5e1cc889e90d0a5a7b829e885f72f764d1574478c2dfb9530e42de5003121a2aa865daaf421e973899c8f3d6479b80b500c10e1b8375f8fee56b1fdd5fe1d1ea4f0ed1ab3e42abed62134ed5ac8d513a91ee782c79e92cc3e76bd34fe66ac3ed4f6865a6c0c5f04c3b430aa2323c9ea5a0409abb64c1fc95af535a3cb45596323431e208640d6f8b9d425bc2c75f0f2f431bb1943198ce80189755569b8c1b09acc729122357de8c88d185926df71ecafcb0122edb7097165337c83340b9676ead12c692c4025177d88\n# The key for this test vector uses a weak hash function.\n\n# tcId = 32\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = aa68dd72cf47df9a0d01f5e7bdc297b35a5cae62846e707b0b8116fc2527dff6e6991ba01e8b5b84bc20e82cbf26b2afd524c68bbc3a6c872b6fcaa92e4fd55b69ce5b773861b3308228f09cab60387779da33213724669fa119ada65d4945bf8c3af6e445584c85f553b17ce6bccec8535e66952c34c9517bafe73a33793ea80e3be07d607d4c7f047198708f973e4f635f190018278824e7e5c8970413239e48854e107b26535085c61309b62a8b2b96320523cef60f6ec30d278bbaf462221bd56950a1f042063148685642d5721ee35e5935aa80f82a16457165b22ba48cc79c4b2cfefdb1b88570aaf760edbcd1f8fef2fabec9d70e3e425daf7ea47d66\n# The key for this test vector uses a weak hash function.\n\n# tcId = 33\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 70ea1c8cf6d950da9cf4f11da5e91089c7b60097004337aa1394e004b58ea4b722decd23dd2260095ff8179f70f9a7c29430247b4086a341302a36daa6e925e42d192835c7d69207586aa6c97c184f17ab6f2b6bb6f97a3d866a2155d5199a6cb0121ee1a31030635bf505c0fb96d883cad6050bc1802769311ad1ea23aaf884e347d2a2ed71c460285d0d4d064bd276be732e899d01ad3b5e08745732fa1bc74622bd20fd0a53320ee5b70cecbb65ed51d6f29f87774b36f26ff66129178beeff34630df9af9ec80cea6b3e307614be9a20a1038079801c24f089847404252e5ca4d60c1613d5e6b1c596ed7a09ec162875664a6bd5168d352464e13ee81f2a\n# The key for this test vector uses a weak hash function.\n\n# tcId = 34\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 84fd2800622e4808ffbf30bde60d9a55c702ba39e344230d8d5a1fff44be6322abce6f1c7a702e2e1c3660c891fce6aa3833bdd87a6d1b28b629c19d01d24d06bf404d54e444f055bcd659815944daea78df4939fe6912f9c396cd9139852a76aa8f90669013e3307ca045793044de1702e98c3d2e02a4023861d13399f489fee3a3a1ee91272948d08cd6503f79f321bbb936910f36c63f8e24a3ff10908547a2818e9d5c954cf3564afc71884b47299e16c70f9f9d2affb68f2620acd58f5e4538f5b56adb6c7f4461d586e1de2bf3c99b7de01bae479ac124a59aea4d4df707dae47edda3bd3c74696fb62a9cd24282193f0cc43816279ee0e2683b82c8bd\n# The key for this test vector uses a weak hash function.\n\n# tcId = 35\n# leading bits of masked_bd not cleared\nmsg = 313233343030\nresult = invalid\nsig = 764e687e19fd6c0f60ef4767262faf217d6bd83f402f72c46dcfcc346f3170d67c3ee927b3366ebde5fc81d576bbf8a0da76ffe950a8dc441d4bcd3485f5a821b5d58dfe6567b7dd5a3a77f3062809ba7ce311fae758ef696d1b36f3066a054d11a38eb124b17b5387ca71433685c14042cf68a1ae42b749083bd852113a214af76c7e34a791c9819b59b261cf71fcb58812c52c9636153a893ec60372b24388f28eb15a806ef912052911661ed55b71e4ce3f5b16d4ed589c27a2a07d2c488990fbdfcd9760fb7b61d56af8ccf00e93814add", - "5a41a436472d7c5f848cbdf269fabcb9452138b06f810f2958b04bf5727640e1d81d99f4e7d6b413976fb59ab4\n# The key for this test vector uses a weak hash function.\n\n# tcId = 36\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 452efe45f5f852f61c14e7bf357e58f1a601d3322ba60b7e4d09a226fbae5af2ed866226ad7dd0e658b00afe58e0f017cb218b28dcce2d10bb8b099d8c3a7b4fbc6dfc2d085fef16b5cac7123540e9623fc4704ddb48a3120c1753c2a4de13053e4fb61135375768ef35baedd1dbd31b1b4b51e8a7b9108c8c18faa5d55184e2aa693e27e4534a60627c1cf2ab332fbf13eded03913b310c29f48a09912eaf2128dbc0e402bfdfe5d10dcc3a7071fd12497d904038ceec21382a71ac9a0dc28260acdd23405a291b2c0fe2c9764b04f53db8e2f640f70cb57c452807a01f588529da21fdb8a93f569268c2e5b8f14ccc21e3c05d88a9856a76a58b9e7201b1dc\n# The key for this test vector uses a weak hash function.\n\n# tcId = 37\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 2815361aa080fada916df00abb4ff6745144271e36868facb4fd3d42e079b5f0aca5db90991e454f7349e9e8aa85517f8c5a148547c646f9d89dd38a18ecc439b6d8e1f1a67420af089f4030e310e3a9aacdf32c687946b1f2829364bf6127ec9211327793468832090a1afc178901946b552e399c5f4f83fc099c31c950d3f7b3913c13f93eb23186bef7bba43724caed7ddb3551e937ca006ac892d1f3b8933d9ca952ee0d307ca131b53fecc975b29b611a5c95585cdafdbe8f0037488b65d4b4a3bad17a784171264f257b4a7febbdd5a959d99d4e1aa89e6bac530d38acde8acdd068349332b32e05715bda82c25d2eacd58fe72d08af9fbe3ed60990a6\n# The key for this test vector uses a weak hash function.\n\n# tcId = 38\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = abf40fa37aec687e46bc355e0dc8534f27e9bce3f9ea2d27b5943fc27730d38bc948557b581e548f46d47a18d726806b547866127657414f9b1b0bef341cc2c6cb80bcfbbd7c59112268c49d3f7fd896a4c121b487a99929d94606acf882569d9d63c92bf46232059a485400486558a5041737205709fb3996a8e0f697d4d98a7131bddaaf2000232952c6343a81cfd8d10b4a944cf16cc70c5b78b8adb0a10d690c2454581e5e36aa83bb106be6a753f0807e8c6383e32f6e4268cc91af1a67c09f85b43db732cf401414404a2bc378c7546ba6acf93ce409eb049c58c286a3ad8bb24a8390c166e6d7860a511ffb622a587d44040936238265def3ce8b0972\n# The key for this test vector uses a weak hash function.\n\n# tcId = 39\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 18215b1083aab4e4dc911b55332c2dfc7fe776dbf8873eaa7738d79e6529c27081b43e24ba7fe52f9d38933aa9a91337c1cd607e82f092b82895eee08ead942d344a813be0575b110e95e39ad7fa07ca1904926e526d04831c355059570fd24015e2ca660207b55a5bd45f2043f2704dcce5f2f992dc9b185221ab4eb28272cb5b179c6f934e218471f989da57c787e12cc1079428485104cb8cdb380e74d0d8bec8f75cd4831beae12379493f58db754c1f332fdf51d61f2d34f297dda0f761be3afef70ed769fcb786348301f954586f135fd55a67cacff16760147c5f38c796b4837ad5f0688fd0ea5e6567fe0c7f89803004c45a5343cffa5e20c7630c9f\n# The key for this test vector uses a weak hash function.\n\n# tcId = 40\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n# The key for this test vector uses a weak hash function.\n\n# tcId = 41\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n# The key for this test vector uses a weak hash function.\n\n# tcId = 42\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = af3897c38ca932c661de8cd18315dcbd8582e98f9f9a21d8cd822d4d1bf1ff1d1bb98dc0ac25c4c268d82ec61dbf32dac496eab4622be114a9309634cc85c16036088026da96abd350152e549552500d6ab9341f6b695c0d4d160f6d50fe97519b44cd74edd65bce876db5da9adeb87a7cba1c5c02f0d0fba690b4ca855024dceee68d04f48679d5c63ec87fd65e1e42604d32f0453db7e83a1bf4dbb8230308bf7c0e36013d555429c6650d7bf576b37b25f420798b22842340e370702fd1cc0fce98a407fff326017dd985f8c64bb6686aa274b664ca44e40de1cbbbf79ad760693c256f820d0dbdfcaaa440b0e69899b7b9bb2911082ba957c4b188e6d6da\n# The key for this test vector uses a weak hash function.\n\n# tcId = 43\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = af3897c38ca932c661de8cd18315dcbd8582e98f9f9a21d8cd822d4d1bf1ff1d1bb98dc0ac25c4c268d82ec61dbf32dac496eab4622be114a9309634cc85c16036088026da96abd350152e549552500d6ab9341f6b695c0d4d160f6d50fe97519b44cd74edd65bce876db5da9adeb87a7cba1c5c02f0d0fba690b4ca855024dceee68d04f48679d5c63ec87fd65e1e42604d32f0453db7e83a1bf4dbb8230308bf7c0e36013d555429c6650d7bf576b37b25f420798b22842340e370702fd1cc0fce98a407fff326017dd985f8c64bb6686aa274b664ca44e40de1cbbbf79ad760693c256f820d0dbdfcaaa440b0e69899b7b9bb2911082ba957c4b188e6d6db\n# The key for this test vector uses a weak hash function.\n\n# tcId = 44\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00001ad9d6447423c4436a96c17407f8ffbcb8a41ab5421fe319222899e9091fd219690a97f801113d33e13fb5920335646616a35ce4996d63504a2c0dbf7172533b06738706ce20484698cfbd24eade67ed91e6b985ac2df1f17c4598125b2439286c9c01fd10901058b7318f8cc49aadab349560d473c30c3389905311d78288f900cab33b5db060694489a018c2552e588f32832820703e3838b44519ee9430eafd65076e5c8195acbb85ea1e4502810ac13ed72614db0c4bf94ad83dc95ca2bd47688021a56429c4b74b1acd82f242aca266f8a02defdae8b47e12d790c6a7c157d2bf530d50134b1e7c8446bd13884f3de0d44fdca612cd3d4260b6570ad0d8\n# The key for this test vector uses a weak hash function.\n\n# tcId = 45\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 1ad9d6447423c4436a96c17407f8ffbcb8a41ab5421fe319222899e9091fd219690a97f801113d33e13fb5920335646616a35ce4996d63504a2c0dbf7172533b06738706ce20484698cfbd24eade67ed91e6b985ac2df1f17c4598125b2439286c9c01fd10901058b7318f8cc49aadab349560d473c30c3389905311d78288f900cab33b5db060694489a018c2552e588f32832820703e3838b44519ee9430eafd65076e5c8195acbb85ea1e4502810ac13ed72614db0c4bf94ad83dc95ca2bd47688021a56429c4b74b1acd82f242aca266f8a02defdae8b47e12d790c6a7c157d2bf530d50134b1e7c8446bd13884f3de0d44fdca612cd3d4260b6570ad0d80000\n# The key for this test vector uses a weak hash function.\n\n# tcId = 46\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 1ad9d6447423c4436a96c17407f8ffbcb8a41ab5421fe319222899e9091fd219690a97f801113d33e13fb5920335646616a35ce4996d63504a2c0dbf7172533b06738706ce20484698cfbd24eade67ed91e6b985ac2df1f17c4598125b2439286c9c01fd10901058b7318f8cc49aadab349560d473c30c3389905311d78288f900cab33b5db060694489a018c2552e588f32832820703e3838b44519ee9430eafd65076e5c8195acbb85ea1e4502810ac13ed72614db0c4bf94ad83dc95ca2bd47688021a56429c4b74b1acd82f242aca266f8a02defdae8b47e12d790c6a7c157d2bf530d50134b1e7c8446bd13884f3de0d44fdca612cd3d4260b6570a\n# The key for this test vector uses a weak hash function.\n\n# tcId = 47\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n# The key for this test vector uses a weak hash function.\n\n", +static const char *kData110[] = { + "# Imported from Wycheproof's hkdf_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-384\n# Generator version: 0.8rc17\n\n[keySize = 128]\n\n# tcId = 1\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = 3f8b0e4a7b2bff01a26a18f1e07c0218897a324e\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 2\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = 54d872ee6079718738b96cad7573bdd667aef80a43344ccdd2488eb2e1d3c33b9e291faf89609af32365\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 3\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = 8998abf032b4fbb29e431f0bf1544e19590ef4fc99e013db8d6ce0dc085660dd3f2432b5f9cdcc44cb6ce0053e7eb43c0375ac7efba148ece8688e637a5759f6\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 4\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = 658e6132e5279439568a617274fc788dccc2bacf\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 5\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = 14a650a903d54e0de9962f5462deb135071cd1e3051ecacd65d378b6181b41e1e1ab3b5d2143b710c728\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 6\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 7bf6c7c72fa9bf184f9a2e13077a0e1afb9d976a5574fb7ec819d8bafb9b10f962e6fa8bc6a844ee0b609eee34aaaa025065a7e3a7fe4678a005640f7dc286c2\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 7\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 55169d60bedd7ab2399d830b1da06f69f94e4b0c\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 8\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = 260a775477eb6b32fbeb4e6825464a47ac8484a92296a3a3d51b0821b346deadf57f9c82e589ee369fe6\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 9\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = 59debea3637c46394e2fb2790ebf8760de4986f36a6b142305bb62d1466dd56fa201c96814a2e5846acdf141733ccc54df9e6ccbaebf84c4f40e21201e180b12\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 10\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 25ffbc81bc7b1c2dc1cf98020f55d256a31ce89f\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 11\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = 6724e716f6a953aab112b61e29d921fec0f8e806841d5ccd3aa567574b502904d04ae707d244187fec52\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 12\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 758546362a070c0f13cbfbf1756e8f29b7819fb903c7ed4f97a56be3c8f81e8c37aef5c0f8e5d2b17eb1aa02ec04c33f546cb2f3d193e930a9f89ec9ce3a82b5\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 13\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = 25b54be713ec3eabde9f8d25745672d1e6386c07\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 14\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = 24e3486d28a6574270b32541651cccbb93f0418905e628ec1274263681b943114f742b9b81db0f86385d\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 15\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = 167928954f92eed2e1c82496e57cf091d9c96aa6d4c01ea0b4275f9f17ceed820d90287cea90ac8297f892c219885243a67429829bfc86ca8eabda4295236252\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 16\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = 72f15cece4bc7704a841eb5047f04756f86ec549\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 17\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = f693a3253389435899adac72d3ff59c240c65bf282f373cea7a9ee00864d5b4f39b2000f7eb49af16fda\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 18\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = e13a7490f842b6e5be206e6d5ce69b2a8e2cba5525715283f22b021d2fbc2aec59d0144088581058f0fb2f551c6d62bfbd8a15d2706e23e10f3bf7277fff337f\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 19\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = 83b3d9f22cb5765c16dcca24e6ce6875b180ec9253bb3950666c52e3711f3b9200d2a995aa548bc6bba2\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 20\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = 9413c6e1b27f829fb82252b5ac5e14a54503e5f433fc8182a6b556bd7b8e04ac34b0d6006950d5917132\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 21\n# maximal output size\nikm = b8a3fec3c020e028a2a9512ad3acb688\ninfo = 006a7b5529648b31\nokm = d21bf9e7a8685d4c052b391b472767d436a0335ce2315a9e44d5b183da2f06fb0ac31733fe0cb0c1b47f1652d16b4ca84a5c05e4fc9432a840426d146cdf17924c62d3e1901cd3f5cbb0aaa55d46e0d3d23fd86f82a2bcf3181a548cef4d848960ec65518ae2230474d6177a29381e6537eedc2b2728db2573ee182afc5d72cd65ba04ed613f245f3ac401de5e4b30018040b8b1f253eb57a2128c2c0e99ab68dab4583f5a1ee7d0a1d16e9f00afb5f63a1e98268f8c66db5d49ddff7528dfe71f792a93623e355d0860d65344eee9eba04e739627874829c2cc469f27d467822a72a5dafbea14fea2aca2c521aa17985c07a8457b18a1965ce824bc886525c439bf48c36e957e567edd26ee015c01e01cf3ae463f8efdf12dd0d102d95310da2849b8b0bb0849e8b1b41c515708299c7fb645c8f5c86e165e14ccdd9f3ac4766e8ca74eec97f7632a75543d4a93818fcd2b3201feddc19eafe19ed596b76aa3a8492edc52e990549f91967aad94536e8234afb862a60c92267e029bf90e07315db87e56ce4fe7a857edd4869c44b4f410f62b7ddcd31bdad3c1d6016edff774ea7e17c1cb3b39ba918ef0d961725ebe407b6c89b06a9f012d8fa55abb1b84e277991d8b2089a7e228d326eb0c24632e4e35289a14cf7fa1f036de44ee56c0444bbe7d84873597fd82dd6b717488ba3086d57c76783e88cb0992944c66f8b87132eb9908c5dfcf30600feca06ac52d28af218bc5df00fdf4b8fe3fc3947e3ee24a68d8f7c96517337df46283adbad468daaefd334ee2b101692651cf5c8c1c60c2b204a111707afa2ff0520727ac222807629e65f8425c925eddd4a301ad247499f6640f9ae9818644cc94ce4b088e37ce728c48e42f82201b9b27c7b0e918c09b3dcf6484d6794ba27f10374f618c4ec49791a3918977a13099e53bb8fe4fdee599016e7fc91f849692ba97e722c90fa6b4fe54e2bdf4699857fafef364fda90767692818a40cd83cfa42e5c12b56f7d83c4a8653434ec7e5e9a13cb46019bdd215c106425ad51418a6258014a62a449287edbd879063d8db019de0980d0ee30c9463c50860c7a2c390974c09c74e634b0543212e99f6db9bc104e14fb7eb52c4d98c5df24808c59baeaa01bcec03dd110d0ca6529e437e2994dadd8a48af91734b638acfe6c8d216b5d1ee48143a0b24c51f4e24ab2687be88233d10bb974906d46ac8e08dee1191fe7455075c167a743290c261362051c28fc441737d92de5ebc763cb52bd905cd3cf115dfd3ee89f0051e31159965e285887fee7fbc529ece2d350985d13bd16abe379ac5f9a89a99b768d4f0353e2d52bc8636c1dcb05bed53e958937de69636e34d5f46ca5371bb0f38e2fd718a6bec6784076efefeb08c3184bc92e18a9fb7042910d1305b560b9c59223db160e2959f061cb0c9a0acb11f479d4e77c6d98d5ca73149bd19875daaf06341b86227a93e09765877c0d7d0e74337f9cce38d59f0c4c9fa202d1c48e9c398064d5f9fe802f634b094f47dc44cd041086b728ef57103162df6d62208c3b60f750a4bcc2ab461424fc88107cfd545518aab77b42fccbebc7bf3da92e4a8c2a1eeca8d7052ce8c94ba6393f66be9b758cacf37b7c87ae41e48f9d2016fcac2305d6e15256d4bf7d19d6129582eaf7237af07463aceb51edd7c56bbaae7a54af6678256bbd5ad3bbb328d0506e451855281c5b380f63c1bce87b370132570ca98e4e330c1ad12831771ecfeb6773eaa44880bc5dc633452160ac8388b9eddbd02fbad325e0dbd66cf20298cba81f3263a402c5e6d5d57d4ee5fe391de78d2103067fd889d870a36e7df6441e466262b759d3e2c051f7c850e8484b6fb837239e8d11570d095a76241817fbd518ac44bf1bdeea004f8496a252726de49f36b0dc69c0a5d01daf2723140922ddec55519d49391f9a34b7c1a5e00d094c0ba8af27bd3b2ae1de2d6ae15b23e49bf65483104ac62172c8f2e9ca109c59649d0318e5c38cdd659779c598c23620151783d521f7ca021cb910f195", + "e36d55bd963c25167cdb3bffe3642bde8e184eff7905affe418f80379393cd7ca78586764a80be777dc9d9cbe0840a4219c83459745f9cae786d26c1edc74f5fad27113fb84e8854c76e1fb02b1998253d365cb7aa682104765ea1f020b0aef0d3cd2378c037e5d64ab2dafd8a23beb5ac5fae3341be1c6a9c6053a3d857a2d74d56a7bafe341bd5bf7779bd7bbd1991a949850fc25ef0f2e012772ea0d2cb7e9292fe2658c6424ce786d7b7aaafe415adaf9ed7ac5e5ac8e24218bf9e629dc93d22d398a7872b9a0477ae98df9fb22e042d475f96d349029dbe108632d4d3b56dd89f352dfc703e2f25fba97da49a079133f1e0c0c729bf80b02edad76bb036a9ce1c841e5202d59cf63149cb3b81a68df64589fba8b1dc7f4fdab3cc8c4b5ac9712d7c9c41a6d5e0efebc2a9ad6310d30087395dd74b61aef03cb4facfd59d5d50d8c04c5e79518823f9824a94e0ec06b7157e48916d551bb5a6831ec44cae0cc8dabba3ae1b6c03391f3b5ce45861902a8e777fea9a5729cd16eefff724636284dea34605f53d98010fd888f469475a6a98b20c8ad8fc07466276e461b9821ea55cf3c42e208fc56c610f70368ff331e3dfdffbecc26e489f70b0a3e995fbdeec6b8fc87e19d3ac6f9036dddab7e8ffc38f58446f75fcb2cc4f7e90a721533de151a61c67346dcc63e15fe1a4ef1a98d1cbb25cd7b24703045fdfcffbb1249ebd3c1e52399d6c24838d7bd5b668807a4310b447c167cd3d3c13697f35225bb284339149bdd4618656b2a09712a812b2586c3492bc07a4c2f8fbe39861cf8d36dad815edc9cdc97dc2fe4b24b0fb3c2513e3504bcdb1dacf2692c98a6f90ff77fc5348d4acc44ee4524506bc176257b434e8584a483c4c734cefbb7457b4761e1dd2dafa10eba4a031e1f0f644e210e5bcfb7a72e2e14577c972a78b1a275f338145e2b7d80851013b784811a91c19c71bbb9df88ccc2c1380699f0d88d203800574a0830632e4401880c547c6bab52d2235638a7222662e166307779d2528c3dc5436508e25544d1025ac3dfb627781e8fc7bfa67738b63a86bdd9f1f089f30a71cb7a79dda35340ac1a2dec129cab38dbde6cd5dcf9d2da3a88f9c2cf65b4a1aba02ca213ba596af1a2f323a47ab6a07f0e3057c6d635b2f5ed1bc2f4f6ece8eac348202cf1c6d9f9c8738044ca5166e371dac0f305fbf1b5ef2536cedda250a4f209ab01c714882244b3c1ab3c0a0e5c07d6b928dbc52c9b23362266ab8a25e2ade5e06c3d645dd557630fabe57733c7543f7453e002da4eb1844899740d95ebe604dbb03e883d9f668b4974282ed491ba183c5d8cb2867788f24eed7d67f4b6c235262cf71d52763fb7688d3d84d92424b0b23468908e95ae82de41a2615cb009aa7e5f18c889125f1167d60aa24c3fd9e2e087c6b99d29733abd06c81e5a728faa0a945a2ac8029d58d7782f03aea0e185dbcca12e0564fd163427ebc2bf46bc71fa3564bc9556546ca2cf1e8ac1720d8955caadd08a6530c98d7df7ac14b07f7959d0edc4ac31e6d58d793be3c6ceb370868cb1ee8b57b74860576398fa5c7bc8d23e673745e7ecb1754dc2c873d6ea61057adb9b91dc4ca1ae1fa69a93e8caebd8a647915a75db4935e040e609e3cbd1e382a433b7a990488094dc53a91104c9c28fac9c74568e5a9e4d37df0a44f750fba7dd45b17c142057f16361ac750fbccd56fe43ccc548c9c97ed9a190e14be1bc2a039a671175ae625bd4a0a7a9f6ff27d75a022a5a0e5bea17eb6976631117ad44beeff05360580b8aa87d8a6c65b7f4b51d53c20d9ccf9008eee95cddc90032325598f0c671810edc80c9de9a74cb32de95b940507773347a17fea02f85cd2461e2e76e0f58315a7393489b9d26440283d89ac0d4f8e853e35790aaabf8dc26981bccb4b85c36393db621c26c99d1ccb072c8f250924fd0411136c5e2f9e79ccf450e785de248b75427dc6f858975b0d3f11feb0f8745ef8e2873424d34f09d04bf01edc974865fb2223b9cf72aa4aa35a5b2c9c91f55f2e545ac403e66435c25fdcd6aff3466bc9b947bd1c811c65de058a92dd3d3668f2ea7c8fdfbc54188d8328e445676a3d115252022b2e828ffedad08c2b96b10b5ca3057083fcc313e3a6d1fffac12987b8d518cdb8b0447f6f23d5266d95e03d36a806dedcc5466ca408580d5c3872d7f6c96bc63fe3c0ffacdbac126ecfaa9426483bee96596d0ff88f8fac8b9c67de4d023b3f0b146d8ee27cad9ae019d8982c85e361cfb7495dfbcff0486448251e34a31f22c0beece7f01f8b81448d267397bfe55b4b384d6604606015a744ae36c92d593a1cf33d3b5562d98093313f3a2ebc7b8b7baaaa0535476b7399ef34521f06d459861985e81e2f1bee5b3544c09e5528bfd472e01383975dabd907be7e9628ba660a776a9ed3a815ffb1df09753e8dc45a0225ba98e197508e0a22560cc0d76fc1692749a16c91dbed55e385593331f3bef1666de4c2b8f29f5df2673ac331a337da8fc020d76f4e4b0933ed6df06b5199715416d6ce46b760205b7583973bdf3967fa546c9e367d6e60f4c9f8dd79fc73a0967a58deb4b779f9b5695a91db67fc2c0e55e7d74eff97bcc322a00c5a5c0fb9564d2c128f5ee3b3378416894ff25b8445e52d21bd35f1759171cb4e6e426c71bab9a6cda6049d8eea904a0c95ebacc98dbf5a5e98d835b6e216e6fc062e600ba74c321620f63e76995637fb506daaf7b7e0514563b536edbc11a35515a75c58cb7f56f3f5ca0e7dfa3ec715089bf6e5f26ad74c10e72ba5f603f3ee51c7bc9645f4194877d4f4645c8226b1d974fab69e62aa3527ad2fbd101eb6b752a739a191d431a87d5c739b7d7f7804430f41820cde5e5a717ed84d80ad154f816657561d58f379e4a2e7761cdb505b5da6f1008143cac623d11859b186c291a0b39267da29f64d5f5c3e0e5cf0f3dca3b78372593aecff71541dbe2d3f89d0febe753f9571684bf8c1b82826715d40cc0da84fc2cbeb3f46c1e53f522fe5f682479503bfa423a2fe10396a9330be5c484e21d60a26aa3f70b210d3ca96226972b7b03fcddfde1499fa81be22e82d851e609834ff9be6407e0bae00909f952798a559809bbe47ea0e4e626de0445b79758726a09e38e757c5645379223141ac21de8ee298542670f329d77ab498f73adfd2d269dcee504d8dd046f7b496fea449e2b265874af3419d43b58df44d9be3e414775c715d65a1d4107bafad16bc315610a36b5775b7fdba09511ce68d1fac79592e740535a27b47a24f07b98bc2548df11610860c5918173f04cf28890e9c038846ea4baaac30b22c552d5545c7dab8f4a034367352336e58409ed2907df1a2fdcb0c56994477c2c9075ce3b1876abda5da66b3768eb7eba609f83376aa5175e3d23a49e8a4327ca3687e401b9fc2f00fb41a13059dd57f9053d438fb66050c4022f9a2d740ca1be13830047d47e9d15184669640ae993fdcd2242977f479b80169ccc802baede5fb86fba380d3d6313bf2034f71f9bd7616c02225ae23b2a83158e31de5726b79564f16abde403a915c0e8d9110319dd91e8c32ba5546ae522ba3204b70d59731d9971157807b024306cbb720563671b282b6e89f82cf91d5686978de9af12e523beb1f2947a384dfe1a6b18989a0cf1c42803c8238eab525ed3a25dad792908db3478d14cb26abbf324d589eaf96204c837b32a4c4e6f9240103ffaa14c1edd6b7ee221ca2dc52dc553cd4eea179ca9a7c4481f17a3f4a9633d29987056afe59b8f51b8665837c62c72c0a3b5a4c5c597327414485c39f298b190da1d9effc1e103b0194f5dc634c6e12c7a22866ae23e64a86bca3629544be79f5b4e89592a69c46d92566c7939385870e3337174dde45ddbda3691ccd6573edb897a15d2d17f2599c523355137de6b987cc35df65d0bba0e06e64bd3059ff94e723ab11bb4f015d72b42e1762226f163b881bf82dcbfa1604fe33107c978181d850bbaec70b44d64fb27baaf7cddd33b1ebb0872115a4fbfaeb6ca5299a02aa07ebbb28574c430d02cedf0396b8e181ff3631a1fe938b0ef175ac9e7dd399b663ec6c6c9520e4a63c80584d8b845087f5419d8c815b1ad78e402a4db542b900c71a16ada2cff190d6fb38815c59238e96e6cde1dda63a89ba907db338e0db29d6151722e9120126d70c6d348b8d3b99084fd8b2bc068258d43a34dba7f639807eaf2176ca7eda0c0e2b4e168c1df200734b592416304e7fefe17f051640464164d643e7b66dce05264a24354651cb803c012af3aa6b61c7c2c5690979b1e1b5e05fc64cb6dbd4c95df382f7d5550e12d7bb9242ddc025f2af03a44f7974dcf5da038f23ad826e9177b23f6163b827a98f0cb065395235e7d3141f94e83e46e8fe71c9e2c43c77837c8616150250485db8a41f7dae069fba1e453cca231ac71454bcace3477af40485ff2f24474115a6029163ab3b7186af02de5c3361c3f26741b1d86334823120178f6d453057cd7b7df09c908ab114c0fda4767bcbc43d1262cb94f07c396ff51858ea2a55ee02873cf9fe2c456f8afb5a64671c05c020177891ba65fd8a3857359de1fb4fdd80d2f7bca6e369f8dca930bd1c977a141728afb66abbad60bbd3b5a08f32901354067f5442de768972a8ac3330f3b4324c16c1a5f4b321c68467404cfe642418620df5078d8525919eff62163c388ad4c2666bcd06330ce5737d438b59fe84f4089fcf35dcdb17ad93d3d40e32493a57ef97a6c0d45604623ecc80714b561e515c0169ccf488ece2672af491446a5d9ec8cd443d6bf95258d2bbbe220be1b56f1179231aca39ae84f5ed34ead9511a2e9af44bac69f4bf42b241696d4cdd5f260d28c22d26ebb580265c5046c81bc386c0bf698ca1d412e7cadcc247dc1c774877f5b9ff8193128934fbcdee8e0932e6658dcd30d07391f82f4d89a17e2b622a8b87997e1848490e26efbc6e79b9e1c40a414d9f84e22a0dec7e21321245c76e64921e3030a1076c9a87596d5aa97caa5c9c68b3280427668348985c7b7759db6fba4c1ce21ebc6b6889fd7d925215d56758131c515b544c56e75f95b90d15dda7f309b7740aa7989cf1a9e3ce217e0ca6e27f502731bb7821a3fdfa73f915ee49e0757a897972d58475e4b12ac735cd9e6b28b81a76d2ab0ff179fc1755a7d96cef5e8a68ac9256d8d8f17d9182daf1540d7af15aab8b1517f7b8656fd3e6708b99dca9a1fd598efeaaa60ebeab6adb5a76a0ab6cbb7dedbe3f0862ffb028ba4e942372344cfe84da9fdec4ec75fb290240828c4c31a1fac0d178f0dd2245f29d346c3a841f863130920bc97dc05c510020852f3c01bd783a8c6db64228b973b20d72c45bc5482517cff230f1a9bf1d8d0979f62049bbd5e8a3e1bc54f6a1c148289b2a66685ddfd0406bbab589abfd183c4299ed66283beb96556ff200497804dbabf9b6702a87692b4b5bb58e01d16ce069b6c3512332b394db1c91db0882a571ee41e458bc960e7535668e334152c9d46e9c155ad09617c348c3874e5db311601f25d5e1682cf69689c15c13dc5c8d836ff6e30b0b804e4810e280252f4bee9470964159f2b271c275c9615b341d20f292107a481955b0b986365c3d7f05de29a8955cccc5d42113c21fe60e2a4a51be45784fc304e8da0091398205a9afdad9b62361d6f8c42b16a7990d5fb50ebb90cd1e1052f62a966a9e8be73593b50be8398c5b3e8f7ced3af398d537bce72a", + "b1d7b10b4f0aa77383560a79f4faf2f29992c1e2afda295d15a65e30e6f968d00d60e5f1dab5a847060e55ad9b64f0203b21bdb506319ad379302c24673a727acc17b59ba12f20c3ba472c0a5628d0b05213116e2dfbaf9e98628fac973046f60f930b7eaf0790ff010914c19e93f07b74ac3f7a6b6c3cf92adb49443194f9167f7dd553768841b34d461f7b854a40926b016d8a0123a1fae741e07662e125d42fdcfd765c52d518049ff16393422e6080b9fc69117e5f17f3764917eba5fff3f078727048f3e5bff1d9eefe8ebe2fb6db7c54cdc9b7678fd0d6551aee06b584dc4047beaa72c198bd96ae9eb9b151f29747af88b75399b21570ba6cf983637e6dd2b1d42d39d07108464ee22d81d640aa4cdbdbee7919de51d8f82710e32dc722a04a8ea96aa32a7a19c7048c1d76d2ae63ea288b1120d139bfd2e51f634c82f6f10a5bf18b02725bfed7a2913896b5f108fcebd949d04647467e9837256d9918c2185905e078a14d2945ae64d57eb7ebf9746f80ef939c3b1a307c6af627b91db34d59234d3b62279fec874720624278a51fa6d22886456135bc98b683eccbabcaacab2f013fcc884c554ddfc6f91950215c4f1f750cac338ef3e420a82c1ba15ef420798053483ced448b730e386f0788e1a3a747f8365385bd0e02cd42f1cb48a61ffeb2b2e6e3ad75363a118a27dcb86cf27400be97bc7d10bccdc03f6e19227ffd0e3881bd7c3126d682596abc15bcebe77854ce2844219b17f604aa2b4cc19971e8dc163ac654126bc39966d35737ae75a4852ea1c29183a3700e7cf609ca864285a8b92de0f32ae7c33b5ca11aaea05e10f87d892c5571e89dfe54091639bd87636245f06cfaf87fa3a7d6d657ab3aa89f5fa6b54eedec92186b2026954045a07822997051bf232e39dc1a36a50cbade8fe4dc6ceaaa29008c13fcd7ef96cafc7554b60d479132b2810ffa583aafd6c7e188293c4c35008d895fba6634eb20c92bc1fc2a93f7034694e6bae8d291c59caad61a723719298ae5d99fbb0485837a284f070fd293f74307fafbcd5b9b3a49c96d9b7dace812d6fc7a94aa381346e879601fc292e850d5a732bcec383ec59a1034a573793ee07b9c30e29c3f3cf0efb40693b8ee6df08cad92be3bc4666093daae5484fc02df28f3601861a2aa9ea96e68bbda698fbb032485a55c4baa03893813804f09a4d3e639f2d84c553f2e917b3d47f658820702a6cda2e06070d29c71640c677fd76c429f98ef0b65aed0d5c82d334a3e22b5e2d49a31518d61833ed8fcef352146e7a1ca1c9eac1d786487e357a108ba102415f9d87ef8b00d1fdadccaf3328d9376600ab0e4ee2400aced47774ef5374e62ceb9f19670e144e4590e80d33e0f5863be0e5c515656c7f0880bf57ad0b986affe07a1f66cc9b1763ae7646a8f28f6c804b6c8c260f5fa02af05cffc3a631377f0e4abe659e55655f691fd9572ad832f6485c06bc025d5300dca8aebf5ac0094e582c5ba28389d76fe6387f933db6d04b5da56b739824bd507a072f32b5e10be0516718d1c9031dc83aef222abe60c6ced982b4256a36beaa9d15e11fd3f3f600e28c2625ba2b7a9290fbe89a41465b075aa5f00b1bbcbbfdced6dbfc41e30d511b02c9711510087652b4c6637c44ebaabdd0d5527e5017dc4a339479c9be804bb5b606ea3e701e88bf02cb6c2b3e8c6f7e4bf730c8cc36748d38b96300ad92136c9ab8632c54da6d7307afc226eef8b3b9c849235347fdd953a194a90cc730edd043d44f4387858fb88daaf9a0b4f73abc949895ad4af054a8d31b69a2a98090940c24cf008fe675befaa7641a79c440e666905a055e4ede90f923d8bf16e2c451bbe8970e4c3c54ba5b1c3ddf66e8ee0cb3ea1d417cf82a72d244ccad0288c9231809302494235e905876cf8ae1f874b61d78c26b9e1645f68a0478767d049dee312f6ca578ef5630cf4bcb55967c960077503927f3562dab3e37bee4c96d18b66f969f04d592457d055302ac96fd47abd3582a5117fd62b09a1a8c74c379961fe68c9e1792a2097d29c1d837161edeee01a4b76158b0939af676edd2bcfd18bced7ebd0ea8464be04edfd2590004004b0b24af9c1c028fc2b7e756408854ad3d4f89f8d1d27f90db5844c1622b007c47882f316ddca82c7429c870b2455aebd0519bacda287f843419cd74bb07a40cc08d1fc812039254411266245f3b16dca3d88d305d7ffeaae1b45b1bf622945e3ce4e90ec153b9ef84741db9782f1b4518233ac86e10d5f212ae7dd3cbbb952336401a1831621aa7aaaf1f053efdf3938e73ec95d084cca4c2a266e7a1db5e58851fc291db9d0e7bc4447319feceb83767a5c226010db7c1068e8831d90c0051689a7d7a9dbf687d1f1ae43f62a33d3076784cb5d800c2e3e9007d9a50c1d218efc59bb6d5e61c12112b90f72deb9348e874f3292135d7ea9dd6061a6023cf8d9d8c3abc3a8f29a50f2a2be9ee11de0a910bd3763f0b90946ed1fa5a6494fc65f155bc0a1349f0c3626359746e020f8d3bd83ad591f6ad00921a13909d6df288f4174bdd2bd231d2c5352fa232687c5262432732b2837fc37874ba8ec887f17e41a0eff1b56a03d6d4cce12cd60b426a0ce2ca0a3af667874b2c43dab58e65f83c0afe85e36a754cf460fd66689746ecf640d5af440403d2339898647dd36e733b550f41882b6aebf31d886091d1f3a7044ac84014ffc793f34f6633e419599c792042282f37cade01ea1b307cff1f7ddfc340703166c24a63587324859d7190d540352bd31ecd34a2213978980a490c456dc55adda4f3c920aeaf16611ef0516180d05ccfb6c05a8df20792591a12df86a3450c0bcf0ee7ca2a861c9eab2de259e77391f4cbc3125e67d41553644b2a1a8268647237255bb08e884852fb050365574a5fd78999e23a6b0457b7007c0f31d1919680ba10e803bb52e8af42c4dd85638c87d5ea436be1c8102876cf7c38aef78864ad5ab556b7648806caf6fda6dc247f26754862b29fd0d8c89b5c70476132737eb9d6bbf044fb0eec96a961d4f9975d866a84df0a08cde0e9525b179b4b4f18ea67d035fcaa946e807bb22ae18c159241534ed15da394ed5f73b1d74c51db40283048dd8c0f8c5c807cc7c13129f10d957b698470c05caaf280b37f605ff4d855726869251fd4952cb35d6a873309a7166548cc3aac9008589a6d258d8b4b31835dc26504455bcaa25fc580f27b213d8af43897d59e89cca09472f57720146f4d0748040c2f21764b9b3faa75e5ff78d3eebba844feefe0ad9bc0493599bdf1de61b3d71446e6acaf3327dcf61635e51694d3713732804b43989a43d293f133ac21ead51d1f2b92b76b3c61f8de0aa8dd660effc9cb1bbab80f9d1915025cbf3f70198f979a5a1e15db18ec2b78da238cdab78dad028fd5aac7ac043acda7828234d93bf512e09deea886b6c9459962705f8cac432ca315c3b9449c68deb4b0e71b4d393b891bbf92c6ba9dcec3fece0dd91512f49af9806c6c05f950bf2af2842a85fe153153dd658719a2e1b1a2e989448fb0c9b456d81f4ca770140fe9e37e1ccbe61893c1886ba8805f08c9417c8a3998b5adaf96a37d71b953aeae5717258b9f11fbc891d2bec8ead8d355656a0d0fb783cdc1353af35d8cfce2ecc36124809a77cb6fdba75d0f1ab2c9f82de83e1d166a70edfb86129d9b4e362db8d4dfd6b37c6c85e0399bddc8d30ef6b24e1f0a49871511aa210027fb6dd37b979d3a79cd386d0aa3629a25df9e77c33f4eb822ea3daf6c29be1c2d88d3ae3be2321c8fea439c0da77cee72cce86673477cced34d4fd93aee2d2dde285eeac032a81d4df620603a141fdd1d62ee11d2a82e70c4134ce2a80071cd39cfca105bc669319fc85aae441754ef7a3ea83ccd1ccf3fc6c22b998107d1c747ad5dae0d304649f2bd9e21e3064be40ec7b570fe564fb71d95f9ddc94ca45b8768a0b96414dace446411a07fa0100835aa70b21526a1d6f59c167ae22e7e181a14cff96e1073f652cea4ff504180c74320633527430719178a4f75e65ae9464d7dff690bbed239e00e7d166c5b7f8b6f12d510c7d8e619976b359c3cf71b6ecca2984dbd080e631af5c0e5b4c5641aba47eeb4f3b0d942eff17da0f59ef22a12bf3c09f3c24b462743e396a0bdc21b728bb1a73c6d0038bdeb6c078efe49262c597c50cae204d7ee129f7189ec333b2099d5b8c30a5e651402dfcdd65aac3a30ce35e905b8480a45f3f339b81eecc19ed0b36f40fea6490f47ee1a3386678164e1f299abf45dbadd518f38c758bf4366f8e6a5774ce0ae4c4501f11b06fd72eb8ccc25e5bff4809ffbc78faf3b0055394348513fcc2053207008244ed0461660105fcdb9540cd7a026cd3485c5a06ed7907309c1666f9391eac01bf63d0c6d4818cfa4782e5350f14f0b61dfc566d2d6ae766ba4832a974e7524c351bdcf5279fc49f385894f64c56dafcea13762d9c1763515fe16207ce1873a183ecb0a7e557a2807289a868cc4194efa2b46e0cdfa8668eaf99e583888030891f9991f47cbd11e6594ddcaa87f1d8caf858fedb73269b5dc5749aaa794cd37241100ae2c6ab74f5e5d091cca278b3e2f16109d0fde76230e5b3c91c6b63dbf736fb2af20429af3975d589ccbf41515d492560e92c4f72ca6655c3faa78ea5f49487d2812c72b455b8be1c1b881d243e1bce03a6b171cbdba96e795eb0164cbdf40538e98efcde2843a8b1b12e66daccc68e2b4c169a7198090dcc60934783bab955259332dc3b2fd9f2ee83ab234184c22554325e0fb07c52cd3d1737f12911947312c46ee47ace07e8183dede9d52d1e4d9b8447ecc3f21d8ae22c4065d4a12ec8b0c317324595f5dcf17b14642d0e8b18c1a821723a9970281a593fd865fb6b9fe3c93e58767d3a60a55972e505cbfdafcd957752d2015af86b956972691ae027725c9bc6bd5ad63e8b41ccc5c6c0bce89441e1ecd86b20c73780b4e453a10cd3928c354bdb96fce9f09bfc0c0e34298604a0f2ab0e87d5ec6d3e20ca312695da3b65f8218f161a05fb224437c94c8a936b2f73f27f112df39ec596ec8248e228d379acedb3664a1a96825db7c770c43cf3fd1d8abff9fd68977a72d2cb6c3792c88588913e106a77749fbc9f8f5f0e3178475caf5b228327a7c1620c3b4e3a9e41f66456e40f484343dd3e14ce084e82a06d285379094d7d820b02673e16c79dc1a5e56c04d69a33b328a944d94e33c8009d7071d3dce25b74b1c7b7ff60cee8807c9dc1b8e854c79087e9ac00ec8216e01f1ecccab81432563d71e604af79bbb24761c6fbebb1b5420764624e0d6b08d7127661873b756cfbd99cdeb494228d03a619cda283e430da5cf2ea8854e3bb42b5af8dc957901e2442c89d189c7d0739eaa4c79aac9cc829bc70320c896d626b5cd2f862bae1294f3e2c83270e61c12d1db6064c4be559bbb03bca33d3129437a5f0f0696b9d36cd29b4f98561e4cf0e765258b324c50066db05ec4ed01caf9f6fec58dbd5818fad71b2ddf59c70506a2245e3a3a2753152d94b3b79a90ce2af0f6819bd9ccda102b73b81419c2a317c59d2baa3a963214050d15aa8fa85ea825a8e9852bbd3711ce45b495079b610c18789e0123c6d07178387bcd88fff0ac62437c5dbddcba1ea4af9ad0983f57381c438ff89700eede5047951aae1cd545597ef2f59b82ee173d1e06dbfd55f93b944ad68aafaab9eacbe1ee366e2e650881647d375abf478ea48cd", + "b196c86fe5d9afd3511845d644f5f3c3ae76d21b34b6f376f9e0f145e91044d78ec47a944df31f6683836f5e7eb6ffc458a6438a30fdd070c90d70b45feb320a00012ee6a5a4c00f2f39c16e05ec35367b1e120c243627a3ea42fea333fd54c5e5b487b81a52ab2f0b7c593fe1cb8aadb8b2d29be1aedaee0567356b44aa4ec3ae5440869c7a9fb6e9c31476fd4cebf1c1c59cccdba7d2ca0ba3df636522ee983169d521cc9ae0074dec1083d54df92bec7aed5c97190dbc1067b0950f052335767eb7fb1ff54ce78d6ab20af3ae08cd83f10e22f603fdb6c216ca88c01b6315f6f4c20b400de3363ecd78991171a2b6ecf5fc2d66f5519f53407e6a6e28cdd2789c5ea21f4ebf46ff6fe93b7f30f7dc38b3a9b52ad0cea17eddfa88d534a5a6589ddf5fd5826f0ef3294f6d40cfcfc790ff25ef282a0885caf25c818f3721ca7463c8b7e2ab00fe3b37379bd9b242962702738b97809e45f373bf98e8962eca221d35406dccc0efb041d165ae9ec16044c8929c66c8e6aedeea0164cb61b6cbed9f46aea04de581d12e9c33329f0d70e5ef3ff2c75c6152a65ebff7308a64a8bd8b4e3aeb7795070e9b1dc19522647a48ac70a7166df2aaeb3b11811a8817593ace2db23076bde79a99400ca25240bf180472d406f171545c461f69f6d550dc1e7afb183dab9975f0e4527c9271aa330579a796010bf80138c2721d05a997e4d49f099a19e781c8b78fb8e6a85b004dd0f8a745e39342b19937a20cde7ba721c1634e89b715ad63572e94542e7ea4cbf0396d2f289460d4ce0357b25a01dfb44098da0fee41b85411b4097eb860f4ac9b3713a4164b2abb1b264ddf347cd84d7941d5f221c84d93310c1e3a1c86c7c64cc4c00d45922bccaa9bd4f86af2b40e3610664ae6be78f6cdae5edaa59893cd91d1b0a33038ba2b102c330785914140426c2992baf110404f2848e275fe11c40b6aa98aba6a5a79777adeaaa783f1e60f95bf2c12652ebaf676b7725fcee87fef63c46c886ee6db1cce0e084edb9ee01d6aca1287d77738737e7c42481260410d0ba8cc71f22440f9f309d893aacbe26f23210bbfb5d3957df2ba2abc471d43c9794fc6ef7df55d32e167e94008ba64ab3cff49b974f0a04d6513e687cb363acb536a280a905933c5e0e0253b1d5cee4812c7df42abbc6aaf17ec4ba0e0c408fb040a28895970d4a605cc87136480807260f82628073e62b21b6cb43d475cdff3dfa278bed482d294c1e82f9d99d4da8698d7223ad0a19b18024ff4aa1027bb29a3b35eacec61175c97e99aec01676479d04e2e3ea09bc0a8c2c3d08e6c5bd0459c4c7c64be06ee2eea9f17c93416fb1e13b6eb27c070bc043a05ce02ac9469d101d20044ec5502a6f650550db40bb4f1c3dd7d238091efc8f8df5f64da3e0df42ad021388d79b79772c06a61c262ead76e95c51d720abb7ddb069662a37b1348430c001e1ba0c7c0336ecc363acc425834efbf31695f66526b09e559c209b4266ad344a3392f1c7a086e08ef4d790c261549ec19b736feb243c97704e1a4c7edc3d50e95d531795ca20a65f2c6cf73c497e93de0e0849df72e25ff882159aa1cc1e2c764acd79d900b7f627bae2d6929eb726bb94c3de42bf0ce7cf086ff47b33ba63ab71c0f4a24e07708381f263c481ca25098c6e977e9aea3a99277b5c127ea056006a4478f73e6660aa5ba6890fc9c517e261611c74f7ef2c9addc7ccedb13731f36792b55cbe3497acad6c84139d62f525789ef648208804cb5300b74bce2fe6c35b16f4146d92ddb6ba4f499425f8d9bcab94e340154492d0c1590820a19bad95761c28903a308e84a0530a99ec5a12262a5f2c6c3c43555cadade946c59c0ef5db8cd2ccd388661f3b3634aee15c5ba323f7b6ba592180d2e68897d24408f4c102c4746c88369865e3798c7bcc2c26af47e0dc404b61ff62e63b655e42c8268618469519a3de8267597de938fa149166764230c3f442b484fced4e73a09988863b9f10d23c59402b7822d972ad2f576be45143897fa08bdc86ff05975ba047aceabb4d8430151af315146fceba98517e10710ee5dffee550cee6c1f9c7261b546997e994518fdda25f9e6c9d00bcab9017f7c8b043e750d3fc8ddee31984a40803164260f809d93c2a9ed6e19273bbe6984157d1c0ffd9df3c38eb64462d1bc220daf2d82a31b523befbf3c0f84803e092ef314eb8420668056f445193471a45a0650ad0ff4b2847735d00b48f4130314393d6263792e907457ff80ff7f16ff1e4716a31479b1575b693c685d0487e18fdeb52320a57d75fd1b39bd9c3a23e537a51406ab438627a32f1e47a7ea4bccc432e6dfdbb86da1c44c639680b5389120bf218fb9aa11e8b07e6828ddbdd96a672a5d429807ef1706c9996d8d3f7d4e3760424d6da0e678da0892d352e2d60c310049c1628a4c8b9f42233b0b25a4bad08f4301b985f8fdf886c3c9d83def2fb58c0d443d3a64a75c06f93e7db5ab0744883195c29bd6830745940600a7644ab87717526adac7cb69f463a66bed88df2d7872b2e964ff059f7a67c1fa61eb50eed5f37495880fa7023b36b2b1befe55ab9fe072b1acadf6ebab7fbdb51c3052d4d56170af68292793573397cf1a0d721a30ade786fcb61ee10dde6b9f340c7ac85b57ee6c01b50dc983110ece4641a8e49b9c7a02e13b9fedb550bbf9bc250cf9c9f5d03cb6dcd7ca1d0859e1722fed1e38a521d05fc1dc18d42de7cd7f5ffa17faec8f8bc2993e8393635dfec2b6669a82979367a57734ce805d9d927621517abc53601618c7b5343442e75b0084d76d62e2ebe04c7f3f8bd28e39b8ea3a2b6d7c2021a026a7e1058b4531bc34b4852004eeae6b5a55f212ec3552bc7b779fd14d03b9343a754d7d425c92b0beb6f65161e377b8f86dcfa7738c543a16812b57c0aa8b36d6f62c25737c828f217175c3bfa6c707837c32ca51533459155e368c3da99c2b31c063d17ca57b251726ba177e26d3ccb75891f0b0b6fcf3839efe99cbc6691f8dff63a988b13c08d1ce3a7bc4cac8d0a52e9331543321b76ceda20df0a7bed490a4048d8a9811a476ac8d0eae6151e7705d76484dd6606bd6f3186b248a6bc56f98a06641bd5a82cb2de1c8eb87eb0839acaaa22cacba4b2d47f6facd5c43e45eb73b7778af40f465c66d88b3185b067e838f115bed756956b683cd3f82917107130a0dcb0629520cffae7d3edcdd5d8a739447b6e819f4864c1a71f378a9343f266162adae57f7b27c5cb17606ce89af722fcaf1f828ebe4bf4c01bd9478309f639b95c513e63e51d1d9a207f8ec8eb3b39f3fdb6dbb8178dfdbe136ebc514ae551435b385240f7d080e01d0b7ff4480f5736efc24468f8a0f044fe6f84e4e8954d29ff5153a130b479e1f45ab50b9554df7736ae46f8f405d3ae75ca6416bba8932850bf057f6fd862154148b45e3ba00dd900b1de69879ae428e1b350d513405c18eddc0f9f4980406482e49828f39ee8c1f7f96920a466fd6bfb0e2d36290bcd3d7f52cd6633b9c89593acd9d2e8a43b982b29faf6251644039785e0a66df01e67da68f8d2764eacea4f3abe5e1ebb42e0db1ab787d028356fe739f966023eb90130afc63e1e947ef1bcc2a70d7e600c9ce109dd6af55eea8b\nresult = valid\nsalt = 324ea1f30b8dc6e13694326da568c57345b6383444fe6bc425fabdf92653fbc1f5158e43bddc5526ca2ee0caeb301977\nsize = 12240\n\n# tcId = 22\n# invalid output size\nikm = 39053d8bdfa97044ceb676ae54563de2\ninfo = cae8a93087e97de1\nokm = \nresult = invalid\nsalt = 85522968a566b7ba10cb8e7a6f10159977e4a572408ace1b65c481ccfdf09532483cf308bba0557c9a72c849780e044c\nsize = 12241\nflags = SizeTooLarge\n\n# tcId = 23\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 6f93965b7399bdcaef06c151056ba14b7392a1521af1145e0c1d05e34b6f19f3\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 24\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 6f93965b7399bdcaef06c151056ba14b7392a1521af1145e0c1d05e34b6f19f3\nresult = valid\nsalt = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 25\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 94190f4f21f412c1d9358264a9dbb5035f94f39f5a503c0f54189b1dff1df637\nresult = valid\nsalt = 329f445e7de8a156cf26a0208dbb028d9de6ef76b8de67ca634f4a5a732138a1bd436a7b345d7a0314c7ed0a00b0d34ecad2cb8bd141e2ecc1c77e237094d55154\nsize = 32\n\n# tcId = 26\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 998ee6c2df90e53c32281303b2860c214d0325928898603e3dab40ae85cd6e66\nresult = valid\nsalt = 8900e95c7464dd4ad187a480befdbac713cf5e049c4aa4918f11e9caa0e07503cbda48921f5779a685dd220e484d6927\nsize = 32\n\n# tcId = 27\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03\nresult = valid\nsalt = e69dcaad55fb0536\nsize = 32\n\n# tcId = 28\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03\nresult = valid\nsalt = e69dcaad55fb05360000000000000000\nsize = 32\n\n# tcId = 29\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000\nsize = 32\n\n# tcId = 30\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03\nresult = valid\nsalt = e69dcaad55fb05360000000000000000000000000000000000000000000", + "00000\nsize = 32\n\n# tcId = 31\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03\nresult = valid\nsalt = e69dcaad55fb05360000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 32\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 33\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 160]\n\n# tcId = 34\nikm = e2865d6bbc1abf6a815067edc4ee7aa33c290d5a\ninfo = \nokm = e0f2f690fd50db3731b19ba8d6a7bbaeb5e9f7fb\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 35\nikm = 8c177ab5f40e9c57203883562f01f174070ccd97\ninfo = \nokm = f94067eaf6df97baacb1b5a519c259b7e9b9322d6da9f71e976611cdc6e7007eadb1d6180ec1ade0bb7b\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 36\nikm = e842a4fc1a147cf2f87de9bd5a42fce6457496f7\ninfo = \nokm = 380c941a86c66affb4694bebec2858c5c1927a6b920f84a6a952a30ba215bc41948c72e90a8017eaa2033d149fb955a2a222c5101eda58c3d7667cd7764f4795\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 37\nikm = 5b870ee1bb97ee83f67fa7335b4a0f9dadc80d12\ninfo = 0a0dfb2a6e051441678788bdec04cc1b63ebe1f4\nokm = 99d9e9b5e7c324f8fff6cd2a2152dc2411457f78\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 38\nikm = 58ea7ab33acff514ec08f41e59c17a3c66c1ceef\ninfo = 1cf9e25bd70c5546ea7a79eaf5d90cacf754c4f0\nokm = 2e1036f7359a52ad08f987e8be907e12f36f0a3fe576e1e27365a33439b4ce23a10f6ce329428cc7f471\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 39\nikm = e8d20934b9d320458f4854e2442e2f0fa092f461\ninfo = 4425999958aa3cc629300c25ab15be8cea7a4277\nokm = d1e7a09a0f77ae7dd5cdb8e568aa53fd4ba63688623079fc8df2a53c9a44275cc61b09091f5997d0c819f89803fb6c990dd6a599f00ff68ab379e7afb29a5b4a\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 40\nikm = dc9e488c684dbf0ac8ff1eefaa0666d413d258f0\ninfo = \nokm = ded7f0b68046268ef0e81b03aa74ee58ea72b670\nresult = valid\nsalt = 9afa7df500d7a17af1f44422d25a62bf\nsize = 20\n\n# tcId = 41\nikm = 34b85c341a04cbade472b3f7dee4de4d1954bf70\ninfo = \nokm = 50f2b92a23e76b1cd51071d9416f4ae497a967068616d55aba15ac025ea56e21a4c63adf9c6b2696d9e9\nresult = valid\nsalt = b066b42acea664350a8448f8e064225f\nsize = 42\n\n# tcId = 42\nikm = 44cc641e09f7d5642f7b6007ca5a1c0813319666\ninfo = \nokm = b1ac58c93111b1e81191f88eb408ab179881f3bb1c171903aa335cfc541ece2f8ea7eeac2df7f86a7c2d867e06a9173538fcd3e38bcb99128d76887e8ffaf17d\nresult = valid\nsalt = 69c0dde6c8e5bd40553a5981fad6ad87\nsize = 64\n\n# tcId = 43\nikm = 88a8880cc2b73e73b3b6ca1d4902caf2128732c3\ninfo = 6dc723df3d26f704067afb2fb6d95a66516d089c\nokm = 43c3e04295d525a0dc49591dc27e4f75699421ac\nresult = valid\nsalt = 0579f690ed32e57a26701a9f6877f243\nsize = 20\n\n# tcId = 44\nikm = 8408668b9d671121b8c7d31113f045c0d7c020fe\ninfo = b4451b0f1a217db703582881e86d8044d5f2e092\nokm = 22ee54eb05ea001854069664ad1ebac22323b0b79b6def905942757d1f038a63e74bcc61b00119d3635b\nresult = valid\nsalt = 679b30e6930a8ea3f076e317b9595d5e\nsize = 42\n\n# tcId = 45\nikm = e6715cc4ee13c4d999d8f8f500243c321f70b0be\ninfo = ef17c9227a5ca654fbdb35dd00dd6dc77b6321de\nokm = 9d1ca84928eaf8cde23028ae306389313265b4380cf85459602d86eae08d32fcad2d6ea589eddaf95545adf856f0fc46902d7ea0656cecedb1cbf2191ac66a54\nresult = valid\nsalt = ecfaca2ea3301a992b4de081d9d3a4cc\nsize = 64\n\n# tcId = 46\nikm = 9a6b88f3f68f5a8e79903b51dcd733abaece1a41\ninfo = \nokm = e15666ec2261badaf8364f4cfff8d21f240bbccc\nresult = valid\nsalt = 0226df3d66ee3abb275eb39c8ec3d3e12e9b87b67f85c552accc4279ec17\nsize = 20\n\n# tcId = 47\nikm = 0b9eaec88b2940a4754e83272cbf47fb6f86aaa1\ninfo = \nokm = 86aab917d334ee079d50ea3e20ab243f06e2e29d2475591e88e048f0d3204cb8a8443671724ad11e5e20\nresult = valid\nsalt = c1616497d49246400ba68242b635c67515d2528ee1c3b71b318b631f9bef\nsize = 42\n\n# tcId = 48\nikm = c4717276e7c7f794c4ee333b2f7a2ab244be9e8c\ninfo = \nokm = 00153d105154d1086f950d7829be7e0d75db97441c88b7f31431f04884dd81b8f4ace2f5be6846f0da1853a1db2f89be090d3453488a12cc052f3234d36c4eb5\nresult = valid\nsalt = af4c63e5b554063e83e37bf730ffa401c696088ccc4f133a8695ffcbf2a9\nsize = 64\n\n# tcId = 49\nikm = 5e43a900ee0d432c5fe6fc81db8d5f81a54e39df\ninfo = 32460280e60910b10abee2e9f80a3dab48acbc59\nokm = 883561d252df369074fcdafe0cad379653fe4aaf\nresult = valid\nsalt = 8cc815009350b0b6a924ed93e73c8f8c57a1105726663b72741b67209c1f\nsize = 20\n\n# tcId = 50\nikm = 070c170fca600aa2b23618150ab9044bff7d4dcf\ninfo = c1b0971fefa0a23cf4b7185879475ebd8d83b9bc\nokm = ddc00ec19f76258aad541e0359465fcdb6a036fb4582e7d283b8ffda0b73a8b1b4988550b67a9182c227\nresult = valid\nsalt = f32a1cddb32693860eeb39a5d190f5667a303d5403712cdcebb575c6563b\nsize = 42\n\n# tcId = 51\nikm = 87a23208df5e66488d23f7aaa066e87bdced8e2b\ninfo = e4d66fa23a6020820013d94d1f8e84a58cba2a82\nokm = fbe18cc5a99e747477fbd7ec3c7f9d65eedc9538cee9a1aa81b0b3b1f199f5f892122734fba185919a64638eabe2c6932fd96270116f55a411a555f5c60d5ceb\nresult = valid\nsalt = 0488ffa08062f1fe83e9c3934f5688a2e17827f898aa5daa2d595f09b245\nsize = 64\n\n# tcId = 52\nikm = 214746af12a669b726364027e9a1cfa40c18f8e0\ninfo = \nokm = 281c2cce7550a0b02b170cea4985ee34666552d219b982389f1082746d4524cf3a8edf13fde8f5d2cecd\nresult = valid\nsalt = f65ab21816c5eaa5c9ce77d58608ab67176d2255438096f4b45779d15c2afda12718ec557bfe161e7fab89ebad4fa634cf73f2d12c884c4583e64d2b59b9d8b9\nsize = 42\n\n# tcId = 53\nikm = d509c509f91d78c33b9d661e6df1992b2b6ae429\ninfo = bea4f60eff1a0c6ab664ff3db2f774347920a482\nokm = 6a800418892df0663b4469108eea9f01ab66dbc7888da7ae95b05c68f61a5dd27b7a7c1857f2fb6c1a99\nresult = valid\nsalt = 95ff4b20ade46bada320316dad7e2b4286e93dfa2a72c6366c5ddfe8ce2ff344729ea56416d5b53074c6d6c4eb4e4873980e5e4a4991d6b1497aef822e16e209\nsize = 42\n\n# tcId = 54\n# maximal output size\nikm = e099aecd5c8f0fe1c5dedf647c5687220faaa64c\ninfo = 0e02ec03576474c1\nokm = 43fe9568d5423d93c5f59789319610e996e82ed97aabeb896d88e92614faf45df0fadc3cf496368a07f562eb8036495556edaf95b06d89f1c095da8c18003a20ca5fbb28891596680b3d9e5518f012142a1ff5bb52f4dccbac7d1db2fcfe308d8fd6444d187833ab9dc603305260604d9acc4bf8bfc5ff82d2e4f3bb25a4ad92c30b9236953e096af57eb7f4ac5aefd447f244478b1576ab7f95354f8d2000d986c607e3d1ebc900bf80b4d6cc013ae122a0876191f287f5b5dec28fde54e66858b9169ebb45529ea1c5004fef0aa85a5cf22117039798a30f2f26fe8623c8536751531f6435cc77e0ac841b884f586509e80e4ca98e3260eb60701aaad62a1a4814f4fba950d1690090f0190cf0927cffd0d3ef1b45a846ab9aa1073036c177eaf86d9f4ef8b5ab0fbecd76ee5a293c5f7843a2028a468a952b0109d720d50afd649306685f26ea407d7464e505905f2383460f6b8113923af6916f43259d83bf833cfed074e6a81a997c1a7f8f2f6eec413e3a3768308bd4292dae0d3452619291ab7f3275333edcd39ad2a390149505b6b02d7bcafb91a1185ade1834613396c63eb00e8126a14332205d7c59f39fe1aebf49a46f94bdcc56e1ae834ba06cab4e9a85bea8f4635b3bf6b332946ae3983dd9ef30773471f6c9d5a604efe2d32f4f40f28b9a609db8e6a3049e6bc961b6aa685d7a789a45cf17826305535afb67116447e8a5ca78813bb0e0978ac1a904e2d1d248c714b81fc1642421b43c6992b82cb457703df3ba7767bffca96143886d7157bb3c7a2362636a5f988e1349d57a10d6eff1303c8e3ccedf9350ef65844a173385cf4e12b3c023d99787a7c1a4b74eff2d8da06b6ae69cf71328fc613e68d408e7eaf3b9672525ee72c593e1131a72e3837daad27177a8480d6c0dbe3c61e6b971922ca3f60019e52d648c5981b1da133c1866e9a0fb953383f47441627bab17df6479a9c33547f8fb8c21e555730289d75b48d779b63f4555501220707df4b550a87f356455c516b3e519acb4cd3aff720c60181aa553f0a1a7ba5b2798f988f876e789ebaa32da2ca24b06449cebec9b739ff82ce9d0af6b20271492b53f8cfd00583bc6535f6a778f0a9fc1388b12323e631976ec6c7d69c5a0af7b65f9e2a1553b2104d83de01e98cb80a857e7e7339be2433ed24afbb7b1a663ca8b9b8b0bd21e63089b8ccf49c9669d0dbf6fd2973a0f2a5925e29574e99902d8bfb49193b929edb920d5772f8aae2334ec8efed4287162cf6a14", + "dde23d325222e82f760cc8da3e2453c970c9ca819abcb73e6697a0627090453b8c6c471134125e96416c318f06ddee0824159a7f7be8beb817ff49bd29f2d4d333f7a69cff82ae84076aea16d9cc1bed38b7c2d598428fd0529fdc8082848527d81267511ef9bd420f54540e39c8d648983eb08b2710c7c6456dca567b936d4d55fd0e468a44d0bc469dcd386de6d063a4487e9a17dfe680a4c6c9bc0543152074e9405758fd8036ba74c4f9bbcd3d9518a853f55494960777d60f0bcedadacac8af588fdfa5b68416fd2a7a3c2337bf2c114b2ed39e4b23e461106011b5ca3f13b1d78d2531bf21fec33cfb9f4eb1ef7cca539ce1204cae29239c85e81caebe4c5a01cfe664b5433f95ff1835835068ba7ee15cb3fb7d69187a70e01492454a1b7b00bf270d53fb8deda6f3daab1b996ea3d6ffa3f4bb6cf3dab0d044528183265bc644fce34f8bd1d98cb093447a257bc1ca474f2d3181011310b0c912da67a640b8a7b06b499f8d1d77fed129b47e2685055b1dbe0e831c5e104d11f92a005e2ad67e34c47cf462f867d1d2336c0694d148fb4526ddac66b9f6153c5ea91ccdbff4d2589f53191fc49a595bfada361efd20e9190a5e172e1086df63f6eeb719723cae815b2e2ff76da9c8d359c604f79fb4134bbee3382cb4a2e7ee318f25ddf0097b0e42dcfc49ebdf3467602f7d02040f18b6ed7cbd0d78bc2421795a4072880787db163dd09fc5dabcc35dc557dc68bbaa6176c10772aa7007c0b838dccb22b18750c00a5a1a1a27fac1c4e2b1b6f3923ae004d3d03555224cc54349d2fc9377fb8ce42fc2e246d9c2f2634301018f96bdff0a1d671c0377405e83ffbfa57de8aefcc5de062eb18d0ff922b3a999d0854cec38b276cabe98776c93cc41b5fd345201e1901507fa1e0c1770061263f0559d02a36d0af81f25b9682b38cad3ffe11b5991b1e6967939497424e8320168bd24209d71b0426f1c8d6e86f0377abe4a97e6ac72c9f18ed1929b07c85dd869585e30a30483df52f28545a5068577bd37286bc4b6ee40707b88ffae61344ed7f5723f07fd772d70141ab0a4bc06e3e87e4289176cd65bcd634a2a62075bd759e90c524808909aff506908e659bc1e3b3714f21a9b5c0c28f4232c96a9abe26181b4b27c2409e648a47b3164a8a1c8914835de3cf7eeb630474506ec12585c2d8eb27d692c2b61202a646d4793499ec9217ecd4361b0eaa6514e5483f16be529e2a300f940c94837fc2c68a6a5a71999b6dadbeff5f277a601984cfb74f3659c9c6fd661fecb7a39fdadeb1be5c68ed53eada42deb182445d8def28143147bfba24d65d43978277bdc6137947d6a0ee20ef78603b22919589292fc44e7bfbadda845c626cab6cff4fb4dc6a616da9905f73e16a1b923ab545caa3b11a8edecd9b6ca2812bdc8c49126588ed67aae8066fdbdb190a76c84b9bb49b6d689353ff3dac753dcadd7591c4708ee130f547a731f6880d3e2906154151a71b558d2b6d94801dc7a569c1b030123cee2afbcf121c3868424ab76b0870171cbfa00c15a746f8560e9faa7a35d91b42394ead450eba96735a0c676958fe48ffd9732b21236ea54c9d8c666615866179467b01d3c4e86ede658a3d611fb51340608622429359c7e2eff5480e5d00e948f7dee5da8ddf5a40720d85449142d5440366618dccbeef36a8f47410c344fb9731f86a2ffb4e3706f337c2abe86fd5b0311178b40c4d083d940fda9262bfcf1712a8b30bfb226791a57e0b9138e16cb850182d395433129b96b921b10faf1059c081db4896ae24045c28f9b4b12e7997d52523e3e0cf1e519521ae529146da05bc271fe8f2efaddb82dce5166ddefc86dc790b75ba9ab9458a7e32afb9b4510f9cb419ffd2f92ca479d8e497b87681d895e6536890b9a01d2af13f2a6767b428878812f7a179fe25dc27a45316d9274f49c5510ab2495ddb946d7080aeec72ea81f9b391953d748dcc4c74d5eee53d4dc69269e8f4ceca3d4dbf416840a3b02bee2b4cab18b8e5e88ee4cab4942927ac63eba64f1fb59e23397aa43a0c0f99c2b27ad51a968d61f1c9784e7122d5e63771fd68f9e030f9c26b314c037abf125366b6f199d92212017feefe878f534b32e5f5b18fdfa2edccc85488e5ea4220e8cbe34a15a4b34f1d48291777944e7cfeaefe6d3c3cdc19d216cace0383ccaf7a6fc30c267f01a915e7d8d4dddc53f2c41daf293eb7100b1c9258214669d1de4ba149c37c3a70bc2f4a7cf15d74c81c3bc5f9976677014e4e08e1a23b25790e8b15631044323a26180db21c97a53cba0d5c5a8793df6ad413da4891b9ba403bc1c798fc3bd88435b7170a2e065ae2055ef274d893a0b4ef962c9d92734032d218055ae5be5632f1d3234bb0c4fb4dd8eb2e6bce4fcea9488bc6d59259d99f273a9d76f8fd017b50d43d2d59c7752a26a94ea7e530551bcc09113becd2cfa052ca28e8ef8dbd535a9f859293b64d29a08a01e9b4ad2e4f92c69eb444fe79474a42855bae22d8a38fed765a13df2cc703d59564d55a52d6d3832f1ccdb7ea398934d67fbd4a5584b85b9d3fe2f1c06d76e1ac39a51e994e6217b98d608def8d2c3466bfdb13237ab93987a706ba8090e49a3acaa52fd78d2871f19fec9bb719f7423c566bd34f27f621fa65275457585de575d2af76136698e7f110869c0f71365765d650d3f5dfa7d871be76e761da0e533b0cc1c4acfff0e2ac5bf66c80752520eeab83b43da7e73b1e0c576406de8f2797a5003cdb66eb3a0222de073050ef2afb8fe4b18cba0654bfb8e03b48b78450c80c043df5175859320f5fca3950f226bbc5fc9a1bb25debd1aea9778ac6629840bd584f1d7f5ef9c711ae9f15830fa694660a0d8a890a5f93866ea78476bb0f1de1208eea7bf231dc0274dc496112de0138751dee67f8265dd2efca486a02aaf676e289f7cd994a534c0a062ffbbe1bf1d5aa9bd2b2ca1b864b1ab545bb3468acdb9e4394a499300b0579e475e70f157897f08dfff7fb069e0d72b361e0e5abc4486053ede6b92eadbc784335ffc54e5bc702b0fcd464fe947f29b2ffb4433369bbcb639bc82d3594666c672a57a596359eeb3bde01667d0f43869ff3d818ff715f402be0ed56517934a650f98eba6b15d002249170ed0409fd1fdb3bd241f1a160e1a06dc411e05c55a0d4fefa3b7b5fcca49882f6a83d4d69a23885be5fec6edc77c082456cfa013285979c1b1e157ed37c3c1d4f6bbae36c0f12e1cf82e18cdbf602a7640730f6f53759118aec87cc1ace66298e7fbc671da9d204568c44a0040fb6735b2ba7f1bb6d2fdbda38d04b1ae3ef796cafb1ec98505a3e552361d2950042922f0d649a68953c993bd7ee9cd7ddf2decd0b48213b3db80b640b5b6eb30d2ad36c189ad89d1556db9d016adca7ca00c42471c3f282113c0400cc2ab4016a629d7bf141395584b30c1d70ac53a425894402ab34445948d809c26390e1308ea54f412270f9a9bf24550243d3fd27ab142d0c309ab1511aa417899a123a8a0e2bbaba9758e959667d3572c60113461b6ae43c536d13762748e7ebd30e39ccf5717828038ac3697c7d9af55ed9b82befd8ff67392cd6365419fc7c8c89edead81580ac50108f17ae6b3924221e4ddee45d873de3f024c24838f4723dac9ebd14deec8380682b3a62bae71b44d0d34226502e869cd41fcd41b922e54369ea5cd3c95254d690001caaddae3fe16cf2f44b583c5b8194a2e3a3e09429f8fe6f5f28eba06cb242946ee4dc28f32b7025a05b395ad5072db27eed26ca703bc29325d1bf001d21b26b1cc744e7d87aaf07669333acd066ebf0f27c05631ab204622fc77a06741d5395e42d7ba83d7d59b386aeffc2d93170920adc3066303e1e87c75058a7fa3656505dd4d0fa29d970d5f5220d8618c50e704b03ec5e544ee8b91c028d4cbcc8fe1a52e1c15abbbb7ca810ce45053606b5d6ce21e8d8caa7d496bee2e40d36565def4ee5ff9ef0442ffb16a16998c1c43096dac816976df6e39940cb9097bdc469a567552c485b0e5df1c40ebbe41a90c6df1f6be3754c3946f9e797b8be869fbb195aa3748592298caf24cf0deff33d61ab2bb0b805373df982aedb81a621c58bc664b79bf1d87b298cdc5e5066743339c1f3efe110ed24cfd6655e1d9a3fb243aa4d26dcbbfd7665fe5a090de4be79019786f561a8292fb4434441a68e17edf77c464dff50b7cc5ad4799d43ebb51a23dea7b760d626d041c8bbb96aa6b20e66260c0fcde1e78cc59a5a9ffbc5b409a974c42abf165ba591b4299c3e86ef331c4f71131bedf1a913eeff92da531971698c8884a3f33b43622a9077d118a77645558202ccb437a347051ceda13f2d44f63c24da270bc350f80cbf4ed02a16ca9b5eb75f7e8511a64d16eabaedb6c5a7854cee19b54dd7e37ae423a84889f8f926b5ce07337c023b56cdd09a9f219419630cae32decca6c26e52ca35a90c2e258330982b9896f6664c435ad9319b895e92f310292f3b7e575ec624a65f9258ea6465d5d074d730bfe7d6b19a8d7071a133778cad36b890117f9e75e2c3e755d82756e2f664851f32bb3d48c67a2db19f29a307bdf9b05dce5250a4cb79e48536584b0334cd0f60c256c1d5f0439a0c2f0b44fd1a901a34603cd4692e63439e3374a778f6d7b6186f5f48d7900d6d227bed0b5ea16e0f6b9962adf944b31ab6a4ab5a6f41fa7be2fb605ec181db786f88ac981ba03333f287544e77bcc2f1ff6156099e09acc0a7530a0d7f5e8b45ef6eabd288d26ccc6abe9649f49d4045bf4e6f5e6fdbb735773f58b8e23a108c8229802b20d1252aed2f049e04a83be36406386919770004858fd1133fa4d8721e5caad10ddac2236adcbef269092f2734a0c84be8c55ed3cd42c1920b44832858aded480cb8aaf5104849d67026fd583cffe083b2761baa445f37fcc8205078574e9a746b31a732ff50cc4872d7e0265892a4d7c51dd509099d3682f961689a936e2354e0c4c49e57883b7f8fbb4901e9a8d426d4d85cf7e6280523b372309cde7628f993a19055175f3d959ac2e162aac22b0d4063caae9e6db1e63a866e59554f7dcf887388cdee8eca6608972dcd587a652bb3f75186c44fa32d1cefc4bf593b5c3fb728a898b315f3483285283012738c2e9555ef6dc22309898cab2c6dc75b54f3c1410948cf6c37b6127d89ff0cfdd6b2e512d7a8b150f32c15db6a1443a73907e3c0fdcaeb1df2162823f88dc6c526054686dd57dff1c032f695761397a85181c8817c1bad81ec38230d731d285a0e116eed03b1b03621835cc9143f2a9eae442a7d70e818f701e0e885a794f2afbbb35c5c7210f5f28e356d684bcea9e53a2088052aae19b36870a115855a7df1db48a55a0d3f94929afd81b7dc3973c4749904919a520d7aa664957990ef92a82116a51d5452043d051c29ad36a1c4712c56b92048ec4995c0510abad4f84022eb00037d52ac9133cd1c1e78db7bc57776342f53790a8eb22869eb0868804b753179198c463661faecda241f6c05fdd5236fb802689c35e45087de051f134bc2349ff3ff9f1ad3c33779e607e04478b59ff4b74e4d11cd99235259ef185e7d9bd262c935204c55485b4407b58b21cde59e43d5ad6b9760be9e2cafc676164f99fa909c7b50b3b97367d824529f074c7ae0ec258245be73f4e1395a8bfcb0fbe2f10c90d5b912c6c211d2a9d33d7c0fb31a6251e8b5c48158b81e4ae5fac00dc898eeac6b6b636660a1087f87d", + "b043d0ee0ff9a4667c14e18d886db31a5c10b2b17cfc6d97673ed5f7d72b9aab8b0d8ad5fa66ebf32422431dd8783024c986942d380ec48e3e0e0c5faa94355e2093df1fdb027e8ca52d2b997dfc77f005c2cfc331c401a0b00a013b4c8b3584adac06c28549491914366128d6d2f59f42f9e6905bc58a9253df7b95bee53d40264d9c16ff36d880d1f6e477ec09a958ad90ee89464cbb46e7efaff67426abccac3e05c6ff5e6c6f278164d26e623abe8f9d376e9285a80406cce1fc4de26fa8af5311137fcbeda51ef1767a2ebc76755da10818e9a2bbbb2ccccdf5f72de6d4fc7327a9e388e722eb213b85a9be3bbcfe119137e9c8abdeb72bd8c4448b68314b754603ecc846eeaa85f979e6737e325b0501586cba6ca9c2bac24421570eaf9ee6c897689e8130306df9a10436b50d017464419d535c382becbb4da5071cffedd10c902ce0a7a9e181cb0dc775924c66a516c5effb438cc754c9ffa186598153616ce8858fe534126800f1ff9df6116d1dff074736bacec45420494fd0455929c2a33cd7db8cf063e46772b70eb996bacbb7aaab75eeae21944041ec35a4c8564dc1280d6af8b8e598f8f5bf5a422007c3145b31b8ff3d374b49f4f63e219534f26bcf88b6eb10cdf0bf824e4b115997424dafd2e3f967a51a21e7bfcec437b07a212f355cf1dcb337f01bb029342605e3ce90e6fbdd41fb56f516646f4fc9bbebb650057c7f62610aba4ba2a03d572e08ac97769804c0dbce322e008a207f155d93a1bd949aeacd92a6fedd76b1c11c75099ed3bbec327570534134d5e316253fce81720e735af68ce89e8b1671ebe2aaa932d5568c530d7fc9aad77a09e0ebb3c7c72e5feedac49e653e6754b33aee3d8306e4943ae95d398c0ce227e87cd4ddf973346bc733e2b4d7906dab53639f138acf5bfb700d299cbb124c2f77fda5b44a832f2f6740f32c3fba0becacc4c579e3ffaa086d4c1415119691fb855347183f46f64718c6c5f45b167e6639506675fa0c22cecb539f2926b793dd730a788d87aca9abe31eb210b5abf00133238bb1222ff31efc5917f065130f6991b59a3ac4f82924438ed576665a096a5adada8b3e3842be65b1ec1e636af0859fe9ac1bcf3def535a2ad650c428c514139085a6189716a0bf7c3c8f7fa20858d81985213faeb96ea1e4a9ed39a629d2537850fb56052ba7aeebe7fb5f355e4fd17e6d452c94f67ce4bf6b2fd4e91a8a1089f689ad2c1088bfd38d9dc71750cc5836c5cc4630d48f2d9b237d3d6700af559c5f144a207c625fac2db4dcdf03a157603daf1c1cb5f76afe0fcfee609c1ec602f20ffab7fdb9a6f18e9df3cc75e9879c029ae69677b9e4f1bb3555c2f0bbbd8a398ab3004609707fc6a3d062d4b8c4476b433bf273f2d1a8a5193981ec52e4b8361811f0d7d9bbbb4ff86fc04a1d6c7b3cf4753405f12c0e0e53c6d410aaeedbb6f8a1604370d354be1ee0929a90e36fb4e3e5bc8f8491c7f1b563fbdb66296bcdef1d67129ffce4d1083b527710865730370282244537ec059962e4e48286830c89feef9d20e382b1de2cd0875bcd66f6a18b0a27b261b4aec64864648971e299b019e3a8f6b65a2725af4caf7219a38182e3c058d775871032a4ea80795b330e4445a3099e067ebc01461cd439f77f9635517e55cc274304d4a0c222299773d6b2a24c02b8271954b797c370fb3760d3f493f886cb3f4f7851c35ae22e6d531cd339daece8984188cc85848b4ffdb624506e1560fece36f9e2ee27746ef5f1212822f8aa917ff17504457d054fb934e4fe21772636d71f9e255680a9da2c5a937d16a477e1637562bd1dadf402cb91f4744dcf16733bcbad47e09592f15e8c1fc5f0a71ba9d7c9e9bba0d4f807ecf913986ecc88c4c3571e5bff8ad314585b38d265a1379d1f785c30866b2ff5fb42ed869070785f3fd5215631fb83c9cd909a996dc7e957e1b253138edad231c1e8da892733afe567e6e0923572d57ee6dcb13d50a5b09e32d45319dbae84d93b7e2987cec9cf4da686d823b09432f9cf09adedda9918fd1aedbcf06b0c6753d4dfd27797044e93cac49d04a3af016b2b1c553e843af640274a2a06840728c8f0c26dfe8dbf06d1c1866dd290eb45e1f97ee617054499b461e054883b1ce866facf11e001027ea9342941eb47c3203c6a40457a4da350fa2f454d0b2000a081f86ae7f2fc5aafaf1a17f22bbea02bf3822dad0723384d4a08442aac709ee43873eaa1d2044e98e952667c2ecf14c754d642b2810b902a8ce8784a54f37fa3f4cca6853fc49ddf08510d6f54b803a48b4e0dfbecd70af80e74cef54d21341476b5d3bc8be46f2c4222c24524c781ec698dbaf4f2fdee02f0a183bfe82c1b743b148b17824654e38220a187c74cd4dae0c45056a446950ac7886ee71d397c2b46b07ebb07979e6c644a7c6bf1f6f94597a3b8bfd5285a9faf94fbe7e13cad9802e9667c031455ecc4e4f33cfb67b9a7e2bb6cc099316e9ad7dd7bf1027d2de68c91024863193a70a6cf900ad60e1da8c639af32a0542735deeb11294169d0bb10c4811daf7d2715f89a9fbb4904f823545747f291b977e2b4c2f825953d39b392408166ba8f58e8978543c420cc33f3c3b99cf28c9aab2a891f44ac28a6577dac4b2abbb71634b9f1f098836163355f95c9a614a913405f2fa811593434644eccbce541dc59a2b2cf76f021d82fe5d511a3b6d2ee80b66f1c1d5aaf57589ce3d340afcbbd09f687921725663e4bae152d14c6a0d5ac944c4194e94b0ed6042aa1c0084cb95111d162904ac9bb8ec2bd65b62ecdcceda8bb937fcf9e2f76c2e282cdce8b8ddeac3dab93a8f08c22ced1ca8c230e0ed34f488a20545db5e40f50b931380710a1390d24381a74e6c872548587f0d36c99d0bec08d8ef60f653e64a3aea222ca5de85d750e7cdd6a92df38cbd3f0127e971cb477528dd9639594210dd69825d4b1d6ccb16f3c6945e7a27953c634f3be93ed6a5d5adc62f58de6a34404ab0f154708cc98e031c621784bb76daf022cf6c77f64b080409022dee0b0beb40135f8f8c094798ee83bdaa0f414f3254906c3e244340fc5f940f322fb02d4d1d9c7423dbf1f0ed2d009644ce689eee320e2926f8ca4c360180449705151be7e2c41b1db926c8878b32a46c3ab42e96f12a717f2df77f61a5790865a18ef45199b0b5b21033061e532a17f16a7efb8884340762eec930a02808b9488e080c0c7f86f70e6d245eec1bfde72751918336104947935b37368db7f81958e6856184a0f1be47d6c5ce5aa15980fd226e1dd05cf0c0db76ed9dce2f1f2801fbcc7a2f4ad23ea273740c17573834b9e92ab2368e57360acdbb6fd97887e2600d71db902c3feb4318caa4ca35ec2d02e7b3fbe3378e9ac98286961b877e2e6f0322b61d2e43989cd846085de89635e207b900e369f455b1519ad035f4d66e4a761e1f8438697f3e6743143931e53d1e0d3f5a4b96f6d0762d26728a067d433350b6506775f9e20669e9bac120a02390f2032dce2600aa4e20fa2a7d9513fdbb4c105a9f6a3cea5dfaa19cf7da2edc5959fd5b7d4bf8d7792e0f5d123598e6ef45bb205a1421899f95c6ccb888f371b5cb2c0eb4eab7241ea0d8c0521a4eba74bf6dbda1a4b7aecf64309fe785063958ae7db568fe89523a3c54c378e565b9861f4d853cfa19e2999c6b3418cfbcabad15121fa27f515717d27f197f46d60cb14985f288d279660636c02006a0721b819b0177566843430be4527d27a18b79c677df6f6a3013975e53865bac04acecc5c24c4e90c7179796d1de28bbfaa0542f05b669c2493d04713e18333f6ab5cfd2a3a3c3801a7313887200a757ae3c87ab7f4c1c79d5202ddf56cd0ef7b35a71618e761824274696aeec8b12b21f17d17c4a0cd03848896ff4cf846dded27512cc17eb66d59a7307ccf46a6a4b9ee707a096977c2787d86c4664375292d163e598d2efee1257ec6e5d557cda9ff687216a398482baecdc1fe402244a135df0b0874919794849e9da7c5a6863d5cf83fa6c998cb00c3e70462854eaf80774785f6fb55cb1215a04776532ae403db7409a536e931fa15f479e0f7492301c6219557b54882bc634a857d2f2b1601cf4d345b326ced91b40e6e500030d2cdba5901719ed395381e13ebbac90e80f66c4e7520247f07ca941846a90238735a4a7ca21909d858eb2af54f5f52128339cf5fb2af060f02d4668d81c98f8e14501b9edf0dd766cda58da7b6947499249f6c4f3eb38a56457dcb70c5680e29992d36d8a0045a9c942136a9eaf134af71434c5b9c0d6a2820a365605f7578c48796f7e4de9600d2eea8d43d37714461b4412b306c8712e517226d6a190ee73ce529a3b284f69b6eac34dd03a68548fbc3dd7258a26fe2ddbba69bdcf654bac8b140a1b2c3ee788c539d3da52addb21b1f3e5af8fd594ee1d140746da32f5e8c64f9a9643fce278be2cbb1d1702b033a58319eb061c7034f5ce6e967cc9de6451b33a5b0f95f2c11417bebf02cbcf3913628a09b54c47d60e3dc15445c1d430c9e76819948e88c476d3fc8bd3afa506edb216773bc2cc2e9f87b410fe6fa9d3d323d185fcfc1c40943c1dab531bd0e8939c80a75470b012fcb4afe6d83a32b85c95cbc746c47168da969f67c4b2c348da9e3c6da46882188d28143dc6f68d2f0c106cecbe327091368f597549e027c9431899510bbcddc682fd41777b8a497ac627835c7dc97fa1ce161d849fa05cccb644b0bda99be6ef27a0a08ee6a3b0e61bd1ba0ecaca0f39acdd09948cb09fbf9fa686c535bb0a7227923522192ce2c8611f45aa2850745ea6572d167ab450ece7c982226b01a0359ca4518792e26deec16211ce5138868bce7c4cfa6129ce071efb7f6ccb0e99b848ad3a586c2ad77c5e21d4007c56787dcf56ca8f910e395434092e80273be4081241f02649db8e1a6a5757e4d213714089aaf044a2ed0b181a4c79d48d529eb0edb79dd87a2c9366da1b3e0960860516ceaaf0889c2c2160a5818a13d682c8b81ee3318c5a33ca0359a2d4b69f60595ac0b19e2795e0ac5e6235b7b7fa849d1c01682c01ee0c84bbe5f336f07c671db9b239204fbaa6874723b780196360f9a4b8b7d6d7a4bb8d91b5e620e901cf4d23a2111cec6b4e2882637886fe026ae2470f0a86a6422057ffbd152a9490b572d48dc4c93c9d052ef1c86d5704b4b04709e4a7a59bdb2486b3f2d0b84d31e44cae3d51e9efa35d97c8070678c76376bc4a9b6e40884a9ca5203c69e18ccd0140605c5551151e5ca037deab9a5cd8514f5515363228c30cac1591ea6fb5fcc7957a7ab3ad157aedf0348008cd8add6474f5e4d65a305cba5c01c2f5003af45a018c0cc24f07683e907013cd09dfcf82068adbd68521319a2c6661f495ee3c164334358af499fbd225502219882d7c7ca82220e83fd9496cca4f18a129b53d490254475e0332fb949fd8141eeebbc3841fd3478c4af60e205ca43ba378e42abce20fdaf7dc4a9491ee8d3fd74ec5f6e7e9b2e6467a452336bbda0d8fde7ce783d973a9e1343411746f7288975ab20749d7f75ba34ed496e597675a99de38db3a58eec2b31e1ac9ed1fe8512b33a453d98bb1bca29b5784264a18d4a51700685c69706800eee7a27c17e8536812aa0b5ba16ef8622ba0d42334311e054166ef6fa843c09ca92402510849375c209f2e7afbef5938cc7a4cb194b488d2e42b650f559200d0f1d2f087a3d26cfc4c9d13ce0d83cc2ff35b3", + "655b25b2fb8064235ca4364495e0fd017eed4f854b8929326e8c68b985b1c330ee05fd63b063f58871f48e25218798be5700b7313967572db57125cea82d3e4a366f559ec556ee116b19144965574f03d3596bc56431fb051a882f4d61d4b9eda13b96c48310609f1bf7502723a0b4574ad3f6427138151fc59e1cbdd8bcde532d41459b42f04a0f99623f9aa8eb33ec591dcdc88b026753515411bc8ad4ad75530cff0e4da879203c715fae5ff628546dd5cb6c365afaaf01fe0373ab5f4e373a8b6d0634ff5db6f7da3fcae6334bd7887021e687a8187be9bfb64b4c2d4bcb0907cbf38272945e26ffbe37457efa4799ebbf271df4bf49b70254094f14065efd2136d75c19485f32cdb523dd68f04b2e17fb0b63b10b38eb4d219ea38b7e95178a6c54b15ef70c4f8acbc17f487ee9a4331ab92625b544f74c80ef92903a524824ec3029489a93f9321f8160a80b551d764329d55ffd16b4b2c3be632c9733dae71d16d8d46bf1222b33b293e9b218d3e6c1d55c331966bdaa2ab822c1cb1843e83f9cc06df7a207986430a9fde3fced65ef1591541480d45acaeaacba1ccfa40680a8c736d8a949ac30c10f9776fc584c7a161e51c5f20a523559d1ba2d96834fbb688ae0a1cf5a64a95e25e7eece6dd512196115d8d0e01dcbaa9f7c6f23ecddec8354464408857a61d11b349a550dc9cdd52e536bbb8fe21f9bac950146c54f8fa1bdc855aacaad455a9d86db792c502712b32855820b468701c22108976758f1a4b5a7aaf09934e81687e02c1bcdbe99dfc6f6a3af065c817af159fc337bce1078881f72518cff30d22b2029cb01c8fbe012d370eb443d3116e700b09dd9affd7db12dbc7931c63a44cd95c29289bc4ecaf9de37c1b8b70300daabd4fc9e0c3718610f63cec51217150544449cd45387612462e04b2f200149424f5fd9584dbb6b32a1397c68d89b3e4700d61fd489359faf812dbb21e4e63de0c810dbadf84c9a90d18aeb5d104b689e901815eb49ed249f921e7d3218cda3d717c9fa39e07b40d399ba6b74eb030d5abb7736d70eb2262e0dc048402a7aecb30ce6a077a09b50c3a475fcac29b3c171b1cb8e01dd3b8d4378aaeaa9efa431de7c2fdb097b92c8cb7942d204a4f3ffa6832d97e784d2e5225a149d012bd9932397647663de738d3fd805d7e735b36f375c1a26be760e96198bcaa0a22a50c16d2975bf00228ba35f6d76734a182e0efcfbce1b174270a5094560a61d1376b39d8b8f41a9bd57e1665248c13dbb0e39e4ec776c7914d62045821482da7b9f8da5f7fe87e94ff93f62c1dfb84ed8b38d6555d3129248d5520da73abfa37468d6c39b795271e4e7fa24249fb8ece5235386c7a0d9b149e6fe6b296cdb9017e0724f3b34da6315624717b13dd43e7a80831c9edfd7e58aeb136de554eda1ea13f17a6943dc7f946535f8ffe95329d3923d45caae98c7dbac64dc5d0d1c62176ffc42e2dd184f781a7eea698b9731d5ae3357783a838918d562c5436d353ac241b38fe6e6c045981ff216e9e4f8769992ab3d27d462944e2167b0a27b84d083fe5bc04db1730780004d03f9862a5b27b9719623d6006dabb7201cb763f20d29f16f8f80f2506bbdc2448483fe9e515af8fa4e5c199a232429d4882e64f07e90ad939066c60e23c2a9bdf2b875a490b2556b1b4966feac8cbc212d1d4ab24094401b90b733578d8be20e03b9aed8b67b14ec5744af7d0fe6cbe490e689969c79c813344a07d26c23b18589b040688107a936bd30b1ce7dd6af62a7d33a8bd287dbdbf34e754dbfacff62d05fe8526b53e0ebd8b41eb442d4416dbaa621ed9bbb97709f08c85da603d39d6ea42e6465e1e4f8ffe03bfd0865b6bf13755a61b3f8e3937d917102497c77b9b21a3d67b7d393f27753369f6b488eba203b80c7ecc723aaba839c3957805429bca5b159daa39739fbbe7e32bb785ccc1fff186f85d842e2f22a7a9af3ef93739b0de86cd56d82e89b2fe82489d80553dc4a9e55f28af51e041a13eac68020c17093394dfafb75a79aad21d9034cd3845167b0fc5178b4c8015d7328525a90b64f310ba6668cd5f76c25cda4ed34a4a16158b2cea8317337214a7a2fc9959b54814abe77729faca87ba2db39934480e5e988b2709544564092f57d95a5f8dd0695e1e06e695e371737674e6bdc18acd6595a970aed7bd236bbd313bd857cd96148200d81e04c9e7f5419d4be68f3b41dc8ba8392614eb3170bb5a42bbd01a842f72f3be740d77fe0c5ea41b84a5065bbf97fb429d9a4e33d0d5f8a76954f46ab9d1e15422b29ab283161e4a608292531bff1e15e4b2a77d0ba49ef863f5ac8886dcd5938c3ecc8c1060d05ed917c03fbb316d975e64c5d869d82038f9cdfe960e8b2d90809527b75872c205b49a4f9322784a0f788affd5ffa6877820e96125f8d865c7137a04a4d75add2075c3d739193d53c2e018ed2f37a428e76f68941eed83c1dadd95e05ed9b9d768ca9ff6fa041651c2927e7a445b7c1d3766b82d864d3ad56bb2cc8dd35513f1f6aff6de7e9fd62736ad7d742267be35bbd91b0f06e0d2bc395f4d6199421e83ce840a31caa3d62a2f9f94071fdfa4320d46f3612646177c9cec0d1cd5def90e01d1b82a27a22d0b1dca7c383b9aae588ae7b363b864a91871d737252e973f4362f425a8e422889994f4cf047e61652e94dd71e2b39a04664758aac55d17a6f3f26abe24b6fe9ad5e678591adc1ede8cc67a1aff4ecb1463b727b54749ef6c7c7a4c17440172be36e9639098d561d72d4dbc6f2705646911d603605a342ec1984a5cb09930da7ded78f96bf44bfa7223f6ff2cf7c262ff2603160b07c0b8933e2ddc82a0bf91788fbcbe11552550ee00b70ea47f4f569f1013461e047a57ffe3a222dbc5ecd28c95125c3e09b8c6d360043ef40382cca645b93c1d0a2496d7b8ad3bae37985494637a4001d6b61aa7d5cde2ee7af14249b9ab4655ce5b76a529969d7f5ea6e5d0045585e28ec6b91781598aec0e386b3cab3640a69f4cf710b700d3a4a39906b481a91b804072cec90c616d3ad6d7bc365591b6a4e85baa1c2ac6d923518440293f2eeec4c7ad523e30686f24cde1ee619d86e15f4dbbcdc294a315ea7b0652020c10c2189b28028993af3873dee52ef4c8cf7ce4c97457d775ee0ccecd339b83196a7da32fa91fe00db77a242f728f2cb25b91a03a7933acf525a79c63cf88968f78ec078810a5a60718222fde90c09938f2b0b19ce269b3f5123e61418a7f86586af4260060208b5e0a2ece6f01e955ed827da6ff33f93570a6fbd79082abffdb6f45192d7c2e3d4cc8ac868d284de6843b403bec58bb3ee3570fcb6932ca3d5e0aacf4b1c7ea785e59d4ed10a43e08da8e402861ac9bd1e1a110051ed5282ab2016a84da4e76ed457ee1de45423f56f41281174bc897736888852a5f4a01b4b796eb6fecdaf8584ce1d982ad633a51cedaebf602ef3298ea9b63002a21fb3dee97d89ced945572e37c1184a1813895b23e506a8c974db7e7c6f5fe3fa8dc22816a982cca48d052c0a7d8ec4cd37acb86a9578518e9065c61860f3804fcfc385e0a7bcd772267b8cf366046a61f66c19aeb501cb138793b0de11cdeda36846c6b76a5c2d7b0d4b2f7a7241b2f5bf48d1cfcf0a65b468ef307e55f60d0289be6f66a5c36fa4fed684ddeb97b0d85ac1bb7335c145c35c070b80518441251dafd98a796d1cbc464e038d53aeadba1447a7d00f6baba73b7d6084eff55eb4875c8e16b80c1260a1c45a888801277a4ba4b725a4d5b7d715e133bb38f5ff98efbf07a248ff384badcdcc78bbfb085234f59a415f754deaddd0080d08e1366baa15cd0ae6a4dbd258069a7d328c76522624c78a624c166b486470c1ac977c0763386f307dcbf8f06e2c2f4cf4cde9ba620dda2ec703ab7041e3e376e9107056098709d7fce847352836e65d1af6ca5c1d879e24522b391760fd36643b9f7bdcd1e4028f6401e09187e387eda8817a1e230820f943b8b612628efae93022c28b4f35fd7e64156c77f47804cbde126edd4e3bff900b809220df97f9fcf61ec77e21936d990c8d14f5309807f7d3feb28479cabd370145b8b2d04cf6e29a16333343577e4299dc3f58183813a5e45b6dfc806fcb765c57684401cfec6c8df3e669931913953847e733c6b61d858b42f65594f165cade5384265664f808d5596a67b4fae95cd3c564906357d64da843a3993f344d4b27bd79156a1666c60ae9e1bc07c278d9e176e9fd8613592f1c99f4dd73f32cf2787a1a065a1ace9c3ad2bfe0fbc82f98274ac5bc561f426b5979309ba3fcb68ebecfb58f6b059eb9694236e635915bc0d8315ceac966b633f2fd810c42424c5ac887fda243f94ea535e70596015c4e2664a58bc7479f0c3d038fa8be0b62\nresult = valid\nsalt = a8febd4ecfa01739cedb1136c9a7fa10362e8f7ee6556fe0e2dad1740e1ed44f5c95b6ac57aeaf509af0732c0b0390d4\nsize = 12240\n\n# tcId = 55\n# invalid output size\nikm = 487df211f042c4a8e2e50a4929d4bc302e3584b0\ninfo = 943c7f0cbda70cf2\nokm = \nresult = invalid\nsalt = e01bc4ca3df96a1d158434ec7519550d485ec22d45f827c5f1f9c20036591089a8b6dbec705fd80266fac62a66c9681c\nsize = 12241\nflags = SizeTooLarge\n\n# tcId = 56\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = ee8362786c0c8f19b159b49c0ec33438929d4575a7a319a99386392ac07bef44\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 57\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = ee8362786c0c8f19b159b49c0ec33438929d4575a7a319a99386392ac07bef44\nresult = valid\nsalt = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 58\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 7e060421904a880f28703cea5defae446809d4cd0b971272ba2cb78d8fd7eadf\nresult = valid\nsalt = 1a08959149f4b073bcd902c9bc4ed0324c21c95590773afc77037d610b9584806aeeeda8b5d588d0cd79e7c12211b8e394067516ce12946d61111a52042b539353\nsize = 32\n\n# tcId = 59\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 86bcde8ec5a2b4cb9993fc0981d3e216f49789936b43d67de83ba9f51fcdf0f1\nresult = valid\nsalt = 466f383c878a617f0828bf2f86dac9f67b40e6375bbbbbd5615e7e99783bd265fcb5ef946f062250c0186cbe711d930b\nsize = 32\n\n# tcId = 60\n# a salt shorter than the block size is padded with ze", + "ros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e\nresult = valid\nsalt = af856d5eed5c77f4\nsize = 32\n\n# tcId = 61\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e\nresult = valid\nsalt = af856d5eed5c77f40000000000000000\nsize = 32\n\n# tcId = 62\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000\nsize = 32\n\n# tcId = 63\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e\nresult = valid\nsalt = af856d5eed5c77f4000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 64\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e\nresult = valid\nsalt = af856d5eed5c77f40000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 65\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 66\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e\nresult = valid\nsalt = af856d5eed5c77f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 256]\n\n# tcId = 67\nikm = b18e35e63cc4fe4117bf2754ec3f9ebb5346dbb0bf6d4e5f2422418771816fc4\ninfo = \nokm = 9e2d67ac4c0efa0b734570d7299b8e8d2fbbc5b5\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 68\nikm = 236c2ba20c72242820f63d3e9c20633162c1cb048a45dea13861e8a138b9640d\ninfo = \nokm = a7d98a30ba3320706cf345f0ab09d4cac7d212c8337bef01419b054c10d336009e5636916570452d4b8e\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 69\nikm = f2cba42dd82acb5d2d569406815a3769b7becb13fa48537fa7d7d5e121081d39\ninfo = \nokm = 558c7cd96388bd7f225afd1580a41083c465aea527cfb4e33a0408565708239eeb6797ba0e9f80f9655fa3bf2c7172252775ccb16170c0c31830c648617ad586\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 70\nikm = 73d97f2ffde01b447a5b8573190a8eb4f87f7ac04482836143f780ad876bfffe\ninfo = 74d2301c5aca2441372cf6077bd8806dab3e8721\nokm = dbff53109babfe9694885c6bc0c577ce8f5201ef\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 71\nikm = 6948521434707e96fa943e44988d1ad409ec57e6594867e8193e9d727238916d\ninfo = 9eaddd1e7edb6b84c96fb5ac7e0d673a8f5084f2\nokm = bd6dcd55a59713754ba4a26c55b6084014db2c3ac568eda3be9ebc55e67a2aee4d3cf2d19ce945555d42\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 72\nikm = b72b3854923b8a0048497a86bddef962552c8f6b2c72b2b2006a1820fea5c6a9\ninfo = 113b708f7522ec3b362999db18699bf7871e3b8f\nokm = 743e992e2d0ebbf94c6b901955270f1cbb472fee9ae645e128a941e62623c3e0f484369e77bba1f6ae485fd23b6ed2bba64ca25a19d56715875f3d092caa5698\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 73\nikm = 44d774def90685c0e9a685fa50fd434c807d1a57896fa42f91778821fe232057\ninfo = \nokm = f17c54ecdb9769ab1f2c7e5ae6ac720277cac48d\nresult = valid\nsalt = 0d7d3b47bf8484c8adab7f9c27c9584f\nsize = 20\n\n# tcId = 74\nikm = 098ecd86354496a701ffcac8d589a1217231da3b80ccce4ef85762d7f3a2c211\ninfo = \nokm = 5d0568ae988ca4c225eed0b789b488b8b8eb421aaf0aa8056c69031c004ace076dc2d2292e06b0df6095\nresult = valid\nsalt = 5232e5e4e2dd6133d46ebe5a8a51a0bc\nsize = 42\n\n# tcId = 75\nikm = 917ad396520e454a571ac39a9f6bc845a8920954fba1ac400cb2988cd8847ba0\ninfo = \nokm = dc65cdffb023a4323bb82c444815cbbea1aad5c5fbdea4db2df982432f5a6b4124719f9fd6a47492170041c60a7a075df39e9310ed0394271a53e87f772d8591\nresult = valid\nsalt = 962d86949506450eaca929286ce5d9e7\nsize = 64\n\n# tcId = 76\nikm = 1cbff2202268edf1985bc91466b80133644988c5e81368cf0995274204fb0aa3\ninfo = 3e4f9c8d3d607c2ed43caa9e87e6ecbc307c6048\nokm = 8fd42650adad1b8cff79d8a6c690e62779ecdb48\nresult = valid\nsalt = 2bde6e33534731f52d39add940ff46f6\nsize = 20\n\n# tcId = 77\nikm = d00d6b4fe088077ffbc64127d6bdb9707a0f9061c0b873c334c3be0adaa7c2bd\ninfo = 4266351bad419173279c901aea148e8b1d99e50f\nokm = 61a29469106dd22597f742303af8683bcb81fae85b45d38792b019f201194372895897fd7c63f95d616e\nresult = valid\nsalt = 1647a044472179d454b8d2108e4a2aa8\nsize = 42\n\n# tcId = 78\nikm = 9a27c19b607adc8f152faeaeb1282002d3a2166894b7fe5d65829ecdcfaf73b9\ninfo = 36356cdc28187c11cbb9046f9ce7502ab4d2ea46\nokm = 6f4c33adde661d92083b96c90e9f030cb372304ee1fa8adaba2f22f45c47aec925e944034737e47845d577e4f2559b9d00cbdd07a3bb9b4fffe701385a0e6e53\nresult = valid\nsalt = 70d83929a6376a6eab859f0d6225f131\nsize = 64\n\n# tcId = 79\nikm = f5d1c855d3448e212d76d3927ec797dc439cb182f427064288452988ab79c83f\ninfo = \nokm = 2d45645198322629380b4051ec1a219d2cbb49cd\nresult = valid\nsalt = 87ef5da5400db731d658972ea82b76848004e70d3b22cec76c8be06283c4\nsize = 20\n\n# tcId = 80\nikm = 3f19b7095a6b3d313b59c3ba2c3a78d8b24f30c9ed4f8be9eb92f8eeaabd2c3c\ninfo = \nokm = 5eaa1b59bd65ef1a25f255f2b8bf54757c2cac123ccd8ff64e7d0a094c2a8656cd4eb2c4b98b16a0779c\nresult = valid\nsalt = 8f1f6c8e4f68830319ae859b4b1fa71f1d69552b0c3e53cbbad26293651e\nsize = 42\n\n# tcId = 81\nikm = b1d396c69f14994dc8add0f6e0cde4455677ba9ee95ff84a142295f9177ee629\ninfo = \nokm = 938ce3bda3308425f80da0093b4f8ccb7afdd75c4b484d8c92e9aad3613a5d0c268539e5bb115b658121ceecadcc367f866c505972665fc4ad0d0664576f6b22\nresult = valid\nsalt = 7f693304bff77534b8246d832749387ecc0e8daeae11d77d022ca9e362d1\nsize = 64\n\n# tcId = 82\nikm = 003d1901a10c062ec44e0f2a94c544b7f53b33f1ea4679fa6e023c2d0a907fcd\ninfo = d5d3ef5beb9840d15efe9c778aefe38f1bf7bae3\nokm = a9e331f535da580a86a3b4e0cdd5a7dabbae2de9\nresult = valid\nsalt = ed86cb8c8ba1c989f9a60a4a82c38be98c70e6218576b292c93fcc18192e\nsize = 20\n\n# tcId = 83\nikm = 02e0647a4b7ccfc0d3ee7ddfe24ce69c02f51cbaa836b96cbc5a9c2885c45599\ninfo = 4e9e27d971e76fda614fde15031f6664b97d4786\nokm = 3b17b93969f5e7567f7b955dc1e6bb20a04543724764cae47de80272505d25383687f4ecebe7797c4e9e\nresult = valid\nsalt = f0862f61f2377ca34b76476ae21e331b114c7712aef501a1bf00f7e9cb79\nsize = 42\n\n# tcId = 84\nikm = 92bfb7e31e839f109e6622b2c2c4f41ce84c9907172681920e7d90e80e2339bf\ninfo = ff36776fc755722ff371f21cfb37a168a2731e99\nokm = a4b00d604d54e6d1374499c6588e199a9add616403acce0532eaecab0752b1d49a7beafc47220783577eeba89c5f79ffc21a7cf3a061457e6bc54031037f92f9\nresult = valid\nsalt = ce869619607f71fde53ef55e18d01d20002e3f91a8b7584190fc6667b8d2\nsize = 64\n\n# tcId = 85\nikm = 17632581c34ab743992cd99318889b32f92812bd37f41636b5fbbf2b12190c6f\ninfo = \nokm = 04ea65201dc5ce6cd19dedfb3a30517e0e1c4d4766bc0229da4cdac8c551632306c9cb14bc05fcba1535\nresult = valid\nsalt = 55e39431c83648867ac98eb7ecbbc8b41c5a5e774646b926a9b49c511915b0de1241f8666da198f6ba4bf7e9025e434b6d7ef794e7a563309303055fe3bbe769\nsize = 42\n\n# tcId = 86\nikm = 045b4d451bc30c39afe0932f6cd62e65b4b2ae2cf1160f19e8ba1323f7ca146c\ninfo = 613e353162c6c1b12fb1477fbc54074ff7848a14\nokm = cf9736b01f3ae0768b669d53ad335243db19e2587d904d72b72213aba2f0964064039177cd922e2aaf8d\nresult = valid\nsalt = b73682dda0fad41095070b2b26f2d7d98ac62202d918258ca9aca0f794ef5e4d23b3fc43c8cabf9fcb37ad9a62337fbce967fe24054c3bf891195858e53997f4\nsize = 42\n\n# tcId = 87\n# maximal output size\nikm = b16b67a856259419ada925f3553103eda6cfda15666ad1d012d43429a8272d75\ninfo = f82bfdc6aaf0c789\nokm = 1c9b28ae006c65a8716df9089e105358aac83c2372e31788e2c1ad0bcfef21e14ce59a2c3defed070ed55424e891aec5215240f8915f92c35b3e8cbe6c91e", + "70cd83dae81e2628e3b668d69ec66093d054f7e213ef5a3e88d6694145fe3bc88a6ab55a8c32ef2cf0907e07e0b05fc9002dee5d86a724b237fb8423c874d21fd541e3c6d89ee2b1990e3dcfe6ddb65c0500d1488ae749529724dd975492bd35f98b89c280586e8ace25c03a8259c52a3c7478d748554d2f7d485ed68d1fa6a804b3d1b6a0aab002eef97b9656752cb0c728e1b0f15aea2928346cb97617ea9760e0d46be6638c905247c6f8c927416c283ce1dc41f16e61060644952bd046bd478a01011907456a03080d7bb0d79c959f5def259e6a4e0fab0eab317ed5e62d0b8d8e7ea4b07b0281e09392e43a00deef79eca892b59b1adeaefd14b10f11f9621edaa8567bb15e52e0f71393ec309d3dfbe3673550b8ec6d9e1f325007b5253bea1b838a2785fe37b80dea14c247ebbaeafc73bc44d013408a2368cbcf6d80c572a9630f38322a778470ec557657d3ac8e1265eaadce9975f26d9ee24eaefc6d6c38b78ac198ac49be0e08502901868b6d966543b682ff658b12f962a0f8f1bbd437a2863ad6246b0738b343d368cac0cce1bd4dc4a1efc2e65b53c732caca0101b0b44fe17b15909f84cad9d107e5374bdbf84a579428219adf9e4f60162566d5f29cb28c851ce9d05995018095ef7b915781dcaa5d75c4db60d497982df7767f907fab51d650acf70cb3430a2b5210a572bcf68453b3ba10672b5c134a70f63e934f8388cf4483871134c6b0089988948a528fe4ac88338f00098826042f096de009a605ab575dbee9bc675d626b83393511efccaf73c941d38be181ee22a368526909f8da2246473e2265b58f1a68c7a876b55223d2de9022f4af4036469eda819a593ca3ed2763c1e8d26c49082e9c8a2ca21b939ad0e8949c105ffa36893d36314b266cd6d22d2a1c1e7e81e0bab9743269cb5ae6808fe1c48bd583bd863b74f919118437bcf7053b2796f1ad1b06a4328612be85e9280009c0a11f212dd748987c2b0abd1825385bc1303c935117d3b968e46a6d554c04073affa3884486340b77a37377214cf799e8b422d3ba77c7eeab27c50d0ef7f07adb97b014b7c09982c70142aae3dd417610c76088042e7196745e5574106ac8043642d3e5d0e3f4e916d5bcf14754e21feccd10006d8fcd222f2d6b268fce261ebea921a35f538b23bb14833c10f31b697675182dc1b2a32616f3174aa40f0296b7b45489c2ff16d8ba0e23ff740b53fb91ce8026c2863f7bc1466594a984ec1744cf07533a9bf35794717dfe170e48616cbf7c24293cf9d931d7848513ecc8960907aa60359275bb9af101ac41ad42be509cb8acc9701440773a486a8615dcb8861eef8c1d63373152df15790280436662f4dc98e3fee01fa8ef61a1c500e060da7c5e284fcf3d27ec9321ace93d8764ee34bc51ee6cfced9e56ba56020652a855099395fc5c0290ce84b0ff6c8ce2f25b30bf85909d906f0c418cb70c7e69d5b3aed6d0eb74387b6efbf33872f3712fe0dad38110dbbd0e5f4432bf102835ccf4795f95e7d07e408ef853d28c226cad475fd361c5de53b2d2a1d6f59dcda82dd6f582c52ecd2421b940939acbaa0f34bc64193d6baf7a809b42ffbab45639fe645ccabc93a97b247e454e63cb891cf187908d33dffcf1225757e87bfcfede42dd0e8b75e4ce05f6a766b915f047e52aff8a7a982d9b2072c1020198ae69a69348a8554fb51edd4ff68a8e0041a0a118ad2bf42c418130e01b3d1c521a80716b0898eb63bf6fde067048e650fac3433b6c7aed5d59bb4065ebab0dbaa03e1b8b348bff92575f5e4db87d64355f75925dffbb090aac2ae320bf72da9371148901c740e34b4355e715b7c8640e016d7ab63c0cf5d6f3a6d62f3358a5fda77ada6947fd711501891c23739f262f71e5314bfba0b7372638a6dd2b2547cd1ab5ed3debbf968669b6273cec753d43085192860c4168a8703b917a609d87e5ab1f733976a06240d288f8846ad27328b071b377accebf4501c75f8e4697e715e8b052bd116cd16895024a8b58f9b96f460e6aa9f6b8c5b760ae84e036b2e83d18c3b242f59e7c00cdf308e43ae576c5d69d78dfb39c78423ffc565a0c27b1ed04f231fadd2cd46f4dfc1caa7ba639746ed61e1787606ff6a9e1422ce3ce817e23ecf95b7940c08b865b1e19d143e230defee3ea88893404992399adbede4a82b34b906631b339dbe2e8d0618ff54b9015012fff625f69a1b9c753d790d3ba76af8fe7ee5f6f493e47c30b28341d98f0aa38ff76f7f660e048a09c5cec238d36e21e26d8dca7d427b609dd35d9cf42447ac88636a4575b0383177be4f1f1e4db97778147b73477c50071a625fc908f4130090a819644f1c1bf7318cc611b0ff4454a7b3d180c445fffa0b52739a474017fbdaeb278fdb901723d0de12f0115831f6b4b2f0b6f15c59194bf28d36ad73a2ce8263d8d293a7555048db5ace9e5669d3c0391475c602bda918dd951a2db8aa94bd8925a646ffbf9a22590bd87ca893f45c53b184f63d93794c6f9f4ac2d4ae4669e9b36af3cac1f59262550c5203a1152cbd0d4a264e337302430f59db44b2c3c1bc7580f09a5326db90d6f88617337d20bbb39b05b7d1710eaecdfbfc7be543df1f52dbd8248209275394ed36cff244b9dc25a46bdf9cd09f2201f2fd8007cf561af8dc4bad49de3c7131820e2c3225eb4ff95de565580c02ed86094a3b3757d8ccb040ecc75aa1b272fc1f96b6a9e5f117f9a229da82ba85f42e2fbc172be3f24c2250d15fdf257d39d2d4b677f23a5ec8cc4083d957d38fde4f5571786278fbebb2b56ad8a1dbce217bb8c64926813dbaf0f068e20595f80cb5ec546206b6660789291b3714db364e9f27d920c606cfbd48f5276aaf07f2defc637d25e146d18dfe207e1e0f946b91108bc60a7a633e960bb77c119620e6da200b650d5b45921e32b307029b769a04972421cb80f3494eb7403c58f779891d994c556043a501836111abb0f8ddb34a894cc2fccbae3d73a95dcbbb0c73c3a4fe516b3bf2109e0b9d2ddce48477890911169449e5c00c8a4782c33c349d7802e1b3fee21f23cb73a9e649ead85c06d7e883bc69982ce63e1b9ee3ead32f2d29f82b0eadfb5f55f8311c18697de6472c7d1b9b37a73ce27ef80413efcdbe992dac8ccecb7463509a096ca33cf5449726a83d078d5558da1a95dac80bbcdacfbf5935011143dd0e4ce91aa1a49efee241a72f0edce6567662a4b9789763ca414445a3a4baa45ad4d9ffe7f28c2c94974f5e74052cdd5008b8d89bc7726caf49693d1dc01619ac91155915031c5f575f0694d9f8a0dffe303ecc3779b8cd4441c6a110aaf682be920b3895f45538e1089ad610edc3ca64589cc82f863cb4be9125f1659c51f693d30bef11042384dd92887da5e45cd127065dcd57847673be82a29c1ea6ba5973994182c06db59272149966603c3f1d3c1efe10e6df1fbe2d32f955b4fe04ae96dd3591dd1314ef715951b4ff8b8378ac2e3814fcd378fe7bc739b2c5b7d401603dd00c2c92f9c86b8c63c90d4da37400f590f36210c60495f049cabc91f4c4585c5f1a1098167190108f704eccac5b1960748502ab4791144c8e049fc2a8d37c125c1da0b15adf85bdfb07102a653645c379f5ebc84d505457e8c22884d850def6c3ed18342a28d4f62b47593db3607b97c7be1acc81278bbcd9772ef366e84af816d0e2d132419034163d5fb0b88ffa183ee2eb3c1f354321c076221ed7d1f0774e7fafa5baedc5eb32fc3ff1e2e48d77ebbf4d7804c7a76eadb7673fe9aaddd2960c288d9159f7a2c21b243dd47f4cdb0c29931a3856e1cdca81cf8ab2fd0bc07b4179ffce30e12a72980e9b705f53bc7ad78bf7e939dcfa5200d15b626e220e465e293379f12e1e82df11caf29536aa085cdfce4d9f824666eaf12b71e42919ffa28a327a4d944873f0a970f9abe4986979d772fb854151fdcdb4faf7534a9a8eeea3e9d080f9b56fb8d281ab2e0f9777f2e2f1e58bf6c471c79f4e1611fc0c541227bf9179e6c76152f86013c78e6035f0361e57fd5494c590cd5285cdeef52904fc4a6713009542da95e8e3ff6785bb953d571855d86742331d62682ef537e25411bf35ab44ac31b451477ec44db4624a83fd637852905473d30a4ba927556163b8fb98f15008d005660caa833f28cb80e299427e044dfb254b97ac03ee5389b93130ddf4c8dec96f6babc43220a59a194408540122f96257be852fdc97303f8c21553a506473e2dfcc50e73b5b6c2b2c99e55b2742752a54fae78daa18271534b82c274fd6aa41e003bc60e935edf4cb4fb377afc273d720f41db68db9a98274da032beef4464f082d06e679cb456f4772eed93eda24e31eba70cdbe12fbf39d413304891c7a720ce8d896fd20952b4b0577c700028fa804cdb7e0e72dd503a5299b346e188e7b0ac0b93c3d4ce7ca24181909589c82b01e9c05769dc2ceebe9df8652bf843746945dec545dd211cdfc0831fc03cb91c6136f5e0e2d558db50ce3dd90cae233442f2a41ffd1d69b2897a10ad0a2fb83075d3f389c26f041f6e178313682e91804256c1d0b4842225e6f63e1bde51e888cb9c93fdff2b7dcab1109da6e648cfd57ba9237e35f1d28e5e69cbb8ac5b941f2a2c56985d76107723288422ea37c2883fe775e44e1a5be4f3ab0410c11e2a3e7cfbce8e359c7004e7a7c86884af6dc32fe94198f2592144b1bb397187ea5df233db8856291c1b91914d87cf0bc1e707e104ed80a74b5273d267626180b035fdcb1ab94b8c6560e8dc0a8ebd7d6df478d719b3b426e26c07c9eaa9bfd62f921ef99b8d25cb9db02ef9346b18f41f88fb17aca4f04595f6ecd8c8f89d01b19faf3b479796945bf714497fc692bceb89620138cc089e64b05c3efc39ca03aa87c0ee5e8766e83362f37fb4aa47fde3acf5f3a6f7c7485af5eaa852f3303c03b1c8c4c82e511f0a1aeeb3aa5465d11a306b08ea1a2561e583bd183da982bdc82c20d7ec33e80ac7dd7b7d93f22b7bac6752d71fa6e767b5af61e5496cb6b896e822dd2ecc57d1f3da815eec7ed83ed50822f96da844b1565f65d72afca24a5ee59d36ddcb6e5ad9fa6d2f19248e120a663d3d93c2f2d3e478d3915200104f5a2402dd37cb8473e6104ccb1a8ffe6b014096def2a03ef2c035620b4267711719ae545951c6e930fe19aa90a7d5ca01d089201c9ceaf49aaf4bc3bd80a47884d12848bad2df4bf99b45b09b888f1be26cdddddf557e4e97f3552cedafed9f0be5a26e46140180e204dede4bd0442899bc4e6192d16267e7e0ecc0e52471206b306254ab4e3908b8a4aff72f337f21c551164319ec9fa947e3184bf8eeb1562932f1446f9a1fa6f7a10fe4e9df16a74ca7072170644163cf1f9849cd15dd1d0902012d4d13172334dd7146e3dd066ae11c59e45588bc597f90d217d2eb0545b8e171b5b36669cec25196a4d92a866de6a8b1ecba130876d787386d596d03471a0169a1cd6bd734815d6d36df83e4273d01761550207445247b14e9f5fd9a04d6e5916cd7c5a27dc10e7347522c2e8df09689787d2dd44d852b1316cdc2178d9718f2af92e9fd711b881de0c058e9c9c302a06b9b7bd40a4e857d3007248090f2ce2c74d64d84f1985ecb9b1ae558fb20bc8180cb8720d215bcd57c27737f6051387178fc177010dca84486d62c7113c0de4b0ec79197d450a733c8492d8c213c5123424560853a7878425412fcdad1ae0986c375a2b19863a07f924f27379912", + "97bada908d5033fee6e734e86ce45c60f6e61f42922d500cfc57cffe21bf42a36a3841e710d1cd94caaafeed9be4f00243a439ac4d37348102f7890c8e8adf6d8ec765d709a15cb526e7c52da7281e6262f5ac206806dd595d58ea0158c1102476f4f7077c8bcb13f80d9fbd4fa29e490ffb74b45480a31df2e75618eddf10f34a0cd2e61c99316e303fbf92326fccc785745adba435d68c2f720064668671345fa1a7af122386c969e79fba2fc6b66d86c4ea79ac9d9fbdb6f21fcda70b96875dc70d915f8ee3bd68f84447d9015d3b8b340929daf16c25f57ee9828ac93989c53028023b7be7e6cbe10f077e2b41b873f0a7a9a4718063975a94e045aa246dd05b5f1d0dbdf123ce661943c2fba51eb41f4cc854bccab72d41fd8ac6a34da8d55e9f943f04b675f6661b9ba03857023e2e00011ba47f8635ca9408ebb55b43ed3a029151a6c44fe2f8a1a61f390c2343cdac9dc24afdc6472478673fd2a024578d2ada32a1376332ea24445ac99ff3081fc327a482b6ee96d56db0694b978296102a448f6010dcb560447d32e4fc67f260c9646dd60e11d39cf736577edbc1330bf8a2a3accd05e7f562fc911635898882a9937d3d527d618d450cfbfc1dd16ea040958e21f72fdbe29fdd91798888d0eaf50d01e9c162034dd12a889112b8281be71b291360a6e676f560fe34faccf5556319acd7067ffe1f7abd2489d88cc8238d5479e18b20b502d8be6c3b9565a97d15f827c177622feb795d32a6cc8d49f0223410a484bf8788dd6ffa1722a13857681646e7ce8fdd89646d54b8a960148df2cc92d310112eb1388f5da1eac32b1fdfea06495f57ebf845ac6f38c942e2ab13f45b4448d35a785f0ec3e1a0f15c4b341dc29e4d936bd438f26d1c3f3fd103b6543790a8d48702b24aca7b3a60a968703e258297a592a2690431ce09993fab0da0555b42a448897afec276d1d48b8a71d3708ea3a453bb653ccff2a3b3cb33c7dcbe432813d859f511735b6ac062b225c706f97241a3acc08b56f88d883dbce97c8aa935fb07d8dc5291d3d74732a10130f88907ef6fa06b96ed4de40dc90beb03cadccc978fdcc7e36ec532eac8eb33e4914faa060d3041ab7386a071458f104f9707a9b8858e220acc78802ed0961a268454a4c02bd8d3f7aaadc6573179c5c0a102517d55301febf5001d4d7a5d95d80143e6383f95af933c83fd68bb7d0c1e283390975fdd29b0e62fcb0cb1d032bafc96c1908ef7839a86f52d0cf6fc61a6d145542b2843c8210fa0c44ebc78f3c42faaff2a560dbe937f2dde15f0110d1284a5c69c7aa9f26455d5bfc5558ab6b60d8c98bae2ee0717fdf1757d26d2082da8f481e7404d32d06da52a1f5da5bb128f4c185e7dfed64513c97329e5836ea707361c6dd45366396f31e7aa46ad88e0849622c3851e72c2b44136ba2e1f1769e8cd86184f9c0a1030da36016f146343ee8fad9a06c33946e2cd3224da22504ab68af25b3b9789df7f2dc1c9f99291f89bd2516115876c3bce1e678a846163386db044eb0ecdbc9e0ec6ff999945c83859f025aae214b5cce6c32a048cc76d7077c11e9962061b73a6827a0a4d0b4a8c1c92b3128f21c7e3372e7e248dff0500358fda14bd46f50838666f3d5d8f28a32fdbbea2829b86bafb15d02db14381581709b2a9cd095d8555035ccd4c67c10a4124acaa9ffd2a76196ded0729cfda8d423fe98fcc126569f90899ee416b397bc16d1fbc88ffb4fca25b2b2c91d5ab91d3a66450708a95ab8250ad8d8ce4614683225ac9bdcc236a25c6f5d65ee25262e54c54dbf59f2ba193a210359ae7ab1615f15a3ae2f017bb1aecdab6833c0256495512f5775ef85655e595b8898a3ed24165ddfc1b73b43aa2a9af4060283a1cd6355fdbf585bdb924899790c477a6343b244be0433da2c084aafc57345bd69e57c5fa3b5e6d19c98eb119e7f5e2080b4dd121dfad487441e6089c97494ee9a932bb8f56b0066940f415b5df917110108bfde7bbfebca4206bad5916b45ccd7118164c97ce0b053e0b2265179494568c0de284b8ebe664fcc74ae13fbe56e35e97c1e6e54d10173950090244f353feab7b0a4bcf892dfbe6a1975632efa67c1964140c8c09d23d300338c8f8702475afef0d794ec815cbc28590bb91967179115f5922d7fca605c2e98213589f540fcdc61c28ce38e955cd5cf86b49cb729afd941055d0273e9ab74b87709fad9aaa56878cae49e063c430459983230bb9c47c36eec08ead6faf7428b13cf11739250c3908088aac25e387c1f7ee461c53dacae84804d0c83185508bd5d9f2f3e7e9bee7d2dcdad485bc3cf076b57d153962730bb23017374c76b5181058a982b96357ed0e5a26ffbe6744cfe2f2bbcc0d6a06bdf6235d53a305e922c207d3374f67f9e9571c044f73adcf28ab399b5187b0fa4db03aaeb10a3c6111669cab03dce28daf75ce598604f28326452133a3dd18dcc925c5394b62f48f803f0ad91fbae1c4ccde3a61fd7e23a00b6582d38257d2de8ff5c84e7c15b373b67d10a55940143c30d9cd01dbdbdc4efd2d78e060248106b68f2a741028bda70c99420f996dd225a0fcd0fc93cffb2194ff47023d9bba1054874d8a50bef8ebb90561468f214e13e505b558af82818fd74aa3bae02ea49f2502fc2791e96c3eea62742a2035468927cf74541329c950df615be360fd0b2fae64030a7add9c35b48a6441527dc4e38e9ca001719d5cf1e3d9a5c0660a54473e90557a2e7494fe2da354ad37ad0f1d8c02c4d78bd5e2c18997039f3ed7e9d82954d532b498eb2df080f5840c34eaa7153719bcf3b0f1b7d16c9a61421f83803ae677920b65420ac4dc2ad0fea214a0f66bb2f2b0c326a2067cbeda0419424393c643a1152cfcf0396a15d30d4e216b656b4934babe2d518ce9bac15ab3e6bed02b397d2df6f0bc9d9d56333ee9963a71b9e0fc5eead36a12efe520aa8ab9d1f9933eebd5e45c3068f8ebc90d1434712c8b078d41dc913668fa8ee6d686a90c16df842418bacfe1482fea4526ca464732fd935c61779d294ceaa828b54e437262d8bea50b7e6b423ae39cdfe390e61f7c847d8fb560b07260fc108abc130bb6dbe99dbfa65245c882a2cd65e4205ddeb902603e1c1dcc2a471c9a206064a8d756353773813f0c9efcd22903c443df9677b5979f7cbf97ac09e35ad048b34c33eebd515dc696a7776997929d0bf49052ec3348a81694a324a6829c227388b5352da311bd7ee38f7e2b6792cefb8b33664a6ed89a11f9d9f6f64f63e898a4b97362fbb2a681a87eb2914e6d10eb4f49881197630b2d8c4c8dd3322566c6d3350b9a05890d0f25beb26a49aa9d6f755a4c533966f137aecbcbd6e65391abc4bf97a17f0e32f5ad0a7c6af2ab0af3ebb07b97210606d68d4d8ccea6f0311f15ada1cf79504ef4e4b58d17bcd87cec74370be0f6cbee92831bea0dc35246fda4feb3299813a18ada050744e836cba694e7fc0a8368c797720f16e238a7e9b4d3008ab555cc0c66c1d0fd00721db81dd40585ebf5a7e7cc0443d11e91ece4536325e9993828cafee77ce6e128d0767279001ff089c44f193b1f7b736334e0dc5085fee52e574b2e4ea6c570ed92175df0c1af574b6285c7f5f8ceb3945a2e337fbd19f6b4553cdd8be98e5937d58d229901dab6dfe7cea5683cf573a3ed097c14372eff45e562629851a75cfdc3ca90f68f4aaf94006d03f078b236c443c31fc96e8c7aac2d0a66954add0c0a7771c5ca6665d782de40eca16449b2275fb04fd15114639cef02a6852c7ca2392923e2ca74f05a721b810b555269bfcf6e788e2ae891d54e0d9528ed8cd49c8b0e1b41f8c9355cc5faa42477415d6e7992f65dc6a62dbf10ca59d55a6bbb71b41fb93de8fd00f3640f620257a00f0af4f4286cadd03df8b06077320f617a889fd7487c2703bea22c2c39d3be70e50692f3410e2ce0fe9ee6829833bbca4a9d70ca7438c798432c1ec563d81c384a42bd5599eebf98985124a27279a610dbe9800a6509f517fb1df6be255ec1015bb808d56eaee3a278e0d8119eaa04375137f22558de2759be8dea393312617c4aa447e28091bd3e79e6e6daceac906a7c180faf0ebe9b01635f075b32effc404d52e914e54642057d4976b7ccbdff3932cad5d35fce432bb675db4548e8d358267d1f34498ecf46baf5efd8bf221c0d35f18d5f64974115af6419d0ab4b71fe0bbe8014c03412532699d7caf4b0707f92ac7c677bff84427476eca38cc2da5310df255bfd11c6905639bfd622a0931fe864d5c52caa357ee46b57af74c23d2e2e4abb076c7bf11dc5dbbc69a75ff9446af6e8d5a165d3dccc33fc6ceabd6790ff4e4032b515f2d85414e59ed6d26d9c19e9133e628e3f2b1b77eb6aa74e50df1618abb12240661ace8cc9cb0a78048dc62349df3b16f5a48bb3462f56da5d74a22a04fd3b6353349f09289713539efec56fcaf0a41650b218005c4ab31c8a1f866c2c29dffb51127d52afec692acecd3ab79e46c331c041fe8ca9212a694c7848736a471966f8d3cbee2b1403177a67c4c030164d006c2967e33f45bd90185d385c87b715314a2b15933d7240d2fb4b8e9572e9e07f8402745b35a78ca5f8d053dcdab3b2a9a885439b20506148d2caecb6327cf7d33e559cfa12678f55747abfb3cc25f32572c47922d7b8c9686e5a66e1855ccbef0c4cf0eb489b6a3aa885b2c78e067421268705a4bbfd88374b33279b71303c70aba755458842f205d3a2a7e40a2828a2cef6ef86659182c68a0252c2eb393270fd26402581e1692eaa77be5e6d7252c683e380e932cb5facd2bae8c5c25739f84f07f2b44d6133aaeef8d87191a9c2037f5a95489adcdcb89e54f1165c1af615890a1e4e56d07d949c003e12aae68820492666c999d8c09a356762820c9146ef9f85828d9a9b818cfc2fe2bf09effcd841e9b77922e2d263982060eea4a06a3ae8fbc15e8b5bdfae224c648b33446ba400ecef428b236ffc8938a7bc6c406fea97fc0e1a324f8e31429f53873d0f24eaab39f0e5c37a0147a95ad22c4312b1d8032da65db800150d4e88bf7b9b1dfd63c3b714eb32b7e6f288d7bddd875934c4cab2cc57f771ab8523721033d769b2ffe9080488a1b201299a1eba6aca7f468fc72e4c26c34d161764c7c5ce96c90115898824c24fcd7a97ec7d5031d1364b2028591ec1f6a286a5d474dae06ebfe38900b0ff730a497d40abe221e0dbe82a90106bee225263fe2c04cbdc5aa7a643bafd3f89d10abdbdb320cd8da6c1753202ea2243395f7fc798db6ab11f78e6a6fd29269169c6925488171a147c651e85777a791837f8f079fb958b54af044a11ff54c493a0f032162dcbeaec09d68df9da5c47e87631f7254b3ee5a26d895d2c980ad62ee8fbc5d7c4235bf1f9be12781d1acaf02e100be5a535438c44860b8ca257257f8b4288f66a7bc82a25c9f78f55397e29e99ea97595599ca41f599653548cc4a2983dab789eab4dc1536ccc2463a0d259d14fc0778696a73fb6f4d78c0c1080b2815b1fe91ecf65fa02206c438e16ffb9aa43aa4c6e68dfca745e4b1b287d03325a9f595c5fe164594a8bd3bb1893151c3a7e3d5ee2d966f367d98578e2564398feaeca7d8c4773d4fb51f706bb4fe13494afbd786c0662d0159557a8c1c56590b5738a116a20218b9c35a29651224dceb00b4a5fda958ca46375885af41ff9e1335a3d57d650aae9901b71645923eb3f3d869dbb7d79c6a58f856fd2", + "be95c376d9934950577b682d82985f0ffc2adeb9ac1d801cee6ddad69d342046487798373560db6331ac07287a9240fe1cffa3bcb14825ee235389e80ecfbbe138c349f6fb43574077213fa5a995ecc936eb12b011a7a1b3417b33f2adc3963a2b7abbd2314c4d32291cf24e9d0e896bd709c01e5a05acb60bb7713234b450557e460aa3ba916c5da158a88f37fab9c0a293565610ee33a42fe1b632c9c5ec0a70667d5fe236fd8405a80152bb91ccf336608dbc472602343579d0bca549d6d97155ff65e6d3cd2342ba931158a97613ea430b8fe663c28dac1cce08e8c28db4bae76758d3d186b6e34c631ad743a20ab81771879df17361e7d5db49fb0a88651d6d4b388b925714c19d790c50a76182f3d121dff6fae46fcd97e7eff2277bc8c6b87984c0fdb67cdec92b763d867ac3f54f30ea1c5e86be4484b8d52408dd9638f3d13d32e9fc43a7596c9748e0aaeabc83c08a7849c28df6262ffa83128341431cb97eb574990a2e2e92610035442bd7fa3520c4ad3f6a849297ff68650516fb80b786a3cd5a2699e37ab1f36d40c6b35843ba7cca1aa445af87711feea243c787165dc51975ae058f80cd70a272721e7d3be99db79e76c9cdbb476eea6b73e50968e9ff7515d78bf550e9b77fde7f686544e238483e7444faef2829a01651eb76aa767c03dbfd37c79ed8d77491cdc75798d230d9734052ab886075da01556263d09e82f2682bbad8c26d780ed6def00bbd3413a3b7d69d2eafc4ea0c42fa89114964aa4b775b5840ea4ea9f69b01d269ba4551f1aa7bff0dafd8e3ed13941abcd91fb3bef76a7b49340382eeca128b9ddd1bb253c1d082f02d20c37f0411a57ba5249b05b1ca2959aa140edfc4bbb474c9273909594b1d970124f86f861c0504bcb56d7ce395da042c175384e8e1c0b2be453df961e9fb0e8d60ad09ab6b8c8b09d8c7c3fa0c0376e70fe6487dab64d398257b8293c19bca53ec82479f7784f5359ef3577c7904acfd59ba3694283d7f0b63be70c5f7e55b45ae013ba5a8a77126a11154e91f8c3e9ed719e087c73e425c7425abda06860b898b1763dc030debaa9790ac22263a099573d6b4fa2ac17ffc9e7e0fa710a23326b965df9e2d2a69f07a249f7b2c931f2219a3f6281aa96937b1f88f952693519089b4504965e0408dc018f449c566f027866f891ca75832689995b72fd5f518e5a1e37f33c06775166822050932319f0d1e53bbccb9ae4d18c100086fae3311c69650d2317d83e4a164c4e67278dc1539dfaf2d9e02b52cd6885c9a66831cb81ce13422ccb069067ab6a6c4d3c89650677551c344918a5c24b0973ef5727f9593c59ba1026a82ca6e78033d6ba6a40488c5ec91708ec2479dc53d0ba7fe14bb238181f1c058e694898c914c2208dc01979119bfc0195e8ac0fcaca51d61fcfc5f72d92ba68a8d51394eea8d10b624dff051a9153b7d729f50f02d04547a6676add6ee0338b6d9ca9dee43260980291adaed18759bddd5311b7b46956cd113a076a3995b2e72cd1a5138dc31fcb5edfbc514bd2ee72fb53e0722367afc717b9ec401e4213a317583e6b3b19a75e1c63f1889f60dfb3059b0a64b85fb758651c713ac43345c8cd3c801da3f6ba8aceaba572f46100def2adcc135c4af0965f379a7a6c75d039a2cd40f2bb5919a3c8b74d58bc9d008b592f2ddb3acf4888e8b7873585f1f3d8581c743b324873fc23a345176635375b746575f79d361d186108eb5609dc78612b7bb530b6327bca6dfca45fb4f4f975afd1bf0f898dae164a19dee3f0feaaede1440cc7ff8fcb21145680e8a24e2eb5404697e25c2558ae9289f528a8faa572a354931a1cd4bc05bfb0116a0359a6b70aa79b145a88df482ed33354c260d1567e000b2d315e2808138638fd7bf7f4e88add370d24ceab5a999643741b13612ea85f67ecfc728e110aedeff58060a8aff0b7e1526f4aa60b9f9b558c2acf584a83b08d91901d6cff5ea2bcdd832303539703d30102ca067db40908dd8b555834a6060f3f6e7189612ed0d3b6c645db8b113909a38149072b3decb1f3a28be9223cfde40c2feea7e8c9d5bf37a2e55a60d8f89c391903e49bc644178531e6891653b1a4d73ee0870b18f8d53a089d5066dfadc3d92271232455637b20c298d640cb04b668d7080a510146b08031fcb84f41ca0cc85428f27ea9657de94073fec43d2c8c464723539276dbdcef593d716d02d172d30e76a9fc022d4952621d4c306278d3969592469d9a9ba62841dedd07e76a362b67ae5f925fae70f27c9cc870ba7b15d2d7d81b4e1d49f02fd963fa6f9ea5f4c901eade1114d92eabbde70cb0c6ba9136c68cbd25acb278e6cc73f9e625f1747e281d248739ecaaf403a21269758211121db85805ac522295ece97b8f90abb56e5a762bb7601b916befe8257e02a2b10c8384887de04b2d1c5afabe583367690c03d3ea6f7294f71b82ca80cd99951e5ccfe9ce7cbc5e04d1d60dcdd2ec88f9edb424bce5f04217be277700df4035443d18c14391bc9469f38f78f41f2d983bf761296161216e5719b37e3653de0d4a90a5171c2fdb9547a75be38910aa96c27ecc4e1fcf7a12d5254a8951a659df30db813ad7c75716ac050e61bd76ee5a4ec0bd7208a4c8cf4dfa0ac4438fc7f85e23db79d006e2acfb8d5a4229dbf0ee5ee26d064dc57a1dfb4374dc306158c1f8a9fe450a11e7ed21700ab2b817724a7139e2ac3df5f953ade220d996821ccef9e8f58a9c4996ed0bf6e70fc17237141d822f393cbc725b6813626cc63b88f5b893732969b47dc884c772e12c9099be0e519eccbc31d5b5886fbd737499a622058d6c13e200e7b201839c52634dd89e87a742cc99c5971e0b7cd976e8b1f5043a74fd6bd9d30eb8ab29c332057b2dac2f95739f34f1abe9e85b856f1d2df1d80915338cfc454b70ce41c2ce77da0f06f3b113d8ebc2ea441721a2f4d6e573eef2ce7e86c2c68a1060f6836526723e6726046c6efc68178798d967a88c17b4b4c59b96828d7497c7e40d6cb57e8f83c7164ad56c4e95cf551cbfe0314523fd7ca84bd0063ba241b591799b5422ba0cec9c2d5d5a3785bc510a4b12ece05c1081bd489edf428bba344eac60f1c9a59152fb8442c7b65987ac41b5ee2ff7ca6b8bbeded9e8b10ece0a3a792a508ac22497df9e66031edade139dffb19a3fc7d27b9bcd572d60b6a0f3482b8fb6ef495e2aaad99cdb89cf6171609096e4f2f03e21f01ad554c59d008ffce5f1ba874fc58638179ff01dd4fdfb01c4b60e08e315654fa5e211d0b75109439082a982ace4667ef510211b1c3ed116bbff57a3304161e1707f4f9c3b22365760b1de206a68c4eea017970e138a5e29fa3f5fb28f220d84596c0a7fa5e192e7aac83a1b83f65a5a61b2ce0586cf5c387ad24efacdec8f4c9e96334b94a9994fe3181a5e0ef82dd8e6a9ca79dcf9e5dec753a01f8d8c89e709a63a92638f0dbd4d083cd80ee7b4c82bb08bdb24d77ead9d20fa041b32386bb68d7e5255290ce65dd07d470b220e5298bf80a064c940378f06d35a3eec74dc60be0a9f46d29014210cb09374406a02e48342bc07db10811d314b0fd9be677909c91958ef5b3de9660d105058cb3a9bb859a355d502076938dc0f8feab32cc342f08e5392735263ab0e84eae11b39e993f0a6dfbbbc69dd01a7c23989f05acf42829f0fedc564e8ea633dbd4a1ae9318b8a7fe03efc535eb008cf30f8c9d38fa572e79a1b6c8bb02b87050dfd40f6d8a91a3b1bbc167247613000dd7fdcfa7e49000eb3604cbc7e790b1df640acb5a7dfb359d138b6fe3e12a8025b512f429d47ddd60c8c56c9084c509766d38ee652d49fa12aa3c2a26be8faafe589bfbae0815203101127aa23abae6b01b4fb82a2f7fee10cac9092d92e68b48bf26629524f2d8882dcd18965c2b7b6ecbab0204bd90e68ba89f1af5ab3992604bebfd482babe08ac40f86dc638c9440796bacc8bda1895d75fa30fcb0434aab12526de4c026d320587ebc36843a662d5c646eefc6524d6350ab11206530a7e48b53c8ef851e1d17d1a78a5f0a58023b9081357b033e2ece1dfc4cd68f99ae754195ba9453cc90f60371ebfb5086f60619f6b951f0708c1304875c618eb30ff4acf7b16a5f88564cebd3afa0c509516889e4a58354aed00433173830cc90c16ebd6b366e7d2b43da4f37ee4a05860e2d3267b4b61facdfed2ffb1960adce69914d4f36d13a5b7d6920524b364c87c2697000335cc5fecbc68c24acb6a6235a61fff788daad1294df9d2fd0d012b446b35e3bd4592f4f6418d7e676cf46bfdf1ede5c9f9c3fabbf3ea0b435555d253412deb4c66922f54a59cedef5dfd961795b0a8840a78266810d45da1e76f4ff7c8642e106852173bb7fb44394bf4b285d95d711651031d8f062ea62f2503c0047d808a131a44c0d67bbf1ae1ff58f9018bd92c63bab4761f572ec67da2538bae95fee458b1f298d27be26fbeb9c80361e30e0738e7da2d5b0dd21817832bd2af3f92f2e6d9a8c75f0bdb4c5f31811c4ba4af5312aa615e0e72a987724b56d78c8d598a59eee50978dd4ef4aa0fe958ce88f6ff8d3672a5d07a50a4c61af4b8121e6b5efdf7e39842d91004d2a78cda448ad233708a91d6a9b0e29e5c6ae3494b3e73f81c04e9df3d7cb5e4f8484bddcc228e87c3efeb39ee367cc3e9bd25521b493b168d15f5e15379177fe625e9a6052f8e3312ba0b85380ce40ec62afe4abb8d21ff9e420865874f16525fa38e3ea1aab965f548db6ba2bc21001a836b2598792e4dc27ac82b136ce604f554078d44b80424f449968cd3e7f07e73c1769fd6bbf2580421d4fa4e6bc2929da999f4ff8fb9f6170210e1d2be140f6fba282ec31c9d57a6d69e73502d194b611b1adbbc4c028bcea1d4003368cd564a59bd93966f2996fe7c6ef5b7ca578dac3b59989080b47024732adf735ffd721fdd88638217d44ac912893f031366150855028af0b12719460cfcb72378447f43fde09ae5fa6060e41372e40b89e088b00decd495dc7f37f9e8a4421f504108fc2f56eef0bc2eefe041dc52cde085622407d0da699cdc018a7844e8f8589e62cdd3359b08a6b90c75eb5b77421df5316c6dcb2e0672369f3feb5fc368d112a1d4d00abbae91f28e5fbecf772c8bfa84c222963934b206f8f77886bfc27e03b876d3c33e59d29901d41c7f3209d9562eee953eeb239a9c83f3c649a86c55d84a799145eac8f05303dfa6530cb693bfd5d1facb26753f76c50a3528003044e64359f22d8b31750782dd323b003c767ab6a8332994c51b57563cdc60c181400c46b5e7f928684e049a146ff614facfc17ad5f34e23f2a3bed5bb41cae4c65b9e6a6e62fa7dbf787543e5d8d2dcda4dad9773ba129e75b4dbf341cf6261c71441875a690ceb6b56b1f8a5c2504f17d521e1fb2b9e802db8a2e332c9ec91dfa044b0d948be844b6c67547efa07d74c9f9b1f44998888a62ce1b04a806923e3368fe4d9a1960191e022a1774589533b5c39090351ad793327dea2c54c6c03fe8afa5185e8579ef4f91a7b34d01b771bcb6cf1c9107bbb06045b4f689c034d4026a0540b44c24e9df543014a18\nresult = valid\nsalt = 8ed2f3533ae5da80bc34db49d9c3b3b0a7873baf9148772f286244b23ec6b3c1d9f235310c383c96bfe02a7e8be2c01c\nsize = 12240\n\n# tcId = 88\n# invalid output size\nikm = f39c81ba274637ba1460a7ecd776db66fa91ac12e1429be", + "f84a9963b76c2c07f\ninfo = 516c2d910a221982\nokm = \nresult = invalid\nsalt = 408df96efb424324020d4836d100280b70f5d0e850e5460db77c543224ad5d2ba935060d1b5d63d80923fe922db1220a\nsize = 12241\nflags = SizeTooLarge\n\n# tcId = 89\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ef369d7b63f5509da56c5f6e446e2f03b700ca40c13e059ea0f43b08f5c29f15\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 90\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ef369d7b63f5509da56c5f6e446e2f03b700ca40c13e059ea0f43b08f5c29f15\nresult = valid\nsalt = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 91\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = b8365c28c10d6cd188f01efa320fa26713f7d87bf18f18529071607d1410b93c\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 92\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = be14708389e4bf856681504fe3bd6a50eb33bf71a823337ada17316fc641344c\nresult = valid\nsalt = a0b5f9ccef84deab2a26b5d81f84e62b8800dbf270bad71f53d66881ccc543e33c20eb1b6526ffb53ab50399c5c96339\nsize = 32\n\n# tcId = 93\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 94\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 95\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 96\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 97\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 98\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 99\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 384]\n\n# tcId = 100\nikm = baa311295125e326efd92676775b9aa20a0acd68fdd9b05795cf82e157c7dac61394fdc26cd7f8a9015e9587c5d0855d\ninfo = ac9954349e500c55\nokm = 5f027dcc4e32bc2f1c23de92b8b5fad67312fdeca2c09daa97bf0c81015bfe02ff2c17de1851336833666db3b29ceb16\nresult = valid\nsalt = 79f4669058de474f47efb74371ca5b6e3788a729abc31d47113ca0c2f972217ac9deb56b317f1e80fe42f5504c8690fa\nsize = 48\n\n# tcId = 101\nikm = a91adac5ab8bdd60fb350eb81d7243cf97740787877d41b40eee1c4c9a96f077e8bda335cb0e3b106454e85629bc5e63\ninfo = 3eb47169931585a5\nokm = fca326c96af6690eb9b61b4b2a23d78a05c90152667c87cf813c2c16f56047a63cc6103986d3c2bce48c5e4e031dde077fc153876bab3f57e12e871a506278f220d6180321ce84eb1ea45494d6b1c5bf44f60a397cf01d5a\nresult = valid\nsalt = 07e28c9f6efd74908c06435c95f3ab25f4d9a9e023f287e7298f9cde0cba29717baa1158e86fb70d5bd76d2549291923\nsize = 88\n\n# tcId = 102\nikm = e80e0fdb818f228c505ea15887a42abfd7b6479b589a76c33b0f63c00e7d188a20ef8e98534aa85df6e482750f85ad7f\ninfo = 31580276db515d6b\nokm = 941c9c841ecfd3b0d2c0488e0b327d151081d6f4d6b927c319df7ba4e3c9dd92ebe1c5b420af2f3b50b6991cc57a4f5a6aded05d5be9d699b4c70555e3dae218eb520158fd63e7be11bff5c5601ed9c6e616147aeb9878d01314ff519c4fe23bf29abe768df09bc485c175d9320e93aebce8336bd83c400b69d07fc19ff692bf05d299b25679cd038bffa43405057d22f014b9db5e5d94f09d3f6cea5d479d7e70f31dce39e2acd93f47f789ff094c0ae4c68b231d818548a81cd1373120b0f5\nresult = valid\nsalt = d1dd17d92c45854e1c617830ec2bd6ea613d8debe261ac30f0fdf9358a2be2dbb25f7ffaa9eee85f06df367b370804c8\nsize = 192\n\n", }; -static const size_t kLen78 = 27481; +static const size_t kLen111 = 129346; -static const char *kData78[] = { - "# Imported from Wycheproof's rsa_pss_2048_sha256_mgf1_0_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.4.12\n\n[e = 10001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 20081f8894a1330c4d503f642880e3c30e398fc6235c24f1be752e2d49cd9493ac0cf999e275c4f89ff08f0d9ba4e264a332525a616d336bd9e822f41ab3f4fae2f48ec66c2e52642ed93b7cb944396fbaa727cbfdfc1f20aace99a6f2a74475c338f8d9f22a38cb5bc51752076503b3aef1e65e5a8f8583d9ae7378ded038cf516898ad06beb90a42b85764526fcea44f74258fa4efb1da253d337f65619181ceb832dfe285ce78ae6b15f204e23bab274e87445d9f5df97f41dc8e3a97736b62591d075744b2552f90bcf1b1393e1e7627ef1f985f2bbabd52e43a35d0ddf4c67126e391f922ef7b1bb1911cd6e1b303cb2910dd70672bbfb62ea4eaad725c\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 4bf16f098701d340c438368e658ed8904d3a21f7714c02440d7476ead132766b3d578b325ae752f906873af1b795585a2a0d0e6788fe903321b2080bd0dfb9de42c3be41aeff37e32defdc0a75f12adb5b9de4d067a920a720cb16cfaf56d7c09d8ef384a8aa106545229b540c52b49ecc9d6d14ea70480642b9cd0330efc005502e4c38b96a36456447ce2133df78854307010ec221305dc90570252321e06c1bb01d75100e85e68326fe92488c0c5e58524b10f8ec7458d887cec254d39b0bef921ba31fd5a117977f1945fc04837727456949ffdc9886f21071186bf32dfbd9c3cd6a2a00a1cdd5fc3c22f4bbaab92aa85116711f1c53754bdd2bc384f2a8\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 2b3155b14971f79c9e3294723c7e41ded41af709f6edb2c19f3526584aaa1ef2de2e7a8dcaf5d7c3239f604c421656dc58e8b0852f7a65cd557724a9b2a17cac38d8020e939bfefec5dce0d8993e75615b974944e4c4a811e40db63f13d2b626bf26257a706a7bedc863d0100b676ab70d4a4f6eaf4692e0b69ee4426cfe7cfc3e92d93bb804569883cf31fb282efa5a81ce9f6d9f0ed79251ef2a0b596f80e0eb96ede67e30457a07655d777928b898ed1679046673e489d9c6305dee05abfdeba7357099f9cffd00735165ddc39aa7355b10a8b8612dfa2f836fb9f5f89f1407365d6b39a39e89c6647ff9da5fc6f960306686a8ed8e2ce12cc7fd9870d576\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 501c8119a0f8aa2139ef5e05adc65384fa389b9023532171d514651ff48677aad546326a2e3c02b39ed84e5b7e4630604f2979c1fd7bf37da8e0cedcaecfbea6f9c715141a1d052529d0d0fcd71eb70867e2704377801a0ec721fc59fca9d8b1b08cd9ae3ab094f5bbe2faaf3171dcf1712c534bbc7ea802a2a72d8cebefeeff1530e4081b85a42ae38f630f38c1121199f2156e267ce2467f9b4853dbd29dd999aebfc402f2a0c33b8c1b8022941e754b7a187df4c59633dc6e76cb3200e34acfde53a386647833dc2accf244726fdbf440cd32503188a291e5b0678aa729b539c1f5f97e7b788c0c20b88d90c90a3bf33300d181b9ae797cbc76049b43be3d\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = a17d67937354c7fcba18dd5383edbf2f0868ccbe0a316876fb1c4fb14e7f4c048ef5ded5d01d02556cff0c8bf081bd09c46ce4da156e9810df195c5b65ddbc3025b84f91047049f205341ca8dc55e440bf8d9a3e98c231bb74e71be019cdf451e962d8b7e8e6d766d3be430c7596ffcafbb785e5fe8987ce721ae228832c8b4fe0b0071b0e5c652856f785695f70cbb3c62394a8291ba5f587d4fd7bb448649a72261447aae6a2b750824d400ca402543c8bdbbb8e7c3b44cb7085a83392346abe999ea2a5ea15e9eef6bf08a88096ee4e532369f0059285298b387a428e5e34ed7296e0b53d34c5e23f0d3c12e8a2d3132672a655c7048bdc0c69b36cae602f\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 64c26d43b028f284e9667d5951e70c75e611ae2ab876f66ccfaf09bd54a26dd17983d993bd4f5270537f4c4b2e48695eda28c8c365486b5fc3bde4049dcf6fd722e634fdf5571d29b1e156a48b0c706d96155d86c20dbbb1a47c7e54efa15b25d76f502b3069e2514f89d9bdfda9bcda02301c58e2173cf4f3dd49d8415802c11aed78f031e8e2e50197443e5fe9ab55afd8deeb7b5db8ba7a7b9fce6b7d9eeab9ef25035742d076935c059d076b4714127d408c9428a90cb9891a151eee8de7d0cea32b0ad2d8ca4abeb0521b296b5ac08f7c53d5c85e47ed828e0c11468d6cb50bea89e4b455936376bde9f22eb98b3e2395eedd05d1def38fd5e082ade3b0\n\n# tcId = 8\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 6b77fb8cd287c666cbc30f00bcfccd31f6dc01655c3c976d1b2a980d53be40d6a4a7676024abeb1825ec47589365c07e5d4c3d34e249814126e32ba40aa81ddea0f61fe4e3725aeb9751103fd034cf3fa516fdc1569aeb7b028d192c8ef4ef60a5befb8a4de595bd4717462879f424e87286aec0bce6f9e763ee341765c24cef24f916a52a777595879471e2f3188c1be77fdced941fe0cf739bd8d5a4ceed9fa1e47f6f12dba68cbe7bb2eb81e46c2788b847d0ab6f55951f787db4ec736772851c43534b7ebcf226c2540806d925bebec9d109915e466d08e2470b7e85b4fac66e089b1a535ba703dbc10f800f6bdd557370e9ce761e86466833903efe315c\n\n# tcId = 9\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 4af6c02b1f3c2719fd1c84965658e36651ff891484f4c4177fce2185b7098c861939fcba677e8ad461577a666ac77653ac37fe61b5fc235ba76917e03c3419fa3b055171f959edc7f9fd349209a23a4aba57ca80744f69be6ffd1a2252a182a3a2c1a2c069dd4953dab9a6acb4c7047d7402584275cb726875c0858066f50caebdf7e9afb6d4f3270662afbc66ed14ce69a846fc0c54f9e57bd4f827c0b780c30dcf8661cf4bb678ee0396bf8e0a08d259593170dff3f93dfde9f4d9ced510e07a2736c8727d2f9e973e32524e072a92dba8edb2d1628da03741d227255914717445407111eefaaa889febfc6f4b0d42dd958937710ba5e94414a26e09cb3f5c\n\n# tcId = 10\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 601f6431b0607c80d5c92c86a63d06fcd862bb35eda31a7f331a59abbb8ec18fbc86ec95ad63723216e151b7bf73135c028a5ac3b45f30a7ff8ea43d5dfa6a52f5fe1405e6f5d64abc4999f8c580701bd9e451bcf6d54bf0bd1c83c7e0399e7805757cf436164f365ee76f29433861856b67b6cbd8b235365786c2de9b305e3293792202e1848f9595265ed6fd4b1740bcbcc697d719ff70b9200e65d7711494e18855fac36bf9487b54798f39d5a32b5d62dde3de2c3b5f8f7f4bbaf3ea04e11cc8a4f6247e25c8a3a4e05d831199d14cf44ecc8e66c8ca3883b5aaac3eb5889b23dea6ba6649c8a69cfed547ca936a57b220c44b8eb8604c8dbd81a3500116\n\n# tcId = 11\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 2a31524193054309ce7b6ae9c4bb053f5a5aed273d7a4a609496c7205f5077ddc746e8a4ea376bb879556d4999e788fc8f82378f6281140663af2fe0995a1b73eeef60341d0720ce47282eb87bb79908be8c3ffe86182d174afd0522a87fa56e0d149ab4c32292ca1d1a8478ad4090006b32a147ffe4303487196d308dd59f81eff956bd6ca87ee0246927e279bf80807ef45829824c80b82f7442021bccd8ce4513cbd4d4150fff20ddc2ea", - "942ef318455265b5667a74ebbeb83a05d15f3215c04b113c8b55ec8be512e797a3ace15d2514c2bb74f50e0969eb1a2291fdb6fdea1af0cbea6f05937be614003c1569b648c2012ec5dcde806f68e247597bcce6\n\n# tcId = 12\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 8291cbd81529c8f1e27a907dfef2de16dc6d382b112cc3d2d69f4c6915e7c6992eeac6e4b82f5396a46eab562858835ab0c0aee63d2585dc7537dc0008a4b40803467abd5fdca4114282265c2bd929a03c7892774a21ed6454e73684673d6448b19555d0cba9e4c00c99af77b30f1daa4b15eef8489e15a276fed1553e617a64dc58d5dff3c05853a7039047d243c52e53f7dcfc40641bb9acc33ed96c74c79c93b79f32566cf553428cf85d2d36a070c89f1eceb4606fd285f7ba3ddef70ff151ed0fd3a5b6c5338eb2f812cb4cf4827caef0b896a1d49f49e2c3049462d07d0e64d33f1e2c615c62a958abb6942d9ac8fdc39acc595cd381aead075ab7b51c\n\n# tcId = 13\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 57e8cc1dc00c07383d89a79b5c8e4f5bde2a2ba55a3c7201b3291c4d805b1b2eb36f8f326b542342da180abe508669bb6cc2dd54e327bc70c1e317ba93a0fd21e7fce22a0c597c7420d1d5602ac43d9348ba3eba561f250e301ab955b0dc33e4abde32946b9b3e86c8bf07a44646ca595960bb988fef04b2824967e9da8b0264f1da0659373935313a574b5380f0b54ce1bc0dde423bd3a54f6ae5fafa772a55c1c44eb6edffecf13e6e5e1edaf87a79e338577304141fbc44f0e9eeb286f553f879addd6e12e436fa3af51ad53a72f2679f0ed102d504ee08706fe111eaee49d880d1a0b91924b3b79968ed0f9bff446dac199ee89b158c074927d27b864498\n\n# tcId = 14\n# s_len changed to 32\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 15\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 1abb40f03dbe5b4f1365862d9f095a8d57e8922565372f0b34ef5e232441d577b3c1f19a240ebda880a09cb41a7267732623b0faa414843f9ef063f93a92bfe5f98f7c28da184f011aa787ebd0b5fda4aec1beab6757add32f7a35cb407779aacef43c0429280e5a040cf5943dfb579f86e0c63cc828fbcafc9c8a15ec98fb64ecb5e295dc360f50230f415337aaac6fcac02fe625ef61744488eb7cd81a4e788a443f56b32bb3a7a344900806952f6f3f55f8d9e9217ddaf06a0ffe8b0bf5551d87cc9251d839441cdb3c72ae9c6a5a3de7ab85f908ae7d04232c52143d272e87a54c5b39d399b49ca7e96edd3b6e22c296de69e9e1848038025780e4f1ac29\n\n# tcId = 16\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = a11bd4fdd30fb353314530d60b1cd921d6091658e0c775432b6b702b1563a9e5b547f968ac13ac5b7027aeb53ea8987c9441fbcaf414bd04434445b2ce6a1d9dea2f2f179a6d40342a25b10300d45358f703f814917870f0a47f4b4ac47228574096ff240ab0966bb77ea9b5155c6a4fa0a185ce5d389c6ce28821262698beadd0fbec4ba2b66389d610f290656b7a4f7ea1f4a3c44b3528bf62f72abf7935e0d8b6cfc2db947e440752410a43a0ef77c0dc31b58be021b94118e5e0cab1d8994e76ddffcc2e5d55fa59d1ba792fda9db2b5ba9ec6f6bac395c250e2b8ff245a448b611797322bce637c0b1537c9765a8498e0e0371af2f8ec15f32e765ee234\n\n# tcId = 17\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 83673bf6d178e873e986c9a9750befdf2d6a3f0128ec90b5a8059d32f9f9592349095e24f88e9fc48ae549009f52b4d821fd40848a9aceaec252374b17d4950296e30b3ff489d420b8daaef47488696762ae4cc55ade170c5e0d72e696af793d5cfa04477c147732328e275999746c3680c3dca701592b17bb37dd8c5eeb3a929f932a3521a8004c10c9e3eed8d956835a700cabca21038a9d6dde44f888336c167c04ac26e800a99130a6e1d3b3bd8061dafd2b462102249fd07dc50a2e57a8c6cd52381fd4e1bfdbab18fd602c8890d51e8053c3c2ab5c96bae2847b5539aed3ad83953f47841f8f50fa28446d30c20b2b7dd8abf4e49c0636437c22833ba9\n\n# tcId = 18\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 90c3cb3331e8b352c37db46283a1a66b647ecca43e3461ce1afc49d6230457341a52b558496ff83053175a7bfb4755a1bef0e65f470d6139eaaa28cc1c083905859c1475868ceb1e3829437f64a7ad757c9da3b6e8443e8f981f5c0724c5909bd4ebcfa65eea4e4f7af5222dba64a51228759c69e26c44d9a528d75a5b96855253da88f9b54744b1a8b02328394c452e62ef75cd69f7def67b80e4859ba3e73b08a2a3ff931f44d1d524320a33416bf4fc744847d12e3e973cb870fdc3ac1bdbacb677bcc63f927366f4d0d61ee3bc0d1a1b3d149672c6398f3409fe9e7c7c0a150571573b87889b4f23ef49b6f5984412642e5b0abe7f5ec4b4cf12c46a38f4\n\n# tcId = 19\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 7a7318799477eb6da55c7b5f6a0338071d981011e1a9bc6fa3a2258ca5caa039fc7f768234cc08e425323f57691cbcf5f83d6a3439a639818c6b2bd3a860c9a6b9a8e0728aa7ddffe18f82c02854ca07b17db0f166d2e521ada5c1f85d0c2f259301d3f4b4f1380f94bb819dcfac9adb764a198091e110f0d3c5fbe20a29366fa52d246cc922bfd2b44a619b59b497a5379282ee30608f4243f7328ca8aec20f61aa8b4083abd1c206fbc9ea598d163e52da1026ae349d26469e2244b86139895f80ec4e8b6f5965a28ac4e9636ec3b1e5d685483a0475fa645421ed6ee9633f276aa4000eefb173b5ffe824d38a4d7e24146e4a6adedc3ffde4521dab879120\n\n# tcId = 20\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 331756b92b346379e1c50dea5e05d92912eabc568905d7f290ed353e705671f0f5a43921d71cef11fa2cc23c954ef27eebfbaec77a33147b5c6408b7fb8ba9d8e3ccd5af541942a946bf057d39ac34e954ca3eb308449a9a8fed15f760d9392c32618c289993b38875df412d460500ed0ac7d9b79b0c34e8a64310ad4cb0e7d6dd1dd8ad6aa81683a3420618783a315b2643f7e8c8a95734aa1ea526752bca4d443a18224ced3d2a07bbb734d01629483f5c8b91d94926916e86ee430f4f6f07c40d5808f0f59b9f438723bcfb0a8f595e3da00d5f2c3bc9eba4e64cfc5edd9c244eaa4aa8f7181fc0895c911305fb8dd3d404865f6ee2a4de8f5de7962cfa9e\n\n# tcId = 21\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 28481a5bc8762ab8cfad8d7888e5db6b678b12554a244aebedbb4d83fe0fb676d77411285484ec8b76843d4ebed1dc9dbc2039c3d0e7e5288de9602f7ee82793e75d2320d8a7c254116ccb086573142cfd33e36cce3f830901dc734ef18364e1c0125cd8fcc3c7f4f333d4b05386c3cbdf616d386a086862b591d80c34832767feb83aebdace7d19269b0b5bf340499a9d530c15b19c68ce227364080b27e6f4e017d6dfdf6ef05f4b73b92602a6249391812a286d8fc87204a477d14307aa2e23f12f7452e15d4bfaa3deee56903ed66031304dac16f6393008a53496845079af72e6c5d4781664ec757c741ea0dc9ba628df2dbfa591f16c352d5171b3a0c5\n\n# tcId = 22\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 267cdb3f7ec390ac0910a3acd42893b3c445226413ce38d7fecd825e29d3a7c8a2c361607b70b88f1ccedee4c9d3c8d109bc3e77ad749236f546352713b71581ef0ed3b9a9d1a11035629c8f6cf912cca10eeb2b02d3bcbcb167f02ce43d00513999e4710cf5d4f4d730dffe9e52ac5a11d6453821298e66dd882fa7eeaa99d06d324a1436e2e2f3a8e78744cdb21d0070987a4895697f26d37f79e93f6702619ddc4b6986450f84630717643224d134a922b5aebaa430444bb587079f925ba93a42bf847579b8bd7e72baa5eef82af83afde809ead8f810bf4441107a3095a4f4f137a3a24bd5f21a18cfec809a164f4471c49091390d2fc1c6578dfbc2060a\n\n# tcId = 23\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 7b9fb586f1455c9fd95db25ec66cc1b8e0237355177cf1c40df59ec1eb84a95149fc4c06117e8301836a32aae7e9ed18b9eae67e5f76ced60e89b8e11d3467afd71194b494f7062c15731a475586fc90ebbd1b382d5c55c0b319869b3d409b82cec0afb19f6352efcd6f1ed949f27a0306a3fd1ec4722cd335c1169871c63796bf3a933dee3f81f01fa8b6e710072fea562cd938fb2bb1053845555b07cda74f144ac84d9557326cca799af501f9474cd8b18a2af4d1a12f93a5b6dfd1880e58ea82e98fabe96fa76981a6243e8e4ca386f5ea4463f615ba1812e38842fd51c71e0b6a9da68a2b1432a7ce2686638e55129d4224c94513207ebf90e8c5f435ab\n\n# tcId = 24\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 6bd414e877abc92b608b08a273946f90ba6c6c27de2448175638f67a6b14492fc1415ece540be3e3df8c8ea7154211637d9b5144312e113bda2526b6fb2caf7b07673332dfa605468e37f4026eadb4c0f84b7b482ba6752839fba46b765709c3c6e54de13953245a3364bbf21222374eb63e61e68d73a126f40f115405fe9092b00b60a7f0b995092061427454f6876ae2ab3b2757337349ff3ca3e2332888b9616fcffb3b924977ef856553f55b2f1b115ef0ad7856f666a9863109c6498c52271ea2e6854fe73e9e4d4ec666fe668f0ea1d1af19853e9a07066418697429cc31fff107b6ba212b4a3cc19b59ada459efbc4ccb90da8a0bbb48280456de69d2\n\n# tcId = 25\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 487bc9021d8e95d05c1d3237c3e9f10df764e8f70a068fe6d93b865233f6ce8088bfc117c9086a3bea29d86e6d75fd9c8700e871f6027bdd0b37c1b581dda807a1401721f8a582a06309bfdfea5ef177c", - "b7bff47179d9fee32bf545e3e4513212b68fc3eaa43f9bf86ab066fea31018299f4401e3e0985c0d450f102162896e619a2083d5fd2f2a03fac6ad99d38eaade1c56a7996a35e5e657078547c43d13fbf62a64a007c8f03b79b9c59d19697069344b7ab309b532a7449878d3c33472098026917f99d07d4b24c39c67dac099d77c2c0313a557d8a5aeb896214211fdccb531f390d91848be459df01c014454c8c9fb390d6f759713e30128a9184e881\n\n# tcId = 26\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 5bc1e96ad536dee1b3d23e31f053b9b0e1439ce7c48ebb54f01a81de10133612dd0c1b4dc0b60d6afcbd18e40123b40236bcd773b5ff473b5f35c6ed4294541e7f028acbc29f5583e93331d4c03631afaf79bc683c187c7929d2f7db52d1a34d88210ab50231219837e1b60d49ce8048e9ee4ef55c2218674f297158c711e4fba62351879e7d058e0cef25575cb0ab9f6d6961a4cb6d9ab0a68a301fa3bbb8d0899f43bae40ec19758591e5e0cfa84dd08f7859ebf54c76e04e74748833313bf15793b5bbc47494f3bf439d7fb5225640f3f3756d9d4452f7fbdd828fe844f757a0cc585ae0a6a5410065c8ce4e0319c356565ebdb1ba0fefe780c70a5135365\n\n# tcId = 27\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 2b3be6997057ae17c749c435dbc68110204e95b3e127a230121e27c95aace90e9f221e2763833024b3bb873368e3e992897d8767eba2479637ee9383796cbc10455da3b52c7fac1d91131e3f78f5f616b3fd413b310fe8f50ef4f721fc026a6222f0d9113624cf7d481e79e788587ee659e81296eaa438ff13454e36ea50e9f038ed2a7548a8d169635c3e15bc20cd83c8279d16e6b0edcac2e9c72b9048dd7fd1d298e414c3832236d612af3841e426c74f20484ef408b19f22449e701460633fbc5155851e812e886cbfd6218bb27388e20547fb4a48d2e0f9a284f9bc1e9391b28ab7f3f45ff5aeb6af12faae437361877d04e2df1a1057ac3a680e5123ef\n\n# tcId = 28\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 4bb8fd79da58fd3217661938c90772eebde7bfe5d49fa597cf448019a56d710ea126e8b94aacb45bed81df07ed4c89a9889bac0ad2abd506374d5ebed14777673fb1c51a3f844e9619bf707c9866b21721a75458c100d57b9ebf6ca58aaff1d47cb2d0f26074dc15d0900a11d681bcd76b111140500a51cf8c1b5ff4771176f1dc0884d42b36a15690b991c77f9605ee9c4329fead40364f2b6372812319c0ed4a6a15c0716da9426ddbbee79938bbf8dc3b459bad11ce79c0bae6080a06b6c8c1c051fc37e0bf0546c7b55b2cb6d90bbf4961ccd1adc623c9b9b51912d6b78843932ce04323f8a9159d10ac94c2d980e9b48fc143299d4c830050ace61f7238\n\n# tcId = 29\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 9aca5b5fe1369dc46eff908e690ba88744db0c86f7da7e644eac314493ba6a7d003dc5400e1c521c373ede410afcaae8a4ea8e14d1e6c2ac3f39c0bf8bfeb688962260f91058ef9c1a0ba39689736d039ff86524a97d8eaaf248601793023ce6569c3cf15dff30f41e384690ab40812cb1e4414a0370fc39f526abab87bb9a405fd44869069f343f28bab50a1e582d4bced25d41f9fdd2e958177a3625bb59c4677f7f749321023fc9b9b724e8172a4a512743a1c78c3c8b1f0556fede02e9f6f2f851fd31e21f0886a35d12a0e04f041251524bd7838d91657026540e133a2ac1ade52f03efb509c30578bfde272f0d9fc2e515e541259dfc249bf1762b17b5\n\n# tcId = 30\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 9211ea6374362d77f491d9dca7e8e8d2b672bd565dda1566814670d22e3f211b38246529a5f01333ced70323e6cc4de58e9dee11a90f345fc53c1cb0f0c2287230d1cfc83d33c6158a8730853b5163c825ec05084cf0816325e21ba87f1685197c9891ca3b89d8d8bbad395f7f71b91ef937a1d81bf7497356928b77b10fe270500a731d498beb85490c1d3c4145336d2a8ce8430354b3afcbf0c923b0b0e824adb36d7be69a8e951f64a5b1d648dfd9fea49b59c99efcf015c6b3937d8986100f48022346136eb56f9538b115284ead85196385d91dd414ee22a3c7f40f632cbe565c8d0a325404d0d4905282cf7acc6210a6eaa26f3c3961660a944771b342\n\n# tcId = 31\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 39112e1c8251d5ffe1373e70fac946358b00bae6a461a1af561a82d81ec4acdc63eecb3b98f5f070929dec66a758d4a12cec2600208d7597320ba5db412006ebe76ed593d8b1090e93be21b1c00700e393ddb4b7d7a8bbdaab603087abd2b90a0408a775a4469d4f2f6b34d228da55bb4872ef6dde5282f5bbcdd6a8cefc71c4caf00453e6d6c59321b738d3b21a3d8f0da4afde30c16bc5722ac30ad6bb1f9fe0451ad150fb3d67a805993e506a80b2dea3801bbedb8ff7b676f50ca3fa5b9bd744c00822c975e2ab8cc6a917436279a9e85aea62477ef84270f6efe495ed503623108ca39d5c47bafa3505f04995ec9c2a0e411fed9179c9a9e94fcecda5ad\n\n# tcId = 32\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1baab34d753d4c169107ff7dba46ec1a4203cb1654489d6fc20d206bb21fab483872c44ae8017b7c07aadb8e8489a2b41b89f9331fef63317408105eae19900377ce150ec89a37b26bfb169a89aa1c71a83cba6858d5b47353e82017f19a6688927768bfd0e75bfcd71a5e1948543907d65bc8fc813436a15949fbaf0a7f95ddf010f298df9314203838a60b39c5bcbc7a438500649950bf28e78f94155cc664ad5ff996e51789fb13038e1757dc19b6572f028fdd8be318ab933adced2e87b569544503916030b4060e231b0265372805cb53214c6f21e13c632ce08031ee368bcdf3eacb3b87269e8a8684703a348524020e820de93f1f334b59cddff51a12\n\n# tcId = 33\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 7f04560acea95c8b3df67a74fb2b32d904e5c59b43b10b11519e796efa77c0c9b14beaf1ba1308a65fee50e7862289d46a3cfe79f423e7d9201dfc7428bec7f304228508b7e8e5af4dbabbb3958d1f48dae4016cf699421b7a9a0b1dc1c806a7b19cf65fb7d4465a031bd8c24071b397dc1f6987cddc8b69f5f3dde25fa36c2ad6e030c64413bf3eb39176bc003c909e37d28d5a040c15bb4a73c74c39c4d132d09fd565abd7b63d81115ecc8a151786f6ea50882e50db362cced39702ae1ecc176cece9509ff071b87f142547ca3aab04bec1a7d0c6ff35060420b99e285515eec016ec419caf75cf11af56a395187fe6575786998b6b4348561a0dd68878cf\n\n# tcId = 34\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 1c029185061385643943dca8adefc5666ca039765d29f8baa20dc3cc43981ebe1e6d1f09a617559955437323e50f6464a69950baf23c7463b1b1c6761b50bba89c81299d4543f76e3e4ca4e30ce710a20707b18dee5d2ac9e0d9330148526f193439cb33238ef9d82424fc1287097e7626bae0130b735a22cb6ef08ba4d840b370c9e8658f83267e52b8d56ae0ada9dc5114920f97884d6bf529bbd7c81b2f9a700e4df4c71a8ce3141f9f4be31c9d639619b20f725f55475b38ce36faee929864a5c7793ec26dd6d1c4b75f111feba3765d0d35a272fc52fdb85f2c0bd1bd22cfb47bd0ba58d00af119759e1f4d5763f15cba4e788fc6f8a221dbdeb32c484a\n\n# tcId = 35\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 0594a2a0f3d10857e8e2a89d72df80c8b37977bf2c390087d1df7672fca50d21b7a3b24453b55afee4c6fb2adf83e6b3e6a63db31b685ca956bda1f3074eb53364d9bbb9ad16883b56ceb66cae51712d592e10f851c4431a4f7b3625c774808bf7c694c582f1f20c2f51ca9f781c6172d05201e1e0ad96f7231c2786e039cdafcc4045bb078c2f432d3409dcaf25d8c0549de03d7964606aa0fbda333a0eac26e5f3ba13b1d6dc710c01a17e1a24241bd741d51db4cafbaca518fe32feb0ed5cb916c8c094c41f092cecb7a9cc0818351b5c8b6563bba32fb8e86b4c81f4f57c24a880e91daf31cd1911aa6690c8e45f00dd62986369bfa5824b785c1c56fdbb\n\n# tcId = 36\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 10bc1d1d1fdd4a8f74b17f2c8258078ef5c4f5fb973a2505060b126504c9366a4578e2a333b1a9c580239ee959d17017664631982cb8554fae8cedae07eb7e2fb69cb702db93d948d0d0e4654d9eb49192ef87e92f4d229ba56f165a8ad4769d0c707111b9be90c6cc29cb3389a9ae4d5045d8a69234cd5e57fabb76e5d1869d83cd2f3ea8f0419194cc54c398a288aaa35f765ca8e0e264865b709d5a21c9d807c4c0751f9e4e68c9cdc61d93113e5bb811c2e217f31eb14f010aad77abed3e4305e7bdb1066879237849883c3ef099b85c78352b32374dd244e173edc3824924098cfce9d729166ccfccadae8871266927763ae6a5e750f49b837b60682aa9\n\n# tcId = 37\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 38\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 39\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee", - "82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 40\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5\n\n# tcId = 41\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00005e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 42\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f0000\n\n# tcId = 43\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848\n\n# tcId = 44\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n", +static const char *kData111[] = { + "# Imported from Wycheproof's hkdf_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HKDF-SHA-512\n# Generator version: 0.8rc17\n\n[keySize = 128]\n\n# tcId = 1\nikm = 60ab7f45b0ad534683b3a6c020d4f775\ninfo = \nokm = 2109bd244744acae2b8caa9e70f57596ad680212\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 2\nikm = e3db76e02278cbd2adbcb4555803da11\ninfo = \nokm = b28e3c338c70ede899f2a2654f2cd7e0d958d16eab2fa2a76035a2696054b68fa963c617b8fc2a826917\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 3\nikm = d4dcb92a769f57c8bab8a420ee0aa351\ninfo = \nokm = a8420281c08c5f087c9d54d5660847805b0fff2d6257f02bf849badfa8a29bee84ebe704a6eadc0beba0c33805d5843e167b1966aeba6a15b0f1f7b3db8c407a\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 4\nikm = 2d43e54bf0c94c9cbff4300f4aa69ab8\ninfo = d674da3bb47d5c7e38b501e5251d9348af601c44\nokm = ccd42097a730e47cd2908a834f9d81a3239f4b91\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 5\nikm = 4055536896c406d5fe14a6cd6b999bff\ninfo = 2094768a8816f7df070d6e08b7ad93755dc9024b\nokm = 0191ca548ab4c1f91eeaeaa2e561f954983885dd363c80079f7bbd053da4274b236f4ef0e4954b34a386\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 6\nikm = 5b01b2da3166f217cdd68de8af60078f\ninfo = 6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a\nokm = 01e10d4c477c906d4f67105e4a8054bd2e9479d726166893fcf77b5df431ad007c0ae42847d3706a770a5e468783c9519804be63a404112dcd4ecea952952b73\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 7\nikm = 467403c2ec02a235bf730ff37e8d8ff3\ninfo = \nokm = 13abf6dd4468e2db7114437adc914cda3fab1c26\nresult = valid\nsalt = 41f0f173d307d40436c25856cf559f96\nsize = 20\n\n# tcId = 8\nikm = 3352f942aa93071da6d39cc5ed8dc460\ninfo = \nokm = 3cbd7242368ce2eecacd1839876cf2e8ee04d8c54848bf5515dfdd046fbe09483982d406345d1f71a4f9\nresult = valid\nsalt = 57a0db708b25a51afc4271803aa35204\nsize = 42\n\n# tcId = 9\nikm = 08867e76311126089356623ba5381e73\ninfo = \nokm = 098d9f9e0e0c609b94e8aa57b0449cdb3929605f821cda305e4d93746553a40a1e4c97565183e116511c3dc5d9d56561c698849a114692c8128b5d3c1cd728f7\nresult = valid\nsalt = 0c164c443edcdfaedb1ab150f047951f\nsize = 64\n\n# tcId = 10\nikm = c55c41d69d2424a520414e3662aa7303\ninfo = 3fdf20538063b76901d61bbf9b72b0c18749e00e\nokm = 19c2ea76fcf7ea72279de10e44533436300e250d\nresult = valid\nsalt = fea9bfc92b74337e43a201a2dc199e27\nsize = 20\n\n# tcId = 11\nikm = 5d3db20e8238a90b62a600fa57fdb318\ninfo = 2bc5f39032b6fc87da69ba8711ce735b169646fd\nokm = 8c3cf7122dcb5eb7efaf02718f1faf70bca20dcb75070e9d0871a413a6c05fc195a75aa9ffc349d70aae\nresult = valid\nsalt = 1d6f3b38a1e607b5e6bcd4af1800a9d3\nsize = 42\n\n# tcId = 12\nikm = 8677dc79233ef3480777c4c601ef4f0b\ninfo = a38f634d947819a9bfa792174b42baa20c9fce15\nokm = 918e9cda37bf7f52506111048a878e64a503f9869d0c2615047b995f1efedc4f713b4dbcc940838e68f6a2bf772ebefae9154e9075da80ea1fd68b9df580ad76\nresult = valid\nsalt = ad88db718244e2cb60e35f874d7ad81f\nsize = 64\n\n# tcId = 13\nikm = 0f602703d37943e0253bed3da331aff4\ninfo = \nokm = 60738c594db9638656cc8493db969736e743e152\nresult = valid\nsalt = ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700\nsize = 20\n\n# tcId = 14\nikm = 9fe65737574c5c7aa67646adf8230ba8\ninfo = \nokm = d02f9f8a507d3cb0bc047b0d979b50f94dd9f3d805a5d7f5cd372ca14479cb698e17a95c737849aa7881\nresult = valid\nsalt = 73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a\nsize = 42\n\n# tcId = 15\nikm = e8f2b1c3e6a6c3d5ee0a20dd47aafa78\ninfo = \nokm = 34718d60d8eba9f7ad6d111ef14160652381239551aca21bfc1f250f8d04c64cb6cd503c7f5fb3ff6b73ce234cf6bf91056228a8a51599a39c402e32d47618cb\nresult = valid\nsalt = 3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c\nsize = 64\n\n# tcId = 16\nikm = a679521cdb56aafc5a4b76db0431a4dd\ninfo = 44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974\nokm = cb914a0b318cd57eda5b9575dd511313b60cb7ef\nresult = valid\nsalt = 123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456\nsize = 20\n\n# tcId = 17\nikm = 49bf155ca102026f2a217ea1bc9843ac\ninfo = 851bda4faa8f7add2a3cbf0acf9c2786f8f955b2\nokm = 4a540a643b1597bfbd4cb38953f31b677c02c40cdcbdb6c48984aa8ff3e5dc17caf09d0a6f67afe92cb0\nresult = valid\nsalt = 76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8\nsize = 42\n\n# tcId = 18\nikm = 6cf725e939e8824d4392233eeac75d30\ninfo = 495425d9727fee2e2b7e78899868c1c3e7735e1d\nokm = 379e6d4fc3c9b344754a1094eac60b71e47e281695515987abbc3b22c1e267d95b101592896e08c869557ea82ba075d9c9524d3cb79d7d8cabb33364f5252968\nresult = valid\nsalt = 1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd\nsize = 64\n\n# tcId = 19\nikm = a319ff7b5ba9b14ac72b681cecf0f742\ninfo = \nokm = ca31c0e0f5ddaa7fded85be96d6311d8b935307b08127f690f15f5ce3ed5a44d1c226e354e8d7e5069ef\nresult = valid\nsalt = d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24\nsize = 42\n\n# tcId = 20\nikm = 34bae5a158c1678aa76a744417a70d7a\ninfo = 87ec30aa53acfc3d09ccc1d57d654fdbce403cd4\nokm = 65f5385dab06d375033a6a25926ef4bf5dc660737ab8ccef370af10cc9dcd7743cf273fd048f64b7301e\nresult = valid\nsalt = 1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01\nsize = 42\n\n# tcId = 21\n# maximal output size\nikm = dfc7c0159b921546a4ccb3067cafdd6c\ninfo = 7fa60cc2c830aba2\nokm = b52c51a447b923e2e6acfc05cd6fb0fb65d8f67f7facce95d3fd4b0dc0dc41d7a92bd06c1fa156d7756d603f8c26a5023cb842c7a133850e842aceea3779417d29a517452fac99855a2ec52503e725975b1d1142fe20608ca753d39301d37d99ff5956b45a7b587e3ad485e135c0002dc9918ec49a985d494795b7cfd53641ea9ceec7834d33d060bdb2eb158d10caccf74f87465052f71c43e67567e62975f02cc79349ed381720965533fa5eaa172d8c7c017036a0b4076d5b76ca16f69586aecc94d2e93585c4c90834ba697d0ecdf04b322c4a6f1b468a7c89bda5ea1307cd99060427fb6c2daeb2f25ad3572b9df69a5bb783d0e91f5f72f95e3aea3575de29e0d91aa8011c85dc918481155dac096260475076e1b5b2cf8061e888de70697899771eb8eaa9c899de2a5fcacb78ecec49a1b8d72df2e208eec858e2af089003c34079a24c15cac878d5339933b91497fe6732bd2d0f77cfb4a5adac9d59a778e38a65c986fd4cbe5f3661ff6e4aec2cb1f103660708a06b9dda3eb50e76629375c4bfc4027f563ffffb0a6b17e80fb1c8705fd28cdace78666dcb64e009ebbd67d77b8fd18c1cac8f7e114c18b4215f4678d719672f7c3307eafeb91b1ac44675654b26c49ec71144fee1fdd0c238be154768be9e851187d41dd1e8842fb4c7de48061cb1a2568a8682aea5cd457453f281541ec0544da726c0fa38b76672867763c1937fde3c9c3f8b58e4120a1ee1704a3dc472da40ac9326aa417b49e3a9603cad661bf1c61f92dff92c553a8368ec0c3b5b105e4c3a4bd1b02a7fe12e93b6674a2b45396206a113d28bc77fa6135d1a3c5d4c876a8c17b6f4611483ed080642677255f7d0219c9e6e7e661ddf05fd7ba333194efa079121091d9b117d9f0281c2a0d51bdafc8a7e391ee607176b1ccbae5b0df7a936f9611753cd5bd815a9fab6bcb2a95343dd7781484afbcdf55d260335cfce70f07b8f4737c49c7a9d93335fbf5bd2595c77e5fb088f81c033ccf08673b446da6edd68cb0e1cb2b93c793dbbd3f845d76bc90728149d6f5bcf3360a5601d42e6befa0574d89ef6f3d749538f7fac02e4b122ab93cee09cd710b0aea2570d761164f6bf37b43f2a252fb5d17a737b83ff36cc07ed550f5cc6d32679691d9cdd72c91f9fd3229c8492c02710a3b380b8ff95d2ed3779cab4abe7e1d16d21b0572a0cff15488721e447efbab8db70c2a79d36e80b6e7da11101e06b560bf6c3dd0e3fe7decbab8c3a023597d07f2ae5af73bac662508f4a86db8e71b9e02545a970f614f66c18fc69e569ff96fc32c05f1b3e87d3376131d69ac2f0aa9e50f4c02806f164a29f32852f64291862609f423be3627ca2a0b76e09f1080c3b602396fc043c7bb77722c08574385685f711446600a98718e78f49ce1ca2d522061bee0dc45a5b899769d098282d1bfde4f35c9a60101dae768e91f59d69e6b9d6f5c08c067044c7efa01790ad94b8e3c562ea8501f67b43933e76a7e416bdacf52f7ced3f5f01af4e317b5e537cb6d1b96960832066d8ccc74ca06664a8416a390ca7d0f31aee6973ea9c4d08d7a14b6dcba15203cada6baf08934cd211b6ec988cf1ae8b23ec9da4f78c5a73313fe294fe2d19c5dd7e5086efaf5956d8653362f03d70a7c4a348ebbab64831a12ba64081e8e4b9233fa75096ac0f0d225f2ca3d4944aaaa7da6dc1bec11a9aecb14e21181bbcd0f5b466d40bdbcd69bbddd51a85e2e9cb8becd5da2c7fcaf20283a35f6408061f9cc0bf68088c68df7e257492f2b1a77db3f6e3884689b09ebe0af6d8bea07eb4ec4f78aa4f61f94533311ce24c8e3bbca0e57d96834e2ab1fe9b80f8ccab305e47e63145244f340480513ea6089fdeab01a69f4401d2da6aed99176d5603cedfad1a9ba79b277c35611801c03534b1de4784e5def8f2e1d81aa68207968e1e9baf3405cd5fffe6a0acab1a18e01540821cdc1b69d344111c6043ea8dd9196a3eb2ea9c2b1f6a1c77564c0eb144e376b9cfe74ba734eddec86ba19e2c57677547ff6", + "5dce2091d57fe59b7515941acddacbe757029babde6d8363e9c87ea40973f121463e706514a6b93cacc4375b0a4b640731d39bad93aa5d81d0024406b9412b951158a4a91a40c39dbe50295b01281f78c65430e6ba97ad3106a672721c80909d5d0d3e95b5e81308fe7e9b7cd6145dae402c32967ff73b04a163405e8d104ce751203d2c354622370b9a54601c1b1c9d484d3827d2137faab9fbd6fdae854add24a933b1b32f33985cf3bc1132ee2f6b0399101801754e34ef0d15bd95a40e9d8b3241008e39082a518a3882e30ffa1b4073cc637b2412667d4b51993135746b748fd88ed5da3e83948d278426262368f57cf5179ffe02c35952539c1f61591825c63e8178f45b6eb515e4f02547f7118b39646b8840694ceeb28ad96b4a1f63941fe68cba5eda641538906fb6b930a9e4fca5b02b2ea1e155093dc56bdc8c88780ba1ac9402fd0674ade1621e0aae1936fdca343e6a05e791147150e06c9a5720c76cd7f1b6ea0e02472deed435d69081c57b88c33618bfc31938fb11e5d1e731e1ac83b24c15a32e3c4becdfb839c5e737d21e3321bfd607300b606ec2c73544741536cdb72b0853da920453443d6efd99694124b61d312e11a8bfad436df14d04f9f9fab14ec474c5df8f81f4dd1de24ca5a4a74880ef61106f1218b55df34ed85ff1a6139330c8df45b047fa3acc4f3b1c896cea3a979e8dc5f58ee34c44a82dcdfbbdb6a42e1332579399651cec217355acb55e45f8206bee4e53e6afc6811704e3119e191e3be8182219e8543095cbc639f1b66b4cfbf96fd3b7d02ef6f781b18882e8dc5ccd684d330141029a9d8c8ebebc3a9e49a7a0f21facc94ebe64cc538d328679f38b06f31b3c5996729ffd9d1cd95e7ad33e7c5dfc147c3e75cd9dc417a08c910fdc3041accbe5b669c649502e16c02b78729784d08e81e0bc40b4590836cd877f80217e23bbde955d56176372221ccf1f18b1bac1f5c150b0b4bd764206b7cfe43716f4bbdf7a44b4407278bd849479865a581812221fa56ec34c30a08fff4045853251a12f48e9bc4fbf58fb1cca7aa68b5703ab6f6be834923c933b2b467013a0e6c156f417e14ae817f20a18898db4806465980eda6f166dcd8d8e36f8a138a96d65aa739a4c3ffc5777d1303f4a3c44751b12ebf293df5fa49beaf657ea5e10c06c5160635b5ffb0b252c32a2f0cf448bfb934d099fb450de717981befb8fdf24fa711eea66e3f670124b68eee9c7861e3cdd3e3d1366d981a6362563dd7cd1c3f87faff083c39be3cf2f39101012bd105715f36c34ec8d6a4bfd35ee74a813e4fa0c98c077f6c9f2ebe1decc3b2455f6b2e99121f6b1478ca45d6b2ad2903ecf2294741f80d09076c447bed7da37e3445fea133a4cab5de5c4f7b46abb84756925f3e1e1a6adcad8cf667e6521aaea32d8fd5f423b9ad7fbd6003ca6d15d6457f31720d5ec7833e58866465d89d807b9bf71be745241e6dd2a179f5d2b6ebc9b92ad0a86a7c64d6fb15ddfaba5b030ed94a0cde4ff8f67282b572fcfa85072a3f1102fa710e60e4f59e906fa190ead2056a35efcee0d74d7d6f3bc05fefda6a43362eb966944c23c99810f0ad6998427f33c0e94388ed7e677dee402c48fe08409bb8e7a2109c230f1f0bbeacf57910d5beb58d1d83c10e55454cee4de633b63fba04904b9f796fd0d8428522536c50ba8ba2997b43198ccc4e3009eecbe43ff652e3e17e6cf0e9774b4b8616cc9bc30740c85fd04bdeb181aa281a3fee92bab269fe0999d85d89e8cd1a4d1682ee873de633eff0f51473e0e29d625c2582c2d67d941d6a80aa9eae47bd8b1c147601eaafda28e721082edc8724e3a6ca944f2b96286035fe8017a9dbfdac05d0602037bb330ad2e05aa6ac6b771a836334a7a8eae30f8a0caf757b74e63c995fdbebb159152c7ca7105245597035258bd9b031bfe1951c688cc224fb3ba8da6063f244cad38b8fb5db148dcb838eabdc402572bb30cd8ab5ecf9a220c513f6d45ae3472e04779776b014acd812f48b1356d2c8429213b0204734338d386e29ea394fd856533c1fa81483a3acf32cb33025373debc7d00c8d5a153dd3e56f5069c44a8ac745cb6d1cd6d0a37ddf4816bb64667da38ad6c75e246ed358e539febd606bd66d12153ec3d223a5ff15f74d7a46319c73962aaeaa8cd470a861782ec3de3ca235688a99bdd8b234e61f6a1264fb93292ea2826e3695ee16b6c57e4287220429d2d1a28c6dc8b5a0b50117d23b0b5f4df498d3ad61ac6fc58e398a9f4093b5aa92e23a1a4b5a34ef93b9662e60baccf9bdcce4c058b80469c01975c6f0742e7cab07c14f975072533081a312d30a251867341f0e904391252bb5cf03e9cbc9318e2aac65b0a69c506b7f9e8ad7b9d19ebde74801e0526a2bc03b4821f8cec964bf1763ba94930135d589dbbc63a048c42d79ead50613135278685f99a38070696a4c8e88985a9a4c7fea3e23bae77d287db1281bdfd00e60a5a5cffcf7c29962604df3017c8b4f4fffaf1a27f2d353fca7c40784219c8e31c06ac628257dbc3cecd1341cab153109fc5e0df5e89c0996525ae5d2f949876a85e6f5671e9043c28920f46f5c778490cd1ee733ca3eddb8003abd82fd6973a45e338b9091f472ac877ebf57161b9afc4ec5721a03f17729c95af786d27f02da6c53f43d339e313bc11aa483a354fef6e36d17508bc8f22a98f13508af80a5f136248cecd3c34da11b2ebec4b2f135b66f3188803b840eca048a559b33b842d340e489df31644ec53cac0d10646d6100f76e3c6e074a13e4194796113a770331bb84bd00fdea57433ed74849d90410e2a2913a79d642103a3b732725d6e7a7c02c4fa844fa4866aca3af7c257cc94720fc032eb482d75a27ffd5491b28144bc2191b2db5d4e515ab4c79c55af44000a821f02c31621b0efeef6a4ef945c59ea4b32a6b95b73bf9a2687a3d059c9cb7ea1472271066892c4ab14198897ae910311f0f353ddf4f9e8177f8bb10dc0a64e0c9be776c07d94fa788718973226077dffca41bcbd57c0cdb2cef9b95ddf7beffa76ea663b28225b382c11a8f1a9a7fb3d1ba4448c36aeb55e7a49adba4992d057dbf4dde3f24d208e0611ee7e15fa715046eb32fede6193f64356da54799599a582a499ed2c48182d9a4f208931b64105ed27385ac1727122cabec3580897762509a7a5e5fe4c3bf921bbf2f0308905895c298633dca6450cd9334708b3c0342c73e32674530d6588a7528cf2fef4077597d18e2342b692581d6ddd977ef3a7bff43dc0c5078f38985896f6e6dc753bc5d2b02d8152097f62fb92508bc80bc556e5295329a0b1502b4fccce062bf1166e21da5b1253c0165fda2d31e6d80b7e68e4687ba90acbdad5a8af67b06bdaefdfead0deed71d318805adea6f641fb35b300b9f79a8ef3822463258684e0ee033b5c304db81f3c104fcadc7aaeefd80b8184e2d016440463948d35058ba6be3dae282d096beb6cda140c3663bce15aeb07fae784de1372f766c0ffb2748fb1210f5eede51c67527dcaf5621d225586c17554bc78d367d70413e2a1e0cc06bebfa1fef2b7a971e08e50087d0266a4da1505dfbe5f639d29421bb7045712a603aa65d54e9070e4d71fdd4a14ba92681a8aaa0254b198dd5095780dab36afe8e6e85289c67740cbbca6723ee55173b1c36759edf969af04cd52c05480573f60ce7c97dd97b64e3da1b9889bde260d1dac867c75d365476678c33a4cc2adf218a1d469af05e821cea216bccbff7ed7ce7af028816181e01eee51a9f72c4520abb40a82bdbb8b7b69e97b92c0805555a9052f17a123ff4a1c797be25a661cfc8c3096dddfb987022bfaebf169bb7f3d83b9e66d1999bc8f75df07be79b3be2f1b69d8a5d3c4b9e3b8388ee06bb5891374c922a99f597729066efca97d709c55b9dcb49384a2e49c63e4c83c3378b8cb6147405d2998d113bc29909ebb2fe97fbcdeedfc89d686763bb9a43476a2690600a3cb83858f9198c1b8d5969dd534e609cbf3da0d311c70896772531a53f4e8329b2d8fea575831bfb77283bd688dd6a3004438cc10f0dbc4f5b982fd25325e16b530b6f3fd015036b92e166b5c38238211b81e8f7b92aa492027bd91fe3f8d879dd4b3220c4738fdae0ebd462f554eb1a51987988a130e78c40e0e03c7df1f7527d87899a1fed1ce4155992c753f7b5a8e554b99d14cbe36ab012687e89fe01a87e250bef650611d2be15071119f9649691eef5a147c253eb77eaaeb53d44b1e354e0b5c00eaeba91dc4c5eef389fe861a38f1f9dd4262cc2f85351b7dc1b8dd740f43040c85c5fcf4b3316738c1bf0d31960416a6cab54112987262ea54c06ead156de660559805558ab110145b2df2a601266991f00c9e4dc7567d33834a13a156419eb1cd213629b3ddebe5dce71212c4c08fcadc22ee78687d465b6908cd578729ba23f326c7f02f68a7e567a5c07effefaff4bdf726dc90d37e1f3b72e8332d3ef5016fabf5c73c384816e18d175d718c6fb5f702d39063ae9b92e05e1674cac86a7c34db1f11eb9dcc0898143d8a66e8ca343e4a3f20e593ecb311ac06a36c4e84068de483794bb0fcf516bfb291befb6ff7af518219d6bff8eab670b42e824610522e805aac17808ffeb87ff7bc135de4eee0fd200c4344fb88e4c178fbe517c9f2a4919dc2a3f3c68e849e255106cd5216235fc8d6a0ec04d9f4765c7c9f58a71d2ea63b4446b5ed4cdee274a224d3c4ee5d5edb1b0a7d4fcf7234e612652e06c88f670eccf15086f1da39dcb273e1c0e7365b7fd506b14944f2a387294a3221993e60f0a10a50b662b886e199d3421d0710bf08ebb40a876de217eab4222db41590f13e7660939173606158d050d3d3e5e902b497bea23c38b0715033e0aa117fc2ac13c8f467a9e2547d58e60a68f478b78e6ab7bf8c963a0e708a60cfd9cb5d9e3782bf3cf2449d0df555bbe8fed61c7b55e56b056ae1220e94e13ae292ae2aeb6fac9ab5c5b920889dc0c83d2852ecd25ee82227d112a1ccd356aba1087f72f3885d302b7d302dc44b61483e0d1a692bcf68d96574a462fe217f323c5d88e76cf792fa81e6956800b6c0b5ef54f596dec633ba322dcdb6affe30af64f39bc4907ad4ed4f74e1a067fa82f76fab1d05f0804124e65e2afb43cf97c3c335fa71b7efe743955a5b5910c297799a57fd46828969f8c9690d4e2f102aefb6ea3acd049d811d977827b88ae5c01319beb85ca0a9f3cb835733b8945ba5fe50c23a84864800c87e9e26e3271612006e057a3fc38fbbe52bf7db6bac81d1c1b6c1ec9d12d09a27ef91546cf9f2ac6354e2118bfedd3fcceb77c6aeef1abc9fb985770980d65dbd1b25651268ec9826f979d10d2c9f7b267349c2a2afe2d3a799472a1f555f38c8ec67cd153b3ba55cbc3864fe8bf4e8624d9051fc4270abdf759e1cb1ca09374a747e806002039acea004ba5cc557d04701871c4ca0c5814c1a5912c5ba11dd66a36ca49b098f0d16a1a067f3e5df1c49a6a1ce5a82851a518986d12e0e207eb73c94648ff95437de11e49fe8f1f99f2858356472fdffe262a384e42443cc535767ee5aa223664cd20254e8a26121329fe22b0f64cd59a4b4558d21568e8cfe22272163e3d2af3805703153fa7b252ecc87e2ed1f807d2c8f1f52bd46bab665c207fe031f943a2e48e688c96417496a553eef8ac31d2a284f579464ec7e1e863a603fcae6bda14452a6ff6ea9efd2b83036848905df1382", + "32bd8f68ec7f69078469111304bcf83519431481bec07ac9baaafe37dd63dca2aa6a07918d6da72305a3104819759dd829ec38ef1f4f2d96325a1ef4080075dad795c9b99bc0170f3d9868d11edc63e47e3c5bea097abf2817bb5c0e1d682370a22d70310d73280d5b50cd197492ae15176e292ae2fe2e00edb69c55817d5b6fd6eb349c028d35478edcb877d5316cf53d91a91e381bad7c07f015bb7b5f5bbd5047e51207ab93564b2120d34c524aaad5ed7d6334d22971eedc4ace2e319421644ff8f0b072f083e7440dbf8b97dcaa32702e364e481cc7c6fed8b50bddf67165224516ca8043dff05c6a9ffdbfed302ec8587866937ccde5633787e4e2755a81562acef00e150975568ed07a35182c06c79ed2db3c738f4a14d0281a1e649dae9d6b9c13faf164c4eb24a639fbb382776bf5fc01a4ff8273bc8e2229fa421a530f4f625e6ad2ca3b3309ce6eb1b090796771606b41d7a875d62c895937a6f5b8a202a4a215a72977a5ef7a90d63c6be8c4acf2f468a2f67ce26cc13f2d1d39788660eddbea5dd1ccc07578fab26c0d15f64294f8e51aadc1face02f3b990cb49b5898388664dfd0d20aa9f93d0a8a606cded780841bfd8aee52a4c9f701c8461627f94cf4e501ddb23033cf514839a23206306c5158cbbc993614bea44e00b8c927cafd1df01381884bcf35827ec7903f6b6e9eb1c6f6e7e163b5aafd77088d59379437babf32201c99583e65888a06197863fbd2cd814126905e6c4df6a4a4217b7d31535448cc9cc82dc5c3b2d9e939c3b4b6edb4cd2548fc94a2b94cf5c3bf992e5c4b911308df9fb02a4f3bd2565b06486538ffa08adb77fc650b51a3c5d1437a09f8ef2ad418241e9d22e1054133565d13eed0095cfd57364ce634060519d52865344cdac47c5c5c91c3ac77ae18d392146f300fcbd35f61126868b13763eb3978d318f53ca31de3c94449bde5eef91690e1a69d6fb44ad56edef2f8659123fb7022346472a6e218ca641aea266e6e5d582147a2f8e40d0689abfd150c9228cdf6d994ea3d211260a8c6e7ed60b6710babef11ffbd7c0c7bfd6c23f8030164341158ea10697c02855b827561023c20df47c529aa71fbd242425ec2c0fe1d506a0b72bb3b37564390180e0c2597b91c4ab07e02f5e95d71279cb44c01bcc95a2f2cfd095d48e6501ebef72e0696702b1d86506be3e53ac548fe2f567606f0b8d6b9dd0e4cc0fb24d78c6f5c3e9bc59ad74ba7d0dc92646de38bd6f9329cfaf83babd3f94752c44e2e1a20a7c8735d1adf9876360e5916b16761a2e1eb6359870e521099da05eb535b008fbc519aa03b030835033e4d529cc93038eb836c85ca1d61bc454843f0b32992c4f155c18a5cfe15ff5a07eef8e64f741288e8ced16b372d41f82cd13f285a51209a80d7612ea7ed2f11d5bebc20fae499612a9f92e203e49de1fe3a5a8caa9b27f49de9c73e4b7206f87142edfc179cefdc06ba50b8aabeb06f20e6023ce71dc996b53119e6252709b0d42d4abfac576ac907d31403dc260d76d7ab2c6e3dc25a079878e543abb7238f5e0c178388075d1a0abe378dd46e3f28ee782ca60459ba930c5e4083c4d91f4e7538b85e71bb5997c748719ba412ca291e9b9e93e3792dfa471652b710e86bbd38d4c147de34fd1ab283b6b3d8b7eb886b7306137e8c94ed0b18bf7cad1e829186ca25d91bb60af412b37080728f94f8893e6956f99e48cf032eb1604c6ef2021ecea58b87b2673a3f7982ecf16b372d6315f0613dd8b964f5c11218853f0db2f4c12d990386fedd53a848270f9d16c197f48ea850ece23c9b892bfaba8aeefa9d8bda3e801b186ebd7588469028406e0e2605bd66ec849c3269b6e6356ba367e8915d9baa88fdf5d8e039990b858b956daa61faf19856721bc4780662f698cd0ed03ca4f4468115c2c1431bfa187c7edaad651d6f4b361939235622650c1287aaf97dffe04458ef2d10070293cad2ee1b42e405bf3f8a18158d89e58309c37fe6616bca374f89a7566d914cb5ebc32c29141d38cceceaa28bbb02e13d5e8ce5626e6742c54ad953ec5f34eb15e1fb92746cbfdbba531e5e2d3ac6725a02d17007d31d1c7ff2df57af6430559eefd0e814e40553244b8a4a4e31dcce5f5688a7407d262dcf5369a50c964b56b49389d7aa15c3cd40191b21a1faba10db56cf83b2b47aef0944ba252ceb790f52a2537b6d9935029dd9c78631c999ed03c06e9bc608d4a87aec4671fb361bd631699270af5c6304e0fbc309a4d46175ecd1ba5fdfe9bc08dc3745b27af2cc22d67043a8c9d2e616286042cd0286b66de058bf1bc424f035a07804364dd03f85e3353e218c871f9faab4e276a676d0bbc1ae56750a56901b46a65b8d0fe096e571e70b9007d6f2a3c138b49d1883f0d32ac3956b94db4955f638f99c131b7ba291075e7f14692769ea03d8a05a64f68dd34ec9e39b7685192715b3b79463ade1c16dbe3522447078684a50264b26f79f9c6bdf1e8373a3d161f91962f5a850524bff5437bc9b9eecb657141f91aeec634db228a5246a9e2a2f96c005fedcea91bf8c4623894cfdddfe606c7f81cec461678b72cb4542715a72e5790be4f0bd62f36d6d2a1182c19f7832d9dab663c75e89f2f84603e9a172db7d89271ae0cbc7186c17a71204394f63294b540ef407d4b7b83d087026976b3e4b2d3e3252a6e9c281704bbc21333bc15c5f0fd67ecde2a13b763dddc1b6770c28641bafeca1bf333b09d5735b117bd3b93d404afdea4a35b05e910985225472d6363b481adb11672b6cf1ac2e8a6b50b04b355ff9f15fd661b36b8f00a9af9775c7c6fe44fcfc33bb73f702ea96d647cc6758edf04c77e209baec6c2c99bbaf14b43f100e920afcb470bfa5d638e8938908131cebd588f4591f846591b5ac53c32ae5809a807d57b74f08d949eb55f8e21b4b0b6007600a541e0aedbd027727592b6720f4275e832da4a488efba1ca4e94ed3702a2c978c656984960c0893b911aa7ed49cd70d543894eac675b2d9a37659cb89aba129a285323f92918801987f2d87b8c328005ae3fd99c48c1677f057f3b4eb9ed4375ff2cc0b34049276a9007388e0eaff0b20a7d209ce1186707e7773bc95fe97fefc2ba6a06680dd37608d1f76e91fe0a5fcf49577058e4ee270e6966c71f482456b31ca90bd7b43c3781a48eca3eb0689c3a93e9b258d25e49861e6a37e4de6491f6e4924a9fbc6e712fd4aeccdadf5ebf6dcfdc862e11bc52ee047460ed3d0bf6d472500b03762ee040ea403540ef4ce2495e50b64c0b541f7f27d14a6e6e20a3089ef309ce106504788a40fc4ab08a31608ec5237409fe59978339c672ebd22da9af5e791cb41dafad39e6217bee14f7367618e6183ff7280fc9b960871418b2d249b14879dce08f4bf1c1a1150672b5ab73002064d9d2b39941244c3d892d9d901bb9903aa66f224c2944b185c4a4f457d07f9587e850c4a0357bb6d64f0d3ad5f77edad72538dfa9df8569ec6094b24e36fb7a73938a13dac36aaf5813bfd5106e8d4064b9d82b45e3ec7caaa743e393c5de2145f711a6f653ad8de4cca55d9a8c4e90af42aaab37957dd4c9e7bca090dc713820e2395cf884b00e898f5196a8ee68ac822fcbc1a02ad92804d6e01bad3c337e3cdf3050da13a4cc0e5e677d2c225f6a297b4f077a90f52869e548b939a5fdfca735c2d0a58f279e624be63b6ae8ea3e5fc992f821ca38a5f67a05e721c90e79a5192bd6758d3d126ba9646c571b1a9678ac57975894f96f0ae17f0e2ad8cec39e8bc7de599e46bc05811360150acbff1d114cffe1edfba639fb63a1896cda03d42e6cf8fce4473426d92377e23454e8f289c01882305ea571138ae226d7c2951dee3b41f82e00c2425fc7c0b0bf925fdadc8e9abea6464ff49393539495e8b2b2b60a46a256b07b99a961bd11acafdb4235eb1a9d428296f068495861b824bf3be80a7e58dd09062d8141dba93f4b969a3a056cf78c3b91f6987262798045d5e72494bf3954bb56b6f9576ebeb2a4085aca829def1fdcf8a34140e859586819f7c50ef6aa4910c868de43f1c510fd6c049ddedd62dde4f6efbb83959d0a9157bee03c782b0b6e9e965bb0628e0600531372cdf27f510f47f4ec377dda208d43c5da5a0690498ed64dc9efb560295afdd09fe1fad5b1867a44cbde8faad2da662336183620eb7cec6d9bb09e60dcf67d332f28b4b07da39e25ab94fe074bd4919673625de5565a83ec7e42dcdcebe3ee5bcb1d52e7db91e1ac1f76359114080bb4e268d243906cbe5cbab8fef482732b971c4052e746c7136edba055dc6527e0516f5999c05654d28f4e23b56fe7da84d690ebc208193c6859c302346555c76f1e5f92cb4bc8f95abb2522d25a9b31387f3b3002d4c9f6b40d36d19b31fcf7715d9868513eef8de50afbd4f10caef4edebff586250b9965f8414ccf493a5f4c81032a0972c7ee33986cb278f6ff999e8f7be77795241a0c801966071c8f12aba59d9011f46acc1524b9683eef30700f8bab89a9c3d981e61be6d2e7b5227539d0c0227d8d1583e454404283517c2f4915c3612dba632ff9ada1aeb3ae94e9ba31a5c6a9fc555a8b1772fd2f2c7664b50a021f3e7174a65c386278ca670b398afc43c5bc79e6df61766780b73e0bba811fcf7c11541802953d01289f315fc4d1689f27e34ed4179ece68e550357a0ead1c34b7bd7b36d4fd5c812539877255ce67c1f561d58d9389eeda415d939bc3ab34a80e21fe9c6838b751130ceddbd412f8faa61b369670917b4778b0c0244619a6d483466a5ef85ec76a8514fdb1ac5cc429d6c6d6e5904776fced03bb677d9c3929fce21e0cd0f161d6d2e6149f6653f97cf62e802212ad1c6207866ad0fe6261428957f9aa0606262db22ca6490ed5930db5ce49a016265f12ea5262620acf93dc0a22fbb8147d92a11e6ca3999e0cf6d7b2770124db73949f84556ddc3008a0e27c686c40b8f3eac972a4c75a84e76dce3f917f2abe9de474cce9e6fa11711411d471971d74ee7474bf8e612ee769ba9878384f0b61a98c6c62f27dcd96398fc04883cde133d86e396b28c08443217a14efa2fc801cda336afa7481ddb71489df94bb8b432240ed0186511e55d8c03397306d8b67c2fa79da7380a866d40a5af26d5fdaaac09f98eebc69b1b4c0d339115a25c6435c7e6f8905406f0c6dba03d54f32e20333c5c2273613a764a7d594f967f9471a206380ed6f38997a55b7a4287d4f2b1cfd6c15c188b55696b90d5625ed0f33a9dc3ebb89e085bb7e295236b2be0872ec037b43a64b0896d2daaff9058d028298b7aca6a1053cc500885314cd0a304fa04e95a6ee95f859823c1a17808903cdc093c039b11c78108ec49a1af11a3188d61c9517f781745e32a02153a1f9af4fa8d7db0b3d34268c129a2c5f7b72f07342d1f3221037704da06235a6c55c3bec83b705087ca5293765ef24603f36b9280efa3c4683fd25190ccf2342034ac0fe5813ef2aac89c06a0ed565d2f9d590824a09ae785e581628ab9b0de009a736a3939bbe79c62111cf6a16fccdd4f1266017f7e68cfe71898b4ddfcfc58869de822590b124ce4c188eca36087b5f848fa8dc1b8178b943d8096fe3a94e24745026ce50f62632610540fcd8c2db5b9cf714002f8db11807f008e719304f269d1fc41473d14d97f85bcfe4c797bd0529fa8450286284fc57e63f4952e73f96268e7a413754182d5ccfb1fdf5c05a0c016696dae8516e8", + "a5805e7be0f124e2c5c48efd7e5521cad6979141b6029c2c983459bf876ec4a1fbe8164072c5df60f05cceecbdcfe3d537dbe233f35f1b4fbb89eec5d4ba3ce68ebf3912be50927ee0f1e34f8a376150d622991f0c93551d039de7213cee59d8d39616099a427d86fab6311cadab54b58b76290f04589efdececd30d8509a25af556af9b15fdc90a6013933f89c26b50a4386d3e98f4e92468f43c488bce0c3d509124daa2ab2d6fee9466cfcec9096e78ef4b31ccdc9a769d5c04e4707799a38a044a4d597c5d6b6df4c192650a2ef51ea37134dbfe820b825cc015c968e2601cf3147c9e2e0c8114f6e5af51161051a29ae1b7818751c0b0850e707ed3ddc38ad952c19bc754c3d001e9348c7ac01bb1441c959ffca12a1d0341372fae586d76f339305ec8a1c93b49b2d33c2f595fb76d7cab39ba0daf7eac8b53feb3171373faaa2c93c1b29df5a290a20b02fac76d4d1b93e121bfc313046af2f7b96063bc2aad934076803a8b611b603d91bf3fb2852b29902d4b5e0c4201ac346bae432a9b8a57e39a0d1edf82ba7cb6dfb311458aa97b7e269c82ca9479760b720345892d80e291c23c86e4491877932d2ab8a199c60f84fcb3d3fd984e5a93dce7d3915416036ce2e3440eef6877aa03df08cfb8d77305d65f54525dfe57397059606387d89d7752d605677de00b5412fad9e300d16fc5cdcbbfb01d52754f7aadc52561b5e9ef5cedd5eb6f0b3da6f5075c0549cc7092c205f04a8f7008e994b268f118a83c0f2f41aeee9cfe3fdc50381e43054035b3f8de446e1ebf1e18a814b5f5e3c3a990858ab71b546e91a15f27c817dc95e8fe19641dd326ddbe98bb7211a0297ba09e8a00ede828ebb4fbd1b3ad667d7e58c48edb6cf18c693df5858a59fc3bcfa0cde29a50bd466aac096b906795dfd7313049b18be238812cd47eb9ebfe6a86641da68fd4b795e808aa539ba0090344c8a8f8f94f964d4c30bc2b3de337723e8528c7b09693b972f4229e7a60f5a5b73096f04fe24a94238cadf71e8dadf33804fc9070e78035b0e273cf2a5e3cdb935f19795a027027693d50f43dec95e0aed3590348e18318ae55687883a3a55723cd817bf344466fb849d05e9d84b48100d1f4c591efee1d45dd31cd0db36b8656467fea14289982d12bdcdba0e69144e5e96f05fb8527ca95216052cd5cba6e6082b6f528d5da0770f704fa10a66b129dc2df07a20b06707339670bca46222ec9ebfa2f7c28658e6c922ffd5ab3388b1b6de9380aeb21c6801ac7ad7b1318580f867629e73fb4bf04a53316b96b1c89fab40b821b1fc1c51a6357de33b7a3b0d8690396519c7e25e9b0b25aa7023b6be84d1f773638efe833865f1aacfafeb953528ad22ac36bbcd1fa04ad197f77830597e294d3b4657652adfcfe2583cde2f1a2e2b51c032a54952ccddd063e21cac394b5e26e1b0b3d356bf95baef53c2e64de53f5b2b3f30bdfa009872680cc43011f137e57b7471029112e9f7130e20a3a95ee7517b16295f91febe284c2624c81aa2e29e759298abcb169e0f4fb8cf1b6c133da86b760fbbc1c1ee071c73f8ecd38111f4efd1b7939341bd24f91bc669d0d1500c595dbdf948d7e545fcf82beb8ccb1d4ba07262d62c7bfc17ed4d09db55aad49f274cb69d4fbf670557fb224dab146b3466ead035a76a659b5999bc6117e9e2a8f606e596a4b813e68c28633221c08b6e00989656627c0fc43fa728e8385335b8750fe9f5c1d7aaa47418456c963ab29d3a14399832fcf246df02d233651b03922c64fc70908571ca04f013af8f5a8405b96e8520b1d5f762278a34b5cadb99c6ccc5bcb42e7eb987354f28ad13c969d31ad94d38f94f36fd800844feb18e6daff19d53023bf99f9b136fa76f99c429eec13a6ca39fe70f809c8ee734fc89610b8073e86f79fc7312cf31137791f2f5d97878d19d37fa64e70a1f869f60ef47b039a0205b8d1d9f1b4b2399c13cb0481d536deb51accd7b63d96ac0c6517c0d00948049b70f9a25df35028cff9360cc2b38902453a2feb46f4ee737da5e4af289bed20c2f6ed5fcf60bbf48019b318cdd61755360c63b91a4313fefcbf48ba49a6a3d55832c162391e72ac2ea59f3e51748291c327cb2b38f4b7ff451e686bc99320d6a7a624e8ef4307fc0741f58d3e18fa90c19a231f716c2fab4445f062da1dc93db64357e8036f78cef8fa551d70d2d3f2e74944040993e154b11fcf8f9b526861b43b2439d66b9ad8493c041a156d2566a85825990f6f98a8ca1bec4c300ac8a7bb5a9eee1f8bc7ba52b5c24fa2aa09f08946b9026f671b128cef1a19b453ac3b633da0798b55e1dc07bc23adcfa1a2dd19def4c2cb98e05742c5be778519f6a72f9a06db664108e6930a4066cb64f37cb0eb027c9f5d7ebd29d0643185226050b8ac99450bb2f9f84b3fff78fca56f3479da226964ea2977a13d6d84ae73c004792fea34506557fc354fa795781aa3245258e0c548b5a4fa525134263a60421668fdf7bebeafa161315a1046731bbd8cbefe7c101ec0dcba3459106517ba5922c65d19f8f64757658663db33564be86b3953ac6157002e05b86de8cd5061c58449013767121ef0c3d164758bff739d4f8bded53c01f8a4266d5fd0fe3937f2bf22dd05cc7e17eec825d06cb9a26e17d013528d804cde17b68fe228c31c1c4948d0ed23d0c7528c1b421edf9c1e3113b5485b1253e2f2bf70ba32e5d1ac7c27b6b3900967737ecaf260774d14c9f1324b10bd79813a15a2dabc64d4c83a7ff02800be0457a203469831ee8350d7d9d3148981f5f9217a4439a763ff7cf0ae4e28c275336bdb3ec625a16e779cb0cc137f7d019b53f436278f743cdda91f450cc99dc24919d4be99983027ce46edbb27b45e4bc76c175b56c446f56ee14a4ccf3279c38549c2dae22867acd2580582288ad681acc4e2d544df6430a6a845e4973b392d3d4bafb5a5b542a2dfe328e589952d70eb6ccccee5ebec52bf6c16b0554a33f29ce7363535385edab48009c02087affeca2f667de04039e23489062b91d1342eb445bc4f42418c126dac4268ef0ab6c3dffab678690a007e39572ca8c177d836f1e64bebeb3e1fda3cfe4ebd960ac4ab59343ad460436fc375958bdfb72d8c31e5d4a2c47e53126599ade4f5440c4c1027cb3af2fab30d7af60e8e96e808b890fe8e3e1438babb7e36fec250778c0dc249aac57bd74fe7f772dc8c4ae10d24c54d66a094769f93e77358cce7b5669e81afb5cd2b46791c689edc6925d49c3176152194d3d4c8044757a6ab4ef6fb7067281555b0bea1357543c60961df21601cbeaa78a5f48e48f3747b9c89013e1e70b7509e90be9a4347acd9e11aed817f8bcbbcf4965887d52a819833b485fdae03efe3c2ec68e813820447230b513e957e3ebc08d66b794cce5f198ffab702b72ac40107b5f84d420fc23be2e107eebf1913b278db0d6af15e98ae93b873ddd92629cd66010140bb5d6a6749f622dee02bacc37fd02686314b48b1eb91b12f008c0384e013089ec1a6756bdf8a5c0878a9ab30b7bd26da941096a4f71b1b73cc8414d255b2e612023d37e9b4548358b6fada3b36b29198194c72eb59c0736c91f9c39e9d8c7379cb8508a087a40359d0f05d4991c4d36dd5d8d377d53f24392154b2db4559529b6fa1ddbd357b9a6679b2e75a24c39df93f53133fcd5c8e4ef53dfb4056ba88ebf8e7c051fc3fa1cf879c8d602f4e58ca405814a5b58517b0a1bc36f366f416fd22bdfc4cc612aaf68acd838ed9212a9056251f545ffdd1d11e74e985c5629da9128590f4c431736f0cf5d50a88adefcc4a0c727814706fd924fa55746804953cde7c0c5991a5c9cc1faed1ab240723436e4f51429b75ae688c201d2e3823ecfcb3bb902532e45fd0fe1f39fc10caa5a80b2cbe031e3adb33961fd6831abc2c0b59afad958eee9e14c0a65508784216414bff1c512ba9c56fc8457e566fbe9a50e67f64fc66f53aed2622c85472b55a9547610eaa4d61a6aa798f8a39abf179f15fb2c268ef3c98f23520be1235e1eada8565be1eb48259fa045090da99dc0c89e289bf3487314b58740da3df238128be0914607fc7f29b7c843f9a500a180e4d25819fe13c67f9c42c07789a3bea2f93e0214e02a0594d02db485855e2d45a29027c5823d9a79fe4eb7d33c87e55da67c5a16cb881456ee58dc829b4449dbc9cc5146b477754fbf3433b389266425d6290696148bef8e0bd1a1536e827b6cf229a4023de9caf2a7dea93dd37397eb090614206af33c74b8ae2eb96be49431194750ff575e446cbf3effb627bb1b568027d15e3136e6a3f70d96ea1dccf7f2a7f9666697a04be96e5aa101df1e83ec7d71400574ec009494a3c71878567c9d73475fc2195b8eb12eebcf9cd61d9d038469292c95e6adefe8921ec3ca2a2a52e8f6343ed2e8a8f871426e4d1d85c73a8b42311a4c048294221cf241528c8ba4207d5a38d04e8047df54a0d2bc6a190ffa9821f09c648c2b6cdcfb2e8b33869884330dee10c86e101c1de368e778242f499dae643aa7027491cb4992c9ea3ac6a55e6b4325586273e1b09339ed11896a822d27e577062c0b9c6a81e78d0f4688a643585add96cfd299dbb3ba07447b4b48060a00a096299f3c1a68fcce0fdf5525440900d60c6f00512eca56291d35c2c87a957424f4b2806a7b6b687358520db56e59b8105c6dd7973dc9f00d0f6917e0afef879d62c657df781cd3873770cb533ed4490de0ccaeb24d38053783ea3f701aa9ed39d4f8878536c39e1ce4588ec25ce6677c68b0a7a95fba7233bc0c7238e76aff813e0820e8213f5becbe5a11508e9aa07bbc0e74005b7af4e60ebbcb390b4716ee7c1b303417e259f80ece180a53f817e8d6ce2840814278e2a30ddcc4c477019787a0e18ab1cd073373b1562985ebdeacaa7ceaed4c67789b5b7e190bd432d2849e05bc485fe22a616ce200fbb39285b84ef2266faee664a313e19c9b5051838677e4b67a237f96704940757c5163fcb0ca10efd2d2b31b273905d8ca3c5277e3292d40b75ae5a6ea942875960a02202207232e5d29ba4fa0d75f569d20005e36ba3efd5ef2a67a7f76ac317e2b73d872cda51baae5779d470420008e1c26a6454c0ccb275a86e4dc20732ed23715f57216591a4b0505de2c89c3d1c3b35785c51417e4ce4cec58104c2898bf388df3261a904c5559828b0b93f4b0532239d19f2cd925f5cdbbd965fcbcfa96563f51596198b89c50c91f130e97174d1ca86f2d969fca7e78844329503d3e7cfc62fbda22267b37727c890a58aa0298c39fcaf8cd2bd4165e33771d04dd2f4132a1aa4fec3a76f69ace3bdbbaac000b912dfdb9f9d12ceeacce4829b82a45d375026a5cd4edad2b05609cc68196c8067305a97b5a35905d84e58676e973394a8b598236b3a530ce70c93c5070401cd7403b3fbb18c32c189831e76dc64951daaa4644e5f3a4cce561ce3c9d6681b84840a26eac3150509650aaa99dd6d0c35a9a1385cb38e03cd29d30bc908a14cb92d3eb25934702ef338e8fa29fa953b3495e6d9e9c824ef37788905b004a622a8d41f7456d93060aca59910635e4d0429e777350bb34b6fcb72ff2ea501ef72685e9cb773c81e06dddc3163b4daf637658f225b4f0fe21fd1affe861b5c06d35cacc2de7b57bbf7c9dcaa2c148cf96bb9496f9c98dea0a4c67fb59933597043b39fdbf7616fa4d64e8e8747c0e7e29fddcd741fc969dd2107c32f502f5ee12c9e", + "9bc6793a1d2e709edbed465c19ff52ba7944b81453f766a344658fda11c645a904777c2af6b0da86d5f13cb9b0f1e52c0658978c33a86ad2c8d6d7f334c9b6572eef82d162f295602fe3d026fa1d05684acd35037e3ad74a695f0e15c65e7be17d6a258e979108532bc53f148939ddcad9e5eb4705176bb0b593f4a55b4bc59455b37c56a97118d486f35f640a76abe920c9c26167b7d22cc0f2a3fb0651c63be8c2dd767093dc1b1e10e3a9034bb52b8dd20c8d9106cb10a5b30d575b1062d32b3dca2bf930ab1715e50f4a2655c9fae789b5ffee61fefa4dbb25a4ffbcd64e19187c0d992d82e736819e076dd4e2db94c6e9e95741f65f6601598d3fec51d9de98091943331b0b900dacdbf5e5b76b73c72ae62a46a7db844019bed680aa0e46e9cbe104a8f7b4deccf547623767a253d363b473917222a24cbd8b6e234d37dff3bbf5de46bc69af0238644a8c35f823ae8fcef5ecf19c8a2c05e4ad1eb4937be1d6e078ffa619bd80aec5d1f06390de6eaad2218c54ffbe60660990ba19eb67474d5f63946c625b973632cfd3cea0399f4b94ac1df10a431c397439066d72101e1943334d44077a450453f171492ca6a047fc8c53781414658106cd45127b3943de0645c86f94202f01927f91af838692762b5273e8fabd129c2917d75053d8c07baeefca905cc8d312277dd58e777ec2832c8b134bb3e6cd5f84949f72395b6c994ec19177b83b347ced201e86474ff37c60d6d853d50de8edf593ca8322899eb0887351a60968adcb16a88d74ce5c9662335a4f21ae299d9bf4fc18c39d54dfa80ff2d785311596dd217347da2407bb845ed09b796c702a22615623b9554d6df1428fcad0ec86c98f045bbdabcd9d012f0feffc52ea1d04cef55600115446bbbf733d304828ccd14709b5ea58584717199fe643c65c44512840c9bafe0372917fe90a80d5f3f6cd4589947c4ca6a47d3dbff7b706362678d1b3f592b6ce97c831e4c21ca99816757c5c77d0f75b7587b29334685df8a55d81d246d5a0c0697d5914140d514d6baff5b729bd374c9985301f89b1de1951b617b0a3b70a117651e491c1df3af38118f107c13431665f65e0fa34f8c40a54e9aedbb807c029a6f5c469487e66f74dbe20d9202f2b7c3e119e5fe1444013f6ceb557d2e69eacbe6419944b40f7400cc0de04afbcef68d1eac98844b4a2ad6d26b4458e7498d3c5340b4c7d7ad34c87a9102c6546d43991f300144bf7b55f5fd8c92f8ce9e4d513ac1ad1ad82c45e7bc3d04043636f1bbb330a7822be5938158a97c5277ae247c75d6c1253cf63b6700a45ba26269c40cd8b5c24299fa0432f2245e21cb1cdcf218939bc4455f153accae2983023b6ef30dac5a35e21a725f7919a4701181178a23a32f281b5c8d8ed2fea49fb1d383c160a6de2872cf99e5bfadf629430c7b1aefe3417c27a5a1eaa781f761748e2842c8cd7d825891ef67e86540c2dbab8781d5e7364d56dab12a09746aec42150c90a6f6fdf9c9e480cadbe3c5272abac109c3d9dc911a4c7aee256bf774ba4e1cafeeeefe02ffb87952bb6a31b8550ee0fc32aba2236ceb5ae980d90c7cd64dfdd96c53c92979dd3d36e95fbc13ca4f8f85558df2e5dc6eb102f89914ea0e22f9a9dfd9ebf2bd9d82e5dbbb369e6ede5e744115cd4e7cdba67db20fca5c9c3a6363741656965c9fe253d5c9f4a08e24e5e03aca21d579e37b4ddc6e8bf21155065586504da7791d368f8b203b8c50db18966e41821e30272df7e8a0d1c356839d822e75f856892cd4de144b0d41a80f1ed53c51a7aae0801885c1821d0eb050fbc132c0cf206999da276911dcec4929a5e6bfc584ab0ad736d4c1f60ad1bcde83fe6c5ee761a5eb046727f5eff80050d16840187d5504436752681e5f951f0dfd1d72d3add7657676480bcbd6e86734ef844d772bf75309c46ed05061fc723b15f853ec1c1400596396b9f26f67edc085102626104f75cc61653954d9c161d7f3b65a74ee972a722c49dcabd422837c9b3459041e5df14149797bf0d4ed6f7f5282df8d0d5e2338f5c73703dec3ba8d65143a639139b98bd2c3bf901e552fafb0f21c7d6fa1f2eff7b09a9813c279b5345d8d703a106f74edaba74a11b38302207262698eab7ba6256f97961c0d6ff3247e641dc653ba54507310d5a857542b83f51dfdab971340526dcb782d231403eb48e03c7a5b4ed872d2f33147b5641af337e6dca2c36a60c05b63f33665249af51fed02576d05dab7ab9734c0f35f4387088697f0a0c2ae5c9d88f2f86bfc08f17e99978159dcf77241e364acc560a9fccd655eab5ea4894a0463c369bb64016cf75628af85300b8a10647822a68c9b619e7b1755f6644256eda3b4e2f0f2e47e1c6e00a8dc22ad010266ce8a8df10358344a672c508f5b3e4d8f3245feab902a9069bfccfe5b45fe48d66133a76bd30e8d8956c7c6ed88bc616751fc09ff0f5539d18c28f2e079ffd603353b5e4dc91c6017703a99182e4d0a781a9064df2f1dedfe677ff7572b4ebbb51e6209008ae10a0a7beab424e2fc0456d4a527e63d725e80806b3dff054d1321603f0c73d3d976593c022b2341e096562c182158891177a8caac62c5f6c2308508e3dd65d2fe2995de88d5649d161a041e2a4ad4c455293e8a0ea6a6bc6c36160587e5a199dfb7fb116cbcc71f9e8eb3589498ef798fa146865e8dcf552fbfb86347ad21fa257dcec74044f1c894ca62ca8e28d641ee1e11b625aed47c43abfd22c2e505ee9816c61d7e0c50ba9bb25921a4c98b29eade7ef3877d3a21e5d953a02378c3eb8a75e514a4a38d6fac925d2f69f66c4e87357f4758cc12d8c086f0c934678ef84df8bcf8c7c8bbed5909e8c750764b869d0194947c3bc874ae8e70d5d9b8e37fdfb02682b1e0e33aa458750f844554209c42d8544184b4fd94220eadfeed03d61080f551daff95ab238230b4f12eba6477426bee1e8aa53ecf11896d54e6cf7989e25212cdea0087fdda8cf578455e582f6d10773e0e8aecbba42a2803969ad1c396c77c663f64013eec29811f5f0b004952ba3caeab45d9da7409cbf0320b3e4de097b44b289d227489d0b0c5e8f14f36392fedaaf6008d54671e8d72bba4fbab122815fd3d49a25a3c2d85fb83e1645350d0a7de8046e74db6a7f2965d7ab04cf3625b5dab9c02f70cd6a4274aaf9ad4c453e70cf5ea121fc9d5b43d405166d1215c712c9a13fd9a0b34e0f97efe1337e301c592b533276b8ece2192ad05395a00b10a4fb76332acf3dac46d716b618be5dc530561bb5fa69fb2295f3c6bf47fbf34221bb335509e6e8a507fe3d7fe3d0176409fe6403a0f7321936c166b2bcc4eb190661b6add5c5e17cdc3916c8878800fd81784f5c60825472d58bd0b45f1a10044d45384793575b58a4d823774eed9bc45e91b04072b361266972ee0ef82dff917637c344805d17c941f41c950480c162f56ad772c6257f10a8a6cc495b56299b94d190104416ad537bd1b1d4a89d7519d0a7f395e138852f389c0959a13a510f1ef35ca560fb7a7f6c733542e18b59d191e57b3d55a8b53af132f08d719a0860cae66962246e8ab1d99cee40b3db0579302fc23fa41f0e16a6b74728b07c833f6276c\nresult = valid\nsalt = 8dec7fa5cb2bf9d277121bd42e04d963f3a6aa6ed54606babc4a40c210296848c08d79c03d018a3f71112dae4d63a0ff86cbe1174457f28946f3af58327d45fc\nsize = 16320\n\n# tcId = 22\n# invalid output size\nikm = dac05fc4504402cd627f18b35af956b0\ninfo = 8785200cebfad691\nokm = \nresult = invalid\nsalt = 1460e1e2a09bd06410ec04ecacb752b707d5b26a003431a7d67e51c5df028b098853d77c0faa23edc5b27d304fcfc85883cb8fa4cbc5ff32e79139102b8ebcd4\nsize = 16321\nflags = SizeTooLarge\n\n# tcId = 23\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e91cabd2038706c02f8ba3102a545f40f340bf65de30d3c37c2408f14df06e1a\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 24\n# output collision for different salts\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e91cabd2038706c02f8ba3102a545f40f340bf65de30d3c37c2408f14df06e1a\nresult = valid\nsalt = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 25\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = 23117b38f94d22c8180ed72976a1f784fe591caebb6a07c1f0cbf8e29c6938ee\nresult = valid\nsalt = 329f445e7de8a156cf26a0208dbb028d9de6ef76b8de67ca634f4a5a732138a1bd436a7b345d7a0314c7ed0a00b0d34ecad2cb8bd141e2ecc1c77e237094d55154\nsize = 32\n\n# tcId = 26\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = cbb19fbb59b4647d05c57fc07778fe4a73ff7a0de9408c3cd07292bbbef08fe0\nresult = valid\nsalt = e6fed0037da957a6a67318c3d8df737bb52b62b8ae4f48b96ff9eb7a108865eca7cd91b371318c8c7bfba2eb4e8d50ff8c9e8e156f998c46cdd7765375725a5f\nsize = 32\n\n# tcId = 27\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e81c7970f06808e8cab6bc6f3a7ea308b19702197cb41a04eef602df9e26d05c\nresult = valid\nsalt = e69dcaad55fb0536\nsize = 32\n\n# tcId = 28\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e81c7970f06808e8cab6bc6f3a7ea308b19702197cb41a04eef602df9e26d05c\nresult = valid\nsalt = e69dcaad55fb05360000000000000000\nsize = 32\n\n# tcId = 29\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e81c7970f06808e8cab6bc6f3a7ea308b19702197cb41a04eef602df9e26d05c\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000\nsize = 32\n\n# tcId = 30\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e81c7970f06808e8cab6bc6f3a7ea308b19702197cb41a04ee", + "f602df9e26d05c\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 31\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e81c7970f06808e8cab6bc6f3a7ea308b19702197cb41a04eef602df9e26d05c\nresult = valid\nsalt = e69dcaad55fb05360000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 32\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e81c7970f06808e8cab6bc6f3a7ea308b19702197cb41a04eef602df9e26d05c\nresult = valid\nsalt = e69dcaad55fb053600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 33\n# a salt shorter than the block size is padded with zeros.\nikm = 5943c65bc33bf05a205b04be8ae0ab2e\ninfo = be082f301a03f87787a80fbea88941214d50c42b\nokm = e81c7970f06808e8cab6bc6f3a7ea308b19702197cb41a04eef602df9e26d05c\nresult = valid\nsalt = e69dcaad55fb0536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 160]\n\n# tcId = 34\nikm = e2865d6bbc1abf6a815067edc4ee7aa33c290d5a\ninfo = \nokm = 3e80cfd3ff6e21e810b7c3ce1d1b002fc6d0ab75\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 35\nikm = 8c177ab5f40e9c57203883562f01f174070ccd97\ninfo = \nokm = 247885b9b90ef2a8cd1e97710eb9bdead1aab09cd552c840df8ae4fe08ac153f0152b20c1e90e5d4e55f\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 36\nikm = e842a4fc1a147cf2f87de9bd5a42fce6457496f7\ninfo = \nokm = 60552eee83f4bd894098f901f9a13462796f75603d3bec289a4c55a16dde21cb2ad41708b3a3d76dbe5c54cea3888caac951d728834d3651a37cde0b0664121e\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 37\nikm = 5b870ee1bb97ee83f67fa7335b4a0f9dadc80d12\ninfo = 0a0dfb2a6e051441678788bdec04cc1b63ebe1f4\nokm = 453fedfd43595245f3c67c61b9dfc253a356a2b7\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 38\nikm = 58ea7ab33acff514ec08f41e59c17a3c66c1ceef\ninfo = 1cf9e25bd70c5546ea7a79eaf5d90cacf754c4f0\nokm = 34226a7c2443a012bd994f8ac6ced5eb70ce08970617b4aca853f6a13b89986725f2b1a3472f5a3122df\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 39\nikm = e8d20934b9d320458f4854e2442e2f0fa092f461\ninfo = 4425999958aa3cc629300c25ab15be8cea7a4277\nokm = 636c9341fc005909bbbfe18d9b4db595b5007178c13d295375d0738204306b522f0e33f37c67465b56d4a09450375a50e8e02199f3c44b7a89618aa940040d1d\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 40\nikm = dc9e488c684dbf0ac8ff1eefaa0666d413d258f0\ninfo = \nokm = 8f426916a9593815065cdbaada2c23921025e780\nresult = valid\nsalt = 9afa7df500d7a17af1f44422d25a62bf\nsize = 20\n\n# tcId = 41\nikm = 34b85c341a04cbade472b3f7dee4de4d1954bf70\ninfo = \nokm = 81703cfa5d5f3af1d2105e047f0cba013c1ad5eb27e8d408566a10e00a7e90da4a30a559b33f353d6932\nresult = valid\nsalt = b066b42acea664350a8448f8e064225f\nsize = 42\n\n# tcId = 42\nikm = 44cc641e09f7d5642f7b6007ca5a1c0813319666\ninfo = \nokm = 582d7b17c4c783d2f37f0abdff8adc1e324370e069f274b1c7d6a46655843e446504cbbf3155716b6e824d4038e0bdb344df20f19a4a2dacddfe9aad36a81dac\nresult = valid\nsalt = 69c0dde6c8e5bd40553a5981fad6ad87\nsize = 64\n\n# tcId = 43\nikm = 88a8880cc2b73e73b3b6ca1d4902caf2128732c3\ninfo = 6dc723df3d26f704067afb2fb6d95a66516d089c\nokm = 02d1a60044f4b017bed7e49a6984cd2108455f5c\nresult = valid\nsalt = 0579f690ed32e57a26701a9f6877f243\nsize = 20\n\n# tcId = 44\nikm = 8408668b9d671121b8c7d31113f045c0d7c020fe\ninfo = b4451b0f1a217db703582881e86d8044d5f2e092\nokm = ff71e665d74a7fcd57e7f6ec5600cea19673bd299766e525959717169d3e735a33bd998a317391f1ba91\nresult = valid\nsalt = 679b30e6930a8ea3f076e317b9595d5e\nsize = 42\n\n# tcId = 45\nikm = e6715cc4ee13c4d999d8f8f500243c321f70b0be\ninfo = ef17c9227a5ca654fbdb35dd00dd6dc77b6321de\nokm = 76882b3bd15ca84585e2a4e7622e9c3bc20da778aee4d33a6d6a095229f0843878157cb1b5970676725375536a5c724fff18056cb28cdce8878a3c687911c5bf\nresult = valid\nsalt = ecfaca2ea3301a992b4de081d9d3a4cc\nsize = 64\n\n# tcId = 46\nikm = 9a6b88f3f68f5a8e79903b51dcd733abaece1a41\ninfo = \nokm = 6f0c3e176ea037da5e32418174dceb98fc1c2b4d\nresult = valid\nsalt = 0226df3d66ee3abb275eb39c8ec3d3e12e9b87b67f85c552accc4279ec17\nsize = 20\n\n# tcId = 47\nikm = 0b9eaec88b2940a4754e83272cbf47fb6f86aaa1\ninfo = \nokm = 4592acac51be6ff829028b39b57dc1705b161b9775e5fc4bb668bd4addbf11a6c8230115cd5890015dfc\nresult = valid\nsalt = c1616497d49246400ba68242b635c67515d2528ee1c3b71b318b631f9bef\nsize = 42\n\n# tcId = 48\nikm = c4717276e7c7f794c4ee333b2f7a2ab244be9e8c\ninfo = \nokm = 3aa97526d07f8cb7f936d6ec9d6503a21ef162b9fedf354a6afab2bf420a922100838efc9deba0bbf31a0ae06deea9118fe47f4bc484c1bc75f649f3a37c3225\nresult = valid\nsalt = af4c63e5b554063e83e37bf730ffa401c696088ccc4f133a8695ffcbf2a9\nsize = 64\n\n# tcId = 49\nikm = 5e43a900ee0d432c5fe6fc81db8d5f81a54e39df\ninfo = 32460280e60910b10abee2e9f80a3dab48acbc59\nokm = a715f5178595b4d7a7592e5fa740b9473ce00777\nresult = valid\nsalt = 8cc815009350b0b6a924ed93e73c8f8c57a1105726663b72741b67209c1f\nsize = 20\n\n# tcId = 50\nikm = 070c170fca600aa2b23618150ab9044bff7d4dcf\ninfo = c1b0971fefa0a23cf4b7185879475ebd8d83b9bc\nokm = de39d37c8f7d27af175221836c34e72fe2c2fd8fae0569f47d24a6de918d5992ff95302b421e477e1240\nresult = valid\nsalt = f32a1cddb32693860eeb39a5d190f5667a303d5403712cdcebb575c6563b\nsize = 42\n\n# tcId = 51\nikm = 87a23208df5e66488d23f7aaa066e87bdced8e2b\ninfo = e4d66fa23a6020820013d94d1f8e84a58cba2a82\nokm = f275c7be87f3a20c5f095c9c11df0105f825bc3c321dbdf4c64190bf3dd572bf6ec867be292de7351995be506d40075a39a6cfab4ececb19d9502898f8a88e8d\nresult = valid\nsalt = 0488ffa08062f1fe83e9c3934f5688a2e17827f898aa5daa2d595f09b245\nsize = 64\n\n# tcId = 52\nikm = 214746af12a669b726364027e9a1cfa40c18f8e0\ninfo = \nokm = bc141ae6584b51855f8f671bdf162fbbde5d8abf3aa42cf9d04908be780075a889472e5093e16a8af780\nresult = valid\nsalt = f65ab21816c5eaa5c9ce77d58608ab67176d2255438096f4b45779d15c2afda12718ec557bfe161e7fab89ebad4fa634cf73f2d12c884c4583e64d2b59b9d8b9\nsize = 42\n\n# tcId = 53\nikm = d509c509f91d78c33b9d661e6df1992b2b6ae429\ninfo = bea4f60eff1a0c6ab664ff3db2f774347920a482\nokm = 7d1b8de204154bda72a69644c6635be89fc1859619f101ef215960dd9c776206e9dcb8e5545dec95b2e8\nresult = valid\nsalt = 95ff4b20ade46bada320316dad7e2b4286e93dfa2a72c6366c5ddfe8ce2ff344729ea56416d5b53074c6d6c4eb4e4873980e5e4a4991d6b1497aef822e16e209\nsize = 42\n\n# tcId = 54\n# maximal output size\nikm = a53c9ef28d9df1cf2d27cfc10ee41e6b7d3d8883\ninfo = 721ca065b18af203\nokm = a9aee535bee79891489603a6b874da4c781985a62694256d07701275babbcf55448d189dc1a2c2197b1a9ff695f8ec73a656c1ae1cf3d2febf653206027f7c976d5da9f54b946fae91303f14029b783c76c5c970d688f4dd8478210fcf7525950e1f007e502c0e829f1582bb0c7f0e221dc7463e581599e340b891eb86b77db0bbc420043708d384d6365cd6e06347260b65f629b4b54e83172ff239c39c4a25f5194c5611e560e7c38f5adeb1c4d2078b48f576384866e91867d41b97700a819392f102b0428b2d8b455741d71f4cf165f31095ffbeb4d53bcc787299394a71f48abfbcb2685a324029dc5fd91284fc78b67c241d39db1a75a96ca6e225d98da1fadced84d7f23d6d4bb442037b714867860ca004e3583665c6d7f51559fa38faa5371c0bff7679626f75080b6b36b24f10ef486e24e1ee9e35afa718f67c6b93d75eccce25fb7f3be7e3db767082bcf7ba449447bb6c07460ebb6bfc5bce7d1fc82e3111b44fa8e4838a59ad5458d5b3f70d9891bbb1f74c2b18e72b9861d4d9fe99b13099f6d4978edd6db0aca250f2428a7372405411be7d223568d5db70fefb81b7eee22711c612e3d6514e9340639b454cb52c1969ad56d4303c40863885e6e438060eb20c8de996a91f9bc0879be71ab925e632c0b0e165395db69b34f606bc65637c6648441408ea6fe95a4c13c8f450abf7a3041d853cdebfe61b322d42db087ed7da3175249aec6520e2a079bf39016286995a36d9f11eb348f501132566cde44219e51b2415e04667d06bbc5f7cc0502e8c8ff9b6037654300c64c540d5e4cb78fc20dea518e721a8ed259f26b033617c9dbe239e92377ceef9fa9383b744cbdc044fb8b3d8089c01dd4ba38f147b691fd0cc4e8ef2acbb6f733c73cfdb52dba9b9d8ef80f3e153cf3281f994335e075498b25840a0f51dd4a654cfbab9277e8708b456ddd0e64977bdb5e88067b889883eba0d433b183ff730109dfbdb994a165f61d9d668c27caed764820348210a24e86b77de66b8032a5173d474fee5ac889b5ebdf1bd653d46af427156ed94f36bd1d205bd0c56e9b783420eba82b6926f988055c2f734fc112772137c5fe63f69fa42e3d02a1cfa316ca7458722372de97e6bc4eb9d049358e84511f80ad45e29a862e756275a617e086bbeb299425f879801701dab7c753bff20cdbfe61aad8fc824a3ee3d", + "47cdd0f166a36de7750e121d9a6d74902b8440969485807eee4d4f18a80a7d5d273c2e6eee6c21a031e6c65e25bb791a2b0817ac168920a739e0ae6128ad2ca97bfb6920a748733404b98083b578163791b085832ad4a35c853fe8529e4e4b62df0e8726c035861c6edb6f2eb4170698d2d3da901da1c7f2d85b73c4c12468a8fd0e4122558f866749375d33b6749f41e37bfb49acae681efc67ae3578bbcb086bf9f1833d3a2a9d0e0c042706c41958dd9b5e6f107e28e5bed647d2db94ddfbb75491be54b3f6b315402f0df49587f614d801c90dc6b42803286b5e37fdde549d88bfeeb3fea83522e30e347d38d228a701537a0cc11c9cb32ae1db6e567e8552d9fc97d88598683afbd90ae58c2e786a5285b33d6892af0c4b91f2a34c7a3eed752f89233ea32c9127249d930c274c133232e53fe667732c31104ab8acc0599f3d017e77f34e1e292d05ded1bc5209b7183dbeca21af986957545b2b231115143b23fdff983367d504232765f22e9a9a5c651d66947784f7d408444833089c69871f97b499b1ca127411c4ae2e4e2fa9b52e3215ac9df9c738de19664b2e03315089753c3df5bb20dd84639d8d1b94e523e8d21c6378b7777b7d057de3f4a25f1b8d4cffc5f43d6bb0da79ae6c12ee2d48e652ae168a7eaab602043cc64c5a5a4736b217678b417734d8d55fb33a7f76207ad443686d416f3465c97fc872e8457a9c3e901dc13f6cb7e6c70799df3780023336c6e4309b239cf876ab831ad1fc96ed9c9e311ccad375d9102ab8451902ef3a5b81fbdbe86c441b3b8ebb9002ba679b4005b540a99df75f1965bf3ca20c82e8540723ad96ceac9dda225bc90f9287803a04f52f26053dcaf9f699fe726e714da69ec9d71d78db541904a61435a3dc0e1d00ee4e7598b8d2fc1ee9595e554e943b76228c72475c94e714b9e2e65ca42bd6c27f3a725c9773e8c9b665700de0781a2f1e5e7d3da8cbf002dfe175b5927fea8484ad88123ce76437b9aced1e5a36a8933276eb9839a8cfcd6d1acfadca6f9fa1a507280780059cd8ec3cfb17492f2e38d03f776644d920163ce8418074cb3123ae35ca2326c71bdee6173a3b3d36318924f836c6782a85bc2410ae67139bca7831d815334f022f59e157d5483266c1bb387a1d8e59d37f080532949007de3a53b4a44b67cefe59b9db6326b232bd9850afa4edd3a5236986a3f116e7d5d8a98e6a967993985aa2415201a24655e7567f1a159eec7d2296eac596af5f770077a1d6444f4d7176b201597f33405cb807855f2b8f824c9c5e92078f4b7ba795b1237bd24c7376ad9d2647f6b131ec8120b3efa4b6f254f51d22f8c5da727fe19580404be59b8f3898c66f17ff82ff19b7cf82bf649c0add1144601c8b38bcac2ada242444fd11ae9498eb47f16d77de6ca9cbc861ecf479de373e969d26e5eb2ad39e4090bed1a0affdff31f5bc9f4a8add6f6b2d2e5921fb4ee3e92319246ffaabaf094d92378d5286fce5233029390d224c5be8a3dcc8b1ae880d47725493d90e3def934522f63d80f96f37921cb8397358cc39892767b1155761e3bd68311ab93ec54575b0eb0e3c3c47fd49cd97a2a2ccd76f8bcc316cf2c5d5f877367898fdfd7e88f6301e4b1e1a5d80bdb6e513d134329bb753eb7e982696713eec74602fc1112dd8fdd9f4b129a08b2bd07eefb514b58b043f879aa298b25acc9221d3c366162d15d6389d9443c1d0dd7d8ca217e095ea039ae383716d4c96add3a38f3466f2fae19d2fde3a68806cebfbf8950425cefbd61fcf68400dd26aeffd34da8fa60f51398d9bf1d2d4c24efdf229c8afa346421f9ddff56512fb5707e85b8f43ea9f38c0891592d3ee1a2c9c8700f55a0be7b7bbfdecacd27af04ba8c22424eb027f2a8504b2878f1bcf1e54608a2ee5d8c27d265e9918acc2d2e45baa3c3d5cdc17ed57ff4193ed8d764ed4eb290b24207d36a19c48565eda5a6ac9516f4432594dfca513ca51fdc4b147813706e26857416f94a3ab5258720bf6d9ed59c2a3f3ef6ee561375966fdefa0ecd2f2b82a813e80f8290d5d04f5b20e6092ff3e406afbac8a524e7044bec55f9a685d1aa156e52fd3d77598ba60b4dc478a14a39b41fa027d5f0947bac937ddb169b552b055a83788d66965a4473e4539c65bebf885f09e29051e27dfc76fd466c14726972527a3b798c58f340fa050954c42ee2442af5f9a4a824de31b1b536e775202a2c1f6c4fa093710d8d23382eeea0e8c06704d855280110f70259e2771c5a07326440dc68363ff96223c215735b53c7bb880eaf878d46837f0f58a2c8f34db2563d021c8e005802fa65b746c8d3b2a72d6fa8ce13e22b6cb02a18320687a7aa13aab14e5318dcd13727a1294caa38192e3ea73d2cc4460a0646313a4428be81af3e091c36b2e9dfbf51f391d915489295ef3574cb8aface6f942049cafec4914ded402071a241128e4055528ce7c1a43e5c426c5c1cd4af9974884a0ad55660052fc3d3f2cb85cd5a1d40d6ec4eab3c18d61c2ae6c98949ceb6d07b93086449a8f77e70ca2d55f7a0886c71f3be9e49b7810155e8aba3512b413879d43288adb5d780f5609e2ca5c22ca4cfff3f3482c79ead24b4af0086b605a0e08662673e472fb4b28b8e94f32884dc1c171ff527ef5da7d998eb79ce745d9c5db985d1cfacb34fd1ac16af80425d782f348d94f9ff70d39de1aa38197676137e722ec427033df9e3c5c456c2bf8eb965d628ac3af64725853ccc389def8ea8a7fb5ce19ad4b0fc50b0b32ce6f1dea3bfcfdef7c3032a921958336a7bc356e19e5fe6bb50465fbf14dc38ba037d19df3ad3e3e855ea95ef81cee28899bf162b0d424f38f528e64db4d68986ce0732ec69456f55701b7f5dda90a755858ce0619926b53ef53f9fbce5eadf15794891630394840378a524609811c00e71b5739158ef31d714f3ab7018c0ecc51e99f4264ec98982aeb736337ab3f415213564cdb8077ae104d3e7407d4481f8fae8579528a8fc74c45c36e7b6d54f93d0d39d5b31f1a4c915821a9d7ab8013c1c6f7620ee069bec49608d10a915b2eb556a5562a4f7eeb28cef87030196f98916e2a9f3c8be8893bdb2e5492536090e3ddc6c6553d7555117f49ce54d0c06e2c8ab715bcbe062bfef4a3f7dd9317650f8f7fba3fc03d5c7678b4212867293aef6216a08c60db5dea51b520b15a8c93bfa2d6959f233e04545471942ca2e6516dbb588041f0fe63997c7bfbc6afa990027f1abd62b347261389b9d4811670eb32abcf9fa971b32b5f5a19df16c517de9e6d57e028ee80393a890896ece64639a840fa01446bbbf45e0e5d8b187b85dc4fcc1e818825d4a08d1fb6b397658a5fa592b3587fea96ddca7a520f7130160c35a0cabb1200a0dc7fb2441a3dde721e49e6d2b185cec101aead7f31da0cecb6ff6f2d8a02417bb3f951e88e6e3f10c68f1cb8dc98da1e608148910b55f49b69a6139bdfdc637ab30997e21b8772201f151a09c183fc4803f0defd2dba67080e7ad453c078f027bc7525c7d4571d6e722e3d4547d591d52414409c60d0dba2db1b784c0003ff8d13ed0138a71aefab18e1fb5cdcf1f8f667697e2789c98c2c7cd0e3ebb1f51c6dd37e4c1a1cc06bcec22d4266baeb16e70339c88cbd238504a11369fb53a45fa7f6aaa03ce314a0680c7b7c1833f60940d9305d2b6b7ac85616a7e5ba1472b6e17e1f5775527e4f520f9eec420b70c7261a3344b19aa023e27a202913bf42e87706625f016674d8f79f35a41020ad962e77359c5622bb03266ba1292ebe3837f37c5ee2c5ee92217e14c26412374c1e14e3e4ef40b57dfc3b529e3f29a6e16e7c03ba19ae80dbfc55f856c23111c7b082ffff05658f2176a2786289cb6799bbface2312c58d6b45656dd085b642a09f05ea8b6cc27660bf81b5118778412a88c62a96602610ff89c34bb1a477558b387dd32d352e8a507b27edfbec30a40e5313f262f905b0f5f73e3be0198299b11d13f0e569bacae5e28b7d06c336b6ca4f5c7e973c463bea0cc37129a0e87a17279ce301cb0b0913ea45a04a77c2473c4d2bbc19808f93baf8b392c64a4fbec09e078bd5db416089ba3e60833f53d05a7a96a7c03f913f39b1a3181cf2342eb307965dd01c7e82d65e7840ad297897ed3f1dfbeb17b5c2aedd8db75ef1dfa65aa5c2a321d472d85a455b74e540a1cf09b0a4dd46a6383e0b08604e69aea1b79eed155584118a183a32669a5d550dfa795f4498b98d31391f7bf9aefcf9b32559778f59304f4d6ecebb23654144aaa38f6b6846aa951c437b5e4ed80120d5841f9dc8b5b41926d58059854bf8cbf57d8cbf820bedce68cc88734a40dc7778475fdcfe01e59e260ea866c85d979ef6f7a7a577a75bbdd9cce9b1fd9aa6c2b89a2bb792156f42cb65d784660b762138a7337e87f074878c94cb8f0e7a70d4f19371316aac641d35348fc5ccfc911c5cbdd2983e032df62004f6788940f2e2fd6e7151f9e5563a87312229e8bbadf04e68e2cf4e1b19378db4de335b4c88c87f096dc2937262b63a3644f69241fcfcc14b1e03a066645ec8fb43b33b3b49555d35cb52f6228a213f49b6d0cab46ab3b494153a3c70f100e7491e662107aa8e7b651c68aa5465a24500a700b33480c1a8c02ddfd9965dcff294a7cd4c5873ba32a45592576da3d5ed9636ae5709c6820e4a3ea2a9e950c97e8d171f1528bd19169c470ee7a4df23c33d3f70e9128472442429bd9d4b27c8d73c8161b3cd5d07c3290b3eae3e9a6c14a815413fcf94193535f5a5c0c0023aa6a27e66ddadbdf4661db08a7b7340653fdd8426f784a05b4a365d6ccd38179a285dcaee8e362538270f01c7c40708f0013612a523f41cbbadc9d3c50e5e4eded53396db97a13748cf10e464a81ee5c5f7576f49631dfc6fa951335055ce347e8b7bd75ce9bd00d70ade8dc14d358fd4afbd5184526368add8f9475ef7d9e13df4379efa27b54bc057ea362a08c97b2e8f03458621bdf38c40e9425c45c142d4461023d351c300b3d00c4d17d57df98a60d6dacda38eb46513f786801896ce18add8acfd03973aca374e0571d422d04c306f28b793a99e36211f1670399cc9399c5e5b02b8ed15cfbde1a4e2047c7aa26a01e23e69bf130a57d1911e11169c362f5f3345c381063d28409c8dab60213df67a0bb49d901d3d4441aa0bef3ad2c45d049b89a841e3659e7715537084c466259ed694bdb1ca11c4dfa903b1e1edb6f90fff6c8305f33b923a2b3aa538fef5fef5fe9be69a1dd192f56782c709cad067296807c9c067a7e8404f8e6e4c668a831df88bc44c526672dfb8165087425efbf248730cd1fc4779fddbf51d4c9af348373db1f5b690dcb967394e06cb32245a51241802736dae19362b2d1e37fe30fa7ab79f5330caedcc6c182c09cc44c8982905906106e8114ceb20b41d5c52fd6fb9bd3a3e54e5894e4f2c858f8df3a27e6dd3fd559d3894e530809e1be8ba9f2b5526dd183f9cb3949e0bb14c3fccb471fd1a70751b938326de55e8e6c14e7edf10eb455a2340f48fa63bfaac46f3d3b89b07af2b83b494745b71eaf5e40ea9bcad95a4454c3a6d39fec718b7ba7be5b35078efb8d08877986691ca347c62af92a946b716b8dd076bd7c7161a7c5ae6ccc9929e8ffa11d8f44d3f3b2e45b51a1236779722313f4cf7208d095e3732fa94879eeceb8d7e47e91fd25089c9468f116e15aa764d4607aa77d96147096e46df9e87defe93218dfd5c7498", + "d3dbeb3a004e3776737a8f02cf6c40a538699313e1f70edd510694b5333cc7172c00c16470104618f9a39688a01ea259c600d18051a379614cf4e5844e2e9d4af11c41eb103aa1e839f6226525d92af5e609459a38b3a25dd4e67deff0bafe09b82f99f3d75c523c4ba21221fc642d6fb327a015c6f48ce87dc5d79dc5b650f91e3151a3fe3fe76611d6eaef5c1bd0569133377834facd47f2982c5d4855095308373003fa61d80835cca34002eaa52a4fa7d3b8c34f54ddca79dff197c6fd3cc43e3371bd43fcc37f723d9f41dfec21867df3ecc636199daadbe659214297b8d0babba8e5d00cafc7125aa0cfdcb859e953d238fc2ab6462362dd3097e75ada136c070839c0d0b92c53f09aafc99248fe6198b3334fa1f5f4f06b114037e96c3ee4321177c199a33ddb6cba0739bd2b7f454bc9064158df43191c42ea0d8995e4e94afa21a2c2fa59877f38e0f1184917f0bc87bec9669cb2d9f9a10ba7d99f2ce7a23a8c4c694b4dcd7bb6e28e77f4cb16cbfc86b6cea04380861e7f7388ddd4876055b5f7ba8cce89b92defb8a625040fa252dcf4cf6ba67e8f2c681b4bb5b2000a8e1a49716c0dc69f42ffb27685773119f2e5d57e84f7f8023f8b452a42c285bc920e3a46049e0d7672a5163dd6f72393b238c3d0d3a4992029c71323c3c1ad5e03e942cb148051bdd2d10342da57c6d8f68b99047d43d6200af8878229e4b6afb3396b938ece754e8cc140caba66df1bacb2a505af3e579bb06d43902a8e6b0cada8b52762ad0c795d4d017716bbc7dca79dceeb986a0cf326cbbc9d6a302f34a5831022d461d99303cf7a41bb5175e1cc88e9377a16f205e1d32fce897f167ecde08e593048e1fa2368e4880701332a55b7ee671343ec340f37e5a9b8edc26e789fccdb4f572bf0189d3a887859c5dba8b0490cb591b200a3004442fced4b96bf4717830c027d6f5662fd57d964a18f89d873339a0de6b3ef2617417deb7dd104b7730ddc73eeca6478de7c7084ae5262f1c3a150da9afa79abf9e4de110d49b0a0a727a8675dcb1cbe76feae3cde81d23653b48d07559bc5266584fa067873412f6ffe16c85c9edddcdfddb8fc6998b8a4e0b29127e62cd9ba7dfce390928deb640f86273ae253ff4f6df03c91f80fe25ed2e6de509c3536d41b35abc54cf7ce30287e93acb85395f04073dce0915c02e6731d16ad76527f3fbf3e96006aabd7ee241dbfe38509932560ad98039a4bd56d4d15ed9ee4d36227e13c5305c71b1b878f6b96479cf1166a93894fa6cf01aca4da216ae6f825ade76972a4a593027121bdbc7c2fce2b734bf730b14cf513dd9641cb1d3cfaeb88bec0611c825ca6c60694a854de543db9119fe484cb7bca47ebf03899a185245693ffc282da97ae89d8d00f564fa0ec7988a629ab5264a7fa6c4e17ac3eb3bbd26ca525563d400e9de1219d58c8d4118c637a95efd8350f1cb5cd56c6af87caa7fc2620f34159c455d8e3f2b020c800e78973223c5d9da400bf5efa609f340a1f13742a92d71f6db545c8ef87c2441b99c54b90d19f3fd0dafbd3912b328314e351a9bb7bac449649d3ab0ae090f94f21463b78db4512004d0e2162debd3c95e679fbcaacef0737f8345aa65a76e7d9fbada667abf200c61098000d18144cd026ce517c70908e023b143ad70053aced29fe3cb7d6bc650b96273a4082ebc50e47781681ccddae1567deb7e041c73bd82438775870ecdd9fb06db903c5fd2e768c3b8a8d637ba7040de04045f1e5155bb5aeb887f49f7dcc77c5d3fcfd225c1b30ed7e8bdb52cc5d3c7b43e72c0a3ec9d8381552133813c17c2ccf1d4949fdaa1979ae74bde43c72aee77ca39611a8e2733c64cde1ea0c9eba5b8c34be8d48ca6b5960409b7c09863c39f9db10d07c9f4981ecf1561abebaacfb6b9fde3117d6bc81330649fbee9fed0d231bf3121c48263d32ae4d860d319059b447d047e276c0622cba5aaa9a44e4677db436959256cde98709ad4c72a74f7db88c825464a4f531aa1b0caae6a47d682a137414f996fb3e860383b479978eb99c5e1f082ba3ea4305dffe5a139f3da93048a8f80a92ca598ac27c641a3f82c5d9b4bdc5b8260bc1b90c852bbea66002f0b7812d477f70efa9d7392707b498b84f490cbf3c9e95d6eab34a6b5fe9ec3f13ac8ebcee017622f967e04c2accd564b87b0ec366cceb8aba4561711bc6ac63a3b409cc85b993f67c96b346aa9bc6957c3dd12f3e427ff769a702b5098f3d61c2185d9a7a656646f4f534e68670322fd6a28a0abdc4590dc1c76b9630ed769521902a44677216efdc7ceb099aa7aa68f87e215090a74aa9c376bc5ee4abb45c80d6b8176fa02618a1df6124d4b1ece04bd93c252ee8cb53a4a5caf4068f0695ecd4dfaea8ebe801d54268f7512354142be80a3ec53337b25191ecfd60b6c30c7a5624f1d8cc0475b3ed016ddd31c5f6b25bb4b837a7a35498edbda00edb10ea98079328276808511972e05aec774f5f6ccfd408d232d4622900c85032e5744492c101c5587e16fffb9149eeb996ddc27238dde497de6ccb4848462e444bf8ff5ed13b09e4c2dc11a183473bc53d10d06d69fc8f2211ec31e280361174315f4947b9a92511f36b915d96f65bb03ec93c634eeeb11d100e10a547d4fc3a182b81e489a2694b55b01bc7e88afbfe4dafe6d6f5f6bd5003926e9fbfb03052b431a1b5bef08335a7ef88593aafbd47afee929022fd4af8ae196de9ad520be9bc1437fa40e7bcabc3e70797f7f8ff0c85d2fa66f6102bb33a7cb0f44a3b64eee1bbcd2b6b1aff83d86f313ea8d96a8cfa066722f7cb0f97d7baf3b0b4e6653a351dcd52b1f2bee1e8d3185466dfac516a39f03cdfdc8cfec3ca0082d94f0052c4213e53eb71574edea8c09a08a396838707ee24825f70564d458493c463360462add277f2de81223b992fac5fef4e6eac66f28a35d0c72a1f5274924c691382b47b1fe6a406eb7902ff435f7f5508d1a92009ff7de03f48da3f4b64166c87759a084e6770a7fa687a1d8ae463401617547e91f44943b0e154a71e176b7838c26d02612cdf9118705dbc2d866d7116f0d9b538919b072441d5f7dc1f4f812ad74ff614d165d9aa2efc7670e1fefef6fe595625eb78f5288d5e5759ad0e76e2fe3f97cb73fe0984368d8dd04c283e3cdb0370116315639e154e445e23b09885af5974c0b80e8983e0bb863b78024db0097779f3ecae9ac1939d48fdbfa193066b6150eef83ad97d96b4a9b67c0701081e91178d58d788eb40aa0d24f8fce6bc11aacece595ef8e54377c813f3045302f3e2ab15005f2198a6f17e2c9ac94e7a3ce4b259d63d87a739aabe59c21d957e05494a1bc057e1408997284bacd404d9697c51ba0e74db22b7d8c86cc609ab6dbcaa988cb190659fd58de12bce56c86ff8a27b3fe03a6be5a83929995c9b5375b558895f0d3cf31ff8fce0657fac1f6c302d84b989d2906855fa4f5a254df91d9ef1077ba2b43d9624065e366a9c76da53aba404fbcc2601e5edcddfe72fb9276f35efacba90bc112fa4cf1a3d3f4135a21c44cc9d91ed2f81e77c7f78805ca52a659f61d28cf3fb27b9757486a9a79b90674d03eda7f107e5dfacae41c50fd6157ca108cd8f07d9408005cb6b939851457882e13f165e602c04ad3d01c82df0cd69a2a47225af034a5546e2f8dd1618539059fb17e458f663f637c657ba6e5eb095b88906ad5b9c7a350d24b004399b835cee54a5ca5dfb01e34b5009353e505a726f54853c6ab66a7d111e320f743a6ebf1801921471de6c651521080e2d7e0034e457842617131a2796027462424872ee70ed403f0028ef21fd5cb7ced0d6a7cef7b2ca1782dc57c188484605f2f2b1322f1be653d9af4d4800a1c2119a28cbad19efd23ce61180d3159e42a31ca41cc1e4884d189d2f9de3de876fcac358a9df84ee3a459cacf4a5a3d4a4a2a06d03b5af48e3a0f9b15b63ef3d96158496cf3c8014bd56251e0f01f44efad82e24a31d10fd060f837f4979768178af004fea3826c98fd73891264bcda5bb5fdb2c24f315489fc2732480e7ae0d55f91c51bc005ba9e315ddde962318d95b3bb5c04b02f0d47dc94010dcc6707ab55afb81d3847d036dc561b7e0e1ac897df028f06f622008fef07ae655e0c9fdbf9af10728df7646d249d01c459002471495c657a2c2f0eef09666efb0e38af035b1703d4a865f85bc6d7d20fc4b5f4a7db655913dc65a694b31ec5b90f831b43fb328a2de2dfe0fcbb075bfe32187294085a1c0d776c91949611fe8466d35b1c42c91d303d3231920940267b54fd5fac1485b706abbfd48b9935fcd0c90dac9708515db00237f0cc0b275c050e83665edd68fd738fa8b787522975426c3eaa489b2f5beea9095eee6013695b15ee7be09955ea139a8d039f62edcf4d6e9ad541a1535ec2073b4aaf3b1ffcbb08d359de2134fc1ddf230f04eee3c744ba64848ebd07ac5daefc794350bcbe776874dd8f3c6cc04e7f65bdc2a416273adc5fbe0b3a79b85a89aa492c1430af46f4d4045d7e32fe36c804ff8479d75ab5b310efb19917ed350b74b5d70eda057761187cb8115d5f0132cc3600bcd14d724ca450b065c0d96686d0b10fd10b1df17c722f109f17580f9da1dfa32885fec8e289af30869bf8b9a898c44a69287b72a473eaecaaba1cca8a7320d51021b60ff69335035439da30ab05e04f16cf6c5a079ad6f65019ffd600cf257acc855fdcdab66975bc7bac081732e32b0c11093e6da0865776c10ba342fdd88afa589362c256983ec946b5587122dd6c0e61f35b9160d0c6afa2097ef1dee6b27e43fcec7ad37b0bef4a584a5c316334058f5d4fe8a8b81d53f0582b7b8731eddad8913aa6e0b981d3f577e6fb03400c60762ac674cbbf7926c61312bd00ee3ef2130d27c1af7346efa32e76c1e3172f4a7cc23598653b459ee35a776c93a8c7d3e24758a5542684bcd4b5cf7e482b0573f61768640d592e21484fa82a410ce80ac429378a31c47eda90061d7ccb03c033141c684c86b5987d8f080eef9b0fc4708e10e8dad034e2909da14739b7c32a2549da0d53bfeb5400221932c40577430556f5610589c7f5d10ba991d58eaf2b37a9b6a2ea15928f20604b2d7b17d2ffbf8cb94001c544a9b0f9aaa342199d9e7c0cdfe3a44833829560d875d2f4d69f34bf621ef254cf6c459a3019f1a0a40f7800a6a337faac1de80e3243106743153cde5be027a8d2f12849a905f54ccbe28e652ed63cc02de3a7d75b3554c29a211c6e292655f1c55a60531df2fbb6e362480a2df07b651c04f70862f97776fe3272584c607dde78aa9f09c7e890afc42425af88c4ea5f9feb9bf32e7ce38c73b8a1bcee7e64ec723404b15b53579665762650e3d4d6efc32132fe4ea4d633929cfbb5313ff680921392bc7a04262cdeeee18c41fc779e1dc734d51170f8d2b26a91a2cdf82667dd33092ce72d5ac6b76158f52c7f5cd3cfec7e6fea996df01bfe415d0c5f36431db3c9a391affe75428947080d2a0bb78b333b99f339a6c9c939f4483b3a850cce5afe4b864ccc6b9432971837bbeeaa62fa58f9d41ad7814bdda840b4ead959cc0080b27baa65716c32c3c3a5d7bb28747f03db5ab3eee4b28da3ed88a838d027292b139f9b8333716834df2f54cd6de14245ac89ffd806e3dec2e7a439b77e4f97f65cad10ed00f714538b9e68cf14ea50125189434c9a5bce8470276d3472423275ec84f2d504b8cee5d866ab020bb8bf94122", + "8da462bc582c6f2f59355277a455b7ad787a92f9a0b128f7cc866074cbd97df643d132a63dad4fce01f16ae749738c5c79a7bded51a58be37bea7fd6d5777c652eb25f707c22075ec6ee8583f1c8f3bb803c179392f353d851bb178bd2eac4f0535cccf2fccac71ac1ee05a7cdfb20ca436e3416bf231da2e83f545d2640c8e0411877a94bc92c74bb6bb6c5a795ce36141ccd009d6bafad274e82c202349be98625837427e1ef8de6f6e960b08dec7d9a6c26753bfc326a4b4be053729ba975bbf1599059e5f156489482c840beeaf7bf6361677b19f07282ec3e6c360e2518b66dfaf61010a96360a32d41f3a8a23036340b9f5452dd9475593e768fda4b8943a154e3e89e9f0a948817481ae98973e78e6b2edb6dca17d473b6f02b1fb14dee387c90aaa4648b8b0ed41d39a243dfcb1a5fc490284d8d8f2a07d921cb67f1fcc59adfe3297c5e27b6839169911e916c2a0ddd3b9cf619f47835e1db310d2cbb83ee61bfb0f327bfc31ed7796530ecd876a1110e846701d062c4cd9078f33b509d7f7d8096a1d54f13482d18436c4ec0e0c88054bfc58a8ca25e0af80937724acc399959ad92af128c66bd73d81c536e71dc1288a5cbeeaf46d576c012ec993c96c5f9c47708b3f93cafa205e59582e96c798c3ae4f8c67fbadeab10f7b16cc0af8b7f6b7f7f792244e4a322df484c4b84019d32928ce074c50eed31befea4709d16cf5c844657161044018a1fc1ef1897156c23b129ea3513ff0cbea0a9a4187673d3ce4c9e05224747bb66ef21c57c9a23d5cf9a1974fb9076d70340e75b838e44996ea6632d90a71e59a9137f4a97aafacab3b4ad1aa99260efa682858c31965c2386f28e53d19edee0051817d3450cbf45bb6f118c2d0c310e8c3dbad2564f88fe5a58edee9f9dd1795165bea5a7b92a0005f0efad3d740d8fa0714ead750fd5e0366246bd64f0af25466daa59eb5e4b4431566f7ad2dfbcaf243600e656f6dec7af5cfd72eaaf09e8621c778694e8a3e939998e918e9d8c3b8dcaecaf9d1bc363f8fe8151b169e0291d58a1413b3c3a4c64709392e67a6e1cb5728f34ca3e743cfa543fc6123067354ee00ad7853b4eeee59986141975cc9499fb47ac9edc6f39d2eda20e777501c2ff04a493c8f3036df977cd36fbc947c5cf1a5ae7cfb69b1df57ee3a557a5f6e6b6367a335221f34771f8ece137d9155e73a77cdddf1cd0f5c3055a12424b95c6948fc9c4f88e244e4dce40b5ed38f9ac1e7807c8a923e4b44f8ba00e8f06cc0062dda7bb2ef4a798c5d1a8620f8a6bbaed52a68d41902f094cfba1f33d080b2b6dab0323714beefe1fc10568baff471f25b9ea51d84776ce3d9781df36c696cf40d7223487917aafbee15475c100ea27cc678484f9edc9a9ab2c7149e2b38f8f329159a0d98ff492b412a287de6637891efe758c4f37249953dae1eb26643ebf69dee48413858ad596498a38daf6436a1e59c8cac1ac7c94a864382bc834d44ab3787c4571623311ed3c1e66306a280e1fc6bbab8ba56f4c79a15a83eadde199cfa8f80555c97ada73b471b36a21b346fef8c21c44c91b7a7e7085737afbc82da220484ae0804d94f71d33953f4baf07d61fb95676e88c9f8a5cd20f663d0519309daef40ccc45344ec0bf26ec5512bbdc521de3577dfafe01cde71a3002c820ead34386ef1a23bd2f6e3f125c136d4a29bfa8181a59c345412f0f9d2d004edd0a2e6e9b89a113375cde50eafcf2b5b241c0cefddd4e630b6be2d22a93363bdaf0557c06aed611527b23900db763cc1353c33e126c3eda717769b51628bfcb2813308af89c6a3c4445ec0365082e6ce7cca216cfd3fdc29ae96d13c66b7bd5c621b90b3375c19ffe9e2cae18d15bae52007e8ba135bcadd39cea9978f1f49783182f13ecb57f1a77f79b3b0038086ebd9e96d8ae7288414f4725dfe5aa15997ad26941aaa1bfbe1ab9e6660284452bbbc0c8849a1f0bac574d3331d8033178a7461bcebaab54d3e6156a5aef5730dc958cd998a75e1a412d93925048990dadbe22388f6b85c6b4259185e8ed1cf878fe5334c80205750e47932c425c84370cb0bc7933e29e3af5c6724ada3a1a6495fe8acce634ced98f098e7e4bc39598ca744435f09d2652b858ea36f62bc1ddc97cbadb16315767e06b8d0ffb2aceadf2575a0a84eccdd3f7e2bf2baf1c80f8cf69acbd5b71e00e6057ffb43d87d7d244aa30052b379bced1afcba38325454d604aff82ec0e42e3e69deaaabc12718e2e4df13fcaaf855ffe1e2d82e7060062c20f99e94b1e3ba42afd0c7659ed5d0064f61c958329a8fe90eb17a176b5d3d7d559f785602d3401b0ce06b6ede8e58b88db4ecac13df6eb4d16c2f3f83e349c9ca2f66e1f0fc1b37989f722589075421fba332502657575a47aa435b2e93fa0060f38e788fae795e1b62f49260240015b1c12fe019b32be2f361568550c9083a73e4b99979a8fb734bde74248827cb5f3f8204da3afac1107154833b76fbb7e7c84fd690043741e55401149fee035a8d7e59d399e68c19a2ad9888006c11cfc591cc570a78240f2d5c39e0179a37ab53ea97b1f477d757c1af797e3801743202113323778caf219bb548d18293c5f68742ddf0e74a972e09758d475726064d23f75964a23c0bf405ced42b02047c035d2ad245285debc86810feac7bdbd9a055d9ed1e7abe5ef4c806b6ce00bf647e9370c350c60a988da268a9c70b9f41773cab5f6dfa5e11afda54b2318116afebccc0e2c54077d527bf005c2498b083d9b95bf6c665f7a0abf1f62549ecc08c0581bc8dd7b15d2f360a5d795d42bd3899be206192e488692332fbcd065257c11b1467919e768a90af32b18217c3352e2b2858e20f320899430e4fa704240c076224573640a3ac050dbbdc49a70a537ae8185c1b7a070a3b7812a0d3c21d6ae1a94b165f533a630a24660b8b2ac5111e1ba4337d2141be6793d9e104c4c670e22cfa4413d7d5302a6302ddacb7f38caae3794085ab725ca95f671d96160828cff5760fdbb83eba9aba400799df8da00541f5f5189ae0c75b1d5f59db4eff219a57b96a264fdb8ee1764e52da1096b1cda085d72c780615e11f2f04e974980c4c34b80e0de667858d903a626b2b04dd7038acc5ac96f7dc890e43d9774821bbe9d84e5b6275d0fd8f6e532f4894ca4e11888f3bb3223f72198d547c56b70f77f8346f2d2c487c02b19dfb6eb315e30087afe4f5a38589a147b5ba49d59fc17595180fe75607aa1e0a421f1ced70cb73b5f818a0b91927c14befa25a1c4523bc249cd676bbc6f9b46d99baf597783e9d04d18215bdc461ae21a452deba22f1b5ba8f0fe4b3dda043d04de5fc6279906c2ef8d899b05b1deecabe0225a734348e75d6178b3da30dd2c1b1805499365a1068785f75c32de8f59a0326a90e7bdda944b8c4e338583100bcc50cc6d1bfacc9f3d243b698f0d5df7b1a6084333bf61048c0dea3acfd17ab620da603fb420701b9e67118b2b267b53459f5f295b93722333a7c42047c5289bf7e20b2a4389e9248030c72f18e5b2508f4403ed3d1b87204aea8bdce0b463bcea963b66e93a1cf48d630b177efa26531bea9bd1b37f044cc4a02ee8f06de2787d48c1840a6c43de850b4b9f562ab583d9469d63f601bacaec5a32521c5ee92bf35b58995a19584690dad9cb87c5f2625279b5a50f78ec7bba87fec6e1e765ea61c3662b42b13d4e68c1c048847e572041dc865d1567bd9b542e51c1b2af312923ba560f535ff24c3ccc75e334147e608573d0133de25ad7c670ba076f3cde5515572369cc972ef1969c74bd0e5308169bbe5b102367a021b70caf9814b8f2bfe67c6139b82053e1e52ff510447cae98ce3c2f5620a56829024398d4c23d6178551c258004626bdfabdc1d317fa212f44094f53b8a5b47a182f0fd25c443c296a14d5e3b0ac88f3b7686aba71dc3ec8f21231ed172a64fc3aad92e62f76d418f4e5b7aa64eb6018092bf50cfa921758316d91840cf5bae812d826bf6771f2c50b74b6bf9ce86a006282dfa21f9984121573004c58490a5c71c63c10b7ee0193510bef70e76e53cb23f4a0db49c8bf87f330532a344a075f78f2396402537f94bb49c425c13057a55214deeaedceea33819b52c1ac5f275f20b3a93f0f519e792bcc7f9e8152cea0d3924ea411fbd6fa55e451ab4d2da6c7e74a6c5ee26fb550e4214955595269aa0801124201ee2ae99243d53c46038f1a2e9eb109dca40f1784dfa0e976bb61580fe941930721f204f669e344bf88f9284f211d50a2ec61553fc28416d9897c394a05c6489969a4b730b76b908f283f39e5248d3df134d7880250a0050bf26bd85b0ace5d2507627de9819f9225de9039e80221826b207fc00dc9c1b77dfcaea8c5076cf30620761e1eed6761e909050d982455c7f0de450ead290a0223a07b6c60bbce5b90fe2d6a75a6f824d7835b7ca5d73342abd3760bcc6f6bfb037736a201dd285828206cd21e19fa5b583512a6657d9670f4b80e613576306c6df7ac13e99dccf4751405947d2f14b2c4debc1eef724768ba3f3aceec9bcb788f00ea92f1ba5df90182690233b0c4d0a5b09670f01aa6cfd82919f40fdcacd80c5554c1b46468443bfcaa75c52f894866361cd479e3b97d60ff0c092faefc7d7c0e9a3e5282feeb6ecfdc8e498f2aab85a71a12443eed58617613d0043c0cc360bc978c811f74e28ba54d545c0748eba66a6a8a5abcd2cca3b2e3c7e6c842727030aec2e591c0de61bde8201fd43e6df31af74e46ec35c0a1a56420920ae4d4687a8127f83a5ca97c6d21ebd0c8febf60e715670a4ed5d1987d1404d711ef8fe42e1047cae8d523900167e2a8d73d2bbda48d470f874f171482dd3068761da65f7dd9519951807acf5c49b4548427085bf6883126566e820eb7ab6e211c48d1e43c1c1743a7282082e7f922951fde1a98dd2069882bb634dcee32e79cd78835bcc57b263c74d5bd90137dd344bbc6523d5dd89c0c2314839c4f6e24c325a0e544c4c21b786fcb44bff61b2792c58fc1bc034118e93bfe91582a6c66f8c4c8be0d9184b7858554fd66bb6af3e21c0c5410bcad7fc5a7d60269a226259960bb6632b00d0f85531eac457f4f4d9d2694b55cdbd34de186d61827c4b8adb5fd2cc388b939aec81ee1b616aff79f4327a056873ac7a51e05b85cbaa1524b619a4dda3636e927063560a5ef85c0d37b419a4cdf7c0e4d58ee87d7a5209ca9d2b519785a9d7ac81944d1757597dece91b788c1723cd4d8453c251a016466fdaf27258339d2b7b891f875f92248e3809fce2a8bd8561cf87070318c742bbcd04143fb52fff2430c2ee369cc6b3d3cd7ac08a6c7023238feed49f956db734da42058c93c65e3d5c09093c9aba2b07bcd85e70b316109d27489ffe4381746468b4810da570d731a7ef47b67de81f4a0277e80af586bbe0201ba24d799d424cf3592119ce3fff2ca1823cb9244288c7de860c9029bb44b65fb9ac388908a19350c3b470bc699377f2e764e3afa239498aa6c87e292f202ede3f98dcbe74806136bc623c2e96f24c7fdb54f1a7f1f63189af9e9bc67184c889183722769d3dfd4cb0b7e321d745d51f77f855a38e9f7ea6371a0c8b6a80c03cce921be0814c144c2425e344ffb45b5a8eac144e3b6e6c5e638079305b7012029b01929a7e79f6edc02b936f844a86c65ac5cb7b334bf3174e11b2ea0d7896e4afb03e8cafd620c44df5111b9063437d326c14c7223b276f56", + "8642d04c387452f77dc4c1fa5c82dc1a8f538c6082541a4c00736cf1b6406ffe2ee1ab29e4caf3737b9da7b615cbc4232ab7421134a1e36574e1fcfcb649334562fe81b006f30d4e7f73741a1a9990a41a69b63c951751353dc02984492a44c1f23074634769f39e13d1f0a9824c7f7cfb4fe5c8cc05d811c45548e92fd4872493f8d5fa2ff39a01a332b75b467137f9a3606bf66b294fc8ab5e0cc8281d2fc36c60804f520b8a644294e5d8d80bc1c2968c4a03808539d7bd10094f61d9dbd7219d465e3c2878b28fc14d0a44714dedfe0eb2fd252dfd36bd79827a31a168e2d5d252c4cd2eef4fea8a37b8d7605345a54499dbe0b6a246dbe90367a84764f78dfc0857ebf78d0b559437938b42e0b6de2257818291e4321cf6074fdffee9604b46fe768a0175eab2983cd7feecfa521c5bcbd7b164351757422972a79319c60824c50fd8e52af845c2adfd17bbf758263732fbd7542f44e07c7e8936ed8c9d6bf75a7db7b0d24bb1d367fbc10de3f1f226b6aaaf803c3cd44ffd11475c949ff5d7db75aa0f511e2b1c947c4c893e554d96d9ea53877c80f703a8ad86e6e1c3aba41cd11ee291570b9e0c3c3e0221394c0c0b98e7c8bfc3e1a51b05c6331944be499d6823cd43493d6682ac585f302fc435c8ceaf2646414501a51b152da5bdbb917342764d4298f4c9cfb3ac900eba0224cd8abfecd5b732a26fc38ee45ab997f6f3b0587cc88411401c1d3e8ae068bfda326abefdfc338f9bde30429d4b15a06a0070348bfd39418bc52a30924a454784e7ea47b697603aa19bc5e08e123e8fa814c863016bc178a315c6d1b67ea73b7162684234d4d4636f306f1d1d1c0dcfa72e48380e54fc33d60121a5da9b67811db7d9c59206a6ecebb1b942a397eb5754a434d14ffc0dabbd9d97372be24ec26399aca48396dcfc439d47e33bdfdccda38439a0431b9ec0c3b2dff46f27b2b0e474bcbd81a71ad5d8a52ba47339ceded7c11064b8add5010d4a7c582bbf7b25f03f540f0ab1b70a915cc9d23562ccc4ccc6f7539fd0d08cf5339b8647a916d6d5efdbc259b6fea87f196e0e62f73add4bdb6e203b502553efddfe0e60fdf6f118ba5f2930a2ce52a5a30f7036857dfd4a5761fa90b753d5ccc623020b39c593b874f646e9dcc2dd0d9c26d6a66fd85d81c57776e49542a5b5ed032c270c2b35e22aa779e63aecbb16d0c2ee09ebe8cb0fa6b74cabf7b645a18058273bac5399af8d0147590abd7b00b5d94f95a0a2c199d5f4c983ce5aad47bf35c515b4e30f5303afd4d01ebdf11ca42682442a575b4ceda683fda64c6802e08748f1ff32bc58138d8a7269d1fbfc0a5170d0020171c9b69960d697a8a4a2f065263e50ba2950bd1ed3dfbb4cbc3290f164a9ea6d10062fb0cb7bd25a0c20d979b3b0dea069e416e5ab7c95df48db5d560e798e2dab0f4e3695685029968777b1659bddc1fb14343060ef8cef7c1325f47c21d2b8e93986e2886e6fdb1de347b516eb724cc84fd9ba94a17bb2c23bacd7b68e74162259a29d126a737a7e0d26372ed28a4a40b7c8e02d75c15cf52fa0cc9bb78f025a7e3413524890250ee922cccebbae13ad53ca87e9e5a60720f069131172ad7cc0d27089cf9d828b113ee15773e8f22bacb66377dc4dc1aee2f199db2924cbb6bc9b38f2e3a42cf358115fa93d59bfc0ce7e42bbc4d988e94c9b68cc621e6950965b6f5cfd6e865ff379c187e8b2a7a6d975ae756da6b39b65643260b1f942df18de38c5bb99d953c2b8ca43f9a9c1cc11e02304a79705c0e28cb37957fa9ef6f4d18050be0f197380f0581f3204382d92878ad3d68a93ff12e672067383a67c32a8c8d18147482aed0a77a0ec7e15c8fe934a8effea9baff792989fb8c4f08bea66283f42129a61ce5c21f4165516f8e08ee45f7bdfeaa925ed7abfe997f530884359dc7abb701be4ea69436ba35ba794593580081af6b0d2ec6f0811be138ef599345a34506c828ccad8df085b0c86797b9058e45ffd88833904ff8ecdc79357a38e77025abe5efdb9e8d0bfc1883439afea184370817e57f08292b95077c54cf4f947c7ef72a245eef232b911a5307ec30de5e8569a7d1009259ac540e38ff08ca4ab2d3812dd9c5058686ab41036c4b0718a2f73ca0a114868684db94ad71362a36f62aa01885f7cc93b0c9dfdcfa22c64a5be52c94315e9613e75122a212465dc5214903e138f92c68fe36f875eb575601739635af2781f4d35eacb39f4f392c96a5c03e4a58e9323e6d6ddd557d786a4f0522fd1697f0692dbdf98b60352889ab73cf1e4852a115c300c6e7853caa33950d51b4f91800fb6af78d1fbfd1d7d04b6fdea8ed13e64088e4e53ad5205c7e2ba53709fd8158e2d79f969789bd6ff03b582c19bdf4a8d49e4d7ee051407de1d28b5969e0ac82c1bcfad655cde6ab0813f4bb9d5965f1673abaced12de8916cf239ae42f38e71438612785cfec947b28a3468b53698e7c9dcce456c0910bb97bb4521f6d03a17209d93a70a53596e5b25ce66edc7099b350fe20dc44dbf45865c7d81f62528eb51ffc67bc683d4977a36b091ff4ca086e04737b7d0a9dc28b21e2a6af7a3cbc8095ca0cddc66217b849ce3abfe6abc78d7be7e7013bbe46de6c93db8bac55a3c831f4857cd18630567defd154c30c7c8b88a731cb19769f1e16c9a41ecfd0ff5b51ab31e4732e99ef11527f4320b3b645f68f03cf694d6711c317860a862047e2ea9d00af95a0cca74e42dfad90eb45ed1617a89e94634e49c82faf6dcdfab6115b7ae22cab27d441afec80f6abaffe7f38e3b421a265ef86c8c2b3cf2005f490bb0930837f325edff037f496637778052d5f552b500ce032f8f0db4129ae7f29997739d63e0ca0f572ef2db8cbcbc943738cbbcf482089fbcf5b0c86a1f454e7042429efc6d17c6765ba9205beeb2ce9bcd3dd77d99c6de84b0219ce18a86dd159b321d30eaec9df24f6d7c3ea2e65ec07cc06ee4304ee5663c20b89e0841f4339e365e3bc233de84f2b88fdc7dec0b823c7be39ee348727232a88ca59c5b30eaf92da2329735ab5b591cc78cf78abda50e74734b0ce3cc817f71f0a8216e3fe1ca703b0518b9067abbe0e7a23c3e27c9a2b930d7670f087dd0f30638ccee3888c9abe7579894f5a4cec8c946ac82e45b094fbed19e5ab168e83eb4290bc48170741fb51e4f563f2fd8a22c3936282accce138a50a3faea0fb615e55727fd044fe3dc289fe9d1b9d7f09601b186b3599623e174cf42ab31301d50211555bd7b5e5e42231ff07b85e15510d712ca2b4c1be895646b0b80b5ffcb23bfb1daeff039d1afcfb7f8d952a3681cc79adea50b163497004767174aab6cfd6e708e7377fe19bbf08e1b271a4098d8cc33117b90b0225642fc92a5b4d9824d9fc3d3ea59465a8374b9dda581862e38d5a3aad3fcd8c10cd48cbab611db5a73a09cd05128717d3c45cabf3ef02e9e55b1560a0b7fcf776d7fecc0631e5671f826599616b7e09f36b73b71d8e8847e7b1a9804f8d70cd802962b8e89de6ac2ffc1de04f3f78819675467ffecb47de3097ccd13c27165646705c53670b99b1a70a835a0fb9a5f7930b91aa9a4e3fa17b9bca709c43cbdb832fde1e4c99be3cc0b9670395aa9c2b6b40b85485717db8332fe95985d7b187a077484a31706a7852a58ae7b7251558086229f68b1243ebeab305a7ea90e97e321aea9ceada4a41d6c6af4025f7f299a6e30c40c77c4e65802c1333ac884ac36a93c2c1d72cbb10ada425eb33553397dbc950ee5dc3e47ad98b5a2def7636261cb3fc356c4382aa0268673ccd11d101a82a61d6131718c1f33979003eec1cb9719cf2419080b9b4df32a55591fb0efca027ac0a04cfa9cf8dd1f2cef4cd5406e0c45aa4e40f86c9c609830536092ab77d9f1f3fbda3e7b209fea4c7570e407b179448e665aebf3a8ff6445f6ccc58f05af5d6dd1cbe596094bf8aea65b3ef04f36ae292136d341a5e72a1b4f0e0e278ef4f811873c8ee5ce54959dbf91d9b171d612d152d44c78fb346c4d6b461fae12a66b8db6aeaa3f9193b4fc0d696a9323828c10e48329c8fbec315bd03f7665bed23f63457954648566bae2d67c15e2e659d068c93a1f6ac7712502a5fb861895ecea6c02d4c7abea9be8000276a4786772961057ff5e03b985fd63a651aa9814c033aa25b329c9493b8e20fac9b254dd59adda1fae29b53b1226bf799b326359e3a5f315c0338b59f3120a284815f11bd72de4eeea3830a5602910ff54d056f8b247e2c1ca6d242b6ddde6c345bab1a20aebe7102f12b5efe2fd0b85f20581fc842213338b332267ba188549c21c6fb96ab734c761b57f2fef5b8ad48db8a450cc07922f8f6eca2a374186ed84422422ff47d85c216d218681a730108af8d96ee6efd8c451aaacbbae99a075fd3a501b4d903ffa120460bf8ee66cdc3c44485230aea38a8239467a185\nresult = valid\nsalt = c521bf7ffc3146dc02c9297fdcd45af84441390af658105cc99622d593b68d774e61006e6cc02dcfff483d3aff0f36ec184585f35ddfd46ad8b116205b909b81\nsize = 16320\n\n# tcId = 55\n# invalid output size\nikm = dc46034cfb2df51863a09d3c36774403267ff968\ninfo = 5c038dce10e6d437\nokm = \nresult = invalid\nsalt = dedfa9e98cf384cc448927bea53574c05c1132f2a07b531b366b15e12dd7c9f69ad1eca26581562f53cb3b4db07b9196664bcfd2b9cd1616a9dfe471af24b55a\nsize = 16321\nflags = SizeTooLarge\n\n# tcId = 56\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 30850cf9dca6893d4f864047e6545a3331f221dd49d7e1d2e3042d5af1fbc2c1\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 57\n# output collision for different salts\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 30850cf9dca6893d4f864047e6545a3331f221dd49d7e1d2e3042d5af1fbc2c1\nresult = valid\nsalt = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 58\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 8b4fe5702f56eeb71bf7d90e87c95c3ad054e448d50dca0f65b78101f657dfe3\nresult = valid\nsalt = 1a08959149f4b073bcd902c9bc4ed0324c21c95590773afc77037d610b9584806aeeeda8b5d588d0cd79e7c12211b8e394067516ce12946d61111a52042b539353\nsize = 32\n\n# tcId = 59\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = d5b8c21cf1fb6da39d7cb2394fb7a2c263d8d508d008b8e5fec3030340cc5664\nresult = valid\nsalt = 96b8543f45cdf8", + "cdf0d8648cbe854e20e21c554c33e6a27be0e5d5caf1f70e26b14a9df8e1c45649bb96e510d095b249d11b526d094f6e900a17056271f12fc6\nsize = 32\n\n# tcId = 60\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 9cb385bb5126c9220bb9870eac3c6b74962b0ab2b76c0f9be6627a7163facb1b\nresult = valid\nsalt = af856d5eed5c77f4\nsize = 32\n\n# tcId = 61\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 9cb385bb5126c9220bb9870eac3c6b74962b0ab2b76c0f9be6627a7163facb1b\nresult = valid\nsalt = af856d5eed5c77f40000000000000000\nsize = 32\n\n# tcId = 62\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 9cb385bb5126c9220bb9870eac3c6b74962b0ab2b76c0f9be6627a7163facb1b\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000\nsize = 32\n\n# tcId = 63\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 9cb385bb5126c9220bb9870eac3c6b74962b0ab2b76c0f9be6627a7163facb1b\nresult = valid\nsalt = af856d5eed5c77f4000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 64\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 9cb385bb5126c9220bb9870eac3c6b74962b0ab2b76c0f9be6627a7163facb1b\nresult = valid\nsalt = af856d5eed5c77f40000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 65\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 9cb385bb5126c9220bb9870eac3c6b74962b0ab2b76c0f9be6627a7163facb1b\nresult = valid\nsalt = af856d5eed5c77f400000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 66\n# a salt shorter than the block size is padded with zeros.\nikm = 624a5b59c2be55cbe29ea90c0020a7e8c60f2501\ninfo = 5447e595250d02165aae3e61fa90313e25509a7b\nokm = 9cb385bb5126c9220bb9870eac3c6b74962b0ab2b76c0f9be6627a7163facb1b\nresult = valid\nsalt = af856d5eed5c77f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 256]\n\n# tcId = 67\nikm = b18e35e63cc4fe4117bf2754ec3f9ebb5346dbb0bf6d4e5f2422418771816fc4\ninfo = \nokm = 6cb29020bbbd80a8525643612b5165a77bf387f3\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 68\nikm = 236c2ba20c72242820f63d3e9c20633162c1cb048a45dea13861e8a138b9640d\ninfo = \nokm = 41500bfebed54b041187964d00b2eb09d3a83a0a1eb483726d08dbdf8cbf02ee78c949562935902437b1\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 69\nikm = f2cba42dd82acb5d2d569406815a3769b7becb13fa48537fa7d7d5e121081d39\ninfo = \nokm = 6e79ba20f225b2ca5fad5d87d18b5d0922f489961feedaa032a3551dfefa7cc0b636f831105b0301bcb982cfbcfc22cb01f4d4d38bb5336448091218bee6f8a9\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 70\nikm = 73d97f2ffde01b447a5b8573190a8eb4f87f7ac04482836143f780ad876bfffe\ninfo = 74d2301c5aca2441372cf6077bd8806dab3e8721\nokm = 604db18fa852e98c2ceba7c5fd876c9565f2d8ac\nresult = valid\nsalt = \nsize = 20\nflags = EmptySalt\n\n# tcId = 71\nikm = 6948521434707e96fa943e44988d1ad409ec57e6594867e8193e9d727238916d\ninfo = 9eaddd1e7edb6b84c96fb5ac7e0d673a8f5084f2\nokm = f0a591ba1b695a12cf0601ef28ad454aea0381f5136e9d44d45c9a990915eb537d485b02dc21f5602d25\nresult = valid\nsalt = \nsize = 42\nflags = EmptySalt\n\n# tcId = 72\nikm = b72b3854923b8a0048497a86bddef962552c8f6b2c72b2b2006a1820fea5c6a9\ninfo = 113b708f7522ec3b362999db18699bf7871e3b8f\nokm = 03d4ec407cad5d86bb14557274863c89b426eb6842abfca17809c67027710d683d66d60cda03b01f82c15240b18fd53ef3b1a312a6b1c24b3e68095d624c4e0e\nresult = valid\nsalt = \nsize = 64\nflags = EmptySalt\n\n# tcId = 73\nikm = 44d774def90685c0e9a685fa50fd434c807d1a57896fa42f91778821fe232057\ninfo = \nokm = 966d70d2a934e0531e7f014ec225173a473ed5f5\nresult = valid\nsalt = 0d7d3b47bf8484c8adab7f9c27c9584f\nsize = 20\n\n# tcId = 74\nikm = 098ecd86354496a701ffcac8d589a1217231da3b80ccce4ef85762d7f3a2c211\ninfo = \nokm = 960403608cbb8f54559fc16feb4d0b3a2cc083b111795ebc4a47bb21b8d0742759a7f310446ac307baa7\nresult = valid\nsalt = 5232e5e4e2dd6133d46ebe5a8a51a0bc\nsize = 42\n\n# tcId = 75\nikm = 917ad396520e454a571ac39a9f6bc845a8920954fba1ac400cb2988cd8847ba0\ninfo = \nokm = f4470980d2ae8bbdb48d9c379c1c3c3444b1db1f606f1c9db15ffdf1d6f7778289b3d10b8b3fa44ae071bf8862a980464975351f4d7518ebb520fe3ce93188ad\nresult = valid\nsalt = 962d86949506450eaca929286ce5d9e7\nsize = 64\n\n# tcId = 76\nikm = 1cbff2202268edf1985bc91466b80133644988c5e81368cf0995274204fb0aa3\ninfo = 3e4f9c8d3d607c2ed43caa9e87e6ecbc307c6048\nokm = c5abdaef7f2de0778c32ab5c697173eaa77a052a\nresult = valid\nsalt = 2bde6e33534731f52d39add940ff46f6\nsize = 20\n\n# tcId = 77\nikm = d00d6b4fe088077ffbc64127d6bdb9707a0f9061c0b873c334c3be0adaa7c2bd\ninfo = 4266351bad419173279c901aea148e8b1d99e50f\nokm = c01c828143f4e2d4aa7670b7a530ba550aa70577d1eb7acf1504974d2b48c8b9de2a8f968057230e7a65\nresult = valid\nsalt = 1647a044472179d454b8d2108e4a2aa8\nsize = 42\n\n# tcId = 78\nikm = 9a27c19b607adc8f152faeaeb1282002d3a2166894b7fe5d65829ecdcfaf73b9\ninfo = 36356cdc28187c11cbb9046f9ce7502ab4d2ea46\nokm = 2a9b1cfbdc14bf2ec8663ee121290534c84c1b053e848a241f5a75828ed63c14dc364c90e5008f35c98e54e25923f6f145708f5dcd6cad78157ac9a0d2b18d55\nresult = valid\nsalt = 70d83929a6376a6eab859f0d6225f131\nsize = 64\n\n# tcId = 79\nikm = f5d1c855d3448e212d76d3927ec797dc439cb182f427064288452988ab79c83f\ninfo = \nokm = a76a114ca44ccd115e42b6957a678c5f8cf958f0\nresult = valid\nsalt = 87ef5da5400db731d658972ea82b76848004e70d3b22cec76c8be06283c4\nsize = 20\n\n# tcId = 80\nikm = 3f19b7095a6b3d313b59c3ba2c3a78d8b24f30c9ed4f8be9eb92f8eeaabd2c3c\ninfo = \nokm = 232dd33123eb4851feb01bed3e9fa1e42e966d6425ccb3e18f12dbf86d0f201f7b9d5707216de4c69e6e\nresult = valid\nsalt = 8f1f6c8e4f68830319ae859b4b1fa71f1d69552b0c3e53cbbad26293651e\nsize = 42\n\n# tcId = 81\nikm = b1d396c69f14994dc8add0f6e0cde4455677ba9ee95ff84a142295f9177ee629\ninfo = \nokm = b675ad80f49e3cc43fdd385e8d79db1f0335c3cfe9ed03a0924121de4626254936c031330b94c3130587a8e98eec3a4fca781cc220f549c1e6a5fcddc378a0a8\nresult = valid\nsalt = 7f693304bff77534b8246d832749387ecc0e8daeae11d77d022ca9e362d1\nsize = 64\n\n# tcId = 82\nikm = 003d1901a10c062ec44e0f2a94c544b7f53b33f1ea4679fa6e023c2d0a907fcd\ninfo = d5d3ef5beb9840d15efe9c778aefe38f1bf7bae3\nokm = 8d8b785c0421f032abc0778f97c71f3b3e337627\nresult = valid\nsalt = ed86cb8c8ba1c989f9a60a4a82c38be98c70e6218576b292c93fcc18192e\nsize = 20\n\n# tcId = 83\nikm = 02e0647a4b7ccfc0d3ee7ddfe24ce69c02f51cbaa836b96cbc5a9c2885c45599\ninfo = 4e9e27d971e76fda614fde15031f6664b97d4786\nokm = b9a02032cb32071c7c5a7b61a87fc6c28a9b6b2547fb951fe14b84271bf893c3fe40173066da4777e87c\nresult = valid\nsalt = f0862f61f2377ca34b76476ae21e331b114c7712aef501a1bf00f7e9cb79\nsize = 42\n\n# tcId = 84\nikm = 92bfb7e31e839f109e6622b2c2c4f41ce84c9907172681920e7d90e80e2339bf\ninfo = ff36776fc755722ff371f21cfb37a168a2731e99\nokm = 1a3dbaed5d00209df5fcf4218b45a805341eb0aee4ac74c135fd832ac430e058835e46e54f07682e35999fe4c6c760421e25765753bc34a254a562ac49e3f4f1\nresult = valid\nsalt = ce869619607f71fde53ef55e18d01d20002e3f91a8b7584190fc6667b8d2\nsize = 64\n\n# tcId = 85\nikm = 17632581c34ab743992cd99318889b32f92812bd37f41636b5fbbf2b12190c6f\ninfo = \nokm = ddaa59f32235b0b32e5dac17b2b4420cc2a8c3e8ae48d1aaeea8853c2d0a371ed831a94606c6bcf6b08a\nresult = valid\nsalt = 55e39431c83648867ac98eb7ecbbc8b41c5a5e774646b926a9b49c511915b0de1241f8666da198f6ba4bf7e9025e434b6d7ef794e7a563309303055fe3bbe769\nsize = 42\n\n# tcId = 86\nikm = 045b4d451bc30c39afe0932f6cd62e65b4b2ae2cf1160f19e8ba1323f7ca146c\ninfo = 613e353162c6c1b12fb1477fbc54074ff7848a14\nokm = 60cdac1a10892b6937b1d648e3339c572e885861444082a0ed013aaa76d763c27c93ed89487ee85e2bd3\nresult = valid\nsalt = b73682dda0fad41095070b2b26f2d7d98ac62202d918258ca9aca0f794ef5e4d23b3fc43c8cabf9fcb37ad9a62337fbce967fe24054c3bf891195858e53997f4\nsize = 42\n\n# tcId = 87\n# maximal output size\nikm = 78da0447b11a85e315938f70a45e", + "bfd15cf5bca89b6832e8f490aa09e044c602\ninfo = d69a09972d98ea41\nokm = 1d4f394d4a3ea4f0f91aaf7bb73d6728338988d03004a34086d8fa0b1c3fb83ece7a19b9912a3c68367fe9979aeefb2c3faac683bebb50d6ce8c9187012e361e8ede6cf6ec44bb4d2c1c30dd704a2e6145662a8c700a02fad9bc5158b69bf0371a0b1adc094152138785d0c1ac26ab42e58fd0e86818273c967154c4cfdc1af4d7b9fc788ef0477e271a75002baa9e5b54ca66f81885fbabc6ac03a2308eaa146b76a8c52aa6cb97032e5ece2d6df99ae25cdef3f4d4358704279842cd24dba9c24bb0c396fdab4bb9022365783dd00df293174d66a43ebfe0a562b5d896e31fa59fac550cfbeecbc0af54e6e97854d8fc2bc278bccef70296aa8688bd7488aa0b0a8aa72e3eaaf10f279247fb6929c6f4654f741afe058059bd2eca5a7aa6beb4132afc8e4458f97df107f125c2a9d8c34f62ddbf154a62ae7425e3176ca1232f1f3fc3f763e76282bea8cdaea3c32ebf9047723599b56e0d2ec033c27b5c2577adc9ee979bd88da83d20f8298d3cf99c883f84368d98d8ef3a5dc3366ec420388c6c0144665fd2b091739fabf4a3dea16bd54b45d56cc18ffe9a2c64751ebeec97ca6f5905f01871f6d14561925151bcdafa32a29860f4386c77ac28dbe4dc3d67b008f63bb5a213c3a48f2adc7a024d7988ab26b79b965c85f013806d9c725264974319a54b4d9501ef08baeb606f8f17cc08d60dba42925342c6a77886f95450309ea695a7c7b7af98c797cab067ae7aa0e2ac1e140f841d99af4d9b5f797ccc40ace067d2b86aeb2d4a7bb852e664049d184349d6dd8a54f3fc168fde7d7602977b72acdb218cf2c8adee00902c0fe00712ad10de12735fc006fce75899c446ac151c270b5309f103120caa91b799cd1b7ec368821e4f427c62e983f349ae15ef7972a8d35a347154ac942133bf09cf5f92b8c4bf330e85d95df574589e1e38cf0edab7f091f6b1c3794ec722e9e70fe6fc780525c0b4b0c2135ff0256c2d1d30011494c7e90fa2e92c379f7a74e3b3c8a0b458f41bd5210ea2baadaa9ce5b843f833de3f6775b4f30291cfa8bb7ab2809fa0cca97b01706ca3d9c23f83955c6f47c39b5f38a15a7be91d70d3acbd3045ef92d5404b762edf5b8d3ca4a8e59ae48d779d2d5ae29e3944c7019df498cb7ea7bdaf4cbcc87b45af7b706980a45baec6e25ba4c3dd934eb480545dbb090d0670b8ea353327acfce9aefaeb8f3e17b846c64630a3b4a840ab694bdff734859cff62c55973c4012fb3a697983bc8eb2290a043f314de54a95cccd5c95d807687cf9179155335d16ce0b5cca52c09b951826137188512b30119449f8d4ace4054aa8743dd0f21b9ea404c6e3ef14e49cc36dcec48bbe2c06a053917f4bebb9ab8aff363c36c49076c171c08a18a7a195bfd2c92fb19c7f87d4113fa2fb715e4a7889e13f5ff59e51b0edef284c1bf4f1df33995e975c0bdcba13d3ca7dd3225eaef9718bd841a744e192eef374f65f9e9319b8c2d2f7cc99660b8a4acf77cfbb02c88162a5d7325b474aaa5dd32a2a39aeed0ac68b860e6a11ddc73e2f6a4ff914d40939d80026de5bb50f90620a6f11bbaf8f2656e4197b4ace49a85efdcf856b2c37b602f8ac71b645bb67bbebd4b20d97c00fc3eb92fc9dcd573db6b4d09c6a463b1d25879cb04678f116ac9b152c05a92e5d8246e6b7478e1836abe0e5ec0f17ec454ac8a9f9f400ffd44778df77bcd8db1653912fd2e4018330f249d1fb979bea28a81d1234cb6df3266d8597d5cb9400d602b855c6b7ec7e12f9a63568142b33d4a8c87ff895d37ac99950d75f577cda26a69ac7eec67a7ac6d9f1d419e8beb58388a09fde9c5d0d0fa2bb578815bfc826eaea6a10417700b250fa52796a4a40b2de511621e4bec6b9ae0161241911938a1c719686bf3f442ba341d8dca6cf82e16a72b4e08fb27bc8c1d5b584b65f92bdfb838bc5f0ab6eb38abd7c3ef13ec87a8dc24d69b451c5ee0793624352eb72a9bd9d895650e8c907cddd49c4056f03493bfb7dae63d8045437eea1543386cb89cd7c6875c227fa5c1ff4f20f18e69bd795ecc5256e76e7fb366195c909ee43445184660414befab7f67048bb76f218ef07ecc35c73a23bab782650ebe6c355eb28a29225d79cbcc61ef4b3edaf804b852d292ede13fed0f89be119c7a594a0192aae64c499483b11a9d702f0bb415e486b139d1e07830be92a44da79bb0e4489a74a97f07577a23737b9a03c31320588586437b9a8208c02436fb061adbae958cda6f6222e235a16a3c28a870a58e29698f7996f27d40b5d0d8f3db1dea3ac806c10568ca0588e0a4ec5234ed9ea7ceffaa74a2b8c0486208f3ce28fd9bebd472a66bb4dd1fdcbc0ba9ee630a48c45b31656a50233ae2acf03741a07cf8d18eec13a8127edbe65a6a7a8d0341734a5eaf283afc80710339442b390c48e00b441c9804c3bcbdce2cdf6b94a82bce257fa33be9f38faf7de0f9c20f2bf38ed0621befc05b2fa0828e190bbb2768aeedfc4193fb377b24b8f34e531340c54706aec1cd0fee016f5051c018a0dfa66cd0e0e0f105a9e365deecd3b2a0b658edf88eace65b314131b1ba0de9cdb0586a8c204a4c0878aa444be0c5590628ba53814ea443dec0c08a5bbffa6e4af13918f9ccf235c9036c1bd5590f3e7def42b0f25843c41c9bb32bd716b0deddb3ff7b9bb6e582a9b632614521dd795d26c78754bda13a9d5f15f1eea1fd1cc402fb8da8ab6fb8aff96985afe2ff822f7403e3fd049da82efc34d8dfcbbe3921df8288a5dcfc7f9f3ec990f81a87ef5947a839725d09282c2b1d131a9513c40c8fd3912a51b94475ecc31c221290bd3676c1b925e2fda729843f0c539a1248ff7637d8ff8f03754a7523622fd2cd13e5297e72a97d0299712e428b82524fe99d056df6568dff5e450cf4620a587c711b4f1a016c431241f040e33c4b0e0d96858fbde39a602cecbf7ff263e00c1448b6f3c0c9e9c55b2b035703169236df421d6ff67048908a89e38801a370a92306a235e9b5ad9464d07440ac86803568a36f6d63a9d89fee42b493c18c2e11ce4a9ac57863e95cc98940120db6ed0fecd4800e30f1182e59f9edbd90cf1f2f178b479fbe446ef328155ca11b943b9f5e7c4d1950efc6b77a9f51c5eb0cd559c47102180abde687a17530db2db357c4621b601dc22942cf53a48bc7ff44edc07ce7835d015cb180dd5b4ce7d97fee5ed9e329d6e62828030771b055e9444851b8404dfa806d97ba5f216f317ed922c4e8641c9f767674629ce9a02b98ef0398a5c145338d908156ad9649dbad711e90e4579ea3c728dc69d3d4a60b172f7a94e1b3032705ef0799bc1461ebb34dff6895615d69252b042375a6dbf9dd996feb0edcf6694a39e2300e91a00dc04074a24c59c623c9bda0fde4eb60272d846a9955bf442ab507381376b9714fa55274e1de7e0dab70db44bf27b588d23c4b582dee00c38238eef5e72acf1c644c6cae739503e86c9b36ea74d6c55097dcd71e454621a80e0770657f93405341eb3e48299791b531574773fd6b2cf5faf58e9d6caeeb511c823516ffa92d6d6f7f1726dc7ff014bfaa9421b503b271851cf6baf3d788f363223a586a18ff351682494d65298d204bfe931c23deff4474e223fb735c09f871212b889e0567451db780bcd0f8e226eb01d3ec2237fc761779c8f13aed5fad572a3ca4eb99979aa03e66fc531b71ce1375bd68799b4d92239c93dc341c4e6b60d5dee9168b22ca5de1964275203d982b5e09310ee56a0121a7e0ff92b3ef6495536ec320668a4e88212f5d611335c04457b85d7b0c8718f2665e9bee6fcdeebabb94da8dd377ac8b4ad003b663e163056d7ce2766b97182a7c92354228bb8f06ae9c5d227026b3fc1d55254e1943b2decf5388de21a1fc5758cf74f69d6debb155ee7da7af647ab1c3e6b8a0f5192dfe5be41e94c3cdffaba02663fe53731dd920f37f19ca16c661e58295654e1692cc4cac9bd9d9dce3297c7e04677fec0f90661fc803999f3234d76ed10bfbe4928b28c34acd10e5a1972842b1b6ce216c53789a185957b866e5e2f51f4dac6b16dacaaa865e9ac5eab3e5436e2719d2d12d0c371cf11a35583cbf063875a7c7aca744d713e5295e5edb39b13dc06298d75b7b3a807074a1e8f4abe691f9d1233e619cba4edd9808a271765bb60fc5d674fe3077eda7e97670fb3d68d68621e892a261b28d50b26e519c3c6c77295be3d54f9e797c2a946c97b5dd67c289d028df73a40a3b6d656c812eb2e2209def77ed68625cc8aebad4e4b1641600554619a9864cf6b07200231e016b6e01ddaba40e7047dc312beaa6f891982ee7c777bf224a763f76d7e7baa6807d84d495d661082beb60f9cdd2b8f6a9f1d04ba184df5c45cf5447a388bbd5a6894ae7f759afa04de88032529d37c1ec9396d0080e24ebf4828d57e5b347df8df9f80327ba121e40b444cf7a4245da5d6a37b01ae795d6bb8fef9f947e2842a4967ebbb3919b95922e2896a93f747f9ae6cbcb179910c0a327d656388e47f2241624859a6a87b53a15b4dc4f5e5d19c4af7c7ab2b60c1e71859c276a0c5a09656fcbffbcb5f98fa1401bb257277ab1de03b378a928d308fe5f33a0f21629522b09c0e0bf6c74780a30859c1cf7b045a3a1c70febf69f595da99187b932bba493918bc48ec407638bee8afca71a746d0be340c9562bd420124ba3938e06be7a774405670ca98b677942340774417d957eb3550925bb7eae805306f08de8a5b45c6e5985c437680b8973ab62f69a675cf24a1b833d6c4fca694674c3ac9d2891ac737963c3d2ae5fc8fca9a6348c0791f5f4d322dba8ab53a91c0607c9983373422560f124f5f1eb53a9207335304c35844f503a273fa4f780bf0cb4954397c20899f015bbf27fdc0f5c6e6393a285cc8f279de96875a965dc699f6ef8e23972dc838065db3b5772743dab3a4e91634e1e38f8a0de18ab19368a8902fc9a73f2c902cd3364f0afec7937cd65da2f58037b840ae4cc33bcf8bba1a471f123104df56ce5f5ec0cf7ac924bac63ad700345236c1fa4f34778c36d71c98d7232bfa5dc1c705a1d624bdb641bb83ef61ab4976bdb9e5af58c358ce77b4d4c6cbaa32057a3ed45990c844f61a7a77ddaf65203c9de21c9d7ec7770049cc524fe869d7954d7e7557c895cda88f8dc93f15cbb1f97601383be61eddc083ead645cad67bf404376faeafb6d9776137b50397cb4269700606e149f3f7d031e8e17f4d4e5d905cd782d7d435174930266f90b12d04b67997300b26ba41bd2053acaca853e50bdadb790188c53abb181458361fe5201c46796b4f2c8f698ba9358e75ed64ec8688bec6fdc6158a711c6f299c8e12d78e0cdea6d758f7c07ad8006800f147669c8232419d751a61a8b2c7921b1e9950180867547ab4caa43d45b14486bd4c62e5ff88c066553411638bb1d0788bd1aaf2b62f1865c550eeab9a6c7ce57f55d44edc65fd459f4ecb938466eef07e90768715bfa3f2286721b37c915bbf60184cdb8f725c30fa93d902f3e2225468988678a3424786724f73ac1a276c69deb82387d4397ef27a1c3c0d929d1b0d7a9e652048df5caa0b3039c7ca37e2433c0be76d654b2ad438f5a87058173697e606350e8a3b827efdfbaebd502aec905fd3eaa29e1d0269a49349e8685d290a202cc62adc0bbc18002bcb5ed26ae33dc20c5984edd81f0680", + "6e56034f945992329b7e7807455fb876f7f9e3d7c517c181737cbbbc3400f138ac6fb4dfe13a60931eba46e0e76b72d9ef85da6c0f92f2d69dc466a51aa689c6238578b3f668dad4ccac5634e75905bd6bd69daae8a84eb7b13dc658dc548cb7ff0f07b485ca21f3658730eb70367cf05e96030935f153b08ae8d98616e22d0cb43c7cec4e19f8d7f64e396b2aa352a1722f057d15385e1bfa776477547201d4db4053ddb12feb93d3330b1e7f625b328b8fa64c9554d271fb807f5d63485c8e6a00a05fcdcfc9b0da916832519a10b6e416c7e44d23790b4240279af77d11230c84ba50266f20884c60efd9c5cc5510a31c6f5ea8d632dd74862a9e46be6ee0f486aed2a81fccc89caeb4ab41e9cef80f967f136fb4596227d4c604fb5ae4c96ed04f5c1852d185c22e39b4463ae680dc1395926118fcf832b1cdf9dd55d15eaaafa173c6756dd0906e8d6dd28be914f3b1d4dd1fe774426a887ee2214f0b65ad22c5c3d9c175a29df3cc61e26a6dac2b2cfef7b024557f41db4d165416c82ad91aa9c1091371260672837792a41ae09f6b9523404a8339805766b1a88bfbdd017d98d4e32c14aa879540428a9ff83d9ef2fbd937854d30efad4fd9e9887ec915eae17ea64c34886673db98fcefc5ee0e76cefb5873c20770ed356ff6aa16d80bcd5aa8cee864065445dc816da4ee681802a57fdc700429f98de59964a08e4ee2f68e8386c69fac44ec4e5bbf468148df2b400184108f7b98d5e5496f4aef27bbc215008d3582d53d465fd90a119de8532bdac1278adb4f88825bbf9a8e31002e3235488a0703ce1255e7eb12b3daaa306868b86afd2cec3cb31cad2d2751e5ee717c434779d7bef518ab58df9a75be6da58ed8126b5752fcda3903fc46e148dd92ab430e0b61f388d4a5b8243a06fb644846a94e6ad46aeec1c9e828b6ee24b87a98f8d61f59760510323224fdabbbacb8905c536c3713af2d5ac777e545385794536eff117e6730812019a5daa162dfba23addf74e030d91f2b25f7a5f5e1bca09bcfe49df5d52b309aa35fc561f2bb9d67c60cf3dc390e3580d2ef54c57ac839e6e863efef6bfef0f1be28313a4d291fd2cc56bfbce122f358d4e665d987aae72f1c1c2115e4ec730d8e88e39ec4c1744e4f3feaa797c01cca1a86e54eed9db979e67389a39f8c898d2a8ac612487510d03cf1f5fd14744112569d1f13f5928a34bef62b3049e2fba45e7a0800908f9726a1a834c6f145cde1675497031308a34ceff22372ea8ff5c6751ccbe403d00999358124017b56b08f78b7b41bd15aa1a43f99999f449b58717d6a5d048db0a996947e058e899d5b403f7ba43a62bf56bd7f3e7be9b7754d025e90a1b5dfb3ba9875ebce74f9310b5268e85ed5355ed0cc26b70517caf30a46c5bc24d9a3d91aeb5e03e7990f518d01db4de8b29734ddaeee0832c136a6132016f1e7848f413102f6956195d9ac54bd0b488aaf149ea39057cdc528d0f93c1fe487b722fe13bbb95ae40af1fab137e5728a1b5398666ee454c2c7d4244391462b4075a7bc04557ac9479ce09ddf72e8ee1a61ec07a228b3af281ba22699400bcb1acd0ee6aaa2da722e32d8f1aac209ae443610b27b4f3919cb1dc81827817b652b00a892633d5d148957e0414dd913e94e97ec43fac40ab262bee878df6fefaec5defc09468e42ed56f643b9cb48ba220cbf5168ef2428f9d0373d68a4b13aa47fb3e077f3390ae3f49749526a7448c3704d0928a393b3fde5ed62a4f8f65fd572b1acb1b500f2fcc3099dd86e74a88400002618db0b2bc32ed701d10552213f0217aa4b6983f71a8f5575d5d42184186241ae4afd8d0acc6c1ee88462c4ae32fc9dfacf6b4130c91cb5fbc7caa0f39484fbd88fe78b950e33011fdf8643104825e7da91082f7e420c141b8b6f10fabb520a680a2ffc561aeed402a8d59053440090549de3cca2e1d5bbf816d6f1b58680d43736e77a0fc078bb6f531b7758a4cfb3aaab66f0c61aaff50e75e08af403b03e9d0056fe04a63a758eb3c2950a1072d949879d7decc2fd99b3ac736d22fd9fdd9f800b75a3395727129d49a26d8afb9c477550d3daf519ad35e580b05d8c05c5c5aadbdbdd51c971b7452abe98d1187778f15a427993a2bcc6ffe626aaa944948bd0f406557231d8ab67b02b59c18ce4f8b52d2e124f15ed1408ae07025d4ea841a2688f1c33fed563331a30200c0d82da82312f395bc5f54469df34a79fdc9e363c61bccf27b07a06dc7fc459b977192be6806a8f45db5400a09fb2d1c7010f252337927944bf6cec0b7b0d62685c2ab01eb858d69b8344b2830ffb18f9c456bc1f3431b8c4f29064b4d08287d09969ea77941b6c696ed83fb2874fd33725229c9ff87b0c2081d7e708563b4831e4b097d41442ddd27da9fd67f33564f9c8958205e15cd48e4062124b4d6349e99d350d37eb56bf89f8328e60c97365eda057333ae1bafe6cbd00c76477e5e2aa2b51c4d2e6f9623fbeae1b2ebab8442fd16a44c3d632627173518d5c8cdbe5126754ad62827eef5e43770a7c4796da0dfdce390fd138ebddb73ea1b02e8771804747eea0015622e8f06340b4ae9ebe6ebdcaf831dd5278319ff6a1c4d59a0f27b23207d07cb4da58914d560a6ebc20dd094ccb3335cf11df6f6a9134c3689c342af7ebf46d7dbec8aadf8c37afd56cd1e877903efd2ee903ccff9d067491e0dfde2c0041223be2ee7df6dbb51019438b8689d211ef99e903db742c1def4316f4dc071e759758b64e3ce8377c0b960356e7ba035b4f487903f8c16f028e09d8960a94ba843c99377b42b227843432d260d51ef605a13195a1f55f3bb1e256283418d56ed6a1c3898beb44702f092838d7cba347e9af538f5b6b65b52ca562a215cdf68d34ebf60561c02e5086fd78c11d35557f9019632c40faffd64b78d87f411bada077946cfce6e3af66d239e61ba08252bcf158ed296a156021a52425892f48784ff7a6b55fcc5aa987959a3f6800f56b756bbddc3dcf7fbdd79675b55cfc22d89f30f3925a1e9ac04dcbdfa9e50adaae9a36cd8a4af1ce804d7f638fa6c673fd041cc7b3e0e818f11d9c2c6c3acc14141e629fbe977d1c9f904f6f83a1b4ba9fc21ec88e335c82618f5d5d9b8d84b5f31b1d60b69e1f59a6c4d593ae3dc1992af56fddd3fc3e4c58f79f428a958e9c9c930c5add1988792109ee4a0f3def25c1af5d5f66efcff7ce987f9470d44215001ea6900796a1aabc77393a74af29797c6c3467c6c75b0ec1eca2bdca923bdf3c3d40a91128ef56099fa85ff3caeb5b4200bac84e4d57afdb60944cab37b85d15ad4afc72554215bf3d4a09733ec3abbd7bed484ac7061c77027cfadb3751d5edd53f01f01fe8f429da41e8066b747020e34a6630ae8a9407ee988208fb0712ba33b44741d85d6f16991f77e98a4fea68486b3c6fdf40cf241848c641644a80d518d397aae8f7cac1cf9aa56c17d617392d876b5927551eb6d08b448a0863eb898b1e39a41bd1cc6a29c45651599adb94680117822bbcd072eb076b787828bf5c642ec02da763cda9f98274624c94eb09d2675d5d82c41a3ae7ef8c14a57ed24b5c9e79d7c2e2ddcce6a9b11b4a5f74e2c6f7a6edd5951c5d3198b394dab1ed7eff28830e0806648fc0edfbdae636c3e72ac8868e7bbd8c87ff955e75f469817ef238968670bc0c17e79dfcff93486da5e5ef3628126762e2807a2eee6fcb9242036d45f03a7635c7aff2ea61b0750d49f74edb6f8360e74a2d357875f4ffa4567a6c367a9117c29145be97aa27312d80b2086108ed8a66874b6e9a5065ce8c7bea9ee0a7c9974d6824e64a7eacd613d63fd9da09bd3e5f7365edc9841b2168defaba5bbece5a939604ab6a5a89d1fa77446e66d72d40bdf2e25856454077d2468e10be476472ffece14e23e0e907a231ff8e6d6616ff2ec96e022a5a20590ef4ec5d137830efc7fb2b0ffffe22692f06213711a4a09b3c0786811aa043e19020809e9926649eec038f1bc5606519edb9746ec4313fdcc0f30423abbe480f96517e20ad8a9cd613193aa0c503a038a728cf6b01acebb541b65ffec1803251601a33428a263e43d17824eddb9ceb60468c8039fc84a5843df7286c092b02eb297ad191bc47d36c0a9137aa5c281c7499dd982e6a56d60f6145d354e8987916b106776ac806035c3c2d7be3ca84313cd1c4a4ed89682c8e25506a554971fcabb5aeb611300de598a1318873b8a0a8c151bf2660f5359a9926b5c6f67a5a24f8af02a5452aa972a6929511018605fafa6164371e610f6af5b876560b63065db9851671774ae1ad295c0c47c5239d5e6cc30bb1911c92f2382d7b671a1ff036d90333195342a2301eb91a44e731cc4ddcf307cbcdaf650fdfca07a246cdab1dedd50c88a144f7de41aeb9c59919b3aae243cc45beaa337614dda2caf41987d33dec8c392f46793e59a5a0a092d861e0ae54d2bab312b641b9de25ca31facb5f36014ece208025609050d8ee10f95978bb7c045ed8c4b35129af17d8be198b0b3eaf1e4b170f1fa23cb9a59173570135e3e3fb2be9013e16355c5cbf13272293df09e0faf973635139caa589fa52ef4320af22a583deb18c09176fec41cbe017a3cb0f53c622f40b84a87f2913e7fa4f18785798d7103efad3c92cea6af4452d553ea34e43b2b615e06a53b956567db95d0bb61a8a863ea3391ff79a94d50d6e35a89b46cd0e84e10ffe0735f1b3370f763be3c713b64fd23bf28794fe3bc62457d2cb500dcdda415a0c2ea75f1ca1b46b6fe09af8b30ba4a77810579a6545a15bd09f9be023f618c4d2bbf4e5de575e4ee0c3da911494f80dd4276e8e9e6f490bfa0851cd8444ca1c913824d07dc80bd2e7c46a388432604aa2f9488593f2aabe40d8082ede5cb4e7f68737881854175b4843b8f449e29762057918dc317607958e7c5359af8b8969b008654523059931a7d204b39275f7400b46ff5a4b6d21efffaf57f3f0f9c46adbf856d624b78f5f349ea7c87ff3a2a3f6026cf3fc57631e718f0a4a27426585cd0d03951042b92e558f368868bab6e901f136fbbc2a458895eb295486c5b88f68b5c9d507e0a50e5065331bd4cd03890c6a250a42d0178110a0ba409c8144d4271cdf90ace71c4674c898db3aeb10fb7e59587f8b595dc9a914d6a162c796584aac91598dc84d11ac079d41184a16fac6a531f78d94895579b605987894bfd7ebd3fe57f3fa2dec05e4e25d717ecc145c40514b9383a431229658e5f44b4efeb498ad8e5b7a62ca4203a64a05dec0ca701a402bc6f0b57d94f570aea2991215f73674e3d155e15baa75342fa17f7d5d34a05218ccdb4fdc019c4b00ed0476fff874800731686a322ad76571856582743675cd81204134f11663ec1fdc9344bd649ae6f01e4b043fdd74d58c22961a2653d0da7161ea02ddc60028590e3178d573c40e08d8f0814535aeac049cdb06f71f5b537da672c23ea0b28d6327e52feb83acb22be0ecd53d6cc1de914d6b137fea68cd1347967c39de99250377eaf7e909aee9447dd6116aeca50d465feb8f9db3c571e12b9160e2cbe3398d6f065a2e2ab16e322370740d60debae1196f6b27d129b9d0e702eb409afa4b2fa494363cbc3df3ef0ff6dad08a1486d1f3688f8e0c1a9651f4fc79b66b2d6525f13d2faa8398941504f330f34ea7ce4a1f745b905d83169083a806051dfd96aecc95e50e629abaf87f7e6785d86c3c392917b3f4afe087c0082e4cca0f257bdc", + "d6883d1a0cb917c1037c32d4aec1f6827b4051c6f47d052885ded4e7b23d75c4d6489b5196d2c9a32d436a12e51ad94dc88367391df06b4c8e7272ddbbe269673d9b422e87866818bd1d09cc15a79fc8b45654f12e6b431b3c1ace46b8e5ae1b5a6dc02707cfbb2fba27b5bb6bd0d646ec4ae43b3c84ddd605d4ecdc8f6214abadc9844511a3d7449e3b02cabbc2bccdd79760d79b26ba687986c3118d3fa9dfcefad6806e3cb489170b45c65fc0f84f813175247c98731db96154f263add9f1704f142a38461a8105b6d6b6a79adee56b33b4fe7e275d475ee51956c4ef9f1202f1ae479caedf465a730c2edd23406241ca4859f0acab9ff24a561cd4c4fe263fca7d146958f4e9cb2b50aaf33c71fb955b34894e417c41cb0de82b146e4c212b72835ebb8f98c6248e019a908babb06477b595c526694a484d2f1632fc46c27923e9f316a6d732bb8fde0598df6d2c1df4c4872dde9153e85c3211eaec6ac94730c0be7228406a1f9b6a79947f479c31ff2f34fa532cb5df00a9a1fa054252bc764fe2d9c010788fc4be141e574d858c566ab627e92139b4f1b6f6069b520657f7d3cab1693ed693a8f43a037965e608dac3ba4a9608fc8e79fca1d63e2f7a8c3b0307443aca861a83a698318a140c2a1b92fb351314685dfc2bf04e8745b90c4d719d76b57f7bb91c815a70667220601a66b7bf70f7bd8bfba5bb3f9a4e9966269439440d2bd0cc7348bd4aba6383de31058149321e6feacfa6451fe9703f2858c6ffff96ff5b33a5c2a70a229fbd8ac2cd00717305425194b67312b0a339acb39d9184aa43a2fd4e09b0764c6bc05d36fd9e1c258f37a65d5d5b09b5ddab30860ba4e76516678d806208297dca349ba430c0cb51d00d68fb027b587e8a8cc11ddd1d2667a798a4ce01b0106695d57d9b38bea5df494964ea0efcc73418c91976fda9406e33195fcbc097e80dffa1f8deeaa208fe29d666e1b7648960036273c219d188f0bdf7966a424a79c5bb5314564d284b7858acd85952c12e6397a2b978bfd4d20b251933506a532a95cc16c6c8c691432d8758f32a10447c76218a144ddbfff8d4f179ed4a1c6bfaf304a1ddbc92049be8cc16ac1c68f47b0b0aa5cbdb4601f88897770fc4097eb56e44f3ab30b13ce1d7fcb707369a88c73a770702da11107109f993c68747b9d692fd3daa64d9978a3b5c9ffc2f70d8553318ec6605b3722c3e630503d307772caeb839df8bf8a7e707d394501a74e3e1a9d299ea8f2f7c63e9ad92180aaccb52f465ca803ad9c48de555df5b5492a8bf54494c4f9b2951bea4a65a309630d1f4f040ade7cd75d54b6fec534d64b2b0ebf96308aaac9745bd4c9b83773ade37191261b7f5a44604f88e48f4db9e250f24944d72ecfd03355f7e13c959bd726bc614767d49f539660f7133f226981f8fb7165581f14ffa1bc824eedba1a394458887ca1af9edb5af85b2cd86c8e93bf03b401f324a54e2a742882183a649ed2b0243fe0b5f234f4e4d7328e69e7cd4912932220185eb19f333599a9c8befd893dc637cc7a72bc41fe437147d3958049dc768d71c64cc1b87c2fcd7d34ef4ed683bbb366cf061511ae01ccf7ce82014fab14e52abf5782a09bb32e82a330f1453576c21a2ce9aedf6b36116ad4447eee277a0821a22859987783b944a3961bdcbf540d4318e0c5e59558fa88ec3b3ae38fa85303fad6ebefbdc2e16668043e7cfc35da5eafc1717316e13389cc208ce2621b153d65a91488ee18463220c43ff79e8b2eea821c4b91124ab7c513e864e923a75157403599302bca85b72dddfd256c09698c2eae11f478fd7c381bdd7d54bb2eb3eba44d13aa408f80b1f17a74c724268ccad52af73ad281abe9b0703ca4108b1062d0b465525e5a498c13d56736c8250e42206c0efceacbd2a1553d693376896f28b182fec2242969b9d908c12aa3feae637aed62e8195385a5cc38a4154c24e7ae759ef1a4e7cb129bb481870fefbb6138892f293b3afcaf4b5bc260e06798defa433355bd99b347287530fb9a7a33f67f3fbe66ab84079fb9b0efff62161007ce8d0f63f34a494b8dff2abc25c30120cbb12a3abbfb33ac452f0f7899c4fd13bc378fe27eeac867e2523f136b4bafe2e7523b7f73b21aa66f82e352682100d3b461d88f5c90d179c6e5258cc736eefbfe1dda2180c6420554454b546c89ca17fe5672a9cf7e457e1cca331cf4a5b2d503bb0a62904e9166ff769c5b364670339162e386a586091401fb74c580152cf3ce3e58f49585f837289f59128ff7230a294e1a56a7771cec419e3d92ae5420dc4af12336486e13346494a402a455ddd4f6544d81772d0380229c0573dc26d952f23ec66c2438d8e0c9cca660a89e1d0cb8e5114b3b9040630853fcddcc041cd3435c709c81d919295b4f0656dbfe40bb86b2540a8ab93cae5d405abc1dc56b79fc8011e9d34745b28b09dd515df5b75b70e6e01b3a013556ac0c2984652087cf11682a4e14b40d390fdc8f57e5f0e09cd8a808e5c91c45039c1109aec551ce4972fe26f976d5f37f284db1027a85c0f2c511b57fe2cbc0d1e6a4a2eaf9106b21a5b88412b34bea0ed585063e152e0c4f321a81bec40e25f74aecb43cfeaa13823a24438f0340315a7f3030d1b29ff56f3142e9801f62294097d96a61923e747f6f1d3487eb3e2ca0735fd277f6ae054abb3ec1480d58dcb543cf188f238741aadd7b453cd18ddca0d8ba0a587384ccaf69c412839703103ec0325c432253f2e1299f73fdb563218ecf4763ac029ff6a35195bde2a4fa3823842b92afdd59ee341e971337a54a6de6303cd0e09c83be0c3b3b2e71cd1e268259167844ac45d08ff9ec8c9bfd3a17990d8502bc01d192370c9851346715217ba3f9c2b39f6577226db8423ce09fb4f75040327a1034a8256515be64543e15cb204674bc68fe93252e1f1174eb705c0322b3f7295a582a435acba690e30f8ac2815748429bd3b29ccb5575741f9143d026fe0d20abff2eb2ee53473bb2fc869fcfb61f346e5b05e0aaae432fb7bcfd4382ec234cf554604f9548b0a492e4d91c1b6e9d6ccf1e11863b668c0fd25c00fe0b3a90b3195b33c6847f64241ab5bb4bb6c10805f3c2d67fc012cdf420a3c66231e6815b8140d40f840ff55ad6945bb8e4e99397092413655bc385e7005f59a9a74ce6d66eced18eede5b8d83fae6ca98f22b1fcfe5000775f05dee523868c904570af548e8af065713612ac9995536663dea46cdf61133e88eacf9a523ae875a8cd581d93438a629f572b3735d77afba0851130bbca2173cae9d9e84bb979e8acb114d9bc78eb8fc14e6f4560db8a72cccd5a07bb2a1907f4dd294becc0dde4cea8f2a1f138b8d8cf01707fb5500c7353cdd95494b6c8b751322ea6679aced2608c4c691b3c3d6663ffdf96a13b556b7c5fc017858d92ba01e80391ef1b2b23b827eeebe11505f320972f5866f80b3326da4190f17aed2689455d24df9341cb52f81b43f6cdfce78cf2f8a8e6bfdb5c5f667a4d45b9905c800c1f17f06ab3cf3047754463f219db75b03be4d04ae7a7042391387180fde9b5a3ffec8bf8e2801ed8338a6d4d1301b636ad7e221757fedf43f9f3519b6c7743367ea4643f91572042ed2111c38eda14ade56f47929e8723069ef9392fd60b743c09cd6c0467fa4a5367c05eaac20c6e9a84c2367dafe91db2dfdd953a57a9e80814ac8b2bde5193b12214abf9a69a12ce2f43e5bb14ef6ed5678b34bd05b8eac810c202a2b7f3d762a8e79fa98a618a2be5063496f83066dc8b37afc310c07cdfab9a39fec3b16f890b01481a320ed3b09605f27d5b08f16b046149a65c899939c7d8edf912b900e0559b39e23b87740306026d6fe9c2da6066596663c71a5dc98ad91bf59fb8926eb44a373c57073635d6c5377c396f7ff80b22eaa7f40dade5919a8fcec035cf759c4d1c82d43575760e6d94855f971ca0a3c05b206b1aa98fc7740f3fd54dc4902055989a88ffa63c1e3b32f227fed8ec1fb1fce789bf35976024d98296f766404f41cc08fbb3e1147ec31433f653e0c1a7e821c00dd7431217c775c60a90f3232be9b2a132647185a4b6f12d68bf9b25d8bab80cb0e21b4955abd25b7e946e404102a0a293152b95147c695242851f418a56feac219f66a2b0dc7731da57ac9fbf2103e31979d90b7b6be00e187f7b64c9c82de398fb8c3e263fb181df45f43b54481a0b600e640a7d2d35f9901999f22f18a696fbc5d6563ad45d1119ad66daf5c6efefe5a606d3f2a2b2c16b5b2ee902e47eab1e6aad6ef04b542c5ffd95c21964891e4685369855fe0dac84132fb84170fdbb4d82f19e21b2123a003c0348c381da312a9e4a9933fe71c749245705368bcee1a48caf7edb4e605167c39d42c13f7b58f56ac44a6716dd23da791726e17d271ead5e4a85aaef83e6ad5148f6a8d50da31b5dfda5a00a8d52311d9d7558721b86f8fbbf468c488717f288aed39458de6a1f80f5c09cfe40c74d514627d45a68d47fab2f88adc8acfdbab074b72f87d9f46eaae139464748284f70d31d47c0b482b8c94a136a9c8d3e8f35302a05602af8f75983f065b270b816001c1735bca7fefdd37b0deeb8cdaa9c44ade6cd6f2d56284e0c79b764b569b59caacdb7f78f39409fcacd6e8e6dccf67f145f06ebc698096cd5eeff7f402d7a36597c7bd4989e3c77514c6d386435041f7ef808954486f9524f78434c38dff0604800cfd627ef84d5afca98d81b8e1e7b8b0b2af0c2b2382d70116dda6ce1e3a5f395cfceca43741c61a0b88c0eded9550eb2798d2446efef4f60b054c71c7606c219ff7113fa64d42117103a7cc4d7fe96b042e37a1887edfacc0ae1fd70e8fad65bfbe8041ff3a699836628365b811dfc5650cddebe40a44835f6c2738ef6054637106d6c4ee7f69a6f72633c9f35552ebe231644f19adb68c017daa8a5bce18003b34b3e3fa0852843fb08fb7877282fc98cff7c1879e249d83b55ddb236f7dac8bd7627606f524a44df1df61229bd6fc660e3718f13d0bd93d5ebaf50805e514583a28e8a9c66615ba722fd6187b8616476139147b433392bb73ec495f8ce55444d6c5589e19758ad9a88bc34b0a7e9897c7353088e71c5fbec7ab7daa645d9fe6d38b286ce2fa9d9a0cc6af5e749d1019a4986d83b9a6f54c41803c45938783134e54b0dbf6a78623aec3b6923aec68e3a52a809971807b5b65396635037ecad640d6dad60fa109e44395ac570f73f1002c625e0ccc577bdc1a50f2f3a5af4d97f4236198c862758e7792f81fca669213e4c26d9729599aac3de53f5bbd37966d5f2a9c9f97b61951bac115d6161c786a9daa31ff4093c938e230174b1372fd9eba242216f57970faf5c9e06a3732aae658e5bbd2398f0384c90e7ef3a6dd05fe70c91a8a49debdeaa1838d1eabfdeb70a5160ac5d84df14c9c760667502e94175e80d0a5104321cde94f08a226ccb30a26fc6fa15264b59450aeebe36f1a9dc1321157abf5cd5c2d2018f8b7737ec25eeaf2221f6d8b6ea98ee84d5e393627a7c576a276f0ea6b724aa46dc0b4f85003877b801e3c99f2d08773ac32819d368c36fcec2b57ab71e4e6ea0e189b68429e4f872efeb3917c6b92dd6a4b46d743f225919e9f4f86925f7222c7ec1ac061466adc62f5b462538aafaa75d6ef7ed3e022d442c4dbeeb95ae86bc5654f54c77c91d71c7c309601ef3b9679c50507b024da8fc892e1825cb77d131df10e4b53ff5d1fc1897c7fe3", + "b8069b185e8ca97f1772204e5a84ceadc892f8d3dcd2e3314d0d52894beea8ce9a536a88231f4d4386da6cae92841b9b90f78efa335ebca2464dd7017346fb53240150b5effbe0ef6b2d22398879ad07f981a2f079f28e29b73e67b58fa3163bb9411a5be962fdcf419ed7f5e67edb9c325aa6f1440d04a5111dc190e085e7c0f68365ab086f83ea68b4607f7219a4719e5c8288a0bc08889bfbe0dfc469cd9a90d440826ffa49296cd8b157a14f4383d47470bc139e2d38e0656b56f9958b5e08ac1802bffc142f9fed8df02e04ff976ead2817af9cc173aa9328fd73416fd105cd6d5742f509f7ea8864e13d4030555142c5507f1c2c74aa273cb9823e12c54d28842756504b966e2c157a46b20f57154ed063db1d2c31e55642edeaf53c3d078c255f168e5905689c30e94c8ef657e3990e3d32f09d41fbf6c4a360e3cf7957cff3888343f1b24d277d4dd8e70a3defe4cb5247b9f6c24f7469bf5d9270e9a1edd5e764ccd8b5e08927c066e08a792166b7907ef572dc9218600b18ca4c0de84870580871201db507af257d516c40c01902ac4be0a8190fbef31e71cf812dd3fd0d01cc6f4e5abec3bd68cefc1c97aef46e84923c08997c6ad565edbb70b0cd65856fb253cb35f9e10b485713cfcd5dd870ed6ea4d6490ef08323757b067abe2a1ddeb4e4e5b2471eba838682e0c611894bbfc1fbc831d2e6969798016462299a89f2a60860a5ed5fdc5854b2fb6c5b7f7e1b0efd261f70624c290c9207e903900faad06a7690b924edfda733a6e1b9541b556ff4c5585c3530349060eaa8576cc0e56ee3687fd087e26d933e4d0c5cbbd887302c3622a1a747096dedb5fc9cbc86b084df79d205cdfe29bb6e53b8f34d67111dd8218af04142332ddecb12e66d59307633b51d33e465b00b8126d2708d6caf45aa045a800b2860da7ed2b0af0f949a6fb164a9d5c837de7ccb4931c45b6b0c857c52f9030a377a75e5b27623e5d63badbd3d4d15dd9c36dd518f54a7f9f3271686fe5e606e608aacc9114e3ec0f6cc90ac163dd2ffde0fe8f2012477bc3a7a90b9df4233648634ec312a46994d4399ee5b5446c47c4d51658d88d2584bf7fedb329557ff80fcf1a94b03515561539b20e90e4da5c0626b51efeba29496fbc3091b70a73d9fbdb8739606dc5ee6d564d0f54d7febceb590be1e0f2b78fa7b21d5e181c6ba899c40d234e438bccfe37ba779cd8e1194a496e459c9e76fb9d8494a1182623ee747a3349b75bcd90dfc760f6fc72c174b5809789301ccfe6685c69968d1400ea9ecaa2441b8d772ecbbc8b8bbf0cde4887a9729298cbeeb2f9f5c8a823b0634818f78d0d4a79b2252fb5aeaa6c2b89b8818c18a21930e5b740cd842d049e02690fe0c10ff9b962068454d63f4a1bf7f6c5b7bec88db6810bfebfa38071ced9253e21f4be3790c5d96c6e99347b02d1fc6786aa7266bdc6f5c0e39891e772773ff348bf7e54bf21870692d07f2ba6558a20012d80351a9fe55ebbaeee155ffd13f59bab4917f75b1b8a0288340df5e06eee792497cded2f92016c00e44107b3eda12a007e84f9b81b09b21c22760e5d143c7acf0e057817149f07c055e049d96e0490f9b860bb80473a597fa2a842e0d20e7f2dce2eb2c5c68dab59d5205a5c9eeb3087b7cc798b02bd1bd84ac7d6973624fec2443fbbcd67cda5742651a441c0aaeaec96fb1186f66bc33f488c6f243ab16a07227e6796ab2124b62f6cb47255f2cab97c44dc94a090b366aeeee5efbf3846a47a886ff23b29dbec2a3df3b6295127d9b7fa6de46a69c7c195845e996a4384c07d1282dc7cd461fcf7eed91348d7481a4de5b3dae00f7326364c77f746e0271981779dc832edc3665628b504d657103f303443c653c1a1e898f99c794180bdfc2075787c0a6392e57b8afd6a517367cf614474ad2af4c221b448a23c0083daac98f16c9031504e778daf072db58eebf0485fd739e8431b88684f8cb3ca585577e8795415a16f19a11b5a60ae17bd244d12339bf1f5e9610cd19f1b020421c6b5cf6fd3442883cf10dd8ab6ccec576c81ee4cd404e89510b4035947a370442ef46a71ea93703505c240d8430c35d42078f45ff49b2fd382379643b36318efbcaef2d063e5f0306551454752b86adf5e406a9f190a0ac2fd3e8a17f1b02168e1a1a97b909e79c5e820376e6832bc3be73bace1dd05ec791590daf112a232a460a133e0d222d11d6faad404924c8591bd5900b34c829f6ab52fac5ff158b40089324d8e2ffdd53d0dd85b43995f7df351ec38825ea4deb1359e7fbfc8eff2135241fbfd484e1e832b3a680c8e228e5d5e5356818bf93d2b97bb68c6d6e528fcd6bc0fbc3ebb28ad842d94e750072d3a635e69969b778c8f14a97a2d28042a4071753fab49db785b5c41f7761ef49280a1a689642d6e47eb6e03cfcc18313729895c6bdc6bee62a970bcb247099c27c29733de0ed2de83674756ef4c84c41ffb7d47d67aeb8737ba082a33aea742601158d4843e55ee641a0fdc956a3bf2fba5f391b73036f1b4150f2908be5138cc0ee92953e2ef7de0455af425e8c5dcaac16b5e640892c56bf161ff1b94c16ff80bb0c3d6a876d072aeed92e4d4b1becfbee8b5c452d796b92ec452af4f8bc838e7b84dfdd80343983526d315622afdea80ab1ba296617556a993c9169f778c9d9e9256f4585e843fe550d1148d4d1a4891aa0fdff51a8f8914092a162f7959aa899fc3a0d105915bd88c05412fccff60504a0cafae00bb4880b6bd169316f9eb52835267f95c448cfd00dd1e409acc0cf2d7f5f6fdd1325f38adea4fd6f55af71c739ecdafe366dec44f3b544ae5c77c339e8fd5c7e06d28fa7207dd61518b3f327b35c6ab2b6e245fc4560770ddb18820826d95c743ffdce1b1a3af8a71c22beb5b5ef571ecab56373d182c20ccdcda91fc9a1b3bee03ee89cc38bf109cb0070c20d515f0b5339cc9060aabd23c2715f82a44bb10f2d956dd51f9c1d48dcd887b79723f9e7c61c87d61f1414d1ee1945f8defabccc0a4eddc2b5b02e2190d4510ec2b7ad404eeb28ad5a0c5eb838a35f39bf7fa91fc999445ccfa59391363ea6cd7ec389694eb4ecae97ca31524582f207dd120eecb0c6145885eee6bd39c8627c33916379a9d614c929adb64dd3fdb28c12b24d31b66919c4730cafd23fbd0266d471a2bd72b01cbe1649b56b4203c903b7c1e27fd00bdb8146632c2a5916ac678cae648192464082c747da12caf955033f4d942da3bd16690ced4653280abdcbe6ae6780a5512930d8adc6f7badde45a3426b78271bada4c28cbd4c5e5bb5ac958615ef129970ac13c376c7929d60ad1c629f8bab3c610649007dcfbfe6abfb66f4c4585082b1d9167a705cfc685f5fe5b17350e48b405e03a3d3d07f0ab0cedc961137e009b4ecdb9969f6ddbb92fc05bed560080d8450f7235b43ff79c9b460c29b2ffd0b67f4c437cbd8cc3badfe5a9feb3315c0aa6c9bfcb81c87547625038c804061e98346ff3633746cc571c3853ceff7a1842e0d2ddaeafd01f15758954ffac64ba46725acc1e30f6a5872fc090e47640cb4c804a59c55a5ed0316297a72f2bd4154f0452eeb785136f5d9befc4534b2ec2afd932c235c0c58f932aab15aa16f2cf7372633656c8623fab7291525e946550efe47eab479a1fc6c51132856ce09eecf36091892bb06f0f8ccc87f260c858873a4174ba1a64e1060a111efe1224c0b3d2c05e7d1282660b52e35c8f1a68a52cee6516e94b9746917d224c28f68ab4bb4a75a8b47ff343ea1056cf3116ac0660815bf0f6be1a6b98d713647d439c7e2511824026118a96b06c006d27454c3050f8bfbda087b3c7a8397383d652cc3b579fbeb309947773d6fbfdeda2940b7a0bbc2569b31dcac7dbfb8843b5a7bee26e63f734db3eb0773460d040238dbe757db9efb4ef872f781be75f357336b17bd84e2717db6fc23ab1a5c635a2dac389b3b6ff5bbad55711e807fcf207c80183f32efb5d47943bbccd96f5761c3861eb1ad3dc874cbfc5c25435c1a283c662cc13cd65ad6a807020dca215132f6a453ccf26ad4e8bf94dd0f6f8024c17729843d9f359609dd9b25e2a9b3c87622a751ace3ae47ac5675a3011c86d0ba3356ab8f9827bc726c956d11b4617010bdf90ddde46ab21423eb8ffe23da3cf551b23be964f9dbeb79297416ec4b3ac8e3dc7881aebed2a8c168e2c34316fcfff83602ff57cb99c18a71372d9f019fcea16abe0b6b7a27b02d99e2d67564986f122cae4205c0937bdd89a1de0cdb4fb71a4bcacc2a592b02be16e5d32ef4cddc4a52889c793dfe401135ca3baac0e1610f3bef47c89d411a53de275cb290b0715ed885bffe333a2df6bcd681ff0b47760306c0e379b07503e556a0f5313f7314c0d20f53cc41a75f07ef86720a42c88781ac6a968245fba509b43b67a42df8200981bcbee163c88d28b8dd1b70c61f0d558e0c5f827920d0b677e48915b99361dbb017e7df4cb5e2285557751b5dc2427cb7ff490b3f4566b3130b3c373fc877877149c8182c6e8c609eeb46bbc9e353d87cb8dd2fd59112b778881c30a87ee32618501767587e3bf64fbc7b8d801738bc9fb703fb8adeaa7699d4b227a588a4820dd4d07ecbead8910578c190465c14d7a1383b6ff1910017c3cf624b7a02dab9b2713084f45a7bac3d75012c3ea47cb39defc2009ea9fd083dd8b521e7df4c903bd39207ed5fa56c5dc594483e1531190bac65f348baa2159249546cebcf65155cc70b76013883af3df8ed1d8ae43da4cb26eab8d7e13a9ccbc1a8da5cd1026ef1bb5804169bcb25d6724775309414c7fd55d2fa219998a69a911a7e77e447fb12e3a2efea3265c728a0b14139436b50455669838f83463adb4ff0876285c5ce221ff704682f68949b2cce4749a6d442c6fe3a1fcf84e6714a764e19c383174b20f054c7f9488474ad2f8e572c566c1a33457f3ad24347e9f2517769c0a0842e3299b4b693492d5ac595654ced83e3b478676ea56dfc6a0430f356b6a5de1b473d5f9a6aaee5e4d31d1933340f42e09f245ac543fb2e2331f2c30847af524456563c0d9bc4190ab02ff510fcbcf5d8efb0f668587ef0023b0f4bdb193c4c73f7dbf1c7d662bb8e98fafb96bd9015c2b16b8fec91f764add9a57a5a5b25b4c9a836f95043b5fda20dff16e139c35922ce381d246f430036c79b32904979ed54ec4e08fc3fb006a62f90464b7fbbc18624e377710ba748782fc2ab80bb5133311d98a9d234601337b680073800c4408f44040629a3a0d2c6610a28367dd7ab59e43270ff10c3d29d945b01798d01169b13c061b4b60978df83702d7061bfefa1378b2ad3dda42a60179a5e3f080a3e1b8e36d9a689b1f41e039e39c500934d260bc1a51e0f6a87d5b65f65d2bc0bee3cb85adeffff9b0ae52a1bb80e1328a738964d91764fe1416a199b41603aa97fc63489238c6cd17c0d70a16c70118321cd1d3cd2536e40b782b40dc3c6f02d994a9a7270dad180345a48050119d96707c31159e12430a79b15330315c707e2d6843fef43e4454b1e033dd54ba498fe3dab1614aee2e290d971d4cf9d2043102231edeb6b703b4af5a23dc1dfd3f796c4916041aea90dff64d5c9cc9f6181ecd0843d6cc3d1767ee1d660929b953f8b4a51c9f10e90e1fb7dc1130877c46dc26b897e7c2b31cb868e38f9358d7997fc52335f530e41e33c\nresult = valid\nsalt = a1f3edc92da6733ed0c662ac5b9564525810e6", + "4d87a2b317749f9eb4068f4df93b5e9bf1f5f2033b8e4cde8782738fb46c37aa1023399f29562033cb35b65ea2\nsize = 16320\n\n# tcId = 88\n# invalid output size\nikm = 38ec0b50e79a870ca225d1e78fdfb74b7fbde0891a16ed1b6e7ce8889d441fdd\ninfo = 9a6c71fc1588b2d2\nokm = \nresult = invalid\nsalt = 78865524949fc5a008997d85b1ce5d33054ea061d6ff5d7bf74c9d36b3502f0b6fc163101376b241024ee063e82d5826ff5395124a18504256544f922b7c1761\nsize = 16321\nflags = SizeTooLarge\n\n# tcId = 89\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 084332b8a0ab8635227a3b9ee0737072f021c21fbf0b087940939f34f685c0a0\nresult = valid\nsalt = \nsize = 32\nflags = EmptySalt\n\n# tcId = 90\n# output collision for different salts\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = 084332b8a0ab8635227a3b9ee0737072f021c21fbf0b087940939f34f685c0a0\nresult = valid\nsalt = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 91\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = d41d1d366b10f6dd7e886e5030ccd01ed14ed918407c84f12f8b9a2ed3a5841c\nresult = valid\nsalt = 0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff\nsize = 32\n\n# tcId = 92\n# a salt longer than the block size of the hash is equivalent to the hash of the\n# salt\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = dbbe9ebd37e2545d08d715013b50f31fd1f7089ebc2866191e49e774c537b17d\nresult = valid\nsalt = 1a57a60677a3c97fea6d4d6eabe0201452130c58eef435bb9cbc21eb65f1cf2c879639d10b9a580b1eda822aa5f406b939cea2ff9be10c56f0856709abf33a08\nsize = 32\n\n# tcId = 93\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed66\nsize = 32\n\n# tcId = 94\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000\nsize = 32\n\n# tcId = 95\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000\nsize = 32\n\n# tcId = 96\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 97\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 98\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n# tcId = 99\n# a salt shorter than the block size is padded with zeros.\nikm = 2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d\ninfo = 1301b63168af5451377717f7f5ed52de36a197ff\nokm = f05091c6083c24742adbe5fbdf10a941783517d568e96dcc8cb55db90756d8c2\nresult = valid\nsalt = cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nsize = 32\n\n[keySize = 512]\n\n# tcId = 100\nikm = a75ce5b072311acdf290ceb4c6fd25eb6c52ecabc8ed1ffc698d7556d1132180e2888bbe6a798d891e0c8c5e0f79cabf3d27df56d472be152aae155b52d9a9f9\ninfo = 69d2aa66efec2cca\nokm = 8b025c9925f105898fe8f75da1839b683beb73e349dd08b79a3d80a7b29e7d9c1eebb5cf4c902371b31376e44d49ea39725ac912d5055c8638ce0771a8edc999\nresult = valid\nsalt = 8df18f4f797c4be88ca6b2935441a1100db080759c042a6d2c37d2e6fea9fd6fb066805c467b7557c78d078ae44dcb886e5e3d5f74a96bf6394aad36847ed8b7\nsize = 64\n\n# tcId = 101\nikm = 5be4b9756eff71ebe87fdb5933e5d88d51bcaf384cc289c16ec642d67f2e9236c04106e01ebe7956bac010e4107b6b788ed8b3916a39b59c7c01161cbc2671a7\ninfo = e496bea60a731eb7\nokm = 02487460b110121d3df3746d7860332b6d67d746f96ff8e7bcb2d62481b653dcf67903b25aabaf9031b370959105c9136536b52dab810cf041862e73d3352f77747814aee2d74cfa29840dbfbca242f38b95ea26d4a540edbdab3fbeced1c767d35a73b4c2ff180eee75b4ada9739b7bd8c75c3bb03589ab\nresult = valid\nsalt = 336a871d315b7d2ae0a0d24febebf0702d9f039ca97146cc0aa2341728824e83553e6eb166e954dac33e4d6a2437309d0980e26d1c7665ddc79b2e9ba3354262\nsize = 120\n\n# tcId = 102\nikm = 45102dd5f609c2f9352b91d8b492d83b5ab34976372b4ac814bf82cf0dc4f3875cd31dfd5897022458fc7bb8e5d2930a620909b7385ba4e48c8395b50d7d07fb\ninfo = cf6db9210ef18e3d\nokm = 146e59745a9d65fa6c98308b6f162566045d2f459a09eeb7ef7cf15e076fe8093fa202d15b12063e55d4b5ab4e80d58140b2664d944e33d8b2a72a3ac307ca51c23976adb1ff9ff04fd0fcbd21edea49890c12698b0600b3b70a61dd228542d47e69797122f0734c08d53f51afeccea785af1028b35e6ee911fa0d98f76e2aedc517f35d719c199b6a73aa867ad31253fc1c1d612ecc913b70c2f6b983fd50eccd8a20172052c8726ac6ecad97b8bc8770ba5fd59eec423160828fd8b1936a5ac5bbccfb6398cf46dc3e19df40d315091f2ae3df875334030418143e7b791cd1f732935482fdd585fba2f495973436138c7fc106058f9538b92f055ea3bbfec1\nresult = valid\nsalt = 76d1494d3631034558ac7108a69b79f7e38a45aa50783af41bf8c19531fdb30782e7689a50a4eb1391415ab2e6085b1e246ce0e6c35a5e02910c072a241cd8a0\nsize = 256\n\n", }; -static const size_t kLen79 = 29254; +static const size_t kLen112 = 30701; -static const char *kData79[] = { - "# Imported from Wycheproof's rsa_pss_2048_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.4.12\n\n[e = 10001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 4f01e0c12b08625ecac89a69231906edf826380f37c959a96690d046316d68ffce9d5c471694fcebfc6b45534864689256e4fc81c78e583f675d0c94b449647451e81beff01a11a516d5e5ce3f1a910437cb8a3a5096b19fb15f4524a35b23d89cdba12cf5b71aac1047b28c562df7c5542c34ce23a182cf7e0e231934b17294799d44877a1d68ef1b8f073619b7618e6b7c22db20030d98cf591ffc3d4da5f58613ecd5ecfc3b40a1d02f40891ca43695cd4c088b05a8054c89c595a47e274816f35384226f74459ee63e25a1bfc03c360490552ec38343f8ace502f065303b00bc0ec320711b211fde92e57feb9013c3609342495ec0d7cabdec21e54acc38\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 0658c68fe0895646056d9bca422a64fe48813b4e14f0c8c4122e56d345b6813dc6286ffde014617e351c7af0a0d2c0f285def79cb734e1e055a25fa6fddc1c07da17b4b235c637413b1849c24311fa72331f4c0458c364a4916de8619b884d7e37288fad12926fc091f4851686a04fd0a504dbce3db370663a6ea6128fea86c2ca94c63e0d34d7f2c845b5d71d9a5e544451f524a451acb85c49bba7864e0a34a48613a819caf3dfd0d510c940f1df21c3373915be1f3509a557fa4d5a4e9f273e85467961133e2482c0907386454228fb0246638616fc31bbb6fa7c2361b8035994eec69a923f4c0bb0ba8696dfe8b1400c2398d7b343fdf498b1116c8de602\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 401eb03cdb47ca88033e3030f6bdecbac8f5c8fc1dd6a13d23d379ed9a2b309891d13d74fea9d21d159b9e6d8f37efa2489962e24555f56dd434ff1d31ce4f9f5abd3f22cbea8b691d6a11e44efb83e2bca155e6a164325e0fde2a8865afd5c9f51161a9d615f62af7ec2e31b3e5ab649c164490d31d88cfae35b84aea7925690f929a144b6d2f48e8fb894a52deecd1b9a6496990c4ecf1588699a42cacd10c53af350514e4291ea9a058e77f101e32c1c0cefa61d945f7bc931f8bd19e7ba3169358a60e5a8b0123bc3199b9fdcafe8e519c41ba675491a27b85e44ef2d77277c10fe107293c8290186913bc9a99b640d8da041b64f31eab1d35920985f4a5\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 599724adc1bae31e84eb6e1399cd90cd67f48b432c63719b600402384aaea9b21ee864cdcf259029180877c847a223912b0647f066a59a65df6c2d3a6675b1450f0b05185cee486bfac56cfded182babcefe60568a6954f026cb2f59002a2f755e9bce49793f280d89822c9bd3a06a7ad2209c3d6cab7c1f74c8bbf4bf374e7ae8a539fccb83a78cff96a4f538adeba0869659d0e9647d98f96cb55d9cb7e58440c4c9d85b8e9dc602e909e29e45f2b82ded44f40e9ceb1292da20063967e3a116f4aeb202863cea523f215b8ec7fc4f6a22cd8652ed661e33803f3fa1be966fa8754cc7b0fa894cee0f045efba14c4f4a1d7cb837cea69e30522526b8a5878f\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 4e68a8375e086990bde05fc4bbde2d368f8d96a5bbcf16d9239fcdd45942d764fc2317d90f4f62ec80059490240be8f32dfc32414a427c7e34be25ed0dcaee6927881e797db97a0341fdde459b9cc915d0a348e15dcbfe1b0780472f52a887faffc988a9ceb677e1cf5638e44a9d6f2532417ed0bde5d67f5dc9229ef1f3cfd9cb46c695738fd006cc62d02f5df76996270223060f72505ccfbdf4e88d961e2e7763705480335148ecdd23d1202c26a963860dc769a43e44c72285092ba7f24d81844e612bf03f9c2ddd4e5960622f71672f4e42b8a8f36c6847a05f70400207471c575d6a960fac1de809118efb52903ca37f12d40f6de74decb9a5b8a415d4\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 8bdd6db90323f3bf26a36a4ab5b92180c96881bd32b66317c4b48c2ba1421f8434000c06adde4264c6ea2d5346468c6d5e97cb13d3cb932e523ac57b59c814fa0397ca6dcc9bec4be1147d77abcd318a6aba1af46ede2f5640da06511a006fd1bd5fb8e04be22789956adc47bbec7988be477150f9b24a07dff51530e8f0c14cfef7d25ca141f512939987b7eb0825633d41a48742bd7f56d4db9733d92ac0f36b4041f51332695f551ec91076da2301120c438eb9ec197cbe318d4571b6b79098d17eded0ca47747a143e34f882ad6e3f490f3a710ff7ec1bffce022027165d96281e593180c67f44aeda9ce6605e6b8e5eac1347695dab211a965bb3d3f928\n\n# tcId = 8\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 67d1d1c0a398148625317c3f5e44b738bdf461c27a59594b39ebb2aebef233c7809379e54411411b82d2e7ac88f989b58373d532c758baea121878ce9759441738d121881c1fa2d04421f02dd565b12770d844611ed1873a0b64d822709a6b78d6d3892b294404bce6711001d6c3a54546c76a1d17819674b0be904497a233b466fe4becc832dee740f9ab79e5b9f5db0b0f9aac0084ba05cebf42303b5ca2ad95e3d61b29ed6475545c02e93e7b0e118af92f5cddb1faeb2cbc23c9e69c120e29df7fe31991e887b3b29e77688c60e80be65cccf3d7861a7a14c39e6a6e5645568e2cc5e4a17b75db1dd415aadb45e112a9b582b2ff6e82a43d7a7347b7b56d\n\n# tcId = 9\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 842348f2b2cdd4c72cda7dbec0fb8b114e419cbfc1ee1b7ce5d70ec56a833c4ebc8c114dc3c92164b13f4692f236d6b88e5618b23af9fa979fe9b5d8eb228b1efd0da8e47b4c4042965c8b9f08eb9f6fdf7e472c88f532d4d851623b4bf99e021e82ef313c7d93179af810b70aaf929a395ece713d5fec3339e394210b56f1edf26dedfb04083bd24eb0d3ca117761f38319c3b97a9453993dafd3d2dd8c01cd63117f8fda46f52565e4d7de9f718f1f23254c4f9ee77ad1414af4d4dcf959a89bef438329516cc9b79149db058d206e6d7c0133e7c870335f0490b8c569d787443c4a84ff665dbc6f4353dec66f9c488a3f91071ce19553a7c156025f1f81b2\n\n# tcId = 10\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 77c9dd7786f0b5cbe76f20abf24361f8979d3a6c6c122e798eda906b0b9700cd2dd26e5286ddd39d07b7c24379cb40f8350354a36b0759bfade61d3d770702b58218c5dc64ddd0d5fce405a16fbc4de3a5fbe7737032605c06ac82e174619c3004d24bbf22bd1ab3e4d432b4ae36c23573cbad845c16a1842e5de1a3bfa2f12d3496a3114fda830dd6061cf538a4571fe088cc03dd7e8762fb08b84501843f5f0362a4fb097d6fe9b96970c0c505d2f6a59754c42684908627fa8c734ecd587c161de7b7bdd69924c0b4d06cb7db2a70dd9257876d1da1ed8cc00fa68279525c346b7256c916ccf1df9386ff9d1eb27f0a5d83a00a2738fa2dbfaa500baea789\n\n# tcId = 11\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 455221c385f769fedd123afa37a42b7477d6c3ed968ce44d4982c41ad29a3f59baeb2b566dbacc91b423fbaec371f3809c20cad6afcc2b8df782e472c954cdeffca49553f6eca58781894c67fed1d9326a53422f9642031b69ff45e6a826d18e4241b5214231f7d252d4c640386a17c2a1839ba9c5a34e94b2b8f30fb259fa752339f134e54375a9a4f3a5dbd5f3fb93c38b59fc33a77dbdea9b8fab7c209e6f403d188958b5fa5481bd22", - "5b266bee6761132104890c8c25f04583084eb01c266ccbca401617120c61a388cc683fdd5d195c8dcd48f4d1a9be80c07727f78a10cd26359c8dd1d87614f8acac1506c5bba79b30c0af745c872433f17e8a52a94e\n\n# tcId = 12\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 5d1f5b3ada8d4507a7447829f26764b9f794ccb4c287870b5c5aac649f9272fbbe22f064cb75e5b3813bf874c6977dc286ef1deddeee1a84a9302fbbc9c8f86ec45eed5469bb85eed8618efdaf29ea4bc0a9cd0c0be71e82bdab6f15a9f7a637f297e0b5ad4c7885bd27b89f4a52452f0176df3d266f9c13fc44d3fcc3e71e3cc5ede3fe2555ff2bf2b72a2198af709e29c2f6f5ce44997c02ea7aebc9a33d0c609ff0f586e753e585ee5052a0bf2f71247cf43ac244818c84347662338384d6c1a4c9b9ebc14f912db688e658d453bb2082c8def4c440a6b25e03ea4459c1c9bd5495e2ce9343439cbbf03affca63856cc50936d49cf2dcfc73679c9aa32e56\n\n# tcId = 13\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 14\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 57e8cc1dc00c07383d89a79b5c8e4f5bde2a2ba55a3c7201b3291c4d805b1b2eb36f8f326b542342da180abe508669bb6cc2dd54e327bc70c1e317ba93a0fd21e7fce22a0c597c7420d1d5602ac43d9348ba3eba561f250e301ab955b0dc33e4abde32946b9b3e86c8bf07a44646ca595960bb988fef04b2824967e9da8b0264f1da0659373935313a574b5380f0b54ce1bc0dde423bd3a54f6ae5fafa772a55c1c44eb6edffecf13e6e5e1edaf87a79e338577304141fbc44f0e9eeb286f553f879addd6e12e436fa3af51ad53a72f2679f0ed102d504ee08706fe111eaee49d880d1a0b91924b3b79968ed0f9bff446dac199ee89b158c074927d27b864498\n\n# tcId = 15\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 1591ae743c58ceb723a76f502e21ff6a65c24cabf5f527bab5a6f2a69f20c776fd2251e43ad22e09b1486ceb1935b2dc2ade95e233f296cc0e5a8af8109659be76b6bfdf37e14837fd6c34bfed1f19ec9d21f974b984fe4d4773896ebcc7fb862fd641cd0d77178485c70c2d68b4d9be1d863f6f254b77991fc9053f5d5415d1aa74ba9067e2e6607fb651638c9cc0430a40c9b691977b557a31d95a290a95b56ef2ec8e4313686a9c5ef48235912b210fdd2c50aafac28131104c795c42ae75810b0284b2d257e81ecac4240622ebc261ab8bceeeebe80f1cfa70f18d782aebb97d803ea3a895be541be6941df103eaaabd870848bfaf58cdaf6cecdd5a10bf\n\n# tcId = 16\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 6f2f650ac10d5aa2c16703f657233da8c035da67a6e9e950dfd0391399da3a86ca7837dd7cf23e864d9cfca1fe77dae45a01ba21d23dd918ca7bba094aae376100198f59834396ec942fcffdd7d6a44953f69bc60291b1eed5921a0434d8b8953beb9d1e1b15fdca7090fa5c646847c0b759e94f056911ad188d4b0cc399c8c345757d5022f1a38926de0cbda8648a7affd9f031262b1079a3681d58249186fec4f6e98bf151c9b680a46b88dada9b42cca365cf908ed0501cd21e02a5bc4c0675f23ece50987b703499eeb94b6c40b5cdf22299776fe30800f887a1dfff18cd8a7da8c2388060dcb78c925c54b4e620cd3fe7546accfb3bbae9de08ba886009\n\n# tcId = 17\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 37487b948dac95a1e57bf1ac40888b8e074cf9db9c9825e7b7267d3b105a8c67cb9b33c0e5fd641836798f41b8b1f024b13243da4fa5e527098337e5cac41e0523a28fb135ae060e7c1e4eb9556222bc43bf1659f65a2a2db108ac9b7c9942a5658fcbca5622c115e34ead883ea4ef03f7f62990f282fa791b04489053771329a482467cba8a13ad98f27ff7b61c24a452e085d432130b7259e59b2866e55320119b21e3c706f3596ec174517c43cdbe957e012b573961b1fa925373945ab3209a1007d197e1e9301dd0afa485acf6643ba0587a69f7c44bdf1e53c32f05a3b96db0c462509c292d7de09a6c78ebf1131453d37ab037176011296730f57cda97\n\n# tcId = 18\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 241a3a7569210a47b83125fb67039a68d9859b971a49af62bfd4bde01e3b955ab166bba5165657fbfa519573027ef1a0f40cf7533f941d64e09fcfcc35cdd564c1ee0823166dfc054ed93e01c5831c036920335d8b8daa32220dd5c0b6a071f08d19411c6418aaa9883375587b19f0720e79f184535d7ed8c5360e667ade541c1ddbf9c0629255d8d286eae8defd34f000a3be1fa7fea65a4cd4f64b11c641806fa57d67b4c6b7b49892f38dc5d13abdabfaa6cb91ed6022d4fb467cdb6046b13fcc8142a97bc34eddd045796f4e19b1885d04c51f53e5bc0c272678990aea50a124274cdf048ecdb7074ca86f36841a7ade80a8aec6a653a0292c82a1b5c678\n\n# tcId = 19\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 484d71be451d1f3667e01f3e7f1a80db9764f751ca87ffc6352953a773f6519e8a0f210d6d43b417670d9c0ce3c11a668cc83394a5e2d7bcd4ae98e50ed26c0ab66b41ad2e28fa703f2da04db0963875842d90a77899642dc297cf37a76fdb007a990c5b7af83e264be9323149fb680acb69a19e0c5aa949c2094e0a18abfa1b199b73363654638d86f9abe73a678ff0a41f6b702b70ea1aedb287add79b9a7f4a97535d0db46c05983072481dbe43fe6dfe33229ca1aec42e19afeb5bd35f1e44264c1fc6c18fddc95fadf1b1676f185e5b55f9a2bfe6b6d40289f240633513828a7b967748bbf0ccd1d3fb9f6240f31790a789d8c709c278ddbb0f706778b5\n\n# tcId = 20\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 3f27e0fafc57629ccc0432827187766a30537e821a2fcd5f1088100d4d8b6a6a9ce950f51102e3b55167d4b49e0b6a306e0fdf90837d0630859093e90a94fa564b7a4a82f4ccb772377e07a2b5a6873d98bf665c92df1ce7cbdb583cda83947b3c9c3df5b3807b470f23f8d08df9fba78e13d6b635f9f59d2d4baa34831dc6c3e5a29695645b1ed50f3a3389e9e119de765e6d7daaff0b454eadd10f445e402bf3cf4d14f4d16c2d9e4fb5571cea7929d53019d414d118e82d491bf3fb3bd7427abd6eb48a0ed277221c42840eaa1fd5e7ce658f7763099c1d59431e498cb58357a659aea8e181ec0fb5ad8a55d1c0f129500a25b85cbcc8733fa3dfa9ea30a4\n\n# tcId = 21\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 006e3f343b22fbf5cce816efbfe06636c1619632665591f9b1fd2bd0aaac9a0f776c501d7a232fd2edcc12ac63b3b56aa12ae87982c1997e5ac5fd50f6a5c350e6e84fc17d2149547babc4830f8c2eef1885e4bfb15c9b73322b693ea74eabf43e5050c477c0e75ecf75cfe487f41f4a2df4972a16e0580d57946d504fb073f23ea691086e5bc40e2b2e1dd653f2ab201ad609fd06983a5cebb98678c039150563f6c944bd6558b422de25b9720887d97ef63b34cdee0139391c48558941ba94bdc0c22e605dd9cae669406c3ddb361787ec6437c87a688b0c64f0290b1bc0ce17466592a48b83b27f0442bdb15ef753ad56eaabeb08bb3b7ace7f9620fea113\n\n# tcId = 22\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 838d0ad34f2393aec53682ed48f937a458a32216a74dcc4a1e591a538119c3b56cad78b1c4b722948373c51c04a50e46fb5f3034f43c5d260364617e6f03af7d75d66baf3dfa1ca94e75e77d304c63ea5015cdd7fb1e1cdfbd6b5ebef2b2addf697f14c97cf9b5cbb1bab7f612b3a428d32cefbb788bdb70729e53d5b8cd14f586aa2b9410bbae2d093bd11f491469479eb640847514d72269cddab484d882aaa9761839aca9851b3d409211de83df742674d6305cc3a71143fa5077bce9d3c8da1f6da0df5c271f048ba589e5c34a23ef12747299d9dc4299589364f2137ace59781e3f01011ae145a5e1af20c74516e0b56d729e49b3de310c197e7a760efa\n\n# tcId = 23\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 6b19a03c774e1c3c24ea889b552e99fe0068a6cda022d5ccb6d75a447cfa0b16b5b144208dd407e440230ffaad4f12a0746da108dab5d4f162bdc9b24dc68a2e9e077ef5702472c4ceaa89c29cac41b4782b92f6c87e014df2483580cadf2b455f823fe12c9c79a155ea32a9f1ed120fe0f13b10ab4792fd94b99e0aa6ffd27c04ef7088e3cb935436529650894fee6b5b78e0bb5aa59ee7bbb2fb46af784e2c33eb76a12cdd7d0087a081d82d3e466a381dd37d25d3b4a92756723cb1f1f49d0481d12baa21ff77c0291f902682226d99d77d36bfe58d1825988c97d9d00e15ab48c9919583fd60593fa93ab1ca8e7dabaa912f6535bbb05e82bbfaa8537b0e\n\n# tcId = 24\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 682673d7c98ae70039e9f259275c884da7c77136e06d47e8af72f82a09614a08ed125c6d3a80f701a61dc2ad967e9637662bf40b48543e5b620daf37e3088d2a54a8c5147ef99227cd5cfd0a478d1fd1ec62c495cb89046df756908621099913aa4142c3dba2a62de6a8899f0acc7932e33581d4102020423a99876777c59292d597428f50b846a39d709d38c3a842f9a9531f26dc2a11f518950eee92560fb6b6667a113237a3e6d7bdae48bafc90a76a6839b97e6301e546f5b136ff23d662593f74920dccb56d47fea557adca4b36820469425cdd4071ade7c5c14f365ba4e0da97cdd62cec66fdc724d3f309b6297c1c84091a74d656b4b030787df593b0\n\n# tcId = 25\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 1452cef4f4e0d46ca8caf3a628074f7ed0acafd0a16c4c4c423cd361cd61319d5e912b162bb2b7326e56e20d5f9814d6339e0cc44da9ba1be28e473880b6276a86b8cdfd91d2f5fa830024b842834bcf2d425c48b5a58464b7a3111f55ade", - "2d3b9cdb958392efd559f6b6136cd158e157faa4b7ee86a3457dcdbd877b82d53c23d6e71488e554574b78f0be72da8d4160aee680ce485f9fa544562a12a89328560a773ff25138decf4200e2558e3b5a364a4372cd1f64fb25887b8c2b3938aca10d8727535d0eb0b73af2b7ad70656f97c5c1a97d3e2c2d1cd2732c5fe8fdc5ba6f554bd5190a54742313a6175db2a77d36d24934dc056d66cc6bd83abac61e0\n\n# tcId = 26\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 2f5ab041e87b74c0ffa6f5b0a4c5ec8d0ee3d2357a0fd2face275dbc6b50a230f2108b4b37fa45d5bb1211fb26b96d315cec9391d198ad7713faf3c4fb60806cbe6378c7a08c2e75a67848ca98c80a02680650eda98ff0c818f1e7af9ff3a3236150699a4c900c394c2a00ea65b39fea873504898c6fced5e4520bf3d69a11debd3e66ad681b7d03bbca940fbc809f03f99079d0f24f31cdc76afab73ec0b4f5baff4437b0a304a8893cf593bcf47b2f63a401f1b456f1741b3b3641e3154e6f4bc035723fc3532ee22d4f65a3963c1b278c1a9a8ce7e04876e8c327a70463e3785b9a5aa5b4a50cb4e35d92085172a61cc5407af2752a59d06b58a242926328\n\n# tcId = 27\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 31ce7ca597f76ab95d47563f728ff93bf43d9864e5bd1229b824ae26b5a13c79f6f7957217b37e1af0537fea81616187ff08a0d5c98a92da8dba61bc5c14da3321fd1146d83c2cbd0ec0687d81f6d7349f5a0cab0840e22cbfa83f02a79d321ff88830d47d4842c0b032c27a181ac06a42cd0bfedaf75f2daa53f64eacb5986545bcf150b8d433e66b698f2553f9da259bec319d8c0cec05d9c320e7300463d41eb077028c1e0a7d6d87d4dddf54c5b78d6a15e4527e37110b9b9ad2f3b2dd0db591227d41cc9f26f2349581dd89e0ba639d0cf9f8c86fe819dbadc688522b58d7284caabf843e7143395255e9a0d710ffbef6ad13f6a9361e20d2f6f5a414f5\n\n# tcId = 28\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 5798785187910703680cb2109f492c3f0a91b4a8f11d3da775aba891eedec3d76fd30a939f5d7a2baf7290c573e886cec8ecec0b1598f2cd169d53b4abf8accc09709187f32a12c80fdb42ed98d9e98b0923828f0e38acc338234f7b7a0ee377644a655f48816ea4a5bff0f6d63c3945dc3aaf921e9404864594bc323c1f3ef42f9361ed6cb8fcff2994293e17865e2fad2d885277251fa24d7e7aacebc48d61c3b48047dd7c99826b3105d2f820cd62404cad5d758da461af67677e39e55086d8fa52ea0334bc3b77f95191ffacd28ead07a34e4672577c4c65b5bb9d5f9cab6e1f1242216291b69a0c98714452f01f37722ff26589734cf6020c5ac9196374\n\n# tcId = 29\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 3747c7c116cf30567e24fd4213c126ec84366a26eb304a65d144dd9b453054df4e5036c861b5807137934b1cef351411e40654bae5df6fbe3c42d763407f273d3dbe059fc6412a366775603e064b1561a58e70860edf954dbe666f8fe44f44f87df3b0e3f3e19c904966ada52f00806f975f256d4a855cee973e20f33c31f9f2b3792fcf326f075f86f275d8ef8df2dd0abac83d491d485fc167cd40f3802f66036df4fd64fc441ac8a25b405d5ef960127623c269ca836671a66a6bf2f39c0792dade17564d31863c7e0161ee0bb88522ac0c9054bebcedb603a2d18ddb0f64a91ca5a2f0086afd0d8c07cb0c1e7f24d12f866cdcde46d663c1d4dc7f7c6f62\n\n# tcId = 30\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 1377d4997c03d885e4b95f0350b1c8091a4d9beef9533dc6abd194a1439c383622b9dca5a49da247cd55c02186829f695ebb007ef0535c4757baad057d7bf76dcfe37cb9181b0c290db16d0abc51ff32d03b6a8e56ecd270dac231c81e50c7e0203d22b991291fec650b9904b2539a8a330172843bcff0cf46f06e32f55bec1f5a734e70ec8e4e8883e3c22eab7561d9c76737025352b5c9fa9c76eaacb909d23d0d7d7b6f1094ccec8ba94f149f81946faedb39ac557cc28817c9114a89a6f720d849f90cb23ad202ed4682036b3cb70b6fd5df0225900eaec7a21e39fd433d3200aed4bb4abc3b531393fa462fbc920c918f1938d33ca86e7ca3bbf1d34d74\n\n# tcId = 31\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 7d0f3cebb4372569e8f02df9f42222151cc31659df8d5078e9ee8e91030735d27e66da8c87039a27ac28588e8431d7ad1583534e8570318cbb2554c07016bfb02fe59af00576b7908286f4b27e36f768a118c3f3a1ceaeffee03a1b67270c3e489cce5c5f1171e0a8734553403047faff680dbcd70bf0fc1f0f4461bd4e68c6c0978da3490a137ddd8f62bd79c6a1daf70f7a9a3e90056ccd41c62f04915bf128f74dabcc47cba85b0fae47a04da32e17799ca150814d27793816e6a198390c35d1f35abf6816761a5ff0c28b1e60eeed244b1f24934174a1d2c469475f3eb8842eb9f5c6224386994aff9579f26ea7d73c668a113ef7dee8b2bda576135d452\n\n# tcId = 32\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 53f2db262358c21792eca635806ea1c1ad041d9334e977a25c1de0fc8233ec6f01737adcf1fb4dbedbd0078406ecad921e37c77d4585b5eb5ecc74c07ada1864a3c13acaba9372f852aef55ff2dc42c0aaef74bb656b8e0beccb7b9eae587fdf3b52eb678af1032e60ad12321c9c10c445448df523856ad262208a06b8817ee229df825f080a72d5e1a43f222215824a8ea6d455c80b2563c65be1eaa0455714ae576ae67e46d006934cf0c137b8c9900af9ed716391ce96ec43296e83a5a10390ed91f2e6753ed0254f0290ad899462b3b7af42c3c5f0893863a3b5e6052d3a6dee554746960a07fb6ecdf781e47b96023ba01cfde4c7214611a1be5735e2fd\n\n# tcId = 33\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 11e8938238a20f0e6947015987380dfd88a1661606bd05bbe4298f4746e81e3bbf34aeceba5360f1839ee0d7d7fe3e578cacc2d24b15eefe2064edb1fd04ff9a44c0a600ebf00f64fbb1ead4246e5ffbad0c22441ed073462f26e30b61a0a9142b4f993d1b26fa32e11382da33b9eb5855cef6736bec2f4f5bc6bf82fdf7da62346a4d9696c53e1cfa789667b721f32f7779daf7df85474096a9e9a7291afc76df3a66c7a0b997b41bfb71fedbdb4e65095efe1a81d35b66be55432e0a6e33905475b46a94e05bce7fee84645f500d8ebd7c0282c35f22774e7089262210f83ed485cd2b045acd5d62b4bb53dcbeb2588dc6535518189cb0220a7c9406e454d6\n\n# tcId = 34\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 39a8e947c919ecfad7ee28bb708c1f9e825036374ea0f610bf5531d89b813d506fd00bdc15850b250ac50fc556a676c894fb641dc650999eb6239b91e2c755126bbb9fef5783a5ab834e0ad91c60e720e80e096c091167a2a1dae838a16fe0ebaa8efb3573c89ac5d8e0584b5ec4e2168ef097f937ef0f0d2a2f964a8e6a810dd15b9c27b234d788af3c4f54dc97035657ff19f2835555dbafd02c4ed3c76654fa868babb71534bfe84674eeddbfc2b27a517f666bd03a27d8173bb92826a231cd9a241c171445b416934ebec5f7eea4fb41a61937d9a98f61b2fd1ca8e2be125e85cc8d16d553b114ab72395e86fea52f54edd853e9c5156557e38f621b975a\n\n# tcId = 35\n# leading bits of masked_bd not cleared\nmsg = 313233343030\nresult = invalid\nsig = 9c13d877ac2bd8c02c11e29ffcc0c1046dbc9870177e843c30b499c2bf7fd09daa43469caf2b8c3e955ded95e4d62209f7571bb45593f4cd8b0c7bc9470a8a693837248b5a7854dc8e37e752d949479272642994182061d7af80b0ac6f6e984874c8cdc6a5d7d17dc9e9de5ad12120cdb9f6c0d09c0e11b87b3423e37ba9437a4f76cc1e6124579e5f79832b89710de1968ce46e3e69fa185c0a924e8cb5f996ee5963f6826dd37714de264d75545e8509caf8735330cde7ed4228e5779471827b83757c466022117c45d598f5a4a7fed7be4e1b4d320f894879061a75d1a41efd8dcaf3c61733ed8ca2cc2f83714f8fdbc7a97cd6d6b97ea3d36ebd69890633\n\n# tcId = 36\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 00566c95524ad0995eda7d668fa08e8f75bea868b60972d6488cbe8939bbde68fa5206e671f35555f628fa707ce7ba0f468cfa8b9737e0ef64e0e23c901e4965ccaaeefa9b84363a3037cf5f9e044e295fe57f32c1125ca70c639b22732aa4c4b3e5562690bc1d7e7e74dd01c674212dcb63c58fa23333d45e1e4ccffa5d186443cc785c5ece3f2d7a8995e25de6a171cbc960c272c2899f6f87ceadb72eea1be085245669ac08993591e72bb9aff8bc29388b35c99f1ba7477af9d16754894a50d4caea4bc80e2aef2ced27f4a1c88be284bbb40cb8ae279b4e38a4cd8a51a92a279a799b3316c2938e1386043ae7ab1d8605cd310d7239c805a07a19c7b17d\n\n# tcId = 37\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 2b46a0aab5f573e32ffbcb411cd99d2f90aa9b1abbc600b0cda0d824f79020aab47a2494caea20fc93017e77b99eb73a1f8a550b611e2747ad29207772629c2ec40918c07adef1c90c99a15cddb9eac88955b4093a9e743d2420b4647e167bff8ddb07ce197db89d8a7d3f327058a41cc459ed4f6d5d23dfc015479d95e195da37f5b1fc318a3f74a0ac5fe2b9569c7fd99b8eb3ed3967a5eda1d246a3b225548f67ff860202033e7164d4b99dcf95f4232d18a7913f7258a33179133a6fb4ab5a4937b642eacb92908cf79495745abc583524cb0236fbfadd2c7e8b0a6597017912b4737fc01432625a508355869670bef25d32afe6753c38cfd96ec38953fb\n\n# tcId = 38\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 3b65975357ab2a410c2fae7f2f0381e6c40951260451f2eff05f0dc707abd013a996fc10658a6963f462877a808f61ad0362b9f640750b19debf3d59692134e357a49ed3693f50924b7c8a1824ccafcb4b93f7679dd892823cd479895d41fd1c40fb89fb1da19bc1fdc72eb038782f24ba3326428cfb166a475a9fd27f94d1a0ca6fa0e6a0d2c2883db3eeb2c0a59474da36211695fb811b9e8bc7f05ccb1f50d26d71a2dd209b0d269a736610c7dc1f7343a4736fa2b8c27827dfcad49bc4a86822cde1579dfbd646474f11e1a60f5e4ac2f2a3a5421a7baa9dea5d24be03cb6fee771dd808b67f886b37be5a300f6551d7e7636e9997b3255ceed5187ebcc0\n\n# tcId = 39\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 4516c8a39b8544d1c65d96472fea0b2753060330e", - "76e6f90f41ab349953d26ab1b95fd87484535b68c0afcf1542a9b966a9bf98b89a53bb28877b34d168a4ba8201215c55f9e86d30b7159093517682e6e956078947e54e3f3a779da032af7dc6bcab1c0b2a6693fe0eeb9de0d158bcc125293a6f10ccaf1499b6ad912ed5912537e3c3c5f18eb0ab8e701056d7b973b8b61af918858b87152b6c40671bf96735ab1a112972346e771e7cd9482f6f59d320b8798a271cf21779747f964281afa1303142eb3e1841772de825b4b5e68024dea014193c4e1c206bdc6121a8f2d41837be3d13833ed615d5b9df4ac4c86cd25344fe1022df0adabfe2d46f7d9f0d0\n\n# tcId = 40\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 41\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 42\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 43\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5\n\n# tcId = 44\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 000068caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 45\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d360000\n\n# tcId = 46\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c\n\n# tcId = 47\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n", +static const char *kData112[] = { + "# Imported from Wycheproof's hmac_sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA1\n# Generator version: 0.8rc21\n\n[keySize = 160]\n[tagSize = 160]\n\n# tcId = 1\n# empty message\nkey = 06c0dcdc16ff81dce92807fa2c82b44d28ac178a\nmsg = \nresult = valid\ntag = 7d91d1b4748077b28911b4509762b6df24365810\n\n# tcId = 2\n# short message\nkey = 4cd64efdb76df5a85dce3d347012cad06b0c3db4\nmsg = 6c\nresult = valid\ntag = 6d3d37af55c75d872d2da07b9b907ba22ad487d4\n\n# tcId = 3\n# short message\nkey = 52e1995025297fe7b793dc8e1e4f7d312fee2700\nmsg = 29df\nresult = valid\ntag = 82cb24bfa38fbdc91d1eea2d2dc1ce6e60ff881e\n\n# tcId = 4\n# short message\nkey = f3edfa003d89c4e2a6422e77a01b8adbd7ac26e4\nmsg = b015b7\nresult = valid\ntag = cb244ca6ad233947378436076fbfd20c9c8b842b\n\n# tcId = 5\n# short message\nkey = 4b07ed4e0c8ddaa1f76cf0010728679c8857e18b\nmsg = 3b2c1afe\nresult = valid\ntag = 924125532e6b625e7c5a8dcd1614e04334c067cd\n\n# tcId = 6\n# short message\nkey = 7f532c8ec83cb21dc98af7734c64f5fd9167ec30\nmsg = a33c6f9826\nresult = valid\ntag = 0d25bc40f60fbed36d8d7a1045ffa60d88484d56\n\n# tcId = 7\n# short message\nkey = 99e60c1fc0cb3e6ed836619775e37bf15b2cb93f\nmsg = b129bb88ceaa\nresult = valid\ntag = 6924d833a3e74b48f991e6c44173565fdf8c7470\n\n# tcId = 8\n# short message\nkey = 53845f10344b7f39eddbd3e44231fa802d7e1aca\nmsg = c6f5b1cee31033\nresult = valid\ntag = fd4b28273d3ee8cc24de2d8dad23ad4f355240c7\n\n# tcId = 9\n# short message\nkey = e3220700ce24a010cf623f60891e4f298ff26b11\nmsg = c97afb5063a9dd0d\nresult = valid\ntag = 383b103ce9054cb74a0431d16da99d8233e94fc2\n\n# tcId = 10\n# short message\nkey = 466c061ddcf3d9b285a2900f8725971b733f850f\nmsg = 89024ceda7de3c114e\nresult = valid\ntag = 1b81f1127635233383b6ea5ba8fd68eb5112ef0a\n\n# tcId = 11\n# short message\nkey = a81f9f51b041ff29b8d705bb408f854ccbd7e5ab\nmsg = 032d866a270762cbae24\nresult = valid\ntag = b72ba0c89d010215a8f280616acbd8640fe86cec\n\n# tcId = 12\n# short message\nkey = e60d0b14886fe6fa2c839329204d84d81026b7ab\nmsg = fda7f48c11101255e02c8d\nresult = valid\ntag = 2be7bb541cede978f541e2cac0ab6451060e3e83\n\n# tcId = 13\n# short message\nkey = c090ef122a29348740ccd571d98407764b2adaac\nmsg = d1fe3dfa80ade7087efabb52\nresult = valid\ntag = e6c1e0c3ebb7750d66a50b6abccfdef9c2599008\n\n# tcId = 14\n# short message\nkey = 564a56290e1aea0522f19088a88ab4dce4c7cdf2\nmsg = 4213bd3cdaebbb1ec1cc81866a\nresult = valid\ntag = 6d1d5808c085ad512487debb57fb93514b205075\n\n# tcId = 15\n# short message\nkey = f898459d272fd5e43b062156f44958d85d97ea3f\nmsg = 5e86b05522eb65a4fb7b932cecd5\nresult = valid\ntag = b778f421c2d1e2701e75da6bd1bc65379b80e879\n\n# tcId = 16\n# short message\nkey = 7d5cc53f464e759438ee90b47f2fe67aa83d6b52\nmsg = 9f38ea80122b40f742a00c2e83e085\nresult = valid\ntag = c80ce6d33fe868432c262766fd23bf431e313882\n\n# tcId = 17\nkey = 33e9140175519b2f1619b44848331763c756fad4\nmsg = 7de0fccc83b51c29e5eb1b658c102438\nresult = valid\ntag = 34de6b8f479523870b8f905684672617669b0607\n\n# tcId = 18\nkey = 0ef29e7c961da37afaea8182f28738d22c340232\nmsg = 165bb8e5c6f0a3ae40946dc807aee84645\nresult = valid\ntag = 78e6fa53ec213e9019d47ee7529d963a8a252942\n\n# tcId = 19\nkey = 203cfad921e605c80d7aa8b64d3bf18328b7a7a0\nmsg = d289c7cd10d996d5daca1410c37815b237f74929588c5ae4\nresult = valid\ntag = 27d96da41895bf53d150ac15e7c31853f56ae363\n\n# tcId = 20\nkey = 8eb7416efd0c73c86b91df0d58891fdb738f40df\nmsg = b415cb7cd384a1035d2bac1f7b96ae858dfd44c467030f304e817d11b9f9c606\nresult = valid\ntag = 24cb16323b7ec47e3add8f55cb9920aa7c1655de\n\n# tcId = 21\n# long message\nkey = 6fbb3c55e935e0a002c170a9122f1f7037bc0c59\nmsg = 36ac9a8cf0223ccf5d9048be9a65df4a1f40aaa857ce13d621f601bdee1fbe803171002d1fa634a1977dc23d9aa8fd\nresult = valid\ntag = e2fe8b343cef4b9754308408930526159537ecc8\n\n# tcId = 22\n# long message\nkey = e40f6206105f7800a1f190602bb6dde8057c3a87\nmsg = 10463b771fa586c5ed5c1f6488d793299db40fdd4f3e53334ae3ff8e09e5a879da06eb46d210ee0af0c8251e6c07aa1d\nresult = valid\ntag = b5dfce5998d2e321800e0e42762e62ec7a81448f\n\n# tcId = 23\n# long message\nkey = f04cc641ff67aba4ac2d17e6a042b6ccf86ae1d2\nmsg = 73c179acc26ffd0710b6cb3f73570702c9c059bf685614bb0ba7973ab875ff882d9aeecea4ef452c8893224472cfa5b61c\nresult = valid\ntag = b7d1e63fae54638082a9cb58c69fac9efcbee174\n\n# tcId = 24\n# long message\nkey = f61c1a878550d27aa459b3016b31731b89630d36\nmsg = 82b378d40ca04ad478a980d7b46e56c9967bc4e110a7add8bcbda411c12de384f41324e9df888d81702ff2b9e8752986ba081363eacc2e396f6b5fb01bf842358f0145d569d34fb3b4e24ee9dc9103284d743c52ea8661504b2db42f221b6d49b605fde34aa555e33ab0a140f61f3cda\nresult = valid\ntag = e688199489c9d3938f2e33d7cb3fc81bad4ffb8c\n\n# tcId = 25\n# long message\nkey = 8c29eb661fb633087f2452d057f98d553d2846f1\nmsg = 021b968c4ce337595154d90e44229980f0e2b64776f562ea25b24881637b44375bde65e5f9418bf163e2aacd37bd10319729ac596615a35cb632e0ffc316936a68acf4c7ae3ad36026124cee6d204f10432f08157cc32c5f4bcadaee67bd42bbeb826a9e9c8af9f554f7419fb265338d22bae2190bb644b32fe9bb6a2287aa\nresult = valid\ntag = f940df33b09965a3118c847c2ae1591690d0405f\n\n# tcId = 26\n# long message\nkey = 6316298f3aadadc664eda2cedf17669bc80d44ae\nmsg = bab807df54c009610a5c3f1e81605f6bf7d76b299d7ebdefa70f5e2e0b979011d191ead39c3bbe5dd2658347eb172950a1e03a01552bb38add33bac832b7177a77b08eb11cc1afe3ae84daffe4c4e88bc441e54e4dcbae3e0d5639f635228d811f0a043b13d5c91899c26bce2da2ddabd21b2ee668a21b454928915d6585408d\nresult = valid\ntag = 23b9a6d6a9c7cef6dce537722f4557b65dcdde99\n\n# tcId = 27\n# long message\nkey = f291696bf4f9655a00c9a2382bd1487342358714\nmsg = 32a650b5307d94b23139be64d470ef1492d57ca7af98205bf9bce8854ba8f5204880b2e9d58ddbe2e7bb21e6e0673f5e1a39f505909227475e41c1d59c73a933b13f4b07a75cb9f3279cc3bf61a6c09e3b9f755907491b9e745bfda58ad4e2304ff7525b41507a51a2fd664a2ee98cea00148a3663d77c47beb055bd45e7df48f6a0ce66c0a2d9a848761a4575d195d74eef5bb78c0993557a25ad7ca32e0a96b2518d9d8a180f357402a44217f1e36a9138c0909faffd0e9a907048584bb03a4e06fc69c463f39542dd2c7c81467d3728481bbf6bb60259604aa33a2d4c6195012fdc7aec99e2175aeb2d0c1f680964d63ee11418cd4d26e77ec131108417\nresult = valid\ntag = 3346bf23e52231a4aed773fd73e58d918580ede5\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12063deaea0788785f56113520\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 04e8ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e6641600cedd7e12063deaea0788785f56113520\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86e8ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64641600cedd7e12063deaea0788785f56113520\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e9ad50fc1035823661d979e2968968cecd03d9\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4651600cedd7e12063deaea0788785f56113520\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035823661d979e2968968cecd03d9\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e12063deaea0788785f56113520\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fd1035823661d979e2968968cecd03d9\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cfdd7e12063deaea0788785f56113520\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fe1035823661d979e2968968cecd03d9\n", + "\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600ccdd7e12063deaea0788785f56113520\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035023661d979e2968968cecd03d9\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e92063deaea0788785f56113520\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823761d979e2968968cecd03d9\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12073deaea0788785f56113520\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc103582b661d979e2968968cecd03d9\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12863deaea0788785f56113520\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823641d979e2968968cecd03d9\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12061deaea0788785f56113520\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d879e2968968cecd03d9\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063debea0788785f56113520\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e3968968cecd03d9\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0688785f56113520\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e0968968cecd03d9\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0588785f56113520\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d97962968968cecd03d9\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea8788785f56113520\n\n# tcId = 58\n# Flipped bit 152 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd03d8\n\n# tcId = 59\n# Flipped bit 152 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f56113521\n\n# tcId = 60\n# Flipped bit 153 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd03db\n\n# tcId = 61\n# Flipped bit 153 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f56113522\n\n# tcId = 62\n# Flipped bit 158 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd0399\n\n# tcId = 63\n# Flipped bit 158 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f56113560\n\n# tcId = 64\n# Flipped bit 159 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823661d979e2968968cecd0359\n\n# tcId = 65\n# Flipped bit 159 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063deaea0788785f561135a0\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823761d979e2968968cecd03d9\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12073deaea0788785f56113520\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035023661d979e2968968cecd03d9\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e92063deaea0788785f56113520\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035023661d979e29689e8cecd03d9\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e92063deaea078878df56113520\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = f91752af03efca7dc99e26861d6976973132fc26\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 1b9be9ff312281edf9c21515f87787a0a9eecadf\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86682dd07c90b502b6e159f9621609e84e4d8359\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64e496804e5dfe9286bd6a6a8708f8dfd691b5a0\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e9ac51fd1134833760d878e3978869cfcc02d8\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5651701cfdc7f13073cebeb0689795e57103421\n\n[keySize = 160]\n[tagSize = 80]\n\n# tcId = 82\n# empty message\nkey = 5ece0769742feabb6644469c9b264326b3deb126\nmsg = \nresult = valid\ntag = 344f8351f1d2773cae9e\n\n# tcId = 83\n# short message\nkey = 4ee9f9a93b2ddfe551281b397ccef844fc21af3a\nmsg = 2d\nresult = valid\ntag = 3aab1a2c9a2f2b8ac840\n\n# tcId = 84\n# short message\nkey = dfeebe9a5c181afc605ff63b22bf349ebdb6c7fb\nmsg = a5f3\nresult = valid\ntag = c3b7152230dacae4ef48\n\n# tcId = 85\n# short message\nkey = c5147ecd59b7d42315d5e3a55ec8b3a320c8d615\nmsg = 371777\nresult = valid\ntag = 0abb78a2c67c565f89b1\n\n# tcId = 86\n# short message\nkey = db0da5659ba69ce195a69524508e437c688f7147\nmsg = 4ef4ec44\nresult = valid\ntag = 4062faeb0b406698b740\n\n# tcId = 87\n# short message\nkey = 495d6c1191852ecaf0573e6a77610c32acf5a117\nmsg = 1566ae63ce\nresult = valid\ntag = 45cbefcd9c7eeee37ae5\n\n# tcId = 88\n# short message\nkey = e5cfe7dc67514c4c75d28bb805d0700bdea0d669\nmsg = af1a6b15b622\nresult = valid\ntag = e867269d506a37e8a62d\n\n# tcId = 89\n# short message\nkey = cf1b8b902512186e38c38165d6e587bceecae87f\nmsg = a59512152c7221\nresult = valid\ntag = 1a125b21412cdc596894\n\n# tcId = 90\n# short ", + "message\nkey = d0157fb40c7739ae506aad7de60f32ccc3325583\nmsg = 1292df8d53d16f3c\nresult = valid\ntag = 9224f11bff0e49b9aa95\n\n# tcId = 91\n# short message\nkey = fd55b81edd55a15bff409129e9930f1ba1763c33\nmsg = 05220a6997533c699b\nresult = valid\ntag = 3b2d07dc8ca206ba16c4\n\n# tcId = 92\n# short message\nkey = 079937cf3bd42864d5b15c62bdd92f275597316d\nmsg = 5ac13ce1b1f77724e281\nresult = valid\ntag = 0c24afcdadd8538977b1\n\n# tcId = 93\n# short message\nkey = 545b13e1f39f0b7ca9252bc596277278166ad410\nmsg = 08a7bc90732d54381b6e30\nresult = valid\ntag = 9bf7f121365a82c2ac69\n\n# tcId = 94\n# short message\nkey = 25385e9f89b66098ee8162aeca03bb45b313561f\nmsg = bff236aad71fb5daf7fc43b8\nresult = valid\ntag = 44db86e7a1476226dd86\n\n# tcId = 95\n# short message\nkey = 9b68139d93a88fe34cf9f83006c03b3164b60468\nmsg = ad672b9719c10863fd6fa8db88\nresult = valid\ntag = 2d17a88d87aae7dbaced\n\n# tcId = 96\n# short message\nkey = c3b785915e137544dac542cb4bdb16d53036fb11\nmsg = f8c1edb469b93c073b6f6bf74cca\nresult = valid\ntag = 16713d61fbb4149f500b\n\n# tcId = 97\n# short message\nkey = da67475185b3615055f971819db27871b23c75d0\nmsg = a176533319bee5e43d8f0eafb77bb3\nresult = valid\ntag = fceece892852d4a26070\n\n# tcId = 98\nkey = 0cf146ca7a254db1e001a29ad03c5e6dcbe7140a\nmsg = a83df5d099854eb6ead7031c51460357\nresult = valid\ntag = 9bcf7513206e27a4697d\n\n# tcId = 99\nkey = e038dff028227dc4b4d7453db3070108465dd5b2\nmsg = 7ae4e30834db449e4244a9fc0322193e7a\nresult = valid\ntag = 9aa8544a9afdd920c0f2\n\n# tcId = 100\nkey = b399fcfd1ad32140879aa0556ac34d8b5ac267f2\nmsg = 0e3f0fc5cb1456fede99f86a056f640b8f5e5e1b612f25f6\nresult = valid\ntag = fa095c6faed0f086b215\n\n# tcId = 101\nkey = 2bf7d201ef44241a22ae4b81aab910d22c2db918\nmsg = aa0afaf3af36548227349adcfcb6bf998a7fa78d29b87a0f50609c42edcdb3dd\nresult = valid\ntag = 708ec45d410b1fe075c8\n\n# tcId = 102\n# long message\nkey = 48ccc3907c3612a18294fddf2660e33d9cb787fc\nmsg = edbb680243a825068eefe5ba184e5eed4b7f85ca3b511a42d655be3e05d8ff124541b3d56a10a35cff8da8b6229ac1\nresult = valid\ntag = 3cb7fce20df8385cf6bb\n\n# tcId = 103\n# long message\nkey = 227d796b7867409db3de1ffa3cfe376704044f01\nmsg = b6393ab18376c025e2d8e00ca774a51aec19dc4a89cf6a9f8fc4aba81d73b3907efef1a0d018a53cb8b8ca1032e31583\nresult = valid\ntag = 525387c81c2ab67aca74\n\n# tcId = 104\n# long message\nkey = 5718e700c48a7971350d8a11b37754ae55a9aad2\nmsg = cc95286e9b3ca936191aff8731e6a17806a0958b0b1a39977c46395240641e97d5395a9c8a9d36281eba825a94e8b1ad79\nresult = valid\ntag = e54782110d40efb54343\n\n# tcId = 105\n# long message\nkey = f56aa792795eb03ae0990440714ab16cc4ad18c3\nmsg = 7a024d995addd38d967bc3b41641738b69897d8c52b7aff961a700cb68fa7481da0a3690a151ce09c95b4da60f7cf28990017292893bbb2f81a4dda45fe8639877ac5abaebbe00c1fd179eaaf7dfb4d50929371b9ab8b7d3531a63ab188d7b99160060475c33e83351f65d5e329ee8bf\nresult = valid\ntag = 1e2205d17ad4de3f1ec1\n\n# tcId = 106\n# long message\nkey = 00be0034d32699b1335d8d4e506235ee4f07bef6\nmsg = 639e828d88bf0642be0a541b1c3fca07609eb98d23a8b2cd4e60e139515e4ff440dfda1bc19392feffed74164d6a9d8f5bafe53fd397cb5ee1dcdf9bfc86169f1bc38ba57f88d7e8c6728c35fc07128ab6c396bb3ef3c14d13a05f8c3453353e850dc1b291ac7061ab52f121663f18b024e5cc0068328c88f52c20cd21793a\nresult = valid\ntag = 6e98973d3a775ac508e7\n\n# tcId = 107\n# long message\nkey = c5baa750a8424450f1b4d453c58e29c462e52639\nmsg = 137c7227a192bed26d08da886430f010094243b5c4686e6831e48db450045aa1d7e3aecf193eaaa1a73905f5f1190659a43ed4d10bfca5668ebeb343b21ff71d0737f81f67392b6459aa95f9441f699bf45fee24867a98a8a6c57f972abe3e400fd64ce3e5b48622a0e99e08d424250fa00ed0dfa1193f936c78af276a4b442b\nresult = valid\ntag = 490dfd2d5e6ea130f6a1\n\n# tcId = 108\n# long message\nkey = 6bd486ce934c2f5fe38a19423d257bc5d808e367\nmsg = b8a684ada0a01405614b1fa66ebab8b0356e33b889b81b3eb68d13b05c4e60c724785e634c4ec0081cc6bbdf213db7254f92c0a858bfcc3d63a4e4dfd9e75bd4839ac05751c23cb59945f4c3660d2b3009f5b08a596bdc33070244bceea11180ac0906404518b09d5d8612e0d8e69f4b9e55bbc053b56574711b02956db3f3bd8f6c42065871255854a161e57100adb82cba79893aad715dc3df1488b3edb56e58b89c0be3cfab09a3df40524d2d3251b0fcf7faabfc75f50026795060c1d62872574a769e3da0e19af1b5e25514ae17a160c8d1eb253c9f66ec3df789ec0c6c704a9e2fe8ef7e9bf8e8164f86d09d2a23698733a8e40a279cd5fe02c295ff\nresult = valid\ntag = a594d26d98b53b4063b2\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823661\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12063d\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 04e8ad50fc1035823661\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e6641600cedd7e12063d\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86e8ad50fc1035823661\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64641600cedd7e12063d\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e9ad50fc1035823661\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4651600cedd7e12063d\n\n# tcId = 117\n# Flipped bit 16 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ac50fc1035823661\n\n# tcId = 118\n# Flipped bit 16 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641700cedd7e12063d\n\n# tcId = 119\n# Flipped bit 17 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8af50fc1035823661\n\n# tcId = 120\n# Flipped bit 17 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641400cedd7e12063d\n\n# tcId = 121\n# Flipped bit 23 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e82d50fc1035823661\n\n# tcId = 122\n# Flipped bit 23 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4649600cedd7e12063d\n\n# tcId = 123\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035823661\n\n# tcId = 124\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e12063d\n\n# tcId = 125\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fd1035823661\n\n# tcId = 126\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cfdd7e12063d\n\n# tcId = 127\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fe1035823661\n\n# tcId = 128\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600ccdd7e12063d\n\n# tcId = 129\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035023661\n\n# tcId = 130\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e92063d\n\n# tcId = 131\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823761\n\n# tcId = 132\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12073d\n\n# tcId = 133\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc103582b661\n\n# tcId = 134\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12863d\n\n# tcId = 135\n# Flipped bit 72 in tag\nkey = 000102030405060708", + "090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823660\n\n# tcId = 136\n# Flipped bit 72 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063c\n\n# tcId = 137\n# Flipped bit 73 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823663\n\n# tcId = 138\n# Flipped bit 73 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12063f\n\n# tcId = 139\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823641\n\n# tcId = 140\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12061d\n\n# tcId = 141\n# Flipped bit 78 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc1035823621\n\n# tcId = 142\n# Flipped bit 78 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e12067d\n\n# tcId = 143\n# Flipped bit 79 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8ad50fc10358236e1\n\n# tcId = 144\n# Flipped bit 79 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641600cedd7e1206bd\n\n# tcId = 145\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e8ad50fc1035823761\n\n# tcId = 146\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5641600cedd7e12073d\n\n# tcId = 147\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 06e8add0fc1035023661\n\n# tcId = 148\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e4641680cedd7e92063d\n\n# tcId = 149\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = f91752af03efca7dc99e\n\n# tcId = 150\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 1b9be9ff312281edf9c2\n\n# tcId = 151\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 00000000000000000000\n\n# tcId = 152\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000\n\n# tcId = 153\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = ffffffffffffffffffff\n\n# tcId = 154\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffff\n\n# tcId = 155\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 86682dd07c90b502b6e1\n\n# tcId = 156\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 64e496804e5dfe9286bd\n\n# tcId = 157\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = \nresult = invalid\ntag = 07e9ac51fd1134833760\n\n# tcId = 158\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = e5651701cfdc7f13073c\n\n[keySize = 80]\n[tagSize = 160]\n\n# tcId = 159\n# short key\nkey = 1d9535a0daea9dfe443a\nmsg = \nresult = valid\ntag = 7436089fede3291c0c421c9ad13c357ec8660bae\n\n# tcId = 160\n# short key\nkey = f5c2c420c6f056467fca\nmsg = bc8a29f52e57581cb89a86e5d644a14d\nresult = valid\ntag = 1eb76df7235c52371d86113f5423628b2eb7c3d5\n\n# tcId = 161\n# short key\nkey = e59b0276e27a0abc75f1\nmsg = 061ca1a1af51c5133728c414f9646b3f50223e9b2055707032e754dc1d31964b\nresult = valid\ntag = 2081260f65316df2956aac723a9bd7d2225a8669\n\n[keySize = 80]\n[tagSize = 80]\n\n# tcId = 162\n# short key\nkey = b18aba1171cc2ffc7d58\nmsg = \nresult = valid\ntag = deeb3d6d81e33d1cad21\n\n# tcId = 163\n# short key\nkey = 23082066e8c45da82fc6\nmsg = 06c19c6ee4d2f015769f6d46eb46d6b4\nresult = valid\ntag = 747cd928e8831917c855\n\n# tcId = 164\n# short key\nkey = a6fa1e04df38a78667eb\nmsg = 51a4ea38e5566d6fd803aec5e073e087e9ae00d37d4a98d559074ebffc7658b7\nresult = valid\ntag = ec8c200c1ddad6d3aad0\n\n[keySize = 520]\n[tagSize = 160]\n\n# tcId = 165\n# long key\nkey = ab92e2cd40e00b40c4442dd7671c067c7792af28e60f2585e87f163bf3bdfca7f553cec71b0065025500c48e2070984ad9e24e733107ebfde27164a4828981ac20\nmsg = \nresult = valid\ntag = 7a29b47ff6ae90c99573d8c922a23e83a62b66bc\n\n# tcId = 166\n# long key\nkey = 3b47a5d5b72babe116e61919600cb980c904c298ab91fae3db9c82b0f38a18888bc05a418d65d68f8850937559bb37325bce04d0e5d175a24fea309895f5705ad7\nmsg = d71862028fcaf13422bf32ac0c5f079b\nresult = valid\ntag = 8019231e77aca645182670cadf887afd4b4115a7\n\n# tcId = 167\n# long key\nkey = 6e6c43df9bb6c6b8fe414a183e738508f0aca41d5beef6df1b260c39e1979b54683622a4d53354231bef6c35e129f85f822ba09198aa30c65ee60e4202de8cd102\nmsg = 98f0a4b9a36e173d89730a3b370777c499b4cff2846f50bfb88fbbbc547cbae4\nresult = valid\ntag = d1653c90fc591e3a3c285a3be8b12ca9b2121e88\n\n[keySize = 520]\n[tagSize = 80]\n\n# tcId = 168\n# long key\nkey = 4f00fd17ae82a6252ada98280bbd895d743fc4c20bc9e615d8a786c79e454c2b1341e24254fa0371fac86e7c0ef1a7df5c16f3b3569fda112cca8685faecbb8923\nmsg = \nresult = valid\ntag = 6802ca52be056d66b9a0\n\n# tcId = 169\n# long key\nkey = d22ec568909990c213679f7072eaf19763508ebde6962c75e7429c5f2454d4b5472811eea8e02fdc89ec386bc6f41d2ad8a91d116b2cbc52b80d357127d1555a66\nmsg = f71b43e0cc64b5409e6501ca55a8d450\nresult = valid\ntag = d492a296860cc5a89c5f\n\n# tcId = 170\n# long key\nkey = bcf6ad6e5c7e2200299ea8602efb42b409292346f78a0e57a789ba17b17ed608e88497e2bb4ebbbb3ce7750d222b3bdf848d4dc8d49b5b60378fb93ce3f66ab4eb\nmsg = 586f5ddbc372c0711b77e4b87d345d62b6de55a1ce6fa18de3346c86be5cec6e\nresult = valid\ntag = 1de9aefcc53130245a6e\n\n", }; -static const size_t kLen80 = 41798; +static const size_t kLen113 = 35704; -static const char *kData80[] = { - "# Imported from Wycheproof's rsa_pss_3072_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.4.12\n\n[e = 10001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = b520065682633ba54c9b713b2ef19cdc1fcf275ba1744c2350da7307a20971cc30eefa37d1667d23d20001a674f0e00df4f9b9e1d5fe7eb85cc45cab5dd625759de83017995c93d48b126df03aa74ef87daea0c1652dd370ad5d663598a383cac217a208b22c7cf0e448cc7ae0555f892ccb8ded6894cfb0c328cb542be0485d860ca77203081f3b04c6f55c5689b1a66b1c24819a4a7ea55f32e00f61accf4b411bb320a96c990173b63ccd74e7da7df5ceaf33a39a8acb89a845a594b164ec6e22cce940eb06f2d487a8bc4574451878c2bbf57d241f76586e0703bf5f86bee832d05b75fabaed6accadfc1ec2cd6e619dbb29b65d6e6f5e118ad52d82a955d21005ecd63fb382f32bb8e2e1e57220b345cd6422bdd84a91495d0ab5775b08139edee960dab1b4ffd9ea5b27398b58e6e35211c3581501e99bf5e3f17fd79381528d28a4927e28082f45bfa9519f98ea663dc84c50317adf0bd5da98b01459011cec61800534dd5afc5a567c19e4a400f06dee74112083b5322615c144ce3b\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 8e10f23f49011d761946b283d7152e851ee76e5caa1741b0901eea317d8945f2a0368551b3f2b3a6a0d6a939aebded8fea0a96dd1d037be33b1c35ce78dc89693918a99d547a1d892f4047c09fff7a6523acb0cb0cddebcd4a6fdcc309a466ca9580fedf032bf56154f8d79d5c4686abfd2c7abd342b37e5373b59a07fa865b118c44f2c44b851306dc97eaeeb638f14bafbb09c81996beabaaec28c19f06ffd59dbe3080e0124e2386418052735f541d496322c03ebee6e4dcaba24dde9772a9f079973df26e854c255eb48df50c01d49831e54b64d0ff862d03fb4d82ff204d303b537176c50ea56761a83d0aed8ed2deecbbba981c8aacd1300051a864d1efdc897f31383ccd6f181bf976a75e7a7613b60b3cb2a6f7ab8636f672990c13017f2981c11ba36096cbea898f016c581ee859e950bec195cc4e376e134341b2fd3e3d6181ba4d377b2aab6a148c6ea8cca9ee3478297e901856ab18f61c0233c899841e5da125516cf5274dc1b22e2a51c922daeeccfad0f2a8bf84e531bc4f8\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 22915cfa1d7dd30f50b4c0e4cee42c5f0aa1b7a6644f8a11e611b2db042b122af8211ffc1dc220b435d8919cf64d715b54ff8a762f702b365cbdab455509b97d9b310011467d4186647b957e2efa404aed3b84840529bdef7746348385a1c6a2ecdb88d1cc2b40b36c346386739c39d2815938e463a35348426f17d32d633b873d6124d8b49a726743af7c0e56d63394155b63089c63ed8897f8af2a2260d33499afab11c911faa754ced5acdac2de571f39c2768716e4308244a99d1e65da7061d2feb8ec8b4e517bd5e19cac626698479ab2019257cf83ad7b641db2345b38006d63f84b41772b90037778389cc30ed6aba6af212d9326792af746d7bca9211fa344fdc2798a490aed3a2840620c2a85e3d9b9c38f2330072663e16dd26bc414c7d68f6b11d2cd3e0387c1834c5e2262a9e2dc1bf7c0108b4e2052566c7a941ef6b38c8687fd7abe6add2b745c2c2d680ae3e5646ce2e717ef9899c7f3fb1e3088e8c0587d86546f752771819595a7a3d422820ceaa12e3ee671a456dac673\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 6e471c9342aaa27bddf64b02e8805611a13770b22cc3d24cdfa9a2fc14865f59344c288cf15d4c8785089968a12e9d3e63b8179489568743448f698f316640146322ef3b611fc98396cf4a4757e48ce6701f123fc0bb8df80b63cd2371522f8ed929f7bdb709d424af6eab2eab212b43afe537fec7bbb9dd02e64f116e02ad1214ae931a6fe28a5982029088a27bb95ef2ee46ad212083719327acab5ee51c82d94d5b14f6dffd2242ddf9fbbb2d03f945796a3e35346f2334ca6b4ec5d9ed6f1584688e661951e948cb95fc5cc04e90cad98c861ddff514c60275650ae3003185efe0c04356b07f361f7dc7e17c5de479cbf119c2910aaffa032aaa81ec9eb9f7e1ad21a410ffce2502e4829404d01ae090ef289bc28c9c3f37d3fcae33e1523b3c9b81e301f51d046196fc15c90d58bd35a1fb11fa04621b32cb61e718a434a0aaefcb676cbca888554d1e84d43b108fc1cb123cd2d300da630fb77a3ce29a0f53af32a5ce81c5ad772a199d1180a9e2f090847cd87ddf7b39aeec89a6b492\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 39f7dc9010bf3c200df551499404ca40346e58ce0c56271e2eb7835187ae57a7b9a0688c9b088ad85e128f56c0299c437a1a9a9104f3f51aab7043d5714963e46ace5d8e435fd3e416dd61474e9dcac3ffa6c3f0ebc4ada987c4313ec36f2c43d2dc749e496fbfad639dc811304388990b98cf10ff616a866bf5d98cd5199bb74704ae4ef365424130738b9d81f893a5e2316ee6daea185c170f69ebd2ad455b56676ebda9d0bb0bf4d3357475ed8166a3d2dfe6e093c3a4bc5bc2fc2275e6779d809107b621138fc629a6767d5809c85bf88b46b14a8e4ee9e310db746f4c0a79a3d36f6e305125642dbf823474fb913a9967a6d120e82a79ace48c501fed8dd6edb9634df909fe6775f8f6fc5b79f5881e1f13b7cde37c7c3f97319cd612f8ad2b1ac921079f18213e5facba0b83c17887e69501a6d2eb37661f03590af1a15646165eb785f467cad0c625947e8a8a4a68f8938077d5ef7f1b8b4da0d09ad5874bcb22ccc4ee36b9341b974a51a1d6ca009ded4ace9faa99d924a23421aabb\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = ae8472e987806e5110beae330056ff974abfce7ea9927979cdd14346747414cdce06a9c78eb1846c75dc288d7da531531da49ba7651d3a1f79e3297fe37aa73e075cfe5ac004b166526cba55f914e0d2fb1f12a60a3222dac434fa378c2e7b0ea9c2cb5e22cc343ea624ad6cf5545a61364cd67d6dc23d22e4888a253e940ff0e0ce0207c1feedccdfa10f50d2363bdbdf10893e3967d7555fba157f9a450d6bbe63ff31777bdfd402afa72c3a2181e5cc025443cec30d253653db7e82eb7dd488e6491fd25001723eae2e3106c7b50c2b73c142a4a31ec43e", - "dc9ec9011383c99a095b36258a0a77aac2af19b26af8a166b130f7f57f03a0e8007d5ac0eea9ecbe14fb7885538a22c13de5771bfdf523fef9c9b5f52ebc2af7902a0baf2a33923b0d0622b8fd5c938214aea4b9e7f0a647c5520c3a94a29737b95cc623f20bba8eaa3e9db60116fe1760d9b7ac1841e7586aec9708212a5bef2ff67c74462883062e052ab9fd90ffca0f0a6166b71a93bd289a1d4acd2d6ce72ae0b91cdde72e\n\n# tcId = 8\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 730a26b2c3fc2df474212c04fcb346b3b78a58c611351871ac1c5262867ce19a6f553880d68ba4c35827610b72bb044162b083fe9ffa7a82e2366090464821946f2ce1a8ea19b12c10c0e42a52ff805851c226748a9d65d7cb2057c9ee0beddd8ca02ae1bc36ced39925d2429d531c2e607bfbf0648708ef4f7d816c8839cc8c62036ac37e811f94a943198acf6e19c66cd829bde9dec9969eb4724e2d4ddc4f8c2bb2527007ddbaf2975937ece7f1779db28c610503e7ebbf0b03459a1f4794136842b57d04f14e22b98ef37939c64d08fb242cca548b7bb2c2d8b1df6bb8b0b7f6f38e47226e9fc0a4723c2a518ebdc5c4c8f15db74fe958bb567e55f092d3dc8af0128b353e2d273d574433c22cca579c479005b52c715eff1ef4eca8d82d2f6d7cc972fe0e75f19eeea3b77ea7fe26b1d29cedbfa7ef0737e4aa50a567b5fb417e356fa8034a72a53c5d1c0cd467808df6faeba89dddeaeb09c3ce7937450b41e7c1d4403b3033d3531adc24e9f5fe35d877a3e36fd3702289e69b460b97\n\n# tcId = 9\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 39e95e2dbbcf1817407146b19148aeccdc6b538729ae4f3bc240f4ed8cb9dc6a0e9cdf436bf5237e79e239a432a953ce3804a7a55bcc3f7a0d37d0123b1f046ecbf0eb33f52631e049b0692ba2e55db134f60e085c078b0cbbd66a74bd09c852fa9f029fdcc25679990dc482284de9fc74df343aa7197d84689011f61ec0d1d0fd3b811a918e80b9ede6c78c03f0ff6ec7e7ecba9cbd8a4124128034e425aacb004c042be805710e94ca4d36cc2f5d893036091950bb1663d3499f8ebe09ea2760e3939b835efa585834112a5515c8900db98a44914a6c3e5caead29b182e585092ee59126c9e6a7737d3b34b2fdaeb74ddb299cc3725687167d5c1f92d9186f3aefca61ad6c27283dbc821f6b5aacb238500a51f7439a8bf555ee26fba4c8613fc43ffcd254977f5f67095ef23e956721d5d71a8a73503106b2555c7433cabb304f30492c90b357127b09d45f171d7f4d4939c84516f96eb8f0693385e53a3cf8a6b4d0638b121e2e70b5451883ef368097c7a2010dfd889015eef0081513d7\n\n# tcId = 10\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 84f1e37e7d52955a8d076e83fabce6a7153d49e771146ad665ac95b67eea85ecf8c126887c0b0e4ff2f4f3ca11ccc510fc4a062b3157edf20ff2763ed0c44ca8d48c571119bf5a4ada5d87eaf5c389cd8ce3a9ce70bfa98d5536fc731a2607066bb2cd0915511404e69ae5ba69bc197ed995f51d835bde74c5dd1d4e69a54445f3723692c3b201c28370e4892ea56c3d2b8354489a728495e7d7d611e82c739d53ded82f1e72c4e7273ec63c8fc4cd13241219659d9c6c8620a455477587737ab97959a91efabc1e1de8218bb67466b8e890f47b5ae46266ac06e06247f3a169a31f9fafa268bd453c67b77f7ca9a53adee42b3a9acd4af467f7defbcfb96f087717137bcc0bfb41f5add94af4981c00d95f992995aa3ae406dd6df56a7070834d201eb1cd12c7ca87779de0eb38dbb92f4e7f6f78dd224d0dee4b12b20836155553b0a76e2cc071abb59a70ab393679ca458d18f9a5ec69d1d70b074d6cc8f9c3d5143de1c53dac156d36d28660953ac68670e34317a8864cf7c7214e5c9c33\n\n# tcId = 11\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 875c6f8f3395f75024b7ade4f6b3004c4607aa6cc99168d01ccd6cb481b51fb8a2bb44bd10a0e7768f282653ab6ca340b044ad03e09abd01bd0962a5e3724ff7a49ffee7818dd5acd0a6968c5c458c207d0f77eff3f8a2be4b559314b02e413865ecbfc0bf7ed7e66ae10b86efa9873eff30a17aedbf81cd98811ba228543ece8b14f64ca98dd26aa5ee83a1847d6fdabb8140e4dfe48db39f6a48a825b7af48c1e1bd124a2f6b76d0e37f76f4ba986ab3afeb55c7cf2f45021dc325322ae61b531f43242c65ba8b4a550801e966602730cc186bf4678d300d5783da4bb9d9ad54aceb656ec7e4598e3c209ac48e1b775b68896fe282bc2e3bf9cac99c601d64de18d31d1892b3098fae2933854f822c49faa09e079c4ffa9dd2c006471263f02e7e8eaf0345139482cd82ed8e6d3e080887ed13f2e65819a1dcdb6d3f5692f5ec7f3a0609f2f71ca4564d58f60a0311be5b597ddda9b07b52541ea924cc05146243d8b3899d3ab001184767f896f0e044224d96c975127c1c987a84d15cfa12\n\n# tcId = 12\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = bed5c44c1e2a041c2130caf34ce43e4efdde6f7846c30d5a1bbdd88c266485322b1fd6d6353e85ca4538d862394fd32180b36c10b314a8823a6c4a78cb62b5b9884a6ca480ad2993d4f209d1895f9a4182a14d47f09a13c9c9bbaf211d07653f8c610c16d156c931df9436bc7b9ef929dede2c1d59a2b0441290f51825ef44964564e3420dcf3c1622a8227a82b8d3806eb5d246a3b0527cde1be3f219a9015653f3f8a3956d055eff6a90f42b48f3fae5dc57d6be111956e6a9b6ef52dc35ef5ac363f1ce802c4c09555dd343ad0dda96b467166ac515830e9e2ee40d56e68558408b1fb71cbc4a964ebd832e315d8bee13529314a8ae346f4d12f5ef00686f4ec26f9479f57e69244264d81a0fa39ba7670cdf2db9684e0b70d2864c4f2514e498e87d474e65cb188835d5fd8c34e5432944cc0874eadcd0a3e62d9f533583d33f5a99af63d6cf429363f58f691deb4a95ff409e32c393f344c5e0347b2f12125f6e3944f563d59c6539c661129f300267dde299972f02dcc240bb8541acf2\n\n# tcId = 13\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 4e28f546283f9ac74cc99c6bca79bc208e47220cfb0717aabc521ac55119ec6bbcac880bed0007c04eef92a24b091d9a09ee5d3b5be790abdb2c98a07313d505fc876adcbb1089026940e03dfc10fb46a0c2a764ebe86e51ecc2ab489f56daf38764fc0a36a9cb4529367c9880bfd7631c340fb7fbac0edd2e1def00d65bd52e597e2eba1be1e41bd89a00f5c66fbc18b93e9cc1b5be962780f6d7a9c6d375a28556114f37a8a3606dcd68c8128bf7a7e5f1205778bcf3048bd4f7c10cbdb4ae759954c4e4db0a9fe4df270c41bb86885dbdd8cb7e72a33322238a2d29615a2f01e9fc59c230c2cce58ad096c2de5071e020f76c8c39874f1de677dd5d2f96ab4dc145098d25b740b5279f05713daff54ba695f950039882059cfc2f86c35a0501b8d0914aa59a806e8d1403fb2eef163ba1d6e3d1e18dc99c622f8c2d360bfab2c9e8fd9d74a027e466fbcf4fa56777ee0fea7e04ae1901e65b5361f97146d7f4a550adf77539fabb7135967dc16f8ca99e8283dd69627cf27cb9d2df20bbbb\n\n# tcId = 14\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 78d3509284dc06b54583e11ddf2507d9e50bdbf079fc319d107bc2527c1b742f4c759320fa22435d74e94253feb4a379128e7f33c5f3462fbfb92ff40c10b23f8bdc5890114757364207768014380fc16ebeaf22a7b1a9366f3fbbbb912347f1ef595d742a976b69377533e7b61d3237c3693cf43b34f92773497b8df7ac0660f67439aaa66fe179b34d9dd4d013e8fab958fbe2a27ce84b6d1c3c2998a50d41b6b38000191673c23792db2fe47e4ddd3b5396c65dc44812e55298b8b50b5a2a01d508b9d215986113b099717c3a4ee930f479308c20c26630aa5419c2589c8cbbafa7eaebd71fca9e751793629d767be8709fef9177d6631a48731f5e59fc7e98cd466375e8775ba935f12b45575819ecef4d78d85b6e984d90d41c93bb03c832fe415fb567a1d951f7dbdf407beef8caa3a741ca7c7729c8d8ba98896dbe52d9785feb49332e646771e7d84b75476aafa0a54512806339cb54ec1c70943beb508966741eba4d39c2fe535aa82a9cb92eec99d38540efa3e39fbc02d757ad74\n\n# tcId = 15\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 042bea79b22418311d75e86d0c05a9ab4905e59b3e0b12fa0b1e372bbf66690e1c23145b23b92735f2214ac1eac2cc4045e299f40f7e418c91ff328e68bf17466eb3e28de3139ec23b57ce5aafbc1e0e1521a292935a35c6d6189a42a81c573f8be9a0cf80b34457392faf031b632544fdd50285a7fa82a4ae6150b60dd9a32cfd131b246d6c89fc92e9a1df96857a6b56fd9c897aa4c8b4ee8e10dcd0ee80334d2261f02930a3a54a3477c8e155731878637256f70853484930d180a37c0b604aaaf649ce93f886a5f9aaf86e529286bf1ab5c8e189d44a28814d5e1c7e5c376d8e80ece5686d6ebab90a51773be4a919b22bde123ceed06c76d2c1af878540b5ec81ce067959ea8333e2340a9f9d7f2b22e1052e7478382ca937cbdad62a6d8fa409170ef2a03299126965d558978cad7d399a683d19b76bc598b94f6c94c33c6bb1652d44508c777de0da7b651e7c938e802bac8355d3503029cd1725e2dd70a90627df66c04989e541a56dc7df6a6a24175d921ecdcfdcd0e8b454de4a6e\n\n# tcId = 16\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 1d8bfdc0ddfb312f4b902bd241cb5750f80312688daf5e29ec6fb8cb085fc2978b25f101483e99d6c3a04e7a66e800257ecde1ef18c7ba17eeecd94d89245d15a6690be9d61faa9c94cefd06a24ad229f521688af44a2b26f726268607a3e4c63228261ac1bdfe714ff0414d6029772e53243770d735dbe211df1ce96056431405c2c612ce307957c5e7a7616bfe877148650de4ef0b4cb342aabc9315beab5e33f53986efa2b49de12b7dd1ae3676ba09a2aeec8c39c65dd44ce408a8c87d91e2225ee776cc1d924f354ba2e91c0d52b55fff4ccca2cf6ee76ee6b9588ba8f2d1610a7c7ec520602b37e206095e658fa144393de3fa47d048a017ed93ab89f835b63f8232c3f31eaeabe76a056c53d87f2349198c73cdbe9bc89085f610cbbe5f5ba65a0190d7339f2c26a7e3913aa98aca138bd87e6178c169d8a120eb5e74c51bf5040214efdccf7f9fc61624079081f9faf9c70b294bce55895eef3627cfec1cbd488940f7dc5f34b386fac86a569760bd490e856d364912ea354d4abd97\n\n# tcId = 17\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = b01d88bdc0b6086a22c3ddd9b04a4e4a95c3b2550dc7e6c06e7a36ab17ecabfc5606a06f7ae7a0fe4723743e403112c7fc08800ecb687a64de4be5ea2482600f", - "beb01b46fc799b4206bacffa8c38d27c99cadaa0af333a8002829398d1996d1e8f64688670e30f14e96d9977056f310ffaa9d10b83d1c0eec4d3d73f64adaa343fb8b206aeeb2990342013ff42c7242dcf30f1653488b4976dff36a79853cba1dd28c6447e626e14a92459366208b7cadc5442c1a0bf0d4d8be6e32d5306173112742a873e8c4db781cd362b4ef198f32c750b44effe3bcb0448426f090941ed4c151c9b75588ac0867a2f468dc2fa46f0be778a8d6f2ba01ff47534c6d71d62109dea6741c60142580a1f4e22b1761200f4f1599970e1c456496ff82525085c0a12eea8c412b929bb1873cd7dbb2ab35b9eef309d9f0617fd37fb3c56a5bc84d965098dd6b0c058908f9cbde6858f0d0734726c593f2bcec32236741e110acb9d536a7942f67f4c8a4b06478229bab09e8a3ec73930b75e82fd4ac8e466fa5b\n\n# tcId = 18\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 52c636d91f3a8c269ea2be767293a325a7addd7b1026251d45c1e99d818f6f8b1d52306768d163b9d0de3600e18b8e6fc3d9e874ccfcef45e4011ebacf3500e712f36863e53cb01db1749798941d557428ac017d22be753eb401df9a96261126b017bceadb8a58e2d85bd51797e59cf9b34b9a42ad90ea441da58fd986e023d5f617498be1304552cb6f3b27a44a6dc9289a29f10ba879c82ccfbaf7468f65ffd1d9b1f44f60480a8743e4110a454d6b88f8f6870a32336510a0e967b352b5f73bd6a8f39ca6f40b65c016149ab7449452a59ec87dfaaef33fed36f1759dc4485b63ee302d302441502c61b1d8427843080d968341873b272991a0ecf9c19d6f37170ca7cdb8a3068acc8d6a7aa4e8a33ef463097a7978dfeea14018732672df9a124f7b3164f3ccc527a8c0d7a2d75abc03efce9adba296558fbb1110b4c6e7c8f7952f67bc558219d2a836c673467a4995140d9d7cc377adca9898f8ace6446feb50e5b744f76a7f75f103b654096fd2902fd863452ab4bc0f89c457bf1aba\n\n# tcId = 19\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = bcf0f11694a2a707898454a81625b83e3fe9a96155efad7cacd049c348c23eb728fcb3eaf395015657059129328f19f6e44f050d10783adfa384f20c25ac545c38771a0c46c9724a000868043d60cb9c688595c134022a0b6e99d594581f94638d24cff674a1f2ebc77c0d13a8dbd61848bb0595c6e201608f00c75c5cec3d3091bdaaf5d9c7cc60337591edf4850e7b782d45292baa165d99a811d79fbdd75d8389a270507d3eb26d5c240ef00869d910883ccb5436b36907a82e4058b5a2c6a27e092ef4cdcd5c98bb410bf229d8fe9520559e8167c0b1fd3b94632209bfe0332892f879f25afbba6fb67cb1dfc225746df618ada74a2c085bdbaec3b4f6d675504af6221ddd35db01829df1fd386236df6ee476a3660178a7408dff69a86feb522cbedf7ff866d5878bcaf19e82f09bfe2e6d33b4fb70e1467caceeeae4e5e0d8c81b0a7d3e17ec594c9be9c9ec51c23aae99c81fe919d942de167eee370c605564b8dbf1fee860c6e052a280c7190fda3c2f8c1f401e82c4dc1d67c73e78\n\n# tcId = 20\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 58384fb43afccf19cdd00c2006d5a6bdd12a5ac149ba6b21d5dbfca1b394624007fa5a729a8d4e308daacece63654606e9be32ae8184ce9aa237cdeb44ce1c961a4598192a609d1edce2b9a9b8944cff2c9bfeec9e2fe6c7887f04e1911d7fdc994cdcc5c1282bbb2a519d4e6433bf087790c8833fc63e9236463121ade094e082d72a456ef9eaf928b2d38a7274b23a5136118e82b897414bb6cd0177298aac6970f179403d152553fc2d7e13e40c3b4875e6bc3fda904582ee49817f39e3c79b8ef70105de88387484595059453f9f57b52f1e79f5226ea2f8168e2e48de1d0d544daad205f6c32a6865f66acd4b318834741553cb1bce7a7c06e4c33cf51eabcbbe44626f53f7a2729cefda59ecba55ffb4bccb746dbd7689e7f3c1f29a6f26180fdfb143b16d10e58c72d4f8abb3dc3d35cabebe7928b5d61d5c1c9bed922bd44badf9db2f0e29f54d950a9978b1408a2935c6ab9e2491bb0624a888d306692fcf71e4c93bfd38ce6590e022c8e5bef0a9b5a3152edcc61c7ab8bdeef219\n\n# tcId = 21\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 4e71b92c27a22e5003c8ff639720b5b809b34f1f2797135bb4ce06a7d1f6569c5cc4910d7cd0bbb15ec6d0cbeb5612eb9645eab205130e3cf04a0011f56728eb447d26dc77a4ecaba396ae84ff1481422d83e4418f4858cf6639b831105d0f8c428fa9dc69e380dcd77d8d30c362b1ca067bbaf124aaaa0b0ce4bbe9afa7f2787b6b8c476b6139960e1b436f8b13a1b85ffad382e316223261d7e7a5f2300cfc04e51957ea4a0a65d19596c3034239b8bf8f0bea6f0d6d749e2d3df8241e4622204c334cd748c4d0254fac93db64fbbaf79ecad12ad19c74d944970779a6401135a5a8cbb32b6334988df3424c3993c157620988aee3bf276eca44daaa5370265a6ddbcee5d207670c0d46d555027c1854ba9221bb86dcc4df2fa8e99833e362147c8d2c4598f467d0ffb8ceb18c9187511b4135ea068d9961bd07ee0fe56b7dabb222ac542746daa4a45cfd77f0213f7e5bcdbfebb5a4ad18d79a599d0755dbaaa19fd03f4bd8cf9c7c8416c14d23b0ca54de5f0492d2d9ced1c8b5cb79ccb5\n\n# tcId = 22\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 1a9f21db6f3fe415a344b61db76ebf60a84ff0df70ecb5cd14a16aafdbfbf895303d9eb831d7a9bed89ee3ca737f49643b077a824dc3f433c00ef1b693f82d30449fcd323a48c84cc5af375d7bfa2d3ad882480225fe4a6adf05c0341a7913ab931bd085134fe470003d3a612d88ff0da54af1bede6bfd58f19901de43ba61c72d5f96302b6428bf03847d54ec1d74921787ba1fedc480605fcb45b74d37dd0abb4067f97e28ccbb86bc0a1c05eeb6582984606be21574bbb7bc04edef528a8581eb135e971c6dbba21b1155e777da9f6c6ac182b4de0c9ebfbc59c71ee6688d9b054cf7772f596fc9f6e87bca4ee8df7d6267e29824b1a70840c69e1d162858ece7de3bf08072f5caaadd1b8c6617fa7888bd5e9d5367be064cc82ac4b59b240e0e7397060417e6386a623c96bc7f9bc1da4365e08c22cbdd2ef1a4a77dfef4bbb3e4cbeee7012c25ce52ceefa18bf5056583109030f91d92de8200f3b202efb9cf58d375df1dfee699586298b9eef0d1e99466bd47a0d128fb9089ec6c87e9\n\n# tcId = 23\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 70dab9aba45e87811d667c5e8324d1f0cc50071c306e6877acfb9a58e4b74798b193159021875e18dde242a51c3885cc51573a95eee4029f663222e0fefd68cd4fa71c6fca4ee8e2876e62bf8211e0986b4e1e7afb2c19ddd5e4e184a77cb11a045f77bd2622665732d1674111166924faf5b935eb2bf4ac8cd47b63ac0078c5ec05d4dedc91595c2b3f5c8dc399051ed0654401cae20128c3dab28e7668b05b4da624fbfab83e425031c8b8f4bb76b78e2e666eb854b0af342011a5e19bb252f90a94ef9c916a945e3e1fa926639425c2e2954533fdab1f6b944650249478792339d9b2f77b46b094c986720029e040c5c6b7c14b777fc9a164004a5b011b15ce6cab8d080f9a006546be010591c638d601d775637f2ed7ab94cc786b05e0ea7b0b0b4c7d1c730de93fec5380c1fa76501f7e3a8eeb26287b27fca17c30952893136a5c12c48163c9e7796154b0b2d6cc7a5d9491a9c777e6d38c60413c5dfe921962ebad11fc6771ee4f3cef2a2717a78bb6ae0895160818881798b58d0595\n\n# tcId = 24\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 9f8d0b7fc6934a3eb7ec6feb90bc8ed2c457eeac964f0fa9ce8924218c5dd38ce85083e657bbd19ce6d6ddb5422315c067ea8307381c7275e9757f11f94723bed3a174728555dea45c8deb3265879d95f005d6bbfb4c75ecc7452a20b923f78d681a010a2c5d1519841383cfa8b299ab60db09905ae9914c7ccf1d1bcb578eede63da12ab0b16231dd40f3e756a3ee84716c64db348b1bc3fd49dce7bee98a16a1f6d9190d57b940a265a31f8298beb1a1f759be17724c5f911ca1d8bc9f2233eddb09fe51d2d36ed1976f0431f06b8ffa848105bf019d30d7d8d05303daebb56980d1a696f1dc9224164932dfd119e8db7b87e44e0dcfa1b76aa2dfba2beba02f14d1410dfdedd27832c03840ff86844b41b73781195c820aae42f756959775f6038f9615bd319f2788756afd3f37d384a775c4d6484ad3dddd7cb9a45e2b750d73f4f802e60efebcc235630ace45f2c50a2d6fbfc10b951e36c363640ea762ce6ed57649be8b49a45c987a66b86c2d590056f7d4a178e1563bb07ed8cbb8b0\n\n# tcId = 25\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 312fe5046619324e6b32a385bccabb713d787ff7a7fc9527bf1b57627940365fc84cb858435f078322935d0384728dc77a56e6429adb6ab9c9e3b6a250363d3a529c7bead31fcc57590faec372f816148fc73c8e0eed5b6dc591a10ca6711eb121eea991afd5b8a820caa377071a04a11f3ea526d150ce9e6f7e51522fa7b86ea5e03a4a37c44cf77c35b4907febb1fbd6d6d9c9f117dc0c41b465dc2afbdd09b93237564a4814cb2831a095fe9862d1f607a31905d45d6946a3d5b6377d85b424b99fe36e1d0fc5c7e74bdc6588bba4af33b9742e5727b32c24b2937a3fae82df3734e86b79fe21d9810fef8d6be753fdfccbdf78d735c4223cc8e7781f111da2d83a63288995d9baf1868158ec3117042a4bc4125f7db1a2e95877fe1437701f31955a20fa05e687ca84b6a8a4dcbf34ef627528bdd22a3daeb69761c47b8799d1e24eccbaa0cfd3f5684d98c5c69a79942846c745bfab428eeadd4dc52cf3827c08547c7e8a8fb0dc149e8b043a49ebd2160e0372733d38000581e775d0c7\n\n# tcId = 26\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 69d4190ab2eb0b4a59fe3692c6b99dd3ec7a8498f3b81dbbc4709b77ad49ae344a68acc33ec05176a5c1f572dca5ca962d51bab6381d0dd050f539fb5f6532a3c811d2cbde95b043d854c50f479ccafa3cd7ddce182558693c701df66747e537e29adb9c7e2ec3f345fa5010ff3f8ca5cf4de31139dc3f9ed93b4f7ee77bf9bd29757f330e259e6ddd5e40f86152f26c76cf7a778b7565287406e431c440812420bb1c9e36614b51745cd35ad18a018acaf3a8871e904988b66e2a09662f88810bf5bfc17dd7465abb77d2f625ca83ccf2e2f187b217c28cc0818f04e259ecd59c0ce07f6732eb18c72fbd007a1f070c554424185ba45e9eb1b10b0555f8d4678fd7f7e91c92de9f2a11c45be7dc1366ffc3ab71f263eb892ecef25353bec9ca6ab78668cb9b66a9d0cd68b4df0b2ee17940fc1c", - "66915cf30be060952cba3b4237bebf7ca4b59023a9293c6634912a90291528e48b96542a0560da0c457407bf454a9ce5919c70e62536b8e5e26f95940a2a6446a00e9ca64e710012d07c9904\n\n# tcId = 27\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 54a5a3186bbdf9a08df3b3bb343979c4e74e3e6d507b6b81e1aa34421fee0fc53f9dc5b0f80ad535e25caf47ff3e3abb729e271e2e3d945b61e56fb29e32e7d93e748474276252e3b3f05ba709a1909b95414da0ada0effd5ea3572560fd24d3bfe2798006c322acdfb7caeab12b82169b72771b07030370f301a31f0b919724a5594d9b48bb5c8945cebae01653766b7100103aaa38d4c0080641fb7d946c2ba66bebc4e6df76c127eedd9b83dd239357ecd3c7a4e0370b016d542203963e962aba5ad8305d2980b35b8e4f65e2387afa912c13ac7f725b91badedb1332b21e15692752d474fcfe1b408d5c2bc2e29f67b9ab76cdfd64bbeb809ce9e89ca21722b4e04f03bbcf070df8387485d7a2c3fa0b0b3cd7e17562510dad0ffb1c16d838b042ab85d58fbf4429eb91dc9fb499d54cb92300d331dc5609b270dbe639522d84378b529dd7b592c5eaebefd4e032401b073501a4fe1530851c2d845263b0c988d6f49e7dea2cb4925f9ecaf77365bf01894202783cb4c79f3370b74ea789\n\n# tcId = 28\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 4ed9724ed7882a0ea9d61cf2d1bfb1c042d94b2427d71079625d8d59f7e5632a578521973bd496cdabf1e9dd45bac456440930d221b95cc4d2080e96c963685b909000c45d62835b9e68ddc728e9c03a4831a90435abab57a99affcc7270b490b850721609f568fa4a404ff8b054345e1d8e4edb9234330f9dbe60e4ee2042a5bfb28d3a11a9fd03655687561938c45bafc64f59d0d5d72fd23bc40a521dda3e2b4a7b69b6047193cf8dc3fee3fd299fe88b58fa052bce5c4af62baf548bd5fa8c08bf6aa17eddb8fd175c40128d1efc64e40e08076f738a5da495b1e9e0a2f52f1acc1936c905fb69871de2159aa5b4accfeca00764ecbd03f0c9a2d8231f26ce5e7aef43f271d3623459930a0d99a5a41c726085113509c15abaecd8e78f25fb2e5c3983afda6eadd0e68d742613d085ea1db524f8d97e189136b6481e3e61b7f5290f2d10b15a9b93a5fb4a6891f5e4a341797e5fe27e3c202d267d76be409a3b72b15e406729a2e56c9b9d7cda30283d7dd352c88ea82350e4a12fa17b97\n\n# tcId = 29\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = a855da78c44be74dddee634157b685a227714cbb6a21288cdbf3a87aa48b1da98cd590a049d2ab715136d147142e5526bec5d1d08a24d99e9965242fed7c0e9e3a94c6cd76511083b7fc244db4b8efa094624564feb61992b02b3f7724fbe6f53f4f1220fe03f28a6defec4632cd074636fc129d75f7c12f2da83903b1b40e2415096f3bf3955d1bc231f643cd964463199da00df164f7ebdd967b2415ed460f9d26bdf6542ad355dc0547ddfc93c272902eb0698a53b0d06eac9acb9d54d335c4a460c97fd778dda40854abb7086beff78928b61604dd94f8e0bf8ed54185c3bf14cb8bbbd79c6f9da3888eee31692b30f370f8d6e2716daf73eb5f318ed4f99705f019eed29b2ba5fa6193eb0049fddecff02ed19300102e27be3c85d231bca8cd1c24e175e95fbc2a3bf8e23e2b8a622f48cd100672e058c2ca2f3b1855eddb06b6e707e1f05956a4683976749193faeccb5e25af7a99528da61c686269b49ea5b768768d7f624a1600e403db229a85e8644f4dd7147315cedbdc85703c89\n\n# tcId = 30\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 5b7d079d667b60b3508089031b604327bbcdaedc887c9530ba1554694dfaf081ac91fd339323793d862786c92696f1d9523cc8aac14dba90a6363bee9a93fcd7751973ecb70cd812725f1190d62f9d950a552336eeec2f2759c4d347d4b75717c46365c684acfaac48ffa5a3a74748bd13d4ce461df0095bc2fe74b565f629be5407985ca7ceaac43810e42951e7a7abd8c2f548deca74f34afa47c2d72b85eea9cd2434d4b5ba81f9eec865a2c4ae17d4fe00aced59bc20f0e8a4e9b5fe98da5b7859719fea29b643323f2fb05f4bba83804ba1ae3040e62331d4ee15ad82221f14abe7a9dc440851fb97708b120e4d32e37327d103b626a64845a76d24762d12e4210e166a87fa77f8e2f2c9feda8dfaaefa10774480b8e6f6bd912c4048b77ab3cd7684c348c3ca398ca0c06393e83defa0eea7034c97695e7556facef23cc8a0e9d395080fbd94b085380550deca1a2952554873be0936714c5d78ca53d36728919a7c4e7069ce97bf215da1d02cf14068c16100f8f78baba2d19abd306e\n\n# tcId = 31\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 8574a80f36973bf6b986c7b81bc6d289b118caafffc31d2c99d2dccc1e6611d598dda3fd7c22cf10c7729fa84a87e3f19ff4bf11a96018694b7d829bc003009eb104e8955e8a8717f2fa89220281fed0878b9febf77e5b81e93515a8541d7a4b8a4c008a298d317e7b82c826b5d67bf04d459a5d5fd7f69389dfbb25146c4805cab1aadd009d7b00956ba93f6d02f5266d8b06e28b346b06f1c3501cef04a1c607d7f85ee037178e6f2b0dde307eb6f5f88229541cb3d37e495cb5997264a0c1342713e8548e318681a783381dec9d6524f5c80c437b997f2fb95c80ca7158d0ebd531b4c9bafb19ad9ea0542217c1ad965ee6f1afa5a48becbf65b380f1946dcc85fbcd82fb90011e650dd1e507dd19037ec1f2ac98a87c25a6f588aa6b6f93d35b83c1e8e09152470dae2af8afc1fb2146cd426fe8d3cae5a80c1a63c7fc42825226bec26d57fb62bd048fcd921b8be7aa8d024926fe3cf5c5e3e7f5b2f50b33dea547389e40fd67a8523cd5facb29e97583f26a34f1ed880869800a4b35d6\n\n# tcId = 32\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 7857b1fe06fcc417c07766a9892ae30eaca65df7474575a70d8e286fc22e3092dcd23446b101cf27951eeb2cf879d320b2bd12f45b79c10018178532d8fc4d708583adb4d7d7469cd5362c074c519106c761228557d4280dadd907b27675e318033ad32ea71e001c3e7f68f6dc07509396a61db29a9ad376f406ff35aeaebf8c6fd0bf7df4bb721c91dfdffa933f37db0bee5d4f7d34f3df2a3a0f383e443647838d7c02ca87d9d79814ee9d5b2860fdfea5577702dbc829610ee1eb13f6e6f0636f39c5ec537c0695bca4971dcab6907e907650b92b96d5d64c6de52c4d986d458f0195345b1e84fbeaa483e3c926167a0d1a977024aef2474c31752515b55021048d2fc23ecc5ec5126c57b18a1656ed49aa90e0cb51e77e56507d7fc60b1f761354423b110d44c67664781e5caecb5da5475b01ab2356993378491c2ce4fbc41badf110c33bd0b78cd19540d8aaf27bc9f3450ce7579c87ee40a454133093ad89b29b99b4b15c21f072bd2f5c991e6a98a23fefc06121ba81540cad7e2a34\n\n# tcId = 33\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 9393a9989ba865a8be0fee265ee6b5b3cb9380019e3c4377521a729a968dee0374b547e94e6b12d860bdfd5197787d35208ae3e8d6a689d031072f6b993b7a8900a278fbf1c07dadcba6b4074375c666e035c2f12d158f626277d7d4b781c8b6bd71a97f575f08c4520b2d66588756b9fc8603a346cec73eba4e8350d7570e923cf84c1b33ad7bdd507d87c3ddf01084703f47d423a5abacb7a6caf5bf7ac4c61cfc91ba9483e7b3cbf9a094aae25b17468fb3a3b6a42d23225bd4859d2279037de2ff446eb441de7060a675b61b3e591a4f854265ffe937bcf575ea85b84046af568a298902774ad9a888847f3d20496d8c570da907686e3441998857e3927feebbf5540d734fc7093263b0efdc33f32f93b936d8f81b920745c2c854266059c92120435b3f41d7a3a5a7d2c3571a15db2136362f736e099e893785876f0ff0b51d3006417235129ba4480c4164329f1f9c6aaf48c93411e388f00cd8b6b125f4f1d3fbf21ee7ad4355a416101cd857f6ae91958aa88b31134a7b6906aa184d\n\n# tcId = 34\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b77b9c5862c9fd0f4e4d72fb7bcb23b2a5d2124f13aa7001275451a10148993a3e846e0b29157aa3a1a8ae643e2ee84a459b033201692697eff53b3606e85c6649d76c8288899499f2751918879a034d616543c0b7cfb215744b8dd03e50ce4eeda2891ddb8ca9c568ccf98b3128be25e191a4462f6458c718b33e5f519e3de152b0ec691f2f5b8f3cc150ce37814095001cd60b3dc6e694a3df5aab7a0c1b2dc152c26901294b01cba43b74e4e28d14a9a614d0198c30fe578831c8d1b51b1db0dc34f6c47de0d38d20efd1afc8d385e6bffeae43280f62a5f2715af79af64f04d126e1dd36067bb44d01ebc78769766bd4332a43dba1b124a4cbed381ccb43952ee4cc19201f05558c11f51ab5e76b76b01fcd036a949ec9e4d7153fb25a1aafdc8e0f1754bb59ffecb9a6fd9cb05d527661bc013cb73cec4ad1ab046e1e94b6d518604c7ce7bae1dd1319b612cde529a6ae588c4c6a6a7669e82e141ba6352e4552fdf05d9d1e3fa217ac5b38629d81ed749629ec53f3b30f29df883fa68e\n\n# tcId = 35\n# leading bits of masked_bd not cleared\nmsg = 313233343030\nresult = invalid\nsig = 6ae7425610f6d9b6cf5a358bdff3bdd00802d55cdaba2201794738b900489dfeb11d921d87449ef9d1e5b0deae4bdb26cc13c9916a767cde8e0ef67de6f8042e1d5f600bf707f65380f971222d37088edaafa4909ed566694601e25bec8c3128dd61e664688b5ce2ed2f626a5b618bb10d12cc78ebbb0f3cd6883b6476fe4f89008d9e8feb7e835fa873f2d6d9973412abcf12d2646723b1a5ab4e3b206d49ab6f47789010cf902adf720a02c7677847925487634f81e163819f286da4d42437e66ead9278a088d9a2628aec137be60eac2eb30306e598b9459f0ee1c79dc132248f013f15fb80ba713703b66848612d8f4e5d6bc444e166998f3107b459efc73ebe1bdc0b98e4d57bb960d6db0540f68b96212da6ffb05bac7ace76db7b3bb69188715c091f14354fbb8a02cf2b2d77e7f2e8db505e93603bbfff2f33ba54be38630dba291befeca45c76c67f344b9daf7a7b0712b5a49e7b6af29734516570cac32d02074a74cc0e49797508e1aff2af9f20a7163440fd962bbcc5269d8f13\n\n# tcId = 36\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = b9bde8fc005ab0b6b0317aadbef7d6e8abb69391bd7ea43fba5a49ffec02979f89d0a9efeacfccabae271c998ad7fbff4442367c07e49a892b9632bf4f30de3e95583875f3069fd3299a30bc21e74526cc51cb10dafe22b06d3a412a6509daa83d337e18c5dee6591a11262e008c3b562a18a9ada3169267eaa849b16a377b195ca6f83df0d2c2945a3d3fc2b872bc2ba9", - "65ef4186ad1e7ea5b56fb689fada3f377e0897e5cf86906dd2d894848a6f3d64d96a5523fd74d2e8418809fcefe5b9bf12f5ae7189e2aad268e835b5a701073e26be131c9dac06203142d93c95af3d00acec603aae2a24bff3d5481c7e71be5f63a1c47eef680a00991008ca0047c7bef7812c9b823a64e6cb40d0fb4472b702bf4f1c9483f835812eb3f70808e3dec7ab2ce2d8cf1c0dede8521780513140f10d84727d4f14ae06f65276feba1857a7e879e9c4f59c80760b117e1c4083e342018da1c42adc6c5255404adaf8460d122d3c670aa29b58c087d118643eace86667e6bad6c07f078f9cdb8618b48e92\n\n# tcId = 37\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 872f410815926494669ff81dc7114e096f007790f6a4ae3a946b64984eb28bf28351616cc82ed34172f1d1d0a8918f87d64258328db63b72127fbd26320a21c114a7f0b6c88ef717d949f57a28e66244b1fbaaa942d3ab2245ac76f0cc4bafcc119a64f7d167e3e2a64dc9a004464b28bfdcac00a24ed7e3689ca1ed23480c1a0625601c4e7f1e374b54c1c1fbed91e0967b40a3920210b84619c23217c2a6a39734320607abee432c7ad2bb0a8b735400bf775256a61324d4c4ee743ffe99a7bcd13a27b0fa33c0dfbe0cf9663116997573a59204c62aa497e98a698b5dd19314de9ef95cb8bdad0e07b722eb6795f6ea8098b7b092f7bdf73aa459dd85843b310d71e0400470ac14db383940519c060d111f0b80896083b6fb305ee6d9d7879d177f7cfd85c913d226fd6c75f38519d7e8f6d32bce50e85901fe6bdfc74997862a3b809e5ed5793013cd19af9efca616a9ac3e346136142374f58ca823b6a6b2870bfec41207b0a8f58d72c119e319a3934cbd40451f0a1e26b447a5687b9a\n\n# tcId = 38\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 5e0a2f627d11c2f5c2a61cec6b9ab6ea6f2620085e52ab1d162365a2c7040178b3e6222503efdbc66eff0cb892be95abee6ae02af0a29436de4ecd2ff63eb7e082d51ab31d358309747ce61e30df4ab3382341b88eb2da84406ae20fb3bf9a968cf5ccc871be02f6cd9f2a89ffc6f3a69a589526e8a4f1a8c049286ffca8359e81cb3173a2d2e2cc76a4829edebdd3dbda327a92dd35202b597bdf077d7ac2924f8cfb29a85dc25dfd2ab6e770cc80120a7bd594e020392e58acca9d7356773e58aacfabd66c2d9a888379b73868d07e3d14af1dadc1843f2a6c8e14c93b3b29134169c5ae3b293ee6f6a475f20c7c159258a8cf1a1cede602afa9fe7c61a3218c34024a87bdf4a64ef12c78a11a50bc1521836bc4d84eba90ab1db1b17ef0e6e95d7c9de5d6b84e11dd5422a869ecc7f90f952794f6093df89fb664aae86669c63bd46de5972388d81908fe56c6bd029e393047c52924a97aa55c07d482f98b784e6d39cbc280330a34ac4a8a72733235e66234903a4505228a3fc8e1146034\n\n# tcId = 39\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 07f0772411cdb1e02802f8ca699bf55bebadd254c9aadc16e1d6d4af3e12670bfd2adc2dbe80195f065d75fa4a25ef757766fffa4d902b386a9c7f247206f60c744938f50d6f840170ae94c6792299c386a1d6d7aeb73fecd5b72a28249a2ad771a5518fb694f54924e15cecb2d755da44b54535dc6f8fce0e91ea160ea942c9e34eef5d7367c9065f5ac270ef11a35bcedf663183f74cd2d504410b97b4034a59d201333f235f59924aad30fa877a31e0c1573f62e7be41f961e9c31ec334153d83adb0ef38963f0f5e20c90b67ae5c5e2ef8520587587c22e869881abc6bfcecd62a1f878115e6cbca7259e8b9e116fdeed841f1d698e85f65c7ae07421cf3096f6b31a07e251944bd7e2cf50ccf69a18de7c17700b25786d29ed74fe8d5757d4dabe2d6fbffc2227448ee8d5559f992a3b635cd74a68c329f1785e743ce9d3bee57b997f9ae2deb531f8994ada98d9a3536b074814c2d5003d6a3d50a9e56287f3aee8ed87104c19656a6057515fe17bb2a72a53a7c19b7a814252c8bee61\n\n# tcId = 40\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 41\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 42\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\n\n# tcId = 43\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203\n\n# tcId = 44\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00008f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n# tcId = 45\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d5580000\n\n# tcId = 46\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 8f", - "9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1\n\n# tcId = 47\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n", +static const char *kData113[] = { + "# Imported from Wycheproof's hmac_sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA224\n# Generator version: 0.8rc21\n\n[keySize = 224]\n[tagSize = 224]\n\n# tcId = 1\n# empty message\nkey = 7eef1e40253350eb9307cc6bd8ab8df434bc2faf7095e45b50ffdd64\nmsg = \nresult = valid\ntag = 45b466021214d19245506900532f5272f44b5ad9b3d829f0f5c2108c\n\n# tcId = 2\n# short message\nkey = 8648ee936c6ebc5ae4bb48c1139a54e3ac5d897beec492dc4d740752\nmsg = 2e\nresult = valid\ntag = 5b72e3208679e63f929e6ee19a257d0555f21484c7caac7c9861be43\n\n# tcId = 3\n# short message\nkey = 2297d78cc45faf9b885b36ac80205cc08e1b730f264f23f4edbbb406\nmsg = 329f\nresult = valid\ntag = 2e7a81c4e29a435d91e95f37fb0a62fbe9a69e061f416c1ad17a7fca\n\n# tcId = 4\n# short message\nkey = 0361a904f7cbd107a617614ab69d11208ee6d423b3ae90e2bb6d7e54\nmsg = e6e765\nresult = valid\ntag = bbfa7ff960931e2f5ed8c925cd74272990e755f31422e5c858995b73\n\n# tcId = 5\n# short message\nkey = 264a8d2128e8fd0972d9acc66dc275b1286beeb0aff7ce8e97c7b96c\nmsg = 25838e50\nresult = valid\ntag = b25c33bba1a91024f42cfb93232ad685d54be2ca310b0ff9ba5107b8\n\n# tcId = 6\n# short message\nkey = 6dde8828f09b7aa981082aa116fca3b7341721c0440803f52cc9732e\nmsg = be81602da7\nresult = valid\ntag = e510fbf14bd7301f751cc0ae89f8725a7654ebbba6bb2f741626471d\n\n# tcId = 7\n# short message\nkey = 3ba156ffdc55d155bd085105aca64d13044db60c82cf2cd9d61d098f\nmsg = 69c76c8937a0\nresult = valid\ntag = a9d38740245038d9c23cbb59ba6513f7034d8047a07a904a2a23d2fc\n\n# tcId = 8\n# short message\nkey = 9c2739bae2a863fb0236466ba3408f4eec8d43206d56bb7aa2f8f75e\nmsg = aaf4c9146db948\nresult = valid\ntag = 2110393c6ba01f53be203533fbc5471fc8f04940fe912411564ba36e\n\n# tcId = 9\n# short message\nkey = 31d9cae2c3df064018209b121f9e883976ea757942ecda9d92fdadfd\nmsg = b844289529206f5a\nresult = valid\ntag = 1f1ddb8680b0d99893c498a772a7bea63c2e08c0257a7f31e3db2b88\n\n# tcId = 10\n# short message\nkey = 89a1b9e9004444c1d4e967570c21a05512d3f618ec168fc3e13ea5a2\nmsg = 6b42eb6d84e90c70c2\nresult = valid\ntag = 3b6f3b09e03424c8adc267fccefaf614db6d74977754fcad8a8d1a9b\n\n# tcId = 11\n# short message\nkey = 4398731752fd7af1db86ebccbee0ad65eb5faf00ace6c9aa35441faa\nmsg = 1ae2e7d917c48026570d\nresult = valid\ntag = 5f1948336953337c381d449c17ab5c327c86121a8b1e0db19f624e3f\n\n# tcId = 12\n# short message\nkey = 339460d6bb26ca60ebcef10c38587b9e575c398491782ccf9e8f6803\nmsg = ca03eb4f37536b2377738e\nresult = valid\ntag = 51c5661c31fc7edd09de60c91957036824a19761bcc54f1e93c43c3c\n\n# tcId = 13\n# short message\nkey = 025f8380d10b8207b3623e4a90f79c3e753b1be6a35b88b68330a40c\nmsg = e57daef9ede4e915c3a9eece\nresult = valid\ntag = 8afdb371714e9d6063ec9e43c8cd55e1c032b2fda57f91e9ec0f6601\n\n# tcId = 14\n# short message\nkey = 0bdc5f51f8a1a35d75554be70efbcdf51e54f30fa4696f727431941f\nmsg = cc3dd1eb0690f7af09ad408f9c\nresult = valid\ntag = c0918951c3422b48502635b6e58c5dcee9fea51c9dce5c7c215c9b93\n\n# tcId = 15\n# short message\nkey = 5ada97d90a74a7d4a68c5464fff25a9b7fa2e75d6acf0a59f143a2e9\nmsg = 3fe4ede158af108e09f543e14ab7\nresult = valid\ntag = 180a6b8814ae34228ae9ac76da8379376aae6f1aa0102e8f06b022dc\n\n# tcId = 16\n# short message\nkey = 007afe6b7c0701c30cb76b431afa3510c8b31d21cfe0bbaa5289cd08\nmsg = c2cf80005c591c1f737369fcc212f0\nresult = valid\ntag = fbfdb450a42f9a4154146f73c590a0ee9187af8505d60790a9615447\n\n# tcId = 17\nkey = 26491168a32ce8cbc4c0cd64107e4fcc432f07d59c992862e1e55b1e\nmsg = 15e51091b4f424ba1fdecb5e2fba11f6\nresult = valid\ntag = 3fa99ee160328fddc47a7c5043e9ef645b8b07462b71cad58a024517\n\n# tcId = 18\nkey = 6978b6c134dd6949832d65e4cb9c1e1dc36beae4a134907c80da0f44\nmsg = 6641d834b3fbfdb5d178007801f7b4e7b1\nresult = valid\ntag = 61387230446f31fde8552f22ec52a7fef82e16d0ad399de939d8229b\n\n# tcId = 19\nkey = 9f9fb280adf12e739548b1d676cb794d685b9104e63b619b055cb60f\nmsg = 91513dd6de40a1c23f8d1eb0ab8f5ea6f6835506ec750894\nresult = valid\ntag = e6b92f9c030270897c5d27162a5d40f6d373ff136105d1a90e0f9a60\n\n# tcId = 20\nkey = 3b1b16e6dd2e69559dbeb964e10fc94c068471b2374d3a2d24d2d466\nmsg = 8ecd55b56c668dcb8e8b1efd699c0e4a464204d29af140f87d3f5075495378a3\nresult = valid\ntag = 175856b8f56a8c6fbebc36541771545046bb416254f01ff11a218d2e\n\n# tcId = 21\n# long message\nkey = fc296398845063e661bdf36ff3615926eaccbf06947cd31e6677f710\nmsg = 62bd0ad75d64c554cb2cc109c6e4019fc601c61cabdf99f8de871edc17a301b4c1f55a15ed66f91eb4666dd08bc59c\nresult = valid\ntag = b7cf741cf96d6bf57d216c43611c20869ca0d008a4542f5c850605bc\n\n# tcId = 22\n# long message\nkey = 6c98d1feafff9861351966bc6ed19ed467f9dc767fa0df6b56955554\nmsg = e99d51a1d9a25c5842501a5383133578c8debe501581b1610f7575519bbd26f01ab7cbe069bfd5df3699a2fea5b461a3\nresult = valid\ntag = 0fe64fdd912966a6542069a22bfd084b484c015cf434d86bca15cdb6\n\n# tcId = 23\n# long message\nkey = 42a164f94e33d574118e0f8c938bbc2874bab219ee7a179f21e13b02\nmsg = e895639631f8b5d48e3ce00eb310bf129976ffced96a6f30a09d6ac1c291f73e93690526d86cc4d1a8e21c11f5a8979308\nresult = valid\ntag = 1ea982226e8d4cb7b07922158e535af2233b4c4d39d26b062d6d2aae\n\n# tcId = 24\n# long message\nkey = c1b5b91210667e72aa510346e1811358815a3330c5ed27a695c39451\nmsg = bf1086c3ea8b8840418c690c92152c73a6730bd1a0210c8b1d25c43a2193e739684f04a25a52cc305599f22ba6f70c8ed00d10b914a9522a25e06c471ebca2ff1bb4fa6799b85122020978dfa66ef12ed26ad38331b26eaf591afceac96d8c771eae50fb7f46242337dd0029f4813b53\nresult = valid\ntag = 4f355edbe6a3c93fa7add384be899bb4fb55385a78812a26cb64e44f\n\n# tcId = 25\n# long message\nkey = 4f09d14d40e475b68288c080668ebb1bc8c6be3191f6664d91a23fcd\nmsg = ae8b6ecc219b368d22fb596e42652d0bffee0b20d69cfd089ce3dc9303ba2f054ccaf5f5147c7968a028b140f5e3c9274eae2afc61c3bb6298dc598df77dec1cd2dd84212693b082b8132ad0f0b19f66db69fa7f6bf352b4feac724ce048440d2a42b44d53bb62fe2ab25f7f54bedf9ce7ddafd8e09330dacc6d52ee9b65f5\nresult = valid\ntag = 29ba268103019e158a35614c80780fda3f5ec3fc32c80aaa27b4025d\n\n# tcId = 26\n# long message\nkey = 613f414cd94130bb8a6243e12eccd90836808428b4a7177867934da0\nmsg = f696b9063b64816a45064f48ca05ffe4d5cc3d0b3beb0dd4057b6ada994969bf039bfbb72ce197101cc4e4b3959b3702f045afb7fb3113c997606dcaf2aaab31e02ac6ee597dfc0f9143d0effedc9ae7ea10e7ddb1db860a91afec62c48ed9c0a6c10b4da1de748caf7f7a5e01799ac57090daf4e3352fe859c5131c205d262d\nresult = valid\ntag = 8129e2093070168a20899793a04447a7ef01ae723419256a8cb42f6d\n\n# tcId = 27\n# long message\nkey = 5b88275307aaf691a0cf0c51f50553dda972d14f8afff98e62c2d972\nmsg = 57e4efbde1ce9fee2e29db19dfc6ba3bcb17f33765af7f20133bbd1910d542145c7def187a304517b8d8954454a90a717f67f9c8cc587965fd9b43f41ecc50b3458d8ce9f66b475f1eaef4a29ba89a3d58e5011c92acd1536fcd18abec29411b389b64f7f344777ed6deae32127abaa69a50ba22a11d6e59354f2ff0e3c3e3293cdc335411cf55b180bab59da36903a6fba91df34d2aadf7017ff49a4fbd73c9c74469f225dafc0a0c7048c2b824cc0cba8cad8aced11b8cdac3243cdb5b654f7a15ce2014e92ee287d06904d778512a1b1f5ec0c9b090b9ab439c44266b6be3d6a98947d26d079e4f7e849f3c6d93de98624e6c5f53ec02dbd368bc24a300\nresult = valid\ntag = 657dd04b970219edd63abf9d4aa108474aa316b6bb66bca76ed806c6\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6c99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0f216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = inva", + "lid\ntag = 6e98e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d206faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e432e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faede3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e732e8936d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedd3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8136d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf30534d51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936c78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd50fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e893ed78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cdd1fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d58b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51dcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b4f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcae417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02809b130ab09806b2af02f7cb9d39d12\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417322c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02b09b130ab09806b2af02f7cb9d39d12\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417022c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f0a909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf41f222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 58\n# Flipped bit 216 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d13\n\n# tcId = 59\n# Flipped bit 216 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d88b\n\n# tcId = 60\n# Flipped bit 217 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d10\n\n# tcId = 61\n# Flipped bit 217 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d888\n\n# tcId = 62\n# Flipped bit 222 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d52\n\n# tcId = 63\n# Flipped bit 222 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d8ca\n\n# tcId = 64\n# Flipped bit 223 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02909b130ab09806b2af02f7cb9d39d92\n\n# tcId = 65\n# Flipped bit 223 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417222c8f144abd5f2f7fa00ab4667d80a\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936c78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd50fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8136d78b5f02909b130ab09806b2af02f7cb9d39d12\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf30534d51fcaf417222c8f144abd5f2f7fa00ab4667d88a\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8136d78b5f02909b1b0ab09806b2af02f7cb9d39d12\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf30534d51fcaf417222c87144abd5f2f7fa00ab4667d88a\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 9166179d1acd176c92874a0fd6f64ecf54f67f94d50fd083462c62ed\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f2de905120cfac32ae0350be8ddd370ebb542a0d0805ff54b9982775\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag =", + " 00000000000000000000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee1968e265b26813edf83570a98931b02b8900ebaa70affc39531d92\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8da1ef2e5fb0d34dd17c2fc1f2a24871c42b5572777a802bc6e7580a\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f98e963e433e9926c79b4f12808b031aa08816a2bf12e7db8d29c13\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c206eafde3152cc50fdae407323c9f045aad4f3f6fb01aa4766d98b\n\n[keySize = 224]\n[tagSize = 112]\n\n# tcId = 82\n# empty message\nkey = 26f314170b054daef5349804da18f969c94174baca2beeb009d47a23\nmsg = \nresult = valid\ntag = 816d7af2475e94713f2dc3aa3069\n\n# tcId = 83\n# short message\nkey = 17429a622dc18d38715b31f8f2b963108e952a6708f3e52d5b25848a\nmsg = da\nresult = valid\ntag = 26630777d85f777187630bb94674\n\n# tcId = 84\n# short message\nkey = 0acfe12d89acd7d9ca49bae6318f35b2fbbfc84e5d2c9d4954beded7\nmsg = 03a8\nresult = valid\ntag = aa4c4bb63cad66ac675150f718b2\n\n# tcId = 85\n# short message\nkey = 5a0680f112354bd467865b19ae956b2719e21ecee1a913bdca294339\nmsg = a0fb73\nresult = valid\ntag = 36c7cd3f290d1d7d332b951aa471\n\n# tcId = 86\n# short message\nkey = 46fa59aa524fe30a0f4e39561b5666854440dbd970bb59925ce0ae1a\nmsg = c8b2f557\nresult = valid\ntag = c1a8a7d43df34d917f0cb512c57d\n\n# tcId = 87\n# short message\nkey = 29efc5ab5d30e535357603f2711b6e0aa6cf4613546c23144436d213\nmsg = c8d9f5b373\nresult = valid\ntag = a8cc7bebef4cfcd5ac2f401a372d\n\n# tcId = 88\n# short message\nkey = fe60e0322035538f2b1de9de380cde35f291deeb6e027b5d829ecd1e\nmsg = 185e4cada4f4\nresult = valid\ntag = 32faa154396b0b62436e6bf937ee\n\n# tcId = 89\n# short message\nkey = 1bf7fcdf3742fa77991528cc1c678b98be9876a8c8c5b809beab7d9c\nmsg = 9c0f34a5654279\nresult = valid\ntag = 086170c46d2b0a76c61527c2d052\n\n# tcId = 90\n# short message\nkey = 32533c16f792ed0acf8e9e60f54aa173937c7194b882ecc3e671009f\nmsg = f968dc7a19afe339\nresult = valid\ntag = 3fb4eb4450ac4b26a714bcfb224c\n\n# tcId = 91\n# short message\nkey = 3cf28a476ce7eaecfc3fbf1b0859a042a568740a584c77cb8f9603ac\nmsg = dbca9e4bdd84b38934\nresult = valid\ntag = 2cf14eb8f4c7537e9831983bb5af\n\n# tcId = 92\n# short message\nkey = a2a8090aef69277f92830ec7404c032f8fdebfbceabb9e590968a77f\nmsg = 6b790a946a83364c79d7\nresult = valid\ntag = d467209f63a9bd3d2c5398c305da\n\n# tcId = 93\n# short message\nkey = 6f999929e91672bac35ea70f8ff8b9aeefa5489493c99b0d27797207\nmsg = b7dabb237aeae2be8b5e19\nresult = valid\ntag = 09b2bb6eaeda5f0229b8c35a2f54\n\n# tcId = 94\n# short message\nkey = 4525b96c263e4d2dab2890aa55f3cc503dc1206d9f1915a6fba5ae61\nmsg = ef858f496fcb7c3fabbfb52e\nresult = valid\ntag = 6f5ca7efcb9a70d0abf8425f42ca\n\n# tcId = 95\n# short message\nkey = f89401acb0a60d07fd733ed563f2ee241f4ecfea8114587a44dfdb0c\nmsg = 7d3c0918085984df95097afa81\nresult = valid\ntag = fc227f29b51f9c855343dcd0ea11\n\n# tcId = 96\n# short message\nkey = 58bce8c0d17fc7131d2fa2262409bb14663a6e68019f88299987893e\nmsg = 1ca50cd6c3f1225eb6c4ec4d6a90\nresult = valid\ntag = 53e103bbded7b825affa240f8578\n\n# tcId = 97\n# short message\nkey = 658e510fba4e2208afac98333f9e242bc118f6e79ef0661d619dd32b\nmsg = 32c385b75ae84558ca302881c51639\nresult = valid\ntag = 485f351e2a9a82910c3c949e32b8\n\n# tcId = 98\nkey = 6a41cc3ca7142ae14e6d979a3f890a331597e592dd74520ce4ea660f\nmsg = 78e3a770a8aaaf039fd4c9b6a1780411\nresult = valid\ntag = 331a58ed96fc8b9e684ab05f636c\n\n# tcId = 99\nkey = b8972b93b68302cbaa08d32904eae6375a66f3508ece3c9b22382c7e\nmsg = 3687e6287d73c9e3f679a50e7671247127\nresult = valid\ntag = 27d8113955026d4d318070fbfd8f\n\n# tcId = 100\nkey = bc570932abfa11050ad4fc80a6d5afe3271d86aa29dc62738b207d14\nmsg = d53202acd2ec74d746531bd9ad3016d0980e0166fb427a08\nresult = valid\ntag = 020e3e0c2940ce15eeb67392570f\n\n# tcId = 101\nkey = c92a0665c12e87026e1b344f971fdb0e474d450cba834aae40e2d21e\nmsg = 4a3a85ac09f5190ab94f73fd91d98f056015263c89ed5da223fc4675cab25cdd\nresult = valid\ntag = 922853f159c42b9e274fcef7bdf3\n\n# tcId = 102\n# long message\nkey = 6fbef67cfbacc98c63252b1ca009a60e8e3479769a2d449fb4639064\nmsg = 006e179eacfa9e1e628bb7823ee9609ae7968b6df90e176f772a79088d37e9b15cab312922aaf8fc6583a341002bda\nresult = valid\ntag = 0a27a12afbb9c3136202e02ae3b2\n\n# tcId = 103\n# long message\nkey = 700b09908174f1072e31ae8ccbda1c4460fcf21fdf146a11482b210d\nmsg = f772564ecb109e80eefb1d5a7f1c95e203ba4c980233dd8d13de3046079a6b2ca26dc3521e5e0c807eae7a79877c73e9\nresult = valid\ntag = 04c718a4cd8b583d5ffb8170276c\n\n# tcId = 104\n# long message\nkey = e18a20246ebe1b5796dbfe35110efc7637d74a355f0a6758d4a00b7d\nmsg = 77720dde530e6eeaa0e9af3311f7e99189d6c4f7d71d0a4207d62c766bee32020c92f5d5d28d5de4d0d9c94b57ec05f0c3\nresult = valid\ntag = 25ebc8611f4b636d892f11df2b29\n\n# tcId = 105\n# long message\nkey = 3c4585a775bec76c7d8b27b87e70a5863a85e6111f3161b3815f59b4\nmsg = 628c0ff8c432d74f4cfb77ba46b7cef67a48ac053cf0c18be41648736abcc8c6fbe4981529babd4b27866e34ced16d8b0bec456e14653a1422f5a62556d20b0fe4e03749d5f6e986375062dbdd82f6e9e1d4ad547c31530c2a31383c25ff57e879eae99d9b3a0da1f3c1dacb975067ac\nresult = valid\ntag = deb94b2d43e98926af51fc0c88dc\n\n# tcId = 106\n# long message\nkey = acaf94cb1a8ff4677fc586d2bdf981ac3a656b208215e0a7647b420f\nmsg = 314c2c25465de3427279dbc89436505fee6d37d56fbda0e5e2a49449d9dbf003027f2e4ef5c52f7af93fd80155a66a1cd6b9885b56d828058a0de7d247e19580b2e8dcbdef2ae46840565fd8b276569c19d7e185116ea11ad67d5fc27f4a6816ba45be5d14f3ba4315c74d1edb20f217b116be852b62a7f4e32b3e708ff9f7\nresult = valid\ntag = 5b0d7aec7fbd196ee69ed373e131\n\n# tcId = 107\n# long message\nkey = e490348ad78fd2cd5b51f2795b79e5805ce1d9baf1151dbdf995e1b0\nmsg = f6ff1845842b9e46f79adb1079aff47397391dc269bc0c899ba4087b58a676f5408c3f7637ffc4772af3e41b5cea51058bc528ea09bb4bd797594c798b0f0ff881695e98c08bbb040c12c5cbdb228d61cc99e332e963128d06e97ed2eefded2e1b5a035f3bea68273efac03a894dcf2fcc79a5696218595404b2758deb9a80ee\nresult = valid\ntag = 590727f344d8a540e5c5e0f4dae9\n\n# tcId = 108\n# long message\nkey = c8e099dbb60a8f19d8b86856b21c55f3437ae27f77dff9808f12a1b5\nmsg = edbc109bf28c8ab32b1238eff1cd14308cdd845fa919bfd8a00c991cf9a8d6b05dd8cc7d2393782949c899de79e771ef7d8567f32287623963048e6c80d91f0778dd63311106e9d0913c08b7a0b7253fa3ce307ac40ec55a4c445f5455a570fec090e251e8646bada1a486d41c3794bce5639732f2c6cfd58081c479a68c515f5d47bc5b2f1622a08d38a596a817f3d4efef8003ae430e6ae93b0a3ae8fa95a2ace3d24d90a9ef861dc04c13e38f6e524b3abdf9cce4fa490707c80c16e254b7a71af00a12dbf473b50b9fe4097ec00ab27e66b6f3022b0f101ee1a9f7fa8652e9f095ca240a446067446867f78e8352c4110794c2e3383dfedfb35e74a33e\nresult = valid\ntag = 33e7dcb0fde3b1c5b92506e635eb\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936d78b5f02909\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd51fcaf417222\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6c99e862e532e8936d78b5f02909\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0f216faedf3053cd51fcaf417222\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708", + "090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee99e862e532e8936d78b5f02909\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8d216faedf3053cd51fcaf417222\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e98e862e532e8936d78b5f02909\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d206faedf3053cd51fcaf417222\n\n# tcId = 117\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8936d78b5f02909\n\n# tcId = 118\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf3053cd51fcaf417222\n\n# tcId = 119\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e432e8936d78b5f02909\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faede3053cd51fcaf417222\n\n# tcId = 121\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e732e8936d78b5f02909\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedd3053cd51fcaf417222\n\n# tcId = 123\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8136d78b5f02909\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf30534d51fcaf417222\n\n# tcId = 125\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936c78b5f02909\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd50fcaf417222\n\n# tcId = 127\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e893ed78b5f02909\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cdd1fcaf417222\n\n# tcId = 129\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d58b5f02909\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51dcaf417222\n\n# tcId = 131\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b4f02909\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcae417222\n\n# tcId = 133\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02809\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417322\n\n# tcId = 135\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02b09\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417022\n\n# tcId = 137\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f0a909\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf41f222\n\n# tcId = 139\n# Flipped bit 104 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02908\n\n# tcId = 140\n# Flipped bit 104 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417223\n\n# tcId = 141\n# Flipped bit 105 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f0290b\n\n# tcId = 142\n# Flipped bit 105 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417220\n\n# tcId = 143\n# Flipped bit 110 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02949\n\n# tcId = 144\n# Flipped bit 110 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf417262\n\n# tcId = 145\n# Flipped bit 111 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e862e532e8936d78b5f02989\n\n# tcId = 146\n# Flipped bit 111 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216faedf3053cd51fcaf4172a2\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6f99e862e532e8936c78b5f02909\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c216faedf3053cd50fcaf417222\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 6e99e8e2e532e8136d78b5f02909\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0d216f2edf30534d51fcaf417222\n\n# tcId = 151\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 9166179d1acd176c92874a0fd6f6\n\n# tcId = 152\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = f2de905120cfac32ae0350be8ddd\n\n# tcId = 153\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000\n\n# tcId = 154\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000\n\n# tcId = 155\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffff\n\n# tcId = 156\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffff\n\n# tcId = 157\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = invalid\ntag = ee1968e265b26813edf83570a989\n\n# tcId = 158\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 8da1ef2e5fb0d34dd17c2fc1f2a2\n\n# tcId = 159\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = \nresult = inva", + "lid\ntag = 6f98e963e433e9926c79b4f12808\n\n# tcId = 160\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0c206eafde3152cc50fdae407323\n\n[keySize = 112]\n[tagSize = 224]\n\n# tcId = 161\n# short key\nkey = 77b0de54e893642caeac34bfd1ab\nmsg = \nresult = valid\ntag = 2014a9f272378fa1c9f6744d4db4861b52e61a19eb28320ebee2d174\n\n# tcId = 162\n# short key\nkey = 7346c7e4b118b24e51f4512f906a\nmsg = 506d4faf624f92965aa6b5c01e0c80a8\nresult = valid\ntag = c4e0ad2f62279898a7ede0f709a1ccb8c1004941f3c5074392e79533\n\n# tcId = 163\n# short key\nkey = caa864179f66e826a0ef3b5edbe3\nmsg = 73f64253706ce6b5094c24ee012ece9ac2495283dcd8c7f1114e81e4587d8ea4\nresult = valid\ntag = a1220745bb03d982763bfa7ce352b8bc87576a0ad5d46a0da08ff2d6\n\n[keySize = 112]\n[tagSize = 112]\n\n# tcId = 164\n# short key\nkey = 663a97d6b5493dbfa60c8dd087ed\nmsg = \nresult = valid\ntag = 0c6e21a85e3cd2cd413f36507d6e\n\n# tcId = 165\n# short key\nkey = b08c345a7c7166fdd33ce768c1dc\nmsg = 9964d80ee2338cffe28483aa446a6f76\nresult = valid\ntag = aa003015309f2ed6fd7752e49c31\n\n# tcId = 166\n# short key\nkey = fc9d2883c67534fefbd6ed4a9798\nmsg = a49820c194a43deef11f3a0f4eaa80425439fca9d9f1d7c8e665d6b130e4e908\nresult = valid\ntag = 1c2b96623c91ca9c5027f8f81ede\n\n[keySize = 520]\n[tagSize = 224]\n\n# tcId = 167\n# long key\nkey = cfa639656cd49f8d70f0b1a5a056ab4fc0aeeebc91338d067f36c47b6012dc8d856b8abcc4e1abffc910aeaee21b4d366e907488ffd0ca55b36a621aee0b2e9f0c\nmsg = \nresult = valid\ntag = 0ef4fedaeaab4ad52c843657047b19788a9fa91061b7a14adda8c490\n\n# tcId = 168\n# long key\nkey = b36d3d47a4585b401fc64c98eff56243d4da78863063d814e88f370b92576406d447fcf3d129a1ede57ddc56ea3a0a1f100105a95e83138cdf45ecf2a5992acf90\nmsg = 15c75a64b04d097af2371af380079eb8\nresult = valid\ntag = 4ecb2daa5fb08dbd836e92a51e200bb230f54ac2c9778f5226b3abc9\n\n# tcId = 169\n# long key\nkey = cf78b991382db5e8666ccb2333fb672179b10a75cf9e5a7699ae640005e19772ef6499a3bc97f12e58e835bb0017bb3b2e64c6ab44a0d619dfa0363484d1c991e2\nmsg = f661e598f180f25dc6dd76db8a9e0e4c9c272b9665a6b1756560c723b8e08595\nresult = valid\ntag = cd55cdb0c4f02b9f6148392993b18b4ff00a5e73b6f3fbf83a854aeb\n\n[keySize = 520]\n[tagSize = 112]\n\n# tcId = 170\n# long key\nkey = 3772ff6bb4e5b2811cfd4d6a3d34dc74bca3dbf89a5817b79d8472a1383b8c9afb27b3006196ce9966829eae6a313c2d724d995f4def17117c09edcfc8c0cbbc93\nmsg = \nresult = valid\ntag = 40beb1d3aaab25a403224e577770\n\n# tcId = 171\n# long key\nkey = 2ba910bc0bca90644cb21e96063e2cd85f5dd02fda75d353c9b51eaf45eee94c165ca6592d6cfdd987bfdc1cba66363d535a14b2f7ead841b17c4d76a5049105f9\nmsg = 7ba461040de9ea3cefd4809124f78b39\nresult = valid\ntag = 4d28a926df1b188e85d092bacf11\n\n# tcId = 172\n# long key\nkey = 7fcf3cb1b1c5b537492aede4689284b5881935e3537bb7307198d6518e7a6aabf70b50b44e4a8dfee35e9f5cbada7447e511a37209390fcd171c62075c6a8bf1eb\nmsg = 83d29c1c4d059ddb0d2aca787e5b701bac3953fb9bc72dc87b1ef92a582e9748\nresult = valid\ntag = 392ce38f7838b2f87163eea00b86\n\n", }; -static const size_t kLen81 = 54342; +static const size_t kLen114 = 38438; -static const char *kData81[] = { - "# Imported from Wycheproof's rsa_pss_4096_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.4.12\n\n[e = 10001]\n[keyAsn = 3082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 492e60b828a9847501c7ff46a4a304ee7bf61ae87dd88cd5598c76289a70ab3afb7fa9efa3228a1e826241c13c2e120d22cd3a38a9b9ec5826a9711bdb119748e0f7080ccf917e8cb53f6f21ed19f4ffad9efd94c66e329226a811eef928816b5edb3b10d1f483b64bcad9b055dc78e99491560f59a598001e76a0bff0ddad4ebfd565495e2b523b02dc80050b64db4a200b5ca9efd8a1339d6cdff6a82dcbf769d3b0ed7ae53ea8f1788eb025e186a5eac02e3e1fb1f0aeec29b2929c7a718c32159609f973109d4a876bcecdeee6c6418df27fa46eb5cd238e274f94ab571c968b2c4a838cd812aa90e4657b95c0ccd68d60bd7d33b6e291a6a13f68e046cd41ecfc2bbe35fa9b4a0c17d89a708f89f975bf5a5eb9abc812b0c498d93d2d161f5c7969afbcf798029f3c14efc3f7c265b93fda572d265e9e116ffa9416e111aad32072f61943e9f0754f6e116ab5119ed09bbe245022b6e8bfe35dcee4a53ed375f5451c43f38f6eb55b48e386030cfb76c408c81f606886c81aacc76a999735682413069cc016f6e390ea2df7e8e74d088fb0643aebf4899ee8177a4a5faea3889181612ffdffcdb3fc699d578eba383e23e1beb68824c0bc7f920afbbea8ce7bf2b7c3bb40f33c6b7c8fb6cf73e6e2f3679669f235ddfebeeafa872918581d99c84d6dc37ff85949449d3994982d332cb9f9b8aca691651c4b63e58f6b38\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3731df2cf46de010d06775044db5ad8c98fcb8bf2be357fd39af55a864395bd24fe7cf104374159cfff1b537bb26ecd67a0488ba7a124d8273ee0b3cee00bf94c5d34900c4ccd6e200cac6e90d97d8b4197ea78ad36be7a4fea6e1b43b1ed954c737bd6ec6960945f24308b085e255c1142c61af876995bb5736ae19ca0e1cd9b319634ff7103a4dc89eaa41c00cd173236c275c463a1cbb67f65e45b1bcc4e10c7f3456911e4f9ac4cee8b43651980dc2e8c332e5452e35f256463b96bb21799e22f4349846e8a2583763226b3278134b9313757163ce6ce0628376001fca63c535d384a6aa7cfecc29ebbb5cf6be9d2b211464e02a09c089fa63cdd9571f3fc559bd2b92b7a5a724d3b88fb4e42079add87ae188a983c11fb769d3ce65fc5aa27dc17b6914283971278a749101e38d3b92ed2817ce2b37d4dbdec14f44f2b015433cd6e5a5de6d803e95b8b8196bcc4a77ff6a8419f5c78b4dcfdae0f9f98e8ab792cdc18645a14604a604a417abcee8051aff0eab887f235b1c6143327a0db2e00a63e4c6b8e002f21c86163de68e49c766fa91ad956c12d36856cf58324d417b4898aaa6db3eac372f06ef21d7a7e86b540972dd4e3f7afae7caec8a692f31386e7b3e8b934499a945cdf556eae3010cb1ece6a08d0dea9500157e78117d0f4cdff096fba973f7c04f79bf42a54e4a82e5456f065bbe9382605c444d21cf\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 2b981b661e1e244b67e1892bdab545edc9ef68b50b4572a536dd4a40f31195648b8180454faa8765ba19b7ac6a59176c1a2c621e6f4131af96beb4ea47252d7617b9d8b432b5cd900f7b328b0013364a520ce46ae66a63b7181ab60b514839ec8f6bb63ec2f83a2a142d8ce532f63ebdd3f29ce26797f46f68481818ff1e00c47df1e7e8d809737307a63902c94d9c2ee5c69f1fa0602eeedab4d7f6d0032de1a8294c117ad2aa34f1175544f2bc1d466c5965ae5796bae216cee8bf7b91f9746a97749cce0388f8f443d14317e825cba2ea278045826835dfab50091cc988fc12d4913920cd625ac321df4d89175ba3f49f89d372318bc222643ab888246f8e5ad64f227be043bec3828cea0bc0229be6e71a035dca97bfe0c2f34ce03c1ee9d084d19a6d6c301168129a6589cee1119cee84e35b561d1f658b2e4f16c2b4ac2ded8ed5757ebec2d5ed59c66f7bd932d64c58af7fc16af4d3f6bc42897114c9ec537f8b7ea86752a2a26133a7b8085f4d438ba643f7a389a1c6811c2ee4eda48060d27e6299b44c8d504d280ca56ca49c246b5c4c897d3e1d352e047f735cb7e30ce87061ef267bd9c50e7de77032a162ac9a026e684bb4d0e8131a90240494418fbe471c9900a6b322306e47915f83cdd8e525566e8a71dfc869ee5c7e74d33ac8646d7c170ff82f2f3e5d319dc61cad06235145c031d03cd420fc370adb3e\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f44\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 66381e10ca91edb043adc721883b8c005eaac4daf040379f4d69a2bd7ded69cc6e85d80a6f3ce8aad523a5d185cbb2fcebece5210feb0318065ced244ff73830cbc628d79572f7f0961c111883b9c40336d110cdd4dc4b9a04ae4a0380e8b17f0667b71b2c5bdd1c9b48c4e83694820d4cf4200051bf3101559625c0d06fd0996b759e9f4c689610e41655b262957457a4d8341c65bd89dd438025699dda37aa2d051c", - "d3c974103aafb092e865b1397661be3eee3f95d7a75d9a2ebd74e6d2cfa54ff0d8753130eca1555eac4bea45e90a6a37d7d057ccde4c32e43c7499d5c38754ce950308fcff69d42aa4a4fa85e6d92bd20d605823e198e94af5ad65ca4c2fb919391f919aa5fe048ff51a506f63063cc5f777fa70b20cf759a0b812b2527265fc7f32a40cc275ef94ebb4a0410280ad658e67c34d581b5e7a17c5629be34ceb70ca68f40aedaa3c9b7dbcf34f30f12789909a3540512044bd812760c3f76dbc644b89760b54d9e090dd9cbab935597c55fdc6793f8ef007f732732e3d1fcc3e3ed253689aa29acfcf85847acb74a722533b0b5debfbcd0b5388f6b19e8b9ac47753f8a616ed9a7e4163ce8669437c62271bad3497edf3b655e4d1523cd8f3448c5d07c48dcfaf1e1f8310baf3d3707ea23288911fdf91d7379738ba8fee9ce525ca0b9c4c03bf1bbcd7d1369c0d2f5e0127ce2d1f95322c94d4c309f2e8\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 134d55894c80eefab7744abbc9fc5cbc087072da8243236fda9df5ddedd81d23f0998061ceec59d1bd4fa2f404547056f9616f77843330bc65a2d2386574ec9198b2abcadee4139074c3208e2f09eec1e527e26b78b8773121f852bb8480e22b34c0e1cafe9bb224ce6243c46c03cfbd0fdaf28041dba177ced1a2ad70ca2f1e7dddd6cd137732f4a774e47eb59d8225d4c6a507f8f273b600a5b6449d63924b3a0cefe987cb5998dffef835dfe3a675442c90d02067c9b3ff0e3f1d84ce8801bf366e040710ad2c08c9f379bd07797ed954d3e15ef1350ffef88e9bce7174466358effd2494d7e174ae88b04e17c5ffa7b63bb6cf194d007b3ac22113fe3a1dc0c97d3853aa67c892d7d6bc5b0be6681e18004640416587452c856644ae6c07d135afae80fb80132c1faf56c5b224923cef5abe9969b807023fb84146a62e19bb6d8e5af0475e07f48b469ba3178c99741af6e57aefcb766ead4ea6cb3d172532704818fd82e12132b6329dbdc62e4c9da1fee2cb19e4f60ebfebc681a5b892afb812e82029123a7414f56f57e09731fe107f682f10a5c31fdec1d60118cc3646b0284e1948b2bd37c280135ab587960fd0769629860d17c4349271267a89c26c5f5debfdf40d843428af1010f87ab73648ac1c698898717889c38be7a06b7dfe9f63a9c7a19a77d61e3235ceaccad99cce004d6a870b27cd13414383ef4aff\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 7a7848548b15bf23e4dc1908e5b3aa8989936c498e77d587e64ebc9b335ce6f400a3965c027c6c248afcda5c80efe8d1f1bd9e71a5c459aa428a4ae1d1cef91ae48788f361dd440fb3cf745c9935664e43b81e9f860985418b61c3afe63b85cbd07e7dd3601c8ef8b7467694e3221ba4ace737c3134a8bd7f7ecd84d1382a93e5c9a6b69c9a8f12cbd612e48e5145972a1ad4f92cb0a57f44e0fde4548d231a5ee0efa8698154c66ddfd8fdbdd41d1476bb5d8852663e4b7891755ef9fa7b5d508b190d59270d32a0a7f32b1a28570a7e52592324fc461a32bde7e2cd14b04129a400274e4183cbe44aa4bea3b4680061b119a97da65c6ed4bff5f2f59193ccdfa8d021816a2b5d32ac52414d1c51f8c198f4c03e0993f8e47c268598d665c2b624cb66ff02219a9100adb3ca9674ca1b63d77d6156307efe953a489529a1701ceac83ef1134e7cc7aaa578fa4909e9c4c0220a5c882433dd3f0af1d87bede7ad979ecc9999cccaec3c4d39265efad3c39809ad3f24fed3982dc74c57ff8cf1578d940f9c6d351aff9cdaa2481d0f355054389ab2a6edb6b5455677d828453cd6aa21000adda95644125cdc6b4a4f95cb69a1abd23b46603485e696dc419cbeba767b2fa7081e1641c4b2daa44f5fb2b9a6513dd12d6f12f0f1cf7da5a74223da8dc390468e46af16583faacb7fc0ef4c095c641af4d76be03e880d4f4e2c8a3\n\n# tcId = 8\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 5629382f987048f03b158dfc15ba27891417674868a94a11b82b82fc412338086390517bc55e280e0c5b6a152c5e44eb25f9c014bf66514aea4f71f467e612b9242186276694fec3b754f30486eec2b67a81b3dd61c70e87fce5b12a75d5acb30ff35e4d94601deeabf2d5cd26d30dd9ffd4106a7247c9149fd440d2af4422b190dff1e891f842c3f5f688f10d07bc127f94c26ae506c38576a9ef93de3a9d47db28c0dc46d0e4d52093039dfbeaa7079d87623788d00c119749c9500bdfc7d980f7bb233c040990dde0800e19d428a3c239e2ebdaafd6f174212ad17a036d2ff31349e8964d5594802b924a33dab69d3d9ccb97edbbe4063bc1dfee3e9986716e2495743bbd4bcf814a45df69b18c46a40659aa6cc61522ca5e395f292e41836dbc66d15a803347b1cc098a7900ff319068acb326bd5bbdb865ca4f391c6554dc9b51ce52510531db7a70d0624869a2d2323eaa54e3b4c49becae203849108c00d6742a144b9ddd7a45132a2dc2b42ef495775c3cc9fe9312345b3f1fad6c13e0e7ba92fe8fd67924cd433739ad524561b7538863aeb16e139779036d32036487ab22e029649b89ebfb264ffde09c38a35258beb29ce46d8bd873614a1ee8e2b7d133da2a18ba14e2a72a9f83bef8332e6243f32dc25582d19fca6d88c1afa4f23837479832fc9834496bda34fefed066280e3fb73cddef8c72c5757e3417f5\n\n# tcId = 9\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 93cac00d29dcd13c59c08c017fb4d1a1fdbfdc110dd2e87386ce2357cb8623fd167c679707e89185005b185dba5458363d38435c9c49c4a1482a757c67e79c88bd715b601f10b0499423c77803180521f99fe2444d977f27e86f557612e9daced3ebe6e142ecf3ad74c32c395c3fb925493b8440aa6b3183b6283c56fa1625cfffe1b96b1f1f2a906c95e02195dde9cab260db36c31b9f5ac137c575272016d6fa33be2f0434b9462801748695a9256e4069a64104684ba9e098310ba4dc3cc2441fd8f250ca080c7d91ec08eccff15bbf7b4583fbd35d8535befce82a656a6c70a0583d30423712d557f8a1e9560977858a1e4acf0c196c2d92fcd4e9d51e9b811c38477b90928e8af3bb19bf5359003f7acbc1de019ed7b38400acd10eb766cdb3118cc374de28ec2408cf43618b970657cb3307f6081461d90bf9555ffc1df6bdc26a98d54f5bc212ae51db675e2775e997bea806139a7f4d32c75eefca768cd1eb707ac75942b4bc8faaa640555abde6907d34666b4e756bb1d7755f6af157579b82801ca06f56d2153f12000dda261661a2e1b7a1704906d629e116fd3cf1a779a7900144a75b400cd56b43f9676f54b92fd472673af88d249bc34b7b696f55eb08bfc653c428738ec08631480d0caa2eefaa865f85f14f6e61ac0078473e558fd826182bd0a3ce77dd54de5a9d78e3e4d3d46c136b2664bdb2e70d3a21\n\n# tcId = 10\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 1590f61a82e0a6f331352230a995032ada91580ee31af5c1683b3efff9ee2c48ad5c36a0a2c65bbf5c7d579685faace7dcbe706fe82003124b94a05a27558ea8983eab69fb226f8605450bf13dc0c8dae90f8abaabcaac27fa8ccc2e06cd37cb1543c138ab80b45d715b6c504cf1a7b82554110de9bb52c7054af4eff289d00c9d56b4a6c933bd6f3c4290ffe4255aad546e5e4e71e5d5b6d882bcac33831ea6069fc2e350fe3776952a5832116c971356af3f1618aec1c466fe50ef64ee9e936acbcbb61552be9d6e1362022186249f4e6ebd8c3169e11b599f6645b11b30150155b0bb03f3b2a4dc585f504b0fa3149210435d2fb9fdac4638661725211908ae1c0540688b71b70100fd12584b19ed054d25aaa1df407f27b9d338ee5b9fa7274a29d580d0acb81c1ea182b957c22139bda8a1c7fca529a6df2089b0c3d0f03d3d1799bc186b07aa22b7bc06f69a80e423e86a239afc819232851c1a18337882835144c8b3f01e632ebc22db346304d794ee1a76dadb5a6f5193bba3b982c5bbbb7585dd7e181633dd92fe01a0994ec08d1054eefb474f45561449be7dbdae57fb1490e533014c0438f57cdcc582034a94c07cc6490794ab2164013b5f2ad5920326e83d9b3c216d3d3d2aab60b177c65b8af1db955456c992e0009eb9270a4cefc04209ac032314142e1c55b518a7b439cfab324fc9962a2c916c14cee7dc\n\n# tcId = 11\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 70c6a2593c3ce4bb4cbfbc51b41570fb966d50bb48f8e9e6cd294e99bf3f60271c71965277d8f85e280a012c5cea3f3abf9370d983728bff790d93d00813012d286fe4bd7c36274ddc47b8ad6277712f43469811b7dfd77f65839952b5edecbdaaf590be732e45253e09cd98236b16d2157ec762e7c294dccfc4db19566b1f365e91f1169329a1c04e42a3f60c0b2705fbf01dcc933e991702f3c0ff52280014f6b8aab35468619cbdb554a0c6840f4cbfee9a9381c7157efe29f9ff6c7cf32118326e6754012c1d612a8e3fc65295c48d5366a2d649eaf3544fc6b8f43f637540832c5c56e0e7a56dbcd76e32ae7efb41fdc172b01bfb389e5c5df488813a1034dc5cdab30890599cde5b0da830ec2504ebc708e1a96a8571aaec42045d701b080c193472a80886f3a68b2ab330fcac623ea99c3eefb01af168626857d6c458c0293d5d6c76e87cb7a91c3bf62901a0055634ac21688425d1601635ce0f372963e9065195e523d6657c1a10eda3a90e21817150751c7ea1682199e329e8d60b6129109378f45dca594b97d29364d1e5c9c335c7018b1eef7a65fa2741d5e6bf161376a47b0e670ac4f2edd43ad1b05e0d847c74aeda0affe496a2f554d8061242aa705c713ad2166bf81f71c03703e1d43af05455c53a5adae6714302b249b2a8fffe2f04ca1f5e39bb22afa94cf9429fe99f5359231bd93c5ed008beadcfe4\n\n# tcId = 12\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 3ed784b228ca4c6d8600fe7f18db69099881d3ac4ce0577d4e46e10adb3004f213796e9af8cd78ef116f373cd1a070569b49a4ab55f82259410269db674ea4993e7ec3ef834ce32318856142921ef33ba4bb6319ff6118dce780cac66d7a8315c12a92437f446c851c657dcc5b978d454250d3fe9513f787a9e5fe9765be6a92d2a970fab69933e56b692e2c579259105dfe3f0c54da11c21ae0f965c7f8bd15b3695171a2b838cea7085309118dba06cbf83856fcb927569760e341bc5c9dc7da5906b03f74c426b782c418f1ee50f614982f5188bf86894e30770a0b8fc7b02fca221abfbe64356e9bbcc0eb47c5700ed86474006d308ac4c1709b88774b101dfbe0d203c91edd140532878a186e6f972bd70fc7d0527b3a4337c9a715ef7f9256a1e5a06df5aa4fa6be6416143cebeb2d2bd039727325d8aab9b4fef2a31465bf8fac21d27df08db6ae22281a0615d252ce3eb8e539687ef125da304b6bbfe2518b57c95c1d81bf5574880874a49d46cd9a7fd535d9e7d04951b4c2e03ae15", - "fc562016fd6f7b08ea5b427a78a2d8770ad98df16b94ac918edd0c4753055ba14f7d1b253bdc37f5df236d70b0e83b4bdaec9bd29c558dd708fed46daa5d4e3312c08523a0066369fefc7a2ac70ceab29a3b56928317127a558aaaded7bd6855660ea87d4defcc175255894bc9d94d5b420a24d06c4817bfc4ae92ae5ba4ce2\n\n# tcId = 13\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 924769b488c2f25bc1d2d2ac9b2934bf4a00122bc9e635e8b2dc3f5550579fd7fd9e072bd8dfeb7e8917045c7b2537b96f8fff9961115a8f8e866b35cc1444633877208bfd1410e1ac91fe62484adf7e8c0eb5885859c0757590e34f095f388320ce455e4df56cfedc7b15fb5c9d95e696207cbddfab63a71eeb9ebd4aba5c214267a6af1524716821a5a2693702e103c3f9b487235a3fd3ed9debcfa51b5c796fe2916746146c07147370ed15424fff4b07ec133a92037783626a0a48d2a3a440a611712ecc7f28d4ab146d898382a2b25df98e27e15e168ffd725c57077e86e2e88cc015217fe2ede8978e4d85acfb66cbd2fbd36936b0292fe63650ea2280f86a9d3ca427a77f4f9db69f117a0e41ff86e98caf36072322201c928c125c2f4a19358c62ef47df4a796d67d2feb9879e3a195895042a5a8028bf9e013f8b142363a1a192a2e3bc96847a515322de750fe346ef150a14e1adc7cbb6d480bc42dd06a8495c4e6ed4ea6441ad719f2edd6696da0530f54868715bb25e17d492b174b77a992e2fd997bee727a63e8cbaec87de36bb700eb4208e174e2ed437930990fc7f5e58e59706402565e52e9f207b4546514dcfd84d74348ee93e90e9bb0f4f288fca98d526ae8876779112236a5446cbaa615d8f6e45dc5c351ff45fcaa7f9e6891f09a620b2b12489d6ee3043c86c35b0992a086a271d78a37fa5ed6322\n\n# tcId = 14\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 1db0c28280679c7279d9f4ca1b3ad582da63a80e18ab2baaec5194aa6c2435cc5f7c3ad16e9b3e8eae8a9e33a7dceef69588aa5b0b16c184ff54b60c41c687b77d849eb36295a7aa3590e30f21f2768eeab26f13135ad5353c889540906da7021ad10751876587888c25247584dd4c7e35de68d6900676872d7aa84dca74cd41390c01eadc982359766fa6cff61bd424baa7cd46fdc40a17a97df468bc200849ed315f4f53d6f24a0af0a1b51112eeeee438f48ebab9c396f4b6a0dfe6e23beac92cda74d5a762bf7591da988341a796ad7e6cd72ffb6df68b081db763a48eacfbfca7132f27979af705089cafcb774e592f92ee06fef8c9f6635480a0f84c89c2ca4a131937a93307ea76326f2c1627989c0dd0eee1b34371d78ab794543124ccc2269f67152f409532e9c1d1231d79e5d6bcfe9a153223038a1fc2df9e5c50739edfcb6e7157e0d885105b11be6e5a55a950cf48e827961c00b556c3f52554ddc9ee9b1a0e3534b724de96b1009af28a3b2d2e4359e674b76ff7bf79d9d6e52db23471c9a3d430b05e85edb469dfe566441e5bd565621006e1d1605b8fc45b2570cb06779b28283834708485438b41b478216ecb9db8ec64158159bfdf84361bb1a2839a6733db28d46f99e2bcb704b55f25cab22c7436474c68fd259e86800ed657b4a2624a1a5de45dcac39c5c2d04f08792b9a5013bff0b6da1c1c288b5\n\n# tcId = 15\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 64a883f439b07c8b21b4150c73cdf50f72f6ca2ef90da34bbffe5c92d37821f7e6a7a1d36904ab5d9133cb82527a72759bfa44c8923c18551129e6a6e3851fb2d4641c62e43f7c7e4c740d414dfcabeb37d40a5ce73a77810a38bdaeb134e5049b29c1486ec401f5e01aab83568cccdf7fe4825d3f56a05875177ebbfb792e5cb2aae418fde5b1e0f63a3e83d45ccc1f8549ef6de0fdcda92de90236560a514dfc520920de4f57325750e52acbd3b0bcd02ecce288e2bcd5058d40c647d9fc9e55276948f19d7d67608e444b632ea1661df452cdf3ab9fe6270db4dea4013d38c857d26685fe31ebcc3a339aecf247bd2b1d7805ceaa22a021523da3522b58cd4f1933c117bc289f20e0aea55bf92e19e824681b2a9b93c9680da90204bb69887cdd774c213368608bbd9d3fd2f567ecad17b49f15a4d55564008f1c27d4526568e34fa231ec5c5ea0023be8730b0e6eda39b4bb96069dff483c8cf303647ff17420a3d022a304be72ec108924a4c84579b38c810988551a76043cd9aa54f763077e4d2a4473b3da44ba857786c6217fd200ad7c0bd5609ad6d6c85ef5fc04a0af27e2489f367ea7f612ab825a73a1fb7b4cd9a7d45bf4cd0a72c9bc54ac81193645b14e39cd46181a79371bfcfcb9359a6656105f79c11ea7053acd4497db651f98f593d8487a2e8f2d3419945410e580c35d40771022340c4c4d6f227f91a1\n\n# tcId = 16\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 8a5225fe5edbf9240c281f69cc26c89641e258b5f21f56a5f11c681c87f6f451fc07490fe6b1ed4febed4aa7c010bdc312e453a599be2b37fc2f1a079ce1868e2ee59b3e73c527819238393b8acae914ed42c9d2d7641e697ca8946d2b53879d33805fd91f56e608247f1c6744d8b8a12e02bcf7f15e2ba176995f15a6458a926b77e56c2f3557e716cb7a730812a1f6798159118d9d95b593dc45eb59ffc9cd4e636b9b8ac8d9718e0e89269291fd42cc2ba7b379cdbe8e443f283b7517ee5a915ba61cdfaecc9203450d70db365588043cf777fe92e0aaad484cac58ab1ea442a2ae62f5dafb2718112eab650d36743a9735621a18b7aa5dbd9d2d5122afdc3b8ff49d91ee79af3743a0010bb8e88b6fc766b98425e2660af1b38cef8b7ce5b9f3432a7358fbb07f20c9295a5eeed04a586bf04f5f9e8b3425a7d0307b496848da8738cbc267052d7a679c95e799205b4f7c00d9cc668c40cbd6368294402e26bbadb9690a99945d8fab81c5d178d72ce38b0b47b24043b27404690af103b7240595134faef4788a6106234f40e2cdf06089fb602198562b18ecd03ccc58d3e98173a9093eea3b315cd9349a010af282f3c485f92c0fabfb774d6127204a254809585c4890622d98659752276db7a890dd0cd4a6632004651bb194b056ca446c85cee7328e80da15c16c960f514dbe8fb9cc114330a160adee4cd449cc1524\n\n# tcId = 17\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 2f50dbd395abc6fd0231b9bb6103018534b39c4d60d139615cf1c9271185c5d3988e99735c9fbbb649e3cfb629d73fa9e1249180606f8e8621f3f5033e5cf7f67f4abea48b53eeb5be67031cb6afce1b26538ca318650b87317f6129f9792f3cec4e98a56f2d7504999ac1fe46729fb390448e5353b999a52044d2baa92f2ff664ab5a4ed82911c5c9942a3741fced99b9437b102db72fa5d1fa87929887a2e61ab06dbb6b8a39659f41f3ae07061792ccf88802a6b17aec1da1c35bd85da150dbf11b3401109e43261a0ff2b22cce779b19b5f2925b55cf143743600ac4c7dcfae7a17970da3d52d74ebab46744e214d22da8d1aa8021c8b47d6e2c585535025c19335668e2d851d6881a594d03852b45aca4fb10f9e85f053a0ca532c40cc0537518baf7fa388c2c0743cfd6355dde1382cf2c9ce1f418be20aa0f3be147d0c9c8756e2c23797fe9f3365aef876e793f3636608b6221460cb76863590b3f5f56f6a5cc0b0ec4d56b40776d629eb32c7e1838aeff1d3c3761edeb91bf62682f7502dc685e29ff1f678e287efbfd364ff98088f42ef58ef2a50415531c1021a13c96c080f62842167239cda8209ee3641da51f3711f0b665cc88a278dbe2619200e50037577c9adf0d78be3879cc1a362f673ccc3e03bf9a39f4bdc10d7f044101a02a83ef7b63784f002565c06eecc819483433bdfeb20b5f91185be6adf22b\n\n# tcId = 18\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 0898add7b127d3f46c4eefd56fd293c166e7b601caa0584059c62211f3c063b9a479f7f9361a1ba96a6a640f9c3c12b18820e6da9c9bd01a6062ca722d0abdd5a9031ec328ca8729e84079ea4133b4b4cea8ccca9e1f9b6a53fa8486ca20390a92dd5945790c371eca5c0958247344334891b12b53baa4b7df2e15307cc58420958a4a8cc8bfb06180174ea8228ad46f98725981a2a338d54745ece14b65f38bdc5c6bd87c3b2d81648b47a89afadaafd51bd9250debb9351f654a47708332411234df725ecdd0ba3ab778560689932559f9fe94d937fbe12126025f3d1464f7e5081c9f8b7f7a422cfc3584ca98b5f0277e97ce9229aeb208892f5c564157267fe59d5cecdde948647dfe7dae62ce6f39419dfa80d4d9336f874395a7f4f2099bf54227ed933ce9705efd1704f9a9469c781fbdfe8df12b13a15f802d309abb0c6560635a22e49856ede3c2a5271a656a76a059fead975ea077c4e632b9f13b8b3950f2b00c3834d63750098e792b824e54d53d6dc102a4c7de5b449d083436b7714f99928969c3499104efe30110366abbf71c6f8e4f069be0d246c2ef417e84fbe075d48aa65d82590c3ce862c518de635f8c6ac009288aba112de47c117fc47be80fd79f39e9831239c34cfa9bb54a07ca67ef318fe6efd6bb6f0049fe255846a474cbe28bf73099e948c91b0de01a9f60b80f21ac8f5601ec36f12e06da\n\n# tcId = 19\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 2daac886b4fdbf32ed9f9e66f1abd5af7266025d168620b051dccea674662e1a347ffc519345ec8d40d0dbb4a5d60317632b5d504a2dd56e89aad4438d2b824ead94b87bfa918ece96c3639fb1edb6139bec5c4d3366588992f26ddb39f6d504eb24b90580e475da022c125b6ca3f34251211c40c3e2ce95f9dfe051f728eab654d95a7ea5aa37c84ce0c2c3abe551e469e1ea3fb94b33b5c3cae230aca4a13d09fa6925e7603e2db91a17ea0a8ec77372c4425542bee8b8a5de029715f62a1992c78ee2b06dce17dd57796d48e3789e7f511bf85c15366d504c8266bae2357630e5c70985622dd85bdb6d04131ecb639c34295c49b47c325018247a154afd1674189ae2708ad2ba5c13135cb27d0e5694e058c9d36977fbe36f39aa8ef0f99a7b59a9af3bf3ef737c36d6e8f137faa38bddc62fdb1f1c6ca292cf606a41cb32253804f14a12e66a9851697268b8e619556cd00f6abd55b61d7b4d4a9ec8a7fc3ade79f96e47a2b376c881b96f0279d0cecb634c4031910edaebe92201d144d65f450357313fad99bf10183cca7cc6fdf52382a280d71c0b54a846ad7fcb2e62f569371ca403e60d8611a77ff4392c1da2a0792bfc835b161f407e5c279cc705483fa94db072b9023407f1bb1de67cfd57b08f6c5094eb2754ae1581a8471766c1585c1afef365e492c380b7e64722b6beab3c1e367b9d615a33fa1c13733731\n\n# tcId = 20\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 707ba25d4bd3b92daeb91154e68d056f31857c57610f808429bc5f0c0e4b52e079ce2628f78c9b0ed061764cfb9c937164b70ab7274093598", - "a7425d5e67a48c945ab8be4e7138d88eb5f0486c35986c805212366c2a9e775533e7ce71b1c35b4bde53e779ccf31d31fcf278744bc7507969532a8fb32c1073ee31e7277d9a6111450fc65c60afa0632f84fd2e8fad4d201c1dbf7b9ad97de8a8977415a70f3946a17dfd2e4895199775d6ff45d4785ec78bb5c54e26df4dff47b81d88fe70c2d2ee5e8bf83f507b6a4b8d747288e9073fdcdccc972534c1b51638b0f653a4f6a2e22b1393744e978a41856e6753f5460dacc485160d480d4d5bc5eec5ec3eee1e2575e2cfd10856701425c4de05966b0a6e86c9545455f6f62e9313022a60b4d34496db4f94fabf9e3a40be0cd77a15248fc2173a5ea65fe0b992528e0cd8a7ab2e911386c5b64d84c0cd0428fc2940d78e8f75c9e3ffee83b4328561760da96f7b015c2700ac6ffabcdd67a0d5e07db92cb8ecbe4842ad8aa0ebc3a1256ed03e0c3e8f67f51dc70cee8447adb7112ad7791dafe3d1319dba8c3e63a9837c15e3af11b0cf5942a8ef2750bd218ef7c266a756627b23b0861df5fc9cb240d49290aa9eedca74ea69cc8640ff746731fa916eaae176b492f5031105e38490aac5eb46df185f9d6e5f8603991158cc4c43744b03dc897fbbeeec00eeab8c7310051\n\n# tcId = 21\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 5acb1b66dbdc180df233c83a3b6291477a9d8b4fb7f0253d928545739b1c517defba99a546e291c23d1e925caf1aa51b462c689d070ae413fe1d88cb7978b01a28ce7ebf2f5f97df648a7d819dd028a53b1d604ac9edc62f62655a56642d087344e52083073ac02fe9b8ef7e61f7476d59c78a66d4ee07932652997bd756b24ce441f539e4c7bb3786f1e4676d7e4bb3ba8a83701cacb2663fee71448ff2124a8cc19e15924404bd0e5f56a7dcc5fdab8146d947010a44711c80409fe6b12297acac7b79943c8de00d15fc1f1ecdf9b0528b3004fbfde8fcb7f082378d97354107e47c48a1e3c0499ad6371480e88fd164deeaa3a014b18760074cc96013b86ec31bd967ddd41900cb9c2f3bf5704754a357124dc536af4305d58c8c88ae214ef3ddb53ef10a2c6211d55a3cbb277efd6be1b36d6a8ab997679399aa7f21444638902fd34d152f8ec2eda7467018c0546cb54233a62fa4b9184813b9d46a034b3d7a7f8f01bccb8a5b364badb94d688302598fa393ee8cf6e2179345b1e5d866e2bb5954bfd9d192ac73374ec4cbc6c1478cd042e4ef270fbfcaad8987b0e4e1c696bec8b1ebaed124a0b58c79fd9fae00e19feaa82d52dce97baecf82b5338a67fb536417ee2d0b8584a998486c770f26b8a58c8856439065b3a4b81627000a01e64daef83b146cdc7357833d447a4ff161d63200457c6721d6dbafc687887a\n\n# tcId = 22\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 8172c8d2dc7f58d3905698c0e814054a8d780d154d14b9d05d96fe0416e6ad01ef540a95920cbb3b3460e4b3bdefa26134a62e09432d0047e67c680cb7edfbdd65eae2f2a15a84d97886b0e3c46ab9fbbce611145b83aa313fd03ff001ec07b4a6f814f848cedcbf69669e03641210fd5636b889079343de0989031e37ee25057aa0bb2a793feff540f1d6532420a64ef3f620a0070d2c98e7182cf7265e8fe8909b8e2b4cdb2dd20fc0c1db0535d489d37f48d31b3727eec9e171b6467d63124d1663c99c019af340777e6f4b43bff7b50f3ff456bbe6a9938ce5e59f8497be33cf7e9306daa643b5bdb933318fc950f69d309989a262442584a877f114e31de926de13e1e18653deea56a0b5d4d825456e3bbb30debd83aca1c535aa8ac8553da85571ce4ab6e04d2eb292f8e5fea7649529e29c71420ba191c97c24fd9a8662331c7949a4669d2426e76a259b9ad5033109be2dbac49a5d13177162f06d5b6ffe55a98c27c859a43f918ae9b586b18c439f3c418cefcbac8f38af9f8be8fbec886899f754a50f319ea8d09ea8a3d12a658e05e62a43555e241314e246d9421022fd8c8fbfe76d3e26ef17fe84c79664f567edf8fcf6aa43769282d33a85e89832a4e81300c7f156d0030832c3f0cd5ba91c7b6f2e13d2a91a9732b69d32a58ef2773a9a74beb5fd53ad7b479443a6527022a367710428a1635592d90e11a2\n\n# tcId = 23\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 7bf03228ed95a2af0101321c3db174eb1f597c999c22224812ded57643cc1fb9d9de3ce9085dc60d9f1d40696f0e4c1c721cb247ab1fd2d1804180e5f51b3f8de75c489971e7e7098765e4f991ca5212426e771037a301af1c7ecd95a5ccd8367e2f6e84b63799119c7d0d5dde55e6567fca990c11bffdb9517cbf6726dc36d19a97641dc3ee44e568ef4297c7f96f3fcf480a87312448105a6671778abf9ef6d8c9ab289368560e2373f54c3e313b2d1db35501389131d1947fd7dc49570bccba2167ae4610a0229629da730d8d8d8218c5a586c5095b61fb600563ef660cf48dbae491e91bc07ea96d1575fb26e9802888fedb07a68268d9d76fea5f3429c96fe17f2f0678703871835788ccb733d40009c8be0b3242ca11f7153a4d906f230d56374201902167872d6322470d53e660d5cb4b65a2ac69b6bf6095722540312980aa2adc3d8d3336a8f4205e2e016587772117de6a357c20dce834cd8aa7d31c4444a235683b782e473ab60404e6ef8400ace3b8d48b6a7801c99ff1f405e888257993848f71e81287292790e1b011cd410e3e3acf31f280ab36ddafb0a3e1772690d053f077ed980c596d81d2628e47abbc3019d5277c70db5f4838581db0e572a2bb0187d08b488f2dac22a0358cf77e0e36b17b17664a925eac940d15cd9424e92f489a4d28405ed76507625504fdf489702f089de36a4300373a833022\n\n# tcId = 24\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 83a5b64effb15f9f46303e81ca509581874881b71b8e1ca08205b22f383e722e89666c2043a5c77362ce6509816d8cc7df36040eced3b7b1a8df22a2efed801dc4dedcfddae40f20c79bc0f8d64c336099f1773a7b32fc484ef01ab770dca03e071815651998bdb4b8ea11255480e63be22de376359c37b3019d6e264e1f7121de2e7f67d2cf98af80c1c4042b8c05bc79877de903740ee6d1889f2814ba9bfbadd6a5ebbe09de94e16fdcde8ca8af9933080124fa2ffc1e4338d1d878fd4c55dbbdb273e617dcdaaa76aaa19542274ca74fdceb0cfcda21547674b2c0ee936e955e8dc4aa366fc9f3f6c202a0a3982220ea8384ef52f8081823679e60095fdb84d6d75a63a563f726f5ec833633ecf35d27a9e3b7ee4a94133b1c5a15a6dda4a3f1957c399045ca096b4be079523d9f558031529e9173e7cf612262e5c9599bbbc2d94ef12301e23f9b2cd173364cafd6a3e3afb7582f282eeb4b2a1c17698bde6b6a82e88624e3d1737071b8c1fc6b5d77ced9b78f0c9aaffd78fea3bd8822288e0bb761092244df57ca49e32ee8213ee0acda5bf8fb91bcc3409ebef6c310f17d9784689e7c79ff33c9bc317921b416c08030c4bd02629061dffff19844d867f9a06ed0a8c1631bf2a55ec418a6003a6b5fde0d0ff223c8e689e93146771a2cb74ca271116af99c68605d9690ceaf833ef898a234dc0b70c684ee1c638152\n\n# tcId = 25\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 73342b3c90d9fb6a7671295d7c258b80bf907ac32b1cca59db942b80671478c42aa2214a03e4d7d7b645ee333d642dd19acc5b4eba7b50c10688b8044b6c9b765a8124414610b97b84e0fde8876360a53396587eb973ae69e2ab1899ce030aa29d2e83d9206d4a26b384dc32ff02508169b65ebb6fa5f52eb4c24ce41b5e467178b94198fa399b82e2c75055c1417d001ee9d643f9f6cd1da5a566578f1a2af94f7e3901dff3f1f4af10acbe6aec703457b7ed27ff17a77955fbbd527cc7897fa2375cee83d89ec509130c644f8179df5e0537d8ea63b8b29b734227f74062b43334065d4092a30f609acf594d917994ae9e9b256325f47867beea84e036c4f8b117b366b016fbdf66352c5dc6f95750ceb121ea45d4802aacba9b7c7d79bf2604a866d7af58a2f13671eddb7539c2fba46e094e92c129006552ac376d216bd0c91ce45c365b811303dffd2082a1213487090ff3952adc4551a2787ab0d52180d0d016990f243720cbe55f2c0d68465e9be883bfe90ba55d28beae531a2b6924c47fa7ff4222b4f20a2403657f3df30e423875871398ac26fad9776cf8cbbc3cebd735185c1519cf9956c457b2b7a3b8199979f2a0cd0922b391fe3ba9892980bc3ac260d789c36de616fffd525097b358875bb02f27ba2e23c8fedf0aa5635d6179eaaafca58c68ef2438be5ff9a8b5fd91972389d2aac7a72ccb6fffbbe39f\n\n# tcId = 26\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 545e9cec19e99d88ffef7d4c655d2f9b43f3c1516d04c034c4ec8f1169bd29b4faac01073bf2c46a6225ccb2347be24d1d185a8036b1f6cfdd32529c7f1ebbab7e183dbc69b761f8ccbe4ace536807c656dba7fc2ad315e7ede291c870e9029d005f7576c34319c1f1cc5a229abf2a1dec3fee015d60c3a577b1f1408e03db21029cca296c0bfc2955caed97cc18c8faef4ecc03f4acbc8fb6790e7a8d0b919a268b242f58eeab9933e0bdbd6e186faf94a16445fb346a341a19c2242e2aa922480e3ab05b96577fe69cb6070c62605e9be171625f0fba269e72910914aabfe0e953d14415c65cb008528bd73bdffd1b7ed09ef613b905b981cc7e72ae48429ce545c5699440037b66cbf640ee711c67f3fa7b7f3061d7323cbf7ca8fd5391ec929c8f33d51cba12db45cabc2597db12d73f5394ab6a7f3bae6b828a07b4240f887b246926cd315cdbbe3af8e27722f02ec8a4468c5980819b5dc9ef9b3240ba4ad0a2f1421b4efc5b9960b89baa5427ef5855d0e4aad5ae99b864b4b7cf85be717de8a8fd602af962eedd1dbe123a3c6b638468448764c034b64c94da5b494551be3e3b7bbfe521bd28f422ae66c89099578c7e16abe414fe8aacc104b89c713aa55db5a27758c0f3b4a8513f89e0a0c2b777a21410a12249dd344fad4fef8db7acbf2f5ef7accde3cc6800cec47d376debbceda46c80605c0eaa41d70688d3\n\n# tcId = 27\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 0e7e3862a2fb354a36843c872c8175c7feba440f5af01cb2080edca8d8df6d66caae40771fe11d3ea7af1c5c3a0a0044818ac2bc1bb764a547f3c3ddde8503330f324adcf962755b8708275056f1a38828376c72c8cfcb115834203654838754747bb1e3d8fb9b542094267f26a37a4e9eac48d277d7cf03b06d8e5636fc75167573fc858fd095409c9bf8f1039d145e4a7dc03f0bd6560c515f06b2a15f14eaad2a39d6e1bc588b082d2da518735ca6843a0e974becaf8e21234d91ccd18aa9ab068bcf5eedda08c4d371ce23ea02ff86541527522e222d260ba481c3660bd5ee6e19cb9b86747463e0ed2a628393e0a321adb6d5ffae8612a5c53fec44ae4a432b01062370ebde52c0", - "738342025ae7333bb710982702f6b4b5b9b22ddab02691000dd83816f3a5adca44fe6175cb24eaeea38d577450624300da57cbfe90366664391662a97906badf4a0bb67a7bca1bc8f4bdd133f969a89c21a9387a1243227f5d67e2486d4f0d1bba97c440c6d1cbdbfe73a23de51f857986e5fba7db761faecc98b9364687d56403c983689e59e5f1547fb4bc18045ceefdba22965edf816a8b7bd7a96b1290080875ce0f3964002b0f1c3453249e96e1239035bb8778a772c9289d9a645b81232831b507e23d34a0d1e2f35595de73d70e74f4c9f4e4213a1d19e9e73c4f22d211eaade00366e46b35ec004df6747a1e9eb6fe04e13e\n\n# tcId = 28\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 875ae0615590e5f07fe62b22bd19fa2b91a6fca64d786e1df778015e4642726eb6cd16a57e9a3baa814bde45f74ef5966fc8cec5e519ae52522e0d5467b5c3b1fc9840c1d39b1059efb52dc15dd90cbf8d602c663d30c84709b6cf87c5652305573654fe88f41e40f5918ffd097c3158f98a7dfbbda35904f3e0af6612c9a3564f7d6a2be617f737715913218dafd34339ac56bb5f3ec68dea257d3ed3bc19355d9c96e8045cb5399aac6ac0414e88ff0e1dc1114d226e0778d3679e123c52d6fc8a1e67bc212c03e57b3e0a9a5224687785a597d21c504ceffe7a8fb20fdfed9e229a36081e0699e42ec1bfee8d8fa3718f6a557877f789c51e0ecf38cc430c56d2ff28a4e94130289d7bdd49cbe1e01b9382631bcc8fe81434f14fc1b85f1d19e830d4aa733e7a9f3b7f5e95725cd4610d15d1b6838db89a0f3ec5418c687c2ae0c834729ec16c29b9929f48c15f9d7467413191e965eb15693b26f2a099d47749ee86f061d636f341cb64c8b102bb9ff21f0f1fba81ad86657a1c5228f56174714cbd4023bee481dbace94e2fb9fc59c79428395ec877fb7092af1c6d1b877c967758b6945e7b30c0205be731c755f7bd221f2e5eaaf729790c39281d9ed7e63b2d18d5ff62aa4081f5df5e084d901b4c0f0ed1aa1eba177f65689015f63d61d9aa777385dc85136216645c85f2c77b88e399eee1f298fcecbd3111085a5a\n\n# tcId = 29\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 94f9d111adc41e6dc4625bcded3f556a1cb7407456e252e6fc1d873afcb7ca79beb18a2d738dd105dd0a7e54fa969c99d450d112dd2569f1417e15d6f393d3e74b849797972e454fa3ad220f5546cf1f60180d6d70b751e28395348da109afc94e698eb51312abde98c409c751524a6be4862e3cd2dbaf126ec26c76381bc8e8e519944f04e645b904a8685b4cced79d158ab48545164c58ba1c8c662e75a0cbb9f5e360b6ea8b7acfa977efe49d634c10505fe355d57aeecae808977a3e80c8c1a295c293d696871083630c6f3280045e6eac582481ba74d0d637882aefd15e30fdaf2743b415cb74ea97eb92250adda2a514d41bcdebbf8302713f5d0d56b4b9b1b34222041bf5f4f5d64556523610a50652b52d89c8db18a2b567431c93fadcd72ef81b40e958c131d16f56d83d27c95f1041bd03b7e8771540e7c62373da66b761e46b2aeec8198dd38dd7074dd51f66c2398993da738a51b71fac106c1c7000791cecd96d168a5bbf8eb097dd0011d22a5b7e489f2350bf2d698466aee3b7570c3e6659d294c5e4fcbc2a4b46288d067f475a54c1132fb432154d89ee845e43bdd90869ec6a802320eb09dcc455a0c08ca72e0a79a82aadfa8ce79e3d21329f0f71a72b184c361390a7978f199e5acf55aa5a7b1bf13962882c7fb62f519eae6139b74ff5043ede0d65c6ac6af7f2680bfac13b0e27ef6fceb81e45928a\n\n# tcId = 30\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 50d81c073d09499d0b73a7511572cd485e2779e0b2309172a43847b9001c52582b75394ca438c4e358946232ef17596d4cff47dcfcf40661afa1d3c3d41a93ce9d2f681622acc2e4e4f273f9e1c5cc23b53c8c89ffe20e1827bea29fdc713ac1dc769df3578a14372d05e0d94ae44ebcd22d4ffa6c9276d22f8def3bd65bfff593ce2477685cc1a2d051656b91233933a9b107940abc716d12a5b3ec939ecbbab7a2785ca4be41e70a99f60a013d04a6b237799d8f1743ada6d5a97193d5b30ada75f57e540a64085d67b0b28d2d3618d52d2da4857d8aec6b05982d07ef918ee82db17182ebdac2d59de4452a2f43c769390c429dac2a34d65670e433c6e00afacd4664aa99b78dba1a1a39ae1a3ea6ddf067debec393046fe544ba9188904178c3b9358dd355fc2a788695b2dd2ab867f1452f9cabf2bd52031703b7e2a6d00daad2cc21bdebe9c3b45f9f164a1e3918998f044e18bbda1b7b01ba732395398db4d50e61085f42944d0b86c09b91e5470ff37e42f299a92d3a38b6b8e98a4dd1b1a8d979aa8a2754aeca22449e08647c09554739c1eb0c359157e87ec35be8fb44aaca5515ec5bda2bc861c08adca65c73a0f944a29db90081560789fa05a2f42a7c0dd8eb199e8efe3c9548cc4a269b0767a830b7fb181346876b3a8f0c9385885bf69b1ec388b93c4ba7aac60fde8bd4e4c9ea44c22fac2de7331df3d5fd\n\n# tcId = 31\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 7bd56fe8be48062f611a16d070328829b6e032650e54148551ebfae0c221dbdaa461fc0b837b41db093fd3e7eee34f6ea975b7e7c6a9c65c9da26b8b47a34d4f85cbb76f7f75f0010375c10301e6c656bb990919855bc3941f04817de84b225bc68a53310a2d12c522732c98a435ff2ed2deef13e6c22b92f1518c01d7a46fcdd650030017aa0d55b53256645d15b022bde6494dff48e348bf243b48acb6d5866b01c133c8d0fddbc5d50b1d41fb37d34b3ee76bdbee3be46e9893a64e3571590698444d9eee18308be2a61bf6e28191f052550c82fc600de6e01c8637d7e175399fb8b87aea136d002b589b7372d0476059c153525e63a90d0aedd48f2a59621ced9e6852c9644ecc1a60181b1cacf6adaf549a47b1825973c4d2926a911db41ba10eb244a45d582b9acf30861c284b72bc6ed4ddbfc4df7f96a2b6e4f962e4c8ebf27c35bac4cfd2ae63c1e335ab5049c3bc5e606a65b5155709b9bb30d5e10eeb895232bda1465443e19b356ac9187d5799e62e778710820ca4fd2802ba8c52cdad0bd12d8adda85ec480329e927a6ed41a8c31dd35b1444660f2f643204c4864590014c8fe35db260990fc731f1599bbe223a3d2f6613d393444eb6003cf53431db39691318a1435807b921be34e518bf2ceb99be38d607174a96e8cdef1f49a144c71584b45da1e5277f2ce4e0762c8f5bb8e48e4b01579de204cb80324\n\n# tcId = 32\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 1f20dc348e8b89ed3004b194c0bb635e27c643f70967d65b0f5d2d4ba55ec2e48d62074a49de2a73a34e5e4c0d172ab24bcb1025008c7d473c90b64f9d6991f3612deab90b0b535b11400c4a11261941ec9ff3738ec48cd6f0237757b26176ec2339e8bf2b4560abfe1a183683f9efc70876ac821d1874079d610a1f7c7ef80bf39f1ec1fa212136114438b422e4dfe65e8fb48f5cbe475715a67f8937ae7dc3ac913bde054cdd1636ee70d98233cf5f0645fd57a38da90428bf7511cd855431d2a2a5419d75c2199d338fdb60deb5617716f2ca73daaf02260deb1cda509ee0eaf457dae4c9f439ac00323c873bd6dd65cede625d3ae25568772823f402c5b354befe236edcbf956b700570c87eeb05568e0a50ee60d30cbb5b57c6c2dfd805126d1aaec535e01c81d62776e4b19c76dd412f622e8aadf9fcf3d78b34fb6016a550bcd72d1709b5b7308f74ad3c37fe0bbf4c707229c7f40282f09eee4be13ec48bf2f84b32d4886d0946dafbd0422fa49b1971b694b7dc55f7b4d059403df37155fefb9967b45db2bd801d9012b1cf0e2fd9b7a073868756d64cddd630a43a9447853b4214b06bd6bb4ccaca1d6bc01e79e328ed68ee4a6b54fba5b47521a2dee8d6425306e339356f97f3b19d7bf822016940559c1685ae93f7be27eb3e9fb49d7b08b0d5960a68524e60cc7561c7e61ec6049362aa484fba37902ad026dc\n\n# tcId = 33\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 1e7a63b1ad5c1b708c49031647934fbbfa2edc1185b1096326c8430bf94b4ab4f0e9401a68f94cd6fbe2d23623210723e800ed878c9fb417ec64bd3f38f3f08bae77352a7d409485a83dacc9a79ee25526af32d93b3c702cef4f37bfdc7b295b7d243accb80c256c9ea350120ab7fa5ab047229e9776ef157b26212e748176be885752308720b16664323f65d83ce70de21d4e2e7d5a633784e9d18f58be6469970b52c009639ab9e2b024cedac4553f88e42d8012e8172be9fd4dbd3bea1887f065526e090c3a5e7f28b416785a0fd33c92937383f0570720aa6dab92ad7f006ba8b17c4890864313ed0312c717a2a5906a8f101b7c2775d9609d26e76e274728b03169d94723919e2ae5126caa2b6dd1a443d21d4e36512d06c8b5852dafbea73b042e1a999ff7147c49ef19eb7f41cd31794cfa5f65d9d0fe626d08b6257dd88bf0cc39113d0c0d7412ec7020bdd5dfa7e9f535f4f2799a06d4743c5769c5c85229ba5d0dc39b027df702c6fcbe728887b0fc0b606480d3c0e0f1326a46a7223e3124dd4d27cdcc48c7ecbf7440967c2e57319effe5e416de26e60b995ad9358ce8b863f35d56f69ebf6a6d6c0eec94c917a90316db70e7f105d171700a17c52c4a1f9e15a5274cd96ca4e872c577f43b54cff898af42720f0d3ad00d170f9c0bc35fdf297046f6c750b6d036905fdeca127e6f2da3f5add9ccf7ad819f2e\n\n# tcId = 34\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 62a746655abd3d4963eedbf1ccb42adfd9919f42797c65d833ffc5c5177483534b2b46b6773d7b6b9f6a1a03803a2c85718045caa8995d0eef3d55c66491ed65aca09dab89ae1541245c2edef535f8ceadf4f74f1ae12ba9e922508b7bb157b38247441863aad682200e4da61b4b3c7292cb824158275d042858d15fb7ec4eb5aeb33dcd40f58a670110fa939ddecbcc9c20216b6996a43a3267b501a2d6f05c35a63befad8f6534b71448027183e45abd98dae878379807eb97aad9014a268b2d042bfa20b3559565b22def87bb0beceefcaae1a01f068ced30414501767fef2373fd8d8ae7d44aeee885462dd1cd2136e114a9e63085eba22addc0ade5887776eea10b594da2abcb245a03039fa151aeda0364fc66a12a15dfe89ad7678230194600554679e0c02d3c35bb2af054e2bd68e73fdc66540257cc10a0c0145fd17793f0c88d76670cbc62e0a56b98d82fe1f5ec8a85c0075763e1d3d873deb0fa57f127052971af34122b9bedc760b2e441939c33bf18fd9d49e2def61dfb3aac87eaa480a348bf32bdee4e7303d513203fe23165f39231b64baa0bb1495a868e20a4dc3dcdb4c643646c23bb1ce0a4088907ebedb6fe13938156f9811affe8288e13db8f45705229a31fda7476ff07bf6069ef11c0e19b369f53e99ea901ac8d4a1ba8cf92d74009583e00783add48b6f", - "7cd7d28429bc48c73b47539630b59bf\n\n# tcId = 35\n# leading bits of masked_bd not cleared\nmsg = 313233343030\nresult = invalid\nsig = 2f04e32e17a9a6991733913475f54cb18abe5cd6f7856a8cf12525f7a83127c20255149565983719e58b10c23fa70a27b40d723370bfdd14bad670b5a22b3446ed1473e8f012e5bfe70a1fdc1a7d826430e301405db72c815763e4c5486938de8f78b556648108eaeefb6d5a4520da365cf64ac69d2f0d2842b5650da2d06639032c4f90907a3164f67e0abc68a4bb86778d6f0c6f8c1585b76a73573deccb7010d21e959fc9189aee02458b8e353f12a3d98ccb6bac5e3a57ffe5b60af37b043fb58cc478ca9e249e94a30bfee4c509e150a3e28e56dc4222f9968ca8c62ccf57326a473b30055655654d3e700ea04756bc3f687707e0dafb9531706d06c30aa171e33550b66055adee33910aef573af9dd06b2611425d9d4820807c12f7b29a7fcd98c3948d5352e3fa8083205e13f075eed4e6442c0e3dcf68c765ed93748cfe33d758fee0e47a1977d0b79a755e731be22bb0c55cad80d54939b7a8dbd4c9c20b7369f907bbc2a540fae0189ab09fe62bb8defb479a913f3ebd167abbeb35104b2e3a75504b5eb58a1e34c991254e7b9115dc6fc0946e4d38e2c475199ba283be6b222cdd0a90ef0cf9ec98a3cf815e4d9ee23e3708b6ddaaadd146a802a53b57beee909528452d70170b8aaf40ca92fd5c3f5a7e87e93f30ee89881c7368c0cad47732e9b58f13e2d4873b596005e6344c6f030c9ed75bd65f273baa67d\n\n# tcId = 36\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 856a35de0779d33d013b7f7bf55de6612b8cb179058d490a4eed4acd8c213902d25b4eb5026c85b60e77773d3ae3570d037a087987267eb9432aa434ddf8b96379753d5d77b842b468af926b87a37b93ba313a6b0b0a5fc0028d68e569fb70c7bc5d29d4353c661fb1cb5e60340998d69ae7ff80ef5bc617207eb5648080265610b56d7b1037ae271e6e76f36b2ddf6d7ba35cb6430b21740ca0efd45d232600842acb225179af8765cddc356308ef617e130edee940e07c964517972ca94458e38f04375de2ca2c1de672f7885244ac95f883fa297d7e31f20b890a7d91758f57e9430c29a021ff5d94281ba0e7932ddcf031f0825881d3607cd3acc5ed14e517b61d2014c9d2ca6cb51e7da4ebe14341eea4c84d9b0b3fa11f9c9f6423bd414c8710cc82ec788f09c40634c3551ca6751af5e9fc966c687e170c5bd4358a4a34a8eac48f7357b2061d0610830bb7c8fdb59e5b9b55005a0cac3ecd3d6992971e64017a0d436406019d1d5fc3726c9c4cc811ed19d10114f61dceea8196b5b3c4015de1d761f4500b5182338a7ec0ba9369b44173ed699fd2ccdbd69f60b80b4c4e730f9793a2cb2c2b2d95a5156940162aff6fd8fe6dc0eeff643cec3fc5f75a9f516b0c422ec3938f4caf76fa09ec797b6088920e910d3d5d8df0abbc6bf78fff486c266540d74f9f55ba6aed8d21b71af65618fa15b94051b096b33a8066\n\n# tcId = 37\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 6df0234e29b09c68529dc6e379485376e89da42727fc88a547560ede5c518af124882f393e10fea33f680e1e5aabc51158c9b026a454c152fe4af301f40033693006ec509892850bb0b569b2907f7afa8864a9895752c47838615cf0f15e0b139bf83127bbce69f6abd6356b7bc52b30e9a58422ab4ad68fc2c812b6554f64e5c158027fecbaed30f48e90bf005cc6f0953ea845922d847f30dcae5a9b1e00f3ecdb139a0f38baa31a9404e816a9fb8f13686adbebfee71985ab41de8e0bc714bea3270205bcf16d5b7e8b42cd6332ebce2aa3d9501d30af6dc66c5ad19ed759567d16f0a391839e721e7d04c5c7d23df660fb18cd1e8982b2ed6860bb1700c3abdcfa8853ae187cf32695db4252f22503ea039996ed3877b93bbf413e27990deeefea7253a0ac23da6408923617f1263bce559ba3efa1bce8164ddd282ec5c115ccfef85493abb23c1490f134a63eb683ab16fb952854b40bce433d97d98f0348aa658ae3bdec9f0dfdcd25cecf11a1796726069132726e25b9a9c6278bc010f673b49cf89689cd2de943b94125e5a7b463bdcfb4b4ed7b52ae32f71cb0ae2f0ddcfa6637871fc64d254f1ab763b76cd7f93017759c9c73656a908cf0c687eaf6eedb0e510f3592be48a814ed7a9b387da754b8161f1cfcc2bd9f7bed8391484c98d542f5bab86af285a646965aaef05387153b51c7a915fd1213a6eb789859\n\n# tcId = 38\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 31e7df11d14b2fa289e45ca2cb36d568aa4470b5c6aa0d4bc0c10a1876146b876ff953e582b224adad6358998efc738631e44a34e2c1718f9d28f695d0e1b1f8318d2301bb3913dfd318707964e5a7e111e5a8765dbecdd90bf4e265a367216c6126869515c65d8788c9fd4842a6318d1323e50233cb92de965fc23f61cd8c91baee4013a1a928428ca6ed4db99eb2290c0d0683d7cc928d0cf252b389b64e67995249627cdd90cb4e5fefc8da61eb3e8104c6138e52f6710c136f7061e961c485eaaa586eed740eaa2c0ef879d2af5eca41a5aa1a2476e909c8325952a9d8ddb3b9f6bfa6495c4e2571e4c0ce727fe087ce484a038ecc27c7f0743fd93dbe0bc0386e4d025092d21f9c7d569ca0201d3347e71932e6efe64fa847655e4f1b01af20e0137160b5bc03a9450457162db68997a2df476175ffa040cb4818aa6be70cdee08e05724c8ce0174c6b25629c33e9aff85fdd6c438aeab60c3e939bd6deae3be1fc8beaef81b9334a1c4d59117863d7e73249f12a6a295bac6879a66a0935497040357bdb9ce0f2ebd7de693baabbf70ef76406bfe0e8a8a1edc183185a92b97547d50b10f24ed71a8a3d558ddc20f2b40801db842cc9a38021944d8b97e06e520f0ec22189ac11503a2d84b8291957299b8f1f45feb408e6c828ab97cce7c644b9fb84b8b5c3daafaa90e1c177799c1dd06fc6e48fd309d40b2888f4d3\n\n# tcId = 39\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 1088ad6c2cb501f99bf0c545d84b526de3665f419af5e941d5940196470da54dd01f58f48ec6cc56e16b1e21573700e57341188921fbd96362ba5e377e051a1cb2025c0da7842409e8ffc5728b2df3fac115d79a11d7a13ff1906cb8734373e62af62dacd1e7412a89327759542577d720581d4b8a928ab01e023ee7caf33b9037fd96fc17ac43ed9d604b096c8b0a11854bacdc88a58ad8dc3105c748813b4d4109fec80a4385f74b8b102f02d59b36e6cf4a347d87daaaff974e0a1f09255fd49e584b3c88d4704258fa8c402ca67ef95d1f2757312a63f307302a31b021fe1bd2be6feb6c1d7895642e5556bbc96026a591431adbb2953efaf4b54f33c8c8b9cd06e23ca369e5bd81ddac3167a9eb280f060afad68295effd5687e131967437d4f9f97d7b46afe1271a4193407a1251c1075705d4c4cab5e523eb66b2e1f57789001075b500a3841b7ea7c130f37761c27097c9ff533832d201ccc243691f19ad4a822b7ab203cc477398bd32506b4952adbaca1bc5eeba7c565843e17e18257a7cfac8746218a2118b9813c655f6ff55577fe17ff6fbd6443ff307f20dbd36bec5835c6a41bfdc7b0afa12dee58b119ebfa8a3ba8d3e77e3841a4812bdbe163aaf5bfa05a305c158115227f569fa92850205abbd275f1f24f0dc5b14cdd405d27fad86f812d51254f1667724fbab80e6fc30a5f1ab60afd412fef8ac19c5\n\n# tcId = 40\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 41\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 42\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c", - "424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ec\n\n# tcId = 43\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed\n\n# tcId = 44\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 000075fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f44\n\n# tcId = 45\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f440000\n\n# tcId = 46\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de7010309093\n\n# tcId = 47\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n", +static const char *kData114[] = { + "# Imported from Wycheproof's hmac_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA256\n# Generator version: 0.8rc21\n\n[keySize = 256]\n[tagSize = 256]\n\n# tcId = 1\n# empty message\nkey = 1e225cafb90339bba1b24076d4206c3e79c355805d851682bc818baa4f5a7779\nmsg = \nresult = valid\ntag = b175b57d89ea6cb606fb3363f2538abd73a4c00b4a1386905bac809004cf1933\n\n# tcId = 2\n# short message\nkey = 8159fd15133cd964c9a6964c94f0ea269a806fd9f43f0da58b6cd1b33d189b2a\nmsg = 77\nresult = valid\ntag = dfc5105d5eecf7ae7b8b8de3930e7659e84c4172f2555142f1e568fc1872ad93\n\n# tcId = 3\n# short message\nkey = 85a7cbaae825bb82c9b6f6c5c2af5ac03d1f6daa63d2a93c189948ec41b9ded9\nmsg = a59b\nresult = valid\ntag = 0fe2f13bba2198f6dda1a084be928e304e9cb16a56bc0b7b939a073280244373\n\n# tcId = 4\n# short message\nkey = 48f3029334e55cfbd574ccc765fb2c3685aab1f4837d23370874a3e634c3a76d\nmsg = c7b8b2\nresult = valid\ntag = 6c13f79bb2d5b6f9a315fe8fd6cbb5cb817a660687009deccd88c377429e596d\n\n# tcId = 5\n# short message\nkey = de8b5b5b2f09645be47ecb6407a4e1d9c6b33ae3c2d22517d3357da0357a3139\nmsg = cc021d65\nresult = valid\ntag = e87538eb167e62d7cb236690ff3f034a9c12d417aa8dfa694d7405f9e1f85fe8\n\n# tcId = 6\n# short message\nkey = b7938910f518f13205ca1492c669001a14ff913c8ab4a0dc3564e7418e91297c\nmsg = a4a6ef6ebd\nresult = valid\ntag = 01a93f4ed216d0b280896301e366aa67b25e6b6a5a6e84f291a13391c6e496c5\n\n# tcId = 7\n# short message\nkey = 1bb997ff4de8a5a391de5c08a33bc2c7c2891e47ad5b9c63110192f78b98fe78\nmsg = 667e015df7fc\nresult = valid\ntag = 06b5d8c5392323a802bc5cdd0b3c527454a873d9651c368836eaa4ad982ba546\n\n# tcId = 8\n# short message\nkey = 32fdeda39f98b4f4426c2d2ac00ab5dd4bfabb68f311447256ed6d3d3a51b154\nmsg = 4163a9f77e41f5\nresult = valid\ntag = 1b0103729f48c2772bb132aef9ebd6dd6aafc9145df6d5c514b233ee92ef4a00\n\n# tcId = 9\n# short message\nkey = 233e4fdee70bcc20235b6977ddfc05b0df66f5635d827c66e5a63cdb16a24938\nmsg = fdb2ee4b6d1a0ac2\nresult = valid\ntag = 120b26ee1355c134c262513c7922deb6c4fd90303de4cd61b9f9cd08f22d6e18\n\n# tcId = 10\n# short message\nkey = b984c6734e0bd12b1737b2fc7a1b3803b4dfec402140a57b9eccc35414ae661b\nmsg = dea584d0e2a14ad5fd\nresult = valid\ntag = 88bc2282e5fce47ec6d9895395cd47fff91a0cdc589a8fd56d8d344616533a3d\n\n# tcId = 11\n# short message\nkey = d0caf1456ac5e255fa6afd61a79dc8c716f5358a298a508271363fe1ff983561\nmsg = 18261dc806913c534666\nresult = valid\ntag = f678f081d83cf126ad6bd52c2dffd786214f519c47452b85a97458d0c10c3ee5\n\n# tcId = 12\n# short message\nkey = 835bc8241ed817735ec9d3d0e2df4c173ee4dded4a8ef0c04a96c48f11820463\nmsg = 26f8083e944bacf04e9a4d\nresult = valid\ntag = e0e46cd7d1a75b3d102893da64def46e455308761f1d908786628ca7ee22a0eb\n\n# tcId = 13\n# short message\nkey = 055f95c9461b0809575eccdfa5cdd06275f25d30915c4eb8db40e1acd3ab7591\nmsg = bfb7d6a08dbaa5225f320887\nresult = valid\ntag = e76d5c8c070a6b3c4824e9f342dc3056e63819509e1def98b585aeba0d638a00\n\n# tcId = 14\n# short message\nkey = e40f7a3eb88ddec4c6347ea4d67610756c82c8ebcc237629bf873ccabc32984a\nmsg = 7fe43febc78474649e45bf99b2\nresult = valid\ntag = aa57d020aa24ad823472c2b80ff2d0cf475f7de0068f9a59e8112fede53a3581\n\n# tcId = 15\n# short message\nkey = b020ad1de1c141f7ec615ee5701521773f9b232e4d06376c382894ce51a61f48\nmsg = 81c7581a194b5e71b41146a582c1\nresult = valid\ntag = f45c72603cc160c0762f703407844a7781dfe0f1ddf0aaf4ccd8205e94469aed\n\n# tcId = 16\n# short message\nkey = 9f3fd61a105202648ecff6074c95e502c1c51acd32ec538a5cce89ef841f7989\nmsg = 2a76f2acdace42e3b779724946912c\nresult = valid\ntag = 0226ee13cc05e2340135b3f4b27a9da1a160f6170fe805dadd98a3711ec9c421\n\n# tcId = 17\nkey = 6fa353868c82e5deeedac7f09471a61bf749ab5498239e947e012eee3c82d7c4\nmsg = aeed3e4d4cb9bbb60d482e98c126c0f5\nresult = valid\ntag = 9ed7f0e73812a27a87a3808ee0c89a6456499e835974ba57c5aab2a0d8c69e93\n\n# tcId = 18\nkey = 5300489494ca86221c91d6d953952ae1a5e097139dc9cf1179c2f56433753824\nmsg = 90fea6cf2bd811b449f333ee9233e57697\nresult = valid\ntag = 5b692cba13b54fffc3adcbb0e015cc011fbfd61235303ff0ad2a49775083bf22\n\n# tcId = 19\nkey = 383e7c5c13476a62268423ef0500479f9e86e236c5a081c6449189e6afdf2af5\nmsg = 3202705af89f9555c540b0e1276911d01971abb2c35c78b2\nresult = valid\ntag = 4e4901592ba46476408d758435c7d1b489d2689afd84ceaaee78bfb91fd9391d\n\n# tcId = 20\nkey = 186e248ad824e1eb93329a7fdcd565b6cb4eaf3f85b90b910777128d8c538d27\nmsg = 92ef9ff52f46eccc7e38b9ee19fd2de3b37726c8e6ce9e1b96db5dda4c317902\nresult = valid\ntag = 3fc1d73dd4a8858c1fc3d8c4a3f33ed5ad0c70210038394a5902cb26fe287348\n\n# tcId = 21\n# long message\nkey = 28855c7efc8532d92567300933cc1ca2d0586f55dcc9f054fcca2f05254fbf7f\nmsg = 9c09207ff0e6e582cb3747dca954c94d45c05e93f1e6f21179cf0e25b4cede74b5479d32f5166935c86f0441905865\nresult = valid\ntag = 788c0589000fb7f0b5d51f1596472bc9ec413421a43df96ee32b02b5d275ffe3\n\n# tcId = 22\n# long message\nkey = 8e540cb30c94836ae2a5950f355d482a7002e255207e94fda3f7ef1a099013a0\nmsg = d6500f95e11262e308bf3df4df4b855f33e857563d4543f195639a0a17b442eb9fdcc1367d2eee75c8f805730b89290f\nresult = valid\ntag = 39697e70ce741feb33dedc069f00b5627fd9b837d10cbdd5b6d19cfbd511dd2c\n\n# tcId = 23\n# long message\nkey = 69c50d5274358188cff4c0fae742243d4e8a5e5ba55d94ff40edd90f6a43dd10\nmsg = 1ac5255aff052828d8ea21b376f1ebdd4bb879949913900405aebce83e48feb6813b5e9c89f94501a8ade41b26b815c521\nresult = valid\ntag = 4b0b4d0416fa2e11586fbfa7fb11261e69991dfa34019b9893d69a2be8c1fc80\n\n# tcId = 24\n# long message\nkey = 23209b7c5aadcbd13f7279af1a86d3c7ae8f179d1bcaaad0dff9a15302e78dbf\nmsg = 84bdac37e1af35d9356404e2787d47ece58348dea76a4a46e8aade3463d4db8c94a051be3733b38d756984865d56c60e8025f15e3f968f093e7fb7ebc7e31189c5692d15ed4256737b9b1894e5809503aaa1c9983fb096aa21916361eeb6ef455b129723a1a1ddf9deddea208529a648\nresult = valid\ntag = 4a85c479d1650dbd73bc5248074a55ff50218bddaa8d1fddaaf44946dc19aefb\n\n# tcId = 25\n# long message\nkey = 7c9cc667cae175f448faa96647319633b2d48531373ae7d316c44ddd8b9f69cf\nmsg = 9233c1d73b498c5106ff88951e07b9652cb0ddae740737ec205c9876d094978bfc947f7dc937119fd6a93915b19b625958a7a22363aa2ac33fb869ed16b303336ab740a0498a2df66a6599da710094481a7b544bd955b6f97135ba4673401db2db144a6e287041e47a51ed9b6ba956c13508c1c0c25310105239ab73629e30\nresult = valid\ntag = ca1b80441d333909c2bb30769650055051ed20f17de8ee953cb9070af56c704f\n\n# tcId = 26\n# long message\nkey = 82314540564ea3ce30591e97f68b2602de40fa29f773c2508327471b8348e8c4\nmsg = 6a6d2f45cebf2757ae16ea33c68617671d77f8fdf80bed8fc5cdc5c8b7086bd28e7eb3eecc7163491104e5309455e67f836579b82a1da3bf5991a8e2b2f189a49e05700e46c409ed5de77780a5f389e3f13dad406c9d55675329c5c921f07034180937c0f6ef34a2308b6ff3e1a0e9dc1ea65f5632730e8744d1db2c40a6595b\nresult = valid\ntag = 0900b3e6535d34f90e2c335775e86bf38ee7e3d26fb60cd9cdf639eb3496b94c\n\n# tcId = 27\n# long message\nkey = d115acc9a636915241795f48852052e07b51273ae2448251ec1d0d0f9807f3db\nmsg = 696d2456de853fa028f486fef437b6b6d1b530a8475e299db3a9005ae9cef8401985b7d31e172e8f439ccd1ad1ec44c9b86b78f3f243c1305b53bc21abad7a8fc5256311bfd34c98e37dfdc649e7ae4bda08cf2994b063c0c7106ed0b02a1f48af9191cbfb0d6a953b7e04327dfe8c93779cb574ba9cba575d01674e83621aa0c5f400d6e6cd24b301e33c9f3303e73bf357408c1be86c2489c09de998ff2ef32df554f1247d9313ce1a7160115d06f4c18d6556ff7986ef8a55e2adcfa27e4c69c71cc2ff01639e9d49bd9ed0687f530ffeb0890132457df2088081bc4a2f7f0a9f4dcea2c80d991db7f3747a1803d7619aaf3dd382c69536a0bcdb931cbe\nresult = valid\ntag = 82f92977f0b605eaada510ffceb53ad75fde16a8029f1b75b406a84270dbb8b7\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d18b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = dab99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 32\n# Flipped bit ", + "7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 538b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38a42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b89f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096c80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2708a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096f80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f270ba3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f836b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74162cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f026b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74972cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f824b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74170cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b45a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbf93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d4607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93834c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d7607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93804c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a955607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93024c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 58\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1ca\n\n# tcId = 59\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14f\n\n# tcId = 60\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1c9\n\n# tcId = 61\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14c\n\n# tcId = 62\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc18b\n\n# tcId = 63\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef10e\n\n# tcId = 64\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc14b\n\n# tcId = 65\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef1ce\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f836b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74162cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f4df826b44a9d5607de72496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191", + "a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3caf4172cbe93824c1f29b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607d672496a415d3f4a1a8c88e3bb9da8dc1cb\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1fa9b23a0c1e9c21bd851ff2d2c39dbef14e\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 2c74bdf6927f0ba07d94bb562a9f8218db695bea2c0b5e573771c44625723e34\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 274660d8f65c358be8d3416c7db3e0d64dc5f3e163de427ae00d2d3c62410eb1\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 530bc289ed0074df02ebc42955e0fd67a416249553742128480ebb395a0d414b\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58391fa789234af497ac3e1302cc9fa932ba8c9e1ca13d059f7252431d3e71ce\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28a43086c81f55e836a45a8d4617ce62597a514d2f5a0a9c98f3ab8db8cc0ca\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b89e2608a2cb75162dbf92834d1e28b33b0d1f9d20bc841ef3d3c29cbff04f\n\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 82\n# empty message\nkey = 7bf9e536b66a215c22233fe2daaa743a898b9acb9f7802de70b40e3d6e43ef97\nmsg = \nresult = valid\ntag = f4605585949747de26f3ee98a738b172\n\n# tcId = 83\n# short message\nkey = e754076ceab3fdaf4f9bcab7d4f0df0cbbafbc87731b8f9b7cd2166472e8eebc\nmsg = 40\nresult = valid\ntag = 0dc00d7217bbafe8d78bf961189b8fd2\n\n# tcId = 84\n# short message\nkey = ea3b016bdd387dd64d837c71683808f335dbdc53598a4ea8c5f952473fafaf5f\nmsg = 6601\nresult = valid\ntag = ff296b368d3bf059cc48682f6949ccaa\n\n# tcId = 85\n# short message\nkey = 73d4709637857dafab6ad8b2b0a51b06524717fedf100296644f7cfdaae1805b\nmsg = f1d300\nresult = valid\ntag = 2d02bd1c25b1fe52b1ead07374d6e883\n\n# tcId = 86\n# short message\nkey = d5c81b399d4c0d1583a13da56de6d2dc45a66e7b47c24ab1192e246dc961dd77\nmsg = 2ae63cbf\nresult = valid\ntag = 4d9e8bddf9b7a1218309d5988aa1b0d9\n\n# tcId = 87\n# short message\nkey = 2521203fa0dddf59d837b2830f87b1aa61f958155df3ca4d1df2457cb4284dc8\nmsg = af3a015ea1\nresult = valid\ntag = cb8a4b413350b42f4ac3533cc7f47864\n\n# tcId = 88\n# short message\nkey = 665a02bc265a66d01775091da56726b6668bfd903cb7af66fb1b78a8a062e43c\nmsg = 3f56935def3f\nresult = valid\ntag = 1cfce745db1ca7de9a1d4420e612ca55\n\n# tcId = 89\n# short message\nkey = facd75b22221380047305bc981f570e2a1af38928ea7e2059e3af5fc6b82b493\nmsg = 57bb86beed156f\nresult = valid\ntag = 0bde0d0c756df09d4f6da81b299a3adf\n\n# tcId = 90\n# short message\nkey = 505aa98819809ef63b9a368a1e8bc2e922da45b03ce02d9a7966b15006dba2d5\nmsg = 2e4e7ef728fe11af\nresult = valid\ntag = 406a5c2bd3e6a9595f9b7dff608d59a7\n\n# tcId = 91\n# short message\nkey = f942093842808ba47f64e427f7351dde6b9546e66de4e7d60aa6f328182712cf\nmsg = 852a21d92848e627c7\nresult = valid\ntag = 0b1bf9e98d0a794fa55c09b63e25799f\n\n# tcId = 92\n# short message\nkey = 64be162b39c6e5f1fed9c32d9f674d9a8cde6eaa2443214d86bd4a1fb53b81b4\nmsg = 195a3b292f93baff0a2c\nresult = valid\ntag = 71f33f6021d90858cadb1353d7fbe8d7\n\n# tcId = 93\n# short message\nkey = b259a555d44b8a20c5489e2f38392ddaa6be9e35b9833b67e1b5fdf6cb3e4c6c\nmsg = afd73117330c6e8528a6e4\nresult = valid\ntag = 4b8d76372ebe5e5caa56ca4e5c59cdd3\n\n# tcId = 94\n# short message\nkey = 2c6fc62daa77ba8c6881b3dd6989898fef646663cc7b0a3db8228a707b85f2dc\nmsg = 0ff54d6b6759120c2e8a51e3\nresult = valid\ntag = c580c542846a96e84ea77701778455bf\n\n# tcId = 95\n# short message\nkey = abab815d51df29f740e4e2079fb798e0152836e6ab57d1536ae8929e52c06eb8\nmsg = f0058d412a104e53d820b95a7f\nresult = valid\ntag = 13cdb005059338f0f28e2d8ce1af5d0a\n\n# tcId = 96\n# short message\nkey = 3d5da1af83f7287458bff7a7651ea5d8db72259401333f6b82096996dd7eaf19\nmsg = aacc36972f183057919ff57b49e1\nresult = valid\ntag = bd993e4428cbc0e275e4d80b6f520363\n\n# tcId = 97\n# short message\nkey = c19bdf314c6cf64381425467f42aefa17c1cc9358be16ce31b1d214859ce86aa\nmsg = 5d066a92c300e9b6ddd63a7c13ae33\nresult = valid\ntag = 86c9f4dde0b257a7053a7b03c7504409\n\n# tcId = 98\nkey = 612e837843ceae7f61d49625faa7e7494f9253e20cb3adcea686512b043936cd\nmsg = cc37fae15f745a2f40e2c8b192f2b38d\nresult = valid\ntag = b96bcacafac30094f18ac5039e7b3656\n\n# tcId = 99\nkey = 73216fafd0022d0d6ee27198b2272578fa8f04dd9f44467fbb6437aa45641bf7\nmsg = d5247b8f6c3edcbfb1d591d13ece23d2f5\nresult = valid\ntag = 6e597c4c3861a380c06854b446fc2a87\n\n# tcId = 100\nkey = 0427a70e257528f3ab70640bba1a5de12cf3885dd4c8e284fbbb55feb35294a5\nmsg = 13937f8544f44270d01175a011f7670e93fa6ba7ef02336e\nresult = valid\ntag = f731aaf2f04023d621f10495344679a0\n\n# tcId = 101\nkey = 96e1e4896fb2cd05f133a6a100bc5609a7ac3ca6d81721e922dadd69ad07a892\nmsg = 91a17e4dfcc3166a1add26ff0e7c12056e8a654f28a6de24f4ba739ceb5b5b18\nresult = valid\ntag = 95243eb1a9d448174ae4fccf4a53ebfe\n\n# tcId = 102\n# long message\nkey = 41201567be4e6ea06de2295fd0e6e8a7d862bb57311894f525d8adeabba4a3e4\nmsg = 58c8c73bdd3f350c97477816eae4d0789c9369c0e99c248902c700bc29ed986425985eb3fa55709b73bf620cd9b1cb\nresult = valid\ntag = 343367207f71425d8f81f3110b0405f6\n\n# tcId = 103\n# long message\nkey = 649e373e681ef52e3c10ac265484750932a9918f28fb824f7cb50adab39781fe\nmsg = 39b447bd3a01983c1cb761b456d69000948ceb870562a536126a0d18a8e7e49b16de8fe672f13d0808d8b7d957899917\nresult = valid\ntag = 151618eec4f503f3b63b539de0a58966\n\n# tcId = 104\n# long message\nkey = 7b0d237f7b536e2c6950990e61b361b384333dda690045c591321a4e3f79747f\nmsg = 3d6283d11c0219b525620e9bf5b9fd887d3f0f707acb1fbdffab0d97a5c6d07fc547762e0e7dd7c43ad35fab1c790f8047\nresult = valid\ntag = ce201c0dcfdc3f2bef360609a31fb19e\n\n# tcId = 105\n# long message\nkey = 17c92663741f012e5bb6714e614c2d155948617f10936269d954c58aba2ae62d\nmsg = 7fdd6a15c861d0313f6635d77dc55e115ff18c8ab063b5d03eab472eeca87a378188f25813515cf90b6cffa94a8ff36b29d65603eab3fbd2aa9500b261e184049893dc6ca2010becac163053f211070bdda621b8bd8af77e450268603b52db34c90be836dfebddef42303f724e63bf0f\nresult = valid\ntag = 76e8dfd94db4af9d79d9718eec46cb2d\n\n# tcId = 106\n# long message\nkey = 424c6b22606fcc094ae82fc5d3cbe484174c2211b3ec778091cac34a8e38a152\nmsg = d96ff062e2490e8e0c54c5a8b89e85b25a66d93d7c2b93bdfef846b70d38672746a4b988d08f15a5c527ca4f2c80e53f7c6ac0521bc57ebe38209180cbf934e0bbeb58cfb63d75da64af41d09ce174af1896f42522910fced35ea000402e95fd3ac7aa6d5e0a6b533b0879bc466019b3a5e6b16e4bd1ea6cdfc9ccc1d6f0f0\nresult = valid\ntag = eda709c7009714c372d0d6a63dfde469\n\n# tcId = 107\n# long message\nkey = 15d553c8da433d53cdc7f15087a70349caab57b379a4078928ce9b99302e31a6\nmsg = d6c0c53b73f74fb426adfdc143d70db7f7a8f8ed32a2faef263cf9ab117537b6b9d1728bd1000c1f28906c6ce6ad21862bfa4d689c1a8ebe3868b992098", + "b7f981b2af5189a6adedff53a6c70c83693f5c8d6385a9a8a4dca017c5716ac4d5b9765c5ca2ab5f9867e02795198c0b9527e07d08af52dbcb91ceb3d8b412a2b2402\nresult = valid\ntag = 8ca1402bf8fc23442ac2067be925b828\n\n# tcId = 108\n# long message\nkey = ffe559468a1031dfb3ced2e381e74b5821a36d9abf5f2e59895a7fdca0fa56a0\nmsg = 238899a84a3cf15202a1fbef4741e133fb24c009a0cd83854c6d1d7c9266d4c3eafe6d1dfc18f13845ccdad7fe277627b5fd5ff2555ce6dfde1ee078540a0a3590c6d9bf2fb63ba9afbe9380e797be7cd017645c5a3613eef38ef89e3b7461e6e700ff2b4deef5636c9d2198b143f797ca1820a3dcc5d462ebf4a8c4c09eb202a23592eb9524082c79adda8fcd56d256041a26bf8f523962ba911ce5a5786570d65be3c4df722ed8830302065febdf944715298a1fbb7d10b68d7da2bf889324314ce51e815c7fbf03aa0a8358aff3a86eb7a33f9a4923660db3047e793bebb0c6918f4395d400381723fdae2832c36efc8e368a68f30f6351c3bc942cd560\nresult = valid\ntag = a830b313f4936dea56a3aefd6a3ebe7d\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f826b44a9d5607de7\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74172cbe93824c1f29\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d18b42096d80f45f826b44a9d5607de7\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = dab99f2709a3ca74172cbe93824c1f29\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 538b42096d80f45f826b44a9d5607de7\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58b99f2709a3ca74172cbe93824c1f29\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38a42096d80f45f826b44a9d5607de7\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b89f2709a3ca74172cbe93824c1f29\n\n# tcId = 117\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f45f826b44a9d5607de7\n\n# tcId = 118\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3ca74172cbe93824c1f29\n\n# tcId = 119\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096c80f45f826b44a9d5607de7\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2708a3ca74172cbe93824c1f29\n\n# tcId = 121\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096f80f45f826b44a9d5607de7\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f270ba3ca74172cbe93824c1f29\n\n# tcId = 123\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607de7\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1f29\n\n# tcId = 125\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f836b44a9d5607de7\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74162cbe93824c1f29\n\n# tcId = 127\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f026b44a9d5607de7\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74972cbe93824c1f29\n\n# tcId = 129\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f824b44a9d5607de7\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74170cbe93824c1f29\n\n# tcId = 131\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b45a9d5607de7\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbf93824c1f29\n\n# tcId = 133\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d4607de7\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93834c1f29\n\n# tcId = 135\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d7607de7\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93804c1f29\n\n# tcId = 137\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a955607de7\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93024c1f29\n\n# tcId = 139\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de6\n\n# tcId = 140\n# Flipped bit 120 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f28\n\n# tcId = 141\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607de5\n\n# tcId = 142\n# Flipped bit 121 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f2b\n\n# tcId = 143\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607da7\n\n# tcId = 144\n# Flipped bit 126 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1f69\n\n# tcId = 145\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f45f826b44a9d5607d67\n\n# tcId = 146\n# Flipped bit 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3ca74172cbe93824c1fa9\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28b42096d80f45f836b44a9d5607de7\n\n# tcId ", + "= 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b99f2709a3ca74162cbe93824c1f29\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42896d80f4df826b44a9d5607de7\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99fa709a3caf4172cbe93824c1f29\n\n# tcId = 151\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d38b42096d80f4df826b44a9d5607d67\n\n# tcId = 152\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d8b99f2709a3caf4172cbe93824c1fa9\n\n# tcId = 153\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 2c74bdf6927f0ba07d94bb562a9f8218\n\n# tcId = 154\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 274660d8f65c358be8d3416c7db3e0d6\n\n# tcId = 155\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 156\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 157\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 158\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 159\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = 530bc289ed0074df02ebc42955e0fd67\n\n# tcId = 160\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 58391fa789234af497ac3e1302cc9fa9\n\n# tcId = 161\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = \nresult = invalid\ntag = d28a43086c81f55e836a45a8d4617ce6\n\n# tcId = 162\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = d9b89e2608a2cb75162dbf92834d1e28\n\n[keySize = 128]\n[tagSize = 256]\n\n# tcId = 163\n# short key\nkey = a349ac0a9f9f74e48e099cc3dbf9a9c9\nmsg = \nresult = valid\ntag = 3a8437b877b75cc08a4d8d7559a8fc6869a58c713da63d1d4b350d59b597e30c\n\n# tcId = 164\n# short key\nkey = ac686ba0f1a51b4ec4f0b30492b7f556\nmsg = 2fa43a14ae500507deb95ab5bd32b0fe\nresult = valid\ntag = 008532a53d0c0ab22027ae249023375374e2239b959609e8339b05a15742a675\n\n# tcId = 165\n# short key\nkey = 73ef9ef1a4225e51e3c1db3ace1fa24f\nmsg = ffad380d9aabb0acede5c1bf112925cdfc3d379fc2376a4fe2644490d0430ac3\nresult = valid\ntag = 9c7cb9f7c207ec46d1e3c55764731c4ab5ddbae4e1401e52a895df0cff4787c9\n\n[keySize = 128]\n[tagSize = 128]\n\n# tcId = 166\n# short key\nkey = e34f15c7bd819930fe9d66e0c166e61c\nmsg = \nresult = valid\ntag = 1d765ab9e29892f7bfec2975ad4bc2dc\n\n# tcId = 167\n# short key\nkey = e09eaa5a3f5e56d279d5e7a03373f6ea\nmsg = ef4eab37181f98423e53e947e7050fd0\nresult = valid\ntag = cfc19ec07902ec8be489606d8f40d172\n\n# tcId = 168\n# short key\nkey = 9bd3902ed0996c869b572272e76f3889\nmsg = a7ba19d49ee1ea02f098aa8e30c740d893a4456ccc294040484ed8a00a55f93e\nresult = valid\ntag = ac50adad9785a89c7282d8ab881dc615\n\n[keySize = 520]\n[tagSize = 256]\n\n# tcId = 169\n# long key\nkey = 8a0c46eb8a2959e39865330079763341e7439dab149694ee57e0d61ec73d947e1d5301cd974e18a5e0d1cf0d2c37e8aadd9fd589d57ef32e47024a99bc3f70c077\nmsg = \nresult = valid\ntag = f5bfb940561fb4db73ebba49bf2e4893bb0cca618a71b7ecf6aca38231e167ea\n\n# tcId = 170\n# long key\nkey = 2877ebb81f80334fd00516337446c5cf5ad4a3a2e197269e5b0ad1889dfe2b4b0aaa676fac55b36ce3affc7f1092ab89c53273a837bd5bc94d1a9d9e5b02e9856f\nmsg = ba448db88f154f775028fdecf9e6752d\nresult = valid\ntag = 1690ed4180642899e0deb9ec2270374e8b0a484217f5a682c524316eca219b64\n\n# tcId = 171\n# long key\nkey = 21178e26bc28ffc27c06f762ba190a627075856d7ca6feab79ac63149b17126e34fd9e5590e0e90aac801df09505d8af2dd0a2703b352c573ac9d2cb063927f2af\nmsg = 7d5f1d6b993452b1b53a4375760d10a20d46a0ab9ec3943fc4b07a2ce735e731\nresult = valid\ntag = e542ac8ac8f364bae4b7da8b7a0777df350f001de4e8cfa2d9ef0b15019496ec\n\n[keySize = 520]\n[tagSize = 128]\n\n# tcId = 172\n# long key\nkey = 813e0c078c221375e80590ace6774eafd2d2c242350988d02efa550e05aecbe100c1b8bf154c932cf9e57177015c816c42bc7fbc71ceaa5328c7316b7f0f30330f\nmsg = \nresult = valid\ntag = bb6ab66f51e53fa086c9c61a26ca27e0\n\n# tcId = 173\n# long key\nkey = 5713343096b0aaf0562a6b92c1a15535924160475a4e4233589159728c562e3b2ad96f740c6a4da2bc3f768ce98c9bd66bac28d1646ff592028c940d455f35eeb4\nmsg = 71712de2fac1fb855673bff72af64257\nresult = valid\ntag = c18165b8b97db1ca5e2486a32b39731e\n\n# tcId = 174\n# long key\nkey = 7208afbecf5f1f34828f98b719414e280716de64f5edd1ae1c774153cd2022337bb20fade1b7856f1dbfd40e2b4307f1293ceff1692ee90d8c90b5fdf953ab01a5\nmsg = 43b53302b604d613e62db002044a4782d572ac8fbd3cd0ece91b43bc52e18e98\nresult = valid\ntag = 2fecfe45d79339c57dddba68ab34f5f1\n\n", }; -static const size_t kLen82 = 53222; +static const size_t kLen115 = 47894; -static const char *kData82[] = { - "# Imported from Wycheproof's rsa_pss_4096_sha512_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.4.12\n\n[e = 10001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 8d4444ab233739c9d1441e99cb4f71581ed78fb996ba1257fffcd9e3c74ff60d6be352f002f959ff66bc6ed0c987a070097e5d57d8bd89b4452a9d2ca121eb6a283e8d0ef6f5f67875b6cbb8f04e6d242900d73d5bd7b59de4b9466ccbe53874ed422610e411fe3e026f47e47b8686b9c891c7226b4ca560a840e1734eb4f6fe877e559c9a9299dbbcaeebaf7eecfce6fe43ffbc483514fa3aabd6959e5aaa3977e23a9f97edf406d396e96c3c830164b10abc680bbaa6d99d19765d7c7e77946ef6ae240b5fef0249e7062792b15c8f9157da95971afb315c9c015c74a2e79ea2d0cc46992704872c340781f052b4b2cb5ded8f5cadd9b5e3edce128ef2354bd0411074d6515251f5231453bd530222f730ec736a86f721744267ba52652289ff6a207a5a7c45c20ec451948d6bd7b10f1af7282afed9f5df43e4a0d0f2e8fc6d3dd3130d4ff6fbc11f0ea460089856df29d1b7b111095754a7de9bc03029c6c397b6994674775fd29cd22ffb03dcd90c51096b18a6c174f2b48d50e94856f5a22adae64915d69c5528dac0345017c24e8aba401c6e9a0a268057a0fea237dbf0c88906796eea0d1bc3c2347cfcd812217e26015825e9f0fac404c22c26272443ccaf30b294c7c467497ee561a2a5f6d219973cffde9aed8e4486faa3de3d17405445e2f78a768dcac1efd01596486c2495f5bb1f830a4984041e03a7bcd77a\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3a58fc64a234dbd7be958d7c34abcba7d780ca636c4f2b2bb7fd3d4e4faaea0e17226c85debf8dc9b1a79e152a3bd83b13f43b1e92be81b37e908d04b717251e32a2d49e2cb5f2e7dc18e74cf9fcf0c0e246d473f76c79c3d50e878a2f89bc4eb6ecdda96c166d6a825a1df569d11384a78d7052782ace5878c41361f148c54528288088716f935d3e5b5d556a0fc9b62c0de31d9ddf4893f82365111043ad7fca010d1fe9187bde48f78cf465657e184857451d64564a16a166743870033e64125ca3f20ba80c065b259666871fcfcf71e711aa34cb70ad9a2ac6051fc02c96149d4e3c1741c4d44663ee0b49e1ba60a80b4c2d389ce3ba953d68bec835432bfe170429951f82ff51f408aff052c934d51526117b3d57ed1f2a912b37cacdb5a980d30d223d79faee7948c5f4986c1df5ed42923a3f4342da02a41872db49aa09d2d48c3b3e1cca7114a9a34e76b747ae6c99141c9f856e41d98456b3fde7d26bf842d6a421b3d4cceda4da1aa4d1298b624159a1c83b6fe5cb89982eba5e7d6005489d39233f156817c00c04511b98463696f8b6b3962ca3f4ef76b37300dda1d368c237250baa057e38658882f482d024c26163dc1fdac29904bc6424130837b8928f764bc939f006913ab1e968c85016dd812dba264520e6380872587265d827557eeac6498db8137dd2ae029fd83250ab7dcd764d018ca05ac9db8f95e2\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 7c838ba65f923660aa4ac47465eb1df4df51d6fa2be26389757de8c6dfc7746aa5164d909b69b7c04758d256e13e3520e77e75b4094d8b0d60da0030b9c991969f6e892ff03ffba9b9f95ca991a279e7cded611a2879e6e6602f411a122c8d11cd333de5d2f7f367e38ee0491380e8796e113487ec7bc05ec1b1261aff871ef82cdd12f4e3d8f239cd49b2f53d57255dfe6ef29038831cdebe9cb1a76dc9ed79578e129b063724ccb3c7b3269f5dd3d9669a405582255cb56b1efe6d61a376df3a141014c3d660b66f9d1b266b5fd3c5472534df778e6e022a8f5a6cab501dde611e07c0c8eb5718962692e8e3773bfd25f1d3b63a20a251ef0c296f01f4a17814e18dfc029f2ed0ce073e83777cff44471f9348434fcc12b0420bf2de1c9018f0282ee21f09302b178f8c772c8f8962f6a29291c63532e1ae9301e7ac55781876965f425619a92559f33737d5e11b282f9434e27d9b27eb2fb0fce4e3e90ca9eaafef170644b00e512537bd779fd2207ee73020aaec07e6cd44103a14940c9499b013c42440d2f27a3def34f3509cd8631db1cc8633ac15180272c824369e1d3c8a6cdca511748361cb60e022173f95ad06e7c79d59e03934854a9f9827f3593d87c34d3fc44beec58e107d454ce04b55c96effce612aef0e5d55c31e367c9fc0166f2c9d450e86d79323d4da8fb409f97adc7af2ec6772ab290f622fe1fa61\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 3d90ff4e36188b451116227e189a71734571b72cc6fe53dec4eec59e67e98111e96fcd906509fade9922f2de6a13a4faa23c7efaadde6dfd0acf150541eca973c7e38a49c597d741e99ef7575b6e2c8de0974bc868a5567f0890052c4df54d12198ea09a12bdb2b6ffc14a1d874e165ed12caab58b28aee171fa7f1839e36e23ecdee2633616791179084eaf98cc23d2f6ff479df0ba46ed933beedf07cc0cad4dea0f", - "0b48f4a063488ac67519e1fb83c7b7e86e3644b0846383ecbb1b1189743036b271fbf121e2199601a3ffa8e8cab00a6b9b5527d62dc2a398e4a42c1e5a62f8aae35b629755119c54cba5e860b421845f9b4422f20d896abfa962ece5d116f7d4170db8dd0784b7625ab2a384c7d424c69901f59d03b144241f8f6556da8e3bfe07c17eae91c50ef2c53e71072c3ff16e642cf126feab904e09a2febebd282a2540389bb60b145cb332658d6a69e03a0a8419eec0f204d6e592e04df01b92f58236989b6b92eb0344255914c25dcd0a611c9fb77e435e2ef9bbe3c74efe144171ca95d1bb7de814f76be54cdd8c11db8af8d20af4451a4dd3b62387bac37cb79755afe91d0d9a2163d299ff61ee4fc4d5267eb8c5252371b0a83dea738f6383e085e992b3567ae170780f3b83e15d895ad4ea668a6304f10f0914ca3b2900fab1364c8b352dfa8d5a3993d5628f4d2264c412210798c18aa2ed6aee516c\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 07440a61252a8906a9264ff58cebad6217ad710833105369b7a858216f1d5a5f5dedbe3eb8128b34dc0f0243faacb64034d21b656a278abb26ced174f76a22637b755b768564db6ed4e4fba0d5784a22be30d088fa965307430982f84476907d55435ca3d4abdbf689e76f2d4b78d99bcc742e0b757b897c4fdb13d15c5057e6816e32c3e294a947374c998550173cc657ce33f9fcc18b2d14e1b448acaaef683ff84b086f545a05414589b1c23210290ed5ebbc25af614129212d3853ff728ec01128d37c4268975ef870a1e4fa00c3c98b39c3110c2c11af10333e25db027448fa8f219a7dca7c8bfb490912bd5040f1f348b2fb437a8a9f407ab7e8af1c6e29594f557f2e03fe74e4fbfd2f935e68ed824a510fc39bb4be0a2e091feb265fd2d7a33d2f238e70b153700f5bd5046aad7a6fc02a5e23dc36f67278fdb904d05f2efd0cabe9e4baf4e16af0f7ba9edad706d67c67221ca0630238d6f688174d66c1b152f8f921e2c6c08a19e870eab76a77371b42458dff1c36b0ae97b811e900f6c09e792c89644448f1d0b97b53b9818d1d8f3d7a37bcb1bd3e3a5bc022039f00a0ef7de19657c4c9e06daa2ecec2de30db3b7b84107bb74e164956eb26edc9bcc57e5e1c4ed875b02f0545383602faf9525f094c72f682995d4e2d71d03e11134495f637a3b1b022153689751b63521b1a16b3c3e269a2499a4be1aff9b8\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2686029fb11cd033724e57dc1835da4f9321eef330747c3500a4893586429ebf02cb4424ee5a0b91a70eb35cb05ef60cf6b3635d4f2ef5eb647f398fd44f67fcd2969b629a7c54f1094f9827f9f27457509730f50c9ecd2dc83bd13f1268d93f0f61c29c5c27eb821c68edcdf1b01f79d1f261dd7f2f283db197ab56cae0ea3b3c1cfaf3fbd4c1ed1f6d313f0b919e5fddcb97b23f0bf64e36bdb6f7cce8ad9cf362953e66c644f8b8b64bddff1e850298f5531f121e6821a393f9658237280c2a53c7c658319bc7d38f93f2d7723ef6728008843f89f61f7ecf5949a2cce6a9fd9dbbc501ef25a53ca02486b61a5de0130149d9d246925f26e1a9a74287439592a4554a872ceca53e54d1c1f4c4e18a4977939a6c37eeaab5c8d0cb5686b44d84c86d736ee8e0d97421f4c8935e926419dd68fd4e5fe9999eef75d0d0f9494cbb0297fa066b3aaca55cc229a36659be310c1e328d0b52f7747c62b1102a2d0a4acbadf0acf621a45e5695ce1393b3eb05a69ca5318e6f6b7ae5c4ed3f6072f8ae99db9af66da6a98d675a35acfe0a7612e9d5f29690870d81114279010bf7bb3d458f630f10f81a785f671e6735d7bdddf4da375d2e6d48ceecaee741a33ec1e8f9e0ce0755bec28315c6f9df363c800ee147bd412c5ea7aeb89e7a354fcd3a2c8474aed04f9a2a5fd2983380f3c00a4558c46ca472a4c15887c07d4bc8a698\n\n# tcId = 8\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 9d1925a05f0e28592ed69d6951ff5417b240bc327ded41b460de2fc3a0101bb89d6badc5bd50e2d1432a57b7bd620646e923405253e93c7f2550c0740ab9657752863739fcf89d492ab1cd8ab2088f4ccd8848c4eaf95cd5e7240872472f35cb702341c6965c0fb7b113bc45d991cf9616b7e200f2cfe79201babba3455a60cd628678725c49958282a2c751e0861f20d49a4294d59c3cd33c6ab0b6d02121f6f2c9322b6f9505694de40f9a98f628edddf18b9dcad1cf586ef22e7000cf09582f80f0c377955e110c93dbf9d7938c59a0b7fa283c2f3b186c21e070da5bb800ec622036906306229f8f965133df82521f454d900a01bbee1aefce262b1d8d9219ca809c699e523c5c7204ce45c91fab1cbfcbc1930c661b8a3da04e29d63794a65b1a656a7870c7974bb785fe49dde68118feff1dc6374032e9225325c3e3d312850d0ebba0a5aecea061b5d61c8f13f9f82e6cecf6667278da4ac38ec4424bcc0fa6181ba1d63966e473157c76c7d007f2a0f01eb4efb54cfbcdd1254a871775339354695618d791ffa8d57fedffbbe568a5b848b7fe037f8002d96c478a21313ccf42e5819478aed99f6ba834520ac2460a5aed186a96dd9c90754f9d21bdfcd2635bbd11e956341d0284b51e352c79a7adf1748f2deb2921dfe6ce8d36aafa35cdcfe5917113d0c29cf29478f9000a0c78396cd891dea0056042711c0e54\n\n# tcId = 9\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 2f19362834eb20e169132d1ba73bfe32b50faaf9c413d0b2ad578e263cad266a3144835b129648471fbbbd4bedd9668d6e96d4c0d0b95504a8beefcda6b9bae162c2c1bf53ba91d9e1771f46e60c0c1d356fa166a331d51ea85bf270e7cec459908f1fc29bb6b5f216eb9f5f453d29fbd486a03355cdfffd6d131f4a027c9b179ef91257272d5a383898b864732edcde78e5cdf2a9ec9640e9500ac7bb06a7b1f1e947ebd468815a56a86a6f747e806cdbfb81d3fec3ff66af0fe5a472f559ac05b2613ada9e40587d75d98c1368776c696ded9c0b34100eaaa80f2016a2797ff0c0090e4e3b042943436336c8fe72fb5ba9c4b5264d97421582e0e859b8a46a083aa75d7b8f1137fc7d1703812f681f615804385d8f533f0f4f8c21ef3921f42be0f2ee863480d72dd8a4d78256cd4f44ffd62526abd67d2b4393328d41e45f569235f091bed9e2c72b559dff4af790401c18b4af71613ab53f1d362f3ff2e6b0d4c181ca051f88087ecfcecfe8a4844f7f99f624aa43a070bf023d28eac88368e7e8f7c2357ce63728820422a48ec0970566ac96ea714422d5f67a28f5b67ea9008dc95bef728c51c8b5d83d59f92c4169dfaf232b4926c9b59c5385fab598bc6df7ef58b88a60462f2692a8abb9f8699169094b1971c9dd6e90517582721f6e49f5af1e94d9bb0efd5a0313968322d86a2e2aa2e91ddc9d4fde0a6b612740\n\n# tcId = 10\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 88a4b39c219e6d7a7155a5e38eb2bf76715c540c817f5f7c3ac827fa34ac202c7d904aef8d59bf449154fdec535b45e1d0a5e9d31d4ea75ce4e6a07e2b7b5ad61181a2172f220e4a0679857eb2152a3e2aee3c5c0fbe8e518f6ae410cab5ce861c66ccc7f72494b9b0f0a06cb8122f16776ba7098139884006a08a6f752948b677f1bec1e867afab783f03507c5a4a528ba2a2e0a118630bd93ebaaa96ce378bac92a9f02eaf0838636685cdb7be2da6bc6438cc84b907b4c927eb1df22a3242e4886bd74ef7133e37708d3d2528ebe39e9c051a217c6c7deb2e6a87b905abf4ad4326d6a830ccbf2c3044befbb9100a364ab897a684b472104a1f1484e39c2f9ff3f5b8ead0fb813e3d54673713f1909af085359c881bdc7b82ca9f2f3c1ddf3b17f796496d29b62e1bdc7eeff0c65b78b4ae81fe7b397d02fd0e74463b3cb68064aac87dd0aeb36248c50974b066b7864924f36084e7bcf462f08fdfb387c803afffeebc9f0c317c9882713a50800e1250776720d1dba53e5c1dd3e8b176c6abd051bcdc9851e7107417f06c5cd9e8853f75718dc6386a7f4747ffaa87994462fbd9ceac6b5da79f9dc5c5363116a308b4c20e673acc5a4aad3fe7f427ee1c08ade6eeb048cbaa0120eaa3a74ee39e5f9e39dac10d5019f1d115dfbe051090037503a63229c216a6cd4b6b4723340debcd812c13edd4e77e66380bac99dfb0\n\n# tcId = 11\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 39a5d241a8c6648f4f3ffc5224dc31585e22a58d343cf227b405466ff8f8d5bf553affe12198e6f8515b05d4f6bda0fd645874676d7bff6dd67345f4a1aeb21adb43abab63c3cd53f186b62a1d44d2cd9425cdf163bd2f90cd190329718c18e7faccd7c0f5f8547d74bb9df9890cc8c5a84c6f8fde84f4c8e3409703196a7d7466afa6c0edc728f1e513fabb7df97172545ae8c865ce95dfa81ff35870e71b1067762836a8dcaf186c9fc7e0a633f98f7d32ae10b2a6d962f720d6784e64c04e08f8dfd688746daa69bc70f652d1d6f806b0df297f655162809fbed4cf0e07d5ceb66fc5b2fb89abc4c2abafe325eb4617a2d244783f70002056961b26f0c2dc5a7df3e883bfe36310ac3ec92b71687d6b6bb3d11378f0ff85d98c6584bf2d2c317bf287e95537d0314519bc6b01798c26b3d942d08194dc34a884d62160919db67df95fb9bd4d917d4cee73f88914572db84ddb3804984c2da20eaac9bed684a0bbc224dd623e527255fd27ebcf6435292997fec51b55b73dd83decd002c348b2025776f2031672a15fc62ff857938e0cfe4da61f5f9e0442d4452a1f7c2687c632bfcb143a544120017e26854ff6a3e8d597ba4fca595984fe1d38a9199327d12fcdd38663dcc7d1fc7ac6d7845022de5336f9e570a6700f0c5eba0ee68c4e75295f69b76de1455406cc6b285ef5b86729230ef8781fbe63e0bd9c82a1064d\n\n# tcId = 12\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 3ba629ef8d7cb5798b51fef0959cc00b4ed788f6f37b70cfb16d68b864ed1a33ebccf4890c78970695825e78b3f219811e928d27af0d389e4b75624a06c7cf2174e2a9de6e87394f617b8fa0361a490dd45b9cfaff13b8b807e5ecb0c1b6464228f1fd968b9af8f7a63fad9a7fa53bcbc633331d33b4d7c2bac330354324365c0616bbf22bb9de6a5df5570150186f517ed1b75433ac186ce41ea4f330ccb6fdac5f8db5f63e37fd3340631f7e4c0365b75a0b2a9d790bdc6a0ebf828c84a426fa9a7154cfea1bb9450a8261e0cdfacafc10ce08b64f941c3bc23732a4c3c43c6126736d84033365bb57b3587ed98c031a85325a15ec6642a99cdb186156993ccae8e36640419c15287e7b7c0518376589b93106c434d67b5a5c1fd34fbc569a4e4edfe06b621fe3bb86efb0fb15475db5477f6f9a85d385dd49f0cf3c5d4f853d0574991d1a508d5767df9219f8f15e4760f049c84938d4dca1445df3d15f9f42191e34bdeb15742050812b30a509d4a2444dce219f05d0faf11342bae72dc3f", - "5ab1fd2f25b507d7d7e30a9d4c619ff587ea03d471c8d0306ce89ff3a8c1b2d650eee83308a9236dec87e0af54c74f402f9cb84379aa6c9586db66aefc94fbde391330fc108569a0b9d0b63c974f333c34e881494e02047b19102772a61f89f19622e0b8d92dba4acb19d395d6170dd5d22220b5e678d2c9c9cc7c843a195be\n\n# tcId = 13\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 9e591980e9ec3d62e2edc3163ac8206fc09fe026a2f7e622dc5a6d02976d30ecf141295335008d91a223ee98a143541494ccf7cb06a1aa61de524fb5bb4b379a67ed2ced447c7b395c57a625f835dec6844c3b67a85aaae10e273d3902f5f30539711f98d73f86beccd798b98541a84a03ccb3379e8eff88c19c88aac7b7ea99758194ffa6660153d4f22c1252dd1b7b574e19b3492f28cc097d3ee3f30f6b88576bc6299512f9f8749e0b297295bc275ca59f8056decfca9f3980e6f8d6e07b73e1a8ae8b3847556cd67ab77b96618979ed37744be2d6bc9f2b671615f1d4c4c1b419f05036148182ad4c6375f9e3c7cb37bb75d16c4486e97c0ac5685995cd8e5d76452934b26105be9074b2f8daeb1add13c9b127dca2858e5c80e686791a6f98cd98e540bdf27d21b2dc9fc84e09561df968d73c190b3081293d666be7d991761f4722450ac249a6eb4bcdf190c214630c85243a6c5970184e257c00c5a2a18bcd20195fd041887f001e06d4a6049e210cce62356f99853f3da2522d3d63739fbb2ff315e68ab4a05ba1e29e5b93808df51aeaced52539d7b956db2f229999ac09a6d4c2ef8714ef9d4783f538559f29af9d850bf71b001f231270874fb8dc60f1d1554f60fa69cd657112530e22563fcde26c3c86137e476a2fc1d8ba4a15dda42d4d8a20fbbad7586f472b716d6ea2ee30f1c111bdbb3db8e5e2d933a8\n\n# tcId = 14\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 23e198d582d048874ce4e6e69f5a81234ca08be1fc9cf0f7be05454997fad87da8f05c2faf7285a7a9ca7aa50f772b8175479b7bec85919162b8a7eb7cd4c1b8f0aaa64a8f371e23ec2c3428d7d83411f24bbd4b80762a75fa0e5de468a71dbe9bac382b4072241e3c7085ed2b9e72ec3779c1f70bbd0f246834f3e81ebffee13312d133e1ddaeb58b84d1ac1b441f311ee1e2c9693e300862cdf5b4a5d820dfde870da22746be0b12dfb943780c0ba928c657c54bea0d84db37fe50f0965ceab905f2ec3ff177421b11c30e846ad93212485e7f6e52d7d51af1c96f31fef174ab38cfb1b1fb5961cfadac518a6a4991ff2d561a7d8dadc5ad430c94b40c04a297012f81e6e84ca02879fd82b73744c4372ec02f141ae6c4ce75595559f3f4cc9e4b7a7a6d93636487e34938082b3fd5f09366a062484d1820586a720a9618ec18d980c969a28d74c81fe4fe7bb61986769a89716c965a7f056aff60e9175527778210eae23e53e244b973b2452f40ab375222621a89e1f5f2abfe5039708f2a659553582f760f0d264f854840d069e8c4db0246738af1697b05980c1f53a1ba4eef8e08583781c13a93d03eb19db75e71bdd0602b91908a885b41f0b8d9588d6e05796c8a6f8d220922ef9bcdb026af9bb328ac7d96d4078205ba1abf00eea45b9c260e3b55da036864bf5bc0cc2d3944fdbcc7e64539a45238bb2061210514\n\n# tcId = 15\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 0147dc7e2712616f76c84caaa47f17f267954a0924bcd846fb3389202c059062f30b786dafab71fd7464caaec5a968f75b20fda1a4c074c89b2732baee615c6e88d1e2e2fad16bda01db395df1103e0d1796da2fdf9d9c8c1c776578e8acde7d97808deb83d0c4e5115de538b3f5a48ead7ac6b5076b12baf7db4aa68a091174020e5e4adf275702020e6eeb9d8c4500170dc5e2171ac370763f7b1000f805d924bbd80cec120446e9be5669181a8e4eb033ceac5278e7b80ddf97d1a58737f072957a221fc27cdd18aa0514b0811e967d5f0eca4f2553dea4760299c4db6347c9070759809247c48d035cfa06caeba20db6122cc70f81647e93f5fe63c4861f637c3623354f9c2f8bd2f9906b0860d0c81c05a0033d966323c8319c5633f537b9180166a2f15502b5e06dee09616f2589606e7229a0e6fc770261abd737c02cfeb833379d0d5b850a39d4587566dab90ca7a8331654532b589ab7aa20376f355aecc03c2b06149f2f9b4290d0ed304eea6947d235341455ccc04e91e3c56db5d1b74928c3451b5a9d3ab246ffaf7773b0d86f35400ad2ae02ec761ae675ba70d1a8dfceef2a8a70caa3e4aee8c98578bb8ef5a8e2570646d1e62ec2fcbef115ceed2c16cf944b4f175ab0899dca124683f3bf00dd0dee74c25dc4cc82e80d10e9a941845d9e174dbc9844941738eb22076a9f6253cf604d62346c14663bdbaf\n\n# tcId = 16\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 315a9a4ed7b0ea4db96b233c62a0e7bdd725da924ba2ab8e2f20ccadb2b5256bca0308cddcf739d1e6b33a859f03c550d65c78958f0eeabff625bce6c8ffe38b60afff13cf33866c35ebbfa85b70a3c592f74e47fd97b07f3a7c4f14e26e7be666ff64cfbd873cc06dff82da222dc135ff47f875ccd695ca8c64572a97b76ee7c772d9d07e4476fd4e945ab0146ace3f0c2fb98c34a066f053d93480d1c7725f858e459b0cba699093e8c315bbd6d1347b608b51906d44d49f106ed866e230785afb2a2002b82305bcdb9927ca266ae641a570d0b58f344b5e077501d6ec2fd69b3ebc80d7dce55590f4504fa809178d92b45aa69ec1b28fb69197991ef33dc9f4cd661fd6ae74eb99dfdd1ef122f12d04f7c7e624659fbcb2b987fd5fd25a104d735acf50f3ad070333e9cd4e659aaeb5dd28c86ef0680d0a6b526523e3e5a04cde0fa997c2a4a4744cd87170971ae3d903e0c085b6e62f8b715df76c7779a729c5d92382419804eb32b23fe4fcbaafc58ffe9475710e789a09cd9c3b8737032222d92d0a4cdbe53902d167d49f41e60c94ba8ba119499a5bcdd3eab544cc6226389c732d782c69c97b56c4b701a6bc032079150ae1af8a7ce5e0ac540781e84723e076911f4cc238e95689ac12d05676cc6da9219c491e2efa2af317407b5846fa852261181ccad659911c19931fae0f7e70e44d2b056a2f63d2f6983c9502\n\n# tcId = 17\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 07c9a0c4ec1ec530aff99c7add866e0d065ad0d4b8c04b1937fbd821a204d11f47f61d934105028abd2f4630c5460d68ce33a02a95866f6b58bf6b3cd06a82e543620cef0e4261083c672f2289f3779bd085368d75a0ca002427b0997e1b13f0ae4e2a32d475c0ab3c7088219708c1b774577db73ddae7dd22d32741cc3815029596c0f654c45d6795d47b4c1007d25e026536124c121b5c1ad7ba59b8cc5ac7c288ebee89df9a7385676f4c928da96b2216505c164f527b0c85e4465809a2bb834d47e1f8221d62f4bcf86e92fe10b11dec6b0d8aa34cbe1a8fc43619f99971c85dc3eb4aa091a76055c41151964b5d65f593efa0dd6a82f076b60a71e11d88b40c5c5643e9fde6c05341d2e32bddba6050af72e8583f8ccc2605e7596f7206ef7b9b59829d911a9b5199d4438f642d2367d28b5d4be12cfc5280402d86712b6eed2ce2ebf37f62bcdeebf989256a1e19dde38f32e3980b8fac73ad9153ccc0f140c96413bf7899d8fda510d8315e7139e8f749f8ecea99afb63af081534cc9847d81e520b926b8f0bf1de4976c5f6de8b7cbbde644158bbd3807bb9fce36339a06d930c137230f52fbe546066bf6064ecdc76568d36ae706252dd4a9bddd3b2567ccdeb3bab11bbab3560507b5557a9c66aabf9e2cf3e42e3691ef77a3b29889a1b7e7287b908f1c281cbe2212a3d980bc3d312819fab824504167ac01c418\n\n# tcId = 18\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 22e1bb23c2bef81ad373284aebaa714bd1a9aef8bc6730b66e73ff0f6649a17b2a57b3b14ee4dd0362f659b69c1528907ca7ac8a9e5017152073b06491b255a7d5b8f6909c18583d8d118ee32d3c31d7845c30c419b518575b47b6c632f2102c4fbc73c2ae5920d97587ddcb63eb922cdb68c00ad477e028049cac752e4101c364e11c61926bbbe731a7a09cd30c376ced8084bd1e9e7532793300f5d063faacd167f014e66f424a50e2329091a63861539327b664b019124fc3f3131c567426036b55ccd7a5e37c3cea52ed02ab9dfef0d4c08735d04aa32f11938c18c7ec8c126e90793f6f5462366c869c7178701e3ac87e68d7b8aab57e5750b798c89bd528edc2474627aa5f087682b9b652bd6d61455a2b7181e0c2eff78b89fbac1a63691a3c94c873d8ff6969c754d62e1d135e1a69276f978169ffb5495c6c26f77c9a9e9229d436abeb0f635ceb786e5ac52cb5b57bf6f0778b62021c5ebe358099a995197712ce187cfcf60da15c04382d2828b6422e1959445be219e9aad957e050bc5214e8b18e916eb5d1d6f7a7bcf64291f51922c5c41d053d50ae98ff3c3942fbd55168bb2c439835f79d1fcacb3b8f1e40bcb2d3eb1db774b07822a4e6ffd021a49fd9eeed2060a79c3674c7ba5f7ef6c909325bf53739da9b58c775edd9ef54d625f00b99bcbc5b2ff2934769a497597862c818428eada5058e5e988f41\n\n# tcId = 19\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 960e2cc16879708c9ae7329f118b3d9c8c7512f54411c7912c18e1b52fc9b644e72ab9f467c78069e2fd0156241b82b6677e34b782b7fb0094c67adb4827e050b0b3fcd1a050a6fc4e7045b3766dbc9a3f59116226ce2a2e4135e21697bf4560a32b385eb438e78b9adea06a5bd2fe268a1cfe763be160d0c5628fa009c870deb70787d514a78da0b505897afbf0905c3d9c2d849f8bdedbac1ad26f6fc34f74fada027f49972b33d03e9d82b04834a6500599d12d524473b4e8a8d1bc8e4402cc1e5224f62911cb0cc922513aeedae57de13c037b527e36771d555c27ad4c92359dad0f4617b22fe672f01f8967ee1d602f22fd40b6328ecd7698fa1bd8fd5358b5f430ff37904d607ddb45ceec4e66f8a4a12fe24221db24624457589b81159869c26088d426fad0a853cdbac650f4d1fafa913f98069a669e2f0c79ec84ee727dcbcaf233c7908955b98d6b5aeefbe8158b8e8e9ba60afdec7556f4278a78a84c6af3ff4c4bdc7ee06bea762db57e996e81d05ae3ec62e8d99a419c1ede6934ad1b6829d580643e16392d53d268ebb1f225c8011fabd908ce7e0c7b865f1e75290935b27a236a51f32ab43c827e249321cab4b202e02c09a747fd06468dd97906dababc0ce4e05863110945233e2138f5f8a3e4b994ac57424d9a3c1c7075836103ede5b63e2645be30c640c66cfc4ed4b26e76efd8e02f4de24699161c01\n\n# tcId = 20\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 492af926baf970e1cafe0062596f226f8b8c38bc1903a3754f83745cb321b86671411b9a96ff88ef68119ca39c8fe4599b703f6776151ef78", - "44a9afa23ca63afa99b64721c1904329eed182a3b61f6e267b6d80f7af5b8a9a40e32e5ba6c029133c73e24c07e64a9343ea8f9b7f6658ace44645ae2a0c18ead4969f73f6b3acafe5b64d285d8fd38269c14c266c1a67f9ab1fb83793352a29ec39d847f02e1903595c88d8c64965507516309b77185a31971dd47ac47f9d7cd04ca1a33e5f61a0302c1dca998723310e0bf8af8bbb42128d3c2d0c4f90139a78bdf3ed4250c2092cf927ca137ecfce6994a6b6c12f840e69ab6855383ef93c33b93b984f5455eca3060b22712c6e82e05eb204bfb77932d7f1f7f0e9954268d801523b1649839cd6b4e04c5c9ed37b56d843aa4f9d546bebe4f2b56093987c715e784c15e6be25e8af454755e4fda56b2b8bc006946dd55469bdd9e5d5843094f78a9d74b192be98dc072da23ffab3e8fe603f7e467792948b158e84c98e8b600c97f0310241310955ce99c65f4910107f4ac96f354fb6005eab9c9f1bceaff68167bb6f39004d37df3b5de71ca13d0bbe1a2420843ece44bd3f5fca845563834eacff00fe6a16972ba647323d637fe8da1e2cd3eb1db2158efd395ec65ed315aa229a7733dd70b741c6e2857334af80f392460c1a5563086f0190e15238cf41e74b76eeee525\n\n# tcId = 21\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 94987f1aa4dc1f0a782ff78af1da6495309e247f184b683ecb3ac5f2319ac6cb324f6e081c69ae33d2e8bec90862739187336d1133856d6ff47fd00296e96d9be845a4d606b9974edca34e36cdd19fb0e61ffd526521228f38c2874e99ca8e03f59269337b761c822df212425b38fc853d998a0d411d05a675f7d6aabf64c8068177ba8fb8b36e18df86e7f6e91368f364d7eb91c4b5878a1e4b610d089bb4fe2c4308a3a0610cc3070656b5d2b2fd636fb2ccf7731fc7c850b4cd196ca68992c5b6f2fd87d94d3c7e212fb914362657011ea8aa90baca2fbdc62e51245b88fd59a4f708da72c19202fde546a5f994fda930b9625324846e05bedf4a68d97209dec7e6c4cce36aaaa738876bab824c6a6b7d3bc80befd646fb6e08234cc60d038c510776962ffe26d4edb8ec8e047331ad7c3c9d2d0c8844169ae715a04cc53cb75c2bad8e6163ac43ce4be7c57411eed9b2c986b729af33285a8e487e26ca3254570202bb3bf4f19133ed4ce076c06af6867489c983cd579a705af7ab6818f7667ee0abcf222db7e2e956e26bb6865e7ecb2b25894ee4d27ce782c98a3dcb896ab27aa5d939f5dfc72441d45d384387bc2a162d6240eeb6d0d58eb039f439992d782c7743dfcd3a2427c24197656931b772cdfa9479e72b542b56ee393e3fd63d3552c798e49c67a6777e62fa2bf7bc41440b560f9bae3dde2f3df1da81b9a8\n\n# tcId = 22\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 445e1dc7a54c43c7aa5de88c92e5ad7dd0895513c042c3a76f4cb12231e35ed524ac846373c7ba5075518577c07063f0634734c8d5fe0ca3a870d1eaac6c8762796d310c5cc9f95aaefd1ee1f1d9adfa511ae4b3ff022eb7224f2d0b4a70915c8ae5fa3510fcfcf05290c9bf5218c39985df21a35f2f971f57f52e493a17817b2a683f82448db330c179fec67640607b4e4d8baae3a86c33a33b8f9f3fd558ac20f841a4d0b58f07c52fc25b98d5713b90bba6db7ba1aab130c7fd988ed81e56280ac4cc48ac165779a5d51ee976a28df0b29b9d5ae9a8fe790b779b9cf7cf4c8060f07e3fdafd120814788bc83952394f6a71ce3b280f065cf219aace434c345541486f05c4744b31fe747b85fe46484171ad66d81ff228dda873c49677c5785a2eeb4534d90113b2d4442af909577420de6a732905636972a334f3670109aac0d26aec70351312930258e688b8b191d2dbb9969494d1004f6747ccf63e8534abbffb0aa643dc50ae60eae61c701c89034ab3125929011420f1d95eff52189908c2ab1e9de77ce15444f5f1cdf9b6a70b5d4adac1a371ad2398f2781a0a5bb6d1c8bec564960050796ebe0ed50faa1d353e6ec959aec8fdae8b3ddd428c93c86d431af7ff53afa539a87e0c07db906692784feaff4a3c20c0f71486b25ef22a16fbe4b3cdd9de5c6c72cd02d1f041787f5052efa621bd89cef96bf48b0023f8\n\n# tcId = 23\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 7dc31d29d09e8a858c07924152b0f90f1b575fa9d77ee816acf6aa6c1bf3156bc25e0bae5ed6d9721604115c467f0bea762ddcfa0fbb45a1a9c97c58ce54963aeb35e63a9a26898ae3b08c56f24cc9d9fe2b3f80092cb18581867e4941eb1d1d5899c896327806bcc45ce51a6d5c117917f8ac50445140d48cfc1bd4d37e129607b3949f93463a72ff3dd085559913b73d734c406cb4d8ec5befec27cd8b43a5cacc5afdcddf48b0c3f99a761a74a249e23884aa5092bf201089abfc2b4e705a992a106254b94afa6946f6e43ac533209ccec7bcb2097f242ed4fe8448b6729aac6209b88ada4885e3131782401ccea29b45f35729c5eb810b35239d65696b761785ffd712118c2d1d2d858f7b1cb13fa9f0575b6156f330d8de9dc9431b1a48472e62cfddff6e3dc992a0d2cc4c25671f7e72b3b31d9c4a79187d0336933a6750d8a6d6d4e63332f6158d645b6b94b32f5e3eb23446e62fad0aec1a12b6e1e3e3a735beb31629305dca8ab9ef72b462ad5a04b13a3aa0737273b21fd94ac322dd2b01321f860dc0bb4daec423e3b824f76ba0955e1bf3c2b17bf4275bb91f3204c476a4dbeea928181f5038bb6e78d8b2d5bd1179726bb622694b162fd36e337eff3d41cc4d231869b3f4a49afbf1318732e5644bc32f9ee0f3990cad875d7c09b3b2661a902bca01169943728f0a3a3dfaf5f4aab9a8c9459bd19a6427a8fa\n\n# tcId = 24\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = c30b3f70a397dd8657bfc7dd49bfa7606a0c91fedc39f8b2b2bdf07dcbf8e236edba3df876d58ad90734e045ec3bb10eb6f4f0d04a6ea2b6a29c446d4be3dd5b9c7caf51cd8a591d5238ae252fc0eeeab8543572a7ed61ea77f5d619f696740b1315f2ec6a4ae9efb5a44e4028f6ec977a7439f1847b6a5341aa44b3a495b411fd9883b0f3c782bd4f416ddecc89c6ccb4faae810b961045d7dbd1d605a17ef5378928b1f4d2fdcde8bffdf6dd56bbc2bc9fe26d3f95794a6dc94f2b06521541f8d9e63c81eac921b90f171ac2a178924c45d9005c62b1134d3af85b11b961457c29878fb2442c1b48f71968a83d8630b14c32e9cb5a35c27e8ad6f075d42429721dd3ca7ef4b6daba6e1927aef2e3b8cea49c34020cf9769268e83cf098562fb7f70b158828d94fe4aa84ca5deebc7ffc8c8c8a4af42c556f50e3752740ec955b7020c3b9a6b406fd18689b62719340c68a7b63924af27044aef6879b725c97b4be9bfa794eb3572bbb48cfbc8bf6695f50f5a18b0f35968a0849bfff7b230595338e3c1f69bdb08dd5c05e8d15cc0aa1311fd726185b659cdafb4ba9b904532fa38c77cec9719de9b98f73524b4e9aa282a855f6932f547bec21c691cc2cba9e96da35b6d808b7f5fed29747fb1570fbe0c02674b1722a38434e47d7e4aa48267775e9a3e076b7575bc55b6dfcbf721a2a3e7a7905b0b486468150295e1269\n\n# tcId = 25\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 8d91bcb5e22a56e39266ad5dd457fadb75626a69454d8606f52d11dbf016ab2d1a1758f0fc3bc95e9e6df808dd0a26f62ba25bcc90c756857adf66e9ab3d8e6af77c86921f63c7da72614ecb521e382126ea8a226c1eb33384d134561e835024eaaa54cdf7f5f4d751871fb2c61e4386120e688650be35c871dad4b7d055c12ef534aab68bb562afbaed8c47ac823792db900a5546c957571504cc4165648f586457623334c3b357b688cf82242373c5a7e48bbf92426e4d33c035a6de4e1d806577c54ad6874d04c5f48994875f41f7cc3f266cc896ae2ef5e875ff08da0b411a66be3e7a3cfc740b9855de42b3913101be2e18284997afb36832d62c8a4b6898b36150bdd24124adc8bd47ae722c2c2d479e13982c9c225616100305019a3d609887222e01c815108988507fbba1cf288703d47b36fe1e54c9f15838e765d95d46155061a10b055b47352670df7b0fcd7b7f89c5d98b5f2ba99f4ca11bbe1194998136c942905db13290e265a594fddb5f4ec3f7734f384bcbaffb70bd78c21faa0e439aa0b3d3ab70893a447337061243de88e13cafd02b53143330900bc009c3d173476081d7948829407502480c905254f8fa36a87eaa8f1265f5c49e6a57c9ea50f1888e64781f4ee821dcff7650636d6bf41772382ca9672f10c599cf90293e39bc80ff4910cd2712cc3ce4c7833cad1a671e9ada9898e9845997f59a\n\n# tcId = 26\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = a71ca7bb56501b24e9152f7c08e2002d2b0b59c0a00e20e5ae030820caef502e0069eff23bc65449e13603241b3e06ca71dc0fa46cd7b4fe128486267872315ce4230ef9c4dbb9131d83caaa5eb80c98dd1f4458e71d2d6cc450f43d4049cbbb97bdd97e7d7ec22a2146907469efae344e94eee8b56b44fe5f86e81074c0efee8296875c95c6a780ad7a301428df907901b03cf58a69b3f7404b4af276ec5bcbcdb345b587bbb7b84f9b7c6304b59e9dda1fb313e2810e7e514c80a702f2dceb6553ac0942ecc2a9c508333df5b2fb36cf50ca7df780bba3b1668730e5fe829758d5f22743bb6b110fbad6aeda879084d9f3a519db5e2e4af0dd6edbd779856bd0556b9cdc93e3d0849e76cccc7cfccaa42d925c04ab6c75b58bbd513189b3b61238eb7b412454966a46920d78c20d7a13841190ebcb2d778c5c59ddaedb6c7fdf2dbf0ef244ff96a73ebb4028c1a3d89f57e1a05983aab15f49543cacb7424bd3f48f117db2ad0f27a1f07a65d4cbc43edeca39b88ff35d910bfd87f295f0234bbb1f8efd5b0b3aacb251b7bbb628bdf43cf8276d26e0b0e21bea693c778aeb1c9a2a9b9f7c82c6b0600685a70f881b4354176971e872507d916806a410fe43d9612cc258afd639a59c89ff7f62d5e795b1a3c8817e0859d497806433c2b8e00a20ea05a68af90967a11074ab0866f253f79de4dddb4e721ead959f1f74e385\n\n# tcId = 27\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = a658b821e9f496bfc4d0773bca57118363c0cf6e520d4d1c0e5e4cd92f41f3e68bf29fc2605b98adcc37ddf1460d53a3ccc714c8dd29c5c5f30f234dfd0c2ff4cb88f998adc6801d87f2d3bbcdcde263058d38612d2c476d899297ff5b04448e4b36be9869fdf301f2aba98004eb6456ce5a277ee6408908cccc9fd10948903d6724a32211341bb4f17ef82b58d58d2519304eef3d7df172a317657285fdc3ea170951e5e0d672d50cde0f9502d6ee2d28684deecddfdcb65a3c6bfd4a213ffff97f291d707b2fd214ff207d538b40c4b07dafe059e96690578a86daa08878addd8e4cb422d7cc1ade303d3f3f43b3faf54d6a9316fa862a209d5f324763cd4c9aa4e1766ce52b688e7f", - "32e3680bda51fa1f93404fb77f1e1ff14ffcbc6111f085501dc7d53c7b106d651b562f6357ebe217dc3d6040b57b2df4d811c9f82f2665c18b17497827a1789d9c8b26178ece684c9954a1d5880a0da8b338f111ded5a34f3d4854e39c8a49ba28a89b057a69911110854f247fc1f6b77fae7c454e2f6990e194bd43241724331669d41e6a2b5a9de2d29efbcccd9ae9fd912de728a3a8bf86b79f991b024648c6309feb0641134bb60724ccc59b02b3d629b2ff0b54964d4932bc8953a2da75f8b2fc74c046db96b03738d57d99f061301fa9d2549f9bbe990c8cd7e0b6a0a94e00f30cac6400120abbad679c761c7ba07f54098223\n\n# tcId = 28\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = aaeb65102cbed1c602e4544cf08a44fd282abc4cf6981d8d43cf33004bddf16cfc5488a200ef3935bc42dc6b46a60975a9f1d2e2e41824e1199ccf371b79c91b8fddd43084d1d1a8e8915d5efbf1fa1cdb4759aaad092efbf21f8bef084da1d654f801f8f80051c8d2d8b79fa9ea1578bb54f1d9397597fb164a0316d0d3c7be4be714d0fd1bfaad27325ecef7573b77609c6430c8b1cd648ae574c58b232078da0b5521f376f13b34635a573bfc298cb010f663db67756a9d109b0cf42caf35345ca8cf1ccd15b98a66574c8c6d119ec26d08eecd92fa61c609c302c902a2cf9d78f644e9db3d99d5ebfb4561fb72c33e47bc1f5385362bba51972c1fd9c94c839a6c4a3c6169a711afeb4d020ac6029445a5275a72ffbc3dde7e1f93f5f4eb00492ace4f45feb7b15a882f26e36146a2f55e18a51e8ab329403d19cf8466bae7baf449b84b842e3d2e355ad81fead994b711a3565c9f416c8523c0b26300a53e2add01f4bdaad160bca5bacce95d7b69f1086fca551bb2616818d267a2f3351d17e6f64a896d53265314548c8ceb5f29829e7e2314c5ffacf3caabbb4067441f2cce5693c4c996d887326267cee4e7545535feb7e7cc8e3f36f202ae3210999d2b5df472e0cd5e811336c19db898b6217cbb3f102169fdab8629174cbf04a53690ee4d395f064c03acd7bfd054381198031885b99f51117108f8c04f2eef57\n\n# tcId = 29\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 184964ce5d2c22bd587ef648cc499b007badea08387a646ab544ba57562444667d8d0dc09baf2ea98fd096eaff5dfefdf16e0fe09c88fd895804ed977fce48cf9cc963434dd29d0c612f7dc0cdab2b992ea298393dd3dccf5498100d149bb3b29f7be67397513d532bc30dd964f661726672f6064b657e42f49f6d5e9b9170a8bfd8c2b89a6a0cd1a1691b38efb719f955b478f468092425077d490ea067d72a975df78cbd91708394bf6c703e92995bc79a071023960e0c29de8dc115890b3b250c69242fcfb76bea21b1a72acfde90adb34ca92068a2fa2dbc5431f48b5864a20a6227d521f9ae0be92c4be7cbde99157c3d5d767993176997baba3c2a3254230b8947178640f87372184df010227c3a04e85a4a4c012fb3ddcf335f18a131a864b84dabd75fadea39236e81b15241b8bb220383c6c134de6bf5824240c7b884bf41b1819aa04df77c02fa920bef52c7083eaad216bf628b0f0f08e5b995a9a4b49d9b28b1c3636c9c1ef9cbd7f537d4e3026e869941edd77759bf254945bb095884fee365b34eb9f7fac3c496df866dfed6b07a35721c8248000147677e0960ba2ad077d5022382d9f8415368d79b4ccc28882bd8dfae86bfc73274448cbd0a96ee70650a48931cc16354ad69d3b68d821abc548e3d3c0a7e8808c88d7ac0dc792ba2236e092b994b9d5a7501f347716c3e1e17cbbf8bb9a3ab15c39b2428\n\n# tcId = 30\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 36f38c26e0a23f6cd5c816bd3d3e57688c4f58126b4dc24d5ec659e76c1f97a7369317ddea841a3d90a00b69ddbc6fcca2768c85250cb64c5e10452c2569126c9cf5fbb66c6a98849eddd51c6fe6f87737554f1ebc99cfd161f727bdf9da0738af5dc076c27baef7b4b2af498137475c5100bbea7cd6ad83de7c6916a9cdd3609199de4e2f65d655adfd603b4ddc507d7364fd67940c293d84ac969bbd64e63a57f62a87f5fb3c100b0b3286a1c9d2dcd263c3009534ae05272815c6d9ff82d0fa59fdd91f6a06fdacbeb6806ab71556b4bcb72fce2bc74aa0e12f0a831e103fb248bf1dda7b6eae1d9f2197dcbda37c343bd679d66433d14eff97905d2220c2672d01f69c07600428d47284b1b1d0305ebbb78bd29180d5f54344877e741401fe9cbfb671b62a254811d21f7595f841c2be876104abbf10c2a06949500f7cd883268a1b46207de28ac102b58ec99e0fbc57c99449015ff2dabd9479b3ac796946d602d4cddd9569e38e406b3b3d47027ace498dbd47bfcff785976d4ce4fb0d74b3f780fbe8c6d8a6baa50ebf53111869128ec354ed4dc0719f3cca55f610c5f82b97a1fa443ba73066236610bb6bca882d46dcd613b0f29d4272773456fb35fcdb056ca053a838abf65ceba0ac0d0742bd633351c3909a9289de1f0539fa19c1823aac286e88bc8041edcdbd4b62612b1f1610a0d519e161b2a305cd33eec1\n\n# tcId = 31\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = c8ef89f800577cdcfa788084cbd57f070d634ed7ea5aa8c1286b22e9ab33f44519d6776de6b3eeb6d7663194b3097f428e8c52462549b64d3adc26beddf3283fe9af81c46f54fa5513b8df69ca951cfaf2eede4df6eefd39b68d2e5d40867a517567dcb0a4b954c99a194ac448d38cb792782bf07072baee13928a708521d35d97babb3c59095d3026e8371a8067e62bace0a6b42405a4f0e1b242a7ceb8b193d9e0584e4e231def3c1c727a999ab03ad6cc7a33d6cb147c7eab81e73948f58d550750f4d5de507f9a95c5f1a99cdb38215f4b2f22aba9a313b33edfe66473c20d3b3a109ae1ac618418fb655da69c78c56d0d8ee95ae8d569d49ba395473af9e76402a9f4b071b14ede2c28fe5666c7d6302b0914334c420274a77629d835149cd1ad045dce4aec198810ce4167df8123a2b124c7f5fb6d5bd653ca55eb88a8ca2d51f9c42df365cfd8287fcc1dce58f6051e33fb0f1219f02518cbd01d86b51132b32ac0c1a6ef7ae0edcaaeb4fb190817c3c7b6b865bd85995499aaa7d87652fc1b44d9dd49a545a5de0f5f58a4798cf022e97fc8ab28319ed713c3a11d42bab6e2af1280139e03b27926812e5c67e5526c2b9e0ca318fbd48fe951717b7a5e901b782a81253d859820383a1cdf1fb20841fad390e53841b236df9cc7bb665207689e51b7d3948cf924f92d05d2af4c04a8173f46407b1f4d1b1706d27ec5\n\n# tcId = 32\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 83706cf470ac7e2ff571ae2f2fd618b5eca1a794be64eab576aa63e0195ddf9e6e5c44381e3a811387ec948eb2e9006d991a66dc80471f1b4875e014187e0eb1a7a497f06402f390f44b8a5beb2521ec90da193169eb86e44bef92d2bc11150cbfefe31fd9f7c6fe09f6cabde4797bcb861fc6686a0dfb38a51b80631fb25d7bd84c30d2779cb5cc6223b2e0ee8a7343db8c03015a3885b6f66057d9e9281826eb026824f0cc9059c1b21a1b7cc48b80a41713a3d07f85584cfa0cca6f65018713cdaf3ba6acf5102e0c22b2b839c8875f12db8d22c73a153923033e61a4e7c4031006194f3dbe8661428c810f5d1e93e815dce86200a3fe45525c308c5659e0d022dc0640df0591ccc5e704c8ba261fcc53d2c53eddb47f139dfc8f19b5fbbd4b498ca7b22b5ff6016b4c8f6b98e4fd4ec3bd3b4d90592a72d57968a21e912f597440ec068c7c27e7f57347d16644d78e7733634f4ef71635a1c2ad55a2448b85f1eab0feb92bfd3139b66726c77b78d5778fab114eab3d72d3c924112dfb0eb5d19958b1a60cb8f7379d53a6719b3d3a4c9ee2c2acd76cc1e5f3adde590c3e157229b9051b6d62ae4469ca3e55c184060862488160ad35c12d86e8d379c4524cead0d7b0268c5088e31717536f99cfaa7459fecc0247233d6fc890dc2f98b21f4e6008b8f89fcb119cc94a6eb96f87f057305549d18d05af0964f5285088f8\n\n# tcId = 33\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 99d2525d1b4ca3ea27d97237c9edd75d44e8cff850e8f3fc8643c95609db33aab1e39bbc94b00e21cba5e9b1d19b5554ff4df42d7bf1a0dd979c9699e9183bfed23c958ea7799aec3585de698d08147acc84366cff33dc45a94feb6f42de9f75927fc74ad3992aecdc100ca6c04a83753930175a85c49821420919bcc392d50e4e290d5a466e92fce5a189b9c87cb10b764c9e476427bc2719f34c1266c446c2bceb10907f730734c0706ca9de348aa5cf7f67cf00a73aad4ab2a1a8b7ccf4af5e326a0aa6df096410855271069991728f367f3569a00b9f7a97151e0c1a5898aad3ae2c9cc20e06f01013b5e4221c65d8fece68e4bd72e57a5762733d3481a721f53041e843ba06e3dbe0407c99d1897bc3b20301e469091c2fa1ec464caa650953e78007dc60750a7a72f61b2c370af195906c831b9f648e633a5c129fd70608cb132f25d51261b62bd3a56ce9c9565422653300355c7d6550b05c7c579b6378a46f57fb2fe57f2a56943640166945530cfe2410bd6cad823c73dc0ab4ad3c3ceae4e2e15225134e47f375641346d36d94e87ef6e5fd31dc88455bf70107fe8bdf9a4009c2d7782f0668739afd9d090b44f599fc1d4da05483cfdd17a9ac55b959d3af20e55a421c7a5d7e6d4200202267219b62db2f92e59bd260383b944e89a1c1beb6d5d28a9d48f235f3bbc4f172a7497c3ca8cbd5bb3418edeef02896\n\n# tcId = 34\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 121fc93905d9fb187962eb95f6f6c5871720195c624f11a552b6ff644d1eb11bdca770228afa766033cfce705effa5b081d125212bb93956b0d42cc67898be4b617405874f86847c793a4a8019eb1a1193d518f59fe85a7f1a491e68ef7b1c0845cd10419db3fc9a5cccb045e31137ed0fb2180239057f207329b1b60f04bd1111b8a9f7f5179ebf98d991fb1eef76753011eafe090583a32be5010898f24b7154eb10d8dc3fda6828782268a0495e3c0c1ffe8eae51d1106c316dac5a0f07a9748f8be0c639ff12f00af0f0fbf4f651f26298822e08d65b34db6d15fea7ee280f1262ef47338716f3ddd64ec7d7109e97f54a299f07e3e71e229c4bc0f587bfc6c9d3a9e67c16aa79359cbda18f70b21bff5d6f112cfb3a188786c26f54435063c86ff1f867ff8e9e74fc9ff849c657edd17153e71d78c175fbed9d69865faedcd5b1a5392beb932dfca613c54edc8e2be963eb0e7ff47e1bf972a403fb2e257be4bb2d1dfffc84179be8061f37477829155168b25d907c3bbebe2e7492d3950730e227d1faaf7cdbe0fec3f2f19e9f98842bb29cfa60b87d3dd02e51b43468715ec388583656eb50b93ce501daaab974eb191840044a204ab039c09c092ae02dc54330fb65048e7ae8aa8117593ababf695b9fd2704f31d12071d76f8c2bcd2aa14bde65a7ac1c785843c2391462eba", - "e10812a6bb735bfb1f2ac3d74ea5da9\n\n# tcId = 35\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 290567b67c0a8c1c756f6f0c4b5157e1ab1c921af2d02d0ced12472404694c6a56549bb0cd3227c7f04e769c75b46569640f2504e2892ea270ad8bb102a001f7af1d1011d92e01c9bcbf284236151fda13a6072bf4da11f9263773967fdf3122a401e11511a04b633251516e8aed8de669a20223e0dd39a6b841bff40ba6af6934e9c9ca3fa2a3d277801e3483879640e16fbc5b8a5240e54d50b07c081f84d63b9ff9b24d703327a997f1a74098ae3e5a5a0c380d68b4a3437c7d5f33da1187e7b6ed5d9eadd1e1c2d60d6df0a0910e9f93e17f01bb2e643f451f36178a13193d057c0c8648a55002df72d1166771e1d9ae36dda2c6058bd9d2ab0a350be60b15a021a016f06dd6e6b9fc8834db10190b89bb880aa38e5dfb03bd122ea9b68ac13057c9f1aec75e90cef05602dbf4bc70d94ce7231265b3e846a2e2d00b53e8d6c04470125d07e782cf559c41d82f1e10113131d48f4ae091204ee81388af98722b17114a396764ea8a3852c1ad727de9742220cb3d111e0fe4de9a27c636e57f8343fc287d74cfa9e811762b4f9ff3715aea0a258baf4cedb89a22e1593eac18f34e83f9a34ed139158b6ad8d4b292a7e4d933b58bd6cd9277d93f67bda8f67be72fe32d1805fb33ac89ae2aa2864aa402ecbca8430bcd6d42b17fda76d13ee659a23a629bf4d0e49d5ff5e327ffd55584b254c90140269b226fe561516fbe\n\n# tcId = 36\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = c7a3f33ebacd1b82e186709375be80d2eb75086bebffab34dce599b3e97f59903f04443b1062a6884a4360d92dd8646e1455e95b33dad16854f744c4acf3e9e36f85f830d3a8b75e583a828e253c2d62df5c5ad4374110d6dd85426d86894f35833f37a7433f234ef966f830249dbdbabde11602976c1afeb321dbc46e6c481290108e97cc7cec2f9d62a9a1d0f00a26afbc74d45f6f137880909fb5167da8b842894dd4c933eb1f7db3402179bf130595679e260f38c4a33e0b3e9f73191756f4463b6cd159ccb0b41c75f9f405244de0aa6592563b6f0d3e519582acb1edcca9cf89b91589911e9be178cc29d429721ae373a49addc23d72057c6709eb0eee81a60de406444ce5f00783884caaceb1e07a91de1fc6e2b88a0c9e28d6eeb6c965d4e7964b24b09130b1a2536e117ba1ad3e4eab1bfb84918382739d3a0ad75f271ac343b37224c8b1b86ad1a62250072f68212e0bf1c9a3715e1449d44ae471db4696310d9fc7a4148bdbc29d264ce4c4696f758d4df5543f71ca182b0f4ca36ce1c2df8b574ae3a08e59d0c014fdb44c24d7bbd9d59b39ea7fc269c2d2b2163188d6339209726471fe297548b27cd3b6e3c58ac7bdbe3a792d858268275c12029c28148c2e0563c52061ae83749819e61dddebbe5dbf07e9e2e07503799cbac3c879d8508cefc172bb997d1a3b109d737fbc1c52975704b6f1edb2ba044fab\n\n# tcId = 37\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 29d54fda4344d689e54fd3a4625660b994352159a0c045d2b7345e0a6fe4bac788d54d0cd63a13f2374b6f064ccbb379fcbc771126a6d6cf51ad1aa80584046f6b33e9f0eba434d08531f091e314fe8e4075f184b156a267abc3909ba90d5c3e96ea7b3f191e38c631251176334319479a275439a633b61d7197aa45f07837fde18f5e2c639863c1a7689e6f56fa0131ab50c8021ef24ae6d936fb3da4b7c4993de4de3d0da0da8a19f1787f3c2ffecb11e505a60e2716090f2081831ac778a11a4b26db77f7659ed66f00f0c57e478dfe34663496eec5434d8872d16a65f5efe12107ce39225773488dbb8847bfc144672615f8ba18daaf9b4ff0bb36d731e1306e1bc7644ed3aa5820642f7a15fc253ec9fad79ce7d811fbb1959cbe124ebcfbb9d30127f0761585a49c772e9181d47ef4488e6288d17d49e759d39adff61debaaac8bf8e1c5149e9160a40078eb8f8ce47bcc0aa5517db7bcdfa4e8e2fc9825e18824839a2c30fd1cdcef0779b0f7a5da9af8cd315deaa40187a5c4b5a6fa009e1d9e288552be9f6cce448fcca2f011557ea101d41267c5df8331f585315cf6e83f3081ce149ea4813dfd11b217f3924324f34975b275bad2c8b8cfc670e2a8345e28fe3c1f955d88f83422ffe6ce28d5273adc1b30f26b7c558ae7688cba8ab24971baa979de2480f31812b990e14d8859bcce323437c8290bb9b89aeb8c\n\n# tcId = 38\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 5905112430194b195a3698730332de7ee44cad62157ffb95f99aaa4ca39d972712ff27302a960d5dd5fcbfc3eb48d196697fd57aa83123d62030d27dcb7f481914aa20dcee0bde8dd070e4b5939c359f3b01e40a42b6c4c4f02ad64fb15da070e68f63cda98db297cd535b2ebd0404d02df3036ddc8add1f545a6b09c1dc1d9519854f258a478ae034d3416997ce939bc72206fdcf5d18bb46be8a3dd5f55dad95e1067dedfd7ebb4c05fd57bce7148bf374cad3af3af327878d27782659695459987838dfafc00d898743bba43db494894246366fae5d377c2e5d150c2cb061678147f3d2bd24641cb078f074f503f2bee7231283709dee766609b76fabc0d3d14c5db3543c12cc481972d9d01950c60d4de5f7c01e7b4b81763467f1b6a1bed4f06311defc24453053ade5a50c3dea0117456eb6adef4bbe8afd49d2c1f5152f80f7f76e72b2e2269d3080c1545cd8c7afb7981b60d63ad0c6b1f4deb6cfaa4e0db62684470ed4013581e497c3441c4e9b481d148c89b1872b7d8631b37520bdd900ffc13348c647a71cf52933e46184c5278e6752d9c2e97aadf29d57820eb99de2b050698932b5dfd50a581b3f80a2d39df9290cad87baab094e17c9ec340255ab855b15ce69aeda9080195be03d00a827b6f5f863c16558a407a49862c535bd24a911c4dbbaf2996b680b42ee562dd2f519123fefccbac1d2a343f254e8\n\n# tcId = 39\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 40\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 41\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\n\n# tcId = 42\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80", - "632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3\n\n# tcId = 43\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00004a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 44\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea1441430000\n\n# tcId = 45\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea14\n\n# tcId = 46\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n", +static const char *kData115[] = { + "# Imported from Wycheproof's hmac_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA384\n# Generator version: 0.8rc21\n\n[keySize = 384]\n[tagSize = 384]\n\n# tcId = 1\n# empty message\nkey = ee8df067857df2300fa71a10c30997178bb3796127b5ece5f2ccc170932be0e78ea9b0a5936c09157e671ce7ec9fc510\nmsg = \nresult = valid\ntag = a655184daf3346ffc6629d493c8442644e4996a2799e42e3306fa6f5b0967b6cf3a6f819bab89bce297d1d1a5907b2d0\n\n# tcId = 2\n# short message\nkey = 976696c0dc97182ca771975c3928ff9168ef89cd740cd2292858fd916068a702bc1df7c6cd8ee1f0d25e61d4c514cc5d\nmsg = 2b\nresult = valid\ntag = 363e8973fedcf7892013dfae0b7065d61d80b98c635bc09ed860a01473b9bcd0dc550dbf66cf0d601fe9cbf3ae59620d\n\n# tcId = 3\n# short message\nkey = c55ea4c64a0a63e2d14ad42559ba7c816b8824d263c2cc6a015761b53f681e514369f0dfba5cde165320ee10a96eb1fc\nmsg = 5abd\nresult = valid\ntag = ccc2925f164a7d9662f1e76bcaf6345492bb091d4d2d775af2178a4bcc1ca21dcf8b3bf8f056823770782f25a419bb3e\n\n# tcId = 4\n# short message\nkey = 2928d465d92fa40072ca9d67761be66e491755e43499003c1057d3bec870f255126c3658d0d8a0c7d207df8710037ca7\nmsg = c405ae\nresult = valid\ntag = d9e19c672a466e4c83a849905728c4be1db99bdd260946d9ff52939779002dcc460c576f02b40dda0717182be96b5411\n\n# tcId = 5\n# short message\nkey = 686a3730085cc944fceb141628419818e662fe21e52bea2748f3b704f80ce801086db1e3068917b242e62b4d6e6ed685\nmsg = 6601c683\nresult = valid\ntag = 10dc39103983b3a6be376a8eda7b6f363cb91efe11b027a62440ae136bd66f98b0a1d8b8f2399099492021076afa14a0\n\n# tcId = 6\n# short message\nkey = f22d867b972b232e3f444a488dd794d170807c70eb650f952b6177596f76c558a5d860d6f7be0be9e666f9bd53732f8d\nmsg = 15b29377e0\nresult = valid\ntag = e02e4e20b5f1e5f06913bc9745c9069c09ec1369f1a296ad1d07c04cc4f9cb4741248d7ba097cd3ba0e75d2409d6a01b\n\n# tcId = 7\n# short message\nkey = 3ac9abd53dbd0fbb891f9b5e16dd45df994e5283527832707138fc2712bad9e34761e7d9c6d05d46f2c8323ddb0efe99\nmsg = 5a34155b1115\nresult = valid\ntag = 78c53dd1a2431174628f5f4867fa777afa6df1b36269bba114d016d1065fcb021170baad09b4a528f40573903a65f540\n\n# tcId = 8\n# short message\nkey = ae3aa94fdd35e2bef40472d29bdad3a409840ea441c3d7025cd72f3e81ff56da602161d84b23d1634061385be30c5bbd\nmsg = 8a140d781e7191\nresult = valid\ntag = fd22ba896cb1147bb86f8ad51c253b792657c0becc913e90104da0f139f9b08c9169706f1531a2c6c03d6bd72a77eff2\n\n# tcId = 9\n# short message\nkey = 44b79852cabcf3fe93d2fff55d2afe6a46c35b7ad1954ce0888de7b459b982722faf8b490e6b00e7bcabbd36f18443f5\nmsg = 9398cd251deafe8b\nresult = valid\ntag = 56128fb438a93f6f48f47c0f4c7549f8008a8e69bbdbf0886ec40f86e7870034ef9090d2b04057391f1def5b25e8f0ad\n\n# tcId = 10\n# short message\nkey = 03fed2f579a3ebdececfb184ebe2984876113399c4a593d98b5f5e606dd330fb394c285d9ead601748259b493335f8e5\nmsg = 18d879b1f63df3ac7a\nresult = valid\ntag = a0e3b5660eeb5fc4a5dd48e725b09a0e282b22bbe2693d8b893ddf0f2116450e0875925407e909fde0f1f728f608fba9\n\n# tcId = 11\n# short message\nkey = f4ef48bf4056d39dbba4154018c63bdf29420b9991ea594ff05e3cc1cb02e176d54ba038a6b78692519d6788e495bbab\nmsg = 0a5de13cd9ba31c94486\nresult = valid\ntag = e9a1219e86983d69e336068b280309f974ab61f25968fc6352324ba49c36ce42c578676a3a31ef11e960d6771386650e\n\n# tcId = 12\n# short message\nkey = fc771f7ccd499a1ed633d86876d707b5f1d53c6bcdf21aa2907766ab3ca7fa6cdd6a9b981b1a84a528e81444303f1057\nmsg = 03ba11f3f3173b85226b25\nresult = valid\ntag = cfb4971d5449db364e2c8d0d429a0767050d480a5397f0dcc74294f52ea96260a57fe6cad14409ad67da6fbebf2da0d8\n\n# tcId = 13\n# short message\nkey = b3999de680b11550e18631c8199f7eb8a74e21bdc9d97f781245c2af19f85497d9f38b250a564e48650fd00be365f155\nmsg = 9c658cb5e601d85dc3857863\nresult = valid\ntag = d547e4cbd56e82b47d2ec93eeb6b34924ebda461fb60e475bf328d2368618f55fbf7b0e2eb1ff542c4eb7eefbfc8bd2b\n\n# tcId = 14\n# short message\nkey = 88005a62864ea699e1509616ec48033e84d2e2a13b8bc2e8a76f2eccbdb207a95ac8e2f5b5a703b22a0b571e8acc599a\nmsg = 5a94f84541a794bf23d72db16d\nresult = valid\ntag = d6b73ee67e88a20fceb5520be92594daf1b3786c7187535ccb1f0b926dae11adde6e8697ba803b159019849df3c9d2c7\n\n# tcId = 15\n# short message\nkey = b1cbda2c9a12f92315a5101aef311e99d6db002b0e04fb53c50106aa4d28e9a346697ba97084572eea56ccfc4ad7e572\nmsg = ce12c0c78e3f6b276ac56ed7435e\nresult = valid\ntag = 5c0802cd0ed82380e4c2a61d146ed72762613de89eb4ab9fe71da9ad3d79e1d2321cae186292f7c52ab639d3ba6aa85a\n\n# tcId = 16\n# short message\nkey = 08517e8014e00db5c37f2a20f987ea2ec52e7938de018ad6be256ba2236804144ad2a1bcc242738862b40647007e0a2c\nmsg = 21e2a0a167789a6b722d1737d92f8b\nresult = valid\ntag = 2264d3c9b835aedf699d5fbfc05d46f085591441df75aa2b2873f6c8a11a0856a2b79ae11ea0a91609dbd564a0bed456\n\n# tcId = 17\nkey = 503d7478a773b694d6e552c9703cc8bc56fd49fafc9a17cab8b0332dca8d49336fa7e9ec2bcb56253fe5bb504e3e7f7f\nmsg = d96e6fed893addfd9237c81c4f4e341b\nresult = valid\ntag = 19389766789912260f3f9757df3651663829c358bb48b22c1c63132070df318905beffd45f51e4dfcb3e785f44cf9106\n\n# tcId = 18\nkey = 41341bab902e767d4d1964c0acfecf46eff1b02b6455bcb2097de9c154be1f667f21be076de18cd2c15c005896fca87f\nmsg = 4c43ac7de3631cc86f4da72fe6b6a552f1\nresult = valid\ntag = 3c3104f24b7070cc3277d9ae640d416298fc917a0c1cdc3c2e7b6da75706fd2ae234efd551af12ae29144704793e2f6a\n\n# tcId = 19\nkey = c2f83be1acce7b89a5f9e9ea7e4c4f8b0f4319986fbe479fa3b4a3c298168362393b56ea03b5cef77f48e5a72abe6d08\nmsg = 8dd0cd786cd800ffebec098728923d69249d3223c4c595cb\nresult = valid\ntag = 751c6c7d00fef5e4edc993915fba694943a7ee3a2c8e5b700d0ee536bf85fb117a9cd6c456485cd670f7a0b490c83e61\n\n# tcId = 20\nkey = 6bd2aee9dd98d6b6609fce82181b10c20bba861da68a1590586fab08c5e9e90ff584047db4760828643fea38087160e4\nmsg = 33236a9de603c1e4f5e11164224740627d10f6008eb73ec2642321bf0b82d579\nresult = valid\ntag = e4cd8b8868bb078ed5d6938e40d9ff4bf61a4994be40a5f2b5446463e5db90516bccdd19f16c92e3f839b9d6de68b2a9\n\n# tcId = 21\n# long message\nkey = 2f98ba2ceaadc5ba08880a35cb0080dc870a5734a782ebe31c4bab100ff8786dcc3be6de18482ea5d1b3bf14aeabb470\nmsg = 2d74a66dacf12edb85ef3073feafd122889cb634add00ff0395d224b4ff8b5d5d67ca6419b6826abffdb41bab427d5\nresult = valid\ntag = a8ea72100859f4b7b6f2fe596248f1729bcdf0606c900ab52e51eab548d26e1eb634a42e5fc7ccc18356c0d283597ee2\n\n# tcId = 22\n# long message\nkey = 5e5f60e40d84c7ca2608af3bcc6e04abc5f8b7ca730a78af7f6f032e5a1501695bd91f3bebb28590af1db90d8390ca58\nmsg = 2efe6a14ea8d679e62dbcedf35e61852278c83c54adbe1f1c72cb1a746b11cff8cb4fc3a2c3acd44255d51c020ca6d47\nresult = valid\ntag = 6e8c95a4097ea13d064ed10809a33b569a6a84205158bd692ff82bc4b70b47a60ed332f2f5bca5211a1cc89c06f9c595\n\n# tcId = 23\n# long message\nkey = bc310bc3913d9fe59e2012a058c9e150534d25611e36206cf07ccaefe153f38eb0eaad9941b6883dfbce01bcb5196041\nmsg = 9f0747d7396bfbe01cf3e85361e50085e0a91a7490b994031d81851b725065993f45dad0d60d794aedec7ba5d9d6dbbee4\nresult = valid\ntag = 3a86498f78c3fb7eb3b7b3d82f677d2dfe01166fe76e232083334d74f11588fd089637c94761e9cfe836436005deaef7\n\n# tcId = 24\n# long message\nkey = dc770c64d00d156e43cb74970e3a1a2ad28b6d9ec6b2b6e5ac3e356a99f879cb620f00340c044cc1f31bdccfa0dbd177\nmsg = 403fd8e3ef51b6539db658a894be85b58fbc84881e61c5e0cb13ae421a09d31d780603256d390edd056d190856be00ad20a7048f0c67416fe8e02884086155f4263262e8c1275504d4f91f2751d3c3dccd4409ff2b45e41de93f7b104d58f6e15bacb62ace9700615ecc1b30a0cc1b35\nresult = valid\ntag = 1c4f6474f39e6eabbe7a99faa234f49833444130acf01dae68d68251a930419960b0fb5f48360149e05d1209941cc9ec\n\n# tcId = 25\n# long message\nkey = cca9299c7bdc26a4b595055c99ca23bec8ed11b5deeda91f83e2365e7340395ceef4e86e5cd91f2593bcfec498a67fc9\nmsg = a05b40b8d3a7bc7b75b0e97309c9bd1c9d8755c1ff5245ef6308a6a5cad3ecfbcb6364b41ca6f3d24bbee844d6204d1026abe345af7bdec114a373b109aa5724b738d50ab7a826c268e873709f8b35135a870045d5fb9daa82d3c245b5338917354e72b3058c9a4b807117465217d7d14f36f8a8d4e97bc3b93587c92641e7\nresult = valid\ntag = 1b6b5ba848bc13dd46c35177ae9ff9bd2d6ca5f4c9373964d3182483d980b4654527f36d7cc51b9e2efe7ed97a82e3be\n\n# tcId = 26\n# long message\nkey = c728e65e08d9296fe3cdf2dedb49c81a30b603a62569eece4ee5d01e9a32ae3bcb4ec163e455e452582454ceefefc046\nmsg = e6c6bac87c17e269a471434ca9568401451d78c2444a9d6edcda3cdab51c5bed1c19eaf34326580fd85ae5236ad51bc5dae386b36101f54695c595eeedcdd0182a4a117f8093f4f4812e03db396ede9849d193e7722081aeec4be6c4caf6c979d36ead56634a21be21162ea232dec9cffdbd2474245878dca369e814fd028303\nresult = valid\ntag = 533920a013cf006aa29b26f74b6dd29363", + "4293089986aa249271c426b942dc6bae32b2641616672f3d75968866e182e5\n\n# tcId = 27\n# long message\nkey = 90c4215dc3f237435047fefdd8638d339a3fc66fca06c5063eacbda002ab335e621605f672f3da9f641fae110afc3e7b\nmsg = 1ebc22c3031b64615eb6f1a0696e33b7df139a4b891d3e6721cc26c05d55de790dca623668c10308485d38e95ec4769fa4430ca3ebc25da9f5d31c972674517d9a2222e6b97d8def6512af096c6d1480d83a229c84b7f28c80184b6bebf3f4eff5fc4e5c6cfea4f8eba9a957f7913b20a88ad1734f7c38547e934d1dbf2d73dbd61e31fb1583c7b6577a171e7d02f19045126ac2973d855bc18d34d32326d1e216da58366a60033450091128ae26a479069bba7b91b2ab7f3c5fbcde391de3ca114b951d6852f92795f8023d7a29a7f4ce61e9241b4f235d21e899087167ab3f3a0e9321c7942b165178788df48d3b106b203ec1e01d29bda41a99ac0d2c00\nresult = valid\ntag = c52b91daed6ee46416f2db78978251cb334e5d8e00b32ae06e365f455d28de406a9cce2f9f29378f229822dbf26bfdad\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 46be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ab4d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c4be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 294d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44bf81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94c07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c414d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff91b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c417d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff92b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e065b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283abfa62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e0e4b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a42a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064903603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a55188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03703d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45189e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d66bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 54\n", + "# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a4518ae5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d56bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45108e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603576bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 58\n# Flipped bit 376 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c67\n\n# tcId = 59\n# Flipped bit 376 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d217\n\n# tcId = 60\n# Flipped bit 377 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c64\n\n# tcId = 61\n# Flipped bit 377 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d214\n\n# tcId = 62\n# Flipped bit 382 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c26\n\n# tcId = 63\n# Flipped bit 382 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d256\n\n# tcId = 64\n# Flipped bit 383 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310ce6\n\n# tcId = 65\n# Flipped bit 383 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d296\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84d07ff90b338e065b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d2832b7a62a45188e5dafbcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b3386064b03603d76bcf0214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5da7bcb97da606bd5b16c92c1fc36f198c0b3a714921848d5e03df1c4849bb8310c66\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf8214b1fb88c66b9415dde76674896400f97b8408bfefa6ee86c716bfa4a460d216\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = bb417e3bea2d7c54859d5bae771a25043468259f942a4e936d3e03c90e673f4c58eb6de7b72a1fc20e3b7b6447cef399\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 56b2f8006f4cc71f9b4fc9fc289430fdeb4e047739946bea2218998b769bff06847bf7401059117938e9405b5b9f2de9\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c43e01449552032bfae224d108655a7b4b175ae0eb5531ec12417cb67118403327941298c85560bd7144041b38b18ce6\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29cd877f1033b860e430b68357eb4f8294317b0846eb14955d67e6f409e48079fb04883f6f266e0647963f2424e05296\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45bf80c514d382aa7b63a55089e4dbfaca96db616ad4b06d93c0fd37f099c1b2a615931949d4e13cf0c5859ab9300d67\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84c06fe91b239e165b13702d66ace0315b0fa89c76a9514dce66775886501f87a8509beeea7ef87c617bea5a561d317\n\n[keySize = 384]\n[tagSize = 192]\n\n# tcId = 82\n# empty message\nkey = 1c678267be13acb464939c2896c9e9ce1deb5b30833bdd9ca00370889b84410782ad52afe25dc10ab7ec5cf5f34793b7\nmsg = \nresult = valid\ntag = 6dd566be678c1e6359ab31b635cc1601", + "60a0c5a9c49a0ac5\n\n# tcId = 83\n# short message\nkey = 00b184c2c0a491d764a26f8b2e56a965222b36213bdd106ae782305c50f89269902476e5df3fa58e0ecfae82a9607c8e\nmsg = 9f\nresult = valid\ntag = 5afff4b009ca9c9e5dcd84f05607e7a7d43ee43b42498989\n\n# tcId = 84\n# short message\nkey = 055b67edb659e29c10e3e9cd25aa1cd5abf0880e2026ed8436e39b064b7315760cd7a9294ee23d4750969cc8b5dbaed7\nmsg = 4047\nresult = valid\ntag = 4d08baef969eed23b814472acff08d08fd3491a728778a1c\n\n# tcId = 85\n# short message\nkey = 9e3c198e93930f076b035c5fa8f10d9a65e98c66cfb36633e3cb33279cdf57688f10b7472d1fc9d962ce6954519bfbf6\nmsg = 88cfab\nresult = valid\ntag = 1cde3765ba5a15b1d0182136a72c603acd3b904ceac8f7ad\n\n# tcId = 86\n# short message\nkey = f5f5962bda257b38b2a2318929121b2eaef792d5c6a9585e48b80cf5357b29c3951b787ed3e03e385b05b8ffe6861dc3\nmsg = d9397753\nresult = valid\ntag = 4638e4427e6084b76c53ed9d6e916162fcb8b962c3d616f1\n\n# tcId = 87\n# short message\nkey = f62820ed5f9833fd22dee7bd49e2c9b19fc9668897c2c33e6c7c1fa5c277c3b9f581faef3ddc664ba537975d8afaa707\nmsg = 9b6cc7caa4\nresult = valid\ntag = f6e272a7a6235f60b72b4c7424cf32a07f98ea592665bad8\n\n# tcId = 88\n# short message\nkey = f222a1dabf322aff8463acee6444939331212be3e19d31f4b73fdcc97e2925365ea33c985282805c83dcd8fb42a0e214\nmsg = c85ad7872b76\nresult = valid\ntag = 933f0fa61d4466b5baf5a601f6b96d81a97e81c512d822e6\n\n# tcId = 89\n# short message\nkey = 56e80f3899e945310a9d9bef3d32091f29c157dd46b2d439ad89d63e14b2c24390f74db4d905f6bd03f75c32e91225fe\nmsg = 80ba25f1c27650\nresult = valid\ntag = a1a6e248b40864ddf83b00c52ae2c303b7e76fba0548d4d4\n\n# tcId = 90\n# short message\nkey = 6cb6261a56a21b2c3c13453c158364aafa78f58172a9ae3eeb328ac38808b5c68c111197a303ec36847c9a315ac5eb5b\nmsg = 79430de51d68cf34\nresult = valid\ntag = 33593a80da455e580ccc5ee9b60edcd1468460539788fc41\n\n# tcId = 91\n# short message\nkey = 44ca1ecb490470a84c7e13e1f1c69da21f48c33b6f050f48f7f244f0fda8b3c855904ed0612e2dafa5105cbd7f6449eb\nmsg = 870b981c8afd9fae1b\nresult = valid\ntag = 930f2e401e3aafb46a0c4029002f4ef1ab9fe838bc00c79e\n\n# tcId = 92\n# short message\nkey = aaca68882cfa7250988a247b96cfb3232d6567378f8fa7e7aaaca1c386e1ae15e54957d22bfff1e50ae7f21beea197a5\nmsg = a6f31b822ec24da1b1e9\nresult = valid\ntag = a9c2d68f0ad1ba50089b169c86d965f97f52388a48ace744\n\n# tcId = 93\n# short message\nkey = 1b32f9b6378934a502dd74d8b74a4606d5b2c9a8587fab1cfa90d75007734d2b8bdfe634815243526ebc0f33c04d0d05\nmsg = 55367c657c792610efdcc0\nresult = valid\ntag = 934083c8594591da783f0da28f4b58adb604e9cc76b99efe\n\n# tcId = 94\n# short message\nkey = 09d91b2fa22e68b5335d478235aa4e157435c9acfed772219adfa1e9dd72f33e1a2183a0203a104f80e643cdf29e5aff\nmsg = b31e254957db6b1b70a06ce2\nresult = valid\ntag = 7d45f3899455787e7116b570df8f7787f672d5821d6f75fe\n\n# tcId = 95\n# short message\nkey = d311a80ac801e3639b9185608af4a85e4122e29b5c23f05234c30d92d59ad13cb80390e5fa0ea4a54853228b356689f5\nmsg = e6b443dba0dab35d43ca5d6ce6\nresult = valid\ntag = 27297096f58f598391c57778129949b94628bf17bb2422d1\n\n# tcId = 96\n# short message\nkey = 06297e6c46558b9b0fc36c272b4ae7e65dd536cc1d13acbfa831fa5574b34f99e09adfb7f20321f203075fd26ed2e29d\nmsg = 309b95e5f1ec26f70786e74d806d\nresult = valid\ntag = aabff26fc44a40f0b87a40c175c17ea7140f8467dcdb95cd\n\n# tcId = 97\n# short message\nkey = e8b63a25cd85ad4f39e3c0e9584eacb94d6ae33f984da259aa533d4d28aeb341cf3ffe49c029e4af6a4805f760f35f2c\nmsg = d225c27795f809454bb2c51d21f3ac\nresult = valid\ntag = 0e12b758015ac89797d55470f3982c13a5ff1483276083d2\n\n# tcId = 98\nkey = d83a685ace9fa0c0aa47f0c7b4f0f00717619a82e2eeff87f51f67d814d51dd9e4cad7578a4e49b672b5af83943c2583\nmsg = abfa7f5978f751e87e8b5a15a6e89f4f\nresult = valid\ntag = e4e6ba041bbb7a47ec8482b2043455c119fbdb389a3945a0\n\n# tcId = 99\nkey = 5beaf406a6627eaafcadb6dea4e27ba4fd879fd3e5bfd87ea3c8d5e0acfbbda2c6bf006beaf5a30312e690724c4744a3\nmsg = bc57d467a9a2af64ad5e14b7bc0898dc63\nresult = valid\ntag = 3fab1a7a192359b6333a9699b75612211a38b6dccab4572d\n\n# tcId = 100\nkey = 76b36cc3b8ca975708ee4b32bdbe40ca13f9ce384c52c4b6602b7fd92164f1fd8432706c1966f648bf4830f4deb34795\nmsg = b1d022c6536f401d147dfc0d7d4e600bb753ef0e9f243bc3\nresult = valid\ntag = c91eb3f362049c5336c5074cb887edcb27aac1ef6575a92d\n\n# tcId = 101\nkey = 20569a16f453dd3c34df98155286b1ca8a392ea164c919311f0df9d39d976062f4f992b96def3851886e6295f2615064\nmsg = 5402c4e683d1a431868ad528afbf4128b0b10cef947d063b34d376d344b793b2\nresult = valid\ntag = 27728059696aed5bb00a13c1db100691d4a21ebea0a8e4c3\n\n# tcId = 102\n# long message\nkey = 9ef6a55f8a9b6b9ef1f8296167319078163706ae5b60897c2dd6e340b67ed5d577fb54c5547cd5f248f06e7082ffb826\nmsg = 6a0d16276941d8f04eac2ec723fa53b9d6b16da7e30e7f2d9ad898e7cbb71bd3dd234ee22836ff4ac6011b6f12bd3a\nresult = valid\ntag = cef5d900eef0abefc625c1d2862a3f42998ce8b1e007d2b8\n\n# tcId = 103\n# long message\nkey = fb56bbbc6d751b744d8c1b57cc27a1d2c2f4e38e3491f54448cfcfb9389b7f63fd0d41920968ef612510625f2637d28d\nmsg = cf1791517ef5a61c0db65a668bee26fdbc975d799b2623cc0f3e4560e80c7014fa9c02d568c98c86385e000fe6776bb7\nresult = valid\ntag = 88e99accc9c23c9c8c1110e7470cade0317817916d8505f5\n\n# tcId = 104\n# long message\nkey = d041e24e59b34d7a18128a42d8a7a52dcba5d79e5ed585b55c7c9e4946e5ccaf7e59df0f3da98c7d0523e4cc8f9d7da4\nmsg = 5279618f1b41534910395a78ded968aee3431085b599c4f55eb5ff8a2e879bc44291d923de31009db1b9f7f81095afb3ea\nresult = valid\ntag = 8500f603ce85c030cfa05731758b6be3317b6fe8e99b7d48\n\n# tcId = 105\n# long message\nkey = e1ce4884fd74a0e197c68ace3b29b552313af8e451e98d9ab8d0e8f8ee74143e8fcb6446217c0f3123a426b8ab6f62cb\nmsg = 71154b9a657b905f884ba5140d5e7b9243fec3e03fbbdbb360c8194963ae43177b5502cd20f559eeeff8638d028c501926ebc7eddd132ccea29ead7ad0c95a30b9d325952cafb0ea5ec9d9d6fdeb63950d5d69c8bbbea702aed1d444da286807ffd6b36cb49902cba7abf9bda1b577c6\nresult = valid\ntag = c7e9ae2a81de32280b518d055c2c9d7f0f5db6d06ad0e4ae\n\n# tcId = 106\n# long message\nkey = 8a242c22d1b54ce216ca03c88455beb128211a9f35af2343709af7c5f43a681451ea53a36de2e5048eb44a51681c6120\nmsg = ab5eee6b83869119f00dd3cc66dde75cb5700535a90e9b3e32b31434c297ef53f94659d7d9b11323161b2e66c6b9c9ad20e313303f81e88e471786c8e936011f78121e39630b2e0804fc97ce5cb3a34f26949439fe530adcea6e97c78b042e0817253bf75dd54335584122f5edd210341b6d93f58aa1b4de2aad76fecec44f\nresult = valid\ntag = 77392b18577ba8819fbd76fc73d45029e55e7ebecd58a320\n\n# tcId = 107\n# long message\nkey = 311c4bee7cf257b780135a2e4a6413e68a816f5d8462515dcb1c72494b6335581a9b60a217b9ff1c75e7768148f8df46\nmsg = 63ccc3849c4c323cb6ce926877969048b849ee4af18e71eef52fe9f274a8678560f9a5d47510c3c98c8a08ed4c01a01e0a3663ef0cc6c3cdca6276d91e99b0d414263498fb64ad74b820ab52b37adeaf27cb44545edb8f09094992837b8d3a0baa2a101a49592eb889dc8bace4c71e3efcb9d4149bd670ce2f774d73c12f2a45\nresult = valid\ntag = 94674aaefc06eead22d15317900fa26c8df8cdfb252bcaae\n\n# tcId = 108\n# long message\nkey = fb792867c8928f0503aa24477cebf42e0b018346e3619770b9e8f5097945e2e275ad06f0c12152366ac06e278c94090a\nmsg = 0a63e6d91d7a6a18dbad879fb8e23ae351920391eb40fead6cba846768a2c6797ff347b4301327b09afc41f7b803af6b61f6d9b818e0ddcc02536d0543dbf1a87f2c5e020f6459094344b72596d548435c313544e92c254d54a70a1d6f6edd2f82540a1ea2e82125b0715fa0f890bb2be4ba0065d2ba0144854682aed041c1035996648e2ed671b7253ba567ffb999d91fd8e7ffce5c6dc4790732adae443435a454fe6c2a7c6708d9d5b2eb9292d6fbe5e026d65332b38c7925eff9beb89063cab63fbecb2ac0e1bb61a5b1e511f949c43a34ee26f1156e97793da97bcf5b5c67641384f268131b297857d719eeb6cafa3dbe9b8d0da55c98656f20e5b39b\nresult = valid\ntag = 1aaaff966c0a84bac791ab9e0b9b505d393073665732a74a\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84d07ff90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 46be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708", + "090a0b0c0d0e0f\nresult = invalid\ntag = ab4d07ff90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c4be81c415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 294d07ff90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44bf81c415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94c07ff90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 117\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 118\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 119\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c414d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff91b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 121\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c417d283ab7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff92b338e064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 123\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 125\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e065b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 127\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283abfa62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e0e4b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 129\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a42a45188e5dafbcb97da606bd5b16c\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064903603d76bcf0214b1fb88c66b9415\n\n# tcId = 131\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a55188e5dafbcb97da606bd5b16c\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03703d76bcf0214b1fb88c66b9415\n\n# tcId = 133\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45189e5dafbcb97da606bd5b16c\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d66bcf0214b1fb88c66b9415\n\n# tcId = 135\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a4518ae5dafbcb97da606bd5b16c\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d56bcf0214b1fb88c66b9415\n\n# tcId = 137\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45108e5dafbcb97da606bd5b16c\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603576bcf0214b1fb88c66b9415\n\n# tcId = 139\n# Flipped bit 184 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16d\n\n# tcId = 140\n# Flipped bit 184 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9414\n\n# tcId = 141\n# Flipped bit 185 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b16e\n\n# tcId = 142\n# Flipped bit 185 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9417\n\n# tcId = 143\n# Flipped bit 190 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b12c\n\n# tcId = 144\n# Flipped bit 190 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9455\n\n# tcId = 145\n# Flipped bit 191 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d283ab7a62a45188e5dafbcb97da606bd5b1ec\n\n# tcId = 146\n# Flipped bit 191 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b338e064b03603d76bcf0214b1fb88c66b9495\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b", + "0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45be81c415d283ab7b62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84d07ff90b338e065b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be814415d2832b7a62a45188e5dafbcb97da606bd5b16c\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d077f90b3386064b03603d76bcf0214b1fb88c66b9415\n\n# tcId = 151\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 44be81c415d2832b7a62a45188e5da7bcb97da606bd5b16c\n\n# tcId = 152\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a94d07ff90b3386064b03603d76bcf8214b1fb88c66b9415\n\n# tcId = 153\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = bb417e3bea2d7c54859d5bae771a25043468259f942a4e93\n\n# tcId = 154\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 56b2f8006f4cc71f9b4fc9fc289430fdeb4e047739946bea\n\n# tcId = 155\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 000000000000000000000000000000000000000000000000\n\n# tcId = 156\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 000000000000000000000000000000000000000000000000\n\n# tcId = 157\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 158\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 159\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = c43e01449552032bfae224d108655a7b4b175ae0eb5531ec\n\n# tcId = 160\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 29cd877f1033b860e430b68357eb4f8294317b0846eb1495\n\n# tcId = 161\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = \nresult = invalid\ntag = 45bf80c514d382aa7b63a55089e4dbfaca96db616ad4b06d\n\n# tcId = 162\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a84c06fe91b239e165b13702d66ace0315b0fa89c76a9514\n\n[keySize = 192]\n[tagSize = 384]\n\n# tcId = 163\n# short key\nkey = 08476e9d49499c5f52e37f80ece6f5a45459948806b48241\nmsg = \nresult = valid\ntag = 1b6cfc8709aab8075465f32e13b0b0f796cc34d93d7bed090f297dcf9fb75e0d8e285b1500b732d554ac97ba45f33e47\n\n# tcId = 164\n# short key\nkey = 213b44d8e1fabaff837ef30ee2542f9ab82ed70411dae78f\nmsg = ee0bf48585c186ff991b4d8607817c9c\nresult = valid\ntag = 54f4010d50f80bcdb4b84d56bc4ef30e4c68f75128214cf446b5145f6fff1326a209945fc21ab5e1f5d917559ea9b800\n\n# tcId = 165\n# short key\nkey = b4afa9daaa8c944d73a3881f3221e42b34ef4e35f184e878\nmsg = cf607f6a0eb44ecbca81b6d1fdb595cee35f2353da02e82e28e133b9decd8fbb\nresult = valid\ntag = d064a51fb109c3b1d443f13f41e90e14198f846080464547806d46a8151c4e3855a81f4af40915609095dd72f869aa1b\n\n[keySize = 192]\n[tagSize = 192]\n\n# tcId = 166\n# short key\nkey = 89e46b66209548c80b0c830662223b49b0e3b895eb30e2fc\nmsg = \nresult = valid\ntag = 4b012c0c0da44ede2a427e85ace8ecc54b379e9e24f08d41\n\n# tcId = 167\n# short key\nkey = f2c10ce8cb1cf3b363354473b027c1e53deccef03233be0c\nmsg = e1fa10b8e301e0348405770bc3fafcb1\nresult = valid\ntag = 2d088af29cc744e347124fbe4100cbcdebbae037ed9bf69d\n\n# tcId = 168\n# short key\nkey = 92e074442cc4c59e72260808d80d8e7b85c6335068917b83\nmsg = 34eae27425ace17771e164cbb634306f352edc9c37bf608be8a755fb94148183\nresult = valid\ntag = b7e6b7bb29c02e4635dbdc50d8be71e2ddf0a544471de285\n\n[keySize = 520]\n[tagSize = 384]\n\n# tcId = 169\n# long key\nkey = db6f9956c3f4ca6e41f1f7f14629d44c79e0353edbf3e310e6858bbc45a7cd57778a9053ba22a141bf58bfd434ad08648c7041a224b97a0d17e0edf94fd40b410a\nmsg = \nresult = valid\ntag = 0cb1b296255bb259f3b601b49b35524a5eca6c52360754d3d96dd521c905b1c1821d74965967d8e86d50de950fe4d635\n\n# tcId = 170\n# long key\nkey = f03404bdb3e08f530d4c3a5f165d236012a4c45cd063e3e4483da088ec0afdb24e9639fccabb91f98a49dc2972e2981426573ecfe69c00c43a2d99a3107cef3a70\nmsg = 73ed9fa2acf49d6c98bfc7d6c5ad9c56\nresult = valid\ntag = b6132e5216f711eeeb44da3d92983fe5b6de5cd9410be71db8d3b07228341686aa60e7081e95f2e4b69bb7cd9648bc0b\n\n# tcId = 171\n# long key\nkey = ee799e25edb1b18452e5ed174bc6b2185a6754417d6cc05d736d2ba9efc8367e4b05ba0a2ee525ceeab74f9804a8479130c328d671e34070cf174a003a1dfb5994\nmsg = ac3e7da7e578b9b4dc2424030446c7f6aebcc471445a9e0e6e65099caeec5b2f\nresult = valid\ntag = c8607fca1888418166c550dd58d7a3976a6ecd0e4ca99b02fb187800a9c9ef909a6c1497c0652d4dca82405ab07f5eed\n\n[keySize = 520]\n[tagSize = 192]\n\n# tcId = 172\n# long key\nkey = 063d6e12e670098adabe68192023b637bb6d8d713fc8436188c4ec06fdd084ce6d193f26c86a9560e1abc27d813fce2b3eac0170fd1cb72e1930a2776bc84d6c11\nmsg = \nresult = valid\ntag = 9dc2acbfa28a7ac5f2a5bdd4b1b2dbc806c48f96ce950eb5\n\n# tcId = 173\n# long key\nkey = 359318e6c6279ba9ebcb1675f5a98195bbf5d895da9c17b8329038be857dc395b12ae91a55598876593c1c20bc0172cf15126b7a6bf0a238eda3325d6dd60600ef\nmsg = 7ad0c9098ea10e615bb672b52c96542d\nresult = valid\ntag = 4163737c219f7c5e743843dc3d36019c6585ea5d4e7cf24f\n\n# tcId = 174\n# long key\nkey = d01cd898089d8a1eeb0035b0d332da80fbd3571b9192db10fa6f55f665ab192d7050cab643996e99254d9573e0cf4eeaa63afccdefd81614fe7b83dfe30e3ba19f\nmsg = d67c77cdd0af5d10e8cae887e5a609bb76a9e5597653773c303b82b918fdc59f\nresult = valid\ntag = e7df527a988080749ee215ba0f8207838df38a37707a6330\n\n", }; -static const size_t kLen83 = 351167; +static const size_t kLen116 = 57350; -static const char *kData83[] = { - "# Imported from Wycheproof's rsa_pss_misc_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.4.14\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = 313233343030\nresult = acceptable\nsig = 88f4676b502e365dfd82805ac1db27d1107d1516431ab4f71107b62625b6275af4a5dbfd8314fae255820c0cb577ee2457f510851d2678e4ed3e6839848aca8b67c9ce52c5bf57a01b6683828d03470034b136e6ab1914adbb1d918fdc31f7cef6f44b0b0ba0dbd6c1d3c8d7699ce374dc86c28beb3bee8f81f41162344e688af0d91297da0dd5e8104a5440add89bdc6c05d20a164c0f079b78654f038d443743f94bc45762501034a32b5d05bb86e75dd9a171c81dbe43edf50b2e1fc24297375331d78a8f0399d4aebbeeed911f6d964049e67d89eec0e95443af2ceb37125ea8431cbad2d8416fc15fb9cbed9142fb8cb06dc7ceafac056cc1f6696e3d93\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 2\nmsg = 313233343030\nresult = acceptable\nsig = a85f06875b529ca61b60df404652e79a499f81a0591bafa3377b80d8e300cbae679a941832eb5569fb88c9f8629e3c2ebf5f32ffe43767d1eaf59016f5904de3f7d39cb470dfc5fb5678fcd7b55d1a30f716b7f04c2568f3c1a2bc780e974a363adc622e679902e966af183d874b35396423d1a263bb1c6e7330179671644c6953cd795a19e2fe4208e7da5244e4760dde142313a781a55b0baf866dc158812a723d74911c8717a512d722669193f8883b1cffac98de8473b7a77198e20560c0c21207e00fc7dd14385fabdd530d568d143ddbee8d1b502f7b194b9827eee9472f2be8b2a541124405582bff393412f6aba9c42e5824d7c24bdd4d82d925d066\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 3\nmsg = 313233343030\nresult = acceptable\nsig = 8189776015db3a51805f6bf71aa1214ee07f7e385510ea95a0d4c3d53bc0d59f07ca39af40fe8c3138cf6f4ba0f72a3397df6ffda9cf49e467a34d92ec772f6b6d51d52cef86d16f74bea798a85aac873cd4d5d3a0fbbb618998f4b2b691bc14fe1f235601c51a76c4eacd1a33975d9c3cdf1daf579fb943556f0febd948d1b1e15cc85edf486b00499fa9032b6b801b5ae4454c94d7f89dc1fa6dd6a927969b14a4bdf51caf7cc8a87ae05d41e1933849acc5fcb0f478f1e23a0f476372837ade82f8ed1809e2245062009b8e683f563029ddb9892a398dbc2df594c12fb4a0f0c551abdf2fee4cb325fe9800ea741f7b2f2b4db370939bc7e3ea95ab539b10\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00", - "b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 49e060ccb577eb614274db1ad34249490d1cab2b8d3ae2b708b93c8a8ead302e6efb8d26644d5caa5f62b89f3949942d07470c37d8878eb5cc9c154701feea36ac66d0a9723fb316f7ad6226f634346c17ef47b3e19c7b9979d60118959a5b35cc188200c8f9b2723046f480d95a9a0af07e648225dc35114d8199a431ccf4f44fe8e8c9c0130aa819aeecb09f95eea8f6d89981c05cc82716fe7ea499c55460c95e99871aba1ad3ac3bdbc96850863b23e3e6659ca346ee0e186ad717a8ec9c7a548d8fed0e7b79f896722659ec7e1335de12f361d5e6c65c791441c3c0020de48e60f200c3ab79fe0179513b2c1592e2f0064ba4799f6a0eea199da77d174a\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 5\nmsg = 313233343030\nresult = acceptable\nsig = 2d4216f277e50736d41cda2191faa97fa99d9e325b34926a363f8dd73c901153f087ac206cf3cb25001dffbb6200b7b35565b466f46f23aafb872e5c39d26156d36d1bab19382e5f15873022e64b58c129d38eee8126130f6210fa5ffb697bb3dcddbd99a9b60b53b25d094f9ec9b7a1cdcd0cc74a3ac478c7a34cc22c7e30e952bfac85638678b8aa2341fb1f108114d43dc849d91a3b174b0dd62f6dfb96459d4c76ab5fb6479d68d690d4a5c120c42a4bf82a8a7e9e7aba127fd5fda3f4c6ffbf2e4eeb72ee695cfeb286ec99e7cee8cf300e4e149cf17e70cf9f2bdb6421087916e945bca42a70a88b1a87e7ca3ac0a1bf2ab1a65ebab7726994a6c9597e\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 6\nmsg = 313233343030\nresult = acceptable\nsig = b66294f7b1e1a673e566c59f9abf264860200763860cbd666e476dbbd61fc39136353ab74299cbfb64bff88ed51cf9a20694e832fd97235d31ec6aef386ad44487d3753cc1224dbd59a34babc3eb8b538c10705775a27fa88ae35c0f618e0b3c6b91d999fdec5b86f15d1e462feea3af6fa12a5234d526e82039e1df013ef1cc6056221b81d755a13b70c618cefc6dedcc3361b5a910fcd4a812ae48382fddd75d5b51ca3d243dac021aeeaf6e2bd4aed75d7ff6d81c9aaee2356e3d12192b5e75d006b124275b0daec06b5af29b0d3e85f057db59db4b887fdd2bd0a33865eb87e8f3e37b4d8621e2e41c760a973f1ba03722d42bf5b921380b71fea949cf0b\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 7\nmsg = 313233343030\nresult = acceptable\nsig = 513db066bc72893653d1f7fa3f19546281b6239bc8390c4984999121a1dd75aa94004c3874", - "beb6327205f2ecf8f6eb93eab018de3a6c71ea8b2d3a628188d4aa2b1cd6bab169f3e78229e4383ab68aea4635935e0eabbe9dc1d671416945f1867782900da53451369ccbd548c8f756e7221ee7e1ff28dba099b8f28d1f3aad2ef8bd816a53dfa9bc88e4e3983b0de955e647caf71a607ffea20a9677e687cdda29219c7daa839276de3fe436b96b2c68db64c170ab9e300ced00e72a9c0fdc321a517aa113cdec8e2713f8b54ee2d78820f6f86b2f6e6222493d15cbe8ee9815ef2e7ca9a6ceb55955049db35b1af188b99f2c4bce38f130a75780f41b852917\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 8\nmsg = 313233343030\nresult = acceptable\nsig = b3e943f3982a29d0c1e241890ebdd9e734baf85bd32de80c6240e34dd1f7f0ca4f37fff2c373f9718e7e900df224d155c4463c66badc8fc3563f36309568436bcbef1d83c63e393d9e1432d50541d45e54b7af1b18cc819d9eaaa65a4b1e4f37ae16ec75e9f44a07262cf3e2dab85a066d92b750ba1cd2a1d42493868123f18017bd9faf1de1a4f87a3f9cf744da1eafc761b7e24c9929d3dfd15d1b08db1e3fc64932816095cea495e0dbb82842b5f3ca90dc7b78895c1f12ba991f3bef6f16451a84880fa31cdfda6b9624a77a3a0489fcfdf6e07b89c0689b5b7b7052372a2b1e06a3457b027285c3b160c0de1dba4910c0162ae8e737a3d7dd1e05c77ace\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 9\nmsg = 313233343030\nresult = acceptable\nsig = a9b9eef8197c973d6a73bdc165f40f0f53b05848c93957aec2785fa92a9cc6397418a71870f1bbc21a39b244526b4a39a538d149cde62bf8f21f3eabca932751da83120136c48073792c55e2eff4e29e6973cd3f1090c5bf3ced02a1ba4c145addc674d33b0a285d73d14bcd6f374f60c95c4184e2d57388e9c73f697ac0af5116ddbf5081a8f99ace11027835cb3df8ae785491f42850de04b3e01b9317bd04ed488ad72e787c728b4516c7d839d388a2fd7b21994ff3f5b7f264413bedd3d8a5258d2b39e60411de1ee69fe05f4e76b23a9f50b49f7043f9812aeb81cd54cc1dd9ffdc6e73580e2cae821579ba3642ff7793a3995b136e057d2d2ca7aefae4\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 10\nmsg = 313233343030\nresult = acceptable\nsig = 899a49ab1511bef8727d1ed7093bf7e6a77fa8750d047b203740324d18fc45b587d3392bb7abbe7e6bed7bf2be2fa5e355f8ac5452e675027dbec1835555d059a4ec44120f499e4951cc3fab33d3e8154a4340d29c69fb50728c60eaa58d61b75cfe7efadbff55fc0edffb4af9719cd1a3b2a240936eb6c2ad70b10b72aab7e64d9fb17ba8fadb6f4f0036bc22d5779705b02d261b8c9be700b65c066c27be02db353f4ebcab1ccb41c4bbcfef39abfa8999196951209558463aab1c6d4917ae97006199daaf963666d85c133817035f36ea321714a6b20dadb355a226257fc0abff10c9afac551bb7c3ba9e44737f45ad4f9b7f2db002afb7ad61cda0d96538\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c39", - "7cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 11\nmsg = 313233343030\nresult = acceptable\nsig = a9cadc9cf41400ea2a91e86ef6e0715fe5669dd6a8fa3aa50036e521e0c939ad9530d15e52b10404cedcc5405e7178a0444d0c5d20cfe4af10f3c07c10ef0915d05e02c62e5d0874c2ef37d4176655f63f9a9dbc2da1561c09c995581cc811b5d7621e84bedd7546d346a7a0b0a65d7f38f101b24303da0b0236a7c78f4026cc20bb32dcf79cec7f9a88661dcd52d5b209bca191f5c607e8d8e1957d779e5dfdedfec49bc2defc0ff921d5f7e875e5df46f0687a05f03b5ba5ee6bc0fcaf8d67592a96c0abb2f9a99616955222dd1e87ec9aeb4b160ab5ae96afc87a65b522c6bf4d8133901dc3a9fa63acf749ca06d00e0a8fab39a939396cdc70f52b9863a2\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 12\nmsg = 313233343030\nresult = acceptable\nsig = 807285dc6aeab0a5aa0a7667856993288b9bac9544136a5757c63b23715944df3b9b77953ef1db296ff26d87ff3dfe514e415d9f118fd09e7ac518f982736bcc08b558038c771dd1c1d3b43df922ddda57906cb5e6f5a3ed677061787ffae8eb1ee2de41b5e58f5a012b49937af8d7d44ab5f4c935b73764fb46daaa346c54109c224e16f9c53d3bc4cff2120fc3e0907984052f9e33dc1dd24a171b202a52cdefe13e93cab145416569b5a6a7f29f9b7b36bfbac41959903d765bc91c3c10b645fce9e9893ba1e3325df764bf4ef0f8eb3b3a20701d8e417a86d9b859f2a318a66ab923a49fc25a511900a149e89123b488e44d8f77abe9e7fee56286d7b223\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 13\nmsg = 313233343030\nresult = acceptable\nsig = 9031c063103542817542fefce9e30a72e9f14be94ef2b7a1df2ba721a9a4efe31476684a491e4849ee8720c1f49cdf9755d549b63fcc0e78af8353bcb42575abf92de06a308142f212ac987d42d5f622b8781c6c215d3760aa4ca8441bb3f4587da6a7463ea9425a45876b0470202315ec1881dbd4f1bfa40801dfb8898561a6ce6f88698dab497442f1ef83b1d3540cc3b0af139d5e125a88646f0dcbae053f6a8fc29a2f083e81d61082812121c3e59c3072a76d4ba830d4331105355693f561adda1ad8278ce0e10ec3f7a5ca24e31d839e4823c683e14d75f764872c2267623faacca1707f4038494557df84cdc3fd4f93e4a134e9b53e7e80ec1d60556a\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2", - "611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 14\nmsg = 313233343030\nresult = acceptable\nsig = 9dd8855b0abfe98598937629db4455c561b074d270146d6af837c709df76d42ff3e0d50f04f7e9b3c43244e4a893f0d22d54c58b121b78dd604d1903c96109f372ac9162bd0e4188992d9b8957fa08ad9723758299ef70125f916da07cd4a696a16340d7575e4fe6d57365c2e4aec1a5465a2ebc7a4a7b3d83d8395fcc36a11e8337878477312a7fb4ab81b70cab24ff98565559846706a42f2c07a555e92f86be89d7704a5329fb8637b7621112109f42e49cf5f9a059a7225e2587ac41b699a0b27fd477e0b1dcaf8ee88291d62f41692929b87513a5d8e69352cf6e3031f42543cbd9d8442be3c28dca1ef8a9b7e51ba089eb691f6054cec55a8e770158df\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 15\nmsg = 313233343030\nresult = acceptable\nsig = a61ee300ba0ee8bcad3554a5494a0ddacaeeb8f2e0d4c71383a2684f21a260df6b48d712d7145f62468cd20e3dc70950d89a7d8e962961196e53ddc7f1da53766732e193a7e18b08ab3c71c3547ac5a640cdb9dd3a2dcd866d8b37d57549b17a85b1a97271deb8515324ae30782faca29dae55d50030b4d5eecdaa65b035c048a32f01018a865a9ab1392b477346554ddb403dbc03fd834b72956087b623cdb6d4ad886985576ef75d186d78d50788eeeb70a0c65259f22d5dfb5d08a9c86d6055874b4e38671fc64a36083b34e0f5cc51c26ad876484c47ad7f8e7a524e967f587fb0ada6aa1c06eadb0a149923912565f25031f9c5e721ecb68ff2653e23e8\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 16\nmsg = 313233343030\nresult = acceptable\nsig = 30389051e99e04c06b5e92773ebe85fe1432ddc868153337a7df1f429b941c779049219a25db26c7ee2f189c4a9b71e690317fad22174b45857a7dee66663ccd608d4ee3da1c26f0f0ce1e87797bdecefd1d794c782a7cac322ad38179aafe3df4cb815885c391b6265244b45a7c870d1836bf361eedaff8995ca882709fe9b32bc08cd6246d74441699bb30462b9df9f74fb597b4d953ae3a4a7f060d464587ccbda79096df38ddf9b10a68cce11d5304d648ba3c5e8e111097a54f2afe1f64eeeec0db303b5f9f8863c300c33a4960a0664b59f18016d48265ec24c6f0bb2e6441262e6ea7afc80ba5399e850fcb37cde3175f63383da272f1f692cd732ca2\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 17\nmsg = 313233343030\nresult = acceptable\nsig = 2dff26d07bd2e3de20c8b6fa527e9fa16aee9cbfa0d01cd71a0664727bcb505d0518314856c43c602de0fc4647be7f496abaefc1c766fc44f6572ee2b6ae3fa7d4f23c82703d15ccf97e2e8dfa0a15a3f3f639a2f033910ec04494fb2470ec1a6cd7fbb348153f62766e2f84c1542c7e32d4d60d24eda5b26d513f49bf517aa56e43d05c8b12f2de93c36f56bc87f786dbea42fb960cb4423752fb4a811eca396d0552c4f36dd692e2ef551778a9de7843fcf37f767e3d3f63b139a5aa40d8713dfc382a5329b4f90ce43078cccb6a03f18816ef3b053006603cec694bd6e8352c0b545c436213ac5e4cf42b2a3abb5536b68ec05b3cdae133c7105df461f4dc\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6ed", - "b751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 18\nmsg = 313233343030\nresult = acceptable\nsig = 545a45b222868ac1bfec75f48c52b2addc0f564a7ed54ea7c2805a4640cb54edc58e0b6dad1aaa6b629e2eb4c1c56d53cee00e61ba5596a429e469df55e5964fbf8ce6e1f36ac6adc4aab6663f152fca09729c314449431e96370b51a76261ed37ff264ef4dc9891a41f866e53f98617e496e92bbee75cd2651953afd65ce6d2609f49cb201872ccc6b8d9b853e442bf6e207c394dae3d180bd7126455fe8bc08a9c8d79a97a300884b88e1e2979ad17d15968e80c7b6eaebfcbef488fd4604f24685fc8658560da381ea827d96c78bb17d9e5d09c2d37d61275fbcc333daae6cc3c35a45f7f8d1b869586075ef5f90f60a6e9563f31be4ee6f54c1bfcf85079\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 19\nmsg = 313233343030\nresult = acceptable\nsig = 40af2e3149996f2bb055dcd6ea3e3fba2d57be6424e206c213abe5b6b3ac7ceff049018abc864118d90c5028857d73db67b94e60208c4304f61412bc856ee76e398e211d5c4927145c3ee61ae101ec071e43be9bf17e2de03cad861f461193efed7950794eaceeeeb34f4944e0bedf1853123557deac03457811270c7925d0c50eab2b6dbe000542fcd3dde5cc8563ecab6ace85bf1c535eed7bd67db0584bd4e911fcd3ff5c4059fe53dea7b382f953a4905d481af39beae68e418d2a4c0d75ed5949dac1327eec5bd9d0fdc4bd9ec67f38f2a74a4d38f0760d3e19eb9dc67c96fbd43f1aa8317aac62781738504a3c0dfa5c2288cbf9a412bbf50025cb4630\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 20\nmsg = 313233343030\nresult = acceptable\nsig = a7ae22473e8faca5602b9f8dd4e9a235af3c734cbcd2674f19d9234eee077068b2f65b3ed884e1fabef786a559e458e1fb62990c543f987e09ed482bab699cc2fdbb19397452ae3c080c315b65c61ba0d2088c776ac4533d3f877e9d9bd58dabdc9b557b5a2ce2e90e6a8476fdcc0e84bc2d861ec2e09b078e4ae4f32a0c7032f86f9a0e064a711999fa4dde25ed2841d874b172f6fd621c328413d4bffb3f6d8de7f1a329c816702d1ce6343f28cd024d0d81544854a455f337e10049e9b6366dcf96e7c47c1bf3ae0b9f041017530d319cff6a83c7b4b073f6b2a0034698631b3b103bc296773602c198f17b9233b6b8360863a716ae1b5ba54efc7835301d\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n =", - " 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 21\nmsg = 313233343030\nresult = acceptable\nsig = 432ec7a685060666df6bac3f47d8cb960a70b1f8fd4f161da5b3cfb8fd44f83442a1ba43ca8e748a59c6c7ed7924dc0012bbefb69c97750d8d9144b4cbde2394f4b90502c1d8d047355a51265913838ee974f2386ad46531955dee655b72d470456c8cd67467c905cb06b7d46ef14fc8c9cdb70a4d90820cd80cfde02eb164542e8329dc927e199d0f2ca12cf4feb2414eb49329ba397bd2880510329718c558881891d6085211b6fab614847fbef728e961c8cb710d2e0f4d1f0b292cd372f86831c783755d149a511ce619e3ba09f41aa45a47699f266dfb8c15f90e795db4f78d97c29358a037e330ce7b59d4e34ab2e0bb84a3e8898bfce5d585b9b74f6c\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 22\nmsg = 313233343030\nresult = acceptable\nsig = 3cbc0634c9ec2732ab369624ae58c3a5c18ac10dca48732a4428a042e8b35668b119d24a5e10b5562ffcc6a5b6892a562c36828658b92037a9d48801f0694cf46535825fe450d26b55866979fe4ea2238550e64b2ae639b533a9b4c7c7c9211c8adb41e8e5d0c3c001f50d025b06af353ca11d7277129b6c3d0c3592aa1dd3e6a3371585b0cc97487a8310cc1403dd0dafb21ddf1f4983512c91f9eca9f2c83c376963a1340d4efc61f3ce23bcfed6fa01223b369f99e13003b9b9b78e54ec305569191b3dd2f7c6b53151b5e446d72b5409b18fe4ac749185feedf30e5db3096df982b76168eea32e4298b75e38caef733228a604adeffa8a878468722d36b0\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 23\nmsg = 313233343030\nresult = acceptable\nsig = 02d5a96749111200cbf977effa208876f80276dc90804910a4142399c24f46060ab148fe7817558657c459be7a59d01b1c6bed2a9d797e76d3eecf3a9099437c73de1ef1b14fa24304fb35782824e72db1adad75e0dc56e503c5a0ae29cdd55a8a6c29594153be4f69ba6dedba71dabbcfb5ac8de3b70cf82aecd6b03db4f9a0d3e7bbfb90b5b3c750e4f33cd3ecc713f8cfc15eacdb5c6e6db41dab5aed521fcc7188afdf059a7c3ebfcd2f1561baadd648cd6bdfff00b6c80130c5a3ecc3a254f8ea8f484520a0522f3aefa0fa79496b8d82117252a566fb9e191c0482398f16be513551e7a6afd9f7f2f1e89adb2627dedd96ead836a8f88e0b361ebeebfe\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 24\nmsg = 313233343030\nresult = acceptable\nsig = 97c683214a380bdc8701717ce1c4c0bd6b871fd65eb495d449ced17568b7593714f49ca8110281a1fa8b91ddbb40f85c3f0dda165bbac3ea055c8b06a0f4fb887c597b3e9082607c5c9c837d0034dc6d3a0fd4d472976b81a0792f1e31891691498c07dfab88ec72e1ae0f25467f9a4f532493d9657a0fde2f88ef648769419e269abc830e9d6b6d70b0e398cbbd05064935ff71d586f5c363640da6dcd330cf19016aaae85817311fac58f8bddb304c74e0392f2d61ef940124d6a337a3ad6be2bdaf83955474e7f0b2ca63629ef446c9355ce8f", - "52c3c802ef3e160002ffb3824bcd25535bc2b639a4e609e3377e121b3e170e423d3f827132da216e21292ea\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 25\nmsg = 313233343030\nresult = acceptable\nsig = 0d9595559acb85a317dd798b6a904ec80a2f9afe5870d05e017371408b101710026e149084dd0399a23faeed59b18082dcd3ab62bd67effe619874bebfcb2d4fbfa44e754a4f1853396fdb79d712f1d3a1dd3ff6b0707b9489694dbd30d2fa92e002258d461023f1564c4964c859ed56f93ed42cc7c022d05eca29fd2b0fc2ea252b7e2a68529fe27da9a7a900f18e61fbb2dad4da8816d52746046a6515c29f63406c13634695ad07aa6d2be0abfe0b8e10788f2a3a31e68129bba1bd51cff5c980f6c45fb36041c07b4c863dfb5ee832cb5f3cd870205b23c8176777f4078b2655a0cb447ff34ced584f0e0eb4abdf2f35fc4523a52a9576c9d15b80a6d54f\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 26\nmsg = 313233343030\nresult = acceptable\nsig = 98bbf3028617ae1a57a689217ddaebf56191c686f8be8e6da7bce27fdf49af2b9d826c64a43f79fc7c603c5885b0c46ac2d175a7662d9ba3d82072069363cd93f7d3a0d61375e16b5a5ea1f18eaf7307e3cf8b27528aeab9d0a3d1900e5599d9ead68ede88e609c213be0a97642cc2dd6e6d2d6cea5b159ae35c42630fa9d8ddfd5155c3c070e12ec914273ce5304f8057eb0fcb0c595d895aabef7abaf6fa12eba65059bf2ed86b7064e9a279bf9adf94b894082760c5e9c15a29feca66e687df5b68e54f3bc0609aa778204fef7f8ea957c0ce1a883d1c8ece6b6b968b5d2c50b726c43f2882cc76f083647ca259e3cb33bdf1fe38d7bf8cf70da5dd9248fa\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 27\nmsg = 313233343030\nresult = acceptable\nsig = 740edeef36d73719e813faef24d66f1785b278106db66548d311115ef8203669d2eeccbfa7609d9f40e8bf4180612835d6cb07b7a6c70038936334e007b32d3b84fbf2d78dcfbae22dc5c6d4849e1e073392b02badb521247bff1c277cbabf1421ee9690a236efd5067aa3ee0cd7a3ec67cc80166bd928ba14b1105781a74df09928a816e4f2e66e9c5e45ded285a597bdd65159d87f54c8849291cf50d9aca1b57e612f7d4284f24eeed1277c43a8b1a7cb0a3ea988696afd0f14a0bc1d172bc19d4abbeb9339b5a7b8637a88142f04ff9b8d011f7b8fe1d37f75fe3ffcf13bca3c481d806839a520cb6e760bf21d28da20f58742f52ff5459293a70161bb73\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b494897386", - "4183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 28\nmsg = 313233343030\nresult = acceptable\nsig = 71065afdea905874489d3029ffe3979564b3690e980301717f29c2333aa029dc93dec41c26cebb4e28bd0b4beb5843f6b14ecd803d5e49b3223174f2adeb87a69a20977d3bfd486fee88d829e07957648da5fe6c8cd72d0dd492b2242afb3e9578a415b65c9160a37501e22890a25b4638c9cf9685f49c840a04e8bd99f9029be57523e05a3e35de01c7454a06493b5249b4d5be2419a4ec166f6a50f7dfd7a5852d05a89d197dd37efaa3ecd6c27e0786532fe977d35cd65a4ec2d79db053d667e61793d0719a1432b0c0ab66fc3e5dc6eeb415774c1acd448ef95a3be4fc34083891159cf6d630bcd6d9c78eb596caebf963210684ef43a6a64d4a832251cc\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 29\nmsg = 313233343030\nresult = acceptable\nsig = 2d01cf0fd2d3f2561b34b7eac9f34564a33267a98b2ed4ec00f07197cb3332a7d0cd416e221acbe3b40e9599eca87cb54f1eed51e5cd70ebbebde573215820417bf55ce998f4121da2851fe01477c988553edd2d85f58d7a24ace99ed1bb440206cb30067dd931cabcc3e3bebde0eea9ad1825690de0c5b2022191b978484379c7aa30531d296e6351c61d6be37b04fdb6eb2f11afc47b9437b5cfbb6a6f059c9f6b23fbd64105adfc72662325b5abb446529216dbe772a3a363eeed2de26647652bba01721a5b875036a75a76665031bc26a97d416fe564ec2a9b808553929e48817b6679abe7feedd41aa9c6ed79676c772f0d8acbce65137b66f45242f31a\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 30\nmsg = 313233343030\nresult = acceptable\nsig = 552c5ea88b09b51b8653fd164ccd3ea62ab84abfe22d01092449620dcbaa86deacaaa7e40e22b16cc30113cee21b5e491c8afa3806ad39da88d2cd116b25851b57c26c6c6c8580261a90150a88928e22524e731dbf979d7ec7bf70f853fbd3f77fba86d5fd325eb41f12c28416c2125e2bcc68297bba44b41dcc9239d93e5ce9f067f93e0f817d439cd17837503bc82eb342fefa658d064b21d14c6f7ee9e0be061364b3b73e441a6b610d63e1de6627276580861b085648748bd575a33b0e75bb9bf2ef699556bcc09f1262d4bce29b8b508aae8278d9e663818f2745186c33733d9255c5a54aeee8f4180816d8fd2aa0a9b9cf22cd0ae3124eee81c477a6b6\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 31\nmsg = 313233343030\nresult = valid\nsig = 52ac571ad2a54ec76a1efc430f87a914dea50dd18bcf82892c93ef233c2b9eeb1970229f3e79086b51d9f1e61eae5", - "b589ca3dcb140189c79e339d56e07b92e24fe61da02c395c651e6f22e9cc618592829ac07883f1edf120897b0737adfa129442404e4bcf23eafbef3439a7ddd1396f1a7ab4979e2c3baaffee936a47a4d74034f6977b9703ffa71de427c621ad5ba6d912aa2dc5e581f2999566ae0abe5a65a7a819de45cfd701c8e1bba727bd777d2102d484caf3f6ad72f400d1cf078e97759eabec691a529a3548f55779b5b9fe7c586590bd44abe003b71dec960c2cfd9098dafa329c2a75c8d94aa0cee0b91680fe3910e5239043276279c701b8aef\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 32\nmsg = 313233343030\nresult = valid\nsig = 58952e6e15ec300c02758a59518f619179778fde614a3e3ef742a6b9039275cc8416c26ab5fd24649ed22def7f9215994cd3ded23459ae4b31c3a24304401a8ae700a22bc270c89f4300506baf4f813396ae017a5ddb2b0477a5786d425a96e967fa350adad596f1ae0f8148311ea14836c36b39d331dffd7453c6f7e79092c13938d90b801d41569bc4d14a8497cdb4292c959663474d3c6b391e5e7ff301647afb4fdaf8bcfd39b4e6e7632dcd5de6ca12f0c22c4b2dd16a74a1e814fb334ee4647cfea98acc691e0fc18f0e4dcd9354d3a8f5a1082000dcb3ac81749bdf2184375091ab31e133216ec0cede22adead906f8595e85fce5f28a67f7d6f11249\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 33\nmsg = 313233343030\nresult = valid\nsig = 5c2ec7ab93afb7a9fe2d0e006597a075f8ee01ff04bab318a3e3c489878bcf321f681d123a7acd0e5eb01f8261a82fc3d34fce1a36560d0859d39ad9c2b8fadaa2673b7faf0c0b74eaef13f8a71f4b9729da1e3d444cbf261db415b59374842789dc60b1fbfad43daff40ebb4dbbdea400cb506ff0b75568a5e48705d75abd9b7444178da7ae901642835cabf86b22e55a5e090664a90d6a78f3e3ade7a72754fff56f2445a014928131ada477420b38951389e84bf3cfeab57e864513ca7247323af03667cd9ca926dab7eb51d24c25918f4980065ef1846cbda3a39b1020380148f70a0ce26ff43658374870b51854b99be2d3315b317efb1390c7c13e871d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 34\nmsg = 313233343030\nresult = valid\nsig = bad4437432699d9cd3799c29bcd959683b879287eac2b52c5c263f46e2488ab5e0be517ff7a5bc59a5fb217db5602107a28045f08ee9286afd3d61970fbc12feac76b12f75f17993779c8c3aed862dd681665f386610c59a4b6b0e639de5fb55e36b52baf3d9e0ac150d3ee30be85ee95580b34e47022c517a96b14b93a64c4a129def11c56b34f60353f40c813f60a924ea0391ddb2770cb00915bdf33e3cbe6f2e87840e6335b5d8dc3d1a25daa309c5644b035c46416c75460f8ed68a0081df5140cef9533b33296f6271781c2ede182002165be862a2f4d8f5c31d26dfb6dad56cdcf269b4e3143c152dcff6ec80754e22ce2edfe7879a1eb1b83077de98\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb7", - "51b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 35\nmsg = 313233343030\nresult = valid\nsig = 3b45f1326d3b0bc5101565b022541f836adb79c9e10e20478b1be6a32a54dbb62a5c56c92844f46996289f85501e1a681a29773667f42e3f0c1e79f14963213ceaa59282cb0d2961139ea912faa94d3762aa928a03c88dd5678373e39d182d8690d9c9b8287622fd354bd5d288cb4bfefc7fb5a3187781339441b358b7f0be6c884868b7ec47352712297ef191ed4e55e1c8e438eed1dec2b57907933c14ed5fffb101cde6007c7823e804f79c34db429a55c2861c2c8a4606509f7be774d1adbb66f640adf16aacd61730f8095905ee9978f379dea4d233b3bb0d7a0feaf07fa85a2864014329d9d31f29cf22aa76c5c061ec41e4211fbb5fb42c8d087bb917\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 36\nmsg = 313233343030\nresult = valid\nsig = 84d30ebddeb64f5fcbe17632cbb692c1222c5fffb54e37f25bb87c9219930f5cbda0f762889a8989b8b23fc79eee17d8e590206d55b4006ee3cf4d79aac93ac5a3fc68fefa280b53368e16e95fb8629653d76991609e42ea04f19e19a5bd411b2ecf9a18de945c695407f608c05169e2e200259a6cf43014485b86d3ac10b22783fec39188d39b5960a97a414001df8381cb0c17b1ad05a3a58175202e2cd8aa6ca3131d3bc0efbc2f0d5f09925080da539b93980497816bfd042949acf31fa2705a63d7442cbe1c281328bf58a1e31ac69f96d67cc31856e22b7fafbcae2b6223e55e2c81a5fd67d74cdc8ccc5c3b6fe2d8319ba36ab2da9a8dd9720384662c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 37\nmsg = 313233343030\nresult = valid\nsig = 080c7363b801b6bc22b04978e72ba6ac9c55932431594a2f80e7aca117c51bde990f02defddeca373394829f41a9d49d62fc1593f99b169bf6f8dd4daa149eb2acf6f470932af5615e440f7b648354f081d9b82eade009f52328194eba383593b60bc50689449eb7d478679dee267ce199b3c99d4b004fe308102dccc09fe041c125d4d6c287dfba9c6c40a4a1421d5f3734f6ea09c85e994b1407ac8c7c95b0f78925b9604027a28ab2f921cf1c9feabf5300e826b383b6eb11b00b9a378cf360e760c4777cc8f4467301417ae07556483e4e47ece4e7487b188e2a2ac95d85a77586aa12537436ab2e50bf7a4fd7cd577421fa12ce6f4b69b97bf248d85866\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 38\nmsg = 313233343030\nresult = valid\nsig = 676865e033ad3a73bcecd236a125a8305413e2cc99db2225ac87f7f0bfca644d87bc6489295730b98874201f0889e688872b4c30a68a699e883ec0adc5c38eed5b90ef1ba12a930de42a9bbefdcbf3bf9cc157ca950b9e927841df138f89f874", - "207c2595e6f7fd4039b6f094ac0a5f59ca5707da5c3230fc740a195b8db741d602d5b12dd0042869facc1e05c03905b7be9ccf0cde94426243093e1622373301542c96667f163b067b1b53db10ae401195deb9d1746748e5f491ffc7051c946a245c4c1d1c3f880fe99f09c8a90d9138dbe994785f576d79bb3eb3f4be15de46ad4a8073ccb946e284dc2ed7572d90d8a841ca0dbff4bcae1fc307fe17e87d87\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 39\nmsg = 313233343030\nresult = valid\nsig = 603bf778b29561fcaa54f5ff628c5d257e0212c6327e9112cab8cf2853146fb8e960601e9613f57baff8e64223cd7e0026f66188878bd35d9236e9de5f0950bba51be06eee37304081a36ef7f4f7c9404956c40d30b3a4266a3b25898f546f0f6994c54ec9497474ed04dfb3a24a4938172d877fef56c3e6e11586a5b920c1538e2f22dd4c971d933d69f5a4742e3b23e2bb56b1253b67bcce761722b9a026674398e7711f9ec0415c75c80e3bf38f6991b3963bc4b89bf3f041eb8c894ad12790db35d24c54a4d2123fb91d9bc4e9c116ace06e7b59b093d6c1cdccc067540b2c599f8f5985ff6e14da691169bce203ae8c127770f3833b0b19847cbc4f6a56\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 40\nmsg = 313233343030\nresult = valid\nsig = 8272e0864261c5bfa05f4e40a98aadee43968e9f5a7ebfd7cf39087a2b61b34f4592f00c3c18681e941fb958b446c9d98bae87944f0d41f13b3d1662bf9db1d011c926e69311e296d0dcc59e9e09e4f6c7b0a7e5f232533e02097e52fc0755ea756ba0c0ede3ae4c75f7f8966b42118d1683fb9f1e127c1e6a6a63126a0d50b1b5a59f4adbf5cb822f7b863c0f8d8fc01dc698bd70943a6231d7aa77d517be3f1fccab61c99b8fbe5e4f745029ce81c9595ec930abf7eeee6235ab2a84002471b971eb91838e13ee4b014cd91059b3975092bdb26bb435eca40ec8ae887470f1c11e32d2fca111dc254c029a2f824a8dc2824ae32a1168de2c23fb69c77647c9\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 41\nmsg = 313233343030\nresult = valid\nsig = 77c77d25c39754755541409749a94fcf10b28edef92a06792feee1a5381c06aa1ed6fd46dc76bf12541120922473912bd63bb2ac17295110615e8c96039eb800a0a2504a47630852c354da0b9c44c9cc6b30fc2c5715e02425c9d573868f0eac1e97415408d4d7850230d0e02b61d237b4145c99f822c39270fed2d0c236f0128568d7ef5dd5b26d0aac7f752dd45e891e7f3289974168a6fde1c8de368d1e3f546ec4eed21200f217c9de87400d846c26ee70f459c0f87f5ae64273999b0f1bfc1b60bba4db271b3d63db27cc24b9d225c83d2043f3e3a20c088b36adc50c15a5df894a4a4875918c8dd34f91c7fc8bec50872217778992523409cd21f8b88c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f57", - "0347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 42\nmsg = 313233343030\nresult = valid\nsig = 64a9c0e6fbcea96d62da56213f2a11d922418fa1b56ae4afde7d3442c9f4013ce11ea203ca23a351609a41d5b7696bbe2f3cca01149a1a7b9c0ebf052e51167ff18bead5f2d3c2df375a2fad08a91b8c36baaed7aa58469a8f428e37e83ab04feffe49997c640bb63aef23ef408fb299aff97fce0486ca36abc6441fd52cfdccdff17857ccba6f448cb3d39b729287a6113b67946c004720b4f0bce42678e0702b0ca6096def9e4c67244b68d89a5ac8986ef6f4acb0b50065fa75410c43874844af511d6332c7db8f11988e70a7a02415261101d9e36dece79c211e26d580825a7e5358b1ac64e9fc43f381b6cff477b58d2861c73135d044432cfe34cce883\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 43\nmsg = 313233343030\nresult = valid\nsig = 26dea68e27018d3247e2a1c70796f5e025692ce3d31a6cf9eae6e0ad0941fd36f66a0ff542596ea15149708df7b88b63d77031b1a1e8e60b2221b58560141e2a3cbedf09aed29aabed1c35eb0ffb312bddd04f66acddf42a0d7130e1268d909d988bf06d465b02241096e8744b5541e15ed274e54ceb9bcd796b3c361ad7cc59d5ecee3f1131bdf9ea681e9be09d18394a64711a040fe421b8678da330c38ae6f057a5b690ba7164252938fda0c5396d49f265f7a38754edfe5294c1f092721ba263bcc334439088a0c7169d9badce5b220f2c80c44421ecef605f46c6ed9affdf3c730b266eb031f1f265003dff13066d3b1cbb12d898e6c15f34f7516dec75\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 44\nmsg = 313233343030\nresult = valid\nsig = 91ff01e79f9c9e50aea0efdbc8b2c370f3a40ad8e489601f8217ecf9d047bd8e10bda664ea986f5734ed38aaf67cd7b227e5b68dddae13cd81f9ee1b7d8248bb3042a3ca670f32c316e81e4076788420a18150cb1d4725f7a239b49ef25f458716679cb1971d39b0678c1ffe3f45d272923f3551a337871b59f4762c6e11c9665b200c5bb7fc572e0ad930a63542a1c77c0df7acb8bc3c3b0ef59ce6c2da74ee6ef4210b409e2245873e6fa24739d36c0b12e5e328ca669316fa6a4df7481a547f6e671b7028e2ea3c15ac98e742d5a8995776bd586fcc23922eca59b1497871f744b357078e8e90188a2b7224c19ba9ca4769f91e665a9cbe7de8ebf84f12c1\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 45\nmsg = 313233343030\nresult = valid\nsig = 71ab62e163e31ede946e41909ccd87186086c7d99a3459813db6e380a046cbd75e8cfcd2086f2b1db021bd54e72b88193bd38f9664af1b7f100a89c2ac851cd13d3dfe4907d26769a46a4b03256d18db21424636b671189619840737fef2d8d31f4864a7064716000c44e7ebedb6b0a3bc06e5baf01fbed82933abbc43dfbe87fa1cbf68fd30e48ed595a998f", - "bd0ebf1cfdc35dfd8026fad023412e82322efe6182a849857a66b1cb41de7c8a4f22ca251db2714eb8aad67f8738a59602e900c5cd1604e6e12d7b05de329d3bace06e7785cd4d68ba60a2f5b976a4fd112c924e4e15cfea43cda7ce14d741fa8a0e777fb3a77c2cb7ce2680a20a6ff5f817a43\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 46\nmsg = 313233343030\nresult = valid\nsig = 325cacdba224071c1736adb4815a0a13dc199bac13206967894ca897402c2820fe303d2c2160ba6317fe342e8db0a2ab51b5edab4eb9035d3ccc73521db011a0f231d02429480a4398bc68bfd0e248f6f7724d2db791a0366ae25aaeab2f8ab377405f95af2dba8db349236dbe9507b17f52fdf1aad4991894e857054666e770c86ed8e62fc9bc2b6ea6d5e121ea43337277c61eee8d64f550be0aaaeeb29a18c3c9dc543ed0cc41cf0732d394fe008e5d8874f3073046189f0b6679bfe4ac65cf13de43c36073f60f110f1f397ceb1f7cb40346fefdfb0c817d32531713a04099ac6b6594181c11dd8f2c0f0b43f1d687e5b846b69283dca85a9a596bf5c112\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 47\nmsg = 313233343030\nresult = valid\nsig = 6ce19d6c6ed9218bdb0564fd490a088a3d3be80a45bff0f19c7d431bbc240fa300f562d00d25a58456ff092304e51047f5d8956cd0015ebb0eb6509156640f2ded9c003d6db49ed1d95bf74741281990f09cfed582ad7e2d6b896713e28f7d3f4fa41c798dd88ad06a8716063f0d42c55c414fb6c49205fee53a710fbbb98e7291aa07cd6f7160e1fdb5f3dc2dffe014bd91bdd450a1f0da83cb380158b9d16aa27f9c078e444e23146701bd1b42179feda1998258d45a204fce614be395413b259b5898a06379c7eb69e6fb58ea82ca72b8f231f11ed0f180d795087cdbe26aeeb2ff6d7d3eb7feaf4c2c74783c96674ad959bd5cfbb979cc450b9c0510a364\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 48\nmsg = 313233343030\nresult = valid\nsig = 2d3fc532304570b6cdd5b58b0fa7287ba336c29eec633cc5f215f4e96b2ec44c67e3b1de1386ab616975af3ce3ba93887e1b705d5e55b054e1782d50bfc0094c8b7b0f067fa250cf474ac3b42776b1c76509ca821225989c13faeb15b187231f6dbb5cdf2e1ea52cee05fc2c1f8033341caa0772017fe3a720212a7169d46467a05b4cb91ac9886f940ddc8f280d055d54a51100babd9631b2571140cb15c2e53fb3026bac02aefa46065d9c965f71adbc5d3f11f3a0500fd833a05021c95d5e7e5f3fa500f367c99595514ec221d8fb51db4c776d86bbdbd2fd82a395076bd1e12c3d0c94ed098b84d858a733e0c9a153558be90213db2b405d54df94d6c989\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab", - "2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 49\nmsg = 313233343030\nresult = valid\nsig = 391ac1b5a466b886378fdd220d5871292412bbd62005bc8b1f13b02c7c4f98f3578c31a30c0495294cf68dfcca12c2ea09388fe0752487aa060f93a0bffb7d7075428f193f673c43d60fba94bcf2a8b6297d2207fb5db7abb23885fb8b4f858c7a395c5e9731840d17d7ab749dd0f5511ff8529b9461989dccd126bd442e8cf5c56e20c27a8869a6b576ef771520912347099b566ee588eac583a595a333102783c0f993e0eca3f55af1adab66790e5dff1cbcb2f549c5e085317afc8afa181424f2ff252eccf643af509cfe8778872107b4825968acd5271a36d4b83050f11afb34afc4a0cf073204187c1b7e81832500c2b5cc32f123644d9d97f24769c8d7\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 50\nmsg = 313233343030\nresult = valid\nsig = 2a6cfd3112b2dcd37aa4fa4ef9ddb13ed713960cb062653656937b807c5ccf80c5bcd205ba314a5307bdcf58279afb16be1b9b038c93ab4d5d5b96de1c042b66e44bedf4f5c72d7564e3f190f4654211eb7471315b512f896dd315f00b4d1952c0c0b70e489cec2cabeaa58123cf000d4653228c7246952e02400bda062d16c37d5790e4aeb9e78f75d0740dc48c7dd6b671e648de13e036a0265ef6c9458f72602bf5d295f468f554caea563b56d3b988615d12366d4ddb4f7ecf39fda9913dec271c9ea5f9286fa11eeafe2088a41f16cee7ed19c7330ee99a54d981b183c3da730394c8f5b90b17fd0fdd47c0260f08490b52483ebb32bb6640a890c94d85\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 51\nmsg = 313233343030\nresult = valid\nsig = 0495075a7ef7da665a8802a3dcab56cda8675e38d6378a9b5f5fbc53f9249bcf7746b2e120db4ced134124d54e62bf7aa187edc28a3384bf2516eb616c0958acb38c68f85ab671ce9f2e3e7f92a247cc4cb71d2aa536ecb24c6e3bb3fcbd8636ede677f91bc59988b01bdbbc2b986ba99082f7d2dc6e13b962f7e6e1c7208ba9b1c55dd96779f89b40178be648bbf906a68ffdfeaa0720dab84b290914667eb423a7cd70fddd4e947cea0773383c048e5e4a250ed20d31ed1730d0d1b10f7ed3401da476cf9c2d8e1bb86dc5aa1c79a5158763c5d6cf0addad25406e4632e1a85617f177f2545f7f0f60b5c297fac40a304767acffc5c098a8ed85da2ab5c766\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 52\nmsg = 313233343030\nresult = valid\nsig = ad2b4ab917b942d7172df9c51756c21fc23b3bf467f4dc9e024e89b7d6df71f099a0e0c627f12257b6b05f190ddc269206556ac5d34eb4d63f09f07b8ebcc38c3dee48acf056aff46e23f170a47acf16621a65fa3f9319e5e21c65426f9acf9ca6576efeb4e593f0ef01e6577c85be73acede78c3f43157e686a564e0a542dba8080f539556387c199089c89c9866bdfece7bbe0cb713008bf9adffa378d76e4915d1b445080977d353f2f34e9c063d67f0ef50f755f94dcf4", - "ec4122495835024d075aabd7d65adccb1987e1e654dc2a4df0de3252b4646dd7b86a068e7d952410f1341fa49d80d6f1d09825bb2e6741d9e8b43ddebce0f81ac6df635fca3d92\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 53\nmsg = 313233343030\nresult = valid\nsig = 9e5a42ba80c6b91801ce6f914dc48f03bec695463313afe8306f726d1e1e0690ad33425b1f5a043f8bb1c3b474b009eba1ca67d7d9998b56b5eeef09e94358e3e3133b85a4652493253aadfb4df892d1bf73b42e2e857302bdcfc37905e37fafdc8accc26a30d0cbc1ed98d0e971170e1953b91c1de35b363c00ab4a9bb2fef45b753312717920141287a1b8264522131a522df46d5545c760c3a05ff4487542f2b351a74a7dcd8dac6e7b342a987ed65d5e1803362eea8340eb67f014d47f63e720d96738924b1529beadd86e62e20b6479eb9623f29065c8242d753080cc4de962b934e10f8eed23be8bb32ed1abb23e75949e30f58b9667e9c25cfd7972b6\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 54\nmsg = 313233343030\nresult = valid\nsig = 1c57dd4fc93dcf4fb62e082d0e861d554563203578c317cd751f017c4779a36ec6e6dae4621ac07eb506d4cd4d627e63c55534bcf2b168649add19628b0a87d455c6f74329fff663a2a9016ed3d5837c2b843b83015d203bbe25dc64075b27c0e708875eabd9aca4ea6468a2117139ad85794b9629a3b06e22a3d945123b41d1ca3b656195ee3b0d7b046dd1f28ed3b46ccad9a174da581d33997541c0d3ec589285587e340dc65c3901c40d3353de448896634698ccb1ce55e22fc3b808cba5082958492fa1997b26442f09615f869db65efef28d50a75075c76fe6f2e96fd38a7429e0746f3b20a0eb31027ee8325756b42b2286e0069e92461ba5e5a731a2\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 55\nmsg = 313233343030\nresult = valid\nsig = aaf95747bafcd968dbc2f7a719315467b1f438e3c71ea01b5b6035b9271e16a27791ec23ba7f7aa637892c9a0110cde9f3df8fab65a4b2dcfbcb827628d0988c488b9def01caa916116538d535fc955aed97830a4b6796cec61fde848d149a3612e4a815a2dfd45131a435559f48e72337c42cc104f1797262ee69709882d57809b19b927410af979c479fb1b3f65c713c8f3aac3907d2a10eec945e302bb5eb5e194363fc4ce15d25961bdd31c51339cb1037b4c86236160a0bd1bd574c52abd88265798013f1e7ace7ff4eb710d0b7726754ce14a0962d7eedbd08353574ca9bcff955ed02166cff430c34dbd44bbc927d8ffcc85fcdc685e0ad8ee82c27d9\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c", - "77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 56\nmsg = 313233343030\nresult = valid\nsig = 48486ef632d298186388f80506bf6a12de03781adef4b778d5f616484ab5cefbb5a0a004ae15def2d82134b96c555ebb3ba9e8f7dcf2c473d6198b0a455cb027b33020ac7c7c2d10b8904c94d5ac45ba9fff42c892dc0d845cf42d4d162ea8b9a544084b6565770f3c188e8e2dbaf6861574c94e1295b51c5e13fb7d29d65d9121008870de99b4cf2160718989c9f288d90b50069de579027a624805f1356eedb6bc34ad3f4fc9519fd90e626bb0622bb701e69669724b4544c584573f054dfcb79a2bf4b3b8760fc95da9096d8f56a91433081e8462c92e45b0383811581e37bf4629567c2b19f0135e341a637d866686312626b99c0885002655fc5027aff0\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 57\nmsg = 313233343030\nresult = valid\nsig = 9be08bed6aec129b28159d23d0c9d3171372b44ec3385be93c5070ad0714112e88e774522a6c61874ca071dbbba2a41ae03698395943de1c0489a2902c5fbcf7790d3f6df0500b3f04b989863f6ff742954dd32469b96ffdc94086b6dd39024a1db62357ffd59e1a2687d4266581e5af3371b1c45189346b374426a8fe87363e71254a6f1e566c911f467a089dfb19cb527bb0c75e442a42ac356eeb0a60ee1fb16efb5a36076a28e36d6fcbb1ffe5b1662f6ce1be09f30c9949b8056686ab3c1d3894350ea0b12f97f350ef7c2a232dbde200d4ac74b6145a0eeaf40cc3e0b8937d4377bdb04e14730cd4830ff787110452c79f965ec4ec8b080a5bea0d0b2d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 58\nmsg = 313233343030\nresult = valid\nsig = 265f70be75fd2ca926327fc0ad87f20a9ff1a9bf9e45545b6d59cda7abbf32a5b2fb0f78a4acf772749ff038f03699f90e23e6a27df6c324b34a5a995046c72c3123f894a9014a17654337ab455a9a2942af4a31a4e5144ab708c653a9a75b949bf800f817b856a6f139b1ce02e4af27180901121ae1df5196d4c96b013f98874d9305a04bfbdad91ae365b9d39a28ca669ea20c4800af18176ea83f46e094a87998df6e14e8d6e26ffecad9127f6f8c5b96f2f192a7345617f5c563e8fbc3d870c165b87449af77186a813909716747fa0f2a487d6ead2ab67a8b81a0a4dd681298ac8b3ce607cc50d2b9fb3a4a6d4cdd92fa3d9ee3aa0d46fc5715df133d1d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 59\nmsg = 313233343030\nresult = valid\nsig = af120d2204a6680c75fbc88dc52fa817b4876f2598fb7d6673e7f423d0959656471192c034d02b8f96f82c63d44b22776ed02813dd74fdd383c70838e5139bbb328e068f31ef09c420e54e6857c77b4f2438e6778bd7e6a3b6a2163be5fdbbbbce32823a26d1c85298e7f14ccd9992a510f13e66b5c5c7170f4639b39b2e322b7b25251978801b5fda78a73d1c35c93f29766434b278c7f49acf147cb3bbb906f0ebf3c624e7b0f24cdfacd852ed594d90bbe222c17edf91ced1f6adc36ae7d4a5a2d5b81944ba5401d8285b0a95b04937ded001eae93f470600e7d9b0f74e4d39962a039cf", - "57b6c955c1724ea8bb304faa0cefc097eec4bc5570737656a8a84\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 60\nmsg = 313233343030\nresult = valid\nsig = 285f6b301bd5d54927e3404e5e1ef8dfe90d58dec37e267478b10d2f787573025c2657665d34415932e81ece24af57329c2f54a651cbc7b791bffb0ee20343e2c341cf9ba5a0aa67184c03345d36e561f4ae18ae344414c0478c7bdba9d7fd542fdf8d5e5758295cdba159203494021e6ca674190ece2769a0c0b97c143da517ebebca3aad1933c4d89432bab197e779995e49bcb0e945fbb7dcf257c5af509f19abfa6fcbf29f4704d25aeef57ea3d4c63f0f378e5c5b8f653c5311640df57bd5cb2322d84aebf304b649e337539d47fb1491ba1b0d936cc008d06970e0c0a10d75ba0f2e0c5efc1db92830cb022056952105da83b07e25c375803b3ff536e5\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 61\nmsg = 313233343030\nresult = valid\nsig = 55d88872d2dddabe8874f8999fe1a6efdc0ee4ce38bb1057f11c8fcec2da27d238d23a8010ca9c0510c3df12a638fae0c0d64ab83a8b43cae24b154f1b8632dbef8726db103bfde6d33f8253512388557ac502dc90cc173c9ac82a501ed534d4c57fef7ef68d320897fa882ef90ae32b29d379c39b4a8971c46ab9366e39db2c2ff180cc6259cac703330dc2f80ba398e4eb7bd70175aa4847d0e643a8d97ef6abddd239155cfb780ca228985235d0c91188572902c491aa011d9348517c370b5bd60dd9a9598997a5fc763267d2000e2728edefe4509d98f7197c487d0e42951fa92acd621fbffdcb595b20f8cb53c6f1935f535d7f0282837e4d03e188b823\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 62\nmsg = 313233343030\nresult = valid\nsig = 977049eb468411cb4b4745d1804dce61aad8038be0bfdda3d6e6e7f235503100505b6f86ab432cb2ed28bb57358c95042f71b8f9e5221166dafdb9281eeeb79f790f8f9e2b0a19e50b8459eb54f85695b1929ba66520d46203814c74900ec3cc546dd681e35afe3b55e3ec1ab719513dee7e9a9b5568e9bb8e342aa3de2d4ae883e9f0c4dce2c9fccb68ac09d5a260a0f4b948bfe5a03043aced68af31f854dfdd5d42047dee19b71d114bdf823bf4b03c5513b5ed2bf333e323048ddf332ec284c7d31ec032cade848d0d4e8a0121264ecb2325a29b56ce5c168cb9652d31305547dfa281457b16640f3e5d283b3fde108b67cdbd6b2005af93d008be4ec46e\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7020301", - "0001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 63\nmsg = 313233343030\nresult = valid\nsig = 4ca8cf2d7817643e14484d757f0853625613984728c9e483efdc16eeec616d3c551212107a9cab91796185bd7e60f661a5f2f17e82b9f34c0c55197eb5e2b7d74b8cff00caee33083bc69aa66027a3e68180817fc065dd5a5eb2e11626bf97c0ca44b70c18b0a0a70ffa628d86aa8b45e718702cc5d15854d51baf34fd637be3e201c39ac3db412bef0137951bdf74a43c7dbf5956207693c40c9578f5edf408b43bb1d078003082592fab58860a3d9a38d6d5aee051e5be85bbea791f57d68a7c4127b7d7f5dce2ea211cc35f367d7b0a561f8ae63c37101748fdfd890d616426690c5b6cea817c219b9165ba6784f9edaf8aba7082f912940254d7b7921212\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 64\nmsg = 313233343030\nresult = valid\nsig = 6ba6eaed9a00575e0ad5cf4ade39dbf0bc6b8f50e7d2a892d626ee6751b6a360a703904d3a11596b10473a8030ab5992dcca8932dea1eae7e3c88829702530301fd85f5be515216f23c39e70b46b256a06d392f13edb5431fd6bbe4b77445db03fb4706adb22105a7ce3c6bd1a537aa3d3bd3e264e15bb68daa88c0db01c2707a2aa7af4b055097b68e7c0e6749214478ec91f1104ef2b513a22316476de696b14090f6a3e36a562fdab5e3c682708c88017a077154fef4fb84611b9df8e3b5db55f9dcb0dd5d2d797d8117a4db392c62f432ae24facf99eddc78c41081de9ceed9f651769e44cba098babf7a78f1992a53fe318879417ff3cd8a5f04e66945c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 65\nmsg = 313233343030\nresult = valid\nsig = 5bbbdc57a45e5fd5a0dcf03b76c06edb2066f9205eda2facdf5120dc6bf93c8e969d714a9ce71104f2b9455d6c6c3b6489a41e578fff9247de07ccf307961b34f454df5fb40ca98a4a0ceba8f705e60afa02c945f8ced0b6daca87acb6ad081098deb1419cc7bacb407bf52559440a69c0ca2af1738b266e2c14fb26bbeb9ae1f415b27b31e36e59026066b2674d60516b8c06b70fc8194d86bc8a5514e9e73dfb29ee959f2c857f33dd0f672e35f13b60185c8cfbb3af23badb9271e40dc1d4374562d88277ce0600b18e634b127d3bb2f5e1264dd9a3c188be38089617344a01efe47e1fb442d747bf5862c409c14327b2e3b8ee065a03764b026d08983ac0\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 66\nmsg = 313233343030\nresult = valid\nsig = 4d34e818a3cae7ea179c057aca683ba99e347f661e5a931e702a75e9b8593c888461f8057fd719b4cc57dd674da0daae36972c5418205c87840470cc090d99714aa2d886d246ee6b5751f683070254ce0e12303c9fe252d5ef435f558006d3bfc9d173be2fce9c580c3c6b6efd003c84de74aa6d9e31fd7b04b0fa2f0d6bad247a3c28f157276f525eae16b058936cd91f665ae1858b2c00b778aa42b97aafb5bcb38e577da899c0390a7619339e2eb487265b6e660be420be199586f4124671c682a67e0ac1d31be4b458ba5ea64249e988bbbb67a59bc62d3d827b355f3b0e4ed32ab2078389653bac1861586e2ce2b49e423fe5832c49f7e04a53c6a72997\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d41", - "24c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 67\nmsg = 313233343030\nresult = valid\nsig = a4b028e9ce76e68732edd1534e6c50df0fb88de211686858b815f93f899955d91cacb434ead4755f6b2ba64a305e656c31f52581e6910f1b3c3e941baa76ebfb5b08b8544da46f5d557b6baea4b206aa4b03b47f0fb3c4dbb38a6dee18b6e621d26a108b107cf24c00b6f5e9ba2aa98f7afe7ae96e45d073f36d57d8d38e4ec8ebaf00374f9b2a4a2a53dd7a4e5fb0879498240abdf366ffc731ec56cc89cc9657ef0f6eda0cf39c0846be2b8b1dbb681ebe31b20f851e962891d55fc62050a5fa012949ce584af8c9ef5b795f0a4c0a426450d71161638d80a49a842fe76dd320716910a81dd9edbc10717eec8afcb22a590541daadf0bfcd117deebfb2d409\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 68\nmsg = 313233343030\nresult = valid\nsig = 8e835e05ce0b0a5d4b00b8ae5ca60ca6a6f654274d0d1db9f32ebdd91f526cb69bf2508006db1e559489efea6b3b202a70ae72757aa13603fbef69083efdc39a1b762e355f22603860a2b12e69ea5086583eb61d754e5f70812eb3589217bfc41fe4fcacedff8fc146e3ec10f5e06c127f41ebaea7c4e82b3ef6e786886a80ec51189ac5c4d9319ccf50d9ab4b93661768fa2730f8d91a7892d5b72872d69de29c39771e8174ef0a60faa4491eaebdd651c9f2048d800fd6ee5e0b897e7cd962639911943f5401dfb44354a435f353648ebead13dcabd62657074b448c0db9c9a47d8b863b93812e18738c490992e6b16f957cf769fd301a2d609243de926e9b\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 69\nmsg = 313233343030\nresult = valid\nsig = 9a0006356a9971ac48b80da03247b0ac9d4eb99bfb7a59c730b707d16a823d31d8c64622f27c0184aee75235c0abd91625a18d0d17f7dda988232257b64727cfecaee137a9a2e033942139ec4c076d16476bb406be43805efd6398e0de37f1b974de2824c39bf61b35af0f4936a00d0f2c078ba815ded518b073cd4a36c8c1c16791bc78a222fcd877504935faedc3da6378b401247c6cbadeebc823fb2f516392d3706f92fde0d519c48a3ca2842007257adffa1fa8927e90e93cbb8d2ea175a6c083f4ee3640f7f7138bf63ccceddab07b2aed7639c2e1a2bba5122e4588a7e695020a3b521e1be3f299ca9996cea0a1ac8f7abf29a13d36732b934404f3be\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c", - "5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 70\nmsg = 313233343030\nresult = valid\nsig = 515eea496a899f1b6f84d8ae1a31390ff4e4c889e0ee2525b2e9d656b51ce60889ec9745a25d908e3e93b10d1775f60f638557e6bae1a9dda1491b26aa038dec60bc0030be3e23b45fb1f55e800f4eefcea448fa8978f144a4264a3b79dddfbcc033fbb987b6f849a91b2a28ff193db1ba715a157026fa442b851369e7e4c086aad5df0e2c9a4b598c4505e5703cb9e2ab0ab8b9c5e7266f84a8e998fbc799ea2f4e0de0db5b97161c7215c246b006c4f3ac9aa973df2aea96661a367d7b09b109d6912cfa84185947298f65274dfe9ada215b172693cd75bd9e0008f07dee6ed159933fdc6940f5a31e5d31f27b84f04d6241ccf440e1ce534c8f16f6f287d9\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 71\nmsg = 313233343030\nresult = valid\nsig = 85391950b1f67e9bec6620913bab3792b34285ca2850c2d6767452330c5dd76312483a50d3948a1d721f6de83ef915c67213e0bfe8dcb307905e68103b71f16bb96328e44f4bc61f7fd6d994abea65b774559dfdd3dbcfff7608855fb74d91b3c8397b42f5fec313abd9dc599f0091b419845944a49149ec41ec526e9f5291904ea68aa6d974dc0f771b7aa78bec702601e83d3f24bb3ef48a7712f48dc6e2fb0ec718d7dd0c035f9535b86eafe1c87270f5782f68197ec90dd256ad79efb0f52c1fd376e8a980b681985dfbe995406c17cf919f49ee3122d79eb94586942cdd2cb9fdafc870081e6bc93d90cc5755812c818f1605d652552f9eeefbb8d46819\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 72\nmsg = 313233343030\nresult = valid\nsig = 058cf56a97bc8c274af169b3918df40c88df6f1514903eb467a14ea7d264ca79f56a76b236f60f3eb30fd349c08dd8066aba5983f8a9c2086dcc3e66839f33805e11ca2a39d929508b296fa477293cd6d3314cad77f4757f4c2a59b8946d0a12efe19ee0b534cf6f709ddfd302a9109b5d1caa95b02f903dad6052be22d46f84ece5d3d683fb9689a7e2d1161833d98116de414c8350e48c8ec41902785641c190bf1a14bc5980a5f650bdb1c401ae1be6aca24d5ce8d911d76617c260a5d744ea9ffb50829c3da1c4dec0de3a68dd37e0bc6e8bfb30c2d91201afff113e78a739f074f1725137cb39a62bb130bb5c7c9921cdd5431c078f09d30b2060fbb900\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 73\nmsg = 313233343030\nresult = valid\nsig = 03f634b2c133e157c7955445082102a69228131ec6fdb9840af28ab45c62e20cf832c055418b665a4958c02ead8ce77d62852dc77b8e427bf0326653df718ef84117af503868cc7aff3c4bcbbbe6e69c3e5b14de31095e3b3b43701329a574c7e2c64ecbe08f3cffb0429ba429e83c206625b9be1185bc5df34ba5a58fb20e655972faf6c0f55a94db6cfe975e4506c6ce4572ae5bd196e2b108ca9622b9bbc315193697858094bb8007d8c007674034375cb1d4092e28262216aa44d12edadd1262291cd085eb8d892ae461ae6c227ee91b7be1521f53b332e1c6bf7a3797c92cc86b738d306553bef975ee7fc6f0a968186de390046ce1f51fab68bdaf4ea0\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546", - "a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 74\nmsg = 313233343030\nresult = valid\nsig = 46dd15af9e3e221e85d682f4942a8c7e4d31a3bbaa909f48e041b3f582a9e799e9125e6b5c6fc35716e73da6a707f8a2c59c49ac0f4f140715b9c51a6e07172c5c9675f3abcc60a46dc671e866de78c238dba6f34e24c15578ce9d9869a915056c550bd632e49ee78067a7d20c597797c5628048d8286218d1291e759b49e6fdbd617e78d00d8953741c261bc5ee0f27cc61719057c5494234e453aea6c086fc6b63cd21d1da0d160db4a1b80e94f19f14f5d3e8c5291926bc815a378e8cf8b2b3036b02549854bcc0ab0634d0b9e70570a8fc732ce0f12ad927e67356f9454ef5f1e5f89766bc8867693beb4e852e6f2c19ad88e33a435548bd8e840dcf84e9\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 75\nmsg = 313233343030\nresult = valid\nsig = a1f187aaa6f2c383b5b88fcd59d80a58475bffeb05049e71096b0e396ad6168b4f98d2be393753469dd48107e119eda73bc7ddd7830a7772d19cb7d799201b534361ed52ae91909c2efb355ede49f16ca7648b21a0c4a1746ec5bb48cce5b11adca074d79f1252e906331eee3abafa6f985205f9c64dce2a954ade4e600f30d154494be677141e4efa12e5fa86e79cf939149bc30e73627407455622515064b5b3a7e3f2816d67ef59eb499c9cf92b0f9f78a4b21ef7c32dde4cb89461f6c7280dd9d90c403c0dad486c22f039a16524a31644b635f05bdb615ffab67df491783c5c85ca19d935294c6d458a65ffb065229f408596b0be0327d5af052845bd6b\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 76\nmsg = 313233343030\nresult = valid\nsig = 3eb30e9c91fe7f0c0da8041f7441bb3ffd542e63a8519705a9941883aa13cc5ff4d5c14263605687778edbb8c9dddd4828524342879a6c8bfa6203d85e338de351608ddc987bcb510590276ea691728d5c94028e10fd47f209c4e4be369ffdad3a0483cf6c8704af3288e1b4b7f4ff9deae00f54bcd068347ddfef7c3bd1e2d05be8e87b52c8f348806898f0cef7f494e2c2ad3fffc73a39d5531c629efc0a63604c4173af03ad73cd71cf8ffa79a5cb8cc10efa66004237a342899bfa81f5a47e76776c9a626d49c6bcb051b168357d5ab4b7e51c1142c86ab4e52a6b3bdf85cae768841396da036a733fc15857078ea563635ccf5b366499c550c63dbc449d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bc", - "c20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 77\nmsg = 313233343030\nresult = valid\nsig = b261dbd4e96d7508686709dec566282ca192a0bdd1f37aea4d0530e07734cdd664d933906ea5bbb8616d1ca5b8e893ea85c613e6ec6fc94f4fb500bae6b356af8419f55ccc006781f6916190e50f411bd0c0bcfb729d2b271a4b1b30a80f53dcd9393950e595a2116e27be9b2ca1465e0eb5dff2d8f9d524c70d06127d9bd160eade8328452967739cd5e372e56ea098a662e8f5868614e0834cd380e7481952428cffb9e15daa66406c025acac8a73d63863fe3192c1eb9806d42f4add9a2c9c608c763efb64561c2178f90f46b34dd967fe6b0907bb13d2a13450128c43c8b4569778a1016495ec317dc21475705d6f95843bfb5f8f1029d2f257905ad82b8\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 78\nmsg = 313233343030\nresult = valid\nsig = af289127c72413c318120f8a55752cee713e81786ad2002fe51db89e18fa0ae98afbab320853da32aff8efd5d07c9e9edc8211c53d6cab61e4e02827cc80b0ccdb8ce3a5984bc7810b284384eb6afbbfbdae51ef15537893737a46a750b71a248a257d4e15080201837a69cffb5a1eaa2ba31549ab2737fcfbf8833db9692db50cac6d22d01379aebb00ee43505bcc4c151a84cd5b1da9d58122385d1aca9cbc3cbd6e4568b8efb51f862d170315ab3172c40dc36e871a10f6cd88bfce13b384653738875acc2ad47e5110fcd7702a1737ef459cb49d70d3df4e6f29d2bd6c8020c4c77c3124fd5d53be435b0dbe8eab6a70fe120c5de89717290cb8052aa405\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 79\nmsg = 313233343030\nresult = valid\nsig = 5e6d645c45e43e756bd8299a63110e9afd6e8055b1759f29058208787222d04942da32b858cc355c089cae77751826d13fd6edd8b73d3d93e10558aea863af16c739980ce381fb092eda4ec6b0fa0f40d91ef98b3b855e557e6fbcc15ee46059b75014565fcb826f4f51662fe37f42bae43a628d70f0d8b49fa2e00fea84a22091669b9601964f7dd9eecdc1b539437ca1ec1915499c5cd5f6ffb38e9585c8baf39a283231691658d5a1cfb1befeff4a005804d050c339a681ba27175d4037a8eec6cb882972cc0a408a0081958d2ef13de4f2cd0402a1c6282eab0a8ce418e83f7f5e3880e88d115202c4c481a09d15c79d7388c2561cc724d9ca94e1f33b47\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 80\nmsg = 313233343030\nresult = valid\nsig = 47b07a933329375d1003bb984be0e9a0c3b6c736768f5bc36bd314b9365b525f5f55185e49f4383125bd01f2eafdbda9d1e8b51e0cf5735e5ae36bbcdff9f7e8f6e2449b4d58477a4c9e57f83778be2c7be22b7ef0d5ae540a87b9b7ea123372f09f8ea111ef1816472af9b391122745accf09e0f652aa58a6e79d4081eb3fade4f4ffbb3506c4aa9b8d00f793c4173636ace4f727e7adfa59a40940bfa652ee6faa6dc6b6cc16d9ab34782951a099f33636e810776f212924c9a4b4788a20f2106b8a61529aecca14701738eee59a1d0c46c82b902f5e4957772b9918db556c0bb200321b5d7516d5b0a7b67f9427db0d7da1deacde2ce7008adb8bd4f12542\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d", - "211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 81\nmsg = 313233343030\nresult = valid\nsig = 8b9b86bc3d9f34d2514b54928a542be358c22574ea01e254526cb569841b55d429f4fc190e7a4aa526781e439671acd1189d263a8d7cc8dac7f0978a091ee4455c030ab325ba55adde20ff5b4bdf9c32b9d48ffd5c05e6b643cf7c2827befcbb745cbd305b6efe6d38a69a9e44faa81a1b8481cb141a72d52fb7bd01bfc3db962ac79093931c2fdde0156db7ffa0da461ac9474419ddd27b79ceb55dbbc5cec9d957c4967d3dd2fb9d43f2aea8b254a7428c0e0aa93835bdb82634d125e3041ca999bce5eac7f0b28f87eaae8dc19ea312085c75c72d743e8a6f9c20fd659b0534ea76be885758560abf0de446f975f5689ac83fdbce309afce89f68d551383a\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 82\nmsg = 313233343030\nresult = valid\nsig = 67b898d0a5794d80c30fb977e4ec96933fd088df58b2094c9e5dda132bd23fea5820da6dc0eca9cb9f7af7cfdec61b94c05e004a7d1ef18310e716b70ef15fb2e33c856ac0b18580a735eba59b5183491912ee386f7b498370decba37ace8c50608b5dcea22678b5e5db20d06fe25c554ca2d29b25d13c3cbc981a8c9afbe73cd260c9dffb9f3561af8a9b459955072f31621a20941990b04f27e1f88e86c3dc8915fea08aacb41c24284e0ea5bbfa1a7cc09ee786dd0eb2de28392ff15604b10d55f0959a11ad2a895b910cee367764c61daaafa49d60fe951d8e143a1d1453843cae84808bdcb52919a4954573506cb69ee93167c16a0d8dfe89527cc5108c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 83\nmsg = 313233343030\nresult = valid\nsig = 5fd7bd964b097ccf7daf5dcda4946d8969d6140ec7f4208b2593d36f0ccdd94e191b85d3c63dc56b4979b3193122ba3e122b6cd687ff535ae6b78635641173ae76e32ba6cb50384a2560600103cb9f2c1e540c5f73d1434535c8ada6f62ad830838d096df9afcc8ee129f2b3dca499aae25965cc068c2be9b19d3cd4e8c5c7aa69b6c8a6dad86678edb82e906617794baaa0577876ca26ca7b637d6d4133a371eb7a32c42ac0431bf6611ab66d5621c5ad4a94f2ce680b4a8c21f7a2c1a66cfee9a802362041329fd6e1fd66e7175569550bb865f38e6c1803829c537e2ae0049dbb5509cd4e0537b7e1a03eca9b5825f90c091f81c480dd19f086632b0cb338\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b0", - "0b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 84\nmsg = 313233343030\nresult = valid\nsig = ad477628385ba60a8c098232fc75e7d4631b5bbfff1c90eeb9f7a9628ea33a808c3b46d86af5c10d6c15cb8827e9404db420aaa18669d3110c3af01375dc9179e6ed900fc0493ce1a470822e23a2935d6240f6ac0e965d8d1d3aefb73e34572db3e807ca0732f4088fea9fb001b17f5c2e575f502f17d056c72c139ba1b9b44403684e25f60ce9427933d9c044757f7dd1f533f7239a7e0c8ad90a4b564cf304a928b5f0a30253d3a4c9f38a872dfbd3af0bba3a4893ce4fb9cbb082f25c2d700cc1b1bd57537abb01cd9dc4ed472ee3d6e5dd1e4604ac118d6d1210d5d35c583e4dbc93ea9f804204d81f509e4feabddee9cce6877d4d9b79de13e08ac01080\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 85\nmsg = 313233343030\nresult = valid\nsig = 3bb2c2b51524d29a8d6a11ec47faee62599f2a310ce42d578725d19d050c1051a1bdd65ecd7e4f1c6e4bfa0434626f933bfcc1532bbbee1ad9b83aa888d51f92f35795a46d06c81970a6f6f8cb0f72a57e62b33e64517c1b2625b11458213919f4b96ea4956143d8d658bdc7f5600dd0f301bc7a85a5f785c91cb345413fc1b1ae9499c68739ab963388db47f7cc816bb53f8169cc8f8ae27f7cec4b4366ff2ac14a5273eab9215a2815fb71c45a274bd4c11d0a7a721501e41f30193130e7fcc150b5c54df4728bf72f667de4f3a8cf6fd62faebf1c2fcf33dfcd694120532c7a638a6f1da9846c36b2c2cfbfcb8782655c743d9d324b4fa88bcd16997f3c2b\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 86\nmsg = 313233343030\nresult = valid\nsig = 275e2235dba328642b7e5a789203119e49012c0006858d0143dd571c67ef8757c3d90f640bc0c73532889dd7739cb023505bbb6f64fff8872aa2274fdbdf1a698ce03aa24e0f985c8e503d093bb138388ae98dd16e9e3f1dbe65a9f313b26dc8d35c527929dc1fc6c387be538a13c97de30a8460ecdb87891e233c826be75cc7f598fec0301dfbe3234b2940d61e93b2e4e6091c19671b7f07033c9f1c6ee90eb99abedc9d6a39aee952329f34d617fb106cfcf6e95fc867f2d991ca30168d08259b12dc974fc74eb5b03f9209d208896b88d0191dab425b7e9ed0c0b6e598e7284b51bb276c46c1b4b60f6c92b1177832ab26b69fc579e7312cb0114576d11c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 87\nmsg = 313233343030\nresult = valid\nsig = 28b91acc263bfa8e50742e54f6a7cf9ead9cc0ed81ef2a063caea8c8055f00d1d1cb897f84f3f832300031d7293c98616a994b2944a4e2bf4765c573ef8aa26db4b9555b55194d2a50985332c0b3e449253454a2b17adaf293bc5ec52d6fe95b6b7bd997741729bc5ed68c2b53e426f4f27b533b765cc58657133566793356e6c4ef8f4a8a0192f2501116baea02a11c7facb9c602eca510e4cd2066bdafc2789f13ed959e44cb3f34f7476e746c6f3d78eadc7d0152fb37428d0d97b52a9f90e47f74b65c3c0ee0f353968c703972262c175f89536e8ab3c26906525d430aaa82d2aeb34ffa70d39cc777bb03e87cd5e5c8f93d37e291192a4f333bc857e714\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad", - "5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 88\nmsg = 313233343030\nresult = valid\nsig = 05d62a19dd4bc8fcd622cd55d6762f7f46f9928b1b1806c92591d432c4fcba91ef9c834c7d99fc0583634d77f7d2a6cf8ca525fbb3ac037b0df8c3fb7da46044c7a54780f9f83aa897d51717c44de91c7f2605a40b3165da8fd92eec6d8bb6612226cf7fcd4c918b7cad68858eb0bddf70d5823986cb580bcb3d274097911acc1dcbb61c9c77daec84251f0233749b6bb03ba5905ac29c6f8485ef9e67c6290c862490bf49dcf4153961abcbcbb30e17169f9465cb71f84873675d9b71f5c04b44dca8bd2501b753869e04328c0095fd4bcfb059324c4e8a08900d2012e25bdf56853fff41e333a552bd1eacbe384909da86845f960d31e8ce570770f174d714\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 89\nmsg = 313233343030\nresult = valid\nsig = 03b0cd1b267805404dad5ddae2cd341ad2d4d4ec35c764ef7205e1a6f0e437ad41990baf569b9b072a2e4d41a8c969c688a586bed3da319ee471f4abb6d4a0ab452eec6e5ed67e6c138befa3b8784af91f158185b11c1ba141bb5d2bb9ab8a759139d19fedb2af16b230a4ca00da9f6f9908194f9202746fa51a1c3372d4f3ef58f61889b67380ade4bbd53a0273d27a37764d5aeeb06d2bd96398d5d2c6f5c7b9718313598aaf881d98262e67d709aac76b6d397727df2c607f7b682adb76cf9b8e58ef64de1cd815a36bafc79b270acc30aa8a184f299ef217cdd630d2026a865821f29d82b8ee8e4055ad45e7388d03a5f319158895ed803e57c3c3b11049\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 90\nmsg = 313233343030\nresult = valid\nsig = 7c9132adaaa0592b7bd0f8b4de70b28c5f3a04cd777e90e82758b95f368d6f7bda039e134ec383c5cd15e67eb75df41c03bab87d60937d5088272392e11e26dab51afcd73c00c0e167fbb5d4bd6939691788603386b8cc90458679111faf4af273b3b32f4ac3790cb4f4d88b362d11b8f7897472ba3c8a6963fb7f708bf6c44a5467646c3972719345ceeb42000603a1b9fc0063719ae44c66c6e8ca989422add2ad533465b954789181e403049411585549a44f0da9abd6af3f53d50238ebbd5f4a4e41e426255c261322d415f3e82e1bc0b889fe80a518b19079565ac7c44d79707354d15872e95e99262cd9d8185804fc923299b2baf8d40814ad9282164e\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fba", - "eb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 91\nmsg = 313233343030\nresult = valid\nsig = 83a3c6df7f928a467000185413d80212bc568ff3bb42aa5d6276c2e52bf2dbb4e44d27c7845f05791deaaa62cd1d3876473454a3a18538ab0552236ccabd63c4b7d98a2d38228c66cdfe9bc8f5d7c60ccf66321da62d2f0cdc168f95846c4bd5f70a918146bce9da84d07e2392d2e0cf5d3d9bc58e2f0f64ae92d90a6c5ba37e074f0328c4c52195c546bcc7d46c0dfdf9bce167848bdc93d34a01a4325d5c1da84492ecad974ed1d047cdd69cdabff0379f2f17a63e33b732a2648d5469c6260eb96aecd7e38892f595e3d1940830605260d2107bfd37d7db3ccf31e39404a0f646673580e0fe7cbe151d6bc522b8d532b2bdfc2418546d802c77ba88ff59c2\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 92\nmsg = 313233343030\nresult = valid\nsig = b1accf7eadc4dc201a87e535242e9d929d83d7621ee97ca27802dfbccfc5f8b968139562fb0df9ccb49178e294c5a78bf0a8c3f3239e762bc7077a9c0befa69d8904b70763cb2cca86e973924240820165aab285a313897eb034d2dd7b9c4e8e1781a8ececf01c610737443ea98628e94e8d94db6ab32687322ceb3d0cc5ae7316f7736c3fc86e8a911b30c6bb80c1bbfa33d5fa8b5d4fed13ba433f66c1c3235e4fdb2aa915141b34323e64bb39d47d3582ad2751f876d22e348e5c4eff9eb38d80dfa0a66f9df9e1f96adaba1d513903c3fbaa8e1379680015ff7fa659f265e8265c5817e742901d9e9c8c9b31e04c50e60fe4904fe9a9bacd3e133870a388\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 93\nmsg = 313233343030\nresult = valid\nsig = 393ec2b5fd66fbeac6cdfb62f43f832483c895f7a99df1d44b74155c9ec7a4174ea80f0011933d9a2988f2ecd2b140120709239ca412d2cf93da30f7626e4d2e41051a29846c4762a7971ebf015786ba720e929deb0f3ebdfcdd4dd9e08dd9dec59f31697a6e41aa20567b31aa0acce622508321a1f0ccfd6ef85c99bb371ce0298e5d501d2597b0508be6838985cb95051c1271b4c7edfbe8976e656488ff61f8ddc291c873034e32fc7ea65dc59503bb49ee279d6aa5a698da77f6ac20d63603308efc20067e903dd3414599edcfc488dc1b93e3ec4de2fca1be8772413d10ab65058f9f1da4c5abbc3e79965ead7cb06b4f0752d8725350cb84c3ace51a22\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 94\nmsg = 313233343030\nresult = valid\nsig = 59ee9757c6d77e1a29bda4c2d0c69afd89a8da8cfae62bec1f87068de3c855421d20172c080d8d5ca24f68009048ea1ba4a72c397a6178867f21f500cfd8b352e4cf02d99c5b084d6bb5001e20e0845b62d3baff8e86c5a9a8d6b5cbd90a215012bff297dedde49978c8eef69d7745c586717fcf3615f83da251af76a77b2035a3bf94f705fca89d3dfc1feaefc21a1990c9acc83ce5320112514e4f9a4bae264f0d6a100be4a44f900450afc99679f07ea0fbe8ec494131830602d571352eb8f7c51812d06b53023413ac436f27e8d9893438efa00ddbbfab975f18a25c9f189eefd90dd751ff7f36ac0ac22e1514c8fa1882af05514bd6c328028de28db79e\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a9", - "55bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 95\nmsg = 313233343030\nresult = valid\nsig = 3a44e84f982a227dd65ca85621eb786d89f86f698251f0e297d607e94c59ec246aab8df5601bd1dc5959768dd13320ed6a9fc5d8e2424d251dae9514bbffa8094ae48b226f87a1e62b0f50aac3de7ab50dac7434b1c72fc6b6c820e0c653d8477837ca12bd53a2435a56201667d0241dc1f5c2c3a73e4c37fb8f10cfbff239cdda5eeaead887a5055c8a2f156fbdb7b5ecd458cbb8baa3b564046147af1cfa7369ceb602e9ecf5d37af5e0a8b7936410d2dac61883e8e8613519e2c6a88286099c7a7611704052f4c1c04f9b40e64bd0cbbdb909bba13fb47cff47594b3e1451992ec0ebbd4d14eb72cd4d3684244190bf93faa3cba93edd3677fff20188d8a2\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 96\nmsg = 313233343030\nresult = valid\nsig = 4800faf5338b7795a8666a28bf8a73f33193ad207bbca13dc3f3baf6397f3762e814c237f5512c99dd1e5124892f7da09c8d2ccae562c4fdfdad929f1de8fc3c434e7a99a0e56cdceff69c00f104ffb2907a064da0e5bc625767fe23104831d545c1ef1f8267a0ffd61755bd8f520ccf797355879faa752ed8d59814aeac713f34f07d8ea803c90ed0581d753646d559a13c4a82cbe04655f5d404b26818447074f0e68012f95acfc59e341e6be59901d00b2f7f41bd034213624c4f33b3a002aca2b8447df255278700edd31d2ee272c248eb2844721444d4a38344fff28e0787c2f138ee84f7cbcc1d4ac96e354ba8baf67793f2466c4b48f39f37253e8396\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 97\nmsg = 313233343030\nresult = valid\nsig = 4068088a052a019bd405635272ed21a3bb7699ef4bd220f5da1951aa419fadf417d3f8187d49ee1fcf17f358bf4642706df684f1eacb8424ae94dc87ae4eb1073969e8f874d4972b671db37f3f59f210d50a75b6f8dcc20a2749253e799b3259f9a95ed5da971d093ce2b3f388b14778dad85b14eb404a3cb16a183cc732df393421d48fe0094395b90270bd760ff7a9fbad19d52a24aa09255d1ec098c878d18498fe9929a52f699cf7a24ad63727ba88bdb3db6ea7682a06b7004559d1f5346d10b709e5c93a8a24fb1487c532b7e7a87b143d22a2213f591e7b3959b420593e603f5beeb4454fc8dccf0bd4d3ea49c8f6ad67f3ac90aab3fc73db8ffbda2d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a", - "6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 98\nmsg = 313233343030\nresult = valid\nsig = b7e5e12ca4ed531ee805973691e1d971b79aea502a7416a56d14e49c301482668323ff8bdc02ab49c98ec0b2c67f6190cdc3ec548ca6fa05f94a68eaa2111f01d6e3aabd8513d3ee0a52538831ec2c58766b6e28cf7d0b561a8a2d3a54cf30a98e777469e1b2f171f8457afce2e0b61ec147dd7eee64d9535465d626092038b848b556c2d488fd6169cc1115e10dd05a4b77a0560fcef4cf3ba608dee6a33e09f00e014acc3a2e3dfeeb3128db53b1075c6922f9d90e70d0c7de60c57420668b850be0c127d2683b38ce13a6dbb7c9cb9d2beeb7e00613a1385df1088b38288081f2120e947d522a5a145b899eaedc21b9072b201d92efb8e1964858e37574cf\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 99\nmsg = 313233343030\nresult = valid\nsig = ab24379ba46e86c915374d26ba25217282454b255bc8a675d7b491b7d7ab763d7ca6ad735297bfce4334b72b2c74fe68cccee1b04317023ee3271ba6b674b87237f141e94c2d446fb46344bfd8823741ec931ca8105089c48eb199315dfb615e17a4aed74f9654a1cf5917050ac6a2065e2f8886f4b3fb8ac092891ba462ead334cb64c4ae1a29537ba4fb53aa6bacf521a984c7c9e0fd0eafe5fd354c75ecffb5ec356fb34f2af67593916151f219635ad7afec1ce8a779083219d7fdd1e28c9e78fa6e312ef5507b77711e2f58934b6fb43379c607f99e6b4f449a0b6c4b5c723171d63fd74a34332ec54a2d0f4d1c31090b8bd5002c981d2986fb2dd7f5f0\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 100\nmsg = 313233343030\nresult = valid\nsig = 6cb2d2b7235816f9ec77704b9a92e10f6fd545222a029ebde456fe0a7f47711d26ef4012e6445fa455fdcc90525ce4b218a0cb7c0002f3331acf7155ced2b278d46bfa676661d0cb8dfda8048bd1066e46cfdcc3878b845ab0dbd9668bf10fedab8e971b6ac7b42e84ce0c7d51ade27dc317306a8e623df8ac56e15f3cf00992408f5644e17b736550af04361bc7b5dcb10da9f1f7df4415f2243baccf32b500d69dc3802060f66cd5ece6e0bbcdb9d8c1b2152d4e747e8e017889a7a9c0e71abe1dc6c8f4593cc913cfa1c68c5c85fb20db5dc27297605fcd77d81fbb9d114f5a343c0753eeabba92d3a6157925598a5c84022de9ea913a2dd2b86610456202\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 101\nmsg = 313233343030\nresult = valid\nsig = 9c6221f623e091e133f137f82c3b700c907e794ffc567e00b1515f5b7dcd6233043e804d85692c1e9cb9c4a634fd3d798b75205e599a149681fe8c8b766d3b9dfb1e50ace02f587fa903a92766182e55c82afb10893bf29ca64915477abf164d63e3c860c5330169ad4a771649ff2c38aeb36a754aa98377fe8903243dd9342c4c8d0753f5b14f05bbec3e2149f74a5863f8b29733cea10086aeff8726a0d3c5fddd037a279843e5e99130172a19d8fa8b5d8ad2815f6f06a55e413d574d4805572c6256b63e8b8eb338cf54645e5e6e853da7250450c2488acf1e7b63ddd8976b0873d01937b5bcce8cf035d41b4fa14012355c354e6ba1e3c67446325fe224\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c", - "927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 102\nmsg = 313233343030\nresult = valid\nsig = 4657d03e8657ce1d5a60d755765dc8ca3ac956cf8f9025cca0261de70c60dc3ffd3205db3cdaaa15500b652bbf82321296037e2efbfcaa903def52d1d4519df9fa9fc5d4c36912533cdd3d8c78a72c07d16b6240b86a65bde7af5bab617ed35e3b7ab46c93d9857a64cf83109afe83955ee9485184640ea7bd2d7a20345f0933856e2dfbd2ba8905c377ff832da56b9d7bcc27de96125f5c22de218ddede298c95ee20d9bd96bee608daf37adb51e7c8d221c822bf2b030dec29478c208b966b2f6968594d6918e7a8ff705938978ff56f25d008e3f7ed3c90200c5cfac5ba7009c0adda69df94621b0faaa79a23dda0af878d519769e72de127daf69fa3d62d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 103\nmsg = 313233343030\nresult = valid\nsig = 27c8b29e6cbd79a0a564b7ad856b360f8621fa91623813e671536fccb69720cd7596eb023caaa4408a480a14b1b17573d2a190530d00912c5a8430ae29be99148e3ce0a83fa5a7895fae8f2a0ea0e56911e69efc5668018b4fdcd7ac6c147713780b35950ceca07062640fa8b2c946c7dfdb09f69c28e6054dbd25de807f4ed750985d5c21059328a0da9ed8ccb277d473c6a78f873d83a5dab3675f6883a73103d998bcec6e91150338c9b09b847e65c430a64337306f9af9ccc65576224d405764c239e2b1faa375d92cacd09bb6a0ec2ce61615e4319ae1e49183cb0f9647b450497ae900fbbe22de24b31e0f2cb0c5b26de13699225534c218b08e4d425d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 104\nmsg = 313233343030\nresult = valid\nsig = 3e4ae7fe4888ff711a348489a4770abfca50ed0b60ba39c6101972c96dca5428fcd6e2f43ffd493f1de41c22cdfcb327a7a3d43ff3c2218cb6c48a287b885373e8fb4cdc1c799ca256341eb577edf238821e9310f0cdbc98ca2e48f7b1dca5c1b861a6b80f246f7948c29db4b26c648f66573b4acb058c36a462f2d67fea2d23bf449b863c016f3a622320dcb3760d0da34f98a51075b15076e03523fdf370a2800255bbeebe0c0920a695c6ca7758e81ece1e199505df880b365f3b4ee897ef7d04c303322c27ded183ec0d432784b6efcdab558e214b839ca8b0cc4daaf80099f69b9791f5584f0d21ca4ff66f3acc3e5e003a6defa681ffda0a58f8db8861\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c39", - "7cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 105\nmsg = 313233343030\nresult = valid\nsig = 89e34621c15e6638469bc4e4d95243f1f0ad698e3f374dcf8bb74778f1d7edb5481b22ff1cf1f0bb30ac2f0e842816862e55c9e47b87dda5d05f0b88e02662a4e0fd456529b535893411baddfd965771857b7ca1504f0b0952f2b60f24139db821a45020911e94e8353841756fff109795914a46b126d8e39dc9c0d2ce4882f80ee843bac9060da62f01cf56a3596981120228acbb1da8f5b89415dd652b1458c21ec51cd2fdd89c391f07c15737d7485852b37bba45f27d95fd48d3062ea22019dc9088e27b25acbc486250485a7aeaa08532a5a9e07a7a7675d32a178675ce51a3a0a756180596742c8446b0383b37e86fa910e76034a2648e93a80db970f5\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 106\nmsg = 313233343030\nresult = valid\nsig = 3733f507187912655231dcf642ad9f7eddcbb6db32467a492ae3c30b61fffa2ed141fc2501d11dfe3b36ee1b10754368ef9a04c75aa2c1bfce20e0eda4e46a6d112e29827c03ddfb430f386c9b24a7fed4e8e26c7049ed09ddf231dac183d5046fc1413e86b697c1fc2eb30f13306ea049467b4ec3ac37f56ce824e6f4797640c7ec46a2d28f292824e02e5bde9dfcf9e099df06ceb4911cdc5fdba459bdb19afce8fa8cebd0c64a880655264f35201ee5b5e4ceddb64e583c1c849d6ce8d977f3e8424d37af6f5b810bdc8bdf0ac384bb0dc75856317acc12b66b0a9081ae6d2afb6eb38684df0a8708e7ca45809b98b3ed8092abd77caf38529977b9a52b8c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 107\nmsg = 313233343030\nresult = valid\nsig = 73c0eea34bccc2165128ea9141fa6f39c26fd88c5282cbc26e36b89016a6371ddacdbbabf278875000ab550949a5a26d2672e2219bd8df0ca7fd4d4257d9af6ae20ef7bce5f1b5ceb83ccab2c2e4a47a248493ae85603220a9bd3ee546013bf55cf1bd25255603e54df67e551b6078b442d188f0b25dc5ea8c33004f126320691220f515e74d3548e3a08a194786f1d42e781b0d42efeb461e2afc9304254f2c0dd85e4d80b16ba0d6f356126155bb99820f00c17d307bc7ca677c93c393ef9b2fb4bfe75e58763463909b1a3957f775f01f12ee8aba704a63014f83941c3490da4515be2d4ad1dd43934abe1535def1b3bfe58a43bb0edf296424e2e432003c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 108\nmsg = 313233343030\nresult = valid\nsig = 1768cef965b3e5ea372db44e211de05ae4b69c2ed4465084e9e55e602b4067d1058dccb02a717022f896d2fa2f6f56bf54cfaa73ec21646dddace99e3c4cd6dc2a3c9ec1a68cb91cdde9d56671ee866a3c681b867d126036811e306cc7320bb17d6a025818b468c1052661ac2475865fdeb11ffebd9521d2678fed02b9b3db221b3bf514d8d7a7798ab6bb077b94cb1bc22c541cc15a8385557e85d3c88f622e93e11193b631a331f993138368992015fd70f8cb8716822b6bf418d2438279948fc3b0641c9685f1bb853e5cea0568f7e1c040c13303cd907837b952c1e1f3eb6513888c5cad439e7206bc3f9b9355c5d91263df9f284e5f014cb2f052e4ecf6\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 3082012230", - "0d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 109\nmsg = 313233343030\nresult = valid\nsig = 55e2a51a5399a3ec9ea0b4bec415f1c53fcfcc9e0b74cc27c80ba07463be541d21e06b4b40b6bcc3e042bfe586ec9f036862be075d84956b0d326d92ad21a150148c9def31a9004c19d888ca4b46a48532497793d9e2d61f305a14f95be6e4fa99c1b9b1feea9cef980353006d71c2cc3105fa0f430e86dfa41743b118aaff6d133d95c52f6795adb53fc0f18161f6740a240e73f8c85fc64d2e74e2338ace4d13e11e02b0f3848038fcff8392a166c581e9dd1f7b8263dfabd5e20ca7dbf01cebd551a26d85199979a8b97c171951d604e9e009ac8d19965c079aa4f09c2eeb6f1aed989260761965c4f9aa135f0ed728c684ff555b3dda4f136369d3fcb565\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 110\nmsg = 313233343030\nresult = valid\nsig = a9169a0553a8f0f904b0a4a00dcf5247f87bb8e930f180aa2a543cfcd17b07fc1d627fdb061fc6b6fbdc2baf89d3bd8b2344f3c7c5469f88484517243d168a90a963408b63a848ce9fbc8c12f358e553ed624b5ccdde8a941a4f64d29364f83bbf7ebf10b60a85d73c346c7e462e7859e4b7728930472a0b2e67eb836b4d65b20c1cda68f54c9b7cc30840b1fe634176cb8e8be03ecd2b9f32ee3cbc981f8529d5a205d0bb6d8aca576b69e6478f1c033b1bb16ef1522a7ca5ea1f7cb71230681556e3cd1ef488b42004236f9e7c0b421e04bf746670f9c1d515c23875bb980267fe66b17050304db258672b35bd552da1e4860af4f564df3056b543794cfecf\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 111\nmsg = 313233343030\nresult = valid\nsig = 0bad39cd8a9987eb8c5af65c8491f5d975ec833311d1ae98d89a4ede949b93cfcd7f45c2191f5a5def8371a2e7eb26e966374d21bd21e13c52ffa8ac4c45eccabefd0bd372389ea6f857e2d44f7ce548f2b18a6993a3ca81ea14df494e4c1646268b6e7dc3945a0618a5f4447a8309a5ccd45a8dc59bd3cac9348707355911ed09f4e2d5472da0f343be1ed908bb4462c86446bb5fd227761391c367227645ca51c4c4893735093fa508705a7157eab776a515a2e40360b50cdb273994b4e99ea5fa203aafc35490651c6e5869ad9879f17bd6e5c8b6336d0f34db6af8fa0a62bb01ab27b1d5eb5a7d18afa80b8ef3269f0849a99e0483757f3b8c93a27100b8\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 112\nmsg = 313233343", - "030\nresult = valid\nsig = 97618c022f53f7e687c6f2e631cdccd07be804873fc70e76ba77ea7131ea25f68d41e2adc6d8d4226a07ad915341a4c05cba2ec1707b14f5edb5b92a25dc39a6418740fb47852add908f40ccc8baecc343fdfe54d222cb2f9fda5d8a64333393707bd1cd2c4a88f13ddd7595aa4db6481115aaa5a5dbb41623c45d0a4d3e4638a4bf05b86803ae607dd8f97260fc3cd9e6fe58e3dc24729cf2a797543742205b93a0f92b32305eb3e52fc762f3333c26de543befc954051c79fe2f0dc2e2b1bb855827b6c11b34141a7a9275083bd246b6174af1b758afee37216961b40e6f504a7525e99eec6c9e1012b5c4b73cf73ca10f993c6a0fcd9b07eb9053f69c1462\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 113\nmsg = 313233343030\nresult = valid\nsig = 915bf230ab9b210ab7a6c648162badd5e56024dcc783ba9993d6d2e02afd2ee48e6624e8c536545c297468fe3e4e76c05c98753310a5df84c2f478ce53783f9b61008b41c260c2b484c7daea7f67cc5f715d81b07bffaead0022419f2c085eeb69807ca189b442300be8dd3b3a71e3ec7069156d214477074965a7d6f747c5188f10ad7c26614fa48474ede7f7a8957eea89e5af57c59a615d52e0c16837cde7ac198607c35726af9d9a8e4e91725d31f47a052dc9f4114dad4101d3b21d919ec4e06fc8df0faf91eea595403927eaba5fbf3f9b6aeef4721aa9a2c899ebd6f3821770863d1dd2de4e8dcfb09978f5c920382f0a843c0607f66a780d53436822\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 114\nmsg = 313233343030\nresult = valid\nsig = 03487a274dccab65c76356abbaf1166a6b8e40bf41fc19362e609103d68b0da623ffa655cd222921deabcc783e32cd922d534c930b2012f03555698c9548b7588094b578c20c1a740a54adfb86780366ed951d01b162d059832e251b38a103394dec291bc72c982c2309918629dc656d96a89b71f57520dbe8baa25b97e68be0bbe8483c1a41cb59f027808ba22b82413c412594191c2293af570f02cc24cf3c79962a46d063bc12d9da5c1b1f562141957d049536d491b50398d2cd8d968add3fbfa8637afe36cfc0b1b4d953aaabc3f73e94fdf72ba8c06d405e224ee80c995ed7b32553dec80590f2787684e8dcd10962e3ed8280dbc2217d819b9de79aeb\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 115\nmsg = 313233343030\nresult = valid\nsig = aab6c1c447d5b10d9219633293a369348984c8614698fd7c46e636e902f4c7fe89e31ef4d4064fda55dd9cfe8461713fcdf0f6a45c88d6efeb10ce02f8d36ade589551988f49158d3d546e747be0f9e65fa1b4c202aff09b5d12feabef52e921b719cf45147ab67e6f0aa9dcbba99c1c3746cb0cd0e3509ac1eed05a2ed91afa424c6a33276245a94a9bdd183fbeac9e7d93051643784f121e13e89b95190af7c51176cf71eb832b3eb73866e897816fa9fbf703b31f1952af5dd8c68400374bece4f1baed06f19c5c5d68a1df8e328af1c8f0779bb8f805f0adb65bad6bce1c2527d4cdb89571c833f09d4375d75dae5bbe17d47608833d1041288d658e136c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabec", - "c427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 116\nmsg = 313233343030\nresult = valid\nsig = 1364a0181c685d561d44a5d3a735a2630035849de6eccb06bc52431c2ea69907fb08f2fd73c78ea3a849bcd48d2f62b89e370e3bb74ad3b1f9d663dd05d3c829cbd2d97cd4284bde84c293ef45bc0ff98eb47dac24f8b09dc39395da587fceec7a2f10bdef2eb0fc2fa4f01f652e6ab08986d95bfb15125ae5c26f84f11682e9ee4a6f19fb73b66cb2795127a9e98c623d8ce132310471ff6f50d1a7addb2d844c3cde7d1c7bfcfacf64b2880b50dee6a687123d313d74ff83bda1fe09b4c63115ac9c09ae8c936327b700268a3c83a56724a6a086a34afd5c8ccae9a5bc3225be35ac5d6b00f5a4c87466a2c5fa3e660126957d4cb4ebd064106c0456864ba9\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 117\nmsg = 313233343030\nresult = valid\nsig = 5210d4bac85e2ba4abf39b41c891237bd36447683b9ad80e738c1933828c6428085c0d4378b544ce6bd633640c058fa3dbd1d309920140ff4768c90710cfe1031ed471bd4ce30344c5eb1acef0713b02841b612c720d24276df366f3c57e5654585f11a48fe47d19f6296dfe2f845dbd91807f2eb6d9491f2ff26ccfec4f53c9a1d48aa7d0bd7adaf94cbac583f9c18d7d6fc99b85555ebc1dcb28e8193ae25fd1b625375235e609e8e9e97bd339747231dbb28b0b16d7a285171a791130a792627d890889a582aaf6aea853a7fc214e3a6cbbfa99a7083b86b4a8e0c69e7762c72e425b7370ae5eb444df3d539c8dfcc9011eaea130f5422a5be263b5bc66ae\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 118\nmsg = 313233343030\nresult = valid\nsig = 1bb37da5ce67bdbd545d59f368b339fdf5e5eb8d2178dd36279955c9b2a97616f380983f89b958c5c845ae061f71ac54422ff3408b9219c1e4328890a6757e635dc2d4b3ff2d9dd683e48c14649c85b2329f1b4ea416459566b63fe50cff6de769cb1a68b372bd1966cbc55919f979b7293bcfd59e299c18d0cd3198ef7e6f828ccc7e06dcaac9ef109e8232ff053e9accc95d12832941e5900dc312c552b5b7bf5c005220722fbadded0d7d4e74ef00e8d531c8bfc4700b4b1880312aaabea147defedeab15114a797333221e7171394a5e73c475be06396b861fa2baf7e47e59c2b77f31d3b753669492e6ae691ece8fcb9bef2162fd86dfd89d051716ee03\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 119\nmsg = 313233343030\nresult = valid\nsig = 103f71ce6260900e6d53721819ed2df38f8e2d7a873a5efc730c16c85", - "619b1ca180acd097d6d550fbe6452fbf0fe70c0a2299e3db88656bc347d28cd21e53c494e3c4ff28a8ce783ee842658863582b3b4473ebd435fd0b836bed51de16ccbb51308cdc953d8bfd97ab0f0c656b34c5d8c417a9206aeeaeb3b9cd2fce653ced21a140b156091754c93119fbeae5a8f868afdc7076cf65e9f1a14a6274bb49f6cb8c4f47b87055da28172176f18cac7feb463d22d841caba412f418e34a88a566d3c40ede21551a520d4bf8118840692d509fbfb18f1d005c2f54356bd51ac8202a85a163a60d885e3754c47cfca3518e7ec27b97df8242388bec5f6a41e1f0d7\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 120\nmsg = 313233343030\nresult = valid\nsig = 586439d37bf0268490b2c7d654b5b04418f6f62242bfb0a813a107440898bf63219518f32150e5743d7c55a1a0bdc9083aafc01729576a07f4ee4d1a12f1000a8490fa0d4dd035289a210eb587bb2e83fda1f9995712e1ee0aad7f787083b86af4913b2c5e4c54aa085d29b6b965b86e2caf70433c87ca864f94d68602fda1b547f5fcf132e6c5a341c276208485cfcc5768bf5ae467d06fd231a6b2ad1a0c7ca25d32df891f611093e9939a949e13154597025a2d9f5bae1f19bf11f6f67c37fe441627060ebc3a8b39752df16b6ae0a76f95af16cdb0e6957ef25cbf4ab89aca08ea9121d909c5b7c1b3c46757273cb44a99b026b7f939fec4f00b63e281ce\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 121\nmsg = 313233343030\nresult = valid\nsig = 65b14197a23ee775882c840a5dd631bcfebf6ec45d060d632f8ac00c3faa68d0e958dacd710674f9ebc9532dd0b2d1fa5394e69db283706929df8c206f7a8b311e14eb129bf153363a5f30b65e851535e71b9a1c46801f7591f3c16848042cc9e554e0f0ecd415252e9e61d7244bec0a8c808e35a22caf2dcd899806c0649932a0aba64d61b92a5c8be887aeb5bc50781e8969072ecdb6da96baf59d667b95c7f0d51c4e23636be837ed2c0175c5d42f931b152ecf94e8c6b06499e900c392c0f3bce47176e8507f6d239a26e45005a8d873c76de1283ef852769e13af0bbea460d81c8534bfdcc6e8699070d44837cbffaa1aeb3b72eadcfdd2923e506d30cc\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 122\nmsg = 313233343030\nresult = valid\nsig = 90ea824d128bd7c3b7719dbe79e0fe4e34660badb908a3b36836c8873e07a62086c3d163ee7b9a0b0f6baffc7df54c97dfa7c456c6b40b72cb8d040178f1e29d076febda7dcf5a652930ead66990241ec1afe5640b7297ba52e919b7a7f9e5b718c66095669f8660781da7b8183006a6a67d2dd0676711b4f96f5f71fa6d1d06c1c7abd52a932ea0580d14e1919e5acf2ac90fb55354070b43a1a42831ba288182c52060d31715f2c3febafe8e8080bc31093f7e688caa3f8d355448d95e4321c097ad27c69e8d7882261ea815b81443e8f24b371976df43a8cd7fc42d839df6645f7e5981ce16a6ba56c4270a8da6e09078de26fb4339d60ed0e376e0aaa69f\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b898", - "0bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 123\nmsg = 313233343030\nresult = valid\nsig = 2cbb507fa7ac718bc67365071673c813cb83d4f3bff46661051a43836a7fe52b42bcc998a8b92a5c279c133e521bde2da0ee8ac12dcb791aaddc6a28dd7b798ce7c26262d5bab10f240170349ea2a27a9eda6cc7976365e4e2502bb2682fd00db43e0ddd83db8aef14c00a272d72fb691a04da1623ef2da7d137d264025cf17f6a4198c0917b394c6f010b1b42927f40647dc2fe4cc3eea57b77249ad4b0112e328467c75454f55bd769759980f62247babc332d263086e27142926719d86379d3c1225e6561f4982148268099469015aa5aeb7a355e3d4f625b4c9f7be1fbb6acbc2c77083f3130c59adcd62b2d1ebdac296f8c31221d2601a92d220ec03d54\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 124\nmsg = 313233343030\nresult = valid\nsig = 68b59c29001b704995ea8b55ff590832ccea1187172e52aaa5b04b4bb27304097b0ea2c08f8796a3da792011185ba13c7aba58139013086dfd818b7b8a465273b7e927eae6eb4c5d057119b695a048a19047f45bacfecffc230138153afe7a0f0983a0e6676ccf0bfc8beffc7cc15781f7270e9b6a98c278699d0e1f7800fdb2e5a30902773ee1cf73ca05938c582392badd982e0b02f23afdc60a4f6a5f8d3b22435eb814d1fa3d0eb063aff7cb1f5556713c82ebe17c9b4de6a43adee9cf9bddc10979791c01cc03dd07e4554e7a2c314ddc97aff8bee5c1ce1bab287362afd44c1e300da8c1cca49b4b462b0fb83db1473ff852fd4f9d289844101dae4646\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 125\nmsg = 313233343030\nresult = valid\nsig = 1dd0ea7e25ebc9c5df19d58bdc4c9eed06c626061c42ee5b97e7d1e188d60752983f58987cc52bd87b7578c1c25a32fe78ac95186c6af64d6221c57626784953cd4989de13a84964e4064ecb1f7fa4ed7d812d41e60c901080f2cb405b73ef8dc8aa7144e8d2fe5457ed54b9aba0a1d77bc280f9324b035d0d2072ac0b630fb4dd596c92b6cce3e4b6e2be46c63f60d62f2f87626d52d34c846ffca8589776dcca43c670fe8fa816e51c45c9a7cbfd3e4fb9055b05a24d9ac22dffaeca4d8037fd453a8f35c9a118ab2d7ccc4ccd3f26c5e882b3fa93c0774067d11be315447e9daec6b65dbc830891c1a7e71e2aaad14a68d5730015ded60923b79e3023d036\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 126\nmsg = 313233343030\nresult = valid\nsig = 905f3a6f6450d1f7f202eaa68909cedd73e70422e27c6b66f3f6f057b42f0458e10afc61a537cd06b919103a89967da973ea559dc040ec18aa412de1c4fdd848fd287ff8f8743220f2ccc6d", - "9e30898c982e445fbb986268726f4278d7952f901dedd7e586c729a4c434fc023c96e04ac9a86fc5e97b49e50e97079006cf42c54696d37282a86db2a3c02e496a4717001d3019a54b7ada3775dd3e7b690fd79f5388808449566aded7b0bddcfae9aa4f1344b940a681189f2e5403a5cbd811e308a6c0f65784ebff1fe9ee6908bde5e6f9c6392e8aa54eff69fb5521d57d7d3fe6aed5337ac73d31414c7e3a294dacd9a149eb0e42558e9a8bef9800a06d8d1ce\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 127\nmsg = 313233343030\nresult = valid\nsig = 66964c2f2a3194e60ce2aa1f6fcd6f0eadcf525c6b95e2e401d7ac2f88afd0ac1fe52010d830f6a2a3859105fb98713fa188c9b68df7ce5e4d45e49c347d83cf7a1a3ede360e357bb47fb3cc31e0429c25bf5e936bc368391184fb88d6adfdc28aff2bb7fca9cae9c7e4b4ef37c61a7a5fc5d68cb12e5c56a0017b31948b4f0e0267754dc70ee92c5f8dbc3b2e7ebcdec638407e0c08c83e76eecc65f592e9a239aa303581b980f75c2630e3af8d93e8fa33f62cc461099cd9dc1f133ea1f499de3902ed3cc6732be6286168cd3f6b7b0fed005a8645fc4a5855f021302322485d9d694803c4a4275533acf2b1d5ec62ff8c98170c737f800335f84f3e9388a0\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 128\nmsg = 313233343030\nresult = valid\nsig = 63e7ef511358d2a28a71bcf1e143d27623637beedecee3638b3a513dcb0f72fc56c372ce5125e46ba442d6e5e9290a6580ed3fdaaf3f51e3daa34eb32cd9ef3c8c30722f9095f6908fc6dafc22f3bd37d998baa92825cbe36ead00b5014fd50d2371d1245abfd605c6a8fd6db6362b18723c797e0ea39c2cdb3aded821a51f8f05821bfa1b6d72ff661415cca11a5dbdb611d9a74d905298f853fa2cd2b1eeb74ffcc4e2c2955fe8db6a1c2a8014918fc0e1e0c9549d74e45287742ff4bfc8a56856d0d4cf89815da4f223d3f8b243cd7a2cca428206b82e28617d9cfcd35cd029deeacac03f8ff7ef72f5010dcdd93ed07388b2482db0ab260e1022a33eaac8\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 129\nmsg = 313233343030\nresult = valid\nsig = 0b1423677cf21905e2cc0dda60e27f749c56049bb03e61794a43f37b84b2e5f247ba9bd79050c5a601a7efc2afb42a7936d543b916e24de1ca1e666add1bd51337caf4cf2f88a4c202e53cb5071d638cb41473d4c8db4126e312c711405cab1d6e05414c43b9566b3cd0b72da3d0753796a81fbc1c950c2aab48b34d5def3140e93e0a8d1023374b9687451c847cdad5544b05b09804fc9727bd46bc9a86f0aa23f4a7715a0fe9a9065782ce58a3a53c022f4fabf67146c3c919cd1069a08bd96e44746e1a49315926ee06af8d76c4339f23540b36cd8b07e14d7ff63d38461af49927b53e7496ed6beb855cd740628ec0021768293e7ba86c03cf88b2ee7926\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a", - "63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 130\nmsg = 313233343030\nresult = valid\nsig = 9cd79fcf9b87e3a30f538cb7cbe94d28f76b69335f6d49dfd440210a40dc811a930b76533f789f4e23905e688ec010689e27415c5600eed4da4815db1e6e70f0adc9ce47697947e0dbb23d320fc277d473d3de7abb75837e24cd9829f5993ac35a427c172f47046e485e47003bb8447f1406b14aa495ba4b4a3cf8e2caa1b44f0718a04650dbbe749bd27c0b69ee3c7fb5ee956d0d901b5e42f710d4a3e59b3e72d70604c6d7a7a4d1a3a2763648a891107d3b14988581523356295f42cf77b7cdfe3a38e55463a39557d5ec543710b9c28e27203e23bf8cd81a2e018927a623b84cf010e40d8859b304c97e0c06c67ea017d70852ba28eddbff22712738b120\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 131\nmsg = 313233343030\nresult = valid\nsig = 90cf8affc567778bb47d0b50147e51a10324639cc17b5d5958c4e318c49a22f2bc3421129a24702e1605b3f8fffefe7847f679c91a64e56ef874dec27b4540b2471e79609067c7871cc76d717945bcb558605b3eb4b33034bfd7148d591b837ac988c0cc3bb2372c9594e573a5d5c9ba5c23de5257ce8274f60fc5ecf35e8889659ecd77c2d6ac74898fdedd3c542472a6e113acac5c8aa35faa52ac0deb3ceda9f83d2441a8f441dd997426848e461c00f64ddf6d5659dbeed8681d18102c94b3be137ef926840cb47027006f5699dcfced1aaeccca848fae72b405f4e34c5ef9fe8d15fe6b565216c102aa8e9319289f2dfeac735c8a5b95f991a0fd49be04\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 132\nmsg = 313233343030\nresult = valid\nsig = 4b88759bb96d67cda87617a09d625f5bb3b7672dffe031c3b88c3d8e67dedffc7c84f0f1f754cfeb4181d0573f2a88ee4c98a10dea1a048712472c724ba81bc28984fc48169a535538c13566f3ab3d2a51b270c4b2d55e4a82292c084b4f4e6a58e473fe7f39015fbba7d34083b7bd2134ca63330f0dd1997d0453aad7dbded4b3175f9a69607a8799e7d3969280c8f5ee010bb2ec7c151ca3c8a6bf49c2ae8eaa470998f390d12a4a7c0a39371a6c63d232bc09a647750aee655a721f066560e40a6f899909e72e2c3bf52e70fbcd26a37402b1e37c2c7bd88783fafba07265985d3a7955a5bc14cd0d0d10f1e9c67f6d98785c9c1b3914a7972cc2b1eb10ff\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 133\nmsg = 313233343030\nresult = valid\nsig = 1c8818df1fd23ec704eeb6868ed1bb8419597f4128b5ffa52166458312f42cf45e710783eab39de511cae689f1d731cb4bcc825829a4773697855e7dc84c617f459dacd58272e75fd2eeb4db20d6f956033e939952614318c3bb82276bb426b55a0deac14b831e75500134298dcc05749426322cce", - "cf10ddf3c4eb49f2ae746d44e5f3f229f9e2298312c0b9168fbdd2104216a27cc1e720cb8e28d9992d841e52f31b2a016d896529fa1cfd7755d363bea1bae565e579663e5b7e8c2b9e0b85e77d7f740232db1978a920c8358274bde475f38794864b08c0eec5bd176de52c27b10f29f3ce0c41b2ae23b091b7393997a436c158cdef76beffd200a4e443cf\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 134\nmsg = 313233343030\nresult = valid\nsig = 0399ea1e6bede457e1046f2363e1db44f8450cc452845c47639f300f192906b7d39acd60ab03df06d1b27d15ca473b9b0a339eb8d63ad6ef2a148b5cddcce79175015241176bac81e6b8cbf87fe256167fba8d3cf2dfd145cba2a8d118f980cf279989d3c491b73fc123d91cc99a4618d21e5ad6789818f3a99a337959adda18fb571867d3a9eb50956dabe7e6b3e64d40bfdd5d5ecf1ba2af4741d3dc2a9ae2e2222c1881da0ebec621636851c46990f24ddbff9c3cef15533a5fc1794f365415e5d948b64877053a93953490c8f250488c9933f2547a89d1cb599ee5e7f7dbea2626ed343c63eb290b1e9098269e1115a2f5995b71aa2617235fdb0666946d\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 135\nmsg = 313233343030\nresult = valid\nsig = 12f0c2161b8f7b4bba16d19c4c6acecd554bd091c6148e92a24f1d73ee6fe7066fe28fc5b066dcf7391967f23786feb935002a0e6308427c613ccaccc74b9aa24e1425785cdfbd8720db37d867d35d09973cf4c9bb549b7d4ef8c85474252b1f760b1a81f79ccb540c0990e6a20d9a0eb5b6c101d558f8aa4333375dc795ee1563657a803c9a63a2fb957554d4b4bd6ba33f2a6b537c08965de4421fd83de78fa5ccdc1d9fd4597568e44f16b60afe961668a0a821b8aee5834b0d527c115abb649c73c994fc6ee641d44773192574d9f330b8664ee07261858d7b5dccbf27dc9452db31fb0e59870217c4751c5247565d2dc94568431f3451dcf6874787633e\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 136\nmsg = 313233343030\nresult = valid\nsig = 09c14c750fbf2c5536b8440173357de03ecc9018679af1ddb1a36dc5b38582c44ae5d42d7e0031f738191171baa6e72562c2915ae7046489a4863d7b86afd634c6ff44b2a9af0751fa84d5054f0a93971cd7c36b634d15489d75386edd1b15e6f9325eec84a2a7879e7c80812cfa387e5b620533e03e4504768f2a8a0816938959b1e70e8f8ca14d1f8809a398d98c155101363e32ab353d10c5e0a3fbffd692665f5b9d34a09d9082fcd1cf733e0f37aaad82a8512b66debc119899471d61b33c7f4f3d4a22a45fccfb8640bc2564e679ba4b6e06cdc05be7cc511e1205b25c4903b7641bd6ed38df4a8008636e5a716c014906d5a0caae3f3d5650ce3408d9\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7", - "b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 137\nmsg = 313233343030\nresult = valid\nsig = 47510e3b9785b68cf1524fa9eaaceff81225dd951103507749bb49b23a4c2c5503727c716719feec97b79d3e6051c34982d07ccc361842bc0c92213732c908e8639b1d98a0f7bfc34cf801f96fed23c4d5e25c0837f222ce764fe9d521e4499de93307df29ac4e5c2dc92e0ea65e97f55df7493d96265b048f24260baf8e8c3ae55f44eaffa3198bd0e6e731be13cd43f13d40e354d35c132bc8514bdeccdbb1bd6a3babd73ddb8d51db8598bac7badf1180ec2aaae8494c06c43e5d2bc988b50f2bbb72c0bf8a5529e4618bbfff5356dbb47387d0893cdd601647f46deddfbff81b60961d4c293c3139d046a526398a9cd8cf605cef5358945ff0330f113e3a\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 138\nmsg = 313233343030\nresult = valid\nsig = 14bc1a7955b30cb603f617bcdcc12405a873b1afbdfcf7792a587f1aa085ef9411cb088c34b898234704286d7f09ae1586dfa3a81d4c9662ba26674c0d5ea966184e3578c5c4a926df87d75b149ea9493f5d5600deeca05f76bc445421c25220202c154bca83a216a1d6efb0b9233eb0cb3e787be2f373de8e99996483f39c92e1ac9f18367717cc9468f6e745e25abad55743fd2b59c92f840cef0e5df47ffeb83c5800e5fd486b7516a55c7b05709eb21c8a8575e41bc567739d5f1dbe95be8d43f27769bff55fe1a4dc855cc76bccb3ccf27c68d27e3a65829b1b177015945452254f5f96a96c363ca56969201fdab187c9a6c991afc932e2991837451922\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 139\nmsg = 313233343030\nresult = valid\nsig = 49ad57af4c93b5e714a83e1af3410a9020c47dc9baf25f52c19652970bf70e918780f48c3dd59a6b816899f01d9b47b7af2821ee4ab76953a2b706118eec13f5a0f442278cba1c6b72000891e0b832dfb97c7a4e5b09971c133324213820f1c7711accaf8ed1d099221e8ff6e0042ba1b0b38257a94bb621508c584f5e39c8d4fbd512800f9483dc84f99eb2a9ba9bfbe5aaa8cfe1691cab0ad87dbc354ea49b331b26158274d348620ca01d872d929e8e01d6b9815d573b83bda1623136c55e81db7392b5daba5187a09a883d58cf0687a24d019172b843e327ae507db2dd2fd84dfd25ab04b11cd4b02215fab23bbca886279091e21ffab8d7d5ad49e16ba7\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 140\nmsg = 313233343030\nresult = valid\nsig = 8afbe33b98f8c30b36acaafb3d61bd83175499bd5961ff3ebd340bffce9a4169b59768e1e3e5913c2bb411b5bd495cc92d7c04d65816b3c13b2e3ef1fe6076dc910e75f477677e106e3d5d94a784c378ec13b66dfc1e81c2d0c8c9a9156af52a12757884be4cb9d0afc6f32c39c427766db7e3d07c6780bd5fa62c05ca32b85966ee6291e3ced00d00eff0cc51d3c19c7e1bf103db0c85ba5e9e2d130e51", - "36f209d6cf8a7fc18670264b7f392a68c6d6e6a5d3eb370bd5a194f3a17436ff2495f373c4dbb45de9a0575aaa4a2c9da84d5f1adbe15dce341a8b3ac4e3722b0aff0b942e522d8bcf54fb0d942997568bee3324587d0afdbbe578c5b3f50d5f47f1\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 141\nmsg = 313233343030\nresult = valid\nsig = a91b9cb0025546f2c6696630ad22530d2b41419073541a5d13ac9b739ebd9aff8f8e87f405d5151a930df8311240d6131336a3e55d33166019be5bc97e5209551df0d5b69be224af9a15eab57ab748c081e25b9e6aa68e4db0937eb4bf190ca46689bbbfc4ea5fd4745ef3938a80404ed9dbffbdc423238404768fc513604732b9c30f97fedadd6b8e3fae4e54c574d2da6ba93eeb700541df688011c59688afd11accd6c7c2c0f0d8e5b06380588a5bd6558fafd764446920b21f43af7f9590c4c20b8b90e0acdff1ecdef4456d1c6e898b2e61e6f9ce743063c6c08d1a1182b5d58edb902af0a78e9df5ad6d84da4b5109807a2e6345698c9c879679dd6c7c\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 142\nmsg = 313233343030\nresult = valid\nsig = 9a2ab2bb0264c95145d3a0970b8e66315f93ecf679e92f5fbcec1a4fb5a3f2ca0dddff5d42aeaf6cfd34e3c2a0edba2415920478be0fb23cec4f541c3ef51d4663a85d1b00f84ca069bd8405bf68902910090e3db749b5e46995b05ac28254120d8a95b6d8cb96d1bbef9e796f2cf44e6e539494d07677fadeda723704025edb0e1e48d5c26d584ac61ae3e5e363e99aaa1daed11e2cf9b637d4fd69b1177727a3205c077c1d368eaf3de56e57022629dc93b2f7bea2914036ce5f5c154fd6e216d2ead20b65efbff9ff0197432ecc01ce04993f7874853a80a8c98bc66022bfd5c40cbd8726ab3b51c84d34ac67018e6069f06c2f7b2d9c700404e9e0a23b16\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 143\nmsg = 313233343030\nresult = valid\nsig = 60683e995f60e1cf7d944eac2f0c6dc02a002e89a87b4a0a36378b6247a04456166ca2d85bb24260da59b7ae84e4191f95d15851afb8ceda6765039ef769d13efa89bf081e6cca52753e28de225015e2ff81c9b39d9bc759003a9292c892b5d9c6584cd779180048a40c75378cccec47a84b4097da02878c42423beea50fcd29a5eb7b67ed3a06eee2e05cd4236d86052bff1145a8cd5367cb15e2ccc792636f0305d90aca07d1e3c011a617f0961b938c6ce943c560c42724237ce4965ef50e7c98e52e0d18797aa65150042690dc8604f463104e114a1fbdd7e9ab2646e9c759502f2fd0e2fbd331c92bfb4168b638f4d8873e0e048cf429d8a9977e313029\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d7", - "21a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 144\nmsg = 313233343030\nresult = valid\nsig = 7dc5457f6f8aa74bc2314156e2efca717c2360d57a8c5ee396dddd6151c0cc89f356e3f14bea1478c7bb4a54620a73d558be246fa884c41314472bb9c9866fbddb5727b0976593ab6c6635d8258a7dae326dbe65d203951209f8ece46a4132efcb640bcbd7990a6f0c138b456688d268150396eed52b5553f091f4888642b18580977d80680bb9c1194968bed4b0198cf72d1ed4631a6c16f6ea562c6cf344b3f8d1c2fddbcede647c91d01312b3609345d3e32df899fb981f070ed1c0740d79eb19f6d54725c006c0cfd961a2943391baa2a32e4da6dff7ed0a2a61fded39a85ee642c1e219d9ccf93faf80e2c2135b0de494f8cbcec5bb77f75148e83ba408\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 145\nmsg = 313233343030\nresult = valid\nsig = a289625f9fe684d186604fa08140f7d522dbec8ae6266ce83fba2b6bc6305e2e27bbfb346165b4e110e1b3e9445ffa8933e5417dbd87e3084835b8677ae439609616f7b755bbbad33ed0257a170a3964b85b3cdfbce43ea3c550354a92ec8e75642b039e2b4d9bc77b84c6bc7f2f2a43a0a403a1992e008786b5e9e43fbe71bee787ecd99501f1204921f61ec0ca83f1a8fb7862efe69b104d822ff5170802d510fd55cba7dcc2b695db905bce4c07a702cdecf24381f49a9b95d4805f1eb51704ea198653f43c3f124a4347ea1becd138cc3fd43e813ed823c373a35eb9060bcbb8fefb1c453c72f1f6198747577aef14ad3fe144b7d8de1bd6a123bd9f3f96\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 146\nmsg = 313233343030\nresult = valid\nsig = 740cc94a43653655eabe5a2c9f883a3784cbc5b13161e05ac0849cee39b2e8a42a0f53d14b47ff61d143584797ad0889b26de17b0c27c79a69a356e2e3eaee2b8675b0aaf68dfe682df23463b9b780f5b4d6681c00b27277e4e7839a333b022a16e7b75418fae9d5f5b3b996427d518eb1a696ac83ce6c5107efae577859b814100f19c52708481ed03d038a4cf6039f91bf72f4788dba51179e3c95c750a9432af1044f7cc758572ff11c537add14a6618d0fc1064f762485a0ffebfb0cfaceff4602367a231cee6ea2c8407bcc88267f42189c02e3438e62e3825d8667d1ae221494d4e29626caea3a7f5d2284f18862512cdd4cd9cfe1d8d57cedc9960299\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 147\nmsg = 313233343030\nresult = valid\nsig = 9a8092d3e759eac9374356b3bda80d87c6cd1f1188dc894f48bfcc2d15e99c65ffb6353510998a360f28bd636c61edda93ebb903029feae9b2c3935b2870f9a3f29e044f3ccba9a08357226d48f760158cbe5bfc0d7c0a2eaca0b1b167745bf26ea1e008e7377a085f4bd685fd5ada6602758e27541e6f270adf6d5b1a2b6c65a3757c5b3c4c29284e7cadbd39f4cfcb4253e959945651c60eab57ac0170da7ccb0c8d72e760e603c755a1b1e1356e968989cec1b9e1273ec2c572ed7dd0d0d29c0ad1e77692b0", - "d79ec60657fc21b746168dcdf0d05a3ef1f37a4ebfb199cc167d94cc2c9b75dddf113048326797a6cfd6c9a764a6c71131e5f5654a93fc83a7\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 148\nmsg = 313233343030\nresult = valid\nsig = 3522943f158039aa68354e3c51eb6d9a496f5c7e7c33bfe9a20cf98caa710b88b18ecb6d73177787479d5064ce3deddc13f98998a7207118de77029e8fd5f012a9e056b972a974cb5b087b6564821af89ce3b64348095accdea8ad7d05cf3d21d6208365a1d2fcce7cd964295c963e5fd495448c0926de0950d12c42e056595295c4376484fd7d0dc6feef3dcb41ec5a0dd21eef375e65523bcf5af70a92331beb0c6b5ac445d6a06cbebeed0083b746b3d667aa366c647313389a2d9b61d41eaed8cf2db8b4938115700967432dcc4f383278b4a397afac04bdb7c2f5f6051854174d85fb96525c2ab7bb58c0ffb481efc29d08e4ad1a86ccfcbdcd98974862\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 149\nmsg = 313233343030\nresult = valid\nsig = 45d8ed4982ba484e0bcfca14537d607fb6c3f8f444425bca05cf29bd5f92945f0ac211ccbc78d934f6fd24131ae88483547aef01b4e70acd6f84eef74d4a2de40b4d15d38a0807087a54ece36f268a60b70c500b72fe0ff49920c63c0cbde6e0d9100f4e50ea3b5e11a595f3755878bb1e03c295d3e73f1ec32d24d629f2fb469cea48346c057abd64f6bae4cbd0fb89076a1e42bd5260cc5691fee46762136f936aed35cdb6e1579d586fc4e166fe252778a379c134562175e17eecf758c11eca66ad259aa9e51e504d0d317b1715bd224706d65418a4601612e482bf95c1e9e9278e5401bdf1ed24118b908a8e42c562a76896563fe4c04d62b8abdb61e4cb\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 150\nmsg = 313233343030\nresult = valid\nsig = 63942e89a56b634787dbf074e75b0525e8bd3b7b8172f2c27499272b939a812ce2f501eb95a64603f9bc7c2120ef2f7133c3b2a4bf6445e2257b59e57022c879f8d60667ab8e28dc972846670858fc0d5bdbfa71dff870aac96492214533383d8740d84ddf61d46f852c6bf0bfb2d10c2e4d41ce7eeaee028333dfe77650b53e66cd2c2991b80c32faa33aae27b1c30c0ae2abd759c59eb22e0d0597b6dd63491e0c95048c074b1d64d8f356e637669d90974f4eb29ca184468bc1e2d24cfcd36e395c41cf3703cdb1a5c206fbdd4763154e5569d04d75998e6f425bd42f80e0dcd8deeebc3322aa6f50aa873345d7c9a0522154b6de2387664ae33764ffb2a9\n\n", +static const char *kData116[] = { + "# Imported from Wycheproof's hmac_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: HMACSHA512\n# Generator version: 0.8rc21\n\n[keySize = 512]\n[tagSize = 512]\n\n# tcId = 1\n# empty message\nkey = 5365244bb43f23f18dfc86c09d62db4741138bec1fbddc282d295e0a098eb5c3e37bd6f4cc16d5ce7d77b1d474a1eb4db313cc0c24e48992ac125196549df9a8\nmsg = \nresult = valid\ntag = d0a556bd1afa8df1ebf9e3ee683a8a2450a7c83eba2daf2e2ff2f953f0cd64da216e67134cf55578b205c8a1e241ba1369516a5ef4298b9c1d31e9d59fc04fe4\n\n# tcId = 2\n# short message\nkey = 00698977f7102c67b594166919aa99dc3e58c7b6697a6422e238d04d2f57b2c74e4e84f5c4c6b792952df72f1c09244802f0bcf8752efb90e836110703bfa21c\nmsg = 01\nresult = valid\ntag = 4d1609cc2c2f1ab5ddc35815ae1b5dc046f226bde17ec37a4c89ec46fbd31af2aeb810b196dffdd11924d3772bef26a7a542e0a1673b76b915d41cbd3df0f6a6\n\n# tcId = 3\n# short message\nkey = ed6dc65dbeaadbdaab530a0d35f19f78a7bd93e698546c82751bf650c2a44fc8529033d088febeed288fb4c8132a59df0207687640c76dcdb270ac3af5f042f1\nmsg = a78f\nresult = valid\ntag = 0757b27e120559d64cd3d6e3cb40d497845375815181bd9b4e74f2189d09d01a1b3ead53701380d988958ed22bc379ace9d47cbcac1d49bfa7e14f1f44804c30\n\n# tcId = 4\n# short message\nkey = 463c5e696da0ec0d784388be775d1d91d94746aa8d3d2c209f56ac95ea54e7288329f9fb40be4eef35547e64c61dc51a4a1f3380a2b96420f088655ea9d85b97\nmsg = e956c1\nresult = valid\ntag = ac4b1509391814ae5cb5a123e7a060601575c11d81b563bdc52febe6bb2c747b85eeddcb6748c98147a46a1cc9be6776d1a8e82ae4896b9c18da2ff351c56795\n\n# tcId = 5\n# short message\nkey = 4bc0d32e945cfdafd20d39be3820f9649727cbda5ab5859953a322cbde1ab7a514d7dcd14ba90905e70919bb86b85cfeaa375ee2ce2703711b938c8f4ab5f178\nmsg = b2aa48b3\nresult = valid\ntag = c4ecdbd2efb17640ce6707e2e9d0ee5bfb98b91584bc86ab386437eaa37b0f2eb70500361105416c0dcecff389dc94c723fcff18cb801740962312007a195a23\n\n# tcId = 6\n# short message\nkey = aca47f6350941a0efd8c3bac9064a554be337cde7d192f6fbf86d1b4db09b36531165cbae0a634206f71fa400df33352fff60e1fba4009ac6671cd37312bdd98\nmsg = bc993b1db0\nresult = valid\ntag = 89af2f5746cab89fda6993e00f1bf0cc70a77188945bb7b5409b536aec5533ad501db6ecfa3e516b580b7df9c8eadb3cf556ccc01668be984335bd5a6255d566\n\n# tcId = 7\n# short message\nkey = b3ecae6f25c2f699f158b3ffcd0a7a575583e4c9cb56b5c22ef4273cde6c6734e84d7400749c17e47e8cfccafaf8b50c65eb47dfeb273d5d30a1181e37b27ad0\nmsg = f0361d58291e\nresult = valid\ntag = 4037a57aa279b5a07abe9389dcf508be9495a8257dcb3feba3f0801cd57574c30bfddc6df5df6567cd572c4e82735fd4e67b65e85b030f183a7f4457fb7d2c3d\n\n# tcId = 8\n# short message\nkey = 70ff24a252d65183bdc6b7c88751f850821141a61246727c3240b4f96088ae3278767a822b65735a28ccebe4c874bcb2c942882cb23f9dd87fe08fbaad5ae72f\nmsg = e18da3ebf0ffa4\nresult = valid\ntag = 878d488754bc796c70e11d5db77acda2e1796d86146e27d862586740c4d488ed12239e6fb4ab2925afc88168609edc048f8572536fae96e149d73d230b18db66\n\n# tcId = 9\n# short message\nkey = dd4e05933d09711ee88cb4c1ceb3600b2b33808bc08d499387b331d9c7af49bc65b55172cf8083385a940e4b864b7b4b73ddf3bd513a6cbcac73878a879b4d06\nmsg = 66948029351432c3\nresult = valid\ntag = 9968a16eff2b4eeecb2f9d11fcb105e8d8ca59ed4e69131c9de599cd8155fa4f33def1195a6b452263aad9265e16d4951841d7cd33c74c475da04497c02922ea\n\n# tcId = 10\n# short message\nkey = fbd32caf8984fc4376d10daa7288db8e6e74464bdd94b448adab4497b319e9a6dcce542f82a7ff2e775d12477c880e460a9eab8efc49fcfc8c5476cb4b08954a\nmsg = 38a2586a2883953cc4\nresult = valid\ntag = e0c69bd034cdec5b48150fdf3a4383456a7626d4405df52dc6c2bc8fe93bd87e369e06a781ed80ba8b1fe1146c4df82b6a514412358b31b77b9b79c7a91ec9e4\n\n# tcId = 11\n# short message\nkey = fd4c3f6b2137513616c28ed4d8638f867ad0b97188b73fc9b36f3d52b82d72a49b9dc1b8b25397eb448054a8d38d838e7a88b4df9c263aea1b968771d5ac5756\nmsg = 86b4e61b3b7d650044ad\nresult = valid\ntag = 29345d7da44e2f228e8d502e29fb655da3676a481f9947c8482502ce070b3da5065589d84c02a05cd774b4bd5a15b668c59bafc192695aec43e5df3a82301745\n\n# tcId = 12\n# short message\nkey = f95baea535f477d22b405c67d927f59a9e042c46297a1681bcc16fdbe1b2cd59675a221351a78075981e7eb4998066768801cbd7a85231114d7f27f9bdf24899\nmsg = 5a34dee4e0982d458efffb\nresult = valid\ntag = 63867bb3e82bd4a5f715b3dd67ba3625666e458c5e3d75804709f80b6dde6f774ea223ba9e2536c60ab636dd12d07b217234a490ea9cae4fe673215d33f8c57a\n\n# tcId = 13\n# short message\nkey = 4d76ae95a123207e01c6d22d8b587e63ba682963e50961afff531160a9b9aac6c772c5e8bf918ddecbeb56455ea64710e51ac21e3bb9af4b24eaa8535b3c2924\nmsg = 2c31f2d986f68a6d6a96c4b0\nresult = valid\ntag = 9d4f9549ac134a6f60f17fd0fbc80f55426afa73cdaf84a806d98dfffc94263178116f76aadca95a9243a9128f5f66d3e7f33e72603d4b35ab90ab7d1e870ad7\n\n# tcId = 14\n# short message\nkey = 0da7fa1f5d217951e3e343cda81f232deb71764eb49e8510bc28dba8eb62afa2a98b6f0536adb10250c74878fe649f47bbafdf3f722fa150f66e83f65f606ab0\nmsg = 83511de190663c9c4229ace901\nresult = valid\ntag = 11bd76ba2fd5684e3faadd44abc05d32661472ae4c75fd69e62e47a2d462e483ab5fd374070e648017250934d486fed55e68f4338547fb5dc54d4bed894c1c2f\n\n# tcId = 15\n# short message\nkey = cec9e9f25ed9a017004a7882b1e44e8bd8fa3203c50cb6058455ed4f2a036788d46fcd328327d0d86b1abae69f7bbb96e3d66373ec8bd45075890879a83f4d33\nmsg = 80dcd8ba66f98b51094144e9b8bd\nresult = valid\ntag = c69f1787bf7804bfffd9da7e62f58c1c9f599ccae2ed4fc6abda1be48620afc797d59d4adb396e1fa5d18b8c1aa1c7c15218a9f9e3aab226119adad742641089\n\n# tcId = 16\n# short message\nkey = bbe25649ecdf54ae0028fb923cc8c28ec00e10e2d44214590781238a143b75d54efb037eb9f53082a8ab3d8876daf4dbdc2483c4ba222797fe20da3b7730368b\nmsg = 33f630088c0d24cda98caff1a3afc7\nresult = valid\ntag = c803ca833e851418a3d9ed764f8c83f481060141eb1b2bf64d7ee7991b041c48bfc747bce13d69722f63944085cef8e7a166270530fe31a2a525a99b8a75f1b1\n\n# tcId = 17\nkey = f5e2b9e2313f4f807cb3a924a7d4943fc3fb475d8f1a1b40ce09a37770f621af8977729cadf986c98c75f08a4fab4280538e09e7e51e87a8d62c03411bdb8d24\nmsg = 74ef623c83275ae99745bff7e6142afa\nresult = valid\ntag = 471055f7a2d44758e7d7837db85c33626b8306760eb45e18d4ba8dfbcd0d4279fcf8b539ef7b165eeabf5457ee2c41e52d07e9121da02c988f08162f86bdf208\n\n# tcId = 18\nkey = 8e323d5fb4752d92a6d905c512b287d07b21ae50002d026ff0388e1593bde9998dd02321e200d148f5fa2e824b37e9f5a77441794b840bedd552d1051c1ddd8c\nmsg = 4daa229b009b8984354c2ec3e7973e0042\nresult = valid\ntag = 93a2137cc84e2fa1439d7c239767b3ce653d634c58a4590eb61af9d3ef986445220aff3554de45a1b0933fa06d3d64460418910977d8d9ddb2eb04963c816841\n\n# tcId = 19\nkey = 465bc1ab2125cca29729d01df044e393b0677defdd939280a3aa141224efa06457e623056d02f6c36eca3dfc4a7476dd36b97d0c2d60c7672129189e73b6af8f\nmsg = dd84599b47ba9ae9f2ad0c8eac678485433eb6b1dfb7c998\nresult = valid\ntag = 9fff43a83c71833211f9d60eeef4166965c41a37c76634b1bdf9c5291df75dc877668f2287bcf8108ea9e03d061a708db2db08687eda61fa97b1ca92dcf22b92\n\n# tcId = 20\nkey = b90226798dff2ffb91d1ee4103f26397d0bf84c13c1ec717392c5fe1d4d0f4dc790236d759fa1be852e305da585a3dbde0d3912bea60d6b140c25645eb00943f\nmsg = aa29c372f136993c65ace5e1d62078806eb787913bb35af33371056359d354b2\nresult = valid\ntag = 493a727536b07d434a7fc8df6b70989148a8d94cadb9761ad845ac5fde2068f9565e68607b531b0f307d7c17ce0a2ba69fb1ac1b0c716f93904eec75669e70b7\n\n# tcId = 21\n# long message\nkey = af1bb91775cb40c73983f119c927a2ce8f7b954a6274ecc1cd96019e5c417af4b094376194eae71c7f68f3345654d5d9f8198a697b41ae251e82308accd935bd\nmsg = 75ededdfa7f1df1dc144fb195b27e454640e3f897cb564222f05e8aab0c6024f90472afea6e7254ed25134ea43452a\nresult = valid\ntag = b53d564086a745b10d88a48b50ed8b53f4c83fd12bf56a75108074de9b343cdf0668ce8b6a3d884ba2da5f4c957f1319e26c0813c99a4269c171ad80981013a2\n\n# tcId = 22\n# long message\nkey = 513e0e7622eabcb6bfc81669dac903df46daea1240f32248bbf4fc61f1f9b13b2c3fe1bcc97540d30065be9eee41e51748bc42c16a8c8269fbe2b6f625c19228\nmsg = 81d8650937f50871a66af71605ea4fa9d6c5d7a375774c2280eb34aefcee8c0ef83345bc547e4de7cbea482369b25a93\nresult = valid\ntag = 9d942e4585742ba118bda6e132510af3b9297047d364f76b2a0d1fc803849b06ccac0eaa427934055c9d2e5a5da19cf17299ffdab65089580d10ff7207c9ed03\n\n# tcId = 23\n# long message\nkey = 627c9a72247d07b0cec8346277468311c7401fc4cecaea8e22e13ece4b352c8f7a7eb1ba81ce348a08670438c97b8d9e883614d550f1ff16d636975c59988c2d\nmsg = 118e0468cbb52f93a3396ebfaa114881a98a4101f4ff912ced47ecfc73b27f52205b7a5d4f3899506f9e34ebf99460da7a\nresult = valid\ntag = a186e08c7731d4bbb1d5342a105ef48f5353c5c542277de607831fcbbc8d0b9fd509c74bf9e352ee739792ee3cd6382f", + "96e70adb589fdf1fb031d43eef1a595f\n\n# tcId = 24\n# long message\nkey = 1e981d0cbbad5bea9480d836b4704bf3147663b6ea59e1e0a280fb45d9b85d445dc972159dde301c6f1e66681f95642dbb9a9218c00d0cd724cb02f3bcaea2ea\nmsg = 440dff390688c9fde31c17fdb61c1d13899f9544a986324c34d5eb07bef9a4436297f4a7fe16de5dd7b24e0c7c129051efe6f2dd0a21aec05c3e3c8f6fa30d9c0cbd60d840d14f0b2a928bc7189b9de4a6a731151d6b31e6a0ecae75095434737be8c3db11a6a697d0616c78b97041de\nresult = valid\ntag = c52eb5d18e90687248342a84dc0241c680e992b88b1409275df7e347c99169a50cd780eb4726ad759e2a027fb091354e3d7c7aba8a21f8acd1d0e21236af5f98\n\n# tcId = 25\n# long message\nkey = ee8aea2a52eb7e0c1120ab736b1a825b12610063de9642c594766c020cb87314d8ac94b13072bfbf3c019b4aacb1d2695cdd7563a26f574e12559906784d853c\nmsg = a3951f1d18135602fdadceeef5741c24ad22756160d0c55e51b788af952adaeb13e18c24c6b09672f405d7ec3d49b0bd86c7f8691b6f69af49175423215cf57d7c08a54ab0b0293e685c9aa250f1599d78193a00af822dec4b56fdb41f0343ab2cf85ea27bb2e650930f5e8ca836833903b053b3e06899b4012a6532978d90\nresult = valid\ntag = d3678ca7c5c1aa21f12eccc21a1add0b3eb12ccd134033570468191e51b058c61f2a7d88f2ca6c652c29c65c491bf1f0252bc157bdd77436ff55204eac6dfb0d\n\n# tcId = 26\n# long message\nkey = ecd1861a12eaee48aef1d7ed278223b50d3416dbff81e976c56ecd4b1a1bc8892b584cbcc72370ff5e976a6af1790caa32f9ea912855914c0315979578fbf165\nmsg = 5779c56373a8e5db43bd65c0453ce23144230d43666d717a3b59d2e90f0e10732376831d7281cb23dd5566e5f8c627d00d39650139ceb87cd47e921d65d6c1cc7712ac4bd75bda8828e68abc968f4160ed91b28946c9d706b0360bbbdd65f47ef9983c50f2d09d05c3674c0943ea4af54c381089f9b846dd69ce908e0f6eaaaf\nresult = valid\ntag = d377e4efc39f25ca751452e79dcb5661f8adcc06570bd3f710e03854e032286ca477e6a620647958fd31706463b542ddf617757875f349c61109358d04f6dc58\n\n# tcId = 27\n# long message\nkey = 71aadbf330ea133b46c939d12e603896902e8df638597c98872dfb5aecd5161bc84095221de3222367012f45c6d70701e862ab000e782e91b505b21b4e212c38\nmsg = e6d7b0280d2f7df83fd26562fcdea2597cf687a9c9fa194f655c44d3271b881f28adc436db8e0437ff4dc5d38356271c338829c3e2d9ba4ac1777c94886983d4b72c275bc00e4f7b06c5ce38a2fe549fe53761857f236da705fd03790b41cc6f759f41aa206feca7ba5486f4fc9d09f35c8e0887241291882010414ae41b8b384a715a409be13da17bfd60d3fbd4b8cb3cc7c26043807264a20b9a5c02725e742fff03e1806b38af357ebf8c79fc4c38b007bf0613286cf063e45482375475e6c426d4f70057cd92efcb2dfe86e45bdea399273a5e0f142221fae206800555c01b18533295f577e23a9a7a0aa072823002b9096501174d3bc4aac33e0dc600\nresult = valid\ntag = 0c1cbb2f196d3d1af5f982a330bf1d9accaada72cf6c254658cb32bfd8705481abd2e163a73338700f0d961ca02a31b600df04faf311cd06498557831102f80f\n\n# tcId = 28\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 29\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 30\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d09b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 31\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bd301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 32\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 529b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 33\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 3f301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 34\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29a9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 35\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf311cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 36\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9ebf87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 37\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301c3fb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 38\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f86809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 39\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb466720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 40\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f85809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 41\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb766720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 42\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 43\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 44\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617", + "18191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 45\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 46\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686734109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 47\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720ea3f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 48\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f36109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 49\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23d166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 50\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34108fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 51\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f167e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 52\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc618d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 53\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24965c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 54\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc518d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 55\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24a65c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 56\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fb4718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 57\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e2c865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 58\n# Flipped bit 504 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388d\n\n# tcId = 59\n# Flipped bit 504 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca53\n\n# tcId = 60\n# Flipped bit 505 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388e\n\n# tcId = 61\n# Flipped bit 505 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca50\n\n# tcId = 62\n# Flipped bit 510 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb038cc\n\n# tcId = 63\n# Flipped bit 510 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca12\n\n# tcId = 64\n# Flipped bit 511 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0380c\n\n# tcId = 65\n# Flipped bit 511 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8cad2\n\n# tcId = 66\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 67\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c", + "5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 68\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9ebf87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 69\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301c3fb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 70\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809606f34109fbc718d62bbb09c278cf05a206adf21463e1170362122e58272a31679720b254cbd63a7c6d696bf9283f9c6897e7d792483bb0388c\n\n# tcId = 71\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566728e23f166e24865c316f21619c7c15033cc6e8ebbcc8c5c5ba3e7e2dca7b011bf4cec4c7e7d6cc41bc10c3be36e8320c50aaf6c35f04ac8ca52\n\n# tcId = 72\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 2d6461c0787f69790cbef60438e7295444f63d8730fa5df9520deb9c1ee8fc9dedd1a7d8d5ce9868df4dab3429c58392969406d7c063976818286db7c44fc773\n\n# tcId = 73\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 40cfe3404a998df1dc0e991db79a3c690de9e6383eafcc339171443373a3a45c181d23584fee40b313b38182933be43ef3c41c917cdf3af55093ca0fb53735ad\n\n# tcId = 74\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 75\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 76\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 77\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 78\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 521b1ebf0700160673c1897b4798562b3b8942f84f8522862d7294e3619783e292aed8a7aab1e717a032d44b56bafcede9eb79a8bf1ce817675712c8bb30b80c\n\n# tcId = 79\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 3fb09c3f35e6f28ea371e662c8e543167296994741d0b34cee0e3b4c0cdcdb2367625c2730913fcc6cccfefdec449b418cbb63ee03a0458a2fecb570ca484ad2\n\n# tcId = 80\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39a9f3e86819787f24008fac619d7aaba08c379ce04a307acf31562e0160263132f59262b30669621b355cad73b7d6c686af8293e9d6996e6d693493ab1398d\n\n# tcId = 81\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be311dbeb467730f22f067e34964c297f31718c6c05132cd6f8fbacd8d5d5aa2e6e3dda6b110be4ded4d7f7c6dc51ac00d3ae26f8221c40bae6d34f14bc9cb53\n\n[keySize = 512]\n[tagSize = 256]\n\n# tcId = 82\n# empty message\nkey = eef6bcf16ef7ae17326a33f22d1406ec1bd3f866505f4b2e4fe8b45bd62ccbd85032a9899facf2db0c93a2345cb8892afb74db549781211dd8881a8c8e25c171\nmsg = \nresult = valid\ntag = 75f6975e3500be4fbfee1bc95644745ce9f8d47b6f3818a48ff34e8c2b186ba6\n\n# tcId = 83\n# short message\nkey = 838696e6190c874c3717b8be0cf063ca6d60760987d1a33703e7e35eb173e5ae954e741a37935139d612149e76f6ab2a370604f5b4a68bee87e309240a9ba3d6\nmsg = d8\nresult = valid\ntag = 5bcf44539d8783bb708e7f5dafc4d683bcaa0d240c902675bdde059f944dacde\n\n# tcId = 84\n# short message\nkey = fa999ed1cfbc5c43afb16f22d024e3ce645e00b06712c93b946167c9c2c037d192f0f3003f87c43a71166fe1a3c5824c348673a2f0f3c475706985940f6b02a2\nmsg = cad2\nresult = valid\ntag = 9a93f4728aa5941da160ec707f14b7e9ee1e768c7f627269543430d2fc681e90\n\n# tcId = 85\n# short message\nkey = b53fced8b7b4aa59d3b56d91e1386763c39e351c2f5ad6a4885e442ad894d5181c5bfe5c05280a84ad19d758e359bf8171fe652988fcf9d1458ea17364ca8fa9\nmsg = d3393c\nresult = valid\ntag = 02c4968e86d1c62837a41650d3199ca6b3c59b8227f55e0ba40e5e3904ab512a\n\n# tcId = 86\n# short message\nkey = 3f0cbeebe391c6491e77c57a05e85a16f0b5294d19f9a7f3390baf7a2051fbf980e041ee45c9104a9126a6a7ec182eaec27a99c1a7a3f5a1e8cd8ffde60641dc\nmsg = bebb0392\nresult = valid\ntag = 8d68dd7d67763e8eafee0029d01e96e6a09c4ba09e57a2e5bde3bacca213c695\n\n# tcId = 87\n# short message\nkey = 4a7f110b92241badc907ba3c61477bab0953a851bf327425e858fc724bd33ede2a4a5018fe71aab434bda8eb2464a41577c8d570530c460f7c8bc0172f1ee0f1\nmsg = 40a333f4cf\nresult = valid\ntag = 5feda3366ce9f5ac3402c977a4062d33c09e2c9a3d0c2dcda0c8d67b4bbd1a37\n\n# tcId = 88\n# short message\nkey = c6c95bf9facab295cebfa4b907855874f57a5c1548576ad8bae694a364f5e58dbb8c8dd49330b2fdd1b71657d211db2a6569a9f3a356c0c5b3c4efbd5b6777cb\nmsg = 4cf926af475a\nresult = valid\ntag = 0a748aa33762d374aa04b617b58d129ad1aaf252a40463fd62ce924e21e6d52c\n\n# tcId = 89\n# short message\nkey = 0d3387fe59e8e7c43c928dac7913826dec4d63ac3c8ee346ba7caed9505b9e63ff8942cde90997e8dbeaf6e17ee187c0a84a1853952d866c15f9a32fcee6a82a\nmsg = 2ba3bc3cd64bc6\nresult = valid\ntag = cc7e97630884bd8ad56f6d96fd34690eab6c8ad5556b519db3bc3c6083c82d3c\n\n# tcId = 90\n# short message\nkey = 3cb9ce565388a6f0454a80add86c7e107ea537d7f468a0648930fc37172cf7b4ca9058033071c354a20a608e2d46e98afe46435a344362989cbaafac18859bba\nmsg = 33ce498e1f94f412\nresult = valid\ntag = 76335ee23ee1dc258812be373bb5f95918babed0b69e565e00ee3af776c5a5fc\n\n# tcId = 91\n# short message\nkey = c25f45ceb2a5597f361445fa41a9019f41a6e6d7f144203f29c0b9fcea362d60894c3cadc1ce25d53da362e464c11fc6e169e3db2ea1cf40fe08fffb429b1a5b\nmsg = 81978af4795c50f89c\nresult = valid\ntag = bf73218544d8458e6ad00727b236f833d281723d7dcae4d1019b70b9d6e8bc4d\n\n# tcId = 92\n# short message\nkey = b458764ee273f391cb718f64a1bca64c96a870d9426d6254ee37e5c93898d6a5ef68e9d3b0e057a3c396faa834a29926a9680cfa903d2a605b85407bb24c8cee\nmsg = d804dc2a1e146f62b621\nresult = valid\ntag = 5b25843416467b9e0a24cfab67d8fc27e0623ff9e01b2204b5afdf3e9cc05d1b\n\n# tcId = 93\n# short message\nkey = 7cbc5778f70595fc211cee3a93e17ff7f25a1d9f3766f8eb70eb1e08c9420a62bd89e8b7d834cc854d059afd413e4d9c062a532e015928528c7f5812dfebecac\nmsg = 4017e0ffcaac4c485ce7ec\nresult = valid\ntag = 66b4191b37a6f78809c434736ed6ac2273c04a11219636e92", + "671ea05bf6dc299\n\n# tcId = 94\n# short message\nkey = 937b9711d670daa2359920e47dd6d0fb75275105b3ef07bb4a31d3c4b99baa8ff79ee4b4a1b4a5b250d0fd7b4721e04a7b06035b1d0c9d739597707839018bce\nmsg = 6991810e9788af7aabff8eb4\nresult = valid\ntag = 23522de80ff6a3a6d8fc1bf9b632e1600df53c59f38589a6f2ae9b95d940a340\n\n# tcId = 95\n# short message\nkey = ad37630a280b1a75ebed1984217150a400a55dca2362a8eaf3c907858d0b45db3e208c316d033854eb4284f71117d33876e0e203ca922d26f9b76d94cab0d4f3\nmsg = 7c6f2fd83e5691827be38e49a0\nresult = valid\ntag = b609c0b5d359061ac066bd3bccabc98493fd33bac8fe0e3f2e2b4758cb6578b0\n\n# tcId = 96\n# short message\nkey = 526aa2645ab71229e2c60f68bd5bbcf0cea0978a0a9c60cf695e81fecaedecfa0362c21747eaa995975208ca35cfa6bc2b95d1c2afcee11275f43add6f026d6c\nmsg = 681bca550fe301f2dcc1e38b53c1\nresult = valid\ntag = 1f1f50dacb3dc35b90429c0f9b31edd239a6af4c09d51095cb39ff11c7c26598\n\n# tcId = 97\n# short message\nkey = 6026a9047a07ccf197fde09c8b9f15f34bc52472b7d1ea4673b4914a0e1c3aa4cfe8d6ef12d4d4019f5ff3ac0adcad7358490874155daf41da2f74aca1cd894a\nmsg = ce1d869c53041c5f6acdda7a05af15\nresult = valid\ntag = bd2d678ceadd71680f9987c88d24c49335cb985af0bcf8e23fe810e83a920f13\n\n# tcId = 98\nkey = a03d2c543c302949c51b662f43114c1305a8f6961ae48342803d3690dc18255fab924965536a79bc38564c7c97cb8cc0209786e9f76375bf181529cf7f93d954\nmsg = 697617ae31f19b8a6ad4b8489bfc3db1\nresult = valid\ntag = 577d62d7279b39a0d71e2f80833425ed43e4a16233eeb5d251f766db0bf7a58c\n\n# tcId = 99\nkey = 25843665d39c3ae9a7b3e4427e2bf7785281fd2594bdde67860ca9b8fa11646469d1645ae8ca3825b8c551f9eac3da0660d8c2e2e3bd23d34395c6775dcdfd2e\nmsg = 74082cc5d14db1967442d66aac6092bd23\nresult = valid\ntag = b373ac5fb1982b9d47d28844e969d51680dc81d21d556c2671c29c11dfa6e340\n\n# tcId = 100\nkey = 4831ab4962a2d2436091cbbf388d2ba042b472a262ed8373c85d047c702adf73a87eb097e72d91d089b7d1504a7f7d8abb3bc2c44c1340d6c16c84ea9269e64b\nmsg = 2803c2f4e5b4bfccd2b407469a6cb5ef21fd14a682636397\nresult = valid\ntag = 641f29925c06aa01086c8bce89d99e1456dc2ad4b1d3364442187ce4392838ee\n\n# tcId = 101\nkey = 449bb57d046551e1819b3c994122c3605954317d0d76212284a3328c226732cbf4ecb442a582c8423888aaed946e5eec2be66e127f1e2e29b66e68b9b4bec4d1\nmsg = 79004e644389a11b709bc0a23cb8592f9fc7960bfa46132cc1ffb9747df37dec\nresult = valid\ntag = c054667d992cc1e84fa5b13f6402125b4bb6fd2900dbcdaf8b8644c82edadc2b\n\n# tcId = 102\n# long message\nkey = ff97b77020861a0ce00eff8de9e701aea8c6de0fffd9b4c1342a416d357fce35a7016c64ccd38e2bdf674802281c2234153dd83aacb948966dc87ea4718fff75\nmsg = d7e2d2437b7067a30f04529041960e041e281737d1e0daa8cd50cc0b264716e117aa2fe9a7e39c2f178c607faa50c2\nresult = valid\ntag = 062e9c4609a3b1d5df277a33ac1c7501df81ec1ddf460b0850a2aa332d07bfcb\n\n# tcId = 103\n# long message\nkey = f4daf370c4f437d8a85391ec455e34540be8d32df8dfac05b166ae72ec1cc608f8c177b30dde8bf07c9d434732c26a6e530b182c7ab21093eb79d0bb5be85e53\nmsg = f60418f6c54a25fabf518273088619c0741c1c7187de93a0cf6a03f4565f1765de656754541b860137f3f8455de7c403\nresult = valid\ntag = 4d4a568dd26d27267d0772540ebb0b94d44fbbb15a1bb749a570ed6313ee695b\n\n# tcId = 104\n# long message\nkey = 3be95e879421ed7856269eef39a2070fae406cec5e30b50d92792df5a37de98595684eaa9205587ca607eeac8f96592f458f63434b7dc82596d3e4a1a16c3d59\nmsg = c64f7c970a441c6c503838a491308c783099eac52bd35a217978a64dcec84d34186ab3b74f20285d6fea2165eab4da3d2c\nresult = valid\ntag = 4ea9e2f08870c30cb68d419816deb681cfd6ba62906e6b4a8088efcd9fa4edf9\n\n# tcId = 105\n# long message\nkey = b5eb53586b948587db3dd46c43ad65498a5079157562e4074c9c20d097d0c97f19db4661fb2dd11b87a5ccba2c345642618f561d00bf87dffc66762e45e0156f\nmsg = 9e8ebf96429955d60b925a4111745ec7028de24e694a6d2eee1dbd5e820ab9f00beafde09f95095933a02f251297282b0cf67c518397655841f230e1d9ae5ba93150d4375dc7c0738b99850b07d5a442994e68dc813d55edefa6cd063ccb202711d97ba674efa02ddbdc692341e77cfa\nresult = valid\ntag = 6a5b6272df7fb6315293ce22483511d700a83c34db6b0ee4398b4a770241fcf2\n\n# tcId = 106\n# long message\nkey = fbc678235d596980268730a7aa8a3c25095f1dbcf7f830990716a510c44e62b1ae8ce095c65e1852bd8a09f25ab93415ae736f22b2c68ecdf3c0f71e15a057dc\nmsg = ef395738f2b3bd7a0649eea75e734e5c79baf21358c7ae96c63a58e260266c7bfa869664c5d10e87c26d0f5edb3b5f73900c1d9a96a5a2c2912506c19dff04e900b8d5d63e1bb606fe3d5a229b642b1ac59e08a4687a7aade3de16d183131ddd02da988ff826e88b74ba0c5c41cfcd8570cca59fb3304d588f7f7e63dad47a\nresult = valid\ntag = 84df3338f502e65866cf2077f6776341a89dd2234961b474d5b7438d1836fd6b\n\n# tcId = 107\n# long message\nkey = d8437b093e170afc30fb68d873db6dd67ee0372b6c5feb124d548abbd93304a082235a170a9d326268d0cfc34264d8ebcfcbcc0dc0ea7767b650dbcfc7848f91\nmsg = 0fb91bb043cf3d49341482eacbab92da92117bb6ec03b518a93c9d59e54702c6a21ade4f255870cb52da4a24b36856b0cbf8b122d2fd5b0219aeacb6e292c95863921789092d5d65d5a9389231670e38be31d8b76630650c77edc23773d5ec9189915560ef6f45a4275f85957d8762916d8147ef43ea6f438d066227354df26c\nresult = valid\ntag = 4b9b51f2c7d725269a5bd735d4251cbfda71ea5cf5c046379b439ddff766d21a\n\n# tcId = 108\n# long message\nkey = d29225e3042b43d4eb7a9399f224424b5b4dd99031c8abf609d3a6e3175897134cc7ba8a6be25d436d41a757a2daa4e1b03f7c3053ee8cada19531d48dab93e0\nmsg = 1fdad8cd37e115ef8131d4619b5d61a9827a11b9c25c5b8220b002d5b7f6e2bc30a7e2f3d103dbcaf849a255c20ec5d1b40a623e398d76c5b7f07fe305181cd5bee29de3360fed55f69063e6a8fd2ef31291e4d7c3908449466b4ff1166959ff1f2e86eb48a7ed11bdcec2fc2dfb6684b36b8d0b68e0f1b23ef11bf5907d4a2b162cec26f31b6d5d9892a27b3fad7a5549858dad530bae193d9b60d42d7ad2a66476a3ba4bf7a27ff9d0f885a540bf181caad71a235eb348a23d053ba2db7aed8d7d01d96dc9f780e2e426c72bb63fcb3fff44c14bb7b0f8af3552d67ee6761092c757627d19c080499c247d13b431699397159b1b71c6274584959d5c30f0\nresult = valid\ntag = f9ad00420ce909cd050fdb84dcc70f00df97928968d0aca51db2784f0394898d\n\n# tcId = 109\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 110\n# Flipped bit 0 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 111\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d09b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 112\n# Flipped bit 1 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bd301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 113\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 529b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 114\n# Flipped bit 7 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 3f301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 115\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29a9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 116\n# Flipped bit 8 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf311cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 117\n# Flipped bit 31 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9ebf87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 118\n# Flipped bit 31 in", + " tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301c3fb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 119\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f86809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 120\n# Flipped bit 32 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb466720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 121\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f85809686f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 122\n# Flipped bit 33 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb766720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 123\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 124\n# Flipped bit 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 125\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 126\n# Flipped bit 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 127\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686734109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 128\n# Flipped bit 71 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720ea3f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 129\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f36109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 130\n# Flipped bit 77 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23d166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 131\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34108fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 132\n# Flipped bit 80 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f167e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 133\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc618d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 134\n# Flipped bit 96 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24965c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 135\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc518d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 136\n# Flipped bit 97 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24a65c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 137\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fb4718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 138\n# Flipped bit 103 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e2c865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 139\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170363\n\n# tcId = 140\n# Flipped bit 248 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba2\n\n# tcId = 141\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170360\n\n# tcId = 142\n# Flipped bit 249 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba1\n\n# tcId = 143\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e1170322\n\n# tcId = 144\n# Flipped bit 254 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5be3\n\n# tcId = 145\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809686f34109fbc718d6abbb09c278cf05a206adf21463e11703e2\n\n# tcId = 146\n# Flipped bit 255 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566720e23f166e24865", + "c396f21619c7c15033cc6e8ebbcc8c5c5b23\n\n# tcId = 147\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39b9e3f87809686f24109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 148\n# Flipped bits 0 and 64 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be301cbfb566720e22f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 149\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9ebf87809606f34109fbc718d6abbb09c278cf05a206adf21463e1170362\n\n# tcId = 150\n# Flipped bits 31 and 63 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301c3fb566728e23f166e24865c396f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 151\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d29b9e3f87809606f34109fbc718d62bbb09c278cf05a206adf21463e1170362\n\n# tcId = 152\n# Flipped bits 63 and 127 in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = bf301cbfb566728e23f166e24865c316f21619c7c15033cc6e8ebbcc8c5c5ba3\n\n# tcId = 153\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 2d6461c0787f69790cbef60438e7295444f63d8730fa5df9520deb9c1ee8fc9d\n\n# tcId = 154\n# all bits of tag flipped\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 40cfe3404a998df1dc0e991db79a3c690de9e6383eafcc339171443373a3a45c\n\n# tcId = 155\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 156\n# Tag changed to all zero\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 157\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 158\n# tag changed to all 1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 159\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 521b1ebf0700160673c1897b4798562b3b8942f84f8522862d7294e3619783e2\n\n# tcId = 160\n# msbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 3fb09c3f35e6f28ea371e662c8e543167296994741d0b34cee0e3b4c0cdcdb23\n\n# tcId = 161\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = d39a9f3e86819787f24008fac619d7aaba08c379ce04a307acf31562e0160263\n\n# tcId = 162\n# lsbs changed in tag\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = be311dbeb467730f22f067e34964c297f31718c6c05132cd6f8fbacd8d5d5aa2\n\n[keySize = 256]\n[tagSize = 512]\n\n# tcId = 163\n# short key\nkey = 14d93759fc28f3319ab74b8167c974e800f032344dc2747ec0f4945061a47827\nmsg = \nresult = valid\ntag = 68934dbe948d9a77a5e0a92ed98254fa3b6c93c8bf5eeaa912b7dfdf762b37192c5d8523bcab9ad71b09bf96d8454188d001c7f2077eb641199f5731b9f94669\n\n# tcId = 164\n# short key\nkey = 9fa371f36fb273d514fd628cb938067a4bae32a19a1e045a7d6d7f6de3751cbf\nmsg = 311bbf722d322cd7a0710f480fc66518\nresult = valid\ntag = 16345f6a6ca6e78d4ccac30b48d76691d6442420efa113c15ef127b538b5b024018b7d2db4bc3ed3424251ab6b8b6c3cb108b0beda842dc3e68e63400287e5cd\n\n# tcId = 165\n# short key\nkey = 6313f1526bc220f20dde1e64ced8597279586d1e15aad05ad591d841b369284f\nmsg = f744fa3933e16d8bf524afaeb34c715653a9cfb01fa45fe1fb68e701fe1487ca\nresult = valid\ntag = b88d1ba03e2799200a447550d18e310697a57974f513df77eb07bbe315ba5fef397eeb81ad9071680bcc6c70f6b252ade35b4a4040279ec01b86e40b98770e39\n\n[keySize = 256]\n[tagSize = 256]\n\n# tcId = 166\n# short key\nkey = 1e225cafb90339bba1b24076d4206c3e79c355805d851682bc818baa4f5a7779\nmsg = \nresult = valid\ntag = 23d482a05c907eeb346ba98f83db0f63c2adfbd5b2940f33c7964c7f1799f180\n\n# tcId = 167\n# short key\nkey = 6fa353868c82e5deeedac7f09471a61bf749ab5498239e947e012eee3c82d7c4\nmsg = aeed3e4d4cb9bbb60d482e98c126c0f5\nresult = valid\ntag = 1cf9d2c9c1b55a45190b5beb590cd4cc95e3853df8aaf9f4fef9bbbbd72435ff\n\n# tcId = 168\n# short key\nkey = 186e248ad824e1eb93329a7fdcd565b6cb4eaf3f85b90b910777128d8c538d27\nmsg = 92ef9ff52f46eccc7e38b9ee19fd2de3b37726c8e6ce9e1b96db5dda4c317902\nresult = valid\ntag = d127b7385badf0c76f2b3d8aa9c722333592e01f462fedd35ec664a6f6d52d74\n\n[keySize = 520]\n[tagSize = 512]\n\n# tcId = 169\n# long key\nkey = dd1e0bdbb6b60862176484f3669da531455f1cd714f999c29f08b851055fee8d72186d376c236f4e16cba7a25cba879fb2753deca4459aaebc6f6de625d99af330\nmsg = \nresult = valid\ntag = 7e4f7d844b3ba0e025b66de7cc6227bc50d4e174930251bfff3df36c3900b5b76b00095a896d0f96842e37b6134df40760307699534d6670f138974ee1c58d94\n\n# tcId = 170\n# long key\nkey = 432b311ebcfd46ecfcd3cc706ebd05c787dfbe1855fdcfce8d50c9a00f72b65a8d42acec335b4e07d544c92fd7b1d38543ac6e0fc04c26d88de8dd974af69e24d7\nmsg = 36b1fbe8f1335e7c0399c24730906420\nresult = valid\ntag = 2cfb688f30b10534da9377a4b3fbee1dec161cb288ac8b758793838b45ab953979dadf27817f477c9ebf23cfdcbacb60b81038e08bc4fc3180bd2a1ee805976a\n\n# tcId = 171\n# long key\nkey = 17f720f09df5972af9b9c63e10043284608900d50b7955db3b4e2679cb4120be2c9b9e2aa1a5743eb519792822c326b4d890b5554d1cb0eb71081b7569a2f04df7\nmsg = 57167c2524a55289687b83a40d3a69bc90adc53ad247020b88897f9b95d1516d\nresult = valid\ntag = 4f70267b98fceb4f662901bd18fb4c81ac164281dd0ece43028a3c2a65ca213aedf1bd207f0939bd879bbe20fd09cdeb20246e6539766add08b3adc5143d2bd9\n\n[keySize = 520]\n[tagSize = 256]\n\n# tcId = 172\n# long key\nkey = 8a0c46eb8a2959e39865330079763341e7439dab149694ee57e0d61ec73d947e1d5301cd974e18a5e0d1cf0d2c37e8aadd9fd589d57ef32e47024a99bc3f70c077\nmsg = \nresult = valid\ntag = e1657f44bf84895e6db0810a2cca61a6e105e12ec006f0b5961020301b57744e\n\n# tcId = 173\n# long key\nkey = 2877ebb81f80334fd00516337446c5cf5ad4a3a2e197269e5b0ad1889dfe2b4b0aaa676fac55b36ce3affc7f1092ab89c53273a837bd5bc94d1a9d9e5b02e9856f\nmsg = ba448db88f154f775028fdecf9e6752d\nresult = valid\ntag = 33d5a2d1998a586849eebf8134728485fcfc71248f4a98e622f83b967844c40e\n\n# tcId = 174\n# long key\nkey = 21178e26bc28ffc27c06f762ba190a627075856d7ca6feab79ac63149b17126e34fd9e5590e0e90aac801df09505d8af2dd0a2703b352c573ac9d2cb063927f2af\nmsg = 7d5f1d6b993452b1b53a4375760d10a20d46a0ab9ec3943fc4b07a2ce735e731\nresult = valid\ntag = 88d579c2801905b818070ccebd2c7192f97bb3e7acdcaf613cecc74d0e41", + "1232\n\n", }; -static const size_t kLen84 = 310039; +static const size_t kLen117 = 55755; -static const char *kData84[] = { - "# Imported from Wycheproof's rsa_signature_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASig\n# Generator version: 0.4.12\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[n = 0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \npadding = 3031300d060960864801650304020105000420e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nresult = valid\nsig = 9f420516e9d063e5e2961accd80e3eb0198b10f4d64e749b5bd39a80f7356d2ca0fdbbfe5f5b2bba92da7616a83912b449e69f8ce6e35a27e9e553279d6a9317a1d07d897dddd9a8291321359c6a8a31a4ad7dbb54432bebaffbe8940e40cc875d941ecaa10196e1aa68b83e0db67e34f3937dc1dd11cc0e5b40cdb0b90ecdcad793d7279dc5b5f6cb356b805e6357baa1b3659dbbdfc9a0f042131760fe1b78202f289699e04b5c55f3ec26fa25460ce3de5aeff0b1f5c435e022e1168f9fb86147e7a8b0f11cd988d59c81c3fe74116b350e0396b1cdb2b4e0326b5c90dc384529c7f794c4c2f40958f97ea203d76a75076d5360228e7ddf166842b9165e8e\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\npadding = 3031300d060960864801650304020105000420de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90\nresult = valid\nsig = b4e0a273bbf6e942cb22ae5ccbfd9d843400ba451c5e086fce9b3b1f90bd892fadc54ac45b61f3b3b37aca67d835fda1b37d5bec427382be2348062716d4592c7eb5c9107cf391e1cec01c74d64dfa5cb7052f2f8e442a09d21c22ef5484cb045c25a05b3057b266335f619ea8dc43b72e9abf38c19b5d71c21b9bf2eb8b63f2fe0fa868f7dbc9deae9745adb1fc26027bf5e2770b2d250c7507faf2fa63fabc67eeada9f2ed8f724dbd99d43294e5ec11d1575101d32af1a308abb56f7f15f544204b533fbd96fd3fe9174db3bc2af67c35401cc4003bbce360a7898dc831011ff0582c0658663a8c2e7c0e7a0df7f3c8ef95175bc136c3b49eb7a65023b08f\n\n# tcId = 3\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = valid\nsig = 9f74957ef2ec67062c5064143d096610d04af16f23189bf010f560d49bd793d619f70125dbef4edb4d4c923f8447e48a744428d8b463745d84a718d3c5592cdf6f611a735c7e04fe3f89920cc61e0113df20b93c719df7cf62013a2db3b497c033704352519dd51975eb156ee733d7bb342093bf494e6d7c8e92537adaf8b9170c0a2f0d76af847f716ecc87e8cd3545151387cafe062d5a2db83c5463b84d13b1ede8656efb3ae9509b449f4676084042b7c9091fb75476c8a866bbdbe57e125d7c64f2f7f1d4f732666bc7ac09c8e767d145f22243dd1f10943aa61b75e85256c52c522426c1dafde98af977c8538f7441ccdbb4eabff1990304c087070b12\n\n# tcId = 4\nmsg = 313233343030\npadding = 3031300d060960864801650304020105000420bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\nresult = valid\nsig = 257d5214d02f48bf63a6a1f2604824bef64108af97a6032d9eab48b7964642e104f13c462289fa889109274360dfedaec2ace0f5f190d2e9ba0d2d522dc763dd60fcee52d513bf9ca7c0b29de279ca8b401bc2016c10d837cca56498dd644e4d350315819767e2908c1c33b71acecd0143e2913f9eec1978a900a3326bd8bb7574521c39efa2e987327c9343b9da06b304d1e4688ef80e6c285a6dfb64b57ffbfc786f69a2a1c0948ee6781dae288089a5dcb7fcb1e53a74b828b34867b8d7fb5a0151e43076772bd53a537937f8ad6e44adcf96a18181b460b63e530edc56a773fa3adb252cfc8bb664ca560a054f374c2a03d7532ac8986377b76ad0a4f1d6\n\n# tcId = 5\nmsg = 4d657373616765\npadding = 3031300d0609608648016503040201050004202f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91\nresult = valid\nsig = 339b527aeec23ed9319d5c5ee671e8e92fde09932648734b1ded4eeae420e113a7ff1119686aef90c0bea5248ee1d50f5081515fba7a68a7ac8e2ba9828ebd58237d211c8212267f2a82363ffe790e3ad5282bef3842ead902cd98194d440cd1a53cc34121862034670dffd82aff9bda7f867a3893c2ba2d60cd3d5a3ae1c446c718e99bda195e8b19af734786c62908e1e18b155dbf791283c1bf3e02ce009e08415444d56f5defe78200557d513c8d93414228c4b746a10262cc4dc573da6801f624c5d99c200bd5731142e49d69f9cc9d6d914be18d09bcff4411f62bf028223ea559a41c71a970f5e0010ae487db94461a662d56e124d7b275e8266e55f0\n\n# tcId = 6\nmsg = 61\npadding = 3031300d060960864801650304020105000420ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb\nresult = valid\nsig = 6ea7297a28c575e4348878b928d6e938a2e3d77dc46a785611a64817fa0e9c8ec71728bc7e8f9eb3268aae0f3bfa23dcb73d503e0147432b4003400167ddf2f9fc8d09464e0b91a44de12c1efc8c38732e1ed87f91cebae036610c43a3b8bcd5bb4beac4f9fb5e39f193cfd4bc00d4c7a3a98d00c4efcd1bd64f260a2a957fc730df6dba68d622441901c51f5788d6c3636299ed3eaf0bc23000650ca97ed62d367a844f23649bdc23efd0349dc8d58cdbcf655aad1f9d3a21afa02930d68a2c2db68e364b0966b005c460b682717035fd43f0cb0e7008a3d841a90c0449de8d154082703313cd9abdcc836e6c1ae5b1887f75d2e4b6387e7971128790a62c00\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3031300d0609608648016503040201050004209432c1a7d343fcfacb164bdc44ff71c1281c004886b1c428419088d06cd3561a\nresult = valid\nsig = 5a7186589cda0f9fb081dad864032ffd26a775fb33c7dae0ac080aebdd4ab53bc3ed37cc09f0a1b1edee78f0790ce0d1b656e4a788172db08900bb1474159937ad29a7899d6bbc87c743945c798307e61141ac21542af06bc2f435a47b505b2aad2619800a97396392f141772cfa97d762c42ee8afdef27617dc8056fe75b23ede6c8f4e9abe31c8344edd2c73e5304621283021ae7003cd760c3e34caec5b4b5cc6d291cff1ea80e5b9b68c5b7b045c04714d3dc73e150eb770d3d3ed788a4ed039117881ed5cd03eb3db6e4084679e09078110630aa6895029e7a6dd19d5b77952bbb06de26c2179fb06c64d184caee0079287c7b18f5ae7843e3cd01eae28\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 54657374\npadding = 302f300b06096086480165030402010420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = acceptable\nsig = 38e80b028443d96685ed76d4574b36c43cf9722e5fbcf08bc974385454316dee326a308c935a6e612ed26ef4e470e5f3f19a223e2866a2f1c805f74c804e2184f5620c1e84f894b890be7d46420178a2a5ad97b4bd3d31db24828281587207041a96792d8ee57889c666719c769f759c2175361434b18f188de387c8c13f6fb3a7e96f1abbb6124e94fbb4c6bc1d88caf54136b8f01c9eedfd614bc35375f33277d2e71a4dc5f65254179bbe75634e9dfe05aff9e1f1d792f4e6caf88e4299ed90d212d3d7ac9bfc71a8ac85ffbf2f49f77b41d36a64bccd3fe8948054cbad480451b0ca5f7fe35b0f6c772d64b70346f469808dc0057ba1c25c6ae7ac8450e9\n# Some legacy implementation of RSA PKCS#1 signatures did omit the parameter\n# field instead of using an ASN NULL. Some libraries still accept these legacy\n# signatures. This test vector contains such a legacy signature\n\n# tcId = 9\n# long form encoding of length\nmsg = 54657374\npadding = 308131300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 33a82ebc17f79f56f79073afbe0ff3f984f868684c529ecfffb3bfffaf52a99bfc057b196c3faeae3cf722c386c224ac235f781d9025ff8c9dcf10c4cc7f93c1f1aa5e1db9b166a71ac7350134ae1a1e5537a67f846f8c6970c269c4b91bc59ec783b7710afbd763ae42b1125eb9d0fc28b4045071c72320448a474006eefb256bb403b30a67c253028a2a0af7e4e36e85aa70ea73541ee2694d2bbe1415b37d2210def5ec77ba23c6f5cbe31ee21e072b49313e6e18bc6d6f2ffbd6b28267a", - "5cdda24a62edd2151bff87ea6858db5b863c13a8e2a6445d8d31fd6b3ce8fa5a31060f97545f1e04df6819648a1933b1bcfa2470bb14844963f53175f1b26b612\n\n# tcId = 10\n# long form encoding of length\nmsg = 54657374\npadding = 303230810d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 37c62aaa10e8cb4bcce5fe466ac8688431e8ad2105dc12c6b7a0dfe8657ef3dbd027d04847c7d708c2099d7d38ca2b21aa5146ec0ffc7fd1a44c91c24689fa37475013e5b30c92c3565e3d53afa73fcf269dcf3b2bfc48a2ff026130bc008a724cd29ffc546d1aea5aeefc8cd13779b3b821d78bc7b7664fc7a89ce0273a8eed1e4a683c739005640c2edb756ea95f48d9c91d1ae9f57f24f6ce3193cedbcc52d05eb0dc8a9634a0ca8e12a446e9ac3378cfabc37b498aa4a1a9d1d3a6fb308411566f9c68063c0bc8e78621fed3a22073260aa87c76c5768c3db7f674f84d8826381fc3491f46d417a73ab88587d905d1c090e37913c99cfe29dae491841d31\n\n# tcId = 11\n# long form encoding of length\nmsg = 54657374\npadding = 3032300e06810960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 875b9204a6603968f50d6e4dc13d3192077a286c3475165b0bd160ff3df39fec5859a512886fc1e06916c2025e01ae2f7ab3b341b6372f819a625a42c22cdafce031d9635f95dd962a8f202b52f9925f07bc0c94434a2091d861729551e37d7c6019e16a47ce87f3f4051b8e9adf62444b522f522918c391d82940418cb3976f0c30634bc5dff2c4c3f36a4489d00c5ae65021b3bcf5abbef9257e3c976e5fd305fb30ccfe13c43fed64c371f8532dddc70a1f411cae257f37b6743da2d9567f9dc3513b267ee26e2da1a6ef005526fd90b6ecdfaed9a8d9e2bbdfae25b0adb81004501ff32fe1e7b7acfa18de5a1ab876705784181b1336288aefdc91186c3e\n\n# tcId = 12\n# long form encoding of length\nmsg = 54657374\npadding = 3032300e06096086480165030402010581000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3cba108ad11cc9c6cfb4b849b1533c37557dd1ef2e201a78da42e164458ac54a29f0b11b1931e72f57266264584c13e910267e52bbcf15883e109a45ce14a86ac8e700cb04ea0ccccb55b01ce699275190b98c77981d2734d35d8ad41f94edc6481cc831a44d38a617a32855df03fcc44914e55b88271015c971bbf051d878b3ae7a8f53582ac8e2ab5d10e5023e67599725e9122b8ec42a96b40410edac51b26bec597b727404a6b1b24807e3df2fca8847de8b7517061edb009a40c8b3aa82cb22de080d3f7921c504965d5a23887ddb54100bc81894991c1ace0ee2afd1c38c554fd00ade0240c2067f01977326916d1708af027453f734b0a22331bc9453\n\n# tcId = 13\n# long form encoding of length\nmsg = 54657374\npadding = 3032300d06096086480165030402010500048120532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 50c6c70b2cf065c62b8b69884ae779e08b376574fe9307e2dc4ad58a50c5b2a8b74c1e8929b190045dec835e5f26c73824ddcf1a4b63f54b9f90c5f80c36f6a0cb616fb8b63926cca91c90761f960b83381cbbed3f8ee83eee92324fd9697b7f2cc0e784c956354b58e9243495800235156ca1698c407dd9b6332281bb5de1ff180dae7bb3393016e6396cbc7a02ca159b5eccee507a36ccb9338623e050d217be8d9826d0683d59c0acbaa190ba91da6b8579b6086d86d32edfa0f6f17ea5a58d3b8bb9e06ac1517eb66a8fb38094ee19e22b3d6d3cf8c1d001635e3c7e18823b69b9026d81975cb209024b8ebbdd88accbd9c5279c7a2fcd824697907223ef\n\n# tcId = 14\n# length contains leading 0\nmsg = 54657374\npadding = 30820031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = ac3c440334308e0eef1b3c3afb42dd050c77f1bfe9f3c3c83d466a46bf708502f1866f423d52866147554a5c9f86f10c079d2bd47192dce0968e8aefd5f43a2892ad21b0bdb92be45bc380c11565ac7c01be00cb1e294048a1efb4cbb19be44fa4b542e0bbf9a47549d09e456f58ff377adafbd68ef8d86dc2d7d56c5d3be08ec6cf12c0d04bb7c64c13f08f75377ba896bece7f409d50809521b7f6496c992c90ce15a70a8f8096f8f2cbd3e575acb618c87f56324885cea1a6ded33d2f09d684f8d5a98c78f94853d74b9e6ab503918fea323e5534d3e45d51b3097e082c5da614d03a5ac422e5dcc3b764bbc02aa633a517bbe391d2662d71ab851e4eb3f5\n\n# tcId = 15\n# length contains leading 0\nmsg = 54657374\npadding = 30333082000d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 65fa4957fe03c0eb8a6680ede12f009178d3ce357927c8586ae056f209e0ab0c110871fdf0b95a2ff684748beb4e5a6a73ca3c657b23bfa06d362a300f260f4d60d459a066c9f5311d634bf96ac7ee4c80ffec2fca27eca7dbd37025bae76122a1fed1914da70f2bfb6bf2e1bf3a624acf2a6377606fbf06044a21a39ccd55b2cc1f0ff184d9df95bd73942a190f30028e770139d38ef3156f64fc3eec68ed5170c41f09f110f5a0fd195cd42c4dd8e394f32d195c159c7c2b69943ea966039b20c7ca17cec610be60aaf7ecdf3511590a662b74a181fb89135604d84cf9c4d6cb6cc0b4c24f4b5e7e9e9cd969855cdb92e3b399f32cb31319ac81701d056e84\n\n# tcId = 16\n# length contains leading 0\nmsg = 54657374\npadding = 3033300f0682000960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 305b0cb38db7ba5dd11c1d82195313b522f57ceb7b4045249dcf5977b99315f6708e9d8eaef6a89da0c11fa6f8dff3aa9050369cd520dd6e957226144fb68c846255b923a49ce896fed8828f8956d0d7aa5193123940ad0a5225e921ca0dc0852aae48507c7e22ca007f403bf0fcb6553d0af0bcce6be17eb53b0e8401349c8d144eb1ddbbf8215fc0e06d6adef096acf52d71978b1bffe95ffd21899256dc944fa9cfd4d7a25e62843f965d55515f6c45b22a825288773e25410582f62b9f1fdc1e0c6d4c941b90de7d8c3b18cd3eaf5319862d7ee160a5edba133cbc67024771817c7eda526c92d146e3b38b801025d01871c3efc2591a32ffaeb7b20e7dbc\n\n# tcId = 17\n# length contains leading 0\nmsg = 54657374\npadding = 3033300f0609608648016503040201058200000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 69c99cb5b397c6f9fa0f38b0d311f8b64eca97b578302912208bdae5c04244da7cae594e59a6bc0935b8878b7a55b90acbe73ed2adfabbe561cf104d2a60aae3c4fb58cb69a11ed739dea095c224c98bb0fcbddd44d4e1e4b71a8681730c4605d93a93e40e27e6b1182c57fe5f4332898872add7e2e7c3b39e0b45d07ad7cf3c90ea5bdad70902533ce78130c74ded898cad1d1830414951f33ecc0119ae785722d1d4320781178f393ca1fd11dd96da6f44bc586fb4b5a911fdfbb87b7d88833a9a1e036405e205013e2bea23e663dbb2fa813f1d8420f1c57b25dc5bc09fd7dcf99d0dd4a5b3bba8ff2cfddf2f9aa9ea78b8f4132cf0f373157b97097fdffc\n\n# tcId = 18\n# length contains leading 0\nmsg = 54657374\npadding = 3033300d0609608648016503040201050004820020532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 29a239412587861ba02da5cbeae093ff6217ca4b1c80eee56baba352290d6cf721260021b3779a009a3050c2e5fbf19e1e717f906a7f62e52d626c4a31e259c8324796e63ac75bd04081cf2d1f22a5687ee9464cd47ce491eb7ccace2b6bda1ad3c99de2b4dae26021d08dc270a2e84d4467f7a6a2cc59888f3b74cb107311c62ccf5f327c75adc5bdc830c2bee5303a1c43cdf80e00374fd3601f122b19ca4b2f36476abbdd0633561eb3f05265282b4d637647a1e8a2be47b4ea40e4248c3e2541950ef2eb98a487569a35d3c8d8fad28d42ba57e3134f828aa1222c4d13b6fba906086cf8f07f5f3ad539cff8c0cefaf42d89a884444e62e408e36236e70c\n\n# tcId = 19\n# wrong length\nmsg = 54657374\npadding = 3032300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 36f62f546a36d5215548e6a770a14fc6edd4a9353ff8ed6231369cbb6598d25d86018b8cea9f1a87c150fda18c7e89b2c907f0ce485c8c321be467a97febc05dce335db88cabdb99ebc4c187a04fdc8e879487f03c2aeccb6ddaf006f0613d32b197c79b2a8cfae015909e02746fecb9ae9da3f07ee91ba70c0356984dd15d078cd0b93dd9e3c1cc03d6f255c1383e6e949e529ca4408f0f453e7e94c17e9b47f841f73dd62e5be047c44e1d9d7eee0d9f2a56bab13d4397494812793a49e8dc0d237242bf134aaead8f303226e532afd0c2e9748be08d7b7fd74f6f1806cfc4092af39d6eada4e0b6d7aa6f06592f6cd7dd26c1fcc84fdff1bf3086e8e2c81b\n\n# tcId = 20\n# wrong length\nmsg = 54657374\npadding = 3030300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6e18d86059eb2f05c0c1277abcd8d2380ea39ea0c4587ae140d2f709363eaa2b0b7f801a75fbe15aa329129c4abe43ec0fd84f552a3aff7e4de40a5943ef13cc3b2d02a1ad90309e8091d5c2c6fe3b6dc2472c94116cd9adf367e575720906a9fe41068a86c15214e3dae39ac41b84f5fb824dbf5c911c8c640254cd19910e15a6488c2a59179f271dbde468d540cb33dd5add9a864780e27a3e55c87402d9e2c0e12d70c9a41681bda6f9f337e7a26dd2ec06580e6fd9cd4db40a62002feaf5a4c93dfe05dc392b63809d4caebdcdac74a7a240260a6eb8db8dcbf25527d4297e4c6145decb0a888817b4f949fb66ee63e5cb2c2477a9373d1e30b4d71cd7c1\n\n# tcId = 21\n# wrong length\nmsg = 54657374\npadding = 3031300e060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 61a6e5ea6b3c5241d75dbf0cb397da7cd9d5b2c23ffefa183ddd1d34b6cf116b127045f4681877fd58907c1209528a6b45266cfd5bf4e95361", - "b9036c77fd6cc7891cb2417d081ed897ab97588dfcf975992ac9c0239aa9fc19dcf6d6d0f3e4bf72da5ab09cdd4b205b41a27e6b36dff608a638925d13e3ad7143b1ea9a2758c787a2f33790ad423749c1b79b3239d1f96fc4690b19a0b8edbeff446b148fbf39a890ed8e4a18ea09d5e50c25855e1a4a4c28c5437c906d1a9c371569936c858c29bd16e98af749edf2f048933d706068928e81ac7e219fc923f6dee8a411f40ede593468ada31e5c647d4a576ddb68a335bd50cdf7446dc722ee711b5c71ae93\n\n# tcId = 22\n# wrong length\nmsg = 54657374\npadding = 3031300c060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6494a47f97d18199ce0948b2ddf81e408e2d4acd58705059454b728b1be79842ca8b9e197a29347bfc02a6830aa7189ccd84469e696daed24fd3e45a403af6d38a2bf3e5e8005b9535a00a5b1520a9665676aa51a1b274a3c0270a20b86a5168e08000fc4cc60673604564f8620e9a2a2374ae148ec6fdbf7e880fb8be7bd85131a3b2cc08e85ff3270a4b433a6f58583a16e5b18eb2a093e6249e0e5e27c13e1cfc3fb8e078ede70034f52f4540f5fc69dc9124671200c5dc6961aee740d39bb5b6ea9f9325f2dc9eb85be46b998b29ed3dd9c7169d58e33efc212c9cc0b09e356e65463b9becc52e7654cb22a374832ad6d4e219e0fc5eddec8debf779031f\n\n# tcId = 23\n# wrong length\nmsg = 54657374\npadding = 3031300d060a60864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 99647015158993892da3dcecb4fd837d0111d7ac81efac2e1bae2242e6605182ff1ed43e41b81b85448367815c6549e363a635b946ada99ca0118cc35f37872aca53b024aab1d809909d27bd664f32be9501c3d4b7e3539c2ef10bfc340a89c23cd2c25e51425e2e7f989076bb716057078c968632e0d47ec81192f37dd5dc4d8a0ffb5e9b828b08b47b350801bb4d358e91165444e8ce8bf5d59d4dae17202919f67c7ec8b78105e255d1714ead968b9c075c11e69b5478c3595756858a98e39f321957b6ddd63b37c69d34891beadfded732f0ba587fba6ca62b0e932acddb5c5a75ac316974dc3b5a27cefd81d799a8a6244a9a78fcbc403e6fb41e4f157c\n\n# tcId = 24\n# wrong length\nmsg = 54657374\npadding = 3031300d060860864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 629e5afc04cc1f4c602f030755deeedb0a5f5c271b3d52556e81c44911296bcdad7f5d223cb6d72cf9740554bdde2936a7e3cbfad72a7704d27343240f68e2f598892911e50340c2c29a41c0d10ebb996c7e92a94fcd23a03507488be345ffd63db338b19e95d47a1095cb6894079865d299ac8101a443e6b5a9557acb9113552932108565d1d3409aa30b6c013c54bc571a08fe9f39c6a3ddaad948656bf77e7407cee8d74a037ca6860a466ad06082c39f9266f7ea16b62b5fc149a7d23093b5f7c48f81673574c8a68b75503c15ae7565775160e16d0e4035489179735c0c9736e52654d4c84c1a785f8b5a9ec2f42aecf88cd925dd274ceeec7e1d31ce4f\n\n# tcId = 25\n# wrong length\nmsg = 54657374\npadding = 3031300d060960864801650304020105010420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 278b61e00fe4e47bfde76cf6c436bfa0e7fed104493a2457ba41ba5fa430cd417ba2ffd345b27d739f6fe7b414e9498e1e44a0a5af8af2f9091f4b42470da0cf09fd1d3542f8a991f4a3be0ac6fb499290889a0e5ba595ca1ed9d97f4407dee17867ca650a49e42c701e3429a34a8bd8e934aa8d107f1761a6fe774c70a974c4ba30990b55a082c87f39266b526c13c4021918196797336e49de36844c908234def2f66aa82e84715834019cbb906011d8bdb29afcbb31dc7503ede0bc39124ac7fe054536d4d79d99186542454253f94a604559a6e992116230c7c9ce4137308b8a091f31843a87e39e29c4ce1520803beeff3fc668741cf504754bc870908d\n\n# tcId = 26\n# wrong length\nmsg = 54657374\npadding = 3031300d060960864801650304020105000421532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b9709d62db65f1584a5f0dad0602cf2d1ad02447289312f59d001fac696d5b52ac9311e0e5266dc04f5a382405259f6568274a8aca4782d5017b97c765742c6a3bec33c8f3cde398d55bf7ee0b2d3fa768b416c0b1a58e70b865c39057bf6ccea37112ba2d277159ccdbaca928fb4fbf5970296462df7b8ea7715f76c14bf1ac7e4a48a6086e7ffe71653e4246aadcf97a9999782596c87ee5098d788a1a82c2c52bda65ff5c417f9583537aa52c5d8151b3dad189dc0f93758c9e3d45a216359f9952388dfa3eb7b5727774815647b17f6feb39d963340aec6b37507a349eca6c677fdec97d9a5d21a87e999573be5c90d71cbb1b58946036f3f4e6c26dcedb\n\n# tcId = 27\n# wrong length\nmsg = 54657374\npadding = 3031300d06096086480165030402010500041f532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 7cc584726f5874d041a892993bcac52a34e71ba6fe4c3db4d48960b1abae664549656af526b59b3018fbfe7447c4c6730f0e93cb148c0f0fda55fa0a93aebab07519123805ee1d551f19c4c69c09549ae56455710cf7b5468206b820672a0d7221fc7972e958e241d4ad164ef1f90cbf769a1ccb466081cc60877d28a05c91f90eabe57d9ff8d097a3a1f59fa69761f0f3b356c2ce1fa7af8bfc70a1c4753af9c715387a5b3249cb792532d1cba87be23624836eb33f0074e927122479a9d71f1962ee6e7e7be1ead8a514bfed9abfd4cbe33ac2d3adf438bb86ec47734961292bae4b61224e957e331b794c22066cde9e51847dad897e7c65d35c98803830f0\n\n# tcId = 28\n# uint32 overflow in length\nmsg = 54657374\npadding = 30850100000031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 55d1cee3129381d3c8526661a5f2c9b59bef9972a8d3ecbddd3cd859db06be0971a181d9deb7a7333b3f40eab2e93a67342da7880961fa3b931b3ee94cfa5eb7cc76ca8f6f013bda5b1dff7a7d8ec7afa76fc6acb7809b411e8d77e97fd11f4d13af1033a04b949ce35efdc52e125394759df4f7658fb4c807823f80c01b74c5424744a39193c901a8b7238f77c330f0c37877cdfb493228a600dbb5694ccaf9521b0e2921cf84fb0a778d6616ea76f79d89ddb344834bb34a033f2399289c35ba4b5b70b1aa6d504db3f15cd1be6215678f01f3df03a3a38cd2f6e9d18755c484b4b4ee514c976a7a3edb9d93f475c4fcfa6fec43e6f815095d4dda75a5ec81\n\n# tcId = 29\n# uint32 overflow in length\nmsg = 54657374\npadding = 30363085010000000d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 759135e8b8f94d853d92e75bed21033eaa80c88e1cfa202aeaeee96fc9dd8f5430da9baa436062c843e2a6d06801e4397c93a7643b52e4e33c298638f546be9f8b2961c0da08a172ab2a9185eec9b9b859a8b46cb240317e66469882269a53b34c9db60ba080e1831942db3ad65d3779c7205aaa366c00b6372496d71fd5cebc14b885303fb7c9e968f7d4f9f0511bac5f273608c8803db4ce582eddb0c672d579b4d1d67cb5aaa4fcaa14d744acb8124f3715bb82417ca020cb1b2a597f149364f859d5f1dc17dde4181628b96438df017e9b96b87f45d40383badf6b6a89620adf601c9c4fee15b1a868f8bf7ed6f59d1f9a960fcc1d961c8d010002e238f3\n\n# tcId = 30\n# uint32 overflow in length\nmsg = 54657374\npadding = 303630120685010000000960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 829207379fc900183437b9794d8f7fe9ce67bf4dfb66b04c5e841575ff2ca607766acd6def23b5e22d25be703c0126be641d72f245bcdd60ca0fa8ace694fb8866ded8d5b572852ab899b5ed8808789167ffc699c242c7a6124f6aa6754b2b8c7e654f14aca2446a40f64030b0d836562ea9fd44adb75d235f1b7ea86048b4094aef96f0cd76c31ce25788aa9fae68c1062ae48c9a6b9130652b50be2f98ba64c89a987c0e566ba74bd3616f79567bbdd867f0081e97d0fbc948b6819f46561281061a413b4f3f43d5eb4174052055745d950caa95c320c4c7fc5e02f604071bcc361c20d72dd5509aa496a9bf1d497b61a064893880e052957353b2fab31476\n\n# tcId = 31\n# uint32 overflow in length\nmsg = 54657374\npadding = 303630120609608648016503040201058501000000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8daf99c4f0ddc3b0eaa50d674076e2806d744bda24522938c6e4ee2970a5079586d866f0c1abe824b16d40bfe0239aebbecbf67a9155b2855da4656a15d23fc3f1d3518567deec75587d7ea77d3b510b9dd2b1672c8d4774860535f8690a286ea8da3636a1b65f38689b25e9e9b0ddadfb52a0c60ac90b376af968fc654387b5d712f93cfcad8f571ae550072d42b77e439cf28ab0b5857646b4bf2f7b57af7f0443944943828ad174780e1ac0d182fa92cf992991f8fcf2a9d5fcf72eff4ec1847c30f268092b87825fd5931e5306955fe0457e1b9f7162683218f6a9abe5213442a7f8f6a5f4dfbc6084b1bc01f11558fb314a0f07b86b0c6538cd3c7d2fb9\n\n# tcId = 32\n# uint32 overflow in length\nmsg = 54657374\npadding = 3036300d0609608648016503040201050004850100000020532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 0b93779478f1ebd8d0b018e0db874d2f639834d48d2440cf5215c9b914acc3a7eb9111b5f77d605903a40c7020ec8a4be9cced3714df84586d5f9e0fe44fc1c61a0ac529e9fda9863086b77555e68e290ef716b9add9455b2349d9e14d7d2825af2ed0f619636c50599616508c79badc2dc2c47489028c5bd793022d189058f559dc272a01ddffddb8fee9d83c259cabecd93398d48591d7acc2787e1b8598cb0218b007440ee11733100ec3a3a9749ed81b3b62d4b9c32dddde30740c4875e451e3cf89fe5a970bb92f4065aa7d43fc6e08eefa416aba932a7bde5a10df11b433527bafb2854439b463f6a0a13ae66265dfabaeb4d8de6eeeba4de45e0be421\n\n# tcId = 33\n# uint64 overflow in length\nmsg = 54657374\npadding = ", - "3089010000000000000031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8fcf0a72c6fd0f9b505effcd2c074051f1d25840f8803a68f1c149dc43af6b94a114efa7ce2b399a91aba823470b9f32a70fb6631dfef593dd312801062c7f64d7c7b8724bcd36b05df16838f9e2ef209c2dfa180717d9d1bb59c10d30bdf6a0c0041ff395d4eee8a1c60af17b8152906a58786ab39840909508f7a8f3a05096e92eb57b31c07e79500091f119698bf31bd14399e122e16c3f0083d0a9a6f6413a8427dd27dd5473a9060450349f51ac265030778dbb04d4a35aa98dd72ea38a548be905717b46a1e31cc0b2c9247b7a64d26c027b7d09fdc5f2c6f3f625ecc3a5e07e37d2623b099aa776c48c66d62764def44896651c6b0ab10f1db7105f8c\n\n# tcId = 34\n# uint64 overflow in length\nmsg = 54657374\npadding = 303a308901000000000000000d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a34534b9e1b82be8c7a70d643c85664cb3919ced9c6b6cbf470f4aa8c62194d3e287077d3dc03e9e49d9069b69a4fc2caa5c9fc0ff1f08cb9b8370d044baa4be1b5918174997d74579c791a4c9d53f0348d33b6dd9151ec11823fa765a04cf03791f9d8f89048bd702f03247e3d9ea4e9882d9c768166e60b2db47a1bd76dd8cde45933dd1e4c3fd2bd46bbb8b2fbd6a2630f9db7e09dc342a3e279927a68f3da34192d0a283e2df7530b06a42ad1680b4a33c8b4bed2a8e799ff39ce4c5853a2f9d016610e58ce819771cd0ca5cc286134fafdcf36eb6c0f198e312e0e2cf722c47487a43cf4630c0703e65f5cc23972d5c16012b0e338aa6bbaa9a6110bb7b\n\n# tcId = 35\n# uint64 overflow in length\nmsg = 54657374\npadding = 303a3016068901000000000000000960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 615fd599966ab4eb5d30e60eb0fd82ceff2eb244b4888442ed7f6a1f32005ec8818cfbe3e6f4ed7bf9d51775635307e281ece422219059736e938931dcb7fa1c0aed81808d39ec396acf70766e918f017fd41209972ccc55c1e31c84eb217a2d82dfd84499c4499cf0362ea60c40439c3d47e8a05128fcb5f445f08f5d92a29df6824d7c8bc735941ce54f464e44f2bcc6eb3619248bb52d04da149a5f9cbd9cf617257dc95a152681656f537a2e2053170cb2114dff07737872703914144acfa7f26b148c59258ef72e2061dea6c035853a6be96063dc05109ec7f2176a4d601c41caa637eebe907b248922c6fda83bb7e9481ea500576144355dbc98779944\n\n# tcId = 36\n# uint64 overflow in length\nmsg = 54657374\npadding = 303a3016060960864801650304020105890100000000000000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a9648dacee46c926af22555c2d4784f01f3565949f177f5cfd4c31659186645d115d4a24dfbca04b583ce8f0c1e452a953fb081fddfd61b9ad9e59df2d52be9a6ac1ecfb58c211a8182f93093ff4f14f5e729e15dc0690aa612a09dee2ec44ec05f75ddfbc0b5a88e93e098cb8b0f7b74a3dd07ec559f964962f83fdb95ed913f2603ee50b36482e8a379522d12c620af2b0ac7537a95417df11430a72f72c0ab16babd7396e0c348f033026dc7239e2a61fe75b8ad4ba4ed154bf05cbfec5260f1e4f2cc0bf5f39542e12a3cc8e490c20a554d3b9afe73ac65c0a4c22bd9349ac39ee25d0feac57b6d5e065d82a757fd1fea928a4e741aa8ca724269415c1e9\n\n# tcId = 37\n# uint64 overflow in length\nmsg = 54657374\npadding = 303a300d060960864801650304020105000489010000000000000020532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 174cf250f8b41af4e2bcde276dabe55d193d51d80db308ee072cba6d7823e49ea26b32631a18316f48a8c933ff9660352917d5f197d44afbaf89808fdd16853786e3cb3a348009d58056e3ed84388ac73789732105e0c57fef0362b38ad103aa7eaaff599fcb07520ccaf39aae20ee0e1bda9a604e76646c72c9b4156efc0fc4a2fc733a5c080f50d9a5bed24a35ec863bbc7297c2a7ffdee9c7b3fd614da2466b9e77a72af6d2dba40bab35235e14e520278df7260b588528f0b32072aa532d09471f4e1992c8ff3534e6d0723c1664e8c6ec141eee2f7439cd57cf167f1b6dc681aac0a6ddfceeee9a81c53845ab87c145452627547a0961e0fc89b17ef70f\n\n# tcId = 38\n# length = 2**31 - 1\nmsg = 54657374\npadding = 30847fffffff300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 87bff62986cb2cd250de8d56fb4674c65cafd441da9dd4e42b1e7e14231519b63fa59608cd70d3ad761fdba810993ab3da3ba5d182dabefdce2c383e153df2b21c4cd4b58ea94e353d8c02bcfef4d565cda92975610207c9c30754cbe22bfe0f7cebaad0b6fe1d470d9119090adde8587d15cf27965f525d92ccb2c8778261f9d126ffdd8b90bd00acbe648979567a3ecb1fb5ceae06bbfb1df595e2155889ce62b3b47bce372a7527fd59ab5dca37378d0a90f4487690385acadea3766fa407d277ce4e76416daaeeba1591aa31dc601efd0d9e29b50ccc68d1511581b00f75de4c05d145b7ce0f74ccc509748fb1f8c636e1a56c9c412142d5c9a95efd0b8d\n\n# tcId = 39\n# length = 2**31 - 1\nmsg = 54657374\npadding = 303530847fffffff060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 2fadb8a429803ec2956ae6012289f15f7ed8d535c07412994204ade72d2e7a5548024390e1356d432b7e68c1a8738382f5aef3cc7739f926b44f9b9905222323a97fe7b303c130eb4147a5a4c69a031bd0c459779f7c3bc00bd5ad616421d14aa90ff3f5f4f700efd19826d89c80c6c4ab4ec81ec05498bb543be74acb3f61e6e1bef48e61646ab962da08502fb092961c5fb324026a52abfd1c47b9ea76187f5134916c5dbfc18668933c2a562a02c102b6efb9ca2df40869e920e84f8e73668a73c1cea83bc8600f7dbadeb5babfa74b99a3d02794b924b01dbf087da3d8d579514647633d8d6922a59a3f5625687a4b1c3b5cc67858e9b78ebbc7adc20aa7\n\n# tcId = 40\n# length = 2**31 - 1\nmsg = 54657374\npadding = 3035301106847fffffff60864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 249c65c65a3334eb4be16dcc3db0732547ded2ce4ae6c10b1e1a0f474298b2ce230c59e7e746ffa173d5dad3b16dd4325e5469daf6ffec2af4ea23db279601b014b54fbcfb3578b078a8ec53121038ad666ac9408d65e8ff4570aa3b5747041f4c3a45a0e9856f2ed04b3c2060925a5c77314f7bfb5c85a71155df5b23f694a9caaac2fb11dc6612bac680d7494ee19bd4945ee82c5d1f5acdf6b5ab46e937a90bc4d6d3f301373026edeee725da4ba5202e1896b716bd8c69ddb95fb364d697fc596709b0ec48bc66041df7127aed311110545c4aafd228ff55986781780455241830397f8fb6764e33d0262aa65814521ec71890700a093f50db4659cc5e2c\n\n# tcId = 41\n# length = 2**31 - 1\nmsg = 54657374\npadding = 30353011060960864801650304020105847fffffff0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 7d2652c6ffce45a2fc4d740db90e1e87795e38dd5f58d3905b9fd41a2a49f3b6c3c14db49f8378fac35cb67b3593a0991ed4c2439cb7890ef727b94833e455edb94b11c2b0cd7bf5c11f8a206e62f540928f873fc6c6b0ea4e520e85f01140d21ff2ed65945e602e09d6880c275fb9cb0cb9cf7a85dfec032f29d5bbb4303256c0cd02a99a3433186558b0ee9bbd93e5e2a89c9ac2b8f74b94e0d9b02438d1bb54dde5424893683f5e74d9acd1424456a55f74d0654b20f55d199d17d5b3184930d5f95068f61c6d1ca4b0e75f01d56fddeb13a9fc07e185b514ec05bc657f97e1ed7c25670a1ed4e16172ed2c19c7521914dd3001d23219c8b578c566eb2c1b\n\n# tcId = 42\n# length = 2**31 - 1\nmsg = 54657374\npadding = 3035300d0609608648016503040201050004847fffffff532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a47037577d6a1480d07bda7574648d9b4d613a6d112f7027e873cca188cc41ad35cb8c931928d2765b60c21af9756b6f0acbbfe0b44b4eb63abded9d8547fb1a37706ab562b448b47f29a81673e27345c156e0fa29a353b90c3262a8a48b0f002dab41aadcd0edbb016973fd85ca98e53116cc3a3cda5754c76ac8c8e44e31aac06d1e248137ba096237d14119538f55a1cff1c7a93e1095eb40918233e5b33e092741f658962355541af6eef3bf3b84e9b87fac775f53e7bade8581804139b765090051474b08c82555daa5407fbbe998f29fa337d21b24b6917d4cb315d035dd397a84c47b6b806bd1e7812795d653073cf349c57193397c542f3fdd512bcd\n\n# tcId = 43\n# length = 2**32 - 1\nmsg = 54657374\npadding = 3084ffffffff300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 85ec33234ac05061985a24bd9e5e13de3fc8e8c246f75d85abf8021cd993f97c38ec6b73d713c6417effc7a751530feff849a5591ca0c4e6dc5bf6bf97c34bace7faa2e448bbc81e3d8551d4f82f7ed095ecdb19e91498e357909f090fd8c215f830b2741a4a4af518341c312bd6f7fef9c1b563cd4284f785430c538234f6bd3fceb2b49ab872cb481447b2d45a37d45dafad4d6de26246634b99b926e37832a8302d24b35e315f0b971cf52c60ac486460d7678152beff5369441c84ed54f16177f5ae560eacac13d7f94f14764ecd42adeaa0599a1a47e7f500e6b14e0a3b198aaa18fdc6d9141932bb28b20e71f69c173c2b841fa042a3fa0a388e164fd3\n\n# tcId = 44\n# length = 2**32 - 1\nmsg = 54657374\npadding = 30353084ffffffff060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4d28f0c7915b1eb63badbd931675ecf29f8d69b4b2e1b1fad776fa5adbccdc17bde98029059d46b197de49e061ec57cce2cb77a63deec3c75c2cc14fc9bb4a2ac29d5f4a05e6b4ff97ecbcc26a0dce39760423740141e675b52878a83aa044f68e84d9abd0ea6bfc5e6fc3", - "acd971af258b7b9a01079010e68e70bd7bd31a9f9bdbb70598758ba274fb8feeb8ff46a4b2331a4da03330cf55910e6ce940c1a95b6bee9adec351354774139e3b213627a6d7e8381656362b4c6f83e97f93630939d22763f0850f1b4d38a8e3ed213d2febeeb125ec03854a4b276fb59087904ffabe83cfa66c1af413af6ecde5efcbc5241d5b958425b66ccd31500ceb9b80d793\n\n# tcId = 45\n# length = 2**32 - 1\nmsg = 54657374\npadding = 303530110684ffffffff60864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 2c59c0f5bf7fa3b6bda22a75dfc3ba14c26ff3e7ad24c1527ee7ab7c032dbfda6ea5171d88df2de56c1ad6d955dc41bcb8395e83518e40b840c062cfe982c0e42065d7e2a9bcbf91dee53949bb6f67c99d1e1fc44cda982a3df171f9c35424efb2f6c0cc169a44b6e5015df5150796a9c669515aaae57076bb1fbc9480a8ca6954990612eb0314da7efea7d14223081618f2225ce3ce43770d457e84b54a80cb3a35f14c511a2fa2a4d295afa6ed3996d47b5a0c6b1d7c11ab14bbff13af67b7475ac543307626598d69557255bb3a92c07e36c3e9d1530b21284b3d5c2066057035bc753894c01e0f33764b51ca3319ef32d4288d11c7a1767ed7ed89433216\n\n# tcId = 46\n# length = 2**32 - 1\nmsg = 54657374\npadding = 3035301106096086480165030402010584ffffffff0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6bbfb1ef162a8cc8c140dbcc73e922e1b25c0a5f29e59b879315e5336697f86dcffa1f26c435ef3f38657a501e1a3dca7dea9226ae179eb6e7b4604c4a984da95421676c0a1d5b5ceeedcb02def8ca2e90f657b257695e7f87aa948c7d54570540657f8b79f3622347d4c3aaeb8c8c72abb45a156b7facb3ec3c4abaaed5491b84263ec9614a08dd4ad2fc81682e11d834c328ab21bf6af4f25cf26b81032ef1aac9edbd1879b64e04a24f36f6bbd1b317a58fbfe6657a4450deb0b07386be1e4c9f692d6e96740e300905fe7ab3f48ffa279b581b98afeed03243779127fe57d97d7313ee6b2ffbb5ec7e2bfe5d1509b9e8a794cc3cf45ef488874c3e494214\n\n# tcId = 47\n# length = 2**32 - 1\nmsg = 54657374\npadding = 3035300d060960864801650304020105000484ffffffff532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 790911646b9fc46991a8c1fdd0c7a5a8b45a078305d71eafad2dae2ecfeb5f7122d1ba2c77faecd5bab50b05b355740f93c6cde64c42ddb3be48362a741fe29173d58d950b2c242753ba3db6f4dd576c2240f490f53ccf9b6e781fc610966b80cd9700f41c8bffc87790a01a45f3623a82167ac42e52c5ab5ef539b29f5d19449e9fb0b6749a559010daaaa19d15f3fc53b58b1a912db79a46caf10fdd5ea81256842acb1e06282ee66c0bccbd69131b532b3cf7ef72fb725c910338e24cdf2653d443f209efbd03573b54536f98fb002e57a27f62fbb117cca57d9d6a2ac04cb0211e227682988c64421a5f8ad6dd3916d0d84b441847324c03451a4ba24fd0\n\n# tcId = 48\n# length = 2**40 - 1\nmsg = 54657374\npadding = 3085ffffffffff300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 02d431509bae6e097fffb5e719b16a296b81fcfc9fc6a64b85b337c88049fed54971ef61e635388c2653554685e652059c769c5947af49858439d9c388a40703a016f73cf231726853f498f94a0a9a98e14e0cf8f0c8284b4d992f00cbb8dde41b07679c7bb7a2b4b7b307f2edda65fe3e002c7235eb85dd2ba41483b26131c997793ed64fe92a9fa9198eead1e8506385db0c3c4dfb93b87e2cfc09d9d3b00937cfc0a35bc211cc8efa4de83745c5eb0bb28ae52a22ae4ec8712be72bcf420476fdada50b618f0e9576e3e7ad8df5a0ebab78b1bfcdcef594cb7ff56a895b5ab5e0a30f82453880d394bad6ddb92231e44aa275f945ba6220d9f226da4d0aaf\n\n# tcId = 49\n# length = 2**40 - 1\nmsg = 54657374\npadding = 30363085ffffffffff060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 665e80a08c78f4c8a2768d1ba374bdd5e5101e61a594300a18a071d7c98c68cdb73acf32831ea077734e2486f1b13f76cd779a80fedbd76716fd022006a6faee19cb9789359e5b7013a59cd671a2a91c8328f4a1697e14a085c897eb45692d0bec074b400ded2820c6a5dbee2feac84cb6a37baece0ce763dfa7ca3b3fd4a82863a0eb35fcff709ca401c0bbb73f27f251b627cc442dd43eea634942bcd8bd72f1e8f192ae8dec1b7275c7739db254ced8b57332407f8a85285a190c94ea7f1c9318b7fcf67369ed23243c2454dd2ffa153ef12074a842878b38695336e8acfebf2d56d3560e43cdb039c27b207ae35f7a527b05baffc73fe76e57813b484f00\n\n# tcId = 50\n# length = 2**40 - 1\nmsg = 54657374\npadding = 303630120685ffffffffff60864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 31e48e30de0cf259d0273991b633da6228289d540d84c527d5f12a13d2d6fd489b1ee282ff5261eeffb8e1c716572b207eb59c1dcf04bf9d4a9ca92feccf318254aba5fbe1df1dc6e3101f2ccd0cf329d23cfd9fa19c2acfc98c319be1c4d9831e86343513769e4dded967f512d5371ee845e47544c303d52ebeaae15e139eb2606989268b1ab641c44efd8b1ee3a5fea73907cafd4322c00d666d3d0e11ebebae763b0bc4948acb034eeec91ba2b90cb40218f8c8f4653338eef0a4d31e3dbd29a3d90b9a11c8fd8e613ccbec221799fc2d98625215ad28ed9b7c38eff27c44fc5cfd408a6ef1c7af90465cd4b5aa424c48604e2d72bc10d9ddfafc30129a42\n\n# tcId = 51\n# length = 2**40 - 1\nmsg = 54657374\npadding = 3036301206096086480165030402010585ffffffffff0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 681e2eb5134130900a52086c86aa16e20c7b95e7cfde30607e84e467fc67797d01674240cdb189aee160f8574f773095200c66c96507524f612e0d00adc1b4edf4c5f6c3e499a0bcb892e917c01c2c0ab9bafb6ad219ecf4030f6aac5253cfde1c1e71f1a7c1de03e65f9751d3ecdc09e4b499a96f9fb22da50a8ee8f4d62c9b67281848824d787c40fed31dc0036577e17c2d9a43cf7170c52ae92311725599d51957364da73424464d63c0edb55e79361f7798dd61d0c4068e4d0821ce80e27054459e9ec3fc0f202e9a30f4ad01747c6ee854b1f3615059d4bcce267a857287e7a9cc6058836af04d9f8d9b4adde905bb455901418e2aea9659c65aca0cf8\n\n# tcId = 52\n# length = 2**40 - 1\nmsg = 54657374\npadding = 3036300d060960864801650304020105000485ffffffffff532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 876fea7a5f814cb533109f000830bf5d8776d57b502a86f1df6e4dc50125a18e08f267edb7abe0afe44a5e75e8f4fd5e11fb2691fb73735617bdc5dc270e2b51adb064f5a560a4557c0b925e6af7852a110ac3f8c33150d3dd1d5253b7fc69d11949a8e80aa2e240cb3eed5a44afd0ed7a651ff6205bb80333cd060a2d2dbe5e37de3fe38c342c1635d553a7bab6be1b6ec1bbe9524944ec967200d35bfea076846b8460333d17cc90be7c6862695fab2cb5d02beebd6b1b86229e48d64f391ae3e506a7d252ecef54b61d4c186ab9fc8f2b32e006d07d9958292b6f4735a4c4d8e63713c212558f73de273647dc37bead249379831979c8062c0768148bcdda\n\n# tcId = 53\n# length = 2**64 - 1\nmsg = 54657374\npadding = 3088ffffffffffffffff300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 58bb9a11f29ec8bc8ec7bba4c056e09087fcc881d8fe8e5dc58fa74d979676a20e00468e16238d8e2a53e40b4952ae47cc857807558b12224b3ab06ae355fbbd35180e555d7d468c23c6466ae74c8003d2b1591fbd529cc479e7469f5645787b8d7baaedb089efacf7f4395cc1382a3068770530ae97729089100960f22a13d73883a3a5ce6867c77a9e833d60f8f3c79fc2f36e63cbde5a02cdb7e226f387588456b9161814abb84c638aafb44f293e19f1bd5093e36d68386e365a5ab076b64275880823bb77502924d26bf443e94e45921866c68edaf5e66b24df38155b6faa25e531eb1af900780413cf5d5d903146a9cfe9350a3a1509beb679d7b75cd6\n\n# tcId = 54\n# length = 2**64 - 1\nmsg = 54657374\npadding = 30393088ffffffffffffffff060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = ab35fb3939affc42b2ac00248105dbd3da37b59db5d489d1ab1962418e6bec3b6fb4dbc03fb47c2a64cd09fee70acd723a50402b47cc2a3411c716a1f380138511d693751e37a0bf23751488293a68382a909202b7d18dc3721521f9c8fa3554dac15b20ce5ff9638edeba6ae89afaa100cfc92f51326b82e8fea27ca216b8b953afe00d0a02c0df5ec76ac494c1ed3398144a2654570d8daebfb27dc698bb5fc3a69e7b3759c1f1c7d5e807f509185a17b642f8b24934b5efef55287dff737fe633f19e0d1af46a0b4675b300583f96a3670b1e50f1c27441b5e601b8c4cee015854d680ab544900e65f4e205e2666ac0087586012d8ae52711a9cda02ee520\n\n# tcId = 55\n# length = 2**64 - 1\nmsg = 54657374\npadding = 303930150688ffffffffffffffff60864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 300282f3e571048e6a298d3b1d979961d17e5f460510227aecd83d7e8b3e21c76a1a304bf464dcbaaaa3e134bc5b25ecb745b78829fe5d7590c1c799bd613ccb8e1e55ed89abc0fc663599e77ea87515c2446091cffa063d6b2df5e3c623da69bcdfd9da5176356f76b05c98413d762cbe0f47ab6d470eaa8dac88dd55890a8c386d5ba195bba8751af133a24d204b7e7077e7a9268cb9dd7021d9348f12dcb46f145a19f0b408e2563d5487281db1c2807908ddd125db751b735adaed2f8e8cb55ea470a45383e2991b80ae0126f93555908a9154c1633c820e8942d4c37c807ac6a94507a3b9e1f95ae5a712cb7740180eb4e56c15d4e1829fbee2bb1e642a\n\n# tcId = 56\n# length = 2**64 - 1\nmsg = 54657374\npadding = 3039301506096086480165030402010588", - "ffffffffffffffff0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 2021ef89c0db9b47dde3df73014ec88ad9d33575e64ff6cbd46201b45811b15f197594de8e35c26139be07132600cd48459e0439b93c2fe734337c914fa87c3913887275ab41aae8a70d60c1690ddacab4711ca0f1949fec70a7173c39116992c051c5802d1c1f005cda7f5b1dd61a8ebabb27563313f6d25347654c64437165590e29e78dc0bfd5491d02d6ed45a0f2ad58c46367670876050ab385f7af6e9f9bb06b279e360519d047296ca055429935b0a96d6b1d6ad1e77c130bd99db29531b0bb6a6abf3bbe1156217a94d137a76736cad06e5d53b9671204a49d54bf5371b8a3d7bbaaffe7871dc8c4ae8165c70bf14dc6ffce5ad74450a564f21f59af\n\n# tcId = 57\n# length = 2**64 - 1\nmsg = 54657374\npadding = 3039300d060960864801650304020105000488ffffffffffffffff532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4b06f62bb29091d0ae2dc52c2443bac02e9bebc68f84bd0186e0e565483db3fdb2ee8c3bf17e2fc256f7df3810c5c597fd03dd65d9726f4699734a89fb5dd88176ded8f2caba4c1a869ba85ecee2ad4ed782006bb5d1f6e9a8ced64a9a74298a9c512b27cdd93b7f3fb4845bf2d95af41acc95a43fda8784424d3ff5ce18292abb0d43ad644c28ed076011947a317a5543fc48becb1836a8f57a1dbebd5dad249a00e01c102b98a799b05c2a08565c5778e629264727a9cb8fb4ecd71f8f3db26e3ebbe59812462d6c2e042a4f92456df56cb9caf959ce3181aaa1956109a0dfb8524ef802891e80dffcc2132ee1cf380641c7da5d1e3ef1a3b37c8b9a7d4c05\n\n# tcId = 58\n# incorrect length\nmsg = 54657374\npadding = 30ff300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3f9ed26d39ea6b13377ba941923d1c55544c4ef8c9187dc6430eb1e7c8b86292e528fbc74b7876016ff3cf8014da3d85f37e975810c0a7a8996c91533567e40b0c8464de887b18c9adf84571f7703147cee96c81e5eaa61cb3c40840d21cc0a280991173d5fb1cce01514003bec10e28420ba01819ff003d9ca8658f41a6e02c3295a53613adac27ddbe959d90faa58e33c3326c4b5b6a5a015955541531fc62ea216a4dc54878b65e6a12e0fd548046e103d8dd4516bcebf008ae4d5b971e9e2eecc8379356ebf76b69943b6f0d87ccdc19036007f7c79f363ace8e85bb97c40f7b59bbeacba0325decf642cc8cb8e51efb55a7296bb23bb12a3a1b334f5ca8\n\n# tcId = 59\n# incorrect length\nmsg = 54657374\npadding = 303130ff060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 748e7f86340f83dfe05a19e73449b7814398c6951a649029509c3072b6ce053e6176453d9046677e4996ea9a490fd602d8a735042b29d2a17f997817c6d9600bea2d5f7d7129a361bac6b7f76df520f4971790d250fbf89df5c22bb9e7a510bb6fcbd18251fcc5b77d61128f27adb3784c9c363eedd2c0acf9fbff65c9b4c67d631c98ec6ad6ce56389420a9f7e78973e3b55c90b3c3a6b37ffaa74ced4889cf306eb75e87d4b34519a349d1b7842f81eb588c3137e80895fbb98d67fda3621c7510815a5d5ae512e6566088dc333107a3a6f4309d6dda5417bfa795c72d4e70253775afeda3940d4bedb9a094502e1bd90084cae6f66c5f0369d3ca6a00d4f0\n\n# tcId = 60\n# incorrect length\nmsg = 54657374\npadding = 3031300d06ff60864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 7705d76a011d696708921967a9e86166528d77c656946a5ab0e157a78073f4b2f2785a1feef6efd8d337a22a8ef59c6e710e984844498f0ae0c1f61b5d7057d09e3fed79922d492302e28c0c0401100049ccb68fab95feceff0acc24a913840290b27477b295f942ba232e6ec76d112632c9f02f9d40505323d81f4ff1bea14f42d6743a3c2867df273f80274fefbb20346c3f1cf0c2f87b55e8de277a8b2f4ab8006346dc8ceaaaf0d4af382337952e3c55cadab336da343723bda0ec0272ad6251995d58764679135c1a20098e9c3df54f161bb16bce5a600a075b36022f224ad5b4c7dda09bd94bc7eda7a853d96b5100e5af8fa2dc1a6964e4e1fdceb826\n\n# tcId = 61\n# incorrect length\nmsg = 54657374\npadding = 3031300d060960864801650304020105ff0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b298cddbcc889842ade9fc8a116492416b2fbb01b3f414e0dacb2a17d386dc26b1c046192f70ebcba7475445c7794e137afbf0c252077272b645a91b9cfd8312a83d75a696c777b762d832272c544ae96be8e28ae5a639e7581b1bb1c395e693c0cbfdb0f2706e2b93134aaeba76de19674c6a0317eed9b06119fd3025a3141e06211047468e9a59fb8932dee92db824b4f3a8a11ef4bd0b3a015d861ebae48f842203a79a66395da42a4b2f943b51c8824eadc11cbbfb34c4a82c553f83341cdffd8256871ee06f160852ec6b0e7a79c1f06aeaa474efe6309f7caeb4a26fb33364737496f233ee6fafa5e13dde525fa414078271cc439fe5ad0a52fa6401ee\n\n# tcId = 62\n# incorrect length\nmsg = 54657374\npadding = 3031300d0609608648016503040201050004ff532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8b15577f817c9f63a94b9633fdd36af378d9f5f471636c7b518d467a37aacb5013a3640d4ad384286c68dec71ac5d6a4ba2578fe2c61d1db0922108bc777703c8f09f251cbec3a6d2a0e26d7e4f271efcc3458e96c710cb8b120eb7d5d8a5a535e823b42d6c3d59f8647bb244eaedea2b91e3b4e3e4fb9f2b0fd4d877d4fc10f135c54ed5f6228a48605016c7348ac4d7c00246be44d9e8660616bfafdaaccda021c33bbc564a5594ec98472b0f559dc45ea57b254a6397685643d1fbc1e074fcbcfcbc5de4f5833a7dcfddef6a1af5bafc6687ac8664d9920f9be8d8bf9e3b404db41b1d3ac1c87e9627a4b69a2b04c0ac751eaced3b7fa618bd7c0dceee17b\n\n# tcId = 63\n# indefinite length without termination\nmsg = 54657374\npadding = 3080300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 672bf0ea5541b809287c9e2b6a584da21271f24d58eb68cf2dca42f604bf3d62fa9d5a52ea20e234002ceda5bd919ee8ff344c8f84e2cf4d8efc511560e03f930b6533cce2ebaf14203401317fa8b0fd17807389b3c5449ba24a8a1f16d143ad06c1dc62c5c40facabe64faf0a9816d51a831b648ae9c99b465535b342085ebb1aa44ad23c08bf4dd9e0838209d4805f48cb16d9bca302d161ec3f6e66ac734f001e232c3133558c4b89c00eba40bd53c37c5b03ff6fb3f323d0b79510592141946a7a7b16abfa78ab81d886d7c4d4090bdcb782efbf0c4a76b47abb18e1fc9259cee098929a1843a04ba52704bc9be25a2b96779a2b647d3ba7c11e2a8dfe48\n\n# tcId = 64\n# indefinite length without termination\nmsg = 54657374\npadding = 30313080060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 94818574cddac115d352d1740c4e5581ce36f1eac658a7cc9c0fa26a1d6f5f43279c9f2af313b3e0df805ac1e24976d58aee16e2a4616cbe421e46f5263ce46e301d8c295cb8a807a9c65610b176c61ae03229fc6601cfcffcf90d53edcfe869a1bc692dcdf88ce84f23b34733f9c8046d1cb7df77f1eb29cddcd4b420dcc8761169f3c7dab4f04e2eccbc046b0b26007406dec7505a38273e3bab522a81a054241afea6b6576cb1fdab2569cfa605c0cfcea0f4665f489273b92d2fcaae21be8f2d37dc40a38d847c56c3df5a2d5cab476753c91bb4e2dfbf2bd9ded2010e202976055c78de4fb2ec3f2a6a44d6816c7cbb829c83646156941418b4f060e196\n\n# tcId = 65\n# indefinite length without termination\nmsg = 54657374\npadding = 3031300d068060864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5c54c39c0a079e7a842c8b7f5c6bc63f4b90873e1379132fc1a52fb78fe6eb46aece7f5ebeeaf2df8862622442f0a470d2a8ae252c5c5d71702033c6b5e6e983cf44ac0e818d9453b86b91b5d99a1af0fa5ed8aff718d49864c093e4cd5be4db1fd44b6ed38e58df96e70cab32fae1889e091be25eb9f15c07ad2c304e0ccb881cdbb1e45ba993b95e169358a169c70e7d0915ba34955bf20fe1df2c7aae78fb78c893d184c85a56524643dfdfc41e62539da005751409a18fb4e59d2877c6cc45a4b832fbfa8ad2880775d9fe92b6516f8458bb52cd5820710bc16ca32cd7bb3998af0299778a2dab50d62d73415294a857d92bc5bad97248e70cdacd50dd5d\n\n# tcId = 66\n# indefinite length without termination\nmsg = 54657374\npadding = 3031300d060960864801650304020105800420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 9b91890eb53272fe7542c2067a4e9295b8c7b8ddf1c9ece6a75fcde79c9af2cbcbcef38d342032b85ccff9d6c82d3cfd68a7b27a38eaa45c78a17741c230391b3df0bd79dcc3447c8717b7207fa1fd04e917b5282e3a7dad48e8f2f6d1360f6c720f9eaf1d1d59f061d71daac1548538c0a06fa65b2ac87abc9e6fed3a6e15f48422bd9c4c681fa98a27c873d7efc5c100e708d58141b60e5a691747df4036162456bb11f92f2a391170233ca1c03e1786a32fe9ab8a94246dc643a884ad59edc40e2eb873713e84816e4a7f7857126da3f063cb9a3dda0547207c426f7cc985b5a3b6374cfff51d0d542ce9f82ffc07ad24c106363ffaed12c97526394a84ff\n\n# tcId = 67\n# indefinite length without termination\nmsg = 54657374\npadding = 3031300d060960864801650304020105000480532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 0f07dc8786a46a7ae2fe2bd534715044f46ad17b836b00370996258aa90bddf563b5f3e7eb1500ed0604f9380491a5a6c6c004b560b0f280a2de30d191928bf5aa0378fd6beda830beb1db8b6b1c8846079b6013cf586e384be0e1163c62b526fbf8e26992afba6ef5e5f15755ec7b5287a149b19e577e79bff6526d72616e28d921661752e8cd0e4b950d7ee9f2414e45b3069a80a2e089e", - "46d0b3da5cc0352c07305f8dfef2e1e928e85bb76c5a0f1516383143184f66f31c69adc0b8219f11809501927744fa37d1c8cc1e2a6712d54ed66dd177714b7cbd005e6a6f83db92041b595dd934b0b19fce5db369e504fb45c9df1e645e81bef62cd4da3497e9d\n\n# tcId = 68\n# removing sequence\nmsg = 54657374\npadding = \nresult = invalid\nsig = 70f9515388762b320cf84e90eb571b27eee58a43ebd4773573bffbce8b162bf17e6c0317636b211b2bc56aafa99b968ec950466ae5cd7b10d94c993dabace14b94bed501dacc0b40feb8a89586eb1a792e92115ba5430ce1183ffc6f538ca657fed3ea684a1b9d998c0d9ff004e150a0a32d20455176e8db3d96b5063a60106a7bf6c9d0baa8879ddb77d9a3037400348ed1ee4b88f8256e8e632b15b0dc2611da3a9faab929a0bd4881418d7fd8fc7760c523e1ca4cd3f25c8243b8bcdcd51e96a3840de589744bb8d655851b9cdbd8b7f2d47a57144d9c2a7ea07d49c0d141cf918a4eb1507f8a7b11cbaa28c1a35745209a5fad2bd1e66f7929fe0223d505\n\n# tcId = 69\n# removing sequence\nmsg = 54657374\npadding = 30220420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8804d661bb17ffa73e371d134984ee95e426d7c12af978d9ad00ce746db4a3bad36546709f029d2c9ed13e6d27123cb7a1954f1f65f3fa46eeb56f449ba6b5e0736e5dd2586d642711d98aa19595d9da1c4ec20953009e2711738263170b487072566558de1301e0d0253f8fc14d12c8cfb4644b50aeb3d3a9fe1a26fd3bccd72986cbaff34fc4fa38ce52e65821f169d54b78037b8ddcba141ffc72797023c802564989a20b07b9a2ba6a256647e937b1c16df2081cb61bc6e6a2ec6ca9939db91ec2ae62c4b2d0d7f61a0bf0c693165175c91b100c195f3611c3ecb797c531439655ace9aae18e53a69e66698fb593f48084117ba288a134fd0389ee0f7544\n\n# tcId = 70\n# lonely sequence tag\nmsg = 54657374\npadding = 30\nresult = invalid\nsig = 47004cf187bd2a34c6ed89f6f8eb9f67a401a40d66a95c8cddd98fa0faa829bbfc9e62a854788e4d23015a68f098a77cc5daac7e23c6ba56167518753187a8ead68edc686c393940f77255fc8092c4c65a01aa6901c0af96830c05747791e511c8c01da4358feb38bf5507543184fe887c5821c4af048c5082bed56c7934985d86de2402b37e16a6f3e23d5a1e838992bef2a46d4fa87971f0cb01a470e185654a6b174d9bba81117e8df24b19a7be0d1f8e3906d3029b5ad4f0d8c152375dfc4fa490f9fa3a5b52fb929a7d41a84d61bbf60d80162b16334b4958ec879bbc0098962d5d3220169c8ccb338d31c664c23144cc85bc371b2d9da61a69f0b4b658\n\n# tcId = 71\n# lonely sequence tag\nmsg = 54657374\npadding = 3023300420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 24bc364503e9aa28177f9fe7ebda884cbe9494a6b589b0db875541174cb1ceb60f514b74838a0df3bfa8e59b06e4ff83e4a4e336b41761da705b5ff9c0fb36e522cd50ead114067f58b100d6868581b69ead695a5c4b15198c5ae35d67e5181335590ec176af6eea69dce2a69e87d9f4a03f351bdad1c0c80dd1d27b75cc7bfb6acc7c25bdd87d0233ae4ab186f1b11ede86139954d9e886b910c3030d372f8900645b8e17b08e61cd64e520b882203b57723f00e96a6698fd65e7d99664351cb797ed2ed67901475169d47cd64fedfcfb6b67df5fa5d7c5ba53d65dd86d26d899df5aa6811c53a3a28fecb72df39e0eef50053d674d521acedbf6cd17ac2108\n\n# tcId = 72\n# appending 0's to sequence\nmsg = 54657374\npadding = 3033300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = b6a1d94b0ebd824f6b5a95f6697af65995eb388f3ae12c87399accdc639cf5b7e71bcf436feaaf8bac9f3234d0f429ab1b0c081f71340ecd727d9b94c66fad1fa070c4b80350eeb55878ba427e4acc5762597039fe1ef92ce29aa9919607045ed76326744b0e361cefa24a24725af612b40febc4f8293d4ca9faae0d19f1f2dbb5c4f0d27f92eba41457b39f9cb2c75695834992c326d5e39f56adfbdafad08589a5d4aed79f0abd8af3e056558afca803e6d75da2379a0cc52168f88e88a2c14abff048ee8174c0e2f31854d6687b7097d0f3352fea3a02dcfcccbece2819d4b5e1c97f93857151aaef70cde099a7226fa39f89a8c92e08de354fa80744dbae\n\n# tcId = 73\n# appending 0's to sequence\nmsg = 54657374\npadding = 3033300f0609608648016503040201050000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 32fdb9a7898c2281cf10104e74adf455a4553ba47e96bcaca5671c9ed13180140cc8556d7a429319079622e352f5f364193ce54528a3d3906628fa8945b9050f1365e99a58dfbe50572dea466cd9dc96d2c773cf35c5f1e51a6d2da23a5631bf4aeff50019e1542cac38e71ad2a1580c24865c8f65217e330415df95f83f1a29a41e4a20f63ee1f06a3ab10ed2f10994291f8d7c80032adca004094dad4b2d33203c09b134dfd5ce9ae577f8b7edc7637046d5c59036362ffc283a7c297641d6d7a36a95843661266289365e021a393d80459e5c63cb71e504661c814d8cdaef3d5cdc0ea2f95be650a0e14af9fd560acee1728fc46f5253557e8eda487e4659\n\n# tcId = 74\n# prepending 0's to sequence\nmsg = 54657374\npadding = 30330000300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6dde567bbdcef450502b9c76daa040d2ab0cbbbc79533c5576287ceaf79aeaf587c58ce90974d555f4d7bd099abb90d61a25a6c064b58826fad6eafde247457564f8183ce79f7881bb2ceecc830c8891c35704ec66694574838c14287024eec643d7dcca4c4990b616c8fa98b0f97f914230e786a102a4e2ecb926ec89f40c69b39b54ed8890fc08edbe50f338c909b7b6c816a44010addbe65b527734e0502c59aaf8bb7e108999c540a023b60a9227ec052348b01bb1bd5ce7b7580b18f40b5f39b556bcb560ced438c84b2e8e67eeadf4837340d7c913afb7e0ed7fdbb2c58e3d9a71ccc59ebd8a63a80a8049bd9df49b164219fd87f345e1da34a929546c\n\n# tcId = 75\n# prepending 0's to sequence\nmsg = 54657374\npadding = 3033300f0000060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 97c4a36c30fc317a6c1f712fccbd699f3de5a7420efdabf17edfefd790b90e20afc914d7e0aa34dbabf736db460eb697abc285f029d784b2b394d689e1a383af8a51f153b4bb77e199441ce622e6d146a842244f35d5eb3d410dc78c2c85dc73c570f848063de0445871e7210207b02144f461b7105b3a74ea3caf25412eb92d1058f18e9afac51006e859da988c733293d1e64164b733936d563c4edd8e81f57b4c463934ede932cc93237bd26fa0f86c5745d804722f8b837b19e50d415889d58fbc78bfd4eb35ea5dece233638689c11d212c47a1e1bc0b733eff107ec9dcc90a7a7395e06785e75973e0d4a20dc0c562405886c9603daaa20f6763fb9f7f\n\n# tcId = 76\n# appending unused 0's to sequence\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = 2fbc69383978c97e1075a9d8f9ad1e01dfc6fdef216b381ae5349f005617c739e086f45ffd2cdb45318321bbe77e5a2d67fb1c6b209c81eaa2388c38b036f66575590447219b7771a92bd6c594d8190339dafaffdf2a5a8b73e0382eddb2b2f95a42fe0235042965bd530584fa9db7fafc8c14a417c84b1421c63419610ebd67d20966e1ce9406c4e938784e967ca37b9499d9df4dded8b74c55b08c6244ea8285b17d55a6c51367562563524e6a45ff7956e656a1bd46229db68398f8a0011ded00f30f6bb46c5599ea3fbffb30746b56d83b17d461b20dde2bab7303f92ad9a322e41ea9962065b9ed683f56e31a58be7177505dc35a10e6703c4628933a01\n\n# tcId = 77\n# appending unused 0's to sequence\nmsg = 54657374\npadding = 3033300d0609608648016503040201050000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 94087e73e94662f9f925abc756bdac96a520ee6d5c8baba1c8947ff9d7a22fe43aac67e91986890b83eac61de630aca7813578e65a2268d78dd25982b89aa7a9d693bd868acf156c9cbb70779bde1cf7fd304b040c428d7aa48f972f0ff0c24f4d2aa88b622e801a1e2011804f331e80d17b3d15f8410b8cb301c7ef4da7eef69089fbbb4aa05433d16e673171d881357f304cb4ba929a7ccb6690bbd6911f6f5fb7d570345719fc55a5129dc8e870a7083457cbaeb86c3cf51f0c5f605645fe40410055942bbe957d9911d84a1d423978b37ffc91eadba802443cae32f48f7d987eca24719f0e77d568f56726e24e3d85b1a1d13a0bcf0c72f0424650ce50c7\n\n# tcId = 78\n# appending null value to sequence\nmsg = 54657374\npadding = 3033300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250500\nresult = invalid\nsig = 46ebaddd8f38c7acc4f2874a34dbabf6596e42b8f62313d12f9e01d16cca9968d0b73a5407ac15cb3ffb232b925acad2d5b29b7ac1907e294cba0107d9b0fe46f728695f3be72df258e504771ae356ca180cae5bfce3e67b2de72f8d7d13c63772810162132a2d512c041fdfd49b2bed59942ad0aa9c11d192292f945a36f6ff267c5ddba7dbef67645efaa8e8455957dcf6723e4d1df6e5e3fd60a43bff3d1549d0c89906b4ece2a1cda030c7ad644748610182f92ae01b65e2ea9b006af277ae685c4690827091346e1f2169a7dd93a520fe4123612e8960fbfe3367583b50be4f3acaa5f07ad9705a48640e828f797d37e58fccfbc9c39b9989e7b5a5f827\n\n# tcId = 79\n# appending null value to sequence\nmsg = 54657374\npadding = 3033300f0609608648016503040201050005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a4782205277bafd94e1b611942552b9d6171a15b171f75c3d13459c6d813302941d1ff03536b76508f333ea3736dff38a0ef61dea1e83cd81433c683ad4568365617f603a13e1fcc2813b08915eb681140bf52d4f10ca4e9d95811494ff3f2ce5c27d3a6f43f21375a8bf5b70291b57b24b18a99b38132cc002cfe5396e7d3ce5bcde6f", - "d82ccea835e1ced230effa174a1b8b02544222d9e3ef6ea13433c2f2847bce7c4c55320c849fe9a21f558d3c2205a550b4d04b3bc49f79e4f471c44d4d8a34eb674cbf5762089494ca4d7d8528d61098ddd543bdeb9556247e3821d91954bf493edd6888c1dd23a9d06c44d0faea21f146d0f1a310a8700d66b4093e5\n\n# tcId = 80\n# including garbage\nmsg = 54657374\npadding = 30364981773031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 67fcd94d1573d0712a7da64cb211d9049b3dd043b2b17cd97662f837226379c1c94022bbd5d82d1c67597f510f15959033b63bad63fde6c6f972b60337f52aa45e34f826da9a9040ecc6c268179dd1d10794edbf5690bf834a6a26d07023ad99794e71b675a8c6b202234ae9fcdf43b04dc9c933aed66222154ba7c2fb324b6a6bf9c4eb0535807eff2016b44002a3557564559141a34719b142245fcfb3737166ed7f83227d257f5accc579d20f4fd0debbd2ebf7fe4c8680847aaf17514dea444caf74dd0fc67dd07b9067ec16093d7b21db72a82a35af2b71b0c214136af03ac411b14bdb5a9ab2b3b603becb1fd808dc36a9065c744faae07f18b8d71195\n\n# tcId = 81\n# including garbage\nmsg = 54657374\npadding = 303525003031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6895daf9824474538545d9e1c7288bbc938bfa56cd6ebcd639a897f45624ea7f409c2fedb2ad09cc98143c461262f22f9646e26aad9325af0063024e29bf63b2807c41d615ea8902de10357c747b37e8264d55f48bfe8cefdfe19ac93d251634453c4a0c00dd9a0795c3195d047256abcfec964cdeb3ebd663ad29c457c307e0d05bad643a160e343b516da6a015193cbd2b28b7eeebac2f1a2156c2e62d85f4883ddef31011628d680d4d608e5074574459d6dce4bb623d059ffd39e6956f7243382165fda42cf1064a1bbad91ef5d0a0906785cb8c78ee641a3a4c9afc2030ee4188b32ef2dba42dd6ef5c86e43a9e413303c5ae978b41e74f646ae5185c35\n\n# tcId = 82\n# including garbage\nmsg = 54657374\npadding = 30333031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250004deadbeef\nresult = invalid\nsig = a6a996451e9217ea6c0ea0aa0cb6442620847d85a8c2e9e8464d929e91b5e8fae333cdb81678fb7f90285f8a4e77f6e249ba2c342cf5603df2224df31bd9fd74a244f51b639c5f0ddb85c51eae877426ea611cd8e01082e783604c38c7dfa882d3c5b4c4ae59237a9bdba51f1627dae88e9773ccb94abc6113217163ae11e6590abb26038f651335cc6dacd5db4436b1550a37dda9258919cec2c72b78c9bd4205fb3776e7e785f85518b4d2e0529903b39a49486aed55b6622465d4ca581a71c86c40ec96e2300fcd438ebd5dacaf8c585411d8978ddb8d040f4cedf48969791ed638eb5666cf9a77b0b27e1a572447e3b0005337af99d2e5dbeb96bbe06971\n\n# tcId = 83\n# including garbage\nmsg = 54657374\npadding = 30363012498177300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4e1280bb478bb46f4e9f49a455bfa382b4231eba33ab8d7861d852d2a0aab225f08635b73c3602021c0d5aba603b09b13c4b1ecc53f702d21e225da737e87b5820d628277254ae6d244c02068f2bb0dc532e7ed04e72296340d2241f0cf508f7a96f3683614478dad9923610f9cd285d2bbfa98ba86e2aefe49a52dad162a36fa2a763ca4a09c1afd3ab86de4986ad0e29150f070dc9f5330c62d1da6c2b494f2d8d97caefdb508fd468d121a7ed36ca9c1d7612d386e2974fc12f3f701577cee82b13098410cf65fd9619151f2f69e0cbdac7d3838d94345b5d3059fdda42e527dcc2200193789b347f90a273b06106abd0f6fa79de26086751d0289ce4766d\n\n# tcId = 84\n# including garbage\nmsg = 54657374\npadding = 303530112500300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 09691e7bb6a322e91962d6868e380fe98ced520bf556cd085fb8e8d41efe7ba220a67a13bd72c7fefed3e1d4500e055398b29dec57d0a4eaee6e1016ff7c65b837fee29962fda0d65186bd317dad959dbef96ed34e2c89ac2b5841995b2d78d14945ecf01e632c19325dc77fb879988c7ec2f6924abc8eb0a6933bf091617add696c186aff6bb811042862cabba547ee91b8000e92fcaba7edfdbd1bd03b3d6bf5c2b5d7fc77f2c0adbc398de8995e8bd1c4040a73e5490372bf75a33f111666ce9d69b0f61c9a01cc541b4c0e6a902988ae3f876c0a0029d2f0741523a49c12034d572c6dae9b5d170208f0ffee12be344288a3c53519388dbc20d86066f5f4\n\n# tcId = 85\n# including garbage\nmsg = 54657374\npadding = 3039300f300d060960864801650304020105000004deadbeef0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 128bf8c66a90e5267f7aa9c89b8713ce22c118845c5cb9b579d29287ce720c747608b68fbfca40747178e1dda3cdc3921fed5ccbfae5d976d286e9382fbcef3026eb988d537bfc9a67470094f8ae30e4da19fca114e6626811c3b355d104ab1f921c3ed8abff6148e817f5c9f21d270b2ac8983c6acdbf789ad54f32aaf9773f0b2570e810058b0f9f12b523cc763975884d13902580cd4f9981ccfbc84fb18f6a9670876c3a120b6907211b003b035a1846cedcd7a414dee37cd77b16c89ad22035c3754b098049ba72b78259c333bf88609184571955c74974083dfcf5d70d940bfd64a6c575fc52b3b8ed5571519961f2356b7bff6a127128103ba24c5142\n\n# tcId = 86\n# including garbage\nmsg = 54657374\npadding = 30363012260e498177060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1901af3da39f5eaa20edd6002255b5977d3285f99a2bad2c4d7a57899e8b19d89da3bc5e418b39b744138a0a60dacd84542922f208b0e7fb0e1ab7b47891aa9b95921a46d2de54687cb2a79b3a7f3a640c2b21a139ad7f8a456faa22c16f27308ef95ffc92fa9b70e5feb0e317de4bb5b0a1558af98d177c097dffd7ab42eb8520935fa87512fd6f0172645631cee29187227fe01bd49dd0f6a28d2033276d696e0631ec2da88f7f1128a7a9acffda408ab10c26cfd6a3bfdbe4e9afc93001deea66d443137936d65bf31ca0a940e25c72b2f8c3cb7f3bce957539136cc7af0e6e5a4f9d8dc0b5fc656952d225ac9612072d037c07f9909261c02934caf542b8\n\n# tcId = 87\n# including garbage\nmsg = 54657374\npadding = 30353011260d2500060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1ba99c4dffe02d72a6a5abc06d7aeeb7478aa057d8752ba59f72165e12e740160931f6419b1cd5a0cce4871ea974453f821cc43a0bbd7f541f4320fded5ed89c1abcf32806c13aabbad83c09173a2f8dd1fc15fdea66e9ecae0f92c376ea6ff1c2ffaaba304f74425e3f2df4a6436b5b1bb15035cc44466c240a2a2fb41d275ea8751136686d69adc53373a0eda516148aded67f8fb22d0985f92b6fcf236e7782687ac95cf5ff0104ee3de37523cf6faa1c5b428489e11a115f502fcf56567ba18e3e39830c6653bd29abf86b3b842bd1f24928277f1b3fca68a525243fe1bfe085307802803378d9854cc0f90318c79b79a4e939de2730a08269077fafe57f\n\n# tcId = 88\n# including garbage\nmsg = 54657374\npadding = 30393015260b06096086480165030402010004deadbeef05000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 89476619f367778d5252add21e8a22395c44e2bbcd5a743fcea07655c3ad3a7f4c8c2d4e871a1c0c3787763128fe21d2d270c07c8ef0aa607dc2e9697d9ffb8263b3e0c82851e0a5a884b23fc4842d60ae0eef01670f988bbce5055cd8d7e613ec8294b9ed61459486907e37ed816e7c795bab8dceca60e476d01cad4dbb1c00336003319273f85b57808b6f1c8d8d8d1f119faa4eedccf3c98cbeafff20e54e3b101c094dbed77d33c54f63932ae49f8c584d66ab61373eecb541fcb89e788a5e43f99c67f4921d63bc54a2cfef49cf4ade494d32449db5c8e0960bff24e8ffdcdd5e4a71bafd1e3753786bcf8a8388fc9b9c53f95622763394f1ef88cfee85\n\n# tcId = 89\n# including garbage\nmsg = 54657374\npadding = 303630120609608648016503040201250549817705000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8227c6081b51017a528a59ab9a2d5275ad7769fb418a2514965a9e2acb1acf807685e57fcc438187a01bb5d592bfdfcf68ea2ae3182ce349c5bc5445131e8693bcc63d6abb96881e112b0e0a9b3d85c0ba5a463e6d6035ba18cc395176ade7fdcea30abd725d6ed4ce5c3905e0d12d0cbc7622e44ee8c3d343a3e6ef046c4310ed7d12e7639436176e2a1b7faf54e1bd97d77fcbac40368013c8a2491f2c9e084ad110dff1a2621d704c8f5e8ab1654220e959fb665e6e6770da6c23a66035571d844a1dd2eae68001169bb95253d7e18dcf5c376b5a31e9ccdf7918715d281fbc027d0b2510184f2a4c454805b73aae89370cfd80b345c8ed878ad1c314a7a4\n\n# tcId = 90\n# including garbage\nmsg = 54657374\npadding = 3035301106096086480165030402012504250005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4360d9bfd89ed3c5c40290142efb667b2afff6fcf53256660409959a06c24d858b3999b2b1fbb8d9c7da7958a5a4ad9c2d9ea617c5f7edecb7ad302b0004957a979d6eba0d56fc378946fb5145429dddb6d12dc2245d4a071fe162947b67546fddd5efb1f277c9e0ffe4281572c3f6ccc9ca5d19c8c1284a5b2816b529a54c02e9acad68fcc71a5d274cad33cee0c2826d0491eadb1e4d0f05776aa02f00fc702b50927d333c2cd9ba753b3e70c26461a0c6d374a20fa6a006ef77a630ffaef2bba01f4bab3314f7f110c4b9c56aac18ce9fac6ffcef3fc140afcc0adda45473e241d592fbae6014f701fc58bbf655b519d2315630c4827e6e16d9f24e9f9407\n\n# tcId = 91\n# including garbage\nmsg = 54657374\npadding = 303930150609608648016503040201250205000004deadbeef0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d6", - "82299550d7a6e0f345e25\nresult = invalid\nsig = b0939c12151b60d2302513c5901647b0800a5fdd45ee42009828610a83b017a32ce042db7257f17f5504b3347c7b482499d3547282cab6d35360b88b88bf57f0b6f7051452f309a324be5792ff00c0057fe3936a9d584ddbf64b8590ee3dbd04961aeb0fc11598a4bdbb92453b3c646e55bfba321d1d21b5ff883a8e7b22afbd66de6a273cd3e4bc5d857af6c55198358f22a54fff26a903e9fbc3af78ee158dbf9a546dee4b5c77c33980619eabf13dfc72007acd263ea2cfa3f4a89f97b48ca684a1be77925e051184387fb0b8d7ac4063aa84d63b8846932d220f5052eb91debde89aeb6533903fcd01a53e12048990b506773239c83e891667dfcfda3076\n\n# tcId = 92\n# including garbage\nmsg = 54657374\npadding = 3036300d0609608648016503040201050024254981770420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8a439878c5c694fb16b51bf584c67cea27287e51e5b259efcd62e8ef1c7441555e788e66bbaf0f508440370cf04e87b9474cf0aefd15a7150fadb809ab4bd981036d906cd3bd6eafada91632123de1c38aa486c9d6117e6a1b57099a8fbd78848c7ea47be3125c866151a8d46a3bc0d8020b34915ba17f3d835e641bd797b1e55ff44fffef98a4820063434229315035165196377dff2c5f50b7475c835729bdce9b63d120bfe27d5606fb051c7c946a0512092e08ca7e800abc734e0d8234262ab56037ffb2e8ab3099d1fc11a202bdaf4c7e322995ccdd5efc18c234e1b6139d84d0193dd27751e0db9d077aec1bc23f978d2127fde875e1ed7c992a82d051\n\n# tcId = 93\n# including garbage\nmsg = 54657374\npadding = 3035300d06096086480165030402010500242425000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b95dd2dafad0610015fcfe7d8b5c83c34a76dcefe627c513011d953cb2238ef20273feb8b8672475fbda75112c85340e7ab08fac809b6e2b4d314110866e61abe8d15d02f64952036525b0069f2cbf61042a39810d37b7860fb6eb1c423aac7311fe7bc98d6880954055a9ba7d7a1bfb4e45255f4cb68babe6bfcee6da47ba18d95b4954c3374176782f841b85fa6e773f58c5d56fa85f85a4d8c7b8c6412ae83e26b3fae582c3090a9fc6d2394d1a02e3864111cee49ada14e5e625da3650608bde5a5bbc0b99a46095fbd7c01d87dd6c83819c13825bff3a62cf893af31d03f44875388a4f8e83b7a7f360227182b26dce8b310b389e2c672016a166f71557\n\n# tcId = 94\n# including garbage\nmsg = 54657374\npadding = 3039300d0609608648016503040201050024220420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250004deadbeef\nresult = invalid\nsig = b4fbe49100d4f15bea29586e58d27cdea5270a035432d89b245e7a323cfc19f77afb4f2652caa2afb3acf712746710e837ee932e9d315ae21732c164835fcd77f8498109ef05704b081df7f0a5566f8c176e5031b184ea6aa7c590b0eddc6037d642f463f41f61c00f4b12d0b4bb7924b9caef831961857854ba53521f2b9da0210cb38132b46892ec7d44bca599c5efa9029eca8f1663ec301fd064df65f9fc35f14ffae2a3794a3e1519ab077cc761368014acd84989e690449b95c5c8c59e4fbfe260c64ff044be245c33b4fdf2f44c87ecc6510b524927a296a1f32cf57024f07a8609ebd164139ebc129b5eabcb0a84f24048673b7c9ecf89e24099121f\n\n# tcId = 95\n# including undefined tags\nmsg = 54657374\npadding = 3039aa00bb00cd003031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 963142f737aa6b8eac11c6e52dc02b3ea881f4a1a29dc672b8392f4eabf487d9296c0cfb3acbc6d56c1b4eb4378b6f118e6e754d2a16ebf20e9b66f7961d7af4e1a8deb9e4d089d540496c0ea89cb2cfff8220bc7c5bc7ffb8a002d549900d773d00a7cfbfb9499523f353a1dfbfdc9e28054bdb69c64d2bce0e172b586f6ba615e1af9c822280324b1b9db915a50fd0658083eff495f1721eab30d3be3ee276d33c3177aec8fd5dbfd9689195e7a944108ec8e734d524a27e9bc67fd8ade717c234627e2fa25279bb216fecf1f79e1d724e65b10614f334c161f2a2cc50db7113f9dc1c73bca1c67c41f6f77f80c3950d4d4e1252b64300264473cc904b0e61\n\n# tcId = 96\n# including undefined tags\nmsg = 54657374\npadding = 3037aa02aabb3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3d1ba856ee722aafa5bb68d8b2901c95dd1ddf22559f05b70aa3e92afdac040e08819db5417cb8f551cfea76e622a2aabde7863c183d41c23f4690da5983c29db4e0d603d349086aced24d33695a788c617348ada9f68baee069c0dcc43d671382158c70f0f91134aa4d2bca45e1e5a106710025240d496d79c3e6bd70e15f5a4d732b37d53f400aeaa0dd49cfb24fb7af9811cfceb185c697d70c61ff454672128a0fefc6dd776befb87ff0c7f248373a17f8d2a08f138aaaa986182c084178103897fa8ad0e921ffaedd7e650637cc0c09a185eec68413e75a6f80c9fa2cba46f328b00d2f3e414f670be8056a77810240eebba03e923c01c096fadef1cfaa\n\n# tcId = 97\n# including undefined tags\nmsg = 54657374\npadding = 30393015aa00bb00cd00300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 582b5c38000b069573bec33ebe6d4cdd9e250affdc8b4c17937afa464d107f41bf3ea182b86ec8143c9ce977ba2caa3d5656323d4744556f7bc85ed4054d2ca170d35e8958bbd299aed1bd983a7ceeadb2454bf3f5c19d1e3d98785d644585a1ad3a914cd40401d587f18da2c05bf2a9394902254914ddd4d2ec216bf791d87a8e8cfe6518d9e7520d080376cc35cf5b8cc92995f1e825bd5260f19b0185fa9340f1b15d6c7e0d0533268f8e269295de143449ffe15cf03a0036b17899bd18cc48ac7f18bf270f0949b659dbcea7651634da97e27a2ee1da78b10ca674e5c38475a7ecd654e051161c95fea16c5bd8aca95773bbf18f7f2abff4912bfa46e388\n\n# tcId = 98\n# including undefined tags\nmsg = 54657374\npadding = 30373013aa02aabb300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3ae33c56969f5a2b11e0a29698e60962db13458531739d56a4d30379aca857b0d33d48a111865a010a6a6942a64bfb2df5dc3f859f2134b7ca6a9b48093187f3554047a95d22c5d013ee4f5a65ece677229b6bb830d5e33d8bcd749c63d5ff41c1d48e6de89c4ef43048d8be79ab7b547ce1e5731a4a5fa0f71df485e514978dc34cc297a34215e519b944b59d3762b71a5c885fda79481a886b5b587bff0e604d2cc1a02f506f1e9353d3811b154506586af833bb42192ddaf4c78a1f01f65999ea602f79de8f55e987c5bd63f01f27de24361df86173f3d4a2020b440f32fbded2dc62bafb7f77c5b1bddf4b774a820d45d98076bc456aadab3e6b55a50568\n\n# tcId = 99\n# including undefined tags\nmsg = 54657374\npadding = 303930152611aa00bb00cd00060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 86cc2f6da999d54a27f1d573b192e01350cee91adec8f9a02b67b1528dfab632160fa962bcba95594dc342840cb4fdccc3698cd4e186c005c68d342432e5e7ea8019469becdb33a76f806504c26e619a17d8de1b79474f669e91e0bd07b31444e53cbb525b0f47ec438391a3587912805c485dd2909e14d8289310312a7616cbd3465c2922a00c5afe88a89d3807c614bac7c5b9697e8902bec0a2fd9e466eeb932b668f6e643a8109292ef8bdfbca19459715dc569f3f12b90faf1f31d7f8506cad98bc4742b47ff0f8f1de840e10e62afb66e93df34d43a2dfeb3346fb3e0e19402235e00c4805bf6f5dc6bb10a1406d8eaaaccdfd118cce8d1a62eaa4a97e\n\n# tcId = 100\n# including undefined tags\nmsg = 54657374\npadding = 30373013260faa02aabb060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 18d77b56276d2a2960630b730edde16b0a26b6c65b28fa20ad7982b8b48d1de6038a940f8c543d7fb71181ea2feb85592f608b20bb93ac7c06ce725026f39c645c7f964a14d68ea53de398cb64cd0a26262ed6fd5091332f8b437b71e98ec59122abeb7a27259130b203a81da5577fb0590e2d6842e22e943256c0093d143f58c023e719df92454a979bd76d08c550de11dbf7085afce1581c31a2214752548af5913485c00b7466a1cdfc60e7d857a913694fbc2fca13d77fc5b775f7adaa79668a5afe0b743f13bed6078006e6b7b16ee6ec576554aa2e864f77b43e4e61786780085edf3c6e8deebfcdc057a1de8d8d7d8a6b188a8c771e347365d25240f6\n\n# tcId = 101\n# including undefined tags\nmsg = 54657374\npadding = 3039301506096086480165030402012508aa00bb00cd0005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a2066d53103e4d5ed9c08d7dbc8be145d932bac9d6363a146784fbe172ad2e02216cabce279b3599b5f3858e7179561e3c489b87f47f33d266cb019b747ec49d3dc1069cb078419f6dbe7dbf640500cd110a93e54f2bad919e60cda6401f7d88e52b9017b7675f082ac349e4fa4e49b0a0c6006d2821382fdd00fa0b9d4e948db23c1a4d3d658ea857ad829aa7a3474e0f8f86520970edbdb3035ed195f039c807f8613cf333a13a14c22f1a5e4b77ebb0db9c98c35f33b19c914801f4aa4459af043a39ec5e016af1602bb795bf2c3655c9f9e30ee2f49c6e059d0d616eb7bf7c9650581ab0f29d1e2d1fb06b4d78dbd06f0d3155494a6f3d7730f55a03c1a6\n\n# tcId = 102\n# including undefined tags\nmsg = 54657374\npadding = 3037301306096086480165030402012506aa02aabb05000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b1f2b2ceac435cb3c650e8214ed70a87ea039da7c6730ea29958c375c85d88459065a8987dcf66b93e732ae5b92af964e7341eceac3c252b93c62b2474b54a9477053491179986eea94820ed6ea58edc7e758177c1d150aca2531651963272231f98daaf1b90e7b61a02c7e61b25f9b7c33d7f57d846284699a924d11c45995c9b85bc3192f349af5e6", - "69d893eda953272516c1a86764f46ccc17569880ccee30bcd607a21c306f84abf4b6a5fe6839ba00b73b2df062b1d9d7285c4f3b7412b8ab5f68130000c95761a587818811e4632d209f34c4a8c9e13e78358a37b696cb444ff022bb1508c299a6eddce1f8961bee97c5eaf29267d6ff4f6ef9e30061d\n\n# tcId = 103\n# including undefined tags\nmsg = 54657374\npadding = 3039300d060960864801650304020105002428aa00bb00cd000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 012e5e56d0e1bc77798b42190ac5a15665cd5f2fc1257c66553d8d00acbe85cd2b42e56f344099da06024c5578851c3463d86d00f7c43c4c959569e2a0657840305b655f4607bde3e44ee1ade5a40162544c9e81a94612d600c069f3073c3e9710cb4006aa5e4a8b9083c4cc4f18fb2fbc3343075c8eb8f7d8b7595532d52301944cc79054512141bdce292d339f85008161af499002dee163d01eb8211e6115e637b7d3ad074507e8492f1a524e39e1a5151802b44b74e1c78dce275825a67d3945e80e73c605ea44328d10a16a99f4960e8f83ca5c01c277beb245f4d0758bbafe969dcb497915d787d760673c86755c1ac38e06e530d24e54b4dc90b67e25\n\n# tcId = 104\n# including undefined tags\nmsg = 54657374\npadding = 3037300d060960864801650304020105002426aa02aabb0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 51f6196459dff03d29f6fd4c7477faaa392cdb0b2541056b94484fb8a266c1490e97d90050843010629f7eb61c3671daf8fb5344eca91dada6c2408d3ae9d6a66fd74c725ded0a4470027d13a09402f0d965a6177ebbf0c24ce66cc463892ad282ae07c0231b394725ba8f14705f4cb860495b2df5bbf143e3e48bebfa3503f6bd2bb56f4b5b589e5be883a0fc2249b6b59d6dca99e13b14868df7aa7fde62b4ef75bc6f2e90c18685922be7335d4d3f55eb629e2873d66305e434180701b805f832be5f5757117543ae00141d49d094d37e66091fa4a0b06c630156f99bf2a42d7f9315b9e4e2bc66883b9a83e1bd83fe9904642f66b19b40ac0c0a9ad27aef\n\n# tcId = 105\n# truncated length of sequence\nmsg = 54657374\npadding = 3081\nresult = invalid\nsig = 7f8104fe5b383a7745e52b6eb6cd2404abd1d6e5ec4255424fe802ebe76b70594c3f5e8a38959ae9e72076de7ee5a485636cd59e51e9270ad5ee38af4c5b295855d86efebb2678a66b6fd0328479b1b75461b9eac59e71ed9441cf972af074f20320d5c01d93feb037cd212f5c9774ba65754a003f1380ee0c77d3f7fdaf753adc1f7912ecbaf801959d2a70ebb5c24a68ff725ff8f9901a712ec338d3a798294ea0f10fefbce5a99bebfbef2ed91f6668d8e25b676731d9595d679b8a7e8c35c918ff0bc6b080f0f0a187f526b55b450d069bc0d4b47c59f7bbc58ac3af21180ebd6707d7237c967454e459b696842d41841d02b4c34fc964677b0116a22879\n\n# tcId = 106\n# truncated length of sequence\nmsg = 54657374\npadding = 302430810420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 9bf8795b877ed9a89e70af142e44cffdc770cd2ddee32ecf32b962840dc26406b1449f03ab16c7c9c72e41e2ab24bbd163d2b7213ff7ea8ccff463cd41ab87a39232383a6405911fc9bf33ea82fa9fee0954912afad0b50d80a70a52cb043f5d8fef8f80249f4d2a8a1f47d524bbfe9678ffd3a3c9d307d9c61a909478cf87d45001d66f5786a7d22d8069884c3248a3e5f223d6988e6c595009cfe24947a564f43964a1ac7d4319a446e7491230a3814bfdb80ab2227a2029a36b13da4a584c7cfccb337bdac86b5f727169596bf6a53467c06eb94b7d168624847df7679f27877f43954c4593cc4e28951dfbaf4727e3728cc9b9a59efa92c3249a4e796f33\n\n# tcId = 107\n# using composition with indefinite length\nmsg = 54657374\npadding = 30803031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = 48e200aab82c1d2798b90dc2ddc522ad5d638699b2349b26596a58aaaf7d14f90f52f44a320fc424ae2ef781dbe5ac12de05b85a02866895329f36b1f2e8c78b5a8161ccde69de9c112682331363398659f832544c7848806a3f2076a3127a9b4813e6d5c8ef31bf7a102b136fd5f9b3675c5e8ea7df25bd9b8df6cc46e9134b5aa185c13e40c935add77fbe1c1853ca8dd28fbb53942e7965a44d9694b96dba9ddcd8396d7b191c7b385629e6c391242ec76a916cf038cad4f5239a4c17816a39deefb43ceecd31fae33d3afe50edd8086dd501f6b72ef43f21ea1858dd46ad56ed63402bb92ab06b85a0d17fed8d9028b22f528a9544b8827dced2c778d082\n\n# tcId = 108\n# using composition with indefinite length\nmsg = 54657374\npadding = 30353080300d0609608648016503040201050000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4323f6998549f0c6d79dd67cbdbea827da1ed45026bc16ee020d42b1d448a66810677b3f0278c20213a3949b204a773b533e5e203f2eb48b936b01ce5b151c32be13f89c1f56b20b44d5987e1d7220c67d07578f8af642b6d504e1fb11bf1657203eef4f9882488f68ef830be437a3ef948def0a6b34715056926504439262cd5e971a91ec5b2948498fcdd5fcb1e4b4f5ba04ee2631546a5454f28304a07c5c14d01a75322bbd764cc452aa9042bb03a466b0c62a8bf945b85c63b6726f378a72555108d27029268706976de496f7098d093a3a542db8fd5aeb805ef3b547267234271124e9e267f27a9525bf224e3f5d33b67a64436d65cdcee729bbf28897\n\n# tcId = 109\n# using composition with indefinite length\nmsg = 54657374\npadding = 3035301126800609608648016503040201000005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 225c4bec4924b6aec5e2524258edc63007b35b37faf9c735959c9f932f982f5d5434fe0f11deed690f9a023337a20dbedd42921f2a019ad6ff033ffd297e8225269bb6a83bc2fe8e08b7d0b9af492917bd3d0cc7e3c7bc213e0be8401ddd2e4b5c1687ab6da434ca3870f0ed3c2c1b08a00b9f52715d2efe0f4e4097510395a087b5bf389471bbce2e85814a43f10d68d8d77398b3b3fbf196cfc35f6eee8b21117fd6c0d317674a6f89b2f7635c7b5a91301b6e64578fbbfa327fefd9d8e4c992bb88a23f8561298c60a075c4f29fd737387349037c1cc360238dfe4e2c3bb6da805da25feb9466923e00242dacae167b40c4c4d5f4473e22adb0851162f7d4\n\n# tcId = 110\n# using composition with indefinite length\nmsg = 54657374\npadding = 3035301106096086480165030402012580050000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1e416fa2194a2297866cd7df7d4db6477bd71e2b2159313204dcdfbfc69ec84f826f01e35e4ce6bbf43c8377f34e7d4bc9c339d20307ba6391c2091698885480a776628addb3ad0f5a7fbcf944ef41fc2ea9ab078ed8ea62ef4ddd1067d8863d61c1b52534d51b2473a11208d260460008da01f8c88540a594b3eb6c2145472efc20770342f2e17bd2a0025fa2b8d820b8d5fb41eb6025ff990b054f741a8f716f354b18064902e208648b9e3eb312f2917782c0db5c8ef49ac0707a82f71182e8a21daa75d36e0d4938cee289742a3463133082faec3fca8979372957486d5410b90de7e232818b839882b513da01b4cb9fc59c0da62b70ac5a4de1ebbee89b\n\n# tcId = 111\n# using composition with indefinite length\nmsg = 54657374\npadding = 3035300d0609608648016503040201050024800420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = 9801706c663bfa15fe7877c8d09f58d4664d3619471c27d333ca869536a6c4f4e816c905b2596c71a4ab3bcf07b550ccee0e8ffd5f7a9fab3afb5b8bf76f8e118b7d07170ab6f82e7e33db4a81f2f9ef1f86d04a1b2fc141768d9b4e44792ff9ed882032ad5578560d51c7ab2fa96128fd147bc260d05074ef42846db7c8feb7ea71ec6755efc554e46ad4c9dc77c259aa834fea03ccb9b931c7d3c8b0316e30d25346b682df91a6bf68c6266723ffc77576abf8a732ce1a7368b71d740677c28029d2854797fd515278d884f4eb0806f21752207b103de1e19d357e480021d3e28ba9461b6895b777f1b6a9e08bd4cf713cc41f4e9a5bd7071921a614f0c3fb\n\n# tcId = 112\n# using composition with wrong tag\nmsg = 54657374\npadding = 30803131300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = 71c756c9def03a24fed38e597b1925905783f0b25c974602d982c1e7413e7bd82c78466df5decf09100b924ff254ef01b2bd425b2e0ade75ee4ec58aec4f3da80030eff25601f3ebfec46452e01cf51ecc6c0d2268f754795486f7886b8dc181c96f6fe4dda05a2b54e6fba77869fe347c2eea5b42081d2140cb9fa7a6bf023a6b9f806bef65038aa680fa6ab6263d756d3cc7acdbb93ab3952998b2cb37aab72a50657e276d70dbac6be84526c17c5c1790f0a1eb0dc0644e6c47510d3704fbe9e10c8509419f6c49656e06f7bdc4637891afebd376f1e1be139a87b2eec9063dcd815a17a08f63e2a4e9f9da822cd0cb5539c4623da6d279ffece0b8e58f86\n\n# tcId = 113\n# using composition with wrong tag\nmsg = 54657374\npadding = 30353080310d0609608648016503040201050000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 50d70adc01b502dee439ae57f59ec78608d05820f858a6f0e9271a4372b47042613aef6ec2f36da7dea07dfae4c84f57435980b4982348e2d33c4df6c3384accd7c7e3892184a3778943ef50477b906c2890b5c93322c065315b960be0ead30bfa496960d53a4dcc08c8df158ac5090c10c395d18cb33c8faadb7b8d6bab8fb9997e017d5c12789c1ef0b285761d2e43fbd5b4313726cfc85061f9ae33e3da0addbd86e267fef72b966ad5286220b2da94bc1b667016bece0111dbd2ee4943d9d0fd041b666d93bb3dab53e16995d6b10d1a3b4aa07be08dcae8f0f5cc03c6b9c3419d5ff8268103a850c2f2043842637f54468aed58aea06d6f2dbb965a3208\n\n# tcId = 114\n# using composition with wrong tag\nmsg = 54657374\npadding = 3035301126800709608648016503040201000005000420532eaabd9574880", - "dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b96e8894734529229c0830d77834f5a07060c22186c2cbc7c0fdbaf405b466fb9727694a527acf3ad0a35223254efe854789375311ffb6ea35d1335216d7b8fb215241cd3dbbc90dd569c0ae8979d9c0a2dfede3988c85e18756835734d45974dd50aaf649c1b9635f0c53dae4e44b0d2315897ee248998f6efaaeafe72a41f2f13a1271500bd6f9be8ef84421f443e68488a3eb40604cd4f28f7e9cefb539c8c5e87de966017d9ab0a3f01275fe25677c0049c0fcd7ff5799b4b96cc0490bc4199da554daaed28ae235dbd3104f9f2462468facc932da3bf2e5822a8159d6e8e8d9ea96ac200113a60a57f3253b8e05f3f0e8e040fe3a55b1a8ba749d5d5ef3\n\n# tcId = 115\n# using composition with wrong tag\nmsg = 54657374\npadding = 3035301106096086480165030402012580040000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1b640c511649dcb0d23df1fd808a340415cb87bf3b15ff5e19cb6ced922fcfb4ee376d6dee61df8aaca7e108c8a0868c8a2e99db2c0e769c80b7e5adc3bb4cd4da70f7fa68933470aa61d50a793702a49d3dc635670fa77f2dc282e28f4a74aaf5a76c9383b093e529ffde33e3f8f947719c5aa2680b1ed4a4c07a72189e03cc0528a814a6ccc7cbcb4148667c9170c882ecd4bd6cc8dee957b9f334e8e5316fc4041ccd6b422cf658ca6cca6f27972f818ab2f0defdf35ff5e4dd87de52d6a1d2cbda5f7649a13d83f989d208d95b076a1984b548b71232325469d111a8dd0b508e4affeb2f6dd42c90f4cd1e10dfc4e896e483bd9e96c3e951a51519a19486\n\n# tcId = 116\n# using composition with wrong tag\nmsg = 54657374\npadding = 3035300d0609608648016503040201050024800520532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = 8dfc2c2577dc3f36d36430f25f76fc01ffb2af51e1f5aa8fdafe6d42f57a0934a106d88254f834999177b204a5388543a49d638af70d52edde954fc9a6a2a0b99bc3d3e2c148058a72e2a50c1c3774dd83f151e8fecab64e1bbc6095cccafd0d1774b8b4ccd8d4b995af3e1ba9c9430fd8fff39bac43b0c6bfd051c5d20758900c9e79e11c7918af1a38523090454b2c14f01d1aa16b6d3c2d94bf4724a37c471e3bbdd710ad1f268030ad3b3fceb83e808c1cbb1d3b4d3a4de84f0a4f6f1d7765b324ebb81e1bcd08ace01a4713c6b376069114b8f0cd236f7bbbf3bea3bc583412617d97d508a511c54eb32f166dcd7f80d53a5c0c881030de35266a30dae0\n\n# tcId = 117\n# Replacing sequence with NULL\nmsg = 54657374\npadding = 0500\nresult = invalid\nsig = a43fe7407fbd017415df9e194db645a0a5744bccc05dcc89044e7b978a97090833589251d57ac70f0591ef9a787788360602624dbf50209fdf21f578f0839b9b27c9aab1bd58d2a17ab1da720fb686420fdc17f2756edbd8eed82502a1e66c3b2b90c08dd4150f6f6d0b569cdb14f7cad5f7925d9c8a1fc3f0a6092219ab6902599e018f88247f2e4edebf9050104a387de07db955bad9cd01f2b189d9a6a2ee9369bf1f6ba272449e26d4a67712a3a22947ab67de53b1a416f38e304011dd477eb33c8191d46101b17d9e835d9816f76dbc540a2d6a0ced2562325b9a21ee7c90f010c22fe7723ab4fb16197af8fcd507f61387dad1ce8ecd7a39fc84eb8da0\n\n# tcId = 118\n# Replacing sequence with NULL\nmsg = 54657374\npadding = 302405000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 852f74fc801faff2486afa44197fec789d36c1a40ea41b55d46b6fb6a5c994a9943c6d9b3d46165ab2023124271ed5fb34ea0299b205197e4d8432c1dabb40236a095c05587e885e6f8ed0e08611c2c7573c928c6ba6159541fbe6751c04486ebbe2f20ccbe8410ff39d7db6649eb46c6f0ba552f0dffcd183628e863ce2ef8f44faadf3fd94659f98517a5e8b5969aca73c32ae22c433887315ba8631f4f10cbd7a0c3204e377e7366c136986d505f1e8855f80c5f8f97b9ec76a69e9290734e80906701372e1f9fff6f22d15508e4393539dddfbc78471fd2326e7fbfcb5fde066f437171329905fc90c95eb174e9bcca53ba46b5c42b5f3f47f1e0fa4df04\n\n# tcId = 119\n# changing tag value of sequence\nmsg = 54657374\npadding = 2e31300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6ae97ba33d02719f5e4a809f5b44054331d0ec1b61c34067c6c8996d126c972df2eb48f2decf74623116e4b54401bbfc05023501e00245eb98d86aec6357697e67cdc78e0eb37c53b3ce06cd078af9bbde0206ac5d63e8a842726d4bff489e6695c6539de3bef40a4fbfc500bf932c35db6d8185ed3ae713ef6f7931b8e4a76834a6cb59c4114c230dcdefaf3b4460775650e03d3461deb3a229511bc97636341c0bbb1aad24f477c3a1658155c338d37aca1d6b5ba039f3a486535a2e2dda68e4bf1998b8931a52781e465d32596c6781612af4a6f495974c023b68a0f537fee00a32c3e499da4f8b2e4ee677b68b058f99a104dde579ac31e6ff966679cd47\n\n# tcId = 120\n# changing tag value of sequence\nmsg = 54657374\npadding = 2f31300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b00ec164825f457f144e3208dd887c0b69762a2877f62d8795ac3eca14e49988f898d3c939613caa5094e21ea361c804c8ea0c5f6a0e09e118e183441b5719ae308eb95d705046218e7dab336e53fb30a7c1ddc59cba08785ce9bda385743526e6b7bd15b3cde6bfa10f8ad4f6f20534c388d7f61dd04f34009dc4d6266f7363fcc59853f24e0ea5f9ee100f0004adf75767d95c12b30473594f67bcd5ca63cb76a4b837509901dcf0bbf5f2d109700bf04e2169cdb47ba4de1019fd595665acb114039bc75a62cc07624646fd1ac2bd71625974567a9508c512b0576ecda69a59e950802331002662dfebe08d2548968ea8939364a27e202184380cefc1796d\n\n# tcId = 121\n# changing tag value of sequence\nmsg = 54657374\npadding = 3131300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1778c178579119618a407ba834a7de8ff244d4da6ed2f979c54684dc459257e70240691ee844f745d72e64633200b800be5da738484c0258405e7319800c8128d023db5227fc2e348c426a026c3f84060a4548f0ddc2dc92be1dd42bf7a819a9e892d318eac58919a01f1ce3da9c17528af6022b2cd088144fe44c3dbba60ccc83970199b758fd49c2226f5b742668d6685dee1a5feee173aa8f4428118a18701ac503600e0704410595e8fd7208e22c161c81e108056b52da131f1f806c3bc118f934cc78b8e047c0b181ee7386d9c283a3dd251ca30a81a9b6f562b3364815ec3d247e5cab8ccdd78e0653e2067c6148b76191bb797e800f0d6e9e282409d9\n\n# tcId = 122\n# changing tag value of sequence\nmsg = 54657374\npadding = 3231300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 13b647d93816de9c2fef162f8dc37956690dd40d2124b0b7b724ddbe5c62b1242369f82851b24cf98b1b462f6f5fa40c248c02d778ed28d3ec8d2eeb1668081c691f6a3939f72345f0eb58fa02737ab0334693c6333b9e4593eacd3dcb71586623d11b5230eb624034561f3c6c7b151c1f18d3311f359a166500d78995d6ede43421058a571c639f228a804e33deb8aa06e646c7aa425a8d0ea245e4b2c2a5d48413c6ada61d195e2302577cd517876eea82b043c6741aba882242d9c97fcf7edf0d0a3ba6cf3723f5d3006790d22dcd8ec6bca701568cecc2420284e140c84d94e4bcc72861bb31d61a9dccd53857060f7f6bde1503580f2d52424afd1c0794\n\n# tcId = 123\n# changing tag value of sequence\nmsg = 54657374\npadding = ff31300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = ac52288eb0ae64f6897a5b383e9e4d734b45685fe3a75e2f5c65ad8235311a6a2fdcb5a8aec47b430a7a84efe10bac9da10786badd033089243526a4d9ea57a9e7103ca9e7dc889a9d1a4e4b86deb34ebd3a5b454d0afa940af71422a4c4dae4e1a5bd1e4270ad32a486e2a1334db7a511f3251834d112b9696979dcb0abf8ca83f304e4e8cc6892c4dc5188e416428570f0e3e56e4b171a3ee741787384f9375019fee5cda1e161d4876e9ebb349fc1f33ded8a733bc5c7b719c0367ee44ca8212c517eaede6689e1caae2b5cfd347378efbeab78114435986f95add85e48d433074288e0cace49de21c0fec2414bed9b01274a8e8f6959fdc29648bfceee70\n\n# tcId = 124\n# changing tag value of sequence\nmsg = 54657374\npadding = 30312e0d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6b31d3f3d9c007718c2a7f9bf201ffc003581b3fca2371fc15aeba38214e51d6f72ddc632a7632ba95f79c868230c56851231a8fa178cf6cde67fc25cea8c8a811d33e451844b86fdc11c1a75b03de5084a9642490d5e9b49de50d51c93c765bb36388f1b3506a098a8a9d58f509d48e76477bdeb4ae2fdfe410c17cce011da703b47035fe2041fb82d82a158480fdc25d8e868209aec6f788e575635a7df9fa58a95919356d52a38e678a8268f3baa2af7a6efbe3af72e23eed354bd43472ef7c7a877842efbf3d9f08ef45cd562ca3ed4f903d7d4a571bdda531a00458387135e09d276729ef230297c289d9a0010d6db66c40b96d91929e685742946a4c05\n\n# tcId = 125\n# changing tag value of sequence\nmsg = 54657374\npadding = 30312f0d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b72975609463db5cfa161a7f29ca78c1e8ec6083eb055bda72fa7245d71d565af2855f175ed29dbe881e2106f90a84f3abbf7d229db8cb7be2a7d5d29cddfb16468d9f142e07d2e5f4780ab52354504743ef0cb4e32d3cc1c2e612245324afe6604004518d8fad3ea2884104ebac9eaa95e14180e86c54cb801ba9b8510bee1e2df90fc49a005b1a26ade197c63de5f1cdf8ac8a84f6c67768c0adb54ae853388de71d1643e07d8bb083166efd077251cbcea5905fc035f01919bd143fa8d5b600cc9062d8b61eb86d118c", - "0ce9f98a3622f90084236124ed6a5024b0b7a61bf7641cbc7647008099decf493b56c59458a1a9dfa19c13ba96c0e050d3df512491\n\n# tcId = 126\n# changing tag value of sequence\nmsg = 54657374\npadding = 3031310d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6afd7245b1521c942c1d38b8dc0b9a3bbe124833ee97de0b50ea9e537973e3d199376f1de834ec239318389e479a89c97b5df2bb08d3fc565c33903aab595f4005461c833bcbb5c04d90a21aa7c251e1342e2d8db768ca1c23ca473adc011f40eef9faeb783cca57657b6fc4200fd54694ad457db2942c8a9271b61e3cc1aea81f97052c3c4ce968b5c6b56710d5733615d960e29a636bb959a4fe3644c41f7cb85987b9112df1204f81c69d193f10b5ac2aa9d8f223c77641ade87567469c07b82918d1b44df6d047a0ed9291e489abd7050cf7ba1adb85cc5fd079cde65e8168c2480121ee7145bb094dc846517b6490250648f9b58398130a69dba9ceee10\n\n# tcId = 127\n# changing tag value of sequence\nmsg = 54657374\npadding = 3031320d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 582dd05a81d329fb7c4c1bcb5716eddd21334fd2f7763aba0de67eff550838dc7f4284ea5e4b94bfd0ea823aed8bac214e3c9adb0144c7ea34ad98cacb583e8f5e2ceecfaddda67031de748b3edea986dd13906ffe06695b7fbbdc455e350b64a459a8cb260ee87b0004433d5dfcab404da5bd9a116168d8453071dcbc13af9abdfd009704721e65df950984b564b957984108afbfcf1b6f14ff50425a16da4f1d043778a50b91ff340d94e04d9cf9e7e3b35a7482cd2096370b189844542b2976713466cac44b356581411db0bad42a5b0898d05e5b19d062e04d4d22e3170001d46499a20ad125779ae95d3477cf2ec3d39634ad787ce1ed0136bc432cc813\n\n# tcId = 128\n# changing tag value of sequence\nmsg = 54657374\npadding = 3031ff0d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 666430efff090b85acbd66acc054f29a8c05720e140a599c211fd699955c8857ff68dd8ebe56517a1d4b10ec5cc175b17488161d8de9c07c3263e5c3c73a9c649d85e8b4cca02035f6ed9b8ec80e0fb1e102a06ba60e30a2d2d2026b1efa283b6744c1f2a9b5bfb2aa054fc061626bb7c5d18cde129e1a188b62f440abb78ff3eec10943b60c168c2aebddec92191d04c2d06fe1af82e9f6551834f2c6142b7e81bbd4b4b501986056530602489d59a338694b08f56b83089c76ebbd0d2700ab2b1489cdf43913586b426b22574d20bfecfa1efb0a72b72d7374ba235c8708eb68feeefa9dfeb71c94bbf999b952b2bb5d6f47bf3404427f931360e94c8087d1\n\n# tcId = 129\n# dropping value of sequence\nmsg = 54657374\npadding = 3000\nresult = invalid\nsig = 4f1b6b6f44242c393d6047cc0c52f5f11e53ee6f67cda2ee9995ef5d85846e35bd501adda9e0e274147b3898b56d80a78127569ef977872f46bf6f996ee398a489843d51216b90dac9bf173ee966cde1903c072f3da2551b47930d0d4c8c74836e2027ae33a34056c40a9bb7d811956463dd01aaa305899130d180e61532a604910d0eb25cb14a6e46ebce99914f820e64ca685a33a2409b3df75796cee1e0ea4e907265d4478327cea93d2779d607854d3f327125e4fc641f6f87da99b9138afc90965dcd95f95e54729618cf0785a115a0e7d9534fdf4442646602b9cc305eb48457f692ed6740ce315ab8a6facfddc36077a8bcf0ebd2a4cc41565c71bee8\n\n# tcId = 130\n# dropping value of sequence\nmsg = 54657374\npadding = 302430000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 0ff1386eda5e2e274e20fc68a2f2e04e0b299b99ef4c3c043761992e669da54a51d9ee1c1626674ad35b95e7c9cdd72312616f461bd933bd281f3ed79b532b54a39f1ad84602edd80767ce0e89dafa6841fdc9c4b2339ad0a28aee8ac5859881e23b4ff38e2ffc9648489b5fb61f64c6201c0558858f01ad97ec7fd40965567d7aa98c03ac0b3615c2d17d1c7695df50e03c362506f2a7e0a3c95e1e5be6e382a86bc66c4f1fd4d0972af088a3fa7f9dd439ca4b44cdf40cc84370d087ac198af66e6a99415c3b4954cb6893d1cdef0f7329ba339e01fea4ee4096b94bda9c4d0c74351009678a723402524976dc01e70f81bce36c4d39ace0d12111733ec1bb\n\n# tcId = 131\n# using composition for sequence\nmsg = 54657374\npadding = 303530013030300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1a183748037cc7201b866108573e83611953f72b96a56a33eb7052399614834d04daaf3892bcfb194aa1ca19df3a149720a0ea970fe9aae1bdd09c0548071ad50d806d8a6e40a8036fdc5803de61bdc14ac155d26dee61e1c23dde867c16f28cde28dc6a357010ed1714a0d8c6fbc5a1894d1dea159c3a8f4c5251233ac2cb1ee715d42b15360bd045a38be1fae6f5b5c5b5f8eb97cc537e18d71f506790b35e69faeb43b30a80ce6c291dd2ee4b0fdf6dd97dc197df9b125c59809cfec7045698ecb700cf99f3feb6099f7516dbbe17665ed515ab41e7154dab04e568e1fbd1b419d9d261ba35f05512f181f87d23143f0649ff5711cc4c66d4e7b702903fcb\n\n# tcId = 132\n# using composition for sequence\nmsg = 54657374\npadding = 30353011300106300c0960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3134086af9ed8e92e0dd74f4a83807bf263b3bd5ca32fc975391091016dd632b980c1df91854508164088e61c8af8ab1cf2149a8e8b2fd7d223e67da5d524cd6dfd3052bd307c991761bd8047c2403fc84871430978a0099954bc4befa89c7281ae62b10972a06b5dc8f4cd6d7e1ba42d19b486392fc2f1658ac31fbe9f0bd6d7b7738ed9f7e7f51649989de4817c7e4a613e357e9d4d0cccd5fe365ca4505f99ecdee8b0f9ad3d76deae39de4a815493611128919e344ffef0776b917541aad6709487f4605f1aab878c3a62d881085cb1ff1cb55bd6436bbfc4347c0ebfdfdfc6482581bb1402bcb787e9c6fbd3c96d9dcd16245f1935279116223aaacd83a\n\n# tcId = 133\n# truncate sequence\nmsg = 54657374\npadding = 3030300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e\nresult = invalid\nsig = 39963c8d72f4b87502bddf258c441e3b7928c0e99f5f4c7c66e45db5cab0aff14102cc66de1555e6053e7285e53cbe1c4645883768d4e3e6bb18dd87eba514f1fce3177854b7f58adc573d2f14ba065f0cc36d62e62988a85ffc4b1ed6e7e7f3f5c18d185495f2ddb1fe32ac0dcf2404cdd3078ea5986e293e2cc28b36f4be1c654f8cf86d0b8fea5be318bceb08d62594255273b420ed9f6aafc9a639fa384259c636132d8297d92cd9bb4e8f2eb77785005683905409978b50b97685c39274299cb9da6098ad02a66971943f0e7c6df90622e39f2e8582770f252fce3f1659ad742e68dbe4dbc6562c065f82f5cf7c85f8967b9de92dacd2b05cc5d1ff0457\n\n# tcId = 134\n# truncate sequence\nmsg = 54657374\npadding = 30300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 10da62f2d21b08fa1f0a9c6be729d60939340de884ee9ddf15e37944517b9c1e692193029e3aee69bfe92fbdf91bb7018deaf025e75944952b379e85c35d079cbdc1da17f97d844c78b0f0849b7e81e284bda48f0e354daf99fe5ad35f3b782beae791966d2d6cc7d6ec262a86089c385fd56d1e8e21ad69b85d305b43a271fa410c65f2ea088941ece8fd98063d50d6bb07e50119f0c4cd9c27775bcd40803124c85fa7dc2c555bced956e131a473a0e3d357a8287c0aedc6bba5239d3c8e92421918b137c08c08b424040e26a559b8cdee5daca596e7506109515e822d3de3d826284140b935683483185f8ad5684b0ed648a2cbc9e549fc4b0294d7384684\n\n# tcId = 135\n# truncate sequence\nmsg = 54657374\npadding = 3030300c0609608648016503040201050420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 48751b8bf25b88354852664446a3133204880e38e9bb4e34ee79beef8b464f138c83a45ecab05ea954038ffe6a2fc2f90dfd76f2d2a6c3a2acd36f63c43569999d54aef4b9550fb2406344779d695c773b9605d189d42a825ee489e4b69d5f1538e4853132cb9fc97a56bd9180a0ec32c2fdf6beb855d62ef6b18ea45354d49bfa225145ca639e57e10248a3e947c84d35502f6b40a64c44f813aa34ce502edd4dea72ceb11d453e66d1175d9ccd5d925e087aba6e8e34ee641eb7e76cde594409969752061847630c7d7f8d87d3fd019ffdf5cb3fb0ae5c51a8e66b03fb1f6a8601c1cf79a3596c4ee9c66331e159779f7e7c78bf0462bbaee953c31ab6be6e\n\n# tcId = 136\n# truncate sequence\nmsg = 54657374\npadding = 3030300c0960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 17ce85f7b037ff2f5902e3df389932e95b3814547414bcfef491ca0aa9f6ad8eed3bff73f240352410bd67caa01c77994543af721d1c93beb57a6b5ab348ab51b75d75cc4b5addfab9479ec0f852984b81ad6eb0ac7005b24ddcc43723b37e24f509dce252e5cbc3dd5ba4fa43385f773b9d8a49ab07735db9a7aec91fcdef0fbff7a6c3dd8c8e7ca1710f90ac3ab1594a20e4421491cae9abce372b2bd703808363e26feef7ae93d40c298865de766a4de885f2e9efd2ad0b465d569893b15b194d2d8c9ef66b5557df770ea009d1520b87078b7339a53c84a3dd477c185c2f7e3e0370346df5951dce75d4b9e49092deaf020e0651d409d7ff17a5b5439286\n\n# tcId = 137\n# indefinite length\nmsg = 54657374\npadding = 3080300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = 299a19ce5d0226447644ee011e1633135feebb8765072c33c18c7786b93797c6ff66f182a698d291f50f60bb20d244721a3e1304e425e4caf5d893690fe555c45f2eef068fc829d313499c0e2301c127c032caafeecaba6e339a96b5654d8dd61dad1d31e594fb538042a7c14c2953ed843207d628cde26453241edea64", - "3a2a50eb6a9446ae1d266550f558a5c8caac34ab4e812a2afc751e0033a16a1bc09eac9118ac7bfd39440926da48867dd1baf0cafe46a2f3d588a01fedefb7e8b0fbb294d9beb78229dc2a1ee2b045517e25b2c521c0b6431dd490376b7e3874da096535ff2cbadcd7507d048c82e550b2da59cdf3435dd6c15d00b81072d0b0cdebb\n\n# tcId = 138\n# indefinite length\nmsg = 54657374\npadding = 303330800609608648016503040201050000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5047ce51895b102150c34f652bb0e6f683189dc2b4c5baf7787d01438f0b24a4fd3120f6fe958dea1aeb126ea1c93745fe8d0d0f9280d701a00bb4ba9eaf35a4694345b9d38f724f0dfec600e379477999ffad9122980ce111ad4492cb4349ade4aeb85f3de7e71be992a42240a78ec9355d3a2bdc44525a93d66a41cc18a6910f43e11a528d67237901a4196383f64fe6ce5f246ed02ee2b5f5ffa86bf16044a20540d2313384cca1317cf3d18bf9269f3b539b78a6c84cb4df1e9f2cdd4d9a9b53b11f329ff7db8248d23ff3dd53e805242ecb307bcf2cfe23d90de16c68cb3d33a5e461b3a6db28eb1ee25bae53076df190e6f9cd23a4880514264356f02d\n\n# tcId = 139\n# indefinite length with truncated delimiter\nmsg = 54657374\npadding = 3080300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e2500\nresult = invalid\nsig = 47e9373136f0034afd98de6e5519770af7ed2bfb4926ede7b6b774cce7d8df94fd56de9b5c8a2d0d3a23c2a49b171e62e9233bfdd88a48d66ef3b1007cf7425b46d5823b3e11a4527716f4cfa9bb4b9ee0fed76c00a6f5e1093ceb2117eee845b1daff24f8da60456d429a94d180ff40600e29088d1c181a60a233dda2c01fc3bd24f248f8d55d12c9b818ce608d8ef9194ec2379ead30addf1d88a4b9879f5217419753d036fe39e88cb0461b5856af8f2cf0b5e6e74ee8c0d052b851029ca7ad23c2eede49a3d916d5ca5a0190a92ff3b2f9cc4e41dac240620afa6efa358a9f1539abcb1073fd7a5fd18552437bc01cf5149506359e822cc405f5b474510a\n\n# tcId = 140\n# indefinite length with truncated delimiter\nmsg = 54657374\npadding = 3032308006096086480165030402010500000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 9de821d4fcecd5c3ec6ebe88582c61390c5d471724a7c9aad4d4eac2576aaf133d92e5c53e45d43bd707ad80a5d3bcff1d45599e048ea27899f27a873151392afbdf287aaeeb7020491c835050c7d7fa3a905eb529fe2760e55bcf994bdd25f4bbeaaa26653660802b4131cda45e1a51fda7f6ae42f38ff688c8be59a70b7ad805e30186177e094ea2ead3b1dac4c24a42accb112155abaa12fe452bac975485fd8a40a549b484fda7d078bc6e443ddcc0289aab9f99061b083676fb00492aaca801cae31578247487fbaed775a74fadac298be953e0a108533211088290b3ed8af563186a18976ccc04e24097e4642d0e2d5242a28ec13ba321df4b8705624b\n\n# tcId = 141\n# indefinite length with additional element\nmsg = 54657374\npadding = 3080300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e2505000000\nresult = invalid\nsig = 7c566a9339a3bff1a30d14b7ce5b4f2b1037907657106945a1159ec0daa86d687fc3db4b0f434bf6f5797f3870fc935f0aa1a67cafdd57b3e260a5ca95f17fe9e745a8aae891860e98600b835c0e18d119f41053612bfaffb9c780318d8628a965449b38a508bc2ed5e9ca208f44189ee72ccf5b28208eb27968fb5613bf070686d638e48d8f2dbd3b8ede717f350c41e1d97e9dd4d3a82bd0fa7ba4c49ddb50ebb1d522355f0307297e7d833e11125efd6d4201e6ed7fca9f0db1813c634af35d780769dc08738bfefe32fcef60014d5049ad739aaf7d2b885c2dbe97c726c269333d592d0c35d0a1b448b972346dcf849cbe370854ef33270e49b17c93ce7d\n\n# tcId = 142\n# indefinite length with additional element\nmsg = 54657374\npadding = 3035308006096086480165030402010500050000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 92996c9f61dc7e216d111ad097ddbee4cc15ae29b37b944ecdb2976b440c5e94ab693d118d2c129f10b327c46ee8225099750df108ec8f412796dfe607c2f0535ef8a4a66394bd3d72e242e8182c3b1f9e8b2e29420aa6f1dc4c6268d982931f1ffd177293223de1e6c8bf65e1593876a6865ac228a898f475510ff938ca9f1568b0a90560cfc79dc4f05734013cc0aa65602aae3015dd83a7566937808b1e7d8d64fc0db46a47e35185ecdb9c086f4b857007ac3649a7e773b04dd8b6775adca21611b819e4b90f9315d4769771cfc674c41c054fe8493149eed9c84747b067e5efdf289a798368298aa12628a4ed8021c0827b0893c3458eae2f8104c12999\n\n# tcId = 143\n# indefinite length with truncated element\nmsg = 54657374\npadding = 3080300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25060811220000\nresult = invalid\nsig = 3abd11508528361765b79ca41cdf3a114305b9c481b11eb71b742694d5f9ba59f3010c066971df5b80f969fe1971449550031ed1348de43ce3bd9fba4d1b93e1f7d1e4e0f79e98466ad37cf0e5ce9fc01b7e08a9a540d458f546bf53fd6f2bc215366cdafb9572600c0b85e9f3bbe0dc287b6630d7fd10114ff692fe2799959f6777daa709fe7b42d70161cfdc86c03a9cc815e51febbce992104020da3f7abb3c800f4c8ad7f7bb56d0c82689a32764a3029210913a1f78ac54c50af92fbd5df563dba505235deabc0a6e6a39c4f8b211747151e3a677eb93026b513f0a121fbcf4b533afa41c13378634536173b1838fb3d436ffab58cedb48bf2562d59554\n\n# tcId = 144\n# indefinite length with truncated element\nmsg = 54657374\npadding = 30373080060960864801650304020105000608112200000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 70f8af936746d605b1527960344f07f63c2933c32f43cfb0509f4461b897bf09fc7c37e1828b4f63c55b9be11cc9642c2c1b6d44e388857207676e6914aef480ea49645296f5c0c01c63e1269ebc0c27544042ac036af2dbefa2eaea0be474d534e34995871c4efb9ae6f85b0f0c724ec191b3fe46554094a39d785441dda07713e51f6f9af8116689f65296e40ab21919c7f9a67c33be44dda122771c2fa1c5bce89e07dc739f671754a99ca273e256bd2a6c0812b9f3f3e76c2ff7ed972be9836a8a926cc680df79361dc94b948da882021ea1e1f5cb6848b2ddfa285c5daec97606c029c33c1fa312b409794c8e701a414f3cfe987b08f37b635d1c68ec8d\n\n# tcId = 145\n# indefinite length with garbage\nmsg = 54657374\npadding = 3080300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000fe02beef\nresult = invalid\nsig = 53dea4ade112b2919cac494c1bb1bb9027ed7a70685451c21d3618ae862502bc052ed40a0000471085792a636ab95093b73f4eb4505ce6896fad47a27322a245cceb730dd53365659cb4467308bd001773b20cc7a850f48e78a0100eac31052857ca323dee8ae643241dcc33dbd2ac098aa5a6c87624483d7ff51b1d1d2f2409ab2d1d0aafd29002bff4640f8dd0d24375f7e0d5789bf71035ebab7b6ccd23cd0597103ff93882e58c0a5ae2899bbbac9df615331a9142c0d39a46d57a57c94ceaaddba6beb5ec6027b096ef3f8786d498db1baea9bf8e23996c8ccc17d6bd5b8f4a616ac31b0f5ea1181a092fe3e5b960d309497792eb5046c4ded68a460fc3\n\n# tcId = 146\n# indefinite length with garbage\nmsg = 54657374\npadding = 30373080060960864801650304020105000000fe02beef0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 97b5788236de2f816fd21cc21cc39b04be38d51c39805d98c59ef4647523a5fba15f08c7a2076fd63b71282ba90d14656c696f312626a17db5d74e0ed8234704238ff0dcb7539a846adb85795d0ecb407457404df35fcc04d41ce92379c08896eef2cd5547158431e71ee1cdeea4e1e42e41abfa6fb13dce3bf2955f8ecda8bc4fc7e413a21988d189794eb5ceecc722203b9154bae7b14c3c6f7e51081d7898eaee4d4cc84665909ebbf31d7c3dfa216e854c305c7ea42e502af50d6045ca3baf89a836c7f11242aef492586d77b4e6d96bbb7f428bd38e583768fa67ce9622a8e0c8d77c6af211eef2e2bc1418141dcb8401f67b8321095d623e00a3d65bde\n\n# tcId = 147\n# indefinite length with nonempty EOC\nmsg = 54657374\npadding = 3080300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250002beef\nresult = invalid\nsig = 41ea411be09bb58c61d4ef960c124d68e9c2e594c9e2f460b1fc2259b20678418e2d0a7fb556464c3cbb0df01e1eb304c64a9815c992640679559fa3b2652553072575804fdee685121efdf4b49d8174ad1441c9a563ce0d02ee15e0e418ebe86aa1bc75cbb91bf910f8bd7dc1544319d0c1babfdd331fe6de6b6999c31890421a3803a99679f70b9b628c7ddff98f57cf2d4660feecf3deb76c35862e90a3dde6ad0a7e09d38485cbdc6c0a86e68bd913e09478f2bae177d51650f9dc630775f9b91d81c149a1e1db0367fa321488501493a715a8a70b406bfdec8b1a79843a63d6c5db1dcbcc7244f3576556081432930f152f466495612315479a5c2ab3ba\n\n# tcId = 148\n# indefinite length with nonempty EOC\nmsg = 54657374\npadding = 30353080060960864801650304020105000002beef0420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4ad9f71529be0829b7a89c58aec8bd34e251f6df8e50aa5c51c57ed1611d72faf1cb114a8ff12dde0ab838583541a2abb38109f82e248ca8522cf7c4b385153badf5140bf84bccebf88f549aab8ce6fc438dad7ddc87eb2797cb8e7cf3d46e7bce4c853edcb7f0ca2e7dbe94444a3fe45d01818197ddcc20803d91793cfc34f34eb07bdae151fb987f164bb27b5cdb7c6867f2340ef14b900af51c335e68185997174534acced5d97db67835c03ec2bea14c3806810155a1ce916ebd80ec112515baf25f600ceababd9e06069176619b4c1bcfe7f9c151fcad91b018dd9c5ca6536ec999a7387519c42bf71", - "f3b088d915f5150d4b388349b310644a5dc834cf7\n\n# tcId = 149\n# prepend empty sequence\nmsg = 54657374\npadding = 30333000300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 72ae997b4a0bf2841fc14c64a0c44580607eda384aea73eaab998708b2b79b44815ceb2c907ee4c49c1f083574e3476fe1e3dcd2c581596af38ccff0676c2cb24df91535b22e49e8f0723238555c748675e80e4907261b943b167ece76e9d767b64585a1ff6054f09dd5e22dfc7f743d691704698e778b8c031df4464004f2ba03e642654051165c9bb7fc2a1c5ce3054a8579cfbc710bda13b7b2bb2f23e6eb7221fb51ef2404483e914075cc4a9f8eb91f247a600675a9411a6cdc516e5f8b9b4c9900086a3733ef932255235c4e5b4484f49bf9f5937d3d9e1d0ffad627ec0ff0aabe08a0b0197d430abe67929bc6bb1a96b907c34b2498bad0664b1eeda6\n\n# tcId = 150\n# prepend empty sequence\nmsg = 54657374\npadding = 3033300f3000060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8d6ac89a1e6e7d09e463eff106d8817d50ac80e101df01329d64f6001c7b713ffb4a96159f4cafa5ffa0cea9bc6b1a25dcf6f01572666382e546c0da556da811b5fac121a200825964cc2e90e8147c846ed3a4cb4b25151e1c832e3fab42d140bcab9f17a247d1ef819db5e6decea280f44cb4db5ff24e56515317847b4849acb6e58c16beed80200b65305270859eef3c5bb2677dc318e5841092c21dde882a02b16071a5c951a7edab12e3df75f4c842bbc48f876eed02a7f3b878e13a213c18fb54bea46fe8e9e397817794ad24033188b1268c7ed4255376f7807f9491c6370a3eff6021861840ebeee2bf7dfc8bff45ec9b04db5099a586d44ca71d8876\n\n# tcId = 151\n# append empty sequence\nmsg = 54657374\npadding = 3033300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e253000\nresult = invalid\nsig = a613eb54af4df4410229cfd628f646ef26dfb7d610682d1187e9696d35fe5849cd9ec3d48f0b5b239628a08cebfe9c539c6828995beee9788f6aedfba31dae0c7b32221b4220cf5b0d53acf5d8de4d80cfdbd2366203a68b43a72bdfbfae12b96314fef915d1b6fcc645ca935385d23d66418d47d60fd4c7395afccac61c4a02df3b0edd3152c2e398556785e9c982f8bf55e2417e614ef694c17082e556b4a48ff9e7155021747b952011abb053dc09e487450cc7a8a02b7af672b776ea8561504b8b08e2e219919ba8cc7e24e605cd7ef856cf25f3d3391311415ee67dc369b52d676f425c773d72baf572b3f5829fc76925e3386cb770adaada942dc0a4ef\n\n# tcId = 152\n# append empty sequence\nmsg = 54657374\npadding = 3033300f0609608648016503040201050030000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 7104a754fb3341262f603e5695d700b35eee82e4ce5b5f82010f7b8d788cbe44230aa11289d739ab6478b7336772fe869eb5e702a6275a7c385b7488cafff3d7d8f6843229674a53bb6be30c84b3bf58c7591c7374fdfdf1f5fe8c948f7d472007e6c327d9f67f44622af44c55592946243275e5cae5f8ea8590d6efad7820a06181e8180cb2b9f5f0480fbb4e7ca32ae5265e019acc39b46d02e77e0f09426a2b211ca4420a970c805e61fde998d39b14a9ecddfc852efc8d52e669aa80405647330e284f87206e97d4db2e5f798f77a83043dcdbe76a9c876bbe7a14528bff82c35418a6fa6d93beda59bebf2ebc050adf7091df4a20b03ccf9cb335875868\n\n# tcId = 153\n# sequence of sequence\nmsg = 54657374\npadding = 30333031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 7c26f8b91b43be4d09cf5ee7490a27ce7bedad4575fff6980a07bcef5cf783eeb57aa1863ade6ede8dc95d07c1a3d0841652b357be04556a549fd8234ede8f5e5083a3d4af273e3023f610029a0b3cf85a8a2f276e4f57251e2a6338d2ca0305a685dcb240f36c966dd0da783176313ef7c93ae6d13008099f846438ad2c9dcc0ec9f8c343cb3377d5d14ad23bb25b11c19a5bc460592591697e92ea088160f87c0418b0903bca2c7567dc76da84da000233c391f93b05e9e8f01b78639bf95bb21f74b7fe1c00b64ebace8458d292bef3acdbff89276702c547171d8aebd56dc24f98d832feaea03cd16e977b99382040f2ecc1ac45885c4f07dfbf9fe61d35\n\n# tcId = 154\n# sequence of sequence\nmsg = 54657374\npadding = 3033300f300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4a4b7998d9282ad4b458b6b041da104e98f8252b711bd07b7900d4acd3cbc7b1c90cf78eba718c87b9b6ad94fb35566560d6d6be59e801862505e908ef42c934d085ea82fe47de6ae3efbbe1dfcbaf99005ef250ed6fb74c09095a031a30fd33e52a7e7d0b73736f3f7516ee96a08f61e3df85e174650bae50b4dc632698f6e7f1efd2bbf10464153ed4dba71757d2fc1966d3c80e0c555d252d9e9dcdf59534175feb7db6d9d17f30c82678d6ea680876c2ed71447f127dc3c75852dc0fdf0e1c17fd1bc38bcd25501f07a5c0dfcfe295f0be27cfe18a5c596960407623097cdad148e5043433bd4567951ded89d0bdd8528497b8525212b8affbcc976a50f6\n\n# tcId = 155\n# truncated sequence\nmsg = 54657374\npadding = 300f300d06096086480165030402010500\nresult = invalid\nsig = 6fb0241a3961a03138b8473f8bd3ec202979a98f07d325909a2e85a52167fc379ab164c4a03986edba638abf1f8817c1cb89f297387f2d5938e707aaa53eee6bbd6a9a7fe8b70a31373e675f443c902dc1d0dfcdfe4b3ea83cd575bffb04071220f1094b9a3e7cd04fabd70c0b8761231abebd3f4eda11f74f83d77a1a44e28432d05da33998419e5cafba0e81960963209379a51fa9c5c27649ec89f8a528ef0a885f055edf3f66ab1d4baf07a405b87678ed6d170ab890ded0e8ee90ca1ec0e9f6e5ac247e01009d6eb7101da6eded84339ca191bd6194e3b6bd8b094da788c1ae068d8ce7322fc7e22189e6cea7655b1ae690da05a0aae46466800ddd6f26\n\n# tcId = 156\n# repeat element in sequence\nmsg = 54657374\npadding = 3053300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 9300a86600b600330a19b750ceedca9da6c96a99bbf65ab7dda6a5924d22a5fc9a2162e3375172fb38f62aa52a9fec71af1007ebdc5ce29b02163d9c55ead2141959eaea28f13c482be046d676770e02b71268d54d52839ddd929117e4857c9a6a17f92915d0acfef9bca2c40819ef58130eec1bd60359bb8f47ce67f0663086caf2281136b6076b20310203a9ac1b293c511a53e10ff880ffcb7184be60fad58586bc9a11fb51d7dcff71b401e42c1c7e92cacae3c50b62dfbea390c285c5feea91c288fb845401417fb01a09b3b6f0a1621df5c172632d40fb2936a7c2b62e989b848a06c098e69a333759d9ba2d270853f65daee1f7a81bdaf64af2347517\n\n# tcId = 157\n# removing oid\nmsg = 54657374\npadding = 3026300205000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1d35c1575269b1ca4e071f2fa19ae31388f4cfbc7875449b2027984d2b363bb2c77c80819725e03ce9f3db97cf939b07895c55b93cfbb204a3b036dcb69470e9e99a5584195ac3dd24214758a82f354338e50c69f3a5de6cc0920b845550fcf104b397ab4b4add6659efd34f64b9b673e73662ef5fced6e7737147e41b48e36410eece6db65f5803b16d33c25cde6bcaeda8930e7635656d9174d179c74f5df33b08d5b90e866624180f0a03fc6a94a8c40731658a5d90a071c6f77e460c6ae1e6d6350869db442219bf3730cdf3e74ee102d6579fab4892e8e410f06bd4cc19d776c47ffe667071fa437c80452950df7e12d909e0d2f7494a8500e1bba86435\n\n# tcId = 158\n# lonely oid tag\nmsg = 54657374\npadding = 302730030605000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5cf9db664d1baa241293db08ee7c8d4cb7cfd374d9c4e0a4fe3c81fee279be9f0452e6545a01ad3adace3d0843ccc26826d446c9bbcde6dfce30fcdcdfcae415b6771cce7f1d7505c07969a8abafb200828aff641d0c07cdc4a9621c6d0ac607f950ee0652c138b4b48f724a632c8345b2919abc24fce3d815f82b99026f258a6d2cae1fb767a3d20591aab866640b4fe821e010e19db0d696a513db246ba42603b302c64f17c0296414dbc14a41726254d333f1dfcf29f55fe22a576eb6bdc65c7d0204d22001e858abb48069f65f7c1d8e8e84365429c01c048d4319765de14c48e68a4f7c898598597677b294d71fa2b5278a0a9eb52bb627c118a5bf2163\n\n# tcId = 159\n# appending 0's to oid\nmsg = 54657374\npadding = 3033300f060b608648016503040201000005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a15fd53bf93274aba318e4f37dfabd414a47c27631f0c779bc8cc1223621730380817ccf1147a18b778481c64c48edad0815988e6942199d0b0599a1e33636f7e83e6addd65d87e53d734357b5d2111231cafd3a4e40845073ae50d4506f37d671b184246ce15a77f36f554607f016e7f7806e5099cb2a69ab4127c893f28cd8fb8989863e787151cdbdfc9e0be0b3235b1057a39e656ea482aae6d7c3aa08bd06fd38bc0f9b21240233624ba5c767b5f3f48c7fe365ea1552c5a9e64934869974ed2555ae81f9d5cd20f48579f238de1e150fdac4b321a05938638b81f0b7292a61e12528b077949f7ab3e6f8e1f78be81da0602fb30b47f569f7290cef3366\n\n# tcId = 160\n# prepending 0's to oid\nmsg = 54657374\npadding = 3033300f060b000060864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8db939e248a2140b770acfdbe16ea6153d968ef51c56b024dd1ec56cd600ad79172a14f6253d0a9bdffe9ad10b6ebf57eab8528474fa96a06c9284e5fe08c48dad5520730cd182dcf1bac660ce3411c7cb68686b3b91c5a55b8627130f0e31cf340298117b3a0b358a42e9deaba700f8d2dbc934236cf81c0c4d15017602e82545e1eaf9", - "d31e4e8ee51d35054f3b05b7a7cd121854a0661ca19706ae95cdb0582cde723e389d58579d02c679f8d287a2d0ea51f442df0641682458ac6590b3df77230273eb779ae4b827c09075c7163b993eae72ec0596c2adafc8e20201e21eda1f4a13c27dd9ca7b3bdae47707b362912979357aa587ea2d86c9c2c2587ac7\n\n# tcId = 161\n# appending unused 0's to oid\nmsg = 54657374\npadding = 3033300f0609608648016503040201000005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 0c985f857ac4219bbf98f767f42c7e0ba886889a0a7612a3e7d7c8bad581250aa7ec8a71567490d0c509a6b927b8ad714107e7248ecd5f1ead25828707072c87913e7cb765fce62d175c4335d09d764bc5322648e53a73eea7f55371a9a73a5283500e0d1bea254d217fcccf917d5e0f28b987e9a16d11361dde37d699edc524714122333d897279eefd79274c095c2d6c9683673318e7f3536296c6be23837d69e7222683004d7e52b017e61a27c5ff3c8bd4ccd8622a52de0d24baaff3c43116e4f043ab30cf8549dcccab4905f458ab7761792e7655c6a66eba7668e4b731c62ecfabefbc31a1cc8b3e8f1a69cdf9c8f7825ef266d9c7e34710f6af936670\n\n# tcId = 162\n# appending null value to oid\nmsg = 54657374\npadding = 3033300f060b608648016503040201050005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 9957846928b38e0fb520a2786df5307373a096bdee5c5605500791321564ab48283a682cac388bebab9212a6429f9e03519f4f830719df9b313d62f2c46b78eb936b3ad13f3e6ce3429181678359ef6392e68bab0aaaf925721c6f991d989fe1a6edac5be9faad908b0ffb9b0b0b5e32cb6080bc9007a5da47fee8e343803bcccd4352f284df0e418bf6c8317b6ffcd7b4d9e82a911d654f0344b28f39f55ba9f1955d7976ca153059d5de7bad54e21d49bcddf8051a53e4ae496759504eda1ea3ca3bca7f6d47821440850bf44b2ac43d4afc1620b150b77f288af03b41c4d32977f726a91c80cb5c37177bddcd5fc5e206c4284537d8eb740f3285ef1a62de\n\n# tcId = 163\n# truncated length of oid\nmsg = 54657374\npadding = 30283004068105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 2d99760b2853ce20a37f51045006ed11d83b250d54da4122e200179a564a296292479116406d69b858cf15b8575bfe9df9832e484ca8fe4f0a24bf62aa350194ed642c68bb074e70790d7e18209b23dbdef6756f037a3391e6bf841f7b6dc763547565fee7e9416e62504df61cbc00cc2ba5907261e4e39bf9337e7a15594732f08ce136f37752a585e286c001424351f30a9bd585e3c2e2d99a6c91f3ff3081194b24f6bed3864b36b14d1ff3a05b584e06a994df9dceda839ac788d08d608009681db0aa23931d8f4a3aa1b1f93b6851a7899723e858eedeae4d25394bb7954bdffb975a3a1e4d46339a0e25f8e85958b006cc5f0d5b60c9fad1a829e81342\n\n# tcId = 164\n# Replacing oid with NULL\nmsg = 54657374\npadding = 30283004050005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3e0270e701eebc757862ec646322ab99511bd27d1351bbc3ab0584e218dbed9952a9074ebb7c5fb8f846a0f5d90dc1040e2c45914c86ae0b722f1fb95f7621b986136d7656a2a4300df494c0235166e51e3c9e9fb98bfb4604d4838adecd5c55300332ae0e141eebb328524f1fd95adfcb9ff7fabd203e89775f94a2e84ecc5efc0d9626920ca8a13154dd0e97f2527d6d518e6d460299cca0db870b0834d5b99e464760c390768e97c091708887244833117afa89baea5c1641b88d45bb9d711bdbd559af73bbc8eb91ef377a0140cd639fb7e8024dd3c48ddad6e37e31ed0a3fbc47a6c28b5fa3df0f38a912a4fa2895c2e25f0cab70bc5e660f725fe22da2\n\n# tcId = 165\n# changing tag value of oid\nmsg = 54657374\npadding = 3031300d040960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a781bb3225276cce1858b9f9316f6dc40abdabda8119931faddc5a871b5ae9c7c68fb1151d9cf477a66e4a13a6c3f114087bbbf219beb524e308a91fa88411d450053605f9f00bf28a146c10b825ac3205174ec57675035c8cc2c9f411fa1df596d1e33a7da0afce271c6b456c665c430cb619c971d60754afcbab103ca02aae079b3803492109ce37c800051ead6d47a4e0c30b8cc147c66d5eac20399249af4082e70c7d5556d2b0d46508e2e1fb805b6ded365c2f0d20f33315a8d49f62896ade6e0ac9187e186a73e5146cf8da9821c2e5fc5ad4ff0b28347322c09da2dbb196120762093ce33fdb53d8a9579c13fef218a62a834d5fabf53e1ca8a751b6\n\n# tcId = 166\n# changing tag value of oid\nmsg = 54657374\npadding = 3031300d050960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5032da548bf0168a4b3b3f99c144e3e13ce14b7d539e397f37847ffa8db34a0dfc0d73d30e6e3f2a23f0ac92bc5643af1adaddf9dea73c688ea98364c1e610835b62f1ea602589fd44a8a2cc73b00cebc75c212228b508634137c1eed7a942c18bc6ed4bd0ffd39961f54bd4455155c08a304c2e05d78950e42e92275b2f02df29ec2b2523bf97511a0ea3126c1012ce9683e175a45f7ee24a721707b7b7534ba8441633faf9953cf120dd6a13c8d88cce5e0b374ad2a3366f1e96f823128bfe6b830345e94d611e1d923620a57db4ae51e5d17b5d8a0eb4acea8377cac9b35553b7464e40190f40cfabef9bfd393d0f87e6e5bb08775d9d4768e8f2f0cc4a24\n\n# tcId = 167\n# changing tag value of oid\nmsg = 54657374\npadding = 3031300d070960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 489a6107f0052ef49f97222aa666c8025f2a30eb4bda5f47c888d256dc742094b2b03aea0b087d3f27e6df02fda958780626512441910fb83a7e4412a3aaac388933798922f6a4dbd48b851680d1f3f84e39fd30716921f99b87945001d26955ad33ff1047b5771869a6f1519906e461a7a50d8fd08d67a9f9fc272699e7cbc30a12aa8601fbab4884878a371b3c1b00054e9e585df1e2a084ff3f6a3be5f3e32cc6295939c1cdcd9b3aba7e58ec73dedf0caf5d3f5618c6909435823140b29635ccc13f658f1339fb2a3b21e1919be181c15edaf1cb6feb142464e6eb4dd18b9633f55fcf370b6c0643d6710b875df63a6220ce340a97987e577aad0fab4eeb\n\n# tcId = 168\n# changing tag value of oid\nmsg = 54657374\npadding = 3031300d080960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 41858f3edb8f7fde81575c399fd90c01162e6017d0c03b5c68167fcb668790d054b40d4d2438daa0411034ddbea901ab1924248185dfee64d5944486530fb407cf967d171110ba8acf00d1dfcc6c7a330f5f828fea17a9168e083f8e118857d29baa32351dd284a2efa0672ccc3d0e917818663cdda0e5dac638ae150c308b8737a50cc9f17a595800ae925930319cfbff91c02535d3d35d3256591094a38b3dd10af4f51c2eaee0f8bce27aff7819e22a2191019e419f4e45fba1272d104e0c278654ff6a21b9506ea4317832e7767f46d97c64e0041c767ac1ef88f3ded74fca09bcba82b519fa7716a9f7c4a2b78931f6805b4f914f6e6bd0a3adbde2a88f\n\n# tcId = 169\n# changing tag value of oid\nmsg = 54657374\npadding = 3031300dff0960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b1771079fca7ad8ba3698a9cdf7bb5309d55ec40500fc83424f1469c9fb77ed08082b5ad1e66890b51465763d1deeadecfaf9c8efaabadae7f7fec17589271ac920cfd1cb32135fca21ead942ba15f09a38414a796f67a5cb29f877caa6ff8e1c71755fedc58485dd9d4d62455c7a8b2ca2d1906e8045e60f681c39a0a162dfd63a9fdab5954352515a926324dfe252aa1a1e576b4dab1588b08344aa40f406f6352317055a8feb9292b9611c90d417b0bd42fa7e4a4b82c63885423283ae4b2467fba84c34c391339a5a3154d70d9543401cd260e9db236b1f96e705fd9704fe557a53397ff99d74d9d97847247e15ed410aecc0f74bd7bdebded30e34d3412\n\n# tcId = 170\n# dropping value of oid\nmsg = 54657374\npadding = 30283004060005000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 9464a738ad70b16f8621a806e95d4d2cb1866383dd6c0d61ee85bda1ac8b56c3833373257daff4d360b1c366c10938929a8ca0819ff929311346501c67aac447500b2fe5b812d7cbf93db5e5631cbff3c498461fb446eb0f25c881043b2339b13c373012d7546b9b194d45b9aff2283d7074f6119420bb6442af9116236b91ef37f5abca8aa9eab2b0ebd44d3bd302ab51a67e1d9433dedeb1bca87edce75d02ef149dc5784e1772c9ce846c17e4f7ccebbc908c46cd062e0e4bca76a033125a407919f7862a6ecef7f6bdc279fe65ab938be35858c98956c95c396b15d2a17c1c2ac996b5bf0fc345321fff7dfc44fa4b0b858db0f556de1d477a85a19f1856\n\n# tcId = 171\n# using composition for oid\nmsg = 54657374\npadding = 30353011260d0601600608864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 06d0a8d9247e6e39a8e09e7f8db128c23225d88e831068cb3187a6cf657d709710c129f688c3b1560448986e1f9e83a56e9053e7e7ec86f61c597d3713ba8326f7ac0098fb51a49ee64e306c249a09533f464a59f2e5ebb3fc85da8be6a60ad076e8091774cdce2742d5f9112d8089fa8e3071283e2bb7b6869f3c44d6dd9803ce6e467bcc8122d1e96832d05033f7ccdbd6bbd0666bbcf41ee1aa077454d0e136b725e7fe0057b2e5bca0d9a645cb50a67ea0b98e7c0c60a91c5b5098638a3027bba417ddf5ef968ab5d1695fe3c2b1fcc664624a783cb5ed2c6261e0627a26f351d8d2eb055098a2b8540791c2e763ef27086b1f7cee54837514790defed29\n\n# tcId = 172\n# modify first byte of oid\nmsg = 54657374\npadding = 3031300d060962864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b06563b316ee2d9a41adc5a9974", - "8b373538f15a44c3c9227e46ec05f99bcb14f4316110b1d1a82709dfa57e6a81dff1f3f692d27a96ca51f44e7b9fac9d2d87eebadab0a2d4b8d90427af8797ec5819dd451787ea741023f2e208ebe8542dd95f4b24cd86937bba642ce66851a782588fb2bb9e2d8fc9cbcd20b79f758537799740fde8e1a8ac4888abc363feb341758160f0d21498eb754e5189fc556448621a4dc095a47ba5b2759315beb9430ccab5deaee086cc87ade1cb243a8f4d9c63bc80f200dfdbfba9624e6084046e05dbbbb836ef5e4b0a06a8a26578faf21eb155cf0adca6b72817dac6c3c992a80c708137422b015196169bed668cbe78a9792\n\n# tcId = 173\n# modify last byte of oid\nmsg = 54657374\npadding = 3031300d060960864801650304028105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8848be6a99395116fcb45143dabbf7f8a95b800c269af5a986430190d9834502a37839afb083b66a96713159ec17e66cdee5e4110d0f9c9c17697f38af177b93b17c0fead88ff2dc53a0b5c502f96c4f3d402c623dd81408b06426bf6ff7d602ccc8eb21db91c6c0d614d108703ed32026de99e1a5c411edd7c6a66976faa57cf022a34111d791f0e469080c7eeb84999e0e9040def04df707fcc937095993f1a8bfa889c45127feb9de274bbf08a805d32f4830b4c5078b65a9340bcb9b74b9368c02af63d2b3481da5f57eda94ac2e5255d3b72bd1a19e45edcab46a119736d7e2508111a0838d1e6fd5bba4eb67ef697976f3cce044d29c6d8d76c2d92e1d\n\n# tcId = 174\n# truncate oid\nmsg = 54657374\npadding = 3030300c0608608648016503040205000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 0baac664f223ae40e336ad610b804b5997397b46a4a2905de1287481aa43a5bf059271b6a3ec648faec7345823aacf1bcbf09189b9dd349bfdaa979df8fa78fb199fb7c69fe824f83f83d566ff49e2ea28c704de66f187e3a42e90663423bdd0c8b67dad4e92cbba14a1ccc1810a43d116347ee7ec21ff9a8324a4c110e661092426769a443627ddaf25ea4d144427993a2e82e0b15f20936dfc2405da8ab5a6232b9552f175331e220337f22008033910dde7bdfe87b2f7f3b4847e665da5e03dbdb866b05d92c5ba490bf5a75903aaff4f657bf734d284081f52d81e6bfb040dfd6811bae2b73831ca3709b6044134200c700f2946f234f946a69886be2bb3\n\n# tcId = 175\n# truncate oid\nmsg = 54657374\npadding = 3030300c0608864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 2394109f99286c6d9cf82b46d1015a086f826e3725998819ef5e1d99e504df76a7dca903360567cc58d6bc327e90d7555d646f42f7c452777071b3e6be8ef1a97c0b33fa50709806d83fb3b8acf656067050708ee080af5a85aa2ca3f871324759d06d9a019b8314c66c15cb0c314d807026515d46e2163a19e89a7808af30a71acea51f92dc5e39d237eabdcfd46abe7cb8af5a47bd352cd5b1d0dda6fbc6fa5dd19b3051ad13ebe75462080bb3b7f23b013085e6f6010819494b5b303c279c2cafd1595831daa558624ef42a46a4621b6374cdb2113ec5d8e8a3661e19814b60b5394d9305c7d02073a7d930ba9bd912cf72efac5feabb8e69f34b74ef7775\n\n# tcId = 176\n# wrong oid\nmsg = 54657374\npadding = 3032300e060a3262306530333032316105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3d0632482138f5b9525dc60a459624d40d8c0187264cf1e076d7490295c59aedb5cf68fdf0d7668a94d3d585cee39ca6a05c0a2817b2f5ddb0ab52385dac4e1845378a113d43b936739b21335261aa4b96727ba086c75f88f600b4375d7cf796e62bbcd8d8d59f18fad4972c3638367de39d36f3e1ec4672fbac6e33246263feb65f2a014163ff1329fa3b7a97ac1b07d71059d23f631ed4798b05dae25204c0e4b29101e2828b972c63d11de274781e8882ec8ac5e1f5284dad188de1bf62ad234d56ade827eaf9c7378447da3791e4b49fd2559f8e37002171152d530da5b13342e3a9c7f45552c9208e83205271a767ff3862b5090db5971fc0cc8ee08a17\n\n# tcId = 177\n# wrong oid\nmsg = 54657374\npadding = 303a3016061236303836343830313635303330343032303105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3ae4a98262c515ec4610a836597409747dc21f91ec5380cd949925205cfe42026f6603b73c1d38ca6580a67b7ee11c4bd85bd2b610c7fd2809bc63b23b98b151c0c9298793fb5e13dae893713adc8761d6e98389d918853dd2b7799e32eb3bf9d97f1805bb0d59efa7978f5bb7d3432797c851c4cf4fe6a3c54cadafdc770ccc012c0e80750e339007747a7711b0f2229fcdf3c53b48cabbdd61ae6de1bb7a50b03052ceb1cfab6e80931fcb5d8faa4b37ee3f7875298d64b7f55cc766a11ada020a6a198f92c2077418b0eccb4f432e35b31952a53213b0f3dace6349c6d96d3061d9168635864ca3b95b480a179cf90d1bdb318147813b9cc4d61caf80b963\n\n# tcId = 178\n# longer oid\nmsg = 54657374\npadding = 303c30180614363038363438303136353033303430323031303105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4a5ca8f9c21990190bcd35e09815b509521a9c421f2eed985c90bc6e5177d6bd452f89f3f035911d23b01de756b4a65cdf8170e5f809cc0d2973bba249e6bd495e334aef2bc8951d46b55dd669a360a9cf1601f088049ea40ee30bd37eb513d0e06c6b01840bb3220d2d427670faeffdbf5e69c4647abeb29e7dfe6fdcbe78794685fd538df7dc32f08307a5460523578011e05db78a3468cd022b1b164dace85bf2b0dd26c1947a98f519efd8dc86cd8308abedec30ec2a25c293b7fa9bdb0430c99717e6cde1249fbe44252299257a3e4a51dba86961707b3f62281da804929698cf04e471b9fc0cf36b7472c66e74f3632a74c8b1d70e0f4492671a38b9c0\n\n# tcId = 179\n# oid with modified node\nmsg = 54657374\npadding = 303a3016061236303836343830313635303330343032313105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5a75946d283b9a97c0a8f3329869bcb0bf69944e594935238b02ed32586f0f4485fe5c2fb3d7aa03843d8b34468e8d268d1a089362e96b0fb2ed670fa7d971abb3e34172262406269d94149603d7a728d32161e1cb3b77d932e6857047836e2d13f9e51b6938c14f450aa30868cb966eba324e72026562fd0a90d2709796ea089a5ed72703ca1a86606f299ab1b150166b4fcbfbaa97ea2102608a67bf9a282adb96dc1880a93020ba83d03d5388851e35c43b505fe563b087606bf6502e0e7d046d960d0e3881ab5a1b76a23df3b0816e314bbc66f216a76bf123e2631affd3bce91160a39dd39523cf06f9f62fa6f22cf39aaf5efe7fb38742291cc1bc732b\n\n# tcId = 180\n# oid with modified node\nmsg = 54657374\npadding = 3042301e061a363038363438303136353033303430323838383038303830303105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 7d93fbf46c22edd6296dee68a2e0ba67ea48c05e2cfdb5c08f5a6d2651e8c8fb40ef9056194a8e7e2d04274e93a5c166b1bbafc90aff1ce5b753169329a98a29f7a6ae12a55fc5f06cd11dab0d3fde97393b6d6606145075e16e6c1afdd826814e2a185fa88fa5798a185a78deed1c5ec8e5d5f02fb9e0c2e27d2fc809a615bd3e0c665a750d52227cfcb23732ebe646c1f16ec295bd6806e9e68cb34292413c7d41adaca17ffed4439f2bc50570a2de3e95be3cd20eaee46d5f93fe933961ddbf57a92958e2c7386e1547ed00ac9da5b3a5a263c68c145144dd653d80ecc4af81aae1f5f7052d24dab5ed098e2e42aadca0f4e23d34b77225d01ad0a3d466a3\n\n# tcId = 181\n# large integer in oid\nmsg = 54657374\npadding = 304c3028062436303836343830313635303330343032383238303830383038303830383038303830303105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1a7f1394c001ca2901a0ac44d334cf48e7254f1ea5acf2833cf9f9e409a0194f6d196f915e885b1b15458f42089f44f2e26b9c6ece6f770947519485c8dcc31b4ab910ee6b83b8f906685e38b23c9e250495d5b754f6ca845d1860d5a4f6906c50d05f09dac23956ac2684909017454901681b50c3a55a990643e7df7b940ef27b901755b14730e5f534789127be7c15e0fc68d7f043ced9d515d3ba592f62c59272db977b31b509ba6f738a7b8484c3eb8878f178b18c56675dc349e72c5a29bea0ed00aa2705d3699ccd90cc285f430212693a04e02b510607681e70f1f9aa206120d085964278e6c108b5699d73c2d56273021107b7b9d71a339d466911b2\n\n# tcId = 182\n# oid with invalid node\nmsg = 54657374\npadding = 303d3019061536303836343830313635303330343032303165303305000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5848e40bd96dfab48d5885e90ea3eb2e89209577cc36cead08328313a65b75436e88d4a8aa5be55667544ae77193e0813ecb6469b8d6bd028e3b5a3821bad3816921c6ad27271812ac6bef72292debbfd64f123d7799fd36e4d27ce557df21e06cee4a5198eb22d70e0ab86f4490a382a790ce341a50a006573f5be9c1c067b42d9998e867fb1c03ff54ca1d3688e887ef2b445ca69c0d79053b9de5580dab688eee42e65f1aaaf89cc2003e9402f7afc21350c912c70a7585ec76bd6fb302a9d5d211723c123a4cd64cb7fca0cb877b235c0fb362cd092760581e065ebee1a18e0109f22cf6b7bc7ef728c092f871dca0d21fe54e2778b836869ffcc804cc98\n\n# tcId = 183\n# oid with invalid node\nmsg = 54657374\npadding = 3032300e060a6080864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a38dcc4e8070333703ce26a8b1eaa28d242bd5ff4854fad67959caae66db5e6654aaabf81eaf31441b8c5e7419a3ea5b04efdea91fd1910b5e5c6f02ff77b7cf42b2efc55b03407363069b8dd031c56d6d0ac54838760d7ecf9f3dc03828b27a73b827f394700558f160c196503855c255332efea838098e637cd1c7eea9e687fc552b5422a62f6c6b49fb16ad56509dca5a9148ed9883f1d76453f8d607d9fdb7589f4b07eecdecca950e58ccfb9e7784db9592b6406691a413caef5", - "e994ca06f21fe61f0986644be041878429d721e403ba6ad8dd8629eb78cf4fcac5cc42ec03d51ab64c051cba22b5cd4b160aaef28646b5776a19605cbed694e0d6310c5\n\n# tcId = 184\n# appending 0's to null\nmsg = 54657374\npadding = 3033300f0609608648016503040201050200000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 202c2fa04697b4c4f5b9889e67c90e597c403fc7b97bf43f3b7fd9bf648bc13db56f02aa517cc5b8b79ff90529528304c877a081a634de4007cafd341cdc19152f5d117a422b5e2df3f4368f0aeaeba2e242823422e3a3e896474edbc636b491baf44e032d5f671f45f599761530b18efa0300d56f0f141b22f0ba9a8187dc771b1575ddac950948cbc7d043c1686e4ae22d093ce4650a99d88752a2748285e935d46ea3a69e84338e1afd57fadc2fabc1dded35706759af7ff32b9f75664f50ffe23700dc46eadece6c5ce271208326f9342e7a63c852463a156edfca011df3a1889ce94fe8be66b125c80540de3aade0dc8bc1baa3f33a892cdd6099560562\n\n# tcId = 185\n# appending null value to null\nmsg = 54657374\npadding = 3033300f0609608648016503040201050205000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 49a336a5a98444fb1617e4dbbec502ca47a888aa84ca700c5909da12a4ae44f8831d2e42fe711c5909533885837ef60be1f37acc7a9a2023d63f0f5252473568aca337f672983058c35df36c4880b17ad15b5e2c1b289ca30e9af9566b5844a30685d59430f4f399188a22fbdd9a892415a7c169cedb52ff274b5eeb25a0f1f33e327a077a98342ace7227710a3db891f579315cf772dfaa142612f5bdb612fc31d940cbe338e6fbdee76ee31fb6471215f176d2f3c884bdb5f55444adf0fa6ad4015b25f494fbdb5a2bd7622b2b9f77b84c7e37e5df8ee553db37cd07e1f0c8003184e3f6404efe27341f41ee9c44f5acb09606ea686fd79108c9d6970ff80a\n\n# tcId = 186\n# truncated length of null\nmsg = 54657374\npadding = 3031300d060960864801650304020105810420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = ae3857a0e8604a5e8bf4e70aa110a9973da8d78853525b265e9189e7a495ddd200c9773c2b733a50f2e748224966ea27c2b87d9d15355a9b65ad02cd04539cf92f257030ba50e63269c5586a6103ca8abbc3c30fa9d232737d42af86a598ce4c8c591c70c3af322a29397a17c7dea43fb7354f8bad1c14e63b9e84909dec485e17e4331921d091bfe604d5aaf14b014ccec2ef23ba477cd8cda620d1c44f5d9c2e67f96f0a9920ea866cba0661f75a687e4d08e731a6e7bc52a79e08210bb03a33ff72e2b791c3baaf760dab4abe08c8d2f6775b03a3e7024cad124b5bc77312777bf24633683cfd033b459ca0115503a886c76e0af975f93a553616f3636154\n\n# tcId = 187\n# changing tag value of null\nmsg = 54657374\npadding = 3031300d060960864801650304020103000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b9965f3c8202794e341e140f1801c29966c67c758f01caf07c0433821f803f6f3bc932043a5c42d0d1a90c9687908c428c3bdce32b2756652862c647c4884af0ee00d55bddb5a56fb9c06ba0e29a3c4b61febe6eb09df43c607f8138d7d0ad2fd49398e69d6baf9764cae101a6933c430a9b45f981769257fe3e342f8835ae8a1129787069dc008dd40eb039cb0e8e1ce0965a98959b7e69001437567d0f336666cb6c8e5826b12bd5f195a18833428dbbcb1733642d129be808159eee346dae44e3f5468859c34af260d2bae45b92e04ec1b5ddaf950b774333c4b433c797ae1ad53f4d5d4508805d663920c2d9b78517dade0d3eb6fc17bfe08d0b2e314c97\n\n# tcId = 188\n# changing tag value of null\nmsg = 54657374\npadding = 3031300d060960864801650304020104000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4421d6cdcacef33e31663941531d1253765b01cecc92c741fd5a4c254f088b0d95a478f2ac913f408862b107f82c09c11867e3f27e34a0c1ea72010224c199a942383f4f6205884751091c9f4b190fceb7eff09110fa0a1546a857b091b930326a1f774a0185332a57185df89196ad4f56a0f8394fd6a49a635ebde48bc8ff23c925f846100ada2c3bd40f7d1a92fc31c1327af4d40933de0ab0c4a94d0d47c4d53e956716ec96cffdf0669e81bfe9552df8dd72a687f670896d7279b4ea5c9bfc26e93cbe50449776ce78753738cc9de7ab7aa02130efda3599ca0377346ab3b71bc31d56a8eab581ed70967e9e05463e19ff372130c5a1d9c2217f0f5a3f58\n\n# tcId = 189\n# changing tag value of null\nmsg = 54657374\npadding = 3031300d060960864801650304020106000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a71e400721490c8e2baae3b0c49e3c3af9bfb341db3626cb22d2137c5989081402e440cc7e0445a447e5371920a9637ea696a482c0ecbd8eb93a16ab1ba991359e5bea0f6ce0c0ecf927bf8dbb543e307dc17840a0ecc17eeb23caae349e1f12f95abe10fb85695da43e8688855bbbfa842b4a73543fa61ea8076ca3a63505430e7723b39f4859e1cee10e558f2e54a671ee2f040f1eac7d5464bb8482dae2690bed114a6e56f4816e7413ad6ad05cc803446f65c5bdb596a6eb63491709789ddefdb51d461abc777a6a0306dd8a83a6a7792c42559fbf426fa881e55d45a4d346b302efba670443570bda58b9963abec39e6e49d2a17ce572c16446564ae339\n\n# tcId = 190\n# changing tag value of null\nmsg = 54657374\npadding = 3031300d060960864801650304020107000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 0bfda5d7880717ef40cce0a8437efa8404ac1ead0472a7d4cf54934f8f3432db4db9ed4c8d98cb606229902b383112dfd4fbef54a28e7cac91338b1f591e2de4addc08943596058132b3a75442f44ad4d18b663b1c1be67c00aaab52e92d87759dbd89b386666dbb4b67429267d25c1ec12ce5cf03e4438dedcdd591c442459eeb86d6e74a937bd7c470ef90dcf8cfd497911413c4a817e7dbf826858807059f8426710ac582ca9d7c657d22a07289fc6c1bb37bcbe27ac755dfc50a54232c16eadf3b1694827ce435aca9061d21699029edbcbe05524d6bb35a866c78122f06f45b8a3615ff38c9bad24b9127287e5c46b73b7435a7bec837c4336f61e9fd01\n\n# tcId = 191\n# changing tag value of null\nmsg = 54657374\npadding = 3031300d0609608648016503040201ff000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 05f2928db82cd2f734f233d59897fe873f57714e5f5abf5132b33d924038a9d0616b62aa25b9353e69dfa17528945043da1d38c96bb6161a34c2529bb32d83fad6b65c0d186105afd1f27f92626860ecf18c7c865a02c3bc16a89c38fa9449d6e23cd389b6083e245b894c52507d07adc123c131998e8dd768b72c08a94bb709ba773d0216c9ffaeff15755ce005b8dfb03d1edbe75780cf3c493767d00b679facf4b188394e3218118d39bac152516dc36c4cc5f88ea9066bf3252670a5714fd5021688ac6b94491012666f0a41463ab265ed62939320a7e3c91298c82ab31f84a3afc62fef61ccb03c011c0317a93728b896f6f8da1ff4e6a04df5cdc14097\n\n# tcId = 192\n# composed null\nmsg = 54657374\npadding = 3037301306096086480165030402012580aa00bb0000000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 1b02fa06a93da1fe5b74c877eba5629fa9469b01e9919016717eb8cd627f05fcbedcbe2fee00cbf2c954fa7f9d6f001312026b96209fe551b736a4c25e9203be7a706ffde8df35dc7db4add2ae9aa3ce76bc055b5fcdb057139d521fd94a241b2571fd8b73d7e07502819291b226f560b01c0aee7210bca486f623b3f7f84b098bc7bfe9a1a46ff2b6d114373ef988cbcf8d87b3eb7b8374b13b85650b9b894183e589d1ae1646c144a3e6054f7387c548632870f14842683830ba1ab80789e3f8b3e65cf86684ef73cef5dada6a93b6dde8b836ffbb79703b39c3e7179055ebe2071d19a49a8b85af694d9d3cdc0a054073a579e054c76c74d851cc08a95a2c\n\n# tcId = 193\n# lonely digest tag\nmsg = 54657374\npadding = 3010300d0609608648016503040201050004\nresult = invalid\nsig = abddf6c8fceec1026b0fe6799db56b01e0b2eb066f9e5d0821f6a954462b71e1d22ea111f1b69bb86c1e4e77b6cf035573b9f6e0894ca4bc0990f9986ca209ee41bae1a48a764c5c464ca4e5de36c8fbc47dd8865775f9771ad6c6bb82f6b2802bd045c1f2d4a1845798b7dc16ff37866c90a613f1d019e53602fe2c99ec4650360ab69eccefaef07f9156f58a1f5f65fa00bcc2a544feceb70adc74e6710ea01e9ef4829a8165d7ce24647e6a8770eb8247bfa87de15ac560b6dcddcd112c24bf9c694090060bd9f0b5e50a59ff65c135f0bcc527c8793f4c84769b7461e9e2d755f99aa13b4c938f8fb7816e9d9f7f91159779b9d7749489b549aa263d8d92\n\n# tcId = 194\n# appending 0's to digest\nmsg = 54657374\npadding = 3033300d060960864801650304020105000422532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250000\nresult = invalid\nsig = 35446aacce869a91a157aefc5e3d4660a7de0272debbee1ff6253f74e38e8d54637cbba4412c0c211589a477eefd3dd0106cd878c46870cebba6e053a990f3341647736b00b5691d6b83dccb6684ee35063e2da6a6b1e8daeb5739d96291522d7c9fa54aa7d9208b1d73828c9a0f657ff39ebd09c709a8913b04a83c7b610fba815c222db8a2f00b089768cb4ae9ef93441c1463a43a6a691b407b4c1266e0ad4e146b0f8d06ccff215d48b513528f7cdb53a3be1be8031a48d092751e195b09a65b26d63795020c2a887eb4af5f002944b878962cf87a08c676946290164c667a3817fd8ad48e508d4a1e4811ff85b5844ce0af7937eb48fb99e8cf7e154c4e\n\n# tcId = 195\n# prepending 0's to digest\nmsg = 54657374\npadding = 3033300d0609608648016503040201050004220000532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = b0fec4f0f9b06a684c9816bc221f888860c1e5ceb40e67bd440bfb322c6026120b28af4905183d0ada4043b4f4a0df4710b20f37cc5ac9c5ad391e379f12784135cbab2cd7e3770fe1bc68fbf5e", - "0e07c4fa07a5597d5f5c3f682e57cbf047cc5d8de859e3e7f997fa91c4a16026f43bac22a7afebcf56c804f656ad510dd03e6c4cff8be628a9a3fcce0034105152ebdb148100203f17eb37b7165b03661e5526f4fe1bcefea270e74a2bd9afc7fc00e52c9256548f36db3486b7cdf6fa9bea4d558d592fc6ed7869b8a59ce26608d21328a0e5001c273c8d29e3350c9d69d3b4a57d5574f1b18686c66598ac6de82d50af4589d53f1c5fba9e103ec787283d3\n\n# tcId = 196\n# appending null value to digest\nmsg = 54657374\npadding = 3033300d060960864801650304020105000422532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e250500\nresult = invalid\nsig = b21fb36d1ba5ac09f4bc9c9bb1c3b08ef4b5e39d5a13bb27de6d949022262723fc6f96e1d0f76bf95e1f90eca04fb20bc65262233f6335d8a0b8211f0e2481819607354700ede1ff85c8e53413685ac5d31db4fa5f807aaf6818b9531baf1555db3e062a3e74ad677e9f378bc6020a73673decc9f6176f4c2dcb02859932b7a7a9d12da602b668a14846eb8acd2abfa0952fe5ec78a67a8f6d751ba3b420464c10cdfde93b96847b9bd05504b1ca49121cc92db8f2b7a33fac17535fefe32028d0c1484f1aee86b4260b668d9dfba6cf27a7faf2bbe0df47267108a84bd5cf595f522f9a2ae52e4c4b7c9c08b39200683bd33043f14b562d37b910dd438f714f\n\n# tcId = 197\n# truncated length of digest\nmsg = 54657374\npadding = 3011300d060960864801650304020105000481\nresult = invalid\nsig = 1d582d82ca0b3db426ca8adf9465e46531e60d71b2cd7276f0d764e629a767e61171e1667a22c1a1404adf7e87b2617268c56e792d9f9653466666a09bc82d4c1c2c04fb9b8fd6c532f169196009598b6efc8feb2850f4ba8adb75d37705fe07bfc2e67356231f1845556ed8f3f8793f4c7e58572fe849ec0148a840e442968c1df6910152a5a4c0be18e3a7891ce2e16e53414366e8d92c1de75073818da1dde1c3c3f8f5c4d31d13da73bb507947e986915cbf3d9edf92a6bd17775eeadd9d5b363adaf1a33ccabd441267a476b314aeb86a91837b5c9a5d969001259fdc5a2b69982ca41405685379e758c255fcf35267dc2f1075ccb57ba0c339dacd7feb\n\n# tcId = 198\n# Replacing digest with NULL\nmsg = 54657374\npadding = 3011300d060960864801650304020105000500\nresult = invalid\nsig = 096a7f2148458f37e9c6589c25e4e90626468575849037e8f62534a01e08dbdb34332da17528bcd83683e1d05a6b159a8a629225e9067f20b0c7484bddf978178107128855f63a29c727d2a49ddfb650954e5c9131b98fd188858b595a2be7196921fa872ac945336a47224a4f572c85469ed34303bb23a5822b1fa87f5b5fa0a4bfbcd9927c32c32c349c0689600ab4f616f31dc19ba9b5e6f45ac64bdc8070863358949e10a46f2af51a071db4de3d7ce5a9b2d76ec66eae8d1e106edccf72d27159a113d888d2f3c73cbb738bd096fad53a7bd3ead255f928b7915b137152bda12b3365a1fb7f9c4f53cef8484b5bd59c5c34c692f6ad20e129651a7cab69\n\n# tcId = 199\n# changing tag value of digest\nmsg = 54657374\npadding = 3031300d060960864801650304020105000220532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5ac9934544425ddb9678fcfd28245b7f5568eb1de108e7d3e99e2d3810ee261b877073d32ae8abce7279f2177d6b11f36234ae2d9d03e4fa51907677a950ca4c644e64399ceed4395b18dd89a152f62a16520ee8ef27867387b3082db40e6462baa7ae6148c9e3e7d069d00431dff74b38556b31f3622b79b3714bfcfb6c662c6e92b3332f7e029debfe21430ea04fbd7cf75e410d1be0712fb5f754a9610f24f34efef2bf4690a589d387001dc652226775fb81b726b3c036fdce3a52ec7131d1fcfbfc2d6bb8434699d9905d9d7992d7977ce0a599309040ff4cffbff2028c9d6ebe7d0f9de0d17876f2da3a497b2a36170618c82e3f169e0ea0708557f1bd\n\n# tcId = 200\n# changing tag value of digest\nmsg = 54657374\npadding = 3031300d060960864801650304020105000320532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 13731f7476ca8813b66d36cd6cdb93a48eb42742cca037b828774ff5971c173bd08e88542f2c39f53ae8700a56be54755b64e1e81a00097cad58ad21b2ebc59518ab6bc345db326572bc0b39572590c90b2b72894b33cb2fcc37fbe549405a7fc656dee567df49bcd93fc4d2c235e2d14c2107952de0e635ee93cfcd167d4dc5e3ea1dd0cf79973bc96cfe43a738be7e1304d4c1e318eb32612cf3d6784e1f842b8780dc5e3a8ec369eb8226ffdf9be69b54867f2461c810c74187d72cefec60a646c4a576d8ab977d4daea3422007454a306e5acbf3f7043d5d3bda70752e4979d1657918fbb863d4eb8eb58ba6f2a372636871b75af84e645a7f49e99eb300\n\n# tcId = 201\n# changing tag value of digest\nmsg = 54657374\npadding = 3031300d060960864801650304020105000520532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 0cbf884a755f8ea52d3da21e3e88fbcbe2562d35440d1fa0f8c3dbd4f27aabb5603e6d1b172af543c6739c8b644a4f438df55be7ad17a82c69a03d08c628c8fdbb7d1ff9202a7fb7bd7d4f4c400fbcaef8aa463f1e0ec72b1df8834e07cd4f465a97f7129fe9221ed3205043d2ea4597b857088fc27e95da84900e87ce9578d8bcb120b23096b1f143ced492cc966e2ef60ffe9055f5d225cad682c12fff248347f234713970565c532cc2302965bc69af16acaa3ac8b59b9f8698261a1a6074e3a3bc2a6e87dd01f2c0f13a628c134aaf65500681f1a002d921725b362d94c5dacaa8726c0a029749f9ebb699028b48e59d22dac2aa27ffdc35648a57c57f70\n\n# tcId = 202\n# changing tag value of digest\nmsg = 54657374\npadding = 3031300d060960864801650304020105000620532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 711f73de0bbe41e3296a1473121f47a735d093a06c9c7be63559987d98f5fc52c6dee6de2a3fa565e9dc6c75308652978350e5dc407560474ddefb45f8bdadc8dc89b5640aa8552117161d8da703b52948b08596b92dfb4d343320aff80af3507d11a27ca6d2db3e2f028cc1d53adde20ae164f602ee146bbadec7a22b36eaf08849e35425a88bc1d6c8f1434a82f31998f980579c287bef989607c0e09977c52932c9d1b1a7437a3c87d09d9ce521c59fc44c51a279d9d3c94c88405ad38c3122e2e993348360490e1698d4ab126b05066fbf764f259c69fbc7d875eb69a78bcdad95e3ff1eef50183791acec694449e6c944bf2bebc01e5f1cc62d60b83966\n\n# tcId = 203\n# changing tag value of digest\nmsg = 54657374\npadding = 3031300d06096086480165030402010500ff20532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 3e85dff099a3f6cef0b15f86f749cfd21c5ca4a6d7ecdfb075a9dfce9e11240599be07f5200431771763469e1d13eedb3914c2d991fc49f32769ceca68e3de4ca53c1fee5f27b54c05ccc69d4cf0ad3ba62202bf7f1c6fd5cfebc7a8ed29e489f6350372f439f606d0b1e879438463b400704ccc2a323acc70ac4f46a621f0dcb49dad6d72cc8f4225dcd9e228f0611e28847745d0f24514506a91ab2a85b4f8f0fd02850c37e2e923ec14c2099ba90b9cf72ced38180d94cbe313215e19dbe46923e2d573115443f3e98bdb96305dac90564c4e667cf3430d174cd077c5533ecbf3f8ba08e7ac56c0b03c4d2dd0caa9d13c968f6a4e968418e42ef4f52aaf77\n\n# tcId = 204\n# dropping value of digest\nmsg = 54657374\npadding = 3011300d060960864801650304020105000400\nresult = invalid\nsig = b9861f3d1a03cdd4f49e90947a21e5da9fc1281a816a9f5b520a7de27740504d43333f5facf65dec5bb06699c37aa1aa911bd4e8acd7aaeeb6dbe50e577731b4babd4587504821be0ec4798b14124e9adcdc2831d8822e7768302338953584147af1e323a9982ad01cc79f46e239c804b6c119a022e1850f4445d98dc27e83f808f33f8c0c81bbe16d5f04ff0128e34d03ff6a65260a7ee6e10dcd08d09d9db7912fbfebe0304b00135ab184e063a884992ccfa5d64953ae98f050c751817629fd5491eabaa52b0e52626bfd025c926dbdc25af5727d92bad2acc5ed59f5f597606c9752579c57ed0e015440ac194228323a71f708fb92d5cf36c841e8a07366\n\n# tcId = 205\n# using composition for digest\nmsg = 54657374\npadding = 3035300d060960864801650304020105002424040153041f2eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8729c630297b010164e90d0e99fc65eaaaf2bbbdf309f20bb48037bbd40e59ebd8d6fb7e23911051731b5ba5a8423bb3d0ab44bcaea5eb03f56eb8f3ead1c3fd252197fea478fb4b9b9b4e0649503d4f45922ebb72a4cc1716f914b3e8dd8fb111c9300e946c0eae83a2e6c40093fd1f55c684e4c4b2b0f09ecf03ef71a01449eb0cc2c4a274cfdd55efee7ff136a28626eb86af9d88c25bd0ba012d8a0218d43bb02d9b6b1273d3d2414789aaa076da4dcbde9444a151fba9c25ce225876b63b09e17b16e0e115a7db6860afd08c48ad37aa64a54d8b0230314354f1c943fdcebc1607e66121fdb7390f131ba6bbf8f88375497505d7d3ba4dd9761d842e937\n\n# tcId = 206\n# modify first byte of digest\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420512eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 6385c6d4dbca9ee08e1f525a8b7915831a732854c7b26cf42681bc90dd49078873025b62e1830ba193445e129fd419ee12cde859032eefc5758c6c12ffeed3ed049322609d2665b5e1eead21af5f354acf336629e62cfc4a740bf9a51fd66e6b72287ed5558261252f50dc925417c1e48a4552589a7099ab0a3371cdb1c209573f7f5ac9436d298fda9606f9582e8c873420e7c4edbf5ead17e3c93fa3209208b91728c208b3fd10b27045be1cfbf242c5d34cadda97608271326444ad35d309d47f4add6bfc5ad95710db6d65f82a06a04bd7c71e335c2b86cf6a466c311f7e735b8ff8c2912269c3b1f2007f7d1369a55440a5abd98a46a4389756f73782ef\n\n# tcId = 207\n# modify last byte of digest\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345ea5\nresult = invalid\nsig = 1eff927cfa95030c95547b3f3403", - "636ed63fe85c99e21e64bdd8593f56119329fd7d75f876e13317aafe540b79964cdf62330cf98be66ee41ec92d7ab9ba7988e8bf6eba3dc95ffedffe09b382a9ff566f07c61c06944de3b68dca4c4a3b2076e778286b50c6ece0dc066c29dae7d824969fecc6d5f8bbc2731e875ed9780428d53591d2f2021aa7864baac55d276cbb14098e9af5869e18c29c89d8732503fcf8e65a384454785ed39dbc516eba130e2add655a8e7df260a668ff9214194681033fd8b57202fdf627270fe4f63a49fbaffbce1520562ce53c9ecef6da5e942ad06c8ce3e673524b84c19da4f071d9d0ef9e24d4c8b0dd64627ccae7468372bc\n\n# tcId = 208\n# truncate digest\nmsg = 54657374\npadding = 3030300d06096086480165030402010500041f532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e\nresult = invalid\nsig = ae443b008918b477cc8f80c54afc175ea0935ad53bbb2784fb1948ed4186f0374b760302dd2346c3797e79a080461c802c39cd72bfc9101b408ddf8ac4e449e2f2f0f03cc1fa5dd77e72becd52a36da64150edcd290df30fdff2a4701c7e923756eb4700184af4e06078517385f9f52d650a46eb94393b37761444fa1d3fc925579133c85e63b25a7a7d1587dc43fc500e54a70ead1cf872e47b33f34ce7971331007e5e74aafe18895f4e5b1faf925437af5dd7d5ac520eee778752130ecdba9d33a792e189e9c8d95770a4d5ecfd71647c99470604b269f14921b1fa50ba063b47bc6c490e9926e4065d5602555e51c9cf6669ee53b7cc7cd0da607478a5a0\n\n# tcId = 209\n# truncate digest\nmsg = 54657374\npadding = 3030300d06096086480165030402010500041f2eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 5189a516b2ff014f527ffde7cfd65cca11f0b907160ff901a51511d4b94317e86f3065600728ad0c43e68a6f1f7017708bb8dbbc84e388f43a9c83acb98eaa6b4532cc68c4c6a44f649989b5d254f89fec6de1fea45e3e5b83e562608a7867f0919a2320a120c871421eb164895ed4bae27d34227b1e8cfb600292d208cd15cd62068aff9d692ae8088c9c08a51202694faec5d6c78e995e5e013f931b8a6cdd726357d0d5c6e9a83dc634810fe383ea1a89adc42c2bc675f075e571ecd3fff8581a0df3f83b1959a5e64b5eb1cb9bfb5c4c4c17d47a24a2ab3da66ba62d54b74624555c19c56ffa94203cf78101d181ffeafe8e8fed9e0897b27a88419aa540\n\n# tcId = 210\n# wrong hash in padding\nmsg = 54657374\npadding = 3030300c06082a864886f70d020505000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 8b009088b814c2e2a306b4cfd72d87db4ca1ebf6ad5f37e7aa29777b77d93c005922168e3634be085c9e4b147194046e38b7d32fe6814652672cc6eb724742a0a22fae278a9953e665e7351281c42e98d4fca8237be482080b9fbc471b9854ee75ece636868c6b3270dfc7dbb32cfd2e28901ff6ac699dd74d8bf096bfe89c22c228522474df25d13e5b7c1148edd5df5fbc06fe165729418221c610a8fbac579955b8625eeaa8e00aea009b42b2456c9316c5c005688bc060e61bf302418740f0be9b5a30df845608a9008804e89d1a5233d34b6fa84c3698451e472fedd9f4aa6ffbc9f4491256df7181334ff181cd66dce7dc66ef9d3c511ae5e6e3c88083\n\n# tcId = 211\n# wrong hash in padding\nmsg = 54657374\npadding = 302d300906052b0e03021a05000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 4469b8e895fb4340328360414352059a4b701d2c21cc2125d91f5025b7b22ae7ba840123ef45ba9c8c27a8a34a74f010a4fdd6be9474ac270501bd96a602afb05df7becdcaefb29df9be5d090af6869a4311fe94b70bcc0c5633d69169ca038b2fcb2a4abe60c0b542b308527781d184d06966632d7404da5e3494d76bc72e9f87d006950e7a4388334f99e212d5f253c11fa8361179be7bc927d9437ed11b7685529e832162e41a72ba3106b9af7acf5fef70178fd83ce3598683ad61c27cd1d69b437dfdf93ac43a1876d594e0eb8523a0ef8f75ccf1ab079d4538bbb726d04f45ec864b04f57c18cd6984f1a3a08a7c3944c6946c3c3e090f9d833c5d3d81\n\n# tcId = 212\n# wrong hash in padding\nmsg = 54657374\npadding = 3031300d060960864801650304020205000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = 68a90a62da7b0ac09e26ca8786723164c0e6535e82f28839d12c08348aacccdf0218d3470290665e6d6fbb59cafda63c9e50d596442b02f4ec7b55753b13b82b217e32fc5f3818e3fee1a6b89855f5902dcdba3eccffddb7491317961af36dc74f5b6a4477f57aeb28d57658fcb8e77f8e223d2870b730d53ca1aadeafb389d3f934ba609689ce50bf82b08f31dc2578d7f076d26be5b267e87d2ca4df8d57c112831f45c46b9078c3ec13b01f0b5d67e82579243408e4eb29a154314cd5c68cad6b7198a02c522d87aad93e17aaf8fea49d38e39314c12c816e73d997c0fd10cb12d47aa7af0e82fa4b939f1209085c01a88f5cecd533901d5b1ab2866e753f\n\n# tcId = 213\n# wrong hash in padding\nmsg = 54657374\npadding = 3031300d060960864801650304020305000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = invalid\nsig = a1060a690b31b1b2feba5f0b8ede1c8f025da644da1f1d66a6cb218226ea6751a7f391ad063d80b63035cdb991e6a549d85c9f569f7677a40becf0326cb93297e23ed49dce7a5c1a4866d788aec24d23cf9c9cf15783ff5692a579db8f11b7e1ee8d28aea15f358b4d01e127dc438f5edf53346744594c3f946492a39aeaa17352a6791a52d4812637c8612323a50af3b7dd4216100020df91b653e5e4772bca49750ab9844c8cf13d651541d2a1aa7c74a673e645971df9acee059fa981ad39e8011b06bb39a86cdbba9fa544b8f2460188ca04354a95effed4e7c5905d5bf25973589809360d5e154e7a3613c27f4c5c920e71996063c2f86c44b7ad12a376\n\n# tcId = 214\n# wrong hash in signature\nmsg = 54657374\npadding = 3020300c06082a864886f70d0205050004100cbc6611f5540bd0809a388dc95a615b\nresult = invalid\nsig = 49cea19f5adb723c41e895337a24ced9e685736ec060f2aeef35bbdcf37741056d5f3ace051b0f6099585d82f576591da0c1139a590685b3e35ff9053bc6c3e381cba077700558328fa785128f78f5cfa481e6bf581bc9424f101cd8c2efeb4f8f00684776416c309d217df1dfde8f1e4643aad23207541fafeb5b7d263fb560cfade4792d716f68e7809cf8478cc4dc6a4c14e4e5df4f137d7a05270c6b0ca1f73e77eac07f5e7b60c8574b5c7487db4aa334173fbe03d93805bba291194f02f77ec0eeae2373ec9fc467a621feb77afc7d3757ca98b4f3fedbdc391f99df24663233f7394935b14eb81cf5b24d169cafa7506bcbcc2a4166fcf8fdbd5f7f3e\n\n# tcId = 215\n# wrong hash in signature\nmsg = 54657374\npadding = 3021300906052b0e03021a05000414640ab2bae07bedc4c163f679a746f7ab7fb5d1fa\nresult = invalid\nsig = b1e5095d61e4a986fe3425a08401ca726bafcb778dc818254e7ea5d299a9ee3e8c303a51ce19644b60a7f6156850b3325f4ada0958ce9a0a8cfe2a7ca085538b9b9abcfaaaf7413c810d6b2c03b5a3bbf98faef5374053cbff979815e5f1a38980087b291e1cf1683febc32da71b9040bedeb014de01cbc794ee40c12e7d44cbd01336ee92884d60d20bb0c9a5fe4d7dbc93478dab044bb6f04050ee4a3c8d2577c0e8443781f1ba5d8e763ed7f879f0bd970045299d2e2bc00ae47598e822fdf2461343c5c5f2111b099823c35b7ec4f07d337e52729c19e1df28c4bab6e7fbd1abd9cd3052920875e59ad251970e98c7a944ee6ba71787f65eda75e84cd048\n\n# tcId = 216\n# wrong hash in signature\nmsg = 54657374\npadding = 3041300d0609608648016503040202050004307b8f4654076b80eb963911f19cfad1aaf4285ed48e826f6cde1b01a79aa73fadb5446e667fc4f90417782c91270540f3\nresult = invalid\nsig = ba0ac1ff39b108015703583afcea5c777ec70df6ad11f561f23ca84eeacc73b7d93375f5e44c6c84e16273d442f93e36d474c7190184a0766e5b2bfe9896f0f0906a7a0c08dd78f0a9702cf3f706040893885f1e1da9cd01aca80de8c0c8197bb6e5e34562c37ff3256fbc6e99d1e9a7459a2cb1f49eb371a9e3cb1e87a460880664adb76e6bc3f2652010a7a1dde552dd4aadcf30366b0de3964e85d76bf79e20ced2aef87c9d31b4f2756cea23d9cef75ce07cea41204b42260a25ded448df639a0493d24262e1c411b7c294cabb56b95126c44d333385a63dbbf9219f22499812ae99772ba6c30d881c4bfdb3d074cc8f6090810546e64b1dfff6847a21f1\n\n# tcId = 217\n# wrong hash in signature\nmsg = 54657374\npadding = 3051300d060960864801650304020305000440c6ee9e33cf5c6715a1d148fd73f7318884b41adcb916021e2bc0e800a5c5dd97f5142178f6ae88c8fdd98e1afb0ce4c8d2c54b5f37b30b7da1997bb33b0b8a31\nresult = invalid\nsig = 4ab504da964bee491512b40b79fe9befa7e5960b142b619db35569cc9387265cc8fa8d4505b3b7cde5e884853bbea5d47ce7d60aa7e4c81853f0ee3f6b357dda5efe13119fc42f464b0cfb9d3506024c2c884eb57373e16611a6ec1eb803a61300bd248587594d081b501d5a141d2ea38d9ef69a87a3ee9d8d83aba410b8d30765c81f997d71457dc8ff1d9c3ed83f06f0156826105bc0a6fef0260ba6fb24578de5f58e7b0a64d5da1512f525f41e987a27e4d59c7d4917fb60586535341bf1644f6bf6a7e3cfba1c225a66bd65cc90b1eaed3696eaecbbc24a318a2e2ad711af85b02ee730940aa3dcb2d87aa8dadac182b5eefebaa3e729204d04e8ebf09b\n\n# tcId = 218\n# using PKCS#1 encryption padding\nmsg = 54657374\npadding = 0002ff...00\nresult = invalid\nsig = a5280543fcf9276baba49a297f0803ca4782cc05d35c53a7bd692b0356991d1ef6211efd591ef2eaa5d39b00bc193f3a5f175dd55de90f04396874b799374625a8af5ac162f9af79eb5f3615dac8a33c8d41182c6183db82b9e509ddcf4de0231e419d0e07487fbbb42d84ffc9b4f4c3ecdf6efe2efbfc64f3f665978ab6d210febb690d05a4c9252f97ddca64884df93fbcfc6356954ea7c4f486f2c201e6988400802904f61c02acf066698ff5af6fc8eaba4f81ec93d886a47e4652aad5df2ecf463db049b923a657ca629ba91ac0090be3a1381432ca2c3abccfb85b3c251776b910bd7ec4283d7493e309d251e07404324de24d65a3dfb8e3c5cb8a5a83\n\n# tcId = 219\n# using PKCS#1 encrypt", - "ion padding\nmsg = 54657374\npadding = 0002ff...00\nresult = invalid\nsig = 4f2688932d7bf6ec48e50c69933006d28b055aa97621fbebf3ca336536b8dc61172c8ad52e453c4ec203dbb2904557012dcf43da92f55d62baa56961701bef821240a5fd2d1735ae14be136ea92ee10adc650eff7ef6b5cb08c3f4a9dc17bcfc66cf50616f305908719f467af5abb45beea1835f95544f53cf2813394767959ff3440da42757bd135806be3ed2698ea3d903e0f2447916c94deacbda484cb1e074114dcf3b41bf60383153b838f018f8b2e35e3af68eefd202a2b3d7ddc1ec134fff746f1ce9548f9e53a3cc41faf2e991ea1b5860c55f5c000bff72f5524bed9cb8f9e8dc34713f3ce443d202c8ed3df13dec385e8c19871508804c3267b67b\n\n# tcId = 220\n# invalid PKCS#1 signature padding\nmsg = 54657374\npadding = 0001ff...ee00\nresult = invalid\nsig = 412f631c6df4c4402f70528635f4ed69094f33b198499980ff880e8e5fbdd22236c7836cc65ce18c1b3f183b69a47c27f3699fe7477462fa8d17e8a247e6ee9e994037ade036583ecf4497c083f78db36a15bebc291f164568655c27752f2ad27efa13a7fb897e658cd9f6aa1515bd14a4793fedb7722fb148c3a0e48cae63d14ad939a99a90f1dd7a7c09d478c9217e31f083c12dd3395332af68a4231a15069b1f43765584f6aa094645596ecb4923c59430e6ba76ae7ac4aa724b0fa9b5e2df9d9254857df70423f9323bdee97d74d662793ac72a0d089a79038b8b85e4c0d3a6f616fadca300a77bbd53ec69287a1f0f6fab0560ed90a28262bc310c14b1\n\n# tcId = 221\n# PKCS#1 padding too short\nmsg = 54657374\npadding = 000001ff...\nresult = invalid\nsig = 77dc98b3302f80235104cb8810d290be782529da8d49c7ed804c59f6435464668dc2d1fc3040ff31d7da3e31a472e218e7f8bf20b626673cecd2a56d7c15af20b42f3b1e155cb5bd3cc0f15c71152a64a6f15fa3e12f6060c2539f6f635c56a0192be82925c277f5f317b6531f1d5618ca95d038b4df9c1a99df4d09e6f5eb8940f8c5919051180822ccccd49c88da70c9c0bc1f206fe8a6d8e5678c02097f821b1d53a26e5542d9287442e9f74780fdb40f10fcd06aef31bc8f14de73eeb437555c4510762fe6bded19a21eb5e94ce51445ca10a6569f2a92bf70caf2e442975611c6f02b3e2875f911260bebfd5131956c98c5932461831313e3cdd9e7ef0c\n\n# tcId = 222\n# CVE-2017-11185\nmsg = 54657374\npadding = n\nresult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7\n\n# tcId = 223\n# invalid length\nmsg = 54657374\npadding = 2 bytes too long\nresult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70000\n\n# tcId = 224\n# empty signature\nmsg = 54657374\npadding = \nresult = invalid\nsig = \n\n# tcId = 225\n# 0\nmsg = 54657374\npadding = \nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 226\n# 1\nmsg = 54657374\npadding = \nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 227\n# 2\nmsg = 54657374\npadding = \nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 228\n# n-1\nmsg = 54657374\npadding = \nresult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a6\n\n# tcId = 229\n# n+1\nmsg = 54657374\npadding = \nresult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a8\n\n# tcId = 230\n# -1\nmsg = 54657374\npadding = \nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n[e = 10001]\n[keyAsn = 30818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keysize = 1024]\n[n = 0d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[sha = SHA-1]\n\n# tcId = 231\nmsg = \npadding = 3021300906052b0e03021a05000414da39a3ee5e6b4b0d3255bfef95601890afd80709\nresult = acceptable\nsig = 03e64d148e05201b021fb5d3d72ab6abd4294be6c1673277ba5822ad2fe7ce4bb29ac547b2fdf09c2894ea0e31e76f1b3e1937db91c389467e9a8ac7be0a4f674456f01c5b4fa4277a26028b49b16e25689827d0a4b9f1c25a63350dc15131da908a05c7cfa8c08a67ac9efe3b0cd04aba7db12064cbc36729eaaec540c4bc12\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a weak hash function.\n\n# tcId = 232\nmsg = 0000000000000000000000000000000000000000\npadding = 3021300906052b0e03021a050004146768033e216468247bd031a0a2d9876d79818f8f\nresult ", - "= acceptable\nsig = 1d19763e80121e228ac4dbb3be8448560aac613ec74b168efe1d8a8335b77e6d8c3cc0f641de8c8e26a2aff9d32a4ab77340912fec0e60e89257b5b6b19c8deb866c2d2349fe63a06ac6b72397b478cdd4198ead64f8d36b9df29651e95ac7b886978cffbb5f7498f136b1ded7580cbcbb31620415eb71cdb5bd615b47eff813\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a weak hash function.\n\n# tcId = 233\nmsg = 54657374\npadding = 3021300906052b0e03021a05000414640ab2bae07bedc4c163f679a746f7ab7fb5d1fa\nresult = acceptable\nsig = 0891ef2061c4d3377744cd7243ccc444619df533f4eadee216f7ffb9244e86d3e0162fc82c0b9502dc7aeebaf7884067e5f18f21b395c43bbfce5559ae84157ffde2aa457b7f44675e706af443acd9e38070428dfc6471a24cdc0d44f9283ac158704ad114375f10c24e3adbd12c55dabb78b8c41d3938124acc74126c82bb0b\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a weak hash function.\n\n# tcId = 234\nmsg = 313233343030\npadding = 3021300906052b0e03021a0500041421f0fb55d0f5f4e1521ec82216000a17e728f773\nresult = acceptable\nsig = 8277e8984d536f81667feeee7e24068ca5bb8b815210b3e9fa82294e11cae92c45164c9dd5683be4650e4b7709eb8879f793ae804620750b26032894e53333158f6afa6b52318e6c730a4a55d5a0fca6d029744f2ecaa2e00d3d6dffa0716acefd5c91afeda74b7f1a1bd7e635283bfa2142ace513da24eb8f25f3578a401ba7\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a weak hash function.\n\n# tcId = 235\nmsg = 4d657373616765\npadding = 3021300906052b0e03021a0500041468f4145fee7dde76afceb910165924ad14cf0d00\nresult = acceptable\nsig = b41191a7a1d11e973600e9a28c8d6e6d1513f7d970cb05ad50c686bd6fc42b7848559b2b3073a8cc9839f464d82f8a7d864cbc9698cc1a4b5b8c8103d07e9d79e5d24e1b3ab69053461bd76ac3b62935c31ef9f0c44120bf5c0a012eeedbd2a39d347cf6676ee8c81a88eb87eef2708edd793ebb79d6fced626e6475681fe73d\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a weak hash function.\n\n# tcId = 236\nmsg = 61\npadding = 3021300906052b0e03021a0500041486f7e437faa5a7fce15d1ddcb9eaeaea377667b8\nresult = acceptable\nsig = 29f69d320ea3221cd0704300f456295becf54e877c2b9b2704dc47ef992588c7dcc1648d17172d8c76362c488aadb3437be488fe667a192c5db1440f70d102361d7e85ffab370c7bdaceba0d15b1f32ba0801ccddc9fbaed1323834a60d19ff13ecd46a27f06e79cb0d3aefdefc0c69d8e85fbe8761d83f35e362355ba675933\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a weak hash function.\n\n# tcId = 237\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3021300906052b0e03021a05000414b92747057fbbdde83bc06b7e869eb40c32d08a6d\nresult = acceptable\nsig = 9aa3040e7df724bf506881f6a92a133ff76f6a168f0f3ced70b3363835ed6b655fae6f39416555af4071c16262da7556412d9905279d666f9e15fb8a813b313d00007cef3ed2be306b9e29e6b69c2c5bebe36aa057feba44ccb6c8619076a5b23f39729ef78bd6478249f34ee99f3abeef37c504410910d1ad3f1a712c8d697e\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a weak hash function.\n\n[e = 10001]\n[keyAsn = 30818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keysize = 1024]\n[n = 0dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[sha = SHA-224]\n\n# tcId = 238\nmsg = \npadding = 302d300d06096086480165030402040500041cd14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f\nresult = acceptable\nsig = 507e6233a3c80971daa07c13f34a532d53441e196d642fd6564b347fdceb865c55dd47330587622a30f8d4ee66bf8f163c626f8dd26b313bb4095ea1ae9d6a96a24365f4c20056998eb9d1e3f2e1c78257361e5c21e5ba76320997e8cb30021e8f11a580000891bca3537d7a2c0972e06844f1a01a1dbc9a3f8b8a2955f7005f\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 239\nmsg = 0000000000000000000000000000000000000000\npadding = 302d300d06096086480165030402040500041cbd4f57a4cfb1649cca33372f5c5ad32b993ff73aaf4fb75d52798480\nresult = acceptable\nsig = 414de39059daab523a725efe437d688824a43689766b33136aa3e6da0a2fcf1c2aeff952605c2f1a12a29e36f282e59631f442af96c7659e0717bb24807835aa06f034906670b042f8db1cdcbf3c54e25472383b6b9097a09bfbd73b2e7c10e18731c6bad47af591bdb2d376680f6cb62048a97c19f23a70e98ddedf02786efc\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 240\nmsg = 54657374\npadding = 302d300d06096086480165030402040500041c3606346815fd4d491a92649905a40da025d8cf15f095136b19f37923\nresult = acceptable\nsig = aa5d174e95f9a1ff88c1ce60b3aed1d39e256e28b0512cc4b52be1d41b8ccfa2a739945aefb5b697886f4f08cef365d18bdd8151acc588fd4ebf2aede9bdd904aa3481822206f3fedc5889c9f9889a8dd4d160d65e587ee228f9ef155108cb283c4e2a697a1e739827cb4a9790f96023e6ad24cabe51741a7c7cea8c52f08cdc\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 241\nmsg = 313233343030\npadding = 302d300d06096086480165030402040500041c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c\nresult = acceptable\nsig = 54a81c62bed2f716feb2939f504db144c1c3b70485a1f35b2871ede567ffcdeb8d2ed0c57c56f21b70388d631be05b4c738e67f160f34ec42f236cef92b03d3dc8e50145b33e634a6fad8e87f84624e96feefeeaa91ddbb003c3969017dd2d102da2e7d5de8ed298139d5e503e0aaab136fb583b99ece2e6b1681699a04b977e\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 242\nmsg = 4d657373616765\npadding = 302d300d06096086480165030402040500041c3dc6a3fd912b08bf15170296c4f1694f512ffa1dc9bddb8b9e1c8d38\nresult = acceptable\nsig = 11890613a8ae298c21bda95fbe4059c37426f41ceccb7bd79598c72ab4662e012f08b7009c15155b5ae9d132b4ede565963e6014241305279d60662f57df7119e5d4088d32bfc7e0847036f41ca71f9a92660f90ec13ee9e19717d0b567ec5a6b5978a11337d5ee4e9147352fb954817be04fb767ef35c07babb03fd04a31338\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 243\nmsg = 61\npadding = 302d300d06096086480165030402040500041cabd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5\nresult = acceptable\nsig = 0fd461012145fe0ae9362eef22ee35dac0d4751a037ce4cf0792012bb179d101f9a9752e5ebc5454b18684fa1b557f3136ae68edc087dbfa4bbfaa59be42d0daa84b574a9f23238d4d538ae3e6c32f8dbd98b1138b545badcc10b184428fe2707aec73206367f147196f7b83f358377562e8c7d9f1d396a1cd9aa74f8a78cb1d\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 244\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 302d300d06096086480165030402040500041c15a322a18b35c3afd3937b5ac133fbd8d883d300a29ed9d9e2b3d601\nresult = acceptable\nsig = 307e421e06bdec1fc1750d53529f5f007eddcc991af8351477e1d67169409e3acc93367fadc412a4554854004c4a29c8af4af09793e55967ed439645034cc9e9ae565edfc861e04c763d058ff3aa29bef3942277b4c971d830be1259aa30c125a6ede65971b0120758c2a6eb21f238ff18228f344155ff9109a0f9656cae2351\n# The key for this test vector has a modulus of size < 2048.\n\n[e = 10001]\n[keyAsn = 30818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keysize = 1024]\n[n = 0ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99", - "816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[sha = SHA-256]\n\n# tcId = 245\nmsg = \npadding = 3031300d060960864801650304020105000420e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nresult = acceptable\nsig = a0abd165a5ef8733ba111fa0fa092630222d809d8ae811f24f8bead4968b7533af31019663713ba134e7dd345c38e7166a037025eb34adcd6891c9ec941d2e3eb1e4bded1d269272b602cb9b53568b992ddb5103914e6424c75505701a37996c8318b0b6f8640cb6b6e770ac44314b866a7c683a6903f7bba07b6f197ec554fc\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 246\nmsg = 0000000000000000000000000000000000000000\npadding = 3031300d060960864801650304020105000420de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90\nresult = acceptable\nsig = 41339884a9b3940e8488d666bb158063c6a2a2717cae7f564834a876fcbf7098ecf3acbfabf37d38a8e6127b1e313744f1f896e165efdaea0b2e7673867842b9e94db0868ed9a92bcdcb370a4e20ff275c82595e4400a8b9e9f12482f014846b48216f321266ae6ae6338dbcdc41b711e483e6e3e728772e7f9f5ef95c30196b\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 247\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = acceptable\nsig = 8883676becdc27878ccdff53dda011e5e2f886e31e1e88d520bb161cd63aa001fded9f0656109c1507bd1ba5d3bb3e725029a236b4c3c0420a1fcfffe348c5277d6aa51bf75d9af26fdc15fc49d637b078a8b0478b5b0a9c428756d260068e5e622f193b9f9a2c1d979e3322d7f3edc32053541c6efa2485e42e99a804f94388\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 248\nmsg = 313233343030\npadding = 3031300d060960864801650304020105000420bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\nresult = acceptable\nsig = 9f2e01b92bc9dd32dcf24aee91467797396649a3255bac943dd0e03c9ef416f349c0cbb728704730f3c7a7c244066a94b229a6e86bde7753c8940129626307b542cc7f596583932b4fe6ea9384d5353e08654e966a64b63bd6745503f7e4383dcef74ad4516ac25c8790db6702ac5b8b057a8fae75669b6a9e689e9211a337b9\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 249\nmsg = 4d657373616765\npadding = 3031300d0609608648016503040201050004202f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91\nresult = acceptable\nsig = 3cb9557d9fe49b889319e0d41efc00cba34277caeed2b2c54fc89772c669200dd63f02f340cb6ed579a379a3fd6a568ca9d4bce206655ae4586850638ee6bffaae2bed7c7afe7353d22418d7e4f6b15e198c85b649d3e5a67f00702dd9fefed7dc72136bb4440fac58e64453e4ee63a81de4270446571b192f414116e165efc0\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 250\nmsg = 61\npadding = 3031300d060960864801650304020105000420ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb\nresult = acceptable\nsig = 06e6fb568e366fa20d48704be40e991a291d47a464296a49c37718c1153b0fea17ac18a01ff97b32a92d07635dfb9143d011d003c9153020f5ef7fd3ef258cfe92a7a2120718fcc85c73acd34cbd50670c2e044dc3b82fca29b1017912b65d8a844515655308367d8797ae5b7fb91042df573f32de69c1842a128ac88937c0e9\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 251\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3031300d0609608648016503040201050004209432c1a7d343fcfacb164bdc44ff71c1281c004886b1c428419088d06cd3561a\nresult = acceptable\nsig = 327238fd701dc4a829827550aad98f9bcd75e9f3831c3679998c869c1dd8381bc6b74b721e9d3377034e059d6637690ba3a184ffd98af951d43a22105a51838f72cf592d658af01adeedf721cf2eb2bb2c90c68311cb267f0cfacca903c1a2a73f7228badb5d86976f5d3371fe9b00cca048a7a0b0fc4b03da11c5a098045e07\n# The key for this test vector has a modulus of size < 2048.\n\n[e = 10001]\n[keyAsn = 30818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keysize = 1024]\n[n = 0a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[sha = SHA-384]\n\n# tcId = 252\nmsg = \npadding = 3041300d06096086480165030402020500043038b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b\nresult = acceptable\nsig = 8bda47e85848bb1d98eab90bd5f1880540204c8753a17b2552ee4778405e4c42cc3d25a4d869eb38f1e6fd122a2f52fa8685c3ef40400ade2017555ae88fa892a1ad2793f7c23762f0e54db0852cfdb2e52ebd02c8acf81b9a1e78accb5fbb57a29391cf4fa9aa298111c7b94fe240f0f576b1b52853853fce13da155f16e81d\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 253\nmsg = 0000000000000000000000000000000000000000\npadding = 3041300d060960864801650304020205000430a5a2cb4f3870291de150e09ee864f3b2b3b342937ac719a149439185ad6a47bb4f23ae83ff20f0c8f0c79a1764244a63\nresult = acceptable\nsig = 74b9a7b9548a281c5a258520c879e0e64d8a28812a7b6461c6e418e0502b61008a8e535a5b55fb64529a6a6df2f60ef33c1844b27f81532be2bc2992d0eb5e524112da90bf40adefcf206469639ff3895a9826674ee1acbdd623842ab0a9a36d48da13ba17c4ee069254da2ea418d5a8f135e2a414c0654a266d538621917545\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 254\nmsg = 54657374\npadding = 3041300d0609608648016503040202050004307b8f4654076b80eb963911f19cfad1aaf4285ed48e826f6cde1b01a79aa73fadb5446e667fc4f90417782c91270540f3\nresult = acceptable\nsig = 10d9c8b0bf55586e985799be60a17979eb0461daca00ea6defcc62fe720ea502e7e486c02a48f5ca41ecd96c67b5c762a067c465c35a8e416748897ede3ee2cd3c3e1b1199da5c7f0dd0f036774a1730e63ba781d6ee43d78b067608e831a16dbec6075c8ec90e81a4d8e2ac2587b0ae43f7445478b03ab7eba2e63d4043c2e1\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 255\nmsg = 313233343030\npadding = 3041300d060960864801650304020205000430f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace\nresult = acceptable\nsig = 2cb15eb09030fade89eabc41794d288275c456f12cb0d414311e5edb551a51c3e1354f134b27aecae50536379a871a4ce6ab2e1b999c0308f5fed2ec48d97d68885b37a1e3e26b841db103b64f720f9aef265632f4f4a207ddffe19092e8b16144b0a3443d779c0b648077d3b04b72dd4f4051ac232261ac9df65974764b97a9\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 256\nmsg = 4d657373616765\npadding = 3041300d060960864801650304020205000430b526d8394134b853bd071719bc99d42b669bc9252baa82dcafabc1f322a3841c57cc0c82f080fd331b1666112b27a329\nresult = acceptable\nsig = 9c80154e3087b443fe6d9bc24faa7ea009330a210f2f1063ea1b61261507a5e3853079a0287d5b27983bd751ac782b1a5c31130978d3f2a8a95101c4ed87eacee964953ad32cd2cd4caeb7c37330d1650d7ca19dfa6e8f1c184d3dd9a3a759d6badc700b7063d2c579b336c5e141c200614ba613d9bb6493e87d26978b438573\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 257\nmsg = 61\npadding = 3041300d06096086480165030402020500043054a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31\nresult = acceptable\nsig = 99fc12c90f67dff9600c30c9f81bbf335492151345c809c05771d59ef73d438f88c5c43ba507a3cad6633641d70ec3f3c38f67cf7f2566489f59422a2dad1f647e790bbd28acc290ab392d48ce7a140184bb71023f8c9c5dcd9469ebe848063d96bad26fbd390974b38459d51727eb8c0a5b8a8ef1d3394b6f852dd2b22cd22c\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 258\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3041300d060960864801650304020205000430ae9ada2a808aca7097c9e9c30fba4ca60a5e79874a6be0f5afeb7f5df3538346f04b84ee06bef7ac879a0085bb2036c8\nresult = acceptable\nsig = 869b42bb93624a139bb98c043cba8fe12d612aef040e3085994824a480274c0cca24d08d178321acb048055b777d897e267cd50809bc7e9f86c276beeb8a8d59d82aa2091c66c71e41ca59738b0e18f055f9c75a01e87aaad446e64ac0183c002ea2080415ebb4f85a590622bfa4e701a6e37d0b33bd78d5ff874d8", - "d28fda263\n# The key for this test vector has a modulus of size < 2048.\n\n[e = 10001]\n[keyAsn = 3081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e6110203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e6110203010001]\n[keysize = 1536]\n[n = 0b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[sha = SHA-224]\n\n# tcId = 259\nmsg = \npadding = 302d300d06096086480165030402040500041cd14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f\nresult = acceptable\nsig = 9cbe6b808679d666332a97049be279327c7e00e3c17354fd1d5f611969f487d9e397456b90549a77582a6e8b51fe212399ff68b979fe293efcd11ab79cbfda818cc4039c62d32b58717fe0abf2b4eeea0304baa5afe23ff6614dc6cec45b518d6d58a157ae211e0a67c36a0ef6468d0dd68f6155a818bece4f8d35884f4f90aa6ac6250bb3459604d4598ca7c7e57489d484351aa936be4fc9051e28e229f4bb60fa97a3f018ef37fdfe78ca8cfc0caae758c53d0f68edb8b9df2b826c80272f\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 260\nmsg = 0000000000000000000000000000000000000000\npadding = 302d300d06096086480165030402040500041cbd4f57a4cfb1649cca33372f5c5ad32b993ff73aaf4fb75d52798480\nresult = acceptable\nsig = 570c9a8a85a988b5e254b74af7611f0a1e4843e4727c9117a5e2bbbec29b0a6e84c5ccc2cec9b100410b37d1e0eef9a2a21a2894e1a5b581e6567d1043a980166ed7449e557fd7f1fb19fff60f3cfc85c79c9793c553314060b95f0a2199f4de16792e35888b78f7bbd4520eb09efc7aede5d24a51d8c123669ee2452357dfd089986005506df4431c50432509302e7c7e9aa8e9f383ef8b856fda1ba8db44f36b7aae91c597bd6aa0b4f12573a664f328b23b7a7e8738d5bfe772b39d5017d7\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 261\nmsg = 54657374\npadding = 302d300d06096086480165030402040500041c3606346815fd4d491a92649905a40da025d8cf15f095136b19f37923\nresult = acceptable\nsig = 74cd13a7cad1ba8c0254967f1cf7d594a084995b5778b113a42f35654151556e36ff796f609146bcc519a8f983d0093a1fe7d2789d0c2688d8444ff4c3c8f6759eb71d6fb7f47a2eff42e62ecdd14fb3cf2e6df4b0717094863bf19a84457a656d3fd64aa5c086e09a8097e3576ba1d91fa17b7a1222b9064e2c6b06aba5b692a7078117838c64cd6598bea415a231daf4e62d4bffcbc0986c3cf86ae6a3bbb7ffbe85ee002ce9af3177b1f2c0ae14b8b1cd41b1bf1b2ccc688794f092c91873\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 262\nmsg = 313233343030\npadding = 302d300d06096086480165030402040500041c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c\nresult = acceptable\nsig = 1ecad2c46d9d37b3bdecb7f9002cc48f8345a2aec090f5d599350c855c4eb58f8a503d8dfe042525a66e771bd8dd8a70fb4822aea1a0cf33577ea658288e6f2fd886888cb9225f1ea0d03bf5b5e63afd3bf59c0c1d3f2cf4f4ba2a8dcf23182feec72f76a60d252a8cb0b770b7d0dd6c72c072098f81b852f7271007273eccbc55a9099e426e566a52e11be82e78bc8ce8c6bb721f858816c43aa253a950da5810e5690c193b820d9ed4f02046a548503c72755abf1450c09dda9c84dd2a079a\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 263\nmsg = 4d657373616765\npadding = 302d300d06096086480165030402040500041c3dc6a3fd912b08bf15170296c4f1694f512ffa1dc9bddb8b9e1c8d38\nresult = acceptable\nsig = 402c91c41a3e1782ae406b04ff52cbbf9f71cc5f3473b9af43a2ef96245e79b62551d9b23a85e6e80a2041b616dce2647312258b29bc6b549eb38afb083d823b3c2619caee52cb1583a7c20cba7da2159ac8154b98a9683388bcc523c10b6e560fe0c8a0cce9237ab1991b207e708b601b13c5d1d86825d89fc5aaffa0e89ddcc11d2b516de64e34783d86c6d05ded6024274498b6f3dd5593feb03147cfca3890f92487b64e67ccb676b85144899e6d257b28edff14130eaf0cc45b60ddec80\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 264\nmsg = 61\npadding = 302d300d06096086480165030402040500041cabd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5\nresult = acceptable\nsig = 4d93f0d689c59942d9e7c26cfc5af040cff4b3a114c7e191851baa888133ea52583899520f8e063d7ea1ac7773ccca280b92840082d960b0d1e20bc8549c83f989b6991613c1711a0a2586de7fc2bd10750023e2866fce48329621e9203c2818373abd69bc1807fc1158639d3837b5391077a39f829f04472c74bab0a15757083a34ec2701abb6839ade2674f1220af9d109678d209bf5f16eceaa8227ab028d0017530900f52b8be12c33f007dd21774a5bdae2ee12d7e47e98e5cc7d301d9e\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 265\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 302d300d06096086480165030402040500041c15a322a18b35c3afd3937b5ac133fbd8d883d300a29ed9d9e2b3d601\nresult = acceptable\nsig = 44a571c4bbf737001fd5602e8d096123de21b47c36eea780f3e0e19fd2243605066ea949c88b6abb8353ee8b88e394a485031e9e980936e09bbd17fb6dfe340f07bcca5cc51edcbd5bf98c223f44976b6ba3b4b2157f1a14a7b2a20728f92a31120f968138a33164c78b7fe9146ba6d641d6c7b7cc9b1b4062e96002054eb9cd2e738fd82564dc0fd87f08b5006f52db13a7efd4602dd6736cc9667701fcb9ad48c5b3625a11e44e034d0cecb38cea4766b03416c94f01418b411e2f4739ccba\n# The key for this test vector has a modulus of size < 2048.\n\n[e = 10001]\n[keyAsn = 3081c90281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a2710203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a2710203010001]\n[keysize = 1536]\n[n = 0eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[sha = SHA-256]\n\n# tcId = 266\nmsg = \npadding = 3031300d060960864801650304020105000420e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nresult = acceptable\nsig = e4f7f0076b4bddb632c470881bbffe95a148573a75c014689eda7acf5e57a546327d4bead01da0b093b2c4eb5b048fd707d27a4baf85d610e4ff8861feca57e1ea88ff0c4b803c4b0d62ae0cb89012b0ff041b438e49a79680f2cb30722a5a2a3aa9b516ff2a02947ebe27186aa9ffdb35e15328c0f49f172af51f764258e909651469ebc6a59cd98c996fa3417008252e3386b9a2d059d3c67983ce62ae2d052733c55732320679eae156d0e4b89da1022bd052340819cfcdd7366c34b65a01\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 267\nmsg = 0000000000000000000000000000000000000000\npadding = 3031300d060960864801650304020105000420de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90\nresult = acceptable\nsig = 8d2611d4c79f6b2087ae8bc76610905c361b9fe0a6629388197b4293f9e14ecbeb377206e4c1db35cdc0ab163dc5c51e8a7370a059e9ee8014d18ef0937f7936879d7825c792180a4f10a0d46e0a954f093d703b82bd076dcec0b8a66fc3be9bdf79ce4550c453015dc1c7397ec1bfceed040a4d777915546b9cbcf1eeb13eb71ac49c235e69cb07c315d529442f4863d61b7d5caa5ce07820edf649a9342211a26f8280dab9c5dd11af07521", - "68326f8e8d5e834ddba3bce063f011eccc8f46d\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 268\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = acceptable\nsig = e12e3540e7f20fb5533772e91b708151c12d8440ba9bc994791f5916d521726b53969063f9e13114ab89de0b0adf119cfaf19dd74a65b5eee32f39e69ab6776dba721adb2a8dea1495c51d5984b6aa2b5d216eb48459103907442f725410f53ddd5d006762dd3167c2da3bdb19f07d27e3fda712f444c093f4c8126d40ca7c381ab1d3875294df84055239ebac5039490b597366b58c2806e52f1f259c9ed16f829f41851b6ce7e390ea73251395bf940997d47bc323657160ede973f2342b91\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 269\nmsg = 313233343030\npadding = 3031300d060960864801650304020105000420bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\nresult = acceptable\nsig = 90ea80b14758fa12319e54c446e70bf5bede38f5d8d8e978531e6c54c567b63a0fb7b870ab963f979c4015c27714dc9292a48123c0a1f13896055f6628687040459488bca149f410cdae4249ef918f10329e902f1344a666fdf96085b7bbfb086ee2f4e5891904f945d867a50289da018c245be31b684bebb8dc367d43d53448865dc005ffd58e2f76f1ae8ac51fa7ad723db9bf3b78b82bc5b0e209ed216575009c27a6d46bfd1d9ba35fd50eaf4a39afd7b3dfdbd2f437d0d97b5b08e1870b\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 270\nmsg = 4d657373616765\npadding = 3031300d0609608648016503040201050004202f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91\nresult = acceptable\nsig = 3ebfdd69af2a561bdf4315d015d397b8af75f6c17a3e6e1c6b52bd6e812bd9112e1920f6cabd82b996b1b48be3aa40e447d29689be7dc64b8548ce5414318c4288a6ccee97f55c523661e629d3cb124b97a042c1e77a9b039a8631815c535c8216912ea47684a7220a63c198ef2b80568882e153be8fe92ae4c786a5fd56a1e64fdb235663f3a242c121e59df3a19c29282e647a5123583378577925f399560f6ad3b2a4c2b18ca2547aab5e3ed4030c6585fd2abd1d65fc720bb30354c966d9\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 271\nmsg = 61\npadding = 3031300d060960864801650304020105000420ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb\nresult = acceptable\nsig = 7fbb42d2bc1c3e5a0f66fedd581e5ce3e555f6f1c736db24b6e963d2ba72118cc989e2969c21bede87ff3f4209f2b009263b7ca3716a9d3e7115dfe65bad1ea2a1013304696248dd2b1d70764dae248bd1e9d49623826f2c6640247cbe8bcda47d882e298f30bcf3db1f496c26b738848e9876e4b70f0ca8259760e919e5c5c0a2ce3d05b5804a94b67f4c719fdeb3ce23657a26635f867af0271736ba20abb7fff18bda006c48d9c3ed774365d00aa0340a04906fc07f00b18a572c96f986f5\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 272\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3031300d0609608648016503040201050004209432c1a7d343fcfacb164bdc44ff71c1281c004886b1c428419088d06cd3561a\nresult = acceptable\nsig = b9b478f6ddabce2b1ffb306e2135132df09585be16eaa5182b8476796c10b0eecaff9b91100882f5872e00e3d1df2df40969ca4d00596b6d6c9c13d3a956dd8d91decbd3a48728aea05b8f7707414a8a5de3bf0becbc20ae0ba852ee7c4f2c177f3d95a4a8375ac50e11fd2be4da1f94608786fc84747117604138d06956387924e5d7baa2c97e25d1b0125122c0a13981559db80ac2d6848f4db163027c4484a51ac5095f5653b12059440dac69970b5680e017a7eb2861c857a607446b9420\n# The key for this test vector has a modulus of size < 2048.\n\n[e = 10001]\n[keyAsn = 3081c90281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f0203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f0203010001]\n[keysize = 1536]\n[n = 0d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[sha = SHA-384]\n\n# tcId = 273\nmsg = \npadding = 3041300d06096086480165030402020500043038b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b\nresult = acceptable\nsig = 6428e8d022f52b4a9307fe0f93e650e9665680d3c4a66194c6d50cf08726a3de45dbd8f24c9b5d4ad3fb6fad8bf3744d166742c6bb8cd690325e8eeb8d33e1303234d2a9ef9f12f8adb29a423279405dfa25d5bbbfb4255f6d739dafad66e4024fd413b16a167ea4cd66a75258c476e9f23cdf99346cecd6a51d44176346e6704e1f25fd953123716dca1eb8e2ba0288a38723f76c7b873299e34373fc2b18027500c26aa32c903389eed545b87061988f9e06effab524655e52103be7551fdb\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 274\nmsg = 0000000000000000000000000000000000000000\npadding = 3041300d060960864801650304020205000430a5a2cb4f3870291de150e09ee864f3b2b3b342937ac719a149439185ad6a47bb4f23ae83ff20f0c8f0c79a1764244a63\nresult = acceptable\nsig = 58c4c42da5eee1b757b31e3362a95d75180c0fee472c431527ff5500fe0b5c1d59968d79e6e41650f013a6b3e37c5a1d79233b818ef76c4ed469a09607becdc58987e6a548610de14ff06899ef284778dd5329a27b85072e8ffd46b63a5e8f7602ddb9fc5a07224c49818fc8057581ea36da033f2b936f0761186c7fd82b474e87d47aa1b7ec610642d3bcb16c59bb70ac68b1f081a9c9248f069474d6ed9b29c669fc40a979cdfc2053e1a3c0cf40efa29c01785323995f1d8f3850c32bdf92\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 275\nmsg = 54657374\npadding = 3041300d0609608648016503040202050004307b8f4654076b80eb963911f19cfad1aaf4285ed48e826f6cde1b01a79aa73fadb5446e667fc4f90417782c91270540f3\nresult = acceptable\nsig = 62a81171990b2066d9c8a12d75b719b1d81513e9ab0a38ceed12c19835e8291db53045c6be238fb8a0a7daa974f8d0e10495c197c8d94b617a5e84982b849a121377a4deaff1c61f07365a4429b3aa90a0a475d3475e93b27254e1e0a75f49864287f2027f7b4c8c0f54ad69649c042e2445a5f131dc5d7878d7a040ac8499ef4208f3cf7b63863feb6fc3ae7d9e299ef5777b1d872cb19799f5097d456473760e5953a650a207f50f5dec349e71b848640930608208dd0745bc185d78284482\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 276\nmsg = 313233343030\npadding = 3041300d060960864801650304020205000430f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace\nresult = acceptable\nsig = af896fc432e8f0d10c082153fcfd95b9ad7c90fd1f757d3be4e57556553b982af328b2f3d96fdffa3d26a9fb58e011206f88bfb7dc453f8ecc1b8a86910f993e91a1f70e2d75311015d676ed9245f1a9379f4f29ef26ab403eb1e76184855b10696f5254f2b51e536df54c84189d1a1f97bfb56a3b7cd13a82d8c0262229795a3d2bd46f28c3e71d5ae18c2ab32b295477e3f0fb428c5278eea15622ec47efd731b78d747568757f82a943fda22d37d883d8daff25dbb168032b5b36e081ce2d\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 277\nmsg = 4d657373616765\npadding = 3041300d060960864801650304020205000430b526d8394134b853bd071719bc99d42b669bc9252baa82dcafabc1f322a3841c57cc0c82f080fd331b1666112b27a329\nresult = acceptable\nsig = a3c4eb3756805db479ee0aa802a9cccec9c9e146e736ed48b8739f2c8f108c579f1a16a71b7d222fd146f82292e78d254ec030b47267490927843c13005b88e2956550bdaab0e5748dafbbaa825425e9d83283a9a5fb086603ce00c8dac8f73dae249082378fcbdef763ef2f207047e9a9eaa35ce466e9569470f612c87292df4babe1d1446c55be5ab0109895afd337843eed2ca777f3ea1c08898fcb36e02674772d6dc3c71fbc49c897d05c81cf2aaef212dab088d9722db4033bb8f2ba56\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 278\nmsg = 61\npadding = 3041300d06096086480165030402020500043054a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31\nresult = acceptable\nsig = d0deb372624d4e1f64b9f3d7517fe2bc9407b1cb99ca0e6f641d5557935b4ce3e0e7fc88a75a8a6b39a7d03b9c9b43d6f5da250bc2c672ecad4f559a02f45bd6319d7377d305493264b17beca8ad93656a88767221113a30c8402", - "794a920da9edc530a6649b881abfee5b92dc857332970973366ba05954d70a99f378e8f65e3c1586ec71f79fec02657bf6dc5ed82c835735af15ab1f305bad5c49ae4dbab4f6bb4a5c70d35ba779e01b85ef208d7def3d0358fbe9202923fd035d58ff36a06\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 279\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3041300d060960864801650304020205000430ae9ada2a808aca7097c9e9c30fba4ca60a5e79874a6be0f5afeb7f5df3538346f04b84ee06bef7ac879a0085bb2036c8\nresult = acceptable\nsig = 4e47d4cbe778a471ec643bb235fe9ef8d10398bfb2edfeeb9c9bc12caafe4031e33144be385e3adcd1609652f4c9dfe15f5cd6ba3ff38b34dd67c47c659473cb12f9b3905306d92405d38bb763474ad65e96b7f68104c1dfdd217ee56c912f42b054f16efe23fa8821093d8169826a64a77b86ef33061210280e3b4793fe540a09cb910f5a1f12a410b588c2793726999021f8880b7d9b83792ae9ed282871921a63976131b8aef855078787bf32df696458e507b1dba70d7422d4d37edbbdfc\n# The key for this test vector has a modulus of size < 2048.\n\n[e = 10001]\n[keyAsn = 3081c90281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e90203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e90203010001]\n[keysize = 1536]\n[n = 0d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[sha = SHA-512]\n\n# tcId = 280\nmsg = \npadding = 3051300d060960864801650304020305000440cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e\nresult = acceptable\nsig = 190497b9c697bc8571dea0e67a6594d1ad0c401904a6a8f6e44837452949b1fb2044482ada64df89978f1168d5caf866afd928817afcdb589ce3dc6ffc5d58cb76fb9edc59b7d9188ead57981e1acba36e21d76a668660fb7bbf6f0c946ccc86dc251855c2cc19de83d11aba1d2c465db713725c2014e48865778b762dcbefd40de78f624436c6a3d316594dbfb3b05af97cb1d19229b3cc29c9cc6df414ab963bf1d6fb4e50c82dbb1add6d091d5930de580a988e3268cc5716d86c90dc12bc\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 281\nmsg = 0000000000000000000000000000000000000000\npadding = 3051300d060960864801650304020305000440d296b892b3a7964bd0cc882fc7c0be948b6bbd8eb1eff8c13942fcaabf1f38772dd56ba4d8ecd0b626ff5cef1cd045a1b0a76910396f3c7430b215a85950e9c3\nresult = acceptable\nsig = 5259fe9566e1bd81952a805384b1657374f33550ee0895b57b7a0869a831270d3b3b2db8e295a4eb98d8eb036183b3d228ad22b8e493c7eb0f9ab00eeab2e086f10f8018a8daaff4858ae745a4d70881a166963c64403216422e18974aa456d8229ef2e43002e0390166630c7fabd14efaa974a9521a72a69e0b446971db077ce80f6dd95cf797b6ed276873bbf6b1ba6a79df8c917c2a3fbbc0e5347b0bb99eec6ad0b6bdb7bc9d3e0a7f6b7b623f2aa9dba1e940676ec5629d39778286f261\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 282\nmsg = 54657374\npadding = 3051300d060960864801650304020305000440c6ee9e33cf5c6715a1d148fd73f7318884b41adcb916021e2bc0e800a5c5dd97f5142178f6ae88c8fdd98e1afb0ce4c8d2c54b5f37b30b7da1997bb33b0b8a31\nresult = acceptable\nsig = 288226f169838f352ffe409368cf03d840e0c0ac5e2c8d24471a924bab05ccbef26f202aabed9fbdaa33ae4a95de90e4196d92a72926971230f90a08fa68e51b326c9b5dde4b7bfe76766b0362695315846c2270a67e7c3f623367c87ce13670c8c778ba379b7de015a1b3fddce8d54825ddd22a8f88d89a43a0c5be784c1c1a1b920aa0dd31102a23d50e3874c411051f724a9b6181299d63db58dec0dbe667f7455f97f5abddc87cdd9d85e7e8139fa5e4ebd167aa8af8439934f34eb7f1e5\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 283\nmsg = 313233343030\npadding = 3051300d06096086480165030402030500044043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc\nresult = acceptable\nsig = 15eec15039b374bab3d0eafff08146e4ace24e67a2dc14dc6cd19826cff0ffef52f62210d5d1299ee482c6d39be0fc4544b2911af75a8c5fc1b57b658febdf094d4f648f82ac88717c14204e3a570b2c796ac3a2e3cab052c3ca8f5d39c5e5a4ce883b5aeb6a9e6f0b72d6ef7b8caaf75c4914df6a8a0e7ba6180ac639296d9e29f21b7b6ddc09ebd9559ce95d3fa27d7325a2c3e8c4dbe52f18036a9261a2f35c48e34bb5a137fd92549746b0095008e63d351acc66033f3c9b6623d2db976d\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 284\nmsg = 4d657373616765\npadding = 3051300d0609608648016503040203050004404fb472dfc43def7a46ad442c58ac532f89e0c8a96f23b672f5fd637652eab158d4d589444ef7530a34e6626b40830b4e1ec5364611ae31c599bffa958e8b4c4e\nresult = acceptable\nsig = 17f4a3294054ba76deb171fa60d4d224604082432b5119253bb28766aeccfdeee20fcd450fb2b1c76496d28f871b7d3b3b768a81ccb5313ffc37a25760c30d282c309fc929108ae743507edca29b594360c924c8f00f472bdb15fe207fc76c83d4160ec3ef502349f4baff23cf2c954029db4c68eac992447dc63abb3126c1b82af57472aa205c40dbd445f008e01dcb3ddf770fc0d778c3f4913a9c4615dc6291e29e0debbc3b02a82f0a52ed59f0ea19cced519cf037b4d6159cab53c23c67\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 285\nmsg = 61\npadding = 3051300d0609608648016503040203050004401f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75\nresult = acceptable\nsig = 505ffc20f64d17502d9697458c58153b34bcf607a01dfa4fc77c89df2ec41e63f9b396056b76140c46b2b47d6535fea8dca0ba19395df2f7e7f2ba53d05c9cb4eb2e04d2a123747f15899c65cee85e794626e35c0f1dbd3e592904c0f0324e417d122a0adf401a0a5d5e7516d263fc8f6909c7ea7c984a4e3f1c9535e6a6e66d8d35689ced12049b4ded2cc93a5e6148773dffdfd1734ab55822a6e38a654a7bb82fecf83d5816228962e17bb8bf6f3108f0c89bc4430d67c38d648d7a17a29b\n# The key for this test vector has a modulus of size < 2048.\n\n# tcId = 286\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3051300d060960864801650304020305000440aa0a2e60e45f276fe3aefe9fc07c6f2435f143ee2afd895e4809384e833be66a6396c839d6f7db83f37736645454c6e63712b27e70edcdd7440e1275235070c0\nresult = acceptable\nsig = 75627812c1b05dea5a309394dd74d9fad11a6776cbe6d8ad0936b343bdbd0b6a770ed1075676bf55cabaded9c6f74913e97f512dbda5b9ab0578b1f1dcfde313fd88c4c876252f4334c2d4752abb22c484e76237f59878b42d4d75843c93761ab3532295b6a26dec558fa6a65321d0f6f3fc88c8c21ffb8b0739de2459f1a3fe1fb9b71a92de934d86a8efdd0447885cfee91ed8b559df65d5b57276b5ae2068ec30f3dfe48371ea59fe487419c9fb3c4b58449c46553b497a2ddf7b30aa7a78\n# The key for this test vector has a modulus of size < 2048.\n\n[e = 10001]\n[keyAsn = 3082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c", - "301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keysize = 2048]\n[n = 0c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[sha = SHA-224]\n\n# tcId = 287\nmsg = \npadding = 302d300d06096086480165030402040500041cd14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f\nresult = valid\nsig = 19c576f191c273306ec6ee9e26c673bdcf3f821adaf13a0759df7787511ddb096e964f5dc199ccc5cf131f855065d6ff0a6c720651477d9026bed82d201f6e84a23b37725fd24f5b75aedc2afa24524e7222c0dd7c6d2742430bab3ec46d12204a94a533e2a9147723d087d619e07873a4261c420226ec1869abd70117c787d4b1827fe98779287451086354292bbb90617ceb391122efe70887710c5cb4549d163d37e79b33c1b336826cb53b648689e6da54241d20df822cf7770d7beaef4bb00068252786580a88cd00e93f5ef42b69efa7c364b98749fe734ee7bd13d0aca585d84e4fe4b29478697170280a5921278997ef9856f7372b6995d7eb43ce0c\n\n# tcId = 288\nmsg = 0000000000000000000000000000000000000000\npadding = 302d300d06096086480165030402040500041cbd4f57a4cfb1649cca33372f5c5ad32b993ff73aaf4fb75d52798480\nresult = valid\nsig = ab2e758c8de97282a7ede3401680ead187cc08658be0041f108851149a9b9d2588d5ca544039533eebd0305c07f394504d91a578f5764267149d4ef70b88a2a3f8cf0b1061d06882af53a88bef195aac87294dc833d80f42d942f3a59bb242b187e23bb89a068bb4c8a215247d04aec57f81f75c14e711b5878b04863e715d0f359ad13f008b79342b7a4ca095fd021f639e8f48860c1eafe6fa19162c2632a2d3a05330d149f3ea6c9aed9f89fa3f7bcb2cf2a3d1af0484178710c21c046a812f3b8d68027173ff5aeb1ad19ea6639e2d886eabf8149a8fb491d2c36ccfc4da2a9785a992046f24a93d2dd7765a171cd8ecb68b94ee70b0e5bf791967267251\n\n# tcId = 289\nmsg = 54657374\npadding = 302d300d06096086480165030402040500041c3606346815fd4d491a92649905a40da025d8cf15f095136b19f37923\nresult = valid\nsig = 61c702c72b0177ac857e52707c1a40b84a1859bf1d7d1cdbda643f924e8bab7c3d3eb2065aff837e92f93836fd54ea52e085e19cb0cb59fa58afad48480c2dac579315340883886e78456ce750fc55b6c188b716bda7957ff547222f0cc1462344de4bf078ec19f1ba5901a0e5f40d93dbae4aac407834b272a2be82c8da085a3e1e9e0a57d3f43d26462566f0aeade04ee8981fec8d7e34c916fe78c0c5c43781bab2fecab654fa55ac99182545d0ddf070d41f67efe0737d8ecab3411720c84862606c8e4b53e60faa1c9a98386e92b03d676b53e3fdbca3bdf0187ddc50086cf82ca6052be55fbb7f3bdb6c6c0432defa5634797c23b494c3880846169b67\n\n# tcId = 290\nmsg = 313233343030\npadding = 302d300d06096086480165030402040500041c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c\nresult = valid\nsig = 965f82f0649a338ef14387a7f3335b9e2d5d3b4009eecfd26c0110344a30117bde6bad668cf083beb28242460fbb96adf9754b9a4d4505f6412e677bf3349868fd5b5268786308a5293f2cb2f7ffda76104351f10381e504e72d27435d5bea0517d20ebec0afa531e520e5fe484475a330a40ba1109c204fabc44ec099878a5e31342a650047c299a5f2322f057b9586cd9eebeed1f3d2d94aac24f9d7b2f05c6f28bc49cb2b00f5e56870fa099cfb2c3e276381adf5a030ab6ffd9cb96fe309061d44c2ca5ccdd76a69458be561e3f0ef603ebe9ecd533333584236970dc7414124ace98357c496369bf94123bf0d4e57b03aee567c2f83a9e6378e62a42fed\n\n# tcId = 291\nmsg = 4d657373616765\npadding = 302d300d06096086480165030402040500041c3dc6a3fd912b08bf15170296c4f1694f512ffa1dc9bddb8b9e1c8d38\nresult = valid\nsig = 105c68d221aa579ab6206d23be01d0c91f98fb67ed8d2044b6278916223758aa346bd6d5c7282d23a2bf702e0facdfb884e0b389202a5073a715fa80158e31d1e3588af30d2fd8b61233499ab7952f0761c84912b700fec807937d00a021eaa84d96f59760cc7733236138cb4ff1fb04c7d4621331b5c729f9694555b6f9c324e74db4a7a8b72f2853dfd0b9fe63759b3468bc66017bd6c1aada2070dc8643b5e581f12cad170d9fe754c65dfd0a5925cfe846a8413d729103e9d7e8825affc20f477d5bd3860947c2665ca4170fc44f2670bc33b51d42e5df78134919bf4660cfbc092c1cdcc09c8fda1ec9383512abe253cd1a470271832e0c7de5a6d9a7c2\n\n# tcId = 292\nmsg = 61\npadding = 302d300d06096086480165030402040500041cabd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5\nresult = valid\nsig = 3662fc9bc91b00d457bce2fbc667dbb31ce7fa451acdbad95b4b418782b8af67d2fbaf1424be2c99e95e2637d8d39e751d757f89711ae165fe5bf142fd88b284df696e948ee714e3f2062c5d01d04bb6c0387aa5ff1511552dd066bda861e1c5cbfe73dd8c6bc3039b729c700c8f297f48ba2a36aecbb626b5c9f9b3c04102f55ee65ef5477d8d1d14d9b7b048cdac54d7239177e702d0629d3617de2a9fa556a6d4ec37fe38a46b768e39f1d8a380484ffe0cef59abb7e20ffdb7c11b14a42ee3cedda99ef9f71eae7cf760fd81172e03a3f2a9f7e42a813db3b089c11528350e93b131641b8d023d47447f58aeb9f3f38760df8a9b1ad4b8d43ba0c9018e02\n\n# tcId = 293\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 302d300d06096086480165030402040500041c15a322a18b35c3afd3937b5ac133fbd8d883d300a29ed9d9e2b3d601\nresult = valid\nsig = 8392c4d888e7c63ae2a3d53d560ccbc226dbb1d9f69100fd86a19ef30a83981371169deb4ef87aafcfb4186c5ebf8d83764470acc8c9cbe36a9b15037e25b1dfc63e929b0bb3891be2d1804b8c6a0bf65891943e4c0fd21e7df55c134dde69682244d22510dac2b304c10a2e31adc134ab27ed186568fa9091df16f1c9f4e7044ddef6675269de710774ed124b52fbac9bed285b4be5ef9f2fd50e1d95383e145553762fb87a1da173b8b89a7eb9e947d08b5303ef0992bf4e3783c30253a43b373d90a75bd52fc53ee4fb86bfa1bad035a8177f8c0a9f53a6214ec950c2a07cea7f908c55c24dc31799867f819af18fa30f304ea001ce9cc87eb703ab578f5b\n\n[e = 10001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[n = 0a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sha = SHA-256]\n\n# tcId = 294\nmsg = \npadding = 3031300d060960864801650304020105000420e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nresult = valid\nsig = 840f5dac53106dd1f9c57219224cf51289290c42f20466875ba8e830ac5690e541536fcc8ab03b731f82bf66d83f194e7e180b3963ec7a2f3f7904a7ce49aed47da4d4b79421eaf937d301b3e696169297b797c32c076a12be4de0b58e003c5123051a84a10c62f8dac2f42a8640008eb3c7cccd6760ff5b51b689763922582845f048fb8150e5a7a6ca2eccc7bdc85349ad5b26c52137a79fa3fe5c29ab5cd7615013219c1941b6708e9c3c23feff5febaf0c8ebca5750b54e3e6e99a3e876b396f27860b7f3ec4e9191703c6332d944f6f69751167680c79c4f6b57f1cc8755d24b6ec158ccdbacdb23107a33cb6b332516c13274d1f9dccc21dced869e486\n\n# tcId = 295\nmsg = 0000000000000000000000000000000000000000\npadding = 3031300d060960864801650304020105000420de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90\nresult = valid\nsig = 8a1b220cb2ab415dc760eb7f5bb10335a3cca269d7dbbf7d0962ba79f9cf7b43a5fc09c99a1584f07403473d6c189a836897a5b6f8ea9fa22d601e6ba5f7411fe27c638b81b1a22363583a80fce8c7df3e40fb51bd0e60d0a6653f79f3bcb7ec3e9dc14cfb5b31", - "ab1735bca692d50ac03f979dda92747c6430f8045efa3513ba6e0ce3e9e35570e1c30c8ebe589b44192e1344ca83dfa576fc6fdc7bf1cd7cee875b001c8c02ce8d602769e4bd9d241c4857182a0089a8b67644e73eef105c550efa47a40874289395ac0c4e02fd4ba98e130a4c2d1b95521c6af4a002ac3bdc6e52122ae4c08cc3da1c896e059acbddec574ac0432f6103dd97273d8803c102\n\n# tcId = 296\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = valid\nsig = 264491e844c119f14e425c03282139a558dcdaeb82a4628173cd407fd319f9076eaebc0dd87a1c22e4d17839096886d58a9d5b7f7aeb63efec56c45ac7bead4203b6886e1faa90e028ec0ae094d46bf3f97efdd19045cfbc25a1abda2432639f9876405c0d68f8edbf047c12a454f7681d5d5a2b54bd3723d193dbad4338baad753264006e2d08931c4b8bb79aa1c9cad10eb6605f87c5831f6e2b08e002f9c6f21141f5841d92727dd3e1d99c36bc560da3c9067df99fcaf818941f72588be33032bad22caf6704223bb114d575b6d02d9d222b580005d930e8f40cce9f672eebb634a20177d84351627964b83f2053d736a84ab1a005f63bd5ba943de6205c\n\n# tcId = 297\nmsg = 313233343030\npadding = 3031300d060960864801650304020105000420bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\nresult = valid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n# tcId = 298\nmsg = 4d657373616765\npadding = 3031300d0609608648016503040201050004202f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91\nresult = valid\nsig = 513a5abde16b5e0ecb8659d3ca0845800adf75cfc4437d42fa34e7aafbbe35fc5984d3560cba938f9a622e932bb6162b7fbb6cd8c1cf8815f28c495995ac18cdbe8fabfdce29c17aa021df192ac02d080d7c5eda6bd4c99154178a9d5e1cf3ff4177106315f4e6d74c991b601069acd60b55b3bb4dbf6316c35096a487d6756181d3394944f1c742a2f4d608ce4f6abbfb72347ad7d342ae15dd6d1049fbd0ff55f4d7c43ab805f81ff1fbe9256b5c78c2de6beb787f4b6d66d290a3d4c4857368aea5f7ebaa1296020c8f9e3670441a08038bb810e853a654e44316a4e52428745123ce2714020d00e55a9eb82f7fb41c73d852a82b003670246c6ca2045fc8\n\n# tcId = 299\nmsg = 61\npadding = 3031300d060960864801650304020105000420ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb\nresult = valid\nsig = 38c042a00d6f27742a46f1f963a7b2e04f0eac637849631a491b8e4e58fc721c6ce620d5e705dc8e73409c3909c1c68b6bdb2b30f882cf2797e65030b38c4e7daf6fef9d1f115c890086cf54ca3e7c2b21dcbfd1250ed1d925810970f17dbf482d1784f296adee9ace6979075c1e12f5580cfb322e8737db9d127d38e1b99ed87ec49448a18a6fee650d3c27e4a2a86a3d6e3ce4fe64120be60872fa07a3f78a112715c167fb6c900698ba1afd824087a4cf733335c4a6d5120e3b29bc42f3b3d5db79973e4e321e0910a288d18cdba172d060283c4f4c6656e9175a18b756b7d06251e9060bbfcab04978853eec6032850a0e757bc0c61ad38aa4eb6bb6d907\n\n# tcId = 300\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3031300d0609608648016503040201050004209432c1a7d343fcfacb164bdc44ff71c1281c004886b1c428419088d06cd3561a\nresult = valid\nsig = 2ae8d95b19cbd64d0e343ff413fffb85d8e6713c06ac8a1ceba7f3924fa740f8d2b3e120fd71f22711e795cd6468c5e263b1a5ba6ac6b8fa9e23d2d6e7243f510592a61d134e68b8ead00612dbf38c5b7302abc3bf33f23e6d4816a6e3ddcea6482566e84f57464f7d56de4cef0b2256ef21874dda4c131a47292ff8ef853f93804483c8e6373d39ca3a22552e75427b812b861de6a310ff4c366f6f6604116efd9770170aa423554c4ebbd2b5c0698950e66bb5b7c5c346285d9f5c35146255736b6e818e8e77983c93b21e7f60b04a7a525598e7fd8049b181000bffc7f3753a504370f6bb70617ac8e914deb05a198a5758a459c9fcd2fce1aede48e8a852\n\n[e = 10001]\n[keyAsn = 3082010a0282010100bfb1873c3e85a383b14c36fc0a630c7c4ed51a3b7c8fe752fdee259cca52634af4b9276395e58381bc018bd6ce37204df140c557fbc52852bdfbbda31596c63574367ee273acb06164210a6a3193d3da6a720430b89e8c829c4bcd08145282fb295a84809537f26a8e126612c57a605ca2b33ed0674aad19914e0cab73daca6e018735a33661b3994726e5158e0390fdbfe2ad1fa27216e8c2a4b77857a95f99e2d35326438ba9fa0ac119fa930a817273299f6e49eb65ba4f521e1d50c440542c7fe3f7487618ffc4693010e0049344d465fa57dcf999ab6b42e7011571a9bf6d7ac3c84344da872e9ce3a8ab5682ce206bba31299033161168700eed4f62750203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bfb1873c3e85a383b14c36fc0a630c7c4ed51a3b7c8fe752fdee259cca52634af4b9276395e58381bc018bd6ce37204df140c557fbc52852bdfbbda31596c63574367ee273acb06164210a6a3193d3da6a720430b89e8c829c4bcd08145282fb295a84809537f26a8e126612c57a605ca2b33ed0674aad19914e0cab73daca6e018735a33661b3994726e5158e0390fdbfe2ad1fa27216e8c2a4b77857a95f99e2d35326438ba9fa0ac119fa930a817273299f6e49eb65ba4f521e1d50c440542c7fe3f7487618ffc4693010e0049344d465fa57dcf999ab6b42e7011571a9bf6d7ac3c84344da872e9ce3a8ab5682ce206bba31299033161168700eed4f62750203010001]\n[keysize = 2048]\n[n = 0bfb1873c3e85a383b14c36fc0a630c7c4ed51a3b7c8fe752fdee259cca52634af4b9276395e58381bc018bd6ce37204df140c557fbc52852bdfbbda31596c63574367ee273acb06164210a6a3193d3da6a720430b89e8c829c4bcd08145282fb295a84809537f26a8e126612c57a605ca2b33ed0674aad19914e0cab73daca6e018735a33661b3994726e5158e0390fdbfe2ad1fa27216e8c2a4b77857a95f99e2d35326438ba9fa0ac119fa930a817273299f6e49eb65ba4f521e1d50c440542c7fe3f7487618ffc4693010e0049344d465fa57dcf999ab6b42e7011571a9bf6d7ac3c84344da872e9ce3a8ab5682ce206bba31299033161168700eed4f6275]\n[sha = SHA-384]\n\n# tcId = 301\nmsg = \npadding = 3041300d06096086480165030402020500043038b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b\nresult = valid\nsig = 446e7cb43ba8c5fc5835f35f764e183fd54cf26e406149343f1346aa2acd215a6e1f26b9af53fe165c81429f6dd69e422ef7f0930c750ce0a79d1bc8491c0df320d81cc57606833d02f1c82e3c55d730e982e29e3c59fdad24d3910d8ff75df99cb3a67b8bdad00f7dea293f98c90e812ec182132b257c65a328ccc3fd203eb1b09181f50c6b4a8767071bcbf9c08c8d7fca99f80476975cd6e6509014cf4215475435fb520bb7374886c5664577092ee47a6460396fdcc8c7450c3b87ff9a951a8cd6e7209d762350157f7a7f8d6858bae4aaf13e38d2d06a7b10dbf96ea2e444ea66c9d1c91def798abe927715ffcce2d4d18f34b23ed6bcfc2aa79327bb80\n\n# tcId = 302\nmsg = 0000000000000000000000000000000000000000\npadding = 3041300d060960864801650304020205000430a5a2cb4f3870291de150e09ee864f3b2b3b342937ac719a149439185ad6a47bb4f23ae83ff20f0c8f0c79a1764244a63\nresult = valid\nsig = 51c1c99864e703b875e3e1629a7227d1d777e13d12968e28b358f5fc910cac6c836183aaad8baace0822a9468539d476a8a1a8cb2fad7486d400b11794ae38ec288f1e6e0c76e3616601634ce4286230625dd4c970ae97924e5a2982ec6be8cb0bdb6dc62523999cdcb8408e1aea3048ebe020c8c86db2f9b424ba1b1ff7afebc775b76725dab5a521e06d7ca876ffce9c6ac210459d19b65f9a7ae96a6febb352b500d2e2723dde3ca2c1a073cdfd99945fb521e8ebeb1e8da1c382c3f4eb73ccd5e6af07ad4ba647bbaf6c9435040de3924dc25289eb87419e367565ba105ed7747468acdfb3654fd3a2da7fa33f26347f0efce04ec91968c03bb6153a333b\n\n# tcId = 303\nmsg = 54657374\npadding = 3041300d0609608648016503040202050004307b8f4654076b80eb963911f19cfad1aaf4285ed48e826f6cde1b01a79aa73fadb5446e667fc4f90417782c91270540f3\nresult = valid\nsig = 623c0920639c8cdbc0f0190a9488ac6996d36d4fa4c61019ac5347da64862b3bebfdb112365d0473d32736dffad9be3a24acb57d1ec2ef7a41fd8e972a70beca630867ed6052b76c467c86c5851db0ed0b898fbe33cd79a000ca529eaf07254d979140d0a1aa43f1214fe13876483e80e96f1d17004c89d598d359e11764e0c4b0491e9c52345aebaeefe484f9ba0c9b5ea824e267f1de9f75b882c0b89888718a5dbcaa0966ccd0f2e7243e794e33fdfbe0569c0e975eef3ba50152db5292d36ffd6f85bfedb6abf3c65e6f789a504dfdaf003facd1f16c66c06a79549552109d55c1bdcbf0abbabf7cf2b6a8bbf0065fafe41e029f783d69ed61360cbffb01\n\n# tcId = 304\nmsg = 313233343030\npadding = 3041300d060960864801650304020205000430f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace\nresult = valid\nsig = 22a290e37fa590f3e164cbd7c211faff31e43ca0abe1f5d6f6b33bf16fad3925b0f9c41c9d847d9fc4cc9ec1816bd133f916f8650c2d77f482a753e7b8e7e2693bc345895de467f17690f8330d2212928d9090d34802020bf73999197f70896afa9ada4f353d438b6a0c809f74c28e65d2431f3d0c50e1d536fd3efcb6eb8327f18f0ce3964eb39100531f73a51b10a42d5bde73969630727fd74fcdaeb2a49687e344fedb0d54d1ddc7070aac0b08f4594b0f9e7e4c3d18b9ec24e20e95", - "7eaf861753ec6a2de28de823e2f4c7ee3d6d42a5f5480b4e32dae97f802907248bfb29dac52f24ab1009c3d0ae13c4ad6bed1e575aa86ac9d69ddcfc771df7b890ff\n\n# tcId = 305\nmsg = 4d657373616765\npadding = 3041300d060960864801650304020205000430b526d8394134b853bd071719bc99d42b669bc9252baa82dcafabc1f322a3841c57cc0c82f080fd331b1666112b27a329\nresult = valid\nsig = 0c9ec254a5e405d6b33be22985471c75b6b66158ec73d1dec8bc54a25d1036baf23e902a9ca025732d6cf581a7eb0cb59aa7fcb27c99c5ce5146a59627e5453faca300a0a5f95d9d55782bec4db4e4b2acbcad85d222403996f2f05552b8abffe11a1b517deb4c25e39ca38cc53252c987bbb992643c4c280ffc71fc87cf776d94adf3d2cba279df2c2021f68bbd4a87ea6045068cdae95a773c1e7f1066d37e67b91ac7c5d7850a25589b8bc814eefb30547f847fe9135aca321c56291aace07ccdec8a5848c7a80c419aa35ede36f50d6f1c593453561a46c4d767a7cbfafaf1d448c5ac118e121c0d06045cabf171fdc43192bb7b30449467ba95c671d3fe\n\n# tcId = 306\nmsg = 61\npadding = 3041300d06096086480165030402020500043054a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31\nresult = valid\nsig = ae7836c86c23e8b41ec2cd750838e78c5de9d8d54e74e3985c88a7380446d4fbd6366925ce5dcd213f46bf2f5f6de2cea4df015f2cd8c2c3d71b7adc743d1d045c88598c0b1ddf1bd734c2fbcfb446c9ead91ec468ffc37fba4f948fa950ce6f70455907f34d76f6a68e7b4d7bf2f805384fe2c0128eb3418f804a87d96c2968d69d3487e2d827cf1da978b0c723b312ab65bee05e01245ecba28ed45f46cb249641be080a3b35a3f1925997f52e774a3a509a384dc7f66f28d6930f8ef33704da53f582305b61ba234d11148aba024c1dea63fd74b6f34e4375a130975f7bd257df5184573c426910d3930a902e1d05975ec45042241f3322c34f4a697c429a\n\n# tcId = 307\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3041300d060960864801650304020205000430ae9ada2a808aca7097c9e9c30fba4ca60a5e79874a6be0f5afeb7f5df3538346f04b84ee06bef7ac879a0085bb2036c8\nresult = valid\nsig = 8de7393e352364d42d6c45ba249cf557d61b6283558384000b7552267acfa6ec3607d550d37b63850f4e734adf90608b76ed05a74e97fa4e8f42f79a14dae885e1b02d83a2707241518295e5844cf6e7dcd418bb935aef3bda8309eaca38afecf80e12fcd256b3ba724f7012729c1cc2b5ad36135877b4082b718ebd10212f19e45f17d05d416267a67759392b58693d093cdb2747c4c06f2a102e164e9498f83111ca97250a89dfb9eada0095062b90f2c44442220e4ae04738d7a76394e3ee859497224c33b92866941d171355017bc5ccebd61ed9234963fb63acb6ffb6571b1b20ff806a7050ecb14d48eb745c9acdc95d102f62455225db05eca49d4ec8\n\n[e = 10001]\n[keyAsn = 3082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keysize = 2048]\n[n = 0c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[sha = SHA-512]\n\n# tcId = 308\nmsg = \npadding = 3051300d060960864801650304020305000440cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e\nresult = valid\nsig = b03dd72dc84b305ea811267a489aba10a1dc54b59f92e58546a2f0b6883f543512d621951352ef12abafe4bd6e10c2e5b0eabbbbf1d081b66e535fc9b8ad379040c3c71ec8f2b4f5d319f5d2a0240a767ddb4de1fbc878b2c5e8e1e260217bbd70971789fedb8c677fc8193f67e4637239607c7b9d3511868ccc0df372374abc685c9b4b74b2c5f11758f809b19bb3b5c464db870fea61ddfa5e18be2c4106f3e165fe85a7f8241db2806d0fc3c45d8a7f1eb4ca411a46ac411b81c04fd8c4ced5eff497da6bcb8e2fbe1f95cf4c3e761fc3037c82276f7ebfb7e6cc8534cb4fd34192074f580c6e31008df4f1404ae8dbcb111503d4bdfe6e7107a1ab5cd8c6\n\n# tcId = 309\nmsg = 0000000000000000000000000000000000000000\npadding = 3051300d060960864801650304020305000440d296b892b3a7964bd0cc882fc7c0be948b6bbd8eb1eff8c13942fcaabf1f38772dd56ba4d8ecd0b626ff5cef1cd045a1b0a76910396f3c7430b215a85950e9c3\nresult = valid\nsig = 4de4dbf82607b36a5c6778ae6351d83b7ef5b4af64c3788889eb10ef1838822847ceb531914392360b92dee055796f73e3cdb8b3d50910a537dd2244fd7f922780356ea3f01e99e5bebcb1b6ef398d2399bd02472a871417daec3bbe6f89f45f1af0bf819a446dcbbb75c56958d34ba27c8120cee6ff97242921ccf58de9216995fa0c49cb3e6d60e46411b2df3b01b78fa81ca145ce8be594ee009031eda672eb097ba5ed6687a703b154ef616757f94237f4275f54738cb59d36b20a9c84ae133bd715747952f0222573a91faf740e4b7eb4e88abaa91004e72a1709b401616b2edb2784e491f671fcf5ebe326b669facaa5d8a0f6f8469ea995c4db772f06\n\n# tcId = 310\nmsg = 54657374\npadding = 3051300d060960864801650304020305000440c6ee9e33cf5c6715a1d148fd73f7318884b41adcb916021e2bc0e800a5c5dd97f5142178f6ae88c8fdd98e1afb0ce4c8d2c54b5f37b30b7da1997bb33b0b8a31\nresult = valid\nsig = a0f46582cde6be215351bb7b29e8ff24398816fad9e7e2ed6ccf1d0b5296bad827316c18b1565253291fa1c0baea9a735357cff8920e1024ae5707dd2f0cfcc9e6cc81402217d9b4f51e10def2bc2f4924e7d22c022fc87d6c3e772f4952050d027b003ab4267ff227a15cc7c884cdb46bbc7eb38852d0e6d8a12f485ccb0312157097687debb6feaf2b6dac998224c6047c1d5727195bb8ce05a59669034e88de0e4815af00c65def5b9748d017455056cc1ac6d3a77e31fcea4e726eda6be7bd33e509696e54d1d1858a1165fa9ece5d62e493c1a33ab3c94d294838a19f367fb799d6b69161bd9532a6ef317deb919923d78e33309f14a97b68023d600b4d\n\n# tcId = 311\nmsg = 313233343030\npadding = 3051300d06096086480165030402030500044043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc\nresult = valid\nsig = 9922f7bd01d7ba6b2de255b91209631af92e5537a4554b3b7a50e39f2fe9b6085a7e418084213d445794ebc19be43782d9f80df1daa7498a1c67d935ec00dac6b7a194033a14431320acd1d7f3d4c2b7b5b1649dd93931c49f538c94e34f44fdcb8dac9d31539f87e6720dc887c6605284a6a0408e244325e35917b1e1ccdf5959ca87091827c8157bdaa31239e2103ca8a112cc76a8e7e90f352fb8cb3a3381e52cedf4d4188bf881054b80387605e7041ab149cccea1ac2bb6560b45000601c33ebc31cebdd499c0b8fdafa7c1691d6dcc48edc98519d55d126a757b2a753eda4f2bf35cb191face371c9c34b2ab57242053b9ecddc91e4b621e650432adc8\n\n# tcId = 312\nmsg = 4d657373616765\npadding = 3051300d0609608648016503040203050004404fb472dfc43def7a46ad442c58ac532f89e0c8a96f23b672f5fd637652eab158d4d589444ef7530a34e6626b40830b4e1ec5364611ae31c599bffa958e8b4c4e\nresult = valid\nsig = 99996fc01a53bca03382b96e9ad83a3139bfacc5d37b180a099fb5d515a7b78a5c21a339ae6bd2bee8e0f503ba2bf892c1885ad5f4940a99d8d49df6f4623da16c337a011fb895c006100286aed82977be3fda054d1e935a872939b704750c3e2871c33768946e65a737184efa50060c6898247a6472854884fdbfc2533c936fe9c922d881bd5f093851b46693cf633e25f27efd6db65da3ad96f2e8154ac39f2a9859f15c919a92c8cd22285c1f9e87444e61769f6833bd0d56106f87825e472e59caaca1fedd8d4065fad9dbbc252a84c196bf5d6c40bd8660600bc6c825bc7470aaf4ad118c6c139a5c6fefd5223ef490d4afa6c06269ea8c0054aa1f368d\n\n# tcId = 313\nmsg = 61\npadding = 3051300d0609608648016503040203050004401f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75\nresult = valid\nsig = 7930ceed4b191365ccac54cc8a5bd38498c0d0c1fa5a862b6c0744edf9bf1969ec4f3c7c42aec737438acc797b8301aa8b30be2a4a4c1323be0427411dc8be84881036e9062a55fa2334176049305a44b97f90ed0b3becf56f8c9f164ef0bb45729f9fab1d459f", - "690c58f07ef5ef89f21b15da14a235f3012e6f83a7f226e118d3b7fdc9356c39667e1cea5c667b54ec5ca6a0d58ad933484f447c670e5bd3647361c81831dc710360a90692eb7e4a57ad225b2516d9c3bcc77323a9354d1b92d0b3f5ade911f5faac4e4bdbead32f3349840ee66f4010789a84f0934182c2b0cb7d6e72e2b2a6839d03d7c9f681bb7148449161ed50b4466d60002cdb7492fa\n\n# tcId = 314\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3051300d060960864801650304020305000440aa0a2e60e45f276fe3aefe9fc07c6f2435f143ee2afd895e4809384e833be66a6396c839d6f7db83f37736645454c6e63712b27e70edcdd7440e1275235070c0\nresult = valid\nsig = 16b5ecefcd0167682fbb3601a016bfa8bce9dd5855bf305ff00b45d97e50fecd27716997c37ebf8efd8b269558385b3ecaf2b6e38313508a7a14546107b75afb450b1a0e39cd0760151b666451bab43d7fdbd93771e9d98152ac889bf1abbe1c3f62049c4735602ebd6a90a0361dfa08417ba03c55fc6b7bfabb136851ab01eacf528abb1129bef47f2b04e2aa24c0341720f728bc9fe12cfa5d4248976aaf7035d19c18302fb9ae2443286a71198b500034d48113b705c83e64561762c583dc013cc099c7e5bfecbfaa7b971c8f1a4d3868fe0a4ad518372ca68c65bdefbb726b1fd92ad92ab739d2bd1af97724dc076ba011a9f32db3979ca4cf94c5370b77\n\n[e = 10001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[n = 0c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[sha = SHA-256]\n\n# tcId = 315\nmsg = \npadding = 3031300d060960864801650304020105000420e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nresult = valid\nsig = 157ffb942b1363b5989ec4beb93fb0187ef016de4ce055620825d13c3dafd4fff621c71920e884ba28c5e98b328baac29ad4bfc4d2cae2f0ecb9d1b6c9fbdfc385aa565aaf6c5b3150e085e0316e21d7d440a873074e5d2700d961114ed420478647a4769d832691f7a004d934a89dc249c9343341902d5d0c3d1a623001265634216beacd5f756821f21c3b58111790657690918a2eafa9e85ab1ee44edd3d8bb89e892acf411ba9eaaeef88eca37dffbda72751c117364fd1b38c840d7b42318fcd011a4449aeffc2de32836d3a4f704d4c8ad4e078315d0d1758f098f2ea749ccce62aac592ac4041b5e733ba0431b88332a39a2af7f68f9bb1f469a793b280b964f285ce5cd1ff3adcd7dbd464a7c9414ed45791073f08415be2dd9f01dc2fec8c3a26fe97d9778e2b2fccf71a1ea5e9ce017d2d46778d7e37bb832ebd5825b3257a7852db5cb6c132bcf9ba3522a670b0e866585444ed3601fd32a922818ef6611626eee3ea99cfcfeeaa4c370567cc65e0479bd35e091b772d7445cade\n\n# tcId = 316\nmsg = 0000000000000000000000000000000000000000\npadding = 3031300d060960864801650304020105000420de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90\nresult = valid\nsig = 631cb4bed6b79dcd3827879f6d64de3ae17e0fdb022be013e733bbfe0031cf204f0508ab87a2e2bbdfaa16cf24acc96b3fd2e72bc4a224428e515d6f1e0ea6927eba6ed7282a959e5df5e52eb3be9a39cfe139ea2fa45c21eb81b3197eff655b918f7c5fff6abab33945557a922063f9600a372ae7701db686f7e1fe4a6e804a0f624331fbb59536733bed3710dcacd22ec74b1a1386d045372853cac91130703ecafad7f6f42ec1aade5cb865339743c83e882f248b0db0855f487a6d3b55442f67773611a11813ff46a58c762b1bd70b5e870c3095507f23758e90b3c84526f47a825f0ae787acfd3ed349ca6786a2e84ec500c6042a9027a994c328c7a6868e6a81481b294383edda62773fd224af46e782ea3f00468515f6100486d94e818afca1bdb81851e62b3bf4f9236f061afafb3e399b93e6f6a295ae200c9bba5ff5aabcac8361c84f2e69aff8a8a21720b900d52ea4bddcfbaba3a231bb9b0dd48f0a4ef1cdd255b3524ca0633d04907ab672314c5e3173108313ff4a97df3772\n\n# tcId = 317\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = valid\nsig = 5819a699691c01a7f35f0bb1831a1cb65631ef693f7c9ef89f1e8460ee2ec312f6fd38fe382b3bf4db8f5d208146c32c5ed2d3b13105743767a73529bfddb5753c8cc13148d41db97f69ea1dee0ef1e1de990ff565f633bd3cfd315a7dafc70aa7f27d4f6486a2f1e2711e7919c5c73c518069338c0ac984d75f58b00fb0eee0f7da6c9c84d97955137417df8f20c02b7893b5cd929ba37f6b3278a1bd35748e14086c5f7100abf2edebeab5f767bb83d999a61cc27531bb67e44a92004fba9944b9c5f770bc66671d2efc74e01fbbd2885c5175a1fd72b91937c324b8d99d3592bfb73efb9641b87949266de441b61d180e141de510ae0cdefc2160df918c08c53799f050ca4eeb3a8b6b5ed35b8b59d3acd13a600a8a137eb1b8c1abbf55f3e99cf52d7092d1e3acc08583b04aa25a052668bc982abf060ffb17c1782daf76fbd69e7fc9510c5c6a68bd525719be5b81d0f2a8b961f1aeac7dc13aeeeef9986c7a47b34f8b96167d79f7ec458fef7345c1c31bba599d09b3fe33e738bc7da1\n\n# tcId = 318\nmsg = 313233343030\npadding = 3031300d060960864801650304020105000420bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\nresult = valid\nsig = 636d31d8d5dfe0fc6ab01ef2ccd4602dfea62d386b002c429e7e846e7a98d0cb1d448d25be039d5158887ab46a9dd49c41537a89036a065fc10329df051e5f2e5c1d4436e84790ff6db4d3f31575e5f0fbdfcaee625722c5492fceaa3fb29d0a865200dec06e117b04753ca9450a7ca7f7d1a1176cc38ecab721864413a0d7a22d8fc1595b6cd0032fbf154fbbb31b56d3bf963761ce8ec9fb38bba3419716d0d39e976857e79b1faefd5f5a2ce0ebd94968da1ec3a387804694d90f37b34033c7f70ccfb26beffaafb7bf56c1b8385d489217458e0a68b5d680f9fa45382fd1c227ff3c11e3ec82426ec648a564f0e886e5b12e695dd2fc8465bd9d08731fb140084c79be64d915bcb4ba10f1edb4c37e35231753be2d9f339d37d7b5f22c91584a68a973f9cc469a23d3b5800157dbd72a8405fef4e444ff01f7fd23efa143c1887504e81773743843d8a73209a1deb66c5f305df539bc30e871332e82330e5b66fa6ea253b2b64b4c9781011d20e80ddd8cb83916834eb8fa696b0a4b6bcd\n\n# tcId = 319\nmsg = 4d657373616765\npadding = 3031300d0609608648016503040201050004202f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91\nresult = valid\nsig = 08e0ae3dc0d16c927c423f12a87313afd1d66fbd5d09f48a4dd1a8b52102bbdd208284cdd692932869803a5c7f041a4492ac2e664bb6dd981c370e0c79ee3f7c5c6dd37018986fc2cc618139fe3eb85c0616f0673403c4afe7cbca49c1eff27bbf6d7e541b285ffff20b80bf61dcebcc4250068e25ef5a8e7c3306e49fcc2a1ee0f500a3ec603b472082f12ce4a6a12a6ac66cd4da8b6efac0796e9dcdc66c095a6282ae9a32ad274efe63f43e725410e6ed4c480828ed876b76b71b1cb8c142d0c7a51dc202af796d7bb55cf544dbde2f564f31994911ec7307015b0da2c51abe265a04a74b9afd0791a68e725cd7d8b473296c5d948157c10bc4682f74d843ce72e9ee8719a7a49d9de2f982c5d4490451eaed62c305eae3d0f9cb3493bff056a0dbca8579b7b41dc8deb1becfd5abb455634569d58c5b5535ff1356ccfaddd14e0f9f7f69a7ae9cb9f4c0c9f661fde349fa", - "cd21f0021423d3a9ee5031855dd242f27009090ff0c15d1655317383231799b18c01fad231385aa5020990f41e\n\n# tcId = 320\nmsg = 61\npadding = 3031300d060960864801650304020105000420ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb\nresult = valid\nsig = 9858e2557c6b99fbd84bc7eac3e31283a4efb351ff019343760a1e282368938e29ad902d3eb6cb29b35a036dfbcc7e06d2f1d15548df59ced35326295375bacd7a9d28a01b4e8acfb676d80b6295e19c6b7a259df56456e1df72f6a746e9cd31fed9b79b35d7a30a7aa257e9e8ac60ea886042b9194e7a383d1c9f71c84511faf6c96f7ae0e690112b26bb60cf7bb10f684e4fbe2a3a1b1c0caa9b1bdc79fde23fb758c2ba57880a4de461ecd2bc696689438183e2b9724fa68258f461bb4405425620a4d95c87ddd83e04be381bc743b05d26ede2ceff8a858636baadf56ef1dab54080da0f516307c579833717def053c8906d4f102448ab22693e7f52d5850193a40ccf0d68d1303953771a73924e4bcddd8486e1477d96250bf6b480a5f4b822822183694c52a2edacb331564444f0335d3b17d511ece59889b6d961767a3192d7f081caf7e671addb3757451776d4bd3b03f7b689843dcd59019ae4f292dba54738a88b86cc6ce3b123c61a446f4878b627a7f3585d8ab7bca9b258f10b\n\n# tcId = 321\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3031300d0609608648016503040201050004209432c1a7d343fcfacb164bdc44ff71c1281c004886b1c428419088d06cd3561a\nresult = valid\nsig = 1294490626bdb36a31c93fa7853d93152d920b022f1b473bde3083a99e11aeba8c03218fa07d6c4a5f8b2504d2cb54505c40130fef5a2412f7a5ddfec5e2c8b5058f7cbde7ace0ac01c7ba8a1bd897e8974d991ad2b95c2f03100a34ff408a788c70ab5ec73b5356a4e3c7beb44fcb9e2f3f25d1c974ed962b148167684351dc2a223a174c9744b092071d58dfd39c38364f47d292651e7806ad7962bbedb64739d7ea298f0254244790e3971c15b861c95f00f65532aa1c77fba5c04ad078525128e92ed2b4f1269ae744547e3efd4ebb63e9df844df152a098c47fa492bfe0f1917ec973867c7491f64c172cf3ea1bc3f97b42a397e6ad88d12e150d3dbe360071a3285d6a68ee6e736eb4d7d637c649c2f545259ecd430b25b38a1618d69a4602ca8a2a151066f12c3807f5dc7cbd06bf095711e4483cb0a89c26dd9e4b0b03e05beca349f601c894f9a245aca3204584a9bd844772dd87b83d481c8df18b615307eaf643cbe856488c160e077458e899755301749d2d27bc190d68a5da11\n\n[e = 10001]\n[keyAsn = 3082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keysize = 3072]\n[n = 0a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[sha = SHA-384]\n\n# tcId = 322\nmsg = \npadding = 3041300d06096086480165030402020500043038b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b\nresult = valid\nsig = 473432cf11b6f96b1dd41e1742ace21cd10e8dad89a3e00ec68f3b45411059d0bbc6c8a3f077bfb4b12da60aca86dd856934061aa8e4c3221a019b7ed3d4e70ed8bf53fa140d3c31877a135a6ae140e021bea9408ee61fe7f32e60cd18932282b1aef1019f9a39789cb48991e535568b55eb26cf96e9bab35d03121f6be9f0d65079b064cff923edb5639cf08f48ecaec0670ab37b03e4cc2e604582e1cccef79f262c8b3d146887303c542ae7c455b0f68e882c5e2259ecd9f76cd3706e9894766089b267ed3bdec29df5b57e6a6f8deff21e093ce611724ba1012cf63aa2c62e7267af4b1df5ef030e6cba7b217d46fe43fab255f41ce086bec5e4f604718c95acdbd5c56bf8b68541ac0dde0a5e0f2336ea608864abdc5324b29b9f7bd35c514373efde38bb593b8d4b249535984662bf4b397b2a584ca15624416537320fdef81133d6038edd99ee19af9567c9fa536474effa925555c9c2fcea525fe2da935b791ec1d7d3bde33a58f80dd1e587e1c433239c65332e94d66d3c79bfd190\n\n# tcId = 323\nmsg = 0000000000000000000000000000000000000000\npadding = 3041300d060960864801650304020205000430a5a2cb4f3870291de150e09ee864f3b2b3b342937ac719a149439185ad6a47bb4f23ae83ff20f0c8f0c79a1764244a63\nresult = valid\nsig = 69d89aee9a1b9827228c40c3f3bdb9479ed36bedd2c77b3f5dca19917a5cde9636b9f6ede29718a391224ab58f464c9052b5e6786178194a90ec04d2d2b7513b19df2799b0e7a2d6d1ef2c49ec6870fb8cae45ee1103692da8d211bf61f656d304f69adf68c0227c7af5ceb8c2db4a3668bb6a1b8cc3a437b9df79bc0dd650d6e3a42295b4a6e23d40b3a9b7548f3760e0faf69200df230d2c143807b2f35fa449cfa73792844dff5d2ae50adc272c0dbacacd60eb0b7964012a5c1981cb2f358ff53509f90b0ec41259fef321e9a306a08363ed194e51ab6dbc00ceee576c048c02704a19f8f357250adc70cdd2819157d71af04ab0cc63ac9c6fa4b5799eae521e275f26ce53302017510826f96c4a2889deaef19fdedacc70a6598aa89e2bcf373239bed98d1f2267fa7c2436add13df68d9ea296fab52fed0f5ee46874f48735fe32c61ed2b1c977ff1862ccce093bdf7d84a6b03c3007c4c926d1e52d81dcc0bc2a553a12be363b764f6a322e41a8318ea7408c18e33c260aa05d039625\n\n# tcId = 324\nmsg = 54657374\npadding = 3041300d0609608648016503040202050004307b8f4654076b80eb963911f19cfad1aaf4285ed48e826f6cde1b01a79aa73fadb5446e667fc4f90417782c91270540f3\nresult = valid\nsig = 259332bd5a274bc347ffa3e8a31c8b27f216cc865d32c917a5d7e4c06abd44b6c024f44eba997862c812d8ebaf7caccbb234293178e44b2532478e8bebf6af5f83318ebe398e0850e929a89cda860cd18ec94554e4e0d45a9ec2d9acd83fbef2b5d31dd7b2f3c12e791afd3e39a9437fda7724c9426194bcfdc6bd52036f62aeea7853db2c8c498103eb60180281170aa0fae8139417974d917090dba8f9061665e92d953827dff4d450f5566d2c5b753b65c9b522a0c4da868629569a666b7c292b22060e92acf4ed65e51245403a4f162c8b504b85a810906ecaca2956d395c163a7f6f23573156968ecf62ef46b72b9ce39303681e354e91c5d7944cd3288b2a84a1ea28e7e6f260bc5f8d92be419ad649a8f55a2195ca46130922d82759f9bc030c8b122211d952c3ee7851f09f30c2fecd1070656c69c2598584b55cbe6567dd2719305dc52dfda03ea289a5db920fc2c777e7081cfd92864316d3fca9aaf8e2218ed8a5235e746e5cd9bcc856b0c615b901dc610f0193171869202e845\n\n# tcId = 325\nmsg = 313233343030\npadding = 3041300d060960864801650304020205000430f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace\nresult = valid\nsig = 1f32b36eb43f87b18e569fcfe7021763bea0ca576cd273c0b20352906ed8484428d250241709c825704518ff9e97103bb70cd26f437f87754bd40407034a9653d00e868a759a190f3067ce5efce9ab17c8b46000d88e2d9e68b8dae0a0eaa4a31d3bb51c8c8d0fc839b0b273c83dad57016b1b5c1d8eccff1c753e5c6d189ed07b801f0a54a1144c142011fd3226451faea43d52597b003f9256cedb0d7d7f56d86dfeef50179a794f0b0de97da1926e9491f025bb3c3e8e031661e0ead860c8914f0b294bf8cfea2d5ccc726ad0743e192510732dc84301eee15eca3c6a5213ba66d0871789315f8537a44b727bd8a10d6e54636b345715fc0b6f5b5116f22557b0af9f948558b0ff4a3b0faf1de7da1965b977aaaf039c5b7b09b4f03efeeab3189d2a09", - "fddc3983e4815df35ddd1c2198b695cffc35aa6662839f82468cb676b677d53ee4857ab9be7bd99e1749c811e2d6584427cbce14d2ca15df061165e85502420602666993463733b43c1c1ebae8d37780470b8cf5cae31cd7427799\n\n# tcId = 326\nmsg = 4d657373616765\npadding = 3041300d060960864801650304020205000430b526d8394134b853bd071719bc99d42b669bc9252baa82dcafabc1f322a3841c57cc0c82f080fd331b1666112b27a329\nresult = valid\nsig = 7e3165358b5d09ab1ad1599935bbdab27abc32486910382a0ae630f725b5dca5ffaa9e606e2e555122c1e0f3409d7d915ea00d8784b814a6721d0dd117297c951c8d225a484a549e488fb80f996ad65490a09defb0b46f9cfca2e952b04dfd5418da920dfb2968e48dba8f0729b16fa32a832fd8b789bfebc63f01a1190813cfd55ace949d802afffbe9a1ec1e6a5df196e5ffb241c918d712e466f30c66c0bddd48b57ba4d0baa0c2ba9bcf519c3a26140df6aa5efbdd5ac9beff48613f92d247b35efbd6014f3d714705933e47d582f4a5da05b15a79bcacba1aa15a5fd6ddb228bbe4c5236f9ac607f41a492e6b1c92bd68ce30659eb5b27a5b2f76a5867dafbf85a9dfddfdd476c383fd03e38e81f2e1434553643e652cc006e5df7313272335f122a7fd9cae6f2f5a7da65865698d6d08d688000a730c90919e1826bfa1db85d5607ff9d76cb100ea1649442cefc4251a8cc1d823215e0ad1abfb2976bc4a6b2bbd793ebf9c7770957dba1e2a8583d9a82a072386d0957789b450993c77\n\n# tcId = 327\nmsg = 61\npadding = 3041300d06096086480165030402020500043054a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31\nresult = valid\nsig = 8bc948c5c16603ab63e75e18bc7f062ea4c675ebf98dcacc1a9826b0eeab0004e2592b07525fca53bd288bb56b5961aea93b548771068f5b0cef467c387e2d62c91e045872922b516dd6c5b8ac3615c986a9c8b5211a05f63e82387175e8749709951273cd9d8b2eccf678284761c72285be5c189c4400629c26f87bf18ebfe5e56f2057fd91fc9209ec48a872d6d23bc330f1c81ede7fc5a0e2b09c3a4735eff9c8adf73152b3406a62656897c1eef075c4fb02244ecd93912dd36fbe0d358a71e02d2b302dbebd28ba50860e4a963071f0a890a2e400c18f530cf9440a897eb2781ceb17bbc58f61828a6456b93c86df972c42d082b913c4d8807b7563aafb7b330ec39dc988674a5c3b36f6bbdd096201f1c7c25ca9ea8f28e923ba46dbe93910268d6e35cfb605b92ecf98699ae9b09dd4634d1280586c5e6bb0b1a4b5e5e22b225453f5c66f9a7ed7fff83ecb201eb157c76c9beff95227b495c8516bbc7118f011cf9237b6e794bd7a9ba19e35d0a650dbf7c06a0c9ddc95f108a78246\n\n# tcId = 328\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3041300d060960864801650304020205000430ae9ada2a808aca7097c9e9c30fba4ca60a5e79874a6be0f5afeb7f5df3538346f04b84ee06bef7ac879a0085bb2036c8\nresult = valid\nsig = 09ee821221ce7bbeb4d66ea3ec88387bb5c5bfb055b8beb36ccba4c2ce9666b1a09935689db1cc2312d797ac8b6f62643de736f38269a81f969308eb616cf41960341fa8edd3501f4edf73736806b6fc1387df4ef3e1e26c03249f3db6471ed580699e8ac77d0fd9a78972347e8657b6cdfe172fda324eea00d60d38b47e066c4a6fc0e33f75d1d4ecdf46efd966ca9aef80d22e43dfc2cd0af37fa70d6df7c637c3c18a219bf58dc1e7bfc941a235bfe81ee7101530a2c264527608d7148dd91325b7895817ae50d774e8dcd2def8a476a9592d55be743c62c1192f0ad69981fdc8651c1db828097ff8088b720c637c60c771b5091f9d9e174bc823115a1f7dbf086f9ad36a403c2d710c47af4753fe6e43c675c30219abc2b8560bd18c25aac719546ce7a74080fcf22bd4e6cffc270e57baedcf2739c5cf4fc5fac18f5dd023301caac1b1faf4dcc65327255ccf54f5fbd3cf82801a8685c2eef3c5e7f608cf6f747b8307f617fce148347b76facf0e1f7895aeeb11e3225e3a6066a244ca\n\n[e = 10001]\n[keyAsn = 3082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keysize = 3072]\n[n = 0fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[sha = SHA-512]\n\n# tcId = 329\nmsg = \npadding = 3051300d060960864801650304020305000440cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e\nresult = valid\nsig = ebf3c64e4c19fcb0fd920e65554a552cc1e652312c2e0e51cdb3b92c94b2b41ee201f61f434a6aa4703e87416388f4661c04fdc2e459e199af3ea208c61b99d746f4b00d82105caf4f0196f1305e806bc13b4c6e6bf581962862dcb0eb15a0ffcb0fe6b36502320011b540799e1432baf2a56a428fad64811afb57d210d859a1201ec057dd8d2a68784b48dd07357162f21e4c82f8d5e385b1f72834dd4c0d85ffd333410f08ff28fdb7365e408a60af177c80298726940bf4c40efcddceee3945b1d921b9d04080dfb12d3ae61863ad2e3e302370f5a8858a1213dfcd500269ebef76f4ebf0982a751d8ade1aeed95f41d4560084711362774b11b6240c0ba6ee4ca634ba8298f6e63ef560a39047481b9eaa546178e69e4daf5651c66c6235ba97c231241c63ad16efe59b7b5505d9c3f1818368b9462cda71849e431648be9757620c15f99ca78f4e250afc41ffdcdc52693a1fd43506274c431caf34a4d37321f5ccf04971a25c5010b9ada07596bf9a20bf307db9d5e86146226081b25f\n\n# tcId = 330\nmsg = 0000000000000000000000000000000000000000\npadding = 3051300d060960864801650304020305000440d296b892b3a7964bd0cc882fc7c0be948b6bbd8eb1eff8c13942fcaabf1f38772dd56ba4d8ecd0b626ff5cef1cd045a1b0a76910396f3c7430b215a85950e9c3\nresult = valid\nsig = b9bb1751f2336ef5126508541b949d40f1719bd23c2f0fed64a7b73ebe1819377e6e4262f8440a3a3cd456f5eec0b1c0956bf6989add2c3d1c7ba4acf7a617d198179dd974051fa7a14ecd8093ad572d7e233daa2a9a46fe59bcf7e01c6ad8d68c0afa89a58247ce257566edcedd799173e2babadac15405e2812ad12ad900ad997035966a05a02988e11133c21e111a8e06d7ce509de1e0c11de55379482cfa072348fb41c05083529c2db86aebee92095e7450a75d97fce7b3103ef1f8598459651dcb9b6e90f299c9efc95d7ced2f6e91526ab3788238e2b5e109d3ea984189ea13939d58fd4ab896c76bca4f6a92fd3bc124dddfabef1f286583a1415d1fdb8c80de8e7583fd6d52836a22c3926f69723301904532b9fac2a37d0cedccd4b3d0ddf3550377191f813d4f92a5c126ae91e03fbffbcf59637ebbf1f30acba1dfcb0f93285381cec6da60bbcc62074075c71300f8424e0f964422dfac19d205251f227614bc13568f408284b6b53bebd7dc4adfb7e242953564763292d9c01a\n\n# tcId = 331\nmsg = 54657374\npadding = 3051300d060960864801650304020305000440c6ee9e33cf5c6715a1d148fd73f7318884b41adcb916021e2bc0e800a5c5dd97f5142178f6ae88c8fdd98e1afb0ce4c8d2c54b5f37b30b7da1997bb33b0b8a31\nresult = valid\nsig = 1cc02717a3321a83da62deb3ed0b9706cf7ca9fdf3674617fcdc3364a697825b910d54b891b5f8eba197049047cf0048ffba6425d47374ec24a84f1f7f04716b7ec54daccd04aff858e2e7c8830e4420b5f99df756018083abe46d3fbce2da6e8ce6c893fc11ce5967a5f367159f9ad38d957078dbfbd32e818a26b49ae00151350044d22b58a4a61a35fadef67e3f8247f407f026eb17b8dd4ab29d388bfb271a1ec606e141", - "cef3fe57e2e55ae8b40fb076a06f5898362b695545124e9c185c50647cc5b83f09f406e780f626ec60462fb50caf8560aa72fbe174111142029b19f2d681f771a774afedfe2500fd8b1bdd437fc41709253ffdedc302f47afa774f5ad23777a57fe44067182f4b35a28923edc82255cce11d2fbe91acbce29289b4e0e8f5e99e906e6607637b05eab4028d85e91d060fc1fee052a09baeea759917b34855e09b8e5b67ad60f45851e991cf01dd528b100327961eefd0c29f1d1d8771bbf3bb1e7f048d9c2e1dc5e652e6ac4f6a2aef86245b83f611700bedd07a\n\n# tcId = 332\nmsg = 313233343030\npadding = 3051300d06096086480165030402030500044043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc\nresult = valid\nsig = a0de9c2df76523499c6c344173d944b8e02ee1520f90759fa3c27ce284091f80215a9a26c9fcebc125171da556bb732a0645cd64b05c7cbcd8c187d3995e3c86cd59468118e9278ecdb8e791badca8785e56f33478ba03eca721591930db01bc1a5da5e193b2dc9022e98948644a406138a4c7971ad8ade585a3d72e6c9de50320b9fca1ac0e054835005cd39c96400c491e1b706eca22ae2e9f1b844284226fdcdab1f2cc942a8280f7786e0f2cd069b9ae99f04aae424a6d24eb023e064513931b2e4f7629151af6bf83f4c5c58616960f080c6f96eeab07a87b6d7cef3fe6b071e49ed340b48867a5bea30dee332cb89e1a54d9e3a9a8bbb87179c6ad206fd48dab07104b1f887a02160b59f9ddac6d1f8801c1a8df507ec199e970e02058c749475b7636ba2def322160b11b21773fdf904cc665eb5eda887ecb6d9be245d3dbd85cde107d082cc6d8492a087166e23835a379ac69f5a996ad9032cc41e205078c5ec9c50f85c396822c057b25595a35471a2fc3bdd3f75eb8ecf2d1189d\n\n# tcId = 333\nmsg = 4d657373616765\npadding = 3051300d0609608648016503040203050004404fb472dfc43def7a46ad442c58ac532f89e0c8a96f23b672f5fd637652eab158d4d589444ef7530a34e6626b40830b4e1ec5364611ae31c599bffa958e8b4c4e\nresult = valid\nsig = ddad8eeace34f1eb1b0dd28db89ba710ee68aabb54b0a826c2d69355f63acf0f2f2e0dcb96f388d44d0940774d7d55fe81ba6a8a880aeee8ce842101c7e8837fbf2704971341d38bf3289dfc61a6b3b557588db93eef2789d3735000c8e2d830a32070626d079e710c943082a8bd1c0cfb64b2dd911eea76001f8e08cdc01cb072f027fbd9c72331b857d07c1c2f3090eca53accef8b3b015438942e8d2fd3406cbc54c7ec3797a163b13878881f7b4ef5ca45056e16e0c2a76c3d5108c6f0f48803d27eb4b0d55e90b19b6fe372dceaa61270b9efe2800bb259dbead955635ca44ff979bb054b5cdf86d4914ee553d7d5b1a49fb8e49f3f761224802858458f702aa4428964a32a45bed5738224517489f2be075f9ec7234a019005be922b8265bd78abdeb1d1633fe7e5aeb37b61d36b1a03a06847a812e50ed551853d3cdebffaba8b056b788a1bc452ebdb5a3f043a116e5a3d262c745fc15897ad4ad955595292a79eb85373d552d6079ad77e469f7d3a60330702125127b1ee770225cd\n\n# tcId = 334\nmsg = 61\npadding = 3051300d0609608648016503040203050004401f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75\nresult = valid\nsig = 2ecc537edc397ae5c3c789638204ba3393bff5cd9c1f0552db515a8258a311b6bdc88325f9072d2ae67bcf132a92c0b4d01ef0f2916349adc6d8f1b415c86bce6b5afcf4cf2d3137897d0f8a33063a0ff69965a5d2ef00dc3e010094ec8214c95c064313c8e90bd84e34c86b2e19b056539bdb3c83eec23722b3e380a53826bbb31cc97ebb8ca77cfd96d3e6a2da59baaace3883c652a92e79653941c5615bd30c77aa38ad74c49d36ceb9f76544835d57f0cd14999c2c0cf3debbee17a8aba6d777ebd9ffd44b09e093f1a894a8aee80301c3a5a59626a79e445254cb1df1174450bee22a7518afeeb15495d663af289dbb09216543bccd136abf2646bac573551cfd04e6a35b5cdf9729c8b14d34c06660a42b3ab365a42ffe470b69062d0f305c733c43844565b0b94d49d2019933de9686088d219d57b256170c137a21475d03f2a7e0783af11426fc6e64895fb92da117702e4487558e8bd21db82f263c4bdc64065c4f66d87c87889ec5aa9cee02c95d001b08636dc3420f817c228dc7\n\n# tcId = 335\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3051300d060960864801650304020305000440aa0a2e60e45f276fe3aefe9fc07c6f2435f143ee2afd895e4809384e833be66a6396c839d6f7db83f37736645454c6e63712b27e70edcdd7440e1275235070c0\nresult = valid\nsig = b9b492d4796fa2cb7066069a00e36aab8b8755f9dc8294401137efb3e2681c9b57930c0ba87b45c9d70e214979cca91a06562f710a2427660547006ead7b3e619cf4652131fd84999c5ff1c9a1cf057363b8ac62501bbfb1fae840cc963a95169c658add96c6c969d415c10bec5e2457a5c3fa4fe81e7de1afdec6f4e59e3fea185c7cd1bee4b8a42d2f22c7bad7d4933621a0cfacf0136abffc3ac54ea37c63af719425084cade944999aca3f43c7625d22af10149f39acef32ed7c92f781809aaa945b2f446a03e66150a524c7d88b7bec587ba7d6fe2db4ebb7a8c3bd46e7fa1cae291ff502acf33f003dfd1417fc60674501728e52490476d813f0079f56a9456909ccee3b76b30aca26fd4487527f4ee6283bdb2e72393d661ec0c35b2d1675f679f823fd28e044fed090721ba4c6be46da3eab26e5eb356d17d04fc3ac31425a6f6a50474e2725bd4dc30da74fd3767a122ced21671e47b1fb33bb7018349f7cbc916c6c7f4ca7334735a0e0ec18e01735107bd2ff02cd9508fa5832dd\n\n[e = 10001]\n[keyAsn = 3082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keysize = 4096]\n[n = 0956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[sha = SHA-256]\n\n# tcId = 336\nmsg = \npadding = 3031300d060960864801650304020105000420e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nresult = valid\nsig = 368105195f0dc82c2cd37e8edc6ddc0c983dc13ddcf6f9db9a24b52921e5280319a1bcf797f774066d643e5c99b811f0ad9df2a3f430f4848a03ddb97e06daa4d01ddd50bf2b638935cd26b19d6ffccba884a4e7cba35830c6cc5ccce38bc0fcc4ea421347e241711a551c67923b3daaf2e9c51635d416cc2393a9a4f108f84f26990c11dbaacea75e39dc6082b539cd2c0c8dda6c78cb", - "ad12e14a352b9dd5c92a3702d8538fcce0e92e26489ea83d75c174ab671210fbc6c397be2167864b519b5136d23a4363ef773ebc140e1da4b0a788d7b1f15a300375ee42b27261675fdfc60c29bab7022dc2e624c7d1f31e278ac089c5880e701bec41f63c8f897c0cecc5eff0a801dbc58d7d4df6e860c20e61f31d9ab2d50e8fbec7471070d8ed06c4c9c725cb63afde0cc4475d3dcb7dcad7eabd874ddf7294cd9d2a66b13b6367a14dfe3827da0c6c8b9e734deece80fd79609ce5ce0a16de6610fd04a09b0b2411bae2bc3222ab4c02867838d0c8346c60589e6204b226efb401841fb95da05ff32989ef935425b943d1b5d2f8af5113491a36c60a98c90b6453144f5fe00a0df3de8d02f0f59c7b94ddc7c8895b1dff8d88f69a9a2cfbb55eda0837800950601fc9e230a5514c9674fb576df8391c51ba0febc29c267462ed5337326b6f40d243ad7d81459ecabbd00126b2142e6ba10d9f903a9918d2280c63ee84b47062e1\n\n# tcId = 337\nmsg = 0000000000000000000000000000000000000000\npadding = 3031300d060960864801650304020105000420de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90\nresult = valid\nsig = 46a6c9cd78e38d5567795dbea71872ac16da06725975cee7d8839d2de665ec3b8411277f3e026fd2f9b836d788b48539755858bc8be0804147b59c09354b372713145e5a000ac15744ccd2db5795727e2f4d5f67bcab5e7cb1290824963ae88528aba0e6785989c8adb86084d26dd1faea3ae2a6175739fe978b576eff673832e513419806d206e0984d1ef0e1c8d8981084ee2ee569806b003fb7f08e775998eba1771f1efa070c00a769363c6101d5c5fc6140f102469574cd09746130ed80d14eabcd0a0418a752d5595b5f40ee0fb05f5f9860e600d75fbdd53461f5ea18be5bd807281f9e8fd6cf7eb31985206c9a5033cdea631512bffdd977fee5e692b3153a2ce9c7708a9c7d665d84762740cc9ea374bd32c18c2d76320e4893a2fac374ca7122e01e08011c351bd33725a6adad96becd44e4ec1032fbfb0c8dcf13cae9556eaf419211d0149c574b8d12ffe5bc59468c7c549283be541697258af847e52a9aa8063557dfa40404adbaa95e38ad28eba053aec3c123e98ab1b947bb774841e9040dd5409068a2c8a84c530fc4273897ed845d76dbafbf45af1a8fd2767234fac1e852453d8b7eede02af228d8b5821238a50a321490dab74d687a3400c34f215b85823424c9d966b516cccac38fc7f08769f47d66c57b9b75ea67be82508a513946bcbc809436efc4ee85f139b143c5bc15ff69ad1f3667c3f69bcf\n\n# tcId = 338\nmsg = 54657374\npadding = 3031300d060960864801650304020105000420532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25\nresult = valid\nsig = 43929c2fb0986fc4570a3ee7f6701b96a78ec9297a997415a142ae539031c0e196add5e4c6ec572de0a2b109cf23a42567ebe98f42cf312d07538e4a32b0f20403b662c652ba9e3d6e38a625d6b5e91cce5c810d7a02262338e144a57db4ac4debfc536e8eaca7fe08022a2f64741d66d25e3010f2fd259d4c6b00582584bbbdcde4266d86eddfd0443ff24b06cf7ade6d733c637a48a398dbb28355ffb9bd21a49de6b345ef635b68d917b5bfcb9016f7c64c444dc0036ecab8f59b0d29098facca02335df44db87d30d02f08553ffd0379b33d13d09a385cae7d63b6db52e9b1eb8fd549e0e1e18210de1d3e9527547e5c72f816eb36288b09d96db772f955ca46fc8cbdb6eea93c841e1075c00c3c45e9442d28095136cc5ce8212ed8c60c9668898ab5d64734d4d0f2311f104cf8a732e6d88fb2064cb57bd54d3cdef7c11c840ecb238466c747289233a317b73785778ff4349949da47c9b4b2dc9f89bd1fe7e98b582500dfc05dba3fa410cca66acd854669940543c22ed1038eac7f0212b9ce4aedba0eb15ea1e75a73c45c1ae03fd241662e9cb89b051939c468db3a0adab822617b5bc669d1e0226cf6b475445d9d5e77ef54ed646cd81f0952b949b7f4f37381ba6427e060966467a76e1d9261a5fe8c68398a89eb5025cc39339885b6c33dde898a159f0af4acc81461fae37f5f4c61de4a888dc4f6b1e2b7336f\n\n# tcId = 339\nmsg = 313233343030\npadding = 3031300d060960864801650304020105000420bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023\nresult = valid\nsig = 0e207de1295caadb15098f51f5db90f9f000776055b107be58bd24d52a01d4171cb9e47a40790254f86a8a56c8ae38252f909aa3b9bbe7b7e1fed008105690d9afa647067ac122a272d30ac28213d2cd37b45cf81dc48d59e87d9ffaef6e1c9cf6ddf4ea5ff6123523c9cc885344b7e1ef4c8096bb542bc0fa5c47abaabca9a58ca85bcf092924741503a0f3c54c725c48855dc434b09d761f729051fb15af5612bdd387b4cd5019577327bb2e64edb065f713d50ff4285f1d184fe709207f809b9c38d064722897a868f8a09bfe1d33c80be0693e98d7e85600befb643e9f713584c716306731d7f8087dff66be1c4f6dddbc51b6ffe6034845cf0f88749e039ec314887c94648154f7c97235323bf78041ec2c8ee98ea7c553ecfec1f9fe89279c9c91ac6acd12ebe969da4c67fa6534ef9ace4b629c7b1de8c4ce1dc2b0f5bd7d416db6eb512a4dc8eda0322138cb7c65b9a58d712284e4aaf059db80af5785af4d83d391b7d8bdc4071636712410d1dde662478eada1a2f1f35786b78eec77b2788536108e7463d676814a91f81fd5e2084a8c1b1cc33988e73184110c6e6b0ef1de874104602eb33b5276ebbac95d91b943e25de6dfc66b31d8091961c78dcddd358de7f25584d9f74dc6271ff31294bee2cc9b2f97a2583c9b33243600500bc723b05d65839de7442895bd57a1dd508651a20e20f264d8dcb59d485247\n\n# tcId = 340\nmsg = 4d657373616765\npadding = 3031300d0609608648016503040201050004202f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91\nresult = valid\nsig = 0a882c367ff495646c21ef0489ce268d6c4e6cd0176bf9488d4b8edf04e1706f23d121b500b427eb8652099689429a08e73294cfd29694f9b4f33ebc8a7f9d0f9d11f114d0f848114d116ebcab828c7ed4c64d5ddce9958bd0883ae82ee2be0a185d54ae64690accd816971ea5ef80d7d601e72a814b9b61e8d00727a843ac90639f2c83cc7e2a9065ebea3e7aad3b12dd9ed8a1ee03a43e669598571490fd92b699d2941fda3af7271f8864c844f8efcbac20066c7bee682c644da2329db721ff33a7a81869a7bfb7a910fde6008e1bdb4e9ff989ff78fc0a9f43b38399083808fb3f38f0e96d4020bf8a4b329bbf81d59dffb03f5d1ea34276ddcccc2a4319393e1777488c843f9b0aef1fcab7a97e00d50f7f83bbfd30272c8ea4a5b0d7b74e7f7b70a9295d0e942e5b6e627ff8457d0f60c1aac8fe10b7d7ab1b8cd18d3904bfde2a316a83ee2b7633c3dee3141fbd61c8115f88ee7ca4b2b677d1803a1a35361c956c1adcfa8c8e10f0422eb3347b4983eff3c1c79e7da80a2e7c6d55e61f5af74254bd91db0d4bc10c3812513d832bd6a603a6bafd29cd5c062d9e3b74631f873fb3ab47e59791446e5f795d6ef5bbfa267a541d4405dc09e82c8b03f51db4798cc96dda7a7bce7ba9c679d851d5dd2e6b3735aaa2fcff0d558d68959c6af8b283fd383315762767cd0e4ef6e027020148cd3b14833cad4d92c2c9ce15\n\n# tcId = 341\nmsg = 61\npadding = 3031300d060960864801650304020105000420ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb\nresult = valid\nsig = 374603f5d4728526e6cc7c7bfb6f456bd33bdabf37d942dfa8132a9479f6e4a9c2dfee515d883ace45cf1d660190e442a9ea7590d67aac9bde6951314af90baac21bed537c774148afb7927337d626525e13fa15664cdd78dfa5e3886ee1fe7137ad5f69aadcb098a0d49475b0f76ed1bb86cbd08a0cae9a6ec120eabd55b7e5c4456bfac2b2acc3892110b7f62c0dbe7ec7e491474c5c641453743fd70b15f7a726a0ca44a78bfaf3445a979bd4df362b7f29d4ed9189bfcdee01476cf1b48c2edaf02d226b41f587a8db161bd36e6ea20d64c8773fbe8c0296b9e016ccde333b380161a641d822bc65d3b60417534072263cd461a4f77826cbd0508ea11720081c34b12d80ef0963857624d48c53748f279bf6ad338ba564e35d37d1dea27d19ad5dcb76d6f4aac62e49eededb1121e06b9f78eb285f7d7ee2cd475e791cc04c029cb76e5b33743aca3ac3adf5e317d95aa79a2f0ac3c328e69ea4692661b8107d89eeaaf3be01122544fd9d0c61511e87c6a5507c5701655d35f71586badd55b26363b51f019896c03326c72332de5be8a0f146d630a6e747a906684c7dc59d3bda667c8a92432e879f6a4d91d3cdca89b9840285bd8a22e5e5bebc32011725f64cb5fcbade8a5f5f9ba372a9be7f0a4907e40b4d06feffee3a558fd023514b504308a1d821c41955c305f550ffdf005b9bd5dfce2d16d3d09bf17c156c4a\n\n# tcId = 342\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3031300d0609608648016503040201050004209432c1a7d343fcfacb164bdc44ff71c1281c004886b1c428419088d06cd3561a\nresult = valid\nsig = 401bf4e63be4259b54c5909797b2b01fca18a6f74d76fecf75535f2876079ad9ee56c653dafc3513eb02114f5c96efb4025cf58c2cd576d003f688b11458fe3df1657657ed52b2756a99b48c6722708ef11765c8da2f3b061c779f26a64fe13e4be4602d0ca2553793d36c23f3194705e34a75b9b91ff7f4e554c5907b85ecb561a8d22262aa3669cc7be2fc5c21b9170869ff52dcba46b2b1c688e4c04e7a8f099e3a4196863bd1e828fb5ea5443b64b190327622055d44ff4c9999601338e56c175c716abf8d6c2ce6b9ef17930e846745e751f882ffb3f0b1a20e68ce9083d1466295caacdce85bd4a34615d09f2051839ff83650708888db818aca9229c38ddef86848a2c0c88b86a2f5a1079dcf0e888be62e116850b7e8d06785627fca1899f6d7c02eb60c3bae0d538cde8a05ef7281bba7f35757360ffa79fdd08642b6af5aaf8c71a32aecd0e9f3d9a2ef164da1740a5c2dd7943603bafde05e38f2ba78c15c3eef13a5059f3f242f07af2e6044896d1d6d9810ed3fb8203ca4efc116e95d2f53be8c55fc1ce653f02597c0df7d4a7dd88b41c2a65e40bf5dafbef2a97e4dc3bb49445774cac283ae131c08492c9715712f998241e16eb776915f15b7e9544ccf1dc220a9e139defd63cb2951090808395ce56555a7cdab4564d82151ddc0ba00db24454f2174bf0fe7ffe6e2d9d82a92437890bcae1601dbcea29a\n\n[e = 10001]\n[keyAsn = 3082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3", - "d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keysize = 4096]\n[n = 0e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[sha = SHA-384]\n\n# tcId = 343\nmsg = \npadding = 3041300d06096086480165030402020500043038b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b\nresult = valid\nsig = a454390b04bfdd69c4be2ad1bad96ec901639f0bb60df268415b4a93b4cd53510fe64f394b319e66ca8605d7d5f7a05dae5eff827060013503d857a977c09ef742525e43b7e69d3802a58206e696848a87ee17b2b9de6829044349036554c659c8f8866c401fe85869c0a5ea90739c4983a1561a84e4f0bceb00015a671f5283f41f0bb8599774829b6a2de24f14d83351c96e35ae1475c8b4bcd2cf66889237a206d147b0e949f2b2028ead379c74203017904ac09a5561a8ec343be22cf46c3bc2a87b12cf9cf6e8fb22de884bdd9677626b757a005d3745f387d296347d3852ddc2c4258cf572dc40df3ff6a8a5f9d8b1b410c54739b9ae182611ec01805c80b445d058ce2afc4bd58d87c03fc9500fba237bcbedb0960a1a02efef52b97cddac63b5eb0481c0c0991375735338ac84c0505415ad2bf8e7a819ad269460668ba8f8c879f521ec9dc709e406de023fc0f9129a3a94eb1f3af08d33eed6273e5166f31110097f5558d8d9028ff558e627c9c0db2454b134a82a9dacca5b4032bc0e27c4d41cf55e9d89cf51528bb4f08c6ee5ce651af3772f008a44863c851933a57cac8e29a84756c9fa7f80435b3b78486f9908512902d5461964918239c76b6790b780e09d2f1d3db1c59b275d20bb24fa4f518b25af3254b61d34ed8b444d3ca736ceffdddaf767bdc92b4543f68b25421cb8c1328f2f253e446be46d10\n\n# tcId = 344\nmsg = 0000000000000000000000000000000000000000\npadding = 3041300d060960864801650304020205000430a5a2cb4f3870291de150e09ee864f3b2b3b342937ac719a149439185ad6a47bb4f23ae83ff20f0c8f0c79a1764244a63\nresult = valid\nsig = 909c1f13b544933ccf3bc73ff5053a8a65a8f01b447d4b40f109cbde29d866368aaebf46c19051092063993862b32fd166006bdd4d988794d4e9a77821fc9e684fab1366a2d988eaca60e4fa8ea947dbc4b8438a9fc036691107d3d0be52c46c61342ef8fb7e08032921c1b455c55de28d58c77c1eaea03f13c26c4cea73d14acfa8ac2907f6a775273e7686ecf4b882b88a42cba11cd1efa5b985cf5a227654e54cdc9e2d283b80d250cce553fda636279336ba13f7f3659d70b5b2995a2ac7b60f329c62790d8eed1c3dacccd0df468a91e767c190be41a028d4efc1c5ed5e6f3a77930f50217fde9ce9ccb66b75731957959834839fa3bdc1a769fabebab03d3f0e605a12aa9fccb2a9421591a7427d82068623582de592935904b59a42e59b50419cd12d71da871862149a6500ec6870d989423346879551e506fada7c0c01b328244ac5f2e2c5bcbf4b5b09a4512a0edc90fee4d4dd9eb88582bfe37b49b8d8189051b32cccbc4d300284f9e523674a601b1a725722695d5ef438b770b575b6d0955edc761250bcc6a30e8d5c7287093236f223c2da8d9ab7d6b58e5d0e9167f2e8c58255ed16b63789ea16046bd0f987b156e9898076d444cc7a4aadc76699a2e3a442d63ca4c3f92da9f3b2c4ae13edf9d4e28ad206ed0cbd2df2a46920e298abd1904877b75c1a9ff80c5bf05bc5d1ab94d379d064fad894918ce326\n\n# tcId = 345\nmsg = 54657374\npadding = 3041300d0609608648016503040202050004307b8f4654076b80eb963911f19cfad1aaf4285ed48e826f6cde1b01a79aa73fadb5446e667fc4f90417782c91270540f3\nresult = valid\nsig = 65956121a818b842d861d0dbcbdef22aa05c7e94ce5d748308663e142881feadb85dc4421d9d01833b8b4c2713842c77949cee8b853286107c655de7778a5acca11afbf1d9dad429eb6a281c1e8ae1cfd37cdf530fd4f2b765c352bcea26ce44e2165c36553318d89b1e06ffd8a210cb988cbfc916a9401fbdaa56a1a2a4cb66ef00a3176182d33dec5f3625b760c37c82cf618cd2875079a36015af21d060dffeb5c9e1f4255d7fea64386d8d860c6868cd79ef6d7a87927753a78bdb63c4845306de1d73c5d7dccbb6cca9b65aef19a7b9e53d9c02a4a2bd6910e076959f9f40c30eaa0a6ef783c0b73f05566e4492e16b832729e03fc939e54bf0336d376a3b4cda534bee446dad3fe51d20bb8a135103e7e12220484bbe02e99c5803282ab90d11063e5243297f80d3f24ab08fe8f2fb62702b0543f0203972d35287ba64facbc635cb438a888c83c7028a325555f07521c3095bc4e38bd0f60eb90828319777fea2276e0bc76f2c13ebf92f802a08844209ccddd2aac1f2700e8a5107e86426e6ab76288fa01de18b8a63551fbe8705824d16e5190c559c7bbe8a17031e7d352a681b0418cb36423632ec48a8d3861136b250ad2fc72388e771b41849893cdbffe04aac4037209944ff3174f86f7a88414b1666727c960b1e54a2cdb82e39cf9f2661f4ad6e22f330b350eae7f588a623524617b1846486fe9f04abbf5e\n\n# tcId = 346\nmsg = 313233343030\npadding = 3041300d060960864801650304020205000430f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace\nresult = valid\nsig = 3b35a042a4791dc1ac1561ad1038750bb9a575a7ff72db2ee60ba027f8994bcbabe41fed36417bd139a286ed0aa6c3ef2868a7251442d060c1cc67d4470c3ab7c307acb0c0641218a45b9cdde05546653850c2168a59f1788cd55dacd40afe38eb941ff08ffa8bbe609f2aa795c73c0368f482d53d691980891ba43b69f5791c2e6f70e17a996a299e60ce1c9d44ebb9f29e700e9ae216df749149f6c222d1e1733953553a792745c382d44f52ff404ed5ee04c41ac8acc97c250f9a5e3cc6d70902d51e8ac000d05e36279d83491dfe6a40f222bc1dfcfa7fa5e0197cf47528f77719e007b65ca39dae17bd0f323b00ee63b66401e2ec5f8917ef600a41c3a61571a4d922c0b0ad0a290ee054ad15e63f1a0cafb749f80cae6cbeb06be62e1608b502182d247bc6a37abe5fd750ead8b7216a35e74b969005309b14be36a31c5e6c2266701d5afdb5ca2314e2f32ae17387d8284ad2c7225fa63ed47e7245a65b74f53a5bd22654b3878ed09b1e5e070bc20eefac6c95b006b8f3e613b19f518c48ee6781a12bd08ad36ba384d03d3ea3c4e0b1facc39741f9ec73d0335d2ee735355955ed12cf8b999d155d389b1a3caebdfbba32c883ef7d0e112d86e6149a3328b63b9385c68fe8a7b679e8436aef7466067a8e8bb49e31675729b3f448e7dd3c048973d2a5f8f7173c4428f3982a99361fa691d1588e39cd4485c450158\n\n# tcId = 347\nmsg = 4d657373616765\npadding = 3041300d060960864801650304020205000430b526d8394134b853bd071719bc99d42b669bc9252baa82dcafabc1f322a3841c57cc0c82f080fd331b1666112b27a329\nresult = valid\nsig = 09d8512c4667994623530a2317bbda738eb8917bc80c84b64793351463da171bccc88b95049a57", - "ccd917a4687da3be63db21b0ad0972ed9ed182f4ecc8e06647675340192a57e6591eacbf15d2f5fbdcab568b16ed86e668144d9e676e55ec4df1dce61f672de9f53d1743b72993a5d21ffeb7ab58e0f83e297cccbf25ed68c70dd8441c119afb6c07fb1d83edd9bc1ac34046733c8b827d002c3b6072d74a6c2cf7f1d968e9f7b0873de8ee5adf902dc68fbc93171f763c425964ea6e3af6691f1a303ff7837adb07a09f728de3377fff74adb34c959d363db650fa5c3035febfe8c62a0cde3d006a9d34d51c5b2c4a1dd4f2423c532c6b5fddf03e0a05fdf8d857f98787d6f55f0ce1d0ca95a37177657035ee48bd4f39f7d520ccc48ee999777868b4c3876e2242f59b725798bca28ae66c267c507cd65fde612c1fdc9362994ee31134d5561ad7c3f523858f43611c249cca3c134d00ed966a82b800da11add213731b58caf232fb2094e9dd42ceaffc7002f1592e79b85eb6e39ed5de8484f5509e0f54166426095e8522f88363fd0dd7bf64414011a710c7834958c0aa308189819cd4488588b84729dafe163e79856b913ef55afed55e83ee5b812579b87cdb80d5bc9ffa02ec32a0d97b0a56bfaead58a438cee53d40dd197fa2eeef4aff98eb5590163e68b5f3de443909769080c8a6bf87e3808bf265a41a3b79f8\n\n# tcId = 348\nmsg = 61\npadding = 3041300d06096086480165030402020500043054a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31\nresult = valid\nsig = 798f597e9ad4ba8b3d00a9527f4e785af5c55994e2953046a1b9062945e8dfa35eedb1e31af3daf1955d7b0afe74fbc53739b1aa02fa2dba629c31b211cd513e2248ed847dd579406ab603d3369de3bb07143a581734fd8b1ca0358c4fda639045be1f192b233efb8848bb2c544e4e188e0c7ce311bb4841077d15051c6f6b31998ddd8a7bd30d75b7b3c824358bccb35f8ffa8c0fc5ac37ed71cdd48ed3c0269a638317756bdc9287043be1b4f3c6ef6423f1d0d38857c195e7be81c3778648ab889474109ff3c7be0fec790d3f5f50b966e3df40c566f572f8f252d09e97d4c90442badf820c7db74d6fbb004bd7eb53c0b1a871bb9f480821bbb48b363c85c9866bf8a86de9c6732a3136f2c80e88a29540a9036b72fb8f4c898e7b487c41d0f693c91309bb3bc06f1e3b2fa9918c31ba2a4b82a37a927784a7c7d2aadc3301524ce2708774c3e2189ca188b3d85a33348d28ed6f080a06452bf8316d483e6a5e28b831797f85a8ca5ca922bcd94b9045f588ea9e15f2a20dd26817eeb80b3421c5de72db98843dc719cfb1aff1f927ee1df1bb718732159bec70d5b6d0f98a3fd5d42c31ecf4124cb1759f183838d676eca2cadb4d57f2d6a52cd0115ffec0fd79c99aa78df8c6b54797a590bfefd4c34e4c3f39750ba47f4d8002a131b870ff8e65c6c37b75e5c54c8a2bc2fdacedb41f30ed8bc9029819b7064b6514a1\n\n# tcId = 349\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3041300d060960864801650304020205000430ae9ada2a808aca7097c9e9c30fba4ca60a5e79874a6be0f5afeb7f5df3538346f04b84ee06bef7ac879a0085bb2036c8\nresult = valid\nsig = 41fa907da9f78e107b58ff6c4ac0e92a9bbc7f5b510260572fce4ef047c73cab3fb0d00b353b4cb9256dddad432c5815652bd83c78e657075781140de56189ecfbe1601f24bdce05c63f511a3d04673d24c4e943695d7812aad66f374a74a906177dc729090070cb5d6d518e7045f4cdece06ce2ae42e1177c46856a8425e60bb06040400c8ba0efb8d4f395a4377d4c2c128c68e6b30e358a73d9904d7aa1e517ef396526cb64d39b3b36ed7204b3bab1d91b23ca95b2ca1da3eee91c7d27b4e4e658fbf5060a79cce69be1d95252b0d7d7220797a53982dc371372969d4e06556507e7e7870a9efd9e03766702f217be1c8f7f80006c08d13e175040cf28b215deac6a1ebf3520a3ad9e91f9072dfe50c69d1aa5a0df73ad63f72831b055f2367ea35cfe676a4f7970bc85e2b58917d1bd449ed3d274ac40f7a515e261df3d067a277ae610e4ee4cf68b3a947ae8c8339c818ed10e73b6480577b2a13722023cbb09d3b378cfb71f6c86bd481ee09a1fcbb807338e968aa5af993697eab562aa4975562eea6b1169e86c75ef13e877cfcd4608994eadedea3eba55af19a7a55b19e92b974450a593cde717bf0d7ddbf0bbe8fef90816fecf86ec522a2d06a04ebbc50a1eafd67aa461a8a9cd705ece0bbb46cf773689cc19cd69607594fd2ebde06aaa1e34ebec001edf318fa22245876461fc46126172db41ae9ecd74700e\n\n[e = 10001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[n = 0c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[sha = SHA-512]\n\n# tcId = 350\nmsg = \npadding = 3051300d060960864801650304020305000440cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e\nresult = valid\nsig = 9cd28bf41b99fa4df2852d86536257fe111f63f01815146c057dc3bda9b6633e49495d38822392b6b901e6ac69c4f09623a524e49246c3710c85a1957943d89c8399b0c2a649938bb07340f14c6981a0da0fd35163bc7eedac80ad1cbf06a4c32a4a08523554256eb221395c76e1f79a5e3c5b9636673db3ba27eebf8315468888671f8441324e092124df31d396ad8367eb7c9d0afa44dae85d56208ba21ec7c1f0ed6a3678f5d97ba7089422c662d86cd514fe853f38481632197c1ba07e4d92735eef3b75afc25ffa900769c74ba34f2d157e74bbab64cf413bc858cf6c393e8afe24f9e71168e97db96717d0081d88a27257d8c692dd0e001f3fdc2090512550ad38725c10a201fc50f8dc89ecf363b4d21a7d815eb78557d42e657cb44bfc785203e8de00f9e18af1c8e12953a33b0717af215d9b04b71fc320bdf4d558faf55d03d30844237551e35ed6606bc706ca43a47e6c493e14719049065eb8e00760283ee72c1ae3ce019ce3263a90b8340d1a47b49b78d5cae9602539b379186e5c1e847b69c75152036c8d9ef3c77ecd151bdae7ff36a459d0bbc1dfa33ce3dcd94ee2cf6ee08a77485746306ed987eebaae2baa544b543b5afe143e4122ade5adfa4fd463a246f29482dce7a51573aa18fce87f7edde842e7f21ff9e40c4101b922616ee4c14ea1af3c4d417fe8876af381027d837fc40dc684e81b9eecd4\n\n# tcId = 351\nmsg = 0000000000000000000000000000000000000000\npadding = 3051300d060960864801650304020305000440d296b892b3a7964bd0cc882fc7c0be948b6bbd8eb1eff8c13942fcaabf1f38772dd56ba4d8ecd0b626ff5cef1cd045a1b0a76910396f3c7430b215a85950e9c3\nresult = valid\nsig ", - "= 659ffcbf6b22f5d201fa4114077aa7df32b513a1fa5948ee01f6e21c1862a2b91863f7aa53d1aadcab9347955210a91829a5f7c86b3e2850bd1f76b3c4f4333615ceb22830a7a9d7a13436683a48995bfd62f528ef4959d30b6ddcc8ed2a431c06c337250f8274417f6369b7a08b927885df52bd7370d3675094bf1bd32a7f5b0ca9a399a59f868cfb78f87b8647ab37d0d7a58d6f4a58f3e3df7ae88ddfa6470050229754f4ccfa265cec0635f0360c485d8f81974c6b8a11adce3775dd01936b82db37641ecf5f43cb8538055a053d4085c38a8a1c4e0c8af961448a779288c5efaab1eb4401c8f388c0b729e42243d935df1ad3705c1c5a7ffb6ea8ce77a69481a3b930f95ff118cd0fdb17393a37139b3b5a9c275c6bbbc819e18f49c369153bf1f7807b450e54fc28065a6ab6d5b0ee91d0a9302ebc0bccd35c2fb2fefc341a954b67e91f6d8f3f7b62c5fbe504508594f357b1ed951fcac7043a082b9bbf41ccf609881861e2de15ee99d373c0e99027ff240c0b6fa52be2e199967860baffbe25b3254fcd375da7152bb94ce8dd01465290fbcdea0838a69576e97e63cb636db79c2799a26f94a9fb044e3bf66c520895b4683bd799e6b04ab62f621dc00f20a4adb131606f127b84025269466c760181d7dd9ffd0aa5381180b541e5e933e1841d6386ec55a63bd9d8674a775526d30dbe34e4db87067a9326c6dba0\n\n# tcId = 352\nmsg = 54657374\npadding = 3051300d060960864801650304020305000440c6ee9e33cf5c6715a1d148fd73f7318884b41adcb916021e2bc0e800a5c5dd97f5142178f6ae88c8fdd98e1afb0ce4c8d2c54b5f37b30b7da1997bb33b0b8a31\nresult = valid\nsig = 46eaa4624a4d2c1f1043eb3d17b48d977819a8796f48f20174c50da624c657e64d3154dcfa2a5b1d8c6d2ed07cf1f1c19aaa611d6466f7e7ec73df5ee786573adc5a9e3c1d0a25559dad282db26e889807764115a05a23959acf48d23b3b33a93d8b6c7de3ee446f113eef96055d285fdfd27888e569c50f022d5e8abafc874dd5a61df6258e85268bff66cc5643107f7d9097496caedc185b37311ab6979f273e5670f143146b68e44b49389554772c1ca7bb7a12fcf67d67a1fd0c245bb4cbb924276ae756098599392cde076a1c0edc8096d9125e5a5d30c2a93d00fe2e0362e98592c8fd31ab5b4c3b34e65d38ca0c25874eb394e04969982b70932616b75ee2912c6a07f20ec70e52be630ebe024c0622aed125e00bc84980416b80cba7752eb90af2b8215c4b559880d2e1c577b7374531038083725d23d02d4fa5d8b5a4c68e9ea5e11fe2d9e03c1b8a4db0b053097b5a175b1131e8beef5d559bcc3f17ed2e6f6304c0e4650a2bb675aa8de44af8a2e301734584eea145c4b389f6180e6395412ae70e57f488ed15d45895be580bd87cd916b8f20e46ad2fff0367dda54266778bb444c6e4fdd45fa62cae3aeb54b6a7a6b4d8068e3a4d0730f0260340a6c32c3c5d33f514612c941bb63d730df5584933e12546500495b5ed3ba3631a3db871d17353d4c16676a0332ba4c4c4c68cdb6ff21ff737ee249be153c1d9\n\n# tcId = 353\nmsg = 313233343030\npadding = 3051300d06096086480165030402030500044043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158caa8b4e1acb2ec00837e5d941f342fb3cc\nresult = valid\nsig = 12813153b37fa6c0fd755a1c7c409bb8169c5a39d045dff2da02b2f8e8897b0cdc6c2d40e6945b97006f18e1b26983f77b70bf2961b5e5f2759241daee8c56fca7c53c81f69d3a0341720d9761a4f7be8c068464e881c85a2c39e0ac6f74f6f5cb42df8c3713f66a282d7fba85b7a09a6af83a068b78bfe83ab25841e4bc67c9e40cf2a0974f8875fb81cc6a115b91f922419c44ea82b33187521a7e1f46c0ab9459b4e97a3f4a1d9e92403a37168826fa0ee914232afb6c4d7dd082d0c58885e356d0efb8aa9ae33d045f24b4b3182d5c54556f5838c449d31a49a3ac4ba568c248ed72c111b5ffabd991ebf5c48efbca33cb38996d584992c4abdcc7b93700ca03619412a355b41b000a32f6cc4935f942209b56a23cfb7b788dceb692343995f77daffa25e44d672f8bc451f776560b415d0d1bfe9925af1c2567a8e9bd15b8554d93377c62b0addabd27e8d9e0859f498ba8e03094e1d86d41e69f7606d9f1fac04744c3b7b8fc4942a846e2a3649bd9416d500b9895455fb6741ed8ed4f426f20ab40d8ab2e6cf6c63f5c290fc011768b317bde49753efbdfd12583f1ca79287225f9c3d3ed0c4530815e4f5e7ed78d14aec0d04142d0ac0fa3bb5d73b4bfda2fe7103a2ab40672abf08ef4d9e537b9f856d32450e2e41d9277be62ad0675d1a530709f2747f51f17aba10381fdc70c626bab45d51166b6f6ad978d2dee\n\n# tcId = 354\nmsg = 4d657373616765\npadding = 3051300d0609608648016503040203050004404fb472dfc43def7a46ad442c58ac532f89e0c8a96f23b672f5fd637652eab158d4d589444ef7530a34e6626b40830b4e1ec5364611ae31c599bffa958e8b4c4e\nresult = valid\nsig = 27a042625f50673fe9edab9aa2fb4c60dcae0be2e8b75662bdddec7b1d698065510a193e17981bb0b1c32e46d237e15915afe2e2d4890c09907e1866095c19763524b6c8d2dbb7814ac5047f0a082f7fed4109741f4719e12ebb91f27a3cda71e80ec8a7f6c882ea5b3de3c9f156cff033a0d3cf787f9a8a833a29d0c96f0b68ccf55ffc62098e21f0df1832b70878dc94ef1a3260ec2fa56dd3c4fece5d855644d26012f56d2af85a0771d61367b7e266577e44c444347970908ab6cfae42069e2ceedf63679c2bd03697957e287d156b2717a416f0e4ad96868e1c7b80eb84e99778f670ca39c15e1f901def1efd824ea5f7bbe127dce8c8f53d849fe1172a1254caec13b10b0612e72d3f8e7206eee2620e8e3c0ea176deb4b1fdf5d8d37b57af553cf7628ead74443f98655b5166cdc08190d7e3b134d71c21bfacde3e4673529e6d8a9c7a8b419451e7ecc6c16a44b8e1b3f2c9d1c822df8f2b51d8fd027074ab2d1c52d16aab0a266c7d9ec03df7e631052e67a28963bf8560e89326168bb7c8f5a152f7ac54a46e88190c62a938628950df881a4be4136a55bad4f608d39ff37907a6f99bdee065e5ccd2921f8f1a2ebafcb336fc6ca96a207a5a0a7873420a2ea383a5f1c604c93b6c0ac69244f05d54cab184c6592e9bc4069df60d3cbcbf16729dc2f3f3540474890abef29e1b21dee8af0386ab61784d7af8d79c\n\n# tcId = 355\nmsg = 61\npadding = 3051300d0609608648016503040203050004401f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75\nresult = valid\nsig = 2e642b8a5208890b52187729c43a1a308cf6b846ba1c2fff152ff4a1b051753f14ab035c2f3f732d5a9df7c2cb732d09f8147509bf02df8ad26924eeb04dded8467b66c5e3eae384568f624e55c81cfd8e3204422677ab62d919a176471b1fa8bae44bcc8d4d116a6afe5ea2773ac52a24186d6a4374171ce0516bba8733c59f38d622b7b6b7ca7ed2123f7f46b6c06b02f4c7506c46327d7cd908ddd503fd42be3cc896008eb9202bbd7af08b9908121a8b27fa44747217ef72a8c549444232e9209ca1345ee017010409527faf0722e3f13641ede5730639bf560c8a655e2f96cbba7b2811da8a1fc3e5125c92754ea7b823f394998b8890602b1713c2a4d352066e01f55ea86fe3da71f9119300d84874b667a6538a90ab24aec2bdfd9ba9a5f0c3072d549653b16f4a4319ca398147e6753f9a048b5b250c64d599115bb717ce85c8370df62c93da7e10fe705a12482e6f25e6ef1f4851a305aa4dc21b08791885867fc10c5503a769a6d6794ab5a9cc5da68cfc3546b0e848ed8629ecded620ee3fa6dc1236b59874916c45f9c409c9889bb85d7b289ee5f45f6d33262dea83b32c071417d3759cf650b9d43468ff0c2e922632e8d73feb4c55fe4233dc1f0cc6f6e522fbc9e9362f1d69441d56ee5f3252dc0559339335901f539ba274cc3640ec776a12c5c7e5c1cfeddedccce36884ea01071c2bcfae7ebfb5b874e6\n\n# tcId = 356\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\npadding = 3051300d060960864801650304020305000440aa0a2e60e45f276fe3aefe9fc07c6f2435f143ee2afd895e4809384e833be66a6396c839d6f7db83f37736645454c6e63712b27e70edcdd7440e1275235070c0\nresult = valid\nsig = 811dec041124d3ed9d5eaa9c760ca5756e42525687d4af701231671e8f7f4448ea9b9eaacbd9c99659ee3c175277d30cdede73e1b332ffe41b8b737150ce1f1c67aa6b22ff801077c4241a6ff4af8f4db9462c70c13e1da86edec4042a70be9d08384d932681dae48fdb83149170472564a5bc68cbe952c76e476b99c8a5a1ecaae809690a014b28224ddb9c9dce0d4f6a77fa2888a71f3aa9b5deda0af40ad0464d9adbd26fde242523c096106124048bafe824f733b0af480056de2314f5e27db5aa3fd15705777e14efd2ac43beb12f8f496d09103ab377971cdd45e9afee8baa874c23d3942ee3a505bbc3901dd4cf55ea8a30fac0cb754793fb2d8f4edc29afd51b99140a8d03aa0614169428205fcd66c1047d3366fb32f1c2b1bcfed8ae23580ed254c3dcb127daf16aec1892714ee05a1ceb4e561a1e9c8fd4118ef8cc9e063bd86c55d28b8acc9d5b4c589583e7c6b78fd518d8ca85b88517f10c27aca2f0bcfa54ba5bb94ed5b005e3d871b68b86e96adf12588037adc97cbef59c05f0d2162db2e4cce41227df11eab5449d612be56ef6fc522452573340d4d68af0178d4f19db6a0ded521f1a982bc5567dbde2036f74d6d67b806ccc7c7f70d3092c22c9c1acf307b751d994fa5259a5046668a047afe4c3302e908bf70bc6b55c39726bf24ceca809357c623b89fbf0eaf8b5d18823337e7e0245d865574cb9\n\n[e = 3]\n[keyAsn = 3081870281810089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf020103]\n[keyDer = 30819d300d06092a864886f70d010101050003818b003081870281810089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf020103]\n[keysize = 1024]\n[n = 089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f", - "81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf]\n[sha = SHA-256]\n\n# tcId = 357\n# short signature\nmsg = 3831\npadding = 3031300d0609608648016503040201050004205316ca1c5ddca8e6ceccfce58f3b8540e540ee22f6180fb89492904051b3d531\nresult = acceptable\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c68149efc8a4a913a26c9170590a1ed9064323c12b6ebde15ae8c05a0e5205c91f57f5753815ff39c918\n# The key for this test vector has a modulus of size < 2048.\n# The key for this test vector uses a small public key.\n\n[e = 3]\n[keyAsn = 30820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keysize = 2048]\n[n = 090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1]\n[sha = SHA-256]\n\n# tcId = 358\n# short signature\nmsg = 33363730\npadding = 3031300d0609608648016503040201050004209385aabddf6b3fe60d2955cb9303e9354b775e8fab2f95cb72ecf3553c64633a\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000989e7ff72e67e680bd21d5f966e4ad8a48c3592dbacc4a2f035b4ef4d17a2f25f8a9fef7e78eb99d76d68629ed02d67c43c4b7ec8c3badc32e3d0a524c326537739b0fde156723b27c23ae2b09895e470c64d700f5c\n# The key for this test vector uses a small public key.\n\n[e = 3]\n[keyAsn = 308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d00308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keysize = 2048]\n[n = 0f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f]\n[sha = SHA-512]\n\n# tcId = 359\n# short signature\nmsg = 38343432\npadding = 3051300d0609608648016503040203050004406114f0b81fa48090bf41e600bbf301f49262bac5794aae087d8921eb23bf4de867fa9403b85e21cf6f59a14127ef0babdbc425d415f15c0ea18d2962839471cc\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e7a1269086f0bbc0778ded8d7108ff4edcc2313425088117b2d5c53e9d9971950a5fe8b2b67d2bcd1be74f6b557a3f90650a96d7e4dbd63c05b94f73337eea682417c058d66ce523e4461065ac8ba990c4ecd04932\n# The key for this test vector uses a small public key.\n\n[e = 3]\n[keyAsn = 308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d00308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keysize = 3072]\n[n = 0ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83]\n[sha = SHA-256]\n\n# tcId = 360\n# short signature\nmsg = 34333630\npadding = 3031300d060960864801650304020105000420", - "5d19d2275db8df24fd8e87092599d5b8c7c798f483bbb6cddb4310353b903971\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a21abeac8409398319e65c8656f8f72e179dd1e99358c7531fddc037e47c1e688cd70eafd6eea01c823516bc79f89d7e52ee1eb4ffdeaad1d550dc0a47185bc9c42e47fce5503c3370a60510f834b4691152ef668deca633cf3873ce6613951784aa7dafde118f37f1cdf1a687ac236d5c956bced564b73cf202e3bace59667\n# The key for this test vector uses a small public key.\n\n[e = 3]\n[keyAsn = 3082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d003082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keysize = 3072]\n[n = 08733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01]\n[sha = SHA-512]\n\n# tcId = 361\n# short signature\nmsg = 36313237\npadding = 3051300d060960864801650304020305000440925eb0238e4d842826b081a74083e55a2d89e67c524d5a903366c1e26afd1e478cb4779e6f69eb70e7034556745f6bddf9547987d8785a7deaa8765aaffbf2c5\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bdd0c9e451b5b3e5513a94492dbee1ada9ea87e65a8cd95cceb4d304294ce34bf09a212f14908f5b865c7a34a72e68e389794a2d1c5767ba17829e2044108ac7842b6bfe0a5663b433d656f4e38522c5a5a23c460b898833828d257350e5814291b54cf13089080f84998edcacf0fe5fca0c1f8b176b172c5f9989491a039bef\n# The key for this test vector uses a small public key.\n\n[e = 3]\n[keyAsn = 30820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keysize = 2048]\n[n = 092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d]\n[sha = SHA-256]\n\n# tcId = 362\n# signature is close to n\nmsg = 32353934\npadding = 3031300d0609608648016503040201050004208f87edbf7e3fbfba22df722036c493b7b8f35321b7d147f22c4789a9d0a4cbc1\nresult = acceptable\nsig = 92bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240b8bf4bb1a6d0616fd5be2f081dc9ef741a9a4ae7274418b791432de470c4556463108388e8e8ed5dcebf3558e4650c2ac97c86fa682176f09b5dd8cfbf15d19c3fe4f961f4607c12cb3dfad9b6a0e59c92faa1fc8622\n# The key for this test vector uses a small public key.\n\n", +static const char *kData117[] = { + "# Imported from Wycheproof's kwp_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: KWP\n# Generator version: 0.8r12\n\n[keySize = 128]\n\n# tcId = 1\nct = 8cd63fa6788aa5edfa753fc87d645a672b14107c3b4519e7\nkey = 6f67486d1e914419cb43c28509c7c1ea\nmsg = 8dc0632d92ee0be4f740028410b08270\nresult = valid\n\n# tcId = 2\nct = e8bac475d1429034b32f9bdeec09a37f9b3704028f1e0270\nkey = a0b17172bb296db7f5c869e9a36b5ce3\nmsg = 615dd022d607c910f20178cbdf42060f\nresult = valid\n\n# tcId = 3\nct = 4c8bcd601b508ef399f71b841294497a4493c4a0014c0103\nkey = 0e49d571c19b5250effd41d94bde39d6\nmsg = f25e4de8caca363fd5f29442eb147b55\nresult = valid\n\n# tcId = 4\n# wrapped key is longer than wrapping key\nct = 9e4510cc84c4bd7abab0a8a5d7f1e6ff3e6777ca2dff9be7e223652239fe57d8\nkey = e0e12959109103e30ae8b5684a22e662\nmsg = dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 5\n# wrapped key is longer than wrapping key\nct = 8fbf39ae583bd4efa7a3e8f7b86870b34766ae7d8923a8e97b0cd289ad98cacb\nkey = dd583d9f1059861430ec8b5d8a180e9b\nmsg = f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 6\n# wrapped key is longer than wrapping key\nct = df2fbe5fa86418edc7b5b04a4aea724aca17e88cedc84ca8b0b0f048e64590cb\nkey = faf5ccfae42b43cee2c5f0f3177a7c5d\nmsg = 4e02084833660c463830483b36dab866c64c8cf7429cac3d\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 7\n# wrapped key is longer than wrapping key\nct = 67f8edf57f84ea0a35b35511d67d3f299c9984b2c07d3809c3d7f5f45091f1a8fbb937ed447677f6\nkey = c2b9d23f2831ddcdeb456853d4014db9\nmsg = f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 8\n# wrapped key is longer than wrapping key\nct = 60d55a22ba7dbd7d8f317388e01e6be561d15d29f85c566f1259aa7e7dc3d5d30e0ef5f4c6267553\nkey = 620a08f320cdedbf7ae551add348d95e\nmsg = cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 9\n# wrapped key is longer than wrapping key\nct = d78a8291108f0f2d8be0ec10ec08240bf4d3021f0a5ed7faba0748db73762f34a0504bd373212df2\nkey = ed089ac274f8c7cea2415671a94b5e53\nmsg = 6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 10\n# Round counter overflows 256\nct = 9341221aca1c647e2afc2bdd9cf4ed6e60058eb0a84cb3fc2daf3a87d9fad0a1f8268b27aaf7201d705e72f7e2240309ad98742094e3f1c99b7faa9ae181b441f5004b8bc93cdd4160d403d0884749a3c379d47c112a45788c05c2106c98f59758d393e04c880691b0e8683a12df7f876e1e1f68b4acbae9cc8310b34d59ccf4617cee72e845df1e0e32e5b4938f2923d55f1bb5156dd8c787401e6ef241ea4073d0a59ddfcd7a53db5d89b480b030cfb9084ea8479b964f090bb612d5251eee9ef8870a45f1e76fd24abdd9b350fe148b15a4cfeb032d57b5743b3548a7ce9eec8e21a31ce832530edfd1cffd9bb37369e6463c6b373ab60d80b0a2677e92e658f7daf2a5234b7312bf2d967cd0bc809e9be2f706ae63bd632fd611f161e48ee19677f3243aa0e91f6651a1cef62feff7a72eedf830bae1dc6d89e55ccb5e6f97889c6266f7d3f2eb0aea6c8c42200febccc5916825368adc87e04e835de06fd7bc2805c219e7f0b6252563f29969b1f30cfa1a8da4b90ae7534fb849d068a7e77de7360f8af173\nkey = b6121acad51038e11873aaa7e6c7be06\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 11\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = \nresult = acceptable\nflags = SmallKey\n\n# tcId = 12\n# wrapping small key\nct = 09bcbab50b8dd45ad83412e2919030d3\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 4c\nresult = acceptable\nflags = SmallKey\n\n# tcId = 13\n# wrapping small key\nct = 0cbe852cdce4f0b5333366f446b2b1c5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = be52\nresult = acceptable\nflags = SmallKey\n\n# tcId = 14\n# wrapping small key\nct = a9dc66e03435ab3d4f97ff66f2c911a3\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 2d5244\nresult = acceptable\nflags = SmallKey\n\n# tcId = 15\n# wrapping small key\nct = 1b970c8ecb4187447e60e6083da03086\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 6c3d3b4c\nresult = acceptable\nflags = SmallKey\n\n# tcId = 16\n# wrapping small key\nct = 0344f7b34ab8ef28aaa843f276b0b3d5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 0412ab3ec6\nresult = acceptable\nflags = SmallKey\n\n# tcId = 17\n# wrapping small key\nct = 17356c7148334ca1a24aab7e82a66e18\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8ae08938929c\nresult = acceptable\nflags = SmallKey\n\n# tcId = 18\n# wrapping small key\nct = 1db7510a55591a455d9f8167e6db3c88\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 7c8dfbb68d72af\nresult = acceptable\nflags = SmallKey\n\n# tcId = 19\n# wrapping small key\nct = 936fe58b629ea6ec158145218f2361c7\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 536f8f83b64771c1\nresult = acceptable\nflags = SmallKey\n\n# tcId = 20\n# wrapping small key\nct = 6787816804b3127d0ca4073f1dba5c4d3db1ec9c227e6556\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8571f282b18b64ec5e\nresult = acceptable\nflags = SmallKey\n\n# tcId = 21\n# wrapping small key\nct = 34131c3bfcc48af15eea8672e52927b462f81d5ba0e6260f\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 8ada889862813e364c4d\nresult = acceptable\nflags = SmallKey\n\n# tcId = 22\n# wrapping small key\nct = 4d1ec9287cd4dd378b9aefee79d4ed35bcb98ad9fa9fe529\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = f9c56e8058758a5c7c2baa\nresult = acceptable\nflags = SmallKey\n\n# tcId = 23\n# wrapping small key\nct = 7209f5b6bd5d4916f4995d280e9aa89edd5e96e3c9283ad2\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 7c7dbc83fa62206a521ed4ad\nresult = acceptable\nflags = SmallKey\n\n# tcId = 24\n# wrapping small key\nct = d85a1efc6ab3a40948f723d9810a5deb019b3ce0208a0d94\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = a6614daf00df6d14f50388bad5\nresult = acceptable\nflags = SmallKey\n\n# tcId = 25\n# wrapping small key\nct = 43509b5df3688b6e44c1a994592f4c03da34712f886e63d5\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 450580a47d7008321496bfb82f48\nresult = acceptable\nflags = SmallKey\n\n# tcId = 26\n# wrapping small key\nct = 16e369351c40f220d3fb1197f35da652a3a40ca3b1e99bfb\nkey = 1abf4b7fa2bb62a78f09ddab04625dca\nmsg = 9efd21e13855eea8907afdcd8935f4\nresult = acceptable\nflags = SmallKey\n\n# tcId = 27\n# Modified IV\nct = 4cdd2962f23ec897d41d14c3f818516c055799185f459e2d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 28\n# Modified IV\nct = de895192c35ec58ee6e5614fd2b20a85f8e9c8234cdc5319\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 29\n# Modified IV\nct = 4a24069a050af7bbcf6c2160d54525e017e3ac1b3a2e71f0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 30\n# Modified IV\nct = 6252ab0e688d0638df7d87ec5be3b2f9c0c245c0f0794012\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 31\n# Modified IV\nct = a2ed5982a604512d85d87630cd50705b1a70189b81575e3f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 32\n# Modified IV\nct = fed7d02db4081728c55cc17f45f267117347e526f4231651\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 33\n# Modified IV\nct = ed37722b94b08b6a6f7663fe90acd81dc25f85abd2f65c06\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 34\n# Modified IV\nct = 0adb0f47b890efed426e7cf5dbd67d5cd3d9d4807c34bc7d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 35\n# Modified IV\nct = a0c51e687c46f342c78e3c59eee076a85312206a37213ac3\nkey ", + "= 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 36\n# Modified IV\nct = 8ac142d100eab0808b5f34ed29650163db77ab281e6f1e58\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 37\n# Modified IV\nct = db345851a09bf92c35855c367c8787e5ab3ff16e9d8b0f3b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 38\n# Modified IV\nct = a90cb672f232eb693a290523a10d8f988a18829a11cabd96\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 39\n# Modified IV\nct = c9b3a55603e490c450b49c8b79c9a169030e6985b6e95b54\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 40\n# Modified IV\nct = 1c90d7613c7e81e66d9374d72a8a6a0c40163fc69bccafb1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 41\n# Modified IV\nct = e381bb56d1354e40c01cb414118b9518934c9ad92663f5e8\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 42\n# Modified IV\nct = f2a87686a3baa37810eea23232e9b784f628b1c0b4a557a1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 43\n# Modified IV\nct = 36ef8fc13d0f1f5745e3939877b62b8ecba2f5f0b19f9e90\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 44\n# Modified IV\nct = 7255c4eacb4105a68095e9e5b5a4bd8f9623a0da5c6fc230\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 45\n# Modified IV\nct = ea26eec89a46ff1a628834c7247a8e4e45d8a8d3229e26cc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 46\n# Modified IV\nct = 508593fa85a8effd27c8a225981978fcec6e992eb488c9c2\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 47\n# Modified IV\nct = b8a4cb22f15529864d4ced8e8abae69752a9045a084dfc3f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 48\n# Modified IV\nct = a0a6bf5e47e89706932b1057b680c3c81dc4d9d0b4f9153b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 49\n# Modified IV\nct = 11f3af4ed30e77520517c880f1d0c272a89a968dc697cb5a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 50\n# Modified IV\nct = 6fc912a0bda73bacfa93db4002f18f349fa30f22f7a95ab9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 51\n# Modified Padding\nct = 96518bcf3d24b1c6c3c6ed642a3336531563abaa9bc19873\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 52\n# Modified Padding\nct = eceb8904c71372a974dcf65e2ee2e8eac035953cf41bf31e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 53\n# Modified Padding\nct = e8e1f4d621dc0d10786823eefd73e1d98873900fff79cdcf\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 54\n# Modified Padding\nct = 5aae3ef6d59abbd1acfba77d5e660a176b45683165398912\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 55\n# Modified Padding\nct = fdf11a815beb61c33f293801c33e681e296782967ff6c56b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 56\n# Modified Padding\nct = 62cd9fd59aa08666b6d0e5fb0ed60b3692e87e680ea1d3ea\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 57\n# Modified Padding\nct = 31a9c782cc94c6fcd26e0aa6ee327fd01c5b1997ec70e22c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 58\n# Modified Padding\nct = ab29c3f5a4822bd572e43fdf2c59c2dab20327b9a25dcb87\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 59\n# Modified Padding\nct = 078070742b07caa793dfcab4d1c09f8df6a99f494ed00ea4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 60\n# RFC 3349 padding\nct = 3731038571c35f7dcc55e48892de353e54c079b89774bbfd\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 61\n# Invalid encryption\nct = d85c6bfd092df1aeae5a548e47aa7681\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 62\n# padding too long\nct = 7a92427387f5587ee825d1ffa011c40286844ecdadce31cd9678338694ea2682\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 63\n# padding too long\nct = a437d354606ae752894feb62c8def7d17046d8e47f9aed755fba48b3a3009e3ff67d34e26a779064\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 64\n# incorrectly encoded length\nct = e8d240d64f16d1522ae2ded42ced257dfec158ff2fe1467d\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 65\n# length = 2**32-1\nct = 6d1bfda356b7b954e7aaccc6df953322f75be95947b02b30\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 66\n# length = 2**32-1\nct = 17dbf878ef4076cfcaba5f81d7b123d7\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 67\n# length = 2**31-1\nct = 75c23e253478037802fae0f86af9c78d4e4d9be0c3bff89f\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 68\n# length = 2**31 + 16\nct = 55717658c6a35e15ee36c66cce91083b63091f51525c0b51\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 69\n# data is incorrectly padded\nct = 8ede88a52ccb8a6d617456955a9f04c94d87696125ded87eebe3e97e185496d9\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 70\n# data is incorrectly padded\nct = 5b4a8f1abffa51676ac8b5ddf9366c12\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 71\n# length = 0\nct = 205cc6dd9592da0ebff6b4b48a0c450eeaeb11a60d33f387\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 72\n# RFC 3349 padding with incorrect size\nct = 908a68b0d2054e199220d37c34a2e136\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 73\n# length = 9\nct = f84bdb15045cee3a8a0f3ed2f07c1771\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 74\n# length = 16\nct = 7592b1ee6ee92c9467db366adcfa65bb\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 75\n# length = 2**31 + 8\nct = db93a1db3b5babc80a304d527682c1ef\nkey = 48a53c11ef2d727db7eb9a834b134ea9\nmsg = 0000000000000000\nresult = invalid\n\n[keySize = 192]\n\n# tcId = 76\nct = 5c117a678223cfe5ee691503061e7ab1e5f720e005171b32\nkey = f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe\nmsg = 9adbc00c710b1101bdf6a4ed65b32d72\nresult = valid\n\n# tcId = 77\nct = 6a7f9e03b6f379c56da3a56d8f32eba515454a91fd417449\nkey = b713f6b7814f98894d7b153974684359f1460213eb74be68\nmsg = 78585f0c49922e82caf17ebc3721b4db\nresult = valid\n\n# tcId = 78\nct = 764097f5ee8236bc0d93bbcea139a652f4b211cc33a61ac9\nkey = 13ecf423211caa334ba6db37259a535c20de8ad10fc8c432\nmsg = 4fc75d0f221e22408a37e11265d49a05\nresult = valid\n\n# tcId = 79\nct = 04b83ec803a75bbcb2f87fc6f488a4ccc1827b412483070eed195b6f0048ccbe\nkey = 4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1\nmsg = f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5\nresult = valid\n\n# tcId = 80\nct = 46ab71f032cb1ccbcc7447a5183574268c0167a26a93fe8422bf284417aa93ea\nkey = b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e\nmsg = 0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a\nresult = valid\n\n# tcId = 81\nct = 47ca298ee47b1b755a499129347e11e7a25754ccb6c2689e8eff270e98c81d18\nkey = f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000", + "\nmsg = 241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea\nresult = valid\n\n# tcId = 82\n# wrapped key is longer than wrapping key\nct = ecac4c91758e1ae7bb010c34f4c5f99a3d728b9fa92cb778d3fe80d777a20d3de85ef46e7a0c6a6a\nkey = 1639f9f81e53e2eeb677a249e5eced3af108971301601a7b\nmsg = ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 83\n# wrapped key is longer than wrapping key\nct = 39b7326a44eaed08bffbd4aeaf3e2c3f899c1fd049384ed7b3eb92b788c6449acd6385f0bb18cf28\nkey = 1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0\nmsg = 50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 84\n# wrapped key is longer than wrapping key\nct = 3d2e9f39c7b13e9585227c4344fbe596f92b002456616f137deacc6a8c941649ce294bb2695c1807\nkey = 3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771\nmsg = 65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 85\n# Round counter overflows 256\nct = d6aacfb52c26baae78c2f54259a4e4168f817064344e2ba8fbfa7fae9f1fd69bd5bc5c1e20a6101b4a7119cbce028e25a9e93d29ee260c4e609baedee788411c2afe60218ce1b0d28b9c29b941251fdcbac3009d59040a0337b8b4a3a020c6d8f310cba63db046d8f36b64c9092e75cee463fc7692ef56bed395c4579da0ecb02129e45ad8a7f116aac6170204888e40693f017a6a0a7dd3962004e60db3a9b6c8b7614a467ccb799bce1ba83f5c0921f1e52bb3909bc0486ec0eaea736498f3ba520a519c3ddf491307958620b737613417b15b438b80b43189baa455031f5771502002ea170c767b33d247feebce62e606f2262537f85f18d1951cc75cedef291c6a501cb1778586249b58156eb8d7283a3f508ee8bcc1206d77bbd6892fe74b865bfc02a8f07223087a6c1e50a41b7cf5f6ee04bd07766b2e5b34c4a7666b0ce06f670e6434a59fb74e0df36c91d94e5e8b721e53e09b6f6504c5d515492a373fcc348a63122cc6e4716e0e1a543d038c6f7731199f691780a8a655cca6718e3dc56e815b3669\nkey = b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 86\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = \nresult = acceptable\nflags = SmallKey\n\n# tcId = 87\n# wrapping small key\nct = 52c7f388d0d4237afaa29f2b94723475\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = a3\nresult = acceptable\nflags = SmallKey\n\n# tcId = 88\n# wrapping small key\nct = 833431ce8799be69b36aafe3f38d9dac\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 594b\nresult = acceptable\nflags = SmallKey\n\n# tcId = 89\n# wrapping small key\nct = 31674f46b989f6ead582c70dedc8c6b9\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 72ab34\nresult = acceptable\nflags = SmallKey\n\n# tcId = 90\n# wrapping small key\nct = 80535172d2a498aa31601d70fdca9dea\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = d4d9460f\nresult = acceptable\nflags = SmallKey\n\n# tcId = 91\n# wrapping small key\nct = 56232300dd7b2a71d2328b6df47af8e3\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 643972e552\nresult = acceptable\nflags = SmallKey\n\n# tcId = 92\n# wrapping small key\nct = e27e08efe39adbbad8d300b87be2c258\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = f3cdb73d2561\nresult = acceptable\nflags = SmallKey\n\n# tcId = 93\n# wrapping small key\nct = 8f90942cdab33e58b24a23ad7efb7538\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 7b0b53b6429e14\nresult = acceptable\nflags = SmallKey\n\n# tcId = 94\n# wrapping small key\nct = 0ebaf23c858015d3bda5b8d908db6049\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 6b2393773e6d1378\nresult = acceptable\nflags = SmallKey\n\n# tcId = 95\n# wrapping small key\nct = d56f89977b8eff511158edad6b993007189e5a4b8c0e2faf\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 2c52d6639e769960e8\nresult = acceptable\nflags = SmallKey\n\n# tcId = 96\n# wrapping small key\nct = dd889475a76733849f59bed49a15d4315bdb5ba00dc63470\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 707c9356216d69c69048\nresult = acceptable\nflags = SmallKey\n\n# tcId = 97\n# wrapping small key\nct = 1a9b3369239b0f40a8dc5bd8d965caf7431445799337b99b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 615f6fa79e1847e7359a8a\nresult = acceptable\nflags = SmallKey\n\n# tcId = 98\n# wrapping small key\nct = 5232f8f6679a17d3303b0bd72b06b56b5089e80372dc295b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 7f5e999168ec60624426cbb1\nresult = acceptable\nflags = SmallKey\n\n# tcId = 99\n# wrapping small key\nct = e5544361c60980f3d38f2d8820a150f48f49ef3f9184b29f\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 3f93aaf4463775baf6c0c975ae\nresult = acceptable\nflags = SmallKey\n\n# tcId = 100\n# wrapping small key\nct = 55396065905915ec914b8d1efbf471e37d283fc2c1496b49\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = fefcf10c976309b2beb085771e50\nresult = acceptable\nflags = SmallKey\n\n# tcId = 101\n# wrapping small key\nct = d90376be302a24c541bd6d96094f0025e3d73888391b4306\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b\nmsg = 6854354d0099f7eff740b0587140b3\nresult = acceptable\nflags = SmallKey\n\n# tcId = 102\n# Modified IV\nct = 24f5b27f9e4d7b645331719ea8f2b63841b2324e61ce13df\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 103\n# Modified IV\nct = 5b5221464c7e960b31c3d6e5784e66c69fa0fba8ae315d4e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 104\n# Modified IV\nct = d17e8392b0d7e064f22770b7f38ffcdc572cf7694da9648c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 105\n# Modified IV\nct = 2f9ba2d81292a2494845ac8589f1a44affdd3d09044fc81c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 106\n# Modified IV\nct = 9258882e1812b1793c0cc08d6adc9fe9597d9270b1f0c3ef\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 107\n# Modified IV\nct = 8bdfb51ff4664220de3d87e06882c748490af56c0c5ef789\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 108\n# Modified IV\nct = 20a5b0fc789e8422e09a3128a10b6b0bca6aba2bde496aa6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 109\n# Modified IV\nct = fdfde90ee4681372c85fc5875dd482cef85bf69dfe57e71c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 110\n# Modified IV\nct = 5f2ba1d716b8fdee03f3fc5cc4c7ea35836bb3c073f02dc9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 111\n# Modified IV\nct = f241ce804660d60397789d4c67f4e252b55838144b199355\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 112\n# Modified IV\nct = a4f5b4f3ef5a6939949fe6dfd755f327ffa604dc417ea495\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 113\n# Modified IV\nct = 4e23f48297480d1a4afc85fc97d6d69f861f518bc00fe7c3\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 114\n# Modified IV\nct = d9f0de809d4f6ef5815a3e6bfb09b11f0b51b6180caac98c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 115\n# Modified IV\nct =", + " ca5da3ab416a98ac387ac226f52f486b6ba30bf6f517ca7d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 116\n# Modified IV\nct = 6c41e5a654467ce13828d72fd3ad1a22083def182696e83d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 117\n# Modified IV\nct = 045d789cefd1da1f32761c4ba8e22bb126c322184b85e370\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 118\n# Modified IV\nct = a6a28bceb91551a395369ff09370658cc92b092855f417aa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 119\n# Modified IV\nct = 03ff601cf12b432078a2185590fb5d01e3441cf084bcb04a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 120\n# Modified IV\nct = e250d358d16d9fd20ad80a99656509229dca391aad3798f0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 121\n# Modified IV\nct = 643a17860b116ec74089bc574685a6328a3d7a07cd18b520\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 122\n# Modified IV\nct = 3e86e8128904f753c0f3fe3401ba36672966567725c4726c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 123\n# Modified IV\nct = d4b8cc849176b8344b0849490143d3512915171bd7d5759e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 124\n# Modified IV\nct = f84e0e6ff64e0b27b8b59b5b77c223023f0fea95433864ec\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 125\n# Modified IV\nct = 4030b4b0e9c1b1ce8e52f6bdb48088e65b05844307989c8b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 126\n# Modified IV\nct = ccb3b36c26b2d901b7f0765362d992b2d5089c2a7559b195becbe173780352fa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 127\n# Modified IV\nct = 4e5fc8dccaeec9b1c8a606a2bd7d7201eede62b9c2e939a5aba663a6a040e361\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 128\n# Modified IV\nct = af21f5e7f15a63c8ea6001cf024f281e7f44aedd68954564fc2bd146e96d793a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 129\n# Modified IV\nct = 3a4f571ffbf761d3f7d413172ee1e4ae2862baacfd5ab66dc685b9af8b70b538\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 130\n# Modified IV\nct = 273de386d5fef497f9487afd54c1c0fae8aacabf2af465caf352e2300d29266b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 131\n# Modified IV\nct = 16511743dc44199cee1dbf5045141b075f01ee13326c9faf2c74b7c99791830f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 132\n# Modified IV\nct = 370f92db00f7fc8a0e654318a5b3ff89a604034f421339201d79e0ec4d6088de\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 133\n# Modified IV\nct = e3edd0e84832f3615f6deefb444de3b9ec527741686029db91de0bb9b2a5c05d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 134\n# Modified Padding\nct = aa48e6b6ed9ae707768d3e4cbd191d9988c6921d0ad17ce1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 135\n# Modified Padding\nct = 1f7170780b523e5c5970fc5bf35fe30e6505fb22790ba936\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 136\n# Modified Padding\nct = b3e5311504a8cf1194b73ba1f3b7eb82de1e6bf1cfdad41e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 137\n# Modified Padding\nct = 779ede9022290dd606e1619c7451630820431f8d67c498c1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 138\n# Modified Padding\nct = 9720d5bef7dda98c9462e1b2d73dd2ce016b6dcd7cd71c5f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 139\n# Modified Padding\nct = 7e310f4c62031b821539d78706a56a724c191af92543e8a3\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 140\n# Modified Padding\nct = 1b2a588774a0340315dc1a934a8db6bb659e67ac8c8867b3\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 141\n# Modified Padding\nct = afa72d66be45e9d98dc46779c186154a0f14b97b26e67e3e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 142\n# Modified Padding\nct = ea98bfac85f03b66b0c298c1fda726f1def4be7552f4ebac\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 143\n# RFC 3349 padding\nct = 36ee480138edf11e144efcddd24d2c121749da6e4eab17fe\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 144\n# Invalid encryption\nct = 166beb49e97a4a9cc7b0ccf441ec15b5\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 145\n# padding too long\nct = 74ff3070a0a08471c001febb95a890f35159a9fe263719e40c2332ce5c58fada\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 146\n# padding too long\nct = 4f0b38eb328d1227b1e17c103a44a373ff67cee953c59eea26117947b5d3ef8932c8858b4f9fb47c\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 147\n# incorrectly encoded length\nct = 775dcabab9e4be8fd9963a4dc7a1447ef82888403882bdb6\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 148\n# length = 2**32-1\nct = 669803237fa10eabb4d2c6ad85bd9f7df5f4a33340eb0ce9\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 149\n# length = 2**32-1\nct = c788504d786f5c21b6671bf190657301\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 150\n# length = 2**31-1\nct = d079f60d3258f5e695d1a73db008ef38516b713eca2c0eaf\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 151\n# length = 2**31 + 16\nct = f1ae4b8865013b0fc63b463e664cec3c6031f61f2de82f43\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 152\n# data is incorrectly padded\nct = 8874e1b6e15e3ef6c461411a5f5ad0c8b05368cd5b3ee39b2b413d18a4eebfc9\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 153\n# data is incorrectly padded\nct = 890a3dab8439bb73b14c6e99c34f0b0e\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 154\n# length = 0\nct = d4f633aedeb89e349a98738b00ee42c90d583b16e986e49f\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 155\n# RFC 3349 padding with incorrect size\nct = b8b2a5b1d3280dcb4daeeed43f36509b\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0001020304050607\nresult = ", + "invalid\n\n# tcId = 156\n# length = 9\nct = 4429cf64251d8a54a9d1389c01c30900\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 157\n# length = 16\nct = e5634eca10372c867c7f91ee813ec3f3\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 158\n# length = 2**31 + 8\nct = 9e517d4d0142e1544ba1e7419a696c21\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702e\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 159\n# RFC 5649\nct = 138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a\nkey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nmsg = c37b7e6492584340bed12207808941155068f738\nresult = valid\n\n# tcId = 160\n# RFC 5649\nct = afbeb0f07dfbf5419200f2ccb50bb24f\nkey = 5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8\nmsg = 466f7250617369\nresult = valid\n\n[keySize = 256]\n\n# tcId = 161\nct = e3eab96d9a2fda12f9e252053aff15e753e5ea6f5172c92b\nkey = fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c\nmsg = 287326b5ed0078e7ca0164d748f667e7\nresult = valid\n\n# tcId = 162\nct = 9d2b42fb2fdb92c89fb0c3bcd9e1600d3334b4e35e791369\nkey = 0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22\nmsg = b40b6828729b456322a8d065abc0d081\nresult = valid\n\n# tcId = 163\nct = 5291e05abd55f5886850855e3f9f2f576b101acc222d6766\nkey = d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588\nmsg = 037b27b3dc95b19d15bd4091e320bfe1\nresult = valid\n\n# tcId = 164\nct = 4b1220525c537aec30ebcd562b694b4e9e2ccd819de22ef608b5d8090779d9de\nkey = 07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121\nmsg = faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071\nresult = valid\n\n# tcId = 165\nct = 67b2cbd68f6a208d647bdc5af7d0bccf6711a9e8fd0d9434363006addd4b9696\nkey = ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1\nmsg = dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825\nresult = valid\n\n# tcId = 166\nct = cfdbbd95f187508a488fe017c5e5d5a5975b68441d520e0e931922388e28784c\nkey = fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87\nmsg = 966b07047354966a703e79607b556032f4f596b7f9206f05\nresult = valid\n\n# tcId = 167\nct = b63b7e0fec7e315816233db6758fd3e744b9f6a40862bdf866487e53bcb950d8b2649269e51b4475\nkey = 38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd\nmsg = 80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a\nresult = valid\n\n# tcId = 168\nct = 837cfc316b49299edaf427e0988020ee876204b29d847669daab72c8660b0d860e9de3bd851198ff\nkey = c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7\nmsg = 3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270\nresult = valid\n\n# tcId = 169\nct = 0e9e2e9aa34bbf973d67bc534ac86fc5b5a5f9da5f026866177894ec6077a5c84501510e1bf4afb3\nkey = aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c\nmsg = 57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5\nresult = valid\n\n# tcId = 170\n# Round counter overflows 256\nct = 1c6b7e4003384f071bf29baea9098ad81da8e9862909329f52793b35d592c10dba15aa89400ea6403df8dcaffd0dbf5606303f109f79ad700ed5d5ad4e59950ce9ce5296c9d186a0df441973d1835f9ac000ad1a6797875c3a03161e9e3f5ea464032e407854eadca5a9e7a386bb0d29253e3804adefd8c0402cc8c40ac7f9041429cc0bb77a405b284baa2dae764ea09c654c0a82f2c5724221ba44e341503d3103dbc393c7702182f8cc2762ddbc873b7f84197709886a4b5df5b04ff9d21b79b50904af3c32128dfb9cde94fe1254d981e6ce3acfda82db1fa2badbccd2d29052a04a69ce1f5652f30496ea57edc7e3e885dd4a35ca15aba602bb4c888a8064da94c2ac5c12c11f608810af46fbb49c3e8f8771ff661f8d8dccd163d0c4a401b8b9aa74e68a56011cf78d21dc7541a974f9dad5ae27f8a26d1b0e76be2f86c6a21e9d1c2b5df3c8878a8bcae143b3af1f082afc52616eeadd2232926597b245d394931e02e493b0bc27a92d013e111694cac2c5a2a46e008a8498b5c31bb5ec35a4e9957e365d\nkey = b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1c02f9981ed49d16a\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nflags = WeakWrapping\n\n# tcId = 171\n# wrapping small key\nct = a65959a600000000\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = \nresult = acceptable\nflags = SmallKey\n\n# tcId = 172\n# wrapping small key\nct = 06c1e65ac0f385b4e8c400d229f39422\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = ae\nresult = acceptable\nflags = SmallKey\n\n# tcId = 173\n# wrapping small key\nct = c98da5936a1313eba1a6773b8060ea5e\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = c548\nresult = acceptable\nflags = SmallKey\n\n# tcId = 174\n# wrapping small key\nct = b2a77d9b837e87cdb7391e1df7cdaf14\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = f713b9\nresult = acceptable\nflags = SmallKey\n\n# tcId = 175\n# wrapping small key\nct = d8ecf20191f75aa36686298bfa5022ab\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = f375cbf7\nresult = acceptable\nflags = SmallKey\n\n# tcId = 176\n# wrapping small key\nct = 077362f50356fc7c54c70f9cb4306f7d\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = d9445094b1\nresult = acceptable\nflags = SmallKey\n\n# tcId = 177\n# wrapping small key\nct = a4bd6a116ad88a52aae3f0c0cb893f9b\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = fab43e91ae15\nresult = acceptable\nflags = SmallKey\n\n# tcId = 178\n# wrapping small key\nct = 68a52de00ec0f1ebbedc38fee6be0c23\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 90735025797bd2\nresult = acceptable\nflags = SmallKey\n\n# tcId = 179\n# wrapping small key\nct = 3a6746052a1744cfe7e2f36dafc4042d\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = e43f5e4e123a03c4\nresult = acceptable\nflags = SmallKey\n\n# tcId = 180\n# wrapping small key\nct = db7e73da22219e1baac0f4e955c3db2b900b5d3078f94b59\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 1723eb9d000916996a\nresult = acceptable\nflags = SmallKey\n\n# tcId = 181\n# wrapping small key\nct = f77ec14a010777f1f1071808f285c1c00b4e9420f0e8bf48\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 8b18daecde14b8472ffd\nresult = acceptable\nflags = SmallKey\n\n# tcId = 182\n# wrapping small key\nct = 6b40d4f0863581a7d0365ad477568bfad94f8bf134984838\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = e5bd6fbacbf3ef0d40c884\nresult = acceptable\nflags = SmallKey\n\n# tcId = 183\n# wrapping small key\nct = 660f645b02405a18f7225b68c0a09a949b2b5ba784922cfe\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = b3be5e5397df5f46b099e821\nresult = acceptable\nflags = SmallKey\n\n# tcId = 184\n# wrapping small key\nct = 6bea6bf57601bf063873f47ec3572cfb9cfb595d8bdb5e97\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 4cdd960cabcf8aaf69c37da1d3\nresult = acceptable\nflags = SmallKey\n\n# tcId = 185\n# wrapping small key\nct = b631292536aaf02d829cc6d3c39e5a5cd76240889e9d51d0\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = da29e0889cf98742612e0326300b\nresult = acceptable\nflags = SmallKey\n\n# tcId = 186\n# wrapping small key\nct = de497acf18a177a3a9b3d8da46d74dfa58dcc537a3a95323\nkey = 1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093\nmsg = 72aaee126a822184806c7d22eed66b\nresult = acceptable\nflags = SmallKey\n\n# tcId = 187\n# Modified IV\nct = 98428fb83dc207033c1585e0242e699be98e0001f1ee15ba\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 188\n# Modified IV", + "\nct = 60107f4c60c04c987c7c5810130303bd83fbc35d924f4482\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 189\n# Modified IV\nct = 38e8d42ffc1a26278c6fad73bd699f207251f6e1b622bf92\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 190\n# Modified IV\nct = c23f1fdbe6c021a04bfc386b55c8fe911481f82edf308d79\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 191\n# Modified IV\nct = 7cc6af073f8d21e26713222ba609c91b69fc5faee9870eb7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 192\n# Modified IV\nct = e7e5d96c0bc89dc23bff610db5ccfb5de8f97b74100b3492\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 193\n# Modified IV\nct = 18e77b855e322457a4942209f97acaed1fe6af0aea80c454\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 194\n# Modified IV\nct = 0fcc89e543fae40b914510c9064307b70ef12de4c8750874\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 195\n# Modified IV\nct = f795cf444efd94bd6a561d8cb0703ee0e979c073aa66fdaa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 196\n# Modified IV\nct = bb5d2e4082140258d6cb26a74af7c10f985e4a84dcd5d8d6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 197\n# Modified IV\nct = 47819be55567934b165a6e93ca25d3900103bedb86eab148\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 198\n# Modified IV\nct = 41b70a974d3fce94feb94b7b01d959541cd120f879cf60e1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 199\n# Modified IV\nct = 86b9f13e871ecb5aa009c80a31693336e59ae1ed3c8d7aaf\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 200\n# Modified IV\nct = b17c3957d85127aae1ae0a04096b19eb2e0f67583772182b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 201\n# Modified IV\nct = 2ca5c335226e3e171fde0f3401ba6835fa389f30f5288699\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 202\n# Modified IV\nct = 5b8ba944f4a961d6e4c5121279ea4d3fcd555b05e75da4ff\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 203\n# Modified IV\nct = 7fd3ad3aee0545da1ed3a54d5a198a2c76cf8290c011c042\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 204\n# Modified IV\nct = a24e94c12b2e6b776c8febe9179521beae0cfbd507d358b4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 205\n# Modified IV\nct = 9395b071fa3d9908b2e1b349bf7cd6a1cfc86b979c8c73cd\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 206\n# Modified IV\nct = 1eb452770bc0f26a3576b604bf5ac72f714fc468c357eba7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 207\n# Modified IV\nct = b42bcb4161f40b30f3d2f740f43e441d3c9a39613914f1c6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 208\n# Modified IV\nct = f3d76dd320e5f1b3f85b8f73a9ebcfabfb8346daafaf36e6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 209\n# Modified IV\nct = b8e26164496942f44f16751096fb47952ec478bb288e72a1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 210\n# Modified IV\nct = fa783b3aca0ec1e677378f23ebe937776fa590ecc6b01392\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 211\n# Modified IV\nct = 8b011408049eab81cc185796b9636982c1ad28e940e5c35ab1219434c23e8c59\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 212\n# Modified IV\nct = 08db2f06aa2400d4cc1113b1c9e3ba1b39e3e26a84918f9266796c426c166428\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 213\n# Modified IV\nct = 3114404be000ee167b65dd3cfae3b10c50dffe1df864b5e52a2805f0c80021c0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 214\n# Modified IV\nct = 405ae5bdeff8b05d28ea55900b8e81dc789d532ec3fc457730819e762172f751\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 215\n# Modified IV\nct = 7c19e66d21c0f1409ee6f03a36ab6ba532349e2567200b95d7f5012b2b7e5d33\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 216\n# Modified IV\nct = 955ac67d6e496b9b93a4dda8f6e65e668f1326b256ee146a7647ba18deee7986\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 217\n# Modified IV\nct = c8600aa18be27279493fd68c84130c8bc328b0f6821e01e892b6c2dc1c005270\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 218\n# Modified IV\nct = 492566e0dc539e234b08b95fb23594a6d14f59fa4367799495c2e7f2993135ec\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 219\n# Modified IV\nct = 0b0aa97121bb8e367b8e80e6518a786ab686f4d6b8a075c3abe534698ec462e09fba981615d43ebd\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 220\n# Modified IV\nct = aa6eaa5b94f39247b9581c4d3120ed71e6a427eb51b2439f245d1762041dcf50741fc53fa7a95579\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 221\n# Modified IV\nct = 5cef33853f321f523951a27e41a68dfca418d5b8560484d3f233c5a45e7b69e7a6e4893e690cde6e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 222\n# Modified IV\nct = 62e120f39799ab7633fde15836b89b28a8ced5ecdc421939d8657e41fa1ea49a54da75b51b8dd3d8\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 223\n# Modified IV\nct = 9dc7bc15dfbc7da1a6f74bc4dfbc70091f2a180dbb76f9a6e9e18bcc3c11d2b56bed36c58c7dbc65\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 224\n# Modified IV\nct = e7ee36c6321ba0a30906b25e087fb0cabd74fbb0905b015ccc246cc90e5684605898a5a77983e897\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce", + "3497352690\nresult = invalid\n\n# tcId = 225\n# Modified IV\nct = 75c636384c4210ea46422f31a5622d001e8978c2b0fbbb79ce3d7c4b46bb3c7c2c9d4182571ae515\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 226\n# Modified IV\nct = b0116ad877c745d609f7df14b9225a2d69ab56f2e74077e34607b4e75a2883442864f17ca19af259\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 227\n# Modified Padding\nct = 64956d333265a8f2547756feab37b81f97786a4ebf491f13\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 228\n# Modified Padding\nct = 6ee239e916d27f8a8931740fda92657f98dfc68e5e3984da\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 229\n# Modified Padding\nct = 40c990f89aa7c76400655fd4167b04cbe24145c8c800dc35\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 230\n# Modified Padding\nct = f2a900684f167b9246b1345b8a94e711d9b6ac439f3ef3e8\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 231\n# Modified Padding\nct = cd7053a854fcc2f476c20539360ce47e767563723c11d211\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 232\n# Modified Padding\nct = ffa557ea4960669ccbcf59007a24de06755475c1cfef56da\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae37\nresult = invalid\n\n# tcId = 233\n# Modified Padding\nct = 8672fdfb252c0dc9e3bc39b0fe76b9b08cf87b65c0f28ee3\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 234\n# Modified Padding\nct = fcc2c7a6d2944e7d02ca08e49a7ceb77ee3f5966509b528e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 235\n# Modified Padding\nct = 57bc3a4c7544fe76b92740608a1023bb70227856cbdb8ada\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070\nresult = invalid\n\n# tcId = 236\n# Modified Padding\nct = 9220a6eb9c77a3d6374647afa7a3effb99be7e1f7bafeca8a1bbd93e8adcca6e570484008ee674ca\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 237\n# Modified Padding\nct = 94654a58be6bb6b946ef40ac7b8f1d19e2edff7c2c8c54eb7b2cbb3227c4f9df2cb317795beea413\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 238\n# Modified Padding\nct = 1ae49d65e69886f0f47cbbeb50f07ab5163983916a738a0d8f538c59c8a6e1e9ad229b27418259a7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690\nresult = invalid\n\n# tcId = 239\n# RFC 3349 padding\nct = ac1a774a5de27e4f9c356e4f62deaf8b7eeee6bcafafd895\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 240\n# Invalid encryption\nct = b3941437f55e7cbc3f88050aff703967\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 241\n# padding too long\nct = 86175acf19ad0b7ac60d1fe4bb7850635e7ec6f8a314f85b6dd3d8f9349ea38d\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 242\n# padding too long\nct = 791f088847a76731e0d56b9b2dcb28bf9f091a9725790e0a64fc8e7cb3ad50f380297a98e3b1c33e\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000000000000000000000000000000000000000000000000000\nresult = invalid\n\n# tcId = 243\n# incorrectly encoded length\nct = 868c34495bd3d7b4e2c1861e7fcbbdb372099488dd96c9ea\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 244\n# length = 2**32-1\nct = 4a8b4aeaa713469bfd9bf88d4072379fc858e40b24b0bebe\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 245\n# length = 2**32-1\nct = c210aa3b5fbf5eac97e68d98d7727f38\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 246\n# length = 2**31-1\nct = e0ebd376e050cc9027b76dfc38ee2c6ae2808cecf480a560\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 247\n# length = 2**31 + 16\nct = 23a693e211c08ab9b222c2ede2db18f437e22917fdff8032\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 248\n# data is incorrectly padded\nct = 003f2916fea6827e01199028d3dc4e03889113f97b1860cc242e5a0f28a0f159\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = ffffffffffffffffffffffffffffffffffffffffffffffff\nresult = invalid\n\n# tcId = 249\n# data is incorrectly padded\nct = 5c25a170d5225a6d66e117c691b37383\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 250\n# length = 0\nct = df9ef924eb59634be5b27cabd33d72bd6be6e01e4672ab05\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 00000000000000000000000000000000\nresult = invalid\n\n# tcId = 251\n# RFC 3349 padding with incorrect size\nct = e6e66fad359a7b63a977788acd297121\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 252\n# length = 9\nct = 76b88ecda760b1af80703036185fc476\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 253\n# length = 16\nct = fd101943f4ab7c38ec68c75d4b3193dc\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n# tcId = 254\n# length = 2**31 + 8\nct = 1793a3a9bd146726edbcb9589f20e849\nkey = 48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2\nmsg = 0000000000000000\nresult = invalid\n\n", }; -static const size_t kLen85 = 35004; +static const size_t kLen118 = 36748; -static const char *kData85[] = { - "# Imported from Wycheproof's x25519_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: X25519\n# Generator version: 0.4.12\n\n[curve = curve25519]\n\n# tcId = 1\n# normal case\ncurve = curve25519\nprivate = 4852834d9d6b77dadeabaaf2e11dca66d19fe74993a7bec36c6e16a0983feaba\npublic = 9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a\nresult = valid\nshared = 87b7f212b627f7a54ca5e0bcdaddd5389d9de6156cdbcf8ebe14ffbcfb436551\n\n# tcId = 2\n# normal case\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = 9c647d9ae589b9f58fdc3ca4947efbc915c4b2e08e744a0edf469dac59c8f85a\nresult = valid\nshared = 4b82bd8650ea9b81a42181840926a4ffa16434d1bf298de1db87efb5b0a9e34e\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 3\n# public key on twist\ncurve = curve25519\nprivate = 588c061a50804ac488ad774ac716c3f5ba714b2712e048491379a500211998a8\npublic = 63aa40c6e38346c5caf23a6df0a5e6c80889a08647e551b3563449befcfc9733\nresult = acceptable\nshared = b1a707519495ffffb298ff941716b06dfab87cf8d91123fe2be9a233dda22212\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 4\n# public key on twist\ncurve = curve25519\nprivate = b05bfd32e55325d9fd648cb302848039000b390e44d521e58aab3b29a6960ba8\npublic = 0f83c36fded9d32fadf4efa3ae93a90bb5cfa66893bc412c43fa7287dbb99779\nresult = acceptable\nshared = 67dd4a6e165533534c0e3f172e4ab8576bca923a5f07b2c069b4c310ff2e935b\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 5\n# public key on twist\ncurve = curve25519\nprivate = 70e34bcbe1f47fbc0fddfd7c1e1aa53d57bfe0f66d243067b424bb6210bed19c\npublic = 0b8211a2b6049097f6871c6c052d3c5fc1ba17da9e32ae458403b05bb283092a\nresult = acceptable\nshared = 4a0638cfaa9ef1933b47f8939296a6b25be541ef7f70e844c0bcc00b134de64a\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 6\n# public key on twist\ncurve = curve25519\nprivate = 68c1f3a653a4cdb1d37bba94738f8b957a57beb24d646e994dc29a276aad458d\npublic = 343ac20a3b9c6a27b1008176509ad30735856ec1c8d8fcae13912d08d152f46c\nresult = acceptable\nshared = 399491fce8dfab73b4f9f611de8ea0b27b28f85994250b0f475d585d042ac207\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 7\n# public key on twist\ncurve = curve25519\nprivate = d877b26d06dff9d9f7fd4c5b3769f8cdd5b30516a5ab806be324ff3eb69ea0b2\npublic = fa695fc7be8d1be5bf704898f388c452bafdd3b8eae805f8681a8d15c2d4e142\nresult = acceptable\nshared = 2c4fe11d490a53861776b13b4354abd4cf5a97699db6e6c68c1626d07662f758\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 8\n# public key = 0\ncurve = curve25519\nprivate = 207494038f2bb811d47805bcdf04a2ac585ada7f2f23389bfd4658f9ddd4debc\npublic = 0000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# The public key is insecure and does not belong to a valid private key. Some\n# libraries reject such keys.\n\n# tcId = 9\n# public key = 1\ncurve = curve25519\nprivate = 202e8972b61c7e61930eb9450b5070eae1c670475685541f0476217e4818cfab\npublic = 0100000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# The public key is insecure and does not belong to a valid private key. Some\n# libraries reject such keys.\n\n# tcId = 10\n# edge case on twist\ncurve = curve25519\nprivate = 38dde9f3e7b799045f9ac3793d4a9277dadeadc41bec0290f81f744f73775f84\npublic = 0200000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 9a2cfe84ff9c4a9739625cae4a3b82a906877a441946f8d7b3d795fe8f5d1639\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 11\n# edge case on twist\ncurve = curve25519\nprivate = 9857a914e3c29036fd9a442ba526b5cdcdf28216153e636c10677acab6bd6aa5\npublic = 0300000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 4da4e0aa072c232ee2f0fa4e519ae50b52c1edd08a534d4ef346c2e106d21d60\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 12\n# edge case on twist\ncurve = curve25519\nprivate = 48e2130d723305ed05e6e5894d398a5e33367a8c6aac8fcdf0a88e4b42820db7\npublic = ffffff030000f8ffff1f0000c0ffffff000000feffff070000f0ffff3f000000\nresult = acceptable\nshared = 9ed10c53747f647f82f45125d3de15a1e6b824496ab40410ffcc3cfe95760f3b\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 13\n# edge case on twist\ncurve = curve25519\nprivate = 28f41011691851b3a62b641553b30d0dfddcb8fffcf53700a7be2f6a872e9fb0\npublic = 000000fcffff070000e0ffff3f000000ffffff010000f8ffff0f0000c0ffff7f\nresult = acceptable\nshared = cf72b4aa6aa1c9f894f4165b86109aa468517648e1f0cc70e1ab08460176506b\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 14\n# edge case on twist\ncurve = curve25519\nprivate = 18a93b6499b9f6b3225ca02fef410e0adec23532321d2d8ef1a6d602a8c65b83\npublic = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff7f\nresult = acceptable\nshared = 5d50b62836bb69579410386cf7bb811c14bf85b1c7b17e5924c7ffea91ef9e12\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 15\n# edge case on twist\ncurve = curve25519\nprivate = c01d1305a1338a1fcac2ba7e2e032b427e0b04903165aca957d8d0553d8717b0\npublic = eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 19230eb148d5d67c3c22ab1daeff80a57eae4265ce2872657b2c8099fc698e50\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a poin", - "t multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 16\n# edge case for public key\ncurve = curve25519\nprivate = 386f7f16c50731d64f82e6a170b142a4e34f31fd7768fcb8902925e7d1e21abe\npublic = 0400000000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 0fcab5d842a078d7a71fc59b57bfb4ca0be6873b49dcdb9f44e14ae8fbdfa542\n\n# tcId = 17\n# edge case for public key\ncurve = curve25519\nprivate = e023a289bd5e90fa2804ddc019a05ef3e79d434bb6ea2f522ecb643a75296e95\npublic = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\nresult = valid\nshared = 54ce8f2275c077e3b1306a3939c5e03eef6bbb88060544758d9fef59b0bc3e4f\n\n# tcId = 18\n# edge case for public key\ncurve = curve25519\nprivate = 68f010d62ee8d926053a361c3a75c6ea4ebdc8606ab285003a6f8f4076b01e83\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03\nresult = valid\nshared = f136775c5beb0af8110af10b20372332043cab752419678775a223df57c9d30d\n\n# tcId = 19\n# edge case for public key\ncurve = curve25519\nprivate = 58ebcb35b0f8845caf1ec630f96576b62c4b7b6c36b29deb2cb0084651755c96\npublic = fffffffbfffffbffffdfffffdffffffffefffffefffff7fffff7ffffbfffff3f\nresult = valid\nshared = bf9affd06b844085586460962ef2146ff3d4533d9444aab006eb88cc3054407d\n\n# tcId = 20\n# edge case for public key\ncurve = curve25519\nprivate = 188c4bc5b9c44b38bb658b9b2ae82d5b01015e093184b17cb7863503a783e1bb\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nresult = valid\nshared = d480de04f699cb3be0684a9cc2e31281ea0bc5a9dcc157d3d20158d46ca5246d\n\n# tcId = 21\n# edge case for public key\ncurve = curve25519\nprivate = e06c11bb2e13ce3dc7673f67f5482242909423a9ae95ee986a988d98faee23a2\npublic = fffffffffeffff7ffffffffffeffff7ffffffffffeffff7ffffffffffeffff7f\nresult = valid\nshared = 4c4401cce6b51e4cb18f2790246c9bf914db667750a1cb89069092af07292276\n\n# tcId = 22\n# edge case for public key\ncurve = curve25519\nprivate = c0658c46dde18129293877535b1162b6f9f5414a23cf4d2cbc140a4d99da2b8f\npublic = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 578ba8cc2dbdc575afcf9df2b3ee6189f5337d6854c79b4ce165ea12293b3a0f\n\n# tcId = 23\n# public key with low order\ncurve = curve25519\nprivate = 10255c9230a97a30a458ca284a629669293a31890cda9d147febc7d1e22d6bb1\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 24\n# public key with low order\ncurve = curve25519\nprivate = 78f1e8edf14481b389448dac8f59c70b038e7cf92ef2c7eff57a72466e115296\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 25\n# public key with low order\ncurve = curve25519\nprivate = a0a05a3e8f9f44204d5f8059a94ac7dfc39a49ac016dd743dbfa43c5d671fd88\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 26\n# public key with low order\ncurve = curve25519\nprivate = d0dbb3ed1906663f15420af31f4eaf6509d9a9949723500605ad7c1c6e7450a9\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 27\n# public key with low order\ncurve = curve25519\nprivate = c0b1d0eb22b244fe3291140072cdd9d989b5f0ecd96c100feb5bca241c1d9f8f\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 28\n# public key with low order\ncurve = curve25519\nprivate = 480bf45f594942a8bc0f3353c6e8b8853d77f351f1c2ca6c2d1abf8a00b4229c\npublic = 0000000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 29\n# public key with low order\ncurve = curve25519\nprivate = 30f993fcf8514fc89bd8db14cd43ba0d4b2530e73c4276a05e1b145d420cedb4\npublic = 0100000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 30\n# public key with low order\ncurve = curve25519\nprivate = c04974b758380e2a5b5df6eb09bb2f6b3434f982722a8e676d3da251d1b3de83\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 31\n# public key with low order\ncurve = curve25519\nprivate = 502a31373db32446842fe5add3e024022ea54f274182afc3d9f1bb3d39534eb5\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 32\n# public key with low order\ncurve = curve25519\nprivate = 90fa6417b0e37030fd6e43eff2abaef14c6793117a039cf621318ba90f4e98be\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 33\n# public key with low order\ncurve = curve25519\nprivate = 78ad3f26027f1c9fdd975a1613b947779bad2cf2b741ade01840885a30bb979c\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 34\n# public key with low order\ncurve = curve25519\nprivate = 98e23de7b1e0926ed9c87e7b14baf55f497a1d7096f93977680e44", - "dc1c7b7b8b\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n# Curve25519 or its twist contains some points of low order. This test vector\n# contains a public key with such a point. While many libraries reject such\n# public keys, doing so is not a strict requirement according to RFC 7748.\n\n# tcId = 35\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = 0000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 36\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = 0100000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 37\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 38\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 39\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 40\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 41\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 42\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = 0000000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 43\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = 0100000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 44\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 45\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 46\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 47\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 48\n# public key with low order\ncurve = curve25519\nprivate = 1064a67da639a8f6df4fbea2d63358b65bca80a770712e14ea8a72df5a3313ae\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 49\n# public key >= p\ncurve = curve25519\nprivate = f01e48dafac9d7bcf589cbc382c878d18bda3550589ffb5d50b523bebe329dae\npublic = efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = bd36a0790eb883098c988b21786773de0b3a4df162282cf110de18dd484ce74b\n\n# tcId = 50\n# public key >= p\ncurve = curve25519\nprivate = 288796bc5aff4b81a37501757bc0753a3c21964790d38699308debc17a6eaf8d\npublic = f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = b4e0dd76da7b071728b61f856771aa356e57eda78a5b1655cc3820fb5f854c5c\n\n# tcId = 51\n# public key >= p\ncurve = curve25519\nprivate = 98df845f6651bf1138221f119041f72b6dbc3c4ace7143d99fd55ad867480da8\npublic = f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 6fdf6c37611dbd5304dc0f2eb7c9517eb3c50e12fd050ac6dec27071d4bfc034\n\n# tcId = 52\n# public key >= p\ncurve = curve25519\nprivate = f09498e46f02f878829e78b803d316a2ed695d0498a08abdf8276930e24edcb0\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 4c8fc4b1c6ab88fb21f18f6d4c810240d4e94651ba44f7a2c863cec7dc56602d\n\n# tcId = 53\n# public key >= p\ncurve = curve25519\nprivate = 1813c10a5c7f21f96e17f288c0cc37607c04c5f5aea2db134f9e2ffc66bd9db8\npublic = 0200000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 1cd0b28267dc541c642d6d7dca44a8b38a63736eef5c4e6501ffbbb1780c033c\n\n# tcId = 54\n# public key >= p\ncurve = curve25519\nprivate = 7857fb808653645a0beb138a64f5f4d733a45ea84c3cda11a9c06f7e7139149e\npublic = 0300000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 8755be01c60a7e825cff3e0e78cb3aa4333861516aa59b1c51a8b2a543dfa822\n\n# tcId = 55\n# public key >= p\ncurve = curve25519\nprivate = e03aa842e2abc56e81e87b8b9f417b2a1e5913c723eed28d752f8d47a59f498f\npublic = 0400000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 54c9a1ed95e546d27822a360931dda60a1df049da6f904253c0612bbdc087476\n\n# tcId = 56\n# public key >= p\ncurve = curve25519\nprivate = f8f707b7999b18cb0d6b96124f2045972ca274bfc154ad0c87038c24c6d0d4b2\npublic = daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = cc1f40d743cdc2230e1043daba8b75e810f1fbab7f255269bd9ebb29e6bf494f\n\n# tcId = 57\n# public key >= p\ncurve = curve25519\nprivate = a034f684fa631e1a348118c1ce4c98231f2d9eec9ba5365b4a05d69a785b0796\npublic = dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 54998ee43a5b007bf499f078e736524400a8b5c7e9b9b43771748c7cdf880412\n\n# tcId = 58\n# public key >= p\ncurve = curve25519\nprivate = 30b6c6a0f2ffa680768f992ba89e152d5bc9893d38c9119be4f767bfab6e0ca5\npublic = dcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = ead9b38efdd723637934e55ab717a7ae09eb86a21dc36a3feeb88b759e391e09\n\n# tcId = 59\n# public key >= p\ncurve = curve25519\nprivate = 901b9dcf881e01e027575035d40b43bdc1c5242e030847495b0c7286469b6591\npublic = eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 602ff40789b54b41805915fe2a6221f07a50ffc2c3fc94cf61f13d7904e88e0e\n\n# tcId = 60\n# public key >= p\ncurve = curve25519\nprivate = 8046677c28fd82c9a1bdb71a1a1a34faba1225e2507fe3f54d10bd5b0d865f8e\npublic = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = e00ae8b143471247ba24f12c885536c3cb981b58e1e56b2baf35c12ae1f79c26\n\n# tcId = 61\n# public key ", - ">= p\ncurve = curve25519\nprivate = 602f7e2f68a846b82cc269b1d48e939886ae54fd636c1fe074d710127d472491\npublic = efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 98cb9b50dd3fc2b0d4f2d2bf7c5cfdd10c8fcd31fc40af1ad44f47c131376362\n\n# tcId = 62\n# public key >= p\ncurve = curve25519\nprivate = 60887b3dc72443026ebedbbbb70665f42b87add1440e7768fbd7e8e2ce5f639d\npublic = f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 38d6304c4a7e6d9f7959334fb5245bd2c754525d4c91db950206926234c1f633\n\n# tcId = 63\n# public key >= p\ncurve = curve25519\nprivate = 78d31dfa854497d72d8def8a1b7fb006cec2d8c4924647c93814ae56faeda495\npublic = f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 786cd54996f014a5a031ec14db812ed08355061fdb5de680a800ac521f318e23\n\n# tcId = 64\n# public key >= p\ncurve = curve25519\nprivate = c04c5baefa8302ddded6a4bb957761b4eb97aefa4fc3b8043085f96a5659b3a5\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 29ae8bc73e9b10a08b4f681c43c3e0ac1a171d31b38f1a48efba29ae639ea134\n\n# tcId = 65\n# RFC 7748\ncurve = curve25519\nprivate = a046e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449a44\npublic = e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c\nresult = valid\nshared = c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552\n\n# tcId = 66\n# RFC 7748\ncurve = curve25519\nprivate = 4866e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba4d\npublic = e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a413\nresult = valid\nshared = 95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957\n\n# tcId = 67\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 0ab4e76380d84dde4f6833c58f2a9fb8f83bb0169b172be4b6e0592887741a36\nresult = acceptable\nshared = 0200000000000000000000000000000000000000000000000000000000000000\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 68\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 89e10d5701b4337d2d032181538b1064bd4084401ceca1fd12663a1959388000\nresult = valid\nshared = 0900000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 69\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 2b55d3aa4a8f80c8c0b2ae5f933e85af49beac36c2fa7394bab76c8933f8f81d\nresult = valid\nshared = 1000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 70\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 63e5b1fe9601fe84385d8866b0421262f78fbfa5aff9585e626679b18547d959\nresult = acceptable\nshared = feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 71\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = e428f3dac17809f827a522ce32355058d07369364aa78902ee10139b9f9dd653\nresult = valid\nshared = fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\n\n# tcId = 72\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = b3b50e3ed3a407b95de942ef74575b5ab8a10c09ee103544d60bdfed8138ab2b\nresult = acceptable\nshared = f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 73\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 213fffe93d5ea8cd242e462844029922c43c77c9e3e42f562f485d24c501a20b\nresult = valid\nshared = f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\n\n# tcId = 74\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 91b232a178b3cd530932441e6139418f72172292f1da4c1834fc5ebfefb51e3f\nresult = valid\nshared = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03\n\n# tcId = 75\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 045c6e11c5d332556c7822fe94ebf89b56a3878dc27ca079103058849fabcb4f\nresult = acceptable\nshared = e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 76\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 1ca2190b71163539063c35773bda0c9c928e9136f0620aeb093f099197b7f74e\nresult = acceptable\nshared = e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 77\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = f76e9010ac33c5043b2d3b76a842171000c4916222e9e85897a0aec7f6350b3c\nresult = valid\nshared = ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 78\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = bb72688d8f8aa7a39cd6060cd5c8093cdec6fe341937c3886a99346cd07faa55\nresult = acceptable\nshared = dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 79\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 88fddea193391c6a5933ef9b71901549447205aae9da928a6b91a352ba10f41f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000002\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 80\n# edge case for shared secret\ncurve = curve25519\nprivate = a0a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a976bf63\npublic = 303b392f153116cad9cc682a00ccc44c95ff0d3bbe568beb6c4e739bafdc2c68\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000008000\n# Public keys are either points on curve25519 or points on its twist.\n# Implementations may either reject such keys or compute X25519 using the twist.\n", - "# If a point multiplication is performed then it is important that the result is\n# correct, since otherwise attacks with invalid keys are possible.\n\n# tcId = 81\n# checking for overflow\ncurve = curve25519\nprivate = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\npublic = fd300aeb40e1fa582518412b49b208a7842b1e1f056a040178ea4141534f652d\nresult = valid\nshared = b734105dc257585d73b566ccb76f062795ccbec89128e52b02f3e59639f13c46\n\n# tcId = 82\n# checking for overflow\ncurve = curve25519\nprivate = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\npublic = c8ef79b514d7682677bc7931e06ee5c27c9b392b4ae9484473f554e6678ecc2e\nresult = valid\nshared = 647a46b6fc3f40d62141ee3cee706b4d7a9271593a7b143e8e2e2279883e4550\n\n# tcId = 83\n# checking for overflow\ncurve = curve25519\nprivate = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\npublic = 64aeac2504144861532b7bbcb6c87d67dd4c1f07ebc2e06effb95aecc6170b2c\nresult = valid\nshared = 4ff03d5fb43cd8657a3cf37c138cadcecce509e4eba089d0ef40b4e4fb946155\n\n# tcId = 84\n# checking for overflow\ncurve = curve25519\nprivate = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\npublic = bf68e35e9bdb7eee1b50570221860f5dcdad8acbab031b14974cc49013c49831\nresult = valid\nshared = 21cee52efdbc812e1d021a4af1e1d8bc4db3c400e4d2a2c56a3926db4d99c65b\n\n# tcId = 85\n# checking for overflow\ncurve = curve25519\nprivate = c81724704000b26d31703cc97e3a378d56fad8219361c88cca8bd7c5719b12b2\npublic = 5347c491331a64b43ddc683034e677f53dc32b52a52a577c15a83bf298e99f19\nresult = valid\nshared = 18cb89e4e20c0c2bd324305245266c9327690bbe79acb88f5b8fb3f74eca3e52\n\n# tcId = 86\n# private key == -1 (mod order)\ncurve = curve25519\nprivate = a023cdd083ef5bb82f10d62e59e15a6800000000000000000000000000000050\npublic = 258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75\nresult = valid\nshared = 258e04523b8d253ee65719fc6906c657192d80717edc828fa0af21686e2faa75\n\n# tcId = 87\n# private key == 1 (mod order) on twist\ncurve = curve25519\nprivate = 58083dd261ad91eff952322ec824c682ffffffffffffffffffffffffffffff5f\npublic = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\nresult = acceptable\nshared = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\n\n", +static const char *kData118[] = { + "# Imported from Wycheproof's kw_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: KW\n# Generator version: 0.8r12\n\n[keySize = 128]\n\n# tcId = 1\nct = 9de453ced5d4ab46a5601708eeefefb5e593e6ae8e86b26b\nkey = 6f67486d1e914419cb43c28509c7c1ea\nmsg = 8dc0632d92ee0be4f740028410b08270\nresult = valid\n\n# tcId = 2\nct = 8c3aba85cc0ae1ae10b36658b068f595baf8caafb745ef3c\nkey = a0b17172bb296db7f5c869e9a36b5ce3\nmsg = 615dd022d607c910f20178cbdf42060f\nresult = valid\n\n# tcId = 3\nct = 1de093654826f18fcd0f3fd499416ff22ed75ee12fe0b624\nkey = 0e49d571c19b5250effd41d94bde39d6\nmsg = f25e4de8caca363fd5f29442eb147b55\nresult = valid\n\n# tcId = 4\n# wrapped key is longer than wrapping key\nct = 9c3ddc23827b7b3c13105f9e8b11523baccdfb6c8b7e7825496e7a840bd32aec\nkey = e0e12959109103e30ae8b5684a22e662\nmsg = dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e\nresult = valid\n\n# tcId = 5\n# wrapped key is longer than wrapping key\nct = afb744aaf746dcc0b57f8b378c404cbe877f44cf3d45140d60814eda3f541f01\nkey = dd583d9f1059861430ec8b5d8a180e9b\nmsg = f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487\nresult = valid\n\n# tcId = 6\n# wrapped key is longer than wrapping key\nct = cff98cd64cb51ab99b81aee82cee4274d0df3e1b6a4943d39236ea989846d0cc\nkey = faf5ccfae42b43cee2c5f0f3177a7c5d\nmsg = 4e02084833660c463830483b36dab866c64c8cf7429cac3d\nresult = valid\n\n# tcId = 7\n# wrapped key is longer than wrapping key\nct = 58dcfb0e7ec4d3bc8003418d865fbd520c6b24b2bde35b1be5b1c5ff32a130f33d035e5932616083\nkey = c2b9d23f2831ddcdeb456853d4014db9\nmsg = f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907\nresult = valid\n\n# tcId = 8\n# wrapped key is longer than wrapping key\nct = 4ee47bd68d418586c447a39111e2ec1502ff0f1726ea91c5d97370409d89b8e66e889b638ac40ced\nkey = 620a08f320cdedbf7ae551add348d95e\nmsg = cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291\nresult = valid\n\n# tcId = 9\n# wrapped key is longer than wrapping key\nct = d3b093fd822ce454ebc251c6f21fa71c3858ee7e623ecbfbbf887398a30b40c55d0565c7a15e4015\nkey = ed089ac274f8c7cea2415671a94b5e53\nmsg = 6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299\nresult = valid\n\n# tcId = 10\n# Round counter overflows 256\nct = 222deadde6efb760cae42fa188310e0c07e7d557529766444a9efb330907d42f0dd8f3d17b3a38bf40d68c095a9cce19daf907bf2c92f1e59b18b277ff0397fc50f45f582db936aa8afb943de01b58abfdc81daef4e038c99e4c1eb3ee447464bb8f89a4ea81e56556cc26c72883c06a7fe850d04347d68bbadc4a06775030676db8cc34aeb07e39c7f059c2bff76a7f2baf076749004ef7189f887f89029f88c5c1d0f5ee62320b423048e2ad8186e63be23c553f5576a40d967e8b527ccd783c41abc64bea1aec8a76deb3e9c9a6656756e1dac38bd25ff008888a5591af763fd73f5addd749794817070990484654a46ef442adaeacab14d12daaf87bcb91661a21593717d9b93529d813ea5fc812d708c0d8e9b68122d9f5e6267cde363780a45d07e4caa5bf14f2334f25b9d177632bb80a82894aa47b6f360b2da1138dedd4331f077c900554c7a68b5d154980bb3517ac20a78a51f6f21e42b2c4c960d31cbd22bd610819182c5e456ba7d7e903f5e60f6e0c4cc014feb4f81973ce48ad6f4dab8da51eb7\nkey = 31cacbb17d6dbbecae40727c5048fe0c\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 11\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = \nresult = invalid\n\n# tcId = 12\n# keys of size 8 byte cannot be wrapped\nct = dc26fb6911d71971df0356d6bb9ed6e6\nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 13\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00\nresult = invalid\n\n# tcId = 14\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001\nresult = invalid\n\n# tcId = 15\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102\nresult = invalid\n\n# tcId = 16\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00010203\nresult = invalid\n\n# tcId = 17\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 0001020304\nresult = invalid\n\n# tcId = 18\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102030405\nresult = invalid\n\n# tcId = 19\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 20\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 21\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 22\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 23\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 24\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 25\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 26\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 27\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = \nresult = invalid\n\n# tcId = 28\n# bytes appended to wrapped key\nct = 9790ab51fbcb850df6764e011ae97c85785bed2633aea66500\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 29\n# Incorrect IV\nct = 0aac329ccd513edbdd6367df67999eaac9e7b51984c4d38d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 30\n# Incorrect IV\nct = 5a55dc429749ca49bb4ab01d966b19ea9a9e1402e6ab2962\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 31\n# Incorrect IV\nct = 45f533f6072f640eb7e1e512d56072085567f4ad6012a97a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 32\n# Incorrect IV\nct = 84f284565df47c409107f7a0a71bc370a8ed4489d414b9e9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 33\n# Incorrect IV\nct = 3941c366554fc896e9fe52f02493ca03d439eb17c236146d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 34\n# Incorrect IV\nct = 45c9d42363d981d086a972728e130a42f5dd90bda562a85a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 35\n# Incorrect IV\nct = 037d17859519d6c0728a9eb6e64113e86919decabd3bbb88\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 36\n# Incorrect IV\nct = 1ad10af7f6c042b267a0c7bc4d25d27c003deb50e2cc566a\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 37\n# Incorrect IV\nct = 630c571b7fb8647ac5360a255f9f5d3645795ac45285cbaa\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 38\n# Incorrect IV\nct = 16db553e467d4029d0fea62b2c440e5df6c6591f0497a99d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 39\n# Incorrect IV\nct = 097991090a156047d4784b757f262e12ce57e13a3d5d286c\nkey = 4f710eb6b5e28703becfc3dc52", + "fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 40\n# Incorrect IV\nct = 3957c338b750a3285eb7b65c9cfe77053dd7d8149f42caa1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 41\n# RFC 3394\nct = 1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5\nkey = 000102030405060708090a0b0c0d0e0f\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n[keySize = 192]\n\n# tcId = 42\nct = 00be1caddfd5ad7697877017795f9cee4bce5a61687a6126\nkey = f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe\nmsg = 9adbc00c710b1101bdf6a4ed65b32d72\nresult = valid\n\n# tcId = 43\nct = 54e7f278b5a1fb4c31a0d79ac1f615edd910bf22015a0668\nkey = b713f6b7814f98894d7b153974684359f1460213eb74be68\nmsg = 78585f0c49922e82caf17ebc3721b4db\nresult = valid\n\n# tcId = 44\nct = 510455bd9c078ac1f07bb3752cbd04e421b0dd635190fa62\nkey = 13ecf423211caa334ba6db37259a535c20de8ad10fc8c432\nmsg = 4fc75d0f221e22408a37e11265d49a05\nresult = valid\n\n# tcId = 45\nct = 880da5b410f913ad72cc93f46344f1152165bdea14664fd2d3afbd87b8cc5cfd\nkey = 4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1\nmsg = f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5\nresult = valid\n\n# tcId = 46\nct = 27654cf6a63d6004ae83da54c2e5d7b5fad20878f350087ddd17ac44a2be868f\nkey = b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e\nmsg = 0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a\nresult = valid\n\n# tcId = 47\nct = ad7ca66ad4664f43e4dd09296a6e6f02d5af4408f225c0abeb0d9b76c8d1e982\nkey = f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000\nmsg = 241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea\nresult = valid\n\n# tcId = 48\n# wrapped key is longer than wrapping key\nct = e245c90a6b46caece94f47117d608331958c8f75f531ebcdc902c0213d9105f2155af07daa62d132\nkey = 1639f9f81e53e2eeb677a249e5eced3af108971301601a7b\nmsg = ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691\nresult = valid\n\n# tcId = 49\n# wrapped key is longer than wrapping key\nct = 8a32b9f207ae5aaedb7e8a0d945107412c1bd06999bc5ac83c1f958dfb77ebdcf9d98c60dbd4650a\nkey = 1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0\nmsg = 50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380\nresult = valid\n\n# tcId = 50\n# wrapped key is longer than wrapping key\nct = 4a5842b10d2db96ea1039ef4785ce722555b3751a9b6dd39126ad363378c72320d83ea7adb81615a\nkey = 3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771\nmsg = 65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf\nresult = valid\n\n# tcId = 51\n# Round counter overflows 256\nct = e2192598e6124f2791b2751f930958435bb1d02e98aa1e09781bba0b159435db659fa73fa310111704692c68e16ddf4be06022c52fe9dba6279aad1aeb814125d0ddf33f31e58e625af32305050cfea390d8782d32caac558889ca8e641908208da6976542b40dbd090178e2a6812a436c18a5e891ac8083176ace1ddfee4d382856a59c80c643ecd5c1ab68c66b2b8984ce6e0e386f6554a9cb91d363bb4accf028878ec20b8b2e37214f7b12dbcd78fb38f711a90fe262c78491b9058354e27b34fc92ef0d7028594cb08259f86b54cb1d317ec55f2ef2ab7e8b141671f8bcb1a90bb7d82bc8cb4fb02c9ce430ef4ae0dc847e91e7d4fb463eb9dd87fc9dc9568f3a4ef504d74c134dcb60ca01b36ce10cb467268ea297c0518a50d12cc025cfeea1381ddd7dd63e4ac94890a0eae9dbd8db244625a3c8af2e1aff6a8112c4d3d98e8263588ee1dd9063b709b8ec00474c4ea413a802b8cde814e7b3731410809ed000060fb7b9b0bf8509ef17515f333e868b188ea16445f380b3a7d42774f6456cdf724246fa\nkey = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab63502\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 52\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = \nresult = invalid\n\n# tcId = 53\n# keys of size 8 byte cannot be wrapped\nct = 38d8238cdb0d9a2da28d6d56194f2e78\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001020304050607\nresult = invalid\n\n# tcId = 54\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00\nresult = invalid\n\n# tcId = 55\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001\nresult = invalid\n\n# tcId = 56\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102\nresult = invalid\n\n# tcId = 57\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00010203\nresult = invalid\n\n# tcId = 58\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 0001020304\nresult = invalid\n\n# tcId = 59\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102030405\nresult = invalid\n\n# tcId = 60\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 61\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 62\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 63\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 64\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 65\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 66\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 67\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 68\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = \nresult = invalid\n\n# tcId = 69\n# bytes appended to wrapped key\nct = 55dfb2f7e0c1ea04fead897c451c0505921dc47f308c491700\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 70\n# Incorrect IV\nct = 9b1593fd7d4fe25a660bbc1976ea4ab68bcc53f848a8eb9d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 71\n# Incorrect IV\nct = e7edb847fa91e2deded726edf3ab93da91151697425fee28\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 72\n# Incorrect IV\nct = 1b51a7c033c1efb5ee2994259c40f03bb57d8cc09e507e6e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 73\n# Incorrect IV\nct = c40b614a5062f5fd049c5379b3e8141614c2da97893589fb\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 74\n# Incorrect IV\nct = d7575ef02df54b3086eb49035eeafbce0e08336e89b35ab0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 75\n# Incorrect IV\nct = 0d617f1c12485a35917d2a941e949d2fdbf03a346889b850\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 76\n# Incorrect IV\nct = c7df34729174db2e83ee16c6de74d5eb9766715fad049b40\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a8", + "28cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 77\n# Incorrect IV\nct = c3ed38d6f9ccb9bf3c56bb3176f00d3ce9887521f8d4c70b\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 78\n# Incorrect IV\nct = 6582b5f4652744b0537e97e7cdae0f443130140dbaea604c\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 79\n# Incorrect IV\nct = fc9b9bdf25f2b48ad79934c8d34897cdbf4c846f8cb4b11d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 80\n# Incorrect IV\nct = fc23c7f4fe20aa81105efc1a7105a5316b23399ac792c824\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 81\n# Incorrect IV\nct = 37b4a261b96bcec9cc93eef5b2fbbbe84634f978c5893dda\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 82\n# Incorrect IV\nct = 1831109847d17d010bfcd93fb46f3150cdafd52733db74c221b034fe8e1552c0\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 83\n# Incorrect IV\nct = 2b2b89c3c6b2db4903877ad4622ca33f3a3cb7e6701d1340e6afc0fdab7dbd72\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 84\n# Incorrect IV\nct = 3c6903f37da57161af6706050a2ed747cd55344d869189fd49d2536ff948129d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 85\n# Incorrect IV\nct = 8a8dc8b131c6b968b60c1dd819a655392d1a96d6cafa48e30fb1146f096229c6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 86\n# Incorrect IV\nct = 303e0b3602d514a7d52edba3306d7383e8999e7c652a510335a8949efb42eb66\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 87\n# Incorrect IV\nct = 319befbf2ddbb475723fb2fa30f2ae7fc1ceb1e6f361715eca7209608873c7fc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 88\n# Incorrect IV\nct = 9b3e440341c5da131559959db6b3553a534691162f4f009327bf2c21d6fe5ada\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 89\n# Incorrect IV\nct = eba6cc0959e6a56339b141629840add80f4565656dc687a3b996960c994dfd26\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 90\n# Incorrect IV\nct = b703b6cf4587709353c7e4004d3da61ce5f5deaf7163ca9d6158dde919e0ac34\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 91\n# Incorrect IV\nct = 72549d52d6f4ff912d833c74136d90634ce8afa4f84412bbee8074084d4cecff\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 92\n# Incorrect IV\nct = 1337c8bd6c8a5dd43aba8d298864ffe76ad6ea909f3488157a15e6c46acf2214\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 93\n# Incorrect IV\nct = 4aaffaca5fe85814d040aa2a306ba4d1d44746cfe46c978aa057b53fd25316c1\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 94\n# RFC 3394\nct = 96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n# tcId = 95\n# RFC 3394\nct = 031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2\nkey = 000102030405060708090a0b0c0d0e0f1011121314151617\nmsg = 00112233445566778899aabbccddeeff0001020304050607\nresult = valid\n\n[keySize = 256]\n\n# tcId = 96\nct = 940b1c580e0c7233a791b0f192438d2eace14214cee455b7\nkey = fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c\nmsg = 287326b5ed0078e7ca0164d748f667e7\nresult = valid\n\n# tcId = 97\nct = 939b3389336fea4a9751bf014ef18011323090e8a0500bc4\nkey = 0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22\nmsg = b40b6828729b456322a8d065abc0d081\nresult = valid\n\n# tcId = 98\nct = 59ee8e5198861237f682edec6ba906526c016d4d935942bd\nkey = d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588\nmsg = 037b27b3dc95b19d15bd4091e320bfe1\nresult = valid\n\n# tcId = 99\nct = 1ab53a065d8f776a08b33e51383071b6f154612116655137bd3b7ec29b70fd56\nkey = 07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121\nmsg = faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071\nresult = valid\n\n# tcId = 100\nct = a1bf8e73e3fa1db759f0ab2ab0b1ca6f2c85b63d83e25f7a0b5293d0a216a2b7\nkey = ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1\nmsg = dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825\nresult = valid\n\n# tcId = 101\nct = 27308a0e1a6c0a1d15d6174ab7d68675207b615df16fcf7a3c69b25f551cca9f\nkey = fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87\nmsg = 966b07047354966a703e79607b556032f4f596b7f9206f05\nresult = valid\n\n# tcId = 102\nct = 7155ee932b0358d98182a23f7f427c774ab340a4757d0b6a63facd3de90578438cf03201c3f88057\nkey = 38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd\nmsg = 80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a\nresult = valid\n\n# tcId = 103\nct = f20b9b553bc0847529f8d4379fa909211e68249bd429f436c615c4c4a5d9f1a1968f0b89c5237b30\nkey = c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7\nmsg = 3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270\nresult = valid\n\n# tcId = 104\nct = 2811716854a214aecdd318c6670b9b2a7511713c9a0c0fa805230ff05cf84af795dd72f6c1a44512\nkey = aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c\nmsg = 57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5\nresult = valid\n\n# tcId = 105\n# Round counter overflows 256\nct = 5322bc62bd8379abbb75f69688b8f00e31962b8f9ae1e89771952d8a2a749e1352ec33b5435a674271b314760ab9f753b16726185ec7d319ac60531355344c1d53c7903000a8039eb40f70564a0ad3f41b2355ea5dfa6a1d46392f1d106a5da569bfb0493bf7c12dff04bafeae377df4bb47cd440b6f60fbab2a54a98551b76273e02cac8d7be9f2343d3abb2a23af1c91a7011c67a7907260116b67d510aabe5c7ca46c1c20f77106c45966583b3e4ed799a47ee19bb4223209265c2b1ac8183a678ff43bc9a3470a50b9ee4d10f60674268d72c68be003a0d9dd6849aba836fe8a1792b81c90e12945bfe1f27a9c6b2af66a063cdb7721a7f23fb30afdbd8b18db377dd1697f157be81c1578d08b066c71b0c5ca7feecac1cdd938cf9ad525f74844660908194b28e54eddb158f6e4c921b811d90db71a92ff872db2250dcc3f847fc752b66d77e33c85084d3fa53b4f30503d2a06e6cabb9033d59fc1dc15e32f19846a039b91597b0ba3141a7d9717630062170117b2131dab77406e9ed7d66b2c754d849c60\nkey = 31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab635025cbac1ecf52ca495\nmsg = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 106\n# empty keys cannot be wrapped\nct = a6a6a6a6a6a6a6a6\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = \nresult = invalid\n\n# tcId = 107\n# keys of size 8 byte cannot be wrapped\nct = 181ba6a3a4392469e3de98ddbbdd2432\nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030", + "4050607\nresult = invalid\n\n# tcId = 108\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00\nresult = invalid\n\n# tcId = 109\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 0001\nresult = invalid\n\n# tcId = 110\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102\nresult = invalid\n\n# tcId = 111\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00010203\nresult = invalid\n\n# tcId = 112\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 0001020304\nresult = invalid\n\n# tcId = 113\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030405\nresult = invalid\n\n# tcId = 114\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 00010203040506\nresult = invalid\n\n# tcId = 115\n# wrapped key size must be divisible by 8\nct = \nkey = 574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692\nmsg = 000102030405060708090a0b0c0d0e0f10111213\nresult = invalid\n\n# tcId = 116\n# invalid size of wrapped key\nct = \nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 117\n# invalid size of wrapped key\nct = 9f\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 118\n# invalid size of wrapped key\nct = dc9e9580\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 119\n# invalid size of wrapped key\nct = b9b282d138693000\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 120\n# invalid size of wrapped key\nct = 0efc635b2d61e244056b9d4591ca6b\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 121\n# invalid size of wrapped key\nct = 4a305dae087b0d24d62af41831338f33ae\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 122\n# invalid size of wrapped key\nct = 82cb927097cf31ea4affea440b0d8ca6a240b900\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = \nresult = invalid\n\n# tcId = 123\n# bytes appended to wrapped key\nct = 7dfbd7cf6158d75bb5900b3bf1e3871003402a6508b1912800\nkey = fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\n\n# tcId = 124\n# Incorrect IV\nct = a417671bc62a23c7a65543092124024df72c048d8db330c7\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 125\n# Incorrect IV\nct = 9518d0f99d7a73ed4a502b449c14c285971b0e6177ce0eca\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 126\n# Incorrect IV\nct = f3511f0491bd74ae1defb5307f0e18db864b57b5c404d428\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 127\n# Incorrect IV\nct = 6c03ce779259661c43d41d5d0e45687f874353bba516c73e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 128\n# Incorrect IV\nct = 8df01969a11c87026535bfccf72b1d064c86ecc7e5227157\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 129\n# Incorrect IV\nct = 8ed1cde228d9c8d046dca65c7a27aef2edf8ae90c705d1e9\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 130\n# Incorrect IV\nct = d69b3e34e9de38d44de1998992362a6fa1f696b5acab3f10\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 131\n# Incorrect IV\nct = 67865122af3294b8da0588775125cbd6dc19d5e5cab97b6d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 132\n# Incorrect IV\nct = 9f0fa52363dd55df472d867e6faf5da8eb204a1d6d497030\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 133\n# Incorrect IV\nct = c399f999c96a4204325e7f08d6a4de256faf21ec2c007ddf\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 134\n# Incorrect IV\nct = 282082264a87dc35ce1cc5b9931b77d80d82fcacc0927f85\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 135\n# Incorrect IV\nct = c192c90b83003ca96744498014b6ad6bedda837955269819\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5\nresult = invalid\n\n# tcId = 136\n# Incorrect IV\nct = 30a983cd9e69d561acc95c42b252aba4185f8392f2e6c935c8eb105af8082e34\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 137\n# Incorrect IV\nct = 4de9a639b799630b45b49e28dbfc44dabb9843ee588a8cff286b8d5fbd7b32ee\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 138\n# Incorrect IV\nct = d915b2cdfb769d9d82259dc3d124646bbf972b83efd4c2eae9b9f751073f78d6\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 139\n# Incorrect IV\nct = 117d653f480b69fce564f1fe99572492945189ed5af789ce05a2651baf90bb5e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 140\n# Incorrect IV\nct = 8226d07a2f919e24ada1081c69a75520be895e3a2bda9b805d9747773ddeaa38\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 141\n# Incorrect IV\nct = b0a74345bedf8865348daf45d054b99ce515ea8be136270d1cf71e1cfa7aa4a2\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 142\n# Incorrect IV\nct = a261db77f17f7ec736d1a8be16e5f9ae432fe2a17012e5a6f07c5426a9f0ca59\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 143\n# Incorrect IV\nct = c53acb5e096b54548e1385b2ff18eaef68d235c95b0194e74a2383d3a7a530dc\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 144\n# Incorrect IV\nct = faef482d99ebb180e5bc5e3cf775ba292c2a3b6c44aa4a21ad400906f11af392\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 145\n# Incorrect IV\nct = 73a450b63b07b3aece9d1ae5bf097a3dd3fcf73e3ec2f1bd8fc3b5586cb9bd73\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 146\n# Incorrect IV\nct = d34b6ee184d387c9aa4b2d180ae0a89498014e55fe8e416be4f826fcf7d56522\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 147\n# Incorrect IV\nct = 2af823d1602803740bfa9040c2c4e769a5b6de919d403cfba9ad360f63af1113\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1\nresult = invalid\n\n# tcId = 148\n# I", + "ncorrect IV\nct = dd78ebd3091c55a5da5b24504200f7fadd1b3ac6ad35f814f733e603c13936245d69d83f262f6b1e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 149\n# Incorrect IV\nct = 3d8338eae7de322399e1d1b4a3df54326b242b563612ea4b27da22a041d3c80966911bc009911761\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 150\n# Incorrect IV\nct = d04bf75cadd3b5f099c34b27a91e64a8f2dbcf08e8c5c1c9f07a777eeb805d5d0e8c5c01afc43944\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 151\n# Incorrect IV\nct = be0c5d193b61c5137a8fd8a6d7d1ed8f0fa28cec516f544697c12add4f8f4d5cfca65edeb1019974\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 152\n# Incorrect IV\nct = a83ebcbeb2be9d6807b5cfc31c89849d1343dd4eb22e5bfe9e2b2b3790ad8900601f1f5d54fd472f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 153\n# Incorrect IV\nct = 416221485a6cb98ad1342ea9a12926a9a133ead8bd919323fe789bb8f89a4fcaf81e1be54f9d358e\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 154\n# Incorrect IV\nct = bf6a53286fac48e7f25d89b7056b27aa917d5b54c0d3171dff369f7249153bf09da5891eb4dc2d88\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 155\n# Incorrect IV\nct = 99d517a1321bb633b0d5f3afda2372d3abf68b41d13cbfdffc78f173b88bc4b97efcab2b2904788d\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 156\n# Incorrect IV\nct = d92456bc77a268ef71cba76064a1b772d1fee2ae4f0ee3bb932a2adb2b031796b9eadb51753f2868\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 157\n# Incorrect IV\nct = 5bb54630ab8d73a040f0f87e70e263d1aeb2358bcdc0dce6994d0d874452bbd8741b7ec1d59d8298\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 158\n# Incorrect IV\nct = 4581d6536039db1b23da50c648777e90c82d6128bb92e28b2974bae1141543a19a1592fda1fbd61f\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 159\n# Incorrect IV\nct = d35bc67e62064c34f48150999ba30ded475d8c75978f45737320f23edaaa7a40d7803fc61add34a4\nkey = 4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7\nmsg = a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c\nresult = invalid\n\n# tcId = 160\n# RFC 3394\nct = 64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff\nresult = valid\n\n# tcId = 161\n# RFC 3394\nct = a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff0001020304050607\nresult = valid\n\n# tcId = 162\n# RFC 3394\nct = 28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21\nkey = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f\nresult = valid\n\n", +}; +static const size_t kLen119 = 94020; + +static const char *kData119[] = { + "# Imported from Wycheproof's primality_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: PrimalityTest\n# Generator version: 0.8rc17\n\n\n# tcId = 1\n# small non prime integer\nresult = invalid\nvalue = ff\n\n# tcId = 2\n# small non prime integer\nresult = invalid\nvalue = 00\n\n# tcId = 3\n# small non prime integer\nresult = invalid\nvalue = 01\n\n# tcId = 4\n# Non-prime Mersenne number that is pseudoprime to base 2\nresult = invalid\nvalue = 07ffffffffffffffff\n\n# tcId = 5\n# Non-prime Mersenne number that is pseudoprime to base 2\nresult = invalid\nvalue = 7fffffffffffffffff\n\n# tcId = 6\n# Non-prime Fermat number\nresult = invalid\nvalue = 0100000000000000000000000000000001\n\n# tcId = 7\n# Non-prime Fermat number\nresult = invalid\nvalue = 010000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 8\n# Non-prime Fermat number\nresult = invalid\nvalue = 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 9\n# pseudoprime square derived from Wiefrich prime\nresult = invalid\nvalue = 123a99\n\n# tcId = 10\n# pseudoprime square derived from Wiefrich prime\nresult = invalid\nvalue = 00bc18d1\n\n# tcId = 11\n# square\nresult = invalid\nvalue = 04\n\n# tcId = 12\n# square\nresult = invalid\nvalue = 09\n\n# tcId = 13\n# square\nresult = invalid\nvalue = 010201\n\n# tcId = 14\n# square\nresult = invalid\nvalue = 0f2ad9\n\n# tcId = 15\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 01f51f3fee3b\n\n# tcId = 16\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 032907381cdf\n\n# tcId = 17\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 0136a352b2c8c1\n\n# tcId = 18\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 023c3db80e80e53bd1\n\n# tcId = 19\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 0504e8e504fd585e79193ca1\n\n# tcId = 20\n# G. Jaeschke: \"On strong pseudoprimes to several bases\", Math o. comp. v.61, p\n# 915-926\nresult = invalid\nvalue = 00b7d84161830e3f6f2231a7a1\n\n# tcId = 21\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 4c6092d9a7a5462b34e5\n\n# tcId = 22\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 22c9a603ee84bb9c4cad\n\n# tcId = 23\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 437ae92817f9fc85b7e5\n\n# tcId = 24\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 0190e262098f0d746505\n\n# tcId = 25\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 027a5f7ca7b29ee74d5525\n\n# tcId = 26\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 008d60a89f3f36cb1fd495\n\n# tcId = 27\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 02be6951adc5b22410a5fd\n\n# tcId = 28\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 0292a0068ebb0ed3251f55\n\n# tcId = 29\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 750b703e68cb957ab415\n\n# tcId = 30\n# A strong pseudoprimes to 12 or more bases from\n# https://arxiv.org/pdf/1509.00864v1.pdf\nresult = invalid\nvalue = 02d0facc78aeeb89f5b299\n\n# tcId = 31\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Maple\nresult = invalid\nvalue = 09bdc1c98b9b\n\n# tcId = 32\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Maple\nresult = invalid\nvalue = 0ffb48c934842b\n\n# tcId = 33\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Maple\nresult = invalid\nvalue = 18444fdb12afb7\n\n# tcId = 34\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Mathematica 2.0\nresult = invalid\nvalue = 08e4f37e51\n\n# tcId = 35\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Mathematica 2.0\nresult = invalid\nvalue = 179d55b600e7f1\n\n# tcId = 36\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Axioms primality test\nresult = invalid\nvalue = 085270bd76a142abc3037d1aab3b\n\n# tcId = 37\n# Richard G.E. Pinch, \"Some primality testing algorithms\" a counter example for\n# Axioms primality test\nresult = invalid\nvalue = 02cb78fe3f36c4f5f05dbe92b82798d5fc18f2bfaaa388ef\n\n# tcId = 38\n# A composite q that was acceptied by Gnu Crypto.\n# http://www.iacr.org/archive/pkc2005/33860010/33860010.pdf\nresult = invalid\nvalue = 4682f52f0b54308d315b2fbec25065506c77be95912b137bc6eecffad8a299b631c55ce068702b1b3e4ce50958994c289b148fb298a8c603a0959cb0ba5ad4bcba278cf4c87e0ff85a62a25c40849662c53d0f81cf9e4431d8c391586629260e558db473997db20108278b1ae374089140d93bc2c5a808ad3aaf212f60bfc93cc0c788149dcd82f7ab\n\n# tcId = 39\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00f67307e54779cfe9120bf862afc5466c5d6d0783d12df5215c0c981c51e4bfc098e9afd574f51b18c820259b692ec0bf7c9d6e56e9bb99fbd3b7ecc4082146a9d7a5b7bc6519d476c4a9975d9c3e3b12bee45b7accb07a6a68ea583ac2523ef32ee6d01bc766b59c43031f9c6980c9b4317da6825be9f7c5db03283d04c13323\nflags = WorstCaseMillerRabin\n\n# tcId = 40\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00c1d00b32d63e3ea4fb69ab6b9dee40a17fada46c122e52a53fecd3fe613303f51c07871dc0b5d8d8c1705b484de6bdb7f442efecd7d9f59dc36e495f72905c7619bc4d3706283774e704a3adad7d6c1be42ddeffc2ca5b1c0e31b58ed606f16dc14676e60ecff42ae33e503621e232ba449e91e3a9909e80a8318610aea3b7cf\nflags = WorstCaseMillerRabin\n\n# tcId = 41\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01c2faadef91d43c9ab1320020e08e2ec3c34012bd0db94a1175170dc5aec26897e867d0b7a7273119fbe1115f02875b522566016f69f319ad5485e7458fcf50205d22ba765cc586a6037be987b6832c46227df19cd8ce0641794b60b73fbdd3c104870ae9bdf0194e772c985536e860b90b7fa3eb205af6b224413f5813836abb\nflags = WorstCaseMillerRabin\n\n# tcId = 42\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0109fddd44575367466c67aaa921047b367515c9aa579eb60728034ad2d56f10eb01cfadb3ba0abde99f348bc3c70559bc24551b85937ca4c886abc0826cc1c310f14393652c1b4994953881bd2d81de0f2a280839829543f429bc41bf3c6db120bb150173e2707f36d1f76318249851f4fedc39e36aaaca48686de03e6d256973\nflags = WorstCaseMillerRabin\n\n# tcId = 43\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00ffd0847cdda5a4fdfd2345bc731f1bc77843478950d33b2830ef0caf8deffdbe6309fe61fb67dded6659e433f30363339dbcc7c0832593f33c24a8b8f0e28038cb6edeed58ae765e6884ac0b66b5218cc758e6247269d24be9f91865d33c105219ffbce00c6c2d6391448643bcf5138268f510258f638b90a6c8b53bfc121759\nflags = WorstCaseMillerRabin\n\n# tcId = 44\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0118d077827c6db85bc61d53063edf5676d6ac65b611d836eed07ee7e1d15c02d999a3eb78ce662edaf457f0f7d9c0a0305acc1faec4170400f0610a797de50ebfb08fd0a5da77144a1e0236e2bc6d8d2a6a719e59df071367cd61275f372e23b1c0187d87d15bda5f71f4705b1c3aaaa8ad951d20cee93274b151f3f9a55bd693\nflags = WorstCaseMillerRabin\n\n# tcId = 45\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01c09377e15f53b1329b6e8a08bf0f94da27dd29c89be74544d705173a0bdd410935e186dd95ac113732674fe08585690ebe9f749a116a8c64e1b4a281ef0cb28bc70b1639bc1352ff5777783bd72e3b8495c1494ae11fb32bdaba8c80870a3de71c0c27f07983e97500c0ec0321b86c679c53ae7f8c76ddbf6a9cc3ff63e45023\nflags = WorstCaseMillerRabin\n\n# tcId = 46\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00f35cac3bb3c7cf5e4e50162f4ca889ac7b875f4aac08c5a2433600e9bc64db6c9895aaccf3ee98783ee2cfd8a5e448b265bbc4cda6cb80d487c7967d5a6724fae1ffd27c70f579e62b49f29819c6221d7659fa9364e8e37795d88611506b552a20533f1f6446a35b41a986d304fdd7a39f484331b4fbf242f95b80788cff39cd\nflags = WorstCaseMiller", + "Rabin\n\n# tcId = 47\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01e9df6f069f5984c080087127f90437f2d38f19385b3592d17a5f23603ec6315c36a88d2012e85eca62a983de7ef27673c605155b5647311840cf8887be8267fbc01cec3f7e0467d5e9a812e5dca577cc8ac93971c84f8cea94637c60c0bfe5d7f4b4f950e60ad077941190afaa905d6d5d570c9b4dab98c32c7abc42346f894d\nflags = WorstCaseMillerRabin\n\n# tcId = 48\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00c5286502dda772fc22d43b0a2f46823777a91f580f3a1261c47be8e2010a5ad9395e2c036b32813dcdaad33c8f2f4a522593e31ae55ef05c8df8ed58636ac1b9db2b205797d39343e0868ff02bef46d18736bedc6f527730da8594d45d0447e7c7f0e8ca12b285b88aea5e343264874ac22038f5821bd96519d49caf45184f97\nflags = WorstCaseMillerRabin\n\n# tcId = 49\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01c29fe8b7e63795218563774685b9fe85eada73691a6420c38f0e9f2f802e89c77ae78716924e4efb5e4c639ca98ddb0c9e35cbc6313196b3327672527404b6da8ff7813915702fb7fa254c1cdc167a34170da57606ccff876ca0ce5e920f443e389fc9d0c071b908c6675b6a9f5903d6d22ad490e6476a7e13adcaf988663b3b\nflags = WorstCaseMillerRabin\n\n# tcId = 50\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01e8648f8abce82efb0afa9861c96c428f690c5fe33b9c9d47f97198542c982e607fd9700f876159ea404983f4eecbaf2a73b262085da4b7b5de8f6e8ca0b712f5e89c0e8f024033879f858f814275a3ea5543fd539e74f5e099769d0d726ebd8bc74bda6e2f8ffabbb7d043f7818cd8d531180a827731fac59f45b2af35d273f9\nflags = WorstCaseMillerRabin\n\n# tcId = 51\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00cedc5db464312d6f1ecf53a40bde07ae0d5540ef75a4802ff469142270049dbba2b74e4ece7340d8eb99bac1a3d6f0b52ebb41794d3cd4e4a588431879ff81818abc50bca5e686a06d48461b425be62d3c064321429e346960163f897d21b362dc72f306a6865cfb9c8c5682cc7fcd7dc6ac4202e8d070729ef9e3b526236c71\nflags = WorstCaseMillerRabin\n\n# tcId = 52\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0093ec9e6681f1bc1d6534add99d97e0d907828996bb3d7b481f3ceaefbe8f3fdf15698302ce26feb84c08994079c9f368af8171faf76801fe6dfdaecd587fa0edc751d64ff7e9aa73fb7aa51a8469379bac38e9d7941e0bbdcf658633daea40738e81f5605198b04fe8fd49646da4e98c2282a8041c25bb9894252412472294f9\nflags = WorstCaseMillerRabin\n\n# tcId = 53\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0129fffd0bf1827f2847f45bd490d5423f67d87eb8254535d57078707e19f2ca5ca10602c5eca552fbdc77e30592b7498254f901cad02e0bf59802f5582cbb3059a1979a5e5311855807b1cbeff86a651dbf3818c3b6cf50092c9b744c4831873d1d0d8c23f23b39517ce435a257e5026cfa0be280672e1bba3074b2cdc6474a37\nflags = WorstCaseMillerRabin\n\n# tcId = 54\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 017232b942eedc8a0df14f5c1ad4e099f192b242b7d3dff09c50cecfe636c72c6c8ba1c65dde4396282e1a1c823b6d5d9c0c9068b39e202dcba26a9d35a00b7bb6bede272820fbbba503bc1866c6ae183d8b50e28555a921121929862ce87ea4ddde8f9d6ff2e17a8ee7cf9d306faa0815a4d46e8dfd4b7ea538b7399cc1c06c1f\nflags = WorstCaseMillerRabin\n\n# tcId = 55\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00d3768b43c242fa7ac1de856dc7bd413b79d544bb8d38677bc9f44aa116ac5525c3e7fcf2fb2c1d3de61844931f47646b4c5f7de226031c925acbe57f1cd292fec7e7d4fd25afa128704ffd8da910ef18961e081e88d40bc37582b087f1b1f39fe4d23a03ec6b869c76fa3aed7a3606c469069c4fa1d4ff1c6112da16ba9dcf97\nflags = WorstCaseMillerRabin\n\n# tcId = 56\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 011b5119e5c68a710158c36d414597b4e1ccff332d1b437a4d2da2d2269ad2b626fde79e3ba7ed92128e5feaa87556f18ca6937b5a88f4738608d6bb6aacaf4fb719d67561d66dba9690009bcdbea2db4ee48d575722cbafbf1e487bab1c62ba0cde30a34620c7733b3e13d8b27fa035115680fb81016d1ca777b8a2bb7c399a47\nflags = WorstCaseMillerRabin\n\n# tcId = 57\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 008e9ee596ea83d06e1a9a4c3b75fc67f3c01de737be4dcdc18f1d10e322df48e455546ac8ac810129dbcb0fbf568987033cadef9d051f6032c8dca2804fc8d8d6e79f5d767963e4b6d72ac29d98d2520c29c8e69ffa59164d6a1e4cb55b7fcc60c7cb274da264203839873ec2f85f4ae377eeb6189e031b17e8603a01ef877b3f\nflags = WorstCaseMillerRabin\n\n# tcId = 58\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00879d1e0bc0538cd9025110cec61a034305c8fdea2b9709ba80b0c45891e7ffc69c05285f4680b95b5882ad04210342314d3ab465ee1209d0690613a09bf7df0d48de18a7200e09e8b7944e748413ad64057fee2daacd099dcbb19920429cf9776d939c27c74c3adc8c41f1001f98d5293e018b1dde228abc6e79092331804bdb\nflags = WorstCaseMillerRabin\n\n# tcId = 59\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00a14d02b57eb643499b92b797687a69aa809fc6c5b56be581de2f8668d38936c9921a16c921a18ae91bff15ab595897416ebbbde977244dbab4779d47bccfec14b1bdb255597bb9bb70e9372fc9afe475b2f73754daf575ef2dd565dfb4216208141fa99df428417d84fff2c54b1fba037a4237bb17b07ddac0f39209f83f8541\nflags = WorstCaseMillerRabin\n\n# tcId = 60\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00d11e471371b5ce0473a80367ce1b0baeb21d8f8ddfebf1116f3b3721247ec85f6e2786467b63743af0885e69c59d674d2b1a4b655ab15d8003be755fabd56f60ad3a7d2a5edbe942663b882e8c1d9aab7250a45b93feae3f092e8819d5cc2c0eee2cee0c6a098a40331aa12a0efc384e518036d382e4e231de3cf644e8aa8b97\nflags = WorstCaseMillerRabin\n\n# tcId = 61\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01fe65939e5a1c520be98522b1ebbd40e4c030adf0677c1878b1b0a58b72873eff6f58712e377457ef467bdbb4666e2f8a4733a13a065aa01e3f5f0cc0fbff0e8a2eb2d8d43b9f2a4931d107315943fa7e1d304f98838903897cd42ab948f7c5ce31a9323a35bdc0cae10eebccb5f318a1239f9b9609d45387805524d67e216477\nflags = WorstCaseMillerRabin\n\n# tcId = 62\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00c24248b5f6e52e0ce8c9068ba2b5839489d1a4849feb751b627e12d13722fd5a00cf4597e63c9bfd1a275b68489539f2b0bef36a09504d7539d0e1a346bc0dc5fa2c65c4c23b771a9946ef5bda403dcd27f496dc02233c05d7d7dc73f6438169a0bdc510bad2ca105d84c2c8bbf2a44c4d7d4d0ead980c13bda71a945d1f3f01\nflags = WorstCaseMillerRabin\n\n# tcId = 63\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 00ab0ef4c1c3be6b7bb39ab0c8a1ffb2c12f8a2fb6c85ea1a8893f452dae161a8decbbc6a84ddc2068bf9df927c0f68a95fff1af8aa9eddd80b0c373b7ea750def2f6df54c0a7e50c16bded071b8d1df6687264e496316be5fcf5f9ab73f5c39b61a876441fb3f467205c92a864d97205032660d6eb2cee3ebfca9649295f6fc95\nflags = WorstCaseMillerRabin\n\n# tcId = 64\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01878ec4f236498bbf2320c89679639394b03dda157a9901f2e07486e64f1bb52f6b4823db13786296a71d6e65ad6a17308e46ddbb2608774eab3df41221eec799fc13ec95b567450abfbae8aa04f3c6361df3a1c01028b83560018b729b5924ee5f03f1306267eea55ab65a95591b105810a50111c9041d20b3ddd389e8ded20f\nflags = WorstCaseMillerRabin\n\n# tcId = 65\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01602a125e7578a82e23051dd12ce12be44f2becfccbd13c2ee18ae1e391356786315832fe9fa6dd5488c83b4f560a5a4b9d9daae4faf0b9b21075fa1b470c7d984b2b43cfca22bc36ec305e52fb4b897445024f2ee536164a5a9a4201db4d9247d4e28e193ad3c62657a91b23727804e8f4bca40691eb41f17c68ab65bb8dd2a5\nflags = WorstCaseMillerRabin\n\n# tcId = 66\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0109a25eac262687f28e560e73bd95be9894bf2a0006dc217e97547064d29be5fae521312fcbdd2949520961abd90b5a2ebcf55780f0d14ebda3c17825089183fee844a3ba0d132cf3db13ebb8f42905bf24374ac29a7b68f93f76dbce3942d4b1dbd91c611d24251b374bd29ae153cb9e23177115dc7003894269328d960cbbc9\nflags = WorstCaseMillerRabin\n\n# tcId = 67\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01962b71c4824f2072f59c73cedfa26a49bd976bba7014005b6feecfc61c90caeeaa05ca8954219165f073bcdb73770846c97383ad1d47f0cf656830388fa5847ab9f542e26226d3e9c2a90bdc23819333bd13803f7520272e4cfb80b5c54c92dbc2936ac75f426babec5b49db6a64cd6eee14ecff0402506eabffc8bb11ec6c93\nflags = WorstCaseMillerRabin\n\n# tcId = 68\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 0102134c13210c561b22c8f2549e0a1786fb85900e3c69c20905cb46a3f633b7128656ba1644cb6bbfa1b5b0c5a5bed69a7802a543cefceb2132e0db7c596e51b88e62185f3815fdd40e7db9d1aed0b0f135b09c4d90e81fcd4ea7a8e7c150147bb2f0fab2d8a0128f25e1e498813f6dc26722a73a441d6e9ba4f488d96ee6d399\nflags = WorstCaseMillerRabin\n\n# tcId = 69\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 01ecee4b07f4311afce14524ab060a72a7198499342f099f681dd6b8a366bc9550a7ddd3288273ef59f62c5daa55c9c4726c78f08c20e0d9a74208db52f732377bbd8ca8f8f1d336bda6bb2defab66506c0db04bf0d", + "d6f7179f52cfe9c5c91179de1c03eab017d7ff867478e45386955c7a5a744e7f8dacf738c80352a99226777\nflags = WorstCaseMillerRabin\n\n# tcId = 70\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 019fd1a5266cb6e8dfcff2b755624ec26413d25cf53a9d4341ff5c7b0b4e06e8246e6e1063e185b05d90f38637ca69c298d6a834e9aeb06e02afd001897c1fb097c905445b2e6d27750cef01f40d6030f0328eee55241137afead4f8d358d0be0655782a60265f0b9aa30b275a32b60bdb252c95d8d69b68e8a1e07c2374029bcd\nflags = WorstCaseMillerRabin\n\n# tcId = 71\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 32fa78d5eb67eb14a53de388e9d03ae6ebeb7ae017dbae8f594b95f82f6ec380d5162f6f498d0cb61bb14d7ae54fa1b427c2a1d819133161576864a86d039200cb22c5d68716fd0e2b8f021cf25e08506d4ce285536bc6a074edb6d9b4a9dc01fd79eda19efd3b168eac045b6a4edc4c880de430dadc5dd3f32886b88d320505f5f0b064e46be0f1e31c57dd160e89738a4f6897975875564f20f82ecd4cc0db\nflags = WorstCaseMillerRabin\n\n# tcId = 72\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 5954649e58b4eea73bf1738957727ed4f356fd14891d95b81c7cd40a9ae4b9f1a807fc859d4d419e9a2178a369ae734cebf3b6b9b7069570515a94b5609585625a7aab4e2ff05566be39860b1c2e41910a07b46a555299a573c50b82572a8e40d70cd5949c0c5488582cc2ca544265e1e48ec5501fe611ee65de54946f4543ddd94f5d2c100fad681b6390924e3dbee62bf78133bb2ae6d1592fa5c4b0873635\nflags = WorstCaseMillerRabin\n\n# tcId = 73\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 282ca88061946bcd2fa15fecd98e61505b4c98079e5ffd08e9797059673150435ed47f6d94311c9df4ceadce2e13679b4eb1e7120f9f19d7ac393cc090d1885c88136ec24d085ace42e92ab049d8cdf963d8ba7b93b25e3c720367fa9d7d3905eb460c6922f53866fe439bb96f6d5213e66ede6239512bf0c2253ae23c3ff9915dbee4eaa576395e2d6986d40151cd8fe4c9b4d990ba17ec4bcdf6660459858d\nflags = WorstCaseMillerRabin\n\n# tcId = 74\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 2161895b72aff5d2a865dac7e95cabaf7a28010da0dfb075f9b25c189821c99c1bb599d47d6a688254401511cfad26f1d93f254a3be2752a70f7859acad5e6f741848bfefe449072365616be7251781063e8f8934b59f1826341ebd0839dcf72b1735e21f35301313c683d28fb637f6f93453f575330f74e2a0d661ed5fe54816f8cd38b162d5e769c0bf94dfe83e25b6c05b7705a477ebf52ff4deb6bec6aad\nflags = WorstCaseMillerRabin\n\n# tcId = 75\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 71f7dff1a6a0fd66d5228398a7ff1707ed9f83b9b8c660ae57ee4dd40de7493cec1540e50b4586fdda98ee538e6264fb72f51682bb7bb5305285c287f4577023b8350a84fb088005e36121d9d137b16c4528b4a8a3934db88fd27128733b5f9ea78bbaf239c93bd9b6b4b1fb683e2e2ea911eb4da824b5650f186a7304031b62fc145a9a20a269079ba598dbd183f29a2f35a46eb05276b8ac99a8dc72d76151\nflags = WorstCaseMillerRabin\n\n# tcId = 76\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 55654725a248e323f3d4050b87acae89736b85dc8dd45a9c143b001685c72a70996f3ce99f40be4cdb83b7b420b520e7fa001eecd49cd43c31500c7c502e8c31e309026c07fcba386f0905da79d34b855861018af444fbd519736483fa79ab2d02182a9f0c0e514528f38cae7ef7668829b25d58b569027e4f286a71c1da3d9257a72a234ccde58d1604954d99115db265ae13c012125b5f317ab3297e5ca3e7\nflags = WorstCaseMillerRabin\n\n# tcId = 77\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 6af6ed1adb0d772536d2e80f9f048b9a94cea70f6e15f37a6b5cac22794826089a11c8fb421b3bf8c108bd41a3cd7f34d09466aadc8b043a51b0b3e9c18e0c96e4c703343fcf68d45d5f023bf781de530a1d7946f4d2bcde9d7ef44374a2ba94ad56777aa113abb19b57d4802c18bedb58157dcd52eeca7a3837e65aa97d95f3b757e7eec27a5f890f41399aa5c2831f13a724d798aeabfb642a011c52a7c70d\nflags = WorstCaseMillerRabin\n\n# tcId = 78\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 344b4e93ddadf36e039a4e97783a18c3a84f3d725d5f496f0b3632fd15b1a0c2ddf8f97a0f47401d0bef33c32ef36b2819f5d0f72046ab8bdd68fac28397d1906a1923f5ad96483048254e931a6acb5a3d31d4953212aa58c2f96e94dd5393f1e830e76264af68abfed551f3ff4e8d3bfbc6e6cb296befe2b9d694db4d4dd186cfcd6d697c7aadd92277f9ab85e000dfef3085cd52418d0f9b11605a64719003\nflags = WorstCaseMillerRabin\n\n# tcId = 79\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 2947f606c39ded9591b3314918b7fc0586888d42eb0a8d68bfa0890292f83f948280dc92e897c59de2477340c9fb288241737213d63d006a64b5d9c36b010164953fc68b3e4c7d70e4837b707a2b4b3608d878c7e5c122665299c012e2d5b3630b6862b87e4c680cedf13a6fbcc6eea8ce2d1fc394aa2327d6e0f41c4259b00fb8d8922b4a81432a30f7adf6477b5c436102c83bd1896718d8e795cbd5c30b65\nflags = WorstCaseMillerRabin\n\n# tcId = 80\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 2d586d8d3e1a38f532ed17011ff9d397084633faf6690129eac51e092c67217fb23e6d08f9cddbc38f7b3fafc308f23375df556f68f8dce22247da756e8aded669cb841b6be2fe5a22da4c0d06dcc6d6fd899d294ad0f62de03a7057e56ea6836ce8967d929f4144c9955460bb924fc32f5210919c79e9566e0552caaa130b6ab2e9be086fc97659bb2097adb0ddf82cca17b472ca511735499c448a8301f379\nflags = WorstCaseMillerRabin\n\n# tcId = 81\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 4ae1078c81d196eea211f9c4f762a350b4c060b4d3630bf7fb7dddd2739986b9de2422c9902e5870b3760be7b7926d6aaae633cf0ca9c0e78a2ee03fe193675524e0042073d3be737efe994b7bd93382bf8426f454e4a221fc899764f1059fa30b48ba6db9be33c92e312e449d190b3fa2f1c731277286fa363ac8420668239e0bfc26387ba329720bc4ed0217a772ab214a60d8d2d0889d887960383c420595\nflags = WorstCaseMillerRabin\n\n# tcId = 82\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 4acba34e2619592d5cfdbbe195d2aa9eed8762ac0a8336d947c846fc97d1d934c1ff42f1254de674990f76e514be53b2755cfb4ac52edec66a8127685c8e77e84b06bcfeda0684fcbfb20e2ee05c1202f3cb897bfb1c44bcb6301a9843f8e8eed031a1b4eb913bea04f13390ebd2a033ed151ef8b49b511da558e56cf1e3ac89545219ec026b3938ba9732792a1c89ca6d38c3c5e0e400af528ee477ffcf2ad9\nflags = WorstCaseMillerRabin\n\n# tcId = 83\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 3d809b8c90e877efa20e031ec99d825afc1c1920d8b94e460848b80c3fa0a093ddff5c608963ab74f505a6da96b8068c2c2b3bc1676170dd0c2e65adcaf7cfd0c6b0309634961ad0c9b7f75e2f721f1f57fa9cf5d4f41f60b2ad3fc1d213b8e75fedb69ad157e24ad67f2ecc4099943e19ecfa7e1a34abb9f4bb02cf205906dc159c258973267731ce59d16552d372b9b47f0e630ec677711bc13995e00a41c9\nflags = WorstCaseMillerRabin\n\n# tcId = 84\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 3de7d0bda6eae8145cc70591c4b78b1dd8d9ecc4a3d7edc1bbb75bf0e98fd3fb8d5cd4e94e4cd3ee246617b22426ceec6981681af9f7e6af08bc02bde7cbfa13301f7b88f607e1751285c4a861af2ac69f20d2d600e27b0de873b9ec7bf2cd0725b31032932f0f817084b347852613af9977931e2b3132a523dcd87f545805730b34db29c8c8dac9df8a50f5aa1e36a056ae41b01d04cd9574acaa98203d84a7\nflags = WorstCaseMillerRabin\n\n# tcId = 85\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 5e2a15c7d9bee2668dfd689d027bcc37743259309457147ee7785bb3960dae3c8126655cff9e1302086adb3d1c962c3390f50ca3bf5f666e8a004930536c0bedeef4e8bc3f4dedafc3168692109a239a7d4fbd3aef9e6e0c8665c6379caa6ccb05a6f941782379fb13990f2bc104dc7e0007702c7eea3bb7ee42ffb5d570570b2f5409ebe76d7244b1e8392ccabbfda22515beb0bfad6c006c2a02a5e8526763\nflags = WorstCaseMillerRabin\n\n# tcId = 86\n# Worst case for Miller-Rabin test\nresult = invalid\nvalue = 550fda19f97cdfbd13930911ef6e9e1cb2b7b5215a35c215d51ebffeb435642174cbe998f4451bde2d4bd2ce92ab5b9493b657f1d77d9ad4d348550247b903906109c608ecba7f88c239c76f0afc231e7f1ac1cee87b4c34448a16f7979ff4c18e65e05d5a86909615fe56587576962a2cb3ba467d9806445a0f039907601af77ba7d07578eff612364fbcac11d35e243734aa6d9a6cdcf912a2dd0a12ba7e87\nflags = WorstCaseMillerRabin\n\n# tcId = 87\n# A strong pseudoprime for the first 46 primes. F. Arnault, \"Rabin-Miller\n# primality test: composite numbers which pass it\", Math. comp. v.64, n.209, p\n# 355-361.\nresult = invalid\nvalue = 00907b5573c3d72ca5afda9df723d24066410e3d2b61f89c5c600f90732d0ad7db06a02e209f6792b609fee2ac6f3d73a5805f2b30642d1e2654f7ffd155153e5fbdcb17c76c27fbcc15010ccbfa7a1737cdf032edd5da7edebc9703e51572ce452c2319f1d91bee276d3e1121f9563b1700448ff37346b5a88098c9a682a59ccab86401aeeb74c8ce45dbf8b5\n\n# tcId = 88\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 19bc037ff6b1\n\n# tcId = 89\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 01933ecb87a0c1\n\n# tcId = 90\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n#", + " http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 021229a85a2f91\n\n# tcId = 91\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 032d4a135c4d51\n\n# tcId = 92\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 07277d9f8417a1\n\n# tcId = 93\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 194f\n\n# tcId = 94\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 0149c3\n\n# tcId = 95\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 1d7503\n\n# tcId = 96\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 6c7e23\n\n# tcId = 97\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 00f1f8bf\n\n# tcId = 98\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 0ebbb74637\n\n# tcId = 99\n# Richard G.E. Pinch, \"Absolute quadratic pseudorprimes\"\n# http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.210.6783&rep=rep1&type=pdf\nresult = invalid\nvalue = 127c6e3a4f\n\n# tcId = 100\n# Safety in Numbers: \"On the Need for Robust Diffie-Hellman Parameter\n# Validation\" Galbraith, Massimo, Paterson, https://eprint.iacr.org/2019/032.pdf\nresult = invalid\nvalue = 15179c6582c2a8c42af5\n\n# tcId = 101\n# Safety in Numbers: \"On the Need for Robust Diffie-Hellman Parameter\n# Validation\" Galbraith, Massimo, Paterson, https://eprint.iacr.org/2019/032.pdf\nresult = invalid\nvalue = 00800c6ed22988e8353348f28123408551ab4ee482b7961786ea4d90ed7d48bf4cc5bb0d7fbc0346e9ca2dc215540460df3c24bdec561ba766de6d618ce42fedb4fd84a67c5ef94323bfe88d9f55e1b111151edadda5a91cc0056b78c74770ae7f5a1af3741c92af4d87a70f66246fcaac1af0556b0a0bdd511822a01a4b897f0d\n\n# tcId = 102\n# Safety in Numbers: \"On the Need for Robust Diffie-Hellman Parameter\n# Validation\" Galbraith, Massimo, Paterson, https://eprint.iacr.org/2019/032.pdf\nresult = invalid\nvalue = 44e282e671aa0c4f85ec68b2447bc29caba0ea0228b2fe7b08cd420955280bcf0ad99a0efbb8688b3b71a90a8f6e4b01911c689db474ff3685813fb2c943ce664f32d2dbc3c07387dec550207461270c323ef25c0992449e142ec3d7c36cb876492ee6a8593c4aa8e992c2f4cb394a88fa7aa9c98dd1c9e18bcf280332fa934b\n\n# tcId = 103\n# Safety in Numbers: \"On the Need for Robust Diffie-Hellman Parameter\n# Validation\" Galbraith, Massimo, Paterson, https://eprint.iacr.org/2019/032.pdf\nresult = invalid\nvalue = 00b310aa4e16f59e55df118739db5ac21b65979ff5acd1cd4839716a63eb4ef966afe8a04a877548fa281a252c8a1cd4e62077f2ef5022e855d60d06a24a91cbd042323926aaec1f75fb4cdc4cbaff3a4275903c226d5982c22740e17d3e0bc7bf5bc23e7273b3bf86cad8498e79ffc43054292f38ee035fe9f67d6c542631f833\n\n# tcId = 104\n# Safety in Numbers: \"On the Need for Robust Diffie-Hellman Parameter\n# Validation\" Galbraith, Massimo, Paterson, https://eprint.iacr.org/2019/032.pdf\nresult = invalid\nvalue = 008126e1b6c59a80581221ccb272046804dc8bf7a2893ccbad9e61267f9c56ca5b\n\n# tcId = 105\n# Safety in Numbers: \"On the Need for Robust Diffie-Hellman Parameter\n# Validation\" Galbraith, Massimo, Paterson, https://eprint.iacr.org/2019/032.pdf\nresult = invalid\nvalue = 008b741e1c47493e2ac2bd5f69f37c01ff0ec6a28e4ff91fea2ff24e2fad1b3369\n\n# tcId = 106\n# Sorensen and Webster, \"Strong Pseudoprimes to Twelve Bases\" \n# https://arxiv.org/pdf/1509.00864.pdf\nresult = invalid\nvalue = 351591274f9af9fb\n\n# tcId = 107\n# Sorensen and Webster, \"Strong Pseudoprimes to Twelve Bases\" \n# https://arxiv.org/pdf/1509.00864.pdf\nresult = invalid\nvalue = 0331ff3562a8d7ff\n\n# tcId = 108\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 046fe40ff28041a690af557734e885052b879535574af06db2b787f926e85880060199697023504dd9c0d0e23b7e01e922538c586d676c61c972e1356ff053e78fdb481b7e5909c7dcf82155d713e915d8cb694a2f46320cb10868f03b98566022d225a97f1ee3cc26794b1e481abc61458146c48dd452ba81d06fab826c3ea58585500154d36c9076b0e1fd3d47222d2e8ae28fd5586818db16cc2fb9449a399ec9c22551448bde17c1e752506464424123af8de6b690f9407aaf52d8d279d11292fca1c32d0d9c3adb061f530fe10eca96e2bb2e4be1f6df1d7130aa21f78d31a312af5bdf56660247d6651168088ba0f1a7e4ec202f8efe5eade78726abf365c735736f578a57\nflags = CarmichaelNumber\n\n# tcId = 109\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0b23c53824cc42b6875b787be423bd8c8aef90a1ccd18f041c8d6164b94e33a5c431217f4572779ef6475407474cb7ee0f49781dda2e903f92f5fe0deb0dabee93d47519b8c2633724e2d2f24062dc79c53add5dcf12a90f389ccd242b82323da265c6db54acbda0105dcce948c5450620166cd27815e22d3c1da9748d4b8640a4a0fc8ba0c11d0ae8965d436539e331bfcb712e4942af901f8e5c5a7d860b92afcb2ac7edd96d715d1d5ebd57232fd74c8bc2e18786aae081704a22efe24b4723b8d7227dc10d5c3e9be23bdd5c646d3f5ca53a3a725bf12009ceb98ed6e83f6ac611a0d582116f4d4caccaeaf150234a88b81b126ec1452dc747f46214d9c01b3005c2bac5fca9\nflags = CarmichaelNumber\n\n# tcId = 110\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 2085249c586a279f9474255a00d50a111cbe29b474218524fd3cb75b69e0737b9598905d046ff24235075e6df5a07a56e73cbbe0093e19386fe253de96569470a474a843a0211a17013e9132bb8a6f981a18d84b4472985936b72e453401b55c3fe3e7b28398964e2d87788edc03901f95411cb4ab849604caf42a924cf2eb11cc21336efdfce8ec322d27d2744eaff0dddf4ecdf6593485b14d7e7ff50b4d30f4679bbeb9cc0a26cfbaedc0c77c9dde1f54b21b3957c72f396bd7c7e2ed236a3b0dcd763ff85ec0190c7419496d4769a5329a9e8963ad3c9326e46a14b888a18c063e6afe7f350eff3ccea8c630fd4a024c908fa8248fe7cf1c3567f56ee45c1963f4b31225e6c3\nflags = CarmichaelNumber\n\n# tcId = 111\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 3dd0b362012faecad5221ed17f9dd0a0b1ea8fc23fa1ebaab3177201f76a8121bcd0310c0bf262bfca1b8f17a5eac72f6eac1102e7d68da9e8374e47dfed6619f39a1f51fee008288c72ebf3e0d7f4484d5d5b12a74510793c2200e51f8ec89e45a41b8986aad68ffddf864f912ea12fb889d937c237efb6dddb49ed6ef02e1d1612926c28a2c6f734350d3cfa600f2138dad662f835ecbf166795916c9347a43bac0dc95ebb8b75d9111a1e1efd8f7f6cc8ed276ad027a21090b41699a1b60f5239e7e7e51ccd9f85d10aea334a95fd09b5467c5f6da9bb10e12f22a577b99625be9c7b8046930cfc16ffae77c3733f528d0aee48421fb658d62deee4126d235759f00dfeab84d7\nflags = CarmichaelNumber\n\n# tcId = 112\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 03263db7214fd0fa5ccb86ed39c03270e0ba52252d80649979ded94b1cd23494533f7d63b47429baaabc9113bf56a785242753301e5a89bd0dc556a173ec596a5f4b93def5f9a1af18bcf228d37b8f615e0feade9b26d498946edad3bbb46183d2e69296a8d96ad6c1397f1e3a64d55c98fe2dc0ce73c3e15672f53e7203d4b658ef17239c4f45b06fc9e30913a8352962e73a47788abc4db223a097ca7f8eb6b404598ca135455758966e6975ef35f077dfb053007a3b63b42f17dc2f4c251aa07ad4f676b2f3c667ff5640470de7fd353e6e62377b0e272f9704f5d4833a9cd6affcd54b0639c594f5f7f1a666c26d6bde51a8590f40201602bb3828225407833a284e618faf89\nflags = CarmichaelNumber\n\n# tcId = 113\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0f8451854b84d14366c21be5b7b331d89b1b83c989feaed6430c5e2a85acc3f2b1a09f3c202a99d5b92651d7a38a92059a9fe15ced0358fde59b492266f69dde4f8301d3e7808d3b9d023fcebffbad603908029251ed8a017effe2427527461d7e0d768bc3d726f540eea4cc1de1905301f435bb7ac49175d7bc7a5ed5a8139d5aa7b02d872c982db49b726ae82908ce331dd74c9c8d8056edf8a366e35bb22189d097124588fa9e84f6b8fc2b870851975e280f9b5cdf2f8b7c780454a2129ce315e74ff7e46961404304725303f07c148bbf8eb864ab8f89f6ed75ea2d5766250659f1e5a2c11492869ab3eb8d880f73bee69c7ce27702fedc1f672186df29d6c579fbb7368d6f\nflags = CarmichaelNumber\n\n# tcId = 114\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 02d248d11dfa04ee4f070722df4c1f03467dd32dff2d18d69ae32e6596567c28a3e21dde873bf6f", + "3410b91a70b8a827bbbc1fa88f3d9c192210c1ae548086023d3ad5a340578af38271ee5bef9e0630b37eb56175cb1bc76cec3cb582bb88fdbe15d5190a5e5ebea44550cb0e2ec9e13098e210910ce2c6372d7a24497e80ebf872e492affade18fc4efc5c2cd34bfed582f06f0da6e969122f22057ce7a9a3474e41ad160db119e82f044319d4aa26419261a1bee786f6003bd6ac854583e7a5489ef1685040162cda798e079a2052fb910f2c36dd9780882738a526a31919420502614542514bf1c4b010ef32cf2e549b0551fb7e0b89cf48cad35ffa29310743d4224fe3ef5b1e5\nflags = CarmichaelNumber\n\n# tcId = 115\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 04b379213847bad82279fb3dc54d60692e9c128c2e0e5ae46d8388115ee6bf47a922c71e02f2f784e30bd81f56578fe16d901d4ac6060a62932e2dc8d349e1c029c98da5c558ac7da55f07e4422902420fe082018cad6f0d7e024318cb3b8248c87b7baa63d2eb1ecba32bd8051f53c285aad786a8eafc0c05b9d7e365495aa8f1a3afc1301d183be73b689b306c3e1851dfc7c91b88faa3e81b29e23c8c2ae86cfea506168b41eb3ab2a2e19eb4ccf6b1dc73055ce8eae17671110f365e7cf1db7f9a11d66ae816300765868b944d945bedbdd3a275e7faf6ce6b84f2de0a923c7bbec4c6e8f47522eb2fc1bad0f73a96345eb133b9436c505e8c2b8382e067c08f0bf33d1822a7\nflags = CarmichaelNumber\n\n# tcId = 116\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00ce30bb03f146cde0da64125f5d4df15d9b148b73caea0cd30bd06d6c46db3e86646994b6dbf12fe32eb708862c0e88000b2f44cbeb2244ea4920b15d82852b3b83ca6fd9676615b1e5cd2f4153854e48602684be12254b6eda528539c0eba1304bd37f329568636335db835082095ab4319374fb2aa0d61840ae25dae3d22d5f30a368f9130595c6edd667f0e6051bd0abf7512e973d2a7fc95abe4da8bdfb138740925d2ceaaeaf18fe2244e656d3edf46f6c1c40d7dd44eb116d321a33a48d0641294eeda8759ff5bafd3301b7b916a089b82a725b15dc6634db88dbc092d9dbed575676126f0a60273f24759b24762926a95669148ae8138dee6d84d242a5e9f2b1cb6dfa1633\nflags = CarmichaelNumber\n\n# tcId = 117\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 01853dddf18e11020af425c8fb280fb606868aacf59fd8365db931779f858d60fe61fa2441591e24aa4e409dbfce513833619710c68e1da623b9a6e5c594f8cb8fcdab698793529d70c4f0079e1ded6e16aa1b42cd820bd72eb719185c61596db069989b88a8cb496f05e6c8b1917db58f145a679468b6406e15b76b25155402acb4742702e8a5d212e3fbae3d4ff06b91ce6de68e9fda7c5ccf9c591aa0035529fb1c8212a35d74ba5e66cf60ab62c47e7d3a53babac9d4406f3ebab673d2688868b301b7da61e3ab9d8ed91b874a68a3678db9481ee2efb17731c382d232a6303b901054a7b22edc92e31c497034c824b6f065a008670079e0c4564684c986f141d71d0a288a038f\nflags = CarmichaelNumber\n\n# tcId = 118\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 02556ed72094c997f884b315d0355be63eacb02a918a75907cd65d8b9f105ecc13412a8b4f7a163fd00f62ba434f42d90ff5b30367e9cc21122859ad48b498cf72fb0357672ba88e362a52b211b5b317bb6300f745063bc3685a7f4ffaff32018ecc80f44cec94faa3f35babb50de479433a084662009e70ee4258dd6971aa0973002bd507b4a20e8befde99149b4b9036191149399329e39629b0ccccb5b1760c5ab6f50c32a3b2c1d5f85ca2d33a926ee7c7b35dc363d44d5062edbea7051c4aa38064c196394be4b1b16da35131b02c04bbfec11da64538f3922a582f423071893c129def2be77c738cb37d4ae35623379f6daf129fb44625616ddd886ba1a78c12258f9af7bd\nflags = CarmichaelNumber\n\n# tcId = 119\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 078af4b6e56f391741bfbc899f3fefd5e20748e7816657e70318f16445f27366f67b931062a8716e3545024edc4d6bdf151f59770772f45fbee812a3056ef42583f37b6f81add2e0522dc11d23f06814f18b379d139cd3773d3c0bf5aef4c82f1dbf69d34180a7720a029f6b283b46cf045c115aae9e5a403b830000c42d592ccc42fb2c6233466e86efb440716fbae0e696114b26f73f8c42f90dae82171ddf96e0755da67c788ef523ca0cce19b432200af05b7314639ac75d26b77d86e08681917ce499f71e8624607217287d0b45898cb69f1323f43abbfbbb758ec3afadf998d27bf30518c613e796bd5f1b7170dac0decd5ac7ea8bc552dc40e2106ce5f793e32bec01a209\nflags = CarmichaelNumber\n\n# tcId = 120\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0b9c27e0c46f3de793c85f2840198e51d3c9550751a2dbd855b364bb4da35fa13871bcff3a049631bf9586c5b261626be4e9ed8865b4d9dd435b8b4731c5c9ee7fdf298e2bd6f7a661e360cbe764a7b7a3723fc8df5181b406bfb787dbc1c2e1586f88261af47c8997e71e79a5ebda4e01d5b862f4823e919c4b07a3e1a94acf139aac80d490b8af449d88a9ad1344afb05323d7400a53d17d28e8495ce7b17d182872eef67479f99cf2e8b9abc967618365a4154b4004184db43cfe2476de3f15301708f576712e8bdbf723857eaec4eeccabc8763e5ba2435c184c155909d4ceeb7e34a8fc0acbca6decf8bdd360c63ac4f5bbc307ff2a7ea9901ff48c12cde5b7544ffe9ab55209\nflags = CarmichaelNumber\n\n# tcId = 121\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 3c30f69630518ab86d506ccb13f843e64e257e135e68aba14def5c7ca87fb23f606d9a21b43825d46d3249372f6a6734741d9e2a8761c43f151defb35f22a58223a4ea1b512da6741523247dda566b8ebcc070691541e58293b39b3ac06d4055a652d7e599e443ce5c59067700caf6c5c0a9f75af9a1ea7ff95720485fbdd3eb9e3bc28bf26a7bd1f8afa77c99669254e5b88b056af64002bdcd6e1ae8186033c2ba2a92a2894d6a4c1ff15bbf70b8a5773750b8b96976ac93ef39f50b9cd3c54f81c65953629afe6cb0944249d0ab99bed92e57b79244948d03681762661c308ebfd0cb89d6e7925ad2c687b8f30b4536766fc28bfb8486e3791055604b3ee95085cbbd0b328f7f\nflags = CarmichaelNumber\n\n# tcId = 122\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 41307dac271321e285ffc17e39f2288c668bccb8c967bcbbf86cf833709c6245ee0d7d9c16a65fc414b94ced362790411f378e2221b8522c57da51379f50323f2554ca3ea1b79145fea625ccc2df919cb31a06ebbcd636e00e293da1dd5a6b288fc3d5c5e68491beaa8be6fc815c64dcec6e12963c3458fb57090d6c2c2c26b77606c593d711ec498727cf7fcf362e46f86f24ce85df786ffd302e0d927955e691c5bf2a0ebd9eb8c2742fa8648f82b3ec179b1531749f05cfe67f3559f371bde2627542a7b17262d48fe630fa7c59495cc7edce5489319df977405fd2042ab0a56a62d478115013eab1eac6b37f6de1ae7591d4cd15fa344b05bdfd996c6a200bd2f588daa779\nflags = CarmichaelNumber\n\n# tcId = 123\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 131f432c0f4e8f16b2e068bd41500f4ce67285268d21a1888ed5c13225a2890e17be77444f9c9ebafe284c2d36c6f66fe4e3ea5f64092eec66dec3c6d1b80316517fb0908cb67d6d4d783dc98b113f456fd6fa71f066e2e9ef2d5b665600901e6c4f304b2c230eee34c3516bbd547c45d4af2f41dbb6fcb6fe60c76285bdabb82ae6cbac84119d8783a7341fac7872629830a20c17cf5131d2d5d0474a42ac4972d1ba0cc5a18c0af70b6ec820b7d2dc34b94281800112ef1b676cb06ff6be14cd023c3c8e366d04d14118d7299d3aa10986dd1c2df41f19df9cc44fd7c2abf22b59693303555b33210c4ff4d120a4b8f8559e3feaab4ff80b0511f296db95f67ad6a4b0e886f7\nflags = CarmichaelNumber\n\n# tcId = 124\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0735440b7d3e3aa4be783bb912f644624fb7da694d092d0d3df1d5892dc3d40f96c2e5b5fd3b537a8f6c12b1e1b5931ea92a7ce957f5d08682c6828e3f864e29dac8c2f3f6a4cc1d3c58eb5513c4bccb9ef9da3ff6db38547563d34f94299c73baf7db8bab5a9ff94edfa55d100bc1c1b1a17f75afa619c577019304887914b70fc72c25c7155085dee797fb824b5cc1d4794c26810662d471acdc625949566d06b734408f47a22ee2f9d3566a200df16ed0815ba6965a1ce49b91708c9c53f61db16d102a6fd3d8e1de82425b50d0ba726aadc4013ec0aa8fb0d0a86ae9b025c56d99c9351c58987e89865cf029e4758aee4b03d2e4962ab1e702a46a95986ea380ae3a5e4d3d8f\nflags = CarmichaelNumber\n\n# tcId = 125\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 027b903357d9edc25b5d45218e0ac3efa2851ea54d84ec92269fac38e533e41ee68a36f86e96d2582d3bcd16afcb7fdedb0a58fb7ff8c94397dd1e1abdec786a4f94fd3acfe15a50f045c2b7bf614612afc4683e0d39f5b100237f52434dbb44eb264da762557cdac6f4aa651f0fea7a9ca7a04952d6f9b0031f2c2f318325b4b84435433578478cfc215506e9a524a8dfd9c7cbd71c81151bc25681261da8fac3220ab32c5c4cc4d94d0febf6353396c6324fc5ed2fffbe6155a63dc74ec3a67f4a38c6f138d91876783d1b9390743eb1503887b041a1f47d1ff564506543ffef691fa56794ffc4258ac0e7aef7e5ecd0749800c68c8835fc8a3e7118166050bde3e9a4e110df5929\nflags = CarmichaelNumber\n\n# tcId = 126\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 74e23abe7fcd90a7c0744204a47059f8fe6f4a9d9fdcd011539c97919129f6f46f310ad14f3866d7e82be737cebbcd72b4f1995941e1ab96db7c563444158bef8b60de6b98aa76549fa9eeeee8018485bc55f6f9bb8621321072283d9736acebf0c189453033879fd38f141a316a80f6c2d5d2df7c03165ffae733ac0f060d9d5969446dcb5ab8cad9853486707c1b373f4144a61d1a17a23b3f1171fd06359b98a3b26e4d8f4cb7f83e91bdf9d7a271aec906f596ab47a001c07e78758f7c0ba25857260e3f91cd21462594138e6bf84cf1c0cf60a8ece8cd2e53e6ca73305428af507326babdf37e29483bbcc2b6ee7b058c7d9fe0b407ed9b491ee85e001a4dd9175a5047065b\nflags = CarmichaelNumber\n\n# tcId = 127\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 010ecf0a6d6fdc6b91c46ed", + "7fba35496708c494b8772bc007bba48958a55e584a40c9a34598c31ace09afc982944c860f6794d5f91f5d07ac3f79758aba4739b592146dfc4aad9bad99aeabe97960b7245b3e62e04f49cea54b33ab2caaefd84fcc202902da5e35ea446c0057d6015833f4e63d793cfd6192cea8736c0ca4a6c4a7a9cf0d3c8a5820384ff1728ea09900c0b2c3eba1fe588719e7d1ddd750508b28b4c5fed49a03b250a424260ac27ad46df6b08554c09b75f80505c1f31021fffc5118e40f523fe2ea437025acf3a8e6a23ea6a2863b460ffab45e47a00c5f8a01427e3986cb7520b549db4aafdc9277fd122787808b519d4d7cad2d225b5c85f253e9b5aa19d7625\nflags = CarmichaelNumber\n\n# tcId = 128\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 01a097c0a285f02b54ba79a7ddb126b709f41b47bb9d8913fcffab4db0f3ba01766b502e9b3350bbfec70addd52ace387622abc21095eb7a019acf6873b9d2074edcca2c5eff5998a3e984dbee023a71d62c0bf9c771d84eb16dee06fbeb7babed577e77cab8785951af65086fdbcbb15f2e1c018192a20d6add44db22cbb14edf2a140cc04f4dadf8284fa77fdc780d9ea34eccba9480288b6b776f09f7e7f4b9ea702359c5fd3cbeff5469530413c891d8df081f9a25d65173b14b313a8c3b75f97b56f053b879f7e31b6d5cd093a47227b2a16afa4af36fd2e91ff1827be9b5d59f537082e535d59788eedcf07c7a61431bc30c55bc9cb93db60fbc7c747badd057908fc0fa0be9\nflags = CarmichaelNumber\n\n# tcId = 129\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 05dd50ba142f4e7f831ff9ac6f4dc4a4582d245cea39319308c2dac8ff1636314b0cda157d0d5ce8dca3dfab608922d9a7071b8478e4e5311f7283d30469be556a5924bcc85338f1f06a4da7e13fa7dfde9fa6db76ddc5e558619d5933a2022d633f1a9ddbb2047c8ae585723f04a69e8c2e01f09e9ee53d3bab6d7902893d9ad725e08b0ed4a25b778addcd20a9439da8bede1a96cb7fa1efa149d047bb08771b59e22763ebd098ae394ece2912d5b2af85f2499b44bd4ea2878021a33a3f305ddf9e1860bf670fbf72d1f09ccbf87b00cf996a719d5b5c2728ed3963e13682784f00ca7b6f96eae3879923108e6432fefd20481f72dc6c6d10ca95db052e0c54e294283e68248ce5\nflags = CarmichaelNumber\n\n# tcId = 130\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 01dab8d833a71ed5abfea060c1a9f2ae09ee0931516fc1f38c14b959cddd92c3aef0574b9f9c9f2991c38fe43a7536c081e14e2b87b7b0d495e834650ea9e466783d4cf3068382cf8ad00651669959feafbf336f4be62bb4dfc891794e097ea53cd8f800d79818127258f89a7e7d6b3d05e1e3f0da7ca6d1e343d24f82ffa9d96fe2db279d2809f0b6482262d53d32677f57500aa703e5ba9df500367ca255d051d7ff7018fe687c907a2520a2b992cd4f7a10b70b1ba3f1b2e5ab07de0e06de76affc27e6b29aa2730198454a8fe529963c27260729c8fafc6e14594604d8e1046ecb7f88d8ed100280f42feb39058f17a5c239848d08b85afa976efadd0711c3253410eb8d\nflags = CarmichaelNumber\n\n# tcId = 131\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 08f969a48c87087c160937ab35e3a80a04c58eb3620eab93184c7e1e2cff1d958e92faa1c3ff3bc17360c15f221aeeb6af889a95df029dc5c4f9974fb77c86601a4b13f872e57482dfed06c4d0055bd478408c40472d599bdce63c79f91240d448560a554673841ac071518c627fb0f22ea0c56b88a1ba5fdf427d5dc68e8d25d944e0ddb61827aaa1e224f0812acfb1158e37805d84e0957c6895b07913141db56d4b41996e3043977259ab2aae56409146421da6f89efbcec0c2cd6c173949cece2e402139e9d5c8cc1a0a1832926985811dd052cad509454c51ce4c2ef5b08cb04d6c497431adc86d43a27bd4c7647a12208ca663f5fce246f4045fcfb9ee8ae5d48a4838a9f797\nflags = CarmichaelNumber\n\n# tcId = 132\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 3dcf125a77c4a3797dd742d5f4647f22107fcc23597d261d42126ecfd63c979f0069c0a44c9d3bc3eb47f94e83041cf43c90c9d685f61d1784af6560826a7858807fdcc4a62e8fa2e24c060bed22bf5164ea8b193248698a59df6a8ebcf2831a746be18e5a7fff4ecf202ef6f872a773463acc99233dae6731e20db3b6a1b7d71171754866a9ec6c20fe99a06589b2f940a076068d3cc2e5e199a48804b6361548620877d3b65f2b652ab5029b7e964b465bafd5725add9461c399db82688b0f2ab510384fe387e8f289c7982d3952bdb61944c37fa1474a67a07008f3cc7115ac907ed22448808842c247d554a3f3e36e6665ba30d489723a08a8342e59dd2f5942a54f0302f3cfd5\nflags = CarmichaelNumber\n\n# tcId = 133\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00e10f450df7bd6e44aaa5f66994d5e11a57da6947969b8ffa84fc942725d0bdd57fea4cea3907cb5c8200f432453ca855e77b4e89766b1f339f1e79f1b3bd5a477d7af9c21d97ea2f025ec6810101b103d496141715d61764193ba8bd63b00162161b213da888df612e610c8b3ce100b57ac59d0eaae65f6ef136d5c42c82104dd37b483d68345216689fca1122fe3e2957d357df3e1bc0a7a23b3f3789103fc8c8bcd6a6a966e2661652e892c059612770425b251b8bd02a0955fb5d895ca90a447e560d13b5d065a241777320c3dd839212a9be7ec0dcf792e5d0383ddcc98cb3cdfb85b05d3cfe3c6c8117c76411d76e5de85b1b117b22521d01728da606bb28491e2dc93b917f\nflags = CarmichaelNumber\n\n# tcId = 134\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 034b9c645b94c535846280e92897209efe58970459e1557d61a3a0178a8e6f2e522bb4629291cd32b6357ab7b0fc121a7c62fb7e3de939391847383b1be7d27ee8394d561d11532159cd3e3ba5e93d49466d1ab5f0196fcb3ca72c4fab0fba4abe918cf22972af7c34168e49a5ffebfb893dd0badba1355ab22daf54422271333b2565d31298f87eb0c9ddb32afa15155c611249f3500045e17aa830dfceee724215a633559f9e65d9603b3b8a848025fd6ec8eed39f9e4d095b08221edad29372c97df63d151f68c3b5b502a12423bb961e51a9626ae8ce0f08b7ac969e1d0ef1e5a04fea3302868c28e02e85eb79ef16c1c7e45d6f68cc32c292205b74ab40bc02cbd5990fc7b92b\nflags = CarmichaelNumber\n\n# tcId = 135\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00c1221e5f3877bd767a7c56286fcf77a3a3c96e1c81e15a59933d90cef676f95fa6cde09404c8988f5094edbf5589a01abe9d612b858068ec2c1620b0b8d49cb3e431982ef99104dbfa95f8008bf5915cc42354a1ee2d8888bfa0d2b964d9f664503be6a1c6a99a121853651a063c33bc96ba1021bac44151fcf92c8fda6107bcdb4ab61bab8588e94ff38adc65da325b42b1525c635cf096da2da789bb9d97edf07a1d292d9b8dd7169f6292182dd89e2d9cd7169e20b6cce19f951c08d48b3466e134664a6a45ab508e502e3a17271bbd44293b871ae3a61c5168608545be5ffc889ec8f2357b21a628c9af10c1edb37c8442f8f7676663ad9fae6ba6567115a89f90d1cf05e999\nflags = CarmichaelNumber\n\n# tcId = 136\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 1306e7699113ad21f3d91f0b6444a2c65b3261a2a5ff51ef0362866d81305e8f13bc3e112f62005b7853974f9021b4a30b559e699282673c893a7bb91c07969b572b98c460b483ccae8acf42f713da00eb6d65c7123212cfdb538e98b5865f5d9b20ad1f7f9b64887f9efbcb598d7c864a6812bb2f7d9d2cf8ec3d3bbc7004d5316556dc8b663bcd285741ea061dd735b31316160d869b097e44c3042546befbe43e63f24bfc870dbe0f7a20b887c384eae7eea4cac974d3ba610ca6392b75a6fa4646b111a43a6a729835edee935f7019f3cb0929c8858b390d4097d9f6b4cf4665f925bbc8e85da11b996980556b3e230eb6d59ed8ba337018745f16d7c6f7310db87a615257\nflags = CarmichaelNumber\n\n# tcId = 137\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 4eb3ea092cab164f3fd7a73136de87896de4479e92ba918fe1a29797902db20c2ded396a4351b61aaa66a0d142bd2d4f4b44d39ddad927fd38c1c8e773f993f9d49d6aed9af93191408711a0774de82da243279435594c49950929f074b4b95f2e50f7d57a9c523bcf30b8c627dd142529e9679bf4a4ccdf76b2d0077b40a6006ba8721703378b8538064afebfb97c1fa8c49bc704b99675db97de4eb52e9cb78a907909221d492165f074421033428baac5c23c508c959d43276ba840d8be98baa38f89dd30f2c67d27dcf60e69af725541538cbbffc2ea804a34f861fd06ed03c682c0bce11cc0c16ad164d846c478a55787f162d2943b577b2cf4483eae13b2fce80f436a15e3\nflags = CarmichaelNumber\n\n# tcId = 138\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 020f1c50b3640950fbf9008742b8d993dbd9657026d755691cfb088f0c6f9c4b98bc0be2e0c8e47881e7c9d6ce6f35c08fed549bb40b0f4fd0f79432df4b5a5f78d2b54df8cd958da785d9ab1c727c1efb0e667bfe216e7d2955dd490e868e783f1409d0ebf2e079f1303f57b50ecc3987a53afea5d824f8dc9a89438fd32f1f4b3a729c5482a3f66cd69e712b1fdd3ed25836dc8157079053bed47f5e500ba698ffa7b6d02100f70993e43bda086dac726e72f9eacc01a1d623edceded81e0a446c0713b06d9224488df1f4239a7d99daf16d5273e0bbbb11360dfef18ce33613441ab6947a0daa61ecf0cf732c4b8141e951b232934b61073455e454e131e442edf39cf62e30b101\nflags = CarmichaelNumber\n\n# tcId = 139\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00811bb71ab010d948e4ab07149e752d4c0b9bb6aa11842a1146011c0da66cd8d597f7dbc48f26b9445a92374684098b2c87db94276481d79958a8425263ed6ebfd97d4e42a5239b36e079cc14fe923d3312f62800b153c0bb4e4e97396182b6f1ca5eb6f33ec61d4e7c2d822964b679ca01314712c931a8f430011644ab9d47ff485ba18041a564464c806c0b445a69d4fd4469939dfa304d8aa11fc2e9c98b450441b5658be9ce498f638aaa6076baee06c31f66751b440f977543ae6b268da016aadee31ae4866ecbc9f57d077a0cd23f802d27875b524898ad2dcd19e91334b88ff23a7532323984b040c3d50e6b37044b89d6471f92d03ddb3862530b8a95ec1e10e40b768ebb\nflags = CarmichaelNumber\n\n# tcId = 140\n# Carmichael number with ", + "3 prime factors\nresult = invalid\nvalue = 1a110258b0f5aadf8b223c58bae17d256aa1b66ab381dcb1ec128c4cf8d1d3bde3dbdafb45808865c919babcb5822f5121d6efd80e32496a66acb9c642fa93b9dce7181295085009f2427e1e0dc6bf322b8f6b45219b37640119bf01f468a16def4fdee8ae8bd10829481a918069de36d161dd5a00f426fab3267ad043c601a2109e4e40568e76bf97b8c64dbf55b442ad484ac3faba1d654c1e27ff6cc5a215ea6a695b55ad0cd71a14e3288b1c2221c387b8667e8a37eeafb5703b4f64b13444330cd9a292395f64e26ff8e27ffdb041a7b3d559b187a39df9be773916a4b7ef968892ea923fe79291138a8de437e4617b9e43e3f4d0a0c3933b6a0babb54cf69756e6457025bf\nflags = CarmichaelNumber\n\n# tcId = 141\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0315ac7638fe2dde5f466b9ae990a6b4ca6e4529c86812f1148e65c2268f24569aa0d2fb1a9b4ef4059cb4c93b2c537a63cadbc5de9ed118d4ffe2fe845a57b9fdb1dfaf19e50fc09469beafa470a45baadf99d46d86b23b0f9a7e2211fd5119db7fa220a819bf270ed8cc37df6cdd39413f566158375a8c6ba19d33e59b517f23bfbb7ab72a4253d3b2f25450cbd4dd2795bedbd6267d4bab9c58cf7accf9090e44e932886546d30865fa3675dc31d88c16e223553f4c50e4407ef44c1937b2da3447bc9a9db838e8cb709194b84d155d7dbde917c485a6b95a884dc1776e96c51641445c015bd709b6d1f0b64349092dc3675b51d15b86b6d73de9e08d61bf3da3e7d3be9d1be689\nflags = CarmichaelNumber\n\n# tcId = 142\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0090fc577b63378b614de9a87438496201917d1d98ee56b34d1220aea2608c9296cc10686b0ae9d554447ed47c5bec9b489f0d4456eb42cd7559bde32a3556a2e7b6b61c868ee49d85b8aec0d5d17993c7165ca2c0accf59499c743cc4c6a50836b0363284b0c7552d8435f2a25257bb6f82d484b1233ddcbb7c8a3f54027d0bbbf935f067dc3579973d1d819d90f4311fd9ff2ae23b3e8d5e049da85d70281cda755de9c57ab09eba0961ff025f3bce5bd3974883836d8d3b9d37af73cde87700a46cb49f424c2264cffeeb0941cd7ffeba9202b6f789d2749860e46b27209e9eba449cf1794944470ece94b47c092572616ad2f4aa3adf17099dd1dcf434aaadd457f62c18c05d51\nflags = CarmichaelNumber\n\n# tcId = 143\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 016ee5c4a1146a72841a52e1add93bfe32ae14ad0ff82b2879ae691f5347cb3866daff3b94cf40fcaf2efbf8be197a1aad8408493becee6f4fcebe53a43eeab0c444b6ff50cc9661d34b3671effb555ba5f7425d3c99520b29c5fcb937de5c45f0a80f7089fcf6a5e212cae6b68c6811ec22e71706d86dcc2636cca099bf8066336b9da793f86b4780c838145a5f4d079257fd383116cd00b878dd617a984e3694f4ec7d134653946b81b12308457dd4027116526964099f52f2220778cd954515a705080994d4bfa1327168121ed942f69712d1d8a21cee6a510d38421472179d085908e9993749c2973774b9020cfde097dddc28d7694d65d28a04684640ff90d5a86a0c037f2bcb\nflags = CarmichaelNumber\n\n# tcId = 144\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 09b96de09b3c269edab8cd497efcc8cb84cc2693656dd8b8454423efd8ac844ddad1ffbd5de39f4fbe47db100ee56131691b80c974019ebf319900068a646a6ac837d69a0d3470f4fdb309481bf1b1df29aa70b1c793094c0a78645216279a4f592ccaf49a39740ec82f2656fc8e343fe58eb4f205afb197d488843fa3054f9023064cd534823b87f69f808c24690ba57f2307c47c6261d1f240aa35c2c47bb0d89b18f071e7f96359fd91f8a5adf68bf86d49aff7030c5a106a39ba388b471bad93b49c69aee8d8e2aa12c6ab8ef318507b24603665ced96f8451c5cef5a3340bb4bac1f577cf0be337c1ee8764ea2b48348089ce0d070a0d7e1a5bd735f636baa88f9d282efdfb\nflags = CarmichaelNumber\n\n# tcId = 145\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 25ca8e8844298f700c87fdb4156abdfbf2540b4eb16ffdec9d6742a43514e48346040b4ecab2aadb7ac43b59fd113ae2c5636459c964306150e880e2c688272ab74a9e0fbeeffc29c60df8d8d7e696396ec21e80c2529e12bda83a1e8dcb9858e568afe89a79fdb00f766e5979a0c7b48168ef845ae674ca5bafed340cc93d51ca130e72dad8497b2ad8e321e498e169898e6c1491a12f05dbffc31a81c859c27657b510a37914676fdf828c43d4f308e6ec42de80c44cd49b835f6efddeb89df5fe10026c3eb0c6f580bf1a2322468b56ea60e9adef61f06b211b8c072f9a52593ab333dcde7c4109d6c628e44b20fc0e19476a72956f53fb0c03cafa56d0a3ec0e07fec558fc31\nflags = CarmichaelNumber\n\n# tcId = 146\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 4a6e7bc26df7ed0d7c09e82af5b1905f9836705ac7cb854f4be1316dd2ab97505cbf70d090c1feb774e3e11bb4c0bbfa92074b2a59e49d2d6afe3e0de31824d407735b9b7e3b5ac9dc2bfaee3548d8d3ce02e83a275af3933803e301e23d4244a543fd80ff79e1fe751f9540ae7ddd23da5930f01e041a095bd5b505ca33868000588a2000938245e75135744dd8a4da04a0288e78fd73ac0160f3cb108f212576418482a581bcc71902f598d9844676dde99fff86be9c10e85036a60925703b80831dbf6bdd75c61b24bfe1ea22b48d5502e5a52036f59ce0332c71836623c22e2dcb9f2958cd4067041d4c4596ff98a88ef53cbb82f011f4346debe204f5389863a0637379888b\nflags = CarmichaelNumber\n\n# tcId = 147\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 049a4a9991305451a4c682030ebbffff6a0101f04b9ce286965fa4afe83376fd028134a9e45b3d024bb331e6c80365398649f591ca0f32517171ec860bb9d9f7b415ce4f4a702aa3cee416a82b51182ce23088beb94d5afcb7d1b0c8b2a2e47e7ff63afaac28aaffe7b2459628d1979a1ccacd028909db31641a40f3a3f742fc993aa36de8543c19cc05fa3bc6031db33c56a5810c279a0f872ead931e85c5b55f71ba7232f6f0d50e2c7a614f9cd87938b6df53df6a68e492a0715aee49c235b954aa2fb6ac13c9d64daeafa16ff4addf7605400538ffe6cfb17bd8d694b3a28eb18c2dded3be5167b357a124bc38376c74c970f394e4acae0b0bdebb5d4479073ebed1829abe37a3\nflags = CarmichaelNumber\n\n# tcId = 148\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 03a48ea2550158e6910298c3a4b6162e9849bb91378d93672c95aaa20c8470ae964d4a11d3edb400dc032f3eabd44d0016255c57379e2765db31bc00b83a7914b048a28799aef1a74a35abba31755fbcef113c96deb380c86b404e961c28a3fc4bd1beb71f788e98141b1b7ba70365e3063ced78b814e543405ae80f6135c9f4a9c129bdb8f29a25889a07767339a1de2d5720f491a8394651d6d34fafbd6a63724028809acc69b9c542f107b2368a74db0cab8f00b4f7006dc619ad1a0b2d10c38cd7d05407b117a6bebd54cefbb552af1b0b81ff21c7bf542140f43cc2e10f270180bfb7b1665f09d36ca5cb86aab4ba9015c9fb6d47b954decdddedb1b81c7faa84671bbd71e9b5\nflags = CarmichaelNumber\n\n# tcId = 149\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 05725333dee4707b0e174b4d985516515e17ca12661d4714f75f33757ef58771d6979d6eabca6cedccbcc4c793afc4d7d6a429d17b7c6bb5f1472227e67f69d6a32cae34b8eb51474308a3ec274dc5c9c8e4ab1fc330957a6d0a8c10abb4565977fd780f74905f7597d01485010360ebfdf7d22ce9fdd09b6234e4a3c9e7f27aea55622672f89e4d545d9b7cd73bb0d4312ee9bb614592864df9c3eb88d50f2b445c64df29e7c49b7f394c5d5f20cadaa88cc9f647e89cf1c66827ee51f47c4d2ac989ea5a87062cd8f0f083de4aa30de074d5f2efa3ccc4a931fc861e8fa64fa4d1db13d86046d608cd14eed45ac217ac67e9b70f566688d9c1f6e74aeb54bfa008d5b12206025d6f\nflags = CarmichaelNumber\n\n# tcId = 150\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 121df27a2bede84a4d79f74687ced480d4e12a1330a2e078aff07474fa91ac35a47ec70ba79249ceee6c55e6ba1fe8262ba677e794a51bb03dd6ffc81577b5a40332bb43d7e621f8eaa91ea32fd481275583e20aa046cc5fc6f0890d5bb68f59672d1adae312b2f03c070b36bcd1645569e421497c7cdd0f7dcab105d3b349ab0c6014d95dc666e35ef99854b2a7d75c533cc77b9925d92fc9278effa8d7f3b667796dd689499b90b324f6d8b770d250b4275ef62541b58efcda44834c934caa0d9e648a72ad7c61d20ba1b457ea953c968bf4eca2dc1cf46f0e33663b07479ce3849ab14c1240c177cda2234fab6971694465debd591a1fa8cddcbf8b2d52cc711fa9caf58fa39a65\nflags = CarmichaelNumber\n\n# tcId = 151\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 013af9b522dc6f0cf460e489cdb857f58cfa82ff572ce560f8ca917a25a3f840db925c836eeeb9c9dd1cf790624902eb513e957073e315b050493f65a4ae753f122f49619bbe3c13d458d4875aec14b0adfcecdd0e8928a2e76d2658788b21110e48a87d877f7fb1de6530adf1613dd3a719bd89bd5b9811c052bdd481510853c3cd9dcbd2237174b601ea589c6bfbf8113067c5f17b8c6ffc2f761ea06184319fb92048fcae4618093716c6f746bdba565b6cc5e234f7e4b6ddf82f4937f6adb12aff8eb6d0ee83c2482d488669fe63938a41426ec09165168fd4bd284294f6e8975ab4a523801aa3ace206b5abfacc1fe4a33e30a2fb1b2a0c36db02f702158d156fec37a73e06dd\nflags = CarmichaelNumber\n\n# tcId = 152\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00d5761fb975294618b26559075aed6606c562d0c39fb1605a20522cef749f42dc0a2a6bdf4ac277b5033b6e3a3392fc52abd1b705df5e0b9099df20b8603cea9b76519153f43508248cd474ce8d85b657c440ee715149ad70eecf6f4a362730d006d09ec09f5c5eadf3738d8e254f208c80f1f2610c94381031c20ea82caf5d5ea2ea35ec51e4f98d352809058a41f6433d7efec539e461695ecc39131443e0bae23ca985bd0fa133b8945124da374fa465ca3b18fd260197a21ab19c38a7964c47b42bf3afb6ca7acf5af0f2741fbc02d3b894b8a09168139f5024c74c709648935c06f91918fee75987979b8e045987451dd887d502db27aaa8171f50442b6b014eb219495ba", + "bb3\nflags = CarmichaelNumber\n\n# tcId = 153\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 768acf7297a99d332c6b2e86ecd5d546a82aaa2236996da7ecd23f52e4b49e350714d5c213193bd9f29dc215cc513972cff3f6d5ca930588f81f306392ab12a155ab7b567fef2ea299c6e1a20293894f6282799364817fd6d74f5a2d8d0e1a096846a87f9976bdf4095b64470df394da237b1d6c5cbd0840959ee1bc563dac61a3abe087e5786332bc05456ed1a3034faad3ad4488ef90576115c5422ca993e154843856c7c49dd82c7f24eddc0841e9a483ad2e3cd5d9ad52d465807c0d84f61f2c70bfd372b2d57e6a2dc973e9345cad0b5a4a3965564f21054153cbc037ab1a9236de907c26d0d959a08427d48663bbb35a5b3a62071951f05e139b0dc9ab6c9600c62e91b6dbdb\nflags = CarmichaelNumber\n\n# tcId = 154\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 135de6a816fe05856578378de617bc97e7b98164510c2e3322605861048f937f20b92544cf34bcd6ba51047129bdbd476e1d8f94485793e9b0a4114c544b9d56f0fd8cffac0cb8041a19bc4c9b6a19f0918f5872db68d393fdcb04ba921dd977ed4e867859efe3e1d7ea6dacf381a4177363d35a011454bc07c3e619f8eb6c6d507b2e261270bbe379b4d83e3ab6066d567505fd1d2c68d36fb8379ae88f145bf2e732906660ea5f6fe6936980b9ed54c4b4330f0910e026bc637219a7f43a9683c7433592c4ddb94545e0957f8355a5c3a4e2819a8c40e56456eccd1c5aacf44d35eb55c32133e970fdeeaabd4c5da00ffce060caf40fdc6e171e5f7522364a06411b7756c5d4b799\nflags = CarmichaelNumber\n\n# tcId = 155\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 18140470bce8e40cc53e33926c4a2850b61a15fa099da53bfed9a0393b50844c42520b0d259378f9b8246eaebab0f18c19c24171e051612e8708298820773c86235b0268544b04f737877fb261f40e867d9cc54b5048063f643d1117da90565a366b9e99f754d75b12ec8a3001f9adf20021e7a128e9ec9e8d83871f63f8090c7874f58a4fbb87bd4fcda7ad61c8a722527bb7ebcf4685ea61782d2aac6421ef1259afc80820f216f2ef143a9c3d6f79958b6eedf7b84fae64e497c3072558855e38274117b676a6a85f444abf3ddb66397d4381f34e048a6d9646c188fee062d67c314164e11a30acc9ba5dd2c189beedac5052f02a231ba42ba32e4336f7d3f64c2ca8117d19e491\nflags = CarmichaelNumber\n\n# tcId = 156\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0f32a306229ec4471f1bbf598c61ca486db9378e07563992c45cdbd0bb0ddec9638ea89dcd7bdd153140df285c600a2716b5d2411af9a5e4f935dc3d9b85f8a85d5c24685d81ce9a5e3bdd3a498c97bb2d2842674dd3401b299c753fe8cb88c25fb0883d47976594bb22c1e34abf074b2417d3abcc787ad77a95b5793abc5182cb3c1eff8179409c19ab5c4162a84b9a68377bd1e5258d6c97afdbda4baf3818d949862df6a7005b343ead167b5f324b137a5697969fbbbac6f26c7f54288d93965255f7d82e1b42ab078d5234346d21bcfeb7aa07078624f14a5ff86fa5063a81d730d0598a0fc4f2b3ab05a6526cdad2c5dd2f52eb1c0055085b5f1844f0554e4af09ecb1321a625\nflags = CarmichaelNumber\n\n# tcId = 157\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 31bdfcaaf28d96bfd3c847ea06a65ca47f051b0b37e0ec4f06b30a4d0096a08da9861ad5d48b45cd2a79998df5732295115ebf69a7bd3a44271bba2ae68ff0f1d6f473c573602ecb5fad2f6f634dd3f1719fd609c036188eebb93be61c7b740c78db83b043cefe1cb0fdd7d533bb4310ee81fd0665529b1405f9e2515e092d052192f1017d1389b385b1871bebd23469c96bf0e744852a925a3549cba9e3a96f43dd5477a533e1458c861f170c90ddb7e8a3e13bb10a138dcea6e0abba9aac91835c0e2396d5d2ee4b4190c62067f1c481bbd38efb85fa66532060747b67f9e6502fb26593c1649c14a8527a0a6bd7015b5b9eeda2d7b4fce79a1f0e18b457a21641303fd56064d9\nflags = CarmichaelNumber\n\n# tcId = 158\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 16f7c5076d402edb9f2c0d0a73f1045851a0908d692f2a2d3a5fd95da4cf27f3e9549ddc7b0e19a001401b6eecefc272aa1a611595300e9b5ae60b9f747c8cce149cfbe7f4c402ff5dc1eb7a5e90f8b7f9240110b746abb111359c5b78623d08ef7e3ad122c180c9e34ca16cf9b36d7eeb493c9219b6978dabc3678f4b5a9ed0606bafef78db1294839f928e5ddba036013e78e16b03a4f49d8828f36831b2a772e93f93b75484b777fce3b421f55039a1f1f69244e8dc2d6b379b796af19571969984bb07ce0f55583a5c318677ba84a64de56653a6053cdc11211e7e6c73ca3f88814b57f8b0c1096c4fe83615640622220e386f85a5927d3c5309002c69717464108f2b5801\nflags = CarmichaelNumber\n\n# tcId = 159\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0139618d4a8e3cafaf6f87b21d88d8295013e8508ba87f9f02ffdb35daa80b5ad571acf56c5350315d14009533938c6c59ef8d26cee37dfe26dd3ba75a4c12434fc38f4ebbe03a43b8f08181b4d06277028bb73352ceb9239c6467c4a1178b0a6724c8d73609fe05a45f0000177fc5a377b7784a88484f0e057b2bee1a6dec07a7746f9e8ee6a5bcc0fffd3824edf510c656abb19a089c5566ac87c4e4d33d9d8b4e0544a12bd795b2dbc2801b39b89f501bd8416a38d3750f7917947778b779b8c5e7923dbb8eec24c4b38a57423706ce4836518892ef45b2f8a12e0debb5f9586e90501365c333bc07eba6836920c5c5a7390a6f07b153d28a47e8d8a334ffc8460134fa1b26977b\nflags = CarmichaelNumber\n\n# tcId = 160\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0323369d1f4a9668958bad24e36c2be20e47b26a89d4d3037d68789e825c71846f54258dc5a4d2d1d894c8496fdb71acb2d63afa97ce26a3c0f90fe58fdc0f38f099affc92dfb268e93fdd8962a8afdc4a0a118773482e3899034ea3f98dc91d041573a29acc74637cc3a5fadaef4de2d60b67b20ba5b4abc6458e592c954db61212561ea5c2bb3bb681d6e6b9119211aa1428e8c22b820ccd1d7031fb97ca1716fb475aa596f14c251ac3e5865359146ec20a2f4ef84b988c362e5c73c1616e0067842ef836761fdd23da0a00ad76fbc9c1b12086e1323d969446cb2beed23246ec38f16674992468dfc1cedc799ab73aef9f1d2819a441c8afe663e657eb09ebf186e16debd98eb7\nflags = CarmichaelNumber\n\n# tcId = 161\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0541d97b2b84f153c25561e677fa48c26218d47d2a69038b0575e0b2bb507e81e3d125d335a91ac635aacc011892ffaa69b9b11982d802d15dbe02954f7399406191f56335935bfb6e70f90d7a9419f4084b6ed9d730e27bbe900a6a58a8c20da5215e0eaa2c4a1a0f61429d1bfbf2a323d57a5f09bd4c360ff8c473a0b1a2e4ba41eba51a407dd57db67a8daf1fd0a13345177bad5bca13ecd8a6ae693234f7c7655c248e221dac222897271f089c545b9dca45625de984d497c9ad8b6a8c2778531dd262bbb7e729f5def7de782ee8d66f6ecc6ba745f5b16bfe67f47c158d8661be8472125c48da201a2b7808300f7c76fcc7b4c5f574ffd79edeb2197a660a1e7673a3862f26cf\nflags = CarmichaelNumber\n\n# tcId = 162\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 09f1f1e62ace5bc98c1b41854570c54c30cf0cd96a7bf7356a158c0515923e80d1cce2ba3131fbdeb8d247188b26230a4a02877a729fdce4d8a9972d1fd0af4740c34f23bb4941058e45cf249d8f9218c24754e3e2917da994abadf571b789cad51d41074fee1c714d012034b20bbd258d357b1d06c3376fe32c68093580fdcd99406bb4284153652c63e43115d6729812be9f6428318f7c23eb9cc3ef556918696aa535b002b725e3a1e122795e23d4f28fe8c1745d3d829882c7bc7db7a1a74df1d1d9f9a20ec26181c7f57eee9e176dd8049111fb363ffb493aa94e84e1ad575139decc3d9dec5ec59309f6d05219f0236b66c725d3b53a636db3b566fe936d50b59a73f4dad939\nflags = CarmichaelNumber\n\n# tcId = 163\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0082bc995b99c1af472ed2c81440bd573726479b6d63e6baddb97fbce259f3873ffcec2ad96bc500356829e77abc7600a838ac9b387662f2b06c7653c7ca3fa50bad6a1d6518eb1af34781828a1a3a13992ddeb38f73e070d9ea0d2a342bc8c32efd98e5ee15721e9cd1c50770243d8ced5fe4c162f2cb0fc68e851e243dced19ec6d8ac03be899cddfc14871c18937265ae37b36f3dc374c794699b3347e9925c407b694c2541c8315126e69b0ea010c72426e83cb83726dd23fc1199b279fe200a785e256437524d20a07c8fd81f17abdb3ece6bdd67378c0e1186ac58a56cbc1aac6c07152a931d55462670df79b5c1502f92ec824abdd6e5faebc68b8420a03a19c54a00db6225\nflags = CarmichaelNumber\n\n# tcId = 164\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 134b2a8e130d49d3cbc0d60e29a75bdf380e066e64902d955d950af0cf776234e0ff14b52e8b0a02134b7a1666db814213251285ae98373e905c587cdc7d98523bd54d347144ba070c6334c10b2f92b5d7d244df99f2009e30df035bcd41ef6b17ded1bc71d82a49b9451534713601cc646d4fb8771aae2cb9045acadf0c75f0be89e933b3eca66f955572d266b14c86dbc825ecda7d2f3078ef5d1a9a6676e6f9fc81d1e9bf50391917c778ae647886fde1b1445bd15ed8eb7138150e63f7fc6282b3aa9e407d921220ce87cefe410f6388b6fe1e26429b0929af911c630084a9f6e29d3754a79443d668b5e6a53e40104ccb5aaf6e3e9e72fd17df02285700dcdf8f127443869747\nflags = CarmichaelNumber\n\n# tcId = 165\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 4f99ada92e63b19c09ebe9b49b1447a93a6c86032bec51d0dd8cebe8f3153d9e3487e7d29c47a41ee94feff54115d128b14fca7309fec87f3e54a6baa05e21a2c320dcc4c0baea03cce223a08ac6ddc876a7d66db61a59d25d7e38cdb37c3e59d1a2e34837d3b4457116c84a7e7b30daf8e9950b758d7ffa3432bcf337463d124004353628172698c41e9135dd77c23c9dfccce30652845d2accbaad8cdaf2857c6a086ba5ce494b659f4756c0e4b56793d2cdc9d12937545dc966398f9a3f4524e3c3f4801b19f1e42cc0bb8fe16d8605155f2178dd3d9008d9e9bdfd6ab8b71ab9bbcd2", + "254650f4a5f0330b2ceb7441bc0a2f7609cf838eb39b8b1b109fa32ee04c083bc8c646b\nflags = CarmichaelNumber\n\n# tcId = 166\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 1bb439731b7ae12b6874783162b16dca098c378752625fc220fe53c2b66debc9ff7c2834af26a220bd15956b0f7b07b8d49926abb58ea5cd0442bbd9b4614ae7aef2a2d7e7223603bd736f43513524fabf0f958bd997e17cd6fc7c1cd6fc14577fb3691ff7e4273f266e7cbafd8e5494d96a057b4003b5330e7a52819ced9eaefc1b6eece210fbe7cb389ad87df6ad493d8fb7fe327e409721fbe1ecc99718896fda3e06845a466db1fbcc0a669cf42a7c29688f4da5d99f4e77cc6c6734f9ece0305ea20a219b28aad2a0bb0bd24a23b37f5b411cb92d38264c05ded2d96c0bae6905c864f38ef9d452c40fba1a3ee1591564280ad6e0561942355e341f1508a66f31c83297bf8137\nflags = CarmichaelNumber\n\n# tcId = 167\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 5620bbda712c8e2664a235bd5a11e233509970d682650dd60fe1fd98c5c9b6cdd16aa79ea00fb7ee221730ad0a0df6709f6ffa699470f1e8270b346075dee913345f708fcdda9b5011327756d34d064c6e595794cb0215dd3d3121a515706bc3a44318b56587a02f9cf8770078f963d243d9f1e12228cef2ed22e961dcfe00cc552f9786fbd21d128f7eac7afa06a3abf6027161e88596699865b7623cf3107dcd4ac8a4bcf61a35583575dc3acd519c547ca8d15a43cb6a01a68a8614570ad497cc5f167a517b436a06241b68202255482116f4c1ffa9a0594191d367a5d22a2039f1ecd6320b8ec640c66905108fb0ec6b5d0d23ae386c1e883a7547aa65f76e22d5f182f17b6437\nflags = CarmichaelNumber\n\n# tcId = 168\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0490f2692213ad6c3f56744b1b3be3d419f8dd020994282968ec8ab382cb608b62387f4452e778e2437f5e84a5277506aeb2e41b4dde83c1bea26761d61a19a5c0e460ce69697235fddb2b0cc4343b4b3ecfe4e802074484abfa5461383a85c9eb4daff7c84d45ef0475f9e6746c6b2c2925deb068bbbcc11c62f36b825e790b8224c3dd9325cd43a8e9138985e8e7446e914b23950567549a234e7f59ac45eebb5b5968d0bae4900b9291408fc654c9cea7f2b31d648b62e3f080d136cffb31ab1d4c2c134741e5ab77097e1c137641ddef70bd7a9fb520cc930f1335436d2cdd096b6b7ea816e1de56c45506e1579bfa4027ae066c27dbef4004ac5af682804322016b3b5cb33159\nflags = CarmichaelNumber\n\n# tcId = 169\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00b4a85de3e2010095865ce98a144e4b88d42a1a6729155557b5d90d3ba80315a031b4e7480d6d4970c7764de7dc46dc1ee4c7c433826d7002fadf05c7f46c0bbc3298c66421742db268e77fbc022d42327969c34bab396590482f6cbc97dad8ddf778112a617629b559f9f4f6ee394b08080472d7dca1f35901b72b64262ad19150ab6fafc7327ef4be191712f475dcdf126db77422140f4e145d531e800230cf9fb4d481e152bd41d89b835366566e309602c48635e75f7ff14764900289959c5b0b42c0339e8fe4fae02c618fd07456f4210b0282bf93764b8d84ac93a7f056000a3a89b508fb99a0b6dcf610a31fb3d801d5bb3dafa52552aafb8012b8f8c651d2254c44c2753fb9\nflags = CarmichaelNumber\n\n# tcId = 170\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 222fe3024b8e5a4c11e233d1e00a75139968fcbaf8cfc9c5f0a8e2337a14c8052f126cb0dd7c784db408d3d75103854c7d275bd583855051e1bc1da13d39b2f34988d09d04455f077008e49088b6a2905ae270c7920f70110fcc6a4289a660722cecac7d32380f7c80e14062bcd7ae6ff0999f653d48ec6894ca28822c7328fa6d3cf06e98c9bd1b180a413134d217142b99e1ebff444406c96dfaac8c1cac8e5d5d432db84b0ca787a52320180e6704e9f367103c0f440b2740347dda3ebeacf7ee02e09cf93f916ba91e37e2b19a360b779944321083dd1d2e1185de2f7e12e275648cd5ea7a5ba44ebc8b2bb84693a6978632a65d08dcc89df3ef740809e981c41df9a9d1d50b07\nflags = CarmichaelNumber\n\n# tcId = 171\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00fe578feddb333e11b3ee0a8870fd085e7b5739c5ac7d2f8d58614ea72ec6f6df92b7857dcda930ce6dbe69df4974a4eeb077d3ba18b2705e50a9412eac82dea651d26873584d829300f578f8f5ca0bc0631aa8a9448208f0586bbebd57b01cc72b4de6f6a22fcfdff3f0149069059bff027751028102b9c466da961217fd8ccaab0cf499bc9637f7b0768ec86e911e7907bce37723cc81678ed143ab3058b179ac68d07352b8a6a4a601510eaaee5ec3455d8b3ab8b4a12d18d49e431cefe69013419bc372f29106a01fc78c089461594c04b23f6493b3815ba91f19f99d01b903c93ec1565e21b0ec880b546330c9ed4b8e973ed7decbca936ac5d19ca26e051ea124267d0223013d\nflags = CarmichaelNumber\n\n# tcId = 172\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 462eee2ddc554144bd3bc464dc0fb2854597196d9d4c319a8c3ad7946256e7b2bfcce9455ab4c43d81f3ba2560626afb8e4ce2e3ce8e88dd7affef7aae67574956106e50f98c57dec0c375fe18b4a91ff6f451cde2fd5a4cde201466c393f01f7852bc89705db09e64f392ab438549d66b42caca88a65fe846970a76d590ac682a65d9863411b10f1a1e23b3a78b36dfaa63ecfe8818f993ccc3a04089cba1c778228c8200768a75b5c11a7c6c5d17aaaad01be3ede5bab8f5393cc18eafa3d00f46e326ec83c18436e210d86049ce5a0ffacbbd301b0e7b22d4d1b67b6f06e0cd9901642430201981e1fd0073695a771d5a648cca247a9d5a7df699afa74430ddf5fc9614fe59d7\nflags = CarmichaelNumber\n\n# tcId = 173\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0843859178a5aef0cf76fbf7a6fdbb261fb21f24aff24a97e37b3f87569cbbbd9eda5c7b5a56327e7b98892cd4aab05b53508eca2aea6e03d43b16bc2a5a857a93e9936e7cd3a128c3c12c644a5f24fd688e9d0daea4bc4a68dbbd5056ae5763dcde9ef60a8cb36a5705724f94572b65f0d210d0a8825d27b0fa2f1e3b6696e6ded4ef8adbeaf14dd34b3133469ac0895f5106c69caacc697dd18b2db57455087105f2fbde982501bb19a80d9bd2dc7083ae4249f4945961c65333e772726d08b4ed030a8942feb48ef390dd1b560c1270196c276ac7037863ae3d87b31c034e66561a620c271581a4f3054ee38ce8ba19094c49190ddbadab842adc5b62b4efd19de0f2f53c8ee9\nflags = CarmichaelNumber\n\n# tcId = 174\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 11193e4b78a93ecfad44551c9913729b5e5d57e903635ec76022ea9fb939f14ae7ab1c895c3f81c6d5a5f03abc7c778d9c6ba0aaba159af380a809963706568b051e8b0667b96bf839a8958cdcdb49b31119998145fb6ca0c7a2ff0e2c7c0d90d24c618257b9246b7c322fac9f92ca13d85df961c40d0afac9fb404497635bee784f297226e47f2ab0f6606263319a4ebacfa0abffbcb9781fa868d7038c66bde1afa539efdbaf175510f48c9d9c760fb64b4d3d34f10fbbfbc00e6d67b7697d68c751bae07f3970d7bf6440814b6ea570b6adddee2248b73d572256627197a907e285a6301fbad76013d41598786fb9d33e580d63950f2c904caf351d342d36d460763c7a1f1f5957\nflags = CarmichaelNumber\n\n# tcId = 175\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 012f617c5a054349a3e93ed6854e6a540038bf60044262f151b9c825b36f564bf4079f6f9e5a818fa2a639ad7e6f638d3d9e201f3187150a66c0295088736ac020958974e0296ebd595ba4a0b63d6e11961736cf56e9270dadb49cd77bcb1a9d89ebfa9e2298aa7b3cdaffa3c675c5dccd222f0b38204287d1fc269c6440b4d39dc7b2b193b455747f75cc24c360da99df57c8fe2c3e92609e7507cfa3784a8c464c1a83e7b91e9ef6336576a56bb6636cbfb8ae1f6e9724e9c393576e5cfedb29e221550dd2f39e8511b0fc9b606225a49d5e5086502229b61989e3b6feebfa090e4474a325071498de0ecb789c0291a8ae6c04c57516d00e487f8a60417af209a60f0c34180337621b\nflags = CarmichaelNumber\n\n# tcId = 176\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 5553413dd9466d66d0ba3eac38d68084784bc3c8f04c414bf46c42971e3c09ead8da7e8290a5ec2a8d0c55b9a27af71bf44edc1d0f9c175cfdb92651c2fef12355de421ae9d4e463d97e1b7d5b75de136697f55729151fc55a4cf365f5f80cc0c65659bc29e0ac360c837ba8288bafa80b46b20f3598ab782f0d4dda7dcdec673d2ff7ab05868466e5fef586e63586b22100e92ef9bf3151ac53e59805adcbb011162a1963fa9baead1517eb8731ef4c84350e7d73ca47dfc5fadc1ff7404de4ffb2d3203b1e61f525c9eee55672ac1526730bcb4b4d4b54c2707b876710d0dc0f2ae38b813f4b738e381bc4e05c4cf0b0f4db1dfce5107b6d4c1199dbe5ab89bb063a591fa0c879\nflags = CarmichaelNumber\n\n# tcId = 177\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 410a34783e03400a52d847bea34213583afff783d80f3aedbeea0807d347b680ca6a72c463ab1b2779308732b486309864311e4a542b46d2123033fabd0bdb958890cb4b9ce864e091ad7edf2f406f6a542f2d34eeb21b8155667ed89a7fa9434fe479a79356ab10155e097a329c3b11a06baa8dddeb4fce45d01254c6bd3ad03881f2344c3378dd8fbb69feadf8f2bb0103d164a9ea52214f92e0fec3377530610f16247693245db19e2c6fb9ceae1e45be90a2028bb6fda1038483099635d09e2bb794fb5fc9140c1f775ac10d094e6400f9ea767f5cc2b33f47fff7d67fa00e00dadf8fb4f93f1d38d695d9dafaf80cda2176b2585e4be4983025beb099143dc541c7a9c268b1\nflags = CarmichaelNumber\n\n# tcId = 178\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0101d935080df531c252bf2d2116719dce5eb155862ad5984fb325c75e00b9825ce9fdcdb39db9a50a4890920d69815849e62d478584417161ae96a98c306d080efa88356c23ce7d7b1e17b9c99987391a7adc0121a9bbf2df21dbfc7dcf4cb529d9c3c42975624cb34750051a8eb6b0c2f4e89c904ec614958a071a5cb1acb2a5f9dd6249231fc7a167d84bf2f187642eb1df50db6824b54c50336d1a3b189c42aa74c613667620849b5fc38f9bdc8b8cd07e0b2d4597ad6ceef65d6bdb03bea", + "4fc62135d28bdd5f47f7403fb17924adec5e138d4cbbbca0efc141dd7cac26259ebfc9ecfe1473c6c9408309767308a83afd1a3294a00f258989e1049a9a984549b6d98e4e1248acd\nflags = CarmichaelNumber\n\n# tcId = 179\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 1a5fe69fe95b9137923fc26b908e86bbba2de8456cce10b64574d78ccaa5534f19facabae2320f307bee35de24d929ab0fe6fc94bae4567787ceb74263f656c850a4395188a4a84690aafb5de68543c63bd0ee3cb16669aa37178d8b77dc019a5180233eb13245464babbf180a1254fe2e5d430dacf7dec7548d2d75ce795fd1979b0951413807227f8104a01a617fdb8a0b6605ae4ba2d57a55c4121999526d8e79585313199b321ee6e1956573853c2a80df7111f2b28070cd0646e66952c7344845d218924347568ab3f5270503ac9e85cb8a20944ad8b6811f90cca6c8a9d9dd29fe747296a818fcaf50813044cf5970293e51df42ffc5fcca42987c0e2dc6e0c459251166ed67\nflags = CarmichaelNumber\n\n# tcId = 180\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 028a4f88abd93fb89bc21645e872a7887f86e6e484f935cca6c8b4c0d5d40612b3de89a931d97b437737f6ff6a5f617c95061103a13ce3b4f145c13e9712014b9c2130d87e2eb4136fa2e53c280327b5bb6ae4c4bb0be5a3c265f987cd2b4c1232b1eb93deee4bc8298236454394fd25e1f8a54b778997b5fae1809382c308738b8f011c812ff155e9a52dbea46ce0e1682d78fadeff30f24bce8c998bf2bcfdf9487e7e938e746ad1f73178b5803964451234d06a8a84afa9fe0b7e3507892fe07fc1c36667761386d289a053b7b2df38fb4081e5ba407a9227233135919f25a30ec20d1494fb7783b75375aa17263e9c45d4667dc34bbb40116fcf67e089f72f46b8e567a9aeebb8c7\nflags = CarmichaelNumber\n\n# tcId = 181\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 008eb22ca7dd25fa7c230083277360e3e29e3ddb30206f48037c4b31ce2ee37bcad6fc314e4a27192d945efc1ef02bb5a514b82baf98b442b3155577a689c195fe3a59db2c21204e00ff09d40b34fa7bb6cfb61a727f61b024fe5fe182e3c051f07776b3856b9af0c24bb887aa5fa1a02143ffe2349d7555bb4ba1e3b597e1cd082c276d7abcaf8c4ff951a594e3a0ae3460f37ef0b651598cbf3e991de6e44e76b4ecb1d76e87c2f6011a9262d3f1a2790a534f8bc3f49119d7afb8130aceba030397304b1582fdab9b00a76ce97acdf7055faa2d85a037f9601ea697fd2bf7f6fc600aecb5a43f18c8fce7eb1221a8d80e0e8c8abab3ba3979d98654c9db24114d0f2204b5914af377\nflags = CarmichaelNumber\n\n# tcId = 182\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 02581eae696be714b5d7ebbd232660202fbd411dc9ddde7d73a48bd7b692d0b0c216b3c39e51a707ac47b6a5dc39de6b249cd0b0b27e67c525af2308d5e9763a572f5b2d3fad53a8567ea0cdac5dd3f90a41c05cd79c89e9c94d592b8ffbc7c1f07a2e7bd820dd5ce55c38e21c7890855bb3871e276be9305ae02867697d32eb3fdef35e3e9cc6f8a1ea3970f0b43f520849577143631f3414914a7af4ed82faa3f3540db1d6c249f5b642c83301055326a4ada3579eb05994b2d8c89139aed660d577337ac3a1d6a1321e58a3808aaa9f78954880d11b2b1b6b3f1b65a36ffb25914ec28d3a7bf707ba663f49e067ccc2097125a12e993f13899ce0fef029d99a6a3faf8a54aa1d7f\nflags = CarmichaelNumber\n\n# tcId = 183\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00a09c7c19c421b546cc94c42e8b8662b6ba80d5ec245157378b366ff039cb4d29a037993976dadded5cbb9baeae4443ae6fbd8e0dbec9da4237e68f83dfd6fdf2dd1349fba3a6cbc92832177837eea57e0271c6f5a1bfcbc8082eb14a0ec5b230854dd52fb0bf1d56a3575b2bc518e28853d87997c8a36ff1572a128e4fedc64ca012294751e0bfa9cf97c878e049144ed49d562cb70051c5a91fef5b4c4a55d3284a4093fadefe283d668e62bede1b84dbb1fb55137a34979a0d71029a71e3a6f6cb24db24cf950aeb182ea9acbca214170f3e3749677ec688cf47b35b9820e6e1e1731503c3de31256e13aa641f98fc48ca39249d1b8332d596566116d59488a87e5f1ef8adde9163\nflags = CarmichaelNumber\n\n# tcId = 184\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 0a98538007d0939057ed39cf18a18e8f1fca061c849099a771aa5dbe42bd08643c42433d2f24a9c598e537a7b5448cb92af1b605ab97b4c817056e7cbad446120a5b91ce77db2244ebb821ef727977d731e8b080bb71db4111deb82815621bd378696ebc2679e46f764b7946c91c37ce4fe6ee08e8d6db3d4e9223bfc48485af6bedfc0e06c546ac208ccb9153dbbc47d1dc56974aa6faf1235cd691059aaadd4fc6bc6c5bdbb2c1691561f84f0436c7f3df2153ab01aaa33b214779b152e6d3422b5a98931a5a08bd6db1a9c23ca1eacae57d0cb0d66b9e405fe71dcc1ab5d74e3f17800eac2ed9624a0a66d71a08087611db077a97a3131ea6e9f4e0ea21b27812654984e8220807\nflags = CarmichaelNumber\n\n# tcId = 185\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 023481defdb2d2224a9b315baa087dffdbdc511c8c581e43d7c6209d8b7e0eba75cbbc38b6b676dae33c46abb511064ed248cb2296b0246d1805f8c141e77d0bce4608fd9c9519bc0a827aa9ef5f877a658ff79efef187beb25adec65c2d8b8928549f534f25e90def3c4442e58cb5683c532d1f6ebc9d63e1da8d4fe012880ad1b357834d426ce5a0c6ccf09de4a917a59441e7977d46d3ad83e96af125d02cb7dfdd78047ffea7157763f669aa399937b05b46362e3b6db6d08b6e03c6b334ae6d7fc11bff839e155625e7e6b5eaf9372b086bcea47caded8e4eff4756df5e3904bf9facc73d9cec4a4a8f0ee1665752f5743710cbed7d0ac01e9a8253d3310f37c1e72bdf2785e685\nflags = CarmichaelNumber\n\n# tcId = 186\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 4f41312cc1981a2007eb29a87fa2f3ada1915937e4f0807454ba5f18a03a32f954f45ae8c2df13ec3dc2045d92cca2d3135d25100d7b1c4f5c334513e9ecbf02f27ada2f6d6023ad737148840609befcf9edf2bb574782209f5a712d5b35f6cc3373580e89c6148bf2cd435e4f401d678940cb9226e8da87a33d992da172da41f710410cd450a1dd2a8608033efd87f5a23a5af1a1158feeb422e7391b960139f0cd7401a52c747803500dc96f130e2ce224d6b60169b210401b35fd3eab56bbf0887c6af3acc54473f928adb538ca44702789ac934151bb0013368883c9fa9a44405039a37a837d9ddc35d2d019e102ec3e1ca5c9e9cc0b317a3b6b107aaa657b8bdab892dd19e7a9\nflags = CarmichaelNumber\n\n# tcId = 187\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 029116984040a488254941b331e73395ab58a597fea5e15bd92042b3e2b51e883789ec6ae538aebe3d84c928952ef9f239bccf3fc267a85d81c2ddd209e28f56e62dd9996c6bf56f781b02ee3a2c5c05e711ac28a48098cc1c4b9019206510271388db9550b46dcea014e90b8e2a37b5f311af9167343e3dbaad5717bacd0a3e8e2be61bae423f9ac9c9d479ace3bb5e65ccb4560b98325d6fd467e533b2a39d2982a22dd237f7ce38b4c1d6540636a1e39931a9f441ad5ee3c1d06e5c4eb42db1a965e66b59b7642fba3d49eca9c2287f33e6815954c4bda231fe5c60e46d003642fafc3079a2e79da673833b1b6895f795ecc1209f5d73b7131f0c68514115908353a7930b301184d5\nflags = CarmichaelNumber\n\n# tcId = 188\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 09c877d3a8b3cfaf8b5192de0ebc2ac29c9306f49eb83e6cdf1839f56e46529a72570354ace0e538d630d10cc715c03e1db78a70a0b5b0871a41408dfb16c2b207d1cd59ff28f2f6bf835a1d0ca72ba144630f71e521f1671dfa16bafa9aea3ce69b9d5c53e4c1c546d50b4f1ef847d7b9d256af9da829b5529d249dd4a62784a2b0a01411a42d30358161acff7ae2ba69cefe7b4efc7370f49ca482f1832c578450718d014e6d08de7b1412bbfae9e5123ae2218e37063b480945325005671f67f3d0305ac02b1813b02342fe17113972c796a3d14fd173a169cfe7a05f389a90f78f5bafd13550bc3778d12bbc00195a626550fe40b763c3fd713fcbdbe786cc0af7a2424d9226c9\nflags = CarmichaelNumber\n\n# tcId = 189\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 1508d017f18635efa2cc25c56f40992ee2aed4868ffe810d1973741a4d57390a4af51e8431d90f65b442ff504300bcc54fa0bcc5208a8dc59ca4fd2d227482ea4aca9fe2ca79d1eaff70054c0b0abb794dad9bc3900779446283c95aff750770f9ddedb1a66b0deb264c39a8460329585776546d934094465517a802adbd15aed60aec187f52a20dcd5b0f023480cb784b12248374271f4ca43f276d7c911f2bc5ed25eed2aa2c9a408284652fca768eccff61e7eff25830e660c9110f78c325d2374fcd727ac5739886adc1d7908a07fd803a08b7bf3ff7d8f55fd76668886f85999eff5a0eb704f746ab1357bc942d57a37fc558abef850984ae5bc46d771781117533c7166b54f7c1\nflags = CarmichaelNumber\n\n# tcId = 190\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 014160a4d755f7f9ea44b90f75a2c370694d3f5e0715a1146bb309a04aea9169bb6117dbc43c90381de4d7fead0177179241be84f468ad38a629068108288e4c99e2c9ec86ccfa11dd62a22aacf486cf5c23f03162dc0d981e705837b8bec7d1b13123af2b331bd3bc9b2054f59f317853ed63cc0af0dc4ef15fc751a43e83f731cbec2191ff6f3990e8787ca0e4e47793ff7bbec63c012e07f24647b484fe8d0da12215c0d5cdb0ed2d44a253d5c825de3c42bdab327260c300d0d806695a717b59fd352e68f9e0828d7d546a57333578d1dc0e2c48791dc2a659fbdfaada59c7071b1b440eca073697bb7ddfa3f98131e23430c17ab6d4e34b44b11ed1b5a1cb7918b99e7bd713ab\nflags = CarmichaelNumber\n\n# tcId = 191\n# Carmichael number with 3 prime factors\nresult = invalid\nvalue = 00d050af27a2af0aab019083053bca9a2318f1d3a322852073c21fa9109c7fe2fe5a16126ea0064c7655ebd9b1a67c9a61a028117fb9df03cbf774aa4a341f278f1570bbc0b3efafaa855d3878ab6039b2ffbd8c5f1fb9f04cc282d072eaf7904f5feb42b950b4236da9e67b7c5f4889533ba66bece01c0c35cafdd5b2b310d91173ddbbce856f5c4671c0f61b28defde2eadc7d6", + "b96229e4dd12baecae8680aa038c104df148191a40e5f0cca2b25b456957bd8f2145529e71d25762fedbb3b6cf3023dfacf47200b91b6a4bacbfaa92ffaf4a760ec132868b9e7e3f3d0f7cf77a1426645ad54a2e057fc01e223682e7c56afeec356d4f53a08528e5d2684b8be5eab78a3d9b46cf331\nflags = CarmichaelNumber\n\n# tcId = 192\n# S. Mueller, \"Strong Dickson Pseudoprimes which are not Fermat Carmichael\n# Numbers\"\nresult = invalid\nvalue = 00f4e8aaa62114c404219ed23f\n\n# tcId = 193\n# bound for deterministic tests\nresult = invalid\nvalue = 07ff\n\n# tcId = 194\n# bound for deterministic tests\nresult = invalid\nvalue = 05361b\n\n# tcId = 195\n# bound for deterministic tests\nresult = invalid\nvalue = 14f5d5\n\n# tcId = 196\n# bound for deterministic tests\nresult = invalid\nvalue = 008a8d7f\n\n# tcId = 197\n# bound for deterministic tests\nresult = invalid\nvalue = 018271b1\n\n# tcId = 198\n# bound for deterministic tests\nresult = invalid\nvalue = 3e9de64d\n\n# tcId = 199\n# bound for deterministic tests\nresult = invalid\nvalue = 00bfa17dc7\n\n# tcId = 200\n# bound for deterministic tests\nresult = invalid\nvalue = 011baa74c5\n\n# tcId = 201\n# bound for deterministic tests\nresult = invalid\nvalue = 518dafbfd1\n\n# tcId = 202\n# bound for deterministic tests\nresult = invalid\nvalue = 01053cb094c1\n\n# tcId = 203\n# bound for deterministic tests\nresult = invalid\nvalue = 323ee0e55e6b\n\n# tcId = 204\n# bound for deterministic tests\nresult = invalid\nvalue = 1c6b470864f683\n\n# tcId = 205\n# bound for deterministic tests\nresult = invalid\nvalue = 081f23f390affe89\n\n# tcId = 206\n# bound for deterministic tests\nresult = invalid\nvalue = 00ffffffffffffffff\n\n# tcId = 207\n# small prime\nresult = valid\nvalue = 02\n\n# tcId = 208\n# small prime\nresult = valid\nvalue = 03\n\n# tcId = 209\n# small prime\nresult = valid\nvalue = 05\n\n# tcId = 210\n# small prime\nresult = valid\nvalue = 61\n\n# tcId = 211\n# small prime\nresult = valid\nvalue = 65\n\n# tcId = 212\n# small prime\nresult = valid\nvalue = 00fb\n\n# tcId = 213\n# small prime\nresult = valid\nvalue = 0101\n\n# tcId = 214\n# Mersenne prime\nresult = valid\nvalue = 7fffffffffffffffffffffffffffffff\n\n# tcId = 215\n# Mersenne prime\nresult = valid\nvalue = 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 216\n# Mersenne prime\nresult = valid\nvalue = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 217\n# Mersenne prime\nresult = valid\nvalue = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 218\n# Mersenne prime\nresult = valid\nvalue = 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 219\n# Factorial prime\nresult = valid\nvalue = 02611501\n\n# tcId = 220\n# Factorial prime\nresult = valid\nvalue = 00f17a60a5d627ded85b6a9a397c2ba63bb27910ccf7e3135d4d1ae8c9f5cc1e4bf01ea704abb2000000000000000001\n\n# tcId = 221\n# Factorial prime\nresult = valid\nvalue = 01e764f3171d1e44a5f0c50c6537730168041cd93fa34898140da93d3df2939adecf61802daa63eaf08428d72148d63f267f22bd24cd411b7f25984b057bda5c11510000000000000000000000000001\n\n# tcId = 222\n# Factorial prime\nresult = valid\nvalue = 3a7c596683f12898e64bf1355bb9bc85f01d91307e568d01afdc9cf0b3fa9e464b140d899d9bf62a0c61c2bf0a8bca1de36f6d36a5be4aa212681896def96f583c8a7cfe362b4e823bd244f813e575391a029df7012e738d3e2e8e0181ea40000000000000000000000000000000000001\n\n# tcId = 223\n# Factorial prime\nresult = valid\nvalue = 72b20ce22e5616f923901a946b02b2ad0417882d9172d88c1940fec763b0cdf02ca5862cfa70e47fb8fd10615bf61187cd564a017355802212a526453e1fb9791014f070d77f8ff4dd54a6d1d58969293734e0b6bc22f3ceea788aa33be35eed4bdc1c8ceb94084399d98e13e69a2b9fa6c5583836a15798ba1a10edd81160a15662cdf587df6b816c570f9b11a466d1b4c328180f614e964f3a5ec61c3f2b759b21687a122f9faefc86fe69a3efd14829639596eb7f2de6eab6b444d06233d34d0651e6fed17db4d0025e58db7cad8824c3e93ed24df588a0a4530be2676e995f870172b9e765ec2886bce140000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 224\n# Factorial prime\nresult = valid\nvalue = 2c47a7947e4ef970e990c8b4a793b5f7d49b9af95a12b9f08475e1cf58f31046fd224c3ef20a736d7cae39a2f989d934c2aa644483aa6e348bd41c34a6819d7c08fdbd93a7f7c24a4756bb7dd97516287e161af87e56735c06d61918cb2fd4ae9dc1c7f2cbb5749934626af5f4db5bde6b748072c004110d45f6db0fe51c4889ff053bb2a24f83bbb80798b94e5d7a189599d85792807626de78a61a7468eab70a2c4dda6200e0c8328408e0327897220bbe009cf8bbbb23fa1cb5fbd3713f7172f8186d059d0b97c2ef5b096c558ec61f66e81116be44f2940f4c93b67d7cd3564c266540fbf0bb95cc3c52c9dbc71aa6a424457131aec3285e6ba46e828e635f3455e30b6db3e4680ba04c580fb569145f6371a0d352f40321751cd26623e92a6c5c9e83eb655338c9077826148e23c3705b8f11b15a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 225\n# Factorial prime\nresult = valid\nvalue = 1774015499125eee9c3c5e4275fe37ffffffff\n\n# tcId = 226\n# Factorial prime\nresult = valid\nvalue = 22d4fb39eb23880b4674bcffd06a18547ee73e7e77f1fb29c0dbfa66ed52cb8b22bbe0ed9b2a2b779c9037d7b412a389bec5ffffffffffffffffffffff\n\n# tcId = 227\n# Factorial prime\nresult = valid\nvalue = 371196ced90a51b120fd9171fa388fe8c2e634f9ee10f4bcddddfd269ebda2f3eed661eaab3cfbe6914395a73735701d7d65e278f76842b02d1f8f5d941d652067ead60bf9bb537ae7e13404711ee80b35bbf5936641be34d53d4b3bbd025bed4be7fa44113cfea3ffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 228\n# Factorial prime\nresult = valid\nvalue = 0120dd73742e20e30f56d82ace2d9ff917e66b2c92024a1444490511d41a39685a9901187f206b5a248b9e52d82f15820801be21beb73ff9e0c8150c69334f02fe9593493b55d48229601857a3ca4449a444d2c0566936deadacd46310d04480265834fe9b5e733357b0c73a0d1e23d85e401e8c3b60571045a6bfb1a19f4940140736098dac2d705dc1339370f1ac19252b931c450bb260800bb40aa404dc54199b7251abcb50d26fc9de82de037c3b9926a2958bd6a1d8690805c0681f5cb5d90b1447cb7e5d81c436b913d743372be382e3bb2d1cd7185948136957af2496888060c7b7ea519b173d5f190c27c70f3dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 229\n# Factor of Mersenne number\nresult = valid\nvalue = 07c97d9108c2ad4329db02eb8f166349\n\n# tcId = 230\n# Factor of Mersenne number\nresult = valid\nvalue = 010001\n\n# tcId = 231\n# Factor of Mersenne number\nresult = valid\nvalue = 663d81\n\n# tcId = 232\n# Factor of Mersenne number\nresult = valid\nvalue = 00b161194487\n\n# tcId = 233\n# Factor of Mersenne number\nresult = valid\nvalue = 08112264cd9bb77f\n\n# tcId = 234\n# Factor of Mersenne number\nresult = valid\nvalue = 0b73493decfd9b68318ef9\n\n# tcId = 235\n# Factor of Mersenne number\nresult = valid\nvalue = 3d30f19cd101\n\n# tcId = 236\n# Factor of Mersenne number\nresult = valid\nvalue = 126cf51772d253cba3f5a7cf\n\n# tcId = 237\n# Factor of Mersenne number\nresult = valid\nvalue = 00d3eafc3af14601\n\n# tcId = 238\n# Factor of Mersenne number\nresult = valid\nvalue = 013540775b48cc32ba01\n\n# tcId = 239\n# Factor of Mersenne number\nresult = valid\nvalue = 3a294c585a8f5c7073e36ee3637cab2586d049baa0ba2c911801\n\n# tcId = 240\n# Factor of Mersenne number\nresult = valid\nvalue = 03f1cb0fdf0fbef0f3747f239f5a8983e72b455488b792c8e29308f8c78e7f\n\n# tcId = 241\n# Factor of Mersenne number\nresult = valid\nvalue = 37a5f7f30fd2d1f46cd794e8337106ccebced1189c1f5b6b3c525b64b6c36768785f7912013f\n\n# tcId = 242\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c4ec4ec5\n\n# tcId = 243\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c18f9c19\n\n# tcId = 244\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00a08ad8f3\n\n# tcId = 245\n# edge ca", + "se for Montgomery reduction\nresult = valid\nvalue = 00fcfcfcfd\n\n# tcId = 246\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c71c71c7\n\n# tcId = 247\n# edge case for Montgomery reduction\nresult = valid\nvalue = 3d70a3d7\n\n# tcId = 248\n# edge case for Montgomery reduction\nresult = valid\nvalue = 3ef368eb\n\n# tcId = 249\n# edge case for Montgomery reduction\nresult = valid\nvalue = 69d0369d\n\n# tcId = 250\n# edge case for Montgomery reduction\nresult = valid\nvalue = 51b3bea3677d46cf\n\n# tcId = 251\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7e3f1f8fc7e3f1f9\n\n# tcId = 252\n# edge case for Montgomery reduction\nresult = valid\nvalue = 43fa36f5e02e4851\n\n# tcId = 253\n# edge case for Montgomery reduction\nresult = valid\nvalue = 3454dca410f8ed9d\n\n# tcId = 254\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00c5b3f5dc83cd4e93\n\n# tcId = 255\n# edge case for Montgomery reduction\nresult = valid\nvalue = 593f69b02593f69b\n\n# tcId = 256\n# edge case for Montgomery reduction\nresult = valid\nvalue = 008f6ec07432d63dbb\n\n# tcId = 257\n# edge case for Montgomery reduction\nresult = valid\nvalue = 101767dce434a9b1\n\n# tcId = 258\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00fafafafafafafafafafafafafafafafb\n\n# tcId = 259\n# edge case for Montgomery reduction\nresult = valid\nvalue = 0c934ff1a0c934ff1a0c934ff1a0c935\n\n# tcId = 260\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00d2f87ebfcaa1c5a0f02806abc74be1fb\n\n# tcId = 261\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7880d53da3d15a842a343316c494d305\n\n# tcId = 262\n# edge case for Montgomery reduction\nresult = valid\nvalue = 6a850096a850096a850096a850096a85\n\n# tcId = 263\n# edge case for Montgomery reduction\nresult = valid\nvalue = 0098dbdea62334302c77d10fbfc4b593eb\n\n# tcId = 264\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00df0041ff7c0107fdf0041ff7c0107fdf\n\n# tcId = 265\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8af8b\n\n# tcId = 266\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7f26fe4dfc9bf937f26fe4dfc9bf937f26fe4dfc9bf937f26fe4dfc9bf937f27\n\n# tcId = 267\n# edge case for Montgomery reduction\nresult = valid\nvalue = 009b8f4f9e02732385830fec66e3d3e7809cc8e160c3fb19b8f4f9e02732385831\n\n# tcId = 268\n# edge case for Montgomery reduction\nresult = valid\nvalue = 64a9a50bc0a383524478973fdf4c22bf1b14f339bd92a6942f028e0d4911e25d\n\n# tcId = 269\n# edge case for Montgomery reduction\nresult = valid\nvalue = 7f95438b41e0500d578e97c3f5fe550e2d078140355e3a5f0fd7f95438b41e05\n\n# tcId = 270\n# edge case for Montgomery reduction\nresult = valid\nvalue = 5f1bbd6c9500cae5d85f1bbd6c9500cae5d85f1bbd6c9500cae5d85f1bbd6c95\n\n# tcId = 271\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00967300c9a633fcd967300c9a633fcd967300c9a633fcd967300c9a633fcd9673\n\n# tcId = 272\n# edge case for Montgomery reduction\nresult = valid\nvalue = 00a305942530f7f11f9cd2c027abb32354eb8b77a1c8368c165094c3dfc47e734b\n\n# tcId = 273\n# negative of a prime\nresult = acceptable\nvalue = feff\nflags = NegativeOfPrime\n\n# tcId = 274\n# negative of a prime\nresult = acceptable\nvalue = ff3b13b13b\nflags = NegativeOfPrime\n\n# tcId = 275\n# negative of a prime\nresult = acceptable\nvalue = ff38e38e39\nflags = NegativeOfPrime\n\n# tcId = 276\n# negative of a prime\nresult = acceptable\nvalue = ae4c415c9882b931\nflags = NegativeOfPrime\n\n# tcId = 277\n# negative of a prime\nresult = acceptable\nvalue = a6c0964fda6c0965\nflags = NegativeOfPrime\n\n# tcId = 278\n# negative of a prime\nresult = acceptable\nvalue = ff05050505050505050505050505050505\nflags = NegativeOfPrime\n\n# tcId = 279\n# negative of a prime\nresult = acceptable\nvalue = ff20ffbe0083fef8020ffbe0083fef8021\nflags = NegativeOfPrime\n\n# tcId = 280\n# negative of a prime\nresult = acceptable\nvalue = ff5075075075075075075075075075075075075075075075075075075075075075\nflags = NegativeOfPrime\n\n", +}; +static const size_t kLen120 = 26217; + +static const char *kData120[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha1_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 1\nct = ba366806e4ad50f76c0d8f63a84cc8c1045fbb2f9bef31da89214b2c8553e2d0126fb91e8ad9c78d1515c1593fcd589278369f83d8da3508beed573b2e8a2e61e09d9923476cf2d1cade862344a87c8e50d6600754089992851f44998be57109fe4f9a787fc13cba351f335df5f4cd656858a9d9b547438db4e0e81640618104fac10c0227733f85e041a322459c13ebcf4855fa69519ab94301561146830680e1616fcf4652d30dc6d0cd0aba397560d2a5b9556b42d42ee2088ef8793469d1142331a0b3018feb153999a2439349a709eecbf09568643f8e5d3389073eafd93d37544057e567c3a553269ea1b15a49388127532ab967860c0406a4b0cb3adc\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 8773fdde3f148ec33d4facdfba812e44001d90861c047a9eefe6c6540212795b50dd186bb7712b8448830fc1799e0543b7093e4770f301e9216922e80280e9b50582c669e3a9a4feb08ec6f5b2428dc7efbcf6fe49feb61fd2795af1c8b23acb605812c9d7586e4f48e4d758f0695b688d1b4b563067852b1ce9db5dc82aba29ab416178f616426e5d0caf3f9903de2a5beeb970af7281e7cdacaaa00662ae36fb0365c20c653b670b3e7be4b0680932f3254d48ec3505ca1547d1be27d2414a3539f405df91057f4f97aa7796d7ccb69ed553447131fbe79611756b7e564bba7d76ce9256168446b34498a2e91d9a955a8aa98a71a43d65ee60fcea39d811fe\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 504b4e0d94d800a9da92be8fa84fc345f7ab4921ec53c073c79592b347a692cce2450135e998e07bb75ed7ee44f047f75a07e37b9c912d3d529b62bef144952d5b202246ad32c5d34ec8559c4163e2145fa5fd4d56de28cbfe7e537d5732305945c9370bbc6dcd72b3296fd54a2660365715f7d911099c96dfe6d114eec7b4425cb65701aa9e08d99c7ac20179656bb678554d74baca4501b5d0b366c97224bf0c8734e00ff2af8b916aef8b83142d5ec142493e0cc4c57326515a50a31ec2c6703512034642e5789649773d2f8312561bf2f2f6000cebdbf7c7a95fbfd0f721c31ba392acea37568a24f176767f71b31f407573deef95c305e0e063db0e9168\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 25a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = a2550a9850903f3142bc1b1b54e45d7754e75ff0d39a8ae813b51eb8165be08a4c0366b93c803ef161650f8cb966f7dd4648f40363dd0cc37595e43756078955ef02e415b3e0efd5f9744d564eae763e307e893002dd1a9d0ba2997fe6658f3689fef4f4f21e7a972c0dc642993ff6612c6e6b43f9ce53674919abbc13e42772beb8c3f3f655df9dc9839e075e01beb9b93d8e016f57afc9a0207d9189b4bcb14ba6459ff5fdd5f2fed5260ac9a7a092feca20af0f23a00d8b990c074ca23d964e19e49c17c970bc972b70fda2b6c6e99e4e7ff11902ea7126257fd1964e7da07fbf413c8becb48729fbd861ddcc3fa6c3df2355759ef1338d02551b7fc80a88\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 6f35b56ebd7e12d58cf2239b3c926d21d54222da0d1943bcd0c0e446bc9213526c63ce0736b11340754460036eeac885dacac617499a58c56a6df5de1e91db4e1befba0237f696d1b6a8447163b839ddf082a1c5f8c1315f7fbab45b2bd8011accd5b2b1e3d4f35315e998eef82f368a72728817f7369648b9b1959781449707a5a668a6f8eefe5624135ff8edcdf9594eb4db32f27b2a6f5f7c6406c2f2c7b818f859d9e379a76c17b4d1535db7404e77d611f6cf5b4d0205f885883186d603c7a9920934fb5886406a38013f7a1864d5074f89ddc164c9e13f5aa5e4eb13dfc3a53b153c56d9f6403bf2ac5dde9c42227201fe314984752b5b41ef0064acb0\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 3530605f43b5539c80398f856eea8d88984af4a6a08db3b9d4093cc80d1a313c0ebe727eb2c45cec2025eee60f385822c09f82e3bcedf66b79c2b34a4f41aa8885eca5b9891798d47914f947c76881dbfc3f21ec27a11dc926c647b6b2a7f3292ec4aa32e969bab49afe203ffd79b0c1ab5777a041fbe4e9e1a679fe2d82e9c267ee7fbe54e9e0def68d8bbacb1e53da99aec8ba9255d2ff6676dbcc58498a386dd8a6b3cf0222a9e14fd03313303bec9d0439ff0e8a5a09ce2926ebe86cafd00cd8ca761b88df9cf84f7b8e07cc5f655199ea81ea6407ec264b5971738967a2e977132dc589c72f8bb639a9429feb512d8d32c441f7e1ce6c6befa08140a090\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 4d0cb9e23ea2f25cd93f6a4a5b9189156178572214c2bbc773158ed82b83cdfe7ac1e96d662afd46a9225b9e8d1ded274e00048c058d4cb66cccf4eb6c4ebaf30b97e3ff17a21223cded8708524bf75e3dec075833dc953dfd9a1341072f1485c60018f92bd41cedd0510085d818a5cb4df32c447294f4245385e1e5c4627c41450c1dfd22f34f96514aed1565976735e321c266300de6b93dd93e4db4e521b1a269947cb79bccd472cd40e3fd", + "430726723cb97bca50e610bd81daed31fc164c18ef378f68e405ee6d978f97cc042dd266c90b909ba52128824fea7f4496ad56e03fa4aeb528d2fd3d9bfae8295e1a5306b389654b1d7058890b5dbd6770ff5b\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 873c4ecb4858c60218b4ff5fe75ec216502367e0a8446fef2302da892816f127a8bedf7e2fff349be493857c4e363493b28f90365eae44323a933eae25701d84024c84e09b9163de0dc7ba2d44f97c29af5b9422c417bb241a2fd326efd9aed2dcd7cea55bb16b9571647eaece0a0ca71f7da7decfbc588cafa8beacf0b286e143ff77f05407388b72c89c6a4be35d074083e2a128fda53ba7d3363c0d261430667770fd7b42032a4d9764fa86dd4834eba3864acf3e0c230fd03581292562151faa1ed3f8433bc63472c425c382d7425b11c97969b1fd0fa0b014d47d87af919de6df72ba52be888e44de4fa63c215ea80fc61072a320a24e99c6a247880c9a\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 91de22e76714eff612a41318303dc5aaf154dc5e4b79df8495b5acba18a27be6dd454f2c39494aa18d1911aabf38bbad0460922404c6e2c08ac3abfdcdb963623f1c1c07eb2096dff7064d3c55c6221773e4b2a80adaeb210532ec76a3c92832b0aaf7da03cfb60303e0116cb6cdead2b7371cbfaebbf3e511503b9b8bcd54c13c035a44368fba19dfb8735c6117a3edcbe9939afabd7204b6542c77d31a6a244b10481211ec99e45231203720043fe89a57c7a612b3588b12166c55edec13b8265a2c091dd859d4f34eb66ead8b583fd1f0f0ec739b92e7618c1abe1e3e9219fc43f628fe89ccdf2cabc07ffcc5c485c4cadbbbeb02efd8394f4db0b72d81d8\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 8654643090ce426118dcce2bb0fca3b2a4ed45589d73ae2f5683334f17ca5b9f41eb97ff566cbbc0171d8962fcca465f66f4cf14d0114d7768bbac1dfb726d91331670e0e88ce7286e1f0ee7acd5cd75e0d325adc9f47ff02820544770ecf46f381ff330a5c75978e8d248cc12f0752cc7c452265ae919f5a4dd7c20023fbf51d0b413afe09f746114d16d1be499c98d270e9213a37a2a745a3bb216bd30a07d110558090f4fe73debea009e18eb3770eeddd7150b4c7231539f7232d837836490c9547e27dac00efb5a8ccdf9a7c3c1d29c035170a517db899ee61925cc7a2cd278cf576ebe8281bd3a4f2665f15dd0b2e61bcd65172c2fff50a86a2adbf2f1\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 7866ab0f81437de93442325f02f86a305c4a4a0871207ff3203746c26a43fff5979e68c74264c34dad13955a32785ec1523fccb264957ed6f6b822b5c052b9161d6b75adde451c6f8d637a75dffc9b9a9103934e777cef41b7966bf730a648e5b96aa587936d460124dcec515b55473a009844f19cb2794bd739557d25417e2c036762a921481d728b4d32a8015b17539b7cc2a16a2b33e43b85561a2119fb6c9d8ed42d6bec324281be79e2f79426c653f8445a20cce87a2c263e7933b8ef3fa0b9f9f38fd115fde459e5d32eee2412c0af06d2f6454e04ba060ea87c5aa0d4b365f24b4f05bb27c4aa42061a45cdcef1a39118018b875dfb9f904fda4d80fb\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 55fe2f0fdbe16bc284545cf2be83d2a92a526f52e33e7b116b265859f14433fdf3ae92e10b3a906ac95a4541c42eb80b3aa963e5d9dc4d3414bb5f378cfb3d50af10e9e84fe0e31c98e091643ee99fda65a2a8802f9fba68492beab9e606501b8e82a3d830175137617ae0352bc790b4ecfb76fc126c34fc600f5f09b58f3915155d3ae4820d91904cb92b61fe9193d150d4f0b6bbbaba2692eaff15d2a0f01d0bfb81228462954f404ae06350a24469381047a62e281d2bfa798a3fe19ab0c808de18ebaea11941e6325c04927e0af3499043a42705cfece04a60b6ed8c280869787a4f3d484218f09f0b266efc3a5b442098c82cdf809820cf3b8e7f6ebb8c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 930eeedfc0e94791a2118b228c4e1522ab52f5fbe53373d9c11b4d1b2595b121780f4312a4f834614df0c31425483dd845279b08fc0f1081dafcf51f32958505960e2eb9b9672c9a72a12fb45a25df678009542a171ef8d7f07b11fbe52db47957ce38d9242852a228a4ea864c36d14d58bf41d2a1151b8c18cad777c9a6f8542b2f3c9c84990a461df613f36a0461658b98ba193e6e6b14765021d0272536c044d8820bc3a5da2404f11a35c632b8c0f9ee8f5f3cf6c77934a7b03750031d6d7cd99623c484c5c244ddc07559ea756886d235844d9c6ba4aa24fab14e9c4ed01bac85d332869a8ba8c05ca7a074409e8231ae38c0e1bb98412fdf124f3ffa9f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = bbf27bdc6311952dcf7bb31459ad6f97e09d5948c7d21226c656121aaaf3ac28118efc49e379eabad3ab4b576b494cf438d0e210b8cbe6067a07ca78af7df1547ef9accb15c5c2601c2a020780cb14757201bfab58bb85ef5642d9b5b97ab768f285eb2012f1ed8f7bbd2bc4ac2b9eddbd656dc7477e800e95924827ba6d4f5bfae058e34150dc676e91cec780528d6bdb9d39c4af4005035ef45afeced57ca8f2817b5fcec969a6afa2e0df7cfe5b818bbdda76d7b760454f682d553f6976562f7f529ed8319cbc98bcc759db0c5f3c7c47557092bb3e0d3b208ab6fdfe75dd5c081ff4fcdb08556e78877623fdc4be029933bb659fd3677d62bcb5d8d37818\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 0fe6fcde58648f13ebd5f0ccbd68458da8ae18dfbe82238d2fb90eb42b743dcbe7b12b33f77e31ca85eaf694dcc1159c2fd4778fce93ceca25f5123aa63ad8ddbf776400d489d8d3d46665c9d22b4382d468881b7aa30c97cc6068a9031a100cd4b035426932c488a6396de7bf42bdfc8da04af6ceaa7836752feccfbe5295a757dfcc25c8e8c5cfe122bcb764f0660528e162c3205e0a6b9f8d399f50529005467f56ea70c0182c9d679d13dbb0e1ea24b84709c1681418cd174f4467f943cd5a1802bd0ac666dabac72bb3be4d3ab9874b23c4c394f3287075c60454daad062f2e5b81bfb14222c97caef742482c6729c9b44de880e07668b59a93d8e27d17\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 0a182cc23064e7b1d11ff906ed40842213938431906395ac4995b9e8e56fa3835e9fc4c4ca81d5cd0e14814bf16de6e07ddd949b43522387e8f543672dc965976229da3e791efccf4a4d28c3d5cc8c32f7216e89400794c495a54d2b38f72e30570b43b58c657471fb9b6be7a999807976263cc259c06df51e632beecd7372e2d0ffa17f79d029dba8cf00611caa9e05bdc0ef87d9a2f5f02e4732aac5bdbf1d754e2263a209a9b211a1a8712a2b9a8dbf676fb7bf130c505ec1972e4c5c4baef2e33c955e63d55cecb818f9c85dfb1fa54207a406f153ce77d946c60c4faa289d955d73a8c64f5d4dbc2fac3b4741eff3b3fc205e1bdaf7fabd738d01eaa404\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = affb9604fa25ac904e054b0401d51c566c7556c965088e81bb0181dc16532b5c5800117eaee491c1dcfebb184ca00ccfb3a934a4e3efd42a2249ef6d4a1df93af90db0d135a000c97fc1092e85cca90770e4b3583baa654cd127b5ef7549d7d7a4dab1ccb16b7fb0b0eaa6ae401e023efa97ef61a136554d013c61934cb9996db2cbac0a4b68651285ef3421ae2276c7e65dc81d8e3089c15e36e2bcd8f42926daa907f56e5fa4d6a8f3891e71b4f80a15798a94bb64aa68e295bb0d1f6669ea761de0792fee6e0bff465e53b1447eff610b33d38eca86d9c66b542f579338fd944f6a116333dec3684e4c78aba1b1ec12e8e6712206f81701d30a3b43688d0b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = a455a8536e5295ac29243e3f7bfd2f6ebf1aa7e3d1333c1bd9fe05b6ade3aa913b859dbd45ba093ae9b034f619f99a69eaa680ffb7be3ab38784648f6f31f858200992f95740ff2edb835f8fc03bb6785278ab9eae742d5966519fa9f584f0c3044136d04fe12104ec8a8bd07950334db8df8a83af843347a10974245c723fc85686240eefd0cce09d81a63c6f6a4d2b83d29ff9ad060129e5521da5e635dc05796ba540f1dad25b9423bda365202709e5e287a2b0d7b09a2ab6031447e1a2ae8efd9e980a29dff1458327edc0ad162670f80343d8490118856f396c72058227f57b9b0ba66b13c4e7117538bcda3e937dfe05d10a764c0ba1f5626478d4fc72\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 96982e222302818f506285642768615f426bdf9f3b4daf80ec5e3ea26cbbe7f5ab48cbdaca4ab0538bfdd91f7678101b61181806f48b2d6fe778d899804a888716a0c2c3a7078513b1cbaf1d096e6fdc83abc2fe40b6742709a2e51afd8e767aa4a72bb4554286140533e4bd5432010d6016d308d475eb2a40165d46dba630c11a183532f658bd538096c1877fc4d843d9d2d8cee570dadc9895cfe2372df9601fcd74399006466fb9ed923b7d9abbad9bc7de963e0eeac7bbd56f20e1c254ef722d523fa8f3bdb0b91b37202e11b4578a3252673e69ec05a05ea60913ea1b9e6228d9fa0c85ac6d794dfeccdf7595828b06df2bdc89fd8d22629fdfee205be7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = ae11f45e24cffa8e4f37be34ec87852db77c2501", + "c1274e23477c50d62313480ba2ac9de76b790a355b50c2f2ed2dd061cd860ff7932cadaa0e1565e43d4177ac98e26d964e81cfb7c20fba7e2b0853fdcc7deab75b62ef5f231ea29f10c83c2f27c9215b7d10d85443d967ce7fcd41b0de999d9f98a072dc80fb5857d47e4373c736bae728932733d0a071164b6d6dea3205e267bebc287d9b5035a76978dcc2f38946dddca48a6a6035557dd9e1aaec4344dbb457612eb27b9302e02ea0c9456984e70faf235aecd20cb32f3da016c9a8a8b23e07a06dfa57f5a25853944cbf538c864169566797a4346e52fcd2ea1489799109820cca4b6249502270dfb1f6\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 8ba65949d2a53d5a933abbdff1efb4b6861484dc230bca0c363a66202691bd39d94798664763d72f55edb37e8cc791b3904c42c4e1b75e4aaad312f5dc53a246f211d19e311a974c92ff8af0573dc831c51194e59c920ec3d6325f06b9c4bceaa6e55696b185163e73aac401fc1925cffcc7b80985bab727288d258a3c60f7d3d2d8ec80dcfe7547229183a19247e3ea10afcb0fb0c8e7c4c57bd5cfd5529abbd407f959f4b9c492411691da445fc5ff3ffdd11fcd20c2a2936d1373b55c2ee41a7b43c049b40cc55f7bc85e46b0d8464a3add0bf28a0d3ee46c12e6fd600f840ed65f11d590381fb9c6a80a46d64570eb4f6930ed24087e47aa12eca2a1329a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = e2dae040ee2a2d4c4a0e620b5dd05b56df67f079884f0bbfb64a3eeff08fdaafdccc458b014d53f0574f9ec5514ef21524373c0408b2d67c11fdc812762812db75786693b66313ec08cd001d90787a1b4cee69d3a9f2cf9ab81503be8f205c701da8a39d70b1e8cc40f132b3bed46ed8f466cdee0d032955dacc5c373789f5d58886a3a5cff7c841a5b34789a3091a0f1903a2227ac24ccf0a2fc3739c92210afdf726d53e07692f3fb82f431f2779768766608111f6f4f9cfdf256d79c5ab13cf68e9d494b2c60fd5eeabdaf4b0c896fdc190db93c78c85671ed3ab6b48b7bef639dd19b4f224d0667f1fffc200019773ad09be3f58b1eb5a7cec3289ff8f9f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 000025a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 25a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em represents a small integer\nct = 092d5b4bea487029a4c06c97f727f6ad4531f7f646c95cd269e1e606a7e047c19a6a9eca8fa5abcbbca415477420ba422a7d5ba41ac79ba7548aa6f4b44aa65ad915ec11d7f50cd2ad7eac86869bf88bd7cbd11439aec354a25be71d36541e7ef211ae010d8259ac7b5af49e38e14d87b62a3e7840316799b548f14339cf7b46ccffd66e596b0879782f8638b975a89edc2b2355f05c53845078502d046b7f4371bdf911e30302fa980fefb439737333fa9c179c33a98e1b052da7da2436e8b862ee5f7c63c88ab751a244705c8bd1f32c277e0a7c80ef302bd01c9fd50c9b7b6395044c72461dc69aea549e37858b8b53b2792238f59445684e551e52e08750\nlabel = 610c549ce717749d3143cbd96c51c1c75885a5d200000000\nmsg = 32fdd5b5319188914afbe21b1fa91bc4e484ecd1f9968231879e372570c43a27f720e6773e1d905b70f85a312347f7e9752a8c4f5b9f27bd01530b6efeb221dddc723cd51b4bc4814992268c403ed4fdddd526efa87d835069246f25e8098dd5ae3e463fd639b36a4c139476b3d29ae0c9b6c163d81e7719cc85e65289bdde2f82b69bb4aa9c5a5dcd513421a54e5d4638d8c23567c12978c3aa806ba7964a547a689360105fc1b2468fa1480204d468ba2fe41ce9302328d4279e00a9af1c7cdd9f16d572e70b06f1f40acfd50c8865ef37d888b2fb\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 58a4e190a7306bcb33ea5f1ad83b74da56e3debd2b2fb4499ea9339379b0f08117c77b4d5ca6dd1ad51a4cea4b818c270344980077674c8bf6e8a5ce5ab6212ddcabcd53be82672f19d535debf66bf853538d163b6128468fa21bd4464e84fbfa92501ad51bb1bf7e14ff522ecfd65a29e08ef23aae01218d7635915f8372055e0c6a2ed1de61511484bd6c32286a23a9eb2f1999708e8ed5e28516874241eb778713a845241151a946c509c07e4d27c167b7b5ef6f7a4f1fadf9049996eab17d97ef4d22550649060692af63fd06d05c76f3191689158323605582696729db7d94f730e5107d0d585cea56160968a887ab42bee7fd4f9ffd1449f021a3d41ab\nlabel = a0a0b480327073f080fc1efd8cf5be9bfcefd3a000000000\nmsg = f032ef2759de946b6ccf829695a9438e5f986fdbbf333262a795ff9ede842bb7b153c526abd1ea498f56e992bd21558c7c3b6434e4c667ccd16687eddc199bbaa59547e065a8a3814cd5ea46d7437c1d6bdd8f1a72ee5e945a2b1f11da2049a685ddb525da742260a20ce52f95755b8d7b5d29dfe7f55395c6203c518d5f45ae7435fbc19efb7fa9d2e1626cd655d409e35fdc4e8b5773965d9db726afa40a73cb212b60678bbc7a0417b94d97e03c273c8ee2ec49f23f57576ab3bce568fa2a1080f0f036e6971eba8a773b405ba2c5ba6564a4289a\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has a large hamming weight\nct = 526352ba3b50ba160f05b9b7604abd508e744e176f99f5ed5fa47869dbf220f32fa43f7942a8951a75505a5800f8f49233d57778ea9dd5220bbecef15d38dd7400ba81ff4cd5085d2d20af7ce79f097ec08ce2a8dbab4482675ff08bda80c74078a44cd89af547a356cd21bb4be52a0cc5dad5bc779b54fbad60d15f10ca79d25e82f19d9dbfff7ecc1cccd8374582bef1d4bc3fa745259dcaecc56b8f162f7d4063aa2c99ed8f418f2aa5658df7d1f36041883b4484ac6766b059948960fa2e40363c6c56242396809f4b036fd91d46de8eb053c8cb0297784120264c6ac7e359f4ad5ec65a002644c03cfc166a8e5a019b8236c7", + "d7145df247cd123a09c8c2\nlabel = bba0b480327073f080fc1efd8cf5be9bfcefd3a000000000\nmsg = a472bbae5a81e6500afc183d8bd1ceec795f4907c496830bff4a9f3b15f1768724cec8d288d1d11f47529538cdf93f769917afd65d033d4f563cc14f6dd39a8e7e03afde9eb374b9177f5bed74ebcbf771f630a1b3075d0a308ce65424386304396e824528deed8a2ac7a387f7a3eec3b633882c92e9c33eba9a91f9297dd6aeef37a5d475d10fe69e0b1264fc2ea1cb45ab4f1c6908cedac276183adee1f60da7cc1a105ed5ef187c2b11748e98c8a93af9683d441a3088cb0aa669b06db151e7151371d0273e2ecb161c8fa69d4e56666681c6439b\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has a large hamming weight\nct = 6ab92b1c57f99c17ae4ca5f7d4c0149eb24cb18aaf36163859e1186dcbafeeda4d77fd059b0f938e92b8d413b771852fb019a66d76009444605edd5fb48e6eebbd9d01827be732292cb07cde541dce138990d46599b5a196525af199ad4adf7c259109e715e563d8974cbbeae62a53c8137076f10731a964f2ce37305a175d35eb7c8e6e72c9792631d35133dcd49f1a1da677ab3ac074172778402a4176c036cd8ac5674770f171d9134585a115f6a0983d606b748e0e47be040acda88cc5b8c7eadd33162117bb61f49cace91260c5e2c8ef4dbcec7f156a18894a2bed9956520b2b681b2fa31347df7ea98062d97f2972280be22e507249b2436a9ab91689\nlabel = 7fa0b480327073f080fc1efd8cf5be9bfcefd3a000000000\nmsg = 6d5c2cb5790875728fb21e987278fdd1d881cf4953e62866f8d53ebb067cf9a4ef53218030e3eca6732a6b1f789cdf3cc711b6063a01f424b388905549663769dcdcbdd82deb6bc23f66c1c04d30c6d91fd6116bdf8802c150fed396562edd21ca606528cd40b569e895c8ad5bd1bd5848a215501537dccbd0fcd70cf3b2d0df58a072e07f60ff764c4688c37240863242f6eafe36601dfcda41eb863f4db701de54781a6d53a97932d32aae0e6a526048f766902128b4842068fad9ab10811ce93339ad42f2e13c4cec324a8cf7035705b8a36fd8a7\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen121 = 21242; + +static const char *kData121[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha224_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 1\nct = 03aea385d1f1321eeac78684a79ea101f54adae40474a54c8e574e1ae3871634050e5b596461730c345cfc93224deb7a26ae40f30a0497d7c6f0e141e9657b84bf9e20606fa7fe6e1c921d8de5032ad8ecc37b7c3247a56b3992c7c63dfc3fe2f22d7c4904fbddc371f560fef052f3ed89202bcc5f92f5a7fced461f984406554eadb85ab7d2bd7fc576d333b8876f82860c94aabb705e34e5f385cc2d7acfc5463a0135a15ed3c417789e0b8873d5fa0241c9a0d9894f617cf55c11fc45a47b3fcc04fa5b57e9e188addcf259a0f8051f254b6a57c2af22cbd4eb2c411e229045efbb577da4f480989d173a2fa367af721088547a8a219ff2466561eaa877e1\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 5d19107e5f9422dd3d9e2207ca637f7347454c338c3191ef2eb5687a49f6570f723aab7ebbd78abba840942e74aea052dc24792c9eef1d72c148733c19776216431f917b81a9a80ff4b1883daba20dc6c368c525a2105550715a374583b56f9030df876d67b229fba732369113585166e41f8b5bb7735afc50970396f47921cb2d6c8bdedd5ff1f0411c804e412c2523da5354a0232a46bf9268402fb952f0ca00d04bfc4504c2ecd9772001b2d77be4731e131f90b46e0d0f51a6f7d787d95f01ce64f78b0c4759db1e4546857658b4bb899cb2e024d15b8bd14d0f2fd02a4001be3b6ab35ac589a83234d8d906750dec3e509332ca081969b26a1dd0ac7614\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 00d7ab45e49e37e0d73d9ec5d477985b51d9e1b7b9eb67a8e0224f49d8a3432c0dd8df02b5dbe8962b8a3d749d71e56c7871c0b4137d98de5b77d5f94bb448e124b57b2af9c24004bb693baf2d9f54fefe770f6f320cbe73c0405276b09b1d0627b3018787a3b27e09aa0b3ce50a79f946fc45746de72a93554b993936d3a41bf90bd9f2913f5580c8c1c1b853271286dacf275280faa981c78dfefcd4dd09b6f09bd5dde3ec11b02eb4538e43fbae835e40f903c81744797f04f5a38409a502f3a7eb9447a342dccd82fb192601d40f57192255f751f102e14fedc7e7aa81c770c6b72dcb853366b7a18fb11b8e3b3ee218e59f2dd74feba1bb6e06a87405d7\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 942fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 36deb3f715d91d4f2c5a21a028f87b227dafedb7c0e064712dad36c276fc15bea7d0d3671b115323849ecf52e6326e5f2b205033177410eddd8e29fb06a1b93e99ff62ac8f7dbb973345947de615e9a8da910b5c810732985c3020d93e7485c69801b7ed49433ad66a0708f26d51c0fbd1c73cafc4c89f50a20a09369db4d065e9cd7845be623e86f497a0c3e9485701f18006b8130210cf09c69dcab7ec0e3c166fbbc5cc78c89dbd0cdaf7219b03dc580b4b8f7497c1f9f36d1c61e1609be1f67b892871ded426121c5f83e38d39127c7b574157e2f4ca589efe094c3472348bad8ec5b07b4a2f3f68d4176b6f381930ef377c640ae8491b5bc3249a5296fb\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 39f8f5ee290e93d4a36b96aa94a3bb7edb33c0fb6565ca6a99fe2434222be6b6846af4daa933bc6ecb62e963d2e107f51bba8a92ea5a4e6490402102dd378a55c0ee2224e77395e27bf28a216c6f929db2c2c95721d1448160e888aa93251c966858535146a70188d87443416101e530cef68a1781f10368ceb43c287c73cd8c44592c56bd8f2bd501284c3118fa0f0402b42ca7c4ea3a917afe71ea82df1655a39c650ea6adc9d73e789970d9b3bbe3f34d0fc4dc5fd51529cd328a62dee0c30eafbaf7dd51de3c31090833024124741966bc8722a157a8e71ed60bb3ef4704ebfabeba4ef67edfc5a120a0ee3316797e0e6a9ddb4d3bc7dcc9f4c262fe022d\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = b798998999f0e4318470e72841a57733c842f174121247fbf3e59e7724bfd9501425234f8616d288f0dc8206c727aba50c13016d4be6f3bb64bed9dc5122b94522b8987a9db93403975302ef6fd585cad02556a735ffc5332d362272a07c1ddde4484639ab767e39881fa1c0077aed9e8ea4f6349f59940953c956f52065fde0a97624d0840fa610a46dcbdd12b8ea3c56c5873e9fb3f58e43ac719d50c75b434b01fd7f65c7eabd5a71f305561088ffd2fa7bb8698d16455a81d233a4dcc4c1f12280bae89741ac47885552d21b37523ffa8901a2256b3f7fd410b6d842a786ce2cd6ab81a7596ce5479eee98aa3836a22ee8307888d9365a962f2746b01430\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 2860d0785fcecef5d43ea029d6ef89b978b25b091a2bb64ee1b95da7dd257ed644a5e4ae1437bb20840715895adc9b2dfaaa1a427ab35d6380c0a6840c022a2fa1eff9b6de19568cf8276ce549365c768a0ee6d84c4c4f4c582ed93c297e83507c8495b3951279b274215cbae88de81447ff5d5d9421fb025a821a934d0103b9efa6d36067cfd394751251ccf4418e32c283ace982f8ee86635b9489aa2e756ccf6d2773a4c8613b89", + "9b7764c319153762a9ad14352538507d36f70f56e47c74e2786b8197ad42e2380324ba8cfc80d354eb4487e3642dba175cdcd8382f074e170e326f2cdce0cbdc3831aae1e1abb87756e503520b87a18eff17fca24fe20c\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a13447bed3796370d356bca37fe2ce27d19022301007dcaafa7162de0897698bf706c3c4594107e9a3585091178a25f458aed6e63eda039b1ab89704757d80a94751ee21c1fb672ca1a8f448fe8d959ec226867bb13dedd1b870986a9e7fec6893fd2d8d533ff13e60b7d61303e123d1f50b7301ac9dbce4480cb3d334b72e048f8740a5b9739bd07beef64265dcd6576dbbc956095aa586a1f22962dc96a00baf953faf836dce03568f3bea85696b074c9e1180dc2f801efe48a47e0735195944891a866d3e2cd1edb8333bf5164b94e618b1204af410644d966fab0e49b23efb23ee2038dfa88bf231ed1deab19346c4833f17ead5f1a2f15d695eef4e14df\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 19dc98b0bd6a47a1d0cf9c9584bae53837bc666029ba6478152d23cfd36e72f1c686543a5836a6420c5f2c984c6c025cd26ec5c6a74ca4e0eb87ea26ad2ee94365c3a6ad0928f9bc9f560bef8b2830374707f7dbba0a938b230f8a42de6645fe765422810eceaa713e8f78e0fbe48b70bc636e21030a89b80118fd4bc066e4d5400529e9c2f8984bbd5800168d72329bfe0d86ac71d3b3d7aa749b1d860afc9b49dac1ee8fd12b73ffa7c095c610df9d502e80c8108b6c944eddca8162666b7955d061231a95698c4c8470217ef9c47ad1003c80f032d95b7a29f459d7ddff205a9b02513f977fdb72b148869527539c0f21a4d749a0301a2fc686e12a2aa6cc\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 94ad881563060d9ac62c32f57f9cf08c57ec10bcf77b35a67ce89da68cf8569e2e6891ed966ab988e68a0e6e44b389a57e2ceccf4e7e32d6bb73be98db72bf363d0da8a20d063e9be5d9f4c62e718004132c9cf876ef58b07c122f02691896df3deac296dbf3e1f6841d02572b6e297d2f0c8a54cc4088fc9bbc0f67f9de75dbdf81cd48e2f45b3b9ff2bdd3ac749d4f43866ecea7483e810cd3c332f055cea1525f263c54e5ca3e1e049af11850bc836e6064cda5cf9204e9cba0857b1fcd65654e30b062e980150d541027a212ecda6985f7e93a0f799679a7c36918aa39de158e0fd52c5cdde046fe6e4ee67f20ccdec1c4d328098c09e6b2fe4251586b67\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = bdcbfb51335812a53e7db2c1b73ed5585fd7899936adb790f4b10327ee075714e21e7df55bddc6888adce032ffe1935d37178adb4dbff608eb5f4cf9e29bc32554358a829ad0b84b1cde5da1018440fa31f60ca72407f5604ea216a139c34034705d295bad65cb9fade9951e17d1ee85f4a46dd4ce81bc878daeddd800d0296eaa90345dcfd83f6dff5cb3ed87c7a8b5985b2ccd7f925b67d39920438b66c1ae1c1321fea7a8a90023f57cd97a50081c42d012de9ba5b98a1aec7da9929cf783def9efdafeaa8d9302da9fd44ec252cb5a97d5dd4fc6f68daddaa9d0f431b7968386df1a514f407f1342e33b996ee9c4b5af934f1aa2fe1e1ad485438d497afd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 61b8f5873124a6ec36f1ae35081f79e17516362e8e7c5ddf3f44af7070808411db7182a3c82b70cb4c0510aac537a817c6087b907627cdccfcec4cd4b0a901f8aa2ef75e797457cc6f5a0effaaa9b6c542726eb45e9b27e3040d9dd283cb92f1514d93f00f9ea8f40170fb26129d82f169d5e3d9e4d57a38eac39a5aa5dc7fbece162c2f0f13fc095894f323cef093eaa2f000507fbe9d2fa22078bf824b9df7b894ec9705c16e9dd43d2c98f11594e04cf120666c72c8192658e94b02ac89876d51173bfe282c90ff93a5a68d1136e2ebc98fbaf956f28c71df44975fc6376003e713dc5d89ef08658a4d3686a198a4d140259e213f9fbcf5471afb3e0bdfae\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 4fd0d013bedc7ec38e1cb2bb2c234bec4a91733c1363f1dcb7ca47b6d4c8cbd56d7d75255efb3d5fee9f0c1bc5f00560f14ec1947274287153f8db015df8f4f4db9e9d0d9cef10302cac8cfeb72e04feb612ddb2bf4d58a50e19d77027457cbcc158dbcc845ad48b13d710ba1156a9d8f50a27da1e09f0c449e4571a359b4bd9555dad9f5b9354d6ebcf31171704315f6daff2a50b9807dfbfd94264680f44e146039216d83821e27c7933cfe13efb6b0f3912c51dad42bf433d89ccf52a7de04b59931665ed7ca91c7b9b9ce9da70c47c5e91f55cfc6f97c88ce230dadc2222e25f8d25f6f669762bc05e3888b9a05bfc03ea32cc43df08c84219d5c75d7283\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = bd6952203734e2d690c1468c7707b6976f802e82d79a786b40e64275d563b36f1e91bc99853eb3c194d265509b8011ca2d553f6fbbe7a0d6cbb1de6a61dc2b4f6f89344b3033f41e0b302eb626f800c4cf316dbed56580210f951535656605ff142fb8f4e116663b17e0cf8725de29c385737660b4e04c0b710726a70c39d5c417c12a653c3be05031958b1a14befdf95c582e677daa8364fb5ab08cc7d9aa59e02792c44867f68daef5eac69d81200d8dc12dc34be80bece0b80cb16b40a6317ce24ee21e8c082af1598bc4f590459cbf469ddfa4130118fd4686ebb636de9fa41216c24885726d53ebfe50bdb41fd93ae97b079fae913694543339e5cb3ec7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 916331689c162246baef783597f0448e34dc5d358b7f00fa47d5549f4fb52c7607c3a3d571b0930705ea61da60d59e96f9b4cb9fa6aac7fc737cbf6615c98b4f8ecd4a0c27878f469edba1bfc1108b104f73d90f089621ba85a938714818efa68c0483359e014c69c84209e1560b8692b8ac90e6164796cd1bc0578805d9e7318bbf08345835c67397eddc2d326468f594b2d4ddaaf8c67f5dfd998eab7c2fecb6a9ce63bde38cf23e0b0f252dbe964647da61dd054d10c5ea82abf730b0ef1722f98aeb15dda842a099501246700dc37d696177f52345c7a8be7bf55d0fb0f134731fc138ece8feee540bfc0da05edb375a1c0035e6fb0168a6424cf25bec5f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 7d9133d56002b70d758be84c5765c01ada73449ad76776d0dd6995062b5707c6033cc93a3d3056d5cb576d5c8ef6e65f8f3aa2555a454a953c405e5163bf2b0e7f6fbbc9dcd210430862ad22628dc2529179eaaa047f2f87a5f5831a36b604a117908a2170497c218db30110812da89559c5ebaea9281429172088558b7754624f1dd71cff3eacaac9e71df7e4404129cc1b7a1d77c5d34167a3ac4214a74e11d154e1ad42c4d12e9ea32c40bf3d92b356ca5cff7ca65c5cab2298b2899c00fe15bc31996038b577f50204d0def12c900bbdbff4f7ddca011437e01ec923ef76144f097c6951c0606c18bb200c700f451529594512d4ec4c55980c7c0aade461\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 8dabf24844e59cba5ce1ab2a32862c6357c465475b98cfd54c5dbd07017e0ba9215aeddd2dde36d2db9891661e6a8a9ca5bf9676ed193047dbd140875f312fee28db4ffc433dd8edec1fd8c342faaf36ee398f8aed0108a3ce98f145883ad126eb025a011c64ea51e2008a14fde229622275c8fda70f3bb83d92597a110c655cf6303a96bed0ac6955501f14b663255ed5cefa0d7a14ff79a993c4f42db39e67530d0263b55832678bf1502d2defc59bf6848d2929ff8959cdf4d7e44c2721786b2306a8e6eebb4ba8d470d15bd8e608652c5d3922aedac36727ff02b55f3e4eebc38924392d28306f8e364f61d8f7cf4749165790cfaff47c3ba7c81ec5430c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 4ea21ab2ff547aa2e8edb93ce6e041b654793095327f4fa21f5bb5a06d84c40cdb428e99a4fee6e90697cc8e79f5a1919b47d057b79bf4be5baff430c28896a336705c57da70586cceaba902aa3740be61b41403d7bba0bf939ed2faad83206e0a41536247fc8b8e4e58686d0d19b8cf3aeabe578f4af256100a79472c4d501dc32bd30d7a921574b1e0d4f4ed2151350d246ceff46abd7b588d66c519d7191231461aab4009c03c3995b9e3b7296eddc6db550d8e6f57d1496fcf2d1c18b993557f11a7df438d4a9c73b680fe653297af059964a691bfdb378497528c1ede29bda74389bc462f6729d4ee3303e6e4ea17ece5e270e2dd2bd5ac6f415f972a9f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 8d15a2f44d4b458af3d83dc082cd75e1fb78f6d8016a22458afaa019bcee0fb298d2990941c1bc9c0594fdbe4d292183b7b3c7d3a747117cab05a1312c34ae5ab16f25f7f002b8ff9cc905d2372601103f12c6c69d91ef320d0f31775fe72f8d7db1e8e0b7a6f45fdccf017b74d4e6a3af16099be38d605921652dde236101c16ed6310e126e36b74936a04ca0fb0c26b0d4b28b1aa2ad42cbee98747b7c43ed3ad7a5388cab80b25b5ef5be9fac24f6d0b373919493f928df49bb415f7842b47c13e44f45c042da263ea3b5b989312bd6284fd049a59ffc5eab219440874d173bd11744419aff23450f86d7c7bea2a341361a306b299a8513a94b9c034bfed5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 4f802efe0073cf430f7af010f23dffdca40a4a53db96a5cb00431170c6ea57d3", + "bd6d50cfb0cacf6772017adc41810de36f020efb1e00e500a3ca6329ff3d88d86322c0764d4b11f75746b78dfb0838a848d24e0c471d58743a296f10b3fbf44375b289f87ad7ffcbafcaa46a2a0301270b48d123d61ea6f21dc4666df0ea2078140b742ae75c1887d29742dcd7b92b4cbda27b98d8e16b43ced64d5e2a207778d6f022f3228c0b7edeff81437d3669c418186e651b7ed2df8963c5a71726d1f507c8fb694a9a94ef7ff17dca9e1bd79c9686097e7286665a454a9b68acc4334349d99b9d5ab7093fc36c0c0c11d41ac6de2e4c3935bd0ec2eaba1502d22ba0d3\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 91a3872121d32ba547703f8a0b9c9aca280f099b9c559998fb39d8841f7ab6a1fdf05a81f246c324ce435d7d9ea135fbc989e15a56df082b5e1c47b3b40f86cd5db01304ffdd328ae99d205d4185bbdf506acba181cdcd2d1d48be3b860d96e0c6ca54ce626372a2a749121af68523decff2c4f02d9d6bfb3d3b9a175e9ce1f03e4616230d32d691a4a8455ec09995962d651cb6f85d2cad6b09e35274368f2eee8ae5c7aa123a16407bcdb200bb351ede750f4798b083ce82f2800e04b66fd2be942b4a64d56dd582de56e3da7facc71157ddaa124502cdae10591eac676df0c94224649cd109027af09cb147dbfd9938488e7be36cb1146753e7656421e90c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000942fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 942fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 2fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen122 = 25538; + +static const char *kData122[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha224_mgf1sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 1\nct = 5b467ce0a97ef94c7956b5f2ce08f88acabc4e9d6e7b83e6521e73c03abe9fda31c4c2c61ea1dcf5a4bea5f68cd1c17198c9c9f22cf9bcb6797629b9db4d96341503d7bc1286c0c47faca078594ab01530f88dae2fae71e5601c8a79040c81afda8f60fc1853df885885d8d2cc6bcb905f105f448d984e4a2374e78e4c357ef5674fe9917e30196d33fd97c4d67cb98c2a0c3f30c410453679ae748fb922a91da74359ad8dd9b00865517e7f225a8c999bf7c93bfa83bd687404425321e73f9e1fb97c11562f0622b217b09ac3542e0ac650a451011431a870c2ad77b9be4c72068e25dcaed1f2f9cf9a2a8336b407711c3fe16f2bc2c12e5454275ef783c732\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 9dd1ed2ae7257d576d793a110e0b39d85fe2b312ede286f0c1bec4fd975f10f9f51d9cb1b467de234697c428094a87879434f21f91e39fbd2e1d4b877313af6d9c92f4a7a16ba148fc5bd48c5405e27a9bfd6f2832f0f40fdb32ed3067fe2952060e5726a9a97d55e055b623cc42ed6a4db870f246ece6e89ce346060a4a5cca214a35e868231528c0c184a167f1d7c331cb0c1af95d6abd6dda250262aa54f2f6016d12d3b530dfe09d31eb182ea3718d8241bfa3e60137db838043ef4cce8ba28fd32b94198501d8d3d81dc9cf7eb5163c41753abee2ccbcbd368b8383b39bfe0739fe84f3e2b32612d01b324e4408b727318356ee38c200d5148b6e246bd3\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = a042226c1eac49482797ac7065940a268bc9d7b71a84ec7ab43f2fec5af2e39521780c7410cfd7538acb5d17d213d4e9ee1ae14e44db6e2249f97ef1ee97983e2bab3d2ea4775c4c8cb79f252cc7875dfca5214835dacb1bab7da6bc7781c15b56546f9273f79025fb8cfd90e632da174311aaad6cc5affbee024ff1099395f5cd9f314ec3cfecf089c6703296caa433d6c3c5779645ccd5c2702dd916aa74963c1c11d30af3348ffcd6ab28ea6b8076a8a82df890186c1821c1aa18766d8024885083b1ac5ade07aaa0bc7c5d38acd6fe392f70378e2a64403c39fd4dff70af9ea96b25d2dcd4ea4f9334cc24a888d1cda58af7eb85bf04752c379491c9d8be\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 54a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = bb49b660fb692e67ef888b55dc4944726ff955229f20593757eb616a796035bc3ee9d461d37dd6c5a5cb34303eb739b938dd53454675f872db127ca7cc6b77c6ec7188a436c09310004777409a7e680b8631cb420f7e69f04bd8fc3d1f735754a297a05b58ee52188b8fd00c7f1059932b8fbdc5db8321db0599dbae89f62d7a05015ccaff40a0505baaf4bf96a62e0f3656e84fe1b5e14117755d3c2d4395b9039fec8db8d02afc90cc4589d232f501c184753b6c1c9d687a77e6a40acbbdd97be6b43deb327c4a75f3e09b638df85eeb73cf8e6234122f04814c412407003d703d8192e02016d33638765f5aaf83699287095b47eba7d48db65541e4d8f6da\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 9f0a968b8aed115482ee51eb63b25ff07c3294eb3f8faea6af968408f4bb7fec7b456e2459626d5b8bf10ca8e953b0606627607ac227155b7accfa1ec90bd94ed216b7a7bc8ffcdec6f4ad0441dd24f1227a2f2a61e0645fa9a4d325f5861479a51af341bcfa8f699c64c02b5d2979cf7fa6ff2316aa3546e31bf0e17b0974252019c61783594adad3f8ba9b81780e17a646528e111994aac91fb056a57c19fedb948bcf1270573ab35cf903e1ec1ac33ce8359c3dc4210467a1620b1d3928782ad079ba9bb1f2040e157c7e5963594a7bc855b9a476adcaaa3be95f28ec49c934bd2a2440e6110ded6f02ed569206cc986a40f60ea4a97b30f5dfe8f38a6e30\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 3a2f3740f3df888485a993c169874d624097050697b21f5d3b6d19bcd373a6005f633931446147e8a4ee53fe11c305d397670019cc03fe83eb15431de666c1b7164184c33ce2508bb0c0e0c79639e6be07b7f5435d37e5f1279bf033ace5fa259c83b19a62f8f9df45cf0fa8a2b1b0b3725926c40a7fb2463da7e80e4dddfb260b3129d4dcd8f05e728f5cb6cd484b2328b8d8c5e421c9a7227daaa09cd0e7425886a9912a38d5e6cb716f0d148e17ea1ffe520a94d8b6235b5c82579734c642717cdac41d65aabea49e05cbf41ad2554ffd97fdf73d14d783e80f08eadf7fd522961ab00d89fd964b6f72039a5f1c76cf029f2177a80bec3cc89475ea3c9010\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = bffe021eb677345763b20dda24b4f482d02b9c42a3948fe4e90391f079f527471795b8ae9c8bb1b5437f56b8a6f60e5623433b02851a387761e27426fea806ad68ae140cd104b0fda542b1f00130bf89fd565c13cbdc28a27c980a0707d1d5a1fe275aa2acec5290c2892a0a28f6b7e546a89706965d3be0ea55a664471b03017a3c4414c1c694484b58a38eda72091cbdb2160f699f5bd1f53549f4e03de3d7fffb080bc57bb2", + "835fa1bad1c19eee3d330f3e8eaff8110f226ea824842ca9996632b832a4509333ccff3ada3c6b9431273479ea1d0e541fe6494c9f053ad07d6bf9a4ca17d64fe50546428ab72fac1602637c7eb7ddf6ad081f6c9d767b4177\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 100de36f08403f5f8d3a42342c9471b3a59f412d641d402971d0208fcdc7f28cc5517e2d6aafc79d59a49c654ed10285e75f8b600f5ac4906d3716dabfd42785b6698147dbcca09eef28ee96c78699b688428e2de34341ee0c81febc6ed43512cfeb9304e2e40738a20d7b4847742f9fad3824f0cf06e437b3ec1061ce8aad0892689c3388ab6087adae203e23019875768bd53a4568986f9cc91a65a5e5e50c0ffbe07bad0f002a03dbb3b3c61647c35e23d8658879956fc23d5591a6142421490cfbe8e12f0673e2e456afd44b6f463ef3d2d5b51755305ad83181bca08f14b2a702e4ef2cc0786b69d9188714e9a4e9a1853011c515a22bb1789c47da7331\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = bb47d730bdcc0fbefa8cecebd029150fe5d3c967a429c40f16b48c8d07848699a3ab5d68ddb32f76e0e74e897bac9405a1620dbe9ffc2e0d653924bf5da381a903a278ed7489a62ca5b94c7f963a2604d5cca61a637d43dd78ab44314b4eb3547e2e4a72afbabed8cc8d48e23faeb5eb036c42d542578c68d72134feff3cbfc561348a2db48032e08f98765e87dc76600504cb7217fec04ee9050bd3766657719757f389c0b4f0bdb2fdeb8e5757a3a9b2391ee6eb2e6fcfe95764706c0778e4f0f3c7fc024f356f999e5f50c637ca9be7ff20f65edd5c9f6ec869c29657b1792225d8a16574c183dd5f15f084e97a9337e53b56f5d7bc54bf5e031922959f48\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = c2edf03b946ce57141fafbc89189daa734d0f388c211a322ad4ad9423ba5f31699abe68d5c03c0ccd56b1a39abd3145f4c0d59955e6cb502d6720c1af31ec511fed541e1a66761a20422f5490d3dadd815390a01da616ce4d7934c68e7b1c53d947803268d81d26429df505c22578f55ae0788cc619567f02237368258d2f591b51d61f088d972c40e4fbd4f50f72a674d25a1cff3b49edc9019ac9945cf2b828d4345398b3aefb63c9f0497ace4b7f9cf6c087efc93802e1c19326585788df3aeef36300f78f7ad016cd4ba6c55eb49d36e0d49f97e1bb8ae12e9d9ba66d18aa76812008eff83e0d7d45212ee972957c355307823fb692bb2041e6acc81902d\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = a7bf9e3d83a704bc5d3c672912a883d379f18ad0a8480c8b062b05def52191ecc81b2c6a8f5783ca3b401cec23f981f35246e3d45272ec73ed416713a4afb104f344dc9e73c4af29948dfca67f245815bdccf4491c5ee7ca2827934db728e08778eea48cc82da3ffc7b94434d2ce301e801feebcc39a57bc7450ea29d1013c31f716809af36189c3cdca42e78e31408f32b98dc79619628ca348ddbef3f18a942387b9479dec0af05e382ea15bf0280a9027f7f24a3150da0497a13a8f394070515c9be5fa0c705c012415dd7b4201f2ee28af50178f59e5064685d75fa54c187a22f2854051d6084894fd902e43b20f18d14091cb14804fd9e51dc681d1d9f6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 794bccc669c6a853722db8e7100d5a76bdddd5997be5ee52bb6b30751672566da38fcc38fcee38be9ef3b9fee98eba9818277fab9367e3f024cb17babf71a71b4c03619de6bf25772b64e670102d5eac40c61250ee174aa802277a48a7488ce9582dedbfa941e7ffc6791515787652964bfbee021da63879251de9c89b9d9b63c547253c1b539d0ddec1074ff864ae6360db0c60492c5a992124593a797e7c4c85ed6bb873d5718a24df180f0739495562c8a522243bfb8c6dcef4bb099b7fb42ba01486e48b6841cadf7f8a8294c0234b779a8618945d7d557238fb7153f9f3fbaa89027eccaa49c75c583fb5b2309650bd4fdcfd3d77b9a181915fbe009507\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 3155ac16ff4b2c2e256d01ab5adb8eb7127076c92fb72d9dc30f217edbd10183a15dd8fb41ea074dcc27bacdaff2a5c58193fb25a18f15a98bea320cb52be2031f18b247815599f43f640121f91873d8a61cfaea011eedb77474bbbf9b15481ece1b0db5b56049294539168d6000c36dd0c35d11921cf5df1a0eff4cad1a32678700a4433e5fc90a7cd14a1fbc4f819e8ef74db8474d3c1c1aeda496226e8b7e1a184277a064be61e932dcebe94f366831f54088aef277819cbe29bfce1332e4d2cda509550711a9edffa9fa36c1dfaaaccf0d8a67419ad9cf1a5421a2da4cb2a96b94c0aebff1a64e4a932f6361b50685e07e9ecd23634d64a7610def333a40\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2df84b7d330dbc93c4804b6112d997d012d1bd3bc0047630c9c7a97b494e295e25b63d5ec98a62878213bf0d523f7b8f29c5aab3fb6ff08d336cb078ac9ce0c3be123eddcd83ae7b8189409f4db89ed764c8dfa4557f95630065e74073bc92e6a725550f19957da5cec59402f82622b86f01f92e896247e80a2cb876014a6decc3cea0e3ca9290eec17f3ed80fd54e2a0410daae5d9705dba809ef3f2068038db7e74d0b1cbe8e1b3634fae69166e0348c9b1fecaf9915e9dd09cc8017b66a2f3d4faa8b51099e69e4f68728c223f79b32bd1bbbb01b9ac4ef18e226b9934290dc8e88369041624396f4dd27f6f570e18d790d29a894c14c1ab62c59b81d16b5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 6995411d2531e2142f0d8bd65d41d2bf17c3f8b74626ae10c84ae86ffd0e53943af5155944da2d9eefe255f92aa8c4b29aedb9851202d93b36df48cc0fa6b70c79b8c3d5bd42f5ffcd1ab9a223b1126c2018c0628651f6c23d5d676365e3a5858cabd99eae861a3e91c0d8136d9e6dac7e95e4e1c6201132f764922b2beb9a47fbe9d5ed12107aa113b50cdbfbeca7ccfe9ae5abbfbbb28804c1f7b155b726294e6b0d77b1e845ac80c1b8e7936cce6229c7202d9be49b90c1816b179012263a64fced7858f52d80b8565ff2b0d7beedfb6c6bdaead108c19b2007b6872e83870133f52fa0caab1842e72be8f9a3d66d9e34cc16a650c69041bbdce7ad707878\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 5abda3c551401f34bbbbd1d4fc754b3bef1278a4c7a349e297c89ff1d98005c2c230312b998e000926e11132895d2c92b9d91cdefbad259528e1b95e5692b5ad2a60b304434c75ee9ca52a2135ea626b3d0415495062b5433522d802a370aac20123f8060e258d6540debfc200247bc61dbd72bc00517eed3d6ae66c064e7c5bcae2187b152024e8d092664bf1883d9fb64d39d33b350656236b92611a2fded06cf27149d479196a94981264a3fb4763e34afd94550d73615257cbd75ffa421aac56d79c76a63231daf70775cb510892ef88f2472ddf66ee7127112d2cca7006b3cce968538f95250aba7a914f1f3074433be80ec762ae2b35b463babe9d52cd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 1aae5728fbc6acb37194eab4cf6de62c0d8229094f0c559c285c86d9cc2387c16639a8f567ddf7ea388f6e3785dfce3edf8b3dacc6f6b47ca90328648141623acaacbc02b2440cd5f3d5c41f7537736d9cd5c7a297bd8f773ffc2f616282084e3384c445fa3328ae6448232673e1c1fab93cc441ba6817099c64e22744e23c877720ae09f1405ab3c05837a80bb8f8c9f03476195d1c8fbb8202ef359b4b33911088fe4fbf601044702df98d395b4f2c19d7cecbcb8a544a8e50fb38135d272ed2b8d9a41432301d15822232b361f077336675c36e157d992d2f0a2a467f7a40a1b899ffbc1a310c92ecfa631d03f21a459310c05cf84a0a2bf58c93178e2a72\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 67bc8ecfbd98ec151cf04de90f1ecc3da09b7f94dc7f8ada3750c49de7a98173a59b908a09df6877b3787f1b74a5b456f92cddda3f1f14ea05d4531725627a8003773d0f6f14b4dbf5a06690f9d8b966e473741cb695e287c1f3c60aaeb01ca74e673f080928793ac06e609f54e4214ff53107cbeb73f32073ad771566fcefda28ffbad80a765eb52e2e6065227f21f60e06dac7fa34384968aa2d355184fa8202762bff510315ca73a93daf910686d36b77f0a4a9175874eda4ad07023cff631450b2d2aaaf99be755c36ac2bebefca2e402a8e4994220ebffbe080e84582c3f9ca283546ba8b9fba3b7aaeca60d8b9d61daa87940b9e500fbb47f0d6bde479\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 2aba9ba6b55fcba1efd92069966c95ed8b567213bef9fd6bba37a7b7c502f7fed38c9cdee9fc1c221bd651f1df6f1a938a01ef80a746ca9478ae00b7ab697e2ac311425a38e4384002dea66d9824c79b56f05b00bba5b26f852a7fe27a869ef101ca73c1bf8951edfe60da5b5ca9650a2bb04640026720b8c8e94e941b1f6cfa3e9475c2ade8597515ca64077c34e896817fee30d8c80e9b4802b5c8605f7597e7f49025237989bb253e06ce5673481d36ae7f70103a4457624dfecdc953207102cdc2efd5d682907fc4812a31fcb55324b6ba2ef697b3c31cbf82a5113e1ae8fbc2afc8d63a1ac9c3a54a25cbd3db54e934402b1c5b07ea445e4d21f38ff790\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 8941c4670d7798f1a935da39de654e7763329afed53c9ad2c2c6f7e8214c", + "19e8fb27ecc137be1e54b1d51f6ece4e951fa2e7f4e39a3124d9298beae8d2ae35243b83d216301c34010df33faa631b50f87fde7e4f7c34436f62df2330fee4366da95ac2bf891a9fd4fa850f7e15430b8c966ea5bdd78f5172a27df1b56716e1260f71dbc42fd4fd0b92b90e9de67f8b4ff47f20365153799ba212ffd601f0f7e674dc532ccea5619e039068990beae5f10d39e5d1f860018d25a784665d6ad50e06e59386e13b6da201980fa5aa3b642527aba012269691c773484ff2fee7a1b0a1fe6db4f1ffb1a7da8464320ebb93557c5750bef6794696b3022ea92d01bd52\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 956180f6a240d45f212d6eecc906477151f0af704e743ed7789c06baf8cb4c3ab00d30cd0e13a77f1905ef37e55bbaad3c7e80abb5e64f4ca1aba2861d98f504e3cf834a2c669535001b0ba494e6684dbfc2c7f43dc14a80ad73c79856d18c26f5c635015e282bfb4344229d9f7719c743baddb89a2f64bae603c8f3da5e07d09a363a86d3f71b7c038b939516e3930a181f6b00d6e8171add3f68d83c3d82a34e56868c84105afbbeb473a38934af4a9264dab2f8b3495e7594a25df693e71a5806163f1c44f8040aaea20586edce9050e1cbd7f8a2c30e40db9508b66c42f21a9cbb54a4b228455b05aea9486dc81233679ff3bb13a463debd8ccf55660b02\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 000054a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd5\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 54a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd50000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd5\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# em represents a small integer\nct = b2ed7a397f2245207dd9db69744a196ee5cad1df24e980196f3e9cdb69bc3db3bfdd4ec01780f7a063e1daa0b670f0185ab9c19f37462a1fa76b50a580f9c919be1502d3cbca99c24827c738178da543e0c2b7a8714471528fc54db03921fc9558017e01a2397d9c31136000c17b558b72584a1b25d6ee85340e99ec4ee7163e6f205cf0c8f3077050efe8a244bba2ef0dd2c1d71c1ff6aa76c34ed678d343a644d6b03dcbb0b1e176c18aa952ee1a95592e9880d82a1fd4ae689a9045d90ddb95ebeaf30e35f7afeafb7a127695bde67a5e0a79277db6769022d13e2008e2a1205d67f8776f0f99571ddf73bbc611e3e189223f1e62daedfa12f4a2b0cbf58a\nlabel = ec04b8614d294a9aa508cf5e5f0f29ba3547a24e4c6bf37feea8d68e00000000\nmsg = fdf36d511ab761a3424c296760f4c8124a75896cd8723dac73d3684ec27193a22113fb6e6df10b5d34b906fa8b1503b672a0ee0498a0c6c022c7d4a82a2c7eaee28f7a38c9b53e60b9473ba26c3db70480ff58291ca5bd5ca3ed660337e5b08698937ef2a3008735c097e79815ee74634bc13d152974b54cd3326355cda4a97d1e6aae770028678d51f0bf04ac5765ebe78719a5632f58f5adb235889cf900a7cb6d1ebdfa41af651ce05cd16e08fb62fbf95746a3ccb13edef8391ef9f6c996939418289d27\nresult = valid\nflags = Constructed\n\n# tcId = 31\n# em has low hamming weight\nct = 975e78a8894d8f0bf47eb4b6baad70b000512823ad93b370c01f1959aaf252471951b0bb941dc89e6d552ffdac77eb6af19b407dfd767f4f608a82d0f8f03d25276bc2dfa69b39e2151eea0fd6505a997439dfc73fe9ae5d1c95835483ec4a41a1d7cd5c9446beb7d418302405ef80324fea76ac32bfe1a06db9ad6d651fbb821a025b82f78197d7aa3185b785139649479e896ad382be558dffa756c7b09b28925f2c25897f00bc4be23f907a5ada5868929dd72a1fdaae110c293ed039bf6bf75065c42870f9227a914e4c00a14b58f0dbcd0f5fd6c94596ad69a89d28a8e318050222fe1c288e5d9ff624e97cea755a733ca76d4564875f09fb2d4a4b0a19\nlabel = 8c9ddb95c6f32d5665a1d95cd8c6fb17668ba638c482e0d539c28bf800000000\nmsg = eb6b68854f2011f6a2fa9d614c12f76f5cee4b203fde576dbb232d69f7b9301154d7af5c8c9d320a7456f93a84dceb152759d3c505cfc95204a618bcc5bfb367f056b0fb95c8334dc354c82036e3b551309b5124f4ca4696d481cda583085708796059853abb72f63e59a64dc28f194356fc9ce90bf90aaa50846c50c14a4ddc6b8a71a97de2b8fb16a1521d9ff6a612b27cace9431d59038669ce497219e934defc48a24b7916b75e18e8dbde1a110b5a4d3100a2935b073ec3cca440f5d369572581894d06\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 16e4df71edb9cce0e20f9bc613de0958325747cf1e90d4b1aaeccb1cb9c586a9896b04e18bdeda54f82fa113e54e05e10bd39792ce5d3601473602b0174ef3d81040b9ba9a237de71d255882422b1a7e13ae5d7d50ad14c2054b0734bda9f2c42ca169e89fbb1072f4819c6a13e7d9ed6adce1cf565ddb5885c17ce7200c795f73b8a0f6b1d76b7f7bdf03291fce95b4ecc8f56178f86cf30e71f692c53cec7c091cc619a5bbbb2ea063bf1328a3abc56fc61dcb5ea4aa78ee1075038c2ae17fffef8a487b94efa62a26c01c05de83e965dfd19842fb586b4a8dcac7afc952d231be7ac0ba96a7d63c942cea6736ac7f2682023c9efbb312157e57ef082cb9c1\nlabel = b42f55b1895be2324ceb2fd6f40f469df1f5f3db556d84846989c81300000000\nmsg = dda76849a089db6948515c7a512b285ee8fc97c5b41ff7f7d1acfcd1fbabb4163916e63656f85bb9e285727e22f03d15e93e0895dd10bcf276fb8fcb21ccd0bc8ef2a8f29b87780a43622ffa7d92f5ee6dea280644027661d96d9ac818e91454f68994b11ee4fd0e64d3be8d3c14653813a704f0c7410ac1368ff6bd921ce2c4de86ccac17ad58dc2495129c8e3d36f141c634d232f2587dd102c609b57f0ea3c821e620e5f6437b1bfc1d99f5176a79a9f7cc7ed90f6012e54ce1cd873f2aba6dbbdb2252b9\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has a large hamming weight\nct = 7b5e8addb0384e472da0c2465cb1e03bd4fd865c148850710b5cde1892c0834", + "458ab2429e93ba375ebe1fe26cc81b8f991f0d21e6372fb34660ca513650fcfee3114aeb10855b9b3e7713b779687d0bab738dd24792b6261182670bd09cacbc7a26655ef299bc715a51403744282d0614c9182030b51c3000ab17f98e604eca3f7edd824ae52607bbed63f14717f771374ded2b5a0440d1a2edf74115df754a5c7e1368326f90e245ddf73916b6277f73d0866fc4657a1b4470cddaf91d3d297bfbb04e03cbab5d180a1e3c63d88453844c30d91db2f458e54dcc7bee78ded8ff29dce2d07fb8b5256531fa21a95524f5f8467b5ee2a2d4061676eb8fb899891\nlabel = 842f55b1895be2324ceb2fd6f40f469df1f5f3db556d84846989c81300000000\nmsg = 07f559e91dcb945125f58eed3cce2d841ae22af2cab3b8181eb33682c8b712922a911f397cb92e66b536246c3cd17f27605526c5eb17d4e77bf7509dfdde05fb598e3b037e613804220ac88b84bb39fc8f885bcdfd9734d64fac27e32bef6696c09fdf8bd5117f1a71f5b792065d2a466d9e33a36c84b0bc3ea2a99e2a4abd23c50bf71f8dd61f8e848abf5932c63136d82c6957b6cd80e14a54d43c96f670266df22733de9e8ce1f399f0a123d7e643cf4e4b7aaa832a94aeb9d723b7a4f8639535cf4da088\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen123 = 21224; + +static const char *kData123[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha256_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 1\nct = 8e6f127b86ed4ce03bea0242759dec562f3c0e475d70c950bb9865c5a00c19186487f6dad25e6ed4600510e067a8679cdd63f7718af92e5cc297d74d5ce72472c404083b156924c39852b03fad90becc3da0cbb1e80556b4010e9569c61e3b188b9dbbf58f779d3be5a9a7d000ab596d69c9aa48fa6c1f1fbc5be79ec39e27b7a76191b681a02d61cbc5924651198bdf9bb7749ab4a515d1ea1d9d32dad38dc703228985985043c152e2d8e918b652d67a40c2be1e2c6cc2fce11f6c923714b11732d8fdb1613c46bfcecafd64f9536fb7b41816736e3e4b62a1dd6e4c26e8a8f66d99cced308127a39ea1f21a6d7886e22aabf3ca6d6464278d930bf60f277f\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 7a896725e0944db789d4caa96bd8701fdc100a26ca12e45d7d9a5f5599fdec0a8ca5ba9e2e0a5c743d2e82a0006b915e6572e066c30bd794e98fe0959519f418d5587a5012ff9b0c545930e3065cf8deac440ef60715ecb8de63f2bea7fb80bc81cefd2f5b979bf0d32e07e615db6a363f0447bec068db90a9e86bb4703098b3ddf1bc34b2803930b56fbb8e026b8691248d8e471ed6dc0a90905f96412470f1002ab2a754cda6dead97c5a05fbcec5d0398c1561876bac021ec4cdc6915d929ebb6fa5ffa1d6e37db99951fa19670ae0f8bbe18bacab54bebeb5ec2dfb4a0cf69dd7077b3229fd0cd8580fb56fa13c399364e2bdecc1a0bfc6eb67f01a17fcc\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 835a8d5ab336e2133ade3b3537dbcd908a49d3933d0747e6c567e6e4938346b40a208321669f82ac6fe7055b4c435c455772ad9b3809ac65b5223c04329f232aaed6412bc6f024575fa9eee9d5f813e384a07289b9b203cf8cd7e2bfadf949aedfac4e08705a17e4db719ece091d46b264eb40befa199cb27de1a744c96182483ce84808686afc56e414ccbc2f219057af1d7e23549f44f7bae74f135254cc965227aca4ecd7b4571cd05cb2c99b6fa55cf7ec9c4cc085cd0ad0ce90e3e7f68af2ea3e2a6097b81a5c5091c31026261a479d46f05c45ae016e86029dae86c67afba8b8b6e8e646a94d07d07f3eaf8ca177c6c0ed05896971c0a911c846ffbdac\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 822e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f4\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 94712359a945bb4711cabb40b95020092c43428748b10e0f11189172d7052b28401d96ffba516a9d491895e9e95308562cdf17953a4e05bbae8c8cf391e7c363506ac86d46932b373963e9e661e9de2df322719e6369f3ba68f42bba78ac932f7d2333759a53d4d18f5990b18a6d4d0af96d9a9451b2d5a8c3f427f607380997b5b2029f58f04301b52c18cf57c2a763b546a21b8da9627070a1cc30bee0c75863b196128988ffea683a4da5203924db470a53dac36a3fbec3dbd9710f85ff6b0728a692d640ed7ba67b7e493a7b95864a2191f617968ee1efdcdb5b015e45da55086b2b382a380cf66bc61521b2327a6bbf247ab7635da9a48acc119e867467\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 610aa2973bb0d67efc725204a0af7db852bcdd8227e309e6a523ef627555b7aeb783dee396934b61141590952801c027a559a3b7380abb6724224cf825a9c74dccfae278719551bbf0e6a8125d64bb437ef78c24cc00a52fd9a716ac20102b5a1d8fbd445d9a2d4ce2c55a2f549c2fed8e5932cbdfc8deb907d973834c2963720557668d61e3f2e53564d6db7b41899873e3ca66a1b5186a8a545d27915aa466df12ca7163a7d8137eea71ef80690d229deb089510567f24756f0f70a1dac609a57a11ddc400af943126e5c5b118b76b769dfc1a7a6ec748b5b906baa0f0e188b1c6fdbd6bc307af0fd9b4602ea62513430b3208e3d690707fc2d28ebc432388\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 76f7b6e1cf45b005ad58b5354cfc5799f74edfb27f27b414b4d25500a1ec4bcd46c6b65603b204f69a2a71b8d1099ce96c8ee52e119ed9b080d86d82789e3e5777cc5f920b147126ec8612b206bc5734e828ac819f90ea7191832d570d376df2c4e3eb5070fd8382f8c0a9b89da928bfbdd24bf1d17ebc83f9237a51352ff04b6bb3848cb6a9c195e5369f4b6ed9b4cc166377f88c7e6db6ef78c0e1bfbac5a3825867af9b22689b627dcd8d1441b515b15b78688b52b04df4157a888aabdb9e792c65fcbdcd03743fe45e637afa7e422782e6da58b95163acd59353e634337abb1c15b831a9dec79c517a5be0b4ee43f7544a2e9bf6af2bc53b080c60dc2bc6\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 338514dc5a9ce8f20a5040f26a830018314c569249d540e2dec247f4ae925f6cda2d7a535e4e20e5348bf14f6c87861b37fbe4901758dd38da7cc7cc050edd1e208acaf6ab2d332a6482c4e5af4cd4c4f1f9950610ff56ef910b2831e3f23b2b6d3325e8a9f4fc50e0057a50af5db51ec2a1f78d0465e5f54053113df300584f458a1ebf6e5b1358f2454cef3b3e4aec9bcdfdcdf5d88206bed1e9a4e7c7c8dc5f087d66103bcd28e94c", + "2c233eac1706261aa6aa67f044bb06532954d91653aedcd58e8231a81c52aea96bb4ad1adc5e3c2183ea99247a4af8011b415d618c67c94f0b276bdafcddc8b646182989c1db26da677bfba285c0ab76c82b80a638a2\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 31478424e4255ab21a4d9a8c5a3daa8f0dd5416f79c2baab2fbeef406f76c493cb436acd030e0bc4d09432d9983860c01b1c559ce095b7d91761ac2e4bc5513c68ae6bdf747d556a84ac07133233368fc92d4f32f9bc9fc415c3d0dfa87f84853a828fdd103b8ade889a020f965304cae5324f78e36c72cf5d8b94496a6f48b03a9ee3f32fb435d48d31002ace7d212a108fef640f55e715a148335b396e900ca3fe96a0854764b54c3187e37d9eb5a65b54ce6676d3747bfda91ed2f536d79a6976fcfbbd683ecee32c5a8dc29622f789579a370eb7d66a1404a376a43ef584a0e2eddea06fe60c28ae08b7d1a8af26b20e50e9a8b3f8654e183219af3dd508\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 90689b191d041a9bc69ea93b26d04236edee88b8af6c0b29e9b438270b242dca467ee4874acf7f9b6b244c3843674962c9d0d67fdb7021aba63fcaec2eac3b6b5114ca4b242b08a1ddc1dc671b403bbd5ccb57c7f6c87cf0dc995b38aba6fe635f4a727f6b164bd36a5ff5e7b91e42bbe50835638cf9e3c7a5397f5f095784c3dc5c493ee1a22a9e2b3f28c71dddda2553e269d6e818aaad196b22e670eec5832a84a0f89cb9bf5d8f69e35f34ccbef4037e9a4b6bf2d8d3197bd02acb344cbe27006efb73db0b9d5493dcd14b95b934afc2768af27d1b3b24de694fc0f00f757488d231e3e2cc5be77530f512014445889600bd1a265a4bf188f617b9751783\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 9edf0e6ae25a3e7b6f31fa13a7a31db0e6ce2faa624c2ebcba9669bf5f205758e1e904a9a738bdf430072b0563d1a87f16522811d645cd9f85f13359d2961bbc583a3b15c66ab5a0d1373c2949261e3f44c2a1a88e25190efd30aa9fc410d2d23148c16daa90457bf1ee77c2d344525036e037ed473275bd535fa961a66e47072b586915d85d3d7edaae7945b5e7f08fa15a4d08cc669b3846b1ea02cdc3eb9bc5a54aba227f9434f19d28d06add791fce9efe2171e2c676bc1b09bc163798a1a74b7fdedad993dc47c8323cbe3aead96d0d4e7e494ac390200e6a79f96d88844d59a3d78626b0797b902220874e6957e6c214f3ab7574c6e476cc4262beda98\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 9a4a3467718bbd455baf312dcfc65eeb570d286bc88ffbe19d2f8e032308a50acba1f7951f507f502de91c0ae3fa4708f47ba2459c5c62ca667fde3131ec16f65a221a63d1d27314c54589db50a1fdfe44fc7c789c041ca0398a0e648b1251fd3ea559eff450ba92d133233cc1779a2094e23a6b88f0ad8ef1e0c6ff42d9be754e2c9d904dfc75124b3f34b00e56087e672f5eacb98f27b5f0fda7f67e71c2e3e2d98ce379872d8120aeac24bc5edb3919a196f2790830b615806fc0b5bf03e6b60fbb36c9b202a9972dfb71d28d168f00f698960b2e1cf6a6528060ff7fff91afa0082bb9a618c5a05206de8bdd0759cefbe16b300a1b51ee12809551009bf0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 008e70553d2ab7d1724c2e422ba525ebed71739bd8eb968c65d8667704383fec6432f0e071cd0ad71809a3fde92233bf7ef0144dabc688dc1beabcc829c76b3e418b6a994c94209e872bf7e7dc64e6ee8cac7a5a6ca3d40a2280f875d88fbbd59a2f5afd245a5b12c3fda1263c97bd1c5536245d0891ebc220757f6a95151cf06af744840cf2ee8610150427ffdcc619de7e0b0c8519c2eece9c45882dcec3bc4822057e5be017d17cf3b1df53c00414fc19fe478e67abec5b1b8e0462ec9e8606994f60433fe15ba3652719047d54089c9193218077f743b71d04990705c663817918b803ef8f362ee17522c3080b97a1db100291a70fabd925de209496209d\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 45a7b98944f429526c32ffd6770d2cfa275eb81a8163d0662e1e418d9a093736ad0aef2ec70013f15b5f240336a0c2c3c673ba265125ff6a3897a91a749a2894187bf7ade153ba1491c66c52b5dc67b3b163725dff9c49e4f36d901e1e9d964b285586777455438f8c001caf53e013720ecb14e1e28aedae25beddc5f42580b9f72bccef986ae0ed3daf0435838b4c2d55bdcef2341f8a08f6ef5c2bc4194eed1c1b2c741c7c9041fae5c8a48e90a469807750bea3a50fb7c848199ed62a6d0b09ea8bebe4ea6d433a73d6a34e31cd9fdd21622814cab547f01d4f6a626aa180e982b2a89977140762567f391ec069d85977a9469513ee60e7a9abb54e07b3a4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2f782d8e57831158d10ef1fcfa7c1fff1aed675d34bc49656a11d97e1927503e189f76bf4e335b1ea0f53b1e909fdd5fdff67d7e034b518da036c00dba897006031af4830863fd11d6fecec254646d00a2bfc2db8cde7b303922c703885372cdac94d19a296761850dd582c42ba5c96905ebcef582442643ff8baa83911817a4f00ad7f644acd3fef86d43c20c8f81580f044546e606c87a5b073ac860462f11a004ac2fa00f775cebb98e20d07bdb3bfc407f2711267889b0fc365762272276d509f4a9fa94b63c407c0ab98b601837f6f5d0e5171ad86b5b66af9eb94509950c42f5fd7cdb0cc9cd3d95a96f852b5941eb73db45843ae062518044ce18d200\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 3a88faf7dc8658070703eedbaf36302db8e43aec4f1cab99a39637cf2221f5feb0f716d4fce38903532055f8fb6f9036a2e0be53417736bd3746a04bcfe47954a61402fccf19851a2299a54d3c63485d69dbc52095bec0838ba87eec636251a2483d320569d7e62da616dafe0b5f0ab8aae2b2f943d6583dbe35e2047d50eb9b3ae9eeea5cabb580bc34628fe5d00e6f5e5e9a1b5db85d446c276749fe47ad1c495428677e33698ebdc4da12972bcdec64318bc7814e8578851f1905a6ac0874af691da2518daa47b9da4c9f94e832d9d932b5285ee4eb5e50072590f9d3075e76f1e3d691269d76dad090d98a6c32aed8567b74f4dc343bec1cd5a538ca796e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 36b2dd6aae05f5cc143d28532d5e9c2107cd30cdfa69c670004d61657877cbc80e619d2673ca3de8313942f1fbc2151e7b2cd2ab86e91f99a39af44864999bf1037504fdf0561875e7b713e497da2000220ce615d933ad78f04d5ccdbf050affa72953cebe1b52fc2f2745da7e918a235d5e0a55bbbb8fff755704adf305ffdba10fa536361ce984126f0f8b72731218cfa4ad4c6c007a2d3b9329916393a9133b80c951a5731f62b1e8eff8c2c66865260e18040fc603b2479aee5ea762070c09af9149300c12c9bca17f3605703b40bb914e8da315d6db1062f5766cd03d9bafc0cbab492df3f2c74f59a65e4d3b3eb26519b6cf775239d370174032e2c0ed\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 7c440d6013a18f8fe017be3f55384c3b98e08a0df1d71b68e21c8ae75774a80584f9708c21c56f78d0d9bfeb0bf72318abb61c8c89df56db67261930900a1e6353b7ab4615bb4c5fe524b591e6383dd54ed7740f0e0a5f64ecb497c3d503d4d7fcb20441ea1bf678a2edb792dcd4c5a6c0ef570f11212edf698b242c43ebb3081ab17f6271f28c45e300bd367295195db3f2f160f7d6793192dcdf15049e89113bdb4fb526833db559e42f939229c2de0f1d86f0c1b59f6cc27f44744e227b373673c19d0c20c5298fdcad478d2bf4be5514015e5840a5a207f2c61188511d4513a874cd9836282984615369ef4d0d172b6d50a39fd12846f0c0cdba4f8a6c59\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 540c7f1adc69c34a2c230cf1a22a81f8a04bde9da4f844008074f3f68856e2f09fea0ad1ae62df08afbb99b659db9fffd04f940d4f764829a055908a13b59263264a854fbe97eaa251ee5073682fbd7f2316e9ec34a403b05d285e2852a574a25a29d1a1ac4a6d85b74f833160aa292aae2c90f169a83349d58232590be84533448d63f7565d1b3530b295913d7107217d6e98dbc18435da1be650ab747c5fc80bd3b6b3e685bcded82b901b8b58dab7d3ea18096535a9c77c3144e93a8191e0eb2d0f991af331a03c6323c59a45efd1c87a73dec29f9f091b7f7da23f4d7db399ceda5061445e1374eb75653d8422d32c4f36557ec66128ad1511a9c37a132b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 610b4b5d2a85de6825ab293619162335cf8bb7b234e2b7e3bc898d7123b30f0abe764a0a5c9ee849cc107c6e9dab86cce426b42010719a05096e3cc7e0ac1f0133035756c1380ace2afee84ea82de9b8f612b7d292598d8533a8ce2848ed6d539b2519018806a11318317a864bfa2f2d55db110d7477d4f4f71ab9261477c7d8485beb1c5eba81c52529f98a5430d3eb2f540c7a66ecdebeb1d75391cf1f2d99be18967fc32fb02b515d10f60c20ef63ef6da45f78ec1692b131b2dc8c1b337e78cf81976d8e8908b4f62c0767be8b3a4cd8b3cd2f7ef8b9454eff54795a3edfbfe21cde680dae88544d88624ea27efdf72cd4bebe4a86951e5afaf6170a2398\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 6bfe4b01a7747e8f92a4d9138a2ef034b0127215095145b36e2668e10275c4ee9bd79e397f28bc9422", + "75c9f401e81a3d7f0b6e3e191026be641171ee916af6bb4ddaaa20fbe55be2e251e2aa4f07b1291c955af87823e2134fef3e843c8af3bbd168344176d9fbc8d11ec8d8b410fa224530c98b84a01da048b7618c944d8cc7b18ab17bd405d262a1870552e827dee9d1a8196ddd93975d4c487e819e4b2e0cf5dc39eee5670e249437c5460dc4684794760e26244e83e0017e3cb37a1b5947709f9059d245c5e3ff23fcfe3b101e496e7a222bf9883f2f12e22b0a31da932f6ec8003f13a70050e2dda32c01ec3fb80908593bfeb2c9b06e0868738d545475\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 989d2556e8fe1a5bb102c28190c8ee1abf3ce700857a0fe25e648998daf337bc5cd835799d86a3b3c93c7ba7fa9d7feada59bfe62a6f76c694d37aa6e741c1a6a0f55c8202b3649d9f134c3f711b9dc907b5b8ff932379c3b24da57c4684c99cd94b5f0dd363108c06f5b6a7b6f7743f46f726d064a4cf2dd63fe0c26e02b2950db03903f14b7b1a22e1a68620384cced1e54efd29b977cbd58186f10d46d54964ec04f29b8ab3c6b58cbde5630465ba3410c814b9da9903f8549c8455d3f9050d905ba75c8f7feb55a20dc996d040184dcdc3019f841dabd657b07cc0da579f88eaa0298507ae6b2e5b8b0ecfabc254679900366ee747831760ff1667ac9625\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000822e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f4\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 822e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f40000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 2e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f4\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen124 = 27137; + +static const char *kData124[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha256_mgf1sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 1\nct = 6e62bf24d95aff6868afec2a92a445b6458f16f688c19fe1212f66a63137831653cedd359d8cff4dd485d77dfd55812c181373201f54aafd65730d2a304e623455d51125d891e65d97fce52341cae45fb64c38a384a1c621e2713ee6794633f029a9fd4d774f56551eac2176162e162640f25eab873a3451c475570f19228bcede4c67c370a75ed7fabccd538c9819eff182481b10d42f1a9f6a05373b8cf9b71818d467bd3b8ebacb619e8ad42916e600c043effceb3855bc48a629e60ae886f51b2a7876b0e623fb2ce68af4b039242f963adb0e4240aed0ed07f65f1ee7c0cc77d210d0c2d1dc10c81b881aa0c9c9e9499665cf2970d2ccfeeb3191531765\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 207180c340658b5154ae45d2e4e7326a0997c683a26b595e536a29333c4b66149af85e029d5419a39e3a147b221516ffd86b6b4b66c3e0c4c49fe8c57a2f5c37b8704b9b592b80db9cd788a4ed51ab4f0a1cbed63bd18d1f06a22f225866b0c2c417cb23473b7ba4250b1353bd2e5b4f0f937cd2efe5fa38db3c295f7748b970088657db4aa9a76e1ee6fbff166ec1861d00d085326c7384bdd1bc2f400d4f74dbdfadaf3fdc46073e668573e02030b9eb5af58eb540c66677a771194479ec0098d858a2ea45d0ba1e6b32440dfbac745000554d51a17684ca964b02a74d479f1d432ef763ef4059715a4348cfe36a215359712f25b6977903be4adb92febbf6\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 5eab3f0741e63986ed647d53e1cd71df041986900803d0f99c68355d249a15a47dc5b4f70a191477654299e5a2731f3b4eec76dea18262fc696ac794e5f66cbfcddac4472c578e246c26707598055584540b839836b1404c5611ae558a984cee8fd036cea924e0be2474a940f61e0acc14fcae95ebdc59942a9ce9af9a9c81999f7f6815f057ffdc2533cb15d6391d1e2d95f16f9c04209c889a4c359c7d2926d28a66e2b030a416b928d2825627998e5191fb4983a6e65024262d94fc09187a2d78162122433251d1bfcc8e507d06eba2d229c10031261da32ab8ccd15f1c5f9fbf07ed158483d736a110af4b44d6a4da60d6cb519b4454213cf9f0dc560f2b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 0da290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 121196e51a3f4476bfb6adddfdeb3a25dad72d1ea315d652f331a43631ad36724b3d14532110dc44e407b1184618f115677b33751fb0e8786ba220cfa7fc3fce22822eabdd4fc2761c7f34a04e8f13c1021c31adc123a32d871f0da6cdacab9c020222da52afd5c307a6e55e4566944403fda426ee2c6c973ccaaafe2d081ed8c5b1dc00662424e395faed86c9ae19a3a95950c83d2a9ad5c7e7f670faeb123acef07fe7795ad298aafe543504d7811336b3e2ecb1622bc90599a185b34700f8f4c52a651d73ea57e8cfa80e61d9da61f36951c7194ae4dee3c6e67b5757a39685dd3fe01cb87620a54666ff8132e93d7081d38ddc9f079431075e96cca78f59\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 7ae8e4f5494393be144d81517f11baf4b634bb68b2f0ea9b30731035e8cbf4283c0ca99120f60b75ef685e989fecd7a5dc524cb66292a0ab87ebc61e67baca1a8aed99350edee045dfdd029406acb707d85dec9555169cf7ec5118d8f29d182f205e2859a8dcc5122bed640ad0ef128deb21785efaa20f92067dc216cf40c15bd7130e2c094131917950a816da814c5990fa6beed709a0218f4ddca2473796e1b44cff6d7ed601c574a784d0865d3afe5fec023ebe71bca881da5637e3d1d17238c20a5bd0075bac018f07898f74b9e6dc0fa3d5f8d0b274dfef3e6720d8396b34a81ac2e64da5b3e5d7666323ed7c56e8bdd179f3c6b2cf05bcac402513dd87\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 096958786ee7972050d67a9e4b69d6c6af7db7cc674386df725770dd29129b826e39552330104c8d71e6cc3a3014dd2f61b54153af51b0438d447ee939f9e3c13bb8b00a37dea6a068f6c9d27e848b1be7a1eeeb3ee50b78036fba95ae46948ca5b13f356ea24db10f60dc09e4b8bad8f766b668ef72524432080a0ce00ed676d6d5e354984b1078520412525848156d06f0652469f95791baa3d9a798ae537094f76f976faecd5c9ce0c930a75910c63dacf63485cb4b5e7bdbcf4d80e74037eaa1a8fe4b52930bec6be99cf6ac88cf5878dbf6859d456a95dbc34654eec425de84ca2a535d517403a9aada827e7d0093ecfc97ed056a7652825e9a45cb2dcb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 6583e2f176aa7e7f655d2c53497349c156c8851fb23325589e85fb83bfa857346caba222cdaa3234e71564154298c24dbb85e18822a1d5e7faa47863a64d76874a3cbc70f4d9f137426a344c473fac1dd7008a9973765e9f66c5b492535a647c273c4f78ceb5aa7ba963a2142f2ce4a81f804c002b9b2eabb3c75e80a3c6ceafe5384a544c672a5d28d32bb87115f43eb79775fd9b3f4a2f6e6a89368bdd95ef1d014877b60afdb1", + "234acd57653a65459f01b2fbe381f22a739504b4897a7e6c33b6349b276db6083abad9c169405859b800c812237634b503de6ada43013c1d86697a135be78a9784576d796d62aa7819e2ea0e2d902ffdd9cfdd1ae66212ee\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a0443ba434156d0b503ec662f5eb5b10e20ad0cb8233720ee187ba986e4811dd312844d3edb26bfaf51b4b9268dc3c76072dd47c199d713c91824da23ff00481ee69e9d4cc543120fc33b7244bf0c1ad5fdd1ae9cbada7fe9a70ad0afaaaad8361e8dc4b3198ae661a84e275b60bf2ebb85e512da785d2fc3482294fa11967681d7bceffc08ce0e36f0a8af7fcfb1337186863c2c1c1b94c9ec9785cd3d94d15437c23b775677f3d29a4c9e52f13398fd14661160e5868bca97625aa6c7ecb07bbb479644def353f1f01a4c4100f9adb82c4f6a265a5ee962da58c3c042aa549c9d2de3008e7448e0c4b9b4ac8f5e4d8629873909bb995ccc0825fe87d81d596\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 26aa8e7931ed624bfd4077e3b83ec08de080483a61641e877f493fb7d0ae4dfebd4f05612a2e4869d20d440a64e928b13daa3b79da2ed674b99421df7e7f625a22b1c71136da27db699d3dd96e3364ee0cd2123ab6808930c6bc28a5dc307880d1ab4b03bcd6178a81b8ad52aafffbab387d40352dfea526abedca016c87e9e56ccc4c88e80f579da015b979bcdd88618b2a32ce072918b2e223535359f1ce4eaba5e692e6296b2140dc2304092ebd6f136a48092b3849082b57e70c93b54db55045dd6094ef3d2cfa8bc9e2fd2b1bbe0c7c603ad38d3f40c9eac8ae5e28cbbb031c38d93d3b2541d94eab3a1e8992a444ee4ce7b8d08c0b9a4f623d32fcba14\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 7efb69f1137d6a6e813b7ab75bf0400b3d07a442b88ab048675dc06b0215fc1a2e033263ec31a6c1d2eac56cb0470d69022a48131d1f000bbed70586b80cf6356465c8834daced7ea2a5ff8ef9c44d5ab828ffbf0556a6394752a4a28a70cae20084e1236f042f6c29de5cb34ef73acba5abcc7ccb3a26342701df3b9daa945d9fa5bf0b9b10306655e56370183f50fb8321f8f0cd1c72114791fca5df2166296b509b01a0b291c46110787cebe69d41b3b1e89590bc2f5e5d49ea24ae0f1207eef1aee54b9760553e80c5506a8a8a75732e92875025f0bfd5ead71e4340c8a9fa16dcd5a7dc96d8c4a7dc4e91f47a69366445c4695c8bad578ffe52bb672f65\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 287d7108a1c6e7a18acb0045b20c57cdf2ac03456b44942764a7a9e9fdf3db481d7e202e4c8d733b56b9c1e93d71e791af8325c9363df789b252a5ed0eddc79e76fa41c2cb0a35618398217a390a5e6d99eed905d5554d19c1cf4e30bdf1c2fcc5148b641d71b3f1977b63d232648ddd935ec9499a53ac2fbcac55f462e91065adaa018a39c453ba759bd68b454074153421e2ce75cf149f748b5b84758df8a423d1c50c880af863f2a6df3cd465ca36aa2152b5771f3d507f4a4dd9f8006d80eca23537092287976f218a90df1e16d889fe31e79f7309f3224f613e9b52479fe73b7aad915319a3b62a5936649f7d015d7b09f7fa9f454f78a7c3dd4bf791e0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 8b65065af82770625d24917d13fd97ae13247cad97910a2651f95800165b76cc34bfe06cbf8c31a7d7ab4f41e05c45a25b90c606378c8e49c95a15ca11ae37e797a00f1b2680a6958c54396be4e1ceedcabc58d9f136b36867a2fefe648a9758f49634bfbcaa48717a116cba58c27539be10c56911aabe013e0329645e8308423c3aa42e0c9b1f4b5f546ddd9f90bf4d007dab52ac3879db755e4f2b96db5cf01950f39076f261f50b1bae137be500b03ceff6ea1bbd80b33424f7faba5cc6b86670fcb7db1a9b3c58bdfd7b75ba9f3ebd34ae32d320c757020a7324df7d3985bccfe0e81bb7f61bd98cb37219312299b4f274b2c90c52a8e1790f52e8fdd768\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 356e91db9bd932c7b5726da288e2620cd79667c2e1d7aca562331ceaa6e4ab47665213ed75579abb147728bcff60787c95107f5be787c42e714d51627fcc8b4ea71c232c0c80ce6163cd0fbfa9dd7e8c1990176abc2705f4ffcf1d5c62393eab1c0ec8a653a90f27a968df8f4af622e96f663fceead8b0bf5dff65cd657a72b9c33265c5c2a8f7f9c614b9c2f8a95246970e6a778aca4b12552da47c274282ad9205ecd2264ae3c649597beaa35c141910e84233776d419448f55019a84e199a4867d68bf213f47b0316d50079dab77299fbbe7fe8929906461c1103a97c2b3f1633c8ef03e820ec675e331cd1fda8ebfedf541d0f2b571f4eaf292ce0ab14c1\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 5a6efdd2d211d50366885e177190ce1621ba110ee46530bd083ba76ed48992d85efd8f9ba964eb33e596e0c0bcb545f89e2c9592ed18495e8e5df1866fe30b27522a3ad9cf7124c4aa23f7c925900613c50b7c18872b4537a750419ae128e913e9a2d87c219e2cd01132972298028e54fe394ef9779d04543c72eec4c5732cadff0b954964706bc4085722b0c595162d11793ab29754837bf5d324e21814ea24b12fed441f20d22148ba5a987b6aa7c7d4ab5a33af8e6c9096c29777cb0d5cfe938a6ed5d30936a5a8f5fc435df14d1c439d1b9d274254e7b248bd20d21dc4652c1605d5a2929db018bd45794a523b217fe0a9a6b0704197ba8126fc8311556f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 52582e10264630e1584155f5e970b8eda9108a87370861cda12ee773411cf556db328c8a2a165d10f6f969ac61b170a75975fbdf9319d13c9535f30d621db19e41da3a04fe40874caf779c8f03bd5d1892e52925b183c118446ed9a335e9c1dc4519fb1253215e5f8d8ee6d49c0167af9d5ca5b1ace067af573e0be9a61beeccdac37b0e54f6b0f70576cb8a400d01136357a8576e81c119d3dd91c7b5cb343692a810362e1e6dc06c1746e071a903a2856b4446f10f78c670d617e5e24dc5c0e45caafbf8ffc4af6b3ef998fe1bfb59aacb16d98d7e389679939861a6722c4e29af731da99d17058d7a12ead0d3d576de796ad2ad596feada4c091f10748536\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 3f5e00347c36ceb79f400effcae92d331aa9f52539041c50dbbc6fd071912912692a16353378276a2c1596358c46f6232434a95a99c573d0b83e4a6e970a73e99ca13d734506e2a2a56744b1872bffd501a80ba7cf5494df6ff9b421cb10247e11d19ac9e60afe0dda87cb351c21ba554ea50b70f6eee4ffa949ae38694ef831020d4e599c6ff4493d07c7b6be06453b84143813a68dfe0fada2317a9f4040a3cf6308090b6bfaca36067312f41bc0c4c01ac00fdb5aee4395b04cdff82cb433b01cd3e70daafc7807b2f770226699e7535124a453f7ad2653bfb7cfe71e120dc37ba88a5be347ad134351c11ff1019b7e42d24b7a3890a8424fae53a10c0e11\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = a166bf7b5c2cf1896c0b924a69233a0a585bd47ed7f2330654aa68806deb0ff68c6475050ab45c691bbbcc58dbc2f5c817729e8e195ebd39d48bd5e14977abae0829636831655917fb5a758fb43a8e505d6ce595f625970685f7ec81cb5592210f5d68c6e2e1ef26b4ef8c92bf44f077e1d5099f379cb8120ad185bf07877979ca81f251fb81be0ad3c14f4d7885fcec496f80033fd4279b6830a20cbdead27c0967e28d1e06ef4bd7ba89210ec0d696274a187dc2f13212f5adf06e9450eca398325cfda73431036ac21b087d373c9f575c941f8cb078961176e31859a61c49baf8ff4f817a11010448d6a0e40dcede1a5ac3befa4c6e9d9d67d8e8fd8b6de3\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 75829ac4d97848dfba21c1688e936cfc736f53fde5b91d5330b63a9968dd4f51c2f529fd8d8f84e4a908196fcc5deba21b5c7300d7381e07c4e0ea2184965169cc9464933ef5a840d86b1dbcc945c7547d9eab245ba64d24946a75961161c2b8f417daf11b163b1e5a5b02d45341384f37755248fa871e6a82f948ad6292f11445bf30596dcccec73a441cea5e5dc470016309a83b6c8f158536687ad2734d3ea1562d46e23bfe8cab498d19b0b104d97182aacf852b6db3c4670109b81af1bd99b483d92b3e4bd813edfa4d0513214dcc5bb4da768e86007c22f11e5fe6f4cb60b909958fb94dea660d3fff0b99db15c2d2e6c8df7478330dade8c517b90975\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 8e5f01ff0c1775870715fd0366a8748531f8b00803df35e0e2308db63bbec4eca4e093351876b794213b904e5dde284a82d74abfcbfff94bc9a8300bea99edd07fe97d6e0b11219f85ac15acc404d37d3da16819a14a438f3f72f8178b312526232386e918a8a7e11fc38f4668c499a00480cf9d2d75aabc0198d3ba9ba345fba9105c6564df5f6ce796f14100d186abffe4d83d57969c1caddc7c7aa340b4d1bab23d9b3982278328ddebe648f5c52588738f3c56a88b3f34c890c03fafc27f485a17677a53e974dc1dd86f463a927f4328ac51bbc61705ae8abd7f45628957489e2defd8e043b955b118fb2a1c407d45893004aae0f945f06add1e45b41a03\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 50c23e2ad6e3f3b10a5716cbf60efcc9f66d2c6f17bf050ba0153b877ba2755e8a0d5406003456", + "2266155744ef80547b8af777b0ff764fbb12baae49d02b4f6d65b6cd8f0a397839101d32ae163ff2e6072748d6b8017e5e73e332d53f4e91fe6233a82dbf54f3146b489803575c5ea37ab55a9ea7eae47ad4f1727d45822b569cd6e5d4b6ab759850948186616b5da2a9a316f57d899f91934bbb27edcdfa19532ba1c01f3724738daffdd88c9a18562ebcbc49185b0a817407903476d442c424c81b63aeb8f9d1b184756e0cc0a381eaba45a85c8bbc6770fd047ff1a6404a384599fbbd6a40b212a066e23f6a15cf13e42c0ea88c710e4d70c612074968e5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 3f92a694661cae336cac7a3c5a6f67e0655d10218a64459739ab9664f2cec58978939512df621e6b92fe3429bb22c08b5103da648a7719e7e95a04e6b61601546955825d60f4c517619f851780ad17f1b8a955cf8c7f1a5e26ca4a0cc19cca751d0790d56e1140a4705e19274f638b7c16d9d3e423a7f787d02699235e3e9e4d543a954f9b1bce5411c8ebdcae86a4bb86c66818a0bab51a2b00383b318e53d95508bab1b19e388cd5a03cdceba0f7176c1782e19ef62cff69352d444b1ce0e1f339e96d8a65c07aa37f5f2cf33867f6c496e0da6cd79b3e2183b57064ce21a1b92072702e555a82cad75107fdfd8bd5e7ea5f119cfbbc1770e962fd0b781aff\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = b056e2513c7c470d897032d406e97b5946dcad52df1c1650d61a1d7b0af59e8cfaec4d9e834d06d819b92a7d440d277e5039ab8aeff25043e98b281ae6ce0a91f8dfbbd1b4998fe5481671381b6a3952448b617ae606f06a0143561a040edaf3c972e611bd7cb814aa4761d38e4a007ca65af8fde6eb25d919d8bd9273cca7622984aa27994d049612424547775c5df75483962143522d075b8c55ea61b04583eb4c0358f9fbb902dedff30b7d8592b57094df4f6345668af53d1aea86fb36dd69b4434bacf8fc12c13802f5b03551ba8f207d4060a9f56e6b7e18c766eb82b6ce6ee0747fbe785c3c1c25fe7fb87de50032b172129fa41a69c3ce0e777ef10f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00000da290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 0da290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = a290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em represents a small integer\nct = 18416ff48c3a78bc85e1f483d546052d84deac02ce86fcd197215f227b6dad58bc19394f46551111f858b08879bc37c620b1e81ebac4c75fdd71713ce75c24293fa39caf46294d28bf87a46da9a769a304157ea1fc71afc3bfb790da32e84d812a8946d1b3d211fb6972b3fe6674496b2d8056c1503d02fd4c2e607bfb1e6b26b35636b8b823757ee9ba3795d3af2dd8710b0a6da4dbb430bc69dc089f1563d34f0d79431d63e7b8d94c8234649b64223d1e0be17463401184a096feb9c81e226eec26c7e9f3f4357536633029ebc0349bc136d1206c6064fc51b6d2e79578f2b26439c5b3f6ffe1b515740b3c4b94a49430631292968eb50983251bbc7f0f89\nlabel = 5a3564e9482a072bd99d0306d69a7f4595c49fb9c06b72250eed2b50ceddcc4700000000\nmsg = c4fc4b065f4595751c7ff8bb99681d505b7d0f1730d404617940f4b5c3b01979ffcffd19e86f69450e5fc14d9bc27a1f39734fd5f8f663d2d87c444e3e15da8764709909679aaa553d98ddbb1ad7dcc8be04bb8751570b4e6cdc7a8f56b09a4af43053a393bd8f947d7625137e6d84f9b9c727475a98ea22efcf679ee0aa5258da88a08afc53bd8bfa19b0131d6f676fe198a9c6a1f84174fc69ccf8e34e3617f8ff6c4192075cd6668392523fbecedb27578e591dead78c80a89be589a1\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has low hamming weight\nct = 23ee3b4df8ac632078167f2f97a736469c6e6b39ced4ddc552d31f0fbc7ccb478adabe56cac20cbec1a0084125aefde0bdb575d68bd74cfbdf5f3bfb4401fa573645c223568918aa911c1f5a01b3b0903e91d82e8c04194df4bdc5facb6959b4df23593c7925a827f029064c75a4bc3d2899649025670e70f3e01336fe961664563a3bb0c7bca66d7eed48326746a060c5d3f18a160abce399917ab2e2386d0f1c2d7c9105d16befc1b0bfd72606ec300a777ac550b1b0b807b7e46467db5bfe0eac8bcbebb2df47bc65fe42174368595b72650b770f47157d2d14c71cebcaaa5cf567ab803e2bcff5f4298c06b1983757abe02faf4c7c5f9141aface72ab98c\nlabel = b503d03521b4ffc4b855c94e911a6117f04c76c6fe8000f8031e705486ae641900000000\nmsg = 03fd61590ddd05555a6d46d1e8925293fe46fa168cb06135c2e7c8d36551187e62016f40f3eb31751f3690f5da1aaba5c16ffa650b2e6c25f3763fe324929c4becc7fb28a383d66c31973c72eb13ff8c87a92b495f6f0619290f8675e9889f49d30d5e77b2115e8805eeeb1aa9324843a75e0bbe70538eefb7978a0ea7beb211e67bb075981673517518586eca5b04ef3ad6a3a978605fbc0e67af7fe412acfcb550d20c9900f4d71d7829a107cc51d663db54c57116959998f3946b4d43\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has low hamming weight\nct = 94f4edda147a95cf29bb0402d0413e5421b5ae347c31b2ec3239bd808c4e5b609d0ce9d9c3a12e47eae6c5fe319288553ba25e8932d644a6387087b4e495ad4bc124596d9440ddd5376f2c1844e61a7c51bef528ad20065574198ace92d3402dcf4df8ff5d68c06dafe9302da4e075ab0e011bfc1bbaa55b4cc1bc30dc9b104539c21d60b6fc7044e0242591360751fbeb2883099602a900cb5320195cb7071819dbce2667a7532aacb2c9b96f3e726267b709c5c0877280f5d4efeb5d4155bf8751f9560db4bfaf8150a8f27b366c3935860aeb106bd88914b6bccf35bb6eaf9217254e6dacd88f0f1182d6cbe25635d4d9ad76a06687d2527ed7d9cbf50803\nlabel = 3bd80a6378115c0c946b4e3af28c6c96d1110621e21e8633416e9c8ef0a73d4", + "000000000\nmsg = 90fd851c721e936df0134ce13f2b7f4469d58f69f85f4bebe2726123cc742c1c43293f85f50b5c6d220f40c387a1f2bb2704a16508e267c6c4324a82191170e67cbf57f56dc02a706e3373e9dca1ca0f7703804c0093e9f8a2ae5502d2ccbf26dff3cd179b5b8f97959d5d2a9400b31b01ee09caa6013d198beb7e0979aed5263974591cca36ceceb252110e61bebdf0272386f9571be79fe3afc8478eb9e7155759ed20e2a2e537d98aeda18c374ed9b48be8624984ba4b15bfffff6cc9\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has low hamming weight\nct = 68825b60b53cc0bbc92e4ce994b0dd270bad0eb657e41acf26a9e3161c5254e4bd38b03e90d7453424e605a372bc185f3ae6ba9ff58fab0cc4c1cc158d7a1e8f1f0b30ac08789f7576fab2dae7e86dae60d9af793dc1b400c2d25a9d3357ba0d27361d74a1b4e1445147a45875901d70f3190a0b34defbdbec1cb9ed3014f15a1a0f9000d9b224fba944e791d303d816bafeb8e65dfc6d740d04719c4ab36c4bbf4ebea5fc45ead338825fc5a71dd6c25f8d8891a4f8d6e0b35483c75c1bd645c3cbe9dcf5a17ae5cd2abdfb132b2b37102122a9bfc42ceb3eac98f2af39905b9cece5d122b70c95239062ceeab798691dd2b88028047924d5ae814df78d555b\nlabel = 48915cebf2a2ef9e5d5b92cce033b60456d72af1ba54f88f5074a36a643a317800000000\nmsg = 0cf83d297f20f527983f3111716a68d0d33d97ee4f5d1822c9e5382398542bd532316db29d8a8f92bacae063aca1c1cd9bc272fec688b3f67956c662a5b2f895509fe6f2406f0674afb0f0472aa205a7d55a092a5ced1b1c1b92a7b93f9c695440a3257e007949d27098410454d4e39612c7dcabc85e19f3421734bb2717de00c041f569e8d43006005960af8f573e13867911989a4c678da8f15ca0278ebbb21742fe33b3613f22afca45ac09f815b50155ecab6eb07806bdfef37b5dd5\nresult = valid\nflags = Constructed\n\n# tcId = 35\n# em has a large hamming weight\nct = 0ed3b1f6a9b200147e535042353768280244b3c831215928a2b2103df02b3613f43ecfdecc6a8f61ce0183b8c60980f82c3dde3a731ea25a0ca9b89e5f68a7cd6cf6c6475f591f24b7a89a885a46edb0ade49e37665219a6da9afbbf655943912636af85e0bc859f43d3c48b4e77c9d1c0d641a21fecf4957185b805aeb908c6387c9d1c8ad85a166c075942f0cf68ca70f8174a9d2a4e5589c7005e2c423ff97c97a208da51d9adc0cb4588a257c0a1d0feb02eb050f9980309abd09258570ab2c8186cc357a9f693107c84855ff6ee7936b71980de42883e3ee7c1c6ddbe03d16a1f1c5bc5f987e6de9cab329ed7a31b59cac467d7b6432cb40f616ac9d4a8\nlabel = 02be339a2b399ffeaec99acfd80f50ebdfc8fe3021a9a432ddd4134b3466b4a800000000\nmsg = 2124d6fdfbbf77ac89f50a235b0af69edbdbe9ef3fcde36441d7022afdc8434431b893eba822cb82585384e36298df45b4b4415a3bdc494604305272f5e988f2cc14a56043421557d5e5dc958fd771e4d509126656d21222cb8e2e1052ba38286c5e3d0be0f4b1c978a61bd1e3652ccb63fea82ec46d6b64863c00b93a3243e2328f70f692aa65f73976335eec5b29a9542befa03d5e82aba9dc285af0913382d67aacd513bbf6f5095e4d5f9b5ebfb5ddc25cafd888addf9ffa068bd4eb\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen125 = 21160; + +static const char *kData125[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha384_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 1\nct = 8402dbdca0d3e9ce70cacfdfe3b2ef26ed92a6b8dc3c70640e06d0900213824a79d0cce6d0d781306eb236384d69f3ed9d921db8203e82a0cab04a51c12eb0a3fe668ab0ecfc419d3529f9970d45d9bac4373ec312b2a24f0c829aa0c0051e44a25e6da5bcccf9edc6f1d87f152b4770aedb8a36993d5768cd97c302abbcfe9360baacf437d68f59048280b560f5265e7f08769103468338bc9332568c20c7efbeddca8350662d64964ae5338138ce13c0cd0c9eb6f0b2516ef227bdbbe55d208f470ec5976116865f42897e63294d4fdbf36f6f4fc43dcb79d2c84d30c5f69ace97abe77a1d82d3fd815253d5b573dde8eb01f96416085538e94b8a0d95de57\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 858406b01fa56d4f216e36fe4fb2ba991130cd5ef56542ff60bc5ac95eccdaffc40bedb373babf08a79620f838d874e574935604cc15b2dc0220f84ece76b43d5239c3012f0cc6a446dece3616606e36026fb1544b26ffb2d0dcbb954eb812e96abdf245dfba3ea30aa5d5e7b81973f5c00a9e18a5337bdcf046c55d7e5a6028b093e6fe5e825807376a27134974bed314226cd65e17077d721cb52bb083e5e379d2cbe8594617908d9b90e0851203ce7d9dd8df667e86c3857c2bf9dbbac70f939d822c188de67c60f3bfaaed36ad4932c2e28bf9a5460bf51f2ad381e96391c4024643c19165e63db29de6232c7bbf951d04d6fd67df6d0dd08c4d164386d0\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = c5390503bcc08959ab92c92ec9e07a59cddd2ca4929bdaec89efde9c4da1011c1be7484eb76b649769f3d258219a2503464c284a1d3bf12af8e584c45b717db7bebe3255a1b8aff1f19bc2ae26672d2bb1cc3d05ca6f4af9bca6967f22593e54d7c42b10e19735d483862850b7f184fcd38a3f895cecce365b68f922083c4737c16d152d70aeee8edff5d3a3c0153b33529b8faa73bccc4e2342b23acc227064d09fa7b66583068d9ae9978c14f96998362dd9ed0f67290b8eb220557e257daef38f118873094b8733c6d72a1aad6e40601cbec847690842a38de4f85e04e9d0edb39834571adb0da4dd158f8e22a6678db45ac86ce797d8b86d4d6de844c0dd\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 5814d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 8472105e089af324cfcbad5eb2ce2f85185f2e2f5a9e5e302022eaae5e40b1507dfd4801ac5d4743b18b87d916b2bb55bba812735831296dfcdf4087ba4a4dbf852f0274c7e37dcf2682c3aac50a70b6d08835b0c59e90fe3ce2f3b6100863936a67af141236daf5f588f2eaa09c391f5728dac6a007a02dde61bc69c65d4885149a344046d66f1b91711eecf5196006fb916ec209e5bd251ccb97b08c31aa1ebb25b44028047ae4f61adaea5215e0324af6d0509da3a3843eed6ae53fed3a1e459c7aac4d94f8c85611354e0e24f7630a42b184805f67aa7ed0bfb57e6136c43261f81940338fb4aeb662d29301ff3a0a5a01aa20e53f4041c20f14207ebe96\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 3645e92f0c46b7d6f6765575fa9aabde09512564a2d2ac80aa8b43710f34c4aff72d2df02446cc548acf30e34994020ed7301bba6b69bb4e9abcc766e3c9284abf824ae8389fba58bd2633b01edc3ab648788d31bc7b404f6e079a650dd8224b0642fd589b3f84cc393d18bf8b3a1f65fbe6684f6a76b3e767d5f2953db53e61dbfd69371b69b7112284f256ff11beeded9f4deea47350c283d825387981c1d51d62ca032485a1a6f8582148e7b80d2c55daae467576ef45be6f00e676eb5a40da88c18573ff012267859030cc614135dca8694dc0a0ef0d00e62761999d93c3e8651a11fb43a028370b481ddaf6cd8c4a086aea2e658d44556a6eedd64da5d4\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 4dcaf6ae82481350b49b344e2ff3348d0064b63d4a686283cfe7ca8ded4d73c55c9cd3dfc6656e3fd18e45dc69dddcc82a33b46531f3b5b7682ef1fa0068ec42583a2021e7dae3908d924a6bac3bcaa123c88afcf1dc6e22ac6be966723223f5f7aa46e2205c6e6cc594cdc5cbf9315c641a84665d66408a7b4f38ba6672fe3c77c53ed13ff5ca5e3d78ab51fd19186802709a0f98d7de5efc10ec7aa4448c0e89d506168acda5c85a12badb8b4104c6b6d48ad4cfaa4e055484a8c4009bd579e89b81d7121d4bb40e94a31f35ccab0e71cf767158139e7b413912efc9716d8de8f088467cb77f8e0649aaed9ef9f48df64cddd9b75ca5f077a08468a768cdcb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 8d31b6a86582c2b35e86fba1af4d02484ea81326f9728c22761cfe337b7d0adff787e2cd68c3b71f22cf9d0c141e273ba9c61cd6c6cb18050391279456c3c930cd6cb2df70b295e3c062c93d60d8884a2cff2839364086208f1be9007247233a04805151b46854f9da2b9a9e0803200afb3166db9907c9406b002013d5a566e4ce83b0572694bea9d3cbedc796fc4538f0315eb920bed4267b12b9127c683e83069e8baeaaa911c8f08d", + "2457539c731c6a90c62768fcc7169088b98c13a291bc70bf6d10372494f072d017cab2f2ab8ed682b4514f576af2f81b90cdc13a266efea3f98fecb4a2ac1062aba39e47e8b3bc487156bf7f41cb7872e402d514df86\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a78eefe103fdfad9987535d10be6543a0092d1b49aef20a8c40df71b6470b560c64d1cda67b47338a572d695b314d4ba50f836deb746cc5a862e50c76fac689736c7912d5324db072f029fba10c9cb879973473e66f4a617d6aca9405f2556d44bf1d6fc3ede6a60a52334cb09cb0637f8f247200fc0063a0e8cc34ef01a6657a41444a942a8c72248f9dc2d15a26e822e0ef73ea5d9ec03060f906790510d88f46c38def40397a2aff2b77540dee5963a0ea5049904235b5e74da536c7a3f353d9cec5c50a5bcbfa07b9476aabb8de297653680823265d7afd8815267a79953301d7040e08d5981c1bb8958ad5bb3bb420b02449a25e8fff1d216fdc1f3cc2c\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = bd682ddc5226f61206b2464973df9155f6c3474412943f51dd8c8e1fd00a31b6ee2cca899db0aba83a918bda521014808790a0455a32cc765c19f088a0e1773364e25745eaf015b185ce69c7886efc16b3d95fb1668038eb9ee812985f965e3bd9bb84b8da9f1bfa324d050af36d93bc793fe58d6762d927340136dfac3ba149bbc38b4d3e4177ab95fc6fd53acaa925180b88b71f607620243d45d3bad1e96297fdd339a5a25a37436320e549742a5b1266d0946e056916cce24e002f7ce5ae412046bd0c519efc417352bd6d0e95920712d11a7afe3190afdd3b5ce510c0df7ff16c2e80869f69a2cb735f34f9c260b472ed20c3e8e61b2c38f564dff60ff2\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 672d24c076429291e410245c34e35eda0356fb22076601d55bea1bf309a8734062f44ee6615df4fa0067d43e86cca0a823bc4089cd50517fb3b921585ba0d1fbdb131a24685c02cfb25ab56ade1de0f6e705519bd5ae7e4eb2cf2a63ba9537ca850008712825cb2a2873dc76715c9922fcfb3a3acca0a4f15abfaf49fc298b5788bc912266900cb82700404c502ed66c83b6a4e93830bf9ff8e547a6c623ee99927dca03447fa1af896d76e59ecf3ab73e0453fd0d768f5ea1f4c8252f6a01849f8098461147c8e137533a89807968520c1d18b2cf62677ecdbbad1f09615c6ecb4939c7cdc17a53dc46f8143c36e3ebc99a21ef9320e770867d90fa3f083f9b\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 17652dc5457163c0a622e1a52d149770af1b5399b75cc7797aec3238bf8d9a67061e1d735e67f76f4f6f697c5c4f5eaece14eee288609ba0433fb17d0f7c54c9f5593b0059aab6e8fa94235174fadf7e601ea9968257bd9d9ee85631e3b1ce0d7a66294bfa68dd265f921dc7806babc31d404c35e51f4ae61c4b7b9e4d44f8c8decc0bf99b4a4367b53e3a61f85683ddc9c0f7f1d2186727517d1f9cf206e1004b0f57a19cf978456d669d9ee1339ae3329ecbacf717f13c51387b1ba0ae81718eeaba3e6227301ba8ff149a1c6d286e1fb016919fa4c8c7b78acebacb47606713b58205d15baa11755e7646b20dab4646a02d374346ffc09f6beda72a7f6734\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 02776046b529db8ff90a316f91eee580346bc626a688c0978fe5d66c14aa9ad9fcd2a887f98b77c8f3037126d32382dbf6a8109f8c0120e964a7519fe5bb9d1f4bcb3cdf761a19587b4914cde8d43f6bf31ab3d71ffe29ed293ea2202e5d383075cce7f9b83e3366563c148c72648a0ade863be3613d715dc9649a442cd2544762f3d2f0c0faaf9384f3f5b021200a062ee74d8b809cd9d8bfbe989499d9872402a0a490b654c1f856526334dfb84e73ec37cd75f63151dbfdf78d5e062977ba707c504dca2509fabdc85480fa2bead84f14c1a7197e2f41a6940ab4768fdcd6c72439be6f25bc600e0fc882348b73582adc13c674080d9c921367226230665f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 3102a70e601b928a6b350337b6e424d3ce2850bbccc6de821d677f2c406686c24ef6f3dc6fc450f873a7dc4ccc8a16ecd1c35b9374ee480465b7b312149538fe2e1d3a2a8b017fc916d3316eac606bd65b9af6d6179fecbd8ac2ef0f6f59082612dcf24786b4688a6a8659a46e5a8f941ad7c11a2e2e7275b900f0b8b0f6ca4c21878d96e876b05b3b1bc8e0d5548d433ee56f37722258d988624f0cca3cb0976c31c395f06931da563c3f2e134e636d5c50b4f4c32eb3a596b360ba0dc5f7fa2beb8f8342787d9f9e55ec018556edb4ce0f9d26b0f410ac877073ca8d40eefa2a500bf4489bad4fc60c373c576ab0135a612e2711c6fe04a07566f4c17d021d\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2393ef64f33218e38ac80c309344fe33a1deba9f63aab29e06529f5fe5736721abbb792e787f2df1ec8db8513869c1fc1f0a78648f5613f70e0b522cd5cd78c01e121d3e527a49c248861c47f7b108228a6c4481451e2ac834029a48403598105fe99b3f060296043fb609277fff1746325763a5fde8d65e6f43791abd7b113fd7a8281d2629caf7f7615876dbc702aee7f2f01829b506dc336e9ebbc6147d94d853ead79693c3c6f956a18ec825be43084e23a3e15d31a888a885152bd7cff34cf3de284805e8358c7ffdaeb56b2257e3c7c1fe8c2ced183ee27fdc99e4f74758cd68d1442e1dcd05b62ce431c26c0c76852750791375345eedf9c9848eb272\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 6115fe66f94af6dc4f2cc46e552710603c271eb211261f415bea922adb0dc26085fc650758b79403dd76e035031e5d7d177abb752f4b1feb0bc44e13cf4b17b9b95b553c3eeeff2278f827345fdf3308b8d534a1e4a07be9ebd60c96fa45a2a04d6c91292f13223950466e441550c8903677be93f0c40562d8c51f9d772b7e2f721624342d6ba28d29b628ce8cccdfa07e50cb379063861abdb0d6876433243bcebe75a3424322255b5cbb44f2dfefaa9a9383296ebc44c6552f87e703368fbb33cc83de4f9027c588ae3d9e567ba28bd8efc5a4b173accdd0d0793abae5d2fb933055553be82eedbb6711e2ad648b04098a17e82a2a0ef4c6745c15639b7c85\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 4054692a9438bb2156dff805a60dde5ef1812df0eb8f7b4eb2aef74951bc2ad44850b830f558407cf5bec5cac20a26ba54112871a24e138ea43e499a7ff60e612124d06e0cd88533dd7b64ea20277fdba3c2522bdac6f79d9884ca1f971f1db54698e4cd149cca7674210f3beb08e1ba5bd1647417b5eb25116b94b165b80bf69cfad68457cf79dd3bdab1ec01b757d5f1a0286d53d8340ad5d53b0531a94e91e1a7f0fc864d7db4f9f0cc9ee0f9a6eb03305d7ebec3fc997923e7ca879d6f458ddc4618d2d8b7baa058f25c6dc092d6360b7f2708a0f28ed44c722f39f1e42b6aba4e4df8e51545df6cba4ed7b4fe8d65a6c1ad09fffde83e962d728de73fa4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 14c56a1f064ef78ee6a263c6b551d355fbf6beb7bdf6769999b86182f836a63f1f53c629243ab3dad581e221e8b51cae706698970d205f4bfb3858d265d05e0d5c9ad973e0a30f8fa6b249d1271ae931132ddb7d0b5a665c4a4f178aaf036a25ffcd5225c6edec847f9ecf949a93dbdb30cdcda198c95353033d87b3cc16fcbdd928dd131f4874dd4b50a8a617d049b475308d649c84444cb44e8544077166636ae6b64c4600029243f0acca7182a32e5504d98fdd8ab9cc3136aa0601ee63ee4022ea40cc6525bfeaaf3afcf66b0087885badcbefcfa31a0262840f098800dbe26ba91138600978ee739054ebae9fd9ce8566aa2a24989688b4f3245c7be832\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 81ea170e37cf844e0e3569cd9a1c88fb35d894c820fa46ea6de145613e51a6444404b18313bb47fc27ce81b953416bf40d9c86062f50cb7d547f0cae0682408fb6d1ca311ad617435229c6c1cd118476a12cf1fc96130208abdffe50101cf07ad3a318a8312c6c23fe9545a21274a169b1d7d4dbf198a1a06197c4d77c91bbc6b8591f66a3673d1eae4fdb0839b5925868ab8cd41ef670bbfaa77d12a9347658a969b7d0e4f51a1efaeb3339c761b8087f865d580263306417a275aa2a69a5b7db581b09b636f2dde022a7f9d2b2d88d64c02bdc3ca912ae89f10a0db867e61e7946057162259f9105cc13ba8d5125bcb3c49ddced4ffa833414b5f21d1e8446\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 8d86dc4148c4cdb2fc0fa7a92f48a1efd33897a2306f002aa39ba338cd20c44bee1dfe7db050145d9deebacf296cfa651f5e2e0f1a2b9e09df5d11dd564e2895f64c359c590ce0f400dd774f67c2e1ee178c0e5127ec30a2154f74b4b75b7f3788e51bfc6a54397f28e88587ffea825efd6cd1e5b6aa1464cbd5ee1aad24cfb86446687e58a2e9604f05a40c237bb94300677cb65a70505581af2fe51e0d7d82a08629db0499fb1d360f1f1a9affbd75579b98d6d976ebe2e407da9121cfb3a8b88472fb868d82881be87cee4d23c58a27b3707f2771dda0800ff269968bf5393a5d8c83d5d4235cc1eaa8c9db342b2929ad0ed8638044915efcecc507f66350\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 3e970ded411dc9ed2a18ceadbbd9d5470209c1dfba22e7cc3287ddcf10ca0c28fec6cad62227a156a5ee2066a995ab28a121ca7599992abfb75dbe987a4c190b1c58af8b13b11ed247", + "24ba41e4a484fb35a38941c6838e4045fa8a048ea3efb460b01fb2d11aabcedf4ff2db5e889145bb2d729c8456e51f29608eb5aa65a1908fb94beb6c2a89778a1f2389821f15f818865e38568eea9aeeba0366198379b13723c6c37745b7ff7e4f7164afa5394083592e7d102ffa72a5ae6b3da8d92b5977fdef3a6449696c9e5cd2024a9f795e81633c243db6e74e566cc68ec4043a89cf69e020ed10b6590082e1a2015369029aaa673a92f44d6e62604672559fd933\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 731eaff9f54ce72b0572eb6cf3d586b898dd9d96ba82202c77a63f1d98642920790e092ed5a38abff54b6d12d7985efde0ec8b6321a5b8183a80adf3c68972e90f0027654e2c585eeb99e5edd7a9b56b652acc0051b95507b3daedbc6b00203f50553f432e612afa74056d0fae7021159ed95477fdc5719627c77af1ef2b2ee3b8048da4ef6ddb1662e35aa560cac6cb0beaa7d811eab49939b6dcd3cdbd1f00beb875bb60fcdf2a006eded6f449bae338908a0fe181035f14e6fec4f162743438ae2d9bdcdcc49c7cd778e762458bf2669b35ed3d498ada6041342d12627f14cebbab2c55daf2b9e4e645641ce07961b39061f432b6ab787a175f8e68f2c98b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 00005814d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 5814d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 14d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen126 = 24258; + +static const char *kData126[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha384_mgf1sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 1\nct = bf20e0e04ddbf103a5133227fbc2696a0acc72f76f869240b06aee89c25128386d0e0c16927f98c1ff3b22b4fb61b508f383f7ea764396b2201e800c793c81a4d38e20b03ead703f0b164d7e7bf4708ce970c5907b139bdab8e2a1922989f97cc2cce656fe37630919626d966222c462af0e72ea36f3d81678bfd1928caf9111079edf93796d2713deee2b85cb04fa63d9fa41d212345507c90d04f4c6c80a114b36416cc55d78eb969d904269a69bf2e839075543955616071a45bc1678c64304ff5f4c22b207c27703f70061d1471b4704357c13dc44e1b3eed0842f578e3e84e28184f84ef6f80ac806c3ccc0afdeb17a74b42693f6e4b2a6c76161363f3d\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 0051190f85cf3bd0e9bdf5c937593d2219db50ba7d0512d38807b31eaa9310f0120320f7fad7c6b135f29cb17ffa5b135c0ebb1c4c8112a66912aa92bbb3191d5a284884f19460dfb9bf232f0db6c207ff21d53712e1c8d90bec036426cef56a017e6175bf8bf238c32050188869301ef78d3984762038bb72a982d5c9c9501820196d68c798ea29d0d60f7628625ffe975ee0757c6b70bf87b8219ddf9e6ad324ec9751fd3664887336bcaa7af71c93083dd96702e6089e2b67abb763193f95d4222b9177c17b4726998240ce74205f18cb4b17bbfc73185176ad761c1d48e633a4ac7adc2f61dc95798e530d20817b721311be824dfcf7629fbc533543280c\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 0a5067a97a17114be5a71697f15694d98cdd6e79dcba1726a38ca660ae4fd9a1336df2de79718cea176a365c46a24d0468c2a719cc1835e5b60aa64424a8dea0921fb641458c279c74a7ac74474126becc25c84cb8e411cc7a119c78298a2f45658c7590c3b40dbceb7c41c67e73d41b46ac55cbea541c64a91c521e377890cc031a4933a237609dce1d9f76684641417a44759662e166d837e77e9b8b3fd3343cad26de86db4f914ae83893fe9658654d0932b6a98ca5735669d667186d894b5d472a1efef4b2e06035189feaf960ca1242b620264e71c47307a8a38bbae9bc3d1bd5508ac37f1ba770bfc36a50a543ee204e5eff5310fe3bf430dc6908eb9e\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 767bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b80\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = c2a9b96b17314bfcc82d0653e14aaa7024b31451a842f7174a8a708dd80c94212af670806f96e7c08e2413198bc32d99a2e67d32c6fe772735ced16ae8b903d340b61585eb4b2ae7e0f51caafea691dabe31ddff90b114a13f05072fd8a8a9bc16fdcf32d199daa0de8ef34fd790f113505eab2b049c515a13a7d56f452f748ab76a07476d609f9e8db48d97f74f8e8bcdea62f495f573bfd2a171224bce7e2389811c01eec70ddffedd6bd2b7a3896a81a383e686dd80863f86a2290db0961ad1b2c6399a12fc725a33a182dfffd5ebc099612b9cd996a1c44037d2396ff657d22a50d94204e4428fe3d62b629c8319677654efb1bb0fceac9ae8d1eb3d2f07\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = c67d74acd68029ef1783f6412a2ff097bc4c588f4125dc9af871ff6cbc18caf2fdbd5f92235211bb460d7c32bad3d768a7893ad5b1e920ec9bde3cf9577f66a16d5a3e5a4feb40f0413ad47613929b44d40185cd4507515e73e9144a626c6e2461876789c8128eb6438879cc6b2a971dbcafa9e9f40b0120fa38f48023805011d89d48cb093bbafd221aca8b62311a6a2a29a92e13302c6da0f9190aceb9c36c970d731425ec079bbc6295aac01d9cce136f9e2d55e8516d007413f1d44bfaf63e257767dc0620a8902fb449f9d62a25630087b613784af81f1a588da7b0fc2ed2138e58eacc746cc2417b0088a1bc945552afb7536847baed72c16484ee7ddb\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = c1fb0843b4e3c77e622d1197ee897b8251971172ddd2a1bb94142173451d1748b468a450b15bc062adc94311fbd43a807391721bc05a4949b39af2ceafb1bbbe6e157237c6a7cb33fb971cef3c7bb172ca76f27e5a70b4ab501b8c4f695145da34f00a54deb47baf1f4722c313a1822b8746109c471f4fd8e6941cefe545804fad30e789e419aa32f16958fa667ed42912d6dfb5cc6d7635e2867253bfeb5ae946283f4fbc001fe8f578ca00c735f6cb02f65efaff2401f9da630ac2ed9ca7d44e4de8ae1ff6425560d54d75a934937021589418b91573b4eeb4f698383009c3074939d83c90d463a2c799c16e06c6467641d335b001ef89c9412f7478d5afb9\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = a59ed1881782b3a151254fd0102d0c78269ce015a542767763d786bbb88d7c764e6a2449f49bb8313430ed480ce6d65583502f647f439ffb578cba6267ddb492dc74ffab44cebbc11df44fa6e83899719c7432e509ae3a58717f452bdb531f01b70f9541cadb504b942f82b1032a5daa27179d83dc63e0f342d5f769fafc07506874704fab17d61cbda698a201fa42738fb21e9ef8828cfa0e0b4a5ee86e639d69642748cc764a4f", + "a27fdb18c422f1257b9a7caaf2430e6a347bbaa170b77fc7f2aab7ad2673324c17acff7f67cc00525483c5a390c084eceb0ddea637f09cc1158638eedead7b38a14e9939c555cfb1881dae08479d838c1dc1af3b81348305\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 5490da684778d73666ab3cddb145bf50c914ed7fc5ccca7fa5aec07e45d925fd404e34c899b3620ee010cbdf02f190bf23f47c07f995142bfa0b1bdd988872671aa4ccaba8fcc668cf413a627bdf27f8b680f1b9d633cf3e2a3c0b83a9ebec591c9fd9f1a4bc997ad836bf5db9a8015c34bef11392ef8bfa4b278b9ba8f315e256908299812245dc534deacb9b97b7645162ab669721268177404799173f4f9a1e90abaf04cf78a1ea8a95e86c343553153562e3175ea135998e20cb51386e934ee28676e10a5a73b59fa1ca3b5c96ae43323883ab5a9a9214baa461046e3f600eaced75ccfb887fdb11d5d202347918cb42276370ef6fb42330d3922771e7b5\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = aaec366e45e9cbee804f4beab0c7d4a802731ae1e22d93e3dc0fa4868dd849c0cdfc52066051cf12887ccc09257301026be0e4ebe2d60dbec6de547d1dd4f778682fa9d88dccb0eab5e6cb07fe7c3a3664b5f31bd68cdbe9b88fec684b9e4a023f0e782e5e9a328628db6c3d94a1082bd0d3e453ce2628c1f17a767c017d725084dd0b7d715241b808b2537464dcc6eeb5af4c4c18702bcdc733c53f35d805f813e772ac32bcaffe025ef0fa8931849febf99c9e73cf5e4730a14924d9f074063b4d80faf3e8bce1930daa241ecee3b684d6674dc41b8ce53aa8c0002b0200fa393720ed967822eb2edd74a195423eba5dd6fe39150dcb697cc1f3553f84b9fe\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 348f6680d25d93e7f8f17f2410dd4bdc8a2ba5c9d29b17f3dc1e308d868ef3e1121982635c60fd386f77566370f5bc0d34e9596637c59b00a6eb665bf57071260483f72a5cf0bd6ad806a049aa670ffac206672fad6e206d9e13f82d89cd3675a888873cfdd1ea20feec04ac9e1d4daebc58ae9ebb84459a3481d268468f6e97bbad0011247576cdcea319b68b19ce7f2573cb3d711e078b9e206fea729e5b61d67f400a335aedb48f673af1a81c2998d80ba34ac18530ccef71838658e8937c127f5d5ce93a525a2ec60c98569d785592490fcf3c72d53791f8e81244292f1824264518bb827adf1205e6a2e1ca7d01195dd4c3616acb7580c0c9c572024a4f\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = a642bede4d119d37ba3c6f729ab8ef09055a41c5cc650a954bd0a2aa248172f3e332d3caf27f6652202287705d58b3ec31a5925083486c50c31ea5b27a693b2b93c6a4be3c5938a478148ed6600042970d71e2ae81e21a2f60ea683c4a11be85d2a00cd39edb6f05f8e93c2d760e68ba74a42dcecb6a890536c7bb093146a8161e8847b18ddf18e13eb04fcd841260016084b23efad5f36c3c5374a850b26f97e8076f9e288c9e904845c46df4fd8af41031dc6a9dc41c35c1ac73fb9586e308ecb8260d85d730ffe78bcc0439e4845bc9f6197956b2e4dfa4c5e6367b203c1a450a081e3edf6b50aa85303bbb547efbab5009fa80839d78a7d3c8514815a993\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 4d805a7ce650739a4e4f334de9e57fc134604c9e5198aab2bd2044b11afbc45741814b2c6b796411710445ad3f73b5a11d2066ab73d4ed636997c6542ec18e8af4f1ca0019865156cf9ee86315adb75db3640953d1f1268537d308256f712d0a3b3a4b2b88322056ae9c06458fc36eeed60359d091090a9a3d6c3646fcf54e0f98008a6440f5077ece467e10b9eeffc671309306eea60b912dcb872b48428450041f553412b0f7a370fc1f2ecfbe1711658de4991fedc33413f8faf69c3f8cf97e9003b2b039bff237681339875a85d2132bda1a029a2e79f0e37f90f50358216399b599d17e7760336fa447e6599cee60ca384f829df0fe49e6fddfce91a74f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 552edaec51577daf5a3a41f5122d8e14a0f210f4a691c22b624550d953c2e0c93fef2fb883d766a4996424377c384f41624c3d65728aa1a953e3283bba9ff5d020acc1f870e495c539f9857d32b42e9a7f821e2187e997c409ef85f0013c434918d7e085566607c2cf279d6d7a1f51ba51672d74491d1ad797461b555199ff3bcbd26f3d87781f09dee6cef446053685eeb60f0a81d57cf73b3d674cfff6060f53b0fa8f224e43ab4a88f0ce37d2ab9b4c257df77e7519f211dbaf6b9837992d9f6cd4e5fabba4ab0b405b49c8ef0cc172bc5889ac9beecef9abd48b46b134c3f0a8522cdfa0a07fd1c91788ac81c06b2cabd16117fe55d7892e4dba41188dc9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 5de9c4fffaad1023d578673bda5f05d62dc73b5972b5addd16c453cb0d5aa9beb4cd7b51ef91a49f58c4eacba817b298b3f0d5053c37cfcc03770c0f84e77688bf35904033a4b002fab9065805e698f6f3082c4afd05d18e7b066a45a8c400a25d935455d3b575ee28da69e833163f8014f50cc3abda567b07f5b5fce34522f6825cfb6432ee17fb9ed6de30b7cd610960cf39f19844b09a61b00a957706227b2fa4e88081ca030a264dc1314bebc9a760dff72ded1f8d51706349db4cc95f0d7e6f331535075be4e95c12389759c26717cdd933157117a3b03f1c6f73826ab837a57405b0cdabb22e7f6ee468f46d93549067daaa6e735ef478fb2f6809b116\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = aea235313fd3bc3be95b1db39e4bf2ae67b8e70555d6dbb3de2c079c19fbb1dc4a9a6b4e8ce3d8dfc6d085b76a0559240bb90dab223dddf650da78301c255085982a7b8ecf11bc824586de0524cbcfea2a83ba11f619c8c87ae91d64aae92743b6e2719cc3d7a670a77614e086e4e3137cb1ca0c4867689b3c3aeccc5f31528801d1e22e864c031f58ced9d73f619bd5efa8f28f224587768c309e5086703ab9d6acacaaa1ee2681417b647c92db0640446840866b50de5d357da3ca259bd9e0b072bbc3ddba819a90ded0b4df6045ee3af3a0f013228fc454263f92a249eded9c73f7612f2f3303cc2b3463dd9c7a0fc2e474f899e9a27f83ea7fa5f11e0995\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = acb7bccf7e2cad69572f61c98565957f0e30931cc5980c4ee4540844e08d37066280b3d8d0f15090faeca12ab22b0a3f70b2d3b68ebc6d4b3f1998277d93256836a1f65879c8f48ea22b13b80fb0738cd44fb540507fb9f44577623a1af15384196afc9d5a6882c245938fc1b53c600fd0dd9f07a574e167041b53f414c7db6c252e875443b0006358382f5c83735e971337077249f7e9386ed0e915ceab283c0474308bba05e7410c91959648d1768d2e51e599d479a5578c6e7a0fc61fc8e18c017f4e2576087be8a8fdc7ada5b708bb07d6b0579c9baecab7e38794698c6d91390fef554c53b97561034db14b16dde648c9d5ffe61ef8debab95c57b22565\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = aa5b36de5f95c3c3b355a7968d39de17299bdb01870f07b3600714d5999dceee36451047e7eb1942bf25828a7368d219710ee27cbb8f58d9f64d9cc165865fbabdc52594a95049f21b65fbee38116a8032d37eb53dbe05b7ce5476e694cc0ea4ff981fb269d93cb634061c8355ef8e29d35ae3c251d24d894fbdbcd151da914a2a1c057a22afe8e13a596829cff32da6a8f7200cec826833bccb20bce20f96dd04066ea0728149dfd469ad2057ab3d6517c85d8817365258bec18a3fc67f314470b75f00c57cbbd04c51bd04971603acdbbdcdb36ff8b315baf4939d0b9ad5fa52093c8dcd701fe20fd67d8c3a1238f60141cb45e6b4ce0d504f03028091447c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = a79aaccb72907b41123e3efdb57be0c5ab48dc09ac22fddcda6bc497cbaa95b588ed3c70dc3e394e96e8c8cc07d1b49a6ad958a9cff9422be78aa2be641f38dc1609e076c41b79d874b8dfc0d601fcd065c4a24b9762170fdd20985a283f493d6772ac5b87f28ddc3fb67a941b7de48c6a8a8769b30d8e1cf020e649d11922d46933ffe809a68597744d9fc54ee47edcca190ab7d95f66067657703a61d53a0a6fa28113e1d4912f3ef0a8d2b5d0aadcf607f2f42a4ff52e2a9962d119fcf8d65c6474a91d62fc3e7fba867d06a07a03d2fa4969195879a692389134a5f414632de3dc6928744909452f7c6318ffd0df0ce3d9e10a8cae53d806b555a462178e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 07bd2fbe880a85da97962b4e806e3f380bba3dc80f631d9b4a9a64ab51179c5ea7f58789d8e5894b1fc7df15b34d09f5592fc600bf1edd118538a614ce3144165bf0578652686ce7df720c2660543d836746675a41cc929b198647c52ffb8b4afc74cba7de456d2298a1aa40c25247b4c1304f41bf4e137b98245ab8edea6f62077a8eadc6bc903722d0c7253b3d2b0acdc1f961157f14404dbdf50f294fd7fed64fab3a0c3cf46e683f41b89c0db6112395ff8af6348924823a43855a0cceb4bb00bb2564e40de0db8ccd803af1c4ce7873aa2fa156d09a4274b47c5888553cd09c32456da49411061e900188225eb181cf57cd8bbadf055f9f4df6f6389acd\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 79cb7928bcca16d8b74a0900d8de2b4e7f962e6073d74f3dff11c5a7d3e407ca962fd7eae0d3dc1ede81ea7cd4059fd1e304bf297cf30207b0abc8aa31189403d52a38811b6f11", + "bfb930c15ec7b0e2e903623ae1d81083a5e0a7331c620d3d5b289adcbb74246d9c59336d165c0176e3c1b922d381ae8da731a933279fef6d185a689e039970135ac3c4d1d87d858e65f409341c593dd199e2dc60c16033023ad2665615877b41348721fdf3569bd03aff206a00a9705c25b3e33ff3b700ced05a6e72f3c5581eb3090c1c238ff5fcb26a286bd4c231f4eba81c5daee3c3c2dc9ac3cf2e73bcc15eef091cef335b8b89963a0d5983e1754e423d3b70c039b2c7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = c295f57de51d491eff362ae8459c8be0224f27393a6d135bc8656b4f4a801f50e1c4c48b9eb52dda12c397416a89f709813fc500804e0cb458ce64d7c2c96f3f1f89ce70eb79b1f3c2efbdc46e1bf5dc8deeec5a34ab252568aaf8b6d832f677c04aac913901cd37c6914fc3517e53de1d75060c6c2d766625b5b8163ba556414cd114f45403f73d2676b7fcf9208d4f299d492f146f3e3da32ebfbde77a4f91574abe2195af5ba3b91bc4fe441e15e01da0fcd6d9e374aac38e622697b9385edb493bba4a486d35e8700c5009ec9cb82cac71a88c854edc6f1ceef96e759c64b08350f8073fff929468ef5aa83a86bffd9750dc43ea99927e93b4b3f84819c8\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000767bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b80\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 767bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b800000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 7bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b80\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# em has low hamming weight\nct = cd72b9c7697a399323bb3df69256ef3d7896c4b7c35a4932d56321e2bce7d590399041672d8a7694ba945d065469d9f527416cc771d6bec69db4d3653ab84ef6a1e1ab13cfcd5a23b49fe970f218016bcc674a655a10426cac75580065df467e2b3ca95e4a92f0c58b5fd9e6606cc44496a42207da4b5bc46ea6d389c35b3095db2c7ed756182408ac5c99aeeaa7098b1f4a91c5b6ade587633d66c9bc3357b11f3ecf019b1c53858d451d9f00a23318338255d48921971e86adb89a5c5742c6d7da82c7b9eb71679d2dc54911d9a427246be058f54ff269108c47a4bd568c3953a9365f641588f95c3c51311b3fe2f7c4e9b94f8db3410e738157d57e559898\nlabel = 027f3eb14d2f370b118a0b95acb6ce9849b6394de05269f339cbc505fc1b45f3f6a25b824cf997a6406ab2f496e145bf00000000\nmsg = c8556ddde4086f39f881c459e790ab6d3e6ac862be3b0f7ccdb6b1859eb160793cc16538744dd2d7b8f5d0a431b2e7fb21dc47977b40cd1381fcc5f3e8577331c14584ab3e5ed92a979a5bebe4b48c21a8b4f71d6a496d526907f7b6e5791328aefb2591e7994564c996826798bf62fa86d4b1e2f57e5df1fab316a928a007174698d32d15cc5a7e15acf53c31b30dfc18aab2aa9ddb0edabe65e153edb6\nresult = valid\nflags = Constructed\n\n# tcId = 31\n# em has low hamming weight\nct = 4112dc2f415f5ca05e1a9372660096836f4e47649ef22f31f3d2b2765cccedf922bbd9417f3863ee6be8f99a748f6b2d8bc0b286abd20849548b0173e385fa906d2e6d50ac3c8beecbea78d90aa7c630f4cd126b84e34b6acba9dd545a8673c4e00de4f6bca436f626bd7b8c1ff3c7cb3da7176ec11a0fd596078905a57e91387ce470f73c239227b6a9906c3aa8ccc214f323ca467a359fd0d1ae6c3a560d0f1285589b3e8b2e2acbc3ca606fe23298739cc194d97448a57206595189bbc9ac039aecbb77a3874aeed61ddf8fe718a873560c52f7cfa22d054d370aff20a48fc31850a19d7c4173d120a4fb108051bc68b8ebd40da335f620cce53cd07ea9dc\nlabel = d14bd61a246e92ee2be39c6066d25d2b2bb3bc95cfb16ca34700048ecdcfe85685d5aab6bf71d5d83bd6faccb81d1c0b00000000\nmsg = 5a1eba083b903ae2ef8bcc91ee0ce44249903d72e0dfecdb2e44e196f7b1febe5090b58e40b6e70004cf163b9a59bc02908aaa3eb52063d0b9ae6817a7eae8533a13437c0eafe1b5c359b5dfbc8821e213c41befd4b4548dd3e37f01d6b461d12cc4031d50c933514f004dce0e62a4e970b6a7b3bf06819dcb2a33351d7e8c0d130b0bbf3a67e2b75fb0059fb6ea8364678e90f86f9ebf2e9e4c5299d389\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 204f1dfe1caf7952af8d4745071f4176edab7c4670db83502a450f6b52a6d90aef179eb4869b371d6a3ee2f0225494bdade6bd38b04a8ccbb00493e7c4b60c0c5be671808ca91f93aea17496b47cf9c6ca83e5f6cbdc41860b840f2c7bd19c2236aa1caf92f7b7f151305abb173d1ccbc97a3dabf50c24ae5d5bb719595cc2d1bea29185c55d7e1e873ff504b8e3008ec3bd8c702e792b6f6b7b24daf71b12168fb5cd586ac9313bce2fda37cfd0d68e401444920ea125fd9e7c8f424f4c5e0a068e7b95948289d71472b75d429021acf73249651deb09cee062de574e5ec18102852d1946050c84b3da9e63756f964cba0e4c68e8c8ef2cbbf6cd325a11853b\nlabel = d13595cf0b4193b80f34d3ed3f8a4cc3a3ff5d42f6a21d7f1493e744c3bb5819c53a9f16c9ec3b62dece167bd674a2f800000000\nmsg = 068a7d6662c9e1f96cb4c32cde0ba6da2aaf25501dc5f3b0cff0c74b6adc1cacf81c5b546505f360a4edc91f7f54cdac99458bdb01a5eee04947e2c725044da507c560a8b9856a5374fd75c02e6b8d1f915e291c6d8352eb89cef2f9297cc4d9b8ca118d1ebfac47aa64992a7e077e4ba35ca181eb3f0bda0330720f3f702a33878d3035e15e6376d528fadeaf29db79f4b6943417bc741c2a2f1d1eb598\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen127 = 21094; + +static const char *kData127[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha512_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 1\nct = 409225dd2229d11accb99804e4da69fbcb862d3a74a1dceb8f1186d8d13b1569aa4fce51aff273aceb1f0c875d87a979f9915fd400a2eb1713b5a1ed129e6b0c7ca14a61a0939a87ae88c53e91ffdd635f7ddde6185dfe9b5b7bd739b53c4c198dc8333a36461c4d750773df1c84f024e18dc78d09fbbcdc4d12bb29854b2ae04c1b8b141eba753eed9cd90a5b66fea37612aca4c55f65a8381c4eff13c37ae1f9ed0688514788babc8ee27f8e76296495df254145331a49d11e7bee5a83a3713d4bbd5a805fdd8e84ba6ab869002b26e40b36d1d6c1189b8ca1c6fe19497a8059414abdc88ca71252fa86705ec96a7899296925f885fe55c9c6d2cbe7ca8578\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 7ab35168dc51cb7b3d8e5e3f9568e588c27dc395e825f909f3ef2a88c5ef8e1ee4918dcce7aa0c3ab6860f69de90e36d19284a15954a3bce2c95bb52b1a5cc752e35a7e08fc327f2a95ba05c474c4a5e625b5c0b780b3bed961e69bdfe073bc324a8dfeb3782413109fce1d795ef01a8eb0608ea42866ca997b8cd3c7b849190e42e84c3d60f935886df8d3dff5cca4157152e9ec9f954a7ea7b1ec4b0e1fbc14cef0f3ed16f1b013cef8753e1f5493ef7d0f753ed0a18ae5275459d15b86da95445dd65580a789354616e9a8a56720394a22ff30a01f38b173259a9829b8a4d14747326597ec332e1d402915c7f46a96c20bcd25a82ca3084660b4171cc31a3\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 930b4f613da112cd29f8fbb235ce0715eef85bd5a34fdf3a67b4af55015269ce99ac8112ee81b576b31f083160c5890dc2db204d581aba976974056a8bad367ff05984974c10f71f5b03482c7f7dd86aeabf5c9060b54b0487f40d30627e0a46fd7e801e5f1b2b813c4385f870258bc2cc186599e124b9ebca2a29a43dbc06bbd39faf7f305a902e7ffa403abc3bcedf29ee11361ba0a0b34f3bf9a9285660f66b4b75cf75e0eed8f463e204d93654a9c85b9788bf8e32890b658ea732efe3a56a4ddd2e7a426fec6486a0f591a8a1d4f089eb9c95a6332e7e0db103dc3daf8cebf35554d18cb6da33dfe6dfbe0c8cf04a4f6305693e94e87f68539f67892976\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 91d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc15\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 41c04aefc703aaa71f40ce9f4f56a7719126ca192d2e9c33dfc6a8c176e8c1c22d9d7a83f39955403a7798d161e4ad17b1575c35cd8f2abab639307222395348b67ae8b7edc41eb0b9a38ac508f1c08489ebc21e5db909d98d69a74b210de76a924787b2fe1913c96ea934ef88be13969cb26fbbf007fff7f639760ca7de9041ddfe79b3be7710cbbf559db44d2db8aa32f88be33463b366924b845d07e2c00bf07fb3625a600b4f84041c73d777c0822bd896aee8b08c4f6e30dd4569208fc8caec74580a43acaf7fcb2b6daad569f4a58e281298caf9b6f155cf30e94ff671de9bb0cbabd184b854ef1d2b7cae33e7dc6072230ebe4bcd4d49253aef563e92\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 32af08d0e192b87a392e69c0e4f1faf525f9705af04301bcf4773caada60baf8c9e3ef5b23f22e38f9966849f55e075aab69f1bb76d2c9e443f34dcc1a9ed8d32a7ed3f9ecfc05cb154235e2e532af1b6f1fcc392676a500b5539f6a86be792de013a4d614129852ab57e030521e1a776d17a9c54061b7457e0517f260826640d24e604a08849f9c14a8b9b6126a394d1451649326b15a440f52da5fa917b15189a73f0ca93c6f1ca65a8b00f96516b9f87519e6ac96af33df112eb8cc669117821d7f318eb7f09ae74fe283ff4ded8a2e6b363543833a311c2b7be7b6f07798ba355a716707b06c4d50792c888424a5a049b1b0a33c881059dc8178119676a2\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 602a88779ae26e4aea37700b4ed513abed889d15de24523aebf34c9027fbd62747fadbdf46449ab8cf1bf5f2c4c942423e0c22df00e2b513aaa7a9502ee330be441274a09ac0b872150d73e52f34763879c56d09c400521aff0c7a8ddbbae280289113bd4f5cb1780eb16040974f41b6ec4e0b060209e7743df321a597a8a0fe00df285780073a03600c16ef62496e7e06335b7311d16a8cd376784f27289d02aadd1be5390e6e618cf8271dbd9ca7f8338392076ca53fee750f30c95aebfb26c8cee568a2253f2075eff7941b455317728bb1ad0442d691167f6472883b6e8b07e7f6c5bf10e4def8f271e622dabe23d6d3e8c0a1e277781e5888237e83bffd\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 738a92656e1e759bbf4515a13598efa7c7c3b3759ca87ee1974e7ff8f379953b7cb107fd421225d4c92c59e459e33290e6b73f8896f5f064be8de43c67c68bf6da3c7e4639268e5f204a7a9832fc1b1b5c4756c2e5b49c0912bb0dbdc049949090344301c42619143eb8024cd633a5a8429c9c717431f9dae72ce8f848ced228b72562517006f5ca77ef356af98f1d2828a59dc75fffb52437ef822a151bc696917a4cd0e688beaa6ca9e7", + "ff15007c5ca12ff4da95e5780b8f7288fe9812df205a1a25baed9359ac87511bc8d4f0287de59940f0cd45e2f8ceb7ccb12b763b243adcec6da3d3def4e7856df4e4a4cd75fa03e14d5a63a5808bcad798ee2d2c8d\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 57c821093f340232c5df14fe7f6561c063d64e5660a353e6741774842e0fa0b4cd637ece4e935f7d948fa875b5978886b868195f5598a86e83f8d25bfaf445bf453c0a7ba4088e38eb6fb123788ad1dba2a3098e33cc7f354bd9622795720d3f3148db484fb982d5b0855e58ef8d74d12fe93e891f8987cf47d74024d1a2824b3d6a955670552d00055ec3bb0f6b4cfb87202cd66c36d831a62471c59c7d2ccd4302865496904bfce0a41ac3db7ac152fdfcec6bd984c9f63bda06d4b467ef1748f3a0c7f1e5a8ee5efd56aaae8981fb15329c44ba92d15edd20c982e555096b93921b081e68bd1e36b1dbe36fb3bdb69bddc8e9d9f6f1ca317ba16f664034a2\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 3d7787e441ea11708527a37464a529449650265f04b55294a71f3452586f55c1304fac48a46faa7082cf1b5d1d728fe337056551486d892eec1403550dd851ed6997e41f70acf7f401d1ac92c5e416e73f1f1a024e542ee279484db770c9a6c91c14d487bff37960db7a11064dcbbe07272cc036a1e0946d71f1fe97dcbdcab911b14d6e4dab44a07d8cd5bc3c0f008d9929f2d60b4c6ead2e84dcb86002adba056b3559fe40afd027cb05d41ea7f967e2cb4345c14ee37c25aef415ec932776de1ab992458203eb58a5eb1a21c3a619bf06aa0d6d74b5ea6decb25602139733c01e131c64b7de3465db2716940d00ecb5db6ba7c541543da53ba6119e7c117b\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 76a390230603a834305783f493b721b4f317f3d4b6e1bc26d1983ff1f49448babbeba061e94ef6b483579564496ea89f9e2e784e8e8db83cd0d2a6081048e4bece721197e66a54178acc6976089a4f6f268f8a54a2a9a3e90f583171401173f7f646d8cb422e4ee14fe057686b0072281e066a28cc0133c6b707781b718f535fa3a9c99a65360540d3182672acb1db4689c5d6d33159f37aa7e16d988d49f73b5e603f8116e1b5053ca45e6c04743cae29faa04ed939196b15faae2fe4303d7feab202d8809a7a2ad30deeec880990334f0da9c7faaebc1f7f64f0c8c20270c44b7046ee309d4bee151a504bdae896e856e202c8c5d8dc5d6f66c99961b6168b\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 60a639b945483083eb99c1c158f2cfd68ba8da37615b6f14f4a999b75da7fada3fb5b0716168f5342063306d8845ab565be176f457b6d26f2df5195356af72be2eab1185240d2b27d023141c060c37e46fc139d5df47667adb1e2acc5bf0b9d3adb7de087eafde53a157669b5e07507432fb366f4336f0231a04a3ff916ebc5f3a679239b39f952efe24aa5f053dcea10010986495bd2e1b6cad627f6c788b4adc6ebe482df63c13fca3b0371096ed74c079d8fa8fc3ab748b2e1935209a8934d4d4cd3baad94a6bf5be7c8517dfd55f76c25929cf3c14b64fed9c35101e3bbaa8c71ee816098741007496f20161aac16f1b4bc54b6a004d1e63beafc7bbd1f2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = aece8a87a0c25ac33fe3225e262e5d2676ca68fe153b84c26b65e86f4dce6585f801e0b1d748ae6f3bcfcba4c5b95ab78f614499b547118d1eed2f6ede6e4a5966ae86c697577ce3d4f02cafacb76e2d90dc18222eadea2668717600e5eee93f3a20d583955ebdf9a66d5f957e42222a90f9de7232ef1d8eedbf884efe5e4fc0cca53fe4d7f60275c816f4f725b2d7539ce38ad3e643b7e4b4432842288e03734ae9dcb3d26f5e76ae227e7050ea7e0e5e2a755fd481a57d65cbc036aa9cb4062b5cee0d07e9dbae45b9a113575be96e9add1570ddf6b4849917e04bd9636f173cd5f79d3d05b1a0344cc62dbb523dd29c8cb770839525b9e6f7bbaf17385e2a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = b05ad1bc0a5c6437aac33f123c62b94db24eb98d88808ebb1617b2866cc851c3818dd9c18e68c01416b1d593cabac1c364f89b1817bc58d021d9806f27d4ab4ec812d2a964dd70295ce9524cbc92b754e4057b2974b3648fec4a61c23548c7919ad4b97bc05639e6f727df472486c9f50265e227d648c56c13eb1ff4e5d743cd0a522f5b01f8efea61b934ed1f04fa0effc0b7a5a48b2662826ce72abaa3746e1718e73d06e3fa973f3117a45b578d759f89196b708e8685a314b8dc9387b4e82dbbad897708eaf10c285b9471468e2e464e57705e894018d2a02ea2059ccc7c7a921687ed9e358af5bc13c1d06d42afc5cec33e3497ad3c20b620f80eeee56e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 96a6cd6656b99ec45dae887958148f6748cf84dba950d7351033e98aae440c6f3603ed65bec311a55c6ec2bbc892442cb12730957b797ea8e3010efb8599891a3e8d209ea0eb6b32448e57f4003d2ac3dcf8c29a44454d0be799a5a772344282737e42f785ee3abd3ef80d5d4653931828d5f064354aee256b6271817e3807e15c805afae2877c8531cdccd2f8d66f3cd66d3866b5565d99154f1eb5a4f032596244dff79593980d07e6e06de0960c1df2c3f84de224c113494ade9d03f554871a0ef5c287fd0af2babd16fbf2983c758c792b489156e3a0db060a64d717e0d149c343c40015ccaff45bd4e3b155b9c4563d5b8c3d5caa97d7d46d4c5a2d2077\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 031efe798531e2ce640d492b623c630190a8da56e0fa3e2981680b20f14db024abb3bbfa08bdda51aa9d2fec81d23401a007326aa5849b24b099ce957c7e2b8352f97210a1e7ff68398aa3884a027f53f27e3c4ff65ee81af6afd4bc539e2f93282ed2a2274093305516b9800c547e4a8933db99b802b0ed67503fa58bd1ec8f086f1d646fb4fb3e468c75835efad1a17c5c1c7963cd74efc0c15d979a686ffc72f65b164dbfeb29930925ee5b2bd506378fefc797d96bcb1b55dbd4c58f0dd683c51c6d11c9427b4b452dcd7cc4344f21ba88dab082fa699acce7f0cb3e677d2d8ae803e0f1bafb0d2bc54d4ef88ddb91630fa6aa141b854b475ac190b696d7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = bc296554a73f000dc5b04a4dd96d91a82792cca120e52c7b9328a5b7518f4b8044e3bcebe8430badc933a8513641d68127d93a9137a96c81c67c4ad59048067990d14a208fd6b0d44d068c6bba72b28368c5781298d7be36cd3d462fdcf4f3c09fc0bedf8341b23f6722db3f0c96d7013603cbc35394ddb1f9edb8ac550c25d4ca6fe0062cb75ff3aced20040dbf752783a970783e78ac9f1c572c85973b254434cb7ceab15aeaa965878d1bc4be560838b821c35c218c06c5f6d690b86bd387e6511294cf9723d38226d95e3ad5d36ceae48889b7428d1f4188206cbe7673cfa2c28f51c4e451c5e2ad92c988038048c6c03b372f04eb2463512f5e85867504\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 6b36862a424ede6c744f0949dd9a3091d850ee1694deca2f844d864698eac29b2f1125ab310608067c37943bd386732b903e258865e0ae33eb38a8c35a84b3864b717ba29aecd5d5ef53f0def257b2951ee14bc95070356a9e9bf2f36232966c501710d08281c9b5944c5c923d65376f0cf592d3750603a758c16d30b9c307e32543a311bff7d47938f31f3547cc0ffc71441a1391f303970d975001d2df0033170cc00f26ae118bacb31707fde93c24abbbb8304b558c1bd52e9e6dabae23b789fb799f4f8667f6b7b724321d455ff4f391e8f1989f271204aa81ebb9491241871472ca1ebc38a05b93d557c4000e2cef7c5c9c0a85f8a63049170c90b2d901\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 8cd7fcfdeb18140c470d230b89444a63763c1025f69409757be574bf71fe7d899467cfe1a65d23d2401b7209e86be5a47753ad295c7203d2c935bd9de14556486908a7bf83dd9aee74b6e57204f9eb04cca15e2d50b22c5f45c7f362f23ed948195392a15b96a238b4e03daae8b7258ae607a9d5da0dba5629575edb56b444817824b8493b125d5da63dd81eba51dcc11f7979b16ca0314f02af4212a5ea840daf215e9fa082a7089550e5dd0c0d0f264d230a6249b45926fd360a4a56ac05910a15201292d5dc3d92308f98175c0fb4f9034ec8fc8d5b584e95ebb942fd16d04cd6867fbb2aa53377dca93e5ca2380de64e59ab41f71e449be3eafad63b4158\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = a83a07c4b0e408dd205adbed9d929d418e19e6cb0c2d486bf716ab66c21d1bdb341636ec9b5734ab9778ce1e28f882fa98582313d9840c05cb453973dc1384e73e2586b5e7539a3367f9ec788644f881be29c991b0e23de4e9e299dded39e349807318c5bed4d32b52d040ef5e99f06b1c14244347f50e57a8cb264638db98b3cfd467c2fb621366f83cbc68a27b0d3567e5741d1ccae568eaca51ac93f4c5febca4e23cc73fbf506ea337b0dfb47afdb351ac03e7bb81f1f6e867e4428d9b262d006976fb39901e84a2331b65b59fb96704f08bd77cbb7e0a39f357bc1100a70342e5f47c092a817374ac5ed1f66a4beb6f3a4820b6109b075cd80e0fbd840e\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 66e2bd9cb74a6abea34c2285165902c9a5aa5e11208f38a161ec72b0ba11e4006a9ff8b118de42bc45297a538e6aff1f4b56519e6d31d7ff9e5ff32e2ff05db68d023efb5fc10f5b57d4a3b216b63048c4aebd88ba409ec87e95bc239317c2320a06bad2da6cf7dc8867", + "1c76859e4750eb39d09fbc2e27fef6e6247b23981a506e8ba9e8ee29709e0a846a617649083ef5ee383209036ba666f1240389328aabf61996563f65fceda07a24052e68896c65aceaa8d4e543ad4a2858a37369ae622924af975bc6924fd5eef327a01baf0b864c557ce86bfc2e84c1900d201e5f66786b499741e0f3504286ca6adad82d379394d4b8ab6f3a4ec3b16eee5506d98e\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 2d18a31f2e8762317ad943db09655b96ae7dd2b7c4754af2e852bd0fa877c58b160d62ab9378c06c0956d56b96d63d5693ed28b5d57a635432fbcdc2911c9843c68094301c6eb1ec02ff41400b9d9806673a0c07310a0a0e91973761a2cba91e38140217590cc2634c85247886f6364d5e5499c6e99f43822241d4e8ce6906b4d9b66ce4407c6e8fcda8f18aae2831c382afc9a8d273f17e2d44cfde2f463ea47a3292a74f743b1a99bb9adda4b65c8415040834f31e0f4392572d3a1237d8227adc380f794919e16144590fde3ffb92fae4353fab405fc09b25282450f66433d25a3178655545dda9da0a4759c8510e6e8f3f85799226715e7b2be7867d1fa3\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba748\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 000091d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc15\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 91d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc150000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc15\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen128 = 22691; + +static const char *kData128[] = { + "# Imported from Wycheproof's rsa_oaep_2048_sha512_mgf1sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 1\nct = 101f82bcb8157966c8f50531f294510416393943fa9dd5dc05f85bb82f0492502274e07ca7dbda2a7e16187981c923d60cb6b427693c6d7b107ebadbb6fc400492fb795cebcc804d498a7d3a077cf39cd030e941308dc87000af5380b3ca5e8728313e35e31b78ede9e5f07cdec8e3569afe3d13466d06d4b77030d146b32cdd7da566d96753fa44d64791e687dcb324f52371c0191bc9f1a5bc7b7736a5bf00d3fd518b70ed6f4ae0fcb20bc92ff3eb048a6f767596263127ccd66e474e8c27521fe2eb21b8abb2c23b91bb16264e058265a567492bc51c4cd033b1d8a5d7b5798360f4c3716ddb43622ea5dc9fcd36819e05a989252dcce826506711a20fdb\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 35aee1c56044da3b866bfed989690dbaf57ac10211ca4c364c4f4127fed0a55b581217c7e854d11fd1a1f9d5431c2c309e62a6f7c3c59676182b288edccfa961c78c1baa53f2db1b1b9a4dd05015f41872cf22acfe3a071d6ac1e82ba6c31f5c2d9325247d6f2c9b03ce00c94f02fe33c5678a4149cf2fb70bbbd995af1465e3819c83c9ab8b55088fd5d75036613b04df302113948700d7876b7cec9d7337bf5773343d51a4298e717a4fae09e573fea412d88b836ecd4f74c7cc7500609723b3f3a2a00d85ee7ccbd92bf6c065833027c5e50310c6cf8fe8d13e2d8218e785333a2e65b547e5eda2f8f2f9608f366d7e43636fca4f46450c76f06dd08b00db\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 58878dc8b9527a416ec9bfbe0f07fdee8dc5bac8e31ca545ae7c6ef4a68f2c6b2b73366518edf85f1143c27fba00a5d9a9b02843ad8951631ddf01ef1238853b4593abf9701c621941b4f05931eaf307c06faa7fb818db8f859c96dbfc43268965303b44fcc69a0e3ce619624907bce074205f113715e5e820bc8c6dda65066453215702416db9320f54e67fc91e9d37a8522d701aa22976966a99cbc8fec0e12f2eb9b5705b4dc77caff82a36485550752a3a5ebd47fc67d66b68024a2c5db809d08be9090bb96e18807925b18a753ece05f1624fb19537abe7fd662830d56647a416df7ddb3e6a073150d5112f60538b685243f1e4fde2a5951c9e9499ecc4\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 2800f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 65a7286d77963a2d168ddb4c0e854baf8898d1d22c9de5d4968e8b326f92ede2f18fd29964708211ef6328e4ef16ec36a775b36b4531c52e01c7cc0058064af954790160012517134f17d92a05000ebba84f515f90258278208cb0a5db11d4b1dc26d2042218d2fd62aaaf53633ff0f632431a010b7e14971a41791644ebc170792a61b5548569f1b0268c890074a4b07d8e62d4857f9e720cb7307713424c701f6f666981ac8e96ab066f303fe89a138abd57b24f03d9136ef468cd8519235cef7bab01717898357c0e4ff4d3685706beb5d680da2885556e84663772d6c299fbda67df2cd325cbfd62932836920e0751b0d8095b914c18fbe5e348bcf4d85c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 7fcda819b841cf7c668f9ec9e7e115146f990cc420efefafe239637076bf9ef1c49ea69474f63495d90cd3859e335d323ab9a967c65fceb0b33a760142b00894d1ac25ee7c2833bf2dcd086a0cad64433aa606f4747f14500ed2779470b4339f580e2fa0a14d870d6738e726a34dda3fb7b82509edb6d6b9bcaefeca077b2dc582982ee6e28fbf167a92b0ff1141d10fc3dfc49adcfaf32115f900b20c812094bca91bb10301616af5030e0a600c993a24d96764986782da083e327569103f7b358a6a91d05fcf89a9290ff989ac8c0acdae03438a44b16c7a3e06a1591869874f29460b0ce09bd022fc3c606d785ecfe4f4a120298408cb425e9abc7171e4d3\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = a5053d46939bd6c90f2a67f6613070ba40a831428884fbbb09d4923b978f17bf538a5963a0416875300f1b51d56880ecefbe58ff6ec7b3740a649f36db16ba6cab9b0e4e7a1ec658fa0fec781361a547a718ef5d9f7d03892bc1b18602436fbe5ff5cc6c3cfe8f2e9df960ed89800da546630251d292b00a60d102211db28ad184919709d8d4a1ab89d65ab2fdbcb66e1492c4525417eed89a0be2c67a79c5f89494ee7ef9d3d0d7db2de34ec6be5863993e8f64e4601b7945b2ea271efc941c4253b09dd3a3fdec6b45038887018a5018771fe60eb67a68bf977e9d3c6b032fa28868df58386902065ba3ac7f028600c5dd5c180552a25d741db12763dc3b89\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 38ead5cec1622d62e9f27eb7bb9d369fc13cf7d21256c5df8958dffa1df2dfbae006c80ac45ebc3044a20f8ba024b73c2e03185a9e4d975fe3075e6e11787116d1ddabf2af65904ec9a5b145dbf167872d066ef490c4b9a724000c44425cd33448288e883fd01ad915b8a4d9d3c65fc0c12d5c5bcb78b323db20ba07e57a18820e1154e9460d71b92f85aed92c2128c83e598564138a97e0379966459364be6aa166a8b62cf7c5b806", + "2d99e98fad155c9f0f1c8629e43a45674563f0d142c309605ba2dcb048a9d5c58feba16b5b2c988d93741e84ec47f1cbfeee540f10dac120734143c80e98725c609ac249558f8ac58cb21769941102af34aaf02d538c55\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = a4582c4dbd1e60062e517331f4d49a67491c975bbeeb58c53c21c1aa350c63d74940ebb3e6d8062cefb2f0cc645b07e77e6bd350baab08862665b80fcbb5c386bfe330eae7c43a451d68e75da6a0230a5ffc45c9706cb5bff4952aba08230a626929726ceea068d52c18c525dec9d94884cd93a5b39acbcf31a0a3c1d28bc2ff352ff4097224664102015a14d6d9663d91489f9ca4e5e240a4d9c93707e015f07dd6398b306959d6a545616a3124b3a87c8a17293ba36f3c8af4be8bfccbcc0fda06881e05046b8088fa09c542f6bc7a397ab82f47e05d517e79b462fa77be7fa1af05a09baa17ebffe73e38c3107f4600d75f9becaa8af68e37a4deedfd9f10\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 1bb7a6d1dbab994619f25bd1659c215dfc12ccde9f91ecdbcebebd9c9d1399ab8296035f43f0ac65c56f56707aa4a301939b745a0d0000652072aba5c514ca331c9dd06a2f1c0122b1ba6f9389c6ea6904f36cac5788d339691feabd34b65bfa4505c60e439713591a8ddc6ebe85131bcfb37f7476120d587f127cc52f8914f0c78a2edddd1c6c5280b745de595bc6be424d01d99e58a8834742cd2f085b334966b692c3bd372b94c846581548ed2280c64b320ec1341ab54a702ef7040ff67094d540dcb080fdeeb2050fff66eaabfd5b66c99ab49db5e6c72cb2d530d503a87d691dcdbff85c5e8c9fe28a1f32fc4a22a2a67ae9584a4411f8dc03d3e76b55\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 89bc06f1f12c0b688352d31ddbe22de92b3e8ce8e0f7d34e5663cef1b473408c932aade4f06b056a52a48a0b7c80c763ccd3155f9f4282aa350e9c494dcd99dc2f4c17d53abbf24a37194db5f987aaa176028b2570c8e74aab356e233e406812a17fac0b92d27f503e6dcba5578755ad33a105ccd91204c8ed22e923492ff07d5aa702394b5b8cc417e8e390fc8268cab2468a4285a4fc327a83038e59114654df7d4dd32910f0fc2e900177d46aea50a61fb0e2066947fc648ef40e22c2156464fad8bfab19d8dd9a4aaa8804024693fd2cd45c233c59ec67be03a8b23fd859003b2d01540214b3c06633ce273a9a992d11befc23ef6be34798522c074f4ffd\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = ae26c94476747f8a7454a80c05405bf35799ca1070341b73208de24e7787af7846de55ab36c2d0feacc1653197d42cfd02aabdd57633a69f7fe09bdc72c8ed28c4b1736ca7b285cc685886a5ec535da9db91965b291c53bf92b1ae159974ee795ad0fdb8b422c06aeb78923b27ce67a766f142d10f960448679e5fd1176124593d32b9b7653862147637a76a87332acc5be2a955e4bd2de8b63d873ff449715f6f1f7c76e4083151dc6d58a3e3144c694a4ec85523fe71b298dca5f0716619ea3e1182a94c5a9f6e602844df92d1d2850fb64bd1f28da347b44e0af2017bad6b61a7190dcfded0df48840d3a7bcad796744c7ba5b214002f930b28f958cc5f0e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 1773e5b493ec17b56e250885eb5fbc3db160e2f6ae55bcd6a43abf01aa61a4b0b7b2dd0d522428af6730ff374c40779ca0c2bd8008e266ed234c6133ad4ce13f78468a0f828ad86a8dd7866fbfac741f66d909ea1f415a7337fd449f5b2ec62c5bec328d18f9dae193eb1645e1fb26be42bc6eb980ce5679a88144a2dd1df32d8fc48fd9b3c70e95561f50da328161d2ff658196f7f98da563af6e4c1ed2dbe992ef0df66932a45812234211131b43f618b277c553fbc408ca2369f33e080d9b1188210434c2d90c3f8d03d892eadd70af1c43a8586a4f523c60fbba5cb98e2b0855db413c2e99ea4863a1c2db014b6a31aee56448bc00a58717f03859dd6552\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 6cffa2bacf010449460c15f4e4d5bafd23be3d7ba4ac69368ac0dbba1268df39b96a863e759eb31a3f9eac5494e29f710afeec490ec82d582654e782c06cb0613d9b15d8c06417e36f686b71540494f51e993bc2eb44629fd3299429068ea84309504899c5b1bcd7a49599938f5bea8d308113d84c38acf7eb901cf3274dbfd71b98f420a83372613b4f43189308aa76c9ba15f9769cf4bc5def8ae02449c3b1ee74f0032bf1a8356797aae23f5a598c3f336df8d195cf31f9dbb60ff4a9e5c1398ba07662f31246170ffa3bd38ab0b42dbbb555affdd4928a4b478f9d5ca9a8f9719b0b2a0d3ddfbf708368970bcf027e48ea2d0ad10949a238c218ac7101e7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 9256e2341234a867ea476be7848b35aad5e2d2cd9170768af4f14fc1b30be151ceeb2768767e090913e0e05844088fa15b7a1a99777b614a89e99de472047decd6e9214e6c025385fbc467c5331febae8e2307bbb0f015228024445e142e79d91cb7a00cce07ebd36474d6bb2194a39cad1c110492ac0e0637fdfcc5453b0313065475a563a8257aa1ea467c58cdeea0e139132a97af3fc90b3bd70f03c337dbe73ee8c992a71d847bf9f559e666592a7f1d3876cd1625ebd4056c6de6077229cc2dd230cbc51ae7a28105be3dc32f795ecc11b45ed1074154f1d24b11ab5596d3f8829a5be976b2db2dda1e2fc2174384e6332a63a19a734c50b1a34e201ca0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 6808813038a51bbaa5f4054f9fb7906c30736fcd150a1c70b3541d3707263057142503bf285bda1debd1d6c5491269627245cd649a027d0edcb4358ff9fad83c0644ebd8c3dee5be6fdfc1eef443bcd9cd5530b088f9f970623b380bbeb0b945c74737177c6b1485c5de2a0aad576ca79d05b41ec7c52975503f3af2cbc772116a27731687aadf16fa4704cfe56223336c64e2d8daa6a5fb75e47c0fde2bef7c48beb46317b3e637c5bfce3ff4fd5654b24ac6401ab346fcf7e214c674e099eb9d933cd1484e70fcefaff0498c8fd8672e35312d0bff87e244df3bb4a3c3f64d73fb0606ab46b8848e140a91fa3da08ec104bcee483360048cb1596a25b56106\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 7696edf1c06a6b772a95964665cbeb28f92fdde12ab092d7cf18816ef5209503d6416c9f4b24a5e4e1f828bd93634594b6a597a86005900d47e6b467337ce96023392958e30e4af43e7adf2a61b523517e299dd10092398d1b13c227b846a9ff8c792b0b1dc413459d9ba4543c81db4609dc6e17e5b99f04154444ef3b235e517e2b493f7fa1cf6e7271aa16961077f6843a3170aa61a0c4d57c0411a518cd35c0eb63e50b9479e7b6d41ea793a6aceee1cd892004dd35934ea383799eaf12347aa184c9be87ef1c244407acfef24f973a7127e614c57cc11a8161b92d57ecb67740fc29164c53413a9a9e216a5b3a290d585a5c0d9a26bfeb6b045b6bcf5c4f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = a7b27e1bb007bef734447c7e9a2b37e06a1721aecf7452f73da74ff381762b1489c6eba62e348ef4c4c6227a910025e8970729023cdc628d97f9d67e81a36e05d83ff625daaee05183042d5f1490c6d5ab6347e94f33a88ff692cc1388ac01fd1d7fd5ca5a026af5fe75551a76a8bf51b5a88e6d7f9e9977a91c535450f27914556a9bda1497dc58dd74b6f27b8a33d8eb157e03c3c5d874232f1b2e7c13138756c81e4de00d53629d6cbe7c7ee9b30ff55b5f31475e2ef3e96aa01f604bb382f5ecb0615d195c011d405e72fd5510adad469e88e42a5c61415c6147e2e471f28ac71c97044fb5df892cdc482caac4c2350033e00b43a1221d0008c63fb8f0b7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = a0c8b1ed6dfbaa3e738a3f6382a9d010f7281d9f0ee9de03436db92cb51738aa315bca194a9bd908340b0c3e1fc8523ce5711ab0f9b3f9e009ec09e1252805809eacfc2059579d45be3d4e26ba9c6be2f35c2ca3f00876a097d0ba9719ac9798c205fd8b44fd239f5bd21f7b264d883a1aa760c60a226c9b9c43090e6d91335a1f0ea04e5151631807a2f1e13fcbb5da9d98867ce9fd448ef1a116f779933dae65e5284053dbd2d004cdabf7c3bf5eb2cab25b0e646b25d34d277a4b20696f2e6cf735ad8acf6a999858d808627a049fc4acf5a507477620468ddfa11b56d28b63e46ba88ee90133990e0f4bcc2ee53acc150ab3f0c6ffa1015bcbd29f9d2d69\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = acaf316a29cbd805132b0c43a4589761a54aef928e4036b15b389a9c17a04c86ee6d595c064cdabe383414e41420be7e70163d89822774374ea85befbd3f3fc7dddc3de1f1ffa2bd595dbc678a03c0ed643ab4ee540c8e3ffaf86fca0f39eb4f795e9c387045ab2f378f246a2ff746dc3cc1df8f6158f16581231514fb22f6e169b13199c4239c1827767aec256d84f729739916f7d43a015a331c56099e8d33d66df6352a459356d9d981bf467dd88fc115eb88b4b22bfcb333facc97d295d72cb06984cd12b670a539400a719d11809a73f8c4406a677eb6285da557f8f69bd006da2c286a64cbbcaf2f2a083a8e5baf560c9d6fd703ad1544413eb0c3fce7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 0e5569756d22d82b912ac15e90209006c52f6a48a499e242c6603eecfc2087c3175c4d18f42bf6bb6b201b9cebdd8a97a7b32e4e7e75e034ecb96bf0013b2f52ba036ab2929c163962f08cfd96ce780912bbebcab7798b5cb3eab91b82b01dd1983c1bee76334a71", + "fa93ad2468a799afed4caa1284fc01225cf225bc0ceff35a6569b76b5cb57be214da94872eba8a73cd51acf917a627ef17547af38bcb805485262063f80c0daab609a40467f73fdede744db116842cfcbe4b1ea7468fcfc258e2069afaf2c552b3be864517a7b0c71d46765e9573f0643cc762ad21826920de1ab3d116496b71366b2f6eb487d8b4cf8b1d6d673da1b38fbbf1e11615b108\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 27f08c9efb8bae2841e67397d0bbb2e852c6d844b0b83eb0d3124ce3159020ac4bc750377f11630cda6956954cc9dd8ac5fe586e73c045ec8af96ebbc2bb6c0a3bb70c8d67cac5e972b38b20901339ce118e268a8a59675a6dd3db05f0f9c4890061d040a8734fd456176d1f4ef81129c7b3daf2eddb2f4c72251fa52550118496230461b583122df9f112599cee7372629b1704030385c988c372e4892007777098d3bb278578e306e5a37b89b7665321635b24564055f9f4ade4e2c7007014db3add8093659c285338ff370ff7e644ced701a7f8c131073f8651994758d0394224cd2271275443c079a3121df825024afec839406cd410f20fc829aa542702\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba748\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = eac59c81e52db549558a3b7bada6e9cb7b09ddabfec008f9ee9c9cb91f1976f168adef3158e37b210f8fbe1790bd6ab892cb556d5d1e204d02c2259f6f581f00371b1fe122cb7045d8fade589248475b30c37e5fd93b053411ca329e568a58bb503b0f25ce9ef9663a32b75165804d0f99941475bb4ee8aef1283b9c7a9a9b8fa337d9b6e35ca1be25db180d80804c241b6733e62832fcb8c660f2197dd4f4fd87078e46f85143b43682e33f58ee33b74a357d0588dff43dd06c6be4ab49e81f4f905a22b563c2704401c64dc3e4ff066c3adc541d5715fd7674031e62d5a7b2398de09eb8da0a954b3c185db29b3fe26e00a61067413fb640103bd0f503d104\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00002800f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 2800f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 00f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em has a large hamming weight\nct = bbd79dc8eaa9101aa641ce152235ba3d804b48ec5e3dfe69842f125d815d6a56bdb774857c0bc0966aeab1d9c774e921852ff2b84d0a44016382d0e091c3534f0d38f4d5c0ea27744fe320bb0847521ab5474f22d4538562730909fa4496a0c262fdd9b62b422ed4ca9aa30f9cd7cbffe22b3747b0f2eafe1aecbf0f7506016afc9cb3414710fa3f46dd779b21622579b78aa7b580e5960d6c21da81b21b112ee7e2d33f3d67dceee1f07cb3bce8d7bcf8678a07e55498018470a714e00ce9ab796ebcd335240c202c82ac18c4c8c47b2fffba6974322e0e55624a2f0b7e8f3dff1ab4e73bcc65158f6e3d06f7e37535b413a7467979cb5a748b91313e3b7bf7\nlabel = 83f0db4e0dae6949337373a0d78c4b20c15a13cbd4e2adb885c33e0ef4c9764667a8706d059d1d891523d052e0edc1d8b5c959eebc340ce5d41559a89a1aeb5600000000\nmsg = 6b2e7b3152a8eb663899ce78d5c196462d5399720e85cb69fd2714b09842db9dad683ecb27f77938182f14168e76ab7dc039c224ff26c4631344442d81afef7a776101af2d19c45bc7609582eedaa9c1c1a1d364194186b767e6329f7c3daf2ca26348d9f6d2a80b0d018417606cf2256d28b782ace17b8463eb773cfac1\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen129 = 31155; + +static const char *kData129[] = { + "# Imported from Wycheproof's rsa_oaep_3072_sha256_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 1\nct = 5817f7d276493c294359e776931f0c4922207b6a06b43b5b03e3ec6cea095fa6acb8313b61d4a60e293eb8f99372b9cd210818a54e796bf09c70e21eec280fddd784c56d63091bfca32ea28846219f1e39d262ea475e5ef0e0802e80d36479ab81f6250d3b590de65e870bc9a1e71da1bb32154c9af2d049b539c183c0b5d6225c7ebc81b29cd0ad8caee728c57b8a9aa81e02e0e4e2ae2653d8e9045a2f267b844244eb84f93fc5dd37fd956ac933ae1a65643bd910bfed21dea885581b6717cf9cfff50fac0cd7ab5d13884401f3fb65a280a209e6ead340dab05177724f6ce72109a78c433c936e88d746c244d6ffc9ae76d16cc5a2d55fe1ecece194bc1c1a7d589376b16efe8ab4198997476c3c47ee232107af8fd1285f27bb3b455990649c14ef7ae1e81775042d6905c37a0afdcaeb6ce8c303d8fac88d9515ce50e6df603129aeb112fb3742ed607a6f095b1de291fc9f1d808a9c17c78a314bf0d1317cb4d2498b1ceadf919b4aa0978b929fb1b25e2f310daa3e707a7e3816e2a1\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 9c3c92244619c8e02a3a5c444ed621ca2dff15ca12def6a375b96548ae86a1c27056903fe1ba70d376f8f7949adff43d946430cc6692b03151f4baed3f395c496ce2416d8fd91578c607832c3d02005a88631b741414fcbd517f7d4774a818566e2a8eb15e5737110a3515cd43140083d6c8f8e059a1ee0e30145bb10ae2170c0fb782296d646e50066bc92825f1f3ded41d694c6f0c5dc5b17b1dfc84d6be72ac705b41f82157593996f7b95b6362e7227f1a4b1213e473c1f6eb3014f2c79f255a00b3ff7d9aad362a88eb5aaed14b9a620ffd3abb2301feac7cbeb7728b261ee6e877da45d28e6554f736273879833b0d8f11ff04b44753130bf7e5e340303a20d5c21c5659f48e3c3d1c566eccc2b5c57cc7d215ecb8adc6cbaad1eb2dedce4dfa5cf2888cd307718b9980ea17b6b3c559b955b19534207a2ef5ec1ee270a69e417e5d6bece4a62f594e94ceae0ed182833cb7d58633d24d676d1c009be9f52d655c656ea5bd938f1459d9b8405aeb0317d6d4d14cf2c7de2146696a64bf\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 606657c39ae419347af5117fee8d9b8f28866aa59e0dd7d6c2c07a24db6f500272a7766cd45e809055b4ad8a650647076034035a055e0b492a2ffeac0395ccf0a1f79b8344f6e5fb30ede7a0c75ca443b9e999aab43f902c8f85b1c3295296a599b16d5dbdb8f0b65a541d40c4fdb7a800406b56d3b01466b7097a5ef5140e283bfcd16ab7a9101a71700b490eca0a5f12b465be16e46997d03f119b25c98a3898417a433139043d11149f07e829fb7a274f8b6ad7191060dbf740806326fc62921dce846871c2800f4b3ed6936b63ef829a6509d17dd5ab71093f75afca0b32f2b81b697213a1076757fc7e2d264597bf2670b61c2fa2376f21a32aaac2dfd0ed728bfdf865762e07303c860cef78fbb4a32bbac94320bf3246eb7a9e19db4a219b88c41e86aaac68ee52a9700e734887ca4547cc5b6b2725bcd47cfce7d74eb37e7a67ef1cc2adcdd5137201a43af8c5da372c80946d8aac2bd920283bbc0cf4afe2e20572e8100134a0ce1db5422e8a2f52e0f46be3de9dc134e2a0fae6a8\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 3302b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c", + "7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 22609a0bccdaf1e08cef04569a12655f58a9d5a43f83cf9f979e3a358c67a1e444d104a656aaebf8f7627870799435c292ac4655edcdc427a0b618781268a9664fac3a2ea481d3b62b3fcc37f0a473ce47090bc6f3fb2a3d80db8883b99f26c3da4a9e9b1902b2d0dc4643c8d9f47c105f8efa57bf8aaafbc96ab3094d49792d0edd751bf028611c1a5fa38319514bd34fbd19a837cd328f0a77b39e7f56f1c76d1e2ad9594251ad8c7741e958371a5737aa272d0dcb6674ea36440c807e57f95edbb182236bb5af45cf17d8649e33cec6e594b5d0e609fd7fd74c53358f9aa320df99c2fa38f69caa1fc333e4cc5d0bcf8a4c4b6d2ed237748eb1886e5a9f155aac9e86dcf798caecaf3d8e83fcdcf1dad4c2e304e288aa925ed68a3ed672c78fe3477f2f59510ced468965d90c88b1d7eeda4d7a6c5f6cfb418231343d2838d96f6152f9963ecc68684d5e5572cdc3b7cd237c3307b7ab72c810a5832ed907e275fe67b267d022c4dde029aa840bea6870f3ad29524a097f9060cfea3a73fc\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = a79686ec88818d6266f1fb06991ade5719ac10a7b0ecce5694dd76aea13fdcf32d620c290350839782f8083af7e73eb65a41d7a908644c6a28d6b9ffadc9545127eb1827468aa6f39a2f04308099480f79c37282e9d7f0545f6214bce22534cdf131c5bfc148562e45545beacab5568d3ce1615ad3ba0c48a93a3ccc72ec11ed32b770a3d435e5ecaa6f013cace1e04b8167dde67b97dfcf4c6434fc50bc53494d6252b70de6d48370aa80b8efd667993cc559791c0f60dd8e324a578a50507a2b36255c47871659e1c96148b17d9d2dfc453db34277a9ff395b828d627bd80083d44b594257a1b7741bd0b0865cbb0b6073d2b7e2a1158db00a20d652786937ed861e6775b551ff3ea78419ff4287a1d680981962f34d2c57a7ff0b8bfcbfe10e5c1a42e58e624971a53d59e1985b215a48a36ca8b4f2977b713baf9066ac3a98fef9775c97e248c53c3f425552050c29fe1eb05e31132806b7b7660da08ed9833ee43e7fe8f8d50325cfc1f6e54bc34b9b5994548516a980df38b9f61747fb\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 5a4eaf5cc897db7ed7dbd6a57519a06247b0c9c229f7bb1c6c6561858bca7552d56590821e22591218ca5edce82972f58cecd65804e048bbfe48df1934501d4ae5bcb8d50a0a12778540cd5354cbba91875ea70dd0f5057d808528f8c5600ee33c38ea7910f881e45ddd4db2ea933547db764769ca54bab59f3f9559b4d4e2d439462762fad169bf0e04cfc377b3f144924514c32d82e0a53e870ee0855d4ec96393c0eba5fa5fc5debe3d384debd1b61b33509f17da3bd95baeb0c43940924a11124d95d274e67df9e697c2b8133231f2f33aa5d6cc6f41b2962292c97465926bc8569a907c28b54fa6b6d2fd89c409da1b11d23a5f6c53ed82043fdaac6c0e4098daf8a27569d58b87b4597a25134ae45a8e1e6f1871d3310e56eca5894fcaa946e9a5844813e2ef31931dd105a3696bf04e4defef88c5c5a1cbe6bda766804a8e99c82474bdbc2ec344bc2de0575ff90a50d39f6446b99092cde226a81ac82f3688ecdbd527f37cb48490614022e2e961dc1ecbbac819cdcd1ed836a3a344\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 4b5ee510deba57cbbf954949f999d27fc760ad542eb46689672abbc8a9f56b3d2ed8d175a341686671ab4946655b7231fd2ecc8166781329f1f427dd2f937cadcb752bcc459fd51cf6d50721736a18d19387f0beb3b1c07f24bcc162b89803f58ebbebc35485505e834d9f5b69ebdc3428fd64aa70ac45d13765a89594f36498b5092fa8b8f5f0c359c2128af55530746375745966081040842f51894aec7f54a500b4e16525c264f587a3db0c2567fb431cc6d4efeeaf64df4328055c7b5d689f656bbbc221ee003a47ad35dc16655763c90633394ab8b584cfac31f81c90ac72e19dc800f2a5ae2fdbc2f839e56aa60558aba3868f835967d2610ba6214acc3f9d256bea014cbdc8c45a83d37fff6fcd59a7b561782123bcf2d41e15b7e08e7c247053d6114e951b5a50fc6e0b6281aa366f919cc36068fda6f9b228ae866cdd62a108ed151c42fd209bc4088cb6c03767bae21f310c37065fa66f0dffe8f4a8ca90b0d936888fc5e0401072780f54505f20e927be377a709ad13ed6d3fcc0\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 991e95287bb7b68da9337b8d5d615a7d18315a8b2a1023deeffa4f54728a1a0e86f4f70ffc2ec884eea8a7e6438656b96b6f60b5cbe724ccd58c7f94037bd458a24ced5ee99b57fa1df9fe91082dba94121e6bf34c5440e5b286af25ea23aa5295da4a4edd441d8898eea42606aee4f646980c3fa4b99da3cfd1383188fa3e5db7e464360d57ba32f94583f317bdc7c8679b793009f25063a948366be29e04e2a5e4e18384bab0c3c5dd25a9c015c5946b606b8e8934a831c674cc228b9cde32d090bd575ab306c7f88ac0ab610a4e4b81db9b54e9000bae8b8cc411297d7902bf219d3c5137a6c402a7723863bd3347293369db5916ee72250e8f699e0bf2717fc07c9550e875fa125ab902fc8d8df07df501a35e7146676480677587049090739721b9a655bed7737ff664def6cb4eed10466a264a83f3504e8ca057e98e9013837b221970549f40e48fe5c2637c4c5463d7a29371c5283111f1583c3639eaeac24b66aedddfca15404f71309f441196373dc4ab6419b9858131842950ad08\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 9a8b5757e7be4efb98d03e5a6d7e8cae4a3764168bb2e0854b1c95b4c0946318ab46fcafaef9f1859efe369c7bd3ea1bdb7bd3e119425ce9de08f5c2c2c2c036b1e01632d6582f86bba5b0aacb210c99aba26c96f1f3d5897617b5a5865e9999f6375bc8436073d631801a76881a6af0348759be5bbe2efcfc31416cc51ffdcecd0dc40f41247911f0b6b98a580792c68120bc3a662f0268dd84e8e7feee9634b590257020b8d1698510cac27c586a2ec72ea743fb2951ed79ae3e0a801a4a35361a37fcd1f8c4be9e06ee6e70481adad57d9fcf2baeb8820acba99b09549a3c44d78e17849a57c8ce356c823deff5597c8b6098b610f7c323693920fa088ca307ef3fb23b4730508bed46f575c83b2e7ed70ee9bf29c90ab7dd123a359280245dd7930363a0c2ea0ac1eab83225ba1cabaf5f57ba9c0a26a86242b3c09cc71533317dc5f1b4a410a9af00c14af4103ec6eb61ced21f3b115eb40c0b7a4a2d4667451cbd76074671e1c8ac3797ecddb82c55ea1c2309db5c4c9cc6ce6aa59fe3\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 0392ad8b60f892220f5ebd2ac686ba3bc49840dc8e54fcf21f8e8a656ca0c53ed0020c9d512d5aba3f3b8df0ea3c65ac066deeac64111af27d7f7759900280f3cd554ac91016f341bc089ca022bd1d772a1dc99ef9130cdd0bdead74f65d08cb1097c9b5745bf28141cfb6dd17c3587c549e06fe37325a51df08a15c1bf817760f6b4d6c3bf6d49b949e97272de6700e3a82a856ed06cdb3d0eaf6e74d6c9a5e6b2da5bb6b3b162baf291a78e0ce082b58057fe92de538672ae21c19e215e337d4ba7e6b878f269be166e6834d8670fcdbffe7676bca15ea3bdea2ce9286d87ec21d3c538f17c17e41f653257e967c8859bf9cca349d5450af6b48355b49dd58c189816bc4da34f907df6a178768c511e645b8a6069dee23854144693045814471cbcb45e607dbc82a501d97ca7e0c0f641da3f83d69f9561731ce59cf2020002e3ceffe8371422f1318194b862617d78c79f89215733c2aab34c3dd4f1eac7815d88cf18ac9424dfaeeaa3d4262a2e1f4871704e4453d65fb9cdb82700295a7\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = b6633093d61ed6dca2c22a5d7b8e94b34249d45c6b52b8b01473b8e2b7642ef1ea0b468a6ff1299b8b09c52bd3cbc63a157af1f85b78ee2f9ec7ca2ffdb19810dc6af4c5aa062f5ca321ec5ab600eaeab6bb087307ab0f8f0da27b8e0056d5db61852634033671983ae8d3455a468100cb1e5383ff42dca3a40a9cab167c33d118f67a3ffb4fa9eba472d0b0479eee9931383b3e93ebf3cb3500ad790bc9339b1c0bf4fdc1caa43f988e31587031fde728abae75749c2341e1df58bea94a8283537e3c77192f4b280a0021fae6fbdf9c456c9b34a5103e34829a8ad337d8020c77f244db22d05814877a3009e9a1e6f8be764b9d85cdcf129611c636eec65e6a968ca1f1335d320297d9f3c948846a8ef6545abd5badfd309acb083d7c163d712ac922de783b48812669e0d062d56e9e39c411b16fff13d48e0635ffb1ed8b7a43b2431e2d059a6c3b4a73dabb1bc0d09c3937dcc0fdc32b524d6ebc5d23db7d53a33943d8b0c034ac1c5cba115dc4e27eb04a26877806a61886f33ad3032f9e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 3f25923327bf6f3a1302697fda7f9024a1a4f649675fe8d5d09d889649499baebd", + "6ba47b49782b04284d7cd00a863e6c10cee1268854bc884bc1061a8d8214f1326f95019026a6dcb6592b9bca412ef144252a66665f137bdb5fa5a39d13de8808afc9dfd8fd7591d180d436bf8d5f0642715b78e39eeb022cbd0d74669a755119984e255b8ea3223bfda0bb53c74c3e074f373a7c819cb0dc1b7835d27b94b240407dd5420e53fa72a4987a565880a83d242b8aa72cc902e89d7a47d9d2d74d3d3e0c4c5e1c798217fd1cb56999034773424f7a1e04547f463eb522d546a71bddf0c27229f82036391edcfaa85b32ebea83b0bc99b63eb5eea1dc614b6aec31ebc824ac6d59ab00538b919e9855e51378a82333817d20afb8128855ddee447c4653efb484524e2ef813c8ba23e3bda9824731553faa3289cbade67528884650f0c9c604129ecdd19668dacb79fcfbc4341f871845317194b0a147c86ec1225d0053209b5d4d2ee2607665c7ab28bbb156908f2f8c1f883264da65bc678669b0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 1ca152106ad2592fa9a59024cfa7b33ef0fc9b52f1bf824f783c63ac1ef2e7accab17e5097103c4998589449398ae84a2e3368832cf7ed0647ba3d0f6ee5b8d947dad4a160e36fdab3f050371c4b332f0b4e4bc9cd7367ebc86a5fe51a8c925da97a01db87bf9d4a27992d97d2b7562d38a1fb1ba9c58dc5c423883a22190063ad60ff05c3c101485adfd95cd521e077f8b65cdbbfea945a5b212d32d0182bb1af5667adb413739e7c5582bc92845cbc17284f37b723bb8d6a77509376c492d58ed32683553bda2b7ebd24e5f83813f67b12f506e187b2db116e067d49eb1cc5e8dcd51a0da2822d2fbdea212fb631d264f255e0611c09fa43588cf92e1a3980a772560c8530f53de1c6b37cf5bf8325a915a9dea8ff1f580a657e795485d983a998e31fced4e23e92bc0974f58306eb2524cf3c8c3e592b2156e826e1fb88658eb65a947a5b2149941265faecde18bb1a2bdf7f03bb87a522278766016eb9b64dadf50d1f19c5c10632ca1f107d03b421abc217d3a07ddeb3b941eba59d37d5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 819801441de0c512f558942ffb97c590b1fea96059f83f626fdc0ffbbecd334da7b9acfdb8ce52829cf05f046f57a083de44312d83eb46c93e971909ff553ab9be3c42f23ca15d7b7e14ca08fe874b0db6083700577c69a5e8a3bcf6f7c36240ab92ed3deb516b1aba0533a727eb75969ace40a304e0cf2982d696c4e95e30090b14a55e078426061c5d160f5456d6e6443f730341ddaf0acf4ad0e73b60e4bfe5e2305770dd65728ce2424d79115efd8de9cc2cc79bbe1789331b9a36100e1acd528a6fb25f6f093e4a9d4d187d767370f52c2deeef9448a6c016369e9fbdeb0c85b75d44a9afee56ccf8fdee0785e3e709bb36d125aafbfa9e80e38e01cd6604c5b29351fcfbc3bc31023aeb841f5926a37f728d3d345d48e2545d5412b738050964d374e493b3634758a39a73a29f5fe41185b60fff764008efb9257dcfd84a13ac79754875834d598c9cc4bade1c0927a274fb4bcd43d8d8a6dbf2b6f386022bfc68b79a13ecd608645a4d5dd5489935e221dbb767e760fda20b0c74aec6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = bd60d3822203c14ba38ab4a83f40cae9dea49fc813a2922110244644eec6cbf63a293b5b7cd907705082c9349cd862f6f417d8d401d9c84c1dd39091c8288212c7b9b6ede28fd84fac25afc707ede9ddf3f7275b75ba946d2c9d75a2e26c712b20f704f3369b6c21d9c2a4ff3d691970055fd4b9d42f53c8040ff307aeab32c957973857843cc7ef2a3a2c86fada1ffedffa21dca1a343abc4f66c5944087096e3e4b6ce3adf9094c62d7dba4c615d7f60b13cbf445210186295fd55929ca296af79208f6f3e95945507e094ea927aa5c24316d8049f960cde93f221a018e42f772b765146f436aaaf003a0a4404b65861b86f299cc1d3b85dfdd19512632e513f282e06ad0c0e063950f1e34d612f8671a67724012597d080211cb310b162370026016db8f3ed378214ea76694c335723348f045b953467d86a13a26abe92194894f32b440bd247d81fbca4b1eb88e6175527f7cf454f7065ae5a0c5360d5f709969deeea42b2de830c2d346192d38589aba7c493e8329077deb6a2ea55f714\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 59ce93a93ff164f56ac01663ac9489ca65b071391a24fa7c70d4434d5a8be4a815ae3c84b6112429f69809f0895a3a35546630a74ba8a9c293900cb9e55e6d7ecae3a5c67471efe91e13246a04ae6b41886b338451f681597574bb3ed36a732655e8c32c819a82fcab17ab919a57a5d0f670c164bb02718017f99b5a6f45b5c0babdcd2b5d5fcf39f763f87fff70dc8cae554d1eb91cd9aed7b54f70e44e2d045602855e1a8b98f48b93da66e60c20084eeffe77a4fb5426b382505f8af60d97b7baa46921127dfd413b44bd26bf6453e10a849341677d809a831a68e24235af3a28481224fd114afc88ea74266671295e0e8d132f83f2a9f534b704418997fd51ae3f8eb0bd1353b1e396cbacd5b028d0323ef115c6c35af47c138f1e2d87ee03e418a9d02b95647e551037f263779322f1e9ed29f66432f3e71b1010b07951e0f155ccc4c3553602ab28551b6887530b7a066baeddb111f90fab9ff18eacd2f48127b1ffda4130f66f15c69593552fd6c8e2c0add716bcd8f4c23caa9341b5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 5f2eb84a45b5c17a89eb1337b0ca5d7f13314a850e5607e1348b1bf1afad9e278454ac3bd3367c36c8ab22d1b3d8e16c364e0ab79c9ca91383c3ff68b8601faaf797f3721551a5f422594a8e96069ee1b7a698a86898cdd5e1b33d3fd108c74bab7c1e08a17a47d7f2195bdf1644ce12d6c5d4157a03be9019e439da230deea8972e360fcb3ba2b59c6e9fa514a26c00791af0dd5401cb01169a333ecc2216d2e0b603a52cb1fa09fe530324bd3e19f868c8c5b4cec1a07877543ee1b68bcdca734a6cf8f28bd57cf41f306f55fc759c193a6225893b3df93cf909de46a9a0eb80c58f80a74e11e78217489409579ab2a53ac7e0f615bd2e3f875e9abd2fc9046db342415b452ef112b7367c301f3bfe7ed537b5659302dc49fd22a8b0ddd8246fd5259b1f98bc857e4d4bc489db04d41379d82f81ceb2e3ef0a24defbbf027be3ece8af03e4e1b0323dccff2633183397289545988b0524b30ee637bc2fcfacb7cf97e57dcc78fc507d02cfdb4e3e1306888d1adc4d5a7d2c12d12c3e2f0d69\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 4da5ce126030a6df46e78cdf2c25b9e81c394b2ab1eb72128ba36e1ce978738830dea1af9cb743d037c0391feb51e3562a117b5bee96335495fed5e0969f26a25580a549e1299baf27f44253aad62b532524aeae684b0f989a0c5997ad35e66b8f4ec2501869b8c7a4161a126fb2594c728c96b97f0f52d29d1c50bee8db7358d5aed88117d262cc790e912403a332c5585195d815a84c8fef117f16c101fd12f51dba843c2e28b758e05b1fe47d738299a120b179703bb8116c50a9caa38799ab377307ed51c185d0ff54206e8b45215a5670d3a408dfdcfef08de0282d59fc33ac76c733d2e00c3a205b571dbf62c1e330d0948397a6a4f7cfea31ef6a297e7308a56bb48260cfbdc497d30956c976deae81604ecaf9ceacf056fccdc9e5d0c8ca1a0de2e7faa24aa0ddc97ca75d5e19e07a614e404ed0ea318bd04ce8866ab6db1f7ea6e65316582e3f8f23e9d9f258104da3cb9c3e8b2424642fea70b5de0b372e1b1ad15c1c97b67be227788bd1484d624d652a665cfbbac148ac4eb1c4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = c43f9e1991771364c2ae0e3fe7f0c5a30e39e998a7e1b293209a2bdd14dd1cfa14356288bf9f71056a0cf724b8e9242b6ad5f6947437051b9e09afb610b5a785f872f40d0ecf76417c38c2957e92d0ab43f77da2cd548e324ef96d87b78952e490e3d44f32125e62482eecdaf448a7a0a70df5b275b086dae02925d64216b25861017c73ffad338647133784b3629519245e830b11d2a9dc50385167b9cc698fa52ad02c5ed1d876f96cc1e425cd0d1f428c78227db88cdb0a9031dc555130a464d224e23ce8a53f41d3834bd414bf98657bd310e411a464875fb7cb12927cd30d2471171fe843c7f2d34160997dac0b91e9a3204b2d46909beaf50482d17758e088b392b1354e26a3ce8fd30afd35327056c432af2f4d0806b47c57183fe6172f9e2af390b2dd02e63d99a920c676c8e9b053e9544f3f01f75f0fa47646887ebdf8b677cb9855e49fd41587907accfbfc76712627af36d53253c3cf396e8ca0c756deafc025267e602af5648f068441e31b77773a0eb6b0be51b162941372d0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 953969d3123d65c166431050330fbbb6927723a3315f714b6ed05c26b733b88c5ee3ca8d03515a7f3c7a6db910647b0243084bdcc3606799c7844b59faba014e8715b766dba6ba11cbe86eb7dea482af06558a87e51a9e4bd753bdbd01205bee4d3ba127063c0396477b600e44fb290a22241a4e1ff0091af1e93841ea3cf175b09aff11b81d9decfa5259165f4b7417067fc491fe816c700f3205eecd8b296f0d4047df2744843a1d8ebf774226a74e33b29c6a95750cd532b868713c1df0096bc9daaa57f21a7879d0f007c247c516de49fe3890934b71c2400646a983c688f1ad176891a79a87ec4955ef3e22c089c14e5b014f90de8f2ea1244effbe28fe001d6f80d09d2643f19e3bd09a8723267dee93ccb37ec58e10ae4725bd87b85a6268df03e98c5ab3227ed0009bbd4b9c338cc7089cb66228f626e2e12de47391ce49620c50fef3cdf1bf6bc0c068d81c3c776fa4b69b422b2fd5775535bbbb82c652519266fe45252f7ccb75f820690c91c1fb7430b8086aa10268fe226c9c79\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 5dc333cac75cf3da3e0a3bc580d5305ab08b11b10b8a4ddc4df54a6c08dcd21bea3c83178db7c3a9f1581a6db19972c2924ed07705045f0dc72bf60304e0f9f140986ad024aa4791f6b4e903a3c1f8e33f61268feea185a1b0f7690b80924ea06362ff9821ef7e39447bae69fda7671d11171dbbc6cb60d0e95bada53bd7a81e8a9188b4eb63d573bec3973d286777278fc4a4c7aea62267ea0c268a5498d2e989de4e4472c46a2d5961fd4a9a75d81e23e73770014b01721a09c05b39a1bcc1913a9a", + "aa0c1f7e54859a86ed3f1dbcb5e4371658c640961927c2719109a964bea77b037d82a08ce241938ce0ca349590b9a5644c3c8f22b250bbff4aaa5731fec8ec554af2c3ea743effe2b42e30ff4ff181f8e6552c11b87090356b8d7597ba0d97059dfd77c300db534d6f660f6ae9163ea6d24a1543f5dcb691ef1fb9b917b7980660e223524ead8ea1d7b4dc29f1e542122361b4688c93f15434e52b791059650c99d97e09a3cf15e7dccadc95224478ea4c90615d654e51ca9433357835\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = fa00dcf88d38cfdbd67c16db4fe513720bc05e8649e1766e790ddd0ea86cf0977215d36e4d735c2115227dfd62acf808e3839209114929b6fe36864ec3e1d66024b62763acecfe3adf322168b340d839dbbb5e62d2196868dfd975a7a0eea51610df9a5202b0c7037afc6ba5b68d93bd9446f5a9ff1c27945852bf7c1b1aaaa8a1ff9fe3604fe120be2df2d8f1bef9bc049fb667459c487000c59b6f54bb8edf409521c5f87795f3782645a2c42b5136f281875e4193097edc2a284ee6f8981d637a276dcca9fe5cf990763648845e5cf874d56c57d6c49dd003a929672c8c2dc8cf96844bcc9d284a20f8449f8ea18ef2b6128cc49f6931623bff00e85c1f229ee9a9544ff2751766e5687ecd72ec6226ba5c5284771e57574cd65015940db4d4c88cbc3438d8ae0ae420d3962765bc7cdc92481ffc3e22ef0dc3c4cbefdc147639fc93029d68985e6efe7e9b10a223e3eb7988d2614c6f3c4b84fc84fa6c39667ae2054fed4af3be503ff186d64ca9cef2e9771c011a21074e5c6209cd08df\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00003302b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 3302b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 02b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen130 = 39041; + +static const char *kData130[] = { + "# Imported from Wycheproof's rsa_oaep_3072_sha256_mgf1sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 1\nct = b47525feffb063be5201aaa1d6846f9f397589b988fa26848afb9bbd9d6b0d0c92cec327332f02bd072d53e479726faff5fb89677c4947d60d5f1d7f3bbf211755975e1851f17f0d88eb970bd14719a9e5b257cde71071915774578e0bead5f7ccd7b476732a47e0d54ef214488d733c689238f6cccd6c8be7145e0dee871fcbb504c93e1efd842b228d67fa3e303a1081e26052c6c11ca85355a2de7f717dc432a90092ff9d3d75301e7f092b3b425354939c43f0879768342242836030822c9bbbbe09d5e938fd070aac9f974c35dd46599766ac6f0f87a036a36e3650f7244a336bee4a9ed1280b8adf57d702844c739354eae88ceabd8e66338e59262ecf51b28f4dfe7bea8449383c27580f81ea06bb4bd031826e6f6ddd0c6a3c7eae23d3d6acd5f6388fd9fa70e66c86d178394953ba4e391629a9a588797e25acf8c130859cb7c9504998cce6dd9e032b1a09aba8b215b03b4343a5c0f2a8253b5543d301bd883e941786371bdad14117fa273296b153bca8ce4581df09fee1bd5e15\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 4aae8595883dedea13a1fd656405ae1a94785eb86318e181b747331019087686cb81b259f864c6a524137a316f744c0d092348fe0428e1d9551bd402404342e1df33f7491c381a4f32ae5687bfae07e1c408c3e65720f54c5a168a29df6b7fbc1835fa49ed5a8b42f2acbbdefb3cf58fb6876c2a0a710bdc5c9032018c6b326389b3c32efbd7aefa8dfde0ae7bbd829e6160cef2c8632335006baad32fa7af1fc9fc3ec5ac9c4f7af226e7561cb44338d428d97886d29009989e1d875650c9f3fa8af2a0924f93d00d2cfcaae67e8a89ef34d96afba478a250b7995e7882873bec869541c02ed46b410ab75a214f0ff08ceaed4444080a4ade6baf39aaa9d9ba52487dca33759153345538143d11af5f0ca335a2a3b94e1045da7ff690a4bd454fb788bd7c73b0b16e35ec2766024fd0b7fa44e0ca01fc61e331b1fc8b09f549a946101e2b60c339304a48d044fe231288129d2b70d6b08592288d175183e442b9aa4f5ec6eac0148b6be1f989263d3cf34a7ff265539b8e34c2117b7a1c7616\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 8f71391b8e3a079a51d015e86e0572aca134e5af782000545da1cbbb4cdfaf836542cad19bbc6aca73367dff9cd1e33631260d390b6d83882f82606e28abd2d8aa229ec1d93b4cf16599dfadd2178029360ef5a3bea6a136cd437f59289d334f20e7bae91ecca18b7e4fa5e3613e489ec806a52bc4727333bd7ebd5bcc7568f697d4013d0f6f54caf1baf36791fd21f8ce84643031ffe474901920eb4f592ffa306a979edfd6c287ee5b1fb0005a21d840372c60a649a1702fbc46489211700e8262bb1a2f54fd38da6a07e15850405a277705a66e7088b98bfaee8b2b51992797d5e5712147b756367170b6fde26c3fb5988ee07f916d189a3a18cdc0f3b1affe63538cbc187d4bfdcf5149b4d26bb207a1495d51a2ee1c2415f4a0d6434d50953ff2fe8480d276491ca1468e86c2318e94087e984444b04e7b804cb1f62c66573e82fa6800ac3a42ce0d8e5909f3dfba024a40c51b21b5455836a9244eeba25157e24676e1a317d1af9bf4773913ec3ba6ed1df50d3810eb98bcd290757daa\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 157562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1", + "eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da806864\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 7c741c6f511fb2eeef9ce3dd89269e991cec00f0ceab514a1780c0ea2e06261259652bbc5e46871780d0c03f933d2a3e4a482ad95bf346f7402509a3234617ff36bd50070e2278e77728ebb27eec2b1573c76ec52a25d921b1a6372ee6200dec65575324588203fc3635948e856cd47a857cbfa8d2fbbd046df850ecb1582d7ecf531f4f6f390b725703a58e82947141179811651588d6b13ea9fa09d138d71afac2b24b82c48ebf0e5dfdfc2a700d93d396c8ed4f78846797dff44535b39d176ec2d0124dd61b29d36a314631aa2a7d25015a06c0e30e2dbb011045115d6d705f06b593a22f3f6921806acb1c8a4460cad9104a78ce9c18e940fdaba39a6451a10a54aedc3cf31ad505fa889ccced290dfae89743722527324ef6131b7ff0880d90ebbf803fd798567ba0e07ecaec6c6ab2b3257688d2c374cc3e48137ff81a66c504a8aed98ff76ff057ae39ac67485b17abe4e16d6fb5b64a5d7c3303137ee286cb6ec53a86511cb224eaf47a59045529ed6049e3bdedf619007eefe4094c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 76efadf7cc972062cddb8c0eb6789d1422632751dbfd514d3e8a4cfaeb17e07d78244aba11bd078fa4fe3da077f1b6b2a6bb161dffc4d96245b6d24acbddb56a2245146699ef629a069d73ea233dc3994f93bdbc208f6f53d4d74e47cc0ac167ca7912c915842d9113e75da6b2492608412e7fc2a577fd3621a1107c1d1c5e74d3a0aac4cfbf389c88474aa37be31d18fcad2f750c1b176f2c1ff544f5d23fd3e1a3c4507e62d5a2c2e0fb1bb426f860f84c4de0a2ac63f90e3a6e266504389e96b37a16ac03fff70f3bc4488b3ef783bea505911512b7d04abee4ce52b0100727e563f8416e9c6f889e5436b27388cd6d7c4e2ffda6896688f8ce15167e8baff14ce9ab95caee52a5fdc51515fca66b646af8aee83e0aed730bbf2af2a966f330818dc33d4662e4dffd50025cbf77efe6ffb3c6cfa24420f55a418d08b675dd85f7aba3da35cbadd290482af1e7a0c2b7034a41bc28a5e3dc2c47e78fb46ef14dc4674c65f5cacd17e4f542a9b98ec268bc977eb97045f50c714ad7a49c0e84\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 0351794ac968e26863bfa67aa4d602c725b79ca9a4cd907a9e03c7575b975bfd99fa491b5bc3f93e1eac5b48d95090e10a29d9e4edce709c74886ee2d5067bcabab044e239cb4c23e1ffa8a8666fbdc706ecf49225697fb6f1a095e20dcca49090548d9fd0b8533b090823a76ce6c8c8a139a20b3e930a8d2ef8d868fd92c086c06a86c172e40e76f9920a6de6ab2fbff2cbe029b685dbc20da94e84442050b0128200446bf227eca935e1bfa8c89ec3454ea3a82cc792a2512d8513f2ddaf172e35e735ad69a5f892ad0c216e84ea9e92129d8272db269173cbc525e61fdfa5533e2e69a4670ed95f4958c684476c208002667fc7f687260eb54d9cea88bbfeb7b6d7aa640cf0ad0af22ecae17034c762bf832a9e8ef090926c5ad4fe6a15b6e5ef69da001bb7fbc608bc024bcf38e157dbb57974169bdf302ec177e48d15a1d0c919d9b8862cd91d454a96df1c720561928e282b9e922d0d8218d65b74bb740cb7cf7455e97a5e6bba07424382c31c37549d7f29bf7e2e23093ee861dce0ef\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 7a9f4a75375002889bb9c4cafe5f044e2f28997474465251246788e51b0cd5c52c809a69f1ccef4c11723af030fb698a641b98b88b39c152e741b8ee29b13857ec144f200c669010a657441701e929ed7df195669197f46909acc69388128bb75645f270f20df256f0d0c0ed488efcf26c44e4d4e54a8757f6c5bc7008c68b7fec43778743a76a890d383e2983a754095224c56862b4b62e20f112d1bd96f30a3e66a20b01069c0ed9730f9f7de6cb13e2272640ca5cf807e64f44297e3e58ee9331e1f04610694a0d5be7006f96747cf730ff3fc4bf8884b3f9f0cba9c4a8f38a01b225b083d77516d46ade258242b0ea4f367bcdff490e2f127f013808cfeed451aa7c0f64b3156fc968507ec7c80572693d154b924fe18dfea946d52da81a5ad0bfb5fac7010ed5b4f18a0bd1ef400a2804b9ca2b2dd0bb8b8b402952949bba935b674c4863ea4a9e38dd701d23c71e29b4a7c695856db5978b7e3c964ad8fd4decb1cb5eb3f83e8ef0be4e5fefd27f8604b1d6fa06dd4f97110317bb19d9\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 1f1ef3e2956c31f6b98fb4141a42fb2b1a14331b5591f40b5f34fb3cff536753eed85f9c54f24c76b29cf7010875b17e2bdadddffe230d411c87718a5f0cdbe6c120ade66b2171949bcf7df65e6c687249c0dedcd358c38aa1b61867e2435c478f46be8853906cc08741a1c092c2fc577a0b8a32c818434575b54bd58e17fcd1a6f910b185df53449fa88a777f1f795a89eee2586c1cacd4d1277333ca2ebbe0430190289665c3efea05871227670fd07250652a1dd2afa6ed9c295ebc68b15a254725dd6006d28aec6b1acdafba69247790ceacedf5eff437d569a71e5564d6ec6c90d295e225fbf525e76b2e466985482927345737eabfa34046ef618494af1c847b1d819f2f99b15c13b8e817d437db38a574f66da845f54895710f1b685cbdd83fbff9835a26de074c5b1712d98d4e036c9720d921739b8f3dc320f1d266ae5b367b92f5e33ae28a7a06f727f2df5437e55c325cb233c801ddf6b12240ccd0b8db8c31a5ca652cd0e33bc1087f4bbd70a0142617903956443f4ccea5cd93\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 85186e5bd121796c604ceeaebe2f12fe87f41f502c2622f0ac8599428f556f7ddba82355e65dde44fe1691b7901fcf6ed83fb837c1f7ca549b2565da1a249dc717c245a9c6362c8e831ee4156dfdec6d9e19ee500243edf4419d152c643360e35935d88a0364b28038cbab30d23f6571053be99e0e405538c54a71c4483caa328a8a49b1e9a5ab0172d429b5635fa7cc11f5703bb95536d218bdb4ed555a2b1b71c717bd65e3607dfd7e7cfc1fa7f42e72a5daae3e6bd694a4a6194bce970cf102bafc5573b8de18544080db3e89a753b9245ed9cf7a17282017c8276bfbe737bf0d802a7d2e9a9fb5f373f9760708211f9b7a99d3dce0becfa77c96b1f5fe1c4ae8cb2b4f7c741e90e4bd2fd1b93648252e4576b5670d51e86068497ddf162a80dbc2a16b73e16e3661f31a8f2fdbb66764a70a1cec5e0e247e38f3fe95949a5742b1987280ba9d4afe69cd00fe10feee87b9d0b40a2e94fc042a4a51474d7e162a1e7261b2791f8af2af6978bb87ea1059553af71777fd04fb92c4fecab972\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 6aa169ad089b2cd0c5c0d0742e452c4f1bfe9aa04f4df93eeb38ad6de8cc93da66af9ba589352446b8c3a5797cb0fb8b0b6d6b6fca1f9ae4d508951bf0b526a9433a9b26b5cee4aa943f0d2c0d94c479ef8f99e2bb680aa4bddef38ef607ce2770f4d60629ebfabdd9fc20c6b88c8a02179dce5e9ad9beb90cf75baf5980edbd5b92794bdf9bc58dcc44a13b181179e92fa394152506845188b80aedc2fe559a3bbc289b933fa2cddefe080817f6fb3f1e8f585389ebbef06c3376caa975c07efe683a32e64917566645330dca75480e7ad2eae5b4505b6ad5233e7cf4c3d8677e0350b8e1db4cbfd73344e14f458f49849cd991d3b4fd19061bf25784e17b04230b9a1db1637a7b8c0f4e3bfe00952201c039483551931f84980bf8a633a1bbf4b609ad64ac6d26514c869c1d7b915b223356fbb07fad300cc9a8e6c768927a857c7e9a58b0d784a04e24082a393e65f098ff211dcde8a5155550c18bb22d64d324224d77e150bf424262f17827f13920ec7df259ccfba158766b0b52bf25b9\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 5e6a85d2e4ebae323cdf919e12ac8e5028e0bd12501c5c81f2a30daa39a0ce15ed25e705c59edab7e53895e9a4b60b0a0c75f11d984a5cdc45d8f300398868c76c973e5d47f50831cbe994c5c76633574bde9f274bde95f5f4c7a05c7c74f59718e152c182b4dc9f86ec3a677d824ac63d33aa5dfd7d695bc409a3f22d84b4d75effa7c80b64647b1344e948087aecbbfbc607b667611fd7c3f847ce223d0ce6ee131f75eee01cad17131b5de821fa7d6b458cf989e3005ecf6fcd1f6cd022162c2963e05893912cdfa9b06634ae0e040a73284414a9a6d8f8ac2e23b51ddcb108586216bcee3f07c7b1abc84c41b98cede33d5c4ab8f8259aa0c52a4b6cbb754aa21c2b2ebe83962039651c9159ec65da43458f6ff397d9503d41ee102d0456ec58b1b8e28febdba82dc92e5e6941a097c8e406559f8410974fafbb77a9f72b0566bde813306b1a7df7603f731e8982f1730b95f9e541b29eed40fa85978044067650c55ead01240e58c456d9416145b0124170f10675e22d32920e91c11784\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 61a595dcd055dedd65419ed49aa559d1bab787f1d38ff2b2ca65baae8439bf", + "2a6afa3cd590f450b42962d84919d29f3d9c11a2586be563163b0a16a4f182029568939068003b3cfabe21ff2c6b7864fc2f6dfbe31bcfd32a1cbf3f0333477401f2d469b6ba8a7509d7e832df96bc0dd71e3c0d2979ec479609db9c19d8cbc99682d5ba09a8dab54c1ef4f3257919c3912aee52376bf3dc4ba4de5d9362b6c197779308ecde992bfcdc6ac658aeb01d5112fe592ca8665641d1e09dfef06ceba48ce18cf6b8ca0edb966246f04705574bc72c163ff7b28c149376bf6302acd2dc687667a9df54b4796941ec1aa9ee96e484e34429ee3a48e8a8a0a912569490190656207dd2a933ce212e229314fd51ba3fe505db2d10a0d29b5f54af042b4aaaaf3b548f38837b95d61739a895fdab837efe422db7fc71ae4652ba5319ba383fc459c7d0115c32b1c99df909cc3722e549e3119e0b47061eb96e714522b8b64cd5841967d43cc5f700a197ef0ad5c7c2e064fee98c461690b0fade7ff42e3f11\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 5c7b1e592ecfb9b230ab893e72c80dd0f762e62227686a1978cfabb3b961c490ee18a68174ef713f4dacddfc392fa0862e55e48cd084199f702507cb1ff8352ad67fa9c128a5d2738382973a65a6302b169a94d977b242ae57edf951c3ec1a368ed5a580ce6755709e722f5a8bc0c6844c53e8f72748f5123ad8773485eaa9a52446bafeb59193b1a95fbe6a8fe876abe6d26c161d8d3b56d5f47cd3b9912e9e3d283ff8d459f99348fd5d81a20bcb4792717b48af6a455333b99aa6b34e9e2f8252be8d51256a30af1209d7c33b55238c72b92fb08f216eb598a99fdc4d660307770a19045fc5e21e2b6e67df5cb3e8a2aa7b7997cf0eeb5324e86a952704beda65502e29b423222bc68184e4e18e3bd1efc4cd0d371eee26f2472184edf302701c0dc869cfd10937ec9d720f0b09c9e663d4e528ed257bf03a6bb7edacf03ea5796c5fccfe6f99cf8ad9b487db1bb228130afbb468d289230366e3890ae1b9561ee44d8fe019eff7ab5a6b2179e142616f9e2dc0c753e570185264253f180c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 2595c4281b17918f228519968ca6882fd7abc6de23a3beb223391548f6c856e99d497778dfdd24f4a91a63564e0e059056977ec4f621994ed67135ae72392e35a3b80b21ef4ce5ef01cb72faf38159b78a7e395eef3525872d6fcb7b97124be06ebd9c78110227ba0108e5d681d9415801b70384822cc24f0cae597da0f161077940fdfee3978a420907b0fd66dd64a8f4231cd963a1a36331dba563922675280457ad17d8a9a051f0852f2d0a69044fd501f1e29c4fdf9ad5957e249ef72963d678ebca418f08a73b8c16ce683b146ee731da35a48057ce41b309ef6ed90865e59e3477e23d7bbc8e5da47ca9c890772f7a5523ef181af764a4d05781db1e8a856b09478acd29c273f3bb7b52a7926bfcf43326a6bea8678151ee6235cf8e94696e174552ba644867824d9bdbaffdfe6e82ae8dce01674ac44d636f6ce97e926f1da2fb4bc941fea2592cbcae57769cfebc519c77c1fa9559f3c13fea9a3fc985ccdd02aef5d977b7aee39ee424c8cf4e0f522d5f50e9981e3b58f33713bca6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 2db9c10038f4912d0d2011c0a684a3b918eda30b238660865c3047285390cbf019eb7bb0eb17c1c94f956eae46ec8f6f86b4a800ad7dbbeba616e392ddc7e5cc1bdac3433b57e73b48a27e62c59de1da90a8960f3d7010792af056407060ac39d6c200c89e9e0f10668962bcd13506b58b0447424c0e50b27b3a5e501dd35470681dd6f88a05903f4a9f42e9e4440a998a9ec6c575b0472452fc2f7816fedfbe7b9335cb3d9dc84bf54ed5e8bc89a69aba9ce9507e388fa8ff2ff2af86c6ef6f385c7ca2a18714a3652721c00768d8024207d8ef89b4cbe181e645ae1fc906620a7a9890ccedf3b70a08bd90c4acd3b2213e75ad7a6725eadcb6b7a57bdb5cad2ad599991800ab4f7e8e875a2c722bacb09346853dfcb293f213e4d5612458441fb923615b5bd9ca7b38a1bf2578657858ccf0ab002de62f04c195f3588db29c6ecd74815a48c0d7ba9808750dc2569621878f5cdab99c8ae361fceb0f0440ee4c896cddf709dbe0b3d3a6a643cf98b31e40296174ebe7f9fc25805bd6fe8328\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 5552caabf0e33c74402cb8d9cc43fbee119055f8e5a9169d8fa3eb5bd2fdf2f9fb72a9d190ba067eb625da0415b9e2127a85aefd9ff61dfdc42a6d252101aaaa3c11703115298c8893737ab8123c675a65f7db661273b936ffd0f3a5cf5dad3d732b749c83705a90d03e1eb1845c4a37fefa7d1c10da277de8437d44d9c448ab38433985a1b9a24697bbae2dfa875cb033e57527fedb17dca5102683c907b82a4aad66345da3031167fcf6a333a9bc4006934409c7141c70ba0bc3915b2a5579a351a8a6d7613fffeb014fecc6dc9937b1311970e71f45968c890521fdc2167b80155619b575019b563601d8fd6c14c261f64b9d5056ab189a9730dc157f69ac75ffcb8cf2fafa06db43ec91f583ec085c6dda8b0dbd48df33e2aa84eb5bbd77b39334d3dae4dc4b63da5132d69c0879639db22f84b29fe9e03b0102c95c339bf85cecbc564091d9168d93e92f1930617687adf56988cb89b69c367632cca798372b89002bec586e92609c021273a1cc4bd596342d6fd7fcf4911b3ccafee359\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 11e958a24a754abf620bfb2c265c568e41ed4e601bd64e1918a4759a84d6cada1c3b704c9b5c24a3be37aeba85e539b33c05ebc685e81be333d599f3fbea364eb63cabf71b57d9cb38ee4bf01ecfe7a0df7f79d390981a7d56ae6be07c5789e42ce50a9bb84e388301e007ff823f95b677d8cc0c0ba7d320f94032369eabd8500acbfbf2040dd68cf6ad2abce9ad3f8e54033c81e3e2e9ed966b56554d4f0a8134e3fd18facd3dd4e0d3e5fe7be2e1121e926f6f7ce9727475c0478a73bd2256d5d0d90c4ea144b5ed91e3984febb2469a858020294c7c561ae2ead0a05f422fa01e7d91f9ddb1e50a4bd6619f841349f5c998554f023b19abb2c5e77cb0bb14c2630158e37b83ffc5a7653d97a42c7d670feb8d19ad2a3a5be3a3911024fc7d797c3f27b84923e6837eb6a24ef4c9a95f437a17d0faee59dc181771cdfc6c989f7cf9004a353e4ba84fdef74871024ebe667e4cff2959830cea4f2ccfe9a83f58388e56090ff9ba7278759508b65d39c4d4e977f0d0ec1280b7317e42b8f05a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 7a6ffb72a3d0219ad9e99ec707c39c37d4aa072c47553c307270b9901c1587669de22819c1116d67f4689fef5453007800c29eeae66a1ba58ef4d08a77f2fc7fe9d6bb3f4105adace30eacd883ff86c0c64c422b9101a997a1497ff145d63f7f129a11237d7189361af0da522ec7ea7ddda2732bee2f2870a590c362063ddd5c4ee4476272abe76ff2c761fa7818d951abd8841d516c816b0c7ba93967f95401359db08c8d5aa4edbf5d535ea42c1ebe316de34ba0e392683ca5c5e6767c186a1e0ba04b7ed39ecccf96ddcec921c192c5545881ab2a84c326304e2ed70d29315746cb8b31bb7d036023684f6fa2cf33d558d194389029329da0802c377675a0f3ea28e497c712c5cb0b754af92060ae722563facc3a40794489765d23c9925302c8c5bb9ab8ef5c05c8a9d8a0907858f51e276671a9c96484165b2463e8bba99b3ab7ba5bf88a787800682b98d204f78dc0e137e1aca622d8a2e2f268e2a23309ba8085536cd0630b561211d6c844ea29224e7cd8f598df9bd91a961ee33544\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 4f2f2db05cb302c4fb4b2eb83bd00e6fe362d4b7fae313de90374190931919727876280139e8d52efceb10003b9b367e13195d83354a30df2e3a06a743671df8761f25620790d1ab32c6ea65b74317e4cedebb725e8558d89ff6d70da36663cb34d8b0183caf9a6766b8436d2d9b0e7bb92c40483cd7cd30a681940699c8d167a4b1a0b2ba2670afeae543d34c60cd758ad7a53b8053be8bcfa471635389503b1146d051e978cd4befec148417f3b4b3cfed96ed78048452bfe88ba9b7ac4cc09ea8be3fbcfef9a818235c98a43e160f25427a5636994066ec1ac19be9fad308eb71015f417c15330083d6726977714841383bab6f44f94ef2b7313f513d3589d67d96f1b4d0887f79e414e77b77c39d5764bd7e5156193821fb80d11f7a0847d68d62e1e092d09fa4f2bb1bb65bcf407ee2d9352b3a84dffa4ec241a850466864a38518e2d5f3b51627dce6e6cf666f5f80b476ed84f96b023a63cd92229feeabdb855de9ad90cbe085190f20e6039b01a41b36f111e8faa8e0ac4578cb4fbc\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 1afed89bb5df115fb1cf52de68fd4b1c895c86a6852a06002519a69c6a983e54d19351f930c227b46a6f3481b09a121bb19aeba02f2abca4b0c5aef15861f0f1d25ee3f6c0cf56eb6b3d10ec5b7640ef409d9897b32c3d3e98da2ac0089968c352838d0bc6a594786ab813c212cb72a1238014d421642839c3634ab14f61d0c775f03d875490354dd902b23752fa3bd39cda588aaedaf31b69d29895cca2bac9db554708224b753eb36c7bf11031fe9ad0462f5054750e7b5616cdfff13467b20025a71bcf4c5e6b31dea741ce589c1cfbf76cd858ee480a69dac7a306308c5d3ec8108a7efb2fae18504e72e263c0a1366103abb70cb1f7a7f01074bdca763c17d7edcbf8d64c9b0a74ef11855abbc4188451183904ef1e9647e512b302ef263123b0e4af885187d8e1eb2f6a1c65daf7b2779be15337c3386a284801cc40358c19a4d9e487896c0bbfc1e56913247e97876487d875d6bd487553552b4faf8eb4b17ddfb55a87f46b202bda0e64e480ef03e057b410b5823216f87e4709bd64\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 3dc25636b9915a15c0b5bc467c0f3834e40ea9df315ad7e60a0f515408382a40f900e8ca2279cc2de6c94500db484692f92a0a62ad1a91be01e55e82ede69c5c188bd624cade6a359524023b3654c4dc6fa2e95a5062a1f4ea04f26343280871eca16ad398ab356784775159cb6d94f45838ec75c810de14ffaddfcc76d5cda931f6bb0285f812d5bdc15c77af50ae6b10438019e0207a4e8f95982651de5b251702f3778f4c92da002250cbf9e9f6cf57b8736b3b5596e6afc06076460e948f87", + "b64b008545a1a8f71f6918b4d944b6c9a777a1119eb1ff63cace54492b7fc7c57e55d7306d06df5056275fd1c61845cc2981cdf71a8f6ac8bf58036845a6100b3db63d6453b22f44e9dbd85a417e10a8c033cea38f7f3d1f0fae1af30f609d97d8379542dd1a3ad593c2dd00b79badcc9824f2a0946991b01382b205050f68926efef723a10acec37788969ed56ad9c2113a4167b69defe05f02ca56bf93fccf8278dcf160b8e01bdcb4460013bae15219e16c64464cb15e2b94e32c909cb8\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = dc73866f40b72d4dd67fa7484655a0aa1bc3569c7cb25222b6386e8e4adbdb3830ada800cbba3b063cc173d930c5e465b0746fe5e46093c956cf84fb058897e8cf3244d5850bd604e4c27e19ee03ad6e40daea9ae5a1cec36ca0fde49c6cf42de296f1527b758df1a460057aec70b54e4862465c4233ce6f140dc69b1027fb8262b90a0ae523599ea3f7526871ed0ea85d7c6d30bea21482b2583266845a82b113b99933f5032da3089f58073449a6e7631c296d49aa1d4b5ecced0da19775cf70bef05447f1b56535135d28b2af6b31d901729c05521826176a5bcd04990882d17758bbfed52ab5697ab85c61473ec8796b772856e4b68365e1ff5749a3f6be0a4e1691e8d43143cecfd79291344eadd09b9aba3a12ffe9cc68806d55dc24cfbe09c6704bcbc5502ac6c3537ff0db6222889e97b101796872754a2d24153c3dea6fd521dcdfe5b5f083a3417eaaf7b6c006b6b487497471ee8c86787e8db92a39e4506accfbf9b02fee81a8f3e9cac67cbd2f0862aaf8671557b705369b7a67\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 0000157562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da806864\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 157562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da8068640000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 7562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da806864\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em represents a small integer\nct = 8390361b70122cf45d2cdd8c575a7e81a81ef3cc4b54f591ecb3d817212701a0b53df39301b88b041a317e6c01d58085a7a52a7f5e6c18975918b5a9b6166baa57ec8be83cc19f8c40c087d2d7128f9f45643be5e1fcdeb7d733bf3bd1b6e850b676f32cc804534e29b2c1f1fd50eb94d3ca585d584f854e2dbad003aba313c12aa86105a9e53ba2da03e8df687f3f1932554175756a48f2f13f3fa63e255bd0f86b2e9d3bf680017ffda3b94ac1ae12dbb5b7e03e0f022f53ce1fe8e6708ad61b30bb9513b76224b9ee689c69636224e613aec7dd6386fb8fc7772e336ce101360764dfb8f762b86719976571e560521ca776efa90282705129e3d30cb0f4f04ccb3bdfd1dacce9813d1a589da6ac9a39099495853e346f5733b830a72a1dec9f74214b5ff93f7a8e68874fe90f7c7e02dfa2afb96dfe5018fb6d6c3a4705be77f901282ae50d911e381213495f44fff40a823e618ae7d248039b6ec7e13c78819c3222a2fef30fc389ea017f4e98f0783722ef626ad4c876af3a45f5f8fd2f\nlabel = 904f95a1a204aee8987400c5d30ca79d72fbe988321fcf55dfcd0f07e763a9d400000000\nmsg = 119f6f2b7ee1c7fe0d5c2eb8d68566d8cfcfa3e9bcb1351737f23ae3472fe909dac0d4cd2b34ca643e3eda5343b07d47138a25489169897ba8772a74cbdcbca5dc4c7ffb707d57e86db83dbea8bff77172aafd113d5445618e36f7b9e50a1e9e0eb1f0809528323b45195b16666f5c22e8365945918e81e29aec72811adfe006c45e968e96c605e247163ea93dd434017b482b88187e06d021b1fdf4c985142f471e08d8a2398d54a6ddc6ceca63c430d3f67e825e61cd841b9a5d157b265ec2e5b789ba4b3844bb4ca168ec70fc2afafd9dac34d967400e982ab175d0d82a5007905a83115a181d4ee569c223bb9c2f9e1499f2798658aa8ee0488046b6915db383b001dc693da904cc4e330a9937914a8e0c2309b07be783d0e56a045a195b124f54016ba1c3ae760c2606a90f32760e303343c1b0729da9d1ed18fb16\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em represents a s", + "mall integer\nct = a5adc9089becdf7dfdc75a59cda6125b66cd9680c5689e6266887a4a73880b492e9fa277f1839994438962e946cac0da338b98a8affce9765feaf004bbce10a3c85faaf2a0a1daf931d273590c896dc847ecab8b923005e89613784536ff40fd58e193d1a4a179383e4fde0b914b1537bbffb23f311f7abf9c0de7ebf412451b7e8683389bf9f80bf6f3f564ed44682d5712d434f5a8623ea6918af69748b5d5d26d2c1b89dc6ec5262cfc327ab7f3cc1524c36991e28bddc59adcdcc69fcbf32d19db045753ed85ea0700afe3915bd95467456c967a1b1bed39d7b3cda9f103794eb26479894a83066ecb00e23ba424897132407b50f3d25fb2e9649f1afe244c5d4fabcbb53c2d214febc978a3495e0cce53fc9fb61aed4f7f6e42152a6cce5ff9d5984e4de9c7b757c6f9ef5edd7f5a20450bfef586996b009cd07f8377b240ae859b1e4518413d9a79b6111000ecd1312157f4ad3a35a0386eb1f9bd15193ad9e00cb0d63bbc5e279add877eeda0ad66ce845d8acbf33f69b5d8b16ba8f0\nlabel = aa66934039f2adcbc6de2b9cc1b00b11bf33a72ca8dbae5e7a8af45446ec682900000000\nmsg = 2a0e8d66a82662bc1db11a99703df46431f00f815f55520c16be0efcc67e8757ffd4596e232ea9a09a9c96c66b73ccc94da587d0eba7bbd35834c6ba2803a21b5e9a70aa8c37e391f6bed5ffa250276c19719dfc01d8f693d5760ad1af4eed07387a5e6cbdc69584f6058c04bbf0f3f32ebbeccc2d2bd395e4debc53f44a7eb184111fe6ca944865c9978f969712e1f777c3c2fd4286b705e40d56f7b424c315fb5b181bfb14b53dff5687e9c122fee7b3569444f76dd158cf3925b6a3640f5e573c0e5b420287396d85db8b3eb4e42336eeb55bb04e0972d6fa2172391bd954069c8aefce760813961d360f1a34d052e90f9b2b8f71e8c63b7a1fd2add9b04046148d2d8308f8517ed8010f8b23a56982a77ac8cc7f68da4c8e3617933bcad802044e176612450f2c2f5e399275e3877102deb58418e2b51dd2cb0da857\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em represents a small integer\nct = 8da7f29a7b3fefb253514a166eae3b4a8cf5a1eb746e9c6e3c0bb84c81047546a77815a6d527c3ec81c23761be29ce1e44df62dd3e6f5f04b91541d6f4b3591d9b8d9d701d92c6080842305e73c7be4ce52f3462c3676aba2b88d70cb82cb28a9052f0315449a7dfce72089e5a2508d99c54346bd2289a54517136239152bddec1181dd09406f5bc2b1fd9f637d3fdd8b2efee4136b1e8b8ac2aa5883343f56d74280a0458258a7fd7ffc3277c79adbbd96a928664853c2b3964b139071dcd56ad6bb3cb4921a3fbb2b90aacfd932b5d5c5521088dc02a453c719a22a0cf7e925264e8d3252d4c05f326f9bff175937ff2c3b5f3ba29d18a37e9d962274a99bbb5afb7431f68f50771d099288f3c4fff9b07dfa656bd8bd1d309ffcb8f1541e747ce920ca2d6b7582aa81838b379f4dc4ee23ea768e16d42784f97f0f670cb1424195ad8bb382faea3e5017ed8643065d6bbaf54999b08734097e7e34b3203d2c7ddc42073e15ed178e7893198028a58695f9c58f74a7def45eba8bf7ede23f6\nlabel = d586a88b3b492bfc530bd701d28172d67359ccda042cedca29f17a6152f01d4300000000\nmsg = 8d708fb7bb840034728ef72ec2bd7f10b95e37c272a385129d58f003364fcf454528e290bcb872d51306812bca9ae146edd97f2d56c4483bf39b073b43b44e38b55b35c7c35946c59ad9d513af40dc6d65e0edc2017091d4b762d7698c5b632708028d4b94b2e59489bdd2140aa173aa8529134e4ca51f7b3a038521ce76eaba81dff111922fdcfd13b75dc6a8aba0c56867c4621c740fe412f5a4146076e2c1c3132012e7fb48559ed4f39874e6d00479e5a19b20f8f3e247b91c083a2ea603b2a75ab0564d62c2568de416082d9a0c1384742839baef2401f63dde8e0169446cde0beaa9fc0f92ad4d8816fa0b9b06a3e394d9a0466b9bbd13b3c9b832b18df1537f3a79c941ecd567880d99ca9031690e619674e8cf67dbff8ff7d650c03f49f8f0fb2fba43b76e6116fa9ad33abf71a232614cfe1a2e99d2fc6d9311\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has low hamming weight\nct = a42d715c584bcc5589631f73e7ba3e0ee68d590626f76526b15c0e6defbd3a0c0e0504dc90157ece3c12317cf898a3d753787807892d2d67476ca7400022f0b3fb923b0add8a519027875778cea6537ba5a1c6ec5ee73d60e6fe998b97c18333ba711776d617198f38d97e7b56e260637efef5b68432394ba6e4520a33ebd7785fb05b212973664492a271ea666e76e5e15c9304a291b2a3800a2e0918a293aaf69cd280db9333493a261386a8fd602cd072bd9a16d242da982c33b6f70d475ffe8702ab82471831496584a4a3b6710aad7e4019dfebc6ec2f3e3128ee19325de5522d64000816e98be981ec2755be99c4d340413a08f2f8c888452887ab8e9e293297391fc9473c216d4a48256c3c1b8c7a142be547fd383de8ab7c2ce4fa5d4a0c034e1098ec5fc4066ae6b70fb24538432f67b8b188be691d94541522e78fc6cf46e3480ea6188598f8e73d08593d8b17e4fa28f470f72a1ca8ed92c7a9fe7abe2d02d7c13917c93a37dfb2d631942ab003c84c2216135bf8e2c014e96d48\nlabel = 01ca475244e50d16a353682007326d0ef4568cdb1e388a8d164ac114e459ae3000000000\nmsg = e00ac921d4554304c4d4c75a656ec3ec388c3c22e9837409cdba079cdd80fa3d215a6ee2db42947c7c4cec3d31f3f80bb64662df47bb9640eadf73d64054e3808b7c847e551fd91bf8d15baa9e33e37b688d48432deaf1855821721d903f8c69d7f6735d6d57d98eb8510cf6ee31801946f6aeffbc37d545028c0d5bbac890e91142f630a634c8b54ecb1eb9639c9e69d5c8a6a8c320b762e341948cf4e8cb9ff0da3024368e4ca87b838ee293fa8e209f8b993fd6a1048db31d149f47b150a1484c14f3c218baa1fe9a17fe74acb1f00050fa7642bc6ddc6574004dbf83001140cff15b3fb32d221c8bb21d9352e3356780e87b0df0b03b1cbb6b257150c70f19e43ab09c5a511c3b3a7c4ce192e718faac1bc6bcd6c6d5958b129076e1e0b3aaef5b38a1f82ccc0b8479aa41ab316d0b3c22de19004e06ea50413b0582\nresult = valid\nflags = Constructed\n\n# tcId = 35\n# em has low hamming weight\nct = 51ac53ba60a571b3257507f19d07646d340d8ed75ddac57f0633ce8f2ff5e3d86d94ede08c2e18a5070f954709ccc044625592249fd797f98a62190a6a65e0c6f8621c89af542ef7bea7c4efc0495abcc4554a22a77c9df7d6173fda1f25d3e33cf0f4d64989e9536570514040611dd78a07bf98f76a642d7bb359b151e99a5b0bf5f245ba896602f01550818215f48d020b8d521d63b611201492b22d6a212ca5bbccf3e475f045e3afb0f976fef14bb91b45e2e2927dbbf2bfd1fb94ff7fb165d5c000eaf09421df56691ba70bbeb98d660c7598cc58206c57a37bd9e8e111582f5274dfce29c934d156656e15ed0fbb61c0b4a733324cb3e6abc95d75b0bdbef8b617e0eb18350549dedd8692f18fe6e2196af679d4ddf4b040efb92d2fd0ccd60db025c402616e0f3ec8259e7b1667501dda86a41e15fb3bc259d6aad4553923bf563933940f1679106b9bde4b73a86a502f1e5afb6a8190dd4b03cad65690dd51afe3e4cf11deca11bd2f28a759c94624ed6b26fe3d89da93eba095b56d\nlabel = 9bb39276df720a4c92ca64f2e89a3c144fb2dcb3f8b13d74df5f24a76945812f00000000\nmsg = debedafca5e356c5375f0abf71f8c6ceb3879a1d9a0a5d5a750f2310e899a70f1cc833bad9e4204d883ac3c6238939f044a3df5641bc1ea2db48995850ac642ff1735062f441dde9376e61a3c7d2ad1eacf4af26c25e29bf3c1c27d3ee76bf992cde316973f88ee7c940beff156794d0729561a24e35e144f7da7a87664e423d6f040f915d996323d091901968e910ae6e206b586f084b5da695c1a1aa0784a7efaf92ce453d3c57f05c8fdb1ca7b2fdc0c4dbf463d5d8f4f62f19281221eb386ad292d26deb871d968d0b42073e1687cb3413f07702b47307a7c83df1a6654b0d92f55aad337d5e7cd58a7c7645df931ade6aea398e91f148392eb6032827cc2543847140b19bcdaeeaeabdf7ff22079aa822948088e7cec45c953ef1e13139f3652464cedcb9127b38b600f3e50b914c2661cb3c7196cbb9b7a4fa17a5\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen131 = 30190; + +static const char *kData131[] = { + "# Imported from Wycheproof's rsa_oaep_3072_sha512_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 1\nct = f9798ff0c606b0ff80a1042cd429d55bcad69856a0361640456261d29a98d2e42cc9618a08044fa29eb116d16f67212cafea3410c7c839a67519cfb5ca1def83ad3fdcc5488984ccbdfb2726371e1c2ca157357b881d873a7489004698ba21d697349968968a0189bd56ba4761b0e6feb4feeafcf4ebb5dd95fec7cb0a3cd23214356fbfdf93f17668196c354f7331a27bf12e8e9193e5c6c79e445160e0f28304be532b3157b50eac999cd162791c7bf446aff800686ca5d14a272a01dbfc6511472c18aa62d22b6af90a6335fec530aeaee8403cc8a07d9c2df2e9ea0e8c0cf83b82cde0488eabb8e7c8d18fcdcd62e680c6835955fdd7fa30c689b6b39805f317bb00e8dbe21907ee92f784c930acff37d70f8a7a838c7230e77d24ca45a5650726c2d1e3e7470d4247ee9f0a1bb8895dc2359cbde3b52785e4c05536759ae0c83555ef30f97482fe18f00527c7f0b37289c31c5621e3c7895abcb455277293e277c450bbb972fd63c533741d9a931be06163e166a4c6b139260e5909f01f\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = 93c78c91f4245a3475669a0683430aa59900c789474ec8f95321c46252e440209469e541778dc362b2ce9d5a6c822892b5e3754fe40038d5523d76e13ee07d3ae941963ba947b2fbb07c687a18521181f857d134a3286c073abd024691a0b7b85460a1872b5e33cb297e6630af2acc82c8fc61b96b8e7795f7e6bc8581d196dff9e3752fa88b08cba6bd67ca563043bc5296b6c26d526e34b0683b921739dabed3986c9b36b354ea17dfda86b78cbe5f0d4646cf102fea80da86c45b5dcbea40b44807935620e382aa17c6ea148d9b5e655793f7e6b6088ce719b08ccc6b5dde7bc3424f1c4d61f3a282bfee3d6f30480ec23a0b6c0712e9fb2ff799fc79459d1e2dfe8e7e87404894bb0a31260c1086c577cbe703a54eb9e750488529076c2dbd6f6b34dcf39e843f0ff279d0beab2e6709148b8562ae172bcbe0e562125cd6ed7f5d3a055c320bbc3c8b4bd28f7f9ce1fb402ff265e6d311e82adea22332d1b6d2b920313882ce3ba836d17e1176bf001afdceb1ca006c8a18f574bdc635c0\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 2679e7a6a3aa29ea006f84456c5cb6b33dfc0a7d1a86cf711f001b442fdcd788b01cdfee7d6e3d63ff3c30b2a67515e7d1d609e6ed4e22087d5857d7fca0d0b8f5dc41790d2913033971f85ee7d789de23ccee294493dd4484eb79e400799b24d6830ae8290343ed50d123ae840c6e4aa819badbbcd513341fd19654391085b0682d8f32c9706eaf8e2a0fa09420e861dcf8ca0867ae2f4b333031cf8fea956e3d67b67c40d97847cff086033cb83b95f33267c69d771407ecf5caa28fadb976db3855f39ba0710498271c86649604db35b141c8b9ae343bc4bc62b43d5c662b424a8e766eafdc22b41686d96d26d65cc28a221e15f53a1ce82ce664a2d5dc602bf0c9e488781fbc0ed679c9b225258a5582f15be48ba4a7a3d541a7433af5f40de0f04c04544962ba318179d2ecc8f4965d306bc56e2b6ee7f9705ad1501c218c31bc2f277c62029626fbf631f46964403d8037f4f6c8349ee8d9906274ede7d6b78ba30a3e0473a2621bc86dc31ba89561d82c5559982ff188ffcde9f81729\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 5120b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac3", + "46fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 290186a1a87bdde5c2ce70e17605b39b4fa2a286fd85c299a303d56207ddd0557ad5513a7f92ce1a39d8cd571c9c638c279d722583e17ae488d9d3ddad55d837a43845a84f3e774d8679d09b13bf218d11d8a2173cad0c5fc7b86e477dc372f215bc5641a13e931170c6401447836530b065f574f3376b99d4e0200053b92b1fe1c8f513d2d8ddc3ed210062e601d4750c5bb9a63e051098f159ecf8c40f90e6f0265b357585aaf35c32dde08e565bc6687319bd7c637b7e1a012408224865b9334083460aa39c12565c5bbf03a316a6ca5c174d6edee3391bab9773190bccc4bf737ad0f350e629d2eff4cd1611d510a7cf9c11dca1c86b8dcedc8f9b80fcff7a828c9b415f4699b2a1de2bebbb804e0203a1a04ddb95afdc4bcc6d98d240ba71ca2918f21696ec92abea1a9e16607e86f40f7de08c9013485d9f8121d9f9c0675980275519dcd2e705dad4d87009f0fb8f6c413b97c131766620ab583c82dc1ac489bade156b8e502335365bc4a8d7d8adebcc32bad71e6b949a48118dcdea\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 13ad5b087b5a11595dcf44902ca1011fffd32efe6b77be307b3dddd1b528f33e7ea3f36e09873da3909c7f44fe9ecd17adae5b40cddf0efe84fd401df7fed988963d555c24bc5a55e8bc40deb8061fcb59183836c1b1342d66cfc74f6404b67a4f50d9dab04223c18805c0a577b964997e5aca7016daf2c4273ca773bcde39470fe7eb5ec4541650c7687a378d00008bfe8a3a4627cf1efe29e7c81b8a12cc8afb745a86567f5141d16d1b848514acbbb52ced7ceb7381e7cf0261991761d411e6b16f2606050b24ee918cbd17f6c3ff949ed2dc7fa6e99b21436d35729b241f4a346c9c92a60d57c40f39fd299b2bff2f97e196aead3f954135b473267b27ff76bdb451c23b49d9477aeeadfe45a08852caf353d92f0e47feb7cbed5e49a89f42e2a755db0d5efe9dc330c3a71f331110db4a9fa3db914535050a96b0671c2a15b2e9a3ff3f1212526e2391e3edb1bbded4de0c3cc677263f2ded3a9506bdbbbd5fb3f15efda88d954063fd70f6642a5a28295fbf96a4e0cddbeef97a2b841e\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = f4b9ec8148f2d6757e6a6c9c32d5928e0efd5ba4d9635d60d9b481ee84631c6b019b4a04d1e15d5b3911aa5c5e9c46d564e707e64149cea901a88781512ba96a3a53694d5ed7ed7f8fc7885e384daa32dcd4c5228ea33e6266bec630ddda028c013288ff16671dbc5147b28e26b73585beda7e572bae5e30a2a9b123fb12b711a4f64f4aab9b6531fe691098d38c27389a8e99b44ff5d39b0ebeee5930313422c918681be11fb722230759c5b69f03c6a07956bf406d53f8d55729373931dfb19e01dea1b9e5203955712ec5463772b38097c075d8887bcf437c44b1f3041f2e84a60387e5565feadf19b528e77fd009bd13d248a0354e701a09a63bad83b30b4c64fbeaabfe23edc45e8405ee8a9496cb863e0b12a21848023ab41bf5d24f39b35fefdd1c27702dc3fd3ec31a3643ff7cf03cd429ff5b14735c8b9c8fcc7683d599ed14200e472a030cf3b40dabf7c22ec7645c735800cd1c72cd50beef8439f5a7406a932bcc1f0ddff90c95fe554da7c1efb79364cc53a773a35a2ef89bb2\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 20ae63774da080fc14e32bd56d9cbb3610aa0208185afbd8f612ad4edc3d9fda4746957c1891098ba091c3d0d3e337a218aaba1911eaa73b78c5f16e54c31cfd460098b33b160ea3c274d8e09703339b3b1cee7ce11299b1e7f4fddb75f19f546844b211764c6c171d2dfe820ac2e3a8656b90c7e4e19f81cbf80fd85e2f81c350c49462b45501487df08c2188f87383bc2382a32d60ac965aa4dbe5c1cf28619901ed6b42f2254e066af44a20eb6a9d4348c3a4169a209263f939ab49dfb989358c6cd89682df00fcbbc2208bd992e06f75c64f3e8a434dd7d1a4200fd197d0ee2b7f851d04dd4448544ab22c16bab499719bc43c9b07007a124b5b1e18b613e401340b637a31860d86cb4798c27afdfd885427f6f8b267d767ba290113eced53c9a3a0e7143b00c14beb395f2ba5bff839dc2c53a44eabc269e4860ef9d4c42e9e8c1623ef77613278b399f344a89fb1a107f08b5c265bf5809f89785ec7f24ffcb884897b891358ff48196142f57290b1a02a31d6bf5288893a1fb615fe0c\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 7a90b7e694903463592d5bfff2e00189459a41261d0d3b1c7c10b2a578c792b8abdf57f52d7d26a26ef2ab75a7ac39c28334f8a05fc14775ff1d63dbefb688e654a595ba49687d0b711ff21643a2467ff587aeadabd0966f1e5f34519e5b36ad9005a05b7093d5053f6463734c314e654340180ef8a18ed259790e3058b1d5ec18842e9b054853d8219e18131f51aceb01736666e60dd293e8ac47d4966ed68ba39194b766029f4bfd344ba2b07d9f89238804f0685706ac9c16462e69506f18dc3ae39e0509d67acbc603fc21b900712c4386c01a48877b9935355adbd009fcb41e5fcf1d39fc4dc7d26e72f0db741e2dcc17ddf79db46ef3ef3b2ee3c6ef5c689e139442c24c2cbec5eee51f03b0f38f19f67ca802e899be6597feaf3f0fbfc52af1960c1374f6114ac9b1e82670568c8c78e00474a1ec3de11e4f510982d8e9fda89e537733583ef6792ec3bc77955f4389b5b44965644c20f23a09363ac346e15e1f0821cf0488498824200191971257392490946d660819e6dbf310ae57\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = d88801d500a78a626043e14bd52e01f068eb5381c434bb3af50c9367a2ac5ca1fee8a9d248be2b7de7a5f52c1e716d110113b72bc6e2d08766607ee20e262275f7dbb669d47d8710a753ed8b0d99aa86c7b4cf0e342800c2185f00c38190bcfe3b40758035390fe649b2b0936433cd218450e3b762d10e7eb95d85fd52e5759d0d5a0ae49c897a059f7b1628efe8fe06e04d294548a07f73c74e6e6d515e311e7ae846b0c7f5aa56c61f3373e1a99f2b610785df6cba710fda15c24f56c37bf66e05de18f8417c5215ac4401a6f638a8d8b9fe2f77d247d0ea0d190b8c604bc702c91a84a4352ad0c8ee44d8fd1731a01d91503de39f8b19a7693f8aa6efdff15bd1169a0b79272ae03cb20b3ba573b24be410a8eeaa6ad6de87734f1e299c7dd95afdfdf56d41cf33ff61a7ce0af5eb99826473647fc79e884a75541ea7ab9963f154efca34741cf5b343c86be001c6dbbbf6b2cd8197ab5d377b8f0d2761f42f058ba8406f768ba8061576ff516f45faa42048b2ed3851dc7466c425433f6e\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = c609ea7cedd8b6d56fa625b11123b898819558797be9cdb61f0354efa52ffe6c379c4314fddd546020ce9f0fd5b907e6e7b416b46ce8bb3c6129ec39295077fbd3b6c24aef4a9163f5d7d80dfd47f44ebce3b5127bdecb5cbe49d1e125e20479d226ae2852d79047b5f0d535b48e8bfe6118c1d7c37e8c70ae84d1e262977e550f5da03bd087012a934f46c01e121e8b3106e50b4bac05632e9aed32996f09ee8c524ae104911cadcac120a45c44992fbe6f3af37b04e8754dbd674d1fcabc9f5c8649e0228f5f87cadd6d6620f8a9d27928e5249c08eee52372cdf67a4ac0fd8dee2b9e57699d7e28f17a7c76bb3565b6896c83ad14157908aa765c7a51493f2d3de7d735f3adf9f911a6ffd0b7cdddf610bce09e6d929675631381777a9fd486a7915890c0b8b3c119e50330579a4961db1c498955f0889dfaf3dcae46f319c722f7279102467b1109ba6191e30159ca53c9398e6de412afd21cf25ee131840d742562388acfbc528672d3dc38ce758895ddd5db82c875f12de940503617dc\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 2fdc9577156255b3b2f1073c76aed1dea93f18758096085e69b2a8593bd9dec848ae70a250d893d73c6b4ee109c967f896361d8d57883db63549cd9b3b61cbe50d2d944fe88524124c168a322175ee87b571569b567310b4367af407a9ef2657f693a33b536fa7804f066103fc012414c932c83aa1eeb9169f2ca10992b48910f0b2fa4409d992bd4218954078dcc78da6436b809a83391bb8cdd75c602f2b41a1b836a62e4bc04add443e90f58038b99b177a9fdce99813cb7cf42854520916b9ed0bfa4326c3aaf45ef8915c50a8c159d4c8ca6dcb06d35c15c5e8869d3b278e3f2e9fdb0811c6be2afd4959d082b4ee2f57be078d149a673fea7252b085e04b5c91d93bf6ff343e374ad5454a89c2bb77e040df555185539f0ae81808e20edc9d7c94e06498aad532b1de2eaed00d0f3419adb91893941688baa57269c9d1de160d9b505d55c7c58a6fdf95facbfc2551150825f42c1df3dc8f3bddffb80a0f424386a04ee423b72d5fc6161054ac43edad4e1f0a0d2cb96727de0dc6487f\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 12a86b617c77976f1647c75333a0e938a926d6ce39ae90208c63d1f0dd8420552946dcd8c929c08e6fdd8d03f8a1b8e8c3f1247a49bbbc010e8583bf4907405f62c95cc18d337bba3d54075dabc18c2845534dbee7df792262b49f3d", + "7a71910181d6217f0f22f9839b7cd3990f2da4d959196ff448342b9a9dacb984a84969d62ae400a3116dbb8aa7b1ce61f82361cc5cf994f2b65639a772c731bcbfa1df069f6726ef3de4cd2840e7c6b91f3e032eb826b5b4abf2de20d4e8d667e6b275e72c202e4acf65459c91466dce7b81a811711d3fd4130b83cc8d33a6f736f91bdb911bba9c894f6a3497be6381a2dc4349c85fc07bf48b47fb2291717724d8fdc53c9b8ce15f3a536bdccafd36ebd5e4693420271c9a6c77cdde48f851279748a0acd9e29048174644c503c047d75be164bbef65c7a1c2f6db94298e7bbd74679e5b0d7799980173b89358371609b256adc28b8a7f67cae1bfbbd83b4497ee13646be77e17edabb75b33e382fd21cb8085ad958c38505ead775bb784d608a123a9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 4187354a63cece7c984286cdd0eb98909757a41fb2e5cf45982676ca14e89fdbe5a570eb2d9475a5b9bd13a58b225f3154d538195a67f3813c6d70cfc8a282231aa41d3d3ce79aaeb9876af8b9cdcf68e529734d7ca576a8458837a6cb3ae65d8b706d54160f438ba1cb1eca3f6a557f2d2c66476e2d64a1b0b3dbd9ab0cb01d46900234aa22ce906e2acbba4cb1761ce412316deadc060269c74a81827b3180d94c69b5e30d2d45d51ec49b350ee0e672a0ea247a49601604c853c47170c4adf4a9e4a1066da59050f9edb6a21e922714706012443ba153959c8c11b9023f153d62d2a23f271e2b81ea0cb73dc15756ff7319f5ec3fab7e10fbb60b8a996fce23bf7de9fa17c11175f2cf604e32064b2ce3486221314bbb7a8d01987a57882f904d020761a53da20029d9b3a5355ce00520e61041b5a00d98a921300d3e30fc9a7dfcc00186e503bbf0fbf6ee00ca7eab439263d6d1257ce1dafafc1a0c3c684703ec18b3b12ecdf9a3f680b320a09865e70db3a6dce20a868a61ce187e5a56\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 4b845fca1d048ccf7e5a9cfe00c182238a2b69e02bb0b798863246e24c26856953d269d4de46e93caa7f383f241a963411b455e7a2547a9018b2f7676246324db9ebea25603d9b7f7792cf29ce26bb64cb6f3e703e359fe53ff4e2734371219307709d8a43959e61c5e76146b67b53cc2f669527594188b502bd92d811c9c44fdd7c7b69468f314ac30860bf51b26fbc8b6bf985df2cfb215fbd5f53ce0a6c00781f4d987f99fb420a8e34fa7544f87a7dc67f94418659c747bb984124086253eb86e0efc15214550429a7f4d13d8ab4bfe908794e0ceb41c5753b19792e8ad4f108f26eb990baea0d88e930c3bb245371905354c2a192bb21483c2f5033c05073e2bfaa65c8e7c0eee1d22f7363b363cd698b781cd7241db25eb2fe43f480ea8363a3c680869ca143f531d83cee2b4b6e9a56196358a4db22839aa7332c9be2acfbb5f0e710cf3c8b7eb30a16bc126d1a3dc2e29bdc54c830b070acddf2bbb2932a571125f12a5fe70282f21772bfa1a05967a04db4a17009ceab8b4ee7075c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 4e6394953d0761d4db461cdc976124f729800f191c1b308f663344db610b8e790521758688bff16f1f631d0f3023e5aec3d750db63fd4bbccb2798d1050beb31c16151253dbdcd7363a2c2c11398134965831cb076c0dda88d3898714969b0a55f944956d8f792a0d7074fcd6899675843e91cc6ea2f1372e3aecba67a4b598c4aa7092496070c94a0a1a289fcb6a0f19ae54ee2d634014064d76f44d092b2dc6da115b21b811faba0168722a5be99965527ac6c5992d2f8428319f72fed15451b89fc5b06710baf912bbdd0cee7e2f0f2818599bc99dc8df17cd5c410911d0277aa956f330f3cf062c8388e3d35136049fc9ea624286e5febc37ec9802aef1ab20b28da9602b88eac75b6d055dbc4363fd4d937e69a87931ba728101f70c8ce12ef9e1c1cd47ccaed88db0a95b40d8c1da61cacd0b31f723a57d908b8577259924ce2c457db888c302cfc9f2867dfa6b86dcc9250e69e3b392cf3057c06e0090d511ece16e3194abaf26a2ac9660ff6e0237d8ed4479b0740f77864138673aa\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 81b9ea5c0cbcc4b7f183deae85cf3d04d8c9a35cca7b9502238d1d94c05563bcfc6e3cd27320bccf3fabe737195bebf4d8770ddb232aa0e25fe41bb055d36dc328b2876e4b7842ad4499f0e735ebb283e7779f6b7c66cc71b62811f5c88ea3408939706ab48ba6fdd4359f18e8a6e0485de9bcbcda3654e7964cd8f243d3afd3cda79b498e6a10fda660029207f4b185f8ca73b1ae46c3dd3edd2097ddb6ca0396f94ce626448ee9325c91fab3e550bcc72c7a36cd4161cdfa65b9fba398e153ef1b75e06a2929a86a6e87f266b50d8f513699dc8663a7c6b1c4c9872a63fc3218cec37029c07a9b701d615bf8ef0da3361af097184c5f1a3feb4ca3785e235b83c0b494ac1e36b514fe5c343561136d14bd110117604fe8a99f210325afb5a406a10c99e6347b29dc6ea5b1902b7cca6fe6715f3b291e07850a12327d985565715266f723249cb595941f43b946ce7822edd05797eb1bccb9ade43248f22df4e38107ce9d92718cb795e93db7d1bf3203c8f64c804669159b58ecece44c6f2e\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 5a49100a3e147a880407ba68183f96a904529cf14377eef22775c95ae7d3166b73c3fd5dc259256858424ee97812b1dfa159c25b6de84831d8227b153c4624904ddd8c84bb1fcfde36bd61319120a7cb0c916dc22369b2243505d5fcb2d466462dabee4b8495ac8c186a38bb4065fab4e483c947cf72c27ad542ce7d32f689c34f6d0873aeff48a87eb89efddbcc1a5f51264ba246f10dceb2091823d3215f4928a8b7f3ce462e227cc5726834b6e86a503506497cbe8d6bf04a5b4085ddeb04816654829ff24cb8978551e92ebf588f3e60006b444d7b39efc6d18e42be234c37fc25ee2a1c02e1efaab917de7c6d12b05bd599adc92af582e7fb522c884d0cece7f912d2e69812e52aadf0748a98aeab06f391381f4518f20d029360b764faaa3aa1e69a9c05cc59e29cc663119ce74e74ce1efdfa565cd0a67751a070b4a0def04f79c7da5a7340123d00de354bffac3cbcf85e7309336977c2c4f84d528a123bf1ce7fcafc49020a8d51c48ded174b9eb468928f5fe94ea6dbbc83c68d40\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = b4a8e5d8f2cab3e3b659b1964fb9f634ff7ea5de5a447fc7c6ceeeba8af5efd0f136fb79e09b734a3978b655e74a0156a3bece09c00b578d894b81331770a3e95691335656eaf1c260e4e9dc67367265d6e870b37d0685b16762062166e10f0c0ec9fa34935d0943b0f5d4c5b1d88422e21f9e3846f854a2e725f22b53a778e65fdaf32ad88943b2baae31209552085f82f27a01caea2fdf471c08643d806463c61ffce92d0c1458518fc100fda777f769b33750aa84d1d4e206282f8ca944f151ef9a5061561e96453d7bcc9927eabc21a04c84ce1e0e6a88113132eee3a7d7baaaf33db8d1818e520e202275c5df2d3e749c3acc43326964a6663eb4ff856bf2291194e584919e872a31e1f040a59dcdfc88300a816a0ba27616919df4fc97d16de1fb0c6150cda6c329f643b036d99736b0424b6676ce0cc4d971aa6c5ad91a421cd369b35c95a38623fd99dbad13beaca3bfae5f9315a8a788f111608b5b856f4313ca6d19cc3172bffc6cccc28682a09d0ff74fd16a58234151c0224da9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = a985e8779a4a34ab75873210d0c8897af9381c83887cff7fad9fe60f601801620747ec0a2c1f5acf6560a751216d204acdbcfe2d5bc235b84c17e903ffc96897d5df86031aeb1e40320502be3e18daf723c2577331e03c216e1febd35b30be8a419d5ac4e78674c93bf244e2cd8e57a4774d0b8763b9de21aa1e74b0afc3b423be7c52f32595934c993c88c32c2b0a66e5180c96ef478ea2be4262c840d3e2dfaf86b9684e7bdbf3b31b0513e3e48322dfed125f2d0ce186e58a321cec902cf01a7253b77069576594488b665facb1ba33671ce26cab40dd679f3817607719fa0669c6a593f30de1fafe264156cf48dcbfb8a5581f6a9a8401a749983b43cd90bcea0f6b690b46b2a00505e112d0bc0fd080c453085319b5d31dbbf46a234ac0f0eefa947f002daf872681ce731b27714e37fa3ca743cfd3060935affb356be4ce827e27ad36df8ff4b4fd72bbc0076d2277fd643ca0a39233a16fa545a4d84f1217ecf07a2ee57298cdb6de88f797116f80de8f446930045119e52fbc7840c0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 3a567bb387312c94a0b8637807f86728e6e54ff473ee541ffdb4131cb5c55a60c6044a53a813672e4e5f90d5779dc21f824587a3618d4996449b2949720a93afb50520947d3b4a7391e2928acadf5fbb0bf87e48798e018f133b12276891e49007ebb27e49c858818e242dfea715f575da026a4f039840ddcba0bb330fe916739d095ecb76829091ad29e33a0b58e23f3e1c80a9aa4be2bc6e21eb1e7dd3061a737d3b460a5c4cbe6264b506d4f424bd0906a3977e3ebea5549825c889dcbb601c111f392f690b8bcf4b9935895e23c0e39672391f5e12e873d393ba19b00922d7f188def9a193789a80514abff02565376577c073a3ebaaf216d535f50f6a602ce038216ce7f1d1f7e9964570d8cd2b3821b11339446ebac43ec87bfb712a634089daf4db979d50d1a93e8badc40395fd8e8d680206606b8a1e78fa238f09ab3eed6ba87ee54ddd3a3bbdfc5c036fc9aedb207c6ab9e9ee594ca06da39297d8528fbdadaf80005162964bd4e0168d5c92d8ae5b05398d66c032ab5ae0eaebd7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = a0f2388c5bc52093c31189674c410b4eabbe1ffd0e0a902dfe0b4fc7daecf29148703ca5906bd860065da69e5e7dead22fe28bbb7f3bf71d696174a900c115ab7a98848a08467643aca3a056ff58ef4b4515761b0e9452a587c4e7a0330faf97f657cf925e5bb0a395f7a798a715f41b70aa2d3dbe411de02c6ba40831f0b636e030a51e66cf7237030ae9569bab4cd8759baf22325f88c11cbac0b0e7b87dbe01669fdb5862101679e28774aa415df8a92e45b1ab74e1d85a95125163aa74c91da4a774ba539c7e1ac945c20df5ae3e31ec55609883f83a75fd3bf70bc4e4dc18b0a6e77d678d19c82400c698a0c34e3e77e86de8f51daf306f102a22cb", + "a918b6ac435a045e89df00a9c84689e29b1eb466ad2c96c7326073afe08d47490230150c9b5d8ec84b352c6a33a896a26bc0f91e49fda6412bdd8a0e7c9b7f8beead5070a494af8b5b4a449b976b7f07c1b5648ac303e7b60adf3e53bd98642642f1041694986f214882a06f48db4d118f2b91c05578c0e7665c128cc6b4685b7faf\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5244\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 00005120b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac346fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 5120b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac346fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 20b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac346fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen132 = 33222; + +static const char *kData132[] = { + "# Imported from Wycheproof's rsa_oaep_3072_sha512_mgf1sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 1\nct = cb9ba45404396101c1211be70415603708e1051b0debfa045b75ab936fe7c5d4e8c67704fd2ee046af8679e0bcf3d266ce67b801c90b581a3f6909f56c6fef023f0e2c4428227a51362d3f50ca65a79edb3faf899cf71bf99e244dc817fb4c2bce848216f0de57a1747fb1d4f0310e59f7ae0a656376690125dd10657357de11b5e7e5588af7083abc6018013ddc43d21c2af42c9c302f008064630a27ab014d6dbf48350c8758d821e74c45efd168ac37f366b413024ebbb0c9624e6a93d4c02d1f2b050f75de4b6a74c701386a6c330767af6bf03e8ccd69ce6540b471c01e6fe20852a10f198e4e0d29469b1b01d5ebff85ece159355083829e4c2935f16cd2f409199f799f250c8f1306da1614d0aa15578a58f399a17223c7618242cab31fe32a2317cf7babbb30b3885d5c07c4b89e91ddcb37f449cb3e2faca585d04beba9dce34face1167f5e4aaaa0509867716e3da0ff81b8a481b3f9cda725f01441d7d3d7ae24a5bcb373ff85e608ee7a49750a0d7d185a61082924b2343e18cd\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nct = ad215dc277e269310c54925f735d9bd6e68b828c8a9adcad792a567fa89f75bfd9512c69caab0539f3a2d4ad7caa73e6c1166d94645308d09f98166547beffa48940bba67d08391d8ce831ab3e819b1113eff18d02a83d7f07f1db2ad63cc53dccf2c9a8d8cd42f3054cbe1d223029364877c61d2a58d4c16929eb2c8b21fa1d09797a558d61f00f6b2a4b67eb794dc9730421bf52e073cca7bd083b35562d21b6527a525662defa0db2c9fb0fb3d8122a85128839e68fab7224756fe7cfde6d86cc7bc3c6665d3ecc52ad0ee25767d5f1f1815e56c79e1ae089a4278bd8c34fb397c1029b4315573391064c02f139e6a672b8a9f50678419ab6d9fc42fbcb69b71dd644ceb7968d6b0edea5f72d9d05da3d7b36cac7de135d45edf45834b47f7b2b91fe89ec6c3f2863f7454017091cf6622b02447a0f8ea6a8668c61a55f8654c4c8f60ca13639f125f2a3a46bd82d2bb6bc66511ab7050433cee0d6fa98946d18947d5649b380f795fdc8f0f13b663f518fad69c65601a51d170f7013204b\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 487ea78c9548871a93a0b856306f349ab51bbd30b3e6db0c47cfc965774cb0532575333f8584dddcb13f24ce98ff4a33d63b5b1898b3a8d9babc0ea906cf7d9ae047284f7a36dbc350d7affd57030196afdd419750f1c5f2fc55622e442e6203d58a725c7b6e59205baad02c86e44447caea8e88d38963389541a86933cc64c1d8a3b70c4870b0f75146de372de834988a5f852235926d7f3893c83dfbb78a1a8cb4d9a4d516de110d315ada9be71431d3e6b03681d4d7f665987000a72a1b138476579aae7058f7d4151f058410d93bdc197009b839906ea6254e90c1a49327ebf818dab3517edc39761d3f84be8f8bdc8b35541c6b6b30bf8cfd20fbd9a09713c470c9ebe0622ddd8b2471f9b0298cc77b51e56ac2dbf9209fc5a95c066092deebeb7ebec0bda02f89904ccad29ecdc1d263a29930947b90a6ab83dfaa657871be533d55231224ba4e866ee9a3e352f501372d75090b5236d39b62ee6c84c792dbb253dd1f9fceb868d460fd76847d9c450b1ee5f280fdb0da832bc5627957\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = cc6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8e", + "c65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 2034cef8731f5ddf7533380860b7426ba0a7ba97199ba332efb7422578d346ede8a41c8c4488d52cf2559706f1a677edbaa50c5783c00301cd41815e46c588e2e8657ced9a91f1b2e61d51d5e2384b59b90c78c8d5607076130926bf198e0968b239fd8d4451dad125467ab895eb3ed450e6abb61d6217c65ba2cd2176e2532594b5a09bba689ea1562d04527de919d47c3af5c2c24698e572f3ea289f5691afa164970daed05e83c051e39a99240a4fbd9c2046ae742cd1035aaf0d0c20b5ce1d42a08f9175d5ca30b6f4a7345b4820784c148a68f92be82f6e38638c1f8ecf8f07df3827f9fdc8469049d157202f31d98f06563f737ea3df3764f4644d9f9185cb2739c8aaac86e9b39fead8e03818550a25997c31674d5e14cc4c13790e409e278d778171c5462f689b0ec344f9a920a312ae9351c7d51ac7ca7783038b3d5e59d79c4d89ed4d36152d2a1baff8be23ae1eeebf6af20eaf093604cbe79fb93b61478d3a1bea20e1c6c60d63cd3e09920f521e3eb3e40fc21fe46103f3194d\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 7929db7a0ef0e385abca461e86013785f72d60fa4cf1c97b1a16e7b501235701aff06e71d981ff75392a27a266afcc5bebef5b1dc09ce60ad97b1722baf70b7be33b09de2f203f92a527a123e929b038428de471fb0edcb8e64741a1484ad5d2d5497f91aec6d87e5ca95fdea8962b61362bca2d0a4742f8666f1b067da8db4fa24cd721440d6582750498c9fd319d5ae5c27c9b70f1811d90b673d0529706d085fc78d73f933845278e36e96c48194f1494a1b4d891f249e8633c03d9c564534952e98c059dbe01294506d9238816215028d6414b954467650820e5db42b7701adb0d694bf2c00b42e89b80839b9f35b4e23ea70e55e514c50e9ec197423ad28a5dd4ece946345bd6ba154c122ba356320c2c1cf0ab4e0c713db0c8296ff900a078ed5f0ed1802d7f1f92c9305c245471d66820d4230aac6cf9a4311f7293e1d93a5dfd529dadc6699aef4c2ed53bcdbcbe8deafe5f9b035a6aaaf9b2d8eb23dac290f828bf1886136c79fdc915e21e06133f24e63876514abc29d25c146fff\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 5ed5766e97ba0017cc6ef508702d74049112f588e8930c3954b43c7398650fb1bfb94cdf75ddcfad8b50c59ed05bf8c32291e8b804f49fd5faef0e39b922e14ab4186c575cbee9cd2677b58cd890df072669c3c26845d7c89420cbea27d8c1ea43c2041a95852c85056e1d22c0cc9ec563d937fcb1d6d024f3a1a2943f77354885b3fdcdf8945f7b41e1f5a3c7cace9bfd2bb845f6cfee05f8f4680d1bf2b9d6510a6d2093a12214396ff02bdfeaee4b21af5d52244a3cf6eeffba75e946b83b5784b3bd98e5e585032fc88a1abdb12cd30c7f412c72d2e4957681f77e4157760c067a9312df871c972de688a839bb155c9de29eacd38ebea064f53f2599d08d6014c0f77f3ae121a4508c30eb0c8dd49c4c0ef31cacc3b1dcb2240050db157299260e9fc52dbfb530af6f759dba3764e4eeaed032e564141fc102399433456b91a3df2186ae9032957276e691c095ddaeef7142cfaf5bc86915c27461c136c1381a800bc3322c2dbdbfa83374922d607720272c8f955a9a10814c4bb9587e5a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = c3aca8106f74c7733cd1bfa74419a2cf802f12293693c1a207158d52bfb728bebdea14a885fd52ea5600f82020fef8fa23f9078fb9ee34d82eed4c76b1312e7f50d0165792a938d264331da446b09533a0084e7398718c9575b66a07b7cdc85293695f291fc1ecbba9e0147320a557fd015a1339ee323d6706af18a08654564c49d2150f5d182a44f12e5d02b1839771b2048dd04c116f961e4af1632043bbade7e993b416c45c61e4a742bada5ad14dadc263431bd542050f40f4db8a95dfd24db22e049477f4ca93375e1d19513d64ecda0e9da1166da426a0c8614524471d72d413f2f6822843154959239b134033c876b0b68cec3a5eac05d5f179f70305f1f2ec7ef9ed17e79598b3d2fc148f9aea95774918aa6be14aad89ff5d612b13fedc0937bd1ab01f05d43b5f7c131086c63f5430742a347cdcecb435912d226ddde31250c3c0ed6d3ac9920873c1e73970a9d44061dcf6e0acf1a2935bcc48e2fb76ef74bb5101d0bb1a02fbf9a55ec75e122fa4dbe210836873099a1f91af20\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 4ee617bce690f21a6cd1760d8e7c41ec1c4bf0de2bfc4aa85002c278eeb63b568118e4ea28cf795a673965cbaecf1af5e4943b95c0fd20604911477492950fb99fbda4d5c0ecb11d954c2bc0d8522f5ee7365427d59143b261d6138aa2f27ee1a60d64f1f491b9ba1adec8d09f242ee0116e201a54ba968ffdf39edc3b314e8139ea8efca06185840ae9a3996ff5ff3c41add6c4dd6ecc3943aa60254859db786a0f0500f644e3d43e348b993439cd021ff0b92d05f327d6bc3c11ebb2f8c1812dc460d4ecebb358eee01fde79aef408a6b51694a2a2f7baf69589f4ed152026303290d9178c9d580421996c89e94e14ce91de0686d70a37241e48e439bad3371aa900d0d6142867ec2177ac21d912eacc5e2413b78b0adad7bdd0f72a5715c69f6223ac7ce99fdc20fbc7c603371c328eaee80f94f079b935713d38d83f18dc810dfdef5f1221ff8a24abd4a0de3e5d3f993bd5992280b06bab17ec6e36b27b7b08522f8bea3390590832da475e85ad4b898045930855be48bf2d56603b7485\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 5e8f89e2720d8edfa1a943223d6445bef51e330036fe6efb07289dc1388098aade647cdc9b363b4108a900611a1abdbe53415599192cdd5c39b4e467073183f4732e06a58fd43dd48d378495b2b4109d62042edecdcc0a93df468a0f2f96a4957fc744cdcb891484d7a1db15a6e2da980a91942814c5a9910dca32fbd27e2fcf862756a50658c8531d12ae652d088b15b674dd4bd895e8cad8d81b29c78eb7cdcd29737c8e532fc0c8128222120dd0a4da19d00b603f6cad9d6dd559230e237197269aa75f4ca4f361e418493aabbcb0e55bb3aa114c5777de94e53abedd9e358b2bad3fab666693ad525b1970b97944578ea65a15e31bb1721776bd9b91ac9f558de32ea498948d75d7a7a9ea610bced38be4dad797dd5651eab3b972915ce41aefcd28b641a4563b71b491c2322af7b06dc3f6b6e70ee40f25b6731a5f34ef7726cbf19c65b26d3c4f0a673753c6bc538841b6bd6efb89fe76793ef7859f6866e264baad2a7e1b1c3905c04e1ea8632aefe5c158cb560eba262aa7a3a6b143\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 4d0da40b2f6c6ec3b8de97593a591681c69853847f9deaba86baaa69b42bfc3d8fdac5fbb3faaa7a5edef6e7ca0f25ae169c6545f26c908a1e3bfe8f0a385c584cf3da930acea13076d475e9b428ef9758113d3d8a0e23eb2dcbccbb1ca0c9b384aa760d17a5764a7c4c709cbfa9cef0ba5672cba0deb198577e3abafb2176781956d0c4d39632fd30f778b8da3da16eabf3caece2a325926dcd25abb0bf743b9ee06a3b4496d82489613b0a720353b017e72c3c43eda97c6444d8f2edee7a444916187129bc0e9bc20e457c0946c767d3b32866655742e891490ee996a3b2106cc024c5da94ac89dac17fbf0c97a95541f8283510411868863e68d9efb7ae4493246b409441656ad0eecd3f0d84c7fb16a593cf0e3b5ce01c142da30d50e42f58c7bdede2dc350313c480a644802fa10fe117c98a92f5f8ce6c9c4cf3ac0b01ffa629dda82c217171a4723db2ce751d4a359dc53dd4b398e7882a8c88c9b591856189a9f9afa349f02573a9f07c6cb96eb41cbaebe69dd82ea7d9b860b841b5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = a5f338d231cde9f20f87f69ab54147107fab298cd79df6635d3ab882e8682d0ce5bdad698bcdf0260b11ba11e5db3e857490f9ffcfe8fc98b8c89f09903f984eebea2ed74c73ac578bff3af99d4fbc33587d91518a948549739b0ffab4ea6a3fef5726eaf3ce77cefbe4fb001386101027d78b04ee5f23b6a7b0b5ffa9b473e7a86d076223fbaefd1f5ec030b5fb36aab0453a3b51440dd7709b78c0395e3b43ea873afa61e2e391abf0ff567d934c61d87f15095143bf660b73e2df1be6734064445154593fbd304f80a9ff730a66f54078142ad5c49e77b55ad5de5d974ae09d73f4fb506099ff06a226de67d55665115eee485372c19e599197aa561909804462dc0ee6d233da9c30fa7687d4f0a0f764646697bb93d2cd8cb6cd86cb3143b043f54448e032e8790e856604977e23088b69a57d4677e073fac808c8f65240f7628d09e0bc74bf7d6fe0ab2f7378808f082219edbdc1c1d456e4bc7dbd8508415917ec0d5f5ea10242368b8fb75cfb28975110208788b5696e34589c8a48d4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 715a8b585a2759b9fbebcb1683dd7d1fe956abce7255358e05cb19547a92083c2b5abe5c429c2a5527bd8193a4d05a0a8d161fe71ba612cc8aa3270a5b8186ca3f02ad716d78b7702c20f7bd17ba01748d1b51e52b6cb6561c13", + "e84ccb9aad4f4c241a951f999d4b7b60c14021619951204e046d663a011eb9cd9bdf96bb2c43d6f8bc97bba1b63845db59268a3ec918e198448050332a540fa49e39796220fe2a97999160f564baecd0ebc4be5030a2016961f9f352d7fb04ae9d3218261a510614bcdcf33ec274b31cfd2d4c9462803c825e7dbb1a3b2618fd5067bf676c5fbb2f6dfee7068e84d4de68f840f97faaf880b8596d8847141ebd59eb9810d18cd95ab6a8b3bc87ba2e6bb2ae178a0e5043497b5cbce86508d96991c5f3d78ea3cd3a77be12bff0a0ebd7a3cd03b9bcbf7faecdad6a375e55569ac9ec02c9a319078d79ed2ec273078ef328b54579c0661ed64dd94883eede29818455b37b271c67b7bb303e743d6a080076bc712a2f22b36bf85ea242f2b8697b0b265102c557\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = b65f42ecb2fdbb8c231e201751bcef6779d0d7c755c19d5c82824ba34a5657a6187dea33ed2a7cb91fc1e5a3e417d806be4e626c555750bca3b45d0441865f0be6a52f5754fa871ffd1fd58b00f74e89eb60518330b21b78ed6c79fe38b8ff4d0f7ac49a152d1c54189e2eed31eb6211601b8b41b9a90e5e3d34e537b0af684133780bbaa4ae97c6dea9a75ec01cd00d2c43ac2c7d8deef21cd6c6382e2935ea1a0e350156dca5e78ba10e88891a5c0978859ac2645f90d5ac32eaf791b34a0c7bde0ce53572d2258ab7e5a9058624892d5e680eff78aa4232b579f94acad6081a7fa8330e8d3339afc4c57a48bd39279a54900e755f741aba2d5663e5efb738b38c72af33c13be9e996aa8c6df839f08af6a4961bcded7eed2b5a67a81c112095f1da9a3e6aa6e149715bb69a265dfb1fba8ea52bf7c8309f613cc183cf53890fc51e4c5f3d01336d67ebb66a9cb0231bdb1f99b033e9dd361262aa6c1dddcaccaaaa7b6a3e94c2b893304404c6be98cf20ef488f64b7540e4232d05b2ebe0c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = a0119ccf48d11ea14d4dd8a57d954cccb913fabc353727e883b53d6fed8dcc48ed7cbf98e3703c740df9bbecd0168b42e699c48841c0a964b40630f28076069a3363bb14c38e830712376d9beeb719d2620eab87e99ca2897ae1fbd4251f828db85c0c76a4554a39b2e14150b1d3020850dce02ba6e7619daa5e95598d50d9fb9bbb7ad57d60a4811d50f432845df09da1f01744138d10ebafe8951e111aa93b24588c803b37b12b2e572c2b46d13e654954828585672706a001dc4777c9b4b937d92a761ea3fce68c14379af6a8a2700cc20f25e47a0e4bfa85e2082dbb569522853a5498d539faabb90c479fc95fecf1ffcd3d03f9283b806bc6ab6b7310e72be66959082d631d138221c4cd81c46162649b25e46f9fe864b4394f8afede0bb4c1e148ffd62202141640555283eb683a3d3b1fa0a62d8380fdecf44d9050e06bac6a24fcfef1e2b04d952726ac9cfbd67ae3090ae90e16379a96bc7731a38401ea68365ea413ac757de058730259473fe79fe30e1b50e4ae66730e489a61e7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 21f59c055849cccb6dd90d2aacac59f987c1dd44f560c7137cc762f975a7161edc11503a838e4ed98cd8c630b20a4c43bf191e26d4d4f19b4e714d92cc45303c14209989cf10f9782d96f31ed8d7bab24ba02fc114d8dbd4324bd5b198565bab012bb7fdbe6754ce6b54666484aeb42952b055fa69601a16cb86a20652bd091859904bee412c53759137e811dce8eba60390b011b123ae6c1d6d76c33acd26b54eea627662cf1c6887f8c5b62121064097bcd69eac2b2e669fe8e018ec3fff888396075059ebc0289c8925538861246b2606e878b4d93c4c33c3bbbe21cf5c861f5bdcc9121cec2d0c4dbe3a95976a658c8bd8ed7579c1c6eec248317ae3d3c73e5104d377ed5634c16bf49e65879db350bcf5988b99ca124c3f5c4ef52b7f170f5c48f139151adf8d39dc1013d9a152321fc5784e1e81d3ef1cdab8fcd83623453fe4ef7b825b1baecc5817a13b56197e0c0c35463f8f8d8bf2a1068b8555aeb0e099ff5c9b86aeb6c495f6ebe6d0d6d44ace2ef80ec9fb647954a9137b9cc6\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 100e00b23d1058916a2d99f5a1285efad8c62b8ce779a558d9256ac36757a024bc6f72aeb307db6923d7407ccb91d1388a525354373619139eab0cdb413ebcf50b82f19184b2187eddc19b2c0db25f4145b35111111b98b109939155f008552ac863a7bfe1dca6bed2c47cebf48e29328c475c9c34499b770ff42f94878cbfb29e6254f89a4d49f5b886d355834c3eab27d65013a5928e6099fe125e61b8300e68fcad66e8413404d6e0eca34a8701c2575089955cc13fe0c0b3e7fd6a4bd296c88fcbc71c07bf7278a410b90fb113bdb26db1738b06b5d0b559cbab838d4567754a7154e17eb7cc4506d47ec99640c51f1d0134da884335a3d982078a5aea7543ad3a8db51db9bf771656105982e0a85b30ff080ad7153656d52ab2a738b5e8beace9a74d9492cdbf079a8293b52c8284acb1eca6ae8e0b47b2d699d069536b62312ede061a8dcf651d3eb4286ed22c6da22418a5856cded4866f74589b88ff9a3afa0479ad7964cd567953510df300cf3a3443e04495cc0fb02a8ed9c352e5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 8778373fedd6de294c9f7dd84acf66211883066ecd53d860d53031dc51e303841f14dceb8999be392a6ccd19b899dca89764db04c2308f241090b0e09bbfb60c82e460757f6da6aacdda90f1a853bac858100d701fdf37997605324cdd7cda6260dbc2fc40ffb17973d1d82715d59055f8d55c74c93c9d7dcab167e25d8d26e0d98b6a02e5087faf20b50e429fa134aaddd0213e938f6f6c03ee89c413991163746a7df66212ff7b03de95c7be90a0888f8791e3b72c8f11e310c291c3f316425ac2d418baf46aa79a1ecca245e0fdb92a0f4e99eaa8992bb0f5973f080f2c72b7919055e88026012d86e2faa008e24545c38470b24dffe84f12577a14311306a9293ff98e3c6c42cac10b913d912e5060651cc73dcc015707c429c7bc669204d78335babfcfc614d4019fb45be0aaf7ba50b7947bba652a2b1984d876ecdad54fea8ce3d1524e812fb2519c17db82f300cc3d7c163c8653b46ef233c1678dc19dd75e93d0db22648147fe17ffd841f38177033b0183ec70d3a060ae69a71f81\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 66f53d3aed293fc5a20d24b3a7a2774e12b69115e277894670046e3fe076d7ac74b830765d3d8b12b3979ead0d87ad3a0a8b3e677688f7b8cbf5e7ef7ed5a336ea144667a507be46cd3d9145c5ac552ebae558ee95d4e17c6e9e5d49105777dc1ddac7969318d03678e2afae41e265c61704b7f61cc3306b0ead4d0d9e36ffd08164f93422a1e51769b0c8478c9975e1b2244544252eec743da10d8eca2cf901a3052904e898d5018c0ea9923bb6fb8a405cecadd81a3f858e34c87c069897729186710de5bac42a6c7a19a3f7b310ea5dea8bba7c594ddd2cb5309703baf64cda2295157f8530dc5a46de57d3ea7461df8af53474b15b54644d6e724cf6684b72dbabd5cea129c80a1dd67f7b636b55ba6980fc123859e9a702df29b2fc3959ecdf9269246c4cdc05bd06dbb9bcdff693ca4d04170118e7fdf43b163831f0f6bb9828faa316eaf92a4428efed7b2f22efd93761593be714e9a85aa7b690472525bb0b2a28712f5f524ec56e1d0515ec7cc190662ed2be402c824396f7de194c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 6ff0c91199b45d05ff630f4b8bb84ec1eb03dc229b51ac817c210f6034e8f27e8623bfc1f8cb5e597fe687d075f289ad76cb2d1e6ccbd7aaf7812e49e2408c74b4b8869d4bc86db5c2d6f62d2b6c1aaffa76d3059809ef3945e7fad49dd198e132f2681c4148eadc808231b6dbb7a9a8e5b5361f23d602c0873ef6751cd353f10d1f922a20982d60d29bb7eb57c86d3337bc8f2bafc28f830e16b4684f7b6f51e0efc3cfbabdf76b08cb8b5770e9f709331053794e35e159ecfe46455bb0994b38994fe6f405b6a88b7f5912c409f9781767871b2ba18f5e542c964450a5dac4c82212945e968878e43f4698500dd10621f31eaf5ccb04551d6ed36752f110fd5cf3ef72b2c3369db93f6480b3cb01bef799007820b1f4aa34354ffeb4f7c8ffdc90e6d19d1744f27516d67d1eac69f139b5b753497a599e977f459081460a35c75d986383ee486810f1c6eab1836f7ab4b6cbd427fcb206c05d6e46c84fed94d065c22ca732eb88c02550dd72259aaf4afcf8da2eb419e81d4f8a8e914e903d\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 5a8eb1da635aaf6e94012e3d61f9c7d016c657b812d9d95c50f4ec073c662392c4ba98b5d9c93bf5fab48d724ea9a147b5b84ad6e169033f32318c6fef89b2733c9040aab0862fb4b049f560fe1b448b987d203a40f3f46cceeab0ed9589df97e6cd928fffc5d20d64a10b31f54bcb269f1522f04762b4935feb0b02ce5d9a8a0f99910a4fe237b00b3f48e44e04ee9f7fcc06252b7c08dfbab4fd27e47604f4022d3ca0aba753b9ba9b9defd3496cb0c752a2a4cd619755fd7693ee7116341f8b9575d13b4f821759055225d0fe338659c02eae9c528cfa937a1d58efd0463773a29e9b34ad3647487267df59b324f6b8e73ce0be930c5f163d43df88fdb54e761bcfc12100362a17c507adef60e2be506df242e81161144be1e4a29a3426436c0a7d0e574f9468acc5af42981d5cdf5775e2b7d4e02121398b6dcb2d590417c06f6daee42199ffb4a51b0de715676d3f9779f1ec051219057c75208ddaf3b4530fc0360d389d7f95fceebb0123e0fa25c5c7c7f4f8ff9d88a928d6904ef4b1\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 9fa960f4d424a2fd23f7cd07dc40f43fc0490862ae8fbe2399a96ac7f9931e2f30421692afeddbf00fa86731e6e6724f428a479b49af5af07119856a913fc9211c722a6d25791111650b71997c40a7c8b74b4d0efef376806099b634388b93da0cc5e3b2678c5037d399fb7770546ce572852b1f4461ea415c7dd846b5611fbff3a492203d16b18b476f48b4ec0c3d900054607843bc23dd2d8e4889ae2871774fd520c510b48fb25dd15ca9f09c4cad7adf5614813506511473110780457194d41357e2ebcff9e3f4819e70fb9ba71d9eba053946beb75147f47e5d6fb1ff8c560010c32fd708025f5ac3f201d9853184f7997ebe8ae6526f7c7f7d", + "abbbf94ceec56e61528b321e5b9d6255b90f205d9ee6a1f86d52b97cef1764fdc42ed14c22675111650e2237be27ec2d1e9ff2a70ac5832ac5a6db325f3fda757dcdec0fc662803cc76b18537c03465fa51cc15c395369001bbc615334f3aa161304b6ec18cdc2fcc44873e22bd833fafcbfac7a74f30c44aae4a176f48f8686002a6d10\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5244\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 0000cc6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8ec65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee0\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = cc6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8ec65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee00000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8ec65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee0\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# em represents a small integer\nct = 26a03bdf11a01ee4ba476d721c110840d093f38ed49f406c38f1c46fc4735a29bc7deaa3336aea98f6cfde4ec8ed305b91a194a23fe73112768080aba2c9e152f6ad8fbb8401546fac21ff696fb1f52268957cfd591fab64bc48c3c87ae5b3eb871beb669e15e881c0a9920ee5f401910d3415850fe2267f5ed141ea6e69d01cde65fb0a8cc063c33c0d333b6c90e7838f97cafb7a8aacb14b499c534a6af12934ee0c7585bef97a1ebf74aff278664aad35138fca85f360ba259d47542be5f97733b8f5e7a39bee1772cb8038d08acf56d3e8f613ee48ef147d6f0c1f57b3c08cc68b1c8f106402baa6834d460efdb8cc1dcb54f79f2928f4509e81de32d9839f9a022f47a83d8616f482c31eaeab84318f898763de7048f507a517900666549cc093b3c8f4d68c84fb33190e2b413134061e20ff51b8da5545aa991f89a0f612b5b2e74b7ad7facc491c7bbce41799ab70be4bf96a0ec76017399662ef8a6d8b3d8569ca86b2952ca3572777efe99724f85fa0375b29bbfff7380c36e4c533\nlabel = 55aa28091a62698acb80855f292ce725f088dc8fe0045e9e49375aa663055d72353a67087466c68306ab0135004b7cec41661da3db65188b9af52b255bcc888300000000\nmsg = 354f2c7d123c5bd8675e6f05c7a2d2a68f9002439be237430993ea325858e6a3690cc9345014539db4dffbe387995de694ff13c942a4d2634caa52b8451d2b04815d9a764cd9c7576943b559b7639ed8c0b604c2e59e65af105988c71dc91c6a0970c8917b0e00d3029bebf66129d4dc60b03a846decc6bb2cba9c45f6b2eefab79a9df5bfc01d93d5aa6bfef888d7334fcd0d2cd41f7b3e1c564dcdd2eefcb8819a66fd703cbbe9a4d7fdede75fc8578b94f8ae0009bd188f8c7469d6588ef8f240fabc1ddb0174783967106d2b6aaedbc15c4ece1cf7e12ba1d14415d7261d6d56efe0bc93f6838569504a131a4e126124d933bb63f6df189145caadf7\nresult = valid\nflags = Constructed\n\n# tcId = 31\n# em has a large hamming weight\nct = c63dfab03faf7d5933506b3a7ead6c6cb9bebf25ff4afc5693428e988bef9fb508e9d50f58f8e76f26121eb98f036c15d2538f6c8d7e707aff411d24b9ec3fc5ebe0fe04de2f13c212f674585dd157f5609b9ec156a04642e1b087b6b3d2a7015324c5c3986fb8a32482ca52821c033fe499e41aad19a55d934d2b179f6c89bf3b34b20f2fb616356b13b4aa8041089d9ba831f0868a66175609f4e3cf067289ca512b0444ee3a5761b5b95ee79151eb429e9fe2cf946c8dd86d5862ddc33997eefea8e7912a340f3d1e2d5a69eb32ec2bc82f74c4e68ba8c565dad2e9c71b81325d76a3fa600120cfe96613ae89a4251200df79ab92b1f04d9ec34f61f4bc71f05fe27b972c91be268d1e52dc46d85911212b9ecf42177f3be164fc99d11b878f1b85a508f13f583b4a0b7cfae186c421b34a997e31c594b7370503830ef7fdd8b50198def928a1075594a6e0b418e5361cb186fc3bd4ba01720081e21c9646aeecc0882c847871c894562508ce3320aec2f9b04c5b25975c9cf5af7364a3e7\nlabel = 5360d4b1eaf5a46e6f6a6ed03c0d405e7ed7fc2cecac86bf3cb27348f9d66a7bdca863e055ec1b6a5b20c351d63dfbc7eb599589d69a46ed7eafcd2ec117547b00000000\nmsg = 5265a56c99e71128fdcde31cd5918fd7e964b9f1d216bc9c4c10d6ddd3f63b65f0d3041f061c6eaa6f60407788d", + "77e12b4e7b3b2e3751d2f1774d626e83d195c5b4d23e3fcb5f50eaf4252d720737b2af5a4e1928dcb7fc383193dfb13ffc6cafb3b609ebf0395508fa5124ed27207bef82e59dde2251dbbbd44405f69d771ffe54d269d417c42979dc014c1579ee58895475eb014ebfda48971ef3a08a3dc4f97b9b996ccf293d7b8f40055ed842eaece6d7fc4c76cb342914fe6bf89beef8ef463a048ec18695578ba514e5f6dd5813c58c7acc6f6eb02258dc3adcded16bc7cd3307e73445dad5f36e7e230dace3d4bf568daf408b6e07fdb365db5ad\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen133 = 40513; + +static const char *kData133[] = { + "# Imported from Wycheproof's rsa_oaep_4096_sha256_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 1\nct = 864915b51654401f018ee23280252369c2a4655156b167747c886796da7fd08af0e5ea3e5e477ef31498be2547e78de91aab3283aaaead23013a01cb14cbc5ccafb27b345af079fe4520c6fc4f4395abe18f8ff3525b7f9bcc1876693800de79ea33fc5c3aaeafc9e4c97535033708b77516a891fbecf160fa3f98ea6b0b7fcf69ef44c470df232a35c48e758dc4b70965d2c2256753afde954b642fe83d181759949a901558dd0c88cd20291e236581199cdca2b5436a102fab4c6c58d5c8f2e867a046114e0c3662bf115126aae27a66ce932b4d9603e14fb3769a2b712e5b332ffc1b615bf9116455cb802f907a0600d9ac9d292a4582d356b6f8c06d54f252ff17d1d4d07ae25ba1fccf3ae9b372e2b8420de1b9258217c15c80bf88afbdb5a879fe31fcd7c7a275f4b7432921b8de5bcaf43ec8db6ea38a962b79d810904406573cf3c40fc416dc5f8d2d8feca1285748cab7d5335cd4c253b656b52e9ed1b8f8dbc4cd93962028f0ac1feb7d4f754c0aeb1c31e961f25965ec2328ca7049661e8528603c117f9ed93b74bca5954936546bf729e4572682bcdae42f0e693fb3d05de3fb7f8728825675268438339debeded1c2d50bd89128b41cd40cbb6bd68564494b06c9bb43e3ba7edde3f89933165eff31ff255e1174d51b885b6b61d4d3712625d78423640fe911e761fb05bc702da7bb7a6819727dcd892f7462c\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2\nc", + "t = 0d9e70cb448371ac08d862e2ce2cec00ec8cadcd05aab58ce26c5c098cb8aa64ee561c446392253b3b6349c286f1222a3650d2393aeffa1eac0832552a43d11f7780f6f219c8ff1d1c98bb085092751f479aad553b0243537a23e53a9c9779e15bc3c8d8a176693c3261b4c0520d634dc5b3d618565c1428cf9d616c6bff17a4d0dceb97339f5556f0d96f28b187309a48174651383989854585ae85d30874894e6d54a3a65e16917c751f3edf1d1653f22ff5d3f1eea35b390c1df1912469db041559b9ccf8148deb9d4caf8cb587191049bc575cb20495a9b0837035d2b8c47a74190829e13973b5b72eda42ae1a7cf0022cca75f86f039c64e16797836c83bcc7c638d22fe1357444bb4e42bb1410d7b63a8c122006f45dbb942a802aa4a964c6b17f21634e0e029a9a6510158f88dc05f9c6f4ae024c6f13d32a4d412ba0dd0b9f7382a1771a61a35fad4e310becb6a5a59dffec526a9e06d9feb696804aba676d0d9bc043f07068c7882b1f8cc19033b78416d64d5c6f4b2d121d170e4924cdb9a7179ae3a93121b814fcb74cc25eed8ab26b12890f9392debfa3c1b9382d41f8bf0d1b8cd40a724478ee753c70d3f3820f48b6f8d71ac6d62d4e319659b188a24b586521986fa3ff61b376e6a78a8988441da519c6f986f10c32bce6ce156ab0e2e1d4cd1f2765d0cfbd8157104b64709c4f8380181f8021f9fb153b15\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 40d37ad25e0f854b3f3431c1bf0e24dfdacddd8985895dd95f95d5b664e03e9f3d6c006973be95f2b17621615b8fed29aae91454a4108997a7dde9f279a93909782bfa6ebf7eb69c198d656752b980d6424f054b3458c8b772f509981209e8514f5c366d7a5272ba91072339cdcd81810eb2c27f47da51e13225e564ec772a0cb40c95a295eddef2f5dc6fddbedc8f7c2b141049979b7373049cf5b8f91b093fa2cb1220e145e5fa8bd1581dbb7ff6f1e28f51f15e67350f145ba336d4a894a1156ca2cf35cd8a29318d084e28d4402529551e8fde5a30c8005b983705cc67a7cff211e2a23065ef9342d4d065405818997126e14834b4f3073a6845add06853121bda9df7fc68e2516e72515d43ace942ba26c0bd36f58e93fa586183533b82cce7c8610b15ebd305d0be2ec52636377cdddeacd4eaaf84fa64e7bd17dc2acf0cd54f75181a7e237a6b1cba8514dac2c0301fc7b28ca07dab48894ed25f0d2c4f755cb6b83eeef73107338cc9bb21bb16bf8069f41d5a86b37f2c4e9f793d5226a5723c5c95da151f663e8c96f0dab2af01ece8ca1280fce698ba99d033817f79190c7e387c71ec8c70d04ddf965afb5e0c106e1ad913882bf6295b8b45d6859b25125e0af2514fe66c40381987ee925e6619c9cdff3ec71534ea1cec815bd3ae8a4f66ecea466d9100dc1c94c64be432d8fc9973426dc2041583a96e68312b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 3d8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc22\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 64d5b5a72e27de69cd016f58fc0f7b1a4608376f0c9c51c7c89ac24487b6a542e414606aac2f00892e8a72307c9167d48d555d3c46f924e95b2f7ea6451fdd6eb7bf14c5543ee45ef6c30d39c9c31d93fc807d9b1ee85405c38a5952d1387e393ca9e357d819470f43cb202dc1275b91d0a5dec0b7b3c547994024200275bbfa9acee80b6adbd742563088bda0f2fb6989e78e2464f0b7a7dc96701792c365f9ad1d8efd0b3842bd407774c4138810bc0c7f5900e50cfa5c24eef43d52be497b7c8094413d543fa3474a04580448d8203661d3ad87e997777c112161af200af2442f591c8bb41f337c1ec11821166cbc3d2f264f27eeb2ebe05f68f610aacd58aab3722eb38ba798e9a9c083dd335be40dd65978cf0a67d0e78a5b9c77034dd7dee2ff87172f98b61899d76b384920570ed063670b5dea2e644e538e7124a4b8c9ba5da4afc1e1196ec194a797bb2c3ff90d8957ae7bb8ebe99b69b90fefcb876752cbeeaf4f921060e8cf420463152b32ca55e39e61cef5ad4ba4b0ee4a2eba2d784b27ded395bf85db2bc85eef5e0cfb8fd0ab3198ba5aea550fdc866b828b3095b2a8d4b71a6e20ee3d572b94cb4f6753ddfbb144b11266a1efac7808931bf3763a4a80d0bbf475e5a3d237eacdc58351c1400d5bcfe9006e6483cb664d0274c5cf12d2a18038b6e5643244e0ff07072e38eec29eab5090946e73b01474c4\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 286d5dd2d8141c8f28ad5834c57b729f39bf5f90a087ee09eba1013208793361cb39d338b4acdad72ef3143f45c6092cd790abddb45d1150abbda9c70f4d42abcdf71648f63172062ea5b64629430b5e3b88021cf5fbb63dcaaded696e3d6ecce60a1346d75a972dc6eb6f50b5ffb7da7a5b7b7f8a5454f9dde9fc21ec497b2223b24e3dd579e3c0518feccecd2b3dd91ed6a26318dea80b1eabd165a87bac00040c29f3335a7e474cd01cb8cf2f1a56e27d5377d17da3ca581e84149852b63868a9de2ba8846142b07d14ced219ee0fc318b826a35f7806fad240685ba4067949a79b9fa3252495f14f49db5b4a31710d4c1d04d8a2f6e7121762cb4873d1d5ddd05c2be9f8c09ce5e22e15342ae22f227d940c8ce9ca62f4fdb080b85a447d2af34acd4e77d126792a69892f63356061221c0c7105dd5e044bdaf073db841f0f25f957cbe259a2474b7cb6421225add558838757ccb028ad426ac1b75029aa08746f9a47df7df604cdefbcf4abfa92e114da11686a6b2fbdcfb9a6bb3e676a7bb288b88a9c9546eaad05a84e1cbfb22503e326c63c15c2c634085d2ad2d5220b9c6a7a51548adf4474145cf3045aff023c27f92c098d77f065ba59a530ff15f1f0cc634432a3b3fcf0c5d5cc58fe071deb4268fbf16917bdec618250dbf4d41efb3d13d0be332848a0512c5e8e6b4a6fd06ab4094550cf69d51e5321627dbd\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 815f21b2970412f0d01a6f7eb209b214b80a944718895712c0b17b86ae408b01d38636b0b10a0d50a761359b770aac9074d0a89a22431f031063d9fbf174a767720807d02dbf70f9c561214c8ea73bdb37b0ddc8ff2e72e744cfe48de0e2188f2c034d6a779434a7e32ff44f5a9016cdca2e8ead252ae8fa7b5137c033013dc1a74b5bdf048bf81ca66a424feb93d2579c63f2aebac51db1535217341b501557c7e034a5276c8279d46e8724cf0c184025f8862c22a64d9142472c098b8974c61b5c8c998f0e9c8eb5525dd520a190768faa9d3fa58ee6d93f2fc775edd368ae734f6b359469f4d3211895f35dcf1610a4a6981cd135709b91f2f7667b7288db3337bd46d6f15c0eb26385078f3943ba1e67df9ef34f7e52630d5a4862dccb0477a3988f25d970ee69cf860eb4b56a85665fc47995befe817a4e3fd2b4f112ef60a52180adee5a11edb9ac1458c1c6ec41e3b9bd40eeb906e206b447b7538be7fc0170915b047c998b8baba8430aeff4ee8c48c763be4a49a8d0b8b7b45a2f0e0403e18aa2bc30e754982d6d1872434fdaf22ba6ab298ebe29a739788e377c51a140e6ba07545e97eb9b2b12454c720653504686225a4c7966a13cf0dcbe8e1a852a2d0b828b9e708c1012ccf401e7ac94c9fa0ab5c4a19f087761b3d1129317571621593629f9459c94b92c62dd5d6827cf1c5187e98a9c20d27c0cf4e4b18a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 91d2e4d3a0be29f0dde7d2033e960301ff15e0fa649865781d97876e1a566b19e1bdb2f7f458a524d6d86e0d6f5e72f0bfbe5d23139987cf1d8cf778fabbcf3b5c10092fcab71b296b12bd56eb87093e90747d28a2a85bb1e62b6fc841f0da507978c7aa9039c5d7bfb8dc20008153bf81e94222fbafbbad6289c4fde8da4ccfe8142f11a922317673f94aee392b3d34dae9cda01d4fc3dd1136b7341f45af106ccfc8f71aede870522664494dafd9c740e7d864453ca9874b909bb08ad74c673e97ee78e816db3757f80d3c1edbad9133361160296a304420841c37b0de7c73fb6d3dc1c98d9c637a57d145008048e02235c51c141fc0d38e0815ceb54847a381f02c556d1ec28f823fb3ffdc98e38e9de7d52096e7c4901ecb03ca1725d2f386296ef307b2f4a0471ae3e8eabffc1581ac2e1a00e70a3cbc584f7efe6bedc8d437a412035e527aae977647eb7b8271cf9dcf361750720289218c4372448a24b1fa8558cb8bbe928ab734d66b210489bab3292c2745a050ebd6a88d38359ca463ee4aa29bf84cc09e69ad4116765ca079d5a1023796342d7c306fc0fe8f2ccff4c2b1b855077f752fae6232761d40fa9abe063125cc56e4efd234fe6623325417506fb6d4be187fcab7471c16e607abda762423bf4dbac021cb2700019a1862e32253c0a8fd3c443d381555a799f4e2df7d6d0a92fbe889426c9dc8b6801635\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 5399224a31e400c2e26dcb43e4bcc394b22b87ad7694e59fde38d7f16e3abf190c877f79a262b6e9e172659acfb37cd3879dc2d4d86b0f7672f297a569650a37b3392602b147b1b1110431a4615389ff759e6ab16371a514259f1131a96952af64515d93eda9541791429cd14d3a2ca29c279088607ebc57b887cbafcc88f3e7eb65067e952fae40301e9b784f0c7c9f3251287d279634aa92573fa33b7845471f96c915352618618d733706d2d9d661afbb04b87927a2589f46d13d8adb749d14eba316c9cdfa066623c9882894345033e1414a3f3430b551f7de8d387662f75589b7f55c9ec5293c1de87f7e3b0589ce9b8e2924cf7b87232f0da39c0eb", + "0f89489d73ed6f7e73730d39823495cca741a19179093f15d6cb1518650c74138c1c1c7e4e65fa277757f17be457607c51d310dc10150e7b381eba75c607417449b7d1bfcd7223ea1d373826b623c7d1580d1e989060791f027adcb36e4bae8a7b09799ecdc0927256a218e24d1e4c51ef7d5f201f4a167d4ec77f0a77521c1747a67d413742f15b1393519758f9c98f3b621c361bb5eb9e7a5b904a324d98873d54944a18a87930a79d53332a9b8ab093afa12029406a078815b13872033145a421ad3b1cb9e7fda09679e7e75ceed95f934720e32fa3fafcbfbbeb028a62aeb8855569d7efebd70dc3f078686b54d26088c2870d698e42956e65312a57563a2b8\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 043e5e7106d5e9755860328c3c135bbd898ee93b09f329aff989c41a271d88239c9f079ebfc17c352124fd5a9d31265dd912ac24b2c506ad33ed33b5109e5f42a7e01cf4851c1246719eb1c75267edb673fcaddb07f0fd8ebfedaf7df9331f95bcbd21a766418badb064e6b0c436c6e21c74eee42e45e5d04d3ce219d089905eb700542144a045e0f7a94a38b0e20858ad94098e82a0197e077136352f26725e50d7ddc4771f52ebe4f486e1fe72dbb94f69968aff98fa9f5b820b368c60d82e89fc27f0aeff824b59a6e64a5f604df475c9e91d18911f5e0a20b8bba06d842d6a55378f382c0705b75a308b08a86bb37e4601903e18740d041c987dce213071ad7edbcfdc327b8dd6e8bf1d21c74f8bb0ef233340ee193ad2728bb511e7b7616d5c1ac6708ca3127b00a8e743b73ece1b007a09c74f60cefc924a0e04d967640ced76c5025246e888168dac8b3a9e4f16c0d44c8935fb401d3b171abd18b7c79d2f445cd22467c77d34dcdba4c01c5418def4c170189b396e4ce9216edceeee101c6b6df834ca29c9f2767ba5a1b14ec157c09217c28dc4db95490ee3c8d0059e9fb8314b4c89123be5e1f2c4bcfd732975550f5755a845bbee0c65aab017c25c306ebb43bbd14406be70e046a7589ca3235f529fbfa8ec9d9208a95f39cadf8b091857cbdcc6e9ef11439ba752b8d24d4c401f1e0862f71d07262f007e562b\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 0e617b28ed72162e19b7a80a8b57b9ea9c826d0ac8b230bcf449f027978034e1bdcfd55b89393643d97b082d7c1e7eb4f901241955ead53e18ea50e07d8818d01286e6c7f6a0b1edd82c40a18cd934fe4b117f3711f762dfff24668c511524bedbbf9248590b708c36ab59ea8449c9468ddeb978614c930d7cbc45e01115f5ec5bc8e024e6d4ba38cb8a3c80fa85142de7dda62ec3089c56a3a2a067b09a230890842e6844b20cd1e5143f4d149a99b86c162b3be1d98ea2850f0c336a9a0e1f350e4435b7d0ea8cf479f4c07b3ed800c51ee78cea37c628ad0f8d9d9df93c94a7b40c828927dcb7f53f705f9145bab0191ca8279957674707cc442482754603dce5fe9dcba2b0a545f8a3be70e108e4c7c9ec55f58c43cd654fcb7f0fe85dc2cc02fbeda0171dc5c2344bfd908692aab69fa50fc0d06bc7b9791dd1cd02f23e52fb26c7d017372dcd84f966b49ed939eb92b51d8d25cea6b25ba6593900075f0ca7fe54a43faf9686e35eb42658d2af3c62ec9b68abc449462342c1e1e4f5891d8a2b7b60446da02600bc65e9e48efb38b5ec69103a8447e5df840a266776eeda1864013fb966360ab45ba9410a2721850cd0e2672840c6efcce5d468a35f9bf0ec25046e47d0dfa4ee6241db8ea32125cf8a7ffaa9941e00b49a1cf68928d493fd1a16602dab0db580001bfece99fca4f90aa823717921e836b12ad2827e06\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 01cc477af0a4ef90faf0020641b6140a27ab93f44cc33a26bbf0a8bf451443db7a3b4625689cb4ae03fe2aa97efd4518d49148260e72120657b158a6070f400cc5c904b24c4ef187dc6c5deeab86130eb9eed59d75bf962ec900cb0b2df2a0086ea5a1ba9d85c9f71a5df2f61a4dcf73d40a1d6c25e5503316bfe9a2c58c3d6012367f51720baa470248a8d54c1e8cb5f8b1efe93f2bb7bb4e7f000e4c06df92986ee7743b9088571fe8b3cc5b16f35d98e633ea3b623d9c83e2095ae81b2877c36898c983ec58d74cca9026d3649a12248b09f04c49e3878715eadfd966af34531699ad173cb01f8d73f585dc00b8b3d72b32cd40903148c0b6167e4e80e2f3d29e5285486ce51dd8ad1cd195809a4ce6710776c19d9bffcc915da723493837d6f99a215ebe502da8cb4444b0421626b2eadf61ef05210547940210bc4e647193e0a7cf00a99cb51533f74fc29ce5fd4632862b8efc542a9ca0e2da81b50d1c72da1dee2bd9af43ffd5264c92e5c00e9cafcff11e5b4f9b6e047e5a19e7e599a736e15463b363f250a2e1616162dcbebf4791adfa8b51e80eda02a8440132a80fc0f0a2939f176fed967240ff457676c6deaf5bd76a3c826445ce807ccf4135c7c4f37b112ad2f6a10f213e4fa70ef872eec4a7371daf30ab6ec5a47bf8f1a9f6f7b3798e3d5bcc0d313eee136cd9c0d831af2ba21dfbfef9fb6142bc36f586\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 1c95586fb690af2cceacd7c9232c70a8a52fb37a7ce391e9da23cf087e3b4c609081977a713a032c4dbc263a369c9b57f7036f6218b9ba5f522cd965a34d8cecdaa0a79c97a962dd5641cb6b68dbc77018238489ca1d64b9d3a3beb33eccccf81de113073030fa54305d959180340c54c9ae4f3e5a3c308c150f0498cdbf23555ee5377805d2cd58e72d6109030837740131a6a7e5c894ce498eb4eeef7aa8099c727946ba78f684103a1bd386840932ae99cac1ceec176823bd4c2c5b7c7786e2f071add8a940edc4695d0e031c1466906b4e6e974f04e80d21177a21f4caf5e2d542d7574df82470308ab1215a83b9380c6fbbd34059a2896f156a076f13e95501784ffbeb42002c2659b88540848cc06da46d99dcb7ac4f6294bda2e0dfa699b1d852eb946ed4538b4b743fca2f1384cdd3aad9e863874448eec50d7581c96fbdde8af1d6496386cf49161df95c1fab9bb4f905f3dad3dc67bc70e21629e19bc60a2a9300b246964e5d7a5a56942eee8ac4676556283af90d27274bb9f460b3f5374deae951140d616c34905310a36b2c52ea789610288e60bad45c26e2df328161c54bdba8c7b25b077b2ca5ece64e59d0e35a052839bd762522b4a6e2ea4ea98426f7b50b90ee1c39b2ff1ccd1789188cc547645e96857f9eabdbe1ee17d4e040f2f34eb826c9a2f5a4712806efbaba70b3272797a26852704e9a14c50a\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 6937187451f030bb4e8da158c24989f1466afe60449e8f720abeb3ce766b5e1fad5ce87b6902b67daad9f6deeddedcca13be3a888cbc0333a205bbd292e0daa9367ad5901547b70de0174f644c3d824df3861a1bb6a14cac290e70b06935c39d9bbca33932f5a4cc18f96561a328f390f6e6b81aad21c090c2f0a654b18674448a9a858b6b2d0e9b2bd2782516e4a7b401e04845a24882190361278557785f7ec9bf9eee62162543341a8068018a92600a5ab037b9a646a294492e6b8776c2f3613ddea88ca7e840d89ffc3a3a112fc104d52a01a5493446c524a5c02f5f8aa393c3f46cbf05530bd70747ff7dc95f021dab34c617f550f40ccce73e92d7a351a67f4c531eb3e786f6b92632444f36a8b7a554be5bfa9f8f3c0eb18dd96da5eb9fbf3d39f79495da701a549f5a4a0dcbcf147d9f992ab83ecac1504b2dd11ce7a1ca3bc084a2c611c68cfa89aca69626d80cf2a016cda8f47f6536f085bfef6a18ee2c84e0cc32e9dbc08981b6b54110ac7a8146627283e5bb30f47869d09987da689cf5b6f3aff6893dabe94d1c2fcdbe789d29430a3913e4a20aa6569c26d88d6e15030eeefe1fd1ef7ba865e52a9407fbe4578685672a4603d41c09a9aa99ae0033c5265117d8438f64a3daaa862ba2931fb86e429870f51f77697ef8e0f4b11dc6b70c9a1cc47fd2cce484f7d088d1d3a0fed120555d56d1e7304a656513\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 35826bea475a851d9f7c2b94b28922aa417b7cde808fb6cea5a243a3f414bb2c5c6dc76c00dd6fdc692b085334c38ffbb4619198bf1c9f4cde1056f796f47adfef03207a911d7529bc6ed81f32b632d0c2d127556b9ef010d68a2f45071dba2f128052b3e34588c8edaa552f7e060156dd683dae4dea4bc0ace1e17681ff4d826816dcf00dad4dd17df81aea72ae1e436f42c4c9f0ebbcbfa801d94db1bf0f80f51cd82b25aab6b9afd42a4c22ac9c04dfb0faa1b6954941d8684ff721cdd485f81abd6a59793f681f371d2e2187e7f7c034f5f5d63560284d2e0de7aa27b61a3863722b3898769eeae9dcf124f6314a13328459c4093105481f7cc0bbfdb872f3f304892eaea2971420eeb0b86c5839be6afd4c719a50ded51fb8d1fb08568a7d12ee7614b6e8be6f21baaca84c166a69eb773dc69fdf855d02548a188402616794437a2a9aaf50ab6a14f0f172af0af4a89c057e857ba40333a8ed3f61c6e08a6c98679f55da53c76c1c1349791ccbc7cbb3c189a52b2ed23c6fe86f00a2394fd664bb7a8296fb32868901dae475bfdf0b66cfeb7661e5b734aa5b8689fdf54299a393cd85921e21d35bff5de824a9434378106c3d21f2716be4f8a60a37b64a429a570c1e19c7a5d2e9db9f110e7c0727a711d845a1d8ff3a8778852eabfb793d5a0054", + "b6ce2e38f4d085b44603b812611bda8754025e89e65cecfe99c11b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 29d887eba4aa52b73b5bb2308c0fe6fa78e6bd682ac7278fbe85cc8a9f9d009b2ebbe241ece0dfe5b6002921e555771ac5e5edebb8894be534e00135ed6660bc43e32fd3c20e8147f1d998d5291e877e075889a114b87a0051771a8c8034d4317e12f66d40955dd6d2e97eb2b0877ae0ceedfbe345cc10b5e6e3f41cf875f2600480c513672c8c0193d8f141feddc8ad82ff0fc3bf69663d386c968d53a4cc2fb82cbf8584d3c4d64280925737e1b6b27e60a443fbcb38ab7c4d14c81c98ff0018572054746a0ce3c6a004ec5ff3a827a140aeed96cfc0c2480fbaed571718b30ffde4c1de43667125ff7f68a5352ad76aa828abbb4e70dbaf02fccf4656382d4b7c261c0f858be7c59497823c892c52e9b2b8d57c70e82c8059345f12bf2a0fc4a214000e79a4f04ab7016c7ca1184a32b81243e44dae41d045933b9dae873d6b836d0b9c911616993eae95830ba8c5698d3ea722c370f47cade258cbdb67f1eb167e51c6f4b12ce7adce403a001e78092efc30a214939e3b86655bcc37d8b485d53b6e2ae42c18b03bd87299de70bf553a112e9e6bdbc2e2441c5072ecd2c74c25bfd94d7f5545c29c7a304be24be5ef61aec5ee4b119e971784e0189903240d2bec19ef9b39b528c65221649e72dfa36f7d04aa0becb4d147a33480764208623d0be7eaf7b466be492223d12c0fe756e23fc3b1212b4c3d257d50712c0385\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 7e977901be2cb2d4f55451fbeeee9f081b945a7bfdccd3e16d502a15b2e05b0e31390d996a74de4521104bf642f5c1f4b28775ee21dce345273b595a6ff7578635c888f9d3615f9852a0530b65ee49695e1d88fa542e3852b545d361bd8ba4f9d66aed3a7d59101dc971aeb3f47a3c4f7cab15319981bfda2c68a491ff3de9b8975c8963b692061c8a8bf3b5dd062d42e8a2efd1aad46f46be4e31e3cc397ede8203a3750d05537992f310c936d7559de5745cbbacbaa0cc8bfc549b5299662dfaf3cfb8a85c5c40e30d12f10b8cac0022b3bc4405644b328ae4b38e077cdf263ff9e2fe9ae44127dc71f6cff5487e76c51ff94cf6c28dea5771fee269d5c47a9bfe519ef6ca253677fb1a8deee6b51b9d6152b53405958e724281d374228c4e501937e5b7cc745b6aaca552b8fe6db2c346b7514831f4f0fdf724bba6b462ffac33f9a2b353ee8429307ce9e10b2f2e3af326bc79bda4a4a93d9d0560699b91a5afef136e1ae2af5d3c5f483af0578b032f62a5c65bba35c47ec5f0c662fee407c775ec8718b5ce7e696fa2f5cf2d7d553a7e1aefa31c7716762e4b2765e6b58f268576cee7143caf67cfd32e6759891d1f823fed71339efdd7ee8b3f7e3cc8c5655a86a6823114c14643c2ceff08b1cb448d8b0814205d2b565841899ed28f1a5240f914186caacffc0ee03a7dff8df4cbf4b7f587c19bafa9f33ef132d808\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 310d8328fe04b15b0f7e92ceb3aadeb1785e71cf8a2081386e2938a95f4fb2a7732d8c347ea1159e9d7588d97496cf8f2c89285e7f226e7572055dbaebb4f4fc4bde689bdf6e6c9a0ecf6b3f8a98be9459d6d8b86dd184061d822545703e2fb958345bdb03465422909aad9f52d45eae132c5e6776ee9b37dd5eadc8531b69839ae6cfa8e03b35003cba6f1df317b522eb2a62dc4ce5ab7193693aa3352110d7fca5a8d74515a01ad236a515bd61bf74f768b8b26cd61d03a3a9b3e635677d8edb4264860173a1fb650ca4cc4fadc3545f84d1b85fdbf883addfc6607c898765f9ad4c3a6e64ac02058be83c8fc006a2ab52b3945fb0291509691adbc95c67548feae0d40f72e71eb9318d7a17a64dc65260ebdd69f97b608dfdaccd8bf1d371084421ae3b475babbd4dcf6367e3bac835190f2a9b21258329dfb8930793f76fd981c7ffe8eca6244e6a546ea4b076fe2f99a47c8dd4241a14959f9ee3aeb07061178d00cea20d9caa337464fb104087c6a9aeb1ec2a78c9c3fdb0c764c5128f7e2bef352dfa523fbefbc4d897a86f3a3fff8d1c24f8b9c8199ca7ace330f26c883d7dbca66825d8b001023438204c5b80f62c6456f7f3a383c27eceb2c3da0f78c4a9a04f12117658cc8bca5fa240874732e08e3df609e63f82f899aae27f08860d4a02afa12b495cabfe12fc3540c200e4ebbcd328f05ac68356b36c4c41ee\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 132666be585f41004622ccfbe802a61bde0f8a0459044a658e98e8ad9adbbd3b83c63144153da14dea424b7adc4294fe52961e94703eb7945ded497de3e26d682d745c7a37c88d88d0240ae3f334dcc23e2a6e3eb18888b7f5bc2c17f54d167f1704cf1f0b726a5301e1b94707f8c982cadb9b9aa8a559bf2dc2730b17b425ab0c26e4816a7d30d040a4aa995981db947765e097b5e424e8805a78980e709e3026ce5373ce1bbbdfcda646df70e8f8f8536a83f0284d685e99bfc5d0b98efcec6246241ed9dd3a1b01ffeef06b647be2cceeb122fbdd140999b7cb00a96c039bfabd7225db666a10478b83495c1c9636391daf162feb08bd7b4a1a69e9b0d2f846e9608ab327dfdefbd89abcd763077996dbb0a974472a17a843348d67b9fa1f630c3dba8aa8edc0c6b56cd7f05445133eeeb27377b4442a2c1dbb1d7027ed3f3d2a335b78a1a138b423f05cb16db5ae8e609d2f1c249668f5e47bcd9e405d4a369299c17f5e1d24472b112300c296ed49b0c094e93f0fd3ab10ca2269ed94ebd31c65b64c6988b8e0eef4f0bf7fac04758798fe736d85eb2025a82ebc064f39e529860a05ec50a86d16100059da2596f7d16861c88be135d85bc586cf40425ff0e2bccd7993e9e0fc0fac29465db116f79c0708497456a5cfd8ef12a50cf1c5183e05fa04ef7a6c1283b2aa140d8de9b8f5652ef08df0499b3ab4781c0619e7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 28c4f829d3446be96b30b681e6de5c390996a47e1a3d8ab42a4d7cb12eb7ed14d2f30a66e53e526b0345fba4f6f7ffb2434dd204dca8277c906b4d3d96862697467e33eca8ccd99f6e4ad1224a068d5bb405c4dd3cb3a18af3bb52b0ee49a359e47a84c5d8f5bd9c0ccf5bf0fa147af08ba92d625da26361ec5322e7aa2bd8f2c015efc99142858cbc77053be48a76de6cd665936efa7ad555860d8a6ca836a8d82aa179e97d5eeafd63e00a79ec614087a601d31a41dd151884d02c9ed14b93330d3f9026162b5593ffaae8ecc31c398b23167720e34558702d0e64adab0486a0ddf92e33c8553cb7ef0aefcd27f85c1fed5f9541f060c0b5d8ef2bfaa8537cc5b892aaa9c10237e9c3de2a57ce3722d36c8451efbe7a6f13e03e3fd87fa549d001aba5ce8cebfd5e171fc73243a7d6093980535351436175ebca6ccbb69f77d902bbe1a7a42d7d73685bc085bfe6baad593b92def6d419b500a864a7840f980ac3826f275c269f2ebc1186de6031b54f094f318b4835f6de0b460fa87ecfbcc7a1ff512db05c4db55b58a9f19f7e9e1e44508b2facee44c80911467ba8e561ffe7ba0600665bb2f957f80462f5490ea6b2645b27fc035215a3ca465c0616108b5e9ef246633ff8195c2b43c9f2a0d5a4feb1d5fb918e761d175fb6fd826874dfcedf8b4a13b85e4eedba6f12b7dd670b47b3f0893686880b4ca58ee05c1d24\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 401be864d1a7b598cce9822ca99a41c4c8c3ee4421c6ce8f617fdddc4525b8b92551073d24b40f107d52bb3e6d4f9ccc9f857a49e3ee5389fd7f2140fff2181773f8badcdcdbf004b0ebd00b8732c118bc1552c14ad305eb5d02e0c75ead4ac514ef866f68814b131d94d7f4dafefab4f9751c00864f09e840e1b1f6b96f8b7bcb8b2285bb959355d8f1843f82166db5986be2c6d82bbdeebc45bf944b47ff35f7f6b97fbb9bde65d138fb7bf1e93cb635a8b9b2ee8b77117225a193c0b7317a4d28f9e1bd925c43df48629674f37161f7ee36ac41324ed0b070da7159b19046c21d6f2e850dcf024ce3c5149e4ce4decb467433f32cc5bcb32e48b2f5bbf3cbffbe002eaa347b68d5017c8d0d4bb0be96b4607ad1877e7fca38d52e5b88eea511911d9ea1cb4fe1c89d7d786b0acc3a21f344b146c8da86af77ba17526d5a00fd43c7994179841088587d184b6663b89702f7c54f453a698efb1089562994a6908c41e261daf831d3deb5994ea78aa415648c9148cc0490b5cd756dfdc205399d7d111688f501834e8bc51cc92859f0bab7fa86a111c78766a0388cd009ff8591b3b81304eb0222bb3362b921c1df0cfffa44027d444ab1d8c3c993841abc6ed49c96f341c2951a3c23c8250addaed803239bb494f8263ad311a1214ebe36a0e1b51eb85b9a425fcb6b8f178e02690446290af6fe01c09d5f4f9b36eb40d65b\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 7f535a238cb7c5b93031a9397f139bfb2f373248f05c67528e2ab5db915a413b99734f6131452d43c82b82289565a6b9a601f5e3719e0fa0d44add201b5b2dcbec7925a4ed7dedf4d3886883db6b6d9b56d3391d9753af4872c3214cfe1055968d88940a3c3549ab27b22f7e56e7812e1ac1963f263e6a574d5f95296bfc1f34ff9cce1a7ea7f71d1832be55a18a78629f15ac9970797be6505dcb6f2a07f67acad1c058be5ec7accf2daa109605c83a5c928423af2bb802e787cc7b35717ea5ad221bdd0866c3e166f258976a660fcd923da605b11eb416b2ac80a42fb12d8fdc8a2152aa145035760c2abc4a88b3f0d96e14be3b01a2a7572095fb1d0f0df7b725a7247fda5afe22e29c0bf543b3a396531dee98c852c578e16049d01663fb57b42636305283a5f184ac11a0d4e912bb3da0913a27a515078de839c8665d9331b737e5b86e4cd7a103a40b73c9b64e0fd3d0d30b75bd6de1f6fcd05df200d059a19ecceccab7836970536942e0f7b7445dee987b47c34f89cc4de829109bd3df8f695a83714ea81b7f98f38006c13f7345b3cf1b1bdd70462613844b3e751cf4adceb98a6d95c63b2f245e5721c1d5f5099bfddf28ad796382c325cfd08235040572734dfe3312ec5d5a1aea0665859d00ec81638b60780d40b6fb93daedba0ef0bb8854f6d71261c6271b9c6e6c44689818e805d9bdc24a693ca1d83c6981\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ec\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = d2e97c8e52fd77875f7e7b1e6771bf9a3498396e8085a306960696e81ae89c90a3464a3fba4b4278d942f4afba6dee4a432186edf010f09586bc4728e67ecf9ac6e15da13c11a555581328d8b0db99ca25b5a31063213908e0fc203083daa5ef1bfc22a497f04900a32dbae8af18a2066b0c4037261724c27e09506513673c878be21c47f6384c57459cda2746641eb741a80980e3aff548204952b5f06912b96aa5fe257a2985f4050d523c46b85a99bd7b77e03c46d1e3396b31a96007b7727336e68a6fd3bd188162e4509288df1fee129ffdd203bc68777728592f0d9bcafe47ac17c42b9df69b47b14e8972b4253caf74d03c5dd6d027d4dacab27857329fb3879e6e61499e565f7e94a185f9ff7eb966f9e6522af10b85b3320d761f209902c501e03d0dcd8c795b7aaa67969bb4b58eb4bd09db6a3cdb6410533ba5896b134c567255a9a3930943bd98eadce1e6431b4093cbc8b2b9b4e0ea79e07b7beeb84dacd11f0aabfc4e779911e228237f26bef2536423c042901b154a6a9aad61dd2fe182fd9d462c8d49d7dbd7a2eea8492fb14131a400397036c248434d90e113afb4bff3aac595733ce93dff73ff8cd8b3e3a851d3465abd87118a0d40eaab61572f6aa9bcdaad2a885afa4724d8e3a1ba29286759deb5c1fe3512235e846e688cf325a278d94ea82d946fdf0945d9ffd5e7fd507bdb7a31e9b79752c30f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00003d8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc22\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 3d8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc220000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc22\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen134 = 50963; + +static const char *kData134[] = { + "# Imported from Wycheproof's rsa_oaep_4096_sha256_mgf1sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 1\nct = 48b29ff276452ebcaa7f74bbfefcaa0cbba598beca99a178594baba98b126b2679e7d64876c8fe07e39f1f3fdd5c4f664a1ab314bcb75f1e906643fc4c786d66e90cac12b8c23aef35c4727451cb033d889e2a30eecd2f8d5091a6d52170ac6ce579c9c49701461185196aec6a380e2504833609b359d33a436f2c63bfea9a70e803f06644a0ca725a4c5b9b01cec93c01cbb79f9a17c401728325e17bfc9750dd19cfc127b9dcff8951a78023b9e30ef7ab628084d04f64a4be3b6d7d3da9d0a94d692a4cb275a7f509aac8dd2db4f797a374aa880c2d646d23760c51f3e0c00601b4c05f6e618372edb7d3a6f5cc9a26b5095adbff2134450b1ba238dbb9b3952f4d055f6d486e27e8cf6ff773896a0fc2991fc5ee046f6e81cf948afb12d669cc020b3aa3f14a18cd63830964c9662fcd3860fc461694ab3c6dc4f85fb4fa527f77e944e7c13b94c23fd0fd517a30dc00212d15bb25c00d48a36db8bdbdcc398fd6b1d229c762f7bf6e99d5452f69b91b073d866884a6e34c4608ee1df0733e592e339eedd59554e85be57c0a9689b69fac6e010d35c9c823a37f6f854c5247db77d54fd784ba82ea4e3bf776413376b4bae99c02a0226abef411f1d56ba7da24b72a1a5f74ab9d7431af7fc940d2319ce81dbc51390096d42a3072291ccb44f3db326cffac084c6a73c0b92919d6039e0ddaa9fe8ab1d65aff8b22cec120\nlabel = \nmsg = \nresult = valid\n\n# tcId =", + " 2\nct = 0788a1201bac2e27ee3c704ab8172cd45416bc353eddb23477841fd6e13d87b9926231315d26ccb3694064ed9c52ecf401c9be16f4e70e3d7c4eea6a2b20f32b53e94c9d26d10e60a3fc37983c4f63b46be3c04f66305c4aa23d409c9875ebf238a1d999114c9ce8644e7a93a8caf0cd006be19164508142b36000a3e3a3b8bcd445f9193ce9bc2100b4364d4c88cb5001b8fc6314cc782f469061cfa7cef3c3450121c8de529bb8d41b1cb6975698b138cf9e0460b15f10baf335cb8d680146f801de67dac74b0311059252960d59b734295f33c9f8506b6940698fb0467e746240366a49da355582831cd2d99be95057e9560c95f86931843633119218bfd2f353ffcd64983a5bcd4802acc68a0064f9da51d585c1e38310957db7373b76a3e376846614bc9271d2045fea65a6eec059cc7647c94318166fe53dd19b6e8994caf8fb0ba888f0b9b89071649299f95512c3b459ff6e3b1636c51213108c3140ce88ff377b3f36da31e85c46d5a479ddecc07899a5c175818881ea30d9a5a21b3abbbc1dfdfbd40cd6849c1312c4a89360ecbd5c1fd90c759563b0700a945bdc03a0b7888b893ed8c50149983a7e18668dcf61effd03ac8cd9d730ee55a0adfbfaad873b4b7e1923bf839a5e3df9bc634b15076379de0705150f03897142daac961c8f99a5dcbea953f2e29681546361fefa495afdb116f789ebf9815f271c55\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 3ee1f8fe284d3b84ecaa5f48ce36661a7842cab4f4aac4019e0e7e4506f1baa27539e468877d1e41bee136782ccd335c23640316a24fdd13e9257062fb40f102e0b482a4b589537d0e417f3db7df51c7f8a5094888981132fbc8236b79f2463b969e12c621121e697445cc80f7d0abbb31548e0b732b014b9c40b4481896c47d4d6194346f49fb8ab3c69e3a9e282a5ddab98140a798f4811b1dc4f5903f44cfe029b7038ba28d806bbd42213d5235180f33161efdc80bdd1424fee3e475dcb353f79a1fd23097f20b54afeca8d2123830e9a706bd6d827be20089a464d2df133a631db522dbc7ebddb06125c112644cc41dfc1ba6a924f7b32fc9a315626f6157aa9fdfa9979a73db2f8ee054e534b4f00235daf2fb967189720f8196986697609a45e1586fc6321a2ccaf745bcd99d69135edb45734fcd27698a87b8b3d95f426f63c5addec03201fa33ac224deb25c1cb5e1e32c7c0b895166ae10cc1b9c270a075619364650d78a2119816b17d808d44d2169022cbc5cc64f80b042ef6def97eaccac3a45c497bf2e43d823c1468167d3dc824fce8740e811c21d3e7b2289bf5c09d722edb94bcd7ac47427ce90c944279d898cd7d975d6a200ebd00104238be33bb85730c0edbd41ad4106855567be674a73b325e508483cb897cdc25aa678f0379fe121795cb858527e72c8a62dba7612104dd796d538d4d9ba80277a4\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 0122a411f6c18869d9d071d89fec1f8d91a658d644a5da66453ad0f0fef2d07146e6a96c87dc4bc5e2d5c65cbf493289d4c9dbb3ee79dba765c71d74d8f0f0e9342f39e8621d791c813e004383fa970001c72a859ee9d01ff9920a650cdb08c11e95df70fcd3bff1f21bb4838a9534f815085238a9f860c27ad6e3075ece222d7d035732c4ed6d4d4fbc64d153da106eb58676f527e7867a7c46dd86c0f55451cfd22b07897f84621765215dd8e2814ff9d9a9cbf828d594c16ac10074689ee3472280fbc14c5f723286f2ca0f15f4b91e25559e77c244be757c18ce7743fbd0151419a1317b82407ee16e2a5b970a660706d0b4de8368ea542ea576d1c0dbcf03e07f646b42a78e430a39eaf5e48ead2d6d0cb360dbd6188d364e4a8e2b0094c698adf864724dc7098b4dda564d16edf775060eb7d26c15692878b93af87c3cf79027ebad55a08ff9f04e863d3d56dc9534d48edac17888342ab8c1bb28d8681bfae21bee0139c16ec1f6a60f2fc4927556a56c036a13e27eed7b056d5e92e296a5b7993a83f788ab0f943b56ab2622b732d717b2a6a46ceb5b9361430c8e8cc05dfdb2af949702d03a1a2b438e1612293a05ded6733e95fa17f24a06e573dd722175195e21f1f5a408ad2d72c8cc788de6d7d02da851f64a59bc64fee89eb1ffb06addb5459871a4614d6652374ed29811d3ecbb04a6646dc261e8aac5f109\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 01f290bc344f5b28bbee4f37d113bb1eb5c9ab3a6e735b9ac13ee65aa42a18ac22b51c684a34b969de549af295d48235bc0c46bad9e5ceb6a0ddfabac4dee6cdaffedda65556e951ecca0dcd8d1ab708176c1d665436ee2e3e9810dd2ecc508b232b3345708d3f2acd95727a2a1f8a612da88865c39652c8de64ac37236fbd0bf6aef4519821363e0be2391b7b0279605d193e4ac96caf52fdf1b71807cd37458f28bd4557f8c9b6db47c72b468f8bd643b8176bced97db6657a59c146b78389ee5d7fa3a463cf2d207b0cb68fe760b83a62462b42398ce7109b3d00b991f5ea915501b6c31d1d7a388b14a995f9c415a108542d375015bad8950f0be42f64c09eb54e39fdcea2efe61e2fdcffa740a71ecc94051c073c66e38e47f9f3161bc6b325123fe3c02ecfcd1d4b811569d95f1eebc7135fd7118cdda6bc24546b5d84622b796c289d7cfddf7d0f34705666b9263e6b9b8c070b28b6853c06fad4b8e538de222799b65f4efedd7d7435d3eb6aa30bc3827247374447ac92dcc59825b5b1e7c636f77db09411ca764366bf3db3bf39d1803034cf76cf59202e664f0cc0bfe03e67c83334196efc95d1f57385150212613147d149d4e6f4f994a544abd82f7eca54c8f8bce8bdff122079196014832547d1f50a9123ea130bc93a4c5ac43edcbfc4fa0f2804a31fb2061868f401e98f2b92a0d9cd2e260ac119fa06664b\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 185bdb913b9dee3ba4d6b27a945258beb43ae70909b6f5a2011256c1a743a6e2e14dad48a92ef6cbe1452306c5dbc77266590476febcce9eb6f64ec7e8d0f233749770275271e79c1980a247c0571dabf207b9d9afe8b6c3ad6f6c5b77c83f445cadbd77c043d5428acd6a55f6104c102240bfb9bd9e82d6db53547abc11537188ffce7d688b116527992f2501ae917f7aebbce1c402693c32ec29611afe7b6709667a65a6b38a6029a6ea884a7659353c29f49398de3c16e6d06e33dd186b14e7e04660c7d864954efe5c9157f178b4b9af46f12bf5fb083bbefeab1fc97114d45f08ff8389e93945afdb56a13eb3a86c64a8b33ee46349289cae37cb4f0b9ddbc306464b7574dfcea969398e6d8720125aa72fa7513ce8cf11502444594012024345e3bc716639cc1814ed18d14eee2251d20464a43bd018a9243dfc8e1d122f1d84664bf1d7e2b63236c3991929fe20d44030d17be9990e11cebfd07836e7ba4e7fa960d88cbbd23859135d2e7359a85e99e1fbb8e97ec736bb9ededf2eaa94c3165c46cdb5e289fe4b243e8e25f3969a39b307840990eef3d8b0db5d515e65833fdd59cf83c152e06f9a066623cba2fbbe233541121295566c0f2ac6150fc0efd89e2cdf7b0972a5efb7302b078816279069ad2e89016cc82add02f9aaacbc26af2cb8494d333c6e33f29a9e237df6dfb5c8e5bd8868c3a66a02bce69e9b\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 7aa5fee8dd85b6fc0c75c86d72fe6c742ecb062a036bbd3796af044378669c2162f6f9c9470e1dc8edad8a41de37411b21c865c0d04a2a4a8cbae941258aecc1bc436e96ab7d66aa1b866e9b3018a56366eaefaf92a1af51d5a901900739eecf07f05748b76565e386efcc8a717f39cf0a163dbfd7b1b02d78f96c4688143a80ea589df83c78440f5c53a1a79fa7265f5e1c15cf8348b8b7abbfc1739a9fdc8a30e25c2081b44437935fdcd19682cff42627b223d796d1cd3437fb12aeb990bf5dee03ec6fe8f0634dc0545d0390facc7fea02b5609f0b37e4bc5f2a5e26868ac3042fac5589457b482bf1c144c239e2a96bd80a813e67d36b4e43cb89450289ab3fd7d377cdcaf9b40811ecc5aa3704086dce9a893d1b19d9f957dcfc283d0ff1a4bdd7f3351314bd5e10a22b2a469615feab35e9966e758c5c2742c35d42659533fbf50693dd1efccaf1787de3c7f66b8c0df90754ca851caf2341b9a7004a7eb8e34cf232a6bc0e993db274107d4d734bb996803a4b335e1ce32d0453450a6fa871430827fd49123849993f421084c60880e3b6e4d33771a1bb255535616544cf4c016c416cd8b9b92c3ed61214972e86a901560c1721fef866ea7044a2c89cc2cba85fb25df521daa90680fb52c2a0baeac9d5942c851fbf5f1e88d522e759aa342d15be1b72f9815c0debd081e9881fba247dd6858890fdedc8838e9448\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 339772930c065104ed237b979efdd87be944739273a3d76e38e2a9dab4a089307f236ad0477a324c0d5f065f6eaa3f50e73104e4e44d25fd5b999948ca61c72ee440e4b75ea2909617c41833d0f67c28de6ed499f3df084310babacb41dd8dc94b66622e7b9d1fd0f81328cdc451c86bb891efcb31c020b191598b36120a40942d35761113680911756c72b859bddc17993acf696a4360dbeb63534f4b8edbb8a633d1d649370ad4c46c51893071712d3ab165421f8f0fda893e4c988ebbfe22d2ff6cd0f289f3cb333ccbe06291fdbeabf19f77c4ead63bc8f316e95d1bf9f743fd5ffec9513c0a1b2b89211426d7e7fc386affb340a8a7caa6f17a9879fd9582a5a01fcd3a2c399967feeea1333f01072ff1ba1785d27cfc48e04b05bfefe22870d82369338b6146d72761318ec977e3193a5fa325bdcc4ef2bac547de3fd099ef4e83461b9cd4cf9c1d586160c52d9770060258792ade9ab50568281f1c71d7a886db372e0afe0a6a03b3d3bd24b9ebf1cc5495570b3304a39b2d57f94f282e7698bfa71904a087d57f20cb67a859a888a2828df1ad1a424f02b272fa7467555512050c3ef8eaf9169ed20d7143cda6fd86a110a3b4102ed8a74d176bf625e488dd209dbdb81b78d5d32509af825405fb87d5400201176c36c19a1d8b93b020400bfbd5ad7dcb2c0dcce99ee05ef2b48e191439fe990d0576d0d98c5c9602\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 84f103bc40d2535d3ba06070b9e5739dea918968e524cf431e4a8a18036d5c43c40fdda432b5ac9134a54ebc6914d6f54895aa24a0420175f348ac41d13069bdb443ad3dfd8c15c283ca76bd557060876b5e686e6ed9e090b8be9701dd6afbd650eb9032f5a331fd91ce85f784e20b4a20c998b94bb9e79ff8bfe56f67786ed76dcee79002cc5586d04b2e1d82b7bbb1998ae596d09aa3cc8c7293bf8c6a89c22d7220fc97f426d0738de5c06d41e9cf13db801180f3407448ac2bf55d20ecdec273f41dfabdad0104f07d7902905ec1d4979fe36d5e0f8940255817fe8f911cf3dc295df6f17de9874b7f754f08a50209b63e8c87302d78d5ea909b0", + "ed81f07965e30cd58e877984067defb9599541a7770787fb738bcb34b31adb2099b19ec15e5f585c52d64ac0d3778ed8bd415fb08303ad9492fe1ece5cc3cf824465856c179c304211c7121e226c859b7b4951a833eadf6a6f29e3bd3c26156f5af69f61ba6b8dd42747f33056fc1c0ea9f941c397f0d57d67e7255fcad2b97db22be83f2661122afb59dd2e18b38019f1ae40d48e6482aaffad2fdee1b971f75a93a9b14062d62bc8639bf866cd70c4963bef4303da8d1708f4ed489ec91b0593ce8f83cf3609cc51fa8c0ba0a43f96004818668f403bf97cb37a86b247580a33595957cbe39c8766199e186725afba94491a5cc7b618e1ac76436322823bc3f0b44a7\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 0b3d6f1a7949a05d472e0909c4667374a87e291ca8065786829b26702f2b979ed440a037abd310da6c0eacf0c01f5b2b082d00ea043e9bd403af238a0909ad8302deb3514cf7710d6a7777838675fd61e698ff09d03821046caa15848cf3c8b1e70fc497e2c8d3639dfaae1bebc52b68c24b54f3f1c4dbd8691d05867a818b0364512d6096ee6a49de7aa7f17148de1f5036af74213df39be1639a1b22640a693163af2e061073e28e1b20f32ce15cabd1005ed66d4d4ccfb50f94c6a34357989c1e13350fb25eb75e5004dfc311babf755d0c007fddf9398aa9c2761b5415c3a1c25e1d0c883187ee41c669337f3b69e131f87c68360ebcf4ac53cdd7101c71fcb1aeead812b06efaa514fecc8ebbc4b339a3f8e9fecd720c2d9019885346d4b483418ddde6f99c6cfe67500ac3ef5c064ab2fd96bf3372ece582c02e3dccefe5ea8cd82a79e7922075db696c5aa712243566fb820bec894ff96d3e844aeef4416b08e023fe48570f05203cf48054601a227ed3fc81fab7e54090864c110d7c0333299839675ce029436cf78266441fb910ef46101c3378cf7d322b696beed85d68a74fc5ad8bf65d212996774a80a68c7d017bdcffbb3f6194c2625e5937d3a004684d3a30b4c31c7fe4c05718182bde18a444dc2467d87bfa9fd64fbf5d31919d4f33f6f5721bea0afde9f47170fc8a2f45e17f4711971572873344a14372\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 2049694bab04b950f76d997385c150446040ae3373d4f868e852cbc4047ddf2648523a963df01a9a383e8a8a47a6abaf900de879414fe360d8eeb36e805ba2821d64a536c7e9f3c013d72cfef75038007cf546bc418d5e612d2ec9a41d9ff6807f8a2def511b09743b28514ec61139abe25a6087348d66f18b0a80a58f7fd91d019117c3b223057b8229f07d22c3af1f37b92c1c7fe8f27ed23729926bcd1f8470eb84da9b8991ed03ed9420b029eac8fdb6c76142150d1216a9d0622bea7d168c8019cedb9db6b984232a97385fbbba76ee260b8712f805f8e1e6fc966c9edbb4836137cf8519961f2ae1134867928ab4a517f6c4148500492e5a70cdc756df38f55b6b93ab81651e6edbd434cbd7f41245cddfa884b5e6ccae02cd19e1714ac3537966a113ea8cdf31b73ab55935af37a27420a6b0c8aaf225ed93e4250392b67cfe09300596836050ca95f16f1e2913eb3118faae6026571bba1803c0b133c5c39b6d8e9db60470b193760efb1d229ed1b5f867636f890c96dd16e454ff3bf75c54a1ace011d8c5d85a0ea3723bb3461369ceae212f0632b50f0dc0feedacfe701beea123f7c2ce22173a1fca90c2a861769ff9bc7bffc4d04d5e8107dcb4a1a49d9fb5dc3d806a0aefc1622935230a617009831f58adfdd08426ac70c688297b89452581b094a21beafbe33547f68812433b41227b87855b205aac11c970\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 741d6aa34179e67d3a1174ac4682ed88991e043dbc2634ddbcbe2b36136b99a279116b713e8484a4d4bc12b53ace3d70c5c352a07a7fbcdca7158abf5def14eafcc6919288f84b315dadf12a105e306b8d452f78d5ff6d4a95705c66186eb3b3a112bb26c266d3b8262c00d7a97da919ca37bbab032a60a55a1fd8e1a2cf908fbe918fbbcd5065dc210e4020deb415ba02e112f098aff54824f7fbfb959fa23b411fdb711cce0e0925e8ce526052ac76769394fa9a57ae4eddd30e4c28d87473054af6f6173292e4047d668c3c7c6c0d1f1e5e5ae3dee7e85da43b0478d0d0a46a759a23e1e5e68f80562ef52b76d85f664868e8866d8d728793e0d4f20b5673dd32eceedb4fe982036ed1c7c930c8f711888c8bddb33e385033043c812d6f678dacb3efab547176eabb08abafbb521111a6d5bcde133fcb7a4f3ba2316d2f7bbeb4aff80949e759da76dc238e64fbe7d27f4501eba60eb1e4ea0bcf9bd21c23f4c2385ec0a8cc078f8e67ad9ccd605086477ba2a9cc7148213827f63173641b78d47c920f73b72d2ac17f7103aa8c8b3dd050b260a17ac760a3463fb7dd19703d6eba6cf5b1a0467b2691b46ead45cbd6ed0492528819b50c922ed25f2b7f4a7322bdf24194f1cab6507b11f2211090f27bf3a6321a7d2de90690968a0401c117e8165c08431a1dca9999d8167cde6d53d41d3dd8700892941c9a36aa4d72dd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 0e1551fd4bced67cdf4a57e4bf864bfa05990c52542f86d76714e74606c4f034d8e79cebc72af64e9f38bad64a2ee9f9ad8e6b1674fbc8c0a8dad71b55d59a52689bf8dc4fa8912ec0ba8c8300089e7fd689afff6f33fd13d0da443be82080af45276f790d551b162dd1e2592a53578af985307251a07aa46470932fe1ac6fe031daed53fcf0cd8b542f24f6dc3f58b28488c80231e087d6b7f48d8b0629e450b75648c065b603290971708a831d42837bf8eef88e5233228af52766675a046af5524d3b79831933e96be6c737f958aedffeee151f0eccfad3e95ad7bc3102ebd4887a340471e9115c4a6186b1021c724c00322e79c2dbb77e29157b72418757eb07371634d436133517b20d54de645b49ed5cef79d7fd88cca5ae8eeacf2d086f33e9e08ab575c1b1d090b64145cd6b57793a182e519743c4a69c1369be0494c253de25618cb488cec77ba585e7a2d5b387fd3f76aef6f6f7811848610098b916d77efb486f42f85e011c962c521891e35877c392d190bb2a9ccbd60a8536c29a07033531b74f586add9eda8bba422f6d1d343d6577d9f75906169d15045cd012e1b9267aafa15f39df23f55f931d9d8793a9b5c3e93e077992cf32ad57ac46048b19e0576f4bed86c502ce1af168efc236c49fed9aaa9614bceadfd3cac500628a8be815f074618d7e96c5d9b23e4139ad155ce9db36885f72b9ee1249e069\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 0cd65cb5fbf66fd36a61d7c3577eaad17191db8ed11ad0075fc3661120df2accbf0ae26da7e52e6aef362c2ba11d0743c4672a96f5e67b2adab40902216f433bd70601099563d3e168ee93d75f3db88806cf3d59017f5d2c6da4218dd9c8fe0be177ac0093e0909c34245b86cc1b791787e9544b9a874eca413895d81710df277837f4a598ea9f57ab8ce38f6a960646abe9f4ff2748d994ecd6ece82788ff368ce6d3989a820bc2d51c43cb88b3f9106b9ffb01da520514e7a03c605b4bd10d706eb322b67ed75072423505118efe727496516397a3f5ef9c77515d391e45c7d589a1fa1eeeeca8e9511890ad1a5d86046ddc72af6f6f6e08f87668567cc67e50b20d47f30e41665f192efb99824b603012d24d8c9e14f3f9facb12baf09b7004d558c39674c7e76f26bbb33945f73264a712e09277ae0e8ba9f208971a207dfacc8c5743411a591e4000b25b263ba78e7305a74afbe58673f26b8ed7b8377f7ca627839017b64d20c3940670330f6b45938e382d6d1099301a4b0017cabcb04d2358eb62634f121ff426e39c512bbc6539316f1d16da7b4ea3e203c2cd5c599080d1b3b3eda0fddababa6b402ae8ab932185a78dbd47a69ba9eee993646670d07bacd79caab4f50371f0b28e23045fed617c632dfa694c4028b8724733f30606d57502934000a6b95068805f70d44576a039fa70db1de3d1a001c6030913b7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 16bee7581623613fa6bc708e804b11954ee5578e6f6f6747eccc52b5bc47c0039569ad2ff4c9fd98cdc54404c50d404987cbb74716d769d70045361ddbd27f2c0e744681a2177f4ececedf39d90e23461dce3353999c90bce6b6b75f2c73cb2c2bc6220cc652196e8555495379bffefee61caea6eb850c0132e084897d9bdee7aff74da1be6f7ef2b86bc6f57494565ea93c6f3ad1853a5706acecce1190bc97bde071559d89f65c2717c31740e176c2db442d48c1780f65230eed8b498da2000a1a12ce4247221e68231e27d8b60dcadb2f50e0a9ee346e2be5083d964a5195d80d9b898e18ae88ffa73f690f2598b45327875278135b4f5e7ecfbc273848e1f1fe5504cca4a2c4a7fa353a301c2b6ccf0f2df7d0ab439d1e8629304f63fbdab4f6d28a84c1d581d3d43ba64408c286dbb452d34a48644271f23841868bd3462df5e4c0f1cded8e868c96cce995b13308339c49a0eb16bf5ce9493812ee205dc8b3fc3b8330895de3389895f162079c72019cb2c936cdfef9cd9f413514947e0abbf440db492f8b8b8aa66522975d674b0f663b0e24bf826c8799b850cf6a80221414eb8ddd2c83f824ee4d4db6565d07b46d8ef26123148c77c693f3c16d007b7103230e378a428dbd16eebcdbcbde38910984b10df5a3f6f9e6204d462e5c304cf5", + "91373e2332998e2de839b7c5290087d07b8f0f0db33da0092e6a74efec\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 16\n# first byte of ps modified\nct = 0280342d7e535a3de5af867373deb801cb0f3a794c9c2f13e6a184f2501527a9cf4d1d356518cf3ccc4dfd243f0c328ddf8f0e7a64a5b7a70da8bfef15353926695e82f513a1308a564c91c0b07321b534aedbb10d2a2e7e2d8818c87d477232d7125b491bced4b7c8662ca465dae448af8d3f31a15b8da22677bdb44a3e5bd6ebd9b746d09b13ef69ee4b9586c1092d544cb6e6842a3afbe7ea682cfa10d49cd291316a8e6537b08fd39e76aa211eac6bd57b60839b65c1c76bd91b70bf6c8093e46e1043da2902de618c4127735c5ec55960889f5db0944725f7ca574537e865d652b6eda54219086c79f24e6843ce752c14bd0339e66caa27b3d293169452581574e48fef3c2bbd8b7d986f6df50fa56ab52f42da7620bce98ddf483df59b7e82f8c084a9d0e3033fd610661ee03841329a85096bc116f2d9f41565cb53988c8fcae6067a97578a98c5e28aac5f1713354b1a338ba128c21d603b96b83e4ea9e6cf03c8aabce9d9aa021181adb942c41d12bf37f278ad5360ea9591d42ac8008fc5d3916372b9f6f2106faa76ef056b97c241184e68a00a29109d98c46699da11c64a36a0b1ceb3df01319d2f2055ce9454372ec91d1b4d40da6600bd95b7b81796bd9af123243d1fb57cf1ae138e7d5b4508848aca462db7770d2a648f04a896b62c7f925718249f6cb20b812b76b3331b7491e555cad839f0b2b6d12060\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 8a6a6a92d0da57d1a773d3c387c98b6942f7cc3d4390dea241953bf3c1c607831dfa29500b72fd6a526824cb8c06d6a36fbf869d1df7a408038b47d7c17a077b15148287c76898b6d99ce19da425779511224fc28b546e3f75474c5b382d38be02073270cc83bd65e56473fce59454d0ad1e8cd39aafd7e409d9a7690f36246e7f94f4e968ea1bbdd13470b5a9c36806d8dc5dbfa94d422efb688e94ab89dc6c11d0ce091f8d4313be98dc1cc150eb184b64fadc14869b158b6daf8d044fb51c6baf9d5707c9cfae3faf6121d4ff6011ec2733e91f79286ca65d14bf0548991a014e5b6cacdfe9b81f66746f4aa21b06bce70d195021b321d624f943634dd7063fa01fa131482c7d9c3f6e539206a9d1f9802f9ea5ae271168ea61b3b997b38a2efc29fb094e4fe73aabc6f22e287f7ae13126ee69f624100f96dd26e1efab9c1ba44f986d54006386cec639f334beeb4ff84f62df9c924827d53fcf69454ef061df7d9c5570c2fab344d6d82706a9927530c4e560e6fafef5a829fe1584f9e209271d7c390a74879de67f5f6b135af56b5f18e0114dce06baa6c2473c5926844c5cfc172a68c03cbd6ce1127db1c28fb099ed4a8b880807a2eaf8467fdee4327afc68c18740d8591e0ef1f53df65dcafa575f57515065ddc24d39998f02fd73d5e46f0e34e95bfcc2f73af40a4b7e44182e04abe7d2b988c32cace2c9636bf5\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 903d9c5aabb6754c78b4e1f0012c7ddbc1b504a21a3140c6837f03ae1a13f5379f2577aa33526ce653ad0aabb7dc22c2be431a2f0dbe233bdee73f603658b40e57cacd6f79fa8c7a09e8c117798b5a293bba511a3e18f430737f37c7ce1f7271375fc4d46e04c9ee88c6ba498b5e7497939705406795f9f9e67af7c689378342274f4fed09b0363aa5b7d85a5824fd49ab1d595dfcfdb5cb4e49fdc2f1e80bb24d5f6626bf166427d2e4340518373b65f621bd0cbbed016e93765155d4d0c4387519ccb242eaa387b8d4e20c2b75356f4dc43dc327926b7f2a8189ba0dd5cbc34e27f50cda313b8c39e9243061f8c2164c86caf96cd8ef2b78ff07953a965d9a2bdca8c6adb320dd5ab61effcd90c8206659a1ec0799a3aceb39840022634796deb05259fdf6785cd225b652a735e48c2de78c1a6d74a7ed5ac6686f29bdad37f72dcb0e8e8067ebd11febcb9292b4ca41bb8b18b02535917ce6ecabc1683be6815d4d85f429e94b0355183d97d4addda88f3dd1bbbadb766bd7bde679fdbbe391230fcc11bf466481f963ac0c31c2320455e3a9c0e7a30aea7ad6db6b77902346be5187d22bf02777d16be0595a4de77b1ba7c07c06653ecbd6b83115be453fcfbdb26ef39aa6b5e2062f7c3edeaf49d27325c1accc3e8014a62406d9064c07df3e759ba68705622fe537486e8e3d2308c48a0e93dc8e6b8b02bd5bd8eda6a0\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 71fbc2d412e1ba0f5d131110a4a7d9ab46711ce686fe8b7a77a18f7950df754c7f9cbcfcc4171c2cd3d5019ef49b67186870b1912094686d3d3716c2cac483fe513663b4075d6c2c867c05d740846e7e85e5b7ef2ba7b870b0151bf4986f37f3a8d0abe545380f4f9075f0322c7daa9c4a2e6862df7ca2cb20c4fd9ce224d0d2a3bdcbc029b344e4d6db075e514dc3f44c7f45165ef6b0a6d04b51874df8081c6546c25007e86886301d5265684ad89be4ae3d1d20427b5d32e214d090b1efcbeb7b706e4b645353a702b2641119654f51da30f5c22eae9a8b1a8d50b767297ffb7f6bf889366d0ee4d17fbdff950bd0284deb6087de9f51561a4f6dfcada00b1e494168d3def51366f4e6d6fa6855a07c58a170d8038af26b6087dd5168566a7315ee346f0412911f05972fc332a8cdadfd70809aeef99703ea62465911f9c685d09aed230dc3df7392bfb927702a9073d8e3ae3bd5985ea9ad389023db8e5577a3ada31e34d6cc2f2ba91ad167a8e6c67c293b41824a04602a5737546044c44deab9cde8adfb30351fa71261343d2ae7bb4c1d02ed04b025307d23d9cc4e3e2aa4d1f1429efe61d659f003600ca49e084b03dc12632dd5562468b2ce57ddf26dade4753aa05674b2307d51b6df7f8f2a1bdd17b03058b69f70f610e900a6a9a21dc54a19604e9f4d7bfc9965d65c86904add06391e4000e92f60db54220c75\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 2e95b06ba6e48b9f31b0a3de95eb45b78f7b4c1141e21fe1723b7e74828cfcdf11d8dbc3605ae5e6dcdc7271ea5226fae7416a998605dd797768adcf09530206b71550c3c7d138237e36052f6799c62c8e4a8d0e4c30c1df8c7b855a29caf7651fc3fbb66ec43be26cc5c15a30dfde71ee504a905de88197faacaafdaec384fc00c4ccefdfc907713066562ca1c8adcfc5585b8df3ae07629391c8678a2c6854ac568f100dcfbef41eb29a97a16686e5256c61ffdac19a1fe116a03cc4d6d520395f43ce5cac6294697576b2b38e8c1e6c0bacfa04a4f1c5f676777e30d294da601ca4a038b2f98aed0fcf196c49de1677a24f878943ce78d8ba3348e0fd346bf3e37d6b273d49e99815c6726620b21e34ab1987640934754a2993d5f1a3c0ce437f60f0a3838166c26d310d979de13b5b18460c749161165c39fa00a20ece77838a790e0e6424c6a4456ceade7b8801998bec79300c399cbcb69f4e38205e26c44fe59e2b53d6c9163b85818975c5f4612d380c4dd3680dd72e2d440cb9b94b3a05c292e5b13d281d0bc01e45817340aa08d5b1b86f3b9e8f0a9c864e0564ab6816266988aabb6ca8dcbc9fc6d8bb9b170b173695ef17cddb7a1dff6c6be3bff7c9746143e911a4e3dce18a6dd624245b434604a36e7ae6355d3969d868d91b04893bf040a330b481b1eb9e046e1e45f7ba187998ce97aebae7e79144b9dd08\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 90939a827402f01d72cc5e3191ab668c97ba89f1b7a2d49d015d313ad202aecfc21d4cc437dbd13f84d43a61a654bfe628b2e65d5ca41af6f665167e8a80475ce5b4af15e301e3d9475b5d37dd4c24993bf025a3c17acb106ebc2ad96bdd578acc9d9368bbefcc2d17f165f9e5a93b320dd3bd82efad8018cb25eade39970646ec5321247033be41e57eefed8ae5765b606597551430a3866c91bbfcd296ab7ee953ec85d9d797b5654aaa228f1d148645988cfb63062c1d481f9e2e39bb9c64300642da85a3a4e1a6dddd57fdcca3f1a94e2a34c2f747d003a1a1e7b2881b907d3ccdde879964240f4beaf7ebefc7e072f3b506f441774263fc3bd9255351f4ac00801531eaf1f63807fe4ac99e3f4096e44f067eda16980bb5ff631322498d87d39405d68d763e42fbe807984734ac9b5751a71b9df3b3e90582bb0c49586f9eb8ffd29e5ca2f8a37df3bba99a3c212802d06bd10fcfe2637cc2728867614237cfce1f3b3cee48e135ba1fe9dc8025dc8580ad899c5ad3b6bbc18afcbabb2e8a104b27b01debc295703dd83ddf98f8e1cf95672b2a9d3a875a137fa18529cce79e0a7fb43d2f47814e01b4f5cdc10469f25fbbee9903f9e8e0bfcc6964e746836aafcfec3667aa258a3a6efafc826dfd6d298b8bb8732dd766e35e5065ac0b18068ef35f234667525881667dbf684407d7a55b02ee7e2c67236ded6e3139a8\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 30d9d7d06d7e04ad9e1907f78d51c19928b0a42f93d9d29f29f20abd82d7710354f07de3dff85d95ae2668d91332233e08ec6ed1c24ebbfb0e2cafb27524f4cbdb73f52d8da53f8b2a7e4b9f718b7f6bb2c10dacf3c3527c9418c6f5d9d0f532609c3cf6442deb1389029e7a3ccf4f8acb2f2b9fb6a7777c967a6e72f8fdd57b90f7375ec9767f641405caf4c2d95abea0c65d68d9ba3bde7a941565eee149588ccc7d43124f6631d7519a9a223bd6a3514e779b833cea3fe5dd02a34a74388cd9bc313275286a62a464d5f71a8dffe4e6d5c46a3e9b7926b7419743b48c07abe0b6495d09b15e16d3ad6e36293ad0606a2dc4e4f008b7fb1000b8f1ab00cc50e6887dbd01d8986241d87529de9f8bb3e6d6f47cc32145afef73e11a0299b0ae525eabb2d6b11be1779d162a533e9d1de1294974180499d954d254d47959979d92ed7594fec14e6e8f06418c04e79cd8e772213e5c741054db1135babac1cd9f2730f5f509cea75cc717b31a3581b4ebbd17518d9d11350ce46239b5b74bfbc98f3b976852d755005420e065b512f31bdc4f9971ebf9679c026818ed27f3585ba743ad384b7957db557d6056fd59e12e8a711222327ada7869b625c76eb23eaf2991612e7243b9048db5296dd143f7d0c5299939c3340b907be4468df9f996e0e82c5d23b6c232c4e6c304b0ab9b830e23b6a057c24360a6c9f334b896517495\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ec\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = 9685f7feae17a1afb625b6bd001085951e3a4b5b4c15fa637f1d7a723b7d98e555517f891d3994143411042b6471128b74e2c9e00ef5f3ae0f2e809cdb27be25b63d3961e59a148d1df2b56657d8539193eb4cdf6325b77e9bd6dde1dc83ad886eba8240799b2e7620c2514b54a75c38700f527fe272b12b5f6e5152eda41bd85a7ea4e2e9e926250d4668dee34021307c719440885583929e7cadbcc975849f2a47310b388bc6ada3f38f19eba5eacd273a46634ca74ce2efa0efa9e17f2fbfdb549228149eb8260db33efcbc67022525d25d26ad3ac8451477a43109dc6e185ca676955cafbaac65e25e535f7262b82e72bed84f178823d00ade7cb4ca406fb9c7b566db75e8244f490ff2784844bf1f04a2134daa21b2c01a8b1c6110e911138413e62cf78845eca876bbc4a7f6e9823cbd6fb3cecfeb5a9d6d89ce5cde18a8bcbe3618c30d7e6f1eae5057f200d9b8c2a87760cb95fe714ad2bba2e2773f8268301f751232cf6f55b2fc78b79b527e85fc7f7a511995c1bde1cabbccb85b29214a5b2b16856cf9aa025aa0642de9618237767c6a3d424953afc87a479259416e13e263ac9072a35b1eb18b6de1c5bb7f56f4a4046d3e2d69778870fdc661d6a9b7c729f4505cbb52e8c12b6f195b5c84b8b88523dd5c773cea8a6460c517dce950991511e852d2a46e4109ae8a26f21b9ac058a26138c7b481270d14d7f6\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00000122a411f6c18869d9d071d89fec1f8d91a658d644a5da66453ad0f0fef2d07146e6a96c87dc4bc5e2d5c65cbf493289d4c9dbb3ee79dba765c71d74d8f0f0e9342f39e8621d791c813e004383fa970001c72a859ee9d01ff9920a650cdb08c11e95df70fcd3bff1f21bb4838a9534f815085238a9f860c27ad6e3075ece222d7d035732c4ed6d4d4fbc64d153da106eb58676f527e7867a7c46dd86c0f55451cfd22b07897f84621765215dd8e2814ff9d9a9cbf828d594c16ac10074689ee3472280fbc14c5f723286f2ca0f15f4b91e25559e77c244be757c18ce7743fbd0151419a1317b82407ee16e2a5b970a660706d0b4de8368ea542ea576d1c0dbcf03e07f646b42a78e430a39eaf5e48ead2d6d0cb360dbd6188d364e4a8e2b0094c698adf864724dc7098b4dda564d16edf775060eb7d26c15692878b93af87c3cf79027ebad55a08ff9f04e863d3d56dc9534d48edac17888342ab8c1bb28d8681bfae21bee0139c16ec1f6a60f2fc4927556a56c036a13e27eed7b056d5e92e296a5b7993a83f788ab0f943b56ab2622b732d717b2a6a46ceb5b9361430c8e8cc05dfdb2af949702d03a1a2b438e1612293a05ded6733e95fa17f24a06e573dd722175195e21f1f5a408ad2d72c8cc788de6d7d02da851f64a59bc64fee89eb1ffb06addb5459871a4614d6652374ed29811d3ecbb04a6646dc261e8aac5f109\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 0122a411f6c18869d9d071d89fec1f8d91a658d644a5da66453ad0f0fef2d07146e6a96c87dc4bc5e2d5c65cbf493289d4c9dbb3ee79dba765c71d74d8f0f0e9342f39e8621d791c813e004383fa970001c72a859ee9d01ff9920a650cdb08c11e95df70fcd3bff1f21bb4838a9534f815085238a9f860c27ad6e3075ece222d7d035732c4ed6d4d4fbc64d153da106eb58676f527e7867a7c46dd86c0f55451cfd22b07897f84621765215dd8e2814ff9d9a9cbf828d594c16ac10074689ee3472280fbc14c5f723286f2ca0f15f4b91e25559e77c244be757c18ce7743fbd0151419a1317b82407ee16e2a5b970a660706d0b4de8368ea542ea576d1c0dbcf03e07f646b42a78e430a39eaf5e48ead2d6d0cb360dbd6188d364e4a8e2b0094c698adf864724dc7098b4dda564d16edf775060eb7d26c15692878b93af87c3cf79027ebad55a08ff9f04e863d3d56dc9534d48edac17888342ab8c1bb28d8681bfae21bee0139c16ec1f6a60f2fc4927556a56c036a13e27eed7b056d5e92e296a5b7993a83f788ab0f943b56ab2622b732d717b2a6a46ceb5b9361430c8e8cc05dfdb2af949702d03a1a2b438e1612293a05ded6733e95fa17f24a06e573dd722175195e21f1f5a408ad2d72c8cc788de6d7d02da851f64a59bc64fee89eb1ffb06addb5459871a4614d6652374ed29811d3ecbb04a6646dc261e8aac5f1090000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 22a411f6c18869d9d071d89fec1f8d91a658d644a5da66453ad0f0fef2d07146e6a96c87dc4bc5e2d5c65cbf493289d4c9dbb3ee79dba765c71d74d8f0f0e9342f39e8621d791c813e004383fa970001c72a859ee9d01ff9920a650cdb08c11e95df70fcd3bff1f21bb4838a9534f815085238a9f860c27ad6e3075ece222d7d035732c4ed6d4d4fbc64d153da106eb58676f527e7867a7c46dd86c0f55451cfd22b07897f84621765215dd8e2814ff9d9a9cbf828d594c16ac10074689ee3472280fbc14c5f723286f2ca0f15f4b91e25559e77c244be757c18ce7743fbd0151419a1317b82407ee16e2a5b970a660706d0b4de8368ea542ea576d1c0dbcf03e07f646b42a78e430a39eaf5e48ead2d6d0cb360dbd6188d364e4a8e2b0094c698adf864724dc7098b4dda564d16edf775060eb7d26c15692878b93af87c3cf79027ebad55a08ff9f04e863d3d56dc9534d48edac17888342ab8c1bb28d8681bfae21bee0139c16ec1f6a60f2fc4927556a56c036a13e27eed7b056d5e92e296a5b7993a83f788ab0f943b56ab2622b732d717b2a6a46ceb5b9361430c8e8cc05dfdb2af949702d03a1a2b438e1612293a05ded6733e95fa17f24a06e573dd722175195e21f1f5a408ad2d72c8cc788de6d7d02da851f64a59bc64fee89eb1ffb06addb5459871a4614d6652374ed29811d3ecbb04a6646dc261e8aac5f109\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em represents a small integer\nct = 35a67c965badf169d565e16c6492d4b57bfd8b76e90df266c8c4e30691207f69b07b5be5e4392b812edd6fc5d3c4673b69cc9cb1ab5dea6d0124909a1ece9d35782b2c417c1b5ab7bf15eadc9ec549913597fee317cb7f46dc5273c372cb8b5c3d7398c6255595cda35884668c0e21b44f97340d2b36d5394a60b3333e675f349c519eebaef12e36863a01071fb2308648ef4afe15511eea0f7728e1afa4f11c8fa8b25173a05ec3fd5785a4e85b8d2f6a058c52a61725ec3d16a4e66ae33623df470a310d", + "3f4dd2f0c772cfe0ede15065b351c3e0892dd065a0fbfc35e6cfe47ffd90dbdd465bd7ea500b73f4981f3edd968cb5f9d2d1fd5abc1c9575ee16c263ba85d349f23de634801c2b64769b375e7bf0d098890269762840fa2f6084af3d9276a030b975a42c484d2be534264562b4a3a96d8fc7ba0b333d5af7b7a218fae0f23d21567293132ba3380de85689a1e913021a8df624e80c09d9c0e039544dcf6233c76071028ebc67c9de3ee674bc6837af70fa12d22c6f0d04f3060e2acb6700c3cff134ab90c2e3b1d7526b2fd34f8d8197a2c9e2727615732b14bf4cca0d38ed1dbbc357e7e2cd994d8deaeac9e6f44f63cd0fe509180540b5f5e85431d78a2e1703737ee082e0e709d55b27a0734584ae1adfbdff977e7019978abc30e0a9736b6b3aeb8a9f7fe1843c1611a8c77f4b92620b8167335ca222b44f3b\nlabel = 8b64ae26615eda5dc0a47b20b4f2a398844e7b97a06abd28b8db929ae347a11800000000\nmsg = 0cb3e2a241c8977bce02b885deb4bd3e707e1e950bd20d6573ef1cb28e558aec1c4064a18a0d656c7649d5412c422663784f9d24f4ef4ce744446a8e22634a4da006497c93df79b1a1b35d3461ce7ca8008dc4e2b23ca9fb63f0e1819e978ab95a173127e3c347ba33ee597b269c39983a018b9b79e596296582fae18da8c38090f1f775cb3b12f45fc33dfbafbc262b2579d93370542c2e67fccc40872dca0e2c177a349278d9a04453603c7c94a818541a586470c53302a4e0541081d11de7205c3bd97987db419aa7443bc7256213a8e046d1160ca9b77e1f10d134d43ad288367dadeeb55633221876e5783214b7c454e9ab79741b8d47e2d2f8c8ef01fc3ce7cf4b3f18068cdb386ec0a5734614ffab0dbc2ee1cc35a2cfd2e84426131c78630b4c8965796691e84f276ad55c41ac6d9d66b320580465b9d8d5c956cd4b144874c3430b4bb9e3f9408b420f0dd6c86918f85197e53538dd5e7ccda27d0cc62d939f394f7b6acb0044674ab549f087b33eddae5e49688e02e1ba0abb60e28926692de9c31667c147a8058b6db9ca87b217048d621b8685a645ed87a5d1edf0027a4eb07bcfc874987f43691f3e82ff028f7052b66610ba4a02d25c49\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em represents a small integer\nct = 93ebead3c8001ed15efe1648c9615db880d29fc29efb069671fcc0d5888f6ba3e2784639e6e3b9028614603d2f5180680aca911f23c5cb3028ff616920026d65afba45ce6e8c708e166e11ba2d837e4b120563ac783ef6aac5baafbabd26dff137ec98971ae892040f9795f63ce03f8df39ed75ca38999476088a21a7e32bae2f446e8a7ff5d6cfa78fb3635e9e301068d0bf53a36d66f0837f69de0da108f5c43caedb8136bcb9716014f09a7eb76f28761ed675447fdc46bc7ed2993a408e047839ba94a7698361b102c5e22b091ba5973b82d4a2040cfc5bdcc767faf5479a5da031d1be8242f6b1ff9859cea44db3074f021a6894fec3b637e320fdd4a03bf1b58fe91d5f8fa36f41a1c989e52e5c7b2dfbdce9a6dfe75d95977fbe533a753ac972e92388351080eb1d564fea5f3eca118bdb6004c0f16ec0b41acb7dde8708f65a8cf3af10ef8d3e9afdd314fecd3d7d4d480edf892f5117a6344cb12a2d39637d4d74597c129d7713dd878eb34f6f7dab71e71efce02d17eb008d370b809b31202cdbcc15f437cd362e7d41a1aa2425ee578ff8c19e6941a79d7bafc87201e819e1fbe5db1e7148628806b4ffcbf0e0de6f4632452d606122899452282ccb9b84ac11c70943386b6dd0ab1a5707bcbcc1799708ac8b05e0006aae87dff7c5c9b167f50c0fb6cba16c7a6e3882c32771059591abfc5a7cd53224b120ad1\nlabel = 2750512215b61f8e6623523475aa61c48ecec1b5ca09ea23bfaef162984dfce100000000\nmsg = 88ee82a2ed9e2db05df7d835b69113bf60ff23efe64e0bd14bb064e197c03e75f9730421be7b35770bc6dfc660b477276ff0ec936a3d3cd416f69ce8d10e4a4c6dc855b7a9e2bec17e3443ecd35a567fd0a1ab0fe027757a4b8c90c35d3aa26e337b99d6a1e0333d57e997a16a65d75ebbc8a06eef396d316ff45d066d6f46d18e68a423b8056ebc97cd8dca44036864f73584872405f8935e33a1247f20957f470445c36617087ad5260395f5f2763dcf4027dac0f95f0b378c9a1eea7ab02092ed8b893257615aec24a7ea9ce8edffd082972517246dbd9fcaff3fcff191cf23be27ce41c97b77b0e6d0add28848d0453acd8fa996b46edd975934d449d40203bd2bda89dbf80c12859c00087d77f58172226c065c8a7a3ee9ffdb688b8134a06216335b1d5ae67b5ed44c48c01c7fa54732478a2789be70e8082707395fdad5bf7cbc111cec0fa6141d8107e962e4c22c4cdba303dd692d6ecd71b1fbfc33487b33be2fc6e261914e407c155e2af7a459c10a1356d679a5a338528a283a47163656fbcdb748f5f7e244291f6699b0355f0d3d4931bf6c258f29ecfe69d2d01cb1610ddc40751b17fb275c68c899782c43d1a15950b53dc42c556b0c61\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em represents a small integer\nct = 054309a578d6ebc75b500308a2dc17b0f4cd5f9c1b3776bdd084f629eb6cb96d419a9cfcaab5e82908aab40bd28f1c622ce7b5ae40487aed8b56a71be56a91b6c3a7059b5cdbe81e5c7d19e2b63fe3c55833cfdf176eb5d46b0b4237c4af14eacea75a53dbe3770d934d5f8fab4f3ac1222264768e12f4fa4e4d23b3b2cf5fa4e315fb3da46fbb821456e17873e7ff06c247be7feb91ea4d1f7fdc07d351f423a4d133ad4ba543c9eba67b06b9c023b06c12e64b3d9ced33192945f630509f38053601a70e9a1781ae3688db6926a65697f41b5c51e2d97cbe293d39f270bafc0ef97920d83ca6a8bdacbd4ad1f5ff7e6643be13f2b6a7826bb03c87c99608a3ba5088c5703148928b30fdd459d902af837a8a51141a10b7eaaaa47a5458e28c10c8c92522efccecf7961f9345b4f9e00fe08c1cb01d0780199ce25edac27918db9d31adc7bafe055d4b76bb6f6b92cfcd8a51fb57718413e6ec3b7b2fe695baec3c0b15f63c91cf1f2d5a471e83e8a6ef73db86dd44c8284e0f6beedfac5d50bc2a8985383610e388d4902fe179cc3eddff4e24e2d4585af1dd5027fef0f6544780d1b43e3f23c04db2b00f3078986124369b8e7db5295588d3ec5340806229069c50e91c1e5a63446ab7c5f7245df2e3995ff5e39d4f5c4c734fe01ef23371e79420c43efaa0683ea212580d7e4d2ab5f3cd988a26ef9b3bad91571df86a97\nlabel = 0e5192d581dd952ec3aff44952004636d015ecd7faed33c005928a26bc0d30e000000000\nmsg = 0d9c1280709b3d2fa20196594cf21174401bd42de9f550466a506bf1f088ae58de149971a848fc31a4471bc8500921a2dd2c5a642ba523c264e5a1e0571e960df2c7d3848705791fdd05d6518e92034740719e5a25806a19c9fdc454076b150538dc7e949f3c997c17c1d3beb28393b00e4778c4d373e8b7e4acedce664f9196a6ce3e1e2274d793f58b34a50379bbba57b221f961c0b10dc5af3fe6d55e368d91357095c0ede3cab024f4d6e38884616f9e9b8ed2b185036d44b54e3e26d2d84b0f8b82f401a3bab3a8e2fb63a1a7a29e10f821762ba1bc904a619c4c82ddcb34c2091b8326fa83246ade38d516a3c04a31c9a934015ba0dbe6cf992477c52e7d13bdb9fef43230fc19fab553c04337ca331860a1b1d6af4d99ecef5bcf2e28f67a4b0182156da9e5e7b9eac9e8caf6fd5a7463e31403d1ca14195a25e697e0b8b3038b2ae86cc6bc2a3aef690853778984ade5bb45239982aa99c961936b64c8e89bd2f35f8853fd1df173d1afafb939bc4171550ded9ec0a8e6abb02656e45adfab051cc64040a736882206eb723b5f36def6acfc31a51bb6524dde33205ed599e38d7976af79c6986fed1f6e7c064ccb6d57599d23bf9a1c96167c49\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has low hamming weight\nct = 904f9e8ae7e411ed6172cc00bbbd2ad1149573d177a9a2eafb9c0a6df18aec5bd83c1e4e865b35425e562780e57e6d83e1b5258978a444a1f91fe68be1bc0c529d64702d3a0f7142a0f0ebf9a5fa6df32d2fabe3d2bc7aa0b0f82a903c8448e0037a8e204336396d5ad28fd8483159e45102360791d7c343e973b38943b0851d339f868715d6ac4e5ab615f9d430d666032712e2937cf325977db79cce435d8e2c6d75b306b668f72dc7cf2ba2f8eecbd23b54878d1624ec6d7fb72ba26e5ce30603b66edbe87d4402e989fc75352698bf7fb03d1b5694eda874b99e7be2fac348f1736a351207f1cad43da26dce1470a55a795f3d11fa4d6302f68b88d976b2989dec0e669388c62cb555b929bcd6b5e4e2e42b06bf23672f8b1ab3ab2078b64a598be8d3ea6540027f736ed1d75531c0ecd52be66328c4eede803f70e8cdab6524f226d035926603b27376fbdd28564d8361f7584426188ef5318ea7332619bcfb2eb02424e1737ee0719562cc9975e4a0cccbd6e41d9a133384a62dbd2fbc36c928827c56f275731f4b197374e99c572d190a18b35f19bd9f5d7048cc9b9e034aefd724638b37a973348a1b5e8211c24fc16795779885acf915a7f2baa7087ee16c125a417d7a180a8c969b0d958f3429e12bed1a8d24b1b1f3d315145169176d69707d60e34ea54b7af983722ad91a05ab44f8450a55fc2e6017d0604aab\nlabel = bb9da557e9104db1e8ccfef13fff9a409a7d459e1d4bfee04ded3f75aaa0f23300000000\nmsg = c41f3759e1d39fc1a701e34b0876440172eee941bd9a5bda66ce86ba942527eacd2a8089adb0d9112c57437818d1cd9d0ad82977a20a88f8599e23b123ffe00fe0b9dd3544fee275d1e48f072bd4eca1e3a3a40afb914f22d3cb06803575442d04a2dda5bb93453372244d63b23e9d8a250c54f27657ee68024abe1ceb69bc3a4f5933def93f4b1084b30e2577d6eb2e21e5febda06eec675093c2aa117b7024c82b2ffa9ef5d6bcec8481c5345843504ece69e52a8a57285f048f69b1afeb735aceee081655b8381f632966f3e34eda7c8b6a7bbf4b4c7af65b2d9393cb4424c94930cf941d15675c6b12e33f892e93cc11271affc6036434e9514c0edb18846c0962ec369f4834d0ecdf799f0b36f11837533d3b2b71c9a819008a14408f0e360d44034e14bdad6dee228e37ec34bac910970e718ca4467a71393b59135e19f2dde5b693383e9db1f8f890b5ae64a779c6ab4bc9b48185d1d03d69037dd03ff1fc4aa7368282ec50040a28b160fb406b0a573d0e10e1906e0665722a07743f34c8779f3d6ad56f4cc3e53d3e2ab666684bfe67cc631e1705a47df516cc440d8ce171be464a68cb9a2cd43d1b92414bc3620f2c1adb8e53130306750414\nresult = valid\nflags = Constructed\n\n# tcId = 35\n# em has a large hamming weight\nct = 47b177a8fea05a0c3f6668bad507fbd3f0278faad6938c69b45826043cd24505022c2ba5fe8da4f4f4eccda8e86f4b4eb290b5b53952a803326a60888c07e41b74496bf4f5df9aa6fc884eecaac5dd52252d4631ac09c3df407a28b0c10de2794222b4a5379468a407805f25bf6077f8ff834f", + "c49a01d6b12d2cf133fd37f648da7a24dc19035d8df2ff9da5135387fffc1abaab10028bc3cabd79ddb8901a81940ed80d304252b38d7e62ed0bed5061010737d88d9482e99e6dd71c1db75922cb2304c6ff0b594372dc7d73000a80a0dade307bc7cac2a9e634c32573ba9197b6bf554ca549227815325399560c8aab7d29224d99572c91b9148b167d987c19c8e33e7afeae675d5b4ec8dc013d439cb96c9e61ffb67937172b7ebac9decf7407c2cad48448cc5ac696ae4b53454f75aceef6e7a9fe7f04657bc0b08f3b0373324a12f4e0a04ae842483abf2aa9f11f236cd512cf70859d1be27b58f7cad0778a34708770fd295295e89c6ed6d055563ad5e7b30b64042860d2d4a17d7d53ba648ee27639ec91a9cb4dfa9a640f18dac43a47717bf1bb0f6371b44efc63b970324a8e25da6e0e83eea6f835aaabb815eac784aa023866438c2763599e078242e9a9aed6895715fbb033362fb2f1b543d9be3190dfbc2420b57c16816813ec78be3faa05604379ae168ccb0d6ab9509d0a84f667331e158c1644522c7b0ca862\nlabel = adc385a5ed585a2afe16f5f539620a47cc3352cb31c836bb72e39dc7a23b84c600000000\nmsg = 12087af4d447159fa47d932be56c419788668b8da88954239531178a718810e3a6eab3a08caf92b39bf1500d64eb0f9076100fe45b8bcc1b04cb6df9cdf05cfa1f806361f6c72f2c7d3afa9340d3b5dd1e2381193ce01a150701dbf4dfd99b8fa8bbccb7d0336b2d5b7df7a7d60a2c199ca037c6125a20c115df340e417f6ea87e7bfc53b19108dc404e3caaba3338e4edbe2e66aab7fca73fcd855fb95557041c59256e35306c102ba3043624c4b01378a0dbb3fcccd81e9907bbe9f17d44d0ab1efd0cf45d8742afa55ab4efb08a84e1579cb57d8c233c0021b1d22c32b6f6dc903d63f12df51959b06b7070077ab9672bad56608c22e54dd5cb4969c9798bbbffde18cad39c18d8f392df84fa68142b383d4848ec907c251af6aa3b8529b84100b981bac087ddc9e1df72a30f0e861dd4cbff9b1583229ef9610217ff4592955db67837842394f4a7789e8d99255b999f61af7244d23e66805f368340c7662fd398172d326076936fd1e5752cc9b176b30cface1bd386209c50fef70e95f6d7ab854ff75368109c277fc169615803dea8df39fb4953f78c48a42ab137b0e6ef3fb7a7a45e5790773e8465d014e18d9d51feecab8f2f3e168ea78d410b\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen135 = 39284; + +static const char *kData135[] = { + "# Imported from Wycheproof's rsa_oaep_4096_sha512_mgf1sha1_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 1\nct = b9fce8bcad33219375323a2e641de7650c1163d9aaf5f2f0c5b96230e788a9cb970fd4cfdf9df98060267e302b133e4974c0cd529ca1c900dfea65b46078fdffd9d589319087bafdbdbb8467013e48262bcda8554b225dc3567887da78976d5d9ae23ca9914248debc2383634f71d171ad375dccad198eabf391f4bcea22473c925e18d5210b02c555561592411d3fa6d2e425415a83fedd651718a8a7d1db2d81f64685c8da9a05e7201593374e30173ef04b42b1f16f0b8a8cff6c3ccc6b251fb61957df57176102a8a03d9718d95f3bf637b1fe1feefed9d50ebf9ee93a99c60d2e404bb78f9a4292ae280206782564cea8e2ae831f9b5d629b88af7c610cf28f9c6ec56534d16b70ebee0df20f8ffb40afdebec977d16f84c3e583a1229f0d2a01e0959b1cbf37448ab947da05e7cde1358c9bdfe298f2da27d65beef13aa13cc51f04c18560c054dd8f85d34ec759691b3d8c72138df12e6e442992a2466e3a6db6bd322d04c069741e0accc5f291a6520fb42fa001764c441c37456f9d91ab31c94283bd4a299fe4fda6fbd132e04d8d92157bf9aedc80c66cf7046a33bfa308ea7f5f56963edf4d804483e631acd033f2d9ec190c6d04c55540908e76f9b3749b8aef86287818358e4470cacc6d45fee370bf836d2b9277d044487aeec4064c74814d2c57839f6bffacdabe1f2ccaee4492b2a5b1ab7f3055d2569c58\nlabel = \nmsg = \nresult = valid\n\n# tcId = 2", + "\nct = bbb5c693aeb28296b4559a792e489c74bf21c3739153be06dfd336f397f16969fb1ea0523f0adc7e206d908ea2a8eae1011217a54af3beeb6558bd80f2c111dbe51a0e25f3ac65578d4e7f6b41bede65813bb551c97cd70485b81d70934e86e6fa349287bcaf977e666bf9526db02e76f82b3ec2941c2c7355133adf80e16fd8c4d01a62f63d1e0e6d67a247fa2084409df92f8f528ddee355bcd9cda753010bae377bfd6e1a29a4021b239f98cecb5b8932c268393dd5ebe58d42f7eb59fd389491cdf05d29e7cf8c148caf71232853203dd76bf0ef8ce7be145196b7bfa83eca9761669fdc281ecd66ac37d45732c510b8d1f520f8be259a2de0220068a5c741358d4c34d72ab820e7791764efad86c4113988cb71ca323f31683105e273c037c02b4d4b56e7a2a341f9348180cbd671f73adc9767e050b58b99269b5fd696b071473e9d767918d99ef0e5e69859bc0a3133be92bf38edae5d8060cd5c13f2aa522d0389c3a5af934f81c46f83492c1ac6e856b2b1e3b17ea83a7dffbda5e8f4ce57e5c106c5c337ad286858af9ccf44417f2e0cfea2f196d89e078d9884fc176b02673d3295fc3849fbaf4829d7f310ca53a3861e8704765e8654e2b0274d6bf43152d13ddca60014067eb1d5589045ceed16df90a718260db6ee83662542c8c6fe47962d18758824b7f276dc3d94b6b8bc85bff1babe91b13604b8696078\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 3fe06a589140e2e037ca786111219bb545a189b506c2cb52376b6fee3d8c216b33578a92623f4852d2c82ff02db90b9266e5fd0301c8e156a44093206a8bf93c48022738a35b834dc025db456dfe003026aee1e7144f95db86d357dbc93d11ae9568ebd700fb577e9ffaff19f324cdc30332c0a680c47476564de727eccb1a974826bdb384a517d489901cc5f0afda3be84fad6a95435aa8cbd91b0cc5d707cb4656303541b69e70f9327c2ee061d96a223bb6e29b5851bcc345ad6e47feb0b86565706fa575fbf7aa4728d997023de295f669b34ef205feb24ebe07074b2ccd0fbfed7c3b543ba56875cf0addd47b8bf0375a5706684763dd7f7f0702d43934726a1d2600a668b6c4b170c85d0a4841661bd946b0c1ecfe801d1e366bf4432e756ecda05afecf29338edfa80677e3f21e54213f77c673786ba5cfee8ee800d651414d055d51edbbd2108afa1ee8f354ea7427ef772b31d12950c1359e9c6b65a1e2a2636efdc0cc6da8956ff84977c25cd67e31c88d27ba681626f25acff63b056f402f8f83090c5be0d51b6b9ebee8ba48ba88917b02058f4efdedd354c63063ca470036e3ef13da38c9462da836826d9472be5a6133c137f496b2337c9d470478800f67045cf9b1f5cb072847da6981f77d4e16f71181e90748c40c79df936e36ba4d4810cc81023591a82465f59e0b98f8dba0b0503b8bb9ec28919f0d89\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 8889564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 81935470cfa189178b215635b35436bab84d880c42127d5bea48563d6d1e52cc4116d8ecb9dc9d30b82756eaf8981ccde25d4b3555e1e26691d92cec29103f7a514036ebb1d850b795ad662c9bd6c63b2dba32ef4889419b740d4cb38283feefd285041ea880319eea371a15e99dcd02761029b5709232f5df156594259cf6f63f882c22a3c427592ef86b0e4a7d0b13f772234fd2889c13b157c2da6a94c3e3807771059c970a3aa786b05d79c92a36607fda0c7c3b7279402543debcbf3639b3bae654f48b80f65eb9fcf5d4960d88b8906ebb84aca936b7a06e4db3be1bdef0fd16af1a3d0fe03203492a0357bc7e76eccfef7a2fc1edfc50aacd0d46bc7a28428b92f46e3d3a58af3a7f9e0d4c70c3ac240eedb878891a8f148b1e729604d943af03ed079787a7f67f830e9a77e7fa6e39fab006398e09483e6e848d14a95e902f2cb60252059d1cabf319bc463719132bec91c6e7bed2341455c16502d2bbd0851301f86e0674c9c62f54e6cc9bebc268a4a714320ba2d30e0dd7996720466a976d3c9e8a11e38f32050ed5e079875160e2c1b0f8d4a29a5e3f6d04db8f501b205e56f3375dbadbc77c4a48117532917f09575ebd5ac491eb1bacf1d157dce7465eccb7568b2d51a87ebd493fbc9275d5b253b05d7744921cdf5c274906137b3076002a2c10cd52cee21a17feb9e35c5ab3af3e0427207c206fe6a068ab\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 8eae919086dc6c634f495a45d86023caf497163b2f4b63ab9dbee8cc8c139e41d83c5cbd2c54b032f79f3bc37e93ed2c7a4b652014b1fe4b607bca3529aa160c84ec89910bae46ae4d6e8bdd384ae8a5a18a48721e0f59aa9b8394ff821dccb8e222e7e7a2a33e3f02a320301e2e7a7c315fa0bf9f9c676e6a4535c34b621ff8345ed2b7d5d35014610040a9b3f81340f4911e230f356b469c9c6035de42048a68d5f04681d85eb9c2891c6a57a29e8e64cae0b0404d4e374f3188caa210c4d1378f0012805d7b91972d085956f067791529fc0357dc30aeed5fd3bc5efad687e5e9ec50957ac809d683b02e5764a5d8434e5e12764672807e18198c225d346b406b4dc06b9164ba5f3ae719bd376643727d9061745a2e587718206d66b1648bb52090b224c175688ea8d50b43a1d08ffbb4248ea7f351799c7e50f2d490e466722ece2c4f88f89d2f96fb9aa9ba610ddfd6cfa7b7a9c375e95575ae51c5d6de43086fd0c0663ff88035c3adafb82469a77556a91d32a421e33338bb16195d19010b58d720688d172ea7d64fa50caa902bfdc7b78c7bec427031ae9e3f691edd91a90c86e2e86d00dcdde12076308e1fc4c910814b00d751fe2e44baf232c4934b58624c1da5bb51b0e8acfb454aeaae2f04be02e4e121cec2b980ad7c23d13698a88d1d545521c0624261fb0e97422bcf76f47d7c33ad63a8eb4e497502569a\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 9284f12053cab1f558770b0da4ac1122dac9f3ccc92992cdcf186b62557b265a72234cd443e39d5d2e1e88d4c2b3bf569ba8feeacb53d7f4100a505de9118cbd22d159ac00d2702fc37350780cf78a101d7447d82b6e0ccf9d901c58734cf9ce7b182c05315b31756a30c5e563da32224272523bf01291732ef390e90d0b16de359a944c8fc92ed9949e9bab4059424aef42a5ca7c28040f3c473c952c52827159eb125e2234fdd251c898746ff9bed99fa7cbb2894cedbcb3218526ea286da4e1420af5c9fe91fd4d557f81b69d36964121e5202599cddd4993cd8dfb82a48265771b3f940a82ff572e514f5eee9bb98f848a31e2d3f7271ac9b298ffcfd03857cd562e8a36daa26cac1f1dd173dbc4e4d5dda6f3c28e3aa8c8d54dca67091d304bbd3217e2c42bf13ae02867ab9da1d3d01bf196ec8be97da126cde6a0244673477e4f0c98651592e25ce1266995c7a41d41fca2e2213806394df9a7aef43a1d90609cae8511514702d890fb3230b8c22a34720435a547edee50bc5f78da62224ecc3335e900d8803aeac4296fc4a41d59806c811924bc2d4a6067dcf71ae24a6d7cea82597bd14a3149fdf718aad5f5a6b6f126436c0621fdac4297d646ad0e6f70d524a48e58988066694f3618e013825d03c19c75b9c9d9aca436424a3a9a58bdb92003749241661527a6878601970abc94767cbaf82ff3ddfec7478638\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 4db93239d2b04e8d6247a970797e21cda029a6986a4e62991fc489bb1036ad5ac9f5cacd7bb84584f0371c2781f81b64b8289c8c0bb1f00c42513bca88417ac838ec7dff9b6bdc59a4e3598454fce85bb1bde30db75ea83352358326386214dc1f0d584939cda6019ed6e4433bd6a45e3a7a27a15bf08b69b70346819fa1fad4ae11b1ac7d06834c70b1d25b0cd2f7815a0a00c692cb7d0fa1f4cb53448834fa26b344fe6e38560f48f6ac1cc170822b599dfeda6f3709a8d9ce62aa21d5e37f8348808d3b50159acf7e3cab7efb6a437001a596c17d31be3fc0f896b41091541f705d64541e84871d0136e251f8d31d24fdd101672940efe26b433ca084ee48a7d60c5f4afc1bc60b02d0fd1ea25a77e976b691578012f251f542e60b784afb61f3fc988fce74b9ca5be9cbd9657a7d88d68aa9544ffa2198bf5fea0ecaabd8752afe5c51819dadc5c728c2ab1f6f24d474bfdbbd252856c4b7588cca27801c61df0afef9b892acb53842b0656c91f4445e50f395d4bbcfaba3146fd6631b668f4f5c1897bd0a12f45f3d03aed84a26f44ce2ad7facc05c7035e675b0411a7ccc6450bcac760def267f79bf65b033f6b807ba0153398b5cd5833688ca57ec08b48fddfb6cbe4ba4ab293865c67bab953a4b9883f8b03a5441efa492b4d8f2b7d1a216d057feda7a9f388d3bcb0a28a6fb082ec632bf88cb411da33898aa9b9a\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 29583aac29536dd4b6a21da5a44e1e2b6e755a45c67f828156e1af72c7b7138374e5110ec7e3d7385f3791c5198d16cb5c78fc6f0291716ed818ec6b6d0a8cd4a95e3712449f0e6b6aee58b75413aa6cb09659378fe2a43ec789310182cd7eba7be97bf2b38386508116c8d693ad3f49a825e1cc0f9f692e1c9e955a92d4988408b2e940ea4539a3579c55a1cfe91d1019c996cad449ee8d95cef7d84ea27fd992532db562cb5d3dc30509c9ad0ffc624aa8ead95ce75d914ddb89f5a6ad950323fcf94830744e9af3681eed79a3b1d88252b46ad3ebe55263c003f4efcb25e17b97dc7a3c2d5dd9c1b1b8352dd3ac3665172fad40d9a7e9a9a5b185d2c", + "b383cbbfb0bbae7c65e186479da5f850f466391ead2670c7512c3a24a35998283520827122e3577f3b3e8fccddfac3cb30f56e1f69f9e3c8fd503cd3daa2492b1d6adec372e11346ac8e6c7470dc31336cc9fa256634e927448a8eb7b36c49486d2f24123be03d021bd6058a0b891c06a50dbde6d8106de893c046a98d8ebc3ff0dfab1cbad8188c0e411b619bb1d4bac1da82093804e81621306cc06b34ddab2a944e1ca809a63c5ebef662ba409d20f1c980a311ef4d46a0d28921faa54d1d48a6f47b06292ccb4deb9dca5af89d789101caed8b7745c5439812c980c03a8a103fecb3be579c450ff6dd5920ee4fb7144f243aec7192c4d4a623730b01cd323a381\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = a0eef89abaf87828a4359fdaf9ad21419045568dde6cb1c4975fa744cbec96a60e2752acd8b05785f34b9ea28f825959422f50e2326234ff6df151617f00274446ceb3eba0ad79476ab70b1efb932bad03236af106d7c5011cfb4fd9b19ea26393651eef432422ac892f6905f4e1ef1f6c8da0c57289e93f580ece8bbbad8ed8892a5481685a8ceedabe4944bb8bf3022cdf1d004be65ab2bb24e4b2b1495abf0f0b162cf02b949d431fe6f629c9a80388876012e1fde67fdd454b306c42899b92665c7ce20c3c005a0bdc49eb32a482b410fb4d10918d7c4bd2ec7118980d88d567883117313a7b2c49d482686d8f02659a2801c4cc237dd1a792f2b70407859cac860263f05854d96fd588f0d8e66bfe4b04309b8869693e95f08ce4cf3662fb03b172661c56d8033563a883a0933fab91ad2a833590aefe1f0152472582c54a533d77c232155a70b628dedc6898675e368b84aa1b757c40baa07ab95c4a450b7097205fe751e415ab68e5e579a0e5de2bb9eea9fadf5a7b53e969ba85b023d8f0c6d749571baa2c531ed105531078de99aa935266d04eb82699958047ec946c63384d431076556a7e6714a039306420c483ef52f0ac7609b2a2754b31e96c9d2cf72357b8ca5c7a683b95ff221892058b1809df67ad955ae0852460374176f4a042b31545146685339e928136ce173aefd8d6f5066b3777ccaa5e5fe312d7\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 5061876f8bdda06553a4f653c4f0a96a96d8f823c9484a6c0c21ca0344c6f9d15086265fda4f6f14573127dc073631fb91ffe0082f926d696f974b22f4f9c899dbf16feb967ab9c66556a4e4aacde7df73d4c789ef2eeafc23dd06d363ce3f70da60283510512eabbd43cd89b7c014240c35266b87d860466358840f85ae91ff3ae033c7456c74f5f425c4371ca76bca86e2a9639f9901780b1ce20f652644cc504c2497204fa6b51759eb932f4e7099701718476a8d2cfcbf95d70845d7c0ab4a264cd023bd5fafd5d3d0c5500b17a38d0a85593e042685b6074f4737ca181ce3f58f81d2b29e934d44c665713733740832079c3888cee12a5435372a32df434be0c03698d2e2503adc889be76619f4076e02b3517e75a94b7bfb58faa31e660682e8964aec6abad3aade06f376a9ac9d3266ef1e4e51078c446ab6c1e1904e5a1c5b121da4767d53e60f9cc1ad40822ec20c19cb3cffc61fa8f211a58c57b2f79f4131289f0354eddab2bbaa01962a25fa19338b2e546ec96054013cc3c2688464ac77d89fd3106621080266357eeff963c2b0244599d4a594b69c3eb4458187a869544522031235c6a8f3ddaad154c15df7380b8da5ba06afbe9d5c4fc1fdee76b0e90483899d564eaf23c5df73764d4af52e10aa7891d82f26285ef441a785ba0915feb6df082044bfa6fb6fcb2a3a9bb053afea9c015b9188a4123f1038\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 370fb94a46f8feaf018d0f2b9690189bdb29942522166645d0bb7921bc837daac9cd1bfd6ec6f67e4e88a7ff996932c9456314f2aefd01d81c9246696a74f0818a1f05b656ed5804bd99f2a9149277f8e5246e0f9724ccd5f1a0dc637687389bf5540d4873b535c2cf6e9c491b5caa3bbb2da4e71f1c27b7681a1f03b8639139ced480875abdaebf627989ecbcda9373d71c431513b8e937c4bb259db0e5bc64bd42da435ee9cf5f700f9587f32796e97eb5f60969c443efbd3c92f310a0005eadf2301bbf6d5411f7800603b53b6f7bab1072f9e6af0a01e44fb8c9677ff655de1a020b8a9854084c185179b49695f7ada1ca5300f1c8c61cf616ad7c8ef8b8f0250411cefbffad9fddec87dcc9e991ca5ce1f16049327704a73e2d46e6703b40c70e569ef52f0841e89d28da9c743a71fc17e3c23cd720ab7ef22a25d068e0f205a708fafee581787156f6804076ce20546c3dbf2609c9a70f7ea85915a8d0b7103daece1017fae3eb397e7f8b4c9d2ed708c97c9d7e34de437ddf5db42854ccbeff8be2557548bb1e6b1c443fd2a726e36d7ecad07d7ffa4f304dd374180a7456f2947212cb8a767a9241c537211982a9d42c67c5f9717eb6c05951f09a5c40c9d4d4bf6675ba071652912dca387602006b99455aa66dc45a170954700604296cc45204f89d5f875f54751f48b7b10984ac60cc5a46b55aac7443e91bc3dc\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = 48a28128571fee7bd47d4e6645181e9bd4fda711b9a85e22ea31ee3668c2c4dd7f8f2e62bc155f642fc37c0f4d8327d06190242d9b10cfdfe70896e948a0272dc93c48a9ac7ea5211f6938e8c969c88ae3564f27a190b8fd230ec39ccb3f0a8aab83af20906b39a93bdc8d39cb09edc2f393cc3bf761ccb6a742b9cf6e7586a22f885ce9a9d673dfedbe4e54ea710c446a5489d5cee956b781013c83dfdd92d7af84b909b7bd4fb92e32d374398b7bc9f7fe145e3930bce6f600546b7e645b085a213200bfb1ddfb1d52a3abadaff9565416e526a2e065f8de084e2b729db9da4b413894a7bf36a50418872b64c65fcf92e83537f101bf9190b21bb5f16f65bfb50004139d36b78814adcf269cdb2c2b7dd19e2b380ea83b2af202cd2245f857abb0ac9208c009554772ba5bdb1b2ef2a3889c077e3c5641b223a04cdeec295ce6e065478a9f26ced392fe29b971b15ce35389e68fe5ac48c00750bb26d3f79bd7cf24273c5c232e7e3569f6a315b5a570cf6265946b6a006e4045b97da36792ead0677dc864c71903234ac1471ec2bb3faed265e2cf6159822b7cddeab67897bc723d6db29210e46b4da283d6f66330c035b67eb21f179f1828272b2a114bd72d7a5039eb63b9865c983f700070a8753766041489b36d6c66ff3f552f0f766bbcdcb9f58a4eeba194ef89e0ec68f47b93de49bc3006196faa6298cc7c7f1099\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = 5c8b5881da1aca7e3842d9bc22c5af2dffd0d357380d7e95695af13a2521084f373dc2827b999094fa8dbaa85276b97cc95be2d0923503072533914032c696ab44172520a7f0ef999a7c9140da1facb71b44ff0b09c9e64fa3eb584aea20f1df0d1ea8f816b0bc4be4d59c12f586fe4811d84f9c3f0509d6c729e8718e23f261cc35ed38387e5ded781635738149b237f3c7e736a365d656175806cef25f50cb61271b4a0627e5c42c46398aa146e29cc27961851543196416766dcbadb41ff39c0205dcc43679391c699ad8f1b7202a17c7c6ab98a5edd3b04012546919d924f8081d2ae6b259a17e0a2f50cad28d3e4eed4a0d7f922cc5792a26ef2987ed8ad6a8b6dc3c5d05626854ff47ee4ee013ac85cf817833b43e1a856b8c3974766702c14e99e4e4b34e4babc99744c0a621820c234e2f6a3693feeab4c7db39744a2f039bb7e6269315861644474fb7586515bf340c764af09a408618bdfd79a944f14496b0d306f72e9540d650ac72079be5a90ba9ff80df176e8f762847be5cbeb391b7234eb1c37426ee6288d584af02b1529cd2cdff838523c9dcacfd7dd0941abe5b9f3868491d6159b426631bba86846321133bbefdd1c720a5f250c18678bed4cc4b1304b37abe5e0c7ebc79e85f615818cb2014945c519b9291331dc11cfed6a40258c8d547c0442a69d6dffc75b529e5fdad3aaccd820e89db767f91b9\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 256e3457626f1b5bb2cc1f82d7abcf966f487ea2227d164f5d9d60c688dae539988cc75a0f670e8c66abd77ea06101a9d78fabff1c5023114eb3832d561b48e99c977f351a4125af9d0b5210ed1473f07eddd6edd8905dc21189e23a1502cbefdf184534d64c257b896c631d6b3e17672170278af5850663207ac60f4da2151cc13939c126801477b181131d6857be3c31721ba2da42e7146ba1c2f3033072935546a6ffd833c4e8d5a733c1b1cf5854ade160c697e8f8d794bd6330af3a2268e31e432841910bfceac4d7c2300d942739c03a1234ce2195c28d4f6ec3b01c4ded49f811aad03021a7a7fcec212d150ed25cca815c461acc520bdc60d22df38f23a4e7fe25572ef55b1fb8a61ca50dd80a16e9ed0faaa74e7b502c81eb5e84e35f30e1b286e957195ea8c5b0326e5c45849ebe4a920dfa623a0295248d5338e888b7a47eb9730224c1f86663ba3bbef1aba30e9ed91a49d6abda5e0c1c5235767efef235585d81c789f7d83f3c42bbff9f327fecccabb5e35a070a6deba53bff749450c5883ccb2cb5a5545163df34badfe0ccba4b962ddaaa282d83f755f5b1492dedfb8c85c87e387e2855ac2ac6e669c981845f6feb77e986bc84bc16405a44fe810d9e2eae4af98352f93039a1495e4cc85522016337f75ddc3af6a2a4a5c89c8978c4d1d7c21bf16d4631c6406bb317160306aaaddcffca48adff7afbe4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding", + "\n\n# tcId = 16\n# first byte of ps modified\nct = 8324d6f1ee40adbb9d76a16187d9d28aa2bb90202d7ef7bd7ba2d01cab0915fe4789aaba1aec37fac4dc16d4b7dae25650daea9d26cb1bfb2a34b622943f6e3fd01cf3479718b906afc21801acaf43d8bd91b7c2bf688923609ffddc7043677e906675fa06701e0ce610041a687aa5f001a212896607d19574280acec0780c76a8d5e9ec1b327c9190527a5f1c13a0326c138e0c7079a83bfecf601aef604e606b70cef7bdf1782c0dda68c917095c1a027694c5448c6653c1074ac923eed2f06fc96810b353925f33c48e509aafad75195f06332c8a0c4d05010d2a14a1b00b3f474a35897fb12f61d4caf772076db8a8f4fee8205f7b6f0ce12200ccd45ef177481def6f74d4c4e744812eb2e4240dbe0095c8a95f060ddbbd69f6a1b376558081c24f647cdeaf242a153b5e5ea36efd7dd42a6280f1811035a02aebe53b95f847ade834fffd070294cd8ba8d7cd753e0506d900ea1e76279ff293f1ebd5d973fa9da26090aaba7117237c33b08b9ed345672bd0147f78e2c9ec9b14e4825cce84dc2f39284e25f85b11939ef7f0ebb50c058597d054fdbffd8128f8f5822652b1c75e38d32f35d699b21d5a73f9ec5e887e139b061f24052974f08f36213c5c6250aded6afa138ca53c0328b0692403cbe3ed569304a891268123660cac7080d92fcf4b2965159c8de01cca170ecea328326c393bf2d118efbc50f7bd227c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = b91a1ef2ec1a83116dfaee41a62d3813d42ad5e092e3d68b6b790a6213b322b08f7672e85698de1e9d650399ec6cf9161fb3c57d63c623426ed663f2add206630f5fcbdbc3111078b804b84bbb7c9da6c1e90edd8a879f675ae49d7cbe4d31c4b5c1b8918693844b85f45a981f980c8e15c407dadf7ebe288f6487b6a85cfb5a4699ac0295a003fd58f06d428b56b430496e6e738c18578b846cd957f592f2b55230a27faa2c3d43dbd9ebc41a97f1120bd0e0a7e71ceae24770933a5cee41dcb424756c9934f0f873bacaeba7f5096087a1fa9b320facd6df2d390bd7f5a1c8ef3b92ab179738023590fd962278905e54028a04f4c6537e4cced2c9f6ff8bce8cd8ba1b2ed7f317b2eb9b6abe079750ec65e10579fd2db0e8405d5dd1dc597eb19888de90efb0b982ea435db8697fccd7b77a2090b1f4db9116c59f3ce1b59309b22493c79d48df153cab3a7164ed686812ae714c2ba5faadf874748928b036967310ab1d3b17aa4bea2d663cb7325dd3c877886aa2136271d3fe514d78629cd12f294095a768dddbdbfe241ed8d1e32e7c2b1c1dfd061ad38a84708e4fac5611a973a66f0e3354cc73117217ff4263abcebf7c7465fa1f74e2ef7d850ca3d3e9893e46741a7e46da50c9c93f258f9c62ff71b83b03ca1a6e98934519e2fb6023241f8d09b8d78708462ff61f43bed939554fdc306a81051aecf7990bb9b5a7\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 1d604ba6149ecca0f7e06492035e54d8b4b89419b39ae9aa2560d00c46de8a25daf8dcee5fb9f5aa6b00d36f080904bb41c72be319b3007d05d1a2fd97519e3acc0cd8d6f492991b6a2deceb16839f2c541255d026ed575f4cbc2bd83ee3c16d7746996c887e8c456242ffc0a8e4730778590711a998c081f2321c03593e85933127012d86dd0e5bf30d8433057e4880da06de4cee2cef6b3f8a7d93703cc0fbb6591464a0bac813c2a91c64c5508a1d7716ddf2b75575446ea87f8b94a8db97c95b8b977cdec73ac3ac3f9fc2be746a0b3ec323fc241ac2e22e9f5a52b62efe8a96de6b18c28df18013c091207c1029195b4137940a38aab6d59bf53dea5de16c977fe96d4ac615dcc87e86c044ce97a40324e325ac7660fae8614c56f86ba270bcdb766f5598771aa4fd149259353d752dca72afda5c86b72e2ce2f98a5478c800ae5a21e0d84cc1b1ad15355ad0be194c19181d984768738c3c7872ff33e2ae6f57b282ee6f9987cad599b0c510cced1a31793916a26e354079ba5bf9077720ba336bd98a275844136a433ba7e039c960abcef4b13c322695182002c1a39b4ab04b1994c7257e90fce4dd4681dea84044f6ab11df936ac8af219b72f17588abbe9080d67a0568e4b41d6869f8a1368188ebdf8d4c95300de029b3caa43ac7a08b2dda8a9aa3e6ad3b35a8b8aff9ff4c47b28dc35d06919a9be45833c107fd\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 96104d3365a60a8b4e6884fb18755e6d74fb4c114dd3847681d61303ef4deab05d2e34c44ebc6463ca72d641d9783cc4c5bfd79063f7dcfa75531e6c238b1ea1a85482eae2a8db6c7d25963e3bfacea905ffb37a9837707d5820eaead9b6958ac017d2e8ba7e0b1419780caa8bcd341ba025285798d2bc389ce095978243d48f94a2985966a940028d71083d75ff3c1509ea04af0f58d55b45982e70389aeb26ec44c9008df049ddf184bf0130e5671ede3b36836763eecb90eb544f6268c0dd87ed68f421210ae4efbc8c9601533f18cef68da370c1b0960a95d054cb4cab186595d20c18a409403f20ec25df0f928b737e369656fb683eea7a87e54c46fcf1a06ea3f2df95570b95ac39194c9f7d51ae98b295546f7b18f8234b95c99a6e9f37f99c638971e868b389660e95c12ead98f8526e2190fa132f7ddfa58b987ae9f8150d83477bb40d96f959483aee8f8b5d51b9f1df3e4e309db43c83795bf8a08db5d3ae0dea4370f5dfebebc5952eb6d4aacb4fbd3629cce8adb205225aa1cc7c8934e119f1b338151e545722c27adc368880936c56eff68c14ccea07f5c328d5a22e298a3a681c84d7ed4b7c5f78609b63822a327ad68922d0885810f797b27fee06205450b897fdb36c9c6b1c6a8f095b6ad15118c6424581918f3050f86a329821dcdd1c144cbaba537a25ee0fc4ffd90205e223eb7030c6d55e9ecfab73\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 9e3b1e800104dfd28dcd147101435ea933562abff19d63aafc2bfc854596809842a68cb42f1110626176ab91a03bffd82b2290d05ff163bceb387601be00f5899a165f697b152b2812774910a5e07269c3266e5ad61957ff8e56cbf7fd896a0fcf14e154e50e3f795e081d11ddf10d8edd6263eb3e0f15fa54b0f16a77da6ab159b6ee22d74177d8ae5b05215c9544269d0f7a8013baab60516f2c7fdf631db996b5f48797015db8f2141a7f10beb71e68708e964e3457a48d6da6bded0525e6bbe10507aa87bf486199ffb52c67df477f9d86d307d8dad384b854939928e2d962f7c7cd6d309027a3d3689c26b7da4a648fbf3854f05fcc4658ffb3d9c35ded1169165bbd750c230a494f602b2a271425989f2a7d175bb24c0095f17b0de0d9e7ca854c80aa870edc6a02e17b1cd5a31a3bf3c74c2c18513bbe7ca1f6888754f35e2108ee1a2751d88dbc17dc1f4856eb8998151da990960f932f37c0d77aa44c25b5fe6f92c288f68ec83b2e8a453d608b2aab73224bdcdc3a4c46303c42106fbf5054c4f201cb96052c919e1c0eba7b7a88acdf38d35c6a998cd6d81d04665416959591662927bdf801f0de837ec3f9ea86d2ce82b07310bd4c326d757e1a56476f2ca7f5fad65a91f2b309ac1bb39c44737deca8203feb6fb18ae93ae546d7a23f6c908cb0ea4ba0183a25120f44659a112939745352e9ed922f478aa6a4\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 576983b7901bd02be7e1ae3261de56e187b6acb5c3b891797fdfe324bdb249e1960d27b5498ed2ef4039391a2678306c8245b3fb59c3d9a55e62ec37f83df7cfa13a29cdeb4a5f9a03673eddc3d0faba2ee005b04679b7b476b1f7f9f841948a7983c977eb5319e6e667215b70ea465c5cf4d53ab87a3784bc30cde5b84cfc5f483d13eb3747364847668cf566a1992dac542f451274e31b00f21255e750022051d39983d77ea0b08e599e24caad762fce8f4244baa51dbc8b61c2d81ac1909fbc6144576efe1a60ea7176bf45f4091e32b37607477b20b721ee8e4492360164c98cd3b671dbed37e8c6692af81c566dc6e7d614932bf91758affa7e71fb8d5cebd71ee0165c0cf5a62a672670963a0afe16b726b4618d7ae0287a31c442edcb5e3920d363b230a027a0479578fa36c7481b901fba6087f89e6d5b18f8b80f503db8da0c67f71b7882c92da575d640a04a87d418d19857f4073429649f149a87406048a181c9d0e29a63b207e0a14cf6e40b9735e5e71522a779d27e767ace40ba92921e1b20cef245dfd04600a9d7ce98c00577dbb3afc36d0f6be77e493cab881a74522e2899f97777c943255852e3a61bcd69e375ac0939c37d38a4c5be0ed2ba60a5fb715e56c953865c17085925389dc7eda944d8eca151607ff7da2187a299d8bb5a52741593c451696ce684e066eb91137f6d2432db760fc2ee11306c\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = 9de5d8e7e5d4ca1a214e903fda56a012e739d704e4b910681d6f347198b1af54555fb28f1e4e071154f75374e09e4184f503d31b45358d72c4f1404501f87fcc4d124eb4573e52c30140e49aa6219e74f3aacf4ffb2e739bb96ec12e492e2a5bf490697b7a3b9f7fd3daf2f3bbdcc5c032441ff1cff63c70c3c27a7162afff864dc8ad1404ceb6fdc058222db8b69b1e4481f0044353d73b8e017a6a103030ac8d1ea2d0ec43c650be4fb8a410c4bc7ae813a06f6e3a393e5eb7272c52d1dac55a1834e1f3f6299573abd8dfda92c65071fe11be6edc0ce2561dbac5da100c4edfac2ebe9ea8756762d479a55132b0a922d7d405a301d31ec971581ae5358c435804f95ebec6286e7f7972a7e082f7172f66e5c118073a719e1a872665ea898a0a50c3d0bdf81b6cb1e890da4fbd8a9e45d78194dc687a5a91664003727689f7fb080d872580c6228601f61cbbff236caf521b76e527f5bd180bddc13a823a0ce7c5972466523de8cb6626761453d218170a37976e68113ad6294dc19ff06210118210c75d4cf2657f04ea9d79177474651044795bdfdf3c6959d9fc5c11d569f978679b7b81f9fedbf012dbf7b9b0652cee90c9059c98d7b24286304f7f41be1ab2a26931715c150de73775de58c2f12fa2fa353210ee1d8cb0f8dea22e9ed1d19df5f8dd349c181ad9bf5b9ffa5938f4b0f810feee4cd34356fc7251f5fea3\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# prepended bytes to ciphertext\nct = 00008889564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# appended bytes to ciphertext\nct = 8889564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# truncated ciphertext\nct = 89564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad\nlabel = \nmsg = 313233343030\nresult = invalid\n\n", +}; +static const size_t kLen136 = 48491; + +static const char *kData136[] = { + "# Imported from Wycheproof's rsa_oaep_4096_sha512_mgf1sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 1\nct = 8e615a3b27fae31bbcb6abbd713e54498b38143c5a740eb326cce75e2b9df42b6454dcb465873b831d3c18c4a0e4d941ebc49722402aa05498b34a7fa56a74774adada8c9c3af19386da29c191816117488a37b9899d135da5e8afa8e2b76a87caed1b050b8289d110922ca9b19ed932be12c92b36d36ee77ae9803fa8bea86cf8287954fb0fd69a0cf9809b686bac0c0035d8ed0bd80dc2c5020b6c6afeae2d7998373d551ae3a868a06854eec8fe07c8dc61408676ab2c21c251c5877bc31cb570724bdda76cfe2b055d5a27d1b3961518ac88afd3a041e2d21542ca027d6cf8c71c078016f1b23f73aeec8b7f5b77bbf003ab4233d0c56ea42337f5ce83d82b5e05497f0f8e3b4f23b78f71be7691f5bd66544a60f2ee685c9c70b17c5933e864d66f1ae50976629c7b76e91e17c1bc3099f5fcd191fe6419097088fed1b7d875f9a39dded5ca6c7c1ac36edf1ef3dfe9cf707de34c21962bbe9e8d0a92a7bbc0eda639d813254f44c47983db3d35c662096dcb61324e97d68320624f97eae0fe0400a7b618039d97bed9034c29846278a030d3c2e0932bab62a9ab325bc07cec7094fa427a37a937dab17357ede8d08d3b3f76e95f1f470af327f2a98ee1f56a5c69d1eeda8f0262fc36e04c78b051f4657c94cbdfa3218385d4e3422f5c4cf7d6c869113e0307a3c16f41db561c4a7d43e1ecd8ea7ffa6a6a548606ba96\nlabel = \nmsg = \nresult = valid\n\n# tcId", + " = 2\nct = 77c634e7ac8dc0d271f8d970c3d59ecdc19a09ad5076f586942116e7125b6df207f8aa21217c47862419cfd64f8cf83302660cae993c45bded252c6e618ff225d251b0057099b3bba4fbf9480b536e5eb6f39f64f2c9b32c7d07edbedc4a642a7d69d263d88a62475769b653e550dbabc1d2fc0d14e27bec772b2643f46bc6c8950415977fe21b2f33a432617134bc208a613c3ecfcd531950d7ed44b925b3f16caa870419de62053c44984fede89b8503212531c13345868265d1fb139d2272a9f659e6a988b9f54155251601259b2c0159b3dda4910b5190694d98ae847b05b152fb63c1fefa31abaee992a46fa7407499ba1f59b6dc69c348502fcddc58fb2c60fbe30f7471821b75572f149138841972d08515d85ecf0390ade20b1630c9f7cff16bb1c0c0c566fd0e55c1090dd28f18b5019347461e4e533a1d97e553583af0beec3f1dc3a595f855baa75834eeda16f6adbb435be7044050f164b6ba4ee420ba9186027b166b50534d5607f2635c3317ca87acb9fa9d08272fc1b69eafe2d0b17b81def08851e9f623e14674016ddad14a86125f629d3642f5549c1bc69845fb7fe01b9be3c77051781635f438c6846a17a1c15669f0a161edef0c13d01ee2f53902585dd02d2f139bb91702ad29f93b6275de15bc7e537a1d2a4f8df47fd7751a4f9ac25dcbc9b2e43d21accacc6c3f7155845435faf50c275c3d4572\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 1dda78168838f43a71aa61151bb8bb953c204d0af526231cb804952d4e958ed47d2b51aad7c3ddf0cf5af70b87b5a5c80d9963e261309692a822294b40ee3ad67af64408508bbb18dd2b61090882869a5207197ffe0df39f278c2f3a710e0f8ea451b655fcd8542e07606af88a44a7bdecf5a523c312ff73942ef4e8105a5cc69fc1bb315f77f36b87477ff693289963d72f2ff0b6ded18a0d56d79787928ccd72b7d5d7acd61d37d632cbdce66e2cbfe990cb6ee250b8261248e81013df77448dfe1cdc5b812c8380aaa0c19e6cb11781c0e3080017ee254b89fab5d534cc4192946217718d3161c87231d955d4fbecaa817fa92800104fbd0bdff088fd65e9ad9f8513c88fa613d952634ee8306166225a2f37eb7ed779fd6a799f0e5600ef915867d88e99645bd797e261cfc9e462773fb52eb5398e4e6efc189759c2405f9506ed48e6123379ba477bbd029e8bbd11ba86239e138487ba48882b0c3ef356cc1b3cb2cffb0d2d0c9161f8dbab0a91276a242762d18ba36b2daad8527c781a2343a110c4acce2f2a4c294057765d82e86abe6ff036d9331f1986115b8a22d7e425b81f7c0f0e32fb57b2971e8a7032d155fcf61d0df5e9415344519891a712907727bff0b31cf652357e7755c68d35e22dabdee83f8b46ef4f4cba34f180b957d52488c033f4f2fe413bbd6d83e70c52783d78bd98689bd6d822618fbd464c\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 2013a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 0f0b837a5f4f036f5a1b38669a4768571e1ac523e89f082361530f1288a55cda8c6cb5f4b7632d4624a9ef1507546ff1416f5baf2c6b53f1bcb9aecb305b6bf57b204282c74827ee71d23398509537bc7dfda5a4810b0c4b6af3af45e838e1586b9728509124d8b49d0a2adc8d383962fe70e4524e2fea9bcbe5c71ab05ec65b5e4822a6b765de292861c86a7605e3c20d1e3f8e8268a21a326f51cb66ab0490673f036ebe3d8fe5fa39e195fd703c1c93b49f3697d9f73f683b6f70d5bf585d72324d34efc79985463ce1df5c6112720e9bedf876e1b80f36614d719743e4420a62200dced4d457ba2bde819fa7ea2643eb1a4672e6827c915920fcb94f3ea9c1b0eefdbd7e5e07d1a2d6738a60ac7f81be705645f2b33af5d5a20b09ea4c3922169bcdf0d376fdc80b355740686e77049028f2f0dcbc7c910b8c15cca7461ca5a411a9b6d750a315a250f0da703459a2147aa3633c5711d3938f863e35713b802788e2d20b0de356fdbec6d187580b75d97cdbe7f07ffba0c14bb88f32e30613a1c911eb82ed72b4bdcc232b46684c581440df157f780fa9ce534ae18d20d50187aa905611b2b045d8b1c2061b0eb9fabae940de151348d10f0f24f753cf6f667bf2689a73bbf3089bd26dd74b803ca47d9da8f9ca538f4c7a62aba73def2a08f92eba90bd6d482ade0b6b724bb100c9231a31a7a0973af2de4fd5aa752450\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = c40804f6c7fc5ba3c30f051a719c08823b6591f45a899fc9839d8dd77157761ce610d4a138c10bc231e53f9cf87d5fa26aac8f167deb1b6522a4b365a136849d0124b09a03c4d5f5c26ea90f7a0fcb4518625c3ae3908910085be3757143e1fe1fbd23bf0942174491cf8f7c2a1b697efcff99822ae13e2f4527c1b8e5d50c320971dfc3bf8761fd08ea49f60f78c80e65edb08aa916a5cb9355e9201c867fe17ccf4bb36d69dca6789906dd27515b1dd99285f483f8fadef217c80e0a430926bdad691118a33577689ec1815565f51dea4130533aca7a57a7bd706427ce2022000421a26a5d1fadbb834e6d78fe4dba457c70820c1c0f3f1efafa8a27ba302b1cafcb9b96f41a4f34633a28e87a6202f13fb0e41df3ff644a91106925c5c3b875c313aed8a04930011dd866c7d52ed018a6233f0125f4ceae5df8ef8890997868cdd3756e42775bce57327cff10e4daf568322f1021b140262f94f4c061c31475de1807313f1621fbfb24f4d779d99c917fa5104f93324ae675621df90b02446d40ab2f319c32d363b265ac32a7ffc6d262e7903d8c05dafeba307cadd25927a034cfcfc784ef45136c950682d313d35c20cfb918490c86eb342dce1c2b68967f3f10d439849a4b6db8430702615f36af9839391b1316c0505ee18b8a35806a94b73d00bd5e8bd2b79d383b89ce7bb046e5ef957d502fcd9e0290fe70886991\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 9e053f731455e4fccecfdd3260ac0056a291fb4a37e297899e812777054f13c9e836f27de12cb2549d6aab0ed553544464119c495067e90699caed744e61ee17295673d2c868b41cc23f9e594a002a7eda75f1bd7e0b211c3c2e8122fc2568131b354b722bc1a29ec52e718e471c212cef4242270a4f9a765f6d077e37a01091bb13ffd9ef02c70462aecff739a2624a5d8d8f5cb8f8cd3c6eaabb683a10bd131afc6197a8d21d6cb066c610277eea1221d55c9c0d26f553ff7c22bba1a883d22f153c18ad617b506ad55e4fa04fbfa7cbc7fd310b49809c80513322b9ab296aa4a033ad3bf785c1bc5ff0c928777de67a71b393b213227e102c145e9b40357f251c19bf572a48c2e3f5f0bc12604c8475aed9baed2155028feecfdbb328b488bd5bdc031213b0b122bdb9cd44097d1813a759d13122530587be372a779e1aaa08d18a84d26213f936885b73835c27939e9c5d284076a09ecca3e6dc6e5be5c36666ac1ca1d8796502e0d5359cd6fa43edec58bc3d2b39938e69cd46e2a62ac4f6760d8c0c84765a6f5f6b66411dd3e217d690452745808a2c0f0fc504e6e56989a72bd1a59774abf529067cce618d2c39c05f0b400e644f7ede106e6eb1d0635f7f32ec04f86cd3628dba1f967b3109bf0052613fa84012da70ab4ea84e5d5942d42a0b9e3d0c80b0343fa9486c5a077fca77ffd30256cd4f8138dad30d6b5c\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\nct = 63a3fabc60b94267d318b377327ee6548f594777842681fe21baaa2e9278f001a575ba38a207a3deeeb2258de8f6bf11276090f869efe817fec6299247c09550bafe7bad02d0d7e0be51f8134bab130d4a9c593e3fbab7b276034f22ba071792a4031e591ebf2d67048ef07c6a017d2f71c72f8db0d32acc16788976f02fcaad2097aa83843773e59ef4c04f383f013f86e2334f215cfbfe64257f60d0797e5a56bea35b5dff983414ac686d0d80d5ae14572869d02d442b6a7b88954a9c0bd56a872fed20dc45fc0ca511db195232021fca52ab997191a08d1c02d0ed41de86b49d05715974776d8b0fcfc5a78432f122482e28812a0608ad1570de40c55397abd5c2a58046519a052cd3e2f03cd9e91f4888bda964e7e52d1296ce1b41b312d20f640276b91a737e9db0bf4fd449ddec6da642559b92d0a60405e868793681a2366904e8fa4eeee0368a2d0a606173c9470e26bfd462d97a8e40d06c31a4330a9ec02de58920c6ac90dcd20debe6fc14357842640b44b8d0be5bf03d737c4fc08fd37ed249017682b62735964a24681332b210fa8825bc60ed85e857828004b6cc42e8cf8b7d08308280b0f6daba6ec96cb5a300dbf3ed260984066478b5b93274e1b627d6a2a126d9e8d2db8b886686cccf6361487f5a0d62aa0027f1608e1da7f5b909f247ac42375551af7c3fa53673470c1c156bd953cf188f62bc696a\nlabel = 0000000000000000\nmsg = 313233343030\nresult = valid\n\n# tcId = 9\nct = 21f1f6cc2dddc3f1d41d482a0e1161769b8468f2340e32187349d80955e7003c57386a85b297aae086ac1550f90f8a5ba73192818c68f0cdc9f1a69ca518d1bb84c34538d9b0fdcfaf2ab859bd24748b326c8f8e1f0bdfe2d32fa7a5a6e56dbf69b07c41eb81ec699c79be15f34cefeaac0531923556296b7f9c29b06c2f8c4c36f5adee505c95db1496bcf923b27d4af4e083e986b0bd04cda37312a99bc091a81485bd335fa7e63772d8512b4fba1df03cda8cdbfafb26479518a75618068579bec06809c3107cdea7fa5a264c9dc0f43ea9db33b32d4637b65b7fcbde0d0c959b2c5bea8518f24f7f600d33d89ed286044d4594a446aea113f86", + "b19764f68eda9ce15504f779316529bef78d1a83aadaab26e8aac19947b85d949d253713036d7c04f405051fd33dd8cca36bb657b3519f4e4a1722476b02577db945b86c39f8614df5782fa3e1cc7074cc5b5b71c9cb1077d8e88ed3aaa9be3745859c4649dd2845b4c6606c8f689cc5299cce15721eb0a66e7b6f9a9105191bf17867eca2a2668ea0e9598454dce6a10846f49e680c4bed4a9db06c5b92f92735b4dcfd63506ffeac5b354a09d16adbfe6375f9b6ac88fbd5402199f68d31254cad765a554d65757f4ecaeaa55b0d3a4934e24bb12f8fea46b18291e9aa7daec97ae675707a3913cb08b306876ce15a025e386cb03b1638ae4d4ccc76b8ebed23b92a004\nlabel = 000102030405060708090a0b0c0d0e0f10111213\nmsg = 313233343030\nresult = valid\n\n# tcId = 10\nct = 5559053e2566127dd1aa6ee3eecfdee11fa81f6896569d8a4f85c350c4f258126894f6826ae466ad939314b2674397f4aae2bb6a6d53ff89f5806cc29ee6c390434a4eec144547603742bbeff4584b884888b9af8988ec8fa2567cb6749b636b4a2a6196d2751840aeb64dee7dbd25c32b42776d04a2797bacf5e274895771f43b519a89669f56233c0b9a34c8a8e87b70ecbd5aa79337bae44364af6638e3d57b86946e3d26794434f8816b533aed1be591087448a13a1b247a64bbdfa989b1cac0047c966af74d0c9093a410cfbfdd828385597006b556276e6a466f9f3cfd38ccaea36d0a3bcc5acc63ed8f65ae5c3aec3091dcda791e7931221c09399ca56bfc3c2710c0211e9766dfa6f65cfbc6141479414a63a62d7c72830ff955b1cd86b38802d7935b430e7a802614d68f5015ef90adeeaf15f95bcd770fb7efe4d9e6a0ef8f23ec0743b3f71a9520e20fb60567998e58658abf6ecb98935fbcd343a949f952baec6ff5de23552ca435866b98e36288693b508bba177c09dfb27e13d70c741712d663f3525a7bbf929162d6f45031ead380ad869f40e230f78d9cc8a8918964ca0d8499e4bc355b3851a1fd1f03953d65935f613483058f6f250924db780733239b24dc454f9881df7648e2d19b416c2f8af53948cd7ea06e9b3baacd7fbd35e50a245c8c7d2113d9cac43880515d3a0fd6f3d76e5aec0d38f02e63\nlabel = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nmsg = 313233343030\nresult = valid\n\n# tcId = 11\n# Longest valid message size\nct = 592e487960f3169443c5d6f87166bef2ffd52931518f3b0e5d977f3a2101814e749fff5fe8eba424a3d439609857940f5e23dcedbb45cde57c21c28bf729e396530d21fbcb96c97a148c5708801467b15be1eb0d35206105f543d21022fd023ac89b616ec790a9182aa053ee4aa7962f33f4b413a48ee3d53b2d247988683d4db30bf4ff6d80b6d0ce82e314ed6dd7607df577f1ec956acce51f744f89e7c6a770ceaf90b20665df2ca8050ac25ed29ca80a0351ad790c3b8fd00527195f427410dca6bbba37a441cb82e44383bb4e077fca32b27626051c13886392c10a305890454588f508ef8d9d0aeadd8bc78991fac96c5ffec892381b03580e28926d8b3a51da862951a05f48ef809b9ce11f23323ed10fd597d0449acabba954079164d775abba56da956c513b601d1846c867c6bbdbadf195db11857d4135c30c2b5898782ac9346f7fea4e2ec80b39b0ed962e0c1b34494af4441e5dad6d05fa7a47763368f850e3b81451b47ec12886fb317f5f5ca688275ff1d97410f8eeff8e210680c799f45dbc47744166d5b470c35a9df574dbf1b255931ec98e82e10985ea23daf960862882eb3ed17a99fef36af01b6168b22ae7ae0c91045f79da51fd62317630e123e322dc692c386bb9e30013525da3289321f311b8cd4e90175573debf08f772ce6d9257a6593557f9edd956c827a285f7bc620e262a7d64b8c56478\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 12\n# first byte of l_hash modified\nct = 8bef4f3022bf5b4897cb318c5a2bbacab6b5a31d84553837feb0ee90f0e26e9c5fa0b963e13fa3f4867f60fca67c9de0ea48cd495df7083c269cd3d7da9942847623ccf81deb85240edf5ce1ed623f5edf0f8cbac61182538be43a32710d62881a973c12fd20012209ed24a8fcc64ba98cfc15029231ba9bf8c6171fce1cc365d7d49c169371e68191d9ed06a2f2b0b9dd8f21750e50c897f808e696730353a620656ab4449918b552628445f37e168b9d8e812bd6bc6ee3df375fccc531546479cbe773a839ae3523b7ba697ea0ca9cbcfe995f9f3e22680a787f3a43206571c556e6caadb9c6ea8f51da21f00820a2b5a3189fe1b3ba748408d93502cbff30e5204df86076a6612513db0067b2011927349066ba94b393a7dc23934904e6190a28c48d0913ba65f51e180b5458e1f0dbf0feb055bdc2f1002d2d4a1e506af1367d234dd0751cb2870fc9f4b84c05839366a2120503e8cff9f648c1f0b630619d5e020ea4ef7066df63053257d303bbe3717591e769fae87a9f92b1b04f9c0d879391fc063c8e5534f7b2eee96385fdd188b3ba26d6913ad9a767334dcd8d9b5b596a808301518de9f12f12b48b99f192670865abff0ce432ffffddfe5c311c3e321db48e79399c1fb530cf127936267dc18b05ea7e5594e77c63231d6a79f261854c856a4507d09ba5796995e1410135e05f16c7c5dde89973d35b0ff9b5f2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 13\n# last byte of l_hash modified\nct = ab1f96560081e6aa20dcf6eefe00040bed6e0810076e5ab0457e276c06aea748946ff1f44c4884fc0509b79498709880b9be9a10accb2dad7a1195f6dafd668bd6d7b7225f1cea79f8c0dee13d125a0a1ba905f498ace6396e51f61f263af74304273220aeb8967b5a7f90fafb8226a1d3dac4f9bb626a513e4c7d352b31e25bd1eee15259fc3a4dba78641363e261242e18f860ad5f7ba35e60cc6c04c0709442048fe5b34ff9c567cfcba5a146df9f0c5fd9c1ba61d99595712e98a88c8c8d4b643925f0801b59cce4c1933d864b46c038400450bbb5da930612153116722050e8f8b377da4114052ab47ac3757aafbd6b7efcf006541681db2262478d3d125945901c2418fb3f013c5a9ecf3165de6e64b64a45e5bdc35ba38b6337b5da3cd9ffbd2a92f94565935f9505b1abd2f9c22705b5677b5e1e1290054d5dcae14f9314219287a4a618e2671930e6500acbba9417ec71e23b64d1cb5326f2fc531c5602e4b2fe45bcaa892dfdd8b05def3909b583d40e97a50ff7c38d29f7da72c92d7517e795ce7474f1ddfbc0cae588bdafa42188cb85204dbe88d742bbf7f71f7410e49b9215d9cf14a47d8b5bee0bc7947bab919462dc2c5549181ecf6ff07093fdc028251b8edaf2861a76465b9e22dd37940012d78182955e25a2a21ce157c6a93de447125184be3ad362f86b0299a74478f46061091a48704285fbd3a668\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 14\n# l_hash changed to all 0\nct = bc4463414999b839a31fd9e688d87f659a154a3025c0bc4bbb7ddee3c343b3b0d302def1195d56e39168b39dd48ec9ba5b16f8f52969e151ca122b06990d424b84884dea7a27d65b009af3125c2dc57aaa19bddb4ec284e008fe3c611883d60311c7cb4275588813e96090601c5c208f1d106145d02a7cc06659bbca484e1c898eb03fce81aaac560aad4b1e0dc4c92fafa0d4e232bbcfabb2e8c714c821a5673201df7b163f27d398451c4af2bbcd1448f83a4a8b238351b0561ad32dfd856b9a44516b3b6c20f5dee820aeb8e953d72f8d7e1f742d729bb1511d85400866e0f604e22f98e2f48033539756e86ab74939fec4568f37530678667e18bccece1abe6d3d934efb95ec85e1be5f0c2c4a3152cf5724a98a6f092de8ab70664e5a0725c8e5ed218540acd30ece6bc1279f1b8241660288b09300062e5d419525a9a7d6a04f24c2538189c9aba60730cbf6f6e208654077ee8e00a1e4b46ec3fbc37163572f0ed22b187970fed4e05a3331252263337e1d99f9d8e8fa5e42d5c4eb0b8cd9f4580b5c0c23667ac95004644eb125a6bc89b056d29aa9ba0757dd1bb7087102ef146b0bcf4f49d8898045ae7345ff58e4f804de5ec45ca10364bfa5594ff22049fc70801c1533a7946ac8eb445a14bb2159ff2c6f500fd67278b853d8b124dfe0ff022d0839533e4c17823639c6fc2fd0472649483db41ce72164970122\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 15\n# l_hash changed to all 1\nct = 17a8c7f746c34ddeb535edc9196c8a8f921dff923eb8ba3be9fd7079733982a147ef9aa5e9b32ff0c54968cccab1ba030dc623204693c18acffd0bdf46730a04befd55035b969d829cf539168ecd100d24cc7b8db4651054b5e63def4d6b183236cefb3ad9ae7c8eece2fef6f5c3355af267a7ee614050bae80eceef92dfb3b994a37724d46dea998894bc68e37252dfcf5c0a43bd3ebbde0d5a99fd8ad03a42f5d18b464b1f0a46a80242d7533ffc26c012b03626a0339ce0649b1264e9b5ff0654a52ab981783ef6c1b0b53a4be1bcea6f0367e4a1f9be96091038279d6bd15ef2f87e0619915d999cb30044f1abd24e019fab6dc7a1c413fef5dbbcd29d268e72fff5da72de0f4c0813615b27e74776af8b7a58f4f29a233103487f20d09750bfa9c272d0d57bee59b1e50577a04fbb46523ce1a3434f72fd69eeff3ab5df6c9d5e6832ba2601c0876f9c67b5854ea9a046b2ca9b0d57700728e19204eae99e1797637d510b54a2057d0f772ceb31c84d5625fd3c458bed65501a38ad0287df1348290c8b296fec11e7b3e36969bb8ce32ab7ab19bce268abf0a5c183f9db1afe56f47aaf73a1dfa499b8669a50191d80635c908f4b46183a33f025e0d1c6d7a85e3617967a421d998ea2a7461a3ddf3a19740273fefaf7cf9e64057042adeaf6b765e514071b92aaa44078cca712063c1415395f2bdcf86108d77e0f2a9c\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPad", + "ding\n\n# tcId = 16\n# first byte of ps modified\nct = a23046d3fcfcbc13bff0e424a2b4fbae7588f3a09cf44ef784a28de68f4409f470f13e0da0ae8daa2301562a1e96866e3e3781f0f9ef69bb8a9f9eadbb9b95e63c995bbf7335de941b84cdd2d366fe15e33105c6118bf40bfed872507869feff4165ccc82049df7aa0aa2fbe5647a38194ece1d2f51dbecada77290e5512e56d2187ea5a9186dee20518bdfadb6d9c5aaac78f2f3a3db119a8cb9c95fa12574687cbeacd34da15f17d4baf96c5a117a6613a10fa3bb9472500c9706ec5b71863153ab95d28c2ff53e8ffb61d4f137c6ff8010a65d23ac779df950bf36fb87df216059fe184ff0a3910447dcd0fb15c134bcd7d908c74d156fb1d7a7d02e41119d0f52e447d3bd921f6e254223fe1fee5e441fa1c5572f098376224de4361aa75bef556361a29a3eb8a9da7c3cb82664b37acd6ad5facd48947b9b743723babde168b57bd878968e732f8a52d51c0570f26507e5f3ccd28785e617a0821921bc99ed7591f8bb3eda428713752b862e0bd9c60e32b0a8c69b36dd7dee5e77ce008c7923c8aed25fedc28b45f13c308341a2cceded4d8ab0c18e54473c92adfe04265efa6d10deef8bf4c1452dc335e3c7176c823f95d219ab1dc301c5b3361a0d1b29eb7c966e3b9349f5ec506b49df1a8deb9a9b3a5c26267f3d46b471e273058d05012623bced43cfaf1b8b7b3e6172e76d882d7a3a4366d5907817676cf86c4\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 17\n# ps terminated by 0xff\nct = 6952932e89da491b52f5272dfd65f9697f4fc140eccf3f934b15d3401b40c929b45245172bbde9f0939497d567951b78cccb5eb21d5ecb2742a9ce4f627fa55604dd5d3d56450e07a5443933badcf787fb75e1fc733e3c1300275f7dbf67809123a2c2e46bc4d55d4d52e02c7f9cb24c1fcd8081cb3aa39890b2ad094f533c470bf2083be301e010d51a525bb5d96c2c248fa702e1b993a708f590660ddf96235e19b6eab37184818582ae6cfe7288a5b15dde2f5029f7abf92d2b5482ee75fbbb52a0a0faffded1d6db9d9619f7c2a4bfddd233a641c7a6f7706390cdd69d7886bcb6f1ea1b2789d4ac54121a12081c14b4eb97ee475eaf81dc2c7b3b009ad2798e07b59f9544feaba3e2e8f7ff28acf910eb39fce7d1cc02307e1ccbe3136ec8008e97fcace119c62ec7e7211ee62449a6497ac074284b969c481050012ace41a64b53eb8c9ee86c7a500265c3c0c1bb7b7ced766e72df5581915c2674dcd1d8be5e3c78482630ad9c42a2d6e0dfbee979bcd9b5e0ab491f0f969c7ba13d1e85eca5091f7d63f7252f13fb8a7efd4fd5b0a6dcb8aafacdadbe32150bf143ed2bb289d7fad783320f3eb21372ecc597bb6fa1aa8075f5697b51a820f818a849d4b568650f70b717a5b350bc5fe0f6e08334b84569e6de5877f00aa6e746d1987e35ff8b8125c31aba8c7bb11cccf51dca3111ac9a444ba908e995bc07d90e5b\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 18\n# ps is all zero\nct = 5b5e0045f1877effbb76946bfa88a058419b3709723012dfc68c0de6b69af00474e9f3714b256f0574d815cd4374cdd4d0a7c311dd82b741b150c99ab079ad49da26a065081d6827049f4b3417ee2c1703c4eb7031dca16f78e01c148f6decfd95bf8976ea3b8a74139fb672a2795fec7eaa8829525de66f8a2a0e59edfafb78da1d62ada6864740b8d9adb9e61b801b291d28223ce0ac37614691615ce074657cecf4745404a3a1614b09bacd6fc354994784b36aabe52bbe6e7b65f8200ea67ced205c5d0431796875f5b6ceb0be7f9d22cf696b0d16abef6c87332e80398ae48d24f5db72af1b58ee01de4ce48454579beaa823f3f10191a555edb78e218ecc35d3e52e463bd86846b61235a550f779af12b3aef64f682615c627a90ea416da0f17d928faf4434c8d9c327720965fc2a31b47d95e25dc2cbb93de56093788096c9fa24a49598d17344045918908b294f49cac11d6bd8a699644027128d8c7f7ab92d0b808adb29ece6ced39becacd35d9f140e36d8763736e2fa150ef1fa450f1cb7de01370c4167b2332449360c3ec237fdf6ac44726b54f85e3eb57673223aa065912374f7e84610bbf8176348da6afc0df0a54498ed2456e862545c29940fe64d6f917ebec36bf2e04d82e440d1f6e3a2752eb1b57656d3d5132c289609c377935990ccc2a8bdd44591a83419eeedc97ac4c88902cc9d7f4f690c63b02\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 19\n# ps replaced by 0xff's\nct = 6ad8869a1fad7311c8c4429c46c07e7370f74e1d703b49292c8f02c69216e0949fba3ac558f11e0529be3a327fe0e000f9811b7c7b61241578bdfa984e71c3d555d23c380644c78050ff6b28334f8666b4d8270d34a2b3e2f35daaa06791151aa98e7001ebda7d3c597b4e6a067c3113a0bec10bf12fedd1879b49c67ee9eec290d7a067cef9af1ef6ec38315b1188984cf7c6dae0fcb802330f890a4640a29fdbde08c17bdcb7c91831376f25e0d7c2065bba52e67a7df08cea250de37d315790b3173a23227bf28d865cc90e927ecaf8628ade4a91ac823438600ad304872a18f440e1eaa26df01e4fe841035611f8954a5fd49b40a7de319545dc7a41f9454f6aef165b30099adeb1a821362d7b1e1ae7e9ca6cb694424c3680f63ffb3e2f64d383ee0870adabcec8bb944206aaea868d182e4d2367cc1e490f1236053dff68fd437034cebd28d5296c340a87c8007ccbaae519e6c72ec059862fbf26449cc6602ec10816af0823884f6f302ae2e413019e7e5885ee2ec211bcf40cdb75bfe8ef5db14bd07bcd9a29c50725f19edef54c1f6c6f52130aec7ed2845ecafe18653b59d745384dac506b14ff0a81858d5c78216543c8252b7a0320067be86293f84918c7d4f787c6b48810f2f95220b73fa103ba2431a7715fc244ef9aa3db90a08109f135aba4dcdfd8852bf3d3c2313824275415d45cd535049de3620a1443\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 20\n# seed is all 0\nct = 6035ebc6cdb0ac1fee8bf7f21d2ec820018e892c0c52d5114ed8f81c402bcbe43c21febedcdca87eac3805c8f710420577459d707b62b6d973a494e5cfd8e16d6ffeb376e20d3983be35eba0f9bc5dcfd6cb55be614a3bc4eccf0c0a58d7fea6911a14d7394acbfae4b4c9ded6f5a757e476db98f3a5f3048bb244f8e7e0100db68bb213538ba5bbc38a6354d80c8d6a74225ee4c06c5d8a53a543de1b1098576b68ebe52fa18e151421be2648ff8165c137a234cd5837654c2dd2b4252fe3168c2c69d37b0f4a3b6a9cec6c94e511ced087c2d03cf06962998613cf30f270ff0588040a27eba2d88718b319e15dbbf74e2c3273aad488ff103e696a630639da4b6ed1da35d32218415f29def20a96a6ede4113df034a9d185ee529921bdd15dda7e6e6775fd0a6136c43c795d91d335a0f40eb1f29c89ea69251605fbf504e279edde6daac492fa6d81654f2cd2bdb43d4aad5b158b01672b613608927eb06aecaea4a8e082ed17503ad3307811391d5cef3058855c734d479d44d18cd4ce4116459b2e03b7bfe1c4b1e8ec833a10670032387938a664e3cb6cc6c58f55dbe4606678a17b84d7964db6b57ad98b599561051a7667d651d637ecc9f66fa323cee0c4d12bc6c6a608a262c56b236222c2ab82b602786164b917c09b113f87726eaf5ae232ed089ae0919e4502b4ff4588c485ec591714a2d26ccb22ad51c5a2a7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 21\n# seed is all 1\nct = 80a8868f5835bc5f7f66942067523f6c487c73f2f3b9c7bd014862bd421ab36c2424d61e39dc8f2dbef8dbeb66dcefbd40943fa6dda1059f4d8f928a2b1f317db02013a7dba0059811ca8d6539f14bde5afef250d3facd3920b19b41a4fbf05c2a6a30bbc06543ce35989fbf3bb701b79a73078037691f9384b12da7ca5506cfe88550ab9cf1f7ffe4ba073f1264dbaaf18292608ee0006d2a7044ae1e8736eaa0126f0e3169b381edfb08c411eeb1da6a484f3bdce69c1ad1e7ff7befb9b39a91c142b67a33d40897c92b9d74fde0d8c62ba31aeef71e1583eac49eb2d640fc36ab28da78dd30f66a2134cd162bd79866031226eabf404b92e69b971bfac99a7c10cf5684a9de8808b56dafb41335f2718d7f6b286e14c08ae75d2b3d0e9e405bf24ec23f0b2714ab656f285413ea762401faaa1ea2e278393d41dee7be5a84b6aa700651a32671767a09041b7bce002dc21c03197643ef8bda0dc80cbfd70f97b88c9742a9606ef24be7961dfbf38253f368eb85731aaaa683e7a1558944965896945b277817cdd4bab90ec5642167cff2a343b2604a5d872fdb2b0ab9b98db53d643a55f36ddc246b86f17bea2cb32d7c97c9da64587470b9cf4009a10aaeaf22301e51be81c6d2bd8ed342e5bf18daa760e1597b2194a8d71ab093331c7ef75105866f6ec00bd4d1a2c8f81b1416b9c8548225ee468ba66648444663b92e\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 22\n# First byte is 1\nct = a527d8fed45766b70d08651f4560dd08caf2dc5ae573537a767479e3dc91b1aaed029c64d5e2198e9d11d27b48101c28f4d9f0fa3e6b6da7c312cbf4cac0d1e71c540e7c4be793d66e49d42cdd6ce8e337b09ce1d08923ce013898e57cb4c1019a7d49b800cf0df495e400460046615a94c6946a7ff6e103f599532d6a61ebf256e7c6b6e0969da154934ffd30d7023250dae1b05c140e5130ea89604ddf8b90c8003b7111adcd4d75fdde42e6dd96432daf40a03ee861dfbb82922f967b08073cdb588fcecf2f64b90254e810cf1974bdd405851ab9070690d657fb3d85eff9049a696510718896753c12dcb94f22a8238cb60da5599cef1df8c24005ab2941200f91a8886bcf3f91f1e7e264a6e4e43588b0e4578f733458ed0a58e380231cf76afe853d8a39f0a72977ef14735c79cb2828d5cd5d9947c970654db8efc3fc1e1b6c82420c3f530b2934588428b4d196259b66f5378c68cec90e7980e3417942eec91ac43af9a0f40a837f9917095b748f7ae199b83ac427c36dadb905088311b216079099652e619d30410b1928f13b05774b24e0c5a23a827af4f369a41f95f59011d19701824d285b2ead07b61763535d633c85e7288e47a0fb4de810cdd9b7b0d7abda008506b2579de95210bfb0420cd8561a7040771634a680346eb014b411196dae20d18560d6023ac96ebf8780ee5d5f16ec5fa7af160e5626c220\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 23\n# m is 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 24\n# m is 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 25\n# m is n-1\nct = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\nlabel = \nmsg = 313233343030\nresult = invalid\nflags = InvalidOaepPadding\n\n# tcId = 26\n# added n to c\nct = e9bb0b12b3f09a5ecf2054518959b594497b2eb3035b6bacc2e7ba277e14c43bd23b0249e12b87ef366733da226bc6dfc5a30f477324658da07d90b79837bb9e47b35902d92cfe816c450003562b3dc90e8208f02e93b217e635f8fe296e2a9d4e9cba9e9194d0fa50537730245546b31f8937c2635e137eb1b297a6492cac1b36e88d363bca78c4f2988373ed2233d4ebd7e8078c40a00684b1f5e3a7ddedb73cde4a298cd9d9b487b29c589655c08b31fb753e521a9aa69a56bb8dc70c72b2a5a6048ca0a23d1171d249c3d59d3386d9dcca35be84bf4dd3dee8f3602f44269260750da3718ff5704ce66f41b8b8f97d6a0fb09c93616b29384101f2638bd43bf4a07d5c9885e03ec3aef9aadb7e75eaada3a3e2c15d2d7a557ab63a00b1752e15a40cee1f2d8d1604fd883a4e2ca72c35a3fd405453f4830a2ec2bbce111ebd2d0982060bf006d9b7d220d5c5ab5b7e5061b83eba5c9203a26284d2c01fec65d2e6c8fee9835bef26de005f68c7b165b388082d18db7a70ebe4be0378f13dbb6d3ad091089aa7f2154d677a77a5d0586488130dfad798eae4c6b61b90af10b95436f2e3da96f258e40946c8dab0999f04f2652df4b60b1a02a538cdb4325a6f2d2e3440012f4eea97051ea73dce639e35bae219cfd9e27adc7d4a6103dc8a7b99aa9d4ff2bbe7bac248828d60d8a811c725e156e3293af298e63e839bffe2\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 27\n# ciphertext is empty\nct = \nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 28\n# prepended bytes to ciphertext\nct = 00002013a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 29\n# appended bytes to ciphertext\nct = 2013a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f0000\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 30\n# truncated ciphertext\nct = 13a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f\nlabel = \nmsg = 313233343030\nresult = invalid\n\n# tcId = 31\n# em has low hamming weight\nct = 125414a4d9a1c6dfb02822a23a43a54f9a43b4695f7e563da34da5c1706cf07baf3c7c58cb37da1ea56305d9bde03f0559205e05dad61beb195f5aef8a6e6b0a921b3d3913b5bc7c87e3fff274afe789c715b96cf2fc43e8372b68d10cafc7362095410c3c4d33580884a0f215572fb05c19fde4744f90a0ac23980d6b579ead8d68bc782ae2cd5e70064478011ceb82ac9df20d2f64550b37def09050c319134383a88c9673f6349c446b178f2d02b2abe7c61f9a1a1193ed6869cf1a985ece2b921a1234ca29298974ef9b3b42b5984c44576725aea8d3da89a5703081c6cf915be00750ff13260950b24f46f4551b069e7eefd531e71f7b7f7afc717c1e41d7781f01d6f0", + "9cdc49b966d4f5455694379f4f0e31d3923db4776ad7fa2210f41b0e7fc6191ea18cf536de4e56d1865fd58f0dcbd71a0780e505f3d971fcd44e11db1945116fc8ed7bb7fbf3afce6db6454d9842f6c75b9c37503aeeadc6ad57e515c32bbcd5d81da7d178fd818d9bc8aaee2480754bea86bd507e74c33995458113f481ca8ef4de38f11dd0f0b7e6c05419c3c15b08adc2d4cea1558d8b430d2ecc1dd4bbce534b9627292869357b461fbc1087e435636534021ad02964121c474948a618c92dc5b7e8cfbbe1f3a5333c3d643f6ac0ec753540ccf3557762040a4754d7bc61d02aa51c7d7cb10e53c01b667af539a6b45c60b3bc1624073644\nlabel = 34c9c04473bd8a4da755a88a04a9ccab0bae8fdc51332dcba4aad045ae8305491fbdfab41821f6b838729d1e09fcf99513db3817c94c5be96a41bb23c8d0b0da00000000\nmsg = df487116341e4900036f3e9c31d809d20d17baa32348aea3f66babb8b082fe9fd496aea62e54c7529e0ff4c30690ce047caa15cb2a1824f0a4b7d56914272e8845d85fc8b5af454a5012355b5e862b283c59dbbd146cc6fa2a8aafe3889e10c8affee1782529b9756b45692bf369febd0639dd46029ad55111492ec2707939e62d645b4f4aea52573b3fbef8b4148ea2a539530f6841d8396c279ec66a503d8420c580a1ab55f571eb0ca931a2cd27b08986a7906d1f48ba68721967f2aded2d43cbb1f7356d62a169e3a376bb8f6b9e5b9e2541222d43832fd541acbd23a2044f04012179f654b70514bc38743bdbc8d8ad78b7392860c4dcc7173f180a25e6fbcf18dbd7440dee9e8ed9dd4dcfbc6a49e08c8ab08bca2ce4c774dd10e0126424948876f2a922d074df12d549328fa802275211d8b108880d90f4e1728f82453ba6bd5dda5a903a39f4e2da981e93522d7894a2ede6d1cd7f294ebcbb3a153803590097030b4d280e148a4016e454bf6b8b2b12b8c107b00826c5da2903\nresult = valid\nflags = Constructed\n\n# tcId = 32\n# em has a large hamming weight\nct = 429b721c92718aab272499bb59c79c051e89a93c091925faa209521649f090ff304342e04f258863a9da36b906384afb760d40bf553aa3b83e5ebc6f6246b0628836e59c56daa726c02e68552f79f8cbdd1cc349b7f988263680b7519861f8fab9ddd10a8392e6814d6e300a4b6447b0a1860bb8af7bc18e818ca2659c0c462c70ca929e2d0a67d81f557da8b1b63031835c362527289dfcd9b18f5644d1fbe54fd67c3b51fe84d3e44f3efaf280fa7cdcd72bbac2fa6731dae2be296992d6a08e8b8ad9fbfcfc086669ad34e4de07238791db1540c2fc91ba513fba4a692fbccdc717392bdb91995daef21430eba513bb80fcfc450f7af98a49fd254267f8f424ed516825cad9bf036794b9042ab7cfdd16bdc3398b8235a225aaac21672098f9fd799164f02d367ccbed67df1d16ab7e6948057efad3ebf9320ab3c74599a28636bf039ed4d1e023ce92732d1bc04cc2f71dda0093027e1e84666da7b6797e1b64e66d79dc088f0f8f91a806efe3c17c563fc2d6f3cd662fbb5bdc94a6b8a24c968e99a72b1a0ae5e621891d0a81d3b266da316c55284d65e20827d25a9a7abc5cd394b5cf313c5f0fc78fd4d2d8646c910ebb04f96e5be89d794bdd65b12bdafffa37dc5dc9c11b3cd664408e0954ce302a6e846b86b182f04e4ae30122d2b87dfab07e68d8466ebb235f606cc5d0989b1b2dc222e4a6c48a98f785a07c5d\nlabel = 2aef95ffcec9fb31cd3a17df07044ff10e054c4ff56d7f31b8ec1e24cbebf6979ff21d71ce627f7d4d7630e65fd07df472b39f2c7ba2f3af7aa645ac7aeb68da00000000\nmsg = 1348c2870b2c2aa0b686a87d4e51b8c9155e89f3e33ae3f7eb5a1c09c3469d3049bcb8a76f98c27e034b223a6c0195d29de1d4fde6748b2bcecf39457b292114fefc237e5d5e67893b1fd93385f9ca739f2487b79754c5bed364bd846a7afaa88ea1477e97949b770d6775830e932ffe327031d11a19db2d38d8a1897f2207a29d24ad47db096857838faf4512990ac167e5838f4001b62d6a7240b20cdcc159135bbb0939d67ce2c35f50267d2c4d702afcd907d6e43332eec8f52d71445a709fd365adaac1ef0f6ef72e7f7d976acc64e2d7e8e574918ed845fc4468727267d6e365bfe4fe3230645432cb5dedd284bbd28eefd53476d4a046dd30411cc8841017d1f0939db10a5c028140351147949d03d3aa0d512f03b42ac61403ac3c0fd240d9b69598803ef2e934c8b7d2923acd94672d570b44e60ded2df818181613e1dac6d19780fa2974a3226335c7c136ad643a17739b5b252c2aa82ca6ed8040c7230b86de80ffe9d81a22853124ce391dd3093076c0a93188554d202c53\nresult = valid\nflags = Constructed\n\n# tcId = 33\n# em has a large hamming weight\nct = 4556d44840f6c838427c8c477bdd8efc88cdf57d419d128f208a9e44674119dc71352004f1b149f2beedec7f3ac44d93e7fb9bb10bee7b675d62dbd9bd28dfa42dd6173ff17968e8578f0629486f99d40473d3ccd8e0fd3747a6daa2323c61a88e1f168a073197686668a8931ac03ba05cee8db7a5863532e798da7b0c371d03bee6cd2ca532c448187d16f424e4c22dc0aa86f5bb8358d0a593c9796cb5130cd6610a3a4b9afaf4da87c0eaf4aa015fdd5899b749af62e85e955de5a315fa971c35e900e410017f6860dbcfa347206a7e33277efcd3a17715a8f1527456d16e2addd711d7bda3be776afde4adb2a8834d98e4a2682e9b742a8798f4a5496138472bd889eaf0b03316180ddbf750ea5607f37a199e54c0812c5d59bba22dc1c18bdd8e0f8c4eb61a3701de06a710d142a2f5c864dd05a40c7c3fc4d4ae02078abc9559017f3c6588e670854ad81896b213a769bdfa6e221b5f8dd7ada50424deee1b1f138c738ad938b64f5228880214bf4166580b11e1afafe2b89819e720a7e08f773109dbecf40851e839b4a512b5fdeb3309b8e2fff237f8207df0af5d33a6b42da14f44dd49b716a7dba83989094b217d4b448353e250b9ce5f5536a471f2e1058e421f9c5c166b58db8e6516fe57db729b4c6ed31f014510976779beb555e30f1ad0de2c2922d9dbbf8bffadb189b7a5506545d3ce0b0f5891cde090cc\nlabel = daef95ffcec9fb31cd3a17df07044ff10e054c4ff56d7f31b8ec1e24cbebf6979ff21d71ce627f7d4d7630e65fd07df472b39f2c7ba2f3af7aa645ac7aeb68da00000000\nmsg = 01bb3b045ddec9528281814d028d1d6e78be895499b7f975e181c80e60627453016f4d2a767ee0ac090290243a9af67a6952a9591e3f242e80a7a19f177bb1c130849b9d74929ee5b048974b2d74dacecd05a32216976c9f605d1ab338de1bf245f5ba8c6822623458be9be96cfac7dfc65146dee746b67b128b68b36d03104e31ad9318c2d6eccd622bdcd07880ba1764a80b5ff9a367cd8366d82c1bcc65c9784c7842ecad63080230c1d6a5cade3fab837afe5785a8972172b9d9d0d7d4558ac162ae80991ca40b520979b24f64435b68c226828eb95e30be152bbbd509f010d5123ab65f31f389136a53b91b89a8b4c4ceef30ddbf0f3ff6237386f9aa9e2e57445d2a100b8eae294b08d6b86945abc3314af6982e5513eff8f8d987705a43de929382267523434fe4bca190b6c725faeb377f9581c49c45ae50e311dcf29cf3489ca8d1ee5cdfcfd5eccecfe9bf7910aebf141b6099f26135cc20538145ae8e0406ff3eac640c7bcc2f266a033212848d4a25b51dea318a97d38399\nresult = valid\nflags = Constructed\n\n# tcId = 34\n# em has a large hamming weight\nct = 29171896b305db27c0c404b65571df5125fac9ea2d8faedc5805fa35dbc2c335286694fe96bf415f4f2e579bd6b559c2569e886ca2e507881c1d80fec2ec6a83c3cf176b697cfd88f098c4105aabf25e2d322cb6a933c0b825d76a45deceecec9c5809a11acfded98eee74597c0e6963ea1d4fd2718152c9be554d511e380f5ef59ebfedb279c60fc622c3ec2f89fb89f82104567eed8b0d1e5548330fd434f3d83adb81b919e308c90108fd10261ececaa4249359250aa1f58a373c351f0d0ab51e344fd76cf0e688b39cd2a14569aaf49fc9f2f4d31d3e7120a2bd1dabe14f22022dc4d9a24cdd78ab85bfe34e048d57d3d465b616a835c33ae1ac2e337cf19d14e362e2f79b4e0feb51387a2b12a971ca1da3b2c7b03520cc6778249ce57540d7e60717864f4fecfbeb1a2e1c5a26487f4efe315fad65cd6c3c9929cdb2be9dde2d7def70709d5d87b7df54b0f7d2db610098a5da516f69cf4375af1c51c5c58bf8183a39ff3476f3472892625357eccf2c71b98f09922a560248d9b1c638a2fe635c7d3c06bbaedf44c5643c3dad43aa66efe6ebf7afc7b19e2b89db235b085f5aab01fe49c5dffae0dea31a4af25b8a65fcb68dd13a166b9b6fbe539eb79d610d2333b77e08a21ba8530133e24b7da38dc86bc1e56c5c869df6f5693e4b1e870d0c8884292edcd5fc6fe0d726803055d1a64d28a19ebfc4b027a1a340c7\nlabel = 81ef95ffcec9fb31cd3a17df07044ff10e054c4ff56d7f31b8ec1e24cbebf6979ff21d71ce627f7d4d7630e65fd07df472b39f2c7ba2f3af7aa645ac7aeb68da00000000\nmsg = 204020bb5dd616c0697e2f261d547f9e1082f60a8691c73b8f3d78ad19e772d67ff85453cce82d39d052f76c2743445d7be719c7d1a8a0f437669c40430ea1c8af4fbeb7d70606e67341925e63768085c94685aa28d9d55ac67e9196712360f477df744ce770c1d8858f33a2dd2a6926945f3632b3391487a2124c4c8c071af265dfc365901ed8046e9e5857c53332906a703bd0afe663ac7143cf4900405ddaec708d18159fdd7919bd6684c02a48edb54223e12c8c5d154627eaae83b3cc1bd4f2e6dcd62d41b519fe2b01199abe2f4dc57d7cc2c360f8c4e72f28d826a8a849d41a86c5b6676f7204a8c236883ab504681fe7a83ef0f12201691252a589cc985001cc7462eff1151fcaa25741620e914aaf6a1699c77a09375d1005e7dc3755e795086a32bf86cb71e93093315233fcc8a86b4fb72f8ca5d320e5ac19c142fa7a0d2400979863489ecadbde99e15e3fc0277498fe871719d2955f229804c2a85594232e3e29ccda494c5e340e7ca9c720f93a1e39f906522bdb8f4f08\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen137 = 931551; + +static const char *kData137[] = { + "# Imported from Wycheproof's rsa_oaep_misc_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-OAEP\n# Generator version: 0.8r12\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 1\nct = 673779703fccab3ee7735e97e7be7fe3d1b39fa902ee35a858fabab8b2cd6b76b3a68f5971b42e28e8ceff7942cc4f3a0f2eeb4b998315961b06fac4b946d0c9f586fdab0c22b1252eae47d3c9d4fcde44dbf622b33b130adab572ca18a29016a35577c8518d24fc6659851b434b0025aa7da027d7ed77bfcbfc51c991daea7a\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 2\nct = bb7914975c8a7817a50e7b3af7d79a93b4de5f9b3ce8a9a15300da83c75af932833d5f662ed58de5d195b4b03b4f70c6d7741bec915bf8077e31238c4d51c6e3c49d1a89211d3e14a3d29ca5e3ac4f9e1d13e22cde950fe979834f12f6ff93247e10da5cfab6b265bc87c8f2a63253ddbafb8ca0c16b07d2b230a78c04747089\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 3\nct = 615a6e86e3d447a655ee83eba8d92e29e08812c5de4816649765457c9b3241498f6308b3b5b1ee54f70642b35b85ff229af8b1e81a48e6e3359a5dd67c34e5d02b58caa36e3be7350481d0f7c5a0af1eaa8eb93e9768e7e1e0eb5c5d75de77c220f41bd03732d4c3a56f6d29cded37752047b5f79f11fd4c4eca39b34ea792cb\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 4\nct = c3e50252a748d77060deb817e617367fa93ae234e535c7c3155c65e0131c1c249fc7ee8e6b8f58bb085a6a455b63efb336cb6fbc9ff82204ec500026a7ae09c7cd8d361cecaf6fba5fdb265d64f90cecd32b0b3fbd93e29725058e1f689f030373fe0c9133660ec88e1b027bf7ddb5abf3aae80f86c0af411496acdcd89908a5\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 5\nct = 6aacaa5bf3d71e04bad9ce95861983d5fa561c1bd4439aa47953d144fc880e82c1540487ab4586e24dc0749cb5d4f9a54854e6f90d03e288c23e5faa4a7a7f9ae09e36dce48428a8a9485123f1bb6d5b7a9bd339e8e799429da33668733dc8b323a29b8014a8eed800b36a783249842b7135e33b1708d4fcb5762a5845b16cf6\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 6\nct = 0c0166f8e2d95d40d1343c4afe4ac038fbe7654fe7c96abf312e385626830eba877197b931039bd4270147d3480a99ee9b124667dd8a89e3e253234c669d9cb45e35a3465252251ab265a3812923dff495c91c5c50f4bda0b3ba9f9b14565ce78583ae7995813ae9a795c4f7d43ced1cb60e2cf8c1341798f8f72ac397f0bd36\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 7\nct = be7e293ee24ecfa696de652c0ece7b95c8cb70b4eca65077616021f7ab5e2e3e6e1115283757d9fae9ddde688e69ad470481459a7db49eab7ba3b77015a5be9e294a2fd5372810d1da1fb6ead5949d44c20be3159e56a9400a685128091bae955c4838312b4da54a30f26481092abe3b7d89ebc249694a09f2a029b333cb1126\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 8\n# Longest valid message size\nct = 163a77d9bf01658d6c74efdf3615a6a44d3d06415a9b6aa7a43d0c8f3907d51a66d51d6ce250431dbf91c22dffb39b6b51f9dc40d9f45a23943ffaf3904e7193816a5a521096c135c6fe6f59982b0c7425bb7a653c9ca33dba69871f29a129be856488c39f19420a4f3a9fd9b6f49ecf9e9cfeb2de7ef3eb57dba9cc19efe0b9\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 9\nct = 43292f009868017ff514f9c3c04c2bcbe7d39e33b2b39d163812815e7294a87eeae5e8503ec8bd57d1f5bd02795ea3923c396ebffde08f70e9fcab64ab22b70d19cdd34653a265f13a36f832bd2e34f5a0211ffadb4dd353aa0bcdeea19c75290f0f948b61eeb5f41f86b42ed3222be38e2a30b8e568712d786b57173b3e4090\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 10\nct = 583c33c713bf7f920f63add1f9da9051ef3716581c117b4fa41c82e59a45dc4539569ccfb8a86dde1ef4fad8bacfb8be0f73a9e3dbc2c682d1463f8f72304aa181f1c3bf829121d5809cf3f57ad295710728cc44aa6ed74e46b0975ef5510e89ff129dd20dbb66ae948b4f633d6fc0e886f8e944df9a2dcb43f48a6b3327ead7\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 11\nct = 342f6040b7f229009a429a9079950154588ac7689aa226b363b75ff03afe2f69a2eb8e2261c6870f1aae8a0885ad5fa612cac2cb63f92ddeac9a721b06bfa7a343670a44afda70bd8e64971699f1136eb95c0e06bf684b850853f073719275accd66f0e1ccc50c6f163b13d4cb5d273792343ef69f547a3477ae5d7985ca5240\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 12\nct = 75a608f2a58538978fbb1b5b761bee895c10d3ce99a0a5e791d65937098b9ea30586ed1bde62a2cb3e0b4332c5d993e35b52ed28402404521f5b579a5e257b76c2e70d67b6e1459b790fe32eee1c64a5d9d78e98d7a8", + "513d5dbec7b1c958b0f6fda4b322194d68818747f9a75afcaaf07f8def984aa09373997900b69775db86\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 13\nct = a12a689e17089bcb36b9487ba3b0ca55781ebcd5c68bf4a8dda58126a7ffb184633f97790e84905c2e9e2feb8d7fbf6cacdc35869aea943727ee3fbb494ba7657eb1cafb0c6e39ff159f41308d758f07afcd48808280f1269910b0aa51da3027788842df88ad5a299a014a040b4a9c9b54b382d349589ecf24f4acd82698ebea\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 14\nct = c019f80847bbe0b299b256fcdb1e71b035345fad162969d202c20bda4c7398d14a1a6a8ebe75ce61b718425a72cdf0e1cf7accf1b692a175c146e87e0eac2bf7920c8b218640f8223e536dbd24f93b8455bf6a45f6b200b38b11457491a1bfffb4abcae258e2590bfdf585264f31bed39a0039cd23969ccaaa5da66307a6caad\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 15\nct = cafb437c778965cf82ba9e33cfd390917c7fcfd4090e56c70c2e9ffe5863736ef3c8e62a00e61a11c86a100c56c49f8f39fd9d04616d95e2467dcb2c61ca6323c887d78ebf3ff71eb67ccb9cae039de696a47c1c3bea01caac297e3ff14cd6642353d68e3bce9bd702d225959e894a2f996c7e0064ee1a340ddb6071634d0982\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 16\n# Longest valid message size\nct = 59f72eaaffe725a5808f31ab0372afdc2e87f4ee8ba12792560c1e014374c82432128380adf701f4a4f814a8329583abc22dc9e76af568d3aa1539ff41034e17c89450c9efb17ec61b89c2a47744f43e675e870a9fb901ab596a8bf5bf8603833bc12f49d52923f32e4d0af4c908ef75a4b9ec2a6b5475ef30d31944dc2534d5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 17\nct = 683504d9d84b2f9eeebda7748ecb59a8ea8a72a283983113deac27e65e268be105019dfc6608b6adb4c68e5a8b945481d797efe72bdfa554eafba55b5d4f2236777465eeeca0364e72f0e0ad96b09e1ccef8e7eb6bc1c58ed90a838f7c9b81517080b6978c1dff0038c6ff944bd084954b6b3b0c3184ecdfd08120455b5a24f4\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 18\nct = 0673ac76c5cd297a6605ea6fa07ab36179ce8d7ac2291ff1ca43078d542b928aa53ed48a9389203be4313a15c4dd476a6d97a67aef5b2765e460108312bf28c8b85433968c82a3127e22a6fb6088c088c0aa428a495ba25fe6c570516457ec68da37db32160266d5cff2b8e0cff69c8ff722cd71c44f80a6085005eb48ad2c02\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 19\nct = 196a786011bdf22c7ef74f04b9104314086a25219803c319ee8d2d1e0669505f61122c13f4414c23da0ba6fabefc94635ec5534eea50d60cbf094ef254622005da9b64ecdd529280e32ef32a1210c827e25e9f851c235a7d1681cd0156bc7714b22819a8ab99cc647ba310998dd3ba11a2d694376e111101e781cff6fb0ee52e\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 20\nct = 73cbf741e6ea2ff7d90da94f6b2b0193948f3bca2fd46b6d3d1419a70628523b78325e3eb1db07f504e0463612ca04a10badca665cf032332e0cdde7577e1f54710588db2707c1606abf8e84f2d8141e4f09e63e198827824bcbc82673fe2186b8489b4e9b52c30e536705cefe652954b97fbe7e0bfa0bfc3f8b51a762806232\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 21\nct = 9a05e365b558644187da88d6d54ce54ace67beed3b727dbb59bd3ed1f72ae4b8456c85254416efe608e2073ab3010fc7c2d27f157e9234e4d5c7f49bb89750819887d784c6ccb51c7f59cac5e04375dbe42b18f187be137befa13ba80c89605a18b8d838ce7a899e4a3145107d23cc55860e5d32187e0c6dcc946d11578c6c9f\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 22\nct = 84084b95130f1d91ba7444c045898f8bee7917d9dad6b59b9bdcb204e5ee8a142bd94b405ab42d859bd6d9e8338a202b67c2551a539201d6657eea79cdc629125515560ae5061477e5c7efe0c4aacd36da41ad126aa630795f9e105ee70fb77fea7a2b371907afd415697fbd570bc3f414f4b88e271f41be1223c29e3d72b21b\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 23\nct = 52ab5613c4ca5fd259398258edd48186c9007cb99b11915c85060e84975e4de2365723315ff4269ddc37acce4e809598b7adcef464c0973e8ad12037b186c74b2e1e76212421b127c2c1d56c6e69d353a7ce52531c7a1d375cb6a0e358c86de3798378a09c4ffc38a4d27adcdbfac6211366890a75692fd2dab14360717fa415\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 24\n# Longest valid message size\nct = 1d79894e48cfc27e8fafec2f2f59fea5890569201172ffe68ea13fc3918ea0eb0e5ec1c3265a39acd5e1d210883359ee35c33d18206aa8d59c1a0459de1282fbfcdcf09a2c0d3a849c048875240b9ff1452f57a9d45148f838dc0b47dff2b52e0d93760d7b4e1f0e389abe425c9c167dfbaa3ca0196e660814986572d1878cb5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad6", + "0d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 25\nct = 54b9f6b31d9a10c7534d156f6f07dba7310a714a4b3b1c7b7d325825cf30ff36a2dbfca7c740ea03304e0a1e270e320f2440504499c312b4f4fd46d8dba78211b5b1938e43dfe386605d09c8c1c90fe2cf0f8ff7f7be04550914217312fa4105f13709167cae9a0f4076b1d07316f7347bb01e33d71bb0b7ed1cd673433a1ed6\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 26\nct = a7f2cc65230e26da285af8905677315578b2d4eed37c8eff3c649f5f099c28d5184509b6ea5515bc1b15f7c0baed4323dd600f13d3831613b923b598c6446050a13fef00530f475bed55ec8de81e7badc5a078a2989e4b66ee1909793de82fe3bfab63263c7aa8bb74dc4afa23723982e65a0d6ebb2f54a53bf2bdd2c7c410c1\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 27\nct = 4f23774e0e834c3c94702652a3be92b3007b830b8650f517a5d2c690161c0a802f49fa9f896ee4de4c02370e84f66b8289d69eb828eae7ae2aad814770817b31a022fefd33e18197dd4f8991eae93292d9236858266944b86fdd9dc33170bd8a5f9c473afbffc88c51870d2ae39deb343da25afc2569bfede7177c92e80821c8\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 28\nct = 110f46bd1e27da8af2ce52d4c41171cdfc0c6a69f0709826b5c2de86e716ad41401d75442f849a06522ef7ddc0d67a99c06d5b6bbb8fe00a7bf5b470793bb65e3ddd761b7db657ee2e0fbddd1bf9e2441515e11717507eaa4a868378b888eb17ff4f02221c84650c2c41ce89d95e399f055ac70e3698f6836c655c44435090b4\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 29\nct = c55786f3ebec1657da50ebd20d4a984ef54d89de99defea0de73db7e348dcb505945fe5af43a319f38d47c9fd1fed3c6b5e91961d1cd8185b6021293f208499848e5ae2bc7b24274fdbfa2d67dce5f2fe986d4e4ac7067979b51bc220441d2da2c9123c5526200d57d81d993480d6ae622f2a1434b8387c4e641cb632673be9f\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 30\nct = 8637f6b594861442f04a9422df3ebff415fbca162712c1d69e83f6b05f8ac8214893e815fbe46b29ceb901830aa1b5397de66c0fa9607ea758849f5cd67571e3acfb0c614cc59512192012f18cc7a8dadd153cd7838572f921907b11b4ccc8e67614490a3e4769321f1e6330470bb206e81107c012d151512f8650b60c61381b\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 31\nct = 91a7ccc9d2fdac9e8b9697e0efb4f67cc1c1f5083201057e7405c0a82a5a91e3c6edec26a406367721c98be3baa7cccb5fd2a08bafc4f035e7e4c664e544611e0e44daf2667b26a1aaf84006c47661cc483d4ee031b35cf33c5205f26aeaae9606345d51b742aa5a09bc1a51b739a71aac058f9e69c4ead478f47597fb6a45bd\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 32\n# Longest valid message size\nct = bb0ff1cd0900a210d44649909b503a58e88073c3f1707d3be68f3b8148229b789c4870f5353a38f0550842cbebb7a596e6c458809d94626c3d2b457709990ed366fa1f66a0eb0c144b311a873080974f9e5a681abfa2afcefe43f59115fd3fb9fc2d2e685f3ee2ac686460bd79a88d90d2e5abc6853ffff19bbfd70333bd008e\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 33\nct = 2599294707d4888914f7f4b9634dbe1e471b10e3e8d43a988e853dc9943bcdca9cbfd9d44a780d6ab9df0617795585ab91d4c2d1a0f0e2bec78ac137902a2e1a88b165396d02a24beddb3905a6b3f031a2fef0d803266b170e435769f248c3e6c122f404f32ff3c450b38c608f12ff70ed46657d2ceb1a277b8ce418a7d9ba73\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 34\nct = 0daa2be79921c08cddd40e536bc38da267157f22cacde4e9ad36730d616b86c734a7751afa3d7678cc7e173bdd3b9afc19c2f4cb4cae58fe1d623685026468673b36d268f170ab500d974b57536bbe44f544b002101b7ed1b4d342c18c2ac169bcda4219490bad3e645cf5ba69dad96860cecf559307ff0d293ab30dd330f8fc\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 35\nct = 82c311c219ed2bd02be97da106d14f01e3292595f16afc6e61cf6d55202e7cff585fdccb56eebd86d03a04dc76069d1f06d3f72b59ebfd9be08ed664045377434311f83811163891704ed2fe0d25fc813b2df2718c4e32cd74fff8bec4d554ff72ff5c6420b2b76c03286dcfb2a662c8c66a86b04e61863d2ed379baede9c918\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 36\nct = 09cb258d6a5090a2638d2217f3c6535def5a2a05f97a2606f608d3ee10f7a6077f44bb63eb8008fd6d797937edc31dd0d5526cf24eda0191c4f48fdee02bcb731e4ecf09388df1d979c11fb841a0ac0d017334f6ec9f8a9c4de822c232faea803eff6225769a39d68206eead6414af996b1969f2f8d6bc1c3400f6fc31bfa8f9\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 37\nct = 6daf23cdb83c5d16be94c4d9646081be49dc1db87287bdc534052d6848c5cf47584ebe6ddba5767f445c11010e019352472aff14343df44232784dc2adb135455ca28a03bb69e865762afa850f907d89e14e08d9a81e92b0852e99d360804cb0857e47b4bd2608838d6f81826d74d17984f805d7de29fb475ab71e5bdd057612\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 38\nct = 6a397116dfd443619d3acb576c282eb0ee28b2ba901694c5459817909167fe1c9fffdce119316fda91e0f5c65ea4eecc595a18bec9a718cce8281fc4ab63d56dd82bd835b86a8b91229178d52ba4467f74a161314abaf533443efbe08270c1581caa5876eade4d34f48f1c9411aa089bb4a3370b92c30cd918bcfda92108e083\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 39\nct = b399d03b2fa231e85308c6c45fbad1aa03d7f328bae29e94a1c4e6975238d1883a343ac5c49f503ff35472a27c843d56cdc7c962c8753ce2229b2ca37dd9e24e3fa3f528787eed3c8980e9c1b888b093079af2ca69eb39859cffc31d66d0dc245d1213c7f54edb769bcbf0f10c6833967a7d13099ed99ed84154d505d51de912\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 40\n# Longest valid message size\nct = 149bd74986f0b9a4910723216817870a910c157d65df96d991f5dbf144f9911ceaafd2fa799b58d7e56971d6db66d3b23d1232ea0fa5be2467eab1c9142a898f0ea53f2c40702c42b2a7c0d987c50a6d4dd54ef27238f5d708e77954170631a9d52a2f54c79a4bc3edc8858da72752ad472e869782783f3e91ae36c176890190\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878", + "7878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 50f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b020301000102818050f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1024100f002a2625626ade6f48c6f981017968124de0e2a8fa38d6bc4853e1bd0b48ac327610f5e566f017bd74bd5134cc9fedc2625f0f7370f42249663e31dd58c4ce1024100eea660e905c086faf3d3ea3a94f2f9716a0fa760c170edc81b64a05cd5289ba8def634500068682dde0600531b41cc3565e9d6ec3b4ca3f3385e85a843e936eb0240667ac979318ddc6d23f81ee20fe4f2777c1570790dd1e8dd9e10c27f3ff306d8e324975a518f9e53918f2890d015e3c37e6a6ee42fd74d07b04b403b89e619210240609d72f663a1c203aedac824d75056b417a026bf01115af27c448cb788845c204dc397021c68286509519ca8088ce6c36772f7d3c35e0fb1d3cc5088029653e9024100b1bde8f7c203566e12f11e23319aaf9cd671e25579a22d6d153eeec123b5ffbe7fd6ae6a0630ef956640805b9231d9b5da97a0d1d83b55374c22885ebff7229f]\n[sha = SHA-224]\n\n# tcId = 41\nct = 99a2a8d32a71ab35f309c69848a6afe8e18d0aa42a370c8b81d017b5624a2d7cb3d83b4c3bb24d0a7514e2a2e23ed86e891a033c070e73f3275f11e066f2f2ec2677959a8977b370d92cd310c60f69d4770e7a49009a77c387fefda4a64cad6742106327c691f0bd1e23ecbce49cbfa12884cab399a770e3ba66582205fc63aa\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 42\nct = 23acf5996c85d6ba07eccd3de623ccd6d5644f3ceb04e95201582c2d1520637136fd7a91ccf1daa33f4453d55714407b0d05e8c2b38e1fba138529157600acda5569da0b7c0caca62745730b6cf18f2dfe2128e66b058ea39fec795086c332a6a104dd6bf06ba2ac563e5ce054f77705b686fde8b214002f6c410b472fb353bc\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 43\nct = 9ff8588184c8759cd8f8197309a66570f8437e03aeeef81adb91fb6def5a0a5b6f23f196c3f4a1c0aa48d3f976c61b71c0f74aab918da212c59500bed981ab388c2f1cb0f175c66f3add89ae01540273f9a7ea910bdba6d9bf3170f150a68fe904d4e67092e14b2b676b1fac5f728d54c01c90107dc5166d0ccaa2c790eb8dca\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 44\nct = 683b389b6cb05cc276047fd6a454235c0818a02f77184cc026e30f66515983fabc2e98079cd6e331d8a2102c655189c0a862f4a80130f0e399e6e933d13ff1b506143253eeb8ddae9909bf3ac6b3b365b3c1bab1d548f1deed484f93a3ea852baef6ce4c14b9a8efb879b8fc17802d6436bddefc3f91edc5f1ae1b9e01dbbe26\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 45\nct = 55758d7638d655cd0aea24116843c66b4a6e534812946b540af63e0ce9a1f9a912609213fc098f17fd4ef263a7ab5a8654a2808c89d09a14ba77c0b24a8bf4b364887a175700e08c3465df91dc40e8db95ac7eb7b78eb04a1b45006d88f273ca14ec308262930e677b5a261f2a19592979d7620f97e0e0218007587cb2104ad3\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 46\nct = cd33e6154ddce74a9b42009c86063de67d42594ce5274bc1e9a832ef5684c82fca8a9fd198a41bf17d9142731658068d1ffc94143bb4c75874759b0818b95ccad1cb50fbf34e88bc27bf39a7c4a4eb811b9c507269e50b2ca8dd662c012bd0630df5b4089ba8811b61f83e161483f784a7177ab1e46280c31d5a7e5b24dd60bd\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 47\nct = 7d004cc7b6c7ab81ac236de2834ad506e780333f190c4f44022580b700de9038710057f4f8fe94848e619893d6184b75909f223537d5d321d93c8a35a3cacf64268f348652937680031aba141005db666190749ed4d13eaa5067f285ac08098963f6a535716fa80441592b1bed74b29e73a59f69dc3684bfa381dada1f67cf56\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 48\n# Longest valid message size\nct = 22d27445be8274aa9335350cb6db62448886b76a3ac683ba4c3b05f835980f73ad07259fd57efb5497bf5672ef3106fc5920a747057246b580bbfdc22632c20571b334f29c514bfbfc52cffee0c921605c7a6323c3a400474b8c43955ea101a143f3d67eddb02d77973ca3da925d4b0a89a1984e98ff2c117beda678f1ab79ef\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 50f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b020301000102818050f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1024100f002a2625626ade6f48c6f981017968124de0e2a8fa38d6bc4853e1bd0b48ac327610f5e566f017bd74bd5134cc9fedc2625f0f7370f42249663e31dd58c4ce1024100eea660e905c086faf3d3ea3a94f2f9716a0fa760c170edc81b64a05cd5289ba8def634500068682dde0600531b41cc3565e9d6ec3b4ca3f3385e85a843e936eb0240667ac979318ddc6d23f81ee20fe4f2777c1570790dd1e8dd9e10c27f3ff306d8e324975a518f9e53918f2890d015e3c37e6a6ee42fd74d07b04b403b89e619210240609d72f663a1c203aedac824d75056b417a026bf01115af27c448cb788845c204dc397021c68286509519ca8088ce6c36772f7d3c35e0fb1d3cc5088029653e9024100b1bde8f7c203566e12f11e23319aaf9cd671e25579a22d6d153eeec123b5ffbe7fd6ae6a0630ef956640805b9231d9b5da97a0d1d83b55374c22885ebff7229f]\n[sha = SHA-224]\n\n# tcId = 49\nct = 64ae68c859b8674d4652ab713e292bc6558d924ef7f2bca085dfee8c6e35ca02f09428372375cd5a557674b10a1256777d897e7b73253cdbd49cb81a69b503ab9d2a144ac96989bc4c6359639dd20776962b345b27e9a9f6659717918e57fe08796a421c036683a57f0cdd6ff12b3c72c3966126cfa28eb8a169c3ba9e895331\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 50\nct = aafb3f33e5a035c28dfe30f5fbf84f0ac6184fbcb3a460bfc540af1fad1691df2f14225019c7aa2967cff67c71c5d478448f662abfbdb55b3cdb3f76231a24b71e7ebde1bffbc85495e21dc54d43755d74185c0cc5468fc08b553809a5a7cfb1efd86fb4ea0471eff49d701d55d49b410ed6e0c2b08194c23a73a825abdb502d\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 51\nct = 2fb3a98351b77e5cb3350eae150450c0dfcfa3919522f103d33731c1ba059c03d7858bff37a94018717366d6c83ee4606e91aa15f58eab29bf411b38e04d5d5e405e88ee1fa18bf42e49091fa0d6b26bee1d1d50503cf1c0ecfdf56db876732d4dbf2b40672663f26c16ceca0cef0b86698ea90fc271c1062fcceec4492a2411\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 52\nct = 477f589b7a4bb2356ee55eaf742c89fb251d65a8ea8f4781b2873015858ab84dccba4574611ce42b3d404f7f6dd4cd085f13810498e7fa9cb51bc814b8476db790dd4a5768d8653c52f835805b6ef3618e670a3bd2994638c4020c956e63ed1edc6b1d04b2bec25073740fa330f8e2f6e898d1b917de705c90ff448c8dbd6524\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = Smal", + "lModulus\n\n# tcId = 53\nct = 6e2cdaba72baf64e6285affe5a1ac266faea601fec4d6439946c0a8b87806434b826378994f7c3fda3ddbfee858d20da6db2a4a6a592227d8d2f48a3d6ff6db7107653f9cdc5ee40310c405f06b39035162813083e57c7ef4cb5f4a3559040cd76668b3c874e478e747d5f407b4a095a9b988accea069a856882d49e5b80e33e\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 54\nct = 8d7d8a23904f5515fd078ee66c95e84ebbcb55abf833b7a65353e989120d8d1c79361670b9c5d3cf4af9d31692d7f1478afc84acac9e12a2ddbc416af9e402cb88c8ceafce75f6a3d7bde03bb29ae444f7904bd2d1e8f615da9c3ff8dba1de2aa89f37ec4ff15a0859b600253d0d6ad28ab735c70d77bff925e4625432e8038c\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 55\nct = 32e0b84f96bcbfdd1ffd8385e83e0b8101b89e747ed0660113e352e3e3ad4aa596e68d1d6f233582a1f065c5733799a34ce577abc3c68151d2e4795ef0c5bee4d28df4750c957d0f2ff0eb51a06b85be354e09fcc34fa383fde0cf415ccf183607502a99e3c7983bcfbc66062f6899a70d4ec1e36a744961032bea5bf026aaba\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 56\n# Longest valid message size\nct = 06877383e325671e32c9767941f102178526a260feeb6eb8375486ad868eb32ead8a0f535289810eaafe9525676f5eb9070e1da42cc574153ddbe814eb2ce39afef3e194d53afedf89b465afb31844cbfc1a56b5eb4dab0f93808ac34fe6037d4785f3d52ebad3da1121d2203bb0ac8952567419794d67788c8c039038f28f63\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 50f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b020301000102818050f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1024100f002a2625626ade6f48c6f981017968124de0e2a8fa38d6bc4853e1bd0b48ac327610f5e566f017bd74bd5134cc9fedc2625f0f7370f42249663e31dd58c4ce1024100eea660e905c086faf3d3ea3a94f2f9716a0fa760c170edc81b64a05cd5289ba8def634500068682dde0600531b41cc3565e9d6ec3b4ca3f3385e85a843e936eb0240667ac979318ddc6d23f81ee20fe4f2777c1570790dd1e8dd9e10c27f3ff306d8e324975a518f9e53918f2890d015e3c37e6a6ee42fd74d07b04b403b89e619210240609d72f663a1c203aedac824d75056b417a026bf01115af27c448cb788845c204dc397021c68286509519ca8088ce6c36772f7d3c35e0fb1d3cc5088029653e9024100b1bde8f7c203566e12f11e23319aaf9cd671e25579a22d6d153eeec123b5ffbe7fd6ae6a0630ef956640805b9231d9b5da97a0d1d83b55374c22885ebff7229f]\n[sha = SHA-224]\n\n# tcId = 57\nct = c4d8bb8b8a9358d600e5e1634d1f8174b7be543b4bd5402ade0ac1813089ef82985c283c68c66f98490b9464e445eaa222c2d4ec07d0bd9e182a260ef6b49eb05c9bb038169fe28018c5056b20ef575804521dd7cabb7dc4ed63c5e018da5382630011ac1ce7bdf4787f117394f2a2abb85438cf1511e86dfbd7cabc02d9df18\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 58\nct = 78ef6374ff50595300364ccf4eb4b7ba972fc86742029b7d5327051921f94841a1b2685681ca68da2f0c41eb73154ca74ab55106df2bc0a32c9053b65b342658ef89d854f366e7988b1036b00df0d6eab1df198963e916ac523432dc1dab413ba2110f41693e5f90d3b8e14126cea296389c287d3f4542b6f62b4b848228efb4\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 59\nct = 54b3f086a9f730edb920433318fc499a47df9fd101aa4af32313fe2dc48c700e951539f295b6428168c0ead6edf070327f6528d408bb503bd86b046319c871f09964b475232131d8ac157ec3e4efa985efe5e8b43cec75d04e9edd4de6648679bbc68baf8f06450a4cafd7b33d71d519b75484093043bc39ab983e160fa4f0c0\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 60\nct = 453a83b439108341f4f6342c093ebafe2fef92135a9650d43469e6447ca129aef30c8a3f972e20caaf4242abfb158aab4e963a4b3ebbf0fad26df885f119bf7fb156c708699cee5bf260d4f327c6dca53fe026eb146a6d4abe038fc477f38b7e0b4d5042eea428f4732dc8702f03335c5065a50b0c20d2c99a42c2373f7316ac\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 61\nct = 5f349d65e939dace65264ee3ca5926a3c7e341171a304a15718b0fbb042d09057621caf214afa24acc6a85c2d726767e4e255a8741e30fc5973ffce70220468c4d660464562dda8275633cdc05d7020efd956d3fb35e21126793433e299e9675eabfcce764f393dac79c4d981973bbde322533d34da5c20faf80666c1f472a2c\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 62\nct = 3cbbaf8cc2acf808251f794eda8e72fd0eeedb16ff14052787bb2e4a6a313ccdea67f76cedb5f5fbbfe02adf5715ba8f0f0230a25a4df1429a7266f97e76fa10b8bdb091b0f2cd8f6602e9c9b18ae8a4921c5b9d430821513960b96ac97ea0b9d8929840215e2bbc81f399b94b9525d828e962dfd10ce0f23cfe1cfaf868d7ae\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 63\nct = be0e41dcb65c9127d6b6882111704074070a6998966279eced9da148e8d5612b80ae7f6d0dc1dcfb28279e98d00ff13db27d739b38c6e61c6a295f925a6862ef64301ca92ff16d8bd5592739b0f5e3e2a93533bd324fa26dac25e7eace89f71dc1e995776bcf1720713221e6bb6dfd32b0d044682742aa8bd3fb38d7af0dd5a3\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 64\n# Longest valid message size\nct = 3af9e85cd302e65a07498047b3e1107f1e59c5bd319f6004784e57d12f637425126fa6de39cccf03d5be7e76384f410122a1196db3073ce8f4b6e11b0a610b3ecc650ee0196c7eb96190faf031a484dc82e8def983a63e7e7b610303b580222c871432d9c5a727bf6997176bbee425a313504a7d794b5942d510349f172cf8b6\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 50f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b020301000102818050f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1024100f002a2625626ade6f48c6f981017968124de0e2a8fa38d6bc4853e1bd0b48ac327610f5e566f017bd74bd5134cc9fedc2625f0f7370f42249663e31dd58c4ce1024100eea660e905c086faf3d3ea3a94f2f9716a0fa760c170edc81b64a05cd5289ba8def634500068682dde0600531b41cc3565e9d6ec3b4ca3f3385e85a843e936eb0240667ac979318ddc6d23f81ee20fe4f2777c1570790dd1e8dd9e10c27f3ff306d8e324975a518f9e53918f2890d015e3c37e6a6ee42fd74d07b04b403b89e619210240609d72f663a1c203aedac824d75056b417a026bf01115af27c448cb788845c204dc397021c68286509519ca8088ce6c36772f7d3c35e0fb1d3cc5088029653e90", + "24100b1bde8f7c203566e12f11e23319aaf9cd671e25579a22d6d153eeec123b5ffbe7fd6ae6a0630ef956640805b9231d9b5da97a0d1d83b55374c22885ebff7229f]\n[sha = SHA-224]\n\n# tcId = 65\nct = d53853f68ad01300b1d29c8f7c102145609f6f758bef38238880078d9d773be1f6a19b0db920fd905914dd68248b9421c9f407ea1a77770aa8db32320bdb9628c786aaa1d65e5383d26bea31952e07a0fdb866b745530c35f65aa805244b5ea3c0f968367672d8ed8f8370621ab69831f2a0a22d1950675daf6bb8859aa40734\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 66\nct = 48aa7fe344a2b75a75b8cf3ee13cc30a87945b6cf9f3e323fe60fa37752263c2ed1040baf1a235e0547bd61887a444c209170d8c5eb977a1b44e3a6bded27c00a5294b46e637b645dea56cb375d24b9edadb5f436b7ca378b6c2321f4632a609bda5cb4c327091445954a990e781471081e86372ede792b869de9eb82fdefb90\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 67\nct = 32ea29cd66a2a50212fc9c9bd13a1fc261f05e37804e2481bd547ee3f4f6597f5e9cc17c11b50321263939b624adab38898bb1b44ff19f32e876d2028735202c887183e34eb161f13b0fb62e8cd10538c3bca2b1a0148c953d532427a3bd1ecd76280668a2f09d93ffa9e6adf30e1960be466e251913bd38f6706ad57246b422\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 68\nct = 35cff63d5c2db065620f6ba2dfb39d07ed155162250112029d510d2f096292568e0a9b2cb4597fdf6ec7294613a102bfcba488a9417e2ee45e089eb71e45f75bea2ce4798e8a384f44a126736764d70b2675c1d45cf129eb1aeca05f7bc2b5fca6a9765c4f63e26348e913dccde4fbfed325cb020fc84c5b4cb45de1c4351600\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 69\nct = c682133eed3e325d0eb6c55f249e2c78a4a43b21efcfe19f901b8b7807772e2deb80bb1bc836afdd3e7aabe88f77ea9021135bc6efd850bcab92083276b6b7bcfe6ac232716e0c5fa79d20c4bd306c600bf7d44ed7734da3281b42d9cf81b81f5e9b222f2a198ffec4bb83de3a51a27ca3fb29506950aa71cf4cf0f4675ef5c9\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 70\nct = 89e7d862b37ca433118cda25b999e95fb3a750b79393fad002dc9a6f7329ccc513f1dc578bbdc57cd93949c26cbf988f0800564a548464dbb5cc1b795570970ec5f1d872076e3f1c123e12a9e3423dd0bda8de394fee63d5b8bce32094e9e371dc21f661196122db75f47bd1611d5149427371b9dfe5c50f064a372d2de9cd1e\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 71\nct = 9d39459233b871241caf47591ca8f2ae575125b8a8654aa569b794c8690c9639c89aa0ad584e19fc97a5b55caf3c46d41b2a9c944306dd9deb617977828f94dd092f5b5d98c73a4387949df421f7dd5f6d6050a9a2ee6178145e6656cb29428029a775508eb7e64ba4744cdb379a5120f4094d242758778c1a46f8aceda02a6d\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 72\n# Longest valid message size\nct = 14a354f43f6e399d9114bc4637aa09a54e3824a6db033435768000c63c2780d693b382650832c255ae300cabaf55b3d7bb1ca1e4af64473d4fc44966264a64247be8147bb76e609037e9311e98eb29fec15e5c735ffc037fc102372b1367ac81fb90ec5d993185712321aa06f1cc807269f0a8ae4d5b605cd2e2207df11e89ea\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 50f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b020301000102818050f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1024100f002a2625626ade6f48c6f981017968124de0e2a8fa38d6bc4853e1bd0b48ac327610f5e566f017bd74bd5134cc9fedc2625f0f7370f42249663e31dd58c4ce1024100eea660e905c086faf3d3ea3a94f2f9716a0fa760c170edc81b64a05cd5289ba8def634500068682dde0600531b41cc3565e9d6ec3b4ca3f3385e85a843e936eb0240667ac979318ddc6d23f81ee20fe4f2777c1570790dd1e8dd9e10c27f3ff306d8e324975a518f9e53918f2890d015e3c37e6a6ee42fd74d07b04b403b89e619210240609d72f663a1c203aedac824d75056b417a026bf01115af27c448cb788845c204dc397021c68286509519ca8088ce6c36772f7d3c35e0fb1d3cc5088029653e9024100b1bde8f7c203566e12f11e23319aaf9cd671e25579a22d6d153eeec123b5ffbe7fd6ae6a0630ef956640805b9231d9b5da97a0d1d83b55374c22885ebff7229f]\n[sha = SHA-224]\n\n# tcId = 73\nct = 0e4226ece9adbddaa09056f5da185856a401bdd4fd8425bced2b37014c9e215da09f143b069b936ef1e3a7411185ab9636746f12fc11f4023a4fccbb1c82ee5385c0dae4b005bb61b890cdebad062fcbe12b1920da229716c2a54f419e9ff9086bffc93b5363ea93a6e9480ed2f78c7d69a2162bb7a2d844341c066f53e69e8f\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 74\nct = 3ee8e9b4ebad22e8bec3de03970ccd442ca46cbf5a99f5c63f418516ce7e4b5f626d5d9d08f154f2a12363a984ab93f6351c3b6ebcb47ba28af954bd6da74bf9cda21f1bca74f51805d9d500bffafb19b3565e42d56a2585a4039e29fa85667df4b930777834e2bcdcc13e60baff72c1286e46847ae371bff6dcd5df519ccbe7\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 75\nct = 21397ce252c8699bfc375e19cd052dade3ef72243c80311b7626a95ec62eefe32aa3151687a1fff383f28f1324f85c062dc5c7b28314783ff2c41d59c554b2cb3a271b58d09b8b610e8fe0f48b55f0762054b35e1f11e853a901bb47e53f2de3c721b022eb2c96a662e6aa0117d007488cd36779d26ad69c3d695e8391c0e6d6\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 76\nct = 79bed7cdc2f66c72a5d35c5954798fb20b3b19411ec7a279d1b66cd993f9c82ea0c14b62cc27e190794d094051dfd907b5e7a3a2ac4a2039cef47c2a22e683722afc240a0dbd0f153290d109cffd2338ee6c7ef6a28de84e39a65a7ecd0e5675e2ea50f244da96a32cd6896a7d040431b292d475594c8239860414dd876f3683\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 77\nct = 8d08c17c1df8d53c8075997f94aa6b6d129ccf566f37e04b1cbffc473f4ee268cc8b2eab2f303271b15276eee125c98969acadb185e41818a00d2ae0b8eb95fd7c0200f7ef10b402355ced629d465d1a3dcb0a6f032f09955165edc27dde9d8cddee0339775fa3f7d38fb093518a7f14dae7616575d5f06ab380927679a426c5\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 78\nct = 45dc6e5a80c303a56f7c7bdaed88241801ab974046e13c997a4bb542ccc6ded9bb2b70a9f8c84e4b9dcf15146aa92160e7482589cfa316afab76694e492f14b8b46532e3c353107da9b87d2b646d52f0fc6a07505e5637054ebe92628449609d3891d09911c75b3eded5a1607cc8145e467804ca3c266cfa692b4c9f1d3f8463\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 79\nct = 439745a4897cb61ac3503e559f9e494d7088f0214afbde349ddddf79839a3ae8453af0e9b3e9b36fbbe8ccc3715efff3a6c5914c066b5d0f5a5285073893f61e18a83fad8ff0609ec5135e5f610dabb129a843bf598f4d404ae1af751425897b98b11fb5db8005c5bcb1bbad46ae2c375a3dcf08d933bff69b070aa94382e146\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 80\n# Longest valid message size\nct = d2fe011d31c0936ccb82fdcaef8cb3945919702adf2faa7b52ede32e84a98d2f7da5be6364b991581b959babfec80b6409a97c2b92869c9dc641732c0ea1358f860c7453ea9c556d2be32dedef833b44e1846b3cf5ef5779fba906945452441d6a1a669c9f71fc575f028a7dec6ba97e6a232a3a9bde2742251d75bf32323404\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542", + "582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001028181008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841024100d397dcfab4919db23bb6b88c4511516f6135e1118277e496130f0cab3a75661010cc98ec8f40cdb0c1ab612c03bbe3b023d891f46185788fb114437c8a9ae71d024100d0c7805159509ddad70f35b9a76c7c2bd95a844d36b76d96138cfc7a2a55f88072e8b10ac37463caf9bf8d1014c93a001214d7ce230c8332fb58dadb05d52f8b0240762d3c4b7dac5292284dbe3701a051864e99e4117e77ede06fd698f1cd5da25a58b79cb58ab0dbf0dbca17249915486ea9269d260b8d9b2f4dec8e60b19d2075024062a4f06eff4944dc6262905ae0cd343a2f9f42058d85cb646e665de086e249e0beea4cc42e276f03374f9721f30044c445c6cd545b610d186883ca1c543c2f1302403cfcf044035c1854475e1dba480ac50d2a059f32d18e819c96a3199b1e3855a653ec0e5577e4d7677d6e0b7a55fc418b13202ee19430228c4bf9d28af8851c9b]\n[sha = SHA-256]\n\n# tcId = 81\nct = 6fd169df69cec8b98a792d6ee032c88de609819167f7f02358c701797d3104ec7bcbaa3e8c0efc7998a717d4638cc0eb3aa1a3eb9a272232f102b90e042a2f9fcf64f16c47f6a095355e646d52c6733310361a50b1c6d6bca24207679e0e6de651581f2513d25dabd981356ffe7bef6107dec4758ba9649d9dc510fd96a8ca0b\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 82\nct = 151cdaad2de0fc0ade12bbfb2a9fd4532b153f4e60b0c2a5c91fa90903616e3a78935b1919e1fde04cb995cfa999037a995ee8d65a651c4e436e8a0214c7c1c4fa7c5a0148b7f24b22402ee82fcff5e7eeaaf9a70bb1294707ed0f7e93267c599db58bc2c3840f7f4fdf9d83f5932dccb9cae804649a759f55b2305ec4edffa7\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 83\nct = 480ee83b1f3c555bc26f8d0e3861d72814de3400c82113c768b550512c285e836913fa4aea242df12264c0887c55376acf74e150c20650cff0f876a7e439e670b26a88037660e1ae4fa5c2e0a8ede2c616e40f88480e8a7fe66f08018a0d45ed0b51433e2e1c6f7bd172a4f432a2ac69da399b2e118d999c010e348214c67922\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 84\nct = 915b41e91450588b57e07486ec0fb2366d9437366d429a06e7c9ab39d8a6838d5b78d724262215141bd90dedd8118060ce94bc46f938b9a9d89b8d13010ab20c45ae8033c7a0f826e237940274731ef5907484933cda54528462cfe06cb4835f26b5cfc13aff09e57474c2a6dd928793a0e094db4de3762bd562f23843aad284\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 85\nct = 9c5287561023b5a32d1c177334aa0b73a84f836c29c46b24bf013d766ba81ec2ab83797da73415ea9eacaa15aeb56c2c5de4df4c00795a53917c398a97ff110477788924686a2184cc2964c05eef76b66c3a4c7feaa1de744a872eadb206669de8af580b0e37858b8d052d9613bd436014403e5e3f1f8cb082390cbda3fa3baf\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 86\nct = 8ddd832fb4aec7a40501e4f89b54c428af5981ca9fdc46fd52b58332de64300ac65f342b423b76e33bb93d392b60cda5ba5a096dc177d54587b2b4b183cbef6431d1e8e34971695a5e26f40a873b1b6b90b138f470736198acc848118d3776748118121a482e5a69e32367a137d5cd1c52f34e31139cd46ec28790a49b35dc3f\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 87\nct = 61cc5eeb8fd11f7b707dcd651cbee5e8c37d75e7570966eca6ab890195fbb751e94b7b9d0276f478135f364500190a137c313a79a4afa6d75e7a506dd1856b5d53c5cbcd695133c9104ea52b6b25457d005540b1f07537221147e29e6e9eebcea9357ac21f822bcb39c9855cb809e562ba2cad89f03cc606b578b138730c9571\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 88\n# Longest valid message size\nct = 34a190ee382f167897591047b81c12252a32b1d075be1f4e7adef600aba6810067923475002000c5a237dd3f47fcc1aa5d8a47010531537ad49ad2e93022a457a9e264a67071634c032981c6d16b8125e5fd03a71e65430010dad9ab623c8012dc34e0cd2788f9b4b0fc4053b321a6d0f18b583d8e67df19c11324e89aa80304\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001028181008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841024100d397dcfab4919db23bb6b88c4511516f6135e1118277e496130f0cab3a75661010cc98ec8f40cdb0c1ab612c03bbe3b023d891f46185788fb114437c8a9ae71d024100d0c7805159509ddad70f35b9a76c7c2bd95a844d36b76d96138cfc7a2a55f88072e8b10ac37463caf9bf8d1014c93a001214d7ce230c8332fb58dadb05d52f8b0240762d3c4b7dac5292284dbe3701a051864e99e4117e77ede06fd698f1cd5da25a58b79cb58ab0dbf0dbca17249915486ea9269d260b8d9b2f4dec8e60b19d2075024062a4f06eff4944dc6262905ae0cd343a2f9f42058d85cb646e665de086e249e0beea4cc42e276f03374f9721f30044c445c6cd545b610d186883ca1c543c2f1302403cfcf044035c1854475e1dba480ac50d2a059f32d18e819c96a3199b1e3855a653ec0e5577e4d7677d6e0b7a55fc418b13202ee19430228c4bf9d28af8851c9b]\n[sha = SHA-256]\n\n# tcId = 89\nct = 073f0b8ca9c1f5581c1c19b6802b2b030c3c41952e495c875f8855916c219c8251a6cc141e734b933581741e3a7770d6e702032ba4ad4afb41029c02ce487a22fb120d928d847d1f68c34b464cbb0087ae212997a1fbebcf10b13f0898d1528df4693561001034b74bf7202a32068e8c1d3aa9f9f3dccc3f440c978daf3402d4\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 90\nct = 02c2cb0abeafa0fadea48934bda32cdf8218cdcafc4e99e11b61adf913ac97f29eedd83a0937b4001f66f08f6b6652b7d95b778ee9c57e6b8167dbe7f44abe35673f8f8080dc0cd2a92f63c883ab60d4e4ff4048ded1a780d9a3358ae4b5c76ab632cda8dfa570d079d2557cb22b87c0f9fd6ecd225fc278612ad736a949fc56\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 91\nct = 79330a609ca265ad8427e166ffc6bcc25a925a0d72d886de5ef708837ab7b415f3b44afa70052a662de27f3a6e299c55da19d8d88e7e269396111170dfad3844aff1864a8a37f0ee3b0d6894e29815174206bb515cbb15d59777da513d649b730c963507a56d118f894c8fa97d5ef9b70ef0c38a9c27ced5d305f0e7d48f65a4\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 92\nct = 9a912c668fcce16859f28db4871ffa7140e4e9982e18b49a1f14c7429d62f9491bf4de015247fb13bcc0e7936e2958ffa3fd0c9e3ebd553b34da98cffd799f49671096a9bc40affe5dde88aef7c0ac03ef8b8b5eae4ee17d47ad19eb69df7c811608466fdf9742ac64489d75615d9c66b9ba93e8d97256fc3b22786556ef90ae\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 93\nct = 2e46fd4a3f64ae1fe16b3bd43e5e74301f0914394a47566096c001d649158d2a53726662af9f67cd344788d60ed8badd6dafbb67893412dff7c88c5afaf7a893a78557a7eb0d6076322e27ed733733772d4dae077ed1496b48ead1b35160bbaa36bc551f1597538910748c60d468186c306acbd948aa9d77e1830f6e2c4c0925\nl", + "abel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 94\nct = 1d09b8f444b13a4584963effb7bd2efe8ed9098984fe9c2598122e9e54302216b2aa5608765a6c3956af8f9c7bc95c4da71c3f285c5f528de53739d21271412a4f6bffe50349baa0f2342e0ca9507fa5fd5ddf3f7659a9a58ac74a04672ef6f398737e8c40ac9f2d7f67f7f3589b003cc3d0b569f1d822c7f4a4967b5efb881e\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 95\nct = 4b4caf2b33a71fbefff56217221445a8123330c4a09e6aa92f4807ed1dd192edcdd8bfc9cf58c34f67430555ef0a8910fe16601ea0e8f086440a03ed81f96a9ddb308557aa3187a5e586ce2a245da016ad967cdf1ab9a7b0bfc4f8101b4e0500c80c20c992e0a993109d9815b93a5a5084ed31a751871b57ff12551b39f89e57\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 96\n# Longest valid message size\nct = 8fc1d996046bb3389ca00f053f6b8c2df6f5c9cf474d3757e6f57b073e1d2c5e046bdfddb3849ef2929de12d96ded19d1f7213043c1a70c0a5ea6c0f7b23a2919221584120cf7276bd87b4084c3433367b031c5825b330c47bc0aa27a22039ca3704f4baa1b82e37de38d5129f8ff858a8c366debd79ea30980093c353ed756b\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001028181008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841024100d397dcfab4919db23bb6b88c4511516f6135e1118277e496130f0cab3a75661010cc98ec8f40cdb0c1ab612c03bbe3b023d891f46185788fb114437c8a9ae71d024100d0c7805159509ddad70f35b9a76c7c2bd95a844d36b76d96138cfc7a2a55f88072e8b10ac37463caf9bf8d1014c93a001214d7ce230c8332fb58dadb05d52f8b0240762d3c4b7dac5292284dbe3701a051864e99e4117e77ede06fd698f1cd5da25a58b79cb58ab0dbf0dbca17249915486ea9269d260b8d9b2f4dec8e60b19d2075024062a4f06eff4944dc6262905ae0cd343a2f9f42058d85cb646e665de086e249e0beea4cc42e276f03374f9721f30044c445c6cd545b610d186883ca1c543c2f1302403cfcf044035c1854475e1dba480ac50d2a059f32d18e819c96a3199b1e3855a653ec0e5577e4d7677d6e0b7a55fc418b13202ee19430228c4bf9d28af8851c9b]\n[sha = SHA-256]\n\n# tcId = 97\nct = 2e8b47e3822a5d58fb679f988bbc5f38e53f52b5a44ddae756c1342f4fc68e1bc8da9d58111257dbe26608f9971dfdaee1fb4c4052d3f0ae811da0298660ebd48559746dec808c4925251c20a0982982be224095c31f75752ad081ca4a033b720317783f01704a11c53abb2c16a3829d037c73abebaba0125de9a60d78e1daa1\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 98\nct = 63cd11010c9a11ee3125f5a4054a2a6dcfe6446fbded2040ee68251349201a3434e74f02bd861aeb4630251e7dcb70131030136294315141d4cd69601bfa3f8de55b6282e5bf1fea46567f8bdd5604336e1b79220bcbef65d7dff4599f5fef395938246993a473ffb4f2aab6dfe885b47e6b66bfd9d316bc779414d84a60bed7\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 99\nct = 3ff956c5010eedb64ddfb31981e7e79a227485bddc7d1d6cb19947da96c5b71cff518fdc8c557b1342999cc8970f393e3e7a1cce6d8778c39208f437d980d897007503136369b37a7ec44a3301de74d7bbf8ffe717738143e1e937f19b9b154f16bfea1b03746374369b26c5828740c35a7ad77856e2e803e957d3ff22e030b4\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 100\nct = 754fd3c7331933b8f211af97b826af802d50ae1d39984fb432719c3ee3ad7880e1fdfe18227104dd81f1a5fc0f9dd46f828c739723c0dc68a6607983493060233183e85005b4886a0afe22d6ab0730fea2190532586196e0bab63cd08d9f5c391b99302e5dd0b60c9a12ce103f0bf9ae4bc19c811686d423642df2d4257d9d99\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 101\nct = a094713852a2b44e6821d6d964386d2fafaeaba44756560479653f69d7a33d9e1acc7741c0793b356fd61c4055a5c8302e1a37544100bfe0816840834c02d441de95f278a1eb29b4ed14def12b5d04320d2a14b4ac7bfda04a7c66d41f5b1856952ca48d1f51e69a079d07b6defa28d5578985285e7d9fd97c8519adbf5956b9\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 102\nct = 8f6f64b964d5114bae2f65b5f7de74a63919927f05c3a245063bad355dbe8cc1a59cb6c631d4918838d6a95b51141e812a8c012a6df76deb158ae1db0a22fd81d69aeb5d69f23ddd3674d4427236e890d63559644e1c747565a9b84702b7fa38eb26c40ce01256b17369364218d9a3c3fb2fa30fa1f601edb4808cfee8f8df0e\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 103\nct = 4742dfe57ce8537152b72cfeacd44126fd2a3716e58885008b7e1e7e055de8ab0ab1028be4406b89d7bf7c7ea36b6ac5d34e83d3c5201e7fac068ed065093d4adbe4b2709c7d733acd213621ff9eeefea2535c9566370676d8b3a4aaa85e574d15720abf65f6b42b3ec8bddee2f76f6d3cc5af291a5b678e301727bee4f6bd93\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 104\n# Longest valid message size\nct = 1df27eca88872398306aea5c9b0d8514c173f3cfdc5773408b1fd33041731ac2370b8fd00587df3b73c9f84568bf1c514ba625358cbf741cdf765da4338c062d3951b748b6a85e867caa22e13ba976dec3e67955b8fff3cd4e1388e14534406db3e81236979a566fd9b311910e872084debea874f1f9d2864902ed31da6bcaa1\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001028181008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841024100d397dcfab4919db23bb6b88c4511516f6135e1118277e496130f0cab3a75661010cc98ec8f40cdb0c1ab612c03bbe3b023d891f46185788fb114437c8a9ae71d024100d0c7805159509ddad70f35b9a76c7c2bd95a844d36b76d96138cfc7a2a55f88072e8b10ac37463caf9bf8d1014c93a001214d7ce230c8332fb58dadb05d52f8b0240762d3c4b7dac5292284dbe3701a051864e99e4117e77ede06fd698f1cd5da25a58b79cb58ab0dbf0dbca17249915486ea9269d260b8d9b2f4dec8e60b19d2075024062a4f06eff4944dc6262905ae0cd343a2f9f42058d85cb646e665de086e249e0beea4cc42e276f03374f9721f30044c445c6cd545b610d186883ca1c543c2f1302403cfcf044035c1854475e1dba480ac50d2a059f32d18e819c96a3199b1e3855a653ec0e5577e4d7677d6e0b7a55fc418b13202ee19430228c4bf9d28af8851c9b]\n[sha = SHA-256]\n\n# tcId = 105\nct = 418d2556fe1e1f0492f324e064f68d90aa04ac3d7047419da319e04ae97e3467935f72e2f59f1b490de5d41288098607b8a0ee1f17066ceff369d80055b7266a0710bad792", + "0400618c8d0b9ffe4dd87fcdee42cf247773d4ba47620ce01b57a5433e90bb1c93a6f380b45e8e4959acf3dff781ad278ad863b4930991ef875d96\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 106\nct = 0c0a383fba71343c2a467d3bd1413056d74a15459877ab614a66e9f4bce54ca42719a353da953ab73634584801cefcdfa50288565e9b3216b885d79e2c7ece62a0a776ca7bc178ab0606d29e19c4599d3fb610df7cd5b8005f1feeb2b2037d8ad7cad1a9685b24306711d8c1ea3d9c01120cb751ff92ac657659952e3191577e\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 107\nct = 5bb72a3698ee587fc8f662500e9183d517b78d7cef5152a0f7e763f4f41f9d03200ab2ae0fea874bef3e7340b13c4ebf3d4755dd601cd2ac54b99d0b20ecc33cb17a5101b1594ed9e47b090c6eff589a05055997f72587fb6f45e6d2389ae19bdd49bf1243cccfa23f04aad2d42dfb1070df24d48f5ca9258eddb4aff64506e8\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 108\nct = 270dc08a1725da4f287e9616d89bb53edf5a839f856d2dbd0205c81e751d78ea79f0d2a88405c8f6d45d04c65044fdb99ca81473919b14e743e8d1c4bd611c7b74d4e252a595e9ec2b2bab8324ac2cdfbcfd148b8398039e21ea8408dbcee82b049742f1cbbe2fbade66ad40f92c3ed6f07b3fcad65b0e903949facff4ac7f78\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 109\nct = 33af58d5500d23dafa17f8b3cbeaf623bb26101c40709ac348e28d19ac36b051b5269556324fe864e3bf2bb7199ae65cfd92f856b1e8d90bcb9d538d0e7d153135ce31124cb1b1dcc7f2a290eddae1524d10118e16075433ddf792acd990be71f540d70c1e7501e61c046278d784bbdf231c5a1eddf5df2be60ec5fc2d39b737\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 110\nct = 360d1fb235b0c19d8e03479620fcc179ee5fd87e3aec0265d154b501b1fa2e6178e2ff7d22be085246b1b17451c6a9f12bd57a64c86c8a93ecddd5ca93d2eed91a1c2553c585750f5510a3e0b65a465b81d1e81af05438a3c9db615d1b5f18234fe6114ca9d764cc62523ae04f7997e01c1f91bc474d053c148e483b104e7fe1\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 111\nct = 73270646f5e6e4b023311dfc71563229b593fb71f8a2df1a8033c4366e3a0d6944327c112687d1bd02905e7099ef70f36c88999b4d570d4a9307e1f4764b4b697a677edc276bfffd757a9e40e9f5b3bc5481cbbeaca64c486bf4ac119a7147417d92988a2751d4619f6f8ce2d543f4dd157bf9ec3b88f9c5e95b37eceb60d224\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 112\n# Longest valid message size\nct = 82d81c319681f5bcc530039e44eade8848562343eece58dfd2b4c68d04acb06e937980f079084e1f22e44f928394e1e94f64647fc298fc4eae493f32a451356ace59b92ba784925000c2193304060dbddebd7c7aef0ce9d16e2b470e672461960f3f77984330754017be6aba1016a02bbb837f96c3e30dcdc85da47ef9b2c17c\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001028181008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841024100d397dcfab4919db23bb6b88c4511516f6135e1118277e496130f0cab3a75661010cc98ec8f40cdb0c1ab612c03bbe3b023d891f46185788fb114437c8a9ae71d024100d0c7805159509ddad70f35b9a76c7c2bd95a844d36b76d96138cfc7a2a55f88072e8b10ac37463caf9bf8d1014c93a001214d7ce230c8332fb58dadb05d52f8b0240762d3c4b7dac5292284dbe3701a051864e99e4117e77ede06fd698f1cd5da25a58b79cb58ab0dbf0dbca17249915486ea9269d260b8d9b2f4dec8e60b19d2075024062a4f06eff4944dc6262905ae0cd343a2f9f42058d85cb646e665de086e249e0beea4cc42e276f03374f9721f30044c445c6cd545b610d186883ca1c543c2f1302403cfcf044035c1854475e1dba480ac50d2a059f32d18e819c96a3199b1e3855a653ec0e5577e4d7677d6e0b7a55fc418b13202ee19430228c4bf9d28af8851c9b]\n[sha = SHA-256]\n\n# tcId = 113\nct = 68911125d8bda09253e99bee978b31fd8db5b153c7af78521d21011b0e76d5cccbb2d6f609add8abc0eb7fcf4fb3b1fd75bf823f02a38d56db8cca42424affdf0fbce966d557c0595c779d301c12aa31adcda7094c6b3e1b2432fba59153cebb19d72c6c6a3365c713d1aa02f3bfaa5d0bd39ba98c75571c8ab916643b28e74a\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 114\nct = 1c91e1f3d58a1c3cdbd268d589b3f2ccebd45d5cc5b8605a29b5de49e629d44e3c21abf28e7f34a78177da87d8c247515a8973e1f59bdc8f16db53df2683f088c940d96e02ca41c35531a16b8eafe55411c18f43736619a177502ff223cdcdbc4eb89a0f15fc441465fbc01b7a6a0d2335e4cdd19e6dcbbc58fefae92b123939\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 115\nct = 7c22e1a4f703050331a3de115fa7dc28569594b81f2723c914a9da5c8dd7a5fc085eb0c196504cc3f42b891cad8f2a8880e35d45d7fd328760f4b49d9944b9378d0414d6a335381b8a0f67674078e8d85662c9435c606555bba3b500baa0a8ce25fdf96aceac6d677fc6a9d0cba2d9e2a80a8c69f47d2bf8a0f0fc1a7d50a38c\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 116\nct = 66793a511cd37d5e7472f08fc13c7ce6c69caa3d4e4b3d1f418f1e2a88e761d7ea4d45aeb8a38f0c87b45d2bb4e0f996808301f9a33f216acb09604a15821cec6291568067fafc969786962caa811b9d1b0bc6e50834ec55e38ba077791a6c7e848758d389d2f0796cacad13428c47dd079ddd1dc126793240f5894bfa930c8e\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 117\nct = 2acdd8200887488680de87e651a30a9e9cdf25b5fe50f6cd2d8c10f4594e236b7c47ae9331858998202e8524dcf7a5be0a1868abf8b081e1b658027f65af39bc5d9e1f7f9d29ca33afac7306c0d3e077349553a77d98b8efb5bbd4163bd8dfb46be667b75926bad19730a56df344d0e40ed9f88e6e4ec2db538c146f9ac75e0d\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 118\nct = 32040b2089390a96f80da9bf1f13554dbd20306fccc987b2e8bc0bc3e459ec716b1234488e67c62a97240c2944a9395b07ce08873a9168fb3adfff8ec0194ce3564fc4fe95fe27e263501b5c7d847d6a058136885e277a7e584db8836105425f4bc5eaf565237ce72390b8a2efbc1ab5e44ec6a12c92631e3eaefca664ea70e0\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 119\nct = 72ce6b4b36f4ccde4327795b62bf247dbfe80ad1e1aa4b3db1f50a6bf68b5d6b9d4591932d41d1fec67b55c2cbb52c8b0d92fc14b1d0d21908a0d9bd60f78bc3519041883c37b829289439a5ec31ef5d6676ad16ead3c3989cd8978c12a783128cfd8e2c15c872063b3d2d2c4a91739e4feb93ce512e534d4280230470d4722a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 120\n# Longest valid message size\nct = 31ad05aa197500790b992effa86175892384dced3359d978075dc9326e1d0a1c7899b47b0e1c1549d1c9af9e5238cd07557e93e677df968107b8045dad232ee83615b7cd49b3223c86aa283a18abc57af7eb4d7d4d9e8a4234c2fa0fd08b5e602ced53d538cf80118db8faf786079bd19ea5e3dacdd6fc6cda550295bd737ccc\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5ca", + "e757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[privateKeyPkcs8 = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed0102030100010281805683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031024100d55f5ac3627e7d4bb07c530cb26b3e0ec6cfc7753986e009c9f53d84b6940923d293f8c55b5e9820b56dc6eb008ee779a156a7c8a0b4fa5b6117a4f64233a38b024100c227f5cd75d8865f75ab467ef5f8d43ee0707250450d523230fa3786a6632dbb893ec9cf1039058521b4280529644315f9d37409915f6f5e86365ab82827d323024028403bb3fe01948b51b8b24603e65d2796739dd1cc4f5836208605dbe2415cd4082667d87b1b0621ad780efd47f6ad4df194924433a4d051aaa836334a5bc96f02402fec0d0f9976c833e7a74ecf2787335c11a9af8d807db93c0a3ab859d3d7c701f2ee3c818f4f83bd48845f1c670b0843f455ecde2fb38e999626f45d600bf46102402efab8b9b528803fe02e6dbad575d57824b794dbd9ae0b4d6b43acc1b22a42ce2ffc12ff9339af3da08387cbe73e1bd326725487eb97c71ba6f960e5dddf4207]\n[sha = SHA-384]\n\n# tcId = 121\nct = 8749d6f5113da51db46969724dcbab066a9ffbf3330d4a734a762cc6b9d8753d6a08191e66c0f9580b46d8e7942bae0c79efddfeeccf09d4fde8a60db5744a23633d4e32ad236b9897c3b7a0a08628fc463445822083396a4b034cb53154ceccd9219f4f1f01b839e63ef56f880838853709f9bff68512b57df24bafd6884944\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 122\nct = 5f01fb81f6aa0b6fc2c67da37ab7e0b80adc36272fd6a6a2c1f95a0221d075c8ec448171f0e0bf552529ea0276bc9be3cea2ba1d09de39a112255b445424051f96c941ae71ffb126b83bc03299f0945ab4be4d4046e0f0fadbcea10e39d0c21de17be781fa7885b33a695abe41d7db302e62b249eefe3fbc10e84a5b479541d4\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 123\nct = 18d827c4e481935a6a95b788fea6dec752cc4b08a4867bfc1b75dd5953e768a7421e8841c45935d03b8a8f732de0e0ded6ac5124a1bab546c9063d8a3842593bd750730098c5b1ebc3a0b8afcdc08ca0285509374f7fa47809e24311ef9e1a56d64da1711daeeeb3b2c4b545d90b34ab4f0f5ac0809a6b08e0dc74330555913e\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 124\nct = 00c2a0ad1bfd155df9ba2fad92504e2aef353affce954d55349f911906840e63776c8cc346c39e6b2cb6c8b1696111ea67d19f9b6094a8cf8c83d799e3d25a824251cf5bc4f84f7a542e4e9b89a7ed5506456f9600c07ac34f306c989579e6cc7616ca7bd489692ee4f40d1e93c3a2a12f02ce929c1b07cffec324b8f8f1eca8\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 125\nct = 30fcf1212bc1459d5597f9081089850c3bd7e276a6ae71b3cc707855aaaf5b5f78739d5811aba2b31a0955a90ed85b06c50c251bab010d610eac9bf755d733794d4674b255912f77b495e80e607cf215072e0c16620b062e80bb253a5a096274c022ba95a3d400d4fe6ce0121ef20c15e585a857bbe20ce871e4155baac8d3cb\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 126\nct = 5143879722f66065721c18bbb6fb3ebb445734b3ddb13f08022e140f3c40026e1ff7d61dd8adcfb2ecafcc90ed5b839d279c303d0b4e418939f4e5f11aea2fe7654c4d3e9db2c0018ecbebd1220e2509d0fba8e1b5423f6c3ef461b1d011fe61794004d9b99578ca78d7d92511dc75d9cec7d7fac0ed7d86b901f08136aea029\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 127\n# Longest valid message size\nct = 84a41d79870eb9fbcb45a469541d33aea789cbd3e3aa20ef57a1e6777805250d7e263cff57658e62368881aba5a5f97b6b6670f6d1141fcea8543e52a9e18323c31bea1057034fa0bd06a77265e8d3ed8e5f3427eaab99b4ccd7e82423ed096a692c1555b091c0aff710f7d58880dfad7bf6ffa2ae93dd94a17f987534840898\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[privateKeyPkcs8 = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed0102030100010281805683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031024100d55f5ac3627e7d4bb07c530cb26b3e0ec6cfc7753986e009c9f53d84b6940923d293f8c55b5e9820b56dc6eb008ee779a156a7c8a0b4fa5b6117a4f64233a38b024100c227f5cd75d8865f75ab467ef5f8d43ee0707250450d523230fa3786a6632dbb893ec9cf1039058521b4280529644315f9d37409915f6f5e86365ab82827d323024028403bb3fe01948b51b8b24603e65d2796739dd1cc4f5836208605dbe2415cd4082667d87b1b0621ad780efd47f6ad4df194924433a4d051aaa836334a5bc96f02402fec0d0f9976c833e7a74ecf2787335c11a9af8d807db93c0a3ab859d3d7c701f2ee3c818f4f83bd48845f1c670b0843f455ecde2fb38e999626f45d600bf46102402efab8b9b528803fe02e6dbad575d57824b794dbd9ae0b4d6b43acc1b22a42ce2ffc12ff9339af3da08387cbe73e1bd326725487eb97c71ba6f960e5dddf4207]\n[sha = SHA-384]\n\n# tcId = 128\nct = 08402d31f47155d67067897e8d3756c2a26d74e01e7779301648ecbfb73e74fcf6d6924159b6d93687818466e2bffc92dd66df7c205197b15c712771e855f72b74da24795d66cb2be6a59900fe8961247688ed73ab0f5ca0ac10308ec7cb115a4c8b1ab72d3de9fd6a7afdd319cb178a862fc7995ef0cceeac03970b9daa9012\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 129\nct = 4b8610a20003933cfdbac802fb90d9028f6bd5656229a1b249450fcdb49f6d46479d6c7b094e93af2eb94019c177f1b1c58b1379fdf5429edc296b4e65243e2cac5f6670fc3bf69471015af244ce363ba347de282e887f2cd86445265e0f65d616b2fc6bedc87bee61385c319a38e53eba597db022d321bf871889c551a18503\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 130\nct = 5c3586325bc1e1c9e4aad3d60be88dc9ed9fe9577b61a8714ac235160bb4e83358649cfa187b004ee735cea2f6c91e25593c391bf24d87dd4b50178435600ed1c5272e3ea110698b11da7c660ee6babc32aa3fc2cf3ba37036cd4369efb272d99424d9c6ec5290dea83f16799efe4fa90238109de7938445ed66261ea538ec86\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 131\nct = 4c9569d4ac8607fb90c56ac7a7a0a673a74588e526f22bae8271a863292001064952becb338acb8becbeff48f4c07e60b529df7899ca760c113f878c405eaf789e312214eccdc3b5c01f41ec53513ea54c4de693d52bb962208e4553c088abdc64b87467b04c65fccc96d2f59f5527fa31c0b7e8868a895ae8af19b20a209918\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 132\nct = 7d5c538dbd17fe2b4a2538f8d1f4fecdd3170ce335925eb41f94b2e587d3b40c5912aa78df383ad8ff5fd7450ca200477340fc9e6ca037421d4835316e63ddb7ac79420b4415e95c170a21897d4bc2c7ad452c0c2e834600ca5922411bcd6b96253cc161a0842021cc048a6092bb4d7c936d677dc03264b49126caaeacfb992b\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 133\nct = 270da02d0747f710dee546c4b94f40fd9ff7dbdc3643f4cde66953ddd86129807dbf2408e9f40b29a53fd2b2ea529c5a31933ef5b4b5e0b83a49ef85ed92880e1cf9dae104b817dc0688b4690faa7f3a0951bbd32963647c970523b7d53c3e24080368bb510362ce36f50ca0a752f7bd3a196b2cda5ac548f36b24631a8505b0\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 134\n# Longest valid message size\nct = 1868661bf0b5eeb4f9cfdd32544fbf619955f41ce3aa043e6ea5b6540935c89781d1360279564c76b235142cf88b0d5c489bbd68319e24c40395e928c672ddeff35447367781827d9bd7507e1c77534a7f83c75c3b101398456a9efab2099ba06e728b8c1624b1ff4a4ba6e7d2e70ae1ea5e97774fc3f541f306e1e457862f81\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787", + "8787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[privateKeyPkcs8 = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed0102030100010281805683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031024100d55f5ac3627e7d4bb07c530cb26b3e0ec6cfc7753986e009c9f53d84b6940923d293f8c55b5e9820b56dc6eb008ee779a156a7c8a0b4fa5b6117a4f64233a38b024100c227f5cd75d8865f75ab467ef5f8d43ee0707250450d523230fa3786a6632dbb893ec9cf1039058521b4280529644315f9d37409915f6f5e86365ab82827d323024028403bb3fe01948b51b8b24603e65d2796739dd1cc4f5836208605dbe2415cd4082667d87b1b0621ad780efd47f6ad4df194924433a4d051aaa836334a5bc96f02402fec0d0f9976c833e7a74ecf2787335c11a9af8d807db93c0a3ab859d3d7c701f2ee3c818f4f83bd48845f1c670b0843f455ecde2fb38e999626f45d600bf46102402efab8b9b528803fe02e6dbad575d57824b794dbd9ae0b4d6b43acc1b22a42ce2ffc12ff9339af3da08387cbe73e1bd326725487eb97c71ba6f960e5dddf4207]\n[sha = SHA-384]\n\n# tcId = 135\nct = 72ca0ccf54c917fc81ea6d57868adef1cbcade865c4906e734bcc0b81b20db91d35dd489dd2c5a7435eb75ba6e2732f092ea2c77701c6b4526e7030dbfc3d932731c6b3c9ef013721c2e70e96dcb24ecdabc2e87f98d84e95fd4bd69a19ca79c8a3a9585e3a6bafc2b5e10ac260b621a1b3912102e7a22c6fd7dbcc696380d48\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 136\nct = 80c408c5d9fc9c2b0fc4634330fa9776c42a1d6dde48914392e00e5bb4e69a93acb806d102446992ef8d9a9cb9004d6a8a833806c5c8f80abb444981829ad85d95ff0e7ae8c83e98a706d09a3cbf8a2d8c0d37ca4b620ada9bf1c89d3b5a4e7fb66f878bbeb044d039866bc9ffa35f369a5468feb91c31ae112a046f4f3a619e\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 137\nct = 5749bb5ea6679e7571795a3bc09291088baeb198356c14d266d169eb467fe8fe541049fbf9ab7e62c915aa366e00a79ecaed9f316b7a37c77b93beadf26d5fab73acd989a4f6c22886e7531a9f6797b3ba59d0bc5319043be0fdd42498a93ae5ae9d826e73222a257354cdb9228571d66f056837443b73dc1b60341b9aadeaab\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 138\nct = 1ef4a92700b36c1c4fc35a668889d463022dff324a5b1837f4115133089f6048b13b99b4c73ff9acfc41dc299a8c73d378a7c207140d2bc2cb956dfc594914a723ac6c8fbb1e949045aec0f27b923fb65eec9cf001a6bacc9ed4de1f8883043110e3edf359f500d2c68444b8202818623af3a389ff125d6b32d1df88705ad5ef\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 139\nct = 0185957a92bc682db236761299c03e42290d293d8e784d056a3d4fe65c25744782845cff71af5c56d715ec840f9622fde8d8f14cd5ef591500c545422c33658c3b464c69d5e3f3d2eb22e5ae66dfef9d69869f867f3bd82d35138f8f093e6b3b597b7600c87522c51b30f1b624990532ccd9811054a7ea6aef9cd5c815d500b3\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 140\nct = 2e05246e0ddcd59afd60c7d9c5b46c70fcff96fb5e9d62502f9f4b9a06bae38863a7d7eccbdd1304534186a5c2f89f061e4edc1cfcee88af3643c2f6b5efbee8f08eb7f866a60821f3be7b296b25acbc4ab443c0ac398104f369935b5b5748d4a872d31884f1b9d4f1842fc0b74f003c17c4ea5b9e3b7baad8401ecd56dbce09\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 141\n# Longest valid message size\nct = 933d41d2f20609bbeb90aee85368180794af83b687657713287070489e23ecb6ad871caf198fa19128f5e48ed581d3de608de44b3d7de1f2d161e714f27fb09dab295f9772d4c0992fbd866c0a41fc3b4fe874cffdc9324bdc5eb652bd20eae4a6f2258e3f9dbe1683690eff2a930bfe351ba338c76f6598e50c1dfd78871515\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[privateKeyPkcs8 = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed0102030100010281805683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031024100d55f5ac3627e7d4bb07c530cb26b3e0ec6cfc7753986e009c9f53d84b6940923d293f8c55b5e9820b56dc6eb008ee779a156a7c8a0b4fa5b6117a4f64233a38b024100c227f5cd75d8865f75ab467ef5f8d43ee0707250450d523230fa3786a6632dbb893ec9cf1039058521b4280529644315f9d37409915f6f5e86365ab82827d323024028403bb3fe01948b51b8b24603e65d2796739dd1cc4f5836208605dbe2415cd4082667d87b1b0621ad780efd47f6ad4df194924433a4d051aaa836334a5bc96f02402fec0d0f9976c833e7a74ecf2787335c11a9af8d807db93c0a3ab859d3d7c701f2ee3c818f4f83bd48845f1c670b0843f455ecde2fb38e999626f45d600bf46102402efab8b9b528803fe02e6dbad575d57824b794dbd9ae0b4d6b43acc1b22a42ce2ffc12ff9339af3da08387cbe73e1bd326725487eb97c71ba6f960e5dddf4207]\n[sha = SHA-384]\n\n# tcId = 142\nct = 1c3e714abd52258d9235e08634c0f21e8a914df4445e01dbb0c520367d094e689bf68e083c5879e00604ab39c7d6c05f11da2cba0f665f58ac3c7ac07de3e766d5953fa5b79d6f3712290aa585588d5d4dd276efd084f35b107a5b031fc62811b3b5cb364ba4444d9f41ef3ed468748a5cb95685a354b38ed0d91087bf1773a6\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 143\nct = 90e37b774d24eb1001ed16681d80fff3051bc2e7a89af0fcc4da64fed4e9db4a8bcf6232f61c141138e18646dace294e965dc45d72808607f5f3b752ea72f016f9eb4f120541b63745a93c811b99ca8953a606c34414ffcf673b067f65810b20464ec9e9f5d315c4d9aa5fce4bc09064f02ee6725f392c8d955095cf3f310ad8\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 144\nct = a151582a1bf013b4a3d81ffaa389407406d078766c95ea3c28752e1c280392011f1685ff3336a77f907de742925b297afbcce2c707be303d1269a3a45cdb8fa66a39c461eed94adf5496a26132f86871bcd630f46fb2decf6839f395881377777949b9282fa054ef026f32f0adf132254f4de8eafb02dc738c7ac7e7aeec0554\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 145\nct = 0c87aa1b473d638dd10955548a51217302435f9664a5fe05344d1054ebc24d8ec2cddc94a241fae52e78f5be490017722629c4b606db675171020c6bf5937133e1b0c300be4fe8e0b33c9f1526035f663ddb24fc270931b29cdafd481e85284cc260624291f3976b1c58c4bf35316f86a0180a13805935f387dd3f646cd5385f\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 146\nct = 622dd6e7c8225258e6eebabf9fa6372d9423fd775b4c8a5c08da54dfbe26a8064a73b44c1e22fab35adc3305ec4a137d27b0b1223d751d21bbf08c7d7962d121cb3a1e1da701a6e33f5dcbef95645fb23106184596f5142d181118a8fcaed3ec92314a9db65b04f52da31f826e7a93d6fd65bee4428d99fb546a21c5bab38953\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 147\nct = 48053b6a9b5fc58d47bcdfbc5c8d3f7f2685e02030b4cbceb1c9125041735c2226c8ae470123c776fdec5dd2e63508e3615f2", + "1e1dfc770efb3d0d71a7c0c9987bf51c546874a0f48bdd521d002e44fffa112f2c53eca37f57c88197080a18fbd5097803b12e09c36ede4458b6447a074f7fc89d612d7afdf38edb10ccbd8eb8d\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 148\n# Longest valid message size\nct = 6f115f2ce6b0eee10d20c59f3cc9709dcbf1813de6ddc19129bcb0517d581e1b08a73fe44327c23eb6a6ce716aa22dff7417911cdd387fd769537ecaf4b6bba88a06b5aef80b4d7e59a4bde0a4f24a96ef1097be8e6c09000dd2f57acc46d7263820e4114129a6a0498cdcc2f1c47fcebe185d904a9e463cd96d94bc3c74c01e\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 5683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031]\n[e = 010001]\n[keysize = 1024]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[privateKeyPkcs8 = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed0102030100010281805683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031024100d55f5ac3627e7d4bb07c530cb26b3e0ec6cfc7753986e009c9f53d84b6940923d293f8c55b5e9820b56dc6eb008ee779a156a7c8a0b4fa5b6117a4f64233a38b024100c227f5cd75d8865f75ab467ef5f8d43ee0707250450d523230fa3786a6632dbb893ec9cf1039058521b4280529644315f9d37409915f6f5e86365ab82827d323024028403bb3fe01948b51b8b24603e65d2796739dd1cc4f5836208605dbe2415cd4082667d87b1b0621ad780efd47f6ad4df194924433a4d051aaa836334a5bc96f02402fec0d0f9976c833e7a74ecf2787335c11a9af8d807db93c0a3ab859d3d7c701f2ee3c818f4f83bd48845f1c670b0843f455ecde2fb38e999626f45d600bf46102402efab8b9b528803fe02e6dbad575d57824b794dbd9ae0b4d6b43acc1b22a42ce2ffc12ff9339af3da08387cbe73e1bd326725487eb97c71ba6f960e5dddf4207]\n[sha = SHA-384]\n\n# tcId = 149\nct = 7ba4741c3772cd872e7109004bacfdef662510714e27586e07095ffe4e4e139bfeb6cb4e5e027350d8dfa26fe9683c66a6ef4a521b0eaf64d36c937ee115c3b120a46570cbcb802f67a03a41ef80609a4214b51b803c02f0c652afea95022525e080d64d55128ac2417637ccffc2640ad3dda63fef7da5e0178840225ba623c8\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 150\nct = 7d2ba23b422d3fec441fce9b3c10aea9dd38cbbda4c0dbb48145d138e1f2feb1025e6267148a7b97b47e255100790a48ffd1447aece8b2ca76ffadc045b717fec6d9b88acb731ea03b54f6efe33a5250ef7016bcb1afda26835f6607fff7a743605ee42a79eb8bce99985411b0492d50cc164e5d585a7939980104db990bd343\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 151\nct = 4b11a5380b53414c8e220d55ea0410facf28923626f16898b04b79be4b910c058345cd7f43db6195a45461f1f8c419d80caca71e52b00147d76126a6aedb142ddaa2c67104c1044d3bb4e80f9a484f19a848486d547ebc0cbb9660d64e9a0cafedccaabd1028f4cf8add52b294e8da72bea991364cdebd33e1077dd1ab3682ca\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 152\nct = 8883e1ce40ef9b6c8e84ae5fe3c0d92e0a8033b80c3ad9a0541ae54db1c6bed89de5ac1ab81bd1a7d166dfc084724ae4f0838e541e5328a0fc570a85709c00ed4b996a8c96ddceaa00af10fe219497f0fca19ed60330fa4cd273c6a99b9d2b82ad0724a58b882335e9ba971089947c3d94d1996a06a47adcfbc92424a17d4956\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 153\nct = 323c223f243e8579ffe2c93ab2c298e12e55e0377d7e74cdc4d95480e462032a886a9702ada058c331d14f000c4be66ddb5600a52c3a1ca0982906e77bfc645a645ebefb5469cb24e66dacaf0eb10732e01691ee44d8b319f41fd74c41552d4578fff2103bdd3c0adc492b262a138131f733d621c6f1a2adac47baa6408ee811\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 154\nct = 3a1f918acc9e2067e01fa888e8df60ba9fb1a99c200614b889a39b2d42c7ce6ace0b01e156acd80d75959a2975e95c4a619baed657c081d2f5772f081d857b29794667b834b979a7e38507a2682c4820a19765fc81b570ab1fc95df69896d0995b0abcfe5b29ce8fbc4b8397fe3a78f1020eed4397783818e81926f711db95c6\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 155\n# Longest valid message size\nct = 14bb72e13f42301b78488a06b66ff769bfeb8c92430ee3e7443a026b8f9506c6635f15dc1133f51769cbcc73143a922b274781233c7743c8e60236af69a79eb9e9b33488c809ca21918137f3c6fc4c00b9863a20a7e7f7d7ff0fe6284b9cad6c62cbbc0c63166cb14d703745ed9467b44c12cae608b944be458409a03af51fc7\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 00ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[privateKeyPkcs8 = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e61102030100010281c100ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1026100dd9fcb8fe2c6d7d3cc0c52588aabf47c8919e4ab8f056c1cad8383c073a0989aae1242f2842c9c16efb50277ade40eb02201b4dccebff3a7498012a19b3703953602b6fa611d12126f40872ee2be249f0d8109bf61934375283b1c96e7c2d94b026100d565c93033998143659e1fa9efe089f05fc225cdbee5452442d59909730b48a1c2018ceb97f25903db1eaf8735f8269b5ffd7d7a3643e3ae8d736602c1a1f26f897ae68654bb3380f2cadcfe6503c0347c84e1bfffe0019aaab4c2349d92609302606f4c205e51f4a9cea35a4cc04a63b0941a05f6e07122b7f86eeaecef6921ed814089cb351f4b87d7bce99a23a02037801c93ded044c40108b1d0af8a98f837c4672b55d8c78c61d70027d7bba402f94126f6f67e35f24e9e3765f825909e39a1026100b10e4ae75b68b9ff9988a0ecf6c26eb0aa4303eab9c0b0a56d6e9c136308b1b2c4ad54a704e36747f3be7a14cd8a9f3dbb5f2f84ff11450fc6fd405e791a4d748db5131fd19da116145c8d0fe5f03ec14daf533f62a611aeaa845fbe181f2351026045a036c72629ae8dc5dc6ea1cc5e8d81fdba1076218c14e724b941835b1901c70dfcdf231ad63b1942f3d79cc561c42b7e7013a97c1acb5a1e49ea44c86201c7feb57b4afd83e3328c82a94267d5d6a4a42d726025ebd334c9692190a603e230]\n[sha = SHA-224]\n\n# tcId = 156\nct = 14aea2a65cd69549432674606fea1005f288e49529f36d5d8036b83a5f11d81f8bf83fd6147142e2e93ce35176f1058c4a52de4bac860339a1314230338392cf8e3bc28f98724892bfaec3aba58fe18e0e93287b520227dad103623694f076c1714ec63e2f999a20dec6366cd7c38690f819b378ddbc44b7fc5ef598fff5fb3c9ff20ea18405ee7b583ceb7e214104d73c7d59fabf59441548792bb81ab391b9cf4296cc249f3f8322f200c38d3d75d23aac8c4f3e0e635142890f6362592e53\nlabel = \nmsg = \nresult = accept", + "able\nflags = SmallModulus\n\n# tcId = 157\nct = 1b61840e5a88d3216ab3af309603429158f113a9bedc4a8ecb10843e7374b2068ef16267af414a87cb8b95e554964b7de9b3581049f012e5541009054df1c11bc6f477a29ab6bc834bc0086e9400015bdb90a38648d04c104f5b7ba0c07bb9eb35716d16378ad8837b9b09d4b8019697769080a01688f2ebec7b664db7bdca665ce98c6e472ca1933dbc23a9f23f1ac876e64e0cb046767b3dfeecba96d71f36112462d7e9620c1adac37fea58d6f65f12516b56aed7907659373a4d3560a228\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 158\nct = 1d862c83a1ee6444e8b815a5392f1d7a1b7b6e18881eb86db3ed2dabeac1b11e02ff3a32527e8b2c5af2cf402d0e5710546eb86ee86e4e63ec506d9b4490ece125584a16bea4999b71690426eb1fac437d09f46a96733c0c1f0e9fac16d31e5ea534d421e59354a35f181943662eb3ed486dcbdf7e96f8669ec7900a37b593b43024aa7cc0c9fba3fd84a49977446f56cb4d9726b421098a5661ca233e384b139c33dfb84dc34d8c061f0b4ca8994c23fb690c73cb654977999b6ef66055fb09\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 159\nct = 011d51f9770e151fa2358e7de7912b82000fc13aadf7ab2c1bfbedb7a68677a6d34daf1772292dc1934a2451ac3efb0a6f6b23da1af804f4a9cf50036dfd22d04ac28c7979b5f268bd47369b20ab1e660ef305cc049835d8352ef1f6eb7bca8dab223f446c3343145ac14334d6aa3ed7adbf5bb8323de38f7d720a72de06c9d2b6a8cd72ee2bef4afda6a9d28db00bb1a6184b05b53875e799179c99d92dbbc1d83119cbfec62ee911f2024e89a5d9b4431c066a9fe4e7f045f48b383871e86f\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 160\nct = 81e6cfae9ca349b61d058c04260be3a1ef0413debdd5917eab5a76e391b9596655ee9a93ee88bc54f9db18d142597a71ac77d1633f5a1ff80d97e82b22f07385d06f842308d0370161add9449a0a259f959b3d2b0cee49cfff22734e47f3a405a588e078e0e85c4d7db349e8a80a5801fe94eeb1e93a9dc35caf852eefcdaf186393f984b555845df34d815a35fadb7b0332865d6f0060f053d35cd64ef7b0f3e400a647d5349842296748e61e3bee93a35ae4b6d2928651051e4b2a42d4ba20\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 161\nct = 65a481a32d0668c27b40c05bacbaf081f5f8374bc922d6eb877b450aef275b8712748d613ad5c4d8738f1413384439f582af03de2736c3d81b00840d2b12edec56e25def1ea3af3fae2b7ed9597c8dcf07940e9f10ef7d2c5ef41818231998a10affdcee04d8207038822b6361ce6373a37ed854a77804f0b52831abf6e188cbd32a74f92912ae07c622214ffa896858ec84863a24d50474aef4c529ec95f7194873dc4b9f45481242ab69d0856d0afd03034945ccadf6b02879a8e873f78d66\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 162\nct = 85819af1ee3425baf97dee96759e864dad21e648fe90407fd0476568d97dca5f27c367dee5a45515ca7ca95d85a8e8be443c1820c41525ce161132c56ee9cb04a811293e8a39876f2d0bbe593270d3515c6e1ecd2b602a12102bf55d1e0daaf8013992915dd607d2cd36556e5092240cf4eda2b06bce26559f052415b96d4189db5d81778683fba8340c3394581a99296999d00d9c4cd826d7dcaac7c3436122a1f2699f49f47f05acf6047dbfd057314ab649b0ab9598d992e80b5df861d2eb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 163\n# Longest valid message size\nct = 58d368aee5a9a087181d2fc821ece9fa169239b3858338134f00a0a00008e60edf4a1e810d8429ca1dec8df38b73a63605cd2206eadbe56e85f7e8c8d1be1c19387d757a1c1b4264408ad730d7381913c2dc44d7a5b0877a68b778cee543725ee26639399de41ea5c7cfe09fdda42f3daa759a83ca2d1617b7feb6e9e4613447cbb89a88cc1ca6a85b7248e2e3796fe7e65b7873586daf308a5152d9031dcdfea22463b786cb86a2f9309e26e3cfe115978bbc0fe3e598ecfe13794e2bea01c5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 00ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[privateKeyPkcs8 = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e61102030100010281c100ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1026100dd9fcb8fe2c6d7d3cc0c52588aabf47c8919e4ab8f056c1cad8383c073a0989aae1242f2842c9c16efb50277ade40eb02201b4dccebff3a7498012a19b3703953602b6fa611d12126f40872ee2be249f0d8109bf61934375283b1c96e7c2d94b026100d565c93033998143659e1fa9efe089f05fc225cdbee5452442d59909730b48a1c2018ceb97f25903db1eaf8735f8269b5ffd7d7a3643e3ae8d736602c1a1f26f897ae68654bb3380f2cadcfe6503c0347c84e1bfffe0019aaab4c2349d92609302606f4c205e51f4a9cea35a4cc04a63b0941a05f6e07122b7f86eeaecef6921ed814089cb351f4b87d7bce99a23a02037801c93ded044c40108b1d0af8a98f837c4672b55d8c78c61d70027d7bba402f94126f6f67e35f24e9e3765f825909e39a1026100b10e4ae75b68b9ff9988a0ecf6c26eb0aa4303eab9c0b0a56d6e9c136308b1b2c4ad54a704e36747f3be7a14cd8a9f3dbb5f2f84ff11450fc6fd405e791a4d748db5131fd19da116145c8d0fe5f03ec14daf533f62a611aeaa845fbe181f2351026045a036c72629ae8dc5dc6ea1cc5e8d81fdba1076218c14e724b941835b1901c70dfcdf231ad63b1942f3d79cc561c42b7e7013a97c1acb5a1e49ea44c86201c7feb57b4afd83e3328c82a94267d5d6a4a42d726025ebd334c9692190a603e230]\n[sha = SHA-224]\n\n# tcId = 164\nct = 8d76c9cdf4c7a5ca6306390a7c12044112998f4b7c5b90012a1255cb88b608d2c56b78611e3c669d0457af1e91a0f12bf17790a6083a56897104994d17bf9adb5e69a7ca82521e9266f7bfc07edf488598a8825fffaf50aeea07dfd8255dd6f824e2941d69430a1f9f017c4b6f0e01c3fd0fd96acc71ab5ff58b0c3875e711bc20947923ffb8f5729b2e6351d6682cd30ae1ba3a91466d4d556214f64acd9a29e6525407ce7d30a41aaf31032641cb7bcc6ac69e139f45d97995e78c4b72c375\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 165\nct = 2cfc7319daef9a8e5c0ceee064b5aef4d47d8b26ca9a6c336d54d22c24b44212e7c6049c41541c5d40a801bb5a401417ef783390a2bc1dfd643b9ef692ab30dae51699cec25f3c9264101b4d6b3de4ac98db8ac894330e966fa33ee9420a6a9fd2129bfe1a9032693033906d286bd6c0784c435608ee0b6b036f3733da08619ad0ecd9187684d72d5dc62096cc38d179b01e73698d61830fa33254f45e232157c92d9f3877c019ffd5d865605d4fdfeeca332694df09b9aa4397bd81f467ad16\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 166\nct = 4976bd04442dd32782c211373a934f1cc854cec57b8374c02927993d0527339b18dc8ca529c2b6ea027598e07ca8010507babf446fa6d422fe5c756de3ae1c419dbeca5e472dbaaa5f547856ace722cb752c27397a886d9ee6387850b04f1dc1e7e5331822bff8a5fbb19e134f9f821bc13ef1567fa372d8076173625c04122d342a1c84e70f631f4085e4df9e222d9d866536100869c27c9b8c64bc3ff893cb7b828a285be83229b2412cad9f5918ee1449374137060c5807fb7718c027e1f6\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 167\nct = 65986ab72b7c510df790262183bd37d18d3160b99f87442fe3b80a6f25a934d592ef4016cf3fa58a99e2b119897e489e6dae0fab60fbd2925e862aefb1889c2f582111f8c71e075e0eadc0edb02bd11cd415b5b168bce8ae7f70318113bcfa3e47592007256bdd12a1dcda2f2a7c50baf1a100822d133475a276e64db54a90d385a4dcbc73545a751f6e81bebd8b3209fe2945853e6cffe7d72d83f8345a059c", + "1218090cb2c43974bcdeb9f924f6767147e6d7a0a0560def1ec295cd091e0903\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 168\nct = 749202ed43f822d1a2d974b0d66ffb396f26e82a0198c60ea74d916c6360a7a9a2781a909de4ad874171d79406af3400b351909dc5ce293e88e2e698946aa3f346b6f458e438bc1e73c07db9f684d0c9e2630c31b5b0d976baff5ec0a17db8a66ae98bb554221cbf7026331b4f1a04617db2e6e0365779a835e6fddd583837f24b75921b532fcf25d3c02e6d703a0ab5d59b71392e74ff42f0651bfdc284f0e5d47975f9271cecd14e3bcda344eaf7e44e5f54fa680d5fadf2bb39e073c31b77\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 169\nct = 849f564ff0d19773cd40cd95ecdb26758fb0c4129b67d57a5b930eb4f3a5634a8bd8ab4cd08b376501de3983f9b92d3a548ab83205b88da068a072222475c4ff38c7b535ac03f382ab2fafd2e61e8ab7cc2d1d2ccce6d62d6c58070bdaeef13f120261e5db85d5b596b7f1c700a3862e4f14a88679819d019f2466ab666cc12e913f69abeb144ce0e5bd10b9dd67673073906e203799e8bb551db6b4ab9a91007ae493223c8270cf45ab1d7b9773f96eaf4068a708cb1e890effcb430e19f86d\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 170\nct = 148c9c73f4e70520f196f0324fa7081875615ca852960d0d2f63532e5ce602f085921772fde1305d838d2def778390f8b8ad0dd7d527c6ae484293f87ab8fcb22295e42dca3378270b562a1bcf48e9fa5a975870434476830951a7c01001fe322f9be76326f38b76178a36545778c1374b0c2a333690e12c4ec001a7992f5b2d038a4baee409d5afdec795912f1ccd4e07ab5ef2d4bae47595de3f3018cc02fee2897c7c66267e1db5ba4adfd024f429b064d7cbd25621619eb61470734186ae\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 171\n# Longest valid message size\nct = 40b8a48e620b1b413416d4da775cc9c8df081d558c1a5a7213cf15138789915b4c215c9edf14b92cde9b81137e6777348ff376f1d268e1f2e38e426631fb22c4a2b13184799303e48b0159411172678ab247ea19918eae9bbda49624609d402dec0bdeedeccb96ccd3527c5f461da8d690777597a23416c8bf1a18c31f5e6e2f3e17240cea49186f77860cb5eb0c0a8a7296098d41cfe1a39dc0f3ed2a0a6d0f7ee1e6fd51d04f5f5d0153164d8f85ab17ae36b720bf6ec1b1be2232b103c2b4\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 00ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[privateKeyPkcs8 = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e61102030100010281c100ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1026100dd9fcb8fe2c6d7d3cc0c52588aabf47c8919e4ab8f056c1cad8383c073a0989aae1242f2842c9c16efb50277ade40eb02201b4dccebff3a7498012a19b3703953602b6fa611d12126f40872ee2be249f0d8109bf61934375283b1c96e7c2d94b026100d565c93033998143659e1fa9efe089f05fc225cdbee5452442d59909730b48a1c2018ceb97f25903db1eaf8735f8269b5ffd7d7a3643e3ae8d736602c1a1f26f897ae68654bb3380f2cadcfe6503c0347c84e1bfffe0019aaab4c2349d92609302606f4c205e51f4a9cea35a4cc04a63b0941a05f6e07122b7f86eeaecef6921ed814089cb351f4b87d7bce99a23a02037801c93ded044c40108b1d0af8a98f837c4672b55d8c78c61d70027d7bba402f94126f6f67e35f24e9e3765f825909e39a1026100b10e4ae75b68b9ff9988a0ecf6c26eb0aa4303eab9c0b0a56d6e9c136308b1b2c4ad54a704e36747f3be7a14cd8a9f3dbb5f2f84ff11450fc6fd405e791a4d748db5131fd19da116145c8d0fe5f03ec14daf533f62a611aeaa845fbe181f2351026045a036c72629ae8dc5dc6ea1cc5e8d81fdba1076218c14e724b941835b1901c70dfcdf231ad63b1942f3d79cc561c42b7e7013a97c1acb5a1e49ea44c86201c7feb57b4afd83e3328c82a94267d5d6a4a42d726025ebd334c9692190a603e230]\n[sha = SHA-224]\n\n# tcId = 172\nct = 61175542eeb4703c2a66ad74d480bd1ab0080cc112537977b180969bbd082ebe4d9976aaaceea6ca2c8d28ffa1255e700b34ddec1048d85c4a4b275bb50ade83fc71de58291eee99869c8465e9eba1d5b21a903413d2cf2dd50bf4e03662cae42d6f9424637be44c13ff92238cd7439fe9ef9e3f84e9a7882c4174fb9a7e75df19300fd4a24e888690a03ac2d39b7557746d15b15244f3b6e38de6a81e1244f0691967bde8c0288781282bb4c4aac543d3ad86761573c1a11ff1b9e7f9aff33c\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 173\nct = 2f73977acad30406126713a2abb3dd28ed1cc7d200c1789f8645b215f9d1871095f564cd7067afc3f7954851b7e4fe59a5f7cb4d84705a2aadc32646463634a35c0c8aed8159ea170f05379ddf5bfd5a8244adfc5634697dc0d12ddb438e2539a2c760ae42f65fa878c674384a1ec837f60ccc629d73d7859dce9e111141c466e11d6d6e50d4cace53531cd8d9cdfae1f5f9ab3193ca86fd8ed6d1051d2efe6fd724c35ce532ba8964401a1d4f2cb485f27e26208077efb89689368d6f6f0d7b\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 174\nct = 607c6b0ba2000b83bffaff98af0d7dd269095952d6caf87fb5512b74edd258c2a6d64c715bf6ebbddfb6ad6086fce89f354e23785da8eb2e538a4c8ff972267a4531defaea27bbc725bb21f1270d7a3f2ef36d080270ca2a6b2967eea00990768e3451893e9be087be39ea257e81dba277feb8a6e9682a713687c1c6472f1c25b05f8e6e7cabca1a723b62c1237612a91decb1995e6be6d3a9e8f42a1707c18c6be17dbdcbe15f51c06a91b660a29e646c24387e9cc175bcafbbb0c85f1b4468\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 175\nct = 23b5e46e2ded0645d516d027b3dbf14a205f9a17e7c31a4581675f73df450d1c6621ad0234dd48641c40a09a103a0989fd394acce8dbc986d5dacaed0f5c78266f89a6f5758ad4cc9e95d089942840dd69f35c40418debd16c262fa1871795187081bd28f53ecd97734f16ce4d40ca4e1cca30b39fb7605e31a601dae6987ea2b9038e62cd5299cf32d7e9f4fcd35701a33173bbc5d74e20d182fa9ca8329c723192d2a7ef83a0e50a71bb2f86d5785697935d27fe3894f772b9d35bd7dcd0fe\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 176\nct = 9afbac33c657756d3c29549a70a13130dd8a6b3f34e10b0f600832b0c16119f6f3286d9094d0aa2e5ecc51f25760679a2952c1b39750fda4d5bb692f24ba4a878b34bcdd57b39049214e66c3b5c4cbaccde003ddabfb03ded6abab322da48008e93e4338e41284b5939f10120893d1114a1d9db0764a4221b9c9c7b8e043cecf8e4d9dd069ea01def60103f0f8c78be753705629cdf2a51ef8a17d6f3741705768ed1235c7d7b670829c8cb6e09308624a4677b17d57db131e11b0785c4671f3\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 177\nct = 18de67c13961157de2eec683aa3c19e774bb91d6188f51bbe13c5fa15ade171b9b56da9338b6de0eea3faadddf7f435b8982ba8f2b43ec1fe7ba87aae2f5305df09b77935be64c731f2873fb74ea4f1a23ef8b35c60fc9e43cbfafb2a23b0bed08add52b63bc2faaafff20ff76d672c6d0922d1a293ef815b6e67956e9067748b41185338015a23812f0b118fa58d6c054eb85568f8eed0984ccf58872b13cdb751384314326bbbbb5b26a4587fec95f3058468308e524084e89648b0bcb321e\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 178\nct = aa6572a082543c2d16eb79d0bdfc777d07d7ff35f48f83c092f2470eddb14c801c8384a83e94c15ea5da87467dde5af6fe5e8aa6f8a8f6545ce772df29a5b6607803f58a13f973bf6bb0afaa77a16eec17db6761dce5fd66ab9f70ff3a6d43c156a5875768f34f21d00c32f743823e673a7be8a763e47d0f1853", + "1e9bf5cf405580cea8f70e2414f5550d7fe5ffb9a63c409747e88ebd52e64ca7dab26532bf3ae6f4248ce7b1b532382e67f2e93a327daddace1ebc2a2d7cace0f5a9da13a388\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 179\n# Longest valid message size\nct = 2d3618dac929f5e5fadb7a5ebfde536e77728ed6dfdfccab0627b9e80fbfc7a6429213c2e2ec56fc8d65894e26c907b06790312d09103e161d64393d290f0bac005b671730059364e690280b9f8153699c05b3e36910ac508c71048a444cc21cc32a630c1f76907016c659e10ee02645e5a0742241ebd6e731bde0087ca61bead3617d7dfa0134e8b9cccdbadca319b62ddef03c0ed8e8d1fe7422bb6f11125394b1d013aca78e662c3c065b0a236ec9f3c27c4feb6554ff8385b8f8665d0d7c\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 00ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[privateKeyPkcs8 = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e61102030100010281c100ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1026100dd9fcb8fe2c6d7d3cc0c52588aabf47c8919e4ab8f056c1cad8383c073a0989aae1242f2842c9c16efb50277ade40eb02201b4dccebff3a7498012a19b3703953602b6fa611d12126f40872ee2be249f0d8109bf61934375283b1c96e7c2d94b026100d565c93033998143659e1fa9efe089f05fc225cdbee5452442d59909730b48a1c2018ceb97f25903db1eaf8735f8269b5ffd7d7a3643e3ae8d736602c1a1f26f897ae68654bb3380f2cadcfe6503c0347c84e1bfffe0019aaab4c2349d92609302606f4c205e51f4a9cea35a4cc04a63b0941a05f6e07122b7f86eeaecef6921ed814089cb351f4b87d7bce99a23a02037801c93ded044c40108b1d0af8a98f837c4672b55d8c78c61d70027d7bba402f94126f6f67e35f24e9e3765f825909e39a1026100b10e4ae75b68b9ff9988a0ecf6c26eb0aa4303eab9c0b0a56d6e9c136308b1b2c4ad54a704e36747f3be7a14cd8a9f3dbb5f2f84ff11450fc6fd405e791a4d748db5131fd19da116145c8d0fe5f03ec14daf533f62a611aeaa845fbe181f2351026045a036c72629ae8dc5dc6ea1cc5e8d81fdba1076218c14e724b941835b1901c70dfcdf231ad63b1942f3d79cc561c42b7e7013a97c1acb5a1e49ea44c86201c7feb57b4afd83e3328c82a94267d5d6a4a42d726025ebd334c9692190a603e230]\n[sha = SHA-224]\n\n# tcId = 180\nct = 0124e2c14688e3236e0cc2f7daf336a781b10d13b3448456611162cc93f952d02c69a87f4f31b74d6e02b282da66b0331dbcc55d153a56ad4fc159ae87a65786c50018c2d0cd8568653e8c7135c8a2ffb8ffd0b27143a1be0874a6167c4b2061252836f0f6b92cc7c189c77aec3ea0b9dcf0be5c3317487c064d52ccb5d7e903e1c22686c8504222055e696d948aafbbf4155342aa3a25b97f4409ca9652370f4cf958ae07f19f2130822a5bc65590f449a8f75f620f9c23ef22b16479dc7ec5\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 181\nct = 26501dfc7c2fd13bfe3dce246e3d757684072f08bbe9f6b42e86a86fa6879a404d4ed2791e64dd41d79537242e3e243d7f36f065323a66e31499fd2bbeaddf95ab38a6f104a397552ebe99f220d5e9f612ae5646abf2961cce431afbdb2cfaee6553884aeb8994caded204fb83bc1152573295663bcc57759b70960dd9e7570e5787a05513f3bb2089b5494f4f2d4fdc4a8e06871f103c97e11a40247a7f4ad00be559060c8918dcb584f88fd842464eed8a21b04881d197cf6de5ab6521c1b5\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 182\nct = 99383c170eed1f70e58edd721f194573bcaa79e84aac4c73dfc0b34dcbfbbca5bd66e3556c9d47059f191d3854f778276d2317428c8b4c5e49ab6108e6fe7bc4ae9dab671963e1201b937c40ffda8fbb68a895c6e61f0a67a653fa3e47770abcf51d81116fe8c5dea265e8cd18e7c04d560745c7733e9841e95e162cbce2298672f170ac8293ada9c8d79b1add2629bc3849a9856cb6ed47e881374e515705ca0689686a94fbb7e771e6d1e2d511bcba8e78b199f1bb16b4da05e5846a5d9136\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 183\nct = 6a20051a447548048b7b82769fa5c014bff46d2eb41d1fc14623fad0b7fa16c010153023db19c7578a4bcd050a3a3f9c2e8828e9123308edc23555a9f21c9b5392107978ff27a36d2d06c5a445bc3067beb221e0734fe2f8d2604cb7aecdbc439216523402f90c42908f71fea008d0591830ffbfa965b7b51b7156460bf36e6f18b6a760f658b7e9d6dc41872552bdeab1af17b052c1e3ace46badf46000ed9bdb8b019b68cc61589bdd458da41d257e0526828f12e4eec2e164bbc8dce26032\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 184\nct = 5dd9616822677a9bb429020a56d2a6508f829183f114406d7f061546317e10aa40f36f650f8dfd9bb3fd5e7d0e42703c6961b65ee25327c78a3c8b188bf1f9830d76e48eb46432c842ed44ca66d0ea00b6e3ca9840cd460768cfc54099ef1e85f8b630bb942fb491976cb71051b0112e706ae8de4503fc8c1a67051d6775f7db7433de38bb3c04e7b8c789d2ac0c11916727e767fd6632fcd61fe20ff7c6bc0393ddd882d14f666bac8621ad23cff64f40cbdaf2e9b16666f3d1389325a9374c\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 185\nct = 9d9a0410fe0d8090de98afa56950be549bb2f72a0d112f138149d0d12433bae72b0bb8eae0d38983be1b85a990d0276f32aa683ee3d577421d1de47e100f3064d4893521bbd6ae16761fdbcb8484305b5bb0a7ee84796628b93bdb0923f6aa696bf3f62ded5e9aa26f2a59429b8464598f22aac6cb2647d89b5016a95fc7d259f141e9374a591c0fc3f3429a13babbaba634551b16ebaa0b466138ea48f392fc9e0b39032568cad870f3195cd03f2db02adf64896c27c12d8083ebd88a1b6c07\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 186\nct = 97b3054cc2a6a3b24f55bb8624802ff80126e79d6ed617dcc327e4ec5953fa7d593c10a6091bde358ff3548859c6fae45cf9b951a9768753454ba99ce090614ed64407d21fd824a537208eccf43dbdda046ae1e417701eee92a3d8f56145b4cdd86e912c8eb2de56364159e7bf3111e1c7b9560f81c0d0154abd069f463f2541807836d69e0ecd718582ff732c428f2f06f6125569742d3a9e18e73230d54326b6f4fd4807d85bb15f7ae56ef93323f6f527b66133e0d01313b859ce78c43023\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 187\n# Longest valid message size\nct = 9f7a8f81c4093ea7487f99590297571c34df30ef74164fb0841866da408c7eff1ffa479cd8698c37c0ebc34061dfe559270d6c5b46fe4e4bcd419951b6e5d21dbc390c2f53521e958693123cd4c785ca50204aa38f9d8bae467a03ed523ab54fa5e1ff1c0e2b5608a8b3de823bfcc598a1b6e44d4b4e33a78efb371860f64ad2de0f6a53dcda572f9660f3c6a1cc0baadb0fef15f2e0a182414ca5033993eaff99ea8a2c6836101e65f2e460f838d738e61fe78df3f27b4b41379e6eab979fcf\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 00ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e1993", + "20d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[privateKeyPkcs8 = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e61102030100010281c100ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1026100dd9fcb8fe2c6d7d3cc0c52588aabf47c8919e4ab8f056c1cad8383c073a0989aae1242f2842c9c16efb50277ade40eb02201b4dccebff3a7498012a19b3703953602b6fa611d12126f40872ee2be249f0d8109bf61934375283b1c96e7c2d94b026100d565c93033998143659e1fa9efe089f05fc225cdbee5452442d59909730b48a1c2018ceb97f25903db1eaf8735f8269b5ffd7d7a3643e3ae8d736602c1a1f26f897ae68654bb3380f2cadcfe6503c0347c84e1bfffe0019aaab4c2349d92609302606f4c205e51f4a9cea35a4cc04a63b0941a05f6e07122b7f86eeaecef6921ed814089cb351f4b87d7bce99a23a02037801c93ded044c40108b1d0af8a98f837c4672b55d8c78c61d70027d7bba402f94126f6f67e35f24e9e3765f825909e39a1026100b10e4ae75b68b9ff9988a0ecf6c26eb0aa4303eab9c0b0a56d6e9c136308b1b2c4ad54a704e36747f3be7a14cd8a9f3dbb5f2f84ff11450fc6fd405e791a4d748db5131fd19da116145c8d0fe5f03ec14daf533f62a611aeaa845fbe181f2351026045a036c72629ae8dc5dc6ea1cc5e8d81fdba1076218c14e724b941835b1901c70dfcdf231ad63b1942f3d79cc561c42b7e7013a97c1acb5a1e49ea44c86201c7feb57b4afd83e3328c82a94267d5d6a4a42d726025ebd334c9692190a603e230]\n[sha = SHA-224]\n\n# tcId = 188\nct = 831eae38e44804990a404bff51d03afa5bb2cfc40a6e7c5134e2ebff6496c9094cd52956e0f1ed94e4c2cc615a1aaaf81c80e42e3f35559d086a3149cdec76d25a32fb4b668f0d522815ddcc76cd92d5799b7b8669c4eba765ed535483ac677258ac09d2e210aacc80ff753794ac7de842831aaf38b00eec1c70e1c7fa11900a21a87e32b70a01763599c40324fb8013e9a2a69c6f8b1a730309015fbe9a1c953333c92d04a271837946f87c09c51949c9fb92b6a2ae30c8fe0ad1208dfc817a\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 189\nct = 51d10c297ebdb44888b3b6c7bb55daaaccd9fa1178c8fbfd02d5b1dfa0cf59b7db0a115bbfa7cf4a49d9ea9ce72f12b30efd481b6c98924ffd2997ab7de2b3e600820d3ab8049edf33b3ef322321ef025a03bbd5793fbdd443d0b7b03723172e14a0c3bc8963573716c9065ead860be3ce7e83454847519daaa8b3923c4eb09c49679c3326940929680423ee5ed511a214a60c9b5f071830c5a0d0c46d34786f9c41a93deecdb9862f2c14c69938521d7333aedbfd76a8da623c9fd01290dc1f\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 190\nct = 93fcf41c0e9a8798bcf599a091bac44670dd9651986b0330fb519b7214ec7f2f5a7ff43245f7b050f421008d812ef807a0d2b701a53ad0f99c972dd56786e8afa7d51e0cc8d3665a5259a1e2f1fb91bf5971ce8bc9b742b8285bfb96b1e3865e385504deb9d83d4a3f871058301a05d54b0d6ce80eb92b261b56d896f8da00ddcbe9a388bcad71448091b0dabe2068f574b80440c95f94ecd7686fd03fc8497f49731d341f0e265aa8d867244ab3996a87cc71690104cebb54f60a45aa52f8db\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 191\nct = 352ec846efa34eedb96d802ec90c7c7596cffd3303d6e33735298d1162d31e9463257c9f41330e69e13a4937652f5f751151671f1bd9a82cd55b3b509ca64b2131ebf85da0028ddb239c660f80cf5477a1d614dbafca46a272c5383d36d040d18e752f27d43a905707a6a5fccd8905461db7f28920c55f5110836f3a63fe6c5f6fb2f4120f33bd2acfe2e878c7dfc8ed42a4ba8ab187be68feece79965c2e5d0c1686db1aff309e9a095442536ef2e47ea78825d82fd9662d5282f573e1a30f8\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 192\nct = 9077c829377589b4df66cbb41493565a563400bca8e782b9d3ed0a7a5123e5c84e2ab4a048b2e2e5bc29fc8856da39ed68a2e314c8a1460607f2ff255cfc6985155d968b8fd5a5b36405055f66402d58b900eaef1bfb62d77951a3232cf36d988c88e0014cecf7a086dd9bca9f1fdd21a501e31bfd561c7b8dc6207625c43d4be18de810c0e73c1f1033f59ec037f9d3d7ed0ba54d9a9dcfa0d07e6d21cbf732e5ccca473ea5573a5d138c190756d52617a01605e820155676d4c213c74f9c3a\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 193\nct = 23ba04c8613b46446b7fe52fd271ee23269111c79bcf7b74945dc9d453bd19fab4671a3967b26ae8386278659bc4112c947714a6648c91cc7a7f5dfda4f67923454758316a311c22426291929e389de5eb813212368f43e8ee22202095e2f1f9c57e50c0b63a1ef8b53269a67b41ed8cad086afb1ff5836fd864c5f296a0465395e71c48a98c31d62e647f048f91056f890429d4221ffaa56af2a5b76d9c323026954bc538c455df46dd2d534000d3dd03b3ed50ff5e6b06f96b76690eafb0ab\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 194\nct = 10833e531676b976d3161fc9795ee31b7f915646a4aa8c1642c92156b78af9fec8c41b96f3288fa226bcd112dc4116387be48a9e3bee33a4f4e219c406845c01696b6f092836b6c72ebc2a8b345d9423d5b5671cbc5049f43be82a5f73f99eb8e4717235a608f9ad7f55dbf4d7a7b0d1547ea1e834c4483793ef0c9c496ade235cdfea4fa95ba39639e0d189450c0c985277321b017bd258a5e86f2cce8ec3d87fae77983bf66e9ee24eb71476ed79c5c4c0a2f34b385f37c3e30d234716203c\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 195\n# Longest valid message size\nct = 0b88aa2198701e9ed1efe32ff4bcf4aa9c39e182079f5489127176e70d32655292e86234c3fe8eaafa326836370c96073444f4af19a3b7db24554fc95431dbf2a4f68156ab363892599f02a2249b476ea8d153eed4c0c0eb922f5ba483a4350c502995f1a027856021a24f649db5cdc8a2d1b8d9f7ca56ae13f641a23bbfe590c77b1c4cf38437fc8d2d731e99e53f327ce62cfaf71d3969308c559d032e8df5658a9ae3ad823a1ada84061987b7004696737b47017860e9ef555196e2859dca\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 46e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[privateKeyPkcs8 = 30820396020100300d06092a864886f70d0101010500048203803082037c0201000281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a27102030100010281c046e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6", + "b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01026100fabe439487c73dc1231ea47cc3b8daf1776fcfb44920ba035c9f1f1a597422a8ff38c0291971c45f7f617e3d0b4e4af046957b53cb4565773d64671fabc78e27578fd403afc7d1cfd6b8339c44787149dbb56ed46479f58e7ac881df4902f945026100f0363a45a6a07169390677e607acc4e17bc624a01c377cd7154e1b7fd819f08dd6f13b9f6dff6dc447c502a79299c3ac19b4bb55a2aafeb64321a4a896e1c0fd7d6834e36894469007506086f159d807bafe9a8b13b1ad83a501ebc694d7993d02610098a9108234eca4779b87438446b19c73995134f741f2afedee0d5f256ec31b7b22f08d66387ca09fb7f146a7a9e38012ac16c4a06ec9108eb98d109022c8fb8e8e6c1e1c24809708606583dea77d611423b56205e42ab0cb8f8bd62e78c85bb502604b1377c4fb1e1c3419d996b1b3666126642bfa987c192f907d9d2ae51b2288579c7d4af83a45e205bdb4aa6ebb58099b0971be37369f20fad0227cb72069308b499dbf21f0369f933665fdb54f4b98445a426704dec3e28a49913f2292b48bb50260593d103d8d4b2b827f0faeb695094d4f5dbff86ef757a9aa51b3a06923d24d09e1f9f0f50ec57d3c65986c3822345216762e92d0d6becbe2bc718c63c651255e8c0649b244fedd754e454620efe317d752e578ab8b35cd7da6d6be88cd5b9f91]\n[sha = SHA-256]\n\n# tcId = 196\nct = a506436a04acfcd6ec2d868e78a4fb28fe6fc0dce9e79f6fe04535871968216b73462a3c45837c853bbf39d84a9214cea5ae8acfa6ab6a0168bc4b05c5b6c201564492a3d367a69b77f6c40fcbe264f6641217d9a464a25fee906118d3184959c0db47a888a9f398d2e455cb9f4d556a962aad67c20a814967312a3654f8492493e5a8f1d8fa982a99db2dc079310158a8a6cf694dfa4c447fdf9047b5e6d328ba9151d4fc11a6904918b48441dcc9bf24c77181ea87de3ab73394576b248503\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 197\nct = 54de8d4821f2c8ee52cb7ccf8eb04cc915f7934123d5eeaa84e64ba3a317a28082aca6f76c697ff96f36fa5b112efe464ae29be917ec520fd6ac66d65ed44f5911d627141fe07561a889891d9a81d844988fc9dcce1ddd6c280ca1b8d4d756729f1e57f1adf15dc595d7c78fb67bd7fb073fe846e350922f8521087a0eb648a7dc72a65291cde80489092729cc6c462ae0d05969fbc8445c2fe098374cfb5687e36130a43d87ac57d2322c383b0b7e8674e297a25b6c27a54660b96e10b26bc7\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 198\nct = 404ad21db93654d44fc9a4e8b6dbf1f6297bf07663f673faf4f39db80b54d12e7bb81281201e5b0307868e2675ee21dab6f9949d5e172afdfa327da28a37564d1bcb7d1b86abf3e57cf8d83b634430b1b5931c669ba253c683e16aa391447d3e1376ce909bc670fc5d86c461b9a95076876bf60733b20cc300e5db74ca71fe09fd96d54fb7762833b07958081dacfd5d89a0f0a179d8206203a5ba6183c399b2218ea934cef9171779b1726018d25ffecc03d6b4ac95117ef42075f7a097e865\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 199\nct = e5c889d86b3f6860f99af58fb3a0667ad73f7fa3e58d1c5b18eaa61b836a046c76e956796a889076c04a591af86362747f263399ddc78a031238d1c44265138964e939de27e2457962ddd7ac7107fb08b613eda92d3da69bb9d52976bcf643e371daf7cb0f7965261853703e39e734b37a29380f992dbfbaadae2f91a9e3ac098fb275cbfc552c8ff5e43e3ceefdf3e9900c9fd7b49e7ad62d5af34a6a98bd35e5362d31782ec78905f61b386f201ba896251a8c7d4616b0cbe013d0c8d92bc3\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 200\nct = cbb3c916ff819c7fd69f7a2bfcfdc8e2fbeb5ab286908cc193151fdb7ab607a09e8e9086aac66f2987888c221a68be70228df30d4499aac7ed2816489ab39ae75f972cf76401650fdd3e1fc952d9abbba593933ca854ffa0df597fbe8847b6b6f0682a9eb02d08f75b1feee7a13238450d611bb735dc017dbc1a3c3936e1c1687f6189594ae79887ca033e0e0a199e18026ae7b2161535050754f2bf47506297c1d8ef8a28a190f519cb5607c1af3adeb14a0d423a3615a32e67a52bda728e81\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 201\nct = 839a7a6a7d02760d7644549d53f3cfdf228a93f2282f36188ae79eff657fb927db6e07ca2905fa1f068bad1eac7b5ea3043676c172b5bb046d335bad80c60095de500f203a71242812dba6a99302957fcebe8cb4c61ba59e00ff9ef26242e488337543260382379e067b38d1b17b073d64ea52f3756a7fcd94ff37331c6e5fbd1f308f3d890c6820517d7de1a6eacffcc9a524a3907f1520ab089b1473e0c0638c0cd583037c091b3d29e4b6cbe35b166e6d6bd910297b77ffda97822f8f7a72\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 202\nct = 7c72d9475fafd0cb66263351e6a82ca17e7f36c9c09f5b0c25ec901ee071553d556e4ab356df9b82a7b5085338ffa07b3a33692218e1f369b7160b208b01c35f35507271b23450c6637bfbe661abb02f94b75af2f8a1e7678e115e16c59d5529e7e8ff9756aa66a5c6bf40d447239431bb3b7f17d514b11a2825c3032b7937ef4b3b8b477c367051f35842340cba2b671627c86143c9a64b33592934857a4fca2db8f5c6e52a62b72bf34ad8ccb6039e28c29e7ef3144bd45c587f31d72c7bba\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 203\n# Longest valid message size\nct = 29d226e59a0ad887852837b19c9056c268b7e091d767a5894a9cab2ba1312965159c78f3f91fe4f5a54dc403795b9af64721bb62e8cddb488fc73686b116b57365c6a56f4069b5eb821fc4a76fa02356426334055abdd440ddd77d1da366ea171197286dd820f87f143c5ef1c1c36526f894d3c89699e64707de23f0acdda26804b0c64362be3918f098e767f888e456e28d90e85f08d2c8e60cdff0bbe4fde51db7b3fb947d29d7ba05ec3a891ea0e9907f481c3321c76762275a32f1f94d7d\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 46e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[privateKeyPkcs8 = 30820396020100300d06092a864886f70d0101010500048203803082037c0201000281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a27102030100010281c046e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01026100fabe439487c73dc1231ea47cc3b8daf1776fcfb44920ba035c9f1f1a597422a8ff38c0291971c45f7f617e3d0b4e4af046957b53cb4565773d64671fabc78e27578fd403afc7d1cfd6b8339c44787149dbb56ed46479f58e7ac881df4902f945026100f0363a45a6a07169390677e607acc4e17bc624a01c377cd7154e1b7fd819f08dd6f13b9f6dff6dc447c502a79299c3ac19b4bb55a2aafeb64321a4a896e1c0fd7d6834e36894469007506086f159d807bafe9a8b13b1ad83a501ebc694d7993d02610098a9108234eca4779b87438446b19c73995134f741f2afedee0d5f256ec31b7b22f08d66387ca09fb7f146a7a9e38012ac16c4a06ec9108eb98d109022c8fb8e8e6c1e1c24809708606583dea77d611423b56205e42ab0cb8f8bd62e78c85bb502604b1377c4fb1e1c3419d996b1b3666126642bfa987c192f907d9d2ae51b2288579c7d4af83a45e205bdb4aa6ebb58099b0971be37369f20fad0227cb72069308b499dbf21f0369f933665fdb54f4b98445a426704dec3e28a49913f2292b48bb50260593d103d8d4b2b827f0faeb695094d4f5dbff86ef757a9aa51b3a06923d24d09e1f9f0f50ec57d3c65986c3822345216762e92d0d6becbe2bc718c63c651255e8c0649b244fedd754e454620efe317d752e578ab8b35cd7da6d6be88cd5b9f91]\n[sha = SHA-256]\n\n# tcId = 204\nct = 54ccbf75ffdcc53fc0bb159532835950c35afb43270c0d0d2488f6af166a7ca62ba6e1e917ef2b99a4c2f3c7e221df97a9b0f59197e81e9126dd7ae6df8ba651add4e52dc7152ee08e194c1108bc18e0b2d84ef21c7ffbe860f66f2bb462a8ad7416b47b6c60b97ae459fdc7d681dc22e2e7c06eea637579e13954a21bcaf1cfe6cb", + "e94e7156b29758bd96c3033e8869ac12b9d1337f9625a35369653455a4a4cf5d4bc160c27c2634267a97d5fb617f3076c3020ddc55440d949a9487f2ed48\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 205\nct = 6fcafba9e9d9fdd9c182eaee143fd2facfc75f64b21d8b584d16f1bdb3f1a3a826a4c8ac3604118ba07d93c0801b0e53189e43ef42eaf1386c3f3f0ab762061485dac5377abc639bb6261b5402987f6672f7ab929c840cb1cf21ebf6830e1e56dd02e220878021c3f2f83db8f71a92aa984ed9c41b9412562d2e513760b2f413cdd27cee382ac483daa64d03df3b6b62b6c85e01d4254653f3566493fbacce806fcdb52acd6998786e58e4a68f737a224607da0798e39ad431417508f3aca991\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 206\nct = 676f2fb413ca07a9b6a6b247afc3182715a90a0ecab970b890f6b3c6d64d682258fadc9a35601425e943382d48edcf816a3526d9ec41c679a4bef29ba1b8dc41cef76c5b0c7152bdcbf711925ca96e236e230e0e62aa8cae69799bc898b638aefa36ce42a6f38afa2796331cfdd12c4c28835aef8d43206b1b2872f18d1628c621955321e270756995b005f3581cd13a971d51d0549a789149d0654cd75eba6a0872094f1eb19977cda9c41ba6a63cbd1ddcfd8ccbaea2423c30853e44cfea53\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 207\nct = 22280bf62541ce38e08a444a96a7d7b03242d019c32c758461065c1268c16df33c8c1e56f3d59df56dfbe2fd5c3242d6e9cb2957662762e8022012cc52332b234880b146d0583537cb99c5884a208a759b97ab15d6b9d4e9079c4d389b1255a2aee2e71a26e9e451c96697528c34e419dbdb6397d557e639993c360d5bcb16fd06dd5730cd6398470b66adc283e56a69ddd066046de6b2dd3214ae7e606a630bc86c5c4eb6a48961198975ebb4182fe89fcf5c970f23123cf7b8d83794b215ef\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 208\nct = d5d0734dcb30f0b840c835999da86a6ee5484c4f26943893704ebb641ad29f495d1f43253355828812469024618c9e840aed1d2c1b525e8b913d0e507e4fec2b4484db90c3bfdbd6e11dd67ed1153301e60dd8f23c8880a2c7c6a20006e5e34c175bee3f1a96fc89e48ffadee05267afe12fb459c3ef9209cbe65d3784fe8fc0d7fb1491631ddaaaeb6fb9a2fd4db2842a23ecc44fb52fba72f2846b05c937bffa590bcb49794514b591412cf5c523b30fdcf12f8c84f416d94c6b4a6dd20b15\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 209\nct = d3f4bc1c55fcb63d83755bbde4f1ac0c1a7b910cfb9b4ba6633d7223190c0c2a3b9c8ff8d148d29638ef3eb46c215cff6926877f806022584826d397f7f08dd00a621faa8634976d5212b9b9c654e3e0cf19558eeb9ba1993df7efc18405a2934d8742b4fdb60c902ffba7196803478d7fa7cdb64ad631532465065f4d04a9448a3f010675bceb085151a1720bd9e4e04a00bb4d592090358f12aa8d675fbf2e69f53479a430fa4167e20f12f353238c18ee092a40ee69321fbb32f00663f280\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 210\nct = ac52fc65d0d019199977c271a5d96d81b7d942c2272ba8e2b68ab04f0a3ad8be2059aae9b82c79300cf59c6d2bc517ee2397291d68740bd21967c2c3dba7b0b025f180abbb2f5f4b6980f93ac1f652c220079ce316ecaee502704cd2198c02c4863b7f08385b828c52c6b396f190107dfb0b4f218616038ec34a648cc10a1a8881892aaee7402d70576ead0af64c995f1ee31d4f144e793b395a692c113a7bb0769e78a9b3ed1555129da61a0ca13210a1c7a6a3995a020a8d4f788793594367\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 211\n# Longest valid message size\nct = 240b2f6859c2dd4c4978a2ea2d239effcc93ba1e6a5eb3c46d55ec75d6bf081212da33e2132c3804e203f801dae8232e4cb46ee039b2995a16578984e84e498e6e8ba81138d5fea8e33b5082602a5b21b5ea40a7e8e3f4685093b50fe4a309f1c563e75912169ea85775123bbd9e26f30eb7bea5f82c7443d1d977eb3b621fb50980b2f3690a9e50ca2bbbc9183eaa41ec2929bda7bb42b30a9166ee2c1efd2758f09d79e082b531a4abe22d4caa182a915d66ac50176b7e39e7210f77021b1f\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 46e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[privateKeyPkcs8 = 30820396020100300d06092a864886f70d0101010500048203803082037c0201000281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a27102030100010281c046e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01026100fabe439487c73dc1231ea47cc3b8daf1776fcfb44920ba035c9f1f1a597422a8ff38c0291971c45f7f617e3d0b4e4af046957b53cb4565773d64671fabc78e27578fd403afc7d1cfd6b8339c44787149dbb56ed46479f58e7ac881df4902f945026100f0363a45a6a07169390677e607acc4e17bc624a01c377cd7154e1b7fd819f08dd6f13b9f6dff6dc447c502a79299c3ac19b4bb55a2aafeb64321a4a896e1c0fd7d6834e36894469007506086f159d807bafe9a8b13b1ad83a501ebc694d7993d02610098a9108234eca4779b87438446b19c73995134f741f2afedee0d5f256ec31b7b22f08d66387ca09fb7f146a7a9e38012ac16c4a06ec9108eb98d109022c8fb8e8e6c1e1c24809708606583dea77d611423b56205e42ab0cb8f8bd62e78c85bb502604b1377c4fb1e1c3419d996b1b3666126642bfa987c192f907d9d2ae51b2288579c7d4af83a45e205bdb4aa6ebb58099b0971be37369f20fad0227cb72069308b499dbf21f0369f933665fdb54f4b98445a426704dec3e28a49913f2292b48bb50260593d103d8d4b2b827f0faeb695094d4f5dbff86ef757a9aa51b3a06923d24d09e1f9f0f50ec57d3c65986c3822345216762e92d0d6becbe2bc718c63c651255e8c0649b244fedd754e454620efe317d752e578ab8b35cd7da6d6be88cd5b9f91]\n[sha = SHA-256]\n\n# tcId = 212\nct = 8bc854413085f56413ddca8c298bd7e0d30854412ab22f4ebdf4f9cd201f60d02a0bbc546e54492402c71480cbe446450420c29dd9800dbc127dc65cb4221e8878ad2f0bb672587695b750adf1f4a81e722b9663658fa346dfd3e5656b4f42448df5c260b1f4e3cfca7998589d5af3d8beef35151879f60149a1de907b2c961bb817b99fce7d5397ee25c851d4668eb2722359bee0e490cf6b588ebf7476f9cc22d767829726fef280197738fedd68c9e570684a8fef46fc1d77c2f9a97bb381\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 213\nct = 4b36fb633e146fc7aa7acaad348406e5d136e50978757ca6b8b29755142eb71ebda7c997f355f3f965171ecfa44dd2fcbbadca8f4dd5f92e7538c4a490130fdde31606f2909f4b1eef0840e5811b0c1e806f739225ebc66ff06eed8f98046375901fa5b9bfaba3e010f08ec327819ba71803d5743680a24b2bfa62745ce778ca3aa2f165b398493707c3e76f3385485e8b824f16b5af6546789d11eee1a61067aa0a2ecab5ce909749bc5f23da9d61926b2a634b3393fa347696a9b1aee97366\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 214\nct = 1c7a0e137751340059f5978866031fc45e8c1c2ef0e763c235420b7849f7ff5a034b47fa54be69e43e779805170ed498820dd5512a2df966c475615705e05ce71a6ebf819645f69d061eb3fc9a401615543604679c88d4b391e710db016fe8483fc1c7efba029a6779716418b83beecb399ed1c72803be91809128a45fcbe1c73a636aaa36aca42afd56efe144ce4eb7be444d4cb6898f807638e8545f52a5db3debb05320d8a9005c1718c8ee8650107906cabfe09ccfcc5ded32d0fc8fe861\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 215\nct = d57f56e095361d00e7feeccf64583204224c86aa3c5990cc3dc12417abf0330b0c7b9c2e114ff065f309204047b76d22f7f79d80d07cdb7d6934904b626bd34d9bff936093122cecbff54b50deb8580a2435a44dacb869455ac48763", + "73795df08d11ee857559f19adf8a7a86f3b9d30130b6c3808ece8c6d33415535bedddfb29362b4c41452dd91b63db803b8a32a0ba4388d095cf55d433f022f35b05d5db66d94034cd925f0b85da7239f8d1b02be30da7e5da2a05444de7dc19ecbc106d5\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 216\nct = d9dbf2e9dc172975b315863d49f9eb784ef0438b7acf61698061f5fbc77aebdc7220c08f31e6239c0bd56bce42d2105840653d29e3c9cec65463d3f8de25b3388a6b01ab5d613ced95cfca2700f8f41785147041963a8c4579e35c2e6769e3f2e12c24a02e25f73a9dae6e8504cb49d8fe23f1a0ad9feb08c5ed36b40c6b18680004c29e9a79cdb190347214887d7979ca422275f9796e3744a17137999cf64c03f39a9dd033610a27a10059cf3bd0d76e0158f782f0c4b060fa1635bcc1219c\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 217\nct = bb25e09327e96c01a1c8bd30345228e6907fc35d10202ad3893b55c5a8e0f0255bcd6d0bb66a4726caa475487ac617bdd097d20db726a399566399bb1c2771cdb6dc0941d3e078183237a2fa42b455807e5f7e52d74410042d5293aee73cfe433cc7766918996310a1049eb3a7713f38169f184a237816e5687953a9fa09baef2ad2ab70249ec5a874276bb39e1a598fccbe0379237d5f429adc6885bb35a808d6bfa4f36e9fa78840b9d7b906dff2969bf560a46d7209d6d6196f64d546ade0\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 218\nct = b800d40df704b7b1667c2ecaf29bd0609d05301a98a9dcea75b1d4fc27240967c791244bed1c81f099dfae4f9d4e7424174bf2deb8bd1bc810afedc5bf262ebe8a4d20d761adbc8a3f184d91e609cc60a700e61684be6bd4d51d91041c32d138438598f0d4a727f1fe914ced15a91d408640a3b8c4e7df56e2e99bcbc9826234848f918ad2e5b2a83982f994d293cb069a5356c06a6ab57a9f41739d3c0396f429f15945cda8201827e46f8ebb40b71a61afd5c79fadce592c48311b2ab38cea\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 219\n# Longest valid message size\nct = 85f7c897a568f295452890e7717d61a6d1d9025f5f8538f346c0e82e3f15c15db6b39fbb1ffc5bb7f60885bc9be5def2648e9226c0fea7b7be935fcc1f1743eb2758fbf1e2a01e15d1f637001de9b629d7e5901c7f426cd3ad059bcce1870721c0dd2641c90afa23f30df8780b234202d14612a2e108cfd31b268678334491efd55ec22d27abeb734e70b0b867afee270f0f08a216f01b8c98edf2371a25033915ea32a4b48dc6eb80706c4558debe32144c52dfe6e2063514c628d397239cc9\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 46e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[privateKeyPkcs8 = 30820396020100300d06092a864886f70d0101010500048203803082037c0201000281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a27102030100010281c046e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01026100fabe439487c73dc1231ea47cc3b8daf1776fcfb44920ba035c9f1f1a597422a8ff38c0291971c45f7f617e3d0b4e4af046957b53cb4565773d64671fabc78e27578fd403afc7d1cfd6b8339c44787149dbb56ed46479f58e7ac881df4902f945026100f0363a45a6a07169390677e607acc4e17bc624a01c377cd7154e1b7fd819f08dd6f13b9f6dff6dc447c502a79299c3ac19b4bb55a2aafeb64321a4a896e1c0fd7d6834e36894469007506086f159d807bafe9a8b13b1ad83a501ebc694d7993d02610098a9108234eca4779b87438446b19c73995134f741f2afedee0d5f256ec31b7b22f08d66387ca09fb7f146a7a9e38012ac16c4a06ec9108eb98d109022c8fb8e8e6c1e1c24809708606583dea77d611423b56205e42ab0cb8f8bd62e78c85bb502604b1377c4fb1e1c3419d996b1b3666126642bfa987c192f907d9d2ae51b2288579c7d4af83a45e205bdb4aa6ebb58099b0971be37369f20fad0227cb72069308b499dbf21f0369f933665fdb54f4b98445a426704dec3e28a49913f2292b48bb50260593d103d8d4b2b827f0faeb695094d4f5dbff86ef757a9aa51b3a06923d24d09e1f9f0f50ec57d3c65986c3822345216762e92d0d6becbe2bc718c63c651255e8c0649b244fedd754e454620efe317d752e578ab8b35cd7da6d6be88cd5b9f91]\n[sha = SHA-256]\n\n# tcId = 220\nct = e2c7daaf6b2f1c6a1d26cf35a6660672948681615a94bccf88ba0033a00ef93e82a5af8ed0acbc4e51ad6d457d543ed2ce54a2c807f4be6a2bbafdac48976e42c0703ab45f58552e2d927cccf96ceaaffd4fe68d27062a7cfd1b42f2e69f804868bcca6936d82191b236e44b017c07df4717a7d6058c953b6f670016c9fce9e410e6d727cfb7e067260516d98db2d6d73d0d107768482cec731b2a2bea3a8ab3f706627e193993969286fb0b6f57aece5146f7c6c2d8e94c6860866210e1aea0\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 221\nct = 764e764c0b8f6a65cff3b87d0a96c737b6634e83b3b8b063adceaf7e8cdedf482bead1912ac1c9611d4e75f61774b04936a3fdcf522749ee99e2b02fb12655195c8d0998d841d54a1f8c8846999ad8b66f0c5f4d2f90874c6fc5d09cf85574f58f57f4d33676f57f7628acb0ed3c49d691a0b5f6432ee59fb0a329a7af1d7a35cd891913553b7ad5d974f65a40af710f468ee3c0a47800d866ccba3dc875ce69b876b4db4be940d70897c0d9d0686a0f6c70d773eeca06f9d4f84921580f5d6a\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 222\nct = c749cf63a0cf5b47bdb31f2ce10c7f89f133ac2d3b9044b47d83b35ae725541e8a402eebfdfdc7a452d033dcb411785307cb8eb85f829cc7ae6a13691aa97c8a053474778548d77b447cf33d54a64c9c8a20731047b78e70570066afe1043a02fb6c72f31a71d4568dd21e9f7ed813dbef13ac28c10283db0a3da49f05db4257f9da1f0bae50a7f7ba9fdb23e35b2fddefb9be4a90f6780926b76e907a0ec4281e0a2e7fec58e949fb4666787a64e04621b1d8023706fddf9251ddf1292019e7\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 223\nct = 7fe268ebc95b465427d03d0e8cb378bf5a10097ca83b3d06fb82590c0b663d921e6d963661e185918986f37ca49103df1a4fb364f12b8b44ff18326aff3f82af74be825c96445a8fbd11760eebbf827d476e3c0e1210f6c8724a951c1bba62860f581f67a17351a1dde956303b2de156d0a220de90f65943b3fb4ba2741669411cc9c401f5da334fdd9e313ac4d78eb2ccccbbc93a7ce57aef0dd43dc68555f10614f5a363c75f79a4b662ee9dfda82a8d10bb76fc778227b8faae92c0ef6531\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 224\nct = 48dc99dc2b5268c770ecb684ac742d4bda236fd9271c307922eced097f35b2153f16b7bd6b65d5f3ef5fc925a2a59266060047d40c6024b720f7c3d2e52f5294cda9ddfad6e2db3960b23399e6788f270d31fcf3729bd94529321808e49d505260dcda47ffba41cadb830bffe84ddd74bd10668c6a63015184b20934d8d70dad43125aebf6401fd2150af8be22a90bf34b17d37496b156325bbce97145659c41e81e58d3adc90c7b768122ab7b4a820c2efa0796fff6ddff2f76ec8c52979607\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 225\nct = 70c36f4510435e610397f00dc68f1e1ff9fc8c9eb4c11b6d1d59da64f52972a3fd647d95528269daffbe6dfc2c2708de780f8258564fa303e12ee257bf9b98bfab74795fefdc608f82897438eb07bc3909ee22044d89c2b288f81842471675e9e497a37703497dc2c1f1ed6e23f7937ace0fa641beda18411a613fa87db3c04cf877c10173a1be6dc6852b6427f4664aefa0c8b55c4f45ecc66ca2672b86da5d39d122686218bd939607a9c5d688f2803eef6a913a923a9eff7900a397f1a9dc\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 226\nct = 7e92ca09717407555ed06baada696beb8415d717a2d2853b55c17c5f858055abbad7111e8f06b610e14b23bd2a447b1a87994327f1506cfdeb2c5a5b4ac6131f", + "dd1902a1b5dfe615d6be46a64735240fea8caf71a490210f456e075b3f020fedd3c061faea3dc54db3e4025d37c6cc6762007a54931fa2dd8dfb73e149924782b30183319832b59ffb4e78e32302763c1e5db469a7c8eb8c751eb99e761f6970ae823db15093782a22ee20b2617256c183e58d2e93f3cc07560550ff9543aded\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 227\n# Longest valid message size\nct = df1d0c7b2ef9a483d5dbf207bc8e5e505eed61fecd0a3f6821126f666f257c83e40440ac85badcc89a5fa86a1e157e66373848d05e73afecd6f8c50f93b9be18228a6ecb70fff5c115e18d7ad970cec99d4da6c41d16946aad5fbeee70b9687aab676e66f5aed5f03b6e9768fef013de143535ff81723c06332705dec42555c09895829ccb7309a67da8a237ba8e708f728ea66f336ef4f183aa2439d9d89837b22d2546d35c1a9476d6790908e1efa1cd0a1185a8759ad1df0d2a9fbcb1afdd\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 46e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[privateKeyPkcs8 = 30820396020100300d06092a864886f70d0101010500048203803082037c0201000281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a27102030100010281c046e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01026100fabe439487c73dc1231ea47cc3b8daf1776fcfb44920ba035c9f1f1a597422a8ff38c0291971c45f7f617e3d0b4e4af046957b53cb4565773d64671fabc78e27578fd403afc7d1cfd6b8339c44787149dbb56ed46479f58e7ac881df4902f945026100f0363a45a6a07169390677e607acc4e17bc624a01c377cd7154e1b7fd819f08dd6f13b9f6dff6dc447c502a79299c3ac19b4bb55a2aafeb64321a4a896e1c0fd7d6834e36894469007506086f159d807bafe9a8b13b1ad83a501ebc694d7993d02610098a9108234eca4779b87438446b19c73995134f741f2afedee0d5f256ec31b7b22f08d66387ca09fb7f146a7a9e38012ac16c4a06ec9108eb98d109022c8fb8e8e6c1e1c24809708606583dea77d611423b56205e42ab0cb8f8bd62e78c85bb502604b1377c4fb1e1c3419d996b1b3666126642bfa987c192f907d9d2ae51b2288579c7d4af83a45e205bdb4aa6ebb58099b0971be37369f20fad0227cb72069308b499dbf21f0369f933665fdb54f4b98445a426704dec3e28a49913f2292b48bb50260593d103d8d4b2b827f0faeb695094d4f5dbff86ef757a9aa51b3a06923d24d09e1f9f0f50ec57d3c65986c3822345216762e92d0d6becbe2bc718c63c651255e8c0649b244fedd754e454620efe317d752e578ab8b35cd7da6d6be88cd5b9f91]\n[sha = SHA-256]\n\n# tcId = 228\nct = 3a1d0cd0d45de7a425a757a7b174be121ec8ceee30f6d04f8bb5a43faabe4e5a8234f1d6737a52c2969f0fa97a065a8d325e16f224511f961b7090ed628b5e9f875b90c7297ec211910189c96bced34296c9172e250feba6b4a9e84cc84ef9569453d4914f5c760adfb31349b3e29c0b8d0e26b9d2dc6a8cc6eadb2534cac6f0369a6e82bf5113b33867a61b0000727d24dfe34d8faf687448e58599660ffc064501f62dd1e65469d1546d4c7b0677ef8b8925a884d6ec20fd9780e94af621b0\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 229\nct = 2c73536f345c03c78ec7508e07ca1b9040f23af17e6ac906df9fd9bcab68ef2ab0d6e1a574f141ae514156c579f1651be23762809f0e39c87df3f4411c559f04cd93c9a53de94ffec71b84c2d83cd47940bb3e470e21478b7e9621438931148f49ad1e15f3afa2481d39a60709d1e78908aa0b748ce1657bc7ff7c0c957191efcb418af4a5eaaafcd0a54c75f2d9593e98182e9e4e317ecafdfa86bfb0cf10ca48898012f5d5cc4505c553e1f5d15621f6f79091786fe93fc43fb32562596be2\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 230\nct = 446ddf29c6b33e221d601899b599494c5917a6fd42cfc95398c27935b9248965164b226c427ebd142e0520cd5c583a09d8ac0fdc9df5cad3ff8c1e6d847857d2713fb12af2c98905438d298e89d934da82a32eebc6167f24e298e89f28f73481aeb982c8cc5c33fc18007884314b09341f81d14818b3dd649be917a297005f6ea5ff765f63cc903f422214af59bce8c12a10d7b9b9444d965cce7be00d39b95f29b92121d1d99bc8ed8b90a022762656655a82937b24268fb41f521b1fb25311\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 231\nct = 816cc61deed9e7688d5eabc7ee843db2c4cd4dec0d93789de188d37b8fa0e3c57737c6a1201efaad4319240a66201c02cd79d0dae280054861a73f1ec1b1db305968950f0bd18f3d110e0f4c923bd9de9591dafd8cffcc5a310b90049367476249e8303d060b9459d03f33c33a064521c02f279dff6be4d313da5f405fe460e47470974a8732136bbc7311d341a43b2717643c0b29a334a39f3a5a0550dd87ab6add2fd9c039b39c0980cb93b5fa761028771dd1c320e87e1ab517703c104269\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 232\nct = cb000b94767d09707d95ee30826f9c6e93eb6fbb1c22ff6f7b41508cf2707d236817fe19d8c50498f877c5033061c3e23c10da76c2e305e1606eec1737eea1d5484d898fd7954bb8c1369249f15552884b7874121b0075b63f20df04f8873f921067d2a7c340560d4f5cbd3ede3f383c18541b5e6dbfc68ba0cd223a354552db9e27fad7114086c41bf7e20a657d761ced136d2c998a75d343998a6c7e888e24d9d04b1a02987027017d43ab2e7273ed8cceecb512e51579458ddcb4e0464b0e\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 233\nct = 93e8660ffdabea1afbc2cbbea37b9284c56dedb4a6da2f45d18968724c0045e1cdf23c5138a2472847c1c0d4d59f45b0aa1575a5aa41663d214e190dde5a3c9e9713cd918377cda2d148165bad88d45168e9cb4902290fa9c0779310b0c3b0fffb200681f6abd1d2d157752b7b7dcd5bfcdd9c01a62e71f984d10b2bf747f744b87e7b05c1e9a28b46fefb615dcb8bf92fc70be51aadb3fb40d5e9b260e80add81eacf6bc7ddbb2448db31ee18e9e5a0bd9e2238b581e7797036d649ac340e4a\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 234\nct = cff37e7ca96c483f70a80106ccfc718ea8267fca48db9a530b6dcdf692321daeecd5e27217b4f78feb83b63d570b27a554579ac2b003decdc85856bccd8a991b0a8295b93944c3cf5c0c0d39aae965c1a95dc581d355d15bd6b4d74e9aa38a9cb4ac41bde2eb051588f20345e4936ed9b5d5ac51fc2ad2101152beae7c98940616ffcb7eda7c6daa545d078262bd9018075aa9ab661e9d054b868de2491daa092bad7387fe876d1774d0c6875c7c74067253c71a17fde83b52877c365f1a2551\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 235\n# Longest valid message size\nct = aa90c4f6651b5f10aba1f2f1f407239f9265d60c57dd3e115438b25f906c29d7675dd913307373789a0db001f5e4a61e3c36190d3c01c4991cb4b9dc407d2f3b410bb64eefcac571eefcd0f66a78d1a57e1ef6893f55d176057dd90c6be845fd150835ef0baf025950b8c03eab50a93a420a69e01a14c94419cd09ff71c35cf8d01a6aebbab0f80135411179b4bf241716b4aeb35d6222a663f7c4cce017e55b18f9a2f49111932826da7d4a398efb04507239e5a7e611a065742d911e8ae7a2\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 1b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14", + "dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[privateKeyPkcs8 = 30820395020100300d06092a864886f70d01010105000482037f3082037b0201000281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f02030100010281c01b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1026100ee00c43356f3af8c15a0da791724e491d7dd03afd0cd0b40f81cbce1b38a5dcd245edec03b3b112cda442b772278c2abdcf6bc8d23133e98b2596d5a61b5b3d4204e48055a33bb5aa0765b12b8bd28a9f63d1393193c295acfe4ff7bc44c67f5026100e0d4514fbd34a29a55503de9a76ebbcae7809612a8d13bb5901f6ffbd9f06c98760647306df342f77ab45395eb7a2dc2dd3763625fe9eeac9f03baa636e381168440c54473b55211d8f0f3bfc47af94e3cf4267de479e5ae3c947a1a48e25b2302605e60a76cc45a358e933509ed62a41a8f4ace359c0e6c80bdeea556b1198510d53c4af281bffb184074fcfb4f6eb7fc5a3271152bd270db2da9eb945576d19ad1cf4dbb7983df67b7f4517aa3dde604ae011b0f1c11b1ada4793411ab7e97ddd102607f04543fa953f03d22cfa77ab6a5dfa05d338f15519c8b9022b13011e7e96560a8e51918ea351173413659368c87450d1eef28cdae043a5bf9a620afc0b8bcf81c957f1d1205b12cf6140291278e9604367974b990f7b0e3c3c3da4bb93b70630260687d0174d89b9537ef87bb7c7f8f75a0247af7af8794e4f06a327e6edab92d2e164062ffa3e9581f53bd3c1e293e7ffcfb1b075928b8611a426c5c91e23f0a82e695ec68f3f96ccc37e1d6d8a613580ccb1f1fc45a081ee6a1db85797de4610c]\n[sha = SHA-384]\n\n# tcId = 236\nct = 9a017dde820809127357c27c60a6f74742a84655a84818ca7345861a8ea91417b2a72fb30efe7446b2799d69b68fa4005b228df5bd3bf5bcc291a933f4049c82b771cc56ca54f6e8e1cc7bd5d3862dc02f45b6a531049aad09905d67be0548ff3aef2d512a37ac77d862eab112127f1a3510975fd73c9e3a9c833e910816ba2ed9e868bd1e1218ddc6325fa8d1a06c3b13bedef25e92f9eae43ffdf7c2a5066d458c3c01ff3caaea79ef301e99029320ccc77c0ff17c15ebb28ce6c08f68ea95\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 237\nct = b046864c3e5e204eeb92608d16c76670274f5547920069b34c5f174a43a41ccddbf770e5c7fce2aab7a4b18a45e2c2f897b3f63a9e082b7f027fa2a02cc0fefaf07322e46b777a069a5834e604cf5d45491601830664d844a506689a2f7299a1c443658e1f5691711d4650dd2ea5a14b0f61dac5e94e42fe4d58632c4400263da550c9407cd8bb19ff0f43fdfbd72560654dcb65db78f78f88fe758620b955415ce0e7b7612f70503e2ea4c52049d9d11b92f6721cd4ecc72e76266f3653767f\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 238\nct = 2abd9efa29fd15220bd8dfa18d058b4307fbd6d81b4f6e74198a96bf0486888ef33fdec778d6c92f1b18361fec7ce8cccf7f024ac369ec0a950f5be30896fca31942189b7667eab4c6972585c5caeaae0c8f1209870e55df3f2dab1ffd3d9873b4a4107866a597a1e7a315367e48d79df0fd11bad1e4cc20935f3ea4febe886c411368a2567096cd4332509c5ca20a3809890d4cd3ecf21d79f2842382c398989f0f63668aeddc7eef4437a62668dd853eaf96a0bdc02d38d4c454aea6ea1d30\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 239\nct = c21e5925b3cc09ae72d471c9038e21e7fe7704ca563868fb1b00123f4074ab123f3789ced5788aa655c93cd44d343c5bfb1c589ca57c35525a1eeeadcbb3bd894d68cd8d27d7405da362069117c5ff66f95d1520578e504ac431c3e1ce461bc57b4140784d56acb3907c6e2801e25fc71846967fe4b8bc9f8048f2e91bc33780a273bd83eec4c222dc7470a08c837b2b0afaa16a8ee42cd0c511892cc0ddaa5d97ec5ac32b7dacd5250affcde6eb7b7a69b56852e08f8767602bfcd0b085be20\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 240\nct = c00eff0dbe3860f13949b303419ec79257fcd41bb98498975dbf24e85921e8cf080071f4b99aa21e4aabfd7a873331b364578dfd26052d7018a879d9f236525f5b294ec37ebd7e5d9a6611eed6ce8333ae827cfc7e94fb61e407cef3ebb7f79ff2ad9b386fbfd7f171548559cf2267d54e3703314f1ca03cd7dd2e7b76b8f031236215ace860e78dfabcf92d34f1d7489322d2c80a73f9d9f4e203d74e4b505d375e1ac13655c00060dbb735b078d851b154745e5b0491b290e8486eec1df93b\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 241\nct = 245b6ab67e848879588b8bb511022d2bb6c5c03a86189f0197ea6996e12eee8a528cdd43f4845f80f84693d764ffd1a4d0efff462bf6ebbb083b6c2c7bb339a507c02548d85a5660584da838be695db7c9e0c7b0d5ca79347500c1381623f6caab249448d6dd754bf2ca301bd98946b1717f43587cb261be9a8a9e95f09fd548f99d719474d5e20be907aeef7f8d8ee4b3fb81d049a9f876c445de322676f0b21fa9c9cf814dc88c7bfa483e830d79df47da0a333f5538d3864569202148c307\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 242\nct = 4d0de66eafdeeba91c552a15112f91da7e04a23382ba23232a5b5e5d79df15474cde9443786a61649171c68cb492c84aee3f8a17a711e0de46f0fec2b7f4ef1668838dbe41e43e0ecb00ad209fe7bc4e530d75bb99ae8b69e5de5421751f83beb456bd914c598535239bef0f63a12e4b77633d0681ef14ee2ff33bd0a9a42bf77aa49c2c0d060ce49b5f033b821994e11f6f3a390756b57cb38deba8b0a0ae6a072b530cfc92425193e72e6ab28c86ec099cbbd3e4d47d3a4b521104248bc505\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 243\n# Longest valid message size\nct = 2e94cc0919948ff02b98567700e1f97fb11128719f60c70aa9df6efc5d3272bd9560d310ace4dccf4d8a32c89ec1f9f2c20a433cc25242b171ac3df86c74919198afe1a517bb6d346de7c25c2459166a42f2c4f126bd4517a7666e449308cbcd3be18fae107e6269a032b4c52eb7e4cef9ec3242c14932538d40c1e3c4e6531bacac6472ebe9e2a7e64c6e88e26ddef1221835d1ea5490a8c17378cea57c90939b56b458427164c8d2731960e9ec0c9fc990634761baaa5bc86ca31443ac6683\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 1b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[privateKeyPkcs8 = 30820395020100300d06092a864886f70d01010105000482037f3082037b0201000281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f02030100010281c01b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041", + "b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1026100ee00c43356f3af8c15a0da791724e491d7dd03afd0cd0b40f81cbce1b38a5dcd245edec03b3b112cda442b772278c2abdcf6bc8d23133e98b2596d5a61b5b3d4204e48055a33bb5aa0765b12b8bd28a9f63d1393193c295acfe4ff7bc44c67f5026100e0d4514fbd34a29a55503de9a76ebbcae7809612a8d13bb5901f6ffbd9f06c98760647306df342f77ab45395eb7a2dc2dd3763625fe9eeac9f03baa636e381168440c54473b55211d8f0f3bfc47af94e3cf4267de479e5ae3c947a1a48e25b2302605e60a76cc45a358e933509ed62a41a8f4ace359c0e6c80bdeea556b1198510d53c4af281bffb184074fcfb4f6eb7fc5a3271152bd270db2da9eb945576d19ad1cf4dbb7983df67b7f4517aa3dde604ae011b0f1c11b1ada4793411ab7e97ddd102607f04543fa953f03d22cfa77ab6a5dfa05d338f15519c8b9022b13011e7e96560a8e51918ea351173413659368c87450d1eef28cdae043a5bf9a620afc0b8bcf81c957f1d1205b12cf6140291278e9604367974b990f7b0e3c3c3da4bb93b70630260687d0174d89b9537ef87bb7c7f8f75a0247af7af8794e4f06a327e6edab92d2e164062ffa3e9581f53bd3c1e293e7ffcfb1b075928b8611a426c5c91e23f0a82e695ec68f3f96ccc37e1d6d8a613580ccb1f1fc45a081ee6a1db85797de4610c]\n[sha = SHA-384]\n\n# tcId = 244\nct = 53a35a4e8219e09c8cf0fb26bd20eb731db4618f260a54d4ee5e0b0b2ca84c955c1754274945931a9097c64082dfe7eb6d43fe19215bd7576c3ac3ce1056140734b310a1e9d99a82ff5ee53de727aab72390fb6e8f2658a1e2f7b40f212a3cb01621ecde7b876d79b539de1a4ade81106d3193fe2101cba00d4d1cbef3e1c2aff14414ef63202856039837dc8308d4daffcf92f18109038508094ffc6b432736970a6784d59196eda29bf2ac0f80689cb0eccb304f4d46489f047c0357198515\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 245\nct = 26a4da7667d5e0b87b4c853a08693dea0c86d5145c1748c7b0083fc51bb4797b61a1bfbd569c42d99f608545a4aff59bd9925714e611386c5acb8e2e4365ae030ed2d048796a288d4f788bdb65441106995f1683fc29217dae6e3269cf7bc90e1c45e59e3bec28fb116e3b4be962cbc942fb7fe0d0641c0a9397c7521d088c5f977d631013d00d3a144247359c97b857d75d3584d5b885a15ecb799a0c64e425c6ba882227a10f2b73d518b7ac04bebf9ccaa5de8b891179b0959f61bbe61a5f\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 246\nct = 091d8dd815278175e6b05f4b343b314e1ba39d49f8402f91f57abbfeeb98f3e1efa697f9c35c60c5f668491a24ad6af5285d89ed99cc89c2f4116b8cb6f083108bace85191f7a1fa49c2c37a1533c89f8b214afd7e41d7ffb7378bd00b4a86f92ed15a82b342cfa53796f3cd491d70d57a38122d5665ef399e8c69def6e8e8c87910665755da8ab7b3b2ef51b137b1418d931659cdd14cb8d8cfced3a007fde7f18ffad184f31f539ce8ad5f5b414a25363408e3a541601f9bc0730ad80727a1\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 247\nct = b2cf10264bb4f305434412de94fbbff26b05d6632ae0a6776f2fd510262d90d8b0c594a8560f52ca7b0041c840e8aaea98089f3a9b93ee888f11c85131b34713d70eab9090a63a982e2aebd4c9ea973a7b7cbac478b0270150d0f15342e451c98b29bd2ce203614a802d654ae726ac2af9181db3e3618551c7ee9d5a8d26de65eb193f03f69bbc19b0c613f72f0e9f2d64abef9941c7ee068b10cab7125c118fc53e5e3546cf0b8c9dc85ab56c23d3dcc11535b836f87320fb84f25b5d5d4fd7\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 248\nct = c8f2fc2cf33313f24661e41b2ec05ee9e90e52a39b9c1be7d7a8e3569fa8341ca5a7aaac6ff9139ecd334b42889296f9c9515ff569dc6d014a1aabdbc43de5e492909735a1c0f03b9100bd34936ff8d22e8ab35e9fccaba4ee904f3e7e38e5614d21e7a092fa0afc4ca926b66a20f077526e77d5aaa8572de2f1023dc94f8e0e4d47c85ed163fe8f4515cba4b6fd7a3017dd1c216457a586a17cc0f4369d1250f17000845ca8fc8ba652f594e89414d7dccb0f60c7901885029001412e592893\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 249\nct = 438a7bec05977e0bad0192b291b55c725196ff7f700a0ca5af596ee50814622aea9f5658cb0d1b95f7e5a8bbe7030216f00254649936f6aa71744246a1a96a84e82e8e07508c2e08a4e3fa6322aa3059aeb3eb4f18175470413f3b8f3ac70a90be952be258d1d48292967a27a4e5b723bec4fb4515ef6b2283685ae73fc4b6ef31fbbc99caecb732b327302294794164625807cf22d357786d71c9f800d142ec4078e10289de55389d6b882ba95d23635e3b4236ee00a74f2f56bd726f954ca5\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 250\nct = 56c3339e424183472f602705b7b89ab2b2e4de31b3d8c03955e76333474b9f4e90a88632c258cae99d0208258827cb78f9aa9f44ddf253ed67ab7a0ac7959eb8b8122fcf9272643f5d8e472d1db6c18637fc29b98d113a0d92c6e6da788fbe1f5ce18251351447b365780e962eb1776a4a9f55e66448fe6a2ee7b55ff297c7f971b9bb72ba2599fc0d638ffc51c7be80e19b47821db79eaea1309d88fc7d559213adb57a118e154667b977a905b948e655ed9e3f9baac53bc9164aefce09aa7b\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 251\n# Longest valid message size\nct = 9dce05444c25a92283ab284207c82193ef41b79b812bc47be3a24947b7d1d57d60633b1f9768752cdb316dff41611dcca4a6dd9eaf633eb1d09a003ede76f88423e70b2d61681d91aa8b8cfd33fd8b63af201f0b6c9ba632299c1ce39bdca80f908c2e2e37294f09be54b6884b54c029f4315aef052438522367d08765494ee34c971c28668a4d5bc6cdb8e31a59d20a71acd23724985bf568cf9f1e25b75f7e1b07ab2aecb98c7cf818e63c36e1e70791f34c2a656eb709f4d6d5d1fc059bb8\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 1b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[privateKeyPkcs8 = 30820395020100300d06092a864886f70d01010105000482037f3082037b0201000281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f02030100010281c01b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1026100ee00c43356f3af8c15a0da791724e491d7dd03afd0cd0b40f81cbce1b38a5dcd245edec03b3b112cda442b772278c2abdcf6bc8d23133e98b2596d5a61b5b3d4204e48055a33bb5aa0765b12b8bd28a9f63d1393193c295acfe4ff7bc44c67f5026100e0d4514fbd34a29a55503de9a76ebbcae7809612a8d13bb5901f6ffbd9f06c98760647306df342f77ab45395eb7a2dc2dd3763625fe9eeac9f03baa636e381168440c54473b55211d8f0f3bfc47af94e3cf4267de479e5ae3c947a1a48e25b2302605e60a76cc45a358e933509ed62a41a8f4ace359c0e6c80bdeea556b1198510d53c4af281bffb184074fcfb4f6eb7fc5a3271152bd270db2da9eb945576d19ad1cf4dbb7983df67b7f4517aa3dde604ae011b0f1c11b1ada4793411ab7e97ddd102607f04543fa953f03d22cfa77ab6a5dfa05d338f15519c8b9022b13011e7e96560a8e51918ea351173413659368c87450d1eef28cdae043a5bf9a620afc0b8bcf81c957f1d1205b12cf6140291278e9604367974b990f7b0e3c3c3da4bb93b70630260687d0174d89b9537ef87bb7c7f8f75a0247af7af8794e4f06a327e6edab92d2e164062ffa3e9581f53bd3c1e293e7ffcfb1b075928b8611a426c5c91e23f0a82e695ec68f3f96ccc37e1d6d8a613580ccb1f1fc45a081ee6a1db85797de4610c]\n[sha = SHA-384]\n\n# tcId = 252\nct = 406b9d134e032a7fe99eb9d3a104b69c1bd16f9f412c14df6af63a5f352525718cb747c0fe46b201bc264035630d55c71c4d394f46ae734c1268fff6492283e7a6a6f53d7ce3abb1a33449a96d6ac851c1ee12907c7f3cd30b29f313bfc3263dadead8e2bd133f70e17da6d072c1e4adb54c5bd75be0cdb4cb9218a5fca78e8009876370e47cdf312cbb63f1b309822c7c59f9ccdc5e21a3b5cf04a9a25d7470581a19f213f8d3", + "6c620cf707de612342dc0df1312ab706570a2e19f8f04f9aff\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 253\nct = 84b19a1ef7c2e36b572d021e64b8ce2f46cc6867748864ce5f33708137937d5bca498a4dbf84215ce5b0056c664a1ae6209fce8abd1ab219585113ec393219a5ea88d987272c2341574eab54bd1e4752e2396b38b0f4d198b50a148d014c91f90168d093ea8be3fc68e03ea7fce8c9e813f2232695f1c9c5e95ea86573f7e93ff19630aa2d06b81f1c9af154984c87a13df64000036fecda0af7c076897af2c9e8538ad961e2752b860dcf77fb10c818d5c583663557430b46d577e039a88d4f\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 254\nct = 16f18b718d3a96b83eb496fff56f45e01ef776609dce62208e1bae8e11f6ba71ff4a90f0194a41d9221fa6be48fa1e58a8e6d6677b67f4d3776b889b1fb077eca69eb32cb018b5856f96ae75eeb91bcd7d81e7e4d53881e4aba2c0055c9b99e7aa46fa9aaae35811448b22691b8efdb923d79820ed18b020a59d2f372526b8e8e6648f47d32304673b542caefa6139e6dd9363adaf942a9ad2d67d1f517d4ab57422bb166651d6823673b5d75cc73bdc63d5eb3de00d17292f4e18eb55a840c3\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 255\nct = b5f17081860de6936e8858f07d623a224e63642f39b1ae509693ce13010de149d6c0690f64116c74ed1e2020c6bf3a7e7d348783b976126173c3558968965a5f7d647ba995e3603ff156ea54830ef708f338d297fea86b6b757ba5acf0642044bc0d62528c2cdd87627a4429e0f03caf81437d4e6704171ac50fb7a1517828f38b2a54fe8379591c31584e4eedf06440abee2c896b91cc99648deb662a92095b528315b068478dfdff31e82f8ff15f5172c57784621a2579ca2b02946979fc54\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 256\nct = 5f3bbf46122f11ce56347d6d3fa0e510c18815c4daea31296de83d49cf892b01611e8821d2f2098e4770f2de949b9fcda3e79ba24c74d0530e45fd3249be70f54ff7c6f822c90b1de143dbc9f3e0001e8d4b8ba74f047adf1a8fa7af68c2b5ef06d057b9948397148d585847bcdf23ebcc53e87893defc25000ba32b2f306878fdc98a64db5e1b955b8412e6d960963685d04cf6ca0993a197f785d0531ff6930ab0f401ce744c5b25becf62b0837fd9a1c0d6ea08f4dcf3297aa321651370a6\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 257\nct = 793583786f15b14febaeeb39473d5c80153ea675f8d9f1041ae869640a9c7604e2deca027bba361fcf2ce4f7506e65e30135424aa15e99bfe62a6870e2ed1e4ec580414876eee36ab51da54594169e7192b4bcf56a3e3d544a795ef4a184f5b29f36d860f5362fb99ebab8c474d0b153baa713869c8e05144f775bc9524aa1a66981e22db47980494257607364d0982def2e5e2a7fb741bd50c0142e4f1defc5318fdb436c56955b8def0bc988df22c88e94bc06eb0f93d5f36aa8eb3c068fb1\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 258\nct = 7caa520126e8560d7e2df85d9edbff98230548a7f522004f389e7acdbbb0e3de911e156bb6c2edb852a14246bbe6c3633365aa5a7cad96662b962d9f42225ba9bce7422d38086ac3f75514609b52ffe71f0cf7b9e29f80289d186f2349967a64e1983a785a1750301f971f734202d47b642d4196cdbfa81757a0127664b788886a4ebaf91e44778f8bcdd17fd2e5c36a00fff058c808d01989f21cc0ee9da839335f950ef0ab7255d9bd397b8b4218a8e5d871cd0a966107729e6818dc3713ea\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 259\n# Longest valid message size\nct = 1522039806ae6511599bd91cc94f414d5fb88253fc98a902e63cdd89013c2eddd5fef6a8d95bd7a7506efb31c28966373d85e1e0dd3281305d6defab3fd5517738d2d5abbd2e1e9e25f01f76adfcad605a8f6670ae2328338598c6d8925b478ca2e3aa1af07b283351d1ebeb3ca029519f7ed2c415ad6b567a4567a66e26d98f6c24a83a1bae85c6b23f613ee1bb07f725f14db72d96f68a7855c38106c140d241965bcbaaf1ad5af1476517446727ad826e6055c18941ab09fe5e97b82f1b8b\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 1b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[privateKeyPkcs8 = 30820395020100300d06092a864886f70d01010105000482037f3082037b0201000281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f02030100010281c01b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1026100ee00c43356f3af8c15a0da791724e491d7dd03afd0cd0b40f81cbce1b38a5dcd245edec03b3b112cda442b772278c2abdcf6bc8d23133e98b2596d5a61b5b3d4204e48055a33bb5aa0765b12b8bd28a9f63d1393193c295acfe4ff7bc44c67f5026100e0d4514fbd34a29a55503de9a76ebbcae7809612a8d13bb5901f6ffbd9f06c98760647306df342f77ab45395eb7a2dc2dd3763625fe9eeac9f03baa636e381168440c54473b55211d8f0f3bfc47af94e3cf4267de479e5ae3c947a1a48e25b2302605e60a76cc45a358e933509ed62a41a8f4ace359c0e6c80bdeea556b1198510d53c4af281bffb184074fcfb4f6eb7fc5a3271152bd270db2da9eb945576d19ad1cf4dbb7983df67b7f4517aa3dde604ae011b0f1c11b1ada4793411ab7e97ddd102607f04543fa953f03d22cfa77ab6a5dfa05d338f15519c8b9022b13011e7e96560a8e51918ea351173413659368c87450d1eef28cdae043a5bf9a620afc0b8bcf81c957f1d1205b12cf6140291278e9604367974b990f7b0e3c3c3da4bb93b70630260687d0174d89b9537ef87bb7c7f8f75a0247af7af8794e4f06a327e6edab92d2e164062ffa3e9581f53bd3c1e293e7ffcfb1b075928b8611a426c5c91e23f0a82e695ec68f3f96ccc37e1d6d8a613580ccb1f1fc45a081ee6a1db85797de4610c]\n[sha = SHA-384]\n\n# tcId = 260\nct = 4eeb35789fe3ff1aab3f49776f223f1df314a54716535ed45f23e31991d5cec827bf99734fbab236a6fad0c0d6e57ab7f734a6725e35473884c77c5119d163daf9b8fb101b90f7181b1be4e822cad677ddeb9e88419b539ecbc72d573795143b38a5606a6fb5802eb469a7b0b67222d11ab8c7e895c862c4f04aa8057a217be0a838b34602fa04d68a0607b70edbe24f8c4f1f0cf91b0a96be9ca17b176d4b5e967eafc2729e0f5056bb14fe3d4cf40a805dd7e5a544dfc4fbe1a52735eaf5f5\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 261\nct = 0ea0bfe59acbf6b49cc22bb72de5df8287785f3a88ac6666e8d6d378f27f619c4eb371e557347e50a7d75582c81dbd4cd5805fca9c2178c55ef6b2f6db08d486f4f9b285df707998fbf4ad778cdcd55c872743a77936a4e945c32895e74eac1e5da1eec8bc0d1b1ed2d7305d082e2967f39a2e06d7920e1a91a699d93cbe9fa12d548ce447b8650b8ab2a76b4fd4c458e1974526efcc2d23c7344e9b4b06a2c696d4b9abcc8cc20e9011eb5d4f68acb345617e353cf77e46342e52740d8c2e28\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 262\nct = 0ae6df7e027f3c1bf890fcf6a3f2ffa2759f0b2d2b71fdcf1dc87174d9043f0d6e870d91e65e9c155cc8e06e472e80f1245efc7945347cb4e73576b2aabf7d62a77b91366f816e6ab4a4ab48d77ca983bf9476513f55828af057ebccb3433c2ad0a37c2c546d31745fb8f09febe7d6a9d0a58b3ab41cb32c06a44d154231d8a79be489ada34ff3afabd36061baf77e4196542bb7a0ce3be982a5dcca13450f9caebfd3d05b596e979038656e49d1afebe96e7c52afded1fc50d3976a9c77a228\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 263\nct = 4c875f20045d0a08dc3a35c0c8280fd9843ead04e89bc3915c008c25833f0fa3f6fd091ce3e5d5e116e10c21918a40569aa7715d1e0740fe4c589ea7e9c264d99344a0f3668f080ac295a6079552b5ea4cd08cdc2d0aa5755b697aff326a14cb562bac5837ead5de6429ca87e4aab5522a6f88a021996fe395346e8cb0dd437a1648800daee987830b7e8cb26bd8cb1e6c50d8def2f5b408375d7ec9ce2f03f3f2d9", + "fb0d0ccc3563f097de9b0f18eff83fb9de099c6d6b490f94ebe55badcce2\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 264\nct = 1be693aa4e18752145fbe64d357e885feb28bd9537ed2e268fb56c1844d65946982b0eb3e949d674464efb9c955c28c64fc0e165b1f0a1650e818ea415d4def063a2d9c2891aba25c884a9c91ed4ec6090ac7a5063324285e589e6ddddb219b63927f86348924019820afa93802db044fdea1a2d050a2e199db18efca7cd4b32b4cf8e08f1d9f5f9e8dabff923dee5c150eccacfaf6c7a1ba6741ed6adf89ccb6a8a2b0fccc33b4f3a377a397a0dc58d9c72514e572b0437a4f212f956856b85\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 265\nct = 641341abb936dd8d094db8319b7457454e29ab29a215c6abbd3bf90f96534428f658f7317192cac0605dfeea4ef0842d14e0089fa74d488dde188104f78a9192fd141f5d97f7bfa3dba2f28f041b282ce4db6ed13131786e994b175b4fc0ec56efaaf70a769a4354ce48bdeb678c172c11ad27f23518dbca0fc2cf9d3342e371946a442384be8a1563ef9f90c4f6111e504874ce7b7a0897c7f7887a4a763e71d4e67c4e3499e3fc227139598648d0744a3e4b47f80239090e94aae8c96120ff\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 266\nct = 9f4cfc557885200a706bf5f4f943e090be1bc824f6961c052d924a160b539d18270b85d997e0f14edf6d5c3a38e291ba28605561464fb5358d153dc0c11171e14b2844a9471b225c86d459a24194a9f46c3d5998d9cc0fd184d2d365a8ca2b4e34a3a26b6d4d3f4bb34faa1c4d54d4b77e2b3a14dd6c69fe3b65df59502ebf5f4b163e388421b98ae5508c8917d9efb7d1c21f680c685d9b6697195b99d01ea452953c62d3a5b5c39f87dc87522ab749aff030e16777647d97d7fac8e7247df9\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 267\n# Longest valid message size\nct = 1e1e7fd7ba86f88569192f96b4310c45400a04166762d014ccb3dec5b38479257a7f25595fd61871f3db426096734aa511223c7e7cf7ae4a3cbf2c594579726c2efcf3785b31cc4e422233b05ac2e48c3c2f3afde8a04f668b95385a2b3a89fab7b9d2f015f94d441943b5b7fa45c3b49bcb5440607aa9aa1addfcf4f8a96bff8e796103b3bf90679a73be1ef65771bb978ed9b05a38cc31d6b7dc6b314eccbc85a04d02d9669c1194f44c6629153935923174b3839bf637be30f05c1d4f6031\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 1b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[privateKeyPkcs8 = 30820395020100300d06092a864886f70d01010105000482037f3082037b0201000281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f02030100010281c01b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1026100ee00c43356f3af8c15a0da791724e491d7dd03afd0cd0b40f81cbce1b38a5dcd245edec03b3b112cda442b772278c2abdcf6bc8d23133e98b2596d5a61b5b3d4204e48055a33bb5aa0765b12b8bd28a9f63d1393193c295acfe4ff7bc44c67f5026100e0d4514fbd34a29a55503de9a76ebbcae7809612a8d13bb5901f6ffbd9f06c98760647306df342f77ab45395eb7a2dc2dd3763625fe9eeac9f03baa636e381168440c54473b55211d8f0f3bfc47af94e3cf4267de479e5ae3c947a1a48e25b2302605e60a76cc45a358e933509ed62a41a8f4ace359c0e6c80bdeea556b1198510d53c4af281bffb184074fcfb4f6eb7fc5a3271152bd270db2da9eb945576d19ad1cf4dbb7983df67b7f4517aa3dde604ae011b0f1c11b1ada4793411ab7e97ddd102607f04543fa953f03d22cfa77ab6a5dfa05d338f15519c8b9022b13011e7e96560a8e51918ea351173413659368c87450d1eef28cdae043a5bf9a620afc0b8bcf81c957f1d1205b12cf6140291278e9604367974b990f7b0e3c3c3da4bb93b70630260687d0174d89b9537ef87bb7c7f8f75a0247af7af8794e4f06a327e6edab92d2e164062ffa3e9581f53bd3c1e293e7ffcfb1b075928b8611a426c5c91e23f0a82e695ec68f3f96ccc37e1d6d8a613580ccb1f1fc45a081ee6a1db85797de4610c]\n[sha = SHA-384]\n\n# tcId = 268\nct = 11b37d2419607d7b8cc36ae119ef98e4cfb694d090712194756b16f8394fe1f9018c19bc1c8a860b017e4c17052c4f7c10f47b6b8390ba7de9ddff52bf17b1645850ff4704e58dbb52f75182788917b470d440cdbd2e6e2f0ae74e456da62594e11e01342fb162787cb5ba72395182dad0c95e57633f800af342da272173462135956421c73f50e158017114d1d4caf2742b4f720c5030d770adb03336004fc0958bb11cbf4e1d5ca83a4dacdec3df5fc4ccd4e95e92cf5adabe9cdd1325f8c8\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 269\nct = 51caaeb4f568bec615be7f2d53bb13033b2ee83a304a20cdd91db4ead548c557c42e7fd6862fc54ab042179cd4a9d5dc387e4efa1fb7ed715e2626e954af0982cb195e6a95be9ccb08108f693b25bc3e0330bc2c537445617543b496dbc1346c088bce827b4e40554fd8d63218d21234b29b71b3885dd0e026f15997fd5f085900d419fe681c1547948d23dda8b795a14ba58879e3f1eff662ca6a5dd63d71a88f2136fb8f33fb4cff6a07f188958078dade5f43a0de5dd5dfcbee9177bca325\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 270\nct = bde48d0c0fba6a2898a4621850bead9af38f8e28c04723bf93254cfe635eaf47461958e1597e48fd58e84acacb58934dd9072041e463d593a8ead2397298de5c653c73bc2366e7d234d86dbd719b0dabf9d7711caa7efb0819297ac26f49bc0c67efce2abd9a1c042f54a28b744013851d0dac6d813e758be129f8681865efd4a7ddcc7a200e6190330c4049a25c8d221fb87687e2cc7666555ce29681b623e890b46ff3c10e9e63769e2082fd5f241a1bf562d1f202ce575ad7e09f3838a0de\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 271\nct = 46fef13374b208c3946e1cae42123c30278fb1743627342ed7e138a533e5d6883646df0207f9c8c0681664f66fe01d9e90e755ca16694beba3add3c8c697cec81a0a817944048ef515e8e4aed6d9ce380c570a4737abe06e221eed3d47a8e980284d42d5860408eeca703db3333eb0e778fa06f74867a2bb69fa32b77985e611faa74ed0be98ab08c76ca58d27f4944381680983508002ee4e35bf27f47777e100fd1f38a14a2b8e8cce39a27555a710143653eee8860e8e9eddaab9f532e852\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 272\nct = 1aff01c27f7b026184e996277190bfbeb15a418e8abaa9f092524b7b6cb4137652b3728b6d61a4dbd6b88ba307bd9d2140352dbb6066eef3ab45acb73f1b442cd728d0a932e917dad3092db2de73b38681357ec0cb2bfa5b7f31e8196f0f006d676432b592defeda4789ab0319b2e5ddf16771c0299d00d9487513ae5e629935b8033579c620e2e2bb7f286e21028a5ee9fd03ed38e4d475bf99e8eca4cce7c4e40501ca43377438c07e38be6eb4fff1578d3243cb919259fe574828729a1b5e\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 273\nct = 402ec80a8d4e741d60bb8b4704a28c00fcff0c1544150220426107cbba18ce9b572776c925675a2c1ce1ec242e21dfd78e9a555e152fd2d36635587e0d5ab523c146b22cfe1213a6f59ff967f8bd2ee6df56cee458a161b08a22df3a54dc40e5f534d684e579fc6bd4564f999f420a112456a7ec42f5e28229e9cef69249ecc80bbd776c35ed5725dd56bc507ef206c8d399f490741f96623fed10308b1ce7525f691eed8ed8282251ff92de150dd1eb074919e74f44ed2b081e9069fb7f309f\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 274\nct = 35afa6430b7b255ac515b92e30bf4717bf989133642c00c2ba9b3db5f485da08cfd0771c75e98365cb4edfa4eb7c68546a223e572301dc6c9419d69b47c8315342aa4c650bf8b414f2eea5d2d6227afe954ca2ef3cf64bd51f77e6e5da49736ec72b691532dac739bf4db9081cdc4c7ef0489ab350bdc11195d8207f854690b05c702301ec127817be6aa31aa82f18fd543b0bdd2d3493d59602e78ca5cd798c55ca8f7f2b8e06", + "0d4337cc5dbcb9d8a9dc00ae84a9eeed350237e2eac990ce33\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 275\n# Longest valid message size\nct = bc7fe9136ce18763f3fed05baa3ae2903da259c8a4555be0b7fa84e9de1911fe1fb47f60b11992df48240afc90e6ec07323e14584e9c0302fba8898650e732a16b4b26ca0902198cbdcfe1ff6ec429d914466db153d5257f8f1c09785cc284d5b6a486e0c4c221480030b6c425b483e4ac6109a546317b8deeccc3fa9ad3551c15ed4c13af8d8d7017476262d8cfc6b8e97c832292f3ac40c7cf884c0c73c4e5a30dff02d05b268f1020116a9869e99b6cfd4c9022a9e500570954fc451890bf\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[privateKeyPkcs8 = 30820399020100300d06092a864886f70d0101010500048203833082037f0201000281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e902030100010281c1008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81026100eb6b28e97c190ade38002d738eeed3479ab199d4eb9012de14eda58d7819a2ab07a903a286ea5e689412089200220a3876732271ddfe3a27ef19b37005ccd57aa02bca3ace160c9246ff282c7cd5fe72a32c31e9718e6661908aee67f2f572d1026100e44e12b7e2476fb08db8c536af017f76c392af55144146bbd55ee890b68d464779fad4b24161b0a57a611f86b5c21fe87b84126e11de9719a0e626f34ada3ea661fe219814d3c59719862ce0edfcd238f75cfc32daee448b7050c6f62243989902610082e89ce070f48ff990147131d02a77ec5a56261fa33a0373e1196134f0b2f8a4b866c0b1b0ea44c34c8b569eb15a3c6ab75b40ad26efc6b10c213389b87ff5b9f1b54808392f43a057c06d3b87d38b617de10684347425f45ce714b952fe2ff1026100a40cc5be844638a770eeb82757118879da86689e85f371d43eb9f7fb2471d7723ce0543dd26553fd5436bde49a6e67673279f0944f1ad7107f6161d3a891b23af4671bd4a0029c14bb2e82c90db981859599a74f13a9ea6f17c1b375e1a118e1026100b60b29e2407e938824820a5412f0f5a8c568f2a356df31b669a8afec89ea2ff34ccc9dcb6f962b76ad02db94ff9cb4cfc0f99928373fbd6a9923b912a39ef9fd7ab9074e97b938396a2f5fca0b0ee732fd0215999e5049798b338ac891b46c8a]\n[sha = SHA-512]\n\n# tcId = 276\nct = 94ef261c45770d06e0241fe81d66a823d7264640fcd7a46197330acca7449fa0e9b6a7efc999af48d761b48faa73919fef0fb2c30d4b590aa874b3a9b4aa57c2d641fedecf64893cdd43f8d5cd546f6f60a2cb4e0790c0179e3ada122573d346a1b5d3b1b109d9062d02267c36b483648bff3a19ffd7b02885b4b0579ec86dcacaebef18e0e7106d5c948fc27c3082908bb52ecdfec22c10e65d6b5a684651de3dbd7fbd154b8e277a106d11bdcacf4b764ba691944ca99b10cb01c1dd6b4350\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 277\nct = b83bbc3d97794203e5deae6209cbfec4d6b2854a38b14480e17fedf6efd78386ea0b929cc9299a3c5a9d07c0962ac1296ff5bbea472d84ca18c98d81f5ec361bc82e82bed2d07475fdf64ce56156be94d13547e961b6bba4f373ef5d0c2402a67e8a9309eeda8c2ff9bd49cb1f75b4dede921a2c67423dd868679c6c012ed61b6c875b6440939d299f28555836a043ef351c74cfa30dc0bda91971d92a086661628029cff6d3ae7b876610f18222b9d63c71e87cde899b2d511a78c2986e5985\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 278\nct = 66e6cc479c5adc44beb8d94c604720cb0a40417747838eff6fd089a1156c725bab56cbdeb7193f2c763db34f2180b7a1aa20b77b83f2fa2f2c983f880599b37fd5e9bcbefd3a9678b2b91f3988d141efea335ffc1df89c4076135c41733c9977572cfd97a52679dac3039c781ddbcfd5f28e6322051a83c92449e89e531ce1c2724fab763ed853a45b9d7c4d1eea17c8f5c14980b26a24f7037c9f118244d895da83df104eb6d9221cc5fd88f249e3f134077fecaa90ff2d06c3ac4c4cbbdcc6\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 279\nct = 44f7c180343a2f16f80baa47d2fef38d6cf1a5ddab89171f85504c362c7fed8c2328a961856986c59fd3224460ed7c32b342473e7904b0e46be2c3c757262890d3bf86a2ba8d9d6ad59ae4b934256d7b0000f9f23cc7845b5119d37ed58ad3aedd7940d45e9640f20a4e41af15e00f733e93fdcdaebfaad173d2267cdf151d5766e4c7e6d64a5552de257be71cace73d30d8fb4abfbb301ca73dfd3347b277ab4054ef5afb66183eea1d4b0dbaabe6c5b4b24be4efcc3b0e19f89d663906ca32\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 280\nct = 0835eb89c071ff15f4ea203df3a7afeaff299062f05e74b9a28a84dcd4e07245cc9ab16614901161e543f42eb81c1dbfbed3a2597e559b99644ae7bc187f6638e45f89e7dfb6737dadfe67f09a41993a38300e5f6d07db09edf3937cf8c017daf57e3b2cf018a963cda69cad364ce88b23b66f67cde4384b0b09b6c5c0389c68c32485a848a2e23f0b033f691d1d9793f31017f8b327c233c2286ea06f4d42024d3aa5cf8588fec89ce3b69081206dae6d85ce01c61031c982af47fe7e468885\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 281\nct = 2bcf1475ec8fb5e330ee7d67e91805202f8fa7a317b0f852fe6d6084c0c977e252743d40fd51328ff68a35bfef767aec1130dcdc28bfa0c3147bf2e07e94032ac495918cba4be10bb47f4dc298804de5e024c1d8dee22530470e203e16aff80ddb5c2d4575d71e3ca80974fca72e75aa4802d4d2b4e25e3480f76356d560fafcab0e4bc385fe90950b213072ac113a83e5e8b0704b721af140a6242188b71d1f2646b27939b69b7966adf1998db6b07029778ed2c2256dd32c316cff1a2aa71f\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 282\nct = 04f6021ce1659d10dd27163c9684f0a577c4bb72b14d54c78bd5f35164af962c1f2aae5414396480d07b9492ec4967f60045398a41904b4d90da86bae4b30f674a8808142b0a07ea8493cb569b03ebe64ccd2935d97db11f451f9722b056275901792b6433cefc3bd4697854be4e12a772e44d451b07c4643fd7bd8129a51b39c00d1507a9c9cf14d27e5ec8da389e85f32aca690472e82a73ef1a05756d6cea2507ad9fd48892cdee5ae7ac2cfbaad27194ce78a0a72126a2b6b04c260f4a69\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 283\n# Longest valid message size\nct = 14a372d4a2208e5af42a359784a2638ed9609569c43992d7e3328de6cfb6e2774d44fdd1b69f62e5ef9da3efd7b344c3ebb71da0b46104b7d96f11e0bf735b924f9d960e5007d145bdfa5436408f518a6000dc76075efe9bc06ef988dd0e85916cae75a17b4dd6ab3f101281412ef014256235043a8357a20b76e3cb4eb5ea21f758f3aef2f3c0f98223e922599a836893aa91ca60d2138a5f8a5e41bab2f603c13b70e74738353f4bbf02929b95a9a0d8c184b7f45a8476d82ae1f18fca40e1\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0", + "de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[privateKeyPkcs8 = 30820399020100300d06092a864886f70d0101010500048203833082037f0201000281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e902030100010281c1008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81026100eb6b28e97c190ade38002d738eeed3479ab199d4eb9012de14eda58d7819a2ab07a903a286ea5e689412089200220a3876732271ddfe3a27ef19b37005ccd57aa02bca3ace160c9246ff282c7cd5fe72a32c31e9718e6661908aee67f2f572d1026100e44e12b7e2476fb08db8c536af017f76c392af55144146bbd55ee890b68d464779fad4b24161b0a57a611f86b5c21fe87b84126e11de9719a0e626f34ada3ea661fe219814d3c59719862ce0edfcd238f75cfc32daee448b7050c6f62243989902610082e89ce070f48ff990147131d02a77ec5a56261fa33a0373e1196134f0b2f8a4b866c0b1b0ea44c34c8b569eb15a3c6ab75b40ad26efc6b10c213389b87ff5b9f1b54808392f43a057c06d3b87d38b617de10684347425f45ce714b952fe2ff1026100a40cc5be844638a770eeb82757118879da86689e85f371d43eb9f7fb2471d7723ce0543dd26553fd5436bde49a6e67673279f0944f1ad7107f6161d3a891b23af4671bd4a0029c14bb2e82c90db981859599a74f13a9ea6f17c1b375e1a118e1026100b60b29e2407e938824820a5412f0f5a8c568f2a356df31b669a8afec89ea2ff34ccc9dcb6f962b76ad02db94ff9cb4cfc0f99928373fbd6a9923b912a39ef9fd7ab9074e97b938396a2f5fca0b0ee732fd0215999e5049798b338ac891b46c8a]\n[sha = SHA-512]\n\n# tcId = 284\nct = 3de5339613e27868f1764242c2b5392069be1b8e4b43beb90706f77ba964f5c3a082e5d1042ec5234c894914a49172dce0c142ac45579f5931b64627fa0cf3360f672c828e61501e51c3545426eb5b64cde0faa9d2ed4299ee66dfb8f37132bd7056ddfb831b8c3286799e8177889ff8faa497bdd0d6dfac3df04550c1c9e5e057fce788961091bbfaf88e2bdcf39f1e618deea621f0bbe254dfb9f485b6ead47f10c6691062faf3eedd4b1babd72673621054ea79f467695acc41dca284f7c3\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 285\nct = c6285f516d8d253e0bc2f532a9db7c6e6bf3acb9108714db06b67308b5cb90d31541d59f47bad98d0e3d898120e5dc1505853aa2b1856f8ba7fcb58d621b35b79ba8808335858731d0d9b853ab74c58d9b8307c19b851dc8dae2dad77d9f386a31b465d8bc732201359fe39e3b7d0a92b4619a65ea9963579f6c725ab280d995acc3b6bc67ad10bdebaa603519433adb58e0ee88599d7e698b117dfa2e35e67ea53c96ed6b6e0580af9a01079628161a0fdf686455a9f4ff142645b409454933\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 286\nct = c8fc364783e5c25d9d127a602260000543de2106493f5d38697cf7af5bc3bcc111392c42b4934a3c5e4e38da558939c146cc47ae67bd6d1b42d3c525d2f37554f03a1d9b87c12d74835013192cbc3456308e0197ff0e7e41b4a3c22c3bb1a70c16be8ecb19f9d372be0cef589d934dc7741d6019787643b4550d627b006faed9a20ed239cc62f28fe0a056bd7cdceb3f04d3abf3259af88438adda70785b85198fc63ff92afc1aa71cd80d9eafd0f24183046750733eae2fe400e9c2f767e738\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 287\nct = 7921d275f00faf5aeb9a4a9a2982998e4cd9a114529d52cbd12ff2c520498a8746056b6a8bb637c594b1bd6ff50d2777aafe5effd193802e0a9bc430731c8cc1128e9a943b4a14f0d24f5cdc32ec1c2f3da8af7bd935417f5ca6943a858cb6101763d3aea3ed3e6cbab2376c7a7f1c80312561b2ddadc0cd6f34dd8cade4d03562e2563399048c04b4325d0d44b73ecafadc8a081ace30d9e602ac543e9e2bd8cc70979251af1cf297f08d766262ebb24cd502584324cf0a64806b4b66bb32b6\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 288\nct = 7cc8e65dcfff10d95f35e33f3d3e81e0fbd393c480bd3f1da3b2c90e945dd18dd22c7924bdd6af52ba9696fab377e776a64b6df2d65470b9d46d52ee914c66e142c1b24c030133bee2a8807e2c176a0e18f638fb8e7e46e7bbfbd77c7df0de7010812c6faa949146a43273d2eb9f782c28fc81e88f72c69a444ee98049314d677207a2a06651ac8d0244bca9bbe69ab3cc877c4b6e35a6e85eb05035a67fe674cf58801c2027827cc7883412725b1e82749f4e5d02202dce8ede2b9cb166de27\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 289\nct = 3120c4aa8b1d1f1a9f58a4c543923ef65c3d84ddbd582fff38edb86dd08b4f35731b34fcc188deebff4a1a1364e688a34536e1ddeef8bfa1f172924c909941e74809f80901ad9d0156046a527c60d6f6e4e680fa73533a3575b251409d15444a1872778b4b87988dac080036f4633a69d49083614fa7d77abe14138bad72e5035cf0bb4a0fdcb6a49d53ccbadafa2f1e835cc56ff2ecc5aa3ab44f279b076993ec543494f67f2714e423d4a73deed5a2675b6d70246633bf4806791497db0377\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 290\nct = 444f583744275e2951790f623f664371bfa635a4fa507bdb643b86d1aedc5f7874a770a043d28e4bda837e641ecfedd6f4b2aeb5d36a53988cd11b4696cb84aaa47b700ab9a44511660686db98cf48ec0af603bad8d1f7d02587d94597ca05240c2689538945586de26ecdf1a0546cd975eee47607e208260d7654ffa2aa9cb5e7bb6e1c69185ee754515a71246c231535ce7225ac94c0f30d494452baeb9658f9138d598553312386e1e3167ca425673359ba1ff3b203ef908f6cfb6e115e22\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 291\n# Longest valid message size\nct = 1049dc4e5409338befc1b435ab4b3852f442d8f6f6654f4326980facb7d5f4c7b44873064ce047974dd5455cc858251f031b9eea6f0a1708e164f19f1334d67b77de560aed6649cc3316d908b65b5689c6d37553565c14fe7ee59126753a93f61f379a30469b356bad4be3e944561866c117dc10f67cdfc57c3ceda12347323eb13cd08b662c1bb72b44ee719814c846a59a18981e785ec9e5c68b8e60aef46b3a76b9d5a68e1b05346916cecff3e97da56888589caaebe25edf037b55d6e3fd\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[privateKeyPkcs8 = 30820399020100300d06092a864886f70d0101010500048203833082037f0201000281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e902030100010281c1008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81026100eb6b28e97c190ade38002d738eeed3479ab199d4eb9012de14eda58d7819a2ab07a903a286ea5e689412089200220a3876732271ddfe3a27ef19b37005ccd57aa02bca3ace160c9246ff282c7cd5fe72a32c31e9718e6661908aee67f2f572d1026100e44e12b7e2476fb08db8c536af017f76c392af55144146bbd55ee890b68d464779fad4b24161b0a57a611f86b5c21fe87b84126e11de9719a0e626f34ada3ea661fe219814d3c59719862ce0edfcd238f75cfc32da", + "ee448b7050c6f62243989902610082e89ce070f48ff990147131d02a77ec5a56261fa33a0373e1196134f0b2f8a4b866c0b1b0ea44c34c8b569eb15a3c6ab75b40ad26efc6b10c213389b87ff5b9f1b54808392f43a057c06d3b87d38b617de10684347425f45ce714b952fe2ff1026100a40cc5be844638a770eeb82757118879da86689e85f371d43eb9f7fb2471d7723ce0543dd26553fd5436bde49a6e67673279f0944f1ad7107f6161d3a891b23af4671bd4a0029c14bb2e82c90db981859599a74f13a9ea6f17c1b375e1a118e1026100b60b29e2407e938824820a5412f0f5a8c568f2a356df31b669a8afec89ea2ff34ccc9dcb6f962b76ad02db94ff9cb4cfc0f99928373fbd6a9923b912a39ef9fd7ab9074e97b938396a2f5fca0b0ee732fd0215999e5049798b338ac891b46c8a]\n[sha = SHA-512]\n\n# tcId = 292\nct = 2b7085acc1e893d32c2e203687b5a90d1db89b7176267f9f4eab4ee52acd73e43b7f956deb66512d39f8db19868827b6cf9344ac0c760ba8b5e6a1ae6a76d03cac6a1d5b80ccbd4a3b0c7227bddba72eb34d78afa4ac867b9bb65282a24099f10b113c0f7faa2928ebdb3267e287aaec2ada02abd02339ee8954ed36cd451f67313446f215f7e8bb6e077135381331dd114375297cf4e7e17d2316a28bf7d76e3f59c022099907e0917276d5d674ae938c37874c13c95fb6ef3476c9ed9f0d24\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 293\nct = 3721af30423c06bcb28a12dadb49a5d70f0d48fd951bb067763a71d0d163146433c2237ad296cf50048adb7b6f5ac7c177e59a58d6e66a253c550ebeda08930cf9c33624cb7823ff55f064709bda37d806a13379a6d197ad10767e4d52786f6b386f288a159d42ce516483c7b70db9c531b2fe1c94ca047140743ce64f1aff1d5baa97c2498a176093a1fe825db60e3eaca5db792fbd044afa8e578c726350df070f91be82c3041d2a88aeae3792324afc6f7f6325cd6cc62224b5ab741dd1e1\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 294\nct = 624c1823ca0b48b12e5740ab88bef8ca5918596eb033bebb53dfe53cff0e6c14c2361daab7b4db696ff7b44fe4fe62618c8cfc1b66579bf729110bc42ef2733ad2ce36d240782378a9798eda96dc4887382931d10c35359d03d5ac525f2ef2a05255db9dede82c3e7d3e898483f4dfa69cc54ab8964df923db2b23db900d385e8b16340f9a10a6c31f08104facb55be66e60d6b4338f23df84ec48798ea24a6a142aab431db272be0218caf9f0783528600cb344c08de643635d63264043708d\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 295\nct = 41da80388f08374d8c06fc95b3d5ebcaa795a3be3b07b5d575d7747f5d2526580a97910198ed97578299007adece6beb2b52119a9ae27f318823fe61ed45c0249e468e101ab47322ab09015f7bc91cad412030aba1f17f9ef06f746a2af09290de7e212c82ca0556ef6dd5bb90545da71f7a6716ba1ae21983afd25d397eb1b8464ea86b1f770a800166429c5c81cd59674cd7c50ddbe5164eebe9be8f6d59de2aa6c18cffde60c6956be6c3453b4c1c10b11eb27d2372cbb32f91a166c3d3bf\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 296\nct = 310357cc872ae415d4ad120ceff873ded2cf2a888e15478245adf4a094ce945fedbf57230719e069f77a58db1f414956f24ec67a8aba982dd9f6a79fca45f54177683a614d0c6218d7521289ee43ccab0a72ea00b05e9396090218a1813963d35a7fe357eb1b09936539d43ae46c39dbdd4dcf19b55252ff49cf0878dd873bd528df694b77b0d99ea15f13753e5f59b8458994bb08bbcfc477e143a4376103c81efddb319382f2b5dfe9faf0331f25bd9458946d102445e9cd931f9b71bccd59\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 297\nct = c1afcdee1b155ba0ebd0cb743dbda76c69e87fb0f015f63425e05835331e585dc459187aa6e81925e2c1b295c2751e8da98cbc447b70c944a98dd61b6057ac5d7be9e72cc85de55fc1623cbb789c44203740b51c1e19e728298245b637ab3ca0f3b8863d6ddde41ba7c7c5392000b667e8fce405e004b389e2f8829f08a412a0828a8e0edccc392308e34b066697b57536825b22022df4105e10e96439c55ed7911083e3c4b2067f76a05b9f697cf75296749885986d2357bd3046b65ef0be4e\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 298\nct = 78c823e764045b4164717010d01f6c860a11083d377f28c71f680f60e91bdaa2f3627996c1c6ff0f341ea578938812a084bd2e182c1f27e22e8dc66559e83ffa1cdd5cba2a32734876f782674339a08e84659e15463fadd684994368d4cceae8a8ab23a4f3a8ecd62cb7be790a43d692e3dd794091daa4b0722de01a411b2ade75518481c2b9f9a03498599333ee6eacfa6a616fe92575335f28032e3789f519eabed9c2506397aad30bc7ddb4d9facad995de1dc2bde840037fb8bda1b5246b\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 299\n# Longest valid message size\nct = 143720888208f22d7d97e334006f2491d0755ef9752e2a7f69b981e1fbc6ca8348fa02f67a6b08450ee3a9c9b7799547891011c2c64291e06306b918a5fe5972be58c90b0258f80d5c2d7d3f295d9db16173a64cc8cca949f42ef5c8b200bad9ba9a80b406dcd03dbc32aabaeb4351b160a8515daae9a23a5a377a2e364b891e016d0bcae9fc0787a09ef75d2050a40f66a26b65ee3c9a0f22669284ecbbc82f67c9451b7ba4d9b5c0c53bd6a66ca284b270ad1a579202631fc4bccd328ce7eb\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[privateKeyPkcs8 = 30820399020100300d06092a864886f70d0101010500048203833082037f0201000281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e902030100010281c1008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81026100eb6b28e97c190ade38002d738eeed3479ab199d4eb9012de14eda58d7819a2ab07a903a286ea5e689412089200220a3876732271ddfe3a27ef19b37005ccd57aa02bca3ace160c9246ff282c7cd5fe72a32c31e9718e6661908aee67f2f572d1026100e44e12b7e2476fb08db8c536af017f76c392af55144146bbd55ee890b68d464779fad4b24161b0a57a611f86b5c21fe87b84126e11de9719a0e626f34ada3ea661fe219814d3c59719862ce0edfcd238f75cfc32daee448b7050c6f62243989902610082e89ce070f48ff990147131d02a77ec5a56261fa33a0373e1196134f0b2f8a4b866c0b1b0ea44c34c8b569eb15a3c6ab75b40ad26efc6b10c213389b87ff5b9f1b54808392f43a057c06d3b87d38b617de10684347425f45ce714b952fe2ff1026100a40cc5be844638a770eeb82757118879da86689e85f371d43eb9f7fb2471d7723ce0543dd26553fd5436bde49a6e67673279f0944f1ad7107f6161d3a891b23af4671bd4a0029c14bb2e82c90db981859599a74f13a9ea6f17c1b375e1a118e1026100b60b29e2407e938824820a5412f0f5a8c568f2a356df31b669a8afec89ea2ff34ccc9dcb6f962b76ad02db94ff9cb4cfc0f99928373fbd6a9923b912a39ef9fd7ab9074e97b938396a2f5fca0b0ee732fd0215999e5049798b338ac891b46c8a]\n[sha = SHA-512]\n\n# tcId = 300\nct = 61908430765b3fa93aaa67577ef5f06055c7f5bfc8c35591f25869d072ae8733fd1e03bbbbcfa2fdd7a85afc5fe48b027a4ff5b1c1e5ee5d6c06b159a33469971928c570c06d76935c7f0e5ebee0bfe50db83f22d3beb93919023f14bacf79b493f9971a68be714ff22869190e884035864dd12630c6e69bd623064587dcae02778d08f0d2eaec4d97cfa9bbf950c49277866b3ffc81dd0c532248510c237794a4b38aa555eb300b61b94312798fc95a3bab7376bf6da60912227ba253d6e4b4\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 301\nct = a4fa99b94636d4c74ad729292983f51d928e98702963374c21a765609cdbe56fb0479ef60c810732fe8a6518d8a04c093214bdfd584e2feb993fb53fb13db56a74a2839ca825d18027418e7517613c6c81976577d2f13caad985ec9368226d53b10f47d5c9ae7d342883676b7d21bf25752fe341c087a0e071603e78c088669210abaa79a05a90fe407078caa34ef38930fa68f3ecd5690b34d21d575b35f4afefa866d62ad07c1a4381280d531b90b3542e5abd6", + "d5956035a1ff580ce14ea05\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 302\nct = bb9fb86015193b7cb718f5ab8ad55bbc746a36252b3477484592f0b848fe4bc8b2aaf1c058988f385bb83107fea8043431d32e484320d57c4b5b5d50fb811ad2b28063a9c578d4629d029bca8cfef38fbc2a679952bda65335797e48050e5c12c686acd9d41df8e457d400baf9565c6d2a0370e182e95c220d79355893a813ae003ff42c2c2ecd78f240833382cbb2c7d2dd8a47daeb2378ad824a4173fca5ebefd9f98325f18e2bc41258b3ce1755e09d4c08f39ea0561fc9645f60afe87a1f\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 303\nct = a485d83f4051ed3dd0ac680d3c5987100cef6408d20ab8ccba416000bd5c3ba69d32e3e2f44af16aaac26cde9277bbf53a06882c697a92d3c4dc451db9b73ceeed5f77152bdcc51db0528ff061a449321e62f340411c6e5a852018d909fd94424a58a6e776de17e2afe06aad1af922af70aa5b4c20f11f05c728f32ef4ca02fe476fb4a6d7cb7a00cabc0ead420b5ef3646f4b05a818ea5c6b0d5066b4c561697d4ff0aa62f914fb99a59ec16946749776a3efe9e04bd9031263790c270bd211\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 304\nct = 8dd33e82140d7f924fdccef5dea1b76704f036d42d9ef20835d7ccc4c2631cbbea3fc1c9b01764c1cc11a8bdb128ab1c951cd991581013f08422316c3ba784fb3e917a3331124d6eb8dcfe8bd02e588e148ac24049daaf205805d49c1d41a27774b13d66c32ad619ce67aaa3b844ff58997bb6deb6acc02f522b57fafd6af6ea5a44d801d5132b1acefcd515f5066ee7cdd07595a9a52dad465d6d39bfc118b99c84c3fd6ffd56fabb459986efc9757bfe0faf151f4c7ccfa7bee2a612a0f726\nlabel = \nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 305\nct = 9d26f3844176ef41cd9ce150fb3edfcc89c90a1635ff1ecc28e3094706694164818fba1efd69ea9101dbb9fbb675036a5fc5588046dbd29105a09a22202f72f8a72e81dc6abb213069f79bcbfd38427dc8107828aefb8cd35e3bbcc5a92bbb0f13161dc86c0fb8231b7d66b4e3110f215bfbdb103532fc2a8a0e854d2dd51dc4e7adc52f972f31447e972912481734234c461e062f366a93e7ca534a4f8439b6596b53486da06ef3871d670ecc0c20faa6be6fa08bf419ed1b1b5a45e5c3a611\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 306\nct = d1ddde7a2dab16c3a20dab3746f507b60d53a03b65b69a29db05abcababff9c7741c0aeeca994a0c3884f1782a9766d50d4cb9de7f4f230b29dec4e3467eb015a4e8fb5d6d297b9d33931912f91311ba08a13d8a594736e578a95c31d473ee02b4a004e0edd5bceb91b0eb2cb178213cc48a7f8a72883e4a800b72766f9796c8ff1b34029b60a2f9411e9755c113b2f9999c9b46c882201bae078c68fd4e6dbeb6b0ed963e57757ae8d0ad1a70e28c8be6c2209fe4c744016a973fe8023e8ef1\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 307\n# Longest valid message size\nct = 90b831afd7d1266a8f30435ac3f21ce5e273f6a1fc8003b65602f939de95a40cab6420a91c2a2333ee88803921cb1d5ed5b5dd22fafcae135038a1ed86ea86d1d07811d4dd5102b2cd39b239af0f29ed0f5c1b2ebe4590df8d73ed984770a86974ff09366df5d6f9226ca0f98663e370b75e4fc214dac1f7b184ce6743eb26ef4d779f55dd11fda6d93e48723a3ddb720edbb72ac327da62846b9e011f5e95305aab64609297ee00cfa6687122672c19961601b1eff6f012180fa8a5117b583b\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81]\n[e = 010001]\n[keysize = 1536]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[privateKeyPkcs8 = 30820399020100300d06092a864886f70d0101010500048203833082037f0201000281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e902030100010281c1008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81026100eb6b28e97c190ade38002d738eeed3479ab199d4eb9012de14eda58d7819a2ab07a903a286ea5e689412089200220a3876732271ddfe3a27ef19b37005ccd57aa02bca3ace160c9246ff282c7cd5fe72a32c31e9718e6661908aee67f2f572d1026100e44e12b7e2476fb08db8c536af017f76c392af55144146bbd55ee890b68d464779fad4b24161b0a57a611f86b5c21fe87b84126e11de9719a0e626f34ada3ea661fe219814d3c59719862ce0edfcd238f75cfc32daee448b7050c6f62243989902610082e89ce070f48ff990147131d02a77ec5a56261fa33a0373e1196134f0b2f8a4b866c0b1b0ea44c34c8b569eb15a3c6ab75b40ad26efc6b10c213389b87ff5b9f1b54808392f43a057c06d3b87d38b617de10684347425f45ce714b952fe2ff1026100a40cc5be844638a770eeb82757118879da86689e85f371d43eb9f7fb2471d7723ce0543dd26553fd5436bde49a6e67673279f0944f1ad7107f6161d3a891b23af4671bd4a0029c14bb2e82c90db981859599a74f13a9ea6f17c1b375e1a118e1026100b60b29e2407e938824820a5412f0f5a8c568f2a356df31b669a8afec89ea2ff34ccc9dcb6f962b76ad02db94ff9cb4cfc0f99928373fbd6a9923b912a39ef9fd7ab9074e97b938396a2f5fca0b0ee732fd0215999e5049798b338ac891b46c8a]\n[sha = SHA-512]\n\n# tcId = 308\nct = 768ad8d22aac8f43f619abca26bf9381c73dadb042bc9bd8212cb557398d67486566f6ec2d7266c5d1983abb3af5c952165f861ae3c83c77d609579a6bfe9201984bb57358b77558893a896008039c8759110331e771f9162b54eee1ea3329ca9d5f8784648b4e71a2e84499158b7e884f867c075bfd7771800a65d51f23322c440c6c8cb893967167c960f7b4c5030168ea520f39a08aa12f95743b10c0f8c53412eec22a93ae998b16d7d9072bc93138a001ff080acbc3053c8fec2834df8d\nlabel = \nmsg = \nresult = acceptable\nflags = SmallModulus\n\n# tcId = 309\nct = 0a3bd0825328538c08cc6cb1dcd72719de78a458e198719279b763446a2db3e782937204a7b0b4c99c6e1d76543a9a732c7856165fe95de20f1347065876bc5e4317c1b121e6b0129a280aab15a2390bc71326cd6a949f910e2c03c2b90eacaaebc6357bd20317357250bf27546160e2fe88c6245221ab8af5b1fa1fb1898cf92b179bfce192a38c7974bbb02266aa79111bde24574676886c201733edd5782b4b041d2f84855dca522bad27ffe1b5f0e2bba856f433934b123a7190e084ee7a\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 310\nct = 5f9dbab8d8994734a41f04d47ead887e71ee318b5bc138669ed929fa0095a3ec4d7f8fc823be8fc28688d5b5dcaf718c6adb41e6968ac842d4686a29be393855e8bcead381f4f9853fdf8b8adb5fa021f1e09513f6842a140403d3835c6e17612bada480198f2e2f7c7c197f64d2ba1b7e4c14ae7b8a6a2a173fd9fb3179c3dfeb185ccc599a9efbc9972caa12d9fd6097f8cd255f873458c4de9baf06d13757355904b8635a6c2c68c6526f68964ccf17cb7b52c17bb954e61d4285c99c85ba\nlabel = \nmsg = 54657374\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 311\nct = 3071a2a419d78c87ce46446d39669a3a8cb8dd5143e9a6abf5c972aa83c1375460818cea581c2e714202e5be01e5b40e0d087f7a4e0285ec99063ec28e7e560012b340c0eee0ab7169544359549239e1610f7aa63fe874a13619d3796f8c2fbdc845cf1b9d3703a79318a29102672fc0143c78bc85b818d86c2f6d005fc7302126c8998e243a7718b822b7bafc33db95a06c1d251c1b148a10e1377af56f0d6f895a5589ec0463feb93b543d1620835be6cad8d551f85227b9f12e576aa7bec6\nlabel = \nmsg = 313233343030\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 312\nct = a258bc313c7f72a2f9cb26b2911bcd035fa390341a937f0f5c07e2e0b469769933778a2212d3cf3547868d0fc1eb10f9d24bf80142d04934c70c2be2be7a226f8b83ed1f2feeaaaf8236998899832de44e2775b587d5ceab73d7de47ab5bbc1daedefac0462913418f1005d04f1e8d276fa2fe01cfae7ca258ce1317a948ea987f24c4cca7868ed55f00ba1ba8fe084dc9a4fdca81e4ce7a34d13c555c638e4209884d1d54fca4f31e092cabe97226d3aba40020a89b99760d03389f7891eab1\nlabel = ", + "\nmsg = 4d657373616765\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 313\nct = ccef397724aa370dc11c46bb88dd966b6b89abc1449bc0ed27318bc8f1c9da53ecaf9ea981b6b74a4aa4bc732d622da3b3ed372438549820a2f121b84981f8eb4d73d75391ad99b499e6bcab2186dd37187b49bb100768d18e919076317e9d878d6bf59f7de3364c16b2b39b7c818a3aae127f871defcffe1d398e7b6d4709beff3f8187cd0f1178245b2fbc03110a7558f94508cd8e9ff4ffa241bd390a06ad09a5028c74ca8b7594d1dee310c636788fdb6cbd64321e52769f5074485d2f45\nlabel = \nmsg = 61\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 314\nct = cd4b7cd8a3885c1c3c60dc804ca41e84ec256c4dc56da8502c00d2f87ed78a8439297584f582f609eb60caf4b8f4c0dd5304f99b334d4c9339e2160681c2b42d9442276423e4ea161fbcc3caf6b2bef36f7ce84dcde3b2e98281a9369c787820644fce213b8cae9d75bbd43d66281fbd9ab175a1dd5a4e7f6685d1c0c3c7413394f8d5f77c7db858ac518a0ea16aa01aa37af499aa815faa8c24ec961d506e4fdbd39bd197bd86594b87dfbdff4e0f068ad31cd2dc0038b462dbe072418bd39c\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nflags = SmallModulus\n\n# tcId = 315\n# Longest valid message size\nct = c61f56e0421653baf4e1c514d1e4eb6fa6076067655588adff5cc6a52f490b0c01260d8fedabe4d2624e139832d6617d53d746836040612265754e8a8f647c9a242f83a865618f6e78b6231cfa2ab6bc554f2e8fd12b9d3c801c25043f1fabc70b8ae257f5f3b675932a4515198836bb71b9f90300f2251b2ce497c2f81d269b6d169ab6c5e298a8166946518c1711a971d9cb9acb0a4f1bca39c0b32ac96ae9fec2661d0ec59769832ab4b10fb41dde8135593668edd53de5ead6b37f067ead\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = acceptable\nflags = SmallModulus\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 316\nct = ba366806e4ad50f76c0d8f63a84cc8c1045fbb2f9bef31da89214b2c8553e2d0126fb91e8ad9c78d1515c1593fcd589278369f83d8da3508beed573b2e8a2e61e09d9923476cf2d1cade862344a87c8e50d6600754089992851f44998be57109fe4f9a787fc13cba351f335df5f4cd656858a9d9b547438db4e0e81640618104fac10c0227733f85e041a322459c13ebcf4855fa69519ab94301561146830680e1616fcf4652d30dc6d0cd0aba397560d2a5b9556b42d42ee2088ef8793469d1142331a0b3018feb153999a2439349a709eecbf09568643f8e5d3389073eafd93d37544057e567c3a553269ea1b15a49388127532ab967860c0406a4b0cb3adc\nlabel = \nmsg = \nresult = valid\n\n# tcId = 317\nct = 8773fdde3f148ec33d4facdfba812e44001d90861c047a9eefe6c6540212795b50dd186bb7712b8448830fc1799e0543b7093e4770f301e9216922e80280e9b50582c669e3a9a4feb08ec6f5b2428dc7efbcf6fe49feb61fd2795af1c8b23acb605812c9d7586e4f48e4d758f0695b688d1b4b563067852b1ce9db5dc82aba29ab416178f616426e5d0caf3f9903de2a5beeb970af7281e7cdacaaa00662ae36fb0365c20c653b670b3e7be4b0680932f3254d48ec3505ca1547d1be27d2414a3539f405df91057f4f97aa7796d7ccb69ed553447131fbe79611756b7e564bba7d76ce9256168446b34498a2e91d9a955a8aa98a71a43d65ee60fcea39d811fe\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 318\nct = 504b4e0d94d800a9da92be8fa84fc345f7ab4921ec53c073c79592b347a692cce2450135e998e07bb75ed7ee44f047f75a07e37b9c912d3d529b62bef144952d5b202246ad32c5d34ec8559c4163e2145fa5fd4d56de28cbfe7e537d5732305945c9370bbc6dcd72b3296fd54a2660365715f7d911099c96dfe6d114eec7b4425cb65701aa9e08d99c7ac20179656bb678554d74baca4501b5d0b366c97224bf0c8734e00ff2af8b916aef8b83142d5ec142493e0cc4c57326515a50a31ec2c6703512034642e5789649773d2f8312561bf2f2f6000cebdbf7c7a95fbfd0f721c31ba392acea37568a24f176767f71b31f407573deef95c305e0e063db0e9168\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 319\nct = 25a918a0c7985a72f18f6b6216d0e2d19a9b42a4d5b680e995c3c5c584966e29c6179877cfd0317f9e4dcdc87f76714994e4407cd868842350e28f328b3f33746a897ea9995575f328be7f9912369482ae1a66ff5b7a1c8ac8fd4e5771e58077b54a55db6c6849ff288d50de0ee1e45bfdf81ffaed16971f19abae660338a3a9240a0b732984fadcd28a85c680f0dac8b73306481a096f700706e91f7c100ce64e1c6bbabd419807dc167f1f924edc6f44a69b75a7c72989b25ce35480433bc456c6afa93a0e9b4156d75863f9440ae442eefd213b8a3f53a065daa8cd0206886d1544c3bfecaf62659cfa591da5e920d7d4370a9aabf7f9983fade101da2dba\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 320\nct = a2550a9850903f3142bc1b1b54e45d7754e75ff0d39a8ae813b51eb8165be08a4c0366b93c803ef161650f8cb966f7dd4648f40363dd0cc37595e43756078955ef02e415b3e0efd5f9744d564eae763e307e893002dd1a9d0ba2997fe6658f3689fef4f4f21e7a972c0dc642993ff6612c6e6b43f9ce53674919abbc13e42772beb8c3f3f655df9dc9839e075e01beb9b93d8e016f57afc9a0207d9189b4bcb14ba6459ff5fdd5f2fed5260ac9a7a092feca20af0f23a00d8b990c074ca23d964e19e49c17c970bc972b70fda2b6c6e99e4e7ff11902ea7126257fd1964e7da07fbf413c8becb48729fbd861ddcc3fa6c3df2355759ef1338d02551b7fc80a88\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 321\nct = 6f35b56ebd7e12d58cf2239b3c926d21d54222da0d1943bcd0c", + "0e446bc9213526c63ce0736b11340754460036eeac885dacac617499a58c56a6df5de1e91db4e1befba0237f696d1b6a8447163b839ddf082a1c5f8c1315f7fbab45b2bd8011accd5b2b1e3d4f35315e998eef82f368a72728817f7369648b9b1959781449707a5a668a6f8eefe5624135ff8edcdf9594eb4db32f27b2a6f5f7c6406c2f2c7b818f859d9e379a76c17b4d1535db7404e77d611f6cf5b4d0205f885883186d603c7a9920934fb5886406a38013f7a1864d5074f89ddc164c9e13f5aa5e4eb13dfc3a53b153c56d9f6403bf2ac5dde9c42227201fe314984752b5b41ef0064acb0\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 322\nct = 3530605f43b5539c80398f856eea8d88984af4a6a08db3b9d4093cc80d1a313c0ebe727eb2c45cec2025eee60f385822c09f82e3bcedf66b79c2b34a4f41aa8885eca5b9891798d47914f947c76881dbfc3f21ec27a11dc926c647b6b2a7f3292ec4aa32e969bab49afe203ffd79b0c1ab5777a041fbe4e9e1a679fe2d82e9c267ee7fbe54e9e0def68d8bbacb1e53da99aec8ba9255d2ff6676dbcc58498a386dd8a6b3cf0222a9e14fd03313303bec9d0439ff0e8a5a09ce2926ebe86cafd00cd8ca761b88df9cf84f7b8e07cc5f655199ea81ea6407ec264b5971738967a2e977132dc589c72f8bb639a9429feb512d8d32c441f7e1ce6c6befa08140a090\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 323\n# Longest valid message size\nct = 8654643090ce426118dcce2bb0fca3b2a4ed45589d73ae2f5683334f17ca5b9f41eb97ff566cbbc0171d8962fcca465f66f4cf14d0114d7768bbac1dfb726d91331670e0e88ce7286e1f0ee7acd5cd75e0d325adc9f47ff02820544770ecf46f381ff330a5c75978e8d248cc12f0752cc7c452265ae919f5a4dd7c20023fbf51d0b413afe09f746114d16d1be499c98d270e9213a37a2a745a3bb216bd30a07d110558090f4fe73debea009e18eb3770eeddd7150b4c7231539f7232d837836490c9547e27dac00efb5a8ccdf9a7c3c1d29c035170a517db899ee61925cc7a2cd278cf576ebe8281bd3a4f2665f15dd0b2e61bcd65172c2fff50a86a2adbf2f1\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 324\nct = b70a103c72b7e1d18f32a1f2a1cfea492205b37160ffbe9739f5fddd2199eb5867dff29480c5fe09cbf5fe95a02562059455e120291b41e7b0be023c0594e19d2278b80383d46f200e029289c49aa1e85192db2d8d6b8b8506424487de788a8184176fd9093d0d313bf2f954b9424d5fad0213690e816316107cb0b422624e8d49a2090c1a08da21b16fb9f6247828760aac8b612961f8c67bff8d299791d1a162844bb80c57b95cda2c8301c8a934d753193aa0171e3825d1ee4dd0b82d0dd35244bcd21e23f327789c9ff102efafaa257f3d407f0ee9fe3e2e49eef646dc4c5caac7446a8d8abeb569a02819f3f64f731bf1605106837c6cd339ebadbcb640\nlabel = \nmsg = \nresult = valid\n\n# tcId = 325\nct = 175ebdc0d8405a30a0b247628b5666f676fa4cfce3632840ae312dba2cdd3facd6beb306d63e77621322e9f5729169a4b4ad1298795b65626e1946b7c4d1be7257150b781211d4f50da80d78665e8ca8d6b2004a916d2be21d9d246323c72442c132cc89546e187044e6435d47736820e4c6984f2453e08fcfe6403ba33780d1ccf8c14595e06a388caed6a365e5f2bc1635398c660565ddf003d0c365345b0b10bf151547e04ef9771588aa7010e207700222d9106ce0ff76756ae82364d8cd57396333abbb8ec9ccbae2efaf27a36a8b4d9c2d795c5df59492f012897969adc7715aebbde309cca0feb60a6e6ae78046ca66b2d4c4344198e9f24b61347d9e\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 326\nct = 4aa41d7333c12336338ecd15f69d2e980c0ced8a7245e964adb1a23300f5f2c8c05a67b446ef141efce4b9272f09c5b9d5c8652f2180176b44a6d189add14be91ce558043dc9e5659d69db872f8365fdb46a751c572c9dde5ff22f6d9f19a86e37d5610c336a4688aaf75f36d4b5ef113478221b200ca1a4afa55d5415cc38c25807ae160c168efebab1e3521aa70188cab71c4a56fa481dda08e672c2708887c4ddc5d8259e5154afca239a4cfe46cd3b81b68481d5edc9a02a99b53d9e4e89cda413a612df9a10d9911a323b76a8e2065c6ca5cfe05db1c707d4ccacb9dd38aac6d3eadc698c39dcf11a55b492c9c9793c29e1845edce84d26b4fdd10daf02\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 327\nct = 10116293e808ad920fbe6a74a2c548f6843210b02cdfd39081299026ca36992087e707cc7c179da07d8ba868247e54342f147a4686ed89bbd55cfef9d5d95aff0fa66a798c15d255ed4b3217398084655f715dfbd6edabd6c37d933f817c35574a8aa44e0c6c55fec873ec2bf5d0c9a5976d709e2834cc64064c487413ca546e8358d2d31bc076a23490a4809f7abada6e0e481f287c2e7f3e749c6360ae4bf6482329c75152d7fad3124d86e099a0161c1477c5e9afe9fe5e26ab8a1c3c288860860fbf92f66ec56c28c9feed56a04783ca9f498b6353cf663c986959c2e56f25c54c30e72856e52260c3d2dccfce866b04fab6d1f368d2c7f97939ae8441a3\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 328\nct = 99764ae4e0b95b6a7d558c9f43037631c38d1ea3b07beacffaf33305cf2a39461824b6dd67bbab52369c4ea5cc7a34c1e00379708820ca28e0030621766f09dfce439b716fb79ab4eb36e", + "7f141b8de6c3b066ecee6836202fe33bb61e0669e3692b0708d5d972cfcb00459bdcaa0491a661fc86ec9ba19ed1c652d697bbff970dd98db2687e00619a576797528de3cb4b973251e3d233fba62715e7fb043abad2477e5543313292ebe1c0676bcc0abbb1b52438f3007553766aa26b4800a8c9fca9477f0b58c6d41224c8186c315f3ac607493f93a4440929cd5f98ea208f4c985dfa9f96a9e14a45a0465713fddec24238b71d18a42bc7320ba9e6c90ed7740\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 329\nct = 5019a29932320e4495d8115a0f71b0831b3e0995c2532d056259d8e7b248cd8b8027c1fb2230ced82fffc7613ab7e94d4c00e84fc148b729b9402917951c91eb897dd198506793b3a2cbf79a624cae99c1e411b583452671e028080fe5997c78178de2d1958575c47505745cf454353a73a0b9edaa6649cbfcb3baec1f42614a16c274820680292ff356d1ecd8db3f47dc0f6e039e86489e85e1dbd2f0b09315cb237d0438f9011f31ecde22f66e925c6445f65b03d3c9358b87c9b965e52ec11b8810b6bd39c75964991270e640e41b8323dd9713bbacd9de812a14bdeaf5535d7c853f5f13900a738d84ea9f3eb48bd4a349404dc93cd07aec7c8d7351f89f\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 330\nct = 8817e3dcf842096b9e8c79b99cf648a52cc42daeade85e475633dfe224bfbe4cb00279715c5aa7bdbaa882aeff5f4e6d9dec7547957cac2b36a6dc942aa3405390dc0da9010f5956432460f1d2d6083ac83f8e680cbf74c1897751c64f963c678ab1be533aa74b0e4ec007614a84372207872e9506e19b1231c92fc36fd65da40437fdc650b1e191c47a194a5d6dd8825f9aa595185a56757b56f25e213e202cbb8a94ca7f010fff56be2ab85592b6a4690d20bb056e9350166a840a43e1cbb7e7fe66162e249d8fec9543e1ea0f284dac11cdb3ae757478bf2d54bf4a30ddaf318ae422ad51bea672aed588da5bbeb4a038273e909758ec4cb5c6c986f7f090\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 331\n# Longest valid message size\nct = 85919106321ae42209ed6bd5ca003a68ee5b40026f791e679fd59df3e2ed37fa4bb33e12ac63011ec0cfade8c3427820c4976b61559db111db70e1bb0a6126876cd19d86049ec85cb0a8f247aaada5d4af2a7eb7dd35496d81edd1cb58b548f66eec90c43b8af282feccd667d758f54cf12b31916185ee54b7fd0a9ce0dd9c6017c5d0bed27383b3f90a13757bf623ba5d6a41fbb0c4f1e401643316dbcb0a5bc7b726864040f594f77e3e6dcb1130e88055edeba959b5e1f91a8716b7cd716770db81b086eb9a510ae57da243e77b92f38d1f021f33eadba55712ba08cde8343c594232f867e03f13fe7c1973c1813eefea6a1c141e4c69897e25b96f08f914\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 332\nct = 2070192715bfc3041f907c71044bd4cdbc60c8968462952e4538c519f70b06a92fb7eeed476283575f80a508ff883c735d85478b072026c784285aaac077f0b8014ee8eb6ded6ba4b31ffa613ffd675fdf3f16314e010364fb7d914f61ab3aa37791a506260bf10a63456dd05289d02ff817897addb98166103fd4797a96fdc191fc167bb8976f618217252cba2636f34bd5aa8bafb0accdcd961973eea46f876ff4b8f4b56f2ca5569166305fffb21b48c4bc30ae069062d30ee8127a8d97f815999cd35e2e3879ff2db2c83011f33d61c4b18b036c815d78ce0b7ec9e2c347042cc3e7f43918bc38abe9266fcedf90c6e35a4b6b1e8c8f327705236664a4ce\nlabel = \nmsg = \nresult = valid\n\n# tcId = 333\nct = 6ad9b9f1383e6a609bef86be3b4b7627eb6e4f20294b02a1c0008141b0bd5cb1fb72f81d6536ac1c28b190468bbcfa4e42c917af8a2cef15fc44b2887ba2e641936fcd7e22c588c394e4822dedc88277bb733a5c045d7151597af25df3e2f3b007ab6e9eba4a1e15d4fe60888366f4f2513098c2839f6f047cc1c02be3c712e20889493f97a52b542dcceabb697721367f5294b8e56666929b40fecf7094146946a04eec658cb5835e0d21e14f8b755360e859b84b6fe91feb8aafcf8028519087927a1eadf7ac3a1161d4a3c972a19c71c603b10c104ee42be30fb7e9d3fe2b1348bf2f7a6b4e94757323a17570f76c99578e8f29598a52ee86734f88f1be19\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 334\nct = 23613b435081b4b7f88bb61d5dc1780462265a4c3bd2149fc50d0fbdbcf0f3d8e3f29c0bc5ad30e4930afd2d3a9bfba5cd9dc1e89cb09871ff587cdfdd780bffc264d5a1081829063f08d3d0aa8d605d3a87ad0339d686352daaee6f841490afca0b6ded79b7e7c44529e570a9629b2563cfae20f9154160a54670a2aeae45a26edb500799fb67bb925ad8a0c0df276ec6e0aee3a3051d75af52c22b27746fd0853766b2eebe40c1b26e0dcaf4be896e4eb752a0806a6435a27cb5e415916a98df49bb87ab1c67a8fb96ccd2f255a36435cfedd23b842f64cc823f79dfd8fb070f8b7b74e622f6d6f70b71751254b945cdb9cb3e40013fd915099a11fa575322\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 335\nct = 1d08ec064cd364d54d342d20b25808f8e5fc434dcf5099f48d0a4cd36a0e2152f247339f733fec14cd3c5aac28f68b5f00dd9f1f482a59627b02eb36daf79e5fde23b4741f1895e4f352d1bd30ceedbf07be10c05fe090d4056e383c7ccee6fbf5753f93bde04b0aea1637741c05a415903fe18ae857ce38dfd9d", + "6622aa5dac36336c2505d3ba872df7d13907683ba63b3d3ca057d5a422cf2258f1d1117f12231963152b391ba1cb779054e94e0578cc1937bcb85c2a578ae81d69d7511f4b7f3399883ee83b4f82dfec4767755be9694988cf4b6b76b9f3c67ee9e6699e767754b0c96bd96d9a88a2b4aacccec515f10ec60c7a6671d5f42c46e0ac96abbe3\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 336\nct = 668384dca2fe8531dfa09df8ad0d96831abb8ffc4aa7b5cdaf659396d81b72d5bef88c2e1bd60b157747f9bd2eee84de8b2c5349d3238dd1872117efd575ca920516afe9fc65617e97adc189b181480a65893591df1fbcb22fa4df48d3e3331c49fdab1d763f51c04b243cb9783bd3cd6c5d5f8364898965a3e01cd56b9b5e1c8045f01fe0a8db9f9c1aa8f00fcbc9c94fe0f3a2d2f22535feda91f02d7edcbf4c58eaf0b23d90945eec62f4c98ed61168888e6c56ba1fdc64f19a1be7f2df400cf8416d418a09b704afd8086a297ab2e5dfb413245c8b8c41fe6ec7751763280644754fe462e452a3b8e88312defcf446def1abb327b246093b57bd0731176e\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 337\nct = 902b79eb107ea1088d3080286da5a2cb187a7cfe4bb1db05a73eda985a93a72370f60bfb21642a7c2955fa887708ef4db0c2f750b2dcc9a7ea848ea49a67121cb8f2304331548396102eb4e8ec4657b021262677447b1678ae0a4379cf405eace5d4e35449d77e360b3c977bcf433405a42c14fbc4b99c55838ba7e3118e8616e0897c07881b0824cce9a4708dfa947c565a704226a3ca61bff900bd57f43c1779837c4501434eef87e10197ad389634c3dc8af5e055cd5d9fb0e32faef3a8e3e5dd6fc751d664e7ccaddbc8aeb596fc9acb55937b245a8d67ba5337a2c369b2f482d09e2bdc345056967496368a29ca8d8b584546bc1e58c53812245b2f4e35\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 338\nct = 2dc0c9296327f53ed112da4d2de5826798bf9a8e879de9faa57d63e549a39225d906a17e98223e2452baabb6df8245fcd28c3a7d86ead77798cae80a43ca07f0ac5bf0e4d5171abba198f5e79543de3546eb987b98282dd838daa92da53a4df66005be0d476d3cfe62d79ea16e91b054e5cd8f7ee704b19a1d476f1e5ef451a5ae7acb194784504c1a9c6a0c62261151d490a45b736a06ee861aa6f60feef31ab46e9b2e0c0f186cfdac4d19b03770ddd8a711012daadc350738342ab03b6ac0beef4583d446df662ba863f99055a7c5df861912ca98c1385a44ecdaaaf1402cc495c695e1bd69c9126207697de9f7f03353aa92bfd5e81b97a8c98754daef9c\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 339\n# Longest valid message size\nct = 16281dc1b9ebed814f2961bf4b82e26de647b82da30c24a3470bec2715864dca61924da9ccc406fd6f70fcc50013ca0d2b942df1e5cad693a4940d16597be2eeb2a2bd6d6c91a7a00f52bb56306870860183e41e1f07cc34a6821e83e598a6fc7f26762f317851f8f43acc774654ba52def73a2bacc622cfd2616d9650a0d0a014f3b9ba54316295e04ba88c56320a10488e99a119232ea9ce367d33d92753ecd45802d707554c271ae527b91395da7154c4f4bd002fbb5d3f04635fee91eed7009e2cc3a26e410e633fd8ac3cf02e0115a40e5b21578f97d80e126bbb138038ecf95a8131db70c6bfb49b4c706036fce9e957c721727d6653d08d806d2501c4\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 340\nct = 39674cdf85ee3aca2f98a5757b31ff7365409d554c801c9128edc8e42751b62308cde38dbe0419b0ae2ae2e990ac2c0e3e76cdf8dc8d12f654d9293b931c1cbdb597e839e834ae8a2829ecb5e2d66b56859de6eadf9eb17ecc101498961350419fd3dc7cf4ec4c9d838544dc9cd6b7cc1e9402486c76e7fe8ecc7ea26b1f5506dcf647a13aaf91fa3babb7dd7b6e916b57a1a858ec28bbc96a2ac58d820d41af0688a6aa732392ecb95c03eed1062bf495ff8d43d4a3a2cc089e832d8f095bd5843c87db7e6ba4cba4571669be7b174990db3d0bdf9cf889ef38fcfbda95b00daf78b24ae80524fdc3f42259b47c758859227116aae749325c16b46e486b4d53\nlabel = \nmsg = \nresult = valid\n\n# tcId = 341\nct = b3fb4d0da77bb054101c93c72e03bf61230e4348a4069ad91793cfd59f71fad75c0ad2ab24cabf84fb7bfd6de35f35f4f5a261e43e518fc4171d054b5ef555ee6eb43f3212033a41170c771f6bc59d6465b4c6aa2982b89e403d5a03d14949a7ea3c38b9a640e8cbe32dd2b70a6bcfe5a9425b32b85ba095d9dc8f940b6ad615aa76aed893ac7f75023a904b63df83bb6fa0ee6c33172ab09e1f241a39f08f5f66ed393ec0f3c2132a825c5c0e14881b8a6b62c49bd56da4bea0757fdc53fda4a72d1d77676746c43c8316bafc7b24df16a5e290bd915deba5d2fd8497821c680b2bd08987275c04ccd7732cc2b110d44f7102ca461551fdaf5a10b14fdd4e13\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 342\nct = 13ab8ed997c999f500eecee19f0710787a5f0a26c79b1d75fa804cc43a79f920742b65b248fdb0c40c9c15381220a522aad2525a298287f397e0a21ea34addabfebdfed392408988e03d89dad00af3892a0837ac13b5ec220b69312580690edc86c29ee361cf7684a9c0dba6a61228bf050fb857cdfaa0587a94d908afed14d5e713c68feb7577ea65d912607ca771a3651129f62b22ac1b95762335c177929c6013b8bb14a5c4a2b", + "9123f329cdca49f9a00ff2f27a3772d9a0d2061f2cbda662dc27570e4b2307c3cd883f3f777e3f759985339b59aeb6a691a3cc805168b8c13928578d5858efebd63f6ce96805a8ef4242a777d6d83549770f19e9565ae7e\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 343\nct = a31bc58540f07c4ecb473c3979b3c8953fc9f1f505ca62ec12ddbc4419bbc6c8aeaa1ba5229066741cfbc336119edd98c49703a414b5dd333ecee8604d7fd34d5ebb051704d7c949c0ee87ed0366706e3ea68f685fab4402531d8c27a30052b55699a0835b7221d637f7298893b34409d524ebd8cb6094ecb0add7e221931712b774399e4075850ac8811d65bf4e863d1803130723c522f619abadec37d64f7a610c51b44dec491622e6571598636113a7f0227da5715f17c292652bf34c0d92728cc64660caca5e551714f9c062f3bc5d22af72d252fadf85158a952695f675173540a13b04994d1bc828d42877661156b5c241e5f761cadd414249ef853eea\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 344\nct = 40be741421562a27be5025894890073a79a27b5a5c9993c5c4ce45409de57dc7ea8d3e5fce3e402bd8474d2c8d59af96548642b9321fca8231c7c50c1116c7b89dce9515258cc30d3e01dc3b8186250359243707478e20ce8a606574fbeef65e9963c29cbc355f9c2bfd18fd896e2a1e51061dfde79dbaca70f23c0a8859700d3d2a9801020945c65621a6498c907233a6b1afa697fce47d28727f1278efa4d2b04cbf46b44954c4080b23048bef5d5c2ff2c6e790e0bac29fc9e1a287b351f2c843cf5bf9369ce8bfb699b1a1d8705769acdf62a82744b58a59112fe5448260f134056b8ba8e821173ebe319ddbb712ffbc33a619e03c4674a319d2440b97dd\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 345\nct = 8bac721df7cbf08e90ce282dbc8b8c572ed2c106f6155aeaa9e65d7442eb0839b941d54ba30f7fa8df6a18633226ae2e022f3e7ef81c3f024a9354446dbab84600e3e9165b171de88b91f3fdb77c4f941136467de9c88860d1c98800fb5c0c33061024a19c2cb507347e69bc2c8c166c74cd05daeb8feab49823accc2a625c50d532f7a62e251974d92cf502b23621421c8db1191bdfe4f31c45a3e5a820f513868a55ed32f9b96e386b4773eb4f3860bac905a2cfddb1759fa6d617d31587cfb0fe0d1fe90e8be058659ed8dfe68f5981a9fd9c1e723462bd91fe1c78535407f4da78f4dae72e7f3c6550cedcc521a8e957b27ff0b42d5d56fe97eba9119567\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 346\nct = 30a2a076c5fa964a9b8ed1dbb378f3c761ea4f2be1040be6a7a85493de1d00eed5be532887dd77e535e04d8005641595330456b7bc7ee3b648ae9c6fb590648ca5f03f5f6fd0a971ed9bd20126e86b215fd1810b92e916b744ebc80691f8f140f6c724cad886c3aa3f1907d399b47dd929f2c8006a7528c2d6df3d707b0a1f9511a117c1928ee392225bde5b95a22ce017bbb75c341c9cc03b5e18eef4e059e3e5bec1a85c75f2f8c119ab1de874e050433c6eeb0db7555949a49e33114b32e52983e4ec47f4e3d2639e2d0f754c5190ceb5ab193b135b028b93ef2256a10b120161b740302caf690a159591a12e3de91e07f9d7b9056930d1d66b1b18a391bb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 347\n# Longest valid message size\nct = 7343866a04370f6c69cdcb771589198e6dd781cb3301eacc92b96df5aa7546f989f89a33b676b55f515c75f2d65341fe42e166f0f2c7d526cebf64b68a71c5c01e14d0b155529380a7297ebd0c186e5add73da40a620c7a499716f6fd553c93424f67c29356eaa107cfc1e0feb309f0e84a48a8f687130f0b73e12eec66212aa25a456be44c6bcd9c96b6592141a7364cebde3d2497b51221ffe93fde22703c69e42a70c64a4cba5100354270c46fd76a0d384da80e14c5c12ad94d0bd8ab4d3d589b18731a5069313fc8f1d693633e6bf09542ce7b098aee991554f19e44543624573502c3027d04df1397859c59f97f82fd37aea125cc1218b85e92c9da701\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 348\nct = 34c697defdeb00064f4290bcff76138b378ef05191c280f7fea5ca57a2171ec3b35c8b19ee5407d87025b0b3a5e400af786e2262627d28ef8757fbcdbeab534634bb01bc295d976b0f138f11de587686ebb34e1a3f91dee0981c9b4cecb7bda3611776a9244fb146bb6e7336dca7edf9389ea7cbd392d8a5758eb5a05d2e51c66c9465a772b9d8a3f59a2c3e39f452eef65dffcdca7678028655657388b17e419a02b64592063592fef828001ee06d960ff78682c622d48e03ee5208b5d31a7a455316c1a7fb092cc53052cd48b7bdb9d7b0d2faa9912ce717b82dfdba382be336cf42fe8b47eb7628a05c7fb0e97a9bf2a71b61297b67ae53eb3782a5f9a2bd\nlabel = \nmsg = \nresult = valid\n\n# tcId = 349\nct = 60d463f72545f97a083ad1834c5bbb560479a52f9475ae98a72b2b823433c8574522f6c394c42b72ab5e8f81715e0992fc044c0493236c5446ae299c2ef8cca21205a62b316a621e1628ca0ae8e1187cd39c48847aefee5f2a83fa25772822b57bd69721d1b1ebe913e124e684f467efa8fb843d5908931f3d6f4b93c16d80b37e39d84294547abfa64943753b8f2f1df3b491a12de790bfefa056e95fc7f995237c1963dfbf6fd28171eaeaf006ef22d74f87742034d3deef3a8734c0e0f2139e50cb856c902697fb101a2a8868420cc7cee6af85357b7c73c0a7903e54e19b6e4475c6efb88", + "2ced63a66ae1da7c66e2efd9a61657cb12051513a86aa5d2a7d\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 350\nct = 530e7aacd2f1fc4fd5de60d535985f76a1e5fb9e0f4eba9f65dd02947b72dda088edc5be05c297a0a8767c321c36fc12d9436c11fdcf27fe93650829855093899ee61843f6ffa61c12d2fbe08c4d3015babe20defb35f6c304fd3b3d6834a0b488bc9db531f3d9cc65f2b74a15d1b4389b8bb1fc42497593a8eb9f4ca484b70c3421f294422c7e5926c25b7614858add3065dd49e01b54a11eb58efc027e267c0ff85948f09bb66c7529b1216605d9d506f4dc3052b91ce6ecc262b976fe57a584a65778175a2d68754bf01e60c692d3f4aaf2209f904ad85e1923929413520edfa7315b153ddf12f1de4ea2c264d4e6cf8a2c41ddfb05f8dad756a40b8ddb00\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 351\nct = bcfd14e41ea4ab76764eb65f2cff3735bd6be8069f4aa2287f383fe984cfb0303684af69e2dbc2d40f6f4a29a559ad8f621071100c53eb80455ef11dbe754e8e4c01c030628422e3ba883378c0ff36863ce3555759157479d801de8093d4a085c42d9c77fe7603bf0c47729e771c80d60fa15b9a0b5eeb189a511439ca7d21a2102e2169286b9c2d95e777bee2ec72cfe4c34d075afd6ffcf65b88db5f5312c2e046b77c2455ed45e4bfcfd4a3fa2d3c158a6fecb9f12d61740f0844765fea70e6e0253ad225c7673d8f8449c74e4c96e8ffe73d3dcc908047c20a7706513cda600b50e8f77fb2c7558f5a1ad8925d7507a3a4465b476f2b108ec6be144f2ad0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 352\nct = 125517ed81b52b8309bc774509b26d105dffce1e75a65c763860495fddedf39326d2524f5a3d186b9c36590b3226b06d30462de91754fb9432b83f62e221fdcf157303358215324a0acb662141699ecd56e57acf6da52659db597fb858721e66c518c2e8838118c52b607ffc19a73e75550e9c70f85339698e45095c96aa872172c2e6121323fbbaa44dccc90eaebb9c7c145bc8973fe01b9e4a14331ec7aea55c45c24bd85981624aa13c1b93d88b89827105842d2b25e6fc30b8cc49721f25fa75dfcb5ce4597ddbae702986e5e4b3e091797b3b06384e95ac595dbaf57370db30f029cb38a8874f55d75ae6b34f9a0ffeb0e3bb89f6f065054c566fa335d1\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 353\nct = 4169bee38d5f31598a1abcb55d60223bb01108ab22df1347e2b881d87435f8405da13e5b1c53dec8d7261cc4daf20334c8da336a9fdd93e95e4da3855a1fadf858741e6cabe0bfe76274bc17ec66737f25a6e778a5c2b4a2f19a7a4ae77675ceebd817b0bf97464956c394757a50d7c9a2a27884ff50ed0cdf5df8d234301e7f9bdb75fe1b4421d146224287a76e6fb05ae73041d34f097ee12af8f8095c52c7527366ed6a2b4d19b03de0ea51b99432b438942a7b24570e71a70ef9e47c8eb619e4e5e6028efc3084150630cc17df58c6d5938e5f8eaca11c5cacb21a631572ddc6406f49cf2cc250eaee49f6de058723e619efbc257db26252e3598b5e5426\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 354\nct = a6128106efc48ef2f62d130093a4c044772c0f3952ea96c1544ff1136cedb93e60eac1949ab02d6690555938d058759563bcc883fd2e14b2b5fd82cc6b9728930f31eae0d78aae2da284edf33ac5bc75e37bfd9b04c30bf939c5fca31257023357add5856fe8f3ffa856e62e7f7a9d807489e47e4422df86b7c7970449e7f090ad6d52aadc5c751fd806f03e5375ae36045f8d8f90263890d905ec15fcdf0ba3dc9b17da959d42140e5326b85dd2472cb2aebd0186be4795cddecddfb95dc2fabe016255179d836c19fe9ddf06817d2d7f00499e985e650c5b7e9c878de2db1a1be05c21a5f039a8ccdd6a7105ac3f7d878e130be970bf9e701e5ce759d14860\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 355\n# Longest valid message size\nct = 0acd794a8c16102840d2e005df1ecbd014e854fdcbfe96356a5a14a720408e46147f46f0b4e60d00ed5cf5886ae0bd05f7a8461f9782384f19180f8c3f9e7ae561adb041871d9b66c7060ded68765ff212676279f5ddd9c3396e422cecfd3e3801f9157740695b947f8cbe5b9ed8b287b6d61a4c7aa89dd6b5bb7102a98ff383dba89aaf68002ac942d21c778d0fe9b5d237cabfc04c957dbbaca0bff6554c9c44e8a1b0cda7bb311aadc03d8f0d94fe15c4ddab9ac9dfacaa8b795c901bbd86251862a4262e80c99966818a1ee1c95edd0d0d9f7392cf5f5554634d44c38510d33d30018967b03c390bca42b47e6c64ab35bfbf6dc9ebdc78f87cd10f073a31\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 356\nct = 03aea385d1f1321eeac78684a79ea101f54adae40474a54c8e574e1ae3871634050e5b596461730c345cfc93224deb7a26ae40f30a0497d7c6f0e141e9657b84bf9e20606fa7fe6e1c921d8de5032ad8ecc37b7c3247a56b3992c7c63dfc3fe2f22d7c4904fbddc371f560fef052f3ed89202bcc5f92f5a7fced461f984406554eadb85ab7d2bd7fc576d333b8876f82860c94aabb705e34e5f385cc2d7acfc5463a0135a15ed3c417789e0b8873d5fa0241c9a0d9894f617cf55c11fc45a47b3fcc04fa5b57e9e188addcf259a0f8051f254b6a57c2af22cbd4eb2c411e229045efbb577da4f480989d173a2fa367af721088547a8a219ff2466561eaa877e1\nlabel = \nmsg = \nresult = val", + "id\n\n# tcId = 357\nct = 5d19107e5f9422dd3d9e2207ca637f7347454c338c3191ef2eb5687a49f6570f723aab7ebbd78abba840942e74aea052dc24792c9eef1d72c148733c19776216431f917b81a9a80ff4b1883daba20dc6c368c525a2105550715a374583b56f9030df876d67b229fba732369113585166e41f8b5bb7735afc50970396f47921cb2d6c8bdedd5ff1f0411c804e412c2523da5354a0232a46bf9268402fb952f0ca00d04bfc4504c2ecd9772001b2d77be4731e131f90b46e0d0f51a6f7d787d95f01ce64f78b0c4759db1e4546857658b4bb899cb2e024d15b8bd14d0f2fd02a4001be3b6ab35ac589a83234d8d906750dec3e509332ca081969b26a1dd0ac7614\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 358\nct = 00d7ab45e49e37e0d73d9ec5d477985b51d9e1b7b9eb67a8e0224f49d8a3432c0dd8df02b5dbe8962b8a3d749d71e56c7871c0b4137d98de5b77d5f94bb448e124b57b2af9c24004bb693baf2d9f54fefe770f6f320cbe73c0405276b09b1d0627b3018787a3b27e09aa0b3ce50a79f946fc45746de72a93554b993936d3a41bf90bd9f2913f5580c8c1c1b853271286dacf275280faa981c78dfefcd4dd09b6f09bd5dde3ec11b02eb4538e43fbae835e40f903c81744797f04f5a38409a502f3a7eb9447a342dccd82fb192601d40f57192255f751f102e14fedc7e7aa81c770c6b72dcb853366b7a18fb11b8e3b3ee218e59f2dd74feba1bb6e06a87405d7\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 359\nct = 942fc136ac976cfc686ed13a38314c9c8b570a4afa2b18ae0a3cc39173a1430c1cab8893d530d4bfbf98251035d1fc18d18d905ac86792a1f597c08de11d9e2487dd78900a0bf79239f75e155eb0fc6d151cd7acd4664ac606c396494969422c6a321e12fe747a3b0601afaa43a0d9c08c776a7bacd68ca04b3b5dd9e8c9dee6773cfe652b923ff9d4e82d353113fd7e0264189556b1f28011dabf2fed6beb47498af5a6a8b0b1ac9640e5acb53ebb90bf29b7783a01ad6b4f4595e067711a49f8f1cf00443292251d2c0551f89e4271140b03681e8f4fdfe62e588f565c2e5288b3b14a488f14751b5a493290dd9365a48ea33011ffadbd2b898bec921bb1ba\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 360\nct = 36deb3f715d91d4f2c5a21a028f87b227dafedb7c0e064712dad36c276fc15bea7d0d3671b115323849ecf52e6326e5f2b205033177410eddd8e29fb06a1b93e99ff62ac8f7dbb973345947de615e9a8da910b5c810732985c3020d93e7485c69801b7ed49433ad66a0708f26d51c0fbd1c73cafc4c89f50a20a09369db4d065e9cd7845be623e86f497a0c3e9485701f18006b8130210cf09c69dcab7ec0e3c166fbbc5cc78c89dbd0cdaf7219b03dc580b4b8f7497c1f9f36d1c61e1609be1f67b892871ded426121c5f83e38d39127c7b574157e2f4ca589efe094c3472348bad8ec5b07b4a2f3f68d4176b6f381930ef377c640ae8491b5bc3249a5296fb\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 361\nct = 39f8f5ee290e93d4a36b96aa94a3bb7edb33c0fb6565ca6a99fe2434222be6b6846af4daa933bc6ecb62e963d2e107f51bba8a92ea5a4e6490402102dd378a55c0ee2224e77395e27bf28a216c6f929db2c2c95721d1448160e888aa93251c966858535146a70188d87443416101e530cef68a1781f10368ceb43c287c73cd8c44592c56bd8f2bd501284c3118fa0f0402b42ca7c4ea3a917afe71ea82df1655a39c650ea6adc9d73e789970d9b3bbe3f34d0fc4dc5fd51529cd328a62dee0c30eafbaf7dd51de3c31090833024124741966bc8722a157a8e71ed60bb3ef4704ebfabeba4ef67edfc5a120a0ee3316797e0e6a9ddb4d3bc7dcc9f4c262fe022d\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 362\nct = b798998999f0e4318470e72841a57733c842f174121247fbf3e59e7724bfd9501425234f8616d288f0dc8206c727aba50c13016d4be6f3bb64bed9dc5122b94522b8987a9db93403975302ef6fd585cad02556a735ffc5332d362272a07c1ddde4484639ab767e39881fa1c0077aed9e8ea4f6349f59940953c956f52065fde0a97624d0840fa610a46dcbdd12b8ea3c56c5873e9fb3f58e43ac719d50c75b434b01fd7f65c7eabd5a71f305561088ffd2fa7bb8698d16455a81d233a4dcc4c1f12280bae89741ac47885552d21b37523ffa8901a2256b3f7fd410b6d842a786ce2cd6ab81a7596ce5479eee98aa3836a22ee8307888d9365a962f2746b01430\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 363\n# Longest valid message size\nct = 94ad881563060d9ac62c32f57f9cf08c57ec10bcf77b35a67ce89da68cf8569e2e6891ed966ab988e68a0e6e44b389a57e2ceccf4e7e32d6bb73be98db72bf363d0da8a20d063e9be5d9f4c62e718004132c9cf876ef58b07c122f02691896df3deac296dbf3e1f6841d02572b6e297d2f0c8a54cc4088fc9bbc0f67f9de75dbdf81cd48e2f45b3b9ff2bdd3ac749d4f43866ecea7483e810cd3c332f055cea1525f263c54e5ca3e1e049af11850bc836e6064cda5cf9204e9cba0857b1fcd65654e30b062e980150d541027a212ecda6985f7e93a0f799679a7c36918aa39de158e0fd52c5cdde046fe6e4ee67f20ccdec1c4d328098c09e6b2fe4251586b67\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 364\nct = 5b467ce0a97ef94c7956b5f2ce08f88acabc4e9d6e7b83e6521e73c03abe9fda31c4c2c61ea1dcf5a4bea5f6", + "8cd1c17198c9c9f22cf9bcb6797629b9db4d96341503d7bc1286c0c47faca078594ab01530f88dae2fae71e5601c8a79040c81afda8f60fc1853df885885d8d2cc6bcb905f105f448d984e4a2374e78e4c357ef5674fe9917e30196d33fd97c4d67cb98c2a0c3f30c410453679ae748fb922a91da74359ad8dd9b00865517e7f225a8c999bf7c93bfa83bd687404425321e73f9e1fb97c11562f0622b217b09ac3542e0ac650a451011431a870c2ad77b9be4c72068e25dcaed1f2f9cf9a2a8336b407711c3fe16f2bc2c12e5454275ef783c732\nlabel = \nmsg = \nresult = valid\n\n# tcId = 365\nct = 9dd1ed2ae7257d576d793a110e0b39d85fe2b312ede286f0c1bec4fd975f10f9f51d9cb1b467de234697c428094a87879434f21f91e39fbd2e1d4b877313af6d9c92f4a7a16ba148fc5bd48c5405e27a9bfd6f2832f0f40fdb32ed3067fe2952060e5726a9a97d55e055b623cc42ed6a4db870f246ece6e89ce346060a4a5cca214a35e868231528c0c184a167f1d7c331cb0c1af95d6abd6dda250262aa54f2f6016d12d3b530dfe09d31eb182ea3718d8241bfa3e60137db838043ef4cce8ba28fd32b94198501d8d3d81dc9cf7eb5163c41753abee2ccbcbd368b8383b39bfe0739fe84f3e2b32612d01b324e4408b727318356ee38c200d5148b6e246bd3\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 366\nct = a042226c1eac49482797ac7065940a268bc9d7b71a84ec7ab43f2fec5af2e39521780c7410cfd7538acb5d17d213d4e9ee1ae14e44db6e2249f97ef1ee97983e2bab3d2ea4775c4c8cb79f252cc7875dfca5214835dacb1bab7da6bc7781c15b56546f9273f79025fb8cfd90e632da174311aaad6cc5affbee024ff1099395f5cd9f314ec3cfecf089c6703296caa433d6c3c5779645ccd5c2702dd916aa74963c1c11d30af3348ffcd6ab28ea6b8076a8a82df890186c1821c1aa18766d8024885083b1ac5ade07aaa0bc7c5d38acd6fe392f70378e2a64403c39fd4dff70af9ea96b25d2dcd4ea4f9334cc24a888d1cda58af7eb85bf04752c379491c9d8be\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 367\nct = 54a3149fd9a580492b16ab91406c69164f8091ce0f5f57e9c2c798fb1cd985cea1cb7c3d39e2ed35fd5443140b7f2868e3090cb90a4e1f4f9efb8eafbe93e6ba65e2670778f0e82c403921d29d55f3ba5a965ed2bb623f6bd39078b859948a7f0dd929210c192ef7fd28d9ce9d04ac56f785ecdf5b7c98cc2735f0af1474125fefc2c063893868eaffc6bc61c80551093926f2b79c3d207ce310c3cd11063a274760e17ffedb5cfa640080a7c233ba38b95c3976a0a284ec904eb3ac75fd2156763a3968d01aa22886b3eef912e3a0fed03e2652eb18ecf0824e2879d70a586d92ccab823d16fe430fe5b5a4115f079b591c33d31970fa8081972d3f1c6fdbd5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 368\nct = bb49b660fb692e67ef888b55dc4944726ff955229f20593757eb616a796035bc3ee9d461d37dd6c5a5cb34303eb739b938dd53454675f872db127ca7cc6b77c6ec7188a436c09310004777409a7e680b8631cb420f7e69f04bd8fc3d1f735754a297a05b58ee52188b8fd00c7f1059932b8fbdc5db8321db0599dbae89f62d7a05015ccaff40a0505baaf4bf96a62e0f3656e84fe1b5e14117755d3c2d4395b9039fec8db8d02afc90cc4589d232f501c184753b6c1c9d687a77e6a40acbbdd97be6b43deb327c4a75f3e09b638df85eeb73cf8e6234122f04814c412407003d703d8192e02016d33638765f5aaf83699287095b47eba7d48db65541e4d8f6da\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 369\nct = 9f0a968b8aed115482ee51eb63b25ff07c3294eb3f8faea6af968408f4bb7fec7b456e2459626d5b8bf10ca8e953b0606627607ac227155b7accfa1ec90bd94ed216b7a7bc8ffcdec6f4ad0441dd24f1227a2f2a61e0645fa9a4d325f5861479a51af341bcfa8f699c64c02b5d2979cf7fa6ff2316aa3546e31bf0e17b0974252019c61783594adad3f8ba9b81780e17a646528e111994aac91fb056a57c19fedb948bcf1270573ab35cf903e1ec1ac33ce8359c3dc4210467a1620b1d3928782ad079ba9bb1f2040e157c7e5963594a7bc855b9a476adcaaa3be95f28ec49c934bd2a2440e6110ded6f02ed569206cc986a40f60ea4a97b30f5dfe8f38a6e30\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 370\nct = 3a2f3740f3df888485a993c169874d624097050697b21f5d3b6d19bcd373a6005f633931446147e8a4ee53fe11c305d397670019cc03fe83eb15431de666c1b7164184c33ce2508bb0c0e0c79639e6be07b7f5435d37e5f1279bf033ace5fa259c83b19a62f8f9df45cf0fa8a2b1b0b3725926c40a7fb2463da7e80e4dddfb260b3129d4dcd8f05e728f5cb6cd484b2328b8d8c5e421c9a7227daaa09cd0e7425886a9912a38d5e6cb716f0d148e17ea1ffe520a94d8b6235b5c82579734c642717cdac41d65aabea49e05cbf41ad2554ffd97fdf73d14d783e80f08eadf7fd522961ab00d89fd964b6f72039a5f1c76cf029f2177a80bec3cc89475ea3c9010\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 371\n# Longest valid message size\nct = c2edf03b946ce57141fafbc89189daa734d0f388c211a322ad4ad9423ba5f31699abe68d5c03c0ccd56b1a39abd3145f4c0d59955e6cb502d6720c1af31ec511fed541e1a66761a20422f5490d3dadd815390a01da616ce4d7934c68e7b1c53d947803268d81d26429df505c22578f55ae0788cc619567f02237368258d2f591b51d61f088d972c40e4fbd4f50f72a674d25a1cff3b49edc9019ac9945cf2b828d4345398b3aefb63c9f0497ace4b7f9cf6c087efc93802e1c19326585788df3aeef36300f78f7ad016cd4ba6c55eb49d36e0d49f97e1bb8ae12e9d9ba66d18aa76812008eff83e0d7d45212ee972957c355307823fb692bb2041e6acc81902d\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37", + "b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 372\nct = 848c6b4ef493bc6f12f15a26ffcb6413fa71696c43d497cbd8b5ade17c8d57fba987dbc8fae51d770c84458d02716afdd4399869a329d71fafe00d9e5e184ce4b0fd867d2c07719464f528646043e2d37903a5a57c7e621231f43ba8f65f7b16e3ea97bc8d611b289ed3cc2f730dbfc84f6ade867c3712d27e6c671b83352262d489b00768d92372708040e10976b4c6bb040482d91281067254430937501fc42caf2a207d6c31cbb224b6a8872d3380084c61feead3234ae8cf31ae9658a4dd6150975a891922e478d192857e085ef332ebedf525adb2f61aa9959513d5464c35c793ed6fc36ca8110a84346ffae9c4d48200d573ad1f2d01b20ad5ddeed417\nlabel = \nmsg = \nresult = valid\n\n# tcId = 373\nct = 8496e09bbe91dcb8ec2b8fb0bf090c822e3be9bb19d321da367e281a42b5149807b154d8cfec0ed628e874c32272242ca45bc62a7529b76b348d202da68034e9b69329a8dd99d01a81e02ea48d5b93cf906224219cdf788dc17f3c87dba7a6b927ff918ede6c506e7c15852323e8eef8311fca3375b90fcb63d156f8cadb14af4b50ced0df183c1e637985fb5a7b05aac8a32d5aa11775a7f59c6e7df4f581bc5c95ec04ff794dc70948e79bc819ddc4b36e61d4789a961fa9d158870a79d0bb44bfd58b304f87d93d0f1f181c27f07c23880b931e79386023f7a70f439226b9b2be8539127a2b64cc79da35d98914340340db2e51ef936c5ac5a36f9ffc3a6d\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 374\nct = 0f36e01e9bad3f16ab4989a6fb8cab0af1431a4f309fae56c4a23d2dcc1de47ba0a96ed1260745a805b20ba09247826ea6b9b4ed5016a78c805b1f5903d3fd50c50f9ce6138397b7109e1df7d841eb373a7028784b18b1a12d1ab414e26afe00e88468515d36ad20c247c4560ab7a7593f9710e1a19ef99f95d5177f9767c433ab5c34aa15f87ccba115001954250a50c72b4b28a3d6b52ae31b9b7f852f1bb5fd9b0a9e95ed83ea7c8c11a6d9fd340ddb747e613a182c2e6e8391cb6241e6784868dcf48c69c7e04ca62b738714265802615603cbd993e291254f573065d2c7d61f8a0d8b1e50003709fcbcac99ea9b4634654d03062b1bcf15e5318c1fa1ec\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 375\nct = 1396454c4a4c7d67b0707e92e3303d182396ee4a5a5ddfda22b39e95dc17965c2e4e16783c5574fa947314df4da8fe339417dd687cb596f0c0c6d61ca8b2e813269312c5401717be0c1b4996bf94b66d60ee2da13f94706556a323022f26d9c0f790104f34a96f178b18e7ce14bc731750851efc9249932500911b4af4a9356ac9dd510e1a158e013e2ead6eef913b645e36f636803f5485ee4364b8236ca4a2d159823097d4b42a96948e7f55ee5fdc733fd57c0484c49ac2f6a5339344ff80e32a5d95c64bf5c22dfc4d6bcb76cf23f200d02848168c8fab4f7fe90b4b8a906b50a89a28c51ee3fb4c46f0f3c582e4a0f47d1da822b44de1f034c7dfab69b9\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 376\nct = 1736584bd45e7e0b5a17ae668ea6c58fad6676f897549453b1a04d14209a2e910e86447ce72697fe029459adfa2daf4d767d7d7b9023d70ade2b92acc95eccfdf7cd354c3fab5f52130844311238a4803f56dd7fa799eab11a3122e66f8f8cac30c6ee3e3c687a2fee31711e4a8befbd1cfe3a945ee38e6de5b08b38181b52ea44c9789a4b3e645da23e67fdf9c2b855140311abb8c92b91895d17f1b96c82cb486e558e64c9f55b1df69ee9f2200f31c0e5f0c2765251a4193102f746ead8ab2e1f90be9bee48d857d0221cf9ea0dc46ce470d74b9042525e4cf879433839cb928919b09bc2ac331b0f07abfb168392fbd6de473553d6e7d121b72ea40938e9\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 377\nct = 9c01ced38c4bd5a1b6912869b8a903de9a025714b190cd5faa4966953399daaca07bef92d3110a7c3ffa333daf4cf6829a8e13253a025df8de9d4d0298ca6a9159fa8453e0b4da023cc5363515bd7e001b547952cee4364023886f24ac948a26bca19fc3ded54ff9c39a7bbd7527fe30b721c0a082a72373ecb2fb9a744a86264188189f2ef26906d26f3244b56629f6c315af03ef7a65e0106384de6d2e82b5ee826466ab96799a605824adf790ef9c6f2607fe6ec4b9c876db0913ac32224aad7702fcdf459c4139d4602024d56e4d647c096a5651d5fe18cb31980033d1d2e2d4ed7f33764f0642a8101275c8d754668fff25e447c5f2dfd103e97bbe71a9\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 378\nct = b3802e5f271ffe88d8bb023bb3ccfef28d371bdecd147cb38febb505f61c7f71ddcce2f2d6ca754438ad74dc1911fd57a4e99ca18bf9e58101eca2f2ef7d9d04649638917cf12d867bdbd0e392bc81cf2e8c083f5ed77d52217a3f1f9a2b2fcb507de6614f63c2c897535009ee8dcd81378ed12f1172463cdf660deab67e10fe97d03aa4091643f66b7c47f84a3132f0f27b4cb88594476b0530d686efbf5c45cb027e621ef63114f568b975e5a904a35dafe31f69520808b3a73c87a5da708608b87b8c0c8fc10e96c71210612917923608e1649cf0d575b3667c6a45edf3c02aad136bf94ecee334218e054977aae6473bdfde6dd5b3442a8f145681700f51\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 379\n# Longest valid message size\nct = 06f29ba2ac3e9e06358b3af5fd24bdbbcde4e4a6b74334581aa1f22839caa4ca1105a3f0cbc6d8a2dbaa07a44fc6fa1900bad29417733fce56dde82c083e0a1fc92c4b4895776bf8425a4ce8e28d008b3ec8f146542c47dcf658639b5bfec7b445a2cb62e7b3e79f5d998eff68b1c22c69ba838295ea97b514f7a719f74e3eaa3804455bdcde0f203162aa6a793155e5a0fbb8e14b61aa1a52aaf2c5a8601df6c8b1aaf8b4ce8bcb3aa3f44f767b1a6081b93b03d04adf7a18257281c07239dbd4ac73950bb8d840b8e233746d8c95b72a4c26595234b76f97cf65f69e869ca1a2ceb7d8aa51a7e3e26ef9cbe2ab36832324eb2853fa2bac9499cff825ad7a4d\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100c", + "b64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 380\nct = bdf6d93ae14b25d1edcf876cdcd4b54d1453013c8bf55ff8fda4413304bcb776ccb97b8f43758f3fc605ddbef3d2174c90b011bb13d623e1bf56cf1c22bd4a689d4653f894be08e3de46f01bca10fff99437c0b5da4b84e1b706f7a75f6ba6da86423ff4fb8e893e8795e9a37f4916642f66fc146fee91cddd0344336ed49c311a14b39e59b5cc88d48c6a57009969e70c3eb98fc3a81cf203f8f55b4ffd329faaa423e402cc9df1a81bd929a2a2ffe8a4c98c8f6b4411e4daf2e3f71379a32cb37afa1ffc816e5a00e4b66ebb597e91dbfb96acbbf234fd0e2a0cfbbc4a5bab2844ffbbedd455e259fee2232b990ba306fbf5bf0fc6fc557647bf128b0ae461\nlabel = \nmsg = \nresult = valid\n\n# tcId = 381\nct = 5f93ae3cb54d7200a9cef08527d77c6c25ee63be921f9d883c118035f780dabeaf9871ebf7eef7f7a26223c626f8d4d5f911538a86eef3d539dcf000f0a2f06f64bdf0caaeaab97206fe0c691eca0fd9cfbeb70744ba850f38384ef68c0242667cf72f58d2ecd8acca83e64601d317e08ef49b438853867696ad73d8b064d0cdf4e63d1b58538c2985aa61c2bd2d52e5dc830bac029896c2503a8b664c995158fe510f884d391a98a2d5cae1914c9b2e0731a6d501513f7643a574e881db8e5fa2129c7687d9c0afb673c12d71d35428d001ebda2c7a1b89cc98a9a44918622293d5f74f881b0c40e92d4d545b267abce53b8219cd601c597c45acecf148de6b\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 382\nct = 2e583275254e2ee262c0a397d2a5899ec793d00862adbaa6fea5d990201188c3f163cf429409aff9f8ea5dd43314a79acc1fd11df1fba7ab1b2691f35f227a2ed9ed33466ac773412672959330872d71018a099c03874e9e4ac2a186fd565038e966150f3a245c8c24ff75de82fabc28ac44d7d149114af20a72ef5f8c8c0f36cc4d770baea5f5f6255085053dc2793babb406117f08cfb6c3bb5c1148f6a3a3f4c183f5696908e08bb4dfa98b4aeda8571391facc72cc99799f321ac8320a3bee94db36550b21cf6e548a0d84d8c28d467bea5c65875b9ceaf1262a7d5779473100ec66680e32f1559c7e5a245c6c4ea2cbbafedf899334455605a5e42bc28d\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 383\nct = a57f88574ba5236bb980b675fb26e20d1fda79ef7cb96e7354675ea717a5d4e6a28a947d8eef0fe97d50b0dc512d19311ccd3e63a5b8fa7443bbcfe53f24c5a9c5e5f498f1338f5847779a07d47b707800e74211f66257e0f49fbfdef4fcfb51da4d8299e057b8f6f4612fc1159d4cab6598d877105be6ca93bd8714875e587de9488b3de7acaacc7b95980a196aa59a8ee7e295f0cafdabd4f12f9c644c1f18e093661ed101dbddfc692c9b84a7c70b3103aa92c8464f0ae5b1af16c0f6a614bfbaa5fbc757b7aeabc9b928cde896474dc804ec1bfdf4e2c4a81002a3a1055f6cb1621e64ebdd92b91108994b427157c7ab8e9cc3b81b3bfb60306134fab007\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 384\nct = 46518ccc7ae0bd6bb28e9d47762dfdc3f596048dc3aa83874c532a222dd403a1e4429e0312275313c1d3f4638bf84d6f8247f54312de491d5c16c37aaedf378f93386498cd3c9a34268c056b1cba7aab05a7c2111ea3cb7dc33ec92022d17f62a6cf44d7f786906a1d97a1deb91f25287a294953ee7636e557b1fd457c321be2433590d3889327b4465b29d0959d69113f46a2eb98a2daf14af4d5b1abd075aeaad65d1b7ecec1783920da386f84521c2abf0ba710937dd88035f9eb58d77152d7865073d59a8b9b7206be345d1cb08ac844f315906573a3e261df0efca90bfb74157fb4b3c6b7e0b221fc9707dba1137962e2f69d19a6372ea53fb69632744c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 385\nct = 6f8dd994aa62e028b89012c5577ff00e7dc1067dc7c2d7527037105828b545f353b43a2868f47219ddac5c1578ff64d5241087a949cdbe017cb8531ef0be22900fc59ae1ae972c61d0a52477a80f695e99a8e60774e1e53bb8651e914798bf42c03e8fb1dd86c1453506e717fd0a557f63918ab89a50e5b934e8ad249f694dc23ec048180510580a8173b87568c6aae2fb33d840edf7794c9187f33f20b3d1c625978f4f682055f89cdd35605413f9967ec99e5f8dc89fa27f9bc31d9f7243f08a00125849ac04d4c517f7c70329e7bb2033bc0a93f635c07c400bfe6cc19d57d025b88319ff063e1c880627ebf2f74c52477f4fdc67ad941161a28cb9f9e2ee\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 386\nct = 8f7f0c2c06ffd1e7a6cb2004d36fc0253dae2eaa83e257af9949d0dd7763e979b30143a485475cb79534d4d57f58f37a1a8229839eda06c43aa6cb44edab9ee7c8b6e90425d0a91e15b8d17fe9309c851ca058fb7f36ddf8888401963dd5f9ca85dcc39dada083e52e1ba28f3cc4d72f0556ce67800b76bef3173dc35646b0abae5f4e2e16d70fb9f9c0295de0c9c61529a3bd5ca9ee3427fb9a6d0a052f457277d3d4fe8fde6d2edac5bcd108f158cfceed5c1e4a3670aec44a9585787b42a46a990066147390bfd361b5ff87755c6d9dd3ab0d84043c307df488d9001fc3813f93b478f2289a649588e70468d36865405e5fe2e31ccafd5da08fc5f660df39\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 387\n# Longest valid message size\nct = 2df50931485bfa134d92aab9047d5078ed0e0a6418a3f5147894c7ef154a2c49a37de811236bcb43f1182bf4ab8b0503063ff3ba025481a94d7620d378610500522f9e1a0bd6e6eef496c1bf3a278540fa31f5102ff837d3dea1dab29c7249c6135c9659ab9eb77bcbd932b7f748118600ec1ace42dd9dd53200e7538cfd4ed826eb0f3598a3ee2d37dfb3459abd08c4e62aed68824ec5189283fa04ddd10127c4a63ed411bc5c947a1d9e4c9bb16ff93a1239a7cefb522032153751182f2377b82c7583676216dd459a8e08b4e0a537c6bbf9f6e93a6b5c5cd56b5454d667f1327c19521510b70848ffec7a89d13cb54ca5a5c23ca01ac96ca89bace5910f04\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c103", + "96629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 388\nct = 6637f9adeb1e6ea367a5c557e0d3bf0de4e98f57db62df343651d3f16e46d447290f381eee766575dfa267a1bf07917b3677f7c851abe810e69f1558edda2b178ae2fff5580f8a7e60e48eb5912e4de1e489012f2b393868e0f378c2c5816bb369bcf05947616a471d67ceabe8d982c0a43533c9744d80e4f3be99a8aa2aa8784ef822fc6136fd4868820c732ee1563ff3a4da3b6d3ca8171f706cb038cccd8eec52df3c8314439f545c0c143b8171e9cd49a3b272cdcf65c05b351dec20216b07930d3504f9f0de8d4931fdc727c2f6ef870aacd3e27b12d3dc325a2d035bf76544d6804109b5f69986e75182bca5b755cad52265390c4207433bc452510544\nlabel = \nmsg = \nresult = valid\n\n# tcId = 389\nct = 507071370a342797da31c4f8f1ae315fc490c13c02497446cf3f42fe84640f8fad745e7fce69e6960378ba2e8881a61aff5f97d246d574f6cc7f49bb0102b9470fc4f4ac645fa6db563a9ecb1ac81933199b8f9164f620b8031e73fa43df232a440e7d0674d897dd6b1c05ff1d578fa4fb50b77e8e0068896248d13eddb7a111503ba33e8a7c61b421e3863d2b9f87c92e806ee4001c4156842924cba31fdd3252f69149753b58ce28ee14456faf3a4ac04912c45fff3a273619e59d34cb6ddd0c788f75c67b984d67b72c80842f1d5cbcb0eccc99dd2862d4e5d8b6eadcf6c6ac6dd3da5d19f0d2734413a892dbda877df0bb77dca0e5545bdc8eed9219206e\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 390\nct = 5cec69378453cb061ab6d9266f57e362fc1ebc43cf9fa0eac048ba7e640bb74cd9d7dc71b911cdcee164b0ebf96c782df68a43a0f18ce957ab7dbecdad9cdaa14b6f8ba7e5fb95afa8dd32401a3b5c736c9065b234df46035d770cad7916821e68d124bbcad794557bfc370bb217956f480d1022fb2de15bd68a2901e38c442a7d11482b2a297bcbe6dfe4ac1434235c73803c45ad8a141f18c03959bfc9883d8b9ae1dca5d5009fa0bc9793f9c5bbc638c5661216ae3bd15f99050922bb7ab460ea8c7d4c83c9f2122e2f2a49f4a846eb7bd9e7b7e0f554f929def57ccca46cefa9336fb308866c36dc43e53a0f397d3605feb3f433c33d8799857cacfe80c5\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 391\nct = 2070c73227865626f78417ed8daeafb970f48bd51a8a9f7b716b4f48c4a9990cb2e57d55ebb28dfcf0a5eb7a28322d7399340b135b7bb7f9de3ae0807db6511145a48ff3dba45613b2da0c6b7585cce95489eaad5723b03c26141d8548bd4c36ccbd550878c4102be68ab4156ec2adf26835ac504c2e815f913da8cad3ff1051297db9b73f9fcc2de13df638c3257db301e491d40b0404435069e39aec143baeb603a7dadc27e491b3c18011219b8310d25b6c31bb951c3d613b62c1e8b2fd73491121e5a99380e38a1f39507e4c1355aa38fe3ee7de893c50dc77872f4f788c2df8152753b907de7963709772cc4daa278a5333d14658d4f89d0b52f885f5fc\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 392\nct = 1793a869b4ee398a1c7a77aafa3e6f2966602e1f0af563a9d4ecf465c9072a4297ceec58192babb8d5fa1b173bfa6fb86e8145523af762d7371b35fe93fbc088c959c6e23a68d4c08cc6fef46155732c2552450d9601f87244aa1be53851f4690bae35629ef8e77afd89044d5c3f72b4d03f4d9aa3604ed08af5de714ea20b5c225a13d600155114efeb49cc6f337993e5af4e0a47df9a2bdf6b936d3987d01e1762f03722fdbb08b542f9fa65b8b6ef3bd07d64622aeabaab98a5df84ec7782e0d39a154569ba748ec809f7153fd3be0ec34ad17077b2c812270a17a328b46f9440184a8646814c9aefa9c1db99a3957281043c3827606ed3e522cb170a4c2c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 393\nct = 949c25fc453f4459191d244b42b1c47e63f6500fa4073cbdcc054362be1f8963af6aada06c6e1f09cb29b918120182ca4379f9af27a3cd82c20eefe3d284ab94aaa3b7369da4764b48ef371680548f1495edcb161d5e4fff17fde8f1aebd9b7f212dbca7f57997ad7b929a769192ebfff93dbab340cc48b750967f01ef7e695bf279536712a93224eb6147a59579022aea8f67be2101d0dabc681f740740630d6f9ea1d9ee8acf818a2d88b9e76c96efd6e5dfbb23dde9e9eb4dc2138b329e317a9a66fd5b4c6362c713c9015be6967044380973f8bfe5252e449764632db78e5471def248b13eeee6a71d8789253a6e8de19b9d1cfe250672a7aff930a4e97d\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 394\nct = 2a21e3686fe4fd44756469d5c45768f08ecafcef39d2ddeb5181f19c30342d46c14d102b5a0943c9865cc268b579587efa006ff9188bdc6d63ef419d4528750160ec422332d981b3e0d62ae92d7f7567e1fbeb8d81a9213af6d8eaefe3e7bea4ef8636932e5b8b2831093db29787291c94f98beef47de2b873d64da6653d480fb62b0f285acdaefb5bc18e526b9263b22a6ae5ce9f1c4134f11de2ec0ea37e6d4029c36d06388d4d912ccf67a1193f79848d5e60e954b75c201f11902627e838cbd8d10432f1491c596cbe7c4dcf11c4c45ffe5f414c9c61765f8bb1bbae01b525eb890f30c33a49ea32b9299ee6cd139ed9287f5c40ad6f1e2c777c85cbc8d5\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 395\n# Longest valid message size\nct = 3de5f5159bb82733c29dda8e94ad2fc52122487ce3d02ee543bbf64b9006b395137e4ee5928c738928326c2567593567d63b46e4063014aa29da64d0c8101e23923d03157054629ca07fb1b896af3c467b209acfb618c7eae4c01b61530e7806a4af8b3ad8211bcc83f3f193465f6aa4a8073a5c284eb626bca6d02ddde287e0ff1f4598d33a836202bda415065c39fce349abe5574d4ef2ad22e370eb5976c03156c6171e9acb13468e50c73ab37afec1e21e3c126eed803267963d27d44dcfd3b058545a8d56f82cfaab1062bd16aaba24df15a16698bde71e2fea882b8278256bed8db0d5d5dcfe26013815e84a9fc2709a8eade3a15fd757cc60edc47a5e\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b3902", + "32e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 396\nct = 8e6f127b86ed4ce03bea0242759dec562f3c0e475d70c950bb9865c5a00c19186487f6dad25e6ed4600510e067a8679cdd63f7718af92e5cc297d74d5ce72472c404083b156924c39852b03fad90becc3da0cbb1e80556b4010e9569c61e3b188b9dbbf58f779d3be5a9a7d000ab596d69c9aa48fa6c1f1fbc5be79ec39e27b7a76191b681a02d61cbc5924651198bdf9bb7749ab4a515d1ea1d9d32dad38dc703228985985043c152e2d8e918b652d67a40c2be1e2c6cc2fce11f6c923714b11732d8fdb1613c46bfcecafd64f9536fb7b41816736e3e4b62a1dd6e4c26e8a8f66d99cced308127a39ea1f21a6d7886e22aabf3ca6d6464278d930bf60f277f\nlabel = \nmsg = \nresult = valid\n\n# tcId = 397\nct = 7a896725e0944db789d4caa96bd8701fdc100a26ca12e45d7d9a5f5599fdec0a8ca5ba9e2e0a5c743d2e82a0006b915e6572e066c30bd794e98fe0959519f418d5587a5012ff9b0c545930e3065cf8deac440ef60715ecb8de63f2bea7fb80bc81cefd2f5b979bf0d32e07e615db6a363f0447bec068db90a9e86bb4703098b3ddf1bc34b2803930b56fbb8e026b8691248d8e471ed6dc0a90905f96412470f1002ab2a754cda6dead97c5a05fbcec5d0398c1561876bac021ec4cdc6915d929ebb6fa5ffa1d6e37db99951fa19670ae0f8bbe18bacab54bebeb5ec2dfb4a0cf69dd7077b3229fd0cd8580fb56fa13c399364e2bdecc1a0bfc6eb67f01a17fcc\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 398\nct = 835a8d5ab336e2133ade3b3537dbcd908a49d3933d0747e6c567e6e4938346b40a208321669f82ac6fe7055b4c435c455772ad9b3809ac65b5223c04329f232aaed6412bc6f024575fa9eee9d5f813e384a07289b9b203cf8cd7e2bfadf949aedfac4e08705a17e4db719ece091d46b264eb40befa199cb27de1a744c96182483ce84808686afc56e414ccbc2f219057af1d7e23549f44f7bae74f135254cc965227aca4ecd7b4571cd05cb2c99b6fa55cf7ec9c4cc085cd0ad0ce90e3e7f68af2ea3e2a6097b81a5c5091c31026261a479d46f05c45ae016e86029dae86c67afba8b8b6e8e646a94d07d07f3eaf8ca177c6c0ed05896971c0a911c846ffbdac\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 399\nct = 822e8870c00908cbf5032226547d38e423deb912c49c9fcbee66920cd2e9e3197b3fd7428cbbc5e90e660545720f180ac0ce06205cef8735446de30df32c8797380ccce9c0512eb285b7bffd883ef00fe118f027bdc75700e511226ec4da35f406e460fb88f9af2e9c4ec219387676ae21cadfad0fb1d704be69d0ebcdda90dff7e172612c972c6a974b828acee6ca186c71b50376d1ed5eb6c107408065473d53a2ebedc833f07f60f909a6c42464d79d76f94531a0d386213fce5efc2e66f311e73b06142f8245b063b9e395722dbea029dabe5ed1c12788b890974ba1d28492cce2c90e0a3026c282964763a030a7f7f3f76a72843a97d9eee17cdbbb00f4\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 400\nct = 94712359a945bb4711cabb40b95020092c43428748b10e0f11189172d7052b28401d96ffba516a9d491895e9e95308562cdf17953a4e05bbae8c8cf391e7c363506ac86d46932b373963e9e661e9de2df322719e6369f3ba68f42bba78ac932f7d2333759a53d4d18f5990b18a6d4d0af96d9a9451b2d5a8c3f427f607380997b5b2029f58f04301b52c18cf57c2a763b546a21b8da9627070a1cc30bee0c75863b196128988ffea683a4da5203924db470a53dac36a3fbec3dbd9710f85ff6b0728a692d640ed7ba67b7e493a7b95864a2191f617968ee1efdcdb5b015e45da55086b2b382a380cf66bc61521b2327a6bbf247ab7635da9a48acc119e867467\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 401\nct = 610aa2973bb0d67efc725204a0af7db852bcdd8227e309e6a523ef627555b7aeb783dee396934b61141590952801c027a559a3b7380abb6724224cf825a9c74dccfae278719551bbf0e6a8125d64bb437ef78c24cc00a52fd9a716ac20102b5a1d8fbd445d9a2d4ce2c55a2f549c2fed8e5932cbdfc8deb907d973834c2963720557668d61e3f2e53564d6db7b41899873e3ca66a1b5186a8a545d27915aa466df12ca7163a7d8137eea71ef80690d229deb089510567f24756f0f70a1dac609a57a11ddc400af943126e5c5b118b76b769dfc1a7a6ec748b5b906baa0f0e188b1c6fdbd6bc307af0fd9b4602ea62513430b3208e3d690707fc2d28ebc432388\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 402\nct = 76f7b6e1cf45b005ad58b5354cfc5799f74edfb27f27b414b4d25500a1ec4bcd46c6b65603b204f69a2a71b8d1099ce96c8ee52e119ed9b080d86d82789e3e5777cc5f920b147126ec8612b206bc5734e828ac819f90ea7191832d570d376df2c4e3eb5070fd8382f8c0a9b89da928bfbdd24bf1d17ebc83f9237a51352ff04b6bb3848cb6a9c195e5369f4b6ed9b4cc166377f88c7e6db6ef78c0e1bfbac5a3825867af9b22689b627dcd8d1441b515b15b78688b52b04df4157a888aabdb9e792c65fcbdcd03743fe45e637afa7e422782e6da58b95163acd59353e634337abb1c15b831a9dec79c517a5be0b4ee43f7544a2e9bf6af2bc53b080c60dc2bc6\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 403\n# Longest valid message size\nct = 9edf0e6ae25a3e7b6f31fa13a7a31db0e6ce2faa624c2ebcba9669bf5f205758e1e904a9a738bdf430072b0563d1a87f16522811d645cd9f85f13359d2961bbc583a3b15c66ab5a0d1373c2949261e3f44c2a1a88e25190efd30aa9fc410d2d23148c16daa90457bf1ee77c2d344525036e037ed473275bd535fa961a66e47072b586915d85d3d7edaae7945b5e7f08fa15a4d08cc669b3846b1ea02cdc3eb9bc5a54aba227f9434f19d28d06add791fce9efe2171e2c676bc1b09bc163798a1a74b7fdedad993dc47c8323cbe3aead96d0d4e7e494ac390200e6a79f96d88844d59a3d78626b0797b902220874e6957e6c214f3ab7574c6e476cc4262beda98\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f4", + "90ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 404\nct = 878dc3ef477067ddebaa6493c2175221f24d9417b38ca85985880aefbe4b27db9dc160e88d232991d5e421ed646fb74a04998fcd95aa1f97cd27718b80e5ac0065fcaf5316bf2b1fdcaccba30ac5d8fd43b83abfc6bd0a0aff8c2abc962966145dcf509f942f3dedcdae87585c5ef7446782a83e9aa28d5f5da436e186e3afd0d4d48190496d89ccb2253edc33c8430d70dde1fb3203f00569933677717c75278bd92fd79a2219e5be871519ee6e15bcd30280bac6ed1a0981e6236056d1cdb953f24da5d1bd2af084c642e0aca0d93d11c12a6ec7d6c2ae04682e9329860fdf625b6504cfbf3fdda7010774df04b97d11f7ad57a8e8ceda08a961e28b0821a2\nlabel = \nmsg = \nresult = valid\n\n# tcId = 405\nct = 866ae885f3a885c6a2225eb67e7bd492779dbb5326be63869c1f93c5c8655832f507997fb03100e8703c699f4abeb551ae2960ec482e7491301f51fbade50f52b68313302b9d98dbcb2b25b99724f99e397f73e3acbcf21c9a6a977230eff524012c25ca2efcf6bcf7ae7d26a867e69721a2ad4f79d386a6e0ce76fc6511a596f0ec2b9359fd6506c35db5e12b7cc33a7ebc1b8e4f483d60e7b9c978f8697056faaa1498416252c6a034acd977473ee15671fb4ffa9c239a2ef05127927208507fdbdd11ddda9a659ed9ed3aa60eebce46886881e273b990052653f19ee8174d441ee4f1d9077a4d3e207223ec50768637071b7bdfbb911bc07514ead1e5fe3c\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 406\nct = 140b104a2babfd533a996a13f9eff921c926c2d2387a8d59fc396034150eed63c3b6707bb39dfe7bedcebfed6ccc006106435b8d932fe858d248c2261fa8efc96929abc5b04a992fd5d480639cc45895a8ded0f441f473f13a8264239ec84c25be2787b23b3754eeaefd736738a8fb5fd43f71d56f4ddad414cc663db257752039057bebddbf078d8924ac7b7ac5347fa65e679ae6fca977e2d66849bf271adc5febbebccb985420cafebdd1c83de1f640716e0ab7c6f1f41783173e36d79186dc2b160ff04654688e99545dc3253ff5f8b65cf3c26566b1ef77e35e87014d7c9e06459ed2e3f17d27563990330c2abc9a5016f0d994cc9ec9f90d7c437794a6\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 407\nct = 5e1280d753d77814b80028b3ecc0987f7de8da4b2eba02784bb9619800be1522cd9751e1c4352d8502133d524c9436e0229f15aa054491e09e624ce2d372374a21187192b0210bbe25b21436650513f41989e722562875172f64687f2da2f7068ee79ebf0ca155b23a2a93000a7b080c6a28d19c312d1d5f42b1e8dd173bec2dc006f0e2739339c6d24688d6ab3ce6ffab24190b8ca56799152aee6153c975a59c7f7f2a7a45ca48114f2589808b9fbb6895a56ebba2cfad78903ee34f91a6d66a3ccfe5e9a6449d445169744c88ea1e46e9c15842776bd5fb8993083e234cbd1af566dbb02f22a9f7f291807eb8042a07df0268503aa6bfdd5d7b405527c290\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 408\nct = 0a6116c6e717ccd077a612db410c719d5164f01eb4f1b713920ee37f40228fed2f7bb0164b69ea37a6b6c24eb35457caa7deba795839b1cc3581f421db5b3ad9b91f0fa80f2e1f915c5f249b73182520e00b80dc35ca69a4898490d6304111ba59642531e565e1b223ae0d6ce2c58f5dae534032b35e6ca6db51804c304ed04d668a8f07a6bbd477ebf707698b6642ddce3bb8dbc4d569043c14457b50e1b0fdb537ab1873747dc61fa68b16423925930ec72455b14f54ed570b7a2e684a778e52e369ec0391ca5475045ccb6311cee377ee583813930713a12e55ddc5d8603dfa5c36eea81678f72001a68fbd1ec72b8a4f22add0a12a264055b207fc4c0802\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 409\nct = 2f0a14d60be6ac96fbbe8534f274d2e289291176de0f8230b73007fcc29cf958b251eebd74cf04fe3f47825ac9668828a6969fbae7ee27398554258107f59b1a27eedb82c7d703112a256693ab89f4ad322f2cbf0ea2927bdc5ed9ae0ee26ce5d942f48326beda82e7f7eabfbe49f248a24f7b30eb26522a7c5dcb18fb91bdebf112616e61c7a033796dbf514fc33b12a46a2da57de4cfe3d24ceb9f9c0558a05e5615586f1f9f4a590d39c0999627a43927cb8a5154d86873cfdaf48172ed38f903fb17e1e400f420a7b9b0e4f3c33f14872c9305d826873f81d6c6e9279d4f94c4027cc67c03fee54038f5da79dd4fba788fa65b552d4e13bcf9b12b8246e8\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 410\nct = 1c5e12b8ada08cde51083717c0c90622ed144f7c78c167dd0ce11bee29f038252dd0db45c85f149c0797ca736aec5dc73d222a3d1be66434315d6a4c0bb08ca88b93cd9d2abfbcc21035a2dc41cf0399b2f21bf03557254c83120b15f437c631145beb980bfe682e2d9d3f446a749afa5977ab1ec4e14f79ff6d78d4d4d4e8bb52948746ded5d9ba5d446a96d4dfeb55ec92a9edde7e696f3ebe8dfeefbaa5b0cd8507105b857ba99e49230494e1fe23b282f183ac7ff3d0f2b51db97f11036d2e5aae4763da456e58d1d03d79423da02106829cd8d0f89f729d5f65c610141d1f22ab9820c67e550fbab0ba75ea6e5b2589e6653807930f962eb890c1637a05\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 411\n# Longest valid message size\nct = 2b01ba92495abaeb2709a1f5a9b878de989dccff7d9066343fd16daf403841c4ded50e2a789566c3654712074167b15eea26649e4f56b2a905056f13c4c69063f3de24aff4d1526ca63f52951b8e0dc270771ff4e9cd7d4e56c949a499c6763beebc3a53c05da9bd6bc117c5ba01058927757854f1a1e42669323c425f917d808686f7a60f4b12d53019a8d9054bf74dcffdd6ec8012cbeb2083b574e35d894c83cd50d191181aa8e3e6050f744dcdf9c1bf1d5c4c1a4232f596bab00a8601192359ec0eaa8df23eb5d95863d97284cb9e17f6feeb9e6c2904320a24b669d67d75b50568ba31d987edbfa608c71419477518fa46c1fb590753b61730359704d6\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460", + "d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 412\nct = 6e62bf24d95aff6868afec2a92a445b6458f16f688c19fe1212f66a63137831653cedd359d8cff4dd485d77dfd55812c181373201f54aafd65730d2a304e623455d51125d891e65d97fce52341cae45fb64c38a384a1c621e2713ee6794633f029a9fd4d774f56551eac2176162e162640f25eab873a3451c475570f19228bcede4c67c370a75ed7fabccd538c9819eff182481b10d42f1a9f6a05373b8cf9b71818d467bd3b8ebacb619e8ad42916e600c043effceb3855bc48a629e60ae886f51b2a7876b0e623fb2ce68af4b039242f963adb0e4240aed0ed07f65f1ee7c0cc77d210d0c2d1dc10c81b881aa0c9c9e9499665cf2970d2ccfeeb3191531765\nlabel = \nmsg = \nresult = valid\n\n# tcId = 413\nct = 207180c340658b5154ae45d2e4e7326a0997c683a26b595e536a29333c4b66149af85e029d5419a39e3a147b221516ffd86b6b4b66c3e0c4c49fe8c57a2f5c37b8704b9b592b80db9cd788a4ed51ab4f0a1cbed63bd18d1f06a22f225866b0c2c417cb23473b7ba4250b1353bd2e5b4f0f937cd2efe5fa38db3c295f7748b970088657db4aa9a76e1ee6fbff166ec1861d00d085326c7384bdd1bc2f400d4f74dbdfadaf3fdc46073e668573e02030b9eb5af58eb540c66677a771194479ec0098d858a2ea45d0ba1e6b32440dfbac745000554d51a17684ca964b02a74d479f1d432ef763ef4059715a4348cfe36a215359712f25b6977903be4adb92febbf6\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 414\nct = 5eab3f0741e63986ed647d53e1cd71df041986900803d0f99c68355d249a15a47dc5b4f70a191477654299e5a2731f3b4eec76dea18262fc696ac794e5f66cbfcddac4472c578e246c26707598055584540b839836b1404c5611ae558a984cee8fd036cea924e0be2474a940f61e0acc14fcae95ebdc59942a9ce9af9a9c81999f7f6815f057ffdc2533cb15d6391d1e2d95f16f9c04209c889a4c359c7d2926d28a66e2b030a416b928d2825627998e5191fb4983a6e65024262d94fc09187a2d78162122433251d1bfcc8e507d06eba2d229c10031261da32ab8ccd15f1c5f9fbf07ed158483d736a110af4b44d6a4da60d6cb519b4454213cf9f0dc560f2b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 415\nct = 0da290b0bf71a1141b2adc62b5b42b07fc52520cb05d1f39ccca7b7c22d379a6c2f2d93143d057050140527a1e5638243938b531ec3de7014b0151301e49b9fa433482a02abdfd94193dc9c70157e557776a69ded01ecbeac405133595c61165a428b6284729a4746b47d2bbaca9d7432c3b5693591cfee488eb3c68ddb6cde0dd61cfc6952423f994abecee34f5683732b29934a2c498ad48cdd30c149177189f48eefd9cc7232df18be11ff5f7e3af7319e3115997c599e2d8f7f4f663dcc40032d403436d3058a5ea66473660f0e195281ec6eba997d2a951ca6ca5f3c112715c89da1d3dfb20a21940594ed10ade90ed7452b753757d7241cb8a803c373a\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 416\nct = 121196e51a3f4476bfb6adddfdeb3a25dad72d1ea315d652f331a43631ad36724b3d14532110dc44e407b1184618f115677b33751fb0e8786ba220cfa7fc3fce22822eabdd4fc2761c7f34a04e8f13c1021c31adc123a32d871f0da6cdacab9c020222da52afd5c307a6e55e4566944403fda426ee2c6c973ccaaafe2d081ed8c5b1dc00662424e395faed86c9ae19a3a95950c83d2a9ad5c7e7f670faeb123acef07fe7795ad298aafe543504d7811336b3e2ecb1622bc90599a185b34700f8f4c52a651d73ea57e8cfa80e61d9da61f36951c7194ae4dee3c6e67b5757a39685dd3fe01cb87620a54666ff8132e93d7081d38ddc9f079431075e96cca78f59\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 417\nct = 7ae8e4f5494393be144d81517f11baf4b634bb68b2f0ea9b30731035e8cbf4283c0ca99120f60b75ef685e989fecd7a5dc524cb66292a0ab87ebc61e67baca1a8aed99350edee045dfdd029406acb707d85dec9555169cf7ec5118d8f29d182f205e2859a8dcc5122bed640ad0ef128deb21785efaa20f92067dc216cf40c15bd7130e2c094131917950a816da814c5990fa6beed709a0218f4ddca2473796e1b44cff6d7ed601c574a784d0865d3afe5fec023ebe71bca881da5637e3d1d17238c20a5bd0075bac018f07898f74b9e6dc0fa3d5f8d0b274dfef3e6720d8396b34a81ac2e64da5b3e5d7666323ed7c56e8bdd179f3c6b2cf05bcac402513dd87\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 418\nct = 096958786ee7972050d67a9e4b69d6c6af7db7cc674386df725770dd29129b826e39552330104c8d71e6cc3a3014dd2f61b54153af51b0438d447ee939f9e3c13bb8b00a37dea6a068f6c9d27e848b1be7a1eeeb3ee50b78036fba95ae46948ca5b13f356ea24db10f60dc09e4b8bad8f766b668ef72524432080a0ce00ed676d6d5e354984b1078520412525848156d06f0652469f95791baa3d9a798ae537094f76f976faecd5c9ce0c930a75910c63dacf63485cb4b5e7bdbcf4d80e74037eaa1a8fe4b52930bec6be99cf6ac88cf5878dbf6859d456a95dbc34654eec425de84ca2a535d517403a9aada827e7d0093ecfc97ed056a7652825e9a45cb2dcb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 419\n# Longest valid message size\nct = 7efb69f1137d6a6e813b7ab75bf0400b3d07a442b88ab048675dc06b0215fc1a2e033263ec31a6c1d2eac56cb0470d69022a48131d1f000bbed70586b80cf6356465c8834daced7ea2a5ff8ef9c44d5ab828ffbf0556a6394752a4a28a70cae20084e1236f042f6c29de5cb34ef73acba5abcc7ccb3a26342701df3b9daa945d9fa5bf0b9b10306655e56370183f50fb8321f8f0cd1c72114791fca5df2166296b509b01a0b291c46110787cebe69d41b3b1e89590bc2f5e5d49ea24ae0f1207eef1aee54b9760553e80c5506a8a8a75732e92875025f0bfd5ead71e4340c8a9fa16dcd5a7dc96d8c4a7dc4e91f47a69366445c4695c8bad578ffe52bb672f65\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfS", + "ha = SHA-384]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 420\nct = 05fdf6cbfa4af1c902361b4ba8469d75324c75ddc0cf88c5059fb68fd581545b66a87d6b39ce36162299a3b0e97865c32529c337a0a9d48f270c42967d41ad2a0793a543201ff295a0dd097ab4d8984f54d50d5be6575a7a2f94424c777a728aa78810cf7b4eff250c58c6cf85e3d1a76c648b3a1c054b4e42e538ea82fb02bbdd6a05b1edd029a52cc47b9826e010fa8aa024aae247df46f9cd2dec412d5182b5e8cb1264db01b1d82ab7cdbad1fef25267120045b0004f1b57f00e7f367e408a9b6eebe1dfac664d9741bf04e3bf241a08a5833b6c276431bdb011d703da0b440eac24747634a6d47b3bb398f3b71fe0f03f4335b1cc7b7a54bf6137f0856c\nlabel = \nmsg = \nresult = valid\n\n# tcId = 421\nct = 26342a83a367b1ba2dcf9f57621cee250f1b87e5944da80bf305d65a19d46934fbd5802c6651493601e9ef2a7d4f96d1eba3aa7dd0ef502a48aee7ebc1095154a3874215090d588a599ac216744d18c6ce30588b4664c893fa304dcee1a8f7c10f51012c74dc22f73adcf573bc1cef7815a21efdff05c9ba207751f57fc61d349f95eb9b8469c8fe2956e53afe6aa158ea419cc346e6bee375b63c41ff00d0f9feb284264100974cf01d05b81cd240719d0dd3eaf7b61511c9b6703d2c3be06bf36e21573ae3dcbe66be3c6760759acb44bc9023297ebfb08a647b3f1bc352bbacfa1c661b404b035ca55e661924ccfd3963d620c678c03b7ef1d6110c1b7951\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 422\nct = 9ac0a46b869da3ac947b540a5881231c9d284c0ae583aa452a4f9694bd7e892d4348c6bbfa2f02e13c9790e3005d1578ab64c029b3ea92389c89c08ddea6270b9391e8b86dfacf63e06ff94f64da5d140e48baf8d8add17a2c97600da3fe461f44cf9f1fc908af081b6c8bbceac47c7a2e599ba5eda9a0f5578a7a0d97258d3b1cbef0b5e08e53473bfa736a9750f821d262dacee03e4652a89200cb4ade1f19fe56cd796a10738be1965f96e9cc235e7144678530e069a2800312fb70c44e85676628993298f169ce1344f31e836474b6d0ae71cfc4738e8c054869520948adacc1c54fdf03df0f285279ef2a45260f45ca964e111091581a5bf97e2a64f05b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 423\nct = 14f25db5a04acc950c49e83747cf6dbcd3b628599ef9b737039240baf0ef891e131b2e96c9e0b78cfd649000387ed5cc77bdd38034889783de5fc4904ad100f788fcd8668e3821daa401ca7d60e02ab4554c4101fc70b5890b34295d23618b9e3b424e7ab34308dd12c7e4c436993f2c5f11cf612a9694bb1aad08d65e534489bbe208d0e072d4b2fb5f724739aa36b21588b1ac431e947cd1023876cd3011b5028a171f9fd2edc06c139e9debff14934ee83ebefb2b0ac3513d9bada027001ad911503b36de2dc93810bf0534ee4bc7cf5d5041ce21f3326b2c52d273d83d6ab4fb2adbd2e21ce9ea37bd3f2c8e616a295adb7d99125a7b892668b68def6a35\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 424\nct = 5620059fbb281fab2f0f4af5538101a03709558efae09a3d74161081968efab1380be4f69d59d4212cabdb4fa5a9bff3a51bdaa577116f55d500671684953c6feb8f76a70de7bf3e918c80a1c48af29df8080bffbad2d0f5f081150402005cf7d21c953033cf8b2af8c6990e13001df6f4ebebb7fe9155465ac64ebd1aa7bf7189a04d8f55dbdd286a4a3553fdabb7c25a59bb1484c65ed720d3ba8ea92fc5038a42c8e0cbc21e24b12b53468e4538d7b6dece2e1e5db591a865d40211087dc1d9bf84a99e61e2eda02f456c0ecbb1dd8642eeaf40aa7f62a4041fbe75a82b8d5828df809212cc64660cc223973eb872f027ce8429af964febb9a2420e1d43dd\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 425\nct = 4010dbe154e37bf5529b967cc81dd15b377c472e5a3a424ceb2c7edc5dc158509ddd811c93ca13329b59d9f898aaff073594d01c51094f7343efa2f498149c2d4f99a4977799abd97eb73023f76273671d709642df84e336b4370900251b7dc508e947b46112619addb5422bd1792d6167b34fe9b74f23ab480d5aa1d73669d2f32bb01d9bc1d5ee6f129be8a71022fcdf18d5bf9380beb6d022055b1f6c3abd8e76af0336334841afc479acc9ed1ac8be48780b08a344db0b38f7b652b0fdc5f75ba1323fb7622633feae6808fa81605f0f5f960d98e96c6504094ccb5e203c386d05bd0efcb4686556b5200f854ef25899742242058cc972bd2cb867e1ad0c\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 426\nct = 3cadcdf8cc85865b18964c3afc150f345566ae7375c2497993f08ecc6f74dde8247f8703a592cbd82d0f01b61666fe7002fda7724f10155ae46e0db25b3b90826dea6902e4a7694312c64527e08e0c98a23459ff246bf1109ef3272fab7e7bf3f64059987b7977ce953b5faf50c8bd2f8d6ac1e1021d000a057b0ebadfdd357937b673e20f5e1cdba0719dcc43ade17077eacf98b1e87e9142dca02cb87e7d602dc64ac72e351efd43da64e76ef5bfa60762ad17d38d3b423f9cddbbf9d7ce08c954c3b5ac640a9cc0eef362da1831a2b3d6ad7510f99ee00c03964b276cba32e282708eebd98c7ba6219462fa5d498ae87f83a359126bee246f2a5084c1a73d\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 427\n# Longest valid message size\nct = 288354d351fc0de6df2ac48492a0710b1cff6fbf574de3ca686b372e89701cb924931134e1f465896a71b551ba1d3415a6608bf63a445e18ace398e04a76646025f18d129e4d795eaf08af4c25cadf44ccdd7be15130c17fa7bd3e7967d89151a98e2c8fc0d8bb1ceb2e7d27688586b4e5bad033d55cd4341a73b500fc6024259b0e62710df85858493d23d0359aa53fa9bf583b6384c431111ea9b466c80bbcbac28eacc6165c682fffd9eb849bae71fb22b2b45ef6f11062fd1fd89c0ab6e6587411de16e2c67026890b897813e48e403673aedca90ba5eba5157e483c184da7b142ffafd3eabca22d5a2b5da1fa269a3d9f89ce21d7611122c2186c514760\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe", + "2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 428\nct = 5fb38b6686f4b2b22e9ea8b826dad4cb3a023fac65f25de945da381c544e7fcdbb5cf1eb67079c46fa67d38b2c27907ec521c41688426fb08de7e1b251d299da4ef5129d36f0432f4037b9babb38fcf3263b64298c0237a274c0168371a42e01a018d0f98b9fdbad633adb52c8e763ea9e2f6d690b8336051b035b3f10dd167ccdd2e5461a4a54e8d9c91a6e00559a80164eed1e2ae591d2da60d0e8de1603e5e8d88c19e4c3bdd51fc33161851c9fc00a97f8ce475fde59bf1f2f1891dbe69e65e1b107bdac14d12c263bdc3a6244d4bb85c7289517d5f5de54017e52aa4e2b141ed3c28fb2832e8476d65110fae57ec2ce220a42a3e7150dc56446f8a64935\nlabel = \nmsg = \nresult = valid\n\n# tcId = 429\nct = 60db303a1b2e8ebd19bed21c9eb9abf8918dd9864304298d5a7eb70bbb141ca7820d833c7f4c66ce822697680acd43d0e162605d70b84871377b1e4f83de863fb9240d3fe6c37e4c9211b4682b9db8e660c0a15b0b93ac7a2b6f38dba80b25d43a194a2a8da1527ccca409581b5803df2bde761b98458db563f96a32cf7f7145f619aa06101e7195dd5b845e4761866bfd87f3d7695d2358bf1a916b0877af9c3047ad35110c4ebe23ad5281877d932887a57856090285c9e1b356acf18b9e9bc4efe4a26eb8de52f785da7df234a38dce78d18209465cbbe9d2ae69b1721db0074dfd054c3b5594ee8d90a90026b91b5c34617973ac81558669fd58b2d1ce4e\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 430\nct = 2fa52432a5725e7eb2c91fec27d0faebef6cabe4cac6a80fd57f9e758a0deeeeeb55ab916d9ba9d33858b88ba401b14fc1de90127e1785241afebf43b25cc80b9f679f87bac86adb2198f8cca43c1a33d2c023c6b1ea16ae8b9a5e0ac34a6c4c2ac33cee7822c954df10f24e4f49f0050811728ea0cb4d414451a2dfb99c4f277754eda851fa02db654c9d052d4e01d1a8d973c2b0a502365e7aa2a68940e26da2137e0585cb837ef5fc3760248804fcc37db860718c8c7297e49c57e6b35f37102fdd24477cb74df41fe7a6cfe3624880418b2ac049a67a732d23f87869082acdf6c1cf4bfd8c92701a435e45a42686dc38045c65917801410bf179283d6451\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 431\nct = 7fbffcfc6ce099dfdf8b966e9474f5eb312a3ca8c4dbc57a1ac353df115cce335e6d4b48bbb75467995cde7d425564395a1173d58086a749b3a3054febba078d4b70580754a6ede4bbb109bf07371a7bd93fb610362a6a9444abc33fa5e808953d1c781df2406d411d2122fcdd6745e177f373a29bed5b3b60b6e412026162fa275c826914c3761bb056fd67e99a97a0872d833d098481abacb3e975d69c15424dfe53a671caa09e70e495d2ec11d3bcecb99aaaf3c7fee67db84d5febb1b110625f8db0ba0dcec8790446b21439a31adfb87325353f7bcf355b93dd1b267f4abe301546384b27a8ebaea61e02f3bfee2a8d15d3c7982d94ed37cddc2f37911d\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 432\nct = 7bb8dfce01dba922a00d76acbe386188757711302ea2d9b210e0e7ed308a8575a770e00f4f27762147af577c8407a915c8b114917c80c0cb025c31c4032764f03e80490dca47aef30f6d5c28ad763e9260b7597f43c1d5bba783cb9fda777a649e857292991d8086b2d417be6b04074a1a9a71097339b3e2f61fd8fc04d370fa8f77561bff9b2af18ea843365b3bfd55df775389a39e2d3a32065463e920b9c19d40952d10e9656e535105b143984c69f70dbcf1bd13f75dd9ec95ac599d2b8eddda587f162223bc07009c1283a148edb93265fae8d7fdb31ffaea2456a048a59b55608984a510340579583a17c65ec8392926a4b0d98f6ef947b767bf9a6e34\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 433\nct = 96199799075e6f826c2674abfa52a882830b561a61d3ee87de8b9e14d430d967f0d8fec7911c7781abab06f1ab771847a72b2b592dce6aaf3f41d3af775fdfa0d4bb91b16d6fd38c01743c01eab29a1fe2d36bdf8700bcb34d66851ab6ef655c187001307a6caf1b25c7c835e92f9df5d9bf8b76a2c226f6a57822bdec194951bee7741d9487aededbcb47b3b84e66150f7f69486f6b6b5472fae0d17a090991649eba2d01098c59db8165b66cc8629e93bb8cbae830bab720e9691d26ebdfd0b26106ace7bc0361974e5e5f893448b389156a9340fc1fd52146de25f9f2886248a4750a6352141f957ce6a1aadd819d10ebb01936610522f533fdcb9db1891b\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 434\nct = 91accc3687af57e3108b16c5685831e4836b12350268c575c36ccd9d6a36ea1b2796e495017714247cd49e68f2f2dc60864b497dd7d84ffc91e07c58e357de7dc8faf138fb409e23c7c98cb84e533790d47bffa176da14fa61420dc57a5f753898efed28240dffb50eab32694faba79108dbcae65b0ab3aa94978c13cab17465a69fadc5ad3aad21a03d56df9fbe3effb66b0d2e12b85fa0f222b2c2014338d84ae99238a1c94688084a74c9202c023b509614c5cf52eb74562a1f9971da406876283d6521eac983bfa37dcbb2f4aefde6b9813d454c5e59751ec98b7bddc1fb42f58be64f137944ff8b4307c01878b0fb00766a2abe9ec1ea6951bfb64a0204\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 435\n# Longest valid message size\nct = 074cd33cbd0f7d59dcf2d58edac8a260ba151a37b2574e8b3eae56b8ddca5cb9f0bc86f242bfd2fd0e63575dba0b6b5061c3749c3b921b800aafca50fcce0a17fadd6581c5b69a3243914eabd4714f084031cf0e0ac8f8bcabdc1bc5951437bb4f7cc89a0facc77023c2d611d0448fab4846d804198d7a67875abaf452929873b53af00b5e1cfbf94d2da1c9599df176f5b49002be9846c07a0006a1a76eabec11b724369c6022ab0a9a8b91634b4e7d7df5ad0b22168b6357210753ad32acca6b3ac55b0b5e4b601839c115d65eec1882f43508ef2adb9bdfea1628128cd17b74e5df359f9f4c574a732eb7a2a315782095a8c9c347992a86ba6dd107bf24c0\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878", + "7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 436\nct = 8402dbdca0d3e9ce70cacfdfe3b2ef26ed92a6b8dc3c70640e06d0900213824a79d0cce6d0d781306eb236384d69f3ed9d921db8203e82a0cab04a51c12eb0a3fe668ab0ecfc419d3529f9970d45d9bac4373ec312b2a24f0c829aa0c0051e44a25e6da5bcccf9edc6f1d87f152b4770aedb8a36993d5768cd97c302abbcfe9360baacf437d68f59048280b560f5265e7f08769103468338bc9332568c20c7efbeddca8350662d64964ae5338138ce13c0cd0c9eb6f0b2516ef227bdbbe55d208f470ec5976116865f42897e63294d4fdbf36f6f4fc43dcb79d2c84d30c5f69ace97abe77a1d82d3fd815253d5b573dde8eb01f96416085538e94b8a0d95de57\nlabel = \nmsg = \nresult = valid\n\n# tcId = 437\nct = 858406b01fa56d4f216e36fe4fb2ba991130cd5ef56542ff60bc5ac95eccdaffc40bedb373babf08a79620f838d874e574935604cc15b2dc0220f84ece76b43d5239c3012f0cc6a446dece3616606e36026fb1544b26ffb2d0dcbb954eb812e96abdf245dfba3ea30aa5d5e7b81973f5c00a9e18a5337bdcf046c55d7e5a6028b093e6fe5e825807376a27134974bed314226cd65e17077d721cb52bb083e5e379d2cbe8594617908d9b90e0851203ce7d9dd8df667e86c3857c2bf9dbbac70f939d822c188de67c60f3bfaaed36ad4932c2e28bf9a5460bf51f2ad381e96391c4024643c19165e63db29de6232c7bbf951d04d6fd67df6d0dd08c4d164386d0\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 438\nct = c5390503bcc08959ab92c92ec9e07a59cddd2ca4929bdaec89efde9c4da1011c1be7484eb76b649769f3d258219a2503464c284a1d3bf12af8e584c45b717db7bebe3255a1b8aff1f19bc2ae26672d2bb1cc3d05ca6f4af9bca6967f22593e54d7c42b10e19735d483862850b7f184fcd38a3f895cecce365b68f922083c4737c16d152d70aeee8edff5d3a3c0153b33529b8faa73bccc4e2342b23acc227064d09fa7b66583068d9ae9978c14f96998362dd9ed0f67290b8eb220557e257daef38f118873094b8733c6d72a1aad6e40601cbec847690842a38de4f85e04e9d0edb39834571adb0da4dd158f8e22a6678db45ac86ce797d8b86d4d6de844c0dd\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 439\nct = 5814d6f2f3b23545e005a4f72eb0ef659fc07a8374780f8eb9223dad417bff6c96a91c6071abd678a8c9cbf0b4735e4c225e984669224e88655dd4f05adf1cb1ae96f7dc7932a0b387158a915f7563085f44c72a41f331e0e17e6895e442f7492151397159637968b15888f851323107bfdc1cd419d6ade56b974aff865d5823daad3d0cd8b1a94ee1767b70fe477c64a5bfa593783aa90868d4456f098630eb32ae71ad4914c142c805a69d2fd0e93563feca567ed922514c0c8867332c053d4912cd17d238eb46245fbeb03439c6e6adc1cac06d1eb41d9a185057431b25d4600684e057e571dfd1a573dc60395e7c2e3d612f9f66472f4dff284f4cad4e6a\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 440\nct = 8472105e089af324cfcbad5eb2ce2f85185f2e2f5a9e5e302022eaae5e40b1507dfd4801ac5d4743b18b87d916b2bb55bba812735831296dfcdf4087ba4a4dbf852f0274c7e37dcf2682c3aac50a70b6d08835b0c59e90fe3ce2f3b6100863936a67af141236daf5f588f2eaa09c391f5728dac6a007a02dde61bc69c65d4885149a344046d66f1b91711eecf5196006fb916ec209e5bd251ccb97b08c31aa1ebb25b44028047ae4f61adaea5215e0324af6d0509da3a3843eed6ae53fed3a1e459c7aac4d94f8c85611354e0e24f7630a42b184805f67aa7ed0bfb57e6136c43261f81940338fb4aeb662d29301ff3a0a5a01aa20e53f4041c20f14207ebe96\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 441\nct = 3645e92f0c46b7d6f6765575fa9aabde09512564a2d2ac80aa8b43710f34c4aff72d2df02446cc548acf30e34994020ed7301bba6b69bb4e9abcc766e3c9284abf824ae8389fba58bd2633b01edc3ab648788d31bc7b404f6e079a650dd8224b0642fd589b3f84cc393d18bf8b3a1f65fbe6684f6a76b3e767d5f2953db53e61dbfd69371b69b7112284f256ff11beeded9f4deea47350c283d825387981c1d51d62ca032485a1a6f8582148e7b80d2c55daae467576ef45be6f00e676eb5a40da88c18573ff012267859030cc614135dca8694dc0a0ef0d00e62761999d93c3e8651a11fb43a028370b481ddaf6cd8c4a086aea2e658d44556a6eedd64da5d4\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 442\nct = 4dcaf6ae82481350b49b344e2ff3348d0064b63d4a686283cfe7ca8ded4d73c55c9cd3dfc6656e3fd18e45dc69dddcc82a33b46531f3b5b7682ef1fa0068ec42583a2021e7dae3908d924a6bac3bcaa123c88afcf1dc6e22ac6be966723223f5f7aa46e2205c6e6cc594cdc5cbf9315c641a84665d66408a7b4f38ba6672fe3c77c53ed13ff5ca5e3d78ab51fd19186802709a0f98d7de5efc10ec7aa4448c0e89d506168acda5c85a12badb8b4104c6b6d48ad4cfaa4e055484a8c4009bd579e89b81d7121d4bb40e94a31f35ccab0e71cf767158139e7b413912efc9716d8de8f088467cb77f8e0649aaed9ef9f48df64cddd9b75ca5f077a08468a768cdcb\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 443\n# Longest valid message size\nct = 672d24c076429291e410245c34e35eda0356fb22076601d55bea1bf309a8734062f44ee6615df4fa0067d43e86cca0a823bc4089cd50517fb3b921585ba0d1fbdb131a24685c02cfb25ab56ade1de0f6e705519bd5ae7e4eb2cf2a63ba953", + "7ca850008712825cb2a2873dc76715c9922fcfb3a3acca0a4f15abfaf49fc298b5788bc912266900cb82700404c502ed66c83b6a4e93830bf9ff8e547a6c623ee99927dca03447fa1af896d76e59ecf3ab73e0453fd0d768f5ea1f4c8252f6a01849f8098461147c8e137533a89807968520c1d18b2cf62677ecdbbad1f09615c6ecb4939c7cdc17a53dc46f8143c36e3ebc99a21ef9320e770867d90fa3f083f9b\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 444\nct = 220c676d62a4537401828bfc71eb40cd71bd88a9ef43a0ea80cb7b7889e7fa13a6e0ac38fb06b4bd1428e88917eb4f8918ee49f2409fd3c48d88a8c4fc74e79ca7422b10031877f8b88dabf3e1ecba340ff3bcb035ab6fdd358c3ed29079ebd4807a2678bbf24ee98782e18de8cafed4aaffc0c6f9cffc71a299a159b4d7a1d9687c28559604568a0a3d8645820d96f4df3b27da8e80d91186d6618d7881c6333b4110372e37cf266bf94c3f52c168abec67838e279a8d6c54f051e87fe34d861d69657a1d062ef24f0981816f6738f9033e06cf71b59375cd9a112bcab60e907bb19351919504195cabebc3fd391e54b849bef59c658b3374242c8727826844\nlabel = \nmsg = \nresult = valid\n\n# tcId = 445\nct = 4627ae414989cfab224eb2132d291638dd6d36ea447d8c71210a20af984df41b06b0b23b2bcbf6e4affaccebb3bc89b13407835b4317303c8adc77624ffb76cee29433b857b701acad1226e462ee6e43a95fb1778c169806fa714c74601790dd55e84c450b28e04bf924bbe33d402ca9c386b3873fbb10de137e01056449273eb1847654a439b4a2111cd5ec28a974d0bcea4e946a9e2d83b74bea2ffdb20db67c537a3f3d17d41183e59c86dab92a29dd03b41b17df791204661b178dcb8a1e5809d110714749da6a0c9a5b95fdffe8c004b6b944e5aabe2cee51b3284b80fae97fefe3f33bd0f77ffca6af436ba489f32dcb522c4bb630f6f277c7c2241d23\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 446\nct = 5e9738a7ee1149b004e97251e56e55bc8d0025548191608560d90a128ace598c7c0c8526c4357652413e5409def2548f399d91f0263f2aafac668da4ab24b2c2be18ce39ed42e2230381e00f718a2321328088d7007cdfcd9d1b12da8643134da622a9442f4116d2b59df9aefc9eb7012dec609a6b9d0c006187677d1582dad420e918622a51586abf978dd6fe2343da1f9a2aee60b6ad4876a8bd3e4d22eb8c607ad54a11f15f8b2a7d062ce98408ab00f96622b68a2d6ee639644bbfea4644110094f47203cb0525f26c2efd80964c09e43e19e4a63b9c4ca991f1edbc43061a1ca7b5816799ea6e78c552705576d1142a1ce8f7c287e25e4d10c38cb544c5\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 447\nct = 1e6cd7fbca2f0e610d976c26d826b5e22bfad2e8df041a1a9e851ebde7f756696bf97e2c49e1e025c5dbc42789ea1a3b033d87cf9356735b4a7a5d8bd2f07ecc355c3e8ae99faf38561579bc52ba68a5d8c775328d1800484bf4d5350d066e65280e736cf8da506f1ed60e315f9ac8f55a0f2c0142f73997e6b053a0bd7a199b0752250e0ee26555efc4f16b62e58408d5fceb7496150e8bc40e37d570a283acfba4c7efbb9578e947bb14014aea40c13dc5d0855d2b3bc7c548211e65e754a739e1cf7f74e4d9fa4bd552a83dd4ea91874bd8322efffcfdb79798b3130ec8ef9e9cf7feb39f10931ce9e79939ac2f2d05ad6764ce708661e10a230197134cbf\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 448\nct = 2aa220b1a693e8bdb2e252235a692d16691b7e7472c854e157ca008c0262ffd7d423ff421c6bf44e91b1e8f4a1482691b2f6716e0e5a4f4ef51fcd47555a4c53c95a3650205d8c7fb45f95f41d18ff28ca52941c0e1f47691df26ab08b2c5b7e57f1d9b656dc5adb91c35ac824fa4312c2b8612158ff0f51b30c130ef1951f0a136af2fdc42bbb9fe31cffde7367fa9645d65ed823c26d4325893e80bca3409ac45335fdf7ce19bc5ca857d6cef30b4c0c09753c283cb3ae1aa9a4eda8a8a5ecb6c57d035e06d064a0828d0e4bd51f81de47ddb76720a226cb071ad5f76627a478cda4f3e0e95a6569d3c79cc2d6e382b1091dc9b32e6740d09bf9f7e2cd701c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 449\nct = 33f4bb776ac48721c08570630576c236ae7b9a782d077b68b82098989299aac026f00e0e5667ec8469c05a99481014e7dfe79d8d5b5d787da2df013a70c5579f45403cf752c2c06f1e7f2f605342d007b201cdb0f6b3648588d58b4d390bfb63f8c0f1abac5bd85070fb679e3332444dcc3be63f3c1c3e98247355a60a04233b81831f495a5b3fc2357be9e7a5d09a68cf5f73e51ef0930cbf682340abbf046b14ea9b28322326da5df2a0ee084276af87d6e20cc1add4278905a1f80d707fdf3644a25a797ba56a9b76136e457b2bb5c3ba29d875d2a3086904a97fb5c689cd119797e82e89e6167e3ad65044b6cbf0573540c4b3c3fb916e75208b0e6e1a53\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 450\nct = 9f8b35a481e2e70b1a0e51df65703c13d42b8642b4a397260ecb934565581a8e7e46e68eee26a1c5d3ce7467dec6c205b3d4d1a969a14606d368222bb6e25e5166c058629d4c5482344d4e2f1a870debf4db7e0fad757bcb9fa631d851509efac623719e7c6ee523433b3591329a320d4f7695257baad7320d7aa4890eb1eb5d572fa98b8bf13bd80f6f3ac050805be5c6e7af8f57beabd51ba33a44b63e7119ef595a75a34a1a38fc7f7b84171a1dd0873b4d83c7760b99a16389a8636b2a06ba9a91c84f294dbdcbe897d176d45503b117293138d360fb9db419d517ff2da7cb6f8b09fedfb34ddaa360105b", + "31bfb2d9bc4f1e5687bf69f3525df80a7323c0\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 451\n# Longest valid message size\nct = 55b97ab39f0a7c7175c4e962140a3bd2425fc9d3e4230098bbe131d2164b575d24e0b746f14f4e895dce74dd885d0976944d27d9a8355eb85b3baf4bf0a47aa6eb7ef24cc88a358c61ee404f762d621a6a790085f65fd79a08c8ede5b4d688dd5588dcc030dcc094902d8b7c484deb52755c3f2002d590707c599f264bea290eb99aba55acefa4caee32f2453bba84f51c78692c773b8f11c8ed7715aa20f8bf0d5e1fd918c3f44c1aa78360c38532ea37917a8c7206f1ab0475b875f2feb441013e8aca3ecef96405d97015df336a640a72d812167cd9249b530be0f75b0194f2672f03892d9a8315d4c2ae2a96925d9c28c37a559bc2ad59bfe176944fd3a6\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 452\nct = 95ccf1b8f9cc3ea01d4f3613bf2cbda2f8f0fbc3e819710cd84e50a1bb9cb3808e1d8573d544f03cb3a94bf01ba494ca3638e6be248ae64f99ce93971a3c9ea7c95e3ce8cff9d4fc4ae30aa46d250b3bfa5af01776dfffd13b077a1f6dcef80f6491e533c78c8ca4f834766aa7d7f9d0ab7cbce701907f09d1e7c92f941c4898dfe882744b6a7c1466d56aaadaa8d4970b729783a11670a7e4f6aebe54d859f38406d4389167af2bd3b5f2b98745d65ec6dfedd94c2db34c4f65df06a1042725e7f79eed768da016726027ca1c71258ad25bd65b0d9d244e83dffffccb689437ded1b973bc1564bf5a5f1f015134a12fc3de9f61585b285ec526f87783d4b126\nlabel = \nmsg = \nresult = valid\n\n# tcId = 453\nct = 6487e82c1140088ed86ce2b8d916ef335702b12beb5b0c45a1a8da0061fb4656d84e843e4a07ff1fef3e58f8388510df84b3f5a7aebdae34205246addfbdf526a847cdb87fcd3061a76e910946ad6267e50b9840a2db776ad07783a57b278f30f4df68b315e1027466c68ae95807c887ddba4266916e6c67f6dc1c52f4320d5f0b4f57bc344d15e77f994b170ca63cbbb28e23e413563a1eade1a62bbb8d01e7c0f3275ce56c86376ef22e88d530800557228ab3c2bfc134a7329d646e35dc0c4bb0463085a5074ec22117022160dfe1fb555fb0e30f6765c3ceff3ed96b3e6dfa4c0b727be9b60d045974326129e4964bb950b2116daf7465f7895f9fd9d068\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 454\nct = 669f089d17ef14f98075d018139b77fa862657d1ee619eb717a25ae3fa862c61075809f96bf6c5d2ac49b767839588968dfd273564b3f078e14627be8617057074ed8397b7d48c6f5ba6ad5722cb3e4285c3dfc9deb39a2a4b5e410b74f28d15873d653076db48d42dad6530d9089b2af8536f81d6d8ecddbf6250b72bf34095d335a24cba5e9a94b26e1f492f52e0b487da5da868d1e036afe1dda6310dd904e31c05e4794eb600fcfb289b567855cbcd2eaa352cf551e35150cc9d0b06ee2ce2542bbade915dd659127b9d5b6253cfc13811a58a3bbad65824be7b2c6d9d42a4c55700ae0aba8e277ddf33fada119341c0f8bab4188c80957cd2e0a50adeba\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 455\nct = 5bb85029d9140eea126dcad60d0f2a99a2e72664455f63d36d26f1a1bee7ef4d93458116ebaaa42b49a0885089d7c679c552614c976b50574a530d2ffa446ae88e1861cdaab2c656b897d6e6f78cd9828ee6e0931114d89978cebc9820bd0d8c2acd666a54467a54602bba867f77773c84d491576a267b40e33902e5eeacef503982642994f8cb732bf0116f8089a4d0e495bc7bc6be7607f913639c184f6c571dbab33208bea97684c3e3b9ca382b19843ce0a2632583fc8f2297fa474ccfd52748f36012d029656ee148ef1ff03004b163ac183dcd8aba3129d6cdcddfcdc14d667a977f21c48a924ffd9b2acb6af55813fdeb38d3c741d5abe4926c99197c\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 456\nct = bcf80d78422fa96d77ee6068f14072098d11d124c3be0798c7001336c8390c091e1d96873ee2bac98f956abf1e38f07e270f5cfea8ab0d6b9328c19f4222261f58ce1204871249a03c965c2d1e3ab4dacb6d2a82d04c4c5932f978e067edf4bfd0eca4d2d684ce92677b0693256ac044d4385f9a29e5c263e9b0a4ad182563a725460c52d5ca8c8925c48e8ae54ef267e38a2aaf06d4eacf79162c069e934e38477aaec6cb2284eb7f5f8d4615d13eec49487f5e145431ba1e154fb9a4a5eae24f468217ad1f956c9a7fa7cbaba161f6216878186bd8fd29a9c4af5cf9723026281c5ec523a981cf756ceb6ea947c0fdda18be54abfcf22f3c4ec124aa312caf\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 457\nct = cd431c3e37158f42518f64e6090a78a48ffc61a913b50549bc645604f1b2adc727afcf13f0dc91ce3f1a5d6bf8cf4060026e63eb15797d8c49a6b24ee1955075fe4db472ddc1a58f474c5571ee73248f1b4960032d2ae9cc7e66194e35ebbd27dbf7fd47b185e96ced70e70d79959f744c103d4400ef93e487ca024a040a7c975adafafdfb99a67ea04bd6ba4605da75b1eecbf33fdfacb7cf24cb6d5acde150978d2354366a4badcb7304fc31c57ed48147071bead1bb16c1e9a772be82f015b7063b64246b6763f97eec47a8fce3b8b18c4db0ff518fb16dce3d753429580ed50764f98684a8719ac1e265001a413c3e6107dcb1392f64b8d8fd6f336d8e32\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 458\nct = 78db17d0dbd52a7b405d227acf8b21cc64d12e2fbc5bbd94fbabbeae85cde2c52e3fda0ee0771705d093bf81ae41b4e5719db30", + "7315f5c83ee767200b9ac7300501cbedd1f91fd256db3463cc763748c6a3b0a353817826e98c3881af3705dfb8a0b3aa740ca84b3ad8655d354577269a9197b167ea958dd50b6d17a0465ae603ec9c3abe94b359a320be7210531d224f32cb6ade06212757d9e77c0fdf19aceb6665beea2d9639e9d9dc60e67f13758bdef3b0c11cc3d52729328fc0d56961384730c238f3b4dfeb87ed54a2a022d924ae262d948691903e052537804aa89da87ff539033382daf3a037b7bcd58f99d4389d1f06f33bb716f51b54ef56cedc0\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 459\n# Longest valid message size\nct = 6832658ffb0b79854df5c4f3e6dcd53cdf2492000ef1a5db7ef002ababf8e544d4b93867be2954cd302b8d1171f4b628bcdef0e2947295751632c88c117a7ff7c7c5ad257f9851053a039826b9258932260f97b3b33c56d0ae2e38517d941332950ed06fb9c8121303c55f98da27abb99b7a67d84e6cdcfc96f53c53c561d2632eb955ee8782fe13b7dca9066c66da4897ac8cb3871b27d68e96c79453ac35f3dcbe62a6fa3c92ca3c430b7a1fbdcb2fb9eff5e88d80e547798417cf9db96ff3c083db464ae852f5bbde0a1e13978d2ebfc0675e6da7d4ec3f261289dd70b67bafded4298572c10c65f1edd8cd0f8b173ff02028643c8361db223c6bfda69bb0\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 460\nct = bf20e0e04ddbf103a5133227fbc2696a0acc72f76f869240b06aee89c25128386d0e0c16927f98c1ff3b22b4fb61b508f383f7ea764396b2201e800c793c81a4d38e20b03ead703f0b164d7e7bf4708ce970c5907b139bdab8e2a1922989f97cc2cce656fe37630919626d966222c462af0e72ea36f3d81678bfd1928caf9111079edf93796d2713deee2b85cb04fa63d9fa41d212345507c90d04f4c6c80a114b36416cc55d78eb969d904269a69bf2e839075543955616071a45bc1678c64304ff5f4c22b207c27703f70061d1471b4704357c13dc44e1b3eed0842f578e3e84e28184f84ef6f80ac806c3ccc0afdeb17a74b42693f6e4b2a6c76161363f3d\nlabel = \nmsg = \nresult = valid\n\n# tcId = 461\nct = 0051190f85cf3bd0e9bdf5c937593d2219db50ba7d0512d38807b31eaa9310f0120320f7fad7c6b135f29cb17ffa5b135c0ebb1c4c8112a66912aa92bbb3191d5a284884f19460dfb9bf232f0db6c207ff21d53712e1c8d90bec036426cef56a017e6175bf8bf238c32050188869301ef78d3984762038bb72a982d5c9c9501820196d68c798ea29d0d60f7628625ffe975ee0757c6b70bf87b8219ddf9e6ad324ec9751fd3664887336bcaa7af71c93083dd96702e6089e2b67abb763193f95d4222b9177c17b4726998240ce74205f18cb4b17bbfc73185176ad761c1d48e633a4ac7adc2f61dc95798e530d20817b721311be824dfcf7629fbc533543280c\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 462\nct = 0a5067a97a17114be5a71697f15694d98cdd6e79dcba1726a38ca660ae4fd9a1336df2de79718cea176a365c46a24d0468c2a719cc1835e5b60aa64424a8dea0921fb641458c279c74a7ac74474126becc25c84cb8e411cc7a119c78298a2f45658c7590c3b40dbceb7c41c67e73d41b46ac55cbea541c64a91c521e377890cc031a4933a237609dce1d9f76684641417a44759662e166d837e77e9b8b3fd3343cad26de86db4f914ae83893fe9658654d0932b6a98ca5735669d667186d894b5d472a1efef4b2e06035189feaf960ca1242b620264e71c47307a8a38bbae9bc3d1bd5508ac37f1ba770bfc36a50a543ee204e5eff5310fe3bf430dc6908eb9e\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 463\nct = 767bcf450f416e428980a488bc8307674976253008d81340a2f519a1f4b936abf02028c2e7614f4aa31a8b3e17c96b4922340a6a9696fd4ff358c1a84c347b405033459f9192e9f7d611ca2da6a669a895d491a3c1908cb598730b596d66b1d4b7617f33766af385c333f037e7341c9680f9854f6ab4f2c986462d874f4dc66c6fa4f49fd3ef33d7c8cd81d7608411aa610e5e9101dbdba522f75cd12c575b42d082811227ba10319f6ea0c9a2eb6a3e63cfe0c1bab18f29091fc5d6372785208a830f732f8a0635f5ee7b0b9d2d62ff9f1a6cb88da253ad5f0d56e572548a350a7e12ff846d09ad5352fa45de484386b529e6f14a1e8055145394f8d4f91b80\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 464\nct = c2a9b96b17314bfcc82d0653e14aaa7024b31451a842f7174a8a708dd80c94212af670806f96e7c08e2413198bc32d99a2e67d32c6fe772735ced16ae8b903d340b61585eb4b2ae7e0f51caafea691dabe31ddff90b114a13f05072fd8a8a9bc16fdcf32d199daa0de8ef34fd790f113505eab2b049c515a13a7d56f452f748ab76a07476d609f9e8db48d97f74f8e8bcdea62f495f573bfd2a171224bce7e2389811c01eec70ddffedd6bd2b7a3896a81a383e686dd80863f86a2290db0961ad1b2c6399a12fc725a33a182dfffd5ebc099612b9cd996a1c44037d2396ff657d22a50d94204e4428fe3d62b629c8319677654efb1bb0fceac9ae8d1eb3d2f07\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 465\nct = c67d74acd68029ef1783f6412a2ff097bc4c588f4125dc9af871ff6cbc18caf2fdbd5f92235211bb460d7c32bad3d768a7893ad5b1e920ec9bde3cf9577f66a16d5a3e5a4feb40f0413ad47613929b44d40185cd4507515e73e9144a626c6e2461876789c8128eb6438879cc6b2a971dbcafa9e9f40b0120fa38f48023805011d89d48cb093bbafd221aca8b62311a6a2a29a92e1", + "3302c6da0f9190aceb9c36c970d731425ec079bbc6295aac01d9cce136f9e2d55e8516d007413f1d44bfaf63e257767dc0620a8902fb449f9d62a25630087b613784af81f1a588da7b0fc2ed2138e58eacc746cc2417b0088a1bc945552afb7536847baed72c16484ee7ddb\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 466\nct = c1fb0843b4e3c77e622d1197ee897b8251971172ddd2a1bb94142173451d1748b468a450b15bc062adc94311fbd43a807391721bc05a4949b39af2ceafb1bbbe6e157237c6a7cb33fb971cef3c7bb172ca76f27e5a70b4ab501b8c4f695145da34f00a54deb47baf1f4722c313a1822b8746109c471f4fd8e6941cefe545804fad30e789e419aa32f16958fa667ed42912d6dfb5cc6d7635e2867253bfeb5ae946283f4fbc001fe8f578ca00c735f6cb02f65efaff2401f9da630ac2ed9ca7d44e4de8ae1ff6425560d54d75a934937021589418b91573b4eeb4f698383009c3074939d83c90d463a2c799c16e06c6467641d335b001ef89c9412f7478d5afb9\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 467\n# Longest valid message size\nct = 348f6680d25d93e7f8f17f2410dd4bdc8a2ba5c9d29b17f3dc1e308d868ef3e1121982635c60fd386f77566370f5bc0d34e9596637c59b00a6eb665bf57071260483f72a5cf0bd6ad806a049aa670ffac206672fad6e206d9e13f82d89cd3675a888873cfdd1ea20feec04ac9e1d4daebc58ae9ebb84459a3481d268468f6e97bbad0011247576cdcea319b68b19ce7f2573cb3d711e078b9e206fea729e5b61d67f400a335aedb48f673af1a81c2998d80ba34ac18530ccef71838658e8937c127f5d5ce93a525a2ec60c98569d785592490fcf3c72d53791f8e81244292f1824264518bb827adf1205e6a2e1ca7d01195dd4c3616acb7580c0c9c572024a4f\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 468\nct = 3a56f4f210b42144b340876f88cd463e4e7399d306bb19ed7c094888135a2d2f5454d5995cb4790376fc41a3ed0b1079480cf97e155f6a043d6b3020e122babbb3713e9c87dc6ad276934c4c589c2e75f0a4b279c289321b5e8cd50eaa6c1c7510c56eeb63ede46f27ed3c439ac06851795bd76780245c72c1b8c336984050c904eab4acfc40d3792769406462f2268e3365db8d6a7f3fa0da08ee223c3b63719aafbc177c4195cd10655e18c932235df3e2db573495ed2ef1c17106c668947131d131ef64510b0e8ebab320eec9999f857d995bc1be891a0ae0844d6bd69ec9fb9ede3651d4c0b4a9c4fbf29012ab2af51854c3d4e1d344180832a2854f42e1\nlabel = \nmsg = \nresult = valid\n\n# tcId = 469\nct = bd4fc1b59183098a8bdbb09e5d423f86d1f09614b59bdb7788dea6e75da0f47459a36110f5cba869d72150d4de5e4ef8b21ec7dfb19eefd8e5525c72431ed2cfce43849f8a4ee025e4f3e671b20e9514fc77797d9a6c97e0495bd4c5c9ebfc309ddc9b50a1be39ab40eaded8a5d99b9308c29809f67d6b829691d6d52d8fabb59fc22de43471d9dfd8aa2cd3db5380dc63198c1aa5907ba9a5217686eee9e5eabb7d01e59293aea40dbec31f0b158602946eaa926fcd2625ecc301ab8637d5a988ed0faf2d29b902f9b0a559df2d5b22169314a7fef69a5c9e9ca83081199cfe97210f38e89e517e74595d9161d828809589b1894c948ed77275c791567dfa4f\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 470\nct = bdaf39dbb1522355d06a1f5e079797a39ac29e600b9ce4532cb22b8857bb33f065a0ee7dfc219956556b210b416861671f0f52acee889fcc66fcc532dd6a9dbda693dfa011437eb94694f9ca964925d9c6fc1f841e59ef84e76405a41501831fab4980701a5546bdde4905fa7b9a0f9bcd159dd443bade9828dfeab702dee0d7e8c1b37c55f2635f21441fcc2fcf4baa33d1448ea8d8b3324f08861e9de4fdb09cdc1ee093dbce512cf6ac1e75e3760d706517d84591ce1d977d73ca9f2766ce874f08aad6d06ac5c2d8b953b45e98daf03c4665336a3f701e9e9f6380cef5a66ef55dd77a9d972d1bbef82a2610dc8aa7b66dad4303142ef196308347e01000\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 471\nct = 4a7ad461be5764c2f6be1150f03809fbf6f10156b5f33d5fb97dda6f384791d3f41ebf8178ff59079afbfa6354a4a12c99c4ef767099e0db1e39dac7632d75c8b433b1c073a8c072c6a45729bb300d7c520cfbecaf6408f075bb74dc8c2437137e1f7708f97e98a132f4be5553f50e44c23223eb16ceb55ece482df922e861a9db674713a498362f211572d9bfd702cd874160c8956a72794d885986531b51760d9e3badee998f5c596554a255304c5820c790c466e5c7a50f130651ed6725b148d07db1444ba600d75e362aee9b4095a0791b1a25c94c8afcc16fba4811a3b71f08957c1e4f3beb386f6151c484e84bb705be3411c3c288fcdcd1104386494a\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 472\nct = 2cb5c853acd85293e2c56cfee1a8dfc7a9f30bc16a2a628ad3d18baac4f1615283df9c209499ae215c839c16a6b84f18ba21c74db31f092263b5e17df3720f377611b62cb7d015170bea054bf4618a448ffc5f613f512dfb454017310f812e1275d0022a881337f87ab4ec9d4392d47187eb53a1546de7a0647c9d7ac4af818722a98e738277e54f831368c453399acc258cf99331872626c83437a4fe043a76029f8f1b73191db5b823051f27aba7d93f2c2a9611e166168b80c4f9da47cb84328b692c33f4ca425949bd2dec0600784d1a4a9fc0b7111d8d1b5814bef353d126788223898d9c43d4b769a7a082a4ef32fe055118fb05adb37518b", + "924dc4e9e\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 473\nct = 6e07786fb3e6e2098c574bd39d96dc9fcf7bb55604ee7c7e1bb37ec0cd73653606c665082cfc314337bdba3f4577d8063d44549104a2f34212232c8727e9c8e09ae351e9ebd621cdd494d112f6d684e77966ac6e1528735756ba42081776846efb499eedd76c3bf02153b9c0df518ab2bb52fd1e54444910b871748a5b7975e810581503d388d663e1ddb958c1f7e9fc2897e96f283ec578332130bfb8688b6636790396f96d7553f35feace16920bac60032c89d4ab3b1e6b6ce9ddbf1ba8293d142bb314be6cee6a69f7fef941c3788792cd2f883f25b888afd56446cc25940b62a996d652f476c891450a2004b012f66badf1f07f888ebee34df6ef8e871d\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 474\nct = 8390617985f493f7498e1b182ba92902660dbf77c4be981cd3176845eee848d97f49476f95333e5507d3e42429930ab7de1dba859b293b4e87726ac5e345f1e0aeb3162f1b710870cfd35e6c48f586c6e730d15dc79f8fd5e861069d4afda9bccdc4be722717849cad60e3d6e35b2e867784e65603315880626fb12426fe9f043786c1b9f8f4f7d659738ca8e970ed424a52bc1d94b7125cb43bb7f4b8342e107bb8cdf5b76631f3aadb53bb554a38e105ac50600b2254d975f8f9caa06e14f5518f8909ce9381e800e2349dfad1a2317091101fd76494833c83d2f444ad66f70b46e66503621bb20f2f2ca3b4770d13f9bdfb629ca7a7b556ee6df5b1b7df70\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 475\n# Longest valid message size\nct = 7f8fc274da6ddbe00f63f6bafeb53b1146d07a5748775e540108708adc8f49bff0e48176de70e618bd7d58aa143e5cd3e4a983c8e24d70ca648e456995cbf4dd83bb2d073bccf913c3db031a414a1aa00e6aec68ad2347dbe8652b9e179e65691b96c107c4661a9f9967299e01c4d9ac55fa2b00d5138865e2fe44658e912764061b647dd16c1544220b0d6a881631a16aeddcb399a014572bea918b4d88fe9a2b22f6a4d9bfdfc387baf009e6527818df373a77b726f908b272d2cb67c873cbaaaf3dc63ad7fbf6b5b1acd43e20d658b7233c690538baacd161bf01846ef9889a6eb3c4fdb5438f6bfd1fc36ee46cec1a8f60b3838b0ded728f58dccc396847\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 476\nct = 409225dd2229d11accb99804e4da69fbcb862d3a74a1dceb8f1186d8d13b1569aa4fce51aff273aceb1f0c875d87a979f9915fd400a2eb1713b5a1ed129e6b0c7ca14a61a0939a87ae88c53e91ffdd635f7ddde6185dfe9b5b7bd739b53c4c198dc8333a36461c4d750773df1c84f024e18dc78d09fbbcdc4d12bb29854b2ae04c1b8b141eba753eed9cd90a5b66fea37612aca4c55f65a8381c4eff13c37ae1f9ed0688514788babc8ee27f8e76296495df254145331a49d11e7bee5a83a3713d4bbd5a805fdd8e84ba6ab869002b26e40b36d1d6c1189b8ca1c6fe19497a8059414abdc88ca71252fa86705ec96a7899296925f885fe55c9c6d2cbe7ca8578\nlabel = \nmsg = \nresult = valid\n\n# tcId = 477\nct = 7ab35168dc51cb7b3d8e5e3f9568e588c27dc395e825f909f3ef2a88c5ef8e1ee4918dcce7aa0c3ab6860f69de90e36d19284a15954a3bce2c95bb52b1a5cc752e35a7e08fc327f2a95ba05c474c4a5e625b5c0b780b3bed961e69bdfe073bc324a8dfeb3782413109fce1d795ef01a8eb0608ea42866ca997b8cd3c7b849190e42e84c3d60f935886df8d3dff5cca4157152e9ec9f954a7ea7b1ec4b0e1fbc14cef0f3ed16f1b013cef8753e1f5493ef7d0f753ed0a18ae5275459d15b86da95445dd65580a789354616e9a8a56720394a22ff30a01f38b173259a9829b8a4d14747326597ec332e1d402915c7f46a96c20bcd25a82ca3084660b4171cc31a3\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 478\nct = 930b4f613da112cd29f8fbb235ce0715eef85bd5a34fdf3a67b4af55015269ce99ac8112ee81b576b31f083160c5890dc2db204d581aba976974056a8bad367ff05984974c10f71f5b03482c7f7dd86aeabf5c9060b54b0487f40d30627e0a46fd7e801e5f1b2b813c4385f870258bc2cc186599e124b9ebca2a29a43dbc06bbd39faf7f305a902e7ffa403abc3bcedf29ee11361ba0a0b34f3bf9a9285660f66b4b75cf75e0eed8f463e204d93654a9c85b9788bf8e32890b658ea732efe3a56a4ddd2e7a426fec6486a0f591a8a1d4f089eb9c95a6332e7e0db103dc3daf8cebf35554d18cb6da33dfe6dfbe0c8cf04a4f6305693e94e87f68539f67892976\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 479\nct = 91d3f1fd66163ef8a8fe02f98802219f370938f21baaab871d6ed20de4449d5c615f395f89b5e455d301088285cf7ac42b51eeacc1c7d4220cf4c456178b9a2d6ba93b0b1c334b6aa6f19cb75f374d88d9d284feda4eea32c5a4d9baa0e12fec0f72308322eeeac9b0769f161491ddbea08983ea565058d98838b86df181088dc9048091450bedf4a671fe0a57f9d4ed67cc41ca6eb6a8324ce14d6202de07d55e80d56660ccc358b1cf6ed56061a2efdde8075553c326e9a15d441432c52c7209a6ea6cb6ae8fb1fb128d8aa31cea24e5648baa087eff8376bc01b6084e0476d3d5c5533d9c2c36803e939b8f525c2ed770ba08e221cb946d21d611c0fcfc15\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 480\nct = 41c04aefc703aaa71f40ce9f4f56a7719126ca192d2e9c33dfc6a8c176e8c1c22d9d7a83f39955403a7798d161e4ad17b1575c35cd8f2abab639307222395348b67ae8b7", + "edc41eb0b9a38ac508f1c08489ebc21e5db909d98d69a74b210de76a924787b2fe1913c96ea934ef88be13969cb26fbbf007fff7f639760ca7de9041ddfe79b3be7710cbbf559db44d2db8aa32f88be33463b366924b845d07e2c00bf07fb3625a600b4f84041c73d777c0822bd896aee8b08c4f6e30dd4569208fc8caec74580a43acaf7fcb2b6daad569f4a58e281298caf9b6f155cf30e94ff671de9bb0cbabd184b854ef1d2b7cae33e7dc6072230ebe4bcd4d49253aef563e92\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 481\nct = 32af08d0e192b87a392e69c0e4f1faf525f9705af04301bcf4773caada60baf8c9e3ef5b23f22e38f9966849f55e075aab69f1bb76d2c9e443f34dcc1a9ed8d32a7ed3f9ecfc05cb154235e2e532af1b6f1fcc392676a500b5539f6a86be792de013a4d614129852ab57e030521e1a776d17a9c54061b7457e0517f260826640d24e604a08849f9c14a8b9b6126a394d1451649326b15a440f52da5fa917b15189a73f0ca93c6f1ca65a8b00f96516b9f87519e6ac96af33df112eb8cc669117821d7f318eb7f09ae74fe283ff4ded8a2e6b363543833a311c2b7be7b6f07798ba355a716707b06c4d50792c888424a5a049b1b0a33c881059dc8178119676a2\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 482\nct = 602a88779ae26e4aea37700b4ed513abed889d15de24523aebf34c9027fbd62747fadbdf46449ab8cf1bf5f2c4c942423e0c22df00e2b513aaa7a9502ee330be441274a09ac0b872150d73e52f34763879c56d09c400521aff0c7a8ddbbae280289113bd4f5cb1780eb16040974f41b6ec4e0b060209e7743df321a597a8a0fe00df285780073a03600c16ef62496e7e06335b7311d16a8cd376784f27289d02aadd1be5390e6e618cf8271dbd9ca7f8338392076ca53fee750f30c95aebfb26c8cee568a2253f2075eff7941b455317728bb1ad0442d691167f6472883b6e8b07e7f6c5bf10e4def8f271e622dabe23d6d3e8c0a1e277781e5888237e83bffd\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 483\n# Longest valid message size\nct = 76a390230603a834305783f493b721b4f317f3d4b6e1bc26d1983ff1f49448babbeba061e94ef6b483579564496ea89f9e2e784e8e8db83cd0d2a6081048e4bece721197e66a54178acc6976089a4f6f268f8a54a2a9a3e90f583171401173f7f646d8cb422e4ee14fe057686b0072281e066a28cc0133c6b707781b718f535fa3a9c99a65360540d3182672acb1db4689c5d6d33159f37aa7e16d988d49f73b5e603f8116e1b5053ca45e6c04743cae29faa04ed939196b15faae2fe4303d7feab202d8809a7a2ad30deeec880990334f0da9c7faaebc1f7f64f0c8c20270c44b7046ee309d4bee151a504bdae896e856e202c8c5d8dc5d6f66c99961b6168b\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 484\nct = 70adca8262d578241cb62b7e0d47dbf51ffad31ed4785cf2e9b46de439282410bd47fa72a262d9fc23821d584f04729632708631c46f0b25112f3bd8fcbebf41027ce0950df352406897e30d94b24756e35a476aaea4315ed4fb1a413071ff5cd78f33136f5085bc847889b7335011aa21927ecd602a1118ed1796e988e51cc5e0487fe5daa0fc5aae97a39fa43115c40bdad70df139edd67cbe65879d9de2d97872d63cd8ccb1ac4026f9a6c12a7309cdb5c92c76bd874e6a3926fc2523ac7ac13c3eb51e9d574c0f45f76e6a36120c0ce308e118c54105740ac847281759e7fd0cf481bd9a4e93e25b6a2276ae63a7bf6c1e38fb2c069285fc6fc15bda83e8\nlabel = \nmsg = \nresult = valid\n\n# tcId = 485\nct = 8785223b5439d99836862bf8f9764a4aaf841d0f6c8f1d7ae9070beb92f91802c1b1ee15756c70bb0fd7d277e244bf59119cf1431e7587b712de81d596d6f79d023119cd2b9d9c9d32e6368c0a317332844bbf5bf47a042aa663b1e0b86cd8e7fd5b3b10580e36593b3e1242f41d1698faec973ba91607631d2e1cbcae0e37427f157603e82615a3889aa28eee67ce73629d0e0827fbe0e892c3d3eb56ac000faf5d28c494d6249e3bf1d9c39f455d83c985af9759aed45f76fdd7629c56ce007bf1150ce55724a2cc7b710ef3f45fc4a8ac9a087e78b9884f4ec7682947473a8996e7f8efcc6932dd38e7eb9c7193a1f2872c78f9f83b9c4ba863ecb523a9c4\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 486\nct = a628c9b8873a75d1f1f96c16e91576b224d57655fa568cf285220e60630ccb6f38c4cb32b5fadc683a75052e06619dbf6f5600cccc2e38331d01bbb235c5f79a026ba1d23f538f26442ade3e974bb7f427eaed6f7bf521c06c798e4096f3a75ee64eb2ba03bc2906b1a379dfe7c5fed8e2d1d760358a6ffb500d4b31ec4a12f77a13e482c672c85076d219de6f409d0a7d6915f36162eba353fa9c251c4b992bb164b3b0a2774cb36d87dc8c64b3a72ca6a5244b5b19df0151b4a705509ea1b33b18206c3f2f321e0658a7171a75ebffbbcf1b414dcfe136e691c2c16c6a8905bb50a29dd411a6d188d7a49917756b1996fc0f2a7d62dbed3284ae38f0686f94\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 487\nct = aff66867ca15c6b77c109ffff233a5bb4b7be73827127c918e531efac4689c826dd1ee7fb754493d6ab13f4aa304bcda441b6b8cdf1edf2c109240e1ba537c0e10cb4f2275d41eddacb2042440c27cedc2e8d2ccb75e689a8086c57fda51dea3124e82aeb23d14ccc7143bc6913cd90fc46a2f258951f03ce483b9cee8c3c571b96bfcde638a4e398edc9d0e20ffb7ba7d30fbefd1ebca2d9580bcff913173cb4769d6c81281e4ce9866343a458d0a4bd08c367987decac6d74753e2292903aeca3ca17be9115841200ee6", + "08389a2fea9738d4514a9da0952e97ad01e268a41dc8f8e9e0e815bbfcd20a521c04f38bf51be305f69e63eb38e395ab8b7c0826f1\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 488\nct = 24881bc0d53397892425af1f0d59475551743a96e59f0d90e8660e463857a294fcd02a3a639a7f27fc8fc2eb7e9c72c4a549f7eee8edad4b2f87d8421c6e26d79a6e3517836d2a9c99bccdf3cc0372bf0f4059920d79236a8d2efd458853eb3532594b247e84d73596ee7d92c520b8706f18df4f316818b38e476ee8f9f5c13cfce7dfd495b180e2b2cf99f6b36326d75be2b49fc4b09c4e9f5800970b9b725331adf45b87c5e02412b1e30261999f11c91f156b5e39ff839f7231c08314627813db5232769450b97f4c7dc53d3a0b7886cbf783ab037c6b8572c143a3dde54612b021876cfbed81e4835ea469207df6999588a43a56c282f20faf570502294f\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 489\nct = 393a1ae1104e2576153cd1bec1ac6994d8eed3dc42eab57472c37e8574d0fe793ba4ba97a59d23cbc3f203dc7b4a85bc31536a28675935ec1613b83ec925eba867051b69293d9b21c8ccbc6de4c137e50bb936adf5bf121a48064872409ec34197025f91663d60fbd1e659ddd574b43f660ff6eca8a19426394251d49ecd49e3e2a4b4f324649d4f4d861820aaf7e6ee32498bc514461772d6c87f989a4bb4c431b3d2229bb04561aeaabe71892c9ebfc707103b941b6ade50f48da6f987d8aa4105f39652d888b2397e8e984e12b0ef3006bdb1d74534de29eed1910adc491ae90e44700587fbcbc5076c2f45d7255d81560825c16ba7c3d3dba0670056a51a\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 490\nct = 9a75d988301561fa089b1dddc7fb8720ca7f80d9d2c2967c68f6db0210274ff90a8825a8fc9a69852fa137b41b8afd68cfc81c2e80ce365ed59447b09cffaacf4ce2682fbf28af4ee9a8b2deab51341569283c631bdcadc4cd848601345761e0d189952825c62446f59c3e97f8010a07ed7ef0e103ec46d77dc9c3b797254f49a806fcb6202eeda6e5c636218ed86ac8e54b0eaea7c261e9a4dc86fd44a0b49b113fa5b44905cfb40d6c2a830d81cefc285e5bdaf1d3fae0776170242ad1e8db989cece34cf619615adc2a046fbd88e904f7d2c87466040a62426f09141aa6dd0be39bd90641e691dc55e1092e101b65d260b0d12bceb80902936af017f11a40\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 491\n# Longest valid message size\nct = 272fd3e9eaf33718a3f226d248ad571a8af0bf7b77aa2b92faabc4b999f689a80d1d75da35f58d8b5b0fb37d9943fb1cd65eeca6237081cf9bf6696878b642f61beb53db70988811e660489f5f2d5bcbf4db05e88b4aec63a472136f4826ffb7c46321f722eed074a7cd4e1bd494173b9673f97df525bbb9519d7d06d2b879c967c44b4fe2746a81bebab84b0b6fc05a97c6829f0be8f0dd2f0858dd44bc994e420e46bc950175950ef493459ebb0449773cc888467facc04216c2e622f73d45891c4e3df7ab6a4b1ed3b7b9656be280b213f9927bee52ba405e8a352d169841ee7cc190ac6d104bffdac0c73bfe17ec15d37061598b6eb4fe43ff015da4c9ad\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 492\nct = 69b96b4127b987dd3be58ecf1f9dec3852070f3d70de1dad332d233bf73a899f3809eadbb78b535a0f2111ff84376676111cfe876f1b64189fc470bea5c4e9ccab29fc26b2a9793f552a76c9b4a11676bda394e3c547820f7676cae29005196c3496c1e2fa22932f7850f715ab82158696397a9e74b820fd3c04960da9af384d0342a9f2e65d8478729a051964f1a5befb3e33bb990b833ec15beea12a33c91d9527a7bdb62d863f875d90f2b96c1194b951c98286d6876993ea8d46dfc504b1f4f30172b5c50d611c0bf6e47eeafbdc23c2c0530c05d41c1b56970d78cecad46c5fcc651d3448bcc6ed24cf8dc7ce909988817b635448e5579ac9a355e3acd8\nlabel = \nmsg = \nresult = valid\n\n# tcId = 493\nct = a447010651d5d3c6b68b8061351330f2373f276ec612ee2b5c1d4a80de55242cd6a04b36470186ee446d9e726537cff81caa83984a7d9fb5602b0304512d7e4db1d7a7a0a2455138de23a2174c02cc78beecb7ec6767395cb8b3b3e9a8861ae4deefff806e0055303d9f6d7d610d0ec83ae7cb1bcc7b27c3a5af45a301062c70ad2943f609e46fa4a4ef06275aa192176205ea215707c2ad68c900ec32965fc0c1aeeffdec101e59a850b65e462652be24b45773bc2fa4278973442cbb35204152a183b3a55ca072fbad5102e6cfd511e6d700163ac3546c02c88bd9a3f08043dda94884e91fe19f4f67f4f36a8b4f589112b8807dc81dce8996943a29f14cac\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 494\nct = c122a127634c6c31defd36eaf553cc4ae76d92ed3b0bf39f39b9bb2eb5636daa86b3a07e9fa261247cec3b8751adcb0d3a076746289b7dde3f5020a489a8151b2dbf502892fb457e5a0345f528699b64c40d20836d1cb1d9d3e19e108cc378b2c1713077ed6bd31e0d6976be9b781a5bb4501f4cea9db8c037de695815b3f28d4d6971d634804da16eea277e3f797c5c73504921a81725cfae59c978ed0bae7c44d73554feb7f536651f2f198c65d340dcac3423d44de3cef51ed99fc6abc9ba9c7ebf08f2b461acefcb4714ce6b25e31c7f2b6f5f68e0108147df3cbea1883efe5263eb60a9a887b4b3f97b0f18ee2e9f4affdc140a38f749e8855a4094f155\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 495\nct = 53e90647415d15eacd59f5cbd3ccf6fb1094e9b0e92de9cc2c4b406dfb806db4ca8b17bbdfa49d4b3aea7de1f28e3ab405439", + "95da0a04ba54bd3f6526b7e999531a33207c2c731f4078aea6c659ff533322abb3355bd880ca8f0db72a2683ef46c81e453ddcb09eec7a2fe6dd275e04845315f697a7e27dc8173516d7967ca96e419fb50a010a038854188e876f32dab666cdb2d49472dd335544792a3a2b7717a076cd965090d3f398ccf865e916f517615d2c2c9df55b4f8a6a824f15429abc8c941962b9fe019102f244a095f8754d6e0be7eb03ff11a461b54d1e8f1dea6be283ca1df3f572d039a1a38db93121e069a3ee379d122cfe8338517630b1109\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 496\nct = 3213a35ba0ffbee27c38e0091aac9d00639e8d2fc28ce0ed0271fc21f88b345f5bb1a61cd97fda1b919eef83ec7571eb5beb35439b41059d20c6fc0cac2f0ab2fd56b645b82d21d3f9356dff9474487caea2515b96392e93b1783ddaa1a54d02c1d9591a5877fecfa9d112fffd1d80937f435d5509c7afe23f3c5d63ae3c164f6dc1b1ea82f64c1b96b57d3efa8543328fb12d6c635cf8c68eb4a117fb4df83af5f2567bc72e8bd91c399188eece22774c5e83757a4f0a70ce8b1c1427fbb1225fd4c5dceb2d5fc88613cd3eb326b401b11ee4bbd7cf083b0902d87d65a6278a51a9d798113d672a8b0b8cfff9a96b500c1aaf1b17ed469f897200c1e009547d\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 497\nct = 8b87e5b6f040396468fc6fa3404be4a7e2ff205b1d18668ed33ce42a1b5c57fda71c2b2d524954876dacb331fb30a5c3e68e8b2d5803edf0c7490df9153335c89bb50c979b4e5a29a0293901d92c8523b14639d261b879aba3ed5bb556bbec0b72eb147079b33a40d2829f3f2373440d9f0f1774535371bf8bb03f8c630e51d134053b2d21521589447c889bb0d7dd6feb97ddc1cd40be85bfbdc6ede0da6bd77e066a5a2e413f25a8fc8e8028539a881a8742e2db1013988190117055ff777e175d4a2e7c4ce0757945c234d46deff936636568e3c29c05d596228945de8e93a361d1f38f834f960d8f195e448e24ee5f43fee9ae734b48bc09c0a685338b80\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 498\nct = 9ee01e824c5c129c23a863625923cdc27be2cbdbb216817929033404527c65bf4b4d2a0214c596a63d4531aa149a4c648f7c61d559b954ffcc209bd73f22246839939f5e3d402a22b9e66394a32aa522e599878733035e7be1999a4381077254caf599c46876f0c428da3921c62cc3dff7ea606d7871fc573919d09b89f2895984bb0d5013fd29eb30e9b34b49edc24a0e42aab957f576528ab272b5c088ff5ab324263921416443e02c13c8901c5c07f7da47f81db17a248435c7c7d86c2eaa6d64009ce8be7256b6f85a58f949f42cc4fe427f048e1389ea19418ea8a7bf04a27f07c9a56d34589d818d4a749258cdc7feb7a0354a5c5ca0f576be00eb8e5a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 499\n# Longest valid message size\nct = 15e07f7d837225a8dbef878e8710bf8fd8d254c0b7e6585b81fa7da9bb02e6c7c3fb507f037870dbbed41facb1997e40fd2db495691eb28d77df8906366b70043faf3df33a9600b9ac3fe275c77252a12d25de449bc04063e044a942fdb41e55ccce553750b9fb49c1ad21bc936dc5f76f8db298b6c0a2666bf295a2ab630b918fee353ea2e0e3e92e1282a7457f39f91d404befe6876d2974aa1797976d23ff04da8746c2f59ea9cf24e65926aea6044cab07778ad0bb4c48740195ecdf558e988b444ea01856b5c67e0be20bfdec5be637c0dfedd353464497994f898a6c0b3685df5fa59a880db7a7f3607b3abb687a5aeda5e316afcadd5201ab10ee9d26\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 500\nct = 980358c6b0c769edfa51924cc8bd5814ee9e65a9820aa5e2b44be1f9994a1d98edf022ee24f9ec35fb486f0a997240f066bf7bb8ccb5d8fc7d7e7ebfea1f1e2fcef88cface2c308d8faaa8222e49fe839ebfe287495aab356705a14914827e11b45a88764b9f2b118ce6101ecd2cac0079e6166f9d4ef974b5dffb2042bf260f7da4bd7177d9321d8ceb5280db5e12c254868406d6d9524e929ae9b34b3fdbbad41f369647061dc38ed734ace08fd9f95e13f0514fbcbe63fcf8fd98db0943f5bb1993297efed583564d5bb8e27363654c673df9fc56976f8c9f582975d59de0aca4f3304c695b7ac822c9bf143629fa310418d6d72e7adb6b1e66a9f98c03bf\nlabel = \nmsg = \nresult = valid\n\n# tcId = 501\nct = 165ef0d3daeaa7ef8ee2f4b7d17497acf6d866b485047765629bca12bded02f1674a5c34ecbaaf3950b11269aab1d443ebd240818372f61727d8ca5501e029a002c507c709ba6728221ab4a4f4b5e651e7d17226b3d8220226873aa92bcf1a2d015f98d1cc64bfdb5aad8b69564fbea52aa8dd1a8d955207eb67163503ea14ce53188f9c89d9479484de1929edd1585269411d57fac4f52b6de87c3bcab4b7012cc7b8d33753ba96d516cfa7121e5db5df77fd93b26cfa7e86bea5171d07df3cd848e02b1fe51be6b8a9d577d6418ee6b680647be413482175586105c25f8e344d93c90f77b4ec905212b4d4c2a2f0c22c0df946cb4299d5b9f7369ec6364149\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 502\nct = 7e4b653d10d882087269dc1ea921e4c516452a743ac09ba26524f452fd19da8de02774df369ce4c463d2f8acc2fb2ce84545e93acc509b9463b83dec7ba8146709565c86b18e6331c325cc09eca50340aa779769cc2919a57de5c6381252225a490339f62cc612d5e7027ff4aaa6e3aa3cb331854c8c1d8bd4ff1029b1f27d58a201406ad3711c260f4d0b45a08e9f56f7289cafb1c474232f5c460a59f40497010b2710ee6211c95afc3e1e4720ee1a6e4781598564ce5", + "06cd87055a72227b7bda4ef1dc0a4ccff61e4b990a023357b45dbf8d8e079f0efff1eac660f66fef16b70a8738a904e626db2f50e584d4a6182d04075328d221fe10c683a5e4fd96f\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 503\nct = 48b4958c9c7c7cf17cd7e1a7fe09d5578b34579673af0d412d2a23265c2091050c2445bce9a67a987017a3c8955046b1f5cc0ef9d02739bbca6299088eb9466f9f466d6cf86adb573c840e13b81a7bb3316761eff298772d4d6f869291aee757933fb0da414977fbcc5cbdc4da4fcfdc9329384252324e0525912f004217832fdf1e3c09f04ce880d7c35f7848b058f2cd8c7ea455d692ea3effcc0d2e634aea6bcabf6630125a359cb4c6948c2dec49c27d7f35d68030ac1dacc2f93c7a60c038b3112c9bbe1f0c932d7753e82cbc3bb1c154b67b4fffdfe350e321bd126e6bdbd710ae78c2564bbb5a2af2a1ed953593be3b3823ac917444e4c87c40f4cd42\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 504\nct = 885fe5b25aef449cbdc5c4afcebe754bdc9ad7a55af803545c8d63ea8e20490cb25d02f50b253dc014dfc61ab489d3cee4e98b6961bb0e4c9d396aabcf2b721333b743939c1cad83c7943fe3fba74e9ac5e69493d3df1df35f37990c8d06e0396c93b696f9075dfaa27bf1e1c25fd78d29f45a944d1fa45b5b988d53337ed63a7a002b084cd9e16de2579f0330d7e122260d0ea14c8f67b4cc1971b6728d278919917a2e84f8854f1fbcd0da60bc6bfa91daf79109cc80c13eea1af29058b3bab08185dc6abe58b0a1d0bb0899e6cb8ba521d68703d98d33fa8a3670eef7c854bdf1a96dcd20835409d94c9f869e1580f9b25146e6b62152b9115f7d8d7d6f75\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 505\nct = 4c04bdc9ea9a9c177e9502b15f9227f507f22d93a5aa9b7962275008536909f52d9e6e29104cb2eb54d2e8405ce9867a96b21159e9f658851df4cb74407a62cb39dcf161c071b3b151cc50c65931a77876628a1528441c5fffc407f39c14b196902330b1bbec718f2730407bb48fb2cb2c9843d35a0181311b7d3ea2b4952cefb10e865fb1607a0ca25cd275dca1f9291c65e77d72815a879a27fba084d6322c8bc6ea6505786a60b05d4f4f1bcc417411b78c5ee46e889ea9585873280430184d6b309ac5904cd3e16b332b82f91f47371d6dc6cc53a47a68fd7602b60d863767d771e6312e359a48bd892b3d0a15d46b35b35c0b6886e4f2118070230b3e6e\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 506\nct = b53a6b68d8b09f6d7d9ab71aa1025ee64b919b598cdb087e53d783567b47792e9b4f15aed0af46b6c4a7e1fc28a1724fd1114048928b214f1f34b52cbb819629f9d9483323ba7335fd38e18766c8b2ee69b4f9e85c379d225cbe2be575dad637a3131f317cddea8c41b394a33ef83b6f9a87736be0b3bb71fac7e555656befee24b483aa0b32affeb77dd8b1a2bd06d83424aae6341ef56f2dd896719aff07da3ec1d18ff0a3f42f0833b341e99d5981c246c6333e3f7c4f5efefa4782f7d0090a0d9ff9cd67220f2145dee0d48fd915a34296f218261c6094fabf85263a59627033b5988bc060e71a0228d1d9616d49cbd3101d564207ebdea4100cf50d4270\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 507\n# Longest valid message size\nct = 3c18ab12d5fa387728579313aef636a9f35526faa37889885c83cea8e51422e439d4d91fd14859b0300f2d4f1b8a1b37a0b5abb79f00fc539f41eb4e784d38f6f12e0d9eed077fd6894f2a1f26ae92df65caad5b02d468cc22c7766102238815183c5d1fd77bf04a52722c97bc55451cd47fe27d7ec3752da4109e09de8a23434588980ca4fae480c2c1c2f1bf45b3163e419d6e98f82feb2420949f8a1e9d4b8efd422d12b6e58c44556cec1b2858e7d3f19dfcef5b680b6fa3347e6b851363a833d8805399706d3d938e71de55c58b2528c714afa38defe5fff4bc3dd8aef4061945f814b3171a92102df3691a8cf019e30bba6ae1a3016f1a02c393aec586\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 508\nct = 101f82bcb8157966c8f50531f294510416393943fa9dd5dc05f85bb82f0492502274e07ca7dbda2a7e16187981c923d60cb6b427693c6d7b107ebadbb6fc400492fb795cebcc804d498a7d3a077cf39cd030e941308dc87000af5380b3ca5e8728313e35e31b78ede9e5f07cdec8e3569afe3d13466d06d4b77030d146b32cdd7da566d96753fa44d64791e687dcb324f52371c0191bc9f1a5bc7b7736a5bf00d3fd518b70ed6f4ae0fcb20bc92ff3eb048a6f767596263127ccd66e474e8c27521fe2eb21b8abb2c23b91bb16264e058265a567492bc51c4cd033b1d8a5d7b5798360f4c3716ddb43622ea5dc9fcd36819e05a989252dcce826506711a20fdb\nlabel = \nmsg = \nresult = valid\n\n# tcId = 509\nct = 35aee1c56044da3b866bfed989690dbaf57ac10211ca4c364c4f4127fed0a55b581217c7e854d11fd1a1f9d5431c2c309e62a6f7c3c59676182b288edccfa961c78c1baa53f2db1b1b9a4dd05015f41872cf22acfe3a071d6ac1e82ba6c31f5c2d9325247d6f2c9b03ce00c94f02fe33c5678a4149cf2fb70bbbd995af1465e3819c83c9ab8b55088fd5d75036613b04df302113948700d7876b7cec9d7337bf5773343d51a4298e717a4fae09e573fea412d88b836ecd4f74c7cc7500609723b3f3a2a00d85ee7ccbd92bf6c065833027c5e50310c6cf8fe8d13e2d8218e785333a2e65b547e5eda2f8f2f9608f366d7e43636fca4f46450c76f06dd08b00db\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 510\nct = 58878dc8b9527a416ec9bfbe0f07fdee8dc5bac8e31ca545ae7c6ef4a68f2c", + "6b2b73366518edf85f1143c27fba00a5d9a9b02843ad8951631ddf01ef1238853b4593abf9701c621941b4f05931eaf307c06faa7fb818db8f859c96dbfc43268965303b44fcc69a0e3ce619624907bce074205f113715e5e820bc8c6dda65066453215702416db9320f54e67fc91e9d37a8522d701aa22976966a99cbc8fec0e12f2eb9b5705b4dc77caff82a36485550752a3a5ebd47fc67d66b68024a2c5db809d08be9090bb96e18807925b18a753ece05f1624fb19537abe7fd662830d56647a416df7ddb3e6a073150d5112f60538b685243f1e4fde2a5951c9e9499ecc4\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 511\nct = 2800f421c1c078b8bee9c4a4f355e1ea834c5bca442e9986792a50e66e68c0b8122cb81bb59e0070ca044c1c5b190f9098dbdaa977a441a8a4c62897edb9484935007aadb6732c1b2b2171aea3ab1513f225ebe7830fb823ec3f5433bd8f3c3e52775bb45fa91aa0ad3b7c1bc647b775e4de8e1b22eb971041267878421cf43a5e2a2675b2c940daa55f12a7c79d87d45e08c5592362f5e0d7ea668af99eecd2f60d7fc3791e4f53aed79931bd0ba90f701de836d8c8c9be7f7f4aedcbe5c92383932f762bec65fa298eb644877de26eec995146af551ad77ecfd06a3670721ab4c7577e61c048c5dd01b282cfc0fc963b92c78eabd13fba64195d74de4829bb\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 512\nct = 65a7286d77963a2d168ddb4c0e854baf8898d1d22c9de5d4968e8b326f92ede2f18fd29964708211ef6328e4ef16ec36a775b36b4531c52e01c7cc0058064af954790160012517134f17d92a05000ebba84f515f90258278208cb0a5db11d4b1dc26d2042218d2fd62aaaf53633ff0f632431a010b7e14971a41791644ebc170792a61b5548569f1b0268c890074a4b07d8e62d4857f9e720cb7307713424c701f6f666981ac8e96ab066f303fe89a138abd57b24f03d9136ef468cd8519235cef7bab01717898357c0e4ff4d3685706beb5d680da2885556e84663772d6c299fbda67df2cd325cbfd62932836920e0751b0d8095b914c18fbe5e348bcf4d85c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 513\nct = 7fcda819b841cf7c668f9ec9e7e115146f990cc420efefafe239637076bf9ef1c49ea69474f63495d90cd3859e335d323ab9a967c65fceb0b33a760142b00894d1ac25ee7c2833bf2dcd086a0cad64433aa606f4747f14500ed2779470b4339f580e2fa0a14d870d6738e726a34dda3fb7b82509edb6d6b9bcaefeca077b2dc582982ee6e28fbf167a92b0ff1141d10fc3dfc49adcfaf32115f900b20c812094bca91bb10301616af5030e0a600c993a24d96764986782da083e327569103f7b358a6a91d05fcf89a9290ff989ac8c0acdae03438a44b16c7a3e06a1591869874f29460b0ce09bd022fc3c606d785ecfe4f4a120298408cb425e9abc7171e4d3\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 514\nct = a5053d46939bd6c90f2a67f6613070ba40a831428884fbbb09d4923b978f17bf538a5963a0416875300f1b51d56880ecefbe58ff6ec7b3740a649f36db16ba6cab9b0e4e7a1ec658fa0fec781361a547a718ef5d9f7d03892bc1b18602436fbe5ff5cc6c3cfe8f2e9df960ed89800da546630251d292b00a60d102211db28ad184919709d8d4a1ab89d65ab2fdbcb66e1492c4525417eed89a0be2c67a79c5f89494ee7ef9d3d0d7db2de34ec6be5863993e8f64e4601b7945b2ea271efc941c4253b09dd3a3fdec6b45038887018a5018771fe60eb67a68bf977e9d3c6b032fa28868df58386902065ba3ac7f028600c5dd5c180552a25d741db12763dc3b89\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 515\n# Longest valid message size\nct = 89bc06f1f12c0b688352d31ddbe22de92b3e8ce8e0f7d34e5663cef1b473408c932aade4f06b056a52a48a0b7c80c763ccd3155f9f4282aa350e9c494dcd99dc2f4c17d53abbf24a37194db5f987aaa176028b2570c8e74aab356e233e406812a17fac0b92d27f503e6dcba5578755ad33a105ccd91204c8ed22e923492ff07d5aa702394b5b8cc417e8e390fc8268cab2468a4285a4fc327a83038e59114654df7d4dd32910f0fc2e900177d46aea50a61fb0e2066947fc648ef40e22c2156464fad8bfab19d8dd9a4aaa8804024693fd2cd45c233c59ec67be03a8b23fd859003b2d01540214b3c06633ce273a9a992d11befc23ef6be34798522c074f4ffd\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39", + "cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 516\nct = 5817f7d276493c294359e776931f0c4922207b6a06b43b5b03e3ec6cea095fa6acb8313b61d4a60e293eb8f99372b9cd210818a54e796bf09c70e21eec280fddd784c56d63091bfca32ea28846219f1e39d262ea475e5ef0e0802e80d36479ab81f6250d3b590de65e870bc9a1e71da1bb32154c9af2d049b539c183c0b5d6225c7ebc81b29cd0ad8caee728c57b8a9aa81e02e0e4e2ae2653d8e9045a2f267b844244eb84f93fc5dd37fd956ac933ae1a65643bd910bfed21dea885581b6717cf9cfff50fac0cd7ab5d13884401f3fb65a280a209e6ead340dab05177724f6ce72109a78c433c936e88d746c244d6ffc9ae76d16cc5a2d55fe1ecece194bc1c1a7d589376b16efe8ab4198997476c3c47ee232107af8fd1285f27bb3b455990649c14ef7ae1e81775042d6905c37a0afdcaeb6ce8c303d8fac88d9515ce50e6df603129aeb112fb3742ed607a6f095b1de291fc9f1d808a9c17c78a314bf0d1317cb4d2498b1ceadf919b4aa0978b929fb1b25e2f310daa3e707a7e3816e2a1\nlabel = \nmsg = \nresult = valid\n\n# tcId = 517\nct = 9c3c92244619c8e02a3a5c444ed621ca2dff15ca12def6a375b96548ae86a1c27056903fe1ba70d376f8f7949adff43d946430cc6692b03151f4baed3f395c496ce2416d8fd91578c607832c3d02005a88631b741414fcbd517f7d4774a818566e2a8eb15e5737110a3515cd43140083d6c8f8e059a1ee0e30145bb10ae2170c0fb782296d646e50066bc92825f1f3ded41d694c6f0c5dc5b17b1dfc84d6be72ac705b41f82157593996f7b95b6362e7227f1a4b1213e473c1f6eb3014f2c79f255a00b3ff7d9aad362a88eb5aaed14b9a620ffd3abb2301feac7cbeb7728b261ee6e877da45d28e6554f736273879833b0d8f11ff04b44753130bf7e5e340303a20d5c21c5659f48e3c3d1c566eccc2b5c57cc7d215ecb8adc6cbaad1eb2dedce4dfa5cf2888cd307718b9980ea17b6b3c559b955b19534207a2ef5ec1ee270a69e417e5d6bece4a62f594e94ceae0ed182833cb7d58633d24d676d1c009be9f52d655c656ea5bd938f1459d9b8405aeb0317d6d4d14cf2c7de2146696a64bf\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 518\nct = 606657c39ae419347af5117fee8d9b8f28866aa59e0dd7d6c2c07a24db6f500272a7766cd45e809055b4ad8a650647076034035a055e0b492a2ffeac0395ccf0a1f79b8344f6e5fb30ede7a0c75ca443b9e999aab43f902c8f85b1c3295296a599b16d5dbdb8f0b65a541d40c4fdb7a800406b56d3b01466b7097a5ef5140e283bfcd16ab7a9101a71700b490eca0a5f12b465be16e46997d03f119b25c98a3898417a433139043d11149f07e829fb7a274f8b6ad7191060dbf740806326fc62921dce846871c2800f4b3ed6936b63ef829a6509d17dd5ab71093f75afca0b32f2b81b697213a1076757fc7e2d264597bf2670b61c2fa2376f21a32aaac2dfd0ed728bfdf865762e07303c860cef78fbb4a32bbac94320bf3246eb7a9e19db4a219b88c41e86aaac68ee52a9700e734887ca4547cc5b6b2725bcd47cfce7d74eb37e7a67ef1cc2adcdd5137201a43af8c5da372c80946d8aac2bd920283bbc0cf4afe2e20572e8100134a0ce1db5422e8a2f52e0f46be3de9dc134e2a0fae6a8\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 519\nct = 3302b97f67d2cd9fb0298f15a375a21defb6c9b52cdbd78838d4561f0650cbe2563cb5e5ea797ca7703f551980307429bd786c5f5d15090701f1d130366cb0a93219f0396c9bf9c7bf2aceee5053553f147c15d02a0b5f00b597d01acda7a396d4f7c250cf61342a48e1bbd07b3bd3c2d47fa2da326e1c757816e47c7cd81de6e0e7ae36c99ae2fcc56bb47570a68f5507468dd40bedf2ab43eabf6fd00fb43a0e711477db4ee323300897cf11e4fbba49836f55197b9673a2433a1756fbcfc2497a4adc620e65428e29a18c80c9a86710d1634b56c296238efae7cc0ff177052ac7b2159d2c21e587752ca16ea50c3a3e50b12709535b7eac02c4f8fbb6a95d8455e472f41765a2eddc24008e74b79baa11c7073168c7b54d3168cb41353bf8011e33d02d4753bfb28c762b7c459912da6d441f4942c64fb5f6e82c351d8942c69299b07ad25b6011a7a280471bb90113bda8e450a1098c6944d048c371351b0f1fbc254f9334a6c7b26f5a1888f0c558727ad05da09539ec9966b5adb1f6dc\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 520\nct = 22609a0bccdaf1e08cef04569a12655f58a9d5a43f83cf9f979e3a358c67a1e444d104a656aaebf8f7627870799435c292ac4655edcdc427a0b618781268a9664fac3a2ea481d3b62b3fcc37f0a473ce47090bc6f3fb2a3d80db8883b99f26c3da4a9e9b1902b2d0dc4643c8d9f47c105f8efa57bf8aaafbc96ab3094d49792d0edd751bf028611c1a5fa38319514bd34fbd19a837cd328f0a77b39e7f56f1c76d1e2ad9594251ad8c7741e958371a5737aa272d0dcb6674ea36440c807e57f95edbb182236bb5af45cf17d8649e33cec6e594b5d0e609fd7fd74c53358f9aa320df99c2fa38f69caa1fc333e4cc5d0bcf8a4c4b6d2ed237748eb1886e5a9f155aac9e86dcf798caecaf3d8e83fcdcf1dad4c2e304e288aa925ed68a3ed672c78fe3477f2f59510ced468965d90c88b1d7eeda4d7a6c5f6cfb418231343d2838d96f6152f9963ecc68684d5e5572cdc3b7cd237c3307b7ab72c810a5832ed907e275fe67b267d022c4dde029aa840bea6870f3ad29524a097f9060cfea3a73fc\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 521\nct = a79686ec88818d6266f1fb06991ade5719ac10a7b0ecce5694dd76aea13fdcf32d620c290350839782f8083af7e73eb65a41d7a908644c6a28d6b9ffadc9545127eb1827468aa6f39a2f04308099480f79c37282e9d7f0545f6214bce22534cdf131c5bfc148562e45545beacab5568d3ce1615ad3ba0c48a93a3ccc72ec11ed32b770a3d435e5ecaa6f013cace1e04b8167dde67b97dfcf4c6434fc50bc53494d6252b70de6d48370aa80b8efd667993cc559791c0f60dd8e324a578a50507a2b36255c47871659e1c96148b17d9d2dfc453db34277a9ff395b828d627bd80083d44b594257a1b7741bd0b0865cbb0b6073d2b7e2a1158db00a20d652786937ed861e6775b551ff3ea78419ff4287a1d680981962f34d2c57a7ff0b8bfcbfe10e5c1a42e58e624971a53d59e1985b215a48a36ca8b4f2977b713baf9066ac3a98fef9775c97e248c53c3f425552050c29fe1eb05e31132806b7b7660da08ed9833ee43e7fe8f8d50325cfc1f6e54bc34b9b5994548516a980df38b9f61747fb\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 522\nct = 5a4eaf5cc897db7ed7dbd6a57519a06247b0c9c229f7bb1c6c6561858bca7552d56590821e22591218ca5edce82972f58cecd65804e048bbfe48df1934501d4ae5bcb8d50a0a12778540cd5354cbba91875ea70dd0f5057d808528f8c5600ee33c38ea7910f881e45ddd4db2ea933547db764769ca54bab59f3f9559b4d4e2d439462762fad169bf0e04cfc377b3f144924514c32d82e0a53e870ee0855d4ec96393c0eba5fa5fc5debe3d384debd1b61b33509f17da3bd95baeb0c43940924a11124d95d274e67df9e697c2b8133231f2f33aa5d6cc6f41b2962292c97465926bc8569a907c28b54fa6b6d2fd89c409da1b11d23a5f6c53ed82043fdaac6c0e4098daf8a27569d58b87b4597a25134ae45a8e1e6f1871d3310e56eca5894fcaa946e9a5844813e2ef31931dd105a3696bf04e4defef88c5c5a1cbe6bda766804a8e99c82474bdbc2ec344bc2de0575ff90a50d39f6446b99092cde226a81ac82f3688ecdbd527f37cb48490614022e2e961dc1ecbbac819cdcd1ed836a3a344\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 523\n# Longest valid message size\nct = 0392ad8b60f892220f5ebd2ac686ba3bc49840dc8e54fcf21f8e8a656ca0c53ed0020c9d512d5aba3f3b8df0ea3c65ac066deeac64111af27d7f7759900280f3cd554ac91016f341bc089ca022bd1d772a1dc99ef9130cdd0bdead74f65d08cb1097c9b5745bf28141cfb6dd17c3587c549e06fe37325a51df08a15c1bf817760f6b4d6c3bf6d49b949e97272de6700e3a82a856ed06cdb3d0eaf6e74d6c9a5e6b2da5bb6b3b162baf291a78e0ce082b58057fe92de538672ae21c19e215e337d4ba7e6b878f269be166e6834d8670fcdbffe7676bca15ea3bdea2ce9286d87ec21d3c538f17c17e41f653257e967c8859bf9cca349d5450af6b48355b49dd58c189816bc4da34f907df6a178768c511e645b8a6069dee23854144693045814471cbcb45e607dbc82a501d97ca7e0c0f641da3f83d69f9561731ce59cf2020002e3ceffe8371422f1318194b862617d78c79f89215733c2aab34c3dd4f1eac7815d88cf18ac9424dfaeeaa3d4262a2e1f4871704e4453d65fb9cdb82700295a7\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923", + "eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 524\nct = 708b598f483e5899147a7a19362ad4a3c9183b33a9518bc6bde9212ed574be82dc6f876f8599cd6e2b6f0356c3b6f38b947b5f775ba17832f9d84eb509c1c89405f926a6f3f2654e87adf415e4def41e8cdf9523900f6529555d2552dfed1a82b9739e698d96f852a7258a05f8572ae2b43fa57e3dd34be05d167bfcf85226404c973c5ca30f4bad4e17cedeb732c17ee68a3644997bd765d06943724c67d43853ed75f61943140e060b6a3878a9f32db3ab7ac600a4ceca3cec61685f8bb6db738b234a72bb0c9cbb140f5ea1de8156d890d072698ceb8af4c84fc2bd5eec9e26f1ece680e3eaf6e6828e1727d7fa2c9e12a9e45dff901abc4fdad44ddcfcdcd50e35425a252875acd2f8d96ec051482c57d9d39ea1c2c828e7c47c6ababb8e626946bd888640188ef6eb50b7e74a981273787bec45f5b95712b8e8bb07a63137135635be19ac859eda618dcbf2bb76edf707aec3b4c213d691b05008bce23805b5a45df842a6741f7e25a6c1fc836474365eb2a319973d6427bc8e49abc2ef\nlabel = \nmsg = \nresult = valid\n\n# tcId = 525\nct = 67d7153c10f879733b2c359613642e1fc4ccd902d8aea32ce41fb435b5e42353c25dfd99c241bd1931b68ff245e34db321c685a6d714b7d9f301ce6949e269761842d63206b4903d6a3e979a3b1b27b328126349bca16a8a45066dc6cfd303e368f8926b5d46630a51f8f97f691142efdd1eee3f27b0dc938a3d6d72b5ac4375dcc52cfb3f91e4af9a2646cdb7b86905372a764ed6afbbcce3ddc3ca6c7cf7d4d5ea6847093e4e27e697d48c0c082cee76f74ff491269c353ed5695bf5ce08e680e67b47ef13449b03877d78f8ef71c381fe4a4faab8ecf97f3977b8c11e3177ceeaa71b6f019f8189e8220736a088cf4e144ad9e40ce66d69e1bc20705f5c643eb10a1ded6de566a9af3abfe9c53d34064f82dd5c0579b8b78ff589d437f6367f03a4dcd956890f8f2a43286a0aa7043737f279c25d2b17c33479346d5b288a6356871530f5990fbc48b868f4c6046b5309cab0b3c9d6e40e3e07128a7109a541cc5ed32aeaad47528853b4483fb83ab1c41ccc4aa3bbf13929a2bbe0fdba48\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 526\nct = 07f7edce102c674659020e45270d8990d8816b845c857e2ea6f005699699377442210fa82d0c888314319893b30c228dbddc8b752a6e228b42e1a3d095ec6bab15b59d967b5647e036953fcaae7be91dda27ae1fbe595ad7513eb626db4631159e67a6ea166adf4a5fc935a08b513d5e5363b6210bcd5e6aca760685808ee39166160a8e9a9b696c88dc26b3ad4732e13abf52865b5d98a0da1d574411ba144a09c1d1f5c8b9386ce2ce70dd81b20a6b6c864efa335f9a892476fdbf0e849c725a02dd2aa2f1f9cadac87a3c4a2c9c4afc15546b172d611533fcf85872baf7618abec27d47fd9754c9a4d6f4dc9422d443945d7f96ad2005d6ec9f4bdc6a826ccf5e2e2dd01e635c99e2f697a68cdb1f90296b781488ccd7c481407f3d7b9054b2cd9b6638a82934c3cbf72c07bcbc59357ea14e2fef0dd2515d87a0c55d2deb1707b114fc1b7d5e45976e15f915dfb335c7b2f4e2a74a053bc4755ee9a2aea1593630657e6ea8b4eac5dcab9da50b3633cca1d9077b4f9f7c8214f30771835e\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 527\nct = 46218c74da50a1840ec6af0d61663c4b6073374c7fbc98bfbc420157bec28f7bbad5262ec9d10e7a6932f677297a33af90c5dc2090d9a7ec235bb1da9e3a266afbe53f898b4e7a87e81bbeb2c736b7590f172eb699a9c73080326f95d716373884d0d55f3108e20560f6521e6aea2f15fcbdcefdc56fb0679ae4fae4869b1b7201a5d7b936821df1e814c0f780f27956616a0f1431df89a91cd383b9a9815dc3b106300637a6ebe43dd80bd9165d10208e7faf3d497c8ab9716a4eb8de88e2b9125b8b14f14624629988a56da395f8e123dae412d77b3f9970779f763896f5b58f22b1370b25d7a77e9886d70aeda39b7472a5c9735c63e9854ac8d5fbe7c63534857159eef1c376bc514e8d7e9fbf3b733d480", + "f893772799f87aeed00ad0bb8170513587e0ddd0549fa4cd278813c3d195e18f2795250f9707ff064668f1f02fb1319ee572be73a0b25a896060d9bb5ba171932c015e241e5d4be1c8e04642eb8614c1af044c805cfaf4103dea9f51d170c5fcd0e79f36bce929df4d8118c63\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 528\nct = 29448c9f553aca234213e8f62ff76af84fcd5c30ba14485e0b4939b79bf0fbcef5ac0f97420abe7069cc4c428176f0b4e4585ee676ee60d8ed59fe730967a634501ff03e5505c65a7a784dad448796f095e66438e0bafca641926c85d1efc94d8e072c23e0c64dd018c379b5123f5004f32430b7d8cbda53dbd09ec60d7baf5b30161ad8314b5f17beb87f8b5057b8fcf1d67b0c5cc7568f337d9d56770cddebee8ea2b2a059f7b4447daf026c78b6955992cccb58eb35cc320a3aff29264effd06fa2ca7953177fd6e019df18e93c86d0eca90dd02f766a1ff77ba3304224cbdd2d08d90c42874909c408b983ce53520f0af5fd66e756ba6e0acd32bb0ff5b504162c32f26930a9481eb320fbdbe6d1e5831a2493dd62df16d58985e63bd4080e1b169c5672e384cfdafe414a319a566171f65251a071ea0fd7cb67ec680d930a2568beebc26e9feb31705e6b88650e2e189710215e65319d06ce265dd5360ba9794f2ebbd3438bcdcec18719e6b0693108d90bc65299d681754d281f19f404\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 529\nct = ace5b4dd6e14df0a7c6cb11a4b7d5f8d17baf65162577abfe7556aea02de3655ab1f8ab265649f61899394e682287420dce68c869b8b03e2eabe44ad8382c2c11627eda6b337d962f75319d54de3529e31bb4ec5ea5442bae7a9643766f942f880a2052cea66a2e2d650439b00f63ade817a5d73c8b8cbb4a8fc8fb10f298843383fd2bf9a91f51feaaf1317336ae13f7a91707d016f12476b0c58ea8d68bf2e43d42410385d5615b60e3465fc616cac003f0756fae25c147d1089efea4cb1a3d1753618b9f45beee1066e9f2ea4be11001718ee6d21049a790a0f127f9a741cd153231331ae10a38a92bafbde6e87e774fb20bdb037f26181a25098079aa174ff63b6393ea501cb48e842d4e1a50e20b4b8e74dee339a9b1fe95a2e46651e25b133824405055c1cd3f6e53d696b8057fd814d0d830e38b2641ac481431f0d98c94614174049bd0f569e0111514858dbe555a7806ef08efc53474d2f464cdd1a7b4732f8177ef036e514de43b4463c1f3cf0bc6614f87abcb1558be46310f0f6\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 530\nct = 259bb7d14e0b16a6387bce84206aed2a2916c21a231e4358123a94c39c17e7169e028e5e38511e905ce860e4d9874c736953474affd31e913798d8a0821bacf018c13e5dca476ab4c8f0ed194cceb19fd83bc1b57ff1f49673aba14312c643d3581f71b96942ec20d0b8ac21c415e16146cfce0e1a07752a00e6e2c2cb781825b057bf6c2526b69460713f9b813189c9c13279efe975c2dfb56c6ad59a30940a7af9b2854a6ce55f18e9944025ccc14fb638f1f0974e176f0e91ebe6f807d8f7c00bea264e47ae13e746c2bb8fd8d7d8dd7e1d1419065fa3e3bd8ab99e2292571e1312d9c690431d6ccf5d17a6ee829f4c07f88a25658af7525011e3ea2e311a6198c3e5af8b3339e0141889d71e99739acccbf3dcc0db5747e9a250a8cb7dff2cf5f36f1700d10c7af1fd79f8af83d6cfabab83237242082fc014827af3a16c9ee499bb6f84a59c8e15fab631a17342e05a17140dcd52151d0718e9bab9c2276e057b1a6deeeb6397d507d485658d026ea0f425df1df01cb1e9de96fb3ec680\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 531\n# Longest valid message size\nct = 68d0af4a4929a1e3b9acab08c1db55fb6f4b47014cf43c53b488c8009945e077988e6b4e6a7e96d4980603bc8c74e49b05e1bfba298726311f5e20500126a72c9c3b3ae0b47367e729c887807c940c40ef259deeec9b7d284f67752ac3b9944aa298b68bb1687a456a82745f7c090f7581c8c3192fa763a61e6f12aab3f04b89ca34c0bbc4c67069c180ef37d81964e902b6b9d5f059eb20887f7702a803d3af301d8f78a8f43728b8dfe4993966c94873a3acd5bb7be4b447e33c140662a1e05177d49fdb5b08e3ec9924f99add2e16ac6a27bb7ccb1eb1b69d4bc135bb6b3a40859127cf98262624eec721db2337c4c55e84e0bbc102d84d939eac5152c4de578bcc85b87e9f436d65bf86cd8164ee48f3742f6e9b7f037876bad346de3db96cd9441034ee6a1b4d5c174307e9c2cdb39442afc6eb4f2ce878454596f163e33c6e6d3f15980cd13ee4cf536ee704a2ca729d08d1c8f2cbdadd9af5dea9551730ae190534cf8dde4d33cb3f547584beef24a17b7adf08141e5b29def26252e4\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81", + "968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 532\nct = b47525feffb063be5201aaa1d6846f9f397589b988fa26848afb9bbd9d6b0d0c92cec327332f02bd072d53e479726faff5fb89677c4947d60d5f1d7f3bbf211755975e1851f17f0d88eb970bd14719a9e5b257cde71071915774578e0bead5f7ccd7b476732a47e0d54ef214488d733c689238f6cccd6c8be7145e0dee871fcbb504c93e1efd842b228d67fa3e303a1081e26052c6c11ca85355a2de7f717dc432a90092ff9d3d75301e7f092b3b425354939c43f0879768342242836030822c9bbbbe09d5e938fd070aac9f974c35dd46599766ac6f0f87a036a36e3650f7244a336bee4a9ed1280b8adf57d702844c739354eae88ceabd8e66338e59262ecf51b28f4dfe7bea8449383c27580f81ea06bb4bd031826e6f6ddd0c6a3c7eae23d3d6acd5f6388fd9fa70e66c86d178394953ba4e391629a9a588797e25acf8c130859cb7c9504998cce6dd9e032b1a09aba8b215b03b4343a5c0f2a8253b5543d301bd883e941786371bdad14117fa273296b153bca8ce4581df09fee1bd5e15\nlabel = \nmsg = \nresult = valid\n\n# tcId = 533\nct = 4aae8595883dedea13a1fd656405ae1a94785eb86318e181b747331019087686cb81b259f864c6a524137a316f744c0d092348fe0428e1d9551bd402404342e1df33f7491c381a4f32ae5687bfae07e1c408c3e65720f54c5a168a29df6b7fbc1835fa49ed5a8b42f2acbbdefb3cf58fb6876c2a0a710bdc5c9032018c6b326389b3c32efbd7aefa8dfde0ae7bbd829e6160cef2c8632335006baad32fa7af1fc9fc3ec5ac9c4f7af226e7561cb44338d428d97886d29009989e1d875650c9f3fa8af2a0924f93d00d2cfcaae67e8a89ef34d96afba478a250b7995e7882873bec869541c02ed46b410ab75a214f0ff08ceaed4444080a4ade6baf39aaa9d9ba52487dca33759153345538143d11af5f0ca335a2a3b94e1045da7ff690a4bd454fb788bd7c73b0b16e35ec2766024fd0b7fa44e0ca01fc61e331b1fc8b09f549a946101e2b60c339304a48d044fe231288129d2b70d6b08592288d175183e442b9aa4f5ec6eac0148b6be1f989263d3cf34a7ff265539b8e34c2117b7a1c7616\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 534\nct = 8f71391b8e3a079a51d015e86e0572aca134e5af782000545da1cbbb4cdfaf836542cad19bbc6aca73367dff9cd1e33631260d390b6d83882f82606e28abd2d8aa229ec1d93b4cf16599dfadd2178029360ef5a3bea6a136cd437f59289d334f20e7bae91ecca18b7e4fa5e3613e489ec806a52bc4727333bd7ebd5bcc7568f697d4013d0f6f54caf1baf36791fd21f8ce84643031ffe474901920eb4f592ffa306a979edfd6c287ee5b1fb0005a21d840372c60a649a1702fbc46489211700e8262bb1a2f54fd38da6a07e15850405a277705a66e7088b98bfaee8b2b51992797d5e5712147b756367170b6fde26c3fb5988ee07f916d189a3a18cdc0f3b1affe63538cbc187d4bfdcf5149b4d26bb207a1495d51a2ee1c2415f4a0d6434d50953ff2fe8480d276491ca1468e86c2318e94087e984444b04e7b804cb1f62c66573e82fa6800ac3a42ce0d8e5909f3dfba024a40c51b21b5455836a9244eeba25157e24676e1a317d1af9bf4773913ec3ba6ed1df50d3810eb98bcd290757daa\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 535\nct = 157562f61b512b11b02d1f8299e62f55ffb9c1cb5facb33c75fee79ea8bfb68314d48a7868c05b8c97de4af54e4960868a694a3c302c73195a8acfdc78137231dc960dab44bad191c4bb2b9f8b162a73799ba2083d93c55b425f5857c925f2aea6af19514825fb18724555a5b11ef553889af38c7585c35033d1eb9b71e56ec0a1a1185e4e6e5b7aab351404f0d4a4416023449d84f3bebdf57d5666ffaea80be1958be5d7da7ad2c081aa338203516aba1e11642192aa4024e5fed6119aad7456bf13c2dd561c4ac9ac887eeaf4b53bf15e007b043de9abd6619a6fad5df35a336f744d5034af72a6ceecb9305da973c50615c29b98a8d0afa8c54f5cfe80f8efba51b08cf921cf55c69314523619e753f3056ee704a947c24d12e8817d5312ea5f6d8444da4061d26f18ab660f0eb88019506eda480195395e6e948d42e96c3ac8723f5514d87da3bc47432ab60e93efd8e6100589318f1b85d1c4bd04820be2892a8acca1e3633950b111859c6ee2063cc061a44a737ffaa2c158da806864\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 536\nct = 7c741c6f511fb2eeef9ce3dd89269e991cec00f0ceab514a1780c0ea2e06261259652bbc5e46871780d0c03f933d2a3e4a482ad95bf346f7402509a3234617ff36bd50070e2278e77728ebb27eec2b1573c76ec52a25d921b1a6372ee6200dec65575324588203fc3635948e856cd47a857cbfa8d2fbbd046df850ecb1582d7ecf531f4f6f390b725703a58e82947141179811651588d6b13ea9fa09d138d71afac2b24b82c48ebf0e5dfdfc2a700d93d396c8ed4f78846797dff44535b39d176ec2d0124dd61b29d36a314631aa2a7d25015a06c0e30e2dbb011045115d6d705f06b593a22f3f6921806acb1c8a4460cad9104a78ce9c18e940fdaba39a6451a10a54aedc3cf31ad505fa889ccced290dfae89743722527324ef6131b7ff0880d90ebbf803fd798567ba0e07ecaec6c6ab2b3257688d2c374cc3e48137ff81a66c504a8aed98ff76ff057ae39ac67485b17abe4e16d6fb5b64a5d7c3303137ee286cb6ec53a86511cb224eaf47a59045529ed6049e3bdedf619007eefe4094c\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 537\nct = 76efadf7cc972062cddb8c0eb6789d1422632751dbfd514d3e8a4cfaeb17e07d78244aba11bd078fa4fe3da077f1b6b2a6bb161dffc4d96245b6d24acbddb56a2245146699ef629a069d73ea233dc3994f93bdbc208f6f53d4d74e47cc0ac167ca7912c915842d9113e75da6b2492608412e7fc2a577fd3621a1107c1d1c5e74d3a0aac4cfbf389c88474aa37be31d18fcad2f750c1b176f2c1ff544f5d23fd3e1a3c4507e62d5a2c2e0fb1bb426f860f84c4de0a2ac63f90e3a6e266504389e96b37a16ac03fff70f3bc4488b3ef783bea505911512b7d04abee4ce52b0100727e563f8416e9c6f889e5436b27388cd6d7c4e2ffda6896688f8ce15167e8baff14ce9ab95caee52a5fdc51515fca66b646af8aee83e0aed730bbf2af2a966f330818dc33d4662e4dffd50025cbf77efe6ffb3c6cfa24420f55a418d08b675dd85f7aba3da35cbadd290482af1e7a0c2b7034a41bc28a5e3dc2c47e78fb46ef14dc4674c65f5cacd17e4f542a9b98ec268bc977eb97045f50c714ad7a49c0e84\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 538\nct = 0351794ac968e26863bfa67aa4d602c725b79ca9a4cd907a9e03c7575b975bfd99fa491b5bc3f93e1eac5b48d95090e10a29d9e4edce709c74886ee2d5067bcabab044e239cb4c23e1ffa8a8666fbdc706ecf49225697fb6f1a095e20dcca49090548d9fd0b8533b090823a76ce6c8c8a139a20b3e930a8d2ef8d868fd92c086c06a86c172e40e76f9920a6de6ab2fbff2cbe029b685dbc20da94e84442050b0128200446bf227eca935e1bfa8c89ec3454ea3a82cc792a2512d8513f2ddaf172e35e735ad69a5f892ad0c216e84ea9e92129d8272db269173cbc525e61fdfa5533e2e69a4670ed95f4958c684476c208002667fc7f687260eb54d9cea88bbfeb7b6d7aa640cf0ad0af22ecae17034c762bf832a9e8ef090926c5ad4fe6a15b6e5ef69da001bb7fbc608bc024bcf38e157dbb57974169bdf302ec177e48d15a1d0c919d9b8862cd91d454a96df1c720561928e282b9e922d0d8218d65b74bb740cb7cf7455e97a5e6bba07424382c31c37549d7f29bf7e2e23093ee861dce0ef\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 539\n# Longest valid message size\nct = 6aa169ad089b2cd0c5c0d0742e452c4f1bfe9aa04f4df93eeb38ad6de8cc93da66af9ba589352446b8c3a5797cb0fb8b0b6d6b6fca1f9ae4d508951bf0b526a9433a9b26b5cee4aa943f0d2c0d94c479ef8f99e2bb680aa4bddef38ef607ce2770f4d60629ebfabdd9fc20c6b88c8a02179dce5e9ad9beb90cf75baf5980edbd5b92794bdf9bc58dcc44a13b181179e92fa394152506845188b80aedc2fe559a3bbc289b933fa2cddefe080817f6fb3f1e8f585389ebbef06c3376caa975c07efe683a32e64917566645330dca75480e7ad2eae5b4505b6ad5233e7cf4c3d8677e0350b8e1db4cbfd73344e14f458f49849cd991d3b4fd19061bf25784e17b04230b9a1db1637a7b8c0f4e3bfe00952201c039483551931f84980bf8a633a1bbf4b609ad64ac6d26514c869c1d7b915b223356fbb07fad300cc9a8e6c768927a857c7e9a58b0d784a04e24082a393e65f098ff211dcde8a5155550c18bb22d64d324224d77e150bf424262f17827f13920ec7df259ccfba158766b0b52bf25b9\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787", + "87878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 540\nct = 1d562b1463c4184b0a0718c33501f47c189ac199fdb9c44d0c645ee7a411918a7417c29e6c587420957792f84c672b096357268d979c6593345c7609a4aee8cbbef98e9e90c6f02e829fa7a1ffe7b39e9d0abd8670c245bef52a89d0e146cbcfe808ad0adbfc373dd1cdcb48d9589e9ae7a70efb2c6f19cb96ea6cb05d2455f5167fc280bec7bf59f85c2b44259ba3d0ccfd19b57d3157acf38f670dfd5eb98b5e9ccb5fbc7ace838c21a52634d32ee9f988f2f57eca9e10f706b583e6c4081428ec279150026fb088c29f6814fd34cf5b83fc2bc587ff25741b6d2dadd58a2d6d01a123792a7d79134eaf9d7b04a525b2e593b71d58195722cdd1856112bbe16aad40e129224c044d786208ab3e5aadadcb7ae89f52107dbeb7fe613ce682dabed79940f39909545dc3a6a5f38215873530347c47e3c40192c5550e88171805aaccf365963199155fac70ae55e37d48a5868d196b2937241a41f8ab38c657b3fe48ec58687ec7c726acdab8fce92be5550e206f2cd2203493fd5280f405d876\nlabel = \nmsg = \nresult = valid\n\n# tcId = 541\nct = 399d00081c19729c76cb06e90aa2311bcbbdc04ce73fb70f76e3f1964387bb9ab97ac7006f03a5940d11fd58fa9ff720df8a0b4f150f68497a650e3137364f23125da91c2820c2bdce22a9265019790e5dce39b5778d33263ef7292cce19d2ca2b747d290b586586a94a188f88f8953a54935dd8f80bffc21838c504b98aae9233e6ee1b8eab73b0f75c7109b850f14ceba483f2381d0b57436df0344580cc42128e2a015517447c56cbce0697d3379e0127fc979d8207c0e2bcb719fa753a348dfabd35e6d768491409e7c2a2115b576c3fa214f2df85dd98505dbf28b7a7047b9b483ab68030482db52be47136a2a89ce9950d93886d656d8c6edc9c24098a4078aa50e2d10bf40e1191acbb5dbc998bb6c4f87bb1e01790f8deb677dfb4790acda741a40b2ec5ebd71368f8d0e2aec5af14cc628ba56cb1a90a522c528c85b1651d7ddfa74c87c995c62c6803b8535f6f8185a5ea1c1ddae776f05add89203a7d85f217598fc7fa62c3b12360bf0630913d2de8ac424cc3f8e8b8a4836cb9\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 542\nct = bcdb29ad6c483e5949fccc711b3124f6853a79b44852a39382c99063f3c02571f996e1aafeac058e7dd0391ddddabf8d21ba580a56ee4c97f0c399ddef340ec31d377b5a6755feab0f0d77d4280856690765a6559c709af223292355d14064bfbda77fea44c61a276250091b7cf1e1b08e40a803762b75d6993885729b63d5e25f5d86eb322447b2282d5e7f281ef0a109ee97b3212da89f6b03c696a8fb26a6d135137c8a5a4f180be2fa5b782be0c8bc6fdd99d691567519907b2afae439153090169a3dc9b5565b637332ff9f9afc4f018982361cf861144041006fab3b277ab29f9c18664aeb7935888d1ec1dc8588565d1e9179cfe17ebb4e1a25f6cea2666c035381aafe2907f8387f41410a5993e5f7bfccaf0dd48bb6bbc5f321bf904a4cfed7dcda8d89249db6e0fd791191aac9df12f2a3496321673bb2805ceefea5b2f0edcd08294bc379440f6f890b4560664ac4c71d2746b9e84feab9de2df346255cda707094fc5b9e0bc289c68a5993c1496f3dfa71fa3080c1a37d4b28fa\nlab", + "el = \nmsg = 54657374\nresult = valid\n\n# tcId = 543\nct = 8372e84a23ee336083b9c0aa7d532ee1a93370d0f622eada84fad4786ecee9d1aa67efde78ddf7e8b04f9a2ee841ebe2553f7154491c707f4d78fd5940d8550430c73b9c1b81f5d3a50001a26cca87ba6551080d9e7e8dec3f24ef713ab1e7cc5eee6b4b4b1ef07bcb7c53b0c81cf573212a5c7ef7254adb835c28a8a4635138a960595fccdb348cec10b9095aef99be9610af58231239656b1e7c250a34f07cecf2293012e184383156e730cc58f5c21e783d293ab67a13586d09adeab2358b70361aa2b55a28b21ef00c7d46ec75d247beca705e5bfdfb6050a02e229d286c232b12794a2f3d98bed0e1c7830a4beab0f77de1b42fcd4187c568c9a4dd5d00a81141de5e8d49347c082b47664cca872c18a569e300459bf6d9b6daaf29f8f44373352b6877dbbaeb9f254ea5caf25c17e6b6d6abc8a8627ccc8a418ee233dc3e20b0df74764ec1f11a3b89dd9d72fdc38743c206fbcbfa6f5dc34d7fb9071d75008f047929e6a2857b6fd391fb00a4659f8bb69c8f39686e1f96c9119c7ad9\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 544\nct = b82755bf6e82ebf625485aea232d17652085ba1ad81fc6d7a38b6e790ca9e7104f82a657955146288cd04972133dd6b15bd7c7199b4b395aaf6989e119d15efc8bb0392f9dfe4aceea804289c6aaee0755062c8a02aa5f72852969bfa83d523379690483d67fe1119ad2bf7fac588d318abbc3bbc181ddc47678fd147f03bd09b6cf6c32ec238638ec101714a5761f83e8cb6225477f5b026fecf787f4c6b33b367422b375014de48501ec0a5a87c33a785c167096867095f9b03db86fe1808a6c5d15ede1a115f3f276fb233ee8e4ea648c7cb538856424ed871323a974013811dc5c4e1cf96c7bd04b8b096e73d5405880896a2018f0338775712aed7e77291606c055a5791de6f41f7d0027f6423a8c1d3e24b5f953a8d3b7d60e74f6530eb2b539c2271470b05d64e5a9298423db7c77dd97e8319b41f14b7c1f2d576e0b14ac37035a903ee4f9d307b1e7f5ce14b45f75b2133d64615e9fdfae2879c6e58fd57d9c68fd06507f64a0f55a9a38c0418c4636c387df5cdd24ee44e440d86d\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 545\nct = 724967ba1bdaaa1269bbcf9b4157b7b310d2a1ed6a9f1bed37ca3bb7a995a6fb240a91e1d4836e84de5f9d886a87d940d2d2eae11aba5bc22467a7ed4744169f72241a1cddcbaad2d22b5c3ce1a48898f03dbb1d1a1b3aae683e43c2d7574e51ea111e61f4878d7abb16b514888d13ec393682505490187a4f7b89c1078042bf2d191038a7aef2185e5ae4108e3ce68a76fa94f97b2d545ffc4333bb43df848f5427e7e0a490768b44af3862922167efd1b9c9247cc60a69e72d5d0e330083c492ffa106b9702f5e7e5c4bae9d5e11898527df684008374f38dadac056a9881af3684ee396c9a6ff1c7da0d2767f6bdf9e79e0ebd5d7e53e1b9af69242a9b0357661e80c39da273dee440849ed439d2e699a1a0242ae0979c7be70140270c2b306317de4740e754fae4026fdbb04cabb8e27cc3f67ecb8a5bf04b6a11f0021c64df271f896d572e57219c19ae93c59815715e7c9d9c9981735aee261943a1fba80f9b29985d41aff148c68dc00db385a7c797d5fdd3ebec8557fa550cdab7cfa\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 546\nct = 05ecb7b159fe31ba9f358b14f6d1b3bc720bcbf62ed0518bb1c4b90aab24513bd7d4259ce623da6b9b4adb7cd2251b6d706b5d291acf01eabcecf889aaefbb2f3c5083ad81cb5a4127680182d85cbd849c5b4b4cd5f4e9d7e1ecd235122c2c85d55f1a0978b63542f9aa5165ed8ba91c0bfddd77a5f580de22a89250bfa5cfb5f5c7aa1747f3b6ab0f4f2ef2cad0d09a4e61019efaf56d546f43f2ffa419ecc181faa2128ddc943c1324480bf4d606001b22f949b4d4571636d0ee35de458f7021a4e58ccb56b6906b00485b9764a839db819673710739c4cb08112e722845d1527cd46779379d6458d32440b90626a35ed8e518009af2e3c492b673e21d4b47dc8fe4dbb4a46ec6d5d6bc5ac6760df50005fe9cd14f3d7aa03fe00de281dbb755bf6d61f2509ca8de216292260a11a8e6c5de8207d2ae667d6e65ab3dc0169f0af41dd50ae124ac6e570c6646b3633971913df43cd59c3e17efb20a4b183fd81c0bdada7469e569120567cb35c2c0ddb293aa51f19896e8a6a71294c192a6ba\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 547\n# Longest valid message size\nct = aca78c4487959ef78d11ae58c0ed0a0c763939f16754805181d799af6cc1a0445a64d3a3ad9767e79aef3f1adfa291d6842bad8ffe3391b7ffb37dd7138709d9514c20c8e47755cff81f06a424af3d12a029dbf2e0fb9d381ac732d24c88945bb97757e07b95875fcabe601f7beab2d5eabf8ed562518e43e91d871aaef1b74ed30fbe6610fc8eaa58f06605c3065b512b535e0c9d336410c4a0797b252b44ffc934a6a0c3e5de045cbd6a2be1ae2df2bd681abdb68c42607ee78658f20d5031f75c23ff4bf9cd91ff60135b1e25ebc82f99ced3d12d8e8da3d5d1f4cbdd2b729ce2537c4bfb2d2cb04af410567f1d7511a29245a193cca7b308a357e75405ffc9d75298c5f019cd28a009a179624c97c20a469a64caa0ea246f6ed522f27ca9f9fbcb087fb4ade32a875871adfe9abfe308a56dc867f89aaf5b92e90fdd3fde225b18eae3acd31c32206fdc2dc2d70259f480bb4ceaf5d3ac276a0039a64a5e290c3cd847e967a70ff8f106792d388ad2a9bdaa8eb94e6f189e7772abf88bf5\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545da", + "ba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 548\nct = 28aed75e1f78e33d610ba8b5131704569aafc3f25b3f385de5579f511335f5a4c20a0f1ede677ab9fd5de4ce7851150d468705dc20392d6bf2f02d1eb14840117cd2fba4f37c3eeacb11e50820d3cba90aaba46b08b6fac4a676f35f093e76b40ba6e3be1bb42fa29ef2411254138cdb5183ccf56ac9950d8db4246dbb7afd0c07dcade817c3a1d7c743d0e09ce8499cdb072f5cc1912cd6ef5cdad1f7388daa9ff07cbc553543a37039bb30c4050caa1f116f198cfeed507e83f9f88a2c3f38827d3173956d854b255176dbfa98add2db16376f3180ea26cc662a9f4af7a94195765d00da16cd8469af70b807af7f428880d3f33a794504c3f7b4c724f2f5b73b5b6fe320501577cd0f06815fd8578127be7c677a480ea4a6663a4e22fc21cdb5f2fa6b55d508da7ea5f677ab6589031ff644ddfefe98dc17f98d4003745bd3d07f292d8e348df5985c66b7351bf59fc4ba6fe4f380e42d6aacb4149701838b6e58e72a55f8472052abc81a35f4de440fe98513c927c9c85e897d9d26cd53ef\nlabel = \nmsg = \nresult = valid\n\n# tcId = 549\nct = c2ee581d492d7b600c4f3f17488dfe843b10024d893b90cba08bace777a73c868128af10fb64bebe5167ef7b533fe7f995c18ad4a9e315d7f59aaf0a00beeeeca468f06e8614898fd5779aeaee1146aecb76e684db51036c6eb7b28e2d5ba7421332f1466f3412c38981818f4c89445800f31d6072d3b684b369cc49e60590b78ba18e329f40996dc54473e1f299f8704539ed1ce6bc779b95645617f46ff0c17628244a37c2ca4ba68d7da39d770c0d5a4cd5f1c816e627159ee18b42b8ddfb860d3c7b751216805394e716be5b3b4a722529fe858b65acf221fea492aa87ca25e881e7a22ee3c2e7efc35237fe3eaf888be8e37708b026d71f13304596b49f432afe934115ec59b791c7f4e8572e0cefcbd01f77d3ba83839a77975ce111186cf38cb9e2888c923f39151f39340380834f680c6e5a2dc9b898d6700b9aa2f71c37c0960acdb8c3cec8616f6a809eb50c605a943308ff682d414add911a77769c07e4d508f3b6d9e9c38167c83c4d6d42fd23f12c45d60a3eac2e6f0f22d13a\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 550\nct = 2b76124b00444da87728535cbcf4732b7f91566b8f26eecba9d4cd754da36e6338c589b6b3041c7898225be54aebb541259c14386e0f0c677ed27a32f30c1446d43e6685399d6eb2f92ea4da3aaf5127b094f8b627c4d37b41e779897b2be25aaca06e8bb32afa93c1d3653a9bb0a7d16e23463eb942a95e388be3ccf31b724c5a6067ad4ee08b4bcd9aaaefb8d51668f481991a7e6ae6b43a800b699a562d66b0b206345d611ae3fb53000d3ddc862e72ee453e3bbab2c0e816b56aff09d26b0b401374dd3c5ddad061f618be72952effbf0f70c59d0b40c509ecc06122e475d503eca975306a1a72aa70327df4fb113f512d70b8a3db96602559faa5f0796f016364ed3f08dcdac34dcdb25865c1ace799d596bc015fd3e00b473990dc68640987051d41b980fc188b29a29b8e37194728598cd4beabc83443ad42e07810d8cddc4043b0efe55a06ed821e08d09ec21051a1b2d40328789babda833cd9c0322f829ec9eca936e0d7ce0231263167b49651883468d8d908ea3192c8d88e7b38\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 551\nct = 0e25724f6e42206c5329634e684a7bc502ed2fa50b3996488d89cb9a3fbc70527fbfcd587096a66d11e5f9e855dd231cc8613569cb7854b6a13b5fb2dafc6a6cff3f53ed2312e78a7a2c1069674715661ad06f7b186208778a3be67de24884e086834a29fd89345823234e27c725ee7065b4c04056b17fdacade6ef3db2e8eaee3e4f6a9fd0ef1b44d8429d97be8f467725c1b6e3707dfad9491b90668d360faccfe19421ca5bfecef6050cac9aa0d0fe7b17ce167070b5c8fc0bb5489311b6d90e63bb0c107eaf09a8c451677236fb78764ed77c95853e5dbb8e475a0567064683787407598155c926eef896373bbd5276b976b5b7d1768885ef1d16b9ea3cabec0290c484e24922ccf34e7437c58a15370f02be963f94206ecfa27ecb89ba728a76fdf236941f46f67d25f94a33cfa6a81083b8761a25fa35b1606a6128addd3ede0fbc004b75c56c26b30b2dc965b2fa937f6d7048470870f4fe6ed043d857ed0a9e55bc8870b868dbc1eaeb65ce46b749fada386e5eb32d1d8f73d36f5be\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 552\nct = 63669ec4309c1bf26b5a46dbcf93963a9889711b2bf171b662783a2607ff32ba83cef2eec484e9c96088c2c0cee3d2f9fc91dc988acbe65bcc14979bd55c43da57641edb15edbcfbb5402a0391569f92f8cb936dd51454e0fb9c8cd6eb48ad338468cb88393c243bf1b21d97192636375c6cb6475bb27646c171a24b43f24c1cd3837eec5500ecc712bff0a48cd97a4c579e9621d463e10be675a3b8a998a9de85c281308bda2bb8bc5780a90f9e81241c25cc900d085d0b4cef9097cc31bda02e8aace8e5a0ac84db299825daaf6c4eccabd53d8e639cda1520440c1c560047e6aaf44674b8e61803d07ecb8d4928791d5e919ba78c3f00a50b4c1900b436df91c2b3685ac24af0f76aa13f2c95a1df23ae820d47cef9876f83f49ac0639afc2545b1b729030925ec5f6fbf2e28fe946b131fec922dab3b508421733c52282c52c0581cf93db93e54560115448763137135d4528001103362638fe356e007e271604a1adc000f6cb85c4f472209292efb6ec10bd2d329408c6f3b6c510ab635\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 553\nct = 5e63e3e39992c52682b446639abc4c49c41e9cb2a01f347625e8ba816cd10c286c7be42b38333cfd5255ae66d11b47792e4df0366a93278b0931e5994ab40b18c3a5d4814c856418a9cbd63f5dca4e7a04e8f86157a9e43f4f9b9e2f8fb469465a7513f3a8dee850683a1af9ca91f22d9554683b11d2c77b51602c118bfb20965775d6d1dd9170079660dcf0f5107f433fd4aee8872d3afe9653b8cbf16c9968ba94ebba0867578d56cd24bbfd39381cdf517cfe7523f94862debcb1095c2f702e7d64e207af8b466b777aaa17936f4eac73f48f2655a6115f287af54cfa2cc65f9086d63330f95977eab02b0e682dd4dce52164bbff642b40422be3d631946d1e5dad0f58fe6e658ec8fe624c41c219607d33b007ea579609dc4bbd4139b5cbcf56fba4e0b32edd21ddfaed09dd5af8d40235ca407ae0c80c0df7a4c98b2a993a11d1d6e2a42fa43a43fa666cd98d84d07549742638c7a076570cb0ae219de84f91cb08d5cbd97e8a5efcaddfa433affea2626fc176d1303192982db198cae7\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 554\nct = 3b196f16bbb79b309902892527e09a17c0d6d52ab96c16539eec1c84de914e646868ed7bebcbdbf63ceae2ceb7952a867dd8e4de3fc94ae3e73002effbf91f0487324fdc867fce325d6c57e9ef989d6e650d685c7324531af9e9975d241e5b0f9fc9731a6940e919835bb7c4bb48153333c8a1c34b4e5d1672c11b855cf648a3498dedbddebd4f14efdc3e0e055dd81d66ad236e734a8bc63615d597b4d0b449239c039434dffe1bf619c6fcc8dca3180730914a7d5514b8474179d71b39ec18d696841e66460cb7f8e5432de13208aae2a84263d85b1fbfaaf1a73b1a75239dad8222ec91ce75df3d00d8520e56f2015eaf764442d7b3d5f27f5789ebb2fefa16ba0a2b5d1d4ace1c6eaaee751e3a4cd78bafba05600f79b951dbe4a0fdf1380a3f230f10223c23b7b0cb06037d217ff64a9e864b35aa6b97f1eaf80aace3da519672bed3e5d38a23dfea47295abd48f848564043de4f8eb5ddd4a1020d194d355d396ec643cb05aaed3d0e626b1dd6382ae1f79d2d1febfdfd155235f23add\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 555\n# Longest valid message size\nct = a88d83fabf35852acb9158b8c926cbcc7c98267581d657692522b3f90a1fc70c0dcfb638b4b397d77cb438094d8d916a51d730b98132c95aa649ddb849907b9e9d8d1559179aaf324506a70ffe9fb2a263df43c2c1886c1e4f4a9d714b0741674b4fc76dc4d11a4c8922c1e2ddf7bc8d920e52c1ce211d79e716bf62f971b055a4bcdfc7d3b1617c34773bbfe73865b51af432b3705044fe98d2bc45db99c1764136dbd33c7e7cff8f901", + "6c27fd9cbe31cbae4c35c7e6efb9632bbb3729a08e91953c22b4f8bd88eaa57e1fe189c175b7cd981fd0774342663f4dbd1fd0d12660ca7c787280359b8e9176bc53bf23601a02611cb9a68b1e84402d96b0ee9d8c798e5cfbf03ff32ecf6684aed668d5d6f0632144971dfa3adc73964fa463f4de1940e30e9306d0097bfcd1953d77becc606a18fcd7fbf81b327b0462807503f49bdeebb1e290b837bf63a0d1c3f1de389b5c47638c67ebc344eb19b9550de5bb7524222c2d6b4558ea141c37d226a5d499c18b4a3ec50e1160c4eba8493590244\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a81]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769020301000102820181009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a810281c100cf3da32cd99c1591aee15c1a2d933b7e5ff4d2dac6e0430bc3b41c2a93a16b5abba9496c2efb7695856bf1d38e818c57ae117dac789ff0e725a618a0d5ae46921111748298656b0bd76844e323497d46957d5c9e31f186ed64403b911f02b23ca2dfcaba2bbbcb7cbca9220a2b170d0ab60e5a1f90f957e32d82c7a8362e916f83a98c9f74cd0d08c687afd6bf0d89f23c7cad68a5d3be8cb86a5fa54870aee4885c60d8051e74fa46a75685d7814e153238727351365b94fdb9ef64253bf03f0281c100c639e21504b61149d3d240cc9ccb85a584417f2373087b9f2bcfd223974df5c075082127bb55d449d6670c5ec550f8033bbdc6a1ec7a67999faee700ca453fa1f37db626fe1ae62784d77428d8807e270bb5eadb1bf5cb3488827851416535243d3021511b12c2d38e3dcbcd9560b3d9cebe1c435582971fa2d60c49ebcbcf4da896a57f280f97a16707d0471c3cf62fa43cc01d5d09452ef08d29ca2286256ef2feb6067aef00eac0b1d13cc7f49e57182350e5a695e5803dfc987788350e570281c100cb73d4850c618a5f4a535e0b2920f8f0391dedfeefed6c84d92d31d5aeb772e0518981565ecd69fea24c75cd5e82da179e00f7e2e14d0bc0b11a5de54fc1d6f0412764bd6d056bd0e5392d1fdc1da28a2fea3189f0b80fe170610ad98e9b2406195420ff223e2c281a42e4f31c9875aa454ed3b557ab225819eee139c76f72420afce1dc0d5bdce6f7986fcd2025177f2358b7191c6b430f7d6098e377b9804945818365afa8d5e87a827f93c81cde5e3abe65c5c63dda2cebe6a51928e0ae1b0281c02ad9a264b6c300d3bbc56c9a8e9e744286677e2b549795d99fa7ea1e257c05ced7bdad25209afa2c07fbf8b197e7dbe51f09f42156b45326e35cf4b4b804e62f852a3cb10b27176f9d88d1a46ec0c00482c48d8355f4f93b5ef30d3d4b6cac632c12f670c8f0724b372966a00755832b6744b3695ed7bf0168baeaa72420c7ac5af04dd04201b4de801e3148ddf2d3a912d0cb1acddcce26ca7b497857a435fd58ebf4bf4bddd48dea9fc5c264db1d4b687d61e472f15e4e2d98280156e1593b0281c06c29351eb857f399c0c6c55e73d06e5010ea90c7f170dcf15b0bdb32451be4f4bb846687783da0df865f2846772f1c29f5c0663ee9fffc28e85d6b87db1d2c07e6c27274028d734bcd0ba4d264ce32d6d03d96ccb49c023518c93df3b34c6a9a2dc4dbaf27db20f040742c4121e4a5eeade583b5324c33720c299141408dfc9bfb785c846419698b4a71ee126dd723fa6474e963c8dcfff1c0bc8e34e3275c289f088dc9e54ec58cb48cdae73b251c2cba6d6dcdc4c7aad8ce6835fde9d6d861]\n[sha = SHA-384]\n\n# tcId = 556\nct = 47973e1587d337ac643d00cc7558d01bdf749cf9c7d269d5698130d5ec901d0929ebc261b607a7267e5760ceeb3c95a39a36d0dde85323df3f3ea3b7729b04158a7651d8956a6c38c4f68f6991f62481177d2f3c63d409e5480c9e572cb0395573ea78c1f43db9e30e963b8e90950700580e46773a25c252863fa9a6422a04a7a23ce33a093cf502608bbcf35b9207c8cca145ada2b5ce89eef4cb0d3df09faefcacd7f856a809b73ace90ac6c5146e1da4f57627ead19e5de15b22a079589f0c7aa18a9ef4cf142d77310dd88c2f73fa29fe822ef1e5b302ca95ba2b2ec5ab6baf83c13c31966d2523aec88ba3df77305b71aa777213d4ccc10eda50a7485511fe27e982fb344b8d3816d364997124f636f6971707f5d6c07db4a8726a242b4ea14164a2e91f0df74ef8d2bddf2a2721f2eb4f8f74740570cedeef13698b5f3f2b3ee572ab34557e20142ba0c5624b39a4592e8f34c06304b83dbd49fcc500ae009e4bf54d9623aa912455e8dd183758d9bdeeb8d2f34a8a70f87c0eab3428c\nlabel = \nmsg = \nresult = valid\n\n# tcId = 557\nct = 69b57f66fb5109267ada4c01843fc6dd98f5e910d55722dd40fc7eae93ae9f531fd493142af02108202c83a33209d2430632fd79d5bfc3f0268dc8c6bcb9aafd781d0ec81678439c1a25647aeb48cb8d801d063996be584170b63a1c75c7ac86e4e2327d68c6f7f39003b7fff1551ebecba68640c9d1723a4f1bd78b780c8ee667d9166915bd7c0e2974f3834206b7016bb063fb28f0b3b80f6d47f068fe03b316f415a5e48f36c15ccfc5aaa2f65b340c863c396cb15a1a643ea8a2ba4158102205e39f1b4fc08474fa51e511e22bc8bfca4583dc052453d73fc9c938f94a7c244aa73d01e9663f31b0b72c89de9d098d187e95d3425ab4a7d53abb28a71c3233b156e688062275d057a9617b59e1e3254d90084c8482607ee22397dc784e7e74f5bf9b39083b8b322709653c0a4332245e09bf7f0620a7fbf7e08af0d89f63f148dd9a45807648f9c225cdaf32c0c37ded3d01b089f9558fa4a9083c9af71ba069cdbcdc63aa374efa1dcaf7df3b85e009360d6a1f216c0f9deb5db871a676\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 558\nct = 37918450265836fc7feb997d9b0527587f5343d9936094af2f885f64ab9de69c582f3021e07896137f4a5a51b144e8e6e362ab2a5a17d02fbf449d9371e56cc92ad50d14f5994f0b9f7adbfdd44cdfdc", + "7e778dbce6950561ba7d1d24d091c7801431a2a2e5cbb6be023ec31d9a27ade05d2b56178782e88fe3a85dd9ea277908d19f5f635cce17a803523e85fb6d61cd0501d706220aec333501098184ff4e8725137731338669e9cdcd55a91403e0071a858596c6947a9f056584af698e9f9b9eae9427cf1e236bd9973316ca3b78c36830a6b98c5a98941d686958db0ea60aa836be6fbe1de9f07da457066967063802a77889a5272a3c395f3ae2c7b36d39b800f8e99cac01e286496906842a26183b8491b967e85ef332b929eb5fd3690c41c6d4c0d5599ee3b48c3a1f0aca771c10023985bb1430316ea96dda506e634d7c1f9eabdf22255c3b13c2ac3de62bf54046b473abb40868390abdfdabbe83673992d1d0ebe3041dac26de5c4866d7bae1884e13c47c03403503b9ac1da9e8a4\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 559\nct = 74284804ee84f2985e7d70ebc9fe0f9e180348678296b4fa0ef81993b457c4a59d62374e3ccb3a6e74e12a27cc3aba4a8d01d355602c02cb768673659c21ebd68c811eee3ee40fa835c5a11884ec8d76cfb7a8fefd92582b4ce795ffc81d7d9c33649dad4489ab2923ae8dee6fb020446415fede7ac993f8da810b46c8f7bcc2f3096f6518cfd8cb9b460399417e7970287a20be645001bc263c143f4f3fed68ad67606e1103ce9c3ed82cc0c141bd0720c93aa84f5ec945c52b7ab7d292eed389f310b95d89270aafcb5b2d2c2a452653eaccc52e09a5b8322ec7474234333faa7633803e661e7f50952d7453788c2e3f04f93a08ae422081b294699b1173aad0c2a821cf61a53040cb029ab7cd29e865a03bdabb26f975c173322afa4a52f35d15fd71a1ab9ebb7042b948e842796560d62299213c8b8fb01fddf33e5909d47cd94383a72ae5cf9587819dfc724c734be50a04f7123605512420f88db21ee5db0c37aedf10412567e868ac12420152a4441574e89e3a703a9b7381a00726b8\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 560\nct = a02b0a7bf8883430ff96ae28d54dbc59365f6b510eca7642d23a62c9f1a4b0f782e964c486511b13ae2533b8347687c08d14e64fbcc7f25a5b72e29ad2a09e17b20408ada0637baefb95136046d1dcce4ef4dc4e50002d6edcc99d418c73ee0ade70d82ad2035968f88aa628bc8861774099f79b7a2bfa3e1e31a9c2828133fbe56485e84b56da62830618278484d3ed26b0aad936fd4ca06803da69679e02d1dc9d465aad1ab936086f792db899469f8ef5b5e3031de83f5b393a9fd3a1375ed213643dc0c3871bac4aa6a661b455951c98c84c4bbfabdd132b0cdcc0367a58d3a43ab310590a3cc1b56113f8985d984816677092814bd61171a2dd15d5e9b00e4e070e38ebe5f14b3991a338185aff3d86f0d937770b9c657146ba0bed7b35f40a6adf06f50f57920fd584027de5da35f459aba5c4690a59fc107b54f464908628f0afa1652a8fe957586f3ab682a773dbf7131a25615d1231d0c79ed25c3fef945b7e386c3e96e5f0c0da399c115b3780231359d8d8ce8bc25634d0c36a9a\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 561\nct = 27b533eb909d4190c794e81be19abf776deabdabed0021c6bfe1c89d89fdde4144fb841033896573c1fcff780ec37386545e61c4492f4128386aa1fa2c2db60fd98bb6ea52b18de0bc65ccbf78a9dea9deb16077080a6f6e921ada15a188c1dfc3908f93bae22184671a137f31a986734f9c3f2b2192687e89d85ee45dffcbd7e1328d3515e84600539e3c7ad1ca9d06499a1d62613c777e487517b4ce18c05ec0583805f41d2cc8a7b617158cde83701549c52451fad725ff3805488ba9ad5c3e792579594e4800e53a7bf0d8c3464db419ba2f9d36411a0a4742481cbed7fd7bb9d77794435ef47e7062c3ec80148d81ca525f0ba792cdb73cdae5b3e01ca87a5b5f0e07af8ce143f127ad940f8efe3cb8eb3c799b5b776ce866f784435b4125f0fdb94af3d70f49d68cf0796497e9753d9bd0c7131f39d23be2bae7216dfd3341c9bf1cee2d5aaa6d14295f027d752b4d69e6a65fa739748a529415f5afa90d60d0f398d0de37261724325a80e8c10223b6699e7ca3f59fb61d87597e8127\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 562\nct = 4394bedea0f243479fdbbd439495f5072765614bab9bbdecd4532626b72de1370c57345f1d60e62bb38876a9bd61e8ef8bebac526e2aa1c6f3785b6cb50c8f7f575c648c76b9b3a9d662bf1923cfa5e971482c34491767571c1a0cc60eb725a7eb6294c6d007d1f8a1c5324f4253a52e9d294a9c8223cb3c40782cdd9f66018446273cd4aee34b5ddf71ffb273b8a4e6faf78c1ad3103fc1d6804261e422d2fd5bf3a09a44bedb56dc50c15cb216d7bef6be797129366916f549573d762cebc8dc9063d38d481d876a1a61830737c1bb9c5dab7ce738ec4c801e3391d68e8e3b48727b31141f1394c9578d1be81dfe5aeeda707cd7837ffff04a57273272e646f28609f5c8b0858fbd235e42f811c6deeb6c55be9c5f75c59f857fba9b61c0e00ce2378b16002261b121fc5c8e9209b7c5590165bf1bb9cb38aa49fd075301c755570b272624678b5bb3604a1dfe22867fdbd62b0f206a4632f3a9e9877bb24b57bae21541541aab25f6dacbc2bf3696c52a8b3f7c9fd664397e5ad032058342\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 563\n# Longest valid message size\nct = 28eb8d7653e2477e14644e6c667ce423131d6cd6a2407f67ea296255744a27e108bb6f8b937c3ff292ef1f6b95455d8d61a30aa2e7656b74bdca96f9c72378e10b09ebc73491e6fcb5262435c83d102d9676edcadf2ffbedece71a4525383ed3c05cf5aefab3f835ec09dc313a78dc5a4d2ebaab92fea0bf9799d067f90fb2e21f7dee12f8c9b8e8c694b3ba79a0127d6730910953d2374017f3c9c0dcee32b1f915109e9d3e884f10c9f24aeb163fa19bf4dffa592d195ce98f5e9229cda67eb366d231bc5e6c8cad2aa3943d89d0a3e19c18b5f8e6f8629da0622297bdab6a4f64274e9eb6eb5b3f6dd1a49b8d89bfc146d2401945153c8c7487e9f34cec96942b17a139a7f94017717edc2b1f5c9f3f8635fc1934964c54a9723c498a20f6728a96fe65f802d2f04065ccea5fb196caada4b0b0e8319b5218f5677352d3e81e899ea85b355600492abcc37a51cc99ea368128cb47e4c768438f11c236b2ac44d07edf61422563827054d22585701382793af1c9c2d70cd4e3c4159e1e7b02\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a81]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769020301000102820181009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3", + "dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a810281c100cf3da32cd99c1591aee15c1a2d933b7e5ff4d2dac6e0430bc3b41c2a93a16b5abba9496c2efb7695856bf1d38e818c57ae117dac789ff0e725a618a0d5ae46921111748298656b0bd76844e323497d46957d5c9e31f186ed64403b911f02b23ca2dfcaba2bbbcb7cbca9220a2b170d0ab60e5a1f90f957e32d82c7a8362e916f83a98c9f74cd0d08c687afd6bf0d89f23c7cad68a5d3be8cb86a5fa54870aee4885c60d8051e74fa46a75685d7814e153238727351365b94fdb9ef64253bf03f0281c100c639e21504b61149d3d240cc9ccb85a584417f2373087b9f2bcfd223974df5c075082127bb55d449d6670c5ec550f8033bbdc6a1ec7a67999faee700ca453fa1f37db626fe1ae62784d77428d8807e270bb5eadb1bf5cb3488827851416535243d3021511b12c2d38e3dcbcd9560b3d9cebe1c435582971fa2d60c49ebcbcf4da896a57f280f97a16707d0471c3cf62fa43cc01d5d09452ef08d29ca2286256ef2feb6067aef00eac0b1d13cc7f49e57182350e5a695e5803dfc987788350e570281c100cb73d4850c618a5f4a535e0b2920f8f0391dedfeefed6c84d92d31d5aeb772e0518981565ecd69fea24c75cd5e82da179e00f7e2e14d0bc0b11a5de54fc1d6f0412764bd6d056bd0e5392d1fdc1da28a2fea3189f0b80fe170610ad98e9b2406195420ff223e2c281a42e4f31c9875aa454ed3b557ab225819eee139c76f72420afce1dc0d5bdce6f7986fcd2025177f2358b7191c6b430f7d6098e377b9804945818365afa8d5e87a827f93c81cde5e3abe65c5c63dda2cebe6a51928e0ae1b0281c02ad9a264b6c300d3bbc56c9a8e9e744286677e2b549795d99fa7ea1e257c05ced7bdad25209afa2c07fbf8b197e7dbe51f09f42156b45326e35cf4b4b804e62f852a3cb10b27176f9d88d1a46ec0c00482c48d8355f4f93b5ef30d3d4b6cac632c12f670c8f0724b372966a00755832b6744b3695ed7bf0168baeaa72420c7ac5af04dd04201b4de801e3148ddf2d3a912d0cb1acddcce26ca7b497857a435fd58ebf4bf4bddd48dea9fc5c264db1d4b687d61e472f15e4e2d98280156e1593b0281c06c29351eb857f399c0c6c55e73d06e5010ea90c7f170dcf15b0bdb32451be4f4bb846687783da0df865f2846772f1c29f5c0663ee9fffc28e85d6b87db1d2c07e6c27274028d734bcd0ba4d264ce32d6d03d96ccb49c023518c93df3b34c6a9a2dc4dbaf27db20f040742c4121e4a5eeade583b5324c33720c299141408dfc9bfb785c846419698b4a71ee126dd723fa6474e963c8dcfff1c0bc8e34e3275c289f088dc9e54ec58cb48cdae73b251c2cba6d6dcdc4c7aad8ce6835fde9d6d861]\n[sha = SHA-384]\n\n# tcId = 564\nct = 27ee85b38c60a690a3024d9c8e4deded1f89b39d9a75c147e4dfecdea5999a76936c29504bf1ec6561e76c006edc3099be44808d0d598bf3a9f5e3023abfdb94346798c9c023c2470bbcc946b805a06b835fcdb5662fb5124c51bcaf01a3f54319224dced5188712d44037a632a6f1a27deceb74f4db7186e2401d399362a3d44bef0760265d9c27dd1dd7ea96a0407b7b07e34440d494799cc557c86d3fc78929dc5b0d01715ab2ad460383fdbb3a9762a666d75bd124a6668eba6cc01ab90b81c0f1892176348e442395fca7b4c1b36079e03fb6ef310c9fe7f0dfc89352d0aadec795dec87a676309b25c255eb646eb684028dd6b17ae19632ac287a90677ca65ca01421d5c88af069128b3fb33f46314a9fa9030e438b0ed1434e2a5ef51b91aca71e0c88f8a0445e10d5279e674823b1fc20a50251976b917d4f59665f5f25eb39f931b5c3b85eb2ecc7e035d9b61eefe3c1c5eda23f557df03cdb21728dec1854c3c7853252ec31f12dc31b6d4ea7d4f937d642685b8f383bc20b5fa39\nlabel = \nmsg = \nresult = valid\n\n# tcId = 565\nct = 4027e6c9a79fe29c4681e10fd204a7555eae62772ecccf64e71463cbce3bd7391f149ae73afbc5aceb46acce36173b454faa2a3055c9be3e21894da23586f23af070f7387e2a365d168532617e58e1a337884764fcd35dedf2724f2efc000d3be1ad675cfd9c160cd2d3e559a06cfde400ad8e1f000ae4bf96088c5677593c86f9ac55af0bcd2c679874f5fea1b36859ee92152a4afd4d44487a89cb6797adc1b5749912c5c9d9a5ff0fe594a6d8add87dc7e586f638eb84629d63ed6363bfae345763dd1c23176c54b58ebc4a8839556d4e37087161a965a85fa25d518682fc5fd3cab96c3677bf375febd32514225ffa6d8ff9a10be12aaf22df60b9a4b75ee8143fe0c3532f09110e316d588d11137c65cff2fa83464fdbb81e561c6ce4a573f829a813394eb4c2ef3a1a60552c214333a4dfd3e751d58b28737fcd79209b067712f456e291be01c76e426099e52a04233ce54b2ce3c7e0818964809e6a89ee382393523d03218b30c4d013011ef07f99cec7336492a300707d04b181be30\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 566\nct = 5c0f788ae26b14f141b3b5628a45ca8c4cc27621a216f0085bc258c04e680d6202bc3f45208cca42bf0b2765fde677434d8924be909d794d2608b026370d467e9653e610a404cce0130bc289132b28b41bcb5c7813c30d1ede76c2a8addd6bed94e33504d435615e2bf625f9f829ea93fcb9cf40d973f7eac391cb7010e60163ba964c57d7f69a0def4ec474537d33f499e83582406c5c5056f674731acd966d5f4c38acde55ea3660ab09a3d350f17f939576ba8cb86b3c4ffb5ab9d98ad5c96ebb121d075f2cb0add9dd72756086013e21fe6792509022a779152e49cfb8f84538f4a0e0972c098571c10b5d5df2d256575f6afa11310d8b265c1609070f6ec25fb4d483a38832348845c89c2fa4e90c3201891c3a9db1cfbd2048aa2175963eb685a4828f181b11fe7841668e39af682892ce636bc863f5ee075ee3a2e8d21ff58409fa331e94ebb96c014b28bffc2a0d946b013224dcf3ca5b82d3c0f0d2b532acd52f8511cd63814f4dc2be6b645909460c60cc6161ba943ffa4be83ab7\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 567\nct = 788a14e4b16095e400e9e05ec38668192194bb2e2dab6211ba05cf4885cb001fe1b86b2900a5d5c8d533e15c33205b87d4fb870f1eea227a98a3c1d44110e4634f1336642ca246dd5783a0318d8bcb3bdb19d41dd6edd7a8b352bf74fe809b6a273d26142e5701a84c1fa777390e69c9827dafef2e9ddf4ad2e4c794572d82d28622bea1341dfe0b1bb05ef46426124597ce55bb6ae38e6552d45cad9180a95af302c333c5b12ad5d99f5ef13a4b49ca6f6f272e73761349e78f0cdffc7ad52208ccd2807162cf9b40f39980f56ee7aed5c9bdcbbd290c15093b2c89f0dd9adf22bad84e07ae83b6b28440ff2de6ce8979f59de102aa151e55aa0754f5b7fd40a478b4185380fec95602c0425fb29d808d6af069fca1b1f7144b4f4e878ea02e105e3e64af0503d44174c171da152e645d47f0f3cab45fbeed4b8ca4eb287477f29b127a3a327605fd9c23098dcb3268edc00316f88a2a8bc3e42b0475c7b4a0e749ebe13b996f60b513f37b6105bf08b64f182e8ab0f2beaa8606ae832feb20\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 568\nct = 6d772e790464e1db9c70ca675a7f6bbb3df16934688062c8ce8edcae229a841e1da31afb8b496b03b13c3e5488cb9e65ed1c1a8ce1ec9be8c655b313176c2755810a1073cdcd878cb06de99df7ed5c3e9f7c69540f62e1e853a012631f0f3bcc1bfe228e69b05a79ef9eb76a706eed398b9f467be233aeee0bc9426667c4b752890a1bdc62f3ac12af68f6d0dd3eefc978f5be0c24e3a259119d39ea2f69da1d2e8aa1bad5816f24f898046d4cbbe7609ed921b49897e5794345fa164561aa83195a9f06c21dcaf6863281ed3067a99864882e125e61a82025f591bb0cef785f66520078167e4e8f315e2b9ac8d257988d0e2bb3fb6afaa023e57fa447142556af1cb679d37573032f08bb58ac33425db4d630ea63ce26c6247494e16ea28129fd7dd0be4613b50bb9e077898152e3ef13c9e0166b85f8219916f1aefe182db8be6b56c2480f95d2c4515ec96827670fedf2ac2857576bbf6b108ce6c47c56aeac0fa5803dccb77265dca6f2b6df8aaedc903f3cbc91ed58945ecdf62b5b2fa0\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 569\nct = 55f985eb681615e615c021f77bff495889cbaf885fcfcacf1fa2d093fb356f2d3c5dfc1aec631a06018bc43a9860c6c19f1c37c9aa53e15599b04aa83580d0035c812d1f4c1ad935d0e91be80f5b3b27428f9d8d034932822604475b50524c0b0f683e7c12589dbc99947f36e4994e9303ad5a57dc5992f46360c903405646ee7ae12f2a467ed7033cd3145a3c975251331b4f6a0bd36c2985e2419b146a8f780c32b173a7dad90f741bc7af593ffc6ef78deebba9fedea3a45b7adb6d9b4bd96bfdcaec25035b73ee31b240c2c3c9dc96c1e0f99dd4dc57e333290b08412e148dba6ca98c3380f020e0d7d3f5a4c4bf543a4991b3aa1b0520aa56b0d809f042ab9e88980c956155504369f385fe7998d8ce7e97a8108df4c52989ec72b2daa41ccc16f398a5548484afff18a71a31f171c4ec910791d41437763e7076f661577e4646d1aae871b077eb26d426a31a8c4e8fbd9ef6b728f6420cf15ce8cf53261850cb84ee2ccaf5bc4df7c40a49abddf5261f9b2d120efc19240064316d6563\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 570\nct = 6380d7f401ba7b456a5249fa17ac3ac91a29dd835c8892d7892721b430f907e2f613d5e86fd79f8c2c1313a0cbd0b61f55d726daa41483f3d7865eeb759fb93bfd8a3b94f54b2d37b535420077469dd4b539494d7f9e8fd0cdc64f0fe260c20c140aaaaf9e597034f3f9832d83ddf8715b3530c27879811e56ebb17abe0269a4a0601cadc59bec1522d8713f0f1eb865127d31cfa3dc7af0d9fffd17d292f7ef65f80d08da388f0b9d3841ade57d6ca6695062bd48e7a7a01b42a17f07456535c229c612f7f90585e3b7032f1308389137ad4d55207f4d725870b7ef6d9ec6c0b148215790bc57efd56828810120ca193deca4278079eb2c4da78b65f331bf2cd1eb7b099c28f1d62eb0e28f65ee4b88a529978223e4210b4805d37e4807f488e6562018263dd8f40e43ffcc849def3ea0d2614ec332ff594738c7fd7d001bea69a0d6f0fb8ce25ffc82bc21173d9f0cb3a76e482685925ba8a1f2274", + "cd26983781a2a6d951abe523f49c0bd821747272c2e7b0de805600f08f697afedfbdad4\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 571\n# Longest valid message size\nct = 49e28727af1fbff805c33ace4ab899016ed98366d79bee7d80449dbbaff218fd29654867c374d7abbc24b55661617cee652fda6608d04b9565ad58cef081d9341a8647fd680a6d99e8c8ca81143332a97ffd15b9088b65810f231012a5ac1e6064ff08e620b65d9b92c2d7c930af886191f90b93d8e678fce7cd9a7306a85a81eff01b780670e3ceb779e5a795976f817222d92d4301c6f1ce0add6d6e0eb5e2843ef91357a15da4231eae296c0c89d18a924814273c07b2f508a3b34eb1ae3a6cd526ef335a1aa6a04e28944386c8b1d9a492150d56cec3bef2c56991aea1cd07e017342c2e66fde0b16a07e56c06d34ed209389ae9ac65bbeb6ad63b3346647167dd4d03a12c9a5388ff0f23b4a17331e85dc194c6f1b3094ed55cb8d78154eb56ac3daf538f6acbc683783266928b8bddc9e8a8c5ba51d5215e1762c691165cc096b384264d0173740ba559241542ec331a89a5c5b5f2e8f203b51cf9d0db6b1d61ed5a334ceb14be3d355e01ff2c838c688e252617db1d8e56dcabb2f54e\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a81]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769020301000102820181009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a810281c100cf3da32cd99c1591aee15c1a2d933b7e5ff4d2dac6e0430bc3b41c2a93a16b5abba9496c2efb7695856bf1d38e818c57ae117dac789ff0e725a618a0d5ae46921111748298656b0bd76844e323497d46957d5c9e31f186ed64403b911f02b23ca2dfcaba2bbbcb7cbca9220a2b170d0ab60e5a1f90f957e32d82c7a8362e916f83a98c9f74cd0d08c687afd6bf0d89f23c7cad68a5d3be8cb86a5fa54870aee4885c60d8051e74fa46a75685d7814e153238727351365b94fdb9ef64253bf03f0281c100c639e21504b61149d3d240cc9ccb85a584417f2373087b9f2bcfd223974df5c075082127bb55d449d6670c5ec550f8033bbdc6a1ec7a67999faee700ca453fa1f37db626fe1ae62784d77428d8807e270bb5eadb1bf5cb3488827851416535243d3021511b12c2d38e3dcbcd9560b3d9cebe1c435582971fa2d60c49ebcbcf4da896a57f280f97a16707d0471c3cf62fa43cc01d5d09452ef08d29ca2286256ef2feb6067aef00eac0b1d13cc7f49e57182350e5a695e5803dfc987788350e570281c100cb73d4850c618a5f4a535e0b2920f8f0391dedfeefed6c84d92d31d5aeb772e0518981565ecd69fea24c75cd5e82da179e00f7e2e14d0bc0b11a5de54fc1d6f0412764bd6d056bd0e5392d1fdc1da28a2fea3189f0b80fe170610ad98e9b2406195420ff223e2c281a42e4f31c9875aa454ed3b557ab225819eee139c76f72420afce1dc0d5bdce6f7986fcd2025177f2358b7191c6b430f7d6098e377b9804945818365afa8d5e87a827f93c81cde5e3abe65c5c63dda2cebe6a51928e0ae1b0281c02ad9a264b6c300d3bbc56c9a8e9e744286677e2b549795d99fa7ea1e257c05ced7bdad25209afa2c07fbf8b197e7dbe51f09f42156b45326e35cf4b4b804e62f852a3cb10b27176f9d88d1a46ec0c00482c48d8355f4f93b5ef30d3d4b6cac632c12f670c8f0724b372966a00755832b6744b3695ed7bf0168baeaa72420c7ac5af04dd04201b4de801e3148ddf2d3a912d0cb1acddcce26ca7b497857a435fd58ebf4bf4bddd48dea9fc5c264db1d4b687d61e472f15e4e2d98280156e1593b0281c06c29351eb857f399c0c6c55e73d06e5010ea90c7f170dcf15b0bdb32451be4f4bb846687783da0df865f2846772f1c29f5c0663ee9fffc28e85d6b87db1d2c07e6c27274028d734bcd0ba4d264ce32d6d03d96ccb49c023518c93df3b34c6a9a2dc4dbaf27db20f040742c4121e4a5eeade583b5324c33720c299141408dfc9bfb785c846419698b4a71ee126dd723fa6474e963c8dcfff1c0bc8e34e3275c289f088dc9e54ec58cb48cdae73b251c2cba6d6dcdc4c7aad8ce6835fde9d6d861]\n[sha = SHA-384]\n\n# tcId = 572\nct = 7703c44787ab4ad598361704b2ff94a649683bd835b7d1731ff9e2eeccb5ed3f78593fcab9daf89720cf7ee2a0f34c1b13fbd27cdded8ef6411261eb44a2270d29a64f329806f1f5ca5f2c45c3a9e110b5e23e7e505e830c9645c56609c35a6b8c88ca3a630b8ffb150798a081ee226e6f1ba36020f260163e5548dae1e726f6d560a0b2fb6657d6df7f1cea6704c45ad9103be60d96dcb0d76fd43912890f908971da9cbd7cd80d1d3f6ded108cc528e554e032498c886f383ccb3a9766944a305712f2e952c68fdcb6326eb567a992d6920ba9ec3c99fa91f915eb960fa044457469aea09e80d252c572db875974aad225176128fa1ff965b8ddb89a9debc509b24850e7009a7b10fa35be6cbc62b5b244e4a7420bf5260af0a7ed61b0fdb9ab69ae852ae5012fdfd6b80c472e4a35f06b8a12f3907442bc374de2c53b00b903ac7280b795e7d2439ba662308ee295135cce70958cf1c0587e8fa4f43839873a3f5263c9fab73549964128264ae884d38113b005f430e5716c8b960f0b2f01\nlabel = \nmsg = \nresult = valid\n\n# tcId = 573\nct = 819846a8955b2e0d9827f5fc163591b53c98ed322852e685a66d9560f8a3e95d0cc134fdea399d8e61468bd05e2c914a53d17046fc0b5817038b46980333857997232dae7250122d8f3ed647185e78801454ae321d1b1adea8aee9463429094dc2e7a27374b3624705daf84b5cd3478234eb143181af55042f5d4df21299fbe2936e872c76c443d77df88c403c97a02edaa3865464bd681b88e2b80274d226238ac64028fa9828fb6c0bc237673c985a4e44a5e22c00f1f2317f700098f20453bb806a804a31bdef34b3707e2467efd047a6bcaf3f1b152ec1595e60210c83d105751a02b121d7dac1cecf8f653e310534e426acea3e9245758d48a1cf8f294b070bf2c55622d", + "0924f9af9984fb11fbc138d86ca36d1e7b3c085ff6432fdad651c6d263ec6f8a54c3dd903b888487c01e5e7415c4dff68050150f13ea86ec755db49504246b5ba0e86df9afe86409590c1316a5041dcf46530746a8e045f355352b6181fa935784e96e7eeb058a78206aaf5a0354ff13978b4ff69639f4f1869\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 574\nct = 9cc6606f9b407c4e468fde720844906dda48d0053b7a5b5960458e77d93b9f4bc5275a74e86c73714fc770bf7ec37924d1bcef4287c7212a375bcbf9c0b978dd7089145a4be3ec38bdb4acaa339689ffe29c82c5e9affe73557f9a44e09f5332d944f293dba4eebde8f107c1fc0ef1766c105927a8de1a89cf7ec3243e70e207b91d78aa448d72e30921df8b28381e81b6cd385bcafccfb097f9c5d5eef98e9e0a17f387114e2ad4f0065fdf3474a91cef43ed1d3384f28b0e38c0ff68c7f9d3fe5e8dc41b3a4ab9a473df432596f243b93032747c84309225bb8b5ab5971292aa3bce2fe3d4e2d5af79579f48e119f975d8004c567b86cc9800ff3fe8e809bccb81755444ca4c7af823c4a9b506370fad361a410f2ca4ee4411095cf263d3fd3d67a4e820c5ea6f9c659374acb7c0a19ef8fa85fbc5b7356407594085230dc4006a15c261b1e9934a71bff0d8942250267ccb7dfd6f4ef15fdd41cec0ddf9715a7cbece261157fe1abdb9e466d2c8ac503d0eb8d9a4fd7a7aafa784ae32554c\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 575\nct = 3c3ac8dd214b889381cec624f4ce2ff744dafefe6d446222d112b9607d935af7953737a9b648505a346a9907744108aa098a487519e066960e5b3167006103ac38bf23f6fd7371659217534ac3bfec6b6ffb314f0f11eec3b8810e1e3f1b28dc3287f551bdc81963df0b5b012a4a570181eca6a084ce9593fe9d74bb8b914b54f88e0f5614fabe3c5348ec73c16d23de44cd2d97f463b0913481f2b144ab4ca6da3cfd4c063a171f49026e2519105966521722d98d20221143c86dfc310d614c704da7176c1e92a8c0e97ddb8dba62725f2bebc9d4ab3097cae9a494c5e39f2d162018a6da2a72be610dd084a23df8a59c2168fb5cd5ca03b2fb834b465e6fee693614be06b294764f577c11c187669c08167e765b0f2aa7997f4560e32bbec6cfba32611f0c42d071396606e5df70ce8d6a093e71a17ab73930d725e93941c2071c342526455d3b1e5bfe59dfa842b003291d2cb17e7a56bf0f5ce4428f594d8b2ddd24761247a087fa444acfb3742bd2a088bc7770fd11381f7cc27c7d78a5\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 576\nct = 3764f047a2d0c37ce7e1e890152d08283831b2d204659010b9549fca4d8940b86d84c9bfc634f1a371a166c5137f4a23d0566f86e32e7df43e0ba18feb24ac3a457bf4ebf8ca4a3901c165e994e0cfd2ec01b2420f1246cafb3f56f4b5829b0875a363bf1861429cc6aa7d1ab333bdb2379e53e684fe3ae59c1cad58bb564fb94ec0ddbfdea59be9e50784ffd497032a2320a3c1ff9d61702c6159b73116b3b300ba6598ab316a280c36d469d4b6f63ab321c0ab35141ac5215d086488e0aebd529dd49fd9d3b05f8b1a22d92fbdaaa8c73dba7652fad04142f507b5999180828d9e265bd2bcb984a7fd13f30f1a3470dfec82e349b00e59b52074960d90e38f57db7c65a21a6f1fb08a5872108f4d85a13b57473054d472840dbfe6f6baa2f4bc88f2c081634366cbc6424f8a0d314b698f895ab6b11463892c3da8dfbfa9aafebaea810d78dbcf909c1f27be6dcea6c6df94efb9ae8bf9a36029d44e29b44d2694dec8c53c34a247db85b4a6c39338d0855f7a64c5549313cf4b496be81c70\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 577\nct = 7afde0e2616e1dda578fbe8acdf3c068ffc7b85d3245269fa4ab8f6e20117fefa300dcaac76b10527586cb483f2a72dd2917f0dd7f88cf6598c4e92e160f38fdb02fe83eafd39f53f3acccb0e16fe88fc3d6cb93f5545b4fb309cd2bd26395a1ec9c37897b44d90df69a71108ea1e8115dfd67a16ebb507455c408becfcbc73af51f87578219a3f4e452c1f408c093baf69f62f68a9f92bc1e3a9341cb181b72580bce4b83d2f50231ba7c03b1224f38c4da43b965cda2105926c3ab3a9af54273ea4b1387dec236243381d25d3184467e47b14768e52932a7948cb65450f274beef34238f8be9f296f5a1e56359ea722bc93981ae3ecef6d363bbebcff33925f288d8a48862318f6086ae9f354f81350ce863adbbf61cbf713f6590421c167015f2592daeb33edfa0506fcbd0ee43715102808cbd0392bfc0a89e9df721f4abda34f43dd217dfff9161a9cd6bb8765a23b0c0e08c3b39c72b684e7a5f6c4be06017b21d8e60eeb292674d8519230f1494dc918e0f0999a20a5b844f6426afb7\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 578\nct = 61a9eda39c04c41112125f6c3a57b3e9f19ff9c53059b20cd46cb52b8f86830df615f9360743c7177fc484d1d6697a6d6a725a6a760730e91ac1338b484fcae5a47edccde6373d3f3b86a67d316e614b6b389cefa0db2ca7548ca72f117e0ccbf83684897fe666f4ff6e3c58c263fae29ae73010ca8c8df58a2f3e462004a48467bb764dfe634977fdee81c742ccc28e10cb762323218664570f01279ffad12c85340d70f8a51ef6c1ea4df9594b40cb21c52b6de0f9934ea16132a2667e0082eae5fbb48eed26a35c5467445faf73bb19f2a1dc07aa5d9a4d00435cd59d236140b8a2c57157f23955f0f279668340e4b3f13892dd4aeb7918d619132f79d7c2c23492cc1eef3bae1108c87d1062da1e8923af6e99e066885facdc9142771d9662d8645f2de5fd5f26eedeb26ea5fc91d1a2c4306ae4aef33441c28679d456ae69169e7c5664d50a939bc5276e9ccd020840a923429490ac3c2c4ed09c13b79f1c69002ba106c8c5fc21b58599216267aa347db033d669322bc3fc52d13206a8\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 579\n# Longest valid message size\nct = 7d4de3f2843e973174a0ada5bf828f84cfb4567cd7a6eb6970e5020deea377663ac4065cde041994b5984dd7ecf358fe09b6d9efb359479bd1759476ef299edbb3bf100189d1515c8e11c08bdd7eadae26d309bf700656550449dc657cf6a6c60f86632f941bd7b6b7dc811245b305599e92cb51c0df86d0da45f87a7ad2990d74931262613801bae1435ab0232c99b7b542a4c233f6bb6a57c5bca5378e3674522acdb75af5b2d022a6dd73bad1ba0143f85e882855991ea17a84b995c9332465aec8ced218747f7b98ea970d9a13d451ea17a8247fcc0e19f48e1ddb6eb99696ff17646a3f12ef5795b1f8596da78ef45831ecc140c762b6ba997c0d23c7484723716a813add8c7cf716c147681d92b0684e79e2dd52eaa85e41bcd6ba9b17c9adb8a326ca28d4eea31b55fb29a49785daf244210814d30284fb97dc79138a34eb245e4dc14e8f6e8c5e165e13fe96480476a65ca4b309ab4b2fd2ca8fa4cdca4b5e89323648d097256f69df3644897a1ddf5a27dcae3b73d647e712b729f4\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a81]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb", + "73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769020301000102820181009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a810281c100cf3da32cd99c1591aee15c1a2d933b7e5ff4d2dac6e0430bc3b41c2a93a16b5abba9496c2efb7695856bf1d38e818c57ae117dac789ff0e725a618a0d5ae46921111748298656b0bd76844e323497d46957d5c9e31f186ed64403b911f02b23ca2dfcaba2bbbcb7cbca9220a2b170d0ab60e5a1f90f957e32d82c7a8362e916f83a98c9f74cd0d08c687afd6bf0d89f23c7cad68a5d3be8cb86a5fa54870aee4885c60d8051e74fa46a75685d7814e153238727351365b94fdb9ef64253bf03f0281c100c639e21504b61149d3d240cc9ccb85a584417f2373087b9f2bcfd223974df5c075082127bb55d449d6670c5ec550f8033bbdc6a1ec7a67999faee700ca453fa1f37db626fe1ae62784d77428d8807e270bb5eadb1bf5cb3488827851416535243d3021511b12c2d38e3dcbcd9560b3d9cebe1c435582971fa2d60c49ebcbcf4da896a57f280f97a16707d0471c3cf62fa43cc01d5d09452ef08d29ca2286256ef2feb6067aef00eac0b1d13cc7f49e57182350e5a695e5803dfc987788350e570281c100cb73d4850c618a5f4a535e0b2920f8f0391dedfeefed6c84d92d31d5aeb772e0518981565ecd69fea24c75cd5e82da179e00f7e2e14d0bc0b11a5de54fc1d6f0412764bd6d056bd0e5392d1fdc1da28a2fea3189f0b80fe170610ad98e9b2406195420ff223e2c281a42e4f31c9875aa454ed3b557ab225819eee139c76f72420afce1dc0d5bdce6f7986fcd2025177f2358b7191c6b430f7d6098e377b9804945818365afa8d5e87a827f93c81cde5e3abe65c5c63dda2cebe6a51928e0ae1b0281c02ad9a264b6c300d3bbc56c9a8e9e744286677e2b549795d99fa7ea1e257c05ced7bdad25209afa2c07fbf8b197e7dbe51f09f42156b45326e35cf4b4b804e62f852a3cb10b27176f9d88d1a46ec0c00482c48d8355f4f93b5ef30d3d4b6cac632c12f670c8f0724b372966a00755832b6744b3695ed7bf0168baeaa72420c7ac5af04dd04201b4de801e3148ddf2d3a912d0cb1acddcce26ca7b497857a435fd58ebf4bf4bddd48dea9fc5c264db1d4b687d61e472f15e4e2d98280156e1593b0281c06c29351eb857f399c0c6c55e73d06e5010ea90c7f170dcf15b0bdb32451be4f4bb846687783da0df865f2846772f1c29f5c0663ee9fffc28e85d6b87db1d2c07e6c27274028d734bcd0ba4d264ce32d6d03d96ccb49c023518c93df3b34c6a9a2dc4dbaf27db20f040742c4121e4a5eeade583b5324c33720c299141408dfc9bfb785c846419698b4a71ee126dd723fa6474e963c8dcfff1c0bc8e34e3275c289f088dc9e54ec58cb48cdae73b251c2cba6d6dcdc4c7aad8ce6835fde9d6d861]\n[sha = SHA-384]\n\n# tcId = 580\nct = 277fbde73b7970859e3cd6efcb40f5daeb8302dac05161d60d5e50f2d9aa1369cf267a04b2032a4a333b64cb3c6623ac4a9e28c8803b0da74d3b61b049fec9ea068a256380e2307fa352f9bf4c47cc28f5f91169eb0ceda4587f1bb6e9de135895956d34f54aa51e43a7933d6d7c1b8939716008619658b8734d25f7ae53b4213295fe2fe25506e88d70e4351f9c781fa29fdcb2661c8a81f90c72d9bbb319f7cccfaec3df7e7f16158bf2888fc4d7daedfa9612b94fe2cfa8374f8284da2bd525588b5e343e948102e264e366c94b7ffeb053b0b1cf748f63231044c483d40645d9919d8e2e5e5b57ee4724bf56b9c0ad9240383f806aef7349904824e2269e33af7725e5f8c0e8417e70f29157733e9bde27de47ca1e63bde4ad61b4f446592e5f0961e76d60d1191bf1651cc8f28b7b6d4caafa419c06e824aa8431613845feb35aa9937a5d593a30fb53fa51f77fadb88fca5a928b8a518584e6c9ae2cd834f1323c2e29a4282a4a06d2191e0c31446cb09f36d230060d5ebf15615f46df\nlabel = \nmsg = \nresult = valid\n\n# tcId = 581\nct = 087824227d55c28cdc6ad7b9f765c7c8defd2489c57c168a42c6c682e263165269e83d5a4477dad3ea131202ec8b7b1d44495adb2ad52a088d6aa4baacca441c8d0eee6b0c2061a04a074c436d9cace6b83d2f5f62a638c98563ae6fa2e7a1ace169c2ed893381e71f093b166d127bf19e87ad2df1b107d22acd18db94eebadf4990302f024007a28e2ab0ca90636570c0ce7640776f58e3eacff0977f25fd85864cb3026c623b3d644c5ba4d33b2f83533c666bf8300afb328ffe49677459631e110afb852c48faa1379d03adeedf70dbd661166f5657d66f217837366d2f1dfdbdfd1ccc3ad73042e335726a498c7ff7952abf369948a3dd53510a6e5d2fb3a960c283f6f309ae4fc5b3e2c28ecc3444991580ace4cdefddbf05c9d65829294bbbf4fe7bdf4264d10773a35b6905af9a330e0e4a52f429f8881403574f7b96f4bd5b8bab1c725b06ce6b299bc7b9943bd6e73ecce1c65d7424b7fc6874536c1bb62c3265998a698ffe169dd7a9b463a95d8c03762a10426d99155b8893b685\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 582\nct = 6c495bfb142086d155b08f87b9969c7b46a4393031123d786e045e8619e4ee834c62b3def25bea12e5deea879678831273e5c74016b33b6111eea4d54db08019d840d6200c584d7439912e8b9f8290f5855c17d8024c4822354a0488338a4468821ed53fd51b96d27b8fcc43e8ec19277b12ae75ab2a8c68c10e94a90c71ed2d41b61e9790b0766b57fff1e2ebce1929c5b102bb04397af92a8066ae2de28375fdb4c1b8b7d4fe971b2ca99cb0171bc252062aa47c8e363d169d6d25b40bc54ee064555791a87ebcd7d8d92ec6516478c6277bc4781dc7caa89414284d8b438e24322f2020b82f8d8835d0e44ee78880b5cd9c8c3c2ed0788e451d3df7bc256b0770708515ede46fcfbea55e5fbb15ee2bbfd595ac91bf18cbc4523945eb97dc5de34888dccca86c2d763ed36aa99b6df4a712a84b3d190ff351a3018762659e51a0fbb0160d3c0153c4fe6d7076831dec50e52114bd81b5f21ecc7a5fd08adb358f44faf1572a717cf8e6e1474246a1da3dcda63a4b6aa52a765f027c3d4e31\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 583\nct = 4e61f94cf72308cf8803abcdf196205f7bb9c86c995e0d87a779b6abcee4f01a012fbade985ad4160b9ec9c49a6b4fc3c193637e1b6f9b50f0d2abfdf1098f214dd15533d750ef5cb2591d5ae92e2d9946bd66516c113ed3f92b5f22f64beb96920e95c2d4c838850988cb4a8db98d54ed5ecb76c3f81221f14239dd16f44f1d5825a0e7ad1895a0a5715c3bee33049fd33501d47799ee75b36020f9f001041d96879d5385c3b763a2f2d245a7378e43002afdd54d0e93be6a0f2f6a91eb78e6471047b5faffd4abde8333feab98eb6a07baf5eca8fd63a4dc14212b25d99e87de2612566e058c301846be9a67b3a1bee629778d76da19612e6bee642699f130c21c007198e0a9de7ff340895b360bd5f776505b80e5488804286a96e91bfb1908b8bd6b6fa45ac359825c742fcb3280e52cb06042e1f2e1f1b4e763243314ec0f35ed69a705819b51210e97b4bc5ab77dcc005efe4ad3bee055e40e4ec198542d6bc171bc42a30be544402049a60182fe365a6866cb5cb228c214d8da8c70b7\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 584\nct = 2a8f9ac25051b47d041adea76e24276d3145fd95f32f793640a7004eaf4ad90e13b32e2ad92c08809e3d6db467252cd8b573a4ecbd6ecea57696770b7f4b8cb61c3b4560ef6bc51703b242f580b40c9de878921f6f91d4b49c83b6aab5349bbcb12752f5fc126cb25586a428ad0ff1908d425f1f5f2451dff52ed6ce53db6009e1eb584d037062b20e4c12758c78f9e1143ae1ebdcdfeb074746e2e633d388a8b1bdcb0901fdac66e02e23d0ac282746f6d618d8e223d6869cc36e36241ee0f14d6c62a9bbcd77015213263862458a69e4d334190e363906620d1982aa5fc28af60f983e01d57f43ad55a87b4ecf55f91c98e143822c7d30cb50c008459b673376262508c020eb6e15b93fa3834e1372c69b2ae60901a15f709abdba8039ffd43a5f6f0d10e9576ac07e7b47f7a4b0ee92e51083cedb779496efca91ccdd60969c73adf4cda86473e994f10f49d15402ffb9fa1f2c603a9ff33681cf3e3499afd1797650c1be6ca52e5ed3d35acc718c59d2efd208d64ef5e06d8e436e03edd8\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 585\nct = 287feb5672f8777fc060e5330ece52bfda25bb61d299a6ae65bf4fbfee635f0e83d5644d0cb1c3f084b4222d539536e6ccf963ad5e992abdee44dc751f8a5564ad371d5b5a9ffab7fac869e0ccbc75c0b43ddfc95f1404a185b4d49a4eddb8ee426e3bf41f4a1bb4d72907fb5e42c09f29ebec45cdb68bc0bd5085e438959747b39be88a109762b6b26dbcf741d1738a43cfc32210f68b3895e14e104c63f417cbd7418fa899c9a98d9ea9164cd14af05244154fa3f8d82c348ff8690e550014faef0fc019008dbc870583076a063fcd45a62af72b8e45a49b1e55e081a7e0c78df6a8ce01a9cc256909bb2504f1f2e32a113223ef49f0058b860fd4700817918af4f97645ed549ee4217e28cd28b0f0808393fdc68e4bcfa445c9b392eb49b686b4d53fed1323ee859ef5bae802968a6cf935f28a639892d878247dadcaaa6686d0199deab40dd857172cb9fe51d32c8a6189881a832f9be52a79990a77732648be87fcfb7cb140bb10b28aa49f5f807cb25a45ffde7ba3333ac66d5ab226bf\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 586\nct = 2c67dff513875ead78a36141e01efe8c2c24e220f24817c9261fb1ab4318e65567c4461619100629eed46548d503ca2f2e2c1bde8a859022cae0d183f084ab943af3d986acc1855cb4ff23c041ce2417c11d25dbbddfcbfd2019c45be13fdd741c8972900fd", + "1537451172b80d24e5eaf9026b77182642dc2d0b7dfcac6b8079f9b55a566b8578184723a5c1ba1430685fec652b3938b4077fcf5c36339ae1a16f85502f3859a53a1cd1fba8bf2257b2ed2a8e7ddf26b87552eaeda91fad93f34ccff1b965c9bc277ad511cca2dc183b54ae920714a8fcfdd46133e781e55940a801ef02da18816feefdf677e56ff28f11fee786e5fd0b2f7dfd775da3caa23827cca6b83ba06f4e5d5c4187d6992dd051e21bbe555090c6974a4c4bcdf963f628014dbead32208e5102c6d270e2d16d6b81057c3e5869c7510a0285f3327615b79e7974fdb1587253c48fbc68c5624a66ba397f25d7026c30a0d949f0ab69a10d7c55a65e7b9b1754be275b0442f01bda81033474171914f97551c51a9ff68ae\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 587\n# Longest valid message size\nct = 185b1547c78c4ef8c6a72ae09b9a3b296091829e05b20b3cd4b360d306c9e02c0bb8ce141356604399efa332fb816c1ee785c05ea42ba0dc17c90aa12c1c31796c368f512182f470e77944d7031ea235f21378bf6481a08d8bdc76da802c0d814aa583c8765a7fb751248702670efb00f8b5af52805beac5ba2c08db80d937f87b3922bbfec0ac81ec7f0a6d0a904a69c8ae7add1fb29d70881921773a799729bee99a50effeaf3f9a70b2e0755a60f08ced3bf8568ba52df1a2781cb194238d7781d4fa741582115740d8d0862dd6f25161d2ca61918bdd2bf4f3a5eb3f4dcbd3d96594759313c0f9ee0d23395b7c115e69ae2ff8b02a02f34175e975cb847b8cab75aa0866abbf58a78df6e6e572a085cc891f14e7956404c09d5c4f22e08fc7958739c4fe8f87e9bbc55efa467df7415bf5d0fb0028430053420563b037742631caa2c7625377ba619b307fd86e4e71bd227d65182c91098cde840f8b9952b8a3e4972c0b5f2032b9e42de4eb310883053f8d56cfa3bf0cfc8ae37688c133\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a81]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769020301000102820181009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a810281c100cf3da32cd99c1591aee15c1a2d933b7e5ff4d2dac6e0430bc3b41c2a93a16b5abba9496c2efb7695856bf1d38e818c57ae117dac789ff0e725a618a0d5ae46921111748298656b0bd76844e323497d46957d5c9e31f186ed64403b911f02b23ca2dfcaba2bbbcb7cbca9220a2b170d0ab60e5a1f90f957e32d82c7a8362e916f83a98c9f74cd0d08c687afd6bf0d89f23c7cad68a5d3be8cb86a5fa54870aee4885c60d8051e74fa46a75685d7814e153238727351365b94fdb9ef64253bf03f0281c100c639e21504b61149d3d240cc9ccb85a584417f2373087b9f2bcfd223974df5c075082127bb55d449d6670c5ec550f8033bbdc6a1ec7a67999faee700ca453fa1f37db626fe1ae62784d77428d8807e270bb5eadb1bf5cb3488827851416535243d3021511b12c2d38e3dcbcd9560b3d9cebe1c435582971fa2d60c49ebcbcf4da896a57f280f97a16707d0471c3cf62fa43cc01d5d09452ef08d29ca2286256ef2feb6067aef00eac0b1d13cc7f49e57182350e5a695e5803dfc987788350e570281c100cb73d4850c618a5f4a535e0b2920f8f0391dedfeefed6c84d92d31d5aeb772e0518981565ecd69fea24c75cd5e82da179e00f7e2e14d0bc0b11a5de54fc1d6f0412764bd6d056bd0e5392d1fdc1da28a2fea3189f0b80fe170610ad98e9b2406195420ff223e2c281a42e4f31c9875aa454ed3b557ab225819eee139c76f72420afce1dc0d5bdce6f7986fcd2025177f2358b7191c6b430f7d6098e377b9804945818365afa8d5e87a827f93c81cde5e3abe65c5c63dda2cebe6a51928e0ae1b0281c02ad9a264b6c300d3bbc56c9a8e9e744286677e2b549795d99fa7ea1e257c05ced7bdad25209afa2c07fbf8b197e7dbe51f09f42156b45326e35cf4b4b804e62f852a3cb10b27176f9d88d1a46ec0c00482c48d8355f4f93b5ef30d3d4b6cac632c12f670c8f0724b372966a00755832b6744b3695ed7bf0168baeaa72420c7ac5af04dd04201b4de801e3148ddf2d3a912d0cb1acddcce26ca7b497857a435fd58ebf4bf4bddd48dea9fc5c264db1d4b687d61e472f15e4e2d98280156e1593b0281c06c29351eb857f399c0c6c55e73d06e5010ea90c7f170dcf15b0bdb32451be4f4bb846687783da0df865f2846772f1c29f5c0663ee9fffc28e85d6b87db1d2c07e6c27274028d734bcd0ba4d264ce32d6d03d96ccb49c023518c93df3b34c6a9a2dc4dbaf27db20f040742c4121e4a5eeade583b5324c33720c299141408dfc9bfb785c846419698b4a71ee126dd723fa6474e963c8dcfff1c0bc8e34e3275c289f088dc9e54ec58cb48cdae73b251c2cba6d6dcdc4c7aad8ce6835fde9d6d861]\n[sha = SHA-384]\n\n# tcId = 588\nct = 61c1f793f5e21b694961a17a54526a3faa10a3c87564f4e6431879d83219835d48c82f5a312f3c226f1b5cd619aa837e76c9be75b0771b97049f1a72eb9cfcc385a9c96d75b47dfc808a2959675a2324bb914ba8e6081234e22f9a49a2305060b0484d34a70d57ed91124022904f25797a9ecd75d9999813a60b30cfd54f66d8bc5003eddc97b8cbfe7f69c2a669a8d6825b1ad477e13979330afe065155a860375f20289a03af1952f70f54a8119276f9a1e08d4298c904e76b93eaf96f8a4a98d55d47ca6637ef77c97d41f07fca7585f0a7b41db48697b5b26418a31439fdf0e1793a7532899eefc468d9fff45713263e9c8fee96846442478b0be6dee57ec36d4a48d08c78e56080555cf9cfee1c5e4ca3a5e85c0555119f6e7766347495ae8739de3f72ef41cd500a454e8c1907a412d2fafd5729023da3389c8cca4b00b4ecc1bbf06f2836324f071172848a7751717c31bd9820549be7178af156a8d3658c1675c296e0a36c337fbd9182bb77051e69ace3191599e0544169a7b1a19e\nlabel = \nmsg = \nresult = valid\n\n# tcId = 589\nct = 2748fc1e7d8c0fe4b766dc823d83f6c", + "327f9737ea34f383e6adc427003c333da9c21582f049a7ea1eb1268a65ffc7802d84279eab760ef1d834df8367249da4232ca0b6ba7bb8e9d2aa2be6d478aab49fa704572d6fcf5c1f494bb90eff5f9aa6c0de8342092b1103c5d499a5ccd659282f95ea9ce6f9f9bbf683a056836766b0aecef926993a040aea7b12172c6d8e0b0dc3b0f047b2dbd5d0ac65527aded1165a64dcf1e07f450a35ba6cbdac7970c02bb3f996ed8c2ca1888b6dc2e3b75c081300d21b3ad8951d736e0424a1b8d6e90ef20c7eb3dda1bc6915a527b2763a4273286bf04b37941180d43b9ee52d47ac605923463e60ccf6c305663177f70d59446d780f58cb6f64997d96fc0949588e94dd79071ce29382dd2cdee23e6e2eced91cbcb57771f834b9c7f7d219b10d6acc752b9edcaa2cf84290cbcc8aefb73903cd9cc202c100322128ed26e6945de1a2819723af339073c2468a7f95e4fb41f6497ad72a0268b514bda0d53511ce477767824be2627a13e742b2c64146f89\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 590\nct = 6d95a35c12161cabb9538e607049a2e19949e704981678493f7e6b830be6ffc58eb93e384d4f6863082390d8adeb0c7dbc4398aaa62a671d9f1787b9a58d2b93b25c195ba20b3b4f04fc5f68e8fabe4e33160c3ef383bd1431fcbbc73aea59c06679bf38274939d91b877986dcecdc73fabdd4f4a1814185bb18b641f393c3f06dc7462d7aa812bfd506a1e3551db254c85f58353e360d85c6bf02ca9723913feccd39d17efa66cdd995f0250939a0bafe58ef7b7989d96cbeb11eb1fe1a9c9899990cf8b77ecf8a29fc264a3ac4cfc6d4cfdf9c7e467ff91c9dd2281cfd090155622d791f760ad9049d72e512b1c7523fe6ed0cf722822a050b2f24ce76e632d8fa71db462ee5dc2bd15026853f5b4d46836735ba8991a7c390f16a64c0e09d1ce8c9adb5db2309895df8439541666657506f9e37e791a8db6a9459931a0cfb17a95c3fe4eb846b0136204bcc30e3da868629ad4740f0daec6d2de094a046623e74a8afc52e603260a9a778497b73306386bf178748e73aeb725527df976ac2\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 591\nct = 339a7ae50cac186295e1ca8377c311df541ba666511c21774db4c8f6fc1a565f5cd4ce18ef92dc1887327f1eb66369cc9067b4b990b1fd4544bef7154747ef6cdeea6a26fc1489c41ec8bbaef575b3f15ab2813cf34c3359ba039ef16a3a3d7993202917645b01ed31e8185a6c3035726b5f014107ccc45bad7f97bfba823d388f2c43281c35f8b31e68d8d4d516453ab39a7063b6e869c5f0b1eb6d89a1efc8f62fc2365fd76e9ccbc495387f9484933c711941f1cb36d279b581095d6bb5c1ba94d85cd14ce15ebecd940d42561e0551a21d333ef5efa36d95196f359b58bb1cb246dbd8725f0a1de2a831e9b884c18ffce1b5ab2467b77d26ce5bdff8cbb988f85c3df371396406d7beb620980e85ecc95d94a5215784088fd5964f13f45d70c11ec8cc3825d0bccbabdc38502010ace3f24f869fcb456d2f131bc7ea20d0b1a17c1ffa6d99f5122354ca0e8bee749545a47d826beaef298bde6d7240ec14185585d139dfafcbae1d46b787741d183aa484f409ace43c808845d39a058892\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 592\nct = 1ff510be50309b008d31cbe9e22ff2c81e0e575900d6a7753ecad4e1b5871f64c9671c3504e49edb05b16104cee4f0f8d35596091f61f88a263e777d99638277508129d893015c5c685833daa0cdc7d0e5d751b61af7312551d43143d34253b03df8bb68018df592ab10465a14a591580266e3ca2ea200d9271c3e0e6ed3866317bdd31c41492be1ff3ace43ab24425dcfd61d40090bf390459706bbed28a760a8a187efca5dfa9e0d2bb4f281aac396ded077a99ef2cfb6a90cb8863b71dd399bc010c7de04fe8a2f0c27bbbe46b144bf216d8a6061cc845b56b736c09758b650b37c9d172c7d88bc45dfc94d7ad6ab23631990f7b277153434bf043d61eb64efc60f3fb895c2d207fc947399eaa88efb0a2ec3cfd0a77e6ffa7abfc2c87609b2a4c10d50ad0de48fd67b4188bc4cb7ecfbf5be450d43742f2bd820be4b4906d64c8fab93fc1ab44b9f20a7a693218efa64ca959e5bcd210ff98d2f5cd8a93e063d2227c2656c470b77059cec96ad80ec2d5d0151c0dcc281a0e233eea5ff65\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 593\nct = 5ac76bd3715ca28e8188d35fc09a503c950e31a36801ff2600a240abd889486fa8eb9dd75cecf36e6daae555964c74495ac125ee7f874661b9af63c9fb8d06084cc53301abf06a00baaba47dfd19f69badcf3b456a0d4a6dce95d497d026e038a1ea086685db771b33d3cf28398e0e259a9ab014f44c478712f57f31c7ff03279d760f7726b38dd8d99350e7706bb25d44c6afc4335b6a073366caf9718ab946b299ee23c1baec006b8696b1a04629f47892952f08cd09fbbd3950b8ccd13168fda114d09bbf687584e6f73df70d09f353431db4aef9b40c2dcfa80ec7167c1113d4129e4dfa1f75c9e0453549f173a8ce930a05e9b23893899398f6d0fd759e3aee27c60fc38b55ef2c43ad6956b056e6123ffbabfb994cff2e4e912b4493d224f8deb75ceaeec42dd8a31293263792e978cb29c1a8668ccdccc205e01f632ac979fd4daa2c686402ddd6241f0b11ae852c95ad6993564bb449ab1f46d554e4d5da7d81b929d69b1103f4b2aec9c4b1de051d59f6c34149d15acf0a96cb14d4\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 594\nct = 4f7a777089c97381275eb3d8872585e4705801b495a5cc9cf6ae772aba7f62f12306de7581b4c5ba2419090aaee2823d8218db3f88d56bb5290f421a987bb509fe3ac30bb059dc353d2ba32df8ab8b2f9dbbcc3cc362db491ad8022398a239d5854e198597ab4609bf09ad2ac67d65834cd96b9d46991e2528ad9b1a6b672eace3e447a78fa5db0bb3dad2afd92bf2bab68d00e2a9d56685cd52344b7ae3d874bdde9442519bc936a6e9b73148adbc04dc66eccb059505c95385b88ff9625446a2004a51585e635fa81becd5e0dabfe3e9ecc766ab0f4971b10e7de6d6b8f572f377671d498dc53f348c1c1d93595cab5bb7941f35997832e849612529bdb485bb9b5e6ab6f4eafbeb4a974af9039903321e0be5f1a1933c58dcef93a2a816f330f705a3e697120f9dab6867f9d851184fb7cf951989e0ca68dab111da2b69be6c905e4877bc3bf08a89f38a8d29e018def1d714fab61c615d6b8b9442357b2d4cbbf533e9c3f89263236cd6a98ebf0c729817a77cab9fffeb0f56435f7cb21a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 595\n# Longest valid message size\nct = 43bb5ff1d70b9f833ffcc7bf91bccd3338f1103811d9d9dbe6e39e2a664517bed38d8487e6a77306f2d23fd257e1c28d33c2008c4e1ac17b7bc93c0f89ea2d2bf331d6b6d7664b6d6001458dc40706f29ce4a8a803ca143c60eff100d76c449178ef6ba8e0099a63f5226152fe8d429345b72f08c41983d448c8612d2c32919c583ee428c3a7ddfa4b7b3ec3a983880aaac66ca2f5c0d83b217d6e25b75b052d3736a1d2b7cdafefb4cf44441099006158043d24f0ef9f03a5ead7ac94ead0b9e3e165f7cff30dbd1ab13c925422138a841b82b7dc82c8349a7b98b8a318eec8217276be91427d57e5a609047122aeffbbcaae7b517111649476ac36cc18abfd2631f4e96f9d884dec4a37719064785b879e1654aa912b6aacd64931ca4124125525cd115f543c0429d0dc25793800d7f20b9334f3cef48535b4a27b9df068a127c173c7d7e1c5b79b130b5f6fa145f173f2b78bd1b8626d687b4a3e708858f2eca9be11defdb2a57674dfcb4979f8c7184f92d200607bec56c6edbb09f0d848\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d", + "116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 596\nct = f9798ff0c606b0ff80a1042cd429d55bcad69856a0361640456261d29a98d2e42cc9618a08044fa29eb116d16f67212cafea3410c7c839a67519cfb5ca1def83ad3fdcc5488984ccbdfb2726371e1c2ca157357b881d873a7489004698ba21d697349968968a0189bd56ba4761b0e6feb4feeafcf4ebb5dd95fec7cb0a3cd23214356fbfdf93f17668196c354f7331a27bf12e8e9193e5c6c79e445160e0f28304be532b3157b50eac999cd162791c7bf446aff800686ca5d14a272a01dbfc6511472c18aa62d22b6af90a6335fec530aeaee8403cc8a07d9c2df2e9ea0e8c0cf83b82cde0488eabb8e7c8d18fcdcd62e680c6835955fdd7fa30c689b6b39805f317bb00e8dbe21907ee92f784c930acff37d70f8a7a838c7230e77d24ca45a5650726c2d1e3e7470d4247ee9f0a1bb8895dc2359cbde3b52785e4c05536759ae0c83555ef30f97482fe18f00527c7f0b37289c31c5621e3c7895abcb455277293e277c450bbb972fd63c533741d9a931be06163e166a4c6b139260e5909f01f\nlabel = \nmsg = \nresult = valid\n\n# tcId = 597\nct = 93c78c91f4245a3475669a0683430aa59900c789474ec8f95321c46252e440209469e541778dc362b2ce9d5a6c822892b5e3754fe40038d5523d76e13ee07d3ae941963ba947b2fbb07c687a18521181f857d134a3286c073abd024691a0b7b85460a1872b5e33cb297e6630af2acc82c8fc61b96b8e7795f7e6bc8581d196dff9e3752fa88b08cba6bd67ca563043bc5296b6c26d526e34b0683b921739dabed3986c9b36b354ea17dfda86b78cbe5f0d4646cf102fea80da86c45b5dcbea40b44807935620e382aa17c6ea148d9b5e655793f7e6b6088ce719b08ccc6b5dde7bc3424f1c4d61f3a282bfee3d6f30480ec23a0b6c0712e9fb2ff799fc79459d1e2dfe8e7e87404894bb0a31260c1086c577cbe703a54eb9e750488529076c2dbd6f6b34dcf39e843f0ff279d0beab2e6709148b8562ae172bcbe0e562125cd6ed7f5d3a055c320bbc3c8b4bd28f7f9ce1fb402ff265e6d311e82adea22332d1b6d2b920313882ce3ba836d17e1176bf001afdceb1ca006c8a18f574bdc635c0\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 598\nct = 2679e7a6a3aa29ea006f84456c5cb6b33dfc0a7d1a86cf711f001b442fdcd788b01cdfee7d6e3d63ff3c30b2a67515e7d1d609e6ed4e22087d5857d7fca0d0b8f5dc41790d2913033971f85ee7d789de23ccee294493dd4484eb79e400799b24d6830ae8290343ed50d123ae840c6e4aa819badbbcd513341fd19654391085b0682d8f32c9706eaf8e2a0fa09420e861dcf8ca0867ae2f4b333031cf8fea956e3d67b67c40d97847cff086033cb83b95f33267c69d771407ecf5caa28fadb976db3855f39ba0710498271c86649604db35b141c8b9ae343bc4bc62b43d5c662b424a8e766eafdc22b41686d96d26d65cc28a221e15f53a1ce82ce664a2d5dc602bf0c9e488781fbc0ed679c9b225258a5582f15be48ba4a7a3d541a7433af5f40de0f04c04544962ba318179d2ecc8f4965d306bc56e2b6ee7f9705ad1501c218c31bc2f277c62029626fbf631f46964403d8037f4f6c8349ee8d9906274ede7d6b78ba30a3e0473a2621bc86dc31ba89561d82c5559982ff188ffcde9f81729\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 599\nct = 5120b9815296215e7ee89f5a20a46dee6f255f7d96d399c8cbf5721f9f9c4d89a8ee37e2a6bbd6acd4878404856143960be4a77bd8f6afe6b255f15bb8bcdbe3395f800df64c2d2b55aa7cc3c15c3d753562359a14433abd29106a0d1416cac5fea97732828a198c04d09ed6b47c12365de2a98eeddac346fe879d39a1a28bc19e2ec570b94681f7bed871311edda5c8fd76cc14b15983046da8cdf1e15c465e4a9df0fda11ded950ffe5e67a3d07e56f902c7535331c08720493d6ef4b1760c6489e0af7d1b97229c4380167fd68f6ee30de2d61859ec55b5f0106ea0f675fed7c9f660520981dc201cf16a6fa87379d2c667f9c8fae97fa337c34d591f18b092f534be25db157e6696b1c85fbd896971f2c045d08be1470b403f2effe6d82fcd1b9baa9ba2c0ab0d25ca9cb2aa26f2c4d5ca3699cae3b61ee6eaf98d44610c8204e4298a01886e9cd21030058b29462f3d73018043466fe45307d2382b8b828fbad34f77c1915514a9ca9e0bcfefd3c0c7daaf02db684454c18b109a7a056f\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 600\nct = 290186a1a87bdde5c2ce70e17605b39b4fa2a286fd85c299a303d56207ddd0557ad5513a7f92ce1a39d8cd571c9c638c279d722583e17ae488d9d3ddad55d837a43845a84f3e774d8679d09b13bf218d11d8a2173cad0c5fc7b86e477dc372f215bc5641a13e931170c6401447836530b065f574f3376b99d4e0200053b92b1fe1c8f513d2d8ddc3ed210062e601d4750c5bb9a63e051098f159ecf8c40f90e6f0265b357585aaf35c32dde08e565bc6687319bd7c637b7e1a012408224865b9334083460aa39c12565c5bbf03a316a6ca5c174d6edee3391bab9773190bccc4bf737ad0f350e629d2eff4cd1611d510a7cf9c11dca1c86b8dcedc8f9b80fcff7a828c9b415f4699b2a1de2bebbb804e0203a1a04ddb95afdc4bcc6d98d240ba71ca2918f21696ec92abea1a9e16607e86f40f7de08c9013485d9f8121d9f9c0675980275519dcd2e705dad4d87009f0fb8f6c413b97c131766620ab583c82dc1ac489bade156b8e502335365bc4a8d7d8adebcc32bad71e6b949a48118dcdea\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 601\nct = 13ad5b087b5a11595dcf44902ca1011fffd32efe6b77be307b3dddd1b528f33e7ea3f36e09873da3909c7f44fe9ecd17adae5b40cddf0efe84fd401df7fed988963d555c24bc5a55e8bc40deb8061fcb59183836c1b1342d66cfc74f6404b67a4f50d9dab04223c18805c0a577b964997e5aca7016daf2c4273ca773bcde39470fe7eb5ec4541650c7687a378d00008bfe8a3a4627cf1efe29e7c81b8a12cc8afb745a86567f5141d16d1b848514acbbb52ced7ceb7381e7cf0261991761d411e6b16f2606050b24ee918cbd17f6c3ff949ed2dc7fa6e99b21436d35729b241f4a346c9c92a60d57c40f39fd299b2bff2f97e196aead3f954135b473267b27ff76bdb451c23b49d947", + "7aeeadfe45a08852caf353d92f0e47feb7cbed5e49a89f42e2a755db0d5efe9dc330c3a71f331110db4a9fa3db914535050a96b0671c2a15b2e9a3ff3f1212526e2391e3edb1bbded4de0c3cc677263f2ded3a9506bdbbbd5fb3f15efda88d954063fd70f6642a5a28295fbf96a4e0cddbeef97a2b841e\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 602\nct = f4b9ec8148f2d6757e6a6c9c32d5928e0efd5ba4d9635d60d9b481ee84631c6b019b4a04d1e15d5b3911aa5c5e9c46d564e707e64149cea901a88781512ba96a3a53694d5ed7ed7f8fc7885e384daa32dcd4c5228ea33e6266bec630ddda028c013288ff16671dbc5147b28e26b73585beda7e572bae5e30a2a9b123fb12b711a4f64f4aab9b6531fe691098d38c27389a8e99b44ff5d39b0ebeee5930313422c918681be11fb722230759c5b69f03c6a07956bf406d53f8d55729373931dfb19e01dea1b9e5203955712ec5463772b38097c075d8887bcf437c44b1f3041f2e84a60387e5565feadf19b528e77fd009bd13d248a0354e701a09a63bad83b30b4c64fbeaabfe23edc45e8405ee8a9496cb863e0b12a21848023ab41bf5d24f39b35fefdd1c27702dc3fd3ec31a3643ff7cf03cd429ff5b14735c8b9c8fcc7683d599ed14200e472a030cf3b40dabf7c22ec7645c735800cd1c72cd50beef8439f5a7406a932bcc1f0ddff90c95fe554da7c1efb79364cc53a773a35a2ef89bb2\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 603\n# Longest valid message size\nct = c609ea7cedd8b6d56fa625b11123b898819558797be9cdb61f0354efa52ffe6c379c4314fddd546020ce9f0fd5b907e6e7b416b46ce8bb3c6129ec39295077fbd3b6c24aef4a9163f5d7d80dfd47f44ebce3b5127bdecb5cbe49d1e125e20479d226ae2852d79047b5f0d535b48e8bfe6118c1d7c37e8c70ae84d1e262977e550f5da03bd087012a934f46c01e121e8b3106e50b4bac05632e9aed32996f09ee8c524ae104911cadcac120a45c44992fbe6f3af37b04e8754dbd674d1fcabc9f5c8649e0228f5f87cadd6d6620f8a9d27928e5249c08eee52372cdf67a4ac0fd8dee2b9e57699d7e28f17a7c76bb3565b6896c83ad14157908aa765c7a51493f2d3de7d735f3adf9f911a6ffd0b7cdddf610bce09e6d929675631381777a9fd486a7915890c0b8b3c119e50330579a4961db1c498955f0889dfaf3dcae46f319c722f7279102467b1109ba6191e30159ca53c9398e6de412afd21cf25ee131840d742562388acfbc528672d3dc38ce758895ddd5db82c875f12de940503617dc\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 604\nct = b664403eea63aa1dd455ef93d1e4fd7711516f8cc1e0046e4c8247fef1889669824f9bf993569ad3f92d1aa3b782ad52a4d35f81775b4007120fb05d8957d842e677c8ec4ad9980d6e8f93216800d832dd30a408122e646d0da34f6645e37e4b4e821da530e51b0265215032521c5038d3700c321c7a54ea4ab8f1ab537649e1313a11ee6c6daaf360a6f05baaf5d698a9cbfa4a6f9ba71118a8493fb6561ed9c3c232a833a9f96a23f7b9a02edad51ec3e574f06a943c72ad9e630960c0079796696c4356f5c6299c45f0450af80bb94e", + "ae01aca781fb7e46aec2e1bfd2d668ec728fa1c9c74d0514a3056624655ed0474f14e11df7bfcacc0c280d365d27da82091b560eee31673c570ffa5eafed980392a53d5dfd782db433a43e1aee9c093b56599f8810e6fe7256668c15f0dc61e0f7f146ac3382da633b9c433afe366b062ce3fdfc9048c2c9c9536105267251327d363e8aac3d381d9f4e9cf9ff5e824b3a3361c766edfcee5ed5a29124b4af8204cad2b1fde9e4b110d772be8a6379\nlabel = \nmsg = \nresult = valid\n\n# tcId = 605\nct = 2e74fe3f91f5372e8e2680746e6cf9db09ced9e51a3a1c6bdf9cee8e3d6fead97cab9c21f89f74b7e981eff7ad16ab37976e8392a9a10256dea2c1ffa9c194ba7d4d97cbd863523801b14a0f783fd8495c580adc7b5f4f4e946b0dd6622472e4bfa4680a12127943845f09b2f897d681c46fe816e6c3aa9c3f9367775748f4ea20d8312bf835521e1d3f780798d577f6402e6e841aec303888b5a445992cbea5bbd1ff48df4671c77465be1f583117d75a051fbb209546cbe019f578f1496a34fa4082d1564501ac8ac44d4196063095d0b313b09b0df164400384d7ad1c7bd9ff2db7dd922163b3685f084ec7623c29eeddfcd390ade0e597071f5096a90e5981aac23415bb76e396f302568bb70a9f57f15933aa64f52dd869f84ed81576a3897f25d7877771a0c330f76b87c2a2c7f0b4517253f48cc31a07a3cc3b5275cc54dc9ede37dafb9419d8e82c5e5a146e3956f700f5162961d127bc753a40d203d4002b3522b0fc429fed12286e31e3f4338ddc6b81ea98b342791274e2f96fb9\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 606\nct = 6a722fad242177db63c52e5f5b69f7ecc2aa0d1a3b47866bb28eeec1fe213738bd649df2836f5b14e29fe11b943e0c4a078fb735db85326f3d14300f3a97938a9b197a25c329ae7a9e47f1986734d67dddfc58ba8c9ed56f91a0f5f4515dccadc9366377f96e3ed68dd28b2f90716134320a69a70daa47dbc3e0d3b9a620352fc5a8e552e0f54952fe4549685a140dd801fbd64d8ca37c31c6af2021c37540ff38e34b51ed0664f5c6f4352890edb6f5c629a9fe7e1c28913e75c1fa179e6384296987b60cf76bc35bd1e9a1aa3a3df404d5e07ef4bd2fc10d27c829af36cc379fbd2a819f824c3eef713d6bc04dc6bcc069f104443cfc5d9b9317ad85f8a18617c1f3affa748d3e7fde5fa6451aed783f736415b64531e7b67ad3c3a696d3ef44234c261a28db2b52d2677b4a34e16f54dcdff1d0fe23bd9681395f80ff5ccff490366c16193cd2a4cfe91a4a54272f1bc5a4c2f5e11e780255e3fd012526d7c02328d007e53077036299f2b4cb45a3767aca52d2bc6ebb606876601273842b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 607\nct = 852a7d7fd2fb036cba85157ea822548b2a4db46a08cd976a60c85f001624977279e43fdffcc788dcf7bbbf23e1bac2fdfa03acc37dc2fdb5bf9570d1ad03e2611953474a835922819b72f0ea3ad6c6b0fb77f6e29cd978c12e3e4cd3e0c272fe31af960f196362b1cd2b16a36011fa612ec8cdc5fe1f1aaf0e31d82d4062f8a11d5d92a260028704340e4120a3c99b5608a1b746795a73d71f1b9dd27432bc90614071abe098e0c158b4f8a1061e4bb83180f8ad2f63c6033020c0ad2afd0c9e726e761a72e9ad9b62a11465e085b5d8bce70bc0d8f145ed493765516417311a30d8782c5ca24ecae00848a47f33c5c70e5564f399825677473863c09ebde90a390cb12f19a03a67eb73d0a72b95e43c54975e5193243583263d46a1a5b3c7911390f832168b9b0dc255c1b2658116368ac69cd9fde2cafd958dc5810a1c48b16e731c2da5fe7094b8d5dd01394f4dd710e32fb88a2ab3773bfb00e381dd43cfc27a818dc0d7599c78d35dc4732b8c1abd4ffc5fb13898bf827c88efbcf78a29\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 608\nct = 09cf02657404081f90ba531e5b3d5890d9cef908d09cbed678a2e5bb836fea0afdda64872f5720cff8e6fcc972f69cf37735911c0ff265c8e7753a17b89ef10ea80c6a1af547a7ba5b1e6eed5a7382ac6039a4dc27bc053dfff80e0d7f51d3a4d4609372512da39f8196960c6b4aadc1b27a8b44febf67990d6d23b9d663602deff31063750c9d856dfbac7421e09d489a27b5e01981afb26b7d8444692397b3cdb8e8b6d754d979aa48876af356d059050295b575710a960a7d9e06bccb5563b63c40b4eae0c21f5f0278bb121da4eba54c88584a2bfb52a8d4764fd65bdfebea27d170fc4d7ba531b65bd4e156fdc6e5b32cdeda442affa6a1d3b1e4ba0d990148089ed5f496de1c9895610f4841b255fde735abd851ecaab53f70a5e7d6f07ebba5a341a8a8f44ac4964d413079c6c012b355d7a40b1e7aec0720fa38b690e62f84f08530aacce5dde289ba1504a18694166cd5eb2eaed554498489a9e168235751ce0541c858f0af30416fd6e5dfac2327faaf13522cdf932113ab46548a\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 609\nct = 0101a826cded513faf6fab5986f84516ad987fe37c4df49970ecc68b74601441a284fa8842a3c091ea7df3b3307e57437afaf45238eaa7308174e1bc9bdf352545da66ef2aaf0d2e017e050ea84072fded9edae0bab5c6fc820242f5ce2fe674546c6c115ca4d0eb42e906bd180301749d19ec58cec815e8c1bfd7a1fc38b6fba413cd1785156b28a36efdcde59fc75ae8798e60067715c135319efc9349b67948b73856dd39263a0a84eca9ad91900be808953d973c2af363390461404a7770d6fce8fb74eeee669e34524613b8a87bddedaa888fdf0dce405c87b4de4d8a76e3c30e39e102bae1d15e6c45088d784b9f59f547d54ff800759dd102aa2808d0c1e085860745b2206029e8efdac6bea976b0c7b74c07d42c3e9740ebfb21e2bb67524d3a6ca266ce06b6c48828ae40a0f4fb7be64be50d1297c25733dfc1dd6fa4a88d8ff637c03385923015d95c8d486fecf7406f32254c572ad1f3ff9633eb260860dafbc33ea65cb63b6127a10c1fb1c736110afa9bfacc355575e47708a4\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 610\nct = 7fd69ce0f367bbf210bef75327477b07de5bc18427d05b929eb24c38c4efc88c9ec2edda1d9d66a9fdb61fbfb5d67bd0323e98a47e5b93c794556218844ee1f58f7e6646c815cb4bd295a17a26888ba48f619817b3ab3842376d93d9d35bc7bef23a14e84c4227fcdcfdde69870461349f876c3d7f4073f5252eecbfc83410b8d2346844ed7456f4efc1dd12dde14d6d1249774448473aab508948729abcfc7de8f6394cbf0268226fe9d83799043876c5fdc4adc5976439e009587ae12d0c956bf3dc99651f87f81b2eded7bbdfc6cd8462eecc8c28ae9380b25450627a6721b4f5ea3ae6caffbc60bf45feca4eb7bfccb4641460ab891b5f53aae08aa0280ec00cfe3589f42ff50344b63a46b5cab484f4cfa245eab4e126a2d3dee256f11980904c06ad626eb6ef4a7d22b517e49bef4e0a5890899a3fde110dd3795fc979f17004a8b4beab6fcba0927b677be3d0083fb5c8fcbcae3cdffa1a0f3d9cf7fa2c58864bed3e421355ad497b6d5fe3d343609d3d26001ab9ee4d66829e7334f0\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 611\n# Longest valid message size\nct = 4656d7d5b698454c2646469a332d56ae8f50df5516f3b4c95a0ef12a2a93937b1a90736fac296c2d33c49b2f95c291ab8be7186212df0e0c68b2561cd16f25db1b03495b581d413e9ae413ee85341435e63cc20463c8f8762e789aeea5213a251df6b900fa5ed418e478ec7e927a2e2d5bdb2777b5d5c2abfee705d3102f3ec15f87555b177bf6f3680fad23bd24b51cf2a690b98a802816e1fcbd5072724668359e99f9fd9a26f3c2336604712f11a25d7a1e3240b6a4afc650279ba9503938d9b6f895fca02df0b3f7609b80232b45b539c321eb7c103fcd66a7f00e9228c1f32a44909cd0154d8fa7d69531d7a27fac8d241ba45eb44f83a2260e7b4315ed29dcedf506a9ca89d2129725f6d4433e38b0b1466147d0266b29a0ee3326230882890b157428d202a1ea66f4347d518136f7eb5ff5ed824552c4a22604fc27c670511f9406337650e075869c84159b352df16b672a86cb427c8a2c3daaea305bb76d8eb0871c0b3d058d0609a884b7513a97e17041487ff51316ffe10eac75cf\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034", + "552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 612\nct = 5b30531896aef568d9e4e1bf7c5bbad1f796c3cce86ae707c24b2c37e4e883ce706e1f4a8254ea2e740bd7a579d47ad32f47ff7cd6efa143b57c962772acb3c841af4844491c480273cd29dc73736e522b58d0bb82dffa80309ab109cca9226be4be348a45d8b1163adf9cd236d03233e8d994273190c76049fbe8fc7f655f3bba36d7fcbce111b1bece383ad8afaf2c9ffdb13f17fc00f6db0627da885909cf322ef048bd8162dd6a0b1fedc16a8e2dcce776d6aa559ce3cb5516b3c5b43c4682b00f3bacca439d0f0622e8d9bf6fa9deb8fd0eda2b9428bdb7f47bf7bbd691a40dbe4ce4d2e1e2eeb04b23e63059ef36338bd21ed658657ba4c560ad95b92480d1ddd0eb6c444556b84b8c36404064ab989270d56556b5085e46471a091666a0dc5178fb5def62e90f65389c2d9615ada5d1461a5be27de7cecb966b2aea36e2760d90858156670db8a3b2f5c1a5e2fc408a46afd239dea360c2b1801fa4f328f1341ea32f4cf9045b9e5387b46189eb92cadc3446850f30d74a5dbcd65fb2\nlabel = \nmsg = \nresult = valid\n\n# tcId = 613\nct = e5498be4c1b46700941afac3c0e58a9584d843e419a131d4d8ee499abee842ab6da2e63cfe285d207cc69535642bff1f5768e8564da2e7227108a87eb68d6116c1622f69251e2ac36ffb6a3c656c1cef8776666e45570bd01d951bed4da921b369ef6f55cbef84074c9b59c12f7d9b81f3675fdeb478506558106029172ce57e99498a3bda4f132b891dc3d1e2a11b74f3aecfcb8f74b4dcc2ccfeb1fce83e40c03fbdb0aa949406fb3400ca8849207ab2ee42e4b53d0869077e830fdae197e961ab9bf91eaf6c1f43327efdbbbb50fcff12a01d9b68132f915119cd838823972deabe9b40a523ac2e8846e1b2b67718c9dc30b9ea4697b6a6ba7671aa6e3b3ee7063207958e82b83a5934121b6c6b4e2549f41cae1e3921f3105a902691048ea08004698c97a19ec82d45a82bceac0a0d143c256d28e614c2e745961df945624ed3621c244dcf30db8fb07783e03a136fcd640d07b684dfd891f2021e6670dd4deab7e3a39e3ecc49ef28d0c11b11b12f3640862df5496c0b27e82ed3f49a59\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 614\nct = d5560c379cf35fac7f852fd09029843a487e86e528146676ea3282db7b349775b9d1600138e8f927fde8b7898828adb0ad0884e351a088897379440b652e1bd7083f529fbdaa570d987bb06f155e14eade9158b07bfed2d98c930d2a33f0d696367a1b28cb8497afb9389aa9758fbd4eea884b63c0f29246a6aabf52c38f91eb736631840e0aabcbcf45fa3b35d24e3e66d4801d2162b891f0116a83d5dab309ee6d94b4483e6763c7613518746387faf69ea8edc82cdf5d318fe796bb9e67b6e722962e4d6df5a2f954755e1f96336d506d81294c97b9217e03f033f68e840b3ff6648547b5f4b0d3a2eea4afe160aedb308fe3053df9f3f64bb185937864c2f3f01dd30fd992d8ed5c07b5b517ffc5eda06c575ca0e6fc31cb8e459d22343aa9b25512bc99112b96c925b63b0e97a305237cca452611bacefbca0c880622c5fea5778796c2500a3feb7a8b33151fa4a6a181511379bf2b7abe8d6404fc54b48f0d21f05202d24b53f8fb8c403bee89bddfa243574ace69f7e2eb45fc703ba2\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 615\nct = 68f0673f935e48101fa9b253367370f9a38f390790fc2883fa828dd69f704520a07830b2bad0269eabc75337405245d45e9494d0961b7d7f9b4d3bdca5933fbd41d2565fa16be43dccd80c1b7a3c1a83c5bc8c3ce6992a7bc57d8aaf7c297ebfd69c6040a8d84c9f85b6a42ee832c59d4a923ca16e4bb26ed898fe5427c76610189221544e1668ab8d5280eb6f09a2085490218974ae0c202edc9653b5c7a2cc1c23c5fb8d8e6389e174a724b35cdf0670323bf8f04921985351050decebe8a85a5dd152a7a88ee25796e6fbc05a33dd677b854c06a7c190d94b94bbf7d1ec3668cf5327b87a647662f72d17665b3fdc5a66064f401f6c059e7304e3698ea7e909291a542e0b8ae60664732045b7820cef7fa1a3459ca2b8813f5a72a193de749784e513da985818f33f3087e81568f46649aea48440fcf57ada621f81ae814ded7aec663892f11c5528aefcf773995035ea29710ba9247913f995e5cd48f8bd90b4ca33f9fcd40411004c680b21312972c4b0f9d5571bcd06a77bb77f963591\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 616\nct = f2050833c7e5d2b1b5a9aa0256f69a1cdc97282d6d0dcadf4f2904770930a44960e6a1e782855c605f3c5ea1d23b406a9e5bef7af09c4e82f085226ed0f142fb81707a59df3111470dcff3d9cfaf0c6f9db4e5c3a63e6ee06f8a2234d8c6f15808c512ad15b15902160da80afba9fe8cf98433e43bb36bbb067d97d77baa82ecb0f94b307290cfced40639ccdc7dc19641d7ea332ba11c773d0bcb3ce40b9b265f3dc1f79845831c08b3e9d56003f089717cfeb4414cc78ac0d8106c7bb11159b3c2ea26ec44eb41ab50bb44f00fdd47f6500ce71e4d520f8ce4b73c52ba9e935a2a43f44e5a465dea9a53394cc98b012cd5062ba5a2ce336c752fc30859cdd2f6c3e32a8c041e65966940dbb80dba85aa33aa37e1878702f13c34a9fa6d04187bc5da9edeb20b6ad34ae3aa74ee32bcfa1eb5842bd3fcb20433b29ef37943c9780ff1100a3cf66dee1800158e61a554d2c0082e24d114204127d76b21fa61dbea2fff1a446df373ac8f26d606076a10c74ce377325c7fabfbcd9dd03a0075be\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 617\nct = 555c57d8a72cf906324b287313830a9891e39622cfa3fa54c0bc988652eb7be1c75227238e373f6f935277c90d0f5993e1188520e86bb7ad45452f1388d0dad954ceae4cde2915728bf1dfe7781a18fa", + "7540e01272c9d4fe534ef705997e88b4fd21da1c76e04913ecb4aa58e6583d21b03c6a225fdd1a5f8af406492534bdf2291dbed482a08f910369f09288b062029d290229a108782bac6a88d8806a40816f967f335bf82ee56f679fd94feb528502e74c6a2a40074982c489d08f5a056ce36a931dffcfcba52a168c2d0d48aa5d277cc7fc6d5a21bc583960fbb841775f51491b96c855e9e83b4a364cc15866c7eac3b0de690bd5d1d1f07feb9fe6d5a7ee1f605821c7f2eaeb33a0995be2c459bea09530b43d0d5299cc734b6b0bc5265b98765d119d75b528b6fb5765a4d415d9357904a50dcac40634cafd52264894d76758222db980dcefd6f78da52cdb181685b1af88e45f721634c9d8c0a441a5266bb9bcf61cfc722ef7d90040dc96cf551c0228dbd2a49bc05a24450b3c5351\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 618\nct = c7f37ed06928718abeb00c4f0925bdc1bb730da7589afded36118b9e5ec422838afa1d737503bf7b6816be70e464396b0e4db935622d5f486d043e00b3a75fe7dc8b8b43152e1d09c81227dafe85268c5758fee10c9fb94075288870fb74733477f8a3b8b61b0a27a32225d604ebcf59bb430fe31f56c3320df9f71557a4817c4cf63db456d6834ddbb6117d74c6b0d33dd97da1ec9a8d890061c88bc625ca0d0e69ecc9a0af50333f00596ce1d45697b4c7e5f07b818251923332602bd2692906b1e7114c3aee95b5778459d944f77b017b4c132fe0f5b863e4e01d3c9f3c0fe3720fcc1c5e9573c931f741a399ed520674f67bdb5de98b5dca82cc2198632066c758a50a0e3b467946b2d4b575171a2a94e89abafe36daecc6f19f89673c466320da0942865ed4adc52c0bc30ac07e7f9d9a43a6b1ea0f6a8e02aa920b2f0d6e05ac4a7219b3f9fbc75ab03f04840ce6f48f54a4692040426f8218b3ca62f58f02473ab3e0c4120965a85c0b95af72c65e13b17731a30f3884114191351059\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 619\n# Longest valid message size\nct = c625a2ca9f6ff50dc2cea5141b3973d6e7d9f9fb5cd5a3c09eb67caba731b7fa0c29361220ab942f046939c0b7f5ec4a278d336a90c19ecb24ce1b6114c935f21ae32d3bcab3fc990921641d9fdfc6d0f94116639dc48c1a80d45b015f735739016d909c6193ad2de83b31861c8e766dcac573f5045efb370fae224e56405b4dadf2c627dd4526b0848920328476ebfeb14e6f010c125652cedd55438d59b8f0d8045c1384eaca0a6468eeafb7fb33174d1c43b4b23ab1c6d45c7fa644aec86cde4535c991cb300664aae97ff20cff7b31247a31706ce3627e4c3aa9d9fce71bb3c9fc0789380f781b9683c2d0d598c0c9af99affb85b4356035e19f9dbbeac95adca06e1c9e24de46eab1f2300ed668e37edde2472aae8f00879fcc0a7a577f9e316023bd6a5b89f90d04dbd464ad090da7669ca8335cdff42d04f4be4fff86ca4b5aa4869b3fe538db2f5430c5dd46c5104f4b503f5b3be33b87622c83d0f013eed542e7afe8a78bcf966c8bcc7f089a63f33faffb7f8033ac76546d42f959\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 620\nct = d5e0b09a0b831fe46ded1c6a74f94d40925f3e7dab30e852", + "918094614f6afb0abe0bb80d963a18e86827e554a94098a2d823846d05d4b22f29baea7e83e8ff720ba7b4e15642f1c1c307cefb4fc4a43594c88bb4867c62b86cfd422d4ce3dd84f3d4ecbc14be32e1cab4fdcaeeaa8c86e665505ad6f4e2e85aaea715cd63bfe76742382ca510680069e39da3509d3a43beb2b710b97046cd321d0a3744ab8a7b57c92eea4d3ef2de567b559f304f6ebb7c0a525c6a1da149b7f641a7503260b7d89dbd14940f6be23098f85397c1cef5dcf4e108996efac8180d8d3b9e5a524cafaa819d1681653b6a7080870d8cfda6099c9596d923d8f548358bab810a54b50f5836bb213a8ef0c14118c1d21390d3c8ef89c67fea2b577c1b02b379e5c96d38c4248de677d542a035180799fd4c7a7d369cfdf044617f8691472d717f6c6eb0c8e63b8e13f6939478e029c5aae78268ffe340f11a344ee9e0893d16d97b3302a4ac35022774dffd06c38714f8fecdb6445f41a57534c90f4097be87a0df71\nlabel = \nmsg = \nresult = valid\n\n# tcId = 621\nct = 5cfbbd845d8695b3ee9d833aff040f3610119f8509f71c7eb102e307ff857dbd5788d40eb65d1b931654a87b8644f2522330f1c54dd5fe2066e1fa796072f0426b36af41a31afea2f3a1cdc44a97624a7f1c4760e939456376b579705886753b2718224b889222a4873c705b7f06829dea41ae02f7b43138e8a56414de34bcc355a0fb3abbe1bc81772a5056e67518de0d88a7ac8f881f5fafc5b9f99c8f740373e06d14b11c08bf04004c600579c9fb0d058e5cacdbdc5bcc7e38fbe9affc2050076d88e2f939e739da27b839b8351eee39df3d4ca68dca63ddd129461bf4894c94a81df68ca6431a6f0764245408c123d9334af4eca96afec7586bbaf2027c5cc28684e1f78fc4ff2264fe2890f2e31629cb5eac8a45b979107ac394e9264d2051929408d68834750f72e78675d9078a883c020cd42913e0b43a1a311cc6ee5c218c545c2e2f11bff3db3a773f17914cff2d339a17116ac995503cdf7d634d17fdbb529c86bcb5167693250543e5da6ce7def98f6d811add0e6d63591938d8\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 622\nct = 3970f52468d50ec4cb4b788609285349dc613712e70ad422ef31775de21ab08b15d9dd92d7845b72351a91e7547d84098f2d17ccd441656c043762fce983a93281b6b3819862bfede97e4fec1ad5114b2ed6cd6f9d1489279a06269c04d7773a25347ff31e19f909112605335d2283fbf9400adadb8bc1d0b1325018b1b044461828e5d9fc17d30bd7f100a479fd42b96a44e3bfeba80b1bd79f395997314d209275010ae3f121c2e1dcdaa388098c6933e4f1de84d150e5899e0f7407a7bb0c19ebe97db6947101dd6364b745d47fa17b731217cc55fb53b57b1da7d42cd0b795a67c42be9f042eb59e5bc5c121edc9f0b7722b6b4297653d8fd880192370b8c116bf3376cf870116250f19a12dea7d3f5d0d4a0c4bc927b3fc3a5d049651d6fedc7dcd1257a157625ac234acb7bd15fde06cf068160846bf575e4b77861a3a228372d1af7244033769c1f3d2fb1660ac58915e85bca6d6349eab3f7e5112593b0ce267dbe8323239adfe0835ac20ad9356112e7661731c8f7bf1c77b001ec1\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 623\nct = d18eba303b2103ecf81fe0e784f49db02c8fed489c358a6b4dfb7604a2c2d13cf8fec9e42cd747f5e7c0a1d1d386b646f270df23d64f13388813d5b3be32211c982248f2914d870a734d533f934cd582135f154e67671e5628f1b9842971f2133a6a7472a513e32f6c8205806b7a3ce21cd9beae337df56e94d5d8dbcff698c6965cd7feb329add6db1f4d178e4409ba58f24cf6e8ddc7b67770c02a0a5e952fa8bc1a0fb0d16d87faf06bfa258aa78c7bdd719776b99c6c19a8d8a39a9d0b2100f92e7dd1d05f8f7da248f8f4dc494a7435458bf658e9ee5e622e213a935ac4512d3a79a18135171a4756cd38fd0e6a2a02b960e4201e4ee3f7cf42909470f134981bcf9cca867993b9e8929f72ae0e978b025f0ddc012059a1c2ef837b3153ed9425d6b6863239f5bbd1c8d3ce5050be0d67883387fb57dc6c892b24e52f857e791b2ed6606150ec9c189a0e9253a69d63487bcef87c187cdbace7d31e0bc3b77fc0c9ccb3cf4dce359c4e5f5c5e91227d9e7efc5a5ec0aa36dd4db6d4dedc\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 624\nct = a6e19139656aee628171326f67641fa95411c1f6b94afc96b071f24a51d11696964ef0c0e0ab366187847bf71333314d958cba1562def3d07e700caa7294a7093564206ce98a8507766d4a38e04d84ae8c5784543e938a03ae8c6d0f34ae5b0a46d10d89448d904d5acf09f63b2636cc9c8bbb18d4cecf2b2c839b6ab3c65d13bb593aa9ed21565cdbde8b40c0135949bcff501d85cd3893fa16b398366efe9f323491cee54942ef9d23dcf24cc1ff88cae24b419702db146802c4d720e887220a77485c46b233a5f342268824a0245da967bd61b2d4a3be06376abbd64ca4f6a02712d8066c46a9159e2840f41e3589e03a6a63cc535ab30c4a207907e4d4ed45fa1a50fd3e19dfa9c8bffdb914dd03c6543ff773c9d275aad172bff055b20076bd8762dbc5a1183d2176a6c184fe455c119c11af8cad3f05857a4247b613cde762796fa545a5644ce4ee923862c33535a58e257e174c63ff7c4f0e87029c13c3e4d25e990dcf45f4fc92f6ceef9e419ab2e79516edf27fe6336944998a2a5d\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 625\nct = 8bad06713268987af8e16ddf8c81c571267d00a3d420d73cfe4359284eccc5d55ed42eb961e8ee9a3f4d6f8d56b492b8b0a7824b9eedbe72a6ae47f00b794bc7c990cf667f79bd91ff5df4d2b33ca7ee51d79de893fb0b22a3e398ba759485137c17ab78dc13a96bd889a7f40006e0afb9c82613091327efeb4a9ce339db1726cbf7db5cb4cc7fa102b8b389b3f26b1b8a0246789cb831d502f9e22770afd7909bea759cfd958d0ea98a142b8ff2c69fd101e7eccaae97bef4c110285d69a6679035e66d88de780363ea4d74573a53de378e8b4047c8b1a2f2276c06c0598f8d8adbbddfddc3a51587a7376ac27764da611ad5e329c208d8d1310e9c172bf9995a898bc047d00c654b4b0e0eb486e6f3b90894e236a20dc3fa94598bcc152b75e3498ff045bbf2e8ec85831b27a03e4b880662f534155374b1e5cbaf3fc56b4867b4b97e47f0fabba3e62c60a57e0060dd2ff0a7675873bf8b759523124902978c00e79bd31a9c5a209d7facb795c166a9667377fe2abc362a0872c47affd500\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 626\nct = 04d04dbc772597ec8666cbcf3ef9b22a5d77ae065a62bdb1b32afe6eec1631943645f770df2017d21f9833855f38584178104a3448a8dee3c9b53ce5084b15c9800c396591b6cf725f45b5cff93bed12ab66a2ea64d730af362bf0e9594dc2f747a4dbbd75dbf9f88f9d737d6c35ef2b8ed6cd53c31419ccf72ae045bba4c23a2e2ceb9b9c0d0ad69e81991965ad90fe1fe58714f635f79f762f96601c576868e8b96dc660e0826819888e6ab5a83669b70b1ae4ebd5180839ab2f4489a40b459bce1784444e75f5fe9ea1780ec41ceae3eb2b03737de66dae167bafa169929366280d80b1b29d0580f3c1499e046813153b35978300e76700e97668749c3356c6b4b6a7b6840bc46ae2ed5000ac181b1ff49b7d2e66c5c794a293a6860b8b2bc9afbeff5853241e2668bbe5e38b70d1be6bf93aeece7355ceb590cc683cf2100223764b62178be1b7764aee648fb89f65513cf3b3e1dd99fc41d8efa5f2325b12e86111c44cb9b225392ec9c46e4eb9a0d012beae80cea4981f7739f19e12d6\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 627\n# Longest valid message size\nct = d90cd336f30824265b68736709daa86e75f5859db56c7200e7bf908f727c42863ed6ab5fd95e955c7bb1b9bb85fb3f50f454075d9672695d515a15b32d6fc3b42fb070110a5c250f261ebdd7973b539491a7ff37b063b88f687e9db36bfdea865aecd1e601e9c646b905e8dd07fb986054150088e62d198f06c8cc276122c818519aa3e9f24392244d1df7d995fcb50a596f380b14b58eea99ec281cb6c7e31fafefa8a112db4948a697aad18e95245fef48ece289a53a7154980467b066c90bad4d3ce37686eb1c4d984dde0509143f3573528104bfb74de64ed29e3cbea18dce63a1d8c941107855001bd02e68b9ad869bf2e7ff0c8aacf234b8989e466c7a1c014d92be23b38af69842b4f181480dc43e5b82395494699d3bdc56b964d0764d15f524c3ea474de37f9be237b65e544cde3232b52e48d1762dcfc922545642f39070866a1820c04eb04fe878d1b839a0b393838195c0d0a888dee3cbcd2336c5224d64f6655112d9841262acbfd08d8be2fdfb4081a0845f6c5b9125defcb2\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e8", + "5cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 628\nct = cb9ba45404396101c1211be70415603708e1051b0debfa045b75ab936fe7c5d4e8c67704fd2ee046af8679e0bcf3d266ce67b801c90b581a3f6909f56c6fef023f0e2c4428227a51362d3f50ca65a79edb3faf899cf71bf99e244dc817fb4c2bce848216f0de57a1747fb1d4f0310e59f7ae0a656376690125dd10657357de11b5e7e5588af7083abc6018013ddc43d21c2af42c9c302f008064630a27ab014d6dbf48350c8758d821e74c45efd168ac37f366b413024ebbb0c9624e6a93d4c02d1f2b050f75de4b6a74c701386a6c330767af6bf03e8ccd69ce6540b471c01e6fe20852a10f198e4e0d29469b1b01d5ebff85ece159355083829e4c2935f16cd2f409199f799f250c8f1306da1614d0aa15578a58f399a17223c7618242cab31fe32a2317cf7babbb30b3885d5c07c4b89e91ddcb37f449cb3e2faca585d04beba9dce34face1167f5e4aaaa0509867716e3da0ff81b8a481b3f9cda725f01441d7d3d7ae24a5bcb373ff85e608ee7a49750a0d7d185a61082924b2343e18cd\nlabel = \nmsg = \nresult = valid\n\n# tcId = 629\nct = ad215dc277e269310c54925f735d9bd6e68b828c8a9adcad792a567fa89f75bfd9512c69caab0539f3a2d4ad7caa73e6c1166d94645308d09f98166547beffa48940bba67d08391d8ce831ab3e819b1113eff18d02a83d7f07f1db2ad63cc53dccf2c9a8d8cd42f3054cbe1d223029364877c61d2a58d4c16929eb2c8b21fa1d09797a558d61f00f6b2a4b67eb794dc9730421bf52e073cca7bd083b35562d21b6527a525662defa0db2c9fb0fb3d8122a85128839e68fab7224756fe7cfde6d86cc7bc3c6665d3ecc52ad0ee25767d5f1f1815e56c79e1ae089a4278bd8c34fb397c1029b4315573391064c02f139e6a672b8a9f50678419ab6d9fc42fbcb69b71dd644ceb7968d6b0edea5f72d9d05da3d7b36cac7de135d45edf45834b47f7b2b91fe89ec6c3f2863f7454017091cf6622b02447a0f8ea6a8668c61a55f8654c4c8f60ca13639f125f2a3a46bd82d2bb6bc66511ab7050433cee0d6fa98946d18947d5649b380f795fdc8f0f13b663f518fad69c65601a51d170f7013204b\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 630\nct = 487ea78c9548871a93a0b856306f349ab51bbd30b3e6db0c47cfc965774cb0532575333f8584dddcb13f24ce98ff4a33d63b5b1898b3a8d9babc0ea906cf7d9ae047284f7a36dbc350d7affd57030196afdd419750f1c5f2fc55622e442e6203d58a725c7b6e59205baad02c86e44447caea8e88d38963389541a86933cc64c1d8a3b70c4870b0f75146de372de834988a5f852235926d7f3893c83dfbb78a1a8cb4d9a4d516de110d315ada9be71431d3e6b03681d4d7f665987000a72a1b138476579aae7058f7d4151f058410d93bdc197009b839906ea6254e90c1a49327ebf818dab3517edc39761d3f84be8f8bdc8b35541c6b6b30bf8cfd20fbd9a09713c470c9ebe0622ddd8b2471f9b0298cc77b51e56ac2dbf9209fc5a95c066092deebeb7ebec0bda02f89904ccad29ecdc1d263a29930947b90a6ab83dfaa657871be533d55231224ba4e866ee9a3e352f501372d75090b5236d39b62ee6c84c792dbb253dd1f9fceb868d460fd76847d9c450b1ee5f280fdb0da832bc5627957\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 631\nct = cc6b45a4202ea5a1fc930a5008136091f48831e3dce258955f0a2fa95427a18ce12bc6d95424b983e2e75152b654a0c481014c6bc538354ff720b043f57c238c42ef536dccde3637babe7feab03e2fea7ddbdfcf1b689cea466c07b1aef757a7120141a2720cffda1ad422eae68d751425f879eb8ec65a1d0d24e1529a91f0643fac68e71da9f4d0eb56aae99bc03b600daaa127221dc20a5f5060820ba6cb1625382a4adc47185c0ea77d650cb517761a085a55e1a306c6136ba6a03d254079464ee8022a7e0189ef458fb4587b53fdec7864c90872bcfc5476bac7a7af7b104cec4cea576ded30bf4e24f80513ffef05b31e5031a2dcdcd2cba7784869c211c2ce0a3a65814fec0f153de0b8e327ecd2b0ce80a9bf691c1c08f5920547a2a08d749e229a6eaa4b770db54345c18ec3365f68fab045111d0928bb2cef7380dbbe07f6bc4fa3bf340e8fdefb1438188a474b206b430f988fde41f96b0642484d02adb39aa8624d908e52cc7fd3d39d74e002ea04a756b61be3f279ccc7206ee0\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 632\nct = 2034cef8731f5ddf7533380860b7426ba0a7ba97199ba332efb7422578d346ede8a41c8c4488d52cf2559706f1a677edbaa50c5783c00301cd41815e46c588e2e8657ced9a91f1b2e61d51d5e2384b59b90c78c8d5607076130926bf198e0968b239fd8d4451dad125467ab895eb3ed450e6abb61d6217c65ba2cd2176e2532594b5a09bba689ea1562d04527de919d47c3af5c2c24698e572f3ea289f5691afa164970daed05e83c051e39a99240a4fbd9c2046ae742cd1035aaf0d0c20b5ce1d42a08f9175d5ca30b6f4a7345b4820784c148a68f92be82f6e38638c1f8ecf8f07df3827f9fdc8469049d157202f31d98f06563f737ea3df3764f4644d9f9185cb2739c8aaac86e9b39fead8e03818550a25997c31674d5e14cc4c13790e409e278d778171c5462f689b0ec344f9a920a312ae9351c7d", + "51ac7ca7783038b3d5e59d79c4d89ed4d36152d2a1baff8be23ae1eeebf6af20eaf093604cbe79fb93b61478d3a1bea20e1c6c60d63cd3e09920f521e3eb3e40fc21fe46103f3194d\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 633\nct = 7929db7a0ef0e385abca461e86013785f72d60fa4cf1c97b1a16e7b501235701aff06e71d981ff75392a27a266afcc5bebef5b1dc09ce60ad97b1722baf70b7be33b09de2f203f92a527a123e929b038428de471fb0edcb8e64741a1484ad5d2d5497f91aec6d87e5ca95fdea8962b61362bca2d0a4742f8666f1b067da8db4fa24cd721440d6582750498c9fd319d5ae5c27c9b70f1811d90b673d0529706d085fc78d73f933845278e36e96c48194f1494a1b4d891f249e8633c03d9c564534952e98c059dbe01294506d9238816215028d6414b954467650820e5db42b7701adb0d694bf2c00b42e89b80839b9f35b4e23ea70e55e514c50e9ec197423ad28a5dd4ece946345bd6ba154c122ba356320c2c1cf0ab4e0c713db0c8296ff900a078ed5f0ed1802d7f1f92c9305c245471d66820d4230aac6cf9a4311f7293e1d93a5dfd529dadc6699aef4c2ed53bcdbcbe8deafe5f9b035a6aaaf9b2d8eb23dac290f828bf1886136c79fdc915e21e06133f24e63876514abc29d25c146fff\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 634\nct = 5ed5766e97ba0017cc6ef508702d74049112f588e8930c3954b43c7398650fb1bfb94cdf75ddcfad8b50c59ed05bf8c32291e8b804f49fd5faef0e39b922e14ab4186c575cbee9cd2677b58cd890df072669c3c26845d7c89420cbea27d8c1ea43c2041a95852c85056e1d22c0cc9ec563d937fcb1d6d024f3a1a2943f77354885b3fdcdf8945f7b41e1f5a3c7cace9bfd2bb845f6cfee05f8f4680d1bf2b9d6510a6d2093a12214396ff02bdfeaee4b21af5d52244a3cf6eeffba75e946b83b5784b3bd98e5e585032fc88a1abdb12cd30c7f412c72d2e4957681f77e4157760c067a9312df871c972de688a839bb155c9de29eacd38ebea064f53f2599d08d6014c0f77f3ae121a4508c30eb0c8dd49c4c0ef31cacc3b1dcb2240050db157299260e9fc52dbfb530af6f759dba3764e4eeaed032e564141fc102399433456b91a3df2186ae9032957276e691c095ddaeef7142cfaf5bc86915c27461c136c1381a800bc3322c2dbdbfa83374922d607720272c8f955a9a10814c4bb9587e5a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 635\n# Longest valid message size\nct = 4d0da40b2f6c6ec3b8de97593a591681c69853847f9deaba86baaa69b42bfc3d8fdac5fbb3faaa7a5edef6e7ca0f25ae169c6545f26c908a1e3bfe8f0a385c584cf3da930acea13076d475e9b428ef9758113d3d8a0e23eb2dcbccbb1ca0c9b384aa760d17a5764a7c4c709cbfa9cef0ba5672cba0deb198577e3abafb2176781956d0c4d39632fd30f778b8da3da16eabf3caece2a325926dcd25abb0bf743b9ee06a3b4496d82489613b0a720353b017e72c3c43eda97c6444d8f2edee7a444916187129bc0e9bc20e457c0946c767d3b32866655742e891490ee996a3b2106cc024c5da94ac89dac17fbf0c97a95541f8283510411868863e68d9efb7ae4493246b409441656ad0eecd3f0d84c7fb16a593cf0e3b5ce01c142da30d50e42f58c7bdede2dc350313c480a644802fa10fe117c98a92f5f8ce6c9c4cf3ac0b01ffa629dda82c217171a4723db2ce751d4a359dc53dd4b398e7882a8c88c9b591856189a9f9afa349f02573a9f07c6cb96eb41cbaebe69dd82ea7d9b860b841b5\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c8175078", + "5924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 636\nct = 864915b51654401f018ee23280252369c2a4655156b167747c886796da7fd08af0e5ea3e5e477ef31498be2547e78de91aab3283aaaead23013a01cb14cbc5ccafb27b345af079fe4520c6fc4f4395abe18f8ff3525b7f9bcc1876693800de79ea33fc5c3aaeafc9e4c97535033708b77516a891fbecf160fa3f98ea6b0b7fcf69ef44c470df232a35c48e758dc4b70965d2c2256753afde954b642fe83d181759949a901558dd0c88cd20291e236581199cdca2b5436a102fab4c6c58d5c8f2e867a046114e0c3662bf115126aae27a66ce932b4d9603e14fb3769a2b712e5b332ffc1b615bf9116455cb802f907a0600d9ac9d292a4582d356b6f8c06d54f252ff17d1d4d07ae25ba1fccf3ae9b372e2b8420de1b9258217c15c80bf88afbdb5a879fe31fcd7c7a275f4b7432921b8de5bcaf43ec8db6ea38a962b79d810904406573cf3c40fc416dc5f8d2d8feca1285748cab7d5335cd4c253b656b52e9ed1b8f8dbc4cd93962028f0ac1feb7d4f754c0aeb1c31e961f25965ec2328ca7049661e8528603c117f9ed93b74bca5954936546bf729e4572682bcdae42f0e693fb3d05de3fb7f8728825675268438339debeded1c2d50bd89128b41cd40cbb6bd68564494b06c9bb43e3ba7edde3f89933165eff31ff255e1174d51b885b6b61d4d3712625d78423640fe911e761fb05bc702da7bb7a6819727dcd892f7462c\nlabel = \nmsg = \nresult = valid\n\n# tcId = 637\nct = 0d9e70cb448371ac08d862e2ce2cec00ec8cadcd05aab58ce26c5c098cb8aa64ee561c446392253b3b6349c286f1222a3650d2393aeffa1eac0832552a43d11f7780f6f219c8ff1d1c98bb085092751f479aad553b0243537a23e53a9c9779e15bc3c8d8a176693c3261b4c0520d634dc5b3d618565c1428cf9d616c6bff17a4d0dceb97339f5556f0d96f28b187309a48174651383989854585ae85d30874894e6d54a3a65e16917c751f3edf1d1653f22ff5d3f1eea35b390c1df1912469db041559b9ccf8148deb9d4caf8cb587191049bc575cb20495a9b0837035d2b8c47a74190829e13973b5b72eda42ae1a7cf0022cca75f86f039c64e16797836c83bcc7c638d22fe1357444bb4e42bb1410d7b63a8c122006f45dbb942a802aa4a964c6b17f21634e0e029a9a6510158f88dc05f9c6f4ae024c6f13d32a4d412ba0dd0b9f7382a1771a61a35fad4e310becb6a5a59dffec526a9e06d9feb696804aba676d0d9bc043f07068c7882b1f8cc19033b78416d64d5c6f4b2d121d170e4924cdb9a7179ae3a93121b814fcb74cc25eed8ab26b12890f9392debfa3c1b9382d41f8bf0d1b8cd40a724478ee753c70d3f3820f48b6f8d71ac6d62d4e319659b188a24b586521986fa3ff61b376e6a78a8988441da519c6f986f10c32bce6ce156ab0e2e1d4cd1f2765d0cfbd8157104b64709c4f8380181f8021f9fb153b15\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 638\nct = 40d37ad25e0f854b3f3431c1bf0e24dfdacddd8985895dd95f95d5b664e03e9f3d6c006973be95f2b17621615b8fed29aae91454a4108997a7dde9f279a93909782bfa6ebf7eb69c198d656752b980d6424f054b3458c8b772f509981209e8514f5c366d7a5272ba91072339cdcd81810eb2c27f47da51e13225e564ec772a0cb40c95a295eddef2f5dc6fddbedc8f7c2b141049979b7373049cf5b8f91b093fa2cb1220e145e5fa8bd1581dbb7ff6f1e28f51f15e67350f145ba336d4a894a1156ca2cf35cd8a29318d084e28d4402529551e8fde5a30c8005b983705cc67a7cff211e2a23065ef9342d4d065405818997126e14834b4f3073a6845add06853121bda9df7fc68e2516e72515d43ace942ba26c0bd36f58e93fa586183533b82cce7c8610b15ebd305d0be2ec52636377cdddeacd4eaaf84fa64e7bd17dc2acf0cd54f75181a7e237a6b1cba8514dac2c0301fc7b28ca07dab48894ed25f0d2c4f755cb6b83eeef73107338cc9bb21bb16bf8069f41d5a86b37f2c4e9f793d5226a5723c5c95da151f663e8c96f0dab2af01ece8ca1280fce698ba99d033817f79190c7e387c71ec8c70d04ddf965afb5e0c106e1ad913882bf6295b8b45d6859b25125e0af2514fe66c40381987ee925e6619c9cdff3ec71534ea1cec815bd3ae8a4f66ecea466d9100dc1c94c64be432d8fc9973426dc2041583a96e68312b\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 639\nct = 3d8628a19ba75e418329363a074d5992a80446e9791583095c23ed66de5dd41c94db742324edfa2a8807b6e115460e48a30898c1cf94d88edd54e400e448025e44d35e27b89509e4bb5e73b5dcfddd38939180b69ee551aa3eb74cb3b4320127cbd77fd51b28da7c74871e20e5067ac610053fefed9cd4599971e219849142dcae66ce97d13c937f8812d619b6fe0df57abcec358341f82ffe13827fe7e8e26c1030f821cb1d43a8787ee48033f4f11c901adb48e7c85a950b3502fff2f12695df04d55e1c816464a636981de537d1b3e66598759c8b38e1d87b9cf69c752982b6b54f2398f7658ab446c12585975bd3154386accbc9b796abf8a1c4cf6ef291e9cc519bfe2e09084a20a88d1f2243ed8d21d199f983df56d8a176603a9036a44c175f1417b7d34ea95c32993c0cb6a029edd753c10d77944b666f3fbfd743adb9e6b60c06e83cb51ddae3f37e3632e4c2b547580dc1ab3c7c94c6f09226dca4884affa94a0e119dfbbabb42a85a516375f767dedc7d1e0cffbfb44ffbfc7534cf619d1f926b0f61ddf2dbb8921e9b27fdf9cf52776e0b2adb781a5b110849c4600399850bdbb155c2523862f61fa84bfa9362cddac0a49e276c01d31ff4ee6646d914819ed75e7395e04cc741a0d7f61503d940d0ebce7888ded00facab381e912fa737c5d628f820650cb9b867cdf17ff60f145fb2c107203fca793503dc22\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 640\nct = 64d5b5a72e27de69cd016f58fc0f7b1a4608376f0c9c51c7c89ac24487b6a542e414606aac2f00892e8a72307c9167d48d555d3c46f924e95b2f7ea6451fdd6eb7bf14c5543ee45ef6c30d39c9c31d93fc807d9b1ee85405c38a5952d1387e393ca9e357d819470f43cb202dc1275b91d0a5dec0b7b3c547994024200275bbfa9acee80b6adbd742563088bda0f2fb6989e78e2464f0b7a7dc96701792c365f9ad1d8efd0b3842bd407774c4138810bc0c7f5900e50cfa5c24eef43d52be497b7c8094413d543fa3474a04580448d8203661d3ad87e997777c112161af200af2442f591c8bb41f337c1ec11821166cbc3d2f264f27eeb2ebe05f68f610aacd58aab3722eb38ba798e9a9c083dd335be40dd65978cf0a67d0e78a5b9c77034dd7dee2ff87172f98b61899d76b384920570ed063670b5dea2e644e538e7124a4b8c9ba5da4afc1e1196ec194a797bb2c3ff90d8957ae7bb8ebe99b69b90fefcb876752cbeeaf4f921060e8cf420463152b32ca55e39e61cef5ad4ba4b0ee4a2eba2d784b27ded395bf85db2bc85eef5e0cfb8fd0ab3198ba5aea550fdc866b828b3095b2a8d4b71a6e20ee3d572b94cb4f6753ddfbb144b11266a1efac7808931bf3763a4a80d0bbf475e5a3d237eacdc58351c1400d5bcfe9006e6483cb664d0274c5cf12d2a18038b6e5643244e0ff07072e38eec29eab5090946e73b01474c4\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 641\nct = 286d5dd2d8141c8f28ad5834c57b729f39bf5f90a087ee09eba1013208793361cb39d338b4acdad72ef3143f45c6092cd790abddb45d1150abbda9c70f4d42abcdf71648f63172062ea5b64629430b5e3b88021cf5fbb63dcaaded696e3d6ecce60a1346d75a972dc6eb6f50b5ffb7da7a5b7b7f8a5454f9dde9fc21ec497b2223b24e3dd579e3c0518feccecd2b3dd91ed6a26318dea80b1eabd165a87bac00040c29f3335a7e474cd01cb8cf2f1a56e27d5377d17da3ca581e84149852b63868a9de2ba8846142b07d14ced219ee0fc318b826a35f7806fad240685ba4067949a79b9fa3252495f14f49db5b4a31710d4c1d04d8a2f6e7121762cb4873d1d5ddd05c2be9f8c09ce5e22e15342ae22f227d940c8ce9ca62f4fdb080b85a447d2af34acd4e77d126792a69892f63356061221c0c7105dd5e044bdaf073db841f0f25f957cbe259a2474b7cb6421225add558838757ccb028ad426ac1b75029aa08746f9a47df7df604cdefbcf4abfa92e114da11686a6b2fbdc", + "fb9a6bb3e676a7bb288b88a9c9546eaad05a84e1cbfb22503e326c63c15c2c634085d2ad2d5220b9c6a7a51548adf4474145cf3045aff023c27f92c098d77f065ba59a530ff15f1f0cc634432a3b3fcf0c5d5cc58fe071deb4268fbf16917bdec618250dbf4d41efb3d13d0be332848a0512c5e8e6b4a6fd06ab4094550cf69d51e5321627dbd\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 642\nct = 815f21b2970412f0d01a6f7eb209b214b80a944718895712c0b17b86ae408b01d38636b0b10a0d50a761359b770aac9074d0a89a22431f031063d9fbf174a767720807d02dbf70f9c561214c8ea73bdb37b0ddc8ff2e72e744cfe48de0e2188f2c034d6a779434a7e32ff44f5a9016cdca2e8ead252ae8fa7b5137c033013dc1a74b5bdf048bf81ca66a424feb93d2579c63f2aebac51db1535217341b501557c7e034a5276c8279d46e8724cf0c184025f8862c22a64d9142472c098b8974c61b5c8c998f0e9c8eb5525dd520a190768faa9d3fa58ee6d93f2fc775edd368ae734f6b359469f4d3211895f35dcf1610a4a6981cd135709b91f2f7667b7288db3337bd46d6f15c0eb26385078f3943ba1e67df9ef34f7e52630d5a4862dccb0477a3988f25d970ee69cf860eb4b56a85665fc47995befe817a4e3fd2b4f112ef60a52180adee5a11edb9ac1458c1c6ec41e3b9bd40eeb906e206b447b7538be7fc0170915b047c998b8baba8430aeff4ee8c48c763be4a49a8d0b8b7b45a2f0e0403e18aa2bc30e754982d6d1872434fdaf22ba6ab298ebe29a739788e377c51a140e6ba07545e97eb9b2b12454c720653504686225a4c7966a13cf0dcbe8e1a852a2d0b828b9e708c1012ccf401e7ac94c9fa0ab5c4a19f087761b3d1129317571621593629f9459c94b92c62dd5d6827cf1c5187e98a9c20d27c0cf4e4b18a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 643\n# Longest valid message size\nct = 0e617b28ed72162e19b7a80a8b57b9ea9c826d0ac8b230bcf449f027978034e1bdcfd55b89393643d97b082d7c1e7eb4f901241955ead53e18ea50e07d8818d01286e6c7f6a0b1edd82c40a18cd934fe4b117f3711f762dfff24668c511524bedbbf9248590b708c36ab59ea8449c9468ddeb978614c930d7cbc45e01115f5ec5bc8e024e6d4ba38cb8a3c80fa85142de7dda62ec3089c56a3a2a067b09a230890842e6844b20cd1e5143f4d149a99b86c162b3be1d98ea2850f0c336a9a0e1f350e4435b7d0ea8cf479f4c07b3ed800c51ee78cea37c628ad0f8d9d9df93c94a7b40c828927dcb7f53f705f9145bab0191ca8279957674707cc442482754603dce5fe9dcba2b0a545f8a3be70e108e4c7c9ec55f58c43cd654fcb7f0fe85dc2cc02fbeda0171dc5c2344bfd908692aab69fa50fc0d06bc7b9791dd1cd02f23e52fb26c7d017372dcd84f966b49ed939eb92b51d8d25cea6b25ba6593900075f0ca7fe54a43faf9686e35eb42658d2af3c62ec9b68abc449462342c1e1e4f5891d8a2b7b60446da02600bc65e9e48efb38b5ec69103a8447e5df840a266776eeda1864013fb966360ab45ba9410a2721850cd0e2672840c6efcce5d468a35f9bf0ec25046e47d0dfa4ee6241db8ea32125cf8a7ffaa9941e00b49a1cf68928d493fd1a16602dab0db580001bfece99fca4f90aa823717921e836b12ad2827e06\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5", + "bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 644\nct = 0017fdd8d4d7d13d7b7f59dfb2663fc1870cf4e84ba21e57442a4db92bec87c1bb7f673ebd799a2de03d7e350f1473aa3410b3491b3590b8fcced2112ede7bed55bd7a31c39148e80d00220cf2a7088daadf6939fca5dceef4093229a336ad75a947848fae8179cc2ddc2f4bc86b2e6c444afaa2f21cbc36e02c8e53522b9d0306de7032df53f684e544d425c86deb8028cfe80dbf1e0877db89be9fb725360387721bfd1f54158fba744636202c965a9e1caebd599d7f8dadc3029bdd7e711e7f3f9c3f9b21f23b1e742bda0d6bced620eceab15e918511c15dd7bcbbe3f8e56f8c1372e43cc00101efab3320f32d681bd7071b840886e991afc275a20abd5d7542cd4cf6000a3bc05ccf356fb619f0378fb327091f890b89826cbc0613d93f62a30f101deb2a1cb3c59bcd0300d2d78f664cea2d17879c596931680f29329deb4189a3da2fad36c65bea5e69d2299ad5db9320430a9d7d934f8b814279aa4c59470d4627a416742080378352a225c002a35291f64a8d1796a91946161b99e7773f25fcf056f07be195352d58df6b24b40d51634df798b385bef5a447427d02a3dbed7bc4a72cac88d6c7f99cef4b865b34668c5e4672e3c64dcb41fc9ad8002f1a867e7f83f7f2bd1980d8adfc70db242d8ba788dd275271c8b9181aad6ca9c9dec29924de37314d48bb92d8585bc4017803cb7e1b41e52f5fe6b48da0af74\nlabel = \nmsg = \nresult = valid\n\n# tcId = 645\nct = 3299d8465b4b09f26383e5f31e3d887888a7637ebb49228140d7abb47879e376d677433b01df1f2af7d3f4688806804c4824fbdc44f5554f540f0de4e6fe8e1bb7892ba96411c833c4354981caebe8b1de08860c8f0a36a93bf404b7be8211a49365c5a1bdccc3128026f27057c74439998309dddff19e405a1382a88af80c2865aba6cd11ad94a8013367934ee59bb19c01d7d57f94ba6f76d691e595ae0c62c3459e23fb46137091e02c47c8eb13c37c6b2e02ec6b663e5976fa4225dd5be353da9fb475d2e21c86b65aed485bc7ebb2be92b5188a835f1f1adef6a5b0f4df9869b28c36fc7c7084741e28dcad56f5b463caa1232d9ad3432e6cfc067b1eb6662824d17ef5257b89a72c6b7b4ee1c5466d81102a8d9a715abc5cba42c6f730408f3eaf524583142812e9d52ed67571c56bccbe6fdda42a9d1aad69236e8e3efa48bab981c7a02db194171c8b9e85ce1db889d2705a6be80ca9fec92e88de4fbfd5e1d2c5ebec37bc0eb90661e58822b9c473162b22c38660c8e2961d3dca56a45ff2412081d9637da0e39ab39b45dc1d9f6b67a06bdc814df70cce1efe2c755772a6654f2ef7d01a640779621fb4872f08bc5848a70bdbd5b870b8673e277985b92b904a44ea747643582461a2a0ab818d4777090e688ca94fa007e5fddcd4a8b41964dae27ea287671997f92cba5bf57104b41bd4fba14849420387b58247\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 646\nct = 1fb67b4bfa7167ea8224284814f725448c2d7b3c8d904c90c6dc9975d774b8cdef5099919842a7a5946ab4493cac0c821780feacff8de182aaf437ae893323ad0c33db8326d494daa935294927d81359b9738d771f4e0a33d176b318701d6168572282eba0cb82fe905e5818e4605d14bb08bd9e72d0748636260747b7df3c84e540b00e749250dae2454f5de5ca050ef5c1ae787ed044ad82d9209352e0c0d0c115cbc8625a445f15b0467476620a6d6538fbf8fe04d92c9b85632b8b836fa8e8719842432611f57e28d90ae624bc8dcf134d9b5d1a44a46110141e38c7a62e2f606456b7a8af06956e27c678c9b7fbcd8b90f71d9f3b697aca6b9351f08db8805000e39460cf737893587073d55b1054febd69a9bd75cf59616f19dd9b37c99f3d2e2c4b2b0e3cc1e377e26cb937255b754b12425e5a18233138487d47168618edfb30dfd14a8c7c63e93d9a465a3c032ec2b40a2906de051675597374a236142fdbe6e626afa0a0f4217d58143824090b1cf524f739ddff8367b366e9110968d7b7a7cdeb205bdb5d69654a552d51299182d3471ab55e5d505dade303cb2d254e160a0c3ccf01c4e59e836f9d062df2d4b1637a20b6416cbf1a2b7497495891ecb407dadc23135c5eb7770849ce133f47d6d8a1cf498dddcac1236d7f88ad011a597f068f6a66d28bb2b69570bae96df6e3a616bdd1a67622b7727c1bb5e2\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 647\nct = 517f17be5f7869c1bca327e31a610b4f407a342ab91a3b81091eeab0d7b6e5b999932a025b6b46692dfc47a64c78c680f43b69fafa08df239939338eeec0869799e284cdd2dfed0e84dffd197b18518fe72af031921ae1a9324f48b3f7ad2c800c0fa5cccd99bea210d862ebb01b5b9ef2467a14590374d79fddc3defd36415768d46ed6519da741cb7be448354f2b3a8ad8295048fc72d8ab68ea1cb183225c95db40a07fbe6bc17d6ed52a1389e97c717391303dfb59f4df483facd6f5cc12312e50c73556fe0f1e5a88ae94288d9a245e64951ff316dc28d92cd60b4e325613ccc8399eae2714f6178e820220ba4f12ddf420429fcdb5cad752e77e4a50be59f0e2472177eeba2acd8e28f256b1d830b2acf9d3d28ef3b7553467084377cafc89fe1ced8efa7dbc61be52c7b8f44d27075e9a6060a194599474edfcb79abf1e9727d28e94ff14758daa7a97a0a22b9a28bfbfa29ef0ce1b088fba69ed944c90508dd84c7aad11d935a6d0607946138d0f3fa2ed277b255b2f803bc02ac4d479f4d680b86e12c0eca2b54caac1e790ca46d8b74c5191ca34813fffee8b4f98abb684be617bf6970581b36b21abf88ea93bb768b4b32ce384ccdfa45436508aa2f06ded26f9ab55d1fee41077765aea7be5fcfaba871286b146ceb737f488a27d8d0aef6bb25513636196b15d69ca9eb095b7d813e09ac7e83d45e00b99707c\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 648\nct = 87223456a9948331ceff99a03f434657652515066b744308d78da188fcfe7fa8f536fc5a3ec475723ab4afcb3a3d73374c3ed0d7720cab14d36c95855eb56fe159c590c43a6fbfef80ae3d2f5fde9a27d48fd8f89e6b7ae30d95e4d53f9f6119685f957b259b39db767164d7f77d0807c14dc41262194b98dd3400030466f3f87f72638a5dd605f151f8f9ddd590b9d49e58d5b202d001d9400e16062d1b97b7b3d2c8d28e351ddf9cbcc78116784580348230d38c587c9d76340b91db9269b9ad51540f63de9bfc47f56a1ad2a175d3f37bd11460d7e81911047a96208acf89a9a0c99ebba0c08e41f8e0e85f7008e36f35139933a3e4bf5a8a546f4a6cd85b03c7f0f0ac9a5d738ec7422553edbe5eba4b5f2bfc4f913646807cd8e2c81379665b782e01cf7b960df7353de2b9d49e2dbf94213025e51ace674dca9fd94df632d7df45b3f77ed3324b60a63322e9ca85926bc769b6c122906004666a3fdb5d1845186880bf7167f0d933153dfc1d868e01501153a219b3124b4d9a8ece8690816c2204a94e2006cf2b9a715c86142d7aef96a71773e212ba9374f5d07c6e6aa2deefd895cadb502e742b3009f69d56e3a641b1da82743c4d6ed539fe8f985122538e19ce07ff17d826acf20302289e1ad193745fe4e6860dc7b9bb5b2ea7586810a32b99d6e96aadfdad1209d6e6e102d9d453bbb2979b6c891f47cffd4e99\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 649\nct = 57e22ba3164dbd0cb1e739e0a6fae1d37ff40c4473f81e241435dd78676dfc0ef3767bac26138616697c19e8c63b441d7cf991e548597b49481605f451236db60e58460011717ec66145e9b7d9de5a27f3d74ccc25d9a1f0f771e9ec54023dd95ff90d653400a89a866c0a9cff284e69e8e14ef18d7125e15651f0f1ca0177fefd11b2af199d516c8bb1a0c665b308afd8e03e94018b03527eda05b8afed52118b161b628fb05454c4c7dad12d0fa3118bfd29439c6771ec6c577aee7acec871991c1335d4b6c0384018a6c3a426ba810c73e18f135c5f5f2dd27536e989220af7433dfd73f7c5d9b5678c90db854b92dee92766b479949705c236d299370eef3e770951b7e9c08cf0c75c7133437173e1d74d88bd68284c3722ae", + "0629dccf701dbfaa435298562be62d5d549fe92ed3425e951edefc15630813795e338326f0607f41b651125fce512d0772d3cf3ab8978570af6458b205679131624420361e2cefecd80218b3431715bee816acf41b6f8da5eae6d1b6c5a67d77031458d0648a7a1b61102b46ce0874ad7c676d0ad8da5db227787d6cc84c7f6b06e5153810e34151d46d3cf2479c771679e83bfcb05112b6f794edb1a24bf58b705637657e3accaaae525d26f082c1ed020aa8575fc14f8500fcb7c87224a905c924ae1adcc05ac4df121308085cc4dd2ff7f9788150e7c19ca150243eff441ea12fd5d5d3\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 650\nct = 7501cfadd7591bdc2221ea70575879cf7db41c5d4633b37ce6e40dd70f93b5926f570247e3fa2621cc1e5e610ba7d78e15d36ba7389e0d3df2a19308ec69c7de9ec7cf990d071826ed100c46549ccadd0eee8176c23ad9d7d6bcab1244e3f0c38955cfae807f37f5a9eb026cb5bf2246f8ff5130d703fd5c5110892991bb91e796c66ec46134787a563abd71f8ea766f1a14d77a254292e9a443e50f7929b9c4a834ed247be13bbe407fbcbc47e16c991ed0ba8245896101c0d7ebe46704c562db869a71967b400f5555730f6a393c4376209a585c0a16d9b7ffe44b5e86c520ec7f3008a4e7b642b61b9747bd81dd883e57ca0249509e20758cbb2f959a8f50bcec06a00f1e497375bc1d601f95618b3b7a582165d3aaf85a82d6e19524835a4604f84bfeff7ded11cc03cd26b1e319c4ae8d113d2675c5cc09ab32519b8e9a61055cb3fb8b90e4ebf76b4681748e6949ef2b28ce184299305d5adfb13e2757240499f81b5f93e9071edaf205dabe8531a93bad49e7a1d22ce75af35c5c12f38bce0a7295291a968fba5afd3bc7e8f3737c1f98cdb02fd3e30ce8b19d4b881692e944179587ac9a49fa75034f1c8e0489a9c9cff10d6937af915ba9faff35c07fd16699a496220222bf6cb0f6a6c755f5e15cc06bdbb3698e195ba3618bd93b4b61b32fbd90f1b0f3e0a174d9e86a5acf477ea4ad78e8ea5d2374377f508cce\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 651\n# Longest valid message size\nct = 82bcc410b4ca5b7d0660519f8d9c1923e58c10d005c1f6dd124d6c376e3c69826e0c374d9f94f72fa6411178bb9de2116671b075dc5781b4cccbbc774a9be7329e15208fbbfa89fb3a3ab7d0b05b0623c698d661688c461f2c916314ca49d6f9e6fd77b46ec6c528f57ceaff37901987794a9dc2e0d7990404fd074cee66a4780da93d76277fb9e1695801792ccdbef834c7d6c330a1dc3cac82b3cf65dcb3730f04abefd21ca0756042b9d90d1092a5bfe0649352055bd29d3c7f79c6fd5f6eb3a55b75f6b87bb21e3927ee97fa90b496278f6149b85c7feaf46d34d1ac88ea464a3a7a4e680308e088f63884f16a86a5681afa5e11d31f5d4ce7f80f29d0915d3618b450799ccd6fcbaddf4022227932b351b1141aaa0bb0402474ad1e376176975614a07dae91867ef8d7d464f5ef0a06b0f1611498c8cbe9a732cb7e1c213b495235e11d6cd2960217621b93dbfe6439f11e8eaa3c0a9004e4f34dd9e1c9663e7d157f4b9ccbd530d896fc4b000ab0cf44eac63961b768e444f820922396bf8f0b0d4b4da0ad9124dd50e79e906307e85a69dd0328dfc549188776ec48cde510e8bf5997d60190cf1c7e5258423de50d6cabcec14173c8406b11d179a0d435751e4b9fd7c64bd7cffd2ab6e79388b66910fb249fa3c8a2588524db1eb1ee3798cce31e25aa81275994d55a5e33f3006c22d82abfcced2154aaa5e883c0eb\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544", + "d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 652\nct = 48b29ff276452ebcaa7f74bbfefcaa0cbba598beca99a178594baba98b126b2679e7d64876c8fe07e39f1f3fdd5c4f664a1ab314bcb75f1e906643fc4c786d66e90cac12b8c23aef35c4727451cb033d889e2a30eecd2f8d5091a6d52170ac6ce579c9c49701461185196aec6a380e2504833609b359d33a436f2c63bfea9a70e803f06644a0ca725a4c5b9b01cec93c01cbb79f9a17c401728325e17bfc9750dd19cfc127b9dcff8951a78023b9e30ef7ab628084d04f64a4be3b6d7d3da9d0a94d692a4cb275a7f509aac8dd2db4f797a374aa880c2d646d23760c51f3e0c00601b4c05f6e618372edb7d3a6f5cc9a26b5095adbff2134450b1ba238dbb9b3952f4d055f6d486e27e8cf6ff773896a0fc2991fc5ee046f6e81cf948afb12d669cc020b3aa3f14a18cd63830964c9662fcd3860fc461694ab3c6dc4f85fb4fa527f77e944e7c13b94c23fd0fd517a30dc00212d15bb25c00d48a36db8bdbdcc398fd6b1d229c762f7bf6e99d5452f69b91b073d866884a6e34c4608ee1df0733e592e339eedd59554e85be57c0a9689b69fac6e010d35c9c823a37f6f854c5247db77d54fd784ba82ea4e3bf776413376b4bae99c02a0226abef411f1d56ba7da24b72a1a5f74ab9d7431af7fc940d2319ce81dbc51390096d42a3072291ccb44f3db326cffac084c6a73c0b92919d6039e0ddaa9fe8ab1d65aff8b22cec120\nlabel = \nmsg = \nresult = valid\n\n# tcId = 653\nct = 0788a1201bac2e27ee3c704ab8172cd45416bc353eddb23477841fd6e13d87b9926231315d26ccb3694064ed9c52ecf401c9be16f4e70e3d7c4eea6a2b20f32b53e94c9d26d10e60a3fc37983c4f63b46be3c04f66305c4aa23d409c9875ebf238a1d999114c9ce8644e7a93a8caf0cd006be19164508142b36000a3e3a3b8bcd445f9193ce9bc2100b4364d4c88cb5001b8fc6314cc782f469061cfa7cef3c3450121c8de529bb8d41b1cb6975698b138cf9e0460b15f10baf335cb8d680146f801de67dac74b0311059252960d59b734295f33c9f8506b6940698fb0467e746240366a49da355582831cd2d99be95057e9560c95f86931843633119218bfd2f353ffcd64983a5bcd4802acc68a0064f9da51d585c1e38310957db7373b76a3e376846614bc9271d2045fea65a6eec059cc7647c94318166fe53dd19b6e8994caf8fb0ba888f0b9b89071649299f95512c3b459ff6e3b1636c51213108c3140ce88ff377b3f36da31e85c46d5a479ddecc07899a5c175818881ea30d9a5a21b3abbbc1dfdfbd40cd6849c1312c4a89360ecbd5c1fd90c759563b0700a945bdc03a0b7888b893ed8c50149983a7e18668dcf61effd03ac8cd9d730ee55a0adfbfaad873b4b7e1923bf839a5e3df9bc634b15076379de0705150f03897142daac961c8f99a5dcbea953f2e29681546361fefa495afdb116f789ebf9815f271c55\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 654\nct = 3ee1f8fe284d3b84ecaa5f48ce36661a7842cab4f4aac4019e0e7e4506f1baa27539e468877d1e41bee136782ccd335c23640316a24fdd13e9257062fb40f102e0b482a4b589537d0e417f3db7df51c7f8a5094888981132fbc8236b79f2463b969e12c621121e697445cc80f7d0abbb31548e0b732b014b9c40b4481896c47d4d6194346f49fb8ab3c69e3a9e282a5ddab98140a798f4811b1dc4f5903f44cfe029b7038ba28d806bbd42213d5235180f33161efdc80bdd1424fee3e475dcb353f79a1fd23097f20b54afeca8d2123830e9a706bd6d827be20089a464d2df133a631db522dbc7ebddb06125c112644cc41dfc1ba6a924f7b32fc9a315626f6157aa9fdfa9979a73db2f8ee054e534b4f00235daf2fb967189720f8196986697609a45e1586fc6321a2ccaf745bcd99d69135edb45734fcd27698a87b8b3d95f426f63c5addec03201fa33ac224deb25c1cb5e1e32c7c0b895166ae10cc1b9c270a075619364650d78a2119816b17d808d44d2169022cbc5cc64f80b042ef6def97eaccac3a45c497bf2e43d823c1468167d3dc824fce8740e811c21d3e7b2289bf5c09d722edb94bcd7ac47427ce90c944279d898cd7d975d6a200ebd00104238be33bb85730c0edbd41ad4106855567be674a73b325e508483cb897cdc25aa678f0379fe121795cb858527e72c8a62dba7612104dd796d538d4d9ba80277a4\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 655\nct = 0122a411f6c18869d9d071d89fec1f8d91a658d644a5da66453ad0f0fef2d07146e6a96c87dc4bc5e2d5c65cbf493289d4c9dbb3ee79dba765c71d74d8f0f0e9342f39e8621d791c813e004383fa970001c72a859ee9d01ff9920a650cdb08c11e95df70fcd3bff1f21bb4838a9534f815085238a9f860c27ad6e3075ece222d7d035732c4ed6d4d4fbc64d153da106eb58676f527e7867a7c46dd86c0f55451cfd22b07897f84621765215dd8e2814ff9d9a9cbf828d594c16ac10074689ee3472280fbc14c5f723286f2ca0f15f4b91e25559e77c244be757c18ce7743fbd0151419a1317b82407ee16e2a5b970a660706d0b4de8368ea542ea576d1c0dbcf03e07f646b42a78e430a39eaf5e48ead2d6d0cb360dbd6188d364e4a8e2b0094c698adf864724dc7098b4dda564d16edf775060eb7d26c15692878b93af87c3cf79027ebad55a08ff9f04e863d3d56dc9534d48edac17888342ab8c1bb28d8681bfae21bee0139c16ec1f6a60f2fc4927556a56c036a13e27eed7b056d5e92e296a5b7993a83f788ab0f943b56ab2622b732d717b2a6a46ceb5b9361430c8e8cc05dfdb2af949702d03a1a2b438e1612293a05ded6733e95fa17f24a06e573dd722175195e21f1f5a408ad2d72c8cc788de6d7d02da851f64a59bc64fee89eb1ffb06addb5459871a4614d6652374ed29811d3ecbb04a6646dc261e8aac5f109\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 656\nct = 01f290bc344f5b28bbee4f37d113bb1eb5c9ab3a6e735b9ac13ee65aa42a18ac22b51c684a34b969de549af295d48235bc0c46bad9e5ceb6a0ddfabac4dee6cdaffedda65556e951ecca0dcd8d1ab708176c1d665436ee2e3e9810dd2ecc508b232b3345708d3f2acd95727a2a1f8a612da88865c39652c8de64ac37236fbd0bf6aef4519821363e0be2391b7b0279605d193e4ac96caf52fdf1b71807cd37458f28bd4557f8c9b6db47c72b468f8bd643b8176bced97db6657a59c146b78389ee5d7fa3a463cf2d207b0cb68fe760b83a62462b42398ce7109b3d00b991f5ea915501b6c31d1d7a388b14a995f9c415a108542d375015bad8950f0be42f64c09eb54e39fdcea2efe61e2fdcffa740a71ecc94051c073c66e38e47f9f3161bc6b325123fe3c02ecfcd1d4b811569d95f1eebc7135fd7118cdda6bc24546b5d84622b796c289d7cfddf7d0f34705666b9263e6b9b8c070b28b6853c06fad4b8e538de222799b65f4efedd7d7435d3eb6aa30bc3827247374447ac92dcc59825b5b1e7c636f77db09411ca764366bf3db3bf39d1803034cf76cf59202e664f0cc0bfe03e67c83334196efc95d1f57385150212613147d149d4e6f4f994a544abd82f7eca54c8f8bce8bdff122079196014832547d1f50a9123ea130bc93a4c5ac43edcbfc4fa0f2804a31fb2061868f401e98f2b92a0d9cd2e260ac119fa06664b\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 657\nct = 185bdb913b9dee3ba4d6b27a945258beb43ae70909b6f5a2011256c1a743a6e2e14dad48a92ef6cbe1452306c5dbc77266590476febcce9eb6f64ec7e8d0f233749770275271e79c1980a247c0571dabf207b9d9afe8b6c3ad6f6c5b77c83f445cadbd77c043d5428acd6a55f6104c102240bfb9bd9e82d6db53547abc11537188ffce7d688b116527992f2501ae917f7aebbce1c402693c32ec29611afe7b6709667a65a6b38a6029a6ea884a7659353c29f49398de3c16e6d06e33d", + "d186b14e7e04660c7d864954efe5c9157f178b4b9af46f12bf5fb083bbefeab1fc97114d45f08ff8389e93945afdb56a13eb3a86c64a8b33ee46349289cae37cb4f0b9ddbc306464b7574dfcea969398e6d8720125aa72fa7513ce8cf11502444594012024345e3bc716639cc1814ed18d14eee2251d20464a43bd018a9243dfc8e1d122f1d84664bf1d7e2b63236c3991929fe20d44030d17be9990e11cebfd07836e7ba4e7fa960d88cbbd23859135d2e7359a85e99e1fbb8e97ec736bb9ededf2eaa94c3165c46cdb5e289fe4b243e8e25f3969a39b307840990eef3d8b0db5d515e65833fdd59cf83c152e06f9a066623cba2fbbe233541121295566c0f2ac6150fc0efd89e2cdf7b0972a5efb7302b078816279069ad2e89016cc82add02f9aaacbc26af2cb8494d333c6e33f29a9e237df6dfb5c8e5bd8868c3a66a02bce69e9b\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 658\nct = 7aa5fee8dd85b6fc0c75c86d72fe6c742ecb062a036bbd3796af044378669c2162f6f9c9470e1dc8edad8a41de37411b21c865c0d04a2a4a8cbae941258aecc1bc436e96ab7d66aa1b866e9b3018a56366eaefaf92a1af51d5a901900739eecf07f05748b76565e386efcc8a717f39cf0a163dbfd7b1b02d78f96c4688143a80ea589df83c78440f5c53a1a79fa7265f5e1c15cf8348b8b7abbfc1739a9fdc8a30e25c2081b44437935fdcd19682cff42627b223d796d1cd3437fb12aeb990bf5dee03ec6fe8f0634dc0545d0390facc7fea02b5609f0b37e4bc5f2a5e26868ac3042fac5589457b482bf1c144c239e2a96bd80a813e67d36b4e43cb89450289ab3fd7d377cdcaf9b40811ecc5aa3704086dce9a893d1b19d9f957dcfc283d0ff1a4bdd7f3351314bd5e10a22b2a469615feab35e9966e758c5c2742c35d42659533fbf50693dd1efccaf1787de3c7f66b8c0df90754ca851caf2341b9a7004a7eb8e34cf232a6bc0e993db274107d4d734bb996803a4b335e1ce32d0453450a6fa871430827fd49123849993f421084c60880e3b6e4d33771a1bb255535616544cf4c016c416cd8b9b92c3ed61214972e86a901560c1721fef866ea7044a2c89cc2cba85fb25df521daa90680fb52c2a0baeac9d5942c851fbf5f1e88d522e759aa342d15be1b72f9815c0debd081e9881fba247dd6858890fdedc8838e9448\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 659\n# Longest valid message size\nct = 2049694bab04b950f76d997385c150446040ae3373d4f868e852cbc4047ddf2648523a963df01a9a383e8a8a47a6abaf900de879414fe360d8eeb36e805ba2821d64a536c7e9f3c013d72cfef75038007cf546bc418d5e612d2ec9a41d9ff6807f8a2def511b09743b28514ec61139abe25a6087348d66f18b0a80a58f7fd91d019117c3b223057b8229f07d22c3af1f37b92c1c7fe8f27ed23729926bcd1f8470eb84da9b8991ed03ed9420b029eac8fdb6c76142150d1216a9d0622bea7d168c8019cedb9db6b984232a97385fbbba76ee260b8712f805f8e1e6fc966c9edbb4836137cf8519961f2ae1134867928ab4a517f6c4148500492e5a70cdc756df38f55b6b93ab81651e6edbd434cbd7f41245cddfa884b5e6ccae02cd19e1714ac3537966a113ea8cdf31b73ab55935af37a27420a6b0c8aaf225ed93e4250392b67cfe09300596836050ca95f16f1e2913eb3118faae6026571bba1803c0b133c5c39b6d8e9db60470b193760efb1d229ed1b5f867636f890c96dd16e454ff3bf75c54a1ace011d8c5d85a0ea3723bb3461369ceae212f0632b50f0dc0feedacfe701beea123f7c2ce22173a1fca90c2a861769ff9bc7bffc4d04d5e8107dcb4a1a49d9fb5dc3d806a0aefc1622935230a617009831f58adfdd08426ac70c688297b89452581b094a21beafbe33547f68812433b41227b87855b205aac11c970\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d1", + "4a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 660\nct = 3eefaa2866abcf66da876ceaa7dfe8c30a651c138a53a1b6ed8929bb2182eaee4fac3bb6eccb98c5242e1893e4626c53569417d2d82a316d7e5be9957cd701281f985dd6f2664b4dc306e3c34cdf923603a989a4ca7920b7ec12ad63d946a79b19d2226c2dfca94709bd5840a990bb04d5336143d45f82b94b6ef20d24576ce9f56432b2b4b77bdf07a79df1c31fa3188373c345b5b9cce348539ee8015fcc6bd5d10490748753f7936a149270804d86c115d782b5a7c678657aaad29253eba7c507a2f467cd3d64d32acfead8d5e3f778a6c8eb2ded2027338ee1b4aba0023eb5a49215565513f5560d8c86a077e4f694c4885ae42068a690d3a40880f4bc85f409eabed71eac947184517e6ff02e566040ad42fa89183a5c71fb4a105174b831c074919c14bc1dc2edf6cdaff168e3a1d92ab5a95cd70f471adfa686d2bbd55e6c2f18cfe5110a8f303c8bf04e316d6dbbdc0785fa411442b18e3f89e6cbec85ed3873a0d102b0e2c0f383e6121b2a364482e6e8b5394594d1c8e628d065dda6467290d62437e06930d9609407a63c1a017afafa45e22cb6124c650535f96fbc9d174d40490edb2540399dc32791750eee8aa20801192f9e13a95a91063492d5ff705d48c5f9b04c02f77ac746fdd43c126983c6fd11675de00d2e80e9b51cee1737a9b42fb98a78db7fb1653bcd81fe0805374c5bfe60c5c8f1e2f8d7c330\nlabel = \nmsg = \nresult = valid\n\n# tcId = 661\nct = 87e2df3412c092250d606f89ee6d74037cb89f6d4ed93b355c75bd5ffb735e10aba0e21c97312bca27c5dffc8a87a036592f6fda6e098f895960900e4d82198c9bf834357ac4f0853b6e4dcd46f2fb2919b9423780d4bd3d7c2e465d9cf37fbe9ec2b3bde9c2f91754eeafa1f32c42a819ce4d9ee459f0b754042631ffccc74f963c6574656ab75a49e5731e344a9bc13d0185ed5e30ef76a0f3be8b827cf1e6769630a1a79fcfb74355f5961b9caf221fa74a395b247670e17004efbcd0b0bf10cb7deae3e0caaf25bdd9d7921a76c033a52bef484a5d9f0990e7b22b6733faabcfb77b8145ca39e866cbc9d6d26eeac1e180580b4ad08d85983ab67646557401b4a51bc480a718594853cca6bb0b0ec091335dc1be47aa544b54b6bd3a13c81f027c0f402e713d17677a9f1a987e8aabcb80d148c743b051750d6154f08c82765657929083e0442624eebec2de3ae422c83ec9bdca26b6b983ffc3462ec7aea947183d3ec63bcbb1c3963a67df7d2637d25bf2fa7daafc77b1f081483dd24f5f49b844ced5035d24555e888a3a98dfe569109ef8887256cbb41b117a119ca01fcda4411e0d709223fcbe16074c1628396ac7ea2b2a598df75589b8763d6912e9cb83ef7882e519706fb0c8a83bdbab4973c9b9bcec1a181f0101cff35c70b817d471b2bcc930209e1220efcec3aa92f146e4353eb1ad445c5ab2db27664a21\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 662\nct = 8337dbbeade9d564c1cac9a2b264e17be309eb6731be4b34817c67a8fb9f04351861792a5cf7717d30294d619660e81a2d66d0ac01f5f7b8db546428d2c7fe1a09fec5c9f430372fd4bea8da7dd3bb59d2b768e4130c80afeccf6add1ef9957f7e00872e48cc25d5b77854e4387419ab8f37ab08b23812a21aebd563cf3411ccb61122ef4c42ec01a1ab49312e72779e2a0cfde3d11be03c2dff337ededa8291f88efe539a1c59e05ea82812eb460ce592ccbeaebb9ebc09c47bcbda24664c0d13ebe38e5df2a4fa74cd943ab0bcdcf2d16539471e2fb6c6c15aa63c877434cee87f173ec49a39d0f94e6ffcf1ca27f09670cdbae608e098eb8fe0cbfc1f1463ce69c6079430608a24068b6bdefc41b001499040c418cc481b7800f27388a0523cb2adff613c4a1338f580011ed530919a05d16f06e58547f278a44b5c17af92de864a55390aad2aecc64c21835fc0030e43e023761bc0204d0cf3ecf0de767a0d68412c3156aed69015d847e1863d080dc02161a44b804fee2528c92e10daf5e8995dbed3253cea5b4329aea1d93fa852f2a7b3b8c8453b92c9cbff57154d1ae17595a76eb1cd470b9b44dd7869eed66fa585a175cb88927a7993349ea1dbacc3992ca5f6c339b84d121338953826236d7d667ce839cc6ef0a10e188674c57c52b2847467de44d4a760033e237621da4aa34626da2665935e617efd787d46ad\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 663\nct = 60813de2d9fbe37d244269f9148719db91542060963d5bfc8480e6b764f7d8d938922023d6f682f7635179612a6672231000c4f61594cc70c8d6e33ed8bdc73880a384b306be6146deb10c450eff909f24501d75dc641b9a6663dfff391a79d9b568ff24010e389c893a31f9c5bfe0fc43df2d534062676afe49c6b4f5ce1a140ba5e5d54f25e9cecc7fd27cdb16532b239f0f8b64bcd0fb7c7dae23c0eff71d6d457b13f0b7dd873180625f5c07226194aff5ef88f93ab310fd553bf402585cecb6b2006ff69233a7f800470a8acc6d794dc5f83fd1ae5de70e806680bd1aca8786891bb41c05c6ffc3cbb2301aa1ce547fa3eb7e4caf14801e410c0083de2f2268b52ba3082fa2b09261930ea52b03b2c122675d2ff336c3ca904fa89760b870882ed9b43889c718111d425a4dec6a139a55425d754027c24dec34979f4e822d17313805cb34e4b1ca6c2d568580708db36b9dc905bc127a60c516c3a116d792e79e9df95e1a9ad89b3dc7ad10efaea65df4bfa586b34f510ab123c8399ec7f4bcc504a4a4ace088048b537f1b7ca6f7fe92e12f362c88fecd1d52bd94f538e21707a9ef79f64d59086bccd7efdd521de5220b8d96ea1961d8086e51fe5e862d21e6134b686c342174450a43be8ce2afcc1d0babb12de9097e5f7ed958e44283397d68830eae7d2d3b8ec06f80728ffb47fcd3389c048bf8f1dbefb6245d59\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 664\nct = 70e162fb90676162cfa0cb6a0c5f7ede61ad9be38ad7b748773e7fcae6f754f828455eea90af9d9da3a641c0255e284db43e2151772575abb8dfa2418c9b5063e043bcad0a4873b80d355af46de4076e929653b6d4efeb51e2b53de49bb79aec19e4ea66eb40925ff2e68a4191fe44830670dfbeaea7050f85cf8d041a68362149ebb03731a6de40aa6d20293c11e5e3b16cba89f9b00bd10dec215c1df2a40ef371dab52b5afbdbef3223fa2ad72780eb6c43e0e3696c6e4896da9973d662d7d2117efceaacc970618d58557cd624272aed7a051300ecb64b20a22eac0629aec05bd096a14ec5e1e0af98ef9b2fb8151151a277bc87e1c0248e260f7cc4af76816914a1ad9415288717a0031e533feff8564a455663abaa92c78c7d1bc9c7dbe3741e78c7bf841f4c1bb9414689ef8c56490b9815be74d2cf9a144761fa146aa173523623f1b415507653073eebca03251d08c898cde79f69fb6687d5cde30057fd812b91b451a6c9a19089e248944844e804e9df736d533753fda625a8ed1f171607763c45f3fb3ddb2f2b0b19e52d82c0b3bf215f15e1e9a565be36824ed20fe7fe2e98357aa1cb8a0bc858e538e0413a49d92f5b4db1d5eb2ab97e19b3baf4020b9fb3e768fa9b47c5e2b8c5f4c8e95a1c3d86586d1cbd1da08ef3efd373d3fc1b7027021c670bfcee40bb222c9e4de2744e3a075c5df6633a55f0e4ca19\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 665\nct = 47d49367afd7d7d5d863c54842c9e7cbef06da5b6062d23f3ddef0d3cbebf26b8c00652ad943721093a7b62a431a0b0d44692147480b42bc4df254a563df455e32cf531dd1cad95f81017d4151466ec12211ba0c147aa1ef1c3b08bf92bf", + "579322ade8ee3459b7c7485a9841bb146ce162e54c3636553a082852ee520666feb012c2f82e4b52996f9a158d33bdb4876b3b0b75a94bf6327bbc84369ab23e6fccb2fedaa4b796e427885a6ca44358f3023b13d76467fa32aed6657688dc53429bdf72668293876771b837a124cc1e9cb408b3523cde6edbb50ad15109de98a8685b6fc40cb866a95e240f109ba5ac9a73ffff65182a480f7381ca83dce95a6665df1f0b8995a0a763edbc23d407aab3dc7e70440d035d83b90236c564663c5d10b7e0f8547f820ca132e0281e81a3d5e449b87c9cad6cd7f6c4c0cf09194007e483f92e28fc6b429914bf52b6872a4f3f1d30c4b1ebe8a69369dda55abf5dbf4616697401ee6894e210f36a1233b45711ff1d8b8631fd3c3c2def1f98c6d2ce03f58f02c142744dd0f8b098dd13e8df29513d1318d0e3557b07fbcf7525da249eda2d5fec4514ce079618e690d2f897f219d94621d6c8db9eb49c1f455280b4909ceacef93f7db6207a8758d3c6757d7e5ff024bb221e538cddea5de45202d8e16187f7f1ba4cbcd157474ae635f8c23a3a40aeb122ee06ad63d297866951fcb8\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 666\nct = 001c6d7cd7c0bdf5ef44c20be4bb0cfa0b8d45e493805708058f773e130ccf8db1fe2a5195e1261220f60e8d50069930623e63e4b64cc150a27ef12fa3b4a80242c7abebd75175e986d2430e177d9fdaa913411a6abb238db27a6bca29ce052167843e6b3afa709f951f2ad2034999e25648637f36de9e65785e5fda4cc102302ee51c07d41ce9f1147f3d03e66f96b7a7d9cbddd7fa48fe1f58d646e8c5d0fce154ca29a657d69476f95ff87e6e08a717adce36fc1206e37a97f10c7c68dbc1db04e492309dd74979284922be380f0b132c840e199d07bad7875ecce1f13690991d8a02f508fa2802f05b04c3ff4517db41d57b591ae4517073d8394e6a236f11abb445faedae22ddcd4a9ecf57ec8c5d2367f4194c9e52dbcf5537579e3bb9c118924176c396ecfd15a9baf334094a862d60f7f93232a14fbc7032178c929f818d0b6c287ec8f6750e9176fa063d0d01756d68be9d7cedcd1b698151e560695254ac8b73cf998515fd015e3397f88e45d7363ff7318f2b707874ef9991d085e24514a95908583c25ae3e77d37ad3730b5b4ce45251a1b74113eaa280a2a8acb0267e4c66e2b0cd00ecbf08a3a0c52f250a0e79f3ff57291b69c0dc312be6a0f9949137cc4a0b4b0515e60c4eb885bb042983313b5ca06d9785b6730b117a3ebe437f6b6a121a1d8ee19c9053cd0ae75fe4c07bc53f7d0f7e1921f7ed497426\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 667\n# Longest valid message size\nct = 636af47ee23addc54a499139f543bab57f75209731af8269a8435079befc7c173c464a5e3d152f2448882fdca4e97810743afbdb1461fe006716b6a599527a9e935daf02b56b86556b3f1b91bd33e448424b0ae7c845ae243b12ee2783630d232c3457aa6bd5d619670caaa4d9fbf8423766fe3d8ab2a9f798376db425b5c49410f762301f8bddc3ccff10543e9061b64ecf0faa6b9c7b9e3ca77366157bff3da9a4e04b16ef0fb228975506b599b161a785d84f1a4dc5866912454c1325526aa65f8e1e809e0d64463dc403d90b4e3a6b6317e240cd48018d1b1ab8f267019cc8351c59abb42d46c52c3cd7af5e02ddb30aa7465d538a89a7885d5321b47a5d2c0d6ad8c4b706189b5b43f8f52d40b5602765a486e9a4b3bc26508682a2abd74181e89f7d5d0543792adcb182d33f711c71dc6136be53bb28d2b379db2c040e2de8eb145a0d625003d41b7ab3c21e0da9cd9a238953a78a581a9cffd0b4d27f9455689ae20c28e57a98cf97f9d6ff318cee49e8ef35d3c6ba2e326e6e2e9b4f717e9c80780ad841ff56829ac94697359c4181517664f0048d3cc3ebc2c4410ddc0572efff9fb4419353baee3d147905da514542a82a6b48095e74406a8d0400d682709adaa20371cd344698a79f6dfaf97f3e549bf9aa97827bbc5e6fcecbfc4be31c564eac2b189902014ea5484bfb58a19f1729c3f7091d26443a0cbc9722\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f049]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b78", + "4638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 668\nct = 72f9c395b81a4af46f0468258df470bfe7aede2fdfd240fce94d2353328210d17654dbe30314e4924927ad2da94d10938ab584cc46e648264829130668dfa1e3b1d71498928c54e8362a29ca82bb3ad90fa5e0ab1cb89276f390b3798f744a13dec07fff208c752c0f9ab25604ce07f60bfaa02e92d6e197c24935be533f5fc25f4b2d902b3dbbb33306cdce41745ae35f8d0ae2ce2cb69c5bd46d97052135034be4858490c0627748d6f84900b7ca0ef65c00f760dc2309818fe693a9311442e1808b3dd1f5587f1fed37573c986dea9582cf39798416f8e82855de2156f94e558e7e3d7a9ffa2419bde4cd3c301929de13b5d94fecf3a2450f0bd25c9f5d91015bbf9cacbb0abec15842dd0bf3fed164f09d976d771dbb5c475fdff53edfdc640229de9b0361068fe9e3d41e0a49d7f7afa42abb3ecd1f97197ddb6695fe6187ea4f5913f6ef16f56fdce309c6e3a0480697c18e85d8ae24558d4390764d3bb905370e31ec792cc7c30a859d2fd1a730f98d9b36ed27dde6958c3e67d7957f3b789b67c32e67860bdea494bc8a19c6dae84ef06eaaaa769b4ccb3f1775cc19a254f9f26d55a462fbafadb63a037b46aafa8fe0b5717bbeb5a603f033947c39ace683f693cbdf556df91c512a76b550424c3cd00bd2aacc6e4805d0f56efe6b30f677d9ba3708eabaa6dbb7b29802260353d4347e84de2b47c8281cf3c454ab\nlabel = \nmsg = \nresult = valid\n\n# tcId = 669\nct = 1409a80555216564dadc10e60e9116e55909c585a06907874bc22a358dee5c84b1db6a0ad0246e9fb61667ea9db8b53b241d141785994fd0853ef2cc9e8507a78d52467b4b5ae1b2ef74d71a43a28903fb82e4836c1759496a26668d5b794d314d967f971834bc0bd4dc4ef698be86d16b06f1d7d8e4743e0d914e4a26ecabd9c66ff769718e7c3100db55b6203a38ac57a10c681740bcca0f8f6e48ae393291f56244dfa89e2e12837ea59b5e958f1c3cf3fcc136c7a6cb829e3f2e4948c4e0358a2c3e7945c74011a2894fadec2f72041aa3d56b435b43741094a3ee788a38a7d9269d141043e8da77f27d5b3d2e764c8b959c9a0dac70d54baa4430bea29789949b81f4904ab70efe6ec7515968fde05ccf18548b9e3ffe253daa5b89aafa670bb2139321a7f917c7db3076d4311fbdb75b651b2f0dc03551e5cf432fd4cf6fd5919ed2d178fca69b81bab2a9f9938eae7da178367d88fb553837893f9f557f6b5e6456109dfa885f955359e39650ac429f6c3c83837d88ace4492773ac7fa1f8b30e1b4f1adb24e79d0473b3bf911106a9897f8a4483c8d7fec11d17a71cf42def8f5b23a20771e8f9096fc14b577c91fd786889c6bfd3f1003c02c596d5f1bb06d21e5926f5910ac1a3041b2c2d70e2f53657fda11db5c2d8f33ef7f837915e37088a0e927293bb9aa5734ac67a7411b93a289e29a7ec71298d23d99e35\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 670\nct = 288f827b60bb796d21438437f07a596b29535df7564587bb68e9dcdc5ee3c1fc52b764d079789d3aaae5a1dfb0fc62b062e9aaaaaeebea7b4204a8f689b0b8d7fd9e627897551cc1f95aa86988db8cdd291e36207710a9094747c75a745db37ca70d2f033773171f1851671d8991cf67738f37a0ac0394a94fae9d45a67e82438349f64ecffbf21ae8e6b8bd6a7086118e8769ff077cd531fd801eebd21b31f56ed3c0a6be17a84bcd3a2147b3695fdd4bbb4733498526cb015870b5a557c02f5a27bd4d8b6e99b96be04fa0e41b394312a50a57552280541abf326323caea7fa66ce0db8b9915e0cdd24a4fd297d7aad701ba901455d599ab1a10e565588b1aaae48211aae5443d3bf58c9154252909f3ff3cc055287c1f5b6bc6df42dc5f0e1aa3ea4b30a042aa8ed08f95ab198cd36754372d4645a55057872c5455cbf9890b86a49acc811c699fb4b923eae922ed2123d4579db8cf2f010be4365bec70c05d714b2dc2885409287af37227e408bd7bd19edad54095d9afb4d097eedebf61a736044b1ca2116345047b9e91c0d114e2968f55cf4acee5c84e4829c792e6f1e0376f06973a0926ed4803889fa32359c74c91139e7190a9b441191880cf3e37cfbbaea6aaca8b92cdef3b64bf921ad31d3e046192c2269825b250db700ddcbf52afb996c419ea5df2547f7f5b1c0ffd31eaa2fdee7c0fb20f1ec3f033576866\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 671\nct = 6ad87e4e17ee4db21a7ab577baae802271d0e7d6bb52c7d72b70de7a4a219acfb56e8ef0736ced3e0d8b3a81261a158ed9dc66eca9e3ccb50d8101ee63878344bb0c206f1e73a11da0849e9a06ff3dd747b4645ee68b9abd6729dccfa68ebae2710d0541677f2f993ae378f6620466b5b9ed6fbcece8abb0e716113db2110b21d187e25395eed3cf21c22678077c1782d51c323f5464bb8fe894ce5e817bd02790c275f38c3df75d6438a368ad732d6264438c85586aa53b2f11d1efd8e8f5b01fa1eb2fb8fb3cc101ac2948a87ac169523b396d4d7315b83b94a9a4100a246da93b79e4746ee925bd75f494d4395750a884135e4d7083ffd27212b9620abd7d86d123ed63d227fb7f2011e09519f9edf3bef33a0cdb6d917fe0fef63cdf60541f7217c8e6d6b8a1b4452a15bc8e9105603e8e97a2f51acf6f7e1fe69fd6170eb2559b0c4ef58ad853aeb9b3e27aa201348fa1b05520e71e5ad11056103c34a2138340c85ee28bc1b4bb076a5499a997d1c0ea0bc3d9d94594d83b78ef05110a84e0661c29479b2d144cf0aea9d16b2ca81f4c66da583c377a0e6c8debfc4f7c71330edec56a80288ebb5d832b6a2a54748747a680bc159f048cbf89fca103afd7d6aaf9f7b611d00f66f13eb6bbab7b975122abdc3a6f2ff47e34c9c8d6c176cbc367389d5c522ac072e99168eca6740cb41f6d82317a9d57c76e652266e1c4\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 672\nct = 01f60abea9d04c289454ef3f3b66db37c7a6e437291aea09f16563e55e5bdee404f39965f5dc53fc4be78349e52e905fcfec53734d560be9f948c32fa1b699e09469730ba81fe62f9e288403baa62ed56e166e8183a84d7a14a348975c2c3de6751b0945f4dca2c963b240cf52ff2f52dea31f4e51f0f69101160dfb36deb8e81d698ede6972f65f0a5d954b78afc672fe473631a0ba6458c759ca29323bf439cf76ba3bb7e80b18c5175481fb69b1323f05e9d3d8cebb5164a7c20cf32297f12b218cfd774af00827667b5c18afd1a6a14db7bc8811041574642bccec09f7042e991bd1b7f4105045271006b0746fc989c73ab2e29d427bf8e44818b12508ce026146f8a10be9148e7a681be7e32c31f0584b84ed8f849561789f7e2f13dad4694d1bfa1b9ef338845fcea55a8cbd59d3fa73c8f53a9fa278de52166f8278b90c80f5a1499970a22207e75bc291c141c9ef9dc65ce95e8aded9992cffcba4e50b472db98df8a5dd834148e7fcb887630aed8b9faf680764891141032c23910ab01edb234fc7b066c674202507069ed468ba5596d620ee2a1a63cfdb99b56e2e1966a97b23c64b16a13019cbcc2ffd1af817e6b8173794003c373c0f58525e79035f9b6668d63e0f4b4a2ca22224e1684f45ae025fdcf92d3c1200cf308df70ad0d7108a7183e268b21f8c4b15f27251f4d7d97d9ebbaba37fe31ad0a2b8994b\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 673\nct =", + " 03945bd95e6776ffa207c3a0e99be072fadda10f40e9524a5e728870ced8f36d652d9e80c8a9462c2edf6ae3bdaf279eed477b14674c43eeb44643fd4162ed86671a7328e715484912afcadb2e9856d09254c0c1a42dddf9b7163440061141aba8ae960115b61da719cc150766d8b67fac6cf68968c507677cff6359737e0006843f9e57174a29cfa5aed0074bc0760a959429dff9f5e0f4dd9d8f2d18e35a43506edbb58e214519e1366defb07114118bdbaa4a1fac20dafef6c074cba8ce3f4f99a7c657ff775dfb7c5ffd8075f477909664865fd572a4196f6c379c5a106b2c8d3c593dec3a92027d71ffbe85c87d18dcf82369037c3883a91cc3c21000b96bcf5bc18bbff9bf7e781daea563f5f4b8f5de9ca2f1428bb287a6bbbe59dfbb94d032637ea639d6ad8102a754acfcb67bc49452347c52bee4a6926364f8afc2cae408c176c1d61612e407dbb176c7b6d548b905536038744ca3daf41b2fa685d86588fc6bf8a35e66c8738948e99b5533eecc7939d3741628b6c71184827f1aacc1ff27c94fc969b50f6dc95e025b730f16cf324f38ecfcb3fcb5f686c770989921eea9230d9af4b39643bdfd7f4eb1158f59d88458ad5ca4f8698f320299d70ee734dbb18feeb1fc6794488724913005e689813933c5581d47c37696363c040b04f3ee24b4f0f2068eab8ba438c8368687cd5b5e355020d2e79016c2346191\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 674\nct = 1da0140b138c41a2abfa793a2c4542976002def3b47e5a982547cf296025acbd4bc4014c4761c8bd07863366b95a18f35900595b1b6629cacd87f37f9b1d41661e691c050e4c70383446de589bb955ae228cf75e36de69f13bbc586c092bdbbb2c1bf5b88fc0969fffb1bf3b7c301004d95e1a4c6e5d250e2d747dfec5fb5f2bd0cfff90974d88d14877963b54ff39d37ad03ff02200c116bc0ed9ca70a0d4899081b3f7cc935b0e1dd8bd64236f98bf8fccdd6a97398985178915d858660b3baee2729a9b32318fba4f189b3e5cbd1f75cebb95777fc224bfa7474853d3f3196b96622addf81aee6d7c60009abff7e6a96543268a0e6814f5ffb2da0469c9905f559472eecfcd9965ab9e73e7324a65479604b5639e786b8292f3f241aca256e76e72c6fcff32391d35fd5577a4333d2cdd9acec0ba819e668ed7c14cd68af58b3286644fa9c9b41f463e1834071ed1cee3cd4f5563f346dbbc72baaedc3efd03a82f7041fb7a19e3a05a366fee2d0388acd77fac53eb8faea750622ec3476170edb18a70c7ff1e21e0b6c4b3b5f594d628b13c74d7b34b6f2ac97b618556054fec51495a9c6ed2c9cd2f4f039752eaf99017bb87b866eb79a16600af8b2b856f4a84707977de1f22fd9e4b935c589c184540a8447611b05dade585e8cf087bbdcc7cb839797242742c56690d6c0bd3f2b2d9506da9068d1b3938baa9bc9505\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 675\n# Longest valid message size\nct = 2d9e2e0f335d0a934edf49cb7b0bdb6f9537043e2978da6ba35712dad251eb923807120d7572a0511efcf74cd57537e3763106964ea51d8a4e738c6f826cf1426d742c60fcb1995cc13f52e70ef71901d69a27b86a8cca59a053f0b81e7727501a3b4672f476e9272744cf9d4937ae6d0a3ecdc56d9b06de2c705af829fb2d34f1d5bec34152b4320d166e81290974412ba72c42d80dd253d22d2f989317a25389be873bf451ed313673d7e6202ce2e289cba18e5f8810beef42d5e848cb62410400c1dd55af42e4560a0d8069be91e1c041b057327440c1227d3ae6f7579872e9dce78d406487be551690941053bda1acedd04289c86a7d274b3582ff25121f1ec47185d490347a6bc1f310407f4e2f4917e1c16aca53a9287f706a02e8f3750cb61b112b9c808e7643cd4ec1b7b8b9d7502eab1f8b2da0f9a7e938769d7c6aa44ef8669b2529fd81f5a0ccc28eace3919bea63308e1d937e50aec88f876028dfdd50e81c673bd86ca6ac0af0d8e49c070decf1693a5ee0b81c85b5d7c90253afe5faaf6ae4cb7ec00f324d2de7b82305b4cd1aef17c65da50d9b1321fda32257e31895d41d0aa2882e9a395d241a165be114a2fa2e63364c4ffe54cb90362edf3d3a95586ca5f276b82f8921169a156d995603be8ad07fed7164a4196bed02fb92f9b66a06e2d12b86f2bd11522e4bfd39e1d253e80740d0d08db4824d18b4\nlabel = \nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb0011]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[privateKeyPkcs8 = 30820945020100300d06092a864886f70d01010105000482092f3082092b0201000282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001028202010085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad6", + "7b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb00110282010100f8dbab5ac0479b00c69751ffcd0de5e398deb0bf0cf19a659e09b6acc4c569785901b75889e27a6cee8a309708a6d68a51bd93e8b25b86a5c2150b4fff9620974daa6814c3601dce8fdccce1abe6e6737c948fd9b7c8a3d9032a339bc6ee848ee4fa54f513c3575b7a89325f7c97b1beb5b606fe96f2b3293f4ceac194c090134ef930a04882f1e96838c2827d8ea512cf474a4b5640f46ee2580df8b59a6afca4c1e1f9a3ba82232b9db27e9f2b48d5181ec781df795aa87e84ad15e095fe43d46a6edb0d47d62864877692c754c2935478677fe4ce9a4290639d8a448e7e2c393bc5404f14dd37eb66b4b23ffd071d346fd6e59d32f0ae1c1029f656d74f670282010100ea373dcc568d1345b0381de192171c20d8c8c32c5a5bacb84abd72cb96fec492fe4ed35d7a65e5739d859fb99e2b2e43c590c78ecb9c07a40d7793aa78dcb31de236b9735b6f2f09cea70ea921275a812821bcbe3869b8883beb2409334f8e0a96f4528157de3f23318240e65d3dca9a3d43de08345bc2ece4bac68c7a21d29c5acfa230c518c987363c37acd2b6f6cbd69fff99d3a619c6268be013d3a8b96c2817e606863d3d8c123306fe7f6b8dc027daba68a6784bff414b352649bc7769eb9f61c02bb8c7627814484f2799233c81898c679256f10bcabef4684ec84b259df1751a49a153c0e84357ee8cc9e35e9e5616af9b00404e55452b2df08795070282010100c3b4650e6a562594b7987ad8f31671eac9e69f12b0083486a3813a12a67025608a86a9fc4bfb3a91fe09d8ea7dd84eb1da547f442937872d45f32cc14ddb6f67eda10c56ffcacfc60926f84ca4d661f7024b06d18e1190a0f23736fcd3b5f1b33a698f7468855f66c677ac90a137de857efb5686d288acd2cc401e01fc8c6f017042d1b5cb3087342a4d30d2541160c9e90e4463f8c1fe38517234129a2684ea885b1cee288f5d16718f83b6c64fd0e81c1ee080c710f575ba817668d504c03ff1857e06706c4503e10313019d16902a32ecb9603fbd265d2095e667bd405e03434338fd38f3cc80d47421b86850014f3b5494a8603696462635a3fa6112d4130282010100b43f772bbea02b68c2492d95df5c31a585b05ba3d29622c261a292a9e3b68589aa74f76d45390df08015c9ea8bb32793b883c750399a06b75635e44a99611fe7aba3f9ecb13d4bb1fc7bcc6894bf38839563016252ffe9a7ce9513d290ce74bde99675b85ceb09240881f9784fe1b1fe2990055bc30fab5fac57a15d92d05cc93f89f3841ceb0a8d284c077cd55d416975ef04425a03c66a1c582146a0e984699c2168413526042bbc05d12822df9ee376c87a14f7a834b468877c8bcecb600affee54c813ddcc74177d6478a63cd0454c5b92d65264de74f8bf2450f1f06b04b41c92c67c4bcfacf21281a5706c1eb33e9f7a2e02d79aa5ae31e11d25b2f21902820101008d2fd00d16cfa3fdbb3a99581cc4cf3e6e31ed69dcddc62a989530f859acb06ddf0aa8d61020d6f700a7ce71916b409c963e02d96a8ff7ed15f091650913cd0c49903d8d036f3d21914ec934d8080f891be53c45666a813b6f5d8e5f22ac202cc1a0c5131f06e5fb47e0c25a5599a08d285e02a4ed2611fab47efe0b27604bf8717ec11535b02df6920bc87e60d3b172d7d70ebf0482ac59d4f6d34124fcf460165fe06fae276a5dc9c6407e691ccb3fd675430be6be036ca1882eb48aafe0a3be03e0f6f9a35bbec7b1be5452eeb21dea824270d906472a9a1fb386a0acd99d9df4d3cf28ec3a1dbcec0efb27296b0f540efa695828643b95c32d017bfc5275]\n[sha = SHA-384]\n\n# tcId = 676\nct = 16d70235da265f11572b6920c51add3150b5b967a2d2f81f48ad1bf3b1016a8d782549ba423be782975fe8188f0c245cc227142ae8386a908c2fbb362b768ca3d061f2feca562cbc9151e19ab92c9ce882a23af213e3c2bfbf56aeaa012a3d62bbd3b10a3b8bc2db2b0b5cf16ef51e63b443fe754248ba0d08a4fca9ed3c4af3805e35a0ec200dcf7c4f45b5631c80459084f747ca1499593a4f91b65e657ba64a05275dafe7377aac480f455e5fd6850c1bbd0051e4f0edc3657c2b8ee0bc80e520aaaa1a04ed85c248c56e53094f59b1d6f7f8c93d8049752e23b43adae692bbb5cf90ba2406a38b1499bc43c1d0c28333d1e05d0d90f9f9cb9edf46380aa72fca7274c6e5c3f0f7385e843f08121b7f32b39860cee1b2101c66290ac75b06b629175d3e912d4ad61f3a78459ce1c7c2a0d76809857e21f0f533e66d449c7d082b4477ce9de11e24f2df28ec4bb16e3161c99e79c71c263b301e88757dc3b9284ca5ffc0a8bfb36779f5c7ebea3e976526f06348bc42b1bb45d81ea9e1634cb9a37d3a74c18815d43bd98329c1a26ba218f1f40d59dac6875eaa6113c06e33723a4212f88fd29005682991620cdcc6b7facd76d32ad596c67d13140251b8448cf0dd86221b7d9b915f2bd240280e4527eeb3bc06de860d96268c84540571f9d43b419da30a31287c023928525d4d864c48f01ed27512fb05af8cd09db9bec4\nlabel = \nmsg = \nresult = valid\n\n# tcId = 677\nct = 31f8d0897b03b81bdda56c5f65fb3cec2869e9b4c41cb7cd725c245a6d12f400e17230423138c1fe3e0425f2d003674a34cf5725f4bcd39e6827878c554e706e34695b2f06135bc3c7f8c0de7b81eae807437851bc68d065d2c9881b867635ff90da69733a9a9aa5dd11c474c67435f4120674b9d4acdf22ee8fe52efe2f9f3f9ff54bbd92ab91386dc1493b97c40936749dbf28aa599d9c4c144ec0f8d7421e0676f02754019b3ea35cc4b7301a89780ccf4279b4b618f4d21790b185a6683f9c73d843c94bc2cb9e2e07a77e7453e4c3ea78126da80cada3c099f71d35c7d6080c3aa1c9383071913d4fc4600ba15340c1204549bb2d1d984c8daaab089bbb93fdd620c201caa7888d8ca1bd9447ecdb75c576fffb5290262a924ee47edb767a37488c6e3a99daa2652e700da27b0d53793295f69f61004a9c51db6734f31733c850e0e8aa874d2e966ea2be8a0105d6980897725ca4126390238ecf5fcc650ec09e0459c3ae6066b3afefecc109b1846957db831df62dd438f84c37c5bf546abcb88aa36287ef5d2de3a4113e40b9bcf233b53d086d9ae2ccd24757d31716fcfc00f57547f4ff30dfb6f3b7acde46e10e1ba14bfb64d35a99df9c6fe1a3dbc4bfdd0673f33d378ec57847a331f962e6fa1d2d9ae1cf1faae93193b35652055ebc4c6d5d12134e3c9b916d8376b7cb2ade958f967c900adb0e9ec66892c3cf\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 678\nct = 67e1c0b31888198e1a6d2ecc2b9b0cec8a3ee970b964b7a4e747b399a31cfb373996ff3096d42a61f4e7e4954c312eaddd4822c9be5256b6d296f29cf222fdd8345adcc367362458dae9cf34771d107cad8634b1da4018621b6d1a02011bb3af2e9c3309dc0a456bcb9ff56dd72533a59bb9b087b15626e6acac6e41d33eb0a367cff83371bab6666eeaa7c9b6e47879b9ab85f34c2d8bf650da424a267f152240f0acd3ae2641c6ea60ae66d5a038ff4f1cb29bd3812e47987e6edc7ff1117b23cca76a664daab149b2f4c876cb54258411e95993c681de95c7397e41711e2ab74e6514acf81c6fb5beb93b64522606eae18569dc5c7eab91b1d464836ee6f350b8b8ce6cc340cd43879e36c3365efaa760a917a9fe4aaf55b7c56383f72fc5ec93db1c4741fd1510cdd04d7da1dc92a0f0e8d38555e69a28d5125c3140c5ee39a02ff010b8cfc4384da6ad6a939fa1840c17d6bb7aee60e348a59cf6e019bf44971bf143ecc77ca7a717b1e937a2072c79da045a4af190b86db8e8ace8c2ab700131d5d37698a9c60e0abaa124dee5c0488374acfbdb0a6e5534d5f264e604dd51aff8d52e894bbe7b9b7b64707f59e79fab6dd6b0d8133186d8acc5e54fa0578d66b58638f8a41ced9faf1c18f8e98f2e5e5c7f642d1139ead2a3b3f83a035674c41b10756ea86d598387e5bc2ef87b2ef9a4626a53495458a5924d2e3545\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 679\nct = 12313a08571110030b92dbff86e45a6486167ee04157a8d8a7eb1dab83aea8ea98f4b7c154213ede1c28b26ac728b6bc1fdc9de220e107cc42afb9962ccac9391129e4030b10eb68193249ee9db26c8a6df9b8993bbf78903076ce6b5d44ac2a65fcfb84a1d0f118a10c08686b7ce222cc40c3d43efac672f91f2474ada412d2786ad725dd7bcc12b80a5b03bd2bdb6e321a280ffdb3906ed91511f1ba91d78350fa41b700f10fb856a3fa10645a10a06e8333de8ed374b2f70fdc88a03d1fd11dfcefe62715069cfbf1986a0ffb25e8400b2d0a0ef01202ec2b3b3a53407ee38b7583206d17162d1cbb6b8b8b1e4d928d86704a85bad5eca37812c14e5c2ec44b477a9ca1e8f5080ac4e9e2a7f0b5d5f81d8d6c50c3303e5ff93129db13f9cf7d5a76928f0b823e862db17fd5d3192741c8b3497feff48a258d1bdbb6fb2af22165205be953bb5cdd49fda74e22b29bec0bcc64399ace870f5135b56405eeb447b8b9e973e5a989c326c40547784f0e41c61a7649f03058ca47a7eba14149700fd9c43545b20dc1785ea5f6f78b607a0aacca649819095e633d2f179a570dd1cd5208a4f634aacaa9c92b0d044887ee68becc191f384a033712c01dcd7ce3e7292c8fff38f5831da50ad4b12e8e0052c9a4635ab55fa65329ad3397393852c561bf631d109ac7c73be24e363febc900c9d459a5a25d8c0e5e5970d9d6499014\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 680\nct = 62d81bb17b622e1f1af3f76a6c67b7fc23e3766f6dac259699189b3a0d730688e5702249161d3a1fc7767ee46f3163d5f839dd86785248c081a3a59094fbf5eb7f90d65493329e416c365aecdafcece474cbbc2ba237aa683405fd0fddfd6c23cf193dba21b0cfcfd832d284d1e123d722b1bedcab390f50b849d363cce502e7abb0ff9b0ad1e00bd977c4f5f7d8cbdb7c882f87988c2c38a036739b25a6d495432a18341c70c708ddab161daae7f841d22e9d098a26436105507520c16c3ac6e4e2659dbd91408e09d0d742e87d907df92f77144167105edacf8b65b94c861c5817f4d76ad5b74071c55f8a62321e4531b99baaef5dc534dc1ca8d6dd25aa535bdfd36b4900c6270dd2af4b5f8723af71a6a7cbfa30a6090335a1dd49de2b21685122dd081c82a8a74b9491f366956b4e97ce0bfa6604ee664e332edbf37a7d22c72f089279b3b0afaa0eb4d9a31e57b9dde4635b892b5ced78aee5dbe9a85a84a609896661e409080e510fe6b985bcc53e566e3e7bb36db492bc78cc41bb06a492e529661bbb2d3c3d0939c8f43ecc25cc4260498a96c79b415dd50daef0d04b34082c41a9a8faf81ab3ed446b8db401867124307e26b7e4b55d50b9509", + "a3a2b2ac801fbe690213daf2f7c57613fc69975eb0087330ecbc23ffa32e26e9aa167981dd35a5e08d6b0cbf42b6d3fa6cd56ee8abc6ce2a428bb2b65f9c551dc3a\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 681\nct = 9a1ca1958bb15ca4bfab45bbe89b6fb6e82d6aee3132574382f4d86742029c9d8861d81c9111b8d90fda52fcd540d0c6006774580e03675a58550b711a39a4efdf126734bc30754ec9b9197374d299045c0b7fb5edd3bee5d9d7a80b782faec03798658245349ac59314d7b491586ff4bc7f60569181e38cf92b3e25d6d9609e995b58d5c1b2291b0c5768cb59b9fefb2724f10c00f9361cc21c0f929072707485cafb73cedad8d008ecd93362878bf9f7bb9016528fb289a8a218940552ec1d5585928693eb28811241fbb1fc81719ab4e15e52b7917e9be6ba599408fb0abc30cb8cc4a5cf3b08879181610fb912cef7b2f5ecb508721f91f1d7c4789d86f8a98079c00d772bc1d61545e29a744fcdc9230ef7b6a9321e680149915c161fbd87e534b463af718642c4d69a847aa59f501cf74638d797d69d96141736cf9443a6d7f221077ce9739fea0b303779a52ef4121f647dbac165f1fdcf81a5cedbf1f5f6bc0128f81010e9fed2e2a4ce6428f7f6420706ebec77a61d209901b13c19a7478d77d34023652a97d57f4b3dd74d9396887e51f646be946f1d02a3ad476be73765fb1be2197c7aae409f48698860232e6eafc1c8b11627ad8a3cf2b781816cc023a4993c1c7d92f47daad268017c8208306363ef936cf395dde0fd8b83684f6e708f60140ea440a2984e464f268981f1134a60a361f6e97ba96213f56278\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 682\nct = 5d6dba9c231292da8ad369b72f5f5f133fb29f36717eddd6eb7ecff23aa91bbe8fb1adaae958fb2fd7ba7f4f696e89d9ba167a478bc3387fa517b2731b3b9fbfb5c3c24eabfbc35cb20facb5c3fe7375ad88c7be3bc3341851c798c143562afeb184c4fc8a94176b3fb7fb54974926e04634c9f6935d801a3c0379ae3c22da207e4ee961428c44efd173055c4a110821ef7c45baf2b4eadb9b3f6cca7ef9bae907823a1fa544946ec88c85b58c1510d576d133be48d42648785d421181adf1011a6d0b394092888c3e9deec4765fd9613c9e43d74e0248f264b1c5553b69686401132159982646d89a7de509405e525fd9cc47741a9da902b8ee0d33b3270f2872e2c462fea15ddafa334952b92cd6de2a8bdb9c4e56a75d15aaf0cd8efe06b6ff6ee556905481fd51721a639a1379fbe1c5c63ac7cf34d4f8a1c30de056dbbf2b3d7c5d05565ba63a467b22bd5dd0b51ba37e01e15d276d939aafe1d361ef5a283e329da8dec47aa6c1c4ff20431e60ac438dfac058400d91917c8b5c26b3fe89d0a9f2d334e2f3390973488f17f5fa7186cab01a81f83225a7360d5a49b022489170b967e2157d5818a842235b169c35d543f3ba0204b146176a6e4bfd9190eac3ce2139a00d38dc9b73c275af0d2d62628dc53cb4abf9fc6a1832672afdee78e4febfb984f99a9b41025c423b2976f3cf25d7a80dceaeea97baac292a1273\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 683\n# Longest valid message size\nct = 74eac3f1ba5dc4f12ac684fa67a08f03b92bad4f5544cc6785e1f63e674f0408b73d60273cd1da694b24d758eb3761c60bb67016bd3104cb57cf66b9eb02b8011a2e7d534080ea6f45962d7e5fa17a7c2f4d404788f8e9a6c616bb4e4d3e2b0683292c1ad3e92611464eeb54d0eda84b1be39e0015bcc9ada9776cdb4ed6144d3b73ce13d1ac57f37c7196a3deb4585ea726b605a7ceaacef3a5766eb1a6efcd947c7bf61752814ab29574ba318accf79cc4acea3910ad126a77e262fdc080639b49bdc3346b808ba9a55d4394391a0f3e57a24604fe10c18a50028bf59cacb148256b2f3a9abf007c01bdc34d05ed1c2db75e6efa1a291f395e365c4c0de871660abec20a2fd157d4b7ab23dc3e188f8519dcd223a6f9a0b6da31a18f2bb42af0c9581ab8377d51d9c0add8f8d8794d94d48eb9f6af10b8ec857ae1ab62016e59674bca0171d075aec434cc6cdba9f15c8fa063ed43fe6eb7b286e3e4627476998599ccee0c2beae0fb7fe5f519df362f08edc5546ec203f743a143ae694ed5ae4a626d5dfbd102c84d67c70f17feeb4944a9149c3c71a0f38fce13c7ca453343c881939dec66a50449a33d7e2898835365048294aa56a70482d1ccd6f1be3d705c3e405ec54f3883c8d0bc8b620d7939e701f2a20e31705ac6962ccdd578c57d37cc409709203b574776049dadafed648456fd400ae75dd78a5116f48f27c3\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb0011]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[privateKeyPkcs8 = 30820945020100300d06092a864886f70d01010105000482092f3082092b0201000282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001028202010085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af80233", + "36ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb00110282010100f8dbab5ac0479b00c69751ffcd0de5e398deb0bf0cf19a659e09b6acc4c569785901b75889e27a6cee8a309708a6d68a51bd93e8b25b86a5c2150b4fff9620974daa6814c3601dce8fdccce1abe6e6737c948fd9b7c8a3d9032a339bc6ee848ee4fa54f513c3575b7a89325f7c97b1beb5b606fe96f2b3293f4ceac194c090134ef930a04882f1e96838c2827d8ea512cf474a4b5640f46ee2580df8b59a6afca4c1e1f9a3ba82232b9db27e9f2b48d5181ec781df795aa87e84ad15e095fe43d46a6edb0d47d62864877692c754c2935478677fe4ce9a4290639d8a448e7e2c393bc5404f14dd37eb66b4b23ffd071d346fd6e59d32f0ae1c1029f656d74f670282010100ea373dcc568d1345b0381de192171c20d8c8c32c5a5bacb84abd72cb96fec492fe4ed35d7a65e5739d859fb99e2b2e43c590c78ecb9c07a40d7793aa78dcb31de236b9735b6f2f09cea70ea921275a812821bcbe3869b8883beb2409334f8e0a96f4528157de3f23318240e65d3dca9a3d43de08345bc2ece4bac68c7a21d29c5acfa230c518c987363c37acd2b6f6cbd69fff99d3a619c6268be013d3a8b96c2817e606863d3d8c123306fe7f6b8dc027daba68a6784bff414b352649bc7769eb9f61c02bb8c7627814484f2799233c81898c679256f10bcabef4684ec84b259df1751a49a153c0e84357ee8cc9e35e9e5616af9b00404e55452b2df08795070282010100c3b4650e6a562594b7987ad8f31671eac9e69f12b0083486a3813a12a67025608a86a9fc4bfb3a91fe09d8ea7dd84eb1da547f442937872d45f32cc14ddb6f67eda10c56ffcacfc60926f84ca4d661f7024b06d18e1190a0f23736fcd3b5f1b33a698f7468855f66c677ac90a137de857efb5686d288acd2cc401e01fc8c6f017042d1b5cb3087342a4d30d2541160c9e90e4463f8c1fe38517234129a2684ea885b1cee288f5d16718f83b6c64fd0e81c1ee080c710f575ba817668d504c03ff1857e06706c4503e10313019d16902a32ecb9603fbd265d2095e667bd405e03434338fd38f3cc80d47421b86850014f3b5494a8603696462635a3fa6112d4130282010100b43f772bbea02b68c2492d95df5c31a585b05ba3d29622c261a292a9e3b68589aa74f76d45390df08015c9ea8bb32793b883c750399a06b75635e44a99611fe7aba3f9ecb13d4bb1fc7bcc6894bf38839563016252ffe9a7ce9513d290ce74bde99675b85ceb09240881f9784fe1b1fe2990055bc30fab5fac57a15d92d05cc93f89f3841ceb0a8d284c077cd55d416975ef04425a03c66a1c582146a0e984699c2168413526042bbc05d12822df9ee376c87a14f7a834b468877c8bcecb600affee54c813ddcc74177d6478a63cd0454c5b92d65264de74f8bf2450f1f06b04b41c92c67c4bcfacf21281a5706c1eb33e9f7a2e02d79aa5ae31e11d25b2f21902820101008d2fd00d16cfa3fdbb3a99581cc4cf3e6e31ed69dcddc62a989530f859acb06ddf0aa8d61020d6f700a7ce71916b409c963e02d96a8ff7ed15f091650913cd0c49903d8d036f3d21914ec934d8080f891be53c45666a813b6f5d8e5f22ac202cc1a0c5131f06e5fb47e0c25a5599a08d285e02a4ed2611fab47efe0b27604bf8717ec11535b02df6920bc87e60d3b172d7d70ebf0482ac59d4f6d34124fcf460165fe06fae276a5dc9c6407e691ccb3fd675430be6be036ca1882eb48aafe0a3be03e0f6f9a35bbec7b1be5452eeb21dea824270d906472a9a1fb386a0acd99d9df4d3cf28ec3a1dbcec0efb27296b0f540efa695828643b95c32d017bfc5275]\n[sha = SHA-384]\n\n# tcId = 684\nct = 2c23a1107bf550ec14f800d145160869ecbfe56608374076bc9443b826633ed8143e91faf6b9573a7b22dd92b0fdcddeaec49334e2621c141a25a1c99e706a8a8f424648eb226ebb89d3ef26cf19ec1f0393cecb50965162180b38c33bddc3c2de7f7031e3be75700341bc661934d52b812123e23c093f4801622ab624f9ba787a08e812bfdef455c0f3b76c98717985745d72e8a42b47209961c310ca0c71a730b66cdec6fd961576b26db964028681cf9d00faf17fa995fb20718062b45adaf16bf9a7b9719c54d6053343046a60b6a1455022c4ca66db2d4332018c90aef70ea07ad27be55293766e8197c520ba97e17df0b4237d124ebe985fe1c77a9ebb7283d8c866bf8b9caa8c93bf84fccfbe4a8973b391c8909e2b3266fa9ae51e47d251a381010a392a6c98ea4ee7f0d0a51d6c25e4224de757a769638518012b715f3cb0a95adb62aa2dc3f032c8cc798df09aac08dd81691fa9a2952019fd78797d71b6f5f3aa9f10ed6d77f8e2347241d2720d3b7521d069e6656a01f773d2181f711b0fb483f0abb765a410b4abccaf31537d9b6255c35ba451f2a1a8acd23a1f159b2ac0853e5d212b4467b6a70a5a1b901d446a16e24b3ca5c007a63afec09e215594304ed397c2838000daecf76ebd88c2ce4369c5ab101b4bd98c76c74a8e3f6af66f250d39467b09fa78d950ad537de06b5f3e18aaaee0f06d95cf9938\nlabel = \nmsg = \nresult = valid\n\n# tcId = 685\nct = 1af938f2b9309ca2288b712124625005e3c014986f38084c79e95c1b9d64cf4d696be68e78c70a271621285b60ddbede63e83bb43aa525ffca6e58a8f8aa59d283632ec98dfe095a8f808e0a1548d838315560f3acd14d7bb70bd37a6057f4954d1831cbbb2376321f6e1c0c7f12bc5d30ad08a6fb0aa91cdd0769d4b606735c9d62e4ac4367b417042ce222ad511a69777215c7e2886ced7ace9f3ddc577dd285dc8333628756fca61d08683d4238886453dd3dda98ffed0321566b7237791feaa0e2d45031a7cead6a904cb48a70799b9edaced3bceb716a562d718dc47dc10cf8ffe50ce923eb87e5d2fb921d3c1d463fea94af5bfc153310f9e415b55eee2b279abb2faba8a575e7d901aa50b3ca2a54cd364726d5d1cf1d75128da21452bb016705ada6c8cea7824167f6238f3c8d521afad7f51b98b19a1e9d9fb5b72fd9aaba5d68c01b4b3ee031b9e779775a2423d528a6fcd2df388e8c1c40fb376aa9475070e170096df762a231263d12babd083049e7ad8af2d2bda39eaab2a2f0149579b4bf5a5fdc71f5763899d7ec95bf6bc17824005288a21c8ded9515a704e269516f04641c5f05b298205ad2d0ff563906a341958a5942d7bfdb9dd435b19570580252eef2d88d7a34230a477e43c0321eba12807a5e108aa22ace9c0e069b427abcef5b80a37cc13420275af91c65b07c78d60092fa265a5b4c9f91abd5\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 686\nct = 46c30c4443e086ee45bc6e5de367e53aab413e8258fb5cc6bd5fc89cc806d422eda6484c5bfc0eb9d9929edc8611b67cc2a4c633195cfa576faf7b53a3a4b9aff624d10d74ae4842ef29ae2ef286ed55b277a3dce85e387a2875b20b9fdbcb6e5ab73a81cc341a5a011df3da43e4bf091cea809bbe2dc2dcb881ef1741e11907156595f8d973a63489da76939bb415113e75ed3c0d3ac2b495277316d238c87fb8ef7d76eb8904d6d955a5c1783bb7466fc039f37ca4cfa62f064f887d4b94230213e67e1a2da3bef28d9c77953e9da6c262e5beaee7a671b5a3b68bef676dfd79704ce7fd0cfbee507e98c22dd2d3cf1b3a0596d252659941118011d8f48d731d600d84135497eb9f089fe5a8e1d0f13393f12135a5b530c042ad5c0a2c2ccfe5af79af9cee956b7cf1dbde6560505bf7943bf1c5aae284598a85d1a920f07d09fb1eb8ba12b19b8aafc51ae6f1edf14656933c5401fd07f92614632b8b964f3a4d998f6a1c544e497196bdcf05f461ad6250978c0c5ea35fffca654c289e976f4334f5a70508f28b0b6890e81e477e17016c0ef79762cc0b3921635bfb999f782d7c4f1d6fe6130c905511d009d5d06c48bd81bfead3979321e77b9ac35ee3f3736579e73f2a1ece7a52bcf075531c9f3e94e9befaa1266c309030b554de74cc77ace4ea72459d683cadeceb834c84d4b4be67cb966241e733d8444ba60b15\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 687\nct = 6e681d931d155b05370a42287b8d11e464c61860f7894b0aa8fc93cb433edb75fe76700a0b3ca49ecc9295e7ba83091b1d67fa3bdc75a8fea3877ffcc511f7feae5a517fc0effa7821409df074e25748991b59da43187609cf163cf48df9c62125dfb8bff700818712b2e4e879f5a8b41a7d557c025a5f09349d522472a662d4378aaf0a7efc3a76e3d82c66adb5ad3e6f3d0b1b6649ea42a9c71f05850a76b42c08102606d12c705a81d24ef4b896c9a7b010a7282d4c15306bde24807b79d3ee2cd92ca5e890c751f78f2542a0529113ab6aaa9c308bdc359e7dc51f66977f0ec93462217717c67cb61f6ea3e475e3b9731fb316c23e157d12018ed0e0af811b744f14f3d2387e6aa7e73a5152cad8c430d3417d5a0411f5ea5ee006deedd34630121540121a77aa82d8b3ed75191073352996e9fee8a8cdf27df51c6a9766ce411b88f9fcaf922021b850f1838091cde3a057c0f657b639660566d2ce9033179c5fec69450c59e7703e5ccd09691cbb1e9c984770dca61a7db778444ac814cd6ecc8900f97b89512464403eb6826f5467774ba4629d5cfc8bb8847dc0016989c3fd704c784ecc3f43c3d4ec662a85cbd9db4970e7a300422aa6e7fd3bcd49d9a4ac4f3d87683627d8b0f1e80db8aa855f3c8c909c8b28a55d1f7ab12aa6223f1ee90807c2ce3703217ad398c288fca1eb9fbe70cfcd91f036e3898287988b\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 688\nct = d283a74814fd1f73e7bc186e64d14386ece726f8575669a696c0c2d4005dd27db921fbbea58c5e6ed374091a2e8f41a45d807e937c0d22d8c14e3939009acbfcf07746053781bb1fa45b39b98d2849d8d9054c6c0ff3fec7d85ad0e9b8235749c32be5e279c7499d3a694900921beabeff358513e505cd9053362f9b945e1aeea7176705176d9b4afeb0d6145ea30a1496bc019517aebb33ae57cccdd7b8aced4be5c14e840db076b23bd5a57acebf0c84209fd1fce2b3ea85960f443efe337b80bedf19029c5fedfb4b22e31572648058e26653df03937b9fe2461fac749be805aa1c447f16ed92defad3d3f2ddb7834dff07c5abd8ad62becabb2e33ccc55318fd140a12ca9153884e3947ba3539ac0f27920fec712711b8804c351121b0fd91683a6f2c29cccc41eb5aaf334defc72bcedaf34934cc1c10939ec47553ef928839ca9dea5e07f488e00ebb53103ce2f263b09365155efd1165d25868b2868399010d9cfaec627f5f794575cd0e45e5a657e2b0f58b25f083b70a41", + "20f69fac4d0989b67409e50d849199672e3597131d979e691f9846d391b557d2e3a22415f9aa55e0c0123be2284e392cd104fb586544140e32e21dc284a6935d94afc3177df7a0105f09d12f39dbd0908e364729c4e68c994a35e9b91f0eef484449d0494e530908e41c7c21f770601ea67060b0c30d332ead4cafb615d4b1b416c5c3b2\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 689\nct = 1b838e0fdb3595217d0a542c282417786b8ea7e2b615221343ba156f1a17a69657ec3e6e2cdc1a69d838768f73b6af979b2143823bf762e5c049fdcbd7b29b8b8878be5fb6852a56c1272a4c8fc1e5f438dd05b2ee7d37728ed196fd66b66f875cdaa48fc378f9128e54d8ff43d0876d6824075accb8fb75b663dd367aee511a2ec380f1de453185c044f9c9a381c37f430f3873dc577bb19aa94a05a5509137a4b9c0fd34216d58ddf7f4fc5e56e3ceceafcde2b9bd4c1588a16966e250d60150df64317d80e6e111a3030646e8230a3c6aaee46f67dba0a374e8f402d1ab8b2ebb9038f311cb1cbbab75a7ad4793121f899bda162ea969421a41f0860658d9a78f5429be140c6205718cf981adc624fef8358fb79b95c18d3aec4182ee9d2edc9f17b15f99ca0b3bb78f5e14c2a4b754d46153d880e9a7506888db1e3ca9ce2a2e07e781c3df0b592a389c36c3b7f0bad15286dac667ac52d6bd340f821c9e867a4345ba7a2199ef600b788f1fe93974fd80944dec2424ceee645d1fa0a9c9cd354c7e44e29b8b421474d2a4abc839d5be4c110077e54eebbc8735bdbafe3b3402996ac81f6b6ec876072cdb5ed055e7327569422caf82d7c6834e7430565a7c69d6ed2f74a33ffef59aefb45be98915c996dbc73c06f1f034143723a80bc8e03b172e68f8b27d2a167189e516b44a2d5aabdf0bda42a19bf0a06fa3469d20\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 690\nct = 8cb5e3438ef514d388b3448b6d879c9755ab1e36d76ba64c8da5f961a05d965450d5ee31223b81dac1f5c381a2c7c2b517d03868473745e3cdabbaf1240954e1543e629a10266b16b221693f0f04939c07c31633a8e36d4dd382f833446e2a658b66058854f5dcb885ad182beb6198c75b49d7cac929eb196159166eec39e004dbe7f5b854ad2e562c6a2a8b71ad35472c214eb7e52ee2c63b18e6b11ca0711aae0fe06dec7e2a221ee1c4f4d72fd65e5e650bb5506fce912312a3138292812055fc164cc6809b71e667349e4723eefd80520b101e20830bf07aad824edf377dd481ab325c0d04d9c22b0cd9f7605bea8829b19a1cb11556dc633463a33b1617a5e2e8809a096882934d51e6ee592893de815d77d37fb6bd731e4a66fe8d22c2408f93fc0d0760962410bda050408ba82e49d6faf9ee559ff44a809204d39dbc6039984bc170e34595996582a7f77b75452466989e0e55ae2a9a3b4eb838ad1b2b36379544007c0943535f0d496efe6ada92a6d04524160c04994b1e91e909d0475908c154ac642bc289b91ba3fb5a31bfc7904f373656df4d6002b896b105ce7f23f1696d010bbe2be90e2b2eafc5b6bacb4571bc8cb95949b73bf49874b5516bb28f19fe3a94c12e36baf063bdcebc427cddabc27f5dfae8ca7a81c6f02463faf2e15bb2f672fb703cccdd92fcb3c294fb84abad218e4781029005fe6a38ea\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 691\n# Longest valid message size\nct = 85445e1eb86b2bc2b1ad81a569cd50509f9bcc6b37d6986c0bdf5e267d224db1a168a54d83ad59ce0ed759ea2ea7fb75bc9f82814699586a92d3ad42b50031c043ba7d2d47e2a5f0c2a486875625ba8f5005d22bd07918c4058faa47ff10dabe099f882aed9798e38c7d7640c7d9b3f2adbb4e1b939b2cdb13aab4ed5e8e9a1eda5060a78c9b0bf1e903f970016a50a6f67581566d79985cf244bd1fd2532abbe82261eea2c4d6cc70c5aeca7cebb74095e876563f60b452c3a2bd2747858c2843076e68b570b67b7292dae47f0ebdaf0abafbba73763f4b96bedc0fba8c4b8e6c8ef18f3c5396ab7d518abbc128a33b07ca45d8f22e09f9f973e7de301c27752016d03862f2c4f8f8595db161175822649e73e97322f9c425b5376a021a4675a2b3681f6bf554ddaef199063b3604f219bb734f5d20a84360e696f5e6ae7268c29060761360f8d149c2534640e4a0bc9614df3d5499dab48bcbeda69e340507073cb326dab804d1157bf159f3cbf4555abd286cfc9e8c1474c497b544e9e52af45c10fd954f576f4c20ae9bdcb5afbb6fe9c9eac2a8fb62e0d633f48dc5359eeea5c3136d68ba9e4c39af0979dc592e8c0074bfc8f2424f0a75ca50c60044a0e8542acba8f0259cae49bdf55d7892b347b3071af6b92008da70193df983abab857c87e88dee7f934425e74037cd671867dc05a564887e8367a8d88f3e0ade0e\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb0011]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[privateKeyPkcs8 = 30820945020100300d06092a864886f70d01010105000482092f3082092b0201000282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001028202010085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832", + "423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb00110282010100f8dbab5ac0479b00c69751ffcd0de5e398deb0bf0cf19a659e09b6acc4c569785901b75889e27a6cee8a309708a6d68a51bd93e8b25b86a5c2150b4fff9620974daa6814c3601dce8fdccce1abe6e6737c948fd9b7c8a3d9032a339bc6ee848ee4fa54f513c3575b7a89325f7c97b1beb5b606fe96f2b3293f4ceac194c090134ef930a04882f1e96838c2827d8ea512cf474a4b5640f46ee2580df8b59a6afca4c1e1f9a3ba82232b9db27e9f2b48d5181ec781df795aa87e84ad15e095fe43d46a6edb0d47d62864877692c754c2935478677fe4ce9a4290639d8a448e7e2c393bc5404f14dd37eb66b4b23ffd071d346fd6e59d32f0ae1c1029f656d74f670282010100ea373dcc568d1345b0381de192171c20d8c8c32c5a5bacb84abd72cb96fec492fe4ed35d7a65e5739d859fb99e2b2e43c590c78ecb9c07a40d7793aa78dcb31de236b9735b6f2f09cea70ea921275a812821bcbe3869b8883beb2409334f8e0a96f4528157de3f23318240e65d3dca9a3d43de08345bc2ece4bac68c7a21d29c5acfa230c518c987363c37acd2b6f6cbd69fff99d3a619c6268be013d3a8b96c2817e606863d3d8c123306fe7f6b8dc027daba68a6784bff414b352649bc7769eb9f61c02bb8c7627814484f2799233c81898c679256f10bcabef4684ec84b259df1751a49a153c0e84357ee8cc9e35e9e5616af9b00404e55452b2df08795070282010100c3b4650e6a562594b7987ad8f31671eac9e69f12b0083486a3813a12a67025608a86a9fc4bfb3a91fe09d8ea7dd84eb1da547f442937872d45f32cc14ddb6f67eda10c56ffcacfc60926f84ca4d661f7024b06d18e1190a0f23736fcd3b5f1b33a698f7468855f66c677ac90a137de857efb5686d288acd2cc401e01fc8c6f017042d1b5cb3087342a4d30d2541160c9e90e4463f8c1fe38517234129a2684ea885b1cee288f5d16718f83b6c64fd0e81c1ee080c710f575ba817668d504c03ff1857e06706c4503e10313019d16902a32ecb9603fbd265d2095e667bd405e03434338fd38f3cc80d47421b86850014f3b5494a8603696462635a3fa6112d4130282010100b43f772bbea02b68c2492d95df5c31a585b05ba3d29622c261a292a9e3b68589aa74f76d45390df08015c9ea8bb32793b883c750399a06b75635e44a99611fe7aba3f9ecb13d4bb1fc7bcc6894bf38839563016252ffe9a7ce9513d290ce74bde99675b85ceb09240881f9784fe1b1fe2990055bc30fab5fac57a15d92d05cc93f89f3841ceb0a8d284c077cd55d416975ef04425a03c66a1c582146a0e984699c2168413526042bbc05d12822df9ee376c87a14f7a834b468877c8bcecb600affee54c813ddcc74177d6478a63cd0454c5b92d65264de74f8bf2450f1f06b04b41c92c67c4bcfacf21281a5706c1eb33e9f7a2e02d79aa5ae31e11d25b2f21902820101008d2fd00d16cfa3fdbb3a99581cc4cf3e6e31ed69dcddc62a989530f859acb06ddf0aa8d61020d6f700a7ce71916b409c963e02d96a8ff7ed15f091650913cd0c49903d8d036f3d21914ec934d8080f891be53c45666a813b6f5d8e5f22ac202cc1a0c5131f06e5fb47e0c25a5599a08d285e02a4ed2611fab47efe0b27604bf8717ec11535b02df6920bc87e60d3b172d7d70ebf0482ac59d4f6d34124fcf460165fe06fae276a5dc9c6407e691ccb3fd675430be6be036ca1882eb48aafe0a3be03e0f6f9a35bbec7b1be5452eeb21dea824270d906472a9a1fb386a0acd99d9df4d3cf28ec3a1dbcec0efb27296b0f540efa695828643b95c32d017bfc5275]\n[sha = SHA-384]\n\n# tcId = 692\nct = 484969213d45616f13d80417b42082f89e3ae5e04be338b022275b60091b5abed61690e9901ff9ae7f1e2c6a9fae472f24e23b7679bf0eff35f83fbdff821bc5f191f7d1ed16dee4d37d69117ba8b7a641e6463d2ecb1a70c2ec76c50552ac2df7aac7eeda24c50d958770be6c2bd6ffb5cd260a4523fa98fe527b3466afd1ed9f4aa0684704a105860327457e7020502b6e618b9f2de6708025ba32aa149577183fcd2ef9c29fd1b47c10967f4fe0991a8d8a9057373d98ca00b8128d2c7967640b220e0c179baddf9049c78fb429f2c5c36fa196fdf5962f729226fe8a3763248e8c94541bd8b7462cc1aaa15a7fabb77aade1313004dfd0a1c8a323f2ed80abda2d664b8a1ce03cb41c94aa3637ec6326559ef2f33c6186002096c3795896839aae0cde29162818afe730f6acf7e92f5a4005990df531f67530a59a05ba86c6230105dd3b4f2eb772822867c99a8103057460651f18f5e16e7b47b9682032831197cf60663c2c582cf1e05331f69708d46f8e6a86ee6eb413deb898f5ac6ed091075ba39b6dc6f16e41fd5ca503e854235e4ecd198d045677327fa5517dd3a0e8c469f9642ac1090b5bbe84e7f7af481f4616a41b8162ea173c9175e9889c372912a034b9aa620a93c617cdc5e643c2c0623d0eb4be5ff3155778960d0a2a614115ade1e96a713a4afcc31aabd0b270d81f54afa12b50a379b75ace7d34d6\nlabel = \nmsg = \nresult = valid\n\n# tcId = 693\nct = aa1bad5fdc2916d4096924d3d2fb2d003eeb06bf5f819c406b4a0b49f530e181c3b801ba89837724408c6c44aa80441627e912653529645d9a79cb191b1ff82f47bdd346baf2dbe9cbd0e9e4168a86b10f71d407f0f6a6256a7af1dc61cde565f125329cbe8935d46c50e7d1f3254456cea3ffe93674007b03cdebfe9d020aaa29112ecfbe1d5cf0c67457270657e6d55c5e5346c219b913bb6df8d9bac087f6a520ddbb12e4be8899cdf07b495215b859a6d35ea0d740962f0e9fec3264f05f233a6fe453b8d16b610cb232540933f20ac45d8d0db9c322040a5268553772b62e6fd0b7ee9a5ec43586de2fef9b73be045593f26ad233c4de43dcb78938420bff3929c4128485e3201877f423539bbe285bf0d79c10c76ec55521e00997e477593352a016455e5da17007ae2ddf5f47d4c0ce618140f50ebe6e5a06a4ac748bcccb2d9462e66f6c1d57dec8cedb5a02bbc2cd1521704a5420c9ac2b97d7f514cfd1221f0bd4d63a7686a87c62713583f436eb3209d9df8ed414daec24a9574b110a87787bfe1d80c5d960a23d1e4c034041d1dc1da95bd462f63b47997304c2217d942f7e9e912cab1e1caea0036e66ce5b48e67c9e1d9dcba5026c724e3f3ad0589d640b67150f0fb1c085c241423d97e658048efc3dff98b4ae4342b391490a77abcdfcf8c5a1f387d19d099fc1240fd9836b059eb5b81bd2d8e504baa10e\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 694\nct = 0aaeef4a3b0182afbbc1e67b380df5e8c04cdb22a212a76a73201b509d837004581b2368f2b02df80674d45e524ad5593d341f31bfcd058ce8e68d95c0ab7a50b5c6793b6acf997114006e48e450cb43c3b1880e2226b81d747abeb90b4f99fc736e4488d4ba9a55dc792d8bbdcfb12301dc86538437c5f5b9cb4f8e15d6dacded0c1020cfd9f93bb33d883b3389d8841872bbade56b97546f1fa3fa4b67d733a1bfe3c0d413d6fd7ca3fe67c76d8f7509113c9e97a2bf0daf3442c947c6afd0ec8fe20d0449cd459393fc15b785c1aa7ad2a5bb5ca79254b9cdd30ce28a02577b846a13271c9b867edae87981e2d875249517ad348ac5962abd53ee75fd94cfcde6e9282cd30c0f52f78bfc6cbfce5b2bb850b911c5093c417107d1503861e53fd36ec8f9108587deccbfc1e351e216616ae239cec4a45b9d7c0367ab08a227f5d7c23c04f466ae662fa4f19c0c23962502487dbad4afaf2b771f962b6c3639d041f20b9a40cfc21c5451c0de1aafd564072c48bdd51dbd382886c85805c8e926fdaeb23a387de608566c3d0853212d996cbecf70ea50ac6e8ff79a1aba17e85d10d149c4bbcf7d86b2d0bf0a64498979a9dd96cdd4802672875ae0f97b5231a6e509a10744513a86a9e1e6a5a372e91543d09a2250b8c8e3c6b3a67154ca8e38723b67bb74e3c6c2bf021a721022600c5296ce28b4315977d249c39de4373c\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 695\nct = 81eac53e41dc5ba473dba1642b2ad418eda2ceef94c9db28758fbfd539424c463d08d778f1ea610a234dea1bab54cdd7a8e3d1d339ed57858dbd6edd316658b85458f2f9f6579db162002d0e0f1c7a9a132d05ff12f060332d0874889978aa3889662d773f43f374124aaa56d53d395276ed174ca60704889bed526821e2ff4f3f6879d3e20e9068fe6ac04b81efa04f9d5833c5072e672d22d4516f724c0109907c1fc07081133285c046f75f306faa795a4b65dca8fe623bb93f08ec14a6c64d85e2dbe1f1a4a2c5c9de0d1a08ac4511be6efd79ac1067b31d816b9904abc2e26c0b39947fc13bd69bbc0ff50af8138b4990c75eee612a9d9fccc23c9d955c7eeae56e01fcb35fda32b93e94e455bba6d81621a5c473877e76bf8c39617810fb1c568e9a561d3e8cddb42ebdbbefc3d9ae41c2b3777b96c0fcd54fb4a0a6c427d0bd6d81f89a57166cb50c396f2614fd38189c55c4635b83859305190541d630059f8184679638be561e98c5dabe7e195d57311aad7aecf2774da15f5fe75d3f363f5032b4748df7ef0f72b0a2998d6ee8ed3159364932edb8cd57d85aab0df79e695358ab542ec5495bdb553476bafd7c77d691e1ab56d78de7b09b91cadf2170fd95315b9efe1d3f450268c1e192afb00ff7e019127fc2a5acb5a5d894696482bb8a136f8c648f3fb415126e0683ba62c0338118491123b24577ea51ffb2\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 696\nct = 1e0330d5116bbb5685b44d15dc90e6628b09b340a21fc8b7f88253bff925a009a38720dbdffbc9c51e0d05e4dd0a675d5750954b4ff2b6dad0fef554e958dcc567ce30e54d85e7d3d6c1566dadfb33045b7ac9330e87fd891b8aa8ae58f61482f68baca2d07ad810bd1dfc438bf7e09519735a8e1ba7ed8b498d9baeaeb6f546e8c3db108cfa9d34e15a65ef0c9cb0208b968ea3f61d981becb1e730aa20df69eb754b2476bf612c5c349593507d3d28b8fe77fad6e168172f754bacc4b3330ba377e77fce9e1e76ebd313d3a03cabee1252ae6f26dcc8cf5a795d7f82edddf2e24c074eeb695919a6c553792acb63efaabf723e544c136b682ba6cdfb4cf8c436525844165d70d675d49544d3f3d5c6b74de2c9a0c20ffde44e497136c41261cb5c7a14f303dd46e6800d39a110e4540b97fcdbcef0d4285f8", + "bf986c52b26df67723ce02fe1591dcf2ff49a431b52182c9383cb86a52840db8c98e910265cb3a6cc546ab43ab896b536a110a84d2be776be7fa9488f5654b2c5aa65c34c4f751114c4519a33be5d660098b51372d26538347f7e610ac86584596059ef68ce14488a5435626842d062d5023a24830623261d93d6663349bc7e3473b87d7689e0b72205eeaeb978e072c5dab20824bc6f0be647af8e9bb5065d75c7fccbd349be92893614b73b1a1420fd8ae96fb6b5f5da4d51daeac632cde029fae446ec1415\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 697\nct = 37c26f69345604fc3b17076fb4c9fa1f67ea1f7efa4bc2e51fa53838585f6b67fff0c2d8dd1b0019f32aa76883c820d362e623ac71d0365f04f264673a1160d4ca454dea947e772661e64158db964bb6d55943382f9c1fc261e1889b2eb00a42df77dfa7340307610eab1583bf6d05d18bdb8a07f0bf224888f97eb8a4805ec751ea5572d81a7c749ba51b23d57aed1391a83b91b6f14a76c05d69fe82da488bdfa74f628061ac690bdd8364c2a56c8317001addbd1b372016d8488865268392f7135adac620b006ea5f4969936440d70698b182985207633d0a845cf9ac37abcd382e7bd8ba427affa65fd6b56c9f79bb785615726984f2581065f6f3c94fbc11b771b4aa0f35b479a90c6be318e5c11f98528d391c531913ff13b873b643a068248ec3fc85565535dd0f3c3bb9b9227d6c6325ef8d34ca4621c8d9334ec3660811652cf7204ae18f8a9073c552cf6622af483c8350e98bf8b7e1263b18b8940d3cac400a355a033fcd66662a87b5437241ac7555a59fc1c8294376d358f2a0caffbccf563e368677a3c05c06cdf34ea5e052f61260f6d6814cd0fb145c9846ce1a98982a6c737a8c9729bae188879a32ca1d884af68c157c1759e40575303739b6a4440e466beca07cc93253233d212ec8b81c14b51964f9681d3522b794f50dc6896e0d9b1e0a3e0fba284e48c459bc52e7f4974ae361f19103fb2607c71d\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 698\nct = b174fdad5962cd7472c9bcf9cd78c5994dbe7ee676ecac01c830751abe805b30f0ef7f43aae8b9e46977d72ac3482af898dcf77560ff83f2c2a1489bbdc52855dd06ecd6ef069a09f54d28c5feb2bad18ceb3cbc233108a705fe866f568e27ca83b0a148829ac5e78c93c328bbd80745e2af18f1f8c366a2dc030c0d95f155b1f12ab3723c6679524acf85d55640cd727b4fb5eebf535a7f5f90e1a5f6b779ea936edaf1b3ae8ab1fac577bdc5be1a5f20fce7ca90c6c257cd7ad4e0e4707fa46cdb9c52b2e92c57b8a22563a9e0519ccd7209812f66cfee55a3195f78cb169a35f971459116a6d6cf65dc059c167e5cde8e80ade92868cf9e28eff61a72da5313b786646d9da0216ca0b71737708d85fbfd2290a665ac5b3bd7902e57ba1c720704481ccb187a2f8791aaeca88e79c59f897992fed04190f347136c881142781207287e5e2e6bedb0fc8c2d8e74a9874f5254ac884b362698caf4652424e2050a8d9c075bad137ca09c0fadd6c0eaee4ddfed2185f71c9ae55d8ad1bed5eb86d691229eb41d1fae52f970760689fe6dce277affc975aaf67663b702b541e24b6a436eb1e25f00c82bfd00141e90cdc79cb805e4ddcd29ed0c959d40784151043f21ad7b00b44e944e03048dd4c9bc7c056dfa838f66db4b354a0de188f263fecfc1e767b855d8e72fd03837f9f56f5ebae60b655c492096b297b76f8b743427\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 699\n# Longest valid message size\nct = 2069753cf9e5791b91630881c357c1caef25063206b85320668ed81da7e44718391330aee8b71c975ebe4c636213d65e538d64afb02e932a03f480455666e145f237f01e1ad0c35db34e1fdd68a2be55a9f2282f66f9e36d5f0a140cc290c93206db234898a77ceb3332074bbaa98fbef416afc7e71daa7bc2488cdb9897f169ea5eca647588945b0fc9663ba4137ff59a6de27ec9b40430933a03c2ab2783a7df0622156a86d7ee49daf005dda55687f1e570c162def42610b7907887bfdbfe6bcc3f4be7e8a79a6801283d04abccb2b43077527c8504deab2f3d2b99c0bce7b078b8a45b00d6ec806b4ae4bf14a6a996b928c1306b00a679eb967ab0427b0b5ee146689a0644d5d8468942ad1178b30e4bdf367b6d794ee784ef730063f52c72b09b7107ed69e1c1a128b20fd2150d7d93d98abf6722e89a8f2e470af92de959f3a1671cf45e655e50adff21b809253d204ce111a1943ec60cde4fc5beb7a9d03f2d7ffcf37f1f2a1e0671f5d227ad109b5650e2d93e9f34becea713be5568630872fd974ef4fcb64c17d677bbc60eee2c62fd85a7a9c5375435d74ad4c1631fccfd599411a6b3850679625f234a0bfad79fb979f0edfc87a7180fe93c44a0325d43db8f4497e560637de716497ed7f263b98fadc6c400e36eddfea688804e7690b90c92b5cf244ce2a72a175876db3b3adc7709c57476d6572bb4d096372b\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb0011]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[privateKeyPkcs8 = 30820945020100300d06092a864886f70d01010105000482092f3082092b0201000282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001028202010085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251bad", + "dbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb00110282010100f8dbab5ac0479b00c69751ffcd0de5e398deb0bf0cf19a659e09b6acc4c569785901b75889e27a6cee8a309708a6d68a51bd93e8b25b86a5c2150b4fff9620974daa6814c3601dce8fdccce1abe6e6737c948fd9b7c8a3d9032a339bc6ee848ee4fa54f513c3575b7a89325f7c97b1beb5b606fe96f2b3293f4ceac194c090134ef930a04882f1e96838c2827d8ea512cf474a4b5640f46ee2580df8b59a6afca4c1e1f9a3ba82232b9db27e9f2b48d5181ec781df795aa87e84ad15e095fe43d46a6edb0d47d62864877692c754c2935478677fe4ce9a4290639d8a448e7e2c393bc5404f14dd37eb66b4b23ffd071d346fd6e59d32f0ae1c1029f656d74f670282010100ea373dcc568d1345b0381de192171c20d8c8c32c5a5bacb84abd72cb96fec492fe4ed35d7a65e5739d859fb99e2b2e43c590c78ecb9c07a40d7793aa78dcb31de236b9735b6f2f09cea70ea921275a812821bcbe3869b8883beb2409334f8e0a96f4528157de3f23318240e65d3dca9a3d43de08345bc2ece4bac68c7a21d29c5acfa230c518c987363c37acd2b6f6cbd69fff99d3a619c6268be013d3a8b96c2817e606863d3d8c123306fe7f6b8dc027daba68a6784bff414b352649bc7769eb9f61c02bb8c7627814484f2799233c81898c679256f10bcabef4684ec84b259df1751a49a153c0e84357ee8cc9e35e9e5616af9b00404e55452b2df08795070282010100c3b4650e6a562594b7987ad8f31671eac9e69f12b0083486a3813a12a67025608a86a9fc4bfb3a91fe09d8ea7dd84eb1da547f442937872d45f32cc14ddb6f67eda10c56ffcacfc60926f84ca4d661f7024b06d18e1190a0f23736fcd3b5f1b33a698f7468855f66c677ac90a137de857efb5686d288acd2cc401e01fc8c6f017042d1b5cb3087342a4d30d2541160c9e90e4463f8c1fe38517234129a2684ea885b1cee288f5d16718f83b6c64fd0e81c1ee080c710f575ba817668d504c03ff1857e06706c4503e10313019d16902a32ecb9603fbd265d2095e667bd405e03434338fd38f3cc80d47421b86850014f3b5494a8603696462635a3fa6112d4130282010100b43f772bbea02b68c2492d95df5c31a585b05ba3d29622c261a292a9e3b68589aa74f76d45390df08015c9ea8bb32793b883c750399a06b75635e44a99611fe7aba3f9ecb13d4bb1fc7bcc6894bf38839563016252ffe9a7ce9513d290ce74bde99675b85ceb09240881f9784fe1b1fe2990055bc30fab5fac57a15d92d05cc93f89f3841ceb0a8d284c077cd55d416975ef04425a03c66a1c582146a0e984699c2168413526042bbc05d12822df9ee376c87a14f7a834b468877c8bcecb600affee54c813ddcc74177d6478a63cd0454c5b92d65264de74f8bf2450f1f06b04b41c92c67c4bcfacf21281a5706c1eb33e9f7a2e02d79aa5ae31e11d25b2f21902820101008d2fd00d16cfa3fdbb3a99581cc4cf3e6e31ed69dcddc62a989530f859acb06ddf0aa8d61020d6f700a7ce71916b409c963e02d96a8ff7ed15f091650913cd0c49903d8d036f3d21914ec934d8080f891be53c45666a813b6f5d8e5f22ac202cc1a0c5131f06e5fb47e0c25a5599a08d285e02a4ed2611fab47efe0b27604bf8717ec11535b02df6920bc87e60d3b172d7d70ebf0482ac59d4f6d34124fcf460165fe06fae276a5dc9c6407e691ccb3fd675430be6be036ca1882eb48aafe0a3be03e0f6f9a35bbec7b1be5452eeb21dea824270d906472a9a1fb386a0acd99d9df4d3cf28ec3a1dbcec0efb27296b0f540efa695828643b95c32d017bfc5275]\n[sha = SHA-384]\n\n# tcId = 700\nct = 2a7bc91b166dde6c5cd24a2fd7651f4b4a54769f5b5cbe27eda8fac63cc8db3f32f7a49200c4be8faf1db7e5ece0f07bc69148b7770015d58b0debfeaddbbd901e9d1613ba27978ff8f512bee4c6b1125a00163eba21b2592e983df48e8a4cf88be7d03996c6c4900a759fc93962eab345ee1ecb784d8c3c040c5904a38def66ab4091692cf0c544434f1f643f4897f7601f05df215fcb7348fd74696ed359b867c45e94c6d44213721c521f6899783d7f297fd92f09a2e236e0f40b80347d4fc40e21d759b88f4a7a5adf2482071cbf423c99b6bf613c33514f94e1f9057435a4b006bd648684d361c425eb49941f845e0607974e1dfca268271d8a4cee41b2e9cc2da0ac60f21927aa44355fba28a90ece85226ab0f137a22ec0e56bdeae1b9af5082375ee89266fa7a309ac466d7ab3f05aaf662dbda3a9c3127bdca01d2a9387368b89986ef89a5faffab816d96ca31bd847659c1dfab86e7c0aaf890606bfc9d1c37c022b82e9c114548082d620825dc5ca1c5a68bc2f94524d089f839a303417c4a27619b8e71312307218a2389e77cff7d759fda9fd67667713fbcc106c4a1dbb4682f38f4f628c35cd1e5929bceb2798f5e3e725340c21bbf2610c8c6c1c696b930f399bc7ae63541a77e886879bc9cd0244d9093456ab5ad4680ea7dfc6d2917e029c2e1c6ede84762c54a714ba6de55fec6ab508e012621b02ac83\nlabel = \nmsg = \nresult = valid\n\n# tcId = 701\nct = a9210f541963e90542e60ce85ca1e27981ec35d0b51549b9d513796875c67c52d9cbdbe73e5ba4ee01db07c2544b91506951a64201e71b46e583023bd97be4d6a70be877c68362c154c4f484f82b5b67d17950b89ab7ff6cd2e9a09ca0139dfd8fa520eb5f7d56eed3bc9a768128bb21171b6903bdf9a590443a4e9477f54970c9c204a18d0afd54d0a53c931729163c3aa35dcea8c6aa43d54bb5a6a56f5593a2c8f1313f2957a1c818007503a9cc4b900c691fcc0dd829e9e5c1f7a9ded9dfe38b0c4c42b9ad439b3f267acde40121848d933aaff82bf24202622fc1a1674bf6ac83db2fe7a587effc90698d54102a61a065b39249b5a33873be4eef4868109689bc75f6badf939e68aa5472510dd09e97482465ca426d15bc0a4bc1705c595b5d4b6ba861b46b268a8d5763db55f76ba852cb597bed6655d1b4339dcb69ca946f9bb772561f8073cfae047adc206d8810599c3f7ae8f42eafb49946b9c16b34a430a2b0488eeee6251e5c4270c79e0728028aa9103c10462bbc98bfec51244499cf0a7e918d2524c87274948405a0e4feea314a00d743f964dcabfe3b43b39b3c99acf9be4b7fe217c6dc6cdb31cc659e9ea0fdae11e48405c852ee493228f0da3bd1f7cef1cbb5d656c0b1348b870133851efc7903d11519ac0143921bd680113502b0dae718365c05228ab5bd63365c5f15bc8e312886a51f7a910082cf\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 702\nct = 4ce788cf4102d540a3370186206cb787936712429489695a19e50917e8380ab9d5b4d91716e827853c11cc6219c35629e6c7eb0b87a64df4a6f04caa77c59960e3591020bd81abffa8ac613e464fc7a39f0f1b479d66a37faf59bc155a3a9aa777fd2b3bbaeff4d1f666ec2a95c8dff245c09ee44ad64e5e02713939eed5113400ff865d9b7f053e0b7d447c5a5e425da8bd75cfbf188567ac2f312ea602c11f53565ee2ea3e2beb8dfbe72ee6ca7d284282c15bf98cac33673a7fead87572157c97984a1b82c98fddc19d8c04aeed2ae0302b43dbb68de2da0fa1751fa68c293603c9f74223d7588c7f278a94d89ce190776f2fbbf1d43990018f66caef20da6396632293bddbb2491ba6aa54bd31747fd43ca39b9eb5f19120879cd4251aec20e9dcada339fd2327b9f031e81da9cb93bd93542cd8e6abd31f8232a59f878540c9c81d2403355c7b768f74da998aeb5f48619ed2f38baa5c96caff63a061d298f1d29f463937c05fa4630fa4a44e6e9f78089a8c6e88f4094021f93ec4a1d9b37133d04947f8b72daf9c010e61274f56c8518bfe4ea49f6035bf1d8f4ddfd36ad8ae9b7c9c70acb9daa9d0bb3614a240ebc02b7366a06b390888965415c69c53222b6731b985d8218fcc446fbc3e44dcc12663105fddd03e3769cfc1a8b51068dc6b2c9998f8e615112fe43a52f4142aafdb2f27a2fa7c058b73d20b108664\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 703\nct = 0190b10a51c68a408430071dfe2b9507ff5d4bd5d531322faf91b922036faba04c46430fe506e196d4cbe41e6fbcfada658a459d9b8c27a73c48c357b69da3adcd046be3d04d17bd187cf5be8f5d73c8584e0dc088b2173db34021062150d8bc7c1e725ba3d227c83acfb75a97a74c1a0186cc49805fff9b60df2e753a4935c2c0856b679114245ef42e80262818553990d61d91161014c33115bdb24ea727af99633bdeea095b64629898511ae9abee97eb7a0dee6b8161a9f9342fd5906d76012d47afcfd2ebdae998e051f7626bdb7ba9ed53ff449eedcd4a96f5812a53435c47bbaccf18c147b31ae38fe560a233cdf73b473d3f714ba53c8b61a2aaab24e91e0907c4005d2f03eb81ad294de41e036cb15d91b1ff8c21b4bb56ede2a2e8d281dc93cfca1252d8cea9778a674054ceb561028a2f3f6fcbc8df9184dbc995644154fc766f44dfa93df3bf070578a5c11e484eaadf12377b1171b8e48eef879028e35782a07731bdfa752cbb1ea7a23bb902c0b23bd382a86bb3727fb72cd1c10a57bc997b88f5594172d4124ae1136ce6b46bae1f120e175b2712213d66533d33d885978c43a13a54ba76738386dc197b8f2ec88010515cb34f12dec89f21a5a4dcd0d48d4a985ff09c1dc12881868e6f720fa4c3b67f12e8cdcf91c0d036da91a881586f554b3b260f1f79a17b7e1bb93aabe53474103b118088d0251d84\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 704\nct = e1a30401baf79ef0cb1ec6e14e2e6bfa8c189aace0fa8659a2b0cd27e3ddac1135c91c84913cdba455b6a0a786b1ab49b802d3487f76e5a65adc3bdfcdda25b2f1d5b3cd948bb177cdfd75f4c5952d3641df36b96d5f9d58f81f01972edf1006487457fd3ed0eee727b31ebf88575501ddde8f56566723ca7fe0cf11e73f0d69f4ad5a394b1045f5fc6a2b48edea584ff656e8c4fa8dee919e14663d647f412f4407b0c2b74afaebbe01cf8dfce30040149e1c65ce4c4c95afe5f54b90542c660b3f0d8a09d1b33817f61fdc3697d76c6e1d18049b459d460a4e135a7898292f56dd6fdcc1fa37b09317808e423defaf852fe44fced689", + "b56fdbf4f7cf66d50c3a52c0139b54b94903b328af3b2b6522051d5effda342de386ea5eb7ad429c8d4ef39b1d19595bd9cd79af60bfe40801b8aa97e32fa110404d37862247fd51f66e61d4e89ca8b2c3f8e85bf83f55d7e8ceeb16cb71e0d70f5ac770c647de30d6ab0fee173514ca227933336b7e031c5c6ab87796d3f3680341a064e7113e48a5427ef5d885ec171092cc0132d781dd5677043fe1cf95fabdc2bd7f6326d7517961832345dd8ed801c9f8f00eac7320cdf0bf6b605832e1631b657c2f639bfdab927edbe94d4282ca42b8714502c4fe0ac22cc0085b4974999248bbac6d45ce24b729be9e3fffa3a0fdc1569302cce30e1486ff8d4945d64f245f2031a832bed7\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 705\nct = 24c7cb4462674f7632faa0460137099111db01f9bea7970b76b4af94c4889af487b99e711024ed91ed840e0501280bc3dbbf738c7ff5be37702c955de3a50f85af1fb51fa9ba84bd997bae11e90fe8072eba255e608bde72e62ed50525a6f18f4d8feae42d65f78142808d42e7b3f8184e869cf82c6ec63d96aef01930869d8930feab4ef611ca6816cebbeff768337fe825834b2be1397683542dbdb0c67b8bc653a7cc5c88024d35edd525fd988a98913e02e88c61988b5ffe75efb705a53b4998aa4130c5205257c7502a9222c5ff6ebdb41cbe4fd66445700bf770c6366925b5a43d15f21cb9e8a4048d1e90381fb8ad680a01cdf8d3d9f8f3f8c7e66c734af56235a9261eb7bfa1bdd98ad9549c89d4ef7c35b33e47efb6eab49c15fd655bd1f7c57a14864a2647d2199d62a69d4e196b0d303c41371d7deb8eca0472337ff87f35cddbc0b8bb6bf1cf2286e00e9e6f62a7e34b850075ed5d24e01f87ffd31a9db48df28c80ddb6d4f759aa0168b9f7fcf5995a06e6d7d3653e346343bc95873fb93350c410fdcd85cb5dd9136d45a5bd98f9d80650ee3314a7a247e470d603c9b4a381d652f9566c572280bff5a75c560f0958db30d682f5bad165eb769dc4c6f56115bb84b55279b2ad802b72c758c68f37b2d078d18e29bc78920c6bfbe8bf2519a12e74388000dddccf9a0303a1e90fb1f1006ee6bb7efbfab43eab\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 706\nct = 3a6c8a1ed143dd70d2967c2cdfe047def126d8c0317435961ee52dbc168086d5d47bbc709d0947bb719a286124bef9bbe73b8d7342737b954d922341c972fa3a2b5ada0d8bc9daa914d5de29fd1b88ff0737b2b067d488e0bf31f709d139412554476bc32024d49010329badc85fcbf9210eac0cabaaaefb52a3f953168901aa8fbc204fe549f28802d81aed57e56eb2bd9e454ecad0faee374b55a45e60ea5fa47b603d3748b52e8d5c431ac8a93987ad117c8df5b2163a9ddc8dce3d4d9e08855e34bd1d0f5ce56aca5ae702722b56b4ef1778e4625db0a4bd2684a9f93bb0d3eb93f424c2e019888264930792b25968453406dffa077cbeceef4c511ddb5c5ba6a6d95abea8c5bc6025a749abc47e1d59f3e4877b802a0ec06291e25f6302b8696658a4827161152b2fa0e8ab1e101ecf2dea0d130ae6e07eebf77e18c510db6af61fe3164176459e5b96af81c862383004663ce839e855553c94dfceb2a09afd77623ab1ec8931b14612ce483a55f22b660d30fe7f74bc46f2d6ff9ddba837b14b4cb9c3fa98c59d55259fb346aed6823aa3c1df45032efc7bd966764314e5a0239e7c17e63087ff0e43fdc844b274e2e539649b3b8182c19a035d43f9684dd585dc6a30a6d27bccbd7a5fcda12d4bb1112da5346db3204daffa5a1bba5f8bdf4cd2c2cc0bf9e0f8252adfb59304378f16c7ff2890809b7eb3836095e507\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 707\n# Longest valid message size\nct = d070c070d8a276f706c1c1fd7149af6bbe8008ac62bd835c65b3021c8ddcc8ba1faf31bb6122c4b0a309efbb6cc9efbc4ce0af7dac873b76d37a68a195c00ff533082979dc7e99efa09df15b03357cf19233fe141d867e4ac8263180551cb991aa8a5979d30084c2372a067c03db63a1502a833aa533873f7859fe842358a11de0eda937b236acc7721328f833cea019ab356ee6dd39f6953974c0e32817dbde337681fce74eb8328fbb2b49bd13681af1a004412b1134fd433cecd534143adfda0b438346cf8e086bf431949e7a4ba8aa31615caba3195c42f79dd7147dea2d7bd94313f60c4257f5cb7138a7637f1cdc58f0a8eb0a21deda1c111cfa3955ba588540bff3a8e42729a14f99ad9a5343c1dde896387ed4211c39b267b1d9e52752c6545aa6bce7bedab3d1309e82b449e2b53e8b58ca6f7cf2af2134ef3d33830fe3ca44c9d51dcd8cc8fa9311b9118c3ab0f29ce993fd506b033a4fbb1297117a51c4878a21c450f154870672129dcb0684bb43d4fef7b69c93782184a5da09fe0a33ee70776b9374d8603b90712cdb155ee91af0ad0251de62b1ad7a48422bad5835de52e0f1cd4a31231088ea20de4469fe04a5d8b4bca33a93ca5398d6bdbbc85c268ffc5c07da98348a9881c032812715016cb10548e50f9587dcef96f71e271b23fb081cf9bb9a63a4b520a3d7b3868bb3f5c278e28c47ffb71193cf18\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 0085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb0011]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[privateKeyPkcs8 = 30820945020100300d06092a864886f70d01010105000482092f3082092b0201000282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001028202010085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f800", + "5bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb00110282010100f8dbab5ac0479b00c69751ffcd0de5e398deb0bf0cf19a659e09b6acc4c569785901b75889e27a6cee8a309708a6d68a51bd93e8b25b86a5c2150b4fff9620974daa6814c3601dce8fdccce1abe6e6737c948fd9b7c8a3d9032a339bc6ee848ee4fa54f513c3575b7a89325f7c97b1beb5b606fe96f2b3293f4ceac194c090134ef930a04882f1e96838c2827d8ea512cf474a4b5640f46ee2580df8b59a6afca4c1e1f9a3ba82232b9db27e9f2b48d5181ec781df795aa87e84ad15e095fe43d46a6edb0d47d62864877692c754c2935478677fe4ce9a4290639d8a448e7e2c393bc5404f14dd37eb66b4b23ffd071d346fd6e59d32f0ae1c1029f656d74f670282010100ea373dcc568d1345b0381de192171c20d8c8c32c5a5bacb84abd72cb96fec492fe4ed35d7a65e5739d859fb99e2b2e43c590c78ecb9c07a40d7793aa78dcb31de236b9735b6f2f09cea70ea921275a812821bcbe3869b8883beb2409334f8e0a96f4528157de3f23318240e65d3dca9a3d43de08345bc2ece4bac68c7a21d29c5acfa230c518c987363c37acd2b6f6cbd69fff99d3a619c6268be013d3a8b96c2817e606863d3d8c123306fe7f6b8dc027daba68a6784bff414b352649bc7769eb9f61c02bb8c7627814484f2799233c81898c679256f10bcabef4684ec84b259df1751a49a153c0e84357ee8cc9e35e9e5616af9b00404e55452b2df08795070282010100c3b4650e6a562594b7987ad8f31671eac9e69f12b0083486a3813a12a67025608a86a9fc4bfb3a91fe09d8ea7dd84eb1da547f442937872d45f32cc14ddb6f67eda10c56ffcacfc60926f84ca4d661f7024b06d18e1190a0f23736fcd3b5f1b33a698f7468855f66c677ac90a137de857efb5686d288acd2cc401e01fc8c6f017042d1b5cb3087342a4d30d2541160c9e90e4463f8c1fe38517234129a2684ea885b1cee288f5d16718f83b6c64fd0e81c1ee080c710f575ba817668d504c03ff1857e06706c4503e10313019d16902a32ecb9603fbd265d2095e667bd405e03434338fd38f3cc80d47421b86850014f3b5494a8603696462635a3fa6112d4130282010100b43f772bbea02b68c2492d95df5c31a585b05ba3d29622c261a292a9e3b68589aa74f76d45390df08015c9ea8bb32793b883c750399a06b75635e44a99611fe7aba3f9ecb13d4bb1fc7bcc6894bf38839563016252ffe9a7ce9513d290ce74bde99675b85ceb09240881f9784fe1b1fe2990055bc30fab5fac57a15d92d05cc93f89f3841ceb0a8d284c077cd55d416975ef04425a03c66a1c582146a0e984699c2168413526042bbc05d12822df9ee376c87a14f7a834b468877c8bcecb600affee54c813ddcc74177d6478a63cd0454c5b92d65264de74f8bf2450f1f06b04b41c92c67c4bcfacf21281a5706c1eb33e9f7a2e02d79aa5ae31e11d25b2f21902820101008d2fd00d16cfa3fdbb3a99581cc4cf3e6e31ed69dcddc62a989530f859acb06ddf0aa8d61020d6f700a7ce71916b409c963e02d96a8ff7ed15f091650913cd0c49903d8d036f3d21914ec934d8080f891be53c45666a813b6f5d8e5f22ac202cc1a0c5131f06e5fb47e0c25a5599a08d285e02a4ed2611fab47efe0b27604bf8717ec11535b02df6920bc87e60d3b172d7d70ebf0482ac59d4f6d34124fcf460165fe06fae276a5dc9c6407e691ccb3fd675430be6be036ca1882eb48aafe0a3be03e0f6f9a35bbec7b1be5452eeb21dea824270d906472a9a1fb386a0acd99d9df4d3cf28ec3a1dbcec0efb27296b0f540efa695828643b95c32d017bfc5275]\n[sha = SHA-384]\n\n# tcId = 708\nct = b405034cbc37fdaad82d54fc4d1c2d2816bd2c8d5430166db2eb2bc805e65e3843022b0902e8f339c6754e963fb64a3a09b62f62d788958bad29a81144e6ebc6a08bcf12b6ab77782024cdc270bbbb5fd756488dc9f0867c6aa2fc6dbb9710139d9435cd7b8f45f4e4a5f6aa9240d3aef2df4dbd60e76395aca560077a6c19485de28c3d26a05ec9e8dc09db80397bf9bbeb9e6e2334e7539f1842aa4a292149fd2700387c43a04bd139e138b1b9d39cc52a9127508c4e71d15b70ea6ebc7c2918b57ae26c867f1caa5005e23d2487a268288029655c309fb7799be5f69626d7c4e416b77b16dc6ebf8c23273f61ec50c37b5d3d9312891f6933c891d79d282af27fab02a215a50af2ed10f123f1dbe4d09d9c1b3cc5f72f414d076ea9286f2f3e31d6621c71c54c847795407ca1291569d09d0a293b118f011f5bdddee0d4ac81f2ca59f790c6a1cdb531af87dde04eb1bd7b6b4298867bb3b0274841cc133177e1268fd0968ca5348c567f46fe276f14f7fd3f1c7e54103fb4ab4ca93b07775f80e09735cf4d734604cad5cf66274d6193b739e1dfc1599e3b5f70a4fd16c7ab68fc2d24610f39d9c7424275ec9366f54108affc1f3397eec89d589fd46d87931f29a6a5b7b18e14817abc376f54635368dd8a7a72137f83a94855d26a25369b0652517d0ce748528beadd63f83b915be8efc5ce6f89ba244281e2c4ba9d3f\nlabel = \nmsg = \nresult = valid\n\n# tcId = 709\nct = 79530fb91d7c37ba01014c33c22cbe7b4f72077129697a4340f1619614f7a400712e21ef55f60c82ad8258933bb51a22be004613382744273179ba9fddc8ee607c56a2db4cc76cd9ae844e4ad8d34997e5e7c4ce17f89ae730b8bba0f07358b6c3957443d97e8b20808c4dc34629db02120b4181272936e66fe6eec889fe88f50bb815c672646d62cf60059912995ebe3a054d73227a40b0cbc90bf49076d02f793c2c27c753c0c963b0ff20dca1a58164d2c2e5d46450a7b48901b5f8585399c6ed5a1af893154344064102d10a412bd178a32eb5d8bb7209acf86a98cc0c2035f6d4f047286a470d6d8f632ff94a25dfa946a27d60bcd0a1e330af664c632c3a2f0cfdbfdda725d11a5d82bdb52c1f858c3be4774848c65bf0eca3f95c6fc5ba957903a2c93675882543269a2832906a4aa83acf6574917dfcbaa805adbc5a11452490656c29df8c4afc65009327cd2d5b09233e44429704199374a0c970b660185d67d1a31aee892a6a432a81c4c22cfffee1deaca3aa62ffa7bca2ed7e8e94dada6148ba1a6520475d46d501527328baf6b5f756192b1c0771e2a58d5edd45e725396b7173d7a69e3a445fea1297703e5cf361c595577f6ae92e332f33f8ace7c1c3a4e9d2cb328759caa5cecba4d59539eea7a811728b1a454d0d1dc70f6ff36e63a287e4a025451a942b919da68a0b16344c09bd7e2c13b4248fd30f87\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 710\nct = 0df3dc76611dcd964aafc7d4c7f9741d5a60c93332670cac0923912d6b0d27c74020115d5355858560983edc550a739319d1c654fe58bb5ac82cdf4759f756813fc42ee0fe300dbadc9a5fdc8823a7b210e1d9d6b0701816a281e9c2382641a903144cc1d50394c48c411b282abb4a7fd4d44f69f85224c1e7532ed6dde4f92563a417e419c8d4fc250fe252e3d9b1502bf4e1311bd8a430fd296b6c2bf2eacf630e9f3e4d887f728f7654feff083a75a0eb3f9a97af652bd346aba06d33d9fe384229f2a7cedbca55eee637141abf5ef475a42c26e5a4c60464784c68a00f88f47ca3e6507a1178ce2450ad8890e028e3ab34a8f19729a7ede5b762ea1dc32219d7affadccb488a761878405b0f852338a797c2150c8842ac9f5221c18931f596e6373dd4128996b7a2e9e32187fae440e17cab2e9e7af10b1dda14eb35c35d6a19d7401732fe6f3270c12c29eecfc61d07c79516c923c9290380bd97fbb4707c1192729cade1d8a6e614de0f7579339e5e8022afd95cd33608988246e4ccbd4acce9d03a7b36c638ea4cb99e0312968439ccecb58f8ca0b4c6838692ec7ffacafc10680a2149ab0eb587aed5ca073fd92fec57228f185f2fab25541256d624d0510583015976a565d05058e4cb17e2179a52d65ba4871c566146a95eafd2866fbf8abf131b25923aab2f8902d809a2249a13e8b8dd8ae18bc446280a167cf8\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 711\nct = ca234bd3d956195d5a4d7ac774b2262ca95773eafe46c590f6261d92f36ddd7b02bfb440e56a58af77b82812e086f8fefafa752d7dfebe0fd213ced2ae880b5c5b7dbe3778b1bb114b1620e1bc1a02d32e1dc6811ee605454781b91a5a60dba4c20576ef31d5851623ca58e829b61ab240a82e39880b50d1982eb3e7a5656d688507eed4f8085def819f60682e4ad842b72b96a05b5a897f8bc536b2b70f28ba0c288012af3a6c566a3f3c5966d858abe89ebc661f2ca20892e0dd2dd9f568103ca45291b0bd9f3867c48287d8bb336a9dbbf8b21b7e0fc2a3da44843ffe806c3816b66d86b299cb52c22eeec8611bc3928c74190cd9e3c7dafc1821019def2e21f79264efe4ff83a5a6224804ddcc4fb2673ce7c61b49741cc9db718cf14bf7fa91c77db3235bcf6d74962b3746bb4356a6f14ef85b0d775c93065b996ce6d3a2b330dee7d586a132a239ff3d482a5cf5e0f83bbd02b7f00121e83554bc74ef0513880d004ba731ca9b68216fbd44385be83da022d343ff2c3a3498cb1997a023ef0be10173a9603d509378781b5407f2e69bf4d1d52af738c09785a06c2563bda675d6a27181a8e56456e6d6c968fd6e3c3003c456a4ce3e2313aca769ec55b20dd30ef0779a0177d4617796ab932969945393a4d1b35f841d5ed9c1e5a913cdb20c5ceb96695d20be5539e2075008b44ba2b7f73a9deadb6469369c490637\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 712\nct = c529ba83c985c649ed185c4f6c49a6aaf638564f59826551848392c06275d3ca28e11f358eb184c12537453ec2ce1ef1820d9ace005a6d1cd3f96c0b561f060ffb166e147a5a51eb329dd14bf792df46202d2f2fb0787d3d67b8bfceba93be81edf1dd4f8fb4b769115f4a77820c744983de8cef880522832dc8a44d20f3dfa62f5da766672eab781096b0a6adb5337ab8efab09f3ee3f0af3765caab9d0ed37de7cd5027459d44b6d894c432b16fd8515ac2dcd2", + "24ac45524e6d4d147c53233cc4dbbf4fef4f69390e9318c675e19297df4c139012dbe10489f5b1f90be395ca0467892b6942301fe6648881aaa091201d98622f86b4afe08ec3328cdbe15a56bdf2f50838af9eea306055d8d8c9cbaf7f221ce654595104eb7a216b3140d7849c7d473e225c2a6d0765fff5ed53b694edbe3afd2198d445e1471e29bf50fc17a4db8a9a3ae7dc05d3403654c178de985e99c281eb470a8e989c519c69d156cbe2db71b23af14cab7c196ecadda8a980595e62e935af3dc18f3b997794be4a84590f0c358546b65cc6c0a3e4cf840a841eb2abbc770dc3d672d849bc77ed7e12bd42534b43258474f1241c492ca20596fcd933cad7178a217e353bf970f6c887509e21daaf2c9c9388103220b8a448aa840a0441b76f37b93ede9a634caed7b3ca6347acc25059602a599eaed8a9070114952ead3d6fe78126fd0ffb6e854cb\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 713\nct = 2173712a28008a03923713cfac30f25040b17b28f6608d10df2b8a47e56b0f9fdceeef6b18a39a036e06f54e105d147f01b88fd9553c87cfa5be3b0b598600753138a3a35d0cf637a2b3a8c6e8892ec4b467257ccb41d8a63faca8d0dc03d8e3d9e63466708e4d28bbed992f3defa6d46d68f23000f218c2ac44ec9c42998ff93308fccd26481d0e6de7dc48900e2c125895659b5537d7f8e5e9c16d87f6b14cb7c99d0fbdf454b56b8d4ecad11b9473b1d98adf3aac4c76f3dc3727601d9da6f9ce337f662545e4b2eee9e7acce83506a5c0959f0c76ab3a0c8b7b00c016489c9a426b0a410db5176b374cadfd5f9a51b9446ad089dd89fd7eebf4426bc6c357bd724a084b8f1594c3df0bb8a5635f72dc4dc3e89c95ec700c170ad7b94caf3ac4c40dab07eab67e7ef72680a73afcfe36d3acfd141dee01c31f51b7ee50fd16b185ccc95a646ce24202b482f517c33630c125bfb1e1eba109117944a7cc350a1d6641279a04cb73ff0d10bf2deaa6be8fd4f7197fdefee5823843d71ed6a8b083ad6cace38a3a874415a72487bd87598591cd39e6acd2e096f433c1a1223a44107b80486ca85b9491946b76fef3c9f31dad1f4b06a0e24fa49ae694392afd79f1947543998f8e3306c9b17e3080c734b9f19aa94c55b57a69fd0c36e38b654c90483bb07a572a44f8f84637125d1cba400b3f295e6b187388783ea0392a61b\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 714\nct = 692a6aa7f7339a265d02cf7210c9d1a0c2bc78ea7baf95b2d6916eebeefa422c267cbc8e296b6b80316641d854800cf3ee1f1079753e8787488f949b80740f8da018bb8847140c7bd66e125a7fb9496cb0f7eb22680462da15d6246c228667118165780de3d9bd0080871eba65bb06183cccc4b5c491d6a294e37be9afe236f22b6efc9547874af62d0a356b72c9d6ead57062d1d9e023fdb996fb8cb238bac94bccf9f58f049a070e763f1d6d7169cc66d4088d20569ab9717b78ccb3d6d40c7ed5c6e48956d1709804a3625b8f32a84f8c17e3eb14aa4ab83b71fa3721a602036a5398e13918149d6163b07cb20556fd76b84f20f54dd9b2573f69e7b1328d96f6bf05368a1f813e647e52c396916ffe128efafd99cd57f7b2d572591ab5978e60ce8913b2b71fd5a06e4e2ab27f6dfde14a7fdb42e8986c88859704e198991cb468bdf071442ce1cf19da73a8c0e4d2b270bded9e19c5a25f4d84552f831dc65fb60d6fada5ff2beb044d326e6b2432a5a44ac8a39b5ecf532aee4be98067aca5e486eb2b76f862d27aa4eeb19660ecd53d7e1fc3742b79ce8cb8f48c845e81ca809de2b6b7595b510f6981c38df751bcc7b3a92fa05e33867dd634bacc56eb7288e5477be5bb8fa5bc14c40049eaa879b57a1891de15b60fee33005c6c637ba40ff6ed5faed042941512491df3b0fd8bd83f4726132c2b65c71dfd5411ce\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 715\n# Longest valid message size\nct = 355fdbae11acf86e58c39dc660dbf22c9d43c99667265dd0b950b8c36163d1e4e0c729ec0589760832fb62cf7c4af9aff27d0604db16a4d5f631d0fb57b8499def6b5092cd49b2fa9ae851319bcd1783a1955f04ea4fbee4b98e4f5f571fa037d67d90bade3ca69fa5330884c48f98d67b22483f235c616ccb112c92e26f6882130423342c51d52f392a097a0dd376a6a6c2b4a42571d449b5440e6dc9a3e95cb01b64fb67146d6c49fd9241cdebec889253371a43edcc7bc7040517d3a85183ecc5e4509f4208e01549cdefefbe915ed310833eab26c2c896d0b48d21b930469834fcc69b58dd7f8b20c880446fff5c24a88151e979224091ffdd04b949280eca905aeb44c2712653fdf52de8502f78ec60e8ff8de9bf9191b968f890aa7ce89693e90327e3352151a29f0c913db781a28e10b8cf7335605714058ee34003d8d27b68a3bb57b869b2fab1b1396c97c1eaeac856b2b03b7cf2204fe2f3f4da639938c3d9174c5cb03d86d3ef43c8f795e9b22c3613600eea4ef3c9d978b82af501f1dcd2906cd9430341d52d73296076690b670c40b003115fd03247511df7844b8d1053f189afeaec6f6ed0de98fff5a5e02e750e41a93eb7f386693cf139cc569b6eab528a440923605f3cd2721a2d6b67522926569dad3545d85c8a374e697d7918e6a9a82e422d9306ad13401f9c91e5139514442860c75046e322c5ee66\nlabel = \nmsg = 787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cd", + "a1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 716\nct = b9fce8bcad33219375323a2e641de7650c1163d9aaf5f2f0c5b96230e788a9cb970fd4cfdf9df98060267e302b133e4974c0cd529ca1c900dfea65b46078fdffd9d589319087bafdbdbb8467013e48262bcda8554b225dc3567887da78976d5d9ae23ca9914248debc2383634f71d171ad375dccad198eabf391f4bcea22473c925e18d5210b02c555561592411d3fa6d2e425415a83fedd651718a8a7d1db2d81f64685c8da9a05e7201593374e30173ef04b42b1f16f0b8a8cff6c3ccc6b251fb61957df57176102a8a03d9718d95f3bf637b1fe1feefed9d50ebf9ee93a99c60d2e404bb78f9a4292ae280206782564cea8e2ae831f9b5d629b88af7c610cf28f9c6ec56534d16b70ebee0df20f8ffb40afdebec977d16f84c3e583a1229f0d2a01e0959b1cbf37448ab947da05e7cde1358c9bdfe298f2da27d65beef13aa13cc51f04c18560c054dd8f85d34ec759691b3d8c72138df12e6e442992a2466e3a6db6bd322d04c069741e0accc5f291a6520fb42fa001764c441c37456f9d91ab31c94283bd4a299fe4fda6fbd132e04d8d92157bf9aedc80c66cf7046a33bfa308ea7f5f56963edf4d804483e631acd033f2d9ec190c6d04c55540908e76f9b3749b8aef86287818358e4470cacc6d45fee370bf836d2b9277d044487aeec4064c74814d2c57839f6bffacdabe1f2ccaee4492b2a5b1ab7f3055d2569c58\nlabel = \nmsg = \nresult = valid\n\n# tcId = 717\nct = bbb5c693aeb28296b4559a792e489c74bf21c3739153be06dfd336f397f16969fb1ea0523f0adc7e206d908ea2a8eae1011217a54af3beeb6558bd80f2c111dbe51a0e25f3ac65578d4e7f6b41bede65813bb551c97cd70485b81d70934e86e6fa349287bcaf977e666bf9526db02e76f82b3ec2941c2c7355133adf80e16fd8c4d01a62f63d1e0e6d67a247fa2084409df92f8f528ddee355bcd9cda753010bae377bfd6e1a29a4021b239f98cecb5b8932c268393dd5ebe58d42f7eb59fd389491cdf05d29e7cf8c148caf71232853203dd76bf0ef8ce7be145196b7bfa83eca9761669fdc281ecd66ac37d45732c510b8d1f520f8be259a2de0220068a5c741358d4c34d72ab820e7791764efad86c4113988cb71ca323f31683105e273c037c02b4d4b56e7a2a341f9348180cbd671f73adc9767e050b58b99269b5fd696b071473e9d767918d99ef0e5e69859bc0a3133be92bf38edae5d8060cd5c13f2aa522d0389c3a5af934f81c46f83492c1ac6e856b2b1e3b17ea83a7dffbda5e8f4ce57e5c106c5c337ad286858af9ccf44417f2e0cfea2f196d89e078d9884fc176b02673d3295fc3849fbaf4829d7f310ca53a3861e8704765e8654e2b0274d6bf43152d13ddca60014067eb1d5589045ceed16df90a718260db6ee83662542c8c6fe47962d18758824b7f276dc3d94b6b8bc85bff1babe91b13604b8696078\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 718\nct = 3fe06a589140e2e037ca786111219bb545a189b506c2cb52376b6fee3d8c216b33578a92623f4852d2c82ff02db90b9266e5fd0301c8e156a44093206a8bf93c48022738a35b834dc025db456dfe003026aee1e7144f95db86d357dbc93d11ae9568ebd700fb577e9ffaff19f324cdc30332c0a680c47476564de727eccb1a974826bdb384a517d489901cc5f0afda3be84fad6a95435aa8cbd91b0cc5d707cb4656303541b69e70f9327c2ee061d96a223bb6e29b5851bcc345ad6e47feb0b86565706fa575fbf7aa4728d997023de295f669b34ef205feb24ebe07074b2ccd0fbfed7c3b543ba56875cf0addd47b8bf0375a5706684763dd7f7f0702d43934726a1d2600a668b6c4b170c85d0a4841661bd946b0c1ecfe801d1e366bf4432e756ecda05afecf29338edfa80677e3f21e54213f77c673786ba5cfee8ee800d651414d055d51edbbd2108afa1ee8f354ea7427ef772b31d12950c1359e9c6b65a1e2a2636efdc0cc6da8956ff84977c25cd67e31c88d27ba681626f25acff63b056f402f8f83090c5be0d51b6b9ebee8ba48ba88917b02058f4efdedd354c63063ca470036e3ef13da38c9462da836826d9472be5a6133c137f496b2337c9d470478800f67045cf9b1f5cb072847da6981f77d4e16f71181e90748c40c79df936e36ba4d4810cc81023591a82465f59e0b98f8dba0b0503b8bb9ec28919f0d89\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 719\nct = 8889564896395f4392a9ff76ebd1e0f5b3c5254c83fa7fd7bf614aeac559db65999171139bcd3c0fd6adcbbe7adfff9d8254ce2300d4ffc48ed00131243811677e8916cae0ff5752d75135fda0acd167b0e383f48e2cee184917d5f860c0bfc88a59d54587825f75db894de2e9f40bb3b168db171e8844d64add489ad839f47a63edd6382972d133d1d8887cf120a1dbf4cc3ebc0845ae85d6abc4ca82be90648ff4905e11e9a37137cff9400a0080e2d13babefbcd787a86b75772dd8461d5cd8a8f3c3f14b7b305ba6e51c765302981f0c3632a2860fcf61735396fa39bd407100cc1e8dfdfddfc0b87735b0ddefe96f2a2de97f168e41f2383c345ff93007f6fd505874f2c6cf2ed6f30ab6a2c8bffbbf6d3cf32ee716c85697db87f2f2b0b9cf65a48cc15187f5febd3b015b3339815beb3b02f418bbd3e7c6e9fec74374a1fb7ce9acef3b75292a3659b04f44062dae0980f6426dfb1ebe6d67c6cfb887f5fa3f9027ecf4936f3c0995acc540a4691cdd28909b3df8c48a4a27c9772763f98e7dc7d8a5497142aabf2c4c472ca397edf2fd1a74af576fbe1db292fdbd140d64a3c65173c0656619f5e5b3db0596a955bf017db34d849f29902f8a08544eb8aed66579084ba3aae9646d170bb76eeaaafa95f34295f2ce86b8bfff613644cf1ea061f7af8ee42df5d97a83a094d07219901d2e1ef26517364a03f031a3ad\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 720\nct = 81935470cfa189178b215635b35436bab84d880c42127d5bea48563d6d1e52cc4116d8ecb9dc9d30b82756eaf8981ccde25d4b3555e1e26691d92cec29103f7a514036ebb1d850b795ad662c9bd6c63b2dba32ef4889419b740d4cb38283feefd285041ea880319eea371a15e99dcd02761029b57092", + "32f5df156594259cf6f63f882c22a3c427592ef86b0e4a7d0b13f772234fd2889c13b157c2da6a94c3e3807771059c970a3aa786b05d79c92a36607fda0c7c3b7279402543debcbf3639b3bae654f48b80f65eb9fcf5d4960d88b8906ebb84aca936b7a06e4db3be1bdef0fd16af1a3d0fe03203492a0357bc7e76eccfef7a2fc1edfc50aacd0d46bc7a28428b92f46e3d3a58af3a7f9e0d4c70c3ac240eedb878891a8f148b1e729604d943af03ed079787a7f67f830e9a77e7fa6e39fab006398e09483e6e848d14a95e902f2cb60252059d1cabf319bc463719132bec91c6e7bed2341455c16502d2bbd0851301f86e0674c9c62f54e6cc9bebc268a4a714320ba2d30e0dd7996720466a976d3c9e8a11e38f32050ed5e079875160e2c1b0f8d4a29a5e3f6d04db8f501b205e56f3375dbadbc77c4a48117532917f09575ebd5ac491eb1bacf1d157dce7465eccb7568b2d51a87ebd493fbc9275d5b253b05d7744921cdf5c274906137b3076002a2c10cd52cee21a17feb9e35c5ab3af3e0427207c206fe6a068ab\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 721\nct = 8eae919086dc6c634f495a45d86023caf497163b2f4b63ab9dbee8cc8c139e41d83c5cbd2c54b032f79f3bc37e93ed2c7a4b652014b1fe4b607bca3529aa160c84ec89910bae46ae4d6e8bdd384ae8a5a18a48721e0f59aa9b8394ff821dccb8e222e7e7a2a33e3f02a320301e2e7a7c315fa0bf9f9c676e6a4535c34b621ff8345ed2b7d5d35014610040a9b3f81340f4911e230f356b469c9c6035de42048a68d5f04681d85eb9c2891c6a57a29e8e64cae0b0404d4e374f3188caa210c4d1378f0012805d7b91972d085956f067791529fc0357dc30aeed5fd3bc5efad687e5e9ec50957ac809d683b02e5764a5d8434e5e12764672807e18198c225d346b406b4dc06b9164ba5f3ae719bd376643727d9061745a2e587718206d66b1648bb52090b224c175688ea8d50b43a1d08ffbb4248ea7f351799c7e50f2d490e466722ece2c4f88f89d2f96fb9aa9ba610ddfd6cfa7b7a9c375e95575ae51c5d6de43086fd0c0663ff88035c3adafb82469a77556a91d32a421e33338bb16195d19010b58d720688d172ea7d64fa50caa902bfdc7b78c7bec427031ae9e3f691edd91a90c86e2e86d00dcdde12076308e1fc4c910814b00d751fe2e44baf232c4934b58624c1da5bb51b0e8acfb454aeaae2f04be02e4e121cec2b980ad7c23d13698a88d1d545521c0624261fb0e97422bcf76f47d7c33ad63a8eb4e497502569a\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 722\nct = 9284f12053cab1f558770b0da4ac1122dac9f3ccc92992cdcf186b62557b265a72234cd443e39d5d2e1e88d4c2b3bf569ba8feeacb53d7f4100a505de9118cbd22d159ac00d2702fc37350780cf78a101d7447d82b6e0ccf9d901c58734cf9ce7b182c05315b31756a30c5e563da32224272523bf01291732ef390e90d0b16de359a944c8fc92ed9949e9bab4059424aef42a5ca7c28040f3c473c952c52827159eb125e2234fdd251c898746ff9bed99fa7cbb2894cedbcb3218526ea286da4e1420af5c9fe91fd4d557f81b69d36964121e5202599cddd4993cd8dfb82a48265771b3f940a82ff572e514f5eee9bb98f848a31e2d3f7271ac9b298ffcfd03857cd562e8a36daa26cac1f1dd173dbc4e4d5dda6f3c28e3aa8c8d54dca67091d304bbd3217e2c42bf13ae02867ab9da1d3d01bf196ec8be97da126cde6a0244673477e4f0c98651592e25ce1266995c7a41d41fca2e2213806394df9a7aef43a1d90609cae8511514702d890fb3230b8c22a34720435a547edee50bc5f78da62224ecc3335e900d8803aeac4296fc4a41d59806c811924bc2d4a6067dcf71ae24a6d7cea82597bd14a3149fdf718aad5f5a6b6f126436c0621fdac4297d646ad0e6f70d524a48e58988066694f3618e013825d03c19c75b9c9d9aca436424a3a9a58bdb92003749241661527a6878601970abc94767cbaf82ff3ddfec7478638\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 723\n# Longest valid message size\nct = 5061876f8bdda06553a4f653c4f0a96a96d8f823c9484a6c0c21ca0344c6f9d15086265fda4f6f14573127dc073631fb91ffe0082f926d696f974b22f4f9c899dbf16feb967ab9c66556a4e4aacde7df73d4c789ef2eeafc23dd06d363ce3f70da60283510512eabbd43cd89b7c014240c35266b87d860466358840f85ae91ff3ae033c7456c74f5f425c4371ca76bca86e2a9639f9901780b1ce20f652644cc504c2497204fa6b51759eb932f4e7099701718476a8d2cfcbf95d70845d7c0ab4a264cd023bd5fafd5d3d0c5500b17a38d0a85593e042685b6074f4737ca181ce3f58f81d2b29e934d44c665713733740832079c3888cee12a5435372a32df434be0c03698d2e2503adc889be76619f4076e02b3517e75a94b7bfb58faa31e660682e8964aec6abad3aade06f376a9ac9d3266ef1e4e51078c446ab6c1e1904e5a1c5b121da4767d53e60f9cc1ad40822ec20c19cb3cffc61fa8f211a58c57b2f79f4131289f0354eddab2bbaa01962a25fa19338b2e546ec96054013cc3c2688464ac77d89fd3106621080266357eeff963c2b0244599d4a594b69c3eb4458187a869544522031235c6a8f3ddaad154c15df7380b8da5ba06afbe9d5c4fc1fdee76b0e90483899d564eaf23c5df73764d4af52e10aa7891d82f26285ef441a785ba0915feb6df082044bfa6fb6fcb2a3a9bb053afea9c015b9188a4123f1038\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4f", + "a435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 724\nct = 6116de04d40f43c15aee4824d92ba2004fca863471feca574dc2e253bf0c80108654eab5ee4912ab7a827bc746d0808ff893d5ecce47c062deab57ed80ba91625d90664a91e467e86505c5f56ba4fa9bbc602147838a066929ec64eb737ef63676c25a499c2943812c24236a190e9b45e647cdf99fff1962060752337ff0599716b6dbf75dd87d209fff5aa9395cd0f9d3cf0eb42285d517bf609524d20fba97599216b367ab146e1222cfc4985a988ef4bbf0eb95396fa8771b72745f37629d910c94a13459de0cd242d06f358f0055094d988d8cf109dc0d497697c88dbc23d09bfc4d5bddaa3355484ab988bfe0b8d0b77dcb27e962b0608059d369cb53f57848027e65733db2982f6e7d714980a6bb9e5f0c6cf940f37675f68501d4eea72e2a834522f863d8e436958e3f864ff818e13254931430f4dd4fcda69e4e9ed6be4114a29235ac63f527cbc270fbdd1133ef9418c4d28a7c986bbd580168aa744032d95124180e69a665d4a56ffb94ce88b7ce56ced9de850d4938cacf8568b02c1db72aa47aef9276823d3b0fc0b80e1d4a8b3c6772e75b3cf70915d4ea7f28f376e1d5f3fda13f7b20f0d0a2a67ebe640067938a1b6681024584cc3cbdb48bfc797a6e3525770665ba66c18774a490bbe2363f1a9b6bc5c149566614409b8a756a9f170ff9ab8c4c6a068564b72e3fb2b70e376fe08297578352c5706b2334\nlabel = \nmsg = \nresult = valid\n\n# tcId = 725\nct = 12570659df6de3ba5c4a60dddb7ce12876dff9cc97827dd14ed07bcb5dc23679648bca15a7a231fcdcc206393e5cb96442e318c47f46f64ef3acc172eb41d20cb1a92a080f1dd3633e9080c8b0bab4de51664fb21ae778736357aa43a4180fd569a1a03624888e73fdff1ad09203d613d7974a1e5534d727bb1db335cbed8deaa517d04a78c41550039696c2c366710e822dc7ca9b00fa235f2a8e9ed1ba40560bed9be9b775c317b0277a5383a467625e9b600595808d5da9279ca722ce2369dce137731cb89407a1c42bb5f68cdcfd01a57a6a4de110cc2ec47ff7c5ea21c7711183675416e9e9423ca568f0b35134fde01a46302f2693b2a42eab8bcefd625421064da904ff1bbeea6eeb71a750f3d67b5e23f96989756cdb40d7a8c3d0285ab64fa8dce5fef19375c270aeebe6eb5de0fa2fe92e1105a7da42889da154c909cd7c9ac3a66852584ee411b8395a3b3531a56ee3fba5ec12816932d0037400a4cbdda1ddf67f07621a2086259733203f4a6fd07a6f9df7afb610a9f3a0a62ae705b5658e49a11d26b9108162e30050ff205bfa0cca251085c411b5cf5390e99e6400a381ebc5b659cd8994f091e1ffc45fff852ff21a3b8825300fa8d454bd809e73228ca9182fce54d99175d13bfb3f85b6fd2ca8ce4d714e7e543795cf1053d22b73254606376e32c14e113411de28eb18446ccc095043ef7b51350ed7ec\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 726\nct = 56ec6a4955728a90d9ea4c7d1ade36b19bb07a34b5846ab336292e52464e2f7e64aa1c425d6618988d959765e613219e017073e7efd3776d3255145c39d4dc12c07599f1cf6b9f89bb4e9757d41e7086520b9df3a37518f3fc5103c028e8c986b5c95d2fc7099441b9a1cfae88402d1d8bfcd77f95cd6264e0eff88716da0e65ff21807774ddc61d94c01ea89e3a22b4443d9400733c2ffc5cff0468cdd0621e867755f4870e13213214e68b4e2eec6acd2ed12daf3e43bcfa259c9968cdf28afe9c67188c63a5241303046d48a441720ecd025245be0f02ec1c7c60c78562020c2ccb3f26d1ddf5a6209e06e34c6c782b434f37f46aa1e6c42042f852135bf4349dbb11f7db523319fdbfa8bc59619a0d73c923c7de6117fb19ff8b5490d633ebd8cb28ddf2accf8ec04233dd92b6efec362c8c77e291ee75a3801948e1a8526dec5687bff2e520484c2518b6adca22b08b81ce4595324baa0fee4ea4e6b7a2ab0818aacb1b98c1b8c9ac121e399a4c8322278b062675483e0d409fd7714b1c7919764e5e3f49d647cd907fcd1134c815b9282167dd7390199dde6dc188571d5f9593522295aedfefe1a184bd267aba2957502b43311796d80a8244dde6f7684d54f1b985bf81d92f5df63f05e29d68e2d03e7777e9db5f855ab0a507a62674b63cbd22ee3758a92c7066218eeb9587da12cc53fc6a89d0a551ed34b7952e64\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 727\nct = ba6ea4f150e9061d49c87d882325aea1e07ea9b6238e55893540291d32aa0bb959bac1b823ecd9704b1847e85ec50ca075a5549fcc05177673dcfab586636cc46a452249c4de1c803ced272e41696abc8729649cf9abd1639c65148a06c654185a4468f7008fee1d60d6c21b76289328d8812021659515f11dfc8bf1961162bb1bf256fc0de41c8972eca4122c8dcbbc93fa5017cc62dea7c20d2551fec6b5d17e7073946e56fa878ba9414951972397577e206537bb30f75329062a94643ed3eb8ac5a4d04edd5c9d40c0a18c6d1a66609ad8d3b6cd4d82d5452e56ca5b797306093e69c24a598f514f99aa8a83586ce9f0f97ea567337caca2023d839aa6fd8d664e7d2fe3a88e4cea9fb2f6387a18fa7d518bab6ca60f0ba8aefee5075fa11a621a18b6e106f5f9ce6b03b2b50f5d9adfb91df1c3bf7e3f702e24fd049ced6c08d86e54b17515e43936447f67f872573f27975d4f86f9b49b3be8d758e840d63b8a2556cac6eafa1cd0c7c0696d37287ce78c9cb9e704091ac64acea10ddd4f2fa64e9a2ea29c29111fd45dd4119b207b0a07f447ae3878dc398c73fb8b9c36e244825675162ec13216a3de4f1dfab76f16fcf028f43c257127dccb820bd79ef218d72fbee6bd81d46a06d057599e19a8b3cd50389d876baf35bb16240140bb56abcf859a59d0a57ab4e0cd3f5cce132ba11d20da3da039ec4675a13ff843\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 728\nct = 1e0fc90e921f7f657dcce1250e1b906c48c38db5e0a2795d665ab8554119de03530b8b26cfa18492c1a12b60fc99038fa180192455ec4e8dd1ef11f1aea3e6ff5a70d13e3b72e5dc5b19907391c08ea27c39a55dfb406", + "85a3377f5cb4732376a7685bd596a83894b3c70c265d775d428914e44758f2f556b5b75dbd8a5f5ca0de19eb62978c0ad1760ff81d28d8795d313c2ac329c4e29c363fca9aa8d3855e279ab6eb5856eeddf005738f8892c0f0118f6f3a3047fd5fae85f25ff5a3845712b53256541672c3b3b224fb8c3a889c87c3766275c8988315a3f21e2a79a98e186f03cce8542aa2aa733ac52a56a013d5806de6cbe810b4eb526be9eac2b0064a3e458015d43fa1196732a3fbb6e4c41ebb00583e09050b14d2a26b14081e550ad43b65b394e4bc04b6dd9e6fd6643c6dbd8d4c113696b9d42486b7b1f828bd39a984fd8b792ad4011b2596f91d9476aa31f7bdec8d990ba5033a93b1ffe2029958b72011777c64cc008d06a9dec53159843e6ad344d84fb07756dea4b916b205393099652b6e051451dbf1c28ec4a019aad79f296c28725447ca3c98dcdf04dc5b604f8b510ea93d01db58ae0ab541dbadc315a78bb07b17d4415ecead834c726cff2c0ddd48da5079e92ae45992f686bd2a47fb8634b07897f3ee3118d4513e9c4a199c3ff96422a49a897d9b00cea5d38bf05211608a0826cd158b311c312\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 729\nct = b4ef12f21ee9de39aa3be5cb8d660524c4b870db85621015f1b0ed82ba3211b705a7e009b66587e9517bb76f9c3fdc57c0e4508fa3b2aa401b963fe9079fde293e39a83329202bf087e70e0bff8d146089a8421112389c3a9b41e9ee50e2b30f1f94c37dd00dca064f3c0ddf280233b85abb3c3ed7124f7b58ff4052fcf91a7018aaaa82a2361a8b3d218c4027282cef8398e3985e511720dfd3801ab6a4d49720e4cf7de12eff2ebeaced0869d03708458205a10a9af5b6bac7b42c0d09f63f332e89f7a5ba976ffce7eb0548a3a03a406c44cee3867689ba92553a51dfc587d83a5dd764cf423739f416cd97cbbaa4031f56697797939b872e136898caa1064678c042fae14563f79572828012eef3d343f11b912833f08845109111d29e2841aae1f642aaad9467729b3382a16ee84a230bf8adaca2df7c258781dc4f6187bb2b90e4c1c668a24200a1564da28f39e9e35e602accd96f4847a414c41727c6ad7d1abd2bb93616967f9eacdea235d0843227069a249bc74680ffcf4629f15c31cb64ef13df05df76bf7e0f6e309dc310a2649c35dba1c91cb3a897a4a649f199920f691bb1fd0aed221a29a96c66e2ad25bddf4af958dfc7ef61a03fc2f2e3c49268fd1fd272a31ce9809c61f595cd5f2f7bae0813c018748581c71e4137b2f71823342f3ed982d11e52608f824ffb74cbbb0984e1a7c315145daca6cb0311\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 730\nct = b5bbd38dda1f6c1f181f8c56aed9bc71c5912a1700edf42d1ba11e7a2eee0e88eb03bdf331a18e37c352fe617cd6c7037ed1e1d75b7f2afb68b1405759695af21d1344a7d1761742d933f994b350e2e84b157cb46e0ccfa6f87e6a1dd28b77a49e4e751c93d9c6803e639f542ccfa8be5c67835ead292dad9060ddb446c83a0edbd2a0615ddb49b120a2f25c3df5666cace84f3ed39e2e634a236c820005fc255de221f8f47f8627497a6843b05a8a0a7d14d6c00f922fbb1c0b97d5791bf24087a9d28934b1e4f421287efeb9db3803475ae98437639d3dfdc5dbf2693197b2b0e2e41b6c96cb3168750f5abde5a7ca1fb08f37ae218ef58c7f87b5975015d990ad2c7d0decfbd80c4d06595b36b395806436414ec80a778a7d3996ed15e272334ffd8287c73b983be7dbe088fb7e6bc23b850ff128b50209ac94556a5aada8c279fdc2b68ebffc7ac4d6c8f980cac6e8942b76e7d835b190c72232fb5676c379a4c7091ba6712a3030da8a0e429e0d32aa9cf8494e15a897533f689ad1097fde587e21fd2d94d8e3ec32d126921e97cbedb6902c366606766bf43ac09c531cdb38069913a11da84fc15db3ab94ba9ea34c6487f690b747e2adfb52344f0c09d8f0e7ea1072eb322b8200050418547ae96cbea8373b5dcd8d2f3fc06e6e6f6d85c94d27e155b74d34364acd8231ce638c21014f0299b7e5aea3271a240e2505\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 731\n# Longest valid message size\nct = 8ba0aa8fc281e01083187269d6eb3525b1fe56c46ad8f09dbf38eea9991eae2614c979c82b594e8950c0e55807b7b6926009233d0e42f9c1d5f6998007313f01a07c330a09227c9c8a7384dffb8f12cbfef64fb4702b5d53b44bc69bf96464a6015786b3a5129dd0b4792cfabe2f445ffe3181925dbabc25c69f0ef6021b10361c7578d1aca8a5d566eca8a693afd286c8280001b6fc10390109e549b19ebbd239092b25070f495637098716e4d9caf02f748a956c2ed8e2a39825940c0f9c5465986389d2746fa3a776f261281c82ee0c6912598c985c88408426494a80cc1afd7984c61ec7e8c74f0e535841fb06e78f4daa96f64f93a6c1d963092f58f5c1f16e39d194fcd4fcf18b650f449e5bddacf18d2ce793ee382f80d716d78dedfc29966f0b6bde4b8b63bae8cef6c2d3a00a9d7c540a42c3cc6d805c73d2b479bb943e6f69014fb0a41b5c16eedfa1d489eb981e60f37f269f73f69906e1d7fc11a4d03cd2d74e4e1fdfcda7c2b289e02d9ad2e756d59d3a884ca12f440e067d007a881d23ccda1168da86097b7f25a2a2ac20a5c2abd8c36c034dee73f1714031f80b38875063b1735c97ce17740d7c818509b535d436eb794e954ee5c36ff3cce234f67827a587e1fa4ad0aa9d8a4cebce0a9b010f66b556fafd0e4fc610c4af4b1a7f7f5106dd372b1526353a04bad081d107d1bfc997af780d31c6ee069ab1\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648e", + "c37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 732\nct = 7102bfb4bd1c25c1d38d6d0ecdfa468cd3a03de71f48cd2fe8f16cfabfcc013d6399d4dd7559738a06215d8ebf98957c35995c5b370e25b2784a638c17f116782a2285b62933f2c17176a353c5af77a9b2fb52f1bd58d656aaab29c18c13504cb9615aaf53ec86b2c066766a3118ff03c7d14ba53ac5fa317f30d6864b5fcf1a98b051dba03a72126c199bdaebdf83f8d311734207b075fda4dbccdf476ab17f480bb908da20590dd24fb9d86accbea66740b428f25a242e9fa959c084135c911fb73f33cc5c51da7196c780baf6a8265ffa6cdd19ce4f9e5099a44d9e578247e2b2168fe521fd8989f68b5cda5608bdefaccdf6a1d48137b4425ab6522577882d29eeec0f2478304fdf8f3dba542634c3a9dd7eb808fba3f208bab84bdc051c93f0db445dd7e0a472c6cb7fcf070174961e03ed9fda5d0917e003fb2d88053ed1c6a03754ae8a0fff2d73c04bc44ba0b5f129e4b8744c37a3bc4ad1751fc5c9613097fb4b9a4a262c6f2537c9481895982a8fdf8dbed3f92850870039445fa2b94adf4b335a2e89fe3db6a66753d19ce34a329ad3276611af9e4a67b85a54999f79d06b8b626874824f4abc998bd1b65139880f69bb9d333d863259b94728e03120fb19bda0005b81045b976f5335b7f63ae9dff10bfc7bfdc139a27cc212be925178131370b66ca058179f01c15b68b77c4282466c810c7ea8be1b27eee621\nlabel = \nmsg = \nresult = valid\n\n# tcId = 733\nct = 8444f5ded541fe14cb7586545b882a37ddcf7f1191d73bfcdcc347e4975d1ec88b3fca019a04cf99fe094e4cfa0e91796a413d5b7c55356af4a033b5ab5e8ac1373ca837d02e9aafce4ebb6b634794489b68a8e4e329df50ea7a4d5896389e8fb2eb7502ebba171f821436c537c584c75b8c825e56187b5f703a1ca9699a899e69d94b6130ca7433ecfa07107e6f304b974a027feecaff3ec903b050b9c847f4cbc7f2da129937b06e644fbf3da2e86789be63cbc30f680ed887a3f54e22f1d925b7bd7aa7484764a78341276b63af7091d7834245fba22621e64294a27c1b66f7ac91e1fe86b58b6b8d4f53cc8bf1aa94a03010e8e9fcb8e01ef32fb03f067f1101d0506003feead212577ae699a0acd97277eac34bd6299cd86691b50e097782a235946abfda26b96e9ba1ff77cd102e4424926122b3ccd9940b88432cdcc93eab1660d94a0269c720ab4e64cb5af018734bcff2f0854da8a7e584c205614c7f231aedb4f69bb98e919729c714d02c1998cf035c1baffe39c1677db5acbfc8d1d82598e916651d8d66ac3bf6d85b6a27becea76991d4563f96d4e691f7700a01c03f3cdc66ee07ce3e381ec3c4f86b7a2642291b1ded426dd5ca903b201da29ce90fb931239541047bf4047ee692a4c2bc571e8a5fb418294fabe3d4921067eb38dcea0b88cf300137ecc25fd8f3cd114e871f4b102d78f1b70bc700ec8258\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 734\nct = a7377db11005ff95cb355818f5c10b881e5e468f87d77792b5e3daa93328139a478b9c205eee19f1c5370f0d67b0e2215f606bec8d0dc5fd8309dfe8395fe75b2a641ea792d0a4f36a959c7b407076facb5affcb1ff8c10216624e5d8071d5503e319edcb737bf9197f8cc53d8c96534a84c136ce2124abd7577e5f7ddb3505cff581060ae5ece7aa0b7f06b147871e87a3d97ce3e70eed4355fc5a16689edfc624c5d6d6066b7b88b22d50121b8035d44ce00baebc3957603a6017e17d68bf510fa45069be6d46545e4cfe0559ca9a821c387b50869566f56a99bf0bf693cbe9b8f8ce3c544e2418087758d0c2b9d242591f630433a274fdee4a2047c24142bf1e3570b0e44ec3bb8ddc369940452a842e21e919923b1b136fb7ed6e3875522a0e8f6fbcd1819bf9818237dc482683316dfba11f59cfffe256daa451e4a375eb0fa4b54ec46e11d429cd2f53f96ccd9871fdc1f0cfd05fe2abe8ef6505d1452fcb3f04a18b14f34da5f868a11633126a35ab6e2ebcdab9732c206a9bd1fa3a4257a81bdb7c5859b16c27dd5f2037e5018714329bdf12632b4847cddae393b7337c479122f82e207a03055e0428c814b532c86a7516d7839e81c2b551b3485b6dbec308ca1a481ebceb9c416e515d8d28dc516b0c7b934ebe878f600d698915dcad527097b423337e0066e25e7a885ffe65f364c347b07d4b912124d50b0e674\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 735\nct = abff8ed8d2eb6b2eff8f8c720dc0f18ea4cfc5172c7c89ccef319417b492a8d19100d3de78fe9afba118758e42be3bb07eb428bc5ee59c491ac41ca0d02c46216efdea4c48adaa404f6a1377620784f1ea1b279d5135320a53f27b28afce014f5a5039f124981d24c625aac7cf7c242111336ea712d9d72d4e8c15ccb93c052a40a72ee2d2af76d551cd7ee8a507e81eb0ab1d56aaed9be2610523960e495fcc53a899a3a22ad4a31c68324726c3f735145c6e71fc6a693e7b4a5b8aeac841d0c5fb15fc712bfd2d2a1dc4ff34e1d78085bbc3194897e4528f803bfaf25b0f8ec9742e7fb1ecb732623a11c81444bd7f60c058303c19d9e75c1491f37562b557bd6751d4a7ba64fa644abba827c39baaa3e65f05726357ad978dc751f4524d64f115278243b3704fdb802639327f40e8a8c21dd9a262ab91a1c0e18dd4b59c9890c55f9f637b0022ae8a3502ff560d24953319e6485437c7b34cc3707f02a116b33598589821c4f216554e4827492e963565715bd3de019446d1416a1728a00993b6f6164cc4deaedb0c7435593941598be89cf9a2bdf551f9f3e79db4e9c0157d023d5d022af5000d9e0106c424b0cdbdd857f5bf2bf290a2daec39a5ce78cbd209bd73523ca11291b3958e4c187eb13e9eba166921c5a588ce7bd70481690472028ecf0781219d714b7554e81217eada94f0a89d6134bc9b6b1f5daa110497\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 736\nct = 8532ee28e0c4563c2a3475d591b61b5fbf77e10b13e1dbe71f1c8bedf1f6f3dd01b801e691a4b8c8b54de867ffa892dfd5a2967db2d1f8", + "670e6b0e2df97c09cff8ba17a1542f37988d85075340ffd24a0aed8e05e383f4d3e468f966004e60be32d474e531039ef09ee8ed339ed79af58c6153cd2be91b09fd8d0c75a620dbc36d83e48897125812ff910462fe633f39891da3d2109e18e93ee27523f3688dab2b0a7f6fc65763a8f17ec1c18eb87ec9ea06f6ca27877275f759d21bf5b0d9bfe96960d31d1a550ede1c61bf68feb3e9b1e60485f7004ebb4230c0e2366ad79f1efe479a3f6a3aaf97097a08eb21fadcf33e8dd7542693a075f707109155780dea0b0ccb0ae98d49b36f358168da4caa6542b787605538825933746985032fc25822cf00bc2981be7c1e5b22e420f8c6da143995d2f7e8946f53e1ec1823464a32879c11e776f6e756909ee7f25b329b3d5d62f3220a47f63d5183eafac475b9c9a6c773dd399759740d8339b228a061a7ee727d05709d01983823827f995ea8e6eb2f6bc2788868c4210693bc00e8deb32641282b48df75bcda5d35047f6e6474784e5ce19076c7643a3ec8385e4c1f5fa07cab2d5f2d58b7144453ce6775519a17fabfc1c28f4f9c71d6684567d6e24614514d18a1700ab214237ddf64531aec65cde6811b6ef46c1ce9ebbda7975cc0f70feabcfa1bb43d151e8b22093d66\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 737\nct = 883016556f4873452809c16073fd0dea1b1cb9e7f267655caaa27dec0902b277ec9cd14022de89a7df2d36691da7951922b1534aa09493862b10ec7e740781ce505ecbd0a06dd987834c2906d144715edf2accd926760ef502dfe573d843cb2ada918e259a5f8aac47c3e262574063a4f8733df50d3153a3eb5b58c779530a3f62aaec47af69ec817557c33a0e9b06f2d2b70c9386fe91c11089851acff2f4862a6b6daf579898a0c2947fb5959ffccd06de7f71f16299829ac6498655065603f69369e83660127047fb9c722f428592ffd08ce41d21f82938bff4c7093a5a68ee407460c85122796d712bf3ae5011689233ab6a220ca9c7c48aa0315ffec2af4f2ef353c9f7d513654af0bc049752bc954f7d1c8a36a4c1277e26e1d8dc6770ca7d8dc4499e8dd972bd476aa08e379aee7830d982482b49d2b8fd52458d5d5b5a2f2efcbd5d6d1595b59cce4b18a747030210a3c0c93a18db64b9502f78805715fcea73abdeeb1a93f5fd2022e79abfd43c3f1b26901f1ce1444a491281ce0c4dff137c78e4071f0336270d8767a4d7472a6a2d5f8b34889155f360cd3d1eed70a8a270d17f74aa80c71c7d36c557fe812dbea90789800fc3256ab70828e8045eb43dd426feb1cbfbcffb0e45e708fdd852e0fa136c5eec0bea3033428112489355bdd40231412cc09e789e818b7bed8fc9212551a9bfc6983c8390b440de5c\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 738\nct = 4e6c046420fcad8dc9a25577b2ddb7170d6848e1706d202cc32ba3582987747d40b02e5c388e350acd5abbefa488f85dd84e23c76fd5f7aa3e96943b89401f82ad232fbd6d9d7cdcbdb3a2e486c03dd76d223a80f01d0f571a477263e57c1085bac4a234721b00397569bce471a8fe6456f0e35b52d1d673eaf4c78c79e8e18b13c13e8e9b519a52b2147cb6e43e0a5bda401c5500b12c78397201cbd1dfb5d64ae80d1a44d780e444250fcfdb8738926cecdae17b3ad56b7de3b1b831ecba837c27704bea792d1a08b70311a9ffade019bfee378e4ca31dca8a02d29f77f38c22b99c3e33b116b82245b732426756a24914472dab0c985edafec96b37b0e61223e1c800da7ade3b527744e489236ed1f0a2bc9d6b02b1ceaf10a997740ee4453d6d9bd07f645f6feb129aa275a3cdfd659cbea5c78819e9904ef3bb629596cc9a4d02453875c113aac8a0298f6264e87c3ee7ad30058e614bc8bd165f8d1b7cbafe26c4e06b2b5cb9b1df3d42c3ffabdc9df8ca5c050bfbe768e669d2f981627019b650b2952a426bb37bbc368a3a870ff308223664b073e80e4fe1c4ebd1b3c28ea76da395c53bfaef22ab99ddc15954891aa4f6d8f1dc47951ef14788dc475f5273b06422c78eba016529997f3d2ca3e5f480ffee77b716f172e8e8b4bceab0d6c714d1031e8c0b67427859da6d4899467b584288c3fe857fbd3c7bd60068\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 739\n# Longest valid message size\nct = 494837e82bcf58b201c8e702b34bc29d82781a0bde828eaaffbaeab0df7fb34b743c778624e9b61da36f2565721269db62a32bf8332e46d5ea8943aceb34b802649e7c08e5072034532afab4ebfad3c61ce00f3c505ffdaff7990f9c6c0fc1cec7bd4223c1f93d102fd1a7710de583af4f39da57e67c4e79803c52232dd3f4728139d42175e68883730e1dccf629740f9d5d3114be318b52b2a9237504953d9155afae8ed4154ca917676185c541abbf2717311e4dbc1d0a74347bdf05516bdcdf05bc6eacdb52e78ad8d03e6c0f70fd9b1d42419226638189f2d8e34474e32e9342dccb0b795996fd9f341c0cb88ab706c077d1fb2c74a6b7e028d46f0656d81c4a123432dd71c7728831963a65b43b2425e88fc05bd3fab03d560e8022bd9bd5acf12a62327596b6f238937bbb9a3ef240c8b7e575eeb6181424319f2db1aae1d716df552b08786b58d0851e272c4f9382af78c9fc417cd03489af137eefb27010a5898160507f9248447347fab8daab0790155532cd60cf27fa7ec858e660e0b7496d398627462c7f75c7f6545241eddf791fc4fc2bca8feec48b241bddf75a590a6eb1e2fcc71725f135fc6ebc81d1871e700563b874a8264e2c41dda224646c9529d6d643a0a639ad54bb90275f8aba524ea1afac51bdd9c17732f0b8511af05338f368a30d2249fdfc7f3de34074788b5c21a481b8cc2fe14ad864e27d\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a1185", + "11c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 740\nct = 8f685cdf3d01be20d4dbb3940ee53efbb42425478a9093d9a85f769893992b680feafa89e982fb04cc247f2c538b307111e33931adf6e0b9d1b31e309dee41a07c6240516d37f0fb595a84b486e02eb3b4e9a846dbc0677f2f471d1ea44e52d915b95c70c8f865e94ec6ee4eb9eeff19588166737b7e3007fd69ec689c890cd163ec463ae44f00b09e8ced5cf4fc1b1194de313e0b02feb2345827340cd028a2846767eaf4890440a74c78b4353777441ba805380cd42d7387ef5fcf220932a55088fdb08f8f1882618a66f1029c16f7d75564df683efaae9a9f11c8fba64cbac81f3af37ee8fc3e00882f0b3faba4f4cb11a8b49f4cc1a385ae755af2241844b5a9a7aced551e27c40931c2e2c26da988f5acfc8d003ec37736c7907f4508dc9a5c4709df744fd0d3187725966096e96e11eeba84d1b03a7fa9ca3ad2b7c7e2f52fec4efa6ef7cb18992ca074749a5e20d14eec31f2e8a25675b4aa2ef7f1e81623ed33a3ce16ed2b7e74cf70a8eefee68070a82214f532aac3bcfed5a78b7ad9f960b625ba8b27d6b8e8add8e876a9801b2f2f4635c6753a456116f622af92ed9976125eb2ac252d07108061509ff3ca8d8cc634b23b96ec800316634b04f6eab05f145330697cdd6e151c67818260dad06e9d11ccbe3af4cd363c5bfcd8888cbef243cdbdcf3ea8f045fed3a7f5692747c11a5ee9b05115516160e47718f8\nlabel = \nmsg = \nresult = valid\n\n# tcId = 741\nct = be078e8b2052e283e9ec6c79ea84ea74ede482c23a2095bfb8a6d399cc9263116dc1efb4110a78dcb5cfa2eefa0dc45031816c733fbe48788b9c934dad4be5e67e1e6463339a3abc7cdd279bf574dbd4461e88025aa412d40ccaea4fcf977cb4d7e2a92781af394cbf33f77bdb96532b0d702f111ce562ec18b8b2611d74275a1a8e556bc549e9ed8bc9d1a0855b34421e558570daf9919623a9404bcba43437024698a6d2614cc96d9c2e715a9e5fb1db062f2c30b9a21fb174fa23930bb43cc84da88849be3d6e52780ead58114d5b82370e7c4ab7b5bb80584c3a0114d2ffddbfafb637ecc9aad06dd2710e143004320136c30c4db164c047005868c6ff618564e207d440db1d19076c7ed6f861a5f80c404d45e7427a49989563b713bd2fd33ab64f73aab8223a883c504eebd6ec777d098876aaa63ccf66992573ff09f93b198bbfdec5212f67496499297ff64cabb37df52221c6cb3d0f1f7f72648e3a71b72c1ef39bdd77bf3d965261a143e22e5fe65d36a0e652a083414b537ab7504fa13198c3c70e8b45c860aa4b07c8c54949210535252e3fdd146656da50d9b06178bc86bfd2d81d5ec66e05f9121efbd344b326c178e2eda2b3c3097c88dbfc898bd967c0ad4eb3b24b6292220346d7c474d15f606c903e4f040d9bf442f76255b3d1ae38b0053c5f1ca15a5b052dec5ce1f1a6c81a651c9ac772b43b3367f2\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 742\nct = 02f2e0a9b939a0182ae0cac85bf96545b5a893b36b136c0ef4dd06e267445ae56ecf166a87013a99d62783b2bf01497789a6282aa8fc4b420f1eb2c62308b853b6948af25cf0c8ab41040404d3f9c88cc84b16ae64bea099150b35d9c4aee1c70910fdbd124f2399dda714750c5c65c3044fd7324fa0d6760cda8765731f839ad1f575dae91ed1f389e1e9e8be33e6a48044eda86e7bd00b6e101295ecf73268d47994fa1b51a375351f8063b1901c05670376fdfdb2b115a547ba3fe0528878d6b2aee44571c1009f6c4c47ddd67973c0b2884658848c2e4ce9295f9225b198c450c368f9a58cdafe626a3ba7f5e3f2399e5bbf13f33117e97a147dd9678b75b6120cc5b88c698a2a775719b537e87884c68aac5232ea45d081421d34ee9c58fbe8d91d8ac0186ff907771f91336d3dc75c80f821ea37f74e7f34c12045e0a08d2d8b0c9d7d64fa70cd21fe707e5420f7cb441ce536ac79a65c868eded4cb484c1763ef50132c206152dfb022cd08327ad8f8a123f9930fbc33c923e61c91ddcea7cee6967d4f1770361ec0fd82f00ad1af0d71ff0f48d20768c80db65648b33fea459ddda25687282742147f22efe5e45e76d0b7bcfcce965701b5e005132e08e91d7023cd696ea986e05f02be392835dd28af4e2a82f14ec43f5a1cb171a10e7012ca626bd174a92611c112de11181e78456f212cc9eead6360b344648142\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 743\nct = 1e62333902d0c05d4f4e3007411572051de6a65d11b39de37f3cb76e2a906b7d56023d5e489ab809c3235e3c40a5d5b37db700c6b9aef55a3fdf36bf7fda290d56a0cf8ebba78c9229fae153130b1c7c020eab1d55b7a33e32c58ac068c7f8a67b21ef176acf2b97b4477dd164fee10a40a391182f77539ab4985c445da33f81ce9dbad8d9b772f8a5dfbbb8371eaa96a725e0fe8163387cdffb78580bfc6d1d00f02f4ec9bb6d45722ba02c7ce1225d497e88c8dfa9ca019fbd4bf743b7580fb863061353be6ed54f7cb576a0edf4cf72290ca70f6994567fd9689783af4ac822206552586dd2cf522cfb46a978f866e326ff074ba901bcd631a44e64482b6b5b08874b57140ce8cd6b6e615e983a3d6a62fc932de05ad9c13e8e24aeee4744c012bf05aeff246c0bba59a2985cc2dee33a4098c868250c5252211920a24ce37fe77ea6775070fc6f7daf28ddba4101ce86c05ba70f7f14da6018d47578184c335bd5e83d93351d6ef95f0a0c6a7ca749a42ca3ea5b5d424bcd5ddcbc96659a6ca4d8e63cea8e0847578f2f5de32baf65ae6babdfc74b6a29fc00aa9404baca40568470c205ff869c884fd6ee9a82fa8f7798d6f60a771be89f8d2daddff85a4b3676f0d830e445d3365d3c87f507420abff9b23f93e1ee60433c116e602a55985a15612cf960629f3baf6107225656ad239f1925976be8c7dd7f1db02dd326\nlabel = \nmsg = 313233343030\nresult = valid\n\n# tcId = 744\nct = c4ded40acd09918a6d7892f9f5c3ef3bd524058e3332b61", + "657d6d060237e37a49ec617f1fcd2d763c51da3c3483ac6ae0242fd7196f3c8eb3db56e37a13d705a7db8faf73aeb423590784bbc42d668e808eda0156e982278283667e654b5d6161764da1cd381fcdf8a8e91fdd2d311e96ad62658d6c9a41edaafd145e9926fe3a61108d1aae10308f494d65e188ca69db3c116c08752c30a34a7c5d02d24ff59a2b6c2c5d957bd8499a869267f29d358ed190dfdce4bd2dab1bea4aed188e4a55a68ea5062a7675c609362ff5790c9fe66c1a17167a8b6a3d99e089bb65e79246953a2b3346139598e6a2a176e8df271674b91b33887e0668785cd30dff90ef847fcee098a0688608f2df0f574a63fc16bbf334a060e420f98cce76384e528d74b102aaf0ad8e182cc6fefd2c0d387e6e4e0f36878f792fa4b07804ffe574d3b14c0402ab6e8228bbf50a84aae4f52900d38320ed91bb9ed308c25e69aed9bd74aad14137d58cc10db37b5b81ae1aa0a60c8b1d19b27f4049ab41e84aa22c6e69d9ada549627bb8828ac384465ee75bb3807bb90b1ceebf361244807330bfbec838bd7e862da618d6218ca01c3a2f95e5cae463c8a9dcef31c35c6f25b85760db06e275a3ff1530b1379a20a480de8fa73486205eb077bd46ec29729c5195e2ea1d4334fd5b54c24d22f125a11885f4fd14f834881acee84970b88de5c0cbdd8\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 745\nct = 6bc3cda80564f1a391c6f84feeebbe858a306784c39efcbb06c61d389b7a4a2a61da3407728cd6c25d7f9a252ba9ff7cf58ce70077b55c3bf4521c0ef03392cd0185b1bfb26864d9166bfb87e01917d0c604325161c5aef424ddf805ae3b542b91dcaf497cf57e51c62ca94a1ea563c07d07d7c623f700f5a2a12f20d2d30a8ad5e957459f7a6443ba65a0fe884451e5dc56fefa8a8fc036897f502290cf9bf35a3b724fd9fb1a2587f74d33a825d1e07423585b7dd72a17ec227f16291610f43a3bc7806677175e60d979c87d5b1c9794b89a52a8deff93284fbf8a0b15763ac0225987641781017b6015eaeb9941db23cd1fbff8a9937e7f09f40339b4abfca3211efc22ed3c0fb9e393ce29b91c3cbe3a424d18de5906d3d86a6210f2f238676ffa4fe737571289757c8e0541d9e838e211f9f7b74ad60e99f61eeca8ce922f6dde7ee40d4c3cc1c52c06fe5842b9ff516759ff91365ee89ba8dba2810171d2078de0bf5fbba7bcbe1931bd03df508ac006692cdd17ceb7fdecf00e2acdcc5ec5ff281eaae926f9b0212cd57b08142f0fbbc35e00a4aa050d9a96a7ccffc2f1226adc08b4204b95d5bffd1b99d15581b4bd502d6229f2ba1172c398669d83ba5441125a86025a9631d4223d248ba9387df2b0845dbaf427c94b1fad82a4de2aa3baf85cd02129fe25c5dd3c299580587eeecb59d68a9109950a725e35491d\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 746\nct = a53565bfd5173f43ce9de2b1eecb165ee53e58bfc5d7588c90d841e2164bef515ffc33a5cef7294d1ec92d6ec1bb31365cc966228b45fec6f480109108954ade2e9cd5755c59d12b3909af8576b4350421c26afa56657028a813c9f85c0a92dd452d4aed8bc472284ca2f7067d395e9755153ba79ab5423b4701f86ec260466eeb64393c5710ea010f9aa41b92d57d8221c4cb1d9b56ba342b437ca3183d73914ae5008c5352e428286fdcc7d902ee186c1d236e3f4137d3ec3a63a4975205296284184954b7ecc0793c243c9dd0ad085ff88bf037d2b07722ead006af983cd913c08e523ca0d5a3997bf6eaf1ee6938ead9259664df1283b4db0cc750c70a20b88d937c4dde29caa1027e02e2ce6d9c89047ac407665d5bea4e12d83036358815fb14da23a5a2a13ead7e397325e1935b55407646fb0b3d096a3e07b527cf3af949621638384c27ed666a98d8537686dd8f3f20549a12a14fc2bcdf8039025f7945cbf9b3526550d5dc668825b3e3cf8f75a03c9d768792efcd00a18489610a7387f3cb774ab3d75e166a34cd2ff0bb205c559df2c082da5ded8fae5f21bda10cf77a6b25b9b1618c8d92f37efe02bf6f900f19c730e0fd6a55eb898d2211fb4e67f5961f71fa085feeefdbe32e47372c409adeb0b5c3cfb2b693ca3ba2aa6aef5d0a29ba2a87dfeac9e5d2709bf3a689fea86a48ae14f1f4cc754504c58f4a\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 747\n# Longest valid message size\nct = c856328e918eb400b3ca76235018843513ad1b0f374aafe97b1b616a51c5eeb3dfb0f5a3c5d7559a9f9b28867d2c8626b4661f90ea185e48a9253ce7d21b7036706d9db2076e37cce373728bf4075b424a071d3b6ca29a80002254b9d978d58201acb010afdd26c9ef372e118f182a2b41e9eef85290cb932eadeedbbdd6d9609757cbb4feda52944029fb9a64ead1e0b71145aa5d4d95d38636cf6ff97a84d64f06a46e3f95a99aeaa66bf15968929e36320623edfb319bc95173a04faafdde0ce576d59852d158a578db6bf40af65691ec83cb57bfa6b6518f63cf7a7e8bb623f2bd16b2fa5c0866b86e0ffc2d895e6488b0a75c9d7b738bc28a4854472451cb46f8585d2d0b038e0a572621f95b3ab9b58a51e1cd83ca90c8a64b80748d85c36d0c31cc4635cb60af27b7bcb31a69e005c186f4cea9881c18e571289f418fbe818d7eb49296d18a074c862cfe31e43dd31fd12aaa54e134323fcad5fd7e7c1893f7599c9315cfed44082b25cdf4cc9289fcd434f3c81e6ec7a5e3f5a53ebbf8631d825b7b6ff254169b4a305a231b43dc9b7ac948bed31d154a9321ec32277653d8c43b8e60f6c8b21269e79a8d4ff42abfdfae61305d754390cb5ccd783f7673f595eb1fc2ec97d5f6483160015e57ac5ea544ec5492e1611839b4baa7a1ae55c8edd7fb51bd10d33178b21f21625a9b3943c0287797b48fe5fe14436475\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4", + "db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 748\nct = 8e615a3b27fae31bbcb6abbd713e54498b38143c5a740eb326cce75e2b9df42b6454dcb465873b831d3c18c4a0e4d941ebc49722402aa05498b34a7fa56a74774adada8c9c3af19386da29c191816117488a37b9899d135da5e8afa8e2b76a87caed1b050b8289d110922ca9b19ed932be12c92b36d36ee77ae9803fa8bea86cf8287954fb0fd69a0cf9809b686bac0c0035d8ed0bd80dc2c5020b6c6afeae2d7998373d551ae3a868a06854eec8fe07c8dc61408676ab2c21c251c5877bc31cb570724bdda76cfe2b055d5a27d1b3961518ac88afd3a041e2d21542ca027d6cf8c71c078016f1b23f73aeec8b7f5b77bbf003ab4233d0c56ea42337f5ce83d82b5e05497f0f8e3b4f23b78f71be7691f5bd66544a60f2ee685c9c70b17c5933e864d66f1ae50976629c7b76e91e17c1bc3099f5fcd191fe6419097088fed1b7d875f9a39dded5ca6c7c1ac36edf1ef3dfe9cf707de34c21962bbe9e8d0a92a7bbc0eda639d813254f44c47983db3d35c662096dcb61324e97d68320624f97eae0fe0400a7b618039d97bed9034c29846278a030d3c2e0932bab62a9ab325bc07cec7094fa427a37a937dab17357ede8d08d3b3f76e95f1f470af327f2a98ee1f56a5c69d1eeda8f0262fc36e04c78b051f4657c94cbdfa3218385d4e3422f5c4cf7d6c869113e0307a3c16f41db561c4a7d43e1ecd8ea7ffa6a6a548606ba96\nlabel = \nmsg = \nresult = valid\n\n# tcId = 749\nct = 77c634e7ac8dc0d271f8d970c3d59ecdc19a09ad5076f586942116e7125b6df207f8aa21217c47862419cfd64f8cf83302660cae993c45bded252c6e618ff225d251b0057099b3bba4fbf9480b536e5eb6f39f64f2c9b32c7d07edbedc4a642a7d69d263d88a62475769b653e550dbabc1d2fc0d14e27bec772b2643f46bc6c8950415977fe21b2f33a432617134bc208a613c3ecfcd531950d7ed44b925b3f16caa870419de62053c44984fede89b8503212531c13345868265d1fb139d2272a9f659e6a988b9f54155251601259b2c0159b3dda4910b5190694d98ae847b05b152fb63c1fefa31abaee992a46fa7407499ba1f59b6dc69c348502fcddc58fb2c60fbe30f7471821b75572f149138841972d08515d85ecf0390ade20b1630c9f7cff16bb1c0c0c566fd0e55c1090dd28f18b5019347461e4e533a1d97e553583af0beec3f1dc3a595f855baa75834eeda16f6adbb435be7044050f164b6ba4ee420ba9186027b166b50534d5607f2635c3317ca87acb9fa9d08272fc1b69eafe2d0b17b81def08851e9f623e14674016ddad14a86125f629d3642f5549c1bc69845fb7fe01b9be3c77051781635f438c6846a17a1c15669f0a161edef0c13d01ee2f53902585dd02d2f139bb91702ad29f93b6275de15bc7e537a1d2a4f8df47fd7751a4f9ac25dcbc9b2e43d21accacc6c3f7155845435faf50c275c3d4572\nlabel = \nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 750\nct = 1dda78168838f43a71aa61151bb8bb953c204d0af526231cb804952d4e958ed47d2b51aad7c3ddf0cf5af70b87b5a5c80d9963e261309692a822294b40ee3ad67af64408508bbb18dd2b61090882869a5207197ffe0df39f278c2f3a710e0f8ea451b655fcd8542e07606af88a44a7bdecf5a523c312ff73942ef4e8105a5cc69fc1bb315f77f36b87477ff693289963d72f2ff0b6ded18a0d56d79787928ccd72b7d5d7acd61d37d632cbdce66e2cbfe990cb6ee250b8261248e81013df77448dfe1cdc5b812c8380aaa0c19e6cb11781c0e3080017ee254b89fab5d534cc4192946217718d3161c87231d955d4fbecaa817fa92800104fbd0bdff088fd65e9ad9f8513c88fa613d952634ee8306166225a2f37eb7ed779fd6a799f0e5600ef915867d88e99645bd797e261cfc9e462773fb52eb5398e4e6efc189759c2405f9506ed48e6123379ba477bbd029e8bbd11ba86239e138487ba48882b0c3ef356cc1b3cb2cffb0d2d0c9161f8dbab0a91276a242762d18ba36b2daad8527c781a2343a110c4acce2f2a4c294057765d82e86abe6ff036d9331f1986115b8a22d7e425b81f7c0f0e32fb57b2971e8a7032d155fcf61d0df5e9415344519891a712907727bff0b31cf652357e7755c68d35e22dabdee83f8b46ef4f4cba34f180b957d52488c033f4f2fe413bbd6d83e70c52783d78bd98689bd6d822618fbd464c\nlabel = \nmsg = 54657374\nresult = valid\n\n# tcId = 751\nct = 2013a5504dd553e9ff2d0c42eefb6f6978cdfee946ebacb69aa0071640f42b1c6d019ab2c50362c7e271382d546a9ab53aed7cb625fdc692a60b4112df16d85db4a748935df606e4805419d4cd4a595285f369e20c7b474a2f71a6c40642c4e84f6ff870cd4546a4bb2b9f92a77d69bfa85724caa7c3724aeea131d9e2f61b5c24ab19a3ff46ef9b25e8951a165b2a795e8d734c996f0d3cdfc97995952195b60c65979f154ff185e880be3948eb95e449f5427fc3cebb805bc971dd32f57798e11d4411c7f2cae6ba40c711a5748c68d37fc7f493e5d389666159a55c57b1edb99fa9c30bc7eed5619177a90175cd0cb290b93b75a4725867baac40edc7033acb3b31e89063546d9c5b0a5d4c4f9062295269c51e7230b35fb2003c2e913f4c234ac9da3c467e6d522872fef1d28493e469b8e9efc1f6c389e69941b51977c4f4bb21c02a66926662899bf3dd638de31d47f8ffa9d8ee3404d8fa102985d2f8ec1e684acd5ca046e8b96d122630b3a7059ef8e7dc930c81c97bd81a3e3b9e984602d71cdf9985778f5f3b04d3f30faf4bd8a323ce6aadcedc43e3027abad83e92667afe962b07edfb218267f515c44be8509f1e26558220207468a318fe23e07fe2fda04114db17e754d9775d2c4951dc1c7f8d1b4476aa13ef50da043815a2a1c6453546067eb463db0877f717ec70c176e3fd73c8377ac3a8fd19dd2bb80f\nlabel = \nmsg = 313233343030\nresult = valid\n\n# ", + "tcId = 752\nct = 0f0b837a5f4f036f5a1b38669a4768571e1ac523e89f082361530f1288a55cda8c6cb5f4b7632d4624a9ef1507546ff1416f5baf2c6b53f1bcb9aecb305b6bf57b204282c74827ee71d23398509537bc7dfda5a4810b0c4b6af3af45e838e1586b9728509124d8b49d0a2adc8d383962fe70e4524e2fea9bcbe5c71ab05ec65b5e4822a6b765de292861c86a7605e3c20d1e3f8e8268a21a326f51cb66ab0490673f036ebe3d8fe5fa39e195fd703c1c93b49f3697d9f73f683b6f70d5bf585d72324d34efc79985463ce1df5c6112720e9bedf876e1b80f36614d719743e4420a62200dced4d457ba2bde819fa7ea2643eb1a4672e6827c915920fcb94f3ea9c1b0eefdbd7e5e07d1a2d6738a60ac7f81be705645f2b33af5d5a20b09ea4c3922169bcdf0d376fdc80b355740686e77049028f2f0dcbc7c910b8c15cca7461ca5a411a9b6d750a315a250f0da703459a2147aa3633c5711d3938f863e35713b802788e2d20b0de356fdbec6d187580b75d97cdbe7f07ffba0c14bb88f32e30613a1c911eb82ed72b4bdcc232b46684c581440df157f780fa9ce534ae18d20d50187aa905611b2b045d8b1c2061b0eb9fabae940de151348d10f0f24f753cf6f667bf2689a73bbf3089bd26dd74b803ca47d9da8f9ca538f4c7a62aba73def2a08f92eba90bd6d482ade0b6b724bb100c9231a31a7a0973af2de4fd5aa752450\nlabel = \nmsg = 4d657373616765\nresult = valid\n\n# tcId = 753\nct = c40804f6c7fc5ba3c30f051a719c08823b6591f45a899fc9839d8dd77157761ce610d4a138c10bc231e53f9cf87d5fa26aac8f167deb1b6522a4b365a136849d0124b09a03c4d5f5c26ea90f7a0fcb4518625c3ae3908910085be3757143e1fe1fbd23bf0942174491cf8f7c2a1b697efcff99822ae13e2f4527c1b8e5d50c320971dfc3bf8761fd08ea49f60f78c80e65edb08aa916a5cb9355e9201c867fe17ccf4bb36d69dca6789906dd27515b1dd99285f483f8fadef217c80e0a430926bdad691118a33577689ec1815565f51dea4130533aca7a57a7bd706427ce2022000421a26a5d1fadbb834e6d78fe4dba457c70820c1c0f3f1efafa8a27ba302b1cafcb9b96f41a4f34633a28e87a6202f13fb0e41df3ff644a91106925c5c3b875c313aed8a04930011dd866c7d52ed018a6233f0125f4ceae5df8ef8890997868cdd3756e42775bce57327cff10e4daf568322f1021b140262f94f4c061c31475de1807313f1621fbfb24f4d779d99c917fa5104f93324ae675621df90b02446d40ab2f319c32d363b265ac32a7ffc6d262e7903d8c05dafeba307cadd25927a034cfcfc784ef45136c950682d313d35c20cfb918490c86eb342dce1c2b68967f3f10d439849a4b6db8430702615f36af9839391b1316c0505ee18b8a35806a94b73d00bd5e8bd2b79d383b89ce7bb046e5ef957d502fcd9e0290fe70886991\nlabel = \nmsg = 61\nresult = valid\n\n# tcId = 754\nct = 9e053f731455e4fccecfdd3260ac0056a291fb4a37e297899e812777054f13c9e836f27de12cb2549d6aab0ed553544464119c495067e90699caed744e61ee17295673d2c868b41cc23f9e594a002a7eda75f1bd7e0b211c3c2e8122fc2568131b354b722bc1a29ec52e718e471c212cef4242270a4f9a765f6d077e37a01091bb13ffd9ef02c70462aecff739a2624a5d8d8f5cb8f8cd3c6eaabb683a10bd131afc6197a8d21d6cb066c610277eea1221d55c9c0d26f553ff7c22bba1a883d22f153c18ad617b506ad55e4fa04fbfa7cbc7fd310b49809c80513322b9ab296aa4a033ad3bf785c1bc5ff0c928777de67a71b393b213227e102c145e9b40357f251c19bf572a48c2e3f5f0bc12604c8475aed9baed2155028feecfdbb328b488bd5bdc031213b0b122bdb9cd44097d1813a759d13122530587be372a779e1aaa08d18a84d26213f936885b73835c27939e9c5d284076a09ecca3e6dc6e5be5c36666ac1ca1d8796502e0d5359cd6fa43edec58bc3d2b39938e69cd46e2a62ac4f6760d8c0c84765a6f5f6b66411dd3e217d690452745808a2c0f0fc504e6e56989a72bd1a59774abf529067cce618d2c39c05f0b400e644f7ede106e6eb1d0635f7f32ec04f86cd3628dba1f967b3109bf0052613fa84012da70ab4ea84e5d5942d42a0b9e3d0c80b0343fa9486c5a077fca77ffd30256cd4f8138dad30d6b5c\nlabel = \nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 755\n# Longest valid message size\nct = 592e487960f3169443c5d6f87166bef2ffd52931518f3b0e5d977f3a2101814e749fff5fe8eba424a3d439609857940f5e23dcedbb45cde57c21c28bf729e396530d21fbcb96c97a148c5708801467b15be1eb0d35206105f543d21022fd023ac89b616ec790a9182aa053ee4aa7962f33f4b413a48ee3d53b2d247988683d4db30bf4ff6d80b6d0ce82e314ed6dd7607df577f1ec956acce51f744f89e7c6a770ceaf90b20665df2ca8050ac25ed29ca80a0351ad790c3b8fd00527195f427410dca6bbba37a441cb82e44383bb4e077fca32b27626051c13886392c10a305890454588f508ef8d9d0aeadd8bc78991fac96c5ffec892381b03580e28926d8b3a51da862951a05f48ef809b9ce11f23323ed10fd597d0449acabba954079164d775abba56da956c513b601d1846c867c6bbdbadf195db11857d4135c30c2b5898782ac9346f7fea4e2ec80b39b0ed962e0c1b34494af4441e5dad6d05fa7a47763368f850e3b81451b47ec12886fb317f5f5ca688275ff1d97410f8eeff8e210680c799f45dbc47744166d5b470c35a9df574dbf1b255931ec98e82e10985ea23daf960862882eb3ed17a99fef36af01b6168b22ae7ae0c91045f79da51fd62317630e123e322dc692c386bb9e30013525da3289321f311b8cd4e90175573debf08f772ce6d9257a6593557f9edd956c827a285f7bc620e262a7d64b8c56478\nlabel = \nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n[d = 797b80425ab0f8bf5677c478c9847e81f470d8b6d80c5178f86108d9d13491716eafb9de5b7db81193b7b31179a944c2858bb8c6db28113cbf9599677468781c5db6b72c33f6657941d642a85ee23e65b982d37098284135d6acd0bce80ec90d3d05e9fcab8f835d53249c54bf45f631f87baaececbd4b994fb7291c74768b45c7bc938518a04fc5ee5f419e84485ed2630fa36f85d5cb1961fa70b14fb8120762aef3de8f3383d5d616580ae1ae9010fc433fcd62f754a64f489d2298cda57283645a96803e37339742d2c88c39c35ed3f8ffe1114a7430f3f37eefacce66d20ae7f8211509e95bdc17cf8ebaf49d9ebdeeef2659d21fcfd8fa849e23049e4fe4c4146634dd30afda05ec611799b57e53abb1b5a058f4f35ffd799905ddb8768e91b5718459809bfd5194e1d608c820dba5c3aa19a217a641d960d82e486544d61fe18256fb190dd3e32e23708fbe81]\n[e = 010001]\n[keysize = 2688]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00ce7bcbaaee00bd68cdb5277b331e43274214828dd91d4a24bdbd44f9a73539aec304c54f07d2584c7512cecf6b07ff1f496133c3a2752c8098aae07857f524376ff920a52799deab0d35879b32c8252084d7ff62a50f51c5557e1a986b0d01d88cab3c4a0696632bbe4f52cd3ba045354754aca082baf092fd99853fc9bc91ab61ae32c3250b2b8778611801a1f3efdf14d237e5d2a611d085c4b70ef7c35ac19bae832683eca21f519cd9cb02fc100238b682ea99c5fab984fb9c428bf313222c4491158527d4f3c13a83dfe018aa9e642bd3b6df651d2e05d5475cac25c960c7e67fb9e5906aa343941ab1b0d9a8c330d23aa9454f3ef4fa5a89cdb9abcedbf4d2183ea6832b312d2a65d7f203572a4b5b2435ba05e745342b2aae76bb28b9b3e879e6e26d9bb3d15b847738218d074f495630bf0a11a40f1edbecaf3f6ebeccccbd974a934c3e9848fe43d64bf0b3]\n[privateKeyPkcs8 = 30820626020100300d06092a864886f70d0101010500048206103082060c0201000282015100ce7bcbaaee00bd68cdb5277b331e43274214828dd91d4a24bdbd44f9a73539aec304c54f07d2584c7512cecf6b07ff1f496133c3a2752c8098aae07857f524376ff920a52799deab0d35879b32c8252084d7ff62a50f51c5557e1a986b0d01d88cab3c4a0696632bbe4f52cd3ba045354754aca082baf092fd99853fc9bc91ab61ae32c3250b2b8778611801a1f3efdf14d237e5d2a611d085c4b70ef7c35ac19bae832683eca21f519cd9cb02fc100238b682ea99c5fab984fb9c428bf313222c4491158527d4f3c13a83dfe018aa9e642bd3b6df651d2e05d5475cac25c960c7e67fb9e5906aa343941ab1b0d9a8c330d23aa9454f3ef4fa5a89cdb9abcedbf4d2183ea6832b312d2a65d7f203572a4b5b2435ba05e745342b2aae76bb28b9b3e879e6e26d9bb3d15b847738218d074f495630bf0a11a40f1edbecaf3f6ebeccccbd974a934c3e9848fe43d64bf0b3020301000102820150797b80425ab0f8bf5677c478c9847e81f470d8b6d80c5178f86108d9d13491716eafb9de5b7db81193b7b31179a944c2858bb8c6db28113cbf9599677468781c5db6b72c33f6657941d642a85ee23e65b982d37098284135d6acd0bce80ec90d3d05e9fcab8f835d53249c54bf45f631f87baaececbd4b994fb7291c74768b45c7bc938518a04fc5ee5f419e84485ed2630fa36f85d5cb1961fa70b14fb8120762aef3de8f3383d5d616580ae1ae9010fc433fcd62f754a64f489d2298cda57283645a96803e37339742d2c88c39c35ed3f8ffe1114a7430f3f37eefacce66d20ae7f8211509e95bdc17cf8ebaf49d9ebdeeef2659d21fcfd8fa849e23049e4fe4c4146634dd30afda05ec611799b57e53abb1b5a058f4f35ffd799905ddb8768e91b5718459809bfd5194e1d608c820dba5c3aa19a217a641d960d82e486544d61fe18256fb190dd3e32e23708fbe810281a900f6ec9360176174fa13c61bf298003b11e3d2ded52e4a8e97cf62b2fd90fc3fa7f68ff04ecdd79df65940ec4dddfbea002d32a8fdc7ff77732fe968f5cef0987efaaea1", + "e545bdd604fac780608c022b0bdabd328e318b0c1bcb5ffb52c2fb3c1bf7690963592a453223f6da368df954d92c40b42be19df97671a532a24a239eb407ba2fd5aafe9c110c22015b412f7476a1b00afe586f3226cea8cdd9b84dd3b7f53c26d504d3d8930281a900d612b2272268a71e5149d20ea7c05c2c565740a0400ef61280f46b03c3c0591e4851e3419e3fd49a658189d918b4778e16db317a42a3f0613d5c878226e254cad7d498d2b8ed1add27473477535b7cd36856f09978853ebe638019da2741a04e8420afadf9755a6aed5d1c00fda9a9e21cb4651264f27dcdebe21407d53b417e7aeabbe075aea5359a6ac748b060cccae3bc368ae33125c9388c713839339c58801ed8e7178f3b610281a90098d35f7b8fbcffdb6fb5a3c288154c7a0c198d55402b6109d08f73dcc0897f1483e41e85879d35e52ce4a3dca5d1aec8a130c3ab1ec79cb4ac28b88fba9eeaa35ca00d0f8c14ac8bb473199fa7c807c07487b8ec8cf9546b377a966068d17a288cfe73930bb2bfd502b15be97c019f6432a17161df6818e817fa78d63d30c29f0651541dd891712293f1d0091cd5342de070c6bd191ae95d5f76d6c133f2e760e9e56adb58fb8d050281a87936eae397eb343dc97f884ebe1400dd26228fb86dad4b0e9d3048ec3fca496c093d3cf629da30d32008e27a282fffc65810d38a4bf3b2280d6bb85b2d135939e64e3e1e8b91ce754d49575efdb73f0e21f5a094f61654b9cf7378affb2c80ce14a8c1713c6083cb2a0e5fcdfbd4371a8e70630eb0545281e8400261910ed57dfdb1aea261607bb1c77710d28af4b4e169646869ea4d28fd3064edb30d48b90dafb647d14a98d2e10281a9008cb941dd77a87bb28e26bfea0f7da4f8068d03c52026c02b8d06ee69929edf485648d27903b232f0707a0c6683b0d3d3526751114b29e3a11056c6ddfd42fac65ac927190dceab4ea2fe7e4cb588f328f6f48db215ba90ef39a5b9053c03aaaee877eb4aa051201363fe8abd754cbdd267c4ca8883edfff36dcfe4a3305d70917a856b201486efc81dc6b30d1f82c45ecd33643c59273ec6c17e765fbe9b3ec061385da7725bd2db]\n[sha = SHA-256]\n\n# tcId = 756\n# em represents a small integer\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = fd31f4b26df9dd1b439b0df1fa23cdc1793f7e08a5a3f12f9550fca3d8c8aee000000000\nmsg = 566445d5b6b1a0e3056b5048caaf55059e741b990c3a180b690a5a578d679c2328d0637856b9207410815a597d37929221ac19f3786dcd11e9aad68b98521bb907fbdbb8b0c0db468c12f4b3ce7153cdd32e657a0d37e36fd2d80dead942a348e4c9b24458e0307cfefc3cdc3337582c0d11f8a6f0e3542acc5eae7941b4761bb2473adff50b449ea9f7f9acda80ff51d454afdec018ed50e2b8398a20d60f1e7f83d078579d1f04ef21f9c1be0a64b374d5de3daa8595f4e131daefe77b1fe4e7daeb0d345cc4d49f8e6b7675ee1aed95e49b06bf3c96c0cd036ab68934bce373d0ce0a45367135b782168fd64a12ee499d96d570289b8fc412d1c399b385e0fc8dfdf9529893e4eb3b350c9ddc\nresult = valid\nflags = Constructed\n\n# tcId = 757\n# em represents a small integer\nct = 83c7361a9af02607755a9fda9f26fc2d5c1471d557481f7ac846998f9428d698a83a0565c33443e67c9f7b79451c07e19ea2d3a7e2719e5a1f8978f53de23a187e125f029ea565677c1b754e1ce30740fec7646077b3bf976646103a37068e17da104e3965958404be7d13b69e710056063a897406167ae132aba375f9d13cce79962ea66490e81cef72b09b36ae2ac609e75b7e2adbea444facb6d450212750d90bf3faf1562175a490c98a6737ba21b540145600884e8eb687d7db9a663f56d2212c9c3084c61f167e5604f66c606f50379d277bbeb8f106c01d55fade1841e0f2e7779333ca4e70a3773f258881911d62b4beb49016c9978c2a2e572978192b7ba6c0a987c2241ef71cdb04ce0f8a80a7a68af987472e256d9811198b54de836e61a25e4e9f5eb2765364cb43568df6b7b70a29b743b83a28de505082cc2d510218a330d7e63cdd427e200aada877\nlabel = 030b72ac6ef0692e1d921f09bec31705a380186515c39b5c5d936d17fe8b7f8000000000\nmsg = 6da4fef0fc1cb59eaed8ae4804bb9ed66d58672ae3a1c6dffcf178df1f87750b5ca731880d675c444c49d0ec8673ff4917e3fb301f05f16457e5f22177412ba62307386440f1736ed69a87d8513fd424fdb3de086e8bc9c731ea635ef7cd827e5dde2c3d03e53086e0c1f3e6897fa4e69dbcffa5ab3ce7a29dc08edc386d53a34067d1b5d0b3d9ff3d645acab3889a68d98b0c7a52a21c6d0775d57da7e592a6f8a6bcd39b1254b496ed34599ed3f98323a90577b002def086befcb15c06e50d5da0fa0d9f0376ce9e33e56bb90ae1a99ffea971c0842bbf6cda6975acc0a43337140167f2ebc6778cf639e70f7db98fac76899dac78fabade3328b4db1721eee3a66811064f06439c55e12235bd\nresult = valid\nflags = Constructed\n\n# tcId = 758\n# em represents a small integer\nct = 2021b0961b5166d95d3dc85236ffe569b4b4f3c2d679d6469fb105627d2101e2a527b56051d6ed10660f877bf03b67a602c2e889fd16f270dca242500234675260e780a5853836a5360ab077c43a44a6c745512f0584f77fecad7a2b556a25543a2c248b1e256a371fdaaf36c26da7703fa74ae13bbeea765ea37ffb84f782e29c898a8970a173eea01eb013c9d5ea077563dc9550bed14b85e330a07bfe93cd216f80eef15d3936a62ff2362af741d5bf048b0070710e93394488340b4eb3438d30137ab6fc7f83a352aa287a994b311cdfdb39d8e5490f1be38c9d4972e1d2ac24debd71c99cc5e5b83a90bedfae33bff47735c8f9fb1d9560bd0ca385fded0391d0834b0b85d4ee5422c03b90b66679ede6351c21afb0658f4e2f6caf3608d7a2d76f48feb6f98f135baf2726e9f0a01250d783f30ffdb9c15e13ac7f3518cf5c3f02f0858a475b1003e507cc3506\nlabel = 6b7779aa939ebe421b73de478aba21787a2f2ff6998e40dce75d8142caaf2cce00000000\nmsg = 6e94f24b3234914cd0ae7a0b1af7e52c211a4d0648fd78ae0a39bd13305d25ab43b4da9c03c0c6d74abeedc6da6cc40836e5126255d04d025e119e12d9187bd0f1e3a27f27deee3895597d6ce1f9621e7efcd324ace0bf20598cadb48e236baeff0a57d8f4c57e2a426679adb1edab49101b227514d30101b46dc6bc81aa07b506ad6c38e1d7bb2246932a27a48aa8fe38e10d719f994e0060e983c5497210c99f711c400d89a8e56041044e0e838d55a85bf196139632aa5b5ed4c9f252434bf090974294888b1e9909adcafae9dca6455d949f4a60215d7219928c1067ae3971779c311cd57f0d39d9b947d0e5dd405bc6902c271ba42b07d4dc65e0336f72f5155b925162d40527948738e47a\nresult = valid\nflags = Constructed\n\n# tcId = 759\n# em represents a small integer\nct = bf432cd4f03d57a67ab6442a8e7f637d9b35df889a2b939872b055fe83406669b2cca2a32bc81dbe2afc0126b7a435d46a5fb2213e9a9269ed5d70efd3f08e1f65aac1b0bb583d5a128871c334fbcc954285a814b23d79bba859b6414a6897e8caa20269d38de040cbb651bed56bb80fe4aa061fabc40894ed204c4192ef13835bf2cbffc6914615a2611786a8a2d1f16d57864dbc9cab00fc4b980108c5b16de32479404812eacad066a1ef78b04c0d4ec3973f3f0c2800b194da98e66365cb32f2b737dcdfc9e9d8ec33ef2fa810172b48fc58aad1952833b50e6c8122ab7c9c8820fd418958f37aefd25c577540abf66d771c16a98584f04593fdfe038c72e83f34f1741394214ad89ae53c2d287286988f6c809f933ffa5179f9619e44d23362756d5bb93a57ea9345a53642a8f841f8d387fee7fe8dff90148b3784fe4d43124d2f01ec0ac0706a24173e7234bb\nlabel = 9fe2a7058ef3f222c8d04a2b58a8204f5ea3ca96e4f4b240f0c734a14a76637d00000000\nmsg = 59024c2047e31ca3dd167345b6864ea868f520599fdf17b572138e9484b1640818f68b1bec4fa9b91f099c4500f46f0b94aeafc4612cae36ceec0b14a77b9b38933cdebafccf411ba020112b770397b8694b17ebb5fea940d2c066903ef434187d6e26bbc5d45afdedd374501b5fd84c65c4142df3158cdc26da25cb20d54cf8898bf185995d37516cefbacff43f63ce3da2dffd8d307f622fe26d13489e1c15f25847402d397cccc53b17f5419d9f4988b42de234fd94a7c47f71089989a1f0f41654ef007a9f5009805da4021d3c58c71820fe04a48f66e8d7323ef3c20847745ce2e9bf7972b6f92f2585ad44c1ee834c9f6baca8735570118aa6d5c3e0dc1a4d9e5d5c966b9585cc061728dc\nresult = valid\nflags = Constructed\n\n# tcId = 760\n# em represents a small integer\nct = 9737947aa7ec32fc56d15bc766a94ee85d3d38aeedb4e2d937cdf28f9dba9fa3c8c7bd283c70ab950229a05ff70dd79447eec95ed7cff64d004f030479dd232cc54c6fab7b44b628463f26e585fdf9c002b8f011412753d16f25059209395c838d604bedbd6c76d49ac48506667852f9e92403b01522285fe947ce98e237000af62ec889c92d411def1a30d757afe65963ae8b76647a4003d4e631a5c7244392ffd61a507b45942c460c1acbdd30a2d308e8733be418a7598daa17604cabd911237a317efc632c8750898823ea81bb7dca2a6b74e960252604fe9d08a8fd5e8a0ab4888d24dba338b90f3004f28f408455f2d985f0a17f0e02fbc29a2cffb91f0e2f5b285fdef7daa2643589d47a5d236b33ab329834b7f2864dcdce17349a4dc8c05b2d2cd17755cf2a77246d30b7991b1de3cf145ab4c1b45031d2b334fa96ad6652d5dadb87ef9dffe68ad1dfc23f\nlabel = f9979c77b2b68a1f56978911c5666a3fb70fcb5673f6dd20ca5c948bc8967f8d00000000\nmsg = f78ae85f856824d2b137936cac4b1de1e8264dcced0a981f131b6462f8beb28b05677eaefe2ce6ba308793fe1fa14a4f7b6a347e35f45e3f45e761a6ad4b72074ab2c19d7d2d8cff1db93e8471136bcf4a866aa69072615c09f597926ebe32ab238be95e86877b57bc6302ba564f028f9b91e40f832f173", + "ea397a17ca9bb2696b50f7518ed67fb9bb468f81b663af10c8a838c68236e4d98da21024c6090eef52c412a49ef3623cc3a82bfc29e2a9f87a113a3484902fff49a634bae817432514a9b6ce21cb259757ef403668c80224eb8c7adccc78125b2f053e4a4cf2196319c58bb43d966376862f4d52d7765ee1cf0c741b7ffa506301e60ec42b6ba13300e8e9d4e998a58aa8a71d66ee3e2\nresult = valid\nflags = Constructed\n\n# tcId = 761\n# em has a large hamming weight\nct = 19fa72e2d7acf62e29f2690b551f8369c5dcd3f1b50924a2417091a1c9728cb97d31c5c9d273220012f7cb66ab06738a29da8acffd429956804407f10aa553299ae007e6c68badfe555549243edffe12772df9ed5dac565fb195bbff17a8df27479c8d4e4d1df190e177adbf36ec55135d574dcc41d87ced757ec28e7020cb0985834ad911667fb308a013307548f385dfc947830da22c31f299debe7eb87627c528d4006e652ee96aa13c41648fd2a8ea6eb8605f3088ba9c83ac7159705b804900af1dc4f06da64b89d5f5a785c4a9805a8121149d6c66ce0cddb2499d05e873cc04f90bd2f1e7222f499b07a824c75413fb9340e5698990f4bb3f8e5d4d8dfc2c25e1826f1bd0761bbfa29d3497ed2a87a7cc6d0095f86ea64cf60876bdaf04dd3909191c2786e00106b7ff8c707ab90c17916300c571d98f52a4ebcaf3e867ff9b4bcd8f5792b5ee4ad466af408e\nlabel = bb45e376fd8021457ce35b5a9d9a4e99a8c9afdcce71e4eb3bbcb68bb268f7e800000000\nmsg = dcd300d68ec1de1964d67f63b77f329f19375c1eb5850d7dd1e4a612591e1458f05d26fdc2106abe7d33fbc65b62a5f0db89a50a46a989a59606952aa0d5777a9a735424f06fef558c4e30746f0f6dde87f2dad17adb4ca9c6d44609a324288c5a15e2c63774bcec78ba9f40b200c488637d9577f67d52fbb3bc9aef7f4ba5f052fcc9daefa322a088841ae9309799dbf7eb92fbb6d0751279323a5adbcf4e96d071c0c4f8ac7fbfe1453fcb482a6a1c72c56ba6da3e63a458fe69469ae0ce6eb80b76be848d20307c95ab6ad30b58e8418397d8f5d6e50902cbdbcce4e563d29f64f5abb37a1d23b7d737dd29149e774aab060f6371feef8342bef8f2b27bb860f47f9db37e944636abbf72e318\nresult = valid\nflags = Constructed\n\n# tcId = 762\n# em has a large hamming weight\nct = 1e0827b996a9ea6e80de6c61c14f42845a32ec21dd74e2659bbe055570acdd585283d39e3c2a26dfeab2f8cbfdc0ba9d392c4c9b929119826c7edc9ebd6288b721668ed61f491ade80617b59a32f15c56721f6f97ffa0c7f4535030e6676a4f6ef2145f7627d8ea34a35b550d4339f832fa3366ddef82b9435b9ea586b4745b034207a55a69aeb5e6329315190200d10e2db2d09336c3918dafe3d91b2291af8a179ea196bed9b3c2c76df28c03869403c2ebc6106a3b88673772e644f5b16c7708a3f856ccd4f605ea8c1e742146c472ac789c7af478e48c377ac9a94b2a5dfd81f1783be3e7d1502fa6e584d292f1fdf8991b149ddd73bf678129b77605d392c28387af8c7b77396ecf69300b7bdc1ae368614ce35050d4e22dee725a956c9b6def5a03fb1c08b6112aacff0771c19ffaaaa94f80c16d3c3f519d6c2672bc61f63a147e733148bbcf0bf24d456c630\nlabel = b445e376fd8021457ce35b5a9d9a4e99a8c9afdcce71e4eb3bbcb68bb268f7e800000000\nmsg = f4128bc55ad62be17a509230a6789d08945ba366b5da4cad1886d056c37ff8da0452d7a9255837772c42b9a6f981b00b6d5e4ba057217cdd73bc5e21abce4c2f0d788ece62e890bc78a58f0a970a755c2ef09e45fddcfa558450534a6269c2901d4ee436c85792ace8056d83e105915d3f85009e703877dd0bddeac06924d811de7ccd2da5f1a605d48e4734db7ed0b4cc8500cd7fc0baaddf6a458fe2dc7db37dcd053cf9fdc3995010875929258a66e9bd47ae9a9b0dfabeea5ba26952cf1c8bc8d262d8be6012799764474779ef96b91d9c8e21ec5dcb54255902b795aac626425ff4c9eee9e94f1998111394d9eee23108e2e90e5eb89da5d29bd7a8f34b54f81bda01b04cf2ab76d0e4995e\nresult = valid\nflags = Constructed\n\n# tcId = 763\n# em has a large hamming weight\nct = 6753ecb802eee506f36fbcd25308e601fb35fa8f80be898d22947a25f10df696b23502542fd9b356cdb293e0961a6a1c8915bd1c67bf72a07cab3c34907b8b5dfaec4dff55f23123ba390a3c130a5a8b9c5a60ce030929dd2defdee820a1a5c0e0a6149ccfe2894eef1b4cde08bd77e0a5e2efb54e16c1ffcdf8365b88d64de0ab3a6bd48a92e91cb7001525d713ef6059a973a97b967d802923fa38e760dd044672302283e905c15957140e20fd34f1e41390ee8e117aa0600752de7a5b43dce182cfb5d07df358531a69aea7ac2c27953d3580a9fa54a11e26dc00241ed44955ec092b2decd135f6413085531de2062d873105de345c560016b49c67b08f689dcfd2701d5825c9644a2387b4651d8aa62189409d09c6c44b7f6f60913fec90df2e8a56746d73e64050837f024756a9a8237f1f0b0df59956535d37fa57c6ebfbaf9ca518304c4405cd1aff04f024c5\nlabel = 9345e376fd8021457ce35b5a9d9a4e99a8c9afdcce71e4eb3bbcb68bb268f7e800000000\nmsg = 27a89a06aa5d2a3aed79cfff401e6eb2885f364672bf531920263e6ddbe12863051acdad2ae76f7e7c9c4429a133faf51a3bdb9d2d547ba617cd6a8e44567ea1b510a066a2f2817196fffdb24ac0bcaea730d05b49a6e64fb45d5cb83b33f668e884868a7bdb2f3ccb4b2b0eb61d88637ea5e49d27b56331a3a3d0c17fd296c136971473271f212db0cc90caaa9dbc2d7b82407a3769c5ce066e812a6c4eb433f7ebccfea751df37f8369c6485a2812ceef1396988a11716a94a566972b4b48efb523904e6af4dc1f9f0a19847bdd3fda8431c2ecae92fb30c681e02afec8577af35c5600af9b584bc572031171668bb534531d944a736095492093503c5479758588609d0a55044fa7c0d51643e\nresult = valid\nflags = Constructed\n\n# tcId = 764\n# em has a large hamming weight\nct = 0b0e0e837c1cf9a29dbb2999f3d21499d1bc7c2c36376987587b2d748af3bc43190e244bd13d863d1b1a16c17fbf84d80fa9205b8ff1aff18a0f09cb3450f51865f23c2e8c1ba82a98ea0cf3fc83015b18bb5a3939c2d60c78c8de9912dfead4f982eb7a9742add0009eff08915073a979aec74716fdeb86561ae2125779dfe4e82ee5127d87aa17f5ed7bb8baeaa6d55ec3a586ab4c3cb5da7076489e6466f54f89be51be5344c2c12e3a3273147d2e80525e9e627b6e1e152a777dfa0d52676ff3e8ddab90eeafe1c0fd89cff940bfecf8e552f3c905df2ae124e5431c359c4308df6786e07d5aee81041e253b62e96ee4c9b6a970f4f5f3e13200a400e72796cb945b069253ba4572ee20b81764a310004eda405f1b5641654047f905f2c4a498d412a1ccb62ac951aba434cc29d9a0393457a4e71f3f5eb473fe9e2ff91fb7d09a6a767c62ac5fe176aa26a4f501\nlabel = ea45e376fd8021457ce35b5a9d9a4e99a8c9afdcce71e4eb3bbcb68bb268f7e800000000\nmsg = 6bb6986d4046f157317f495de89ca36b1f00b1da785e8c8fb7596cfa735945a9b9ebfa8ff326eb86b95f366ad0f13edaede4f8b435adcaae62d29136d2fa4608be429cb60e41ccbabcc10e93be620ec9171be27a8a65dbf73f7861513b22d75e91857f5001e34530f849c41c34c7413aaa0d3edbf0e1d44d9396c8d878345ed912cec93045b98121cd6c22325930ecf549a555bf5b32ba6fc27dd750b383553b16b2192745a2c00734dd6903f1efb92ae17e9bbe8913f9ede63d2a0429075cb7783dea7946303157eeb18c1108b90bc860071e7389a27418578baabec382842a3aa3bf3525e7a657a3e562d2bb28e50ca682c0724f814c91f2985af4928fe259db2a04eb4ba9759a3e42f0eaa0c2\nresult = valid\nflags = Constructed\n\n[d = 645ad7bfec75ae9d5e7a86509e90ee6f8fb8c5a35fef3528a9b661afb714565df001981c1a9f8b7020103c36b548d34bf05386109c7e8b21ce7fb658904cabb354b2f565da32538b8e12307c4f77b73407841dde34c262686d67c2c544add7df4649faaa3bba4d482d5e53eb9045e7ae7f59007e37e9912297a29dd02411f030db41fb1c947de1a8c5de0c62937e6704aca0b11aa8a0e189112ff476ac3c697a4fc83dec0ec8e0700ed4f4706a4032007797e2a852c65505d677727ec16bfe601e6f04e215ea7c74a7940272f82b878b2eb7024717948ca2761ad2d7760f6a835727ea2f3b030764d87f485f5ede973c3fa1f43b88a72a285dcba96a990f9dc55cef988be930ba7fad5bb573eec0fa83d726ecbae2e3ce303fa901cd3dc1da9a5efcb4f2daf6df4131c70eb5d74b3f5cfee42eb45c04b5af07534008fe2ca4c1cb278405a3781ae235122eaec72058af5dd620156411e7617f030930b9125a992677cac4bba2c70ee1ea893908d641f2d37ed6403f7c540750195c382643df42548624362251bf959f151c5d4cfd5892c606f0ad55a5c2fda969b6d310d1c5d554c2ec1faf674e2860613828c93a4f36711bf0c4ceba4e2ec449e9c1787c5d47458e33c34577631f6bfeeffb581a8898a4a1503e271e6a42079bf2f9a1c82523336019960f032c979b1f196815c472abf330c6d5467085c5]\n[e = 010001]\n[keysize = 4032]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00995756e3c6914e73aa99b257d9f40e8ae0f58e9bebefde0cbaf48df85a5143f1427e5b38f98ec9a1404d54c108b7a55a6a95998b23468459a88b80eaf6e7bcd136e217825ebf358825d9f8a64f2e0a3a8b6458c159e59a0f93b4de3acfbd090fa1fd6435598ff3812bb61185f162ba0535f593ed73b34c2dad2cbb4391ed5e168bd05c567eae42bba9975c14e3b259f10a602a2eac4991f655cc8c65c7f2ffa6f4ab3ce64c211bf7f32f79db861fdcab73bd5500160d4f0e2c23beee6c0338cac54e30d781f856a8c1c4e92d066536d066dd4339a35a5c3591194b706682a1f1ef9b111542ea6d05a3c3018392db8cded04e54d2ac73115f31764c9eec0c453e52ad7c9b1b28b47743138c8c624731b41c51d05446fb16d32dd756a74167aa40ccbf95f76f0b94986c4daae1be280bb03ad0c87448d1c533e12af7c7331bdba5c0dca490da65a8fc5f3ead0fb49c7a8be3e4470179da12db7ccf2dc16faa1c82c09dd26571478a162c8850de1e9359c4522dcf83931a662069992550e37b890a17c3dc5364f144611f452a6289e11814e21be16d1c6ae646ff6cd5c22bcbe94b4fceb72949fa900f68afd5fb7811d11ab4169bc1ed34f50dc79b4dde4dca668e7921fbde84719096a183de404cdbb50d8e1870f3d1a36ed7b8c6056beecf63da2ee3ab2ef9e80bb5b564bd78647354907bb44a815c583765]\n[privateKeyPkcs8 = 30820919020100300d06092a864886f70d010101050004820903308208ff020100028201f900995756e3c6914e73aa99b257d9f40e8ae0f58e9bebefde0cbaf48df85a5143f1427e5b38f98ec9a1404d54c108b7a55a6a95998b23468459a88b8", + "0eaf6e7bcd136e217825ebf358825d9f8a64f2e0a3a8b6458c159e59a0f93b4de3acfbd090fa1fd6435598ff3812bb61185f162ba0535f593ed73b34c2dad2cbb4391ed5e168bd05c567eae42bba9975c14e3b259f10a602a2eac4991f655cc8c65c7f2ffa6f4ab3ce64c211bf7f32f79db861fdcab73bd5500160d4f0e2c23beee6c0338cac54e30d781f856a8c1c4e92d066536d066dd4339a35a5c3591194b706682a1f1ef9b111542ea6d05a3c3018392db8cded04e54d2ac73115f31764c9eec0c453e52ad7c9b1b28b47743138c8c624731b41c51d05446fb16d32dd756a74167aa40ccbf95f76f0b94986c4daae1be280bb03ad0c87448d1c533e12af7c7331bdba5c0dca490da65a8fc5f3ead0fb49c7a8be3e4470179da12db7ccf2dc16faa1c82c09dd26571478a162c8850de1e9359c4522dcf83931a662069992550e37b890a17c3dc5364f144611f452a6289e11814e21be16d1c6ae646ff6cd5c22bcbe94b4fceb72949fa900f68afd5fb7811d11ab4169bc1ed34f50dc79b4dde4dca668e7921fbde84719096a183de404cdbb50d8e1870f3d1a36ed7b8c6056beecf63da2ee3ab2ef9e80bb5b564bd78647354907bb44a815c5837650203010001028201f8645ad7bfec75ae9d5e7a86509e90ee6f8fb8c5a35fef3528a9b661afb714565df001981c1a9f8b7020103c36b548d34bf05386109c7e8b21ce7fb658904cabb354b2f565da32538b8e12307c4f77b73407841dde34c262686d67c2c544add7df4649faaa3bba4d482d5e53eb9045e7ae7f59007e37e9912297a29dd02411f030db41fb1c947de1a8c5de0c62937e6704aca0b11aa8a0e189112ff476ac3c697a4fc83dec0ec8e0700ed4f4706a4032007797e2a852c65505d677727ec16bfe601e6f04e215ea7c74a7940272f82b878b2eb7024717948ca2761ad2d7760f6a835727ea2f3b030764d87f485f5ede973c3fa1f43b88a72a285dcba96a990f9dc55cef988be930ba7fad5bb573eec0fa83d726ecbae2e3ce303fa901cd3dc1da9a5efcb4f2daf6df4131c70eb5d74b3f5cfee42eb45c04b5af07534008fe2ca4c1cb278405a3781ae235122eaec72058af5dd620156411e7617f030930b9125a992677cac4bba2c70ee1ea893908d641f2d37ed6403f7c540750195c382643df42548624362251bf959f151c5d4cfd5892c606f0ad55a5c2fda969b6d310d1c5d554c2ec1faf674e2860613828c93a4f36711bf0c4ceba4e2ec449e9c1787c5d47458e33c34577631f6bfeeffb581a8898a4a1503e271e6a42079bf2f9a1c82523336019960f032c979b1f196815c472abf330c6d5467085c50281fd00d2462005443fa04e3d3efd7f325e4f88e36c3b8bfd1877a8459782addee1d676ab3adfdb0b15377a4399edd4163c1b18728247f73379d61ba20d37cda15ed38dff0124dc34f38aa72deb4e2b2499273ba56fe5c20464ab2540ffbb36ffa06c5c1789ec07184b6d1d08757fab0af074aa60ab2d87d9c80a4fc067fd29d688aacf18733d8aa9bc73b04570a666354e95907d21a20da821fa8951df6457a7dd71d9ca50ef676b728632d4b250e6dafa3295d0202789c91b2e11dfbb63a9cf6d787b7629a47e0c81e7f1a7289a54942533e972b8a9491c9c13fa4add45674520121d9a17d144d802fa61b51b952efc7bfae69fe5b1c073806a242a79a8bf0281fd00baafc9b7d6686ea44bf6e83fdcd5180ee05f027897c60a1281bbe865ff49d110265a329d3b35c12ec2af34591f296a526814dc483cf8faa9cef2b7253eb419065e188312943dab659d79707fda6c95681cab1f7d30eb5f69b81d302cf70f035ccbad7f968d3c92ad518722e8e568bcb243a4ddb04e7ce7fcae3820bbace604119486dfce069eac4a330ce2dc9b75a689f3e713ced4d56c6981139fc1f13b5cd613c084c16555a060135df9a03baad4f459f82a60565f8a73b4fa3d6c6e1d685ae5892be6e0b4c4e5de289115c9ca7b8e38f2f9fc5ca7d3d1ad84d9db65f34cdb0c6ba88107f3ef06131117afacb91a7ae6a617bf56b10cd5fdf624db0281fc5d6054b1e207db39434b68a90686090dc1e87b5d040ccc7e46412cffe73d24ced7e5322984776c8677e4b04f817c399016b1b2219d935a38353367778254a8dfa2c1304c359b7d1416792ae24fc34f3fd68ca55c0e3562270e014272fefb8f8329d4cea2abf03ac92ccb78e14cdf50ffa423fff9170615462b2c42a944a2b62f772d1dc428f20df1d6345b4082259e976669fc1bd2711c5fc4a2ce5d7aa704faf13415cc3853c832646fb72b7d4ca4101137663772be062c5bcd4c49c95a54a986e4a12e74816fadc94c67946da143b74481aa7354281f5b03c9d51b320036eb3c559d51d41726772344d76fe121715ededcd29da2ed00b584c337e30281fc135609caa4c6844f381f06c736944bbd9eb7b885cd12921080a779d6b6ae6a9d059bea0a270bd64a8597a810630de3194df67b2a70464990350326bd10d58e91fe4503ae74f43e40742313e7ea33bcf5dfa249cca9b8775577e06e10fa35efdf38a96bc1a83751e9e9bbd97dcde51f4647835802dede4918fee2896166f31c10c6158230d0b6b699a8d7f8d768b2b2e12f060c232c203eee5e942dc3e4bc854d1716a5a972598016f36a94646849b56ce9b4ae8ef3e3496fda9ae0a9ce6df55514d93456e18757ad8769243de17cbb776ba69f05e882e9899a335c6d410e0633da017c9e80b85f557dbc137bfaa3e17e414d8ac022b68be1ce4024690281fd009ca755f4180ef8534f2d2ba24c3d125bd4fdc1f2793dbef9eda5c6397f471c207690b30a6192219d0af289b1691be0c8e6cfc89b40a992e1d2fd11c5302687f7b736bb5629f8b4dc08c4b15966d129980d5355d0963cd4d0b2ddbc683e56793c79292056578f4a5d13ffda5f6565abce5bd049bf571d961ea55cab815a075ea063eefc331df814a070cab6228760fea1bb579bfdf9bfc179f5136ef6a534ce9f06f4d11ec339721ea3f05f9fa0fcf4a767d01463826ca65d03fd64f8d3aae895ff040266b5fae4a5de892d560584aa6695091438bc07b830ab8824b1e24f75b8fdf587c508e64b7096ba8d7b02e3a3b82ac5a4b9095c95991e48e215]\n[sha = SHA-256]\n\n# tcId = 765\n# em represents a small integer\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nlabel = 36ba1262901a8648cf7e3bee50002d6fcc3057d112d8836702e8c199b4c4edd500000000\nmsg = 1d18a7fb7eea96f8cc8830623c1e90fd599db85e504a07a4013baab15bde6952e2765bafbd1ed49befc869662bfd882b638f71138263bf5f01d1de5dd8cc7014ec829b0cec567ecf663642b7b9942aa8ca4af1542045cce7b9bbfd61f09db44917c5aa35ac9b5fcdc25d03407878636ea71dfa1b3c35f2489880a8677fc24dbd302a9c772bf34eca34af4960e92e578e0ace96321ba8ff4edaf868ebf76670e60db7f4b5d4802e6d0260010647734697fb3141792fe78f0aa69ebe5f95c377cfec8c0f6b303d5196cbbc2483276fe92dcfc5ab7a2a79ea95337d43b3cebb6e2f3f8ee0037807a567321b7021f387de6e57bb222c6fc6a095834febfef32a29125253daa6538fc5f38dd3694061426a653d47eb52b18c3ac8a17a0855b214c06c072842ef0627aff47719085508b5a8db53d0178f9010108ea6bdbd58ab5bf799de75811a524129769d1066747d9833607448dfef5d916424913ae1cbf025a52d69f24a0f62f82a8a931e2bd791699ca031553a67bf91fc6741ada83882732ab38331f811e6d366a14ec867cb2babc0bc2d666300684a5b43711bf5d688ceef558f7bb1fa23eaf77f490bb7ebc9e1ee62733980161355\nresult = valid\nflags = Constructed\n\n# tcId = 766\n# em represents a small integer\nct = 26dffeb2ee0b341601118e4562422f5066df1f3cc1e30e69b05d29ca30a35c78f477d299cb4e05e69d8a43cda2f5895d8bf366dfe735cfdb1f6b5f5a73a4b67236489ed27531a8bc1aa83cd4b1c1bc1622227d2baeccaad52c6aa0d06fce807e1b41f88888b6b75fdd067b1999d977fa1a873b4e433bc5d612cd2245624d5372fab283686a8e530d9372d3156b71dca418a877a551132f9147b022e6d9f5b7ef0aa735b279981a6d04840a169956134b2567694a17ab9eb2a71de125b0686ee3f980188d7b42608c781c74056d767c2ff7678150b0ccecdfdde81cff413b8ee3f4240cfa514a81367eb252b4224399fa25240508f6157c5eb439da49e814d6d52d6a4aeb7ef99f4446d77c12aafc68c25164e658b3716504bfa8842e41ff18d3410c0f3e41f6ed70596c15994e3db78ec90d9994382562753c1b2cb9af81c56c93a54c881a93ebe4377bd7f23f689c67b8a4da47547150232c60a7527e83b74c1f1323b4a1b4f43e74eea606cdc3afe734d4eaed1147b944cdbeeae780173a1d45c4c968eb419d760567a564e2baf3088033528910d8c3d14f61cce10316b96fe164c3561134e90fdb3e5a326df9a5491727763bca940f4ae77f5d204e2bbcd19d2eef898baea8267f97a017a40277a76745965ada6c3e5b1ba9139c5f9750fa3b7163bb2b5f17f0644f9c55819032bc8cc37c3663a6420e\nlabel = 36f0a4f561e1132674a1ec798588717c3587d4ba26fb61b68188846604f7f14200000000\nmsg = cd3ae9483de40d96edfc743f505f66b1a3e7153b39f869b220c16f434ad0917cb5190d26e58b4c73abd91c8563b01b4585896715d05d819759acd7152c7db0479d985d0450664f83068b6a746820ec792d3d741079f109bc7f9cd2459a9192b717bbfad44ba879d5ab31f41415036595aea1e70451de7f2e17bd37b9b9257f852c0116b1a1940c45d5597200c0472843bfcb41a4c7f917eecc8b09f5dc01b6ce9519c7605b507be650e534ea95816498c4dbf4c1563ff9f86f71b9464548463564d63f3ec0c62ae240a5c8a4954a475dc2a674e1f1f573d4aaeba08902f5523910f7a038ef3b432b80a555d6fb55ce7a46ef4a5ef44b1c2", + "f3a3aa9fc5c35cdefeea9d3cb04bec1ada6699a080831e7b6ad59a9c3555619ad44c4adb6ec700514ffff89c5a76153c93d6f8fe592aed49d97ce3b34af11581a33edb844daf0eb348d369b7fee4cb35620ff8da4fcfdbbf5b54a80331b451406daea34901ab2d6276a64e4220c53715644e767eb1c061988b44517d8901428fa0ac1ea841f9c4008fd27e952c72fa1718f1419fc6d16a079345b09dbbb0622f0a4ed188065c508e4c5700b217c1e1ea20974abbfcfd2df5def77261e434e\nresult = valid\nflags = Constructed\n\n# tcId = 767\n# em has low hamming weight\nct = 901dd7128483e779eeaf0ee769ec0a88b4c92b61e067b8ecc0168f37713d659f88d507463772b7be73644699171441ef166a267872dbc94354129a16835245b71d7b377403a67d2f803cd5a37909b91ed7c668e22c6d8ed8a1652599af408dc59b6318ea7404067a1521a0cf1daee18f01d0c1a9682b3e5b9c60f23826382daf036f1936a7627d0c9313b994ef394235fb763d46c945444beea3139b4660fbec15cfb358a8e2cf16326574b77e946821e4802bf62690bd93e88ff4d0cd072cb56035485ebf0eda199f9fe1335fc1b8efc251262213159a6c7384b137564632c496473916d2db6f98cc5a91a8037b9b1b6b73f349f73adc94cd77ae4ac61e25d734a64751f32af9ee9aa68cc5e27be692bea22c1a351ba88d0cb2a5ba67296ea653bf7149c76c654faf30cd6ca8356a5b3a9f0efb2d0047dcc9bf5e92ecd86086f8183619598ea4f4677adef3da7569a8621e665af6ce4441f516d24c172589eaafecb27b161d12ddbd167295e407435913b833426b4df607fa5aec4f4c8ad5e1104fe931f635f7658e817dfd5e3a356bf6a2a82d550024559ad7076fabc7bdf1ed5df23dedbc672602296a9f4eeabf0dbeb83db5043a1cee304a28457b9f511bc622c079394bde919a23ff64b3d495a2cf432819515309b058803ad1f2db4c802e9f59907e89d78b2aa789f97f59bad18002e35c8a5f72b5\nlabel = 30e96d0ca07a37537f94e9fda65a3d4a913fd53d52b2ba77c78a9c660aa0bd2e00000000\nmsg = 25392a76b54b7238c753d39c4b4b89e4c7051d27b52044ec902dd26cca83a611ede388b8714db9ae8c891083fe4b06bdaa99f5a620c2a727e6b733b187e571644f3a8437521add26e466a406d4170469612aa43945d096a8c6e76646347e4709c118db51e2bc353fa90be633441ba37f4652b1c2999633cdd2c80da89e58649df7c18ab7a3f71bbf0928f305faa0a3a5b07e9958f9a61f74e7144d3d7ca8509f773bed3504f5190d8ca447fbbd37cf5ec2c4fab224f5a106f6a10f6712e981a9da36ea7b2dfb7e9f26ececadd53480a1b2b75ccbee2ea3f8d62002796280cfad295ae004e1eb31f69754e13c7dfabe5b365c0903863686d55ffe3f55a4ed9ba80358c2b0c277047916d21833040aa484c8a20e95ce453cbf5a60d9c9d89c980697afa596e1b4c6a7dadc950442e195f7f1bcf89c73f376334c258ca1d5928c4b8eeb5bc71139f0a9e17fe668ed4e032e9a49ca74b6aded43aabcf508a64d39898888d63b4e3ad6892007fede0a4c4ec46961f945345a15704f4a5470d7b2c9ef0089a25a95699cdd9547d22b474aa8dee6ea9cac14f57a46477e9460c91497af98f67d125738a4c9cc7c11dc2a5e44ec5b6de78a8119\nresult = valid\nflags = Constructed\n\n# tcId = 768\n# em has low hamming weight\nct = 3d293555e0bc2eb79233374c321a0cfcac049514733035b1862467c7cbf12430622d5f20e03088861c7789d75f992055fcf4c35e6f9e5fa2fda30e46aeaf5addb6c4ee78017bf88faf710655fc54baa50eca574a11a3ec44c3ece5a5253d56a3e0a669a544a87ad4e034d69becde0d3ac46d8f25d361b3db5e0ca2b5ac789a4a3c6018c80ab367620eb2caeb9a3a79cb6a33ea7209563c8bc54ddfea45c7945f56fe7ff955837baf950e661fd333bb08b0460334c174ea792c5ae2b6348a2c613e73c28266e8790ceb518cccd17d4c7c1f863fdfc003151e4259f073c88200a1b13d63fd73ffde0e937f87cefb031cf8e11ec5bd3d429b9290bb11a13027887e44b6a0f62d683ff8245819d18c868e78cedad6d7a8e820e49b58a3f1b4be94f6cd4f3fb90132726c56c2a92062eaf952c3134c532aeca6db051cc5b480b79574e5943c5957575d3f9fe435c8ddaf477233dba495fc3b27a38e13fbfce3a683fd6d403070e1ea6ea4a5571c2f6e223ccc215861561b9a6292250eba560c42a79eec8bddb22a1c6219feacea375777a5c40b58ec68ca412e8903538f9df4174097cfd83ee2a5af255386590670b9c67d7378cc857b9d60241e1ddd3ae78f328944e890e6a923732c9b3c6f94f79ac5411b5055071c35ceca137d52edff378ea68596e88f6861df6f7152b5f584e3b8535bf124eca08ec43899\nlabel = a17bf82725a8a33842e6ecce6a66e70344c6e8f11a133ff1d135bbe044a6572500000000\nmsg = 58036899be9c21b0d9f8727334c95d6a9549cd51fa178d4977e4b075a8ee8c57cea61712782e50924102d8ed834b3b3e66834b9458ae848d1b914a6d8716c64643e82114357fe9e19dab9346b3b568d13e92a2e360d3915aae23c856c4f879799ea4e4bcdd7c9731b63e1f93e4728ede76a746fbab41407068e153c3e5408f90614d48741c814791c5c7b5e9d1860229ad2832433f595188c789f37de72a1910073ebc50a683d87199d8f76e13391fec6422975c87a2dbacf43f1873b9cf176389bb56528eed995e9dae3d7b5399f0218c66e809c931ee687e509bfca61919444a977bebad37b7324e84186fc25fa331e9385325620b9cd2e8ca94fc5134d9d068a22408d22e9c98629b72c8a51e1bd60e38824795d26f90f8b63203714548b9a1f9f5ca762279d6613f4fb1cb0fa223c563b0ad4affba196fa4f75cbf3811caeae2ec527d80f2805ca94d6271e575c7d2e595427a026f53b8c046b78522ae00a2451f5bcaf96c5b0f0d10e9eb37ddb36e26cfe898338a5bbfbb927a9aa2290b01ec4efe26970d5d0f26592fdcfe4dce52fd4ae817517b5451b005fac6e9b105676abdc8f6fecd639d74466f79237ce45bbe1985b542\nresult = valid\nflags = Constructed\n\n# tcId = 769\n# em has low hamming weight\nct = 867dc985d494c00c280af065fd02812c208d7613804005489c2191da42aa9da5888053526e3606f8aa0e680be42f950a9793097be3ed667ee598a238a82a2baf77782d45ffb2ae2fe22feb3830bc81cc449de2fb7a23b7642bbf1286e64891ed969bc5cae6b9ef179ae25f28834e4a4b0b5ef5a8a1bb74aa15b7bc8435a56d4b8f745ecd01c86276f750a8b0c4e0c13f94a9473fbdf853a80f2d570e8c6bf025ead71c011b127feb3c8e065c9d71ca5cc0eedb0e1a2e8270d94a9bd4f3248425a2202bd4b5d6769c56b2b4f3b921d115d6973bba6bb630665c97934c05df055065da331b39c260cb2a8556cd4a98cebe343a978f7057dd16c1681b991fafd459dd96bf9e88cbccf57a63f0e3932e0d7b546ed56ee48d1add2e5d478ae4e50ef0ef592444b4d8506446bb1d13d540702ac55c7569ef51881a7e0138afb7e606cd49a577846a7ed32df08e93795267da4efc77eca3e2ce4f0a3485feff7aa60c4b95b1f9b6906facb93c2e629577515f2761dae322d5543faa57032fa18b249e922329d742df3f4a1afdbf9820ff4be056662f523a07dc8fbcd6e12e2bf04a0bcd884af9fc672521b44f57ed79e404a1c76363cb23f44a8511d0f50d18f83d668d9b962a6c53bc2de9bfeae3d84fc0708b6b05645f5d6f04307a2d368ee79bd06613f9d44ae5165ed78f51dcd938a477a22ac6a5f1748e4bf6\nlabel = 4d3b7ded3eb659fbab4160cea00a1c79577b55ade5ab2796fa67a33dcbd0b47700000000\nmsg = 4f64ac98b6992476faa32bd8e9adcaca882be015d1334dcfa73be01f6cf2037537f7b5e7bae9ae2d0f2b3ad626c5edc7e1bbdc0dcfc734610ef80b9103e8cd9e08b58fba818ed8bc26a4d4f3f9c8e0428423e6b8f482e9a34022df4519e9b8d51795bdfae9d7290dc5b7f30a9c1edb8e6e80285406f2840787db64702983c511ae30dc0b26bd42d1e35bc059f2d5f7a75dff2dfabc84b21240c247b8391a8a074dc72b6af94b8c0363826314f4a6f357810b22aee3183486e76c49c653953841188378df9571b45dffa3433f0efef99508065edf0cbd99281a36f6eb709339c5aa664c89af8b6f2106df613f828c7b2573fde3940f9c3bda1bbd559ee226d7b248a5cca7d5200ab5d7261baeae324cb19c5fbc64aa142a50127a1e79d200040038386053ed98f48c926f16b9ed3af5410049998e1361fc5526729cce1a7a84a1bee23cd0cfddbfc4d3ff514ac7bd9378aeb3a096bf158c6ab4302019f8a85433ff4fdeb79b5b3708cf81901a8caf9b1335971f71275cc87e4670908313d48f3cf305db5c7af567c6b06b4f084d95329dbe0d0acd2b81580f81b6762f848e49d9bde6db33512ee3320a42565b7164ef0d7d0ce1d6f72b\nresult = valid\nflags = Constructed\n\n# tcId = 770\n# em has low hamming weight\nct = 739d12dc48dfc6530f6331154fe6c9c29912cfbf6a9d8135a27e817fef3c4bde55ae862de38ae889525d9f6387a55302d5e87a3a91d148dc9d73b8ec3196583da359e76649b9888a16cbe9ba97d882661d61bbd1b6aea1f9796e7ec3244c62e0f3947079491b07e6e3189523d3d575fae30a6b4e0461f8ae059d44df37c34f62dd9e4b8f06aefe6b0f3dcef84d2668b36552e47944938ecb6fe12589eb34dee8d8b3e6032fefe5c6a67470b6b6dba3d09f374edecef9541c14adf1dd29ff348041c09efca8976a83d3d2ded99b692af325ff7022a1e714e1dc6087f39b078269e24862b4ef2a3b232983ff0c95d0ce72e9e9fef9d9b0e9383fceb5294cf740c967458c04726c379ea58870ad292c60353831a574ce199951c309b2cf91d552b9431259635d83c54f9186ab3f801f125403bac8ca95fda268bb7c8d1e08177894815431a2e404eac4eb7b6838729cb1749ded53a26c28ce9dda88d6905018f214e67276949f1500af55b673de69e7a67db140dd57b02d3adb2a9a11b9f6f3127ce43978e5048d1dbadf841a3fd88b96d8a95e799c8da9672e4be6bb812a8983916ea77620eba7feb33d9731c9830aa20268b031116f5bdf4f47fd6ab2f01fe139367ef7ec584a433eb17ef0003317b6246a7029987b180e93a09deabb12b285cbd681b37d7809ef165013daf0c9abd6223207c8bd723c3c22\nlabel = c42a0af0cf6540094ce88e156c6f13a9d6ab8d36a9c7532841a8ebf6dafe277300000000\nmsg = be3cba53b429e936143e136de6fc30fa1c91f3f1c0bd82a33f56765b304a1dd44a24fee2883e73914073b2e92c9014316ca27587995aa07b6edca41ec3cdd67c414251364d7b7be4e7b83db217b47a40e9b8848dc764f989cd1e1d66ac84c68fb83bfce6281a98ff153b07c5af47755b61b3a507dd5131a19c1a859b33a794b4bd1a7e16a793f934558cd00e6effacc4fef456acc13bc815046e282c9b87e72f33b07db6320a117e74f3a7c45af5b7043b905196e9a4400c3f6bcbd47aa00f29ab094a71baf8a19a8db59778816a28a03b46b2d0cbe613644c5df6402e39c878143584eb396b2230e0b", + "e33a4e0d8d02d15628a0a3420429cbefeb8d4128cff26cd051b7b4c4bb0ab6aed614352cf66da8d7a7b00e46ac9ff86251f7b85c044082971c22e343b401ab57c978250597e27fab6ffc7f1d18cff956eaaf9c317cb82b32f342099582e6c4ec53d7d31fb4fe7b5394221b00e2fa6cb5a1218fe0db3f3fb5570d2601507a7b5bf75dc6f262222e755bf22b02391f0361a189138af6f8c68117bea1035f384452841b7d91137a970d9dfba0e194c8fda769c05ee3f82da90ed2fc9d2edc8953db5b293b3e55065f5e6ae1998f2\nresult = valid\nflags = Constructed\n\n# tcId = 771\n# em has low hamming weight\nct = 85e36c189212207dd67264ad00a49e5eead977895d106b9551af968480f5e64226cccd03ddc2714a6b85421c6b8ed498073aed03131b9f61416e50f94fc2a0b115b70218b10980cf3f84d3963332d7728b566ff6e6c58f505793d380c9b33420912c8341e55ea0b4c141f1bd28d97de1a8a651b55388ac26d0359d6aafade11be18e1a9b090cbe11032025c18cdcfc67b209f543f7d7b5d5fb92ebd1c989ca78c4b285ecdc1311bf2ffddda98449c0b13de1ecd80c120ce982a9b5b85cbf8e93eb8bb17821d69811faefb6c9f4992885e8fdb2375f68bb4bd3d183e2966e5fbe425a582c13a143622c043027e2d35f6574d58cb80b2f006fb94163bce16ec2e540024ee8da188547bcaa8d579642d20c9e06f7eb29745f99c4ff0a5ca6a815de406a64887603b4f2c65672dc279d987aba84b3c7f37a9bdb9b0742d1f62a50ec92b8fea87c5ca84aff9943fa6a34d656820e1bfcc5895389870cca6f49c2e3b16862b3fd8f12973ab778a10659ecefd945f1b13d9c8bd5be10a8817819f5dea3e91dbd19032bf339a325e18727beae8a3a1fcc07691931e274ffafd4ce98e1f4ef3778f7254ef748b87237bd54082d2340c3ef3b628fe9fac36ee4d883aa6876a0151704eea3a678fe74c23860bfe610f15207bddcd681c65efeaf7dca35005962b57d0e463b77e430ec9620c9aa16fe67d1357bf23be23d\nlabel = 798250bc59a7dd01906d16cc87b8741d16a7a2168648d6a7d51e0af8346347d700000000\nmsg = 38854b2bb70035c630eb18f92cdb1333a14781df75d9a6fa5df90a9f307ebc1cffbf3575bc023a390aa5b33488592d80753b0707bd600f089522189fe3129834480d5f9147bc33e5afb7ffc5bbfc1f6d7b87954382cb8af5b56baa01898d06130b5f25ff96ab9636b27cc4ec040c5c7c962933fefb64aa53799a81300a71bbcb5d45a29ec4f4c4f20d16aab39cbca96f786797bc871efdfa61e36ff896599417d33c0794e550da399e38e183115aa9169008be498dcbe8d13ce1ab10e0a4868e86f4c68fa377a119679740ff2fe1633fed84b8e2a59f33ef3a2f13cc2f904b0a0c2801a10c7d16b818c0a0b15dc9b66588991144e8ebd1c308bceba8cc36b7b417f0ec2d6c12aaa91970802aeeb2f83e67ea7f85ac3257087f19b0cd37dfccd7ebb0f40c86ca954588a92b44626d3281ba5af5c4d999981fd48ceb634757a338f969d5ce09f18dc24f7cba6de30e47aa5e8eadd957f3c121c73f32918d2a0e61f2469a9de31363f28ca0cc85ada3301dd9f4de8cb3551fc19c82aea08fe37c80fca221e54b58db3f4ddca8e89cdd30490d092f8c270bc54c23c7a1095a390c3ef45b50e59328e28877f81bb05c2bb97c2f33ceed6c83\nresult = valid\nflags = Constructed\n\n[d = 0082a411c8b1fcc0e52f27dda23b1004f1f68f4ca36b3d4d077bd6105d63c4f42c676d8fc08e031c9297617a2c53c602a207046f4b5de2f1f78f2054466d42fee730b0b95557d9965ee3a96d870b0cd882786d8287d650cb5f6b1bdeaf03c9c4bf1aaadffd747d725cf58ea9d184cc0cf4475064df227a57d8a9493f9b1eeb60dda43c3e89a57097f5a28e1ae2fb63c62b389d216dd055aa82655b01b2a0fca375aaf5dfcb179e9141c88aa3f5aa4323f3779101612505f06c60ef5077b2a46d5db7555ac0eec10f4c91af2cd605e34bdbac1548424c878a91dae7ea391c95a85ed55318fa5e9dcd464a11fc5425df5da1d1d33fbe659dc98138bcb73f2f85f1416dbf30dd4336733c04534da98aa1b333fa0444a4b337ca5368467dfe256d04d08aead94e39131110db422603fe85812cd15453ed02197f7c3ea38a84bf2eb21d8390acd3f2e955d7ec84286987b28ec5aef7929701dd466c7c1bab412e1550c118696bf47b3ca98435e5374852505188b8d70e46cd1b60553a5f56d2c6c47179009dcc01]\n[e = 010001]\n[keysize = 3104]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 009ce4a11414e91683314b711e299ef58d817c68ece20f52902009d096bc7903250dacac14afd27d454d4bd21c4257f85820448ec74b5d5458246716f04252114873e3b19c867b00ac4e3b1ac1797c5fc0948a4095a1e87c8f5f6daeb754f2324d6ddc935c09a3cb86dfde5efa44002d563106891ea4e67eed97b4cbbf462fba0355fbb9adea1589f40ca565c04bb0ba23bb3ac683b9db0e7b591d5de431b42f174fee1c8e06adb78609f4e2654ac433fd721d3621b8c65de636e9ba769dab70079a5aafcbc12257381f14443892fda063ec252fe3934841c766208945e310693e735ee817e8639a8a9eade2f2e0112a845c83470349c32983e8b31407aada9e451f6973d47e39428da5c820681b8faec473e971eadeff14efe56e30060fead78f9155f5b9fb0807c0b800123f03c6ac5803334f6f8887304913198d98b2a97f0876ff24c3dc11644f6a7bf0e4e3a2aaad04ceca84bbc22823fb6559e914bfa9e1617f89dda2e90780ac15f12431406551b1f46e9995bb47eef70f6dc1d0e9929a22e5be91]\n[privateKeyPkcs8 = 30820710020100300d06092a864886f70d0101010500048206fa308206f602010002820185009ce4a11414e91683314b711e299ef58d817c68ece20f52902009d096bc7903250dacac14afd27d454d4bd21c4257f85820448ec74b5d5458246716f04252114873e3b19c867b00ac4e3b1ac1797c5fc0948a4095a1e87c8f5f6daeb754f2324d6ddc935c09a3cb86dfde5efa44002d563106891ea4e67eed97b4cbbf462fba0355fbb9adea1589f40ca565c04bb0ba23bb3ac683b9db0e7b591d5de431b42f174fee1c8e06adb78609f4e2654ac433fd721d3621b8c65de636e9ba769dab70079a5aafcbc12257381f14443892fda063ec252fe3934841c766208945e310693e735ee817e8639a8a9eade2f2e0112a845c83470349c32983e8b31407aada9e451f6973d47e39428da5c820681b8faec473e971eadeff14efe56e30060fead78f9155f5b9fb0807c0b800123f03c6ac5803334f6f8887304913198d98b2a97f0876ff24c3dc11644f6a7bf0e4e3a2aaad04ceca84bbc22823fb6559e914bfa9e1617f89dda2e90780ac15f12431406551b1f46e9995bb47eef70f6dc1d0e9929a22e5be910203010001028201850082a411c8b1fcc0e52f27dda23b1004f1f68f4ca36b3d4d077bd6105d63c4f42c676d8fc08e031c9297617a2c53c602a207046f4b5de2f1f78f2054466d42fee730b0b95557d9965ee3a96d870b0cd882786d8287d650cb5f6b1bdeaf03c9c4bf1aaadffd747d725cf58ea9d184cc0cf4475064df227a57d8a9493f9b1eeb60dda43c3e89a57097f5a28e1ae2fb63c62b389d216dd055aa82655b01b2a0fca375aaf5dfcb179e9141c88aa3f5aa4323f3779101612505f06c60ef5077b2a46d5db7555ac0eec10f4c91af2cd605e34bdbac1548424c878a91dae7ea391c95a85ed55318fa5e9dcd464a11fc5425df5da1d1d33fbe659dc98138bcb73f2f85f1416dbf30dd4336733c04534da98aa1b333fa0444a4b337ca5368467dfe256d04d08aead94e39131110db422603fe85812cd15453ed02197f7c3ea38a84bf2eb21d8390acd3f2e955d7ec84286987b28ec5aef7929701dd466c7c1bab412e1550c118696bf47b3ca98435e5374852505188b8d70e46cd1b60553a5f56d2c6c47179009dcc010281c300dd60b390ed7e73bc47d85692928b6a7669b75ac07b0d2d5e2aabbc97dd4f26f4504ccbac15fc18c8681e24241af32fea58e247ef47ff841fd88cd482685b24de080a373a7b2fb48300b997e911569f64129dc02092b51b0093addae3296c47a5388dd6f8cdc258c7bfa1cde81e97d01f198e6d05312ca8b9c58c2a11df5ed9e6ff75cd6925c52738278b7283ec198ff2c50e793e8e6842c23121dd5a702d312f6a0bdf29dcc932f5f58882953423176aadbf02dba57915fcbc2356d7b6d0e7a4ed410281c300b56e27f9764f02ffafd4689a3d1d1fc4ffc5c0d9d1b052394c72840963ee5eff90310b07cd6b45b0022439755aceaea774ba8aa99cfbfb9dadf8e007faa89329c347181236496485359d0d6eddc3c8e9f9ac3119f02b91e2e94cb63f1fa6bd4c02843714a74d5ae775d6d4422f7c4e99e5b3980bb3bc2ab9ceecc0a503f67720c8f294d15362e36b781c186a3c97c6076bce45d5853e57eb61dfed7e5db0094a28fee6df90a4406a9e3480adb2a972ddbf61a737dbd6f0afe961cdb8982f48326d510281c255e3d5e76ded78d3dd00179ea892c4cc8a79a41137ecc5e45a23e578fa596260b9e301c693850acc7e70eb4ec2d2058e23cc2f62ac097be6ab2b00ac53f6c0d810407e6b072e5c17d3a92e423402eab675ee94834ec84b60aeeb6e186292eb3d3432fbebee50f00717d79c3ee9d7b6dcca1a933bc7776f431c5d245968d3b131497e18232a8f52871bf8a386818ced67a082dc11a448d955e4a021f49bbf3ced0b74edb19d42c6addd0488bd80cbf8a2e02452e48b4fee72ef3fbacad8d83677abc10281c30089a28076d1d68ccad56388db0163b7b725e5aa3053cfb400bdcaddf995b2bea497896cf9c54f0cb5c25a22b0b16bbbb95367344c09c86b102a6b73e0f9b9aab272eedb06ede1ed7cd4b848f98308c4c122e40af7c767f62b329b3c6254ab944d365780c58d49b49d849aadb96bf69c5649985dcefad1d383d3c36d3d81ed16606bb1034e6d38c697bfad68a42745683837036b9cd890fbf797ef5d6690c23bb9e3b1c40973dbf6f62b005f61e5f8802852c84d27a601bfe363640bc16ec9e7b641910281c23c1346eae095cae1ef1feacd06a4c4d2f1ee4b135c2b7f3d22dfc10de6f4f67899cee2504252b572009a8fb80e807fbcd958f45a5237cf066f20788d8abfb76022032b6ad878160d6274c654681b9e399441fb0853c92f403cff13ad21d3ce998026e21bdbe3d98033fd1582169915b67c491388d41cef393ca2f2f583aae732d5d87a4561cfe160fd49a205531a03caa174ac48ba94d18e1b618c4935ecf562736897f2f813a344154387c4cd524115d352f8dfa10883532db127d4dd99258dc2d4]\n[sha = SHA-384]\n\n# tcId = 772\n# em represents a small integer\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nlabel = e3ed53a6f0f18a3e6a90044cfe6bf4efd1d3132cc274e37a1d65f5d86b7f0f44f3c924f714cb548c3e0a776a56c5ebaf00000000\nmsg = 6ce8486057bf0af47682d34def751d65a7cdf2edc2e1518cf96c95d125f17618b9a3fbeefe4b1c29ec258cfe3169aa771b3772c4997e472d65da3736e64120c1cc68110e5491fefde206b71a14cc4e96f826c1af4dea1369d6f29a32c9fb867c8910ffa786e47729ca862fb0e1b3b48700299d591a8cebdf0d8a2c622253dfdbc51fd554dd08d1bc4043b65aacd335b48490779be1b2499a9478415615ef70961421a4bed7be61a42825073054af2962e67d71201c094bb0ba924cf97e6e81dc4ebd9a8ee33030e2356b8e808a87b0cff1e91897aa241e7d1211ef464cfdb18a8881b59e346702e320abcaefe4e9f156fb589d54c340d15970729f64029341f2ba1b2ae0dae77be3a55122c85fa86945d41b1f4ab8411426ffed8fa632e75f609859\nresult = valid\nflags = Constructed\n\n# tcId = 773\n# em represents a small integer\nct = 1a93aa7065475280bff152e46394d26f07621a1e52972f0ee81c4f02985d276904c372f385c0f895c0f719ede146e397ad8e6c0c270d9da4f906c256c618d10cc581f4fde6f44263968f2eeb1b8c9d9240ea0976b8f4dbb8957a39cc598f3b31a69ff5cdd21b11dae9e0dd7929adbd6bcf5a34de85c99f2810960625d8ccb179b379296a26acc62c052f586ff31cead363a717c5726486fc1696a0c2f9d6740709a66f51043c318997911a87770afdf578c8d0c453028f2e597a3c5fdfcf7d039619736de870d84ddba29dad9f590483aebf4b84bc8b717ea498981c279c919c3ef70aecf7bef0fcd9536d340f43be884b3b5ad0b3482718e2132916cd068571b14694c4f6ee8433eaad6a13f3c4ed896ab0fce11b1b9d50c6347acd8ed088ff67aefdb19cba937e07d0705a6c8ffcd011629b33ad514510d5a3a31f53cc5f90817d5420472d554981b0bb9a45673e6fa956937f9f9ada017bc0000e5b6f5c578bc945402b216301afe6b25a1a961efadc4cd3aaf8bd3d4ec77fe13a554be5d73a4b2227\nlabel = f8343ff86e5650448a1a2c372b1bda8bf512701713017b61daa782751d0e3768e87e7b728abd485d2055e2bae4ad37cf00000000\nmsg = eb910d54e051c09090181c1bae07917b6b3b3f57a6a923307cb23f4d5a6e6f4ed2977762ddccefe94f439e9f44435e53180045f45de15320a30ce0139460d62603f53d66d59aae95b7000f0fb3c5d621d3583b023b69873a27fe52aef03ce6afc9b97588161d8a7c0a8fd4ed55174db1aae9e33649c5eab7d930b51f8c713e26c5bcf394a34ff1b893a409bf17437e0330cf4361cffa0e01aa3db7440b7c8c21d9c25e861eb8dad94f11e615efc251b37c63aca012fe778bd14e15a641075c8cbe4e497b4dbec93f63f8bf0e88a3e8e7f7a7aee334332db62eeef019f1ed55158ada3f79a32bc5e48f22b2856805a382b82edc3ef3cc492dad3519657b188e23a1b56155a3789dd2335759757412f4fee48f0aa4dbbda3914fe48c38ea08e835544b\nresult = valid\nflags = Constructed\n\n# tcId = 774\n# em represents a small integer\nct = 317931fe3f6a8b1f899371b89ac3d2497b91536b82f75179c593d8f5d4ec36284caf5587e49a9d1a4ac89ae6cbe6f2da24eb7a0fad03fcc277e0827a3c534fbc16f173cfd3d31279d229e50ed64e5ee7dc0baa5e46a3e9d4e79905cf87d85c2fbab5dda6afa8b9a08e3908e208231b5d5d56fade069077313c6f9494879b59092697c4f974377483ed66fee87431aef2b900896345c7072d705903497575fc22aaa3511a446ba3bc0f8118e3b74adf25c72a56495a5df1c96a6fff13410e7178fb32e5907afe85976b9764dedcea2d4f79fd3570a71844dff060084d8637d63577310d33741265e18641590c0a0a2909f8744aeb99cf97f819d614c751cb2c9158cfe0e3ef4843ffb7ba93958fe8e4cbe807274cb9c6d6b17d12200bb83b64f3a516eca3cbaadd70e4c55c4bb20346fb4f89f18ed70a829518f1b8864e1a83c5db09ffc880667b1ae30f936a30fa40afeb7f9471c4c7199ad7546de568c207de8dfe2bad374d7d4c5bfd7dce4398b4c971ca5700b13683d24e1c0a6d4f487e1f2cc86108\nlabel = f690520506e109069b536e670dec5d61bfb9f180291116fb2af2cd5f27bc523d9e820b145c1c03bbc9926a0629c09d8d00000000\nmsg = 0dae1d5855fa986c2b65cfcb24c2e3e6f84f8ecf91770c501ddb00b7e274389f5e7969dd2a1453e5bd1050f1c7961d35863bcefbffed80f16b2e5e282a0b67012a8ae741efbaddd1e062ac88bea714efd456d9a681c3baff87cb274d07ee5b9f75961b8d45bc2e3a69df97e477178e6e83c2c56e234336f3a219cfb77f32673129d1c3417e20ce9cdcefba9fb83375e0741bb66cd1c66fe62ae1be792a8a76e07e182ce6bf0116ff011810799412cafc477c99976222425a8843a457a3bf80c201bbc3976f13ee9a9b7fe378561b07602b3a2279af35ab5052b4dd71956a19656394bb2f89c7788cd642e3162a330c2231169691b4eeeafdcb63dd7c031f41b236ef579dfb688b0e6a4a0f7aa0c749196f154bdc8256e035e6ec5baeb3ab401872d0\nresult = valid\nflags = Constructed\n\n# tcId = 775\n# em represents a small integer\nct = 84484fe5185d8a4175d1501e8337df7680a210288677d116daf6828c7ac54fb635d29eeb745c517ce98ba08e1613073b1ba012605710cfe22b44d91fb95a07c261eb26afcca8385b0538e76dc4f0838478f0a1538c2cd12b53caa64b3c461f7abc5c01a2760f668db4a92451529c8c3fd63f4e3d15c47e7bf321fd1b90cfd1fa304ad289f36c5700f5289dc20c617e3447e59a6f590ddbacd194a42d44be825ae0558e0e0426b1ea46f86bcb746c643fbe87ce6d7b794fa3e575cf4692a457fb151fd1851f6268705cac43ffc2dca0d50fc1b1fee634478e7bdc5f64f00e53ea9dfe6fe13ae631530b87bdee1c33854e5091b84bafa460617c080bdd06ebbdeed51e9d91739ae2499fac61f980bfeaba7f190eda34acc3b60054afd731d51aeaca0dcba0de614119d4d30a7c6672f92752d0328dd926a05bd46640b98857c82388b4ee20450db739659997aed252d843c6ba8ee9f0616703dd8b33fd4c346593f325051c347fa4302534bee5dd669ab0ce33d210d0d72470e41403f05c812920ee0f603c\nlabel = b60b80e37f381cf571ed38a78823b59f0490163dbe7982f1369e986af48c8638c7937bd7302dd0304aa280e33c2bd03500000000\nmsg = a8ca5ddc13bcfba53524e57c821f4d1a979488b090c1bd30fc08ccb1e9c75b6e9011e7870ed5097b15ba4b0cb7762a52aaf7e68846216572ae70bc2057669d1b3e28deae3086c2309ef24b6d1338364c42c6bf2a5e504e2f1eee10ef2bcdd86054f38f04565fd1279b1a64fd84614b50f0ab724279398b100f10e1d64b6f83773e1be8877f1bb177a3dc0819d2440fc18e0fa600bbdbd6969213ac4502cea518b585dd53d2cf4775d96badc30c6cdd8df13407f5ccd6263b5d5e97a810cf14ab7330f744ba9789d89b56fe4a1d9808c5f65b5ae7c6adc55efd5626506f36ba3410d7ec8d33e69a8740563b57f5f1d612d0e4676d03fa2e0a3b87cf03893a3637b44cf05fa1b2bda733e15b633ed0c8d2e8049a49793ccb77c04874c9c992021ced72\nresult = valid\nflags = Constructed\n\n", +}; +static const size_t kLen138 = 164058; + +static const char *kData138[] = { + "# Imported from Wycheproof's rsa_pkcs1_2048_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 1a502d0eea6c7b69e21d5839101f705456ed0ef852fb47fe21071f54c5f33c8ceb066c62d727e32d26c58137329f89d3195325b795264c195d85472f7507dbd0961d2951f935a26b34f0ac24d15490e1128a9b7138915bc7dbfa8fe396357131c543ae9c98507368d9ceb08c1c6198a3eda7aea185a0e976cd42c22d00f003d9f19d96ea4c9afcbfe1441ccc802cfb0689f59d804c6a4e4f404c15174745ed6cb8bc88ef0b33ba0d2a80e35e43bc90f350052e72016e75b00d357a381c9c0d467069ca660887c987766349fcc43460b4aa516bce079edd87ba164307b752c277ed9528ad3ba0bf1877349ed3b7966a6c240110409bf4d0fade0c68fdadd847fd]\n[e = 010001]\n[keysize = 2048]\n[n = 00b3510a2bcd4ce644c5b594ae5059e12b2f054b658d5da5959a2fdf1871b808bc3df3e628d2792e51aad5c124b43bda453dca5cde4bcf28e7bd4effba0cb4b742bbb6d5a013cb63d1aa3a89e02627ef5398b52c0cfd97d208abeb8d7c9bce0bbeb019a86ddb589beb29a5b74bf861075c677c81d430f030c265247af9d3c9140ccb65309d07e0adc1efd15cf17e7b055d7da3868e4648cc3a180f0ee7f8e1e7b18098a3391b4ce7161e98d57af8a947e201a463e2d6bbca8059e5706e9dfed8f4856465ffa712ed1aa18e888d12dc6aa09ce95ecfca83cc5b0b15db09c8647f5d524c0f2e7620a3416b9623cadc0f097af573261c98c8400aa12af38e43cad84d]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100b3510a2bcd4ce644c5b594ae5059e12b2f054b658d5da5959a2fdf1871b808bc3df3e628d2792e51aad5c124b43bda453dca5cde4bcf28e7bd4effba0cb4b742bbb6d5a013cb63d1aa3a89e02627ef5398b52c0cfd97d208abeb8d7c9bce0bbeb019a86ddb589beb29a5b74bf861075c677c81d430f030c265247af9d3c9140ccb65309d07e0adc1efd15cf17e7b055d7da3868e4648cc3a180f0ee7f8e1e7b18098a3391b4ce7161e98d57af8a947e201a463e2d6bbca8059e5706e9dfed8f4856465ffa712ed1aa18e888d12dc6aa09ce95ecfca83cc5b0b15db09c8647f5d524c0f2e7620a3416b9623cadc0f097af573261c98c8400aa12af38e43cad84d0203010001028201001a502d0eea6c7b69e21d5839101f705456ed0ef852fb47fe21071f54c5f33c8ceb066c62d727e32d26c58137329f89d3195325b795264c195d85472f7507dbd0961d2951f935a26b34f0ac24d15490e1128a9b7138915bc7dbfa8fe396357131c543ae9c98507368d9ceb08c1c6198a3eda7aea185a0e976cd42c22d00f003d9f19d96ea4c9afcbfe1441ccc802cfb0689f59d804c6a4e4f404c15174745ed6cb8bc88ef0b33ba0d2a80e35e43bc90f350052e72016e75b00d357a381c9c0d467069ca660887c987766349fcc43460b4aa516bce079edd87ba164307b752c277ed9528ad3ba0bf1877349ed3b7966a6c240110409bf4d0fade0c68fdadd847fd02818100ec125cf37e310a2ff46263b9b2e0629d6390005ec88913d4fb71bd4dd856124498aaeba983d7ba2bd942e64d223feb7a23af4d605efeea6bd70d39afe99d35a3aa15e74a1768778093be0edd4a8d09b2def6dc9b67ff85764625c2e19236db4c401ce30a2572d3ecb4f969b7ad19c522c02d774465676e1a3776c54d6248348b02818100c2742abcd9897bd4b0b671f973fc82a8f84abf5705ff88dd41948623afe9dca60dc6543390767feaebeb539576ee8bfa61b5fcbca94a7cef75a09150c540fa9694dd8004ad23718c889049219369c99f4458d4afc148f6f07df87324a96d9cf7b385dd8622414a1832f9f29446f050c2d5a6407649dc41ab70e23b3dcc22c9870281810096a9798d250263400bb6277342881627e07cecdf91187b01b89ff47314188a7c20fb24800156d2c85d5666e8df6ceff9f9804ddfad80ff5767de56ecc029c72bf6c717df9f64daafc29acf9dc7908f9a0ad67e20e8949936ccba18d021a2c4febb04349a2b2047c4901385b6e5d0c691d118b33f81802b32ac272ef09e42fad50281800554f41b0b87f68a45722b3be0cf4ab1e165034c1a91002ab8f29e9ef9e2dab6fee7b2455bafb42037e9d2f7e533f348a147412fd72080be7c2633f5d802c91c39e6bcece3e675e59995033c55737020dad9e8b30d04b828adfb9304ad54a11a35a4f50709876ac5b118236ba76a4d7c9a291dd9607b169de1d182385691999f0281801c640189d9bfe8c623833210a76c420c6f44e5d760e259916cec2ae2b156456960fd95e2747660c389562250f055049cfab7e5c3039549384a7a2aaeb1c824d3af709482a8cf9b587022a00b1f0722db50f33cb26dc20dd2245d5265df61ee2983c938c2167dcee121fc4b4479c237e728cf633ab60a8c0ecd04fce7e3baa559]\n\n# tcId = 1\nct = 5999ccb0cfdd584a3fd9daf247b9cd7314323f8bba4864258f98c6bafc068fe672641bab25ef5b1a7a2b88f67f12af3ca4fe3c493b2062bbb11ad3b1ba0640025c814326ff50ed52b176bd7f606ea9e209bcdcc67c0a0c4b8ed30b9959c57e90fd1efdf99895e2608095f92caff9070dec900fb96d5ce5efd2b2e66b80cff27d482d242b307cb813e7dc818fce31b67ac9a94501b5bc4621b547ba9d81808dd297d600dfc1a7deeb061570cde8894e398453328740adfd77cf76075a109d41ad296651ac817382424a4907d5a342d06cf19c09d5b37a147dd69045bf7d378e19dbbbbfb25282e3d9a4dc9793c8c32ab5a45c0b43dba4daca367b6eb5f4432a62\nmsg = \nresult = valid\n\n# tcId = 2\nct = a9acec7e58761d9191249ff7ea5db499cadccc51d29f8e7fd0aa2cb9962095626f1cadae29666f04ce2afd4b650be59d071d06446d59107eb508cc60545727b0567dfb4f2f94ca60b939c60be111172f367dfd235516e4a60061648c67f5536650821ac2a60744be3cf6befa8f66e76a3e7c5fbc6dfa4dda55ecbdbffdc98d610de5667a4f485f6168b52bbe470e6014253874ce7b78e509937e0bc5f02857e1ad3cf55139bbe6dc7ac4b1ed5097bf781b7671ca9bb58187aa6c71c58ac0561c5aacf96c35deb24e395b6823de7fc96b8031b5906a34c4dc57e4f1226157b9abd849e1367dda014fbf9ed4ca515a7a04cf87787945007e4f63c0366a5bbc3489\nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 4501b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d\nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 455fe8c7c59d08c068b5ff739d8dab912b639c8e9eade5d0519d58f4ead7208d5a753b4a88fe771475adc82d10ab29ded28caf03f9034d3a111b520440c02276e1b6417c42eec0257f1f05482868987f2f75bd33d1ec3dbc799d7b5bf25c4a0543793a4d3ce305cc43646bc450344e624fd381e24d8e57ef2840dd9d576da554ba408ee6580159e6d88438a28d66250b3b3fe3bc6624406022a9e4ee2778c38230674f635f56b9d6adcf2be6bfab34a8a431169d769876422f7077ded31fa6f29993dd1972b2d2d24b0513a7a193f6a88d53c49cde2c030f85e3ddfbc9f99b4a667fd9c652382238166f3d39eb2b78de53ad24c97699fe5738a7a705a2ab141b\nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 1cf861ef8b6c29474666605d3ddb663a259a9ae838417abcc7f7dd42d471d5f3812cdf90e3041c4c5bfd38ac1e4d95fd71661bddac45f5f8e3e89629a335bbf2eff116030f1c5ace8336cf7e94c2e8bf5a1d6116e54ec42b9da5fc651a41ac8fd38194e5029489cfde1f7fc850c0dfb3dc00021f74ae3847327c69afdb1355c7587bb93d5f4d2cfb35a7f70bcabd43eb32300585b6ee32f14a68c2a08434e923adb76dfcdf3ea5133edffa5ca20425083b28ecb045e69562b44286d320d87285e7a2e3bedded083c010401ae22c8f278b080112c4264a3cad3ed9fa31cf19e052aabbda9f8ecef1d64786258202bb61128b3140a355d65b982b0239764d77d24\nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 8122b33665648346f6cf728f285667cff7f3c20907e76438e64db81a6a5e74c34c5694fb5b4c826067bae94c5176e152eb16884d9c2b63d2ff41d06140c9c39469a4ae05cda86c81ccb208894266f6b24a0f79132f71521e10683faa05c8e68b77dd6c0c04cbfef55a9d1b68291c286e08907c3df029c52e15539027f534c7df8da5637db99355b24576b873c119ff1d74b3c913b70c48f366887ccbe6d206c11657401f41baad9290fe6ae01855a99891700d71775fb36237bd3597ad240fff4c03d1fe599cdec65baef11fbc4889575a55f255b51ec8298595dbcc89659382d35c2b85a941c33746a7937f3d18e27079fc3d2252904aa533fbfd2ebed2e059\nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 18e280e8b03d8588b923842d15fddb0493285ecd7ad2d9a9878045ce615ba07cb811fd4a0737e91ece5a63b70b1edc23e0da939ec654333eb77e956108b040bd6b92927e25a6922d1b92302036985915fedf9fb38431bbce1feee3ec42ff15bc4a4b6d10b3da41ec96667b81163b30b46eef4f46fb22f187da8fd536461e5594bf557a6dfc2337883bee8d6187192a3b4bea70398b01f3ea8c1547f6c57248243365b3c46b117924d8bb6845ea382c389c648d3e65ff0b8711bbe1a6fd3bea028f5808725f198cda0407a0ff46b5af261a37184547250f496800e697290e39d46d6bce67b767d73a63bd98f699c1828180abfd51a3048d050d496236edf1e99d\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\n# Longest valid message size\nct = 7e151b7b34e3b4abe045cf708640e61501c50fdca629aeca10259d45d15eeec6a2008b6336f57021ac6fdad9a6b29d65f098abff76f93722a8e23fb5e153db075005575dad6adccb7c020cd741c3419946b82d369a07fad5b0d55d51774f8991bd65e9e828d8f5a989c866a024a4a78434e9affd0af2c72f9185d450b627008a8a0968fc6373ca340410306a58921cce1207bb6f6c14e3d1f214304f9f6bb9199909e1610322e834b0ce9f55b1835d7623b82ef548545f984ea51466250159344dde902a0f021ba4baf26b16d8c6a42003f4d5dcae531", + "187dc7e3f87c9e04470599eb623e04fca266e86f98cabb6866004e7fc80b36c3977456e51eb64f4b65f\nmsg = 7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 9\n# ps is all 0\nct = 6e0d507f66e16d4b7373a504c6d48692aaa541fdd59eeb5d4a2cd91f6000ce9b5734a232d6541a78729ac82152d3a30b51950a24ae379a108ed20fa4ec7542fe2281c2dd5de685564d15182f3c73e9c0135ebc993f5acd240a343d3257997582328c31be215c7349375406aa78a3ac35327226839bee2f1a4a0f8e6e06986cb33806c93e0b0c1d6cfd23f4a68c1f2a38c74b8df70f280984a840c710c52279034d04f61e313d4bcd8b3b5c58468a44565a1acb2eefc6d49044be7163e64ed84b5e7991ecba274a3a7ee4defb842a86ac4cbf2d3bfc9cf870ae025a3e2fbc775916a59579763c06eb84ad8edd1d03787e609ad446de43ebed16330ab06716fa73\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 10\n# ps is all 1\nct = 633546723d13ef2712561abfa5b477a36ce7c8dc5a9f43589ea289a15f749c89e4e3ba3ca6a615333e9bb5ff3efb62b32e7f11870c8bbeffe884a5ef2b1006045bd97bb29699084dac4212c217e10113232683445091fa7224abc02ad37feaf10d5b4af6f288fa01d85bcd944bf411ac56c0b7bf1037452f540f286114b14b2208fb4282b6829c594aa27ad5ef1dc67b5696ed2a4b9a4ee2354cc05315fff5e8a4e0e75675c1eed34d46effa73ea96e748340771dfec01dae937edd8924ece8470542a8251c31e9130e2c5f80152b4c66111df52f7e5f9b40835b44bf8e8e273b075dc04f758a30c24dc2c2abeaf639f4fca4dacd509250378ad0e5276374b99\nmsg = 54657374\nresult = valid\n\n# tcId = 11\n# rsa_sslv23_padding\nct = 94a6ecdadcc3a9c5645d0410929ba8f01c89b8426b889d3064cf1811f2caaa1e1a55a29a1869a7d719226bcea637407bb80383e76b5966e2ea4d56fbb2fb325da12546071b65898b12e36d0ea0e47245930eb051cecc4b8dede18adb4f1ca318cf0e36820f1cfd4911f076e0f3fbf9c197a0ed32063f72405477888f13cbab4649e3c8df4f022a4109ecb91fbeedbc4df4d89ad9cacbbd7e8e27a2f1fe1813d3f1b537ecf41878f05918171504bf800631781a7c36451abbc32dda5b55f05f4ba7b5414089d9d679248cf042756a4f06c37c8b5a18a6ba8f97853cc6763235ee841d96e61f2d75c188ca53d222d3d925a3d701551758feb79ccf8709cb61b793\nmsg = 54657374\nresult = valid\n\n# tcId = 12\n# byte 0 of ps is 0\nct = 6a8b8c01247d9d4d1c3bbaac58e077e37926854dc8bdb58fb7b98979ba9102934469836480a0b96a5b452e54dff55e77b52dc1cb93656f6802b7fbe06ca0923e38e549dabcdbce909fdd10d677d896384af75e7146794bfa009ebbb2d6890b1cfcad4698d297c759b0a01151bdfe1d48cf92e80896be923d02371930cafb155e543d9a21e52faf2395234e65d575fa9f5276c80ae4cd6ec18ac6d954ad043d2a46932763ca44476180b397215d95651fba63220998e06ab2dcc4935dadaae8660ac8c6356b871e0b1397af20d6fe937c3211e21559a3d0eb39c2949a96611b13740ae0c26ce67c373a9225a3c1773ec662ca20dee620c0acef1475b362ee9b9f\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 13\n# byte 1 of ps is 0\nct = 84c149c378f3f12ce202bb561456257057709114ecbaa4c3a7dbfbcbfaf2fe9a19cebabd72e39474b6bd7871c3dae41a9c87c5cb2fafc2d06d49c60ac401ed1e125522d0854fe8fb8611f8efb90d2b89a14eaeb6e991f19329dd7d183ef72cf0543dabedcdecc9977cc9395e2629a1dc8d359b2bc0fea6ef250c4cfa2ac8ad22a6a587e32859a8c99e4f7cdf938527e9e0bb597721517067d83fab31457e52e7a11b0393135d30e619d7cc47caf970facdd8dc4bd613b151f93cc53c1307cef68feb5a67d32337cf2ff954be7a553d3f07c9f657aebd9e8d4ee99e8736c152804295f366a4ffaf2a72e29c2f87b03b28b99da1f6a7ee0d9364ef711eda4f0793\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 14\n# byte 7 of ps is 0\nct = 3307264f64d4ca8b62c4e7da4cac117262e5d3a3dbc19a529ac5167c1987bce56e358726d0ecfc6cb591a12bd5f7531cd2249439254c366ad3cb7a608f845e1eca931018295208ba5c6198027b22191224c4568856ab331e2acf530fc434870865d3321ac90327a8c61f27cac9859dac8e3c38d8453349d2ef8e4a7e8011f6badd1530eae710e0c60d35905f20d7a2d118e7ce18ebb220f04b4089778cbf091bcb3e02aca83b4b9ba5319c3069188c7b00c7d32ebe1dd6e6535b5f667ce972f00ba773d4cf6a556ccf65bacc1eca2312881caf6a89ff5d83960846a5d9dd31477dcc9ee4ae50ab0cb2e574a685bd9d7b7a74c7ca9876f08fd64d1d5f196786be\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 15\n# ps truncated\nct = 16d56b7a9e672e387016e8b1c9cff474d560faa8ca14a565fba086015c5f9d53b205c4ccfe77ed5f3d10a04a23bc031d9c7fc809668ceb5c4e31ba8760475de713413b1ae5666e93087e146a2607c00d6492ed095973c7ccd79996aa26023a2c6623f382e94a4c595fbb596be074f87559267186cc475175152277cccaf9513dcb95a1f6540bb633a9a65182f2a53838b85329c9544c24740b24b27ce5d760f051c47e6cc107c264bc1a87ba7bd2bf27675547bda28b3d2a7281d6732f9dbc3c20eecb280f2ba6f25cd49c930dcc3a413987ab4de0fe9314a61e092b3708c75c9bf96831df05e4dbe31f75b2ddaf3bde7f01c7940ec62758006a652871d72b75\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 16\n# ps missing\nct = 25f67bc6c1320a13fa91a23d4d1801cc73594161a7f344ffa195d6dd1894c1e39d6cd81866462d05e0e16c02459a3f1dc5f0ecc52657f70385fd0b33de214216a2298b4814550af1ecd929170bc69b74e08299bea50de33021468f4fe2a2e4a43233d6872d15379ccea03450145d909c5eb11ca5f524e17b2065768b9bb06438e81b0b8ca816bfcc7eddcffba59b33e2a0b4ad8df215c2eafa240e553f1526dad66038e54f305a6d3fd6460e781239c9dc424ab6df7f75bb4327d873d0e8d7ecab1b09b8779cb841e002ee45f8dbebd2d483de2d7136ae7e350580dc8a48bcd6359a677bccd689bbdf879f2520d8976fc2b92e64dda8e7399719a13b8182c739\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 17\n# Block type = 0\nct = 371e281730bbc289cd77a64ab49b370ed7900c48f5625615ff28beeeeabc860b4673ab16003fd5e13c89c8b6a0e5c9b732044981ddf2bc45d4613bf409cb2e98123ceb661c1093773d71c67fd198288d6e9b832596894834c3955799ea20e242b632335baf8e8787c104499fb5d0eaa331f05a8b46383dd13cc05f0518d05d9b03bdfdc2dbc9299a04210c33f5dbed3779fb1548ead0022622234a6a2ffe5ca42a43db40f272d6633c7151360b5b90e135283a6aaf69b0491edda637dea0989e3a5dd0c3aac267074662443c37ce1b3fd4b2e9743fb0d00dc136d8df10b6fd0b60d30c1399ab52d75e2db559d8faefc45008c2d9100ed08caa88bdc11aea04df\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 18\n# Block type = 1\nct = 92210e5bbf24d2cd9527f6e24ffafafdfee242b146539f3731715fff42092cc8f5a1a4919417c9df9a5a32e61201f4354a87ab06e97f827f69e6cc13e7b9c79515145f210713523e6f64def697406a4929b2e09c31890b695b7b8bb851a22c7b541c5dc53cc75954c0246eae5a12af304133f4dcdb90f8c6f54847165612f7ef70f51dd493899d6e09ae9fed16fb1f1225d09750177893c5e5482e3cd427931ffd3fef3e901d51f39aa17e34443a34754533a887474e19213a5e24298071495d18c6ac77dece094c56bb34ed8274f5d75f99162a58dfc4240f5393baae58f484ef0a0259b56ad647ad81fe88c91b75a36b1acc67a56ec379bba03a8be91dc0cd\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 19\n# Block type = 0xff\nct = 6dbc27d33371f8cb3c3a54185a687a66eea8114f26cd234617b2f567d6013e222f33d7fe05298b73f8bf20266483571a52b1da2c0b1a431c257c62ed441215f57cd2a4af4628eeb21a9cd66a350a161cce446f25224a9acbdcdd709b14b810fafb02f3879605402e3fa6404e6e9a13b3f4fd3bd0e6c32f188a367a94aea813aebf4bd31635e5843a27bf7300419365d00ab97cb535866ba521dd0a8460fbc368ab9337caeee54f719f8998b126a111ffc6cff6d3c43ced45e8dce6565c00bf0be00694c339f7fdbe064c60e040a95b5d5b4af15fb7f14e00da6a591f187277e0c453eef7ffcef2a4efab93afdaa58e0bc1bb25286d9ce202176f395e29f92136\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 20\n# First byte is not zero\nct = 794ab724aeb176c4415a597e9d69cb567cece4479e6e4c9c19530b0877b53719d7f6318be8e970874c4be19984c632825dee7a38561a6904e23c776ccce71128847c24d5609e6790e3c9112393660ffd208771916d2e80d2c2fb35ff7936bab6c03e07646f15d09a88fd2ff8e70b624c66da4eb7dae241907ef328697c219d1ff347ada945e24ab526b6cea4e6b7f386560ab56f16751f6e2de0f7922a8946ae9afb9ce95369418f540163827f452f5d2a5029a1ce417453324eb015fd83ca2147331c02c762c457fc52ca5f097610c60430b69b6b0fc1c0877513bdb51923bca03e9af9174d3094530a007253958bfed03606e6f75cb5854443eaa363614116\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 21\n# First byte is not zero\nct = 8c7b80188818f63e6a0110cf94a169c78a0db75917caaf47405e8384b79a8f40de94f28f749186c4f16aeffb66168ac7c319d47de699ccae0edcb51a6822f88e27e99a1a0bb39d292e7d6e0922c1d2fd649376d81160d15cce10fc7082b88e8cd80dff13a33b54b8c00178a35fbbca633f4987f117aa9ec8e5f123dadcf29700ed5dbdad05bcd8e990985d950b210edae1ca1f6ecabf50a27e", + "4bb23d4e80bf3955852e2ca18fd3e3c2f570fbeece943ef5c10ed1265049eac0d5b549713368703ad02311193ba0d3dac6073eb799139229a4aa0bfbc25bd5e886ad213dc321131ed12cf1008ee8af3a1588d06c75d7cf7375998e5a03af0ec8aa92276bd51b21\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 22\n# signature padding\nct = 34bc8b1a4646f2db8b10fdae22d6b5cb300229114015f25293d4b28e8f58783e1c5e6894da18dea527e4d843b51cf984170d56853e45f6ac77b1179eb0aa74fc556cbd632d576524b820a2c74a4c8159885fa08937e9c73ca0385c7a19676f2789b62f7a8b359a29132d74bc2b850e2335b5c7da8bf52d8d6fadd83ff9db32239bb737e890a32d561b10e9163c2fe4d35624e3e5faf664374c972a8d2e5b873c9a465e108bbdff1296c5557f314026558441a055d4b9cbb54179356787bd4bd02015cb3bbe02633711f266e915a0b4591415983610a2714adce1b0716675b95877bcef618784f2b3cd23fcdd0636e5856edb96852a32c9632c2e6e4b9a6f881e\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 23\n# no zero after padding\nct = 4629027bfdd6c33abda030f0cb3ac1b55bddddd11292520f142248bbd1efad14adcb7ec50d278471f4a98dc9a674c202d823677d2606cd639fda443d7c14f0aa35f472189abe1b639f0856743212aab46ae35160ab4e6c08a20e5b82210b07b6eed11a315ef1b1f831b52bfd3abc06382b51c41a665ca6428e4bb6bd0df7895d056b8c17093e73c8129916e3abab3f61ce9a94c9d2fd30902076104b0e7fbde8da601f6c1bcc56a0100104848da6e9fbb28d893274b40885b3003ec7781aa710c83fbf4d4bc197630b1455853c4d6d6050011a7f7377e9034d29e4396f52b24ee6875feef883274cb0842b4b177d3fa3b416095c6ff96f6de0d9123dd9ce6d31\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 24\n# no padding\nct = 910ad40ae0d8af151f512354e1cf12af7c4851cff0b659026e90a9ec4dea6c1e4b2b33cbe8260501493df2e7fa2cd77f020a7cfac1ca379eed3fe6d003335653a5f022f6bf5010e5f58c41fc91253d75eac2072479d4bb3509e1351a66f700ff4ac470115490021734bb8099e66c35f904f09d167303e26163393ed556cdccdfae95f239ebf0bd361a8adad927fb9544ca30132195735cb026dd0dc66c6efa0db41b73fc1c917be384a430e0788f5f872785cd709f70793204753d7b207fbce2d0bfbab11d3d614b99bf87bcc9a34db639fd203c9c081ddeecb9c85221e03cb9171685dafcfeaba470c5f1921a6fe016ba4b816a2328eee9853fa6994ec313d8\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 25\n# m = 2\nct = 6294ddf0fcd137390cb2193e050b5f61bf0183972912dca88ddcef7d54388665a7ff9be1f074b5e33b55dbf7c4212554a4e6243d3974aef4d95794dc72261883a45842da69497a36ed22c3590b0110e857bd0fc729663df53c831836f890b2b2012c9f56fc6dff36daada1a1e1cb2d654fee868c7c6fd58435dc8edb95dfe0271787074c2be9aace1f33ebd07ee6112cfb62f52487934af0c22ac93dafccfb01c561b370f05f3e604e92e5380103ba91113d007ab97b21ff3feb22f37c1a358215467d0a0223d43792f4947aa30c38f14246d1db9918c94600e7d0a393079dec2d9ad368ef378b2fff72cdd7c572f11074caca0995ca3e576428f651e1cf3764\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 26\n# m = n-2\nct = 50bc2c3ad07baf0bb9037b704b4e81c97003c7ce644ac8ed0c52ef9b1d7f825695f44a46e204786e6f7fe52cf01ab4f098e438a1125a79f2e3f76add9a8e9ebf175e92c5aa81e99abd17c6871b26de6b40f81c45d43194136f687545a33d590caeed0916deea9cb44ef815aa1695d9f7178dfb47b4805b3e2f47ec1e3de933e5b3de2950dbf702f3d09d7120ff94f43082409169beb5814955e445aa4914ecafbb36efc82aeda8b5d005f042f7a58d50f06763681d40a88119fa4d7b21e4a372701de8f5a4ef18e30e99f4126fd031af5aa28cf4316b03150a2e0a66355ce17124b13bc586e918116c2355f3169c186a80a85c1302fe01b33d01fd3c61fba0e9\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 27\n# c = 0\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 28\n# c = 1\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 29\n# c = n-1\nct = b3510a2bcd4ce644c5b594ae5059e12b2f054b658d5da5959a2fdf1871b808bc3df3e628d2792e51aad5c124b43bda453dca5cde4bcf28e7bd4effba0cb4b742bbb6d5a013cb63d1aa3a89e02627ef5398b52c0cfd97d208abeb8d7c9bce0bbeb019a86ddb589beb29a5b74bf861075c677c81d430f030c265247af9d3c9140ccb65309d07e0adc1efd15cf17e7b055d7da3868e4648cc3a180f0ee7f8e1e7b18098a3391b4ce7161e98d57af8a947e201a463e2d6bbca8059e5706e9dfed8f4856465ffa712ed1aa18e888d12dc6aa09ce95ecfca83cc5b0b15db09c8647f5d524c0f2e7620a3416b9623cadc0f097af573261c98c8400aa12af38e43cad84c\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 30\n# ciphertext is empty\nct = \nmsg = 54657374\nresult = invalid\n\n# tcId = 31\n# prepended bytes to ciphertext\nct = 00004501b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d\nmsg = 54657374\nresult = invalid\n\n# tcId = 32\n# appended bytes to ciphertext\nct = 4501b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d0000\nmsg = 54657374\nresult = invalid\n\n# tcId = 33\n# truncated ciphertext\nct = 01b4d669e01b9ef2dc800aa1b06d49196f5a09fe8fbcd037323c60eaf027bfb98432be4e4a26c567ffec718bcbea977dd26812fa071c33808b4d5ebb742d9879806094b6fbeea63d25ea3141733b60e31c6912106e1b758a7fe0014f075193faa8b4622bfd5d3013f0a32190a95de61a3604711bc62945f95a6522bd4dfed0a994ef185b28c281f7b5e4c8ed41176d12d9fc1b837e6a0111d0132d08a6d6f0580de0c9eed8ed105531799482d1e466c68c23b0c222af7fc12ac279bc4ff57e7b4586d209371b38c4c1035edd418dc5f960441cb21ea2bedbfea86de0d7861e81021b650a1de51002c315f1e7c12debe4dcebf790caaa54a2f26b149cf9e77d\nmsg = 54657374\nresult = invalid\n\n[d = 2bd68add0171ed921c0924dc0a40427fd4a4fc67821c6e7d50d0e8c730c665e2a843b1eb243e763a740d3c666b1bb1d4f9466b32b2b2e09a9e26e8777595da48a13ba9f9c45f6d2c214b9e5e504bfb3fafbce6adb31e8c15bde1968899efee1a5dcdff0d2a8bf2e27301eaa07882494610a23dd3644d0eb0a6086450e3a7bd4b5c446c01814be16c208619f8a5b7463fca583d936864bf74d96788aae8e5bae3c052a2b409df9a08eb9be76b3dbaba28863d5c56ee42eecdb85075e04de90b6dd3bd9408d7fa5694697c185162329ab9b57f21a84cab007c1c10d975f5491977fecf6c949f3a566d84be477ddaab02c0762d1b232f8a61910715a0ffa438a461]\n[e = 010001]\n[keysize = 2048]\n[n = 00dd904590397808c4314329623d9013453843251b13b8b3c4fef54598112af3eb31c71103c6259951674e53bd93a7e36d19472e474ebe8028686d9529484d8bafea4a04ba19555667616c8478670594009c9bc6a3efe52274cba64c724747d7edc194e4fedde32a3289d94c31936e7e7a15d756f548492f5b345b927e8c618bdd550acb21a17ae148304383db9b3c7baa3e4c8bd8e844a884daa3e18d56998cb32f9bae4d41d56a18ddd4313c8089b75e9dbb9128470bac9b087fb61928ab0f8c4c89360b020899008d08e8bd31f907a807e8056ad6800dffdf9ed9d964a939e7e48114b84978551acb85c9df9196f3eff55286d6cd4b39a822a8a7763a18208f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100dd904590397808c4314329623d9013453843251b13b8b3c4fef54598112af3eb31c71103c625", + "9951674e53bd93a7e36d19472e474ebe8028686d9529484d8bafea4a04ba19555667616c8478670594009c9bc6a3efe52274cba64c724747d7edc194e4fedde32a3289d94c31936e7e7a15d756f548492f5b345b927e8c618bdd550acb21a17ae148304383db9b3c7baa3e4c8bd8e844a884daa3e18d56998cb32f9bae4d41d56a18ddd4313c8089b75e9dbb9128470bac9b087fb61928ab0f8c4c89360b020899008d08e8bd31f907a807e8056ad6800dffdf9ed9d964a939e7e48114b84978551acb85c9df9196f3eff55286d6cd4b39a822a8a7763a18208f0203010001028201002bd68add0171ed921c0924dc0a40427fd4a4fc67821c6e7d50d0e8c730c665e2a843b1eb243e763a740d3c666b1bb1d4f9466b32b2b2e09a9e26e8777595da48a13ba9f9c45f6d2c214b9e5e504bfb3fafbce6adb31e8c15bde1968899efee1a5dcdff0d2a8bf2e27301eaa07882494610a23dd3644d0eb0a6086450e3a7bd4b5c446c01814be16c208619f8a5b7463fca583d936864bf74d96788aae8e5bae3c052a2b409df9a08eb9be76b3dbaba28863d5c56ee42eecdb85075e04de90b6dd3bd9408d7fa5694697c185162329ab9b57f21a84cab007c1c10d975f5491977fecf6c949f3a566d84be477ddaab02c0762d1b232f8a61910715a0ffa438a46102818100fdaca4addb17e53eea07b949213b57da50d659073864fd3c21e570eb450f9014fa43ce53b4ce4c55aca189ce93a8c1d66a8eb4ade27adaf764ad7577c11bf0baf166a54f080c5f0765a4b3fd394e6d660ab30254cb8999f0fd703877c71e4cef038acaf81f0891e7dd06d7fd5b2c014e6734766d18adb23cabae79998ff3e3b102818100df984439aac267bb2288e53aba498e4825b001826bf9f80cf1c0a14507f388b36346b7dd58ea3714e9c0e5caf7ea56c73ac7415b2b0f07eb01a74a08537452be2ec918dea4da330255341e0e6ff34bb24ca24d95e369a5ba55e9bd1a7d0ba6aff1da718ceb106ee1c463a7fc30c11d7b885c76b65f28b0f3243e591cbe82983f0281803c610e656f43b5c60ed03dd2e13d0dc1220292f83bfd15a56d6ffe3b91998db2e08aa91e95679115c75c3fbfd2b79543a2e34ab024bb17495146543267dd6da421774c1b8e8fdb429877e67b7c5b6580a7454a65c2788312b05038b091cd6d846a746bb13939c1f8cd4c26b6e02f8e340a2e9b8d861539da6506c75cbcbdd15102818100ab2fe90c3db099baacb622cad3d57d19bfc10166d94488a560721b06bf0fb599a268825cf5b65c75a682096d5c620e0e7af21317b9dfc8302513ef9a704a9f0efcc2fa477bef931e361db0e55cd0e9239988a9de183ecaa3df2315a53217b986fba4434ba0acf437e6246678aedb2bb768af62343ea6e8d33eec7d4d848e78010281805382d97145a0123c383ede6b5ded217ce50a3751d0926148aa7895f501563d131abcc2ff222150b3e35e353fdb006232f1f521e2941eec51810a5db22c1af413bf324918cdf9e00c916ec791cb6ac3fbcb04fa26396f0540470abd929983172f484b102e21f44c8ab0867ec90a77d7f46a6ffe1046b8d4e7e2617c035bfe148a]\n\n# tcId = 34\n# edge case for ciphertext\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\nmsg = 52a61193b56236922dde714383c6bfc5a3c3a4515707521ebc84220bed615b28cf50222c2cfb7da7e5bf8ed088333d360a1f95d428d0563c3757f400f582cccc1c06e43cb575545f0cdc6bf29c585d8feda2522234415317bc5d8641737b9cf657620499a1d4fd69e4fa109e068511cfee4d2b3c9f9904fb370cb28dbc7e0e\nresult = valid\n\n[d = 6148075f3c03a05b4eab069a1d11dd76c1b7bf9551d2603ccda95c8a8c47f54e5423bfa35b77cc030a5366ba267011acfcfd8a5d0c445d72db4b398eb632fee8e5a0803486e9f334e719238addcf3a29c3f1efa0b8d554fb85bae2144c8efc477a7eeae305d1f3271c6d313dad86fdfea1cbdac4c448bfccc84025d34d444de5e40dc37de6a4cf7255e38152ab049186834f23b75fda4e51f57b01b8958e6a846cf9fb82353f6772e5318b3020651259ecf3b9827285fa34be81d73be182fd8e96d7350e7b4832adac0b0362ec03c1c6d91339df584ef816b59b34c90e9b913feb24155a9869a20f2afff161a8b8fc112a80e89ac449e5dd6b167fc373bb6dc1]\n[e = 010001]\n[keysize = 2048]\n[n = 00c6e320b47282afaf1c18f55f28aa278d401163529e605c1ec6ff403d25c726f547407e4cc128c1aaf397dee2e881c20144616ca16f3d9a1794a70ae05f9722e9feab650c21b886aacaa34163bd8254ea53a8c1dba6bb8eecba38aad49be9d6658230fb3950382a5dc8d5c0538e50f976e4ee673f8faa2ab8b3805605642c6d770579736e410c9ecb32e0559d82b6f22b3ac79cdf57ea9a3fd4b5e8df66bca92b8478b971afb0d6b185b642c362daaa79d330d14069b9e917a3f84433ac32b56cbe2760e9507bd39749d18a1b13e923c7efc9fad13d12568e5d910c1cbe9a6069d0fe80e3aa57bf5e74fa5d86433eaf5690175f13e4c3148c7300799244c566bf]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100c6e320b47282afaf1c18f55f28aa278d401163529e605c1ec6ff403d25c726f547407e4cc128c1aaf397dee2e881c20144616ca16f3d9a1794a70ae05f9722e9feab650c21b886aacaa34163bd8254ea53a8c1dba6bb8eecba38aad49be9d6658230fb3950382a5dc8d5c0538e50f976e4ee673f8faa2ab8b3805605642c6d770579736e410c9ecb32e0559d82b6f22b3ac79cdf57ea9a3fd4b5e8df66bca92b8478b971afb0d6b185b642c362daaa79d330d14069b9e917a3f84433ac32b56cbe2760e9507bd39749d18a1b13e923c7efc9fad13d12568e5d910c1cbe9a6069d0fe80e3aa57bf5e74fa5d86433eaf5690175f13e4c3148c7300799244c566bf0203010001028201006148075f3c03a05b4eab069a1d11dd76c1b7bf9551d2603ccda95c8a8c47f54e5423bfa35b77cc030a5366ba267011acfcfd8a5d0c445d72db4b398eb632fee8e5a0803486e9f334e719238addcf3a29c3f1efa0b8d554fb85bae2144c8efc477a7eeae305d1f3271c6d313dad86fdfea1cbdac4c448bfccc84025d34d444de5e40dc37de6a4cf7255e38152ab049186834f23b75fda4e51f57b01b8958e6a846cf9fb82353f6772e5318b3020651259ecf3b9827285fa34be81d73be182fd8e96d7350e7b4832adac0b0362ec03c1c6d91339df584ef816b59b34c90e9b913feb24155a9869a20f2afff161a8b8fc112a80e89ac449e5dd6b167fc373bb6dc102818100f85c32eb5dfbc82525ef2a6780ff035553bf7617e0acf37847dea5d648fd3603f644c1d2db25ee838d75eea86b65a374b5484bf09e99dd5116b0cf590633e6dd328cfd7bdcf8d81221ee5e08ea3109d52ceb385762d70681ea0638c766ae9aa2dcc341fff0240c1151d025719431ac1c7e7fc6a15c606b1ec018109fc58e6d9302818100cd015623de40a4601d40346cea7822e13c67bc6acca55b4b21264c454dfdcdda61f0f1d64776efb334143e1d4d4807383ba293515bc3c0f0d714cfa84c6edfcc4493b6802af1f8fb4b986d71efa7c37c9bf21821288218fedc8f269c0a633ea033e5603fef9426de60f3affc740f980158f04fb69936f1f2736f82be14a87da502818100c5e5c9992c895d00e4ca3f32bc61f748fd7399690b5924a3da38ba521654d5beb074373189f81ea6ea8867440257b9b85c5f204bba450649ffd7a150e19567c727e99a6e2134940f56c4365fca248b1e372db2f646c6e9e38913ae188d6461c996396c14c14827e981146751aa712e208257d4716d4752f3ecc300341f5a0f4b0281805d0eaf4066e1e6fbae2b77e0bcea3dc30a3d789cee3a5d5f9433a3498e66986bfa2b7a4baf7300c9d2e9216d01a8a1865823ab45b22700cd1284e2e25d97b2c53197efaeec4f9c9acdacea795eb5439aabdb5032b505a13d07777faa3358eb93a31b0afedacce07bef7c8eb54525d2f5419f0c4031fa6c078778e5db4cdb52f50281807837896fa354433b8a407322a51a82247df121aad6ae72044bdebffdd32f990f135c1ac2c637346ead083b9d90a0d6880cd0af2f64af3c352d74b0e6b1411f8ad65d68c4ecc919b406129d49dece407c973e1bd068549313440615c7c3b02fc7f99d4dc700797d7536569b2fe692e125adf3cfffeab59ea0e0c383aeba764459]\n\n# tcId = 35\n# edge case for ciphertext\nct = c6e320b47282afaf1c18f55f28aa278d401163529e605c1ec6ff403d25c726f547407e4cc128c1aaf397dee2e881c20144616ca16f3d9a1794a70ae05f9722e9feab650c21b886aacaa34163bd8254ea53a8c1dba6bb8eecba38aad49be9d6658230fb3950382a5dc8d5c0538e50f976e4ee673f8faa2ab8b3805605642c6d770579736e410c9ecb32e0559d82b6f22b3ac79cdf57ea9a3fd4b5e8df66bca92b8478b971afb0d6b185b642c362daaa79d330d14069b9e917a3f84433ac32b56cbe2760e9507bd39749d18a1b13e923c7efc9fad13d12568e5d910c1cbe9a6069d0fe80e3aa57bf5e74fa5d86433eaf5690175f13e4c3148c7300799244c566bd\nmsg = f50d8c4dbfdd67f1018ef2bded1a74c6ddbf7db395af1b56a91507ee381689d9e06d1b71b783d895dd7a7289a20ccd5c2b5f38be6d248fde32fa02ba825047c14caf35f96873aad739a31f02b2433e871d1265c58245191cc5a1dfd299b160edcafc5ca7a37c056dbac9e7dd1195c20451\nresult = valid\n\n[d = 0081102400faeba6a1c103df40b3e6c39c1355259c61957146aff836d6e8ebe7512152232055245fc10b0f4e5b4e595de13c75dc96d0807be47b37561350edd5deddb3f5422e08cdf1ac3183e04e23b314c4e58f65064e8ef88d9461fd35ad9e8797ca76cb9d1533fea829eab7cfd20e2f3a1d6eb6ab46803de01cdca9b2e7a95326a8362d8422fa51cc13230db40ab197966dd471549c86da98ba4ba1d02bc68dd10818ddfeadd529527c7df4e6c48ce5c6952e91324458bf75e02600ef5ace55ddbd1caa2d5444e295393cb793ac55f6ddecd8e2679b07907eaf32b47d48a256e7ae7260ee70eeb8f36c0bae377e9efb5b85f435fc31a816bd8b18ce1fef8641]\n[e = 010001]\n[keysize = 2048]\n[n = 00a9cbdd7376863a8fa77931db45b29d3cd33842fabfb9b685e5f5c9ad15fe7844be23c7b5abb165f32d5d26e3db746cf09ee4c8b67b528ccdbdb20c3bf4f7a1f5ab1b93648d2c7d039d09f9a5b28393480b31c87b28fb4364c373a95", + "d496ce442bca4aad4de1cc613d3bee9ed31a85957dcff15998c6df8f0e0b1182bf256538ce414bb1220c9a4e0bc666b2230033b7abd072cf9a3c302b424b32860604427904671678b11bec74f5dedc380b01ad4d5e228d717f80e862f3800da9f2edd0c30a900a2d8ffb292a74a092264df73ee7888258d8ba441296917d5b7742894060c318790a21fa23c4895d36f6ce5c22680505caf8c098905f4e0413e63512040e5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100a9cbdd7376863a8fa77931db45b29d3cd33842fabfb9b685e5f5c9ad15fe7844be23c7b5abb165f32d5d26e3db746cf09ee4c8b67b528ccdbdb20c3bf4f7a1f5ab1b93648d2c7d039d09f9a5b28393480b31c87b28fb4364c373a95d496ce442bca4aad4de1cc613d3bee9ed31a85957dcff15998c6df8f0e0b1182bf256538ce414bb1220c9a4e0bc666b2230033b7abd072cf9a3c302b424b32860604427904671678b11bec74f5dedc380b01ad4d5e228d717f80e862f3800da9f2edd0c30a900a2d8ffb292a74a092264df73ee7888258d8ba441296917d5b7742894060c318790a21fa23c4895d36f6ce5c22680505caf8c098905f4e0413e63512040e50203010001028201010081102400faeba6a1c103df40b3e6c39c1355259c61957146aff836d6e8ebe7512152232055245fc10b0f4e5b4e595de13c75dc96d0807be47b37561350edd5deddb3f5422e08cdf1ac3183e04e23b314c4e58f65064e8ef88d9461fd35ad9e8797ca76cb9d1533fea829eab7cfd20e2f3a1d6eb6ab46803de01cdca9b2e7a95326a8362d8422fa51cc13230db40ab197966dd471549c86da98ba4ba1d02bc68dd10818ddfeadd529527c7df4e6c48ce5c6952e91324458bf75e02600ef5ace55ddbd1caa2d5444e295393cb793ac55f6ddecd8e2679b07907eaf32b47d48a256e7ae7260ee70eeb8f36c0bae377e9efb5b85f435fc31a816bd8b18ce1fef864102818100d24acefb79e15875c90fa375302ef16f14141ff50e760b5b529df6494bd507eb925530904d5f43db6cc00c5bb113148ad0d7ddfa027c857898866e9681fba9efd61e102a14daf9e13d19c13d29d0b85310d4757c6b31f6949132372bf2feeeba9c451478caa2ef6ce17648cfd46b13b08d8ce9017612c0296d36281936c1737502818100ceb3c37dde127b7a1539da1061da9a119f00d6e88cb2dc350a323d517efa6da3ea0e0d5a62cb5c95f2e2bc233ad4a68798fddbeb9ba914ff805287492082727e831a1a64938f119a57b80c4cf87348231265f5988f7ecfdaeed964567467fce6c0cbae5399f1674b3db04a0e54a97c43a5f6f8e0d66253a07d36d960269519b10281800db2bbcadbc4970b8d1e4caa7c8a0246170bbc8d2cf4f986685a4bc9b87bd6f93c5dfa3cdc1d618130934dfac70d14207abc25047d16f966c2a0b7216cb424fcaf78e3daa9e31db5d352132955c8f7c8c966dd844e4341e9a98f98d26f10b62247bda438be12610039ab87d0a9e893aec379b34fda0e1ca05631d9e8d28d456502818100c5f32da25a8bc4a853af857feed65479cf961439bc9485825df362f9aaead51906cad24adf15f5e2bc2a1b1679feb0446765a5b8eae76fee87cb8137ace480155c2421667451acffec459bb212b5043e621e36a715b4d205ce7b6e35c560d8b77ba713998871c104335da26e3af1dcc94425528eaf8096a9b9804f885f2aa6e10281806bebb7d6fd832d7d0494393ad36d69809d5dfd412a2ccc954f57f2ec8ba97a558375ec6815e48839f4caa896f5684eed3ad37a131f081d5f04144ac75897f3e876d28699927d249ba86ef8017b83bddf2d83e8a6ac8f3bf180c5ebe477a7032cb0123bf27c292678dc5bf51f1a92e278c965d77d4749ae08defbd2348b059316]\n\n# tcId = 36\n# ciphertext has low hamming weight\nct = 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 636d26280a49b4207bd30e67e5e15ddb5455\nresult = valid\n\n[d = 7e60a24231b43275729daec4ee6047e8af545cb10a0bfc849bf256273055e581a55f2b15ba1a6058c67252d7605f6d1cb91416fdc8325a8718e747cf8594348577bb79514c5a676c2b8829993e28258a449c5f9fedad5a641d42990ee9ac172db9f595f0fc45b18b5c93fbc422d41694df9b3545a984cbfc090b5c1722a38c9b50698cac516d5aa16d89864c8568a2956ecd7db8369490e28d3764de0078d20753db4285afff292fba35d5def72959e712f7ab5e40db81d1c89f8c842e97abb25e25f59e78bfe712cbbfd760206e4ecfb001094eef8e238844432086b30dac2b4e7ddd4a725218f45193dd14d4fecc5f683cc4fb4f4418acec3b8da900dec1]\n[e = 010001]\n[keysize = 2048]\n[n = 00ac17529177c7575ed5e394f3380718e614c0105e81016588fb2f95ec4a327fc8e8af681c740024044a9cbaf1f97ba56d23a9f53391f54a84b2f8581f0cc928fcd4c55e067f8d3629a1fb018a1574466554a18df0121cfaa56703b17470a77e6f6909f4f89b865f11c6f9a951dd67cb73b146eb68aca6c0af6e56533f4ff8c31070d3607edc565d22ebb418d2a00a5b6fb58e29b4d464f0dfca6cb20881c323c9cf91a4fc2a437197f2579d9faaa016a42b59473412245f7640dced842587d6a62fa7c4cb6b57e39b73f0a545bc0e0d6501fa0af22ca162dc0327c4d6b3563fd4880b2010e7e9338a1d90b7cb8b8f410d72287d70bb2079c3a6dc51d6c6a8b807]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100ac17529177c7575ed5e394f3380718e614c0105e81016588fb2f95ec4a327fc8e8af681c740024044a9cbaf1f97ba56d23a9f53391f54a84b2f8581f0cc928fcd4c55e067f8d3629a1fb018a1574466554a18df0121cfaa56703b17470a77e6f6909f4f89b865f11c6f9a951dd67cb73b146eb68aca6c0af6e56533f4ff8c31070d3607edc565d22ebb418d2a00a5b6fb58e29b4d464f0dfca6cb20881c323c9cf91a4fc2a437197f2579d9faaa016a42b59473412245f7640dced842587d6a62fa7c4cb6b57e39b73f0a545bc0e0d6501fa0af22ca162dc0327c4d6b3563fd4880b2010e7e9338a1d90b7cb8b8f410d72287d70bb2079c3a6dc51d6c6a8b80702030100010281ff7e60a24231b43275729daec4ee6047e8af545cb10a0bfc849bf256273055e581a55f2b15ba1a6058c67252d7605f6d1cb91416fdc8325a8718e747cf8594348577bb79514c5a676c2b8829993e28258a449c5f9fedad5a641d42990ee9ac172db9f595f0fc45b18b5c93fbc422d41694df9b3545a984cbfc090b5c1722a38c9b50698cac516d5aa16d89864c8568a2956ecd7db8369490e28d3764de0078d20753db4285afff292fba35d5def72959e712f7ab5e40db81d1c89f8c842e97abb25e25f59e78bfe712cbbfd760206e4ecfb001094eef8e238844432086b30dac2b4e7ddd4a725218f45193dd14d4fecc5f683cc4fb4f4418acec3b8da900dec102818100e811b5a9c9e65a385fa5cf0e3f3408e613b4a33d270c70141f2359736f5e0cbcec22bc940320827ed227a4ece56876f6047be2475912f8ea86cef0dba1ba72dbc0d7970c549514ebea6e07edccf07a1cfa736e3256ac4829aefcff287c98188b1e4e6d6b3a4d5d15c6a8352694e609f542402afa0d30fb1e9ae11681dbb639df02818100bdd6474fce37443303a839a65bc9dab7d66e0ded2fa924ed8d30e8cf1604a6b589b7a3ce5a2cac20161d80c2052c4c8771ef7215adddfb6949cacf8833505055462c5430e283a8cc8b1cfb21827168bd245f7fba6d4aca3cab9888b12c6bf1e0972297b59859bc3522706eaee8f086ef0e655bb27c93b53146a8e19af7d796d9028180313cf8af52a0264a49b8f36a916c67eaf109658d2708d38ae1646da9395ada17077f0345e037f89811dcc9785de04145478445695ff3cf8e6b15e332a668d9cfd865a5adbf107684eb9376e9348f5d4962b6350e47277c9423859859adbdd38f48d9d90b642e5feeabdcaa924a0b58d789bbf5a262441f33ca26b1d0d19e233f0281810099d96417d85f4fe52c2c94f42ee56b5d9be9bb5da347a886e0eb6772153d15c2806714d932998bb1c15a8db4302f13a29d82d9e999ec1249e524f9863f57f292f979098e48b53d02f0273f9b8bb4cf96a238c732564acb95d9d797c846e100b8eca37b620fa381f56a00c6a2f8639e67753a4dd35c44f50e875e6ce083c5f419028181009d7230cada81be92c5f9ce4fb4c973fe0c56a230d99f4b59bd3f3a867d548787a562e47f13a1327d6d88b61c68d564bcac123c0bd63fb4c4cad5174886dd28632a2326afc7f172055c6e0760515259561e67b8a24362a50ac758f7e3289cb5b915b445eef1e62ca603d56d39569e689bfec6911deb4c37b0c73337fd23156a6f]\n\n# tcId = 37\n# ciphertext has high hamming weight\nct = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = 44fadc2b07145f74c552f37b2140338aef1b46d7d4aabcb041faf19f22d6d18fc40a5e9aa4fa7013ee7953f180323d4affd3adf4c358084b057e48ee001ff567f5f509d8d429aecdac397447893d81323132b141ed345e0c52a980d470deb3951b6feb4c\nresult = valid\n\n[d = 50ef8824a0174d47039d0d427c85a7afc1478fcd7b6f0cad060d4ac4f16a136327f8d766b1750783d33bae44ea6553bb0ad3857813125ce1a38440d8f35fad5460e5d19e2185e517634c4fd9eeea0bb055cf457434bc96c43b70d3ea7b6be92279ce05d5d8ea7b4caa3d915215ac5bd7ee8e56418d91706f8ececa304dbe7e0e23c5ec42a029d1a60a1c9673e3a8bc942754d4d601f1847fb3539a3259c36c725f279c1ad4480f7186c1d641f377fa3d7ee90a5bf16b8f1c7d9f289b854cb77bfd0f41a028b9634cf3adda3b5567918d2b5d0aa08bc8ccec8d0b39c561f1c92aa6b200bb8824f", + "f50067ef87c0f55e0a981655180aef3bc335c557a9be54e1fe1]\n[e = 010001]\n[keysize = 2048]\n[n = 00c01f17440887a6016faad9d70d23e5290ebef6ee9b7707affc88fa85b0b66033e1cf2a82654518e2b732c2edbafa9d2b68b2fef78ed36d6c421c5bb2304711d98a5ab9aff8c48f8c35ecd5e0c721eede459832d83b92a7edfebaf163c1445a003b3300f8eea2ce43b88cad04c413b561006b7494810fc5b46c6598d3da90d044f5ef73754c3b14fbce33bf0269faacbae52328602b13e0dc7c485c02caa54b05821f5e6923c3c7b3bdfbf9f444aa3003cb031af78804b4702185a42b38ddc0bd1bebfe107685b40de763cb1797c95e0cbb41f92ba62e3f383103ab7cc01604c50c2776b022278da9b359e6c94badb7017ed3ac100a9afeec1218d28e839f2f1b]\n[privateKeyPkcs8 = 308204bf020100300d06092a864886f70d0101010500048204a9308204a50201000282010100c01f17440887a6016faad9d70d23e5290ebef6ee9b7707affc88fa85b0b66033e1cf2a82654518e2b732c2edbafa9d2b68b2fef78ed36d6c421c5bb2304711d98a5ab9aff8c48f8c35ecd5e0c721eede459832d83b92a7edfebaf163c1445a003b3300f8eea2ce43b88cad04c413b561006b7494810fc5b46c6598d3da90d044f5ef73754c3b14fbce33bf0269faacbae52328602b13e0dc7c485c02caa54b05821f5e6923c3c7b3bdfbf9f444aa3003cb031af78804b4702185a42b38ddc0bd1bebfe107685b40de763cb1797c95e0cbb41f92ba62e3f383103ab7cc01604c50c2776b022278da9b359e6c94badb7017ed3ac100a9afeec1218d28e839f2f1b02030100010282010050ef8824a0174d47039d0d427c85a7afc1478fcd7b6f0cad060d4ac4f16a136327f8d766b1750783d33bae44ea6553bb0ad3857813125ce1a38440d8f35fad5460e5d19e2185e517634c4fd9eeea0bb055cf457434bc96c43b70d3ea7b6be92279ce05d5d8ea7b4caa3d915215ac5bd7ee8e56418d91706f8ececa304dbe7e0e23c5ec42a029d1a60a1c9673e3a8bc942754d4d601f1847fb3539a3259c36c725f279c1ad4480f7186c1d641f377fa3d7ee90a5bf16b8f1c7d9f289b854cb77bfd0f41a028b9634cf3adda3b5567918d2b5d0aa08bc8ccec8d0b39c561f1c92aa6b200bb8824ff50067ef87c0f55e0a981655180aef3bc335c557a9be54e1fe102818100efac2aa13cc58edb458882585cdcfead704eed622a314d923d56e3fd21924f99fe68d20bea1e2fabf67837ec6b52248a866fb6709f550643c720f631f9d860c42f66a8dbe1e36d6fe2330211c6b9b692ff2a0bae8c700f4da7a04e06388bc313e6b480949565a160940c4f0a4323d960fb89fee973960f1972108088e147418b02818100cd35a50245114f6bedf1e0b000c725f1e659b446a05faa14542ef088fe8555fe7c19c4e97e58bcedc9813eb7bf700b59494338b7208c24d256f73c6d72af2c05ad7776de913053eddfb44e0f7db687654a3ee89fe095c331d9bc2b01ae9cb520e8355eda2e5516dd2f4c4459bc16b40bd95174f11a548c3589984d4306f05ab102818100a06245e4c0163412e7e501d4bfcfe35d8cda44607c7ba1bd4aeeea826a04cedfee2f96e0023b510b7253e09884f8e31b0ffb91caabd4e9ec5144ed7b6406383b10bd522252772eb4c05a01f88353a3a99ab7383a0620b71cf01f861703a0035b3df76c5401e590a8606a1c3a71d37b943abf8da60b834f7767ad435655eaa92102818100cd1996c8c3fb5f2402784417e54f262fb609665348ab14b4a8c71985f2cd957b7ad1ceab88aa6c7a4572361b34ed698a5ddd1fec784d59e8191f9677d5ae1b13b9a2b35e1442f73fc2dcd5404a678abfc40b4839b3203c2db0ef8f14694f1b01bed4c8eecc6c232402c7f970aebb0a4ce571b2addfa12d59bd2249e67a22f4a102818100d4b887f8d46a40a14d6582c7fb2eba4fbd715757ae88ba1f644a297483e364a1286503aeab798d30f4d2eae9710b5b71fcc2d132314da4daabd252020527312b3e9f7d4d8d3c4c8df4645720c337d10f3706c06d181c48bfaf35c18ec759da166e3c9312828fff9932bf227d8777dce56ff003301072c620e7380be48aeffb99]\n\n# tcId = 38\n# ciphertext has high hamming weight\nct = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = a4f7ea4da2d695750150d5c9889a6b4ad0a183184a9561b9dfe0afafaccf16010628cc51c68d5035919edaa1ed462d06c4b5feb649be3c60f7bdc1e4a964e758bb0541382b61b49a77314e08b3a88f65d3b5ca2d49b15ff8afa229f462535fcf7f3f20dc01d824927040446a8136cc22ef049b2c\nresult = valid\n\n[d = 2b09c12e8d0e96b3ae88077ee960021adcaedff938ba7d13da0e7152efa04e17d7beff53f0a714ae3197a5b44685e5b4a002d96ab8fe83cdba7cc0b84184a9a18648951fffc3e0a580f6411ac053c4de699b27c44371c9af451285b46d8507f13eac5a21a0cee6485af5a7036223e7d70ccf5d5d3747397ba7acc60d9d8e37b875498d06e7ca08c93cde6d8d7263cc0c696032fe973750d617b979c7afc2628938a2bb3ef6d787955b198dd114bf6af63a28e0fd7d32c85aca53c0255972841f99c4a4707afbc05c329aeb3f3daa4325e80116fdeb38f8a452f1ad4280e324df9edb9c471dffb27b679381ee11b01a656e183aab9b5b480d7ef81d0a5a3a0d01]\n[e = 010001]\n[keysize = 2048]\n[n = 009ed120a37de2127bb18615516cd7931182ad62d39d1ce99adb21d60b8b940830843ffc9537bda7be9760bd49fa61809ce9467a6e0baa28c479006465827e15c4ba08b2a1be1873e96bdfbdd2d129208ce4b15fef184dae5f3b874e0da757f2f1cbd7c43cd0445e6eb879cd292f2759df8c50de0c4a53bada3179f889f81936fe12bdd9c906d80781963781e877e4981ea4c394417965c24d82730c15a3c1ec338873b536552ae1f6d92fb39653a8ebad8338a8dd16492673a18d3c123edcdea1e100f15adc127e04ddf4c4acf2d1c44e875d65de40c4f51dde0249dd58528a371a7c764f0589d342d52bedae8e7e8889f17f9bc0c0c14237b34a8ef7c4b6b56b]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a302010002820101009ed120a37de2127bb18615516cd7931182ad62d39d1ce99adb21d60b8b940830843ffc9537bda7be9760bd49fa61809ce9467a6e0baa28c479006465827e15c4ba08b2a1be1873e96bdfbdd2d129208ce4b15fef184dae5f3b874e0da757f2f1cbd7c43cd0445e6eb879cd292f2759df8c50de0c4a53bada3179f889f81936fe12bdd9c906d80781963781e877e4981ea4c394417965c24d82730c15a3c1ec338873b536552ae1f6d92fb39653a8ebad8338a8dd16492673a18d3c123edcdea1e100f15adc127e04ddf4c4acf2d1c44e875d65de40c4f51dde0249dd58528a371a7c764f0589d342d52bedae8e7e8889f17f9bc0c0c14237b34a8ef7c4b6b56b0203010001028201002b09c12e8d0e96b3ae88077ee960021adcaedff938ba7d13da0e7152efa04e17d7beff53f0a714ae3197a5b44685e5b4a002d96ab8fe83cdba7cc0b84184a9a18648951fffc3e0a580f6411ac053c4de699b27c44371c9af451285b46d8507f13eac5a21a0cee6485af5a7036223e7d70ccf5d5d3747397ba7acc60d9d8e37b875498d06e7ca08c93cde6d8d7263cc0c696032fe973750d617b979c7afc2628938a2bb3ef6d787955b198dd114bf6af63a28e0fd7d32c85aca53c0255972841f99c4a4707afbc05c329aeb3f3daa4325e80116fdeb38f8a452f1ad4280e324df9edb9c471dffb27b679381ee11b01a656e183aab9b5b480d7ef81d0a5a3a0d0102818100cede080639a5e44e156f5e205aca552678ce7eb0962e7a633da3827832de3b43310d183539b5d3716e60eb04bf26a4cd580a38ec8cd697ce544d4d7a47d3eae4625fa60a9138dbc8d397590e332277168281f8d09eddc95cf7254ec1bbe0165104f33eed294f3417ddfa05ce88ab961b354afda8f4fc075d805fd8f19762faef02818100c48987b8d0a44a9783e66ecbcdfa750364f8d39f8030b50a6f05b6cd464ee6bd36048a1173b1f745b977f01576c0170dc27cebed558d3af636e64bde2b4655ba4bd48520ca7174af8b2f5341e823871acc7b7f849b1d8b460a102d8e42e1889d9cc1195c685aac275c751ce5bc82836b624b17cf858f3693103dcbaaf9241d4502818100a2ecfc24eb025ceda2b433ce07b3939cd948c93f0b09501b1950ce511cbf2aada0d44f5c9c373870fe1e16fb8611497af0fc1c19325350fc9028d1fc9cd5ab0a74f02035f26a75af95f67d8d5178b39266f736a0187f553882ee3f39165f47344851cc1dbd8b43dc0858027ac7e95c2fd1a95e5ed3942bb8d882a4baa220b2c10281802088234f143a1d9eb6d68dc06e77e6a6893026d76000aff6ea29a7f8928abce6d4ea2b7078161d380d5b2d026085ab4b3bc631c73742096077f5e6d8ff90c4dff16d5c1bf1669649f85ffd080bc4d5b839e0b75adbd2281b8fceddbb8e968666906be626c59f3c9fc74e1b5a6bb9aec7379df673034891600670342638d721810281801bcd11d65ef3e2c256bd5193dbf2bb5af368bc726838b0f391e785d8faca704f5b931e9fbfcbea61c76570355e4be513adb11df943afde22b5ce394a273397ee23e96116329e142cc731c9d606a1dbf0a7c37dde92216e011749a379266fa4d0b16395c2cdbdec7e0a52f5f16471f459c03fed5e6c1f2331564213a2ea34efbd]\n\n# tcId = 39\n# ciphertext mod p,q has high hamming weight\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = 0148726644c9d20762c9546d18d3c13c620f4b3b4073c68c4f9dca924acede084e66cc1e31cc7135b53b483fd32d866517aee3db019e56d161787ee6e873f6c4f08acfc58222871dd6ccec5e2dd1898990c6cd98340a12fb7f7b404d15a5dbc26bbcb2f", + "18547ba2d62c5a5923f9ed5b90ceffd597e8dda192de98fc3c7ebc169863de9f56bdd549404a690b3ef50a59e29375557c88f\nresult = valid\n\n[d = 0dc7c66696abbe32b7e45e194277ba258a94a0513c77de6674b128c8c37aa6c54618b4514c0e543ddaa40b4f98be347d48385ef4a54ec9516bce481a742fc15c85b26c01dae4430913d9048a38039d0fd0d61ecfca8aa2029c493ccb342e2d5acdaaf0f80fcaebda7fd5a0b629c63a4f82f29840193b6d68411c3b6352111ecd7335809a380e647c57babc7ce9a1410011feda9ab0fdcfea820bbfde5652f6b1658bed43ee719d054939467846d98771019225eef193480995dc4fc6fd12ff6534f35027b8d15a7afe90187081886db0e7e3530cf60ea98ce5704291737b8e9b26b53e40a6508e34b91c136967f8e633e9ed95f65b89fc3e4d3fc88f491921e9]\n[e = 010001]\n[keysize = 2048]\n[n = 00c7ac781ffb9a9f691c4dfe64e47de98b8f265e667d5fc2532668caf63921ead3d8440e605a89c7c017a722c9d654db1fe7de724689bb35d684fe038d018a3f4b47e0da7d79c09ab4b74660101b0b8cf5120d39718f0d1b11818c422220caf09a9324fede40ce3a9ab9c45ffb28f192688dd838c085c64df9eaa20429bd59c2757732ce09ae78179b99da63c1c94efec3426f81b63b8f31478f50f826ea378f391223d841aa55c72eda9094e88d658a0972d92468ce651573f0212244e04ad0d95d61f95924f65aa85c316771f18edb27e9a71a53e763c7786f14589514a7029791388fabe024e39ab31ec634a4dd85e334360791092a4d3a15d547ac40ca1fc7]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c7ac781ffb9a9f691c4dfe64e47de98b8f265e667d5fc2532668caf63921ead3d8440e605a89c7c017a722c9d654db1fe7de724689bb35d684fe038d018a3f4b47e0da7d79c09ab4b74660101b0b8cf5120d39718f0d1b11818c422220caf09a9324fede40ce3a9ab9c45ffb28f192688dd838c085c64df9eaa20429bd59c2757732ce09ae78179b99da63c1c94efec3426f81b63b8f31478f50f826ea378f391223d841aa55c72eda9094e88d658a0972d92468ce651573f0212244e04ad0d95d61f95924f65aa85c316771f18edb27e9a71a53e763c7786f14589514a7029791388fabe024e39ab31ec634a4dd85e334360791092a4d3a15d547ac40ca1fc70203010001028201000dc7c66696abbe32b7e45e194277ba258a94a0513c77de6674b128c8c37aa6c54618b4514c0e543ddaa40b4f98be347d48385ef4a54ec9516bce481a742fc15c85b26c01dae4430913d9048a38039d0fd0d61ecfca8aa2029c493ccb342e2d5acdaaf0f80fcaebda7fd5a0b629c63a4f82f29840193b6d68411c3b6352111ecd7335809a380e647c57babc7ce9a1410011feda9ab0fdcfea820bbfde5652f6b1658bed43ee719d054939467846d98771019225eef193480995dc4fc6fd12ff6534f35027b8d15a7afe90187081886db0e7e3530cf60ea98ce5704291737b8e9b26b53e40a6508e34b91c136967f8e633e9ed95f65b89fc3e4d3fc88f491921e902818100fa2be1bf12c6b55c095112496edb08a523ba9e24d4aed479bf4eea882f240a49e6c77d940c99755549cf30cebc218661a1791481a8a63dbab209f126cb43fd29a41ef05513a2e7c5258bf2b40b17e98abe31d52f2ef26db3c487609c6ab2b9e69a84f11d0860f09a62d6d52f524035af9530d78381d1954e632562b3a7d4911302818100cc536656010736f6ef6492a2da5bd075e7faa46db5dc67e11d7a7205d826c31de8371f502fc9d21c39d7e0df2983f491db457d0591b98b5259a911cd0a3788573d2a858874a76cfb440e2a477ed59f4c988332730c583e1db2b131273e132eac0590a49ec595d90198f75ee8f1cfd8c97d50b2a19f1956d60c8ffba9e30640fd0281803d118533dd6380560d382b1c9de0fe0541e9863d3b65ca1c4624ff7f6af2834872fb739e364d27a540354196d5b9e151e7d6e4b899f0aad4ee2d1b1efb33879328ab1cc3c7dd56727bade3fb2b521502775736d123c6ae1cd9f6aa10c4c3083a50b1ef21c52fd4cbfb20b23db0f857a29aeaa75144d962771620c42d52e4c2dd028181008ac43563418d81d1d121cfc8d45db8c4eac8b9b55ce6949239aff8126a0b614645787246c63dddf9977b3ad8b4dc4e5464c3dbb5d5935ac091ee160dd7db8138266d63851a1cbf1222d52ff7a0773a9a0d9644c407e542426f22920c61c72b525ef12e2c3a6a9b97cf286987f0fa44f40aacacb4c155b738e60d3f50d0c3658d02818100ef71c5bc951d7c616ba48c913919480930a864450d893776eacf21844ccb0ae76eeff814eac5a9b50c2069d822e270adad94ed19fd6ef0de3f7154a6a412bc784f78ecb5c1cb09bd5540732566d3497605cce3a6e0ce69c95dd803f291183b275afc780971c1b507b22daf2fd060b05ae277269aa36489587d5a84ca22ad1975]\n\n# tcId = 40\n# ciphertext mod p,q has low hamming weight\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 30bc6828ea18265687b8bd3bae90a8c1\nresult = valid\n\n[d = 4c340ee9111801978db8d5de581b8c825bab65e64165f5d83c7d99551c21e1e202a12a0e905ede10fb8ac383e89d736f3458370d1429e764fcedbfd7465686abee6c1e6755f08880314ffbc2ed473041095680da453a40e780e301e4a6f600fee8d25ed421e1f4732e231485d5380d995e83858eccf4511c5781c71b7a0a7cb41d7238c3dab14a136d6c3bb829347dd5e7e45d8d76c0db0c55f384f9c118de3442573e992a1ad3f81e6b0475ee302609b22b4defaafe8339c29d371732cd66a1bcecc7c84da5aa58685b84cce664e9211fcc8b21bd81d4d1cec3471bd52a729e24785b4ea510ef638a6596b9ab2638904532df185642b823a04d7d6bd8fd73e1]\n[e = 010001]\n[keysize = 2048]\n[n = 00a6fa514e4abb5a0c7078f4db7a2edbded360d84197a9fd5d8c23d3e43641df5a9ac31b425001e766386751dbba10a824f969b5f05d2f5672ae22fad8f66ba21bc233ca72c87987565605be718e7871422f800a471c7f96044721d30f8f3ed55b5a103554270c5a99ef773602279c87e649f15d3d3aa1d6f8ed3f6308825b97434975f65359be75362bd95b6a6347b994951db1b2ad97ee12e21c8284f82392f6d08cf26470f76c4bbfbfc608d499a1b263968962134cff8010b2f15c3c7b19c0858c63e6f412727d196fc229d24651c839093466982a81bc2673f58b6e8625830eff0a22a3af66b9c9c1e47a99aa057ab8c0d16b16bb479a751ef3a3f1653c5f]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100a6fa514e4abb5a0c7078f4db7a2edbded360d84197a9fd5d8c23d3e43641df5a9ac31b425001e766386751dbba10a824f969b5f05d2f5672ae22fad8f66ba21bc233ca72c87987565605be718e7871422f800a471c7f96044721d30f8f3ed55b5a103554270c5a99ef773602279c87e649f15d3d3aa1d6f8ed3f6308825b97434975f65359be75362bd95b6a6347b994951db1b2ad97ee12e21c8284f82392f6d08cf26470f76c4bbfbfc608d499a1b263968962134cff8010b2f15c3c7b19c0858c63e6f412727d196fc229d24651c839093466982a81bc2673f58b6e8625830eff0a22a3af66b9c9c1e47a99aa057ab8c0d16b16bb479a751ef3a3f1653c5f0203010001028201004c340ee9111801978db8d5de581b8c825bab65e64165f5d83c7d99551c21e1e202a12a0e905ede10fb8ac383e89d736f3458370d1429e764fcedbfd7465686abee6c1e6755f08880314ffbc2ed473041095680da453a40e780e301e4a6f600fee8d25ed421e1f4732e231485d5380d995e83858eccf4511c5781c71b7a0a7cb41d7238c3dab14a136d6c3bb829347dd5e7e45d8d76c0db0c55f384f9c118de3442573e992a1ad3f81e6b0475ee302609b22b4defaafe8339c29d371732cd66a1bcecc7c84da5aa58685b84cce664e9211fcc8b21bd81d4d1cec3471bd52a729e24785b4ea510ef638a6596b9ab2638904532df185642b823a04d7d6bd8fd73e102818100e99c2ac2c9e1cabe0c54efccea49f9fbb1d4c0999ed8f3dcdd6b8300d83772ccfff4c9ddbfcfdda0c5ab01679bf0423b2b481488cde9e5307224fee2d37435183efe825d1870b8545e612f3ee8694817270f28f7a62ea122ae2fd0c30498af9ebf9c078f17e9ea065fabf753354b869b4110fcb4b82990950236b728d4ca4eaf02818100b6fb44ce7578f18a1c48e5d6a86e0768043e94cbbf56b38042fcb90b8a6b9d20c352b9cee2376ac317fa42cfb5bab87e05d7423f136efb2fe433a1ca7129645a2f3334d1dae55ab0265d8ec7a7f78f02cfe6dd269d1d1378716b03365d3922967438c1358075aaf3821c48eed9b59f85be1197b9c17f3fc52c5e77da9650d9510281807120d0505e257ae207e4c5efecf1801e94229c56886735c91a6ceb16e89e09791ee6732f70a90001d0579ca98909937945df751a3ee56ab8c83e0434e2039f86ab52e2dca46e49c589a2f49739436ac6d38272eb62cda7f8bc73a95c1788bd5b5a1cfc481e63879228988580050a1b186a2d08c3977f8165b799b99f0b55213f02818064ede1fd1374db9e378dca21061472c76017f8d10dc050107e6291db18c5d50cbe504227284633005b987203ca14ad30ee1dd6ef9dd3887fd91ad5b2298b104c625e9752edafb6bf14da642822b0fd542ac307d705b0850dd95992930906bbda4b4f06db70f8f68b8c87f77eafdd6b9944c6c56ef39931de9b639c2e98dd0d9102818072949cbe1de1edc01c21d2bda3f13ad55e950c0823c928c9af117f004cb42e4a1ab01d7f139ab1578643c833e5c580b822044bdb03a31ea5ced1070ca9f198919264aec69ad137338ac7a7753f77846f4701f0b458acc22aab16ee8983c7efcfe9ffc1d17171c9906ffaa5c0623c2a496862ae30aae81a73f1166b21ee6ee153]\n\n# tcId = 41\n# special case ciphertext\nct = 537d28a7255dad06383c7a6dbd176def69b06c20cbd4feaec611e9f21b20efad4d618da12800f3b31c33a8eddd0854127cb4daf82e97ab3957117d6c7b35d10de119e539643cc3ab2b02df38c73c38a117c005238e3fcb022390e987c79f6aadad081aaa13862d4cf7bb9b0113ce43f324f8ae9e9d50eb7c769fb184412dcba1a4bafb29acdf3a9b15ecadb531a3dcca4a8ed8d956cbf709710e41427c11c97b68467932387bb625dfdfe3046a4cd0", + "d931cb44b109a67fc0085978ae1e3d8ce042c631f37a09393e8cb7e114e92328e41c849a334c1540de1339fac5b74312c1877f851151d7b35ce4e0f23d4cd502bd5c6068b58b5da3cd3a8f79d1f8b29e30\nmsg = 5428c34ab4a93dedef450347e9b89b894fa6c6b1c07e0205f5b4505cf0e65954760e3ce92a170499dfc10d5f3b4ee72843bd394d04f0310db1f7dc47950ebe88b3d32492d7170814dde0e0564560740f6bc7c34a64a9547977b446e8f9edbec97246e113e6f86a2e81cdbdef6531016638196eaa8cab3cd7c6f6fbdc8a60e5b48698993310872429cf5baa34f32c6fd9320265\nresult = valid\n\n[d = 1de8594775dc196abf0c3cd0c072e60d376db575f2b3ae3b1c082cfd91186621dcef7fc575d0361d755270f7cc01ade8b93c018d8bb883adc5b10a6c75ab9bd7f65c336e3e0d2165e4534477e38ede3c7dac1a784fe02fa3202170003273e3f6b10771033ddbc9cdec6f9f6d308783a76853be9a4fe49bffbce84e65bf29308d956a7375fef2d1a41c60f980817d9a95f485ab29e441805c615cbe6ee17794231b5207c53a21f11ea2f16f576a43a9279702d8614ef8136cb0d69a105308bbe0e7707d88716c8970b4c4d5e3ce41a400b379bc2a5b6307a6063f641b38934fba06bc3af42e4b4d587086309882180bfff4d8974baf6fa3d17ee094a9454d2be1]\n[e = 010001]\n[keysize = 2048]\n[n = 00aca199738e9f86f0e76696188f4d366e6c900d11d0de3ed586f371172e2cfc94289d93411b51d82ca16f63a9e4586d8b0198418307093b1475660d055e4b2940662fee32a10ffefc62df6a2d8bb811eedcb461529ed548e6e094fe8c7a91703524b5af85add10113655c934bcd6b8dcc0d0ee6edcb08f8a84fe871f44f85b2aff13a968bc12a960f8c93877f1bf22d18ac581878a0e6e7643781c91c65ec0135cac31fba6dbb3cf36acf9e3168571edb6d26b02b5c011dd10b57462d0abeb0c2d3d4e0f89680f2834b117215c6d79b3ed938b657b45decedf1524b095dc6160c18dbe58cf8d0a251ec2f9f737bb81997cd863d94c535eec63ff5e6000d80fa13]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100aca199738e9f86f0e76696188f4d366e6c900d11d0de3ed586f371172e2cfc94289d93411b51d82ca16f63a9e4586d8b0198418307093b1475660d055e4b2940662fee32a10ffefc62df6a2d8bb811eedcb461529ed548e6e094fe8c7a91703524b5af85add10113655c934bcd6b8dcc0d0ee6edcb08f8a84fe871f44f85b2aff13a968bc12a960f8c93877f1bf22d18ac581878a0e6e7643781c91c65ec0135cac31fba6dbb3cf36acf9e3168571edb6d26b02b5c011dd10b57462d0abeb0c2d3d4e0f89680f2834b117215c6d79b3ed938b657b45decedf1524b095dc6160c18dbe58cf8d0a251ec2f9f737bb81997cd863d94c535eec63ff5e6000d80fa130203010001028201001de8594775dc196abf0c3cd0c072e60d376db575f2b3ae3b1c082cfd91186621dcef7fc575d0361d755270f7cc01ade8b93c018d8bb883adc5b10a6c75ab9bd7f65c336e3e0d2165e4534477e38ede3c7dac1a784fe02fa3202170003273e3f6b10771033ddbc9cdec6f9f6d308783a76853be9a4fe49bffbce84e65bf29308d956a7375fef2d1a41c60f980817d9a95f485ab29e441805c615cbe6ee17794231b5207c53a21f11ea2f16f576a43a9279702d8614ef8136cb0d69a105308bbe0e7707d88716c8970b4c4d5e3ce41a400b379bc2a5b6307a6063f641b38934fba06bc3af42e4b4d587086309882180bfff4d8974baf6fa3d17ee094a9454d2be102818100ec7e4a7a3ea4aea022cf4b5caa6d9ff39f7c8285d6dd9789f90f4246217a3f4bb342a377046a216e214874d1d3b4ff599e1fe9b70d81ac5a2ed2bbd18a1ec5bba38431c26c614f5d474b5ca56d78c36a287c6880e3ff2d3d1430fe496c7c0df970df38f699b7919819b4872caefe2d6848a9766dbd013ccf8c9605a6e9c69f7902818100baded1cece65f6ca97df9c1b575c535806de637f7383a381477c682e6dc911a0264465311af636e13ba328a1f7dc8880dba49e683c6dcd7073bc138362d6afdf62ca0e626cee5ff9a325ab2eb0479190f8787d8bf7b4c3e7ed1b4b568abb9dfb26d4d16001392e392bd7eb2aa536109f273c0387056cdab409245cc43d3dc6eb02818100d67690c3db1b2ce13bb010ffafee4a277c72454b6a56f99dbda700cae8811bf56253043a625e7c828adc52541651056017ed88dcdffac079e80c6316dad29d2e5453056cf32c2bf4c33aac81b88cd369e9dd2847fa7ae663857408a63d2322e91a5ad4258db0d2efc41fda95c2fbede1ac43418ab2e3f469a36c4923dcccaac10281802a7dbc0b60574314b21000791f1639454cda88995474dc5aeb1c58bc25ee90796ffa21605717214779be11e132710d00eff0b0ac570148b3873d7eda634119e09ba00241532fa8d724c7cdf2e1d6843d08a2ad39846bb0182e8c04477b6849f5efd078837203c484ef793b5a09131018805d5f17f69dd7e514271688f0bbf95d02818100c017692b3af8ad0506fb23dc02f1d220c7b99d68b91e3f97901c10e9c772e537f5f6102720adf7a55e6beff690c7e48f0c122bdea81f56bd6561a336d73188e3ce213ac853f744f0ec5b8ec10a9b9b0433ecc4a37d9970779e0913bc4bd25d2111e89286ddcbacacd23a13e5d7e0358c35681d558faa484e8104a30938e38bb6]\n\n# tcId = 42\n# ciphertext is a simple fraction\nct = 171759da87532242dcbd4821488d4861c1d87a2479c655e945d02cb5de9799f5f6199413101e0caf24bcfa7319b91da481b3c717dbd894f9f7fe814964cdc5d2f5daab161c5d36346ec30a5d8e8e959df25fc107ce2fe831aeceafcd580dd9d6e862b0dc67c97786947a06788dc037794ba3bac7d6c1dd87f0d0acc4b65d0f05965884a3a6b57c50a3cd7b758907b45f877bace2102e28e61dac68cafdb0cafe635664f27d005bf03c809114e6d2d3ef06f18effdcd8f4b223506259765efbd632be128b67b268df2e6f99714325d7cf089110aedbb55d0556c76a164cb6534b36c0ab6fee98e4d0f8db7a76bac1d9b8328b928e6601092ff61caf0298175a39\nmsg = 9d01acafe3375c444a74d3ed74166e8728eb6657c7644677579720aa8ffebe64f52e36b449f8a0fe79e07bd59e46aa48c83088ac38bf10a3e036158c198a2a3fed283b2710b632e0741f970969b475bc4ae8355e60c440f71f304a1363b24819a351d5147836febbe249d65ef3c483a76df46a019a2f3eecfdf0c18c0ab11de90313cd9af93a857dbaf8049c6efede83274440ece9c2103d00e942ca65a8efbebe6190d9e5ed61816804d941d027cccae2966854b38ea07bcef857e5fc3fb4aa5f3c4c56360007f972d5d6d6740a585d000df619d3466032930a856c2ee14db5e6960c8e9ffe79107e212cdd6e082eccb10a\nresult = valid\n\n[d = 16253d566d6f2660896b3504d2ded2d2c264cf22f9524487bcaf5c0df7075e3a97cf959fe7b78d33c217b47f25d85f30b00f1ad3347d6bfb090382ba45d620342e7532f65627b2bb411d383aab5ffcba33fc32dd06bff027229e4f542d42f9e4fded45637a2d43d42d2e0c527ad28d60a837a45bdf8c39376ac9c13f9b8a39ee93846c65fb70f129e37e5a3d21b5237448e3b78fb128bebe81c78a39c6fcbf0ffa2ee6beba1b5be02e2a7c4c2586380889275ed22f6d1153c1782643fc792542859e8ebbd5da60a8c6b27bd7d22d28089d6a369a0d8188dceb90fa6aa72449a6f58a07575d131dbf4f72a1f05864824511d713ff6350f10e2ab42f36fa37ae01]\n[e = 010001]\n[keysize = 2048]\n[n = 00af1d441122c45188e3b2daef70cacd253a0e611af2d17a60e703baba696e5ef2d7ca0d53eeeedaca1c079ddd3b0b0732e15a4839cd1daac35ddacd85b368f5721eee409a7983bbe3f2eb09a23632a8d700b1235fadde1ce1f05a8013a9bc05302e08027e8102e755877b59f65625d029312ed813e3960410ed419b787cd8235e002c26f1f7bd7e03754ec0fc12087edb85dc793757324ca90611a22364bba069f084fcfe7730a98f6f6b784e65b84643443e38b317af8cf99c7e4711f7303c7c323b3ca4b6b306b76bc9f554b9713fed313713d98438efcb3cc9c6d4958ba84bd80f2989e4e059005a6585ec18c6c6c887c143d9ed962303d6c74c21771184f3]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100af1d441122c45188e3b2daef70cacd253a0e611af2d17a60e703baba696e5ef2d7ca0d53eeeedaca1c079ddd3b0b0732e15a4839cd1daac35ddacd85b368f5721eee409a7983bbe3f2eb09a23632a8d700b1235fadde1ce1f05a8013a9bc05302e08027e8102e755877b59f65625d029312ed813e3960410ed419b787cd8235e002c26f1f7bd7e03754ec0fc12087edb85dc793757324ca90611a22364bba069f084fcfe7730a98f6f6b784e65b84643443e38b317af8cf99c7e4711f7303c7c323b3ca4b6b306b76bc9f554b9713fed313713d98438efcb3cc9c6d4958ba84bd80f2989e4e059005a6585ec18c6c6c887c143d9ed962303d6c74c21771184f302030100010282010016253d566d6f2660896b3504d2ded2d2c264cf22f9524487bcaf5c0df7075e3a97cf959fe7b78d33c217b47f25d85f30b00f1ad3347d6bfb090382ba45d620342e7532f65627b2bb411d383aab5ffcba33fc32dd06bff027229e4f542d42f9e4fded45637a2d43d42d2e0c527ad28d60a837a45bdf8c39376ac9c13f9b8a39ee93846c65fb70f129e37e5a3d21b5237448e3b78fb128bebe81c78a39c6fcbf0ffa2ee6beba1b5be02e2a7c4c2586380889275ed22f6d1153c1782643fc792542859e8ebbd5da60a8c6b27bd7d22d28089d6a369a0d8188dceb90fa6aa72449a6f58a07575d131dbf4f72a1f05864824511d713ff6350f10e2ab42f36fa37ae0102818100ea1586f2fbdfde7f7b5bf8640a757e897716cd7e7c3426b9c3df106bf6ad36242b10021cc4c23b2e7dff3114c0f66623cfe9df6e9946099e45b1b75447da1331a5cbeb40b0191901e4fb296438fc6c9db4d2f496ec5a891ee6c3ac1ae205a8bc3621642f7f58c701236354e1dff558d327d3fe91645f531ac3374938cffaba9b02818100bf825d735ff9e5da51a9b5f413dbfc1367fa0affc08a031db2b0b73c55a37aaec08cac6030249bfbd079caf95717f17568f730f106d6373926fcc147fa8b7b76b0f911511aac035b5a79b6dd49f08e6fef744e928733b3d143cd946f8598426d101b559e76024b400af6c82cfddb7a8315ea20049a80506ea4c987030c7178890281810089be091eca1fbda97e496c2c520b395e6279448a7d43a2d604f029959e1de691f9d4fda9380ea30c848fb9ade0ae1d044dbfecfe03ab36d5af6517dfbc3812bb503862423a5d4a5dd704042339752fe4cd16a55e79cdfc89f67885b97beea08fbfba7e5d84ae14cc12aaccb3ed394dff529c685bdd984a2aa15cd2f55f4cc6a90281800dec8f98dce89182bf1f44c07b552a4dcae88e362c2c9caf6317a02afddb060780ae79b600aa18c1455625a0dd693b401b22a5e75064", + "f0dcf1edbcabdc169a22761995ddbcbfb6fac46847186dd0d4ba64c1a318da45b3144b06be7d214c81bfe644e683bff6c8bbde50351bb85565e1f40cf2c902e6c37257fee31720a77b6902818100e1b7b58183f44db95a767f55d82a777aff5b62f44a2b29382f823e62a45bfa87356c089816314d18274c57e4294135aabffed934518f61761c6b9d3fc47201eee298944a888c5eb004b161798a91ff3775dda795f244ccbdae5bd90e71301e1c24cdb3e4398c6a2860ca67481b362947f9fb9a5b75f5b3623d7c063fd5e8aed6]\n\n# tcId = 43\n# ciphertext is a simple fraction\nct = 46a9ee986efc30f16a6d46521865f3ebf97ee2c02d693f8f3ae746c99716ee5d10a25a8fb34fb75c735062bed816c2a2cfcc6733c9d1f1b23df893cbaa8c92dbf0e8bf93a80d8a21c1d4cd2af3da728d9aa476ae55ca700820435c02cd872d3835b4cb0f4626feecb0bbe45f35e2f80c704d9a4e1e2bc613bf06fb52f26ca5cba69c3bd96b1a3845a3fed672a52110a9e710a7710a4ffa44f1ff890c1d698882eb27b27cd8184a9f5e3d4b33a51885f23b80e97887e7099c3bea6aa76db83ac9ec6880ce784d34a4cecf841404d6295f531e6f1262ddfef28f06412670ccd2af404b76f94d98ae6c2789944b66cea2a033e2f405217624fea444666ef30c7b84\nmsg = 6742f1e5ba666a102747f6c90b7afe5700249cf60192b201c6c29bfff1487b0ca4100091e9e1d94df3af18021822835b40b9c20e2bf83ef174deaebc94ac9770d8b128ade611c19256d6fb62a41301898af074254c756f8a241851f3d4a052d7745f99d9e161434af4940a80610cb2fe63520bcefda74564b02c99ee9b0d88036ac39ce547cf103fee0c1666f0757734c29577fbd2f88e11058b5f3e81f82ff3f456ddc8018f7ed740979b15da66469b\nresult = valid\n\n[d = 49afb0149ed3ee236c284e0e35bb4e6e085905bb8de274e85d5202613a0e92c461721f289781d7f43482f6249e27d595f36fff1542285590704bd15f79ce3d5749f156a3c3bc68483bb2a3f4441c8311b160413b6aa01b2b1432c620afff3612b931cb6ca7c75a07e076b6a5626174a7e3017dde310237416b3875e588dd9f188f418ccf49d8538d29da7291c5fdd7213d615e5f1d7f94768dca6112978dbdcac1f9b801ec1463e9fc2a49d34b9a638605751485e9f1129800f3ed7e73cf27edbbcb80f11655f10b900544862bf7bf89adbcd5bd23c3ebb744a688078934138a0fb930670ff4b6588f6034777ca1124cd01caa726c75d85963cb3500795401a9]\n[e = 010001]\n[keysize = 2048]\n[n = 00d932a891279753a70c0a5788da0b6c740bc78384b46c43460d9d1d7d64310f066d5d62799e115b542c05012b692c5355ca525492902c1e38ab77c96a7e7d07f651f0ab91dcc4fadf46fb5244065d58620eb6d31d736eceb027c46e4c0424d27f0f16d3e248f3bf3ca93127729f043fc1a307961188c44abe77e782e3d2a022872792425f342de097145551cce568e26f34cd0ac787baf3b7e85a768a469dfcffdb6ed2ed8cd7c433f4db4577cc10ef49a34351c8ebba3240e9a5e867374df01732156e3269f656389aee2eddfeccba60ab913bf3dc734e56b094ae1644a547af5ae4d7153a87610a51af70bd5796d6a2dd874653c5cc5cdc502d7f3358f4de79]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100d932a891279753a70c0a5788da0b6c740bc78384b46c43460d9d1d7d64310f066d5d62799e115b542c05012b692c5355ca525492902c1e38ab77c96a7e7d07f651f0ab91dcc4fadf46fb5244065d58620eb6d31d736eceb027c46e4c0424d27f0f16d3e248f3bf3ca93127729f043fc1a307961188c44abe77e782e3d2a022872792425f342de097145551cce568e26f34cd0ac787baf3b7e85a768a469dfcffdb6ed2ed8cd7c433f4db4577cc10ef49a34351c8ebba3240e9a5e867374df01732156e3269f656389aee2eddfeccba60ab913bf3dc734e56b094ae1644a547af5ae4d7153a87610a51af70bd5796d6a2dd874653c5cc5cdc502d7f3358f4de7902030100010282010049afb0149ed3ee236c284e0e35bb4e6e085905bb8de274e85d5202613a0e92c461721f289781d7f43482f6249e27d595f36fff1542285590704bd15f79ce3d5749f156a3c3bc68483bb2a3f4441c8311b160413b6aa01b2b1432c620afff3612b931cb6ca7c75a07e076b6a5626174a7e3017dde310237416b3875e588dd9f188f418ccf49d8538d29da7291c5fdd7213d615e5f1d7f94768dca6112978dbdcac1f9b801ec1463e9fc2a49d34b9a638605751485e9f1129800f3ed7e73cf27edbbcb80f11655f10b900544862bf7bf89adbcd5bd23c3ebb744a688078934138a0fb930670ff4b6588f6034777ca1124cd01caa726c75d85963cb3500795401a902818100f0d6d9aa1040e8acfa4d658d632ab8342357edf9a00537c888370e747ad9584cfa6832614396db584b289ba2585badee9d2be775c194faecf80e4109bc363d8211d4ba71b06801856aee99281860620a19f0d4943f3d7d2afe6dac6c55870087959be0d2a1f8d1e018db595620ebd8ab3d5480cd5c1aec73c970269d0c7139b302818100e6ded3339413510f9908a1c028999e530eaa029dbb82f5519bf42aa8a8f8241b151bf95ece24b35c33ffebf973755716cdde31052fe9fb8327ea6efd1e167aea0276abbb7b996ff877428534c12a48b57988995dfc1e5b93bb3460b8c5d57a8178eef7c6eebabf00859826e1a3c4676f98893c095c8a892c07d97ff7e30a99230281810099846a84d40d7c035f1ddcc0ce5899c86a4b0f5f92582121cb6a44e58cb5646ad5277c0db1d6c484b88bef01020f9684465d8911efce76507d2220e502bb146407d7b0eced44aecb8bc90189a45833c63a98dff88b833779236b67803ad86e46fedfb8e4aae87f67b8908196bc2f7a12556abb1bac3d6141c142a2ea72d6edaf02818073d142a87457406a0fbe69ce894f8f42616fde421ca834c30cf66f540ef7f4bcf559043f90308f1de92430d00220d260a94416d960510410a6bc8f93413dcbc98b14d75005505300956b7481a389bfd1f23719a131725544863c5f6d3229c6fc1e9bdb071c09e8f9ad0b482e17c6d6910037903bae05fd8c6e1fa977c499337b02818100ce18d158822540cfe589748338a77a4bd9a57b079819f028013372359f29748b8ce340df5fc42ead637b1d5c069477eb64e64ef424c9d64aec4d0d0c71b92a5d35c0aef4e9d8a2ce0a2ea8d6deddbdf9697c054dc21c05e96e2de80c651826e6eb59a06696d2f8518ae91479f321da24c3c3b6359ca12deec16fe39f62e6714c]\n\n# tcId = 44\n# edge case for Montgomery reduction (32 bit)\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000\nmsg = a41ebd80b15cbe50842790f7f30b680aaac807afeeb4e5306dee48e6d7946ab8378fa6112ae86874f7b14233ef62ce90e3c0f0eb5551a256c0759e3b14cd70411a897150640bca5d78298a557992ae3bede97b981b6950689c74d7ad90651870d8f5657a202f6dcc2d6fd2698f03642aebc489c3ac9a68c7a2c184017f8b8ea81b80ccd7871e01c9d7b3496070c2508cb69eb71667649819e803a0c0fdca45c7c21c986baab12f986f37c3132d77b5861d87753f6147a7aa39e70029c024d5896d8add076e517ef0b40049d7fd0495a3e3b63eda\nresult = valid\n\n[d = 52d5134bdedfdacf2a6122c1bf3e6d8b6dca44da7910e4331fc620a9773324da739a62a8d662b47d4fb955da87a2af253f1c098f3f285359b292f7de587c6ab57a3e3efa9b1ce5f9957aca8151924993e984c300db986e44d4709715f87de78d273cb84265f0f62ece681bfe0a0082fcd4af537d04e2d867a2ad3c245b57d83cffca1227217270cc695f0274f7b93b871f560073afbd7b9ff56cb769b96e041a5e78d272e88d87752c839114de210f990490f37d196a7cd6a7315e66a13fa85ed9c531acd77c35013827f42d9c69e2a2613e9b491c9a33af16ccf9c2057b1d4c547ac91f6511bb74ee68a42d209fc0172c118cd3c664d78e23684dc7681c0591]\n[e = 010001]\n[keysize = 2048]\n[n = 00bb11e68c71d58bf30658751bc3218e68be87dc8afa5ff98ae62c06501548985959ed95172a9d3659ee6ec34bc417cee12b878001c54bc1e085ebbfc0e8d977d35ebc250618bfe6caa1d018f2f4067c3f825016c648c188166560056be9d6a95143bdd4fea6ebaab56f397ec78c9915afe0a18be3f33085c2ae2af3a799d862ec997ff556d91b3a80bd675fd2ce4f1cebfbbeb27bec856a29d267669e2d78f0e7f5a1559853ea7cbe50c3a1051f71b74591c5ab4efb2d1eda47e21f49866e80d75e237486852d5a24b72017d9334e958424ed32f5a02db7cc2cdf743b58864a219a8667890b396c73ca9e7c72c74351dd317583f463094014cedcc12179168ccb]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100bb11e68c71d58bf30658751bc3218e68be87dc8afa5ff98ae62c06501548985959ed95172a9d3659ee6ec34bc417cee12b878001c54bc1e085ebbfc0e8d977d35ebc250618bfe6caa1d018f2f4067c3f825016c648c188166560056be9d6a95143bdd4fea6ebaab56f397ec78c9915afe0a18be3f33085c2ae2af3a799d862ec997ff556d91b3a80bd675fd2ce4f1cebfbbeb27bec856a29d267669e2d78f0e7f5a1559853ea7cbe50c3a1051f71b74591c5ab4efb2d1eda47e21f49866e80d75e237486852d5a24b72017d9334e958424ed32f5a02db7cc2cdf743b58864a219a8667890b396c73ca9e7c72c74351dd317583f463094014cedcc12179168ccb02030100010282010052d5134bdedfdacf2a6122c1bf3e6d8b6dca44da7910e4331fc620a9773324da739a62a8d662b47d4fb955da87a2af253f1c098f3f285359b292f7de587c6ab57a3e3efa9b1ce5f9957aca8151924993e984c300db986e44d4709715f87de78d273cb84265f0f62ece681bfe0a0082fcd4af537d04e2d867a2ad3c245b57d83cffca1227217270cc695f0274f7b93b871f560073afbd7b9ff56cb769b96e041a5e78d272e88d87752c839114de210f990490f37d196a7cd6a7315e66a13fa85ed9c531acd77c35013827f42d9c69e2a2613e9b491c9a33af16ccf9c2057b1d4c547ac91f6511bb74ee68a42d209fc0172c118cd3c664d78e23684dc7681c059102818100ded3abd74d472347657a9d94cd09e605b6799c579843335468eb26280ff6cde836d2f68e", + "1bf011fe5e0ed882e962d4f33e10d441d311536c30ef7f61e4791fceacdeda89092442690af53644878bf7fee88ec55ed1aace4f05abd5fca138ad03585e2231eaf63c16efdc221dd9111dfd1ab320b52b0c878ae68d01092ef77b4302818100d6eb7829ef21696440506048fa4a61be6eb8f1f525fedfc6b26442071ca324a9b5c319018777b6881fb9e506949c63648ae559c5c0f9fa79b9aef4c54659afb3cc892921eacaf95b194aae4b6b1308d399da8993082d3ff2e6fef6f5043ca9018de1f6ee37252561eda1ff85a9f3a1d039d415cc2525ae52bebafed44d051bd90281801a36d0ba8d8ed6e9a958997d4df9e223bde9e4a8b1730670e1bef848324898c4bede66bf252e430fa7c51b579b59533022971c417a31499d2acca231c40d33debe9ba11e0a034804cf9335852e651b11d40e27ce15e08050ef9bdd9ad0e4b805f2b970506b11f8d3c1f825d3591c186914610a7205d47d85abc5dedf53b52dbd0281801c5645acb9c3dd0283dc5525aa229e8a9e4cb25251652e9a233146e76b26339250cddd812f1c60abc80b19a0697dc9391b7b2bfffff6b5c8d0ebb9883d435c0047ea99cac80b651f56d15af3c4b568c78594a3e907fdf75d8e8975844ebfb4c4e8b12f7eaf34ad9e20d7e839f6739215435aac591358c9884d6f9863e397d5d902818100cbee5c8932503cb00a93125a1f89897d88ac171932871ea7cb775a9bbb0284b6a239408a9e79d7dd81846fa9e34acc81589c8281e066eb9fa7a45680249fd4b97cc3bdfacb9bf10591f4998ac63cca7355b9b7e84127c6fe14a6a9b5b64fad3540759a210ee2c7188f9296e1bffc0a4b2fe516ac6e7aafba95f36b7e03ab31d2]\n\n# tcId = 45\n# edge case for Montgomery reduction (32 bit)\nct = bb11e68c71d58bf30658751bc3218e68be87dc8afa5ff98ae62c06501548985959ed95172a9d3659ee6ec34bc417cee12b878001c54bc1e085ebbfc0e8d977d35ebc250618bfe6caa1d018f2f4067c3f825016c648c188166560056be9d6a95143bdd4fea6ebaab56f397ec78c9915afe0a18be3f33085c2ae2af3a798d862ec997ff556d91b3a80bd675fd2ce4f1cebfbbeb27bec856a29d267669e2d78f0e7f5a1559853ea7cbe50c3a1051f71b74591c5ab4efb2d1eda47e21f49866e80d75e237486852d5a24b72017d9334e958424ed32f5a02db7cc2cdf743b58864a219a8667890b396c73ca9e7c72c74351dd317583f463094014cedcc12279168ccb\nmsg = f530f3adef7fc80a148531103d79369d741ca40cfedfb9ae1d150eeb73a4acdf71aea6defd3c493ec032f2db51758ad4e02e2bd9d48364bc0adc0a70793727455be33abdec47cb9904c7cb0bd2bbd13a5a1071d326921faedeec73b6bf0aabfb1b8d84432615d7ceb2a943d1fc5679978ac18adab009c86cc381c18878dace1351d1de94ea458465d291ee9cf591eb98284e0d497f699e7443ba15eb851907aa01cebb864ba3a6fb1227a736cdb000fff70ad25daba26a4c4af00141015a049b9dcd4ed2c1996f\nresult = valid\n\n[d = 7ededf50837a69ec04de01c1abe05d95d0034267bae1e04fa63e94c38d361ffdc339ee6a3094eccb7ed5890df0477b0e7dd795a4f1cade2cbfd881e7a17f487698695418c0090eb599ddd1a98a00834a7dffdb850bc60f1c1083750d83e445b74a51efec0dd288c7151bce28358564ea78c00ce438561c218720b7ab7d3c7e3730b1245afdfe5d00d3627a4cabeddad61ced976df0dbb47e0b5804ed843ed00480c50540bac7150fc60f613be5ee4b9184d5b4ab4b82ab31d71fb13a1d21bb110fc12682ab32653375c83f143f0358dda6a2301ab961d1132bbe6308e1586d24add35ffc0db642e888511207e1348668597a01598f528963097be8fb55338531]\n[e = 010001]\n[keysize = 2048]\n[n = 00b47eead880e65ddd3fd77dbc859b82cbd93d16698ce29351e506c361dfc14c7a691e7f045cc7611c0fe0914ed1fb985012e249c238f8c9591255b3d27312c8840b83a1b75b3fb65ec3ec47c066aa31359cc2bbf92648d0e010e4306b8c8d7960ff0fe522e03740e25e3ea31dc61fe980e76aeb5ca56582deff392d676181dea95345fef290c431927a5e8190d1c28548c751d048c51b35c4e4ecaaee4f6c0ab376cef1b0cc0d15a843f3aa15b0de22d02c571344a1704c445bd38dab61bd291eb6ef654fb01e2c9c3149d4e385f5e3d3f2a6ff2ac6543035e742291d02faccf83a283c0f60d2f031d2536dc08861e8c942fe109cab2dbc249a60370fe8133803]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100b47eead880e65ddd3fd77dbc859b82cbd93d16698ce29351e506c361dfc14c7a691e7f045cc7611c0fe0914ed1fb985012e249c238f8c9591255b3d27312c8840b83a1b75b3fb65ec3ec47c066aa31359cc2bbf92648d0e010e4306b8c8d7960ff0fe522e03740e25e3ea31dc61fe980e76aeb5ca56582deff392d676181dea95345fef290c431927a5e8190d1c28548c751d048c51b35c4e4ecaaee4f6c0ab376cef1b0cc0d15a843f3aa15b0de22d02c571344a1704c445bd38dab61bd291eb6ef654fb01e2c9c3149d4e385f5e3d3f2a6ff2ac6543035e742291d02faccf83a283c0f60d2f031d2536dc08861e8c942fe109cab2dbc249a60370fe81338030203010001028201007ededf50837a69ec04de01c1abe05d95d0034267bae1e04fa63e94c38d361ffdc339ee6a3094eccb7ed5890df0477b0e7dd795a4f1cade2cbfd881e7a17f487698695418c0090eb599ddd1a98a00834a7dffdb850bc60f1c1083750d83e445b74a51efec0dd288c7151bce28358564ea78c00ce438561c218720b7ab7d3c7e3730b1245afdfe5d00d3627a4cabeddad61ced976df0dbb47e0b5804ed843ed00480c50540bac7150fc60f613be5ee4b9184d5b4ab4b82ab31d71fb13a1d21bb110fc12682ab32653375c83f143f0358dda6a2301ab961d1132bbe6308e1586d24add35ffc0db642e888511207e1348668597a01598f528963097be8fb5533853102818100fddd690268fff94f703b9b1f7969498a1f6e3ea376c7fef65c52e117044c0b09287fd43703204c584721fcaa9cd7b9494d783c5d60897dd65503a06f3ba96b533c61039bce32c41aafed27a60fcd27a3396bf13925f13ca104422c6f3c0b0aa67eb680b29c0786cc1d5410bbff60c0812b9f549e5d4ece0c941bcdf3595ced4702818100b60389bea91bff17eca1989179cfb5a60cb5c94f473990c1f9a27d54d8e922d8aea9c6a0e58608a907d695342d6321ce5b52ddc9ebe03eb1c48452f1d8ad3b3a820620af15299d223faa792d557c1b065316e51aa9ff5fcf19903cd5f157995859deb0320bdbde6ad5c996eb3e2b1ddfa3525bfd250097868516e210493b0d650281805d153811b82a5361bb473fc3b4a2d4621ed02f8b845c24b2747bb728d75c829763102be1d7f599c8ac9c5ba6bb47a61aa89b33971174987d6442a62ae2f765f0e92cb14409c13782898b2d84883ab313f85409e8e86ea1ca70634b23a6226e4f4a1ae4e998a871d699d25f286fa52c30b0ac053ce3fda7339982f06b101330b50281805044c32c681bc6a5e05f6b8f4c6f03a6d5181e4d6e15bef72c86324b86d559dec138723666c2737347d7a4393c82e957be028f790b22fbc31ded553efed576b758bc2711cf7d68a4bffb0831abef6d639ea50c28742c012eae116422ddaa4a20229208962990af47e23c62e81fa4982a1636ae06b798c93a33db619ad910c7d902818037f2a1d6cbd14425065ed9ffe7994d80519286b49694ce977d3bb999bc7e2ea9ed85126b3895b9dec1e7aacd930bca2009ec1879bafbb0778527c53f09d12154909ec79272bda9d57aa5db653677d95b443a1f7db99dda8bb97bf1702309af1e23e39190ed7413dce6904b8eaf5396944150e4879726aaa0991dcbcd8124d8a4]\n\n# tcId = 46\n# edge case for Montgomery reduction (64 bit)\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000\nmsg = c0e17fbe480115f5fe7a66236adcd3477fb6d7d2ac5cfcda26afb21b3de59b36b7889c9baccd91dd7dbe7fe744cc48b301ce799ce393452c6bb24a14e5db72cd8ae761a04f3972943c3b59aed2b80246ada1965bc0bd0bd52856d7ba97fe8fa80406d9c9d9af367443df036b1549d1ca1836e676cb0f4a962273c3410d29b7805a7b150c23070da72a7e5198df322c6bcc2798e8ba706854ea2f5d5428f50c01edac19d25295fd239ff86eb8edd9fb53e634044e21079c605a9d3232a61c939e7c87c339b0481a04fe2aecbcbb15f19d2389fe3f6a2dc35fb289cc6818598dce505a11f9aceddd1a\nresult = valid\n\n[d = 1cb31a38270da00ed48af41f975773b8e9ef473c5e3393761de003b3a435bd8e2239a427effccfd0df19bc8bd6b41647271a0234a895ed6771fb36b07c1941ec3fbec9c7600b4114ff7287434773142544227505653ba039ab1a7f86a5403e0c89bbaa657ec91a51e212c0592761c8379d41ceb0bf64175fdbdea56833ab3a910a782711243b98a540178031227d169a0113603cad54182534471b4e9f16bf3724f15d45e98127fe348ccbeba5c9fcf9fe3b11ea71c2be3bff4b040565f8179fbcf59f13605cffeab6656dce56b2e9602da5b4b15a7882f564890006f82d0c3011a63485a7b257abccada8cb00f84d66a6cfd3d42084a44db51002319bfb5711]\n[e = 010001]\n[keysize = 2048]\n[n = 00d96b1ed7a5071af8c48b1a162d9a3c336bb0d8b893f54719b21e2bd8581b46de773fb906a99585b777b7aab4130e15d0fd576c7968dc940019a568c6b425f0017843472c698b25253676fb0d6d1dba59ca4fdf90173af5f28b9ea93d9a95c61500fb89131f2d93217aea06910d415b551ed8e8503254c62570e8831e1152f407cbc5ce89e991719fead2cecbe62359bde60adc480efc6b0cea5177cd5663f99aba8c8f9a670b5060c9ea5231a95d655eef14485caf68a688b242e1e6a6543af239cf65c8d4aec626fae444baecf1c70b2d3da3c8b063e09e20aa441eca372b9b13a813dacfd333c491350ed348834375febfb885ae00e16a1828484675f870e1]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100d96b1ed7a5071af8c48b1a162d9a3c336bb0d8b893f54719b21e2bd8581b46de773fb906a99585b777b7aab4130e15d0fd576c7968dc940019a568c6b425f0017843472c698b25253676fb0d6d1dba59ca4fdf90173af5f28b9ea93d9a95c61500fb89131f2d", + "93217aea06910d415b551ed8e8503254c62570e8831e1152f407cbc5ce89e991719fead2cecbe62359bde60adc480efc6b0cea5177cd5663f99aba8c8f9a670b5060c9ea5231a95d655eef14485caf68a688b242e1e6a6543af239cf65c8d4aec626fae444baecf1c70b2d3da3c8b063e09e20aa441eca372b9b13a813dacfd333c491350ed348834375febfb885ae00e16a1828484675f870e10203010001028201001cb31a38270da00ed48af41f975773b8e9ef473c5e3393761de003b3a435bd8e2239a427effccfd0df19bc8bd6b41647271a0234a895ed6771fb36b07c1941ec3fbec9c7600b4114ff7287434773142544227505653ba039ab1a7f86a5403e0c89bbaa657ec91a51e212c0592761c8379d41ceb0bf64175fdbdea56833ab3a910a782711243b98a540178031227d169a0113603cad54182534471b4e9f16bf3724f15d45e98127fe348ccbeba5c9fcf9fe3b11ea71c2be3bff4b040565f8179fbcf59f13605cffeab6656dce56b2e9602da5b4b15a7882f564890006f82d0c3011a63485a7b257abccada8cb00f84d66a6cfd3d42084a44db51002319bfb571102818100fb91d4d6a5bdfbd5f0a82b7e89e98534564ed60638e279c6a2a26e1b635356dd89711e4b8b5af45cd64393b692b661d763b02914d555eb9d24ba5a5fe1adbf059e00eff3a3682c353179c2d6ebe39fc3ce18d492fb34a3ffbd5fdce844633fd275bde50ee36f638827becff7cd0031c335d051337a776554a0f04e614d19b8f502818100dd3f52a51c7266f037c13913ee859cd01e4485db2a4482e340b86e494560ff9a0fbdf48a490f09f9d0b4045593115838e208d3a0dfbfd04b0f61e7110d3991714faf7266724736e8a233d855eb0fa17dac16179707e5e52d64231e35e533c234198323778cddfcdb4050c4a70d7350b3758f7a249700a08f7666037e8790d4bd02818100f3473ead68d0c5c64999479e721dfaabf73efbe83e807d452327b315174393c05f569df66e484201b94ed67cfb7a163a25f44876162ca5d26c9f2e2084ecf1caabd6ba354173cf348da8f34bc608750af4b6bc737b2c97e00bb1b5be83cbfaff3acfadc06d1ede00e076bd4524e1283e603f1917903a002b0c0bf7b04ed02e35028180455bb18be34415f31e776b6e4d2b03c2d68a42b0372aed2152cbbe7f27c9c5b745521654379d08529153adbc29f39905940e92516f7351580685798b85ead32683858bc683f2c14ae276804e46f74a77fc379cc3930d45f019e14c7a36d527ff6f34062d5732cc2eeb95a6607c3df7419b0c148d5ded2b686e0482f9ea83c3bd0281807753317cd3de74bfa41c3261c32cc32dc7aec46a543458b1c8ea846cf4fec1affcde58f3c249be9b502da5b2e92ad5f004c568f0592de3997de2d9b436de400a373cedc1ab2ef9cf96cf30876c069bf2e9a8b8b6cca6fb8eb064c7b6cc087efeb15336f7d82c8f775b98464443a2ebbe471f279a8acddce03bdc1e3d407e37d1]\n\n# tcId = 47\n# edge case for Montgomery reduction (64 bit)\nct = d96b1ed7a5071af8c48b1a162d9a3c336bb0d8b893f54719b21e2bd8581b46de773fb906a99585b777b7aab4130e15d0fd576c7968dc940019a568c6b425f0017843472c698b25253676fb0d6d1dba59ca4fdf90173af5f28b9ea93d9a95c61500fb89131f2d93217aea06910d415b551ed8e8503254c6256fe8831e1152f407cbc5ce89e991719fead2cecbe62359bde60adc480efc6b0cea5177cd5663f99aba8c8f9a670b5060c9ea5231a95d655eef14485caf68a688b242e1e6a6543af239cf65c8d4aec626fae444baecf1c70b2d3da3c8b063e09e20aa441eca372b9b13a813dacfd333c491350ed348834375febfb885ae00e16b1828484675f870e1\nmsg = e0f57a6334f97163fb65a0f924259ca5558e5149bc094b06bbdb2cfe2b5cc4e52eea015afac6a4fd124dd4a0c3c25c9f7f36fc465fda623661c963a1eb6bd48663ede99ec3bed21274\nresult = valid\n\n[d = 3c83123f4cbb23911fbde6c69f9f0b07b51bbbcaf80e0322a71767fa4fce48f2e6e142eab66dd5e4abccc343fdafec10aab8540049e5109d09760080131c8edfb669f9e25b8cd5528f229e74189a4bb3c1d96922640dfd85aadd9f295db5be14d568b4cd288eb08a9e43e53a8a52cd1c25fddaf018abdcb6781c907cb0b394c91a41418e93c60bc9dfdb6674223f7a5d51f90e866aa2c378b8793726cc0f7770ce42b1d534df724d9205fb7679f26f5488aae8e766d6afbcdcfc8aa0ce545adb25692e72960dc9bfdc52fae19953bac45c5b16b8533f0fb03ce24c493fd84c4dbcbb1cc7115a392d5923cb165bbfb0d331cb215d88e8b48ea9803beb7532b901]\n[e = 010001]\n[keysize = 2048]\n[n = 00d29c00cb279876486d2f35c357d23f3a7d2d9c69021b65acc5c227e285bb53a09ce46d08bf1a75fcb4ac97f39d301fc445d6d0e31156bebe6acab4aed4a3b6f836bb057848a475ffc9e81804e1a91a523ee17379db83ec5d1b275f58072a8cefde77b92aa05063f87aa9fd348dae7987270bbb57cb161ff41a0916fe3faf27bdef1068b137b5b114004c95211de3332293491f1b45d57590ac19d82a4033c75e68cf65b62f3630b0a7c05f830f551b569fd37364206f2caaec2bbf5ddbbbcf9cec1f4c160dad459b5a23bb383afa2df7ecce990c401605efb67dc1a87edfb45f8a154093a616e7932959f87dacd46955d59bffa80a4f4be6b1d1e61f372a8ceb]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100d29c00cb279876486d2f35c357d23f3a7d2d9c69021b65acc5c227e285bb53a09ce46d08bf1a75fcb4ac97f39d301fc445d6d0e31156bebe6acab4aed4a3b6f836bb057848a475ffc9e81804e1a91a523ee17379db83ec5d1b275f58072a8cefde77b92aa05063f87aa9fd348dae7987270bbb57cb161ff41a0916fe3faf27bdef1068b137b5b114004c95211de3332293491f1b45d57590ac19d82a4033c75e68cf65b62f3630b0a7c05f830f551b569fd37364206f2caaec2bbf5ddbbbcf9cec1f4c160dad459b5a23bb383afa2df7ecce990c401605efb67dc1a87edfb45f8a154093a616e7932959f87dacd46955d59bffa80a4f4be6b1d1e61f372a8ceb0203010001028201003c83123f4cbb23911fbde6c69f9f0b07b51bbbcaf80e0322a71767fa4fce48f2e6e142eab66dd5e4abccc343fdafec10aab8540049e5109d09760080131c8edfb669f9e25b8cd5528f229e74189a4bb3c1d96922640dfd85aadd9f295db5be14d568b4cd288eb08a9e43e53a8a52cd1c25fddaf018abdcb6781c907cb0b394c91a41418e93c60bc9dfdb6674223f7a5d51f90e866aa2c378b8793726cc0f7770ce42b1d534df724d9205fb7679f26f5488aae8e766d6afbcdcfc8aa0ce545adb25692e72960dc9bfdc52fae19953bac45c5b16b8533f0fb03ce24c493fd84c4dbcbb1cc7115a392d5923cb165bbfb0d331cb215d88e8b48ea9803beb7532b90102818100eecae2177a6832e4c69f7eede3993ccddae3d85fdaff478f8bb497324066d48e18c666339fcbfc2dbc46f020424688a09a2a05e3d940e0d50afc404a5af3ed222720cd34c3bbf70d293d1fd3d7626da7c89941211bdb51418741ed0aa713a05636759e9b450790b8dce14d3a48a7978f361a5633658cf9d1a5c0ce164e512cab02818100e1c93671dc20e10609495fd6b72e4d0eead443039eb34aea428c40123fb8e3797841c559bcc9850254ae5ae7b78967315be4157419a2a31fa355bb4ff6487402bf0fe64a0c3002dc86baf319f02d7630aaa57d810450da7c255b3150cf5fcd95c0979748279d9ee9edd51641a3c5fa01896c5b1c3e3847ebe829b594e627a0c1028180234caa8f7df0d95528677b83ff192ffbde57c02cab5b01611eeddb4bfa693912a866ebc4c5e289acd920436f015d1be561e4c46a223b8d00f156c8ca3517c9fe3a7a86db3df4135946b75a751e69d67bef1378a54450ef7a185c8e85fc9cd21eec7e06ac3d5018fcbaea3358625523fa6fad05012409eb042ad48da28e8141710281803338250cb1461825f96756c16baeaa366f1915d6b562b0e4f191c55b1e6f7fd2e76fec280e469cd0c98afffe3ec981ca55b12918bc5403b342a74925bb95f613456a82f05b516ce4bfff9af45062cfc3fc822c355f58442813855b6b9c8f7c20b39eefe7a36d0346c7f825e36016a23f45007aaeae82aff619259516a11b6e41028180680698b60911ffa4ff64c4e15c4dcf92f8c6b4159f98bfec2e6f75c72142276371394144abba8869458832e424ed32bfaa39746d8897e2effcc3f1dabbc90adec87fdd929a82a522adb77d239ba189d42f95ecfd5f39c5dd5e38872fe5032592bf396c847970dadc602abb627d96ef636040679d24dd69c56e966df42411c00b]\n\n# tcId = 48\n# edge case for Montgomery reduction (1024 bit)\nct = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = a3807f5d34acd39123d2ec83648225b54590b45750e13c6cacf587dac4fe9c9e32a747b6b7f073d94b07311a0e\nresult = valid\n\n[d = 2ff29a4da725374d1dd13493492eeaa468f9fce9d3e6fe0f5fb84143909cb7753526de93234b2cb83cffa6321d5b557832a65c253c2f019723b4d0de97db2f91a7d136fa31a7910495d57d366ec91f29254b30e3cd96705d821bf831b9aab6328bae8f4b15f61cdab097604645ec73a6ed1e19e90204505f93ffaa98569d21eb63abf9448ca9ca735aba55a27c8795a47350b96befec3a243768ddf2aa1b4ab28b7a1e6bad5a0a25c7789225a75081b8e21e2b53612c21fafa41fa7e1e8d52075da58897b195bb356d4e03e5372e6b0d79c8334e642334006b09757b8bc533171d5a46bdd55199779c36e2d9a5acbe58dcefb3bac754bb3eaf07bd3da96c61c1]\n[e = 010001]\n[keysize = 2048]\n[n = 009b298a64d73b644bb4f184c8cebaa01fcc9b9b1fea5e93d3463a28e73284123a1abfae36ef57edd72ab9676c66b629cf42450dbf7c6347047746ff62c22f1e0b854500cd31384f6fadcf996828d96500b6b023619e2378230553e9b9226367ab7b8a06169e1325fb9e8a73c264400855c3b10229b6a661d67e1826bb32fc6ab34e4b6712066c2546bd4e47ac2789867b5e1f29c4e597a19ba715e6f6c011181f758442263355931115f9471fa7654e5fa85b69545482cadea81362b762aa2794f7f132856dea85c65f7d6b581edc89022f4cb1f6f99d5bb4a8cffde294ed5fde28692aa610e83272406cb4697f970ef16f689425e8a5174580184bb223fbb919]\n[priv", + "ateKeyPkcs8 = 308204bf020100300d06092a864886f70d0101010500048204a9308204a502010002820101009b298a64d73b644bb4f184c8cebaa01fcc9b9b1fea5e93d3463a28e73284123a1abfae36ef57edd72ab9676c66b629cf42450dbf7c6347047746ff62c22f1e0b854500cd31384f6fadcf996828d96500b6b023619e2378230553e9b9226367ab7b8a06169e1325fb9e8a73c264400855c3b10229b6a661d67e1826bb32fc6ab34e4b6712066c2546bd4e47ac2789867b5e1f29c4e597a19ba715e6f6c011181f758442263355931115f9471fa7654e5fa85b69545482cadea81362b762aa2794f7f132856dea85c65f7d6b581edc89022f4cb1f6f99d5bb4a8cffde294ed5fde28692aa610e83272406cb4697f970ef16f689425e8a5174580184bb223fbb9190203010001028201002ff29a4da725374d1dd13493492eeaa468f9fce9d3e6fe0f5fb84143909cb7753526de93234b2cb83cffa6321d5b557832a65c253c2f019723b4d0de97db2f91a7d136fa31a7910495d57d366ec91f29254b30e3cd96705d821bf831b9aab6328bae8f4b15f61cdab097604645ec73a6ed1e19e90204505f93ffaa98569d21eb63abf9448ca9ca735aba55a27c8795a47350b96befec3a243768ddf2aa1b4ab28b7a1e6bad5a0a25c7789225a75081b8e21e2b53612c21fafa41fa7e1e8d52075da58897b195bb356d4e03e5372e6b0d79c8334e642334006b09757b8bc533171d5a46bdd55199779c36e2d9a5acbe58dcefb3bac754bb3eaf07bd3da96c61c102818100c8f09a8ebd6bf018e3c8d9e51cfeb755a3e63a6342032bf69b496a511aa2c1a5c8cc9612a36bf618c7eb633170a19094db19885b1dc2c03e79bf0d039f782ca4f45fda4398368f5747aa7115eda85b2032e08d26ae93b56deedc63afa58fc7bc784a27976c1501ac69d840d03e38d510a644c3e51d966af4a8eff33fe073f2c502818100c5adc2bf614abfa80b9b921f320e659f44bffab2fa4b1111c98c344c2630a410ee70dc30899efd17a22946662173485e17f3630d61d5ff1bcde4d586243b877e6737438fb9857c3beabaa442c293aa110caeb8ad6967e5a2ea2a34267b0fbde5eac1abef98f329601599abde5150d39e9ba04a7b9c172f88af07d4828fdac245028181008582e09f011b2bdfcdd1d17d9b235f7b66b87d891ffe6d82a0b14a13f387baf54593320fd647d0afac7e295d5b41ee880980508a821eb98f896338e97456ec0afa5889f4a9b96eca8652a86af28b0f693884dd249b90875731037cb4e363c249e6ff168955062c237bfc752c287ba88e347bb25194b43202b8111ee60d63dd25028181009fd23e93f09b389d2ad55aac721205c361183e1e9a123af8c094e46b74acfad8dd8ecdd7484d0c9f20f272027ca4f22b70fdcc65b3660add75f7bf52b6d492557629ce2bd378c2dac68aa3e77ddd593073aa87915c992da62be0774d6d4d6ae10a8e0eeea62062a1569569c952c1207729a7ccd06780af63b8ef81b7158b6e69028181009ff86c3dc539762069ae9d5825b04d1f45722224b0aa86d76f71a9b095afc9767c4e2d2319cf33e123807b2c160d66dfd567a8532b75edb564a70fd0ced4257d0109611a943fa06efea634736bf464e68f32c55b1b91c82f6031cbd4889ba75fa94de41dc91350e41020d8b5f81b47fb640ff12d697ecdaa2dad3faa8da7c141]\n\n# tcId = 49\n# edge case for Montgomery reduction (1024 bit)\nct = 9a298a64d73b644bb4f184c8cebaa01fcc9b9b1fea5e93d3463a28e73284123a1abfae36ef57edd72ab9676c66b629cf42450dbf7c6347047746ff62c22f1e0b854500cd31384f6fadcf996828d96500b6b023619e2378230553e9b9226367ab7b8a06169e1325fb9e8a73c264400855c3b10229b6a661d67e1826bb32fc6ab44e4b6712066c2546bd4e47ac2789867b5e1f29c4e597a19ba715e6f6c011181f758442263355931115f9471fa7654e5fa85b69545482cadea81362b762aa2794f7f132856dea85c65f7d6b581edc89022f4cb1f6f99d5bb4a8cffde294ed5fde28692aa610e83272406cb4697f970ef16f689425e8a5174580184bb223fbb919\nmsg = f9077aa629cac80d\nresult = valid\n\n[d = 1e6d819ca726e45b00f4cfaaf0d54a4441a8b89907783efe327575715cee66ebb898833542a13b90fcbee41c321b7f7f555591d4a4953d216396f48f44af6bb1c40b12f723f43e8b61e34dff4cd58f95fb363c789756a759b686f7c41671d7a697982515c0f3b1486f128a92d7cc882152d808a8b80c1fa1dc5b26c92bd54ae6b3a7cda30da414cda14b00e98a610114d79543c6047db9f5685422a9a0fb4c77aae8a69860986d76c00283ca44c89aa6aaff8d333e00b67222a5e1a743ee54b572c5d377ee2d3c0eab9b4664aa89688fe22ff32f226ae6b498508142625be50bc6c5c3d77590fdc6bfdfddeec801e9665cb09cffe140c1972f339dfa17c12791]\n[e = 010001]\n[keysize = 2048]\n[n = 009b867320148400d6236020943c389ace0b5c2aae805d68a1084248bb3ee3206d3e1912aeefa352bdffeaeeee5acc3db5e76b992e54220e449dd0cdd9c54653a3d54a4ae02733482605f6a75d4bd8cbb87fb4718a9914f0131feb339cc656740c9a6de79993a7b7684494e5a20c86a5ac1fa71a546dd3fd3e927d0c43ef8481c86f3aabb9212845eb40afe527bcac69212235d7c7c62b94116b5b6fb304d927b5e29b100d1f4f7112f685e88d76b497f52b99ffef9b7901e4ec980f43d7c461ac22a5788fdaf01010f516be9d0b693782a804dcd4eabb28ce390feba18158969ef49ba449517208580700e82caae1b549e1003540795aede7284fcae04d6ebe43]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a202010002820101009b867320148400d6236020943c389ace0b5c2aae805d68a1084248bb3ee3206d3e1912aeefa352bdffeaeeee5acc3db5e76b992e54220e449dd0cdd9c54653a3d54a4ae02733482605f6a75d4bd8cbb87fb4718a9914f0131feb339cc656740c9a6de79993a7b7684494e5a20c86a5ac1fa71a546dd3fd3e927d0c43ef8481c86f3aabb9212845eb40afe527bcac69212235d7c7c62b94116b5b6fb304d927b5e29b100d1f4f7112f685e88d76b497f52b99ffef9b7901e4ec980f43d7c461ac22a5788fdaf01010f516be9d0b693782a804dcd4eabb28ce390feba18158969ef49ba449517208580700e82caae1b549e1003540795aede7284fcae04d6ebe430203010001028201001e6d819ca726e45b00f4cfaaf0d54a4441a8b89907783efe327575715cee66ebb898833542a13b90fcbee41c321b7f7f555591d4a4953d216396f48f44af6bb1c40b12f723f43e8b61e34dff4cd58f95fb363c789756a759b686f7c41671d7a697982515c0f3b1486f128a92d7cc882152d808a8b80c1fa1dc5b26c92bd54ae6b3a7cda30da414cda14b00e98a610114d79543c6047db9f5685422a9a0fb4c77aae8a69860986d76c00283ca44c89aa6aaff8d333e00b67222a5e1a743ee54b572c5d377ee2d3c0eab9b4664aa89688fe22ff32f226ae6b498508142625be50bc6c5c3d77590fdc6bfdfddeec801e9665cb09cffe140c1972f339dfa17c1279102818100da48e1987c5df633fe9f03ed9fa0cb0984d81f5b81316b8eb9362c7e60c8f61d47e81265c7c9f58acc45220ba880ba6b703760795b9d9cf230f4340d34d822c4ec9b5416e7c7196dbaf510c5d348b4e0833be706ca8c0d71eedcb8dd52e257d54218ef27c9f43c697b5d69479271c5db94c600c0a4c829b0423842cf7890d58702818100b6659acaaf96ca82b4db20c970f861a3a40851eef5a37f89cc45116a79b7ad48c106e583bd401ede1b9ce6ad14626fc7fdf24ac06afbd97dac1b3ebd4b14f68312d5aaf756f715a0519cbf5f2abf9d66ca6c73a5aee5e3e7e8d34aaadf646867267afd101750aff1f2546f77ec9e6325804744d24899e5b7d2451c0ea401806502818021a59650a0eb02e664db3209d0cf423cc763610203da105041b05e0f64efd53012436d828ed74ca80670a99cce6e794dd25056e89dfc9f929d8526f8da2a6ec1980f21591e850c2063ef1e94bfcab746dc33c19ac461ee389faf1a37d36cdc491d1526d825432684c3e554331a19bb7beb64d1fcdfe992b37ea1997acd84d5c50281802dee01ff9e1db39b1c5dbdb0dc30bfad8c65c7f40b890359b8c57fb0373c4877749bfef9a0935ff280338f66f026258dcfe5ce6b0bc5a5abdec5f1938b2f992fc273699ce51a4d28d4c44af074fc516f8bf3a95f845e4178a989635909ede7d869b938b66f9892e5b3270df6bdefd8799e06d44ebb977d603fa3c57fee4eae7d0281807162f9069f55ef6a8ac1c31bd7a33263c02ab773a3dc0e726ffa143b3a2335cfb614bc28ad4dfa350ce605ac4be2da199244561ad6adfaf9d1833a7fd960de0b5f4e4f7995892606aa28d1da78c71b9ce67006efcce78c25e3fa711e5ac7ccf5522ce6c133a72d8fe5ea3b696e7e6d2dd794b1ed5fe496d20dfb0e80c5af57a4]\n\n# tcId = 50\n# edge case for Montgomery reduction over Z/nZ (32 bit)\nct = 13648644122d5be6e56d210076b9bc59deaf16fff664777a2d6348b1e0da0efc4a77fe2bfe2aeb592ee56fb3208ea0e04d2026a433bdd6ff11b89839f058832d732dda51bfcd5cced8fa7cc58a91fd435fe0aac17a6084c7619b9209d83136c19161aeaca90bd5c92d5ad0d2a99efb392f29a2dd06f0c19d204fe997800e4e7df66efb9a2bc19820e8dd3cf48f3e74f17c50316ab323055366430c21b97171ac776b14ae49fb124cd9df5ead69d267659abfa21676e62b3a0e7d3fb1c575e5c116513d1b654d09d637706d94bf3b252086771398b5934e23f7de652a9906a143eb56bb54e739e53fbb21d73a55da793c82768b3ad880d1e732b5ebce5817debe\nmsg = 67d3329433843fbf8516d807417f96e34ad7be1f8a8c4d4c1ca614e4255938fa622bdab0733b117506aaf3b39ae5c468894d79fc6aa451d837612df52c73eb18df7e8272de79d8621ec3e0c1e725746fd8f4eacc39a0207f91310c35a12401d1b34cf9a6bfc1c44b8b39ff4725fcbcd95c38fe1461361106e8e11be28e0d3ff81d406963db76c073ce41e4e770f9b59f3c99a8d683c5b415e6237cca91dcc31b8c1a3008\nresult = valid\n\n[d = 0d6caf1085c642a1d755c40f9773175b32cf5bc761c22cd2dc366f928395ba347f8a1862aa639c7232e7dfec37900c5442b4b225cc674246cf27e5f1d6fc012ee51acaaa7a51655eb882baac82b4990b2a80eb47856eab5ff72fa066d4eb83dba8eeef2efa4b8fc511c3f15fa0476ace4b6f4e3f6c554f1b9101062d9d52a7a8343312b1c7e450a2874b9d7b2d1fb7e782e607832b885191673226137453716063a593faa684f6b9ba5321befade244dd3b980f3af037409e335294b8bd647c8a0be1db253a6a1baab55fcfce963b09e27e63ee1f4010a534d1acd8185abf854051c658fa12d1e4abbb4f6193fac4654461e8bc941d5fbfb12d5bedccf4836c1]\n[e = 010001]\n[keysize = 2048]\n[n = 0087a58e0f307fe5cbd1e24b84fe4a504aeb7f6e62e482fbb2ff0662b6289594e369f5bc246bebbede1c06be16df402c60448e991", + "52d6e8ab2eed1b4c2b36c3b7a0d2ba4f446e1e96d901f11e3a2e53acce88ef34ee36e77c6a2200876ef4750173d47c2a925704112233f32446d36d39ff0bfbb1d6369d5e188aacad1f56eca5c6380d40b8f8847a0e3145714618177682b24c29184d6b394c4f822ee3640eab510328914b2f6f4443758381dca079cc4df508f060e53dfb4a89b847fa42df73a6c60cf0b5e819296886e0d00f0823f24381830022bc07a9eb06c78e22c77ec124d95c69b5de527da2376364ea211508dc9f2f43b24ba06dbfb6996b8e488b54d]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a2020100028201010087a58e0f307fe5cbd1e24b84fe4a504aeb7f6e62e482fbb2ff0662b6289594e369f5bc246bebbede1c06be16df402c60448e99152d6e8ab2eed1b4c2b36c3b7a0d2ba4f446e1e96d901f11e3a2e53acce88ef34ee36e77c6a2200876ef4750173d47c2a925704112233f32446d36d39ff0bfbb1d6369d5e188aacad1f56eca5c6380d40b8f8847a0e3145714618177682b24c29184d6b394c4f822ee3640eab510328914b2f6f4443758381dca079cc4df508f060e53dfb4a89b847fa42df73a6c60cf0b5e819296886e0d00f0823f24381830022bc07a9eb06c78e22c77ec124d95c69b5de527da2376364ea211508dc9f2f43b24ba06dbfb6996b8e488b54d0203010001028201000d6caf1085c642a1d755c40f9773175b32cf5bc761c22cd2dc366f928395ba347f8a1862aa639c7232e7dfec37900c5442b4b225cc674246cf27e5f1d6fc012ee51acaaa7a51655eb882baac82b4990b2a80eb47856eab5ff72fa066d4eb83dba8eeef2efa4b8fc511c3f15fa0476ace4b6f4e3f6c554f1b9101062d9d52a7a8343312b1c7e450a2874b9d7b2d1fb7e782e607832b885191673226137453716063a593faa684f6b9ba5321befade244dd3b980f3af037409e335294b8bd647c8a0be1db253a6a1baab55fcfce963b09e27e63ee1f4010a534d1acd8185abf854051c658fa12d1e4abbb4f6193fac4654461e8bc941d5fbfb12d5bedccf4836c102818100bf358cbe3a8fc1381f460a7c6140e99039d11411797e1961dbb0cd53dd921315fd21083a68f0b4bd4f745ae022b8dca801874a6448f7a4b03fc138aac856e658ed5c2b548315067ecd1eb85761432a6baa1176d28e77b90225ce2ba1818099fd265ed8910a56fc822262ff90099dc773f2eb6b522b05a009a5c764422d85f76502818100b59c3c235026d77251bba38db70a483fdfbdd6b63bfe2c67c53899fadf8e03e9b5ebdd33dd93bcb2848cf3060e5ba6756f6068f9de56d2363fffee2e7d32e323a0614bfecbea0194f75b511316213ddab70f0f613b707321e4727764b253d6629d5ec4846a937aaefecc415067c3bcdd09fde86f2fe30fde24a8ae9cfea5abc902818057de5ef84867298f05e825077595e3ff9062418baa3e45a1cfd896f3145e7d80dc5b62b19cea08d4fa7f6907994d44b1bc4a14e8b31382ce2fee36815d217a27a1a47a9112d005b51dc421489e7cc430c7edd0a200308a87af21e8b1069737acbb065915861fe558543f145c77ded6fab4c67502449d082786d4738169f427750281804ac47089c544c86c1b3419e88d13e19cd25b509b23e5c7984d3cb93fec6b8636e09ba32ce82b1b838f488c00d146702866db153cd18982efacb78bf27dbec67e7357bb36c1f2ac060d33fe13d2878af4916ad4d51de874adde6435bd32218be07b93796a5e8a2af702954aca747dc432681bad66a11b64fbfab1ab799ce8cde902818003d54926f770f8c6d47358e502526c309b972e70beb1f20658ec0917c1729e05c06476f25f261695694797a963db5cf00fd720fca0dff673e157b0ae5a754b48799b8ec32515069cb5168a9ddd38dc7f065f0df2920be34fb8f0ff4fea403302e4944df1aa5a2198f3ee7bd3df19c27fa70614ef8cf9ceaf240846676c716813]\n\n# tcId = 51\n# edge case for Montgomery reduction over Z/nZ (32 bit)\nct = 181f37c923f2f1ddc6ad1de954439dabd8915ae9a3afd379ee5ffbebf877ecc26f83df5e945b0832d267fae35bbad4772c9f50be51490ddb7e61083da7b3b007a89e0fb996fca9de05c1d071d29fcfec33e8814ebada7fd8bf8f4c8fb92ad020923342a0232a2e7416d2d6343ff9c5a562faaac8a49aca35a3e2cbf3f6c04efd56f524e9afe4dc96a72c146b452307c9360c0187147ea2fcc2bd7a8fdfe05282944530482e678bcd506ac491b34da46fbb15ad573929c257dd190e1a84a5d26c30e8ae8501597883292f56cc0863a0186731d88ade418c87fb977cbf224b259fbd5ea2521ffb33c845f2b591bcc68294e0882c1742dcb4d5f23eb7d89ab28570\nmsg = 5d72b875a66301022bc2cb5128ec54abf1ca18e0b5b73c3fd566890796eb7172a45abcc4d806d69ae9d85ff45b717f922c\nresult = valid\n\n[d = 00946fb7567dabe46f1b354513d82533161f2e6b6139c7b756b8753fafff9451833b4e13e4879581140ab68f8fe82c6c8922f0c858c375dbef49858594e9c7dcb5526982daae7c321def8fd728b4ecff65888424380503b51788c445903514e1ad0a8b04e297554b6dc68c99c83e085ed027d5bf1bdc89d8c0e280cab881263a0b400121075ef95908352a39cb197a9dc2ebae42cbb8cdc9983bad45fb339c4de8773c561fc89a434b14ae46c44b0dbd758903d5c6cc33cff978edcca3154dc1c0f05526cb6c1cd9f8f5f448d5c324f26aaac05581667f82909f4c3bffeac47a6edec13ef22af955f4d9d6097deccd56ef24bfad55755c7a2930e2b6eed747b539]\n[e = 010001]\n[keysize = 2048]\n[n = 00c89ec880ede20b8666ee0fdd856abc5316d77a5d6e5b1637dafafc3cb0458681d6169215d53f4dd1087345d1597795420b0332115b974b83390dcbb444b33d52581374c58ae567c5fa2e4df2d2ae03134fcd62765f1ce9283a842acee79543a92fa1a49190db4d2618a82efdd036b87764851eea113db934e2afd538e6af050d232910903c1389ce620004556ae5e3830168ef791ff39a0ed0ef09347f3536edd89afb9caf98c31f36c2e6111c534cd5611b99b8db1ec4aabaae878a5406153ac91836285f028990573d0de94a527d2a077f1689c208b31e6f17a8a9448aaf2e7e3c68c96eb685b8e7adc92d0621cc0049c8e3cd5c1d3fc2ef631e714f4523c5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100c89ec880ede20b8666ee0fdd856abc5316d77a5d6e5b1637dafafc3cb0458681d6169215d53f4dd1087345d1597795420b0332115b974b83390dcbb444b33d52581374c58ae567c5fa2e4df2d2ae03134fcd62765f1ce9283a842acee79543a92fa1a49190db4d2618a82efdd036b87764851eea113db934e2afd538e6af050d232910903c1389ce620004556ae5e3830168ef791ff39a0ed0ef09347f3536edd89afb9caf98c31f36c2e6111c534cd5611b99b8db1ec4aabaae878a5406153ac91836285f028990573d0de94a527d2a077f1689c208b31e6f17a8a9448aaf2e7e3c68c96eb685b8e7adc92d0621cc0049c8e3cd5c1d3fc2ef631e714f4523c502030100010282010100946fb7567dabe46f1b354513d82533161f2e6b6139c7b756b8753fafff9451833b4e13e4879581140ab68f8fe82c6c8922f0c858c375dbef49858594e9c7dcb5526982daae7c321def8fd728b4ecff65888424380503b51788c445903514e1ad0a8b04e297554b6dc68c99c83e085ed027d5bf1bdc89d8c0e280cab881263a0b400121075ef95908352a39cb197a9dc2ebae42cbb8cdc9983bad45fb339c4de8773c561fc89a434b14ae46c44b0dbd758903d5c6cc33cff978edcca3154dc1c0f05526cb6c1cd9f8f5f448d5c324f26aaac05581667f82909f4c3bffeac47a6edec13ef22af955f4d9d6097deccd56ef24bfad55755c7a2930e2b6eed747b53902818100f4ba7494ef91c4f85bf016c98142f27f9fa129cdfd9045a3f723ed4394f4aeab1b6388b01bbe87f68f01e78c53cdff2bb60ef7830a7115961f9ac798c4587c5b83d9cb0549852fa27fb0522004aa5eaeadf5efc39eecb9b47f5f4d5bc1ca6efcd2ac9f02499dbd5614251869c9575a6039facbcdab5d42880cfe5def805a563702818100d1dc41ff09641115835f68fbbedd2d7c817b80bacb960808cb5744fdd1f56df4580eed655b51eaa134c566725be6bfa0e98facfa18208d9204f471eb5d0dee477c74aa00675f4f9261a1d6297c158034cf6e4f3743d39101c617af97efac9d8f1eda7bb81ebb802ef6521d7cd44dd45107bbd6463b0a387a463a6ed6241257e3028180455539c82423312187b27a52364bc835fdfc83c2772ed37c037d6b2fb558a8cf931fdccebfdd77d993645fbc32d5ee8fecb14ad0163a397a6193d12e679a06094b4e7da50ed22bcfa6cb464909e9568fb87b2fa545361dda942764dc3507ebefb6a3ef1c8fcc9fa26e6ca0010068be12fafa2199300e68d5f09073fe7167a67b028180576590028349ae27b46f5e8c40df619b115d7aadd02d2a29676d6fa8f8f06a1b3134fe3e90ba5ba9490dd06d5dc28a199c4b1e7184ecc1a886f1ba2397bc3e787ce7250948039462d4d00e1d76b48990f4b5eebd883caa8dff8e4bad4dbe285bbb30a807749d07740757093abc3bb169117c736f0a156691dd7f663b3e08799b0281805022f0cf40913a38e06e7d73916760b21a84289e44b40b66cf615a155f3f42dba2dc36dcaed85f932fd2e48799a9e800468f6693e5da05fc63fadbcf5d1a1a102987c44b7ca35e934456327ec4cafd116371e6318b7560e2b89418d708440e9b3609bbf6b5dc0083fcc7ad301524f14a6ec1d6a20319ca958dc45a7185fe660c]\n\n# tcId = 52\n# edge case for Montgomery reduction over Z/nZ (64 bit)\nct = b3b6ce381b69a43046647e000c1ab2bb9456c7022dd1ea19a2761d85963e56f7337d04529bc975c34880552ca51497ced06bdbd8c54bf4ba83540185273b55c81b86c0a337df5fe8ebb4b43db0ac105a78f8de8240c2b3a0fb7b8f7e7fc8a70a462618387edb8a77195f8a43ba2ef1ad3f1216598cf1b4f02f2bcdd2fbe9885cdeb74754ffba96d978e68045b1754e35ba8c54183106fb2c9f5685adb5f14d239e8c8e19b39c142b0f01e3934ae1b7315b0db5986c7d9b39bbe960faa32337342b3d02ca5148f308fcaa718001e39d0c0bfcedf9e91e2d12919bcd739c431e37ddd20abf4a35644246da2951983f1d6fa32ac259f222501c4c8640b43279bb03\nmsg = 7259cfb45f3651d59b996115be31006e82243cb1317d23418d64a047b984f4f8345ea0b8b193b532c2769b8fa0d4aba9642446eed61b037b87f045f2992738640f3fe81236d5dc36a384d0d408c4b3273a6dad21526815c29955224ea85d3ea7e77e45738dd27411c57f7b33878dd5472cb9f19fee68fd8daf7e40e6e210135d02f1bc5a6660c23418b6499cb1749336c7074df3452a88fdb723f591a70781\nresult = valid\n\n[d = 47748bd2f2cb67a3d76d5224fc9bd486287feac925c6d78e96cab6d1525b59e6d8d6637cda5d4390802349fea73e2a4e5fea8ccead58e910cc2f8101c78566918934e6135280cb7a04dc2902fd055b67", + "06a31a576e618f720890686f8033f8d1b1f4128f06e0c981247646ca6d73d2c68fdf0cda36d0f1741b274c952989e80e2094ccb4e04952c44da59a4f194882d897c5f62c2f29af9737c3b9f1a24d625926f1f55b0e39e918dc35237676e063933bee2c33483a4cba1755c0d176b3a0ba9e5a245506c51c074d5c9819685ed6640b73de173fd892bccd7f772d44d4c050ccb833c74ba421ebfb7f6991d57a8a4d20ea0b846d9453f5e7cc22c335100e61]\n[e = 010001]\n[keysize = 2048]\n[n = 00aab3022dc93a3b87213fe5e4b3fe4b27dae14af117f1ca900681c28fd3eca157df46d43a6eb0f167426b6819fd8b4bd52ba94c6fb307b16851ac071a99839325ca5917201fd71268c6ee28312d5f770dff62a497ff7c97a6ca841b1908730c5080280e3678d2859b89728716d3bbd84eb531f7b0281e1654a93165ff5911d689a238b339ac3737673ed050cbfc08b4f64f76b0596612c9883ed21f1e43bf8600466c7683ae3039044c3162b8919389108b2d51760e366dc257559b9d63bde45a2b541be9f24993b209acff5b3a24217fd337449d69075e1bec7a65ed4faef02fdc33af4df506720177c134cbc486803d5c20c3d9688985707aa5b8007882f731]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100aab3022dc93a3b87213fe5e4b3fe4b27dae14af117f1ca900681c28fd3eca157df46d43a6eb0f167426b6819fd8b4bd52ba94c6fb307b16851ac071a99839325ca5917201fd71268c6ee28312d5f770dff62a497ff7c97a6ca841b1908730c5080280e3678d2859b89728716d3bbd84eb531f7b0281e1654a93165ff5911d689a238b339ac3737673ed050cbfc08b4f64f76b0596612c9883ed21f1e43bf8600466c7683ae3039044c3162b8919389108b2d51760e366dc257559b9d63bde45a2b541be9f24993b209acff5b3a24217fd337449d69075e1bec7a65ed4faef02fdc33af4df506720177c134cbc486803d5c20c3d9688985707aa5b8007882f73102030100010282010047748bd2f2cb67a3d76d5224fc9bd486287feac925c6d78e96cab6d1525b59e6d8d6637cda5d4390802349fea73e2a4e5fea8ccead58e910cc2f8101c78566918934e6135280cb7a04dc2902fd055b6706a31a576e618f720890686f8033f8d1b1f4128f06e0c981247646ca6d73d2c68fdf0cda36d0f1741b274c952989e80e2094ccb4e04952c44da59a4f194882d897c5f62c2f29af9737c3b9f1a24d625926f1f55b0e39e918dc35237676e063933bee2c33483a4cba1755c0d176b3a0ba9e5a245506c51c074d5c9819685ed6640b73de173fd892bccd7f772d44d4c050ccb833c74ba421ebfb7f6991d57a8a4d20ea0b846d9453f5e7cc22c335100e6102818100f099d87fed03d2501dca1b17868c7f8e51ea523e7d2aeca56410b90d73eb1cc359511ba4a315ace0953a46099f6d78ce9389f8fa6381fee687fbd644d5bcff65ab10e0acf8bcc5d37b5c3c810cfc3bd2916ed1d766b583ef787a4314d6237d177e872e9cfb0d23f7671121906586427a79cdc14d551604a224cd63bb2d0226f502818100b59fd9a569e3f497eb16d1fb6b5ad688326a53abd0b83f1e9e8efe2336131cd3a7ab94618eb4ba8282abf0cf78e7f2ec4a4d4a1958a5cad8436f915bb1cebbcd0993e2ea01f2743566822136546ba2fc5a239579e6ec94dd7ce677de0482500ce0e70b366c10e15857d63190f7e7375ceabaf56c3542ed7f39a9df2f713591cd0281804ada421dc27a2ee317f179ae3f00d4ea4d17ce507c966f1b215f8682e5ee5e7b73fd24d17a9f52b2681ac2115a552f816d2b3e977f7fc0f2ad99aed6a97c6c24902ce709493549827add7e4153ede11aa87e46b071d6c4de2aa836d873aa84cf5b60e92293844a0d3d367a2fb73626d67db08293f185b11954c3c5644523674502818100b3596246e1c5e4a68fd33d0f94f76299a38f33889ad7161d5a5dc1bf6b8a7c10d5a5ad249913068a12174ff8d05fdb9651d8f8af06c6d103b5b3da4a3dcef3cc8904ac328031b767740e54559e0f9c26adac2dd2eea1f86eaf03b6a25ab983eaf3bbb36ace53ecf29bea3b8ff7fd2ec26658b039666eecaf9175999af3a3fe9102818100b9091513c6a91a0370ae26d3ebe4cb5410d27d4086213e1030dce0e7e3f435fba1f22b71f02649b425cccd634d35a3d49baac96f9785ae39a21d8cd88a26aa553012e8439947dc3dbb4d0215b9ac24afc9a3baff7a702674013f2000640db63106fd400cd3e230b98999af9e7f6a0d03d5fee0b9c9e2e422eff3968a1cd07ae0]\n\n# tcId = 53\n# edge case for Montgomery reduction over Z/nZ (64 bit)\nct = 97e090014478c58f681840c5170ee90584f734f154ed9b4850df6c20ac5470fa8b44c4f985ffcb52024917c51bd12a6773caa1d1d29c6b5fbd42963dfda4473cc573188ea41b3e254de9f9dd3472e00e4f22b0246fd3452f25fc607f16ac4f07d8cea65722606642b4f3ade0115ebc1cb56f3a5c600efd07e2d7e5b90977aa6cd5fcdda7bcd8123b15f71bd8f07b8440b540067de6677efe57a25eeb5d90dd4c6262e1a3b15a6a93d0e901e205420e2169bc4e1e4f55bb36432c50b92c22798c3c5c703461b99bc06ba22ec5c0fb17db74fa4faaf889f95718ae0c1d1b83e5e6421dd1327682e25c04061cfd30a7b9b4d470d736dd0c11788afa830598d8a06b\nmsg = 224bcda382d96b12ef56ee0fc56b67431b6490aa2f0e8f6528424c32d6611c4c0b9753a167a633e6a74465ca068ff40f802b43726a65f1251e2a075a2cffb1510249dbbda0f1877fc014310bf4c428295d5c1fa3fcca34441d4e84b1834f40079ca09ce1a52915dcf9d5472b9aec1a862d619c310cf9680fe7cbc03bfeb9cde565ca4666625ee2cd6725327c942dbb5b836f0cef24b2e646c91924543a07b6c5925ea8820b909e2040e2d50b7edf9fe5f241\nresult = valid\n\n[d = 57f0bea7b8fcf80aa46ee59c74354b96693d2c728c185f90047e2a6937ca8b7e6952646c407125d2b88a7a0b110c4626735c961f9cea5d600daabf5259d5550110acd4660aff59eb2e89a9443d2416852094f968a536407f1f203e9c63dbef5d5f7cd08ade6ecf5902dabc3c63e6247f8993369225c3064f11a8e2cd80938859112602ccc080995e63a96a537c001433fbda0e03d466b9e4fa3a32345c4b45699861793946ccaf84b0bb43c560f376ec422d5246c94d2867b66c1798877af3cb1cc85eea36cec5c8146a8669bceee23e292e538e907c89fe9e231accd4b728b31b81a4bb8bd3d66ec21d1a30294290d7837b2718967a74920bbf2727e62b3111]\n[e = 010001]\n[keysize = 2048]\n[n = 00a333f78948a0c44e8e6a58c8bafc3e4fface7889db0cccb8bd82deb8b2a616f18d0860d713b6aed9d7b3ee3c6c53f830c8ae66122528d47315075433641c1e60927a425642fe40983cd014bf22fcbc41dfea61f6ae953b1ece7ba7e1fa1daff2e291c4a40ebe1e02b67280a7417338f2a206b3098e927e4c0f13ff2d2887e2fc0ead80050d10f424c6993f32ebd6c7a96c6c820e463db1b1b58980d9f092d708e779f30a786a3b144eaf513e737eee7a699e6443aa729e8e3bae605a5ef0f391401dd33ed1e78dcf0739f3e92601ce26b0363d590ec29a75f5fa876b987deb0753119e733f4da571a62be1a2b8430d9092b15d5be7b60a4676a5dbe95eb763d7]\n[privateKeyPkcs8 = 308204ba020100300d06092a864886f70d0101010500048204a4308204a00201000282010100a333f78948a0c44e8e6a58c8bafc3e4fface7889db0cccb8bd82deb8b2a616f18d0860d713b6aed9d7b3ee3c6c53f830c8ae66122528d47315075433641c1e60927a425642fe40983cd014bf22fcbc41dfea61f6ae953b1ece7ba7e1fa1daff2e291c4a40ebe1e02b67280a7417338f2a206b3098e927e4c0f13ff2d2887e2fc0ead80050d10f424c6993f32ebd6c7a96c6c820e463db1b1b58980d9f092d708e779f30a786a3b144eaf513e737eee7a699e6443aa729e8e3bae605a5ef0f391401dd33ed1e78dcf0739f3e92601ce26b0363d590ec29a75f5fa876b987deb0753119e733f4da571a62be1a2b8430d9092b15d5be7b60a4676a5dbe95eb763d702030100010282010057f0bea7b8fcf80aa46ee59c74354b96693d2c728c185f90047e2a6937ca8b7e6952646c407125d2b88a7a0b110c4626735c961f9cea5d600daabf5259d5550110acd4660aff59eb2e89a9443d2416852094f968a536407f1f203e9c63dbef5d5f7cd08ade6ecf5902dabc3c63e6247f8993369225c3064f11a8e2cd80938859112602ccc080995e63a96a537c001433fbda0e03d466b9e4fa3a32345c4b45699861793946ccaf84b0bb43c560f376ec422d5246c94d2867b66c1798877af3cb1cc85eea36cec5c8146a8669bceee23e292e538e907c89fe9e231accd4b728b31b81a4bb8bd3d66ec21d1a30294290d7837b2718967a74920bbf2727e62b311102818100d839bceca3100480a51f6c2ab91374bd6a5af65ce69c79251fafa3a88a1e7e96eb0f7d122118c102a825dbc5ab00f8d744aec6b8eff0c710b587f4a307e141a86ba374d31716e415eccaf8f2b8513740ee2f0bec91245f66c04beff09051660a142be2b20432b44ef31ff67b749f11abf932957b7aab3d0f0f42118d0869e71b02818100c1395917600ff8d375fd320152d9f0aa458032fdec304defc4c9e5e70c5d0c6c60677dd2a512f147b6b0483f0f35a80b172e12574e3076bc4be938f3d1ece3aaf9a7e92aceb6e1606a1ce5f785463c03695a0bf04f8c612ae69faa7d146924571ed23ee64caada26aeba1da8305a2f945cd06ea0335fc50cd57f499ef2b815f50281800353600483bd8b542f35fc83ebb4d0e6d8ebed3e208de78f1a9da8f6bea9196958d43428433a0e3dec3828d93178225bad42c2ebb5450ecac30004533d9bc956bdd115cae96000c2159249a1f213cdb5c1f4174adc30a307018e297299c5a6bc20f34bd95117368ec04e8d8bf88f39c65b5edbcdba6547db2370f0b42a9cf661027f47b4005bac4a410c37bcbdd1bfed20620f688383b72235c9c43d28139582f21945ad2204093dfe4b9e7fcc4f9a554f06ce934a3b1bc8e046ffe48c3deea8f9d378d1d6b50c00d1a1f5bec39816dcf9684ab01fbe0dc70a47e14d5ef70b9bf8e05b8fa9c7ccab9a48c08e5073197e5e29b047a8c5ca4abfd5036538ecc3258d0281807ebe762a8dcdf901a5c0ded40daf3713108ed386e517e6900f2cba046e91d34df81becebb25339f8bf4954372d0383b1299e899ae088e9bc05ca1a478a5907839f5c44c40af7ab86141af92754c0dcc8c4bed879ecd58d3a3e630ed36b9f830faa22aa3e42e08617e4cef053add9cff465f8b629ac8ca2643c1147d47ce8fb4a]\n\n# tcId = 54\n# edge case for Montgomery reduction over Z/nZ (2048 bit)\nct = 8c97556b822e64cc85ff36d1cd977620da4a72e765d12f742ec57732064cf19e2215b67aadf1d38a5ac23462372be206732038945001fd1991b3e3cbc10c81a073dd54e2da890f6c9d7b8e8154be1b3dc5e2c544ba8ce09687d62b707ef8dcbff88c6c33ccf72edc71d91b9e3ad51562a82c6414efe6cf7ed938bb22381e6846da3917fb25037", + "25977ddd4750120a21a7bf6dca949b397a8e7824f2aee231fb0d16b00ed927f2fede4e7043f1ea18430b22a4767796085ea68d3ff29f5082972746d2f4e2f465534ad87088f03a8fb699f3bc840d47953bbd4cb3a29c00fccdebff359d651bfdb6fbbbebf1ecbcc748a06738ebd3f027b646920963eeb067c33\nmsg = 991d040b49f1338a65d2f996e4f1e651f075f143db4ed0a29ae936ecef91a85d4edebb806e50735522ef88f4bbf5ce47c12eeba0f768216b9dc304544db563e53bf41a26360440997d06ba6e46c2c7c02272e00852a95e5bce8f0223f6dd235c3c7bf8132ab4ce68ef53f82dac02f142abe7db2b5ca67d7ac3857423e5df927f2eceb0c003c087e55dcaa923181ce629e3464592711a86bf0d07c80c58416b74f35ac14b2d4747818eb8cb16b6d3b6de0a21f27d4f1271439aad21024d\nresult = valid\n\n[d = 0089fb4ec55d28b21df04699e3f3bd8eaf3509e3ef2ab301632075cd6e61fa8ca6c14d00cbb19230f77e626b8e20fa994929e8010776db049ff2b639e15c0bddf17db3bd7b60803e6ed4cd7095114da560e7015075d24cfd2e262e6ddcc3bf3a69849b3b2223bb753d8cc0c8423df0587f845da6c07bff3e58e3f4614b3ee4caac10ca4feca4b2508c06aa55cc2431bf105edaabd5e70e7139dd6436ecf03f3a2af724fd2fc777ba63184dfd9be1e24604dc6fe52c405400e8cd47d7a7fccfa410f895f455a6e2d92b783dd5b92f15261208ff86d1cbfcd3428ba0f5b6d510c17730f6a2c53866f0c03ba03ded6a228f1c888d4bf35cca773683fecd28d81bdcc1]\n[e = 010001]\n[keysize = 2048]\n[n = 00ab1ae81a7c70a56c14361b6dc7c28d6821fd776d3432dc812aa8ecf1ebb7e09e2c22eccadfb83ebf0f3f8842f1fc3b942bc178457af5b7fecba5e311faedf61616220503959b56b10cea46e84d97cfa1a97fac412773df8aad7de99910b61f23e376a0343b2952ba9db09a8deadfaf0265a6672a7e8a6944ab2697b08f9cb036517f82a49d76853187d9bb8e821f4b8788cd0ad6864747556bb1ad049ff69fb4dee9f9d4fd7c3083847f8903cdafabfbef26b560ba76561e4342fc68fdd177d86b20eb9efa3bffbae8e006155b396954f6c626fa0a67294f5094f6be5b4038974aa6472df0148fbaa1a74a7c31a40723f63535bd6a06fc89b5a7b34aea6c0c87]\n[privateKeyPkcs8 = 308204bf020100300d06092a864886f70d0101010500048204a9308204a50201000282010100ab1ae81a7c70a56c14361b6dc7c28d6821fd776d3432dc812aa8ecf1ebb7e09e2c22eccadfb83ebf0f3f8842f1fc3b942bc178457af5b7fecba5e311faedf61616220503959b56b10cea46e84d97cfa1a97fac412773df8aad7de99910b61f23e376a0343b2952ba9db09a8deadfaf0265a6672a7e8a6944ab2697b08f9cb036517f82a49d76853187d9bb8e821f4b8788cd0ad6864747556bb1ad049ff69fb4dee9f9d4fd7c3083847f8903cdafabfbef26b560ba76561e4342fc68fdd177d86b20eb9efa3bffbae8e006155b396954f6c626fa0a67294f5094f6be5b4038974aa6472df0148fbaa1a74a7c31a40723f63535bd6a06fc89b5a7b34aea6c0c870203010001028201010089fb4ec55d28b21df04699e3f3bd8eaf3509e3ef2ab301632075cd6e61fa8ca6c14d00cbb19230f77e626b8e20fa994929e8010776db049ff2b639e15c0bddf17db3bd7b60803e6ed4cd7095114da560e7015075d24cfd2e262e6ddcc3bf3a69849b3b2223bb753d8cc0c8423df0587f845da6c07bff3e58e3f4614b3ee4caac10ca4feca4b2508c06aa55cc2431bf105edaabd5e70e7139dd6436ecf03f3a2af724fd2fc777ba63184dfd9be1e24604dc6fe52c405400e8cd47d7a7fccfa410f895f455a6e2d92b783dd5b92f15261208ff86d1cbfcd3428ba0f5b6d510c17730f6a2c53866f0c03ba03ded6a228f1c888d4bf35cca773683fecd28d81bdcc102818100dfb7b5f673f311d1641667f48f3e2a693c067291d64182d4d0e5641d6510332fa985a77b798884577c62165f93219bc55aa3873cdd94171c122a212381bb64e36fb76b22f41c9c16eb8ddc200cabaa00be10f6d756554c74530f6ba60fdc8d3aac0e03bdfdf61afb39ee21b26af14c6a23d4a55a4059e9ae92d96aa5d515f81102818100c3cba6dd3de94d596b91331da9ffa8c1b1d573d95f1e3a57dd5062d27b9aa4da9c1c9ee61ef57e9b3715fd1725d777ddfba79bb55651adc8dbc607f15316dac14de13d14253cc5a40a738761e4b8fcf4feb7ff95672a4023961b5951ec648edec85c1589868b7f0cc02e244186d61a6aa79db87b60f21e59c4db5b50a0f193170281807156af1706b31449d2bd0f39750077980cd2ef6436f9c5806fbc6736052769e731a906aaa56da62e745375264271fa6ac77aa55f0e9aa20294a94754a7bafa67c707537dc7d25eb9b5e88ea6a604aa01ea48c9e55a55a8801e3c67bb1fba0acab8b3f8ed5e263a91204e26402fb1c396da4436e93c44d100a2610788b0258b2102818100a40a701754d3aed68864f2aa9bcf731835625cd975f3e175d41a91713fd5e4e0b382d72e7e29b8955aa5b5923b46374b689898c0693dad9867699725fd335cbc2fffd2289aba3beca04502dc65c1074e4c4ae47bcc1f7df552c23f27802310005f65a735bde009e628ed7fbad6b9731080b687e5f6e763be5a4c5e49434ea2a902818100a741113a20de887068f2dc4a91532d9ed80b6505eab0bcae6a9b06b1048242689783f65bdbc959628cf2411ab6f13a1731fde3c60aceb25859e7e1c693ae4eb914d23211687846ce746daf43cc76d1a4ce24abe00ce99a91402c23725dd4033f29aaa2e039400e0b85a8894d275517731fbde6f82ee8e62e523d64922cbd1727]\n\n# tcId = 55\n# edge case for Montgomery reduction over Z/nZ (2048 bit)\nct = 0e3f66a0127d21df1128701a777a5338d5727bc8041c3b8c25bcaa5bfc83b0261150a5bf41658c08cc019e3ebeeabb729c3bde84ffd2023f63313b3d1ac00ab4637b36e855a0d8e368971b2ba99ad1eeb74f2db48fa9abb125ea9e7568c612c1ad48110d1008141ac34c98e8952347142470171ddb4dcd914a3dc0d0ca4f51a247758da924d5ea041c8789b26974349af3a9bfb83ecd9107414a5f17c3abe5250e6891ab465ffea8b0e2fc2b43a9c1231d8a8631ea6f4a2817edbc5e918258c7b3155396b7a1cbd19a09c9b2397945eb4b767238a8833e63e79b84e143be8a4dcedeaa51cb936c08f364b74817dd1cc6a98a2cb3223f2532f17530570e6e693e\nmsg = 5b1d0e30c1973a87ed29cf3b7b4b48ae3d2e054698a86ebfbb43c5041ce7fd5146018abcb2bda195928b4820b6ce60df34c97c650c75b4dc274b35c7dd33f97839189fddd46c960f996423fb1c30a1c94c01c8ce575903d4c1af7b805443289d653b9cfcbc1482e84fe8c19cda33f9324b1aaf3e232699017d67d281450ed445265ff1aaa52e2a74b43097e590dbab20eca6b8bbd6df182b2e963e374f32f76b700661598ff707512e0f99849c73a49f7c068122952185855f254d3473246818894740b06c0f74b0711fffa7caacd403f886b4982f71a1d940d0b3118cdcb4135bec8d46b266cd2719873751a82b46f5a924\nresult = valid\n\n[d = 29daf49c3ef3653765a42b7614903e73f0aa28b9db403bbe91f8e788d2bdc2c8a819ad72f0577c51926b923b0422f22d8989ba4c75eaa03927da30a800dae7c4deb3715caf33b869cbf4cac79b01c25a5f1d898e7321505cabdd7562fe035f032d705acf52d93fff7f2b574777b7ca4e9f65fd4f4c7c47983d21000130d94884f7393f042c7a85169b441ad7a18ad15367d7333a87f2d8653bf160850d32e4609160d57e89b11356abe7d51256651326906e11bb18354c22a88dcc7f8f10398d6ecd4596c731c307c6184c61f64ab5a3b49b7a1c4b24cb273393187d4aed24cf0fec79484f228eda3c56ca016229cc8777871c7184ce474df84d527031e3bb71]\n[e = 010001]\n[keysize = 2048]\n[n = 00a1c69ad4fe9b071ba4612057ee3835b0dfa96b60627848ef5b9b2b34c19816cddbadf3821c4cc487bdc4862b373a40a055dda27c87de08264a1732b3a0a00c132e72241db89f8c7e67bb415986feeef8b6fc3499d3e91a9a2ee562de2bf0bc854a8423fd10dba078c5482500874417875d0326ab8a0c8094e050282212e1291b41b241cf5c065d2f4995897d6270f02d6d0ff5b7f067b71cb76e72f0115c7fca37263a89ab155022c8a4ce19dd2e25ea9ac51d8464fd0f587c95f06fa1f9c01b0a20890dbfea12a60fc0aba9c4ebe81c17f49390021b1cc47f26b8b0352684cf8a544d9b2ae1962b7f3cb11d722710b0bfa550e57b7ca04e1b7ff16a035cdfb1]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a1c69ad4fe9b071ba4612057ee3835b0dfa96b60627848ef5b9b2b34c19816cddbadf3821c4cc487bdc4862b373a40a055dda27c87de08264a1732b3a0a00c132e72241db89f8c7e67bb415986feeef8b6fc3499d3e91a9a2ee562de2bf0bc854a8423fd10dba078c5482500874417875d0326ab8a0c8094e050282212e1291b41b241cf5c065d2f4995897d6270f02d6d0ff5b7f067b71cb76e72f0115c7fca37263a89ab155022c8a4ce19dd2e25ea9ac51d8464fd0f587c95f06fa1f9c01b0a20890dbfea12a60fc0aba9c4ebe81c17f49390021b1cc47f26b8b0352684cf8a544d9b2ae1962b7f3cb11d722710b0bfa550e57b7ca04e1b7ff16a035cdfb102030100010282010029daf49c3ef3653765a42b7614903e73f0aa28b9db403bbe91f8e788d2bdc2c8a819ad72f0577c51926b923b0422f22d8989ba4c75eaa03927da30a800dae7c4deb3715caf33b869cbf4cac79b01c25a5f1d898e7321505cabdd7562fe035f032d705acf52d93fff7f2b574777b7ca4e9f65fd4f4c7c47983d21000130d94884f7393f042c7a85169b441ad7a18ad15367d7333a87f2d8653bf160850d32e4609160d57e89b11356abe7d51256651326906e11bb18354c22a88dcc7f8f10398d6ecd4596c731c307c6184c61f64ab5a3b49b7a1c4b24cb273393187d4aed24cf0fec79484f228eda3c56ca016229cc8777871c7184ce474df84d527031e3bb7102818100dad1d8786696213386dbd73156d3391d5c0c5f70fb29a97801cad51c3c0cf893359391d1ebfb066f778e5f76da0b3d9bd810cc2d02b4d353b598443e1039c7a91e8f1206fd2142e6409cc8d0e8c70e0e872ac173bf5c0997363ed47a015a45ecc971fe22b5f65a2860dc87ffc723edb753688d424a2614b4721a2a91720aac2f02818100bd437af3dd1ecd829c181dfab12c41a0bf43cc1ecf5b282773c5da0050df6ae63c6efc1151ccbac1e1ede5082d1e0d83ab8122286e2c6383f39d07ba0f9bf7c173591d1a416ade762cbefea74c66dc5f2e5cc5dab786ff2ff613029535077e6a23eeea0035f2927b210473651bd60b38a6e629c00a826350b6ef9c01632eda1f02818100a1acc64a3f51d17a26bc2bc532a7a1dd857346d94d59bcf3042fff417b45022c923b54544c0d0ef630d9aac33fdb6a4bc95aafe0d9cd0d0f1e6f408cb2a45e5720530938ccb254a1973fc0484a953857979b099021e538d8d", + "6a5998c038fd5765c68b322a65b3cc5f4bb3c68c9944c4155893c45ac4f72a0d86568ea49de84d50281802aee6dab77930f26fb65751772ad094dff54cfae8576b60b0cf5ea577c00d1ecdbf488f51ccb05ea08e7bfb63515c61702064ecb41028ca857d05cfa55a4197526472694d815f7d4729df881d690d698389a0ebf68361518ba06e1e51a9c528e9d0c0ac475784ac5e75d6d179852db44c4871d1d54c4f2e65238d3f87499221d02818023b6f130671feb076e3aa0a0df22e3dce408eed61bdd2cef363a6ae39936817734b6d5612cfff2511f3fd57b58ad0c1b4be056588c77cb2a591a8d4ee51e6fea618f6e31a3f048cba05193e37fc8f7ae51814fa4fb968871ad332847a3bf3874ddbe77a7461174d9154da0940ae4886f7b6eba0972e3229968ea78b1b7c9b458]\n\n# tcId = 56\n# edge case for montgomery reduction with special primes\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = 63f6d1ccf5c03442d3b1b29b4e83e02242c26183fcbede9b6d7881a819d6cb48448da49ecc0ed0172713a17f24154f47461928aed551cb10cf0f7ffd47dd728edbf6c2060a340d95e980d466302439cac9aaaff9d54622ca0a4429aa891ed3cd210999ba4f442af8ecf63ba9c1cbc4b9cc4940f6854e75f789858bd429b1a398093b4dfa0018a98bba620e37f840c6a37edce04fdb739b2b7d0c9fe5a8eaaecf14d9e6e27f131742c1129769901f512bbe6b578ccc8a6f25a7cfc7fbcf743c318f2346b1cb4709\nresult = valid\n\n[d = 00c66dbc49131572abb9ad8237026009eb164a40632e1c31ea7de4c0c00018a25143b64530bb65db40ba40ded24ff9709d3b29f231a105e14c9c2f8dcdeb5ce52c9514435f3e39cd89eeb3e9417f406dd8c79ac9a220deea36a8b1378f178746081ce687795b734b2ea3b795b7e524082181a751a6e4f8c987b776dc5b6350580d0549995201782675ce0e978709f579ce517d509b6d3e85c22231cb222bf932dd34a48fb9485262b14a1eba7fe4e11ea66d43077f482eb5cacd6a13c08f406e75501b2b6e691d61494fb56f5f70a4aa9f91070ae919d3c43807ca5bc8c6c526520858ff3cbaa25f11c7cc3a0f437dba2b3dbbcdec1ec1f8a5d5121d435e84c681]\n[e = 010001]\n[keysize = 2048]\n[n = 00cba072a38b85c7802967a8ebc88ce47f80f7a82fe75e8142ecea9ae87f585b7f7ebb3fe030d5894f6406e6223e73a3dce688db3339c8ea8e6fc63069ab51be6d337906e8a0f44734cd1965d689b5556f33bd7ee19c0405587cd73e0d97de4128f67866bef20974620f5a8086ec11c13b96faea171d98fdb9a57f7c7729f5c8a594635ec72013c33374a47176bc67ce9f6ec313a6b667e6fc22be8bd116b831455112e39e7c4e5848d9a5a60f42783150a191503b6be381cc2c2aee466aa270fc00b0512a83339c442fd833f8a2d1876be5b63248f5e586de3f8bcc07b01c0f2ea658a466c7c7bbf475ce0a441bb69f63e99eaf776a17049b6a49a543c085d001]\n[privateKeyPkcs8 = 308204bf020100300d06092a864886f70d0101010500048204a9308204a50201000282010100cba072a38b85c7802967a8ebc88ce47f80f7a82fe75e8142ecea9ae87f585b7f7ebb3fe030d5894f6406e6223e73a3dce688db3339c8ea8e6fc63069ab51be6d337906e8a0f44734cd1965d689b5556f33bd7ee19c0405587cd73e0d97de4128f67866bef20974620f5a8086ec11c13b96faea171d98fdb9a57f7c7729f5c8a594635ec72013c33374a47176bc67ce9f6ec313a6b667e6fc22be8bd116b831455112e39e7c4e5848d9a5a60f42783150a191503b6be381cc2c2aee466aa270fc00b0512a83339c442fd833f8a2d1876be5b63248f5e586de3f8bcc07b01c0f2ea658a466c7c7bbf475ce0a441bb69f63e99eaf776a17049b6a49a543c085d00102030100010282010100c66dbc49131572abb9ad8237026009eb164a40632e1c31ea7de4c0c00018a25143b64530bb65db40ba40ded24ff9709d3b29f231a105e14c9c2f8dcdeb5ce52c9514435f3e39cd89eeb3e9417f406dd8c79ac9a220deea36a8b1378f178746081ce687795b734b2ea3b795b7e524082181a751a6e4f8c987b776dc5b6350580d0549995201782675ce0e978709f579ce517d509b6d3e85c22231cb222bf932dd34a48fb9485262b14a1eba7fe4e11ea66d43077f482eb5cacd6a13c08f406e75501b2b6e691d61494fb56f5f70a4aa9f91070ae919d3c43807ca5bc8c6c526520858ff3cbaa25f11c7cc3a0f437dba2b3dbbcdec1ec1f8a5d5121d435e84c68102818100f0bd0f39bbd0d5492d57c6c43d32e9ad5a036b787a27350e8f1cdb4eb568b52cf16a4ec3c09a010021fd04b9721c59db11bc6dcd3a81012003d21501ac9781d6b472f8cc34b96c49525e0538b4f7bad64c62fd5ebe9fd336b828183f1648dde68786e9256b8c82262b94f2f47ff31f66e826bc4ba7847067c2fc44a6228beda502818100d8891a2d2d104310741cf585903fafaa4ca0fdccb15360f40dfce6e9bd44b6ea22250d70758e85414a569d0b29686e2635a66e45360aeec1a1627f1d4957bf1ddd1f1f70eb7ff3374f429483b47f18ebf19d3c7b7f67f558c916675a46b6706525bbdcd6fb94e1aa796f706a1311b939df18677b7ea8eecb899346cf989ec22d028181009ddd5c7e9f8af2526a49852e6a73588934ddc93bd7de9e0c4e0cbe437ef28adc4df348735579a7ee4e5b7d1d9e96b8d5cf6ba11553a804f4d98c89f9ef13eb30c0642482c49053524191261b69908a14bd42aca3d49d3a0447ff02e75bd5acaddf71b8b1b13512a3b53097a17dc610718b0adbaf40cab86b5291daf296f4eb81028181008d5b1b52888b882c5290a11b3b2ac8239578b7968be05177a1360b0c65b958eb89b4c48c38c1fc6dbdf8c2f689669a19a986679019129400a5b926205943c608d9d43a733dd9be4dca193dd8a8d91bccd363011be1f55cae443fb2e2b52cde3cb9a0652f96f6ff468995dd3df20aecef419badda69ba208190e32b23d48f37550281800502a12de08187e6c1c2c8c70d474b91df724f42fc310d78f8ea5040424457fc64fbbf26ddd5f4a172b956c7604e8022c65741dcd141b2fd0c529f1eae94a9544bb16fdf544426d6217ebc13ac86d8a6dae7af7d64d6d3332653ae6fd5448f0dae43210000e2a7a80bebd420d8c8609d57759fba7a8877db4539e1abe0967483]\n\n# tcId = 57\n# edge case for montgomery reduction with special primes\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = ca095311d2c3cba494ca686bf451a3ee1ff4ecff1fe7738001c9d8f494e2375efbf0b03e832bcbd1d8d1a319d262c844fc1aedaaae7c06bc654e4af0412265aa0dd1cf46652460d43b14436ba8cc7c72870fcb92554e1c2c468fdcc2e31769437b57d47a348c6af331ac9e0132d41607ee95300330537fbd74e25e661ddc9989d201155f388a93cf8ffa7d44b33a4c1baf7a1b056ca80eef22a14d1f1c4460d6136ae6601fb19afed2b78f333047e8bdaace0a6c61b056c23a360829e632d1e847f9f57aac7322e27d6fd1a77c941743605405c037ebcc8ad0b68b034f954af5fb47943f5580abc20d59b6d419\nresult = valid\n\n[d = 008740774b9bb24693c567f6d0d7a307bc3f46c19a6e21389c1d2dc0559d3beac99559669771eb26a3ef602d8b4bc8b3fc77373fe04f7d55479e6b9d7e693ffe0268d2e7c014d739b3b31cc7c3426d583a646c838658eff7db25167d0b96128c678210f4efcbf5404bf63bbc62c26fd91e69cb84feeb5e0af28de83c3e55db4d764c988fa11e96e9031c080568c8856e8bf82dfce9e452e8aa2cba07ec08210f1d69fb70a126ed13f2797d91425ab46c0dc917c629e36f91b44789b9080086c1119c5e281face72aa09bb4bcb33e9da4223ce935386529b1c7b7e628fc007fb1f1850e390968ad1fa9a49fe4f81c4fd09babae98bbbab06ad00910081a493f9f01]\n[e = 010001]\n[keysize = 2048]\n[n = 00970c802f8bc69e2e7e9f5c38834600446ef0d5f037311c6b143ed35258f9523bdc9b8bd753b68e842e7399769d9d428b8ce68f0ab97427205896b66b4d26b45c99b3dc5d0268ce20e33270121f50ebe23bd24c8e378b31fc30fd079f1918fc54d9e57229db62eb454ca45eba505bc4166f80d24784e58b14bac6b3435c4fc6eae8a14d67a06eda445ec46e9826d3f75da0a63f4a295c8478cccc9d19177d74f57a5ee66d9a1004bddf546eea046a9c9eb78e3b1bae5fe7f8240703bca97d7224c7f2f9ad549d87f5a9b64957ab85e92ca22cd6543f36595412bf535f258b2233dae92da91cffa8a0a2215bfbbef75d078cc516e388db733da5cd656f93b0eb59]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100970c802f8bc69e2e7e9f5c38834600446ef0d5f037311c6b143ed35258f9523bdc9b8bd753b68e842e7399769d9d428b8ce68f0ab97427205896b66b4d26b45c99b3dc5d0268ce20e33270121f50ebe23bd24c8e378b31fc30fd079f1918fc54d9e57229db62eb454ca45eba505bc4166f80d24784e58b14bac6b3435c4fc6eae8a14d67a06eda445ec46e9826d3f75da0a63f4a295c8478cccc9d19177d74f57a5ee66d9a1004bddf546eea046a9c9eb78e3b1bae5fe7f8240703bca97d7224c7f2f9ad549d87f5a9b64957ab85e92ca22cd6543f36595412bf535f258b2233dae92da91cffa8a0a2215bfbbef75d078cc516e388db733da5cd656f93b0eb59020301000102820101008740774b9bb24693c567f6d0d7a307bc3f46c19a6e21389c1d2dc0559d3beac99559669771eb26a3ef602d8b4bc8b3fc77373fe04f7d55479e6b9d7e693ffe0268d2e7c014d739b3b31cc7c3426d583a646c838658eff7db25167d0b96128c678210f4efcbf5404bf63bbc62c26fd91e69cb84feeb5e0af28de83c3e55db4d764c988fa", + "11e96e9031c080568c8856e8bf82dfce9e452e8aa2cba07ec08210f1d69fb70a126ed13f2797d91425ab46c0dc917c629e36f91b44789b9080086c1119c5e281face72aa09bb4bcb33e9da4223ce935386529b1c7b7e628fc007fb1f1850e390968ad1fa9a49fe4f81c4fd09babae98bbbab06ad00910081a493f9f0102818100c6796d5db4801718b6407a1685751c5d7261b8ea32155320a956c130f17116f81fd01284062a5f1b114901fead4a38d12130356805ac921fc538307379fc1399638a6b9f06a88d1cb6b88580bd42a411d96b6e785cda570b4dec2a651a9841dd94f5121a4fe7c7fc028f554d0ced4c87f7a1eeb3b723a2e82f41841cff4e926102818100c2d427a9927c45b982cd3f08eb077201126577138d7e9e0bf80b6f55a884ebee9cd9945f041c52618efe8eb2a7ba4440cd7acbb236607ceb89ab2faca8d10f377512e9ffbf3b772fa9f8b745820c8d9ceb5e8e98378e9f3ab391506e051f3253e9c6d583138258659c7abee19baa2ee169b8aa01b5ffa15289538b0a8cd66bf90281803fea40b70976aa7971cfa7c172eef8d87b0a4f5354179bf28bb5fd76f679d5ccc7e9e8dc8d63bdc6e8b51b2859c3ea3226bef0a3f417d3e2d94f34032c086a835e13e87e88d564c4176faac67fac634bc039a194af4a3cf7cdfb3cd7dc4da6006684d97491c0f19d0d71fd2558015f40f61536dab72289c6bdd91a6380305c610281805d440c7c9bb84bf4838e5787a0635f0aee508e5158e1ed2cd3a03dbae6c242e36648ae43520770d46d0ca529172c0ef26aab4709d80816a4f6b17150193c83294c2d32c1903d1a5041f0e3632ddf6e87591159f7ba58d716d5d1518c697d46ad6ef31550fb2ce1be3acb73c732aaa4689a20a199d2133e99f14d81f919f4a7990281803dcc0287c0343f8fcb35c8a2f88b605e650be24d42d8d65a95241a51838eb63b4e76ce15feb538bcd2db0e9cc4f85fd9ece0414b9162024ec2d06e8472f67e97745fc69492ca049cbd4166822d810244ca28b2451ab29d2cf24836368770ebb7bd591125cb48b5307c590ff270783378b17402af4bdd356840aa6c51d84c3362]\n\n# tcId = 58\n# edge case for montgomery reduction with special primes\nct = 970c802f8bc69e2e7e9f5c38834600446ef0d5f037311c6b143ed35258f9523bdc9b8bd753b68e842e7399769d9d428b8ce68f0ab97427205896b66b4d26b45c99b3dc5d0268ce20e33270121f50ebe23bd24c8e378b31fc30fd079f1918fc54d9e57229db62eb454ca45eba505bc4166f80d24784e58b14bac6b3435c4fc6ea68a14d67a06eda445ec46e9826d3f75da0a63f4a295c8478cccc9d19177d74f57a5ee66d9a1004bddf546eea046a9c9eb78e3b1bae5fe7f8240703bca97d7224c7f2f9ad549d87f5a9b64957ab85e92ca22cd6543f36595412bf535f258b2233dae92da91cffa8a0a2215bfbbef75d078cc516e388db733da5cd656f93b0eb58\nmsg = 575b819ff5b00428d51e8ce5df4a02d588ce49f9540cb6f27a53f0f27b2741d2ba97d9192fb67c90f564a48965\nresult = valid\n\n[d = 009c6d3201df14218c0c4475d2422c84dde9291d4b952efeb59036522d51959338621ffc9692f53203e839ebfacc0bff499b83d40669134ded0a5f317b1897c74c05c615fdc8b2373049a6e64770b576b2d89fc3514f0e368581593acd8b91a976a8526cfe8ffd8f4b3c7c10278e46ca46b5942fb3442f63882c0e65a57364e8694c29ff9381d733988b6b20f43fc652b00bb3c49ab0444db21490bed548e51b47edd773a8559ad59bc0b0eacecc055208b1f5814ef39c2e259c172b8f446a2fcdb8f2beea080c4f2dec942f813c74c443d8c7636378120f765e9085bc27750b94de249a19da1e210c0fc79b711491a1f255bf0f0ea753f01f5586591b40fe1b21]\n[e = 010001]\n[keysize = 2048]\n[n = 00b5b356e62591aa12b607c9541e081020a8e48752f9e1bc50989494ad5c5a22079a00b607d8f5ba364475515ca5c9c204b8f294c0a42fa3265f9a3337f3331cc52db473dd4644f9ccbdbf3742f3dde513b3d6df9cea6e94e2e2295147ce03685d42515c2e1a869529d41a51c06cd0c608932adc5b5ce790b4e8f9c72a34d0e5b216c01253c22ebe6eb71917812ec899df666b94e0a2290e75197063ea55e3390e2a7ddcf9c47e2543030f69195a3379d4739090dfcd07295bfc9a8e2891ee9ef286623cb9963c056d934749fd2bcd73e47b816595d54bc2635fea68098f7807687996c1826023459bb4211ff1e98ac140823a36b70345b6c4c6bfdf7aadc5d34f]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100b5b356e62591aa12b607c9541e081020a8e48752f9e1bc50989494ad5c5a22079a00b607d8f5ba364475515ca5c9c204b8f294c0a42fa3265f9a3337f3331cc52db473dd4644f9ccbdbf3742f3dde513b3d6df9cea6e94e2e2295147ce03685d42515c2e1a869529d41a51c06cd0c608932adc5b5ce790b4e8f9c72a34d0e5b216c01253c22ebe6eb71917812ec899df666b94e0a2290e75197063ea55e3390e2a7ddcf9c47e2543030f69195a3379d4739090dfcd07295bfc9a8e2891ee9ef286623cb9963c056d934749fd2bcd73e47b816595d54bc2635fea68098f7807687996c1826023459bb4211ff1e98ac140823a36b70345b6c4c6bfdf7aadc5d34f020301000102820101009c6d3201df14218c0c4475d2422c84dde9291d4b952efeb59036522d51959338621ffc9692f53203e839ebfacc0bff499b83d40669134ded0a5f317b1897c74c05c615fdc8b2373049a6e64770b576b2d89fc3514f0e368581593acd8b91a976a8526cfe8ffd8f4b3c7c10278e46ca46b5942fb3442f63882c0e65a57364e8694c29ff9381d733988b6b20f43fc652b00bb3c49ab0444db21490bed548e51b47edd773a8559ad59bc0b0eacecc055208b1f5814ef39c2e259c172b8f446a2fcdb8f2beea080c4f2dec942f813c74c443d8c7636378120f765e9085bc27750b94de249a19da1e210c0fc79b711491a1f255bf0f0ea753f01f5586591b40fe1b2102818100f445d8afa1f24d7e26811bff63736f8dff4cd25d52432ebe8d58b5e31bfe4fb41d6125a03939a97f1a5dc12215588aad9b3c7b8eba85697b348a7a6912ef0afb6566362bbdde146fa0404a039f668bc5d897d0991d12b5942527aabced875b6aadb65d96fc2550181359a70fadecd40745833dce8a571b092f6b7bcc853621b102818100be6c781cf766ccb1ca7c9ee8600b928c2d6dd362993f8ddbadf111e876e0e52c381ea344c1e310f7bf17c1d221bd896258f267160e4707565426214db5980594878eb7bb9983b57f6419f15cdb5d6a7959cc09eb46adb988bdffa22898a9104fd7675a0a29648512f4206e0a7bbe7e412a4e17d4cad3f56837091cc706eb84ff028180252edca51f89bab2113a6600a22ad8384d3c6c69383471d11fc2f92cf0fded3405a4dc0d5fa89f5c71af03cf2460adfb6f3dedb0f4438aa2ee8485cda8cc2a67ca2f9cdf5baf8a7cd36ff5d447575cbf6910f2f7dbad1566cfa112246023d28e9292c7fc4bb58253a7de65c7c539dfac9bb036a051fea066ed88f6f752efc281028180797ad7519b5f207cd7b192eaa9c318358711c645e38010eeb153d659d7e4f72eb38a901be0190c8d1082866a988dc2e453dc287980983d8d0c57daed2949175e3ef0843410e65e562bb5052e78df6a7a8a17c9c827a9d26ff2cdef5438b7ba294540b0c744cad4be57b18ca1f179802ff05e2b83dbf5465cbaa77c8d57d3ce5f0281810088e5157aaa70e37b656f77c266986cfc2dbdfb3f72f2b9f6ae1c2814c9c8085c5390735a1b4076423af07a7c0462051ffd0c47051e13b42c69f67910d295f2faee7ecfdaf01ead40a8cce361ae88820101a3717e70e424a6e4bea9ecda1b7d2fc58977e84c40f7afc806016a3ec806a3077e7ae4f31ef34d09d3f99143e894b2]\n\n# tcId = 59\n# edge case for montgomery reduction with special primes\nct = b5b356e62591aa12b607c9541e081020a8e48752f9e1bc50989494ad5c5a22079a00b607d8f5ba364475515ca5c9c204b8f294c0a42fa3265f9a3337f3331cc52db473dd4644f9ccbdbf3742f3dde513b3d6df9cea6e94e2e2295147ce03685d42515c2e1a869529d41a51c06cd0c608932adc5b5ce790b4e8f9c72a34d0e5b215c01253c22ebe6eb71917812ec899df666b94e0a2290e75197063ea55e3390e2a7ddcf9c47e2543030f69195a3379d4739090dfcd07295bfc9a8e2891ee9ef286623cb9963c056d934749fd2bcd73e47b816595d54bc2635fea68098f7807687996c1826023459bb4211ff1e98ac140823a36b70345b6c4c6bfdf7aadc5d350\nmsg = 1f7926bf036e2dc744b3591cdc9575b7f1e6cab9a3766de85b56b9e975f13046b41ca9df17fbf93ef4f260f8bd263182dd4a4fd87edd9716d63b99e9ad30212e9f506c345838e34b3d784d1785bebd59c52e24f7748361c670c29999f4766f84702f3997550989ec36ced0eca73bfe167c8b1913abc69f537d7171dc84b268198681228c71e6a6b9d402de2302e4704392a4e946ac0c6a6e29184659ee\nresult = valid\n\n[d = 4ca464a8d7a4a4fb039f6e6f6014056ac573d105961fd212e2f4533a4d34bbe22cdc632daa904b059d5fca4cd262f289d1a4117273acfe4d19c167c8c46a1c683884c44e7ace3786cb33ebceed7684f74640d0dcc3d237f4fe4931761fa4acb2c7583a0dd5f8cd0bf0e0e620c58ca07e393118d23bdba383eeaa0acfa4795f7d9ea26c83305a6fc8a808058414cc0cea5f9cc97fd394cab0756c55823b86adfde6c46a6dfbf52da24a3323bd86cf35916450d9b4ba03be365f6ba3ff91fb6a4c235a229d49a572d23afa2e3268b164a94810741f40dcaf3a628563368f567eb624018d4a110c981ab6d2da5fd7f3c30b0cbe22120ac63c0a73e09affae95ef91]\n[e = 010001]\n[keysize = 2048]\n[n = 00e1553db85d0a89d51fbc963fb8be566b0b8c72e8174e7f9f969c0d892fd259ae5aa44c0cf97702372724c7edadbee4cd581890f67824dd65fe7d67ac12e9db1da108eed274352d4597bab6e3624421769d2d634d203f878abf1a7de27f650e3ef551cbffc5469b4d23e608a1ed57a36c0dba443ba2957f58a0aad0530c20b515295b1f4e3ae9df2ccc69d025bc23283039d1e42f015b24ae919aab8e812f03a6f3cd3013cbf00d35edb489ccec7e68105cd6ffb2b85623c1238a6ceb04b73c7e2df0402376d71ac3e03278eb2a7a5895f81b7f3dec62e9fd95efe22ec152d0c673d7004d244e87bdc787ba632fee75d805e29229e111fc083b0484b0480ba63f]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100e1553db85d0a89d51fbc963fb8be566b0b8c72e8174e7f9f969c0d892fd259ae5aa44c0cf97702372724c7edadbee4cd581890f67824dd65fe7d67ac12e9db1da108eed274352d4597bab6e3624421769d2d634d203f878abf1a7de27f650e3ef551cbffc5469b4d23e608a1ed57a36c0dba443ba2957f58a0aad0530c20b515295b1f4e3ae9df2ccc69d025bc23283039d1e42f015b24ae919", + "aab8e812f03a6f3cd3013cbf00d35edb489ccec7e68105cd6ffb2b85623c1238a6ceb04b73c7e2df0402376d71ac3e03278eb2a7a5895f81b7f3dec62e9fd95efe22ec152d0c673d7004d244e87bdc787ba632fee75d805e29229e111fc083b0484b0480ba63f0203010001028201004ca464a8d7a4a4fb039f6e6f6014056ac573d105961fd212e2f4533a4d34bbe22cdc632daa904b059d5fca4cd262f289d1a4117273acfe4d19c167c8c46a1c683884c44e7ace3786cb33ebceed7684f74640d0dcc3d237f4fe4931761fa4acb2c7583a0dd5f8cd0bf0e0e620c58ca07e393118d23bdba383eeaa0acfa4795f7d9ea26c83305a6fc8a808058414cc0cea5f9cc97fd394cab0756c55823b86adfde6c46a6dfbf52da24a3323bd86cf35916450d9b4ba03be365f6ba3ff91fb6a4c235a229d49a572d23afa2e3268b164a94810741f40dcaf3a628563368f567eb624018d4a110c981ab6d2da5fd7f3c30b0cbe22120ac63c0a73e09affae95ef9102818100f95c944ccde828d364543764b0f05ea6044bc2d3c5918dd1b6b8bc3623f95810a5406215fe4202cdf924978a908c47c2390ea20f375f10ba3dbe43d8dd40dafc301dad1b10a8b7f17ea97f7f7009dcf2bfb3a1b8cf7f5569b064a21dba9c959ec2b71c2cc057e91a21702bfba954f2ca269e8cd030c0f4f4803ad0becfc58e0902818100e754e7875edcb5332189ff31b9c2b6b93579e5e7e1fbc013da4f8b1a32c68d5d6774c6e3b1dfc5e55b22f2b30fb12a70692560cd40c2fa6d087afbc617c36a582e3ce5d7a506f45b443bc6170b0d11c711045f92c49ec3b5899a1d3c191bfb97bfbc8051caefd7935d5abcf161a5af7d5d9d971edb0c07f9f88fe72eff2fa407028181008c8d8e59ac460b9cfb942c94e8d6d3c2a7f13c23b9dccd1f43eae4cb6f83800c01d94470391c64104d3a3ee0af9122716b4fc030eb78fe28bbdc9ec9820ca862358cc4a1d8c600c872287fe108f9c63c5da996a260f2d8e5f5b3035dd66da4381470b9c4cfb5bd82290edcfbc0fa4ccf7ced2959bfe14330fd86295b2429aa61028180772074fe742e6a2d838701e0c48d6df560817e90740265be937cc4e05fe779a2f104e4eb1a8d66e69e9117b4784f3ed09685061d8ccd1b930c7bf0ade94cdbb5bf51e2f6b2e82aebd8ee832b18a8c94fdf0686851935bd08fe6c5bc3b8167df07e6f7f111fd575095158c9d5eff817b0128675ed10d6584134ec3e1c28938aff02818100a957119ae91810c9e2e92d8cefe0aeed8a7dc65d777d55948d6c09794b7d096a91789730d286370db6a761f048e1bb9a294b07f8a652b93abdca388c561c2acbb1e65ef93c8a230ff2cbde5e690ad7a04abcca80d253272e3687b99d17160c31ab73c6524e815004ab78ab8fad16d089952bf55889b2f75d473112823e4237ce]\n\n# tcId = 60\n# edge case for montgomery reduction with special primes\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = d59187caba5dbdbc43e6523e1163ee57187cf0999abd64e0de5d238118677b17855f588352f2208b2a92b1c296ddfa9e2bc2b271404034ef96b04122d55d3509f1f9f75658c13172caef5c1ead5d33245c1c1ead84ebfd6f7bf321c0c513c1a2e248ba9805fd3d59d84146032887ae0b0da75d65846aff104366c1e3501d09f3edacc6ce9e41f60f489bd7b0afeecc080110daf9372e18a2e26bf870d640d27cbbc92855a2ca16bbc08c7e0845cd10c964\nresult = valid\n\n[d = 373140d3efe66677aaee9dbdbcbcb28c1099e659a27fceb2f5e5b3e74cb769208f9f01ebec99ab473b3f223efdb5a8fae049c5eb98cdd95e540b8a94ea3e3f359774e9a388233272f15f74315a537753343fe0fb25e4a483fd7d83a3d4e589634cb943e5fc0c71e38be042781fd66a6ebc688307e223f5499e60dbf8faa0f78e89f6bcee6d7955cdc6a8ca8d88fa6f082538571fbd8fef7bb7bdc86590c833b7aa1564fa7f20e099aaf6774810a71bd72ce1e5dfdbf53ccc169530c51e0913b1a9079da6dba0c9452449739196266449270f84812ff7b14d8fcf436e9f7371f58955150f06eee56e1e15594ebfe7143f27b52f6e9a4124904052b82475681981]\n[e = 010001]\n[keysize = 2048]\n[n = 009c674c8eb6b1119cadf24265cc7751bbb162a63083dfa58726df27b77b10bf030210affd810d785284374647cb89e5e78d04e7f07d24bdaf8aaf9c4aed1e176613d77f99d3e86dc97878c2eada2f6ac55c73aa7211606291736a0ba33ebeb48cbc89ee36e18d963e6250c3f9b1a29f4cd7668761cf72bfcdeb31ea58bcff31ab2d09a3502e1063e77a19cf0ef31c14a386536abb62306c41b386d4d7559b486f14c66f81cd9268b25987450b1b64209a9bfbbad7a2d5b6ccada0f5ee97687de9976980c33a4e7cd4cd1fb2f2b2fc59fcf68843f3cba885fefe4c244f8f19602947688dc697bae5f53734178b2c82497f83c60331542a5dd557010ecc3847acf9]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a302010002820101009c674c8eb6b1119cadf24265cc7751bbb162a63083dfa58726df27b77b10bf030210affd810d785284374647cb89e5e78d04e7f07d24bdaf8aaf9c4aed1e176613d77f99d3e86dc97878c2eada2f6ac55c73aa7211606291736a0ba33ebeb48cbc89ee36e18d963e6250c3f9b1a29f4cd7668761cf72bfcdeb31ea58bcff31ab2d09a3502e1063e77a19cf0ef31c14a386536abb62306c41b386d4d7559b486f14c66f81cd9268b25987450b1b64209a9bfbbad7a2d5b6ccada0f5ee97687de9976980c33a4e7cd4cd1fb2f2b2fc59fcf68843f3cba885fefe4c244f8f19602947688dc697bae5f53734178b2c82497f83c60331542a5dd557010ecc3847acf9020301000102820100373140d3efe66677aaee9dbdbcbcb28c1099e659a27fceb2f5e5b3e74cb769208f9f01ebec99ab473b3f223efdb5a8fae049c5eb98cdd95e540b8a94ea3e3f359774e9a388233272f15f74315a537753343fe0fb25e4a483fd7d83a3d4e589634cb943e5fc0c71e38be042781fd66a6ebc688307e223f5499e60dbf8faa0f78e89f6bcee6d7955cdc6a8ca8d88fa6f082538571fbd8fef7bb7bdc86590c833b7aa1564fa7f20e099aaf6774810a71bd72ce1e5dfdbf53ccc169530c51e0913b1a9079da6dba0c9452449739196266449270f84812ff7b14d8fcf436e9f7371f58955150f06eee56e1e15594ebfe7143f27b52f6e9a4124904052b8247568198102818100d4a180a199b63e0657e4c03928e70b55d7defae203566eda84c584ffede87dfb0f5bba31d0fe6a46b4e0eddbcd80291c2fb550d5500e65aa198f32efb4d2e61a7acb82f41536931b9581bd4e96f7d10040bb240b06c77dd24a7b0a041e943b66248b2448adf068e297a5bc66f6dc986e0375888e16c659b75173fa115793b7e902818100bc4de42bf505e84cb3385505a2fa55ee0d0691f6bda9ed283a9daacb4b13631f6601cae8ee1e107ac4c8521646fb37cad6654fad88c60bf2c137d06882b8d18caa6f2379089add3474f20e01129914992ea06050540d04b5050e723830f86d0b898f22faa746bcd21ddfb8e2e8cb7de19ad52a55070b0dd4eea8fb47988932910281803788266c0e150685e996988d551d625c7d10833d5bd9cb01cf03370510415405a9b12f23ab8d867c08e965b5ae29f692a1f31cb5593f29560f6ed2c2bfdb04b58db470f30647468c41b3ac9945dc5afd51ea8e334305feda591161404a2c34872cac1a41d10ba498e93a23c6505ab484a6ea9f4b5caf58e703a2e2807cfadb610281803b7b675e335220654a1fbb4bc285cd6b1b163e397104227418c00159a26787623db8c73df929ea0ebde68177a4086b4159a43b1d181d675cd1882dff357be845c4f8c27dd32808442fc4de839c3a5af560732cb97333818f24ffc138dacf3eb2ec4b18c390df9979ce1203b739ce3dff6c07760dd1e1be06cb34f9db4de5d8e102818100a08e8c751bf67cb72e99179e91f17ae2250fcae4002189c11a19d47d9ec70c864cf45bdf52a87f48fd68d21bc8a67386eb1888b9e714bdebe429d27e455c818b06552d34e2f89136646acfad68cbaa7edc878306349c6626885df770eac14a67312af3037a60a9856dbffe0545b2411bfbc21c45b91c076442527d67f6ead5c6]\n\n# tcId = 61\n# edge case for montgomery reduction with special primes\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = 69fc21cfdfdaf947da0c6ca5c9d78967fac976579659c93a8991e93d12120b10bc6342cc128912af3093696afb4937dacb30bca328b5aea273a2d512c5b98fdc050c213b87d23ce11957b08d74d3ac5a89234d9022f1a132e0b4d6afc411082569ede3f1d71d94886159d7eb8eb8\nresult = valid\n\n[d = 350b5d22a0c60b1a67fbbb8d0a4b5e0fc27f2806afef5dfd8f7a71cfb2d6261c246f929ba023ab12ac5a28755755fcd3a3284ef32846c50a4db51bbdfdce016191a16aa4471ea9dedf8056b9f857b409cae629e6d4f211740fb83613c6199df5215a5d3559c8158ea6a5af791db02a7e3be5daaac6e47aec493872a845da9ba04de538780d63335340548b81a8c27222ba259013a330a8bf5a9284f785a794e89fd973220e98086f1c43771b89f4e21daff4a12e4cb866fe3963c556716397865d4c08fc39ec3db1048745dce726c9cdae9c984cea3dbc79124038226f45c7b128922673db23d2f0f0a70b20e054664c617a64d0c7de7ae987fd9f2af15ae4e1]\n[e = 010001]\n[keysize = 2048]\n[n = 00cf0ccf73f02736be83c4a6a2039ac3a36d7d1883db608b4055c00ae37f672d420f1eefead15d06b6c639d462ad3297b4213cede8a129570447d5f09dfbf985d54af8599e431247fd759acaf1ce51da4553f343fcb0649b5ee2c294cfe9c2a571757cab5fb4d2a513bba3064b471a134f1bb87fd786fcb42c18d565c54693cc5541e4", + "d26fce244f2210c1454da32d7a061ccaa8faab3f1c8d5cc922a099b3fe75b081213cb917d210e2ac2a24ab56a08400e0cdb18a1c8c71a37f546faf83cdc261fd82c2e47a6879124072b90b7519e53823d4dcf422459103abb2966f9564e55a05c21fc3b43658952f9627422459cdd3214f3ae257558ded08783b17cec529]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cf0ccf73f02736be83c4a6a2039ac3a36d7d1883db608b4055c00ae37f672d420f1eefead15d06b6c639d462ad3297b4213cede8a129570447d5f09dfbf985d54af8599e431247fd759acaf1ce51da4553f343fcb0649b5ee2c294cfe9c2a571757cab5fb4d2a513bba3064b471a134f1bb87fd786fcb42c18d565c54693cc5541e4d26fce244f2210c1454da32d7a061ccaa8faab3f1c8d5cc922a099b3fe75b081213cb917d210e2ac2a24ab56a08400e0cdb18a1c8c71a37f546faf83cdc261fd82c2e47a6879124072b90b7519e53823d4dcf422459103abb2966f9564e55a05c21fc3b43658952f9627422459cdd3214f3ae257558ded08783b17cec529020301000102820100350b5d22a0c60b1a67fbbb8d0a4b5e0fc27f2806afef5dfd8f7a71cfb2d6261c246f929ba023ab12ac5a28755755fcd3a3284ef32846c50a4db51bbdfdce016191a16aa4471ea9dedf8056b9f857b409cae629e6d4f211740fb83613c6199df5215a5d3559c8158ea6a5af791db02a7e3be5daaac6e47aec493872a845da9ba04de538780d63335340548b81a8c27222ba259013a330a8bf5a9284f785a794e89fd973220e98086f1c43771b89f4e21daff4a12e4cb866fe3963c556716397865d4c08fc39ec3db1048745dce726c9cdae9c984cea3dbc79124038226f45c7b128922673db23d2f0f0a70b20e054664c617a64d0c7de7ae987fd9f2af15ae4e102818100f3f8c1d23e61b0213a323ddfea2df12b78b8c06ed636eed2b436e1f7c10e6f916bad4a67871a411289467aac9ac771393cb1019b988f345c52087a4e2b4b206e64ffe60dddd2702f1e9fca4f7bcf9f6c3be30adb848fbb1426b8366914ebbec32799f65052255034ac85bb16f4316847df2d35c5c4a009c40bb56cfb66b4746502818100d9420dab2a0ae1bf9db09b143f89a13b4dbc6de900e8a5ffa5a5518d838cf89cc74fc8a1447fcac34d30d15d07cd0e807f0d1b99cd77741917fb8598ebd73405b25d6bca4c15a9f5d07e60522fde4e283ae25d5c9b0c243a58097f00cf9aef9c52a236828b069e584de7abcc767cad43d838ebb2b447203e14915b517e1697750281806bf8cf6e88851b39d9539ae699f13326960acdbf3fb69803501669f307d1a7b6a7fccd4cfc11b672c9a6136c8823740c6cbbb9866f02119e39ffde80f1d011ce498ca6f7c40ff9ee20937f29a615c0ec59a4a58d7921531e1bf4b2bfd6ae6e8257e85f863494a6e668e3d664d635777d375bfecc43b4c01daf40dfb67341b1b102818100b7b68d4c61bed5ea6c73bc8f40b326edb8ec4f9caa3210bcbedbaebc95b30d3fb5a297ab16fb61000933f0b6543467c0ecaeaeda3dce7714091d9d791464e40eb5271e50f0499970cd9f2fe00fae5234dea6300070f3b166ccaf2b000a8d9f7476c3c88856fb7fc6780a2152421767846940a8be72877a92445e2df419450d490281805c6e8fc9deeb3afedc1cb2b2c377c9c2a56837a7e15152a587f932655b846e14526b13515a3a78e2ae3420e1508cd494a4a6070e83b1fae8249c01d2e41f926acd9c980569caf6b0bff559715feff770510972392c4bb88ac72d1a5af09abe2d5b568997357ea2073da38bee8b2e078f746512ca09bae177f226c1724e516ada]\n\n# tcId = 62\n# edge case for montgomery reduction with special primes\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 8923733a345f80b10575ce05c18cb8543de89cbf37886f51c6b9369ecc01b880587e9c41f1848b2539a6919752d07429f3b012e9ac62e5d192cb980489ec54ee54a432a1f6adc583477b404d816e499666b4c91d2fc4e7d1844631997afdd05f190c433a6bffe334de4476284e8e6b30f4fd6da692\nresult = valid\n\n[d = 629c1d04ddcfadb36eda7b394ee5bf6619937f5af340c2ba4bea8adef205714d20a131571883d923cdf5099381d107d30c66fd24d836bc30191b99ba7116033247b0ecc7cec457e94230a5a4f726e2747c02812c84d4ec50e615125063eeacaf1a35332656e3751f90c554dcddef27cc2175da418d756eba2163a076ae438c626142cef8c105959a9aa157299e884f48d6aa6171e0d0c6176377e1475728e06e013bba7fdf9438938b1ac2df23141834c81788325e3fec96cd5c72709a697ee644eaf389911ff6e91bcbe459cb1759720fe0d48159a3d31d7ddba78cc282861eec0c7f1014118e8d2d74fba5eddd5eec3c1f894b00e4390ea3016939daefdb95]\n[e = 010001]\n[keysize = 2048]\n[n = 00bf00ce8851532bb7cb0574acfa4f8992e37ececd04364f3d920a4bbf8b17523d967854dd28291c9adb51760356f24b8694995cad1f91fdd3c738b307b36f27f95d185fc331f5d614a4238f3f2157c1ae3a91bf6c5ac632259f2eff08f7bcffbfa6351bffaeb91ceedca6779b5c82e07b4ea2791196ced821793332ea313dfaa64064eb5e8f71de0ad1cdf680fec6a5617fcf970cc4eeac5ff017009400944997e8c36b1ab87a08545b027480815b78fd04ee3bd8daa31460246e9e258b31243ddae72fa770ac0fff907a6e99622b7b936529137a5b96b43562037459e5dff9abb3bfa7b4fb9d57a9345d86a72ea636fda36ee36eb913677c494bab01042b982d]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bf00ce8851532bb7cb0574acfa4f8992e37ececd04364f3d920a4bbf8b17523d967854dd28291c9adb51760356f24b8694995cad1f91fdd3c738b307b36f27f95d185fc331f5d614a4238f3f2157c1ae3a91bf6c5ac632259f2eff08f7bcffbfa6351bffaeb91ceedca6779b5c82e07b4ea2791196ced821793332ea313dfaa64064eb5e8f71de0ad1cdf680fec6a5617fcf970cc4eeac5ff017009400944997e8c36b1ab87a08545b027480815b78fd04ee3bd8daa31460246e9e258b31243ddae72fa770ac0fff907a6e99622b7b936529137a5b96b43562037459e5dff9abb3bfa7b4fb9d57a9345d86a72ea636fda36ee36eb913677c494bab01042b982d020301000102820100629c1d04ddcfadb36eda7b394ee5bf6619937f5af340c2ba4bea8adef205714d20a131571883d923cdf5099381d107d30c66fd24d836bc30191b99ba7116033247b0ecc7cec457e94230a5a4f726e2747c02812c84d4ec50e615125063eeacaf1a35332656e3751f90c554dcddef27cc2175da418d756eba2163a076ae438c626142cef8c105959a9aa157299e884f48d6aa6171e0d0c6176377e1475728e06e013bba7fdf9438938b1ac2df23141834c81788325e3fec96cd5c72709a697ee644eaf389911ff6e91bcbe459cb1759720fe0d48159a3d31d7ddba78cc282861eec0c7f1014118e8d2d74fba5eddd5eec3c1f894b00e4390ea3016939daefdb9502818100f487bed27b53cd84bbc984a233cf087da6e714181b5a016435751d7f7b1ebba10e7fbcf43028f022d8858b660a687e683c52e7139b9ea72ab6a95160abe03772fda4116f62808d9d61c25be94f1924f31f17abb34321c49232137912f1d9a4f0a633b292fb2ec7c0878e060be161b4a6571e12f5e95a9d490c15009d9ffd26d702818100c7f652730125870f9750bc5430f39e8bbf66b2d8ec4b3f33dba050b06349f62c68808773e923cb7f508c9677855691d43d0e004f7fa8fbcb63cde1a1db7e958e869b0a644c0c9fc512f38aaa92116b37cc527c7ffeda076c47b1a8004ecd0ee4551a9fa7662d27e44960114f3e42ff5de15ae3a7d18177792081dd144d250c9b0281800d5b8cf4fa7fad6e5ec3b75714f56e454ee4b898488636253f365292302b919c4eaa73abf32589589df34d96196373e445c7519024a41a059f4cc8813b62582513edee75e32f9a8cca564fa703072099974d37b7e726e512076240eee3ff3b9f59b4e1405e304401246681b60c6dc5ec803dc8535e97f09798ed5cc73f8218a902818022527c6a730aeef8d51f2d8441f6bf02fbb2740659e0bc937922365760638496b0c546fab54cc8942cce44d175189be55329811224366c29c812c1a4d7990db0ae18149b8c962a22589366fcca1fa548a9908b00294d6132cbc789afabd6f4b46a8b2c563e6a87cb5e70d7e7c3271ad0116b596227cad227ff556b0e1e03bafb0281800a6cea1e04c32597597bd18db5f5c781a73eceaa330830e031eb535c6ce08ef3db4bc37e5b382fe34342ba6f242dcf632d189603cfa41d81a10b7f94a4ac1d9e62d40cecdc342c95ef3deaddf147b175673cef2fda9035809a94c52eabb52c348e13fb91025b8b6e3ce721809a6dec9cc510a529e0bff8cf8ce4ea78b5073326]\n\n# tcId = 63\n# edge case for montgomery reduction with special primes\nct = bf00ce8851532bb7cb0574acfa4f8992e37ececd04364f3d920a4bbf8b17523d967854dd28291c9adb51760356f24b8694995cad1f91fdd3c738b307b36f27f95d185fc331f5d614a4238f3f2157c1ae3a91bf6c5ac632259f2eff08f7bcffbfa6351bffaeb91ceedca6779b5c82e07b4ea2791196ced821793332ea313dfaa5c064eb5e8f71de0ad1cdf680fec6a5617fcf970cc4eeac5ff017009400944997e8c36b1ab87a08545b027480815b78fd04ee3bd8daa31460246e9e258b31243ddae72fa770ac0fff907a6e99622b7b936529137a5b96b43562037459e5dff9abb3bfa7b4fb9d57a9345d86a72ea636fda36ee36eb913677c494bab01042b982c\nmsg = 4947c8c3306ed0cc1841318746a17078557b686f0dc45c6289e02ef4c595b5d0c2c92d7cab1e93ce0e1470a2a5e116e4a49de188c149bcebebfe669ba256d64fadab70fd7e36734eaf10b90f7b4a5004c04ada14a0ef75c0f25a3094010d2b43d5c023\nresult = valid\n\n[d = 00877c32fdfb22d2dc7734329699ff43fc901b7ca0a7a25575eb58c88a1e3838df3b679af332f97074dbaa1bc4606e513efdfbade07435e113fd956eedb2d24c105c9167376028cca63892d00c31dda66e1dcd627483a472fc8b905413b9014e21a52c90d1c7c0c4b2f7dfa2cfb583c7a5e4603f548f98720a99cc11d03b2c6abec41d4ab1a6e4f73f394ef46213fcade3131ef85b004", + "fca291fa2ebd0d9ffe3e8cf5071a524f863df26369c22b38eacecdc784dd65e20d356a6e20de033c481ebe1c5cd42366ac83c26caf73875e628875c925de9c3939bd7f912bfded876393b1f6a314447a96bbc4cfe3c01443a2a9de7121023ee025194f5a20cb768591a01]\n[e = 010001]\n[keysize = 2048]\n[n = 00cc890f82986e18c35e18a2ea354bd2c7e88dca9f0e1981497b31342b893992a49f36380fbe9829995e9aec1b3ec88dfbcbfb11bd2a00140f8f6647c5e3bdda527799ef0571f45427f10d2463ee096fda48c41085d3a90bf7072d06fb7a3d2286cd10255a82a52452ea3e61e2d8e35eff9f6b831b48f09b522df104f48ac58f76cd241b9fddc042e7683774117808681693536600e1cd3035dcf6ec30a6bdf659b15e0417c3bfc4c9a591f2f858081df1243477d41812a6ac74bc4fbb6485b18aaf6a00c32593751a527723b4802d318038698de9063818044cca1b035b8800193fed71d3c38ed3296fddb336552b68d380d1214b13a1c86e6f687bd37e5fd22b]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100cc890f82986e18c35e18a2ea354bd2c7e88dca9f0e1981497b31342b893992a49f36380fbe9829995e9aec1b3ec88dfbcbfb11bd2a00140f8f6647c5e3bdda527799ef0571f45427f10d2463ee096fda48c41085d3a90bf7072d06fb7a3d2286cd10255a82a52452ea3e61e2d8e35eff9f6b831b48f09b522df104f48ac58f76cd241b9fddc042e7683774117808681693536600e1cd3035dcf6ec30a6bdf659b15e0417c3bfc4c9a591f2f858081df1243477d41812a6ac74bc4fbb6485b18aaf6a00c32593751a527723b4802d318038698de9063818044cca1b035b8800193fed71d3c38ed3296fddb336552b68d380d1214b13a1c86e6f687bd37e5fd22b02030100010282010100877c32fdfb22d2dc7734329699ff43fc901b7ca0a7a25575eb58c88a1e3838df3b679af332f97074dbaa1bc4606e513efdfbade07435e113fd956eedb2d24c105c9167376028cca63892d00c31dda66e1dcd627483a472fc8b905413b9014e21a52c90d1c7c0c4b2f7dfa2cfb583c7a5e4603f548f98720a99cc11d03b2c6abec41d4ab1a6e4f73f394ef46213fcade3131ef85b004fca291fa2ebd0d9ffe3e8cf5071a524f863df26369c22b38eacecdc784dd65e20d356a6e20de033c481ebe1c5cd42366ac83c26caf73875e628875c925de9c3939bd7f912bfded876393b1f6a314447a96bbc4cfe3c01443a2a9de7121023ee025194f5a20cb768591a0102818100ea90923ad1a16d8f5704bdfd34a7f059941112c391f656b750f6c9ca1d916397ebcc33f48c300a9d001071caf00d33f80cf0ae3efd899c6443e6cdb9214d9dfb209e088163e75dd7582d3639df75d9cf113eb42bc61f7e90ebd9a619deb41c76d5728f3134d4564142e166f46313f1a7492f23d207fc2d8fa15cc7a01f24214102818100df39faf40d3cbaf2aed2d0f69c67b2bbb19e7c81bc90306918471d1e406cac8ed9969e8bdc80be72502176d68ea1f6016ecaf4d3b4ce24ea76762325fd1680345e5c5b77ba4888b9d7d4fd85af16e20cc922b8bd2bbb49f6373236ddc939063ae276d2fb4a3812de74047a1d9259fd877e2329920f4424585bb27afdc61eec6b02818100cc97db2438b2d00825c37a1fbfecf7a47a94c5c415ad4307d433dde05017ff4184a7716dcd551dfcc11096e086af4d73ff7d72ce7880ae0b7a7a775811e74c73bd887a2cb9c215c4fe21395a13420d0022af89a160c719b33834783fba53693c7182e1c8eea682b19baf5508b6deaf79d548abbac7c23acf3bd4dc3e1acb7dc102818054bbe08bb55ea1242fc26c79c02308d0807ac58e45b281fdd2ae63da30e04f9c25f22b9ab187d942f131d2b75d0b13a3b597aad995df4e5a05bf9056023d014b5faa353a3c66fe27754b2f3508a26a0a2a6b58aece23d8ce7263483a66009461d3c7010d4c3dfec39c4c7ac230e4a1fd459f394f6d261399caacf44cd260b8a30281804f8c1d61e059c9920e68544adc7e028f8f05933b4f49cec1614999d120450198bef26bdde1099bffc5316baef331c2b3d854e42a2f18858735641952104847cbbce742c8a6b9238143af4b27cb8ca4ef931f5509f2bca875397edfabdd2263e0867303dbdfbfac683a10c42d76184f320c469ab0f680a83797684b61026b93df]\n\n# tcId = 64\n# edge case for montgomery reduction with special primes\nct = cc890f82986e18c35e18a2ea354bd2c7e88dca9f0e1981497b31342b893992a49f36380fbe9829995e9aec1b3ec88dfbcbfb11bd2a00140f8f6647c5e3bdda527799ef0571f45427f10d2463ee096fda48c41085d3a90bf7072d06fb7a3d2286cd10255a82a52452ea3e61e2d8e35eff9f6b831b48f09b522df104f48ac58f76cc241b9fddc042e7683774117808681693536600e1cd3035dcf6ec30a6bdf659b15e0417c3bfc4c9a591f2f858081df1243477d41812a6ac74bc4fbb6485b18aaf6a00c32593751a527723b4802d318038698de9063818044cca1b035b8800193fed71d3c38ed3296fddb336552b68d380d1214b13a1c86e6f687bd37e5fd22c\nmsg = 841ee52c94cac3dda367429494b2a07274e19f7f9567bceae1a940df892b8e44c7c86bdcc6ea7232774ee2195b19bfe932a88c12401c06fe0b865583d989ed3236fdb18264499a36b6ae6ba1bfc68b8220a0e3fa2f8221bb3e72e267115469c8648b5ec81d04393f8357daea9b849b95d2707a3b13e4e27a5be8e75e803f41b081c7accae863211f5357a4c81c\nresult = valid\n\n[d = 355d71fce2f312b7c53d7911d7fbdcd976ddb3d5809691d3031e2d4656b7b48545bd7b265aca5f9779e2c332e70d592904b9e0caf2a8c8aa87b9dd8d88ac9ec370a637399688c62bf63ae41d87e493820cfe30144b7f8f7f6cb3c88b00a907be37190398927353a005a1a821edc644ecbd9ebe67c2993d9575d88c45ead2251e270a28bf017051d8a4248d76172b65c51728c23b56a8eb3e8c24dfc35b05675314f4a6e808411ec2564969d7e1a23b10277937f3e4cb06a338691d26677927f6a67e5334bccabd309fabc851b5c55999c160300ee10511656561fa98c0ec5b2dec78491319862664bed347bef461b5fa7c5e53859bc36c440a47f39a63203d01]\n[e = 010001]\n[keysize = 2048]\n[n = 00b519563f7b707c6e9b89342aa5314536c521dd78877a3307b372f617622cb06c84626ca4e09e92cb869acaa07b04e18ae51a2935eb0d4cd29ddb96e5fea661c6f038859e31a96bcebefa32cd77dcbb2817c20774ce6badb1795c8b1e73a555921e6cf2726663576d9075af06dd89795bdf10b3f1973cdfbe81fd0f09d9b7aca821e3f403bbf517982d39f1a3411814a24f72d02f96a545cd0e0297ed88f3603cecc340adb01e2b35f9b7d8c2e4fa04e22122e5931cec5a12a3e0b93ca623a7d1a337c2bf6faf6ac17c0480a2b7e922dd99ee44297c5c085f044a92865429696387768e1ac55b0acd5bf312fe10279d3e7277f11c46ebf161feba67aeb49b103f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100b519563f7b707c6e9b89342aa5314536c521dd78877a3307b372f617622cb06c84626ca4e09e92cb869acaa07b04e18ae51a2935eb0d4cd29ddb96e5fea661c6f038859e31a96bcebefa32cd77dcbb2817c20774ce6badb1795c8b1e73a555921e6cf2726663576d9075af06dd89795bdf10b3f1973cdfbe81fd0f09d9b7aca821e3f403bbf517982d39f1a3411814a24f72d02f96a545cd0e0297ed88f3603cecc340adb01e2b35f9b7d8c2e4fa04e22122e5931cec5a12a3e0b93ca623a7d1a337c2bf6faf6ac17c0480a2b7e922dd99ee44297c5c085f044a92865429696387768e1ac55b0acd5bf312fe10279d3e7277f11c46ebf161feba67aeb49b103f020301000102820100355d71fce2f312b7c53d7911d7fbdcd976ddb3d5809691d3031e2d4656b7b48545bd7b265aca5f9779e2c332e70d592904b9e0caf2a8c8aa87b9dd8d88ac9ec370a637399688c62bf63ae41d87e493820cfe30144b7f8f7f6cb3c88b00a907be37190398927353a005a1a821edc644ecbd9ebe67c2993d9575d88c45ead2251e270a28bf017051d8a4248d76172b65c51728c23b56a8eb3e8c24dfc35b05675314f4a6e808411ec2564969d7e1a23b10277937f3e4cb06a338691d26677927f6a67e5334bccabd309fabc851b5c55999c160300ee10511656561fa98c0ec5b2dec78491319862664bed347bef461b5fa7c5e53859bc36c440a47f39a63203d0102818100e9cffe9f3b702d03ee7c25703f1314b2647963de2da16f2c7966d3ebc18fea929f28cb7a55f576d9c3a5a2513087a439d74cae037a965a31832b87188d3ce71a2000f54b983956c8e6827e854d21b4c37eb3948f6801895319b1cf51e020dbb7883bf15164f1499696feda88eb0b6d75877deec33da2390e9976d698a6d9b0c902818100c648c5f9422c0127928e7a9cfe9b345185d53e06d8bbb35201cae7bdfa2ceb7a6b31bcb88f4617c995feb2b71ec8f4e1854fc17639c970bcdf37fc46654305a690b8e6a6bea726e8b7ea40edb886532d7944a2ad2763cbe612cc170d7ca95fb90ba90a806190252dcac94a3e79ba45e4abde0391769c1e750834f5cd00e384c702818100cb766a369a7ca54f948a87f1c391912323f7d68612e33661574bba02a02fe28ab0e1c91fae09aae11935dba81739121a1b56e8deb220806031ab0126c65147321ec376b1cfc7a5d3b173c131b2cb3008270b92adb06e15d830b5e09979165edcb93aa0669a16b658cb10ff8ec22af197a2ce5da59ccebc240e3bb1c6a8fb2ab102818051a7f48792bda678127dc476d4cf3bbb7adef75d40720405f8a103d093af5e061b10ef841dd4a2c52c95282a0b6e7c924721322daadc8f25e8d3187c310569d54f7225e2734f48d1bbb3a7ab7e3b2b13e605e2ec65f54e29e081d5d8830709599e38ae0f729e370165aa817dbb097ff10cea3013fe818a756dbcc9a0f405be4f0281806011e90bcbdc97ec1d0d43992f8830d4bda5922997eec843a9ed14f80f83d0a0afad3cc320108cae02e4010403b31650c26af431563f0821858c5da0095a9813c45c11bbf2a43bfc36ebd036cd4548f406a933235a5ea71aabe29ca536c5d8a37fd1310b43f0e1bcec13bba1d6a9968c718bf974f5b73ccbd808d1248c8f5cae]\n\n# tcId = 65\n# edge case for montgomery reduction with special primes\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000\nmsg = a3b94a63d4937de4bf024bce52957cd9af5efb3b0defef908d5f2ce35941b10168128951a1c5093dcdcebaa0622fdfc1e481daac4ce5675ed6690cec5f8ef20305185ed5b61db798e7a13626831fa9\nresult = valid\n\n", +}; +static const size_t kLen139 = 242948; + +static const char *kData139[] = { + "# Imported from Wycheproof's rsa_pkcs1_3072_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 0501205bd17b88d0d6626dd0fec898a0fd7f68f8dddcc314f74d167c40495b958a87e4ed63202e6ac68f4f4f4b88e3ec7a07d85757a7458468b766aad9a40f77337855408b28d140e75c2e6b3604ea8907bbd7f8e9578c2400ae645d28e2deef8bf718e29cf12fccb92fef9869f43aee5bd6adc223848d169cd6c27c2766652766ff81993b3e015a553decee0ffdc1624f39f8d96b6ed5d95047c1570b59fa2eb3d688dd5e14acc9407b8094f18b4694244eb1adcd655d873f57ff9af6e4fec470be236baf3b20c2040ab360d759c8b4e618bf8bd4e0ec6698f1b72c7160ed0521c82b5176b60fb63503d0ae23f6e2fb7a609305b0af62150b921ac53f4de899666cb01db0c9d8b650753015c1b6e682e6bf38204e59f7409c3808c0e53f254935540a381a963c2c1a77c6f987f06a07a0572686ed22882dbc82e7823cec080a58d72b09d00cc1d245cf158ff49cc40599d3af719dc301b4aa7f5b03629ae853e9daabe284db86d5c41d0401143df2b4593ef4e3747209c523f5a7f80f02d011]\n[e = 010001]\n[keysize = 3072]\n[n = 00dc8f7880672f0cf9d63617a8a58bdd271a109badda0fa826f94b8a795526b6a49a80564ccaba8a9491a935a53edeae1d9a7b5463d9e2ef3ee0ce7bff5d4b6c8147b5c073c2f220515d531d55a36687a6de3c34775c2f15191ac0a742d7342228c8d910fe6bbca439539c485debcbd0ee0e4bae317503b83cee8100ac7bb4587467cbc4373c4bda2eedf7c41631e50922b580f5bce81d24b208cabcd2d75fcfe99f75b493dffc5c9bd990f7fc3bf2efe392fecae36f3e4ef4456c1b5de99cc7451733a910b6834b61ec29274d986be3752c350b13a327dabc08dfcf6565499ad26e853446633eadb2970ca95bcf6bf05ffdbc2a804378d76985a71f06f90979f9fef716c36aa625a45b5eedf50825a53e9d9435b23caab9e5c64d38fd3a767e185ad7727d6e15f9e9bab2f4184d6487695db9a2698c672b2e823410dbef1d93fe40c9d357ee9fc77f849de11363f583af8ccf5181ca1aeb944c422516cb401e950923e4bd881439fa1093c77582bfe1ac5993674700b6434339e0245315d86fcb]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100dc8f7880672f0cf9d63617a8a58bdd271a109badda0fa826f94b8a795526b6a49a80564ccaba8a9491a935a53edeae1d9a7b5463d9e2ef3ee0ce7bff5d4b6c8147b5c073c2f220515d531d55a36687a6de3c34775c2f15191ac0a742d7342228c8d910fe6bbca439539c485debcbd0ee0e4bae317503b83cee8100ac7bb4587467cbc4373c4bda2eedf7c41631e50922b580f5bce81d24b208cabcd2d75fcfe99f75b493dffc5c9bd990f7fc3bf2efe392fecae36f3e4ef4456c1b5de99cc7451733a910b6834b61ec29274d986be3752c350b13a327dabc08dfcf6565499ad26e853446633eadb2970ca95bcf6bf05ffdbc2a804378d76985a71f06f90979f9fef716c36aa625a45b5eedf50825a53e9d9435b23caab9e5c64d38fd3a767e185ad7727d6e15f9e9bab2f4184d6487695db9a2698c672b2e823410dbef1d93fe40c9d357ee9fc77f849de11363f583af8ccf5181ca1aeb944c422516cb401e950923e4bd881439fa1093c77582bfe1ac5993674700b6434339e0245315d86fcb0203010001028201800501205bd17b88d0d6626dd0fec898a0fd7f68f8dddcc314f74d167c40495b958a87e4ed63202e6ac68f4f4f4b88e3ec7a07d85757a7458468b766aad9a40f77337855408b28d140e75c2e6b3604ea8907bbd7f8e9578c2400ae645d28e2deef8bf718e29cf12fccb92fef9869f43aee5bd6adc223848d169cd6c27c2766652766ff81993b3e015a553decee0ffdc1624f39f8d96b6ed5d95047c1570b59fa2eb3d688dd5e14acc9407b8094f18b4694244eb1adcd655d873f57ff9af6e4fec470be236baf3b20c2040ab360d759c8b4e618bf8bd4e0ec6698f1b72c7160ed0521c82b5176b60fb63503d0ae23f6e2fb7a609305b0af62150b921ac53f4de899666cb01db0c9d8b650753015c1b6e682e6bf38204e59f7409c3808c0e53f254935540a381a963c2c1a77c6f987f06a07a0572686ed22882dbc82e7823cec080a58d72b09d00cc1d245cf158ff49cc40599d3af719dc301b4aa7f5b03629ae853e9daabe284db86d5c41d0401143df2b4593ef4e3747209c523f5a7f80f02d0110281c100fec6a10bfc49b58a2c850eafebdb997649a95575a0c17631b011cb20d7a320232a815b9af6040d7bf23d267e5e06304c33e04c85e6d481442f010a9758ba08364a70035ef99e9c98eeb431505b2afb6779d1c91d0ea2fb0a65dc391e79ecda7d52fd7dd69923b25dfae448cace829ebaca6b3c8a3cb64a81800614434895778c20d629b125b69f42945f66b644f3840bcfa6fce361074256c50863ecca2ce756b4a9fb7e993d0f1fa48b2cc485b7eaa61405fbef150e7563c2150811767de0f90281c100dd9ec1cee6d8a971b166902c44a4f02ef37a62053b41288a1d873d399cbc9e7bd306ed906487da2f49bc1c1809c0d4d88106d6879518ed925feb66aad5ff3c2b83466c554ed97b96abef55b3b02314f50d0385a0a1d8a46ae03e8fce91b412120f0a10dc681570fa564b6873bacd997b616b2bd7733fb723ade23bc1089da32e509583436f1e3448b579fb21b240620d20458d08f0f995abacc0a398f0ab6a67c9f5bcf7e032fb1d668fe698d80327599ae3fdf3aaaab19baf17639443194be30281c100f1bfb40cd56573971acb5eb65b0cd2bf4502228f2ceca5a45c37661151cbfdb0a0a28233b600fe727fd6ba71e9f1e15e4d53260960907fe01ce1d614ea220bacc8512541b786637d51f3355fd44222af7b0e2ed11d9454b4f7165234b2e8a62188dff3c9ef21ca1c16f70a833615075ca2b9c28641398fd4f58fcf2650f752aa6a760cb584dd969cec80e1cb4dfdeb6bf1abb80661892bcf7dc28a5ea3309c8acf7f039e8af53f267d517a3737d2de1a9ca158fef171f8bda1e9a6f03b0912b10281c03e3c2ae8d362dc9294e2dc71d2050f7ddfd9ea54d5c3028366af67be1a09cde7afe72e277253c42dab632bf0842ca698f602d993d186e2904c676ab966c6fa3aadeec4d560032af5b0ead10258e0412e5fad31855e6ddc1e3742da57840b3157e8e946bade6fc6fe45e57f3ba0a5c40825df56bc761cda6d2693757c4bd318d414c527cb7414e351d7c49d8564ed379bc0084806cec50806e1c86728b7cd2b606212a43267bf694d6453dcc9e73f5b798a49a4331d263a2222154b5d834a43490281c018cc971e9186f86c144d140ceabbc9ae22c94e8d8575356fb6a4a033991ef210bafa39a4cd1abfa99b332fde9e56955af179459a7236a700b7fd1d88093906f6130ae7ca9742d9ed0d5c63e6a9e9b43df4d8b261c12d2c2f9148bc0669f165b8b881879c3ed58d4a6cd5a3f1193e9abd2784609c01fb9094c7c822532ad7aec2a08aee9e263095ad0426455cb59258c7fd3731ca89dee31800d191ed7249721c25266650c46dcbfbae3070604d2e009914a2e269a01bafa5bdf8bba31c4f3b60]\n\n# tcId = 1\nct = 142b27c795e6d7451db575c90a38488757a5c07760ce10e23a1eeeaa20a08ef14cc07e3ee757c45e309075f7261ee35af580a72c06dc6b0446233687592e838b1220816fc578bf0ccae6977aeddb03fb2c0b5112334acae93f64026afa503d8707faa9989c2176c59a1ec2ff6b6308593c85c11d94a9da2fad66c860fc248f066574fee8b0d82fdc684d8eabbeeffc55c3897099415d99c5d1598cc3ff335bf494c8fd36f234a20566c0d35e3bac56082fc6a81b8cba2c99c47d1d372481ec23f35b62a6469cc42f4d349eea52f7f08a63898da4207e3104efcf81de2ab1e33cd243769bec34df4a4e7cac1c4be4073694bd56170dde8c4e12f85d2f02df12e9936d2990d4a6c490ae0cf6c3bad313f3a477db67332319eeb5932e9d1e1321dff28a866e939fe50626342e141854081981f388489a962f38220ff14a686fa111a5b236eaa4eaf6d3fbd54f93fe744e2767a815adb0c43e947360a149fbf75469957dc3ab8dac091f6339402620424b9cff8324e2a35a5a2b765897ed6e8b2542\nmsg = \nresult = valid\n\n# tcId = 2\nct = b5d5116431fc78c12ee663635c9e9c32ceb91a18a9af36ea63e7e6b647e17a981741279957fe4f0bf08288082fd4c1b6b09a805ebfd229396eab3689b5bb2b686ea39637ec69c1b8142c7033c271c9cae9abfc14f8107a8a2d57984ff2a45c70b276167ac8c92a070c718bca9a1a274258fc385a62faa02e8f15167f9e825c6ad7e2358566f79f6641c6e959e3b898ac780e369f43739321906cae687a9d229f9c86fdb01cbf061dd3c53f8d0c950d4226e7c58a66b310e197e757db3516db2388fbee4e4cf16d12bb2786607617e6f6c4b86b26d36efac63fad1dc561b91b66122d9600124e03b18ca58da78f30ab0c31c5c7f4bc059ce65dba182afdaa788cbbdc3bf8d48b7972c5400f14d3d460d329e0ac60ccf96b3c1d5e4ea9f763565322a110de5569fb74b6cd44de2a5777e23c681f3f769afa961c42782dd2e56e22b4af1c777b87a15df1f6cb48b6a39f7396068fe40168c4dcbd3cce69daaed21554a3b15a2ee62974b112733ecd4f78ac4a05c63eb759842f4503a950bc7654df\nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 63b63f6eb3fd2322a6c85ed16318932e83f32535b3ec2527fb41dcc865bc44690554467655034ad33aa0fa993788e80654ab0e0174f8dd238ad68c3bc194f390dd38d26408778774848c49a6a606e7fb1b3bfbf5f19db4d4d1ba2db43fefb9a9bac311f2e1fc1ab4f5ddc00a009b9dc435448f250a648b206fe764505805c9bed1729d5bfeaa4fddafc115d281703fab0e79726d5546fa698a45ca6e5e561b8c2964b2da01914f808a498ab77672eda3432ed9974f0a06d320ff87a4222899f893a6cb6abf13d7e56cce2ee7eae67fc26f2274b63ce8301c721d7195158b6c966b8d36e3cff0aec6f218b0fa6d8490493471ee0f08b840b6cdcbb73a164246864de0f35565bbebe51585819e42a425090479537ed67f98236415e6ad3ca81116beb91db802dfb3f9da733f86cb6fa90904c8a382afcbf6162f0d89ee04973f2d26659325f7f00a4ae9e800de6aa27b6c94b9d57791658eb0714b7cba5466ecfe44bd5803647c3825b58c37187311a8b11399f53a877c265da82493a90869e376\nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = 072c9fb5c97732ddebad895eea7af5ae193a6cebe74a46cc2f911ddf31ea5a90fe7052861a520c8d8a2680b942eadf644933ac12d3f4e13390d0905808e2d4e7f29b3138ef7f50b360266833fb3ebbf3db0dfd33642b710899472500528a49b3d8d036671038820ede3a46709f7c64114e74c50f81f52ce4eeed74403ec9ed4fef6fb7cd788f8793b9951c1be5e075dfc1c53172dce2ec8c6ebebc3cae300beff7b551", + "df0a11913f0a3aaedd59ed70d3308a3a04cb1f656edf2829c8c3d1de7530ce5db7ca1bc5d0e7d3830c77871b6af589b5db87d3d6e8f02c0954a14cb1ad4a79481ab124674acac340e0fb20dc6682c3db4039d2e15371807686b260cb093354e9e1b1793b86aa087455b54ad5ddbc9fc6a5b2b8f786fbd70c7998f55114adf9908a3259f51f31f228741ae5e7ed598000d8171f9c3fc1f24cdae7c6947c8d612d3918f4c7b01682e33633cab0875a83a779bc211d0c8c6c189af12c93716003a86ff7c5ce00a6d43cb37d9f467dff17156039f50c5a3c811f0f0b8be025\nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 0dfa0e455f2b30f23b868ebe95dc8008664d18f0a00da3612c045138c4ca44ae8d8bfc050f377f1995ce2084e7320bb75c763d95219f4fc11d9a3af128e9c369cec5ed19d52af27fd8e4a462b39c645c4b7b8534bdf7e2d5e2e7cb99a4bbd5713c3401fb1dc3dbe2f851a5fb655e3289d0592367c0518ad0dec38eb84c3a7f2400d3b53d9439b7fdfb42a8320a5617ad83366787cacb3644294a1a98deb09cf2dfc626889f5824b71d20b1a95b7b984760cd1f382a472d6025644770176390b8f38bebce8f28b68944eda8e5c6e99c694055456448f0df0136e7e4e881f1a6b73c642047327a6ce3966cc7d3124434191b09a0f6636e2346e234943cabefd18418a60da871c77a858551699583ec8c30516a28ce4f62a779d0f468f2efdb5fa60a4c647e62f045bd56f6df1564c5c2f112ad050a5bfd411396cfff1bd9618529efd92a62735e01c324da2ba4be1d3f450c2d37b7913bb809874bdbc0081397dd55f93716606a00001b25563f413d0c4b9c2b81efe320d9478bdb65fb3be9d268\nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 740486caac4d0038274e7627da5325320682e610bd678923158c7e23ce3d430e6bb0fc1063fcd84cbcb2415ac32128a0e506b2f95899dfc67c2955514d8e0b0e4d84077b869b5f4d13eaf96242a0925692ff69c752190082b813bb9dda83907e1d6c4733af31e00847e856c8d68445fd2021d982a0ed9165db69933f50acae667a5121672294ce4c534479590a9f4425a8fc7c0cdb8abfdbb290c71b4379cf7e7cd959f4557b2aa61e185e95699345aa4010d67efe3891094d5c0ad2310f1884111f4aa0d33cc1a4fa494c5a744c10c307069377c848e7042ec1581f0dce3fb7febd7d347c5abbce2ed3d2ec085644fb661d15ad8aa041a375ccc77c9e01dd47e300324738db555201506ff60fbf6c12a82f6acdf7396fe38e4692d1fbc9d86887709f81697676b0f45d57379dab3409b173827a6619572dd8e168b991d6f9f6b996453544032e097c28c320ee2072d5aa9582cdba70f40ee2aa58b0933896e6c27b0933268cc577ff5f6e9e6a7591b73dea4c6ee24fcc365bb7688eb786fd3d\nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 7f56c9312bee49fb2d93924c4be0ddc552ba918b292938136752bdced1074ce61b0af9f1cdea7dc572ceab2ae61510304ec9674175bf1f5fcbb78d466d1b8454f02c54d11e93153b9871842378a584722a5e85aa229a4c7a4399eb598f11bb931ea97d385a75627dd6698dd9255e77bd09d49b0453f2b2f7850dfea6f48ad7dbd64f046d656b0414da4e840059dbbebd27fb71c819a953440bd4bd7668953274cbedddf83dac7dea1422a6065cf4933beee13b7bf20c95ac07525f94ee38ead3809fc9eb8e4ae71ad57f72f7e8d6969aafbf8700c99f6363362dbeb0fd864c554f9a1d3cfeed9e8a94cad44a88427f856707c9f674aa2e2d29b075e246207bd692ef638c556ce50673823f5e0947845cee31ef97c1c92111d3121c7565cee925182c32ae3082ec1b0de1d6d85b61773f1b4a61a41f356f972e1358c71ea7bf9d984f603d3b69bfe0f0e995e38ef5f81f10c9e7d759eac65b7349a91b67105e30193c9491b137186bb834b8cd34171dd2b1cc4c5e923d9b29ef011937b9c59c8d\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\n# Longest valid message size\nct = 74b3f849a2957b53827ae1eadedf9fa29dd46c3705340afae5b18a4154efc6f2ec1705029383be4af5ce9140fdc315e8ac5d50e6537a470c0cdf0be4a66be30adef9c32e2caf8351b695c2e51ba0b1ef2dc466d0cee3c79bd95a8513f2241b3d82b8e0638d88f4b370ef17e0ac2fce14a626a34ce60b3e3f26ca01d26264ad1d577ea960c3eb57aa2f5cfe3a49f21fc081cf980fa5f433366a7fea9fc9aeff4441a86db59c8694b253d0bc35cd21332698a9358739b6a7524ee7228d89dfb0dbacc1e237b50bacf8c1d3f10586b68dd79303a37e2d0b6164f22a8f67cf0a39c4f66a4548df06353c4d2117691b1a2cff393a0ac9783d2370f52d7e6e8bd25bec8c193d1b4984bebfa72ba46c11d999094d0a5ab0a78196a6742c560291b79af6cb29a8e2504b5114411b8d83161c522c4a584b43603e47afb09500e82ed6d6a746e529742e50095ca9a8344572002881819b2cb50fa301f3b4d0a2b98c8f4e817d53dbbda8ef8487bdac3eb46ac4dda2eb7d1e9d08e782075669436bf5c094c7\nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 9\n# ps is all 0\nct = 88a6584754ad31f28a05575dd809be25231d078d1c1e46b7240c1c402645b710eb2d2bc189dbc16d82d9ad7bc5cc1df3318fc31bae54d88b25819f2b417f4da85dd11330cb8ba58bbf766bfe421af84f2b55a298ca0873fbc72317748c0437cf1416fae4bfb73a6ff973f62115d3cdc71d81a4cfb73afda00fcede7b586599efdc3aeb5e9ad6e816c0a39440629b8547163ac01340381607cbadbc93fd3e24a627a7b88d9d09dff135d22ec923af52d0dbdbe37f57956719b552ebd15803525b0d6509841fc3b35e8c564945f6ebffcbd96b4f34bcf4ff9120fce1c363dad2cefc2a83d427f47bf29968260380e47ff34e87ef9e2d9004a68641fa0ef26ae3a66a423097b16d4b82e8614cded1ebc68e7629c11eff3c9331d22adfe184bf4881691fa80d32790669d832c858c97149c47124c8ffc7fb55376546b7d9f173c51b899a156c7d4d5d8d0aa8d3b5ce2624cd24fe34fed4bd57b08a4c464f719bf67327fae5805d719276d3671b0cfdf7f05bf0772dfe1c830ff8f091ed49e73f60c8\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 10\n# ps is all 1\nct = c2459fbb04d640477c76958c8d5cb949ac552d188502553f01e6b3ec654bc70c55045b0184006936a69fc7dfd6684422c54463c8ded5be163f3392302834954c91852525e1beb096059465e6c261de5afca752cada74922debfc771bd0b99a5770f9a80d4b76e8558ea8ec6c8aa5cc28fdc3f049f5e38d99f2899d59d9b5ed6ead7581e991c56f8f6f1edf16881dcb7b29fb00a8566f0dcff5a1fa99ea2f6e4264545ec11da7762117ab938e3d906ee20c114cc35778753d96a89ca3e025efcb20215b6e983b9446e559831c4b5c06791e282d03bb303b9956bf3d90cf717e2117a45718edd2591d67dccc8405a3484c1633f0c7281d8c2605d9d2da7ccbe0d992c12c8bc54f30aadcc65ebb4fbbb27ac39571bde40631f8abd579c2c2a444b088a0bd112fb6b9ce010489e8561f6d411adb9cf2758b8874adfd0bc90eff1652f7ef9c6b810dd90a1ab591275605f9b658273d2edd513bffb5be5fd681a2b1f50d6dddc9b9b3f39d59d407d0710a712b3e6f3ac2a74c310caac45827c7ae241e\nmsg = 54657374\nresult = valid\n\n# tcId = 11\n# rsa_sslv23_padding\nct = 389edb8f7af2a7234657b851306c9f2443b9302403fea9ca9ce8b4e7a246dd2bafd4d669f34d409d04677dc5a64c42aeb834a324c9acb7f13604959422703274a686f8f39825f220173135cf4b6f32a97077f037cc7667ea02455f56891f98845be33b2e1a08062faed9ade751f5fa1b4a0d387fdf6be0db76f6525f924fec655cf8db49ff7e49a10f0facb52909bfc467b3ef4dda4ee287f681fb4678bf7f77545b7e8e168dd8202b464ffad10efe93350b6b125bd9153d9610dd3e7d9856392a9cd93ed9f77c6531e445383d0269bbff5a28524d29513f21ed2eb452456723606014c031722ec8a4768e2c17c609a337b0b9e992bdc43e6c49a20b834f8c93d7806949c32f281293393163a7ea5f83437c647dd29ef663b1c748304bdb663923b1cbc1c50ed4c1f5cef5c2f9b97d735500772dee60b5dcc2bcf925b2b815571dda26024d835dd99813ff469e5defc2a5f86da2049924ada57d2d811acdba5f8c0f7513b9fae73a5856de97fe8cc2471a06284075dcf00d3fb57a938c7dccbb\nmsg = 54657374\nresult = valid\n\n# tcId = 12\n# byte 0 of ps is 0\nct = d723aaad7aed7fe22277d057c70113531122781e8e46cecd035a9d26e980a771653d780cbb21d70db01aadc4a8b13b51380cc015326f5655e4acd5fb8e6175999efea729f0e1ddeb0369aace87d73d2d6c97edf3e65ac51a4b0edd0ff0bf10215cbf084ee7b463042f440b164e1e0d725651c2d79ae8e853bda5a0c656fb6999560b0734ad2f831d35b864e9ceda47dec6f6a675d33bf9412fde2432fa3aaf4a3278005f70838e7ea045097eee942e93c23f1bcc67bf383d47b8c98c7f7fbad6472745245266657de351cbf7b268e093bfd3eaf75c00da99873884f5c048a50348f99554c6a4c2f5e87f4c791764a09aa7e87a8f6e706cd18a6435b756f448fd903990e3b8edfd88a511eae5facdbf0db75ff279bb648b21517de4d306131552011c218ad28eb8e650424582b4ff49b47545f95101f6e0c100c795ebafac15a386a40200433f023d633b45c5b16a0727bf56488934a6328a352793a39d3b1d77b1a670ef6d02c76cd16e056740be323de03dd09d2ba30c913f289d312dd5925e\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 13\n# byte 1 of ps is 0\nct = 5b68c3c463fd8ffeda06c09fddccbc5284017f753ff81e1db255ecc8c32b7c11e7f92ddc170fd578f6d0e8218acd1b04bbf5bf540c1167984dc63abbc5799284a7c28a20ce4f6b95e142571f57198a6b0bb9488f455fbea076e520853b92e848bd", + "1d29bb0581b6b5eb56ce839fc1c1afde7815d075f5da520443fe6d5d4d03ffaa029736d703457cb73e3769f6d9b70bb22d340886e088ae8356501b58ae6b6167bb0a29b9065305ac7228a07279a2f9787742991cb9c136ba53c569615a74f323526165ba73c340b041b97bb13c129bfeae795cca3dac7a1dcb30874c1b298056bf231f5bdb6419f5eb436ffc1f3101dae12428ee5ed02a4e72a4e7db60caf26b7fa4dcd4e8d0e663ce66569364d058db26c29588011543fc8c72995d325235eb4d3a6f85e1d74ab16cb3166409d3aca165c81746d4c956ebf8fb5b7b31bc31c8a0509cf068794ab0bd687dc1ed84ea6b17e7f98d235e7541bfa6e64916cb02f6c2892c56787c1ba490bcdfd7000f529c48608c2efd6240ed7e84fc1b04f0cc\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 14\n# byte 7 of ps is 0\nct = 01af89a4d37a04280b78628261964cd3fe67d062b74c35e851f68b9f8faf7454a22df1c84c64f625515b16b90d298d1123c3010d845b86c7bbe516e4434f1feaf3d83829d6658d5128069bf4a3fd5e0870903ac313f743b9c7a8f3a7ea4e9f72f5b8774046980bdc1a1af025337567bddf436ed9b739a7305dcbf76ed4d7085183a84bb298a262241ca5811113b60e211626adb2c20fdfd80d1bf76e763fb3eb7f2a0eebc565218808fe0f8b0351516773f4ef822693169a3f1c31c12ffbf53d583b1598125707ced9b6636acd2a66651eb3e94bd21055b13d4d6509bbfb01f9cf449f84397b448a7a761a878195a4a96f6ae1043b947e224325b5262145abf8b2daa65544ea8d56bf33cf9af7be8e0c8f20eac6dda208f45d068d4ffff279bb0f87ce8ed1562fdad32e89819f6d86bbdd46c175214514b2801ffae449029ab0987dd2ae49a619e6717abbc2395cbd02b2b0ee4023dc858e10fb08af579720a51b7aa51e5b366b5503563c271c485056153efc362515929ed6173a4fdcfcb0fd\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 15\n# ps truncated\nct = 700d40cfb0981f7b86260e36712a463d2d2faf1f9da3bf762c3f993371b441d9e3747f126dfe2ca3b6d538a2c53147e7bae60b6405238f0d76cff5f420f8b641ccbbe9db0f0b2eaac87335ce99ce8a2eec1bec4d569fe81cd580f6490e3ae27209c1d022de5fdd02eac36f674d664c75bbfab5020afc8fce701b6769de63eeb7c72ac0e428a3d88f071e68f377c79d5624481213ed8bf42d5f56a3a00b170c63f064cc61d8966ccf2ca5983d7d1b56f4e81e379e57aa8aaf59a05946c1c24aebef5eee5a97b4d6ce8796b2e731e9b31d3633524cd526c30fc921cf927ec392f95116c121c4599a9e180a9bc963d01cb3977e2d5f72747e5c1d839a515802a7c26529fa487ca5954bf137fecd5e46f301c54e8227c89f4ab766eb9b5f9d9a1d96a0a482c2415ec9bbcb5613a1d239add7fb99f24a4867a85a8e29ba668c7c1b5948d79b2f412998422bc35457bd05a4e5373ec671a88bc15eb7a4fab7394e38541fe8d4d2dbc7094be069933added250dafd8091dcc53ba08301e64d49a4960c9\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 16\n# ps missing\nct = 5a76259027089edb019b04788cb702e5e06b13b9826d57351694d20f5984badd4960bdc49b900c903255ffc689676044ce0990447fa4c674e780b24c142e39d157bd649995c23209b697f444a8d14f96033707c636c312b019783b1985dbae4b1558a9ce257fcc6a197edb6624c309bd3b2bc41898f370a0f94cd9531bf15f635d1ff5895654358db4e56c211a732a237cf9792b84096d747f41159ef8529324f5901d28549c726cdd12b9f60fd110a18b2ee2007abf99e0d126b57e8d92371091ea3fe289831097ee0b97b11edd36a5e382d3360ba33059375248e6e8a873b5e7d1382c430dd8ab68d93ba151680ff08c23159c7375bb455a9f73cbfec427305b378c4ba45f2080803a83d00aa058994b6cd3429653a3bdfade0b58221f94bf4c132888a595cc73ab6a705299e10f65297dc6e70f8c7623312f7205cfaba759a9663954ca3cd4390e7be33e0ecb9d3a5493c0329e6c07d048c93ff285d28e338db5595c5dfd6d31e920e49427c0623c01d498bec7ea2f1977a3d6a1ed7943f0\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 17\n# Block type = 0\nct = 0946361acb9a12452e370d04abbb2f64de0651ce5d6e813b4d256476003cfb170048284425c150dd9430dd53a2ca6fb8e86f1375ebabe86603af28b3561fc7df1cfa22fdd5d92018dcc4e208ec75723d55706351d00c8ab8017d703a0ed1eb5ad4772ce0abfe976d5c8c1e2b238ac50e9c7bf7871bab2362543312f24141ce3e0ff5fe2cdbcd8d36596189a504e16e09e617ecfe3d553ab36d529d885608cb4c3648b763b173a9f3b003e8a97bb9e8a0a19c5edff9f0cf585c0abb60af2545444df8789a747da21def80f287a3d54c0c5b50e114e2b1c17206011fc5fe9ad783b375044c442daef1b7c789cbe846809cd8eca17c1576060c1ff702e8b3d908e57be8c23a1a0984cc512937c3e3709f2f4ee82401db017d2a362af38f4e6629b70cba25cae45ef4f7a3d1c66c3ac7ceaf95b54638f8823b6ec510293f1d7221c2524f3b9011be4fc017ce600f6d0f77b271bfbd2325ed58e5975c41dbbcdf752e8c1bc40a096af1ccf5016b77229a4b081fa771f249695da0bf14e7be770ee010\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 18\n# Block type = 1\nct = 849eb249b9b5904f726cb7db324f5579d331895bd3ce5138edaa2d283360feda0bd3ebd97468ba98f3a5060ebfee43e495bf75db592f816bb9297fd1bd260d6f8ff79ddaee1100e013f13e4812caa3a8db290b4ae7dcb34701a2decf9834c53a0f6a5faee7cacfb11d017516aba150619021621d6aacd2612577802a52c88c119363358fe96c67ac5b3fc25c6ba28d8e6efe5f2b3305d686c58dfa3417a40134327885a302f59e9d81b5ec46127c391b5fb1a12d9776ee2190cc20248a4beae4c46e4b58130fbc3b805935a00df588845eee7956990d163c91b384d0db2bb66fed9eae58f15d3f39588e75ef79c8dbc60a87e4470ed2f48a48d62e2030ccbdadea0dc5cf75b21a8163dc2391bdc7d0b7999263b70346b02152020ca6160297797393be3a51944dc2666d829302eb9e1829fbaafefbec28710d58a0eab63ee49a5d1f0c2ea49b73f331ab27170fec368dc2473d1dc0ba7bf7b70b7ecae315e67b323ce267d5fa6b9fc83b20783ae20d755127b5654272b76c88fa362960f66466\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 19\n# Block type = 0xff\nct = 99aea15afde0b40c12960cce598c11d618b3e4a0502eb9764cc114eed704113f0d13d9c1181324c18669f6385b5f6b1e0eff715769e5b3236a53d7638b1b27fe1b6bf2089e97e0bf6b587ff2ee42c708ac45ebfea88d057b6fddb6af2f8ba0d0ee5da9366961ac098c0b8349683aaa5dbc789ef0a49737b059bdc1936ebbc03a00330b84606dd9e0aed5e2c51f9e336ae9f19c225477f1edf87e463e4d0d80cf6c85f8142cf6e9b33b83b9f4d0e62540ba4b3f73a8b3b6b9ed0728ffd97e2332131c6625578eced873f96e1a84e1f22c1ada6d8bae41e0f63f284d28e9198b4f047f9664f33db978e5d7843b2891fc5006b25a17cb8418c7cb17abc7c8235b9fc5c2acbe17febd87e3b758b1e0fa783117e738219bee41b29c2b64ec23c413f00cce03bb23652a7174fd299dcd68e3b5521a0b22f89cbbbd021fbb8723f5020e2e7205bb071dd792c6c5ab293f8ce1c5b837b6a8966a9560a38d52dd6518e636b69ffbb43035eba80531cd1077d7d1646cd1a458cbd4e88a42ea2ab62906f2dd\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 20\n# First byte is not zero\nct = a225db92d6853b708dd72cbfd081c06ce3d6c4579def7e6bd8b45090cc0b9f51d4217d3275402d5ec90be82e920cef6f9bfaeae58ac461a61b3cf568186c6fa2f3a14db4d349e55cdfe5633a530bb6178ab1c7d126686d3297c4871f19e065f1fec05b85b72b675d58836dd2f741c593719d8bd65d74b9c61ab771464766324338e9b3bd3c05fde9027f2f2746d806c3f8e3b41b93a2e45f276af2df8886948d9b4f1a4f7e67f2ad7ca03ccb2275850982e7723017639d51c0f09138f19449ff344c1caaeb72ca8607f6012b8fa6f7924ef0b6e516a79b02cd2219b03421ba25e7af6272f57d118e165da759af7b64b18e60b9597d1ca41a49da64caf8f9788dfbd67b5b68fca5fbb3d42e045328739d079596cf63ebe83c39041490d7961ebbd2c4729059b4e01d180e4b34d69fab70832dcf698225887377c615affc0df708dea84511b44905711e68a1dd3c0c6247f35c998299b82f1511168a79f40f50f7576eb4c963e00576cec70dc0c3016793c44aa9c8d9f7c9d34907523613d4bd84\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 21\n# First byte is not zero\nct = 85421977730b0f2ca7ac9e69328c09853d07e68f0c12396011a88e1b3d0d8675c723c3c7818b1b3ba6e46d1902eddcf05eab8f2f964e5b17e9bf0235c118336a25dc99469b6be3b939090279f0435f28e7b813444b1eb63a67aca79153c67addb59e1329c1faa7bf9c92870169afad12198dd0954fe581749137e63dceaa0151a4ca2e4157248458ac4d999dea03deffb079f01b7bb64d5e3f0f7e53817fd5af4d11c4768ee2a5b184925d0924ce5b8143d902768478439627e13ff2ef8554c322961b0d3070abda2b0821b53053228f63f81a634fc32cb909b7cd14cefa5208348c0044262ee4157d330cdfa1391471853554ebebeecd74a58c51d8d4dd433327a2b8bb6e2a29f986c6ec0b6cbe86706f8aa7f89b6287d818ef770f69e48d0266abde3f94fad09cc6f7bac45740247a03b7dd7aa6cc2b710e1fbf74d7d914c9588877e8e52ecc3eb8e5cd5b9c772a1aa3acbd2ce86168451dea1f539fb740fa4fd966bc7d124b098ee4dbcb86ec326a54665752a9050f80b90ac34dd51f1f11\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 22\n# signature padding\nct = 509c69e802c2ab812fea8c77f89dd321c0edfd279b200e93aaf46591886148722b06584fc8745e938d069cd4c100f07c48c2f81b7f94d47f835244bdf9c9eb08af688ff6908ea2b6b938b9265fbee0f421a35086223380a9925b3570b3c0eaebc37b9bc18db3271e7dc62850ef17cce8ce17d68dd81dbee566f4a585da87d4f02158f80b7ecebd0687acd6dc52a334ecaacd67895720766ce54ca6a3872ebf90f3c9b894a0f44c0e1a83d226807faf67144fa59b3a21cc33339d2bf9249ca5018b96ef837c3fad08e325c7d31c9ea2fa1fe4b7dcd36b1fe7c95530787423708a80044a745dca51ef448fa953e27353308a10d431c01b688cc2002614fdf60efc7f8e969b3b84caa04ac8305ce87586b0d1a01f016ab6eb5a970766201166d16b42d0829e811d258", + "8e045f8e9fec785d994485d2dc327aa4690fae2065fd105048acc84d729f125f3bcbfb551b6747144b81c754974719ffa4cfb55ef9c8b74b157e1bc61c19aa6002d349e544245ca715cb964f0be1855229a9a6e9e6ea20e63\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 23\n# no zero after padding\nct = 9ac9da6b29f1de8599fe88bdb7012cb0ce4817fbcacc39b273c557bb22d2c019b8c5cd5592e108334d572d8782eaa970122801e0741a3effea028b0911bd1a0c7228529e8ae534d8c0fa1019329dd5e0de1456020db9241298c26aa510e97e31045941a9c66d53be407a2eea5fc26bbbb1aa16c89b087480242d5fb78adf083ca9a40dd569cdd829bcfaf652737d03f5ed6e39d970d69cf66809aa9ff2ba89d720be50989faf066db7012151944964c5bca13594242900bf595166b4bb8f0a7aad66cfdd579f2596d384e8ba02b06039816f940b2e4b291d6cc63b28aa13bf128faa012cd26af43a5d4e02ed06e982e052c27ad49d18e3afbc3f2cf99564a91f7a053d447565b77c7200340217ff62b342246543a8907cb4f1d05b5b68627fea24e3a571eadaa97c683c99ce3a4a753e8cfa18b5208750d9f86c83d51641c02769d28ec9cbdd34eb67af5043d50dfe45f1f6bd0e0f45e4665951977b4208cd76095b443fe881dc9e247ed961cdf0205fa8aade1f42d88dccf975194ee0936972\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 24\n# no padding\nct = 50e974b2bfca623edd2d797e4e588de22478d5a8e57c74c448449853ba84fb1d0073c1cec06211438575a6dbaf893e1547e4a2478a44549914bc3a9b8a88a5bcc800f6fc095c71ac129c2cc35c7cf16d891b8a435a3d4415262a8fb9f3c82caa788900e4e31968699029a73b7e14507fc324281fa88e7f9ab9ea45e4093004cb537471d18a68c8d83001bb874e06d78a9e6f1e13268d47608a85a13bc69d14f5c171ebc656fb5179688ec498204e5d2993d90b79640c454257c395d35793c4a7e8e875cfe7099b1716345e83aefbd1cb6e33fdcfdeee5141d0e687bd163a0f4b3f3657aa04f5e8c6b499aedfc67a875bc1825eca29a95989744d590bffb1aeea8a8518e4d21262535b727a72a1529159f11cac110158f54d21f9471f8dc6d262e9aeb7d060a62f0070f49c0258ea4fcccc7e5fd6ab3bc743f90f8779c541fac2aa7b3c9829597725b87c89056cef502c8618f14e27e13815355f3cb4dc16cc96136625c09234fd8299d2cf38d39da37fa1c756636bfd576e7de0f26a108030b5\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 25\n# m = 2\nct = ab957d59865513c059a7ae6914b34e8e3e4ab96cb66069e014aa315e67b2addae2b3b7593debe8c1a3d8fe34c981aeb241d63cc850f6d629c254710eeed8acc9064297b019387a67bdd1a60878c600e2d2b2c8ed3c2ecc3bc4319fbf3c1b89193a5da26794252b1e031b548f1c0dd6bd8b467b2a52aca2486ec213a77c2708dffcafc60c0b0daa9dc79bd8b03461e852b060c47564cd69e4df71a3ee44d11767fb3f1c30e7b86cc0c314c0e36a2f3c9de954e7fad277960158147fafeb2beb617ae13b22deb65ea83359f43ef3fc16db4e6723bc52b92ad06810af71c3d4f8c0bbf991205e63b5b187c8a5fc38395f19df7ff7d578ae11b8cef50499281b2c973bc87305c9db9943eb139478b48426a88ba6d6cfb4e544f102ea0370e6dadefe18285778bdd0c0eb5bee45617066927589bcd0caff79c28a88fbe792a1237c1a074a42381e961fafc5181f72463f77dda4539a2359a72f1c1d0b905196f4e7edb8d0d95761a1d4e8dc71146c7cefa0775c405f3faaf59e8d9cedbccabf1874bf\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 26\n# m = n-2\nct = 30f9fb26e0d9f9397c8e693f90d88e98dbc5e24123af3e46e4a1591aed7408c9b7cc9ef38ccea1d2edd03770755cff6b58a5179b88ec19151e7a0af06e72bfb8417328c3a9b9a5e99f81774d2aa086c40b896b8a200048dd568f07839b18990f8e7b6e96d797791b5080f3cecfbdfa3083053307225715f47fbeed04ff8d4f946b1bfe2b313e2f91265beb65fd8320d005203147834fbacd295918e4928eb881a4369862f843efdb167c3718d1c3b345a9a9e2e89cc6b8f2ed579badfe70dbe39c526dedd7ccecb9b8cf330ea46fcc99ddcde757506eafeba0cf1ff3a174a211b28ba32604daf8010f44035f973291461e3c32aacacac5b0b6b21a6dd0ee4d62c32ea3bda0ca8c60704b597c53a17e9611ed5ee287c574f4c363358c539b9f1a42af1b04b04538fe5ec4aeb6dcfdf4f3d3fcd19e8ced68a3f93829494dfa17e4397f911fd009a7cfbf85c1a11db60bd1e87bb75e7073bc782f3694c5344b36a750530b66267265113422b30905d04134fd53080755c0a4b59cf2678856bffb0c\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 27\n# c = 0\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 28\n# c = 1\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 29\n# c = n-1\nct = dc8f7880672f0cf9d63617a8a58bdd271a109badda0fa826f94b8a795526b6a49a80564ccaba8a9491a935a53edeae1d9a7b5463d9e2ef3ee0ce7bff5d4b6c8147b5c073c2f220515d531d55a36687a6de3c34775c2f15191ac0a742d7342228c8d910fe6bbca439539c485debcbd0ee0e4bae317503b83cee8100ac7bb4587467cbc4373c4bda2eedf7c41631e50922b580f5bce81d24b208cabcd2d75fcfe99f75b493dffc5c9bd990f7fc3bf2efe392fecae36f3e4ef4456c1b5de99cc7451733a910b6834b61ec29274d986be3752c350b13a327dabc08dfcf6565499ad26e853446633eadb2970ca95bcf6bf05ffdbc2a804378d76985a71f06f90979f9fef716c36aa625a45b5eedf50825a53e9d9435b23caab9e5c64d38fd3a767e185ad7727d6e15f9e9bab2f4184d6487695db9a2698c672b2e823410dbef1d93fe40c9d357ee9fc77f849de11363f583af8ccf5181ca1aeb944c422516cb401e950923e4bd881439fa1093c77582bfe1ac5993674700b6434339e0245315d86fca\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 30\n# ciphertext is empty\nct = \nmsg = 54657374\nresult = invalid\n\n# tcId = 31\n# prepended bytes to ciphertext\nct = 000063b63f6eb3fd2322a6c85ed16318932e83f32535b3ec2527fb41dcc865bc44690554467655034ad33aa0fa993788e80654ab0e0174f8dd238ad68c3bc194f390dd38d26408778774848c49a6a606e7fb1b3bfbf5f19db4d4d1ba2db43fefb9a9bac311f2e1fc1ab4f5ddc00a009b9dc435448f250a648b206fe764505805c9bed1729d5bfeaa4fddafc115d281703fab0e79726d5546fa698a45ca6e5e561b8c2964b2da01914f808a498ab77672eda3432ed9974f0a06d320ff87a4222899f893a6cb6abf13d7e56cce2ee7eae67fc26f2274b63ce8301c721d7195158b6c966b8d36e3cff0aec6f218b0fa6d8490493471ee0f08b840b6cdcbb73a164246864de0f35565bbebe51585819e42a425090479537ed67f98236415e6ad3ca81116beb91db802dfb3f9da733f86cb6fa90904c8a382afcbf6162f0d89ee04973f2d26659325f7f00a4ae9e800de6aa27b6c94b9d57791658eb0714b7cba5466ecfe44bd5803647c3825b58c37187311a8b11399f53a877c265da82493a90869e376\nmsg = 54657374\nresult = invalid\n\n# tcId = 32\n# appended bytes to ciphertext\nct = 63b63f6eb3fd2322a6c85ed16318932e83f32535b3ec2527fb41dcc865bc44690554467655034ad33aa0fa993788e80654ab0e0174f8dd238ad68c3bc194f390dd38d26408778774848c49a6a606e7fb1b3bfbf5f19db4d4d1ba2db43fefb9a9bac311f2e1fc1ab4f5ddc00a009b9dc435448f250a648b206fe764505805c9bed1729d5bfeaa4fddafc115d281703fab0e79726d5546fa698a45ca6e5e561b8c2964b2da01914f808a498ab77672eda3432ed9974f0a06d320ff87a4222899f893a6cb6abf13d7e56cce2ee7eae67fc26f2274b63ce8301c721d7195158b6c966b8d36e3cff0aec6f218b0fa6d8490493471ee0f08b840b6cdcbb73a164246864de0f35565bbebe51585819e42a425090479537ed67f98236415e6ad3ca81116beb91db802dfb3f9da733f86cb6fa90904c8a382afcbf6162f0d89ee04973f2d26659325f7f00a4ae9e800de6aa27b6c94b9d57791658eb0714b7cba5466ecfe44bd5803647c3825b58c37187311a8b11399f53a877c265da82493a90869e3760000\nmsg = 54657374\nresult = invalid\n\n# tcId = 33\n# truncated ciphertext\nct = b63f6eb3fd2322a6c85ed16318932e83f32535b3ec2527fb41dcc865bc44690554467655034ad33aa0fa993788e80654ab0e0174f8dd238ad68c3bc19", + "4f390dd38d26408778774848c49a6a606e7fb1b3bfbf5f19db4d4d1ba2db43fefb9a9bac311f2e1fc1ab4f5ddc00a009b9dc435448f250a648b206fe764505805c9bed1729d5bfeaa4fddafc115d281703fab0e79726d5546fa698a45ca6e5e561b8c2964b2da01914f808a498ab77672eda3432ed9974f0a06d320ff87a4222899f893a6cb6abf13d7e56cce2ee7eae67fc26f2274b63ce8301c721d7195158b6c966b8d36e3cff0aec6f218b0fa6d8490493471ee0f08b840b6cdcbb73a164246864de0f35565bbebe51585819e42a425090479537ed67f98236415e6ad3ca81116beb91db802dfb3f9da733f86cb6fa90904c8a382afcbf6162f0d89ee04973f2d26659325f7f00a4ae9e800de6aa27b6c94b9d57791658eb0714b7cba5466ecfe44bd5803647c3825b58c37187311a8b11399f53a877c265da82493a90869e376\nmsg = 54657374\nresult = invalid\n\n[d = 02ab95175be18395f033b981f8643ea816079d3a5f2f68e6b2f04bbacd65d659956ea22380c5b05e084d30d212876391c3228fa936d2fb1e6b42fda0fde10580d0712501fc0fac0a6fee999638b22c91041b0df8892684c78a628d8665916575130132566c1a40ecd7c9218b2d313a513934aa5eba95ca9ab4596e3a850c3253477cac7ffc338f5a5b34aa5b7773d5681dd2854c5d719a9f0d03162cff4b60246d48de48f0c26edd9d0f0dc1795c841176f3bcdd402a030f97684e87a4507bc8bd463eab49945ca8ccdebca2b4c5c8b15db40fcb12534cefd76c130e95c5806a1ca3fb4359477780f437877813ec9f1f2415f16b2268155a399213252d0b8837b775e4a2223012b20c767c794a4104411684590ae7bf7e4227949d59d94cbf85746d2fa69083986591e9b0af51080ab7c1f4bef0d96fabb7318e64a03a93ae62f52fc941ba3a1eb2bcbceede593dcd6c4af0459fb77ab90f76ead70dbfb7249b17d62b740e2aa436f299fdb94071aa1518e97ca6ba00f0148afcf316ddd507d1]\n[e = 010001]\n[keysize = 3072]\n[n = 00d91f0d00f1aab580e2ac0e837638de7004fc968be21315a1ef2a234969045dd4bc1945eb53982eeb3fe97ce84a26c7d464784ff7e561cee570e26d4145e14ffcce70430ef32facd19e80ccce8a9b6604065ff1e50a7fa8fdd432ca4e7b2b858c88a96626e3a10a831596f91c2f22c83e1a0267fc7df121d3337f3b0fa6a8c606ed9031c1f83b9213dea832dc5dcae9c03b47809953d75d966f35bcb10fffd23345a6ee2714c388972980938ad6123d9c97916920b9412ee1a84e1d345b83866e2b3b02127384681aca038401a39bab5e4672d6493cd4a293b933252e3fc06d8e4348f0e16b99ae58f7972b43bb6a7a04295d112ee509fafaae39de6d064f622c3f3c8b4fce6d836730c1285d90c548db62b795964794eaf143ad427360a2e83f5b1f8a20b08d18cdbd474f21c1bf42e6f1e137890df92888d83cc405975597209b7a09f4dc999fab82d4ebd77e0d66bd89d83fa564a03e3560977fb4e0fba7a0339f9221dc0c99402581cb95472a6c11b6e80e91059fbc14470b7a68d8e50e53]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100d91f0d00f1aab580e2ac0e837638de7004fc968be21315a1ef2a234969045dd4bc1945eb53982eeb3fe97ce84a26c7d464784ff7e561cee570e26d4145e14ffcce70430ef32facd19e80ccce8a9b6604065ff1e50a7fa8fdd432ca4e7b2b858c88a96626e3a10a831596f91c2f22c83e1a0267fc7df121d3337f3b0fa6a8c606ed9031c1f83b9213dea832dc5dcae9c03b47809953d75d966f35bcb10fffd23345a6ee2714c388972980938ad6123d9c97916920b9412ee1a84e1d345b83866e2b3b02127384681aca038401a39bab5e4672d6493cd4a293b933252e3fc06d8e4348f0e16b99ae58f7972b43bb6a7a04295d112ee509fafaae39de6d064f622c3f3c8b4fce6d836730c1285d90c548db62b795964794eaf143ad427360a2e83f5b1f8a20b08d18cdbd474f21c1bf42e6f1e137890df92888d83cc405975597209b7a09f4dc999fab82d4ebd77e0d66bd89d83fa564a03e3560977fb4e0fba7a0339f9221dc0c99402581cb95472a6c11b6e80e91059fbc14470b7a68d8e50e5302030100010282018002ab95175be18395f033b981f8643ea816079d3a5f2f68e6b2f04bbacd65d659956ea22380c5b05e084d30d212876391c3228fa936d2fb1e6b42fda0fde10580d0712501fc0fac0a6fee999638b22c91041b0df8892684c78a628d8665916575130132566c1a40ecd7c9218b2d313a513934aa5eba95ca9ab4596e3a850c3253477cac7ffc338f5a5b34aa5b7773d5681dd2854c5d719a9f0d03162cff4b60246d48de48f0c26edd9d0f0dc1795c841176f3bcdd402a030f97684e87a4507bc8bd463eab49945ca8ccdebca2b4c5c8b15db40fcb12534cefd76c130e95c5806a1ca3fb4359477780f437877813ec9f1f2415f16b2268155a399213252d0b8837b775e4a2223012b20c767c794a4104411684590ae7bf7e4227949d59d94cbf85746d2fa69083986591e9b0af51080ab7c1f4bef0d96fabb7318e64a03a93ae62f52fc941ba3a1eb2bcbceede593dcd6c4af0459fb77ab90f76ead70dbfb7249b17d62b740e2aa436f299fdb94071aa1518e97ca6ba00f0148afcf316ddd507d10281c100f261bfc097786e1c34d123c19cd0d0b6cc65bef52720c8a003892b0e74611888099ab96c032a078b77e000be90d5b98fb8e4083cd9326adad050ec6cb92f55b5bf8066b1065e3fbfd133eecdacb75cceba6673d2184ba9a0a95833fb7e0c27c607777947eacfe702ddceedf16a65fe978ab5355207808fa2a590f1733b99d9164962ed5cf98b478cd0288ff161943ad1a3fdd13535c752f622cf8e0c5c3ba43abbbaf901dc457faf11e09222473aef53d176061fa3a70741bab8d540a959e1c70281c100e551f8c7ef3718c07aa9f5127a3fe8439e70fba743524267355f8095af64fd7c0b4756cc43555bb6157a488046f1cc9988e71694164116b250283dd50b7894a456918d6cf8e83bfe085abe65bbefe791cfe178654891ab82d66f70c85a757573a051039605363c38ab9dab31110a93c73fa09b6f71068633ed8fd077ee805c02d559090e346a28d7186a6b5f6804b65f655b34a2a6c46b81501b2b47154ceefe6b6c20fe73cdf764fc768f724faf2948b270e6b5251871046476d4390b5e2f150281c075c5914a9f4ee111cb88237b9c1aca8f47d9d8637e53aba8348f9de0342449ab301f82213d985a7a26112dcb6accae916b2141ef6f09d469e5f6ac2a5800ec0097c068257416af9b20a7bf4d28b31fe143292cf5d4e04ed7c5f119b1059a1a695a8f6edac6f9a621fa6ce5a8fc2dfafadf6715357a77b9532a67b72a6ab7628835b85fe5614b8fc498105d80c80d225762fb9d7fe155acb5f44c2d954beb9eecfaf2eab340b8744638c589bc262838c9dd691fa897f83cca6f54082a971f19590281c0119d4c48bf3d322f86bc8b5092075aa5e703b2b0d460fb2cc652c1a3bdc73a194f1c79b452efb98db0f4a5a104d209ef392ed6f3250a76ddd77e5fd17f821198d5f574318ca4fa06b749911a6b67301869295e801924e751b37af7e4cbddfdd995d4e33ba0c6dbb556a953beff1a1ae3d1255b0b225967f1912bdccd798a6e86e130679ba9b705d00fd60ccd55461764187afafe0b654704b5cc80748354577f3f6d1cd3aebd816546672cf990d9598875fc6a1c3bef36af29b05ef8cac0bf490281c100999fd604b8158fb941618917240546c32a734ca8b4877d9cef9743887cd34a1d889a0beff8ae1bc304061eb39d569af5fe0b2646b6d1ad7dac7a379ec695a8e9ccb44ce4f1c1178cf2abd741afcfbac9f2f8b7493820677347bdf08c16b481fb14d2a357823bb6faf2b3732830ff27be7ebec8e6a325ccf1e8c24a529bb5749821fdeda8b25528fda0e473fbc5161b764b848135989c2bd49914bb6d24484c81821bc30aa1c4a702b22f144cb2f7c359c1a68d7559c00f805a17cee23d283d19]\n\n# tcId = 34\n# edge case for ciphertext\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\nmsg = f6c9e9ebc6411ade891754e4b24fe5841b26c5a769c13911cc0e010aafb32863eaae62bdc8cb37e807524f72270fc728ad1c01f0c91c9b604aa631682f9d15b235ee5ed7b852323e4f64074e4744239bac907bd92afcf6e5d67256daa18695475d7d2d1e695cddaeb65c41c06293f3e29c1514b169c5afde727b852e7c9bb14f8de3ab62727dcb35a385bc0f5edd1d76322a94e539584efbfc719fcc53d8c645923ee92f425fbf01817c6db34707a602533575a620cf3eb02c7d50059ddc778b52138bd7bf3c79bab39eb4d4ad74404a11cac5f12ba5a1d557e18ac58070c352763b7d3055d7ac7e50259121aa635cfcd988a874e4ffc863079f5721ae359f43b2e6a2f86eddf2e9ce89579fd7e87371507612533e4464f5c095e7fcc330d5324c52b98532df6ffb0580f7f5b5d803f60259495535d9528edc704d0cad645418b30e1dbd410b8b06dfce03840aa03702173e6fb0d15b6abba1d13c9d113f4869e81898c6f285\nresult = valid\n\n[d = 7298f203e9e0322dd73c05dd52dab6fce5cf2803df599f83b016602cd1ab2ae92d6fc7b8f78c224d4c8f93668618c1af6ff076664b0eb9521e0306dbfc9f8ce6d289c84b91a3156a63a9b495f9782dadf2d4e5555dc51cf6f23c780258b3c1651c2d44ba656c09111bcf0409bb47afcf81ab0f43750de3aebdb8d92c2e253972e69c57a116ce2c8afc0cb208750e0e67166f31e4225c786772b66ebf91edb08052d13fc51c8e0a31cf4356f0f380aac1dab21c7d317b16bf3d4825cacd27d34202daf0d765f51e9428005c35ca6be9eefce0b0c9e741a6e6528802f81dd085754c74120f29ce957c66601cd106479cc5619d07e694ef4dd442ad3770d0dcec7c51780359ecc66439fe5bb5b447cca7edbbbece669b677d006546efa3f5698de7f3c881713a5ad36827f2b866b3bbe60b0a5d85d42aef2c8fc3c792f71b4785f5fc1bceba52d554d32038aa77dffbc5b1dd3decbea1b97842df5c4851df98f9dd876c0c31076b3661a65546c690edd32849a4abc17a2069cafe44a02afa819c", + "11]\n[e = 010001]\n[keysize = 3072]\n[n = 00ae053938e260b5ecdc62a38258e789694ad29c11a621c1a760ce3c1247d223bc0c70421b72923d3328f82e8a683a39656e02325d537707104ee5f70c957fe88037559c7352d582f7f9921349b82b090a683fa2dcb37be7d2a1323b24d0f9617c902169a436c088a63612f4ef96c1a70b26037e4cf8b645ff6a48195eb99f740f6c39a546fe3a5d2e913acba146fe590795ee5f78f8f1e319add255aa5fc4cada23d0227d2f330a6d5160b626f33b9457c62154cea5ec48cebb4592c1763bf5c4755bf3494f1ca87d0ce787b46046f7e4d17accad72e8e11f6cc71e3844af11949fe28e68dc26e15a928d79da82cacb959cae7e3d3c0ca94de0078552615d84f4f716927300e2b8058857167d785f8e6b3391f0708c365d112871107b689bc7258fa7359668d20f2b6cb8ebb4c8935f3e376e9bdd9fa2911db272d951c4304509eec02b95e83d2ca029fb7132dbc9bddb72d72d728a775399bb368036f0df6970cdc87151dba1b9f6e3d56665d85e4c33fdaef3a2f4d9180728fc3cb1c76bf833]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100ae053938e260b5ecdc62a38258e789694ad29c11a621c1a760ce3c1247d223bc0c70421b72923d3328f82e8a683a39656e02325d537707104ee5f70c957fe88037559c7352d582f7f9921349b82b090a683fa2dcb37be7d2a1323b24d0f9617c902169a436c088a63612f4ef96c1a70b26037e4cf8b645ff6a48195eb99f740f6c39a546fe3a5d2e913acba146fe590795ee5f78f8f1e319add255aa5fc4cada23d0227d2f330a6d5160b626f33b9457c62154cea5ec48cebb4592c1763bf5c4755bf3494f1ca87d0ce787b46046f7e4d17accad72e8e11f6cc71e3844af11949fe28e68dc26e15a928d79da82cacb959cae7e3d3c0ca94de0078552615d84f4f716927300e2b8058857167d785f8e6b3391f0708c365d112871107b689bc7258fa7359668d20f2b6cb8ebb4c8935f3e376e9bdd9fa2911db272d951c4304509eec02b95e83d2ca029fb7132dbc9bddb72d72d728a775399bb368036f0df6970cdc87151dba1b9f6e3d56665d85e4c33fdaef3a2f4d9180728fc3cb1c76bf8330203010001028201807298f203e9e0322dd73c05dd52dab6fce5cf2803df599f83b016602cd1ab2ae92d6fc7b8f78c224d4c8f93668618c1af6ff076664b0eb9521e0306dbfc9f8ce6d289c84b91a3156a63a9b495f9782dadf2d4e5555dc51cf6f23c780258b3c1651c2d44ba656c09111bcf0409bb47afcf81ab0f43750de3aebdb8d92c2e253972e69c57a116ce2c8afc0cb208750e0e67166f31e4225c786772b66ebf91edb08052d13fc51c8e0a31cf4356f0f380aac1dab21c7d317b16bf3d4825cacd27d34202daf0d765f51e9428005c35ca6be9eefce0b0c9e741a6e6528802f81dd085754c74120f29ce957c66601cd106479cc5619d07e694ef4dd442ad3770d0dcec7c51780359ecc66439fe5bb5b447cca7edbbbece669b677d006546efa3f5698de7f3c881713a5ad36827f2b866b3bbe60b0a5d85d42aef2c8fc3c792f71b4785f5fc1bceba52d554d32038aa77dffbc5b1dd3decbea1b97842df5c4851df98f9dd876c0c31076b3661a65546c690edd32849a4abc17a2069cafe44a02afa819c110281c100ee200c32d0bfef31c28d577c684d54cdd4d5f1cef53bf7ea5fe3d82b8cead3467192d99c38c64a7caa822070075c67ffcf2b85b6234b858d6f54398c8d689d3f0577e7c99d8ea50fa16126918eaad875614d27a3f0af6a43195ac2fab8cbd69cf2c0e1d2b599451b01beac53dadd0e44a18657b1ed5ecb528de4f2693df924566e72b1d0a34c1c31e254bec69d374e9d0c0bc3fb3f1837d7cb6f8acbd047d3d7832f3e5167881208f9f0346fe08805d52abb3bdcac815b857f01d2cb789537b70281c100bb154d1042b5c4670c1d296e8f69bb6a8f43f4f0f94b67a5b8650fe17593b3e5769c4e1a42d8afc321af7be86de12326339e08b939f5f36f4aab61e5d564c7dcad94d0af2721b84c5bec6f2b139707bb74979a0f9cf33f34affb796453b83d96d9cdba25a53904212c3d1e9163c2db735f674f6531931b28295ce6db57b506c85840c9eb390e7cc6c035476667ab3b1e421118fb428b68097fb269c60c7d9236f8cd8af355bd89b85598f457e3e779ed92476df2a3f6dc44af916e9688d8eb650281c005f92fd5267f6a14a978ba3518b8b7e3e1eeebfdf110ec0b2914a21b95915e7369edf11f861d1349454db65a9914ac57326f390f749b346273e47cfd159f0632ca8453802f3fa0cc5f93fc4fb2707eb593174863486a5e1408d2ca09581164f4d2f21bb8196e1ad9ae9585e5249c5efb41c208f921a73b1a7b0cbf37fca1ff535bb9ecd3fb04b1c05e9919a009d99553433618587920b665e76888e6cbf6c14daab0c8b36a1173c25de2b4ae09c7dfbd9530d53397f036c7868419319978c4c90281c1009aead7a6b867061d02b5ff421335cdc13ea35a68553730bbd506b2f0d2c91d75cd133fc5954713bc74df78ae8e9698e1a06aa3f4a5df59d6f5b1175f17a6ddad8a7ba996f0c386768cc42b863331a47080eaace372e72696bd87730d361a61bdd1dbfee1ff80484023fef49a164f1c23dc8393064bd7f1ebfedc743a7bd566a96e1330613d1d170c09cbd4b522f17301ea59782350065a7f4b23f55ccfa907f3c77185375cef97e471d537b8b3fb5146fe13722333cd4eb6fddf6300fa8f0dd50281c044df28689271dd677120ae496265d9dc7f17b8bee92948f3336dd2e4d87b3c6992f9cb59ffbc1c07684f34b3ec2b64b774ba11c74e9f82abb4f580aecfa2d4fc5ff0e39d95492bb4ba81135e8b6764250ed8d7a7642e447f334391b3674e09d20d6e03be2f584d16dc839a5f15d424c89dac1c64c19740f319f8c51ce1c606eb07f2afd2b0e23d9c1287011d032c3bc3c58c8eda2b7be4c3fa3e3ecb57047582726b75e8a97f545f2d5d10bf4230511fc9e046975450109e21b467309f2d15fb]\n\n# tcId = 35\n# edge case for ciphertext\nct = ae053938e260b5ecdc62a38258e789694ad29c11a621c1a760ce3c1247d223bc0c70421b72923d3328f82e8a683a39656e02325d537707104ee5f70c957fe88037559c7352d582f7f9921349b82b090a683fa2dcb37be7d2a1323b24d0f9617c902169a436c088a63612f4ef96c1a70b26037e4cf8b645ff6a48195eb99f740f6c39a546fe3a5d2e913acba146fe590795ee5f78f8f1e319add255aa5fc4cada23d0227d2f330a6d5160b626f33b9457c62154cea5ec48cebb4592c1763bf5c4755bf3494f1ca87d0ce787b46046f7e4d17accad72e8e11f6cc71e3844af11949fe28e68dc26e15a928d79da82cacb959cae7e3d3c0ca94de0078552615d84f4f716927300e2b8058857167d785f8e6b3391f0708c365d112871107b689bc7258fa7359668d20f2b6cb8ebb4c8935f3e376e9bdd9fa2911db272d951c4304509eec02b95e83d2ca029fb7132dbc9bddb72d72d728a775399bb368036f0df6970cdc87151dba1b9f6e3d56665d85e4c33fdaef3a2f4d9180728fc3cb1c76bf831\nmsg = c44009e9821601e219ac4f02983b21a1ce309f2dbae90ce4fd6a2e37c29b73817477460c2446a712d32274d0e20d992bca09eac725a65873700840c15a8f660700fd2b414eb24b3d06e279c47c1253fd149945f7c8f8b29c8b2883eb754af74a5b108a2421f9b6f22f39d38e423b26bd856434f36b87cbf96e18437e10319f73d37d1340f87c147bd29e750648867f8a154705a2694f5d441d00546eedec71f532237b976a59dfdd0e656ac51711ff01592d22728895f2c591cfe6d485d845d507cc1c0bb5fe4ce1cfc99055ddd963cdd3e634fe5b8257ab713a3443fe56caac566931acc8968f5a82d0e25e145f9e5028ce1cca20f159e9c4611e82577a4fd90ce24b5f124157d66074b3d699a153c7f3a5e8f1f21222ac1ea61fcc0ef692b22b6533f07b\nresult = valid\n\n[d = 67aaf707264ac9eb89ca382e70233f8878cc749b35004a8b6c6561fdfee4a0f5a50a871f5ffd1b1533a714cd7fa7256ddd51a64074f9ba9b097b5c5338620bd8a365fbae5d6d1c4aaf5203e1708868de2d6e5c7ff5d4588193633371edee2388d985d3082e315a69364e0719cdbff238a726698bdd1ef224ab92eaf48fad6e3a0e8cab2dbb73717885f2d11c89b1944028fc29b89808def5d416d43ec977a866ff9c8600dede7bf9075d0b8440355e927b1441dabdf6334388108337fb4ed1e369346193e2ba993eebb44a32b41c1ec3181d246a436a0a9b827ea3112945482afdbac34091341f72732e7567cf617f8481f7a2965442da69ba372f1626ceb95995dd131dc1b3c62bd2f1fc2584d3a2133e1a36c4889dc416ab75b2781074b934b077597b7f09118086bb8ff654e79efe2d49a93e20caf875b14d8b314899709cf8bfb7eefb05ce38b59ce97f6bf9e5cd5467cccd115b1cafa0785a64e5a428886c8b4d99a7a9428ec5992b488385ad4475adb02cd53bd5982d75c569d4541001]\n[e = 010001]\n[keysize = 3072]\n[n = 009adab51aa060a0850ea1eb05858c120a338a06d6265e084ea5ecf806a233b23eef6518a5610381d6fc298c0d6c43aaeee57ebe34d6154e7bd71988487935b1aa2d0f86f0913d31d7274bd655f04da2b419fae660025becc18debb60b241854102e34609145c856b2b7182d2342664c112f9878423adafda6f23d2a17013ca8b203efdbee58e841e32c18a41ebb32161cdadb626470bd175df2a752c2859c24133b5c840a404bf6a94d233f74c72481f42d2d93711d3707b94cf06aaa290028a1437c3984c21201ca10a11cd93be48591f3793bd8a66e3845198cb2506b69604bbed341567b36c5aca8ea850c9466b996371a6213b4be89e21d4d0e3895d7694b4c7c987b81b0e34999e48416ab6033b25079f75346f586cdc05c762d3d38132ecd5b49d0dd0a12647aad3ae8f7b3916a6b40eb1b8ee234dd75a56c38a5e64e6d717cb4106fc34d9adef29b800b721069d10804b5c33bd78478d735eb83388706423a52a2e8372b6829f8c9cd8c3ea4b25d36ea378b70b5b72e5eceb4251d8911]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e302010002820181009adab51aa060a0850ea1eb05858c120a338a06d6265e084ea5ecf806a233b23eef6518a5610381d6fc298c0d6c43aaeee57ebe34d6154e7bd71988487935b1aa2d0f86f0913d31d7274bd655f04da2b419fae660025becc18debb60b241854102e34609145c856b2b7182d2342664c112f9878423adafda6f23d2a17013ca8b203efdbee58e841e32c18a41ebb32161cdadb626470bd175df2a752c2859c24133b5c840a404bf6a94d233f74c72481f42d2d93711d3707b94cf06aaa290028a1437c3984c21201ca10a11cd93be48591f3793bd8a66e3845198cb2506b69604bbed341567b36c5aca8ea850c9466b996371a6213b4be89e21d4d0e3895d7694b4c7c987b81b0e34999e48416ab6033b25079f75346f586cdc05c762d3d38132ecd5b49d0dd0a12647aad3ae8f7b3916a6b40eb1b8ee234dd75a56c38a5e64e6d717cb4106fc34d9adef29b800b721069d1", + "0804b5c33bd78478d735eb83388706423a52a2e8372b6829f8c9cd8c3ea4b25d36ea378b70b5b72e5eceb4251d891102030100010282018067aaf707264ac9eb89ca382e70233f8878cc749b35004a8b6c6561fdfee4a0f5a50a871f5ffd1b1533a714cd7fa7256ddd51a64074f9ba9b097b5c5338620bd8a365fbae5d6d1c4aaf5203e1708868de2d6e5c7ff5d4588193633371edee2388d985d3082e315a69364e0719cdbff238a726698bdd1ef224ab92eaf48fad6e3a0e8cab2dbb73717885f2d11c89b1944028fc29b89808def5d416d43ec977a866ff9c8600dede7bf9075d0b8440355e927b1441dabdf6334388108337fb4ed1e369346193e2ba993eebb44a32b41c1ec3181d246a436a0a9b827ea3112945482afdbac34091341f72732e7567cf617f8481f7a2965442da69ba372f1626ceb95995dd131dc1b3c62bd2f1fc2584d3a2133e1a36c4889dc416ab75b2781074b934b077597b7f09118086bb8ff654e79efe2d49a93e20caf875b14d8b314899709cf8bfb7eefb05ce38b59ce97f6bf9e5cd5467cccd115b1cafa0785a64e5a428886c8b4d99a7a9428ec5992b488385ad4475adb02cd53bd5982d75c569d45410010281c100cd7740c89ca197d070330dd985aa2c4dd82286bbbe656fecd5171e33464fb3b961f6580b32ebfcb314a7db5828e32640147e4aa79266e0cae09452863b3ad6ef4fceff2d0d8135a382c2047c611cef0603b3da851419ffee480b329ff60b6beae91d0f84bb969c1745fc2f9944da5ba5b2b18c4183fc8734101a2991232f74db4ed5f35179149b87b2fbfbe161ea3778532e389c186aa2c0ae3057ec2b049c7fc1c0610a88436b5af3c8421ff6113fec333fe05cb1f6473963c5f22c93f2b4910281c100c0f0cd3a7b447d32b2b29e7f12f3820e77a53201a295edb0d2ad959bd77e603cf3c42d6422e8e8243d7d829c038d4a8d501c003025827c13b88e574837c8abc03f283224078819da7534bb60d289273f9847d12b53bdc0cc974675443b41469e974dd1a04d418f1a2c2913543eaa168a919b75127d353c52279deddb5c53fff04d73bd85611b31a858f6d9b5c282098478a6b0315825bde460e97c239736a554f51517b6fd2c7cc66efc9b2229bd97b04411c65a9427e5e87e64cc25c39dcc810281c1008ff2dbbd711739807c0b18c9ebfe947999525f28cbb4cf9c929256c33fa0795f0906091b177b04190700af08ede46e98f8829e951659e365dfbfaaad8673abc0101f0ae22a92fadc6ab0b969d6b3e9b64203d0b5e9a6698b2c8843d8940dde76bf097024e3341a79a7bb8e31886e9f44d093d99ad0f8ac54ca6f39ee0843a85039c4656b103462dec884082d18677aa35f4b83b7c0d77cdd176ca13cc1cac246339d2f9fac65e7a1da27d444062681ad5f1e82770eeb676d0abcd4f56c55df310281c00e75fdebd4315df0ded3e46d41ce5e8117169a98e4c6b7f9f8d069d634609475fd0f4717aa462aa00cbbcb7e4605e100967082d318fc9eb01bb50f75aa38b026c8950aad08a37acc94dc4eef02d8a4c86f71728bfccacc18897e0e6bfec4f5b60d4117e51be53e04882acbf8147a4b1637b39f22b39fb9d5ae8277c1693a2284b0496c7b02bc370c971e6952e63138e564e5996f195c3acf53342cc9be1baa68a3b5e10126189f817ff00ef09090553e30dbe43205c8b7c2a53688d68bc2d8010281c00afb7cd8666ad62ce48ef59463baf43462b0cc34dac33af39b1a3f977f8685d352d27f2b0d710844e9c57849ceafe35ef1f28e5b18a3738c8911c9b31dc5e41f4834a90f710c1ffaf24d2f6267260791a50a4bbceec53fa8008db875188b355871431890016df43d918b2983d0af37ea8db84aed8ac52498d6e7b466c347d2271f7d2aea5b286336053594839d759eb033025cec5fd8340acf8d6b71651bd94d9e2f775b1181b550aedbf73d8f681f63d1ffeb7beda2f87ad57c9e688e642e9e]\n\n# tcId = 36\n# ciphertext has low hamming weight\nct = 010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = fac9ca4da781954ffc246d0347408dfaa149e0aeef28c334842034444a2f9df619571e07784acb8fa7d794e68af9e1ce80a14ec84b6d4990e47a748fc63aee207a8948838d\nresult = valid\n\n[d = 6ef4bf85e2114c31841a28211dc8dee37b1fd0be4ff53c6c7f4c0545abc7bad107e7ea7991724a323407bd5e16daf3d074ee9aceec58a4223e815fe54956ddefe2d65e93a83e5f3cee104305109967aa03a238697c8cdd6e956a5b5a068ff884c47af051853649f53f8d8c1b1fc7e97fd51c5b2043cb077400bd0b7ce9aee26e78f74788a98f64f35f8cbae52248d2af666e6173e2ceac8d3d0e417d48e0544501f21c459da0f0bdeb6973e22626b487b5154de963c97bc150c09ba109f4104dfdcb28098b8d12310c42ca7470b43085bf4693ea9529c71ffd0c05a37691b4f2a975bf16e3cd61523303a2b39bc1667e2a9a3bb9d851eff0598dba2acd2e696b618001ec58d2670089e8c241068931e68a0ed0f4bb854e7188e6aa7d88520d3ee8e61dbe048460819c124d97f67ff25dfffb0adba69e7de58f2d97e5dbd632dc810c6e92ad448e0fd15b61df311a41488dea750f5d06adc55102e1414df16d46baf6fa2a5042d8b7ab64b03f4d969a1ec51d1b4c12b9d845a65613207a0729dd]\n[e = 010001]\n[keysize = 3072]\n[n = 008b2f63e12d53676d96f8d51b58af53305928229ab73a601ded828da0b84e2863b2e0f860c3be7ec3e21493b6daa2043d912fe0648b2d5c8f6d049ce421480f845e033121e0aded71f9aa4df21c8f37dca8676de17f53f614685fd8fa752b265391bfafc7944715c232ecb28009441c7a3cf7735f91ab195ccd468956339388ccb7f94c9c6ec2792bb49975c7c885a829f30b191093f3fb69c62ffbbe9b44dd7c7234644aaa629bf60b41d17037006dfcb993d0266c9b900a04a00e1ebb0ec15209372a1f4425499f1df67fd489257056fcf9bc264ae1083120ce2e720d476ad7a901e7312b5f13c3f8410870b6803f6ef13755dd29beb46419529d69b585c476d726125a0dbd58c561f0726372ad2003f17b37f0b449ce31481862e0f3702179bf2aac93b81071a835cd7e59b12ca237540dc5ca5c4b1c7037e35fedca623ffacde347ecf28a99f5eaa884f7740b291324257909b743075b984b0bb3fbe2fb3b18f42593d88e028a1269f97b1a45178e2765c6fbcc1550a796735427cf4e95b5]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e202010002820181008b2f63e12d53676d96f8d51b58af53305928229ab73a601ded828da0b84e2863b2e0f860c3be7ec3e21493b6daa2043d912fe0648b2d5c8f6d049ce421480f845e033121e0aded71f9aa4df21c8f37dca8676de17f53f614685fd8fa752b265391bfafc7944715c232ecb28009441c7a3cf7735f91ab195ccd468956339388ccb7f94c9c6ec2792bb49975c7c885a829f30b191093f3fb69c62ffbbe9b44dd7c7234644aaa629bf60b41d17037006dfcb993d0266c9b900a04a00e1ebb0ec15209372a1f4425499f1df67fd489257056fcf9bc264ae1083120ce2e720d476ad7a901e7312b5f13c3f8410870b6803f6ef13755dd29beb46419529d69b585c476d726125a0dbd58c561f0726372ad2003f17b37f0b449ce31481862e0f3702179bf2aac93b81071a835cd7e59b12ca237540dc5ca5c4b1c7037e35fedca623ffacde347ecf28a99f5eaa884f7740b291324257909b743075b984b0bb3fbe2fb3b18f42593d88e028a1269f97b1a45178e2765c6fbcc1550a796735427cf4e95b50203010001028201806ef4bf85e2114c31841a28211dc8dee37b1fd0be4ff53c6c7f4c0545abc7bad107e7ea7991724a323407bd5e16daf3d074ee9aceec58a4223e815fe54956ddefe2d65e93a83e5f3cee104305109967aa03a238697c8cdd6e956a5b5a068ff884c47af051853649f53f8d8c1b1fc7e97fd51c5b2043cb077400bd0b7ce9aee26e78f74788a98f64f35f8cbae52248d2af666e6173e2ceac8d3d0e417d48e0544501f21c459da0f0bdeb6973e22626b487b5154de963c97bc150c09ba109f4104dfdcb28098b8d12310c42ca7470b43085bf4693ea9529c71ffd0c05a37691b4f2a975bf16e3cd61523303a2b39bc1667e2a9a3bb9d851eff0598dba2acd2e696b618001ec58d2670089e8c241068931e68a0ed0f4bb854e7188e6aa7d88520d3ee8e61dbe048460819c124d97f67ff25dfffb0adba69e7de58f2d97e5dbd632dc810c6e92ad448e0fd15b61df311a41488dea750f5d06adc55102e1414df16d46baf6fa2a5042d8b7ab64b03f4d969a1ec51d1b4c12b9d845a65613207a0729dd0281c100be8a1b8aaac6119298e36cbc334e6f000dd13f5c32c3ff20c9c88781a7b3e9255fe669f5242295259f2f3ebbbc58a69f6e2306de111d634fda3bd8843d54e69078082c4fae1a11236e2bb779b64b24e26898a814ffb611796dd352ead241ba659c4316cd33e4c38c166b6f655c609c7c750d6b1577e1ba3bd8c4a21b1fbf8d58a694eab4f1ebe45de0f4d3cbe979a9e43b7748a4b51e127784eb7a8387429b4edf1e1d38ccef9e1090fecb4cab469e8a9e1198c64b22e3a840713b174444fa7f0281c100bb00ae5759eb408b7ef70b0b11fc92858f010964d4a24647d2599225611dcaa7cd707dd585601cadfa2d5508360852ef178d4ead764f298663a97eed43800ff951f91e0067422eb62903e525a8ac847aa1a5d758ad637cb5db4c3be892801f35ef8eb878bccb00d11d9850106ea6565344d6720bf8f76704203a5b831f14210fa12b4fbbc391e12aed81a3364c00c9d4a3eb36b1225b502d820c65f72efab477677113d6fd11e2a6d979827d9bc1836b6902543ca856a16e0615f710d75c8dcb0281c06f20bf8575aa85af398a52edc502b6cc92427b30bbcf022ace652d5b1a435cf456655d61034d442da814f702a98c0eca2783384b26323cace2fc4a807e00d964630d6942a3a9425ba6b2ca94ab145293d62b4ac4cc8b14cffc94e6e45bf2c7d2e17b637e1509145fcce7a615b8f603eeb69a37dd52890d84401e16e9b8ef9071a6de6db150f3a2c27a2470ae9a22424b01bfc55782e6e220611eb1daaa75d77cfdb66396b03804b966c7a42cb82c3", + "ce55de1a777e77496d0979d32b89431a2e30281c078afdfd4903bbbd44b84b4a3d85fe1504112b23558e5c1e5e863d666395f38c3435b2e5af7512831401cb19c3302fc434237f8670acbdc48d75934897bded2705def20e5b1be8cd713716819fdda1945ebbd5455eed11e535fccbb7d45cf5a553cde274004d81f16d6bace314cb81d4e7046d623d3f217921a1a8fa4f811cda480a7ab35caea031fe958993519a8089a2b904a23d7c086e657e0188e86cb565d196d69187f0b63f3bab728f857e574238609f2c3930115fe23ff590c8d7136310281c07e5b28492e5eb593d7cfe662695cc08295e5a1fe58d7e16f74f50b839845c165afd6243ab56d1e5ca779d36749c1894d0d12ca181aa28d7aae00dc00240b4d4a76c0da813665d798637561b2cb16c8141c8322912843dbc1bbf2f9ef9f6ebd2924a4237c35450c426d71724757b6df068df6ea1f7759957adf1fd84bdaaa0a1986aacca2f7a2ef1059581003b4f3c69dfbb54af5f1832da2a91e62f79654761139a1730c63cc30d505d83590ca08a0055a5815a58ee79211f5da58c0d418475d]\n\n# tcId = 37\n# ciphertext has high hamming weight\nct = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = ac67e5419767f8f024f020631ab21a9f6318d0b71a470d8b757f60c0f6d4fa5c42da77275aca90d3bf48abf634be42a527ef2b6d1e2ab0d0289714316d310a1928a572f368ac5a182766c514ab376b3d16ca23a40748b62eba6a79de16559a46322cc490cd7a3d68eb9f3c412d9cbdaa36ec32c77116b9c120da6c91a5\nresult = valid\n\n[d = 00a2de4e3c98364b6e7bc16e1fbb68162d541fc8e93a1e03bc8523e534017a298741ef01ee1336cb1a5044cb0fb7fdf3e2d9801b37460385b241bb4f30d236abff84c06989eea1e3838b312bc878aaaba1a99040037aed262570dd33eefe673ce80f474c2ddb9b722c5edd79fc77af64e3a4e83d3c198e6fe1dd2136bee9034206e37abefdbeface0725ffe15724a531deae6b9bad26f3d1bc5a3ad5ce6d85b625251568767f886d6cbf0076f70ee06df5f674d0e5637b617eff15dd4b16f390db54c4e857810905f78719a6f814fb955f655447e83ec967e12b87be35225d9aa5a4b206dfabce9e689bf822bc6dbe9be6852c09b7a9c3e964460a759c302f82e634768852ea8f76b904b748792e6acef023f72058ad4dbfc2267a2582cf1746e92a5716ee08d7cce954c647cf9c5d33abb79ab9bdcadf35abe2a49206fe98800461ff321c6712409de1e77fc811904778e753216ad2a0655b6bc222f4e8c517251eb39b20554911b442e53b445c317c9e1a64f0d5075c1638169e70256919e961]\n[e = 010001]\n[keysize = 3072]\n[n = 00c9fc329bc6fc79f71c8c20943ea576394301f78bf1a33d53c99221b4e084709bed7288d1ce0f13c17c421cce98f6bb6e9938d03023b4ee3227db7569cd7d83715dcd09ed814cc270a4f6a6783fb07ef17055d98164785bbeca48b7b7e377c5fb07d488a7bade1f529da76b940e74738ff2f55b8e1ceedf5af7a6119ae0b390e1809c6d31b53234fa476929b5c3d82c154229287a70762ab7e6ba57da8a49a46d2b2e305130fed64f7097f2aa804e1d4cf1e6dfc08a6fa0de4cf62c31e0f0f0206ba7d81da7fe0950867d4a3a3f910e6c6a644b1f4c5062fdd50aa993ef0c2d550b43efbf56a5036df05fca808935a079fdf146fd0976c2fa0a1ab96978789a3bf384d4ca932ecfccef42aaeafd6fc557f4b0059710e382c6a87de0c6bca80fea903b12eaa0cc18347f5036be07c20a071493f636ce0ca42e8d0785d37de850dc3834e81beb9be138a14204657f3c405f0e071e90081053e3c92c3e5a41a473e0451ef2d8fd41327a98910eca92cd56c8bf7a434a588bbccc0037863863f6342d]\n[privateKeyPkcs8 = 30820700020100300d06092a864886f70d0101010500048206ea308206e60201000282018100c9fc329bc6fc79f71c8c20943ea576394301f78bf1a33d53c99221b4e084709bed7288d1ce0f13c17c421cce98f6bb6e9938d03023b4ee3227db7569cd7d83715dcd09ed814cc270a4f6a6783fb07ef17055d98164785bbeca48b7b7e377c5fb07d488a7bade1f529da76b940e74738ff2f55b8e1ceedf5af7a6119ae0b390e1809c6d31b53234fa476929b5c3d82c154229287a70762ab7e6ba57da8a49a46d2b2e305130fed64f7097f2aa804e1d4cf1e6dfc08a6fa0de4cf62c31e0f0f0206ba7d81da7fe0950867d4a3a3f910e6c6a644b1f4c5062fdd50aa993ef0c2d550b43efbf56a5036df05fca808935a079fdf146fd0976c2fa0a1ab96978789a3bf384d4ca932ecfccef42aaeafd6fc557f4b0059710e382c6a87de0c6bca80fea903b12eaa0cc18347f5036be07c20a071493f636ce0ca42e8d0785d37de850dc3834e81beb9be138a14204657f3c405f0e071e90081053e3c92c3e5a41a473e0451ef2d8fd41327a98910eca92cd56c8bf7a434a588bbccc0037863863f6342d02030100010282018100a2de4e3c98364b6e7bc16e1fbb68162d541fc8e93a1e03bc8523e534017a298741ef01ee1336cb1a5044cb0fb7fdf3e2d9801b37460385b241bb4f30d236abff84c06989eea1e3838b312bc878aaaba1a99040037aed262570dd33eefe673ce80f474c2ddb9b722c5edd79fc77af64e3a4e83d3c198e6fe1dd2136bee9034206e37abefdbeface0725ffe15724a531deae6b9bad26f3d1bc5a3ad5ce6d85b625251568767f886d6cbf0076f70ee06df5f674d0e5637b617eff15dd4b16f390db54c4e857810905f78719a6f814fb955f655447e83ec967e12b87be35225d9aa5a4b206dfabce9e689bf822bc6dbe9be6852c09b7a9c3e964460a759c302f82e634768852ea8f76b904b748792e6acef023f72058ad4dbfc2267a2582cf1746e92a5716ee08d7cce954c647cf9c5d33abb79ab9bdcadf35abe2a49206fe98800461ff321c6712409de1e77fc811904778e753216ad2a0655b6bc222f4e8c517251eb39b20554911b442e53b445c317c9e1a64f0d5075c1638169e70256919e9610281c100e86eb1e62a4f89475541013a3d93f85f17c7c33ffc36b589ea6d7bbb577db9611a941d50fa3123cf81d606d2eec83ba476e29790fb9e27fed438deba5191016773e9816bf164e8a5d4029481279062733fb12c34f16e455676d77541e844f1e20e103cd7d18cd10203d2875d603af221225a4fbf60a6d068b3a61812db0c9907dc02c305ef88d436669650e710d939a2465696b1363041bde9b98c21d61ae217a4f933f342ce8062701c2d63badcea3390d9ff988b3b607e392110c4ad68be990281c100de772d06a37d41db1e0953b8cd01ec86bcfd7fc3e17b2abfd0db61c37cbacc514dc5d0079e65bf0f10ead78356b7b2c639513917278731fa9e0c00778f2325f3cf85403f2ed8451a13edd6d2fb9386dcec2f9b2892d935340e125a30d98d0422171d923199f48925caac80c04bb1b44288f83ff1618b2a370f6acb61a79a74f0715baa52786d058eb40b50d37c9a734ee938d7ad31abde418ecaa94fb7c85f42c954a50d93743013393c2ab42348bf538a823bb11a7e5e946ef3a9b5746442b50281c100be03005bf0eae486f4231825cc8152e22a469c4f8a980f00982cb8a2067c393830ca34cd263b55d325891a3b06099af87057fd200112e20f68deb4f60c0846e593d4a880ddee68626857539fe2001efba86de67dc1812c1deb39681a610f3bce5940dcfc71ca7472f93cfa7c5356dcea49731b0e90acce6349b9d6a4537e90fbe3d83e2674139fa8796518ee4ccfc855e8ba90a67e6e24d06469d32d3622f401f053e92c4cc9141b651b23e00bbadd9b1a279cd3cfbed2bb5d68b294964eb2c10281c100d087f5f4db1b76b7e697e79abad0aade42197dc2278244b83916ebb54b1dee97e7c71d118730e8bf3ea46410012180babecf9c2c5029327831de1e31f4428638dcb5935ba695a370a66db38961b91019d66b698dc6d9443ddf52e4a815c551b282e87d39718eff6025733ddd0317385985faee355db20d883f336421cdf1c2dbffe664e99968d864c3f0377b86b9608cffa100caa05cf2a1912ff7357a98a07302360de183eecd81b78ce69aa4d8743fe2fde0e64a675a50d9101e6cb105aa610281c1009648ea8b6de3e8879e8d2d60382b8228a41fdbc94fa87b797ea4290afa872ebdaefcd234229d200ed2b65013679e87bd18ed9a29861e299dece7711a74cee4cba2c6bd9391ac87e618515b63d406379752b6da3f151756733dba2f252907497bd14ef3173022b5dd7562f1c9bd50bef17202ceb738949b719e18d98cb514b420a0e32285109f3ed0a559ecd73e2a91362bd3e8b306d165da1d20e0b0268da5a23e1f44cf992c7b4e4854c325f6143a4d9aad2fb676f9070950f8e8b9dd132993]\n\n# tcId = 38\n# ciphertext has high hamming weight\nct = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = c92e460c4da52173b526a1cbcb2fcb517ab335adfce02fb4a439215476225e82fa2a5b68fe5dc1a8e4f05ac309e31c3fb5b4b91a8ddddfdb7d83dc8bfea2429cf93c2e63277bd4f9202f92d8fd36242984f237a3ecd8966ba9f8e4457c158277a2ec69ec8ca5abcdb689102665827471044a491e951ce64ba51c7fe1e00", + "a2d8ef3731ccabbcc2867855d9b839df26a1f7b3dc0eac2e0b7700f0645554770713b78bc3a742b90c7277d35a789cba6e750bec9f73ea4128f9d411325c5536fa4cb9453ee2bc5b0f800db8c37570cd08322d3e518e48fdd61c58d11f7f3748a8a07109914082581a41718a05c39480948fcdb1529e71f2356449220efab9c53b38d5393869706993330c034c7d1b0382228a82c805ffae59a669c11658ecf97240037c467762aab6c72b9409c7274b50d94d3d730ab157275f9c974\nresult = valid\n\n[d = 00990388d1b5ec613b9daee3a04693d91b5af7ca4a6d3af89b45b96af5a520c662829f4023c5e2a99ec548d90c11acf76837ac89abf4d0ed11f675f35cba50c8200f49d496471f0d91720245cd4a9f85c0d87e8045c6db28a79d41bdf09e486f5de938f17acdee3a8a675038d77fda22230c8913eb597f8392313fee8f965e3fbd64dc85dbc2afc058c4ecd444f5c94df552db4a1c25ede5c8aad49f6219dddfeaee2fa18cb1b02ae777bf3cfc2ea84cd21b981a292ed39efa4209901e72d6d9fcaf0d40eb9626716aa99843c9f65cecbc80264586013caf7382f051c3f3723e9e5afe0878e39c9efc8ff32614e92b6d2f077abf5012eadbcc26eeeb47e153b928e634bf940db6ef248d1d0f35e5c4c0cd3f39a7cf3bab50ebdac582f569db810fef07c6b2d77458e6610b6b01941fb598292dd792ff08275ac6e8a542cebbc0f73f0e3d3dc73f828f92dc62b158427f4c05004d56dab7c7f67844ec16645753f2fadf510b2c567ecfa3e8cb7f98634f5ebc5ae246d4e9c673c38c79e0ceb8752d]\n[e = 010001]\n[keysize = 3072]\n[n = 00b8ed73687db7c698093a1d9d6dbce077230a07456d8e1317aadb709ccf47121ec1b4e751bba4bbba7bff4b1e55cd6ce974111893189125eaeee2e77f3da36f4c90c0677b87c171237c274bbc3a94a9abb471969f197940ff0823f82ca9252ce6ee1b6c1a43a7c25df1f41d0f7e16b2b104933cc8968daddae360b751cda7d543c7de3fbe2ca5de6b0283abe1d09a7c41c67e31b0827ec608e8110173e62f9f95902c9062a9c20e21f4ac55c438eada46f9d4ae0e58c41d50f1cdad0dcdbf5b21c6a6a1dc311b0a45d772ee928a4ec766331df2810998c3fbff16bd8d3e2be51e3b30b4840679e678194f3889830057e59e511d06beffe040523b9657aeb4d53a53103011ccf8e55faf0cef4bfce1d27c6e8683205618639be4b78070efc9fd536e70c578307bc03b400e6f7a4ce2aca86a5d74e6fea44349ebcf2c58902ee143c58133f395a39ba7b7a1057a52a02376be308edc441fbe775fca9d4b098f8ba018015a7efcba7df8fd86d8d6235af3b855bbe5e470c85e03545aa3d3bb5a5551]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100b8ed73687db7c698093a1d9d6dbce077230a07456d8e1317aadb709ccf47121ec1b4e751bba4bbba7bff4b1e55cd6ce974111893189125eaeee2e77f3da36f4c90c0677b87c171237c274bbc3a94a9abb471969f197940ff0823f82ca9252ce6ee1b6c1a43a7c25df1f41d0f7e16b2b104933cc8968daddae360b751cda7d543c7de3fbe2ca5de6b0283abe1d09a7c41c67e31b0827ec608e8110173e62f9f95902c9062a9c20e21f4ac55c438eada46f9d4ae0e58c41d50f1cdad0dcdbf5b21c6a6a1dc311b0a45d772ee928a4ec766331df2810998c3fbff16bd8d3e2be51e3b30b4840679e678194f3889830057e59e511d06beffe040523b9657aeb4d53a53103011ccf8e55faf0cef4bfce1d27c6e8683205618639be4b78070efc9fd536e70c578307bc03b400e6f7a4ce2aca86a5d74e6fea44349ebcf2c58902ee143c58133f395a39ba7b7a1057a52a02376be308edc441fbe775fca9d4b098f8ba018015a7efcba7df8fd86d8d6235af3b855bbe5e470c85e03545aa3d3bb5a555102030100010282018100990388d1b5ec613b9daee3a04693d91b5af7ca4a6d3af89b45b96af5a520c662829f4023c5e2a99ec548d90c11acf76837ac89abf4d0ed11f675f35cba50c8200f49d496471f0d91720245cd4a9f85c0d87e8045c6db28a79d41bdf09e486f5de938f17acdee3a8a675038d77fda22230c8913eb597f8392313fee8f965e3fbd64dc85dbc2afc058c4ecd444f5c94df552db4a1c25ede5c8aad49f6219dddfeaee2fa18cb1b02ae777bf3cfc2ea84cd21b981a292ed39efa4209901e72d6d9fcaf0d40eb9626716aa99843c9f65cecbc80264586013caf7382f051c3f3723e9e5afe0878e39c9efc8ff32614e92b6d2f077abf5012eadbcc26eeeb47e153b928e634bf940db6ef248d1d0f35e5c4c0cd3f39a7cf3bab50ebdac582f569db810fef07c6b2d77458e6610b6b01941fb598292dd792ff08275ac6e8a542cebbc0f73f0e3d3dc73f828f92dc62b158427f4c05004d56dab7c7f67844ec16645753f2fadf510b2c567ecfa3e8cb7f98634f5ebc5ae246d4e9c673c38c79e0ceb8752d0281c100f48eaec99e76d7f54b1c8bf9725f76464c7c8e911e86b50f1afacad842d0c96dddd7f7359e3a35b85993f0adfdcdc1c2d42c1ac3f724247f325c5377ffe0539fbd367688e2794e16eae9fd0e3dd58c2a3d16789b6fe5a042a3950ad3e0e17c30ce65adf29d281f1c056549281ede6130f084d5919adc1ed7479f60a8d06e7317af7a507a6e3716cb84298de13dd40e8fe096793d85bc5d3cfc0bc80589b27210ac401982ad647aa9edf606cd1c8a1b64280cc8a6f54444f396f95f58ff55ccbf0281c100c1948518671d56363aa95ccdedd59c74350a75cdf16e593b37e311412d6313a445838368da70abeecea09a4ec2ca1eee5ed21ecde2b1357cc332251d3b291ca2971b9fef315d2376d744755735fce2f8462ae6109dd7dfa517a413de22fb5af82f12dbe9afa312291022c887ef9c22606b90c1e2f5062ff18ae17606134a3d4bf9c04ce2d43512ae20b99373d906d49fd7d3a3d74f27fba5bb75344e6cb65aa55138d943e41b6d085b762407d8d0db09d492ff90e2b9e069b4b3a9fb68b891ef0281c100a173790cfe22b35beb24837c40f7a8dbac2f26e7c3616732fbbaca238fa8caf24f5cfe85555a5490ca0293082ae0a5a47bf24a11499d80c2c07a97584782cf724bb622f7279cb1e30b5f42831e6b56c7a3e0abeae22a946caa160139f3e2a8dc87c634da50ca660f57b8905d7e538d9283970e6fbbeeca2591d1343cfead8c29fcdd2138527ee7fb9fdad721f67182d3958f81a70e1d56e8a5f5192e1ec3c1ee23e9856df20ebdb465b6e0b294bed06a84ce3bc18d766e96e9fae3e99b58077d0281c04f1d03c8155c47ffa1b9d5d3d37f9991649c01c9490270356381c96b79c12425dec300d1b97492cfe6627cadf3ade736444a5b8c89392342fa036467ade5ff6df393b6a96ae345bb2bff2e7595fae447d36574e115a1442594a3d9facf112afc834091dfcf8835c3d27464c0298d05ffa1f66746fa1cad3b6a26fab540ecf660369200da331ffda26c7d6b65cd2c9d79361ba8ba35ff81391a83abfce131259aaab731142e05876a02f725828f79cc0b18757b3d1b6c1beb178ed5c989e2e4c10281c07fa908f5194afc32afee234c2a3c1d349e37982be7431e4c67667eb306a436200c31dab61f9b52ce3757ee52f73545146171886ef280dbb7e67a3d6c01531b8f99529f8406a8fe1c56065b563ed2395d10496564c6775abdf4d7d078a28fe67d8d5eb5f501849012f0c3f7df7c8d9180ec17c17d06d5c218a0cf52f06f6bc3c7acbad3595737bfe6c6bfdd0680c292e665d3bc794c2231765a321b3b9d718402b59830085a2cf3ed70dc1c7708beceb9bbcc2d641818028c62f232deed68750e]\n\n# tcId = 39\n# ciphertext mod p,q has high hamming weight\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = caf34c65e77454e988e0aabb59efa0d15e204690a1340bd7987f1c1498f8fe0029feecdb6e80f61db102db323691c14015c73368107585984d112de11a96a52a572ab5c58c5e3d6922c5cb3a123bea4a71dac249a1a81bc8c0c8f168195f877e422665676da11bec2a34ec55c6f7eec66f1f6a821ef8b7b0e9d442e57a1161c7f9464ade2d60764db3ee585f61bbeb32951d3a9e00afa25dfd8e9549d5a0f25710363ab21b257a85945ffad891e0c7f58eff043fd0a807067588f7a1e11f77784b32a637184b9e6deeadfbf7d533cbcd4c2d752ce749c80aafa183b71baf882cadd1d589e2c3f954e66e5b99cdbc1338d096c7519f6d0466005534d02b32\nresult = valid\n\n[d = 6645fa5300af8cc8f4dd73e2add71dd8238cbf80b8c5e22a2c77887e32cb254e5a2815911debd2315c7fc39cdffb5e6a978847916b53057aa38d1a6031980dca363b0dc2f05a7b370395161dc961f1d6eac7bdf2b096be69ffff27b9970f6bef43866812708de96f42bf056ea019ae5e88d347fc13ef37f100545259b002d7d3297f8c3641eddc80c22c841c7996148e81b2be000b7a45e6580ef7dedfe04ef8bf64fc6e94c021a8ca0d5b035e3500c5669918a2d8e880b8c01a559fb74d3c31911e28d6912d103bab9fb88f00679158dde953b6c61665c088e007623809391d9ddf5a7f0ff4229e3de1861a1f5ae3680384ab1df1f8ddeb3d99b5242a27ea0aa39b761aa052c9e995913726a79a74ba6831dcaf9416add437e4e9c845d79694c3acc2431c566d0321833daf3896c970d1737bc3b9fad55f3f68cc48fca82eb471884defeb5155a909e35d89daaa146a7006ac60e4691fc176f1b9ed055ed9879da1d57abea8989dec576252adc49c0de091c3a966c20731ebb656d04f700181]\n[e = 010001]\n[keysize = 3072]\n[n = 009e609b33015a2e7284862be78c5a9687f42c6b0d56f860bc6e2cc1a087bf72133ea3ddac50a077fec843e50cab9353722054c705c83e304b0ff31d7c122c36ea1bd85deab54c1cae6bffe3a8ddf903c614163131711847dddfbdd8ac82a3f552546afe0d2150629b1c165581b1a49d4cb6f506a4dbf007a5b3bae35ebf6e18d33d433889f459af682342e5cec8907064e309f2e3f8c7875cc2e1fa7549e869fc27b124e3e8d62c710ac62f1a18c45203ce9b58902b54c64b44481d56864816caa356471083fe4fa092d1565520e108b9e712b7807fe2dc", + "5ed3a74d9c454f4ae391d75def750088dafe51c4c43a7496ed0655f8ab0ddcaebd5f734412355d5bec8adafa009f1f329afdc44e14127983d783ab910453c1c102c01f249812206c5746e7a94015158ce19e5ccc10af2ec84c92c56fcc260d0725eae2a8c5e7faf154c37411f16c85ea322794d6b42e4f4e57d843b064168bc4f9b0390182e675fdd36c6f34ea9ac3a41e4faa82ac4c71f7d5dfbe0d3d04a1ab1469ce860da368ab15]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e202010002820181009e609b33015a2e7284862be78c5a9687f42c6b0d56f860bc6e2cc1a087bf72133ea3ddac50a077fec843e50cab9353722054c705c83e304b0ff31d7c122c36ea1bd85deab54c1cae6bffe3a8ddf903c614163131711847dddfbdd8ac82a3f552546afe0d2150629b1c165581b1a49d4cb6f506a4dbf007a5b3bae35ebf6e18d33d433889f459af682342e5cec8907064e309f2e3f8c7875cc2e1fa7549e869fc27b124e3e8d62c710ac62f1a18c45203ce9b58902b54c64b44481d56864816caa356471083fe4fa092d1565520e108b9e712b7807fe2dc5ed3a74d9c454f4ae391d75def750088dafe51c4c43a7496ed0655f8ab0ddcaebd5f734412355d5bec8adafa009f1f329afdc44e14127983d783ab910453c1c102c01f249812206c5746e7a94015158ce19e5ccc10af2ec84c92c56fcc260d0725eae2a8c5e7faf154c37411f16c85ea322794d6b42e4f4e57d843b064168bc4f9b0390182e675fdd36c6f34ea9ac3a41e4faa82ac4c71f7d5dfbe0d3d04a1ab1469ce860da368ab150203010001028201806645fa5300af8cc8f4dd73e2add71dd8238cbf80b8c5e22a2c77887e32cb254e5a2815911debd2315c7fc39cdffb5e6a978847916b53057aa38d1a6031980dca363b0dc2f05a7b370395161dc961f1d6eac7bdf2b096be69ffff27b9970f6bef43866812708de96f42bf056ea019ae5e88d347fc13ef37f100545259b002d7d3297f8c3641eddc80c22c841c7996148e81b2be000b7a45e6580ef7dedfe04ef8bf64fc6e94c021a8ca0d5b035e3500c5669918a2d8e880b8c01a559fb74d3c31911e28d6912d103bab9fb88f00679158dde953b6c61665c088e007623809391d9ddf5a7f0ff4229e3de1861a1f5ae3680384ab1df1f8ddeb3d99b5242a27ea0aa39b761aa052c9e995913726a79a74ba6831dcaf9416add437e4e9c845d79694c3acc2431c566d0321833daf3896c970d1737bc3b9fad55f3f68cc48fca82eb471884defeb5155a909e35d89daaa146a7006ac60e4691fc176f1b9ed055ed9879da1d57abea8989dec576252adc49c0de091c3a966c20731ebb656d04f7001810281c100cbedaf29abdace9553066bf9b552e7427342b931846dc80c4a093f51350a8587e47fd7c1650149a4ef85f4be5b2f57d51de374d8c8cbd8e907befdd9c795753fdf6c47b28a7c0ee8c8aa124eb486d53d8da2d959f4c9a742ccae9f4dee7bb2a5ae92b7170dd15c054fd18ed9eb6488e0e2b4e45bcc1a9b1b6302fe12a6dbe54d9fc371478a186784e9cd4eb4682d8aa1d8b294661abce3b075c054faf2d9acb4854cf18a639afa70d06d753b580be87b65c86091366b489c2dfad75ca52031b50281c100c6d15b3b5ad90ce9223778464771faeb7252c0404be55fc5a704a9df46157f3d2f24433ba9fab8037aa219474ebabb50fe307ae9dc4179da8a28c60f9716cc0ca9d8d26fd1c353246bff98698b67d4c57f094f9b9b518aac5c20ff0f9f983073a547926c6609f91d98bb93563dff80c53ce6dda01da8bfc246d5a222d8c7ebc3c6b7df1813e393397bf5f46d1d5426f8d4c36db7820788b4f688a989d01a8ddfc642c516550235258272dab9d9c8033a6fe5731d231d1b2b9afe8c6b7a01efe10281c01b5f8b3c9fb9de330313009963327ea257d06405768e39e514670b5dbe2dec60a2565ac2b5e9275681644cc6e47c8560b1036022dd492793981b95fd8ea1cc3c47a444377e094b030a347202a88ed4becf6d4599a29712e18f91fd063bf5d4b412abd4f1be4415030d84c6950fd8cddac9f398178e5d1fe6dc3281a2454d8d090f61efa9b7aab0f29163a2a5eab9fa3ae1588f3ce967e374434a0ede248cfd76b9d1eb36354a8f456764d9f09e4ff2e3e574b129acd157ccc70b3daf4ce6f6650281c039d7d11e2ca9375b608c18df018c44bf596c7fe874ec4ff7d646c21166777ca45561cc79c053645406cac066019ecc3e9d2587ad205aa054179c133b97ee97011c2d2bd44287fc597d5e487e748389e0c7bbf2c047e8ea5a8917447dcc25dffad55c445a6b397d93c1cad8ebdf6fc58c1cd2e229e257252b25a6a3dc558b9ca941d85efcc7548f91cae1dcf21df54cbd5a515d4b657641acbc893822133c9688434b4bc1da8ba0e0bfda208eafb0c457ad14697051b5f720b1a05b442da400a10281c00a973e8a43bd577433a6140c4b3c9b8cc262da5dac3ff758b21571634826e2d2446fd08d5afe1f9322b0371300ad38ef4b2aa61c312ad8f89e5dc1a35778d1d27088bf6f2d0cfa14442c846a2a11c669bd08e431006d370d86fe8d98d762bb0ef5a7e0ca75abdbdf1b6f38d2e1060924b62a67bf919be34fc09e765a9037feb2a5bbcdf2d72ac2d8366f54d74e7cc7741be6d0789dc693fa97de28e4953c68b370a188b850f001c85409449e543123a88c737be4ad1cfe7fd46d4bceab695244]\n\n# tcId = 40\n# ciphertext mod p,q has low hamming weight\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 0f23dff763ec6364f74289895308e506f726b6ba72d368c3dc4adff79bfcd7ec6c2d6b71b529e42e94578bb9046060e60d262a0deb0220eca9e010aef789cb5b035b7012ea5c8713e4f50af900c89bf016e0797110221a370a5059a2592467cb51b1e799d59f427b5ffc14f7b393ea61578f2746236c901b0f027207b2098b4ce60ddab440b5047b5779dd37738ab6357b0596d2047ab3900601ff816d0fddaf4eb7e8aeaa31b061888a3b8156ea3a6ab56ab233529f9af1c728c1c26103c02e4550ad3a35fd4a2afe78278fadf6eb4e90e5449ffcf2d141ec8df12d1a9feff3cd47a1b921a0256362f7ce551ccc18651a6cfd650739cfebeefe29d2723ce9fa31e345bb4cec71bb5e6f595b7a69b7b98e81f62e55a6b4715bdc92f7c480727d6df9bb9cc38c683edbee451dd070a54938312d850f2842c2bf0a67edf2\nresult = valid\n\n[d = 0099ac516de271c4c1eedc6b8d68c7e4be06ebecb349223a92b59c6fef56d528a7917bc43baf271ca58a4f02ca1f96b761c6f5235145a41492eb528f46ac520ccbaa2f76426ed73b3de21fa5148a8784cc0c86a249503dfb13e694dc4f23c10350d7c098b5b95a90d3ec511fbb7b9ab144357c9537d61d3d5b8dd03005021ab22e7444d8269e8787b0a148561597e88e6fc46e1024642da180e1ea4e9b1a64abdc74742cb25d7a35b81b39fdcb32a0ad2a49d01bdc6d4a967690ae1234b5ee170946ba21dc30d74dc106583de7196807b6ac43517fd384f354a34bd5cb1f8c4ec017a3e6769b63a1bd95742805739a9dcce411ea1b73a7300b7b30c351fe28da0d54bf35e7f8c3ee4f1ab1e321ffdaa5193787c038fee55f66c6d9368029d5d1f82db19c2a09d19513ac7a75ec9da01915cc77ec8f8d270c18fc477c7fe075f0f6c3abe234daa66f6b52b46fb54c7e7495d818317956ad89620e746408ae241284ab7c5bac073cd5120d4f9826b070c3ff7ea7bab641a92414dcc63ca321124d01]\n[e = 010001]\n[keysize = 3072]\n[n = 00b9136e0114d7f766205493ef2415927b1ce623586189fbd6180de9dc27eef2e468c606b4b65fff4e8b6e9516919fd3db2a82382c303799066e31965aa6f1b562fd7aa1cb2cb456de15395dd6fc2f5c60e5f6dbc2fc7b840e976b779271a66066f26cd58416096db1f0bc01e2766b9810a101ed6b673e4eb5638a18e457e5563450afd0b56efded27a60e6213c6fe1d7ab7fab705c881c16f0916fe2f9f6d407377717b04a9b3446af1f531adf297826327a08bc2ddebdac3ea79c11d76e12aca51c34be918b8eaa7780ab1a69f447671b5289f829dd97b60be15637a12cafa209f65e049029813702ec9581be3df3dfaaa6fbc62439194e68233f191b21bb233c7eee8dc43ff4be9f91b0b60f1bca7cadca5ace4b919645a87b1f8e6191e27845b467a35ca612c7f6f512921fc61572e464dd90af7f7fcb72f00298cc13ac888190c9f25c7407c1c1b4275e348e4cd2ea4b87f4c2d8b9459bbf699cc2b38ccc80d33b6d96e9b61688e20a7dd71cf89738b9582f74e3d11e311cb2a42ede808e1]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100b9136e0114d7f766205493ef2415927b1ce623586189fbd6180de9dc27eef2e468c606b4b65fff4e8b6e9516919fd3db2a82382c303799066e31965aa6f1b562fd7aa1cb2cb456de15395dd6fc2f5c60e5f6dbc2fc7b840e976b779271a66066f26cd58416096db1f0bc01e2766b9810a101ed6b673e4eb5638a18e457e5563450afd0b56efded27a60e6213c6fe1d7ab7fab705c881c16f0916fe2f9f6d407377717b04a9b3446af1f531adf297826327a08bc2ddebdac3ea79c11d76e12aca51c34be918b8eaa7780ab1a69f447671b5289f829dd97b60be15637a12cafa209f65e049029813702ec9581be3df3dfaaa6fbc62439194e68233f191b21bb233c7eee8dc43ff4be9f91b0b60f1bca7cadca5ace4b919645a87b1f8e6191e27845b467a35ca612c7f6f512921fc61572e464dd90af7f7fcb72f00298cc13ac888190c9f25c7407c1c1b4275e348e4cd2ea4b87f4c2d8b9459bbf699cc2b38ccc80d33b6d96e9b61688e20a7dd71cf89738b9582f74e3d11e311cb2a42ede808e10203010001028201810099ac516de271c4c1eedc6b8d68c7e4be06ebecb349223a92b59c6fef56d528a7917bc43baf271ca58a4f02ca1f96b761c6f5235145a41492eb528f46ac520ccbaa2f76426ed73b3de21fa5148a8784cc0c86a249503dfb13e694dc4f23c10350d7c098b5b95a90d3ec511fbb7b9ab144357c9537d61d3d5b8dd03005021ab22e7444d8269e8787b0a148561597e88e6fc46e", + "1024642da180e1ea4e9b1a64abdc74742cb25d7a35b81b39fdcb32a0ad2a49d01bdc6d4a967690ae1234b5ee170946ba21dc30d74dc106583de7196807b6ac43517fd384f354a34bd5cb1f8c4ec017a3e6769b63a1bd95742805739a9dcce411ea1b73a7300b7b30c351fe28da0d54bf35e7f8c3ee4f1ab1e321ffdaa5193787c038fee55f66c6d9368029d5d1f82db19c2a09d19513ac7a75ec9da01915cc77ec8f8d270c18fc477c7fe075f0f6c3abe234daa66f6b52b46fb54c7e7495d818317956ad89620e746408ae241284ab7c5bac073cd5120d4f9826b070c3ff7ea7bab641a92414dcc63ca321124d010281c100eb08c8c7b3034a9825fceec9583561976a0971ffa3ee2436c56a4d4d0281044257272783b2a7a5a221bc12aac6758d07d744611ccf68e766c3efbeda97462843925e13ef8c883bc4732dcb7d0f53aca4b608c10b423b59809b66fce4483d036aba06c62a48063e7fadd32e5401cbe86e585e9bedf62bab4a7c70fe097169069d30de223b4699eab45ff799d16c1c5388ae76d8b74985bc77a47a0fe95c7745147c78da06c8a4b2295f8497e49911198238b0f6e70aeedd83c91b75cbccec20d10281c100c995cd0a3abf17a89831fe4ffaa634970edf570bd3d7c42125cba66fe0f84b8d7564ae618ab237984d5a5c37bf10c7d67b3d77ba0081dff35f32d01a3e4bf6454a1b7c8bf66a5052f1b94441a38251b997f3aac77bc6eb36a08273d60b649c8743598a64cc8cde15335c9d36f4890276cbf71bebe3bd22c0813c6936dc4ede8ccf9f1b81f89f07fc5a524e06a7d3a238f1826fec5987bc8d6d5d091b67d581b1f26f8c857b7487e51ada4de64c907b8611cd2c8324957440dede99ee44faeb110281c022b543612a305c3da7ae785cc767eaa77f8331907cd6d806369502215333563badbf1c78b853458471d2e236d1e3de15c0565ab8f4701b6bf3975de9cdd9106d1a1a467b639762ac1a0e33349ea4cea3ec35d2bc24e5bacbe1270e456fdd82b9aa0b020c90624bac7330f270796b71418a4f3e5b9fb4c730d2bba4e824154c62be2aaf876d5fa1674d9cb4dc5648c095389e585688c6f513fdf8008d87981d5d6f1c31a63acf077850a0b6058e0d16654295ef8022ff2f3b1ce1af3d8f5f77610281c05687319af97a7b0a4841f55a99496c7b86cbc14e77613f73c7087269c5946ec1caa92bdcfcaee10443f7cc6bb55cdb9aaa0dc96d92b82ccc078a051faeabe68af97370f397132d655d12dc449c8ddccca077dc4f8246f141e285fc78dd2d13af4fee88641a154162b24847c78611a5781eb6f44a3dd83aa98d0fc44de3250b8c3fb69915220609647dd4a45f60fc8bbe8b9424bcbbf572aef649a0161e6cdc1de8e58ed8e114351cd778eb45368a322b6b4ab99795457dc036aa3042c1633f310281c01503297285a46cb98d1deffd41c29a22d5c9d1540397cd1511ad8737ec8cce6ef821201c31827be505734c29157fbfad489ff434781f6d7793b9cb81d0a44e12daf16997304f7d68f8314691b5a6dc5c4d98bd791ca8d39a0a5be26b7a8f19814044b6fdd0ed0e4f0d6cf767f457a7ea8d51e6838ee3df61be3aee1b2aba51aa15ff11eb97557e2ce8ccd1347c3ae8604eb3287d84358b9e0b17c4694df03570b74377c9b7fc51157ecfdefe4885c25d626065b639065c5613822c3111d0ccd9]\n\n# tcId = 41\n# special case ciphertext\nct = 5c89b7008a6bfbb3102a49f7920ac93d8e7311ac30c4fdeb0c06f4ee13f779723463035a5b2fffa745b74a8b48cfe9ed95411c16181bcc833718cb2d5378dab17ebd50e5965a2b6f0a9caeeb7e17ae3072fb6de17e3dc2074bb5bbc938d3303379366ac20b04b6d8f85e00f13b35cc085080f6b5b39f275ab1c50c722bf2ab1a2857e85ab77ef693d3073109e37f0ebd5bfd5b82e440e0b7848b7f17cfb6a039bbb8bd8254d9a23578fa98d6f94bc13193d045e16ef5ed61f53ce08ebb70956528e1a5f48c5c7553bc0558d34fa23b38da944fc14eecbdb05f0ab1bd09657d104fb2f024814c09b81764ac0df1ef9efd5537de3121c8ca734119f8c8d90dd919e3f7746e21ffa5f4fc8d85b078de53e56e52d6725c8cb22d43d8fc730c8f13c22da33d1ae530963fb7a89490fe30ab972326ec857bfbfe5b978014c6609d64440c864f92e3a03e0e0da13af1a4726697525c3fa616c5ca2cddfb4ce6159c66640699db6cb74db0b4471053eeb8e7c4b9c5cac17ba71e88f188e5952176f40471\nmsg = 0b1e0135ba1bafface825cf073a96bc48c8e3752b12e39c77b16c22720a7aa058771a76c102a93078c6b591d5453d9191cfb173df257f51f42204ab754343f3c0667d42bf40a63d12190eda6a52604832ff99cc239b6ca0f67c628d297d1b61d0c2d59f734baeae35b9fd8b31162be15e4e0d8c62feeb8ab1f79e09f71e66d18a5b61bcb35be77cc15066af1459f81f85c1a635823e9188b6581b39a537d0b5aeec99f57ea1979ee89943d590745a6b3e9cbec48a784eb184692a4def00715d5bf852c1301e86be7e265e5e42bfd8f1cbd38c52b0280365763215c130c13e86774ad9a76c181e0445090872873c9\nresult = valid\n\n[d = 00af0c90e6c3454aaaa2947571a217c7514d4fc2edf55d3885b97622a992c7d6214c699252da651d6ed63849723e4d8e88534adeed98ad96f2ad79362956843fb531b3fec9677791b89a9e158bd22a850c56bfcefce94f2737e0eb28b6783aa282cf9ba5d7f0a8dd0964793b6cf0fbc3e30bd67931b408e5131e7da3efdfeec3267c41766426806b3f52531780f5ab18ea6f4654662144e6531ac6047bb686adb9ba84c790817b2cc5e10704e67ae5921d7aee13cc8ff2eb480e72a86db2f1f2257cfad6f49e8d9217a195bc077d7dfa680d04516d32cf4cecda512904fe4ccf5acbd0e04439610a7eff24ad59835f4328c16f91246b77d5b13466fcced5abf4f2e1ebb1c2c3b4cca94d676daa64e9212f63043a9a18bec0ae0a0b96722b8d3173a360138b0c532b298ca44dbe24c42e874c0a336f614527ae6b9a0ab4d3807e092d63ca7c511bc91fb5ee294297a1e5a5bb19dd7b7919737fc29ba1358d81765d028a0c318fa3610df9b81640aaca0084e8de719b18110f0c2852951146a06679]\n[e = 010001]\n[keysize = 3072]\n[n = 00f862bf8a5740d51ad11ed85d616e7d7b363ae03060d0a8c7ae4175b559186baadb34f9bbcbb2f4aa399b1688b13b56cda7a2519a1cb7ba1330ecb70899b7f2431b898006f3b1f1832b65c2520a8e1f058938984b7889817fdd6e3402b018e408b98f80abd0a0260eb7f9ecb660f7b7f041db038af1ff3816256ad66ec67f8837e94bffd4e202fddd58422ae968b233584786ec7c9bdadc9c2794bbdcbe374e6a24ce6622faea63f66ea5e73b8592cdba6697b7ea56795e948aded2200b5975a039be3a7cfd985080b4f7d9c00ea3d0872b688c059ed637b2d32492c82e11d4bc2919b1dd3f207dfe6862a7964fe44a77ac8106a8eb3939b242346e43ebaa0542702a79078aeebc4e8eb6361d3fb421052325d890f70b78c851b954cc810d47ca0ed86dc9532bdc55468d30f59ba00bd5a606a4c041d8718539c6c2a9ea2156aa64b58d0e62dc8077643e0afd2c36e9270717eeb976dd6dedb5c002e530e27ce83062b9936d8332e61b56cc1cdb9eaf702faecd269f8cc5a8ac2738b6873f836f]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100f862bf8a5740d51ad11ed85d616e7d7b363ae03060d0a8c7ae4175b559186baadb34f9bbcbb2f4aa399b1688b13b56cda7a2519a1cb7ba1330ecb70899b7f2431b898006f3b1f1832b65c2520a8e1f058938984b7889817fdd6e3402b018e408b98f80abd0a0260eb7f9ecb660f7b7f041db038af1ff3816256ad66ec67f8837e94bffd4e202fddd58422ae968b233584786ec7c9bdadc9c2794bbdcbe374e6a24ce6622faea63f66ea5e73b8592cdba6697b7ea56795e948aded2200b5975a039be3a7cfd985080b4f7d9c00ea3d0872b688c059ed637b2d32492c82e11d4bc2919b1dd3f207dfe6862a7964fe44a77ac8106a8eb3939b242346e43ebaa0542702a79078aeebc4e8eb6361d3fb421052325d890f70b78c851b954cc810d47ca0ed86dc9532bdc55468d30f59ba00bd5a606a4c041d8718539c6c2a9ea2156aa64b58d0e62dc8077643e0afd2c36e9270717eeb976dd6dedb5c002e530e27ce83062b9936d8332e61b56cc1cdb9eaf702faecd269f8cc5a8ac2738b6873f836f02030100010282018100af0c90e6c3454aaaa2947571a217c7514d4fc2edf55d3885b97622a992c7d6214c699252da651d6ed63849723e4d8e88534adeed98ad96f2ad79362956843fb531b3fec9677791b89a9e158bd22a850c56bfcefce94f2737e0eb28b6783aa282cf9ba5d7f0a8dd0964793b6cf0fbc3e30bd67931b408e5131e7da3efdfeec3267c41766426806b3f52531780f5ab18ea6f4654662144e6531ac6047bb686adb9ba84c790817b2cc5e10704e67ae5921d7aee13cc8ff2eb480e72a86db2f1f2257cfad6f49e8d9217a195bc077d7dfa680d04516d32cf4cecda512904fe4ccf5acbd0e04439610a7eff24ad59835f4328c16f91246b77d5b13466fcced5abf4f2e1ebb1c2c3b4cca94d676daa64e9212f63043a9a18bec0ae0a0b96722b8d3173a360138b0c532b298ca44dbe24c42e874c0a336f614527ae6b9a0ab4d3807e092d63ca7c511bc91fb5ee294297a1e5a5bb19dd7b7919737fc29ba1358d81765d028a0c318fa3610df9b81640aaca0084e8de719b18110f0c2852951146a066790281c100fe71517b6934df8e250e6831384f1e0655c9848fbc21038c9e0957edb79c393bb5b78ee76cfffd4a585a5b8bf0ac7bfe737a499328ea1601b33e055947b78248e46635ca7db1a359d478c7c6df814cd3df2a30a9da62059069af414fd21974306962e64480b7ae6d200b555f29f5c5f845d17d4692558420dff3d08425bb0379b0a16fa5954c5465996b2399b9588d6eaa21200b7ee6521420674dba45ddc2e3c5a939ffe21f1f5526b324dfcd613078ffd2650db38ebf0f8b10382753ecfb330281c100f9e7f07f5174344988c28223f2feb9aa0c2a2b95b8b106a76f0e18efd3f89c574482bb8e2b44bc68b1f824962d37fb20139296a418eaf017b51143524ee28753a1c76c7aa3b2802797a4de43075300ee1d6435abf9a20aeda9e59768eb0f942a42f07ff53a7d239f0575008ca2dc35fb782d4f04e88c59a32fcd66c8719f9c75f93ab2bd6463e11741cf334655653a156bb1787d2ae728bf20a779cdf255b079c5d011d3eb0d6de8f81bd034b270455277a02d5bc8fa71cf2297e694e39376d50281c01469ef09a1b536426742b2a5504938b5756887942899d57910acdb3b1d42116d72f4d928441c7dabdb4ed48d73afc2faf534d876501007d7f71380c65af4a42548fdd24efeaaa3da6f2b898bb11ee4951310857afb246621e1f8c79aa9d694f5d55eb3eec70cf59797bc910ae388ee6b2eded1d839a156ca746d514b68e38a31d733fc8b22614f5c1f64f324403494944e5dfdfe2e1e387398edf0d4830a79ba607f6541dc5876e1140bc7679548b8e4dc517afe106be17453c9e757706a50f50281c02b748d79562ca2baf6b0fbf84c54c6ec2", + "ed95662de8ec9dd6b8e43ffd01836f765ce65d6bee760ebc3a6a696069ee968167f32faadea8c7d52db019dda61c1ae653f4c39b7255eeb838f03a71c2aeeca7909e7db53b93db53e09d25e4821995e0fedca12566d54385eb68db5e6cbec07224a9ea6f7d90fed346ebf24b3bd5173a236f6c5c0232e0ce140aa65dc8b91a20febf84bab9e2e93ad95f1b442236c60806941f05bbb261590af257144660967e1ad54b5d528d789713680bdfb24b5510281c100be472f1ea0f97f2ca2a31bdb65a88d766b3d980a80151b34bda701bca3d1ebe8999566753b224c0d67154369ba297fed337edf7d41847eba2314f40ee6fd8bf3d9e5ee66fee41e91973afa417a2defc30e9c0464bcaacdf07b199c9bc7fd61749926315228c4e2cca77b42c770e89b224bcf4b3b9cf33bf4b6ee57b8559157c968c76b48226026f150ad9480460eb2eaaf411f033b9c3c88e9a354b100a9f147f098c9e0ed6f2036e835a36f59ee7b693f564072b7fba657b3d002117550dc53]\n\n# tcId = 42\n# ciphertext is a simple fraction\nct = 2ff41b212cda4ee5aa5d933257568ae663a1af12ad6adc5ff4136689089ba74c250f3ed2f597d2099e138d5325e89d40d04ae6ce25fb76952d1961acd9a1d9a26aefd557998890a878f19ae27ac851f5c964dbf46d7c3f956a239b2e8118a7c863ed3d327f56f72b5e692719b4edd6cc7554394ee4a4781e3f26ae68f54eb24775f4586bdb0cf5aebec1d526714abfb011ca31b8b3a63a129b140c5c0f785b5e6b82301dfb5c2e92e78e554d99c65f6e83c9c389764b0f3e5835399777faf76984fcaed6f0c5d747017233c1ba2b5cd4164051f3467d20c2f5953529f0abcb17576bf197439548e8c3b2bb81f385afb20ad2cc7afa03a3a00d39ab24b1873b76d52ceb3c1092b256dc996d33a49ddbcaaa563c80049d9b44e66626ed05009e171bd496095dc6905fca5a1f705978462eaee69308d45e2ff12009115a741194ba97aa96d96edfe9ce1b0917d6b70c365ffcff99d31869eeda7d44a11f39d9d0178297732eb6d42994bcc589bab94156b1a97193dce42ae56e760947e64254c7b4\nmsg = 9051bb204d84e7baef267b01594cc88cc3e34d79062cc06eb5f1cc80c56337601a1ae1fdb4731ea36e5dc6083b5e43e386ac4fc6ddf5cbc65f7f97f2294b8db7824906b703ddad27d8e2cdb5ec377112a0f953cca0de2eb7c62e98740af172c44454f9a4313e8dc76e02df38b34a869eeb209068028f30c51a81cc629ddece40c25afbc6c883ef0c25139d46fdbf6d9c11122b6c8cad7c5435e26958fef2113706aa96d97abfe4971217ed1f0fbc4461cdea350b4cde4cac230e2731e835e7ed4b\nresult = valid\n\n[d = 54e134d67551a2fd96bcd39bdce23a29e71e6b69717384f5ee352c22addcf6a472c1f6d98ad76f11936f2714bab0571f382f5bd92a45fd1341b147294a1a0d55ce8cdbc7cfe690e3183a45fb40d132bcc7e74bb5b6f6b2aa945e8fdc497ef4ee3b39a177130952e2e3a9dcc66d2c9c46eca36362adc17fcf4e6a84c2832aef1a3935efc440e341a0323c158ec30a124955dd6d54d6e2b178dcb259b2ae521e5224cb8feb70351eebbe7b6debc7a8ed626406c1e7505e0391b9499614cad29b5712b0088d4f82f460c94ef6ee67ee087bc34dde2adda93f37fc023830bb8aa8c817cd2651f90ab66b20d76a5b8e18f4085eaddc17951e8ec46c023333a5dcebe2878291ada5e53512c1023b4563b30422357bfc97db91c5ec89732f79a641d778025be2c1c26c501b76ec70d9d59b395ba026b4d41e51377dc111b82ab746ff56b5c576db15b186b895d4c7adda2a8d978ce458ec7ccb303565fa606e1a5ba417eb4de307405eaa9fcc922809aa40003945745b20748b114ddaa4aa3c7eed5979]\n[e = 010001]\n[keysize = 3072]\n[n = 00a762fdd1421dffa3c28c13d16254f57491198655b6597bbf5934254060220d4e7baf7fa93e8cb89b608cb5db1d88d87ca9bc8926cd488d21c8cd96d728e4221bcec03e471913a82a682c4b80c3d187ec2d4b9a927d2e11e58a323df0ae5d0ecaa427624e489d017913418cbf450d38de799ecd26db204fbfe554893f774b84340b8e56dcd3182748336dbaf484e6dbfba814ea68f71d581d02f1baa20f4dffeccbfe57744bc5d981921997d4d7f0f0cbde350f1b437f72e0276778d7c200083729f0ccff8b674326cceaf07ada4cb35c1c940e085f86239c663151848b9e790be89ac1af33d65ea0868895b02d243599802e8f7f04d2adde2b38a5db87690d2198dcc767fa4dd27ed380d8a9ffdd197bb40e72238ecee42ac6f92dc2d5dfdedba43b85c083bc78b9a30e736eb5ad4d695e34a05b231b2f81378ae33293f458f16c4e10be9d26b9ad7902f243e70ea829fb68a98134d2596c5c866e3702889770145c1e5c918b254f5d1990a398b6b8b546a3ea95874b5a0fbc759bf09e4fad07]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a762fdd1421dffa3c28c13d16254f57491198655b6597bbf5934254060220d4e7baf7fa93e8cb89b608cb5db1d88d87ca9bc8926cd488d21c8cd96d728e4221bcec03e471913a82a682c4b80c3d187ec2d4b9a927d2e11e58a323df0ae5d0ecaa427624e489d017913418cbf450d38de799ecd26db204fbfe554893f774b84340b8e56dcd3182748336dbaf484e6dbfba814ea68f71d581d02f1baa20f4dffeccbfe57744bc5d981921997d4d7f0f0cbde350f1b437f72e0276778d7c200083729f0ccff8b674326cceaf07ada4cb35c1c940e085f86239c663151848b9e790be89ac1af33d65ea0868895b02d243599802e8f7f04d2adde2b38a5db87690d2198dcc767fa4dd27ed380d8a9ffdd197bb40e72238ecee42ac6f92dc2d5dfdedba43b85c083bc78b9a30e736eb5ad4d695e34a05b231b2f81378ae33293f458f16c4e10be9d26b9ad7902f243e70ea829fb68a98134d2596c5c866e3702889770145c1e5c918b254f5d1990a398b6b8b546a3ea95874b5a0fbc759bf09e4fad0702030100010282018054e134d67551a2fd96bcd39bdce23a29e71e6b69717384f5ee352c22addcf6a472c1f6d98ad76f11936f2714bab0571f382f5bd92a45fd1341b147294a1a0d55ce8cdbc7cfe690e3183a45fb40d132bcc7e74bb5b6f6b2aa945e8fdc497ef4ee3b39a177130952e2e3a9dcc66d2c9c46eca36362adc17fcf4e6a84c2832aef1a3935efc440e341a0323c158ec30a124955dd6d54d6e2b178dcb259b2ae521e5224cb8feb70351eebbe7b6debc7a8ed626406c1e7505e0391b9499614cad29b5712b0088d4f82f460c94ef6ee67ee087bc34dde2adda93f37fc023830bb8aa8c817cd2651f90ab66b20d76a5b8e18f4085eaddc17951e8ec46c023333a5dcebe2878291ada5e53512c1023b4563b30422357bfc97db91c5ec89732f79a641d778025be2c1c26c501b76ec70d9d59b395ba026b4d41e51377dc111b82ab746ff56b5c576db15b186b895d4c7adda2a8d978ce458ec7ccb303565fa606e1a5ba417eb4de307405eaa9fcc922809aa40003945745b20748b114ddaa4aa3c7eed59790281c100e65a90db8daf3545d1746374614d0cb0e3a7d648e11b473f2b68c6307642ad3231bdd574a37b5d7c497fd558215a0e52aedc609236a57e8413abc392d76102b3f00d9112e5ae124af804c9f43af0af1e5ab4bc704d75dfa838808b7bf19de5eefd0cc993fc9edaa9bd7d1a380a7bfe48a174e51ea9f79bfd44653e832d5f5d167f865f03fb5d5b79ce23fb754b00d5da41fbcb907d0ddd51e0f37c1aa03c775adf3864dabe0b04173aae39e01e8bf26c0f379ed659966c45394a4df8fbf6f0b30281c100ba05c47bfde6dc10779621d132cfbfdc1db9c21d5dbd58f22f3433d40d0354957b91d6c057a3ac3b05be859b7be3e57f234bec2095a641bf4e4eb7b3af33e98e2de19730c75abef27ec4e782edad8d12cee841b2fa08d2da54da80e287645a92380ea48723950f17b9132c0a39bb5fa310479da25cb4347d3878d9ef165516bdd63b42a514f9afd6dee14b5251e27456e663b9855a5e6ed583bfb2b7b869cb65bbcee30aa99a7f70e9c3402de10dad0c5b29364983d10fe4c7d8c60727a2d45d0281c100e2304bcd4a72a07cce0edb198bf17c64b52638e3972691ef1550ec4ae9d4cefc5a9b6cddfb2947c2a2e94334268ba744c92edc24b6440ad6e5f9e3306d0c74fafadc577796d0366626e38ceaa475717efcd23bb68a591424ba567ea055c015e775d2f89cb791c464a80c0f92b7b8c917c87260089c1ce6aeea59ffe80ec5754282360f56799c521668b42c56202fd1cd5ebd4045c085bcac89968c6618b1470193ee6c19de4232e21c5cb7b7ba46f0e3ea8d530a672dad62cbbe8a91d1d7c8c10281c100a1ed5353fb7872278371948e5e04a9a619da11372eda1c0af53c23c17a7263b69b921fb5de9402e07de792b5fdea2b63b87de65596eeda5c84f5d0c300c7d78e8431d3420ac6db608b292bbdb4d755ee015dfb92a843f60747c5cc5b642fdf0758f4a6135ccdec0d627565e8a0c8923f87744fab7db6ffd9e0c6922ea4e9fc99d35a52711109281f8a73e2f50d826a731aa9c45c6885bb44f1227597a757b04e2665b90d1705fdd974231a42d59ce9fdcf7cd85cb5f9ce3400229a7eafe9f5a10281c079ea8caabfe7b48f32bcbb6d37ddbd14b293206e2ef643bf24152f6547da9f7026e39c7de412258a19adbcd40210f0b1611ab80454ba2380f585aab16c24e40bc5cbb52425f52b8bedf18e5b72ab62ad842f2bef53e26ba2a8941a85b2d52f81e6ba0693f880e589f0408ae7f90e178e1448bd4834c45593e79b694ffe9ac7acc80f2d3bf428e07ad533e2aae4a6ed8af55fadfea42bafb06e060497034681e6850725949be9ca50bbf6addd84174a96e44c3092c663253009f6e1e3fbd0b1a7]\n\n# tcId = 43\n# ciphertext is a simple fraction\nct = 4ee87303363cf42a6101eeef2f74c0f13ca704084d68060f231d0e1309ba40067491005eaee0e4e2d6e564f38b186125cb02555c7faf83e48ed04168ede1a2ea2cfe0fc689c814a76820f60d40ac2fe082f883e837c3ac574baf0f53bcd0b9ca80cce0120d0863aed4bfc6366ecd51da4098f6b7dcf0ab9ebaed12f6334acde0bc4cfe8dd5bd5850aec99aba4dc92a727a5c673f16e3753296b3c26483f2870055d46b597f2ccf225f62043e6bd2abe864ab690b99aa09eadd4a2f4ee5495bd4f0dedfdcbaccd4a0def6f6fd93e5be995a3eb0864facfae1b2cc83f134aecb8f3c4aa81b945f379d507480ba94ffc13c936b2fc649f2e6459abb5c8b982c43dd4161021e657765fb08c2486a5db2cb61aa4e45c1ecc2bc9b7d7fa98a99713ab85ce8a9f2c4849ab48fcf6b90c08c9e86ec5128f7e4a1a748ee32cbe1d9d5950e39f7b63018d9918dfcbbaa417da93a4d808479147c0c0c108244deb1c618d381561c74f2f093224296b3421655495a4448ac93610333683100bfa4908b7844a2\nmsg = a3358105f31effa728ca6a83fc80fee55c873991dd508b69dad67dbbcc48ce438a78433f2c017940c8a23ba0dcd5594331c7466b34b57e9f45651b9e41db0bf7a51fa5ea668762a289b7beda3132352a4ade02a18dd153c6f6ce69c56bd80b58f4faeb0", + "2456d2079d25f1bdd754d8601bbd66e8c3cfdd8106396dadf322706646312306ee36f46e48cec77208ad06e19d9991ceefbef5e0f29f13d4d93b353b74879f368064b0b76c317421756d5d553bbb6b4eb36fe9cc5b2071d7b30c636593e569662dfdb08abaa17470cde72ec062f109a5ac18922b380e28529ec30b7653faefa032342874a923bfac463dfa8783e3a59f387ae3e44009a2b7023611c6d96732ff7cc8abc1f72894ae2be08ad23fce8a352be899f60df068a9ecedf82d164bb1b6da210af9ae6db9550326744b09f3c33e12b3f7058bf\nresult = valid\n\n[d = 4c52abd7579440ef5577209ba63655b93ec8b45ac124240e28e59657aa6b0d979cfe2374891c9167443d58cb4ae1523ff9231338fffa70b4501077702414807d7502dc327138071156239f9ff6c33e59543467098df8f15da73593821ddbdd7d75a2659d274ee4ff04cd1b54b6f867a48b6a4c6bd42d29bd8057f2e8aed167349e67445dc4ee3f10debdb440f30e51f6a0bb72bcbf32bf6f4d58360e2843628f771df3ac84e3b7eb61c8d355125f35147a3cade3091af509d98fd3b9f2c2d3ea84f89f2adab3308015e8777a2d11d60a664f7c0493eb5113a6dd7a1c41fae59de6607175f508f376103def6ee0bf7c80564733d3bdd461a0eed2d2f5c07678aa31bb92020afde77ef27e5923560e9912786d980839b71ebb694419d6c26717a5c3829ab28d5c9ea3f3c3896471a0f22c8c72cf927cbac507e6688509d580997c622b92c01a6dae52667d1737200e7d497d99dfd98fd904ae22d93e12d214c84f880876007b2bd2ce180f511805a7fa8a5554cb54748fe6ddb4b9c41028078d41]\n[e = 010001]\n[keysize = 3072]\n[n = 0090f38222fb4ef791c721f67729c434b2ca9232e32aee344d9af50b677ad78dd549c8832e1e377340f083bb56a57f7d349409b4c6b903d54281798331ca348eb03f263323710c32c0cd80624ecd8c3fb7052d196a6b614c0b7562bf199e79b07b963d63f824a5e9410798f8cd7b55a8cb59d0c1e0ba4d6f3593d9176aede26e047e24fea4861922539b18ccdc798a595b3584a3dce1488b20d3562b6e589e6c1849378a914a1933101101412dc537a29cda694906ba8482f56559a0397f5e258dc82e69495a5363c833ebf18aa39a172d2981bdcd9f1a0d09f0e20134cdc6e0f1e1706abc8360f69d96ee54462afe93bb21ff35133baad6e390be2524e00de7babb9f0ec80d08b79ba3f9f1fb627edbe15f1fd989d9472c40126476d7ac546bfc17e190bf461693767eb877736891c72a220f6004c6a501e97a82479718d23d314200d3ddc7bbd67cecedaa21df341598a8fec3f6c1dbcb0d5965373571cf502d84048d508cbc145e7a771746abaf40cba136da78c194c124b7c3e898a7a848cf]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e2020100028201810090f38222fb4ef791c721f67729c434b2ca9232e32aee344d9af50b677ad78dd549c8832e1e377340f083bb56a57f7d349409b4c6b903d54281798331ca348eb03f263323710c32c0cd80624ecd8c3fb7052d196a6b614c0b7562bf199e79b07b963d63f824a5e9410798f8cd7b55a8cb59d0c1e0ba4d6f3593d9176aede26e047e24fea4861922539b18ccdc798a595b3584a3dce1488b20d3562b6e589e6c1849378a914a1933101101412dc537a29cda694906ba8482f56559a0397f5e258dc82e69495a5363c833ebf18aa39a172d2981bdcd9f1a0d09f0e20134cdc6e0f1e1706abc8360f69d96ee54462afe93bb21ff35133baad6e390be2524e00de7babb9f0ec80d08b79ba3f9f1fb627edbe15f1fd989d9472c40126476d7ac546bfc17e190bf461693767eb877736891c72a220f6004c6a501e97a82479718d23d314200d3ddc7bbd67cecedaa21df341598a8fec3f6c1dbcb0d5965373571cf502d84048d508cbc145e7a771746abaf40cba136da78c194c124b7c3e898a7a848cf0203010001028201804c52abd7579440ef5577209ba63655b93ec8b45ac124240e28e59657aa6b0d979cfe2374891c9167443d58cb4ae1523ff9231338fffa70b4501077702414807d7502dc327138071156239f9ff6c33e59543467098df8f15da73593821ddbdd7d75a2659d274ee4ff04cd1b54b6f867a48b6a4c6bd42d29bd8057f2e8aed167349e67445dc4ee3f10debdb440f30e51f6a0bb72bcbf32bf6f4d58360e2843628f771df3ac84e3b7eb61c8d355125f35147a3cade3091af509d98fd3b9f2c2d3ea84f89f2adab3308015e8777a2d11d60a664f7c0493eb5113a6dd7a1c41fae59de6607175f508f376103def6ee0bf7c80564733d3bdd461a0eed2d2f5c07678aa31bb92020afde77ef27e5923560e9912786d980839b71ebb694419d6c26717a5c3829ab28d5c9ea3f3c3896471a0f22c8c72cf927cbac507e6688509d580997c622b92c01a6dae52667d1737200e7d497d99dfd98fd904ae22d93e12d214c84f880876007b2bd2ce180f511805a7fa8a5554cb54748fe6ddb4b9c41028078d410281c100c30978cf3b781b5bfb0bbc13f1a4c9f45a3339d030e9bb1bb07efa65ddef3b1f119759e9f7f997b049d84459c78ce659adcd5a28618d9b76f51c8f6053695e0e3027eb19c123dcdb2798298faf7bebd3b76ed3cadd2f192c5f6c269081dfbe2a8643adb5c6a15a2469fbad3d359b443e8492d4049863c87487d44122a28b410cb84e96d67e42a612675c7192c19d442d57c702166ce73fd81cba85ac30ded1d74531705950121628a77f2bd1125b4c8dbac1bd368cdfc2f4a7a4b24de0bbb8a90281c100be4241ab747b3bb2a6aaa2f12fbf54ab1ccd4be7b595fa0b0936c666fcba2f266f1f3f204d6484b5a9ff1129e6e2315f88bb966845dc4f0f123db7c52d4497ace2124edfe78933adecb81bac9a567a2ddec437e1cf33a37b9e51fef301fef9bfae75191855a72a6b7e788034470ac7c8854e859c71752bc96f4f0324c48a3bfe964749142091aa32e05fd48e1cafda69212e0b070f1ccecfeeb790b746fef4f1521554bf15a3dd8de7e0dab2c45372b9e15c273fe46046efe903e04fbb6208b70281c03b8445707fc64c1b0a85ef33ead68da65a6c2d6541b7e1983688d92282d241295ef5dfc34d1fc6514e87877c1a2ffe0f39c16394d508207bf19a708a4589eee0c78336f41a03369f4dfada1bf5c20c1a046cf6867e6ea3f0ed8194571ebac74e34c0ac5ebf2977d78adbf966a75825402ab69faa735267d65fa8bee3b1d46ada55d7eda1b0cfe7dbcfdcdeef98d3c3fd4e3ef57d2068850c0ee04070664d689d9788d9aef7873d69d48b3334ceb43bad38636cb91bce20b106037541dca58c590281c033d7d611244258380c163f243d80834fc51f63e9959f726d036bbb9060995333c3dfddd1ad85106c78101adb3220bc976da8c00955cffc72fce37869f035daa6af4b91d68d3ee3a826f2dc07a25ea21851b5620cd3eb1c471912fac7b8e983a069a75ad938adbe6f601cf1c24d01710300e02ea43c7e531a268c7f2ccba96743ae2b6a8c637b8dc72340b9a8a7c47b5d5e3f2f9e12ce24c4a025c0f7500f352b74d47f2d3a76566ece9a84bd65a5df832b17735283a6806deb2eb536c4b6a7ed0281c0791f6fbd63ee2d256dd93e9ffa275096a766668ec631fb18827c2e4f6af927a5b72007bcad5517cb40918703fd9f1c3a5269eac842c700a61de731a68f91da4a76a270198f404a4c2006afb9922b67e9f4912bab722ba5d156dfea40bf5e328387f8ce5a894a982a1e9890cdf0c855228095aaa250cc4ad775a8e85edeb8867e5bbc95ee727e77610992181d7d05dc009b190f49ab2221e433172a1ae3f91b377df7ea38b6c495087f4233c7364ef6c003beb65a83eed8cf249c280d4f92cdb8]\n\n# tcId = 44\n# edge case for Montgomery reduction (32 bit)\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000\nmsg = 3bebc6506bab5270d75c0ef65ec469f0517365b2b5\nresult = valid\n\n[d = 2bdf9d823724173cd8b77b068b9c948956b282cb750f90bec6e281b5ac9bf4f58e0520eff21e95765c4f08f749cfb043d2037b44a11ce1ec7df96e9fbb982814df53fcc00c3204c7983fe5595d77c20a566edc3ed3b638ae64d69e288ae44e47792f20a7ff4db0db19ef8705b27219376e90cf9beaa56bfed0de2c887ddbbd1d2ee7cd0edeeb28e2d02a119936656bf25f5cfff2f176020d74be0913ef20587a872e8f969d8da98d829133e99168a33f91fc4f5d151562bfbb1c8480d04fef3b70b126194feae6c917ea5f4c737af9efb31766ae6c3b462637f24a20cf16a9bbe6f4b450239376a5da2acf78a9c26fcc0e320c25588414ccdbc8c2add7094a57072f591b076ff21a9e1380e3e280aeed1d1aad830b23b2f7aa6abd2161d338f1c2ddedc4c52b35cb6bcfc16b05d4ad3110c95598aeae0fc095c196ba4f10320b868fe18d39eff719fbfb8e38c3b90070203e9a20807a44ee593fea9eff2828f9123a5178a2502e1dd18f7990bf758fce88e5fbd8a6a6591bd2e900ef9afaf881]\n[e = 010001]\n[keysize = 3072]\n[n = 00b5fbbeb378429939f0840398ee088ead9d2980ae13e180f1feb97f07e12d434c22a6ef1a1a6b306daffb6b4c642e0c801a0ad8142980c319caf3a18694ee8f9233bb7f390c58ef6f4bb0a22ce4ed74d2619f9b1e336952a493d9299830f2051dcdd0758d27e2b55a006e73b4b6e40fb576fecdc8b04e2395a91b0c6c032def08e119fcff4965e0dbb92d441a9272e1aa5fe8a83f04ae869a1955200c51362cc3faf6635f7bdb4d9076b6178193ac573ce06f7eca89f4b867249f2adc6eb533a672df58f4f2097a2537dd1391d9c628a740e39a08c1c37036ba90c434a2c7d1f47b1d3dfb9d1bcfc3aabf3464315f22fdfb2047404cb304b9ae3833af71085ce2120ad01ecdd661471f85d60dac9e73bf86a9dad04b1bb405391c070c0d09ced49e4671c56affd2022aabda46151c790ac6e6fb44281d311a4608566941e9909f8a586487a707ee25ee30e53e26a2a0a99698ee042f1317bfcaf3585d42440a92725181c892a50a68e848791423ce7e6060d22e0118700f8f64df832f738ff1f7]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e402", + "01000282018100b5fbbeb378429939f0840398ee088ead9d2980ae13e180f1feb97f07e12d434c22a6ef1a1a6b306daffb6b4c642e0c801a0ad8142980c319caf3a18694ee8f9233bb7f390c58ef6f4bb0a22ce4ed74d2619f9b1e336952a493d9299830f2051dcdd0758d27e2b55a006e73b4b6e40fb576fecdc8b04e2395a91b0c6c032def08e119fcff4965e0dbb92d441a9272e1aa5fe8a83f04ae869a1955200c51362cc3faf6635f7bdb4d9076b6178193ac573ce06f7eca89f4b867249f2adc6eb533a672df58f4f2097a2537dd1391d9c628a740e39a08c1c37036ba90c434a2c7d1f47b1d3dfb9d1bcfc3aabf3464315f22fdfb2047404cb304b9ae3833af71085ce2120ad01ecdd661471f85d60dac9e73bf86a9dad04b1bb405391c070c0d09ced49e4671c56affd2022aabda46151c790ac6e6fb44281d311a4608566941e9909f8a586487a707ee25ee30e53e26a2a0a99698ee042f1317bfcaf3585d42440a92725181c892a50a68e848791423ce7e6060d22e0118700f8f64df832f738ff1f70203010001028201802bdf9d823724173cd8b77b068b9c948956b282cb750f90bec6e281b5ac9bf4f58e0520eff21e95765c4f08f749cfb043d2037b44a11ce1ec7df96e9fbb982814df53fcc00c3204c7983fe5595d77c20a566edc3ed3b638ae64d69e288ae44e47792f20a7ff4db0db19ef8705b27219376e90cf9beaa56bfed0de2c887ddbbd1d2ee7cd0edeeb28e2d02a119936656bf25f5cfff2f176020d74be0913ef20587a872e8f969d8da98d829133e99168a33f91fc4f5d151562bfbb1c8480d04fef3b70b126194feae6c917ea5f4c737af9efb31766ae6c3b462637f24a20cf16a9bbe6f4b450239376a5da2acf78a9c26fcc0e320c25588414ccdbc8c2add7094a57072f591b076ff21a9e1380e3e280aeed1d1aad830b23b2f7aa6abd2161d338f1c2ddedc4c52b35cb6bcfc16b05d4ad3110c95598aeae0fc095c196ba4f10320b868fe18d39eff719fbfb8e38c3b90070203e9a20807a44ee593fea9eff2828f9123a5178a2502e1dd18f7990bf758fce88e5fbd8a6a6591bd2e900ef9afaf8810281c100f80e6711f5d388596aa61c5ecb46b63b25e87b7ad6c2a6ac79d34a26df22e70cf82433990f9f2820713e4d3f15c774717eff4439a29c052a3d30ee3a6455f442066e018ea85239134382c81a5fbe60f6ec45de0036731940bc85176b691a097806ecb890eed718b9cf53e59f624ca857482c7a420d5e39c4355cd833e978b507e45265e20df14b6e5ab99fe595083e77ec6632304f5e746f87fffa140294c79067fbf9c8b56d9581e414e338fe68298e910fd1d996f303a997770fca4f44cc490281c100bbcfab12fa118ad019a26efcd4911dff03679531313ad18d65068c8a0ce361984d6e08e173e4b4307f5bace3a12e467cf6856df8fa8f96aeaba7c41e6f7b4c3bb1cfdf600c738a69c74d9a56cb2e5742404ed12aef16cffca795a5ad5c2e97866594d1eb33b3a0efaba81b1a762784e8ee6c1c21886ccff41cd1a887f3098850ddb476341fae03e6940634d06f9d2af51f01b2e5fa7dfaed42d961ac8252b5f6103de163bd724c1abd7902dcf1b5695ce1f663f422c095215cd1c50bc51c4c3f0281c100b670995bfb4a762915a8508b63c48138e57ba47dc74068a7c7fe1fb6913cb164b788a0ae7d6fd86a6bff9f7ebb7cf3e699ba132ab4af3d9940622184aed10d12167a8808ad41b41ab7f79346da8e41f0b9fbf4f881138c4a319d4d894146d61a0235ced541e4cf99b1a409e97cb9d6c24321fb5563519ef8f12a7515512ce73083bc1a94f51e38155502db58569136a8ab24cadaff35003c1b71a8335966a5944ef663533c24f9e60ba3552f50e5b952d2dc28c2792408d88dbf12cd001a20890281c021e3dd68f53b0923781cb98e620535b678b4ce552c1f030552bf95c8ab7eb473b9352be112faa811404a18ae92bd38f6ffbd20151791a58d2b6880994560a866f5351f87c3776df89c8042637b1287a86ad64e244334889f7cd6222960430010be6fd6596ce0f31f8c882f2bdd3a505f7ff67e3506db2bc34f17fe235a15d445535c67200cbf67f0c9b13d0287c182a8ecc96fb0d43cbb74e8e5351cddff72da4e1ffc75f50f94f01654a9d198c435990f2558f00afd596bc5c60c9a8d1d081d0281c10087f3fee284c54a91f2a0f746a49d088f7b46428bed974e9e20583931316c66a0f641834fbf85b78781704d134dd371ca57a2eecea5fd04239991b56119aa81c41fa260c81c7f58d2a57c897f4e08156331fe181a1ff587e84c778b80c6947abb9074c3e5e3ab9ecb901a34564331c89ad6d7734ffaa209913aae4c48d057b2a0ebb58871cd6c7c37d5e17aa7a7de3f145a7fd7d3dfae8efce0713ea23d65ea731ba39a7ce995d89e85b6353547528a7f2eb00b2723504ac841a4d3126d00140d]\n\n# tcId = 45\n# edge case for Montgomery reduction (32 bit)\nct = b5fbbeb378429939f0840398ee088ead9d2980ae13e180f1feb97f07e12d434c22a6ef1a1a6b306daffb6b4c642e0c801a0ad8142980c319caf3a18694ee8f9233bb7f390c58ef6f4bb0a22ce4ed74d2619f9b1e336952a493d9299830f2051dcdd0758d27e2b55a006e73b4b6e40fb576fecdc8b04e2395a91b0c6c032def08e119fcff4965e0dbb92d441a9272e1aa5fe8a83f04ae869a1955200c51362cc3faf6635f7bdb4d9076b6178193ac573ce06f7eca89f4b867249f2adc6db533a672df58f4f2097a2537dd1391d9c628a740e39a08c1c37036ba90c434a2c7d1f47b1d3dfb9d1bcfc3aabf3464315f22fdfb2047404cb304b9ae3833af71085ce2120ad01ecdd661471f85d60dac9e73bf86a9dad04b1bb405391c070c0d09ced49e4671c56affd2022aabda46151c790ac6e6fb44281d311a4608566941e9909f8a586487a707ee25ee30e53e26a2a0a99698ee042f1317bfcaf3585d42440a92725181c892a50a68e848791423ce7e6060d22e0118700f8f64df8330738ff1f7\nmsg = b747fa5381ef690edab4c84ad7ea4b62c60a6531d488ffb7a25d460861293576d5dd1cbe10b325f611e2668f43f1b971bbf0216fe1de39dd040909921411f7bad92738926a63a62d53cdc5f2099fbd7c8d8205f1e3155c4d86bfad77ce616b91a58afe60010104b93496cdf17065ec126bc2776a6c40a74fbf4a5ca049ea4fc221674aa7c1f231d8229d0ddd467dda62c35596fbcde1444f53b3e9ea83bf833b1a2501f025a5b10a56f2e188b91342e7620605d2dd08511044df2301d3e579b10f46965ac93bf427b14796b51dda2baa94ff226aa3a2fde423c79a3b52aa253c863d48e8b868a615a9493f485650ea68fa7c295204240b58af70754960bd5eba203f32415088cdf429e62e0e9b8806a647ebe3a5ffd1c4fbb85a75476d1cef4a48cf7768bf59d0af5d1e6101a69fc36d1591a3b08cc11debdc21c93d46deb0b11f04f55563e13437ea55200b357900e5685addffd74f3c51a9\nresult = valid\n\n[d = 008134100911fcd4d7f821dc71fc0c9efde7c321ffe747a5c169338747f76f02c314489c9c8ffcc149af378116027f6ba6badbbf4e2ad58ea394bd346c4103b929816e589190b657967db55d04cf0264eb9a1ef5ee28c0b8c2709246c5495ccaf5cb5c857eeb126db56e062e21f7401f7892886d53ff28b3888815dcf2b856e715bc9c0b10b2c7679d9913df47ef79e88207b42a93bc82b6e24eccb3260cad74253b98cf6b00f042257bed105cc3dae4f6470f3c641b5ba174cb3d9b2b0cc4b4c1373aedd0ef11bda1310a976809843512523a61a7112af70031541ae4020ee160026ee007bee65c169c03ef3c8697cdfd8b1b21a227b8f49df340abbc1df492a0cbfa4f4b7fd5e58fe6dffc540ffea31c7fd86eb4acede0eaad8101434981f3716488e5f7d69c6e57c0f1c474facc718e966db0558ba3e304956ae2e22dfeba40c21a188e7e6d4b69d000c106f5d718501f987fe3f8bb3212d7145d42acded2f35efa165edf1087ead05dfa52c38abc3bd17e1895abadb0344092af20daf85d01]\n[e = 010001]\n[keysize = 3072]\n[n = 00c45d243558c9b24e526f6c210ee488091054f9c8d82381dd4cd05af85b9bb51d9e41dac5b7b31193384c5eec8f9aa37bf5cdbdc83b6378a6b8963a4e779c83c6edb9e3628531aaf1d7c5bdf941924a56b16d086097e060e7a1cd33c0c992c484af9890a31849f3946714e2d404863544885bd9d77dc11055458e5ae1b1f4626ef1345f03b41b4679534cc3508161df163d6bf4204a38fcfa77154ce557eb33f016985a2a26fcccf792055e5205a03c221fbc02a1c8b1520f0f3953a0a223e3e0eaa2b29617ef1dc468e6940843764507f65bcca1ab61096551f8c5230cd4317fb3dafd7d502e0656574b18cabb36c072c7b6c662cdfb31913ac187cf10e7282b746d7b8d62005e5d14f8e7498e203f5252969b264b58f83e7c6da99b5c42c89d000099c76626b847882e441a13bfb5eab01c7887d6f2721fb1429bb799061033a3cb2c7ad055abfba98c027b076e1f5edb33600991b5d82f97194551472969108560002684bd72df38b0cff895f419ef18e38d0700ebea816a0e92f350651d55]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100c45d243558c9b24e526f6c210ee488091054f9c8d82381dd4cd05af85b9bb51d9e41dac5b7b31193384c5eec8f9aa37bf5cdbdc83b6378a6b8963a4e779c83c6edb9e3628531aaf1d7c5bdf941924a56b16d086097e060e7a1cd33c0c992c484af9890a31849f3946714e2d404863544885bd9d77dc11055458e5ae1b1f4626ef1345f03b41b4679534cc3508161df163d6bf4204a38fcfa77154ce557eb33f016985a2a26fcccf792055e5205a03c221fbc02a1c8b1520f0f3953a0a223e3e0eaa2b29617ef1dc468e6940843764507f65bcca1ab61096551f8c5230cd4317fb3dafd7d502e0656574b18cabb36c072c7b6c662cdfb31913ac187cf10e7282b746d7b8d62005e5d14f8e7498e203f5252969b264b58f83e7c6da99b5c42c89d000099c76626b847882e441a13bfb5eab01c7887d6f2721fb1429bb799061033a3cb2c7ad055abfba98c027b076e1f5edb33600991b5d82f97194551472969108560002684bd72df38b0cff895f419ef18e38d0700ebea816a0e92f350651d55020301000102820181008134100911fcd4d7f821dc71fc0c9efde7c321ffe747a5c169338747f76f02c314489c9c8ffcc149af378116027f6ba6badbbf4e2ad58ea394bd346c4103b929816e589190b657967db55d04cf0264eb9a1ef5ee28c0b8c2709246c5495ccaf5cb5c857eeb126db56e062e21f7401f7892886d53ff28b3888815dcf2b856e715bc9c0b10b2c7679d9913df47ef79e88207b42a93bc82b6e24eccb3260cad74253b98cf6b00f042257bed105cc3dae4f6470f3c641b5ba174cb3d9b2b0cc4b4c1373aedd0ef11bda1310a976809843512523a61a7112af70031541ae4020ee160026ee007bee65c169c03ef3c8697cdfd8b1b21a227b8f49df340abbc1df492a0cbfa4f4b7fd5e58fe6dffc540ffea31c7fd86eb4acede0eaad8101434981f3716488e5f7d69c6e57c0f1c474facc718e966db0558ba3e304956ae2e22dfeba40c21a188e7e6", + "d4b69d000c106f5d718501f987fe3f8bb3212d7145d42acded2f35efa165edf1087ead05dfa52c38abc3bd17e1895abadb0344092af20daf85d010281c100f46c1176839f31eb0adbd423e8ecda275ff2b47be39e06145a6304d30a90f303844a6a8b3000e53119e82c303cb02ee3a760958d604c6f52d56b5bd5d99e0fdce41765645f2c0cd3446076eebee83aaefe2993713e370915b23ec58ec6b195e596d16934043fc88f1a718bec3dde99acace745c9d016383fedf5ceb5cb9f01e5cb0f1ea801e163fd1c6add5a34812aefcc379f67df11bc9f53f32090af8c07d05680de33e45fd449476122468515c670473a64795a162c7c26bccc78684f03b50281c100cdaa4dfcc60280d76a88b2e313e6b0c8b9f479bfd1cb64fdaf986eeba366d4ea160b35e11807d460ff58629c00cf2ea27c3241feae19bc2ed7b55490481b1b3222b420991389e67a638a3b35a7f0154a1bb3a01b30004946389e5741031a512ce2a577ee08143d3d7309178d80c35d993c2fa31172dcf249870ede3177e8d4577c51d7f0608241cd41c124b3d577564c515cff6d39def26915e18086d3f227ff1e2e54d1b17a89778ea3b6aad904fca69eb072ba26b6cd1998e88e55845af7210281c100ca57848566252dfff47753c17e9c4564ff4b3f1aa8ae333e3a2d6adb030e47ff8b4ec7b0fe465f762c8a45ba9123114e294c0dc2820c04c4c025265b7cd21b33b427a22a5b976dee9fd673dee56ffed4cb57c3d5a5b98dedc627ad08ab786c2d2a93a5d2080a7d8fea46419d8b027299be719f16990b2bf9d097034f00885bdbce24702e898ffb649857e7733bb00ac985782ea0a0cc60284e2921b6657d3922c1d9e119785fd4afed457e487ef82dd4d9427fd6ee3b190c964d09c04c29cd590281c010bec50ac7b47c790d9b83b52971a70330e0cee8e754002d079709b0f5e4f180fdba7bf08fdc53567273e7d37bdd6296a8360f59852363470d191e8180dd742168e1f1a58509bd5249b87f89a6dacd60f35074c0c1efc4078ba498c61a5292396d5abba10dd7580520d0a4b248c19f6552992e55c55c67fdc499594dfdcd5f3ca04aa9a250b94a5244004dd4b694b8da0de5dc8630280ee4af7b64d3957e29f383a9920e60bcf16462a0c1c6b754c89d685e4579129ddfa52de60170c50e03010281c100a4d330fe8b4ec139f5300967de981d851e69f4c62dd74ae35a1251eca757fe9b44305e8286d2e476512030ca44a710f63889695eca836bba1b3a06bec01c07d2200a36ad3d62f8efa05b7c5e11b9727a819285a1679a52f7a9731a2f28eac30c3e48db5d80396091c0084c24cf518304bb98bef03b4dc69868701df749689d34340658e2b7b4a9c968a1b7baaf8e5e1fac2745379448797c9cc83cd5e798b3dc3cc17e7556f72e5455c596622199979c3b2098310e3f951b3d34e2f3677dd31a]\n\n# tcId = 46\n# edge case for Montgomery reduction (64 bit)\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000\nmsg = b19088d23ebde16ee0250510e7a3b552a748c10cc69803baa831ca5cf748ae8af1b154159c91fc6a1b3a10b0469b70a5be13babed33e226328f85a5aa430022fb9681f8bd343866e52faed173b57a1520843da6352f4f99a605bde4892f282f89a2418fce76bf893fa36fb160f4b968c0b9197f8072ff86ffdeaa49d5677c824646c1f5dbb37d477ba941f2406c7a190dc9dc62f9c8352c73dea2692a2185b59b4bba93a107f2d6c30168a7325f8cefea91ef5710dbbe1833d838241b229dbd17e5c362f18068fef2995aaebafeb3c89ad5f86ec80a004c2380df2568c2ab0b311863c7506aba65b2bcc5956d75fa5eb250b45d30304098b3ec36b8f34b4ed1f605bf45c7eb73b51a3462bb53dcc8f3e1031c360d6d6c891c98116ab41e9d2fed268018f8122bc79a33261ec2b3f5c\nresult = valid\n\n[d = 6f2ae20173c27755b9ff2d908cbe9ae33ccd4bd0410dc2223b361874d9aeb953ff56ed1cf9d4fd3895fe6cb870b23c67d5ad71108931210b13144e4d227a3e6757832795a8a04aa6992fbd8d6259616376a741cb7d0bdc4ca76a0636348aae1c7b9d4a10d5663429096ee24abe56abb12af3ac3b4e335de5740aae06e4de2394519030b20e41acb8c87d1b74c7c8ae009802baa81806870d8ead2ed6fbfcdace71805830cb304db3cff612b09d7edb056ea7f4d6c4c888eaf72516a29cde26677e953fc7279580ce0bbd92678afa5b922a51268764ada15558fc11c2549f58859dfe0c3c103be4b9823408f5131967c7d00c4bfc4fafe546bd5c2e4bf972dae2810cb0186bd1319580be764e90c71db2ad01484eb88c6c7e45fb11fc7bc50b8a0f1e216df6b2d0990a14e24350a624b3c4c71f0b4963c11fa82807f4dbae4c03deb8649fec13b5b1eead4a5305c64595426c2b7a3f5f3b4bbc6be3deb611efcc046a5acd29c71ecb2d7f7c51d989fbf2895acc7e93a36ce8e8723d67d21ff6b1]\n[e = 010001]\n[keysize = 3072]\n[n = 00ed961a800f86f1400cff5a805da0937ab9b864c28e38ad93cd02ed6ed75d88c25a80c8cac114273777bf70bbea37755e7a69c31fc8b70350e3339cbbf9f35e393c2fd844dbbe35a303f7dffc42578125869f3d24035e056e40dae7ccdd5ed11e0f535694bec4508124fd95c5fc168eabb679b1c4a171d460f4d6e6e8ecaa68a86939d8ee9e54cb15860c234ff1f424c6c5cc69c792423a414802957c567ca137539d56639f89540b089b2aa3f1efe462e41a7171464fce9b7ede87a834912fee99b26399209fddce06505488e9bb64f83690f38dbef725835759a0932c208e7d378322037df6f495ab4e8dc009641f2fc6bc9afba05c25ac9ec1cdcbcba27c0f82bb7c392864d6f6f4bbd445123944b01e0c7f24ed6f62941f2a0f203dce4cdef6584c1020e924f2edc3746084e4c34a82de9916b7d264ddb8fce6b3ba4b8c3b6c1ccfd8dd81df854533751281732b4ecd3ea0c505dea02de186b2c8fda8bc7d0b09b0942968fc87f1e65d9750f6c9887a0d74d915f77b858862c79eb0244c61]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100ed961a800f86f1400cff5a805da0937ab9b864c28e38ad93cd02ed6ed75d88c25a80c8cac114273777bf70bbea37755e7a69c31fc8b70350e3339cbbf9f35e393c2fd844dbbe35a303f7dffc42578125869f3d24035e056e40dae7ccdd5ed11e0f535694bec4508124fd95c5fc168eabb679b1c4a171d460f4d6e6e8ecaa68a86939d8ee9e54cb15860c234ff1f424c6c5cc69c792423a414802957c567ca137539d56639f89540b089b2aa3f1efe462e41a7171464fce9b7ede87a834912fee99b26399209fddce06505488e9bb64f83690f38dbef725835759a0932c208e7d378322037df6f495ab4e8dc009641f2fc6bc9afba05c25ac9ec1cdcbcba27c0f82bb7c392864d6f6f4bbd445123944b01e0c7f24ed6f62941f2a0f203dce4cdef6584c1020e924f2edc3746084e4c34a82de9916b7d264ddb8fce6b3ba4b8c3b6c1ccfd8dd81df854533751281732b4ecd3ea0c505dea02de186b2c8fda8bc7d0b09b0942968fc87f1e65d9750f6c9887a0d74d915f77b858862c79eb0244c610203010001028201806f2ae20173c27755b9ff2d908cbe9ae33ccd4bd0410dc2223b361874d9aeb953ff56ed1cf9d4fd3895fe6cb870b23c67d5ad71108931210b13144e4d227a3e6757832795a8a04aa6992fbd8d6259616376a741cb7d0bdc4ca76a0636348aae1c7b9d4a10d5663429096ee24abe56abb12af3ac3b4e335de5740aae06e4de2394519030b20e41acb8c87d1b74c7c8ae009802baa81806870d8ead2ed6fbfcdace71805830cb304db3cff612b09d7edb056ea7f4d6c4c888eaf72516a29cde26677e953fc7279580ce0bbd92678afa5b922a51268764ada15558fc11c2549f58859dfe0c3c103be4b9823408f5131967c7d00c4bfc4fafe546bd5c2e4bf972dae2810cb0186bd1319580be764e90c71db2ad01484eb88c6c7e45fb11fc7bc50b8a0f1e216df6b2d0990a14e24350a624b3c4c71f0b4963c11fa82807f4dbae4c03deb8649fec13b5b1eead4a5305c64595426c2b7a3f5f3b4bbc6be3deb611efcc046a5acd29c71ecb2d7f7c51d989fbf2895acc7e93a36ce8e8723d67d21ff6b10281c100f7d213ef9c521ae1d81ae9dc969b70cb39d2764eb756115ce22c9c385b248417b9ca3a38cea209296724f044bac3058f5157eba586017e72989d5c59d7a4e571f2982b61d4975fa08221435bc300920ea6e5c16f2461a15c011e4e04640278bb8cf27e24c9c01f13562d51b88d60e1277ea77ab6c9e6881a1be50e4a3d1e8adc5a8a7160851edf9376b49e97266755d342bdfb2c5351ff3f511c4ae1cf5e464cc4516bd4294a6b67288e9a846968582bff6258882c1756f946d7c6912165bbf50281c100f56d8d7e98647fb6df4763ab00a2e459f3b9ae92580a266a9c4471c5b67f865a1dcfcb65f7a2f38add01b583f49b14fdde70549a270ab19704bd91f5dba821efda42beeff49c420fbe4c4461e872ce61d437e2c4a13b31b0943f102991abc6ec10c32ce1546ea526c5b1d503f510b744e3c87d1daea1f7aaccdb33d7e5e31132c43b28f69d904a85d18a6cdb57e57ee1a6170abda1aa448ef6448d66044906e1a015c4796f9bba574e825090e802345074834ea9521cb69b49ce79e4d045973d0281c100a08418d79d87ecd395d730dce94c3b4dd6e104324e3bd839326234b9a80749ebd8322d6df8212a10003803cc70afbb1d2e51e5572c2a318de65e1ea02eb626cb9c978599f34a2ced58fc5495ce03c396ebf16b4e22e17dd38b01e7049f069eced427891f28f260ee74661c458e854eb0f72f61a39db8cd35241644203fe0558f0eb21767ae31e61cacc9a6e33e43b66a85136aea35f9a97b887cebdfc1224e2491102fe896ea1611164aefb88e51c0b296d34b86c0104a0c621f87051ffdb6350281c100cfeb54c0d817e3fea81fd1b7101defb8a8fb3882b06540f0769ca18a2f36d03a4e21391e94718f43a8420765d7f6fe0ca8c29f59cd138929f89125339538562fddc747fcff4cd5c682a0181a9e138cf662144a5fec7bba77eecf9240b531429fc0ffa868e8dfa7b8362996ddf86285f0adccaefa5374d1", + "ddf819084db26af0aa02866008b5a98508e3611321abd037f2b083baccb6460a38d7377256e7f07a0cf1531f95055177c6f932fb5017cdae462ebf0307fd11683e1c83f8ce39078bbd0281c05f8b43553b849e9c613a4bb5b5f90b891531ac7b01efc9483026b446917aef07d4df07c4299a4a839dd1303bd169cbce08bd80f3488f2717cc49ae8551feab65e335043fd1470f685ef100c40c39ba1311b64d541fa799bdc1e567982ffb768ffc2b9b894883d35f1a73be258f5f12379392fe5f28f15bd7fe38fc8b693265e639ea087b13d72964355b81a98a96c705d194155bf47866ecc1752929f809aea67a5ee188af29a366753240edef93f55ba2a560f77dfd93b874dd097d0b730c18]\n\n# tcId = 47\n# edge case for Montgomery reduction (64 bit)\nct = ed961a800f86f1400cff5a805da0937ab9b864c28e38ad93cd02ed6ed75d88c25a80c8cac114273777bf70bbea37755e7a69c31fc8b70350e3339cbbf9f35e393c2fd844dbbe35a303f7dffc42578125869f3d24035e056e40dae7ccdd5ed11e0f535694bec4508124fd95c5fc168eabb679b1c4a171d460f4d6e6e8ecaa68a86939d8ee9e54cb15860c234ff1f424c6c5cc69c792423a414802957c567ca137539d56639f89540b089b2aa3f1efe462e41a7171464fce9b7dde87a834912fee99b26399209fddce06505488e9bb64f83690f38dbef725835759a0932c208e7d378322037df6f495ab4e8dc009641f2fc6bc9afba05c25ac9ec1cdcbcba27c0f82bb7c392864d6f6f4bbd445123944b01e0c7f24ed6f62941f2a0f203dce4cdef6584c1020e924f2edc3746084e4c34a82de9916b7d264ddb8fce6b3ba4b8c3b6c1ccfd8dd81df854533751281732b4ecd3ea0c505dea02de186b2c8fda8bc7d0b09b0942968fc87f1e65d9750f6c9887a0d74d915f77b868862c79eb0244c61\nmsg = 7e05772a4fc14b85e4bb3dafc6dd5da7898392955b736d07550a5d19c5a34b8776ae3ebe806b1c6d3d00423977509887f9b74fb85b544068d83dc7bcfdf5c4c2794d9336acb1346687e13d7d94fce19d4b22fb1b683de20bb6178ca2f888f031073c9511e4cfd4fc328cafd204b7256e28caadffd32b64875d8a93eea31323d39bc25ebad8e592ec3e1990b207eab8812f2dc2cd0ba7ce210edc890adf41cae97615ed2ba6b9bea28c1670dccb14968f054aaf95ac48d3b05276aae1bf8a9663f4ddb891bf32226e224b7473171bf07af5147234c24f1fec62e7ed0ebbf60553c2050ec81f0a89bfde5a7df9f2715173317c52b03e8971adc347c539cc478735bff0dd5e49d2c0f899e8988502172aa812298098f1dff7201d3c10954ec85a847b8d425d4437c3b6871d91fba9b0f190da5d5d708b697647bdf11e6c8959d109f4b82eabda4b58dd8b1bb4cee7e5ab41eb1227033e654e1e911bad11955d2986e30477f6468a816c591307bac6aad9e248\nresult = valid\n\n[d = 2f83083e6fde1edab800361ea79b717d5b844603d575c1ce2b165f9dcd30f07f4aee9a702056457d53463516e6ecb9eeea8445e9a30c6c8933b45f174f56359a2539cb0f478dc754140ea38dae831132409fa7df8f4efff32e1bcb3b0e91678438d953384857c0ff6a0714dc9f4cbfd8c87e5bc0a84e490c2dbc3bc71c9eddd161d416898aef63210d0cd9ef7dc1bef116e565601f05aa26a482ec65b50d58f49989f0978346f78325abf029890ba48bfdbe5a37a923cdb7b210f0f3d5f187c8ea31a912fc45841947dd63130ef38c318a2eed24340e0501994da5c02ddeaec4398b0c8017b92c4c3503bad9d0489e7f713bf58704f39d28c91aba0eaa9d9c61eef2beca86afc4b7cbe46ea235dcf50b0571775088a423b64bc9d92af4f91e52fb2e018d0783d3292dbdd0397c6ef89c23f6e0c1f8b9aab90dfda50fb307882cd4b044f42ab78294c168be4f34a8c1cfb433141e1556334bae4919dd9bfdca9211cd139aef9125662ada9ee06e52b6c32e337ba639a8d03915172d480738c9e9]\n[e = 010001]\n[keysize = 3072]\n[n = 00b3afb0d6bda9bc9e4a2c7f71ac721f4d06afca76ea0e60c2f4e9dda40923ff3c388509202c0f0949452cb91771e104e2722ec704fe1feed40dd9c7887e4d2877e1365a92e938941c791e7885b22862867d7347ccb2422467345ad7fe22b922b23247c493d7494eeb609b834fe8bcf66f5d032e085cc222def6ebb5a729595e2e5a2a8599d29a0d91699c356c883981ac9e85490b83944b0d0de518df451439682442bef9ed282652991f63d7a880aa888190495ccf0ca4bd80fde70b94976b21b5248cae89017e6eb275673b6f22d1bba2535b91ac2560041407e6b98849ed1ea5353a618876e33a2dc582f3bf7e7dfed013633f0f182997dbc2b1228b56850792412ff00a2dd29cf77b64ccc241a0559d1a622e0f288a8cb1790233e1f74f0e374fa34876e8195304db8bbada572347d7bc64578795a10789b3b10bdefa7a89ab018c09eafad19dcbe45ad6b01c008151522bd69a1c9448e693b3f28ece5ba107ba8dcb4bca3627bc6ba40c9b56b4924388293cc5c62dbcf87affb6154907eb]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100b3afb0d6bda9bc9e4a2c7f71ac721f4d06afca76ea0e60c2f4e9dda40923ff3c388509202c0f0949452cb91771e104e2722ec704fe1feed40dd9c7887e4d2877e1365a92e938941c791e7885b22862867d7347ccb2422467345ad7fe22b922b23247c493d7494eeb609b834fe8bcf66f5d032e085cc222def6ebb5a729595e2e5a2a8599d29a0d91699c356c883981ac9e85490b83944b0d0de518df451439682442bef9ed282652991f63d7a880aa888190495ccf0ca4bd80fde70b94976b21b5248cae89017e6eb275673b6f22d1bba2535b91ac2560041407e6b98849ed1ea5353a618876e33a2dc582f3bf7e7dfed013633f0f182997dbc2b1228b56850792412ff00a2dd29cf77b64ccc241a0559d1a622e0f288a8cb1790233e1f74f0e374fa34876e8195304db8bbada572347d7bc64578795a10789b3b10bdefa7a89ab018c09eafad19dcbe45ad6b01c008151522bd69a1c9448e693b3f28ece5ba107ba8dcb4bca3627bc6ba40c9b56b4924388293cc5c62dbcf87affb6154907eb0203010001028201802f83083e6fde1edab800361ea79b717d5b844603d575c1ce2b165f9dcd30f07f4aee9a702056457d53463516e6ecb9eeea8445e9a30c6c8933b45f174f56359a2539cb0f478dc754140ea38dae831132409fa7df8f4efff32e1bcb3b0e91678438d953384857c0ff6a0714dc9f4cbfd8c87e5bc0a84e490c2dbc3bc71c9eddd161d416898aef63210d0cd9ef7dc1bef116e565601f05aa26a482ec65b50d58f49989f0978346f78325abf029890ba48bfdbe5a37a923cdb7b210f0f3d5f187c8ea31a912fc45841947dd63130ef38c318a2eed24340e0501994da5c02ddeaec4398b0c8017b92c4c3503bad9d0489e7f713bf58704f39d28c91aba0eaa9d9c61eef2beca86afc4b7cbe46ea235dcf50b0571775088a423b64bc9d92af4f91e52fb2e018d0783d3292dbdd0397c6ef89c23f6e0c1f8b9aab90dfda50fb307882cd4b044f42ab78294c168be4f34a8c1cfb433141e1556334bae4919dd9bfdca9211cd139aef9125662ada9ee06e52b6c32e337ba639a8d03915172d480738c9e90281c100f9ad4a9180997ab820cf211a422122b436616fb1cb13a176572a597237b2fca8fa5c0a08ca7e643b30bc1b76270f80464ab0d434c3e13373aff43401dce2e69883112ca7e7d0a0485cf0cf35578b47c769057fa23af15cea4497c72c8e78ed7776b70cb7b1038dcb2e8607a130ec246f43be9224b21c3e8086c8d23616a04df1125619a8eb7667a41189010f98db7677994d3d2461bbf22337b125806a3ec4318d0f7d42d41645c836fea377bd10edd0527d53823eab2d389d2e3d5ce8f8db3d0281c100b83ca2a519e3d9b77c43628806471d4364e7fd3b159571ae56475340ca70503fa72a7805d547479f1b876b569b92e47cdb6e6cc838e30cb55b03672b566a6a5621eca32a4566acc29806cd55c235b82e51ea6a970e9a5bc38db7c745573eb0d45184c45116022b67348e4dbb40ca12c9adb233dd55f971d9dcb8185b13cf1587ba4a99cd27d292b71df2d2571ccea99d9c439fbf4d6528ca151a2143729d7844434c1194eef2df42ee8d949ec7269ab106f0d634a6a52536e98f2c390ca0c2470281c100bcbd992f20ede4ed28302c2ff369a518623b89f9f73021d099d7f3c1fa051e26870be8b1f8914f27c7918b98e7b23a1fe8fa7f905bbaf3f0324502c39dbd10e09dc3efe405c39a46d9ab589854537fb168dcb53d681d6945d7107d8a5b316321f9e62a80fa195ba90ac45b24291d79f57a5aa79381e903fe98e55ab374ab3e004d0235679287f194ff8477fed8689ec78e65eb2083995653f517bee7b2693c5ad0edb29d40428e01ea40d845fdf0bc35cd05dc890ae2cfce8a5398239221fd690281c1009db97b5c70dfb9c1f5a612b274fd68b60baaf8061f2243a286c6a52570a9da69c408fd9bb0cd4729957dc78cebbf43d108626ecab2b8de665c367b9a846eb1fe6f28913f5d0edb93f466ce5f3ed692894523b48101c5700de8438f5b73a77de726aacd0ec612b169b77aa45d4cc832716a3c875e537e2bd3e1bbd14e17954fcf54d30cfcafbcfc51bc57e76f20806481440838b8a3df989df896d8274ff633c1ed0330821a56de80048e3ccff99ab91018eb11d71d5b8092943d3814d714c17d0281c100b894a19210bb73843ffdbfd76f608af0f67c80f2896ad40d3a303f2706668cf62161a98b0a27bc2c761b6e1c679e15bea15e2642f85d775a0f6947f8843475044a61378db21458e0ea3ccc32c3f4f5cf5ab0c7c5452dfa3b95f32eaea447c27fdc12a928a73999241fbc4c4ce23b6b313d2f6dd229512ca2f7c121a44fd66bc5e6a3fbf9b3e34a38d962af6a718fe88ae0cd209bd62a8f65f370df8dadb2382b26ebd97ba5f062761c4f8606211f6fc2213c8028bc4fd349e6c03059d41f80cd]\n\n# tcId = 48\n# edge case for Montgomery reduction (1536 bit)\nct = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 482273fb6270415d2d3b731687", + "7bc0100cbe54b6f1bb432711c648b49ca3d5c83f65a7e024d840a4c029eb95e40a9627aeca373547b5e7505a8bc36e129f815da02380dd4ab665d067463ff7ae130667aee428f8eab27c1c013f75a4d5051bf67659ba40b1883328855197a5d7d8bf6c47ba60d60d3d3597defc4d254cbfeef1a4f493cf9adbeb18c2546fca57aa3c660cca23f7693e407f3ed2505c680151cc11c20c980bc16657b03e53075d1cd0eaa1d3d07799206d35c3dae4347792f7bd8723739fe15c0183e2344838dc3859f53b44daa2bc9144a5fad347f07260113a472c6e9242c54e421247b2633f984d6fbd00a25db5680f94d243eca8addb3a8a4dc7078627efddf444986c6d49d1abcb93a8d6813b290399ab7df2e07d8198ab2f46d1bb6310ccb7be4451148c577eb93bfb48db6adeacb01b1df818fe4f1b6bcff75aaf68db7f99ef6f8c928b81bb297c5c3cb1a009cf6366672bce5d92cda12b44afa40e086338b725bfff\nresult = valid\n\n[d = 035bb9ce3adf30cc67aa70d109a5004be423c1da2fc572993ec060039c643cd59af9847beb74d888183c763e3dd611f4bea0b9ebe5fe91f81c12869882eadc1702afdd1dbda839145bc897b3c61822dca33a5663645b77610554090f6e1d7409ae9d97db09aa73f2f64b74d2482d0bf8d52da5d5ddb55c5172a6bfe49fcbb45ca687262c41ec826344def12a2be9607c0c85b8bcc9c7d80c1ae1a01b33ce496cc84fd205070b0b28e22c449ce08edabeb1b3af57e763badd87469d8100cadcc080d69705fc34b181536eaaffae50de5fd16e7d03cd42a0277ff82c0d3b04cbd2fee07a4d221888c5073bb534581b0ee2c093161a3ecb7a8a81f093de1908c54a92beaaff41742e9dc0ade482250b401e31cf7b09a09db2644a367324279c557be4f4bdfe5bf2ef5c5dc6629683e2897142524f320d465bc828d46cf31d4c09d01645d9b482ae7758a369eb00b4172bb27ec24292cdcb587f4c48afd216964699593ba0cc56a827d4d0be0d4e85073507c3887dea48690c9e9e004cc691686811]\n[e = 010001]\n[keysize = 3072]\n[n = 00949c76925a79fabe915869b2a3dfd6ab33f80c1719003c9e91d33091f5f2baa85433c3672f527348e7b93639bf67d9c44aed996e70c881c2786af0cb8a595e2f26b2b302b9fcab92e7722b47023b4836fbd8de3f0c6bd1113c29e5faabf8c43714ca52bbfc1befa680ad65135c042c9378e8d6f2f4f9f462b2137439559ee1cfc10bb3d73900928b31a56df4c70d60df81157aa4a60d1b79adac822184d68ded4938ed4e244fe50596c1bc17b5f89e9a9c53d7d387a0f92162b9c8463b17f2c25c64a505d5c5d1b7704ddd1c97db98be49c3d0602499596e77b0c50f975f2ce7d2baa4a4756d67aa13be4c846499622797acb520991c8ec5c364979d498e56e01a54369860b9aea06a00f36527b303d7c7311cff95b4097a6e474da64477ebf5a604dbeb8f6fb51c6afedb2b66bceb83685f2485e57e8bfe81c966c22a6588e4c9ac89d3b1a442dc4d448a5c318b1adb4fe07f86b38994aad039a5f5e01fdc15bc8467df21745d574a87cf3f3ba865c7168f1befcb0bddfc93bb55c89dff71a9]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e20201000282018100949c76925a79fabe915869b2a3dfd6ab33f80c1719003c9e91d33091f5f2baa85433c3672f527348e7b93639bf67d9c44aed996e70c881c2786af0cb8a595e2f26b2b302b9fcab92e7722b47023b4836fbd8de3f0c6bd1113c29e5faabf8c43714ca52bbfc1befa680ad65135c042c9378e8d6f2f4f9f462b2137439559ee1cfc10bb3d73900928b31a56df4c70d60df81157aa4a60d1b79adac822184d68ded4938ed4e244fe50596c1bc17b5f89e9a9c53d7d387a0f92162b9c8463b17f2c25c64a505d5c5d1b7704ddd1c97db98be49c3d0602499596e77b0c50f975f2ce7d2baa4a4756d67aa13be4c846499622797acb520991c8ec5c364979d498e56e01a54369860b9aea06a00f36527b303d7c7311cff95b4097a6e474da64477ebf5a604dbeb8f6fb51c6afedb2b66bceb83685f2485e57e8bfe81c966c22a6588e4c9ac89d3b1a442dc4d448a5c318b1adb4fe07f86b38994aad039a5f5e01fdc15bc8467df21745d574a87cf3f3ba865c7168f1befcb0bddfc93bb55c89dff71a9020301000102820180035bb9ce3adf30cc67aa70d109a5004be423c1da2fc572993ec060039c643cd59af9847beb74d888183c763e3dd611f4bea0b9ebe5fe91f81c12869882eadc1702afdd1dbda839145bc897b3c61822dca33a5663645b77610554090f6e1d7409ae9d97db09aa73f2f64b74d2482d0bf8d52da5d5ddb55c5172a6bfe49fcbb45ca687262c41ec826344def12a2be9607c0c85b8bcc9c7d80c1ae1a01b33ce496cc84fd205070b0b28e22c449ce08edabeb1b3af57e763badd87469d8100cadcc080d69705fc34b181536eaaffae50de5fd16e7d03cd42a0277ff82c0d3b04cbd2fee07a4d221888c5073bb534581b0ee2c093161a3ecb7a8a81f093de1908c54a92beaaff41742e9dc0ade482250b401e31cf7b09a09db2644a367324279c557be4f4bdfe5bf2ef5c5dc6629683e2897142524f320d465bc828d46cf31d4c09d01645d9b482ae7758a369eb00b4172bb27ec24292cdcb587f4c48afd216964699593ba0cc56a827d4d0be0d4e85073507c3887dea48690c9e9e004cc6916868110281c100c7b40666c8ab34f23744b0fd1f8071385ca734449edf689b3256e084d144b2705fffb05b873da5717261988bb2903cebb6c025f156b25c4a7221969833f1a354bc783d082fc49428e9046962125401ae6b5c23974ff716a34b168da2124e5b65e9575456a5b6fd86dab4e4e04e88924e6d519485ef245c3be7e8199c0655bd67c136f6f2b7ccc41aaeb8a8ec5d364c197a13a94d2acf49f96e465f0dc187f8e63667b88798e87a31bab9e57f67d906d34763bfaa028c7b3b703decb67b32003d0281c100be8147ebc27c5379de4992bd3bc2ebf1216f286aa497fd3fcd9e57137dac0ce9697cb1f9b1924f58f434b29462a00ce4da35e7f9b1172b0d1ffba5ced315d1375a30070f299f2e8787454774ba352636299640f37b44776c6176b2155a01f6da55b7e8e1d80a142edd147c9eacda0f9b01b2347f1a68861944e814b45bde2a89a300e64e53bb2455a02dc65d2513ad7424d675964b5680dbc52c20ead0927f2ab6840c2be51ca808f0f8f21ed7243bb1da88a012373db1faf02a7a61197901dd0281c02cab2cdf62b540e388cf399374af6323cb3daf28462d0c95e23da27cb2de5dd75af1b33dd5d349254603647ea2d3367d36e465d8449f229b9849c1088c5dd93dc3e65528769eced113c5e3d886e6f9754d184ff1b176403f0835a43a8343b997e308a099bcf9605e009f83ae5482a1cf1f0ea75d09efa51dd5328a3fe6fed89dd38efacfb1a3009e434494ac41f13a365ca2f7348685d53310a276f279be7342f31a62211a67ada55ff1e2ce8ba8f4a8df88053ffecff3648927a0c1f46e6bb50281c00fbcd25a3198dfb4839e8456c9a712a2bae659ea656a80eb526b303a55f96e9fa1ad416ea532b7075c35364377da4cf662e86d1f7d77b280c5119ee2f5212a456e57e55d654cd7252f1194139a86657fb7f3c7add593146289b2aa87850600848cec427ad5c40f62c7b4b78ecc2cbf7948ac9615a1f2dc911dd6264fb7ff24787654ceb1cdccf9f570e4172cfeb11f7526cde8acdfd06798c033230d02e9f7436a0c828ce5c2764736d0f9ff7e3a6a0c09479c21a51a9da7634bbf0c627452a90281c032900712764508143991aea5cd62babd6ce119e5432f76601f079c789e4cbd43989f0b4d9fee2f83c7455296acabd1d99ceb1d03f8fd01ba3378145a08eb6231033d646aa6cc0defb64d8a710ebb0f5ad5e5cb3c9a82c2ea9f3ed5a3167e96ed5f1195228e3a382ab4bc84b3ee5922b049dc02bfd68da3bb430da85ac6f6efdf961dcb6fee289e05ef7521fcab891e4e8d62efca77fee73fcb35e3121678ca5b4d133c4f7fa8ff05ae93d507ee03ffecf67553a410bc10f97cf5db4ec510ee27]\n\n# tcId = 49\n# edge case for Montgomery reduction (1536 bit)\nct = 939c76925a79fabe915869b2a3dfd6ab33f80c1719003c9e91d33091f5f2baa85433c3672f527348e7b93639bf67d9c44aed996e70c881c2786af0cb8a595e2f26b2b302b9fcab92e7722b47023b4836fbd8de3f0c6bd1113c29e5faabf8c43714ca52bbfc1befa680ad65135c042c9378e8d6f2f4f9f462b2137439559ee1cfc10bb3d73900928b31a56df4c70d60df81157aa4a60d1b79adac822184d68ded4938ed4e244fe50596c1bc17b5f89e9a9c53d7d387a0f92162b9c8463b17f2c35c64a505d5c5d1b7704ddd1c97db98be49c3d0602499596e77b0c50f975f2ce7d2baa4a4756d67aa13be4c846499622797acb520991c8ec5c364979d498e56e01a54369860b9aea06a00f36527b303d7c7311cff95b4097a6e474da64477ebf5a604dbeb8f6fb51c6afedb2b66bceb83685f2485e57e8bfe81c966c22a6588e4c9ac89d3b1a442dc4d448a5c318b1adb4fe07f86b38994aad039a5f5e01fdc15bc8467df21745d574a87cf3f3ba865c7168f1befcb0bddfc93bb55c89dff71a9\nmsg = 1759da8f5a161623575dfb3f7a38c4b0a9094b3da69ffda3fedafe1abb032b7f7849ca5b3e030627fe4f302a4a4a1ca71fd64b7f4ef26289c68f423f265a766a9f375b733078e34ff454d6f6a91bfc686f9d5f89f934a19134b22e1ccc123bb4dd6acb42072acf0f61cbd367bd64e5bc17b556987b774320ee4ae1150816cca2342c31d4c1e56e03e88d31706181cf08ef3b305deb81b64b4100113f71e33256be00fc38b6dcd1507b3d5d9bb3950ea4b7d71a0272d01a1bcb26092664811b360a40c4b897400af983cced450ea78fe1acefc9997f0876cc22966758f945f7299970bc711b4ad57d675410ea3bd26577d9444767eede72e3\nresult = valid\n\n[d = 0e218aa8654983eb5e726e85e09e0532e8574e6ed3ed930fb84cd7139e42bc424704033d0f77a878589bfec033b88881572604a6e4e90d3bde408c385fb32f57dc694f4ac62c0c407d612c94c0384a5aec21e7d56410d844d01939877ba7382ff4d45fe8e56e8ddba3e55b35e37d048382269810b0611bc85c8b1ef9f8f3d3abfaf33e522290f3fd389c11efad0ba8755397b4983cb12fcd4f337e4c1f7db2fcc0a4d9b6530595936d02ae4f3cc37b6b3f69ead5a7777c4464099bf5f15a3bb685b36f6ee5a4661493b3188210383d9616d7809297537fc86fbdb25aef61bbf19a2f58d3a88d605701c06d806c83e11592ded0baaafc93fa24c5530fd4d27c128dab75c20e240fa7b9928c1abeefbd1c741d8d74902fbdd8f7e853d26964fd90c04c156a89b151bc8071a00a90e39be427a02bd4d95fd7151fa7d222898fdcda9fa0be8d5f45ac9d2353b200268fa795c9491cc1ff1fe5c0d54fee2da545aed663bf5a4c24d65f1406320cd9212105fb8f4654d062f99916c4b9f49976d77d31]\n[e = 010001]\n[keysize = 3072]\n[n = 00ad653869721ea34bb3658441b862d33a99019e6b30f4f9afeca9a56ea4220e54feb8426358d9cbc15b9cd90a9d896de66360dbf39ce03a8520c1c298", + "b46439dae3ba94e0c56b6f15062ac0adeeb2e80b6e5442e0cac2853b677c2bf055d491188aa1f25a454832b86d54a6c397a645e8a43783ba6ce3c6beaf7fb69f39449e8bfd1640c5e6efae9f10680961dfdaaf9224f4d74dc20b9f7d94629e40069b20c232facae69571dd71318497bef60452928471088f22ff13990f009f7e43f9884f90ee4a46b9434405b9ee75d634525fdf662e8d03c2875bd767349f88da55cfa26c8c22aa1560a41e95b8b5176aca2751cb37b49960b09704ce32f9522809183f2551243f4468ea3ca1163c1866c9f13e6abcfc43d22c3ad713e0fb4740bafa480da23236bb8f2f09d66a1acbcdf7f7c79062b8d65ade1703bfb43a408dd095f8fd5670f5e3700fabec8d1c865440004cd45a7196b1fb68f11b17947c37f55cae8b6e5c6537374bb60d67c4d67678ca9954f65fa6baafcbf7d098b3536384aa91]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e20201000282018100ad653869721ea34bb3658441b862d33a99019e6b30f4f9afeca9a56ea4220e54feb8426358d9cbc15b9cd90a9d896de66360dbf39ce03a8520c1c298b46439dae3ba94e0c56b6f15062ac0adeeb2e80b6e5442e0cac2853b677c2bf055d491188aa1f25a454832b86d54a6c397a645e8a43783ba6ce3c6beaf7fb69f39449e8bfd1640c5e6efae9f10680961dfdaaf9224f4d74dc20b9f7d94629e40069b20c232facae69571dd71318497bef60452928471088f22ff13990f009f7e43f9884f90ee4a46b9434405b9ee75d634525fdf662e8d03c2875bd767349f88da55cfa26c8c22aa1560a41e95b8b5176aca2751cb37b49960b09704ce32f9522809183f2551243f4468ea3ca1163c1866c9f13e6abcfc43d22c3ad713e0fb4740bafa480da23236bb8f2f09d66a1acbcdf7f7c79062b8d65ade1703bfb43a408dd095f8fd5670f5e3700fabec8d1c865440004cd45a7196b1fb68f11b17947c37f55cae8b6e5c6537374bb60d67c4d67678ca9954f65fa6baafcbf7d098b3536384aa910203010001028201800e218aa8654983eb5e726e85e09e0532e8574e6ed3ed930fb84cd7139e42bc424704033d0f77a878589bfec033b88881572604a6e4e90d3bde408c385fb32f57dc694f4ac62c0c407d612c94c0384a5aec21e7d56410d844d01939877ba7382ff4d45fe8e56e8ddba3e55b35e37d048382269810b0611bc85c8b1ef9f8f3d3abfaf33e522290f3fd389c11efad0ba8755397b4983cb12fcd4f337e4c1f7db2fcc0a4d9b6530595936d02ae4f3cc37b6b3f69ead5a7777c4464099bf5f15a3bb685b36f6ee5a4661493b3188210383d9616d7809297537fc86fbdb25aef61bbf19a2f58d3a88d605701c06d806c83e11592ded0baaafc93fa24c5530fd4d27c128dab75c20e240fa7b9928c1abeefbd1c741d8d74902fbdd8f7e853d26964fd90c04c156a89b151bc8071a00a90e39be427a02bd4d95fd7151fa7d222898fdcda9fa0be8d5f45ac9d2353b200268fa795c9491cc1ff1fe5c0d54fee2da545aed663bf5a4c24d65f1406320cd9212105fb8f4654d062f99916c4b9f49976d77d310281c100ee06a7cb29fa932c70241f1f4804a406a1d67c5c95b4a368302279c279e1830972629391330f14d081c61ffafa39bfcd2220fdd0afcc8d7b3df3697e650a96044dcc54a6a02351537eef936d216757e6d4d2834706b8e3d0d76f1d30bff7024658528723d25859298b5da28c1d40e9989dcfc7b9c84d78a8908cf5bd0b82d6ce123de71b7ed553c58670b5090bb3fd389d95bf0497d7a504fdd7e4c4e788695883f0a5074c4155b0f3b35363b2d30dc2d02b604f6ae56d518a82b958ce3360150281c100ba7d2c5d4fc2d5223ffaee501fb81a28ca983994eb0ead5147efae3457e3f68b8ce1c1f3abde00c9978ba9896f28d82eb8e328c9f36847e8b80237d177708ab63a977bc9ba5cce44abbf86d0cc9357b719f73e2ba3fd17a01b4f6b0490feafb0e72adef41609604f4afea46e9e40d1e5bb63c1779574a7211ab081211ef8a62c17f11522a23194204d6f36a7acec89caca294d86d80c3cac7567c7fd51e54cde2c690e4a42755167d34a5e9a4ef9cdae882742b2a16afbd88ff5fda64056838d0281c04c08d63ae0fb095e6da82c44ead588ac11b099635df3292bd40c7f46af76694c703cab14fbf17a5dacc6e45a60ea67a998985f5bf57c6b498e1d9e7a60be83f37602aa9bdb95cc99d677a3697dfd2c28319dd98fabc70e071d7a82219b80c53a41668382dee397ffdc6419d39658b1062e8b3c2acda069c5b6ff40549643c2686b8d58b100d01685878fa354f36718a1a83d389ab8028bd54f5d52d7cf7a54e490a9239e742e7eb81af112d74b3d7e2cd820b3104b7e647062c5a57d87c9038d0281c0295087de98480a9dcedcd1a51091e1c1bdb861b15b2de239ca9d0fd3ead0c712fd801a4ed879936515dccc0f757feffcd1db09734c28831dcc7e394d7f8f803b84d980841d74680210a69ac071420741ba4feb07120a850c646080cdff2d5d50ecb5b3b51198bc2c74e9db15e29b6ba4e091e60f8f1dcbd4eaabc5bfc7b3c064ae5d2b9883a44633add400a0bf0f9c2b40044c779e2f7fd5992107ce58315b8930ff8939ec653f46a829a6b1bae35eacd6df13c8ad381d5949f36e614189a9150281c075e48b05a1e32eb5a4eaba5637c9fb23134a48b2869dca66a1e109a9cf773cc8035ec100f05e31b1e0f47d5d8ada685751fa6d18a90fa02d255db8af5237841534528e261bd21af0eec48f8dcad44871aeefabd1bd8739f7a20ad3f8e462aa53aa0b7f328468ffc17b837bf338e7b0dbc8283df377403d6483203db68840c9a9ecc719a4b3b888050880b1e43cd17a824dab3bb84ad51b39edc5d8524bee9166f98d64cbd51198836f00983b76b80cd4ac436327c6df41531e773e7b3f0ff101]\n\n# tcId = 50\n# edge case for Montgomery reduction over Z/nZ (32 bit)\nct = 15e9afe6899946b32dd51dc583b611def28d2ca36bd609bccaba57103983b5dee051da648acd6c9b567d62f87a2672f38de06882109209de60277b8cfe74d3d9dbb1e67be8fd196267f54720db304d7529f10e20024a4fcbab791ba2e57d0e1ebc056b6e05b515ddae5a704bb27156cfce0ac5899aa66332e43d6c0183ea2ca847d445562a71a7f3cf1ac7dcc750c4c70b4e581646902a3b4f6ad9fa5f7a7427c72f9efeabb657ac371bb96d2541b481c557938b6ed4a784b36becf33f4c044f438e5b779f4180f46e9254209738d845fb0d94897c79f141e8665d47a91922a61bfe263712062a0f4c5e725ee148e9701bf0f034bb7682a6780056410ee8e588671721c471c57ecd1bcffa85ab91e744e2e989847b78942cdf396d883c8de5effc3dff47e52c60a88176f21934e248c60297347ca00e5e29fa4c0edc2e3d632ae3cc1030572149d1b788b4b14b51c07aa76e0130ef72962c153d73915921b514f2cfe6e93b16ea7cf901973f6db782a958cfa16691e90865385dbd5c03c83ab3\nmsg = 1b2416c6d332428a300fb786cde4ebfb4a7686fc7a32de98447f164c15549d422d9aa53d3963ace5d229ab8f6c2dd39bee86491cb6ee0383d3d3df95db8cfa5325a605d4152ec5f02878290dc644a9813728d6df0a7f8a95292e64c1094bb915f6c0f447c45cbcbd5f115a6a930ad34d7c1bbf6ef114dc21a5c7443937c8436bbb25662a2cc1c37f9e8d674cc569aac454bd2ca4ed70fb12e8d9aace496d45c793dc794a6a12ded9605829091160bf40ac03f964ac57501789fde22068f41c60b670b5df0a7af2c1e94604211aee2de6c2b85bf9de5e192be583dffb61ba08149e912c1ae642d2ef9ff4e5e0a3d0cd1d9173ae8a782b158043ff63798552fd23ddd534155477370bb08117b5877b86ccad9c750d6191be6990e3d31b9b58a7dbe0d3bb97437683baf7b989867e1e711d7f9bc1c7bcd00a49a5f0\nresult = valid\n\n[d = 513ae42917d17293d2c9025c701e2cc2e16c7bf47d00f6563e0205f2792ab3765a68f53fa119c27c85642371d3d03323771cf17655a11ce98c69b1cfafa67828c0dc1e32a5dfe132c546557ad8b515e9438aff641004fe356146ce9ebf2fe70655f5f9ff9dffd5254e075003cc186f09937426885dcd282f10a243aec5e839ae0281855006839170ad039b3f6b4cf4ad9b2431e795804e023629c8befc60ec3581062b539e0e28780acb81d115b4b12252205938b194d336e16df3d5a00fc2130d6020a9e1c251b9df353ee568a71f6768569d294ca1057a4dba286fcd5fa22f1668994ce5c1adac7fc953229b5e500256ec4a16944c27d401f36dc22b9fe9d699e1b8505859703e2bf3a108115b94a709621705c562dfdc74abf40526122f8be96f79b0144794e26b03f4e20593ea0d2cac01e30c5f79a779630ba2ca24e0f91adc3f84f239875e38afe35120edc019d60f13935c95051416e57f84fbb2310fd2e9299799b706428e25c085747ce96cb9e19c513589fde52aabd910712ef5a9]\n[e = 010001]\n[keysize = 3072]\n[n = 00aeb5a241b73f86cb7a306293e71ebf8b70aa8f857b495051c3ffcc48f35952264f383ea5606f55111cd8ffca284b22330c98e094bb367ce269b350498aa66e4549691e831469589d87e2b80d39b577bb52765566ab3f30675debd1a31cb6909b8080a47239d063eb5bf129d70d66f813d92a91e751c462216d81cbde935e9696d741ecac42f06e880194f37fb6fa587d1438776637187c6df59957976513ac352cb3865424bef80ba7ae2cda10436740f1fbcf8404b7b210dbd270f64ba42c6c5b58aded6776d341eb653b9824b049ba71453da7eb60478885d6740b07ad3da785c94cfd3020800ef885cf066e19750f179dc5728348cf3b625fb23cd1bb47d746d258192cab6a74243514475d612d0d442bc72b500d5b1a0e37b3192094cb6cd6865c4b2001a3711e536c343ac0f916dfb25a148989f0667b516ea5a2f082b1f1136cff85ed2d0ea009d0e709acc625a1cf5da0e219bca8c93204ef5c57eab48d8dc1136ac67068121c21b1adeef8564def6a28d59d39174e2dd0c7038b071b]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100aeb5a241b73f86cb7a306293e71ebf8b70aa8f857b495051c3ffcc48f35952264f383ea5606f55111cd8ffca284b22330c98e094bb367ce269b350498aa66e4549691e831469589d87e2b80d39b577bb52765566ab3f30675debd1a31cb6909b8080a47239d063eb5bf129d70d66f813d92a91e751c462216d81cbde935e9696d741ecac42f06e880194f37fb6fa587d1438776637187c6df59957976513ac352cb3865424bef80ba7ae2cda10436740f1fbcf8404b7b210dbd270f64ba42c6c5b58aded6776d341eb653b9824b049ba71453da7eb60478885d6740b07ad3da785c94cfd3020800ef885cf066e19750f179dc5728348cf3b625fb23cd1bb47d746d258192cab6a74243514475d612d0d442bc72b500d5b1a0e37b3192094cb6cd6865c4b2001a3711e536c343ac0f916dfb25a148989f0667b516ea5a2f082b1f1136cff85ed2d0ea009d0e709acc625a1cf5da0e219bca8c93204ef5c57eab48d8dc1136ac67068121c21b1adeef8564def6a28d59d39174e2dd0c7038b07", + "1b020301000102820180513ae42917d17293d2c9025c701e2cc2e16c7bf47d00f6563e0205f2792ab3765a68f53fa119c27c85642371d3d03323771cf17655a11ce98c69b1cfafa67828c0dc1e32a5dfe132c546557ad8b515e9438aff641004fe356146ce9ebf2fe70655f5f9ff9dffd5254e075003cc186f09937426885dcd282f10a243aec5e839ae0281855006839170ad039b3f6b4cf4ad9b2431e795804e023629c8befc60ec3581062b539e0e28780acb81d115b4b12252205938b194d336e16df3d5a00fc2130d6020a9e1c251b9df353ee568a71f6768569d294ca1057a4dba286fcd5fa22f1668994ce5c1adac7fc953229b5e500256ec4a16944c27d401f36dc22b9fe9d699e1b8505859703e2bf3a108115b94a709621705c562dfdc74abf40526122f8be96f79b0144794e26b03f4e20593ea0d2cac01e30c5f79a779630ba2ca24e0f91adc3f84f239875e38afe35120edc019d60f13935c95051416e57f84fbb2310fd2e9299799b706428e25c085747ce96cb9e19c513589fde52aabd910712ef5a90281c100ed65fde8d5aa657aa9ab01a8d7663688453f41815879ae79b55cd29b687c4a7afbd9cf492a1df5e3049e6380f4d509184d7348bbf4b1a1a8b1b69105b1c47f77eda14ef06ecc31da6117228d2af0a34e404b680946f7083676717cb57f88d3e7e6aa1b367542e49b8b25d40bfc1c5a9e32da293c627d87385c6eb70274a6fde7ffc904e149ec669075f039c1a0b0f14a186c52e27af6e8dfb3b80545fc9d290652637b74cd491b950ca03d0236f7c9e38ad88b9bc4ba51086e82dcf46fc0b4af0281c100bc662810d94f51ac88481bda26a14193698c00199edec00337fa1426454235ccb72be4302775a70bc12d78c787a8db902ab3970b574b678aa066755be958787cc179cead1e11f5f49254df793be09acbbe35f1f746f5544c361ef9e5e47b72dc208d434f93fd0c907730960c72ead3126e9d12d9cc0a2f2b302e070ebab84a640040298474ed58a56ea9c2498f33ed75de9ec106a315e008aa87a175f26ce93367054d2a8363b50a8044ae8fc867ebc4e89fc4dc6908507c8edab3324255c7550281c00c593ed0eab4575cff105f20ba3b9de08ec19095bad57186f13127df5f9aff80d032ef3e5e0b7aebd924a8066035e8a833f7283466b10ab8acadd3735960e0448bbed54d5a6612bdca491ac9ff0ecf5fd5a6567e0d0bf2886ab6d286da6072ad60693ecb21645e61dce615d69dc197d11cd20e4d0ece7ac72abfb39354200f9b0eca150fe6f97e084baa3846e325f1172a980fe3aa03c7ef42f8f2854673a25baad373eb8a7620122bbaf611746c853ae9d103ca117ca3946db32eed2417010f0281c100ac201952eb77d082f5300c624f10dd3cb51db7a9b0c08a65666b10a5b6793b7601941432fa9a3f383a12355af6d28b6737dc448f93fdcc67970c8504a838b03c2af8029f9fed80ed26146ce7f290ce5c7f38020d8dc2ee7582ace25beb57ee24b788d88a880695c8175d4879af34640b5f0c1b00e9ae14523cfe906c20a3e7335e1740d7478ce184a38a6d7b8f5e3e0186973c7bb7dc7086fa665859ce573ae83fa354511721ad721ea6a165b40f5e14d503c3742c71f0371cbd2b232bfffad10281c100db2e5e1fc45485f6e753bd60b65de6d740abb20e16ccc414b04fd116a3ae0335e4ca2a2a16f72519dd9728fa619475243dbdf4f3d1e68eb1355000bff5bc7be136abb4ceb32f7baf486c557062c2798796f80e7ecb99296e35d1cff1f186ab1ed3c7c8ea388ad3a35040e739249bc525a4be72110ca711803541921899eb9e4c92a25ed4539affd848e23e99d981e351d086f213751eddfb5e353a1d3891c4dd49506de32d0bf269790b423555e2166e3f5dc48c52eebfca1eeadbc27871754c]\n\n# tcId = 51\n# edge case for Montgomery reduction over Z/nZ (32 bit)\nct = 1bf519ad4dbb78a3a8071a6bd1713d0552c3fd83f756502790f5d2cbc943b671d93635e4903023bf5be0e1441b807322f38e7565994cd36637a55e03a117a4ea16a42f470c0496baf40bdb261e3d4531e6077e9e2f3a7fe19c6cc21690ad5acc911650e72b0a6b5400a0d1b6e2e5b1255b5ac1ba3d81e5967083173363f82bc5900d7e1d44770a0ee515dd62940d7463902a78abaa5577a37c09b033ce8cd4418957b1a6bb744497cd3ffc93510c9af98c02a377a49d79b8adf88802a063741b172b23dbbe8ed8dc6af88c7bb5a598960d90d11e57659b198289f8f78eebf55dcd106b776b4ac151d718ad1e94bcfef81563eeae80d28ad9ae77b5ecb0fd488dd139de77c758a65a5b0825fab308dda6173e2ec4d94dfeb2a8d859f3b6dc7c13aad7dcdf5a8fb67f595cce59216dd06c57e8ccf8c972f5df5157c8b51031dd4cb7bf1e7f1e8e9797e12b68eade041606c6042d3ff70ba2aa55bc6cbc3e9d50c4be3755dfa90a07365d06053c88f652bd1157ee1e7fc533e281d6c609e7ae8eb2\nmsg = 8ba16ae7b2abefdc640c0557914529a46810894e5dd02081ea1ab298ffbbbcacd2edece4848a1270e7f403df288a6ce398c5bc34cd1130b3dcb752ab2b7c7886291c2584d076a5708cd81ae10adfa5c007ab209150c406195617a42859fe4a711ab097962c3b11c3417b90b89c2dbef5e8daa5d65f625d3a422e4ada0acd83e4bbe2912dfdf80c8884856b56e25ee5c78b2ff5e21c89f9dc207337c88f090ab4267f917d697750aeb25cff173acdd9ecb531416ad85e621e45a2ab975aedf9e27d1a01725c0245910f9cdd0a89795f40b3709a3d762ff1a88e293f5c4955300b96c22474a63d65f558a4fc2685d3aa3f447ea6ee7bcca62dfdcf51e733903e6f\nresult = valid\n\n[d = 009b4c6e1472322270f9626dd62c314251ecc1e9273cc293f090befc60b0801998766246cb274cfd635d596d17be5bc8712ba03fa929a1ea7e14f8b0d2140a7600d8f7ef581a467900f02e04c98df4c2b2cb040fb4f53ff02c94447bf472f85d7b888f8ac565ec6dbcbf0ab20cdcb8795535cb59bea29f983ffa73f59868633e83210a00e7f05ec8bb2d4b597ecb6f9b3c56dc2f00ff695e127ec35ef819070b6af5e1f6fde71aa44e006ce1d87832ebda45ed67a5f759c89c1d0ad00a8feac23fa86e6654241353cfdff37d85f5c5655608207faeeb13116e5400edd5004f1cc2b40c90d6011d480237348725795f6a4bc9f3358065cdb71c2dbcf8333cdb0ce84e40d5a08bc5943a7d211aad6e4e0c63b78930b2f64b7b88e872a9c37c8a6cb1ed4b6cbcf2f40bed46ec868089157b2896a98f3cea594ff7d98379ba16220e57c595b2db1874068a5a1a7fd337084581f428a11251f0c1095f31ecf39001aaca69de60bcf1422d6149a9ca65e9e4360583a80332afea9c949432fa1d5f212355]\n[e = 010001]\n[keysize = 3072]\n[n = 00b9f422b594dffcb8c4f268b065e2f74d19a504873cd60d91c2a911b613521c0e896bcd57bb4d1b92f5402dbaf3ac58af65b1dbc6d007cd5f988890beedef2e499b13f32f3bd91e8b5c0c50a70bfd40b9f4f26ce1bf515babffa645cc5e129bb48994ea77352a5ea05499799ed90577cc05b578740429f0b8db8cc57e7571b4196c668d9bb298497f867f3000d8a48ee62d665c6b2d2de53c72b1e716232da35595f3cbe5119f2b34ef9511e7fa540cea305ee177f8b3cb198cd9b3fb7dade310d6e5888c5f93618e122764ea37f0d05ff4df2b64120718a44a4fb8854ad2e46c903a766c4f971cb0479caac957ec36a5b6dd5a40b595d3c1e084841dfbc320118241115d9d81f7dbb30cbfbbfbdfc3c44aed182a9ab4a9803598bbc5b3589f4509888d56ea392553484403df6135bde4427c09a84b94dff8d8279ba586437d755a617b01510d96e8c15b4dec33d7613c868a6759faede81cbbd5793178f83b0ca40db7dcff1a7c3264fda63e21421662358ab1641675c858e335688267988051]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100b9f422b594dffcb8c4f268b065e2f74d19a504873cd60d91c2a911b613521c0e896bcd57bb4d1b92f5402dbaf3ac58af65b1dbc6d007cd5f988890beedef2e499b13f32f3bd91e8b5c0c50a70bfd40b9f4f26ce1bf515babffa645cc5e129bb48994ea77352a5ea05499799ed90577cc05b578740429f0b8db8cc57e7571b4196c668d9bb298497f867f3000d8a48ee62d665c6b2d2de53c72b1e716232da35595f3cbe5119f2b34ef9511e7fa540cea305ee177f8b3cb198cd9b3fb7dade310d6e5888c5f93618e122764ea37f0d05ff4df2b64120718a44a4fb8854ad2e46c903a766c4f971cb0479caac957ec36a5b6dd5a40b595d3c1e084841dfbc320118241115d9d81f7dbb30cbfbbfbdfc3c44aed182a9ab4a9803598bbc5b3589f4509888d56ea392553484403df6135bde4427c09a84b94dff8d8279ba586437d755a617b01510d96e8c15b4dec33d7613c868a6759faede81cbbd5793178f83b0ca40db7dcff1a7c3264fda63e21421662358ab1641675c858e335688267988051020301000102820181009b4c6e1472322270f9626dd62c314251ecc1e9273cc293f090befc60b0801998766246cb274cfd635d596d17be5bc8712ba03fa929a1ea7e14f8b0d2140a7600d8f7ef581a467900f02e04c98df4c2b2cb040fb4f53ff02c94447bf472f85d7b888f8ac565ec6dbcbf0ab20cdcb8795535cb59bea29f983ffa73f59868633e83210a00e7f05ec8bb2d4b597ecb6f9b3c56dc2f00ff695e127ec35ef819070b6af5e1f6fde71aa44e006ce1d87832ebda45ed67a5f759c89c1d0ad00a8feac23fa86e6654241353cfdff37d85f5c5655608207faeeb13116e5400edd5004f1cc2b40c90d6011d480237348725795f6a4bc9f3358065cdb71c2dbcf8333cdb0ce84e40d5a08bc5943a7d211aad6e4e0c63b78930b2f64b7b88e872a9c37c8a6cb1ed4b6cbcf2f40bed46ec868089157b2896a98f3cea594ff7d98379ba16220e57c595b2db1874068a5a1a7fd337084581f428a11251f0c1095f31ecf39001aaca69de60bcf1422d6149a9ca65e9e4360583a80332afea9c949432fa1d5f2123550281c100e0ef060429807c070d0292be8bc85fe8fd43eda9be163fa1ff06709dea7bae9ea1f81672c0632606c76058ed696eebefd679b16d4c69409bb83705d51cbe62ab4c6a11e3e7b09322f5ba30e18bedac5a9f112e6940de0aa86db1aed8bf76cfb67b94eafa57f4ba4ccff134497d2121716d652ab5553ed23b8a6a3c3ddaca4c8f5c682dd947e2ac1ec2f6e46dfd657d7c77568a39be6b94ca09378bec0007573915aaa3116e9ff71975a658e8c54975f03749da2254e146116101055c03fe55bf0281c100d3a2e5528c1748cd175295ee1f87b21a6f5b085f5b42c20e4b3bcd430df217a44574bd76090a14027149cfde720e6c7f7a9b8e2141f0d8c1a3ab5087e3340bf285bd9c4281e79049058f5365f21c8063de01189daea74f95c559cbe80b78494442d68bd6c1b304547cbd5ee6a07d4e3b06358a43e508af8ebd4803bf35bca9ae0c3deeedf02f95c739f8c528bc9012f88057b325d82621dd7d4915e2e77b685eb5f0586d3e30ef3541672d27c3998c486ec0b41bd51d979686f1dc7d81a44def0281c03cd4e7cfa059bb313cf781303f2585aac133e9c68", + "a3e021f9194f04804ee461f68b66b7bc5440b38b21b0071d49dc6f92a0be74c23ea232af9fb077cc735460205bc79f224eac020284c9e83a1103a1898045184eda21f47c5c2d4029265536f8aa48f97fcc996c8c743f85c17972a303ee1a9573922b040a2027120595774b520cc9bf9b3533e316390d9de553569668befbf9a36416a0fe9c637f52f5cccde075a0a97e04f2ac89be4cd0ec6ac43551fdebd3ba3b0f8fe2239e0752e2f4e890281c100c47f5d6e9c55ce29663b2eabee287e8c1ed225deeb8bfb436c44f51b0a2aba1ab2c66656dea3b5da62b746c261a1d4c933dc94457ac5156c0cfbb604c54680c547b9ba08e2364f780d2a7b238f7d3914007f820c7daa28b185900f4bbec28b3c4ed686f5f9d8adef87f607d41834dfdadbb4005173a8f1df950cf535a6be29c948e28421f5bd28d2d6978cef7acc4660e641073bdf09e0ad9672b2587fd6cc1c0bcf413b04e0486968f5542eb464afa45cf89d01ae89104319be1c9b8730378f0281c02306a4c7e14211e22f54d038487a92ff51edd4fcf44fe32296fe08766a5dcd130ee30c5935d6c31b866da061c5e75f4a88a4f0f6ca27d77ca929f86fb3786d8ac959569efa7b7593b8b1c5a57b05552435562190b46255e8446412cc0d825af9f38da02aa38584f1be3dc4e768eb0b9b84a3499b4ca5dd5d5b54aa45c2d241883c3ee7bd04fa66e77ecc878547eb73e7dc48b3a5c27f0dd1ed2d7fbd775e13a3ad7e7869515571d8a3a14ef871e17511cab3b4dee09be294372fe95db94f6448]\n\n# tcId = 52\n# edge case for Montgomery reduction over Z/nZ (64 bit)\nct = 4ddd718c830b084a29eed3b183983cb5f35e3224097c909fad3ed1db7654f207a766af1cdc693d4bfd6bb814c5d0702ac5c0e4c00e0f780f5a6c0f9d54c3d5c09d18348c8e99088223ea95d52edcc45bbac6021cd0ddeed2385945214e5979cc29d4e48ea50f72269256692145a0eef78fd7cb31a1089e8598cb30cabf43c7c2576543052f371f7bd4b443f9025bb6ae48ce13f9cef6ba3d4b4c8a623040ba4c34b59d922b2ddd04d281ea4a5eabfd909e2e8ad2d07d01bc58a152652f7e12b45a07117b27b4d8fdae6cecb9fcc7c08a70d35123d133d8c496db7741afb8a60334b0e4ca26f1177eabb5c0d8d1ca8f4a48d42e7029eccce447f1dd34a9385056db4fe739d169aec4237f9b6cf4525d33eed609ead086af7af92e6f41088fc0ca5b98f084384af7456674b9e1f9a975ac64ce71d83404a5deb0d4245279b5130918e757f326e7a883888d0a6fe9302f3bced56c1fc67c0ea3eadf80f19ce356db7476a3b18bd92e51fe8171f9b6a23d85a00ca5ebbede5de51bdd5e815cd45559\nmsg = 6c73f421166e8ecf05e804ede174bb79d4fc3dd0ae551996d65435a29fdf97d6e027ada03a77bc0dfb19c30d5ce22d28e399bcf41a4e4d3ee8662222af34a3a10c96bb4f4de5e81c99ba98a90047abb1d399f5c577abf19488212340e929bcdb4f3cc9a24c2f937ec0b110a2eb159b4de0ed776031b01a93282a555aa04c00651329cdf413e216f7fd85d198df091d72aff5efb10f6ef5b39bf5dbdf5d7382d4da4b40b43f267470825cf4d809ce39db8c8477bae783cfc85e39b5f8fda115109ad7eb100ac965d52e89f13dbc2ade3abcdf9954ccebbdb9b8dc750b078ad3d2f3aa\nresult = valid\n\n[d = 0187d613f5eb354332c1a9775ed3f802329ddfa7cfc9e88db2160dd44664d4e12258630f19cc5cc4fc00d97d67cf1b300ff92444ecbfe8ea0d32aa7c08d781016d406b4bb9bbfb39931879bef37cd81c01847ad280172b8573d6b07ffb307a0976130bae2f439de2b3680bae119a5b9e2e05bb90b157b205ff1191af9d67a4b871b6f365cdf54a55a51ddec246cb17dd7ac65bb6365614bfcb5d4299add596f3cb8aaa3b8734f70e4cc472e17027106924527eafe8a3a76acf105093a644b5ebc2599059c6dfffd14295f0914a25ee32d01598b3a04e3f364632b7d0b41e6fc648c8902ae59a06d5d41e119a94e85ec67811e4773bc6a12ddba47121c22ece8dccd6e99539f1118a548ac2504fdef5e4b6c9ec57fa5ccb26ee2b686097abe5dbfb46949e708f69716cbcaf60f24f08139ceb47db1830a127be5e17767f31a2fe6c5ae1760a48f5bc498c9159770ad40bc14082a74d22a5e635475bac69b35a4c0231446370a77548cbe2f142ab0d1f499d7179dea7fda47cf3aa3ed8ef496d91]\n[e = 010001]\n[keysize = 3072]\n[n = 00ae7479023982158d24721328a553a0cc301d816b0cc963ff64f3f102534d96e9d6d3a88262996855d367828ff03332d470bb196830747f50a260ea7f0840ef0d069c11df8335686daa8a645d27888099e10d1004dbca66ad598d48de78699e064859d322b3c78626dd28ff9b0fc5c65c71efc9df7543d6032852418762f408f18066013a09644de25f0f86f7576d5f1619c01af78fef90a3e3f9c04e8d40e8212a801f404e93eddd31c09f56630fd559d0a52e097eb138bfa858e2278e2f4701539ae2eb3beafa69cb285ca7d34bb489722c3efd026e32cecc4767164b0f01f1709b37c23260790dfc958d3e28f279129ddcca249ab852ad2814db40cc2269e7ae79aedc02fd17d297208da25fd1e0e6f866784e985663d83b5b2870d04bbae94a3d22c46cb2dab101bbc5f4a6d57aca331dea23d233880444405def1b585e8bcc14761c2655282a36582ed04c40f65bcc779ed294811f4a64951ec321b7be140cd22a801ac59f7633658a6ce14db1b197f1720aec514b628813ea2bda005a87]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e20201000282018100ae7479023982158d24721328a553a0cc301d816b0cc963ff64f3f102534d96e9d6d3a88262996855d367828ff03332d470bb196830747f50a260ea7f0840ef0d069c11df8335686daa8a645d27888099e10d1004dbca66ad598d48de78699e064859d322b3c78626dd28ff9b0fc5c65c71efc9df7543d6032852418762f408f18066013a09644de25f0f86f7576d5f1619c01af78fef90a3e3f9c04e8d40e8212a801f404e93eddd31c09f56630fd559d0a52e097eb138bfa858e2278e2f4701539ae2eb3beafa69cb285ca7d34bb489722c3efd026e32cecc4767164b0f01f1709b37c23260790dfc958d3e28f279129ddcca249ab852ad2814db40cc2269e7ae79aedc02fd17d297208da25fd1e0e6f866784e985663d83b5b2870d04bbae94a3d22c46cb2dab101bbc5f4a6d57aca331dea23d233880444405def1b585e8bcc14761c2655282a36582ed04c40f65bcc779ed294811f4a64951ec321b7be140cd22a801ac59f7633658a6ce14db1b197f1720aec514b628813ea2bda005a870203010001028201800187d613f5eb354332c1a9775ed3f802329ddfa7cfc9e88db2160dd44664d4e12258630f19cc5cc4fc00d97d67cf1b300ff92444ecbfe8ea0d32aa7c08d781016d406b4bb9bbfb39931879bef37cd81c01847ad280172b8573d6b07ffb307a0976130bae2f439de2b3680bae119a5b9e2e05bb90b157b205ff1191af9d67a4b871b6f365cdf54a55a51ddec246cb17dd7ac65bb6365614bfcb5d4299add596f3cb8aaa3b8734f70e4cc472e17027106924527eafe8a3a76acf105093a644b5ebc2599059c6dfffd14295f0914a25ee32d01598b3a04e3f364632b7d0b41e6fc648c8902ae59a06d5d41e119a94e85ec67811e4773bc6a12ddba47121c22ece8dccd6e99539f1118a548ac2504fdef5e4b6c9ec57fa5ccb26ee2b686097abe5dbfb46949e708f69716cbcaf60f24f08139ceb47db1830a127be5e17767f31a2fe6c5ae1760a48f5bc498c9159770ad40bc14082a74d22a5e635475bac69b35a4c0231446370a77548cbe2f142ab0d1f499d7179dea7fda47cf3aa3ed8ef496d910281c100d6cf4728c46e1a78dcc63132ecb7a3537bcc784296db0471d6c496c9cfcdead5fbb92e407d9141faa7a6a41368a498ca281e2ab377bc0f48d4415a1d1088ba5e524658a7e87700eb9b44d2683c35aa24f61b5ce767ed983fd7ffb378545f6604f66ca9858b41bfbd7abe0d25b0b9221a8c823257b9438df75310b08b037a090bd6753b96f1a63ba43304aa71a2c437a33cbaaf97c63e42ccea5b1864b6862de5234a040117de39bee9eb94d6f49d0ce5c270bbf334048b8b923a89642ff01d090281c100cfe83c54d7c12145c9c96457a496958dfd50bbf19fb8cb4af7bd938fbd1581a371d597c57b6910d9eb76618804e39c3c820cbe1b1a245a537d190f131ea1d11a536c94eadab9f71d437fa2b561d1beb1ad6b1a8e7fc28007fe966d66e052f0c58c1b512ac41fa108d14b236121c075c895bcc3a6adc34d23dc5598a623627adf14a6e1111dfa281293322bc1c567c7cf94846f174845f6607585bbac9c45995f391a5e475718660c3f5a4891c7629470af2c6d04a33dd80fe1480250494a2f0f0281c04b0ff168c0834d02d0fafcb433ddd3d7d759d2e849f8ccabcf05b13f623b2d858ac9e1ecad34361f15b8787b43c4c89353c37ede69c7b07b9d981c9a2d6de9da0ddc011ce371ba439a6549351d5d0f508d2370aa7839a14b25fa7747640c560503eb62ad84c4fbf08554a6197690aae7261454ed2c92fba7e241e1bf21fee1ec5e0b67404ebeecf66ad18591e1f3b91174a633b7d0916f1c56047118b86358e44a19921ea3ad86f63c9d92cc2e7c36c68ed48008f3336763e53c4948562c0ca90281c03fa19a65752b3cddb926943966bc57c57f542851894aeb9d6439776234c2d24c8dd88b7cfb8a6a87e7d2f182c9cc47d3151285549229b2237f541e1301fb109e780df17df7b796f433e66a8c0d063ed0ee7cab4215c4179f5ac1fb75d30e4f7686ad0da88322130d39d13f60c90db87ecda55a54373660f3aac9dfd0696008af2208f9355df164365b2aadcdbe7746e637545913cd20ec89152efb0397488dea60f5bb092694e716b4851354daab47373dc5e10fdc4e5f446cf4b7108f7dceed0281c0331b956a6db2c190f057798d7f037bb6631009ee457b39146f6f2de9d6553375d7990d8e38bbae484acf91af55f11dab033a54cf2efc4cd958b83c7cf8c37c8a4802a38b7c17adc45537166b396dd58b21cf1a15188b6cf3c2c180d3d102058d8b764280b75ed1f595b747172613f5851e9c80266c2ac6e4fc21a1bd0eeb47a8c457e5d3ec342a024042904c0504f96fb0d733b38d80becd5d30ec4cff6307d62b15e4d7f281e6d874a489ad3b48cac8bc80d914d3259f0f45dd8bf1183af7e4]\n\n# tcId = 53\n# edge case for Montgomery reduction over Z/nZ (64 bit)\nct = 2ebc256a41feffc096f650b7b9cbf7994c8aa4c49520fa94fa7461e10c0af97878b37334bb6a0a60fa97eab9079d473ca1dc32bde542034c5e7d62d20c8aad1009a24effa0a3f0ab835e56b4a0abec16f7c15ca148d746cab4a0559a9808f5492d854a0036e98a970f6a6650473bd2118e1565f4dacde8ab31e113820a211800effef944ef976b584c03e4d661c25ae2f753a1942cf099106ece19623782fd1d84889af5fe32e621b10db24925a431fe5444ce3668c24322dca684b2e6f6aecc21803aed3cfa6246d1d61b087699e6dfc0b6a7d68a778790719c6e651617446856bbd21a634b32033a0f1236b59bcd255c8ea0", + "8bd9a93a964531cfafe6ff5640169427c4ecb859536ff5d9feb3ea23be0ab1ac4d6ad56fc4947dbb3bfa1b669a9437c4416ddc27c266a0cbcab047c15b28948e57a2071a692c951bb2f91358e17398f83e0fb6b76872c374d2422a7351600bf6a20c023f153c200ddf5139f6c6cc90a1585378824294fb95053ea4564fed52a72131377b3389297103f1576163\nmsg = ca48e200c2f7a78aaed184d2a834f3f508f2065684db8d21bc2fcdde052416e775069906a5933febbea7b132f4d066e715748af0e0fa78d7311cebfa70cf7736cef6d913db4b8eea438a105fe561ac24043e8c30d4b9d253645a4132e3f0d74a0a629de80a5b5dbde5be18ef2a063cb79eed4d9f9e3127c1a7581c20c23ec02f5585692a93a8a5a4a9e2d10ca598bc9b02f0995002face80740f446ff2dfbf11205e0807f6881a1fd035e3b233166c55139d2b8e044ea9055ca29026bce8d078fdbff0cef008bf49ae35245e81e8b1d32ded09f0e7f9279c0ca885d9ba267879b4d88072d28b8d855d97afaaf3b2bd7ee32302bd14c8\nresult = valid\n\n[d = 00934c006839923b1a96bc6f6c28ec1cce3cc8ceac69a4ff5119dba1b8193479f6c89a102b8b224ae1329823855dbd8f1576e893fb3f0d144b81c84fbaa65c83fbf703da0739afe6974e7d5d288201bed098afa439da1ac1628e8d8a1ff2bf5cfbde5527559f9af5410b3e5a9780fefd7e2e58937d354fc3ecb502f56616372b9d7d2a991d0d40755ec6ab870d33f52bf1aa760801cc71ea0772ffb8f75206a4e3c23f01a1be73a0aa68c29c4aa71dd3e910aea247a960bf33678fa382cddd1ce4054458fc24d33fe03f6dea40ab51ed1eac945d824c93f5a69be51919ff66f0d6a769aa995a48ebb6a0b15aacc6e49f4873531114d4c21c0235101b106acde123deb4b79335add9207f489b8f7efc09768439c209a8e3d40f41f74070265de105da85b4264ee25e3f6c2cda182d8e5c0398d254faab5ef8d94a942377cac06e31b273c5df20964fa9ce85a012fcf19cb37ccb2251fc7ecd12139cf2d9b08546653fff71933fd52ddc988cbabaa6d052d0bcac103dc4c34fc60a750ed5f20f1a11]\n[e = 010001]\n[keysize = 3072]\n[n = 00aacfaba81d006ca0ab955319f18d1faff503f85bf95208b2964620c4634b90ffc7d5ad64b06a6c28d8daf1457f36b805a4e11b413ce77c87d47ec93c221405ed5784d4c94d3e02610aa95dd568459e0377b0f358971908a299b2105751df5b750606527202708cf2c7a473dca132dba2c22ae31a8682eccf3b7152b90eb9114b0a08a9854352e2501d1c142b7b374b623adbc4bb512f8f6a0872e49857374ee0f41ce19aa6ba9d0e6f0c23d86395ac3d5152553bc72044a76587cd8803398dded0e42e02fc296144ea3bdf29f1105ec6424a5448e5c4873c98862482baf99a739436547a20cc0710087479402ed3bb81a803beb812bd314434e46ae0a147defb832fb1705aeac084a1e623d0ef64f10600ad3de3320e07c7f40eda1f2628f28073aac252f29acd1fa6a9260ec90d9b320fb1065f1af6b3c120ec809127b5adedc8ac04c8b11caf9820528d06b04ac88267187eb87364324213272aa2a730fee494ce9a1bd3374dbb3c692068d9b365e69428c0e41c6a079ec5523b4f3456126b]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100aacfaba81d006ca0ab955319f18d1faff503f85bf95208b2964620c4634b90ffc7d5ad64b06a6c28d8daf1457f36b805a4e11b413ce77c87d47ec93c221405ed5784d4c94d3e02610aa95dd568459e0377b0f358971908a299b2105751df5b750606527202708cf2c7a473dca132dba2c22ae31a8682eccf3b7152b90eb9114b0a08a9854352e2501d1c142b7b374b623adbc4bb512f8f6a0872e49857374ee0f41ce19aa6ba9d0e6f0c23d86395ac3d5152553bc72044a76587cd8803398dded0e42e02fc296144ea3bdf29f1105ec6424a5448e5c4873c98862482baf99a739436547a20cc0710087479402ed3bb81a803beb812bd314434e46ae0a147defb832fb1705aeac084a1e623d0ef64f10600ad3de3320e07c7f40eda1f2628f28073aac252f29acd1fa6a9260ec90d9b320fb1065f1af6b3c120ec809127b5adedc8ac04c8b11caf9820528d06b04ac88267187eb87364324213272aa2a730fee494ce9a1bd3374dbb3c692068d9b365e69428c0e41c6a079ec5523b4f3456126b02030100010282018100934c006839923b1a96bc6f6c28ec1cce3cc8ceac69a4ff5119dba1b8193479f6c89a102b8b224ae1329823855dbd8f1576e893fb3f0d144b81c84fbaa65c83fbf703da0739afe6974e7d5d288201bed098afa439da1ac1628e8d8a1ff2bf5cfbde5527559f9af5410b3e5a9780fefd7e2e58937d354fc3ecb502f56616372b9d7d2a991d0d40755ec6ab870d33f52bf1aa760801cc71ea0772ffb8f75206a4e3c23f01a1be73a0aa68c29c4aa71dd3e910aea247a960bf33678fa382cddd1ce4054458fc24d33fe03f6dea40ab51ed1eac945d824c93f5a69be51919ff66f0d6a769aa995a48ebb6a0b15aacc6e49f4873531114d4c21c0235101b106acde123deb4b79335add9207f489b8f7efc09768439c209a8e3d40f41f74070265de105da85b4264ee25e3f6c2cda182d8e5c0398d254faab5ef8d94a942377cac06e31b273c5df20964fa9ce85a012fcf19cb37ccb2251fc7ecd12139cf2d9b08546653fff71933fd52ddc988cbabaa6d052d0bcac103dc4c34fc60a750ed5f20f1a110281c100e48e1b1a681f89972e67c3ef729089436b8a03000c35aedb1efa3405ebb327497b314f7962c78531ad4191e6bb918ab0ed3b3ad34f930de7a305bf16fc996c804e6c5e7ef5e523ab4656572a89bd41f934cf0d4a124f584b69e7a74f67d06d02132a4d8dd13ff571bafb69e73c69cce3ab4359a3feb4592448f8a3612f4e90728d9d540ec7b24ce662e38bcbdb065e480be8f7ead64b227654de354451c4063498e1462442dc9a8825db93bd6ec25a7e59032355881463a5d764fa1aae5501e30281c100bf527d5b1c1fe3e6f99bfe354845510337eda0dfc933270f702bdcec4b4aa260242ba2c2da3ef34e1e10acd2fd8f495dcb01add82253884072db8a578d7390a0c6d74596ea735a0f800a1bc4392125c6fd4dfa96797342b0a7913052a54f42c69fd479ce9d9008f5af11aee2fbdb5d8f77bd39127f449d024489ceeb3e5f872dafe8e5a13ebed2e7be39700423fa758089c8fd7b8d9c901b51b848d8415d0cb7388bbc6ba0dbdcff2cd0b60d46c57f3cd6919d596e7e12215a1eb221e11ff3d90281c100c8fae57e7d1d6e8290fe126057601e343936ad98b723e5d52e125af8f1e122a50d3db96346a7a8ca9c4e529c914854ab6c916f132ea063d3d399540644ae2da94e4d2173878bada8093c177e828cf89cca0160f047d59a1106d9fc586933f107a80ec50ff677c5bff2eaee9fb6925ae7c14c826121b339c81c9af82097d700529b9143bf937f88fbf6ed9d9aefc953d30b161c1c57c0ce573c1e02bd4721974b5d3c8bcf8b342e7796c2d5d1f8b9d395d3745cf7f3a7ea50856e78384a20da7d0281c03fc12e52c121836181c650c4d2ab7e9e92f195cd5d0fb5b17850b592ec581799f013b66e362a0a0bfb0ad57c8dd044c38395b0a7b8709b93d672803c42bfc2ef40b395d5ff94a6eb496094f6238f7f363b4cd3f776cb48eaf33bf79d62c6f1da9c824280ee9283d9d318126e433d4b85368290d53021de2c564891f2645b93014f804d9d18fa9fef67bd5e2d930bb042402801083e1d710c19844e89f9e61709ab472d67b437f001fc9e243c725bf7d57f2f10ff2f49c5a2e5941b0a1d29f7a90281c10098bf3706d4dc5b9e21456fa308c4464b57b79af05d516503ddee570ec7e8619e996b2504934d037d48f0fa4276cf6c57b5f558f039a857af4892ab630ddedee1c752e331a61a27279c719587ccbdcc7799f8b0f447420bac28bed75d4128e441bf8d86326829f746908c10ea41db49284030d1e33dd01146f72b1360821481f42cdf885a969356c976171ee934093103e86e71a805727961fff2753eeba574e5764d10c57b50a4b9a2a42caf0323f5bdec3ad71c595a58f02fe2173ec1b5e754]\n\n# tcId = 54\n# edge case for Montgomery reduction over Z/nZ (3072 bit)\nct = 326f661d48f6991f246126abf1e0b48a15ea1e80487c3c8b641ef5172f75d262b978222ce34a1f7b1b5eea1dd1967b7848d9be3c673a61a2352778cbe3665c9c155a158d19c260472accd4a113372565a3daf792a287aa715b39f48f3449163aaa6bf52d20efc4ec91b0ed7948a43c8cba24ff18a4c5c9dd1dd603d0ca634b1da7e454c64f5753679d9c8c017338776e47a343d896650ea7f5602aaaefb95b06bc31f47de1f2ea7dd3b1630d2c40cba0528b0d8939907878eabda6995537c96c75e189037bb26bc5a929e6825ed72eeb4b368f9119a3bd8bf94d05d50a686c38fcb928957c91be76ab2d00bcb0b87a9db80e9f19f0b01ac3061cf75d1e11ca999e8bb1d3fa1168bad971dff371c84f403381bbd293791bf04ba603b0977a5b1305d568a1c756ee8acebba0815e29daf691be0c09acc31289967763e475da58a03ef50c9dd540ca107547be7542e6281060ee15a53167c97bd2ec7dbf9e640d798203ec116e3ffdbe9f49c02b77e7308b53139f13811c90f6eaf288b86940574f\nmsg = a321ec58f541d5ebdd133e269f7cd231bc3b9dd7f87c98aaf8570a0b9379aab8dce5f0c0d6fe7a3d31c2bcf4cb67fd8cef2d2c927496da30b6ae4fa56ab5c60d5f4e0fb487e1d386d68c2b78ffca355af33bd32bd4d6adb3debc5a14fceac64d2d2fdf47e37b9f8347af6c323842b139f3a98a571957b80be6d612a5d1138915eb80811ee3a95fcdceddfed6c1b4160da33ec61c7b6d384c2c1cc261e7eae3cf882cd935ea5685fbd4d433a2a439e08fa598d7d4a12f46baa8459dc1fe9ebc744bd51858c00d85d61548c85f0e3edaffb0d0a1dc7449b4e2c8a2b1ca8a2a\nresult = valid\n\n[d = 35ce75920ac1339e73c97c6b94ac8e0cff7050be86da8e4e1435dfda1cb7ea4bd0c5b12444056653cbc0f1ffc30b56c37179658a60839a59fd9aa59ceab56605b08eb9bbc2d8547462e7e9fe338d05e98c24be4d0ead47c28cb4ca6562b76c940f3226baefe0b49409974ceb4219c1791007944afe2016511961b6ea3cae539de6867749e4798fe1221dbe09c3154ac77c7f4c3ccbd5788c25d02b07361b6464be5aff827cb3d4b38d596c886440003aa03a3c20a7131d8f094dc1d761a483ae04a6d84b5ab2e0d001095b6d08a229fdb9d485008ad27bdf228dfcbf710eab9a4ce84dfc0bc805ae414f5b1987c7fec717cc246edad438092fa2fca550257889998e8f948d6240fb778ee15c58e2be69e8e11cc10df88a75aff1faaebcae9566ef2f07da7b29a4e53da25eb3b4400da237f881bd4abb624375c2e22eccfa00006137f09867e4476f48df8076b053b0cc2bb9d388340091872a22e682797096789b49b3388449db2db21d4228a8b0757e7e5c60861b187204566839e5339c2311]\n[e = 010001]\n[keysize = 3072]\n[n = 00bebee4da13758ea39642552d64c54851d501f47d906e68ab30d6f873f092fdfd06127fc8e71", + "c7d4103f4f23b411cd781b6a5afb56af1ca6067f9f39d3e5c26df108db854ebda615bbb359dcb6da5ed901cc77e85c0dc196bf9d7b0eecd896d670960b250fd2f1a15d37c185a0d0ef69bdc80f3f97129d6f1cd54443d7a449adfd5854ed6d3f17e1e934b7c383c9577fffd6f69f2f4e2547702d0bff95e6f5764d5a2ff73ebc25ebc8c98128686afd7d2b273a1d23579e197c47768db0fb72e1cdb9d9b9bb70a97fee3f3bdfede99695bf3e595ee02f4465ee5b8fc82abd073e78aaaafa3f63c3c6e19341ef8e9a6cdc4a132ba89bd06f183765fa73122c479094abb56d29f972a5f79d94c61f85d528e1728b6ca66fadd22b2bc093068bd2eb30a55e300060764695d20768c9731a33f7e09a129818491dcc5421702d108c8c239f502406abdd6951888ebdeebbab51c70a1870b4a25a1358a37016c51b0343ec59b43f13c190243ff8b1d8221b59f7de6469a5f79d96d239e503a42843898a7]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100bebee4da13758ea39642552d64c54851d501f47d906e68ab30d6f873f092fdfd06127fc8e71c7d4103f4f23b411cd781b6a5afb56af1ca6067f9f39d3e5c26df108db854ebda615bbb359dcb6da5ed901cc77e85c0dc196bf9d7b0eecd896d670960b250fd2f1a15d37c185a0d0ef69bdc80f3f97129d6f1cd54443d7a449adfd5854ed6d3f17e1e934b7c383c9577fffd6f69f2f4e2547702d0bff95e6f5764d5a2ff73ebc25ebc8c98128686afd7d2b273a1d23579e197c47768db0fb72e1cdb9d9b9bb70a97fee3f3bdfede99695bf3e595ee02f4465ee5b8fc82abd073e78aaaafa3f63c3c6e19341ef8e9a6cdc4a132ba89bd06f183765fa73122c479094abb56d29f972a5f79d94c61f85d528e1728b6ca66fadd22b2bc093068bd2eb30a55e300060764695d20768c9731a33f7e09a129818491dcc5421702d108c8c239f502406abdd6951888ebdeebbab51c70a1870b4a25a1358a37016c51b0343ec59b43f13c190243ff8b1d8221b59f7de6469a5f79d96d239e503a42843898a702030100010282018035ce75920ac1339e73c97c6b94ac8e0cff7050be86da8e4e1435dfda1cb7ea4bd0c5b12444056653cbc0f1ffc30b56c37179658a60839a59fd9aa59ceab56605b08eb9bbc2d8547462e7e9fe338d05e98c24be4d0ead47c28cb4ca6562b76c940f3226baefe0b49409974ceb4219c1791007944afe2016511961b6ea3cae539de6867749e4798fe1221dbe09c3154ac77c7f4c3ccbd5788c25d02b07361b6464be5aff827cb3d4b38d596c886440003aa03a3c20a7131d8f094dc1d761a483ae04a6d84b5ab2e0d001095b6d08a229fdb9d485008ad27bdf228dfcbf710eab9a4ce84dfc0bc805ae414f5b1987c7fec717cc246edad438092fa2fca550257889998e8f948d6240fb778ee15c58e2be69e8e11cc10df88a75aff1faaebcae9566ef2f07da7b29a4e53da25eb3b4400da237f881bd4abb624375c2e22eccfa00006137f09867e4476f48df8076b053b0cc2bb9d388340091872a22e682797096789b49b3388449db2db21d4228a8b0757e7e5c60861b187204566839e5339c23110281c100fa3b5df070b36ec044b1e8cb351d7ed85ca8615908933a8926b0b87f0b589f2b3b72d10d54beedd197b6b58d411fa24dcd135834644a82c6dcfd36cf1c6c1565898250ef95bc65c06ed6f71361077ae8012d06b859ac7dc7fe3ce1f9461eb9be7fe3ef5bf6ab33e0f5585ba788ed988bb7c0e88b6e3a53bcebe4a2c9e3d380ecdd51f09191b7e34cc250d6a9520487a7a8ab7cc7ac01d77f24694953a3902cc589505ec8ba4485652e0752ec1d8c7cea562e27b2e103a188092b637b05dbde090281c100c3247ece249e51126522481a800ca467c277c15774aaa679dc985bfa76623f521afa11bc88ec466c70e7e863f5f146a54e92c95bfd657fd8c17c14ae1ebbdc55874f5b730dbf9813d6fa9f0aca4066f649744a9451e2891675696aeb894b542832ae0213a846eec942942166eec79f7d983076d825413a5c2b330db30841540aaf90ce847b35d833e84943553eba54821beb3fcff10c60d2239567ed79f96c6457c696a3b73c24eab59cd2efee3d048395b49f56fb969f05864388ec1d096d2f0281c100f0fbf985145489855ae2e769c3f66af15d92bf65aa2f78011ba4b7998a48c7c92fd06c69e54296eff1a701034f4372e0706e7fd4bcfd5122c93286f540cf0a7025d4bdb36e45e8cc41327ef247d0975a15bfd227fa1c776a027b89b8b201e72a022a769adf5c9372c3755b9765f443a3d2cc5267ed38f8ea0957c03aa4514d694fdf98c9e846eafd4269edc154fe8dd2364b28b976fab3197bec75b4b9e1a06c80c848f0110aea58bdd249d6a0c26a8e977e8db6e4a2c58ea81e040937643e590281c05bf43c94a308bf272de4e3992931cbdee0f251770690cb75ad0f56784584b255dc446e4b2b323b552a36fd78ed11ceba62b62490666d87bafa21a01514826da717e5bb301210707718dc6c494758e5abb49d49ef6e4e934eb3f102e30e852298f698ac7ddad3e1fd909400d1623f4ad681fa846601d824c9fdc946f150388883a88b51e577b1bdb96801edeaa36e66181153df73fb205c17699123b1f1c228e377c12a86e6f73e6623424cdba6a5b614d35c93a10758c8826fec2eff2407a71d0281c066abfa984437286dee8effd65c5ce82c9c716c49f15233d12ab564e4bc540b3d9d0e3d24300cd3d681918fea8dbe02d21f26d96c8a9a4c11f6440bf6e1bd6831a738fcadcd4cda790ebd4a321096b4401129d57d9dc05884f631823e17762b7e2508d78c2f3dab4d86c617ae69bb2af274aad6a6f191d39a29c6564510d0017e2ca7f14902a6695401383a3b50517e30a5a1f0f9bcc0c237172442126f5a8b8d32cd4bb0bbf07d0a0b2dea4cd51ae4242b4f75c12c75a9d29bd0d4b5872a5600]\n\n# tcId = 55\n# edge case for Montgomery reduction over Z/nZ (3072 bit)\nct = 7ad2bea4ac2a386385166ede3f6382cff6d8411c31958110caa78715a1e1dd78b456c3a363e2c99d1bc39368e76bca6ed1ac2af1b14c39738c8f740599b7effd6cd7a6bc5e23b4fb54a521d1bdef7257f1db95c052d565f7e5a0281787626fad81eed35cb85c83d0e2aa9346803f36a9148fd834e3691997da22434023c21eb0b075b798612ebb7f2423f3d20d3a5b39f6d25430ca1e1f1fb7b52453ec6298042d53fdb2652a2cec5ea99d8e56a284f545d13e4ede008a5f76e8552011bd7dab7fdf2ed055de35655296b034ee06e2a139e02cbb47be10b180bb3da9123d4ae467cda15d2459071d6cf0ca41d1a3cb12954e7550f015202fd0a3ab117ef690187487622e76bf2d6230f45a11757071382df9c9ff0ec939df426169297efd4dab2db393c1e5cd8176072ea5595cfae067792d038bb90b24e9145c7b75fae17d4efac7a07e58bd0b54fe503f60ef413a54cd5036e94016e304a38c3ea447896f84922ca8180d9efda298273f0177ca84f23edc41835448142705944a2ad2a06385\nmsg = efd8ff839c7d5fde6fa99814ca7cc29f2ab52c54f2c695e068b0762f067b8d90bb3d163080176bfa616dbb781107642baf8931933aff1d9c417096dd06d88c0b0803ae18e1475c8fd3f20856e869f1eed177767b6d256ccce8cd9005c9082a432a7f22a90828c28280b1f1a9b434695fb30215ce8e2e48a14f6b2dbab9ddd3d218ec13404f638c2a4fceca52570cb23f09b9d003bc9895b297af127509a9f8a2df7dce8283be1a0720e1524a510c3515407c23727bb2f470db53\nresult = valid\n\n[d = 0e4e37fb54825612ac737151671e180c6ad89cfe10c6d6d87fa01424eeff0567d596b8ecd006b5d5f2a5ebc2ec2025872d4002566e4022c1cd524e1f614c864759b15c0c78b02c90e746f97480f75201d42aa605794f35281b8d4222db7784176851798c97a81fa72ff2ba3eb591688be35fa3916ccf14e4a3950de8e0b9b6fd2d157df7bb28d529e482cfbe272250447cf9ce269b8c2d7937b0eddba60d4b0edef315c44affb45347018987eebe78d996d269df630228211e56c598fea384216b2ea93fbdc2f39d34cc23a424cbf8619645b586488349f701a337b55dbcac9ed3e381e25107c6bbadfc907ea51291ac640a9acbd518b88a9bf6c49b72ea9892c0599afee60c09aa81276429ea0af806b22a2c67c7fb7ea8a44fa6d9b0d74d2860d08fb4d0cdd8b7d676693b9b56fa822ef66a55e93e8e4c491f225e323622ec68872a3af3f64c23077c89d816d02ba9f5b949a53bb223cf8b7ea00f7a693b8b3fea416a5867429294d93e09e532b00bc1fc6d8a0f83ee7917e43fb5fd687e21]\n[e = 010001]\n[keysize = 3072]\n[n = 00999840d1e30c2fda872276f9fa9c50f70ffaf5e109ef8b364a2c72494649ff9dd1a355b48c64e6b22e20d06450a7283bd6b27a6605a4c80cc0c268c09019d130a61c6c9de458cc0a3a0a18a37fa8381463d626ecd8f0d65df983c2f0cd19d0fb7cd97e68bb6aaa6a01c2056db4d9561d5abcda21914ce7a9cab944b1c462f73ae2ebff3666b12ab99c8c6cbf8893446535f25ff9b246d6495c0599dbed9605e0e18cc79b607612e9fedc1f43c93e63a6bd107830dad2804e1c83b023124ea0972a299c2fe8c1e1858ecbbee424fe352e7d3639ca3ed35f0eda7c8d441c3b1b5eb33181a07579ca744e6a3a571953e9ac9a5779a83d1c9ce2fa4dc1b8957e8807503550062bbbfa6b70042e349abe3888144f81b66013b943e2cba029e47854940097efd267ffbaa0494e84c9fef7f11b493f667021cb11120b08fa39f2852db8d1f5fd21415af89fe98d4ed3bd6eba57166a1b3eec1cd979d765888551ed6224ea7031ce23c596d32c6d508acfe91fe4398e498f26d5e0d60aeb63004f3e3245]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100999840d1e30c2fda872276f9fa9c50f70ffaf5e109ef8b364a2c72494649ff9dd1a355b48c64e6b22e20d06450a7283bd6b27a6605a4c80cc0c268c09019d130a61c6c9de458cc0a3a0a18a37fa8381463d626ecd8f0d65df983c2f0cd19d0fb7cd97e68bb6aaa6a01c2056db4d9561d5abcda21914ce7a9cab944b1c462f73ae2ebff3666b12ab99c8c6cbf8893446535f25ff9b246d6495c0599dbed9605e0e18cc79b607612e9fedc1f43c93e63a6bd107830dad2804e1c83b023124ea0972a299c2fe8c1e1858ecbbee424fe352e7d3639ca3ed35f0eda7c8d441c3b1b5eb33181a07579ca744e6a3a571953e9ac9a5779a83d1c9ce2fa4dc1b8957e8807503550062bbbfa6b70042e349abe3888144f81b66013b943e2cba029e47854940097efd267ffbaa0494e84c9fef7f11b493f667021cb11120b08fa39f2852db8d1f5fd21415af89fe98d4ed3bd6eba57166a1b3eec1cd979d765888551ed6224ea7031ce23c596d32c6d508acfe91fe4398e498f26d5e0d60aeb63004f3e32450203010001028201800e4e37fb54825612ac737151671e180c6ad89cfe10c6d6d87fa01424eeff0567d596b8ecd006b5d5f2a5ebc2ec2025872d4002566e4022c1cd524e1f614c864759b15c0c78b02c90e746f97480f75201d42aa605794f35281b8d4222db7", + "784176851798c97a81fa72ff2ba3eb591688be35fa3916ccf14e4a3950de8e0b9b6fd2d157df7bb28d529e482cfbe272250447cf9ce269b8c2d7937b0eddba60d4b0edef315c44affb45347018987eebe78d996d269df630228211e56c598fea384216b2ea93fbdc2f39d34cc23a424cbf8619645b586488349f701a337b55dbcac9ed3e381e25107c6bbadfc907ea51291ac640a9acbd518b88a9bf6c49b72ea9892c0599afee60c09aa81276429ea0af806b22a2c67c7fb7ea8a44fa6d9b0d74d2860d08fb4d0cdd8b7d676693b9b56fa822ef66a55e93e8e4c491f225e323622ec68872a3af3f64c23077c89d816d02ba9f5b949a53bb223cf8b7ea00f7a693b8b3fea416a5867429294d93e09e532b00bc1fc6d8a0f83ee7917e43fb5fd687e210281c100d3ff0d7ea18d5bf845989580cf0f3c92565a52c384c0731fe41c2ca44ddf043b87555f1120cc2379c68291d845c1d34e56ef313519c7ff5519fa59152dd03da95571382ef676a42b6acb7c8d09401b7c8b0e3728da4691098a8d0bf036c5904216bc5bd0f2ec8b5589efd8bac7a720c39b8ca4f0aa042782b96fe0ec991dc9d9ecf1d3ce48b4f1c5d6e2211ffa0bc2f935043a4abd7be7443b1b8590a413580b73433bceffa44a9c84a3f683a1fcc2f650d90bd852382a09bfd0b2b7be4c215b0281c100b979e3a53db29e5fa365ce736c12a78462f2390f8859f28c2b4b84d5ee7bdd9df30f3a232bfe2fb993f92b3674e75c88f84b24478673eaeb4bf81fbceca0b932fe9c06b546ee1d45f102c9c1d05d7b41766df99c6fdaf869314fe4b178a518367c7086b1eb10c5b376a2cb8372eded25f5cf386cdd406391b113c0807dcb28b67cdb1cd235532655ba1c3132e599375c7aedca335ef83390909f6b619e635a19a7ee29cf15f8934419b3c1e82d0f5f57d8ee4c8a5488534627a69dbc70ccacdf0281c004a1d611a64608746c50e1336752d5e7fcab0c93e91aab694efaae9f08748f0b1df1e799e03595b0db7d8ee242e3f1520ce43d1703f132cb113e3f240f543584b5b13ba10b119c94b648abf808f3b5a60b03cc80c0043ab712a7f252d55f8bbf65efc7b1d11d0a0e5c6d39371b95b34992e487d61a60ecdc16613370f8078699946bd44cf599be8eac1b54cdf610bbb9e646a95f68b48461214980a9a06c2bc854446bd22213dced7e98769279bfa422edb15068f1a2f8882e00c966ea698f710281c07300fd022c6b607ff494df99f9dce739d310560927867e3a236e440352484375f88bec847a76b5a8dff393b3c470e0939d411a51af3098ed24c1c90c1fbcd898a1fea4ba2a2ce2c1c75aef36d9b7dd010e29caa8114338dc20d364fe15cc6863006dd556e46615efdd13bc14d96265b52fe1391f6760d15c38ec0264a99b1ab76c5b805766f113c7fc0a1707740db8a2032706452c11c207556543f3d77dcb1435681b4c6857251908c6c8e8e967aaba91abd091c530725201abf20a31f6f7090281c10088a03ab418124d0bd687c4fc7129a8678262dc8a55a3c68bcfa942e9cbe9add61dc1754349a3b0e2b3bf5410377fcdc628d9348300796a8d73535f2ec342da3580a492fa87646b8b01cc46954e97f42c85eac682424a2de1e228eb7f9063fa41285b396c0422184c294f2194a46c38121337eada837d756c74bcbb10a54468c74dca9ddd11c415922829cd6de334609da1ee23f941f9d2afbf9fe1e4e5570a1978627d48cec694fe8c249769cfebef53b0d3b5ebed0348b139eb58ba524929d4]\n\n# tcId = 56\n# edge case for montgomery reduction with special primes\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = 629216be333c6a517fb3427d0394511fa3c24a71113f1234bea7fd4e0728f6c65872415029fd0aaaf1ac7dae14d38503db271db472bbb212be453ceac6ab622e75d5e323f6353ce8b5e7993b6be39c30088d2b94e85633be103ca5d9ccfdc23c5ad21a1a13cf19c3901fe8845572600cc7e5df316f62e2237e224b4e01edb32c819f364f0c9fdc1f28dad2b6921c7952a25a03e59ef8d6c3a61a54c46cfbad22e186201e59e122018dc9bbc744c56ce631cc11f9523f79b41ff79711eea63337c24bfa37910f91783b78a4fe22b80e52e3e1034fcb336dae90122423669230cd46fe543c1e0ed80948d50b7eccf6c222bfcdb61f84c920d2e4dc9d5eaaa1415b13c74f18b94182056e103562dc03320930c20266bdecff56aafbb5bd3a0ac68b669bfe70e329ebfe8ec87cea99ff0b51ce7dd0694f075098a677a4743e10d3e37f1fab849dba39a9c739f1ed150fe7952b35202fb6138d24b2bf55e49bc7006cf78ea80513598310c8b0213bc8525b929e581294c496\nresult = invalid\nflags = InvalidPkcs1Padding\n\n[d = 263e4a970d14fb400f294550d745a1af0d5309c83c92a9127d266a68000d0e92da9771802c6f0b8a7e1a8e1fb19f8a93980da76f91c51533c808f22230906c5f1ff86f2647cd739b06090859f8b59a45150f2039961469cf7c23d976495cdd3d6ba1104fadbe8cf019350f4f90b8e469dc50f824f9bfea7d0e13b095620308182bb06de41d9bae866d35d636c191c482609ee09bf3dfad0ddd8875faa98bbba039b7316bff3900ce841a4916c6691a472313c2579f04d18c8bc2e9b48fe0a17bfbbbd08b911e9f2df0930bcb825b18e0a620754a58ad573a13ad6548bfaf3a9aef6fc802ea81145cf6a08bbdf73bae31244cc34861194d97276a5e6983807b9854d358844b3ce6c103b1b834b7a3b0c94962ad2234e58482e0dee17781df37882780006a8512329a77e918b51de3942d28dd1a98f25f6a4d371d6d5129cfbd8e633cf12afc03187fee8f51ee70b1f0355db0379bc013b8fba8648923cd2dad4b86bbaa522755e852c4986d51af52016872c714c45b99d6741e2ac8480fd3ffa1]\n[e = 010001]\n[keysize = 3072]\n[n = 00c223f29f2f7901b9d9dfce637a148ff9f3bf422d421708f233f8b1a44702c9dd0b3095963a4893676c916522c6ad64d60d969365d43aacda12195876657fffac7c0b9022b87d3b61141bbabc3e55f5fad4bc68146e367d522c3f1701491334fd84c9dd31a78660fac492e86a498985595dd99e7a1bc773634733f774737ee956baf71ba73b9a8df13dd57954457e46c13deecff314a7b28959f417b2e4a49bdc186b2459f5b55cac8913f8e1e385b46a1354f03e366bce0e7640c0bbb2d8cdd9a218aa7a98991aec07e50bb2f335269a38febc58dc2af828788200a57963df383a547a552b69dd2c6a47c804909edd060746a185bc160e27df0027388505752bbc5a6875e0d2a780753a86148727b6bb07191c47e2c89c780c49fa3d9024aa3e9172d4ee79d3bd6e4d250345dfc85956df7a3c7698ae11191bac2105ec9328aaa1dfa9f247ec8a3bdb40922f3b1f5dc0e6f38e0336e6c9e266d0d05ad0015b4ae51efd5274ff3a12747f9a7cb3aa0dd958f29da120da885ef964db20bd30f381]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100c223f29f2f7901b9d9dfce637a148ff9f3bf422d421708f233f8b1a44702c9dd0b3095963a4893676c916522c6ad64d60d969365d43aacda12195876657fffac7c0b9022b87d3b61141bbabc3e55f5fad4bc68146e367d522c3f1701491334fd84c9dd31a78660fac492e86a498985595dd99e7a1bc773634733f774737ee956baf71ba73b9a8df13dd57954457e46c13deecff314a7b28959f417b2e4a49bdc186b2459f5b55cac8913f8e1e385b46a1354f03e366bce0e7640c0bbb2d8cdd9a218aa7a98991aec07e50bb2f335269a38febc58dc2af828788200a57963df383a547a552b69dd2c6a47c804909edd060746a185bc160e27df0027388505752bbc5a6875e0d2a780753a86148727b6bb07191c47e2c89c780c49fa3d9024aa3e9172d4ee79d3bd6e4d250345dfc85956df7a3c7698ae11191bac2105ec9328aaa1dfa9f247ec8a3bdb40922f3b1f5dc0e6f38e0336e6c9e266d0d05ad0015b4ae51efd5274ff3a12747f9a7cb3aa0dd958f29da120da885ef964db20bd30f381020301000102820180263e4a970d14fb400f294550d745a1af0d5309c83c92a9127d266a68000d0e92da9771802c6f0b8a7e1a8e1fb19f8a93980da76f91c51533c808f22230906c5f1ff86f2647cd739b06090859f8b59a45150f2039961469cf7c23d976495cdd3d6ba1104fadbe8cf019350f4f90b8e469dc50f824f9bfea7d0e13b095620308182bb06de41d9bae866d35d636c191c482609ee09bf3dfad0ddd8875faa98bbba039b7316bff3900ce841a4916c6691a472313c2579f04d18c8bc2e9b48fe0a17bfbbbd08b911e9f2df0930bcb825b18e0a620754a58ad573a13ad6548bfaf3a9aef6fc802ea81145cf6a08bbdf73bae31244cc34861194d97276a5e6983807b9854d358844b3ce6c103b1b834b7a3b0c94962ad2234e58482e0dee17781df37882780006a8512329a77e918b51de3942d28dd1a98f25f6a4d371d6d5129cfbd8e633cf12afc03187fee8f51ee70b1f0355db0379bc013b8fba8648923cd2dad4b86bbaa522755e852c4986d51af52016872c714c45b99d6741e2ac8480fd3ffa10281c100eb125939d95519041745b41de83c28db4703030b4772eb179e204404026b1b10b8dd3a14221edfec2ca095d90dac23b5605f96085f7057c5239580f987f92c0647921c445c44702237cc08942026897094d1fe5b69907028fbad68e2ddc734d5a59a47b04c3c71dbb2ba5d97bd76f7c71d3bd1da653af1de2d5ebcd8a5532ee2f78ac6d6c74c79c845ba81f872de04a964878b7cb63cb5986cd120d03fe9ee059b20dcb9458a0bdbbfe1cced3697815c0e35fceaed1b11d28f26b5418bd3dbbd0281c100d36cb63cc9b1390f9078127c2247bad88b8fb42bcabdaf3e674d2278fe3fe8b781e34b2580aac9e4363f1f7af81bbe2d44272e9ae682487b246766986bef6460432cd8c0b13a4c30dc692363230f721ea8c52ee15e4bdb1439119867ea9661a1e41bf957ed5432c5c0daded329f554b284eced71dd8a6d9fb766b9974df95af14088c0d7e65975f5683f6bac3d851b8df9359c85cb82fe72f4f54de4c7fb4c9150abe498fe70123d9687f3d453000d9c5765be5927876c6fb080403a7", + "c6ff1150281c100a33eb2c801ad9f19c02f9fcdc521421e454a4a2ae30b63479b803cbbac1245516f8ff26d58e4a80c935151bed247e0e46c70f4f80b8f30e4aeb97c3fcdb5b46507fee7b27180f57e4dd15b83c27000b236273ec4aca2a9c14c4638b893db6b4d931b78fd6d73ec7dedb88e9679f4cc4d7277c05c3240a506edeb04aa4ee55d8230f626efb0a7e34ab961b4309d54a15821801fd613984563fced9e2400beab95290dc13ac897fd7435e4d1334ade1bef99ced43d313bc33cbe3cdb53118fa6e10281c057d84d87c84da865bd23069b292b208924c39a9aaf6c4cc9e2e5fbb2c6010bd263576b3bb3d0427e5dc3b072c96fcd7ec5587a56c5fbcfddca6c640664a25cd45a54e1e27e40b8b37c80fac1102a34c26461396f4e5cba3416da26b6d693911150d406afefde12127464fc3c44acb87a4c1c9d33b856f1e170b46fdc5bfb853bc4128dfda6a9f906f43f959f45186f3078213c5da307546db335d11d83b1f848507a7b4ace3d06772c7a64670ded71ba49ddee4ee0cbb5d45a438f6c3d93cd590281c1009908f5307e4b62468129a74169db749a627dd2b098ea5e1723bd960dbab914df1c3355e15fa69a4fd0975d75ca67f8fd194e3da14d8a29bc44c9c442cca228af2ec47b12ed4bececfcc18fa28ac3b035a85bad683bd4a256f51a411200686aca40eaeb8b60465fe0b2b1c41baacea6af8e4401eaa6d4ea251dfa6b8080037c908e3d2ae037517bdb3f3855191b904f5472f75e94cc30c69c93b682872ee3ddb6e6fdb83159888392c796bc11b44ad810a739545def05571c504a6c6f789d64e4]\n\n# tcId = 57\n# edge case for montgomery reduction with special primes\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 9208ae264a9a8268b2a34d01cf520e338e6a73f64488491a61a2a0c21b5e8239e96e9bc1af2e59dd4518b5af46c56fe737590db77c503f03823c3ffa933c92ef664e715a0347958185ebc96fdd766875cbcc0ffadc5b0087e2acaae7244279601b1ee8119887ae7db73c93819c5967ed9afa78c9144fe7b0d7d335efc408e6e5b40fb1116796820f08a4502d0be3119fe025b9866e536b2ad34ee2dde80d8212e588e021015ed15d8e76199ad1e9786813ad77496abcfb4e17615619d8899d7001a5039f35b38a3d9a927e7be27cb1b56a853ef3a29cab57ab4af18a542bc8f9f3913f3852a1758a2896d85419d1c917475fe511c6ba37b2281cba2af684c803624a641a8ef53bc8af9022c1087c05484603d62de61cc696c34b6b78a1de2a53c6805955\nresult = valid\n\n[d = 008dbfdae383a9062ed400f30d66d0de44917f89c800ee5b9ff420d859fc3455994e2218ca21c96d46dc1a478e032977463d7f3f9ae6b7c0d2d00b87f948d92f8a2e6dafce783d4755d1ff2d4b22c62ac8cab740074620a3ea8e20893ae66a5082ee9c8583e25979dfee4577968161fa9932ec3d017fc2ec1ff5047d03c7398fb8302a924b909ea8f9faa646c265dd2bdd51391c6cdc6746158ab0fcdaebbcbb69c8343ef4d525b0b39d6113598a8ff3e500e7222a923961971f3c06a0ac8200e7d375ba868b0b143ee5394497d00372e7234d92a3990972cfce9cdfb65cbade38ea61895b3d7839bc8310bdcec72aacc45007499a0c1c0d148e85d53dfd8e1778d3af9ad5380c82c9b93206612d202b8ecc0f41f5acbbac019d606fc6b3d2256557294f1801ac7789faf01d140a2a4950852c64187dfe1b79efd92fbc04f9cdc1f22462d7e653a6a32eac5beaa051658d64bf01c5cfd021d30dcefa93ea2d6f2887054adbc5127cfd5560174ee21d23bbeab417f2556eff9e6b1d637d5a173b49]\n[e = 010001]\n[keysize = 3072]\n[n = 00a042bdf5cf4154687fdc22ab67b351eee869b92249741ed17fe777125a2a2a803d5037aa045ec510cf650e8b4fa55147e33adc68defb6f991f1f8bb6a3d450cc458c2284beda9d352a3a8c5a012e34b318bea7bbcdd919f379bd839b9b625e54370f61eef191b0c4d399a7e988bc421981a7e4f653c778853c74ef61f347330e494758f30d0f5ccfbdcab8155c2977c91e73cb42a66ef99f3dfe784f0061f7b31a01fbcf2c7cddafc85705a8f68ade4b6853b61d287e2e8f1547462ebf48331a22d09f5bbcb3e48002f6797221ca062308c6820dfee4c4ca06549e3a5cdea6387a7cdbc496114c07a9de1f3458194bbe2a120ce6dc5cb6e54f889aba7e53345e767172f9b6e9d683fdc34b9a95cdcb15e76915da905e0ef66ae2ccda527b848e316bc4885e70d314043ffd9713b3ebeee8282f3c3f015d7c3aa9bbb9ab4c6be56dacaa7d4388753b70aaef19b4d36285031c3b8e605c62db28df17ae97c18144072dad237fc16b9724bd9dd4d7abd95dd55604afaa61b81daaea6a16e23a3167]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a042bdf5cf4154687fdc22ab67b351eee869b92249741ed17fe777125a2a2a803d5037aa045ec510cf650e8b4fa55147e33adc68defb6f991f1f8bb6a3d450cc458c2284beda9d352a3a8c5a012e34b318bea7bbcdd919f379bd839b9b625e54370f61eef191b0c4d399a7e988bc421981a7e4f653c778853c74ef61f347330e494758f30d0f5ccfbdcab8155c2977c91e73cb42a66ef99f3dfe784f0061f7b31a01fbcf2c7cddafc85705a8f68ade4b6853b61d287e2e8f1547462ebf48331a22d09f5bbcb3e48002f6797221ca062308c6820dfee4c4ca06549e3a5cdea6387a7cdbc496114c07a9de1f3458194bbe2a120ce6dc5cb6e54f889aba7e53345e767172f9b6e9d683fdc34b9a95cdcb15e76915da905e0ef66ae2ccda527b848e316bc4885e70d314043ffd9713b3ebeee8282f3c3f015d7c3aa9bbb9ab4c6be56dacaa7d4388753b70aaef19b4d36285031c3b8e605c62db28df17ae97c18144072dad237fc16b9724bd9dd4d7abd95dd55604afaa61b81daaea6a16e23a3167020301000102820181008dbfdae383a9062ed400f30d66d0de44917f89c800ee5b9ff420d859fc3455994e2218ca21c96d46dc1a478e032977463d7f3f9ae6b7c0d2d00b87f948d92f8a2e6dafce783d4755d1ff2d4b22c62ac8cab740074620a3ea8e20893ae66a5082ee9c8583e25979dfee4577968161fa9932ec3d017fc2ec1ff5047d03c7398fb8302a924b909ea8f9faa646c265dd2bdd51391c6cdc6746158ab0fcdaebbcbb69c8343ef4d525b0b39d6113598a8ff3e500e7222a923961971f3c06a0ac8200e7d375ba868b0b143ee5394497d00372e7234d92a3990972cfce9cdfb65cbade38ea61895b3d7839bc8310bdcec72aacc45007499a0c1c0d148e85d53dfd8e1778d3af9ad5380c82c9b93206612d202b8ecc0f41f5acbbac019d606fc6b3d2256557294f1801ac7789faf01d140a2a4950852c64187dfe1b79efd92fbc04f9cdc1f22462d7e653a6a32eac5beaa051658d64bf01c5cfd021d30dcefa93ea2d6f2887054adbc5127cfd5560174ee21d23bbeab417f2556eff9e6b1d637d5a173b490281c100d431312c577ed9cb758d030d228167d19a4ab4e04abf13a457e5d284f75fbd2374203652dd7061f14df815f7d42f87dc8cf31715a617a38459ca2c07253fdfa98a739e0c8a7b56ba4b3affb17f6032b2bcb0a021983f38d6ef18dfdd4297170e16f70dd41e293388c271e552732889bd613b6cd84a0bb02e8eeae9ba201d68b99dba3be287798413719baec029ce9466dce73d78b753e84eac91ac4d38bbca8a5890d2d7e98d1ea161d2702aa526fc8522ddd93fc4deb97521bf0c6be14c0f330281c100c158dcc146d31e27a162dd8613bae1c2e6189a48c5cdacf8ffeec640decb00ee5ee4c20a7137006bf84e2b30e9ec63847f3182a5b791eb2821f66ea5fb0e712163d921447ae374f8a7f2982f023d5938998c28e8f78c99b608a2249a3a185df08a3f564b75253158a968218cebc537a6ec6dfab0a669bc4401ae86a6953901f65169f9017aad4c32f950e48a0cfb51ca757c9c05768e13f62a3aca2e6635e4e9457a9ad40881885f94325a5ba362ec8e160d7a49d145327917b5fff9086424fd0281c0799b439a2cfeb6e5029670f43b1d3c99843a6254d4a193293172b5e69c3ad313997ec8834f03142e8dc7ab17601469617da9e745f1ed443a1a97620a2a4fe3e7af403988e8686d38d0da9c256661844ca914f480ac573744febc1bb81b6ca9bada70760d65c7a9102c97c79c2c014487334d3240f696a23edc8b46adf3afc70ff19404b3fb7e29b256fea8f4da40d90de675e3e5e5f30184ed238342b24bf574b9f32dd2adb7c1a12d85c3e0bccb8e16e2f78f851b57a5a3ba565a510d4a60bf0281c00685dbf4bd51f40b7c3b5ca3e05886b34f95f6e68b9dd3bf16cb546eedd54573c549cc6e13c1ba46ea3aa0e4668fee0f9346f55467ec0955f247611642710b4a08175432fe3e5c3ce355a0e2bd1d9abbf91a2c6b27a6dbacb37fdce243217d51d72829de23d69c62945c89fd3a1b0e3498776164c24880ec7e6e07e6e8d3e2880fd91668815e055b16e42ec1a58c7906ee8dc4a9be852e91387d8142ad7a15fdf4b51d3218135ea972d37c0ee96535fbd92c9d3a8e4fda531184b75d0c766c750281c100c99a1facef22c8566c5c03d06deab7465846cc4f0cd0a078a86519d5fc58ed5d2b21e025f8b1b28e65dc31e0a25db47d48a2dee87a928d0400d8ac81a2f260092d91d9663c8f548db726f9db992052503854c1c6e0f35d435ce333eb1dd3e3b742561e3ecfd5e62c43fa4c6d3d89caaf320ef4b68eb459c06198c531308116b746026b05512ee56abdbe098ddf1c9802e16541b647963c8d101a2d4fdac381b7cf40b15ac6ab33885402a65548df5634a99ed68f90e9fc6bcefbc0e8ee49c133]\n\n# tcId = 58\n# edge case for montgomery reduction with special primes\nct = a042bdf5cf4154687fdc22ab67b351eee869b92249741ed17fe777125a2a2a803d5037aa045ec510cf650e8b4fa55147e33adc68defb6f991f1f8bb6a3d450cc458c2284beda9d352a3a8c5a012e34b318bea7bbcdd919f379bd839b9b625e54370f61eef191b0c4d399a7e988bc421981a7e4f653c778853c74ef61f347330e494758f30d0f5ccfbdcab8155c2977c91e", + "73cb42a66ef99f3dfe784f0061f7b31a01fbcf2c7cddafc85705a8f68ade4b6853b61d287e2e8f1547462ebf483319a2d09f5bbcb3e48002f6797221ca062308c6820dfee4c4ca06549e3a5cdea6387a7cdbc496114c07a9de1f3458194bbe2a120ce6dc5cb6e54f889aba7e53345e767172f9b6e9d683fdc34b9a95cdcb15e76915da905e0ef66ae2ccda527b848e316bc4885e70d314043ffd9713b3ebeee8282f3c3f015d7c3aa9bbb9ab4c6be56dacaa7d4388753b70aaef19b4d36285031c3b8e605c62db28df17ae97c18144072dad237fc16b9724bd9dd4d7abd95dd55604afaa61b81daaea6a16e23a3166\nmsg = 29bdcebdc645b1a7098760e99ba6b1bd81cd48fe6e05f972717da8cac3507b297041547f52f12aa8204ec5a74ee53649795977a42c70d95e4571\nresult = valid\n\n[d = 4d8ca146c242edb907a12063e283c091f345ce23a7bf8e5a58f79e0fe06892c5fe4e9a9a28b2970a95e92f04b9d6480e2a010c27fdf32cdae25a869e4691cee867caa5648c0e1280d65a490fe93e3ad37615482fbf68e7295796ebe6453035d06de88b23895890aec2f58842fff69c96e8e1ea2e89ba4cf543270b300e45ae37172f3326673cf4cf8edb553f14034c92275fe548b9f7f59b5e9f7aaaa979bdb6b1fdae48266316b0a52d230ceb8ebbe60c58e05f7610daf0aab611fe9f9aae67fa34a73e7bd980ad7b190aae61a3a9c9c555aa63ab39ed2f9a2fc51fac44e6b26a16038ed3f0473b06f42a3fc35b2cb2e2dd76fe20bbe4c686f15804821039740ba63797418aa70c5dee624e273de68ffc272c786f2feb12c4afdf26075a6e45a3d9ac82a82cd42e90af8cb213610b5e58b7c8d6175ef8174e24739c54275eefa9b93c981f3c55d559f28c8b91d09df60d6404d3e232abe0841a3c792b120b8d34f85bbed8f6e0f035504efb6b6ba59eda6e309e1898181f8f45d37aff35cf91]\n[e = 010001]\n[keysize = 3072]\n[n = 00a75d40e1d30c2a269236fb615e38a8fd4695835d026dff86efc13422f4a1a693c1c1a419b079cc2164422b06e95b45dd67275caa462ecfafdf676345bc798ad26c7d1d3cd1bb59605281e78dd73b93ab55aeb38e1f14478a704f34b50e64f7f45d2dc6c27485ec264dc78fc817c0c733a16b8945d7ee0ca8923ff0023ce5c71a459a2a7c212d06b0824110afd4b8f6ae154fdd685e38c3f22d28c9ab248c5f77a16a9189a0f393145b99cb4b7b11d346a385209e8ac7dada3cf933e91df6a8d17a6811d642c73ed97b2155d8b30c2334d42e0ef18b8cab09777c03d74c2a003a08736fed5f8bfe4fd564894d6038dc92bc754fbc57053f8edc6a150194ebceb3792eb49df66043c957a1044fbd236ca7f9dfe350eac4203bb2983d1b2ce1f2473610e590d76a919c45f2ec6a83faf8362b35558bdbe3b7a7d17b967c2e46d2c93f507588c52e7f18d6ec131fef0b90b8e8de83f201e6ffb6f429fb49f8c37ab6ad8f83df9792b1d7f6f497cf46adeb2602f145af0b32820111e989ddd2f70deb]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100a75d40e1d30c2a269236fb615e38a8fd4695835d026dff86efc13422f4a1a693c1c1a419b079cc2164422b06e95b45dd67275caa462ecfafdf676345bc798ad26c7d1d3cd1bb59605281e78dd73b93ab55aeb38e1f14478a704f34b50e64f7f45d2dc6c27485ec264dc78fc817c0c733a16b8945d7ee0ca8923ff0023ce5c71a459a2a7c212d06b0824110afd4b8f6ae154fdd685e38c3f22d28c9ab248c5f77a16a9189a0f393145b99cb4b7b11d346a385209e8ac7dada3cf933e91df6a8d17a6811d642c73ed97b2155d8b30c2334d42e0ef18b8cab09777c03d74c2a003a08736fed5f8bfe4fd564894d6038dc92bc754fbc57053f8edc6a150194ebceb3792eb49df66043c957a1044fbd236ca7f9dfe350eac4203bb2983d1b2ce1f2473610e590d76a919c45f2ec6a83faf8362b35558bdbe3b7a7d17b967c2e46d2c93f507588c52e7f18d6ec131fef0b90b8e8de83f201e6ffb6f429fb49f8c37ab6ad8f83df9792b1d7f6f497cf46adeb2602f145af0b32820111e989ddd2f70deb0203010001028201804d8ca146c242edb907a12063e283c091f345ce23a7bf8e5a58f79e0fe06892c5fe4e9a9a28b2970a95e92f04b9d6480e2a010c27fdf32cdae25a869e4691cee867caa5648c0e1280d65a490fe93e3ad37615482fbf68e7295796ebe6453035d06de88b23895890aec2f58842fff69c96e8e1ea2e89ba4cf543270b300e45ae37172f3326673cf4cf8edb553f14034c92275fe548b9f7f59b5e9f7aaaa979bdb6b1fdae48266316b0a52d230ceb8ebbe60c58e05f7610daf0aab611fe9f9aae67fa34a73e7bd980ad7b190aae61a3a9c9c555aa63ab39ed2f9a2fc51fac44e6b26a16038ed3f0473b06f42a3fc35b2cb2e2dd76fe20bbe4c686f15804821039740ba63797418aa70c5dee624e273de68ffc272c786f2feb12c4afdf26075a6e45a3d9ac82a82cd42e90af8cb213610b5e58b7c8d6175ef8174e24739c54275eefa9b93c981f3c55d559f28c8b91d09df60d6404d3e232abe0841a3c792b120b8d34f85bbed8f6e0f035504efb6b6ba59eda6e309e1898181f8f45d37aff35cf910281c100d57a386ed50f742e4a30b2f3e0834510e0ce2f3ef0e80e513ad8bb0faeaef736487001dc40578c110cf9a9691acaffa2fdefdd15dc2433b745fb3cbe75384d9ece8a682c1f96dfcb0d062201e600555c69b07ef842d8c32cfdbb35ff1094c23837380687e8bbd0dfe41bb38e19329b5ee075be9aaa18f2dfa78ff2e749ce56870a9f9d937da4762704d457c33b18bdda7975d6535b15b13cce41a53cdf3783c495eb153c5ac37b12b0462088f358e683f940e74614d014bbde19ad60939de0390281c100c8b399e5ec4a047ddafd59d589263b12435921c9a37d5db9882fa953bf43970d702cfe6d51a0017d1b17431953682e3ca3c940d07b4897148c7eaf7a66662d93c8e544a6b425d2a3bbfe4ca584b0711eb560ba8c67460b85edaf9d9b4d1df0895114c5f19df7bf3b626340c58dc45a1d5f1d5aa6804b2a4bcca696da9641fbbd685e690e46c4a8725b9b662a5cf6d0261274f58c0bc3bde175dc98b0430583b60a240ae5ee6b556e371b47ce784c48b831267e0df934fd8c39388cb5110257430281c07ce3ed020249f1396794080d9f4a8cec6be8944169650983423f2b68e8545a327abc748a2b664c7e692de28ba7ee1d1279278c1b4ed82b1d4ca6c809d0c028c100aa7e7959ddc57da057f72b4f28e0c798d975debe14dc5284fab2834f6b0819254cf49d2c6e3cabcf62d9700793d0cbf7db4ab06755033a0f68aabddf3304f22a27e963313d37166abfe3bc46e599a4a82c65400ce8aaf11ce5d0cac4f850718117b02bc819d6f5bf04b7e20723fa7039315c5c66aeb9829354485758e523190281c10096071bbdf1fa0a8d820bed0160ba8161cf926b5d6da7234eb36cdd68cb0add79a0272231d9d880046321ea789e0ebcb17bc5cf7b890ce452ea0b31658ff24593b99318d47cc9e141a020226f8056dcd895c12ef211a91ca80adb42377b582c1c99cdab8248119093f5a23822f52c982868976ad21809181efd667252080c5f00616a61a1d868dd7a4edc456cd97d6e6f6750a2d5035e592c968c465f4c5a6cf0c177dbe5b169eebcaad8ebbe7dd2987187dc3c5279bd90e3274b0c73b5b9483d0281c0080daf873baf040a47826f8b42aa05c0dc5dee17dd1728a5f4d58657186fd829f451d26aa7c754b2daa2b1ff735d6ed25275db01feaef616fb5d9d487599d54b6f9981bfc57945ad5f8b22f4af95b19f838621cdea5f89c8ba575f5ab02e3bffbf89bb1568c9c59f8ddcc599dcc22b1be5d8a8d18c39166c3ffd8f294feca23f9f3e918abfa445ab6e5db688bdbb9f2f8cd95483f3229b1ff0de8acb8116aa48088c5bb02a7f36c6f0308d83d4ae3a9a9cffc4761a5a102ca3d4eaef8f51f970]\n\n# tcId = 59\n# edge case for montgomery reduction with special primes\nct = a75d40e1d30c2a269236fb615e38a8fd4695835d026dff86efc13422f4a1a693c1c1a419b079cc2164422b06e95b45dd67275caa462ecfafdf676345bc798ad26c7d1d3cd1bb59605281e78dd73b93ab55aeb38e1f14478a704f34b50e64f7f45d2dc6c27485ec264dc78fc817c0c733a16b8945d7ee0ca8923ff0023ce5c71a459a2a7c212d06b0824110afd4b8f6ae154fdd685e38c3f22d28c9ab248c5f77a16a9189a0f393145b99cb4b7b11d346a385209e8ac7dada3cf933e91df6a8d1796811d642c73ed97b2155d8b30c2334d42e0ef18b8cab09777c03d74c2a003a08736fed5f8bfe4fd564894d6038dc92bc754fbc57053f8edc6a150194ebceb3792eb49df66043c957a1044fbd236ca7f9dfe350eac4203bb2983d1b2ce1f2473610e590d76a919c45f2ec6a83faf8362b35558bdbe3b7a7d17b967c2e46d2c93f507588c52e7f18d6ec131fef0b90b8e8de83f201e6ffb6f429fb49f8c37ab6ad8f83df9792b1d7f6f497cf46adeb2602f145af0b32820111e989ddd2f70dec\nmsg = 04c0e503fd66fa6ef4b37c97b71271cb2bf086942c4385f93382f0885a22171a1971e27a1bef0c63fb1eb6b1282317d2533e74995f69f346cb3071a2a34de273bbccd64a42c6524f79afeabf89bd349a4aad3e57a15166ec7292e99125eab47890f032d594d9988d3e3b1669c1b8964bd9b092b9b1dbc18439f020d9535d26550451b5a1c9e43330d14fdca922c31b5aa0ef0fbdcf221fe2929aae562252e98a9ea02f5a1c24b4d6374406b64ff91c979adbbc86d10a83e078f07c46f64d1b21afb415383b2d49115ec29c205192fa026d05becc7d47b549ffc4f685720465a9990d\nresult = valid\n\n[d = 7586a13bf77ea7541890f07c8abfb2756605c3af4465beb85a5f78e25189111b86e7dd5659a94fcde4f2092ab6db02cea662852c01ad23200ba13e7afc817d846360747dd5f2650c5b9bfe64a14b3f960e475cda0a0065e3824e8dd041b1f6c7192315763146fee8ff5ca6e89263a0397fb672b04e1f9a75f5d50390707061cc670410957758d461003a43085fb19dd2bad1bc19831b903cbaf904ae1537a62fe19f96fd54fcdc998018abd436b1487fddce73d48fd44fa3ff498293fb9c4e4195286633c630fbc687d27bb6b12d67e7cc168b7c242c88b828f41a6821589070875e9e268014f99f25f64cfc1da7e047e34287ad1a265b176d36d32d5028750b89491b546bd42d459431d8dd82cf0674abf7330b8ebbf91294d47e7383a5209a7ba8422539501a8afc5ea543b556f780c8b92eab449fbbdd4a74c7a9834a9bdc99f4be3a0646b6b75fdf7b55154ca343bd0ed83eb81c418004fbf1860963e1ea748bf9092a6ac99c62e0fb6bc433d299ebd735f52019013a5fd2bd113c631de5]\n[e = 010001]\n[keysize = 3072]\n[n = 00cd28c66b3cf8b75d2a4a6d96c7abcf2145be897d17a25b8970faf4afa48a9ab2492283084e2b414ff4c316871bda6608f0d984aa0de0990cdf4ffaa0d98645246cf193c5f2838e55bea30d63c033b85b3fb7d9c4fb5bfe091901511d9fe20e0a59b5c2ae139b002127b429a16e723bc81cbf765c20cfc9b49268450b3e8a8f", + "83cb1dbf76960b3fcd84737a9d316a870e7419d28a59590e76fbc704f3801719234cc511a20cbd2a68ac8f1610a43c3eeea26d58356e1f9f4897cc3e7887ff3fc171b05aa82c99a96abc3a99bca914ecf2ea0dd27699035dd9055ecb0016a10287c2a7bb9fb7b0a137dbbf98ce8f22f18e47033a0b1ce379ec668ae6d225f007d53c74a981e8d2afff9d1478946a79238399638a28220be68b3d1ab0c1910a1c2bc881482b06c04c2f4a9bdca7dc7ea12cd7af410b040ab01d8e4cb10ba9d4e304b9ad95da35a981cd6c07dd593fd079c92152e33ba3e75d6abaef5f58483e0da821c79e2d458e1b5e2571874788c276235d902f99879fcec4dbce602e7342b47d]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100cd28c66b3cf8b75d2a4a6d96c7abcf2145be897d17a25b8970faf4afa48a9ab2492283084e2b414ff4c316871bda6608f0d984aa0de0990cdf4ffaa0d98645246cf193c5f2838e55bea30d63c033b85b3fb7d9c4fb5bfe091901511d9fe20e0a59b5c2ae139b002127b429a16e723bc81cbf765c20cfc9b49268450b3e8a8f83cb1dbf76960b3fcd84737a9d316a870e7419d28a59590e76fbc704f3801719234cc511a20cbd2a68ac8f1610a43c3eeea26d58356e1f9f4897cc3e7887ff3fc171b05aa82c99a96abc3a99bca914ecf2ea0dd27699035dd9055ecb0016a10287c2a7bb9fb7b0a137dbbf98ce8f22f18e47033a0b1ce379ec668ae6d225f007d53c74a981e8d2afff9d1478946a79238399638a28220be68b3d1ab0c1910a1c2bc881482b06c04c2f4a9bdca7dc7ea12cd7af410b040ab01d8e4cb10ba9d4e304b9ad95da35a981cd6c07dd593fd079c92152e33ba3e75d6abaef5f58483e0da821c79e2d458e1b5e2571874788c276235d902f99879fcec4dbce602e7342b47d0203010001028201807586a13bf77ea7541890f07c8abfb2756605c3af4465beb85a5f78e25189111b86e7dd5659a94fcde4f2092ab6db02cea662852c01ad23200ba13e7afc817d846360747dd5f2650c5b9bfe64a14b3f960e475cda0a0065e3824e8dd041b1f6c7192315763146fee8ff5ca6e89263a0397fb672b04e1f9a75f5d50390707061cc670410957758d461003a43085fb19dd2bad1bc19831b903cbaf904ae1537a62fe19f96fd54fcdc998018abd436b1487fddce73d48fd44fa3ff498293fb9c4e4195286633c630fbc687d27bb6b12d67e7cc168b7c242c88b828f41a6821589070875e9e268014f99f25f64cfc1da7e047e34287ad1a265b176d36d32d5028750b89491b546bd42d459431d8dd82cf0674abf7330b8ebbf91294d47e7383a5209a7ba8422539501a8afc5ea543b556f780c8b92eab449fbbdd4a74c7a9834a9bdc99f4be3a0646b6b75fdf7b55154ca343bd0ed83eb81c418004fbf1860963e1ea748bf9092a6ac99c62e0fb6bc433d299ebd735f52019013a5fd2bd113c631de50281c100e987c5939a9f762b3515c6edccc115dff8a4b1fb2d14ecc97bf5352227099dd03a017ab8ae582dbe3d61ef569b1e08f723017b0e46db2ad3c0f8f04c194f30bb6d8d6390b2e02f0916acdeb5b7594ecd9b407e759eb79586b3846a10198e11c812a6ba81a7924bdcdef41ee09ad9ca68a8c71b2041c7274cbd6625fbc16c0915fcabafb686bdfa7f4fd3c632becf89f8a970cb9e41dcc1610f22d1750a9c1758ad629c0c2766d85a20b1e012c0fb146afc8b13d0e03d8bda602544b83b57325f0281c100e0e62d8e30421231960afd71f2a19bc861032ca46b39769d027734ff2df1ec0251408a4084c6ecdd05117b7041d5fecd0db85076a46f942a765ad0f8a6c3595abfa8adc6aab749c79bb0b2dd89310bf3d4798075464192a1b828c376e624ab432d058c2bfbd3ac476f9b1a07330f83993ad1d04f656e9795cbf4d76e659dce3067b1c878dfe192b4a4236043dad10d0d0d32c5523228dfcd363e0b2f2296f45661245c9656670111c690a7d5d11ddc14524199935b7b7b6a11f5fa156db99ea30281c100c6a275abd7194ba9f4bd513773b1c8a979149d4ec849c41e9d1134e097d3d628072ebaf3db57a590eb25222ec84203de322850431481d72bc637f82cc25a59591315f05a63cbcc362ed35b9bb51881aee11f3a71514f561ffd11e4254d974a08a3d4ad4f1af9950d89969bacf009cfe0b5aea5a40a4f1b5e6abb3813abb1f9087aa28e12f30924c8a55dbc77ed551a4627d98958532d324f1c50c1588c6db86df50cab2eab550f319a1db23a416b4f32b11c9afe4fbe09f6f550bde2f69674810281c10099c9ecd6f17b0cd3e9a564405a4956acc4621651ec9ca3d6a40bfe2a8d318450e55cfbed389e8af46c75d2f225a2ff151b4fb17e1fddc8f4ec7017bc20d52eb216a373098a4dc1df0440e55f06648aa6d6e1ab0d06d8ea3b3a226ddf4d6b3fcdb4e8b93c8e7ce5af07cb8915e93dafa0c58f1a2260db2a3f1df434a8e245f1ec39cc61a8fe775309c1c00b20fb6dbebdf10b89d13649ab18ba01dd46032234bd28ba63b1ce2dab968b30fa040576a4bb24b0852336088f912ded057147d2097f0281c1008dab32afc5752a6b77069bf4bfce453bbb230bcb55aaf83a9fa211f3bcee99c32bc1f755c0b0909df8eb4f528a4830d658ea4dde08258c5cc6acb0aee6508081d4f533102fe1d0882aed54a4b681497050214999b7767f13e1015f751fb677d1328278f39d2da05fa655ee763402fe952c0a9fdbe3185635109b99b23712e2a5f26e9e708070f879dac82a26e0aff8056d0da996805006b6dadb31334591eb66032348fe9254b40f4422796de0a43a0c024b470d128a144aebabbbd7acc38f00]\n\n# tcId = 60\n# edge case for montgomery reduction with special primes\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = f2ab0b5432f6fd168c8b147a63d8b5440669ac11d624322792f77718ecca555a69b6adbd15808fa00ef0676a4c9b715031c09d2c9b67d803d30f2b2e1dcf6678e175f51f5a097e358152a3a41883e7c946ed286aa0c6007ead4b043f95b9a78326799567c0aee0b8fabf22a8dff6fe555217e751c3a899272b8a654a177d6de33635dff126c1e9f8501e0395c96e0d0c33df70ea866150b55f755ccdec9c5469ff85560317ccc6214309db4c3061c9ec82922ae2b8107e375d73da5808589b14b7802a78d3769b6d77dab5d928466c646829d7e20784c6ca1c3250ee26ebe467497d36cfe15e5bb52104f7277c8813a1a1eb3b34c2f2ee9a877178391bbd5dc91b245fbc1819f39c97b50a6b6c389d5eed2551903f230baed3809ced4cd803f6f309c96441d49576f32468beb0187b5017bf2b0e65b5bfb532e89dd102fec90fab725e067fddcc1d00fc\nresult = valid\n\n[d = 3fda65bf865b1d3afe1b0310f0fc1a9936ac5fe21703440f2df1c0e68ca15212d79d6e4cb9729d3e8c91bee6808c3a72c65ff85727b1b07ce236dce646047cbab84ced28acace55648fe776be5ee7bb2905e2e9e74791179c573366003d8c8f90e6a7516c1631d160531520f83994db354bb468d4a9734423f5c7d8cb0e275bee778fdf9c762fc0485aeb09959aff561e74d7cbc7153c4710f9cf2483c7d6883b59ee8611fca77410e07d2fbbad208521ac05b454610c13c9cc25add343cdd3814b724e8d18a14307b65eda07541430a38e41cc4ec721c0a567ce01594cf4020884f4168b1c517d7a0506ba36b15a2f45bc20ef6bafb2a664193ae67576f71968112cd2165ad0c5878c9422845a81ac18a1bd54a869d38b38cfa2284916db78f432789780c5a069233fe22a6bbdc7af534d44bf22def3ce7bf2eea4fb47df31b222f8ce5bf3e38ab648f09b9c149448ad9329bcdbdb6d48d14f89a772ec42264bbc81a859ced4e15c63725b0ed9f1316488a59f5d8db12c78b45a561c8e32339]\n[e = 010001]\n[keysize = 3072]\n[n = 00c5f8f256857e74f7e0ae6938068d733d2ce6f61f85fcb1d146b6f51463992fe37051d82834813b48e7c1eff7dad412e183c687c6d646ae6d90493c660eb63ac09fc33893c66b6c7abc5b90388cce4adba4d697bba29854851c22268d3d697284c6c20f14a48976deb8ff7b77f12fa8f460f7961bf73cdafb83adb496725d6e58c36b89bc0071fb011c4e43944a09a1065486d1a37f6eeed637d4cfb11e77795726cf8e72dc9b65378e5caf4fd52617285dd108c388ce12099db20cbc3da52f9d37015bf5b81711a757fb3b796df69938ea49e3e2c7cfcc4a0bddfe288d6b2882f4fdf760c5d599b80e37c147526ec8333dc473836e9c985e72c80a6fe1e433b038a8cea7723949889736f4ed845403aae7627de9039b354c1bdbc122f1120f774109fbb1fd5d8af0340448092b47f0acf8eea30406d43cef46372b79efcb213d4c7079b798925b84aaa35b8d04e3375ef0f3bc983aff28dcbc33d445787502898fa07b4c2637f3eb7826c13d53fe31a1d7775fe98090bb4e069160d30effe82d]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100c5f8f256857e74f7e0ae6938068d733d2ce6f61f85fcb1d146b6f51463992fe37051d82834813b48e7c1eff7dad412e183c687c6d646ae6d90493c660eb63ac09fc33893c66b6c7abc5b90388cce4adba4d697bba29854851c22268d3d697284c6c20f14a48976deb8ff7b77f12fa8f460f7961bf73cdafb83adb496725d6e58c36b89bc0071fb011c4e43944a09a1065486d1a37f6eeed637d4cfb11e77795726cf8e72dc9b65378e5caf4fd52617285dd108c388ce12099db20cbc3da52f9d37015bf5b81711a757fb3b796df69938ea49e3e2c7cfcc4a0bddfe288d6b2882f4fdf760c5d599b80e37c147526ec8333dc473836e9c985e72c80a6fe1e433b038a8cea7723949889736f4ed845403aae7627de9039b354c1bdbc122f1120f774109fbb1fd5d8af0340448092b47f0acf8eea30406d43cef46372b79efcb213d4c7079b798925b84aaa35b8d04e3375ef0f3bc983aff28dcbc33d445787502898fa07b4c2637f3eb7826c13d53fe31a1d7775fe98090bb4e069160d30effe82d0203010001028201803fda65bf865b1d3afe1b0310f0fc1a9936ac5fe21703440f2df1c0e68ca15212d79d6e4cb97", + "29d3e8c91bee6808c3a72c65ff85727b1b07ce236dce646047cbab84ced28acace55648fe776be5ee7bb2905e2e9e74791179c573366003d8c8f90e6a7516c1631d160531520f83994db354bb468d4a9734423f5c7d8cb0e275bee778fdf9c762fc0485aeb09959aff561e74d7cbc7153c4710f9cf2483c7d6883b59ee8611fca77410e07d2fbbad208521ac05b454610c13c9cc25add343cdd3814b724e8d18a14307b65eda07541430a38e41cc4ec721c0a567ce01594cf4020884f4168b1c517d7a0506ba36b15a2f45bc20ef6bafb2a664193ae67576f71968112cd2165ad0c5878c9422845a81ac18a1bd54a869d38b38cfa2284916db78f432789780c5a069233fe22a6bbdc7af534d44bf22def3ce7bf2eea4fb47df31b222f8ce5bf3e38ab648f09b9c149448ad9329bcdbdb6d48d14f89a772ec42264bbc81a859ced4e15c63725b0ed9f1316488a59f5d8db12c78b45a561c8e323390281c100ea923920555b826ac0cd121c04c3e7b3a44222d90dad4470c2cf5833a3f926077f6c6cf1277e6319e877d94da8720be0c5335bf33bb818dd6f41eeb04e4482c899324c9e8cdb7af9a33d5c58de8dc06f41d838304bab49354eb344925fa73cb932737f6b6a7133301bad7d7c084b9a9d7c2e34c78b44fd2f578b04186f11f7e9b43ea205550b241e87a5fb355d12c95f7f210dc3cdbe8dd1cb712f8cbc52e2f18727d351c5baf706ecc11d6d2a1ac378fb98f2c0b1829c95dd0ea950b7420fd70281c100d80ecf82d518d743f57eb5f7b79b7929aae8f2b44e6ead94b505f21abc492f455de1d6e16c21a9e79c37c18fbbc0d5aeb2e977f4d7497c75823a8f96b76a00d024dc5576da6379791d912a1c5d4c5fa642aca67bb479fea2339ebe517ec35783ac8110db6b3f3e252a6db8b078541b21f89a89d1b0b58ec602caf222463528583489baf41f008b5b38d523f8dd0a90642fa7d8c0e2b898dd24931424f794f1e07a72e973f3e41041d1a73bcdcc58067f87665a5c642d7174192bb44b678c179b0281c073c5112eb51201eee0131621fff41431e41ac40a2e26dac57050572ebd79e4dc0476a5d9eb6d044a30229e7c266b8b1337209efc0ff84f455278ceedf2e2fb4d37d6cc5be0171ebd80647364650abef3ea2265b0e857b43cfc079c0b45ec4b1af81c6ac1bff9f89280c6824d29e6ee7b556394a6fb446454ee36ed218607ef3c47ba35cabdeb4ebb46a593b305a994fb6dca097a1edc32305de111dfbabe89c53cb85a225c9d66f7e2f778a77d05527e2e669140ab1b545ede8832e6645bd5670281c100c28a436aa879df8a7f88024cf473f75aff5b14fe29091b1ea5089f80573d06654d2d46905f0ec8af9547d6ef96bd012a764a260abdb69b6c2b40937dbfd4a0baca15e2964bf9f9ac8664e927f51209a5e8af10909e66a252666c6f2d6e1871ba4c1f42906f36d8bc1a42056450545ac1f1d924733ccb9dacc962f736c9449ff91c054fe2f3ef478b71d6e8b6f240cad68ada751ee886128e3c9a7a2ef70693ebee157e033bfd846ddf5ad74c6ccc6dbd72ab447da06e1293d8fe332f1a2358350281c1008a6dacab1bbf2787d5aef687b3a9e16df0abb11c84a753453a30a5f2e83274604927609203efcb9e0506c870d067b6144978dd6fe127cfbbff2a27aee2b5d66c7972ae05111327d5e9c9b7d53f887576350a2b325659764252b737499b78cd37b2a60426fbf38e919a44dfaee59f8db7f17eb027c8097a68f8a28f7eba0e16124f492751b5268d393174f86e97e8368a2df44a57da1c97e1442a1fd78f2dda9e1ff4b18f37f1ca9455be100ac3302bf20db1e6c5f6d596480aec7c3bf6e341fc]\n\n# tcId = 61\n# edge case for montgomery reduction with special primes\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = 63a3b4da4514f271dae5d7f58432157b9bdae2a1ce247bdafdbb0019cf3060603639e40c2a0555a61a219e2d51f50780a20676a1bfeb2ddadcc7d5e25d4f74a24cedfa3cc6f465cfe4b5a01708777d02276759a13d01a4f823b4ac242feea713759adca753d86df9c2a815b30112686187acd2ed8b72c02042ccfab227a2b436074fee49707c4098db9bc442e2\nresult = valid\n\n[d = 4d316753bc50306e3e94cf7c6dbc375173a7982c0224d6db6644c71c00940cc9599aa0c1d8035205ac150e57031d41f4253b80ab8739c414d65e055fbac9b861d12932fbb7cab954b00db2f718adbd07baae502826fd944bb78c9c8afa2e40d28ed65ef9c6073ad766548bf3607d48e3f3ecb8112124afe44aef9a265832cb1d75a6a5a400d0eec36467eee0de3727e5c965b78e2c61b007bb41c0932af105aeff9881ae031b9f873f96e083f483fa7f3323194d02632183154b854b109eacc7a4e33275fe65ab3bd7a667c14e81fdd484b5b3e9eb3a9a42ec667acefe511235ff4be27d0cf921dea90b70eada7c2c29143b1eb01597da558050a566fd11ba3fb7841bbcbeeaedeaf2265aacdb1ceffe5211c29d1bceaba5cec3e148e40aa9d4e88f3b24536bf481b74191e5b3b1da5893974082407cc11b991ae20c3eae02c97f2b3950ff5b3806e83fe41e5804cd5dd5c6c0df931bae20d766c5c9f081fb1917f8f8e0b39c627395c8e566f90332bd2edc802fc9ec9ea5333a580257346d09]\n[e = 010001]\n[keysize = 3072]\n[n = 00aa35e36a0656b06b11f579ae150e5bcbcba41d0a45040e8a8255efc7905fc16964d3489ce75bf44b6f5296251e3334ac41869afe6e77567b3069cd3b61648af17dd4625ebbecec45549e7064268f44c3465a417b2d8b44ba13be81a43de3306549a681fdaa767d6e1a758995f56dc2b830ca68aed2a8a78456ec49059595f2f1d450a5bd63ccccc12b25646270c377bf8411daca4e1a5348bd9229e6fbb6588246ba16e5f1827168811cb7967b07969a39508093f8a0dbb927baa2802e1cd07fbf3da4da0d71eb44c2656690115b2cb0e942a8c05e24e234e4aaec898239d9dce78b9d9bac5a3ee9796a4752d33da7c41d168e7395a3a21ac374aec8afff9cca93c556d602cbcdeba9adbfad15f41f721e41d33186137f62b63e8712a1fbede7857a8461bfaf03c6509187faf431678c6a060960b650e76f4b3e45f68a63b4f6d6e3fc244d3524d24cd2f82df21265ba5bd7aa1e93367f497440b88a05cbe5111bde12ac0337e2e2ec04d46ce3094c1039ca39c9eef11c46dd25110f1477f589]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100aa35e36a0656b06b11f579ae150e5bcbcba41d0a45040e8a8255efc7905fc16964d3489ce75bf44b6f5296251e3334ac41869afe6e77567b3069cd3b61648af17dd4625ebbecec45549e7064268f44c3465a417b2d8b44ba13be81a43de3306549a681fdaa767d6e1a758995f56dc2b830ca68aed2a8a78456ec49059595f2f1d450a5bd63ccccc12b25646270c377bf8411daca4e1a5348bd9229e6fbb6588246ba16e5f1827168811cb7967b07969a39508093f8a0dbb927baa2802e1cd07fbf3da4da0d71eb44c2656690115b2cb0e942a8c05e24e234e4aaec898239d9dce78b9d9bac5a3ee9796a4752d33da7c41d168e7395a3a21ac374aec8afff9cca93c556d602cbcdeba9adbfad15f41f721e41d33186137f62b63e8712a1fbede7857a8461bfaf03c6509187faf431678c6a060960b650e76f4b3e45f68a63b4f6d6e3fc244d3524d24cd2f82df21265ba5bd7aa1e93367f497440b88a05cbe5111bde12ac0337e2e2ec04d46ce3094c1039ca39c9eef11c46dd25110f1477f5890203010001028201804d316753bc50306e3e94cf7c6dbc375173a7982c0224d6db6644c71c00940cc9599aa0c1d8035205ac150e57031d41f4253b80ab8739c414d65e055fbac9b861d12932fbb7cab954b00db2f718adbd07baae502826fd944bb78c9c8afa2e40d28ed65ef9c6073ad766548bf3607d48e3f3ecb8112124afe44aef9a265832cb1d75a6a5a400d0eec36467eee0de3727e5c965b78e2c61b007bb41c0932af105aeff9881ae031b9f873f96e083f483fa7f3323194d02632183154b854b109eacc7a4e33275fe65ab3bd7a667c14e81fdd484b5b3e9eb3a9a42ec667acefe511235ff4be27d0cf921dea90b70eada7c2c29143b1eb01597da558050a566fd11ba3fb7841bbcbeeaedeaf2265aacdb1ceffe5211c29d1bceaba5cec3e148e40aa9d4e88f3b24536bf481b74191e5b3b1da5893974082407cc11b991ae20c3eae02c97f2b3950ff5b3806e83fe41e5804cd5dd5c6c0df931bae20d766c5c9f081fb1917f8f8e0b39c627395c8e566f90332bd2edc802fc9ec9ea5333a580257346d090281c100e2626ad6b4711c26c662a9bc898e75504cca624cdd8dd4af64740852e1e6f63bc0732d1e14a84d4d76746095a093d100b1146708ee21f62f7de026de851cd064eb35fc45ecaacc30f996902304ff91503f887c31f1656712496f6a86547838accbb1c93834616d8f4fa449c92db52ad9c2f9d4b75b732d3195420a494f6fef6e3f9587a9372a0b0bf1c8bcc6b5e03891813f91f9a36a7f9415c65bbf15fee1124ecb8b0c7d40d6cc0b9c3d631c2d4a00524a3bd97a88ab7d66e9a4eb214ca7070281c100c07a36b66cc3beb8ce87f88d6662fee11d5f4f15b66687dde21dd9eaa60ad8215f4e4ed285d8d9c9886502e2609d467fe436389d856a8df36a0c083c8e8d161429b096f7d5b493c65de01f93cd08a6154fbeb9cd0902da61aa3d9e26ee8cbc5026e085efd4c9bcc0bf44282b13ebdcf7b69ac0a1258ac4e6ae8a14ecce6839d989ac9c197110b45ccec6ce1e1bbb5664d37515bad2a809743d8fd55a7b1c4fc821ff597e71d17111f70e96ef9b4217de09a0c3baa7f20e7a608380fa75604aef0281c015008c68ded49f87f95faddf8fe3677ecba0fafda69041eb03a6c01ef0563d01ce18e156a913f417fba550509155254eab1ef9701aa78bef5bfe2f9cf53c7718e5b95c6e2046b82ad2fce4e25ad45ae6d6fe12878f9d98b2599dbc8439d1ed701a75a3f552e6b70354a0293840c54df465e24799bb22344f2549bb2a91f4108269e3b5723d6be91a7293ecef82700acf74ee30dcb80c694993bb93476702fe5e7470edb57ae94904250f99a2583adb62ac3fb6cdb65077986", + "ab3c2590dfdce810281c01511cbc77064850e29dd8c81be017c311c4c009639df4364308a5ffe65aaae3a08fac37a1c18bece66d5d7d8fc067b5f28961ee06f68589d9ab0327e9e84273491d3b8d2ec5bd60952e163d384103c4dfceabde009ea7c0950df69de8d226ec2bf5eb88aa65a67051a6ad592d19d7214d3b260ffc2e24be78c97a4eebf317d93a8947289fe6c7bb1e518b21b6da1b63557486bd68594cb64241108a3dcf21e71a3f715ced79abbabe1c581143d84a0a4379d978f692f0012b959ebd67edec9950281c100946e03e76a22eeb55e444911e865c68a2ed8fa8e26119bfc96a582b8cf5714e7a9f2af2797015f71fd4f60b40f8339ed53f0acc86a5379faf2b91ba7e19da73f2f2f2f6630b4e806a981962b594549a350aceb16d4188586f6d5c515a18bfdb1b2f5b867cd2ccbec96dccc4de2c8eb4db6a8c6f22027bddd6a3cfaf6e775c02907f9a968b2aa315f74f622ffa78d4813d550e3c2aa48f1d07d7a2d759ec164ec439d7ded137d49cbc792d5e7994c462edccf485a8c24ea4e2453fdc332d10689]\n\n# tcId = 62\n# edge case for montgomery reduction with special primes\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 2b8c127b940daac3fa0044dccfa7661a3d306c6d51f619e15874582b6748608e4e7dd0e6fd4d713f8807c84eb6c8a9b7ecec3369ffd8cab87d34a6747f8284e3ef69e8ed29d2e62216802d9896431e09fb5c4e3e09d0cc4eb456558a0f88940746413daf4d10ff167d8e9f9956d55bbd424476a8a72c8c09d7a434419172c59501567c8cb796398205c6b4d488b530627bf6f9251270d8c427e6e76e5bdcf57899f7d90d7659b874629686dd7eb848bcc3dafcf871d6e00c32b38182e2093270e0f45223e9b2d0be949fd213c5419bd6d8a4cc1086ce462f9f1169c43b9f2b1ff15accb9ea2c6fee990fb8b9915becc1a77d4010fa45952e4356c6218e5dfa70a30b6765f5664016c235bdc3dd494aafad723eb5bd57da676a91bc418467d5a21041a5f41c4e3b413f514a626dc8b161bed110ea08fb5f11e52f7135571b326a88100c1552e4c829a1370ec54f00b4f633e64786fce316b75af2d545340a647d0e5b3f1af98a310920658329c313d164dc223d2e83\nresult = valid\n\n[d = 07f74b5ece1690082083b36e0a20bf9fd7206d4b13d2156a0c350f0153d8ea08b5ece13da555c2fb2881f0267cb2c36321038e6604cb239cc0e4048682ce3278add3f8947db557739eaa048f5a639b90f24249551dbb8908126c233f8d66d9cf2c6467448f060d375cdfe7ef55e92f8d352104f9769ef2fa703c7d8245bfa55867e8efc9cd3f9d978138a427a7db20b298ff52ca9a2f0a71d71f2d3adf14fbeb6583b7fb80990f7961dc769e8dd6ad4a42227a14a57f283c6ddb48bdeea1b522465d7b28b843d63fac51a67bc40e55d7ce715a06dfe4ca50f055931c97e944555b3da4f2555e666db5a8b14f1ff70db5f5cab167c846505e6641fbbe464800eb9e95201b9a9f853e6ac3b4a40004352b5a5713da545de7b6ecee701795b1413e5e4ac82035f9b371e7379f468dcafb8489e560b284ab4d086e39ee354d8de6adeb8861e30a94c09c5ec46732448a6c3174a371f8984e4a5e236be4f665de0b6a91757e8f629c911de82977be29dd12430add92f367bca0b6ccfb2050bd571401]\n[e = 010001]\n[keysize = 3072]\n[n = 00d5c96af06d968d2d22939907150c8dcb73f8ea5a45baf0b551e2907fc65e2075685eae493bb1330b7a5962cbe1f07e6a8d2d042612fdbc7a13ca0e1a58f8cbad011dd0aa1162744137bb9170e61a340e0777ace90c70401db70f0fb13c019838005ffd95bb159edd348c8f54b02c2ecbdd6ddff8d439324155389526b5c532f42e4451a3048d312dcac2b670619373b4b2d5d5d98625ce3139c3a7512c3957e3a2d0fb83f08b397e9147f717521b9596b031ec331d1f6bef06e38c6492ba2842c5c0fdad754dbd58c7ee85b29563509693f3d8147aa03940b2c6648053bc99618ae1b1e37f31687ad02c83b0910df3be932793172c866a7d08b8b6dcea58939fcaf29cb188a8308215dc910c83c3499870989ed340d3e90575ad9632f5ecd11bc041f4c5651993d5a0efe54af8b6ae87a2699a1fa34333ebcd069264d230219af3638c42fbb6aea60090832117dcae0d7795b13fbf2b0126f0a2a85868aee3ba033d64cad48b1e9a7bcea144f059333278d38e1767c6ef682d9d40f6ac9ebbb9]\n[privateKeyPkcs8 = 308206fd020100300d06092a864886f70d0101010500048206e7308206e30201000282018100d5c96af06d968d2d22939907150c8dcb73f8ea5a45baf0b551e2907fc65e2075685eae493bb1330b7a5962cbe1f07e6a8d2d042612fdbc7a13ca0e1a58f8cbad011dd0aa1162744137bb9170e61a340e0777ace90c70401db70f0fb13c019838005ffd95bb159edd348c8f54b02c2ecbdd6ddff8d439324155389526b5c532f42e4451a3048d312dcac2b670619373b4b2d5d5d98625ce3139c3a7512c3957e3a2d0fb83f08b397e9147f717521b9596b031ec331d1f6bef06e38c6492ba2842c5c0fdad754dbd58c7ee85b29563509693f3d8147aa03940b2c6648053bc99618ae1b1e37f31687ad02c83b0910df3be932793172c866a7d08b8b6dcea58939fcaf29cb188a8308215dc910c83c3499870989ed340d3e90575ad9632f5ecd11bc041f4c5651993d5a0efe54af8b6ae87a2699a1fa34333ebcd069264d230219af3638c42fbb6aea60090832117dcae0d7795b13fbf2b0126f0a2a85868aee3ba033d64cad48b1e9a7bcea144f059333278d38e1767c6ef682d9d40f6ac9ebbb902030100010282018007f74b5ece1690082083b36e0a20bf9fd7206d4b13d2156a0c350f0153d8ea08b5ece13da555c2fb2881f0267cb2c36321038e6604cb239cc0e4048682ce3278add3f8947db557739eaa048f5a639b90f24249551dbb8908126c233f8d66d9cf2c6467448f060d375cdfe7ef55e92f8d352104f9769ef2fa703c7d8245bfa55867e8efc9cd3f9d978138a427a7db20b298ff52ca9a2f0a71d71f2d3adf14fbeb6583b7fb80990f7961dc769e8dd6ad4a42227a14a57f283c6ddb48bdeea1b522465d7b28b843d63fac51a67bc40e55d7ce715a06dfe4ca50f055931c97e944555b3da4f2555e666db5a8b14f1ff70db5f5cab167c846505e6641fbbe464800eb9e95201b9a9f853e6ac3b4a40004352b5a5713da545de7b6ecee701795b1413e5e4ac82035f9b371e7379f468dcafb8489e560b284ab4d086e39ee354d8de6adeb8861e30a94c09c5ec46732448a6c3174a371f8984e4a5e236be4f665de0b6a91757e8f629c911de82977be29dd12430add92f367bca0b6ccfb2050bd5714010281c100f34cfccc1c226aaf10dfee263f688c720402d1c254232e00f17482e45f287d9850c1fcb5b13428d853f849382da3966eaf919fd9a6a0bafc505491ea777669d8230b941d851bc74e583e97dc89d935c4c0ded7a09e9c2d7364991f9a164bf8f93c6c1e03bd35a38cb48774d5c055659163ac14c6cbdf26463af5461a2d2ddb0fdc746f6de64e4198996a2e178da36375aa747f0b0986fef025c134398093d011eda083183c93189eb555a3b706a8401d3877066cf7b13f62878cfd31771719f90281c100e0f20fbed068e90b263ffd163d04d73518856aef9dd2909fb692b9c160c7a908ccc8ad6c761023bce4c8c7623d72934c9626b3df352a98fe7400226770569c4bcbe2fa3e9a9936e3a5e983ce69da70200e3d37a3d44d877c9cfe21ae4829a82945dd2221abe21cc67162845b8778d6f46b6855c3a07a4f17139a29c700162b4e43c53d99b318d69afdd1365b207b0c8b8db776220538615b4bd21b9c9e41f09413171d266a445e9f2de712fa8f67f926beb96e319962964b145ac4f004471fc10281c07ddacc461523a4860cb7996c858e6260343cf51e8e0168b1aa3537e444692096e2e785fec2bc958859df6c98b7db105d0f4ac82281745165657469ca9ca34f5b33bdb08f98a466f3dae7fe0c61ee4f4708f1fd1ea40d6be16e1f5b5e8cbc1dfd67491239a2ed953d9ac11b29db0511b624960665535e8a60f7ec9aa7bdc923b14fbb974c853ee3e5b92e58cb6c442195e367c1b406e8a305bcb1f57eed4908efcd3923b72cd6767cda96834a911205a057ee120fda0d0119c9be9fd6afa0ee990281c100dda92a22d9b3c791190c0d1510e3e83d860052b3f44d3dfe642689ad28f51678797376915e75e1018e60db38cf5c4c123813c343bc5c518ecc3825aed060487bd859be465a8988312398cc2d66d9bd8b98fc720b9a751b818c22508630cdfbcb4ff0ec6549bef2a409af0ec632e4bcccf5da464913a5f2b1c6bb2f57cd9a0aea8095a87200ae052b8dd9cf3a54f36c15487cf487e9a4f92ac1b835454c1da63803e7ceedbfe1c76c0c0b9c0413b45d2bf4dd3cdcdb4ceed4e525dcd2b7246f010281c00e59ace2e31b116b68348a492012162740231fbb16363008daedacf0cd79916a8698f25077958e797759e1261a9e54776df0217f7f57f53cf9974f379abca6106f705ecb2e7ce157ba045c2b538eb2b670b8b2168371be1bbb4f87c4f94aa989be752f3d4ef9ca12af6ba3e14f52341bd37c6d212cf76c9219e49b9c1884b6a473ab82a97d9a77caa9ebb5b4463df93c60d92095c4ba12d5f6778d526e34c14b545b64e54eb1816c935939e16b4c54ba78abd60b1d7f8c7a1391bf9c84341ab2]\n\n# tcId = 63\n# edge case for montgomery reduction with special primes\nct = d5c96af06d968d2d22939907150c8dcb73f8ea5a45baf0b551e2907fc65e2075685eae493bb1330b7a5962cbe1f07e6a8d2d042612fdbc7a13ca0e1a58f8cbad011dd0aa1162744137bb9170e61a340e0777ace90c70401db70f0fb13c019838005ffd95bb159edd348c8f54b02c2ecbdd6ddff8d439324155389526b5c532f42e4451a3048d312dcac2b670619373b4b2d5d5d98625ce3139c3a7512c3957e3a2d0fb83f08b397e9147f717521b9596b031ec331d1f6bef06e38c6492ba284245c0fdad754dbd58c7ee85b29563509693f3d8147aa03940b2c6648053bc99618ae1b1e37f31687ad02c83b0910df3be932793172c866a7d08b8b6dcea58939fcaf2", + "9cb188a8308215dc910c83c3499870989ed340d3e90575ad9632f5ecd11bc041f4c5651993d5a0efe54af8b6ae87a2699a1fa34333ebcd069264d230219af3638c42fbb6aea60090832117dcae0d7795b13fbf2b0126f0a2a85868aee3ba033d64cad48b1e9a7bcea144f059333278d38e1767c6ef682d9d40f6ac9ebbb8\nmsg = deb2027b4c88c9d2efae9fc1aa883f016f01f7e8802aec6cf3f637e669b7e595e8d97d299bbb88\nresult = valid\n\n[d = 76557e33fa3349551c2c557d2b7c948c11b736f52766df40a37da1a0d263ce2798d529efa34e4b5fa79307c0345cb9acc995dadae0d7a7d1d7237a53f7b68ea0b73f70fc003450830b57dbc5b37ba185e01500771d7111e10b2495945f81bd854676cd22b3f3206b0be61931bd4e6b34d9d30384dab033104ed8a3ff4416cf02f60939fefabcc9a5ba2442e9bef333ff52488a0e841d9ef7ec83e1a476c447b94d4c8239d5f64346a9fef1de49bdff5db251d96d4823621146141d46aa601040139009c37c551455567562831847b6c43636aac85abd279b24390806cb9b555b05e0d26a2457801ad8f5724452695be0147c36e9a0cc332d2adf77628aa43253e4ef5f337484deca700db2962d4dc28421843880e3821e535dd94ea72662c4f3a5492e824d98c63e182c107a87941c7834c0af66c57ca1cdba550049c3bb3531d5d7bb07ee93bc84644ea60521f1511093b5b4d0b5a19518f6f48f377050b57a5919aaf958fd33b071109ed65741bff06f920401d5ab4d3e36c59d29bbf2f29d]\n[e = 010001]\n[keysize = 3072]\n[n = 00a9bd730ba3d04dc5f2f9ac15d00ef8bf6462ffd41000aa326e9b501f0a90bb299ea7f0bddcc46ff03cfa0d23fd45598a578be2434aa1738fa40ca05b8b2da67df4fc353facb7a0f7c4ab11a16780975641eb764c83f15c63e01807b7193b3c724220d21a2c2c83594c61dbd07474a8ce5b518ca7635d9c0e04b91eb2e84e0eadc7c790d5ee3129eb6f793d7b9bf4d52daf0313f841ea6688bf10891ef87aad500ea53b94662dbd4b7110103608bb31cde255ab82f852667bff55dd273114e5c1b2471f86fd41425067eafec25f8fdbbdb08490def14bb2d847b2eecc51cc4ef94e5a9f415d59ea8549b232cd8b6bb621d655989864d85de41d542f16eec86bc5f5d5465aa2e3eba1d1b82ddde61dddac0b62d660101032ba3f8fdd69a31c1ea2fa1966784802d3dbd848c479c93e12bec95a7ff15ea6bee5fbbea15ac31cc9e3e8196b8946aa322abfa29b044cdc5008313883885843728e9cd9a7cf1679fe374b06e1cf5ecfc51af75193797258c51309d96e7a71113ec0896b9261cd6cd2bd]\n[privateKeyPkcs8 = 308206fc020100300d06092a864886f70d0101010500048206e6308206e20201000282018100a9bd730ba3d04dc5f2f9ac15d00ef8bf6462ffd41000aa326e9b501f0a90bb299ea7f0bddcc46ff03cfa0d23fd45598a578be2434aa1738fa40ca05b8b2da67df4fc353facb7a0f7c4ab11a16780975641eb764c83f15c63e01807b7193b3c724220d21a2c2c83594c61dbd07474a8ce5b518ca7635d9c0e04b91eb2e84e0eadc7c790d5ee3129eb6f793d7b9bf4d52daf0313f841ea6688bf10891ef87aad500ea53b94662dbd4b7110103608bb31cde255ab82f852667bff55dd273114e5c1b2471f86fd41425067eafec25f8fdbbdb08490def14bb2d847b2eecc51cc4ef94e5a9f415d59ea8549b232cd8b6bb621d655989864d85de41d542f16eec86bc5f5d5465aa2e3eba1d1b82ddde61dddac0b62d660101032ba3f8fdd69a31c1ea2fa1966784802d3dbd848c479c93e12bec95a7ff15ea6bee5fbbea15ac31cc9e3e8196b8946aa322abfa29b044cdc5008313883885843728e9cd9a7cf1679fe374b06e1cf5ecfc51af75193797258c51309d96e7a71113ec0896b9261cd6cd2bd02030100010282018076557e33fa3349551c2c557d2b7c948c11b736f52766df40a37da1a0d263ce2798d529efa34e4b5fa79307c0345cb9acc995dadae0d7a7d1d7237a53f7b68ea0b73f70fc003450830b57dbc5b37ba185e01500771d7111e10b2495945f81bd854676cd22b3f3206b0be61931bd4e6b34d9d30384dab033104ed8a3ff4416cf02f60939fefabcc9a5ba2442e9bef333ff52488a0e841d9ef7ec83e1a476c447b94d4c8239d5f64346a9fef1de49bdff5db251d96d4823621146141d46aa601040139009c37c551455567562831847b6c43636aac85abd279b24390806cb9b555b05e0d26a2457801ad8f5724452695be0147c36e9a0cc332d2adf77628aa43253e4ef5f337484deca700db2962d4dc28421843880e3821e535dd94ea72662c4f3a5492e824d98c63e182c107a87941c7834c0af66c57ca1cdba550049c3bb3531d5d7bb07ee93bc84644ea60521f1511093b5b4d0b5a19518f6f48f377050b57a5919aaf958fd33b071109ed65741bff06f920401d5ab4d3e36c59d29bbf2f29d0281c100d42b178b5a12579410b0b3c5bdf6a93f15bdab87be1d964aec425ea611ec88b6f3bf924def484e9dcb2abd1fab2b2c3cee7f1ab3079d2d4bd7b48afafa6b2c903e112a7fe1dc997554054b3077e585d63ecc4ae058436adc56f417bdbaa3f346786aee58a26bd6c5e1d7e3965bfc0c7ce5e5d71ec1470d2a9358cfe7a3d06cefac24b0bcf692a8bfbdf38073f690535650f5620a6cc664d24b23134396397b79d2eeec9b97a290c282d3385767a96cfcb900c8220e76bd8dd717374085a019030281c100ccce75c5d321a523245787b19880044387fefb9fc06465e524539f265e85b8be15fad29e03173fb29e113d16d5c53f171fc9ebfb1df64428a59148d2ce5217607c1d2cc6dec49d46a88a10340e8c2a9e66b198b8babc64811d5e7cfdbc4b8710a0c908e081424549be828929b634e845fe8c1b89baf1d80867a32120884fcdc71e2aaec0d9e29d6fe907b706a700585f92c7eebb2755640dcc961361ddf239b1336088cb1cc2c6811e3d3703ff5522127f4b1f9bbde92f137cbca148d227393f0281c0789388cce4427a4d267315a7b27ec4ce9a4f7175328164116e5585aec18ef85f69051d63773253a36f7bf9814ee8b93a639c0e9362275c3fb6f5deea2578d519a07c66f7c867733aefa61686140d77d33b5b24ce7cbacbb72f1f878286d878003b9d219973acefa103e98a68c01bed08ea2a85e7ef95ae90dcae63715472b6063b819a83b969bdc7426f6937fe0f259d6f6314f5b1bdca3c8d010108af0e39f3110241ab6730b72e23e56026a43df0376bf85ac4a80da94a3bcbf0d5955b57fb0281c057e12b45e44f66858abd883b1b3dab16b30f25372a1daa5f455420511d73f18e96edd65bf8e58bee7fc6d3d8ad878287d09b1b07d896682eacc48763f525e264033d9d8e03de87c1dee5c7081f49e3abae52fc3e1fda60a1ca5155fea6421e4573486fe7ad6f1b3e06620aaafc44fd79b33cb94043182ce3865cc80526985faad5f5e8a0559dd88241928ee56ad94a1250703baed0b4e246cd8783ef9585af5daab6fc5b730edc9060c2518e048caa1f17c1cb614f7ef4353f6bcd24eb0feb8f0281c05a753898792e9799b9a6e5b244bc184c0cd8a06180b1bc3628fcdefe815675744c53e1c1881df87c00e0b104739754dcae0ee9bb9e7634c6d0e4530eb84836dc108bb38708935677fbd517902d757d0f5407ac78b9c939757a8c471c14222024591bf16784825190ae6e802258921a715d9a18a46994cb83ee87f5ddc13c69edbed56a8030f9f2d79292902727696d07013b12fdcdc5ae905be88a18fe318be5215fcc72ff82ceccfa6ebd9564ee779660cd31fe5f5e61b8f92bad3a8f7f26a4]\n\n# tcId = 64\n# edge case for montgomery reduction with special primes\nct = a9bd730ba3d04dc5f2f9ac15d00ef8bf6462ffd41000aa326e9b501f0a90bb299ea7f0bddcc46ff03cfa0d23fd45598a578be2434aa1738fa40ca05b8b2da67df4fc353facb7a0f7c4ab11a16780975641eb764c83f15c63e01807b7193b3c724220d21a2c2c83594c61dbd07474a8ce5b518ca7635d9c0e04b91eb2e84e0eadc7c790d5ee3129eb6f793d7b9bf4d52daf0313f841ea6688bf10891ef87aad500ea53b94662dbd4b7110103608bb31cde255ab82f852667bff55dd273114e5c1b1471f86fd41425067eafec25f8fdbbdb08490def14bb2d847b2eecc51cc4ef94e5a9f415d59ea8549b232cd8b6bb621d655989864d85de41d542f16eec86bc5f5d5465aa2e3eba1d1b82ddde61dddac0b62d660101032ba3f8fdd69a31c1ea2fa1966784802d3dbd848c479c93e12bec95a7ff15ea6bee5fbbea15ac31cc9e3e8196b8946aa322abfa29b044cdc5008313883885843728e9cd9a7cf1679fe374b06e1cf5ecfc51af75193797258c51309d96e7a71113ec0896b9261cd6cd2be\nmsg = 63461cd56eba70d756be706bd754d8e26d16629a685e3d6159e5e8684752574d6fe36a66755e327905f327c75de1158c34a22a99ce4306675bd876997225d3f508a2300a5029e7860d8eee842e28a4f3709dff9dd84365127e6d7b9d8d59d095894aaebc737dfebc5cdec19318b26245f2b77dd1c507cbc53dedc14f4a881fa4b41d3fb2b3b7569b36bb11bd79b562d464815ae4fd2742f03d78c50cfb22a2e56fa5754793390fba75ab1d068deead4156abd95566c051c3692f8e53bc4fd4e5a605b4adb29a78cda0170dd0b83546c951929adcc42bb4a2ac25439a55f0d193683aa521319eda1d6e0fc61ab084aa52909fdc220bffd22f2c691c579248b1928b08f791a3b64e81f587e58baa7a68e5c0b2ebbbb95418e3b2e0f210d53c33abca5076ebd4e0f5f7fd8117c3ba5404ddcea670da37c868e81a23e1d0f85f878917ef825d5a6bb5d257589ecb77c87a2cfdd6df915d343c38cef865ad4d0126c86a668cd64d6561c374c08680\nresult = valid\n\n[d = 33136923b595040cca19c000d9e6a1e3216b18c9e46f18b5b1e67f4e52a748127a9159484d5fd58d5ee237d363810c02db71937477e79085213e3575033cb57e2cd9a87c4a04f852d6b486580d410e57426d7529a16050cd30b280ddfe7f7ff35dc57caaf74152195da8d3b32fdee1cf1d4cfa2f615415f7ddcabf94a53e7af181b968041650665b517b45dc98556596e7116e247485b450e8937dbfcea703deb93be440bdc88ea6fb131ce97b7cc27e22720ec34222563ea0ff369f3ee4ca6113a2e77442cb9a7e616fa335b90380bcd954d71b62c201f1b3af478f814f08d2c78c982f9cacf8c9f63a06132b8164b69bee8b987094db722d99022efbe67853a0a6006a66a0e2d16b2d78d8c7eb1a568b647c5bfd81cb9da9afa3dab576a2b1569729aa492cc73214f473d4dd78a186d77b39a1f2ac5dd8b8b1f9c3aa662245774af9e2d135c7c267d4d4ca4d0d3173631fe19016e01dca4682de5d5c6849835487521c28a559a5faa8aeae2269cdf5d722c26fadcf3f759c4fbc23156990a1]\n[e = 010001]\n[keysize = 3072]\n[n = 00cd558670bb52e8c170723ac5b4edbfc4c1509816d2212f17808d7a17b637e281402984987e01fe42970fe736ab5d4d9b0c79b78b57f8d8883591fdda2242c87c68c5927b78370feba2050aa7f59717f7f8c9a0b23e87e6d5c7e6e618cd3cefdecc593c16cce7ae42039d671c2a5e8fe053dbcf9362e4920aed0a", + "2a840c7c80444a2aada474069b25a79919882f44877ecd181bbb12582448f1066984633a6cf28b2cc751e917d84b475bcd91c45c8e822a874221ff254949c379d28f9e12ad06f28f0dfad56de8dded0a10888c5d18c163b7a9e826408dd8a27859e33874dc409fcac674eb8b5da86afebdaed4e83456df003b41f0a145f5cbc2b95455807080e2fcd049a6a49ee421b8e146fb9fc31f43bc7591ec25a970aef4752af01175b9370c20b49ce1bdac45ade8ae27f27e62f7716cbd5d49e7cbdf1e6952bb2403a01fc1d8b147dba49584931d7e0066544223a614d157beacd2f1bf36b4ad926c3073d9ba13a55df83a99017c500585320efdaedbd3ca91c227eb1f92753e3bed23]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100cd558670bb52e8c170723ac5b4edbfc4c1509816d2212f17808d7a17b637e281402984987e01fe42970fe736ab5d4d9b0c79b78b57f8d8883591fdda2242c87c68c5927b78370feba2050aa7f59717f7f8c9a0b23e87e6d5c7e6e618cd3cefdecc593c16cce7ae42039d671c2a5e8fe053dbcf9362e4920aed0a2a840c7c80444a2aada474069b25a79919882f44877ecd181bbb12582448f1066984633a6cf28b2cc751e917d84b475bcd91c45c8e822a874221ff254949c379d28f9e12ad06f28f0dfad56de8dded0a10888c5d18c163b7a9e826408dd8a27859e33874dc409fcac674eb8b5da86afebdaed4e83456df003b41f0a145f5cbc2b95455807080e2fcd049a6a49ee421b8e146fb9fc31f43bc7591ec25a970aef4752af01175b9370c20b49ce1bdac45ade8ae27f27e62f7716cbd5d49e7cbdf1e6952bb2403a01fc1d8b147dba49584931d7e0066544223a614d157beacd2f1bf36b4ad926c3073d9ba13a55df83a99017c500585320efdaedbd3ca91c227eb1f92753e3bed2302030100010282018033136923b595040cca19c000d9e6a1e3216b18c9e46f18b5b1e67f4e52a748127a9159484d5fd58d5ee237d363810c02db71937477e79085213e3575033cb57e2cd9a87c4a04f852d6b486580d410e57426d7529a16050cd30b280ddfe7f7ff35dc57caaf74152195da8d3b32fdee1cf1d4cfa2f615415f7ddcabf94a53e7af181b968041650665b517b45dc98556596e7116e247485b450e8937dbfcea703deb93be440bdc88ea6fb131ce97b7cc27e22720ec34222563ea0ff369f3ee4ca6113a2e77442cb9a7e616fa335b90380bcd954d71b62c201f1b3af478f814f08d2c78c982f9cacf8c9f63a06132b8164b69bee8b987094db722d99022efbe67853a0a6006a66a0e2d16b2d78d8c7eb1a568b647c5bfd81cb9da9afa3dab576a2b1569729aa492cc73214f473d4dd78a186d77b39a1f2ac5dd8b8b1f9c3aa662245774af9e2d135c7c267d4d4ca4d0d3173631fe19016e01dca4682de5d5c6849835487521c28a559a5faa8aeae2269cdf5d722c26fadcf3f759c4fbc23156990a10281c100f793a0a9963aabba0dcd9a4f18a08e62f6b194dc64022af47c6d473f2a0d38ef862fd20f361a96c334f9457861bc8c09ffde66c5e29565a57b864911920113b5f0d269968e6177ddd89da7d77263dd9cc99108f3a7063b58216850eb84446971a6d3726aa91f4727f99302ce5ba63295c559b3c94f8c93efb8443f7e97b4ac489854e9062d199d17ee00910b3213639759dd9a5e1b8bd1b6d9a306b33fd6326268be6ad24ea0927454fcdb091541fe3c90f6f2a9534339b6f83da27c86fd30fb0281c100d451f7d6105fc90f350a536765b5aa8e42083e0f67747d67478a105e012c870da1abcb07e1c73fd46c7343ae5e7eea192a4d865c044a300a526271d4ce475c21b56e1123dc9185a64e261f4d09f94f2b43814397cd5edade156d06378c717e59d27b92f928e245ca6d5b5d53936d72489c2f62d0ff99f475913fb21424c9e0a911a441d534506200d0579e755a38346740f41794ad4aef4c64c9db039d72c400a3c44d38d0cbbefb3eab213fa287da49206bc14da3634dfa9c2d76f260ed8bf90281c100beb436c3aaf6d2a4e4510595fbd0611d960d402f6bd1c7a8bfd7a553e05e8306ee0413f8a7a25f934a50e0d453e4dab23127ed5e6ca4cbc1669f0fd5baf39d6d3e6db5ebc50d0b3a15cb8b2807f32917c6a433930b8b5f570994c31047b832c8daca718dfb6c1e718a6b55740360c8025a1c38c2cec5e88675180d18c45ee57e9de879fec9eabaf95dd98de063d84f949c2278f018a3e10cca242bdb13473954587ea4e60eaedd6142bdeb32d9ef15992dc92b2e86f677949b2f4ee4414ef2d50281c100ab451bc900186455f2114c4a420f936f81f0a82f40e3052dc4d5a8724c3c210d6bf6eaa687087582e3a0ef5dbf385d9ac3371a452be8b46bff1d0e79fd942ecbba50f95e9654851d2c393052b2d2fb7c08ce433a371e672b72d92984b1b3f39a7d61d5a34bc98b46c98443fa61188e71e81b8978d256dc8de207219d82379f1482f89f6a5ef2e0bb8b54c2ac2384e730cb829b6b01874b15b2cfe9ee369a1765f4b52b1dc3c03764f09e970980105a9356a5d59ecd4813e52f0ab5c2bb51a3f10281c100ca356699c6f5b223bdaa954d5a6b95c4d0b0b90d679f302e3f3d6a2e6fdb5b8c2d34a2362b72fef0cff0c7e08bb63b88d82bdf424384975477943e464a6282a3c301b8da1e77fcd5a4f28d2906886876c3094224d6b0f482fa388585c0b859d79b0d76badf107072971cbfc6057890c50c5de1e7582d45dbee868fedb52b4de3b2779650ffc977663dc7fcbf0da60eff97bdb3257d0739b22738a68e31a819f090a96d3a79e9ebfedd99b677e93bccfd4112e4f40843324703eeae57b3f5089d]\n\n# tcId = 65\n# edge case for montgomery reduction with special primes\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 2d6385fce580f795102dff20c7917588dfe5304746e5635dccc732d3a58def00efc60fe4af7805f09bfca49aad1ca464b6658daa7f133c12718ac8a6f60702eeb031d49ae35b99ec56d0c7a0a33108ca98b55ed68d27c4c81c38c02e82bb90060c5c2fd9d411dff55509b1e97908d152a4b3c93528013cef644dd70c3e99b647b403e49d0175c818de9f1289eb312cc44ed3a408b4f7f6ea03e44f9f1dc07ddfe02f2729feeb2174c032be05e9eb9243697264016cb0deb113266c3b\nresult = valid\n\n", +}; +static const size_t kLen140 = 319528; + +static const char *kData140[] = { + "# Imported from Wycheproof's rsa_pkcs1_4096_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSAES-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 00d3519bd86edf5dbe9c64a3781713dd049b747f5651fd918cce8a9b80b6d6a2fb6aab334ab569a89b58982e0aae373090299fa227f9652b802d23ee5ca6824c433d01d40bb0473b16190a8bfb137c0a704b4f49b45015bfbee1f670446f07595259d70c7d79ae95f9b2543b0162ebb763ebb81c4b6edff9d197dede1dbe57e40466d156d4dfd5d7634c45534fb2bbbd1bf257817a173c0795fdbcc533976f4a0d04160f299af5dc272a814b36d5bae5116b9542178f1d554cab7a6453035482b981add4bd8ffd5d500839b23e30ebd3f3868f07584cbd12ba089325982860f69f2bdc7077b6c60f58a2272823379e1023704165f7c14f64a18fd5b245a18149b7eda3385a56ba9e79502a27bf13865cde35be15de03d06aa6f08b172b7eeb4b73cbc157019c5d933584a8d1add61b7dbca3b253ca0cf93dc9a8a3aac2f50227022e692f7b4767556620cc928d63e31078c360e2ab4b71a917e19e7eb09380482e5b4ea88202871c2a29ca6f66b2fe304af609520e4f81d64c26768bb812a86679366611f4cf6e89e2bd1d9d7e28729c7f0e4e3152d7ad7f186fa32f01e169ff06a12001bc179dfd0dc942cbabc555f67f5fd043e0a3354340fa490d2f123367be926eb3e1dffe70c3151c87450f3217dc2aa0b5a7069c5a17d55614c9994139f7b37b49e9fe780af65a0e89e2e58feaaffe163bc9d19eafd9cd29b0ef3cef3d01]\n[e = 010001]\n[keysize = 4096]\n[n = 00f601be0dccd04aa40b12f3f191ae17c1f9c8c0b68e7a77e14be25c3c7907cb1d33a6ef418ef41852f32c98392bc5c9aed91c1a1501c503eab89b3ee6f4f8eb2e0fcfc41bd03609cf6a8eb3aa6f0fbe23187b33db4d34b66d128a8aba0a2abf40bb9d13d8e2554569a57ab1d8c61b8cad2dc88599ae0da5346e15dace1bac7bf69737c22f083be9b46bb8b1eab5957b2da740275e96c87195b96fe11452159dafcfd916cee5d749a77bc3905a5ebd387ae445e8fe70f16e9a086639779ceffbfd41557bd99aea6a371a6b4b160615a1a12bc6958d34bce0c85adcbd8392fa10ceca52209d56196ba3d273ce228f1f111192aa92de2a039798a17bcecb4dc6100e6f8ae8c2643f2ae768b2255f082c978e95ca551555f10608231cf8003bbf807969fff1e51914b9a8c9b8f4564645b9e5d705ffad29663f5dae3d76652b422e43f13e6c1491090805c2d1268a74a251177427e33a9a91175c3670b91746008bce1fd231e6e4f2ad70cb43aca5f07600a6d31dd02915243dfdd943a02165da367a6b7e4dae1dd2e8b836903080795d2585076cc1c15dd9e8d2e5e047526569b1bfd395d957eb9fde325d342d14426e71efdc1887515e53cdea5834921f928629e748eed097ac4024e2bf255d70411f87373948cf8e8aa7effa2b0ab47d5166091e1aedec60568b155bd9c27bc55f3ece35f83d636dbcd5abf4853a051db94d5045]\n[privateKeyPkcs8 = 30820944020100300d06092a864886f70d01010105000482092e3082092a0201000282020100f601be0dccd04aa40b12f3f191ae17c1f9c8c0b68e7a77e14be25c3c7907cb1d33a6ef418ef41852f32c98392bc5c9aed91c1a1501c503eab89b3ee6f4f8eb2e0fcfc41bd03609cf6a8eb3aa6f0fbe23187b33db4d34b66d128a8aba0a2abf40bb9d13d8e2554569a57ab1d8c61b8cad2dc88599ae0da5346e15dace1bac7bf69737c22f083be9b46bb8b1eab5957b2da740275e96c87195b96fe11452159dafcfd916cee5d749a77bc3905a5ebd387ae445e8fe70f16e9a086639779ceffbfd41557bd99aea6a371a6b4b160615a1a12bc6958d34bce0c85adcbd8392fa10ceca52209d56196ba3d273ce228f1f111192aa92de2a039798a17bcecb4dc6100e6f8ae8c2643f2ae768b2255f082c978e95ca551555f10608231cf8003bbf807969fff1e51914b9a8c9b8f4564645b9e5d705ffad29663f5dae3d76652b422e43f13e6c1491090805c2d1268a74a251177427e33a9a91175c3670b91746008bce1fd231e6e4f2ad70cb43aca5f07600a6d31dd02915243dfdd943a02165da367a6b7e4dae1dd2e8b836903080795d2585076cc1c15dd9e8d2e5e047526569b1bfd395d957eb9fde325d342d14426e71efdc1887515e53cdea5834921f928629e748eed097ac4024e2bf255d70411f87373948cf8e8aa7effa2b0ab47d5166091e1aedec60568b155bd9c27bc55f3ece35f83d636dbcd5abf4853a051db94d504502030100010282020100d3519bd86edf5dbe9c64a3781713dd049b747f5651fd918cce8a9b80b6d6a2fb6aab334ab569a89b58982e0aae373090299fa227f9652b802d23ee5ca6824c433d01d40bb0473b16190a8bfb137c0a704b4f49b45015bfbee1f670446f07595259d70c7d79ae95f9b2543b0162ebb763ebb81c4b6edff9d197dede1dbe57e40466d156d4dfd5d7634c45534fb2bbbd1bf257817a173c0795fdbcc533976f4a0d04160f299af5dc272a814b36d5bae5116b9542178f1d554cab7a6453035482b981add4bd8ffd5d500839b23e30ebd3f3868f07584cbd12ba089325982860f69f2bdc7077b6c60f58a2272823379e1023704165f7c14f64a18fd5b245a18149b7eda3385a56ba9e79502a27bf13865cde35be15de03d06aa6f08b172b7eeb4b73cbc157019c5d933584a8d1add61b7dbca3b253ca0cf93dc9a8a3aac2f50227022e692f7b4767556620cc928d63e31078c360e2ab4b71a917e19e7eb09380482e5b4ea88202871c2a29ca6f66b2fe304af609520e4f81d64c26768bb812a86679366611f4cf6e89e2bd1d9d7e28729c7f0e4e3152d7ad7f186fa32f01e169ff06a12001bc179dfd0dc942cbabc555f67f5fd043e0a3354340fa490d2f123367be926eb3e1dffe70c3151c87450f3217dc2aa0b5a7069c5a17d55614c9994139f7b37b49e9fe780af65a0e89e2e58feaaffe163bc9d19eafd9cd29b0ef3cef3d010282010100fc21b855c5ad4ca2b6970516406f71c6e79efc4126e6598772db1e082de6b0dddaaa2a2951f04148e86e0bde28213b7f600f987308301eacea134062bb0c3ddf628da9abf93ef1ce3e75b0953a484dbd3554bd5c0649933dd77e527563e90f05a8013fddac958c329378e94303b304be5f9df1fe5b043a7fdd94700a3f0b1cbbd0516b7cd94c57ca96d9fd2a8ca973991218cba33a1c23d810f7519d1f7702ab72affdb3f84a1b2a88116e4033bc4d0cfc7989c657e0fe94e964476ae58bae6b7876f36c09d32b1a63f8c47c94a74c92eedf75fc27cffe0f8452363e4bc8f7653f3cb55eaf693cec70d13c875de935a8b20439ab7e93f76981c5957fc5bb44d90282010100f9c7f748a505d23ecef9a85f8097c8cf7d7028ef6c90e22a336511582d2cc3636e34ead37204dbd22f142a3fb1d5f857b0310c7a433f51ae14d4608b01b43aa8c7ae67835f7fbe0b9d97948b39e9ba2d3a1687edb8b56ee70ff0536dab4d0551f71ed0daee9e412449f5f099bcc15e4ef0554dc79f87fec5a0dea717c7054392bf444613937401bbef3c22fbf7e738c58779b981609a1f9c11dd6f0bbe9996e2773459e4cef247b02a9fc21296ac57a5b10561824310cfbdecc90e06598370e3698713fdbe2528ec4ef3dccaae701eedc3e54ad6e7af4e68e3b39bd2e97ac9119936c647a503511cb283df984cfd7c07f0f56aa8ae3166948ef3f41b0859934d0282010100815486aab0a0896bf97f13e3eb1f7f5c49195b49cc3b6277412a3688798b18f46422df479cb941b3b54e25964a3d69b897bcc8355160e58b4af29f1745dd2cabb670f634b9c058e6b3514947f2c27de5ed424f73b1e1f1be4a188911a0333f3a6688658b3ee8e3265a512e4deacadc470ee304ebb5224123afb461984fe8524fe0b6b30d32a59f6ed2dc74a96bc7cbfd1bb44e58a7092235c5d6272e12a2c862cb8c8cf5d109aa4fb1c6472875a14460c1ed5207c4b22bc494c7947eb7ca63a8cafd31361d000ddf16a2d79f13dd9140d979149b488cbf44945a5b6aaf13221bf4491ebbb7fca27ca20e221f49c3c37b89fcf2dc0e2cb63f8f8a9b7a142250590282010100b61d84ff934a4e437b16ee1b4b9fdf4ae13370b5385bde7a5464a123c0343df575f9e128ef9df944230d39cc9cf5dc0edb28b7e740b69ef024c1bfee39fcd5340ffaea0010160c535dc0920e7cd81be533d00fa554a1fc4d3e02c461569f5e7ca787f1515edf45b196b759884de652c38d5934cf92524e807b4d3b590bc39bc417ee4885a761d28ddadce6c8fdb3b961d3e7fd48064df9340a967f8b79997438841f48579a476ddb55088c308f68f2b29d01c6597a5a7c8d066284f63e37a68c3879c32aa3836675fd0eb2719883a91944561e9dd7e8aa6bb17157f08c48f8e6fae5c3e5a2bb6b5d580eec6c97ddcd9be0a49ef283a7031ad7aba8d438df4e950282010022fb8e5fcd9b767104e71244db53058c18061e1b0d1f63b73e2d59a95e2a10cd87426a33da13c287cdef8136e5e47e93fb9b30ad92628a7b543f48eb011a86356ab3cb480f27e391b018ca187d97af3d82e31861ecafa663db78aa89c3bd468e6aadefb3a43f78bc00b8014c95db54e9d21a017e8f21f671545edde9a965ea32dfff45cda37fca1aa5132f6c8eed222bd01fed5a6e7d639580c5955777a86544c2c4c939bdb8b4c486dda53072861a0334359bdb3758475e49d90d0539944e78cfcfd8fff55bb31a1cebc65b28f51e790701b2f7912188984f034e6e96e1c5251e33fe38fb221bce7a90a86857c5f56b6ca77307c45d5290b1f088ade082b349]\n\n# tcId = 1\nct = 591be9c4c087764d1c3f38b2948c896bdca19616e70ce1ea20c3c1361d51635345bb8db8f559be2a08dfa6c8e0a717e9c6974762b73927213682e730cd4697d377f8c36ceab1b52fa4e67f7f230a1e3a551a51b6e355f3d40042d3508a0898b061bda6b6cfd1a13753f3379a1ba33f9e303317cdf768ddb009d84a357231d04aa159d88756f8037bf1da996720dc0360998f2055c1fa37473047bcad28b5c4ff5540769d6f23815cc0078821c1976249926310f0fa4013e1dd0bc7294f4e50eaaa2f5ae3cf936dea032b42e5889d0f7fb8f139ecede958ff2756be876fea0b426c902682523fda747ef8aee0b72e0a76659a689b989685de912a10cd2c7e095b147294e8cdfc9e272a7dcda458c61a6f94cbd1d54d9cec61f95d7b4698761a3930715b53715ec6183cec159f4b1e532073b7cbb9224e5c0d5f8e36041d5be8f8de2203c66cdef24a278027e5a2212bb5ada33520b304f186b5973b00c5d2ad7d73e404ca1e930828f08c85b62001f589a73ef0d1e8c2367ab6f1a3bc29d9645597cf7c0a85bbf5bcee4c12fc89af545922132759f83fddb369b55fe68f2c93a7d2459b04f52bfc2fc9ec237c14f651b41e9fe813205c345d1c36a838785a2465619fa0d4370088cf2b4083c972b17e4e0e207e142a765529b325ac91e16eaabed7d010e1735525d166cd310caab5b27e56bff36c478868233a38228e0177cec9\nmsg = \nresult = valid\n\n# tcId = 2\nct = ae1edfea692eca58775d3c35999e5738886a47884814994b29dcc9", + "7b99e79d9f35ac1de680ca6ac6638fe73771ade65e74d13f8de01ee5cdf5c4c4ed2b86261218ec529437606353a80fe45be9fc7f9f27850a70653ad31f490c1075429ad5263c46992a1265871a5ecfc7390c86d72ead118028a3fb3b9fc81ad055c137e34c6d56769cc8cc6e9edaa31958d0b2ac87751870f8c955ed2a0999d5638c8a42864174a0c8045a6fa810b6e0204f15800dfea5688d98156b1589d4c51032c7761bb02fb90fc15643db17f398b30f79906c739dc10751011032bc75828322de3d1e98de6f1bf644619e91cdd875f18b08c5876a485d8d46e5cde5435e26eadcac8dc48ead9f9fb747220fcdb09d2dfb1d1197b591b1aa3003c61dd880fc4e0b7da59146e04eb0d12715f6f44704bf0a9a0fd77bc7b74d3b61157ff5b0221c782fc886b9cfdefcaa2cd737178c683c84055beeccdd1d402d538e0b72485f3be93d8041a145ab0d42855706d61056a1d49a656cd67486682349ed0a6f8ff52ff05ef800a969b978f93d441f896302029ce5e8e800f3b5c2bb9c92c93cda18145fcaeb8f8942787074b02b434b4e52b6ddd918c4ad0ea22575fda6b108b6e0b8c7f681767c553f5b6b2ab56bc657f7017d1deff8f1f55906767bd039038373416eb1198e0195112df8c87c52840e32e4d616963b2e9cc7524c21487d7e81696125ca63\nmsg = 0000000000000000000000000000000000000000\nresult = valid\n\n# tcId = 3\nct = 04327a40b02bf671557124f963a57b3860e92cff62c439c0425b48b4346fc60c0ebf7a7584f94d34450d20cbd877c8d5dca12f517b486c2cccb8e1f467276ac03aadc94a97fcd224994d81672eb577cf0bbd6aa948d3dc4d7f06456f6650e5620435c078787db0f36124b292349ebe011ce54b3e932fac6525a37c793846a4f08ac3694d649f4a04e24e1f5e50f11a0492a68a509cf30e565ceb9931565b4aa5c3514b2ba87c4c0937ebcd6bb2b8248abb0970d30480059daea4c6ae556f6e91b25ffa5a4f723a9bf98a0bff668a1f0c799d3b0c85b19190dbfb5d894f84fa5d72d261dd2c09013dc0981cd0c46d7a08710801590aac8ff17b237387427ab3c6d6f2a59434b37f123bc7fc0a83d5ca5793540cba582e41b262859d36eabd0aa8203ca05d4c16aaf2a7b2bc7f251497d4c8f8654deae3cfffc5d3599ab4779585bf1673196782075a91ee7c3296a2edc6ee6c30344dd0c0a82274ae17982eeb23eca5c39c7d11a2dd171c70108b0a33164fc175425586f714deb5552e90e561f7882211d3f01c07867256d0cca511e61b0cb51189d8e5124e8cacdab6042bd421447ffa7fe6cad8e7f17dd3e599bae061f85bb5181726d1c0c5bbf2c2a5c1e60f486a81782e58d90ccd5a769f98361765441de142bb0a7f7bd406a537d5be0c2773e847b1df1d49ac1daa963feec84954b72a695b74281159647a62a3c19acdda\nmsg = 54657374\nresult = valid\n\n# tcId = 4\nct = c550c1db08ba647b812973ac38784a62e707840367a725e60489a0995a789463d05a3a6ef7cf06a8fa7304cf28e8b11d1b684ba87e3be712b2c086e2acc7c8d46ea84175bee9e4d25c4a24967296374811d4afc6675223e624b7f2c59f8a02a875b1ca75de2f5fde43b85b7aefcda3beae7cfde9ea0215c48d65a8b4014aca446b780c785a49fdc8481e3c342c82a66d1103bc48a4bef5702e6b9157ed367e20605d4645084950abf36ee49d76d25bc2639130e01fd9592ef399aa670c3cc549787466bf7fb5fa5be203cf86759419812af003850ffd3bf9c7170919ca68c224cd4fe9a3566bdc17793a69688313d71aded8b64e3be8c47f81103ab35ad6090d98d7d00952aabd1c67ece3e2ee12717f4fc1e849ce2b8130ac5873ccfb99cf683756641d11747276cbee0a9e75a7851012517bd4c197cc843c9f26c6f2f357323918600db96dd4388202afe276edcb9b73b2d7d43126c3a92f7354dba6e67a1bda30612897392116d33e53005e4eea4dda087e5eee5a30739076c1ba838670f0315ceb7cdc9b7aaf5aadb049345c81fcd972431f80ae8722a3f4a58b68c42f3206f8cf434205700a27742cfe25a0786e5f0bf4dbf9b150a52807be2db31b3258b87f3f5e617fb3b1839d4353951e7f556ad3689f0d9418e4311d99b790f39ae05cb28fdba711d33e28bfe87421fef67d98038873a6bc8a103ed14dfa87249332\nmsg = 313233343030\nresult = valid\n\n# tcId = 5\nct = 06c23a6999c870c68707f2c2d85c11c35fb77ef6cd263393a1a6a8363298f4b8937a8d176fc268a9a1d4f3bea51623f7ff7c76c4e4c8b12408471a460d9d1f226e41d17da80b03efd27ba00bcb7067dd9e02c26a3ae9f8b082f6cdcf1fcf76dd2ff774307b7810a4128eb2090880c967845ef02a6da6344749fcba456bacf43d915bd394eb9babdd19140287e44bdf1951eb4c058b489c7f3984dc5763f64b918f35393c4f6e86c457133a101b60cda0f9d0c93c90dcbae3345cdb894947d8bf1371694c0c21d009d4173bc849ea7d00f0d2c77e4683b403c32ded38f38afb61ef1348e889b3d8e0f787bf85b6b93ddee2c97805734d20006111b26ad1ede2d16d3f0238369d5008d255f1e1c518e68f82d0a09eee6ca803ebcf11b95cd20e195cd3f0d8221a78bad42820f2a5a7184b461a7002d06b003183aa66a313d91164a7d6d09aa567aff83e3cd512368893156337a741b388d1f18b10de386a28993117679deabd6b00d7f8c641d6f201ee8fe4b9934c9bdc48a70f21450c6f23b21e655f8818bad28f0755c856e3ee926b021f2c3d5336bf1752d6b54388b745b6e109d4c6885608a61ea8a5d511eb7836025cd1503bb3d25ac20819b7d9a1257a8d68b0bc51e7b085de69c267c0590fad3e003ca8018835b2c7cb32a25bdff2bea8111bc1656da3b8cf4ce3ce1a5b2c6838d9c276a6c1a4b58b07e17aad2c645736\nmsg = 4d657373616765\nresult = valid\n\n# tcId = 6\nct = 2d452fce3031f644f4a22e0d7b2df7296edb3aacefab84e7c57107021c61acbef498a914b9a70d3e33f97f66767eed7a14c16da88ec156e436245b5d9d7bd1023c997155e2e64d6801b535c3c861b19598807387c0ee366d024950b996cb206155493f0f320cbdf58f59c5911e10db3f8034b89a81878dee5a73dfde620ed224181364e7c7ea5812c874b252ededbe4c8644fdd3d312c7bb4785fff4b23a3ab00a2e5fdb3192404d8f1af8668d89e7b4aaf70634b98d98b2c244c336e57b3cf8411294f1a614f55b06a78e56eea98c6f59b2813643515a919f7be4ed59dabf69d68f43376964f0243ec6dd19a0a3609f8ce3e722ea3375a6b5f7ab24eafeabd58f81a2b3d2bd3aea2e6cfe396542961c1fa9d806037945ab866a0af6b2ff9f517d8beb5cf0c8679ec75324fd82c03e217572bdc12f374a445ce528b4ee5d8c93d3b8f254d372cabcec7ca69c4c539c0e1d02de02a0a337bdaa9910ef9402f449219b2e7376637dccdb01693e50196b7691cd8f6557e42afa7b9b7a7c925e6587613ccf007bbdf5457e67a2c2afcebd609ad8d04903cd2f748e1fd3eec0f7f812257da9d99207788e9770d12eee0240f9ae93ad9ac9b4fb63d4bf35f0c0a363bcf19eb0cf7085ead9244d4623a15deb7b9c02698d38ee78713fb67ce662ad0c76130b0b541a5120405b8683af5ec83bd8fedf72bb60491f829448cf76a73e534b\nmsg = 61\nresult = valid\n\n# tcId = 7\nct = 3ed60cd73681d506ccfea349e5fb086eab2b679ecb796532af888088cc84d8692c6326cca3745d20a94e710335e105d2b71f6834f7cd16a1a2193a3ed88aa01b31cc5a8734178f6d9256a9a660e967ee58ba4ad63cc33ec6a08aa1c324a88f55aa700b4d5eadf46cbf7a3c5304bf883b233d5a3a2f9ae8f858959c7f832e793b5dd68f196b83702d929857a39d74a4e386f7f6636f7c03b96ffeac87625088b07a1fbeeb44fc03cb312b8f3b4308846b0566208b516687c5a786ee443ab399ea598a2631d40a7ec8671e49b6f8be46a337d9fd80c56308857247cd714205d647fdcf8019608f20bbd7816f427eb4e4384f8c10c57fb0a7a3557bd80a6744b3ce3f53ed8e32b2e384665bd274b9fd747c646111ccea90eb809e690bba31d190c6a2e2a895fcc71f521fa9c0481645348b718aaafa968bc18cc20065f25924b8f0565d1e93875fc6ec0249e5be0b1bb9d8ae054dff2a368ff4b11a3724fb8c56033ebda05246024ee0be0126217b6988242a17430284d2e9b204b9296ae22740a2e847948c60085464d8158d9ba7db29f4594dbc85482304e466936689599505576e92c6441653c2744a37b5bca6fd88c3cbf990433bd3d2f9977e474b4d09f3d489e78700df6ad9dd2b8170652d7df55557d86055b803ffca1a8c3f214369bfad683f77a4e134fcc4dba92134117323893a83c5a76c081d7f8198c2040d3fc308\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\n\n# tcId = 8\n# Longest valid message size\nct = 3f1eeaa59c4b466f1cd4cc42345749746e18c80805c885df89ce608031692414ff9d7164d06a3cfcb16d20b439e65c44ec534016e9d9a173ca5652a707841e877c1bb3ee6e7440580e1edba79c7ce517bbc32f127fe0a5ea6d2715a1742adb5ab5538665620da3028cd1a50601942c0d255dad1c2b3fd7789318c0257c1ac140c0d3cb0766a7b51bedd5f1e1a65e533422158929824b7a8189f1c3aa0bc51586a82fa130bb465aa140def445a86b6d6331d6d98547d8da1a1c989b3d5e6b1f4b8278de9863cf8cfc30c776daad90dd4b9214295c9510d37a035c3c104c16d57b65ec0a816173ccb580e16b537948b3b21aa5fc56e78663b1b01c6623a977eb4aecde5d6aab6320be170f9cd5cbc6a520f32f23dd000116200faec4f04e7883abe9ccc482951384e7149cae39c6385ca17593a9cb2428fcb94eb6986b1a49b60f5fe43121423510d98bec37f700abe8adef9fd7e13321dcad201ae5a6033b59806f795bc0248e4c039e2f770635e1ceab3cfcee3f4c7ca68603b410cd9629d2391f38ec8576cee684aaf7e617d8da424c323124b28638b78e941933c7ebff9ab2d4a27069b83d82bdd694715be0a9145e30b9438d0e1b9fbae8ddf215f010ffff55926828d6a8f4c64c38370e5c3edc7385fef5acdbc4cbccb34352c8083b6a6d86246b940e7d19e98ee44c5b8d867d5b746061ba71d50c2d7ab4af66db6afcb1\nmsg = 78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878", + "7878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878\nresult = valid\n\n# tcId = 9\n# ps is all 0\nct = 556ea7b7b4ca2cee4cb4a386744b99cc7fea3ad359cac1f08fac0417e051ac35a704c051a14eb3031bfb25bed2c51e1967068b1927d595d40c6f9d5ee029db187993bffacd772075e9b16f8bfc0dbd5a18ff065cb6f99ed759d219f3e03baf53c6270c5ae1e66ecd4ca71e44bc8efa0292987c8caef2b464cf3a2fbadd12613ea60e0a5b5e0fd207388374d20f2be36e8332ba8b37e20b8f461b87afa253a34cd7eb3314de4c3a6427acb27429cb1536f3171224c84e05f81537a75e6ec28a82ac6fe21af38c26831a9e7cde61dc7f3e0992170284e99518a3048ce6c4d687a3ecbaa8ed0244371343bd935a05be103d255a2162c7b914b99731f8b2fe088994e6c616611b12cf5f5f6077e3d18bd435aaf0aaa53ed40c023b8d2d13fb190fdc2022049c6fe4b6eb66f0bf6a36e81c8a920c53bfa9c93b51f8b2659051e445c9b816c02e2072024227470f10da398e35679e114795053d2f96c3fb033cbdbb0b2e31447584c35abd60875ffcc1bfb24f892ef213f507b8eb63460df382c6c507c6ed17ebbe049501ba62f53b499ff31d2c04a242f7e16e312439baca228130c3874e36c84c5872ebe774e3dd25dbe6b5aff945cb0399f742d200be7057375538701c3d5101feee7b02159ded185eeeaaedb72ca1d4189ad165b290b6b3261b0cbf74a87e1796c1b128a7d8bde89e189917215cc013add1c07f8eb1de069ce048\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 10\n# ps is all 1\nct = 2e6309334d66e15e8cbe39a9cd2c3c6d8f19d49f017d87abb99dd4b32135968586766bea12529f6eb01da0a1902793ab8fb656e7df70b5de12548670583a75d68eb6bd36357fd326d07aa4f1c690af4a4b6189cc2de456d163eccee06ecedf4f41a0288eec24c2e3abfbae9ffa349d578594bef818268925dcb294ee9066355b061513defe161749a2469abf3ffaa28d537d55a71a7910e4b29836298f9ea464bd327d33d33967029b1731c742cfb8d4a6fde07bf28789e2a2590d084f7330b52c9ed8870922dec327237b1ee9178dc611bff14380b330ef94e677a40c81c61368b1eeef2ca753b90861bb4421f7da836516378eaad2ab7f80e2642b84f66fb0acd62807f9673b8d975db172958d54528c915116257a5ee2fce3160253190511bcecd7262435fed8ad1a11ddc8bf0ece11333b01a3087f40beb1c4d112c2eeaa46f3c7cc843526ac0abf0104c94c8be9e54ec285ad5703ef1514fd210cfdaa6b2cd2e9d39bacfc338739ada8982b5b6af683ec8c2bc902bc9bc4c9d5ca6199fed502481d86f2a6f9dd23f3f8eeda71cbaf90b51a50f5c6280aec08469fb45447ab4878cfca86ef78daa0b618b9af3c16fc9e4402520b7fb3abbf3086a2ecefe84a10406b879e410fd46c518760059e37f56befef10590593cb4707a0605c056051956fcb9d95f36d4f3852cb15aae172578f73522f966d077a9d8d98d316b664\nmsg = 54657374\nresult = valid\n\n# tcId = 11\n# rsa_sslv23_padding\nct = 80e0480b11f19fbef3551fb123a4fd968d5e5ff64c88c1c2b70546570eb585d5b119f9d511fb15ab3e25b1dcee9fd3f337f949377af431df9ea9b60c07225da87ba0d61c0f7a99aeb130b09c294e0d49caf3854a65fa98be5644457cba4e5591b0f0434932b787e0573354932a6a9f0e3355524121b04fbb8fb5e4a787fa509a7fa946aaa34e91c16827a65639b06737bb1a9fd5b85c85c58b116cdb2a900142ff1886292de9d4d944edcaf4e98aa28560bd6d35b4d64f0c7e72c1b572883581ec8e479a836bc2fc55c49f8ae50a9118a81597ac5e0b31035aeb0cef1e5327df6ec7179ff461b6f157c690bdcdb9937fee7e8355384667cc7a69856f6e86457eab8d87ea8be33e5f684184001319fdacafdd20b90e2e03863bda108c349de950377fc11f20ee32f481d74fb656449c309459a0d296124f726519a73c2a5b41bff6779d91ae9b47c6091e695ee7bfc59ecfe123e4d0327a3cb5b04cf0a998487afc20a3d0aacde87a080481ae0455796c5273815cd2b2d76edc7c9558be1ea2840a17584941b3c86acd32967a64bd1295a94d3ab34cfc67b2cd27900898bf461453a8716c8820ac8e6e9880a3eee38b196d9af46a3ff7abd2354e1a5f654a1dc1ce45cb4902988e3e14d78d78f96f59ca20eb5cfccb2767e937a55acb7dec407f96f6e5f6345daaca1e8b11a72a599515e08a96dcdfe2a8b8dabc0a4dcac4cabd\nmsg = 54657374\nresult = valid\n\n# tcId = 12\n# byte 0 of ps is 0\nct = 4a7a03202b982309bcf2f99d30cd0bebe24b43800e3bef58abbc11e865ec2bceed4d25ae1aa95750d267233c5db0860e48228a4fd8c2953fca6bc7aef959729a7d35c9af4868fe63303ba4f00a8fef777eecab7baeb5d9db61c4a7581eb0c12c887ab6ee59f6d0d8ad044c64c39e344db3f2fb7906af25dbc1263d9ee3baee8ff46a49fec4d893425bb22ccfdf7bd86adb23b3171ee653bd129c042c60d049730a28cd9ca83ccc8d8838341701f545503f3e356bbd4ce269f455c9800a1e03228880edb0590136ec3982b33a4f561607d00eaf9ddf68b67f18808c485f7d2001712ca5e62ada62d3bb575e612cd2e94bd88e831026eb7a23cff7f3be1bb320d853202039b0f59dde8211f9c65494335e99b9049b5ca356dde17f3be1688e6cfd232271474065124a8b55186500bc42ba4d6dfab381d5dab6d7ee1e7305e9ee93f1202a9b8dc6a9b7f69034d9de54d112891a053223b8489ee5b24238629ddf6b5d78ec366fd0b00dc612c5751248108106a80676a3137cfe96008342696ae59c369c7364fb070fb0a5af3ff548f119c88f2a7059ef880d0d135b085918d48a377027f78c72ac6b4eacb869c8bf86135d459cd07202945b97873228fb280ef770fd317ad5b2d36925826d786bdc9fbb760d3907d3ef826a6ea47b0eac1ef709b7efacd40acf51339ebe4b99702e084bb6a15f070d409df7e7fc802e0e6a988a05\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 13\n# byte 1 of ps is 0\nct = 05256ddf55991cf3e74b8fb8b3172db6e327f15c2cf13830fd169716f7e5e717147f91602814e4e7b38ec9bb7fb5b5b60895a89a949d835398ee6798857e05857438ec27dcc897a777b85d420146e5a0f0ff64b23979b9626bf6a34a8e01658fc143eb9d6fdfe1dc878363b038e7f2d91a7f50854684f7bf2ccbf042477b9c6c50b8146f594800a5b907f04fcd03220bc25260748b24f6281d3fd939b51d2d694fa76941b8873c0c70311fec77bff5b0752dcaf86a8a041a29c5ed35b0a96bfe6f82754cd2d173763f9753dcda7f5651ec40e1da282c01bb0be7b5faa390fd134b05af61b3fbd83b0ddf0060015843aed03bb79a11ec906766a6fc82fc28016165b7e5f9c9b913d52eb0e1862209b9cc6950b5d47c21c3fd0673d0d7aa281ca5ec3a36cd9a4570419a29820c75307bdaf0012b68579a6ae9e832825f47ead6b6af0a1724ba7679a88233082b65862bf1fb76656b0ed76dd758470b00c147965b4ee233275476e9030ed301dcd19cbf7ddfeaecad3d17d7129c4e9b4352422a3d2b812d09e829d5d8c2e41f6aa10664824cf0d3b4597aa2cc137f05df672f17f0a345739c93f2cd583bc4ed5dc2bc7295d89c0d986eb88ecf5732a87fb8a10fb449fb3f5da74952511bf2ce03bd74db026b76df93b816a64b4372b33e873226681204022fc945d9c2909982e6517ec2157f57f4a36cbfadab9ba6c8589eb03310\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 14\n# byte 7 of ps is 0\nct = 9ea6991124c047788b4ce768614edc52cb1bf88865f80a7b7bbbc435c1389625a085a5030338856527d86f0fa9363101a7800d7e61dbc081d5839bc679728403bf028a22cebbfd2c9984d581ca79cbdd2e9962fae64a5bd3b2a8d419cb39fbbe2df7b8a9b4e7c603ae1cd923cea1da1561beeefa680d5bb36fe9822ce12e1c88498c2273b76646918353c663f91a2f54432cb3fdbc5c7191ec5b8412da54ea45616c4125775dba29930c36a12522ff3af5eb628d2fcef30b887114ab5908fba3ace7b7c71b101ab1fe311653997a50de08b7a3e92d50eeba2064e9162c13eee23b9fad9ec00bd62e62835745547afeb8fc1fa5af5a8be060bab8e4e2fa2664f62c8956ad4d20dd27932e57aa44eac7a86b867c4ff6e049981109c84585bdb50c31e6064dc4c592cb1796ab059849db5698e1956c38f0e07257fbadda137b57f03b8dbd3d6d5e4c06474bde194cfb7d671ca3d2f99b827af954cbf0c0dfff8cd63af75f7e01b6630798a00cc01676b0cdaff74cb270c216282906931a7daf29a4ef8034407e186f2f9dbeac1f712e8bb7b1a4b121e045e9547d15ef1ba1d8015f1d19a3be353f7a82a88c130352b8cfeaaaab871902fa5f68c852931b4a014e4fe3644861f276a6c17adbaffaa7cd23c223c4e54e2b85b46204b66a3c447b4db722e6a9dc0c61ce29407a4d246a2fe8386cdfe99732316026a2c632afe5084297\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 15\n# ps truncated\nct = 1427b2364dedf9b33b1cf70f8823b60a2686520f904e89247bc6b5b682170fd152554f862ca64234345bb83b118539eaa4c0b7fc46e21d2fbc7eb5bb26ade5464a7723f8d44c8d0a88e1d1d7fca1717adca7207b55c5b52457c8aa2c6d9a19e07e04ca09ac39301512aa66d61c5363898138d1f390af651cf230fdd8cc691d3c69dece67e4d9301b74b1cf6fe7aebe6626d49f47ea33e5861ba4c5bc0a24f506b4afc959e33733fef1ef7a207c29c610ceb9ae53f7080a84491bd12d609ed216445ee54315915b892561efdb1781150fe9c243af8800c7edb8466da8e4d0240c0f627ec2106326805cbdd845b30ac35dd46692ec964f6696adedf72948474255d50505acfc1f4be6f9b300708861f2b9f9796b0d488ffabd14f6750e67477c59a0abf21f066388b0cd1133c90dec0bfccf45f34f777748ca8687f3268c9b32d0552588df9fc496f29d7a9152d23b8b51203cf151c612fe183432ace03fba2fe5068d749463e50bfc09912220a618f650afe592e3bc4c7314e6d9a12aea44ac0b50d79c8b9393b0df70150af7da499a9c2d1ea3dce363305c21f3ece8f3880919bb57e764760ff7863c184c043be1c8de30b177e1bcd5cecb5e804d1ee96fc823f7cf2bc3159381c78a49879407191998ca759cf30eb503783f88ea157970ddc6ba7569e1362cbb99eb45b6578f142df5f1cbbcf2a713729c2a0117781f8509df\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 16\n# ps missing\nct = a4dfae8779a11c4254a59", + "c7c5eb08e2ccf9d28692c2df4902184e69146c57724fa0a4b2701435fdb7dea14cd5bfdafda49400370368f85d3929b243fbebfcd71e5ba5f1d3d45cb1e5ca53194b4e5c98f1a78aef3c48c52a4d36ab7888b161bb546dbf5f69f661ea0599073b7553d53476c1bf9fa7b35f9407ad06b14c5c7c678df93302ba9f3e4e8751ed4bbfafc5851ae29bb717ac26e4236dc789438f01d7b54db01e522f16e1f4ad8613249316969967f197db0ee4edb7e08ada8af5b43c5d224b11bb7985c5d1a8ec425f6b4bd6c292d0a320217dcbb8c805ace1594fa608e19578b447ae6fcdbd8f65a79b1fc783914e4e37f125334266295bac67dc62c8ec15998fbac882a96a9bde25da381b43a85488a634f61052100d795d71c7d24976cbfbe3ebe169389b17a68a8940d81c81dd11f62f9d26ed80ef40be0cbc70150c08291b3c1c72767fe22b3b7ab9d9d67ab058ce05451baaef3b066851ec4e1efc631244ae13a720fcf2a19d048317efce23ab2ff42226426f88e0235ff1d29df1e0ea9cb3c499327bcc1c999bbe5ebaed916b97fb62d727c65d43d61d13e81441538058b64c2b19f2f4c9646b516fb287427b5fd9b7eae36e84e0b71830130363862a269217a0d7a10dc602f5eac5b2d0f655a8493791eef41d4265ba3af34762658e085f1ca82c710727c5802c0bd55ed1a1bd89a29092f1ce750a261a4b9\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 17\n# Block type = 0\nct = 707bba45b2e345895f4d6e5ff7ddfd5270354f1940b4c518a6ec0e0b47d9b52cfcac908bee3fc8161634492720f2118c5e732cadb6b4938c9b28754104abe22d9e7d279431d833a8cf46e6689d02ef41df19d8ea803850899bb22a648cb8bd7b38d820a708a762f44fc7ce8507aa5a039d161d93ef287789a1829ea4d39af8a561862ae23540bdd6405f8e58f4aaf32ccf5c7e4274b1d8ea5ff5f797063985483e0de2e60982a5731b5ed18a5fabfc84e7c9b7803b53b94a8f5db17c27ceb889a1348c423e27e328fe370c419d21bb0cc806fd36a4680a84d7d56120ed3da0439eb193173e5cb58e7749a7968a4e62af8a391ab47f2e32c35311d89a42f42f8afa07e4765b67db5d88195fac81e1248a780e9f0d4e9e5cea61d73b7fd06d06232425e620656eeb194f7917461346468687ba7eb7dc28d8f9a42ae1faf1a74a1e3af1f5d7c4fb9b6abc6441cae2775caf5923421eff11f6231af82e025b6889171348c9e66b151543f1e4eb0dcd41890545b753da2d58e1bb22e189397535482bd8ac280156982994323e20f2b82f287f541680551586e8e3103371cbb0db9c8661dcd07de1a3c49c2ba5d4d4f004ed63320a798218c1fdabeb491cbc438a82681bd9f5401344909d2aa4ae7a8d33fa1eaed419d2a37b360e7f32025d8cad01598b8859b63418b9bf09d1cabde9492361e09363fc7eea0d91ff9417002b79a57f\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 18\n# Block type = 1\nct = df0eab1982ae5ab79765bbcc8daaf43d4659e90aee060268880a84e941881940bfe16ab93091c930b5702f253289687f7988f0313cfeeaa8a812969b8d8edb59fb585138f8ca28f2d31fcfed2ff30c980bc2b7d201bbe63bb5bad0793e3c129f8a3191405db10b6ebc57d69dc7f384cddcd3c2ba9f58298eb20c9c4c046a47bf9e6e03970c902d55db16c704b4950f86d1d7dd887d21a806a9f60531bb1d8ef7a5ce2285cb0121ddc850d41ee8436a136eccdaf668de86004da1a4cb620a51be9b3428798b594d34f3a174638b5ae0ea768046cda32618a6008162bc9624f0c801e36886079fbf55ae9f54882aca0173c7b90a45733b424b19638e535837993cb384c20ee3d4b38c98829ddd49dfe9465165ae9c9cd24de6a911c231dfa4d7f0ba303b2579cd19f9e32c6a3df496d1c3b14610fb04152b63b7e27dc2d5ab78e0584504be5d3f0c755d47155c0ba6b63dbe2bc2d254936c376de40e66b72daf593641afbf544aa7b8c6d0ec464d50238ab3224696c96138965ebf6442113fc35edaf48ca170c405e1a21824974aac27208f3e60c6f34d7a86b4668360423d340b91ae1a41eb0922e844c40740c06f2e913c1af6f583dc8042fbcb8ab23b7e2e2dc1314f52a892707202b4e2558b92778ccd64df2ca0de190a5f0a33c1382b968ba6d24e9bf9caa890bc87749f83f5845b59b794872a7678df60d8b83fc1d0e597\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 19\n# Block type = 0xff\nct = cf235509adc3f706ff62e42283e0fdc37e68d2a54da87d5f895b999f8de638bd3b111159fd18a4ed6069232a091ebaadd797ca7fc2aca6af704f94f50388f7d493fb8956662808421160e231495ffac55d5988426df0b839411a60e3910baa40e48361b95412bf9bb85d07c3e1397d0642f2b0dffa030fb6509ac5bb2518f1f59bf3f07e0c44d4e5a574ae785f4d536b01af5e2897b655139c3d32ad68d729b40bb1969673f8fcc2fc175cfb6fb6fc224ed7f1a6a8bf3115445775f903203e61708c665a3fb23abf6fc0b04bb65e1da5b87e754ccbe3717975feca472113e83a63d086b61301b8fc8d41cb6ee6954d647b93d2d0f1bee5415aefaa765d3e7cb98737c17dac862d5d4c3f540f8187d5b7f0c4ca550f326f5cfb9ef20407042dbfeef5fbe0f6e0ff913bf90a86277ee961c62424e9a40ef3f3c82fd0f64f5a60f37d4bc9fcd9e29bd8803b5ecf8382f29ba4ec2d75258fa362b453f36f87358e0e9ddf293c580193028789976040bbafe334eb3c2804cad592cf4a2f79e9bcf58d94074870e9a9ef85b5f8fc9c93d896f56e632f6b3d72fa254e86d2974b11e300238e60bb8047106700b26e1989d2c221140955e449753fb0199e53c880361eeb120136fdbff103e273be564d7e4137d4652351efaef776b66c32ba7a44211100c7b1a8c61a31a8890ab3766d71f3ae76f1c6e32cee8a458800e0e408583171f1\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 20\n# First byte is not zero\nct = 95e686fa469e3557da1f427b01a339cd50b6aef726395bab94b06d437e2ca546f01a2f2e86d725eae2103c2fdcaf1176c27af6a27035f3584ddf87ca80bbb050ec15b787223ec6f371e33360dd7e95dc00760a601cb2002473946d39d184969430958241ee61f6433d65a1d7669e4368a6d8a1e1e4aa8e4ea381bf65f9bc90147a58d93ae4c116a258e39a6edf2294a46ba15f526264acd122f99b9d3cd95be9c0ca68b3d564e8788f18855fddf3bbf16ba0cf2de3dcba19af3ef178a8e979620374daf2984d5b2b9947c3a52fe13787b24f8a33a6b2ac6c9d31b02dac3314532e9ccd628536e004975a1c13c93547f10aa668a778c1c8cd81f29597859477dae5e7efdde607087ce5150a2e1cd04a7bd76aba1ffce0d87c33e70c425281cb1e4fe5f8a809032d45c41a8a80be6b87d9e70deea2daefcf46d9b6f4539c819a49cedc57b61d0c89fc40966e4d1bcd9af1d7cb833addcb411fbe4ccb308eb56ab9b015c020259d69619388fd7507698b3a82e9a6ad371544bf6808192ee7cc5574af65a3f6ef85210b7b1adef214c0203592db76b701ee7fe90924fe0c8c6eb8e9f5daee181fa85f0ac7d16409e2422fd8b3bf87e161500f5bb85eeda697950096334eac21a670a90f876196899a4d75dca376d7ae1976a2cf315fa378e11251090b2aeec39dd1488701dd6c44f268e5210aacdcf1b3fd41bfeb9db1550cedee6b\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 21\n# First byte is not zero\nct = 35bdd33443b580355fc6b702071420b4864612e05267189e46bfe097fb82ff1cee6fde5e28d4073c6086693e71b0d3c293c3bdfb926ba066cd9666aea3bdb1b355032acf2ca17624ad238003ee9509a7075e0811fbd6c4a974c3647250a55f9242fe76a846d2084494716e31127fd53bcc831b526535fccf4948c804c3d3c5982f0c96fedf22069783f8b400677c133acc7b3d1b2085fbc2771760d40252cb6bf3ad74f783e785a6ed51ee605a44126f647cfe49494eac8507aaad1f8ac8257e85857750ad49c93cf7858145b2e1972bea43b4b0686656de9a26b18e9e3712a530f1879adddc659e2daa5e3026f2ee844c7169ddcfc69b41da1b5fe795d1451f7b474c03e3c4a490935056139195730d65aa54cf1a04e3832d016d0b273f8467ce1e3dbbe91eef57daf54f2bb03a403f042922fd96fa1e47e1a978cc73c04f6d117535702c7d2495cd5f141a40c9cbee87f07075821633e95e5a2138b726b4c85cf4fba92ba1de5891b916ddef440456359e81accf0617102db68ce9e3afde9c082765793c59e772c76d91aa28d032799dc775594a6b37ebd74fd84123ccadd2f381db7b75c50245148613cf3033f2bc1f5230ea327134f003b35204e0678dd7f7416c94e6d597ea0386d74fb9a01f5da1fc866be93765005509e99dc268aad4ca51368b76fc74730f3389b120062251e1a570be4a78e0cc5949574de70bd475\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 22\n# signature padding\nct = c1ea62891db699a2a08ea5d01180afb732b2b0ce09d3d0a58a73bb2bf14f6bb7add66629fe97101a2057030a6b7b78fa206754866db2d36b2a03a7616c3854f8aab9edee7a0973274d7e15e7fc1bffa3d182fba69f2939492079f85008b9fa4b29e27ee10e3da8b17d4faf0025dde27677987d4efd558d955b8b9ae6b80a7ed7b7b087b40a2cab3554635b40c322a333240a15c47c7f06130f1630b85a15858d905336d29f1e16c0e0277f64dcb19905a69be4f00a969504368a8deb0090454cc0789948bf171abd83327e825bde69662e2d7bbfb181d64651be0fcc31b787c9a198ccc4281dd0755af5569a439e253904d137d3d69b57987a57565dc941b78547863c449defab34a02794f348fbf030a2c339212d36a65e7dd108a60092246ab714b81915fa14bfe3726710aae81814e53940c4f12a0fd14523767487065a0386b6f116266f3ab6bf974b51e18c74f6292f05b77b5662e21ebebd6c52d52db23334d6ac200fd5e5b29034c0cf078a3caf371def45a0ed1d23c2d0513613099b7c81d9dfb24253a80e79dbf9aa945da731dd05596eb06ea98ec8b78e0d0f7994dffdaf326da10b1b098e0f2b2cc74bbd1a567b2cdc91e56b3c6379d29609b56727a5205528877bc31d91909b723e9a56ad73ba15c7bb4a37f8777e53a91f95e1a532bd393eb892bda82f4222030cf4fb3e72f45ae7e4af23ec5165295245da32\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 23\n# no zero after padding\nct = 80bb9627f37ef2eccf2a823fce1d317359c85b154d49e7a4bf712354449936e1bab0332ad6b37e48fb1d3466afde77ba5ced23fa82e9a2c966f05ac17b12c76b134d364b61b895f5048ce30dba4ce477b5606681d7b43ef8dcc2884dd0e806a0df70cabb2cbc13dce5df45121137586c8f956a7bfe8f43bd0ea1cc01a38e510cdf79dc4a866673c2305b423d1cf3df43eca9d914854286b20f950cfab3788e735fb7a4727c66c5d5b95ad587", + "4b4a6dfe65b4ce2d46a87a25a511c08a06128dd67a5dccf6cf3fa099b5c5ff7de6c838289f835da8136aca1a8b4752ea6cd6c10a692179c2c37ade1617515e849c1f6cb5e61b237cd23386329ff81404e3b8e9220bb0759f6c612426dfcf947724b4b670dbfa2b73a7bb77235e259edd7107640bbbbe0c03eb2455051191f581a2aef36ac29465ee1cb0e8dfbddf73ffd7ee50b3a2ba3030182a8ed2aec8c4a80b0c4f4ed3f8ff041352c68b454206fc3add8d83113021c5bdd9326004d40b540ef4a398b23148ff12513389d26e4bac485f1c764b6f2e3ddbc369d135e4b7175a2e843c8d61021a28bdf98f27502ebcec5a4b9f5ffdec2f4791ab5188876fac0f4ee0648d7a372252db62114efae4f23b9c08a86255455ecffa9eb0bd3189ad67990b361022248f4bbad279f4f21b1f33506f44042e5c1c13f4046b698fbbf98f50a80e7d49a19ebd9abb239f6dee93a182be92\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 24\n# no padding\nct = 917f6404f9aad28b2e68c5a6d8d89d31a5d963f55c5b30e2e2321182559b9b423d5ccae88048218facf40f308b735d4f745ce7e732f171ab180fb032cf2093bbaf4b3fecf0ed91004d8bce098e1de279a8a4d0617a804bcf8b51d37ebd5b0568b5c18a69665ac2032871593e70d3ea98729dc93417cffa008b3bf078ae06e0697f7d885f13f9aae20c8cd1d8fd2ae849fe5627577698f15b4a306e7dee3ba2993ad07f285e63bee6761de354bb1064fc63f919ff9dec0bd455b1bca7045b1b246fee11678c40064e1201a8e1595326ce6355383c43e53d734a4bbe794cbdd59c873d61270352982d2ad3e8b8b2a238142d24dfe4a52744457ff443516eb9fd172b3b1b9724fdc205ee28b5dde56b0d885dff7075bfe44a1b52b0a504b9c644349b4ab88ff2399140ab15065a884de40ef60b3d244d3c270857aba121b73ec9694b46673c2d47ee20b528e777be85589008431e7ec5e5c069703cf42aa3f147150f4ac820e4fc6625955ebcbee13620d9520f06527397cc64794ebe0fbb3f56967f8d516be96c5892c9d08aef8b082e0bd31c4c6396bd3e8f243c110ea7295ab09fddde9c94d641752f81be4e45c04a00dc50e6e31ecd9489eaac6c20668d8e62717207c0e8e1e0759ee43d89956e09dcb10ce8e5ce1bc8b50282b8f55170c4379c1a23aabf2c14e3e1c29baf3f5945d240b9b3b858028398b271dad715e7c79e\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 25\n# m = 2\nct = e114ae9a713e4cadce8bdc80667f94aa597788d8ffef3ba74efcb8f8a27220639472e1578a29cdd6306c1ae9ea46312fd6920fdea904ed8cedc4f29169f08b7289a156bd5524b4360f990d87c4c8151c3bbafd970a5002c2279c0ddc126e38c55b5f81dada719055709dcd7ad81e8cc80e88dfc1421b2908735932029fa674df66312d85042008c4f481af12d35b987410fbc9e4c80600130a34e98c97478e4898c5db12dce12996a504e82e9a07b6fde28da9e3424af576ad51bafd68132e7993d223a3aff2a08afdf91c522bc1285cfdfc3479a83a7e45767e87144ff024703404033c7322fd0dde78d60fa1a599e693391dbe0d47d3253e32145d75ce8cd4c538cbbaecfeb52c4f716f90b0bc56f95b14a640c6255ce8b2ee04382c4ac132320b457f1c7f3be49ac8848fc449a09cd172dbe0b693d05a2c5d5d571df3b656f624df6371f1d453f59866f4808e14e0259b7db5587b61806753cd0528950d0f58a0f3da11f0714b449dbcb107f8712d467f2a844bad514c54f5e12cfb57acbe1b3130fb9990b18440777d77141337e0f80398f112f873dba5a9ab0adf899b98176b4af7218ec004b452f9a3bcb353f3141976ec92d2f484152a33713a1b404f51523770b0cdf71956a198f511c4c2f4bbfb49623e113b83681b56f6d65db6b91381afd5ae129af4bbb6f5dd2d4086f1ea8e22aba3a930258861cb8f26853dba\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 26\n# m = n-2\nct = 14ed0f735b91fdf63c8717712b2e8317a05137dd8e8b3c39fce5a343d695aab99f340dea04ca4a7cc2c07d4f417f987f028a0a3658c0165dcad64c558b085fbb862e6d5e7b1155995af5a622aa47a906dcc0364442e4b3aaeaee7cddf7bc867b603d91fe07e3b51434dce45dedfcffe51f3fa5d86bf27c2bfabca8cb7c060717310694aa041be0ef773702d7e239e2b996445d79cec27182af3af787bace0f6737133bbc08f62010d6bea82bc4b5817d01b83f1b2ea679235b147e7a34dccd83ad835835eaf7c9ac1c722ec3da5479442dca61138c826282e45e366f4309ec5e964e1d60e2f66e95f3faf812ed79772aff7175201cbbc4736349ba6dd7f78339aa521d07774075bb1940b5ce577040953ab5aed48fcba91f702ef3c80f74bf4737f4ac65fc957dc42ef06fc681fc1949059323cc72d26f0381e0190e0d4e77ecfb198cb11f1733b1cd38bf95f4143c374e8c65854215b5dbcf1cec121d6b7ebec7313e0cd3023c2586a5eff4e87d8f798c9ea5a4c976ecb1844dbef46a8289bc504d1cb284423733f618b3096549eda40f6928d04ae174f740369c4785e01627bc2a8e60ca111e2da8e1337085bb1dfcc7ff1064cb80d966430a5eae586ae997f79c9926fb722dc96883c47b2f5ac4427d4d862c4c96b476c2ef5d867b085265076c3c8aa8787a671e0b85e831fe47440daf40c2192c7bcefcd8398e92c8128b\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 27\n# c = 0\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 28\n# c = 1\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 29\n# c = n-1\nct = f601be0dccd04aa40b12f3f191ae17c1f9c8c0b68e7a77e14be25c3c7907cb1d33a6ef418ef41852f32c98392bc5c9aed91c1a1501c503eab89b3ee6f4f8eb2e0fcfc41bd03609cf6a8eb3aa6f0fbe23187b33db4d34b66d128a8aba0a2abf40bb9d13d8e2554569a57ab1d8c61b8cad2dc88599ae0da5346e15dace1bac7bf69737c22f083be9b46bb8b1eab5957b2da740275e96c87195b96fe11452159dafcfd916cee5d749a77bc3905a5ebd387ae445e8fe70f16e9a086639779ceffbfd41557bd99aea6a371a6b4b160615a1a12bc6958d34bce0c85adcbd8392fa10ceca52209d56196ba3d273ce228f1f111192aa92de2a039798a17bcecb4dc6100e6f8ae8c2643f2ae768b2255f082c978e95ca551555f10608231cf8003bbf807969fff1e51914b9a8c9b8f4564645b9e5d705ffad29663f5dae3d76652b422e43f13e6c1491090805c2d1268a74a251177427e33a9a91175c3670b91746008bce1fd231e6e4f2ad70cb43aca5f07600a6d31dd02915243dfdd943a02165da367a6b7e4dae1dd2e8b836903080795d2585076cc1c15dd9e8d2e5e047526569b1bfd395d957eb9fde325d342d14426e71efdc1887515e53cdea5834921f928629e748eed097ac4024e2bf255d70411f87373948cf8e8aa7effa2b0ab47d5166091e1aedec60568b155bd9c27bc55f3ece35f83d636dbcd5abf4853a051db94d5044\nmsg = 54657374\nresult = invalid\nflags = InvalidPkcs1Padding\n\n# tcId = 30\n# ciphertext is empty\nct = \nmsg = 54657374\nresult = invalid\n\n# tcId = 31\n# prepended bytes to ciphertext\nct = 000004327a40b02bf671557124f963a57b3860e92cff62c439c0425b48b4346fc60c0ebf7a7584f94d34450d20cbd877c8d5dca12f517b486c2cccb8e1f467276ac03aadc94a97fcd224994d81672eb577cf0bbd6aa948d3dc4d7f06456f6650e5620435c078787db0f36124b292349ebe011ce54b3e932fac6525a37c793846a4f08ac3694d649f4a04e24e1f5e50f11a0492a68a509cf30e565ceb9931565b4aa5c3514b2ba87c4c0937ebcd6bb2b8248abb0970d30480059daea4c6ae556f6e91b25ffa5a4f723a9bf98a0bff668a1f0c799d3b0c85b19190dbfb5d894f84fa5d72d261dd2c09013dc0981cd0c46d7a08710801590aac8ff17b237387427ab3c6d6f2a59434b37f123bc7fc0a83d5ca5793540cba582e41b262859d36eabd0aa8203ca05d4c16aaf2a7b2bc7f251497d4c8f8654deae3cfffc5d3599ab4779585bf1673196", + "782075a91ee7c3296a2edc6ee6c30344dd0c0a82274ae17982eeb23eca5c39c7d11a2dd171c70108b0a33164fc175425586f714deb5552e90e561f7882211d3f01c07867256d0cca511e61b0cb51189d8e5124e8cacdab6042bd421447ffa7fe6cad8e7f17dd3e599bae061f85bb5181726d1c0c5bbf2c2a5c1e60f486a81782e58d90ccd5a769f98361765441de142bb0a7f7bd406a537d5be0c2773e847b1df1d49ac1daa963feec84954b72a695b74281159647a62a3c19acdda\nmsg = 54657374\nresult = invalid\n\n# tcId = 32\n# appended bytes to ciphertext\nct = 04327a40b02bf671557124f963a57b3860e92cff62c439c0425b48b4346fc60c0ebf7a7584f94d34450d20cbd877c8d5dca12f517b486c2cccb8e1f467276ac03aadc94a97fcd224994d81672eb577cf0bbd6aa948d3dc4d7f06456f6650e5620435c078787db0f36124b292349ebe011ce54b3e932fac6525a37c793846a4f08ac3694d649f4a04e24e1f5e50f11a0492a68a509cf30e565ceb9931565b4aa5c3514b2ba87c4c0937ebcd6bb2b8248abb0970d30480059daea4c6ae556f6e91b25ffa5a4f723a9bf98a0bff668a1f0c799d3b0c85b19190dbfb5d894f84fa5d72d261dd2c09013dc0981cd0c46d7a08710801590aac8ff17b237387427ab3c6d6f2a59434b37f123bc7fc0a83d5ca5793540cba582e41b262859d36eabd0aa8203ca05d4c16aaf2a7b2bc7f251497d4c8f8654deae3cfffc5d3599ab4779585bf1673196782075a91ee7c3296a2edc6ee6c30344dd0c0a82274ae17982eeb23eca5c39c7d11a2dd171c70108b0a33164fc175425586f714deb5552e90e561f7882211d3f01c07867256d0cca511e61b0cb51189d8e5124e8cacdab6042bd421447ffa7fe6cad8e7f17dd3e599bae061f85bb5181726d1c0c5bbf2c2a5c1e60f486a81782e58d90ccd5a769f98361765441de142bb0a7f7bd406a537d5be0c2773e847b1df1d49ac1daa963feec84954b72a695b74281159647a62a3c19acdda0000\nmsg = 54657374\nresult = invalid\n\n# tcId = 33\n# truncated ciphertext\nct = 327a40b02bf671557124f963a57b3860e92cff62c439c0425b48b4346fc60c0ebf7a7584f94d34450d20cbd877c8d5dca12f517b486c2cccb8e1f467276ac03aadc94a97fcd224994d81672eb577cf0bbd6aa948d3dc4d7f06456f6650e5620435c078787db0f36124b292349ebe011ce54b3e932fac6525a37c793846a4f08ac3694d649f4a04e24e1f5e50f11a0492a68a509cf30e565ceb9931565b4aa5c3514b2ba87c4c0937ebcd6bb2b8248abb0970d30480059daea4c6ae556f6e91b25ffa5a4f723a9bf98a0bff668a1f0c799d3b0c85b19190dbfb5d894f84fa5d72d261dd2c09013dc0981cd0c46d7a08710801590aac8ff17b237387427ab3c6d6f2a59434b37f123bc7fc0a83d5ca5793540cba582e41b262859d36eabd0aa8203ca05d4c16aaf2a7b2bc7f251497d4c8f8654deae3cfffc5d3599ab4779585bf1673196782075a91ee7c3296a2edc6ee6c30344dd0c0a82274ae17982eeb23eca5c39c7d11a2dd171c70108b0a33164fc175425586f714deb5552e90e561f7882211d3f01c07867256d0cca511e61b0cb51189d8e5124e8cacdab6042bd421447ffa7fe6cad8e7f17dd3e599bae061f85bb5181726d1c0c5bbf2c2a5c1e60f486a81782e58d90ccd5a769f98361765441de142bb0a7f7bd406a537d5be0c2773e847b1df1d49ac1daa963feec84954b72a695b74281159647a62a3c19acdda\nmsg = 54657374\nresult = invalid\n\n[d = 50dbf689c3f25e42535df0dd470817c10053e25b748ef4285927325b4f901ab899add6a34fe45af8651537b40eddf49514605dec9089d0b0471373cf8366bea6f314b073177c4a39d7e66b625598361f10af8b0e9c8e8a9ca3a1f6de2770d354eee61e3dbeb38b8578f901c09fd62a2893351f207f8decf4546dda12249217c8c2357b57f4d29a7452ea1ba0212e9013ce5919397be9be9abdde42bcccf21560470264d83d104369e1f1a08f58b8f6b5b873f28552e6603f9ad82a16bd865747aeb4d3ac7e105b2a49c19eeaa946588f96d601b279b1085e33becfbf15d8aea6accbe4ec0408b9a343374ed408fdcc7f4792d735912ba76919be968db2f53c7ba334d0fa6c780eda7b36f437337b4734e8dccbb2e92cb0648cb7ee48e7343eade2efc0103a7aba8a3686793cc93f47a62adcd4dcfba7a22c4436638d4e8f50b4248287ead7c8cc9c7f5d8c00675ac06bc7fc8c5559c73c3d0fa79a70c5b1f49096b1901141629c52359600fe6520c2b3cab17dd81f0245a2b33855ffcc8a7db394815b6b77f4cf6b33319167df390252b7c99ea4abac002e0d50ae7c046d5631e1f023ab50b0517980eb0ca232bbc74b297acee280ac52b8aaf795b54c9f93b8c97ee6667d08ee798b0910a4038462ffccedf4ae65876afbcfa744f52a8340daeba2b670c0fbdd8d8f96fc95447d4ede3f9b624722f98cc4ec4aafde697822f9]\n[e = 010001]\n[keysize = 4096]\n[n = 00a30b62740e25aab01934ea6d9b92090cff2c0ce9831941eb98376a2daabda6afce254617f6dc579f97c299fa89ca5f746fe3693075a135774b703b008b8e884ea6ea25a5cc6b92f9b328d77139401090fae69ebe327b36636306ff8b4a13e6e75d43eb6cf856a888442a9e03a2bbc22d003fe97c73fde4a3a6db1c56e1d5c8fb5e5c937d60e2752954a0bb194a2b84f50a12be183493b8035ff56b38f1b40ed3885cb864749342fb7d577ed5864bb42fd1b31e2d40e23c7192335c9a3fc6b2870c9f3fb3037cf21c6cea27f39696f561ce0b60b5f0df94bf965e8364d8c1fc1ea69755ee65540e051c5402ac3d93a1c65853cbb4231b6619afb07b58e7c7898d2f0efeb119899ab7be7f5110e7ffcf97a226bc6df9b5ac7e21645369dfaf595d05694695e5dab014ed1b0686ae065743a4f97f15a92723990c69c88adf0427e3f5c35b5612d1038151e5e4e359de850e910b841b2d58c2febb5c773e707d171278f2e9b20d1f4fc05274f6043024ea644b8ed7cddf5d7f7a4036630ce3220eca913fcc4d3f63d8036a49a76c0b9c3d3d815f61d98c37c12791fe300fc39a9b05ff28a5c5f54070f029b5d4214e874912c392bd92e9c870a6707927a0df866d872dcfc7b0c133621ef1f1c01dc485920a66920a815cc35f4ceeda40e5dedef32aa65436ef360e4c10ec1c970c5990f6377ee16804c9f00f6a7a751c6fbce973d1]\n[privateKeyPkcs8 = 30820944020100300d06092a864886f70d01010105000482092e3082092a0201000282020100a30b62740e25aab01934ea6d9b92090cff2c0ce9831941eb98376a2daabda6afce254617f6dc579f97c299fa89ca5f746fe3693075a135774b703b008b8e884ea6ea25a5cc6b92f9b328d77139401090fae69ebe327b36636306ff8b4a13e6e75d43eb6cf856a888442a9e03a2bbc22d003fe97c73fde4a3a6db1c56e1d5c8fb5e5c937d60e2752954a0bb194a2b84f50a12be183493b8035ff56b38f1b40ed3885cb864749342fb7d577ed5864bb42fd1b31e2d40e23c7192335c9a3fc6b2870c9f3fb3037cf21c6cea27f39696f561ce0b60b5f0df94bf965e8364d8c1fc1ea69755ee65540e051c5402ac3d93a1c65853cbb4231b6619afb07b58e7c7898d2f0efeb119899ab7be7f5110e7ffcf97a226bc6df9b5ac7e21645369dfaf595d05694695e5dab014ed1b0686ae065743a4f97f15a92723990c69c88adf0427e3f5c35b5612d1038151e5e4e359de850e910b841b2d58c2febb5c773e707d171278f2e9b20d1f4fc05274f6043024ea644b8ed7cddf5d7f7a4036630ce3220eca913fcc4d3f63d8036a49a76c0b9c3d3d815f61d98c37c12791fe300fc39a9b05ff28a5c5f54070f029b5d4214e874912c392bd92e9c870a6707927a0df866d872dcfc7b0c133621ef1f1c01dc485920a66920a815cc35f4ceeda40e5dedef32aa65436ef360e4c10ec1c970c5990f6377ee16804c9f00f6a7a751c6fbce973d102030100010282020050dbf689c3f25e42535df0dd470817c10053e25b748ef4285927325b4f901ab899add6a34fe45af8651537b40eddf49514605dec9089d0b0471373cf8366bea6f314b073177c4a39d7e66b625598361f10af8b0e9c8e8a9ca3a1f6de2770d354eee61e3dbeb38b8578f901c09fd62a2893351f207f8decf4546dda12249217c8c2357b57f4d29a7452ea1ba0212e9013ce5919397be9be9abdde42bcccf21560470264d83d104369e1f1a08f58b8f6b5b873f28552e6603f9ad82a16bd865747aeb4d3ac7e105b2a49c19eeaa946588f96d601b279b1085e33becfbf15d8aea6accbe4ec0408b9a343374ed408fdcc7f4792d735912ba76919be968db2f53c7ba334d0fa6c780eda7b36f437337b4734e8dccbb2e92cb0648cb7ee48e7343eade2efc0103a7aba8a3686793cc93f47a62adcd4dcfba7a22c4436638d4e8f50b4248287ead7c8cc9c7f5d8c00675ac06bc7fc8c5559c73c3d0fa79a70c5b1f49096b1901141629c52359600fe6520c2b3cab17dd81f0245a2b33855ffcc8a7db394815b6b77f4cf6b33319167df390252b7c99ea4abac002e0d50ae7c046d5631e1f023ab50b0517980eb0ca232bbc74b297acee280ac52b8aaf795b54c9f93b8c97ee6667d08ee798b0910a4038462ffccedf4ae65876afbcfa744f52a8340daeba2b670c0fbdd8d8f96fc95447d4ede3f9b624722f98cc4ec4aafde697822f90282010100db20bff0f553dc176de86baae4b93ac95673c6f715bb3f11b848bec81de4a0df846121b6385aa256cb2a9e66996596a1b5b532257cbf078819b8bf3bbf7801441801abfe490ca84e5d7482ee6211f04d8304be122684d1dc8cdf72d14bf85bd760ec0d0f5030e5ef62a0ceb275a2d57d95f3d63e39e4d2a97db0e243793bf32e83030cc0a0bea38824e6d1188b41703cc29a4f60028d895ecf64a9ccb3b228c7e66cb1db316aed92433c63b0445f1cc03460e33440ed2a23f901eec8925e7671e302f7d226a5e741e82982e67c58419e22105319ceffce9bc26ed89f8b59042b2974f6097f423a22e2656702b8d8813a5fde557d6adb6e7fa4e58cf8f07769730282010100be7ac2633836593c891975dded137d40f9e18519f92333048f1181b0b9ec1207502f5c5f0d1cd58365bff3e80b350b01990b1ea85e263f8adf4b6a99eac132554855d255c2253bbaf722e41b893c81cc9933560068b226e147d459b9a73ef1af2ab96a2b39a9e401385a713a860abd3b6ad9157dd6c2508f1859cb84717d4d533a7ad0ae92734e085956c40a9fa612555e68247e672523868e06cdc23e62524537435a142924c7c466b2cc89ef281c230ae6fe123ae92489e383407e6db9e5a859f8f7d6e3a68bef914494420226fe4123049c324eb0dccce0b7ee1382fbb90b03d87aaad596d232be352d83e0a01bac664ffa948ffce419806b68029c50ecab0282010100abdb408e336a04b85f5ba46d901af1cf0c3d9b3317d915fac8c44cd4581582522ad99efdf1aeab995497e549644f3757365298b4abe48a7ca467af9ba56bf1da3cd5bad5a0e70b6d0280a95b5a90e51d757f17aed684deae91d181944277d357d4ccece530a858fd6925e356354a73139eb27139b6600f141cdec865d0c442d21cb01ca54aac", + "9946e26220659679c913ee2fe5c6cfd9bf7e1b3bc0ac29d6b58329e5df8ba07353459df3d3df5f9014d56d7efb5275054c42903d82cfcd73c683455e838c4f0158a0e8fafd8dd4c1c71cc56c76304c9775abd54ee81820cabca9394760db4bf25df4140921441242c2ff4c46ec5783a1fb44a2c7e1cb2f95079f0282010100ad74dccfbdc0c0428016cf5ee925764a554329121dee0fe776e15a58b4f664f483f09d0d71c3702bd7dc95201a14939140ecff5e135e813ed558b81ab1cc7d296c55bad49d978a6d17e08e19054034733c8fa3217c35bf722717191e174f1a8789408f8e0d54c86cd4048857e2f8a49a1712d89f5f925409fb02ca72316709a360fdb64b42d1fd9d5cbdc6886619b55848404dfb4db2644783ce6e5114be346d138621e17a16245495b0fcd21f17478821c57858e18cadd9637582a59f064a3ca4b233ff5c0fae1edb0ab877e3bdde8b32786044efa3df6e32b54bf838af4232e5ad9d0734b9c370b2057b0d3ce09052ce58c6b7c2e7685050c17e55e2434f4102820101009479c2cb8bcf71d5edbdc4f65240ce586e906ab636320420cf1906170d3af01f767fcab768880628ec27953589454a0294409f78127666f45ec07d38139b4445c7638fb39dc18a91af5d9c28ecb47f9cebb1ce19e48dcbe261056eecc107f6d3ca715f3747af24e6ae6a658c434a68cec6ad84664c88167cc25567b0cac2302ab109c66bd339be5158c67472a01a81e9cf19dee2762bbe9b0eafdcbb96991070d956db3007cb2b4d2b0acef96a233ff8ddedb970c11c0987f1b3bc1ec8b1d95a7e10644c94fe6fb670d363869496d0e25ccd9564f283f55982f9c75108c470c81bf3b8f28c7e8533683d4945b538c4d683083610a7579f9e8dd1e0c8b15c5b8e]\n\n# tcId = 34\n# edge case for ciphertext\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\nmsg = 1061f29b99666e0047073d0956f9c8131c6285024f8de92af08f2256bcd4c33efe91fb5c9714d370cdd7476200706561fd65f95da0ceae1343c6b7c767c61ba6084b68ac52a120d1da040d2f2b64e607ef0aeff68c66368d99894695ce299bb2d566bfe42f805a14e618e5a6b53589f209ce8cc4756262fdbb69bd165fdf21e05955cb790b877a322e586ea155b660e5fda3b800fdf9fa38c0ef7d305c863a44dc33930d6a0c9e24eb5a85d1047a267760c0adc173779d2c2c63bba1621a9b02739f7f9dc4a84fdfd3b520aa62e517c0686d1e36cf95afc3c41b92f0d3c6b6c696f55b85594b30eab8dd10c3f9c730ea484426aabf1bb90bff491b77ddac7386767d8f2067f19977cd60d8be3874a8fe7cec3732bcdca051c099380a04\nresult = valid\n\n[d = 57264d0abd86617d2e3590bedbbefc316d2595df64bad5c7ea8915dd4a2fd057ae4b4715eb8f0e0522c864af4de77146d798effe4f018004a4b1132f9ee48f473b37516f55ee18ba596913da599eae2579c39fcd4c2284f9cdadca5d526fb68b2de534bd31a811edefb5681c37c0eb2a3cfc5e83a56f3b10af1b43a792392f16b0f855bf9bf40219633b0213f3fd851bd0d22f0bd69c2442d88238d84c1f6404544a006a99f9c91cb6aebbb43dfc148d9e7db80306e54d613ec6c487b9b8ed634ce3b8d67c3b294b1cafce7f7303241252c02df0f4e87a3d5f9e6f1c0c26dd28071c3f505e48c1e589ed44a30a002efa31c252c505c4d1ea987ee58ac381ee3af95ae617c3e0a07ce24852747d449cbe2db73882edd3c2f5d72460f0e88f981abaf8f035de69abbb187e7ba4e403efec30589195d94852d106790d67f5966e6a4aa3b02b46d68c4345b28f8fb82465817e112f039d9a607053db6b230792b509be05d54fe38a601ec1af0a5df9255fc59575460cb2a4c95948c55877db94cae251ad7d057c2f82a04b1bcadedbe96f8c1eda7f5eb5497f48a00bceea2027d610283017f0650efd79faf90601c2f6f4d35025b798a2dff62439ffa425d8503fd7ade71038a534dd24234bbda0d4d4ddeace2551e4ef92862a7a5d42ffaf6cc4030c372462352b4062b9f6709d83a49912ee793769a44cc13359ba706e393beee1]\n[e = 010001]\n[keysize = 4096]\n[n = 00ae4a8f37d842dcfbab76d00d98c54ccb9f7f880bd50520f0fcde0d548ac809eed58a949812e9a781c394009f62aff39cc34c81fc760dc5d53216a766c68d42228c72e781b0b41a807a44f1731525baf1640ca2ef4c2271aede93b5c7627c8803a8d221fc44d973c6342ddeebc40b35a979a75062c65aa79536030d7975dbab311359c008e343af0c0e7890bba9344d617656266371c22eb53eb527e06a6db690965a4ffff4c8f309337216fd976a476a486d8b4b50a365ff80520554e72db181ae87515724c6b7f1ac2f25a1ec7d7c34fcd10e1e0d3aa9610e3364a763e842fcbc959a82d126fbc0a8a2fa94b2f3a62628e0658d1adf43e1c54be6e3b68a895151cbd4523c8b8e2a4998c20a4b84d1c3cb1bbe3b5ef1256e2710a5472ed8b4ab5426317dfd9e2d5ff527fec5fcd52ec0c35db8b3149d15a49971f740b0e94a3ded05010895be40c8bff8f79872cf481eefafe0b8253f9b12d8c3827cd74d9bfef90c292e2ba12baa7dfcfeb1a73084286e1dd28dc851282542bd5017850269f2c532a910b3f493671a27da9a521e019e3478830e49243c860a5559f9f7cc15d1f42185d6d33efe01b3d731166a7f989ab93e70c741bb943db682296a5be6ee0b02a6c48d3b10c0a822975f9806e33e89b90975d229947bfbcb35b1ef54535d8c249cb1241184c8c9d2db99cd949af9bd4138b3bed7000fde2648cd06e4f5d0d1]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100ae4a8f37d842dcfbab76d00d98c54ccb9f7f880bd50520f0fcde0d548ac809eed58a949812e9a781c394009f62aff39cc34c81fc760dc5d53216a766c68d42228c72e781b0b41a807a44f1731525baf1640ca2ef4c2271aede93b5c7627c8803a8d221fc44d973c6342ddeebc40b35a979a75062c65aa79536030d7975dbab311359c008e343af0c0e7890bba9344d617656266371c22eb53eb527e06a6db690965a4ffff4c8f309337216fd976a476a486d8b4b50a365ff80520554e72db181ae87515724c6b7f1ac2f25a1ec7d7c34fcd10e1e0d3aa9610e3364a763e842fcbc959a82d126fbc0a8a2fa94b2f3a62628e0658d1adf43e1c54be6e3b68a895151cbd4523c8b8e2a4998c20a4b84d1c3cb1bbe3b5ef1256e2710a5472ed8b4ab5426317dfd9e2d5ff527fec5fcd52ec0c35db8b3149d15a49971f740b0e94a3ded05010895be40c8bff8f79872cf481eefafe0b8253f9b12d8c3827cd74d9bfef90c292e2ba12baa7dfcfeb1a73084286e1dd28dc851282542bd5017850269f2c532a910b3f493671a27da9a521e019e3478830e49243c860a5559f9f7cc15d1f42185d6d33efe01b3d731166a7f989ab93e70c741bb943db682296a5be6ee0b02a6c48d3b10c0a822975f9806e33e89b90975d229947bfbcb35b1ef54535d8c249cb1241184c8c9d2db99cd949af9bd4138b3bed7000fde2648cd06e4f5d0d102030100010282020057264d0abd86617d2e3590bedbbefc316d2595df64bad5c7ea8915dd4a2fd057ae4b4715eb8f0e0522c864af4de77146d798effe4f018004a4b1132f9ee48f473b37516f55ee18ba596913da599eae2579c39fcd4c2284f9cdadca5d526fb68b2de534bd31a811edefb5681c37c0eb2a3cfc5e83a56f3b10af1b43a792392f16b0f855bf9bf40219633b0213f3fd851bd0d22f0bd69c2442d88238d84c1f6404544a006a99f9c91cb6aebbb43dfc148d9e7db80306e54d613ec6c487b9b8ed634ce3b8d67c3b294b1cafce7f7303241252c02df0f4e87a3d5f9e6f1c0c26dd28071c3f505e48c1e589ed44a30a002efa31c252c505c4d1ea987ee58ac381ee3af95ae617c3e0a07ce24852747d449cbe2db73882edd3c2f5d72460f0e88f981abaf8f035de69abbb187e7ba4e403efec30589195d94852d106790d67f5966e6a4aa3b02b46d68c4345b28f8fb82465817e112f039d9a607053db6b230792b509be05d54fe38a601ec1af0a5df9255fc59575460cb2a4c95948c55877db94cae251ad7d057c2f82a04b1bcadedbe96f8c1eda7f5eb5497f48a00bceea2027d610283017f0650efd79faf90601c2f6f4d35025b798a2dff62439ffa425d8503fd7ade71038a534dd24234bbda0d4d4ddeace2551e4ef92862a7a5d42ffaf6cc4030c372462352b4062b9f6709d83a49912ee793769a44cc13359ba706e393beee10282010100e531e0215cb9566bd549840ab5a816061a27dd49d0c08931c385f9ade92189674e02afd043d94b72a9ec85c1decdd670e780de58f3115f0220968777ae3363dc59fe426ac191d9ffe7f29c93b4970ca3e4782beab2126e040552c3559852e7a9795196fd9137fbc57d7fd8382b07b8ed982af39b4436b76c917c00da4549170ddea5f801f7cc28380f5b15292f5df899ee10c245cd7809daf6c7247e366925e9a534e9db91e2ef4f1538629d68de6ad4c5cfa7e4beeb6a8ead352506521a0bc8a33043b96782bd40d58d00f4f86d7ce43384665bea851235a3b35bd9498ae513c1024499fa458f57a52ec30df36885f11b1800eac4cf2e3d402df7778672bcc50282010100c2acdcffe8a54bb71ee22a3a457fc92be6503f0bc91a4f02643e38a07e994666f370761c4acb89892458ec4791a7e1ed74dcf27ceb44378dc29a210c37ac4a869056d3bf91a1cabfa43f7f9b9c74873e15063369df7f7fb020540d9d1fb7b8288a4f41326cad5f81fe6d969db49137c3395b9a4ba552f3da807ccfd4d541afd539abc72c71479912b7c5e5975496aabea2b11330c8ba954d4a5c7c56c7d2e9b86b2baabe0c521dc871618178a3b135f148cf63e361db7b7961dbe5dd8afaad3b58152219e39abe825fbe51fa1c2e25449ee869d452a82fe90de741c87725e023247b", + "07d4f6f8cf6fe103b43c42bbb4381558aa2e7d5a69fa8ed89e46e8509c9d0282010100b2b6874bbc5f903199282fdba1f624e63132f06c04687d11dea1f324566a9e177d4ebf04a843217f915c2a9817416d7ab0295e3701a183f1c6b359824ac52b92c061702c8a2f4e4b2af3947fe00b000233be389052b5e82f1e6f807c97bfdd7fda677252da0f4b349d3d38bde35fac2527c82617e5c2bc97dd8151b0e0e1b3264f7c1ebc7a1a292a3d5f0a4b08f23f4cd7c31d990c34138b376de4d8bd589405719aa6d75d141502174bd62963823acf1a4767650831cceedfc456d06ce87e53be5b7e136dd115fd1e074abdb990b617c2cbf47cab8b83bd6b9e097a8ecbccfff039f2801614734726382644148e6612b0cbb0bb5f2725a9010856b44e93dcf90282010002c57d3bf36eeefe03658ade5b80ef373dc724aea1454b9ca81aaea9b243b259e2db56031f1978b2c81eaff670df67fafe6feacfd6759928de7d5d3d1449d2a1c9ca42a776864c21a04ffb1c17051dabc796d80288d902d35a12784325617330b88f5a49427cd16043640201eac12a7f1000fad85ad92c798edcb804baa87dbd565dd8af0c49cda71390b0ad0fda39420f84dfd610f57f0ca3a35f6dc8d87ad5524943dc02c6e47fa70591574b5549844eda0cfcfeb6a6325b2f4b3d752e0e6b4adcba288e31f4c65c609440304883e54f31d5d7dcf961fd3a6271704e29eedff134032f87f890d371eba0943f0af70cd958f2cb48a391e0ac49ef2ee93dc48d0282010040e18da66705ea3272ad66eb8c89b65cb775728ef49ec3449f0a910496bf628d38e4b8a00db866612fcafd9efe8ae6ba215050a0d7d5b888576ab91306b4c83e7235c5f13ec7727ed574cdceb942d4851a953cef037e654a131182a18c322acf8ed88923b445582ebcce561c4a2b0930287fa000417f5f04187d827238dc052e52c2808c374a58e2689c77ed80fcfd972471c777ec02bb8903bc458853b71ff6644fbedea7a1a312dface74c8ddc4e4252aaff41140cb443ca66a5642a916298bcbf3480e0294f855b17536a796003e4de33af0577524813c56573c1edba4d667ba61a7dc048b784f324f227d02698b0f430714ac689232e30fdca287e7ee87e]\n\n# tcId = 35\n# edge case for ciphertext\nct = ae4a8f37d842dcfbab76d00d98c54ccb9f7f880bd50520f0fcde0d548ac809eed58a949812e9a781c394009f62aff39cc34c81fc760dc5d53216a766c68d42228c72e781b0b41a807a44f1731525baf1640ca2ef4c2271aede93b5c7627c8803a8d221fc44d973c6342ddeebc40b35a979a75062c65aa79536030d7975dbab311359c008e343af0c0e7890bba9344d617656266371c22eb53eb527e06a6db690965a4ffff4c8f309337216fd976a476a486d8b4b50a365ff80520554e72db181ae87515724c6b7f1ac2f25a1ec7d7c34fcd10e1e0d3aa9610e3364a763e842fcbc959a82d126fbc0a8a2fa94b2f3a62628e0658d1adf43e1c54be6e3b68a895151cbd4523c8b8e2a4998c20a4b84d1c3cb1bbe3b5ef1256e2710a5472ed8b4ab5426317dfd9e2d5ff527fec5fcd52ec0c35db8b3149d15a49971f740b0e94a3ded05010895be40c8bff8f79872cf481eefafe0b8253f9b12d8c3827cd74d9bfef90c292e2ba12baa7dfcfeb1a73084286e1dd28dc851282542bd5017850269f2c532a910b3f493671a27da9a521e019e3478830e49243c860a5559f9f7cc15d1f42185d6d33efe01b3d731166a7f989ab93e70c741bb943db682296a5be6ee0b02a6c48d3b10c0a822975f9806e33e89b90975d229947bfbcb35b1ef54535d8c249cb1241184c8c9d2db99cd949af9bd4138b3bed7000fde2648cd06e4f5d0cf\nmsg = e64266a37c810fdd0a9f349dbad2672d8744d00d528c28a5f152fddbea34d89ebfb6a841dfb65f0c6719575a8aaef764525fde3d759bbff64a1c5131031417f346e48564a01b59e517edb54f41aff7b4a59084d00984d3ead24745e247a7c5c6ebf1aee9dcd2dc0e676c3464793c01394f78b2f15f815c796a92eb1c581574e02df4eed96670c8604f336e1ab16d7ea37f9a19d7059d1078e505a40ef76491665c05141f57dc4c64bc35d4df1557b346b596a837913f69d88499c8426945cfc3d4cfe386eadcc572fb1ef337a964ce9db208cfe2f714fdbfa337f62ca9734e5654069fb9c6dc4a12407bfa50d310040317fc56829cf8bb536571bce62800bf225e2e2146b7678c52cc22f66a7aa27d9dd9506c99d6969b941d28fb055aa2d5f527c95f97f88bf1ff5c5a7b267a92d3acd29a225dcd7f748c5f171f936088633a7252eeadbdb7c479bd217e950c4e991392feebecfb09e1d4d4565cf3ae45a40c2901c91e2902e8b4008c17c749de0085368b569c51b349ecf8206411e1b0c12905780cb263fbeb5c912f1dd5ed63ccf8c3d189d302f307fa769abd845acd5a6798d339caa37d04acb7d5eaebd883be750333bdf5e6\nresult = valid\n\n[d = 59c7e0280c4341045e7b78027fb8348e90cb121011e913bc28425d95429e6adba7dae5b14ec72c34203c4b59e9727a861c3582f4da0b0744ab22a7c82e29b02ce7e4c8e9a2f923d8cee2a55af85e4a74fdb7db05c74d0a46a013ecc7443cfc974e8e0413480b2edd25d22da37b38a65c1a7c96cd551f30a14973b9ea64eaf12fb9d568d1b0ffa39c98f94b23de567cbf0c30248651e5a9a9b0e32e61f55a01716185514d31df24ce6ffada44970d4c4c8919c28f599aa8b9f4e110fbcd2c847fccf858a4a6f9f6ae8ebe778e359d9a0026cf03375ee55bc063c0f2cae80135ef2ce4b680ea0ea56f2f3c22fbb229d7f7aa7f5aa45c0e43783c89839bdca4d9e8a4d646a9f54ae748f3641a099ec73eda5c20aca7466dfe1ef8dfaf3feb02a1e1a4e7bd1b49cd6ad9466f540a95b6ebfa1cf759fdfbbbd3a89c3d61fc87fc30c227a381a25522bdf27114630948a5bed03227fdab50824e6c1295f32812e1529e3e36e6aef652c0a48c5adbaa8c515f9a96957d300b28b5fc5ae1edf6d12607c4380a5224ab56fc4da3a1cd04fbfb5d683097923563f283fccd87df003461c8e0f158a6d0103623f80f6488e41a519d17b345a09bd35eeaf9e78729f767ff5974e01bddccb0bd2d0091292a9e14cae3a9fdd92e2a0a420a75074ca9d5ea721d04ba999f85c329559901e30db0fe81779ae4c2ba1a33ce892a6356708cd1be3641]\n[e = 010001]\n[keysize = 4096]\n[n = 008e004efb4ea1c0d4ec2794a28f273ee2f23215f6e17c9cb628786fd90dc9aa685aafe4006c4b647a5b18115659fb543fe6458964a30144b975b3f3b5e5f6d8930aa962f70da2481fbf855a103f3920f66346ce88f906107b3b8c85b74d1b04275013e2a631c319d3b1b4a5b5ab4f5cd372b24942b95fbf8d4bc6969697b85edd3f6b8ab51b50dd34b0fae8ece7f80fc0651eac49c85f11452fd97189a611e276e30da25a9de4698ee4f28b9fba1fb3d8b0c8f0112d29a7cdc4ce89559e56420f2ec842039b10780edc7824a73d23693cec0d358aec7b3c0374ecb0b86c9d0fd7e245118e5fbc1607c9e6435110aa7b6cd36327a3385632026c017bd1d6894ba2e1c51d404051f38e6eeb70c56c7a09e2e12d3d746e7550dd1ae3e3186e36a84b91abf2e3e2dd988955f337521540b60d3501cd9bb82f6092f293d434d4ea67e96c7b7fc7868869a5a39558488ccb0d863e6ce5ad73c8d3a55402b0805b500c1d3483adaebc455fa1454a0bd560fbc7bea332fb5cd6b3814851237b253ed7dda42eeaa630736699dcbb5b4fc005b18119e59a381fda3df15909e44d55646b80917d37299e24ad209b57760b6b67afa97e76b4f06979eb22ce46b25a5248ea4da4cbac214181d92aba5d81ce547656aaebb22363e3f09ae93991c05380d5d5fdf6c47251eb9b8df080f1c63b470194e0542875ba8d1e33624d1898dd6a4579b5bb]\n[privateKeyPkcs8 = 30820941020100300d06092a864886f70d01010105000482092b3082092702010002820201008e004efb4ea1c0d4ec2794a28f273ee2f23215f6e17c9cb628786fd90dc9aa685aafe4006c4b647a5b18115659fb543fe6458964a30144b975b3f3b5e5f6d8930aa962f70da2481fbf855a103f3920f66346ce88f906107b3b8c85b74d1b04275013e2a631c319d3b1b4a5b5ab4f5cd372b24942b95fbf8d4bc6969697b85edd3f6b8ab51b50dd34b0fae8ece7f80fc0651eac49c85f11452fd97189a611e276e30da25a9de4698ee4f28b9fba1fb3d8b0c8f0112d29a7cdc4ce89559e56420f2ec842039b10780edc7824a73d23693cec0d358aec7b3c0374ecb0b86c9d0fd7e245118e5fbc1607c9e6435110aa7b6cd36327a3385632026c017bd1d6894ba2e1c51d404051f38e6eeb70c56c7a09e2e12d3d746e7550dd1ae3e3186e36a84b91abf2e3e2dd988955f337521540b60d3501cd9bb82f6092f293d434d4ea67e96c7b7fc7868869a5a39558488ccb0d863e6ce5ad73c8d3a55402b0805b500c1d3483adaebc455fa1454a0bd560fbc7bea332fb5cd6b3814851237b253ed7dda42eeaa630736699dcbb5b4fc005b18119e59a381fda3df15909e44d55646b80917d37299e24ad209b57760b6b67afa97e76b4f06979eb22ce46b25a5248ea4da4cbac214181d92aba5d81ce547656aaebb22363e3f09ae93991c05380d5d5fdf6c47251eb9b8df080f1c63b470194e0542875ba8d1e33624d1898dd6a4579b5bb02030100010282020059c7e0280c4341045e7b78027fb8348e90cb121011e913bc28425d95429e6adba7dae5b14ec72c34203c4b59e9727a861c3582f4da0b0744ab22a7c82e29b02ce7e4c8e9a2f923d8cee2a55af85e4a74fdb7db05c74d0a46a013ecc7443cfc974e8e0413480b2edd25d22da37b38a65c1a7c96cd551f30a14973b9ea64eaf12fb9d568d1b0ffa39c98f94b23de567cbf0c30248651e5a9a9b0e32e61f55a01716185514d31df24ce6ffada44970d4c4c8919c28f599aa8b9f4e110fbcd2c847fccf858a4a6f9f6ae8ebe778e359d9a0026cf03375ee55bc063c0f2cae80135ef2ce4b680ea0ea56f2f3c22fbb229d7f7aa7f5aa45c0e43783c89839bdca4d9e8a4d646a9f54ae748f3641a099ec73eda5c20aca7466dfe1ef8dfaf3feb02a1e1a4e7bd1b49cd6ad9466f540a95b6ebfa1cf759fdfbbbd3a89c3d61fc87fc30c227a381a25522bdf27114630948a5bed03227fdab50824e6c1295f32812e1529e3e36e6aef652c0a48c5adbaa8c515f9a96957d300b28b5fc5ae1edf6d12607c4380a5224ab56fc4da3a1cd04fbfb5d683097923563f283fccd87df003461c8e0f158a6d0103623f80f6488e41a519d17b345a09bd35eeaf9e78729f767ff5974e01bddccb0bd2d0091292a9e14cae3a9fdd92e2a0a420a75074ca9d5ea721d04ba999f85c329559901e30db0fe81779ae4c2ba1a33ce892a6356708cd1be36410282010100c4cbd1e595470ffb97164a98e43a154d43bcbe19ae0497c8354296adb641aa8df5357dd49de5e9f4d0cba3c0370b897e4a3a62048caf3fd93dcc05b6bddc3d7511cfce6cb32b03ffd103b9feaff63cef5d3877c04d60b00218647c7cb2aaa8bc424ca4f9f5aa52e9538d2772adfc5ea045ac4ad50d29ff39e839fd88b0a0cb1750306d10e524e3c7ec65784f65b62113105d25a6d1f6af3c0482cb56340bd79a4de283ddd091ec3c", + "2e55e4cffb3805ef0b76af24e1f0c9438bf1b0f0276271b9b3322e51b7b16576d3c98fb38722d90a8a4bb546c11d3448955b98eef5ebd62225be3e57fb525668c60646789062cba778e7563da8e3cdd152243a210b0617b90282010100b8b879c9c0a2de82253a049a7323c5d1607a99a634a1d2ecde52c8ff2137c27a46b9b68dfa8d895241d54acdafd650dae0e2830f36cecaded3502ecfadf8d586dc935e160210be5c02ea10932ffef416f5d06af0bea0b0501e12dc915fc8b7dfddb23f1cbc83225264a7f5d2f83800e155fcfdbf9c817823ce45188812f79460a2a288e70740b3429a0768894e8d12c0a2e015d3e9a8e622f155aac5c29c9e6576e39c2ed9aa570e0ea1395c369532f5e6939d1dd1c3a554bdc2cd6c663d7096d708421cf2f1d621c453e979138635a3c279c5f8f10a90be2a5fa185125a743345b907d78527358c595836e9b2fd9a3868e46c955be6caac4889ea8ff7890b13028201001be7beeaac21387df76d9cc453507d26c89d21e3a84e546b7a49e7edd7f335c90d65396385c44d497eb5f19156fcd6d1469b42bcdc6a1946a7c19f69cb4048a2aa14ea7375707b0fb246b20010597d487fd27b0094b84a1cf1f285c874d94835f1bcc683ff36d8ace74113bfea35e8011800175860967cef6c2394f4e5fed6ed865c678ac6c3555d4b03146d45c1eeacb25c52f375c06216c398fc564be905f88664c14819c427585d45a6bd6b25058a60f8c25b1b82b63752c7c1cc3bf974a0dd6d172e553add655d20aeb4c94bc2b500e93d5a3c15f50cf9c8d445c62f5bdcd9b74145de884d626bfa05d220bf319b9cc448f1535a821bd566f7ab29d20259028201001d0c558a9692862f2d2f7c7dd55170d0463dc15fd3b306fa5cd3e3ebcb0b7bb7c2db7d8bc234f3bd4dc0feec6d94644ea742b79d72defe242052e1a9a310187406c7dde9d41551fa223330bc14b62128632b8d45a2949e655af5585e3c13d2668ff471dc5100c62af2cd3ee91843a64fc937e9a7723321f36f828a230be8871ad3388012e49f1611892b5513129938b3b6694ac5725f2f219b95ff2eee35b6eaf9d13d4458d262b24136b5507cfce570a9fbd89f51d7546e8910d34112aae2c3b5b904bc8cafdf1e9c431dd9fe6a02916809c24a2d8d9dc969dc7407fb24e25515c7cd25e5388f412ce3a46f07c8bdb1d53ce69e6e3f52ebd8d46760906aaaa502820100498c601db857d9d3a101b2d328bd7eb9f13f5c438664a1046a600ba433ff41b7b36d3570fea5b32f6fcdd564fa84cac42499afa6956529cda036884c6331df7a531f586c88ea9d2c7db4daf65596b7ee7c9e30112eb5fb5d7e2b0aea0e32214e35440669e4c60ee74885ba11bc83fee7d1e9c04c4148a2873584ae4b4e2801490572a699486d7d939eb34225506d4d647b5cf99c05626db84ab97478bb0c94a106db54e15462b67182ea2b8acaa6bdaba22b3b6725d1d15409b993c3925de95cefa02f6d0acd3142376a8cb19dd40590b724e49b5d8b76ae8bffa4a1cd35013125e891617b9a2199d5cbce7538b931fc9e62f20a958424c1aa087301499e1097]\n\n# tcId = 36\n# ciphertext has low hamming weight\nct = 0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 841ba29bf0367671a06435acbd87d9362aa8a6674968041d63d0676de8e31f11a91914645868de92d15d873d7138fea4302a0405817d74b59d79cb141ea7ff43d41eccf801f46d6d8f9a4d7dd05e83f34b73ceed85c8f8dad3e903f6640dfe004f0862fec157c72b7ac82da45c51b17633e1f411c373c45e2d3967d853ac0fba8d8bd8765dac562cb9afb8f3c106177b5b8a233d2822fc9b68e44a915321bedf76384b7cecdb76d185f001ecfb8b8fbd8c31f58b1e226d7045927d97f5bf7ae151eea50fa417878512ec154d96d24b30ea1c9417d491064eee1a3ce925f822a74e41f48279\nresult = valid\n\n[d = 565f2a901c4bdda744700ecc8c911d4caf139d746c6fa14d9f8a1da61bc6ad66e38b2163917127eab80c1069a968d9afe003f6542967a3ec188e2530a091071638adc1e66084254154d1c19ceb16d824a979490d06ec4fda761c2c6985281987ca8eb80ab487eefe37a23b89591d1b83b1e424f276b4503e0301913bcfdd8125743c1ec6c91faaa44957f4b1c6bee44c628e7adbf398602dbca45014bd0dd016085778c23b4235cf6c45ce12aa454ee4d361e59379afda1eeb680df211cb94ec056ea2b17ff51dde5e41a8395dbf98e3378846c86e944e6acd7edf981ea59e9eaec2052cb7bec037676c6b3f291b1688cf0fa8e6a1469df83b4e808b9d2e902ea2397b30d36a8751bfedcd69aa7f3d43ac0c4efd4ca9b681ae5d73aac0dca6ba6d3e5153ae4b27c9cd0dcd60896764c45ad1754ec6929c60efe18d929d5205784afb294b539ecda0cbdff59cdd204311d7f4170956690c36535bbc5b989e379fe8c90a130210a783ba8cb4f11921924726bebaaadadf366c9207b60600df5224a2cde790ffa9dbc162ab28fb92e707f99007ac7b47b3c4a0da3a174cc057d1b1eaea8a466e36774ca53c3c4978c9a554ba159c6f3cbd22238a8e6dd54e28dcb676c9fdd9ae5248fb7a88f66569e04ab6e5b0d44f3b3fc7988184e88eb4516a3aea7dddeb0af0b88ea7de2a0bc098c6f63d3ed8add51bf52ee39188abc9835721]\n[e = 010001]\n[keysize = 4096]\n[n = 00c2ac9fa1ade448ae0f5dbfd29993e214de89af560f686825b07ee5901c6d49c8c54d70f49215f83bcc4178dede420a8dc7c65ee492921bd62aa653ae98193652fc85abaca9bb6e4925622974c6c301a8dec37e48122f0574e4a6a210b06153e976457cf3fcbf81460680602c6a0638a741d3e1746a3d0a03644d7aa9e0cab78f0056f111361b18e81d326788ff53f5138fca0669cb9e2a66edadcaeb7cc4f14dee08f8ed77a06e50428911255bfa3310cac46e2b9c0c770eac2602c88139a13edfbd04c8291eff82e02c4a166ed179b0ad824756836b0aa2ee101f0d6932ff0f842f0c91f2594abd84288edefa7fe304009a51e1b70f2e3d063fa733a6e2a6663967783dba66d34e0fce845b9eeb494e37652d5bc1d9c04b6e898592f169963754ce58aeb5aa0c0d419d6543ecb9076f8eea5a9afb68d248d787eadd85840394cd622bc81e3efcdc7da8e817815419e52074ff878d8aa3aa329bb23a3348f83d00ef4dc365d8833859b431c1b35e550c62411e993d62f2e099c1a6ec6f2f3473b97e8dd72c3c61cecb988061bba1e38cc1fd872641041e42ef70ac3b5213df616280d9c685cf50b8984fd72a492b9a99d5d4d1adb82650c2d342d87f29c653c6b4349bdfb33aa75b789af8ac88dbf13d2468062f2ec1995244b41373b687546a6b881519b0c29d438cc6d222354a0b2ba5c023eaf8a918c05f002e7264e485eb]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100c2ac9fa1ade448ae0f5dbfd29993e214de89af560f686825b07ee5901c6d49c8c54d70f49215f83bcc4178dede420a8dc7c65ee492921bd62aa653ae98193652fc85abaca9bb6e4925622974c6c301a8dec37e48122f0574e4a6a210b06153e976457cf3fcbf81460680602c6a0638a741d3e1746a3d0a03644d7aa9e0cab78f0056f111361b18e81d326788ff53f5138fca0669cb9e2a66edadcaeb7cc4f14dee08f8ed77a06e50428911255bfa3310cac46e2b9c0c770eac2602c88139a13edfbd04c8291eff82e02c4a166ed179b0ad824756836b0aa2ee101f0d6932ff0f842f0c91f2594abd84288edefa7fe304009a51e1b70f2e3d063fa733a6e2a6663967783dba66d34e0fce845b9eeb494e37652d5bc1d9c04b6e898592f169963754ce58aeb5aa0c0d419d6543ecb9076f8eea5a9afb68d248d787eadd85840394cd622bc81e3efcdc7da8e817815419e52074ff878d8aa3aa329bb23a3348f83d00ef4dc365d8833859b431c1b35e550c62411e993d62f2e099c1a6ec6f2f3473b97e8dd72c3c61cecb988061bba1e38cc1fd872641041e42ef70ac3b5213df616280d9c685cf50b8984fd72a492b9a99d5d4d1adb82650c2d342d87f29c653c6b4349bdfb33aa75b789af8ac88dbf13d2468062f2ec1995244b41373b687546a6b881519b0c29d438cc6d222354a0b2ba5c023eaf8a918c05f002e7264e485eb020301000102820200565f2a901c4bdda744700ecc8c911d4caf139d746c6fa14d9f8a1da61bc6ad66e38b2163917127eab80c1069a968d9afe003f6542967a3ec188e2530a091071638adc1e66084254154d1c19ceb16d824a979490d06ec4fda761c2c6985281987ca8eb80ab487eefe37a23b89591d1b83b1e424f276b4503e0301913bcfdd8125743c1ec6c91faaa44957f4b1c6bee44c628e7adbf398602dbca45014bd0dd016085778c23b4235cf6c45ce12aa454ee4d361e59379afda1eeb680df211cb94ec056ea2b17ff51dde5e41a8395dbf98e3378846c86e944e6acd7edf981ea59e9eaec2052cb7bec037676c6b3f291b1688cf0fa8e6a1469df83b4e808b9d2e902ea2397b30d36a8751bfedcd69aa7f3d43ac0c4efd4ca9b681ae5d73aac0dca6ba6d3e5153ae4b27c9cd0dcd60896764c45ad1754ec6929c60efe18d929d5205784afb294b539ecda0cbdff59cdd204311d7f4170956690c36535bbc5b989e379fe8c90a130210a783ba8cb4f11921924726bebaaadadf366c9207b60600df5224a2cde790ffa9dbc162ab28fb92e707f99007ac7b47b3c4a0da3a174cc057d1b1eaea8a466e36774ca53c3c4978c9a554ba159c6f3cbd22238a8e6dd54e28dcb676c9fdd9ae5248fb7a88f66569e04ab6e5b0d44f3b3fc7988184e88eb4516a3aea7dddeb0af0b88ea7de2a0bc098c6f63d3ed8add51bf52ee39188abc98357210282010100ec980e9a80b0ab244ca03e346e11a9c7bbfa135f2ddfccbf216eecfe03c2e769ef39e3c92237fdbccdeaa4b59f6d0a861ecf2c32a53", + "2fc48e4e22bc81c267771c74843f47a05c2554f77787b64d2aec57dcbfe8ba418d3710d56e0c4b3f27fe0355f62409715ef838866ce6c49c0eb3ae32e05cafeaf6270e9dbb6c1220eab995d96ffdca3a38c47dda3005ece5d66cc4b38c5198a5ab98b1ac0337cdf9961b94dce011b6c66224857d74c14c70088c5af3f25e5e1d3c2c1259ba2ddbe302c029913e21e4a9a296c4d6494e2b4dc7117436dbce0d93626be4b366e48dc056dfd3d2cd154fe776b205257c0e86fe44f440c0b9b39cae3d3933d50f423df9161910282010100d2a458fc7364c3a91f371101bacdd85ff840e04e0e24bac1e70013d47fb599cb780b6a01885ccb03e8d77d040ae5665830915e2d597fea3c60ad9ac60ae642d246c5ddf1b0e6850aa636d8a5452086c251c245a2afa43d07fa5484c3389fbed6ccdfdd095371461805d9cd5207f625baa1b3ddef80a2b397e8d762637fdce687b6dfa76a34434325690dfcd4bff02963698664ae71fac9126225a6ab073ab8bc316e789f9d413b70fa566c2188cbf96dd0d424206eb3d56058085105d513bd5d4273c524691806257133b904c51859837005a70fbd7831b281adf1c47630f30a3de81a200f19da493032369e2d6c5bd0be2be6ef68a7ad3c0e911b405eedb1bb02820101008c00aadb987d72b8873367bbe4ca44fa716cd91bc06ca79f0e6cb286d9b8f2f187e36cbc6fa84c58f64cfc6c914b9827a78196b8dd72df414f57daea8e65e0d68e43601b023df8323d55081194a6eb4ee852d76cd08cf449f8c7c937fcf7e9ddc6178c6f86382fc458e9e50ac556089c8f2483bf0c98c21ae8f7e01c474801193efd84a88e98d00112d14afdcf060c37a5e79112bd0154bc50f71d40ae9bf7ed0c7273cb4388e88e8094616c061a75d4ed0fe4203552f6f30e8b1b8435f0118af4048510c1ba99fa818d9c60ceff875869c93d349cb46396c5b10eefc46ade1c35a018bb3fdd70a1eeb808ea42940aa7ccaced8cf4577eb2a95d072b57379351028201007a769e5db760fff8557398699f078a22d19c364c6b20a38b9417916fdc07e2b04ecca406dc16c6d931080760d04ceaa19f2b04cbecdad77ddedf4fba901faafdc1b3cc03764baf51afacf76baeb2e866154e9359b03016638b00946743866c5749a96542c4c678700306cbbe436eb224bd5a6b4f91440691ed073be689320ebd1c6f0f5049ae495d78a46f37e9976118b1033789cc2e77b43e67916ca1b95c29ddbb5259c9fd60e7a0439a7e2ca01a15e47151c7a154e05b311334b7e557a2a293bde701f22fcb72fd4b8ae7e106f513db8f0dbfb2f22c4291ee653f494fd01d463ca8e3b6a3db2aede063acb6cfe6d98796d29ea203ca4dbe5252bbabf5197d028201005acae8ff09978268b24cc4fa85087008e3855edc4314b3d84e129a84ffed2c0e56d09354b67cfa425bf0370a2fff8548259efe2572432e329fa059bbbcea40e4ea0ae095051cdfd853f1f2980ac3a8bb1e36f31fdd406e7e4f8e43706170896bcdf8c49d6ab57b319bd1d8714d16e03391a2c99320d431fe55d658251d9880eecd50ab55153fb5fcb64e059c31c1210d0b7329ffbfb5010acbc29c73b64e737433a31b3bdc11873278fdb06f4f3a438fa42ce24bd95315034c7dd41b349e71dcdd920269425a6db57857b9bbd0f9bb0c61acc6ec5e9e96a506016c9c75b847ce502fa9021f3a84d9d8d8616e660b0c7e3aa708fa2b1e3473bb9cb4ffd1f3c9ed]\n\n# tcId = 37\n# ciphertext has high hamming weight\nct = 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = 9ac7b1fdccc1cd7542940a84e7aa9fce00054e48a4e86db61f306e954740ef7ab6e1cd81c518535709dc9200b5f781c468241309ef177f6523e128b5ba12461b9fe91345d4f9963ae17695d5328a75528c70d9e29acdc77947d60953e4ef59feeca7e7a11978324900696d75c5d382ae4c21e3b1a775473e6c9238408b9bf5a824e8cc4c2bd003e7a0d412301fed070025da16d91f7182d0acaf055fa949ca684627777fb97e7cd3fedbbee1d2d697e4bdbe06d36ec9853004e28e6e9d367aa66d9d14c873663ea3ccd11e5faa8ed386e071331df878f4e0aae5dd335b177c796a5bea0ed5291615ac3483877d02798b05143b0129e3de3d478c08eac6c2e591958779318603400cc6c03eb0579f2e6d888bf9f1732039fe118e6e4888bc29868f80675d63bfe776248484670d79760aa60cb0267adccbfcd679f786f05566c7b4006bcdade15773d8aa94f289468c7c7dcbf82b61693afda5204c401b324746251088a3849d5b16beb20da444f4b3d814cbd590a0875bc026b085a09d8680617c94a297cb2ffaa50e7a6d1938ae61b670ce20301b263b582cfe84e679a986d6014534c045\nresult = valid\n\n[d = 7cbd4ab5032ed8e595269836e2a0f49ae861c8a5f8587fdb68d4dccb9315b1d60c0c29007d693624777a7025af2d4dbb75c43521be0d03dc9588dafc94078646d41c2f7d02a56006667062728a485cd72100da38fd70ff7e109e8b195b18ff2d992ac0f2bca49f882e2423f3cf0205aa6d951363a72ba242b4c14b5c5513104790030be71f412309fd01b8b81521d268914e6a144a5263c6bd7b447e56de174ef82ad0dd8866d94c659c5c6801f88fca673134c53a5969989a3d799e7bf18b93288f681012434eb508c13633b710640fd6ab4f06578f76d9fb895789beb1cd7fbea38f862d2a83c0f3608127e4a90c8736e35ea39f9de191d2006dc4b91ebadef01875e2bcb189fb8523e7e98f255f290daaa8e758febdd0158b7cc971322bfccd6c48cba818b503e2dfcab7f0de4dc062fdd46a8c7c9499b531a4d54b38da886d55de5b9b1192dc42d0693d8c84987aab575ac4745ceeec4ebbd7bb6869b9d690ba365d8812e313b8824d6ca3948e60007c8e93560f06c40b51cefef996114c75b72c43323f6253c1f54741745c17f7f21e3a231ca0675f643de88303a5ab27e77fb636e9896a818bbdd6dd3179f16297c809d14904b639db69db65751b6656e9c4cea8220bf448cd4401ec7ad9b5b7eb4bd0be5e6772d2fe8d712dfb610c774c28ed87081d9ee1a7793098dc5abd5911fc573cabe53e55c77d92d3fa8439b1]\n[e = 010001]\n[keysize = 4096]\n[n = 00c5da1db76918c3c30c0a11fd346bb9dd262d0c91cda4efd8e5a3952a0324943310703f6c5595e3c539ab40c0822d7e939d95e2bb3114afd8025d0029ed27406b39a1e8df67bfd441c9edc71abd2c303fba5c396ee1dec8d24eb396339faf12d1ecbbcad34ba6d5263b4b7869bde0e3aea881eada374609f0a4163b1ac964c1b199f918f37c54a5bdeabf38e800ce0a8f54591d7704001cb4999764466110800f29eff5a498b6c24155438091b675ea3f2712e72080dcb0bd111e834fb47655b7338ed224751e9e736c28e8f06cf8778107a8a6b3027bb7ddc3d5e9c07557fc7d8ceab4d69f8b214c6e51344032dc30a6765dc01762575ab26bc829b771065366201ba5ce5998a53475b8b89a424727f2384857b5851661fe70677f42fb4fbd31a5a7f5151c992e881ef90a26b7e5fd2d3a9113474d1396150c3bfddc0d771488ea42995a0679c2b5f1bd8a57e944558bca4c2ae20ba64181aef36ef69a31b0f54b109cde79df9edd7e556a8e04cd3edce099ff009e190030fd1dd038fb009ebc4df55ed16b0f121bb937f074153442509bf76059c47a9278e40a1b046cd9e0846ee6d80f0ebd3595f76fbf638a1907284708e5603dc4119cbb473143c27baa79a1add6416550dbe84aabb206ab581fcae7626d0b1f3cbed88f8b0194fa7549d76d9b81901833d0d7cccd9fd948e0d6c0513be8d17af61f95550d911ffa99ea19]\n[privateKeyPkcs8 = 30820941020100300d06092a864886f70d01010105000482092b308209270201000282020100c5da1db76918c3c30c0a11fd346bb9dd262d0c91cda4efd8e5a3952a0324943310703f6c5595e3c539ab40c0822d7e939d95e2bb3114afd8025d0029ed27406b39a1e8df67bfd441c9edc71abd2c303fba5c396ee1dec8d24eb396339faf12d1ecbbcad34ba6d5263b4b7869bde0e3aea881eada374609f0a4163b1ac964c1b199f918f37c54a5bdeabf38e800ce0a8f54591d7704001cb4999764466110800f29eff5a498b6c24155438091b675ea3f2712e72080dcb0bd111e834fb47655b7338ed224751e9e736c28e8f06cf8778107a8a6b3027bb7ddc3d5e9c07557fc7d8ceab4d69f8b214c6e51344032dc30a6765dc01762575ab26bc829b771065366201ba5ce5998a53475b8b89a424727f2384857b5851661fe70677f42fb4fbd31a5a7f5151c992e881ef90a26b7e5fd2d3a9113474d1396150c3bfddc0d771488ea42995a0679c2b5f1bd8a57e944558bca4c2ae20ba64181aef36ef69a31b0f54b109cde79df9edd7e556a8e04cd3edce099ff009e190030fd1dd038fb009ebc4df55ed16b0f121bb937f074153442509bf76059c47a9278e40a1b046cd9e0846ee6d80f0ebd3595f76fbf638a1907284708e5603dc4119cbb473143c27baa79a1add6416550dbe84aabb206ab581fcae7626d0b1f3cbed88f8b0194fa7549d76d9b81901833d0d7cccd9fd948e0d6c0513be8d17af61f95550d911ffa99ea190203010001028202007cbd4ab5032ed8e595269836e2a0f49ae861c8a5f8587fdb68d4dccb9315b1d60c0c29007d693624777a7025af2d4dbb75c43521be0d03dc9588dafc94078646d41c2f7d02a56006667062728a485cd72100da38fd70ff7e109e8b195b18ff2d992ac0f2bca49f882e2423f3cf0205aa6d951363a72ba242b4c14b5c5513104790030be71f412309fd01b8b81521d268914e6a144a5263c6bd7b447e56de174ef82ad0dd8866d94c659c5c6801f88fca673134c53a5969989a3d799e7bf18b93288f681012434eb508c13633b710640fd6ab4f06578f76d9fb895789beb1cd7fbea38f862d2a83c0f3608127e4a90c8736e35ea39f9de191d2006dc4b91ebadef01875e2bcb18", + "9fb8523e7e98f255f290daaa8e758febdd0158b7cc971322bfccd6c48cba818b503e2dfcab7f0de4dc062fdd46a8c7c9499b531a4d54b38da886d55de5b9b1192dc42d0693d8c84987aab575ac4745ceeec4ebbd7bb6869b9d690ba365d8812e313b8824d6ca3948e60007c8e93560f06c40b51cefef996114c75b72c43323f6253c1f54741745c17f7f21e3a231ca0675f643de88303a5ab27e77fb636e9896a818bbdd6dd3179f16297c809d14904b639db69db65751b6656e9c4cea8220bf448cd4401ec7ad9b5b7eb4bd0be5e6772d2fe8d712dfb610c774c28ed87081d9ee1a7793098dc5abd5911fc573cabe53e55c77d92d3fa8439b10282010100f9acfd303aa2f355d07c3cc2ec20c60b821313c880c1c075c4743dccac3e1ddc39465ea9144b3381b7386a3283e5f0ed89e42b0fa8399240a898c877b7a3b43397fda798286ccddb03f070c0db25365a4ce2605ac514dbcec85561078b455a5b9aa1f97a0f4e43bf8c5af0be790c91d22091ce9662e4efaa3e3680681b3b0dafb54961c85ea7abfce464c69ebff813532436ffe6d2f9dd48f1eed42e2f4b5d3c0cd693d468d9579db6e2d6f08dfe554ce91ec235554c05d1621ccf1521b892c78167b0928f19b4bd03bc5fca49f0f8da512b1f6d025644225d6bee5a81af8dae91f35edf877724fb418250bb1258ed516ccd575d025d188e5e541426acefa5cd0282010100cadd1417db49e3dff3b5549b6c7c6076100a8fa18aa3ee4fe13473730ffafe9c7c4760e11049e26fd3646c4890f8a70cd98f3a28c7f4a4be146c61f6d372dfa732c4c0481e8a5ec58b1b128d4f926fa950d75c81a498ff63469fff3ad96f56aaac9df447564fbc8272bcbc72208db11bee80a07bbfaf08198a329b2b58a4b164c79682112af849b4c25e1e825e66bd611e6bbc5a96ecb7a45d81d12802a1a24b7ba90c48c696c614512ef8a69497885f969397985b28517e0d92d9b0619f63e377ca3b0a36770da9b266801fd69b1320d52423c08dc97b68b8f30e6c92a9fddb4be25d56a315a8ff54ac834dd6f2382e812b08a10df3a685dbe1f346fa08c97d028201003c374a811d433ba8d0b585fa04f50a8eaffa65e50f98ab103c2744d85e1a451d5dfae8cda2855890ca5da2cf381c76f4f332c267ee4ca4474fe239471655371ad2676cca37c5b6084274f4dcae7dd5140642fab6299e143d54f7b2851d43c6bd1d183f90feac038ee90cedcf2266b3ac980a5266d6c71c3e54eed41d47a400730628029b4ea8e5c4025983c5b9cadcee4a67b1643c31e2fabacebd01be8a509c31047776dd2abe04dd9cebf5ec6910ad91f3c72711c15a0ddbb9d2ffe7b81a3e5fa9605e9880bca47188371a14a7377d7fe2049c47da0268bf5b4e8b2987eb85d4d17b6a31c3bc79949d175766df67ad21ae8c89740e7be3aa4060f3caf5a969028201003779d1bedc670e7bf5e786a5a23b391dd031332a1801d06fe3c43636270e9a862cae505dfbd858a600071c5d93d78bc745cf973603c8712cd1e4f9bd4801c80baf2482f8b5f15d0d648718c1b01af99231db531ed8e64620ddf56f14a6d57dbbdaccaf3abaedbf3d65271bd991f16d9797d7710ba655b53f56bd94157c7e3d4cb41002adb33486e379abc7681b6cb9294fea626ddb8c0c845455e5dead298a7a5decd2c12c1d9b397f21fb3982b515c41e276a736daa4eeecbc376e87729e165192322961e62dc47a5d3c601eeec2584fb04910a5d3bd615c34e2489a869f853fa228327e81d4a43d8e1fc5e5303963d91713540e5d1d59e118d6ebbe0307af9028201000e5c6830b6ddd705393a4dfd1c3d6180930d6ec32848fb036ff229840a57c1142202b6b6f2815bee2acf3d18df2879fdd00262b4936661c46d5cbc16e56b0bf8f3ebee3998a8241bdd9504c35146ca75693c1abbd4d3a282016fbcf690c74d2dddbaed75f4447ea1f26796a7a8f3100a55fa45b45a36a60bb2ed5b0de1bd8395a5069101513e46be0a7be89cc2dff04a628c526d1a5d9c0824b47eaa13058806b491f9ddd8d7c14475064898a80bc74e4f55c611c44e381769727f09a86799fa5ac526e08a63015ca600be4fc365f13b2283514cebe973e950f75c86026427bf1e1d15a69fdca652f99685c71dc45f1f16ccbaabef5b6ab9e14487e1f7c746f4]\n\n# tcId = 38\n# ciphertext has high hamming weight\nct = 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = e551665cd3ec3c2875c2e0c491d03cc3c339ffda64f125479d2f9b64cadb3dd7074fa57a4eaef4143f207fa1e28c7d4478f9743d9a0fc5b14d53435a5cf0118cf34b15950b6169851f6a92034d46f1521634eab158dc97ccd47b21eb8532579a99fc4dfc6bc8dfef35f04386fe8e4b59bdb3f5d1ea32e5e9856848edf534ac8f7ac13cf318808e918397e58e444622c51c31bee51df1a7686906139f9fa6f54582e3640c70d92a2d44f6b43baafb13e5ce75c7a97036c874\nresult = valid\n\n[d = 00a1f7f1c3490fe28474b470bb42f379fb8433a38a817f992788a0d3ea2a8745ab93704249b0e1b08833c2c4fe4b2098344fc494bb4bc4747cfcb049d5e9499cd2b707e12758d760c019c6a3130c28053f924d7bf1ff22ae1be868e0f925d4fd80cc7661b2fb5d8b80f69dbb63786297ff35ce8fbd86346ec27ddccef22d849da88b69cfd739f3b8d2844020aa88f1e835b63f5d85e14b86a5a23c1b85a1e43ff6ad4111bbc728f42a8c456f51b62a64f6760df63c251161189800bf33b9d49dcd463c1aadd75a85401ea00f2da805a4ff9507f401e2a3c0b78354bb495becc42f87ef7a319f222837ebb1b04571355ba0fa8d4000061e2facf0e586b22357ed8c268efebc5f541146e2caf799028ff21075014d071baa55d57bf275138ccdb4a18361f98a3ad31e5dd1121ca6ccf97d1337204fcf228d2dbb263a2bf3346c10d5b8d4213725f69849321b2e65663000c9b4d32c69a90eeffc0543a2f0b4cf32a71a2ad9abe26153072ac8dc530c9b80509c052d49d337804c66ac561e4f02039e1c58adc0625a5d35284190e45e6a5cbec73d972fab1ee8e63b7fbe3a047060f6b602d45fb3f3d7b4d870d172eadeb2f906d72e068d1cd14eedad529a6bb7e2b6329fdbe8cc8568ba3d70349def4cda8754cdf489975103c753209884e80eeb62148ab0d607ea4f0f4c464cdcf4b767200ca06e9849d5cfb65100f8bd2a6ad911]\n[e = 010001]\n[keysize = 4096]\n[n = 00aeff142dba2405fe8fd14b7c0924fba1c27697785c7c64f2a9a4e0330b0e16a67090bb8fe2e072293132672ae356c283499d9dd557ac5611718f1b61f7e0c2dd6ae578b0f5ecbeb10c1b6fa2e0d3066bf49c0300b25b3304baa0efff1556be31e4aa53b000beb9083d1b0b52faef9143c74d6ab338f998f7abed50c844800afea995be96a4381797cb79d0045cbb6c742c150ce09ee5195a3e73bf48968eb519bdb484b594df753fa30435d091b477e570f29b10d61d6ab0f0a290d8759923a7410216b6c04c8f6fc7d1aaf544b69ca1cd19a7e72dae0de843c7c75667a0b899cee32f0b86f9b127b6a3c02f23b53393129abae249fbf4bc80694e26d1ba5e1218e214cf4c61480506450598170b5a573a50430eb649e7b7655b2c83aad6e597eb50cdd8cd5a0691f9833a6059c6cbadf8e6698747ebc65f4bef5b7d4478a245ad7c39fdd13c4ea2919b679a65bf6dd5f92ae14b4b56dc3b46e6098004dd4731d7e19a544bf4a6c5a99337bea5dfc66df55dc5361d6b6c3c91a8ebf7cccbe0868ac29cf144605ec30d9de8ea6bd4b0df8a129d659b97e765588da2c707fb01372ee406986e886532bb98ce8331422449fcd505998871834af577815322914e614357611e6cf4a5c7846104b74ece45cbc6e156060e91b616fc601a203aae4be0ac08614f8bbe5f72a123f8ca2224b36213803b88a1a52413b2c37407cbf474b3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100aeff142dba2405fe8fd14b7c0924fba1c27697785c7c64f2a9a4e0330b0e16a67090bb8fe2e072293132672ae356c283499d9dd557ac5611718f1b61f7e0c2dd6ae578b0f5ecbeb10c1b6fa2e0d3066bf49c0300b25b3304baa0efff1556be31e4aa53b000beb9083d1b0b52faef9143c74d6ab338f998f7abed50c844800afea995be96a4381797cb79d0045cbb6c742c150ce09ee5195a3e73bf48968eb519bdb484b594df753fa30435d091b477e570f29b10d61d6ab0f0a290d8759923a7410216b6c04c8f6fc7d1aaf544b69ca1cd19a7e72dae0de843c7c75667a0b899cee32f0b86f9b127b6a3c02f23b53393129abae249fbf4bc80694e26d1ba5e1218e214cf4c61480506450598170b5a573a50430eb649e7b7655b2c83aad6e597eb50cdd8cd5a0691f9833a6059c6cbadf8e6698747ebc65f4bef5b7d4478a245ad7c39fdd13c4ea2919b679a65bf6dd5f92ae14b4b56dc3b46e6098004dd4731d7e19a544bf4a6c5a99337bea5dfc66df55dc5361d6b6c3c91a8ebf7cccbe0868ac29cf144605ec30d9de8ea6bd4b0df8a129d659b97e765588da2c707fb01372ee406986e886532bb98ce8331422449fcd505998871834af577815322914e614357611e6cf4a5c7846104b74ece45cbc6e156060e91b616fc601a203aae4be0ac08614f8bbe5f72a123f8ca2224b36213803b88a1a52413b2c37407cbf474b302030100010282020100a1f7f1c3490fe28474b470bb42f379fb8433a38a817f992788a0d3ea2a8745ab93704249b0e1b08833c2c4fe4b2098344fc494bb4bc4747cfcb049d5e9499cd2b707e12758d760c019c6a3130c28053f924d7bf1ff22ae1be868e0f925d4fd80cc7661b2fb5d8b80f69dbb63786297ff35ce8fbd86346ec27ddccef22d849da88b69cfd739f3b8d2844020aa88f1e835b63f5d85e14b86a5a23c1b85a1e43ff6ad4111bbc728f42a8c456f51b62a64f6760df63c251161189800bf33b9d49", + "dcd463c1aadd75a85401ea00f2da805a4ff9507f401e2a3c0b78354bb495becc42f87ef7a319f222837ebb1b04571355ba0fa8d4000061e2facf0e586b22357ed8c268efebc5f541146e2caf799028ff21075014d071baa55d57bf275138ccdb4a18361f98a3ad31e5dd1121ca6ccf97d1337204fcf228d2dbb263a2bf3346c10d5b8d4213725f69849321b2e65663000c9b4d32c69a90eeffc0543a2f0b4cf32a71a2ad9abe26153072ac8dc530c9b80509c052d49d337804c66ac561e4f02039e1c58adc0625a5d35284190e45e6a5cbec73d972fab1ee8e63b7fbe3a047060f6b602d45fb3f3d7b4d870d172eadeb2f906d72e068d1cd14eedad529a6bb7e2b6329fdbe8cc8568ba3d70349def4cda8754cdf489975103c753209884e80eeb62148ab0d607ea4f0f4c464cdcf4b767200ca06e9849d5cfb65100f8bd2a6ad9110282010100d93f98477fccaf6abee57fedd3e87c85ea377fc01c1a54205ab5a6c67ad8b0fe1b76b68886cdd24489537b4c578c82f54393e38f1336ddc9e229c17a26ab44e9a1da52ff3fba41c10b4476e470f71f3f268a6ea36f68219faae44d6e6014ad3b645c1d2f1fb957689f4697b537fd9418afe3ba0c6a040484433a81049410a566987fd83dfccbacc2f921832162e123016fe5ff556610748b3102ccbdba7aee4735c487f533815c6bf8046c99e0b6bd58d727e52ca1d3c87d51c985d4eb4384a21d7687d390f1a148e97c7f57a15df2c5f74200340d2a003afc8134862fb1204730db9be70112b3bf8d604e0ae7188c3a0be37b46028a8dc087e79e25f7aee53d0282010100ce3617d5b50763520d05d209885235454d26e482e3d126db585e90a4fad83972f9d47b858062f52b88b736a34457cd1ca9ba0b9d5298172f0908fdefc4c37dfbe81275b271d0635508f578fe30967a1e919cbcb6227a5a0872a3d8de0bdcd61170fd4a1128d5591a1d3b59c490c67fa216e27574072e6e997e545dc123460966535a03898e746d992e4fc65d648e51b49732863001113a28bea84ff90034de885329a162d15588ebd5d026e95b0117a68c6870c407b2ba8248d4a1a8b6c43e74f086245ec947e5babc82a66b3311d4a5927d2b776b781f80a87bd8923fe9cd1584be538a150591b64999ea05a984c9ff791007a408d96f51ce30c8d0b4d8c0af0282010025d978946c65a2e23c240be7c995a5ac47242833b631b81a72f356fd19860b401a54d27472d8051c3fb8b5b095483bc0b3675eac1cb2e06d3de3fc7b65a54d3a4f2294773809214f9ac0f0ddd7f8960f108de9bcbbba2eb17cba8deafefe5b380fc224ab83216d6322eccf9d9905aaf9aa1b48dcc4d3b25dc0c0be9da79646dadb12daffe1bd327a3da163113c02f1705ca87b95cb546e99998e5d5168dde609ae0a718d7ccdbae66cad88a63e8a57eed47d74e613c3ac1879595ce1bda363c642cfd5d63c587cbb1142c984e0ee574fba465b76b61c6d31d9b0411067daba3eecfa35ed473894ec789b20bdb1898b54c9a17666ba269d8fbf9dd0e5d8833619028201010080a4e467b120e3c84b51873fe5288c0d28dd8b8f507aa9880b702b42912f155ff215a9dd9643a5f9bbb7b8c150208a584856456aa71d34d1660c9306e2b4a6c2e17baaab612f84d886d744dd2708a934aad8a22dea02746a72c25ec7df94ac8382feb11755670bc82bd65be13204739976375ed8bca62ddf5a1d5dc3e0b28fa8a3753361bc5a4c095507f5934be93175bd218aef25ab4ea21e973814fa19017f008aa720d3c14dc2fac7798ef8f40c821d74066d74f3fe40cb18c3a55227c96300ae5ec03747c03ca7dfc5dc78a6b6077904d77a0fb487caa6d1644190d7d5d687d288a14b0e076236366bf58e54c603b7cdd5467332daaca93a6bfd2fe54d07028201001fa8f5ea9dc0f23253932e4ebff1dcb80daad253b62e8aa28817e75714a53f81ba14bb6b7c8186f95645af34fbafe8453643dd48d20d3a31aa8643bbf56df2a5c4094560e095c94e2e3de3ac75deb3d105702a038f5c33354c9a2ea2e1a1f6bdaa7f7e9f4d5dcf09f0720745580cc0e6c185a838540b8e0570169d81e20cc86b7bdb5cd2e5b02d1b19855ff36a3f05c357aa7f5b32c83af0f219f164c690cd7adcf6c65cd6dc2907645deee325f323ff37ac392670a1bffb018187c0c81792524fb247e0369f24a4c66c5266737876450baaa25d44ed7cb0143bd8f9380d81f12e82b5f091bc6b7e0b7c8ab15e1d4235d904efb93d8647daf09992af7dba21f3]\n\n# tcId = 39\n# ciphertext mod p,q has high hamming weight\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = d5cbc86bec333d49976838d2377518e5666152c0aaa3e342dd24a32a518566fdfc6f1fbdf131ce9d4c5e131b56d64b7125f9d2372848b2d71dc69862f3941e9cefbb2729acd2eb1ecad8ddc7206c19fe63e9f51dffad75802c54f04197ad3b31c948ab544176012568dbdedf84d5b09ebba4c325c59868ec437fae4b1ab06dbd0c07f1710a8a6819e47d9f24959c6a771a8e4358b955f3a5586428f08accdc7ec30e43138bceaa37f886bf9d951da73ac3a64e26730b47768fa3ab22f8f48104dbde123e988ed51ffe28bc431d8fe44ac662235d4b40acec398ea57846211ed40e7264a691f7bc9deeccc5e7075c0a8d6f59679007c228b940b5dc42d916ac4486995adada8432e3e865c83e31e9215f98719498358ac2fbea930d501ddbde9d496e7aa8b8b1e708f426bddb4cee6e14c7b0c0cbc5cc29faa15af73a0f63185a7d9fb5b06c4bebbf023373d75f41b0c3350381806a79c95c773c70e46ce6212ec1aa3d9a7c433da6fa0f387d57448f4a48fbe7488b9170f29f6aad9d2c1826b6dfb52f94f9f21e60cec9719506656151e12af61bce9319da5a6074dc898b0750304a1cf400ca91fdb361\nresult = valid\n\n[d = 6ebd0fa2c074df0824b69a198bb2f9e1fa32798420d14a86d3d68ced4050ed72d6cd4f793f83e29c0736f1cd0c1dd2cc1d5e9ad7814862db37022e40484523bbfde38dc358696ed02abb59e776783825bc89192de9e7e4aad77102bf11df9ee5ee352d542713b413e0915e08d79ab5d0dd46d0ec8d345bb290dcb44f85a948e9d0b1e663fe3ab96773019ecaff144d6211c65fba5baef14a73cd4a260c9926bac6b3a1fcb193343a02866906db3e9880a7c84b79ede6ff1581d952a5347bfa20519ade6b9d4110a2c196b1046ba74c54b4467d89dba3cec0630685af081237a486a2b1c78371322e3c95c643df7bfb7468399a07b53a2e01b8b0f5ea7ea795a8e5c991d1b9de7852cf22f9c9d33b0c42865097913c68281bd038034deef9282c5af543e81a10b15fa853e8c3ec823b74fcc9af132e477a19883829da6202360d7a8945bea5638cdcfcf7afbe2f31cc018955aada8859c319fa512827f0c131bedec20a53f6d857203e065097b5684e2199baaa3090b0b67e6e5a0c9e140f6a4ccb6261d5fd718896a8d2ac056efd9d6e8798d6e2efcd308d5a718364fa9110489f8feac6bb9ab617a22b46e666efd218e2c8863a600d405f459b6e45b191c3a7ec0f3caf2922f667840ff4dbf46531b2d31046db1e9bf22bb7d4572a6aeb5b0a99a2dd8ae60ab7b5860e92afd05f4c3ad54ef392d54eacba55c0b735c8588601]\n[e = 010001]\n[keysize = 4096]\n[n = 00b2e57c7093f6b53733a2e6cf52035dfafa38f7e9f41ec3ed020da2a153a39a0c3e65ea21b7631c9f96b5ff85363cac835bb1cd8e2fc1a10371d2b3075c780610ab70187a354a3490239ce15fdeaddaeeb6bdda48698be138f88d849ea5ad6a19a08e5593cabd47fc7ed8c40a3bb1886d9163b15e575771470210b12c08a340e3f107aaec3074aa0a7a53d038bac87f2820f7e1b6f8f0c915491913c28dda4275e993506bf4971508acdb5f24ba6b0c433ece98fa5ac6475c70c59e8ee98adecf27e6dc0be30070e7879b5a626bce12739c3709bed56d9041bd81bf0344699be24e17ade0bbc05365024c0bac08474010c89b8096bceb7948fd8b127fa674be886f9c6b3f9b9c2529aebfe51e189c7be12f75c4ff4bd0a19405f292764d6662038693193aaa61253875d9c375850b3f2d9e0bc03723cc7fe73fe595884d9a34aa0b8dd82e51cc8593d8f186251bc0093c7217585e88c7b49a2d5bc42e087526eb333e7a0dbf96c0722e8bfe125150b762de71dfe6e12ee90fb31f106fe31e850b7555331056f1761c2a610b4eed362a0aa80589bf612e88153677e41a4e4549fe209fb63ab600ce3597c3ddb93194bff8ef400fa158068a93ca6f19a87d7ef76a76559013ba56c51ab6b5f8ab10f58bf17fb0f5602e38acecd789ecf2a3601220d4e1e180903db354f7d9a1216dfa76eff58449c4d885049dfefaa41afe04d733]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100b2e57c7093f6b53733a2e6cf52035dfafa38f7e9f41ec3ed020da2a153a39a0c3e65ea21b7631c9f96b5ff85363cac835bb1cd8e2fc1a10371d2b3075c780610ab70187a354a3490239ce15fdeaddaeeb6bdda48698be138f88d849ea5ad6a19a08e5593cabd47fc7ed8c40a3bb1886d9163b15e575771470210b12c08a340e3f107aaec3074aa0a7a53d038bac87f2820f7e1b6f8f0c915491913c28dda4275e993506bf4971508acdb5f24ba6b0c433ece98fa5ac6475c70c59e8ee98adecf27e6dc0be30070e7879b5a626bce12739c3709bed56d9041bd81bf0344699be24e17ade0bbc05365024c0bac08474010c89b8096bceb7948fd8b127fa674be886f9c6b3f9b9c2529aebfe51e189c7be12f75c4ff4bd0a19405f292764d6662038693193aaa61253875d9c375850b3f2d9e0bc03723cc7fe73fe595884d9a34aa0b8dd82e51cc8593d8f186251bc0093c7217585e88c7b49a2d5bc42e087526eb333e7a0dbf96c0722e8bfe125150b762de71dfe6e12ee90fb31f106fe31e850b7555331056f1761c2a610", + "b4eed362a0aa80589bf612e88153677e41a4e4549fe209fb63ab600ce3597c3ddb93194bff8ef400fa158068a93ca6f19a87d7ef76a76559013ba56c51ab6b5f8ab10f58bf17fb0f5602e38acecd789ecf2a3601220d4e1e180903db354f7d9a1216dfa76eff58449c4d885049dfefaa41afe04d7330203010001028202006ebd0fa2c074df0824b69a198bb2f9e1fa32798420d14a86d3d68ced4050ed72d6cd4f793f83e29c0736f1cd0c1dd2cc1d5e9ad7814862db37022e40484523bbfde38dc358696ed02abb59e776783825bc89192de9e7e4aad77102bf11df9ee5ee352d542713b413e0915e08d79ab5d0dd46d0ec8d345bb290dcb44f85a948e9d0b1e663fe3ab96773019ecaff144d6211c65fba5baef14a73cd4a260c9926bac6b3a1fcb193343a02866906db3e9880a7c84b79ede6ff1581d952a5347bfa20519ade6b9d4110a2c196b1046ba74c54b4467d89dba3cec0630685af081237a486a2b1c78371322e3c95c643df7bfb7468399a07b53a2e01b8b0f5ea7ea795a8e5c991d1b9de7852cf22f9c9d33b0c42865097913c68281bd038034deef9282c5af543e81a10b15fa853e8c3ec823b74fcc9af132e477a19883829da6202360d7a8945bea5638cdcfcf7afbe2f31cc018955aada8859c319fa512827f0c131bedec20a53f6d857203e065097b5684e2199baaa3090b0b67e6e5a0c9e140f6a4ccb6261d5fd718896a8d2ac056efd9d6e8798d6e2efcd308d5a718364fa9110489f8feac6bb9ab617a22b46e666efd218e2c8863a600d405f459b6e45b191c3a7ec0f3caf2922f667840ff4dbf46531b2d31046db1e9bf22bb7d4572a6aeb5b0a99a2dd8ae60ab7b5860e92afd05f4c3ad54ef392d54eacba55c0b735c85886010282010100e2d07881b8b49b0cd377f262359de15c54831d2a8064bc14ba26b9a22e55f2d0e132cda48d9a0c522d27ab7d4bcf1df17e07e7a5a5842f7942021566ae142e7ee753b2f9367d1a20cfa77c804675dce9f3c3b4657ea6290f77556095e166ebba327a61819873903352f9c4233bafeb163edb7ccd6275addf1f8b1b24d629a27bb02ddeb831105e3e2d2a20cbc0ff8671a55c0970010520a4cb1c7df22429e2fe9382a0443e26a6263dab44f294da1600d62547750ac294628bc24dee2de756764252d5cb70618c38914090b721adadf00b44a550ddc2886120b93871dd5498b4b6d2db34b39d80d7106bceaa2ee3489f31010398ff090da46da741262f2f13530282010100c9ea8b2129d4ff9433bdd20a81fc55c6b8322052acab1f940ae6bb75dade01d10ad64811b53b5696759a68ff016983ae919c47da5b6eadd12d2e40c2495ecc5e06595797131e3c24acc64c24c39eea044fd636c6c9e3ae73dbc43d92d898fe5bdc28f4502be7fc0ad3db3bd0742ed5d41efadfd2b31106cb2cfe41c639a664e1ebba5a9a155fd17e0fef73aca69da5b11c0f22229af94a98e34fe70cc3d72e7f395bd252e9bba76a049c193eacbe57ba46a1aa9f4345ace9ac27e653469c16b86ed42d71ccbf0e832c06565c2ca935f27b51d8f2db995317e4a750b4a8392ca67f34494d33c653819a77829c95acbbc17c9d10bfb587ddad2bc8ee32c0e990a10282010100bda3460e57eb9173d0df89e5f9244f078e95ad6e1ab99ed3c9ac952af788df232c16f8ff6b717079c8cd5141ca7f9a6e8e4c77aef4cba791bfd1d428ecc56cf6a7dd4057c3ea274d65b188940bd581e68dec844913f243846de711815f5b591e6e140ab07b51ac306d60ed4ff418aafb0785263ce6e4b38249725a389b636639fa5cefc99b242f57d71551246af27a6b4cb1be264a8409fe1ee06ca167012a8c65b322e2cc002e8ceca4e559d980da42cac9928c5679c7ecf923755afe405cf7358ee2b85cf702714d68e95664af3d2de58df896bb436a19a36d99b7023238176880b5ccc39c9ddbb31c20480439fe3f338ec07e4c463a84cf35b77000a5608702820100745d480b37b97a0566004a3126124f38b3e4a77e1de68ccf5bacf772074d948c6d8b6a835207bd71fe9a9b5202f5551f60e948fb8d5feeaa333889b7ae6304b257445bd743fc53baeb1b68bc73447d2738ff8217f437d3cd0f653bfb09fab9f424a0319496891e56fb1b48906cb4a524972a0b9db8f6e20c6b84a8515dde081baf2779997d21f870872c7f648bad24d53a0f7aa3a8de6c6049f83d76bcd2a1084efd1cec0da9c8e4af7d6a8b1530a90c4032614b6190a10315e4f4b71f654b2ec528607c49fbfd9818e21a190ae005a815ebe874a59bea2845ed2af4c25218ea673ab1d7dd33b9e2622be7c8e7f5614b33ceacdd5ef7cb0846c88886156945a10282010100851b5cb5a886816cf1b302732f7fa2c6bdf1357b6b05be551ceadbcbeab6d342e88d7169eaa1bfade9999a85598b4ed56a0926199786ef1865e5626c64849fabf21322a39064c7a05738e871138eaae6087840459abfea757cf7cf3fdf2ff4c2d71f0e731e7be40b181a66049026332c3212c921b86e1f9f7c4be6efeac32f11fb65793872d49e2ea7b81acea5acd6a16eb8895393796dbd0f2c28e3acc6ffc1c46bdf4bcfd3ac1b866cb0bff8c490830303bb74d6fa89f2daac84f3c8d02633b4e035aa6c184cca3762b3fdf95f4c8be6a6717d0040f7911a0687bfc45f262e07244ea47a3a15d82eab0066bb665d78fe949e1be3af9323dfa4640e9fc3b12c]\n\n# tcId = 40\n# ciphertext mod p,q has low hamming weight\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 39fecb500d8c7f55799e6891073904352640b513e43803afa7e768bb64ff20d195ec14f5ef18d5efbc50db875cd908c60f4de8e93c6ee100f08d78b27466fd4a373df46b78665f1e8822c3e2e61a9e0da73e1c26e7d96d8b6c643502534a7734fa41f9bf58b9a0a00ee0386482114523461d0ee87ee2a9f4d497b67f54609c05194991f183c848611bcadbbe0f87cb126fbe2d33d4338f10a2073458ea711050c25c369bbe598ac2f7ce8b0e666a5e20176eca540358a3364dc67b1546f0d7bb2ae388a8eabb5ed9f9243f6eea5b5ecd00f7be6a0666151a97f0ee8af58d040aee12d3bcc5760dedeb5d2496be0c4ffc5658746489842361a307dc84062f30254c4182eebdabb5f321b6c96cf8f2056155fddb55daf545fd811f6d155277be754b5829b69daff3eaa3fac532a71cc0290adf7a0c238934b86739b005b70b8ab2f0ad7320cf037c6d31bd135c2e30b35e7d80f63dde8e899acd10710127b11002a78af5494db4198b0b8e4ac6654f63972dd2fcdc8ee3d6e254d8dca491ceea61341c9099bf3a783548c5d970a7ac45680fc17f337a8dfe840304ae2a64a87fcc3604bce4911d3ee31c31352ed3682f854a87a2a9d0ee1e80cb43787131682bc1942324652239ebfa151878e56ac1112f89f1b80120ef\nresult = valid\n\n[d = 00aa5ed117163315b6b3909261998805f2ff3c6c1ef0fdf7430f35dc1d5ae4e299f826e491cab6bd3ef5c5794843484f1dd40dc127c4ae17896990404bad27ea04df3db79c43cc268a413d57d423b5fbda65f7d41d74677e21b9394e3646c13ad85ec7f4b8908fc0dc298cd0a692e62ed6dad90dffdd54c487a1bfcb4baf718110f0af6fb7ffe9ce7fd027e4045bd32a4beb4635932d35c9422388f065bba27362089152872184efabeb9903fe9d8ef9f37f5f58f0962afd65f77cff9ffe3395684ec21c8301abfb8ffcdad266e1f08232f0b4995d29c9820445933aeaa1b4a27a5fcb25e11b8e4ed98a1fd8608c64cfc9b4c7457f08c5f4627dff4f752ec6dba7744f4ff471e2c04e217ce7bd466b0088af708bd4171815b6f94beaf77c9a37ba142e8cbbbad3b7275680a3313e18583c4461f17f37cd237ba38813c8c33de1cf113219b3fc6da0b5a2a116a6a975e1f3e079e49c2266b26230ab7b05b05300acfe3b9f45ef0403908914396b0340548a8e534fa54ba7bb3a936c180fb33f7ea6c1f9428329e3f80c8d219dc7f93865a9af3bdcacd71b8ddad36bf5afd135ed1290f01ee640319b277fad6a527fee41ccf20ec9c3d384c57ec39e024b829f0e297222b3b17305c1081d3e769925eef24081e86ca81f8178dfbd1d0e42a42ca2081293d588bc658b870a9f5a9790802ea3c9847e951ad4408f031ab21cffa9a841]\n[e = 010001]\n[keysize = 4096]\n[n = 00b1c80c94171cbb6d3fbe48e5d7df8d53b100ad97395de4ea1397f13dc4f66e6ac7e3421ae428842fdda5f8a11b3e32ef84544428a35c990c3661cf4a4b01c2f7b1a6c4f0f1cbe4748f3b99e430df7fd944a15f9c4068085a52edb54cadfb8c192a14393f3ad0c2766fe4a66ee48ced22cbe50d5e8ae8802bb8b2c84a29ea577573b9f105a6ed9703a26d7a117834e249174dbb142295ebd2ad49b53f35562d5a4e54ffde09bdff10e47a549c40710d8e14024cd9c65243232d259720324c25f4cec4324995293c20660b6b10e16c3155c0b663cc68c87ead28da51815b9b886726af34c42a1caa338ce9a2ed806e7699beb67f24aa6b00a87795858c2c9bede2aa2650fa1b3b210f5f3679a3b14d053a113eba0ff5dc6d1ab7ea5803d0507ea16b745c072a3477a67771d7d24df207c54a474eff20bb47dd46adba504e339c35d7c521e983b59b7be9777653773816af5e856973892a743433f8f4ef18a3ebf27c87b778ea5102fdb8acfd362687489db194764221d408c05456c43de9b31dfdf5f1084b83ae54b8696902725d8f982a7368fc47d98f5979ec31a117c0b227f9baa8d461837e8b17fcc4f21cd91cedc07f7bcf048c48130a1979e752a5cd8b9c877a5ea53a17719df220e2e27e4d5b61bb8908da43f4a97806c7033d470b98410a8d3e9ab46c0626c0812edb847a901ad142b2f0575fddd5276b1ca6d71e9631]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100b1c80c94171cbb6d3fbe48e5d7df8d53b100ad97395de4ea1397f13dc4f66e6a", + "c7e3421ae428842fdda5f8a11b3e32ef84544428a35c990c3661cf4a4b01c2f7b1a6c4f0f1cbe4748f3b99e430df7fd944a15f9c4068085a52edb54cadfb8c192a14393f3ad0c2766fe4a66ee48ced22cbe50d5e8ae8802bb8b2c84a29ea577573b9f105a6ed9703a26d7a117834e249174dbb142295ebd2ad49b53f35562d5a4e54ffde09bdff10e47a549c40710d8e14024cd9c65243232d259720324c25f4cec4324995293c20660b6b10e16c3155c0b663cc68c87ead28da51815b9b886726af34c42a1caa338ce9a2ed806e7699beb67f24aa6b00a87795858c2c9bede2aa2650fa1b3b210f5f3679a3b14d053a113eba0ff5dc6d1ab7ea5803d0507ea16b745c072a3477a67771d7d24df207c54a474eff20bb47dd46adba504e339c35d7c521e983b59b7be9777653773816af5e856973892a743433f8f4ef18a3ebf27c87b778ea5102fdb8acfd362687489db194764221d408c05456c43de9b31dfdf5f1084b83ae54b8696902725d8f982a7368fc47d98f5979ec31a117c0b227f9baa8d461837e8b17fcc4f21cd91cedc07f7bcf048c48130a1979e752a5cd8b9c877a5ea53a17719df220e2e27e4d5b61bb8908da43f4a97806c7033d470b98410a8d3e9ab46c0626c0812edb847a901ad142b2f0575fddd5276b1ca6d71e963102030100010282020100aa5ed117163315b6b3909261998805f2ff3c6c1ef0fdf7430f35dc1d5ae4e299f826e491cab6bd3ef5c5794843484f1dd40dc127c4ae17896990404bad27ea04df3db79c43cc268a413d57d423b5fbda65f7d41d74677e21b9394e3646c13ad85ec7f4b8908fc0dc298cd0a692e62ed6dad90dffdd54c487a1bfcb4baf718110f0af6fb7ffe9ce7fd027e4045bd32a4beb4635932d35c9422388f065bba27362089152872184efabeb9903fe9d8ef9f37f5f58f0962afd65f77cff9ffe3395684ec21c8301abfb8ffcdad266e1f08232f0b4995d29c9820445933aeaa1b4a27a5fcb25e11b8e4ed98a1fd8608c64cfc9b4c7457f08c5f4627dff4f752ec6dba7744f4ff471e2c04e217ce7bd466b0088af708bd4171815b6f94beaf77c9a37ba142e8cbbbad3b7275680a3313e18583c4461f17f37cd237ba38813c8c33de1cf113219b3fc6da0b5a2a116a6a975e1f3e079e49c2266b26230ab7b05b05300acfe3b9f45ef0403908914396b0340548a8e534fa54ba7bb3a936c180fb33f7ea6c1f9428329e3f80c8d219dc7f93865a9af3bdcacd71b8ddad36bf5afd135ed1290f01ee640319b277fad6a527fee41ccf20ec9c3d384c57ec39e024b829f0e297222b3b17305c1081d3e769925eef24081e86ca81f8178dfbd1d0e42a42ca2081293d588bc658b870a9f5a9790802ea3c9847e951ad4408f031ab21cffa9a8410282010100dcd33c92a5d8b03a45a5f15e57f05e1a9a670dcd39c64a9408e7472a184d61b8baa38e06c644c6f2dfb46c76f245986bfdd468253cdd05eb65156ffa53648158fa968fa76559636ecde47649cc633db9107dad2c40fe2073986d989792f00d12d5df4185c124a79520b70c9871b2290d4c0c40bf1380975db71113f14de578fec175e3f012c145cb75fc94e3bb6371d4e40eefc22a2a487e3365e1bdbf8e7e4681704f32baa8b772c6020bb1cd626e60ae199d2a66b3d8c5666bc8786242cc95c4244fa0660280b912cb8215fc2d6fd46b6dd9c43ae2a147b1f429b421163c2856bb44907b10238059704cc7657fd20ada530c6c821f274da5f42d906a3e09690282010100ce1995c9f982c375aede4345113286c49db4017f676150bda44ad10562429bf4ba518d91c0122228e89b1ec255f2c55c415f8962a3651a2de2b46a0b683eedbe984437434bca3fb58a0eeab23f1e38486ca6a03b0a946b6c3c6ae1240c3a49d6c1df28f96ecb1d741c2ca1902260647dd38f1b1ddd86d3a9bb4c55b77ba02e156382d6fdad3f6fcbd80f58a70877084c0aecc6e74ae26e69047b60de4861f0cb2780d2ab061fcc6d184083756f4e04607b9e87af3001e102f9ce1b07fa4cd6d21937108bfa209b49c35b589faf6c0e97ab6e826faa10ef186ccde1238fcd37a7389883eeafa79439298b2b6985f489bbc0658b17b132b9ee89f4d0c54fc8858902820101008e16595e5eda4ba2631840739d0febed20367919f937cedaebd3ace5b8176a6e8ba11b8cde5c78cae4085ad63a536f9ce5099c2d81b911cb0212c627832b235356823452d892a8b92e3ff7a0caa37c9eacaec113bd8a06e57a49e2aa7d007ad908c68b897dda90fe12bbd59ded625ea9d0a9fdab34e843fd2803141aeb2d612a42df11587328eb38dc6536844619d9afcb42952111327dccbe53aaea05ecb0f1baedc1f7f945002d189d4e5b0cb56e224543f3edc981a55476ef9961649068c5611ca023ac1fa625efa304c412ac45cd9f86625db22a0aee6fe19447f41633851d31880f932fb2382ed46482d49b67525662a396da2f238201eb58ba18b26c290282010048ebdc87bdf47a5be52756fdd4fbdf9b29814b165ce99dbbbba98d132e950ac1283b3aafdb198f6492087075aa1b5fa128b038d7e1a0200724335961f7dc6c1a079dfb3fa04d4b055c77b2aaa69276af8961db478892c2ff64d11c1fb903d6a459ac2fbf3168445f94a865f1ad7815963f885ebbce69a9f26006be3d514c7781b1d7d561a42ed1cb7a02d40725839837ef959f3aaed036e889616e00b7f38f5312030e86dc7fdbc0add805ab435a8349eff34366c4c1a56f7c1b648d0a0eade360708f3637a5d9cbdb8732702d8d3a0c87e76dd73c810957c707812527f8203cd6558038af85c778022eef894290273b7af372a74b56fb5a5f0d73e09c3e02a1028201001fb0531f765a15d35e89ddbe7b02f597929bbe5f0a2b5a366d9a7f80d92f81995f897da3e87f0c21c6972a4666213f0614b5c13ec1d575240aad4b85734a29e186736c81493fc06b25548d50a1c7bdf1597dd7010762a9aff1c88d67a8398455c381feabad29dc24794abb472f72eb0205b49cb50a9229e4ad330f87093440fdee344d449e6bca5e8a0353c8465d7688ed851126e3b77ae8690b10cf7999ce935c753ac01e8530cd0713c936ff2f7c202c70a8461a35d73f262c962c248b5f7fd2fff2c34c8735073dc0403fa0fb67dd7ad2fd94f6214edb96ac755503e88d39fa92fc697228f3090d996fd211dd7713ba9c2447617eac79eda272101f326d0c]\n\n# tcId = 41\n# special case ciphertext\nct = 58e4064a0b8e5db69fdf2472ebefc6a9d88056cb9caef27509cbf89ee27b373563f1a10d72144217eed2fc508d9f1977c22a221451ae4c861b30e7a52580e17bd8d3627878e5f23a479dccf2186fbfeca250afce2034042d2976daa656fdc60c950a1c9f9d68613b37f253377246769165f286af45744015dc59642514f52bbab9dcf882d376cb81d136bd08bc1a71248ba6dd8a114af5e956a4da9f9aab16ad272a7fef04deff88723d2a4e203886c70a01266ce32921919692cb90192612fa67621924ca949e103305b58870b618aae05b31e634643f56946d28c0adcdc43393579a62150e5519c674d176c0373b4cdf5b3f92553580543bcac2c6164df6f15513287d0d9d9087af9b3cd1d8a6829d089f5d07faee368d5bf52c01e8283f50b5ba2e03951a3bd33bb8ebe926f903e2a523a77f905da3eea356dd282719ce1aebe290f4c1dacdbdf4bbbb29bb9c0b57af42b4b9c4953a1a19fc7a778c51f5f93e43dbbc7528817edc567e9b1343a44ed8ca3b2110ea04602a2b621ef4d98efefaf88425c1d72a5c34b481392ec7cc1539b47e23ecc7acbcf618d08be05913fcdd546a30c1bf458bfe62790e6c8e76e03fbde782462409850cbcf3a952e6c5ce43bd2f529d0bb8cef91071713f26adb0ddc4846d21fa54bc0363819ea385cc2085469f4d5a3603136040976dc23d480d68a159782bafeeea93b58e536b8f4b19\nmsg = e2ab50f30a4777e36f7079f675903cd37e75324e974ec3d773fe4b4363373ad6231da9dcaec8cd697c46601a0c15f8ac80b7527585929623939a8fa3c0115a52636165d8429580c54a890034de3249908685e7c9637c54e27e427e955280ece18666dcf18690efa692e0fb19d688f43abd5f9ac9ccafad37edd0eb06f215394b13ad\nresult = valid\n\n[d = 328139eaa3f26fe34ecd67e26b59b8c4c388a7e748e60717290a25a01280d5a78ee3bb54a236806627d5b0400524b6abc100f8c2d02327c018d0c141d4fd2cd04456ae48e91e933657c65c892e2bdc8536b98c5b7b19d5d5791b22a47a96629c39198af98a7da96542c647f9868d12688015dc01b85f673987834de8cb598373a6de6d6779d4fcc1ee78b4db2306a4bab471a04bd9db7f1bf185a6f834217b16c37e734d59b65627fc107837492b4d6aa2cd2c8c65cec3a91adbc14f7390dae8415bc735e228fb9e3262d7e9df43f4edaa602ed5af0d1fcd4207db0f11496cf83325c9ee960752b690fe64bfa54d3604e734f6a778a6ddb9a1ebb121f15ce0e05f33a9ecf5fa5a4c40ff6e5732893018a7376d792473c186144c65c3c9712f465b4b99f0981798d3c9277463f258939a8eb810d7962fe79a25c49daeb25220c0c9798f8486a5ba0448bae6f2b369381f83c347c96bb93fae1f0c595c3f1eb587256bc2973bedcda72319b5dc53170cd6baa8c90eaf7c949cc78f20aff01fe8711eae4c6f03f4d08b68e2924515c2fb358208b94b2947c567885c18640b6581d129c4e93a75fb4e14bad15427f037528791a2c67cb84a2f1187ab0f81f1b2b56c0fd61a6d31599d5b43a0bf48b730e8e29665cfa861990a5be7453e61818d6c99199d54c631600dca24a10fa025c8a05de0ff686814aa6bfa1b8ed3f2d03f2a59]\n[e = 010001]\n[keysize = 4096]\n[n = 00d7d77972088826f58b6385ff9eb5ee72396ac7f5321ebff730155887f4ee30b81bd55e1bf8a3e90a4dd2f6210b2e3051dc74490c73b0116a774ef2455121d5c9e5d702a5c28652fbd38a147580c6e6e4cb0b0d7d36206f5ea72ea7b3297fa4f6433d2698f9313a6d58f42d3424c511f050e782fd5191725a0686468cc004854d94e4c6e38635a16508f11d5415bb51457b8e7e87d2d95625c5a1b0225fd13e85c2c0fe7a3fcc727de00e3a52fdd2ab58327a9f4087129244ebbb396598bcae80a5ab92730b1da9474ca8a56a1be8c3f22a7772aaf1680896466ee60e766f2f6bc2bbc1c5899b14d9483784f792090966898e1434f0f6e87c98cdda440d66f4758f5d3d1b06e42fb7f925b5a3d376b983682e3de0ccd7cd25b211bd7a3c72fe6e215f2d6cbf4cca0838601733e182370adba272977b8a88427908d855014176dba7dcdf92d33e049d06923b1d02ee2f3492a74170073cc39d311b6dfc21af95ad2537fb0b010097f122a051bc93098c594709948a2b26972f8d83f8fb45b2cff4d7a5b28f970e68c43be5740f1843272a99eb494d24979473f1741f1d619ae5ff888b626a6033ddd6c2860fed60921ef13d615428fea0da9f81d639f0ae40f4dba3b60780b68f359c6a39adeeb7ceb2cc9478d5a38d86fc5e703fe84d227d8fd724c96223924e96997e23f7e02b9f57b7bdbf639969c8dd13616d7ac02f4db867]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100d7d77972088826f58b6385ff9eb5ee72396ac7f", + "5321ebff730155887f4ee30b81bd55e1bf8a3e90a4dd2f6210b2e3051dc74490c73b0116a774ef2455121d5c9e5d702a5c28652fbd38a147580c6e6e4cb0b0d7d36206f5ea72ea7b3297fa4f6433d2698f9313a6d58f42d3424c511f050e782fd5191725a0686468cc004854d94e4c6e38635a16508f11d5415bb51457b8e7e87d2d95625c5a1b0225fd13e85c2c0fe7a3fcc727de00e3a52fdd2ab58327a9f4087129244ebbb396598bcae80a5ab92730b1da9474ca8a56a1be8c3f22a7772aaf1680896466ee60e766f2f6bc2bbc1c5899b14d9483784f792090966898e1434f0f6e87c98cdda440d66f4758f5d3d1b06e42fb7f925b5a3d376b983682e3de0ccd7cd25b211bd7a3c72fe6e215f2d6cbf4cca0838601733e182370adba272977b8a88427908d855014176dba7dcdf92d33e049d06923b1d02ee2f3492a74170073cc39d311b6dfc21af95ad2537fb0b010097f122a051bc93098c594709948a2b26972f8d83f8fb45b2cff4d7a5b28f970e68c43be5740f1843272a99eb494d24979473f1741f1d619ae5ff888b626a6033ddd6c2860fed60921ef13d615428fea0da9f81d639f0ae40f4dba3b60780b68f359c6a39adeeb7ceb2cc9478d5a38d86fc5e703fe84d227d8fd724c96223924e96997e23f7e02b9f57b7bdbf639969c8dd13616d7ac02f4db867020301000102820200328139eaa3f26fe34ecd67e26b59b8c4c388a7e748e60717290a25a01280d5a78ee3bb54a236806627d5b0400524b6abc100f8c2d02327c018d0c141d4fd2cd04456ae48e91e933657c65c892e2bdc8536b98c5b7b19d5d5791b22a47a96629c39198af98a7da96542c647f9868d12688015dc01b85f673987834de8cb598373a6de6d6779d4fcc1ee78b4db2306a4bab471a04bd9db7f1bf185a6f834217b16c37e734d59b65627fc107837492b4d6aa2cd2c8c65cec3a91adbc14f7390dae8415bc735e228fb9e3262d7e9df43f4edaa602ed5af0d1fcd4207db0f11496cf83325c9ee960752b690fe64bfa54d3604e734f6a778a6ddb9a1ebb121f15ce0e05f33a9ecf5fa5a4c40ff6e5732893018a7376d792473c186144c65c3c9712f465b4b99f0981798d3c9277463f258939a8eb810d7962fe79a25c49daeb25220c0c9798f8486a5ba0448bae6f2b369381f83c347c96bb93fae1f0c595c3f1eb587256bc2973bedcda72319b5dc53170cd6baa8c90eaf7c949cc78f20aff01fe8711eae4c6f03f4d08b68e2924515c2fb358208b94b2947c567885c18640b6581d129c4e93a75fb4e14bad15427f037528791a2c67cb84a2f1187ab0f81f1b2b56c0fd61a6d31599d5b43a0bf48b730e8e29665cfa861990a5be7453e61818d6c99199d54c631600dca24a10fa025c8a05de0ff686814aa6bfa1b8ed3f2d03f2a590282010100f110d1d96e1e3fb18eb6dc533c286f36486a10a49bdba344556c0ec6682703d80916aecb3b5a4450042cdcec2ea3c29eeb3533a1ac0fdb27ba6a80dac8ae874daf1dd734990f5ae155bfdf5cbfd7efb2b448056d82962e0b9aa5581516797993f770441518a5a0dc96d830e06347e5509e9100ae2a51307815dcd9924371cfcdcb4ac6fcd9bcbf66503ceee682c761715e6367d696bddba1d8aada6bcbc909bbbc2d7a153c91feb62d640f1d0b86ab909c2e3d5c0357f673ead7ca72f3700a70f8c7a0bdf1d1549100c2412859d00bb8a72f8823f96dcb0d78dd0884cc18a81b84c97d56043f0d21f67145b2025cc3dedcea7a68e716e91b63637a656ce4c1050282010100e5369d5c578747f0fe1ca8d34e4c17c1464b5a14fa9096c2a1ab12cff4775ef0ccb5fc50c89291483045e622ed34876f05aae752c7284ff3b54eabd37fe499ccbc97af78d15b821e56bd188814d01bbca202b0f8cb389937edfef39634476913786b7b258b0d87887498b7f051f4b4134ce9d553235a1d977662b95386e7dcdc7dd537a44b80d47bba830e7cdede5550d787e4561bbfcd3b705a0210f5ef055eddad563d1471e031f2221a9163e5dc44439bb0cb08395c2b9c6490c30a0476d95c3790ecac7d20eacf2602b1cadc8bbde1d3e4dff6e6f62bc310b680bd1ccd5083878652e2d835fa4d776dbb6ae76d39d47934742fa6ceb747314a4c2a6dff7b0282010100bb5cc04d8759f9554ebfef84bdf80b601c6e5b9b250c53dc53ac55db7dadfd3dd6ea8b56a83de36471aa50d73cf4c8da6da37f0ac449daa3092fa810e3f34a74658c02ecfd9dc29beae2e37f1a188253d9ed3452c631657e5d66ef8c0c58c3d6ee759264f7301c53f6e5f72f1fdb0c6f599f07f156309e446771aca512c88da3bcc2d4e047777d27cf6b5c9f4abc1e8f57b659499f05d783f67beca1e5d4ce3cdce857bfd3c10140a50ce4f64534197a9ef90d75cb9f7d8ce0d571a360740f9978b2e7cb59fcc206a59955bd3ff9047333762d1110d775ff75960dfdf107a4f9267ed86c97864df5bcae9365e4922726bb7b7f42b381ca1220707bfc02e3d4e5028201000ed6f95b28238f09d039e4c8417275bb42a4d0413973b0ff0ade7b8a512685540bbce0880e6446d9a89e6de6e6fa96a61e74d1232fd7b14d72f893f14e7f6b61b0f815193a5cb550e786b896deda1661a10f918b9a04a10ed8eebfb082d3f8be94f64873c6cbea7170330efd9520c5a3d63ff15abf982f00465edfe6c37e317369062be30c2c5c15629ee78a3817a6e863fbdd51a1dc4a1a460cddc36158c73d3c16e3d5728468e272edb8509f6a1b57a414e95e4bbb02f7a3d972f1ddad2a50aa42c2b43ffa9dedf5d95d254b9ff9c02265c894a374928d84c4893c4e8215dcd79727a028259d610630ec3ecd0e0ca948d34c0d15a4b40f73a18250ea12530f02820100296bdbf80bffb928a2ea9a38372b66297aa255188829562463b72a6ef2d7cbd39806741c866a2cefee7954705ce9f23dfef77c6c927bc5f065fafdf893880dcf17eaa9a1c579d2c48993c232b1b0d6738977e6bff12a2cc2b8065e423e357db7a85d5a026419a16fd513d530487372740d67c2fee220dc3b0c005cf3b28c73502425ca5ef748e304e5ae70ba54afc63b173ea6daab9432f57d97a432e9e409ad3ed191a8093275bfba81b865cdae6433a34d6319d1263ab7b86a4a030f165c2b540074354d7b2be097659dcce4d4096170bbcde3cce0c9ead51baa416b5e0202bb823c42acc561437a4e3d793cf704429ba96699c6fd5cfdb3ba1db090b6c6f7]\n\n# tcId = 42\n# ciphertext is a simple fraction\nct = 096f1239819d50eea35c3c05cc0b5e88fed07625e04235b8c641239c6cdaef5a3c61d703cd89278957e44b88f3f855b117eb8ff5e0b3a7e93ef4aad340dac77f7263cc28ef6c3018711c5a2e4e1846fb75144b7db083ead71e6126493c0371fbf7d0af790819871d524659fb4e52593d2d331e1a1c3d7f359473518bad2622c81d65bd1221931ab021dabbe5a69234f1ba72449df80a0163525dc3bb1c9842a2869de8fcc3006431ff5360c7a6e4211e94480d24c3765d1a0ef63b1fe807f5c5435d0465bf8ec5de13c884712f7e29107427d7c292e3e837ca9409c6396bd9b934e389abf9ba77865212ec94df3c8aba3fc13cd779232a54891c62d1718a69bcc1e1609ebc0026c1b22d09fa3de44a0e7b207ab5fa788e2b0bae639ecd46df6a51767d3246bd4b101a2682305dc9240d007abd2b290aba039bf04680c019dcd0892c883c713d6c4c0e05ffcfbe51ad93b40546818d9d89d8ae4d8e14acd6905287c6a3ede1d1e850ea293d7230a457ef19c86489449559c965ea6059a80894205109c2ef9b93ef9adc1c01e9ef0a53200210b3e50ef5d19108d7eba01554681c747449df776a548a4ea5605e0deec3307861470eed8954e81d89eece2022bdc546724482d736eb1e785aeb2da9b5c938d5d3bdea1c252c3e9f32d6f129af69b885a13457ff23ac7b86b663901e5c1c5f77cd8205d26994bac210420fd7dba213\nmsg = b696adc28ddae0059092422bf746d9fb3a7e67d5844edbedbd2b76b7ce3d46f6bb77bb04a3b3e06e8237a284e18768cd07be1ba83491de275b2bc3f5beb76f74e7dde2b7b4e40794b3b4e9716de2d9dfcc027f65fa9f4e081b73eb6e50ea6ad59e3d59f4d0efe6accc8ee0e5a97a136c711376ffeed80054af8c6021f278ee55794c8ec92c0ac732a5dd28a02ea0f9485a6d0cb06cc0440d02a3d8fbdcd7bd21d1f134e1de993cba7c527f3340a7220dcb27d82397f346f31f0a36275ef52c88e2e73ab665869611c9102431e13c487998f998d5f39b4e1dd572b829c789c83b91bcc7a837f881c21316d59ccfaccf704672da03358e4a40be0a6fbd016588c47d59b4580da571a2fe39d2a035209cf0d2673d362a5678d7736211c5f6e3fc1d9d7059be6ff5683fae0348c62c30c4603cc13d16f588bfe12613e8f32db3a8a3b344c55e3bed63d04d1f0ee66aeada45d44b3bfc4344202fcf119231676145019203ab56293c531b248293912a1905536d8c45f2026637c065a2ec2675c6429d8bb97ee72eee254e493c004dbf6827e35382e87eae2dc189\nresult = valid\n\n[d = 009728b9e5ec9ffffbf086237f4303b3af264793e61b5131c09b7e3b26fd7069be7c44a7e8a8163d6d91632bf719f37faebac2f2be852af51d9b5dc6053fc2fa852434bfd7b83e3737600a257985ae600d4e7602a8570385551c4b0ac6e89ba15732154522e08a29bb1fcab6f3e4b434d0624208382f259b0bb1e73576c87956c67e13642ff76bcc0e35ee92adba30e4685e1504877e92a0d5b144ade82a6d0f62801fdf74e5248cec26148a32a098ca419d63df3dddfce4e8ab9557910b62f3ee9c42a9bdc9ec05bd62b069b63dcc48fe294eaf557835d10a5dce285a05cf55de676785f5021e2b721e6230dac62ff4be6a302c7cbcaf89efc7d73c3329327df92c3997d5312e314577578a8979353ada5f052f2edb21b65f055e8e3ce2a495529c6b5bb29a44dbab8d41beb23b724a1caae7abcdd286d552729ea6a800144a941bec7cd4c9c22af7f4c807c7971d7e074224a4241dbaa08237bccc8674fdbefa2b66f34bfbcd965e51786395b3e9d9815eba097aa3b990c661371cdada27c0c03a06f2088838da6a5c2b4c18b3b5f15ab37784b730752e200169e6b8405fb00c5ea03b7b187173b8c0f7e619ebcc8dbd93e98058f28b30e48136edbe313022cd32f4d682f1b3d9388048ffb7cdcec8138cf31ffc1d52621af0b59210389f25561d7b62c22544ca720516e2ba8fa6d04603ab6d18580a1a1fc701c1f9f7f1e0a1]\n[e = 010001]\n[keysize = 4096]\n[n = 009a707a36b5cbba96c9d4beff3329f7bbf02490dccf000e5fe85e6fc690829ce152516c9a6b0a83a51cf92b3c31fe3e1591a407c7be3c230af91aeaa3f6b1a9a0cf81641b690594c90791a5e82380ce9e5cfe9c931d069311bf0d4011101901d3c1023226a5ab37985e6ef39c49dd73ccccdf9d83128fa4b12b9eebe1ad2c11b40606a0442e1217c940824c9a888a874e75cf85313991ef5be6738d0827a4a1583dfb273f04002f106d425bd8369c2548ff489814124a23bdc49d560cf3521a6f326413c7ef058edca96a552b6e7feff33cf5103743d4dad12541f79883ddde383095ebf9b9fcc1f21c5c695d79f461cdcc26dddc69cf3377fab23249a38527afd3dd5277b2b056272a24c1d33a785496ded3d6540feeb6c93e592448e28", + "d19f9b8439731cb2eea336e799657e95e5d1cabfb35cf92b1f43e1441af88be60b61471f07550e236235fe68fc178c40a0fce0e808ef544888411fab1c2014498db4750eee6ef7d2c7b95e5c6a01e2ea01fbce551e8dfae487798bf60c0e38dbc444b16a8415b45498b37d372b1095ebcd8502431b6d91af8c0b1da4e589339c4c0a8565b40fca50cdd2167724c27c41fe4c554b6098fa09244b4a3318cfe64bb939a8ad1bf31d70381a90ab3b54b11d6adf88a94283e281af734325a81d4917b06d73991b7868e559a9d07395a7ad1cb589c8015a12933f4501856075270f7bc91e7]\n[privateKeyPkcs8 = 30820944020100300d06092a864886f70d01010105000482092e3082092a02010002820201009a707a36b5cbba96c9d4beff3329f7bbf02490dccf000e5fe85e6fc690829ce152516c9a6b0a83a51cf92b3c31fe3e1591a407c7be3c230af91aeaa3f6b1a9a0cf81641b690594c90791a5e82380ce9e5cfe9c931d069311bf0d4011101901d3c1023226a5ab37985e6ef39c49dd73ccccdf9d83128fa4b12b9eebe1ad2c11b40606a0442e1217c940824c9a888a874e75cf85313991ef5be6738d0827a4a1583dfb273f04002f106d425bd8369c2548ff489814124a23bdc49d560cf3521a6f326413c7ef058edca96a552b6e7feff33cf5103743d4dad12541f79883ddde383095ebf9b9fcc1f21c5c695d79f461cdcc26dddc69cf3377fab23249a38527afd3dd5277b2b056272a24c1d33a785496ded3d6540feeb6c93e592448e28d19f9b8439731cb2eea336e799657e95e5d1cabfb35cf92b1f43e1441af88be60b61471f07550e236235fe68fc178c40a0fce0e808ef544888411fab1c2014498db4750eee6ef7d2c7b95e5c6a01e2ea01fbce551e8dfae487798bf60c0e38dbc444b16a8415b45498b37d372b1095ebcd8502431b6d91af8c0b1da4e589339c4c0a8565b40fca50cdd2167724c27c41fe4c554b6098fa09244b4a3318cfe64bb939a8ad1bf31d70381a90ab3b54b11d6adf88a94283e281af734325a81d4917b06d73991b7868e559a9d07395a7ad1cb589c8015a12933f4501856075270f7bc91e7020301000102820201009728b9e5ec9ffffbf086237f4303b3af264793e61b5131c09b7e3b26fd7069be7c44a7e8a8163d6d91632bf719f37faebac2f2be852af51d9b5dc6053fc2fa852434bfd7b83e3737600a257985ae600d4e7602a8570385551c4b0ac6e89ba15732154522e08a29bb1fcab6f3e4b434d0624208382f259b0bb1e73576c87956c67e13642ff76bcc0e35ee92adba30e4685e1504877e92a0d5b144ade82a6d0f62801fdf74e5248cec26148a32a098ca419d63df3dddfce4e8ab9557910b62f3ee9c42a9bdc9ec05bd62b069b63dcc48fe294eaf557835d10a5dce285a05cf55de676785f5021e2b721e6230dac62ff4be6a302c7cbcaf89efc7d73c3329327df92c3997d5312e314577578a8979353ada5f052f2edb21b65f055e8e3ce2a495529c6b5bb29a44dbab8d41beb23b724a1caae7abcdd286d552729ea6a800144a941bec7cd4c9c22af7f4c807c7971d7e074224a4241dbaa08237bccc8674fdbefa2b66f34bfbcd965e51786395b3e9d9815eba097aa3b990c661371cdada27c0c03a06f2088838da6a5c2b4c18b3b5f15ab37784b730752e200169e6b8405fb00c5ea03b7b187173b8c0f7e619ebcc8dbd93e98058f28b30e48136edbe313022cd32f4d682f1b3d9388048ffb7cdcec8138cf31ffc1d52621af0b59210389f25561d7b62c22544ca720516e2ba8fa6d04603ab6d18580a1a1fc701c1f9f7f1e0a10282010100ca399d4e22e241b4500194bab6eeb997d337ca7d4c660170377eaee83c69686ea6d891aa07388c4f17c1112882f25c109bf6d5b7c7b07e6adc5e9cc5319d0a43e3df5961bc44e9469f1b61f71146e6fda1ff8c5710aec6268aa37959e9560dbe922a164e35c7c8e20049bdf0f58a7fd8ea65caa46c5c175cc534fd6ecaad4bc85c74a90d9621d80400bc1919ddeede28aa1a5a8660f3361e4aee25d862e29e8eb4b514ff06cd0abfabb796547576700672b521acdfbf0e3c31b2ee4d963308b4d8799bc5987761f881e0ccec41317d04240407aa9c008360eb104b4de3d08f55edcd1d8e9aaf21000c5c5f03448320ec1f109ef7f52de5a1b890491f3db9b1570282010100c381df417ed680c3bd06ff199390ff18572e1c4a1bf59b8f2b4cebb6300a86d4cb45e9c8072c18e711a0cd5b9454f028559e385026e8287ec2058ac700cad40bc13b86a7c069996d204b9c7648d9978f6c2423b643b93f1d9752a0bec0dfb935637693d1eda269de3cb61d1639a00266033bdf6111293750b1bfc289cf6a83003f73722f149c96b0af950c66529d5ae57dbae9d1da9b394ecb304a48ab70213ad8725120107e063315913334c1409e90fcfa65407e477dd892b7b4eb785af538122cce8211ecdf76325574b693fd054cde3bb0d9396489f431515056212fcafca4285fdaa668d8052347af6df2b80230dd3661b36e02a07623c027a1b4a9f9f10282010100805d11fd0727978d5d3ba3ace171a75d3835b1d2d72be8bdd27c178a52ce95fba6ecd1899c0bc9046b8fa1d4954a422648d9e5cf427245cc8f157f6dac90827395b1b08ad976e49c6f62724ce22a9f755fdf56b5ed610366739a50ed41afde0999be1d6a87b8c94aabe4232d50af1978175185cfd8f89bdbc7525b8c781a8880262fe71f38ad42f147861e68ccf7530d7cec3d8a0f0052d9e7b6434f9775423053849e4f4381e3d0c6af423d5a5253c9c40635da062cc05c752f9f14a0c2c44407252a3bc30c04a439ccf846ff1aeac0361c58c17344e0202515b2b73e64a49766db4c67b8c871aa162e8c2106dc3589ac2e60ba04679ddb89cc0c9e48101701028201005deb36cfe4d9b0d3d72bd4427a244e9767d20bdf021d73d44c2dd0921df4009f9ae30412867785a30351e7351645d374dce47c12ed0ddbde40e09eb148cd271e5a7e790a7f217b85f3dcbed607db17b6db7165027af833bcc863f63a8cb72ce6dbd82bdcce36967b1f593111eb2ed5d821b79270b3e8c3dcecf6bcc2ad3472a81cd31dc846338f2463c4cb47206add2e9fbeb9f288fcc683f692452d31c655004ad867e66a65d01e9c3ebb859d4ca89fe81775aa8cbf555243f1226577d4e236446ce7eb8e26e79685498e1ee36aca300a164cb79d9d91b410390ac9c5798b1ee0d15072de3c4181fe57c28ba3ed078867cc6714e64536c66a183631b5736e51028201010082c5981303f087559e16ac8004dc7ae41d0ebf61c37c706f01f0d6b950b3fb3582cacd46c2fc3160d0a7dce6e481fc191758387818a14e3c5c59cc7318174643017d7b4a5d8703446f8a41ac86b5534404be75e2c163597df52c05582771766a348d37a4e9171a689da8bc8791e9294a109515cb40995a3d874d08695ea9f7835a9d3f39a1ce7e6078af5a328b79451fbb02c43023cf5433f5ff00617e0596df8171672ac9bc0049fd5ddba0f06fd10000fd5a159d0c56372e688e5c54f76a07196a51629af9ea76476e09b8193f274a29cabe2a5cd602e9d675aa7b8f98f87339746a593a9380a7dca08f48000465e33e11b9e67d490cb38aeb3af62af44760]\n\n# tcId = 43\n# ciphertext is a simple fraction\nct = 56aff1b3694b12721058f9906c27d6898113c0d7955d372d174a5305277a3e5df29c6527896bc5e7eaff00d35a34a5f91834d2eee28c108a143e9330712c647fe26bb6e4bc65b15a7aeca817d90a8eb5293102c12ae38812bd65262b0ec60f14815676aea128bdeba94c1b9472229e3ce42da29ce58ed3a6718004caedd0838ed99d438bac4478bd76a29317e17adbb4f9c661b0aa50700193d892ec5366b160a47036f1891bb370cebc8278207a355dcd4c337716a4f48ee367493d08ce26346ed37503c12631add0fbb7014bae27cfcdc85f56035c05bc9d1fca300d446b7213e7396d73176dce4d94fc625e7030670211f98e67bfd97079a308f8126d4a6f8d61327f9d04d7fe755501fc0c4018b160007f4a36af2175fad8d612f20d2417facfdee6b28f9b9fd81a5a602e6c5761b1faa9d4fad3a33d3e272cd4655672091e8ce5c8c2485d8986f43ff0cb1798ae3c22ef0a871d873de7f997eb6273383d0c511548a4e291380fe423f78371a5c9efbda9c0b51b512883f90a5bce4d8e6c99ff27d0bc2fbbeab391bb5d877e07445933cb0b55d59a17556ebf1c24ddddf8666e4f4566aaf7b7364943e9d8681ae4d352551652ee7ae687b638c0d6a7a227e8eaa978211517cefefd08532909b88765605415b6e1abad13141187c719a01e39050e98e3a2c0e91cb0c4c5ea052e34498f7fad67051d650aa7a8ad8d6613da\nmsg = 224d2a87348e18c85239f4428fb5140a16bde575275e65d21d90b61120de4986c1a8ddfee35ec22958b8039af0f46ffdcaeffbd2b9ba7840d865595cfc22ef383e4755ab48878c21f31715442a620beded6429c333908fa568e754ed078b77ab19c03fabf9c825ac19d700df003a00c66cb460f9819d02a4762625cec6d3b61eeeefe40761e791d0dad80ee3bb0de70f59f0bbdf9e00002692b6eb52fec5bf65e00abd1d9d5a6ca22e3957e442fb18977fa721052ccc5a2ff18726ff69917dd603bc9ce6be6699612f46b0b3cbbc927bcb5760124e3ef48225a6a5374f96fdc72e4953b74ca415585b0b045ba09e8e1a4ce183aeacaf9f49475d42064fdae6ef3d07a57298dfd6b39e292898a8aec16b3695ba74da57828dc4b11a5592fbcae2064b0d3bc44c2e37c49184806520d418170a821de0d3688580fd7d522774ad342b571e6b5a5df93a25573376ed995f2245a38dac828499d852c9bd4b4b6373fe2d374d5ea745392fd193df51309c983f1483a7cbd02f71f707b675308bb4235ede4fc18123d4a3902e8b5d9cb17ec2040d4c37df674ade4168cfbe36c59c8cc725e1a6cf5141\nresult = valid\n\n[d = 51da1779fe40b0a9ea917965f7bdd531aed4993ffee3dc01b7dee40d5b5f872071476dd4eb3a91ee43f5be5fe45a00e412dd3a3c4142d55d2458c3fb457caa702ab6702f984bed85959aad5f6e0166b90a251782a95999beef46cda6b59f74047d30b4b9591a9fa1eea06881383041d56f79fd55055fb2148eebeaa4ca746a068e44439992ef9f7356cdb9eb7dff1e69cacd610daa081fe8cf768419a519a63bdc64af685a79b3d8206a3ba0764ae8fc1e9e83be926160e977bc1f15b9c5b1ad7fa0a06d6d8061f334e4e4609e1f0d620036ceb227ebc279869b9e8f89885dc4a7575f3bd78aae86a0a2bd8cac42e26bac7ff407a8291bd085426829f184941e4f1fd4d1f38427a82c4e11407805c004d7e3daa4ab4f8ca4d4d2bdcc5dcb116283f378f05473df6cfbe91ca92d91c33863e188389ce4d5e085dead3de5d86595e680ac78adab8b42ed40a70120ebf6abd0ebc877fa3d44bbe2e4deffcce30273791cc5300938d2c1fa49cc3d47a8401553107f5ad33d842e2966a0f8afb7df3ed512a2e78d1ce8a202d1ee9545b0970d751ed252cc38b9a332f1ea753a2edf388fe4c8241db4a6d034dd1580f84c1f95dbffabd1f403fe9e5749174f4f76aff303d7ce37b93b94e38144281cbaf6005a2c64523a2bcb39ff276bec54487704c6854dfba1fce1f18aa3c4f14331fc066bd813bf1550485729221d731", + "9b4ecd2c1]\n[e = 010001]\n[keysize = 4096]\n[n = 00905b8d4867228c640d6a735903f06fe0485a00081a42a6cf78ddf798d30fb9748300b5d90ada8f06287b074235a35604a7c5e411627b0ed3428fe701a9db9ff8a67ca1699991b42cc5f7c0e8fc6c6280f86fc7d68f994a68015cbbeb146110b9f5acaeaad5ddab6ed1ff2ad5833bfa164651fc7748819124538dfb6018dd4129ff85fe1c7bbcab175b1bf28175bd49db94235aa0748c7f18da05c19cf85caaffa1dee73bdd9fa69e88ce894e1bbebdbf59858e1dcda058b24b8b18de630fc93d598bb63ed08858894751229804d9010ded527f2702afa96613a7dad209503d6018e23aa99308087f15b9552544d547404f38ef76a1d12e6a9892b17054f95ec3da5f19086858e983074dc6bae73d5d614b259e7ab666e318a37ed26fcc7848325b09b026d77b66614ad78eea7d1627b71a047930f27a41592e4a732150e2687185ade386a5aa7f1f7f29ac66e551b5d141642deed58322b9718553c0293f66621b0c98d4ed07aaee2117fae99749a0ce4ed43be4ae126230b6cad40fbba147e3db9def1cb706a9f5f6d24c45fe6a84ac607f9448570e31dcb923f2499a1f11423062633c9896108795fa938290fee286558db02af1bfc78fa36a13d0ee8e2eb4a8e1088effee3c990aa249cfb87d67a5ad8b222cee3e49dfef53abe43400e0490462cc92a4e399efeda5991254652b75eab57c29c310664fc6bb4b032a7f5c83]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100905b8d4867228c640d6a735903f06fe0485a00081a42a6cf78ddf798d30fb9748300b5d90ada8f06287b074235a35604a7c5e411627b0ed3428fe701a9db9ff8a67ca1699991b42cc5f7c0e8fc6c6280f86fc7d68f994a68015cbbeb146110b9f5acaeaad5ddab6ed1ff2ad5833bfa164651fc7748819124538dfb6018dd4129ff85fe1c7bbcab175b1bf28175bd49db94235aa0748c7f18da05c19cf85caaffa1dee73bdd9fa69e88ce894e1bbebdbf59858e1dcda058b24b8b18de630fc93d598bb63ed08858894751229804d9010ded527f2702afa96613a7dad209503d6018e23aa99308087f15b9552544d547404f38ef76a1d12e6a9892b17054f95ec3da5f19086858e983074dc6bae73d5d614b259e7ab666e318a37ed26fcc7848325b09b026d77b66614ad78eea7d1627b71a047930f27a41592e4a732150e2687185ade386a5aa7f1f7f29ac66e551b5d141642deed58322b9718553c0293f66621b0c98d4ed07aaee2117fae99749a0ce4ed43be4ae126230b6cad40fbba147e3db9def1cb706a9f5f6d24c45fe6a84ac607f9448570e31dcb923f2499a1f11423062633c9896108795fa938290fee286558db02af1bfc78fa36a13d0ee8e2eb4a8e1088effee3c990aa249cfb87d67a5ad8b222cee3e49dfef53abe43400e0490462cc92a4e399efeda5991254652b75eab57c29c310664fc6bb4b032a7f5c8302030100010282020051da1779fe40b0a9ea917965f7bdd531aed4993ffee3dc01b7dee40d5b5f872071476dd4eb3a91ee43f5be5fe45a00e412dd3a3c4142d55d2458c3fb457caa702ab6702f984bed85959aad5f6e0166b90a251782a95999beef46cda6b59f74047d30b4b9591a9fa1eea06881383041d56f79fd55055fb2148eebeaa4ca746a068e44439992ef9f7356cdb9eb7dff1e69cacd610daa081fe8cf768419a519a63bdc64af685a79b3d8206a3ba0764ae8fc1e9e83be926160e977bc1f15b9c5b1ad7fa0a06d6d8061f334e4e4609e1f0d620036ceb227ebc279869b9e8f89885dc4a7575f3bd78aae86a0a2bd8cac42e26bac7ff407a8291bd085426829f184941e4f1fd4d1f38427a82c4e11407805c004d7e3daa4ab4f8ca4d4d2bdcc5dcb116283f378f05473df6cfbe91ca92d91c33863e188389ce4d5e085dead3de5d86595e680ac78adab8b42ed40a70120ebf6abd0ebc877fa3d44bbe2e4deffcce30273791cc5300938d2c1fa49cc3d47a8401553107f5ad33d842e2966a0f8afb7df3ed512a2e78d1ce8a202d1ee9545b0970d751ed252cc38b9a332f1ea753a2edf388fe4c8241db4a6d034dd1580f84c1f95dbffabd1f403fe9e5749174f4f76aff303d7ce37b93b94e38144281cbaf6005a2c64523a2bcb39ff276bec54487704c6854dfba1fce1f18aa3c4f14331fc066bd813bf1550485729221d7319b4ecd2c10282010100c408dd338d45a42ab6d4da18c568f150e85d6c68b75105c319a8b0a149347fa1dd7895054a7783a211537335a16e9cf6afb3d66bf4f4a7bbbd679261e43291b217c60bfb597e12c0d297237cce899442a7311acf18d3aff8d32c424c1f736192258ebe6fb45059006be12c9db5d940e8aa4170e37313e5f4672c70db02eb6c49f71fa54c74e52243a1aafca8ad583b1114d98aa83d12c06c2d712a675850dd8344133cffae61f6c4a20648f5812f72f278a765a5e9933a6a90a8c2ca2f8bde2469c563663ebec83a77768cf5fd4dabbc9e4eb610e3825acc23951c6ec0c0f12efc4157ae5839bb929f3c5b137c73857004fd7be89b90f2cccfa7f8001b4d35d70282010100bc83f34a5abae720833e5b252084f2e85fdb312f54a59983d2c10176244f1658757aa42bc3c4c12d5f644dd7f31cc30ff3179ee594fd73a90b436a1cee1a9fcfd32878143d193cd15c5bb92043fe95e6f38a5d399f1bceba64b1c97fa3edc0a5e217143b204b8bf179d4d33533cb7a6c5141ecee7961325bda31e8a3a8c76411e622f7596f3ce1b420a8a6cf0de744462c182e3593fa692548ebd7360d4f4464d1c353cf6b8c6a69dd6e83fe00e50a7c949bb97373b6b398fd8a60e56944581a2b1520abb4fb8d10fd0b98e92444a776562d46968446b9454710edb35d3ca56eb9e4efa0f2a30ba2c469351f0ff1b36a9963d9647c7174d2faff8ed0bdb1a1350282010100b3e10e58878127aaaa299616b4ce1ee086d772ea838bad25e11d9135edde665f38c1b4bc2e208c80e23518ba556f1248a9e0f3180ca592640ae046c9dc832a7da8a2e9cbb1caa59a99a265c5d81f1614332633db64849a2c5059845c255fd260306653085d047d268dd709018e23d413aa667217c338b70114cb0aa36c8269d355178cae23753d83a18d2c59faf5c2fd618c5c5713f368eddaa4c4ac1fb5d40ce722600e9d0cf74a67022d60593218dfb526a5772065206d3860229d3413bbbaddf369ca20391fb1c67cd9cbbeaaceb33cf02cd0427312adced8bc464448c706be21973b3b697e5c8410f5e16388fd2054f3e40704f87452cb18edcfeb3d65f10282010100b6d88d0b9b811958d1b3939829388a9a950ef75fdf0c582022350e03d727d696aa2bf03c7abfc65709e53213b93c367eabdc47448b0462409e2a1f2c3c4e1a9feb419f6691f47ea6da9c24ad8505d3c39488a9ef8fc1dafbb35b3603d5ae6f62f62e487328d9ddbcb3dc97974ccb99cca1ebfdb1388debd867846d0f004f95623f03bf4241c09d72a712ade8baa58bf53c239ffe5baf5078d787d8d0168cc1dbc01162a316bfb51f45a541e5065d2194c05762c2f6834923a517a8f01af02d3c0479939cb8081d45530b029f6f8c1f9989f0943cbdc413437cb090bd9e3b8a8221504a94a3833d6ffc6dc7167fd281a16d7209938b984825b34a58ed62707dd9028201006838fc4ef8d5f90ab240ac06edd5efb7113b93bf587f769722bedf2b6b0ddbb1f0c0263f0f1cebf5c44200fa296a5e4c94a26d0b54528716be8d2df357f7151f7e9865a3ef24f6a88d35d126eeb642130d5cb8863f4189c0ebd37364eca821d14c0ab53f358b2fa42c1f0b1af668deb578de060b1e330eb99f89b22e406da3d3c4c2a3150347bef878e7e98ace7b68311ab3b9cc5fd010783e5c8b67cad8d7a94bf8a830f4f33cd7fdd3dbf0237e951f9f131d0876ca8f490df696c1664c53c9f8d6084dc69c88b504d66f4101cc0b39110c789007f697025c95492a6f4f22b5011d078b30b8731972e8c0b8a48146c7fe0c71f77af5bb9b7be1f4643fad0ffa]\n\n# tcId = 44\n# edge case for Montgomery reduction (32 bit)\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000\nmsg = 99e006f04adf3ef6cff04bd176f6e94c43144fc777990aa8e3fbe1af20609cd35d1a8c65d0d35dbb0b9470de1b16249b1ef4e45662211314ebec26918c2545456621c256769ba4616620e67f9f40d149952cafff6da800aa5e4f67938e7f8f39abdf666f5bb878c5916639a482c26862f83027949187d5342c28eec832d2c225126bb511ea0fc0d129e9b14f22baefa3ed561119d95f3b65b9c2416435f95b056cc7e8c475d2b08be64f7fda96ede5d16439342bfc8b0bc4abd5f99ddf0345357c95c262f0dce559cabed922335eb4498f7cb25c67293db85185bbf3499d83af7559fec55b5b2b3456b19b47ebb0af5f9f34aa2a7b2931994dbcd1990d483821bca54606782b71cdf01d07fa61bfff5ef1ac9b6006da06b4cbf16664f39d3fe6e5ed4618ca502e8d325287f145d7d7624beeda415f4e7e8776b8504142d10859b8ae3243cb22c92998457051782a2bc68f6b2b5b8845b602d5a5989c5dfb28f5f8ab0f465fa12d0d47325d42b021\nresult = valid\n\n[d = 47b209663856b2eb04f0e76bcc2416e4e123881198f093fc3efa8a258afe268bd5bd1f3d7ae25fe834fce6e8c171b3741a4b853431cdb5ac45675a319cbcdef5d90e67084daacb2502901e8abdb8e82d8121cb51491c2bece23845d0d58c63e406037f8bbd219ad47c8071df8175ee14e1a90a9829d83ee414ef6527f6daac387449f2cfb2ad770a44cdf325c903331f6653a1e851811b031d7eebbc0a1b121dfcacf5047b22b1f3462226974e5a13d1a16e441ff93b467df1a7d212c47a9f9b78d9ef23f001483f2a6f65702c86e99190203722dc855b7749ea8628e3552438d96cc8956fbfa428a930cab99af26ae840697cc674381a16de", + "5488f5a729beaf06d1c3c1cecd143a01c2e96c2001c91720b1ddd4f71a8b6b448559cab7073014bc98acae932bd1a843df36a77ff1df7a360722de18907b149b51de7becf5e09a1c140cf280405cd46914953a02d9f498bb1aebd3c5d847fdd1452a76f1e9f6fb664d170d21fed4bc4f968efa65be23016274900a3ad7bd855085463b29757ff05a99a284c2e259e7026e72cb3ad25fc9596112052bb78a2562696170e175d1746d60052e0912cf13b0a6880ea5448629cbbdd5668edba0a31927ae84a8c2268b140bbc17404d41011325e745862129a9a73c4e52a14432a404f7dbbc4aa3a8da6e119c23d71866ea7500a3cdd0a5ba7ef057454a7357f8bf2f58c7606ac80f21]\n[e = 010001]\n[keysize = 4096]\n[n = 00ba2574691642af63d07eb20436ed4f1885f519820c79ea055829258bbee2e897af1e55806ff6dc2f59e35bc280e841c7247226bd27c14712dfed7f4a2a9ef08d17e05bc0084ea0af63c968590c449e5bd12d9f5bfd9f0dfc73ab4bbae84d02e79e3a5a02d8b96467aeea574280db3899810b382d7afbe3cf1d585b451b44877205039f2457d70b605db67373ade6d981f8d9afc1e2af2cc4aceb23fe317149560d2212cc187e8a5abffa9ca528b92bd47be43a27d9d18c3154d2e81ca036e3710ba305076f7896c0ae6cc279ae68eda5eacd24326bf3aadb13d5e453befdbe76a2b103fa52ee35d5fc677c814e126fb578903a941f0f566b0fb6ba6dd1237eaf9ae1c2b9c1a934d67facfbc382099a8c48c161764660c450df001478a8c2e09d2886bd81b9e0b7fa8ae2263644a926ba9de5393e4e714d47c3375beb36349a2b4c2c45eabcc5472d767bbe0743c0685716b1f50d209c0b4d3b45b6524a514d460c967e72529e6a49d38e722087c51f9d9f2169d93859e196e0a94d49df35b564433849a23be96737c07988dae871a52f78e5bdb83635b243d58dc7a4b64563bc2080e06c874e0d4938ae3604742306a194f2569438bc57b86dfd2f4d544e6e7b3609b51623484400d5315297674726c39fb23efb2499f585d998f09d943a6854428549225bd8f30b2cca68b2bd4d04b7d8da8e49d885d132f40e94ba343fb7cb]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100ba2574691642af63d07eb20436ed4f1885f519820c79ea055829258bbee2e897af1e55806ff6dc2f59e35bc280e841c7247226bd27c14712dfed7f4a2a9ef08d17e05bc0084ea0af63c968590c449e5bd12d9f5bfd9f0dfc73ab4bbae84d02e79e3a5a02d8b96467aeea574280db3899810b382d7afbe3cf1d585b451b44877205039f2457d70b605db67373ade6d981f8d9afc1e2af2cc4aceb23fe317149560d2212cc187e8a5abffa9ca528b92bd47be43a27d9d18c3154d2e81ca036e3710ba305076f7896c0ae6cc279ae68eda5eacd24326bf3aadb13d5e453befdbe76a2b103fa52ee35d5fc677c814e126fb578903a941f0f566b0fb6ba6dd1237eaf9ae1c2b9c1a934d67facfbc382099a8c48c161764660c450df001478a8c2e09d2886bd81b9e0b7fa8ae2263644a926ba9de5393e4e714d47c3375beb36349a2b4c2c45eabcc5472d767bbe0743c0685716b1f50d209c0b4d3b45b6524a514d460c967e72529e6a49d38e722087c51f9d9f2169d93859e196e0a94d49df35b564433849a23be96737c07988dae871a52f78e5bdb83635b243d58dc7a4b64563bc2080e06c874e0d4938ae3604742306a194f2569438bc57b86dfd2f4d544e6e7b3609b51623484400d5315297674726c39fb23efb2499f585d998f09d943a6854428549225bd8f30b2cca68b2bd4d04b7d8da8e49d885d132f40e94ba343fb7cb02030100010282020047b209663856b2eb04f0e76bcc2416e4e123881198f093fc3efa8a258afe268bd5bd1f3d7ae25fe834fce6e8c171b3741a4b853431cdb5ac45675a319cbcdef5d90e67084daacb2502901e8abdb8e82d8121cb51491c2bece23845d0d58c63e406037f8bbd219ad47c8071df8175ee14e1a90a9829d83ee414ef6527f6daac387449f2cfb2ad770a44cdf325c903331f6653a1e851811b031d7eebbc0a1b121dfcacf5047b22b1f3462226974e5a13d1a16e441ff93b467df1a7d212c47a9f9b78d9ef23f001483f2a6f65702c86e99190203722dc855b7749ea8628e3552438d96cc8956fbfa428a930cab99af26ae840697cc674381a16de5488f5a729beaf06d1c3c1cecd143a01c2e96c2001c91720b1ddd4f71a8b6b448559cab7073014bc98acae932bd1a843df36a77ff1df7a360722de18907b149b51de7becf5e09a1c140cf280405cd46914953a02d9f498bb1aebd3c5d847fdd1452a76f1e9f6fb664d170d21fed4bc4f968efa65be23016274900a3ad7bd855085463b29757ff05a99a284c2e259e7026e72cb3ad25fc9596112052bb78a2562696170e175d1746d60052e0912cf13b0a6880ea5448629cbbdd5668edba0a31927ae84a8c2268b140bbc17404d41011325e745862129a9a73c4e52a14432a404f7dbbc4aa3a8da6e119c23d71866ea7500a3cdd0a5ba7ef057454a7357f8bf2f58c7606ac80f210282010100f6c5efa726d67582948774bb07f4c6b04724f09bc27b1dd4c1e52031a46de3404d7a1afe336556c634209308d1800965a42aa4237a82b2f5f1d441694b567fdf80c4778425efe8d45a35f3b6195949be1039a2849890d4a091465d23d151410eb7115187c39f5f0a935815472bc99df4b5fc459a0fefd6a6a0cf9d33aade10ba8074bb00d839947515fcfc0671fa6608d9c6863cea8272cc0409de80f6b54df88b7fb239b5ffafa4ee78d27691fec96144b1ca4735c811357e900e477cd7bd8f0fc3c2bb9d08b0d8c5044da78a39f296a98b1f325201bb39b5bac773177b5d014c4b86c104b3dc024ca8e046c7a034582073c0d31f96242407ecf281523720a90282010100c11b35cc2c9cf70936c667c92837a9ec7fc3ed822ba0a90adee398d157d73d75b76fee3d81f46763de46cae8e7c1e59ca486197bd47e7fa7e5ced4ff5b71a15311c9c4121daba254c017f766ceb895932031764e80d2808be9d7261b2dd70b9d34b24096d129731bab863be611e17ec8cd5633e5cca6ba4cdd39a9976f4cdbc148cc63b4c960b584930619f7844da38466bfd95cef098935c4e94f683caf83f13b6d6dbf232991d8c967b49884d32bd837ff2457d723be8af30c950586428c856825736dc5056889864c45aafc7bf99691c4f9dd64f92f3d99c726e9b7c07d513a759d3f16cd7c1972b5b7939c11061e6b332a0559c2d3f35b1fb83cf556b953028201007b3bedaa33a2f59bf8408cf2b9ce6b4aacbcadcb9b1b909227221d29ad4b93291187e0e30117a275e8a23bcb3394151d45166651b16483aa7ed1d8b8947ee5ecdf893d8628cbde21edcaf3a20496aa54d815702b77651c49f3428850d2bf19161825f5e92eafefee801684c9bdfc397d7344401de7c78612404c6ddcd77f7e2b24eb26580da2f398651aa9612e9a354a4636f5e285da0f2a02fa4abb6c78ae2f68baa46e5d8d0a51fb252b353b43599dd18857d3a7eff96815842b1d582304eee498862edb04f40bcc979190115f4ede1e5cf37f55a4b7b2e2261c64455dbddc6015777dfcb3353390c4e4fb73c5755e6d16613d0d91150b4949f2f0d1f5e5c102820100744511eb51a1610ce73227237357b0b479695b0459886ebfe0dc61130b34ca08aade76300aa341ed5bd47c3027fb136971965c99b6a443f0afea0d4d839db368f4f8eb598d0bdebdf0bb7d772558f6969377b4a827e0970da74aa7e30d82c1b7721731d49d33bbdf1933c5b50d671c93832f38285144c23fada41e7cd3c30f3e1dbb12fdb392cb387bdddc9cafc89f8004edd6cea20eb7d2ec311e62c0c75d464e65e10289056a8f81153423f135c4dc773ae4830f42b263af5c100e377cb2675101dbb268428d62e0bde3e4c409518a5b52a2afaf306a4548e62483ece3b590c706321bde7af311cf83a278fa2b35e7f2dbe79d392299c399464c04482463890282010100de0cac8a438a75b3efc7bb62347b015d2c62fcf59375d2bc4d24cb5c1403807d13ae85122fc505f5da0885bbf4021d178a5c77d906bc1eb652691d5ea13fce1f6c26ca5e350a9003e861e4c65e912592b8f9c20b9feab6d730ad6a24b3a38198ad22dfd757e282ca5f4d02fc8b69ac8c6305e7fa0eb02127a9f4f3ced6969ee1d2cb3ef8be46dccc4dea864510952c38bea3e876ab6ff54338c2f5671489e0e793205994ba38520502998123217d182aa93b6b2e76dd100f7d3199a83ade357405f6610eb9d330fb12373c6bc7acc44fd9db0f50025e63be255c8b5d8b43c69d677e8d00ec60e3fbf7951c8ee5547ba705d3c1f72020b75fe37ae12d81179b0e]\n\n# tcId = 45\n# edge case for Montgomery reduction (32 bit)\nct = ba2574691642af63d07eb20436ed4f1885f519820c79ea055829258bbee2e897af1e55806ff6dc2f59e35bc280e841c7247226bd27c14712dfed7f4a2a9ef08d17e05bc0084ea0af63c968590c449e5bd12d9f5bfd9f0dfc73ab4bbae84d02e79e3a5a02d8b96467aeea574280db3899810b382d7afbe3cf1d585b451b44877205039f2457d70b605db67373ade6d981f8d9afc1e2af2cc4aceb23fe317149560d2212cc187e8a5abffa9ca528b92bd47be43a27d9d18c3154d2e81ca036e3710ba305076f7896c0ae6cc279ae68eda5eacd24326bf3aadb13d5e453befdbe76a2b103fa52ee35d5fc677c814e126fb578903a941f0f566b0fb6ba6dd0237eaf9ae1c2b9c1a934d67facfbc382099a8c48c161764660c450df001478a8c2e09d2886bd81b9e0b7fa8ae2263644a926ba9de5393e4e714d47c3375beb36349a2b4c2c45eabcc5472d767bbe0743c0685716b1f50d209c0b4d3b45b6524a514d460c967e72529e6a49d38e722087c51f9d9f2169d93859e196e0a94d49df35b564433849a23be96737c07988dae871a52f78e5bdb83635b243d58dc7a4b64563bc2080e06c874e0d4938ae3604742306a194f2569438bc57b86dfd2f4d544e6e7b3609b51623484400d5315297674726c39fb23efb2499f585d998f09d943a6854428549225bd8f30b2cca68b2bd4d04b7d8da8e49d885d132f40e94bb343fb7cb\nmsg = 03c00834c2f124714a360797030b05892d805301d149fd167e4e72131ec49c5b1fbb3f960ba589b88b03be5c1f024116614dcb9896d9df409a2681183e2dac5009b96a3d075f24c6f39b5ac8a2251cfbf0ea06aa593fde6f0217bb0c2b02d2da80bf27b233389bbe61532eb44baa1573cf424fc9122fa6e9d850bc94b59331e7af03fddd15fcaa7e9633dc7bcf3c3e0cbffe1c4070d90d29e3d9170be49b90af9709c050754c5b7164f08b35b6559c437b2df91edd87d3dbfb495777506c4d5d6dc59d6e18c4ed191ebeac9fdb808f073f1f68f512a7dc9efa70f5bcc72da71626678716be2686a74eeddd305cc2a09a70ef6724cfcd5898bf0624\nresult = valid\n\n[d = 482f06ab7a9b4b89fe54ffdb2f8c2ef71884358aa6947ea846c18c62303420d99148ee9dbd48d7003bc51528c67df221f5ba529b5b16c048f2f88cf2791fea861ff0b3090ff87621b6b26bc34e587990d1894567cd26936eba995f0fe0cdcd4964483d5a86eade13a8e9d", + "66b71dfa58b45746622fced5009db0163c2da055f74ff7d3377eda241b23bacd2bdd8fa8c2548fbcb0f0d537833736458748257471575a703f7395de15bb58beb45cbbb54ee093bb27b82eab7d5c2daea78dbbf20da8b3fbafcb91f7f36748de0482068622ffdd2d7d20e6655b5670b82d181a944f290a0bcfb9eacaa35b3bdf71934154f72fea2491c788005be1ec0ea095d333612a2b91800d74635853e54db6cca42384ffd3f8792eb2677491f73a576879bbb05eda716879fbc7daef0516b5047fd038068773ae8d28c1519f6a49cc1c31e5be75e2ebaa2ac3d7f6b70a59e226bd0b6d129ed057164db194e878bcbb25f3d00290f7de8a03cc9f9f3512d2ff2a7a351e8d9a946ee463898b7aaec247d3a509498934c79b51b1b02a9de9c1526d530f2588fb39f505e10bb2f3199f68f358e2dbb50e7d275affd566e671702f62d2903ba033aabfb32d7cfca9b8c8d2f08d8be6448321ca5fd08dbf2c8003e8a1398b48be83b6557fd8a0805e74f2372aadffc4ba55963aad6d8b8388147ab31cc900b57ae6fc4fd98e1596c0287755679244971]\n[e = 010001]\n[keysize = 4096]\n[n = 00b2845feeb37077af6971653432ec64f69ae8377a6adfc8f17c04aad4e1ba393e94cb40ddc33de80d7958d886bd54bf3280cb7d4abfc270227feafa6d1ae10190bc7b5f587abd7ac8fb84d5aa640a6eae88f737d8eb636e241278bb6c635d11a6c0d63e8c76e9d452246049c76e81854d8154776576abc5558b065d2ac135aff52b91fa40d9e1c69f4141a2fa1fb09a415a8c2735c109e82fb7e49a0887345f7d83c5aabd6518cba7f6ccbb0a9de66cfb761109c4c6ad731e20b27f79e591af2d9914bbc37327610250f508accfbddeed2e835bbe5e99232946c2ecff8a7ab64538dfa24c3c83ee3f6df87425fa08ebf2b0556530aa4c42e8be1b5da67fb73b25580c924d028669fd4e5398cd1e0f9ff81bb3c285758a6f32ad93345aef6d99f3f220e0fbf9c9f5a5a36e9552d03c2cd91119d74b5c0d8069794bcd8a51c8130fe967f43765df57fb53baeb3d192a2b215dfdffe9add6e1707c85d4f3b7b0ff3a6526139b3b3f56a0cc6bb5bc41fcedd5ccded169a7465c9a6bbc1c63940a0385b19cb1ae1f8d6c2d7585a9b33c4f288fda6b89fb597281fc8136775c503a9cca137df9a6d19e1e433ca63de46cdcb42de2fb98e8544a5d8959c96d3a5e4e478760dcabbc4a53e64ee5b86dfead08e0d2897da537c203b90dfa7c9d16c064c4d4a71505da3b1342fc9c3d07a139d5c76c5e674f3e6ea1498d1e1351d6e25599dd]\n[privateKeyPkcs8 = 30820941020100300d06092a864886f70d01010105000482092b308209270201000282020100b2845feeb37077af6971653432ec64f69ae8377a6adfc8f17c04aad4e1ba393e94cb40ddc33de80d7958d886bd54bf3280cb7d4abfc270227feafa6d1ae10190bc7b5f587abd7ac8fb84d5aa640a6eae88f737d8eb636e241278bb6c635d11a6c0d63e8c76e9d452246049c76e81854d8154776576abc5558b065d2ac135aff52b91fa40d9e1c69f4141a2fa1fb09a415a8c2735c109e82fb7e49a0887345f7d83c5aabd6518cba7f6ccbb0a9de66cfb761109c4c6ad731e20b27f79e591af2d9914bbc37327610250f508accfbddeed2e835bbe5e99232946c2ecff8a7ab64538dfa24c3c83ee3f6df87425fa08ebf2b0556530aa4c42e8be1b5da67fb73b25580c924d028669fd4e5398cd1e0f9ff81bb3c285758a6f32ad93345aef6d99f3f220e0fbf9c9f5a5a36e9552d03c2cd91119d74b5c0d8069794bcd8a51c8130fe967f43765df57fb53baeb3d192a2b215dfdffe9add6e1707c85d4f3b7b0ff3a6526139b3b3f56a0cc6bb5bc41fcedd5ccded169a7465c9a6bbc1c63940a0385b19cb1ae1f8d6c2d7585a9b33c4f288fda6b89fb597281fc8136775c503a9cca137df9a6d19e1e433ca63de46cdcb42de2fb98e8544a5d8959c96d3a5e4e478760dcabbc4a53e64ee5b86dfead08e0d2897da537c203b90dfa7c9d16c064c4d4a71505da3b1342fc9c3d07a139d5c76c5e674f3e6ea1498d1e1351d6e25599dd020301000102820200482f06ab7a9b4b89fe54ffdb2f8c2ef71884358aa6947ea846c18c62303420d99148ee9dbd48d7003bc51528c67df221f5ba529b5b16c048f2f88cf2791fea861ff0b3090ff87621b6b26bc34e587990d1894567cd26936eba995f0fe0cdcd4964483d5a86eade13a8e9d66b71dfa58b45746622fced5009db0163c2da055f74ff7d3377eda241b23bacd2bdd8fa8c2548fbcb0f0d537833736458748257471575a703f7395de15bb58beb45cbbb54ee093bb27b82eab7d5c2daea78dbbf20da8b3fbafcb91f7f36748de0482068622ffdd2d7d20e6655b5670b82d181a944f290a0bcfb9eacaa35b3bdf71934154f72fea2491c788005be1ec0ea095d333612a2b91800d74635853e54db6cca42384ffd3f8792eb2677491f73a576879bbb05eda716879fbc7daef0516b5047fd038068773ae8d28c1519f6a49cc1c31e5be75e2ebaa2ac3d7f6b70a59e226bd0b6d129ed057164db194e878bcbb25f3d00290f7de8a03cc9f9f3512d2ff2a7a351e8d9a946ee463898b7aaec247d3a509498934c79b51b1b02a9de9c1526d530f2588fb39f505e10bb2f3199f68f358e2dbb50e7d275affd566e671702f62d2903ba033aabfb32d7cfca9b8c8d2f08d8be6448321ca5fd08dbf2c8003e8a1398b48be83b6557fd8a0805e74f2372aadffc4ba55963aad6d8b8388147ab31cc900b57ae6fc4fd98e1596c02877556792449710282010100d697b42742c06fa3ecea5f9f967b6451e777a744aa6fc59d504d18700c9070de144907238bdeb8709a273a3787d40e4b7afaed6879dfaa64f1ab020606270046225573e316a54abb8052e6c8cf0ca9d8478248033e791be2b86928d5af56af1109b2ea4d14dbab60fb02d8f5ef473c7fcc2b3a0ee1a71cd4db03560f1da9078636e6aa0b5dfc3cb0ab17aa89155ad36cdccb3863720abd0f84c65a2b198eaaf3b819b08b145bdd5ef0bc4c8820300626b6ca28ad2e7e37a32739fbfbf6d85e57d288abc207e985901431e4fdc1f8f806f86969b9aafbd7446373f29886a6cca02e51775fbb4bbd491d908a45e36c87d367e7605278137fcf972d59a718889d870282010100d4f6a364c7c804abf5770a404b098ffb7884dc484d59ef06b64be57d3ff7d61b276822f7b504a6c8025bc31cf37fb212973eaed76e7a45b5e59451cfcd58fa4fba42fd0cf310ab8410e9d374d9ad43c004eb3e6d31c458110fc9cb2a05939fd207e0d32711d96bfb0b67d8cbd06e1d1b00554cdbab3da6a204c3999bc47e98231b9aa9737d5d1e4892e20a1c55a2b001c723d3463db8493c27aaa7847c22bc4ded4f76c49e1f87af7f5ee40e6f8978043ef75e2ada2f8230be4bd0090f2ab8cbf3a963b5d9033bf64ee353d95e084bac42734679000501e630eed3aadf69467f08b18a2fe590bcd4ac62905aaed7fef3f24b09e15b74ff2138f6a9f52529467b028201006b0f1459e1fb8fb700a38d41591a065ab65803a34644ad1a66cd8fbb970918c632e89c1f27d0ddc38fa4b26eb1dd21a4969e49832e0a60402c315cb914a8b0824ceec4fa2e7a1866a306b90cc5ff535d0b8ffbcd6285995beb14cbc28fcf7757d0b6ea1dbaa23d460cf4c6b92bbf2677bbac7532a7716ff8e1ab306c2a280210fba2e882f348bc1e87bd2edf654002eaf4dc8e2d4edffca299633be8f4bf309a96e67a2568eacbee69bc0792823c73552d2c7e4ea83b60168da3680bb4830dce52c2ccade8b4a065d92d6b490e54dfa8da95fca11ca4b828ee55125af6129153f8c7bbfe8ebaa29caf9b44e0c92d8435fc487acdaa0a506188d29f3fb605b2510282010025e7d4836eafe26cfd1ef81b23800b39b664e79492f80bfc84dc1377ecb7df4b2c03741de50173f22bc14b844eaf0ef2122b9d11495fc822ad3f6e246fa783be4727ff449bcafecc5dfa50a1fed0c13b5f64c3d2c9c5e9eaf785727d034b186a58eea286d4bd7f63caceec1eb2f5b68684d3a9ff7b8658af83eb90ded1e5ba8c9d30353312404dd09b1c52b26267b7ae4954ce19358924b7e9538dc79e14ccb18e28d3ba016f19469a8438517d76d97edffa45af98f055daf934234e497dd030b529144f5cd61f8922d781a831fd86029e3d4870e718fd128ce92591c77c4488fdf223e78c93eb986b2a8c09280fd81871aafb923a2623f734dd6ab8f0a95d1b028201004e5f6536b303b8b361aebd5c2ca88836f542a54b3484df241eccd737a3e076822bc73c5845316cb5772c417be5d318c43f210c33f9ee243474881912cc1fc27bcd240d1672fa0d736577987ee9dbbcb7ce7105f7fd0c4453e52f04aef02e6598f235aba97ccc15496c48dc7110d68a0bae39f029b513b57f98796b65cb82d26f3a43019ef62883fec9a9cc9853eb89bbcd3ed903c36a13af4bf18927c32610ae158d7a068066bacdd9a369a07890c8fc6d15916d1f0d028f559bdbe6fc3730bdf0d64dc4a87185d490e4e330ed2b64fefc78350cd8e092444545785ce6331021e686aa767822d6a412be6eb3745b6f9d66cc9e971f761adacad563f6e2d1a8fc]\n\n# tcId = 46\n# edge case for Montgomery reduction (64 bit)\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000\nmsg = a713459775c7cc5c1990922de882210bd021efce7672dc10d18e4c95f47ec3c6e9764fe5526a28fe8ac2b6b2abaee272bbbba65bcc90768c779870b6e3b1cf6a5c37826f43f8204c1705f78f33796f177816ef160377fd41e40b2cae9c8f804f6976f4a6a9d063a456afbc890d6e72477d912c7c86fdc553c9da4906adadfb477e92f28aea91da2edab45cd1230ef8f4138e923aebc407751cee06fcd694e4d0808cac2ae24764280547ac5642260e08a208fb9fe1f6bce4134d8310f356700109f50cb836c89acb72755a3e4898ce6bb393e0477a7759d5f9e1e514caaeb2eb375845", + "000dd40e80ff962af29ee6a41f2a546475f6a2845cd9d4fde9eaa5b66667886eecbcb06f8d917ad14e9e7b7becda4c59d96164c66c\nresult = valid\n\n[d = 4cd419ea4bb5f68b7a6874cdb1f8390f332c68966b32c17b2493ad8371546f7b6dde1b85506869a459b6c3c1988f59815c55f3a02a3520db0720c8a477ba1b60e19d0097aac2aaa680a65b1b67ee677781d04a56337702aa35494de498b082ec459de3e0fb94476feefedfcbc4a5daeb872e47362a71829811b2883a2343426d17f4e97b2a1b4b480de73923f80fb348c1362a172db4c714a75b1e6363ece9f21c249d55b9b9939c7433a50fd3ed64bf56797c576df42666f1032eb9f894103e2fab39e9d43f4110517bc9172a0f1d3f6227ae699365613b6f98f0807fc2158b92cc4157a3e5897900b0031f1752c4fdaf7da8a0e6ea684663ae9694f6769231364e88e84777f8dc01cafe167bcb1bbec2d78038aa94581c5acb8ce53db7289eb30a04bebbcce3f0b9ac422dc4ee744915744f3aa2a8bd9e69bd13799f68e546242474d1fe6e2b4ec8fc8753ba2f0765f739c8cf30aac853b83511c1fc820abdff8562c1d42faac71593e110a361a216707c409fa0386d688b4927c7a6006a9a17362bfbdff09383a76a2b06372d4e3ac32c3b4b9582c49e805afc02618fe22e23ec302f6d986244104735128bd9aed7e9b805af2d915629c1e77f5606c39a0516d849f6d018eab0cde40734891b2090d8b739ede9ca2be26f3783577fd42de77e05b76beffb4322123cb846628f3131067c0d22301bbda8a0a420818f4ee881]\n[e = 010001]\n[keysize = 4096]\n[n = 00e96612fdccdb8f7934ace9778ad3cf0e1095c136190153446f948f62f75f18ee281a990cb557ebbda24434134676b7105cbde9fa108eb8abd4540f957d30404e308276fbbb703148cb371e2c9566396f072d4c030f2b0ac0f9b77c1ccba53d2e9b5c4e11c515c38193d537d722eb4fad6ecc0446fb7fa988ca6dd64ef47251e87606afa6ce1b24ca75af69f2b328c72d04270266b11f22ba1f4d36a6f1ba5d6115187f9e4d62e090c5767ae8ab8307302247dfd412b26870958ba1d6f4edc5495ee4129e9699e105db554aecf7b55fc218a5db03bc58f5cadeee97be980afaf3dd4cbe5723d0d5953fcba454c1d42b0ec79d14aaa334c907f647ea4d682c0e93c259484dcffb855bec8d62411f29f6992d3cff7dd4ddbfd3bf439546452905877e571b019ac9b5b68360934386a1cc4c44ff2549eeaea9328bcda83f4d9906631a1fc475906cb9c92a5a9d2529a2052e0e385115ea25d6df83764aac0f34177b499e619fb82cf669bd6cc00ed8c527a8ebfff3f88c92612ba89a388179ef8251649c9f40841ae7da957735121c80694e94f4cdf29fa4beebfb71abbc803e17da861b7c006afbf79e95a85d29c4d7a4cce93415f923012d0b8888b1d35504e04779a3138a2ae4c8a88c93370f36440deb05ec3d6d84a715f071c1a40c2256a4ee1884839f210e2c6d073ea94f6eeaa06ef16f9464ffe5992c1ca3b24dea69a345]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100e96612fdccdb8f7934ace9778ad3cf0e1095c136190153446f948f62f75f18ee281a990cb557ebbda24434134676b7105cbde9fa108eb8abd4540f957d30404e308276fbbb703148cb371e2c9566396f072d4c030f2b0ac0f9b77c1ccba53d2e9b5c4e11c515c38193d537d722eb4fad6ecc0446fb7fa988ca6dd64ef47251e87606afa6ce1b24ca75af69f2b328c72d04270266b11f22ba1f4d36a6f1ba5d6115187f9e4d62e090c5767ae8ab8307302247dfd412b26870958ba1d6f4edc5495ee4129e9699e105db554aecf7b55fc218a5db03bc58f5cadeee97be980afaf3dd4cbe5723d0d5953fcba454c1d42b0ec79d14aaa334c907f647ea4d682c0e93c259484dcffb855bec8d62411f29f6992d3cff7dd4ddbfd3bf439546452905877e571b019ac9b5b68360934386a1cc4c44ff2549eeaea9328bcda83f4d9906631a1fc475906cb9c92a5a9d2529a2052e0e385115ea25d6df83764aac0f34177b499e619fb82cf669bd6cc00ed8c527a8ebfff3f88c92612ba89a388179ef8251649c9f40841ae7da957735121c80694e94f4cdf29fa4beebfb71abbc803e17da861b7c006afbf79e95a85d29c4d7a4cce93415f923012d0b8888b1d35504e04779a3138a2ae4c8a88c93370f36440deb05ec3d6d84a715f071c1a40c2256a4ee1884839f210e2c6d073ea94f6eeaa06ef16f9464ffe5992c1ca3b24dea69a3450203010001028202004cd419ea4bb5f68b7a6874cdb1f8390f332c68966b32c17b2493ad8371546f7b6dde1b85506869a459b6c3c1988f59815c55f3a02a3520db0720c8a477ba1b60e19d0097aac2aaa680a65b1b67ee677781d04a56337702aa35494de498b082ec459de3e0fb94476feefedfcbc4a5daeb872e47362a71829811b2883a2343426d17f4e97b2a1b4b480de73923f80fb348c1362a172db4c714a75b1e6363ece9f21c249d55b9b9939c7433a50fd3ed64bf56797c576df42666f1032eb9f894103e2fab39e9d43f4110517bc9172a0f1d3f6227ae699365613b6f98f0807fc2158b92cc4157a3e5897900b0031f1752c4fdaf7da8a0e6ea684663ae9694f6769231364e88e84777f8dc01cafe167bcb1bbec2d78038aa94581c5acb8ce53db7289eb30a04bebbcce3f0b9ac422dc4ee744915744f3aa2a8bd9e69bd13799f68e546242474d1fe6e2b4ec8fc8753ba2f0765f739c8cf30aac853b83511c1fc820abdff8562c1d42faac71593e110a361a216707c409fa0386d688b4927c7a6006a9a17362bfbdff09383a76a2b06372d4e3ac32c3b4b9582c49e805afc02618fe22e23ec302f6d986244104735128bd9aed7e9b805af2d915629c1e77f5606c39a0516d849f6d018eab0cde40734891b2090d8b739ede9ca2be26f3783577fd42de77e05b76beffb4322123cb846628f3131067c0d22301bbda8a0a420818f4ee8810282010100ffefce7e0400b2943194bb507ee4f6c45a078d133309c0f84b6a2247f41f6c3586af3fe8e139234f61e0e824c8a7e6b35e2512fd9c97411604be1aba97182b8961642cc0cd65dad7c1526e1ea7cd511dea30c2fb13d401cf6c34a4cf7c0e850429d040de98f58603bcfef0056b5bec78c791e0801845bb0922e661bcbf2b5ac0796372343da4cdf70f8a88646290ea46a076625dab1e7cafa9acf8a84ef0309a1252792c873eecd69671373001b07d778daf537317f2b09d681d7995c086e874aecc7b372ffbf17a7bab8638619cfa05894462f3b988ada31b21cd0f60ed9c0ec6da51913831314234b2a400e21acb8f4b61f5da5e6d07476a472094d3e776250282010100e974d7712ad9d789faf1d17cfc92cd84a590ff6713125ed9b5917834935e15f21fcdd4f0d2958c0f09842df63a5925ee9b264b8210f36353cc614fcda8a6159d262c10c3c2228904528159c72e3286be86b12d5512bec1b3cc1b730f4729fed4d81d2e356a874d61ff963c1cc9dc7688511c991d54f5780570cf0f723308c8c7e63f82ad69f30124dca90470a8701735695b6566c8c184f87d5f66b3578001ed83ca19fbf138a2a24735175bda6ec2c7a9a039f8a60d996852b1e81c47ebb6b6ee53b838781e3e3ed3a6b529f0f56cebad91bcf62ef0b97c9d323878d4e01eb909b6f26adb490cb6d23aa207663cff027826e65e23c19395fe499dcb8e001ea10282010100e48da56c396cda0ca6fe380c595564dcd1bd1e897fb17d26fe49c8555337606da85a060b945d6f1febbb69f3b750e11f5aba66ec1e13a0a6e613525140aeefea1e13d43754f5596a0514f48be1b3e37580768d18a48b5616827dbc942127e2376693b7ea50d4291a5b839a9a6c5649a54e2b023dc1ef3b689c46fa0f10f4c9754ab1b901d7eebd939cc84ca6c0b2c2d3d16606cfb9095fb58b239166d41f807786572a28ce9a2dec2faae8eab10787f3e48e264a889f4c8334bfe59d0ab22f124c2b04f9b29b1df910498b71fc11afe093c5834c3d6a460d7b2443383189df2bfefe658af6904f79dd0f8e8fcf5ab85fbda4bc65869f7cb994b9f1e9961684150282010042085b7bd5fc01fc342fbbea57628aa10f57a0f61daddf8842d41fa4f75df06528dbc6744b8c232e89a98a7a8fec714f39312ec05e5d09664573ece7a5e13c51d3df38eab5f9a0b9c9406f0d68a2bffc1a0af9608bc9caee3938366646e1b903a9112fe5c9f8f54957cabdbc02d8c9ea2acf24fbe7f0fa7ec776b9ceba62acafe60f66bdf82ed4cf015f09337861241f666a8496fb07c9bda3709d92f297f173a6083f2b450298f5bfa063b80663b7d253c74f3e66718847bac4397bee57dcb98755c4d0ac2119c8198398d081285a239b5792942b98c94e57044276e2f775992f0741303a5042395fe357bb320ee4ae651fd39f230bf8dbbf2e4164b7088fa10282010100f6dfcda12afdd3f8de2a3d09a17ed9c8db92c7752cd2efc29ef1f28332d27dae983301c4bd61b41171737520ce04ee99096fa9e28571ef70cd5b8a9334accf41d7a015c4cddeaebc36b63a395920eade555b483da478fb910104c1aa291bbec11df2d708178532f356c5384fdf357c0a9dd2c6d579269411942a33bc4ddc0baafc91fc1b273fe356223eea8491daf1a9029f453adcf92a16afdbadb725ffd130d5a51682723259c0e5c0b7c6ff491a3bd06c98cf2a562d9e2b6d24c7363342bb543eb32dedc3f496269b24755dc42b3484bcfaa3de7ca6e45638a0fc8996779b36deeb6a602dedbf1929205b2282c6d792d756487fa2d735081ce4f99a3f8e1c]\n\n# tcId = 47\n# edge case for Montgomery reduction (64 bit)\nct = e96612fdccdb8f7934ace9778ad3cf0e1095c136190153446f948f62f75f18ee281a990cb557ebbda24434134676b7105cbde9fa108eb8abd4540f957d30404e308276fbbb703148cb371e2c9566396f072d4c030f2b0ac0f9b77c1ccba53d2e9b5c4e11c515c38193d537d722eb4fad6ecc0446fb7fa988ca6dd64ef47251e87606afa6ce1b24ca75af69f2b328c72d04270266b11f22ba1f4d36a6f1ba5d6115187f9e4d62e090c5767ae8ab8307302247dfd412b26870958ba1d6f4edc5495ee4129e9699e105db554aecf7b55fc218a5db03bc58f5cadeee97be980afaf3dd4cbe5723d0d5953fcba454c1d42b0ec79d14aaa334c907f547ea4d682c0e93c259484dcffb855bec8d62411f29f6992d3cff7dd4ddbfd3bf439546452905877e571b019ac9b5b68360934386a1cc4c44ff2549eeaea9328bcda83f4d9906631a1fc475906cb9c92a5a9d2529a2052e0e385115ea25d6df83764aac0f34177b499e619fb82cf669bd6cc00ed8c527a8ebfff3f88c92612ba89a388179ef8251649c9f40841ae7da957735121c80694e94f4cdf29fa4beebfb71abbc803e17da861b7c006afbf79e95a85d29c4d7a4cce93415f923012d0b8888b1d35504e04779a3138a2ae4c8a88c93370f36440deb05ec3d6d84a715f071c1a40c2256a4ee1884839f210e2c6d073ea94f6eeaa06ef16f9464ffe5992d1ca3b24dea69a345\nmsg = 4fd402e32ac7325e647f987809652cc7918a51bd9aa5aace60bd8bdd58c566af21c59125dff9c93d3a540d3e5cb945d899757a5a758c1", + "59ec71228212084036ac40f62be87a27a5373137867b41fc1b862f280716fd133f50638dbf4944bbcfe483e5455387c0c138c419234d2f5a924c41cf113feaceda5910c0c046ca970b2a077e5f23ca50714717b17463245fb5160d0e47fd2644ada2524334173e5f6b32e76787f7d482e4f6385b04dbf6f67877dbc0c27bd6f7c0f799eabc1cf34c33dfbf01f4d9a7b8dabcc42374f3627cf99ab44a0e264dc3d87fb9104e81ee88e1cad0001dcea590c7d2eab64dbd98b1789609f788c5305603dc748e3068db19acdd2d385314ee16a1abca98729259ad5900d649bb1c4ae1bb039056af12c9158e9cf1ea49037571ba7d7312c448ef77dce4a243e1a89f1d45197560ad37d8595ba8f9415372c518456e3f3e7cf828166e282bb49df949351ce27fd1c4948e197d18dd2379c3d7ddd2580152e01db3e5aee302b8a2cb4668d55a6030d8c3f27dc1f1dc4aa7279a3a64f91b268ebdaebb4fad98f64c18e796107b0f7ee65b376a84c02e69756b91c7b4ab753361b9015cb467a50f9f2521aa9511d13498fcd58cdd1b8a971ba1da5b3299c94ae0d66f5af756908d9f88ba7c676e26ae9ac9dd1d8f59e60bfaff8c574\nresult = valid\n\n[d = 00a49f18c9b202254943f76f57871ec5dacd92c7f368170d71400e1627b98bcac1b187f79784107f4c5b18973d648ba9ddba7da5afd0724e8a6f4ce1b1158ff0429e14aab6d4d7e4a23741f9dfa49a85b6dbbb4162e96f09fc8338e4ae68b38be7cf82580f05240ab79973ccb117a6cfa68a2544e907c5188e1ad7c93f1ac703bb366981678104223aba0e4e4556d5493a0820087ea70d7ea7cd3c9d10b0e930fdf50ac4369e6ac284f785d0f83b7812c98a91ccf66d25e6f4761dc520e33f6c27baf986c6bf61ff25d8a69aa4b947dc6029cb4450b8900992473d72dc87fa30a986a09b613b646d373bd435d4565a1e4d7a84c1e1647e9c2604823d7586fdd37cb250e596d1e160567278c7d30b93c4e9ee07e4aec5c658cc25ec81d9f9a767c6685986836ed76b4209c2572074cdc0ca37c488168c28898a74a90d0fcb16cb313ea8dbb93ac933d2b5fed79494baa144795f3ab039846b840cc555cc36bc46cab4fd3d43db63477b5f2a59bf028f879fe6bd2c87a2f28e320cfe66d0960cdb5d5ef65401559b184b0a6c8e7d1f7b2d05ed0411074c225d13c93f0882e77443a496e3d1bfbfbbf28164f742075e31ce09b93f90398b029f3e80ce7c7cea584e83e3e3fdc2bbbef3b1a945fce8a9946d94e08f0e185f546177418780ecdaa5b751783350c369585d663ebcca0889a99cd18609c139e8ff8218ded12d9ec5e4b979]\n[e = 010001]\n[keysize = 4096]\n[n = 00a73eaddc457681b5c577e343aefd4f2e39dfc22e2f524cb1fb83561832c739894e1e0ba83f9f3f3775e2df7c8c707591093348eafcd66f3cff8c81aa24d2bf47ebde8681176fbec469d8d1f3e3e56bb0661bbe6b125c9cf538f8f6ace4fc95e8c024fbf011486549fbf93f0cd4d1ac742fe7fec14e2ab5a9fc552dcda3ff0699b4c4e9c6db2ce8673247be236d39cef8a0c70f309f9c766440117042a9677c0dd1780de11086ad38a445cc8177d405d502e5f81a8c9e73c4cb8ed950762a5b538738ba53c434dea0f78d9034d7eac88a89f2d751c9fe187e949defb2943f732ecc06a09818f1ba5a411eafc3aa21faf96f7c7cced82d3e24eed257ce03ed1aae25f172267e5d7641a27d56a654655475916d88f96b529982d896e7d11d7a8d9af6ac3c1b1d3fa67db2886d81080c1e214b8f6506683f8cc3c9948f0021c7b429df6d33b98ce6f5d1b8fd2769a5a808a94859480b3bcb9592e210a32e86768345952d4df6fccdde74ecbc4a31885957bccba8975fceefd1a9aa4c349f9ea07948136ed77474bd08301798914a6f116912bce8cd98100ba1ffba2382d040b08e010db24ac7b34b1f6bf2af74e81c72d96e08be8bd4956e87fda8885995a14a3d4422e3846711811bf800ba4a23b3c5b10162d6e0b4f186ace5c7ba86286eef6dae7bbcaaa5d7b69c673067d0407fb4f8d5ab6dd359e339ca1bf3102f87280d121b]\n[privateKeyPkcs8 = 30820944020100300d06092a864886f70d01010105000482092e3082092a0201000282020100a73eaddc457681b5c577e343aefd4f2e39dfc22e2f524cb1fb83561832c739894e1e0ba83f9f3f3775e2df7c8c707591093348eafcd66f3cff8c81aa24d2bf47ebde8681176fbec469d8d1f3e3e56bb0661bbe6b125c9cf538f8f6ace4fc95e8c024fbf011486549fbf93f0cd4d1ac742fe7fec14e2ab5a9fc552dcda3ff0699b4c4e9c6db2ce8673247be236d39cef8a0c70f309f9c766440117042a9677c0dd1780de11086ad38a445cc8177d405d502e5f81a8c9e73c4cb8ed950762a5b538738ba53c434dea0f78d9034d7eac88a89f2d751c9fe187e949defb2943f732ecc06a09818f1ba5a411eafc3aa21faf96f7c7cced82d3e24eed257ce03ed1aae25f172267e5d7641a27d56a654655475916d88f96b529982d896e7d11d7a8d9af6ac3c1b1d3fa67db2886d81080c1e214b8f6506683f8cc3c9948f0021c7b429df6d33b98ce6f5d1b8fd2769a5a808a94859480b3bcb9592e210a32e86768345952d4df6fccdde74ecbc4a31885957bccba8975fceefd1a9aa4c349f9ea07948136ed77474bd08301798914a6f116912bce8cd98100ba1ffba2382d040b08e010db24ac7b34b1f6bf2af74e81c72d96e08be8bd4956e87fda8885995a14a3d4422e3846711811bf800ba4a23b3c5b10162d6e0b4f186ace5c7ba86286eef6dae7bbcaaa5d7b69c673067d0407fb4f8d5ab6dd359e339ca1bf3102f87280d121b02030100010282020100a49f18c9b202254943f76f57871ec5dacd92c7f368170d71400e1627b98bcac1b187f79784107f4c5b18973d648ba9ddba7da5afd0724e8a6f4ce1b1158ff0429e14aab6d4d7e4a23741f9dfa49a85b6dbbb4162e96f09fc8338e4ae68b38be7cf82580f05240ab79973ccb117a6cfa68a2544e907c5188e1ad7c93f1ac703bb366981678104223aba0e4e4556d5493a0820087ea70d7ea7cd3c9d10b0e930fdf50ac4369e6ac284f785d0f83b7812c98a91ccf66d25e6f4761dc520e33f6c27baf986c6bf61ff25d8a69aa4b947dc6029cb4450b8900992473d72dc87fa30a986a09b613b646d373bd435d4565a1e4d7a84c1e1647e9c2604823d7586fdd37cb250e596d1e160567278c7d30b93c4e9ee07e4aec5c658cc25ec81d9f9a767c6685986836ed76b4209c2572074cdc0ca37c488168c28898a74a90d0fcb16cb313ea8dbb93ac933d2b5fed79494baa144795f3ab039846b840cc555cc36bc46cab4fd3d43db63477b5f2a59bf028f879fe6bd2c87a2f28e320cfe66d0960cdb5d5ef65401559b184b0a6c8e7d1f7b2d05ed0411074c225d13c93f0882e77443a496e3d1bfbfbbf28164f742075e31ce09b93f90398b029f3e80ce7c7cea584e83e3e3fdc2bbbef3b1a945fce8a9946d94e08f0e185f546177418780ecdaa5b751783350c369585d663ebcca0889a99cd18609c139e8ff8218ded12d9ec5e4b9790282010100d4bf92c10172e275fb684c1b8def1d35697b9a36aea01d322fe91eaf8424a1f96303220fe5baad6bbac63fc76edbc4ce4952a771a9827ba16782b8f65dda91d98186b51b928407010b8a3fa6911133ecdfc2ae99f3e34246f4e3e1ebc50d3587bd9dcd7fc4158d03425be339e7ba674c2252d0d7b80552e30403e1377dcdb1744960eb9466e6f8049c2d18397fdfc11f2dcd32f2ba47049e74351792502828113039afb5dbc06a4bc1a39c8ce6ce862adbdab24ce8ea8528a54f1d56b6329ea22bf11407cbe49bb71a0b60400e85f94b59ca78237685decefb42965a93faae196ef4424372f2a407ea9e5ef98135dbe09a632faf892f0d00513db11da4c24f350282010100c93ee3b614c38d039fd0a8eb50588dc386027864350308e2155c20c4b11ced90851bca47430c5f27094304b540d3a7df25e0f996651c6bf8ce1197555e11eda404a247931322c9e0946cf75c3baf768e7bb59ac4231902929d789f0bf302caf83d0cb379c342f8d0750192a06a721039bea9412837d457c3899bd7a4a2b25a524111acf80767d6124590d4031abe0fb6b902b6bfb66cb688061061bbdbb7b9b40f02f06288c603cf82e899f952b9d44c4d373e9d162ec08af41172547cc9e3f1d3ee143ae630008bf6d91d0009a974be1224f76f31054124ba5a814718c528b392b6eb42b48831d32580e578cea2f64ad1313728626cf4058d543b72ec88760f0282010100b172e4ae154e44b351b209a105fec667118765f66c2ae28f44c4f5b241cee847019dd06060261795fea072fc1e6c323839923655a8a44c083135289f5d62fc39e63e7c7af5f7277c68aab43273575cef1b27dfc84b5367a9958329a224a6c2da687ee1b3cad28ade880fea7416e3345b9d59641639c83efd5910ff5df0918b8cc9d38c4b2895479358cc88231594851943739f2633d71e7427cb4cd0de08d07a9db5cfe828d5d21343fcfa8bcfcbbcbeacc839e5ca742a02dff7202a7e27b486e18de03e2c838e99e7a04b74c2685ea9c9c805f2d65e0c9ca9983d9e694532c7c5f2f7fe18376837ae2ad05eddb615a2be4332b7fffd7da3a11f8ac685f1086d02820100155b5a39198d032b0e4bcb91656e7064fe94c68803e4358e20ac2d421275ba746adbdf249ee5f2372751786f6fd8c668f511220ba6e154480c3e6bac0096b07c868d5e412a77b7aae0b58baebb1accdf241bcab7e3eda48b40b0eb580e4b0e95378d60829c893ff487664a5441d7a70729c7b685791f4ccd108e7c5d19730a08cea4fc9139dff824ea430b6ce4eaa4aa448a1830d2404942b83a06d533e5148d1a46ba920a67d141b567cfe758b325e78f0e3cd3d8e5cf432fd1a62b772ec9c50133b3ebe83fd1df08ac53da8c2bf29ab53c3d120cc6bcfa13d8c4fd719082d843caabbee17fcea1d4ca10103905ac53964dbdc7c8623da7552f4a3bd1044e5b02820101009556dadb2996a83cb66bb15cf3c1e4ca20758a73b0ae4163cd9d517c4e68ca164addd787d353f17c4f1b52f6b37b428aeaaa79dec42ec4df740975712bb1fb8266e1f5192f0740af79d9b2af6795a97337c8f618b919c09ef08ea11c795aa66e042eae587a57e309f44afb4eb1b91d6cfae9709e1710005df9fe4e1492d51298ec3eb2b3b7a4fc42fd04bf8a97e734d6c278890e3604076567febea18ba0ac6008ceb5c9229e0a1ef8afa0fc56d7c8e462760a5f9de59a06fd76df1e8bf3aa984690d3eb1e4ff2b230f5e4bdc76a04b5f4761d69786ec231fb04af2be1d68f61deadd1e298da70aa658e524f7d55bac35ffac25decdea3850107c04df1c395de]\n\n# tcId = 48\n# edge case for Montgomery reduction (2048 bit)\nct = 00fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = e4cd51fe2b40a7b655fd12c64d60ffff332eae14b6f99e8614c782810a55e196714e33862a7818999f99959d3872b5f4d6cfe077482fb2c5bc415d66f1010ae72623cedd17854197a49ed8a033ba2ea815c36b15263047f541151bb72273e5f2df129e06d40fc024f854bad90b3e4a2dfd08b3dcc0df0af588b710613c6bdadcccb1cd380c82c6dbcccde6a967c7478655f35af62e651c4c47cc998566af612d4daa6861e873d2620d13050307a78bdcd338236957fdb58aa84b0417bd6428372ccc903481e8f15778294369fb6e3874bc510f8e7ced222765849cb9f50fa4c9824bc83b9096ab55cde2324ecdb148799141e33b1a2fddde5436cec5cb0f13deffc6bdc42e5365f1e37c023ad6c5d7c88febdd3273a5ece731ec3182c70a1b\nresult = valid\n\n[d = 00906a4f89ce78796be2883be6d04949c4fa152e9bbe0626aec5d284c51da5276ec3afa504a43ec1039d55884356d1fa81f7645030b16f2a03c6f09b8d8a7b8a2221499ec4eaadd0f0e1c614ba19656bb897b6fd2687063e357a5ba380198edfa0575adabddef7683da028c45ffbcd587876ff0ea94239efd2232e4f90eba25b4c0706f4253b7c4f970fc78908e906160881359b3394cd8579adb1eca903ae7f768cd146404abea80749806eca5f7a542e09dd28427b10b6058d4713a905fa55234f45b91b86cb00fd16ff3ddf5d4b00403978df862ad8261e63bd8f67f06d3b8bdd2448954fbe105d026ba8b612cdb42ced0f090bbfee266fc546ecbda01a1d6f86728e911ea56b8130bade0d08deca44c428f8bf26eb496e2b37596365c36b63e468186c08fef97b95d7a8d441ce9cfe5c370e184ba911a4aaab53164b1da6ecea41bbb786c07f928c9cd5be6457a7329e5a56c402cc16b258586816ff27a29a6a73bec5e3797105c5211fe7a50ec012c4c18321211b36b2bce8e41d9628b50c6c30ebff879f414c4d750b0756095b6bcc6faafb9de04e74a689eca4a9bd993b7c42a01bb571395679fb2f6107a4266fc07d1bd2868e1c260fec792e05a2fd2a84c6d7b09cff40402fbc984b7c975c28fcddc2c0e4cdf20719f81a1ad74b918bee8fc633ae2906fe570d061ec8955e51d7180f4c3fcf9a50896e3e2fcfb2eba1]\n[e = 010001]\n[keysize = 4096]\n[n = 00d5e217213c64a36bfddf2a73b1701693473bdcfe51f6bc7995925cd99b2d6cf997389fa644812dc4c8f0006bec4aaecb093d94b0d3e027b9fb50f472a6a189905aafe1a1836436e7c81605735fe2f7010e3049c21c74ba9aeb38661e55006205010adef4162d1bb61155ad02993be54282565bf3941d01d596bf3d3e45d898c403ed934052c298b6ab506fa22734c5d26596a19055a085e3383f3bec2b9e10432ddbacdd4ceb615bc480eb2c1725104c89c6732272643798db95ff6f027d5c179b1cc8915e92cab98dc48b81e0d4e162d98a6a8bbfba7da83fe428227a8c67fa43dc6b67c2538cd8aec338becadca119072ddf0d5a207206833052debef1b3c1a3213014bb3008ac81bc938a526b450d4995e829ec74a646eef321ae435417852a18368f5f2b50d4b5891c7ec5deab5615c0dcc67a6d3a2d710314d53179f8a56c8ad13906f73c36b63d7646ad2bc134f12672853b475298972ae401f2b0a0bbe086f6e77e8ed70b4e9d755f248aafabad3ee20a851035a9704e498542c22c4d7648d1d664517b5b769d1c16a57318dcc17ba793646ed9060140a0d5402aa233ecb9b126ac0a287027eb95e6b2740e2f579a690797c724ae884f8db39583d205eb8c68aa7721ae69896a48b7819f3d7caee5a75cbd5c532e9da8f37fb944eb175036f8167020a952f75748c8ddf5db0a21b367507afb0e2fa2bd298923041505]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100d5e217213c64a36bfddf2a73b1701693473bdcfe51f6bc7995925cd99b2d6cf997389fa644812dc4c8f0006bec4aaecb093d94b0d3e027b9fb50f472a6a189905aafe1a1836436e7c81605735fe2f7010e3049c21c74ba9aeb38661e55006205010adef4162d1bb61155ad02993be54282565bf3941d01d596bf3d3e45d898c403ed934052c298b6ab506fa22734c5d26596a19055a085e3383f3bec2b9e10432ddbacdd4ceb615bc480eb2c1725104c89c6732272643798db95ff6f027d5c179b1cc8915e92cab98dc48b81e0d4e162d98a6a8bbfba7da83fe428227a8c67fa43dc6b67c2538cd8aec338becadca119072ddf0d5a207206833052debef1b3c1a3213014bb3008ac81bc938a526b450d4995e829ec74a646eef321ae435417852a18368f5f2b50d4b5891c7ec5deab5615c0dcc67a6d3a2d710314d53179f8a56c8ad13906f73c36b63d7646ad2bc134f12672853b475298972ae401f2b0a0bbe086f6e77e8ed70b4e9d755f248aafabad3ee20a851035a9704e498542c22c4d7648d1d664517b5b769d1c16a57318dcc17ba793646ed9060140a0d5402aa233ecb9b126ac0a287027eb95e6b2740e2f579a690797c724ae884f8db39583d205eb8c68aa7721ae69896a48b7819f3d7caee5a75cbd5c532e9da8f37fb944eb175036f8167020a952f75748c8ddf5db0a21b367507afb0e2fa2bd29892304150502030100010282020100906a4f89ce78796be2883be6d04949c4fa152e9bbe0626aec5d284c51da5276ec3afa504a43ec1039d55884356d1fa81f7645030b16f2a03c6f09b8d8a7b8a2221499ec4eaadd0f0e1c614ba19656bb897b6fd2687063e357a5ba380198edfa0575adabddef7683da028c45ffbcd587876ff0ea94239efd2232e4f90eba25b4c0706f4253b7c4f970fc78908e906160881359b3394cd8579adb1eca903ae7f768cd146404abea80749806eca5f7a542e09dd28427b10b6058d4713a905fa55234f45b91b86cb00fd16ff3ddf5d4b00403978df862ad8261e63bd8f67f06d3b8bdd2448954fbe105d026ba8b612cdb42ced0f090bbfee266fc546ecbda01a1d6f86728e911ea56b8130bade0d08deca44c428f8bf26eb496e2b37596365c36b63e468186c08fef97b95d7a8d441ce9cfe5c370e184ba911a4aaab53164b1da6ecea41bbb786c07f928c9cd5be6457a7329e5a56c402cc16b258586816ff27a29a6a73bec5e3797105c5211fe7a50ec012c4c18321211b36b2bce8e41d9628b50c6c30ebff879f414c4d750b0756095b6bcc6faafb9de04e74a689eca4a9bd993b7c42a01bb571395679fb2f6107a4266fc07d1bd2868e1c260fec792e05a2fd2a84c6d7b09cff40402fbc984b7c975c28fcddc2c0e4cdf20719f81a1ad74b918bee8fc633ae2906fe570d061ec8955e51d7180f4c3fcf9a50896e3e2fcfb2eba10282010100f5aa628cd98ca7a9ee7dda8aede1259e8b3532538f693c1dba20f9a60eedd050f59b1f020bdbbac10e22c42e2646730a5991e3d249bdb3e8bfae6b50c784ddf23940ccd5f804d8bee3931f84826594da27984dfb5368f8f33e340e7fd2faa7b8dd10b5180c6b8f2d3c5c7604125909fa8053dd8224296f6bf1fc5ef2ac66225f2b1276e3803cb2c60c383cc28c842268ecfaf59bd4c25ff46fe8aa437dcbaf8701d31f5c9d301f52a97367629849bf7dfd806e7a0f96cc9a5e9da813ec54db446ec244aad44f6086d873b148e8f778256d32ce618f3188c9a39321691e6f0a6ba7ce6b7bf92e6a356abaa76fb120e2fc2c0e2a0128bea24c242b499a24311d090282010100dee16f69df5819ef82fb876fc23cc1bb8b9462526062c9473bc413d95981b8de8d0377225085ba1a87d59cfdc52a10c1190b778f7d2cd8da7230f98d37bf8885c7a3fa120a3e4b44b438b7457499399e54f77d7bdb26f38a6dc7dc9350e60816709932c0eded5c27a576d58c2e82964115327a16f3f27a9ae443461bd6d274563f0e405598169b380564f4d2f4569297f41db3d9f29cc0af0173874b37e532f14a2e935382bda624e2b9098aac8ee64fb44f835289cf90c4495635014ae9f4205be49ae90a79b0f2ca9f2d62272e104d9e4daf30e771babd4e17356b904c5be8ca0a12a4b3ca6ba44f1a08dd1a2221db66854c1850ab49b405cfae169113331d0282010100bc9277676aaebf1c7fc6f7746138cbe9b12dba5dcddd9799b20011e1d7dfd061f4c587bdc86078302cab9f2f558e0a4c4d88e0f9d044dfceaf243198262ee537439f6c1c6a6f3df8f9333ba4397bc410d907de042778927014b55cd3dd9d2e15870b8616d9a1ce9b8893e8bb2362597881fcde314194d4c46551b5884db1707ce0d121956c202b923e5b04b8c9a7bbca12ee688d9f793cb2a31c5365cf3004a27b5215e6bf79eaf146c520fcdbacf062c3ae4c1f41cc1d6df966c757d3b72740964c64ed445f51d6f05b8e204b437a643038299755954e4c89552cf645b832a5847fbc9dc31e4fc4851295e7f46d2c0f29ba0da02a287ae83b7346e21d19de1102820100657a40eef468b98e4a95d949722795919d7096ffa8b0f1b1c42d77581b9fab9b709ae650325760af99af11c69d5194c54670e923e4bb5994c42f36402ce4c0f5203bb1ad2b0ac7dc652df98bdf15b09d3d545dc6d9b637668cab55eba106cb21e46c6c26596e1bea5534f0efdd714996225f942505371ec98d2a702e56b605900b2fa2ed15cd1d28f993c8c08fcd26fb96833b92fd1a8fc45ea5ca30de2735f5946ff6562c8dcaaabaabc30367a3bc8b07aeb83d094fff3acfa53786fa23e12a268cc4575c94a19339dc159ebdf6042842ee5dd8a75829cced5435d75ea0d5abfce96f299c4e8a8a0a15f17931dfde88757a357650ac5c6761c9f81a803d3ca502820100083b6e77dc2386a360221aa7832a165066f64cde7eccc7a162f5243673382bbc0a3c528fed8d2a49d229d4d4ea3364e98c494521e672ef8158d5ae30aa81dfe2914d9f850750665e299c1e9ce984550e0b3b1a57fc5b1548d4d38b8249a70fa98d855a7bc8d1887b1eee39786d5e16f59c911378f6cbfda1a895518d13df2e657902f2eb3195a6b063267bd2f806fca167048667cbe62394331a34fb5eac994529584270caa24980441f73837a6feda70df2522b1df779286c30d79102fc18d06607059940f41d969e9b25d412d236ae3e687bd7cd83dd560117c94f328fcfa325fce9794571d3f9bba103bef6efd8779701c4492431dea8301ae99c4d6a9580]\n\n# tcId = 49\n# edge case for Montgomery reduction (2048 bit)\nct = d4e217213c64", + "a36bfddf2a73b1701693473bdcfe51f6bc7995925cd99b2d6cf997389fa644812dc4c8f0006bec4aaecb093d94b0d3e027b9fb50f472a6a189905aafe1a1836436e7c81605735fe2f7010e3049c21c74ba9aeb38661e55006205010adef4162d1bb61155ad02993be54282565bf3941d01d596bf3d3e45d898c403ed934052c298b6ab506fa22734c5d26596a19055a085e3383f3bec2b9e10432ddbacdd4ceb615bc480eb2c1725104c89c6732272643798db95ff6f027d5c179b1cc8915e92cab98dc48b81e0d4e162d98a6a8bbfba7da83fe428227a8c67fa43dc6b67c2538cd8aec338becadca119072ddf0d5a207206833052debef1b3c2a3213014bb3008ac81bc938a526b450d4995e829ec74a646eef321ae435417852a18368f5f2b50d4b5891c7ec5deab5615c0dcc67a6d3a2d710314d53179f8a56c8ad13906f73c36b63d7646ad2bc134f12672853b475298972ae401f2b0a0bbe086f6e77e8ed70b4e9d755f248aafabad3ee20a851035a9704e498542c22c4d7648d1d664517b5b769d1c16a57318dcc17ba793646ed9060140a0d5402aa233ecb9b126ac0a287027eb95e6b2740e2f579a690797c724ae884f8db39583d205eb8c68aa7721ae69896a48b7819f3d7caee5a75cbd5c532e9da8f37fb944eb175036f8167020a952f75748c8ddf5db0a21b367507afb0e2fa2bd298923041505\nmsg = 13132ded3a26b6a5efe4579360e9a7e724e96fc6eb99469ca965b1825aa1c98979ee28b9afacf4eb619ee91b229827f505ac21915bc4ac1b5040af9a901812da4d2e298d5b51a7c704d8051927a5bdaedea7953f7fa17433921cbe30e7802cbd0359b09e6b2040fb10694d4c57e203ebc701011f156bd2e0175c274f9ca68445a10edc7107035280c58bf9bf84a8ee002603f34c8e1dc3e9f736ac9ae5480479027dd38314e030aea478c74bdf92f3ed4c63e9de857edb90b3cb492addbc1d616780bef69e8f312b3b2fc84a180e3a41110d6d9aa0d65de7853d7c3b1620a544d04562455e10e3cea6c19c2c22487df463e5a847eea8d5475be3c5397ed54409fc502a41ac5625e5b375e877a8ec169b7466f545308124f9c62237a899f9d5129e69de96869a43cc3295dbeacbfaa6cc7629e40dde21195f940b5e314f1108ad1aeeaef1bc897626112ede381114a09e0ee4070166ddf987485abc92ada2e7aab699288d91fe0a9c7787ead21fd7c075cc18f5514aee82b3f02651b99c9f8b9c865889d07732ed8b73b2ff9f0a6d3cc4c58585e4386cb902b18f3fd2e54237395c7f8d32\nresult = valid\n\n[d = 404b8cbb6dde987454c0b2536ec665b2d764985cd1c2fd15e5f7c99a99382fc4e79ab3e44ad7b9f5f5663ff1575ba234f220e471d313fec70ab7ed8a7c343ab42d877ef57e57a4cfafc9773c09eae8f57f06012c49bbac2e69a445943028d36b1d4e806c75eb6e9bf49a958dbe118c0454a2e8e9a4ec27400f337c32b396602e5ca4f44c42425b6bb8370cad50db917159502d67d855e81b9cd2539dcc29b25a82c2a61e9837825522cb11d45c1bac404c78f6dc80f19132fd23efb6a696a78cf453749a1a41f22a96141891bea51dc30651889b3cf9e3884ff0815c6b784f2a6344b86f48e64053316a363438b3c551e4d43865cd1e3447a375ccc633bccc33feadf357b2f2ff0c1c42c220ed877a2219a71501714a34c0dfbef2a158e4f3b6003e1f49113af10116465805d04282d72ee46a1ea65e3790a767ef3511dfb28936b6e4cbc8558e81cee23df0d568808fc7efe2bb41b098be7355ec0a0e5ddc217c3a56e2399bb1d00cf7b77c64b81a99262db3bda8a623e1cc8e21a6744133f32a265c195349227f17286fa1f2012de0d217630e4bafa0c118b8c51157413ae9f502d848b1586ac6bba0f6a0cf2edc07f3cf89751edc767304ca307c99669b04481a3103abf2e669041d4ccf40125834b9e0de1c9b098e29e2160690b57e6467ca025d0829dc65de87e4bbed2453c3b979a7bd865456ce4b4c195b9c69e0f9f9]\n[e = 010001]\n[keysize = 4096]\n[n = 00c3fa33af7ef55f157535083a97bbc20dc0c52ade3913bd31143392d29c511e4a80c05aaad793f2662c5da5e9401a980119712d6860bfdbbed178269b04c258f221bd29c481d75765a6fa3ccfe65d6787fba8fd7dc1284d5e73988005f95216fa8b285f189d5aa046e7c0c75d72f2b398539f25d5534e8c797985ffe82f41ec50c872ca04d11ba1890ced78ea00d80eba2d8646fc82225e01e46c8b4e7f15486de2bf71234248c7523a2d5ef269fdca28a83a9e8a22d0b28e2aaf02c1e345ffe053d37b249329f9a5f76f7cd0299c7daf95c0f46069ca42ada92a0e9bb8db1c0c44cefa4c00af5f53ff28d29508159938427687f8bb377700b92360743678cd48731c2564c55ed6eab6b42a30aec647b9c3b1e82d09f414e885c1b9312c685be217e40856b1bf193fdf9c1a2dd7e8259f684430a9354dce1512e3ac17b3fe913adf32dd37b917e56b5200ffbed2b2c2736d9ff0a2fcb1ce5b5a5e121645b833f449eb5fd3ec5aed85f01e2640782e273949a519d676cbdbb4e60d96905d3337ab4237df8cacf4896e226e4a9e0098a1ed5d3599c044ad0d0a8093e4c32dcdca6118cca6e8f5db167f84a2b08e27c36395c91f1cf40b2e6f48f7ba98de5629a1b4a596224ea1bc9dc0f829c000d10a959a277b1bd24dbfeebd067aae5db904e42bd455f3909784c10950a8022a9a7fdba49188ca06d60a0d3436cfb627655562a7]\n[privateKeyPkcs8 = 30820941020100300d06092a864886f70d01010105000482092b308209270201000282020100c3fa33af7ef55f157535083a97bbc20dc0c52ade3913bd31143392d29c511e4a80c05aaad793f2662c5da5e9401a980119712d6860bfdbbed178269b04c258f221bd29c481d75765a6fa3ccfe65d6787fba8fd7dc1284d5e73988005f95216fa8b285f189d5aa046e7c0c75d72f2b398539f25d5534e8c797985ffe82f41ec50c872ca04d11ba1890ced78ea00d80eba2d8646fc82225e01e46c8b4e7f15486de2bf71234248c7523a2d5ef269fdca28a83a9e8a22d0b28e2aaf02c1e345ffe053d37b249329f9a5f76f7cd0299c7daf95c0f46069ca42ada92a0e9bb8db1c0c44cefa4c00af5f53ff28d29508159938427687f8bb377700b92360743678cd48731c2564c55ed6eab6b42a30aec647b9c3b1e82d09f414e885c1b9312c685be217e40856b1bf193fdf9c1a2dd7e8259f684430a9354dce1512e3ac17b3fe913adf32dd37b917e56b5200ffbed2b2c2736d9ff0a2fcb1ce5b5a5e121645b833f449eb5fd3ec5aed85f01e2640782e273949a519d676cbdbb4e60d96905d3337ab4237df8cacf4896e226e4a9e0098a1ed5d3599c044ad0d0a8093e4c32dcdca6118cca6e8f5db167f84a2b08e27c36395c91f1cf40b2e6f48f7ba98de5629a1b4a596224ea1bc9dc0f829c000d10a959a277b1bd24dbfeebd067aae5db904e42bd455f3909784c10950a8022a9a7fdba49188ca06d60a0d3436cfb627655562a7020301000102820200404b8cbb6dde987454c0b2536ec665b2d764985cd1c2fd15e5f7c99a99382fc4e79ab3e44ad7b9f5f5663ff1575ba234f220e471d313fec70ab7ed8a7c343ab42d877ef57e57a4cfafc9773c09eae8f57f06012c49bbac2e69a445943028d36b1d4e806c75eb6e9bf49a958dbe118c0454a2e8e9a4ec27400f337c32b396602e5ca4f44c42425b6bb8370cad50db917159502d67d855e81b9cd2539dcc29b25a82c2a61e9837825522cb11d45c1bac404c78f6dc80f19132fd23efb6a696a78cf453749a1a41f22a96141891bea51dc30651889b3cf9e3884ff0815c6b784f2a6344b86f48e64053316a363438b3c551e4d43865cd1e3447a375ccc633bccc33feadf357b2f2ff0c1c42c220ed877a2219a71501714a34c0dfbef2a158e4f3b6003e1f49113af10116465805d04282d72ee46a1ea65e3790a767ef3511dfb28936b6e4cbc8558e81cee23df0d568808fc7efe2bb41b098be7355ec0a0e5ddc217c3a56e2399bb1d00cf7b77c64b81a99262db3bda8a623e1cc8e21a6744133f32a265c195349227f17286fa1f2012de0d217630e4bafa0c118b8c51157413ae9f502d848b1586ac6bba0f6a0cf2edc07f3cf89751edc767304ca307c99669b04481a3103abf2e669041d4ccf40125834b9e0de1c9b098e29e2160690b57e6467ca025d0829dc65de87e4bbed2453c3b979a7bd865456ce4b4c195b9c69e0f9f90282010100e6e57c22f7a1688cd64e20c639b787b601e6f81469c49ecbbbca5d9854865c86a6a425ac893ac2360e12d832ddbe92d263dc417883d417e4b3422a3505148e415e81f909148c69afe08ff0178ddc1358263413dc3666b4e4890d6c463bb0799b4097655d7a63ff86641b289b9578d367d1fa2601101a61a2cc39a479e5b178d9df3fab897f245f5a533eed22abf0c801d00170cf764a14bbc3c3a6d9a9c21b7d63c1fbb6939d135bb425166bf35312a6c31cdd19ade329fdd6e7a60ea608671dafeecad352df4a10ca057e23222eb34b20d1b378abcbefb96e636350721e55a2cb71b0a70b1bf6de422938b971c2baccfc39b962215afcf85dc5f59add4b9ae30282010100d948d17511bab153c09f34f0040362294ffa208984d72cbb72aeb03c7da701803bd9080c708cfb342a944483bb234920a6aef4bce2b5c7c6ba6c19899c3f634042746fb49cbdfaf8c7c6470a8a5e3d2eba67d78c3fdf2079f8cddfffe5ee504e1a214da568ffff533a561db4eed8d1121f3a8871fd622355489bec69d01b49c5fdaff0ac667e8034acd7335a30019763149cef481862cc4af521e60a9ca0277cc6ed6f594648de95dc78dc3a9768ab6fc80abc4a84e65613673f7efcf52311c38f43c454f22d9b8e6e628a6ac997fa774ae3f090dd604b698ec80023ca9291f039070a1fd1b8caccd1f2ac9b2c83a4ba09f419095d43e8f40915a97a1e44d06d028201000e6b94a6266b09398a84d49d2cab9ea92a533f791ee5edb8f1a080d9eba57c8fd8467627e1662f0ceb3218188d2ac2c6aaffed82d650dfb123d4e507ecaa4cfc1e27e5e2c04ac8aaf84e65034393d40d744d5a542d7d9a9c8f46ac557292e1f565424f4d5840788bef229715a86f245cde8b4de6511824b2e32852725e7b07fe2b68319163c464c42260d2b490a2780b4cef5a194adcf3908a7864aa4164e30ca0b753be2257f4068d28a7ced422830eb12ed34c3044f8b166c38ee6694e2b0a7a9b6245726e8994a4d954f862c121e77644427e2dd48dc339f6b1142c1c62e2c8ebefc96ef32f26d060fcaef040e623b938edb0083f437f4b73fa93d2704f5b028201007d447cf5484660ab4f56b9f751e8fd73a1d72b60fd03ec9718d3db68d46c2ef2560e96944d630a0416342a97e390c13d20bba6ff2a98f05702ed05800f637ffdf1121dc07bc90f62d411dcad17fea2b948e04b2561416b00c6cf323fdeb898f59e1ceb1ddcbe11de52b88921e1bd8033396bce742147ade5221a3a9efa4a712ac349e6b00ddb0a60d3f0b17b6247d89657b0ee469b40825508a40572c2bf96645a6f528d9e76ae54a9a9c815c36aa5c3a9097f6a5ada4c6f9d4bbf1368e451fe739ef7169e146b251f40925a6464c912734b9c4a784666d3b16c5ea043ce6272a2fe0af933389d3a9e23911d58f980437d2f8c2b9", + "8e868ea203eabd96a8ff3b502820100219a936223c79c519c04d44266f100ca61bdee7a6e8ee3d1fb8be9e079408f9c88867f6df7fd7b88929c2bf238d4f576c6e58cdf62a860e43db8bb4054409b64303156cb065061522a293a384d25b39d51a45eea64a4e2f8d1a032a85da7812025a93e851e7525a5fef5c8432aa7da3d5307c23a4da01b1582d5f7ab64b8de591c99a9fd58c5b3eb64c0b31d4d5d2b2ad573ed73dc45b4119ebb6c84800e778f0e7c2674ae74ecb6e92cf4d4a504617d4d1ae15769fdedfcec980e6cbc1821f91c871b52298fe2c02eaee5ccf55a4b2b69c1ce97f16d4991b05c402aa17abe5cc566d426a9753c94acc6f0b1b61cd5345c001c62a9d3ac7bad6e400e7371dcd1]\n\n# tcId = 50\n# edge case for Montgomery reduction over Z/nZ (32 bit)\nct = b3a0b2a130a10cb3f5f0cf83366c8d69868444af287f01f4e932d1788431e1f89dcbb568cc9fa6fa9cdd45a962af0c1491548fb82942a38f8c838767559fde8507f3b41d9f02fed4bda5432b2d17b2d850d4b9ca442c40b724eb4a08338e46695017639122c01951dea415392b5da519dd7f4eacabf7fa583a88031e393c467be3b76d56b982d08eae465639124e01680928a00c89c1d1b836a01a1fcab49dd68f7f26990adcb4f3c857e8de98ac36092b7d9b48b4a71c524e38e7f9b44b7dcd511fcc0594ff4db1438beb8f5edc1fc34e7ffdea468f6e9dbfda95fb640136de31b5d4426e03acfc9ce1b703e3df344f1e9441115e9c86aecdae806eec92d19bdf502f2af32163389c0329ba28704172916d0aac434c7f43163b1b42d90770ae2989768febd815fc268786a1c90fd9e2244322bb444148c44f2ba269c217171a69016d8bfc758aedb13590987ef9c0e8c6d704d24d7b7efa8a3542ea491ff80e8d20463fc9270288ba77b37e869166b4654db2d8e30fcf88377057771d8bf23e4b92ea9583abffdc434c47bac54358e42e7519d7832ae58c7ed1089f93926dbed6a454a8ede4bad2e23ec8eb7ddbc03bba064e08badaf90a2af002502b8bf18de40773bced68ec47fbde6f5336d8622e76f914ca03e38a991f82cb0b547734ae3c72b368dec28eb09759456a5b0cb5fb14a02c69bd383467d1349832ba0b17be\nmsg = 42cd728011ce4c27563b64b0950b3823bca0cf6da912836672f6069aa48be1144238c3bb2070bf4dd3acd2e4004151b2b88c4e12f60dcc3205b879569fa6d9b22cc9692cc3fdf8aa15e794d2f31fb3c0e9801b94920574407e94b78873ea4d6c4106c88af4095dae6bf94cfefe\nresult = valid\n\n[d = 6ab46b7e91bc3557102f887e2031f1f101cc4fb6c4da68360a21f4b176b5b3b5ab8d142bf7c8da9b79cb41b02b9b46e6f580d6152983b6d2ac7641d1fa4f5c9fc69156a5debf08e3a1c911bf20c948ba0ab2bee10ce6745c8824233662444d11b90906f6d8c72409c2db6f4a73b9975144e0320d7c527a1dd39297f91070231de2731b8283ec0fca0355e27a37de2c5ec285558b1d7ebe33bef24298f31186b913532462cf9b1c536b67f982f5b056e64810e0aef8c83039ea2775d6c8bd1d544d19a424d467a13841918acc0a059c3f69fe9b600574199f16a36574000ff1f901696b03220b823fac3e63a43de0a98f6a154b16e28c08bb95eeb85d2f4a4c24225244f1a4c3cbe11de5bddd63fc98c2f2e35d5afe8ab8a037732f7bf3d0a7f8090567048aa8294020eaa096e78be7359854261122d20db57b4cbebe91e3dd2ae5e21f0e66a4b043efe744edbdff34b323aa65a1a05fb9ed8a3df70a4f13985b06d49b9c3f27e8088496fc8d4d92c2728cb43fdbacb480284fc1764910b1653619690e2fd87c1d44560c5c7c70b15cc1e69c3b4bac100e2259569f30691bbf477d9fc0b4a97a28c2d12fedba1479f637e9bbe9ced92ba2d7757968a27f30ed2b956b212635200c78232641a48f1da24e8d573d1dc4763b058dceec6dedf31ba2744f1ca0c49ddf5845cf04cdd056d2495f2599108859a827193912a0a0dc761d]\n[e = 010001]\n[keysize = 4096]\n[n = 00a902751d279547db8e397b462bd11d9c59b1f10f11a252a61c6c50a02413d69160b9e7d70aad7c7a815cd20ed1d9000ea0ec445dd13e75c0ecd8368bd09da37307b5b06af1e7c822a9efd3025f77d879235d17e62fb93a77991a0cac9a1f69ddb97f58e680713a34f10dab03b6599e7f7da2e7516ace606ec20a2800cb630b8d21168d2918c8556b191348a470c77ed8805e63b3466d06914409e24f50bfe84eb62275b9e6aea8af9c494f34aa4321fa0aac6fc93785f2e8aefa2a65196f266c85d9766db2f97b95b9712b3d0a399722f086c2f811335d7325e92ba54874acc5a254cd438355eee80a6e82fecd8cee335018625339b6423c5d56d2fd2874239beda304e90f17cd60bc3f2858ae0ce24179a134127c5e19fbaf3f567dd4c9d723c60cb8390562779a75bdf906377032cb5ccd1cdc965097e3170d096871dad9d8c4762f7df764753401901c7484746538b976fe03abd293895e47c18b3b4748a9aa35000a2c6a2cf1f6d05ac38455f4ee909c136e486f0d43ce40acbaa0f0c214c08044d0e553492fa42a9ad3141bad2380fe6c2dca0d32b1761d16bd6f4d3b3dae628151dec993a55afdd93b31a66a7c86bc23d7fd03526ea2987d91dfca109c1b1c73fcf958527903a8c251f37d044b91007ad853f0c85efd8c111656c71fa7125a139cd5d8f398996991f5accf6997779927eb54f00107b1c78a0de711141d]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100a902751d279547db8e397b462bd11d9c59b1f10f11a252a61c6c50a02413d69160b9e7d70aad7c7a815cd20ed1d9000ea0ec445dd13e75c0ecd8368bd09da37307b5b06af1e7c822a9efd3025f77d879235d17e62fb93a77991a0cac9a1f69ddb97f58e680713a34f10dab03b6599e7f7da2e7516ace606ec20a2800cb630b8d21168d2918c8556b191348a470c77ed8805e63b3466d06914409e24f50bfe84eb62275b9e6aea8af9c494f34aa4321fa0aac6fc93785f2e8aefa2a65196f266c85d9766db2f97b95b9712b3d0a399722f086c2f811335d7325e92ba54874acc5a254cd438355eee80a6e82fecd8cee335018625339b6423c5d56d2fd2874239beda304e90f17cd60bc3f2858ae0ce24179a134127c5e19fbaf3f567dd4c9d723c60cb8390562779a75bdf906377032cb5ccd1cdc965097e3170d096871dad9d8c4762f7df764753401901c7484746538b976fe03abd293895e47c18b3b4748a9aa35000a2c6a2cf1f6d05ac38455f4ee909c136e486f0d43ce40acbaa0f0c214c08044d0e553492fa42a9ad3141bad2380fe6c2dca0d32b1761d16bd6f4d3b3dae628151dec993a55afdd93b31a66a7c86bc23d7fd03526ea2987d91dfca109c1b1c73fcf958527903a8c251f37d044b91007ad853f0c85efd8c111656c71fa7125a139cd5d8f398996991f5accf6997779927eb54f00107b1c78a0de711141d0203010001028202006ab46b7e91bc3557102f887e2031f1f101cc4fb6c4da68360a21f4b176b5b3b5ab8d142bf7c8da9b79cb41b02b9b46e6f580d6152983b6d2ac7641d1fa4f5c9fc69156a5debf08e3a1c911bf20c948ba0ab2bee10ce6745c8824233662444d11b90906f6d8c72409c2db6f4a73b9975144e0320d7c527a1dd39297f91070231de2731b8283ec0fca0355e27a37de2c5ec285558b1d7ebe33bef24298f31186b913532462cf9b1c536b67f982f5b056e64810e0aef8c83039ea2775d6c8bd1d544d19a424d467a13841918acc0a059c3f69fe9b600574199f16a36574000ff1f901696b03220b823fac3e63a43de0a98f6a154b16e28c08bb95eeb85d2f4a4c24225244f1a4c3cbe11de5bddd63fc98c2f2e35d5afe8ab8a037732f7bf3d0a7f8090567048aa8294020eaa096e78be7359854261122d20db57b4cbebe91e3dd2ae5e21f0e66a4b043efe744edbdff34b323aa65a1a05fb9ed8a3df70a4f13985b06d49b9c3f27e8088496fc8d4d92c2728cb43fdbacb480284fc1764910b1653619690e2fd87c1d44560c5c7c70b15cc1e69c3b4bac100e2259569f30691bbf477d9fc0b4a97a28c2d12fedba1479f637e9bbe9ced92ba2d7757968a27f30ed2b956b212635200c78232641a48f1da24e8d573d1dc4763b058dceec6dedf31ba2744f1ca0c49ddf5845cf04cdd056d2495f2599108859a827193912a0a0dc761d0282010100dbc901f7f03736289dc3878af3bc7f9fd88791f7d837dff586087ebc3c3724f3b4ce056852c2204d290a97bac483490b77b98f712ed6bb1e5b0ab1ed211cad3139ad79cafb7dd2340b9227355606305e128fe6e984afdbb1a089be13dddc4697a6fe12b9e04b34be62e0c6accd56fdddb1890eaf2fffc1b421633b601ae5f6197602bb8a7a3f26bbb56cae998f5ab8979541a054ad4ff8750363e1fbbbc35db17aabcedb8264c2c793378e3afb74c031239e42d233109612b6c8e8d21193608dcda362f88210882139bd6bd947b584e0035746a7636369e289f93f8a65a91d4f4a5697b498be3f74436925c56b1287de0b159677dfe70e04137ccc95f48a548b0282010100c4dba17f39c82aa4d51b17fa1eda60324d680eeb44948f00c8b4ec113d52be03576d7c046795fda027b1069eeac4e0e169a8d15d11d0cfb5e907d77a064ab7deb15db96d3bc4d66f4eb9915b7ff1d7dc76663e6ecf4a4cff615c5fe2db7a9d80b8c7e78f861c636d0b9096a13a97e3ac84614fcb9ee3ca902d4be175815b12e9a2b5c42b7b680b5c327f6b1270b718b86bf7fb58ac822a40a8980d84b6cf7c47b98987a6df44cf1a69d522da6ebb0cb974547e9d0c8f8d3cfa59e5b0358a50b925aade50136223201a103b7298cbdcf773380d8f36b9af0482d710e578c5fecb548de4e07433ae4e8308fce29be0ef8ea9aaa3498ff5ac72538ed76b3162c6f7028201003d42a2bcd404dfa0a490aa880d75ddf0d4eebcbde35377a63cccc35e7e3e349b852ae390f7784a7e9750ef87cc5c7790adb7580709322b07c4029023735645e3f19aabd6eb105ff5c7bfde13dcbd6edfd9b6a87b3053c01d9b8ca9216a768a6a9cce36b3fe9397c8f55087b004b019a4a0667e645031ae7121d941e480bad644b483007911a7e688ed81b48cf2cb2ba67ca0c52ab5001455b13336faee93feda8841b92fb0019bd4faf0c24128739b5a56fe36cbd615ea6e9eea1312f2792cb179beefc82aa0a700f3d21b6c7db357ad04e15fbd2a53bc60bb6a70ce879582a8e6248ab678d8966136a4e93544a9ee9af265fb01c0b3eb5131895890f78f530f02820100376db40253adb5bc25b8f43e5bf3970472e12ada39bc2eabc4d79464a244aaf5dbe71af54e8960197933922eaae1f683e1b1440a159b1af1188539b9c50dc2c9f45cf479fa4b49299c1c09fe9e7ee50dd154a69da2c643f9e05b17309425e93536522b343149cb01083195081eac67d1ca906fdc6087b92071709d31edd34bf6f6f6811ed12791934b30af6048d67522705c29ac651e5d7149474eff204e39ab2465c2094d725d720d7c92ccb842f8a93b4513457b24ec5ad00f01ea6498e673cb545a3667cec91f1fd79435872a57b460ffd6698dba28ba7770c0f42bd66c10aa652d9db97a57c909823d5a3d13cfbf", + "f6abf2402345c461887f7ece52e0822f0282010100d7a16f0698c2836b03e73ddb06e9bcae6d5794fcbf93379ee82f502de29c763f1b890590d597a7e9908a7048f9e458b6f50e6935ade4b88d50a399419bca330372fba243c8d2c56b64b77efaecd32e9ad862aa6147846e7a1f0993f1ec5c0a80d0d03b4c6e940a7ad92fe14b8007f923029a7c8f7d27f729e3558231de65aec201a797439217bd7b8b7e7b23fd750b12d807f3077b4a3deddd5fc121a6b689549caea17ff17a0131a38cf08344531e995ac94b3da08552b3a3f361f983b481afe778f9d8ec5522221a26bc037db039613baed46fd3ff50a3f843e7f32bccf31931aa9a9e49e10086bd236e8644dd647ea4948e5561bde0cef381da9965deda3b]\n\n# tcId = 51\n# edge case for Montgomery reduction over Z/nZ (32 bit)\nct = 89537d1445d907e879ce41e281e753689573b45b4220439a099f9ab67eb77cac905bd751355b71c8e2a34b37fab575eb367ba9ddaf4ff8c836ce408abd8e453e8138f0a25fb2d1d50edbb1ddf7bbd87576a35de32f7331826341027f33f6654abc20b6ca1b942953803fc7779706ea0a4ed1f114d899ef4fa81f5a50218e21b81a6a37eb58a68e5c5df7304e8ce5829b6c7df99f9250f8a24182c89c8c9d9451c260486cfb4960fb9cf167ff29baddd937ce3734703add103b45bb84e9cdf9fe0afaa7bfc60e35e8dc5eeda2d9dbf90183a52e26b4fdc62c221cbf175772b148f5f8c11ee4424c12e2ebd09f77455b90daff72bafa5a3193c0a88a04f479a43051b26d64297b245aba573bd6aa0afed1b5bc6a5e6f9041a5cecd7ce805e4a5d9f71bda664a8829632025bd03607874f7151c45de110c333654e78077c1b85dab47ef741d897a7e5116b8a9cbe2b2cc59f30ae444653fea95af9bb3c27724fff00c81eccdc65bd14c460f806bd9bb1e969460abcfe9017b4afd832bd4b1864bcde6ef0d64e2105b181878ffc78c951a69a94f54f4ccdde898cee57925fda0e5109f3ac08c1c275aa37629e3a50cd322a7995ad474a8cda86d440be64d39c3b68c927323ee6a3f5497595130a54f86560cb7ffe2ed27905ce87b536ab4ba5a572887fa0f5a6ebfd56ab568d19765fb07a78497df520b1b78779c32c365ab5ed321\nmsg = 877bbf215c28067ceee0793bef25642e3a77934182c98802a361a1ceffc112f1fe3f92e2765ead7adba3e1e8cfca7b36e47f8e8557069c29841fbc8e65a871296602cbaa0b49c27f2ea5\nresult = valid\n\n[d = 638fb70f0f29bcdba3299ee4a152b6953f032eec08a1db14f17459e5b450f5d9123b986c462352e56f024c6a01b282e2ce96ba5b919b6bcffca14ef5e40c7a816ed6881f8b8c0921712eba22b02bf3b2d54e277ce851e8ce8b368f01ade6d93cf3e3db5a2ae907f339ec018a751b5ed09c97b0ce39aaeed772738752e1bc9753c9485dd74c5db5700430aa6b07ef76782d2689ba13e3903aaa66e6c5c98386a33f9326ff275006251fbe38245b80a106e4ccbb999d09c607c1903a2c955cd17589dfe774f704ee94280525bd2026837d2f798dd8e5827a3b6350bb7c4eefe4bb303325e36c153e64b6766fa3123dfec604d709cc2d07a745ee34ca486ad0dd2bbfa62e685fb61047fc0de3efbddd42e307c318d1e39b2206cc0597a60cf39427e352cefb18be1928ecdafd7e1f39710fcef145694b0e8ceb82d060583e3bc294d07634bb27d5d5aba8cdabe385ad9ad8780dedf86944b58bb515dcd25e0a455a30f5da576883288fe672371b05b768b383cc1528b40c9043c2924fdc6210134f63869499e7381516678dcace0cb6928075348da8e0edd897b333721fcea58fa80f58506279553e1836537d50a2d6952c70def097393c315d17b3a75223d1d094357a7ef32c1b0a3ad3ea39c83856e2a4c1d530f0bca55949d35e89c58b5f0730215bf46268a2644e5d33d4d94f39ed23faf45393c2d63915debbc2a72115b401]\n[e = 010001]\n[keysize = 4096]\n[n = 008fba5109798c3e0f39b77e6d99e2905603e7952b8abde0138f2303be9f59dd40a84b65b73fa3c0656c3bd685688fc0c865773f7973f1983d212181353726d27574fc9f3c24d4e91481565fe4cf7685243df1cb4dc2cc7a1efdfcc978d965f5b69be3b5dea139e80076307e1467d5fa4549f3a5ac7d25c5e2eeba41618cb687962b9fd0e6abb3d0d85260ea60d8b004bc17c44f72276fef63855957038ddfad92c03c7cbf7dcd41d053bf37e5acd19dcf8f549381debfb8a429246489743a5e51f707e40ed552c749f6f65e0100cc77f957121046d84f200d28ae375bc2abd4877fdf486e43dffbfefd63d56c33638304570132f6032829ab836a69355143f33853d1088095f6080d4024125f378833674d1cfde085fad1b4e81227ee7b5f6a077ba9af4581dc475d05980484afa42ae2609b7b42dd453cbd7650158010adc7eeb420552290ba65fa71b59ee26c78e86db2937a839a05891e137cdb01a5b5d6e2ac0f61a54201fcfead824313697e773349fb83f614db4ce12cd300525f0f00ec7ccff220b4b9342c638db78b5d0b58f205e3e1510bf7ebc4b79ca64b63f8d55d4b8d584be35ed8470567bfa330975b08e23f5c6a305b22a3f5ff4930786b0e4bd1f66fa1a85e233f9112c8be4f38860372ab7738d24a1927f42f72a7a516d58fe0759c1e27ebb95588803c8fdbb4e4f6b5dbab2cd55e410e4d05c5b26d9789d1]\n[privateKeyPkcs8 = 30820941020100300d06092a864886f70d01010105000482092b3082092702010002820201008fba5109798c3e0f39b77e6d99e2905603e7952b8abde0138f2303be9f59dd40a84b65b73fa3c0656c3bd685688fc0c865773f7973f1983d212181353726d27574fc9f3c24d4e91481565fe4cf7685243df1cb4dc2cc7a1efdfcc978d965f5b69be3b5dea139e80076307e1467d5fa4549f3a5ac7d25c5e2eeba41618cb687962b9fd0e6abb3d0d85260ea60d8b004bc17c44f72276fef63855957038ddfad92c03c7cbf7dcd41d053bf37e5acd19dcf8f549381debfb8a429246489743a5e51f707e40ed552c749f6f65e0100cc77f957121046d84f200d28ae375bc2abd4877fdf486e43dffbfefd63d56c33638304570132f6032829ab836a69355143f33853d1088095f6080d4024125f378833674d1cfde085fad1b4e81227ee7b5f6a077ba9af4581dc475d05980484afa42ae2609b7b42dd453cbd7650158010adc7eeb420552290ba65fa71b59ee26c78e86db2937a839a05891e137cdb01a5b5d6e2ac0f61a54201fcfead824313697e773349fb83f614db4ce12cd300525f0f00ec7ccff220b4b9342c638db78b5d0b58f205e3e1510bf7ebc4b79ca64b63f8d55d4b8d584be35ed8470567bfa330975b08e23f5c6a305b22a3f5ff4930786b0e4bd1f66fa1a85e233f9112c8be4f38860372ab7738d24a1927f42f72a7a516d58fe0759c1e27ebb95588803c8fdbb4e4f6b5dbab2cd55e410e4d05c5b26d9789d1020301000102820200638fb70f0f29bcdba3299ee4a152b6953f032eec08a1db14f17459e5b450f5d9123b986c462352e56f024c6a01b282e2ce96ba5b919b6bcffca14ef5e40c7a816ed6881f8b8c0921712eba22b02bf3b2d54e277ce851e8ce8b368f01ade6d93cf3e3db5a2ae907f339ec018a751b5ed09c97b0ce39aaeed772738752e1bc9753c9485dd74c5db5700430aa6b07ef76782d2689ba13e3903aaa66e6c5c98386a33f9326ff275006251fbe38245b80a106e4ccbb999d09c607c1903a2c955cd17589dfe774f704ee94280525bd2026837d2f798dd8e5827a3b6350bb7c4eefe4bb303325e36c153e64b6766fa3123dfec604d709cc2d07a745ee34ca486ad0dd2bbfa62e685fb61047fc0de3efbddd42e307c318d1e39b2206cc0597a60cf39427e352cefb18be1928ecdafd7e1f39710fcef145694b0e8ceb82d060583e3bc294d07634bb27d5d5aba8cdabe385ad9ad8780dedf86944b58bb515dcd25e0a455a30f5da576883288fe672371b05b768b383cc1528b40c9043c2924fdc6210134f63869499e7381516678dcace0cb6928075348da8e0edd897b333721fcea58fa80f58506279553e1836537d50a2d6952c70def097393c315d17b3a75223d1d094357a7ef32c1b0a3ad3ea39c83856e2a4c1d530f0bca55949d35e89c58b5f0730215bf46268a2644e5d33d4d94f39ed23faf45393c2d63915debbc2a72115b4010282010100c92c664eab26ed6708df49eee9ad0a0aac0ebd23a32112941e016596df6da424dc0eefcdc6538856a60baeed45e9fce4552f2bcf46e119f4037fb5c581736a49476d5422a6a68b623de06e803bf0d8f407d13499225e0b6499c8e4f806066de5240f6e7ad162562ca89b7bcef52dbb12afecd3851f60395e6cfc1b70be6c9d7412c465c6b1887a95b2c833711bb12b856e2e233e90d856152a6da98470d153abff210024dd29c7459ded4a27501f99ddfccc0d070e259cc525ac9bbfa3c6fed146317e2aa78ce9fee97af2cf3af86e1c24d1010b5e8b851ca41cd6407c54c378cce7f61fac67e90c9573bb76f6315acc4234724c224ffb3e5ec56a299f4042310282010100b6e60311f461af483bf32430025af5c07e0f29c2493163e686d8a1583fa5a9a021918dfaf155bc7864df340e3bf989bb69fbb8442eea8667c841c77e91819218d96fadb9ee55c6d97d02268dbc8ab817b939f1b36f56067ac4186478840a056fc3c02488aca17ec421552e7a196c5d1ad0377cdcc522d0056c5624428d21cccc8564fe5bc5d965beb951b610abf2dd24307713acf6ce31a12f3845e5967f6220a4100be5b134d5337fb48af4e0c10fcacea655bf43cc5fde103b3986bcc6dcba38ae1a50d5175656df1ec48a692527e8b8f327f9e1499777519abdda6727fcb06e93eba2447f03e0afd1c49cc52672e374bed5db2bbdf658c1ba5256794139a1028201006a9616a289b5f7448703df253133d8452d4225de12d93c01b42023561b8cf8d1fab20346305523c05cfb85b3fb3ded1a81339bef976b3e97f59e9d8d467803114e41d3b90438eb52a2dc1d4fddf24ed084afc841765f03844aa29106041335f898f180249c799094dac47e85798bc0393772afe3316b8719cb7e8b7f61b5247b5252326662bb9fcf5ec909d05cceb2f3601c1bda535dfbc5fd13db23ebae4cb9ad542bc25c577d581a4395ed5c5b51e7b6bfda0b29e8adb61aaee85a5208e60bb53815d3bdb0406e2a0055538cb80186f1ceb6d1f246d3c10806ab51c14e1bbf0e39bc42add2e43c21970ef5099dbeb0c8470763e52e213cbb73b73ad4407491028201002a6b6e8adb834c8414637021326aa654dee7e5678a524a394d4d311ea6a465931e3604180fa132f539700b42c1e63e6b99492893a7cdfd1e54f3ecb10e4e5ef4247a2270dd3647c86995f61b297f82f2fda2d2cc2b26689a50a0d7ac9bf3370f94f71b821787dd3edffc41ab4ffa321de5ecf8a8bb90376f0a9170177f64377bb7f49489f479577fc4bb8ede8f02e5075fb63e79ff44137eaed4fe612166a9fba81190b0d548cbaa061479a611fab50ef49edf845cd529e6f71cc55adaadc4c3ec2175390a333f73268c9c48fdda0047999dcbc7c8d8a8a8a3e49fe3e7c8fe726d332193a10f5476e8505ea97d904d5533de8efb264a08b8cd35c9a304bc7c01028201004e825151a71ce03dc7f", + "e5721893973cd3cf83c4e306acc6515565e5faf3b92489118ae02c509282c1ed1c958bfe78f95f8f76ba8cf3df7b700451400c4b9b5e8a35f10a2d78c35a13f66f92b1475a534e35bc3ccf5ffecbcba863a33428e274e5572afe5013c4a651e8ece0f17f34e5f7db05747183606093adcf897e0de08a91a0267a2c5ad35f779ab59a2ff03f05aba085583b2b50b6ee74f69690ab30bd1ed8176740b185c03e21a4b32ccf493de6ba221a04b97fe417a372c9382696c5e92e44ec99607ff8b1102bd686736d6103952024fddc0eee2e05e7f0e8b5728691218e95425ef0e6fc35f902322e7d81a06528e5307b193f331a43b3744b7d863]\n\n# tcId = 52\n# edge case for Montgomery reduction over Z/nZ (64 bit)\nct = 399edf9546db86f846daf8a9d8447c622becae04b9b7335d04795993ddd16e532375498d57e38f831a7cbd7eda6d01a382329b2bf6be2b4635e96346f257447df09041abdc4d23995dc107033c0dafe20f2ce5fd08d63cdffc10bff02daafa56bbea0cc7dafef2d365eccd7acd0bc490f2a8f76e660ee8a410ffa3a3a9f995fc8698b7076d44d9b6f90561a9bbf93f3f5a02e8bc5eb231dcfd0776263c44387ba556c63e20c2f5d07ae20f50efbb9bc3af560ccc5a1b24a1dcaf3e31aa5175ae58a62ac6837df8987c78ad35efec276488777dc6054b7f9291d51ce59675757a67a3a7a23647848ad933ca2edf6d02832d915a7f6316bf88ffa5dbdc1d10853ec3dc08db19434091d3b49edde4556b8156a5c5706eff82c1ae5a51f8b92d0aed282c0f526c8a866dc2940da12d7f4602393f5b3b62e72e97b1d29d5f37398c12ef4513fd46f748774d0a29df9e63382cd3819c7312e9c06122a243076434d2a408ca766b82179a482f78b41bb5f0de44ee2464793ff46e12b3b0d6e39f183981e54a8009736db0941df0bd459ac0535f5e04851192f38f94db62a8d60aaab32fc9bee2056e95a7c62a6cee6250f61371b143f49ae981137aeeb7f521998ac24f1d51876f119f58e33be09ed7f3b89f34acbcc5410c1185c31a4e74b1d132bbfb77d71c3ccc5037d08c5c31588f6738e3acc585145cd518a5b19a39d31aad7de5\nmsg = f52b1ad4f7246c94e28a5b923d56ba2795ce95dd747b67636c8fa08b22303b954500f4fdcdc86d0b685666f51ec1c26ef6ae9003411b5626b6e6de118f822ab492fa0f985ec1bf7f8c90f32edfb49a149eda088a6753427c1ffc256cf3f80c9903ffbf26cfb2276e1391faa84f3f15774637e3370b8dd3c656041a833b4df08d82ee126b3f5a115545364b6f3cb41fcbfcc3061dad6dfec000b050bee2745aefa59380bf1f510d9ead7ad8063a1d024d02ac97d0f282fcc8199d19306859b4bb45c4480a2957855dd8de8ce379ba37251dc553e1985af2aa36b4d6b10c76d94b8a17c6cc64286957c0677c8a52a80bcfabc40f256c665bfbfcb1f43dd2568ab207f20c568521d881b78a1eb5f929b789788b37e626279591643897b30cb5be2833ea706b879bdfb65bc51b3ffe6680b0bb58fbd46a4768d7f61744ac9f4dd234bc7aa56aba322cde462129c05debd5efddefde23ed1f34c060a172879ac2baed4e370c63b5f1ef21ab313f2f4a664cb49e0ab51bc8174b3a69591a6e0f858aa20f25c5fa097fb84f2063a96f48b54cf9c2cf7d4fce238248e3f0d16884e3e6a1bdb5a9380268c6a24cbf8b77d53f0db08e60f1b8cf083a00810d4ad3b88b7e0ed06fddbbb4775f37a4222336b798071a7edb6ee7eb11ed89331904901f95eb7046e1560955dfea9d46b50b0af396a9de\nresult = valid\n\n[d = 00d7a8b9b7c68954f5e79e0dce16b5042967f5f32677d91ff959173494da3e80116f7ab9fcbd49ac6cc33b4b76be563b82ad84c89a162e471fe51913ab197f484e68006d1616d7704d6ceb97dab00e6ad928c102476da49f7fa066f662f1517966ac23d92e94719da7f66412e628e8471cd73f7c1271f072ff05639dfe0fbfbd8aaa6fe74d250c7484ea6c02e57512a7e46b8be2340d48e184f91f8695e91b2648ef80bccedcf52f4335ae79f82b847a9951d018a0b04787994a1df86e82f6f3847ebbe9cc0156bdc9890995fbee3bea8ee567da90cc14d13bc6397bfbafbc7b9cc160e042a61d15d27d9971f6d1393e1760f0f23a61347242cf60bfbb9dafe6d6a2d95022d42d5452d863fa91e5d85f3425193b717052c589a381357aaf467502a082ae2082f4181bed283312f783b5cccdcb94b40ea25831285551ec1cb495ef884f3f83702298b5edb615ce87d2b28259b9d7cf5581dd8b27d9d3c523083c316a7341f4b9a49ab156232d3dfbb0e45086b58e39c51d831cb9432764d2127a691805d9c4b7b4c07324b2fdb0205fefd065c2d90b92b8de4ff4b82764b7a531b8d9c25f46211470e7a0f5e646b8046636599ae64c322a034893ad0c72af5558b582cb5f615c136da2d21db8d9110f95f874faeb1268e7c8380b4219476fabbab3ae6c008a3dbc4e8985f5c57124da5613579f926aa3faa4443138e8cfdebf3c81]\n[e = 010001]\n[keysize = 4096]\n[n = 00d89d424b14b86af79319720c7283ef4ba134b669a1d5a82faeb51968a48c785751c82aa773a8874ea8253891adb0604536e537fddc6049a1015a7e92920eb256516a6cd0eefa60d1c93b679ad619f81eb62717025288e7284d3d7bf55bbb9dc9a867fa4c0323ba4b2899b63739ef9d966790d642f95b6bc8ba341e03719d9e9cd86e0d8c4a2d0c3f25fba86ef4cb81e939d159445c64e04a2e185b1bef1e1137742c5e399a91f066d8a569bd9acaca4155ea11c4c6474811e5d9d79f0e5596c50ff2592c3ce7434bfc4ef7dc5c1f7c368d55c07125f04ba5b1dd5b3bcf010c87553d86db3d0460dc8b88e9970d1ed1fcdb7f4255f421791f85194b9160f89c381ed14ca532fc4b1e2e507b01d82ac5b683678b34d903605db188b9103325433c71c398af2e49e30e8d7100b56e2a488e3275a3e4cf75465915a24ad7c67d466d10d56af9f297cf848350a270a75a3df8ca7f61d663153c277ddf3ef4f168cc7e451671de174a8c58be3d3ed333eee1c8af479c4fbf7869f534a9a8bae304a34938fe924a806ccaccb33f22fc1d3a3adeaddbe092ea5b3e2d870cedf41d4e398a586b9dfa920a0d24657e54d56b09f45dd2f4daac0ebef856877768b0a079c51b5f5a65dd95c754a46356d100a400643fcee3e879b011dc4fa52fcfb40cd639b555af10b4cd5ce5ffafd36c20aa86651d1bd54c4c88785429b86dd50d0761f84d]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100d89d424b14b86af79319720c7283ef4ba134b669a1d5a82faeb51968a48c785751c82aa773a8874ea8253891adb0604536e537fddc6049a1015a7e92920eb256516a6cd0eefa60d1c93b679ad619f81eb62717025288e7284d3d7bf55bbb9dc9a867fa4c0323ba4b2899b63739ef9d966790d642f95b6bc8ba341e03719d9e9cd86e0d8c4a2d0c3f25fba86ef4cb81e939d159445c64e04a2e185b1bef1e1137742c5e399a91f066d8a569bd9acaca4155ea11c4c6474811e5d9d79f0e5596c50ff2592c3ce7434bfc4ef7dc5c1f7c368d55c07125f04ba5b1dd5b3bcf010c87553d86db3d0460dc8b88e9970d1ed1fcdb7f4255f421791f85194b9160f89c381ed14ca532fc4b1e2e507b01d82ac5b683678b34d903605db188b9103325433c71c398af2e49e30e8d7100b56e2a488e3275a3e4cf75465915a24ad7c67d466d10d56af9f297cf848350a270a75a3df8ca7f61d663153c277ddf3ef4f168cc7e451671de174a8c58be3d3ed333eee1c8af479c4fbf7869f534a9a8bae304a34938fe924a806ccaccb33f22fc1d3a3adeaddbe092ea5b3e2d870cedf41d4e398a586b9dfa920a0d24657e54d56b09f45dd2f4daac0ebef856877768b0a079c51b5f5a65dd95c754a46356d100a400643fcee3e879b011dc4fa52fcfb40cd639b555af10b4cd5ce5ffafd36c20aa86651d1bd54c4c88785429b86dd50d0761f84d02030100010282020100d7a8b9b7c68954f5e79e0dce16b5042967f5f32677d91ff959173494da3e80116f7ab9fcbd49ac6cc33b4b76be563b82ad84c89a162e471fe51913ab197f484e68006d1616d7704d6ceb97dab00e6ad928c102476da49f7fa066f662f1517966ac23d92e94719da7f66412e628e8471cd73f7c1271f072ff05639dfe0fbfbd8aaa6fe74d250c7484ea6c02e57512a7e46b8be2340d48e184f91f8695e91b2648ef80bccedcf52f4335ae79f82b847a9951d018a0b04787994a1df86e82f6f3847ebbe9cc0156bdc9890995fbee3bea8ee567da90cc14d13bc6397bfbafbc7b9cc160e042a61d15d27d9971f6d1393e1760f0f23a61347242cf60bfbb9dafe6d6a2d95022d42d5452d863fa91e5d85f3425193b717052c589a381357aaf467502a082ae2082f4181bed283312f783b5cccdcb94b40ea25831285551ec1cb495ef884f3f83702298b5edb615ce87d2b28259b9d7cf5581dd8b27d9d3c523083c316a7341f4b9a49ab156232d3dfbb0e45086b58e39c51d831cb9432764d2127a691805d9c4b7b4c07324b2fdb0205fefd065c2d90b92b8de4ff4b82764b7a531b8d9c25f46211470e7a0f5e646b8046636599ae64c322a034893ad0c72af5558b582cb5f615c136da2d21db8d9110f95f874faeb1268e7c8380b4219476fabbab3ae6c008a3dbc4e8985f5c57124da5613579f926aa3faa4443138e8cfdebf3c810282010100fc21b5fdc6c74328d01ba96c69698fa6f87a6fd2d01170cbe3d7f3ea5fa1ccf1911acf489938413758e402a73e3efdfc42353aef940a7a7e94e208cbd2f6d43fb6592fd7fd6cb170bfd72835d50d2d2bdaa6bc2745862e5d03cd7002c3246ee05bcefdfcb923c763f9ec9c05a770cdf96cfc650099a0848a686eed160a009116f93ee7e2f31d23e45d1be4b0b396d691c434ad447379a651e2ef1482f7c666c0c9d277b73db6cee91f770aa609e368ef3b9edf709c36d1ce8872423fdd4b38d54ba70d49eaa1472568fb0aec1ecc4073e407220516cdd01e11d77f6d4f5de5b332a5d6a97796c2d469c5092bef9389f168ef6eb4815761840648a8c2e7b645070282010100dbf00c2f80fc3f93c3b0296254d9ccac77297ec72ef881191cdf002c561535f96f8431989c4520b5e9d4ce9da6ba461c686f3b220a7d59e6ce10c25addad2b1945a6024f5894ec43326a459b00e03c0886a61b4a3ec3356a082cb1922b73d3c9335617f1f5376350fb39e5d7cf1a235f595f18bd6e926f0b64862fdfa1ae85785c30b7cc0ce5b79331338e424145eaf4101f3b894d4e613555fdd95425de4ab26913b71dc9bcc2f484901cdfc9509c87130fec83cb75fca64a24090ffa84c53b4c11e0c021b6a674cf2aa3d73652bf32b38b2a97ed08179e9a863f6a3c7404c99a4fba657ceba11316596bf7f447dfe353c7f1e4a6ef72b6f00db7de5ee3b70b028201002fc52f571acf6c311264fb4fb815310b80aea9fb3642e7ad29c923c4b743cfb1c13d6422ac2d15662828633c4eb5dea769dfedffb07bdfc395efd19cd4a6c18624c577242436f0d39cf565fff512df091d0f543cd89658b874dcfaa8fb522ed3c171517c0d93f2d645670814a629e04caed28f4c72cf0fedad65bef3db074a7620d94354239dd4cc", + "12bc13334b837bb9f883c6845ea0a0db88f4a55d3f16cf271dd60baaa33dbcac3cb2f0488f3d1007abb329408bc8732dff7a2e852d277068314240694dd42ac7b2c145cb80f6500be51b58ddbff954c22dbd37be7d381c2a3ca1612f90a1f6de0a003401a80dbb280b2aba3de6f7a8593c5b8de607c2e807028201010090d18a2489690f2febed8602725e8b4f909329205c8452f547366b35c664e70a5c6c8dffaffe30a0b7dc61441b719212c88d5d4177e8bc16a6df102aa6c68c97726df21d6ef5787072b4d92a4c345a333efe0700273d8061560a9fcde080bf163f9053ea050e387e2d3e1d62b1c2c341d8662eb3252894a7cac434a7ab1d705325590adcf82d16687c40374ed70e03bc3b1565ad6dd2cb5d444707204a63098a5a7819de2a64f975ea07be8b7852750ed7f567460ce59ebb9c1c083f9634706e3013a18ac1683448bbd496d771b4a0a2f0e814debebbd259a3e3fbc3a714b9c649ae6fccbda9a5811cf93a87a538e26a1c538eaa81652f82d7a420caf26e3cab02820100147f57e7a57f9a387b9d8b32bd121a7d0ef04e3329c5caa9eee5d512b6b1a8f180918ce957d25d5f4795ef3780f28d318251ac5439519869569d5c3c682dff570a16599ebef2e3b157b2c17ccc051ebfb5b271d628169d0c451cb960a1a72f1c7483524ddee78e3006f75b48b1a0c9fe70f4db36afd39c83876969ce37a1b15d515a5f648b1c0f8f480e79906b59968de20fd5708ce229693066bc4023964fcef1d01974fef64d0ca36f60d2448aeed2ce27f4883df9c4ed6bbbaf69ee97b0160fb81978abeb9faa7e69838624e399df6fc54d5055bb5dccc9c94eb3e88792ab0c69a394781fb73f28241652d0859a2c5bfdf4ff04e969ba248ecd8d470cd3d8]\n\n# tcId = 53\n# edge case for Montgomery reduction over Z/nZ (64 bit)\nct = c819e79c697b2b28d7c88226f4eb0bd4717f7ed47e8565a1e2d55c1f6849b3366ec502d5492a261999e219b79285be7ee6109c1974e70fe3538fc3fbe8e9fc4ebd584be8e7ea926c8b9e2e0356fa241477aee94222d629e9907ecc95934346b6e613ff2d40259b85410123d93383a0f2d5c2d9cd8a1054ec8af48c44091785999eb84c611e00514ce75b8357b658c99ca8e7f3c76d269271d010724cf86c51069722957463d487eaa06eb1172e8ede17c39d44e85999559b15bd97a57a0a93373bdb9228879d72fded49706dcf1fc9e898e05921651a31c5cd5ff95d3fea45ebae5cc71ad50eb458a3a19c6f2f1f68508859d19631ebfd8e35cae36dfbf36ea08b8e30668c1000a4b376611b7ba3829389a8582311a19e3a1bbcadd0fc76a20f5caf8171e0ec98621748832a14c0a9da25e9af6a1dc6f205e2deb321357e9f4728a833e515127f5d1a256b0c1f95aa86577a0b96d70dda97818d90f816fecd691982bdf37e20f0c7a5e1fe23620369358ad7ef258b987082b4fc7ca3f892e3df4d5d8d0c0c37967632a9da0405116b29e5b7dfd70e821b538af9db14edef5bb6da7dede14e2caa6ffb2072d17a9e95a396cc6cd7a2cbcf60d8ba9bab067f670475c128d3049b71f5ef04faac70a2cfd727d60a4ea64196ce4a7b909b36e60979f9f175ee5f60c544580998b6c38b4e83179294d81e8328ea485b6670659ba6fe\nmsg = 20602d44c530d39be325a5df044325db22c79ec57ded8e0180dcaeb4b3a8d09c778b59d762ab57e802d455796be123c826566d021893382066529dc3275c5a14041d564c02ae0aa466d70f6f7ea77d9a702b6edcfe44e5e20351909d168a7324cd4005c16ce76c901350af73b7649d9f1a70b106bb374bef6cc456611a781cc7d53505cfdfc47e9cf3d380ba34402bdad7bf5d0781a773fa35182b86e6943e9b35b77133b8e4e98f18e0574be7e2f842fa45aea420cf7406c7be3c6d1a0a8741ef0ece425e70af85c26354636e309b6b2b305f0bec34f1e78a5075fd1b9281012fd1bf36ac1b8c8ba9feb69afc354e9403af5d29fa279167027748b18d4b8f1c679edd7204770a66e10f86624b74ceba939d3ac791fea1d0125b567b21a9175c1c0f924d949ef77abde808ac46ba6306e5073f76ecbd7538f745cee43a2938355a52d132077aa21a31e735238f2741529b574d569c77cb5b1817ed2fe3702902edd7f68bfe2c341419907ff7adc4afd920da3b\nresult = valid\n\n[d = 00af8d89c02f04949bbb13948ee805fe71de17cc7cf021d3e1da61dd4b788c158fcaedd5e12ce7330d50e8a9e2a36cfda0dc42f5cf12a523fc6ae516cc9eb0100326f7d2bb5fb67238f784221d7c803c915e31aa1d5144d371285fa4dcbcfa8f2c3eb74cf1f5390ecbf201da3443d93b63cd624b84ab3e425a69269f71a534a9aac9e8c1417e6ad8cbd36e6e5c2c4d9a72799045782fa9b0ce410e79048326a4a990ba90b646174bb6179724feed38902e0189b386cb1b0d2e16dc0b43720c1d06db4512135dfe72993db127b046a584b1b6a09765c936b535fd48d8bb72b1c69ec3067d8f3103c6b6e10bf60731cfefc1bc68c480cc148a4422c0a54f7277e8dc61b1be3a2634d5c092998ae87d8299ab11db50a7b59cea34e411d90b254e31fd7b8eb16df3d4ba5c7b86e0e742b3564df700001b14bd21398e5a6fec5e62dc4e92b013e607741c52bca3b17a0d42592a473fb9b2751eadfe306f87a4613f28d83de5e7797decede6363e5c6692ad7d30be778886abba841288685543b1fd2d7876c7ff1e250bb7cf4e920e7dd41329675bb0fa4dd05831705dea42d7b0fa9acacf56d1ada19777787c549f4eb40a0a0ceb3164638c913ddb59b74f113290bed406c82dda432c5986c39194e7e4315a149efd55747b65d3c7dd92d451cea362ab1e501d0ac5f69c00c3019923ddcf3d47f9a3ec12263668dfe619a1606f40f315]\n[e = 010001]\n[keysize = 4096]\n[n = 00c5a211069f2189bc37363dd033aa6b068a9b83f572e1098de9a213b2a5bd5120f85c23ca8e6b382e2368948b517d00db5aef58d5794e461394ddba9fb6f3ad49dc356d9f1dcd0f25934ec0c8cd0dc833f00f29f5f6537e70e680a1cfd20448a8adb2ed959dda39c2d59c975a78472a68d9314ba2ff138288a0bdde65426f2c24dde0baebbf8444c9dd0cc3d72f760dd13832e6af86c7379d66198a7c5a5fa085c71f97f10211bf562a70f4e109c83cb6daf328dbf9606f116d6c62b1efe4fa4cfbda5405397a92eb391eea81c7bf129136040738eb5fa015c08e8154df9beb3a86504f400d4fa20bcb038ff2bc88c4d6cf364841f706b52bbccf4c4d218baef41f2083a7c76fac04603402fa2dd45e238659d1eeeb97929e35b0660aa6ffeb2e930dce0ae8261f45901ea218cdbe0bbd13d8c544396c81748134ecc9a12329495025e787f7cf15d2b5aa63593b1ff8d50c7f26728f2bbe22bb8a8b344bdbcaa5c41ce89e5de35f4e620a3e86efbd78a371f85ae47372640eb0f3e7a880fe0bd6fb48a6d6b80ea25679236e4186454a2513d4dc2ab8870d8938dd5611bdf84845704e15c77f52040570a1929df2d5436f0501678418ce2797ec0c0d9b72d8f673207ea2a4f0ec446383c8d283b8c027aa3d06ac66a81f7b909e7cf0467977a64e8c9059fe3641f3873e7535c868a6f520e0251928dceef84f232b46a9064ad9e5]\n[privateKeyPkcs8 = 30820944020100300d06092a864886f70d01010105000482092e3082092a0201000282020100c5a211069f2189bc37363dd033aa6b068a9b83f572e1098de9a213b2a5bd5120f85c23ca8e6b382e2368948b517d00db5aef58d5794e461394ddba9fb6f3ad49dc356d9f1dcd0f25934ec0c8cd0dc833f00f29f5f6537e70e680a1cfd20448a8adb2ed959dda39c2d59c975a78472a68d9314ba2ff138288a0bdde65426f2c24dde0baebbf8444c9dd0cc3d72f760dd13832e6af86c7379d66198a7c5a5fa085c71f97f10211bf562a70f4e109c83cb6daf328dbf9606f116d6c62b1efe4fa4cfbda5405397a92eb391eea81c7bf129136040738eb5fa015c08e8154df9beb3a86504f400d4fa20bcb038ff2bc88c4d6cf364841f706b52bbccf4c4d218baef41f2083a7c76fac04603402fa2dd45e238659d1eeeb97929e35b0660aa6ffeb2e930dce0ae8261f45901ea218cdbe0bbd13d8c544396c81748134ecc9a12329495025e787f7cf15d2b5aa63593b1ff8d50c7f26728f2bbe22bb8a8b344bdbcaa5c41ce89e5de35f4e620a3e86efbd78a371f85ae47372640eb0f3e7a880fe0bd6fb48a6d6b80ea25679236e4186454a2513d4dc2ab8870d8938dd5611bdf84845704e15c77f52040570a1929df2d5436f0501678418ce2797ec0c0d9b72d8f673207ea2a4f0ec446383c8d283b8c027aa3d06ac66a81f7b909e7cf0467977a64e8c9059fe3641f3873e7535c868a6f520e0251928dceef84f232b46a9064ad9e502030100010282020100af8d89c02f04949bbb13948ee805fe71de17cc7cf021d3e1da61dd4b788c158fcaedd5e12ce7330d50e8a9e2a36cfda0dc42f5cf12a523fc6ae516cc9eb0100326f7d2bb5fb67238f784221d7c803c915e31aa1d5144d371285fa4dcbcfa8f2c3eb74cf1f5390ecbf201da3443d93b63cd624b84ab3e425a69269f71a534a9aac9e8c1417e6ad8cbd36e6e5c2c4d9a72799045782fa9b0ce410e79048326a4a990ba90b646174bb6179724feed38902e0189b386cb1b0d2e16dc0b43720c1d06db4512135dfe72993db127b046a584b1b6a09765c936b535fd48d8bb72b1c69ec3067d8f3103c6b6e10bf60731cfefc1bc68c480cc148a4422c0a54f7277e8dc61b1be3a2634d5c092998ae87d8299ab11db50a7b59cea34e411d90b254e31fd7b8eb16df3d4ba5c7b86e0e742b3564df700001b14bd21398e5a6fec5e62dc4e92b013e607741c52bca3b17a0d42592a473fb9b2751eadfe306f87a4613f28d83de5e7797decede6363e5c6692ad7d30be778886abba841288685543b1fd2d7876c7ff1e250bb7cf4e920e7dd41329675bb0fa4dd05831705dea42d7b0fa9acacf56d1ada19777787c549f4eb40a0a0ceb3164638c913ddb59b74f113290bed406c82dda432c5986c39194e7e4315a149efd55747b65d3c7dd92d451cea362ab1e501d0ac5f69c00c3019923ddcf3d47f9a3ec12263668dfe619a1606f40f3150282010100f66022b1a901ea98279901e67c2b458a74ad0e240caf0c0f7cc51cae32650e7d6c7638b3ddb1768b4e515d62ad12fcac3ca39e5d1330b9d64181893a88065b488f7885bb0a876340777c1a3dc1528333453bf9a7439e8092b84817fdbf99a1775fcccd0f7fed2250ca47c294fb87174cf087a486c25349ea7b093f45cfd46e5545c314129abac2dc4beadd9e510d47bb3bb1de4ec2d85a422d1004ce02a4b28d4281e32abdc3b19deeccc5eae65c73625960f517242301670055d81a96ea4ec8d425535f14473697e62aba291c02ad956cc78044f653ef3f0275431c64470cab68e5ca29cd477f8e7ce900f2d594e23c035753372b1b8ad664cf8265757e6c1b0282010100cd5a7c1cab75f5020767e4f22ee9f553bc62417fc2a91453205607e1ed37c487792ade5dc6d2dc7f918fdc24928682e2b6ca1a7529a2e10dfc8f52e812399c1028369eebb770e2abf4879b5f512b01674a371e06cb4359531205ef91f583b23fd0db06f55eedfe6444ebefbd7cb4b642e19178251cd53520eeafc7fb3b2b6", + "bad05f44b36bf66f68e205b504e9fc0a20c8651e2f28e38fc1b38197f0aecfc6fb4a90b1bafac434aa6d97908ca2a30f990ffa954ed6ffd03f31a497ec24a7fa6d6e99a2edda78775c8494fccd32fc96c753eea0c558bc5e584d475bf01b12683edd4afb01057ed7565157583c227c7b63985fc0c9ecbd7e8855b0f8e5772c431ff028201005317b33bc5eb4e8a8878532abfdffc31290ea0814a01d38879a524fa1f26f40f1b0078393960bbc159e59920498ce8c8d21ec0af55648e98933933e618b0442321b81d2a2aefe46a7ea1cd5bdc928e8b41236c1c9c729d9c5e287a66eb32ce412b7f2ffdb5406ddd5f8b7a35b2eb29d19a21b53c79d78b4b58b992ac61de9c638806b6035c49f6a443ba6f8a107df11e5590b4904da898304f70629e7447c5ac5cacdfc7af7e8baddf3712dd195a3ed4019ef0aa2056ea072a16c9ae960d6a0ad379cf3776e859a23b4f57bfbba1af9780bb7c284607a2ddd65f6405f44ffe16e566f29acc8ffb963bcc7db468923106da7d9e243216b4e97fd07882ed7078d70282010100abed26de05fb82fe88dec602b19e7523ff23b03cdbe81d391f6887bef2916f3c1109001539420f13caf5cbd4decc3946c0cce26bd74923ed46d7640d223d13593fa1c35a0c4239b4c7ccc51b7f64670f68464f20570b72fca6a94b93431f589c2f2b415f2b744c38fcaf200fe0199842d481ab3a3f328e019d749414d5cc1ba147cbe930d3fccb4de0ef32843121e14a6526a7c075ac65fe0ff0e0b97002452fd71b92b9789afa24490d197bd0e921f8f0e37f542f1f8130068123dc5ced14ecf7b57ba95dfa7e750a54026389adb4dd50a8395d61e174b0ca042ebfa6e65d2c40963aece400cdf9ac86afa25d15ca8dcc8c62b08c6f9ea00fc62d612f97ed570282010100dff241e6605d2373ac6333d6819fe9f7c135f8ff9bbc6a8b8a09f86dbf62d29681d68c391027057226d9f02291a3511256886d059785a0c89fbdc11b3de83e48d11359f52f72593ec475aedf113cb7999f29e6ca44ac41165d5b5fc2ee37c4b4ae8c1d5871ce6b23eac4dbc7b85f0c6cdc771e7254c9526dc355eee85b126bbaa393f0e67d9306ad024631cb31133ee948ea90ee5dfc5ec8dea7f260595a3bfab749daa2b56a4dd860874c29c602b33cd307003bfc7a5391d6e21f97f3e9b9230a5f02212061cc0392c22989fd87e15c6e87115b51457be2cac15952a14cc63cf8ecca9b6fa84404b8052922bbc9ff808c4faf8d27f4faee23a90cbf91ce034e]\n\n# tcId = 54\n# edge case for Montgomery reduction over Z/nZ (4096 bit)\nct = 9abbd14f73f3e867bd771b78aeeaf2234e0f5b270967e3c80e0818a579b054b3c4401b326c1f22fe13cfd861ad5764c0c76d69aba1c430488476db3cf1c8fb046e351cb07b861bdb956e1bfdb470d3ebb9b62141f9b91a9a1ab667fbc458091025c889c9ca35bc8ae0a66f6b6098cf0635d4e60993fb028954ab55ea9d68905e5210e986fe195212b71d36c97e673e7f47c90c7c5d6cb8bbfbb3b80ce5b5b7920e72cb107dd58d56934378f590f12aea3b827867bee4aded76e84bb94748a3a7d5e4c0e5949bdacc77cfb4add6a8aef7e661cdff174eabededc9534e23174679b828af3259edfc6887840a17df3ade16ca1c0a0c6c25e224c928427e0b68ada1e36c35d26fbd34db706cb220424eed06ad26450ea325d640774949574f6fb15b07ec82115fed728ab55b5ff0d41e511b0c45c8e06a96a54bcd04271b0a50f3f771da810e852c050c57a07db693704b0d658af84f874ad1fbdedab4b4f620b829f355dc280cfe5df5d93fa930e4767b2286ddf3434ba62cd832592a9ddff850a6f32bb993fb1af521dfb963403a35e578d55d0792600082745b63ec6a1aba8b50cb73cfaeccd454a38ec967a2c24ba90abac2e36063275d3648eb181199baca1e7e5376233191aa2a8cf7ff1519605e2d7c47b8abf1d74f89afa14b5696c3a541c19edc7bdc435f66d18869e454521cc9c2b6b4e233a6c40eb09d48b179f5982d\nmsg = 8a2d9d18ff13682f12091d4d0571e00280722860d874635a1ad9d40f04502c5c99e0fd5232e40db1bfb782322c9966eac4e555b7fc14dd2bb81688c4b01f4ad1076603b575946d31e53339a2dc56e359368822f003a1b7ac29ce59f60f6709472dbf2a1d4b7b4061ece1724438739039a69d7d7e46a42ba9cba96f969c934363965b533446e25650222ba001969833f862a535eac644d0cfeeed49e38fce35453944cbbc32a977772e358f8835fb2543c9235f97876540ff596b7bd2ec28e3d10378f5a38fd9ead1c24cf3edd6148083b2ff9d98052218018921f108eeb76acf9dbdccd53a24da25fb0b61644d65b72db707885e7f0f166d69a0af35f8374f32db5444156c70fb72d07d6a4e27009555dedad66f5db6e68b1256420d15d05ea16d33d56ffcbd25fdbd4c74bd5ee185\nresult = valid\n\n[d = 0650820dcccf05a2b1a7e7cdf4ee95b4c6e8083b808b4f2fad24dab9aff5d865a9ff148f26219d1fdd32156f690110eccedd50be917a722b2d02447c2be86a21b67f6058cf16283c5fa1c28816c1981243e6cd0532a1c17ea8002e46429a5bea35a40d7f1f83264e43ad99cd93223ee13f5c2109e04403857dff27861c76a814cb98e4e597f796ae2fe2962aa7fb3874e0aeddc8cf98e933029612214e807be69300d0f0e14503cdd068205bf66d16e9ab1282eb908e56b5c95e57f7c7eda5070cf379a7cd5d9197a753b9a38e4e0d4a7b5e6cb2dfa55f79d4ee844d134848da361e89c77dfde9ac5213c2275a269c879bac5f628a708327e8847ddd4ef89f8da8d39c4fad321569a2af0c8006a578f7e51c8a59bbb8641459ff6ae4e820e567261ee5c09ec7c844d8b7b354a5482643adf4e30ac23cbff3d41635dc5405aeb1fecc52c43a63cba329d55705058e89e857cc7c472973684a16dba49d8e2ae77eb20b65c676e870619299cd65de7c12d402a303d8c298b930f517661ccb606ad661b5814ebccf173f5f71da0c59236090cef3208adc81cc537a1659377f02125180d4cdd1e067b7c660977b4619ef74de302e4a2527659fe11324ae4aaaae5431841bcc7f6bd35aebd92b8090240d677e208c5c8fc652b785dc8043da447ef28e99d3d0f26f19921c1d77b0427f3ec4145b65c3bd82ecc9e9346633779c146771]\n[e = 010001]\n[keysize = 4096]\n[n = 00a5ee61f4cc25341d7d4a42b4bbb1703ac6ce6fa1a5237ceb4ca0efa1d74dd7b6571ed9d6ce9a4dc098f00d4ac58a5c29dbad0587ed37991c0a69ac7dadf16da3aed0de8e6a3c49580e96e82ba77c7e0907b48c026d84d65e2d74a26e899c135b1ab708551840a6058a8f09274e9bd18d4417dad7b0f3748e37e7ee798830182b141638ea886f8a5820ed1e4e3b5122b45d2d365e9393afed806b3c7f58aa3a9df67e745ea95b0e0b849cec1882ac955358e901a67049024565a21cf584f88095a7fbc048fbd45ef87fa0d7e4e5458d80602b876bd065bc2bf97766cf4d88f1ae301d8d3e973d591ef93bc38d7a59c86361ec31fad98358863a581c1ac619b7280cf6747bef4fc244aeff0951fdb71cda023b25e76c30c10914258c4574767fda4743e9c98e6a95aa88f95b37161d0ff847aa39df82978f88e973e4c439a40cc14ea9e494e337864cb12c227e717ec998faa97c41be6b14f14adf2ded84702dbc325894da782dc5a93c8b0a95dc0b449704fc27d228e9f5ddf22ea95eb072123b9e5a7afa0761d9d0548ffb275cf882e6b8be9abf3f851c8fca7979896480e8d2526b9f1b947680c154f6c22f091d29701fc4c4a3355b6a0c83b398ca08f7d9f7faf4208b39bc14c76d93e6c57414b7eb1423ca5957a13f4035b59929756cf55bcb810b6776ce3a74cfa1a532d1af4a8a43fd263196c59a9afbf2064787b1594b]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100a5ee61f4cc25341d7d4a42b4bbb1703ac6ce6fa1a5237ceb4ca0efa1d74dd7b6571ed9d6ce9a4dc098f00d4ac58a5c29dbad0587ed37991c0a69ac7dadf16da3aed0de8e6a3c49580e96e82ba77c7e0907b48c026d84d65e2d74a26e899c135b1ab708551840a6058a8f09274e9bd18d4417dad7b0f3748e37e7ee798830182b141638ea886f8a5820ed1e4e3b5122b45d2d365e9393afed806b3c7f58aa3a9df67e745ea95b0e0b849cec1882ac955358e901a67049024565a21cf584f88095a7fbc048fbd45ef87fa0d7e4e5458d80602b876bd065bc2bf97766cf4d88f1ae301d8d3e973d591ef93bc38d7a59c86361ec31fad98358863a581c1ac619b7280cf6747bef4fc244aeff0951fdb71cda023b25e76c30c10914258c4574767fda4743e9c98e6a95aa88f95b37161d0ff847aa39df82978f88e973e4c439a40cc14ea9e494e337864cb12c227e717ec998faa97c41be6b14f14adf2ded84702dbc325894da782dc5a93c8b0a95dc0b449704fc27d228e9f5ddf22ea95eb072123b9e5a7afa0761d9d0548ffb275cf882e6b8be9abf3f851c8fca7979896480e8d2526b9f1b947680c154f6c22f091d29701fc4c4a3355b6a0c83b398ca08f7d9f7faf4208b39bc14c76d93e6c57414b7eb1423ca5957a13f4035b59929756cf55bcb810b6776ce3a74cfa1a532d1af4a8a43fd263196c59a9afbf2064787b1594b0203010001028202000650820dcccf05a2b1a7e7cdf4ee95b4c6e8083b808b4f2fad24dab9aff5d865a9ff148f26219d1fdd32156f690110eccedd50be917a722b2d02447c2be86a21b67f6058cf16283c5fa1c28816c1981243e6cd0532a1c17ea8002e46429a5bea35a40d7f1f83264e43ad99cd93223ee13f5c2109e04403857dff27861c76a814cb98e4e597f796ae2fe2962aa7fb3874e0aeddc8cf98e933029612214e807be69300d0f0e14503cdd068205bf66d16e9ab1282eb908e56b5c95e57f7c7eda5070cf379a7cd5d9197a753b9a38e4e0d4a7b5e6cb2dfa55f79d4ee844d134848da361e89c77dfde9ac5213c2275a269c879bac5f628a708327e8847ddd4ef89f8da8d39c4fad321569a2af0c8006a578f7e51c8a59bbb8641459ff6ae4e820e567261ee5c09ec7c844d8b7b354a5482643adf4e30ac23cbff3d41635dc5405aeb1fecc52c43a63cba329d55705058e89e857cc7c472973684a16dba49d8e2ae77eb20b65c676e870619299cd65de7c12d402a303d8c298b930f517661ccb606ad661b5814ebccf173f5f71da0c59236090cef3208adc81cc537a1659377f02125180d4cdd1e067b7c660977b4619ef74de302e4a2527659fe11324ae4aaaae5431841bcc7f6bd35aebd92b8090240d677e208c5c8fc652b785dc8043da447ef28e99d3d0f26f19921c1d77b0427f3ec4145b65c3bd82ecc9e9346633779c1467710282010100e883f8727edaeb27246d536f9feab1b347522a138f52ab5176bdde5ea601ed6836b1b2e073390887c04cae18d9f1c59062ce5323c2ab08d82b6b408e5562a11570dec210ccc58baf194109fa6a28f1c0fe2ef13829f0825a2c54a9a4996e65ea105683db145860d7a3819f40cdb3c4acb0c53e888a3a84f223680b4fd4e3088df0e245efa3b77e557a89e8e0e174f03c619daff71f85d94e9071116d3fe907da95cd19283cd46fb92b36bfd5452b695be5a65e646ed37394fa73", + "8b8b60cdcaaf14109284c1ef0f425ba9a8ce45a3c4ada92936729d4de1a1fae544b0a4657c36bbd5e1fcbe82bf279f0102643516436db991a23d06f5627f3cf7400fb85ee5970282010100b6b0c6d62aae771136bd50f9a6ef270f1cfeccc99742b2e52e921555f85af5645be8a7defe002c60e2e5550312d2db279d5be6c50fd54eff28fcbd67febcba54dfd04fd43d09affef4dd40ebd8fbfadbb62efcce473af563448c368fa9e1ca1ec119b18cf8c88889d9901766b926b5e6129ef1eed5c1bbe2beee86a283facb64898e11b490a465e6f84805bb60a617ad0f13d49c7ec64fa592882b9085549ca61e1a0ae90df980b38b7bdda564f06fa4079154711e8592d404a7fce368375060e3e13bfcfdc6fdcce9be8ac81b30bd8056cf5a333611126bee3a04f80fede8aa41b79aeb05e51f2847d880ea2bf7bcae259bd90553d64aca6b136c51b926286d0282010036c931b738b0b88bc687840b5f30dba2148205ac0a2f3e72b979cf7599c4067e71b4b9232dc31881740c1d5179b900061f61e23120e34ff82f72dc092d9149c7558b074b1214d1eef6125f1983fe15c8959bd5f697db35bbad8a5d568d5877e708e679b71b3a1fc76f9d513ae1bd23f054ce8507831a7accdb0edeeb768bf02e11be1f20720100617fb8130939d665ecb44b8574c316b4b7504d73ffbbf95a82649da8f9d42b720fbd60ef1e7f67d53174111958accc62058e65bf519e039f68555ffa4611b414725c4ac39da6c709c6a97f2e771f1d84b6b7f96190058c6c12317c19fd859e25105ee4cbfd748cc4628c41066b3ec27eece01e9a179a27b20d02820101008573527be587b62053ed2cf680f3d78359b9e2dc2b6b2484f764ecc2f4fd749dcfe97e9f0cca11a0e07d87810c420ca6be73007ad8db07aeaa411d1697654373765e93c1c4a88bf060ec325d560e932be5c4231587c0d0b9a7bc08ab1efc7989c7a2be28ed1e8766b30f6798b90d46f87e87aed0b942a0bdbc9d3ea9fe60b82c83b2ccca2a927c81a0c1f3b5f19ec252bf5dcc04593301c13fedca6cf2886139936990a8b7759787100ff653b80d4e6ff2bb3d84b837f88e79ac40b5d94df6a020364a7cbee09a4b124006deafc605d7771256a06c114274a6fba8df8fbb4926fd84625ce5dc7dcb0dd8602b2edcf3edfe38fee9be591e1f08e292508c400c6d0282010100937b8e3c404c7945f48379d9b032ef7a448768f32c3cda7a5a7b297f87d0406c7fb4f471c257d9469ea05daef490372853b3a5a6ee21affff5535b36e197445971e321e958b1bc000b2be48ee68e1d5ec4c2460c81464acd54df9bda672745ee1e8d1b1454994c7e0cb8c986b4e67140477d9642d17f31cf58eb30a08cfd05ce71d7f5cf4ba7a6fc7c63e3f69764bac9b986e5ce38a023e5fa9c98f13c75171991677af75dfcf116bba81dc7006a3b9f796fe026c200e404bd00905bc536410651761873adeb400a0feb747941f99a571e70803985b73fe08eafb0be97bdee0bac02cf14b3083e8f68c8a448d370d876027dead3a12737b3be734883697016d0]\n\n# tcId = 55\n# edge case for Montgomery reduction over Z/nZ (4096 bit)\nct = 6d406f69a232529030efa4031bd411a36ca9c6a649890f18be38f8e3076c301fb981f8498709d56e9d5f44edec50bf0c30cc02bfcad351ab82932e86b7f13158084dc9b5f3036308acd9c25e2f1837418f6c1e4e7412f416932e9391a3acdb14cdfa117a64479a73edf75251d576d4c89f9e131c655dadebde92cb82fa920ffa5f8f3ba54b7ef7757415bed6ed4c78f9f5eb9434bc5929a7e5c4c1003c91cb0329a823c3cd5ce8893ffeb8ff05aec35a5b0210dba88e3f3c4fa85baabe088a310e1f17ba9c1d203aa77f96a4895419c8198af699479c88e72bc14d56e067773120dddd09f896856f3f752b3c2ae95879d56261686012f25bbecb4a8b1d86cf95797989b73a83b58e8b1e702d6167e15ae01ed055a1140c0ed664a2397e68470c5de7b52732981d073449352779c543e62126f7991e91ebab4ab984dec34f315ea5ab1ee04b1dc19137589efb40402398ef672e3608a9b18d2465fa6c410d68ad609538d1a179828649cae4772cd483790c7e56166dd5a0a5d711de1cd17a8005c7ff28daa5d8fc3773ce395ecf7252507b45a9fee075178dfe43a363b791baad3c0d1c292381115fddbc478bce182e864861498860a69bf715bc6dd057b19722579b90defae27e2da2eb7707039087f638cb8544d3ca7b0bbdd674375d99f0ae7a4c5856a8e999fc47868f13f5f153e67b2aabfc534584e1afc3c40af95c21de\nmsg = 20b8edf3bf85147fe0bb51c759897a59d661b8bd81cae753116fbc69a6caa393fe6be8219447916b5ab4eca3185cf7881a227432e2dc672af518942466c9344e585da7c07edc33fe6521a1e689d0c6a4dec3afb41624ddedbe271b96e326a20bc2cedc30756b5915d25a932062b13113c00f58d7ca0053df99363740555929ab12645a65d868c28173b1a32f20064bd2ec5e0ffef496041af5bfdebf8040ee6b245c9120f451cddda40b9d86c23034f68e4329c2ba5d057a5eec0e2034a3ac04b7c155dfe72b995f873af16ac26e09de737b4dd8531e61bbfe26c15b140b9b091e551594cf564cfce72da5c9a8d8bb724326f22363c0b7623bbb4bb1fbeebad969496a5db8223e10f0fa5051b03b8707ac618b43ff77502e8396ad08c1dfcfe367ca8cf3d7dc459f64e5ce19f861a62a1300640aa381a4379e5487c1f9e128a8ad5a6b4729220b1a98460fe8462f54e58c8ff07d290ebdf676f4170f9876e29fb5000e654a3d0a88b5a6aa87fa78dff161ba633dec975d4f13b6e4d33e69796c858eb66c4671a22770e9febab10884c562fe9845ec7de1a74eca79ec57b6ae349a93759ba943fda50d86627b7dd293fecd2bbdd8016ed9cd1b05b48e3ccd691deacb81de4729c85c9abeaf\nresult = valid\n\n[d = 0a130c184ef0466747ea9ec233e61bc989cd6b9ef1d2f61bf3f37fb9b1d1879b1e80d1c14ed141e76be2a26cf48a6d9f80ca6240a4933fe41b62d54c43ed43b84745077eff4e4da604856d7569686e8133fefac2666ec70bd8f2a3eb9473a6dad7d7f60d102ac8a7f8e0ddd7037966c2c4b9c83d6fb573ecf254d3ebbff7b0453e0b780e22f5f34de07694bf32b87f216cb3ccbbd1dee0624a5e6bd98692abc575ed0a013bef6a1c0cf763c4a89e87c377230091503fbf39a0ceb1af3a4a3ee4bf0df157bcf1733a5300a92ef7f8cdc48b4e10fe99cb5acab8e5137a5dad6cf50240587b677e77ff2e1cc0cab5a8f85c14e367228121f6c6c0ab60c9a67ed4182f1376f088f7a54137a909579eefd2f03d18f354ca1a192b2bba91bec9de38dfed32976bdb0b1edbbe00d689128bb59ea2c1aabe501ba79425798c5546e015ad0112bf4668a742d2e180f72bd1c2a99535d446fc643baf1eafe61438129561e7d9d7af067d2cb9a8c176c4817ac4961e9c97aca3cc8544e34a8842d885e60820386d115e96909e84b44fdb5eb677f4f2cff0dabfd7b0e9573f803aa3df1b2d89452fccdfd9967a631285a08f2beeb2273f9cd0d942a9950225072490a078895461347e820ea1ab2787388f6155650e3f70b1c74907749e686fa339b263dad0e1bf47606b796911bc96c600d4842e20fe6302f2ae3428bc0bb9f0662a718d45f9]\n[e = 010001]\n[keysize = 4096]\n[n = 00b983b772a8ca5d556780280d6d2403b7087c1c39129f8961784ccc5e3226cd0c4ed4c9d87ac0f81087607b1d7d2fb39ae54e43668f6bdb69c1eb7a250f6e633b203f35bbde247723c2f6935fa860ab06266c86770ef96ab7b5a8bd314c8ceefcf50d7181fe6812097619155acc74b018feac4548dc9a313aa445ca61ac60675be0b086318fa6ae7d92d7bbf023147d4c04b10d479d37c3a9980a3ad5ceab81b32819e3d2adf962b8cb60f166d0f89e63e76ef79b5b364502169bfaf5917a26a041cb3b51ce2a7380fcd580a81cc1794caed5a792ddd473d0373a5cbffe4238b65bbc950589731fb22de30153f9a5a82d4312eb596dba3896b9e0996dee0d4713221885a7562cfda9bda02aaa09a5b9e0c3511b73f706a84bf10f0438cf8e52b5a9ebc0613479a15cd85b683e00bccc1918e0946830b5c85792a282d0c27a31b778c19f78e67abae5e88d745c2ce7dbce28799dc35ef58bdeb78fa2cd8ba36b5185551e5ecc2f0364d1252013ef764394f2bc0112075ec3dd8a9df2de441663a5a4ee81ba87868e5612f0b9649051aba7980a7ceecd2f99a6e9813807de8a875ee7d317318038220595494fc15635531e7f0bd88813209130dc22b6b078c40005bdc25fb8e80b75a4f665eae803cbe97082715ba25a79057c161c5f82acd4b0121ef7cb3fd6a3642e23fa7f0b2defcf9e078b058f674f42e3dcb1950686e31017]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100b983b772a8ca5d556780280d6d2403b7087c1c39129f8961784ccc5e3226cd0c4ed4c9d87ac0f81087607b1d7d2fb39ae54e43668f6bdb69c1eb7a250f6e633b203f35bbde247723c2f6935fa860ab06266c86770ef96ab7b5a8bd314c8ceefcf50d7181fe6812097619155acc74b018feac4548dc9a313aa445ca61ac60675be0b086318fa6ae7d92d7bbf023147d4c04b10d479d37c3a9980a3ad5ceab81b32819e3d2adf962b8cb60f166d0f89e63e76ef79b5b364502169bfaf5917a26a041cb3b51ce2a7380fcd580a81cc1794caed5a792ddd473d0373a5cbffe4238b65bbc950589731fb22de30153f9a5a82d4312eb596dba3896b9e0996dee0d4713221885a7562cfda9bda02aaa09a5b9e0c3511b73f706a84bf10f0438cf8e52b5a9ebc0613479a15cd85b683e00bccc1918e0946830b5c85792a282d0c27a31b778c19f78e67abae5e88d745c2ce7dbce28799dc35ef58bdeb78fa2cd8ba36b5185551e5ecc2f0364d1252013ef764394f2bc0112075ec3dd8a9df2de441663a5a4ee81ba87868e5612f0b9649051aba7980a7ceecd2f99a6e9813807de8a875ee7d317318038220595494fc15635531e7f0bd88813209130dc22b6b078c40005bdc25fb8e80b75a4f665eae803cbe97082715ba25a79057c161c5f82acd4b0121ef7cb3fd6a3642e23fa7f0b2defcf9e078b058f674f42e3dcb1950686e310170203010001028202000a130c184ef0466747ea9ec233e61bc989cd6b9ef1d2f61bf3f37fb9b1d1879b1e80d1c14ed141e76be2a26cf48a6d9f80ca6240a4933fe41b62d54c43ed43b84745077eff4e4da604856d7569686e8133fefac2666ec70bd8f2a3eb9473a6dad7d7f60d102ac8a7f8e0ddd7037966c2c4b9c83d6fb573ecf254d3ebbff7b0453e0b780e22f5f34de07694bf32b87f216cb3ccbbd1dee0624a5e6bd98692abc575ed0a013bef6a1c0cf763c4a89e87c377230091503fbf39a0ceb1af3a4a3ee4bf0df157bcf1733a5300a92ef7f8cdc48b4e10fe99cb5acab8e5137a5dad6cf50240587b677e77ff2e1cc0cab5a8f85c14e367228121f6c6c0ab60c9a67ed4182f1376f088f7a54137a909579eefd2f03d18f354ca1a192b2bba91bec9de38dfed32976bdb0b1edbbe00d689128bb59ea2c1aabe501ba79425798c5546e015ad0112bf4668a742d2e180f72bd1c2a99535d446fc643baf1eafe", + "61438129561e7d9d7af067d2cb9a8c176c4817ac4961e9c97aca3cc8544e34a8842d885e60820386d115e96909e84b44fdb5eb677f4f2cff0dabfd7b0e9573f803aa3df1b2d89452fccdfd9967a631285a08f2beeb2273f9cd0d942a9950225072490a078895461347e820ea1ab2787388f6155650e3f70b1c74907749e686fa339b263dad0e1bf47606b796911bc96c600d4842e20fe6302f2ae3428bc0bb9f0662a718d45f90282010100f4723d136e5acc1504102f04181d5e152867cc470a55d9558e2fb3529ab04b5ee913695a65a515ce35b171cd7ad2a6e5f1d4bb6f9283d5c6211b81ae372d3b32df3e45f3d357c6f8b9666f8de847d7af8f3e96d4374575e1ca7f139570443bd947c9f8e621d4be72604bbb2aaee0c75df9b80908e518655ac2d5d1c05cc47d9f73b0bceb935a8b65c32e9c4737e07cedc3d44cf434f0dc07f8f4a6f200795ade93854eb02f76b44e4b40af6cf4a732543b67cc0ec12cf81435ae49fa7da767724643e940585ed7482753d1679b7eb84433da1aab7e6af45571f3235ae02db37b3c9a8c39d463d3e25dca68a526598412e65b1041bcb8c6733b3293f7f6cc829b0282010100c24869cf4137abdf529ca47e4a30d40eede7c4959fbbb8eeb27229e3242dbef75e55d05743b7fef17a44ef098357406fc341d4ccf788ef0ed06ce854e1600e894b0e14061f75daab3355de69112904c6ab89a9045bd4f5f3ca1f959c2d1b1aaa4005cc0caf033edecb8403dbff56a04f3be3df0ab46eb15593f3c38d0de81657dd90ca8401d2e2425306d47ef76e9022daecd73d193bdc77ad54f4578ede45dc46b4352523b41f8f5fd9a662e0297dcccc729973ac3c457a035e3a3b7b22cbde4eca5eb1bc5cdcffeb7a114f26beb94d2eecff049deeb71719dd09667ba4d903eb46527493f0a54096996c07ba6e6ee566dd1ddc75a6ccae59200c6ee5d9723502820100244bae1beb7fd9dba8fdca2d5e7345dbf862e9270736d60d690e561f06cef4720443989a0e8ba3a039c2be36176d9dd078c6f089d18477c2727a06185b23012e3d8d9e8f64ab1ce5238a3d3821ec40ef5562a2bca1f4535b9258aa0cbf5db25141e2906d834a7678bf299f81e7f38246c6e4779af58158d35028b57b4d8af36830a2667ac82762995a90da2d8cf36d3954a17a47ac70b30b10012ba4b5434fa5cadbb96259b9d36de8a89323a77407fa0fd40aad8a2b662e8205fe000e9643bae909fe614a7dd293691b7df557564a7ffdfefd84c7419443f7a6757271e4f7486e28387801bc4ce2c8b05c3761695b3dff2c384eba79e92584fdae90dbf963cf028201000227b97cc2157303a42ff6a72bfd84acb1b8eb76597244a7e934d9001b0ba2ddad9f38136fbddfc71ffb19c7ba3c428bbad7c51b8cf768e77a2a6b1d5deea9da9e0986f15672013dfaf0cde9ce75ed06a32a80c47a9c4f2a2828d78906fb10fda87e27f8500cb22ad8891b5dda64449cfc6617b84fae16ab835ba5e4afadce69a51c91128bcea211e847e01d947316883c737a23c45ee4a0333d0904dba1dd9686f642cca9abbad9e54f4dc8350260d1dfc6b9ab0dd311563c29546e0a7ca5544efd71b5790872af28168f9098366f69cac67841bddac30f2f8b432a6edeb24597db8cd89c37842dc63de773e27e8d1e6058bd970f7b0d3435eae4186ad651ad028201010098c7381676006c0969c42cb80df82b0236fd251ea1caa78798c459629896201fcab5f4b3eebd6b2d39629d9a8bfd9047d2f2ca24c7e921aa26abdb1c996a4b3383d1c0d55289b44cbe01ea685c0848d5721ca3ddd8d6017ac3a77dceb110faee4869b9577b269d913b3d0e3784b325e1e854de1a194644bf39a4f2a0e115754e7a1f87440b5137c4e1452d9587b954fabf28e1bcff3706498099853e8bb6c8a389a9196e36d83d39e3c5a10655007c6e2b34402f272b679cbe1a8f708dbb74dcc2c14dc611ad781d637cc5b23a32a725bd9dbdd9d454e6715e7e9c37a43bfa76efebb781751bd567741f3cd3d1356fbb26ce4810952ab116a1989026c86c5690]\n\n# tcId = 56\n# edge case for montgomery reduction with special primes\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = ff759defa26fa28192b80bf0c50fc80a246bc1034ebf725ab5097cc099b2b1df06ef59d561ae7c6ff3f19fd359c5da9f310017e51783b0ef4ce845edaa92c4942a948a6b81db647bd098cea197c91991749c48a0794cb0a631911d5dc30d091da3a7e4116b151f06c384bae20e4d45d9c31f46ff07c09b0b86fa63ca422323a2dfb3747de26f3310580df00afd0933c1a51977603af1fafa46854ec3e03c2c015e9188f1dd3a8156daeed9f4a8f7a051b32ffbcbf0961d7ad158eb896dbc5816af3d251d725e0b6dfa9a537fa3008dae664b3788d082bfcd1aceb1581c000128241a07a4e02cf857c277b8f27f52fe9169a9\nresult = valid\n\n[d = 7b30072d5b09dd51176367dacfb43e1c640c6c6ee663f5abdd827423372804b21f04c75fb1e808f7acdb17e2e1c1492b9b139a8645318c11d9847fc9bdf12cd7d8fda019b2dd51f61016f6f828a0211e3a630a163a4d92f7f809cc45a7ff01a37dc7f8b39a6f9824dddedf55e5febf6ce5678696c93d91d9f0d3e6805716020406a0cff94c07f73fe3c8fa1e6ca7132d361a02d36baef1a2ffa129445bc71cfedc8b968424a5cd7a444b25b830e5e775f45dbae4317e52e1faf777d6ab26bebd0a8305d3db003c3162ea0e9e7da6abe2870dfe86a176c19f4bf3007943bd02738d4298f2031d9954a52ff6c2ed48be31dd044f5810fb6bb756b74b78f5710d0ce2a71419d6a1267bb7310d2bdcfee607a4d9637ec52ebc32a723771ebd1041e8cf47759d0e0afc3d54ddda969a2034aaae19db65aa30b5012625f97dc2d94d7eacd42d3232d2bb88a8d43d21182dc1bcf0f54c8df952d815f0afb65ce6de9ee02d7fd3fd84737e03e2bb04d40220d225943232c230eaa46a5cdced57a5ca7f18b2c8cfc49b9963b3376a39fa493ca9d6bed22464bbcb5e15ac0a88cbee4ac4a739e716d441387c3b9c757bbd37a9c6e42652b7e3b6776427134fca72a9ccfb33be49f7fe2e402f801e8d894a2a94399681c0b2508808882dc7ebd8c1dbdea23e1875eb8356ed630368c1710bfbf014b5bd258ff09d476f14bc9357bf8b76e6e1]\n[e = 010001]\n[keysize = 4096]\n[n = 009f72c48db8742b125f3a1ff9a5beeb18bff8513c7a9787431574455610877ac67c958c4fab2de863161fb46edb18e0067e3e7d72d86d03786d3378b687afed5bd22e10cae6dc98d97fb6e7e4c6c865e149937d9f5c9c0df65bb6e9836432ab57069d966b2c2b8e243372cd68999ab1faacd8a39a74616f396a09db151621bfcf2ebf334dbef9e9fc48b5a41c0104ceb0bbcbb9ca256a8a9d61121ec21ad30d1468a18628cc30e45e8e55533167bbf7e8e21504e0eed13a9b0413d03de683cc8c9545fde6b1a33d1c1f3915b7df62768c80297267b2c58d9d0fec3e4a8957a2eea197196dfe4f306ebd2afda749ade5ef3333f12852bbd039877d14c428279c74109599b72755f405b23e0379b554b0aa9da5d355d7b57a4dd8083bf120aa916a4b29b6de5728c54516449e4d0005ce9c8aa4e06f6447a1028cf95efa3c0c589c9a1063b115b2204c4c759d49e086b49267d6ed679b17385f37bd3b923c96e8963fa78f3dd2136bf64ce0e8a74075bc4758986eacacadd67ad64cd5992b280b261e390fbb2f46f9786438100550188d75087ed6e0040ddc494821c4ee545ef7f155ea3cd6669bad01162b83c0b209870f355a1035e2b8bad2372d5ef94a5a6c4aaa67c20438bdbe22d4d38cc02416c370ef242985588532fccc1d3650549934e19dca2d384a96a9dbef4046fc4c71ef685da14c6e7cf687452dda332752c343eb]\n[privateKeyPkcs8 = 30820941020100300d06092a864886f70d01010105000482092b3082092702010002820201009f72c48db8742b125f3a1ff9a5beeb18bff8513c7a9787431574455610877ac67c958c4fab2de863161fb46edb18e0067e3e7d72d86d03786d3378b687afed5bd22e10cae6dc98d97fb6e7e4c6c865e149937d9f5c9c0df65bb6e9836432ab57069d966b2c2b8e243372cd68999ab1faacd8a39a74616f396a09db151621bfcf2ebf334dbef9e9fc48b5a41c0104ceb0bbcbb9ca256a8a9d61121ec21ad30d1468a18628cc30e45e8e55533167bbf7e8e21504e0eed13a9b0413d03de683cc8c9545fde6b1a33d1c1f3915b7df62768c80297267b2c58d9d0fec3e4a8957a2eea197196dfe4f306ebd2afda749ade5ef3333f12852bbd039877d14c428279c74109599b72755f405b23e0379b554b0aa9da5d355d7b57a4dd8083bf120aa916a4b29b6de5728c54516449e4d0005ce9c8aa4e06f6447a1028cf95efa3c0c589c9a1063b115b2204c4c759d49e086b49267d6ed679b17385f37bd3b923c96e8963fa78f3dd2136bf64ce0e8a74075bc4758986eacacadd67ad64cd5992b280b261e390fbb2f46f9786438100550188d75087ed6e0040ddc494821c4ee545ef7f155ea3cd6669bad01162b83c0b209870f355a1035e2b8bad2372d5ef94a5a6c4aaa67c20438bdbe22d4d38cc02416c370ef242985588532fccc1d3650549934e19dca2d384a96a9dbef4046fc4c71ef685da14c6e7cf687452dda332752c343eb0203010001028202007b30072d5b09dd51176367dacfb43e1c640c6c6ee663f5abdd827423372804b21f04c75fb1e808f7acdb17e2e1c1492b9b139a8645318c11d9847fc9bdf12cd7d8fda019b2dd51f61016f6f828a0211e3a630a163a4d92f7f809cc45a7ff01a37dc7f8b39a6f9824dddedf55e5febf6ce5678696c93d91d9f0d3e6805716020406a0cff94c07f73fe3c8fa1e6ca7132d361a02d36baef1a2ffa129445bc71cfedc8b968424a5cd7a444b25b830e5e775f45dbae4317e52e1faf777d6ab26bebd0a8305d3db003c3162ea0e9e7da6a", + "be2870dfe86a176c19f4bf3007943bd02738d4298f2031d9954a52ff6c2ed48be31dd044f5810fb6bb756b74b78f5710d0ce2a71419d6a1267bb7310d2bdcfee607a4d9637ec52ebc32a723771ebd1041e8cf47759d0e0afc3d54ddda969a2034aaae19db65aa30b5012625f97dc2d94d7eacd42d3232d2bb88a8d43d21182dc1bcf0f54c8df952d815f0afb65ce6de9ee02d7fd3fd84737e03e2bb04d40220d225943232c230eaa46a5cdced57a5ca7f18b2c8cfc49b9963b3376a39fa493ca9d6bed22464bbcb5e15ac0a88cbee4ac4a739e716d441387c3b9c757bbd37a9c6e42652b7e3b6776427134fca72a9ccfb33be49f7fe2e402f801e8d894a2a94399681c0b2508808882dc7ebd8c1dbdea23e1875eb8356ed630368c1710bfbf014b5bd258ff09d476f14bc9357bf8b76e6e10282010100cac3f28b5ad6c0ea8fd2556a3c425e58b2caea35346f16dfe5cb9b3ea3f748c6e6ce05fbf3ec90f91bb044ec07d5d4211901894d850ef3e2b5df550c907a8a02806302932f5a08f3b78b09e18eb4013838c7e5f6509f052e4136f0b65f339767416fdb3dcf5a5c50c24c4061bac23c9f37e0942000e3b5fecd225c0f1c25565d239e7d3029abffdc57567f87cea9958e9ffb9919d0473ca28fe6706f4b9cfc782d13ec2749ec499d39a33128c9aa959c52d83558ecf7f083a4a3cd54509b0c89a7310cd26076bca5827ef3477b0faf83fe09e01a57dd2a19561402dd43e14b41321b9a782bf91d3d6aeeb942d6c462612cda41b045657020dde01c4733e585b10282010100c94f6fecb8bcf53f227f657e02dfb21f8b908f811284f59c83e8d17c8b375232e3e4e93da8fe1328816584abc25792ada03375787e47ef2be87a80fcfbaa8f371124bc6bc987c5bed276a1ccdb402dab18acb3dee531a2f09b3ed7454e6ac4111aecec2b9c7c5381997dc564d973104fcaf83df2c4b0efaf1ec0e795c865dad0b47ff9a1f1a3a797e0e82bad1f30d5bc10e8775a3c548166ab72fcbb631ad2483ad99e3b285eee120441c7caf3718a95c28b3f75c2a587c0a74864b30e252d28f8ab19afd42b8866eda8459aa31eca227cf34b6dda35d6cacc257b12fa637f490caf510d360bd896253372390708446b7f400190c5cfd02e1e2271d409221e5b028201006f9da5aa287b06ff17e484b8522b869bf4efd6352b83eb679cab93edcb7c9847454e2be521c51b98c53126ff76e0b240f5eeee9209a8cd8002f5c96f7d28b747e13c9f723e22a5c2e34a5a4a1bafe2ebfbf5ae1505144459cdf45c5547dab2815878268bc3d4cdf476c05ac07179f2bd02995170bc8c9ce6822d63d7bd7aa02bed2b956629ca50b20e31c34a12ed2f32afc663e4ddce1906b387fa64898f053b7235014e2f572ebea9b7b79be8474acc1e9e7ddf51b2ba66fcfe5e4d07821248c40c302eae832e1d3dd47c3ee0f3257ed71cc08c3fc9b31ef74f54b4506578738f0dbade63f661ae296af7f85f1903bed25de2c311b06124f67e2392de727e4102820100027a96ef3c4b1f5dfaa7c4f12b49e3e09d90572408bd5864e7feeaed74ad66b6b7b5aee5927a26743e3ba8c990a811674fecb24a9c8b78377b325efa3e8318265e70ac5d4b6aff955cf41703f5c3318cc4ce039d00077f7125083e105d69d5263cc5a416d9637287cb031076307349452243b247960273c11d48d4d1345984bb432dbc3e314289a2c62335be78fed9f2e9e662e9da8a53d996cce0add20797854a2c39d592a6b099ca31a12b2f9a3b51a2c6a22e6a0a2dc4c28a92aaddc6b96aa2bd40a0b8a51c95dfe14d921ce61929198ec963fde6e1d1377852aea624a98195c566e319c245957bb9c9734851e2bdcc2056a498baf95e4802b6921cd6adb70282010004c58b4ee0dd660c4ce896764a96334fd6f7072a11f7880c74785e93376e9de725eb091585a6c12da217f42018f678207e532ee29219fb5b57e9a16fb80dc9721bc884f8199e7490ccbf9f5163fdb5fb1817a7764822add3a8a6c29dbefc00f2ed6bb0b7a6a35ba6625a388f26e2c75d853e80915747b9b52eddd120657d389b490e673527f2eab57dcae8b78e65ace402ee80cab354e71042d8f670feb367995f271f3a2baec0630e203038e443c6ce85341b4e1ba1368b3aa9f0450d2ecd946c6dce5e0262d625abc3547626ae751deeba9f26bfd0e46065ef1d65cf6c2d0e68ac5c0935ca4b8745da82eb8bb05173cdcd6c08412d7ceb66075ca9e9def889]\n\n# tcId = 57\n# edge case for montgomery reduction with special primes\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = e76e5afed86df019226329b04016eb6b101e9bcf2f7b34be04cfdb343898d4f8a73bb5dfa6b9f6bcf1b83474ea1cf1c089131d976b90647175496a4cf94a75b08a0b2fade45792d65b7a98b16507c33c108af24bde91b7df288b8993951c346e2574867cdb1cd5db39f0041e0d090543d51318edb52f3b92261348a21b4650cb56f005a32a3e39f576c2478739f97cedf7301c39ebefbbe4d510aa597f4b0049f8a5e88be7b66b97796551db30fb14649a4a2d9dce4a69319f39e5ab86dcd10b08cfee312ab17d59e2918be12ca1939e444cb20d5afa37aa02d23e541103aed80a76f2ccff7636aa1df8798ca57f2d11075b3fed2387873e4180a6de9914bdfae366caf89037105d532102a7100268c87e9f7919864c6404d49c308f53dd40c4f2c4216b5e0c131f1a978bac16a2c7b3ee6212fb17e42ee69b3394e2c07264da954b322df42aac999e5032bab4e2511858c830954e61cba087a06c94a93e693081a706a4e0a2b9cee5c36f941866dfe6d801e9660e8bab8d6f175a263709a7ed266fd1350ef88b4ab913c1399d693c8e79deca2ce35dee6ac1ab1ce66f8fd12b62ae980e2c8ff75287cc0b5de2da592bbe367450ab9c75eeca6eeb2dcfd29f74863cf8b96e9c979da7b24982608fcfb1bd7c2064d15204ff678979aecf68660b6c55aabf06d4b36dc2deac172cbae6c7b68da108cf0b\nresult = invalid\nflags = InvalidPkcs1Padding\n\n[d = 289570d1efd7e81d9c47282d9aff621a9cca5b8cfa5c6bea60237dc62b9c6a023f368501a8e218e75996c4ed8d43d72f53d3f1fbd9d22189c40ac6dd2832e52921a2ed94359cd6d36f12239b9142c0804efe33b28129255b9ae6e6167aaa3a4afd039b85203c13ecf2f37b2d61d02c6b883e286a746be36f9db7a125eef09e5fc5f80cdf8c7c3e08fa94f96c4cd69c8a877c768ff3712137a141a0439089acb4f00ecb5b0dcd494eb248bdd699e88fd18e98e2c53a1c702969535c599f6ad7464c4144db51ebd98e547a567eebada1a104cd95f95eb48e7a28ee13bf781119f78bf734984873863e89dd7d378f7957a87e0c81373ce773632f746a70d3a596c7081d48a84fb1ee32aee06e17a2545344e51dc04da7be75d8b4128322ff53a95553a25b392303bf37ede32b2179bc81e790ec15f7e267133e4dd93d45b42383c29217cc0666b800e74b9e2c388930f1c31830c2f082fd5f1029c674593a3809a5a78ba3e5bf6fc32328e9497d1174d7c46217229ba4010fcd4beb6c998427f2e265c8ce1bcd367cecebaaa6e20dd311f10dadd5fffb8d2347eb41d2859cc0914681b954886ce23eff64ccf028d55901c47ffc65d7c36d91876a7b3cd7c2251480e4668f6d8651c326f4dcf83a238ea05d042b30b7fd746897264630428fecfad360ead48d0755b4bdd06213a8a61a5ec9646b84e9ef27066d7aeea45b2e3f8001]\n[e = 010001]\n[keysize = 4096]\n[n = 00cce9120dbd73e3b54c6198bf4b1f93f5908bf56a61da1938a4ff3fb28e8703860f2980336522097ed38c28caf32b1548b7b8cc2a33dec64002edfdca2d998c449c70f4b39e32430ff92ae3f2d7a75c995a7548d47824bbda7404c0c1c5295b897e1e4df5584d651440b2e3106dc47b4cda3ea6f1d0f2d28c9b1583c7335447f4b9b47a968cd0cb533de3854577e46a5df5910a945a967516b0bd5e0fa2dac9c65896bf9534780dce3644019099fa5a9bb2e4a6e531d0144fb576af3c4490a8d92d321e11a5bb976f1e3a700caa55f00997fea27e799bc0dcb965c8413d26c68064a3c9b692cfc5a96159fefec05a643a2d10f26cfd5ee940aade8245dbfea0b82c0d6c4d89e82750d802c3a0dc460001176fd06df97b2735444227be327cf6a30fa59b8dc7d2ab831e589745c5c4532921eac7d63d687994395a3f4a523b564cd239555fb6c2249e30299101943c62125f18f789529e554cc1ebc59f7aaf839e5e4e8ff67628fd92763e064e74d8e7abb020551759b51fa99ab67de493c6a1dd527d476f074fe1f2c5d8c6fc6175a322a4dd122918c21219868f8610877c0bf535136e6e2cc006f41897ffcd1a8234470c1b523a2a2b29ff8126470107b5ddf335cdae88ccc27bc4f98bc4c7b50ac2a86c3466d3dd8afc788bcc663ae9751b6e3f6a5fd85f5192124b1cb9ae348f2206f0cc29e5bdfe2459312a9e5ac71eb741]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100cce9120dbd73e3b54c6198bf4b1f93f5908bf56a61da1938a4ff3fb28e8703860f2980336522097ed38c28caf32b1548b7b8cc2a33dec64002edfdca2d998c449c70f4b39e32430ff92ae3f2d7a75c995a7548d47824bbda7404c0c1c5295b897e1e4df5584d651440b2e3106dc47b4cda3ea6f1d0f2d28c9b1583c7335447f4b9b47a968cd0cb533de3854577e46a5df5910a945a967516b0bd5e0fa2dac9c65896bf9534780dce3644019099fa5a9bb2e4a6e531d0144fb576af3c4490a8d92d321e11a5bb976f1e3a700caa55f00997fea27e799bc0dcb965c8413d26c68064a3c9b692cfc5a96159fefec05a643a2d10f26cfd5ee940aade8245dbfea0b82c0d6c4d89e82750d802c3a0dc460001176fd06df97b2735444227be327cf6a30fa59b8dc7d2ab831e589745c5c4532921eac7d63d687994395a3", + "f4a523b564cd239555fb6c2249e30299101943c62125f18f789529e554cc1ebc59f7aaf839e5e4e8ff67628fd92763e064e74d8e7abb020551759b51fa99ab67de493c6a1dd527d476f074fe1f2c5d8c6fc6175a322a4dd122918c21219868f8610877c0bf535136e6e2cc006f41897ffcd1a8234470c1b523a2a2b29ff8126470107b5ddf335cdae88ccc27bc4f98bc4c7b50ac2a86c3466d3dd8afc788bcc663ae9751b6e3f6a5fd85f5192124b1cb9ae348f2206f0cc29e5bdfe2459312a9e5ac71eb741020301000102820200289570d1efd7e81d9c47282d9aff621a9cca5b8cfa5c6bea60237dc62b9c6a023f368501a8e218e75996c4ed8d43d72f53d3f1fbd9d22189c40ac6dd2832e52921a2ed94359cd6d36f12239b9142c0804efe33b28129255b9ae6e6167aaa3a4afd039b85203c13ecf2f37b2d61d02c6b883e286a746be36f9db7a125eef09e5fc5f80cdf8c7c3e08fa94f96c4cd69c8a877c768ff3712137a141a0439089acb4f00ecb5b0dcd494eb248bdd699e88fd18e98e2c53a1c702969535c599f6ad7464c4144db51ebd98e547a567eebada1a104cd95f95eb48e7a28ee13bf781119f78bf734984873863e89dd7d378f7957a87e0c81373ce773632f746a70d3a596c7081d48a84fb1ee32aee06e17a2545344e51dc04da7be75d8b4128322ff53a95553a25b392303bf37ede32b2179bc81e790ec15f7e267133e4dd93d45b42383c29217cc0666b800e74b9e2c388930f1c31830c2f082fd5f1029c674593a3809a5a78ba3e5bf6fc32328e9497d1174d7c46217229ba4010fcd4beb6c998427f2e265c8ce1bcd367cecebaaa6e20dd311f10dadd5fffb8d2347eb41d2859cc0914681b954886ce23eff64ccf028d55901c47ffc65d7c36d91876a7b3cd7c2251480e4668f6d8651c326f4dcf83a238ea05d042b30b7fd746897264630428fecfad360ead48d0755b4bdd06213a8a61a5ec9646b84e9ef27066d7aeea45b2e3f80010282010100fdec846eb4fc015c4325eb2e6e410347ef88563bf4f99be2dd867e8c0b20d5848ed779011c804b33c961c2deaf1cdd29c846b2beab7e5ae95121c0fb7aed00d09bce4cdab21c9d75e26f0610049a913edc27d826ae374d0d4687e9f7d2c615350c92c49b522db586de297428d1446ff6dd5cc65b612bd268f9993cee2cb475062d996ee713c15650971979e06dab3e1723909279b85b9101b4189bf5f99a0f41285bc9b978ae5a478eea34da81b0442b2152d7bb3837e775ac2846e2e164e67939afb5d46661a3a3bf75a333a06a32ff15760035252acace2dda37a5b6ed6fd3921460c220b42812da5fe8ef80445159e5ea9fda96c9e9e232c894f833e0c5c10282010100ce95f6d4044a9f32b9e13e87b8cefe97b2db753caab9eb6d58132a8bf62899cd62704715f93f8e636d5bf286b4de9ccf68667d9f698b062f2f6395c26350124ee48fd55aea541ecc8b27cf359da53a89f26aca00260fbd1d25e6614d46892ff9be93ba9a94ec5201bb55ec825b3317ac1bd37acc90b3d3df48a9e7cc2e660e06dc16f813491ba3785be1917e509f6768c2e0fa2a92b5e428a797b2a79ffc0f56fa7f312ce79c5dd475deec345cab4c8a03897cdc02ce7a5fa015495919d5c428a17b8a04fddcc09b3103f6febeb3428375faf8a9a4a52ed58ae3248c840871c534463079a624f2548a8974f10070e6d950d6c8a76f22219ab44d61a0b089518102820100280a097fe36df150f90d9b9e00a8a3b9ce1d736b94df5f2350c70a614ec7e8a3345ae9abb130d1aae2d055880398cb8ef113a4cfc7feee9ae7be28cdfebe2c68b888b939aae83434087675404559921995617b05ee66adf1aff372832f6b28a0ead0a1cbd4137d123d29d035377a51255e1668f8b3c3d333d657c171d4fec78d27d78fd3441c325e16d55f9071fa9499d573d084fcfb034c7f7779f039617f9248a8e0902c6561baf2e01f616d1dbc4208c9255752300e81519a30434a433ccc54ba4e33a5c933a278683649c7bbb73addc97392edbf67a74737a79aabd398d485ae4ceb8f7898f1101a1b82d878ed52fd9c1784c24e2861109cec508eed9c810282010100c5d369a821ebeb8341e8e65e45a542bbb5f4ddd19893ad54ea30805fc2fba23cc1754f3d458f8d24bd467d7a6d9d77804e33473cee6ec91f4a3c0cdf3707286110128477294a20ac32dd8e59837b0411b1687dc3a2af13a3e3f5375c2e9d94a98dcc1db785c0bfcf14bbf55de74387f9b233d3b62d236752bc5ca7b22904658e401866bae1196c7307597c5fff88861815f626d9b9e0207aa5f2688c887171a712fdd5f3705f96a2abb52b700105b0a7c13759afbda8481b664abc106ce2fd930300306d1344dfd43d1dd4daa1773bcc73a03f9b04258231cf6c3045b6f1f730a71c47b3565caf0a3217eb3a15f807b836e75702af337a06917e406d066099010282010100c241ef6ff7630daae6a81e55b0388ad8c0bf29134b5fdfac465080ece3f5808e3602a7dbfad58c88d4b34d78036ec124fc8ae4d03aa328c291008ca289e58bf4ff181a9d56e6689c37b923d1b07da1bca29a046f67ef070d09abe621b97140431cb207c89342779f891cd0299b8982a3aee8265aa9c55b3ce6c334e4eee3a67a4c0cd0d357f89bd707383f2bb066120d39aef6e4f87cc794cd13514f601f41b060337fdd4964c0c5683820cae3bec2406369fa1b92b7fb961215b24289084cb6746046d2f538391f365446eb226f73bb1b70e4e4503a5a7d2f169aff410e7d167651825c68793520e3daa0b65f68829f6c2844cd8eca4d9885f13b3dcf7d0f7e]\n\n# tcId = 58\n# edge case for montgomery reduction with special primes\nct = cce9120dbd73e3b54c6198bf4b1f93f5908bf56a61da1938a4ff3fb28e8703860f2980336522097ed38c28caf32b1548b7b8cc2a33dec64002edfdca2d998c449c70f4b39e32430ff92ae3f2d7a75c995a7548d47824bbda7404c0c1c5295b897e1e4df5584d651440b2e3106dc47b4cda3ea6f1d0f2d28c9b1583c7335447f4b9b47a968cd0cb533de3854577e46a5df5910a945a967516b0bd5e0fa2dac9c65896bf9534780dce3644019099fa5a9bb2e4a6e531d0144fb576af3c4490a8d92d321e11a5bb976f1e3a700caa55f00997fea27e799bc0dcb965c8413d26c68064a3c9b692cfc5a96159fefec05a643a2d10f26cfd5ee940aade8245dbfea0b7ac0d6c4d89e82750d802c3a0dc460001176fd06df97b2735444227be327cf6a30fa59b8dc7d2ab831e589745c5c4532921eac7d63d687994395a3f4a523b564cd239555fb6c2249e30299101943c62125f18f789529e554cc1ebc59f7aaf839e5e4e8ff67628fd92763e064e74d8e7abb020551759b51fa99ab67de493c6a1dd527d476f074fe1f2c5d8c6fc6175a322a4dd122918c21219868f8610877c0bf535136e6e2cc006f41897ffcd1a8234470c1b523a2a2b29ff8126470107b5ddf335cdae88ccc27bc4f98bc4c7b50ac2a86c3466d3dd8afc788bcc663ae9751b6e3f6a5fd85f5192124b1cb9ae348f2206f0cc29e5bdfe2459312a9e5ac71eb740\nmsg = 4968affba621d99a546d86aea60e00f65d72fadae94162b03663df296ddd98c47e9604089657994b6b07b39d42925ee7782e2953f8e769afd6e2bd567b55572c84b4c5a6321ecbd280f4c8732122c1717c3a587a7b214b8ab9bea33d43bbb8795add9f3058c403465061b57b13663aebc2665bd7ad179481bac3cd871c460e9724bf1a959b82ee713952cbf629b7b33ebab4beb1b6c57142e85a7b671896c8f6b79335039cedba47c077e9ef7dc7ec6d59a03c344b\nresult = valid\n\n[d = 08c8d109ba3ae6a4336f70b74de0febaa8446ef6156097252c97bed6c0ca50ac1ad81ffa194286b3b05325025fdaeb598a38d8052a1e071c5de23ee545fc7c9f72423570487bfd0504356e955770e11295a7c6071138f58c54abfc1dee2f7b1b52dc294126b44cfc3f26d2b5eb88f3cbf5c5e852c26ee431ad4024a03559a04a10cb93da75490aa3a395f93016c5961a029d9409363918b3313bf4b258e37f7a6ff481e8a814132b4f62cbda155dcc2e4080e346768704199bce9a1b139e3f39160a326c59778ba460fbf7cebd04709f64048dac66275ed6d1936c66095a4172be0df278ad06fefd427eab2c18c2eadb3f2a04b56d01957ad41707c58ff10ac1c3e045daabc427db29661220ef42c059acf9fea5a8a616e37f32d106074dff98b44612869cefdfa2626e77fa759931649a5497f8fd6d965631808bc320bf5bafe7f78108c6b689bcde18409351052488768f0da8e286e41c69eb109208ce4c875d3e1b83d1c125ebe3aa87bd9dd2fe54fd761fb27f5dc728b34007b495287bea6254b90ea218d38917f1a3f78bee8c51ca881fa9ad24dfd76f59298da1454944e8872110a628215deeaeafe3c4325e1800280bb9bc6421515299bb932432f28e849d79ccf23126e29453fc9bfc05e145725c6fb749d327351b49dd77bda6d83a569b76e833bf28a804ed5e6c2e3a58a576945e96c08e4c0fd94fa1c221e091]\n[e = 010001]\n[keysize = 4096]\n[n = 00e0e2950ded4349829b906a46426e0f90b31bec406f11409392e457d9901b58a45a05e1d2860fff0580aeeef3afbab872283d063369eb52a3b30fad8d49c6a9317cf72b72fe06f34cec3eade09a38d9f245d5f7e25333e0876c08143107bdbaae32593621988b91a79d1b62dfd316554a8e9635aaacf7100e8b61c9a298fbc391b55d43cdb6bffe116c2947019891498f458f10add36e4ad43183cb07c22f3c97f17e961dcc791ff041691fb01f30279ade5060bc2e25dcdcca6bca915f55158886ba72413063b5fe1008e112151e29fba9fe91b1fb93b304d76c98f22cd447b326780d76599133a025fe2aad31805c9dcd5396582be6a60a8e95fc759242ab7cf0152e1b56e0aa8717eb462662ee365b2502485ab1f673cc74e65fc163ecab10efe1157ba872244a61b307e20e12e85cd3a4ac1757ea21c4a694935f41749e8b1ff5413135ee0195f665e34b36f108775bf11d7a84dc4cbe984ffd7b135d69e40e47dcfba1b8cf5e14ff29bb375edc5e66695b3c9aff2add8a1952c9d1d60fdca3b94e38e6b55164ca503d454b8a6fcfca30e95fcf8c1dd47f864717ebd2a50c64ca0632bba5ce80bc6cf1750d6dc294985cf160cd837e9e9eeadd8421901d86dbd50bb1ce2611abf5292744be25a90d81d8bccdb87fb9745ea0a003cfe84c3e4b4c7e26fa04d8e317ebed945ff4cd71f2120e51cafd41ec6874648c04f89a4f]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100e0e2950ded4349829b906a46426e0f90b31bec406f11409392e457d9901b58a45a05e1d2860fff0580aeeef3afbab872283d063369eb52a3b30fad8d49c6a9317cf72b72fe06f34cec3eade09a38d9f245d5f7e25333e0876c08143107bdbaae32593621988b91a79d1b62dfd316554a8e9635aaacf7100e8b61c9a298fbc391b55d43cdb6bffe116c2947019891498f458f10add36e4ad43183cb07c22f3c97f17e961dcc791ff041691fb01f30279ade5060bc2e25dcdcca6bca915f55158886ba72413063b5fe1008e112151e29fba9fe91b1fb93b304d76c98f22cd447b326780d76599133a025fe2aad3", + "1805c9dcd5396582be6a60a8e95fc759242ab7cf0152e1b56e0aa8717eb462662ee365b2502485ab1f673cc74e65fc163ecab10efe1157ba872244a61b307e20e12e85cd3a4ac1757ea21c4a694935f41749e8b1ff5413135ee0195f665e34b36f108775bf11d7a84dc4cbe984ffd7b135d69e40e47dcfba1b8cf5e14ff29bb375edc5e66695b3c9aff2add8a1952c9d1d60fdca3b94e38e6b55164ca503d454b8a6fcfca30e95fcf8c1dd47f864717ebd2a50c64ca0632bba5ce80bc6cf1750d6dc294985cf160cd837e9e9eeadd8421901d86dbd50bb1ce2611abf5292744be25a90d81d8bccdb87fb9745ea0a003cfe84c3e4b4c7e26fa04d8e317ebed945ff4cd71f2120e51cafd41ec6874648c04f89a4f0203010001028201ff08c8d109ba3ae6a4336f70b74de0febaa8446ef6156097252c97bed6c0ca50ac1ad81ffa194286b3b05325025fdaeb598a38d8052a1e071c5de23ee545fc7c9f72423570487bfd0504356e955770e11295a7c6071138f58c54abfc1dee2f7b1b52dc294126b44cfc3f26d2b5eb88f3cbf5c5e852c26ee431ad4024a03559a04a10cb93da75490aa3a395f93016c5961a029d9409363918b3313bf4b258e37f7a6ff481e8a814132b4f62cbda155dcc2e4080e346768704199bce9a1b139e3f39160a326c59778ba460fbf7cebd04709f64048dac66275ed6d1936c66095a4172be0df278ad06fefd427eab2c18c2eadb3f2a04b56d01957ad41707c58ff10ac1c3e045daabc427db29661220ef42c059acf9fea5a8a616e37f32d106074dff98b44612869cefdfa2626e77fa759931649a5497f8fd6d965631808bc320bf5bafe7f78108c6b689bcde18409351052488768f0da8e286e41c69eb109208ce4c875d3e1b83d1c125ebe3aa87bd9dd2fe54fd761fb27f5dc728b34007b495287bea6254b90ea218d38917f1a3f78bee8c51ca881fa9ad24dfd76f59298da1454944e8872110a628215deeaeafe3c4325e1800280bb9bc6421515299bb932432f28e849d79ccf23126e29453fc9bfc05e145725c6fb749d327351b49dd77bda6d83a569b76e833bf28a804ed5e6c2e3a58a576945e96c08e4c0fd94fa1c221e0910282010100f08b48dedaf83aa6c1ba641d8220f6e3336a2d23ce153d075ff6a4ef4aa457db45205ec73421762206924e0c872965099c672a4c6069dfa98f9e0d115619be208bc89c118d95ac1f896caef01c703f1cf0a0e505f250d99d476b0889e2e1d5d13bda462a8604b8225f30cbc8547a9eb3602c1c28050cd4bcf6877087757a1d68a00e193d2bbdb4d87efef35ff8c97c3730d812b7f82e1bc4127ba706e532872f01a6c445a3ddbaaab693dc3e341962b2a958908c293fde5818ff16e5394591d39236b80f57290d2aa3d3e455775b0f648eefd3a0e74e732dc6a4a4187b2a3ccbfcf672b6b4f9f0d24f638d8e92de1ca5f1f32b8d7e40066da1e0f879eb9a16f50282010100ef55b8f11f39acbe9c77baef23a21639cfa08b3fc2b475cfac4e1b8944146f56e1466f094eddd2bb597148f0f8259d253e5213a26d3e4820b4b065efde4e6ee3d03bbeb21536b0527142efffbe7507fe1c29660fc0f795ffe9bf1ba1da0ca51b71e1836c94ce85edf3906d22546e39ab71ed87d17ab8157abc4bfcff7973d6f763c211729d6bd927f23e7f60888b538fe9f49e79c2b64f3bb4fb55c98b22433ecebbe5f2c54db9a137c939c4d71dbed8823663da3ae0a7baee6a5bbbbae1dec0f86b48fe10c74f54ff13915669ce122095ebe733dcf2c57324e31bc2381578ed9f5b17df344e77590664d7115609340413eff80dfc3bf87b09d3ea4b55e639b302820100503551962613d192db54689fc24d75a5aaf6439905d5e524b96607f756bf5820607b7bbf16edf5734117b5f8cd750b20da4b383a8187ac31e116c5aabb381842c7f99bb8eaaa36dbc93a39570d548c66fd01d97c53218c7eba5ac15d210f46f9dee858af4342fd97508077e313f0534ce2cbb293d1a346a8bfd7c7b9137e25a246848cfbedc2f333a19d27d01fa827c84b7c3139b102c6f569685bf89ba26e9b4904afbbbcf9698e151556c2532307db2546c7e444b8ec4e19ffad45c00427ad11bb3742be408d0863da7aefd8bdbf733b8a52d9fb671856f23ee20cdbbce8cae84dd1508526369c1a26cb03f88b21a85ff642d68a7b94e927aa599065f45aa50282010100984c8c6ba3db27ba04078cc5307fac750d52b449d6b4cf635fda345b9d1f03dadd6fdca8a7af30b257b0672230467f417beeeedfa574c4a14b5a1504170b0235a604decca4033120c5423b471b038e1a7e013a193c4a510190d533d842d1591fa5d043b98cd7ff11f4b42b3e754bcf16f2609cd508aaabc076a24454ae0cb0f6ac5c8a8dccef1c38f7461df867eb81394b3f86b924d6ae84e81e27f120c0a4da0ae436e7cdf62ff20f75d575150eb0ab45f12689707e153e37092766c6fd84aa776a8e005edcf5f6b87ad339920ab82e5438d1df86f2560377adadb461cc082fee0021a8bfb84eea2fcf6bac747b56c661898ae81b626e349d8464cb9bd5ed51028201010089f993c420ba90f4352e0937e4f4bf99d6a5be75649e1004ec094f918e9122db4e22702d3691dab6cdbeb3644038eb43e32c7ca6365f73d7de2013a8004ce3ef4b70f4aae2d4d5c377137fb179c9a007bc3074451454e09353aa0ffe3a8b6bbe5b7aa2cdba2618db38c600e6c9333037741a9444d4176677a67a262eda336af53e9dbf350b495b314b4a04dd2c5b20aca01084d22a45a4d5405f6056c88b9a71453205b1e01876dab4102e8778160dd341af9bbcc4df6634a78d6552e69f45cb814dd5c535a416d582ffa7ed4abc6a8d037339705f10f8dd1b1926e3439c3c5d9db46788ca38c011e589edc4c0c2a228f604a8cac610ea282337dba921aa3daa]\n\n# tcId = 59\n# edge case for montgomery reduction with special primes\nct = e0e2950ded4349829b906a46426e0f90b31bec406f11409392e457d9901b58a45a05e1d2860fff0580aeeef3afbab872283d063369eb52a3b30fad8d49c6a9317cf72b72fe06f34cec3eade09a38d9f245d5f7e25333e0876c08143107bdbaae32593621988b91a79d1b62dfd316554a8e9635aaacf7100e8b61c9a298fbc391b55d43cdb6bffe116c2947019891498f458f10add36e4ad43183cb07c22f3c97f17e961dcc791ff041691fb01f30279ade5060bc2e25dcdcca6bca915f55158886ba72413063b5fe1008e112151e29fba9fe91b1fb93b304d76c98f22cd447b326780d76599133a025fe2aad31805c9dcd5396582be6a60a8e95fc759242ab7cef152e1b56e0aa8717eb462662ee365b2502485ab1f673cc74e65fc163ecab10efe1157ba872244a61b307e20e12e85cd3a4ac1757ea21c4a694935f41749e8b1ff5413135ee0195f665e34b36f108775bf11d7a84dc4cbe984ffd7b135d69e40e47dcfba1b8cf5e14ff29bb375edc5e66695b3c9aff2add8a1952c9d1d60fdca3b94e38e6b55164ca503d454b8a6fcfca30e95fcf8c1dd47f864717ebd2a50c64ca0632bba5ce80bc6cf1750d6dc294985cf160cd837e9e9eeadd8421901d86dbd50bb1ce2611abf5292744be25a90d81d8bccdb87fb9745ea0a003cfe84c3e4b4c7e26fa04d8e317ebed945ff4cd71f2120e51cafd41ec6874648c04f89a50\nmsg = 7264a92eddb703ef8771d6979ba12768d99c5b2ae7c434d9a142ed30d703bcc62883dd796872155b698ac16798a3077b1b60c7295d704e8de8617ad45d65214989c29b1ae55a956712c9e695de25eaf06ec04537788e06833b8154c7fd68c0b216f69f2b77d316c73973b1e91fd5364239438ee7e0de90430db846010aab7a9020a768b3fe2742818b774cfeaca03841a0940a6168d10808d468de46a94e3eb23b32542451f5bbd808644935431652ed08a09cea068a301b252847b90a4a86eccdd44e09b8c9dde6ee45be4d5e7a90adc749b26965d43eb10b34790846729924497ad8b9766ce5c771483c6c51f4d3b9f51f7ff98ede6cc4db1dcbe018bc0f9291784bf6560efb37f06ead8ee973089b10c5f8d5fe2656ca73c500076d9ac9d2e07b6c4734adc77b602eb62f6cc5f5dbc42e072827b29abf1c5a806ed16c171ff2f84348c8ff0772940ad191cb30a21f816279607ca5c48cdacf15fa3abab24e67dd7e80bce7b1e6977c95eb57c2b1350fc746234493518fd48828f439a2ca799bd37af7ad11833fdb113362e5af7c731e524e7f89bb97c4a1\nresult = valid\n\n[d = 38d60d53a382879da55320c15f0d04a4f027c1792ada3817fac6a01dd324843f75f395c38f24b1b29cef9b63c74aeb1bead253d3d6850727e8aaefefd3e9f6d9f3db0efa524a4ef3616dadac155da12ea153f36e1c4a8ef4cb9046d20ab71777a99a49789472ea26648776f8b7c689c16b0bd4a896c1d580053761641babe444cf1bf1007c3adfa856bfbd930f19358c45d0498dad98338d1c70d871e9f0576a320c0483daf7f5f186f62b783b2ecf0d0963b484b1aa9030758ba1bacf510f6ec018cd4fc0875ea3c8194c04c6cbc9396943ae4a3054ebb5c5ca72ba48aa5d2815b4b0ad090e8f2577bb9d6ca6ddc30184d96b5f97538ac8a2b6bcce5b7dcf665abf4d40ba12cc231f7de9ec24be1bed01efbb90a4e1ed67bfe430b2c97faea6383163f6d305835ee7f8b692dfc14bcfa5a3b8fe7d5c6c6c28cefee29f6d0fddc5792315f016a25d86232759a2027f15e7cce164ba95695944f4aec1f1dcc6dcbad705f50efb86bff285a2e23838414949f5ce49a318b9f633f9ba21245cdc7e122e2a7ceb39b48b480c3b2bbd5ab0b020bf1a4de6299b4cfd3b1cb0473b6602dcdbfabdaac6f72c47d2bfd668a9d4dd375e568f7ed74e0d0937c7d81d1a9d370fd0e712dbb908ff65c0a52264802bdb7313590ecc6a254d8eccf19ff6326c37d428a0e6ad7af4c1d672da7d9b1f46d84a5863c3694af9416531c0915b5db3e9]\n[e = 010001]\n[keysize = 4096]\n[n = 00abc99f0a9fb85911f8011c5a6f753309f659b992cb3ac5a494b2b09b513e9437e4eda336ec3419a2b064379ff95f7bd91bcea208bdab6a1dadee6a5ca1c51e485bc59d6ea142a98995df491148ff00bf334241506f2d814f0cf0d54cb990684299e8a2c640e7f50f1bc76adcd65988eb561887c78ee01105f276732787628c4afcc922f6cb2e994f490c332dc210fc40506eb0abfc9f365042a8ad8a6975625dbcb49f4aa57432c9133aabe83abcdbfa01ebe1731479b9203d8956161729ac86a2b630d08634abb417d08a10de8906bb65f63e19bed75fd767461ff4fd3badff59594c04ca4fa6211da29fd6dea0c16dcf767b0f21e2dce6c37bff723b331eedf56bb379272eca933a622f32365ac97e4fb66d65764bc8f3cf0571986a734632d8c70c14125817bd3d30c3f20a3417b78ce8a57d273049cd6a8e98f6b2cb87fdd0ae7581864add7b0eedc8e8018b85644c02ecf2a55d8819d16ce5dfccdeae79e7a087f08111b51b6a362fb0c484af52b190a2b149288e8c3bda53b38dfbfdb23acfab85ec86ba593d8e246d32f78c0b20bc479550ee7c1543ddb6a9905bd24ba63248292b3b744d1dccd72fc179590b0fef0cce9b89f4aeb428a1b160701e8ee77388ac5544d8bb8e432be51f9489bf12c3aa3f63293f7fbd1645e3f0c98d38678bd932e533a137c360bd", + "a91440008f9cc57f52bb86aefd6bbf9547312c74ab]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100abc99f0a9fb85911f8011c5a6f753309f659b992cb3ac5a494b2b09b513e9437e4eda336ec3419a2b064379ff95f7bd91bcea208bdab6a1dadee6a5ca1c51e485bc59d6ea142a98995df491148ff00bf334241506f2d814f0cf0d54cb990684299e8a2c640e7f50f1bc76adcd65988eb561887c78ee01105f276732787628c4afcc922f6cb2e994f490c332dc210fc40506eb0abfc9f365042a8ad8a6975625dbcb49f4aa57432c9133aabe83abcdbfa01ebe1731479b9203d8956161729ac86a2b630d08634abb417d08a10de8906bb65f63e19bed75fd767461ff4fd3badff59594c04ca4fa6211da29fd6dea0c16dcf767b0f21e2dce6c37bff723b331eedf56bb379272eca933a622f32365ac97e4fb66d65764bc8f3cf0571986a734632d8c70c14125817bd3d30c3f20a3417b78ce8a57d273049cd6a8e98f6b2cb87fdd0ae7581864add7b0eedc8e8018b85644c02ecf2a55d8819d16ce5dfccdeae79e7a087f08111b51b6a362fb0c484af52b190a2b149288e8c3bda53b38dfbfdb23acfab85ec86ba593d8e246d32f78c0b20bc479550ee7c1543ddb6a9905bd24ba63248292b3b744d1dccd72fc179590b0fef0cce9b89f4aeb428a1b160701e8ee77388ac5544d8bb8e432be51f9489bf12c3aa3f63293f7fbd1645e3f0c98d38678bd932e533a137c360bda91440008f9cc57f52bb86aefd6bbf9547312c74ab02030100010282020038d60d53a382879da55320c15f0d04a4f027c1792ada3817fac6a01dd324843f75f395c38f24b1b29cef9b63c74aeb1bead253d3d6850727e8aaefefd3e9f6d9f3db0efa524a4ef3616dadac155da12ea153f36e1c4a8ef4cb9046d20ab71777a99a49789472ea26648776f8b7c689c16b0bd4a896c1d580053761641babe444cf1bf1007c3adfa856bfbd930f19358c45d0498dad98338d1c70d871e9f0576a320c0483daf7f5f186f62b783b2ecf0d0963b484b1aa9030758ba1bacf510f6ec018cd4fc0875ea3c8194c04c6cbc9396943ae4a3054ebb5c5ca72ba48aa5d2815b4b0ad090e8f2577bb9d6ca6ddc30184d96b5f97538ac8a2b6bcce5b7dcf665abf4d40ba12cc231f7de9ec24be1bed01efbb90a4e1ed67bfe430b2c97faea6383163f6d305835ee7f8b692dfc14bcfa5a3b8fe7d5c6c6c28cefee29f6d0fddc5792315f016a25d86232759a2027f15e7cce164ba95695944f4aec1f1dcc6dcbad705f50efb86bff285a2e23838414949f5ce49a318b9f633f9ba21245cdc7e122e2a7ceb39b48b480c3b2bbd5ab0b020bf1a4de6299b4cfd3b1cb0473b6602dcdbfabdaac6f72c47d2bfd668a9d4dd375e568f7ed74e0d0937c7d81d1a9d370fd0e712dbb908ff65c0a52264802bdb7313590ecc6a254d8eccf19ff6326c37d428a0e6ad7af4c1d672da7d9b1f46d84a5863c3694af9416531c0915b5db3e90282010100d1d7ce5fc48ae70eb11022cbb3a05d86948acfad2d450345c4f89e4ff28c0e5691d6fa0c99065e3dbd76406bcb9fde0557d99640e5914f3f87112b264fa8480b0715ff298f6d640e62c33609e988224fa879955cf4cbb32d3cb16232bf80e2ce82cb266e256f61a74fb0f0de661945d5a7bd03b4e52482bc9dae0e982ddc9017915568898863c9caad27b5aa2f919fac4663a7bfa14d78cc996e0de1010e40b5df75971228666785e80f9e9e3ff4191c4866cd3ba6418a39e4e9fe9cd6b005423796cf3861f6ac50db59d61fed6aa1da6135d5b9f674bfc5153ef9f52fc7590ad5e6d02c46b26bc15022c11f8817d48ca1a359b54492247b76a3e12308d59a650282010100d192ed41d1945c58a1e9b8b1189ecf6f9a9f7aa0653cb973bf44bee4bf9c38bf42353e25c1f8ec640e7f402650190aa8e5ff8cd48b4252f148e1d8c2fbb46e416115ec5633fe0b052bc345e44cbd4d785282d8a5617cf8711aecf08f4dea6d05d2c13ac871237af3d2abcff8ed761a4ec7155e5109e482a4e4147782a71d78503ce0f5587019d3ea1dc9dd424df980fe210a6ae7fe0dafa0bc617e13246c3727f73a6973cac78530891dbe34409e0f8c980d42d2a337e65c7f2fe3d70cef79779a6905adacba3ad0cae0ccdfa8998525fbf5fc42952192116e9beab20f1491df0d259b6f3858f83387511a15605221ef1bc22bb5a7ce5125bb5050f11e71d9cf028201000bb73bcb7702b651c8aaf8f65c8a088eb9fe6207ee2e1b37aafea2801e2f99a155b525f2cc1c61e89a8a5ea06616ffe3567b4c7b4515eed1c22dc035fc5e8ddf27bf1fa6e75e192700769baec3fe18c44fc8b201259db5dc41b639a051b6d572e8348569c2e74c11764e8fb42b092030049475ff84879c510190b539e3dd9ba1e5385a84cb3b9f0994cf51c235b3b0b182a08fbe10386e15263fd1c08d39897d5e0387b2b8d4b6d4f016e72938b2dd300a0ecb489848b279f700e57946373fa3e9cc9eb72c290487e32749e0307632a129aa42cb862a1086e55fc5beddb30892a54ca4b4c421b4086ffbf0c25cebcfaf265b23680e73065c6a4c4e0691b8b34d0282010100a51bcc2ffe9d93e3802c5285b38fea7d52a432480b7a3be124df5445836fe0854df404725acf71eda23e3e9bf09ec9f726bc9e8714efbbc8bc52b2236b8a4b12d71a1e880b8e29c07929eef65e3f05b9b5c7c0470af71a0481e209e3dccec3f5c284d97af127b2c645437725f66f056aeb0dbab0bdca79e2ce8e1159adaf5a0a5cec1e5efe725ab227a5d1db5af326dd0fcad54ed0a897a55ac4b43f008301314b65898ee043307b7c8b223ea869de763594bd0095f684567b1d8fb2ed4dfdb46cc230e7131de51879bd81aaf3797f9cdd547ed93604acbf6f15076220df63cd06de8a06a5adf25d264e8eee28648cb784770558a84bb342b6c02004d6a77ba1028201010082760f73bc0c2a1ca2fd43611b8ecc0bae83d2540f8d0d4b589a1a9bf9240e814e4a8b55925f0b4d3cf174421f306e11616a1a8810c800129df04d4974b4bdd7c3f36d75e715e755cbe5b223027410d3c235a21e202b96946b0eafe8115e651e72dbaa538e077f2ca349493acf3c6f3f3fec50572411be4310d081758703d65d47233af85e289bdec0768aaaf803112878b37eadff1f65e5628a988fcbdb2e37d832a8a4b2a0f2bd67f967e957779cf5e7fdf9893e7beb48abae65f1859169c7d25aa49641c9458f30bead48fc2297410e38e600fa5e2903d058632c293efdd35423f29ac38f5528888676628babc0dc3c99286cdcbcd377ef96e591fc4eb13b]\n\n# tcId = 60\n# edge case for montgomery reduction with special primes\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = f20a01caa15256f2c729fb2b54f4092b091fba4c09a5d7bb2562047df86727fd13e001b48169f6c947919196f6d2c4ec0441bf08dfd17a3232f29d19c28f266b78701d997dcc098457a10a3e0519f512528f5dd753be925d3809c85bec058020e8d9b4893f06db87b700df73b7c64a9b6ef8ea13f765ae93d8797ab28355c66edb7268c42bc883843f0341d6bcecf198d84cf320993c8ab1d159599ba00481e6237842b619c2c3a0d477de348c6250f0c9e535fb1dea0e273e518b3068f63df510da78c33745c992be37755a8142d7f0e2780c675246d5ff82268ab8eb63770ef5a8c1c18cf69822c2a43028a8abb893394296318e9f3600c9b6db742cd8aec82232fc4485ade62d48ec4a762d88479def21fae798b76b0414f210e1be08dc746c4b190ee7b9ddd17e7157713f43e25638c2654d1831e1f38aa7baffb8ade3b9f97b104ba9ccd0162568f703f9fdd5e998885a2c76cbf5b199ac82a4670d9ec9c619f3bd343633e7cafe73f25cc181fe9f0091b9ddd756ea06ff6b27582309fb31bdbceb15951efe0f0452220c26dac00ef2f7e20ff160b7f5893d7fe458d52f748fca03df14e2\nresult = valid\n\n[d = 2deb08d4321c7cb6d473fe8d8f3fba1dfd846fe229cfab5f8d39b486cae61f6dad94f7decdd6ebe0eda1c2706f4642bcf595f61f45a36c6d2d089cbe6d4be43ba1eeb0412e553e8bccfd4f4bda4f024b8c7154ae066034ea2734ebe8ec419f22c04f668c5ce59f154ddac8c84361992639a9d950d4eec241fb1ddc394f45b10e8f0c187c544c7409fbe6d4f3be125038f3fe68893aa809e7a9717a7518a870638fed81feb8bc5848542e357632544bf29c768684a8891a22f2dec8ecb280391b3a236cd7cef14151c0e3c41faa198c94da85e69f20687c1162daebe3d506c0dd8af2fbfa59c1698dd7675eecb08c5c69cccc5afc208861178492f05123992a746d5a4bb18c1a7ebcd0bbb2f10d9c7aaeaf2e3827b390ef6b411a3d8d544bcb23cef2e36ceb9bd7bdcec4e7458505517b5c89c1a5c1a503ee4091d1e8d83590ac4f58a9d7cc430b9216fec2acfebc75e1f8269e9fc55c0bd9974fdae5c3539e30e8cb7eeee7da195939e9aedf2afd6938e505908cf0ce029de584470e2e66291d9afe21f827161643b8bd5506827307781fd530177e73dec6501ece1213d8cd1403023f0db223bb67ee854a24ced1531438b726b42a644efd929e22c17c5c328ac9cd7d6d2c175d1c465889e509c0dd6360cd7cb6ef05e6cf63a7374f47f5c659133d9b3f3d9757340dfb36187f69fd0abc96f163ed33df04f1fd611fd75cd93d]\n[e = 010001]\n[keysize = 4096]\n[n = 00bfe8dcd6b20e93687405baf7f2c3c3d1d35726e9d76123c1a57ab6f3997da9a28967e71dc1b28c1a57629f99e54d87ab1cdcb741e6ef769d4db8e1edd8c23ba544003b4ac396183620b3a67d7048d2506614d126d2aafb49adcd68c21483821a99fc07d5166a25e3e71f13eaf9b66175d5966c3769ab0fc423fa91b53039bb783d2a7cd4e5ae04d6e863ed0a063460811b021d58e968eedea2ea12c044656e58109aaa9ae87e0ca59d02", + "d18727c2b7f86e826c8d1a22193d73023bb5cebea484f144cb99578172f6d845b1988002fb7c02977c905de5dab5e18aaa1fb81456fcaed26b04e08117380fa08051bfdba47b600b9ec5f47b8334ceb886753f8f633e26375a6db6193cf5367f74849c7b97eb2c3e3cd45262efc734c92a17138839cf86aaa93eac6c9187f6cdb5992722bca6b5b98d103dafd331233ac49fdf9f8844228c5f4bc18a1db48c52d89ddabb08aa92d330b34dee06da32d913cdd47faa1e864d85e5624e381453789a53d67d808231d7149dc3517a3beb783e4c8575bd55fe6e4070317bab6b5c7ed898263fee2605f874e99097ffcfe09e65a6e6b4924ade2477b1056995a2a7271b17a3e5ced980403f7aea9c754eed40cbcc70fcfef49a2f34981ccd834b3f43d7558f9e555055b7ddd529957d8108e767eb35fe0d0a5e5a1db5bec9ba6c3af458de7347443978415bfc7f02eb42f8cdf6920883a19d]\n[privateKeyPkcs8 = 30820944020100300d06092a864886f70d01010105000482092e3082092a0201000282020100bfe8dcd6b20e93687405baf7f2c3c3d1d35726e9d76123c1a57ab6f3997da9a28967e71dc1b28c1a57629f99e54d87ab1cdcb741e6ef769d4db8e1edd8c23ba544003b4ac396183620b3a67d7048d2506614d126d2aafb49adcd68c21483821a99fc07d5166a25e3e71f13eaf9b66175d5966c3769ab0fc423fa91b53039bb783d2a7cd4e5ae04d6e863ed0a063460811b021d58e968eedea2ea12c044656e58109aaa9ae87e0ca59d02d18727c2b7f86e826c8d1a22193d73023bb5cebea484f144cb99578172f6d845b1988002fb7c02977c905de5dab5e18aaa1fb81456fcaed26b04e08117380fa08051bfdba47b600b9ec5f47b8334ceb886753f8f633e26375a6db6193cf5367f74849c7b97eb2c3e3cd45262efc734c92a17138839cf86aaa93eac6c9187f6cdb5992722bca6b5b98d103dafd331233ac49fdf9f8844228c5f4bc18a1db48c52d89ddabb08aa92d330b34dee06da32d913cdd47faa1e864d85e5624e381453789a53d67d808231d7149dc3517a3beb783e4c8575bd55fe6e4070317bab6b5c7ed898263fee2605f874e99097ffcfe09e65a6e6b4924ade2477b1056995a2a7271b17a3e5ced980403f7aea9c754eed40cbcc70fcfef49a2f34981ccd834b3f43d7558f9e555055b7ddd529957d8108e767eb35fe0d0a5e5a1db5bec9ba6c3af458de7347443978415bfc7f02eb42f8cdf6920883a19d0203010001028202002deb08d4321c7cb6d473fe8d8f3fba1dfd846fe229cfab5f8d39b486cae61f6dad94f7decdd6ebe0eda1c2706f4642bcf595f61f45a36c6d2d089cbe6d4be43ba1eeb0412e553e8bccfd4f4bda4f024b8c7154ae066034ea2734ebe8ec419f22c04f668c5ce59f154ddac8c84361992639a9d950d4eec241fb1ddc394f45b10e8f0c187c544c7409fbe6d4f3be125038f3fe68893aa809e7a9717a7518a870638fed81feb8bc5848542e357632544bf29c768684a8891a22f2dec8ecb280391b3a236cd7cef14151c0e3c41faa198c94da85e69f20687c1162daebe3d506c0dd8af2fbfa59c1698dd7675eecb08c5c69cccc5afc208861178492f05123992a746d5a4bb18c1a7ebcd0bbb2f10d9c7aaeaf2e3827b390ef6b411a3d8d544bcb23cef2e36ceb9bd7bdcec4e7458505517b5c89c1a5c1a503ee4091d1e8d83590ac4f58a9d7cc430b9216fec2acfebc75e1f8269e9fc55c0bd9974fdae5c3539e30e8cb7eeee7da195939e9aedf2afd6938e505908cf0ce029de584470e2e66291d9afe21f827161643b8bd5506827307781fd530177e73dec6501ece1213d8cd1403023f0db223bb67ee854a24ced1531438b726b42a644efd929e22c17c5c328ac9cd7d6d2c175d1c465889e509c0dd6360cd7cb6ef05e6cf63a7374f47f5c659133d9b3f3d9757340dfb36187f69fd0abc96f163ed33df04f1fd611fd75cd93d0282010100e089b902015ffb3407fe94e65e9ea6cb90b111ba8fba421527dd8f9e73130f0880ca3207fa2c727d396141d333f95c5d8e27437fcd76297ad444450b251b1e9c8e81234cd30122878716be6f2944ce662acdc34a290513978ea46a3dbff705a5cee29c52d26d74cfcf7e2ea789c5455f9be64c52ee1741cb5db8d7784b316da1465c71d01e5d1764e957414c0b35d2ae11e2fedb103923d1f19f8841f0f6692ebf71b48003d73eb23d18d08cad0cb8acfb21ad8567065b773a754f283c1b59b6ff69b691d62c4df746bfedbc066a1301597bac5bf49c05a01e64bfa4ec5aaac9a1245901cbea749a3c94f6fad12e01f2920bd3d5cdc56dbdeb036de700efd73f0282010100daccbf057aa30a5b6efb0f0c37aac0a681e3abf153a29b0c780616c7ced1f00fa75314b1447b53fdc0b9e22499aafe07224bdf5bc8ae3382dfff5297e8fd3d553b7225abddb092bd4fed242948622fa60c6cf373f3b10c5ff598e9ec93a774dfc78e925aeda29bbd027c642e9cac258c3d83a31c65bdd038217107ad33c7b0c3c9224be7063c16c7774cea378f76cdc1b931547af5885ae31043d63ee814929785dad72cbdf5f714d241ffde52a4e11f9c21dc6e45a7f03f46126611c8073a74b28d9b3c802f44f94674ca8a0c7ecc8423520f9b8703442bc6f5bc7e64da15e27b8150950c15e6b397b27e8334df8a74d85ecd91ba9916c953b10c43a60dcc230282010100c243c5b24b783c41570d56cc3d5eec164138418b74a0845e0360b8ca30eb735d3af834f31bea6a9f970e634214bc90c24ca401cd47f90c883db0573ffe398971900580820e28f433e797b0e941fe4ac8b00dd801889de0c6865e0fa11f3ddc40094f9c4a37cf057a6a1dd4c594f7fd3e6c06835058b7fc6fb3c5a17e6d27f59ecbde5d85df4f5157385f0a9a7d3472f3b17c005d8d9ab23808e1aaa4ca92968c208c82cb23078e31ed945392f2818821f920b91d2af6a019f694da0888806d4d5b8b9dae6d6b6585244c17a64eb265810c6768c72249febffaabd5f71d9a901ae4752b20d7c9205af54138b1e65af4ca66bb1eeae31e0605839832f4e2a59f470282010100c34e6864f7a779a34c5986811d5faa3ff749c73dcfae2240eb12645b4ede4f2f69e8db5bb109755bd92114201f9b66cdef6b52a1976d084616b4ce81135499deef0561631cac750fcfbc9abecf01f60e7ea0f25fda737bdc5c5a76d4daa86bc72556ba85b801a28b0121103c1b55fede443ab0eab456cefa8bbf5d5eda0db257d1be6f8a752246231ef6e54b5b206d623371393bd8d83268e527e8a2967f66ab22acc9ce0273006ef1904059afe3c5a075ba340daad7d1b869501b145c3d378cdba553a099bb9811fb365d6504ea5a9cc8fa833c0d347931aa93c801fafc40f4bdd21ca02efd8dc559efd6c63ff81a9b5a58a59f23b56b85a2d333635f6289890282010100a5c711d4f32a85485c20715fb46f0d1ac746f5de583201b97691ab7a0e8d04f8a66e1f586160296f6cbc3acff432bc9526d0c94b3c8cc5519b233c875568e373abd8f37bbf19dbac1e7aefa895307d9e5f1965a639b730fb44062bddca45ab6af23bbcb2f5cdab3acbd21be0f910475e257ea60bf21750328680a16f565204a48f27eae27bece4bb70e19b0d19b90e069962451e3304be4094f241b1ab083b5df23fd177a6e6c6e1e0241f882d3e6276d5797f076b74eeb77e2f875cb95f36f72c2262407b0f95c8230ea18f67df0467f412e614c0c6ba1657052062801b0c1b194e31d1b054319edbe29206cec26be8e53226a395fac9a986a3cc2f3949ab9d]\n\n# tcId = 61\n# edge case for montgomery reduction with special primes\nct = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nmsg = c6010be52ada4709681e522588e84933acffed23fec969ddd38ac4061e9f218839518e2d42c75bc0abc35ecc3d330e17291234220e19b2a57621c101b10dfd19a44b7afe2e945eb90a60b372527b51cc9a1a4aa9eb25aa8f9306d5482cf2890a84b56ea666c57f6b4007927fbe69562f5f45415d2e399e2fac4cd2e663a3a6be929a3c133bb437f97771192aa1fe971a9e749c8aafdf1006b3e1fd9a65b40dfe4feda620da48fe094bbfefa14a53789dae280d5fd9535cf62e985e48129d8c878bbc4939ee69b6fd9ff24327d9c53b677549b9e626721686d174b48b4634cb488870d7e410a5a4a3cdd23e63ec54d5736129a16f2f737fffc30627156f39bcb3b5d0d192c4dacf6ce7ded9a1128309894ef545fb9087be6d877863981fd5a06258277b1cb8ef7c061d2ffee5c916371b1a2d1ef1b6192fe7d69269916903e0d0dab232822a947ef9cd87a95b6deb48aa79a2c6a1ab80644dbcd7c4db7263e9d6b344d5d5aa21ced954aa303e738954d2519b8ddc92b6e24e982d38dfffccacb6e8eebf7d061955de60bae809d2a20ae9af8d84675b7232be7a77e51e03224e0047b4ba54a4\nresult = valid\n\n[d = 00cdfb66edf0e9274a4c26531945658cee31be6da02b2621cddf5c67aa339a56380d156a556645605d6ef5a168f48feee9f78e0281db93815a3c6e5b0b0081ce45c096cd49dc4ce8a86e34a99039cd789899874838213d8c5aa23a3f542dec5ee243f29868fd89157dd0608e198519a92ef9d982be7ead2dffb3763ecb0241ec491b9456300795daaa6c6385c68f5d187d2934a18508cd53fba5670c27f3e4b1ade91cb32dae1db884c8c9eb27c66f48303e3e971d1d4d29788a6bde848b44c1c7d9d1a3d7bf149bc45f2e03361b090ce7f4ba284aa87d7a591ad42f7fb6605859c84331ce9dac0e3c212188d0a82e1c6fadd629af5edf94634ce2a7ed3883f1029c524110b280e4611353b7b4730f5ce96c1fd73a01937cd16d5f7599497cf7897aba66cee626c8b4c7897f70ee09cf215947abd487724f8cd9c6137831033906d8fa6012233bb49f0206e10bc6b88eaa61672ac79ddee826d33e35b1231970e13bef4f885f21c37d497f123c422c6811659fe44409f2c8df1030e47c9", + "8971946d09e709fdb78ad8307d7c8e492eff6b1953568b674150d2f66aa36bba1dc6523d7ebf9084e70190e38aed1f9efacf53d10baf94c61ab18105c0332aa9fab3358e2368a4f2229c5ce650d5e29406e5c43603293460fc8474ddd2fecf825d72f6352fa3fdded2d0537519df259d6d347f3762b38f11b983df8a6168924e66c09]\n[e = 010001]\n[keysize = 4096]\n[n = 00be5e754a408ba3c458345454a6cfc700b03806cf91d03855078bcf0aba02588eaef37e133ca1869850b446946954ec1ba22a7dbf2f35f0390f82db787993b13d831b504a8c18bd6b84f4fedcc709e2cb6300d0a21d131c46680be78fa4bd0ae97baf778d049217212d29edf4faa3bf91afa05592f37338ffe3c6a696e09fd24ae339b5d985cc2359e718e732e8198f1ce3115e03632f77f21d0190b08520f1be046d9e4dfba6b96c98c66d00a420663c8eb99b9837d5be2c1614b6023af356eb4e2f9654754d0919dbe85389d02b94bd76e19b47ea8ac1017675a3e254e8f2cf22c2fb717ffb13526c77d57000eb7417d5bd4ff653b165e6ef9dfee6eed955848fd2100cd8d84ebf73dcdf8109e337f2bbc82c7295b9fd9c668c82b43ed89bbfba9987474e00fa2e54ec9a70bb4bc286143049403b3c204d7cfb697ebc1273c04035de863c48ed8939673ec24c7b2a90dcfee456a0a538c977780aca02a633bb6ee414a5c011b462cfc550e9ccfc349823539943fed508674e03062218252fba797968fa716bfb94ffe7c5e87ffbf9160646247c90799a728b12dbac040b7746d82ac2cac2e5ef7f40b40ad8578f7150de7f9b6b75af9b01c07b09cba5cc337c79e95f643991eb4afd3744b968797ea97680ccbcd0edd8132a5e4a56a29dfcb874f279e1c116619343438e00617a2de1d718705e0a0f14cfcc64415a0e6b17ff]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100be5e754a408ba3c458345454a6cfc700b03806cf91d03855078bcf0aba02588eaef37e133ca1869850b446946954ec1ba22a7dbf2f35f0390f82db787993b13d831b504a8c18bd6b84f4fedcc709e2cb6300d0a21d131c46680be78fa4bd0ae97baf778d049217212d29edf4faa3bf91afa05592f37338ffe3c6a696e09fd24ae339b5d985cc2359e718e732e8198f1ce3115e03632f77f21d0190b08520f1be046d9e4dfba6b96c98c66d00a420663c8eb99b9837d5be2c1614b6023af356eb4e2f9654754d0919dbe85389d02b94bd76e19b47ea8ac1017675a3e254e8f2cf22c2fb717ffb13526c77d57000eb7417d5bd4ff653b165e6ef9dfee6eed955848fd2100cd8d84ebf73dcdf8109e337f2bbc82c7295b9fd9c668c82b43ed89bbfba9987474e00fa2e54ec9a70bb4bc286143049403b3c204d7cfb697ebc1273c04035de863c48ed8939673ec24c7b2a90dcfee456a0a538c977780aca02a633bb6ee414a5c011b462cfc550e9ccfc349823539943fed508674e03062218252fba797968fa716bfb94ffe7c5e87ffbf9160646247c90799a728b12dbac040b7746d82ac2cac2e5ef7f40b40ad8578f7150de7f9b6b75af9b01c07b09cba5cc337c79e95f643991eb4afd3744b968797ea97680ccbcd0edd8132a5e4a56a29dfcb874f279e1c116619343438e00617a2de1d718705e0a0f14cfcc64415a0e6b17ff02030100010282020000cdfb66edf0e9274a4c26531945658cee31be6da02b2621cddf5c67aa339a56380d156a556645605d6ef5a168f48feee9f78e0281db93815a3c6e5b0b0081ce45c096cd49dc4ce8a86e34a99039cd789899874838213d8c5aa23a3f542dec5ee243f29868fd89157dd0608e198519a92ef9d982be7ead2dffb3763ecb0241ec491b9456300795daaa6c6385c68f5d187d2934a18508cd53fba5670c27f3e4b1ade91cb32dae1db884c8c9eb27c66f48303e3e971d1d4d29788a6bde848b44c1c7d9d1a3d7bf149bc45f2e03361b090ce7f4ba284aa87d7a591ad42f7fb6605859c84331ce9dac0e3c212188d0a82e1c6fadd629af5edf94634ce2a7ed3883f1029c524110b280e4611353b7b4730f5ce96c1fd73a01937cd16d5f7599497cf7897aba66cee626c8b4c7897f70ee09cf215947abd487724f8cd9c6137831033906d8fa6012233bb49f0206e10bc6b88eaa61672ac79ddee826d33e35b1231970e13bef4f885f21c37d497f123c422c6811659fe44409f2c8df1030e47c98971946d09e709fdb78ad8307d7c8e492eff6b1953568b674150d2f66aa36bba1dc6523d7ebf9084e70190e38aed1f9efacf53d10baf94c61ab18105c0332aa9fab3358e2368a4f2229c5ce650d5e29406e5c43603293460fc8474ddd2fecf825d72f6352fa3fdded2d0537519df259d6d347f3762b38f11b983df8a6168924e66c090282010100fd67cdf87cab909d16a0ff2dcf005f7e2a7842cf587234e2f528b707ca05fa9a2698a13ec6df02c21f40bedc07f00b0d6a5b4bc343da29303698bf38dde881af4ec32d81877e6e10a7751cc27a058476add98e5b84e49af4a1cbb667eb86bc53c9d3ebef365a50b3e9c869a13097d7eec2f1219b35a980ed011e03bed5e57d463ca6f6c78f5346271e1edbe988e2b7aacf2b45c813d6f1fb92b4c7ca6a0c1e4304c9fea9c661d2efc417f8edf422b48e6d22c837fb41899022d93e73495406d94f73da38733d3e2e2a96b6562710df779c7f098bd2519c167ac8a208d5aff9e9aa0b047fba4ad0b01546e81462f2b46e98524e0f2de22d2385684cf9634bba350282010100c0516e155441744ec15152e518e890650e0b479498087ba709b44e02a3e041eea3783a901b0a3b051aa521d6d8ce8ea6ba1696cd2f809c8c073dc3ece60937580a658c0175aa4bd9dfe725a0f305838cd748df841687c1daa0a1350559db776c90e6fdc4b1c433f9b5f17b66cdeb9a5bed25344b81cf4606eadf814ca071e2a286da873aed19236c4d96411d21c4a85839f7c220be71359e4ac23ef34daa4c135102ab37d543f80fa75d2fcdf6b1399aae634213ba3acc608fb2d6bb6a05bccbc095799921638ccb56eab5ee3c3d8b25282314159abf0a00403a5b739fd1fa4763fb42b244ad1ded083fde53b381d17468406b37733f10bd0376b3784b686fe30282010100f5199b4a7663875bb9d07d2134b01aad30ace38a23f54b1c1e9e83f23fc06ab50111ee1c87449b29620b40d017c9611757c0f855e4e235a691984a94d96693511a30846a5dc0b6fadacdd6c4703bb7f5069080361b22f6921990ad5c749dfcb85a65e53599efdf513595883dc57f88f7428cf2c16a350a23b349f1bb7aae1eee79a9d0d612d62beb9821a6f98a5227ee49b5842852b03b9be6397f69540b6695d2230273fa131270a0cdc3137d68b8156e900ef2bece941cdae81f9468dfa2443caa44ef06dfbcadf0b997a15ae5e20f9249f9d4c8d7f0ce797267ef7da859645df98c1f72f3fc47e43c922b6dcd6d21efa8e421a072bcd037b03b8b98345de5028201003545d9429b464e5b8a7d668303b5585a45dba606695ee031d32458ffae396eca160a35deb93eca3e8db4f47cb92deea20ca6393bb94edd0e84eafd1ce053e93ac0168503da7e43e8a477391b2e76768c4b0e6aac0239b4df44e3a2f64a7fdac2fe189e6f1ff70396c669900f58374d58ed8602c86fbae4e101aacbfc57ed7424254adf6ed942bf673ecec256b985ea44163aa551c0af477503ac6f17a289ebece5e1e15fe3f9a1fb64171228f18f022ff0e299e9310b1c961af82537611519c92f1db8c34c567127da79c5cfaa6c39e11f0f287f1b9093caa20008592d0a5353f74420a395168755a3955d96be00d5ee72fa7538b4f9e13f1a78851a6b7910950282010100cc8bb43d97d3284e9449cf974a9d311cf52b6193ffd0580d2f3ec2a1947bd3428915bff148a5569658a06703a45b9ecea43d3e4fb043ecd26e9a0d85c274b9727c3f1713cfdd44d832f47d5736e007ad18a0b3fe48668befc1e02df9adb827504e81bd2ac6205e8d3fabe7bba05b2605c7c8a49fb736caa0a5e435214502b66e1f18221259e55de044f9c2c2a59387dbbbada66459d017cf17be18c707a41c1a6d95b86796aa3507659da080fb1f555aefdacabb4b520f6f76556ac9625050cfb046b171f6e95a5ce757ec7be398052bc00dc95a8f31265b0e41f85fbd33bcdac6848a86742272c1bb232154c3612e18b366f7581452e2939b2a64d32377f436]\n\n# tcId = 62\n# edge case for montgomery reduction with special primes\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nmsg = 41d5fad24d6f4956da6144b553a7905a3048629c0dc5722345349086481265240377bcf573f832bf981b78af34efdb43322168c50dd7bde53b14c6c5ae21825ec87971136596ece3efeec5f18e089c4cc35b14af08a9273044d459fe7475cb33b946d744a270f73a49aa21a4ae57b3b895c5cd3a2aa9d29d609fa84bd1880e16b722d4f061bdfa46418b7df942fb47d1fad894feca6bce5af465fcd7cef139192a123da7e40aca3524243dbad734205934441f46a3416edf6bc8ca0cd2df9ea34043e564ea4561067bcc504a3b8bc53f165302230cf1d9f38c20e4fd36e57310876fbd5bf3ed4f14ac0ad3605c5161bb005de4e92f2bbaa0c107c2d5de7f7c3d4ed6a54d5a862d76905dd07864305498ae9025cdce3c1058dffa8d7834e0488cb0eb13105fd9fc22d483105224ba1b77d9241dd8c7a789a77fac7b654c777b3921adbd40237c7e244b65ecce1cedd49bb99d288f5384a1b3f815ef723d02fb95bf8894f2d2270408b349eb14ca34790f103bb81cd5722c1d2b5f4300ca6f91e9185c965bb142ef999c2fdc88d01c213e75fa38a438a4c69847a9e0ab648e99fa96\nresult = valid\n\n[d = 2cb4d40afb879a7ee7ce2412d11315bfe4884d0867e2b326911322851da3c84a919146a9d3dba816b4a8f99172862c8b986b0b03ca6d7b36932b5a87ad407d49105d4", + "17cf3c20b35d7ffe3dcb75bb55d259dec377c3470dced8203f13666e6f2422908f3faebc2bbcd81b853be0ea11cad86753690399816aea355ad9fd7bc6dae6bd24d132532c08899c78b8bc0bf9cd61474591f3f3ee65537b10ce736221677365bf684523cb5afe8b5f56aefb599839967bfaa77e464d8789799f9ba4570c735fbf3ba151edb48f1d8be92a51111c74094033a5a0dc82b7c34c49ab2d181abf8f780f19c19aa42f11e0e8e05c7ad26d8a1bbbeaa3d92cf2177679d3bc8502d3d349727f3f498f6798f42bcb5afb84e37eb46f28fba929968a5705bf0cf07731d7daedefb784d0d29711cfe7f70b50ef69d30fdc156383fd45526c8775e460d8fbe106b5a5c21f78e39917d537ddce4cdb4a00003630624107cfd3133478f068ec5380ea7f2219a22fe1194c50e34e6ade3739b9e36d88ee6a0c16dbe05ec676af5a7804844b2d71def35dd6a1c851c93a7cf86c8ed19eef672c86079f5bd06c58c6ade66b897b94f8b58408234c3a826787fb198b29353c71bbc972fb42733f55537690ccdfd0c8bb30d64478363864da35629c0c28843b95c959a8abb0fb2c5a5d3f256d3485e1bec396c64e3478e8890e505bd50d62e9c0a6f34e47f81]\n[e = 010001]\n[keysize = 4096]\n[n = 00d6fe22b5fac9f00add0133301c5d00218e179f88c55fdc1b6e1c7860c856ac09cd941aa85c12dbe6fe1d92578a0624d9ff5f911282eab0f452b088cf87ee2a1b74f5e416f0e0cc3a1163c85544c2b326005bb45c6ded75eb619614a61a269264b525da86459300f7f6efcde8d3a31cb0b3cada4c9815cbdbc245f5f3078a1c81249f023225295cc12bd98806f98b2572febf334652a90764b063e723d8af19688b193b39f015a8d63bee60981957d919cb9b86bebed887ca711ca125ab7908b2c4d78f2c385ed7f5539387c8e94d1671eadade088900d43c491e22bac95ce04ce5398c0547da576e776286cb40ed3f3f50953cdeb8812b4cce434c22f3aa71fe2e272be792a868cd3334d67f2793d9cbb8a3a0a0399b1a5873e5079bea367fe8a6859368b287943e6ab038c2d0b3e10b957d8c037f58bd42c5d543d3da0f8aeb4195218fb9d35d2c5fcd9b0e133cf53abfec622421370e1a18ccd35b3f9b20a81281474f5e18d49ccf3612f61391239a096605563162e2d3d0afc43689f6f48c3ecae4a324b68dc4181defff6a393304054748732562df96f3e1d7e3bcb96f9ed765670a91bdd79a3d11d63077162ab5099e36fd51b2b1188be21bb5e4ec43779b903eafb35285a9a1a83da688bda69067c92dddc4d72eeb8122c311159128de97e3f226bb8847d61b75bea4b9a460ac4fc68fcc9c1e7eb56bdf409085fc9603]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100d6fe22b5fac9f00add0133301c5d00218e179f88c55fdc1b6e1c7860c856ac09cd941aa85c12dbe6fe1d92578a0624d9ff5f911282eab0f452b088cf87ee2a1b74f5e416f0e0cc3a1163c85544c2b326005bb45c6ded75eb619614a61a269264b525da86459300f7f6efcde8d3a31cb0b3cada4c9815cbdbc245f5f3078a1c81249f023225295cc12bd98806f98b2572febf334652a90764b063e723d8af19688b193b39f015a8d63bee60981957d919cb9b86bebed887ca711ca125ab7908b2c4d78f2c385ed7f5539387c8e94d1671eadade088900d43c491e22bac95ce04ce5398c0547da576e776286cb40ed3f3f50953cdeb8812b4cce434c22f3aa71fe2e272be792a868cd3334d67f2793d9cbb8a3a0a0399b1a5873e5079bea367fe8a6859368b287943e6ab038c2d0b3e10b957d8c037f58bd42c5d543d3da0f8aeb4195218fb9d35d2c5fcd9b0e133cf53abfec622421370e1a18ccd35b3f9b20a81281474f5e18d49ccf3612f61391239a096605563162e2d3d0afc43689f6f48c3ecae4a324b68dc4181defff6a393304054748732562df96f3e1d7e3bcb96f9ed765670a91bdd79a3d11d63077162ab5099e36fd51b2b1188be21bb5e4ec43779b903eafb35285a9a1a83da688bda69067c92dddc4d72eeb8122c311159128de97e3f226bb8847d61b75bea4b9a460ac4fc68fcc9c1e7eb56bdf409085fc96030203010001028202002cb4d40afb879a7ee7ce2412d11315bfe4884d0867e2b326911322851da3c84a919146a9d3dba816b4a8f99172862c8b986b0b03ca6d7b36932b5a87ad407d49105d417cf3c20b35d7ffe3dcb75bb55d259dec377c3470dced8203f13666e6f2422908f3faebc2bbcd81b853be0ea11cad86753690399816aea355ad9fd7bc6dae6bd24d132532c08899c78b8bc0bf9cd61474591f3f3ee65537b10ce736221677365bf684523cb5afe8b5f56aefb599839967bfaa77e464d8789799f9ba4570c735fbf3ba151edb48f1d8be92a51111c74094033a5a0dc82b7c34c49ab2d181abf8f780f19c19aa42f11e0e8e05c7ad26d8a1bbbeaa3d92cf2177679d3bc8502d3d349727f3f498f6798f42bcb5afb84e37eb46f28fba929968a5705bf0cf07731d7daedefb784d0d29711cfe7f70b50ef69d30fdc156383fd45526c8775e460d8fbe106b5a5c21f78e39917d537ddce4cdb4a00003630624107cfd3133478f068ec5380ea7f2219a22fe1194c50e34e6ade3739b9e36d88ee6a0c16dbe05ec676af5a7804844b2d71def35dd6a1c851c93a7cf86c8ed19eef672c86079f5bd06c58c6ade66b897b94f8b58408234c3a826787fb198b29353c71bbc972fb42733f55537690ccdfd0c8bb30d64478363864da35629c0c28843b95c959a8abb0fb2c5a5d3f256d3485e1bec396c64e3478e8890e505bd50d62e9c0a6f34e47f810282010100ed66394078062382f6a07c8565f46290f67b6400faa0434d23a80f7da8443e524eaf9609a452af5d273d7758e3d096601bef85d5dc7c5dbb1fc1b1a37b824f1b0752c79ab4bb0c08165abddefb98f5cc45fc39cd8d99d51409c5decf67daa22569881faf34e7b2c13d041b26e8901e685f5cf809d5f0e1ccff743f59eb5242dcecca4a0888c61a7f14027b4e551bff16aece0892f221bbca9701542c747732741138bd571c194bdb814d19f159d1430ec81109205527ee20de23c398527ff0117a97281d7db285a59dc8d248123d6d14f5e35503e2903ab0ba8802067c08ac73511d24f5956ff4b00aa716fdfd421ee447c72c355ca67a755de1b0972cede5530282010100e7d67a7f7ecfb83c6dac5d0cfe1a290c0f78aedaf283459b0e346cca738432410503bc117fc60072414c2a902db99aaf1673b8f13e6e4b5cdb1d2ba3e743d89a47d360a437e983c7921adac8ec6ac1bc1ed1fff4cee921b3a5db947c8c60d3d351ed9667352397a5b0ea81ade72dbf5a4c48baead7fe04818ff39df511777767fce1a057ec9174a38b7e722408b76d7f9d171c332e362bef4d2a6b3e18a6cf1b5c67a99e379f748e6210d6d98751e14d7fcd5605ac35ed0b8be2920dbcdf1379d03024aef1fed814f2f3ca2ca8739b7b69c2cd2212897271cf83fb24c3c15620a0eb28619c4ff8ff1e06bd7dd931a5dbd5806a05e0f982317cedfd2a6d3346910282010100ed0ffb73e96717e71ba8bf2fe6d3d7e9b2791d2fed16449eaf508fc787543e77aaa3a44c148f8d1694acc895374980209144ea7cd92447e5289d1f6a855766ef32acf32e05f412dbb09704abbacad0092089f29ed51c1caf59e301d05380fc1228040abfc730e84c17461667102d7a6ff76abb35f7320809d1be9fd4872d2a1fbb45761077a47ba912ae37bbcd399bcd66d9cfae0da4aa06702c9f8594f7c2a62cdc6016b0b4820fbc5ae5e12133daa6d41a4ee6bea29524b52f398ece337be3b86b615fb1b9a7c3ee802f9c50ba8e473413c33d91ed3cee6616930f2ea4eab06cfb9180bbad84c6969cac550da60d7b2042405f3919f587662c8d4f294a96890282010057c4e80d5a89f33ad55e7abfcf7741f0f1ee836c1a81be194c90665b62ce3a64492cb7c77c330eba32a44e3cd542be1fe9051890244d873479339af0eb3dd143df4b53fbf7baed0be1f14ec0e0582e4e34f0d5d0ed806f24def6b94949afe2a1cf137e6c463eda4b7d25dac06693f82c8c52c088e60aa1d4171668c77dbc57b543947baaadc207815eef18f131679809c70417c5fc89bfaa51f16c364f08dfc1810331c0d75803bd5fbcf649d6241682cb8e86319197bccd31412e800aeffd2491bf9833af2406d42f8242191410e85d199609290c1183053945c30f9118a1adaa9e3c646fd40af5327de4c13f37bf8df14f3354546ec16e50d89c8eb256c631028201010080ecd05f2ac8659c4cdfa48c962b459fcc44c093616553a47660cada840ff4bd4d8b849097bc8b985f4e657ff72d1eeb94935397715e7f34582c16e1b2466edebb41d96a2b02fefbead693ae2330ccab235394637d00ca17fc87d680769965068be94429fe7a7fdc5bfb35660283a18752090ecb9fd1129cf72381f8ee24b6c98fff17497afe4677c801cbee0017c92910402e57ff4b510a606c495a6611dd81deea67d86e9c82639a9c95121c5229a6518e46ad3bc1afefae577d5a5eaee0570b160f21b8b0f84b3b7ccb6b770f9ce012e5bcb84bdbfb18e8c0505c937d35669be150bb3b9c14dbe3612affbe83ed282a42b262935ae1246811c1b79af47e3e]\n\n# tcId = 63\n# edge case for montgomery reduction with special primes\nct = d6fe22b5fac9f00add0133301c5d00218e179f88c55fdc1b6e1c7860c856ac09cd941aa85c12dbe6fe1d92578a0624d9ff5f911282eab0f452b088cf87ee2a1b74f5e416f0e0cc3a1163c85544c2b326005bb45c6ded75eb619614a61a269264b525da86459300f7f6efcde8d3a31cb0b3cada4c9815cbdbc245f5f3078a1c81249f023225295cc12bd98806f98b2572febf334652a90764b063e723d8af19688b193b39f015a8d63bee60981957d919cb9b86bebed887ca711ca125ab7908b2c4d78f2c385ed7f5539387c8e94d1671eadade088900d43c491e22bac95ce04ce5398c0547da576e776286cb40ed3f3f50953cdeb8812b4cce434c22f3aa71fdae272be792a868cd3334d67f2793d9cbb8a3a0a0399b1a5873e5079bea367fe8a6859368b287943e6ab038c2d0b3e10b957d8c037f58bd42c5d543d3da0f8aeb4195218fb9d35d2c5fcd9b0e133cf53abfec622421370e1a18ccd35b3f9b20a81281474f5e18d49ccf3612f61391239a096605563162e2d3d0afc43689f6f48c3ecae4a324b68dc4181defff6a393304054748732562df96f3e1d7e3bcb96f9ed765670a91bdd79a3d11d63077162ab5099e36fd51b2b1188be21bb5e4ec43779b903eafb35285a9a1a83da688bda69067c92dddc4d72eeb8122c311159128de97e3f226bb8847d61b75bea4b9a460ac4fc68fcc9c1e7eb56bdf409085fc9602\nmsg = 2ca0c81f59517bc986c292c2726adfa11fdd2a53147ec37bdae5c50af63a90177850027d680ab27dab710641a85e1e\nresult = valid\n\n[d = 00d1629f9055d958967163303dd5082b57e681d1b8f8eff295a55e95da436dcb0ef855e8df05cda48b2ca1ec5f710c44324657d56e3de20d94b484e8f5311b8552455c9a74cc2e68b211a7d6ea20e23e1a3b1404aa53fcb05c81cfa222eeb129e33e5435786e99974a45b8e854d6b8afe449b8d437ae27162fc", + "574f58212651792af49a1654805e5e4ace40ad2a30711d9ee4588e3a87b2efc3d097990e736f1fbd7b3c245a6d4a880c65035684abe3197b6017e7a676073bcebe384c245b6c03909fd8ed8b32a1c427ec048b9e1ab6897eac8596355a313f115ba0671c89969912028470d5647c3a49c7e9caab3854f1d089039288ed64457f61c8ebb1490be342f9baddaa04883a1caaa394570943d4bdff1d1dfc441af335ea9a83fd49159d5601d53538172b5d6b09a87dc62368d5a26443af082d4f9476a8dda257606f5a1fe20242a4a1701c6399035e5ff66f727a9c9e394eeb6bca63a72b47b24c84c3ebd019e3cccad4f01e4b38bcff6e2ce0187532c44ba8d0bfb21eba8e601881e427c447c1711baf208a373463e566717557fcff04b58242cbdfbab1a7433f974e446a38cc60db2650904262355633768f1e8b9ceca1766bdea36322d28ff9ff1bffb6cc1249f2505a6ccf89496ca7b7d4803a36e7e455e7ac437da7176758a988f4e48d4c911452796e74798d7239f37046d1d43998956d0bfdde06ac23fda7741]\n[e = 010001]\n[keysize = 4096]\n[n = 00e5036c049a64af333e1c2b9ddc57c5e56aae017b4b6fd0726587887ae0ee7e72b80a424281a917d3810c11c76382b8f852129344c838a634eafca3c296de653a7dd78809bc33e787aa86d69565277028fc4d1b44880fe0a9bde1aa7ecea9c4e3aaa726ad19701049214dc86a5c5740b8cfeea0d91d51fac40816205d001955c100df76f01ce50ee0fa3a1198b3c110347fd3aa978e1c66800466391f842b4f4e95a22ff58304823eadd68e8ff6522682bb8b78164f45e8bf437896007473afd0bd729afe6fb56b4ea8950d4e0a69b99b0cc8b762b45af4f19e28b992d41800ba858b00922339df83b9e0efb3c826d6a74dea8b024a3b47a1a47cfa9062c25a65c0e0cefa154e4b8c230d4a9e009a8b2c3d20a2bcde0fe3af68997547c656add6c70c6bde7f3e5a403394901f0ffb13c62347a784b826216ffee070d2ec6b83f4436198008d7245a52157c2c189c36aee31790d919027afc27a1e2d90a15dfd1018b4a8f9fe6df77b95984a114f518408a714b7db03d4b282a1c291f73bc2d3d6a5939caf439b2e0ffc1b0a373c254e7e74016286a62e7e7a43bfd2a48f320f669b376df1c3675bd6094d63b015dfc7c9e728444c59cd535fe908b9907b989458e3fce6b14e3bae0ccd66328f9f8a4a120b726fec817c2d33a4aea3b4b03d4c420b9f7ada82dd862cace440241ffa035a0672120fb9a4e418841371932d28af31]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100e5036c049a64af333e1c2b9ddc57c5e56aae017b4b6fd0726587887ae0ee7e72b80a424281a917d3810c11c76382b8f852129344c838a634eafca3c296de653a7dd78809bc33e787aa86d69565277028fc4d1b44880fe0a9bde1aa7ecea9c4e3aaa726ad19701049214dc86a5c5740b8cfeea0d91d51fac40816205d001955c100df76f01ce50ee0fa3a1198b3c110347fd3aa978e1c66800466391f842b4f4e95a22ff58304823eadd68e8ff6522682bb8b78164f45e8bf437896007473afd0bd729afe6fb56b4ea8950d4e0a69b99b0cc8b762b45af4f19e28b992d41800ba858b00922339df83b9e0efb3c826d6a74dea8b024a3b47a1a47cfa9062c25a65c0e0cefa154e4b8c230d4a9e009a8b2c3d20a2bcde0fe3af68997547c656add6c70c6bde7f3e5a403394901f0ffb13c62347a784b826216ffee070d2ec6b83f4436198008d7245a52157c2c189c36aee31790d919027afc27a1e2d90a15dfd1018b4a8f9fe6df77b95984a114f518408a714b7db03d4b282a1c291f73bc2d3d6a5939caf439b2e0ffc1b0a373c254e7e74016286a62e7e7a43bfd2a48f320f669b376df1c3675bd6094d63b015dfc7c9e728444c59cd535fe908b9907b989458e3fce6b14e3bae0ccd66328f9f8a4a120b726fec817c2d33a4aea3b4b03d4c420b9f7ada82dd862cace440241ffa035a0672120fb9a4e418841371932d28af3102030100010282020100d1629f9055d958967163303dd5082b57e681d1b8f8eff295a55e95da436dcb0ef855e8df05cda48b2ca1ec5f710c44324657d56e3de20d94b484e8f5311b8552455c9a74cc2e68b211a7d6ea20e23e1a3b1404aa53fcb05c81cfa222eeb129e33e5435786e99974a45b8e854d6b8afe449b8d437ae27162fc574f58212651792af49a1654805e5e4ace40ad2a30711d9ee4588e3a87b2efc3d097990e736f1fbd7b3c245a6d4a880c65035684abe3197b6017e7a676073bcebe384c245b6c03909fd8ed8b32a1c427ec048b9e1ab6897eac8596355a313f115ba0671c89969912028470d5647c3a49c7e9caab3854f1d089039288ed64457f61c8ebb1490be342f9baddaa04883a1caaa394570943d4bdff1d1dfc441af335ea9a83fd49159d5601d53538172b5d6b09a87dc62368d5a26443af082d4f9476a8dda257606f5a1fe20242a4a1701c6399035e5ff66f727a9c9e394eeb6bca63a72b47b24c84c3ebd019e3cccad4f01e4b38bcff6e2ce0187532c44ba8d0bfb21eba8e601881e427c447c1711baf208a373463e566717557fcff04b58242cbdfbab1a7433f974e446a38cc60db2650904262355633768f1e8b9ceca1766bdea36322d28ff9ff1bffb6cc1249f2505a6ccf89496ca7b7d4803a36e7e455e7ac437da7176758a988f4e48d4c911452796e74798d7239f37046d1d43998956d0bfdde06ac23fda77410282010100f6f5d343f4b6cef4fbf6f9c210d95b24a8e98c26d86f32e29ebd9ccaf0fc816bf29c114fdb3bc8e2b682ec9b22b7e9724a563915885ed5b7874ce612408dc1c05cfef2340fa2fa547da13dd4daecd4e21b1a7d28de362ca7e55089b1f723876c498f1005cd881dae3907a37c9269a3beea0c9218d49d25b60183fe59f7d85b78f3e5f4863ff084017fd11d4917a80dc8787248fa2120a9642e7c4536be966a25ed2068299ad229501aadda4f9483b86ca9d312ee84bbfede1d90b3a2f76559c0ce9dab18614adefe8f93ba6175a38235315b24a7135f031bf257c3c7708fa6a89d7e0aef07e3c6042058577aeab3b5aac780c297828320f09d36d572a8a578ab0282010100ed656c45124aa2c22832aae346f0171419a8d3ee2d67ded9fd9e4b49c8a1f4becc90f21a57f836f4bca2ee67ece874d5a4b98271623400565b7571c9b19fa3d0495bbbd5742a6ecdf59400372b9aad39f39191fc7991143d8cd5ea7e1aa9895d7f70acb74e511f64d39f00ef5e6c66a936244ba9d1e6a7a105cb8d747abf3359003112bfc0aada704837b36f3766b45188d4d306179d7fe738d6e7de8b2a9cb7b5c7eb034fc8ba3ba803601ba4195bf4191f16f6b8e695715f119bdb6a5299681bbe43cb5f549739a3330d687a13511c3736bac16a29bddee14e90493a7a85f9c91481234d867624cb4e2e642e8c64a320fea31c4984c50a9509476b98f72f930282010100c9ac60357b8f1a1d07f25d6db4b2bb72899a0780e57891966d49acd431ce12a6a3bdfd8938206f616ce827ee5c80d1dc2a8695215777129248a46cb1f5138e68d7c8bee3f2ed05fe9f85606805cc27e0e97f4d3c6592da0ed5fe5a24020d7a96dccf3ea76e7bbcb93d0b56dff0f4e1ea935966a96e5f529f7a475f1bfb812cd9ee5b18bfd551458bafe48644dd53b8c5c04e9bf7dfbbbb78fb5932708d5d6a1bc4b4953b7c9a2970a808d761eb8751c133421290c3c67e50c6d6174c7b39c1fce8fdeaee02edd083139ef1328b8dd6543815152e776c3caec2ce172c3468ab11c1635fec6986017bf72a0d6e6c620b76066bc8fd4f706422fa5000291d3ddbf7028201000809b617c49dc853009f6e8fd178119ff99a70ca90b9029fa8e9b22ce6612d734463e7fea259e22a79349f13dfbea32e14acbf50ed7d4b41a14921b82d8e7532793964ebbe4a2d8445bb64227a147ba709ab352132508a39e749daedb82363664a095b9fbd441be7030f502dcaa9aaf431c41ad7be26ac285494e6ce39d5bd7c56f8526531b5d73d940466cbee394903b5b95707cec6e36cc5cce8feed015d5b0f099cd878dc180a2b0f2a32e564826b8a6a3611d682e02e7d84901d66c533328635f3ffafd3a2672e326d52cb475a28b569e1fae8884f487ba2785a3263b1a39a7e5a3d02c3f9be1730277bf6e38408cdf63139a4f79ce055d98194901256870282010052ed5325503f83a56585b1476946cdd5a4393379043e91db5f2b7d313c18e54c291121209415596fbea2061cb0f9c7b046cb897730d274a888dcd80cc8ba63047b1796a9f615aa49506ed00853bd1e1f7c4eaba6f10c66a2d06393519b3780536ba837762d9176656a350f928a05e26288a5b9bca583b1c2d3d9497bd9809e9b823232dae4997a4a1944290ad7e1086afd5d3466dc02e4472246e4a68f73ad5d0d28bdd5d2b6f6091351e00460c6d52e4c4d9283bcc34aebae776c6b76e8f0efd03574a951248e7e1cab2db596840e199818f77061ef5b68716fe953d48d4d82d5a70ffb84e9298e4c0b2309e7602eadbfa1c43720fc9cf731fe00ac4a0b0a60]\n\n# tcId = 64\n# edge case for montgomery reduction with special primes\nct = e5036c049a64af333e1c2b9ddc57c5e56aae017b4b6fd0726587887ae0ee7e72b80a424281a917d3810c11c76382b8f852129344c838a634eafca3c296de653a7dd78809bc33e787aa86d69565277028fc4d1b44880fe0a9bde1aa7ecea9c4e3aaa726ad19701049214dc86a5c5740b8cfeea0d91d51fac40816205d001955c100df76f01ce50ee0fa3a1198b3c110347fd3aa978e1c66800466391f842b4f4e95a22ff58304823eadd68e8ff6522682bb8b78164f45e8bf437896007473afd0bd729afe6fb56b4ea8950d4e0a69b99b0cc8b762b45af4f19e28b992d41800ba858b00922339df83b9e0efb3c826d6a74dea8b024a3b47a1a47cfa9062c25a65bfe0cefa154e4b8c230d4a9e009a8b2c3d20a2bcde0fe3af68997547c656add6c70c6bde7f3e5a403394901f0ffb13c62347a784b826216ffee070d2ec6b83f4436198008d7245a52157c2c189c36aee31790d919027afc27a1e2d90a15dfd1018b4a8f9fe6df77b95984a114f518408a714b7db03d4b282a1c291f73bc2d3d6a5939caf439b2e0ffc1b0a373c254e7e74016286a62e7e7a43bfd2a48f320f669b376df1c3675bd6094d63b015dfc7c9e728444c59cd535fe908b9907b989458e3fce6b14e3bae0ccd66328f9f8a4a120b726fec817c2d33a4aea3b4b03d4c420b9f7ada82dd862cace440241ffa035a0672120fb9a4e418841371932d28af32\nmsg = db2c1fb8aca1dfb4e6234fd57d78ff93df46a082f7df4075a08ca2978cf2751058daa62c90b55c87ab1bc8ed3477431fd3d88b772e5edb12071d49f9f6fa0260afa837b1521581bcf1810ac00d9b38fe867a3ef2a4bfb38bf12550d9ff595d4f345a1eb58ac567b7ce91bc79cebae71d4908a803c11c5deff90a918b7655dc0d672dbfbf204917d30139a2fa3752d9f012e77465af7de421cfaa9fdc5507037a7c2d890b2ac12b5657867fc06c1561b1ea9928681c383c875a9444fc44a1805c51758d61d6a3a8fe45ac1200ea2f90f22da66d1de9f6b35d80a5c0a9ee0bf5a43f583a08f23087e0f1b", + "59cd5cb75cbbc743f89b535898898ad298571\nresult = valid\n\n[d = 008777a7f9e0311bd8a049b874396230be6d1fc90ff4985e251641991f019ceb1914c2d911cc1b71f5f302cc3a4d094db7e9c1a544a07643d718c333434b76c0dd90069a90e7f8a6aae688c8d3d909b0c92a025669f07b55c99cd07757b58bce335fc9799f581eae4acf614fb15f07ce51c1b7fbe74e280238ca9a84cbe292534d10fb64421996652f7300c872f00f7ccbade7b6afba2e833be20b55759b112fde52452c481597cdd9681e9fbed850b16fda2cc86bdb0028150e10688cc8383ff58c072e02a86553ba2bfc07092d1d53c7d10100bba00464b776a07367b8a5f2754d3eb5236e811fd8100f6a9e14fc07bb0154de227216f22c434b07c179d69c754a87505ed6cdd1cb043f21629204fe4671248c4e70d28dd7a5e62fe9cfd08b15a0bf5754158c55bf271bec4963923c06964868c00b70f7f87ea54e2b188d3605477ccfa2f658a6298d627f56ae95131fa0e12c536b8afe962f8daf4b9e66bdab867e3809d80c5334421d14305e3fba5710beebd3f21012dfeb946644b1af604aeecb93efe288f047c076acf57981e0b0e873fbfdfb4a49579a7c1a8b2c945341e876027e93c213f37b6c09e1252488d31436dc62a9924c4d92fccb1f51296907e2faba674dd7ab7e3d73761a7c622bdbdabd45f02cdc66f0d6400c6b45875ac720fe045ac86a8e8324770aba7b9d7bbe49b98a819925ab8d200285ef0e927d55]\n[e = 010001]\n[keysize = 4096]\n[n = 00b9343dd96ed558cd9a99740fb5de19a5ca4c740e108bcdae2d6afd8d5091c09eed87021fa1bd291f6c23fd6657fefd470fa672ab568e41f5e37bf1b38241ad62f77630b644cd77be7db87d49ae13a151fe992198fa98d790099fabf71e50853482f321c833e5c7f76679faa9ce2e4ed7acdeef98944976b9b5a06fcc00c7e36a4d1047556587243903b678a3085eded3a17e7a7e691966a0a236ccc929af83ee37a78372d52cd9be2f79cea18bb20fccb59335b09b7d4e65b93f8f06ac983e521a341f38019f960b80661f9c4eaa7aac7c90019aff2c1ed85571ecfa86c4618831739d78af3af432e7548674daf1a781601ec1ecefa91fecf98fa5113de67f029e01fce0870fae71cbde1aa2b25cb958ef78ada540e054551be75c9659834d2fb458b20be0c4dfcfd02f5c69ade32a6301656d83f7ec8b88a610a9a4f5ab2c1e60fc8a096848658a1cab992cdc9954e29341cdbd4184909e6079d322b8a76eda67d6b5ca878d850d6c3ea2fff7119c1aa313d03797494f11b54cd36e4a8b22572b0088251f9fb3ed1531a4e70549054373bd4e0a17a0230d104c3f666ebf2d14d2060405b846202d2e4a44adc708b18749b75235d91ef786ef9b861ac1262dad728a397cb9e299bb64733d43aa2d21477c726bfd5993804578ac0533467af9a8ee31d402bcac633484e5445ed3b1a74d2a95feca1c4767d4cc7c150765558481]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100b9343dd96ed558cd9a99740fb5de19a5ca4c740e108bcdae2d6afd8d5091c09eed87021fa1bd291f6c23fd6657fefd470fa672ab568e41f5e37bf1b38241ad62f77630b644cd77be7db87d49ae13a151fe992198fa98d790099fabf71e50853482f321c833e5c7f76679faa9ce2e4ed7acdeef98944976b9b5a06fcc00c7e36a4d1047556587243903b678a3085eded3a17e7a7e691966a0a236ccc929af83ee37a78372d52cd9be2f79cea18bb20fccb59335b09b7d4e65b93f8f06ac983e521a341f38019f960b80661f9c4eaa7aac7c90019aff2c1ed85571ecfa86c4618831739d78af3af432e7548674daf1a781601ec1ecefa91fecf98fa5113de67f029e01fce0870fae71cbde1aa2b25cb958ef78ada540e054551be75c9659834d2fb458b20be0c4dfcfd02f5c69ade32a6301656d83f7ec8b88a610a9a4f5ab2c1e60fc8a096848658a1cab992cdc9954e29341cdbd4184909e6079d322b8a76eda67d6b5ca878d850d6c3ea2fff7119c1aa313d03797494f11b54cd36e4a8b22572b0088251f9fb3ed1531a4e70549054373bd4e0a17a0230d104c3f666ebf2d14d2060405b846202d2e4a44adc708b18749b75235d91ef786ef9b861ac1262dad728a397cb9e299bb64733d43aa2d21477c726bfd5993804578ac0533467af9a8ee31d402bcac633484e5445ed3b1a74d2a95feca1c4767d4cc7c150765558481020301000102820201008777a7f9e0311bd8a049b874396230be6d1fc90ff4985e251641991f019ceb1914c2d911cc1b71f5f302cc3a4d094db7e9c1a544a07643d718c333434b76c0dd90069a90e7f8a6aae688c8d3d909b0c92a025669f07b55c99cd07757b58bce335fc9799f581eae4acf614fb15f07ce51c1b7fbe74e280238ca9a84cbe292534d10fb64421996652f7300c872f00f7ccbade7b6afba2e833be20b55759b112fde52452c481597cdd9681e9fbed850b16fda2cc86bdb0028150e10688cc8383ff58c072e02a86553ba2bfc07092d1d53c7d10100bba00464b776a07367b8a5f2754d3eb5236e811fd8100f6a9e14fc07bb0154de227216f22c434b07c179d69c754a87505ed6cdd1cb043f21629204fe4671248c4e70d28dd7a5e62fe9cfd08b15a0bf5754158c55bf271bec4963923c06964868c00b70f7f87ea54e2b188d3605477ccfa2f658a6298d627f56ae95131fa0e12c536b8afe962f8daf4b9e66bdab867e3809d80c5334421d14305e3fba5710beebd3f21012dfeb946644b1af604aeecb93efe288f047c076acf57981e0b0e873fbfdfb4a49579a7c1a8b2c945341e876027e93c213f37b6c09e1252488d31436dc62a9924c4d92fccb1f51296907e2faba674dd7ab7e3d73761a7c622bdbdabd45f02cdc66f0d6400c6b45875ac720fe045ac86a8e8324770aba7b9d7bbe49b98a819925ab8d200285ef0e927d550282010100fcccd1ad86a93b05a2cba0cb9ce824924f596306841af3405169ef836d6bd96c57dd26ce2d01e46ef190871346e1486cdb3c11dc05b56e85c2a8fc5e1ff15ac223e033ff80aa03a3c0464636796e76865f1f3e4d255d7cf8d2e130da412a6508053a4a4b46bc091084cff4fa5ee007d9e48efcba6c4ddc4525f5f4a93e5771bf1a55699eb3c41eff562e529cd481aca601b7d4b4a7708869b7c3cbf79aeb2499a7845e0805d6f39e594f68fbc69f1e92f7488e57a8075a8f38c64db3fbe642bd8cdc48ba23ce019858adedd8c3fe56cc81e1b233e8f48a02175fa2919d4c16bc9003a3aece7f3b482745b6f767f137acf1bb6c673430440a3d17237768f235830282010100bb8c61e648015d9d08f8786e9236a5cb110048766ee1d43a8599b4457853bd67d168d8d2c076ce441343dfe0af9b219bd22457e0c431304dafeb78e00788992114be182aac566de4a788be21a91c78fc6cb214b6b464960bd4a257ed8873e94d94a81f83acae7f96eaf5e3ea0937569411b1dbb1421859c7933021d54f2b6001af99821a9e5f7bde3d396ed12e652021a0f80a66242ce8bdbd1d558c00475241b754eafd8d2d3217c7179d44071f1fdf3fb198a6addbdf14edfdc7960c0aef6668f6912c52df53f250ce93fe4209db1813e8f07160f5c117ee162110ff21f35227f2cec2c7f586a6e352b58a0900ec91daa3f05ab1ebff2dd00ff945534042ab0282010076bbc85b851ce4e0cfc66e1e53f2e0826b8c632b434ed9234359cb29e271be2bd9d4c00e242b785bf74f5771e15f9c41ac72b93caaddbd2c4bf24c9df4c8ca44d6cecdfd5a340003a022218622609480a61aa98b585a618108a2c5ec2ca139d49b87f62f06e8f824ef0c31568acb1444edc98ec00c70415da4e7b162f029e7fdc6e388f9061bbe275515eaad484e2385d0d6c3ab99dd0be5036f8dd41cca0665b8bd3de0ecc539a50cf3742e94ea5554d79a1768ea3d91f624c756e58b116a15571c7b7819aaff2acbb3dd3b6b4a81000a9cb3b317de0b17d25c93a16accbafd1372f224ff4dd8cd19ccef93a219347a210b536de1a02dc4d54e91d4dad0affb028201004ca5375123f622eacd42b5fd0216013576d235cae8cfb3aae2f488bea74919abb6e1f15257c375d24e493bd21811feef2e371a0eca3f0bed83ca6890ada37e690d900e524a31dc2148f2523971622873887c5288c43a2333dc872805f3f0e2d488bf1879f8752bc1626e70e131390351e9d554e2210fd0890636f26cb93911b83eaa2e887056b749809ddb12f3b1f22aac1d122ae1f7d479ce3291c6704ab56c13df4955ab7f5fec65b9d9d476509af6e291d2bfb3679ac873e675cd754876c3d47b87a2a48f8e40061416591f65e5baf650090b5cc3b250f444e8e8884bb8a3c79dac2fe006102c5dd46c4a68198f949fd4c5a25afa064413b6a37958677797028201007e3bc25b06f642f98a9eee091de958de87ac8252fec117dd7c6e873cfeffbb012320dded22e3640689346997a13b8fb96da25bd890af6e651f4884d9051e24c9ead42f096329b2692acd42374d8225a7b61159310a77dcbdc4ad809143e6d684890965cf485d0e805286408bbdd353790161472c7b0d2c309e897785c26662e27ec620ac7a496424410049c0848a2af34c44a22f986ae8a98891dde90219a4bbb79766be3101ffdde6c36a13dad1355dc41de41bcd282b29a171bac3196df7f18522d7776a947ac21658fcac2d91363ace9681184b2db52841c7b1cb12261997fc198914ed73a726fadf94faaa5b91a8cc1fb30dc0dc023769df5e76eddbbdd6]\n\n# tcId = 65\n# edge case for montgomery reduction with special primes\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nmsg = 229f09dfdf4edef7a8cfa04fbb1437e22b814eea8bb7b7e81094c94ffa8aac13d2a9cd1b51c0dee1bea82d037034bc03105041e86eec10abe3b74313cec27c1e046a5d0bc57bce9a5171bd9bfe3217ca5995eb0", + "825295da331ebdc096c0b73\nresult = valid\n\n", +}; +static const size_t kLen141 = 50963; + +static const char *kData141[] = { + "# Imported from Wycheproof's rsa_pss_2048_sha1_mgf1_20_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = \nresult = acceptable\nsig = 1d5a9bb49cb1f5c2862f36e451dce7fc607f3d302eb9a9fbea5b673a29fa9023308381262c538cb53910b5773a7a44ff465828bdfccf8a7a4ef902e945dd5f6226ffb7d5b05f2335e5762c5aceff71c8408150959c1780cc9c22fccebd3405e81f1bc16d276c07e4a545ddb1aadeb751b571d22f3e4bc4e02020eec5901a1ebc04415e9ddfe967fbe4ec7166923aa095b9fc7a81fc21ba37b5220a973fc5f32fdb8e0841ed321450248402a159d2c08e4a72b780310d420a6e499c2b34b0bd6fe0d1d0e1a7810563324ad8e778720755eb00ac6e28b204ff5fbb01fcfc91e8f1d2f113a5f32843119f5e06beec0fe94e5bfd0ccdd7f322bdab7b05c4f83c0504\nflags = WeakHash\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 01e9b1d4f36d040a553ee12afb76a36d04c6c5a0f3df84ae22422e8157e57b1c43a7bdaade30ae73073632a4679973ec10bcbb3016f6e20c9cad29a14f96052507819e90cf56ba50c97df5e5001c7f94817ed29f7500f839eb415ef3182aedb2484bace43cd2fcaaa6f5dbc4b6491791592f084b2a14ab303e89deb28a68c72b0b630ae85becb67f2b722f23a0f321f3a7496b251895111640452932579aa53ffb8f8fb4ffd331fa48c6f1e8e152ce7e04cfec941cd96dcf7a885a3022e426d87e8111336f1166878dcf8d190ffb16a574fea9eb6d7e270e025c6d98817e75c968f78c4750be018f74968d7f3e5cb9d6f47d5aafc99c85c83af7175c73091ae8\nflags = WeakHash\n\n# tcId = 3\nmsg = 54657374\nresult = acceptable\nsig = ac3c332b52f06ba2190c6ee312c32321ac377019c35453537a393bcf0c1e6f3697f770ccec092740100a7009cba20f86304108165d5de572df89c42423eabaf910619d555f7b27f7aca31861db0bca8357956466d3792fb6669c77b98bed3c721f71321548f8b4313e535eab5638b9e341f4bac6c9ca02bd07111da4e39f2cb8ed8ea5daced3ada8376ec8db27f6d619ad92e01fb49bb3e53ec3b84ca67b18c268db08ec28752b0c13f269a39fa700dac163b5b9439cd7a9883673335f2b7ecc0728ab38df178ce14479bf6a8aa1e24a433e41f9f217be5c0181245135d1e265e1ca1aa06dd6e853f5d1f144878e2f64461599cf88490285b52a79b744f25ec5\nflags = WeakHash\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 0bb9473d3a8cc4abd63c6f2ac13e278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7fe251\nflags = WeakHash\n\n# tcId = 5\nmsg = 4d657373616765\nresult = acceptable\nsig = 1b92015bd34fcce819bcf75a6c38a05ae2b425f4b21802306c1af645d1197d2c84b84b24d453eccc44f578465b8100ad9d60ac4912c7aa4d5745a1acead176d8758f6abb532d874ba5407d9e3e399f2cd6166b9d3ad1745cd20ddbb584891879ebe71bfd4275d4c176c9da1e13903e42be68ff2a78d2da9324a8cfc7a8e2fd08307c0ee14288087196c840a0e2b3811d9e9bda6ec24bc86e7ca5e34b57969e3aac31388fd2e696528f7d5136bd44c122156a5147f05bc9b118d3a33ee6d7faecbb048290bb0d4719c25ba71741d7434d66fc4baba9b995dfbc56e3507cfc97aa2d67acfa1083e0ef58e6db6975b3bd6b10ddf1c13087d2bf546a931f0baa0cc6\nflags = WeakHash\n\n# tcId = 6\nmsg = 61\nresult = acceptable\nsig = ab8c1e95acc36ad6218e48f033835d15ec6bc7181552feb6dd6e128546917bac892f5b349a234d051a83ea6469e27189f2995302388337c2ffb3a746db17b157923bcf6e985ebd203a4e9a23697cf2925912ecadc3d3f68252e5e01e112db1829658b16ffe7188228921829ee59d575c6ad8299d76c7f5d6cb204b769854de0204087560465904c73ec3bbc1b47bbc98586f0ba17b99c43234d262b7f1e19fb2cdd20b92c322d6e498835b3ce8480eda172921b5a4707d5ccb662e1ee4b3b4c36b5b485a10aecf1b12449732018e594a734b68c8fad4a730b469d097c89c4121d4f6dce34be78f65591b673b1d0ee170cb3c1852ca22bd53b9b26b2fa19ff275\nflags = WeakHash\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 264dc979cdb293d180f15ef3183334d4940410c9639712910006c68e3766c3aba1dd95510d71e7d91d93e61128da456cb0d84c44552f33504bd2dae30699d372e394912a66c334e888873a949d58a3b7d7d43e76391ab0cc490e7c3afee6a5f3262b7d298919d64c5e7bb81cd7bf8e612b9f6e266eb28316a7fd01e44b62100f4b462ba5b238115081536ad1f6a068d656d00000431afd1b6a5b57f43f27ca778c08a4f86f62ef84c73aa72b0c361c68345c10599ed731d6423c750462acfb469910a50aa2fcad3ef8c908633bd3fb0b2e7e8988f9be2ebd715333381c6506e0cdaba7691109cceb8ad5364fbc035c309a50912dbb670a8c255c287a9ba992f0\nflags = WeakHash\n\n# tcId = 8\nmsg = 383633323732373830\nresult = acceptable\nsig = 91d5f67dd4f93a6093adb8a7686be7e458f66c23e32464942f46193055c61c29db94eb12f96c918e1cbfcbcd2ed6f4ef6d271cb6def90375b1c07bb2d5e7c1c92425b16b2d8acfb87b8aececb874b7bc2ec9b2865f8882e0807db9ed481ed5fed0f3dca5b643686e70b4940af6d086ed7fb91fc30b322ce9fda13ab70a7206feab152991415d50ae586e8a9229a5d2ebdd1cfe56c131fb832f1dc39bd9fce7b73b190832b4052f5dd34cffcb39f5b0d527db2322d292427bba611ccaf8afd7cef8878337f1a8b2bc0f5ac08497eecc95b23ba171707795fdf5397f94ead6b8569b4871aeef1052fb4e895bad9f17462c1dfd712950631f625503d1336e850e6f\nflags = WeakHash\n\n# tcId = 9\nmsg = 36313639333935313337\nresult = acceptable\nsig = 500ba4952945df532e565c9803ee08eae2b7b69e02199cdc510184fab3f22613f4a005fb425bcff96e25ba4f66a849abbd299f2ea7d530b263bab4899ee3b6121b88b1f2ba0186867fcacf686a71fdba46c2e5379167603bd88a9e1a20f5211420a1737a77c40fce3a7722115682882ba04fb521088750178f3b665921011209f4046b9981b79696cb4193fe56783ea96ffea62fd3f5945e4790ed1a1059b5f81124e52dfdae58e6814a1ea91851c045d71960600a2a94db05f40fdcc61b90e846e563122e6fff4ad1ba74394af7fc13ec46fd7befe8825abb40b365e8ecec7131769ae3871e806eff4f6092802a8edaa8cc47ac8053c8fefca21648abcab60f\nflags = WeakHash\n\n# tcId = 10\nmsg = 333036353331303631\nresult = acceptable\nsig = 3296d2cbabc9257d91b75b51b994dfb8f777fd2630801414c33d405860e3f75b8b08540952e4defba250d3946537774f93a8c88607c8d673a0a1c7161ea14c56b8d3e2d17862e932146f29937b0084295f16bda9f6c555af0e26f7ddd223af6118c795463ac9b5be70bd413bbeda91539f05da157275c24269f039be88b3c3589e4cbc99746f3acf186b79bf27882ef2ef3edc0dc717ed2b94ed55177f99537a3261cf509852115652376261b090ef766cc68a99ec4ec7aa8ec6cab724b4eccae9805f300c48a076f0dd345b6018941bbe4fdbf94e548bdd6bdb6c62a358407ed3c84ff587ebb36ca82818fd82618c94bd355944547b09af94a03e68a3f07f94\nflags = WeakHash\n\n# tcId = 11\nmsg = 38353939363734353639\nresult = acceptable\nsig = 97e5859c080f776faa13039db19d49eaf2a16b048246c939ef875fdb4e28eb2bf4ee3c114b2d99b20753d1082061fc4935429a92aad3d486718657a8ca2141873e69668edd749f99f1cd757dfe7cc2db297cf1bcaa1f82c3cd92482f4dca6ca66b0c28276c32c4c2864c8e87e8c42b4008a", + "87a4100523130c8e4bb35b7fa7d1af7ea6097da7f7ae8372d5aeda20b4a4ba3a6c93e1b77b17a08328a27d975ccfa6d1b9010b34ccc12ebc0c3d4e6bb14c1b655a15b7f68604068c9c493f561017a1aaec7c84d1a24d9ef97aa683a240abd141a55daa3c210174e731daff63eb39ac3aab1a79b9a0f9178a7c374f0bd0148e4ffd8c9e17f2dc7ef8fb20e3f5f1043\nflags = WeakHash\n\n# tcId = 12\nmsg = 3135393637383036353431\nresult = acceptable\nsig = 8357bf730c668cf632cf2b1b5f9f9f3837061a1de0b86906debecd43077bd132b6c6a078b35b6878a07a8d0a84ceb45c93cf8e56e21e7cfc095107412672b58faeea7cdba71765101890b12a92af31d12f6370529215c299469ebfdcaa2055d2c2261bfce7329977f13fceb51d445b56a57a4e34e7c6abcbd7ecd13af0d92a6300ccaf70e3ae8a827380c58bfe4f381ab085784545d6b23ebf896ea8c453af1b498784025c9e9eb01e10e9d1e22eaf2c77902b64435be4c54b9f3d74b63482e69cf751f522f5a3ff59a35ccec8e612321495a727fdabe0891265cb45a18c99846aec27bcebdd79195f65e05a4d5799a333219589c61e1aaa93547974138746fa\nflags = WeakHash\n\n# tcId = 13\nmsg = 333237303833383939\nresult = acceptable\nsig = 46f2507d0817c14753ed5d4a9fa6c98cbcf7483f237ecf5d26d76e6522e940215841da07f3f20d4af6d8a35e182617150115063c1e1dc897b67ade6b6263700f5420a7f6595ce620f90ce6b8393ff006fe4f0825dee82ddca8457ef74d78e3352f05ecce196a1bf4d45f018317a6a42c59a2f2876f95e405d65c4bc5f0380d0e0956766f89b15850fbf736cb042921e4589721b5ad9abb6213bfecf8eab2ed077c6cf33be26e8b9fc5f95adc045efff8658231e28fd595701531e8bc3c74b42f12271f077e08cf9386d5b611bd88218e42ae757eab5c0c9b974c2bc17da12c8babad3eefda8a16a56ce3431da35460b1ad1df2b2e172cdfc006512e1a4ac866f\nflags = WeakHash\n\n# tcId = 14\nmsg = 34363035383435363034\nresult = acceptable\nsig = 0c3b3f5120fb9c7dc3a715498786aae8e2dfe5d63f54cf805d02bafd36c806c83d0a93af5d1eda293f4ffe6d0ab218648a82ad12dd328a60f6c632dbf9f6e5e504fd08b8b84d8d58000a2d2a9f9a966ee898d9cb75a69c930b260f6dba3a0301ae876e212d4fb971d819c20cb07aaf0fcdbc152765398173dc0d7229ebcd8a9aaddff45d118bf63ab397adb39af91203e8fa5a7d28f2937ff7cf31ae90dd9efc9f2549bf6cbcc3c65aaf78a93c76007bee2720930e2a5331335983943a6d93570b11615165196f9d7ddadf805d443021580514d921f439891446c1fb1dd740794bbd6decb017acc238a81ceab36071be58551557b09643cd2bd7be6e69b77aa8\nflags = WeakHash\n\n# tcId = 15\nmsg = 3131313738363634323032\nresult = acceptable\nsig = 94b777215d1ae19f959d046fc02fde3e113e15bdadb1d792c744f217200e275d3954b798b43e5ee382877420144087be340e11d2879c10af6376437b5a8f62634fa19b9338360a318c95c9421d90f60337634f3a03a2260796d8928e056aa7759cb13f3bbc72954f9c9da7eab1d3564050e4267ced557e3684e5090cef96f585153db8c732b78b4f7df59db219d7aeac42d4f20b1dc9825171bbebc2712e722ed6fed12dfc72dccb1e9a2c6d93e4c86641e1dfe16d6d43629dee7d80eba8e9639ea594ffa206cf3f0e561b2953a290d8cd70bd0ccbef64b32bd66b294f1fb1ec97bad0e096e5e200e5812fe025333cedd7d1ec8c111b28beb4a402f5cabf2f99\nflags = WeakHash\n\n# tcId = 16\nmsg = 383035343535343634\nresult = acceptable\nsig = 819f624b0dfe6822d3923ac1e5c75f79e1da3dfbc13b332874d4052eebb30f9b2a09ecf75f1122990c37367d75e4ec510f4645b9f41fe4f2f9805a981ea81ce932127613126caf8e04b9d194a927b720b24cd9f1721e33d121c59930ec48a5f5574f9aa8c6bafb5c8ccf9dddb2dbb418d9884ecb4a931a9265360dac7475de7e4cc795ce7a586c7d476ba470dda7c03b3f1ab69d9372d7cff3422306edd8fe8f6dd745596f1fcacfb99914470c13e752bfaadce632fe4124d6ccd80eebf87a6982a998aa4a0892c270ae6de0b9bcbfbc9cbd96dff2e2f93f80d9370fa2a015e13d0376b4d9dcbdedea29ba9b616a83261ccf6ec56079ff2ec93d72989cf93454\nflags = WeakHash\n\n# tcId = 17\nmsg = 32373335323330353531\nresult = acceptable\nsig = 118d4dcfebd82ea74b28041bd8bf5f969d04e160e2b8ab2fbbe1c2a1673cdd4fa7d801aa4bc23f9898bc0dcb240e8a3ede076f911ffeb2749c03d21923055f8878aeed88563dbbc45422b658f8647dc868885c92015df4d5925f3e6d75e85754b7f002374d4583ed310bc991cad2812fd29d0906c4dea5c52921fe2184880c5e8ca51b06bc5654edd5e0e72e20922a9c9b2fcd068c700ec82878b6ac04a56becd76fbbe9fd4abfa9348756f983bfa92539424d972d764e7813bbbd34bb369ec147fcb1a94e8602e359f1ef312725f2bb81c04932c1c4ebebfa09e3165d0287a85a22f0898d6385538066246ade07cb51580db1fcca86afad06fe2f9695c2f8fd\nflags = WeakHash\n\n# tcId = 18\nmsg = 31323238343430383037\nresult = acceptable\nsig = 53711344088547e405b1e3f7605e44f9b7b6735d5d3c32ee0e408fe7ec9ccf58998487443f66d4edc0020dba88efdef9ead403a2874b2892054e391f61c1b36e490a8623868ea3e3eeb07eb6a2de96503b93f4fb534225072c6bf90837c029a1f5c2a5d8194df2e203fb0c2aaeea506767952897d900d9fb20c8cf4f7b68a97a5278d7aaa6e383f0cc8d2b53bb748ab6b0dc5fb1ce82b08aa986449b3c3137a5965985d0cd62b7a1a11b31a498669a0b3072692eed9a1393e42d7e61b90226acc62b284ec550c0813c4afa25a1b6fc103cb80cf429944b557e1334e81c1173df4a86ab107cd8ec6c75392cc7cb11c9212f15ee7e18aa0d27006af5c5ede7b0e6\nflags = WeakHash\n\n# tcId = 19\nmsg = 353131363538393837\nresult = acceptable\nsig = 972ab5dfd3aa92ef9ff40026764716784c87154f12967ed3f02adee5f73fe9a0594b22599e829bcdaeb00217a12218dadf06c9940aaf9c02c75cb149a89e258a548894bf4762100ba17bc8bc60a7a0d05307b7133678dba4babf660d12418659cea25c9f982bdb9b1d2300fdd9d144a25d4f150e54ca7ca344dde9e9e1ba5783c2cb606bbc86341ab9344a0840dc515dd1d589bede2e3f483b20180f08695cca0e9e1cefc68b6bfc3527e48ff0260a3f696c0680364bd4b6830d675ec4986638e976b83cb1f56ad5fe705d5dee0c0c5eb29bd15a24f265965000ebcee5a8551ad8ef74b40592477255169bda56dc8f35fafaf796fbfa44d366033e15acfe048b\nflags = WeakHash\n\n# tcId = 20\nmsg = 36383435383536373234\nresult = acceptable\nsig = 7a7cdead06ba212e8dd6b446f911cf37b40c5ac7f9c817125c0d5ee3cde49ef336b87eb94f7d8a93e1d9fd0efeb77e724769b27d6f63ba91f7219f23e085a3433e4d69ca8f8e420534f554c69a7221d70e57f8a8246b24b5986716c50da4942a1720e51b3ab87efdad42e02cac254be2673d5bfa4669e764defb401121a25055993dc5ebba22176834b4a2f9a8a3a34d35ae2c344e9a84675d94ef8f56b16d848d15851c058ae64df8a404eee09b63bb64fe017c206a94dbd7b274440f04fe07d22d079c2d2a8686f247eb983a0ee625b2d4b9fdd4d9ade53712f0d13cf1ff1aac03d09f80335bf9364327a89171a8a51f4219f86646be96f0d96c6cb27f43d3\nflags = WeakHash\n\n# tcId = 21\nmsg = 32373736323939313435\nresult = acceptable\nsig = bb15915502ad77b3a080eed70b444b753496450a4114d435d2aee9fbf1b345074fe85c23ad4ef52603b3a8a077d5024e3d56dd620169b6dc0ff7437fe1a520c293d78faa77258e8c8632100e0644f469f0a3250a53483e9a2f8dab0bdaead5df41dd1bba91dd01d79eda1df838dd4567d04526b0e1fcb5d07cc628f4ff62fecb65d2386af638ba6d0e594518699c5685033635af6cb302d07bf39a1dc5b50ede06baacafad9a2ee9ac48bf88c11329d2be62d565b0312813fc81c9e3cd243aacaa6c11dccbb6941e2aba6f93524b0140f30987168036b13810c10f65f0acc443f7df7009c238a8d5bfab00116f1adcb4cbf55c484239689404788bd29eb787f8\nflags = WeakHash\n\n# tcId = 22\nmsg = 32383739323832383334\nresult = acceptable\nsig = 4fe965e8b685d1eff38f26261f5c168b77560de5f2d7243a33c3c1c7f267d7b60e9a61444b6cf0a71caa18ca81f38960f45ef29586910c240c93820551f3da5e15180684807faa5d9fd361325b9d39c7b8e805abd75b69af4d020345bcda266a15540b32ccd28e57f7063edc228fbc815f1ab965fa542ed679c43f7b4949f7448e6882bc36a8f10412dc0e828b33ad4e09a5c72d3730143520e4eb625356615bf49e51ccebe904af7c6397785de0f20371689f2975666524103bdbb4bf27f1e202018aca8003de615f073773cca7e647e71ee51d97cc30356a17b50aa3c47a74e133aabba4ae41750786a9b1e584e319836c3c7e7c8c2eb2ce6604323856b399\nflags = WeakHash\n\n# tcId = 23\nmsg = 363635373637393733\nresult = acceptable\nsig = 9e12dc1ec88182f9462a795d710dd07447e79a4e035b97c16e351c4b5d4e98459b8e5a52e2f51dcc1edc4c8943863fa9abc8fbd75ee2f47691a58428034021c6d3323191a5a5fdb2da2ac1b2a149b8d1025576309e21410c9400cbd3b67d2ac4d4af6f57c6380fda2817c263984795934b48844f5ea4761402354112a2a8e2c06dccea0e535a06b6b1274a42f218b1d442c2c8347e7fd168100ef658c63c790e6bdfad3f4e57a536e2ce181a976dee1d605cee947bf5b228f7c540c2c9c9f2caa0461bf737e32f5454f52cf5300b23e8a9921d5e4a380eb836b645515c0c71ea803b730d0667dba49be3825c7a5f49afb7e989c85246ceec236c3a0eb43ed8be\nflags = WeakHash\n\n# tcId = 24\nmsg = 373436353535373037\nresult = acceptable\nsig = 3f55470e612c832eea00cd738b6152bd03d88c3abda95ccc2ed6eb6aa5c0e4d858982a548d25914eac7649c53d2169da5ad4f09bb64d6290c913d346424d189bc2414ed50dd2bdcfe3e9e80a992c6611ec86b537a8b5cd92985cb6226a0367c2ff20d2859c21882fafb2b9c47f48fd19cfa14f793e0fff45d06a2e886253a209ed95030da05a1c6ea35d2993c600491b493ded76e952acb0442c52760fbb1f735957a1ab30fefea6e7b596a7aa4ea479ba6a6aeb866ce6caf38cb7c6338b2993213c39c98b0cdd6e46c9702069b85a8c7e050c1079b11fd209fde0cc58d37beec46db4c8c95b402c45b2f5b7906f1ef19f2a84dbb8e54bd5d5dd39a532ed6e37\nflags = WeakHash\n\n# tcId = 25\nmsg = 39383734313231353838\nresult = acceptable\nsig = 08823a3eefc4d13f801419b374a5d8cd51f9281e124deb0415250e9e353e3a2f974a83347ca09d3b5", + "ec24ec94048b096a4b11dfac52f2480b522f70eb4eeeed6f84941bc37d1dd1d82d7b9883beef1a6cdcdc5b3f6024d9299b10d7697c0325e2c75764f225cdf5fed483ac300a489b69536acc9fc90d581dfa10d67056b3ef9b05e09aa8dfd3d688ec4d63f483c301a44934bba1841860948c130d6353e7d74c9ca9e764c44e3b6fb1665afd38b6a7df8892d90a0d5483dfaec6270084ad76aa50f38e34389f891fa6455ed9f3cbacc422266f6ca2b10aea5c3caf83035c06833cd7bbbba83dadfb28807f7b3d7f4ac6e9025a47217c3dd1dfe9426aae6175f\nflags = WeakHash\n\n# tcId = 26\nmsg = 32363032333032333730\nresult = acceptable\nsig = bb6c055b3f55671f0ce85c5641b970b5ca0dd1f1b8978b915c8e36390700f6bfc765dc6b1694625672f70c0bdc97517d81cca9190ac4bc9eb5105df3457f48144ab9dcc049ae54f28123af0204176685ef6c2d71b0e618389400e18e90fd1dfe65cde88b628fdc410631ecae8d64b86da329228ce4c99fcf572e77e3ea366ce6d33d1401e250c75a329c71c7f5363a95cfde27bc8cf010bef57aacbd44c60a4d5b7aea41df9b9d59efa0cb6cd343b3c95c7acbd84d77873a5775c8757c585d665cfae9bf10095fe4f979b5866b6fb393b09890e118a35ae8a17f7eb8f60dd6e4954010ba903e69f4cdc63880bb24c3019acc596e6028b5f1aa86cc16d6f9720b\nflags = WeakHash\n\n# tcId = 27\nmsg = 33373236363131363038\nresult = acceptable\nsig = 80ac097d00555c8f6ac34f3ea96570432283b373bfbfc327e5e1f88b9b25d8dccd61d1064a944a10418ffb863ca2eee28182d046ea819b776e00a6fd62836aa3f334aaf7d14897971782a8e557c53314a3da16f3bf09959c139abf42c95a943e8f736fe6ac47aac2c4453d2a7091214e9d6c81098f39907d001b4cdaef6a66b426b571105a94331349d0c4d456263e090c0ed01ad2195ca0e7affd36d0f559cdf12c8c8128c7cf1a8aebaef6154b4bf8e3bd8db789eab080b14b45b10527e800452fbe2f20345cb41afae4f35530936c1b99137a3370f4f1c9eccfa81bfa3749fec4b1b0672b50e970c621ba0a66d1e775bb4df0674f587c938a29176c603318\nflags = WeakHash\n\n# tcId = 28\nmsg = 37333434363334343235\nresult = acceptable\nsig = 669f3256203b4ffe73ec01c2d7d120ab9c02bab82ac75495dcfa24db2f8e79970673d4790da772f4b16b14f81047086034b3ad927196a48390774aefe0d277ff466798d3497c0e108d51476945e4c324d32145af5d8cafe88bfd6a4b52c8e033ab4b95bc5b5c3451808f019b39285efd4feb6c21708b00aa5bc781afa87fd7475cad673833617159e75051646064d81ed42044791c27e37eec421893fd371d7cd96b462c158560545df3f5862fe97958c9974c9332b46d894486e97c84528a1f55a3d9add429cd7c1a05fb582affc12fa3aeee980a93b8168f284d7f95faa2ddf137e445d2c5658b89a2a230a9a640bbee40665c2bede3f16b986c72ad15b4f2\nflags = WeakHash\n\n# tcId = 29\nmsg = 39313032343039313337\nresult = acceptable\nsig = 50191cd6481555054231eb25b7d44f374052a228036f1e796c2d923c9df9bfd2f881620870ee4d7dffa4637e570d6055345c87b61a2c8f4f3b536d89cb0379883c99fa246e3ae9c6a157770767bb018d702382840e5125ea59bb6367f98c070327d30bc4e17c40b465fb5314e59692527d792c9155f5f1c2d9f4061a3b784741788d92d761e1a3c553320b4165c864e874f24664de3dc6b572dbbd4fdc495431de288389c2690bcf56482632ee34b638aa902f5ea808933aeace4eefbd2b6ef54b47cf2afe586c20bf015e782d5ab952bf7696268467a6beb2f2506cbcbec919674fc785474ee0608c43980f64987ec0b75e8041871ed9a2f99bf4623504a9d5\nflags = WeakHash\n\n# tcId = 30\nmsg = 33383239383138363835\nresult = acceptable\nsig = 55a3be3e5c6c1bb472feb54e2154aef10c8880195183860a3c19dc2f0d9f2e7473b90bb2a9ecdb1a8b144ee27c60ed7ea25838bf6ecd60c2c5dae9213439a9ee8a7a49e970eef3cdbd86f0b259d7ad598230f43e2a5ac0a0f68f947cbded0d20e7a768fca530f3dac41515ec9ca79167de3d800c8bf547163b035a0f3f45c371d53969ebb6d14e5850bab303dbfcf86092b47d41582ede460bf9920c8eee792187d1da134945046d28af67c433fb802f09a6bfa946a8aadba2ae9f89afb530540cbd22960126e6e858be58e6372903698c644253cb5ff72c493b35caa4407d381f96b304b0993ce08b7b0c692c0bb7936f743666db5aebe2afc2c67e3b256fec\nflags = WeakHash\n\n# tcId = 31\nmsg = 31333332313433383039\nresult = acceptable\nsig = b6fd6d2d4ebe5860470aec5e25bbbb02d67d46d960008311d1dbfff3b85048cef40642362104e8e544b914b9974eb53ff1cc12cb8b0fd5b8a924e96ad982ccafc1a80092586adbd2905250452e38b342f7921cfc82623ed499742b2fb0b90d1b5285bad2fa03ab82468488356605b5b7693335e8dcf983f639d82c3168020e27a7e0d06b2af184eb96618ce942c99b49bfcc27a4b6b47c5c07865c5b2eafe30c6bba2d9a97818aa0eb5d2288018103668f892e8bf5ef1837521cd2bd41b5b8f6a954f5c4a50de874b8e00784a5546cc9b7ce8de2ff776749b0027b37158cd5b11b440a52a1820b7950fa685bb43505e1d35312a6fdcbecdbe947672dc2be74a1\nflags = WeakHash\n\n# tcId = 32\nmsg = 34343435383035313539\nresult = acceptable\nsig = 7fc54d8108368eef19f5877275d07e871a3251cca71c63cafb46808748cce240b8eb95a1f218b77954edd2ab8768e3fcaa8c8d3e9b7d678c0d44f9731d5a58f6ac5f3643187bf88ba6023301200936d9414517f1b13ac2afc01d8cb8e011631109f2e8eb66b61b7110c273e26c2066e9384732b5d978c0b2d6a9f0227533e092373fe9d8c2dc33f8253c13aa5730b3f792dd66c6b6b2be2dc5723a470d8da15c79286d1842c5cea67eaa47b906c4f034d1587610d9fa02cb7241364f8862458feb6d8fff98255b4c81b69c248d5f5dd721ee477b1f7341c73808b880a88f8425dff9c27c2bd0140a61b8c64d8dae15c4359a918de42c8a778b8b8e352b624291\nflags = WeakHash\n\n# tcId = 33\nmsg = 39373637303232323239\nresult = acceptable\nsig = 039ca79f8bcf17374bde9dca5b7615b809ac8d49241a48b118c18cbdd4e3fc43c2e3792b73d403062ce800f26955125b7b15beb60a6447710082c6c6bf80d24dbb417a58ab934160b18883ba64f29b461f6f76f833ebd16c38f7664976aaec1521ab6a567b34283a98b8556b4fd346b050ed4b1756c1228f891172a634444779e26798476d481e416e1180aa1709f885fe5c6f091466aba6287f727f26d086618ebbcc2c020a001ad8b24d2ad0dac784456e162d06030567187c25f2e2a023e30decc076eaca92d2c82042dd077abfb788fa03a0daab9714db415822501d99f89600f8d677faa726aa43d2314645b2320588b4cad7208b2fd12d7f99fc37d809\nflags = WeakHash\n\n# tcId = 34\nmsg = 3130373838393031373235\nresult = acceptable\nsig = 907f826f39412c22974469bbb28f049d8404b9397bbb86322c742872d8dc008bd199ec7e891c1a799da60ef20c9dd7573ba969761f5d812f72e889af855b833b5aa1cac338cf2a42d4e0a9d14cbc6fb004866aba01341e9dee8e2896df163996d78c4d30d8c68770e7c72eaf689cc49713c3eb479be8452c935aa44c48aecbb0d3f0646614d36750ef126036828be76be580879961932a74f34bac9983fba0b970ac740f584152c5cbb4d6e3815e87701ada8d30a501abdb62ab173aa1a7a3199ca27cfb179895132089c038e40a273be45b471a1a1f70e7d176b7424e852b3f8c608193a7126588c5065cfc5a7117beb72f73ea8a836c8a15f12eca67f84051\nflags = WeakHash\n\n# tcId = 35\nmsg = 38323137333338363331\nresult = acceptable\nsig = 7b786c0a1baaf52fb84459e92afaf038bfe997c9a4d910303633fe2750b97448a15bb057b505683bc53ca4b18fff1dd90d1416bb8c0fb2c29550d7dda9c9a7f087386776fe65b1288c1f5508ba9468ed9328c9d6620e6882fc818c4ebe832df36dcb5d92837a711ea6f0d20b784235933d0c571e2d6061445ef5d1bc22d43378d2593b2a762114f687bcf59cadb4ecabf258d3e14a4bdea0b215828b2e7462439fcd4cb99518bb5d5dd9266d6dcd459bf36cf32cb8683067918a225c1685db5e52f9a5305cbe60a38df2babe901367eca57f9cfeee2955549ad9b99318b015ae19402a4dad7752e15b94b25b3414cc9be0c13421f31a41d0b1a3e43ce2c1d309\nflags = WeakHash\n\n# tcId = 36\nmsg = 31313438363037323135\nresult = acceptable\nsig = 642e3b94f8c5a0897b5787805c99b04af6c7a2ef47eae10ddcbf58e0f9411373920d1e4d769619f97182db36a9c38b6cd695a1d96daaa9c9288ddd4774f9e085dcb4829f1cd852239016dd23ceb1a493a1294e3d35104f48384acebfa0cbecdc114f445c63d8a1524e608d3f75172782b1c3169d5317902a6796688dd6b0112d0822a5c65a9ab31be84c939cecc4190dfc766cfd29b965ca02baccf2e3a68f13fa304b469c60d7eb49049d78dc1e0ed94daa273dfbde714024e62ba97cfc7b3d32fff034986518e0486124a6d6d33f40474182b2c235306c7d0d5088e7e733b0a895745a4bf4c187d2cdc9d6a8df7153b41f16305a15da7807c6bc69c313b4ca\nflags = WeakHash\n\n# tcId = 37\nmsg = 38303433333530303635\nresult = acceptable\nsig = 5ace1b9ce1f57901e8b8a90f033750f807e52361779bfd97c60f029cff8a70774c06781a2ec5d16116e0ea5170b99d0486eefafcff11f2780d7d04139e28e408a358b48ad55c0d62a357323d3ec759205df77c73f89e991f849114d8bfcfe4b6a4eafd86a9cf43500775b1cf4b4980c4f6eee17aef782eb7f94144ab1e7a0ab9c83ef2860c1429d4ac9174295f5aeeb6a3d5fd430807b9c2ec20e0e2cd1242e496e5470b733db52c857be5a65c604779d9e1bfa5a7bacbf2979f1e533278076f102b14efc321e905ae5285e50e3c9998036718b34cff35ea0c082735ea576acc2f18065c7e05df03d3fee209f1a8df7da5a07af3a4ab86e54edf85fe61343fef\nflags = WeakHash\n\n# tcId = 38\nmsg = 36363939343437303335\nresult = acceptable\nsig = 30a1a557fc9651e08c004b23a5fc256b13f9f9221082f867643dd707fd5513de72b52d13bd1b1b6fd090fd816beb486813419bd9f426f9d4e8ec7e5c86d4228e3bfb899287b2354d5b720db60b68982e76ba2b14ed22b8bf849244c9ae6b55071bcefd4f7063d15ba43e0a5f747bef7373cb2dcbff6d511b030d3e13f628896406955a77573570305073d92c5cfb2a9c4d92f867c1801e63c8addba43ce3d7faf91af464f941faa48f28f549d897f93c074394137203a19176cbdb41bcff260b7b0053508956970e31f65807b40c3b7905da151b5520931ec5c470f020acb306fc6e969a89966fef4ab1c2a17fd5a112e0a841b853dd1449be32a3b52d2f6e89\nflags = We", + "akHash\n\n# tcId = 39\nmsg = 393933353239323431\nresult = acceptable\nsig = 1960aa85afb75f52a0bee917bd0afd51de8abbe1be7abfa7c8321f74e18921db7d53de052535c2b10c71c32ad84016a998980a89cacfbbda3543c399319538f3a216981ba938a53f52b0d5b078a6cef7047bebce6c5023db080172d90b868698a2909b2fde7013283707f9b74f3d800c39b0f5dcfed845791678c7696324abc97331702f2236620182fb528e2be595ad10161bd889ff688bde34950f2b2fbbb3983f76ca9224df04e2def7ada7dac4ba70d763e2bd7bf0b5a9d05e808f9e4426f04cc94e28510fd8b91a838f86c808851ed88fb0e4755afc73e5716e9e42d794e351a4f31000427336e7052849cc673b7e54547127e7e6f662caf6bc512d525e\nflags = WeakHash\n\n# tcId = 40\nmsg = 34323631373430353530\nresult = acceptable\nsig = 596a2b36370dd115ba496109e5a9851b2ff58c2f9a5bfd1b26cdf3eabb840c49b46b6a6887e4c13c4b930b737649bdc56fb89168e46d91a1f1186adecd0fe867cec067c9a90e8e1a663880ec44006722d4a6888b83b764a864925de700b30a6b075204a8978800296d5eb0ef1f0dc9ac87c5fb7a4b2a7cd148566ed6eacdaffe22d914da5f2d6cedf7ada28593b548775d748a61b6ed22ab5934bda0c57782caf1f48a309c80bed4fcaacfae1dc0432847583aee8332eec9435e409fce2e0d3e14f6c4ccf121b8eea6f5b415894eba24ef066a08d5faa9231fe3e7767cd1fbdea7850db1aeaeda755dcbd8aec33a7dabf430bb7002754e38a70117b47d3f677e\nflags = WeakHash\n\n# tcId = 41\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = b8edfcc9ff6451ff5838c470232c4d0f358a88ff6344e62cf4cf9170576e6595fb22f6b2f3b2190a6f286745e39a300cfd368f82f86f12f81ad4f8546cafedb00a38bc85f8e240127fc232ef8287c7bbd35fdaf55ca849c9745ef2ed1371a84e77cdb07513a5e8dc4898e7a9c8c52a3e35b3682abba3b583123026b9840ae286148426c59b4c00566a147c6d89e039b28052a8974f966c2d77cbd26ad94f54ce987748374e88b7bcc4afd24582d408db9cf94906ae9d0039e1bd22ad8a23a8c379777ecac954540f1b13186369fe3480955cbef6090754b286c8e9adaa288b1024d94be0291d20e20a9eeb525d5e9a2e0e0b5cb4419802b308e27554ca3410a0\nflags = WeakHash\n\n# tcId = 42\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 48c590347b593cab642b07d49bc2229503ad8079dfa82e3ce1f014d1f0046c5862ea5d3d3c3f44705370b15079e1dda2627e3ae861fdff25eefbbb436400702816ff8c60aec8e2cae0e0fd2ea87a3c9ea03731fa2c5fc78299aea7629951cb71adf1608e5843b3f9c99f0c3ad37b6c85e0a271a1f5a07322433c5945f9a471e695c0ee81564a9bc613b73e0700a804d7c8196f160729b8f90167a6704761930bcc5aab75f2d5e71067e799833a8f4d8ed49ea17ec71a29bb9d20c96501241d97931e90b0f50db39a57829c615ca262d756744ba3422c3505484c79e964d840927331a1490889ee67ed1af681d350e0a1fc95b446c95e38a3c14af3236cfdff4d\nflags = WeakHash\n\n# tcId = 43\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 53dbcdc61acab0d966644f60bba8b9c78261f01afcbee95e206fae665c07fc69c13015941af7b684745191fb78387680a274838d1d9a3bd4b5f556406ed11e1879def7c2f018f57b317320013e9d4995f1610cb3cabb8f8cdbf718d5c3044317b000574244d5fb9fe664bbd40aeb0bd066d4ccfa224a49c3e9e3a3ae323690e5fe77a3c72d5dc752be7d68ecc38958a2bfa8e0c9365b5e546ca15fb95e205a30818b01b61fbf7a6709281b9cccc9a0c1119cb8c11c4fa2e5fea4affc477b1935b8ba738c39089f15c6fe0fec0c78b974646ea0ebb80ca5e8386d9803764704e7f16188a811de89379fab804717364cf9ec39371eaa416c628a55d2dc1a5b5ed9\nflags = WeakHash\n\n# tcId = 44\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 17b550ac168e25ebf6d1bd66ac30815cfdb680278793fec78b36e2f28d10c32892dd0af9950f8402ad8b54597472249aeb9563215e17a17ad8ffad7c4a1c14c4b92cd8dfc035cfaac6d662e27c0df6b1d787b7136a4abd5ef2abf805cfa68ac8eee0a6b5001b9fe8855a08526da1971d32d0a392424bbd37bd43f68b8119aa5c6ea33da817660ebc35d80c4d477af3363bdca4c976ec84f2aae2cffdf9ce517b50994e6a062f199d71323c532d57e76f8d89674c361e2275326589b142b4db8268a1b36425a7d70c57115df2bc9695d6dc2ad6f3850d0cfda545a8e87a75a49ad2838cd240f3461a285201a83dbb670851a9abcdb11f2b26d8c89f1ee4d44ee9\nflags = WeakHash\n\n# tcId = 45\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 11cb2f044d4bae43fa2c7bb967f8f3aef33716e0e519ad0c49570bd7288832239f71be6ab82b9bb96520972df4b45c8b85f0dcbd8aa6839506c8b44a990b20e0c2b58c313559f86aed3bd648d8a7ba5ef2af00b958eb89fd69a3107bdc519c60dffb21a20d4a37df7572b3e496db68ca86f9e85ff132016399bb0cde7a719bc1729df1b1b3e6e4dc1ac02246bda3de9ecd89ac14f4948da298da77e142586ac0d48854b4d1eca36a18af5221ce51789acbf772c06e436009a3b88540e593d4271babce1ecfd149fa5367338e82ff3b8983c8af02df99e37039a7d03f113dff043f598e3d68f3083ec3cd545a52a076487f7ff93c016538dd6fb9f947e87da716\nflags = WeakHash\n\n# tcId = 46\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 0dd16c3ccc10b280bc36c0104e7c5fe47107c1ba511d197357aa7a537e90f079a00385744a85a070804e9134a75fa73bf1c053162ed2e622ef1d3a1b9f117c47a7b68f9e1000bf851570987fbb9f8b5fd2bfc058f95f2bd12ca977e44f596df0a1c48de9d0c840732d94ac2f11156c9e739de8df8931efae8aa42cd6254b3fbe1405313e8b19ca86045edf87631bd219f6923b8dfd783ac9e7c913cf7348c7b5028b478898a366b893938a94d2fea92e78001ae2baaf5dc0c31e9b0d4619e0fde45414b0c5863c8826406d87b48fbe0c52164d0a8d1fd00b883ddae8e1235c846d51e5cb20d724576dfdfa01d15f47cbac56b17543fcdfe81dd70dca545ffdd0\nflags = WeakHash\n\n# tcId = 47\n# s_len changed to 32\nmsg = 313233343030\nresult = invalid\nsig = 18bd764174873263341771a783534921ccc5f3395ca96a3a57706bab1f78905c002f3cd6e1791e238a8ba6b9fddd74d4e758527bc3ce76a2d9b37e130bccb8e235f8388e54152f447346a580f4808bcc17dfa51c69c2625efee575314b609b8e30f1caf822411ba1cecbb2c295c76620ea1b64fadbd4a8b52ea398f60538f3a19fc9c7c5f7b7de802e16c290d635278590bc367b935eb7209547aa1cb378e54e2e383d8a2c67a69e790fcab540a51cf756c86a5fd0f337b14246eda65e9b8b85e6ebe62e89156a387e9d1b7206da72c0822d20a20637391956d473fea426505e6a541260b92cb4b66980592dcf92bfa71d264c575496dcc098bac82edd5c6dc1\nflags = WeakHash\n\n# tcId = 48\n# salt is all 0\nmsg = 313233343030\nresult = acceptable\nsig = 6083e24acbd4973b8e28bd22e996924252e306029c3db5c5353f3e4c505d36f1fb7e580823e21964f9206fbb158465f64b26089e1fd4b8bcb2abcc0384781bb005db9ca71467661cc7e8e6a1c6b5dc8ae646f0e6805920016228f400784906a2339f5e2385cf295506c2233b662a0e01609183261122b309a1874b34cc74242f3620e3dbc639a25a9e28c54e4d3db08d6a793ec468902cf0dffdc3ebcb0982ae7a96951ebf5e7640452ba0f5332273fd9bbe4dba26e7eb106c7ed16c8baa1f1d7e5d160482741e9512b78aa62a942cabbb38789e7bb380157bb42e6a71c580dba254cb8f59620f30ac809d3ed814c5ee0f3106b03806993d79ded94ab4c3b4d0\nflags = WeakHash\n\n# tcId = 49\n# salt is all 1\nmsg = 313233343030\nresult = acceptable\nsig = 46df0cd49ca21a0ee84d8d8a2a632c3c3d4188008773c05b6e148f629c62b9dbf3d8b1df5bfebc16efb14e5ed10bb9cd53f815ec3906a2b6e9cccde64f52c23cdfd5605f8c8c2f62eadb0b2445fa79a4e667cb63b10bb9181e8ec11946054dbd13e9ca545cd9da945bd03ae1c4f8ed48555d2e71e1ba8d410a725fafbeee8ef6798fef9d3a9c6d48825c996da1f2215048916bdf96d294c987ca678d6b1606aefab2995b11ee071633eb1c4873c1252a38f3453482cc72ddc92f9f4764adf4327274118d9adbef6e8ddbde84ad7c6991f7155a1f77aab1d01f95931cf73d61925c19d66040e0f7d8bfc68977db948125dd81a0282b30b1942e0597b489c6c2e4\nflags = WeakHash\n\n# tcId = 50\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 21cd7d32c91362b709bc629d9e04b242604c325c9586dff3dc152efe3a05b1e2f1ce85265c94ace1f0ad3c50d327ca582e4b99363c5fc2ca40603676c774b3d706f7e0dfc31e0306f8835273facb8aa9c6503bcff6af471875f8a4bcb5b5b6405ec22e7bcac9fb7fa2ca84cfac60f1190f3dab9ba34ab1304e07e2fa9a25cea4c459e78e05299db7497d4301e05eba538f7845bef4720fede2b541501a6ebcab62a04a1ffdddddff8146513802fa495277ce5f0244213786dea4d5a6d02fcd93cd414907c557107cc53fa5c5409f2fa0d592cba79273c9b9d4deb8d23198909b712198be83c955a915e5529c634d8375dc0559d72e30ea9f47547f6d2d52529b\nflags = WeakHash\n\n# tcId = 51\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 2746d7d48ff2f17364c40a0df277242656af6ccfa89802d6c31ec32388561fbd261c85cc03e2599b845e23ec90493f637a3c1d090b2604cf5c3ecba9b09078560e75523595923910f688e91337185c4d0978623bae7c33d1c3b50d83794c0a5a44a5309ba1d39f3c5dc3b31661c895aba0489cd392290135108cce56794ccea491ab424bac4405cb90a72ab53042b3fa863222c41d156ca0e752f733eb588bd9532ac422beeffac4c01c37262f49fe7e3f9dff3f993eac7b1adaf153805e1b44f7539e04a38c19579764a6d8c0634fcab0cc22ce41051968eeeb44f17fed7ae959d5199ee5e0896a964eefce583b8e0984f41a26d0bdc306b46d97b29d587f88\nflags = WeakHash\n\n# tcId = 52\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 39610ebb7505fe8853dd2d4bb0c3a3490b669465c4c83080d643337209802c9b6a11e6c79481cb540616c7f877ac58bba08cf3f93ccd6deac0e8227581aa73461fdcc8908242468a4c57111c637712a1ce5e", + "ae6bdbbbdeb085aeccb2cc2479d502260c1d1ff63759d27f58ecdf87fecf5d23072f709b5aa811dbdb067aa394c272c270bd8ed1c9d0491fccad73b74a4b46e2f8fec3e2427661360c41be306015e43364bb459a8c3cd1797fc4a89be3a520396320427f12de28d3001ae257fd98a4f0f906781a2ff696bf51346c92545bd18c37168d943480ad1ea9dcb47a2cc6854bbf7456f205121f1f4f5beb6519521a91711aa157d2441b9bea9a29ccba7c\nflags = WeakHash\n\n# tcId = 53\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 681d7afacadf19dab9252fbc35ba86a8d34f4786759251a91dba18872a070af39e5b3e9a12886b6388cc59d2f83bf19a09d1cf6cdf32f0f57cb70ae8df8d623bc7c2a45a344b02482cdd026b4207735bae6089831c8ef3d97428288e363bdfcf6d313fede6728240af8f069f9b6d7b57e029aab5b92e3dd3627f1d1a9a242de3e14a4cf5025f9a3ba2ddda23080f3d250db320c354158c2a7e530ea77ef38583ba1d3bb2141b053c9466c043e4cc261256baddf57bed45c9a491b49f56d3584a3d6b0df5843408b0287b850e88c43140fa32cfe5da29d06ee051bb0b0013fa6c5b6ef6ea025d106f8be8166a9214e1f77cb19e985298e6d71d8c00b920ae298c\nflags = WeakHash\n\n# tcId = 54\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 02eae2703879522f6660221dc98a84a1a5bf69d2198864da83a633d0eef56d83950645ff9878bf12618ec8cff826c6e3d955d82bc7f6d10ac207467c373d7c7ce8d6db7eb9e966ded3c78a89abae180eb1262b80a976b32d77642f39ebc4388d2844ad2414ba6a0af1b263bfb44f16f6d3bdf44417ac31182a840c83848f1e60b36525b0135bca9718b9c6e8c06ad3c62eb07eb0f7c52793a388edab9b3e37ead929babb8a866645751ded5d331efde2d8363179188bd14ad323dc0f9d343c4c3d07c20a5ed6ad02102d3c804fcefbd43e848d2acaa632eca2e72dcbd2200b5b595868ef1a115336f754a164292c7b465e9d07ed64f0397cf3664fd6f87e0c1e\nflags = WeakHash\n\n# tcId = 55\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 6b8dc366eae1348b770019d1a2d2a3a075eda36f99c1202902bf44c50b3ec8e75c0415eebdc61d70f37c8280b5ae6b2e03ddd0b1f15c6944cde9433b0837265b8cd658f21029b091832ee28c5047db21de4029b0ee17369f99dbfcc2a4ad42dcc58e210673154b4fa1474dbd684f9c7639c0856d936c8b7fdc437bec8d6f8754cd9577639b14413ab7b30ed236440516837f820a0b0e146c48706d534bf03841f3c0172bd698eb8356332d2565dbeb5143a822a0a4b978182618913e64faa71a15d454bc05accb74d1338a4e66ea77e690a6238c90b84a5261b17c6d2fe947c37bbbae99aea0742f6559d6177a272db4d51047a206b804a590edad0f7af7c078\nflags = WeakHash\n\n# tcId = 56\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 96a051980a5db77b94a7adc32f73973dcfcd62e95b0e0d2e084410c37f65b50d018e9946334fa5d268a6848dc164db1d012c5d42da613d9d167dc13723b334acfbb472d32027ee6b52903fb8fc07c1a8ca31156fd73568d3a1d933d144d0f263a2adae751e8d4fb5b949adb34075a6fa59ddfcc49399f9d01dc8d8733be47f2ecfb396a3cfe40d619be4436767f76d0089b845f4a265a5ffbacb69dfcaa68de6b34b6c5b1433e149b3bdca5bc72b98617757a1242b46f1fd0d7d0a7af75adb950433e1b7584fa2de51b93231dd73512cee728a3e6f7cb95177072dcfd25362da537fd4134887ab1b536979f3969a02cdc2f3699e394b001ab227df7daa175b75\nflags = WeakHash\n\n# tcId = 57\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 5bac3103062a5726a57876fabce9d113f9816f30f0330ac8bf0797ebd41c5326ea693ed7a3db0af251ef268fa95ee1165ee3d5fba2630fa75c346ae422c3d14d25e16eb1c3b762d9ace379ad5006e8568b2b494c7cbb90fb7589b607da24cb8cd6a4d851ca4bc6741819ddf9acb7b3cb50cd4356b634ad2778446146b4912b9da430921bff3a8cc7e330e82a38bd9f69eaf47859b5199cceea0b9d111dbde5e20a8451fd989685986172e4f69ba2983c301c51e57ddc457af8feac9709d84d9b3c70fbba423abba4cca6eab1fff42acdeec5ec89936c4ea8f837b01eff954d13fbcfe8731a6c7cc9271a805a98b8877f364335ea239003cc6259aebb922d2f97\nflags = WeakHash\n\n# tcId = 58\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 1e108ddf1d6d931dd568fcde1e11971dcd86b409699909d4c2689ac17fcf0cde9bc27d10f9f2870113cc61f9983d1ec5e4b1b5f8ad0e488a991f1455c5ad4f721056e54d11b77dc7ba73bd3caaeb89c21141f0010501c9f72a3fcd4d7e7e59f701df032fa392bf82a1de9ff9f6c15ef2b0a54201f787bd87ba4fc9696065e5db96cae4b61f66294396eeea94c1c0ac10dd8f1cae928c7b7ffa84a866d69d450f072f746a4af20d4b39d26cbee43b227e96c4ef5ede5aa043d51c6a5e94c8a59758f9b42133cff0b01c365fed57d189106c4e38cc73efe7165aaa76b2a2fb0a2c41536673234c4116a7445dd9fc93e0f27eab8e5d4c19a712e09840151e44053f\nflags = WeakHash\n\n# tcId = 59\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 4877085bc45b4e538a2f25755ca410032a01af460523bea0ee1da767d73688adf09d8b300c5000d74456a55806dcfa1e1b1c787a69fff295215772173649fbf96c17c858d4be9a7ab9b7b3189243edb997af6a0100f554e368169b115cf44dd1b48665407dfccb41edefa356c297315fe5d32ae91e21705d6002c4c624c4b896dd6024839b0113fc71129052330a309892c13cf5c68ef722d637e97661366d40f8079c5c789857471d73fba4f468a6c26c21e65659b5fe28fea0e34fd47765119e41d3a12a148181a78f85c80446e2de5b42c42b354d710a4f6237a830a59e7952560a8ffce402845c38e9d4a0202e3d4d8a035298e4b48025e03e62bc6c1ff0\nflags = WeakHash\n\n# tcId = 60\n# hash of salt missing\nmsg = 313233343030\nresult = invalid\nsig = 49626bd98377f1d2e571a9d9193bcde1c29affe17806554991680beabef4012c73fdccd5854b7dd65a3aff868688b6d4553f79ea5fe9f04d3f6afaef95665502254b1528dd35e14a0d33e7104210ca91397ac766bc7fde1a030b6e2d38ad4d69d05557464602c040888fb6f15f465a61276e6730bb3106908f60e431afa8c1127c82b0f23ddee410e3c5e73691fb6d76f2b6405348728d78a520561fbb3199296dc8b7d43e0190161a289923a1178409b43810e5b710dd74ba5dfad6a9a35675fed1584728f9d222e9b115f83900b6ea833eb28bc856d5b706bca47ff2ca2113e1a7ba969a0de3319d9f815670575b85e216dff8884cec20b56a3bf51836f206\nflags = WeakHash\n\n# tcId = 61\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 7df9adda89f83abbdf0e3493578461fb8e01f59dc1046fd01acb4f9c79a9a5f95f7d73dc0a9dff9ac4b03b6853a5e788da820a54e0dc71cd5f4c6e7e191ef985ac99fe3b79e578df13dba521da8082f7addf6af7ef4df649fbae8c9d58b7419f551ad67f061e1653d26ecc41f9dff8dea236462f0da7bb34bea890e21882437d9fa8f675954e1c72a8ae235bbcfea0b72a963435e7c69d7c5be86fcd79a50ecbd53e33f7d3eff268ee87b0cf634a7a9ab2fa3503e8df254bb2f223c1d2a9da9cabbab948ab3b29f53e70cc7ed859e5c3c1c66ee02b2475c86c30b148c640d67d7df0879fd14b4af9fa19a68d6bd3cb866c94db166ef12827b67448d7c316b388\nflags = WeakHash\n\n# tcId = 62\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 87ec6a8c3c3f5db0d85630bd76ff0a99007eeb8675ae68f1394c25e1af4f340051626d2da40df653dcb71894b4f292a6c0dc329c9aa8f599418839890089081ca3910f860e1cdfeb9ab1256a0f45ffeeeac861dc6471a902375de4287b05cc59d8cd5b84ff90e951d0b0c574f3f3d63a617ba1e3eae41c931a276af8772fd0d2097d4acd1cce8fd62ea2958d248efa8b96f3aa5afba396b17e290e6a992ee4cd0124810255d4441eb679a47c726eb784201395402b4f144f48c6fb63accd25efab39b6f57373289b33774cc8af37cb2a4b43ceb72a04fc80f2757081ea8f27caea1861296881bd948bd24458892f5cdd1bafb70ae486984af83cbef4fdfc0cc4\nflags = WeakHash\n\n# tcId = 63\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = a895755f2494f5c35e7203da9ddc02180c77cb1b994f59020ec72f5174ffa59a717a7e7d0ed38f8636907c9eb34807da4c43362f342d5ab0179fdd26885456cc69a4a5cf9e95a0b23c800829eda15fceeeb3b454d5ab920d0044a3cfdecf4c434f28484d3afa70a488839fbc63df9a191c3ee3b5df0598eba155bc962312633bab04b48d47110f19c97facb6ea3d3838e1f441851bcb06ed395a1fc6f6370e065094939dbdec28fb6396cb062eee524853f151a1d2201e51d2daa6680465ed2cef8d6cd36aa43f7734754b9f499620d956c2cd6fd0c2ca3173fdad368436d8313e148085d22c7931fee7ff58d4d09334816c211c1532f1086dd197bfa4b2f628\nflags = WeakHash\n\n# tcId = 64\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 0ae88987b001f5a5d5d7b257a57fc2c37f642f136717171fce28430495deefb9407997b9e648b0aaeff568acb3e5b53e657b417e9cd8da5279a52c038d965743096c2d533c25ea98cd747ca5d719f43cc2daca426cf7bee205bf89c225a0817d59079b8162c6022ad029d0946eb99e8e44ec0898c9892614c0c48906df99219275a04fc1efe92d5d6bf98c90a5ac469a36f47a0f23889fd18da1b38ef112dafb696f536bbd04e6c966a9ba326bbd638d82b6d7661916b7bd7d3d4ac426e9f0fd527918505a6027b8dd716a3966fb439cc4a130a13014238c5f104d754fbfec2f1c780b49aaf803618c2a8b69ec7d0f09855cb1019878f52df13c4492a480dce7\nflags = WeakHash\n\n# tcId = 65\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 3ab3c8cf8b99a2bf882153ef1ad6db449e1edf673a01e014b40d1a23fcb38fba21bd63ccd9df9a0849d59c41520946d46fd26fed9ed4bd65ba0e00705c119ebfcdf31ced34433ecdf9b4170f9990c2a26c4afddd284b7e134b9ba8b6d0d41624a169b8f4ebec7a87d0de0ee7870c99d4d05146a7b71c94606fd178aa655c3edba0f764f3292d76217d4349f90d0919c42c35be21613fcaf824e16ab3f45ef17c14255975cb85f7e1f5ddbc0151ac4961f68a331b97737b171", + "e93c01a0f4605c7256de93ce1e1cc8f5175838999c734809bdaf8b95edfac0d5f98c3de33ad6399e8207a8015373e1f5ed76e304b5e2ac260bbed23c662c38b6f29dcb01faa4894\nflags = WeakHash\n\n# tcId = 66\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 5a7e549f99c138d3fa7ede3ad655473f78c3a8de650bf8db6a5116f0807e5df84445ed72ea6a82a8150db352b85210e120818da13d9800d15823f5780b6051e51bf4488654e6a93c95d19b45378744483b43b37200d933775d2f84a7719cdff6dae2e15716c86a9c5a0042a5268cdc7b5e1860c150d85253573787b2839fedf64df3d54c977f63e7bfaf3168f0153e2ef019244e5cdd9be69b421607fef727bd5442ada4bab802ac9fc0c0044eb5b435a9caf217732b6740571bf9f7b1b3fd83da8d4c806a7e2241e37cd0d06abae28ac5a83ae3b2f81f3374dbea97e46c66e821226fc7cf0b0af2dcbdb7c5cff641775c81fea4c8cb9309e989bca04a4a5d3d\nflags = WeakHash\n\n# tcId = 67\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 4975c3fd6358989938633d07cf7bf0121c8a8c987fde1cac405924ab88c5a3175d27207ebbfe42b24404227e388b11d92bbbacbbcf152d3fac0166acb868f908515903e37da98e96aea367c179530a43f78d877cf0838333fcea303cf6710f046513f01d586bc54b42bfcf5dd47b1a01ea8b95aafb4b9406888b3266445f749b1c56459ce4e10a57edc59f610b8b74edf9987c9888460108a11525d0e7228ba5eb9472a0fada1d056c8b0d08efee2761107595c6b221716b6782c27bd7755f1a23aef6cb966a31471921594a1de17ebc7e5b52b933ae52a0794bf4bcd1a792e78a47f019698a37d0d389ca2040c0d3758eedf0fa810041574b32938d290cfb45\nflags = WeakHash\n\n# tcId = 68\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 881dc4bf8b2c6c17e10bef3dab327b4cbb76413a7e5afbd24f198fa461bce9392d31f0a11d69bd67b75fa30ff2100dcd52b8e0c24c91b0196d172ae3fc1d40fb167b2abdce4b83fed365b9d5946a333d0f669d99edf7b8a3a1c8ddf2397cb77bcb62aecf818807d696af4f186bf2e0628ddb1b9d45dcd6eb965dd1b5eb2bade60fbf5b2ae816f45f9e0ad024039bf64c081e37630d6db51a368e92256268178aebd32963a07693f828d01eebaad0fa04e0ff29d8c7ae681be4ec16d2a6bafc1573e38f58c6c2c36a5d5a2ae7718adb1390770d9a3882f895b3f0fee16a2bdc743b0906567b6938d73a666cc33d85142359d40eabbc1da65ae616c7818f86fe1a\nflags = WeakHash\n\n# tcId = 69\n# bit 7 of masked_db not cleared\nmsg = 313233343030\nresult = invalid\nsig = 15872263f8270e7ae9d3127a9b677828cae2077e534ea349070289394d13599392b5f803f8dbfe40a5487223dda2a3c6f30ddc92c4e6d9d22e7d0d2b60197e032f188da35457273ce5518b426196c952d0219ff6190fce905d856d491b00999821ce8d1ea4b18f3423ebad242bc846e0af408f21cddbf44e9e5f5d300d71a3b104eaa2230ee633d2ea44016af735cd5ed9c7b421f322781547bcbb0cd95e4780412f734bf681bb47abd46b158d251ec92056553ac06a59c4ba7fd20bfe50cc58386832b52e548df345b086b5757c4c9f2e133131becc90a72ec6c313e7664dbc922c87a90364bfc746a425df77c9b97dc2afecb2cc36fec415a4e1c6a957b4b3\nflags = WeakHash\n\n# tcId = 70\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 6de50a9911893547ab56065d2953038768cd0689a63b0703c0dc99e7cda412ff49eca503671f068635f69b38c0627427f02785b3870c6791add37d436a81538e6fe3dd0eafdb50a18d2f2d97e3cba062fc8343a6dfd448c11997d1c5bf6e1895e09ab435ebb16052c20347f4d077c6c7779297a29e76e49cdf0d10713fce20ab51d273febaffd0679a1ed56da5c0430a90a5fca1ec2010293b2eb8fe34a732ef4679318fc5682cd8796d57be09904043961d5171fa3230674501544e3d5482f510afeb0ee4ba9fd1cfe5ba5527c9c32ff09df579884d4a5b0351cefa07baf40961412348b6846fce5bd6d65a5438821218d677e774828108ad805f574ce7b597\nflags = WeakHash\n\n# tcId = 71\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 1f47ac7fd4585ea42ab08e1002f547dc78dbacda00eb2b3e74d0e46d45ffa8fa7b35d7afdf605b2da772bf54843f15297bcc6f52eeecaefe1c26108c35f9059c8223767c19597f4470de5028b6c522aefc5b61d545ebd6d3312cc092d1fc2a70c524fe0256029d3d357975215b2bb62336c4f4923eaa0cc422a3a088b86f4e0d81b6b4e04c21808a19ac229f2657edd42a6c41e883e69a916717b59fc6980d79884eae5ea918022da28ce2f8e52a2e5dd50d2d2969748c2d97525e672c12113f605b8c4bfcbfdca05bd85285d8fe6d22b73d3b04fafd453cfa7267cefdb5281900389ff53bb4dc3bf0dc366d86912d822410e8f77f33392c0c27fed3659da463\nflags = WeakHash\n\n# tcId = 72\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 7922bfdd4da222918c573184b1d81a14fe87eca0a30c55f9167ad8144ea06a9d22b108a41437b42aa08afac44e7661f7b4c6293897426cb2e960aff163613349b3581cbd3a884ff9898c45c5c213d996cdc1cc119dbcd7e0e99ed08f99f8b69f8aa079cc6d15006697d4a7fc5bcfd349fcf26f43b6f5074db8e448bc92ab8442b27e82643a11842a0dc70b822cf7ae26e90791f67d25a321aec24ccd7553e631bce74888c43d9ecd18e77fc24615ec445b7d7ee83aaf63c0733da25ecd512f7dc7eec6e3fb499d7eee6165c78a4275a9e6fdcb1b962f38c8139da5089565b39c6d73739f84c70ed60e2c83bb4f351d4c87cba2cf6c68b9879e283b9c5e3de1c8\nflags = WeakHash\n\n# tcId = 73\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 8a7e600a6675a06e677ff1344fd53a8dd2b99fcca40c2ab799636663594ac3fe2a510bf1e3ec4ca9dd28cced48b4e8457ed74f4ec2adf31b77ff1bfabd0f80c9ab4688f15630406d8ca31edaa3a3cc7980ba1b760cfbd3ff9016e1f3fa0c34cb59378b0f3745b451fd3e053c8711ecc41feaaf350980532a7db67afc35f00da1f191ff4f66b8e7e27368bc26160f540af784e8ecb38e2dadf4be82e4b761626c5c06efe0dada642eb26f12d1ee96684a5ef8e5feeeb0da9ef432647336e4ec715cfa260a8727aec4a080738086ad26b51355b8bfaf1b135e97d108b36c73b436cc5cb59593a7ce0f0e7483152319fceb37479451eeea098a8eeb0dee19756e03\nflags = WeakHash\n\n# tcId = 74\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\nflags = WeakHash\n\n# tcId = 75\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\nflags = WeakHash\n\n# tcId = 76\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e4\nflags = WeakHash\n\n# tcId = 77\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5\nflags = WeakHash\n\n# tcId = 78\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00000bb9473d3a8cc4abd63c6f2ac13e278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7fe251\nflags = WeakHash\n\n# tcId = 79\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 0bb9473d3a8cc4abd63c6f2ac13e", + "278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7fe2510000\nflags = WeakHash\n\n# tcId = 80\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 0bb9473d3a8cc4abd63c6f2ac13e278a9cd1dda844fdbd13e9b77cdd52c1b05ac59126e45d276777e8b1bc423cb261d29675988954c9ddc38bb9a67bec5e03e1e780915333dfe494dd8a4f0bfa0d748805885c389d6f7fb6f786c58d21a468b3589346d70e1153e29dcdb91dec8ac185501efea247bac7c63e3c546ed635e647097bae3b8ccb992701a75d209c439c5dbe8122da616a4e230bce08f541abff854fb93c87fdde0fb457c44b2783568bcbbfbba611d8e984410d360c4ec3732cb69426a94191d5a0cb33149b518ded86864706c723b27228d74836513191cebc790793e5809287b0279e7bc82f266d437d192e98975960d0014dd02e172b7f\nflags = WeakHash\n\n# tcId = 81\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \nflags = WeakHash\n\n# tcId = 82\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 3598f87916b45e657df63a839c7e544953c0039477b396a276d8df752b0a98192a10fdf431033353f8565c6de1b268f4ccb44c00ce760c67e97409271c55055b3ea885d742def2c6cd32f5fed077193d12bd48d78130353ad4aca34d9148bfe80d8ea455c3ce4b24f70131908e1947feae311e29e0ae9d1074ba73124568468e34c8b073283d16359c530ea613adb4de2ba94ebc470a57055571ef9f575c068e00de09b6d1af2051b93079ddc683090d4427847b4b9ed63a34a01d9aeeef00524278ff54b7d2955ccae5ca1001ee7588f5a21166dde7b2941a6136b38d374aac73752bcfd3e700066b2972c66cef76a48d81811e26fc7646974a149708ae2d21\nflags = WeakHash\n\n", +}; +static const size_t kLen142 = 59654; + +static const char *kData142[] = { + "# Imported from Wycheproof's rsa_pss_2048_sha256_mgf1_0_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 20081f8894a1330c4d503f642880e3c30e398fc6235c24f1be752e2d49cd9493ac0cf999e275c4f89ff08f0d9ba4e264a332525a616d336bd9e822f41ab3f4fae2f48ec66c2e52642ed93b7cb944396fbaa727cbfdfc1f20aace99a6f2a74475c338f8d9f22a38cb5bc51752076503b3aef1e65e5a8f8583d9ae7378ded038cf516898ad06beb90a42b85764526fcea44f74258fa4efb1da253d337f65619181ceb832dfe285ce78ae6b15f204e23bab274e87445d9f5df97f41dc8e3a97736b62591d075744b2552f90bcf1b1393e1e7627ef1f985f2bbabd52e43a35d0ddf4c67126e391f922ef7b1bb1911cd6e1b303cb2910dd70672bbfb62ea4eaad725c\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 4bf16f098701d340c438368e658ed8904d3a21f7714c02440d7476ead132766b3d578b325ae752f906873af1b795585a2a0d0e6788fe903321b2080bd0dfb9de42c3be41aeff37e32defdc0a75f12adb5b9de4d067a920a720cb16cfaf56d7c09d8ef384a8aa106545229b540c52b49ecc9d6d14ea70480642b9cd0330efc005502e4c38b96a36456447ce2133df78854307010ec221305dc90570252321e06c1bb01d75100e85e68326fe92488c0c5e58524b10f8ec7458d887cec254d39b0bef921ba31fd5a117977f1945fc04837727456949ffdc9886f21071186bf32dfbd9c3cd6a2a00a1cdd5fc3c22f4bbaab92aa85116711f1c53754bdd2bc384f2a8\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 2b3155b14971f79c9e3294723c7e41ded41af709f6edb2c19f3526584aaa1ef2de2e7a8dcaf5d7c3239f604c421656dc58e8b0852f7a65cd557724a9b2a17cac38d8020e939bfefec5dce0d8993e75615b974944e4c4a811e40db63f13d2b626bf26257a706a7bedc863d0100b676ab70d4a4f6eaf4692e0b69ee4426cfe7cfc3e92d93bb804569883cf31fb282efa5a81ce9f6d9f0ed79251ef2a0b596f80e0eb96ede67e30457a07655d777928b898ed1679046673e489d9c6305dee05abfdeba7357099f9cffd00735165ddc39aa7355b10a8b8612dfa2f836fb9f5f89f1407365d6b39a39e89c6647ff9da5fc6f960306686a8ed8e2ce12cc7fd9870d576\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 501c8119a0f8aa2139ef5e05adc65384fa389b9023532171d514651ff48677aad546326a2e3c02b39ed84e5b7e4630604f2979c1fd7bf37da8e0cedcaecfbea6f9c715141a1d052529d0d0fcd71eb70867e2704377801a0ec721fc59fca9d8b1b08cd9ae3ab094f5bbe2faaf3171dcf1712c534bbc7ea802a2a72d8cebefeeff1530e4081b85a42ae38f630f38c1121199f2156e267ce2467f9b4853dbd29dd999aebfc402f2a0c33b8c1b8022941e754b7a187df4c59633dc6e76cb3200e34acfde53a386647833dc2accf244726fdbf440cd32503188a291e5b0678aa729b539c1f5f97e7b788c0c20b88d90c90a3bf33300d181b9ae797cbc76049b43be3d\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = a17d67937354c7fcba18dd5383edbf2f0868ccbe0a316876fb1c4fb14e7f4c048ef5ded5d01d02556cff0c8bf081bd09c46ce4da156e9810df195c5b65ddbc3025b84f91047049f205341ca8dc55e440bf8d9a3e98c231bb74e71be019cdf451e962d8b7e8e6d766d3be430c7596ffcafbb785e5fe8987ce721ae228832c8b4fe0b0071b0e5c652856f785695f70cbb3c62394a8291ba5f587d4fd7bb448649a72261447aae6a2b750824d400ca402543c8bdbbb8e7c3b44cb7085a83392346abe999ea2a5ea15e9eef6bf08a88096ee4e532369f0059285298b387a428e5e34ed7296e0b53d34c5e23f0d3c12e8a2d3132672a655c7048bdc0c69b36cae602f\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 64c26d43b028f284e9667d5951e70c75e611ae2ab876f66ccfaf09bd54a26dd17983d993bd4f5270537f4c4b2e48695eda28c8c365486b5fc3bde4049dcf6fd722e634fdf5571d29b1e156a48b0c706d96155d86c20dbbb1a47c7e54efa15b25d76f502b3069e2514f89d9bdfda9bcda02301c58e2173cf4f3dd49d8415802c11aed78f031e8e2e50197443e5fe9ab55afd8deeb7b5db8ba7a7b9fce6b7d9eeab9ef25035742d076935c059d076b4714127d408c9428a90cb9891a151eee8de7d0cea32b0ad2d8ca4abeb0521b296b5ac08f7c53d5c85e47ed828e0c11468d6cb50bea89e4b455936376bde9f22eb98b3e2395eedd05d1def38fd5e082ade3b0\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 08a900c5c0cf38963b8d47682cc7dae9d3f0a78e571ee5bce658154248b0084ab96a7ab0ca8c6ad8d6fc105040c9de8f8df61c1b6be59a5b899df586026e4b3ac1531ab09b5fb5026cbd252c6a548fae9ee881fa382d98499fb88c2b061f560e1daf98145705054fd0ce66d8fb2f64ab160f4bf1ed1a54cf69382afb75c71cf4c38bfc1603653af35a7ab1ab7268cfbed88bd4e779a8811acc947a21b059ea43c19786f370076360f4620a486d6e0572e5c6c796604736acc5b41c6da7ab2a40630bb8bf572ae96c9bf293580021d5a0b42a196c74b80b55225839756380305203b2bfd7525618b402d5288da288bb3d78deaeb26fdd432b2aac746c4fea8b0f\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = 29b1c67e4be642cd69e7f38115db51d963a54260a877781ddeba5fa6ff2fc0da182f8923bb9257e92989438392f047943f5769ee057c7162c71cf2c0147ead670ab9ae2c1fdab604601a2dba88483b2d3b1dd530aaa17f7a056f1dee49e0b967984506bd39f2df29a06d58f159465973a0fcf1eb5890464863aee92a4f3938742c876164ef95cf34753e9926ef87004d207b9e496922bd00dfbaffd9ddfa216a4b7bffad0d9608e0a2e8d22e41a514494683831e25c24f032d1bfac19d193c4b343815747a254f026313a6b554085921c6a8d0b362a7e75f6419215a5b9d4b7b872cd952f830426462a547a475ed3696bb977223c1fb5aefccaceef99689788f\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 12a1cb80d9ca2b229f85c7aa1705abaa6152b3fe1c6ddeadde2de56f49cb5d5176c91bf9a12a12372753d0b657fced52a8c6ae88cf6e84a358b996fd06ed0846dd685b800232177f17d72da5e817caba8ec9a1f08ec7e015aa2821a1f9777ba6a7d0950449254e5bc5a0bc63f7a6c797fa5b2d30e81704735f8dbbe1a6c7c8db18c142b0861f8525b66e4c55090377b08350001b18cd27f6e1be8d43b936883f7e057016b78f6f810cfbc19d394909040844c9cdc9ff5c8b37327feced820f3dabbc1f597b2ed353e7bbd3d315e9e02124f98b014be827c635e13f284c1dd5f5457129d2ef249ad12659cfca95646314abbbe090e12ff4480a50e393a47a19be\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 7bed5bb43826841053d23cb2f574c687be827e9968b37af248db451efcb818d0bb8975ddf7407496603281c5719aab83afb418f496d8cf26e91c56974e65b382f96a206995dff1b57839f7208e338e86358cccaa30cff9677ac0a7afa48e8ae3e3942e36fa3fdfb47db4295027e0cc4e2b98ef1db49519b316ff4bfaac246391691c7705acb89923d39981388286c5969bc42851788872659019a3bb05a72fe815ee17dd0bace92a934683e019049669ef285625b0bdf9935befca3a0bf6b4154d65b62a83597abfdb0ec335c2cebfa627918ee28d64ef0debeab27e9efe", + "dfcc557789f44d1e57127b066a221e11f4c0b146293d78d72a5f899f954b5dd37c1e\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 38b09eb6acd2d2f0e083f0bf84523a475fb5519ebcb8a5fc2007cec2ca6f01b14e4332acd935b070140cb241b4255fa097db2781b572866b55aab5684d73181b4c911ec6e72b3c267c09469737ea36eb2aeba743c29fc4ff0c82b3002ed8daeac313d2ec4f7d9e707ec334f0228852eae8d58c27e1fdd1dbf8d15b8a7b0f824eb4f2c0191924749e2af4adc0a0ed41978bbf390e31860068aa8db5d5c7c7e86b0cbc9239fea65bf0d9b0a4d7a7058ce6e423858d3a0956c3ac3af7f408c7926ebf86d47cd49de364f90671afb52bd7d17aad00833ec79e43401ea2437d0ef7a89ad35dcf884121bf91ac17df17163ae19f084398ca3abee47db7c111c81bdad9\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = 495254a0e2eb9ca9f0fa281cc7ee5031ccadd0ff52a1c77dc7fd027f54319258dc0a4e4bf98d13711a4d9ab0c1ac8d67f98c04747ae6b9ef95e67c8671d7d9a2a2bc5e58b1b863525bc10c6fe65388590b96f246c58d118f03bc673b87715db69385907b5ed7ad576b452361ac8164f9eadd250eb445d697ce7c0bb4360c65868a8fe06101b56f4f7cf82a9bc78254eff974366f2ca2f7a17096b05b9bae47ee572eb60cceeaf1e7b484e90b5b0a8ee6f1517d1e694d23a2f9d33ff47a3acb7c9e93a6fb9ed2e994773caf5a8ed3453554807124fc4a4a19fad88c70d5d5d90969e19acd4c1f10b87629dcf5de6a7441f47ea4cc4b84ca6ff43e0905a73083fa\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = 7d0aee24ec62cd2c6238e49dd589ddcc804b5122f57ca8c2d3f7ddcdf1503c3eae8ae192a0057fca6ebfb3231cb9aaa380bf4509df5c83204cc61b4870e4233616ee7097507222c22010c3f34b6c75e4a341920dce40e4cfb72206f00dad39cd0786427575cab19832b64ce9dd45bf8c0023b5b007544c4048eb06b0a73e1583db64b9ae70ca88a7a169953cb207acca099876841c6f0ae9a4cecdee900d2ef1e5559f8b496467733e44bdc6ce8f222fce5e99ae3bf2ee9f6821dee0f1a1fdb072e92404e325e06f813d70df6525e76f0ea5934e53ca6aa12160f6a92dd9d1f5a4a61e47f3f01f297f0470c343df4167588b81c5223908b68c4e2380d95fadb6\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 5d822177791faa3beb1493af760b50f62e78f14b3eb278679d59dbb8ff0eca8b4f4f90124b830c8d635e90b86de97d92212b1e42aae57cead0650e7e9204d3d204b43d2e6376092d2b280acd18398295650dc94f74b7fa7198c0868890078422e2ce12d375986ef387a82b188a231784c86e85ab0c630f7876c652e4f4ba9a4d4dc3ca70316bbae3399f82c3e4e24983143baaf4e176c7c0ec1cf908eff9c15b3468fc7a44f6bc077cc3467e4ec3a50ba51858ac9cf3cff0c99ce5c963ebe5341752db2cb6ed5980544056d308c7c74fd14985a414ee61669bf4abf48767071cfd0c1a1df84b8dd4dfca74b342ec820aeb73a5eba0df78b85a568dc36ceea5b8\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = 978c8852ab3a09c6e28f627cd917927353874cb7b2d6647f3f5889ff81b048f4a4c6073ae6d99bc7354d9e45c805febe5be5dd3f95ad14513119169a6ac7a6a5b88ead2171d999f199b324251566066f8d9a3bb51a5b59c799858d459136341ab774480f059fee153bc03e37cf676b1db4abb2f7979554fb635200ce1c53448e5dc397be13c4d8f8bc2cf2117a0c4ddcb08926fd5a1addd193d0c1f2167731c73affba2c7437443d8bce828540a3d42f03b590dded0958aa4fe48d66d3dedb0697f366b3c7ef9bea8c2b5670a31c41df21828a3a481d9e42c93ef0b5cf43330e6356021893078179fd857a14c437d8b8c66d4e4efce1369f6945c6bf878508a0\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 132228bc781249b547b2543f004b5807c05f6530eb685a0a3c6b7ebe5c38ef39eddedc5cf3f98f452ffb202e30dccb8f14c252e673473ec7bfeb0d9cb16c2d88ea166fbb69eca16f7e0305e054f158ed24c74d02328730488179254ebd63972f2a51c45f274939d89bcbad5df3d3961115392aa483beba4f00e55531550f6e167da38519273b3d16555dbc286979b40cee6e5e5559cdfbe6bc208b53e6337400821c43646f940fe624466834b335b3bad27b8f298dfb4a1d3e6308a5fea77fd5347abbd2ee8e708ca2f8719cee6ffe9aa91443fc8ea50417d5f546c223fd07a587ac547a2e4b3f686b7034c06453db15fde31bd1b1c76448a3bab5d14c7ff94d\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = a04a78f92d6693c9470e7e88690e40a4ae8aefd0af1845450690337321ce5b5e125f981b768e9e0a8a4a37e687a038da1d2c21462b962b3cbbdeb170227fd92f8e22e99e6a183ac68c0c42708e369559cfe7a1bc5fd64ac71e8ed34ce70e86336503028e6174b3ff2b9076f4b6b84f050fe36ac45a0f1de677b78f42908de140d1f2a6ec887a4fbc795f761f2f9b71d45de9e6ce7820bd6fd1a53f0c1516e3df5b31486518b767ab554814ede6270b417d53480d82c415d86d40355b405341034da2949cdd7598195975236e264b098822aa8844488f16fcbce076baff03a9aef6a2aba155ca14fa30e0efff4c968eac265760dfff2056f6b1079dc29316b629\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 221efc61ab6dd3044cf77780d379c01af65312951e5ea5bd5ecfafa5ef55c5a54e8bcdba38a7b12753bf049e5aef8f2b71796429ca9350ce820a10c7042dea4beef196ed5ec3a34cfa534e711ae8009631a6a3c6d87b25af090cabb2c80e14321763fe1545bfca78267415fc89878e968283b216af23a9a5e675028e62e1e2df117737c773d832c705d3ed36e680f1e3b2ecf06aeff69e0072f951a34449b4134e9e139ffddce8c38b2ff0d20a314b45a9345e3ae6e312a94673605e5ed8693002d60629c60fa54469148d5c50d80ed8a1a0d22e4672f9f3a2eb85d298928e4fc333fd1e0ad5909e65b8fb82917415473f28a17a618c07903e8acbf8015e1c81\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 55b67374c9ef2ae609f70bd1c805f5c092278e8a2e45f049b949bd57d4bed44dd9880cd59896de266e3a5294f29023a7fe376bfdc35bb92d542f28f7efaa37d4f32c297cef38c723b27cd1fc0e45f6babb61a27547b37a186866a9c725a0d4253e35befebf4f47aef7cb1c4b35419b6e024e0151d47c0c49fc3bbeabeb75f2dd596fef0f8c9c275f6058b9130c58e0266ef12e0233c6d16f78ec5ccc1e8c7e03e3bcf12be33317dfb660cf6d3851bb2aeff5693fe1a6e4b644e0fc860a3d6c2100009f29c632fd9a579a6bece04ed27baad3c5d62b12ba30372e5d7bed23702c146f4a644a6ca1bc9b23f29cfec3b47f7c92e9fef471b9e2555700ac3c2960b1\n\n# tcId = 21\nmsg = 33343633303036383738\nresult = valid\nsig = 74af7b301b5b480ab70b7af2decd155d7c6a280ca77663c276cdbb702f7843fc3b0e3d54669fa9b99093f323533f3ee584483c83fd2f20d2d291ab8482435fb53dfa19a898fce36f470951b4808ee4cdeed273546db4e6db79cb2a429c04c6e0e7661f6ee84eea57981797a298ee37ad2661b002345afc0fe97c6b2b955efe1d753f3e26533b43c0ee4881e6e7bb36bd56f061bce340a9af0a679bb29f10c3c140ab6a5d3fee7f5ee90201d335a09cd99d71c3fc4a890723f1992f18ea3fe672ab6556140fe4ca5b16b168736d58ca8b0e2be364931a1c2d63ebad5fa3a075a889ee1c56d5c128b151ba55a0db4139973143182b6521962ec36a81975b0e4a7b\n\n# tcId = 22\nmsg = 39383137333230323837\nresult = valid\nsig = 3ed6a556e0d26350f61ecc896550888481a0e4fddc0a8db85ce3547bef67d5a4dc8ec653123b8fef836e6d16187c746042d8eb68310545578e7aa69d676e2fecbec00567e67d9f90bad6ffad56f2ceb90d06cacf8e7360439542a6773e0b25b15f385f356f6303348177e662b6ed30854dfd40b649e98eb9289e964e15bdfad7a5596435a2c2e5f849431cf14d2b3549691e642d5dbadb128f663fb06f84ae233d8bd81fc7571970de9c5a14854ec03b3b424aa5091c0da9a25020d83ee439e84898411e977db53a9bcae55985c218c1b3d08a964593774f9120aea723683f8ebc9f095598a1312259bf1e20ab6a79928fb22858572bb11a77354383713232db\n\n# tcId = 23\nmsg = 33323232303431303436\nresult = valid\nsig = 05d975ccb92859e4322c7712119877401618268ba486a05a525ce5fa879c5b8cb2e38171f1b8c5badfd2d32b276767389b011148e994c400b8dcd2e44919b20fdac75ea3c5bd2e1b488d285e974569932c418741da41ab229dd65ca09cf281f42e231c8657623dbaaf7b5d875aeb7dd4aea1fd15fe6a0b7effff66e9bf979e70b0ec28dab260ec68d679b13e76dc1f0a82a0c598b3412cf6a2f306e8e5107698d3c54a7ede188ff396ecf7e153cbbe322e48de7fb4c8eee3cde0cd35615779ce24f85f550a35d3d31a6ada6175dce6346f2b4c7ab0d60d4a95500bc54eb5a1da6028192d5a5372f48dbf704784db5616fc1e690f7ab3be167b5328d487893c3a\n\n# tcId = 24\nmsg = 36363636333037313034\nresult = valid\nsig = 40f9b74051d6a95fdaa25b05598b422eef97852dda217d51b591a36937af45ddf5e06f3eabfaf17610e55490ed3e00d11c8561f7cffa25600fb9ef7a5114399415a933eb6811ae2142351cc0621a5d39ff452875b1a669c666c606e4b817975b966635811694c8a920a5cbe8300df00c0ae0faa1a7812912daa081c7204af6eb7f7152ec82b45b504dc3214eb9ec5b322c58771410dad121f5cd887bff9976c38c3cc9b1a44d3683e95c76e6a83af6c650cf6091b68e6ea2e6f28b11e0c664ad132ff098d0cee65c8f0b436328332ca0bd1048af8de618fdb494148af8d2d98ef4819fede564476a52fa2b7d176e57f0fd9e499a215de6b7737278d7e6d95a2b\n\n# tcId = 25\nmsg = 31303335393531383938\nresult = valid\nsig = 94cd1d5b54a88649f920e1decf750e04c8630e32d71810016b98818bfd0d978bab2725466c1a826bdf4ef42b115b904e328ff1c012c704865640af61aff3f7bb6a3fd667ed2c91ebb93a0232655360807002c2f05fb64c90f842b7bec11dd1960bf85f2167b397e0852b790c7f193d6e7f264b2a5024807dd5d76d9487ab0e422c9216c693aa1709e56b3b61719c9d6b35f510a721d9471f83ca1a6e46f7c14ad0e4ab4f2513a389e70977b3d7d9917a13c25c1a439a75185e9aab64ee7576db623e514283b2d94e105f8c39acdfd853817275e90541c67812e40a79fcda5a2d32d2c400d1193f1b756c98e8d3212575dece26c44792fe3fbce5dc56d0248c5e\n\n# tcId = 26\nmsg = 31383436353937313935\nresult = valid\nsig = 17da6446874a87e7a7ae4fb637", + "c191db1d13c20befdc726c8af26a63b78bf0c998b82c25a125674a50717a849ddf004ba0f1400921c08a37a0c56a728322a2069dca4121c0c47c437e7a16cc3592ad5441a157028d8cb6cf7ce5b8582fd525a1c5face82204e01fabca60243022ea4d58126fa33170a6053ce2fd53b46b165d105151d5a3ea7b0f2f019784ae87fed529d771ba5a6a6ab60934a8aef5d4a4f25e5ac91b64e47aee095352ac6a9f68f5eead836730c08a35395e0a2cc1aab29b7e1d5ef238e939e9847b90d7228b1239749e79c07394acf13aa32e349c23731838b241c20f7ebfa627f96dcdf395b4f773c74347ccb966ff8a3122f6d6f1192eb\n\n# tcId = 27\nmsg = 33313336303436313839\nresult = valid\nsig = 0169a22f82d7c1fc21caf6131d6a4002578212f3beeb185a832408833bbc246f05222959e90849bd41207d6d74a48e084b6eaafaec78c9c0aad7a9b24624e8c4c66bec56fc86d2ec31762a7498dd48207a16b315c68aac94662013940307e6f6dc1d2d512885198f288adbd73b3109300b1f03e137b904f743ccc7b90db246c7ee7b18c1b6b2ad5f061496f8cac534b58f161e2778e8f73db6f455aad62f599cffc8ef16a462bf380e0d09ad8295e7e9a7bafa1b7fd84166dad936373b323b525a111d3b34e5f918358cec48144a99f2c614ffb23f9a3c8f9a491f8a7fb0825dcde62b40b9b56fbc816e21425fa4b0621d215fa019d293107a547d55a1f552b9\n\n# tcId = 28\nmsg = 32363633373834323534\nresult = valid\nsig = 78b2098126eb13ca306f31cb64ba1afc17e053580b68184a029d5ad47ec8029474a64dccea67ef1d01b4f95f1c2b416d312437139ed1977ec80a9339bf925cd2f2c157dd3accb47d1b85eaa43a7f2f6083e85084b05d80336b2d0435315d0124ed155be0100a98f75b9d7596f3799cfb3a1b7e2a8ac3c805da8da5844a27b04486f80f1ddfd463ba9d01a850096a600346772d8bbfc73c9932522687b296ddcf2892f37b2a9b90be7dcd9081df2a48014f5bdd08c114989a4920ead57563c4615874f3b7707607d6257614847bd99429642a58a305383c835a1bbc2ea8b443a2aaefa5c8cde459904016ddf381c591dc238e10a8249c7e1caad96b42ea415f7d\n\n# tcId = 29\nmsg = 31363532313030353234\nresult = valid\nsig = 37ac7d0088f21118f5f9f834063d56966456a9ba840089a1b1805fcfc808ff22cc9d7b3b3a361cbf1c2f96c62f694b47a6e9a19f2adace721200a52110f34b9c95f45fb4af9c250d0472018069d493847fafd468e8f50b4d2f1ad97e10015862ec02822b1e17dce3da1715f6f09fb89b4f7d0c35b8509445f770ea6ec325e933c651dd4d75f5702080ec3b03c48b380b1f202112eac8686d3e6e37f2685a6be8b078584533ae66855cfd6f6b758e4487bab19a65a12245a6f177fbfd861c94c5d30b6fbf750d66b682f98e34facf4aadd67b4db4463cb08328d8d59357895da55f1736c91c62b2634a66ace8b2ea44a86e5dbc09aad6998524077a68b9c1f33c\n\n# tcId = 30\nmsg = 35373438303831363936\nresult = valid\nsig = 6d250a920de5965ec36ab916ad585ef21252355f0629b084a119f7e9b73d3de14256f612fa92e3d658efb3e53343c0edb8b7e55a704dce2af2f7d861a404d1554fe19aa9a6b9aa8a13897247a37a2d973cee58c3608c94789fb8ac1ce05d6f0c2c1c7b8baa7baa1cc8d77d4b7e911db371038117af95b1e240ab317031bba83686b8ab99d75baabed4873fc72884794b3a3da905da016ac292622b8f73e446f46a992cad8d2b9c9b4d50381f58de58da58a25ae341b11d302e11db18d2bafe673dea1093d67f7d1e4919abbd43c0c0008b8eab089ec6bbcf126fb9998fa8697ab48cfa5d90ae76eafdecf18037fc3c8c5fba02e37ae79b29665c051e271f269a\n\n# tcId = 31\nmsg = 36333433393133343638\nresult = valid\nsig = 97a3e342aa73973a4b993873d1741dc9ad916f5de63d78f8c6a7f7b2247e2ed62a76510d0e25e6a27ea0e2ea8a5d8e38381528f913458bf6caeccb73fe2e2ae3830d0c3f463859bfd55fc26e5bb16f95a1517f445979265fd09b17033297aa6d5336206182d5030396176ed04b0f6b86a9ad9d180c17f7afc6aacba9416f0a67d5f7b8d93c994b719fac075389f83eefd9c9f3ade146632917c26f622a1313ef470f257f67f9fbfe67245ec253959751a84ae84c7a0c06129337645dfa36c65ceee8fd1ccbd021a51781f4ab8398af3344b0a3b9036ed4b9d17f7c572903391a64a8c45c1fe5ef9da607a0a7ced1f97a8651b44ba4f037484626bf770d1765e1\n\n# tcId = 32\nmsg = 31353431313033353938\nresult = valid\nsig = 6fe1f5e3f11dbac400043505b0b331c32c28c37b4d3cfd9bbf959b301b3bbc752248e052b5fc3fd6c80b2a8175440105bf84904d2fa9ea763a31ba532f7c528e15967f4858c0a67fb9b91b0ed43926f3bbb90d970e8d81a3d2380556e63efe0b49ff702db5c1835adbad43830a983fa891529732104e60941c03fc8e267c0a889ca7d29d615811d05e964faa99f81c2bac929b26b0825c35abd7d3a36c09568141a53853760d632446d4088d032b348ef0942b91ebf1c68bafc91bc54863452245af96c00250302a05b24723f7327ef420fcb4427f40d5e33ef4c4820e0a7df57c24814b6ed8bd61de28c65976356a3279d52134753e008f02cd9d27bcb6330f\n\n# tcId = 33\nmsg = 3130343738353830313238\nresult = valid\nsig = 9ae78de184d5b7207e99087c84dacd1d5d510119a25b43155050154c1539a7b44146de65c835426365c6d8778c29e6e7639765da4184dbe09e8f5946eb2d632caba6e31eb2edfc30016ffc4e3b7eed4d2d95cc563c2794d70f8ef60ff3f77f876d82cd075bb2fb6ab0d027ce9dc5f3b26a3e93c8a2c2e8bceb14f9eb45ba4e1095a19f441fee145c60df21adf2068fe566dd7926dade24b31b71f5db3d4ddaf6c4e44bee59e0d3302dca6d75fcc87952cb58555c7dfbec53975c7e1cda803c2007ec1e53fffa363e69613d17f870c2674442840d1005039ecd2106921ab6ebd9d96e21307a80e994ff85eae5349f4b426d458aeb22cae533e46724cfa5f2b442\n\n# tcId = 34\nmsg = 3130353336323835353638\nresult = valid\nsig = a288dab1bdd7f4676d1bcc84291a7784be62f001c5c1a83ad575b15cf56a868600badc95f22954f9f474340d874d3d56fd23a8a85ee3f052c7be5ca653cc2fd2c1ea62f02c0c5b653fc201272d432671059ee279398e5ad0c45e735eb5c03a2ff9c82ab53d1ac9225589ecee80fde90a036e079e45b33b0b4f0e6afc317ad3744dd65d22607cf31dbabeb38b0eb935ede4420a1d8246b80da217dbed5d1cf6a4cf88ac03a3eca307bc7af4cdea63894f676ef253f7c8e1e7ac1f67fb45abd2aeac3ac8899a73867af86688b67b3ecdf9e6380a84b99b98d2dc4e65682558d28711dbb1288a0351cef187f1edda14ab57a8fbc71fb60375e682a53566eba5ff0b\n\n# tcId = 35\nmsg = 393533393034313035\nresult = valid\nsig = 0a5339301400f505424bbd72a88355759ce2b8e43c97c7dc6fc90dc4bd339dd397bcdcd706ae49df8d5f535f37c4275e894419345bc01a15a11251ac2b01bea9edcf093239b6bd15196974ed38ebddaedd60e6ba3ee67ae005c73850ca8a13a1ec693433bba8eb40dcb23f33a1a6fac64d634c9363f276c119d8e7e7649e15fee7c0a039dd41ffd5871592b7bcd7c3052b3daff5c998442f788f4af43ad032f257dd4fa0c7c67f078d6b0608df1a1d3b4948327eded47f9f4ed16601a6e7fe86ecaf9721a4391b01051c00576627d44f66ca5657236e1f5260a31f017c6dae68d17e984997e1892626dd97f41429a914a7669e650182845b2614c77f39267187\n\n# tcId = 36\nmsg = 393738383438303339\nresult = valid\nsig = 8383a989de89656ec90337181cc615385f691622af128860328520625bfaa1ffd2792fcd8395cb8f4ab3986c00e9d43a0db678cf1cd3f130e95669ee3160da36b99eae9388a24079326e0c3e87eeb7fed2ad444e1b66d3072f057167ee967e9dd08dec183c4bd55b07280f74be43445a19aa0659f78fabcf56e4bbcf3927e308ef773ea6324e5b23fdb46b08057a1a63272b9c29a0d0ed59d4778ad7cf2ba576ec19d3d81c869cf762d04260ef805a35055d9013b327013da7a898b6684275dbe5057b833d738cda3f018c100d63848959e15492fade26378f4b39bed4bd56259ea8df023f2c63014fad634806f6a650b5e68fb35f6caf198ed09dedcfba9da4\n\n# tcId = 37\nmsg = 33363130363732343432\nresult = valid\nsig = 23b5e6dc26e10e99bf0405b84347e1cbbb6af4a8d0025d0313561c726de0268ffe4ff7b2e20a96e4bd699583281aaeb10b592e207e1cc5d8fb7d5c2c1d8f034467ca090ec4885e0a1b09dea61a129c967450cdb5984ac5dbc852893afdf333b5227df2f023f37f310f13dd73ecb9c864ccba1c93f6b7c4934fd817e26fc2cd607dfcc6618b41cc571603aa26dd4fc180d5b3ae915418d35d6476dd34d4612f50cca249ff661fc5a2bcd09a806da0ff0463489fc0fac10cdd41d4243766584ae38e99c68e9abffe362894cf5ab10100dd3171c6cf63d93da5f8f6f7d3877cebe64f3afa8bfe78f4436b83f8b845ffd94f9980d58a743856b6efddbbebabd31d9e\n\n# tcId = 38\nmsg = 31303534323430373035\nresult = valid\nsig = 9f8a9abd119e44261097a7fb120fa7edfb77418aa3a5498abeaf17e2453e8be26a814e7cc1a276a351ae002ac8746f630f7da9459d3fa4178f8ec9756fa6debdf4d55814bce8f84eab38dfa0c98f81448800755d08c3b9691e837a2aa052b5ca412e2bb8156e4a3aca3d35c9bd447d6b5b532905c60e70dd65f6c79a28f236e3a0cbe4f734b2a3b22fb733e45038820e087bdd429b5b54b84a6d1210788bb558f0325ecf8ab7f4641bff09564f06af6d792df988699550d35f2197b4bd7cb7eaea64341ce82391ab8798c1ef6be8a7ed8f2e1dcaa331da2844c06e3e056ad0ba22c4724ea7929f57274fe5a2c462780b190d5404c68c823ba233ae35026a6e72\n\n# tcId = 39\nmsg = 35313734343438313937\nresult = valid\nsig = 227fb42cb5c3d88b8b71d1a6522bc5f824b2507d2998a94b9b972cabe4ab46eb47cd106f79c17d4a0c59c7b74b5b3d03180ce155a8bb0920e987fd2bbdd64d91ff3f57b5dfbe57f3989ce4aa9d9e3efafc501c4437a0b14e2983262a61b15a1000888ee1482bee4a1e6afc92bed17f35a32df67fad28979775cf0c1edde006919566cfdc3657c9ad2a82d2e68a11e23f01f4d8faff873f5bd1609e3b901ae13f8a599d42d2fb5ac9f9707d730921c5981cafaaed86d370bdc7585bae3ea4002c50c96b195283592c5d577c53627d946afa48d10e8c89432f50210f8e0c99a23eb089559390dfeb472db740e27ca255f0764c7a575d3909c24308f187bde90fea\n\n# tcId = 40\nmsg = 31393637353631323531\nresult = valid\nsig = 49b8d35ac6093bd9d53d5acf6af1a2f294c13b0072564931b8e69e11d7fbcc7ccea44f5e52f28b63b09dedddd5766515eed3ed3d595424e70846ba96b9bd12781715ac7c405acf97a8a735c8a9d274b66a54f2a24138fd9006b2b5", + "23d15f7d4bb45852ee0628584817c3211de2e62811e03f15060c1cdc5f6f7e0edae78570a53d04e3799633f8e7bc99a24d32f307963cce9e9f5e6d2234a9dd9a8baa39d9058d4f9b7509ae7eaa776d734da7cb7ad5148b2a069950405f0f2254d47e9e703a40cd517914bffb38fd00f4873056df33ed5022ea0115bfabc766c5ec8d5bbcac2a4c7081e5960bf1eb364d8cbcebac11866e5e7d1dab2d0fb18e46526a4452f8\n\n# tcId = 41\nmsg = 33343437323533333433\nresult = valid\nsig = 2fe90988f9e88d1cacc4c6cd2594c0d9b02513aefa1c82155bd7ec58e086b3d808b8854119623f17905445dce9a000f01b1ef7973db1f91814a29119eb744d51ff943f5541b0fd0a28e2f71d4dbd759cd28f3321325ea0327c19356bb576f3b211f79969fa1bb1faf333da12f2f8297030d6f268eeb0320299419d02afe8b455edf7b11691ed99b9800014aad94ae87478077c35e823f41a22f285d6cf575d1bd409a8af556c1adddc581cf3b93c7c161762e86b006a3d08315ccc52b205b6dfddc4b2c0631529bdae65c63fad31a00ae9923e48e9e96213c73afbeb53b9005d42f9feb73f288e2ab91884020ba8d198a9310b8880c912dce29083efe6d6e361\n\n# tcId = 42\nmsg = 333638323634333138\nresult = valid\nsig = 4348ae89c8e5d03fb94d2a8a63a6577f7ca10e7d53e4898e1cabc0ee96a1c7eb841b984617321fb05b812a17124f311c91ccb948765713fc5fef61f60f6dfe3bc15d1d937763c1f87b3899752f4733b6b740af3340ea0415d41dba82191f9af1cba3189e72c0ba44dda47edb6dff3ac6de21586b15353b54f1b2b2281c98b2334e39ef48691ddd4f1b67c06f24f22dfd08865ef3fca33ec4e113a204e349822f2b4ff512e4f11cf011ff8b6dbf3ab5cce1d90dcbdb91d13f77edb9bffc650f5f42ca1eae855a2f2fa9a4168997522bea7671a55d56750b78f9f66a2d72607722753fb9987acf43b0e66021580c79c5a621d96d9ebe8d24ed9058a67e27519ab8\n\n# tcId = 43\nmsg = 33323631313938363038\nresult = valid\nsig = 074d9bb6858ddec8816beacbf758b00226863d1c5200188debefd6da12b6e7be8e30085d913d8742f1215075639d930cf1671cce3c344cf915da8dc8b8aa46bb753827be2d4e2e7662d266c91bdcd4667d28ccbcd7bde90a4bada2a2296f0d5882ef9c8e492eb94707d0fb394f08dbd0b7177b756bd67d191ca24dd02c10156b5a456f370e745d840ba412136503aa9b4ffd387aa791f0b566d6cad88e7e803d9b0beb83708cbe5607c1650072b4bb4d5aced007efb0fa892c79534f7a38000dfaaedeb055e39be7e17e593b773dcc4b44b37612f9a639a6b94ced87f8c7a52314fae97c7e8213fc56177f9b8b3111fd4e7457482fb5b8a9ecda0e00f7b94614\n\n# tcId = 44\nmsg = 39363738373831303934\nresult = valid\nsig = 9e04804cb316a41d330e381aae555d866cb1be3556004db72eb4a11d11da11060f7ee7ddb0c45b1206d50ad2233141d2fa6fc190c09c92a5be6e977942e2a4f9740ed67dc9ea9e767f73690c908017736d4fea0ad123fa4f9fe84d5672dbaa5fdf758105308709f4c3a395433e994af2890415e60773e166b4c1529781548f1baa7b82340879480a066c3fceaabec9ccf66879ce3365f9b9c04ee2f85ba08d6e39ffaeeee2c45834b6d7e16d942dbae45bc22ff7eadb3d917c4db5f8462e8e6e618f1e84d16eb436d4ac4d07f1026ed75d70d2ba0332b9c21382f86a7a9ca702e855e48a44fa65bbdc7ef5c8760230a2102c6f951c639ec82492129d810f6261\n\n# tcId = 45\nmsg = 34393538383233383233\nresult = valid\nsig = 98f353e2fb80ca884138d7cbfd8243238272d41cd3d209104f5c5c40b498204fd731eebc0f4706e3e22f165a5c989bf0d0d2daee6fdfca4e599f355509982d988dd3061b1c13d612c003db6f562a68dd7cb7fe7dea74a19434db03da48ca84a8af51ef34044c86ac0445871caaf645470460a15620067a0a8e821ea7b50e6631784edb2fe884f16b3ee50eba2d815644744c9b292c5107ca2769004dbf4b42eb7d738b9bf2241c0739f15979a71ad6935ee7ddd3d775b7661513c7761ae448ffc3fc287077d0117815b3d57890ac37b87c972e32bc0f759214d2739c4be9307f251a4f3027a8dbb7e3f9354b26eb98145de81ea8e23aed401f315cc50227b5fb\n\n# tcId = 46\nmsg = 383234363337383337\nresult = valid\nsig = 4782858a9e77c710929f71af2b0199002fee9795161ec8cec449d3b1599a5b0235e079fc4c73ab09fe65875250638f0d075acabd1042ee9f51e66bdb15662a8328583ffb73f3b7f15efde539bef811ecea95d16cac91f30f80506d68c94cbab5b1070050168a96721c9709dc8cabf85ca3d72a9d3c5ed87b4617eb245bc34899e86b60d294fc428eeaf1f86c5474a9e27d7a9ad4588865574f1b71b1d8ae6655baba63a4e579deec9ea1eef1787b427d5f5b77b669733bd6f7f07ea41d6f2c2c040589fbbd59bb0f39ef6daaa28430c18e64d0acfdc072bbda932dffaf38ac4b495da1cecc36ca25dbaf06cbabded815ba6aa55f04db12683bcc4c5fcc5ce875\n\n# tcId = 47\nmsg = 3131303230383333373736\nresult = valid\nsig = 256f842e0ea1dd3dd5cb05cb184cde79ba34c87f083e215570b402ee929a47049427ad568b30c005ef4f88fd511096e23411e927fd2aa85a3eb6e01dee3e9fb5865abb460ef76fe8d932dc08945824011fd226915ee3977475660d7f40b3cfab3c9e7e90e37ff87d2daa834bb3645cd1832f2833febb80a650cde007fa6c5232ab5c9f0bc85d8c2fe326ef25ca040bf95a3e3734f1764981faa5bac87ec64d9b3e4a9867e4d55b313171740e8413a5e4297b206624289f1532c9addfe9f885a6a6caabd253fdd331e762a82c977bb21c8e1e5702f77ef0c2f69259e0027c3a7d8c7c8034fc24fbff14b5502816f4d7fcf1ed750d8be2405186afe54ad9cd5030\n\n# tcId = 48\nmsg = 313333383731363438\nresult = valid\nsig = 62bab402f229e26a535705676faa60d4cbd3841d4f5fd3058e1d5c44a500e872f0035747cb5bc12b972f6401cdd1e212fd540d45aa5fa535140c6ba7f165154ba4b771c1edd27eba097abedd294728447c22ed52518b1dd87212eaae44724e25052ad4bfd0185de9edde0084b0fd35cbb226f53661fc12a14f1b8e31fbf3ddccc7242fb5695d9ae84ac104c29e39391103d15c4cd8ba2498e9ca24a618df21e7cdb904d6de4954637b28ead74a315702e8a14c478d004905d87b6341f84d519aae6608a76618f8ffcad71a70d180d4fe0597ce6044634c5e1bde39c156b6ad3775b00331f76db1d89844c130e9ef5f826b9f5732c9d1eac817d3efb46956bb47\n\n# tcId = 49\nmsg = 333232313434313632\nresult = valid\nsig = 42280e80ad244618478975f9387cbd447d85dbab3e70bb1db66579a2496b0351fcb056a90c5b78edc2ce6775b342c55154687d3cfff1bea1ca31f308b73c2a29191a8a3e1c21c33daa4d3750da253249d87bbee6110c9ea25459b975d4a72f0b064fe15332012133a67c0c8c8e4b90fec93919d4d1ee717994889d62d394fb8090f58c4a07926c67d355d9654bfa521d29fd166fe5f3637226166f0e458bf3196227e262eebc55fc39f041795fc6d1c237f98694e41f128de0c9cf6cef7c1fcdcc61c0c732ab9603598b0b5655a7e39e44274a7049ab42e509c50132542c888f3e6b956c4527c515fa8b01add994bd50a6adf0858505496ee2a7b9a043a8b8f5\n\n# tcId = 50\nmsg = 3130363836363535353436\nresult = valid\nsig = 2d8a127edbcaf50a1b35ae0c7bf20776986448ec5765b15ed7d886117af264043a1c3fde6af1848428a525ddc9f334d10ce6aab04457ef2863807ca674dc0ee84b0a1ab49a1b999c4b2126ded516ed1157db047ba052dc7d9853de481a6bfcdfe2d31439980e62ce20c77dde58776b2127a557ffd8c51599699f0cf267a108378a8026e0a53003309cc645b5176dd611563c6736b83e8e0e6fe0b062f2cc137a415b097bdce66d952fe2bd9e407a4624d1157106a5d7ddfa76b09738c09a5817b545dcb27f8ad9ff0986f80c99ed49bd874c89e8c8d0c59ee3ec04214cbac612e4ac3b25d62fd286a431a57a758bf31eb52d38d13bca1d17074f4c9c28bd9316\n\n# tcId = 51\nmsg = 3632313535323436\nresult = valid\nsig = 15e8fe3e7dcb5ca5c16e1f12fec4698ae28c511b02c40f83555b2bb15b20b7462abe1d0d42b53a58b7f1287af15224a0e505e7191d01f7f3b9a456a5523c56be92c414a8e2239220e6c17056310221e4ec25f86a7a0caf4239fcbc5f704ee92b8be99c86da42ab09c042308e92de00c747f23eb277a9f641e090e46628f744a098f92d031ee3159d0687df6b585198a7985e2917d8723f7eb1175f38f28bfe7454d41e086326a4c2fc16027492d4cda2371d65bb241a87fb264fa2d2516c5ff817c405c0fa48625f540e6502267ecb3e0fb77573361fef5d7460ae4d4a0fd22dc5103d2b749fd7bf2830e22d9fcd8b0827284758be30db77308553855d366991\n\n# tcId = 52\nmsg = 37303330383138373734\nresult = valid\nsig = 0a8e7c3d26834d46dbb4f9d6b9b6aebb2ea3b1b180ae01dced1df03353a2ae598320e1718c9e43f4726cab81b5aadaf77690957ea0477fdb8a304dbdf3fcc53ae4e95b41c27a392f0dfc839fe8698de58890ba064609cd72c8e267b90bdda0ebfab8474d0cef4859aa8568164e72136a214ff9279ffda0e8bf9dece0309f06e2244595d17af3be94c7ef9a1542297e7e6d40f9c4b2ee6b652299ccb20da274711861e39317347fd56f5f13007f31e290430019d826b2bea3354e926a235a9a3e9b68e179de25f3feae8d3ace9b999afb1b501908482075236268596a4f892542c1f05dbf66300c9f249c31c34fcad58fad5d7efdf3e16ad311eac4981f164d8a\n\n# tcId = 53\nmsg = 35393234353233373434\nresult = valid\nsig = 915ee86225d15a308b4f4e7ce13f396fbe813b811d4fe2183415bcdc196fcf2204a34dcf0781526853c41f91de1a32528ee7a6d307a7ec4e23099d5269db7daa3b511d00f74b0dd211d2c76c30919ec3c6062505530ff24fed581f286fd1499d789d2e7a4e25ba3984f2e6e07e26bbc45fb02624ffc1b9eedb8e77e076b0c9a836046237db992c0f4c531336ee1bb9ef75bd6cd647460f8a8cafb313908dfdeb529824eee01d76ced616133c93297ad5066f08f467f2387edf247c68070804a800ace363480161191b0f50ae260e312ef85c2d429bee517fb22183bf2fc91b0f305412da4f3ee20087e0a158d036f311f1cceb9d0bc91a75c0233fdb6b18c91f\n\n# tcId = 54\nmsg = 31343935353836363231\nresult = valid\nsig = 2b850dd6a65d225a55d526e834c55a6a2a71ae2a7d1db1439ec12ae1147b26a8d5325c764d4c5d1e3cc1d49c61a0e36488797f592a1a19c3e200cdf83c1880bb272a4adbcd1dae961a19857915233f2095944b9b96a09aa0cf9971183ef360103698ac049f429600c339eeccde2bf49353c72ea4a243db91bcff7ec01e51423103a1b388e1f750b11ba8be6558a2b0b2216db2229fc655ecfa9000fa664dbcd8299e1e258d13ae59696edae797", + "4eb1c63a73aa6ea12d200352e1c7c2731d3605ff9f1e18b25af13d24598177166dae95033b424f78883ed14c6849d5b8feb526e3ac14f50988e4956f99b34d4990035085218e6c16ced8149417b7b4d9d25a57\n\n# tcId = 55\nmsg = 34303035333134343036\nresult = valid\nsig = 86b22f948dd5af9df65c1d062608393d90d3982d9b3f279865b8d675cf2f46baf3901410a388bb87a7f5dad268d0899feede8222c0e552c91a76aa5f5b4b30b573bacc1787a2e487b990c558b1972069a8f29cad25abb5094e94266218f7816ed9b314eec8289dae61de5ae516d63c58f99b01dd5cd9495ee47a981265d836d69fc55121a2c785685f447ca63c3bd19dc33ab63a1ccdfdd94d5cda20be639d484da02273640a19afe03d362f58da9d75bd71de52e0fe849f114ba367f12282989debb33a1d278e934245f981ac0e222867fc1c16e4bb08dd8ff20c41f35feeaee14e19bc72c54f692cdf2c09c51f5378c3f84e6df6f990941405f8608242edbf\n\n# tcId = 56\nmsg = 33303936343537353132\nresult = valid\nsig = 8b7c4bb2f5c2e92181f81bf18f55361c8e3728e8a4c80ee960f5e3d28ce784d598bb3eba641f8b6ee18e4555244ce65d7e563b5cfce760e64c0347e209b6ed2b4aa45ed4ce14807fc214775900c5cab7ef9342e526b2e346cedf9c33dec7df3c5890be5fee985c1fb4f146de70d1b5ccda6fa469a207d4a074310b2d4b05b6b39bf7a9390684b6240788a176dd891bbe4a00f2b906cb85297c36e2df8b5192c9b33cbf2f94a723996f51dfac1f97497194304f3383c0df16087ff3a4f0b3378b91c8233366ede6ac90ab0ccc72dd206ce3bbb1b7831c7c2a3db6405583c6db9d35f2fb72ebe12cd035a1c97c457031e481e4881427bdb56badcb2738f341c509\n\n# tcId = 57\nmsg = 32373834303235363230\nresult = valid\nsig = 5a978ae0c63fa06ae14b799f22578b4adede79cf134a4242290a581607d491f5de671f6295bfa2c5a57a3ae0cd8790e9f7c9c5933cfb5224d4c883812d8d308edb8e597a2e7b207e0f5a2315eb8b76b725e431979deefa6cd4ff8ee6384cf17d2f5060ab57a783d4ae9f31ffdec05f1a158142218efb754d01ef33f3062e4ab3c7c77baf34ef2ff9aec95e87776e5054f4326afdd7f33445188b6f00ea8071423740b5a245dde561f814f33b7b4c8fc758e8f9d0b35c5ffa199241f1e80c92f0594459b9b7adb3ea657fd8d3e8ec31505a450e4ba6166c028ff7a7adc67239ae35cedc7557fce81ba4ca4846f23bc3a9e2e0e460b64db460ce41e609112a70b6\n\n# tcId = 58\nmsg = 32363138373837343138\nresult = valid\nsig = 3d2a22dbb1b75eeef658a716dffded2deba0589ab002f63949ac228a32029ac3d372297364efef9b37faeecadbd841ae4c651282096708769dcb21ca1da8cf196d158629e8600eb757c5f6722ee2df00ed0e0c503f1edf89f3b09309d7f446d684ba70392d65f2d7d08941398efec0a8cd1ff1aa508e8a7e304db3fa9c14729c61024e4864ce63605bae9138dc2fccd107cb443a247eec7805142287bdc88b6fbd24e1f4d0f9b1ee480aae1f062d533ce7ee7d9f2a0b340f11584b64324fb8fa1a5af4d2003478e10e312996a6e49174a26b3565c147a55285adb7b92bc584af119beec1cf235af2b32a810ac803acac2a8b8c2613331a62604688c2c611bd48\n\n# tcId = 59\nmsg = 31363432363235323632\nresult = valid\nsig = 78e5d781d774b8d77a9c290b8a1babbb1893abd80d0494063e55f701823f16bf715def5085787b73f4f3420c15d18b8f5feee194b26762efe7b5e0ed3a3c9b9818322887d2adc5f7dc42db0b31fa3bfb36ea1b10ba28acba19bd2494616f40ce717d2434bf6543c5514322e670b869c4166626c15229899b63acb90364adf842cea5cc95a023feac64354ee187fb2bf803f50cf2bbc1fe3aa5b8ddc7b7c3d470b33bee5acff291af4b48aab50268f596260695db711f53fb8f08f22113f29cca6da476f716beb43fc2df988df820a0e58db817d8ec90511e8ef5b90e1fc03fd8369febfa1524cfbd66af9f395194da94c643b86722b62ef08364ffba80d3cf5b\n\n# tcId = 60\nmsg = 36383234313839343336\nresult = valid\nsig = 05a089489be86b2225bc65916a5afea34d6a372f7f2b2bf493e11f949236dcfc3f2f1bdff334a737c23e4f18aa89d61265c5935aae9819a05ada91d943a6f42ac2d48f760119fbdebff6b154fa6bf831a9f4d3b71e41c2881f5eb7636629704f936131d906da62af4bf6371ba7135921baf81008df1016e3fcc8ae0f1fa8cf895bec5ca689cd43fc175e8bb2f9d46985a83e2da185356b814c806d5381fd4b2d7074b9fc6c7408239cc76f54638d7e27ab4d6f1b5862ee15f2c4d0eff6fba90caef526aa7a6042b1c08c021c6d298afd91fd466f6685c4f0add101d7f8231ce704013671a1468110cdf9b8829699b03eae2238bba670e959fb150e94fea889ba\n\n# tcId = 61\nmsg = 343834323435343235\nresult = valid\nsig = 306742ecb80993c0d6f3d987d462ba4ecb877649d0f6036c6294a2b865221dd95e4fa3fe7694a6bb6c6f93a591cc92fe631d31bd9059b8a57b7f8302b2d414adb813e21f02a8b1e0628b1a52359a4ab947e235f97758d4b50e679e6225152a9950ba54e1e1906f15bb91f8cfc8d14a2cb41ee8654320dcedbf3b21d00705ce6cc93da7426f4d41bfb21fb4cfe187f8a24cecbd1ec6a568efc64b13a0eaa5d45aeecd81af184954a56c42b10a40b0c1ff6ee49c1493cd93fb83e9eac5aac526a0e6d96552c17805247070a30ea5b9fa4f67852e11ed258cfb1ee4e64808dcfdd11096dfed7c376cd1373f0c6ac1fad8878b95c783df87a3f054fecec0d1f5116d\n\n# tcId = 62\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 6b77fb8cd287c666cbc30f00bcfccd31f6dc01655c3c976d1b2a980d53be40d6a4a7676024abeb1825ec47589365c07e5d4c3d34e249814126e32ba40aa81ddea0f61fe4e3725aeb9751103fd034cf3fa516fdc1569aeb7b028d192c8ef4ef60a5befb8a4de595bd4717462879f424e87286aec0bce6f9e763ee341765c24cef24f916a52a777595879471e2f3188c1be77fdced941fe0cf739bd8d5a4ceed9fa1e47f6f12dba68cbe7bb2eb81e46c2788b847d0ab6f55951f787db4ec736772851c43534b7ebcf226c2540806d925bebec9d109915e466d08e2470b7e85b4fac66e089b1a535ba703dbc10f800f6bdd557370e9ce761e86466833903efe315c\n\n# tcId = 63\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 4af6c02b1f3c2719fd1c84965658e36651ff891484f4c4177fce2185b7098c861939fcba677e8ad461577a666ac77653ac37fe61b5fc235ba76917e03c3419fa3b055171f959edc7f9fd349209a23a4aba57ca80744f69be6ffd1a2252a182a3a2c1a2c069dd4953dab9a6acb4c7047d7402584275cb726875c0858066f50caebdf7e9afb6d4f3270662afbc66ed14ce69a846fc0c54f9e57bd4f827c0b780c30dcf8661cf4bb678ee0396bf8e0a08d259593170dff3f93dfde9f4d9ced510e07a2736c8727d2f9e973e32524e072a92dba8edb2d1628da03741d227255914717445407111eefaaa889febfc6f4b0d42dd958937710ba5e94414a26e09cb3f5c\n\n# tcId = 64\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 601f6431b0607c80d5c92c86a63d06fcd862bb35eda31a7f331a59abbb8ec18fbc86ec95ad63723216e151b7bf73135c028a5ac3b45f30a7ff8ea43d5dfa6a52f5fe1405e6f5d64abc4999f8c580701bd9e451bcf6d54bf0bd1c83c7e0399e7805757cf436164f365ee76f29433861856b67b6cbd8b235365786c2de9b305e3293792202e1848f9595265ed6fd4b1740bcbcc697d719ff70b9200e65d7711494e18855fac36bf9487b54798f39d5a32b5d62dde3de2c3b5f8f7f4bbaf3ea04e11cc8a4f6247e25c8a3a4e05d831199d14cf44ecc8e66c8ca3883b5aaac3eb5889b23dea6ba6649c8a69cfed547ca936a57b220c44b8eb8604c8dbd81a3500116\n\n# tcId = 65\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 2a31524193054309ce7b6ae9c4bb053f5a5aed273d7a4a609496c7205f5077ddc746e8a4ea376bb879556d4999e788fc8f82378f6281140663af2fe0995a1b73eeef60341d0720ce47282eb87bb79908be8c3ffe86182d174afd0522a87fa56e0d149ab4c32292ca1d1a8478ad4090006b32a147ffe4303487196d308dd59f81eff956bd6ca87ee0246927e279bf80807ef45829824c80b82f7442021bccd8ce4513cbd4d4150fff20ddc2ea942ef318455265b5667a74ebbeb83a05d15f3215c04b113c8b55ec8be512e797a3ace15d2514c2bb74f50e0969eb1a2291fdb6fdea1af0cbea6f05937be614003c1569b648c2012ec5dcde806f68e247597bcce6\n\n# tcId = 66\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 8291cbd81529c8f1e27a907dfef2de16dc6d382b112cc3d2d69f4c6915e7c6992eeac6e4b82f5396a46eab562858835ab0c0aee63d2585dc7537dc0008a4b40803467abd5fdca4114282265c2bd929a03c7892774a21ed6454e73684673d6448b19555d0cba9e4c00c99af77b30f1daa4b15eef8489e15a276fed1553e617a64dc58d5dff3c05853a7039047d243c52e53f7dcfc40641bb9acc33ed96c74c79c93b79f32566cf553428cf85d2d36a070c89f1eceb4606fd285f7ba3ddef70ff151ed0fd3a5b6c5338eb2f812cb4cf4827caef0b896a1d49f49e2c3049462d07d0e64d33f1e2c615c62a958abb6942d9ac8fdc39acc595cd381aead075ab7b51c\n\n# tcId = 67\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 57e8cc1dc00c07383d89a79b5c8e4f5bde2a2ba55a3c7201b3291c4d805b1b2eb36f8f326b542342da180abe508669bb6cc2dd54e327bc70c1e317ba93a0fd21e7fce22a0c597c7420d1d5602ac43d9348ba3eba561f250e301ab955b0dc33e4abde32946b9b3e86c8bf07a44646ca595960bb988fef04b2824967e9da8b0264f1da0659373935313a574b5380f0b54ce1bc0dde423bd3a54f6ae5fafa772a55c1c44eb6edffecf13e6e5e1edaf87a79e338577304141fbc44f0e9eeb286f553f879addd6e12e436fa3af51ad53a72f2679f0ed102d504ee08706fe111eaee49d880d1a0b91924b3b79968ed0f9bff446dac199ee89b158c074927d27b864498\n\n# tcId = 68\n# s_len changed to 32\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577", + "151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 69\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 1abb40f03dbe5b4f1365862d9f095a8d57e8922565372f0b34ef5e232441d577b3c1f19a240ebda880a09cb41a7267732623b0faa414843f9ef063f93a92bfe5f98f7c28da184f011aa787ebd0b5fda4aec1beab6757add32f7a35cb407779aacef43c0429280e5a040cf5943dfb579f86e0c63cc828fbcafc9c8a15ec98fb64ecb5e295dc360f50230f415337aaac6fcac02fe625ef61744488eb7cd81a4e788a443f56b32bb3a7a344900806952f6f3f55f8d9e9217ddaf06a0ffe8b0bf5551d87cc9251d839441cdb3c72ae9c6a5a3de7ab85f908ae7d04232c52143d272e87a54c5b39d399b49ca7e96edd3b6e22c296de69e9e1848038025780e4f1ac29\n\n# tcId = 70\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = a11bd4fdd30fb353314530d60b1cd921d6091658e0c775432b6b702b1563a9e5b547f968ac13ac5b7027aeb53ea8987c9441fbcaf414bd04434445b2ce6a1d9dea2f2f179a6d40342a25b10300d45358f703f814917870f0a47f4b4ac47228574096ff240ab0966bb77ea9b5155c6a4fa0a185ce5d389c6ce28821262698beadd0fbec4ba2b66389d610f290656b7a4f7ea1f4a3c44b3528bf62f72abf7935e0d8b6cfc2db947e440752410a43a0ef77c0dc31b58be021b94118e5e0cab1d8994e76ddffcc2e5d55fa59d1ba792fda9db2b5ba9ec6f6bac395c250e2b8ff245a448b611797322bce637c0b1537c9765a8498e0e0371af2f8ec15f32e765ee234\n\n# tcId = 71\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 83673bf6d178e873e986c9a9750befdf2d6a3f0128ec90b5a8059d32f9f9592349095e24f88e9fc48ae549009f52b4d821fd40848a9aceaec252374b17d4950296e30b3ff489d420b8daaef47488696762ae4cc55ade170c5e0d72e696af793d5cfa04477c147732328e275999746c3680c3dca701592b17bb37dd8c5eeb3a929f932a3521a8004c10c9e3eed8d956835a700cabca21038a9d6dde44f888336c167c04ac26e800a99130a6e1d3b3bd8061dafd2b462102249fd07dc50a2e57a8c6cd52381fd4e1bfdbab18fd602c8890d51e8053c3c2ab5c96bae2847b5539aed3ad83953f47841f8f50fa28446d30c20b2b7dd8abf4e49c0636437c22833ba9\n\n# tcId = 72\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 90c3cb3331e8b352c37db46283a1a66b647ecca43e3461ce1afc49d6230457341a52b558496ff83053175a7bfb4755a1bef0e65f470d6139eaaa28cc1c083905859c1475868ceb1e3829437f64a7ad757c9da3b6e8443e8f981f5c0724c5909bd4ebcfa65eea4e4f7af5222dba64a51228759c69e26c44d9a528d75a5b96855253da88f9b54744b1a8b02328394c452e62ef75cd69f7def67b80e4859ba3e73b08a2a3ff931f44d1d524320a33416bf4fc744847d12e3e973cb870fdc3ac1bdbacb677bcc63f927366f4d0d61ee3bc0d1a1b3d149672c6398f3409fe9e7c7c0a150571573b87889b4f23ef49b6f5984412642e5b0abe7f5ec4b4cf12c46a38f4\n\n# tcId = 73\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 7a7318799477eb6da55c7b5f6a0338071d981011e1a9bc6fa3a2258ca5caa039fc7f768234cc08e425323f57691cbcf5f83d6a3439a639818c6b2bd3a860c9a6b9a8e0728aa7ddffe18f82c02854ca07b17db0f166d2e521ada5c1f85d0c2f259301d3f4b4f1380f94bb819dcfac9adb764a198091e110f0d3c5fbe20a29366fa52d246cc922bfd2b44a619b59b497a5379282ee30608f4243f7328ca8aec20f61aa8b4083abd1c206fbc9ea598d163e52da1026ae349d26469e2244b86139895f80ec4e8b6f5965a28ac4e9636ec3b1e5d685483a0475fa645421ed6ee9633f276aa4000eefb173b5ffe824d38a4d7e24146e4a6adedc3ffde4521dab879120\n\n# tcId = 74\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 331756b92b346379e1c50dea5e05d92912eabc568905d7f290ed353e705671f0f5a43921d71cef11fa2cc23c954ef27eebfbaec77a33147b5c6408b7fb8ba9d8e3ccd5af541942a946bf057d39ac34e954ca3eb308449a9a8fed15f760d9392c32618c289993b38875df412d460500ed0ac7d9b79b0c34e8a64310ad4cb0e7d6dd1dd8ad6aa81683a3420618783a315b2643f7e8c8a95734aa1ea526752bca4d443a18224ced3d2a07bbb734d01629483f5c8b91d94926916e86ee430f4f6f07c40d5808f0f59b9f438723bcfb0a8f595e3da00d5f2c3bc9eba4e64cfc5edd9c244eaa4aa8f7181fc0895c911305fb8dd3d404865f6ee2a4de8f5de7962cfa9e\n\n# tcId = 75\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 28481a5bc8762ab8cfad8d7888e5db6b678b12554a244aebedbb4d83fe0fb676d77411285484ec8b76843d4ebed1dc9dbc2039c3d0e7e5288de9602f7ee82793e75d2320d8a7c254116ccb086573142cfd33e36cce3f830901dc734ef18364e1c0125cd8fcc3c7f4f333d4b05386c3cbdf616d386a086862b591d80c34832767feb83aebdace7d19269b0b5bf340499a9d530c15b19c68ce227364080b27e6f4e017d6dfdf6ef05f4b73b92602a6249391812a286d8fc87204a477d14307aa2e23f12f7452e15d4bfaa3deee56903ed66031304dac16f6393008a53496845079af72e6c5d4781664ec757c741ea0dc9ba628df2dbfa591f16c352d5171b3a0c5\n\n# tcId = 76\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 267cdb3f7ec390ac0910a3acd42893b3c445226413ce38d7fecd825e29d3a7c8a2c361607b70b88f1ccedee4c9d3c8d109bc3e77ad749236f546352713b71581ef0ed3b9a9d1a11035629c8f6cf912cca10eeb2b02d3bcbcb167f02ce43d00513999e4710cf5d4f4d730dffe9e52ac5a11d6453821298e66dd882fa7eeaa99d06d324a1436e2e2f3a8e78744cdb21d0070987a4895697f26d37f79e93f6702619ddc4b6986450f84630717643224d134a922b5aebaa430444bb587079f925ba93a42bf847579b8bd7e72baa5eef82af83afde809ead8f810bf4441107a3095a4f4f137a3a24bd5f21a18cfec809a164f4471c49091390d2fc1c6578dfbc2060a\n\n# tcId = 77\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 7b9fb586f1455c9fd95db25ec66cc1b8e0237355177cf1c40df59ec1eb84a95149fc4c06117e8301836a32aae7e9ed18b9eae67e5f76ced60e89b8e11d3467afd71194b494f7062c15731a475586fc90ebbd1b382d5c55c0b319869b3d409b82cec0afb19f6352efcd6f1ed949f27a0306a3fd1ec4722cd335c1169871c63796bf3a933dee3f81f01fa8b6e710072fea562cd938fb2bb1053845555b07cda74f144ac84d9557326cca799af501f9474cd8b18a2af4d1a12f93a5b6dfd1880e58ea82e98fabe96fa76981a6243e8e4ca386f5ea4463f615ba1812e38842fd51c71e0b6a9da68a2b1432a7ce2686638e55129d4224c94513207ebf90e8c5f435ab\n\n# tcId = 78\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 6bd414e877abc92b608b08a273946f90ba6c6c27de2448175638f67a6b14492fc1415ece540be3e3df8c8ea7154211637d9b5144312e113bda2526b6fb2caf7b07673332dfa605468e37f4026eadb4c0f84b7b482ba6752839fba46b765709c3c6e54de13953245a3364bbf21222374eb63e61e68d73a126f40f115405fe9092b00b60a7f0b995092061427454f6876ae2ab3b2757337349ff3ca3e2332888b9616fcffb3b924977ef856553f55b2f1b115ef0ad7856f666a9863109c6498c52271ea2e6854fe73e9e4d4ec666fe668f0ea1d1af19853e9a07066418697429cc31fff107b6ba212b4a3cc19b59ada459efbc4ccb90da8a0bbb48280456de69d2\n\n# tcId = 79\n# hash of salt missing\nmsg = 313233343030\nresult = invalid\nsig = 39220dabef40da1a502bf231bdd23d8d2cef5b85950b7ababa4ce63eb57283facf1c50b567a0d272b6e59210bba6163735e0be82dbe4a4ed2dce3f3fd18eecee047517a85a1e634337884f9ed6aed6c250d8f0453f3a103c8b684b8f452d05917b568cb2f82f6ec29c07e0d451307a3b54dcb03165da59611838f8b55d2e8cbc020fc5b482e1f8f1ad4d778b93e648c1160b3cb43dd071b67339edbdacd7b668ec92a3e2808185243f2921d502e0579432017b7afd9e983515b3d9b2ddef7afe4ee5b3405e2c6617ce2acdb6243213d2dbf8c72cac4d4ac0e69265f20499a29cf50a67ecf2cfa2df61c585f32b9f067f84baab8b88152b65b220898f91b9f506\n\n# tcId = 80\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 487bc9021d8e95d05c1d3237c3e9f10df764e8f70a068fe6d93b865233f6ce8088bfc117c9086a3bea29d86e6d75fd9c8700e871f6027bdd0b37c1b581dda807a1401721f8a582a06309bfdfea5ef177cb7bff47179d9fee32bf545e3e4513212b68fc3eaa43f9bf86ab066fea31018299f4401e3e0985c0d450f102162896e619a2083d5fd2f2a03fac6ad99d38eaade1c56a7996a35e5e657078547c43d13fbf62a64a007c8f03b79b9c59d19697069344b7ab309b532a7449878d3c33472098026917f99d07d4b24c39c67dac099d77c2c0313a557d8a5aeb896214211fdccb531f390d91848be459df01c014454c8c9fb390d6f759713e30128a9184e881\n\n# tcId = 81\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 5bc1e96ad536dee1b3d23e31f053b9b0e1439ce7c48ebb54f01a81de10133612dd0c1b4dc0b60d6afcbd18e40123b40236bcd773b5ff473b5f35c6ed4294541e7f028acbc29f5583e93331d4c03631afaf79bc683c187c7929d2f7db52d1a34d88210ab50231219837e1b60d49ce8048e9ee4ef55c2218674f297158c711e4fba62351879e7d058e0cef25575cb0ab9f6d6961a4cb6d9ab0a68a301fa3bbb8d0899f43bae40ec19758591e5e0cfa84dd08f7859ebf54c76e04e74748833313bf15793b5bbc47494f3bf439d7fb5225640f3f3756d9d4452f7fbdd828fe844f757a0cc585ae0a6a5410065c8ce4e0319c356565ebdb1ba0fefe780c70a5135365\n\n# tcId = 82\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 2b3be6997057ae17c749c435dbc68110204e95b3e127a230121e27c95aace90e9f221e2763833024b3bb873368e3e992897d8767eba2479637ee9383796cbc10455da3b52c7fac1d91131e3f7", + "8f5f616b3fd413b310fe8f50ef4f721fc026a6222f0d9113624cf7d481e79e788587ee659e81296eaa438ff13454e36ea50e9f038ed2a7548a8d169635c3e15bc20cd83c8279d16e6b0edcac2e9c72b9048dd7fd1d298e414c3832236d612af3841e426c74f20484ef408b19f22449e701460633fbc5155851e812e886cbfd6218bb27388e20547fb4a48d2e0f9a284f9bc1e9391b28ab7f3f45ff5aeb6af12faae437361877d04e2df1a1057ac3a680e5123ef\n\n# tcId = 83\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 4bb8fd79da58fd3217661938c90772eebde7bfe5d49fa597cf448019a56d710ea126e8b94aacb45bed81df07ed4c89a9889bac0ad2abd506374d5ebed14777673fb1c51a3f844e9619bf707c9866b21721a75458c100d57b9ebf6ca58aaff1d47cb2d0f26074dc15d0900a11d681bcd76b111140500a51cf8c1b5ff4771176f1dc0884d42b36a15690b991c77f9605ee9c4329fead40364f2b6372812319c0ed4a6a15c0716da9426ddbbee79938bbf8dc3b459bad11ce79c0bae6080a06b6c8c1c051fc37e0bf0546c7b55b2cb6d90bbf4961ccd1adc623c9b9b51912d6b78843932ce04323f8a9159d10ac94c2d980e9b48fc143299d4c830050ace61f7238\n\n# tcId = 84\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 9aca5b5fe1369dc46eff908e690ba88744db0c86f7da7e644eac314493ba6a7d003dc5400e1c521c373ede410afcaae8a4ea8e14d1e6c2ac3f39c0bf8bfeb688962260f91058ef9c1a0ba39689736d039ff86524a97d8eaaf248601793023ce6569c3cf15dff30f41e384690ab40812cb1e4414a0370fc39f526abab87bb9a405fd44869069f343f28bab50a1e582d4bced25d41f9fdd2e958177a3625bb59c4677f7f749321023fc9b9b724e8172a4a512743a1c78c3c8b1f0556fede02e9f6f2f851fd31e21f0886a35d12a0e04f041251524bd7838d91657026540e133a2ac1ade52f03efb509c30578bfde272f0d9fc2e515e541259dfc249bf1762b17b5\n\n# tcId = 85\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 9211ea6374362d77f491d9dca7e8e8d2b672bd565dda1566814670d22e3f211b38246529a5f01333ced70323e6cc4de58e9dee11a90f345fc53c1cb0f0c2287230d1cfc83d33c6158a8730853b5163c825ec05084cf0816325e21ba87f1685197c9891ca3b89d8d8bbad395f7f71b91ef937a1d81bf7497356928b77b10fe270500a731d498beb85490c1d3c4145336d2a8ce8430354b3afcbf0c923b0b0e824adb36d7be69a8e951f64a5b1d648dfd9fea49b59c99efcf015c6b3937d8986100f48022346136eb56f9538b115284ead85196385d91dd414ee22a3c7f40f632cbe565c8d0a325404d0d4905282cf7acc6210a6eaa26f3c3961660a944771b342\n\n# tcId = 86\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 39112e1c8251d5ffe1373e70fac946358b00bae6a461a1af561a82d81ec4acdc63eecb3b98f5f070929dec66a758d4a12cec2600208d7597320ba5db412006ebe76ed593d8b1090e93be21b1c00700e393ddb4b7d7a8bbdaab603087abd2b90a0408a775a4469d4f2f6b34d228da55bb4872ef6dde5282f5bbcdd6a8cefc71c4caf00453e6d6c59321b738d3b21a3d8f0da4afde30c16bc5722ac30ad6bb1f9fe0451ad150fb3d67a805993e506a80b2dea3801bbedb8ff7b676f50ca3fa5b9bd744c00822c975e2ab8cc6a917436279a9e85aea62477ef84270f6efe495ed503623108ca39d5c47bafa3505f04995ec9c2a0e411fed9179c9a9e94fcecda5ad\n\n# tcId = 87\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1baab34d753d4c169107ff7dba46ec1a4203cb1654489d6fc20d206bb21fab483872c44ae8017b7c07aadb8e8489a2b41b89f9331fef63317408105eae19900377ce150ec89a37b26bfb169a89aa1c71a83cba6858d5b47353e82017f19a6688927768bfd0e75bfcd71a5e1948543907d65bc8fc813436a15949fbaf0a7f95ddf010f298df9314203838a60b39c5bcbc7a438500649950bf28e78f94155cc664ad5ff996e51789fb13038e1757dc19b6572f028fdd8be318ab933adced2e87b569544503916030b4060e231b0265372805cb53214c6f21e13c632ce08031ee368bcdf3eacb3b87269e8a8684703a348524020e820de93f1f334b59cddff51a12\n\n# tcId = 88\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 7f04560acea95c8b3df67a74fb2b32d904e5c59b43b10b11519e796efa77c0c9b14beaf1ba1308a65fee50e7862289d46a3cfe79f423e7d9201dfc7428bec7f304228508b7e8e5af4dbabbb3958d1f48dae4016cf699421b7a9a0b1dc1c806a7b19cf65fb7d4465a031bd8c24071b397dc1f6987cddc8b69f5f3dde25fa36c2ad6e030c64413bf3eb39176bc003c909e37d28d5a040c15bb4a73c74c39c4d132d09fd565abd7b63d81115ecc8a151786f6ea50882e50db362cced39702ae1ecc176cece9509ff071b87f142547ca3aab04bec1a7d0c6ff35060420b99e285515eec016ec419caf75cf11af56a395187fe6575786998b6b4348561a0dd68878cf\n\n# tcId = 89\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 1c029185061385643943dca8adefc5666ca039765d29f8baa20dc3cc43981ebe1e6d1f09a617559955437323e50f6464a69950baf23c7463b1b1c6761b50bba89c81299d4543f76e3e4ca4e30ce710a20707b18dee5d2ac9e0d9330148526f193439cb33238ef9d82424fc1287097e7626bae0130b735a22cb6ef08ba4d840b370c9e8658f83267e52b8d56ae0ada9dc5114920f97884d6bf529bbd7c81b2f9a700e4df4c71a8ce3141f9f4be31c9d639619b20f725f55475b38ce36faee929864a5c7793ec26dd6d1c4b75f111feba3765d0d35a272fc52fdb85f2c0bd1bd22cfb47bd0ba58d00af119759e1f4d5763f15cba4e788fc6f8a221dbdeb32c484a\n\n# tcId = 90\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 0594a2a0f3d10857e8e2a89d72df80c8b37977bf2c390087d1df7672fca50d21b7a3b24453b55afee4c6fb2adf83e6b3e6a63db31b685ca956bda1f3074eb53364d9bbb9ad16883b56ceb66cae51712d592e10f851c4431a4f7b3625c774808bf7c694c582f1f20c2f51ca9f781c6172d05201e1e0ad96f7231c2786e039cdafcc4045bb078c2f432d3409dcaf25d8c0549de03d7964606aa0fbda333a0eac26e5f3ba13b1d6dc710c01a17e1a24241bd741d51db4cafbaca518fe32feb0ed5cb916c8c094c41f092cecb7a9cc0818351b5c8b6563bba32fb8e86b4c81f4f57c24a880e91daf31cd1911aa6690c8e45f00dd62986369bfa5824b785c1c56fdbb\n\n# tcId = 91\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 10bc1d1d1fdd4a8f74b17f2c8258078ef5c4f5fb973a2505060b126504c9366a4578e2a333b1a9c580239ee959d17017664631982cb8554fae8cedae07eb7e2fb69cb702db93d948d0d0e4654d9eb49192ef87e92f4d229ba56f165a8ad4769d0c707111b9be90c6cc29cb3389a9ae4d5045d8a69234cd5e57fabb76e5d1869d83cd2f3ea8f0419194cc54c398a288aaa35f765ca8e0e264865b709d5a21c9d807c4c0751f9e4e68c9cdc61d93113e5bb811c2e217f31eb14f010aad77abed3e4305e7bdb1066879237849883c3ef099b85c78352b32374dd244e173edc3824924098cfce9d729166ccfccadae8871266927763ae6a5e750f49b837b60682aa9\n\n# tcId = 92\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 93\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 94\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 95\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5\n\n# tcId = 96\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00005e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e", + "1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 97\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f0000\n\n# tcId = 98\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848\n\n# tcId = 99\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 100\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n", +}; +static const size_t kLen143 = 61423; + +static const char *kData143[] = { + "# Imported from Wycheproof's rsa_pss_2048_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 4f01e0c12b08625ecac89a69231906edf826380f37c959a96690d046316d68ffce9d5c471694fcebfc6b45534864689256e4fc81c78e583f675d0c94b449647451e81beff01a11a516d5e5ce3f1a910437cb8a3a5096b19fb15f4524a35b23d89cdba12cf5b71aac1047b28c562df7c5542c34ce23a182cf7e0e231934b17294799d44877a1d68ef1b8f073619b7618e6b7c22db20030d98cf591ffc3d4da5f58613ecd5ecfc3b40a1d02f40891ca43695cd4c088b05a8054c89c595a47e274816f35384226f74459ee63e25a1bfc03c360490552ec38343f8ace502f065303b00bc0ec320711b211fde92e57feb9013c3609342495ec0d7cabdec21e54acc38\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 0658c68fe0895646056d9bca422a64fe48813b4e14f0c8c4122e56d345b6813dc6286ffde014617e351c7af0a0d2c0f285def79cb734e1e055a25fa6fddc1c07da17b4b235c637413b1849c24311fa72331f4c0458c364a4916de8619b884d7e37288fad12926fc091f4851686a04fd0a504dbce3db370663a6ea6128fea86c2ca94c63e0d34d7f2c845b5d71d9a5e544451f524a451acb85c49bba7864e0a34a48613a819caf3dfd0d510c940f1df21c3373915be1f3509a557fa4d5a4e9f273e85467961133e2482c0907386454228fb0246638616fc31bbb6fa7c2361b8035994eec69a923f4c0bb0ba8696dfe8b1400c2398d7b343fdf498b1116c8de602\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 401eb03cdb47ca88033e3030f6bdecbac8f5c8fc1dd6a13d23d379ed9a2b309891d13d74fea9d21d159b9e6d8f37efa2489962e24555f56dd434ff1d31ce4f9f5abd3f22cbea8b691d6a11e44efb83e2bca155e6a164325e0fde2a8865afd5c9f51161a9d615f62af7ec2e31b3e5ab649c164490d31d88cfae35b84aea7925690f929a144b6d2f48e8fb894a52deecd1b9a6496990c4ecf1588699a42cacd10c53af350514e4291ea9a058e77f101e32c1c0cefa61d945f7bc931f8bd19e7ba3169358a60e5a8b0123bc3199b9fdcafe8e519c41ba675491a27b85e44ef2d77277c10fe107293c8290186913bc9a99b640d8da041b64f31eab1d35920985f4a5\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 599724adc1bae31e84eb6e1399cd90cd67f48b432c63719b600402384aaea9b21ee864cdcf259029180877c847a223912b0647f066a59a65df6c2d3a6675b1450f0b05185cee486bfac56cfded182babcefe60568a6954f026cb2f59002a2f755e9bce49793f280d89822c9bd3a06a7ad2209c3d6cab7c1f74c8bbf4bf374e7ae8a539fccb83a78cff96a4f538adeba0869659d0e9647d98f96cb55d9cb7e58440c4c9d85b8e9dc602e909e29e45f2b82ded44f40e9ceb1292da20063967e3a116f4aeb202863cea523f215b8ec7fc4f6a22cd8652ed661e33803f3fa1be966fa8754cc7b0fa894cee0f045efba14c4f4a1d7cb837cea69e30522526b8a5878f\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 4e68a8375e086990bde05fc4bbde2d368f8d96a5bbcf16d9239fcdd45942d764fc2317d90f4f62ec80059490240be8f32dfc32414a427c7e34be25ed0dcaee6927881e797db97a0341fdde459b9cc915d0a348e15dcbfe1b0780472f52a887faffc988a9ceb677e1cf5638e44a9d6f2532417ed0bde5d67f5dc9229ef1f3cfd9cb46c695738fd006cc62d02f5df76996270223060f72505ccfbdf4e88d961e2e7763705480335148ecdd23d1202c26a963860dc769a43e44c72285092ba7f24d81844e612bf03f9c2ddd4e5960622f71672f4e42b8a8f36c6847a05f70400207471c575d6a960fac1de809118efb52903ca37f12d40f6de74decb9a5b8a415d4\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 8bdd6db90323f3bf26a36a4ab5b92180c96881bd32b66317c4b48c2ba1421f8434000c06adde4264c6ea2d5346468c6d5e97cb13d3cb932e523ac57b59c814fa0397ca6dcc9bec4be1147d77abcd318a6aba1af46ede2f5640da06511a006fd1bd5fb8e04be22789956adc47bbec7988be477150f9b24a07dff51530e8f0c14cfef7d25ca141f512939987b7eb0825633d41a48742bd7f56d4db9733d92ac0f36b4041f51332695f551ec91076da2301120c438eb9ec197cbe318d4571b6b79098d17eded0ca47747a143e34f882ad6e3f490f3a710ff7ec1bffce022027165d96281e593180c67f44aeda9ce6605e6b8e5eac1347695dab211a965bb3d3f928\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 3a52bec84b5b41e09358a7fe24bb7ae0cb39364374c911e0d3f011f2c4c79667f43eb700fcb33e44533654b3efdb37e627eaf1352d21a187a70a86b79b2c34ae3eef944e3e61d361c3baa446dd465f2ddc0b2ae7bc8beec1761922fb5d7aa6cc4fab9d1a0835f15cd71ccb3fcb57c578a46a7197dab478b7d1ed7c6235dea3b117472c334c3a18fb8a574922f511d7ebf030201dd7457a3860a6af6252ddaf90d07d90aca03f7037223400c066db1d7feb91d84815af2430190a2170ac7eeff898ebd5c4c7e9bed19aa86293aa257a9ad0a5146be80e7ce6081c8906d269d06bf037e34ee18aba113dcfc98eca70abed7249dc9a49f971648e58d7db2282ed6a\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = 0b47d3bfedac89323cef0d273035674b937f4106355c0baabf6664a57b3064a789592ec5ec4a63997b6f3dd81b0514a78b8824edb2b0ffaf45f8ae6432ce3521bf77e01912df0da5d6fad9f554a3d69b402866526e6914b5c78af847233d3482598143dd6fc65a81df92cfe119f38b0d4f9d1a51a99aa569e42cdec9b42a0598f5f0bbaa1bcd44c19c7614202e0aebaaefff7f3d197635e490bba81927ce491a5810952593f8fd57a80f60bc3c0b2a7b10a0f9dd4930db8172bcb1642f6d03332a7d90ce1edc1f8054b5bd4f4760996bcd565bddd2c6dc8f54fc6da5e6fe80a2248f920216b1bb836d7885a023d92edad5d20b0e47cf5beb2cbb1393c624eb3a\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 20c9d447ee65a4cf7883ab724df0c454814029c8178ddd25eaafab34344d6e06877d5a7121af22c7e5333e2d4f2bdf42450b7b735c335ebdfb461f7b20dbb77c68c449b7826ad14668e2103b636b300a675a9b3b1aca936420cf3fd8deb2ac8aec6528409f6419d8d5ac9ec2757ad4781e9cbda98912f4304710d3a89053ebfa7a84353c86b0c48eea5a541af4644ffa21b766e738f0d94cc796004b625f244f63c41666b2213317f778f0d9d7d09a1003cbe1b2bfef585f1580f941398059a09ec07ae35bb690728ce85c2e192d423a71b513008c29582b37df1f83e40a699c88048aadd81211322b3c9bb449addb037c553551d7835e90d53f1a1883766d5b\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 7c5e135d7670a57d8fd7a1c9c7b33a6e07a57d957f7a5d9594200eaa9647a1d460bbebc40e0036a7d7665ebaca9ffe3a166fa1411c704049975a5e46b4d4fa03adbf69d1a18adf59505e6d2cfbb82d5d32b7e3dceb8542e9ed8c7ac248f9f7a84abf3f16e862726a4dd189c61d6979d85ba982db3a5b2903f38d2558cc115d6481952506182a09e04ec257b19235f6c6e2c6587bedb90709298c142fa31742f401f22e2b4b446f9642b598cf43d4d29bd0934f4853ef70ec72b97f6bfb084f45ea439c4dd8242d059bc3c1a851c67d94357f93587014b2860d7f195f7b", + "6bfb39afa712338c684f68501c5fb9a67dbb36544e6bae5f72dcc85815c2d4d70b5baa\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 80ff5c8258bc0c74993dbdc0ba644e050cf47213a6a19bc83d5e4b2080adcca763a55918a7e19d85a0da38c5cc4c0b958884fc79578d4c91bc403756c6dc353740df2d0330f32e1ca91136933f2491c6e7e9a01ea7bcc87088d7863e048fe9796d955ec7cf1d166ac36a431e4f858d93d8caebc6ff60a678d38ffc0c88e8ee0ea655d4c1a46345556e4633ffdce68914c75a55f071d4e59a2eb0d6fb6fe4f28b63adfc590a4f5fc72812dacc547fa0c4985620d4019083eef115dbddd673847b79540a4bee6dc4ee8de267057e321c44aae047d7bef2302369cff291f6efa90dde97672ec3cdf4953f27f26ce62e77251fbf5077fa986dab5213f1f94b19e127\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = 70eddb0b9cdacf82add0c58a154ff2c0ca5cbe2877dbac3e5596de69c686ac2710a78caaf6492af18b42956c450dc4eb1a3e6fd669100d55e06b3428c6285254291fab9c80634c6f9c874db77c2107db37720b43982d9763cf34f79283265dd70f03e444158e82709555db72fd7d13a004290140c80511985fc5ad275a72abfa7ab878cf043e6694340ec6b3cbef5728f2c3c63747ff75906673be53800a7eac17a47debac1c5a9dd36eebba9c23575ffe1ed4ccd2fd3a4b9902f563b17f2bd9638d2348af175e1cb918a0681691a84444751750463325ebef2c40493f049c655077a70bf420b50917906315657178e7cfe607e9c22a23e67fb88590b753411c\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = 0ff6e37a9aa03391e6ec8270b926c123c7e6853e01e4530382ae1e9067c2c447f2d21ea4f6b8cffea5cdead0e7bbf4c26c07418397f7dd85f4bbac0376aa099574dbd3142081428762e0092388142b351483b67fd8abfb5b73f10383d33fc21aeedc6a0e6f8a3d47f11c8b319425f9768cbbf498adee29e7d52611feff8596b1ef21ebd203397d5842cacf570d79cf0b4308a32d0951a7fbf794b84e540cb52bb076972f003ad59a35deb7af887bedfd26cc7b2bf334e242518978ff2e48224f89c7894737bb835bc353f4c0139553d3aa4722d0cb15c5e0aca5f5eb91dc9f4639aa81314038367c2779ba5521b250b5ada48ea3d2bc41a1680900bcf3cf66bb\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 22bee45100f26f64d7d994187841d9eed5ae1af0601604b72ea005fae6e28cf0ac2ddd9761046eda1ee55949820c5545a0af3fced402bdd463f43070da8a4dff41531a0ce09b2eaa14bbd3713b79bdf00a144167cd2142df7aa8c5a24be69c4c1a728cd04421183658726c5765b36701f0d61d26d062baec16eb59b1594a185363d8eff993ab9c6d5a5899199169ada44b77eba624c53bd7b745b053c55355da88e6b83e74069d7d7e51964a0ad666ff027ec4792c6f139f1baaee769debc55abdcbfd22fe84d6d6c70a1cd14597e7e3c218b36f35f57d4b4dae3f1c1dee433259e961cf69c3e019438ab60dbdbae050519fc3620ff677d5ce9ed6fc43868e1b\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = 1b41b1021b3bd5fc186eed5c1d2a69f7e648d75a03b0fbd62104442c55a707812ef635c7269cfcb124f464d6532f28880b26f91b4f3f826207c0b25401ba1eed2b4895737080085ade80f13620c20bce004a157e708f450bc615fd35c1d248ed0f9cbfdc77222d847fa8143e85f3eddcddbb137bc7bdb2ceabadbff8aadee86aaaa217a3533939fef1d6f5f3b5277d7f8ef1ca07194730edee92cc3fc9ade2faa603117e5ab812ad5a375429ebb913fb370eeeff362727c9bf2901cdf34c6d3f03ca5adc849759ec2c8dd64fa24716af610749ce462f189a5c3c947e4cc65d66983ea9efa2927dd4d9054c2e0b969428b18aab616d3f95d24d8a725d2686d10c\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 52449f163676b9a8249b63d0340d82305cf36a920f173389f304044503b3f5dbb503b8c09cae20a24cb6253a16d2e63559e0746f05c6ddd8fd657c34c2de6fee62cfd2d4c6c4258b138b7e827326110812b1a04573989b969c769d29c888e1e64546419d17a16ce9abebc2bc00f8822401ee1ecfb9aae39f35792338f607791acd3d7dfd3e6b584dc9382f558990607d26f1f461c5b57879d2b0d1b6f50d8ba23b37015da559c41fad4ba3607b5cb40d18c2131091102a4295555ea37e9ce92cc7dd2f41bb5eb30d02c305116c0f65464e8e9584d1757f4be2aa2814ce6b387cdd7ae78aa0032ad5935d74d4d56659e804342aea3a785d6bfb70c0cb44897903\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = 33c76df07a9ae7335f5e31b3d14d7412cc79c8761ffc7fb5528ade2e5088d3be3e269962088f356830f6dbb460c73a526057d57648cbc709c14c23d85f85c11ad5c6cc7e3ceb5238be9e8380bd789106cd10e034036873ba7b8ac9470a01cf4048b488782587e2e5d7b4d2116e34b94f9c3d22983115c0fe96b42063b4f6fef5943fbc891a320f09e62f36cb1a6d83752a1c4fa6b62899afff5118af7102e123fe9c7b2a51cf3056670848240be93aaa0385ed093da763c91726debaf1bb9a48df4be342a3cb9c335d2b3ef999da4eab94d15ba37b07d049f885572f47e7dc33b5d481b5ce1a3f8b3a4237befbf04f015a97217dae6b16e7d855b9413d7c2271\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 2daebad5dc34fd919164e3ef95bbad50efca0ef2364b6db55dddc8fd703cd046e12d2d2181002d3e6c79a3671e2c7ce180176c3482baacc90076da7727c9b0c958ac40f547376b44e4f266df35419779a4fd30603c0042fc473d4a37ca3f069a915d2d0ab95b81bee5366c053b99d156cc31b2f3d68b0ea5f98da4848eb8a4dfce8ba1e167cba0ae2584757e5c1e46398d4695dd7a96412e2e1c7e62b3475a6689c5a80cc6b7c4be01a3cce6045a43aab732530898e60f55aff427afb201e85694b61e81ee86e58959a174ea87dd7f244d29c616b85cb426e7473bf568a2649f1efc40592b700499314bc809d4d9668946d60e27af852c02f6c7210dbf96ac82\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 5c4799e86c698d3e09d8c806104ca3e7cb604d922d4373d7119324e95befda0669732294666e9009f9c7711b130ce531b1cd16ca5a147490a39f8726b3482cb3f2683a8a14d04ed59012005df79d2500730360dfd40f6d7f90ec71c101a686f02cf38c598efc33a60bd5d9c6d4b2c084258f865b8e77e802dc85fa8c2f59d4530fbd1e2aee005c3d446ff8f59c807f0664e5e62f38eee7be9b2eea3f8f98eb2b44a0848a7076271ca986de8599830a59a1289734774118a967e70f63df1bb82374a1a08fd91222ec77117f2af9706abb91230b06d5022e2a8784919344647a3b2660cb5a689f062ac84c3613278043be9204a4239169fd14fa05c34d8a6a6e64\n\n# tcId = 21\nmsg = 33343633303036383738\nresult = valid\nsig = 32753c1f0fff11b1aae620f21f4b25ee32eb5319413c201a71da0503d32077c911e40fae8a14d944bc57b36b05d85a9b4e2d92f260f6cde67739b6d252e4800c8e5c9499f603eced7f97651e1ee878654c0bb205ba39b59285a695619963f7f36dfdb7a2040552bba7ff13d047d273f0fc1ca3892e7692609d43adc0de6e3191f2ee58f3069531509a94de113fc10c3e5d4c886108394a55dbc2fa4baab0623db347cd0f6e6306af8973f0f166558c31901c9458ef274332c15ed9c4a6ff8df090becb7841ce5cdc40705b799277825f029582eb21890e23712837088826c108341028c96b4c6a0dd7b37defcd82622bde64a2d54e4749b065db7da5a515eff6\n\n# tcId = 22\nmsg = 39383137333230323837\nresult = valid\nsig = a2226016f848d96442f82bbc33bfbf098c4cad85b07915dcbc323baad479bd971f81faa49b063776147c448210d4adef7f06fef44baddc672501e0444fe8a28f871f49f6ec634bf4f49d13e4f73c832c978bd227bc1e85804122157885c8744d31f777168a8cdbe7a4742366cdcf0bce50a0f550cc1729f2089c927990d94f73cc962af25d70a1fc4da6df8457ddb5a4969bfca4d2b1964bae88226ab11047da7b6e7adf8f96dbd772747f29bd9b9361244a04b7558df62d84828f7aad2e562f2306a96973a068b176008b0c7534eebf0ae9f7979a0902212d4e20dcf162ab51cd55944d9bc07692348f8306ca90a80306d404d21724a28efbdd228e2080dc89\n\n# tcId = 23\nmsg = 33323232303431303436\nresult = valid\nsig = 6b9a45ec517bf838a535ed93fb36bb027471b11d20d0bf6b1edaaeefa25bccdf5881f34409a042dadbe4a7b3c41bf24abe66c1f7f37b92b9658f59c55fa88aa1632465ba8245c5f0c98d082fcabb5e9fb834d727a354f8f8a7fcdb8d3230725472a6a4ecb6f3d97540773e53eb45383acbe4bc81168e244fe769b1a7d5220dbcaf831e46c93f6ea7ca2ee30ce9281dd9674fccdc796fd6147be4bd99c53a12eacfd4b9b00972b0539e3d94b85911694ea98f27496b567a29fd3087842ba01402901d1bb1ba6b3c7931f1329ff5644989bdc1f7025059d0d069517fbb682c0be049ec7e38b614af1cf9cc37eab74e20e6bca468f93d3f13749557b70129ef95e5\n\n# tcId = 24\nmsg = 36363636333037313034\nresult = valid\nsig = 01926cbf92190fe7ccd7f858c260036a7a9d554bf636a82d43edd3d2cf0f5f7006c2e0d6dc43c7c427e49940cdc5c397df66841897d3e118cfa86f5188c54409ffc169e8f192c3a84896931d98ae8a9e83075e6dabe4d28a56f0a9282432511ab09a1a0ed420be665521936a1c9834a456997c0e5e2c1fc56ab45927b6042d3571163ba59d994b902aa5ed416ceff4313fb1c67334ed7be715d2e96c045d6c0bfd20f2f5040e09fbb077a01f982384ccd883cfa2fa25d35320746728ae530bb796f5ae6ec2c36aad3344ce69045b793052cf3a569293a2d232eab378853dc4030b91e1f08c31348224b774e8b71a7e23e77403cb26d1f2b1bb800c772860451d\n\n# tcId = 25\nmsg = 31303335393531383938\nresult = valid\nsig = 363ca23ec7d980a83a5f367cba3e9a2225b3a3ecaf6434b5a347e3baa5ce5ea27824fec727ec7b3ba2d41cdc9723f5cff3e75dc7f7b9200baaa2c02b4d8399b1760a1011231e2b26bad9326204c5079ac1c1303ac08fbae42f6a4032407e87915fa3759c43b29ca07a1a3259fbee4274b63a52860c6351246f8c1c84538e5e6f6add7ff6152acca4dedddab146a25bbdf0076e2879ecf93baf9d647b32cf32a9e62718eec599cd7b51510a70fd989a77426049092621c2386a82771b06a4c5b86bc28fdd630e76fe43f21c5d22fa63001da300ef9777c9dc4121158840bd084394d600a6db284b1e771112b56b63364f007cd71666902cac56323c6e5494d50c\n\n# tcId = 26\nmsg = 31383436353937313935\nresult = valid\nsig = 4a2dc205db899d51447b689d", + "3ad601003eafb70a51051ae4e570c5125afae66427056fc2c9f71bc42610ef85ba0f49a2721247d4a77c6dc9f01429c2d9b909fc84dfb049bd351872301a7736195596a1c49ccb1b367544a190d188e4e66749731a760d76aa116fa4a189665a98975b7ec803e2695fef42eae7c7f8e274e4fb1c99ab0eebc76ad6bc8d768d2dfd5969181e78b3ee72fa900c31510f071a1da8b7589e49e254de8850db02b1be841af478045a847f2db9126a4281887e02beb58f1f0bbe67c9c7acfb49b5e4ec4fc76ef30654b5d3ffcfcdf7cc912c5e1f2b20d91bdd6114d25405ab65215c05c4ad2b6fae6662ae5130d17652ce42c0ce86c153\n\n# tcId = 27\nmsg = 33313336303436313839\nresult = valid\nsig = 45a2550893820ad511eabae35039a13457350df7ec21cedc1484530dc37ad332a170af8bb305e4bd6da78cfa4382045ddfbe2499a19d51838b3a553d7a849c49e284093e1f2fe4b269295a75f12dcd0e727a79c1f0e9cd2a89e295a355a52da7ee1dc2547fa43d96abef1a3b5121bca67cf450cd087c9d904cf797834057334f788c96763a4ff0a899068363621d90136eb530c32041ef3ede97a44be137d08c2a7019f31f8e27e156e509227860c723e3aef19685a5e3a10b78df66b38f299d60b2338bc6a943bc1b2f9261977ef4e08d1b6b42de17c4c652099d377a7ab983ff983c3bbbca99f79c8148f2afa9b0f1bee51e322ffc05b051e17d132a6e90c4\n\n# tcId = 28\nmsg = 32363633373834323534\nresult = valid\nsig = 258d169322a9546caa2b68089b481bd38348159fa9ed192d2eb60839029552a420d5b24644c3381a5ffbf2ed46072974918d777f1c53ad51f9ce8a91aff95dbcd817f50ef13ebfc9efb6c36987dfaaa96e37aa89dd7a32348906bcc22f4d0b5104c42181f76974651e3ced20d5412f70467d834cb49b1b7e1532ff417f91dcf653f18c43a6ad9ff4469600890f836c553963bc2379d5bd79ad338035f7f4aa6a27fbd924b5bc8d8b5373de7f4cdac75cbe0b8abd3961db17b819d46ccb4cceddcdb3636309d6754c6d82a61f5d9b9bfabd0c948777264c1138c6fb6064fdd5a797e551c1d0e545d1d32d63e1ebdfcb78275692cb50717910312da9917052cf53\n\n# tcId = 29\nmsg = 31363532313030353234\nresult = valid\nsig = 824d0372c40297e3a0059236a93f60db3d2514defe409bfaa2890f4d04cb21043ba1871b8374fa51f1c4d7392d0e244222b1eccd118009e46bbfd2a84bac9e84ddc5102eb4508f5b9d77450f7aed31cbf5b6a4032bb44fd808bad403e8b78af3756f472563e050526527debc1ec49ecf5d5c10f279d06a5dbb7cca188ba212be9fd36c7eef8b187405da50dfea140c4b604dc313f28941f2c4447143a1420b31cd23663252ec0426c8465ade55cecbb9b9cf4f88e2b4b7c86cc5e2c6a4fb25c55835a2eca1780fbdbb8b354ba512d412e84e73764e055514e10d7ea32ad7e1a3c20dfc53732d85fae40ca951b5fc18f9ab21c9001dae67c6200b9cfc6d142565\n\n# tcId = 30\nmsg = 35373438303831363936\nresult = valid\nsig = 8367893d5ad77be24a739cffdaa7bd414d66442357db9bb339a7ce862b400363d9e7014aa1ced3a8c31d65f247e96ba5649df636fb759df04b7a62da27a64025bbb9719c7ab1d74d63d2ad5a324db8718742e5438b780ae630499bea065e2215df9313fd45a57941e9632ce66fe13a5359900a0ad5de9261aef6a11c3b98be765c94a6d24fb7c88fdec9d6fa52ffe975917d3b3d68794c6fc899b0f6901173fa91345df15f1d08dbaa0ed77e692f9de80d6670a95bce1b014beeba77543baf4092f4b2158a1f27b62cedb0bd3f2cdd381d9a46bae1aa34c2b8c36a65d4e44fa5aab1cd188d4202227d6fd537776980ebe636dd81d3bc0775bab23ccd9623d423\n\n# tcId = 31\nmsg = 36333433393133343638\nresult = valid\nsig = 99f149e9940d2a6eb2e824b48838d56f383e4503cea71e9ececaf2a6e9d616c1e941fc0f8994a0373ca6325f6de2b76be043e4812d361d89cce166e7c0f4ae8e0c2c8aa053ebe4568e0c5434acb6535902dd13901446a38d7905eefa51a22bb5b2a05b242b061643a8b1538c342255438d46824c43c5df1fb84631147b9cc689d7b828f2bd5abfb48bd40a1b0ff6866eadfd9588a0361d9bc6a076b978b9f855a36732207816c8b3c426914c73c9613ca53ef8261fc30dc7a15cf7c858609265946626000a1465d41b076ac9ded93b86e95de58c1a4d2b5cfed5d311b6f24cbf257fb03c47e443cabaf1e766167f524e6fb665e42ee046144f25544d46d34efa\n\n# tcId = 32\nmsg = 31353431313033353938\nresult = valid\nsig = 20d044f045bdddb0bfe994a34b5437e61446f9568f3c7d09137430cfa17e3929ab8b849ec7cd632079a88f994c0f4a0ce23f2976595df198b4f1431205c29b3fa1d37980855446d25327ee669324c3666022c0100cf1bf855c8774f3aa4898dace7a16693c614eac00cb337f05ec2588f670370c3ee40f29e8e900da16d1dd28aaeb098f8f3b918c562f8c2512af238ed4ecb3be4ae39374eb638b021419a3e00890a4eff70876fabd74eea1bd56de05dca208928d434e7342e9179471e958e235a298f35edcf9ad77411f824d5c53b4308cd08b0443b58fc5a868399538e5294dcbd2e94d02c719aa91ac12c3839bea47cec649620b73235f368fd5d977e033\n\n# tcId = 33\nmsg = 3130343738353830313238\nresult = valid\nsig = 4c8d64aeabd2e12c8f2e3d31ac3f4b861723ab8f9a52cb8910b298fa3a735bf91284e9ad92bef3995a1058fdb0f696143d92a99c69c233f60f64873882c1c9ca8e54cd03350804aac319747c5cb8ec6e42f6100474158111b30548519e02ae9ab39507efe50b8b212caa82305d9f2d2c43b2f75c5538b0ffe9423e1044b5fa05bd675e1afbe6d22e73ced8dddb3a00ef37211136838bfcd37655203bf2c830a62f2c707030e2b964443df1ea24ab1271fd06b3d6c1ab78b13374c086edab36267ac065bf5ad799d2f27a6f4bae708be1103841aaf21ff547474634e94c7ffec8b4bdf81cd00cf0f0e6f234cf2d208e2af2e2fec001944e9444b005c8ed919903\n\n# tcId = 34\nmsg = 3130353336323835353638\nresult = valid\nsig = 0e97e294583f528af631e44c02563344657ed47783c119a9d28d6c0f39b6ebea40e1847b9f2fe2708bedf44d2037ef4ba7464c630b8ea5bfe1c66d4b8729b20ffd22fb5721199e884b3b314ed1a6b8abf11c72314dce375aca1d02aab773d88830d1b56e86f45b1862482242d9ff57a1473876c476c33fb8228420f3a6a31f85b77aec3a8d60b383eed4f07dbade1020f5afcc08132d0423319e85f51235b4aa5e16c0b183e0fd653e594c6b17f25d055b410b78c890f29c7966a8096cc248906084176e090af500c9c5d9235a2d35f231bae74deb9b860a541d2bb933ff0a200ccff8ea3642e3350562cf29dc2c1100401a9ae0c0f5e1e6420b219e34416254\n\n# tcId = 35\nmsg = 393533393034313035\nresult = valid\nsig = 80aa94e49ee824191050c8bbaa73b352fea2311893d8b8e00e61a2d14701783d364e15fc09035482747711fa1fa72629460fafdb23474564527447e0c05be2ba895e2dd1853b9e6079afc1464f7c8689b2ad74f8cd2bbbc7690c91bfe2671bf3fdb1a43927c5e73123f4dcddb8dff9f06bf254ca2cda0a039939ceaf2e196f2cb268eea37c515d0082e5e9b4a82719c6f5ddd6e6a779054325c1ac45d6c2599f2c83def50881cd9d3a8508749646c9296ae2429a96f580d7cfc54b2f08726ed3caf7c3e5ab37d32aff309b1f34c1b8d77e2da69b619e3804ae6ce439e796f86340dd0bbbe7ea823857d9e4eb1aeb7604fa16f4b0683f78a8253d00fedb5b6024\n\n# tcId = 36\nmsg = 393738383438303339\nresult = valid\nsig = 1e10e4135796443ff3a815be4c873f9f61675c85137ff4397f600f4f5ff79634aa4ffde2195419fc78ac82eb7be206f91443b12d743457cf7fdbfac6d7f66fabe26fba464d7f984c6a502b19c8d4b634cded91d4289bd84ea7b2fdf2e6229bf47b40feb368692f60277eef9c0228bd315a3237458107c8fbfde830f8c32acc4d172e8eeccfac19e99021cf8122487f93175981bf9b797ff869153b8addaaed1f184a677fd694d88ee0eda3959bb3a0d8f66c361658359eb117eaa91f02c6c0889f69f9a14fad91d2fa443d2bb17f3aaa41928546e163ec2d09ec5cc9758c7cda12fb29692f09abb987a135892f17afac78014624298b1af79a523fc0cbdeb120\n\n# tcId = 37\nmsg = 33363130363732343432\nresult = valid\nsig = 73e39468a5640718bb56f26939ca18406995013cd10a7a72e65d2e6b1df2e841c1a7394135ce0e5da4a830bdfaac5bc5b2d8ddbe6b5098a3d9de96cc639823f7a1b23f769ba18d0d4772c1e989891a4d60a95bcd42160a78931361522da1ce1f10204f57c519a10c2cc9ee3145a0a2ac31c37b3b5e5572aaffda559f05a684402bb5c3b28c6a2ae263214073999508d96a96c30bf02fde3de162d937c4f2b31ffdebc42f9267e621855fd18eb97c0cfa4977c1a3765b4ebce955a9c87130baef1853497407b1922be2f43b6deaf7910d6f8fbfa97d870f16e17a3b9c133be1391e847e103096fee4905f246facbbe8c95f62d15f302cb27e8d4b69ec249af4bd\n\n# tcId = 38\nmsg = 31303534323430373035\nresult = valid\nsig = 40e3504284c59620caf145dd9f2425c39c66bb4e0d7abddd694b810be4a9e2f728d706531019e7e07293066de0dd6c7c68ccf32ff2d91dea74c592c504916148551c99ddd5e4ea0a906500341b1f7f6a03c4901827fabddffaf1f028139db5292554186b867a012520d554bbc42b1d73d52b397a7c310e7d195037f15fb1fe729f577d1847894436b9828eca4fe881945c1a38a40805365dddf6cf7708cba2948a15b756757d6246dad90985222e4baecc7823e4e7e99d568a9da144a5b556220aae30b8a8d916a050a869c70368607dd0092ca9b5a00865d3bc1ee0ec06df53f9828327127f33a97796f6b0b255f1cee34328cfd2ca1ea3e692d0a94e457ecd\n\n# tcId = 39\nmsg = 35313734343438313937\nresult = valid\nsig = 72f7f4bf01a6784face7d31b19c19ba1c75b16eff419f81b39c1c17cd489ecafffdb2dfeb33045cf679a455336bd6869ae61109043687293bf98ef7ad03afe6e71ce4d43319743c07c313b12a728c8a98256bd1fd735152d1d2c83de2b8b57cf9bed4691ade15eabd261377c8e26bab03d0da055086dc4ca5870bdcd9ef3e7e0973be871738a3e389d774d5d04d71ae0a3be03746aa4b7f20afbb3a44d9163cbf4e675e36d01f016087d4e7c68b2e3020f6fad363948804b0494d7b38d2ad4ee1288bfc5166b59ae3db2c2c03971fd42d04e6fecbd36cba6390fdd878b67a2c6565a7826671144712108e37adbe8198a2bb3a371c90d8c6880dbcc948cb4f775\n\n# tcId = 40\nmsg = 31393637353631323531\nresult = valid\nsig = 084cf6628f8f96ad842105198bc30a72bc3ea4aa4bb01176780f384f9f4ef2dc9b591d042c56c898e48d468226a9a361a9c8e0b27986fe6499112d9f425e08c778d01d3b221dc110411006373ff903d78678b5b04319b5f96ad1", + "4d1395defa4a517d5ca7307983a7819192ae7d87828eda55391444cfb737889f479437112b1a45c687a563a07660223d7fa199e0924d6b80ea18de201a6d8e08a80ddd0954032cd3f9ce0d85d0180a08a88d813c6ed289decf3f1c1514adef9a9662334d6e5177d3dcd24a2a170a6555d218aa30638a206b1783edef43aeb6f64192f2fec52e2f82f4dfe23726719e16a3ef873ae37488449634833ef2b74b4766f4ccffeb2a\n\n# tcId = 41\nmsg = 33343437323533333433\nresult = valid\nsig = 4a510dd6edc7eaea7ee9302b007844433b010dca7be4ad12a8165da93fb8ff74ee5b836769608a1e207e208a7d7fb2606c9f0bdcf71391ed5171100ab738e54d0180a629706db39efb88b690783ca9ad25234bcd6ce0920a01f74c9afaf36500434519afb3e8ed2b65a947298101a751ba46cb7ee51c37903d60f6ac8a7f3bc726f394dfd5b53c12d5703fd719aac9589046f9f4064853fde4c92374c1da4fad27a4f603cf23a9ec4ee478677f000ce18feb791b130c037d4347abe36901586728fb3b09262ccd0feb79aa61eb3503283ebdb495316814a74c74f5819b165e2d0efd65d53e4f1e73d76da1847f8f8b955678437b4584bf6d8a8a291684a1a99b\n\n# tcId = 42\nmsg = 333638323634333138\nresult = valid\nsig = 12b06df28dbdb8c6c34610ebca8c6a730558f6669bf160b8083b4a18a4d641c333d770d03c5a6a165db07305c0d0deb6721355d4c5963a0b614bf0ad522ce2f339fec301c61bd3540d0a7bf295cd67a7ab81401e3af1c66e5ac4d77e95c8b5d00bf128dd1f47a847ab78ade22f6ddb158e6da46950c13eeb10921bdf3b5818506d635020810535db03e291c503902f25cd67e2d2f731122d9f18c7118ece369adaace1c74222b47046476d6f48910a7d6b6dc4fa528199d54a47282e59948ea66bdc52b9dfad6d2ad34f19017b2f929ce5684ab59d30e0252b96c762987c35c77eb9af34e568fb7a2c2c7f698cd487af1852e17af1bc2b25feffd31315a6cead\n\n# tcId = 43\nmsg = 33323631313938363038\nresult = valid\nsig = 29c01987266ac014487e26052c19cdd9658966444197025bda28c8d47a67f7017dce389dec619d61c01f7f1758f8d550f9d4aa98d6abfea6aed8143fa4143c853d4af2ba3c5c5df1f1811d3151d35c6bab09ec94aba0198383e326955a1ce54d064c6d734f35bab7b18d3d36d1ff0ace46701c7db004b75cb44ba1bcd2dcd2cc76d1b46cfd91d2b2f5b03296224a8e4e450031a32abef86c1f06a008b56b1c3c499b8eb951ccbcc9404d3cbc68e0b0292c4d141030d6f3db18800c987c34730e689a43f0436ff002233da7e8be5b242abb13238db247b0b39af3064066d3d6b44da065ac9005ea21a1ace2b8ca2729f5de2f579f66f201e91bcc31d5b430e322\n\n# tcId = 44\nmsg = 39363738373831303934\nresult = valid\nsig = 400026440dc38f61c873f0e4eca152d72e4237a685ca69091b71938cad2259fa045af81d9a8e568f71b2f42b9b5fdba86bc3d5d5dd85dfaf2c128200bf786ba209c783d9a9ccdc0cddfcfef579f6c9abc4aa4b4ef41f39136fe1d960047778fe29712bf6b27817069554ac10f2853cbc825882bfad9845ef304c17e2587e124c6979427a3be80965b25b6ed25878758cf3376c7ec7c2bb8ecf2529475ed24ab2e37beac3307fbc2bc0d51b39005da9fe87d848cbc1f8625d47d7dd855acd1b1fc74edf0778fe649892f1e9750110adde7e3606f32551533845a5c45453e9c17d4b812ded1c9ccba702a1d2148c64547f6b53b8cdf854b9fc9ec493c52830d769\n\n# tcId = 45\nmsg = 34393538383233383233\nresult = valid\nsig = 5ea77a298d24682962746d11dc54c138a79ada1c4e1431bd06bad97ac4d0424a500b7532a3540b657f934a7232f988ee659c0243337d7aaad534bf15eaac5735144cffda19e96599f1d1e1e187da6da5fbe2f9ce7c1240a3d2aaa3c639c5eb8edbbe4eaf69ae8df45286f85dac27eed162a87f71dcd4e70a9960e706e6a4e3b5c5afe00d741a97418e89f0f3bc44137f06935c767bb04338a3dec5917351c65251d74af5e5698248eb498dcfdf498aae03ea8cc88593b98b34988417ba697bdfd419001216e57b182781d07d3afd0371e1de64004fafa538c01e6040926bb193c34f3ba820331f8fceefd87e78fa09b07afd0d116993ec549cb3b7f1043ca605\n\n# tcId = 46\nmsg = 383234363337383337\nresult = valid\nsig = 6567fa3a976c472555e45472bb8a6ecfec7e0e80e802d58ba53a255669101d3d362e64cc3460942d61fbe617772d381dd345b73f4bd37673375823801bfc6d1bea2e0e9cce5e607afc3e66c3da25cb29e23359cd93626efcff1e9e79b0a7cedb75badb69e10a0cc09e26b3684ea11e3c43d3af040da87cce5b1e30bdbdcdc7bdfebbe5be5542e18b62935b0c2bf8b3cf2507aaf2bed209bf4e7fab1fcdeed47c9f7e2b0dd2e4b0b8d3b2bad9368f58c6de0ce61eeefb9b3b98dcfe7881e81e67e8e8908a6c71011ff69ce21fcc31398a99804c9ab48f50bcbca80104a8b67a8003880cdcb114c13255d7b1d1dcd7f08aeeaad06637aaa051cb0eaffad2420df4\n\n# tcId = 47\nmsg = 3131303230383333373736\nresult = valid\nsig = 742e9bee462eecfef3e7a05d24c498259e56c5bdb9d0a52aaa24e07d68c9efdcd64dfa5d3d44ce73c197188a9168ec7aada05a3aafb8d3e8c45b2d2094f2b2f9df6125e9f0a5c129f33db1387dfaf7724cfd548f08a94593893558c34d9e66d331bb0719fc73152241f3e305d1a7604328c12e65be342c0f49d0650e4b32bd8db65b8674c3284549d4b6853db320cab0d019287a8afaf2486d749b8bbdd80378455112d5d54265c5e94cc3debaac80a6e3f0ba47e58311bd0f0407ac90b35d66a8aa432f7bc59cf0f6ff134852a33f997a24c737817c90c89b22cf313d30d9b9dade41371f8d6abec63a8e01532b4d4c504fc4e78ababdf325970f4dc617e4d1\n\n# tcId = 48\nmsg = 313333383731363438\nresult = valid\nsig = 2507373f2b7f35f58d9ea31cade482f13a066f4dc89f38a9359f5c6adb8b4119f0a62fad114417431a6408869a2331386dcede6967fce30a06216f1464b2a86f130b4eb64ee63ede489687c82d578c33046f6530b1f27d65d026f9498409fc8458f7aa6032d64f692c163daeae124b2ef879c5360d78985327fb6f20db8cccc32ede8823ed05313e4a3cc7784ea029a42b110d07186338e9adcfee27826d04150e5d81bb02cb1a5d7a0950688f213a955ef2703a3dd4702abcdb6a9ea85a6c764ba627afa354ddd98d2108a05bdc3f6d4740ab24f2dc306c1ed9a55fe724507ad51855fc82b86ee6000eef49918000381f717e12b6a6942feb1313cac525712e\n\n# tcId = 49\nmsg = 333232313434313632\nresult = valid\nsig = 82d4d4acff7bdb073c4f9230b81f910fd919dd1f8795e7a6e8bb3b968bf92fb2d62b592080c3bc6e3bcbc1433a2f3bb4f1548e78ad86ba9e7cd1f11b0317eff4c3e7eac79bfbf15bfd3896b537afdd3f41011ceb716edb7cf63f5db774c3f50655b13e5c587606ebd6004edc169b6802425e20a382e24e54f77cf4b6adf0e8568cf2c8b588bee5ffcfc9017e67aabe73165304e883635182d19f489596f7e9079c26fa97ad9e02ee41717179bc0ca3b380f9e639052ac3608514a235387b593fd6470a3aee56f9b8d73b5707ceb6f6c926ecc4b8ed9cd75b8d9a8931f72251e366415372fa8fbcce42d77c353ca926fb3f12f60543111cbdbdb1842382fad25a\n\n# tcId = 50\nmsg = 3130363836363535353436\nresult = valid\nsig = 7be5861600d3196bd6124161c3272ab36167b4137b0705b648e93cb9cad8a4be37107b2ab449f421fd57a55bc3fe9c6fb6b829dd6d6fcbe88eeca9bb93433764fd0a88113155a67a5fb514fb2101372e6dcfe9341c9538d8673472a0e75c028ccda4aa2e10f793cd0e10162167a98c9bf6880a78651f77774eb20339f3968e9cfab74dac2261ded111c047ccb187e11ddf255d3695e25192863d632257444d5e469fcf0ed88fdc954ee94164d70218ef033cc598ba974d8a53bcbd01de333d4e185faf85b86acff65b29f15d97321ddc21f9afacca674eccce7fce1287ba508cc2a55c534a2c5d678b92b86dd02de641684c7c8b0f14863cfaec3d7eb8430486\n\n# tcId = 51\nmsg = 3632313535323436\nresult = valid\nsig = 602440aba9a9add4716555fda1dbc6a934224c6b762433485e160620fee1607e9079eb265ddbbfaf75fa266b19d752b7721d4ea5203ee2dca840f078dad7517ea2392142e4a9086401bc3ff19ed5b7628390b0175bc982668fc86e2fab33acf17f3ac229d12ab7cdc29ffb98649669ae3e6443d0916b611489c9642d356ca1bfd3aee35d96bf9bc7a9b6734be5f77f96ddf2b9cb366650619c53dc5b5beadc7d5815e7b36b58f3cede2d47ff228cacce2789b8d875edaef9b0919bdccb9cf90a7b5eb4e7b996215c943c017e24d1f2ad8c3bd844668d0deb566d587e378c38d547f8aa473465fadec8624fdff1f980c9506ca12eb999f2b8f18f0f5c9b2bf460\n\n# tcId = 52\nmsg = 37303330383138373734\nresult = valid\nsig = 1bf65b125ccf21ec8894576bb4662a39ea4e34e3bda2ca48718c56719d1ec0d9a0645d06440c2dbe96b1f85fd20206b001279ad273e1a656b554fecab03d588aafa8cbe957a5d58c976f85fffbe155bacf78f7a39788027a1cbde3c01c7957f6bd2b9708ac5d6611a82e43f1363f72ecf4583a32c9c887ff5af1a70b0f0815db3d89f6dba2f06cbcb19cfc49851b0220832809a158ae9a8aa4508880f1169a301e7096ab74dd4477b3f1b6242f8bc6591e61bb46d871efa0b74836fcdecf371c04cf786c9899d8c0cb47acb6790327f6b4edcce4b1ff651fba61c4442ae3e4d9a23601ca8f8aea8c6055c3b1cae8fe4b506771a4b15ec8d2c1d141dced2d908a\n\n# tcId = 53\nmsg = 35393234353233373434\nresult = valid\nsig = 9fb119ffbaeab1f338eb3c8db5aff1e13310172cfb7b9773620a9fb6e8454f029840c88ae4f33f85558a82a9b9bc2b9aa4ce6d49f5343f79011f67f2c2f46ec7b787299b8fb9d0c46a18acce3530c9b88153022964d87dfdbfa74794f5067a39bf3e445cced358bf57bbc45b7a29e550b5fbdc0aa91d1b4db74b11d99e995ba2e1ac76c0fba496fa95016b8c9544105328b14b3a3f1cd45314ab67dd8758df4d4e66a01dc89dc541e9d46feec6d1469846c778d8893d39a337d317f66ed7725196af6e878d53663e05b8c6ea215264d2c897424af9c30aee5021086b6cb6db4bbe27bda99e929469df9192bbdfdba572864b15f468916f25f7bb87d3d02f39c2\n\n# tcId = 54\nmsg = 31343935353836363231\nresult = valid\nsig = 77590c1437b5657d4df385c0c639e0e4eecf14df26e89d673033944c5938bb6b1772b5a9aefdf91c19641c1fdca98836bea1dc8219c01edc9eac96afa2f04587b76e85287f78518cf3fbe1e84ab574a9358c1b0ae3f5a843382faad16d0a7f58a7fd73868e4ac2dfa57f8ba692734a689fc0b4eb270a425a69fd3dfca7fa30e09996684dbe7f959df6025649c1b45b0697315b98fd66e587ed09abd43f0ccf4dff7ad83a8a29a701be77ff87", + "982c3b828b48410b7bc27aa01d659e88aae6f09ddc3b221fad1523f72e0804f34518d213c65b47f235fd626419edd0c93734eaf11a91c0bf8c4c3e7a9c95c8f66f0a690e6d7ef75b6bb3080db75a8ecc3be86853\n\n# tcId = 55\nmsg = 34303035333134343036\nresult = valid\nsig = 8cf02d19d7dc5f00ec2938220bf400befa2044fd4033e874ddee5b9b1f71961bb151e670743e36f167e02a8c49b227930e236e09cec23db417eca18740f78c752e85879c32c1b3e21139ef929e99149fcb0ecf0e334f24242780273e9ef0893df58996bc156779afaae7dea56328875cd85b030c8b4cb4f466a87c449926d9133f452ff7510fdcdfd66f0fca6e9d1a84b2fb9a7d001885f52ed63aee3a22059963df11eb6a67f11030d2841cdb90d3a096739f36ffed1eb538c1b095f8172dfcb1b5a325468f78a9ba11e028e1fca67758ee0f66a7c7002f9d4b31784b93e99e838c44efed881756c5934798b9b934b751d4343626ffc6875676f4373051351d\n\n# tcId = 56\nmsg = 33303936343537353132\nresult = valid\nsig = 0e44384d7e96521340c9f02ae7e320636e685e965780e191f9b6b89df8c1c8f68008c1691b3e706e015911b519f08813bf8fa5377e2ec2ab858237b9dbd458a277e5e42bae0e0ded39f7c8c4f95fef46044217d2e4a64632741c7b84e0063a13be92380a46fd43f6764ceffb5d8a32eb0bf3af7af9a3b4e07ce56262a4ea3ea2f3abd4a5eb71849820031f61335e4fb8269b9c201c8f6ca662d22ae1bc9b5834a291cab864c9aca7e1120ddcc6597efee5fe3ff2bc8f707b6567603b536b8d17d3f0f0bd9ce74a535c2012faf0b6bbba544a376af338f825165ba31bbc5f88fa86ba8bac02f4035eaed4708ce7972563272296097a132968aa37030af8e3c5e7\n\n# tcId = 57\nmsg = 32373834303235363230\nresult = valid\nsig = 905801fa11f3066c89d0976a303f21f97f042dab0102a066763dda907ac822a23f9bb99a93daa2d414df4e7122f74cdeae5970dc132cd0ff141c5698eecf43dc6ed1c93ed6f6abf8b5f056f674e96dc9a69e293510019515decf3c1396cd84f5a8ea6eb6a82a9197dc8af18fd4715ae24f0638edfcd1c12c5fbaf6c7c9b270e918457b3afb0b9a4be1f238410e85bdd7072ed684b1db2d96e0af02b7388624107132c7e120041fdf0ba46a7f0c12e18b8e72dcfa1a293cd399893e053080773a5b9e703e6d6bebbfb81fa23da8145329fdeeeb72d60130bf057839ce758ce6136bc467daa8ee8dc9d7cfdb966a96bbae15a33167c101f3fbddc164cdc0e94e04\n\n# tcId = 58\nmsg = 32363138373837343138\nresult = valid\nsig = 366ab7ae0fc28753f7cc8e7111398b78c8323de7177e51f9b6679a87888873f9e550aaba9fd7dd25f2db2b5224664d5e738afb98cbf7b2e86d2ec9a10e68cfc8228adf866f7cace0c6dbcd381ea62dcf4e239a2b7bbff1b83db5790df09f2b8bdaabf48c38bc5d00914961aeea73c6e703bde78b806dd41047d1799ba8add7160d6abe468aed61f78cab2dc739b95f5ff2b9da3a2cabb0129e1e064af17d37a194133e0498d7f2c8319c01ef20ac6f4b81eaa037c86104bcd03dc3d8e5cdd65af7ce55d6c483520521399aadf7f2c434838067a255e1ee7e35641b1997836f010902ccf3b2b16748ec87bc52db2e658350c110aa50bdc742422270d3a2bd315b\n\n# tcId = 59\nmsg = 31363432363235323632\nresult = valid\nsig = 92832328c12807514ddcd919636b9bd125192ca98883069b2ca8edfbfb0d4225db3a621bd03a7116f9b919b16b2568a897a793d20e9c4328add71ab2a2045c78ab1c3cb769ab957af2a3b572b3bf2c0453bee10bbb9fa7efc60605215989979d7ee5724f73ce85c710aa00f24961e5444f09a83a82eafe3839f8dc3fa5e27a6cb122ad34f80b181142f762a87fdf8e8e77b42b3416502158cc66dc2dce34e29f1c9ebde9d60c7969b72d9e841110e035807e2a6f85cdcdb875b3bf8e3ab1f6d05f4adb3d738e9965c52d81387cd0a702ab85576a50072a994f13c7e691c3eb1fc4c46652a5a3f482ff8fc25888154cc8a1348913d1cd0c19d77c55b6e46e50f9\n\n# tcId = 60\nmsg = 36383234313839343336\nresult = valid\nsig = 3fc17de411c99243a0e5d4afd5131f177bcb4edce034c91ad9dfa87e3c31dedea675574e917954832608dabc72544729fbcf91fdd1f114ca43df0af73e2226b73a1797fde7daa3cea6b086217d656798f9abde4a563e5a8de203480b42af12e636ffaf7c72d2dd791165ce3ce4b1e21e8b749cf8e91b78f561867c892361c1529c2c9ee780b6a79b72b447639ced5b4a04fd3d2d716923bcafd793cd1454710da5c785ecd2c44cac2f79520bcded6d3d27f9d2a7137a68e69c34d15592e963f915e88b8030cb7f275a3be498b25310ab4cfba7bdc0756aadcfd3944a609c40b9531cfed55e7f9f6914d53cc17dbf1d9707fc57ded6bc04f690519cdb2bdcea29\n\n# tcId = 61\nmsg = 343834323435343235\nresult = valid\nsig = 467d466cb8e157b9cf3f51920b18f1db2401f4d2c397ec58bd3c6ddb1d5e9d9414583534060773a13382f93f0d8852fed208e4ff560ecc2030772955022aa594767262dd02f1a89ac48bf4f7a2c34e8c764e32b39b9f9d1d857164fdacea8a93e3456f4dfd9658080e3e45c0f17bb599c456e2cf5946140d467755eeabeafeef440c72272af08a4a4a1391d96d750211361e5fb78e9439c3e3b39e01ac66e40d84727908db4dd7ca742c1454762b2022dca5e1bb1ca5d051589988336bd5334f72d12fe9ee85a9c77ad4e09e4183928661e72cff1c0b480215b9afaef2601399a47fe6286acc710850b7c22d276e901219028a296edf83bfd5ef21598e5fb55a\n\n# tcId = 62\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 67d1d1c0a398148625317c3f5e44b738bdf461c27a59594b39ebb2aebef233c7809379e54411411b82d2e7ac88f989b58373d532c758baea121878ce9759441738d121881c1fa2d04421f02dd565b12770d844611ed1873a0b64d822709a6b78d6d3892b294404bce6711001d6c3a54546c76a1d17819674b0be904497a233b466fe4becc832dee740f9ab79e5b9f5db0b0f9aac0084ba05cebf42303b5ca2ad95e3d61b29ed6475545c02e93e7b0e118af92f5cddb1faeb2cbc23c9e69c120e29df7fe31991e887b3b29e77688c60e80be65cccf3d7861a7a14c39e6a6e5645568e2cc5e4a17b75db1dd415aadb45e112a9b582b2ff6e82a43d7a7347b7b56d\n\n# tcId = 63\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 842348f2b2cdd4c72cda7dbec0fb8b114e419cbfc1ee1b7ce5d70ec56a833c4ebc8c114dc3c92164b13f4692f236d6b88e5618b23af9fa979fe9b5d8eb228b1efd0da8e47b4c4042965c8b9f08eb9f6fdf7e472c88f532d4d851623b4bf99e021e82ef313c7d93179af810b70aaf929a395ece713d5fec3339e394210b56f1edf26dedfb04083bd24eb0d3ca117761f38319c3b97a9453993dafd3d2dd8c01cd63117f8fda46f52565e4d7de9f718f1f23254c4f9ee77ad1414af4d4dcf959a89bef438329516cc9b79149db058d206e6d7c0133e7c870335f0490b8c569d787443c4a84ff665dbc6f4353dec66f9c488a3f91071ce19553a7c156025f1f81b2\n\n# tcId = 64\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 77c9dd7786f0b5cbe76f20abf24361f8979d3a6c6c122e798eda906b0b9700cd2dd26e5286ddd39d07b7c24379cb40f8350354a36b0759bfade61d3d770702b58218c5dc64ddd0d5fce405a16fbc4de3a5fbe7737032605c06ac82e174619c3004d24bbf22bd1ab3e4d432b4ae36c23573cbad845c16a1842e5de1a3bfa2f12d3496a3114fda830dd6061cf538a4571fe088cc03dd7e8762fb08b84501843f5f0362a4fb097d6fe9b96970c0c505d2f6a59754c42684908627fa8c734ecd587c161de7b7bdd69924c0b4d06cb7db2a70dd9257876d1da1ed8cc00fa68279525c346b7256c916ccf1df9386ff9d1eb27f0a5d83a00a2738fa2dbfaa500baea789\n\n# tcId = 65\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 455221c385f769fedd123afa37a42b7477d6c3ed968ce44d4982c41ad29a3f59baeb2b566dbacc91b423fbaec371f3809c20cad6afcc2b8df782e472c954cdeffca49553f6eca58781894c67fed1d9326a53422f9642031b69ff45e6a826d18e4241b5214231f7d252d4c640386a17c2a1839ba9c5a34e94b2b8f30fb259fa752339f134e54375a9a4f3a5dbd5f3fb93c38b59fc33a77dbdea9b8fab7c209e6f403d188958b5fa5481bd225b266bee6761132104890c8c25f04583084eb01c266ccbca401617120c61a388cc683fdd5d195c8dcd48f4d1a9be80c07727f78a10cd26359c8dd1d87614f8acac1506c5bba79b30c0af745c872433f17e8a52a94e\n\n# tcId = 66\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 5d1f5b3ada8d4507a7447829f26764b9f794ccb4c287870b5c5aac649f9272fbbe22f064cb75e5b3813bf874c6977dc286ef1deddeee1a84a9302fbbc9c8f86ec45eed5469bb85eed8618efdaf29ea4bc0a9cd0c0be71e82bdab6f15a9f7a637f297e0b5ad4c7885bd27b89f4a52452f0176df3d266f9c13fc44d3fcc3e71e3cc5ede3fe2555ff2bf2b72a2198af709e29c2f6f5ce44997c02ea7aebc9a33d0c609ff0f586e753e585ee5052a0bf2f71247cf43ac244818c84347662338384d6c1a4c9b9ebc14f912db688e658d453bb2082c8def4c440a6b25e03ea4459c1c9bd5495e2ce9343439cbbf03affca63856cc50936d49cf2dcfc73679c9aa32e56\n\n# tcId = 67\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 68\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 57e8cc1dc00c07383d89a79b5c8e4f5bde2a2ba55a3c7201b3291c4d805b1b2eb36f8f326b542342da180abe508669bb6cc2dd54e327bc70c1e317ba93a0fd21e7fce22a0c597c7420d1d5602ac43d9348ba3eba561f250e301ab955b0dc33e4abde32946b9b3e86c8bf07a44646ca595960bb988fef04b2824967e9da8b0264f1da0659373935313a574b5380f0b54ce1bc0dde423bd3a54f6ae5fafa772a55c1c44eb6edffecf13e6e5e1eda", + "f87a79e338577304141fbc44f0e9eeb286f553f879addd6e12e436fa3af51ad53a72f2679f0ed102d504ee08706fe111eaee49d880d1a0b91924b3b79968ed0f9bff446dac199ee89b158c074927d27b864498\n\n# tcId = 69\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 1591ae743c58ceb723a76f502e21ff6a65c24cabf5f527bab5a6f2a69f20c776fd2251e43ad22e09b1486ceb1935b2dc2ade95e233f296cc0e5a8af8109659be76b6bfdf37e14837fd6c34bfed1f19ec9d21f974b984fe4d4773896ebcc7fb862fd641cd0d77178485c70c2d68b4d9be1d863f6f254b77991fc9053f5d5415d1aa74ba9067e2e6607fb651638c9cc0430a40c9b691977b557a31d95a290a95b56ef2ec8e4313686a9c5ef48235912b210fdd2c50aafac28131104c795c42ae75810b0284b2d257e81ecac4240622ebc261ab8bceeeebe80f1cfa70f18d782aebb97d803ea3a895be541be6941df103eaaabd870848bfaf58cdaf6cecdd5a10bf\n\n# tcId = 70\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 6f2f650ac10d5aa2c16703f657233da8c035da67a6e9e950dfd0391399da3a86ca7837dd7cf23e864d9cfca1fe77dae45a01ba21d23dd918ca7bba094aae376100198f59834396ec942fcffdd7d6a44953f69bc60291b1eed5921a0434d8b8953beb9d1e1b15fdca7090fa5c646847c0b759e94f056911ad188d4b0cc399c8c345757d5022f1a38926de0cbda8648a7affd9f031262b1079a3681d58249186fec4f6e98bf151c9b680a46b88dada9b42cca365cf908ed0501cd21e02a5bc4c0675f23ece50987b703499eeb94b6c40b5cdf22299776fe30800f887a1dfff18cd8a7da8c2388060dcb78c925c54b4e620cd3fe7546accfb3bbae9de08ba886009\n\n# tcId = 71\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 37487b948dac95a1e57bf1ac40888b8e074cf9db9c9825e7b7267d3b105a8c67cb9b33c0e5fd641836798f41b8b1f024b13243da4fa5e527098337e5cac41e0523a28fb135ae060e7c1e4eb9556222bc43bf1659f65a2a2db108ac9b7c9942a5658fcbca5622c115e34ead883ea4ef03f7f62990f282fa791b04489053771329a482467cba8a13ad98f27ff7b61c24a452e085d432130b7259e59b2866e55320119b21e3c706f3596ec174517c43cdbe957e012b573961b1fa925373945ab3209a1007d197e1e9301dd0afa485acf6643ba0587a69f7c44bdf1e53c32f05a3b96db0c462509c292d7de09a6c78ebf1131453d37ab037176011296730f57cda97\n\n# tcId = 72\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 241a3a7569210a47b83125fb67039a68d9859b971a49af62bfd4bde01e3b955ab166bba5165657fbfa519573027ef1a0f40cf7533f941d64e09fcfcc35cdd564c1ee0823166dfc054ed93e01c5831c036920335d8b8daa32220dd5c0b6a071f08d19411c6418aaa9883375587b19f0720e79f184535d7ed8c5360e667ade541c1ddbf9c0629255d8d286eae8defd34f000a3be1fa7fea65a4cd4f64b11c641806fa57d67b4c6b7b49892f38dc5d13abdabfaa6cb91ed6022d4fb467cdb6046b13fcc8142a97bc34eddd045796f4e19b1885d04c51f53e5bc0c272678990aea50a124274cdf048ecdb7074ca86f36841a7ade80a8aec6a653a0292c82a1b5c678\n\n# tcId = 73\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 484d71be451d1f3667e01f3e7f1a80db9764f751ca87ffc6352953a773f6519e8a0f210d6d43b417670d9c0ce3c11a668cc83394a5e2d7bcd4ae98e50ed26c0ab66b41ad2e28fa703f2da04db0963875842d90a77899642dc297cf37a76fdb007a990c5b7af83e264be9323149fb680acb69a19e0c5aa949c2094e0a18abfa1b199b73363654638d86f9abe73a678ff0a41f6b702b70ea1aedb287add79b9a7f4a97535d0db46c05983072481dbe43fe6dfe33229ca1aec42e19afeb5bd35f1e44264c1fc6c18fddc95fadf1b1676f185e5b55f9a2bfe6b6d40289f240633513828a7b967748bbf0ccd1d3fb9f6240f31790a789d8c709c278ddbb0f706778b5\n\n# tcId = 74\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 3f27e0fafc57629ccc0432827187766a30537e821a2fcd5f1088100d4d8b6a6a9ce950f51102e3b55167d4b49e0b6a306e0fdf90837d0630859093e90a94fa564b7a4a82f4ccb772377e07a2b5a6873d98bf665c92df1ce7cbdb583cda83947b3c9c3df5b3807b470f23f8d08df9fba78e13d6b635f9f59d2d4baa34831dc6c3e5a29695645b1ed50f3a3389e9e119de765e6d7daaff0b454eadd10f445e402bf3cf4d14f4d16c2d9e4fb5571cea7929d53019d414d118e82d491bf3fb3bd7427abd6eb48a0ed277221c42840eaa1fd5e7ce658f7763099c1d59431e498cb58357a659aea8e181ec0fb5ad8a55d1c0f129500a25b85cbcc8733fa3dfa9ea30a4\n\n# tcId = 75\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 006e3f343b22fbf5cce816efbfe06636c1619632665591f9b1fd2bd0aaac9a0f776c501d7a232fd2edcc12ac63b3b56aa12ae87982c1997e5ac5fd50f6a5c350e6e84fc17d2149547babc4830f8c2eef1885e4bfb15c9b73322b693ea74eabf43e5050c477c0e75ecf75cfe487f41f4a2df4972a16e0580d57946d504fb073f23ea691086e5bc40e2b2e1dd653f2ab201ad609fd06983a5cebb98678c039150563f6c944bd6558b422de25b9720887d97ef63b34cdee0139391c48558941ba94bdc0c22e605dd9cae669406c3ddb361787ec6437c87a688b0c64f0290b1bc0ce17466592a48b83b27f0442bdb15ef753ad56eaabeb08bb3b7ace7f9620fea113\n\n# tcId = 76\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 838d0ad34f2393aec53682ed48f937a458a32216a74dcc4a1e591a538119c3b56cad78b1c4b722948373c51c04a50e46fb5f3034f43c5d260364617e6f03af7d75d66baf3dfa1ca94e75e77d304c63ea5015cdd7fb1e1cdfbd6b5ebef2b2addf697f14c97cf9b5cbb1bab7f612b3a428d32cefbb788bdb70729e53d5b8cd14f586aa2b9410bbae2d093bd11f491469479eb640847514d72269cddab484d882aaa9761839aca9851b3d409211de83df742674d6305cc3a71143fa5077bce9d3c8da1f6da0df5c271f048ba589e5c34a23ef12747299d9dc4299589364f2137ace59781e3f01011ae145a5e1af20c74516e0b56d729e49b3de310c197e7a760efa\n\n# tcId = 77\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 6b19a03c774e1c3c24ea889b552e99fe0068a6cda022d5ccb6d75a447cfa0b16b5b144208dd407e440230ffaad4f12a0746da108dab5d4f162bdc9b24dc68a2e9e077ef5702472c4ceaa89c29cac41b4782b92f6c87e014df2483580cadf2b455f823fe12c9c79a155ea32a9f1ed120fe0f13b10ab4792fd94b99e0aa6ffd27c04ef7088e3cb935436529650894fee6b5b78e0bb5aa59ee7bbb2fb46af784e2c33eb76a12cdd7d0087a081d82d3e466a381dd37d25d3b4a92756723cb1f1f49d0481d12baa21ff77c0291f902682226d99d77d36bfe58d1825988c97d9d00e15ab48c9919583fd60593fa93ab1ca8e7dabaa912f6535bbb05e82bbfaa8537b0e\n\n# tcId = 78\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 682673d7c98ae70039e9f259275c884da7c77136e06d47e8af72f82a09614a08ed125c6d3a80f701a61dc2ad967e9637662bf40b48543e5b620daf37e3088d2a54a8c5147ef99227cd5cfd0a478d1fd1ec62c495cb89046df756908621099913aa4142c3dba2a62de6a8899f0acc7932e33581d4102020423a99876777c59292d597428f50b846a39d709d38c3a842f9a9531f26dc2a11f518950eee92560fb6b6667a113237a3e6d7bdae48bafc90a76a6839b97e6301e546f5b136ff23d662593f74920dccb56d47fea557adca4b36820469425cdd4071ade7c5c14f365ba4e0da97cdd62cec66fdc724d3f309b6297c1c84091a74d656b4b030787df593b0\n\n# tcId = 79\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 1452cef4f4e0d46ca8caf3a628074f7ed0acafd0a16c4c4c423cd361cd61319d5e912b162bb2b7326e56e20d5f9814d6339e0cc44da9ba1be28e473880b6276a86b8cdfd91d2f5fa830024b842834bcf2d425c48b5a58464b7a3111f55ade2d3b9cdb958392efd559f6b6136cd158e157faa4b7ee86a3457dcdbd877b82d53c23d6e71488e554574b78f0be72da8d4160aee680ce485f9fa544562a12a89328560a773ff25138decf4200e2558e3b5a364a4372cd1f64fb25887b8c2b3938aca10d8727535d0eb0b73af2b7ad70656f97c5c1a97d3e2c2d1cd2732c5fe8fdc5ba6f554bd5190a54742313a6175db2a77d36d24934dc056d66cc6bd83abac61e0\n\n# tcId = 80\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 2f5ab041e87b74c0ffa6f5b0a4c5ec8d0ee3d2357a0fd2face275dbc6b50a230f2108b4b37fa45d5bb1211fb26b96d315cec9391d198ad7713faf3c4fb60806cbe6378c7a08c2e75a67848ca98c80a02680650eda98ff0c818f1e7af9ff3a3236150699a4c900c394c2a00ea65b39fea873504898c6fced5e4520bf3d69a11debd3e66ad681b7d03bbca940fbc809f03f99079d0f24f31cdc76afab73ec0b4f5baff4437b0a304a8893cf593bcf47b2f63a401f1b456f1741b3b3641e3154e6f4bc035723fc3532ee22d4f65a3963c1b278c1a9a8ce7e04876e8c327a70463e3785b9a5aa5b4a50cb4e35d92085172a61cc5407af2752a59d06b58a242926328\n\n# tcId = 81\n# hash of salt missing\nmsg = 313233343030\nresult = invalid\nsig = 83d3f4b18d2653189572e75e9b4464292ca649591a82b1569ce13838c245da67371b1ea78e4215eba8de713411ff060a980405f0bad99546989153017a380f9c7b566500fdd5a15830eb0c5f4723e341391268933a41311e9832b340efbc2cffb4baa9c5dd47783eac81a41e3d6336572d38b034dfe5ef4b94e5c3f903cf3e8e0a3c2c59cfd13f99f696b0fbfe71368cda5a1d28bad1af3c8976e3f6c1bac08707d2684f6d55c2ed4b433c9efde91b206e0842e534be7e88fa219763b960d9d5a43a479990aa9732661693b9e4da89a7bb5dda878ae43f5e1a11944f7a5c6efad600ddd13a148c1fc8fd2574b9667342c73f2a8b96511a5f75cb1ce486b9df81\n\n# tcId = 82\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 31ce7ca597f76ab95d47563f728ff93bf43d9864e5bd1229b824ae26b5a13c79f6f7957217b37e1af0537fea81616187ff08a0d5c98a92da8dba61bc5c14da3321fd1146d83c2cbd0ec0687d81f6d7349f5a0cab0840e22cbfa83f02a", + "79d321ff88830d47d4842c0b032c27a181ac06a42cd0bfedaf75f2daa53f64eacb5986545bcf150b8d433e66b698f2553f9da259bec319d8c0cec05d9c320e7300463d41eb077028c1e0a7d6d87d4dddf54c5b78d6a15e4527e37110b9b9ad2f3b2dd0db591227d41cc9f26f2349581dd89e0ba639d0cf9f8c86fe819dbadc688522b58d7284caabf843e7143395255e9a0d710ffbef6ad13f6a9361e20d2f6f5a414f5\n\n# tcId = 83\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 5798785187910703680cb2109f492c3f0a91b4a8f11d3da775aba891eedec3d76fd30a939f5d7a2baf7290c573e886cec8ecec0b1598f2cd169d53b4abf8accc09709187f32a12c80fdb42ed98d9e98b0923828f0e38acc338234f7b7a0ee377644a655f48816ea4a5bff0f6d63c3945dc3aaf921e9404864594bc323c1f3ef42f9361ed6cb8fcff2994293e17865e2fad2d885277251fa24d7e7aacebc48d61c3b48047dd7c99826b3105d2f820cd62404cad5d758da461af67677e39e55086d8fa52ea0334bc3b77f95191ffacd28ead07a34e4672577c4c65b5bb9d5f9cab6e1f1242216291b69a0c98714452f01f37722ff26589734cf6020c5ac9196374\n\n# tcId = 84\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 3747c7c116cf30567e24fd4213c126ec84366a26eb304a65d144dd9b453054df4e5036c861b5807137934b1cef351411e40654bae5df6fbe3c42d763407f273d3dbe059fc6412a366775603e064b1561a58e70860edf954dbe666f8fe44f44f87df3b0e3f3e19c904966ada52f00806f975f256d4a855cee973e20f33c31f9f2b3792fcf326f075f86f275d8ef8df2dd0abac83d491d485fc167cd40f3802f66036df4fd64fc441ac8a25b405d5ef960127623c269ca836671a66a6bf2f39c0792dade17564d31863c7e0161ee0bb88522ac0c9054bebcedb603a2d18ddb0f64a91ca5a2f0086afd0d8c07cb0c1e7f24d12f866cdcde46d663c1d4dc7f7c6f62\n\n# tcId = 85\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 1377d4997c03d885e4b95f0350b1c8091a4d9beef9533dc6abd194a1439c383622b9dca5a49da247cd55c02186829f695ebb007ef0535c4757baad057d7bf76dcfe37cb9181b0c290db16d0abc51ff32d03b6a8e56ecd270dac231c81e50c7e0203d22b991291fec650b9904b2539a8a330172843bcff0cf46f06e32f55bec1f5a734e70ec8e4e8883e3c22eab7561d9c76737025352b5c9fa9c76eaacb909d23d0d7d7b6f1094ccec8ba94f149f81946faedb39ac557cc28817c9114a89a6f720d849f90cb23ad202ed4682036b3cb70b6fd5df0225900eaec7a21e39fd433d3200aed4bb4abc3b531393fa462fbc920c918f1938d33ca86e7ca3bbf1d34d74\n\n# tcId = 86\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 7d0f3cebb4372569e8f02df9f42222151cc31659df8d5078e9ee8e91030735d27e66da8c87039a27ac28588e8431d7ad1583534e8570318cbb2554c07016bfb02fe59af00576b7908286f4b27e36f768a118c3f3a1ceaeffee03a1b67270c3e489cce5c5f1171e0a8734553403047faff680dbcd70bf0fc1f0f4461bd4e68c6c0978da3490a137ddd8f62bd79c6a1daf70f7a9a3e90056ccd41c62f04915bf128f74dabcc47cba85b0fae47a04da32e17799ca150814d27793816e6a198390c35d1f35abf6816761a5ff0c28b1e60eeed244b1f24934174a1d2c469475f3eb8842eb9f5c6224386994aff9579f26ea7d73c668a113ef7dee8b2bda576135d452\n\n# tcId = 87\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 53f2db262358c21792eca635806ea1c1ad041d9334e977a25c1de0fc8233ec6f01737adcf1fb4dbedbd0078406ecad921e37c77d4585b5eb5ecc74c07ada1864a3c13acaba9372f852aef55ff2dc42c0aaef74bb656b8e0beccb7b9eae587fdf3b52eb678af1032e60ad12321c9c10c445448df523856ad262208a06b8817ee229df825f080a72d5e1a43f222215824a8ea6d455c80b2563c65be1eaa0455714ae576ae67e46d006934cf0c137b8c9900af9ed716391ce96ec43296e83a5a10390ed91f2e6753ed0254f0290ad899462b3b7af42c3c5f0893863a3b5e6052d3a6dee554746960a07fb6ecdf781e47b96023ba01cfde4c7214611a1be5735e2fd\n\n# tcId = 88\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 11e8938238a20f0e6947015987380dfd88a1661606bd05bbe4298f4746e81e3bbf34aeceba5360f1839ee0d7d7fe3e578cacc2d24b15eefe2064edb1fd04ff9a44c0a600ebf00f64fbb1ead4246e5ffbad0c22441ed073462f26e30b61a0a9142b4f993d1b26fa32e11382da33b9eb5855cef6736bec2f4f5bc6bf82fdf7da62346a4d9696c53e1cfa789667b721f32f7779daf7df85474096a9e9a7291afc76df3a66c7a0b997b41bfb71fedbdb4e65095efe1a81d35b66be55432e0a6e33905475b46a94e05bce7fee84645f500d8ebd7c0282c35f22774e7089262210f83ed485cd2b045acd5d62b4bb53dcbeb2588dc6535518189cb0220a7c9406e454d6\n\n# tcId = 89\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 39a8e947c919ecfad7ee28bb708c1f9e825036374ea0f610bf5531d89b813d506fd00bdc15850b250ac50fc556a676c894fb641dc650999eb6239b91e2c755126bbb9fef5783a5ab834e0ad91c60e720e80e096c091167a2a1dae838a16fe0ebaa8efb3573c89ac5d8e0584b5ec4e2168ef097f937ef0f0d2a2f964a8e6a810dd15b9c27b234d788af3c4f54dc97035657ff19f2835555dbafd02c4ed3c76654fa868babb71534bfe84674eeddbfc2b27a517f666bd03a27d8173bb92826a231cd9a241c171445b416934ebec5f7eea4fb41a61937d9a98f61b2fd1ca8e2be125e85cc8d16d553b114ab72395e86fea52f54edd853e9c5156557e38f621b975a\n\n# tcId = 90\n# bit 7 of masked_db not cleared\nmsg = 313233343030\nresult = invalid\nsig = 9c13d877ac2bd8c02c11e29ffcc0c1046dbc9870177e843c30b499c2bf7fd09daa43469caf2b8c3e955ded95e4d62209f7571bb45593f4cd8b0c7bc9470a8a693837248b5a7854dc8e37e752d949479272642994182061d7af80b0ac6f6e984874c8cdc6a5d7d17dc9e9de5ad12120cdb9f6c0d09c0e11b87b3423e37ba9437a4f76cc1e6124579e5f79832b89710de1968ce46e3e69fa185c0a924e8cb5f996ee5963f6826dd37714de264d75545e8509caf8735330cde7ed4228e5779471827b83757c466022117c45d598f5a4a7fed7be4e1b4d320f894879061a75d1a41efd8dcaf3c61733ed8ca2cc2f83714f8fdbc7a97cd6d6b97ea3d36ebd69890633\n\n# tcId = 91\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 00566c95524ad0995eda7d668fa08e8f75bea868b60972d6488cbe8939bbde68fa5206e671f35555f628fa707ce7ba0f468cfa8b9737e0ef64e0e23c901e4965ccaaeefa9b84363a3037cf5f9e044e295fe57f32c1125ca70c639b22732aa4c4b3e5562690bc1d7e7e74dd01c674212dcb63c58fa23333d45e1e4ccffa5d186443cc785c5ece3f2d7a8995e25de6a171cbc960c272c2899f6f87ceadb72eea1be085245669ac08993591e72bb9aff8bc29388b35c99f1ba7477af9d16754894a50d4caea4bc80e2aef2ced27f4a1c88be284bbb40cb8ae279b4e38a4cd8a51a92a279a799b3316c2938e1386043ae7ab1d8605cd310d7239c805a07a19c7b17d\n\n# tcId = 92\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 2b46a0aab5f573e32ffbcb411cd99d2f90aa9b1abbc600b0cda0d824f79020aab47a2494caea20fc93017e77b99eb73a1f8a550b611e2747ad29207772629c2ec40918c07adef1c90c99a15cddb9eac88955b4093a9e743d2420b4647e167bff8ddb07ce197db89d8a7d3f327058a41cc459ed4f6d5d23dfc015479d95e195da37f5b1fc318a3f74a0ac5fe2b9569c7fd99b8eb3ed3967a5eda1d246a3b225548f67ff860202033e7164d4b99dcf95f4232d18a7913f7258a33179133a6fb4ab5a4937b642eacb92908cf79495745abc583524cb0236fbfadd2c7e8b0a6597017912b4737fc01432625a508355869670bef25d32afe6753c38cfd96ec38953fb\n\n# tcId = 93\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 3b65975357ab2a410c2fae7f2f0381e6c40951260451f2eff05f0dc707abd013a996fc10658a6963f462877a808f61ad0362b9f640750b19debf3d59692134e357a49ed3693f50924b7c8a1824ccafcb4b93f7679dd892823cd479895d41fd1c40fb89fb1da19bc1fdc72eb038782f24ba3326428cfb166a475a9fd27f94d1a0ca6fa0e6a0d2c2883db3eeb2c0a59474da36211695fb811b9e8bc7f05ccb1f50d26d71a2dd209b0d269a736610c7dc1f7343a4736fa2b8c27827dfcad49bc4a86822cde1579dfbd646474f11e1a60f5e4ac2f2a3a5421a7baa9dea5d24be03cb6fee771dd808b67f886b37be5a300f6551d7e7636e9997b3255ceed5187ebcc0\n\n# tcId = 94\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 4516c8a39b8544d1c65d96472fea0b2753060330e76e6f90f41ab349953d26ab1b95fd87484535b68c0afcf1542a9b966a9bf98b89a53bb28877b34d168a4ba8201215c55f9e86d30b7159093517682e6e956078947e54e3f3a779da032af7dc6bcab1c0b2a6693fe0eeb9de0d158bcc125293a6f10ccaf1499b6ad912ed5912537e3c3c5f18eb0ab8e701056d7b973b8b61af918858b87152b6c40671bf96735ab1a112972346e771e7cd9482f6f59d320b8798a271cf21779747f964281afa1303142eb3e1841772de825b4b5e68024dea014193c4e1c206bdc6121a8f2d41837be3d13833ed615d5b9df4ac4c86cd25344fe1022df0adabfe2d46f7d9f0d0\n\n# tcId = 95\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 96\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 97\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 98\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5\n\n# tcId = 99\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 000068caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n# tcId = 100\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d360000\n\n# tcId = 101\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c\n\n# tcId = 102\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 103\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n", +}; +static const size_t kLen144 = 88303; + +static const char *kData144[] = { + "# Imported from Wycheproof's rsa_pss_3072_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = b520065682633ba54c9b713b2ef19cdc1fcf275ba1744c2350da7307a20971cc30eefa37d1667d23d20001a674f0e00df4f9b9e1d5fe7eb85cc45cab5dd625759de83017995c93d48b126df03aa74ef87daea0c1652dd370ad5d663598a383cac217a208b22c7cf0e448cc7ae0555f892ccb8ded6894cfb0c328cb542be0485d860ca77203081f3b04c6f55c5689b1a66b1c24819a4a7ea55f32e00f61accf4b411bb320a96c990173b63ccd74e7da7df5ceaf33a39a8acb89a845a594b164ec6e22cce940eb06f2d487a8bc4574451878c2bbf57d241f76586e0703bf5f86bee832d05b75fabaed6accadfc1ec2cd6e619dbb29b65d6e6f5e118ad52d82a955d21005ecd63fb382f32bb8e2e1e57220b345cd6422bdd84a91495d0ab5775b08139edee960dab1b4ffd9ea5b27398b58e6e35211c3581501e99bf5e3f17fd79381528d28a4927e28082f45bfa9519f98ea663dc84c50317adf0bd5da98b01459011cec61800534dd5afc5a567c19e4a400f06dee74112083b5322615c144ce3b\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 8e10f23f49011d761946b283d7152e851ee76e5caa1741b0901eea317d8945f2a0368551b3f2b3a6a0d6a939aebded8fea0a96dd1d037be33b1c35ce78dc89693918a99d547a1d892f4047c09fff7a6523acb0cb0cddebcd4a6fdcc309a466ca9580fedf032bf56154f8d79d5c4686abfd2c7abd342b37e5373b59a07fa865b118c44f2c44b851306dc97eaeeb638f14bafbb09c81996beabaaec28c19f06ffd59dbe3080e0124e2386418052735f541d496322c03ebee6e4dcaba24dde9772a9f079973df26e854c255eb48df50c01d49831e54b64d0ff862d03fb4d82ff204d303b537176c50ea56761a83d0aed8ed2deecbbba981c8aacd1300051a864d1efdc897f31383ccd6f181bf976a75e7a7613b60b3cb2a6f7ab8636f672990c13017f2981c11ba36096cbea898f016c581ee859e950bec195cc4e376e134341b2fd3e3d6181ba4d377b2aab6a148c6ea8cca9ee3478297e901856ab18f61c0233c899841e5da125516cf5274dc1b22e2a51c922daeeccfad0f2a8bf84e531bc4f8\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 22915cfa1d7dd30f50b4c0e4cee42c5f0aa1b7a6644f8a11e611b2db042b122af8211ffc1dc220b435d8919cf64d715b54ff8a762f702b365cbdab455509b97d9b310011467d4186647b957e2efa404aed3b84840529bdef7746348385a1c6a2ecdb88d1cc2b40b36c346386739c39d2815938e463a35348426f17d32d633b873d6124d8b49a726743af7c0e56d63394155b63089c63ed8897f8af2a2260d33499afab11c911faa754ced5acdac2de571f39c2768716e4308244a99d1e65da7061d2feb8ec8b4e517bd5e19cac626698479ab2019257cf83ad7b641db2345b38006d63f84b41772b90037778389cc30ed6aba6af212d9326792af746d7bca9211fa344fdc2798a490aed3a2840620c2a85e3d9b9c38f2330072663e16dd26bc414c7d68f6b11d2cd3e0387c1834c5e2262a9e2dc1bf7c0108b4e2052566c7a941ef6b38c8687fd7abe6add2b745c2c2d680ae3e5646ce2e717ef9899c7f3fb1e3088e8c0587d86546f752771819595a7a3d422820ceaa12e3ee671a456dac673\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 6e471c9342aaa27bddf64b02e8805611a13770b22cc3d24cdfa9a2fc14865f59344c288cf15d4c8785089968a12e9d3e63b8179489568743448f698f316640146322ef3b611fc98396cf4a4757e48ce6701f123fc0bb8df80b63cd2371522f8ed929f7bdb709d424af6eab2eab212b43afe537fec7bbb9dd02e64f116e02ad1214ae931a6fe28a5982029088a27bb95ef2ee46ad212083719327acab5ee51c82d94d5b14f6dffd2242ddf9fbbb2d03f945796a3e35346f2334ca6b4ec5d9ed6f1584688e661951e948cb95fc5cc04e90cad98c861ddff514c60275650ae3003185efe0c04356b07f361f7dc7e17c5de479cbf119c2910aaffa032aaa81ec9eb9f7e1ad21a410ffce2502e4829404d01ae090ef289bc28c9c3f37d3fcae33e1523b3c9b81e301f51d046196fc15c90d58bd35a1fb11fa04621b32cb61e718a434a0aaefcb676cbca888554d1e84d43b108fc1cb123cd2d300da630fb77a3ce29a0f53af32a5ce81c5ad772a199d1180a9e2f090847cd87ddf7b39aeec89a6b492\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 39f7dc9010bf3c200df551499404ca40346e58ce0c56271e2eb7835187ae57a7b9a0688c9b088ad85e128f56c0299c437a1a9a9104f3f51aab7043d5714963e46ace5d8e435fd3e416dd61474e9dcac3ffa6c3f0ebc4ada987c4313ec36f2c43d2dc749e496fbfad639dc811304388990b98cf10ff616a866bf5d98cd5199bb74704ae4ef365424130738b9d81f893a5e2316ee6daea185c170f69ebd2ad455b56676ebda9d0bb0bf4d3357475ed8166a3d2dfe6e093c3a4bc5bc2fc2275e6779d809107b621138fc629a6767d5809c85bf88b46b14a8e4ee9e310db746f4c0a79a3d36f6e305125642dbf823474fb913a9967a6d120e82a79ace48c501fed8dd6edb9634df909fe6775f8f6fc5b79f5881e1f13b7cde37c7c3f97319cd612f8ad2b1ac921079f18213e5facba0b83c17887e69501a6d2eb37661f03590af1a15646165eb785f467cad0c625947e8a8a4a68f8938077d5ef7f1b8b4da0d09ad5874bcb22ccc4ee36b9341b974a51a1d6ca009ded4ace9faa99d924a23421aabb\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = ae8472e987806e5110beae330056ff974abfce7ea9927979cdd14346747414cdce06a9c78eb1846c75dc288d7da531531da49ba7651d3a1f79e3297fe37aa73e075cfe5ac004b166526cba55f914e0d2fb1f12a60a3222dac434fa378c2e7b0ea9c2cb5e22cc343ea624ad6cf5545a61364cd67d6dc23d22e4888a253e940ff0e0ce0207c1feedccdfa10f50d2363bdbdf10893e3967d7555fba157f9a450d6bbe63ff31777bdfd402afa72c3a2181e5cc025443cec30d253653db7e82eb7dd488e6491fd25001723eae2e3106c7b50c2b73c142a4a31ec4", + "3edc9ec9011383c99a095b36258a0a77aac2af19b26af8a166b130f7f57f03a0e8007d5ac0eea9ecbe14fb7885538a22c13de5771bfdf523fef9c9b5f52ebc2af7902a0baf2a33923b0d0622b8fd5c938214aea4b9e7f0a647c5520c3a94a29737b95cc623f20bba8eaa3e9db60116fe1760d9b7ac1841e7586aec9708212a5bef2ff67c74462883062e052ab9fd90ffca0f0a6166b71a93bd289a1d4acd2d6ce72ae0b91cdde72e\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 5ce99063bb6c6bf8e46772e8701b63abb2feb5f88c5b76b76c00c719402ccb399d6c6d8c67ed5b6fb0f1dfeb8f8dcc5bae03ad57c1b0f53033dd2503b9604fdc40eba51e4b03c91a8d12b1a3b929b1ff1e8e79cb58d788114d53f7e07d87a885f6dd4d26560583986f7a84dc466ba981db06beddb1fa80b0a444b9a56c82f98a927977da9fa1ca83aebaf2c43692cef61b12995d8dd0f3bd6bf061025ddd34af3e0257203390a80765ef706acf7df6f43210a7928673d260f2f3c30a9bba9b08735dd9aa3ff2fc27a2ee9e130c88ba367c3d1428f173ea08e273886bc153c11e24b05cdbf9b00573b013170417fd96b0106f72c073f1216ba872eccc9f56ff9e3e08bfde64041d996b117a114b723cd97f70e07068ece643f58d5ee5cadca7e24a18b0a66ab724fb653a01c5749d51d4bf5408d2d2008b30eb3dc20b0e14510c06402f789276b6237802d608ab49378001ed6f3604abca038e3c7e057d95e85c9e668f397bcce18765132142d6b0f118c511e57defcb316fe41dec06b988d911\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = a7e0ad7ec64a600e37b70dcaba9036bb3ea95508c961668c4e051c8f3faa454496ce6c009ae9cfeaa2c194c5c9278e46b75bab40c52f077a4fea175b2679121d30b706139cde7ab571c89f4d19abe07c67c70afd3e4c2c05d60c92bb2a639ba389826088899605f1707ecacd88e42491debc78295b44f4e09791f9d541823ad5c48952bd3151ef98ace7e251d12ebcc9370bc205a1688c9a5e9190cd082da1ae94f22eb2b0b46b2a5eb2273b0b324215de187d685471a07f673d43e58f36c1e0f074765dc59c1ebce449229361d07522c7f03f27eda57ab8bc89ac683d27ff4f95a328892507952f14d9e3d8643d805c327eef8bdf13ab7e6634a103fe92cbe9e7b00f9bdf8efa740866c044735799d59245aafb8d04e8bd55b66fea31c9fce4cedd4abe68444fc8a6dd550c3c8f1d6597bde001fb977b7802e0263b7319ad7a6c1c4a6c558774641b204b6d3eb2a2aeedbf4a38de6584031102a1958fab6fbea9976793bd1ea6c9aeaafe81515b954c7615f8c45538f40a22adf0ce6f2c977d\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 6c60107dd182d5cbf4550e7a6e3a652f731503d8fafba3a7aa52e7ac93d4de4e03d911e058ade448285bb9c3452b60897c099fd4ba22ff4194eef1a3fcc3250cb9ae270c33ee767b2b4f18852612e27c4ab31d8ea6ccbf122a357a6d6e527191a36e0aa2aa925f68e158c8d5decfbf8484d16c2ce906826dc4773d59fd1a4032c2f576a1ae8374a13cc24abe15ac1403452ac7cd8a643dfe18c911ae34f773520fa94472c596dbd6f5b93227951ebbcbacf60b18e5a60330eba9bce0d8a732cfc27c7c0b9e22070670a165846d9d7e9b24dc6ee9759347f5c6320b63789d5ccbe9566d9f3c534e152f2686631a41aa85801a31a7f31cabf959cdc93755a3acdfcf0ddbbc5298e91fbbb2675565912e5fd95cd59b5744833222247aaaa5a5868da4d1d1af590b8633dfe6105e0a6abded2497ac7e46650432cbf0b784b9447770b20f75b2618fb7e6cc6fc5cadb022980f78943fa9f784e5f0c8fb5192239dbd3293a38e6dade27a07e08b54597029f92a8b29b700f842fda55aeb3e0dda79405\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 2264d276cce22aec8d109ced7a048ea44d627aee577f1117998316af911e98139085bc92f120827b304c4ca519743a33f7be05d8a49a28cd716ca65f6b976513b33a440b6e8ec5daeb85d6a5926dc5015a2d24d94ff1f87a073867bea137a7217254b9bd040273664c58d61e618ace6bc942c446401c721565f74fad5bf31475093752e3a67fb32231ec8d26649594f32c5d453f0baae51b20dcc24f0e5e82eee71d85aa77f33ab01cb588420cf672461c490db52dc2fdcc7a22ccb2b92fe8de0e3f8110c93e5890076db8292b76f6fe80ecf3120b4f3824f77e538551ecd435922c7d433f0467b445026d0371a49a73fb2ee900c094fcb8ecc4c01b330dde0561fcde6bf2dfb6d26f3c3d9b897342d8079e29226828a39d8fec96b53e060a771fee75b482b2e0e262069316bd50e8e210078ce56476f70f149bfb356fe1e490ea642ce85a8664e50d0b3f350806d9de3926c8b2d417facd926741022fafa2f7b10781397cf012697442ea742c11f23a5b5ef5fd10369207cca693fc8af57d22\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 677dd6918bf4c96934e329a114002460d67d1e8f729eea9d2e8bae78f4442f1a480ff1e5d20c1bd81e61e5f92e5e42881cb1fc22bb7da3a4d21060bb23bb17c234a85c76f7591fb54ce0ef70ee7556905eb670830b9d10905d100f0c255b944689f23e1313b0448777c52ba80b767e07108818aa5131f8b75c84fd2d7b4035e0df9a213afa8cb913482ae0af76a997aaa0c8cb63975bf9c006d89fe4ea6ef035cdb4137103585b9d05150b086d7f329b70efcb428ddf76ca36d44af742326aa05039382af67216c12f7eb2dcf01595f3b78235341be0bf7ea30f6294239c7a4b1ead8f98bac805e88caeb482b13c5bc552329a47f1e26233cd24a3b4bfb6be6d9e3ae8e58f06c95b513ccd5c61685ad0aef627bebab0b72bca3bc374f49645e403bbeaa255b501dce3f1f46f9d74d1aac2f6ec5eedc5440e3dd9f264bcb1d98b855d1cc788d796919d014ae215dfe2361a1d13aa55a7163f4164cff38c5f62c00f59eb20efec26e0fcf66d37f12c7a9d23dde68f25620df1a4d5e5e55ca94634\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = ad825df96215ebac22f37e5948fdb2281bb7ca69fbd9ed6d3f4d2fb21cc6f9d07cf7779a264dd427a863f0cc36a812f125d6ed9bccf6c233ae8958299cfe645b17331131c32459377524326f2e9eb43124e2e2fb7a025e0ec3de6551b7ec0aff5d1b4c4c03e454efcd250a7c9711f21e71f6e347b5e7400cef50eed93426b43cd11cf55c34a9d6d1d54314b1f0869febf3b92b8db421c4fa000e98ab0f891120d7c0a91bf50e307fb2cafa596c800a05e6f42c577a02aa2169cdbebca14c41d10ee1bd415785d7594347f46e700f62bcaa5cd728025247f39c40edc0977015604e196fa30b1a49d84132469d1a870a57d272c98ed93d8645a7bb92a4476057bf2b134ca20e45da22cca2961fd52d65f840b07a87aa4ad104af67d7bbc53ea95016883e3ee087f39582b13e274df32aa419eabe12a9eeb08868425c0a1ad06798d0f7da987340313cd4254a4140a62f3bb1b76bf57a2c0712ef2105f4de0819f6c724e0a2d92f87683a2734bedb4fcecc75ff26291ad862fc3397a9f02e6eddf4\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = b3c301918f5d1becd6c88ef04f908509e9b62acd207cb0c03e968b56d4237b4a23cead6fa5a72ea6472af47ef3854766376bedaf67c14a7913d48a74aa6521f8ac814f01e3bcb073e3b85f315bf51468c28444231402a77cbebd0cbfc98b06fe925f5d59b4353c21abb324696bd5d402e7cc5435bccd8eec3eeb8e7e4b5d4f8f719adc00eae9180cb3cce9dd89231b637651a76d87c0311d0f9de0f7c9bd7f6485d7d600bbf105e1fc6d3744e83528fe761c2ab0fa0cd5c386d2ee44b0967ce2dac3abf1c723868569f43ae09f1a5ee32245b11569fb2dfff08f6f40c0cf45d2bc7fc524a82779328f850ffaedcd9de27db5e1bd372a76fb60fbbcf88a14a2d820647f660a894f5420c7246d9d9401ad56d577b56907d9fd3b69e35faa40000207d704087e3a7011cc343cc94f99ba653da6451485a9fc17bbad2688b511ee68cd90288e4f5e83ab742a54be006b51fd75e9ea3ad09ef7112f793b61d5470aa16255db34a8abd5963b53a940c890ce89f27b8f7e535489e965f33a4b9798c301\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 602883fa2f9a6ca35437d377fffa5cf5a5643898763960c7722d5a5b808fdfb4a09a0cd3bbc8c5d2fc8a603229a5de18866aa0c5d88c2272784784c883918fcbf47ac62f5e7523d65d6ab486c68ca245199e1acad7f087b4e822669105f4f45a50c1a43722fbac7a9b88ef7bcbe5796ac9601a09d3fd6201c77ee09f591a9d37f48b3e93fb6ee5d9683d3ef4d581fb2ad9e5cb2896bacbd078952f9dd04540fbeeecf6d8d9fa45e791ccf3027130d1f1ec551fb35ebba6ff329c7d31c5bedd65303d56b58f826f38917b3f79d82b442f4668ad479b7e108e2e59d88640c1da8ecdf719156ddcad93d568d9593dfc7bf0bda2519454cd2b1dafefd556091a2a13ff80c75bbe9ddb04b1e55f7edccb8a0832ef03079564cc367cf5b696be4e193001d8c3bc5124227359c7616381a473b07f31d6494c062b2a9151420b828b830f250e66ec570e38bc44e26bb83d45c7f794a9460b4b6d746c888d084a754ac7d75ab1bff232be49dd1fb73efd76fbda26e6411b3b1de8671518f937b8ce3ba8c0\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = b259676e6b9b49edc04cf3f6b06267a6af924d278c21f5994c2190d0cb667d641291361a8bfaee8236360a4dffbd5ec4f1f8d9f85b54c1bbe3c9dc35332443c2509f0ad7d5ec42571d755af814cc0ef48e514dc5342ca7653d535789c8c21fee5e547ac3c247c9be6b792199db48a17299b5f9d3bb9881ca95751132fac76d776ad02872279bd77dcb43b0cae7673e40907c1bc321e14637f224481f58b90f875cdc08c49515b4be482147fcf2e62126fe4c0310c0677eb7eccd9352a9cc0902b54e4b3454f3ffd69666d16469be958a54aad1d2a58eb561b4b222a4ca5edcb5612d03b8bd2f7f26302b51567b83fe1d59eeed36bd2ef128cf476ccbabe4eb55d8c4ec91a0bda8445972fb3d74a4bcee2ecf5e90f5bc19d4e9908e7aa284cdbc37d22ff4ea70479e8e2a9d2bf0a6f02b3a2d2643a34d7d4f93782df0607c806177f61963b60c08e4154a074e92b26c4f2c678c9da7cd9d16307c7309559a3935a8eff9593b5454a1cd60c388c995df971075c5397feb77f36ed8b9987b8ef3db\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 57765fb30e12f08143d72d7a4232c91583d60afbd8dfe01c3b50d861140d3c5bd0a17c3a51dfad96d8ce0716348dc6f62c12c16bab5401a1fa90950e96801064dab2537a4cd0b5227708618ed2e34e2eab8a557a316a5a7c42b6b297cfa646cf8a90af59730fe5d34df9a2d4a9bb0d8bb1d8e5decffdda6f50863bde347c17ed88e232c4d3235b00ce5db088e514f3490f8d459eba993d31f99bb24a097c0e322454e6c6", + "8e6c9cb0042a8fe1a5897458d097ee68e5c79163f05ee0817499a98f2af038aaf02c488fad86ee0c157fbd1cfb91a17bc00971326d15e1c02ab440c46b07c807dad0822e2dce9505ea75dcea6ba134b58ee9eb79bb70c2045c1a4e6206ee9e12909b1c3a7a386cde5fb1965101159dd34c586170491b3b8cca3a9b4f1d0b7438aede0efb1cdc9e7712abe0675ea9ee87e2cd8200cb08bbb85a3f87695c3147092e153c292e5a32475bc4800fa2e3d037070bc6f130e5234f5cd74c9109d2cca14eb83bf61747712b4b9c90933d2c25d876ba1bf7a8e601b472c154c5\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = 27c677b2b0b546f23d5c3ceaed4007cfff9fc1e0843de43e7ddee8ba32274954d79d9fad43c10e890266123f247abd2ca351a15b196a340b7753d4cd3756a091271a25fbf7834b05ee9c5db4a8a355d5746ff9b0ff61061ac4670bfc9468a4101917ca61bf6da1b029872bc3fe14a306d4d43794deb2a1ae0a4aa5f432e9f33e536f39c249fc3ffc294a466e7bd7b3d35e7ce5f15a3564df9351770fe66b1312e69437a028d07fe31ab3644fa6d16d9e377fc3b8820f79d220b03012add369c630c7c01c123dfe1be97d8d71d491dc38e7781635139636213eda7655eb2ab9bf8c44af43d3c098667c6887be8e7f29cc72dbbbfd5c43ece1a0bdfbd01aaaad107700ed7d9468138638afe7c7ec64e66738e188400e8a71f89526f8170fb56a200f69dc9e4664fc24f40c80e117f3666f91ccbaf8dfae5fa145c9a94ad64219643a66c93a682a365bf082661a00bc8b0a663a6f2efbdae29744c735937c0f0d7f6faf7eacd068cd02c016cd16741d49170bc40e2fe3565cf3866db6fc1d528959\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 9849c3250c03095ecc9ad404f9ee412c4ee797ef0a0f0e806247225fe03b3ca5381157476b44bb8909d1cfb24504010873333dc969f035e08d552c2b9e2da82159619a75aaee04f20c5359450b6d85dbdc98e3174010395bba07cf3e64cd1ee44f81754a64cab4efe7c019e05ba8b3577333fa692858c3dadcb0f7047cdb1d2bf75b34493988ad84794517f18c934d95a7ed5ffe75aa5b3b5608462f18bf5c656e6f1e626d0e2ae4ab7c69da07a2616c515b88fe33feba7cab21eb9869ffa01cde1cf3b318e4b7c7089ec2d3748f93ce3ebcad0d75bc2e5f9bd20f10d6d946ee112be25dd97793f7295cf6862ec116f306d5328759c304329178a50a01ee76b5c5352ae160e0e7116f6e9640d7be77287c3910c929bc3a2a5ce1cbe08e48d5a27a11062d74442c5ec8a92be9bd8aa82db17bec86b2e141500fc5edaad589bcc0a0bc152a69857420bd5f6483aa3db9d1fa4ce7f6a1e20964b1620e8a3a13839311a61031e31bdbbd3e1350d1773ed132355eaa3adc8a292437293c26fc428844\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 9d81ba9fff8a9e27c1af56efb4b48088785b9677397843f335f038b46e863045c5c48fc689ec046f87d7c2a1e22308558181a1dd95711088ba84db74ebe33398f77b760c693371a403d8988e3e90d025aede1e7b9d428ee4ce4502a307bd151cdec1ae148c6e0d36d50d3c19eb1266714b0111ace612dd8abdaef969c32cf3bae1bdd4b14cd53b3ffbe59ca75d279be3a933eb3496e0cc5d9b639a5899accc4c91f820cfcc4609630cd47f0f321a349f049cfeb5a74dd1dca0f898a36491cc3752c2a8c30d39c24f9cbfa21cfca15600e4ae161a9834f839878bbe66e201b8c8aa8a430913e157c3c7d74bcd901de43108d6049805bc85ac0b29869184fd587fe46d47eb740a86009940240480d3ba700a7130207637a438746084011f9039e52c1f6aa5c99d7093d14e3b4da4148f825a222fb8b1c35e5946d02ced55443cf0736f72011b129a40632caaefb78c44fcfc31fb2449f2d46c7aa53966b7966eba8d143b3220045991f66b1efe10f696d5d568ea87598ab5fd6655db506bee18be\n\n# tcId = 21\nmsg = 33343633303036383738\nresult = valid\nsig = 8f0c4086ce839242b6696e7e0fe63be07b1da1b77447520172fcccb41f341ba944927acc17cf1ca0686692130be5bfde236385628b0e99bd0b3ac5fcf2b64bb6fd0c8ca734febbd00dcc9b99887dbd4a8c5f7bc97031a7e18f6143d561b29ef3e25449559c5563a9169592efa534fb9b75cacb7ca67b3a8ff76f5642dfbffa93e4ba7e51e8a5919afdbb1c3ec91c9cba076902383614b2b1906e6192b451239870afb863e158f8ec61127f8a7a9442610c1ca47e5a9c8a0f460548320727ef1633cf9092cee65e373ef16322faddcdb4f671d91305ae8b3e4dc9ec65f5069667d462f429b025ee6f05cc38f8ea53f4cf0d81b4ea90f7e078e3b8c804ad2cc7525253fa81ebf50e8e62bd6841f28727214d183665a108bcf8e6f99b284a86b3f6adb5f5df71acda60cb6864970cc22769c1b1ec94abd1fbdd1c21edf2c375bb167ef66538dedde6b6b3c7f8634443ff163482250f1c8e97748cbe8ba0370662b1a10fb58b1ab595e228af813d3fbb852e9b8014a98afd6d96b2e27c0eb7688595\n\n# tcId = 22\nmsg = 39383137333230323837\nresult = valid\nsig = 2b1f093b09ddb27d5c25518781409db471c83e84e50332c47a183a657ce60fd44ad9a786b4d6ae9506e591a449dc0c46f65d9de5165079bf5bb776b70eeb826e3c58dd7a916e37d83b7ea6aef7a12f1aae1462844b0bab4acd4a5c9cffeec5c52b0a6d36ebb34facdef9c3dfc46d8a115d3835cea32775434e78dcdbc3e5444c82c0fa23f52fcaab3b8dec372ef7b19a0b391ffa8110e77fbfb6fea8a8def46a5f6ce20566af9e0918404df4446d6a69300eeadac1b0f5b81625f44cb9abb1876572815c2363e5d36691e070c19baf8c654e6440572739c468ab7589d262d3992fcdb2947d6f18e4be55572437e955d7f8b60ff4b1f1dc9d0c5e6bdedf913225fc65b0acbe8b6baede362cb615e86fa2335eb818878d3dd7bf689dd448205cdf14f69ca5925df66cf421da220035bebe9a78ec5fda4c0e4f49a456f9fefc791fa9109eaacb521e27aee95c120f4f9cde093b7a802dac80810b9d4d5793416672b58ca19273284a581ade84fd6d9bfa31a3b5254bece875a56fb3ad6451b1a661\n\n# tcId = 23\nmsg = 33323232303431303436\nresult = valid\nsig = 2b04d224788e2e94204486c111c0b07540b8e7324a8d57257841ecdb77d6ac906ac795dda72d51b054b5ce6c5232e061a18d67d64c7c1b1ef1b601cce28b84ed3645afc616eed7d1ed7c21fa348a418fc7417449bd997340e99c672a5b83dc43003fff82771a30b7b666fee40e078dfbc7af969d1aadec237ccde38959a0b5852ba0aeb15d8864ac41dacad460e9e69cea0374cb90fe2df0468011409cbbec5085f31684142100c13521742a47af6962e7a38d682f591c8b63fe3f629618afa3902590904f3c99bbd3f2681f42196714cb6e59a6422262b5d6c8220f6564cf35b3873e356015ae3dc6fbd243c29a8b4043a367a49a0dd44b921d98005a7bb0478371710c4a867a0022742449d594a321727776d906e636c4f1c798a65df8184d7c8261413b16a4544c37a8bfd4a3fcc4dd0cca3c3049c0446dc0e27e334c70f66787d8bfce5bd9dc2cc5811ad92518e679e8d219926321b0e7c77d4743db318ac1e47f6a5dbf3f6c53831a2ec8829a07125f5afca4f9f27a968fe5d269d5d427\n\n# tcId = 24\nmsg = 36363636333037313034\nresult = valid\nsig = 3ed79e7805fd64fffe1863e6e9233a502bdf1e35622799a3fd4da76a23a80e3e6fcab61e5c3f621474e91b90a43b36ede27a8627460d04a74677ae0994e949b7b93e01868c5413af61dcb5a9290f921fdc24073e5c7a85ce910016c2872ea410c239af0a33730ed89579f8d1f0743ebec1e55600fea2a3a98e49ac1c5ae12e3c27c32df9ea5fefeb5c4d004cedbcdd30cbfc00fc21b4aa5b172e87d34920c6dd31d9c80db40cadcac6341634ecf8c28fdb3cbae6c236a71322b81abb9137baaa83f65826f1d66e511f727935e01f16cc70c5ab78451f2fc199c02051789c3683bc573190adecfc041405c9a3aa8a6e36b5b4f016589d214da8bbb2e7456b50599ece0d8b61f106955cdd38eb737db4fd52783d60676af30c0d58bcb44655210d2d53f1d7001c925f74754041e94b9251d950784bbde135ef9108ffaf59170fe76d072011ad7fd1cf1ae2763140376be701a5210b29faef9e2501cb3e2769955230bceff7ca53afce8109b7cdd3812f412482f8157d55acdeadea7d9a3b314365\n\n# tcId = 25\nmsg = 31303335393531383938\nresult = valid\nsig = 072389935994033eb7a1bd07c3ddeb07f64589180bb5a0445f7c36412de2021cf7715254528c7ba95605045d2195499e095beea826d0f86da9386078b83a64c4e3dabd43415f68a1b4f08381ed290182727102e875bdc2854a28a725a8b9934dea06a8799c46463a21a9949f8bc19f87b5c0eabebd25200c1aea8eb8ae35be9b153ae54e11f348be421127b4bfa8982cb7db0a122a7b68c0f4496766c9250252c75ffc317e6c2a819edf70609a8a5935fc8e06554b84f31a5a2e1ca855f96c86acc12459cfe92b613573af365502365a3a3f7cd047ff3a227fc09c5494036d39c7887bf1f11dae79f83c0d4fe7cfa02c8e11561f351f86b691a14af945353284f9c7c0ea73d5389049ca0195cb103fa81f45ca01a17c7a857a142223f67c8551303478cf791f0f638e02e60c7f9452f848ebf0b6d6d8d0059bf8a2d513221c385ce075e8abe3ae0a7df9e65090ca2785286b245cf5ce734e4dd2a25774583a4aec4fc1ced402f25c2353bde80c2ef3eedcb5b761a7f2b87c201f3d5f9c08d3a5\n\n# tcId = 26\nmsg = 31383436353937313935\nresult = valid\nsig = 9c43688f7ccc4286e104c653c87979abfb36869a82ff4bc2c6cbeb4ddcd4c51b833367ac00098a84ceef062af0a0c0dec46b54d726f37df117762f83872611aa495a88e69fe0e31e58cee91e3b70987ff17f703a39a7af95ee4121b5bc092bb4a1306435d094a93153ee22dc50d4d4845c60aa065aa03ca6f327ddb3c870ac693b5679ab3390e6782dac49b76f71a0dd6354240184f8dd9400dd84bc2959234a3c9aea08b4ce781d38405eead754b8f3cf4c5bdd0cbf3a15017ef4bb5813bc9bd557fe288cbe32e6f6659ddcb01ee10a48a9f9d33cb5e57164fa77784c89b6e9a55ba65999f7cd61170d826f89e3cbae123ddebe1d2bcf2dac72a798ee9d2a47e80f1e73ad28c6516b271012733e3d8c3db695429d0d67302e5333f1afabe6c36cabac97c4f302e28b3a0821db915b10c1e5bedb64bc5b88d99b7fbd32d3af00b06201c64fa66f38fcf41903a7ef1df4265c0e120d1accb631c43b7b8fd49f8f77e228b550656ff7caeb79378dc3b868ba63d8e97b832ba18224d08cc87e67cf\n\n# tcId = 27\nmsg = 33313336303436313839\nresult = valid\nsig = 807f9a9f0fe0f04c59cdb1f87be60f510dfef3afbf5fc8d13aa735778a4c8823e82804650a837afac849e78c8d1fd81b364e98589da3f2092bae5f7c041ec0c399b994cfa89bc3c301ec3980f7bfc789a7838d212866a500763b5d29094f112ad572b2a825f19510869c5c6e67", + "5209c722be18cb9de4a95b902d46724d6413581cce113a53991d748ad8fd132643bca1e5fd305247044efea07f5b17145ef2f03faa8b13be02d49445f8864e1e0b0051f5b594d1f0b912148db82a6883301d532839f6250f0c34a1c17a7e0887f42e650e26eac3f9cc453b69c12bc6548e06a37dc905ded48026d08f32a17c7a76d546296540194e95ab3310a7bbaf0c6a2e9734d8522ab46ff457f5a50238eeaa4027325d2a48e2eb0c0ae7931296d16af25abd5e6c2ab00f7b07f5f21edb7034180cfa0b3fd3cfd34b804d3d125291274475e2d3ac97bdc2baa208892fb0417565fe9f7e987e1c2a1ea04c51347278ac2e3f850d355e3ac6adff007d158697372f42f30bef185cb1b9ba2f0458480f0ff6e1\n\n# tcId = 28\nmsg = 32363633373834323534\nresult = valid\nsig = 3091947d5fa8bdeb463a0a5c32804fd244203fde74759a3101a47518b68eb99948d625b4f9bbc384862e6b33c5b4c4fae240b782b0bcb298e5ea090542f9f0c1a0cf21a42ab111cb1c8072e625f60189092a7164339e5d1eb77aa07b4d8b9cbf850ef0907f289e2b8b2cd61fd184af7648404a9b15e596ddb58798ed438ae4a6325adf39c4745360955e6a6c060edaccd38142102038bd8f1d9d5a33f39fb12f0c935ec98a0c00efd93beedd16f340129977cca90999e773b0ca9309b8da7c33a4f7db346631bcdfb3b12c8183a4a3628d713a9667ed70c9f83acc2797086f5fd5685dad6127ede04e6036758ddfeba4da385fe722e249f88366fbab3f8f65a02512f286ce0fe21f77b262d5db7787ad0218b3b30f76c33f7560668364223b65a96a272e23da285346e087f67af331fda31c507c364802935407b455b67cd05cbb15aebfa3b7fe2e031d7547dfa8aa3608bdd4ee2f722b1b4ab851377bf10d42a1b2b33341a53a7ce1094ae33418f22c7bbe84ab8b8bbf7226584bb690592592\n\n# tcId = 29\nmsg = 31363532313030353234\nresult = valid\nsig = 7aac4ae776954df9e6c88289a08c1581052f81853ccaca029e6bdb564f91e529d8223c7685537181d1a75adbf7bcbae089a7d177ba6c83bb704dd427fc42093a1bf1ea66886d7946eac4b811a111b63b464da8ff910042a35fac714e8adf5dca827bb384cb3fb040312c04fe8d5263fb02a9d08276d53ee966b690ab2872d6c102a7f415fbb19420bfa5861567ee50158a4ee141dbab2eb640d7ad768fcb68d9a4b199329d13076090e9655c33bb791ea830401e2da57e110ef068a99d260a1fd48f104f5558264542e6fee26eff4ecba4f9df16330e2b000ed9d37855b0a14f1b7265fa0db6356bf260308410c899fd00d795bedc5e1daa2b3b8e58784a2e0de16a3bb0f64bf73a50bd3c2ebb462a2580cadbb6a1e611836a60b7c8b6c1083c9d29ead4bd0b627e538b8eaac398dd7218dacfb2905133fe7c31bef29bb1346d4e6163649854a6c7b325f2149ad91b8d8b827de278db00dd0dd9827af62fa229bdfbec0c71cbe961bfa7ed25966920753debdb70e3d61ca747ec55c4bb05bae2\n\n# tcId = 30\nmsg = 35373438303831363936\nresult = valid\nsig = aa165429af5269d35d74e8b033ff4db882282d22b60a241e6d0a546dc191d03c0f75248db4dc833c587db41b9c438f485a2152f8f81617756533cb15dbd0c7565a640327dc64da2badc23052de4b8dbeb9477056bacee1eb95e93af46d6d68cc795778b3506b14de8428fbe8782600e10df7cce98670494efbda15890f72cf089357d743e9ed681a14b84c159b92cd5c259e6da45edc3484a853ad74dfe99f1b39df3d3b20811c89c5047047a83b67afc944401a6e99d9dcbe55756faa16dd217ee3812d7b2db054048d5add496cc49f417d1b608f55ffcac574207c10667dab31ec80b13d301fd257b25cd8e35cd201f629627a5f23f25b1667bd05bf0195ead689813acded914a8e800f72e332605a50bc2fc56f2bc5d26ff8e8d7bfb290bd85ad3fce2e2f387c9bcf99dfceaa9b3fd0b7bf9aa751def1ba5804157916dd771518811ea92da72dd56baad486bf5ee74be5154448fce4f4cd99a53921c3d19cf210115d9072335bb82f5be48d0ae266c2254efb1641c2b062c67588cd621334\n\n# tcId = 31\nmsg = 36333433393133343638\nresult = valid\nsig = 27d888fc7c46d557a83e3c9cd507569e2974ade0b87cee080e75dff734047ebcd9d7d4fc589c32c714b810d65a39460fbb85ed5e57c749c18d41a8e5efd9cf8fb7ba6802ce9504a7cd38d45478dc1ecac6e71a7475f8f2046ab421bd92c0f02545e51976947e09787d969efce3e39e66eb5645f1b15d850d580fa1afb5af6beebd4114e4e62d8e94001c82f2b6cee03591de924c7faf75f1eef6047d3670c2797b210d4ffb88f424bf8c84e615327277000b91af82fbbfa5cc4612644f7cfb7185713e0a6408576bb671040496bd3f8d7875f75a6eb08e44e2a9e3b31274787be8ae665332864e2fde4b944d6443b99b3c6c3a712fc27147f98799351a5c84e3b9ce898a43fd85f8c296a2d82f813ad4f7a2adb157e9ac743846ee596c782b2138e6c1248c3728f5d1a46c9a75ce7bbaebe8b33d44a70bf8e35b000bdadbf3796a38ec4c27f6a216166dfc1621f8509f73cd253acf1aba9b687212917aa840fd5399acacfebeb2ceff5b22287bf5402f9c56b025bc337f22ae1c6ace24d016fe\n\n# tcId = 32\nmsg = 31353431313033353938\nresult = valid\nsig = 527dca1594929ac8f5b13a38b7300b0d692494526151b90d30334c06daf2ead87a8488b2547fbd3d9331562321da29077fa9801097ec1691ae0eaa6879300d4411874cdcf3aab848235d69cc7696af87f861a2029db0e83f5fc79720b824b3692f5b5ba0e8207efd2c3e66bd0e3ba79989d1d6f2784f69bb43a6bf5fa48dd9578b31bb7ab93b17978b0d17378639cb610b498d9897eeda4e302512e7aae0470cc43ac4b707728ae328344e908c0ad051c47751532bce56dffd05e8515d297798c58b8763843af7dfe481f40b2b7d7cbee868a506572d6a54cf008ce85ec0060bf82301953b23bdd5e47747a535d3ef8fdf5db0c65d701b167a531fcf36a48e63d8cc4496cd74cc5d11ab04b32b7e9c24840edda771fb0ad3c13f2aa3803a104e09cd3238de3f3c06c42224a9e66287aa53db9ed088b7d6964fb5823e0396813507281b6c4ce1d5ba0875c6eb3a2488af153552e302e4da440753e21fe085e770fa3c23a4bc0f056c464c52f3bbb12878ddbfa88761466e83728ddae9b6045b45\n\n# tcId = 33\nmsg = 3130343738353830313238\nresult = valid\nsig = c6fa78fe1091df4cb9d5f90213f52d43e8e2362a0ec8158783d590b8bff66366fa01c9723861c4f8fe32226efb1c88621d12a3ce9397b0e8f728f08792386603aa68e22a291fcf57ab7bcda3210c09fb7a48ea1967f6d0a22971e5d48fc439c3b1ed391293dd4f705289ba25b0d4f542816e592f910461b1f4c04ef9e73e5546dc8321f51d89245c9b5f68ec0eae43bf82c2a36949a94588277f829a017d60254b2c3185351a3a856f7aac7a23b8e3f87ff1f0716a4d1b907becbef5245ff0feafd1761429e7049055d20d967cc02fd40a1a25c3661efcf97b2dc611dbfb2caa0db2f00829e579040a33f7ec9f2bbc3d997049a7b12dd40a68f8d9b5264ed510cfad1b644c24f0e8c3354fe4885bf385f3bcfea73a13a0eef555a706f5244fd902b2062e94c1bfe88466ee9c632761605fa79b6d799d9e79897bf0e56efa34f055571604a409d5d899a8550ffd6f002cdff6dda4a5201b2f95a7601c846cf1d003c5b3fe93a9ba808b2086169e5bb2b895fb29100f141ebb3567bedeaecdf001\n\n# tcId = 34\nmsg = 3130353336323835353638\nresult = valid\nsig = c582187c93243b6e33d1536612de1cd350ce22a3520f3f9ebd59046a9f7d52200fded0aa32bf9e8249c189a59273f2cff5bb7da32bcd53c72b0aa730f82d9e5162932a7f42b65fb9e7a9ab25458caba2b6058922c21078aa7e31dbf24cee8dfe9367102dfa41cb73323fa0fd58d9f19a167587e19b5abeb075e8acdbe89cc5da766b9f87175c7bc7b7fcb7a68b44dd8824cd4a56165d5fa290bc332664ba885055bb7e3437d33501237fb6bab3be514b8ff4c2f15e849eb2d8bbe19bce1317982306fc29ffb921a76b688c75dabe44035b59830590b64c143d723e6114426186eb0d12a5ee5bbd5e73f538a8340aaa80e0c036ef0daa3e980fa69ca73f7e04d2ef8c9565c8c0c0154af2ee9e3c90d9660d9267e1847fc251d409df72e466fd6415761390347142cc8b6394a63e179ad401f4ef51fca0288c78a95958312febd894d1a36ff9a82e4abcd8a27d085cbcdc54910d4df2947ac22fb7274fa2282e39b246c58cfeef5962e35b772d2573b8650778b317de8e17be4ce056537d797209\n\n# tcId = 35\nmsg = 393533393034313035\nresult = valid\nsig = 5e43e4fa01f47b68cc7916afefa30e1067d5c97231dddef925424b7ca45a8f37362b1170d01594fac651891995507da14cbe02f5063046525b0dd185d6b4962d28f73e354bd9b78c9ab0fc35565571167af0d11ce0cff9847cd06779ce92c1bd2432116b216dd52f47c0f7274813e805e6c4f6cf037c0f346448558af381e76b7e161291fab055fab8daaf7a5fd9ae3ef43facde73d483711cff04acad39ac74fba5d8cdcb22c9981c48be6c313a944f25fac0037f6f681c44dd90f56d763e308b998feff115fed16e19b83ba8521d0a465905b04c77cba34fc6db055ce7aeae95197dc4e154f6875878a1a07b14bbc0e7870668346b92b322fa91bc11ac3806fc3dd39fabb0cf02762e004003805de8a48192970d859c9b543294d11fe9ebe524ae7c36682c786d99cc14bdccdbd648b0703122d9bf2667a2516865e709397d1050ed4a7e65500954ec0425d7a8d4c0c4ae4554cebfa7650a242aa891ec7da7033f384cafcfa2eb3aad090120fe63fa0776508882bd4fff340f8db1ebf70a1a\n\n# tcId = 36\nmsg = 393738383438303339\nresult = valid\nsig = 25d0cdc3c06b10672d7335b0be5fcf402b3ad07b4bc3a97f04ec4b375475172db481e23be199eabc2e56936b8f3e537f9a76fbe60f5d0365400f3640ffeed1d19f8e98f7957f533621362120df4d6f0c6902760f1074a122223d1b643bacb94c8ea33f7ca2c8cc6c1f12c3ef4916e4b873fbfe9632f2bc95dc8c64ec639187b078b9c4eb5d5164d377b267c4e2a61839898f2a423a2632ed19971132366abaf871a89bf28e765896072a77032d28d5ba55bcbd72530cefdc29131a217418ff9ac814368aa66f6db198e33c3817a8054b5604e796e0fd27d72fdc2df780d37369480a87e7b69aef0a5717139bb9aeb168300801549af195a7b3b17fa75f7d6fc92e38d2afd70a74ddde5316e7e7eef29abd1e9eb9d6dc1c38b876a2d5142a2377ab22b463c13084f4ff7d44b6e2916fcbceff378a65a10a0c5da94a7496a1a9985ca5190cc207b60d69b28c480b7d26cb5b740231d90d9de1c55d647fde75631b2b6d363a52f249cf6b643803c573e73be9286ccd17cfe20d3daf63ae5a18a497\n\n# tcId = 37\nmsg = 33363130363732343432\nresult = valid\nsig = 8101f356f3c6e0b21a1c075f7a3efaa5cdcbd9374a9df447f5be5b3b28a464984e6c6b819d61f1c7f07657e95ce63a4dad768b723f1e30", + "5170bc4d1016cef695d91a65864bd1ab2365b2bc596d252ee206f71cd44228fe127e7373efa6bd2e845129218b99097a074f7cc03ef9ded093f4be643042bef29fcf8819967a34a8db6a066b73c311dd2931c39b1aeaf55fcdc035df8bab8105cf0f07f5cbb30029da314993926c2e92b5098568ab1c533b179b8c2f8faf71699f7e6eff87daa4a5c715c7ac0e181b87b2d8d791b61130045fd35c34ea29710deb0c33c339cda01195d12a5e23ed545958f748e23d6b86e034186d9dc2e5b527a7375984ce505bba46b54b5834e1c952a7af468d9b9dc29f38458f74d3773fc5c35a8044a2faaab85759669225b0a981d8803dec5a5655511199ab43abb213c4a61b1c1b3931e29c25f948fcec49fcd99df1420e2d894f2c33a335082cba0644e5d1f14d49965db1c49b7d33c2dae8ec6b1941e8647128ee2b295ec5b74d27d6bb6ce0f1eb19a83bc2\n\n# tcId = 38\nmsg = 31303534323430373035\nresult = valid\nsig = 130b9beb5fa37118ed59eca2fa8d7c921de16a6833b93d98a3707228ca50b8ed6efc254784430512c4ed005769c8434c9e752ee47069c95cc1f476866dcdd62f2062de8392e5fbd8c19ba2a08c80ff6b66aff8411ae49ebab93cbaec141e8d9d079ba5a2a552b1845fc57ee718a45e941e925a5df2bb9fe11b4602a6399862c3185086627836043ea15e5a90a2a1ed074d7f75090fb72665356a68bba2f38610925f69326bb24d02c37af09cd05cdb4c1d10505d1c506b719306e4570b752fb28be3453046fa61e5509e4cdab16c4adf44fd3021202526479ccde6ff14190100d5266f6cae543e65e34fc9726d9bc49751466aa67d54a7efe7977e8e64dd4cb3ba0451df8db524fd09b1e196e2d26c46e229291f4df7ac83875554d0ca1f55786dbefb03d8fd9a018401537dabde193494399823e341860e4f1c24a4de0c86f4997eed0308b6ce27b3b926ca80284ddfbe74a62e97016e9aef9ca7182cfb3f1a16e1e5b5e3a2b1dde112639218054f0e9d477291f0d580c1ab7e840e37a50fcf\n\n# tcId = 39\nmsg = 35313734343438313937\nresult = valid\nsig = bc3def5a816a23d23fc8a7b8c4cc8789e4044a8c963cbe7ff9cbcb9e50be23ac92524c5a5338ab8b42e7db1aa83180ce3354aad430ffd2ae43ebaafa88990d100e27d788c779aee23846e4674af21b81ccedb8cdc65d6380566f649ed14c3e43dec94b3a527ca6cb53001b6d8f9210ede057fce83f0bd7da60033b96afc48a44cb4341382f134331a8e26f2ef0956701aa12151313754381ae2d5a99167222bc91565e83aea3f057b286794dd9805b6b533831c23984498a55985cc8465c3f35764d28715692e9a92490f2ec82122799576b808bc9d0fdaf87bb4d391f5bb25c506a6fb92e6fe746de506eb3748a6d036ef5d8804000dd0ecf738709ae6ddaeff44734513374a022c21ad528a42f6f0a15f0b5c47d3a64379191f161d5f96be33e7d61dfcce2a30ecb73e34b99d86162b66550841dd700a38dc1057838397513aebaa411e347c29fa9a2d1789378f044cdcb9417f8ec3703be8ce911bae96d44c5c3664c62df09f58a2709eb379c3921ca5b1a277bc7fdb7bc57737542316ed1\n\n# tcId = 40\nmsg = 31393637353631323531\nresult = valid\nsig = 0748441edc133ae26fa1300337716e0249d9c9096e9eeb773499b442dbd1641f3aeebb86ade983206301ade397b1089f43dec0802d87d23287f89f7180b2d92ce2f77041038005d1cfc27fbcab2bafd477a51cd4f754fb58311b80c7f481205b02c1102536e4ed18f9c26b1bdee67b72bacfa4d69bbe8eea7c67963c644c26933d27ebf984dfeeda416d45bfa183adfc10d8eef03e7b159462102e546f40bcf27e723ca2ae516e768488b2ce19303f4cfe54f27be9f67b239aa6b379487995671105a21923bfcd14d51b4b5d722cc7cd0a6f4b45a95bdfb268fc6dfd38cf73804c2029ec83d055d49995c4e1896bab3b7ab0835bd8ff1a2cf4ca185cb8b520c8d707d70429e667a5e2f40060494a022c17da52cc8111c40385164a34ee45dfb52bb34545dee9708fdf2ee221f7434d0a0f80b7bae2a7e9c01e2d74a889a25a43f39b3e75ce3c09320cad054d145247c7c99d5b31a53f9cd0527cee1c44ed8545750b633916bc016454a0e1d4c046e600a43029afa4335d74795ca51216bb2041\n\n# tcId = 41\nmsg = 33343437323533333433\nresult = valid\nsig = 03239cd5b45155f6c48ab1ca3347f784642e7aa70bb7dad5dd98d6542fc4ffa1fb4c1a4da2927e3c395386f2a6024963cd4f3ef48625b9e89e92ed53ea68b1ecf962eff8e6115f2eef77652c1b99d4d6128367971203cd84d134e1d3a2bbe0c9d15879518165ed03d4181e295d6e66c4619e61adca73a0dc27275ec35d426f6add92bb798df26b61bd3492b1d8fc6ca9ed6759c7c8ff6ea32753e11b4ca5cbae38f98ac7777aa52a5b7590f5d5d76135393ffe9a3f15379a4a262796aa9b5ae08672f2a3564534e2dc3f957a8716fe786b0021b6e1935355abf9b0b75ad3b80aec1c152542b813b85f5820a79d5f53e3a337b36d4d3a641c450f88528237b610f489886078a6a37a3a2d6d0bc49aed98f9306dbcfba330d00a0c45be89c85747310ae1bf8c92ca960a24beb76a4020fe0437fbb91ed5a56203185ee5035e1eb4c9a0cdb0cf6ed8fcab3956b543dfebc8ea1f275fa529bf33568a053d2041e340dff724edf6eb6d2dac135aca2173baee104442239c2266a7cc03cdefe5b928c8\n\n# tcId = 42\nmsg = 333638323634333138\nresult = valid\nsig = 64ed1bc0540b109447058fac11ad2a45dacae2b174abb4c111e868ab5d9a622145e59f598e73686b517071b3f7bee34d5514227b9348fe0b2a5b772b7ad4d9582ab2898e1883749e75947c647a4caa9d77d09386d9b4ecafc741ec274554299ba25f0515b7a1e58544fb5dcd8f99595c059f6b14aabf62c263bac6b295875c863e210bfad79772c64ba0a346116ce79513fb176f0e1f2129ec2db112848daffd20da01f8208b29f102cd813691adaccf98068c081168f2c1932055079f46e3ebf36e05bd4554ab2d1a75a3bce9db7c4d84a89873f5b6bc8747166cfa861092664d1ce95e28011ee9661f1412c8ec3ea196f996e3e9e93b5dd5f89d31d9f56708beb9b06b92f7c1e58df5efd5c63115a792ba4d7f69ddc782ae3645894dac86d47e2671b8f0e63ec7559fb997b25daefd1589a80f163f93ceaa397292ada973296c6b0f2660c6bf7b66b628b696a6109c9e516fadb25a3f475ee1f273a490a028396bab59ffb8e91abce0a246631c2c76ee08f8701704f0c4347edf03e3f2e521\n\n# tcId = 43\nmsg = 33323631313938363038\nresult = valid\nsig = 65492fcddd6529a4e1c19f7950c492021db03f4d74051396a94abbfc6c70ec10adc1c44cf77535e98da1a096ef5e93bc55f9a9ded5d59eb15ebec17dd51cbf7e26cf9a8291d7abd8294398193e981ab84f5385962e7cb7b26f43875b8a2a2e89eab011cd8a9d3d683407eefbc7efdd2a81618b5a7c0f6f07cf311fa426c86974a9da06c9a8981a048f8c7b3255eaeb3e10d3d8c0187dc5b3629bf5349996655bf5f372b50d82381cacb3d9248b313fc353645199824534cd4953b2aacb20110ae426ae59f84650bb3b85f58094056511362f9fe62601fc05ee75f5935b8526bab6968b96c0c65d40fece4b70037fc319ddb9f9d86a453d32de2818ef5e2693a6beec627d881a00805e553e15176e9faa6c91029e3b801bea69f427c2dc05f9db8ce7d5a31a6da5eb8f1125d3ba724997df48af34e40a6307c7ef1d205361bdc89817c4d1a2023874cb2a8dc903ab171fd14df0745d65f3204d99e0d920bc36f382dad09a4b174adbd8bc72027bfa1185838e2b20ca7a6ed226eb8b85df5fe26a\n\n# tcId = 44\nmsg = 39363738373831303934\nresult = valid\nsig = 37ec056388181d8538bc2efecd679986d8a0ef2ae31ddc67fc54aa915ab603a6a34d62fae586e4501bbc61085fd798b3ef753cfa2c0648b3ceaecdd393ee601a89d502ff9ac14711ba6a8d377afafdbf4017f6cb095b7bea1d99260e51af92bbe93490aa484fb38a91f8e4bb94af872bda587f2f7c5269ba7110c5f2182c810ff0ee356dfe7b084b3de5e15a1196baef0bc86409ef187297e01719ca1914beae4e52b7a494e0fe2578c4051b5be61135dd0345dd96ea780e7efbfa6342423fe4f67bb5c79dc55852b3be79fedd980897d68d61ea3e4d5336d82370f924acc139b6ac711ceae9cc60b9bea13c32074a475c62229d963a1527012146c53f97093f5b2e2039a4d52f4566bf3b8bf55d8d2efdca729505bf0d1b0b120aa835ef2cb7c3ba065f81386cadbc00c060c18f4ac989c757a63108be4ecf6da31838b17ee1c37b66a887f741f8bdebc3c0b959940461e208aee539cbd10994bcc6c0d2f55c41a17f8fde8aa5c0d3c4fbb35dd48b6ebd9f718d924bf16aa4d107471a9a3e71\n\n# tcId = 45\nmsg = 34393538383233383233\nresult = valid\nsig = 0b310ce960efe7d07c04ce0e3d365f157a48b171bcf2ddc75ef02e097711ecd1942ace2c414682dc2c4b2ca884b9fd7a49527319c9f444cb3e39a92d1d7c8236010432e731181514d0842eed1a3580ca551f81cf8a43014ad4d57f48a91207cac155dc40724078a4d220f3906b9c2289af6ea390222e3f6c17a62916965459387d4ef60c39eb909f6c2fbf5d5e67c65ec132f763cb43127281cb0148a06571f7ff84b11a551e4a2b7ce42792830a13ca5c1a63aa5044f1fa96085dcdf0d2c4d7f8ac3a957bbcd6f1409cdcc2ad59f8f62b7286309c8b77f85679bee92df4abdda67287d15e6145ebf4f7ffbb11139f17252c80ec7ef1a7f589ae44b26b00d11e228bb1a75339b47ca94e84ff797b8551a6344b72cb8373c26e360ceff4b43511a47f7e6e99fec828dd1e9bfe901fca7b95e88f7419a7e3fbeb14b1163e032d731876a7704418a27531d4f6a33652e5a419d21aeed1486be626d6a09bc3d3581eabf555545cc9d58005f74c94f70777450501df2a8d169a57d8c2ec70dd159fbf\n\n# tcId = 46\nmsg = 383234363337383337\nresult = valid\nsig = 0d5c19376a13376655c05270301774c7d08879d4fdc341e64411dfbea6c135c63ab50c20bac375da36811cb6cbc9ca6ace906c6acd5681ec4a6b545a54316ed1526a69fa6525b11c9b98f8f29a984950f77486b0a15ce855826102bd3ba3b1651c8dcaf4031ce28f51af0a361a23e293aadb727b181eeb50f4fcedfd5847f1d01421f12f3cd11b1a2b3b3ff2e6fb31f2c138a2f4f77d008a4639fc814aa6fbf8a47004c7bb72de41d0329580f9ddbd2d19e077fd9087144931895bea8b616354f7da1acf077d8cd34021a88fbb73ccb735c1bae6127c48d151db02d7671760b25d2400711152d5c27a318ddd474f84885c12e8fbfa553322482439f5c9d2832ace15aa336cc092a13024476b95ccfef9022a4e0f0bfbc55c40947d45570ea8f09800f85e0cfda4eb9999d859b9b3a1e9e9ee0807ab32e93f1e16ee36e4f4b656eb3c616ad797e17dfb5300c6553eece876dce978b8cb082a0e9bcccf4708a4f821189354f9e7310c358e864538ac374217e8379aa9f0e0e7daca3ab8d46a6ae6\n\n# tcId = 47\nmsg = 3131303230383333373736\nresult = valid\nsig = 4567", + "e5476346c06b1ba264f66cfd9e181059d44b0c37c4280a41e41d113c89834c0aa68d25e1ab8717cd85c8b4bdee482c3eed7d2eee16947bd68ca7e6381187b9f09a3468e2f67b0cbf404f0f5634f0ce62ad7eed6f557d7874290b8b3a9347e4f203e7d246096f4575127e860b13697b27fbdf4fe46541c48161676bf139cb8b75ce528079bd6f01e68663a7a7a3ca944eea312539d32ed11e0f3b1062ea9c251697468cb7cadd182f4e47602c14553395c691a4271f117a9db613e2e82a9a5705ab4ffc7dc7c0abd0371c5ca10880277ff83f86b4204f72005b6bd42ab03db0ab7ef82dbd48c7aa8e8f448bce64082fd935420b88fac01080cf544b18746346c0b1e80d82c4745ade0b0a53f226594c7e550df37f5856390fde9de9fe73b78efb4840b9e330803b92b1a192269e8537730ffb8207947724dd6d73c2f97b7c465dd47c0dec5d6b27378e53dfe91ab7c8fcf27efdb08fcec4503d02f231a52367ec85370eb1d959839a77634781587fdc9815603b8365d8da7f55f9a1439bfe\n\n# tcId = 48\nmsg = 313333383731363438\nresult = valid\nsig = 617db8fc96c122d6566a59a03f257336c7565117651751b4b76045e6a075aa3fd481b483d06f966c06852e0fabf2a997eede481ea707278283f80f8fd3d9d76b968063eb160a4f22b2d5c45715b046abb00a9996d9a4c318608b6de17f8287f769d801c7ecd1e65656de6855f77f3024fb57b3f5ba530fdbb5f34a1d5d34357bef984c29e36328c7b61a82d84a24bd811a945db051d3011f703865cf45ccc59a722e8802e7b744a1c1d5e19bae1ca9830c2ae22239a115c2e6bb5e05180826eb5a9848a5237e1c7b2f38690f43e912901f45a69cbbcfacd0f6e6287d63b231425626e876a8837a6eef686f9a27ee04dda25843ca1c713acd64dd26382f3f41590c66acba0e8fe5b610f3fda96cc50a2b12b4fefc59388020c078375eb5422b38641d6b7c5298c047ab7f48c99cfc3558fad3acc9226653a50b210b7e82b1b757c22462b066d81c80caa51dadd99228a7f21ac4538aa44ea034534f2bafb9d1a35f88ea870c975bcf1e2f200ae175712f01258073b1fdb80cc0b8d557e6e265ff\n\n# tcId = 49\nmsg = 333232313434313632\nresult = valid\nsig = 5fd3fabdd57d92ca506781f7010a675e303c2e794c1466f02b210509a8eac6487ce323e757d25cc8f7f37b041a6b910bef34c0480b6ec7a0b7e97a48167fa2eb19ca90e62bde2a8eab7c291be62af4cb458de6ae143a4a0dc71630728c0869de47b1d31e24bce26f395f49a1e329b5231491e40206a33232d67eb6a944c49b0c3c84439aff432fff3c97c6e3ef380e163832839a6fe7dcecc26659641b20e91f84b078c5e5ee5ba567c9bccfdeb45f298a8dd72881a587fc9e0c4f6da8d49dce0fbe01adec3cd87d4e58109ead90fd572f698c7d4945b75f5e1f1dff296f68f5d5ad8068fd59eafeee4ee29a2a9a9c06a3c501f0ab92fa99ee06342a8b178bd0019353b24fe118e8e12e92caba88b593dd6ee4619be013c3b59554c9a471da32155fd3992c5a81a6b1c57cc510216ef8de06679f08dd5cdb24168546f9d6f16f2352cf183b50477b0e8937a1eec27a022822be4bad086b9717d6eeff40d743ed6ae14b56fb140d0806f04e55c60fdc498716ec554d6b53161f260cfce2ea3ebb\n\n# tcId = 50\nmsg = 3130363836363535353436\nresult = valid\nsig = 4731821b071f69fe5079e2c655d96438d9b205f2334e495731b0f4f443fbd63025031ee5933d10cf02e6efc889c4ed6fe609977b95046e468f0e006054c56a5b3b4bcf39f126eff5cd7542f7e9ac1897fd295a00b5f10310761384f110cd9296e1484275d4d6553f3f705b62f70692700185bc9be3a0d37821e1537379d31a1ed06bda54b0a4e4a85cb293aa3cd2e3e728e096b63b0081ada8ef3db8d9eb069d268ffe1429c91266da750e7a7d3c5eaf43772763e4464a459248b31b5c08325617a0d9350d2296e3a380d2048be129905b6f6687022f9e5c1a2b70a5634a26f35b5618504ca41587ceb54cc99c9b11f415c7ac6aeb6158b9f17e44b4cc6a72e6e05df296faf06e70ded3852a82554b741011f8035bc11839b3fdffec38ee87b8d2a191035d73d45a6e04cd37bfc2fe2f1f759d64bd4b60fee54e71d0cc5716c6ea9b2118894bc42057ef6027e9e82d436112a0b6d6abf7b281b13d59c72d0537c6f9416e9932824b6f6f0352564c44eb9fd7c9eca99f1f61bde4be6b6890e6ee\n\n# tcId = 51\nmsg = 3632313535323436\nresult = valid\nsig = 2ac125ba1020ace4a4694a63d7f61b016743d8fecc594edc98d6ac28dfb8f41d91864485b3faec75a89c1ab43ab101388209734ffb6d29886ea1b2814bd6edad0d278da862f2b12ec18d60cfcf5a716d6a37e898a5b29235c6fc8bfccb95a562f2f20e5f7bf31abf28b82bbe5d31690b3eb3b1aa36a89af21ce247f8e079087fd371f0e176f72ef04686e756591e38ef77cd73af0787b01e02fdf16cc7eb94f6773dbd5a7f818819aabefe0c9bd47d79633b84cc9fcf7b335e3e6c7b48e8e5b86e3e85af249c361c43aef36c16f401da463a23194b0e6b1dfc669ef1ef4eb626e88c8e63edc823544e28dd701040976d082f38df50de1ae7be4f238594f8bcac3b51b2a79c5b70403a49a1b86ce32ebf3b70331a75fd25a54860842799e6b849f81648b5b288283a6cca8573e96bb5c090f323004a35c9b201621cf18ed1187db8ec02ce205ed2ef0d9a8cc72decb811629cbd864ede9f3d95e5609a3cb497f581c53740bf93b658d6d6df3077c485d51458b05803c4919616f4b012cfd966b5\n\n# tcId = 52\nmsg = 37303330383138373734\nresult = valid\nsig = b83b74425a7d0b75192094a32f8dce49f9c280e41da0a8c3c755b7f173110923e360528b2c7dc52457b3fcc353afbaa0c546002955658d904bd35835c6bc72fbf44840ae155802c573489d6c7d51ba6f4b27168c058826ff94db0c4564c178e475dede978a708a94ea7eb8a6ba43e47f8a72e05351b42fed7eea51b7fa3b63e14643797f58b7717e9792f8f5a433d6fbceec3899a597d65a33fafbad960b67d0539b82e88f74929232ca007d93804b269e554529e7310340d8a9d4a62165e27c3b5c21583744fa849df3a18fb3025e0f47be2bbb41574c5646f916f364d565b9fb044150b9e9095fee419620dd20554ffb9edfe1e72f49cfa4834585d25f693108557266529ca3a56f56f05cfe44b547ed359a562b94391dc3e9afe4414839522a6d34a907a9b3bbfc61f10815f275a62343d869e631fa776cfb08c9eb6f76fb249c639361e40b025439e4711553835b26b22423de4a64067f6df28c9368c46d933914ef659d584b703beb8675d6e4be7e2ed50ee6c3012d0bd38efd0784f6c5\n\n# tcId = 53\nmsg = 35393234353233373434\nresult = valid\nsig = 2ad243fba359fd7582b775ef93b1b33a1b7ddbaa13a67cb10208a1324526ad5aa7b72c98980a29c01611c00ba96db203a36a7a15d4ca00f30d3a760dcd9e596e2ccf992c11a061935e6990038e2815181200d9f1c22afcc989be0b9451936ddf1f726ca37b00dfd67fbb054e8cfa8fa3ca3feccdc033f26d4579e8bf4a7c2e8e4bd42c32a015e3c91d032e46717ec9eb1df817ba54936aea3e42645615626991bfe60e86e9262a61f956e10500691233c0ed4e534d05492d73720d33c0e6622c7c946074b859fe0957091a8a00ef55b872135ff432e255d8e6efe1a1eb3fccba437739af0b530b7cac723b3e61185cf06a6818725c88334d2aef25df07ccf4fb018aa2dd13d6be2a7ad8814f53834a72aacf68ff819489b2e5eddb0c9bf4cf350eba63f83ecb02713635a205eff1e97dac41477637ff8f25f0e451d0bb23a3615e0d138ab632aea60a05ae6fd1b97753ebf877ccf1983064a3710b3c12289d1b3350b382e8f37effcd532fa13434bfa9af1bee8eef60bc2ac63d8c1402dc6551\n\n# tcId = 54\nmsg = 31343935353836363231\nresult = valid\nsig = 0935bd0191fa4dbeb1da86c836f200990d4a2205d236cebb0c7487b754b8ef206e7f7072db5f1e3121e3600ce42597a96186db672111f0ba8728eaa96e361b7ac5fe43013f58ca17d10633f0f1fb3f164e151e10775c704d5cc537f71ac8a61ddef7d589cedff8954d1a483937044d1474139afa0cc73fbdad9e12fc12976f55ec81777f428e0dc186e3f3bf93b358bf9e1627fdfe51876d5f34959edc40eff10ba71c56ae8ec8f07fca2e1fc5263c2c22f1c8138499f824920a9a8396b31ae417c25a8f928faa665a9cb6b54752f98f17279098a54b68c58fc5879998e7f65130ed96155ec6ae0d92b35badffd05b19580be8386b7e8d2fdfe338f971780108f886a309196b6542dc4038a1ba456fac18e16c9975c9c60c47fa14ab953af372ebe4678dae70084eafc43245cf513142eabdf10319f433d7531f0d8b84b1b6dcaf8645644f0d52da661823b3de259ce2878eb20b5c2f76c348d9c06a2feaa216effd2e454530a037d8a43cd9641b55bf6e2d30777f29139941d81cba6664306a\n\n# tcId = 55\nmsg = 34303035333134343036\nresult = valid\nsig = 8122587ac547b17eeb670434c9a471b27ccf84207b20187763dc7eb19cbda4f5ab197972ee7d6930bd399e09e0cca27d0d5cc83222d6ab2a7c0e34ec7d4b95fd84b1f57a5344728e96ed08453ed31ba9c2fac3edb73ff9e937c1b1ba1a7dd0c927203333f7cb18c543d43bfa4c905abbb2d1385a764ef1023b3b822403b886b45c2b0ca23ad5c50009daf366c15b4a5bed78a3bddcd0c5abde0744a9fdfcde2dfbaa9c35d75f15f4b552d6e1fd4614481ab0a8b609fba2ceb207e32241a7a3ca8de02d36aea4d081514532e96345412fe78ed45a5007dce67fa1a88c29cd4c542b9d3ad44f84d21c0bc3081c54f7b9499e4c28e648f1db9732b7740100186b1f7fb111b5c179cb6e610dca7810547b181eaf4188348536069466c12980a92cb9f7471168f0a0c47e74d52fea5a22f70cb48de381e0419a625339cac99f4401399e28a1f10a2e02035e473c0d0317859f1010cd254a99aeb5a5d1b24c9af1da9cd5076208089762aef452c3981259d5196ae7cacaed7ff87cdc69a890a1b1614e\n\n# tcId = 56\nmsg = 33303936343537353132\nresult = valid\nsig = 7266f3390c4e83544de122f24f5c5df6e8e5d08d2caa08cdab672dc1d43dd0510855b15b1cbb90dc318dfd197e45b1262611ebe2204a7577deb5fbe93d36b587dcf79f9957b02daa33e27b19b623f55feb79fc5aebb21a55d61a2e397e528b5f68bdce0e8749f55f08dc4115354e5eb11add44d9e3dc4e43b89a0dfa8e0ca0a83aeee298c7baa0fd0a5f8afa4880c6fc16c1f543451dfdacfaea6e7587370793b6da0d6e9642156ad4ce85ff9e8fcb3e786b3f863a77b9e2e3fda7e9106a96003588ac0854094d4e2a6135342550c0cb134b1e8438ad95b80bae702bd62d7d07308092381650f00e712c96ea1e44eecfc27f9f0e79d038e905dbf4c21a5a536fc7dc8ae5bf219b7156f7ab685d9598fd165f9794b2c6d66ecce2a5451345f5b05dbea4b0087f384448955c530731e79cb987c1dc19e6ef0f64b728ebeccc8c77b817d7a8d2909601ed4fb1fc6042840c56758f11c991be89988bd4f07392510d804eb5cca1e38ca40482140e8534", + "d97c26240b291196efb36e37035acf6b7b3b\n\n# tcId = 57\nmsg = 32373834303235363230\nresult = valid\nsig = 63e54127ba8252243aaf8d07eaf76a53b52b8970072098db5295cda173164f6fbe8114b3d80ff9bab4ee9f9bc91ddaa572aa3c5b186fbbf5b0b4c5efd0396195f9b6d14a840016bb24d0eab6dfa48784f549055780f2645673b60c359a2a2c9adfca78383366a40909b8fc3349f7e425bbfc78598369955945591dc4c332fa8187ceba20c25cc1baedddcfc03d31cff2ac92e5aa7227cd5ee17669fbe6843b750058695bdb32d15f1c2c6541318a6a73bb8ba2c1d0459c8b0df04952e6e2592851f26290101f30afab2e310d1417955b9f742cc8999a1419a053061ebecf896400555b99932c892f7427b536d4ec2e12dd158766c9a894b94a0767745abcdf3cdf31d34391e2b6d7934601741af881bc2241bebbb0bb0e7ea1fe317c6a49bed76fbbd5b11372a7202c84de24d92180209a8acf9863fe8c5c32c6bf9c2e18cc04c078b0b1521b9992757f8c1ef9051d25da1e99aa884ee797a5077990dd937ce3da6183dce345cb6cad0511a0b5b5e443d614637a65c7e6b46ad31fac8dcfcb0c\n\n# tcId = 58\nmsg = 32363138373837343138\nresult = valid\nsig = a9f6dbcb6e1b58bed27576c89fd8c1b66794525e9aec2511f151cf78c5915b38739aa8300d6e9dba0d016310b6f35be62a44aedd8823d771ddcdfec3b8bc4d9f63c0bad975441b3341faa7a6c88b39a9148ddff3eec71c2f511c42288ee5e425f779cdcdacfe47748cbfe043f889b0ce03ec56062abadb2f692dccf9bba3b369bcca678df72eb5eed4eb830a7d61c0041135cdb096578bbcb1b842d4309be995f6947843b4f1c7919000d696bbcdb516688f69c09722404a6766f22170f0f07b958f9159fd2b8bcda115e7b79409e3fcaca71af9b75e05cdf62c8b9b904283134be56b58c54c307cf0e590e69f5f180329375eea2c2b04567c6ac99df6560fb0fc5d93304e9640cfd8eee0b2d5a5bb05d2ac7b1df1b0e4c64a278a0c6c694cc1b3555396a6bad33261c820b242a3a640aa7d17f2710ee127eef804699d7b1df6a31742e9d58cadfe42ae7e1b9f93bb83bce387b56d7e92cdbbd7da8da58334257ed837d115eb95fcd197cfa9daeeaf9141dda689c011344489a95ccabb014ece\n\n# tcId = 59\nmsg = 31363432363235323632\nresult = valid\nsig = 5a16c6eb90bd39e932224ba1ab24e3283d8d0ba55ed6b24b993bf085ebb1a28ccbab385b1e1b644a891894320dd067e2e838580243dadb383ca796ecf1242ad1a9cfdaef6e226bf303d9482dc2af1b3e5d8cbcc40aeb52deb60c0b092d0beea7904c3fa0c3b40e487d6d3ed80f10e1aa6a17728ff9c3bbc5518296499d30583189877851a91ff6b4cc7ec2e7b339989613437004ab6999db14ff55c0baacdbbd859824b900b24c571d2710ec22f5e45052307c1765d95f94b99cf57a907925588058c8f7f7fa86dd87e87e013c884d099f9ece5d3bceb16e42789357e65e9b75b81a89e30ad8f2a97c74a35b095e7c70835a0192b28501c8e88265cbffd6e4c5c578ad57d1f881115165191570a19df33a536b909d051ed98e2d9d9851e32989e62357f273aea38da08426193b7c1039fd5220b071cffce9690fe86c7648c3318fd4984b25f509dcb798cd1410225a40193259025c34ba22955e6565103a4d01c78de604dde9e34b838b496bd1733207137000d767f6e3ce639ce5f19707a9ad\n\n# tcId = 60\nmsg = 36383234313839343336\nresult = valid\nsig = 4b48edb460416b6e1dbeb87fd511aa579caaecef2bb7c7818e4d57ed2f1b1f656365d79545c7e392824212dc165d561af699376087a621c5b880fe3bd5084cd57ba6ea2cdf1f4821e2bf054511c9edbbcf2f46147aaf69b7d9d4c14bbcf51423e610761306c1caf1d46796165b22ef8dff2337314344fb5d80b38f1b38279ad65911cf5e19c13139f1f9c3e073e1a66f6656c29fa6ec91f84963cdf4718e1cfeb1a5d171a0cee5d90477df648c5618e3759201666c974f36639804c64c39402c2410f1e845cfdedb804b59a059ac1c29415eb14dc5707da5c2d190bea837ccddfbf998eda7deed2eadf3fe2cf39349cbab80461e0dc4548639686a4c475a3a432cd6216d43d83e62a2c7b44429ee42afe573d45f340304031837b98dd7be0326705dd7886d7eb26c5728c1e3433ce6bf2fd3877a48c06e34abecf9cab71813bb18a6c7fe6f4f4990da065ed10cfb05e9aef47848039b855ab0cd07c60c5fc56a6e1e5522a460afa946649474c9e66480d2a265ac1a29705571dc03310d50c11c\n\n# tcId = 61\nmsg = 343834323435343235\nresult = valid\nsig = 8bd972bf9fa52f2d1f2d564edb34310851c8c4b9f9136d8fe494cc79832ec497940b642e32466527cbd40af817e3ecb844bd62a49a53871acbaceb15c72a2deff8f7cbb8191985fbfd780adcb86a99c34c537f848b586b129e0a5e960f810b812c99d15b38e3657bc09f8ed4346a3dbcc16402e331a13839b7b23518786a67e2ac96a6ef7d9e931abc8fe188e3c349a27621b2da88c6fa45ddef436b420886cdb19fc031ee58201824ac06b5129c5137e10b6a701ad7b31d204e32c4a84e1b3766287985e721bdd89173626ae8c6b328dd26496b2726d5878b47590b38d0cdd7f31057dc066455d4ea8738c5dd251ea50815e96bd5a45eb6dba80dde52b63068196b0801b39f57b2d6c82e52e6bb66224046d1a2250fbe1dbad25e970bb0f43a325f23a40d9ee879909c300addf69295329c5cf1153cf4064917a734a2fe98f5b13a96d7c24e9469e763f84ed13dec5e5aab260663a1782c12a0b8286d96b2b0bb1a48df461726853ce60bf6ef8ca3820bfa5afb4ede207a8ba7825b7cff4cd8\n\n# tcId = 62\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 730a26b2c3fc2df474212c04fcb346b3b78a58c611351871ac1c5262867ce19a6f553880d68ba4c35827610b72bb044162b083fe9ffa7a82e2366090464821946f2ce1a8ea19b12c10c0e42a52ff805851c226748a9d65d7cb2057c9ee0beddd8ca02ae1bc36ced39925d2429d531c2e607bfbf0648708ef4f7d816c8839cc8c62036ac37e811f94a943198acf6e19c66cd829bde9dec9969eb4724e2d4ddc4f8c2bb2527007ddbaf2975937ece7f1779db28c610503e7ebbf0b03459a1f4794136842b57d04f14e22b98ef37939c64d08fb242cca548b7bb2c2d8b1df6bb8b0b7f6f38e47226e9fc0a4723c2a518ebdc5c4c8f15db74fe958bb567e55f092d3dc8af0128b353e2d273d574433c22cca579c479005b52c715eff1ef4eca8d82d2f6d7cc972fe0e75f19eeea3b77ea7fe26b1d29cedbfa7ef0737e4aa50a567b5fb417e356fa8034a72a53c5d1c0cd467808df6faeba89dddeaeb09c3ce7937450b41e7c1d4403b3033d3531adc24e9f5fe35d877a3e36fd3702289e69b460b97\n\n# tcId = 63\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 39e95e2dbbcf1817407146b19148aeccdc6b538729ae4f3bc240f4ed8cb9dc6a0e9cdf436bf5237e79e239a432a953ce3804a7a55bcc3f7a0d37d0123b1f046ecbf0eb33f52631e049b0692ba2e55db134f60e085c078b0cbbd66a74bd09c852fa9f029fdcc25679990dc482284de9fc74df343aa7197d84689011f61ec0d1d0fd3b811a918e80b9ede6c78c03f0ff6ec7e7ecba9cbd8a4124128034e425aacb004c042be805710e94ca4d36cc2f5d893036091950bb1663d3499f8ebe09ea2760e3939b835efa585834112a5515c8900db98a44914a6c3e5caead29b182e585092ee59126c9e6a7737d3b34b2fdaeb74ddb299cc3725687167d5c1f92d9186f3aefca61ad6c27283dbc821f6b5aacb238500a51f7439a8bf555ee26fba4c8613fc43ffcd254977f5f67095ef23e956721d5d71a8a73503106b2555c7433cabb304f30492c90b357127b09d45f171d7f4d4939c84516f96eb8f0693385e53a3cf8a6b4d0638b121e2e70b5451883ef368097c7a2010dfd889015eef0081513d7\n\n# tcId = 64\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 84f1e37e7d52955a8d076e83fabce6a7153d49e771146ad665ac95b67eea85ecf8c126887c0b0e4ff2f4f3ca11ccc510fc4a062b3157edf20ff2763ed0c44ca8d48c571119bf5a4ada5d87eaf5c389cd8ce3a9ce70bfa98d5536fc731a2607066bb2cd0915511404e69ae5ba69bc197ed995f51d835bde74c5dd1d4e69a54445f3723692c3b201c28370e4892ea56c3d2b8354489a728495e7d7d611e82c739d53ded82f1e72c4e7273ec63c8fc4cd13241219659d9c6c8620a455477587737ab97959a91efabc1e1de8218bb67466b8e890f47b5ae46266ac06e06247f3a169a31f9fafa268bd453c67b77f7ca9a53adee42b3a9acd4af467f7defbcfb96f087717137bcc0bfb41f5add94af4981c00d95f992995aa3ae406dd6df56a7070834d201eb1cd12c7ca87779de0eb38dbb92f4e7f6f78dd224d0dee4b12b20836155553b0a76e2cc071abb59a70ab393679ca458d18f9a5ec69d1d70b074d6cc8f9c3d5143de1c53dac156d36d28660953ac68670e34317a8864cf7c7214e5c9c33\n\n# tcId = 65\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 875c6f8f3395f75024b7ade4f6b3004c4607aa6cc99168d01ccd6cb481b51fb8a2bb44bd10a0e7768f282653ab6ca340b044ad03e09abd01bd0962a5e3724ff7a49ffee7818dd5acd0a6968c5c458c207d0f77eff3f8a2be4b559314b02e413865ecbfc0bf7ed7e66ae10b86efa9873eff30a17aedbf81cd98811ba228543ece8b14f64ca98dd26aa5ee83a1847d6fdabb8140e4dfe48db39f6a48a825b7af48c1e1bd124a2f6b76d0e37f76f4ba986ab3afeb55c7cf2f45021dc325322ae61b531f43242c65ba8b4a550801e966602730cc186bf4678d300d5783da4bb9d9ad54aceb656ec7e4598e3c209ac48e1b775b68896fe282bc2e3bf9cac99c601d64de18d31d1892b3098fae2933854f822c49faa09e079c4ffa9dd2c006471263f02e7e8eaf0345139482cd82ed8e6d3e080887ed13f2e65819a1dcdb6d3f5692f5ec7f3a0609f2f71ca4564d58f60a0311be5b597ddda9b07b52541ea924cc05146243d8b3899d3ab001184767f896f0e044224d96c975127c1c987a84d15cfa12\n\n# tcId = 66\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = bed5c44c1e2a041c2130caf34ce43e4efdde6f7846c30d5a1bbdd88c266485322b1fd6d6353e85ca4538d862394fd32180b36c10b314a8823a6c4a78cb62b5b9884a6ca480ad2993d4f209d1895f9a4182a14d47f09a13c9c9bbaf211d07653f8c610c16d156c931df9436bc7b9ef929dede2c1d59a2b0441290f51825ef44964564e3420dcf3c1622a8227a82b8d3806eb5d246a3b0527cde1be3f219a9015653f3f8a3956d055eff6a90f42b48f3fae5dc57d6be111956e6a9b6ef52dc35ef5ac363f1ce802c4c09555dd343ad0dda96b467166ac515830e9e2ee40d56e68558408b1fb71cbc4a964ebd832e315d8bee13529314a8ae346f4d1", + "2f5ef00686f4ec26f9479f57e69244264d81a0fa39ba7670cdf2db9684e0b70d2864c4f2514e498e87d474e65cb188835d5fd8c34e5432944cc0874eadcd0a3e62d9f533583d33f5a99af63d6cf429363f58f691deb4a95ff409e32c393f344c5e0347b2f12125f6e3944f563d59c6539c661129f300267dde299972f02dcc240bb8541acf2\n\n# tcId = 67\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 4e28f546283f9ac74cc99c6bca79bc208e47220cfb0717aabc521ac55119ec6bbcac880bed0007c04eef92a24b091d9a09ee5d3b5be790abdb2c98a07313d505fc876adcbb1089026940e03dfc10fb46a0c2a764ebe86e51ecc2ab489f56daf38764fc0a36a9cb4529367c9880bfd7631c340fb7fbac0edd2e1def00d65bd52e597e2eba1be1e41bd89a00f5c66fbc18b93e9cc1b5be962780f6d7a9c6d375a28556114f37a8a3606dcd68c8128bf7a7e5f1205778bcf3048bd4f7c10cbdb4ae759954c4e4db0a9fe4df270c41bb86885dbdd8cb7e72a33322238a2d29615a2f01e9fc59c230c2cce58ad096c2de5071e020f76c8c39874f1de677dd5d2f96ab4dc145098d25b740b5279f05713daff54ba695f950039882059cfc2f86c35a0501b8d0914aa59a806e8d1403fb2eef163ba1d6e3d1e18dc99c622f8c2d360bfab2c9e8fd9d74a027e466fbcf4fa56777ee0fea7e04ae1901e65b5361f97146d7f4a550adf77539fabb7135967dc16f8ca99e8283dd69627cf27cb9d2df20bbbb\n\n# tcId = 68\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 78d3509284dc06b54583e11ddf2507d9e50bdbf079fc319d107bc2527c1b742f4c759320fa22435d74e94253feb4a379128e7f33c5f3462fbfb92ff40c10b23f8bdc5890114757364207768014380fc16ebeaf22a7b1a9366f3fbbbb912347f1ef595d742a976b69377533e7b61d3237c3693cf43b34f92773497b8df7ac0660f67439aaa66fe179b34d9dd4d013e8fab958fbe2a27ce84b6d1c3c2998a50d41b6b38000191673c23792db2fe47e4ddd3b5396c65dc44812e55298b8b50b5a2a01d508b9d215986113b099717c3a4ee930f479308c20c26630aa5419c2589c8cbbafa7eaebd71fca9e751793629d767be8709fef9177d6631a48731f5e59fc7e98cd466375e8775ba935f12b45575819ecef4d78d85b6e984d90d41c93bb03c832fe415fb567a1d951f7dbdf407beef8caa3a741ca7c7729c8d8ba98896dbe52d9785feb49332e646771e7d84b75476aafa0a54512806339cb54ec1c70943beb508966741eba4d39c2fe535aa82a9cb92eec99d38540efa3e39fbc02d757ad74\n\n# tcId = 69\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 042bea79b22418311d75e86d0c05a9ab4905e59b3e0b12fa0b1e372bbf66690e1c23145b23b92735f2214ac1eac2cc4045e299f40f7e418c91ff328e68bf17466eb3e28de3139ec23b57ce5aafbc1e0e1521a292935a35c6d6189a42a81c573f8be9a0cf80b34457392faf031b632544fdd50285a7fa82a4ae6150b60dd9a32cfd131b246d6c89fc92e9a1df96857a6b56fd9c897aa4c8b4ee8e10dcd0ee80334d2261f02930a3a54a3477c8e155731878637256f70853484930d180a37c0b604aaaf649ce93f886a5f9aaf86e529286bf1ab5c8e189d44a28814d5e1c7e5c376d8e80ece5686d6ebab90a51773be4a919b22bde123ceed06c76d2c1af878540b5ec81ce067959ea8333e2340a9f9d7f2b22e1052e7478382ca937cbdad62a6d8fa409170ef2a03299126965d558978cad7d399a683d19b76bc598b94f6c94c33c6bb1652d44508c777de0da7b651e7c938e802bac8355d3503029cd1725e2dd70a90627df66c04989e541a56dc7df6a6a24175d921ecdcfdcd0e8b454de4a6e\n\n# tcId = 70\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 1d8bfdc0ddfb312f4b902bd241cb5750f80312688daf5e29ec6fb8cb085fc2978b25f101483e99d6c3a04e7a66e800257ecde1ef18c7ba17eeecd94d89245d15a6690be9d61faa9c94cefd06a24ad229f521688af44a2b26f726268607a3e4c63228261ac1bdfe714ff0414d6029772e53243770d735dbe211df1ce96056431405c2c612ce307957c5e7a7616bfe877148650de4ef0b4cb342aabc9315beab5e33f53986efa2b49de12b7dd1ae3676ba09a2aeec8c39c65dd44ce408a8c87d91e2225ee776cc1d924f354ba2e91c0d52b55fff4ccca2cf6ee76ee6b9588ba8f2d1610a7c7ec520602b37e206095e658fa144393de3fa47d048a017ed93ab89f835b63f8232c3f31eaeabe76a056c53d87f2349198c73cdbe9bc89085f610cbbe5f5ba65a0190d7339f2c26a7e3913aa98aca138bd87e6178c169d8a120eb5e74c51bf5040214efdccf7f9fc61624079081f9faf9c70b294bce55895eef3627cfec1cbd488940f7dc5f34b386fac86a569760bd490e856d364912ea354d4abd97\n\n# tcId = 71\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = b01d88bdc0b6086a22c3ddd9b04a4e4a95c3b2550dc7e6c06e7a36ab17ecabfc5606a06f7ae7a0fe4723743e403112c7fc08800ecb687a64de4be5ea2482600fbeb01b46fc799b4206bacffa8c38d27c99cadaa0af333a8002829398d1996d1e8f64688670e30f14e96d9977056f310ffaa9d10b83d1c0eec4d3d73f64adaa343fb8b206aeeb2990342013ff42c7242dcf30f1653488b4976dff36a79853cba1dd28c6447e626e14a92459366208b7cadc5442c1a0bf0d4d8be6e32d5306173112742a873e8c4db781cd362b4ef198f32c750b44effe3bcb0448426f090941ed4c151c9b75588ac0867a2f468dc2fa46f0be778a8d6f2ba01ff47534c6d71d62109dea6741c60142580a1f4e22b1761200f4f1599970e1c456496ff82525085c0a12eea8c412b929bb1873cd7dbb2ab35b9eef309d9f0617fd37fb3c56a5bc84d965098dd6b0c058908f9cbde6858f0d0734726c593f2bcec32236741e110acb9d536a7942f67f4c8a4b06478229bab09e8a3ec73930b75e82fd4ac8e466fa5b\n\n# tcId = 72\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 52c636d91f3a8c269ea2be767293a325a7addd7b1026251d45c1e99d818f6f8b1d52306768d163b9d0de3600e18b8e6fc3d9e874ccfcef45e4011ebacf3500e712f36863e53cb01db1749798941d557428ac017d22be753eb401df9a96261126b017bceadb8a58e2d85bd51797e59cf9b34b9a42ad90ea441da58fd986e023d5f617498be1304552cb6f3b27a44a6dc9289a29f10ba879c82ccfbaf7468f65ffd1d9b1f44f60480a8743e4110a454d6b88f8f6870a32336510a0e967b352b5f73bd6a8f39ca6f40b65c016149ab7449452a59ec87dfaaef33fed36f1759dc4485b63ee302d302441502c61b1d8427843080d968341873b272991a0ecf9c19d6f37170ca7cdb8a3068acc8d6a7aa4e8a33ef463097a7978dfeea14018732672df9a124f7b3164f3ccc527a8c0d7a2d75abc03efce9adba296558fbb1110b4c6e7c8f7952f67bc558219d2a836c673467a4995140d9d7cc377adca9898f8ace6446feb50e5b744f76a7f75f103b654096fd2902fd863452ab4bc0f89c457bf1aba\n\n# tcId = 73\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = bcf0f11694a2a707898454a81625b83e3fe9a96155efad7cacd049c348c23eb728fcb3eaf395015657059129328f19f6e44f050d10783adfa384f20c25ac545c38771a0c46c9724a000868043d60cb9c688595c134022a0b6e99d594581f94638d24cff674a1f2ebc77c0d13a8dbd61848bb0595c6e201608f00c75c5cec3d3091bdaaf5d9c7cc60337591edf4850e7b782d45292baa165d99a811d79fbdd75d8389a270507d3eb26d5c240ef00869d910883ccb5436b36907a82e4058b5a2c6a27e092ef4cdcd5c98bb410bf229d8fe9520559e8167c0b1fd3b94632209bfe0332892f879f25afbba6fb67cb1dfc225746df618ada74a2c085bdbaec3b4f6d675504af6221ddd35db01829df1fd386236df6ee476a3660178a7408dff69a86feb522cbedf7ff866d5878bcaf19e82f09bfe2e6d33b4fb70e1467caceeeae4e5e0d8c81b0a7d3e17ec594c9be9c9ec51c23aae99c81fe919d942de167eee370c605564b8dbf1fee860c6e052a280c7190fda3c2f8c1f401e82c4dc1d67c73e78\n\n# tcId = 74\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 58384fb43afccf19cdd00c2006d5a6bdd12a5ac149ba6b21d5dbfca1b394624007fa5a729a8d4e308daacece63654606e9be32ae8184ce9aa237cdeb44ce1c961a4598192a609d1edce2b9a9b8944cff2c9bfeec9e2fe6c7887f04e1911d7fdc994cdcc5c1282bbb2a519d4e6433bf087790c8833fc63e9236463121ade094e082d72a456ef9eaf928b2d38a7274b23a5136118e82b897414bb6cd0177298aac6970f179403d152553fc2d7e13e40c3b4875e6bc3fda904582ee49817f39e3c79b8ef70105de88387484595059453f9f57b52f1e79f5226ea2f8168e2e48de1d0d544daad205f6c32a6865f66acd4b318834741553cb1bce7a7c06e4c33cf51eabcbbe44626f53f7a2729cefda59ecba55ffb4bccb746dbd7689e7f3c1f29a6f26180fdfb143b16d10e58c72d4f8abb3dc3d35cabebe7928b5d61d5c1c9bed922bd44badf9db2f0e29f54d950a9978b1408a2935c6ab9e2491bb0624a888d306692fcf71e4c93bfd38ce6590e022c8e5bef0a9b5a3152edcc61c7ab8bdeef219\n\n# tcId = 75\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 4e71b92c27a22e5003c8ff639720b5b809b34f1f2797135bb4ce06a7d1f6569c5cc4910d7cd0bbb15ec6d0cbeb5612eb9645eab205130e3cf04a0011f56728eb447d26dc77a4ecaba396ae84ff1481422d83e4418f4858cf6639b831105d0f8c428fa9dc69e380dcd77d8d30c362b1ca067bbaf124aaaa0b0ce4bbe9afa7f2787b6b8c476b6139960e1b436f8b13a1b85ffad382e316223261d7e7a5f2300cfc04e51957ea4a0a65d19596c3034239b8bf8f0bea6f0d6d749e2d3df8241e4622204c334cd748c4d0254fac93db64fbbaf79ecad12ad19c74d944970779a6401135a5a8cbb32b6334988df3424c3993c157620988aee3bf276eca44daaa5370265a6ddbcee5d207670c0d46d555027c1854ba9221bb86dcc4df2fa8e99833e362147c8d2c4598f467d0ffb8ceb18c9187511b4135ea068d9961bd07ee0fe56b7dabb222ac542746daa4a45cfd77f0213f7e5bcdbfebb5a4ad18d79a599d0755dbaaa19fd03f4bd8cf9c7c8416c14d23b0ca54de5f0492d2d9ced1c8b5cb79ccb5\n\n# tcId = 76\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 1a9f21db6f3fe415a344b61db76ebf60a84ff0df70ecb5cd14a16aafdbfbf895303d9eb831d7a9bed89ee3ca737f49643b077a824dc3f433c00ef1b693f82d30449fcd323a48c84cc5af375d7bfa2d3ad882480225fe4a6adf05c0", + "341a7913ab931bd085134fe470003d3a612d88ff0da54af1bede6bfd58f19901de43ba61c72d5f96302b6428bf03847d54ec1d74921787ba1fedc480605fcb45b74d37dd0abb4067f97e28ccbb86bc0a1c05eeb6582984606be21574bbb7bc04edef528a8581eb135e971c6dbba21b1155e777da9f6c6ac182b4de0c9ebfbc59c71ee6688d9b054cf7772f596fc9f6e87bca4ee8df7d6267e29824b1a70840c69e1d162858ece7de3bf08072f5caaadd1b8c6617fa7888bd5e9d5367be064cc82ac4b59b240e0e7397060417e6386a623c96bc7f9bc1da4365e08c22cbdd2ef1a4a77dfef4bbb3e4cbeee7012c25ce52ceefa18bf5056583109030f91d92de8200f3b202efb9cf58d375df1dfee699586298b9eef0d1e99466bd47a0d128fb9089ec6c87e9\n\n# tcId = 77\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 70dab9aba45e87811d667c5e8324d1f0cc50071c306e6877acfb9a58e4b74798b193159021875e18dde242a51c3885cc51573a95eee4029f663222e0fefd68cd4fa71c6fca4ee8e2876e62bf8211e0986b4e1e7afb2c19ddd5e4e184a77cb11a045f77bd2622665732d1674111166924faf5b935eb2bf4ac8cd47b63ac0078c5ec05d4dedc91595c2b3f5c8dc399051ed0654401cae20128c3dab28e7668b05b4da624fbfab83e425031c8b8f4bb76b78e2e666eb854b0af342011a5e19bb252f90a94ef9c916a945e3e1fa926639425c2e2954533fdab1f6b944650249478792339d9b2f77b46b094c986720029e040c5c6b7c14b777fc9a164004a5b011b15ce6cab8d080f9a006546be010591c638d601d775637f2ed7ab94cc786b05e0ea7b0b0b4c7d1c730de93fec5380c1fa76501f7e3a8eeb26287b27fca17c30952893136a5c12c48163c9e7796154b0b2d6cc7a5d9491a9c777e6d38c60413c5dfe921962ebad11fc6771ee4f3cef2a2717a78bb6ae0895160818881798b58d0595\n\n# tcId = 78\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 9f8d0b7fc6934a3eb7ec6feb90bc8ed2c457eeac964f0fa9ce8924218c5dd38ce85083e657bbd19ce6d6ddb5422315c067ea8307381c7275e9757f11f94723bed3a174728555dea45c8deb3265879d95f005d6bbfb4c75ecc7452a20b923f78d681a010a2c5d1519841383cfa8b299ab60db09905ae9914c7ccf1d1bcb578eede63da12ab0b16231dd40f3e756a3ee84716c64db348b1bc3fd49dce7bee98a16a1f6d9190d57b940a265a31f8298beb1a1f759be17724c5f911ca1d8bc9f2233eddb09fe51d2d36ed1976f0431f06b8ffa848105bf019d30d7d8d05303daebb56980d1a696f1dc9224164932dfd119e8db7b87e44e0dcfa1b76aa2dfba2beba02f14d1410dfdedd27832c03840ff86844b41b73781195c820aae42f756959775f6038f9615bd319f2788756afd3f37d384a775c4d6484ad3dddd7cb9a45e2b750d73f4f802e60efebcc235630ace45f2c50a2d6fbfc10b951e36c363640ea762ce6ed57649be8b49a45c987a66b86c2d590056f7d4a178e1563bb07ed8cbb8b0\n\n# tcId = 79\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 312fe5046619324e6b32a385bccabb713d787ff7a7fc9527bf1b57627940365fc84cb858435f078322935d0384728dc77a56e6429adb6ab9c9e3b6a250363d3a529c7bead31fcc57590faec372f816148fc73c8e0eed5b6dc591a10ca6711eb121eea991afd5b8a820caa377071a04a11f3ea526d150ce9e6f7e51522fa7b86ea5e03a4a37c44cf77c35b4907febb1fbd6d6d9c9f117dc0c41b465dc2afbdd09b93237564a4814cb2831a095fe9862d1f607a31905d45d6946a3d5b6377d85b424b99fe36e1d0fc5c7e74bdc6588bba4af33b9742e5727b32c24b2937a3fae82df3734e86b79fe21d9810fef8d6be753fdfccbdf78d735c4223cc8e7781f111da2d83a63288995d9baf1868158ec3117042a4bc4125f7db1a2e95877fe1437701f31955a20fa05e687ca84b6a8a4dcbf34ef627528bdd22a3daeb69761c47b8799d1e24eccbaa0cfd3f5684d98c5c69a79942846c745bfab428eeadd4dc52cf3827c08547c7e8a8fb0dc149e8b043a49ebd2160e0372733d38000581e775d0c7\n\n# tcId = 80\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 69d4190ab2eb0b4a59fe3692c6b99dd3ec7a8498f3b81dbbc4709b77ad49ae344a68acc33ec05176a5c1f572dca5ca962d51bab6381d0dd050f539fb5f6532a3c811d2cbde95b043d854c50f479ccafa3cd7ddce182558693c701df66747e537e29adb9c7e2ec3f345fa5010ff3f8ca5cf4de31139dc3f9ed93b4f7ee77bf9bd29757f330e259e6ddd5e40f86152f26c76cf7a778b7565287406e431c440812420bb1c9e36614b51745cd35ad18a018acaf3a8871e904988b66e2a09662f88810bf5bfc17dd7465abb77d2f625ca83ccf2e2f187b217c28cc0818f04e259ecd59c0ce07f6732eb18c72fbd007a1f070c554424185ba45e9eb1b10b0555f8d4678fd7f7e91c92de9f2a11c45be7dc1366ffc3ab71f263eb892ecef25353bec9ca6ab78668cb9b66a9d0cd68b4df0b2ee17940fc1c66915cf30be060952cba3b4237bebf7ca4b59023a9293c6634912a90291528e48b96542a0560da0c457407bf454a9ce5919c70e62536b8e5e26f95940a2a6446a00e9ca64e710012d07c9904\n\n# tcId = 81\n# hash of salt missing\nmsg = 313233343030\nresult = invalid\nsig = 39d628b828f44dad501db99f8deb5c33363c043b4ba041c762a0ab6c7edc993a6ca165e15981f82ef30cf91e679ad3357514a6a88f45107ff7675587d2a78ff667d2cf66946a8be5b7dbd535c530a9af96d2ab04902b9ea2f790e10c109950180e61759de708ae8167e1b8ba43ef317d8a141e70618184df8fb054b891d6913649df603e3918b0b22a85c0e19551a6d56bad91cae1fd99dfc3abebb3fa5eba6be1c26b103dbfa36a89cd595e4ed881393b7296a50a237edc331e18b7d21983b66ff9ec5c321955ded14e179752b32117a552b513a1b8a94852c02ead9457d6c82c33ec95be7cf8eff606892d1aa345e0e3fe9b6ceb558976002c8baf26a494adf5a79628ede5c99c9afd706f262fd42272e2aad790b0d8d034e6fe056832986b0757053d25899bd78a5d773714d1e52d7121518e3931ac751250b6f868971648e2a1a1b424b80ec09c1fe153e6edc532d737efce26c025ffe0713327e5ff37f692792974a6873a290589a9b888d6d82ea856a523c9f3a6b2edaaf3d76da41fe0\n\n# tcId = 82\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 54a5a3186bbdf9a08df3b3bb343979c4e74e3e6d507b6b81e1aa34421fee0fc53f9dc5b0f80ad535e25caf47ff3e3abb729e271e2e3d945b61e56fb29e32e7d93e748474276252e3b3f05ba709a1909b95414da0ada0effd5ea3572560fd24d3bfe2798006c322acdfb7caeab12b82169b72771b07030370f301a31f0b919724a5594d9b48bb5c8945cebae01653766b7100103aaa38d4c0080641fb7d946c2ba66bebc4e6df76c127eedd9b83dd239357ecd3c7a4e0370b016d542203963e962aba5ad8305d2980b35b8e4f65e2387afa912c13ac7f725b91badedb1332b21e15692752d474fcfe1b408d5c2bc2e29f67b9ab76cdfd64bbeb809ce9e89ca21722b4e04f03bbcf070df8387485d7a2c3fa0b0b3cd7e17562510dad0ffb1c16d838b042ab85d58fbf4429eb91dc9fb499d54cb92300d331dc5609b270dbe639522d84378b529dd7b592c5eaebefd4e032401b073501a4fe1530851c2d845263b0c988d6f49e7dea2cb4925f9ecaf77365bf01894202783cb4c79f3370b74ea789\n\n# tcId = 83\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 4ed9724ed7882a0ea9d61cf2d1bfb1c042d94b2427d71079625d8d59f7e5632a578521973bd496cdabf1e9dd45bac456440930d221b95cc4d2080e96c963685b909000c45d62835b9e68ddc728e9c03a4831a90435abab57a99affcc7270b490b850721609f568fa4a404ff8b054345e1d8e4edb9234330f9dbe60e4ee2042a5bfb28d3a11a9fd03655687561938c45bafc64f59d0d5d72fd23bc40a521dda3e2b4a7b69b6047193cf8dc3fee3fd299fe88b58fa052bce5c4af62baf548bd5fa8c08bf6aa17eddb8fd175c40128d1efc64e40e08076f738a5da495b1e9e0a2f52f1acc1936c905fb69871de2159aa5b4accfeca00764ecbd03f0c9a2d8231f26ce5e7aef43f271d3623459930a0d99a5a41c726085113509c15abaecd8e78f25fb2e5c3983afda6eadd0e68d742613d085ea1db524f8d97e189136b6481e3e61b7f5290f2d10b15a9b93a5fb4a6891f5e4a341797e5fe27e3c202d267d76be409a3b72b15e406729a2e56c9b9d7cda30283d7dd352c88ea82350e4a12fa17b97\n\n# tcId = 84\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = a855da78c44be74dddee634157b685a227714cbb6a21288cdbf3a87aa48b1da98cd590a049d2ab715136d147142e5526bec5d1d08a24d99e9965242fed7c0e9e3a94c6cd76511083b7fc244db4b8efa094624564feb61992b02b3f7724fbe6f53f4f1220fe03f28a6defec4632cd074636fc129d75f7c12f2da83903b1b40e2415096f3bf3955d1bc231f643cd964463199da00df164f7ebdd967b2415ed460f9d26bdf6542ad355dc0547ddfc93c272902eb0698a53b0d06eac9acb9d54d335c4a460c97fd778dda40854abb7086beff78928b61604dd94f8e0bf8ed54185c3bf14cb8bbbd79c6f9da3888eee31692b30f370f8d6e2716daf73eb5f318ed4f99705f019eed29b2ba5fa6193eb0049fddecff02ed19300102e27be3c85d231bca8cd1c24e175e95fbc2a3bf8e23e2b8a622f48cd100672e058c2ca2f3b1855eddb06b6e707e1f05956a4683976749193faeccb5e25af7a99528da61c686269b49ea5b768768d7f624a1600e403db229a85e8644f4dd7147315cedbdc85703c89\n\n# tcId = 85\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 5b7d079d667b60b3508089031b604327bbcdaedc887c9530ba1554694dfaf081ac91fd339323793d862786c92696f1d9523cc8aac14dba90a6363bee9a93fcd7751973ecb70cd812725f1190d62f9d950a552336eeec2f2759c4d347d4b75717c46365c684acfaac48ffa5a3a74748bd13d4ce461df0095bc2fe74b565f629be5407985ca7ceaac43810e42951e7a7abd8c2f548deca74f34afa47c2d72b85eea9cd2434d4b5ba81f9eec865a2c4ae17d4fe00aced59bc20f0e8a4e9b5fe98da5b7859719fea29b643323f2fb05f4bba83804ba1ae3040e62331d4ee15ad82221f14abe7a9dc440851fb97708b120e4d32e37327d103b626a64845a76d24762d12e4210e166a87fa77f8e2f2c9feda8dfaaefa10774480b8e6f6bd912c4048b77ab3cd7684c348c3ca398ca0c06393e83defa0eea7034c97695e7556facef23cc8a0e9d395080fbd94b085380550deca1a2952554873be0936", + "714c5d78ca53d36728919a7c4e7069ce97bf215da1d02cf14068c16100f8f78baba2d19abd306e\n\n# tcId = 86\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 8574a80f36973bf6b986c7b81bc6d289b118caafffc31d2c99d2dccc1e6611d598dda3fd7c22cf10c7729fa84a87e3f19ff4bf11a96018694b7d829bc003009eb104e8955e8a8717f2fa89220281fed0878b9febf77e5b81e93515a8541d7a4b8a4c008a298d317e7b82c826b5d67bf04d459a5d5fd7f69389dfbb25146c4805cab1aadd009d7b00956ba93f6d02f5266d8b06e28b346b06f1c3501cef04a1c607d7f85ee037178e6f2b0dde307eb6f5f88229541cb3d37e495cb5997264a0c1342713e8548e318681a783381dec9d6524f5c80c437b997f2fb95c80ca7158d0ebd531b4c9bafb19ad9ea0542217c1ad965ee6f1afa5a48becbf65b380f1946dcc85fbcd82fb90011e650dd1e507dd19037ec1f2ac98a87c25a6f588aa6b6f93d35b83c1e8e09152470dae2af8afc1fb2146cd426fe8d3cae5a80c1a63c7fc42825226bec26d57fb62bd048fcd921b8be7aa8d024926fe3cf5c5e3e7f5b2f50b33dea547389e40fd67a8523cd5facb29e97583f26a34f1ed880869800a4b35d6\n\n# tcId = 87\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 7857b1fe06fcc417c07766a9892ae30eaca65df7474575a70d8e286fc22e3092dcd23446b101cf27951eeb2cf879d320b2bd12f45b79c10018178532d8fc4d708583adb4d7d7469cd5362c074c519106c761228557d4280dadd907b27675e318033ad32ea71e001c3e7f68f6dc07509396a61db29a9ad376f406ff35aeaebf8c6fd0bf7df4bb721c91dfdffa933f37db0bee5d4f7d34f3df2a3a0f383e443647838d7c02ca87d9d79814ee9d5b2860fdfea5577702dbc829610ee1eb13f6e6f0636f39c5ec537c0695bca4971dcab6907e907650b92b96d5d64c6de52c4d986d458f0195345b1e84fbeaa483e3c926167a0d1a977024aef2474c31752515b55021048d2fc23ecc5ec5126c57b18a1656ed49aa90e0cb51e77e56507d7fc60b1f761354423b110d44c67664781e5caecb5da5475b01ab2356993378491c2ce4fbc41badf110c33bd0b78cd19540d8aaf27bc9f3450ce7579c87ee40a454133093ad89b29b99b4b15c21f072bd2f5c991e6a98a23fefc06121ba81540cad7e2a34\n\n# tcId = 88\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 9393a9989ba865a8be0fee265ee6b5b3cb9380019e3c4377521a729a968dee0374b547e94e6b12d860bdfd5197787d35208ae3e8d6a689d031072f6b993b7a8900a278fbf1c07dadcba6b4074375c666e035c2f12d158f626277d7d4b781c8b6bd71a97f575f08c4520b2d66588756b9fc8603a346cec73eba4e8350d7570e923cf84c1b33ad7bdd507d87c3ddf01084703f47d423a5abacb7a6caf5bf7ac4c61cfc91ba9483e7b3cbf9a094aae25b17468fb3a3b6a42d23225bd4859d2279037de2ff446eb441de7060a675b61b3e591a4f854265ffe937bcf575ea85b84046af568a298902774ad9a888847f3d20496d8c570da907686e3441998857e3927feebbf5540d734fc7093263b0efdc33f32f93b936d8f81b920745c2c854266059c92120435b3f41d7a3a5a7d2c3571a15db2136362f736e099e893785876f0ff0b51d3006417235129ba4480c4164329f1f9c6aaf48c93411e388f00cd8b6b125f4f1d3fbf21ee7ad4355a416101cd857f6ae91958aa88b31134a7b6906aa184d\n\n# tcId = 89\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b77b9c5862c9fd0f4e4d72fb7bcb23b2a5d2124f13aa7001275451a10148993a3e846e0b29157aa3a1a8ae643e2ee84a459b033201692697eff53b3606e85c6649d76c8288899499f2751918879a034d616543c0b7cfb215744b8dd03e50ce4eeda2891ddb8ca9c568ccf98b3128be25e191a4462f6458c718b33e5f519e3de152b0ec691f2f5b8f3cc150ce37814095001cd60b3dc6e694a3df5aab7a0c1b2dc152c26901294b01cba43b74e4e28d14a9a614d0198c30fe578831c8d1b51b1db0dc34f6c47de0d38d20efd1afc8d385e6bffeae43280f62a5f2715af79af64f04d126e1dd36067bb44d01ebc78769766bd4332a43dba1b124a4cbed381ccb43952ee4cc19201f05558c11f51ab5e76b76b01fcd036a949ec9e4d7153fb25a1aafdc8e0f1754bb59ffecb9a6fd9cb05d527661bc013cb73cec4ad1ab046e1e94b6d518604c7ce7bae1dd1319b612cde529a6ae588c4c6a6a7669e82e141ba6352e4552fdf05d9d1e3fa217ac5b38629d81ed749629ec53f3b30f29df883fa68e\n\n# tcId = 90\n# bit 7 of masked_db not cleared\nmsg = 313233343030\nresult = invalid\nsig = 6ae7425610f6d9b6cf5a358bdff3bdd00802d55cdaba2201794738b900489dfeb11d921d87449ef9d1e5b0deae4bdb26cc13c9916a767cde8e0ef67de6f8042e1d5f600bf707f65380f971222d37088edaafa4909ed566694601e25bec8c3128dd61e664688b5ce2ed2f626a5b618bb10d12cc78ebbb0f3cd6883b6476fe4f89008d9e8feb7e835fa873f2d6d9973412abcf12d2646723b1a5ab4e3b206d49ab6f47789010cf902adf720a02c7677847925487634f81e163819f286da4d42437e66ead9278a088d9a2628aec137be60eac2eb30306e598b9459f0ee1c79dc132248f013f15fb80ba713703b66848612d8f4e5d6bc444e166998f3107b459efc73ebe1bdc0b98e4d57bb960d6db0540f68b96212da6ffb05bac7ace76db7b3bb69188715c091f14354fbb8a02cf2b2d77e7f2e8db505e93603bbfff2f33ba54be38630dba291befeca45c76c67f344b9daf7a7b0712b5a49e7b6af29734516570cac32d02074a74cc0e49797508e1aff2af9f20a7163440fd962bbcc5269d8f13\n\n# tcId = 91\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = b9bde8fc005ab0b6b0317aadbef7d6e8abb69391bd7ea43fba5a49ffec02979f89d0a9efeacfccabae271c998ad7fbff4442367c07e49a892b9632bf4f30de3e95583875f3069fd3299a30bc21e74526cc51cb10dafe22b06d3a412a6509daa83d337e18c5dee6591a11262e008c3b562a18a9ada3169267eaa849b16a377b195ca6f83df0d2c2945a3d3fc2b872bc2ba965ef4186ad1e7ea5b56fb689fada3f377e0897e5cf86906dd2d894848a6f3d64d96a5523fd74d2e8418809fcefe5b9bf12f5ae7189e2aad268e835b5a701073e26be131c9dac06203142d93c95af3d00acec603aae2a24bff3d5481c7e71be5f63a1c47eef680a00991008ca0047c7bef7812c9b823a64e6cb40d0fb4472b702bf4f1c9483f835812eb3f70808e3dec7ab2ce2d8cf1c0dede8521780513140f10d84727d4f14ae06f65276feba1857a7e879e9c4f59c80760b117e1c4083e342018da1c42adc6c5255404adaf8460d122d3c670aa29b58c087d118643eace86667e6bad6c07f078f9cdb8618b48e92\n\n# tcId = 92\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 872f410815926494669ff81dc7114e096f007790f6a4ae3a946b64984eb28bf28351616cc82ed34172f1d1d0a8918f87d64258328db63b72127fbd26320a21c114a7f0b6c88ef717d949f57a28e66244b1fbaaa942d3ab2245ac76f0cc4bafcc119a64f7d167e3e2a64dc9a004464b28bfdcac00a24ed7e3689ca1ed23480c1a0625601c4e7f1e374b54c1c1fbed91e0967b40a3920210b84619c23217c2a6a39734320607abee432c7ad2bb0a8b735400bf775256a61324d4c4ee743ffe99a7bcd13a27b0fa33c0dfbe0cf9663116997573a59204c62aa497e98a698b5dd19314de9ef95cb8bdad0e07b722eb6795f6ea8098b7b092f7bdf73aa459dd85843b310d71e0400470ac14db383940519c060d111f0b80896083b6fb305ee6d9d7879d177f7cfd85c913d226fd6c75f38519d7e8f6d32bce50e85901fe6bdfc74997862a3b809e5ed5793013cd19af9efca616a9ac3e346136142374f58ca823b6a6b2870bfec41207b0a8f58d72c119e319a3934cbd40451f0a1e26b447a5687b9a\n\n# tcId = 93\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 5e0a2f627d11c2f5c2a61cec6b9ab6ea6f2620085e52ab1d162365a2c7040178b3e6222503efdbc66eff0cb892be95abee6ae02af0a29436de4ecd2ff63eb7e082d51ab31d358309747ce61e30df4ab3382341b88eb2da84406ae20fb3bf9a968cf5ccc871be02f6cd9f2a89ffc6f3a69a589526e8a4f1a8c049286ffca8359e81cb3173a2d2e2cc76a4829edebdd3dbda327a92dd35202b597bdf077d7ac2924f8cfb29a85dc25dfd2ab6e770cc80120a7bd594e020392e58acca9d7356773e58aacfabd66c2d9a888379b73868d07e3d14af1dadc1843f2a6c8e14c93b3b29134169c5ae3b293ee6f6a475f20c7c159258a8cf1a1cede602afa9fe7c61a3218c34024a87bdf4a64ef12c78a11a50bc1521836bc4d84eba90ab1db1b17ef0e6e95d7c9de5d6b84e11dd5422a869ecc7f90f952794f6093df89fb664aae86669c63bd46de5972388d81908fe56c6bd029e393047c52924a97aa55c07d482f98b784e6d39cbc280330a34ac4a8a72733235e66234903a4505228a3fc8e1146034\n\n# tcId = 94\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 07f0772411cdb1e02802f8ca699bf55bebadd254c9aadc16e1d6d4af3e12670bfd2adc2dbe80195f065d75fa4a25ef757766fffa4d902b386a9c7f247206f60c744938f50d6f840170ae94c6792299c386a1d6d7aeb73fecd5b72a28249a2ad771a5518fb694f54924e15cecb2d755da44b54535dc6f8fce0e91ea160ea942c9e34eef5d7367c9065f5ac270ef11a35bcedf663183f74cd2d504410b97b4034a59d201333f235f59924aad30fa877a31e0c1573f62e7be41f961e9c31ec334153d83adb0ef38963f0f5e20c90b67ae5c5e2ef8520587587c22e869881abc6bfcecd62a1f878115e6cbca7259e8b9e116fdeed841f1d698e85f65c7ae07421cf3096f6b31a07e251944bd7e2cf50ccf69a18de7c17700b25786d29ed74fe8d5757d4dabe2d6fbffc2227448ee8d5559f992a3b635cd74a68c329f1785e743ce9d3bee57b997f9ae2deb531f8994ada98d9a3536b074814c2d5003d6a3d50a9e56287f3aee8ed87104c19656a6057515fe17bb2a72a53a7c19b7a814252c8bee61\n\n# tcId = 95\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 96\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 97\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\n\n# tcId = 98\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203\n\n# tcId = 99\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00008f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n# tcId = 100\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d5580000\n\n# tcId = 101\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1\n\n# tcId = 102\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 103\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 636d31d8d5dfe0fc6ab01ef2ccd4602dfea62d386b002c429e7e846e7a98d0cb1d448d25be039d5158887ab46a9dd49c41537a89036a065fc10329df051e5f2e5c1d4436e84790ff6db4d3f31575e5f0fbdfcaee625722c5492fceaa3fb29d0a865200dec06e117b04753ca9450a7ca7f7d1a1176cc38ecab721864413a0d7a22d8fc1595b6cd0032fbf154fbbb31b56d3bf963761ce8ec9fb38bba3419716d0d39e976857e79b1faefd5f5a2ce0ebd94968da1ec3a387804694d90f37b34033c7f70ccfb26beffaafb7bf56c1b8385d489217458e0a68b5d680f9fa45382fd1c227ff3c11e3ec82426ec648a564f0e886e5b12e695dd2fc8465bd9d08731fb140084c79be64d915bcb4ba10f1edb4c37e35231753be2d9f339d37d7b5f22c91584a68a973f9cc469a23d3b5800157dbd72a8405fef4e444ff01f7fd23efa143c1887504e81773743843d8a73209a1deb66c5f305df539bc30e871332e82330e5b66fa6ea253b2b64b4c9781011d20e80ddd8cb83916834eb8fa696b0a4b6bcd\n\n", +}; +static const size_t kLen145 = 115183; + +static const char *kData145[] = { + "# Imported from Wycheproof's rsa_pss_4096_sha256_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 492e60b828a9847501c7ff46a4a304ee7bf61ae87dd88cd5598c76289a70ab3afb7fa9efa3228a1e826241c13c2e120d22cd3a38a9b9ec5826a9711bdb119748e0f7080ccf917e8cb53f6f21ed19f4ffad9efd94c66e329226a811eef928816b5edb3b10d1f483b64bcad9b055dc78e99491560f59a598001e76a0bff0ddad4ebfd565495e2b523b02dc80050b64db4a200b5ca9efd8a1339d6cdff6a82dcbf769d3b0ed7ae53ea8f1788eb025e186a5eac02e3e1fb1f0aeec29b2929c7a718c32159609f973109d4a876bcecdeee6c6418df27fa46eb5cd238e274f94ab571c968b2c4a838cd812aa90e4657b95c0ccd68d60bd7d33b6e291a6a13f68e046cd41ecfc2bbe35fa9b4a0c17d89a708f89f975bf5a5eb9abc812b0c498d93d2d161f5c7969afbcf798029f3c14efc3f7c265b93fda572d265e9e116ffa9416e111aad32072f61943e9f0754f6e116ab5119ed09bbe245022b6e8bfe35dcee4a53ed375f5451c43f38f6eb55b48e386030cfb76c408c81f606886c81aacc76a999735682413069cc016f6e390ea2df7e8e74d088fb0643aebf4899ee8177a4a5faea3889181612ffdffcdb3fc699d578eba383e23e1beb68824c0bc7f920afbbea8ce7bf2b7c3bb40f33c6b7c8fb6cf73e6e2f3679669f235ddfebeeafa872918581d99c84d6dc37ff85949449d3994982d332cb9f9b8aca691651c4b63e58f6b38\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3731df2cf46de010d06775044db5ad8c98fcb8bf2be357fd39af55a864395bd24fe7cf104374159cfff1b537bb26ecd67a0488ba7a124d8273ee0b3cee00bf94c5d34900c4ccd6e200cac6e90d97d8b4197ea78ad36be7a4fea6e1b43b1ed954c737bd6ec6960945f24308b085e255c1142c61af876995bb5736ae19ca0e1cd9b319634ff7103a4dc89eaa41c00cd173236c275c463a1cbb67f65e45b1bcc4e10c7f3456911e4f9ac4cee8b43651980dc2e8c332e5452e35f256463b96bb21799e22f4349846e8a2583763226b3278134b9313757163ce6ce0628376001fca63c535d384a6aa7cfecc29ebbb5cf6be9d2b211464e02a09c089fa63cdd9571f3fc559bd2b92b7a5a724d3b88fb4e42079add87ae188a983c11fb769d3ce65fc5aa27dc17b6914283971278a749101e38d3b92ed2817ce2b37d4dbdec14f44f2b015433cd6e5a5de6d803e95b8b8196bcc4a77ff6a8419f5c78b4dcfdae0f9f98e8ab792cdc18645a14604a604a417abcee8051aff0eab887f235b1c6143327a0db2e00a63e4c6b8e002f21c86163de68e49c766fa91ad956c12d36856cf58324d417b4898aaa6db3eac372f06ef21d7a7e86b540972dd4e3f7afae7caec8a692f31386e7b3e8b934499a945cdf556eae3010cb1ece6a08d0dea9500157e78117d0f4cdff096fba973f7c04f79bf42a54e4a82e5456f065bbe9382605c444d21cf\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 2b981b661e1e244b67e1892bdab545edc9ef68b50b4572a536dd4a40f31195648b8180454faa8765ba19b7ac6a59176c1a2c621e6f4131af96beb4ea47252d7617b9d8b432b5cd900f7b328b0013364a520ce46ae66a63b7181ab60b514839ec8f6bb63ec2f83a2a142d8ce532f63ebdd3f29ce26797f46f68481818ff1e00c47df1e7e8d809737307a63902c94d9c2ee5c69f1fa0602eeedab4d7f6d0032de1a8294c117ad2aa34f1175544f2bc1d466c5965ae5796bae216cee8bf7b91f9746a97749cce0388f8f443d14317e825cba2ea278045826835dfab50091cc988fc12d4913920cd625ac321df4d89175ba3f49f89d372318bc222643ab888246f8e5ad64f227be043bec3828cea0bc0229be6e71a035dca97bfe0c2f34ce03c1ee9d084d19a6d6c301168129a6589cee1119cee84e35b561d1f658b2e4f16c2b4ac2ded8ed5757ebec2d5ed59c66f7bd932d64c58af7fc16af4d3f6bc42897114c9ec537f8b7ea86752a2a26133a7b8085f4d438ba643f7a389a1c6811c2ee4eda48060d27e6299b44c8d504d280ca56ca49c246b5c4c897d3e1d352e047f735cb7e30ce87061ef267bd9c50e7de77032a162ac9a026e684bb4d0e8131a90240494418fbe471c9900a6b322306e47915f83cdd8e525566e8a71dfc869ee5c7e74d33ac8646d7c170ff82f2f3e5d319dc61cad06235145c031d03cd420fc370adb3e\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f44\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 66381e10ca91edb043adc721883b8c005eaac4daf040379f4d69a2bd7ded69cc6e85d80a6f3ce8aad523a5d185cbb2fcebece5210feb0318065ced244ff73830cbc628d79572f7f0961c111883b9c40336d110cdd4dc4b9a04ae4a0380e8b17f0667b71b2c5bdd1c9b48c4e83694820d4cf4200051bf3101559625c0d06fd0996b759e9f4c689610e41655b262957457a4d8341c65bd89dd438025699dda37aa2d05", + "1cd3c974103aafb092e865b1397661be3eee3f95d7a75d9a2ebd74e6d2cfa54ff0d8753130eca1555eac4bea45e90a6a37d7d057ccde4c32e43c7499d5c38754ce950308fcff69d42aa4a4fa85e6d92bd20d605823e198e94af5ad65ca4c2fb919391f919aa5fe048ff51a506f63063cc5f777fa70b20cf759a0b812b2527265fc7f32a40cc275ef94ebb4a0410280ad658e67c34d581b5e7a17c5629be34ceb70ca68f40aedaa3c9b7dbcf34f30f12789909a3540512044bd812760c3f76dbc644b89760b54d9e090dd9cbab935597c55fdc6793f8ef007f732732e3d1fcc3e3ed253689aa29acfcf85847acb74a722533b0b5debfbcd0b5388f6b19e8b9ac47753f8a616ed9a7e4163ce8669437c62271bad3497edf3b655e4d1523cd8f3448c5d07c48dcfaf1e1f8310baf3d3707ea23288911fdf91d7379738ba8fee9ce525ca0b9c4c03bf1bbcd7d1369c0d2f5e0127ce2d1f95322c94d4c309f2e8\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 134d55894c80eefab7744abbc9fc5cbc087072da8243236fda9df5ddedd81d23f0998061ceec59d1bd4fa2f404547056f9616f77843330bc65a2d2386574ec9198b2abcadee4139074c3208e2f09eec1e527e26b78b8773121f852bb8480e22b34c0e1cafe9bb224ce6243c46c03cfbd0fdaf28041dba177ced1a2ad70ca2f1e7dddd6cd137732f4a774e47eb59d8225d4c6a507f8f273b600a5b6449d63924b3a0cefe987cb5998dffef835dfe3a675442c90d02067c9b3ff0e3f1d84ce8801bf366e040710ad2c08c9f379bd07797ed954d3e15ef1350ffef88e9bce7174466358effd2494d7e174ae88b04e17c5ffa7b63bb6cf194d007b3ac22113fe3a1dc0c97d3853aa67c892d7d6bc5b0be6681e18004640416587452c856644ae6c07d135afae80fb80132c1faf56c5b224923cef5abe9969b807023fb84146a62e19bb6d8e5af0475e07f48b469ba3178c99741af6e57aefcb766ead4ea6cb3d172532704818fd82e12132b6329dbdc62e4c9da1fee2cb19e4f60ebfebc681a5b892afb812e82029123a7414f56f57e09731fe107f682f10a5c31fdec1d60118cc3646b0284e1948b2bd37c280135ab587960fd0769629860d17c4349271267a89c26c5f5debfdf40d843428af1010f87ab73648ac1c698898717889c38be7a06b7dfe9f63a9c7a19a77d61e3235ceaccad99cce004d6a870b27cd13414383ef4aff\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 7a7848548b15bf23e4dc1908e5b3aa8989936c498e77d587e64ebc9b335ce6f400a3965c027c6c248afcda5c80efe8d1f1bd9e71a5c459aa428a4ae1d1cef91ae48788f361dd440fb3cf745c9935664e43b81e9f860985418b61c3afe63b85cbd07e7dd3601c8ef8b7467694e3221ba4ace737c3134a8bd7f7ecd84d1382a93e5c9a6b69c9a8f12cbd612e48e5145972a1ad4f92cb0a57f44e0fde4548d231a5ee0efa8698154c66ddfd8fdbdd41d1476bb5d8852663e4b7891755ef9fa7b5d508b190d59270d32a0a7f32b1a28570a7e52592324fc461a32bde7e2cd14b04129a400274e4183cbe44aa4bea3b4680061b119a97da65c6ed4bff5f2f59193ccdfa8d021816a2b5d32ac52414d1c51f8c198f4c03e0993f8e47c268598d665c2b624cb66ff02219a9100adb3ca9674ca1b63d77d6156307efe953a489529a1701ceac83ef1134e7cc7aaa578fa4909e9c4c0220a5c882433dd3f0af1d87bede7ad979ecc9999cccaec3c4d39265efad3c39809ad3f24fed3982dc74c57ff8cf1578d940f9c6d351aff9cdaa2481d0f355054389ab2a6edb6b5455677d828453cd6aa21000adda95644125cdc6b4a4f95cb69a1abd23b46603485e696dc419cbeba767b2fa7081e1641c4b2daa44f5fb2b9a6513dd12d6f12f0f1cf7da5a74223da8dc390468e46af16583faacb7fc0ef4c095c641af4d76be03e880d4f4e2c8a3\n\n# tcId = 8\nmsg = 343236343739373234\nresult = valid\nsig = 303afbfa17c9c8d18b64867e7293f22c8a139a6b106ac86e9a59b590f085d572a0b1bc177a35e3ba74d66e3c6d9f7b5daef34e03080d13951fc2e73cd1c7cef4a815071a089964c35afca9745ae54c1dc2443c79ddb9f111182c501177fd6351dfa8a980f1ba2c99b489b78c3e31002007b00850c52e5db7f6cfab31ac0a6c8f6d0516e19304e8376088aae408ba6f69b2f70ebecd64a53e3da851ec36cccdb7e317a4f4a337781a7e9b0c168af765431e7342f53164c50c12d1e33b5f026a6cf1925b76869252d290ed048ad6c88b0010ab293f6d15d05c884f5c830fd09d107bced6a0697215afd121bc137438ebffda18b1a6f607625813ca9a93b54d8ad6be5ad5aab808d5fb5293ccf6bd18dc920fd72c258572b660fc2072251488c8623e3d2bf988a72fb289be8046975828e210217fd04d82c5694031be9a9f2932aba449da9d21738705a513a5dda2f277ba9a017c6363da9042838aff0c9ae4b5655580e74a95459666108fd5d870486b7ce4187f057fca8fbb0c877e1fb3ffacc26732c26a50c581537adfd596baf30563d7d23af2d68395f774f52abc238738a2fd15d1ff2046e07c382d176d6fca5348c1a44b44bf89883ca569b7cb9d7b8550e65229c4fb21e3dedb80ed3ec51b378c77750617741976d5b2f764c7db5e103651782df4841789b6993c5b73840038cad16b03a368dd6684b7a90ede21a2ed2b\n\n# tcId = 9\nmsg = 37313338363834383931\nresult = valid\nsig = 245258fbe3957df086cf99d113f5297d5287f6809236e97e398a4a66d43236dc93c5ff7b089260ceeb8312ed7c7fc2a0faa6b5933adb453e0619ef06601d5b2e2ba8b43c76704c29f45416d0085d209911db798c0aaaee221d795fac94d66d9bc01eb43fd9caa23b5e34d33cecb735319133696aadaf316424a9bd445a6b8bd779791edb302f352b1460a69a25fd14432cf043fcc4f1ae1b7bcfe6955da3a89d6abbfa08e703372b977c57a84ba81f7cb51bd58a9929a8b8dff805aec99b03a46ce82a16d25f6f30e501a9bd0fb8a47105893c2b361f80f2ae872e5358290770198cd2b5139c234e70b80aa18cea9d9b94e2b3c46e9311b2fc513e28a5dc83a4b1603d59ba12f695656fc40bc6f890731e9d990242fb79f5fd2111ed7b7019c0f22c1b84e382fff744e9f0476e4eef7259730ace36cd7b1747856fde8d1c6883df62b20eaa58d18febd316091acbd323903a9351016d089ba51df67f5cd14114b8530049478883d53f0376ccdc8ec472af2907a5463c320c066ecd8aa6ee8cfac58f67bc051685f0d38bd2649442aadfd87749e22acabb6c396e018d623540edd2977842ebc518e3b2954a8555de5d4b675027488b52f8ce32ae864b9e965163b0780b53e8e227e914c139f91afb662b9c4fbf21bcb7b43040113155b97571806c112aae1e9da34743df2ceea812f3b931f33bb103d9c5239c92c701c0565fb0\n\n# tcId = 10\nmsg = 3130333539333331363638\nresult = valid\nsig = 3f4d6ad95e3b937372ffe704d32b54c879f04e85dda332b360b2106942c45c7bcd2c7ace3c7cd0b585182a83e89a34809fcd72687c007c9a2ae07359449ff983bb1b5c3a0fb44cc694eee28b87d961847fd9a3067697c3283d4e8b79fc086ce77eccbde90a7960d9112ac4e9f0ce5ba897bc564b3bb6fe023dc369c01724455eb40170d92071b3cb08de7cb55300b244992e80c2e181d854c9974fb76bcffd3b9389f37f39dc0c0df15584fb6ca4c29b1fe1dabb1570a235f5b17a283969958cc7eed4a1d15eacf84f8cd7214b063b79c976887039adb9a1456f022c11c4966c32dd4c7782a187eeff40865ac926cfe97a8640ecae28c5448e8dcbb50279232f0dc597b58dfc4ce53d9530584a808cc7a20dcdc90024931732b92ad17bee31b60e7e3d6667d809e4bb02caa28d3676a7eb5fccc841385a010597b02fdc728715fda89cfca37c72cec44b6befa8093b99a4cf0a81a23e484a671b589437b4e6a953e27e7339e00cf0762b9ba9aad64170b8f07c76f2729771b8d406936fb219d3decb9fa075f51ca804f7ea59dae8f663e49f6b007a0300a28bb54707cd891439207104463907bdb7f7ce2c7861888ced5527f91e6f52003fce1090d9231a07303a416138118be8c49fc919450247a9004164030bbc69534dc7f61867f494682884314dd0fd6573af2cdc3e86ce5c9dd6af71dee512c78f8cd5eb4cce3967e349\n\n# tcId = 11\nmsg = 33393439343031323135\nresult = valid\nsig = 8732ca98efa135da433f00d9f4f5d76ab711876cdcd965598e243a7e68565eba7d60a95a5838dab1a3e35051cdc1ad7be6a6a872ec631c8f23c84ff831a25a01f3f8a49547ed98ecd7672ff561c438aa86c5a8a7fbc07ca1f6437d6e30b695ed81111365f721fffc36979ca2d1a55818f5a0fcc922dde87ed5b76fc47d5f4ef219f05668feb398b77573f9b1232f090647a2632dbfa3ee02c585660d76f2e3504a682382606a766e214c51a2813b730a93013ddf4a7ef08028c8e444da2b8d1f583780bba7148a010314f2588310da17845a0ee37dd6308d1f8d9b87a88df57cb1d530441c6a2c7a18fd47b4b7f89353d3108e91bb584c2c98a74e413e8e3be7c8273d0822dbabf96970c61b104ceed8306038a215c61f15bb4743dcbd80de6ef1458923213f7b27abff0614b6e1c3b02c4011ba2a6590fc9577687a2bc5267762367d7b62b03110bfe5b8023ff6a7c46e46a5deb7a5fb5f7b50207760e449655bb7ad84638091119729758e11c30c7dac2f0bac200f0d62e0c603a9a6a4110dfc70ba838bc76aed762cc9a7c3830428f0c8c68f7972a3ed68f9895ed0fdb7a7d6f206e8cf44100bdceb126ff8a5bf21b1e6dce17c3bd3b8908a8f4aa1d7f16800185d96332be6d5c3c5dbe0324d1cc809ce72f1cb1696c5574b13430687b2ddf1970c5b45fa3c4df55b46c88603677f29fddc4eb302e2490fa09af3b14d8f9e\n\n# tcId = 12\nmsg = 31333434323933303739\nresult = valid\nsig = 4e3b548219cbdba85f3ca9e739a153e8fc69a4974648806eb92cf2484b00dc272b4ae4b88db9b38a5e4320332c2ea62448c08e44968fc1ea1390f66469ba52d4633ea98bd3b6204e813bfa3353dbbee7c0c659279d7bc78770290c444ad6105ea2634fcb66ae0535900ef9cc458ff9da86e40dfd4e51f6bdc7b221641f6783d14213b6507ffddcda844ae38b323c6f22415dced537575e175633997557af0990589f019ab5ae99e32557f82b1b9c1c54e9ce289cbc98fafacda9ebbddf5fb3d99fb73e4ccb3d2f2ba889bc47207887f646d529bd1cf78ec915efb3086d6d4d664e8b07d094bc88d8e9fbf6b2ef22e56dcc7ea634aa021efaa4b85aa517b748322a8e0ee3c53324865a8bbc545008a5b855e9813418db9f74b178c1aad20e52bd7679d2a651760c6c195de92bfc27fec2405bb4b267152cbde712ce658a58700eafd2b0d3f06ead2cca73ec56cf4e55b5cb112263bdd8636b51779fa27847b2b658b39cc023df2d67143922dbcbbd07796d7702aeb831bcac758fa50d578996b5da3ecdf9799bf27989e5895bc1d86e99cc8ee5629479e99f2c0a038d0531aa2fd6cffc52bafa4406df74e0f33ed33fde3b4f4caccd06b68febad7f59e7e9", + "51c95c24a588ce25d5e92b9b411d8b25af54e87553264faa6c5773d6d59a01252bcc05a40f3bbcb995615cb85dd1771cf05b75305b5dbc9ccc8571c0290905c22bf0\n\n# tcId = 13\nmsg = 33373036323131373132\nresult = valid\nsig = 456c58e80907cd7723f351425750bfbb8fbcd7a42794063f9c3093180a79c9b289b0c2e7db35cf0e90af75f3d830cf27ab4fd739e1db1e51d32baf5c2c219e2db5b856b5f0fc49fe33b32cb53f6201b47b320bac4f8e26d461ac6bb4c54a8cb3666717f9fdfcf148410ee6e2468394ebaa58a23fa3c7349ede819045d13a082d0304e5d0dfcef237c661884663dc956be112d47bbe627a1e66deaea251aac624ff45b15a6cd49c50445fc6f3e8a15caf4f9d082fac7b788695e3401b5b80fade651c1fc2404f5ad45ed632bddd1d02acaa6467f0da107202ab964844dbf00a48716e28d84176aa98ecb76ab52c631ddb9e1f06e6655cfb9fa1bccf05e9ea3aa773e540d0e7937f78e754a8ae4b57b0ea7d3e7cf42686f229e425f00cacf766d0c56de3151a151e12204c04d97a1470903e78cbaa74ab12955e1b2cb162acb07aca887507a661987e83fa9b0606f2b0d1303a709f407cb6866a560fad21f60a65bc4db2440b1a0b349cc29668a9f32a6d6e4ca7ff2bee3d670402fcfc05a51b988deaef45b6504689fbed8793f5061e50b803ba73843f3d8ba4ef097ff361a7cb58e95bc740d93a8420f81c13ea40f2f4ec44a0195d010577fdc42fdcc9b17a0c273dc79b48bd417c980258689026d292508c0c21346b6d9959f900cb3d7edc5acb5ef2e1f75eb3560c82a20e7bfe4c151792b3531c708744149faaea51a9e8bc\n\n# tcId = 14\nmsg = 333433363838373132\nresult = valid\nsig = 70aeb4087275eb488c13af70b3bd01ed728cbaa7e9d23227b4852d07bdbddbccd7e7e45cbf67a3609cc5d916f090bcc003ca86943a56b99482cba553f54a6c30f9cd09832caae0eebc61ac2824d1adaa448e3ceb6678da38629b2e3dbed14937881cd9887b23b0971b9ad2b30d63f553bd6d8235185b43f7a1db62952c4d0aaab7b598777a3c6406c5fdde2664f0112269f8a02dbaac936674f08330dd7ad49d7aa7a43926f9a40824a386ef0002963b2697e23db3bc227d12730271e2842ade151db6db670cf849ed14279b1378291d32fcc4b76d918ee5a0b64f6b5bd43d84fd5258f53d908f9bfee9b9de510f6e94ab4209ead7d48d4b1bdfc13afbded36d85de2adaae2e72beebd2b83208b7171d1618a66016e3c5f89364c9c4b8e5c33129f85fafe0e48080b6b78ac0f898f73f9635d8e72939a039d56e59b359f5f7e891f81c59369dc97da667b8e2a2d86f84ac9dbe98eed74c4f3d73809037ba17467825fa21aaffd18daf6bce69b8a7b88974565012f9ec01a51646884c1e64346012448940c4b3af1c9f86bcf656ba5efb0b1e65e8f9bafe42295bca712030ef6cef2d8dbb300ee57af3cc40e19dc1ee4138e78cfbf6f98bb8ef278dfda3b2464bb0bb6c9cdfd19e1b70004c994d4ea2962c4cb66e4fde4ce9c62b05cea744414da3cdf41e6285c1134ca53dc8581c6090f2f4b649455cab26912571dd03fc4ba4\n\n# tcId = 15\nmsg = 31333531353330333730\nresult = valid\nsig = 27b2c163e957b544022b487423bafdcd96b0d6b8b91f3df95e1b57679a5ab1c046de6dfa0f6a898a6aa1b5a81dc8eeb113fc992f4c64486e29b733fb4bf040afbf2a033eebf837d0823c46a70806de28a2a2ff3e39116e726afc7d400864bdefab2edde98662e1b6b036266fefcbc6040f95ed6c316c0969bdd3aa93db59d9e51a5172adf71f1af70daf873485523d9235c217407240938d5746dcee5b978aab3213b66fb75fb685d99f99160f23290baf90e9de690e1baefe716f119163653d35d7d638af70712fc97def6fe88ce8520e695f8a7b28a1ce73f0b9d6ce433ac0ed5446656a9b31dec1712d3c0fb6dab5f8cfb7fa3858bccb01033d9ec092a2f7f0caf68867f90a0318dbee1d40edc4c8ec0fea960ba04262dd7b2e48a3200285705ab150988f0b4fce4fd313d45f109d1f4a7c1c184d9123e896981b81afd280106917dec36f5b0ef5d3a71bb37a0e9c42491cc28bb82c70256775a5f2cc5bafcc15a8852b41ac59b1c7f654ca8d80375bc49e2e6b415458628d965d4ef4a751701abd20cc9f45e3cea908ad75e3bc258b36f584e60502e7cd02d2d4f8976bcc52695adf1bd6325e06ffe0ca161be992b4fce04d2440d6035164b09a8b955673e201f473c0f759b27e892c7fa61483743e25af670833f6fd49bd606aa04369295355a93163faaaec789400ce03067bae206dc58c8c7b4157251e63d683257c27\n\n# tcId = 16\nmsg = 36353533323033313236\nresult = valid\nsig = 675b9dfbd81c45913b46533153fa93161adc71cebdcd218b534c43f24b59df6fe8311da886898300e818ccfb8911d740cf619edb42643938185db0e2749e1bf4d6ae5a5c2d7c4139c339ca64e8dab0bbaf762c5a6cf9b6e04c86e476a6aec56c110a94c9ba0545f6f7fdfd08510f555cd67a9a8fe12f8d04bc00634bb3f84fc92587a3d4a9bb121762d8bd21c85462ab0f33de235498516ca63e0c4e157fd3031d78da7117f46256fd99cdd5cb18ac82d85c4ee1fa954e603dc09367a979d452450a63995eb83bae1d371b33cac539083eb52894f534d06d3e091e8e6a1dc8dfbafd4abd4df3fd5aaf8b93bbd1ff1d26ba7d1aae04e25a1fffb6aa7c02a4e75dc099d0e3d8381d7df70bd2558113c52ca8f839487ff5571c2a12c4c8596b023a0f9cf90958b69e513e59ebb5bb892b9b48c8e79887551e9df73f8f1357947f9cb43583c0b775ab9ec0d89a700cbbf935ab3ec00061b8d462b83c496a4b8abfb0dee0c11b4d5e3b6912a33599b014b7c381c2d8e82d06197cf2c40698730881de5df4e7202fcad15bce63c6d08573cd7712551404cf830967976e258f903aa518d7ee967d1c7c319bbca1a24420ed6beac83719c43214b9617144c1daf762b66f22bc34b8667dccb5b3bc980090ea22fa61c68e9119fd5f3d88c84e2ea9f83f0dd7dfc76b7535205fe0c4f7798e14f5559263dfc3666e9536e8c79445674dccf1\n\n# tcId = 17\nmsg = 31353634333436363033\nresult = valid\nsig = 1d1824029de39c7907288499362efe10d06179a8211e200f73889c1b9b68f7bf0ceb17ff58dfe494654e108864a2859075adf2ad2bb2e66a061ac9330ca9fddc525b3be8761f01a9c3eb7c9286215612962882b42ef74a2328e8e4511d3a589653bf0e46f299a52bd72a697fc6f09c4ee62c2d34d5487ad8c723faf42669583f2c7418c5c3f4897a193a19511c19840eb5c2c71b81023c0df8b1c6d3f27a880547dac9b12e094dc90904d47473dba66cf61207c709cc57791b0786148f62c591f72e46754e3d6e6f838c97397c5bc90e6079bed3dee5cfaf3520f50e127be6ba35cd9783b46424ad907a5c04edec02560c3d72179a6ee5cbbc9cc2331ef0fb157ed60ba4effbaa9a208ef03e1a4659d2d9a77f36fa783aa9e6dfa72015f6d6a586223a4640e04fe01b003aa395297c8d9579cd3b8e0134a06ac361819ea8499e010615478cf3d883b8f6a1ed2cd83cda71c7a595b3582ace4cab76a387f9f1f30aba9f5fc6ead0ad95343156a734645abf5b2771299dbe5daf2e2be5d4f1e6db93e92ee5202b7419b47ed5539d14d30d099d39f504a4162bf8a16a986c5cbec2a7d56ae06d815c4b91301d235a3d7e5536086699b44e5b92fd723804caf6acefa2fd58a9dde0c0524cb8d5a6288b05490b1153792bad9fd99ee696aa3b83d8f04f965242e98b1e6a96cc13f5de46a2fcbce6bdf33022f7860faaaf6d1ff0a5cb\n\n# tcId = 18\nmsg = 34343239353339313137\nresult = valid\nsig = 7eba46db8935bb9f29f3e5009b8ea19022f177fbdff7b5c11ac0fe7fc31ed63cd12685096956be4cea1ca37f738104144ae4a62591a467cfaa68b7e45c76bff4719026f4a5b1ad2e1a587bff308a27647c93cd869445d23043f87fb1bf0730e6f620864a61a097bc494eff10ae87fa270180ad0642ba638bcd53d753d2b8ecd1f70dee4eb0c90d1108677ef19a13c5bbfa2b1a4fecccdd54e15909fc73e2947677bbb4cfd097b3933facbb3d4b608e600d06d5ad53ce537efae69a5c6ac257c850eaf211aa58a3836368a21498bc63aa271ad5e8bf169ee149eb7f761393061ecf567856c64ef7575a9785d2c482cbd9a2999cc6499cd39103ec8d91ad3cb8cac0b4588ea1cbb8a61cf622bb638db4f0ad7ca8b1eaf9d7c60f9c7427e08cccc25057f497bd444aa11da061daaae0e5cea7e6aca793a51010be4b4c500af433abdb21dab5f79a84c302d290aa296f03fc1a4ede683762b72bfd2694beb537d06c750fddc312eb9ffcffd25558d88ddcd2509ff2f2615c5f9e29e6d1bab5145c6dadf490aa978530eb2358bca9759434f765c07130749d3b14ef7c2c5e45547d6a458fd3c1f80ae725a24b72f896f55d40da4a21b3612849d18119d52b962302eacc6620f3951e2d41f544801d4f1007479f89521e023989e9eb9865989fbc18234a0d07a89c9f9b8d051ff1eb5d41d394ea8045f94980020cd1c1992cdeaf5a27\n\n# tcId = 19\nmsg = 3130393533323631333531\nresult = valid\nsig = 90462930f56f9abaa7d7cd95bb07bcd9108fb5eb9c0595e5a370507c457e188d2b6d4fea1f6d6ab5e3b96c1fa140ef5ecb43cd48f942387fa155d2a73a19f759c681858150a1379cbeed487e39bc74a72d48d8a8ae1b40e894c6dff19f4e2e5116b3cdf078eb2e30393e3580bce971ba0187c4d90203de37a1c13c3ea40cddcada0b15ab8c963c95a8ee80ff1fe44fae72d18ad0f3af1567e5ce04b4722f93b581fa42731215b515f572cb98446a53614c93afd5f8d6742e0b1d7f449dd39ef1734cf8e04e61fdf0b7b2a4ad44615f88f7e1d4fe105fccf397f9531f3833f0ed49679b91b067b4f9ca35d53c4e6930b75bdd03f3cbfcdcabe7f688f69e88a76b31bcc3e200cb5ece2a90d77b97f4f1b192694d92904def232ce4d7775b94956c75ce8820dced0786c820c2324b400c951561970e769b616e605eb9b5f873a71c168e38285ddb572200903c24f8dcca7a6deca91c27d053d87d3405dc5f7169cd7b54c935f8c90b3cec4046077d1d84d8acdf05d7a0cdd92ef6ee59edfd067cf00e7bf4e911b877f60b957b88f0e71665727944ff95748c47ebcafe04009a3f356c3edbc423c7a31a9e8345dd9041926d388dc0436b6d514d10a3dd13bc0321f1e6f56297294d4e7e2d77ecbbed84dda2d03eb9a846b3ab9402711d72af55face368da74ecb263ea9522d9a7ebbad4063a3030c3bcd4b7c9eccd8eceb34af0047\n\n# tcId = 20\nmsg = 35393837333530303431\nresult = valid\nsig = 6a411380c1d5066a8555fddf5d4827fcfb0db89b1c60e071e24bb86773f951b5300fe423238ab7df1c109d854f6804aba4901ab6701ea545a8469500dcf95e7fc9e1bf9fa79b5031f130f583d91ead61ad11fa2c5a97d990909eb337fd48eb3bba09c761f0dcbd48cbb2bb6c778131c3c6e73403ac7c0006139fabaec0d91c4eb1adc39e6b0504a77140e685f60f5ceda237f47a5ee4ab5383f9d579ddde74886a0daf3c8efbdb7666532a44b7856d13a5f75d1656e5c6a9167d26a110c902e9b3c8274e01f0", + "557551dc56c0a21ae07ebc6f7635d45eb0d7bc489e1b2e1e472718cd55193380feabeddba9ab7dafe0c77a57640fe56226c73deec26cb88419e0047550bed95ad0ce8d97aff7be98f9a69b18fc14b1666e1a6162b9e23537e4843bfeba82b884ded15f30ba00273ac4fd03a562080119febe45cc267847439ab0ab18080f43b53f13114d7d854cc6a0641289a1a1d730e7f4d6dfcdb32ce4a3700475996c12f150006f0d320e68bfea09db46c4e39361305c5443bb7166c39b775af01bf9a68ef453c04acda04bdaefda50c31dc995f083b7fd5452d10d01b9c14ef432180dd20334ca82e8ea9ebd2c8489b02e3061bb7e619ec357861082535d6c7b3f53d03e912b11d22cae5f6d81cc771b8bb419bb30574c521f6a96f6b75748b8e6bb506ac1e23acdc3f679eab5d4a85228341b7974d2e3cb0db9b84fda6a\n\n# tcId = 21\nmsg = 33343633303036383738\nresult = valid\nsig = 8194007c4c78b587712d64a5df69812d750f12e7c57ebf456beb07746e355bd95a5053ed9d72fc3ef8324157d2d2773a604cdc4993b913f213c9f5c16c52132eda2c7ae23162080fdb3ba37d0b52055781a41a52fa697dde398f80d7651d62ae65439d1a7a31a01d69d90020bcf371c15aa893e30a7ecc74d1596ae94983c081c4b3307e2dfbfd71839bbda72714b0afb7ab5e2ebf45f1b303d9c5b9290c4374617efa01f76443643830b1c081c847e412e16e6d81cf0196a84d2cce5171968dad6181d896425933614919230c99db549281e5a4a8175447c81056dc2dac7e4f2c3f40d48f3cf6927f42686a6ae0edbeddb20af1850bfb25ac16cc251847cd60cd315f3ccaf963b03d0dbb44aec18279c338cf0f214b06fa6bae60ce81350b70d86399d161263b1df5c3a54096b23bb9bca7e83c8697f4a24fd6c0b77c2e8c1f0bb5f6daf8c57f4904dc197bc74ef42540cf7d0fb499612d5def3e707fcea05ce016f7e1bea0ee3ac8f1861ea46a091e540eef09bea510c626dd7b55ba4c88ca6606eb8d9023a3d0b23c0b3f9ede7ceadae7625100c95a23fd7f74532380d1ffb827620495ee53940a01dd2e3effdc91a660ac887723d7db1b2a412a7ce022b779957eb14adca87a87b4f5c30b7708b023a2198e04a6e0fe06a7fea4478be85cab8ba17163e8f013f38942eba371939a510b5fdc75dd9eb2b7a4d8410fcf4b58\n\n# tcId = 22\nmsg = 39383137333230323837\nresult = valid\nsig = 2bcba1b930217857b5a0ebcb5ad8503056cb07504ffc769d7f9c28c0fbd7c753c8f87d3d889b21db6f07d5d51e292c5afd106cc7118e3ff784ae083a33e5298e856a2577796e662be6839c09da8b7059a6017102bcae65ba1095ab3200d62a497db4f372cbd33aa056fcdcebd72ea8c6aa2456830f2e6a9be2f77a92db7475f5231dcaca4293754ed33ac008ccefe4da8111881542d1f150232ae8200046a3a22322a81896ef9ddf2652ccbfd0bd19fea2088966aa9e7a47dded3684c4a583d44cec00831f4e1fd3ad4f61716eed637b0337bb6b5e9b5e699e8319f7e748b766ec81cdc03a67f40ee050ef79b60f7937c7a36b347d84e76674216e870ad29a9687dd6d5b0a092579332eb6ce1e92d4d3ccd1e06dd18b3c0b7171c4e16cb18861c917581c317b6e7d3eb5330ebbc5fb8d2b6d9480b23e1293ddbd3770d60735c98ee058849b4ab72cdfb1be58a9dd090fbeda783cd70aea933aa0a7fc357c3873000b7dfaf031f03c9bfef07463fdf07e3077a37ec918b8bd30f6783cc0051ad023318990f4f158a72d207ab5505c98937eacd1dc04704c56d0c7147b8c35dc4c7bcb992d57584d096471648e8353a2a80c9ae709bf4ab20f44d060b3366385b8a4b69b0c0581247f2e859aa6114d57e1fe6211fa3be3f36a1bf3cc6af33b5e7e80b829dd960cef2fa249f2d53236d887ddf5f3f38925b8880620abe236df523d\n\n# tcId = 23\nmsg = 33323232303431303436\nresult = valid\nsig = 397c56d2901a34d833fc2563c39ea82ff392cdc2a34efb9c43b5d73076fc4975c8e4fbd499458a19b8f83c6a719a36cfcafe0fe003f5273ea0a935f072922590ead8404dc7b558e686c41eab65ae42b62fce11790a0eb7154b3edbae3833650d8e95de4d2807227c47c2675310731468b4f888adf41421dd2d22a13a937629fa3c4ce0755517917125d3c7b3d82be5d82b1e2df73671102dd5ee10f4b6355626c28e718f448bc2ee7eeb7ec82eb25eedbffeb4c0b6da1386a134e6db3e56563da0953f2342f5ccadac5ce5560a0e3237402734ce5c67b72c47baf7c287e2c396f7b8932f102738bb4fb86f7958722e9582eb38f678c0af1ab4f51beb8e3b91cc0659503f39ad526c8d4562dc30e29db940548cbb7a44069c3d31dedacf571097b62526e7b0a8d87959c9dfa5389a888fec4773107aa1a4e3c7d5201ae4942840e03b9042ae525a5e9058c70ab4aec851013ee41fac508da61ed6388bf9b920c22ebed852437d59ba3e38c5b3dceaa809bd2bd6386ba337601f35cd6a2d65370178572dc61931d8b1aa3d84b18cc75d9678e50d40886b48357ffcb158c454626ff0276c305414f71348b8091fc7010c8988a247d5903d291ad70776fa9790576f0bd0a8bed261ceca85ec83ec4f8cde1450225a7687eae70a57d379eee28298e10f671b086d35522e268e86d93aff44f8694561a65d7a48b25a8548ab526a4120\n\n# tcId = 24\nmsg = 36363636333037313034\nresult = valid\nsig = 16a45e41cdc78c9ee79d7c42ca47085b81725efc887fdf6962443d1be064208875df176e3bf837d021efd22fa78f7a3e6bbb2a011b25f12567869bc2235a81f1a4f03cb1051f842af5d4ea4a31332f033f03c0120263c8b28f07a046c6c2728ae65cd333f6d847589db64a7a7801c508f58f05b1a3443adb23634a56f3bf0670b9266e896cd8e6926cd2123f85779f814ef472547563d68ea407f75622ceed4acc9ccc989b5a1b1047cc3e2b8c06e638273f23c204314b3ec7cc6a2aa5305c774d4ed1c4762e8997a6422db0d3fe706da8506e33bba0607ab10d29a8e3ba788b45c588304d1b440120d0d625159113dd82e3d93b0ae2b6eb25c22e22bb9d50285d6341206cd56e600eac1aeacb358903a93b516460b404fa26df59910f9d053151e54bdd6cd155ca2141f07bdf3e9d38142b8faec360c3941a361eb86af7e6b13e5fbe716c3d0c85a35c60be70699c9f40402dba71e0b8d6ea56479393d3a9edcd6ffbe31066bc6359b6050e47251fd03ecc313f56a78d313890329b59c7f0915625fd0587e926fc62adb74e4529da1b9a2fa5dad441d413c3a2f5addb6cd922bebf72e031640f6c633254897a70fd4572d15dbe42464f7377fdac033e7a2fc134c56a9e0b9d3bbf121bb5bfde34df9677178c905c01305c773ab0f1bec22d943bd786a96e8d43a44bd69b98dae86a590370266f6dd072b7d7af9c0698ac852d\n\n# tcId = 25\nmsg = 31303335393531383938\nresult = valid\nsig = 87b00fd063a5e55b9dc60cad16c16dad3ffea0ad11a99c75e4d1e01add409ebe8749a1c6eff17eb06ac7bc6c98bcbd269c6d87289b1c13abe3bdb7262398390e22f5f109f49891067a35577ac6996edee71f6675c2665c9960d90790da3bfb982ff2f9194ecc5c26656242d7a8b9abed9e0e35dfc7f8577723dbf417d65d1c634de9e0c37ef063ef80d07c137998fb4869da6c7fa6d7013cc1de7bd34c25a0fbeb6469c79f7f8319ca541ae0c8c470395fdab59ebf78f589ef45cc8b7ef2999e544bfbb843d33191c89d721b29cb9b6c8edd161be943f181f7a4cfe75c4564c1f183064d9f3e9a3b996f61e5a6513bac16f99c428db753fd61c49d8e80e120fc46b6a7e4fb194f668db78fa55b393bb52774224f181376df0abcfebfc90ebecb4819135ecf101c34c02ab3dc1d6bcc79a5b065ff3ddca9a5c66c6b70154a7958adfd96209bc4ba05e181205cef7f3df2a1b0c5d095cf2de4b427cf847d67db367fa6b57f109ee8d1a3a8b9935a4f36b88685e891e9684982200a321aee1ae9c86d108f2cf8875762faf9a6059d871bd977232fe9d02a9dc23764b397ce647356acb3da356bf58f1b3f080f569f6e130948b0ab4e1328111bb8b7fb654ea28cd9d5063e29c45ca8ce286361a6651f0e5ab401ddb496f13cb56ea07c31edd3c6b49a5b9a5a9866896c0ca01f67b54eff8695ec75a62610f1e61e5bcc1698d1db98\n\n# tcId = 26\nmsg = 31383436353937313935\nresult = valid\nsig = 42b87dc0b6291705fb72c50b2a6b3091256d7e20f4970a2641262f1e2cdfa51088e2ed86018697a10bc8ec381f3708e0f60318bc46c5f8726ffe9f0f8aa10124fcd16cbe8af68bf135381da155a3eadfe99d07675e4942009ccf5e91b2cf6e0bb50c87b8b4f20511ee8fc16e489b30bc9fbc1918fd6079e0d1eee930b690dfc914d1d481b3f7d1e9532536a8e3bdd80aea0f8f4229c73d7a49fd3333bf2ee2e945ced2828c73c86ffb01f7a24869be8ce666670f848d1637de12c233774b35d71cd5ea4435c16bf8fc05da1351b9da24ffe88b8c12f4ad8eb7b080d49e1fa73fae1f9f6059b152407e028ed9f91e960c0189fa2992ae609ad3d37067061c779d37dbb469c03067d2497ed2038038001c6aff46340bda1d46c397be463fe40ecc24e16ca0e82a26029f7146a059b50d466d05a4bf45e7d5572e48d6f7eecf103a98309adab95f7bcc7b0f4b12e41bd56781172fc84a52557a29675a6509f2703e2503e4df3f99f36ef1f0517e54599d19b28c30076607e7be629520169f5eaef6dec6d6c4220ff81c72f45857e7cc157ef4c8f304aa38f375e5baf3983ee003fcf15e3c16224e9039a47f5f76a4ee7b31571353f7a78c5d21f72aefe3ba37882a15069654c15b03069ced15cbb17d93b154cb1d8a9a03d09371284afe12e85b02eb57a4f64cfcc165e635d789fd9a816a30e0bf9109ff31a93dcc7e735b6bee48\n\n# tcId = 27\nmsg = 33313336303436313839\nresult = valid\nsig = 59997be2c727458603feb7536807fb91010d2f07ce7ad3976888a71226f5a52d22ec389dbc9dae076076cac0030d63acffce3edcce0e5961cc0e15e7f4dad376c453f040ede19ade900cd9e4b8caf01d042b1bcf5b8c9c61731482b0d5867cba2b36777d6abd1058cc46c59d62158fea9ad31e672bbcf9cf7c5a2569328dbce889948b6f8bb52cfdfb4e1ba367200c2aa957bac9d41959ca2d1c0e678873a136a2297a6cce79051ef6260529b3bc1d8af23897da1aa715ca34b6e38142a778357e267a07e0dd440c38e9b710aa665f02e82d9880eb166deb2d4e1c185bc0cbf8fdb65a97e7b21999befcd5515b0fb0b666f4af68d9592b477d9d41fe410eb58f01d7b1f6b17965c10065fd925d28bc6b6dc26348bdeaf7bc014418361435f2095cea870730dae1f6c98ce7535ead1bc66cb9f69e094edbd6c9a7434c8fb6b57276924f77872b29f102e45ca2316fe0d6545d9c9fd6f56c07ddc8981be1ca952fc7de6bb49721f83df7b2aefde971f484d972ed2964121d1acd8db1dc2b6b35195d077d18c94282f66da5f01139f93ef9d281c8ac70659b93963e562fa4b2b74a5813be566a1a10666c016440598f7c529b1abb3e189b7b00b8f2e1b944d09a473fde4baf35c18cf4ecf1d759f1bedd8c3d244d258eb27d685a140465b7741c9c3ada7616152efd67bfa9190c59", + "1e297ae272e52dc0064d442daef375eddf89c6\n\n# tcId = 28\nmsg = 32363633373834323534\nresult = valid\nsig = 71d88b86e536052d0247f9e84bd7440c9951827ac2c5af27c60162d3a13d30cb85e71a795117bb9f81b0eb1537c2e4c7316631f7dc4f04e580bdbbbf882efdf9e7aa7655f16439cc098bd2c77c0a0b74e1eb179e911fe109a2443c22574e0b5dc07e721085fe68aaec83c0be7898e0dd3b4582c845e633b06690b284cc537082924cf8d09ec4e1633d05cfe89bfe1380f6ed48155e5e4fb178f66259df28751bf96cc6ead4f3c1d0d0a0618d4625fd0f5bc3cb8bcebc60e505a9dd72bd0223035fee6ff46435570066ecff5e6c9373377211b5111e24fb7656f65fb94aa7df71fd5ea34ff4bb1ae32d51468b228bb82095d4155dcbfa0ab9df12598da81e3334edc300bd1f9c4eb60a2a1f7b426248521d99a0664e9c973932d608371042225e4deb38c358c2c7f593f886c55397dac53f94e13f171ec06a0327f5f458514ace4618c2b4ae414b2927d98c52727f09a16c5f5f2d27936d37e3ba4cdcaa18688e2451ed19f67adc4732837e2c8fa8c5602f260e79fe0d9146458f941eb9c576c4e8d31e8c948b9274ac8f29be191bdb68adbc01a20cf2fc48e0291e0bd9969baad27ebcabb97958e9413043ea2873f56229b8601e7fde113a097063644835c28482a112085a7fdffdaf4e0dab20be8ff4adab5eb7393acce6575ea40966aca06b4e1dfba1002c7c5d055a89e11259ef061cb0a1f7c78ecd082d8a5ae2228117c0\n\n# tcId = 29\nmsg = 31363532313030353234\nresult = valid\nsig = 872dbd850628be3edd02a7d8618c81a5713395d6725f24a7c7a4a5fd2bc377c0b3285d2fa3b10864325e3f50492a107a31380a628490503a942b8ab80a71b9de49a7a169f45fbdb663a96ded6fb7345bba3560b95aa8873462ef1a3039d889911fdb3c9916056a76cfbaaa4a13328b96c3fefaa5403ec10325f3619b176f6042a68b496a23320905a589eaf532273e6d675f25c4da6da1d42bfa53a16c850e250f16b49277aae5cfeae17b65d61dfffee85cfdde1e0aade5c2c24ceb241c7a15ed5d529e7a680134c5ce3923e77dd3ef5da6a3194df0bcae4acb2ba766c5fffc3ba6e3f849ade94bb14f0b4aae88ba7d4d32127d74d319f847806ebb34ab112222888b3df62df97b603e763e40cbb2503f0f88c201b2ec0198306acac11da24eb983a01e93063b01e419ee6d39a819171bcef4bd70b1c1eec3fe267573611ffc2f51b863956f91a8341c6478b13473e1585ac6fa7e7ed804021f60b2764a727f0b0fb683b0b023c10f79f983fd5422dc638b9dc83b59eac97193031cc6112a26f601531ac273ad970427a26e970e886a6ae4cbebea850b5c86a5f27e4e39b3d17ef0f5173441ae242fa3dfcd36c2e8ff7a9a910b1b757dcd16acdd2cd09c517780b65d03f4c655a10919b7960be45ee1da723b370e293650902ec2d2407a9d05c191bdbecca3af3aa952f644505581f2c4313f124a154ba1041f8c4a1f5b1903\n\n# tcId = 30\nmsg = 35373438303831363936\nresult = valid\nsig = 1ca4f54ab74634f37dcae289b80a357bd0688ba1473a78398f4ee1b4aac47ca18c7e619bd95e62efacbd011260febcfbb4c39ef770ec10773e920aa0c2e773c57f6edf308f9af7df14f4d4b507204cd90128b6a2afc5e35d1f8a4c4b1dc94e1e0f83a8dd4f91a6b2a6e9527de6cfe3fa8cdea12004f1106c68ff661dcde9018ea2936d55bc5ee27f11aaa0f287f14498d086d620fdcee1a48aa2b1eea95f528934837f93f73cfb7134a858da3a49e11f7b5c4948cc56156c150b104f0c17a567496f5fac7d6d7a7eaebbc7c24e4fb80c40ae8c9abfd6faa774b438eefda7f27e25af393b0d8eb0532db8ea3e7d0d5de3983a06fc4a8e1590e42264a8c446982d141f9941ec98866ec3cd04ad1b29e163e2407b20ec116014a5ef70bae85d5702ab7d771bca15dd3db198bb26645ee1200786388b739e02d33244b6db27652412564583742bc700799f418153d9d30188361d772b1bb5fb2405cb1d1caab303400cd65399bb8dde393852373bbe3bd50ec46d516418afb8914026b27738e7a097390021136ccea75ed65af3c63dfbae938a9c52fad42435c21aaa943a89ff6653c3da52cfb2ac32819f09954a0e5dfbfa237f6e872f037c569fbc41886552fb7f6e22efebbb1b8197cb870b3e955def4e260333c59c98c6ba973bcdc5236ee0f450da196de4b18de9229a8291c741b9d175d9a1e9dacb1ce3305008ff19c93c62\n\n# tcId = 31\nmsg = 36333433393133343638\nresult = valid\nsig = 00e1e76be1276a4a11f176b16dd195491f28cd53f6e05cf24236fcd28881f0d33b25b9e236da7fa32cc40b128d007e0bc0640ffe42dbb2c5035f96516110913d037d7de017e264d1fd11862cf911547fe07333b5bf48c3c2ab469e733c51faf346f403c9555b7d273cce68ef59d7b8cb36faa91f916693d1f5e7f9210fd5cbfab72ccf931d04773c8f0460a1817cdbfe479c87e30d2e9fcb81a804383b0e5ac0d73f5e57229b7adc5f8c1e8ad19a1502083ba61629c1f4425273e881fc303448f32f0cad03aa3e7346d7bf3b9b27b09ba21df73f63ba1c420eb5ce21a1f777554f3877cfbc49d5c7268aac844e909f0031a32d62bfd0d87c26e1d386f34731712fb9e78ab58a083a45014678a49651f31bb3fd72cffb127961de04462f9e335df384217533d37602d3e8c19c93e09097e20c4cb76bc2359e86b389cd0d17520b6315b43f965f6d23e65f75f8be42649b2eaa1a7f11b033627cf0b926852dd8640e5a9acff47c7b3568508ce0df17ac2e72d6598bb8fff2aa61de42df997b1846be0aba4a41f9f06c6fef81e9e8b500cfe08fcb776baa6646024f391a2f69e45a060a6641be139aed935d9262cf8f4275b17f735c72e9c60a89bf5913ba4c93b9e426c9298bea999b83ff53b07eebe71c13155ee0fb027b0e8c46fb9aa641e9bbccf8df1ea8deadd2640e01662ddca3416a68f0c7690b79aba52b1fa657454e8e\n\n# tcId = 32\nmsg = 31353431313033353938\nresult = valid\nsig = 28fcdd6cf03b8d97f744c27b3eed915b93845c1fa1f878b7f22d795a1d5e6a5f1a18d1d6d8cdbeccabce9577bd2831eb9ec1db4af7a3ebe814e2b75ad489fe02bf8e36d361ec480421b82717eaa48ccf4e14285f5a12e44a396e723072b862134daeceadef8ac42555b82570fa70f83d8dedf22235fb7cda917ebf5644b32f8b92171b5241d648983b4308276b4d71b65e61926e7057d01d98ebb7db442bf9553f59bf8e2b66ceb86740c011fd43b979f25809e3ee72e91908dad7b660318bd1c099941f7b7fd87d0505d17298438d23f7ca328380d5d83c0a96ef33250ad05a23465b36b3305af30a981c7680eb10f57be48ae114114b5c29f6f75170bb4503d340c7a300670a727640a186c8e491c40c8337d049dac3f661ca8bc4cf0e7346b5153c3741307e6d2f0b6f57b247b3cfb958b3db7f71dd84ad57f67067e9fccb3ae89cc77d6a9720c1cf69578525b2cd0350e0ad480d459b0ef7a4ec6238c3f868bcf7d8f7693d9b06d193c12e40d17a270543db29c0437e14fe1ea5aa2fe19c6c32bfe70fb6072a8c12eee8b21f63716b056c76d38fcc7847f8b3c3b4f2a8884e1e01db981fb156eb1a915b82e38770387c2d4e82abce0ef570c3fd149c951e31390e305701880dd75e0d9aa5f2780ff221345761d7a005351cc03ec313821687b11904e7b769469875ea8c33b77ddd475c674cba981292b4abac1ac229dd81\n\n# tcId = 33\nmsg = 3130343738353830313238\nresult = valid\nsig = 23641d3cc88c0160ef8244b8d5fda3b296f49f925fd4d461baf6676984061ba8e563911df8533b2ece77fb111b2b36abb02611106ead001349c1f6fd0342e84ad18093a4f98d5ba48bbc4fcd950c2a7a7f27b12aa6f2ee3c5d7c59f2b3427bcf956a2ffd36803c7b784e55279111b3182170f614c52a942a33019ae9f44ef9837efe83ddea6f404f74f9529871c760a5f801332b821e78e6df0146906cb49ee652041d64190311e699ed401b3122d36aeb466181a50ccaf31d7cce253b731498120c4f1c89cd5a057f7157f072170486f7156a221f47dca341360b682eaca695f1ba2183ead1d6011fae67419e05cdf522cd9768b3209ab6199cfa5612927769ef0b93f576ccf2bdb90f11e7017dd406a0b3e32f57239049f2aad5d33ec1606e7346035528c93df5080ffcdcbdbaf80946023f3e836068365a891ea16e26dd9691aee67412d3c6ef68dfb0671ae542497bcc25656781b9660de00b562d0ff26f726f467bd6fe0ef780bf93027b848c08d2ccb597ce88fab53f0cd2f5914f4eb86af463277e96842389f5ddf63398f850bca973fd305cc7f27dc9880a560fd2bd1c66ad8481c3487ecdb17831ffd21e0229218687d2e2a1b3001bb12995b612e80a3a2ede515f7d0dbb079da425dbbce6eed057955bfecb3e5df1d95f78eb6b8dddc485720c4a90b30fc287328f6d883e1a29aa45d56c0eb98676615aa21b65d4\n\n# tcId = 34\nmsg = 3130353336323835353638\nresult = valid\nsig = 509537d3acd3fd84ced9891046c010f8071650dc5784db1f688b6bff391f1fcd6e1e4c36bb8e9cf9224aca9462f8c659f651471bdeb9599d9cc46e8b72227a63060ceda3f3dde4918bbd8fe3af7a09c825617bd7a85ed3ad7f2d9c4db7478d4e2b02fac3f8dc042a3a92c8fe9754912b7e416cd08e79daf36d41047d4893345ba0aa800f061a2abadc0010463a038673ab204b0589a427353015ada4dba98c02c07aeeaefeef299de8ac2221c29d8ffee3597f62f1539045ad77406afa13c35a990d7942e10fd9df962f1feaac38cec5d756e6a4764bf5348a0cd66cf37a0385e604e5049639b822bdbf97ebc45e5c02b058c33e09e6ff30513c7fcfe70756333b30bbfade73d5a7a407a0f1e9ede0885117c8012053043d62ba34f11c123eaa13d7dcce8fda5341788d386ea31fa23c0d55ddfa5011d319ce6ceb99a5be5054881690e4cf76174b507049cf75a15f8a27433bc6730f07e6e8d7cd38318a1d0a6e88bdb552d3856f68d3eca0445d9b6058556dc691105ced55d09cdd287dbfb2f01a8dc401c7f51bc889a233b837a19fd3231ae1680d3b5147312cffd3db576606a2c932d86dfda0b7bd822798efa4c71cb986813cd096671dfbfc948d08f2fa1228f93e2b7a43eb9371573493cd17ab2584260450f061288e85fe9b6684cf83a5609f549d6287932428736c080a3eb57e5e8cb342d7ed68ddcd7dac4caa4614\n\n# tcId = 35\nmsg = 393533393034313035\nresult = valid\nsig = 3bec4fa5856965f7312700e6dcc96ddd5bbad99e53c47fa3ab8d13254fc78ae5bd9815c9c9f3c843e93ed0427197cd9b395f7ef1991257b95c28b5b3ecfd6818acf5d73112a6b1f10313507d602cb5c62cd814e1f32a165a325bf07a086232b3850f41f20081133535a0d11e92a73dac1b23dfa3ae5d75852bc12f3b914e987876011a0cf0f5d57c5c865caf1741cd8889b55c6a5ce72285c76d1beafb1e56fbc26627163cbfcc5a2ff8bbc66d1750b533d003d2c0587ac795fed47994066e5928e14c6ae4ff4b202a8041d37e376099e67fcb080c300a0ad3c88d6f09e12bed474c40ef0d69c270e120c5361d036180ac673b44", + "e1abf1d5e0cba79ebcf94ae8a023b531a7d35be916cbc8aac8aae9e7b3fd89daa3dab7ab5a81a69540906a1a00e4d8f110b84217109c58055af4f23d5703321f8b22663e74a0539b783ea76c25f94ba4c7fa33f52796f6223719b6db916203eb156708a6dfe608109065bc0f452297f9be77badd71495f7dd3f93f31d251b28651a48b0d2465314c623f31f45229d64242581dcc261e72530b2104a32793e19bbf11145bab33529befac93ddc1956d3de933fa4d61c11095232d460b9feb2103b68f0a12993b9f3e9eccd631f030242403a39bbe5553a15a138b6d99a644cd2fc82b664fc42caebbf1d741e865a0b52e32b706864168f4d8b29903c71bb3c4465d644a547b5c6d51fe8dfa8a\n\n# tcId = 36\nmsg = 393738383438303339\nresult = valid\nsig = 7655912506999c9f509466f90088bc697e0eadfc014e146d3d8ab8050f4f407c25355112361e64ca8def90ee3c9f9f8e4697cc9a08febb705e15ab092d7e59dfdb255a2c89046b4ca33fd94943080f3764a99cc2601689511e6e9d89014ff2ff3363e3b4994691469fd40542ba91a63215230122da5d43eee9baced2767bdb6c5752b89c7c530d0bb7c18a3c0fcafceefbc2e5f3a330f7a9f8dc3c73873c44305f80ca498c96e15ecf536dd00ef7132c08e5f6cbe02d551656353d0c07a4981ab06130e07ff5d14597c42c8432d9655c7b793a46771107b202bad1ab8be4b3112afd57ebfc89635faf67a84f0a97fbf7d136b67cce9c17807fdb993fa33a56244fbe182b47efaab64cf28bc369553ae0e9584e69de7681f58262437fce9013c1c20a1d926d99636c6cbf2eb4a3396360e60808cc7330563c006cdad7decffb12966a19d8c51689716b17a4dd8d0adc4a8fda4d86cd60edb2b3d683086630aa91242abc601c608deedc6d542f613373ea10393991e9889cb73db9cc21556ab6796fdfa5c9c4eebd99daf4e9cd7d2e9f984e4eaf42c4f5a6103a48cc931757882a5d044be85350235bdfe8c478117cac02b78d609f20de8e80ecf6673d19afcd90639567934d28d0cc6cf3de5fd9e6db80866aa2d095ef9eb21a865ee14e0e30ebf60604a507ea81bc1d8a19d06d233536cac549e37319269db4a54e55cb0c73fc\n\n# tcId = 37\nmsg = 33363130363732343432\nresult = valid\nsig = 611707a6b390de22ef2eecc67496fcf2b16251283fbef26087e1989150c1248cd189e65c52b9ed2d0cb6fc1644b6c21edcceabd63be7f5bd524ef68ef627d4ed6e1eecc0e33ba3c1b9d5db703582a3ccd817d0873a756c42be882ec33b4b0c4f74b8d00be26e352f8b5def42914c39cf98b549ffe843295eaeea3dbc5efb96b26fb5748c63b3719524e9f16aae63da88a0ef10ccc0edce9192f8b33f418a6c7870d9a7245b23c88b2d1a870a621a0e93eeb23e51d90f23dc9cecc766a80f96c66286b2a41667eaa152c97cb79b7a15f3c6bef6cba8e98ea5f0c2c09c13017b7334d323baeae1c38287513bcb670c340729f0913a4e85761bd0fbb328d034a4791048aaed089d1f23c5e5a8f85427bffead66f7a16886a6d9056cd60ca761f4f08fae54d77a2790852bff8489207883175893f2d2c50d238ba281406318f24a43255a09d61919715feba83ebc991824071f3a6b98b7f518f38284fc36e719e909c952c2bad515a80b700ea2ae11cd1d6d78a599a592cfdc912cb41c514711a0193311807993c6d88b9c7884c9b614b2dea1b50bb2e7f871cc373b4e5e97d514c973cbc30b5c2fd6d29d850e18c20d0a68793a052f5b2ff830adf72dec1729651b69a167e4018a250d45cb4bdc35cee5e1643f00b23281be6546457e8b4dbe5b3b11e50110814a99bd9acc15889fe70aa39fe688ade3fc27921506a1b65ee6afcf\n\n# tcId = 38\nmsg = 31303534323430373035\nresult = valid\nsig = 92bd2f48815c4c4c0f05d445e27193a9e8f063f9e7976a24451767d3d8f5fa0ff7684eef61cf6cf035e5bbade10a662285a4f961fd34bcee1e9a12726ae4fddab6b0b3b569dfaa64b6f956127b8b548bb86230e97de3e1671fdebed2ed33d320b226c81a6b1a95938659920fc948f298c88a2173098f77a66024f794a8e5f17b33b4f20aaa920b27f90ff62fdd74f2f2cbfb6e42dada530b17e770f3e1204eeb47ecb50cfe30562d63b86c4e27d86aafe03075d92372586d950ab089bc9fbc0834cf2288b1330f8bcbb99d0e4ebc12a3ac9c97cdafe9c2d6fbd333900339e9a0e63285ef3a4497e227cefc338a4a4a96b1d9a851f2b0d305a7fd7b91553b72a2fbc255757f9f44496e8685a9a30d5de575576f816405f5f543086eb0cd0421fe674325a49dea1d700e4ccb664019adb55b0d7c1255c9d32ebd2a6ddde870ed7dde3174bcb35aa5bcd62222ab221070ba03947ff63b8b5d63517a4b2853942df059a30e45d240c32988e933c9255d1afa0668ab70b9475d19f1fa009c8961ba784c0161b2acbd62662746120a72b32771b3da0a0a69a42b589c60d3c36b94128d6b2052a880ba7c877d85b28d49011d27ede03937e9f6fe8cd804c6914e1d998bc3bd167afc91a653835add13be446101649469014476e86429818e86f601783e7af111adf4994336b19af662587dc330b97a6966209dd3e0f969f8c5dc53ad4a\n\n# tcId = 39\nmsg = 35313734343438313937\nresult = valid\nsig = 6cf40fb8fdbfd3a94a69b9cc9cd0116bc040454a7cd08cbf7b878b7c8683d259c8623ecf935d7d23560971ccdef3293b2eb33000371e005c2e3a1d2ea07035ab43adc657ffa243b1ef073f5f218c789e1e52abe553220a67d4abc258edf642e542616dfdc50124d332076a40379bbdc60838a439920564fa0fec9cc9ba59c75fdd6c6ceca2c290c7a756da0c6ac837ef4395d506f5c9d76867483ac2413013069e0160bd123339c0beab4fd5884a1c3544fb6267c8e53870b721bd56b863ac06b6c2de1791f6bff4593337548715d24176bf9fb8ae5a0bb9b36e56b09060e2a4658844ddcbee01f1b4c703532058adbf05162ca4b9abea5154fd569bedd519532d81ef1312e9df06e52df2732ca7527676704bd445932b240a9fc4858c4b44ed06fee30b50c5d89f5f1046b9eaa07ac1308514a35a19d4c8ace5b57fda573a122c474b74079d4b0c47b25f1d3802e01f6f4ce1f0a01281edb39485c48d6587cacf5efc2fe194843f72b4adefe05a8364f34de739d5a9c07e5d1272b1aa8b87bfbc4075030864580361591263f36036758cc9d54fe65ff1b3abcbded1cda0990c361ea312aa09632ec91f4b565c4bb7ace0b7079e520d41e2666f560592bc7ba80c4af01119bbee9f0aedad6bb323139fa20b9e568870c1e83bc5bcf42c90d477f7bcf2417199e3d20c123d44c7e846d104ebc36c6a4a6729adb87b28c8e1a1e1\n\n# tcId = 40\nmsg = 31393637353631323531\nresult = valid\nsig = 8f1e8b8ce7d7a651a5ccca41c4c2b3f7af80f1fb5de311d54e8e693d3fd53ac27a6b9efddc2d934efc81d8695abc6661e62e19554a4dab77c4893e735439c0ec05097636e1dbc7dd63a76ad0492b773ecd3853283574430c64b8813c352ebf13a761b769918317c644b4b0c2c9b9e04ee94069bd9ce2f1aa42e2bfca0e02e63abbf23a75ff06e76631f6ba4384750aedf2181c1c8f6b780c0960b29a56959b171ddcb14ebee30291a35e618874e51cfcca78dac432a4afe1b92ae0ccab06cf449b9175fe9e5d3edfd241a18546f6c4c8682ba379155e495a9c6ed0744a36c40a992a9391edbf1220baf11c163600c928202111a6bb5c5c7fad9bfdef2fdd2a05887bb02bba673842d8d1ac48888cf8396cb70e5cf0b51a717e8dc381d3dc5d3ddea59abe23191820ea6786a337eb67adf7c94910941c3dde3ba2e4788a533605d1fe15a8d309018926f29fed39990a073777f6fcdb6a10839925ec0c8ff3ea80e13844164478de928a3f28e3643d3c3ea701cee470559e5c71c9da344b35f624bd91d58112200f343b6a3a1e23a578323f390a03e0be72b5cce53f0c7cd2594d519d2d01f430a9ebf0cdc9f523e80b00577cb7f524c204fabb01633ff1f5a598f8e267c8fca23c72cc559505c19f6b1f9cb7a172d87cedb250123d97947ffc050f4abb4307bccc757d3a60d12f2926e2817af65a24742ee2edb5eda5774016e6\n\n# tcId = 41\nmsg = 33343437323533333433\nresult = valid\nsig = 38bec0ef412ac3c934aef5287fc4a9d55c450dea93a8aea15b5311e840a62d60558ccdec3edcb7427ac9b6fc89e5a094ea5f1166f6abc24305620f004d95b5545693579732c97a4593e58d3b5cbec63071de555a48f9fb1c8ec7f651fb0f8ac95ef9255e3c41f56f09910746597d62ba88629d50587f981987d4829df4b1e1380bae7be4603593a86ccf64f32af0c655a87a1ed127ed5b224bc3284875b9109a94ce76f2f86bf96c3062fe77cafc252ea62f862cb254ea739b6fc9bf44fb130057a777c8e45e368cb9e9bcba824597497b9dfc1857b494120807d91f181b9c7edb32f22c3fb47a7086ce4a0e275e0becc178fe9f5a3d77fa0247c71b9a7874e4fe0340bc258926fc6da84f9c06b5795893021cf9f97d83b405af71626ae6ef604a92a1bff52e672f7f2fac248f24ce0a78225ffbc19142994fa02ce9b1949e5b60f9e9129ea4281ee798a2555575b69d33170724c3a3f0f21275ae8c3bac9648f27eadbabf0618816e6864a9c7e0f090de9dec3cd920094d8c2693bf9470c2f0af5f66065db34ab26313091b3c7716db9f77b09e3965325ae03ef6933961efa8c857663918ba75a1fe0d2f4689ae8edf722dba2950c9c5bd1892886b16a17936f5978188ad7c7ff3881fb7c0aae98e495c1e1842513ad63db4c55cb615cd11bcec9a71df1c5e9e2c98d108e69bb2e0da1be314a3bf6c203fdb3884a2505b7130\n\n# tcId = 42\nmsg = 333638323634333138\nresult = valid\nsig = 934ec7da0f9887c3abfd01a81db793fe3ab2bd121445906d7c06b222bd52f35061cac1e7b5208741770534478fa8024aa6241679298830456a73da97df0d1283f7638805587977e875cf115c5e4edb7bcba908f838d0765adadbf4a26e3fff27798de0f2c1119bb56e015d5727c2626042b91dac8935da51a97b6963bb7a32cd894ee5d9ece32a258a61f8c81a753ffac15298f27204e6a123ae11021d03b81fcb2e9ab2fcc0f6c8abf9b7df4fc417cdfe3b630f467d8d28501e2dda1e41d92a9830f18d64630d1d483287a2ac01eadba8bb19564ddbf3645727d907e24afdb7d491d7c72e47b747a4aaf6478055a83f6ab63b266a74d3da07a8f601f8d18d75bb84b088a83976b5af2a96b5c8faa160fc6027e9c3661cbf536234d1e49eddfcfaa426ba0d0593bc012a9887e51e7bcb83f90080f535316eeafef3ad01586053efd070e7e2add6cd82b86b7a1a0e038972a3b7e8a13608b66d6e6c04af478de0842474838e1d9d06b001dc670f18346ec04ef63b09242bdfcde4d049a05d0ccaca61bf07a2cda5e0099bb8b1948a4bb7d819b5107b052e1f6ea88d9ff6bbb722eb779bb1a537a33b17cb5f44df77c12d32877fc95990fb56d88a6de48ab74799c6f4d6d209403814fbfac53de4176db71f44aa68d8af04bb5725416d927f6f97466686a40bc20187f843b3d0c21119fdf607268c33d6b5f0d8284e4c0705e87a\n\n# tcId = 43\nmsg = 33323631313938363038\nresult = valid\nsi", + "g = 072175f202038c0970767b29dc961f86c0a6b1b7b100bf326180c31b65b0d2ba095ec256c4e3d90d984f3de8e88f8f1b632dcda3982dcbf13a3705aba7b41be69b905221e626e9cc75925630a3686676c7b8e35e9d0e96d969085cd9f1d042d6647a072700ec134a7702ea0d5ed2364b8b7831955b27b1536e4e8cef1310e6717fcbbd41a787a805d1654c95678ac75909b623a045a49b620b11ac167959308c3125257f36f2f752d9bb42e1941f0d23dd5ea200529082eaa7400d24edeaa70225fd3604f9f2c367dab61be53218b2acfac3c2ead194c5080378378b2cffde5cadcd3a559cfcfc229ce1380ed0da35d34ae83920496182ac41ad29621efd4242699ee511ce4d1b383cbc3cdd6ecb67a7f1f0f3e84d57b120435b1257498c73d922aa27fb91fc0fd63447dbd6933320ad51c0c3739d3fa65cae206682c23727ad46cd5338c81d1e94ef71c2bec4bed6c75c5b9f4b43eb7702b945315a5c27dae2ed341eeb35468978c1bf237b2c24592d4c5357bb03a9f2e68b3422cffd9fdc0ceea99ad4871f5e3e9174438fccc3b03b0396e9c6cf2a1831b196f45a193a72b0f02c5b83072c87952c41a039e0fc42ead4eba7b155daac61129020d4b1e63a6378698ea5718b6db973343b94e9c6ecaa938b01cdab06d35aaada510554c424e39039304e1d357cca26a49129f400adb6cc0729ad6012bca1e3d676c9c68e765e\n\n# tcId = 44\nmsg = 39363738373831303934\nresult = valid\nsig = 40760ad79f382c7f671f00aea354252274fc1f0610b3d8d5082552a0370482385f3b67e70b7d144a67e9400e2a8307a08ba99064aa77374fc0456cdc4ef60a9baaf9b2ebe24713e20eeb9203387019d3c76a637712e7e8bec99b32b6add0ee54d362b888f8ed4d3915eb6d4aee085a330eaa412da99c82c6ff029eec54c6b1233d2bebb581b562ffc082cd805b6c9fd18e4d1a2a18e0ac769e782c2c1657ae1d3756e3d4b5f7976abfb6debc441d7e4c13444a99b750a57ca0bd90183c11a5d8728a984a8848e045832deb4c39bd4ddb58ef5650ac0d555711082f4b432579fb1fb8e39fe76f5a12a9d038413a4841d4280ab46947bf536d2c4ce465e54f3fe2948332158bbd15ba38c10174777f0174fdd9b918c285e1ea54f233d1fc8fcf8e4bc0d34d49b5bb96f85390ce1ccc755f5643533858177b769db891470ad0257121b28fe310c4651d476acc88409e082bfb233906347b521cf66061a0fb094568034a76864ec125f7bc2e4f0157c5e8d774d42010992cc11d0825dfb8f55e622aaacf05acac6fdaf8f69c5706e0bb5d0cab087359b0e963098b383bdd92bf19eddee8c3a921a8db3c3410abc8ca4b41b970fcc58113a3ac2439ecefaae1d415a0f404132f2f8ba9e846f82d7e04640a283f8845aa9cf59524be5cf55cea71a04bcd10c6ac2be43abccec34aff43d09201865d65f26f7233654104132fb451edcb\n\n# tcId = 45\nmsg = 34393538383233383233\nresult = valid\nsig = 32deb686e013aa3e7d79a1a6790223e7e06cd6ff177c18b89e8b21cc361b9af7a99c42fb8d3553704b198e5ddd6839f8d3fa9a5f08aea0e8e31591c0e73ed6b26ea461f3d60bbe54f5ef15618d80ab691ab176156ec2fdfb2b3a49c32481dd4edc91c0b25ad5206e88ad2dd2bfe63c6a9f803ee56aa6b934e195ecbef15d2a7811452e13c9bb6b4f2c5aaba5845f8949edd1e29b573d661817a50e1acdb6d56b1cdc15a40e714d275778883baac648bbf5e201956f8e9ebde2eef1d5460e7701a1ced7b53d20afb70fb765aa93b913d31b8f74d45333673e081644f5bfab367cb13918cb35ecae49a23c9f4a42ca49ed166d0eae9c97092a1b45552917a41e9fe7b9a06cd03ddb4f66822393ef59cfb0d0b3a848a15df3f47a6566e541d9b9b435cb6e890c2b89bf2989b59f08b6090aa6248bc11afd626679c0087c95962616a1e5d0afbabbe71f3783b087d763d8de4983d888b3aae037cddfc5a4752024b49a0827355ba187ec1a53e7cabaf39bbd6d0b0997f7c3c0f79b420a774cd3d7d74e2fcb78942bf04637bbc6499dbbfa61f7c6b377bceb87932c1ac60501b9def1ea6fae8d9544fe37ebd225c559b642d00ed5485253e23661436a2337f58e9f6a395f74094f60860e0dbb8aa460bba035486a19d9235631d95880b385fca04ad997e4062520fc43878628a59f51520da7846dcd27275c4cbd2873673c6492c201\n\n# tcId = 46\nmsg = 383234363337383337\nresult = valid\nsig = 1464791bc1e7298ee955700cecad59232c24c2a240bea9b3105bd70b0ca4bb3f764022e1275d4368a1b70ed8dc393dabf74d4fffd748db7215f085769e0fcbd13b335c30099ad01d98d052d0d546719a82d55ea8c63db5cd732333ececadd1977a976123a2f16005f1cf0c234322706f4588cf362722c76098533a63d348726eb3080f3a777e1f5bab680daa841b8dc63fe404fe5d33cb7eea62f3f17459a412eab45bd63f2e846872cbe5d835ff6f47ade492dbcc7b8e6d3755b7bb83dae7bbe82468ec011190f693785b8a1cc831a4ac695aad172909f25c910b75b460873b9a8e61e0f622b76d7fbc52541d49a70b77a947bbe5eadbdb594e05de710710057f42f3adc3804dc3c4201bdfd10c9933fb3c9e380ffb25ccb7b6c7648e5463247b95ec300a8d9f2352686b060a516a8b18f88485e64129c54a46a2e0b68787d27bcf8ad92a9dd0f7ecf6d43e9015cd2fadb6e4bd85825f1c7696d7363dd64fba85ffb20ee26487a8c95d6a1f4be5cdf21fb3567f50ec9ba1a2e5c87ab1dc0bacbb56377345af1a42156528fe5dd1f9f2ef50fbc64de4c4275f20f7104820cd3e3a8ac14e0aab82cb6cea9822e0c4bfb7c605093e41c494ca49e5b72dc25a72ae6dc44c33f942e71814525cf2c4338037c617b4c4b79a020a3471986d12b057c484d9cd5132ffee4526aec192d0dcdcb077368cc88cfc24d50c7a499c9f98f3d6\n\n# tcId = 47\nmsg = 3131303230383333373736\nresult = valid\nsig = 5214543874991618c693495214bc75af0941b9f81476c074921bed4f3f287c95a67906a782119e79033b6a9a25b52678720dfa5f359ec19977f40e01ab5b48531bdb1826caa266d28fa407026319e2f3ce00d04d716a71f98856cd48a60a7de7ce141d14bd1828eebf993a4d82abaf82619642c6cfb17f19489e6b25da17ef1ba1ae105e7342923c56a94cc1d002ae4e853f8f18215633b4a039dbde7417ce9b0569875990103431fa0dbaa31691e81c91dc2e20482b10dc7442d875bbd96297a44a3be721930a14434d58680bfbd46d317297a6b552d76ddabcfdb18e7f530b482bd8540dd9ee3061d213bfb2ff2eda3018c9d57fc1f24b77fd5fc61ae56aebf3a879d3042e097cf33fadc7f4c9899475fe55b9614d3ef190dd75547bfec4a311829de159bafbb52bbf9800e4aaefa1f4dbdf26dd228847eb35383ce366ec0843d9dd9b617d42afe2dab5faac4e036882724e84b188017e9bad9bdf801ecf348ba22e2420d4c89b43e0c65a49edc20f1c8f29ef113aba75abb7a261e5cd96585d17d4a4dc84930cc58e857416c195fbde08d5d3db25db63c5c2fa44fd71ed6c101f2b512dda449981481c6c1704dba05aab8443eb972710741087ff2d3f76a36550efc835e0cc0304b564a2d1692470230b384905bfe2fffbfcdc996c450fc276dc299a046cd145a7c6d74ebcfc414e81c32b26cc2d54ff1238dc4e4b90ea74\n\n# tcId = 48\nmsg = 313333383731363438\nresult = valid\nsig = 4d93419477c751cca75ba892535f1a52ad7e52a598cba14d8c08ebc660772d4b63722fb731bfb93e1734c3da1e80527653a363f9efa1060ec42c1b536eef907ea91d574398da4d95fb61f12c570dba4428ae7c56e0711669ea0913d64ee7cf4de664b6321729ae15f35f3916f1a72df2d9858a3dad3812db0445b6174f40f4ab0d81e030cf4668659ce53364cd580b77938df1a95a7de0493b052a5c9fdf947eaf5b72104f592ef391fe87f68ac5b4668692244ae2ae93b7fa544cce0a781ac4835fc1ac122c392f389af8086eb4b051a2d75c36a6db45c5cd7336a298ada80d97504b3c7c27aba5f2607e31046586ac1d80e3e8ecfd3c0a996fdafea4d97e30a29f55bc81c1f10653fb23608f63a0e91aefed0578682c8c3580e29c7a54e43265a5c4903aa5ac0174dc4c0bd21f55773017f0dd7330d9f0cfa7dac3013ca495644879cccf763d32379811c7ea11afca9f99fd5505f7766224e09d9fa046fcd7d0e3f0a4ee93b2c0dd7bb1b2d465fd325d8af89ccc1d97cc862c49aeab56688d4592a047ed4f0f19c3602294c10ca73ff7987b072f5431789dd95fb9d39cb4ce3753c80c9a3a663111ebed5cc48acba437f1d600a627f94545aee5d742755ef480d35fac15d3829861b2fe9cd5859172e70699b060e213bbeeaee61e9d8bd90abd4ed9e0dffadf737d2dc0d594beac16d039851c97d0e3d030463caa1b90f0ab\n\n# tcId = 49\nmsg = 333232313434313632\nresult = valid\nsig = 23dd57fe7ca4c3e937ad1b18a540bf3a425202ca237aa5c5e423868d0f23bdce63a69b5432095374993975749b68c1683bf656fc695f35869e16be84e59049817b652cb9115f31104d8d1f2795d0204d46ee862d8d6e1d250c9a2eb69e5caec4d93097f614294ed3794f178ab4121966deb1ddfacef5847d1278bc4d3835c97ed1e7476347e7ac1632e756928e2cf560468ce4a98057d264d1fc82189ebadd07b216b27b4c66c4d486ef0a9a578caa2b519716687c351c69e51a8f7dc6b34b8cbeb303ff682a767c9ab057ea8d52621e3f821da0d7603d4e8d77703474c2d8a0c5756c8f42e0f88b3e49056adc721c167e4c43a5ee54f2f1b5882c38e7de6c10faaa89e1491ebfc318a56b18abc97623c70a6a13205f24a15bb8f5f0b6c6e4017d50e5ac68c35285f1cf7ff8062f5f79e8b9a0c29fa54e4a36364c5db7f3391d56d5c11c4bad27e07ccc9c004571d338632c3e761505f1978185c4808f3ab8daba5dd6aff21fb09e8a6e585faca61a2305e2bb33b991d5b8835a3d10d0c99779efde6cb39492379cce1aa0362b1f25b6f88ee104f528727dfa6546c4b19b3f045131b96ab5a27a07da8d9bf4bce63261cf265e0e4753563db4da1a63738d8c930a51ad111a8dac6c6efa8529b83665d8e9c93a05f0471f811085ae3daef9ae4a8d9ef3907a5149659e83ec74e5f0aaed9e775d15585e4131f02c01a08e73db64\n\n# tcId = 50\nmsg = 3130363836363535353436\nresult = valid\nsig = 7badd3feb2912409086af492b43c5bb22369be5885713f478d831af1f07ca200f0c67c2d6462c555184184d34845b7cda60e5f278b38fa7c009ae9aafd5abf9fb1ea4634ce39ef8c29d341d8c6dd5380943b65506477dd4ad1153597d95329dbd5a7755d7a27b50497246bfa4457c3b8bd425973de847441e97db38393905ef6f9cbd862daae8973711ceda67ed26096d76d16175ae75672551907145a3ba7532e65c466c0bf2d994898d41a367719adab9f76a25a9811443f1a3fe2b55c2b4a30a4fb2e493d6dcd9ff96faf456e9962a42d715981aa206a5575556f9c8f6fec8a6fc991396b621ef85fce6d63fbea11b2a8bc3e5a1c8e09d446d4bb751910c7de9535cf1ce2a825a5cd52b28a2a4a132420483850388a80c193377474aee0a7771c93e2ebee", + "1fabea7c9d9f5cd88ff6c42cc84289fd2bd46f3cd2a3c1435b062c1e9a0b0bee7d0bd87e560c0ab51ae105644c50aada070af7f26db3c00698cf24ea96ecbfc7a365061f86970670a046959514ed41fd64bb7462ca63c1f171f0630cc511b105d66f60e3c5a761aa6daf60ba1e098ac05b509f7d44c75b168d1afdabf756d696c42b63cd157ba7dc840facf867e6079c098763be70b97f1e7eb573446cef5fb8917cf855451d92ab0c5b6e3e16d835ac85ae46b471408c24f32459e0cbf3ec3ec386df4c4858d38a1966ba074928aff53c9dbb9bee8833cfd3df\n\n# tcId = 51\nmsg = 3632313535323436\nresult = valid\nsig = 4aa9cbd6bc066ac61695e4911948101aad036866fea9a4f8307d05683ef9f361ed0a819f27e5da406666b1d0aeadd62de8d3540943c97d4aeb9e27faa08526f07fea9b388efa1830d557cfcb09741ab1ae15288841705aceb17c54b24089f61bf129f7ec82e5850b3880e0d174f334554db0f3d7438bcb13364625a4e1a692b86740637e335f765805f52f165d98ebc678a235312fbcf20564edf18dffcb1e0abe404819cb5807c9040f42b61b8b80b1f4be07239e4f3514d022684fe9572aa008df1c9afad00210af1a05bf6b2fd89a53d1268e509e56c587b5e1b72d18c623819c55b28e44c284cc5a730afdbc7d930eda16a9bb38e8f8180924b295744dcca65311a233380f379b9953ca6df77abc654084beb6ae9289c218f8db96c41bd5788c15dfd43e4025633a83537053343c19e83ebdd15248d459edba26f17ca9bc542954f94cc73ef8be311cd97f399c8f57d03a66c268a53b2eb850a6b39d2c7779e3e9952476a400e7745bceee26c11efd509ce4c7ca63b74b92d472b020cbf7a3c83774f7ad11bec93b9d65b1880ba4714f0c6236c15bf1731ed36ec473f67d8df600fcbe41b6f29d47624e6a80f015414b3b4dc07fcf8558dc29c3fa089f1329632663e4cef9e10dbc1322e5a8ea2f6cfd428f773c7ed56e268e77b9db742e0e5344ab6db88202a74aabc15122fa5c7a5e73dd430d25f8c01e260122772b18\n\n# tcId = 52\nmsg = 37303330383138373734\nresult = valid\nsig = 67d6c590e09452f1170c57016985ac4d7c065cb27100e84229a12904b7187373d74b1c525d4e5c8f13f4127f797568bb192157dc318f55f74589a14226ea09599488d3a81de3bc431c624f4c43855677f691a40541c8d6798fb75f498833c73ef40909d40f3719c46999ce8ef6e1dc2efad90fcb06084c3deaf0ec57f724a499af95a42bfbb0bb0524fd9859a50f7965c10cc23a0c42e698a495404ae9b5d136f8ee7be6d83eec858a6535672784f0e3865a43a932460c5060e5648804cf375d129af3b39ad2fd4be91c8d1fe3a0b1711c73531176abdbedf07a75d146132ada7929be08cbbf0addf32763fa1dc5691d563ae1bbd8e2bad3d993c6ff8bb12dcd6488a69a7fabd4af74c7a22b92a6f69aff108d99138c56c753692bdb4890cee153f8b2dff0f22d734eafb6266d1488cef3afae9ad722f9ce99b8814dbfdf913c4658cf1b5d06039f3e268decf05fab2154dfa16e6b25eb2e580b20058a1c5fc3d88db38b56214ed70978671702757b12f7e182ba44e02c0d02db990f65e8fc2dec207d86a22fd616a749e8bd3059ed2a9b9bb597d5dc59a64c182f1ad2daa9c9ab54c56084557b93b72fefeffb52f4e33d8a937840c990342e0cd9b6b72a204c1e06730a168907951cdd84d6bbc44d113153175eb402cc3d5e36d4740e7dba5a24cf94007c76f1c87be617e92beedb350135828799226c0877a2c7ca8b54b879\n\n# tcId = 53\nmsg = 35393234353233373434\nresult = valid\nsig = 4b8ad9a750889c2ae3cd3dfe7205c974ffc04f15ba9a05079a1fb24b093d2ae1605295f5f38c32c0b934e56f06f68dfaea3e52c22c2ab4ed8f225b211371d9e0eae0e1a2cd9c00ba72a5e0f4184da41e9dfed325ed7af87800e044c0ef4f913c510c3eb5fc8a0d0c36a98f60ddada081491fa1a4caab1cd6c64ff0e9c0c2a4a5714fd5d74659fdc960ea2ad80774ac02586b488ed4dd05901d49f5b6429eaace02f4aac5fb4eb7bf7899842a028ea80e9117e234a7e4ddbccf0a6de02d0f1fe6701920c4221c02645ed560289fb04e73a6d30ebb39dc74e1c087c8ee495ec602527543b3bbc5eef7b2991364ed3fc27b1a21215618c02a30582afa45fa4856439bf20daa0d16f99eb30437604f31192f23f2bf9c57e97e0c5283c02972b6a9571835321119662fc55a938b332355bea18b2ee12c4c0dc603cd28af343d34d3f0d4bc5010bc661711690a45fe830c0cf7814f8aa10a2cf8ae284fd080d73cba5af3eff2a4fd66fb0df825b8725ede4c5184a9806803a4d0c94cb1dc64ccf9ea71f0e98d5a941f60736af0731857cc793cc19654bf5634e4dcd8899a7f7147d6ac70da9c17146dea2725259a4f64eced2dc936c825426856b81c92383069908e8f4f54189af10a465355f0da514e2c334fc74f8ecb74e5b452012def3a9513f46a0a54ac749ba89609db9be60543b96440d32446780e969e49f7d05a9cb74115a8\n\n# tcId = 54\nmsg = 31343935353836363231\nresult = valid\nsig = 1932e0cf0ffd2ada47701e3f5b6d8f7012ec9a1ae8d75c53fa3c6ab7f7d7f1c2361de4cf1ee03394489338525df2f747b8defc569f8340d26c2dbc193bf107f0fb19c6e148255128f37bfb3a5955f30d7ea923e15f8bdabcd87aa299a6695fabdf6104a3457bd18b115303ce6d6c35c8dce4b2fed8b498de5010b01dd82fc321144b60196f45267c6c8ab8e9e3aeaf7911f7a73a3d5208a2642f8254ef00f1fed65f6c816f8a924399d6c6b71eced98fc6b22da2c3495d1ef3398bdefeac88553829990b2381fd1bd02b53eff4d68c2052e2802e71e2b5532c32f0bf8521a153276fd6b2d499a596743b82240942e6ed7a19037dbc1216fbc42170945a35346bf77ec5658c9f8fcf5ce6e75de299154d5c88142c922f4e04752ad2a6d8220d37ead668e3caa4ae9c2c0f3e44d430ee2c115a7c183e91b0ac45f884fa8d0d36c1b6a083b8f1145b0fe2aa00a522d0da064c92425e453af3c6746653202e0114ad8168a031df8138d24a655ef654a9907af69a5f9496111b1d97be6d4d544701c1853fc7f41579402840f15d974a61439f601c8ed5cd373c318283d6b4eac968d2ac1357a90bb272857fa501833b9ee2bc93924d3114979f2452714bc6b1bedbfbe6b1b4ed0a1465cff71bc8796bfc591000424a5fe97403ad7802a8c526696c519374c3159eca79f5e8e3b1edba8a8b101abd3573e80a3c494567724aac687d58\n\n# tcId = 55\nmsg = 34303035333134343036\nresult = valid\nsig = 7a7e2026a025f6a1989b14dbb30b04d03b12a96d847e56183cb73bfde34fa4a5ada232e5bd4e93696f17ccd1596b0bf1d3071dc5f0c186ea7d202f243ce959100892abb72e1c1bdf7da2e5882867782ffe4622ac0c8f867944352562f8445b10dbed73a09d7f992249a494c258abca4fe818c85fee10fafb090cee6db52e80e404e5b49992f321f7d842ede62881f14638317306079e87d3d713232d6b80b49a76a9c62654240c47cc8eb9d6690ff9dc19485a48587b392dcaa3b15e7f78cb6b034835f96e9cd115707db08020b23ef87b6dc31f4c54f0d17a9a714a975ddb8e8a03b627604fab80cbf52d7bc1a9d8678c3f58c73181dbcb55f0720ce8d281c3af9c67cf9117c44866e926a5819c23c482fb53c41dc44244ddb657f8e7760ed6795cd875813012ead3822f5ace25cc1e3d0fbc4b3972032c8f7ba0237e93f6e0029234059f7082ad695997c6184b4d5b22336cfa381cc2b0bcd1ef0019ab62d0f80a15c31fec09d8af1d139c2f249468a13bda15e49022b7b0ecd6dc9afaa15bbbd978e1bd71664f272296c2942f0488d5e72a615536bf8008b4471a94666d6a2fafc8eef8ad493fb0fad8c016921ccb2c3479f7efa44e8b2f109621d96ac4ed49d6c20f423cbf89a74bc3c528b45ba8ca341612940b21ab6ff1f12140200fa4d779ca76345e6239f99c6e9b627e3d03db05518940d23b59a9f41710afe33d91\n\n# tcId = 56\nmsg = 33303936343537353132\nresult = valid\nsig = 57f2f391111fbf44c2e685940e4fe576304a638b7783a3cd5e374def5c89cb81e24d68e37839ce8f39718aec3570791107715be3e004a907e477cc29ab3bf1a1c130b39f19623c747c62360be5c68e93f0fec81bab2ad1ee7313b5c9e2b6c3ff5668dcf873ab7beeb91e16a9239ad46d2441fe091db86553856a97f45607b749da6982feaf59f5b5f751a5191e0f45e0a7b4a309523bff24d53000aab65bee328f1e1979916a837362f82a32d3a4b72f1a106cbb807e92eaf316f74ef19778210234043a8a64b4fe7f7bfca912356af5bc765fb7f36900353a56fed653b31eb77c77c2bb448699ca84e0d20816e4186ec2d4f4c686d6d4f41a35c914f34415254b57dc3cc02ea9c1da2a6cde543e3b344d3b59ede5b18a44df0a1ae87caa003250034a6f00903dd691473c50d038ec749a360c9a35ffdd0db5c7cf0fac87a230227890d8f8750952f6d8e5b7719051110a3562cb96b1592ec85387fc7fee30fa57e9391a0fa71d1889d61ef5a27657522dcaf75695dbd5a3d0a80580fd0d77af4decc580483e91b17b2acbd0298d4ea40583375f13f561d4aa459e803275a2e365eed2f3464207e7751d27d3859f716a1d668fd0f618b0e850b52d7cc4c88d5ec59a7aabcccd5da96ae485726286f2c9e31877bee9dc5411b198b11854471b49f756040b19d884a57d79ea411e700faafa9d80b0796006c9d1d0ddc417c21165\n\n# tcId = 57\nmsg = 32373834303235363230\nresult = valid\nsig = 17df78ce7fe125d90ee5ccf0057fe37b4cb2caf4046ca8eb6ef3791231189a78f1c87305a9633b32f1313578df123d2a56683f66a945115add501d8ed91693f3a45abc947b24f87415f2dd137c3cd7835dfac4c301cf1d80b07dd0a48182e4d64b8257e6f19c668b737ba09b1cffc023155f2d683160aba73fd23848f687171d3f1841114470d176465c0c31dce07d5076e46cf6ba2a0adf8509319b6ae1454a359fd9116e746e21620dd7c71be826db8ce6b4e117883742a4d7758e71fcde995ff16f0d442d48756bebe0ceb43aad5b7e09024b30124757e93ee53302ffbc57e9083dc63e15d04f04f0d41f243a8b96897155e92a66116a028aa98b3b3c05aea992623ea2c764e7c3807c3c3a28453fed5038da31e8a38bec7110a27d0d1e352d20b88cd116ad930e1bc4731d9545ca21d8873cf8b86aa00af297b783ecd81c9eda28b2021fb0695937f191c39703465f9d4a90a8e8ae4025d63ccb941534a919a9181e145d365b1f9d1e46925bec75bf5e0ba45bf7bf68f744b90e7ab464db5d0ef971d46f3d4b44566853a92dae61a48aa73ea7bde8ee5839bb447d52953b0e5722a32b398233cf6957fc283af33d4c4728321f426133472657d5f656ddee4b7274e22359e16b486d5fa07f99b68893baf210d55117d45bf56054ef90a8b6645e8d1019e3aca49a5bfadef85afa6d003c687234309e3402a91d493352a5cb\n\n# tcId = 58\nmsg = 32363138373837343138\nresult = valid\nsig = 276e1744c1b7062e91589ba1d76b136b56efc48ceeeb84121877ab0c395ba6b09594c0620328057e9af0a460fdbc06c0", + "dca08d163ea9c50f3f22b71994d569a6c09e515deff62f88507ee230fd1511b176356f2500a1636bc3f8faa0a3eb0aba2e038f392d7df644b47b3bb9e23d3871ff96b41244d51f9abfb784a40d18b44a942528b4da7c1b9df5ce4c9ef5f3b014ffd7112922de8270f9e9821d3f494d33eb9b28b9e74a36355886355dc76c918b7e47ff6d24f008a53c87d9f7bcec623ebfdea1f699657e630eb8577a2c80b6725617f4b4c5561eb3cc7c362df8c0cced77e995e1b14f889855aabee25a2a63e9b74cd22093e2ccdf8466ee94321faf156ef1be5c8541fc7d432cf22bcc681e0c57035fba354124a42273a710a28d4ccecbae549fc60b4acf7ef056f7a2bffb464a883425c1fba88662a0d5ec5adc17844380767c483a869e1e4bef1153daf32745df4fbecc0a0684a03786b38c8830c47807632d1df72f5d7cb2c0b3cbda7d4a995c4fb2036cc6c2b896738b760bb61e5ad2366249dc26e71a3d4a377edc341318aaad6868ce47ad94b649f740dc264c4e885161e35e8a1d5e6952fffdfb6f6547eaf67abe4ea9c0f5ca8997339e3e7aa0b2de86e2d17be7c7ff6c372b985db29973656f686236d64d35b7f42b2edd4c81087ef999672a170176a6c34252a615a0f7d26c0696fbc8bfa177d5eed279a2\n\n# tcId = 59\nmsg = 31363432363235323632\nresult = valid\nsig = 3a0527f7b62b6f7a96db77a91b27f90050f51cfd03e5e09c44d02c2dfb03939e90bbc0cbc5c9d4a52ef86d2ba6cc7e043b081cb91242139aaf3ac457954ca4d17b41e5b2498533bca87e803dda644c54e16e92ab95b6100e2948b2088b171b3f25861ffd46876a01572dc1435cc8b54eef72b78df25df184a61b84161d80154c0794307a2e83db584e191b4025bea954f7b750b5850b9e225d5db15a55f1ad6b9c2fff59683c2d2968629f572b028c40a9d3cf9c73390cbc27fb3f76784e82622c2d3815e4bad8b54bb432be6a6b7e6d8d91d3d250fd4e2bc4848a9065805951188b139f77120722aef4494aaeaeaaa9e8ed2c983d2fedad9fe364d7972f01078057551087c11586d5ac0e2162739e4a421f00b31faee89f55476ed48e87158f94c7767fc0e540768846f44a6ed8f4a3a1bb4c236191742c13361a9c0da87e438a4e7d3f7094961893fc85c86fec8c676cbf92d74db90e69c035109c93069e1b83654653479770ec37ade5df570c3f7ec7519c0d83c8798e7c061287e57d6666b8c48ff7ae7328c6b653a1fc9bafda134234f6107f73de14c941a37ebf330316d7264bec901e2693fba76d3241e808c3a8fd476c4a5d2c9001382b03e2ea6fa295bf3491bf8bc3d26c5418baeb58ccbbd341c409a2b6240c61acf180c5469d147f271edb876802cfc3190073e828fcbc0299eca766907e9a0cde32342146ced3\n\n# tcId = 60\nmsg = 36383234313839343336\nresult = valid\nsig = 4a841f6dd18b6dad728f491a6c748f984909072c7c2c50373db2c548e5d118ccce772c5088b0077e759f3029cf116105ec4596e1788cff6ea18e8bff5ff9ce245c8ecbc62d143aee9cb7ed66e898d48de8013e9ff1fe137d0ba6a07d0d393034b1a765ae2f8559b0d5416e7bf3ab87757618c4e2694433f0c753c8588cb58ca3385b467bab150169bb1c81825582b6815150aba2cb6dd61050447c11a8e96fb588d1425f482dab9d75feb8379c8e0229a5f12186eacef5abdb90fc0995585be9257d1f0ea831c6ff21f357a9de755d32e85891ead90095063a922e2ff7979757d0b467d194337c96b282eedfd1f8cc52d3e02b01ca0acb6f99c26caf5f0e66eed8a4fa98b5321a32d15308f3bd0c15918f05af6d07e740a016838cb38c995f9ccc53ce4e88ef4293984ac78e51eefae9f9020847bbd0d9e6f340efcd137d0d6d3457d6dc9a018fca1c620e95a87d5577db77d9b56edede6aee4fce211927b3a6bc46b6e048036683f6fe40160e4f0942c02186a19e1eb316d33aa6304418d07f9be3a9050b2838f855eb4b3bb23b1ab0ff19edc287fa1557c393fa634970369994b06e3d943ef827c2897a025c17648182df355a5376678eacab1a1e2311a6e90977fa7d0ce97b01a4839901504d175c9068d728c8143440641c8e4bb8ada58e89bd895257002cbf2cc847547d43bf64442f4a9e1137f23643cfe69829be8d5b\n\n# tcId = 61\nmsg = 343834323435343235\nresult = valid\nsig = 1059836bf3084a871b0f11b03eea2ffc3a7fffc371797c9cefb571b407f94c8fdea066832efbc5a3c29ae0e1ef151eca1eb813e8b8e61fc3744ea837cdb786dce9c8ca5dd22daf8397d9654e828c12c7807fe656d572b39dad55d99aaa5569b1ab4958d2cbd260fbda641f403ff70f658bf25fbdd71cfd1e56c154e448449662aea41c7c6fec1813cd2861addc782cfc56e225ebd1106bd1c256af43ae1fd7b28f769c947e14d7a0509c393a2d8e93f2ae5bd1238a0d1d9dc9f4d2bc56ab5f5653b5ed8ee09a4b402d49dac80197371e6adc3cd8b67d1ec9b0779445ddc136a610d9f46b7d84f942028d8ac7726fafc08d6b5947cb5ac9f533310dacd40bdf0a64216db25f6c886ab794ba53d2bcb1f8ff9beefe90e73fcd29341d007d41547737b4d4feecd766d6440c9199b8b6f69b2e266c7609d17061b9565c2059f9d3a9348819c34815762910b6921fc1cd6b7d2ac8041169ad0b0ddb1e4397a2c6b381e3706dcce578a543c56a098a13a36f9578817d77b20536a715239df2c52abf248436344e71299b2df2ebf32a4fe0566d6232325d1b6571061b88f522ae64a36eb618b963283edfc00624ed9d7b466537fbd1533d932f1a3e58f4adb80887276e7a7660bb5bf7bbf2235124924002914419dd3e28faafe8621abfdfbbcfdbc1313ef72a3500a8942b7abeccbe843a576b947f122c9cfcaf75711b7367770aea99\n\n# tcId = 62\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 5629382f987048f03b158dfc15ba27891417674868a94a11b82b82fc412338086390517bc55e280e0c5b6a152c5e44eb25f9c014bf66514aea4f71f467e612b9242186276694fec3b754f30486eec2b67a81b3dd61c70e87fce5b12a75d5acb30ff35e4d94601deeabf2d5cd26d30dd9ffd4106a7247c9149fd440d2af4422b190dff1e891f842c3f5f688f10d07bc127f94c26ae506c38576a9ef93de3a9d47db28c0dc46d0e4d52093039dfbeaa7079d87623788d00c119749c9500bdfc7d980f7bb233c040990dde0800e19d428a3c239e2ebdaafd6f174212ad17a036d2ff31349e8964d5594802b924a33dab69d3d9ccb97edbbe4063bc1dfee3e9986716e2495743bbd4bcf814a45df69b18c46a40659aa6cc61522ca5e395f292e41836dbc66d15a803347b1cc098a7900ff319068acb326bd5bbdb865ca4f391c6554dc9b51ce52510531db7a70d0624869a2d2323eaa54e3b4c49becae203849108c00d6742a144b9ddd7a45132a2dc2b42ef495775c3cc9fe9312345b3f1fad6c13e0e7ba92fe8fd67924cd433739ad524561b7538863aeb16e139779036d32036487ab22e029649b89ebfb264ffde09c38a35258beb29ce46d8bd873614a1ee8e2b7d133da2a18ba14e2a72a9f83bef8332e6243f32dc25582d19fca6d88c1afa4f23837479832fc9834496bda34fefed066280e3fb73cddef8c72c5757e3417f5\n\n# tcId = 63\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 93cac00d29dcd13c59c08c017fb4d1a1fdbfdc110dd2e87386ce2357cb8623fd167c679707e89185005b185dba5458363d38435c9c49c4a1482a757c67e79c88bd715b601f10b0499423c77803180521f99fe2444d977f27e86f557612e9daced3ebe6e142ecf3ad74c32c395c3fb925493b8440aa6b3183b6283c56fa1625cfffe1b96b1f1f2a906c95e02195dde9cab260db36c31b9f5ac137c575272016d6fa33be2f0434b9462801748695a9256e4069a64104684ba9e098310ba4dc3cc2441fd8f250ca080c7d91ec08eccff15bbf7b4583fbd35d8535befce82a656a6c70a0583d30423712d557f8a1e9560977858a1e4acf0c196c2d92fcd4e9d51e9b811c38477b90928e8af3bb19bf5359003f7acbc1de019ed7b38400acd10eb766cdb3118cc374de28ec2408cf43618b970657cb3307f6081461d90bf9555ffc1df6bdc26a98d54f5bc212ae51db675e2775e997bea806139a7f4d32c75eefca768cd1eb707ac75942b4bc8faaa640555abde6907d34666b4e756bb1d7755f6af157579b82801ca06f56d2153f12000dda261661a2e1b7a1704906d629e116fd3cf1a779a7900144a75b400cd56b43f9676f54b92fd472673af88d249bc34b7b696f55eb08bfc653c428738ec08631480d0caa2eefaa865f85f14f6e61ac0078473e558fd826182bd0a3ce77dd54de5a9d78e3e4d3d46c136b2664bdb2e70d3a21\n\n# tcId = 64\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 1590f61a82e0a6f331352230a995032ada91580ee31af5c1683b3efff9ee2c48ad5c36a0a2c65bbf5c7d579685faace7dcbe706fe82003124b94a05a27558ea8983eab69fb226f8605450bf13dc0c8dae90f8abaabcaac27fa8ccc2e06cd37cb1543c138ab80b45d715b6c504cf1a7b82554110de9bb52c7054af4eff289d00c9d56b4a6c933bd6f3c4290ffe4255aad546e5e4e71e5d5b6d882bcac33831ea6069fc2e350fe3776952a5832116c971356af3f1618aec1c466fe50ef64ee9e936acbcbb61552be9d6e1362022186249f4e6ebd8c3169e11b599f6645b11b30150155b0bb03f3b2a4dc585f504b0fa3149210435d2fb9fdac4638661725211908ae1c0540688b71b70100fd12584b19ed054d25aaa1df407f27b9d338ee5b9fa7274a29d580d0acb81c1ea182b957c22139bda8a1c7fca529a6df2089b0c3d0f03d3d1799bc186b07aa22b7bc06f69a80e423e86a239afc819232851c1a18337882835144c8b3f01e632ebc22db346304d794ee1a76dadb5a6f5193bba3b982c5bbbb7585dd7e181633dd92fe01a0994ec08d1054eefb474f45561449be7dbdae57fb1490e533014c0438f57cdcc582034a94c07cc6490794ab2164013b5f2ad5920326e83d9b3c216d3d3d2aab60b177c65b8af1db955456c992e0009eb9270a4cefc04209ac032314142e1c55b518a7b439cfab324fc9962a2c916c14cee7dc\n\n# tcId = 65\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 70c6a2593c3ce4bb4cbfbc51b41570fb966d50bb48f8e9e6cd294e99bf3f60271c71965277d8f85e280a012c5cea3f3abf9370d983728bff790d93d00813012d286fe4bd7c36274ddc47b8ad6277712f43469811b7dfd77f65839952b5edecbdaaf590be732e45253e09cd98236b16d2157ec762e7c294dccfc4db19566b1f365e91f1169329a1c04e42a3f60c0b2705fbf01dcc933e991702f3c0ff52280014f6b8aab35468619cbdb554a0c6840f4cbfee9a9381c7157efe29f9ff6c7cf32118326e6754012c1d612a8e3fc65295c48d5366a2d649eaf3544fc6b8f43f637540832c5c56e0e7a56dbcd76e32ae7efb41fdc172b01bfb389e5c5df488813a1034dc5cdab30890599cde5b0da830ec2504ebc708e1a96a8571aaec42045d701b080c193472", + "a80886f3a68b2ab330fcac623ea99c3eefb01af168626857d6c458c0293d5d6c76e87cb7a91c3bf62901a0055634ac21688425d1601635ce0f372963e9065195e523d6657c1a10eda3a90e21817150751c7ea1682199e329e8d60b6129109378f45dca594b97d29364d1e5c9c335c7018b1eef7a65fa2741d5e6bf161376a47b0e670ac4f2edd43ad1b05e0d847c74aeda0affe496a2f554d8061242aa705c713ad2166bf81f71c03703e1d43af05455c53a5adae6714302b249b2a8fffe2f04ca1f5e39bb22afa94cf9429fe99f5359231bd93c5ed008beadcfe4\n\n# tcId = 66\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 3ed784b228ca4c6d8600fe7f18db69099881d3ac4ce0577d4e46e10adb3004f213796e9af8cd78ef116f373cd1a070569b49a4ab55f82259410269db674ea4993e7ec3ef834ce32318856142921ef33ba4bb6319ff6118dce780cac66d7a8315c12a92437f446c851c657dcc5b978d454250d3fe9513f787a9e5fe9765be6a92d2a970fab69933e56b692e2c579259105dfe3f0c54da11c21ae0f965c7f8bd15b3695171a2b838cea7085309118dba06cbf83856fcb927569760e341bc5c9dc7da5906b03f74c426b782c418f1ee50f614982f5188bf86894e30770a0b8fc7b02fca221abfbe64356e9bbcc0eb47c5700ed86474006d308ac4c1709b88774b101dfbe0d203c91edd140532878a186e6f972bd70fc7d0527b3a4337c9a715ef7f9256a1e5a06df5aa4fa6be6416143cebeb2d2bd039727325d8aab9b4fef2a31465bf8fac21d27df08db6ae22281a0615d252ce3eb8e539687ef125da304b6bbfe2518b57c95c1d81bf5574880874a49d46cd9a7fd535d9e7d04951b4c2e03ae15fc562016fd6f7b08ea5b427a78a2d8770ad98df16b94ac918edd0c4753055ba14f7d1b253bdc37f5df236d70b0e83b4bdaec9bd29c558dd708fed46daa5d4e3312c08523a0066369fefc7a2ac70ceab29a3b56928317127a558aaaded7bd6855660ea87d4defcc175255894bc9d94d5b420a24d06c4817bfc4ae92ae5ba4ce2\n\n# tcId = 67\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 924769b488c2f25bc1d2d2ac9b2934bf4a00122bc9e635e8b2dc3f5550579fd7fd9e072bd8dfeb7e8917045c7b2537b96f8fff9961115a8f8e866b35cc1444633877208bfd1410e1ac91fe62484adf7e8c0eb5885859c0757590e34f095f388320ce455e4df56cfedc7b15fb5c9d95e696207cbddfab63a71eeb9ebd4aba5c214267a6af1524716821a5a2693702e103c3f9b487235a3fd3ed9debcfa51b5c796fe2916746146c07147370ed15424fff4b07ec133a92037783626a0a48d2a3a440a611712ecc7f28d4ab146d898382a2b25df98e27e15e168ffd725c57077e86e2e88cc015217fe2ede8978e4d85acfb66cbd2fbd36936b0292fe63650ea2280f86a9d3ca427a77f4f9db69f117a0e41ff86e98caf36072322201c928c125c2f4a19358c62ef47df4a796d67d2feb9879e3a195895042a5a8028bf9e013f8b142363a1a192a2e3bc96847a515322de750fe346ef150a14e1adc7cbb6d480bc42dd06a8495c4e6ed4ea6441ad719f2edd6696da0530f54868715bb25e17d492b174b77a992e2fd997bee727a63e8cbaec87de36bb700eb4208e174e2ed437930990fc7f5e58e59706402565e52e9f207b4546514dcfd84d74348ee93e90e9bb0f4f288fca98d526ae8876779112236a5446cbaa615d8f6e45dc5c351ff45fcaa7f9e6891f09a620b2b12489d6ee3043c86c35b0992a086a271d78a37fa5ed6322\n\n# tcId = 68\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 1db0c28280679c7279d9f4ca1b3ad582da63a80e18ab2baaec5194aa6c2435cc5f7c3ad16e9b3e8eae8a9e33a7dceef69588aa5b0b16c184ff54b60c41c687b77d849eb36295a7aa3590e30f21f2768eeab26f13135ad5353c889540906da7021ad10751876587888c25247584dd4c7e35de68d6900676872d7aa84dca74cd41390c01eadc982359766fa6cff61bd424baa7cd46fdc40a17a97df468bc200849ed315f4f53d6f24a0af0a1b51112eeeee438f48ebab9c396f4b6a0dfe6e23beac92cda74d5a762bf7591da988341a796ad7e6cd72ffb6df68b081db763a48eacfbfca7132f27979af705089cafcb774e592f92ee06fef8c9f6635480a0f84c89c2ca4a131937a93307ea76326f2c1627989c0dd0eee1b34371d78ab794543124ccc2269f67152f409532e9c1d1231d79e5d6bcfe9a153223038a1fc2df9e5c50739edfcb6e7157e0d885105b11be6e5a55a950cf48e827961c00b556c3f52554ddc9ee9b1a0e3534b724de96b1009af28a3b2d2e4359e674b76ff7bf79d9d6e52db23471c9a3d430b05e85edb469dfe566441e5bd565621006e1d1605b8fc45b2570cb06779b28283834708485438b41b478216ecb9db8ec64158159bfdf84361bb1a2839a6733db28d46f99e2bcb704b55f25cab22c7436474c68fd259e86800ed657b4a2624a1a5de45dcac39c5c2d04f08792b9a5013bff0b6da1c1c288b5\n\n# tcId = 69\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 64a883f439b07c8b21b4150c73cdf50f72f6ca2ef90da34bbffe5c92d37821f7e6a7a1d36904ab5d9133cb82527a72759bfa44c8923c18551129e6a6e3851fb2d4641c62e43f7c7e4c740d414dfcabeb37d40a5ce73a77810a38bdaeb134e5049b29c1486ec401f5e01aab83568cccdf7fe4825d3f56a05875177ebbfb792e5cb2aae418fde5b1e0f63a3e83d45ccc1f8549ef6de0fdcda92de90236560a514dfc520920de4f57325750e52acbd3b0bcd02ecce288e2bcd5058d40c647d9fc9e55276948f19d7d67608e444b632ea1661df452cdf3ab9fe6270db4dea4013d38c857d26685fe31ebcc3a339aecf247bd2b1d7805ceaa22a021523da3522b58cd4f1933c117bc289f20e0aea55bf92e19e824681b2a9b93c9680da90204bb69887cdd774c213368608bbd9d3fd2f567ecad17b49f15a4d55564008f1c27d4526568e34fa231ec5c5ea0023be8730b0e6eda39b4bb96069dff483c8cf303647ff17420a3d022a304be72ec108924a4c84579b38c810988551a76043cd9aa54f763077e4d2a4473b3da44ba857786c6217fd200ad7c0bd5609ad6d6c85ef5fc04a0af27e2489f367ea7f612ab825a73a1fb7b4cd9a7d45bf4cd0a72c9bc54ac81193645b14e39cd46181a79371bfcfcb9359a6656105f79c11ea7053acd4497db651f98f593d8487a2e8f2d3419945410e580c35d40771022340c4c4d6f227f91a1\n\n# tcId = 70\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 8a5225fe5edbf9240c281f69cc26c89641e258b5f21f56a5f11c681c87f6f451fc07490fe6b1ed4febed4aa7c010bdc312e453a599be2b37fc2f1a079ce1868e2ee59b3e73c527819238393b8acae914ed42c9d2d7641e697ca8946d2b53879d33805fd91f56e608247f1c6744d8b8a12e02bcf7f15e2ba176995f15a6458a926b77e56c2f3557e716cb7a730812a1f6798159118d9d95b593dc45eb59ffc9cd4e636b9b8ac8d9718e0e89269291fd42cc2ba7b379cdbe8e443f283b7517ee5a915ba61cdfaecc9203450d70db365588043cf777fe92e0aaad484cac58ab1ea442a2ae62f5dafb2718112eab650d36743a9735621a18b7aa5dbd9d2d5122afdc3b8ff49d91ee79af3743a0010bb8e88b6fc766b98425e2660af1b38cef8b7ce5b9f3432a7358fbb07f20c9295a5eeed04a586bf04f5f9e8b3425a7d0307b496848da8738cbc267052d7a679c95e799205b4f7c00d9cc668c40cbd6368294402e26bbadb9690a99945d8fab81c5d178d72ce38b0b47b24043b27404690af103b7240595134faef4788a6106234f40e2cdf06089fb602198562b18ecd03ccc58d3e98173a9093eea3b315cd9349a010af282f3c485f92c0fabfb774d6127204a254809585c4890622d98659752276db7a890dd0cd4a6632004651bb194b056ca446c85cee7328e80da15c16c960f514dbe8fb9cc114330a160adee4cd449cc1524\n\n# tcId = 71\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 2f50dbd395abc6fd0231b9bb6103018534b39c4d60d139615cf1c9271185c5d3988e99735c9fbbb649e3cfb629d73fa9e1249180606f8e8621f3f5033e5cf7f67f4abea48b53eeb5be67031cb6afce1b26538ca318650b87317f6129f9792f3cec4e98a56f2d7504999ac1fe46729fb390448e5353b999a52044d2baa92f2ff664ab5a4ed82911c5c9942a3741fced99b9437b102db72fa5d1fa87929887a2e61ab06dbb6b8a39659f41f3ae07061792ccf88802a6b17aec1da1c35bd85da150dbf11b3401109e43261a0ff2b22cce779b19b5f2925b55cf143743600ac4c7dcfae7a17970da3d52d74ebab46744e214d22da8d1aa8021c8b47d6e2c585535025c19335668e2d851d6881a594d03852b45aca4fb10f9e85f053a0ca532c40cc0537518baf7fa388c2c0743cfd6355dde1382cf2c9ce1f418be20aa0f3be147d0c9c8756e2c23797fe9f3365aef876e793f3636608b6221460cb76863590b3f5f56f6a5cc0b0ec4d56b40776d629eb32c7e1838aeff1d3c3761edeb91bf62682f7502dc685e29ff1f678e287efbfd364ff98088f42ef58ef2a50415531c1021a13c96c080f62842167239cda8209ee3641da51f3711f0b665cc88a278dbe2619200e50037577c9adf0d78be3879cc1a362f673ccc3e03bf9a39f4bdc10d7f044101a02a83ef7b63784f002565c06eecc819483433bdfeb20b5f91185be6adf22b\n\n# tcId = 72\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 0898add7b127d3f46c4eefd56fd293c166e7b601caa0584059c62211f3c063b9a479f7f9361a1ba96a6a640f9c3c12b18820e6da9c9bd01a6062ca722d0abdd5a9031ec328ca8729e84079ea4133b4b4cea8ccca9e1f9b6a53fa8486ca20390a92dd5945790c371eca5c0958247344334891b12b53baa4b7df2e15307cc58420958a4a8cc8bfb06180174ea8228ad46f98725981a2a338d54745ece14b65f38bdc5c6bd87c3b2d81648b47a89afadaafd51bd9250debb9351f654a47708332411234df725ecdd0ba3ab778560689932559f9fe94d937fbe12126025f3d1464f7e5081c9f8b7f7a422cfc3584ca98b5f0277e97ce9229aeb208892f5c564157267fe59d5cecdde948647dfe7dae62ce6f39419dfa80d4d9336f874395a7f4f2099bf54227ed933ce9705efd1704f9a9469c781fbdfe8df12b13a15f802d309abb0c6560635a22e49856ede3c2a5271a656a76a059fead975ea077c4e632b9f13b8b3950f2b00c3834d63750098e792b824e54d53d6dc102a4c7de5b449d083436b7714f99928969c3499104efe30110366abbf71c6f8e4f069be0d246c2ef417e84fbe075d48aa65d82590c3ce862c518de635f8c6ac009288aba112de47c117fc47be80fd79f39e9831239c34cfa9bb54a07ca67ef318fe6efd6bb6f0049fe255846a474cbe28bf73099e948c91b0de01a9f60b80f21ac8f5601ec36f12e06da\n\n# tcId = 73\n# all bytes ", + "in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 2daac886b4fdbf32ed9f9e66f1abd5af7266025d168620b051dccea674662e1a347ffc519345ec8d40d0dbb4a5d60317632b5d504a2dd56e89aad4438d2b824ead94b87bfa918ece96c3639fb1edb6139bec5c4d3366588992f26ddb39f6d504eb24b90580e475da022c125b6ca3f34251211c40c3e2ce95f9dfe051f728eab654d95a7ea5aa37c84ce0c2c3abe551e469e1ea3fb94b33b5c3cae230aca4a13d09fa6925e7603e2db91a17ea0a8ec77372c4425542bee8b8a5de029715f62a1992c78ee2b06dce17dd57796d48e3789e7f511bf85c15366d504c8266bae2357630e5c70985622dd85bdb6d04131ecb639c34295c49b47c325018247a154afd1674189ae2708ad2ba5c13135cb27d0e5694e058c9d36977fbe36f39aa8ef0f99a7b59a9af3bf3ef737c36d6e8f137faa38bddc62fdb1f1c6ca292cf606a41cb32253804f14a12e66a9851697268b8e619556cd00f6abd55b61d7b4d4a9ec8a7fc3ade79f96e47a2b376c881b96f0279d0cecb634c4031910edaebe92201d144d65f450357313fad99bf10183cca7cc6fdf52382a280d71c0b54a846ad7fcb2e62f569371ca403e60d8611a77ff4392c1da2a0792bfc835b161f407e5c279cc705483fa94db072b9023407f1bb1de67cfd57b08f6c5094eb2754ae1581a8471766c1585c1afef365e492c380b7e64722b6beab3c1e367b9d615a33fa1c13733731\n\n# tcId = 74\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 707ba25d4bd3b92daeb91154e68d056f31857c57610f808429bc5f0c0e4b52e079ce2628f78c9b0ed061764cfb9c937164b70ab7274093598a7425d5e67a48c945ab8be4e7138d88eb5f0486c35986c805212366c2a9e775533e7ce71b1c35b4bde53e779ccf31d31fcf278744bc7507969532a8fb32c1073ee31e7277d9a6111450fc65c60afa0632f84fd2e8fad4d201c1dbf7b9ad97de8a8977415a70f3946a17dfd2e4895199775d6ff45d4785ec78bb5c54e26df4dff47b81d88fe70c2d2ee5e8bf83f507b6a4b8d747288e9073fdcdccc972534c1b51638b0f653a4f6a2e22b1393744e978a41856e6753f5460dacc485160d480d4d5bc5eec5ec3eee1e2575e2cfd10856701425c4de05966b0a6e86c9545455f6f62e9313022a60b4d34496db4f94fabf9e3a40be0cd77a15248fc2173a5ea65fe0b992528e0cd8a7ab2e911386c5b64d84c0cd0428fc2940d78e8f75c9e3ffee83b4328561760da96f7b015c2700ac6ffabcdd67a0d5e07db92cb8ecbe4842ad8aa0ebc3a1256ed03e0c3e8f67f51dc70cee8447adb7112ad7791dafe3d1319dba8c3e63a9837c15e3af11b0cf5942a8ef2750bd218ef7c266a756627b23b0861df5fc9cb240d49290aa9eedca74ea69cc8640ff746731fa916eaae176b492f5031105e38490aac5eb46df185f9d6e5f8603991158cc4c43744b03dc897fbbeeec00eeab8c7310051\n\n# tcId = 75\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 5acb1b66dbdc180df233c83a3b6291477a9d8b4fb7f0253d928545739b1c517defba99a546e291c23d1e925caf1aa51b462c689d070ae413fe1d88cb7978b01a28ce7ebf2f5f97df648a7d819dd028a53b1d604ac9edc62f62655a56642d087344e52083073ac02fe9b8ef7e61f7476d59c78a66d4ee07932652997bd756b24ce441f539e4c7bb3786f1e4676d7e4bb3ba8a83701cacb2663fee71448ff2124a8cc19e15924404bd0e5f56a7dcc5fdab8146d947010a44711c80409fe6b12297acac7b79943c8de00d15fc1f1ecdf9b0528b3004fbfde8fcb7f082378d97354107e47c48a1e3c0499ad6371480e88fd164deeaa3a014b18760074cc96013b86ec31bd967ddd41900cb9c2f3bf5704754a357124dc536af4305d58c8c88ae214ef3ddb53ef10a2c6211d55a3cbb277efd6be1b36d6a8ab997679399aa7f21444638902fd34d152f8ec2eda7467018c0546cb54233a62fa4b9184813b9d46a034b3d7a7f8f01bccb8a5b364badb94d688302598fa393ee8cf6e2179345b1e5d866e2bb5954bfd9d192ac73374ec4cbc6c1478cd042e4ef270fbfcaad8987b0e4e1c696bec8b1ebaed124a0b58c79fd9fae00e19feaa82d52dce97baecf82b5338a67fb536417ee2d0b8584a998486c770f26b8a58c8856439065b3a4b81627000a01e64daef83b146cdc7357833d447a4ff161d63200457c6721d6dbafc687887a\n\n# tcId = 76\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 8172c8d2dc7f58d3905698c0e814054a8d780d154d14b9d05d96fe0416e6ad01ef540a95920cbb3b3460e4b3bdefa26134a62e09432d0047e67c680cb7edfbdd65eae2f2a15a84d97886b0e3c46ab9fbbce611145b83aa313fd03ff001ec07b4a6f814f848cedcbf69669e03641210fd5636b889079343de0989031e37ee25057aa0bb2a793feff540f1d6532420a64ef3f620a0070d2c98e7182cf7265e8fe8909b8e2b4cdb2dd20fc0c1db0535d489d37f48d31b3727eec9e171b6467d63124d1663c99c019af340777e6f4b43bff7b50f3ff456bbe6a9938ce5e59f8497be33cf7e9306daa643b5bdb933318fc950f69d309989a262442584a877f114e31de926de13e1e18653deea56a0b5d4d825456e3bbb30debd83aca1c535aa8ac8553da85571ce4ab6e04d2eb292f8e5fea7649529e29c71420ba191c97c24fd9a8662331c7949a4669d2426e76a259b9ad5033109be2dbac49a5d13177162f06d5b6ffe55a98c27c859a43f918ae9b586b18c439f3c418cefcbac8f38af9f8be8fbec886899f754a50f319ea8d09ea8a3d12a658e05e62a43555e241314e246d9421022fd8c8fbfe76d3e26ef17fe84c79664f567edf8fcf6aa43769282d33a85e89832a4e81300c7f156d0030832c3f0cd5ba91c7b6f2e13d2a91a9732b69d32a58ef2773a9a74beb5fd53ad7b479443a6527022a367710428a1635592d90e11a2\n\n# tcId = 77\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 7bf03228ed95a2af0101321c3db174eb1f597c999c22224812ded57643cc1fb9d9de3ce9085dc60d9f1d40696f0e4c1c721cb247ab1fd2d1804180e5f51b3f8de75c489971e7e7098765e4f991ca5212426e771037a301af1c7ecd95a5ccd8367e2f6e84b63799119c7d0d5dde55e6567fca990c11bffdb9517cbf6726dc36d19a97641dc3ee44e568ef4297c7f96f3fcf480a87312448105a6671778abf9ef6d8c9ab289368560e2373f54c3e313b2d1db35501389131d1947fd7dc49570bccba2167ae4610a0229629da730d8d8d8218c5a586c5095b61fb600563ef660cf48dbae491e91bc07ea96d1575fb26e9802888fedb07a68268d9d76fea5f3429c96fe17f2f0678703871835788ccb733d40009c8be0b3242ca11f7153a4d906f230d56374201902167872d6322470d53e660d5cb4b65a2ac69b6bf6095722540312980aa2adc3d8d3336a8f4205e2e016587772117de6a357c20dce834cd8aa7d31c4444a235683b782e473ab60404e6ef8400ace3b8d48b6a7801c99ff1f405e888257993848f71e81287292790e1b011cd410e3e3acf31f280ab36ddafb0a3e1772690d053f077ed980c596d81d2628e47abbc3019d5277c70db5f4838581db0e572a2bb0187d08b488f2dac22a0358cf77e0e36b17b17664a925eac940d15cd9424e92f489a4d28405ed76507625504fdf489702f089de36a4300373a833022\n\n# tcId = 78\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = 83a5b64effb15f9f46303e81ca509581874881b71b8e1ca08205b22f383e722e89666c2043a5c77362ce6509816d8cc7df36040eced3b7b1a8df22a2efed801dc4dedcfddae40f20c79bc0f8d64c336099f1773a7b32fc484ef01ab770dca03e071815651998bdb4b8ea11255480e63be22de376359c37b3019d6e264e1f7121de2e7f67d2cf98af80c1c4042b8c05bc79877de903740ee6d1889f2814ba9bfbadd6a5ebbe09de94e16fdcde8ca8af9933080124fa2ffc1e4338d1d878fd4c55dbbdb273e617dcdaaa76aaa19542274ca74fdceb0cfcda21547674b2c0ee936e955e8dc4aa366fc9f3f6c202a0a3982220ea8384ef52f8081823679e60095fdb84d6d75a63a563f726f5ec833633ecf35d27a9e3b7ee4a94133b1c5a15a6dda4a3f1957c399045ca096b4be079523d9f558031529e9173e7cf612262e5c9599bbbc2d94ef12301e23f9b2cd173364cafd6a3e3afb7582f282eeb4b2a1c17698bde6b6a82e88624e3d1737071b8c1fc6b5d77ced9b78f0c9aaffd78fea3bd8822288e0bb761092244df57ca49e32ee8213ee0acda5bf8fb91bcc3409ebef6c310f17d9784689e7c79ff33c9bc317921b416c08030c4bd02629061dffff19844d867f9a06ed0a8c1631bf2a55ec418a6003a6b5fde0d0ff223c8e689e93146771a2cb74ca271116af99c68605d9690ceaf833ef898a234dc0b70c684ee1c638152\n\n# tcId = 79\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 73342b3c90d9fb6a7671295d7c258b80bf907ac32b1cca59db942b80671478c42aa2214a03e4d7d7b645ee333d642dd19acc5b4eba7b50c10688b8044b6c9b765a8124414610b97b84e0fde8876360a53396587eb973ae69e2ab1899ce030aa29d2e83d9206d4a26b384dc32ff02508169b65ebb6fa5f52eb4c24ce41b5e467178b94198fa399b82e2c75055c1417d001ee9d643f9f6cd1da5a566578f1a2af94f7e3901dff3f1f4af10acbe6aec703457b7ed27ff17a77955fbbd527cc7897fa2375cee83d89ec509130c644f8179df5e0537d8ea63b8b29b734227f74062b43334065d4092a30f609acf594d917994ae9e9b256325f47867beea84e036c4f8b117b366b016fbdf66352c5dc6f95750ceb121ea45d4802aacba9b7c7d79bf2604a866d7af58a2f13671eddb7539c2fba46e094e92c129006552ac376d216bd0c91ce45c365b811303dffd2082a1213487090ff3952adc4551a2787ab0d52180d0d016990f243720cbe55f2c0d68465e9be883bfe90ba55d28beae531a2b6924c47fa7ff4222b4f20a2403657f3df30e423875871398ac26fad9776cf8cbbc3cebd735185c1519cf9956c457b2b7a3b8199979f2a0cd0922b391fe3ba9892980bc3ac260d789c36de616fffd525097b358875bb02f27ba2e23c8fedf0aa5635d6179eaaafca58c68ef2438be5ff9a8b5fd91972389d2aac7a72ccb6fffbbe39f\n\n# tcId = 80\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = 545e9cec19e99d88ffef7d4c655d2f9b43f3c1516d04c034c4ec8f1169bd29b4faac01073bf2c46a6225ccb2347be24d1d185a8036b1f6cfdd32529c7f1ebbab7e183dbc69b761f8ccbe4ace536807c656dba7fc2ad315e7ede291c870e9029d005f7576c34319c1f1cc5a229abf2a1dec3fee015d60c3a577b1f1408e03db21029cca296c0bfc2955caed97cc18c8faef4ecc03f4acbc8fb6790e7a8d0b919a268b242f58eeab9933e0bdbd6e18", + "6faf94a16445fb346a341a19c2242e2aa922480e3ab05b96577fe69cb6070c62605e9be171625f0fba269e72910914aabfe0e953d14415c65cb008528bd73bdffd1b7ed09ef613b905b981cc7e72ae48429ce545c5699440037b66cbf640ee711c67f3fa7b7f3061d7323cbf7ca8fd5391ec929c8f33d51cba12db45cabc2597db12d73f5394ab6a7f3bae6b828a07b4240f887b246926cd315cdbbe3af8e27722f02ec8a4468c5980819b5dc9ef9b3240ba4ad0a2f1421b4efc5b9960b89baa5427ef5855d0e4aad5ae99b864b4b7cf85be717de8a8fd602af962eedd1dbe123a3c6b638468448764c034b64c94da5b494551be3e3b7bbfe521bd28f422ae66c89099578c7e16abe414fe8aacc104b89c713aa55db5a27758c0f3b4a8513f89e0a0c2b777a21410a12249dd344fad4fef8db7acbf2f5ef7accde3cc6800cec47d376debbceda46c80605c0eaa41d70688d3\n\n# tcId = 81\n# hash of salt missing\nmsg = 313233343030\nresult = invalid\nsig = 5be11f7bd46a4472aa7d066d77c1ce4a88940eff4236717046bd55bd47cc48bca44fc48ff5c45faaefdb1e3dce253ea1bc87d3c44c83310d0191a282338bd6386df4020ddcf109f62944c7519cf4e8afcbf34d92540e25d503483a0999c92c76b3bb0748d02b31e40e6cd33e3956b5525cd672b265fdbde079e1a74a3506ce365331fa83047d2045404e2c0ce4b55bb11aefcb3f25a5d9b718e24225576e2485a68482e4bda5a623254cb9601fd8112f8fe78360b20945483e1e4ed707d20d4d994f60d04817bcc0f0bfd43e79cf68495132489d7ff5545ae24b4455d833630b191b658e0623916e68fefd9fc7b75ddd48ab79037ebc1c7a4eef9a701a48cebb5b3e98715ed3d6b17b197baa012de22fea181816db8741430cf030156948ed9c7a37cb98a60d459a0bf7364871bcd1642398f12c5beec00889a209d413d33ea7d3fcd3d9955a8b96cc803415382d1674d6d4266f5a78ca8e4315ed8c53065246426a6112a83298ab53b625271b5e44d3d55f378f6b64be82eba13d06d52a2792732e13f5d27376ecd64f56d45c8839ed7af7ed7b5260861b29746bcc415edc93e19295122171e71b1cbabbc6dea47c70d16c4f7da5ce61c6df8caf4d4c6d1e81f6ba0231f5a5974efb6d670748d1f881cd34ad64e2b7e352e124c7744a3aa9b25836f069ee59dbbc0558f69145b7d4415e03a8e9c651a13f98092b7ef3a23605\n\n# tcId = 82\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 0e7e3862a2fb354a36843c872c8175c7feba440f5af01cb2080edca8d8df6d66caae40771fe11d3ea7af1c5c3a0a0044818ac2bc1bb764a547f3c3ddde8503330f324adcf962755b8708275056f1a38828376c72c8cfcb115834203654838754747bb1e3d8fb9b542094267f26a37a4e9eac48d277d7cf03b06d8e5636fc75167573fc858fd095409c9bf8f1039d145e4a7dc03f0bd6560c515f06b2a15f14eaad2a39d6e1bc588b082d2da518735ca6843a0e974becaf8e21234d91ccd18aa9ab068bcf5eedda08c4d371ce23ea02ff86541527522e222d260ba481c3660bd5ee6e19cb9b86747463e0ed2a628393e0a321adb6d5ffae8612a5c53fec44ae4a432b01062370ebde52c0738342025ae7333bb710982702f6b4b5b9b22ddab02691000dd83816f3a5adca44fe6175cb24eaeea38d577450624300da57cbfe90366664391662a97906badf4a0bb67a7bca1bc8f4bdd133f969a89c21a9387a1243227f5d67e2486d4f0d1bba97c440c6d1cbdbfe73a23de51f857986e5fba7db761faecc98b9364687d56403c983689e59e5f1547fb4bc18045ceefdba22965edf816a8b7bd7a96b1290080875ce0f3964002b0f1c3453249e96e1239035bb8778a772c9289d9a645b81232831b507e23d34a0d1e2f35595de73d70e74f4c9f4e4213a1d19e9e73c4f22d211eaade00366e46b35ec004df6747a1e9eb6fe04e13e\n\n# tcId = 83\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = 875ae0615590e5f07fe62b22bd19fa2b91a6fca64d786e1df778015e4642726eb6cd16a57e9a3baa814bde45f74ef5966fc8cec5e519ae52522e0d5467b5c3b1fc9840c1d39b1059efb52dc15dd90cbf8d602c663d30c84709b6cf87c5652305573654fe88f41e40f5918ffd097c3158f98a7dfbbda35904f3e0af6612c9a3564f7d6a2be617f737715913218dafd34339ac56bb5f3ec68dea257d3ed3bc19355d9c96e8045cb5399aac6ac0414e88ff0e1dc1114d226e0778d3679e123c52d6fc8a1e67bc212c03e57b3e0a9a5224687785a597d21c504ceffe7a8fb20fdfed9e229a36081e0699e42ec1bfee8d8fa3718f6a557877f789c51e0ecf38cc430c56d2ff28a4e94130289d7bdd49cbe1e01b9382631bcc8fe81434f14fc1b85f1d19e830d4aa733e7a9f3b7f5e95725cd4610d15d1b6838db89a0f3ec5418c687c2ae0c834729ec16c29b9929f48c15f9d7467413191e965eb15693b26f2a099d47749ee86f061d636f341cb64c8b102bb9ff21f0f1fba81ad86657a1c5228f56174714cbd4023bee481dbace94e2fb9fc59c79428395ec877fb7092af1c6d1b877c967758b6945e7b30c0205be731c755f7bd221f2e5eaaf729790c39281d9ed7e63b2d18d5ff62aa4081f5df5e084d901b4c0f0ed1aa1eba177f65689015f63d61d9aa777385dc85136216645c85f2c77b88e399eee1f298fcecbd3111085a5a\n\n# tcId = 84\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 94f9d111adc41e6dc4625bcded3f556a1cb7407456e252e6fc1d873afcb7ca79beb18a2d738dd105dd0a7e54fa969c99d450d112dd2569f1417e15d6f393d3e74b849797972e454fa3ad220f5546cf1f60180d6d70b751e28395348da109afc94e698eb51312abde98c409c751524a6be4862e3cd2dbaf126ec26c76381bc8e8e519944f04e645b904a8685b4cced79d158ab48545164c58ba1c8c662e75a0cbb9f5e360b6ea8b7acfa977efe49d634c10505fe355d57aeecae808977a3e80c8c1a295c293d696871083630c6f3280045e6eac582481ba74d0d637882aefd15e30fdaf2743b415cb74ea97eb92250adda2a514d41bcdebbf8302713f5d0d56b4b9b1b34222041bf5f4f5d64556523610a50652b52d89c8db18a2b567431c93fadcd72ef81b40e958c131d16f56d83d27c95f1041bd03b7e8771540e7c62373da66b761e46b2aeec8198dd38dd7074dd51f66c2398993da738a51b71fac106c1c7000791cecd96d168a5bbf8eb097dd0011d22a5b7e489f2350bf2d698466aee3b7570c3e6659d294c5e4fcbc2a4b46288d067f475a54c1132fb432154d89ee845e43bdd90869ec6a802320eb09dcc455a0c08ca72e0a79a82aadfa8ce79e3d21329f0f71a72b184c361390a7978f199e5acf55aa5a7b1bf13962882c7fb62f519eae6139b74ff5043ede0d65c6ac6af7f2680bfac13b0e27ef6fceb81e45928a\n\n# tcId = 85\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 50d81c073d09499d0b73a7511572cd485e2779e0b2309172a43847b9001c52582b75394ca438c4e358946232ef17596d4cff47dcfcf40661afa1d3c3d41a93ce9d2f681622acc2e4e4f273f9e1c5cc23b53c8c89ffe20e1827bea29fdc713ac1dc769df3578a14372d05e0d94ae44ebcd22d4ffa6c9276d22f8def3bd65bfff593ce2477685cc1a2d051656b91233933a9b107940abc716d12a5b3ec939ecbbab7a2785ca4be41e70a99f60a013d04a6b237799d8f1743ada6d5a97193d5b30ada75f57e540a64085d67b0b28d2d3618d52d2da4857d8aec6b05982d07ef918ee82db17182ebdac2d59de4452a2f43c769390c429dac2a34d65670e433c6e00afacd4664aa99b78dba1a1a39ae1a3ea6ddf067debec393046fe544ba9188904178c3b9358dd355fc2a788695b2dd2ab867f1452f9cabf2bd52031703b7e2a6d00daad2cc21bdebe9c3b45f9f164a1e3918998f044e18bbda1b7b01ba732395398db4d50e61085f42944d0b86c09b91e5470ff37e42f299a92d3a38b6b8e98a4dd1b1a8d979aa8a2754aeca22449e08647c09554739c1eb0c359157e87ec35be8fb44aaca5515ec5bda2bc861c08adca65c73a0f944a29db90081560789fa05a2f42a7c0dd8eb199e8efe3c9548cc4a269b0767a830b7fb181346876b3a8f0c9385885bf69b1ec388b93c4ba7aac60fde8bd4e4c9ea44c22fac2de7331df3d5fd\n\n# tcId = 86\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = 7bd56fe8be48062f611a16d070328829b6e032650e54148551ebfae0c221dbdaa461fc0b837b41db093fd3e7eee34f6ea975b7e7c6a9c65c9da26b8b47a34d4f85cbb76f7f75f0010375c10301e6c656bb990919855bc3941f04817de84b225bc68a53310a2d12c522732c98a435ff2ed2deef13e6c22b92f1518c01d7a46fcdd650030017aa0d55b53256645d15b022bde6494dff48e348bf243b48acb6d5866b01c133c8d0fddbc5d50b1d41fb37d34b3ee76bdbee3be46e9893a64e3571590698444d9eee18308be2a61bf6e28191f052550c82fc600de6e01c8637d7e175399fb8b87aea136d002b589b7372d0476059c153525e63a90d0aedd48f2a59621ced9e6852c9644ecc1a60181b1cacf6adaf549a47b1825973c4d2926a911db41ba10eb244a45d582b9acf30861c284b72bc6ed4ddbfc4df7f96a2b6e4f962e4c8ebf27c35bac4cfd2ae63c1e335ab5049c3bc5e606a65b5155709b9bb30d5e10eeb895232bda1465443e19b356ac9187d5799e62e778710820ca4fd2802ba8c52cdad0bd12d8adda85ec480329e927a6ed41a8c31dd35b1444660f2f643204c4864590014c8fe35db260990fc731f1599bbe223a3d2f6613d393444eb6003cf53431db39691318a1435807b921be34e518bf2ceb99be38d607174a96e8cdef1f49a144c71584b45da1e5277f2ce4e0762c8f5bb8e48e4b01579de204cb80324\n\n# tcId = 87\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 1f20dc348e8b89ed3004b194c0bb635e27c643f70967d65b0f5d2d4ba55ec2e48d62074a49de2a73a34e5e4c0d172ab24bcb1025008c7d473c90b64f9d6991f3612deab90b0b535b11400c4a11261941ec9ff3738ec48cd6f0237757b26176ec2339e8bf2b4560abfe1a183683f9efc70876ac821d1874079d610a1f7c7ef80bf39f1ec1fa212136114438b422e4dfe65e8fb48f5cbe475715a67f8937ae7dc3ac913bde054cdd1636ee70d98233cf5f0645fd57a38da90428bf7511cd855431d2a2a5419d75c2199d338fdb60deb5617716f2ca73daaf02260deb1cda509ee0eaf457dae4c9f439ac00323c873bd6dd65cede625d3ae25568772823f402c5b354befe236edcbf956b700570c87eeb05568e0a50ee60d30cbb5b57c6c2dfd805126d1aaec535e01c81d62776e4b19c76dd412f622e8aadf9fcf3d78b34fb6016a550bcd72d1709b5b7308f74ad3c37fe0bbf4c707229c7f40282f09eee4be13ec48bf2f84b32d4886d0946dafbd0422fa49b1971b694b7dc55f7b4d059403df37155fefb9967b45db2bd801d9", + "012b1cf0e2fd9b7a073868756d64cddd630a43a9447853b4214b06bd6bb4ccaca1d6bc01e79e328ed68ee4a6b54fba5b47521a2dee8d6425306e339356f97f3b19d7bf822016940559c1685ae93f7be27eb3e9fb49d7b08b0d5960a68524e60cc7561c7e61ec6049362aa484fba37902ad026dc\n\n# tcId = 88\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 1e7a63b1ad5c1b708c49031647934fbbfa2edc1185b1096326c8430bf94b4ab4f0e9401a68f94cd6fbe2d23623210723e800ed878c9fb417ec64bd3f38f3f08bae77352a7d409485a83dacc9a79ee25526af32d93b3c702cef4f37bfdc7b295b7d243accb80c256c9ea350120ab7fa5ab047229e9776ef157b26212e748176be885752308720b16664323f65d83ce70de21d4e2e7d5a633784e9d18f58be6469970b52c009639ab9e2b024cedac4553f88e42d8012e8172be9fd4dbd3bea1887f065526e090c3a5e7f28b416785a0fd33c92937383f0570720aa6dab92ad7f006ba8b17c4890864313ed0312c717a2a5906a8f101b7c2775d9609d26e76e274728b03169d94723919e2ae5126caa2b6dd1a443d21d4e36512d06c8b5852dafbea73b042e1a999ff7147c49ef19eb7f41cd31794cfa5f65d9d0fe626d08b6257dd88bf0cc39113d0c0d7412ec7020bdd5dfa7e9f535f4f2799a06d4743c5769c5c85229ba5d0dc39b027df702c6fcbe728887b0fc0b606480d3c0e0f1326a46a7223e3124dd4d27cdcc48c7ecbf7440967c2e57319effe5e416de26e60b995ad9358ce8b863f35d56f69ebf6a6d6c0eec94c917a90316db70e7f105d171700a17c52c4a1f9e15a5274cd96ca4e872c577f43b54cff898af42720f0d3ad00d170f9c0bc35fdf297046f6c750b6d036905fdeca127e6f2da3f5add9ccf7ad819f2e\n\n# tcId = 89\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 62a746655abd3d4963eedbf1ccb42adfd9919f42797c65d833ffc5c5177483534b2b46b6773d7b6b9f6a1a03803a2c85718045caa8995d0eef3d55c66491ed65aca09dab89ae1541245c2edef535f8ceadf4f74f1ae12ba9e922508b7bb157b38247441863aad682200e4da61b4b3c7292cb824158275d042858d15fb7ec4eb5aeb33dcd40f58a670110fa939ddecbcc9c20216b6996a43a3267b501a2d6f05c35a63befad8f6534b71448027183e45abd98dae878379807eb97aad9014a268b2d042bfa20b3559565b22def87bb0beceefcaae1a01f068ced30414501767fef2373fd8d8ae7d44aeee885462dd1cd2136e114a9e63085eba22addc0ade5887776eea10b594da2abcb245a03039fa151aeda0364fc66a12a15dfe89ad7678230194600554679e0c02d3c35bb2af054e2bd68e73fdc66540257cc10a0c0145fd17793f0c88d76670cbc62e0a56b98d82fe1f5ec8a85c0075763e1d3d873deb0fa57f127052971af34122b9bedc760b2e441939c33bf18fd9d49e2def61dfb3aac87eaa480a348bf32bdee4e7303d513203fe23165f39231b64baa0bb1495a868e20a4dc3dcdb4c643646c23bb1ce0a4088907ebedb6fe13938156f9811affe8288e13db8f45705229a31fda7476ff07bf6069ef11c0e19b369f53e99ea901ac8d4a1ba8cf92d74009583e00783add48b6f7cd7d28429bc48c73b47539630b59bf\n\n# tcId = 90\n# bit 7 of masked_db not cleared\nmsg = 313233343030\nresult = invalid\nsig = 2f04e32e17a9a6991733913475f54cb18abe5cd6f7856a8cf12525f7a83127c20255149565983719e58b10c23fa70a27b40d723370bfdd14bad670b5a22b3446ed1473e8f012e5bfe70a1fdc1a7d826430e301405db72c815763e4c5486938de8f78b556648108eaeefb6d5a4520da365cf64ac69d2f0d2842b5650da2d06639032c4f90907a3164f67e0abc68a4bb86778d6f0c6f8c1585b76a73573deccb7010d21e959fc9189aee02458b8e353f12a3d98ccb6bac5e3a57ffe5b60af37b043fb58cc478ca9e249e94a30bfee4c509e150a3e28e56dc4222f9968ca8c62ccf57326a473b30055655654d3e700ea04756bc3f687707e0dafb9531706d06c30aa171e33550b66055adee33910aef573af9dd06b2611425d9d4820807c12f7b29a7fcd98c3948d5352e3fa8083205e13f075eed4e6442c0e3dcf68c765ed93748cfe33d758fee0e47a1977d0b79a755e731be22bb0c55cad80d54939b7a8dbd4c9c20b7369f907bbc2a540fae0189ab09fe62bb8defb479a913f3ebd167abbeb35104b2e3a75504b5eb58a1e34c991254e7b9115dc6fc0946e4d38e2c475199ba283be6b222cdd0a90ef0cf9ec98a3cf815e4d9ee23e3708b6ddaaadd146a802a53b57beee909528452d70170b8aaf40ca92fd5c3f5a7e87e93f30ee89881c7368c0cad47732e9b58f13e2d4873b596005e6344c6f030c9ed75bd65f273baa67d\n\n# tcId = 91\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 856a35de0779d33d013b7f7bf55de6612b8cb179058d490a4eed4acd8c213902d25b4eb5026c85b60e77773d3ae3570d037a087987267eb9432aa434ddf8b96379753d5d77b842b468af926b87a37b93ba313a6b0b0a5fc0028d68e569fb70c7bc5d29d4353c661fb1cb5e60340998d69ae7ff80ef5bc617207eb5648080265610b56d7b1037ae271e6e76f36b2ddf6d7ba35cb6430b21740ca0efd45d232600842acb225179af8765cddc356308ef617e130edee940e07c964517972ca94458e38f04375de2ca2c1de672f7885244ac95f883fa297d7e31f20b890a7d91758f57e9430c29a021ff5d94281ba0e7932ddcf031f0825881d3607cd3acc5ed14e517b61d2014c9d2ca6cb51e7da4ebe14341eea4c84d9b0b3fa11f9c9f6423bd414c8710cc82ec788f09c40634c3551ca6751af5e9fc966c687e170c5bd4358a4a34a8eac48f7357b2061d0610830bb7c8fdb59e5b9b55005a0cac3ecd3d6992971e64017a0d436406019d1d5fc3726c9c4cc811ed19d10114f61dceea8196b5b3c4015de1d761f4500b5182338a7ec0ba9369b44173ed699fd2ccdbd69f60b80b4c4e730f9793a2cb2c2b2d95a5156940162aff6fd8fe6dc0eeff643cec3fc5f75a9f516b0c422ec3938f4caf76fa09ec797b6088920e910d3d5d8df0abbc6bf78fff486c266540d74f9f55ba6aed8d21b71af65618fa15b94051b096b33a8066\n\n# tcId = 92\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 6df0234e29b09c68529dc6e379485376e89da42727fc88a547560ede5c518af124882f393e10fea33f680e1e5aabc51158c9b026a454c152fe4af301f40033693006ec509892850bb0b569b2907f7afa8864a9895752c47838615cf0f15e0b139bf83127bbce69f6abd6356b7bc52b30e9a58422ab4ad68fc2c812b6554f64e5c158027fecbaed30f48e90bf005cc6f0953ea845922d847f30dcae5a9b1e00f3ecdb139a0f38baa31a9404e816a9fb8f13686adbebfee71985ab41de8e0bc714bea3270205bcf16d5b7e8b42cd6332ebce2aa3d9501d30af6dc66c5ad19ed759567d16f0a391839e721e7d04c5c7d23df660fb18cd1e8982b2ed6860bb1700c3abdcfa8853ae187cf32695db4252f22503ea039996ed3877b93bbf413e27990deeefea7253a0ac23da6408923617f1263bce559ba3efa1bce8164ddd282ec5c115ccfef85493abb23c1490f134a63eb683ab16fb952854b40bce433d97d98f0348aa658ae3bdec9f0dfdcd25cecf11a1796726069132726e25b9a9c6278bc010f673b49cf89689cd2de943b94125e5a7b463bdcfb4b4ed7b52ae32f71cb0ae2f0ddcfa6637871fc64d254f1ab763b76cd7f93017759c9c73656a908cf0c687eaf6eedb0e510f3592be48a814ed7a9b387da754b8161f1cfcc2bd9f7bed8391484c98d542f5bab86af285a646965aaef05387153b51c7a915fd1213a6eb789859\n\n# tcId = 93\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 31e7df11d14b2fa289e45ca2cb36d568aa4470b5c6aa0d4bc0c10a1876146b876ff953e582b224adad6358998efc738631e44a34e2c1718f9d28f695d0e1b1f8318d2301bb3913dfd318707964e5a7e111e5a8765dbecdd90bf4e265a367216c6126869515c65d8788c9fd4842a6318d1323e50233cb92de965fc23f61cd8c91baee4013a1a928428ca6ed4db99eb2290c0d0683d7cc928d0cf252b389b64e67995249627cdd90cb4e5fefc8da61eb3e8104c6138e52f6710c136f7061e961c485eaaa586eed740eaa2c0ef879d2af5eca41a5aa1a2476e909c8325952a9d8ddb3b9f6bfa6495c4e2571e4c0ce727fe087ce484a038ecc27c7f0743fd93dbe0bc0386e4d025092d21f9c7d569ca0201d3347e71932e6efe64fa847655e4f1b01af20e0137160b5bc03a9450457162db68997a2df476175ffa040cb4818aa6be70cdee08e05724c8ce0174c6b25629c33e9aff85fdd6c438aeab60c3e939bd6deae3be1fc8beaef81b9334a1c4d59117863d7e73249f12a6a295bac6879a66a0935497040357bdb9ce0f2ebd7de693baabbf70ef76406bfe0e8a8a1edc183185a92b97547d50b10f24ed71a8a3d558ddc20f2b40801db842cc9a38021944d8b97e06e520f0ec22189ac11503a2d84b8291957299b8f1f45feb408e6c828ab97cce7c644b9fb84b8b5c3daafaa90e1c177799c1dd06fc6e48fd309d40b2888f4d3\n\n# tcId = 94\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 1088ad6c2cb501f99bf0c545d84b526de3665f419af5e941d5940196470da54dd01f58f48ec6cc56e16b1e21573700e57341188921fbd96362ba5e377e051a1cb2025c0da7842409e8ffc5728b2df3fac115d79a11d7a13ff1906cb8734373e62af62dacd1e7412a89327759542577d720581d4b8a928ab01e023ee7caf33b9037fd96fc17ac43ed9d604b096c8b0a11854bacdc88a58ad8dc3105c748813b4d4109fec80a4385f74b8b102f02d59b36e6cf4a347d87daaaff974e0a1f09255fd49e584b3c88d4704258fa8c402ca67ef95d1f2757312a63f307302a31b021fe1bd2be6feb6c1d7895642e5556bbc96026a591431adbb2953efaf4b54f33c8c8b9cd06e23ca369e5bd81ddac3167a9eb280f060afad68295effd5687e131967437d4f9f97d7b46afe1271a4193407a1251c1075705d4c4cab5e523eb66b2e1f57789001075b500a3841b7ea7c130f37761c27097c9ff533832d201ccc243691f19ad4a822b7ab203cc477398bd32506b4952adbaca1bc5eeba7c565843e17e18257a7cfac8746218a2118b9813c655f6ff55577fe17ff6fbd6443ff307f20dbd36bec5835c6a41bfdc7b0afa12dee58b119ebfa8a3ba8d3e77e3841a4812bdbe163aaf5bfa05a305c158115227f569fa92850205abbd275f1f24f0dc5b14cdd405d27fad86f812d51254f1667724fbab80e6fc30a5f1ab60afd412fef8ac19c5\n\n# tcId = 95\n# signature is 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 96\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 97\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ec\n\n# tcId = 98\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = 956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed\n\n# tcId = 99\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 000075fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f44\n\n# tcId = 100\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de70103090937f440000\n\n# tcId = 101\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 75fbc044fe19c72f459b5a1fc4793f7893ffcc95bab8609900b3c3d3be6643a42987c167e7feb63ec2a57f961c1b9c35b11b34044e065d7d3df0b49496dd80f7cd1eb2e8c0d0b726f37e701ba62a3003a17657af55adcb0b6e86f95198ed435207663d616d516bf7222db241094849fb232bf6fbeeed7b5879a6b6c8aebc57646117220bf55403d0ff078e219ff119bd2e52e767b708b91afe30e9be348766e7537e1128087b4c9aca0281415e550965a395ab20d423330939b4e37551a7735c6df2b0395dd032266ec7dd4afaa3c477c64e3f95ee4945960b7a0c43b7a9622448eba4149e30ccaa0c234be7b06f4ebe8ef43063c62282e0643c6e483feb1942e3310bad0c05bb2f87674825fed098d5c787b69c5ba6a1f716dfa62ede3b8a01c076598b15ffa2e2be82fd1d8025f8ded14cd8fc8753ef76419e1dd561bc0310b2c7845e2744c9621735758645af0252315b6a05894c264c4587c8870e02e94813fc3a797d590a9645d92845b614b0d89cfffc0b80c5b48186ae350d877f0bc06e561770736342f00d56b2ae785891afe39cc0412337e4f5d29ff06d727f6fee8f0966d52ac146ba82a753751ad786c9d70ccd3005b11fc4f6b81517433a052c2351390332bf7fcb4326a19930b512631317c0354a81ec7c529ccd1bb2ef206d697999950a539808958d6c2be64220123f12e7aad168be35de7010309093\n\n# tcId = 102\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 103\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 0e207de1295caadb15098f51f5db90f9f000776055b107be58bd24d52a01d4171cb9e47a40790254f86a8a56c8ae38252f909aa3b9bbe7b7e1fed008105690d9afa647067ac122a272d30ac28213d2cd37b45cf81dc48d59e87d9ffaef6e1c9cf6ddf4ea5ff6123523c9cc885344b7e1ef4c8096bb542bc0fa5c47abaabca9a58ca85bcf092924741503a0f3c54c725c48855dc434b09d761f729051fb15af5612bdd387b4cd5019577327bb2e64edb065f713d50ff4285f1d184fe709207f809b9c38d064722897a868f8a09bfe1d33c80be0693e98d7e85600befb643e9f713584c716306731d7f8087dff66be1c4f6dddbc51b6ffe6034845cf0f88749e039ec314887c94648154f", + "7c97235323bf78041ec2c8ee98ea7c553ecfec1f9fe89279c9c91ac6acd12ebe969da4c67fa6534ef9ace4b629c7b1de8c4ce1dc2b0f5bd7d416db6eb512a4dc8eda0322138cb7c65b9a58d712284e4aaf059db80af5785af4d83d391b7d8bdc4071636712410d1dde662478eada1a2f1f35786b78eec77b2788536108e7463d676814a91f81fd5e2084a8c1b1cc33988e73184110c6e6b0ef1de874104602eb33b5276ebbac95d91b943e25de6dfc66b31d8091961c78dcddd358de7f25584d9f74dc6271ff31294bee2cc9b2f97a2583c9b33243600500bc723b05d65839de7442895bd57a1dd508651a20e20f264d8dcb59d485247\n\n", +}; +static const size_t kLen146 = 189086; + +static const char *kData146[] = { + "# Imported from Wycheproof's rsa_pss_4096_sha512_mgf1_32_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 8d4444ab233739c9d1441e99cb4f71581ed78fb996ba1257fffcd9e3c74ff60d6be352f002f959ff66bc6ed0c987a070097e5d57d8bd89b4452a9d2ca121eb6a283e8d0ef6f5f67875b6cbb8f04e6d242900d73d5bd7b59de4b9466ccbe53874ed422610e411fe3e026f47e47b8686b9c891c7226b4ca560a840e1734eb4f6fe877e559c9a9299dbbcaeebaf7eecfce6fe43ffbc483514fa3aabd6959e5aaa3977e23a9f97edf406d396e96c3c830164b10abc680bbaa6d99d19765d7c7e77946ef6ae240b5fef0249e7062792b15c8f9157da95971afb315c9c015c74a2e79ea2d0cc46992704872c340781f052b4b2cb5ded8f5cadd9b5e3edce128ef2354bd0411074d6515251f5231453bd530222f730ec736a86f721744267ba52652289ff6a207a5a7c45c20ec451948d6bd7b10f1af7282afed9f5df43e4a0d0f2e8fc6d3dd3130d4ff6fbc11f0ea460089856df29d1b7b111095754a7de9bc03029c6c397b6994674775fd29cd22ffb03dcd90c51096b18a6c174f2b48d50e94856f5a22adae64915d69c5528dac0345017c24e8aba401c6e9a0a268057a0fea237dbf0c88906796eea0d1bc3c2347cfcd812217e26015825e9f0fac404c22c26272443ccaf30b294c7c467497ee561a2a5f6d219973cffde9aed8e4486faa3de3d17405445e2f78a768dcac1efd01596486c2495f5bb1f830a4984041e03a7bcd77a\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3a58fc64a234dbd7be958d7c34abcba7d780ca636c4f2b2bb7fd3d4e4faaea0e17226c85debf8dc9b1a79e152a3bd83b13f43b1e92be81b37e908d04b717251e32a2d49e2cb5f2e7dc18e74cf9fcf0c0e246d473f76c79c3d50e878a2f89bc4eb6ecdda96c166d6a825a1df569d11384a78d7052782ace5878c41361f148c54528288088716f935d3e5b5d556a0fc9b62c0de31d9ddf4893f82365111043ad7fca010d1fe9187bde48f78cf465657e184857451d64564a16a166743870033e64125ca3f20ba80c065b259666871fcfcf71e711aa34cb70ad9a2ac6051fc02c96149d4e3c1741c4d44663ee0b49e1ba60a80b4c2d389ce3ba953d68bec835432bfe170429951f82ff51f408aff052c934d51526117b3d57ed1f2a912b37cacdb5a980d30d223d79faee7948c5f4986c1df5ed42923a3f4342da02a41872db49aa09d2d48c3b3e1cca7114a9a34e76b747ae6c99141c9f856e41d98456b3fde7d26bf842d6a421b3d4cceda4da1aa4d1298b624159a1c83b6fe5cb89982eba5e7d6005489d39233f156817c00c04511b98463696f8b6b3962ca3f4ef76b37300dda1d368c237250baa057e38658882f482d024c26163dc1fdac29904bc6424130837b8928f764bc939f006913ab1e968c85016dd812dba264520e6380872587265d827557eeac6498db8137dd2ae029fd83250ab7dcd764d018ca05ac9db8f95e2\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 7c838ba65f923660aa4ac47465eb1df4df51d6fa2be26389757de8c6dfc7746aa5164d909b69b7c04758d256e13e3520e77e75b4094d8b0d60da0030b9c991969f6e892ff03ffba9b9f95ca991a279e7cded611a2879e6e6602f411a122c8d11cd333de5d2f7f367e38ee0491380e8796e113487ec7bc05ec1b1261aff871ef82cdd12f4e3d8f239cd49b2f53d57255dfe6ef29038831cdebe9cb1a76dc9ed79578e129b063724ccb3c7b3269f5dd3d9669a405582255cb56b1efe6d61a376df3a141014c3d660b66f9d1b266b5fd3c5472534df778e6e022a8f5a6cab501dde611e07c0c8eb5718962692e8e3773bfd25f1d3b63a20a251ef0c296f01f4a17814e18dfc029f2ed0ce073e83777cff44471f9348434fcc12b0420bf2de1c9018f0282ee21f09302b178f8c772c8f8962f6a29291c63532e1ae9301e7ac55781876965f425619a92559f33737d5e11b282f9434e27d9b27eb2fb0fce4e3e90ca9eaafef170644b00e512537bd779fd2207ee73020aaec07e6cd44103a14940c9499b013c42440d2f27a3def34f3509cd8631db1cc8633ac15180272c824369e1d3c8a6cdca511748361cb60e022173f95ad06e7c79d59e03934854a9f9827f3593d87c34d3fc44beec58e107d454ce04b55c96effce612aef0e5d55c31e367c9fc0166f2c9d450e86d79323d4da8fb409f97adc7af2ec6772ab290f622fe1fa61\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 3d90ff4e36188b451116227e189a71734571b72cc6fe53dec4eec59e67e98111e96fcd906509fade9922f2de6a13a4faa23c7efaadde6dfd0acf150541eca973c7e38a49c597d741e99ef7575b6e2c8de0974bc868a5567f0890052c4df54d12198ea09a12bdb2b6ffc14a1d874e165ed12caab58b28aee171fa7f1839e36e23ecdee2633616791179084eaf98cc23d2f6ff479df0ba46ed933beedf07cc0cad4dea", + "0f0b48f4a063488ac67519e1fb83c7b7e86e3644b0846383ecbb1b1189743036b271fbf121e2199601a3ffa8e8cab00a6b9b5527d62dc2a398e4a42c1e5a62f8aae35b629755119c54cba5e860b421845f9b4422f20d896abfa962ece5d116f7d4170db8dd0784b7625ab2a384c7d424c69901f59d03b144241f8f6556da8e3bfe07c17eae91c50ef2c53e71072c3ff16e642cf126feab904e09a2febebd282a2540389bb60b145cb332658d6a69e03a0a8419eec0f204d6e592e04df01b92f58236989b6b92eb0344255914c25dcd0a611c9fb77e435e2ef9bbe3c74efe144171ca95d1bb7de814f76be54cdd8c11db8af8d20af4451a4dd3b62387bac37cb79755afe91d0d9a2163d299ff61ee4fc4d5267eb8c5252371b0a83dea738f6383e085e992b3567ae170780f3b83e15d895ad4ea668a6304f10f0914ca3b2900fab1364c8b352dfa8d5a3993d5628f4d2264c412210798c18aa2ed6aee516c\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 07440a61252a8906a9264ff58cebad6217ad710833105369b7a858216f1d5a5f5dedbe3eb8128b34dc0f0243faacb64034d21b656a278abb26ced174f76a22637b755b768564db6ed4e4fba0d5784a22be30d088fa965307430982f84476907d55435ca3d4abdbf689e76f2d4b78d99bcc742e0b757b897c4fdb13d15c5057e6816e32c3e294a947374c998550173cc657ce33f9fcc18b2d14e1b448acaaef683ff84b086f545a05414589b1c23210290ed5ebbc25af614129212d3853ff728ec01128d37c4268975ef870a1e4fa00c3c98b39c3110c2c11af10333e25db027448fa8f219a7dca7c8bfb490912bd5040f1f348b2fb437a8a9f407ab7e8af1c6e29594f557f2e03fe74e4fbfd2f935e68ed824a510fc39bb4be0a2e091feb265fd2d7a33d2f238e70b153700f5bd5046aad7a6fc02a5e23dc36f67278fdb904d05f2efd0cabe9e4baf4e16af0f7ba9edad706d67c67221ca0630238d6f688174d66c1b152f8f921e2c6c08a19e870eab76a77371b42458dff1c36b0ae97b811e900f6c09e792c89644448f1d0b97b53b9818d1d8f3d7a37bcb1bd3e3a5bc022039f00a0ef7de19657c4c9e06daa2ecec2de30db3b7b84107bb74e164956eb26edc9bcc57e5e1c4ed875b02f0545383602faf9525f094c72f682995d4e2d71d03e11134495f637a3b1b022153689751b63521b1a16b3c3e269a2499a4be1aff9b8\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2686029fb11cd033724e57dc1835da4f9321eef330747c3500a4893586429ebf02cb4424ee5a0b91a70eb35cb05ef60cf6b3635d4f2ef5eb647f398fd44f67fcd2969b629a7c54f1094f9827f9f27457509730f50c9ecd2dc83bd13f1268d93f0f61c29c5c27eb821c68edcdf1b01f79d1f261dd7f2f283db197ab56cae0ea3b3c1cfaf3fbd4c1ed1f6d313f0b919e5fddcb97b23f0bf64e36bdb6f7cce8ad9cf362953e66c644f8b8b64bddff1e850298f5531f121e6821a393f9658237280c2a53c7c658319bc7d38f93f2d7723ef6728008843f89f61f7ecf5949a2cce6a9fd9dbbc501ef25a53ca02486b61a5de0130149d9d246925f26e1a9a74287439592a4554a872ceca53e54d1c1f4c4e18a4977939a6c37eeaab5c8d0cb5686b44d84c86d736ee8e0d97421f4c8935e926419dd68fd4e5fe9999eef75d0d0f9494cbb0297fa066b3aaca55cc229a36659be310c1e328d0b52f7747c62b1102a2d0a4acbadf0acf621a45e5695ce1393b3eb05a69ca5318e6f6b7ae5c4ed3f6072f8ae99db9af66da6a98d675a35acfe0a7612e9d5f29690870d81114279010bf7bb3d458f630f10f81a785f671e6735d7bdddf4da375d2e6d48ceecaee741a33ec1e8f9e0ce0755bec28315c6f9df363c800ee147bd412c5ea7aeb89e7a354fcd3a2c8474aed04f9a2a5fd2983380f3c00a4558c46ca472a4c15887c07d4bc8a698\n\n# tcId = 8\nmsg = 33393439313934313732\nresult = valid\nsig = 69b292ceb8e8eb52e374140501389ae251d8451b64b9efbeeaa16ab24126f38f2a7d4e21981aee6b672df3afec1a9e167686b6238b2d3617c659ca1331470e95234e2c04c308cd6bdcef7631b74c36a752eb4187bee2dd33c59f3fed55bee29ebef7ea61d26e6c052a2b519702282de7652a500fc50956091b35f9ef03fc9bfcc72f02dd55b25f88b60bf22aa785f674791e4dc02f9f2f7f04a577f860ea1761d0d8d3a0082350551786c62789b48fb21e85ab6b05f56ba504f7f0ecf8625aedee4de0c95c4f97fda57929c399b6d4865b78eb2d1da433f2488b4134fa043aa26386b47f551d7778bba8b6f379cad3b4894e106fae90a2b391e859fe8bef5e545ca3d0d908133285273fec3616798b83a6f7136faed77ac31e13a3745de44bab641f559ef5487890261ea80cd9bc67c58c7e14e9821867ecfb473b47e95bdb0003cce856f9192e39b86f551b0e3b7342598cb34d8905e117cf85b828ce0aeeb55407785e27a9687b59b8c5fe011c95638c8f1549e95658de4ec73199e3bce9a14860a0ac64ebf20ce5f0083594f40d6c2a12a07a512a191072487d8741766af953365f240335db17d4fc57390ee0562e4f8dad03dabb113a665b5b9174c1c128190c335cb748469ba2bfcaee5bcd25c845bdec81508fbc519a8837c059427cb3e0d1ba0bbb6e79849fb6a2e7f29c7d778f957a7e26fb28534ddd85ae59498996\n\n# tcId = 9\nmsg = 35333637363431383737\nresult = valid\nsig = 28dea73d9efb0b7893b1493264c30a72708c1a28f10fa9b8c7af7e0f52fc5f533012c7b87c7005857f9c55386e81ec54a94f71364798a5d31297a13dfadab5b032052ed34124191d2a94023e27a7e6cd948e21ccd33bedd37769024e97ff90db92225b6b5c0643357d80ca155a69b3173755b88fa83a4367355f1921474f97fd2e1337ae93e2f535d81423177725404acb230144a9d86b74ba3c1a6e724a5420a12f2a19b4ad6984c043ff63eb14a0cd494c0072c40f54f4d931804fe63d9bfb97ee7de83e943e12693bdda14325de9d7ad605e7efa7f42b14657fdc2a2e8fa3de31bfe2560a034aaa6de4b4ba00b056ee9d060982ff77b5e2acabbee33f3df9e58b2782e2f99a6d8f1c6b827862b5b04a02641bd1331c73804e1322dd2edb621508aed4f997458a3f52380d2ef83e8c289a996dc2407f16f6c848074d12bcda0b5050140051301371b51e808f374685f728e24ae3e937ca9d5ef890e0727375e4832c8c07cfadc05b098fd50014d6be7a0aa2a35ac990026f5550427db3b2345866d72d3085594e2161871a4ece9c55bbfbccf854a7bae0631ff101d887681006388a37228dab83350e5a15c96f7d0397cc62c388e8ce6e13b6ac727df4b1dba0691b7b96574d0d024cdb0e329e94a128924772ebed4eedb41138e7dd99d347ba50b83d1547d80b85f98ea544aa63dd725f4ec61b1b3b522409a1369b5a9d4b\n\n# tcId = 10\nmsg = 35363731343831303935\nresult = valid\nsig = 19085093b94a6bbc8f27edfc375a736a9e086f98b1d6e4280e6a6f6e8dce1f878b4007ef9c55d3e4bbfce9a6fde2c6e07ba94c55bbe8053a3a3c08c5fb981960e82221fb66a95553448a4d2f8a1cc588bd1e9c4064e9b6346bf48b153262035db57ee6cc5453483501af3668a645a930332738782f55f4524b1de5787b4cf94c2042b43f47989295c8dc1e0bb9df8a28fa321c16637e20fb409f55a21ea3e29e515f833e18485b501442269ce5426a20b77bc3a797a8fe461b1e02ab4d2fdeccc84ab2b9a2f0f5fc68218dcaf140dfacc70a990b2157f71815049d86e43c094b956e6a1915ddcd3023e6805f9267e96318c466985fcc3eb84db972dca08c84a347aba687053871956edc2bee98207fa1e984b1bd05ff115e24bbfc706ca9fbc916565a3984533a281e665dfb6c8ef40852059993aa6d87d5d1faabab4e0143f1080a4ae9c8afd4886aa21ab3a487e316fa95dbcb0b67ad4dc8992c2beaa48cd274f3506b863b33d761d8369ee1e1ca85f5c86adc826d9adca6ac77fb586423eba20ccae5976f9feea127c720ecd881bdfec17ab1c6f539195838ea99d4b8e612933cbf8c7daf928e99c603e0f633e5d89bec797eb33d782769e03c75d04c6f64f90ae54a47f9fd3835a263ebe8c61df8987443ad8ad327aa2b9facf647409828fc9716da00f9ac1d932555c9138b6b9d23d9c6d1726d63c1e42527bfae0354bb\n\n# tcId = 11\nmsg = 3131323037313732393039\nresult = valid\nsig = 882a00befcdf655539171cfc51083a011e676653b03498c5f05a4894cc3ee7963997cb440e279acc5ba37f0f675b7de685d3f29aafa58fddd4feca007c1e96d0891f9e7407030fe288ea91d579d3d6e5062f9ce14aaf9b507b7405000a0a4ae6f207f756677276ab25352699fc3beb4892ee2c4fd416e59379732e1fc2af9e37bb6c49d4a9538f9cecbddb571a5e3f28d266a1a2eb3d477bb3f13ccf776101a5bb37ce0dab135f4a5976647ee50fb8c8fd829812c5f686012a48a6ef6af6a88c5e805cc95b5d0c90ce568b596b2ae2e5934d1c2dfd7b2966e52fa145ecc3d94cb7cfe3dfa4cd8b3b42b780a212678299a2ad2c920f386fee15085cfe225798f9ea233b5528915d8a4d530f80dfe6b20fd4fae2a80ad0ac3c3f45d99313801c1a06cfcd311fff3cc409ef375f0c2486cb5331a6f56f693f48596edaac25c10fd3f985b565e657570cac4ab291cc963ed196455f7285368f6877cf8c74ee7fb784ff192638415e4519abf74d82daf72cd6794b9e82258bc1b73f08c01941bf304385a3a80085898b0ef5ec929da0cb2f27fc75153c11d0699bad1fe8b1d357ee601d5de2489166447ece43d84212a88ee665c0890347e361f362f68a195184b224f3c2f0228350e326216b043a56efb4779aece7d5bb512e3113d611db9767639934778e442f838e9bcf2455f3aa66f5c038ba28a3a8838d2302384ffff1cb6131\n\n# tcId = 12\nmsg = 3131323938303334323336\nresult = valid\nsig = ba12cba0e650918ffed25cfa35075c29f2704a11d2698311965905bafa47ac53f0cd688647e298e3bd3cd380558b6d42e1ec16dc58f6175ad2341f93700703f9dc8617e321e5246c15d371845d4e67cf04f7e51b5328ed5a86464ab669330eb97749a10ed6ca4e052a21fda6ef70de6b49fccd8d6db530beb55588d85fa05f1643a79d5ad09003ae2e5413a06a189df2633b742bf43a8ab4a473bced22e6ff46a687b5a43d6d1e1d1b2d1fd96cc99e967b83c9841f4e2934a7e044606a73f8217455beef7926f0c65714cf50d2b5e06f59abbb95a489e8dd1725b9ba6d5b6092fd660091eb0c4f47e8a9844dec0e10cc1a61d50792e1f931071188af1e800784d202f99edf2b7fbe28a120b692ba476aa431765208cf493253d73763d36c795359c7146b2c82b635b4d6ca0c1a007cddc0385ede1c589cef90f02178e302bd731b37f66fde283777b7e02b77803edf808af7c1c71d0a321b7d090e299917aa21be4a9a82ece8bca006917fc0d126cea0e7e64f6073e10c589aaf3ea25211417f2c3d12d7066aefe4c2675d8022fac6506d12e8eb19af5a2c82829bf64abc4b52846191cd6dc555585c17aee1d50d82ab3a580d616d988de71bc7ed96", + "5a6cb90702ee4ea29af392e4dcabb97f7dd7148b811a93724b40bf40a40ecd3729b99af580484958e1884e4947cfeddd5b3df5b810f65dff9d460ce273987f58ca57a03a\n\n# tcId = 13\nmsg = 39383736303239363833\nresult = valid\nsig = 39de8c150be0071d220697d5ec83166e42d608d83841cd01eecb5b63ef1a6638befb87269077ac7ebbedd0e368e3e3a87c63163ff84ba38e51cd346a4d0617704c1ce5780e1e1ca4d2fbe72b82429ba00f9311d2ee26075e8c045ba3f4f4e11c5454819353b951e684c829756be54da216d8d0585d23573720516ae900a197ba2ddd95c76a660726780213060c0a527e4e1e70eb4a377f7766237925fff87ce798349b4ba0fd3a0c89a7403b9e8ad657078166aa427ca530afae4b66233b1c601bf043c1358a73bb85fb5b4b7f2fe24fe532400a99f778f27a81352ae27d2ca9f3af99da7c9156871b7b4f0f649a3bbec0156e638f270af6e2e3730fee4500be694b0eb4e3066d2b5fe29fd91f1bf55747e6ef9cf106eb3bbc3772a8b181d6a4878531586022415f6be2541cba38f7b950f805b4b8d673355797ef0b5e58cb9e3dcb97d6cfc182ab493c5e04f239caf2c925ec2391700d501e5d4a7a7ea08b6fc9ed56c27460e7d717aa9f8100d76b57b4fe485fddbf8e81dee4b1616e0e0ce2eae4134ac6a96c1853cd3975f770f05f077eb4781ca935e58f7dfb618d855010cfccb3a5f3243853ee413ab695753329948e772aab3c1799b8ade5f9f4b0d041815842f7745d71d6ead2c83bdd2e654f445b469e5fee1f091e708cc50e8441eb38e0a035d58aa4bb9310468b38a8342d9ba9a346d64b25b4fb6143bb72155ff3\n\n# tcId = 14\nmsg = 3230323034323936353139\nresult = valid\nsig = 67f05d7cfb5ebb3fa6f34a32e859395de916efc318bb58cee0d5dee9457e458cfbb97fbda6909ebf85394095732353b221a1bcf502b9b2cfabb4d67eac73a6720733d5d76224fc6835fcd8937c259d7ed7bb1ebcc7517c3b6b0fb67a4998838f529b8be2abcc8c2cf10b60a19b9fd4139756b766827bc3cae375709ebd821abcd97bb4d2e5f42f56888d67cc159b9d54910316042a4acdda5c507c66a055f55281f1eb4b0a1fced99560878109be3c04eb62633bf069d86f1a7496b5008e7009eeb225d1d4d0b377ccd4029717fc7e55a26575059e4b90fc735f8dcc45fce928ebd5c116afdb631f6c302a213a71aa75d427cc805ef5c9cfed95a1e3470dfc1897860e459f50f98958bc4ba630aa855dbf5799dd564c7dc8c67797dc1eaf51396e4984e345b847bde407541c68c13fd29af83eb6e15bfd092641c46da3dc7537d07d83c343cc8bc8c6064f8e4f61915c555bb86b37ba73dece8f9a0203da68ca9ce7c874c2c1fe516952acf953b61b70c5424b17123020fcc64bbfd7b5ed9c4740971fefc1743beab357e466a35a14bc5b928a625c607799206c76a0aec7df6d9988f2dd266d41cfcc654fa23343d39196b3a10f651d8f9cbbdb410a629fa10efd840b85da03839d96e5744a0ba785d5f90e0e797a053b8762dd7ecf805abc99d648e97d603fc4890119942d3b9b9ad4e9391fe453002ea2059dd01ad7edbb73\n\n# tcId = 15\nmsg = 31343531363639313830\nresult = valid\nsig = 5b382b1f8b912347b40629ee86f870ef85da6ba37f8fe661b6a6af3e4ce714e2be967f149e1bd52224315c87e184a62537ba262072879a4c8f13c8534aefd892c074bd214c7b915e87fdba67287bc0e3737a13f69ea9c18fb9329ae08fd35b692eb7721d2816568f5fbeed25da9df0ccc0ed69a9cf2e299245b4be49ef11c956f182587062c75cc87a3befb1882386ed503b658756300adce5268270959fb270add0a61421c066aa8ffaef45428885176a466792ccd4af9b4ac03381b4e368eebb4a75ba4507e61137dabe41aab8239cdd9759766db0ba6420c967f008dccfd4537528c51dd7b9e95135fce34664ca0556a30e9bbb531f39bae4f6e15ae266efb39dbd7d9894c3022e8e5cec3808d8f465115f85b411f0b6e276dc5c6f2b676d6ffe8427112b3af2cd99137d25b109839c7661d8376e3252e1f8bf9c5baa524c1bd82eabe0228b2c8f2b186898a151d25192fa6266bbaeece357117b46dbbcbf4818de758c5892ac548a47c8631d4754d4ff1d13cfa3a707edb5dd8fc405545a84f2a860f4f59d587658dd5ef20681fd590c91245740d575d127a1173ca8969c4f69ab10bc67cdc3ef5718fc317cc7915bda8e97a5d674ae63da735abf9e119869fd76e816b2d9eb868cbcdcecfb7d3a22db60e686033227483de816fb80dbc3d0abeda3d3169f298aa72fc20e305d2c6df1092c8b406e48143a3a6211020bc6\n\n# tcId = 16\nmsg = 31303933363835393531\nresult = valid\nsig = 3d85ed8630bf31cdadca8fa4ec06e69ca8e9edca84ef2b5a9d689fc77ac3819fe5f1ce370a060e294425ac97c4ee2abd4c45e8566d5467ad19c2eae4ec85f3e25d0888ca4f739ab93cfe16c034295e075083702baa6f283428deca6d24c8083935c80c08e68a1c622697ac1989a6bdb26bf88403ec06685eee11976108c3abfa602b64e6dc62d53241600b71c85c0c9d5f30a1379b312c2cdd6051febe6e343ca99fccfdb53f0852730d2bb5585d3c344d9091cbffdc529f780ee7aa8d807e54c0a49fdfce3b2cf659c6cc214e2f3a8329bcc4156408db4a49071bc36a4e018872c6d8f138da58e0877307fde9650a94b98882e5686fcea8524ea07d9d67ccc6f17d914da6ce80f0ca32757cd5cb4357f419a1726006a2b8e5a3a5a2d93e3af8a8af38d12e409ed8cc118ddbf7028a4baaca589a5b937997097189160f36b9e38bc29723d2f8f3844963de7f0742dc6c7f3a183d0729efc785d280cde8c1879eb75a53556f2c064eb114a24bd36e498216e43f60f16dc231130f5a393ee13048c1e7830e2c9453381c238b730db88b186447174bccd5f297bd2b3343309df6ad047e6734980aac77ee15122e887d4109735a932401a9be4b02423171f26cc3c0c59ae1870a5d3561df937e344dce45ff2c03bd8ed634e61cb0a6655d8e5945d77e119f955103c7b121105e993389f44ae306d901ad9a568a90eaf0b6eb503fc8\n\n# tcId = 17\nmsg = 36323139353630323031\nresult = valid\nsig = 3ebc127c8ce530268e26be059e0db2f580109f0179c7694d384ad01f257effa13dd90dd760e011546e8f8185fa754d7f8f89718675c818d8b22d94f4410ba577778ff90207602e19dd66f7296548600ed4fd03ca80e706624b715c52dda105df29661759c39c3844a469f52cb187a4f51640c2feedeb9411d96bc9f79700fa5ffbdcb87183d5652718a7dc63f0fa5885f2b2a95e0a79294289caf3b998a747590bfd2f0054e844f79c57807cad58bc664d6c4daa96a6262f4d110e3bc456948ac157f067f7a999d789e1462af0c59bff7e6fd128ad3b04d3bc0863e7343ecd43c01b16e549a4d684f1ae5c069f5f48eb63d64b8c4e53decf1caeb545a7e3f7b62de1ea5cde0c77bfd03ed690c15b9ea122255d34252b5a59a3464d5c4e4187caa9143506088b62778d614a01cfeb6ae07cbb91ac1ce5e63769afd6d3746ca90bf387d86780e1bf86c6653112a0dd193ec8bfe26a2824694f28dab211e28262a45c54ba8e1e94e21e61cc282a3b9131709e0fe5132e27f3d8bb20e69ea99c972bc780da5c58448844635090da5aecef1683a663a7d8c3f65ed98568dcb3c5199c5a10ab41ae60a5ae31968f5ffddbdc30a475b02f18d97b0d0ea03ece8c9f06be97b3b76418cb57427b988cbc2f8c13607c8fb97f30f209683c2b25b1582b7fa99619fd62f36481147f4b1296b1e19c4e867d2f240671475d730c7c6e19b5b5a9\n\n# tcId = 18\nmsg = 35363832343734333033\nresult = valid\nsig = 2484f823b830036277b6c888a551a134afc4456e0f11c90c7de87443f115615a2c3b5cadfab075aeb8d5b044420b8b2a98a58b1601d4a179bdd2c28299386bfa8bfa23db3c0a32214a8f99d2d2bbd202ebd5d6a7ef645fb823ea7e07f1f0f8123099386a011d78b8f7d74391cc4c1e82d5f5e448e44b62d091d0c923aeaeb3dc0ebfacfab71956d6d05ebfb6b384a5ca850b4efbed24bc02410b68f72218bb57ef7d3831c777cf48e5ae455bd0fbff0533399708c02a3813413e877bd0d1f0ffc21489800bfc70f6d3f8e77dd2f3bed5d298a1677e75bcd2886e84b5eb2884642a560826269e0445c80d695ff1ff72496dbb5853f72affad202a780978d5bc18f87bf2562021016f6d6a6b94dc7161ba220088f1e9a6000b2424716ca33d3e0e68e332778e19297934634803cfd5ec4aec3de2f6c8606b217717cfc296bea23fdd61827508643cb5fe505ea14c2e6a61544362d4d541fc41912ba7dce58ddd928ce8b8ce465cfffb97904a3e961711a24a019d25f2bba8d65413b3de82cbb04f2975b87a95502c76921b550f545e6a659afc83c1731dd8bda533b154129883d9aea6af532adf3625712aa44ded67ffe6d90bc95357d446a673cb32487195ad20ae184250abdc7d3a08d3051044fd9eb1049272b89a2e98f1a35b2e0505793a8fcb7448c03c8f46aeec03d1cbc3eca5a27880c8b43a2d255132703c40413b2446\n\n# tcId = 19\nmsg = 33373336353331373836\nresult = valid\nsig = 76d929733914162395018b1641129388337fe075f1ef22857bf1fca62902ded0a7f6ea25a0b33196b1a51145dcafd1545c09daf6d4d453660c79b61993df7b3c3207b828920ee1fd030a29233e35fda6d8f96990acf3cb5715b769b4f8d1bcbe3d686527fed6ad66343012e8c9ca8217c7c3dd8a8efdd052652f7c9a89090e598a6a60753b2c8d9ab67eedb3b3ccf8fd755d116eb1b089b108f85ce2b3be6ce8b11340e57dbd8c9b3acdceddfb53e6ec145f7622e184dbfb35ae46d75ff43a197703b183196d8778bd06d5d245e79f6c2e0afaf9771babb9a88ff06d0300be38a6f4dd00a627df186147c91be1d2ee4dd1096985e37cd2754002c776223ec0aadb08a3279b0839c67e9e2053344bd45d487f65ddc1a526900e909cf1ab63908375a5e0811a084e481c1f149e58078a3fe8abc9ca195587bad6bfbda20beea9c87b122b55cac6f6f65635e655cc0187d63aff5a026915232490b43f35ae2b96d7a73747d958aead23b60784eacc6a7e6bc471f850adecf8e2b53f5f93c4b8a40a27420466abbcf5e554a35d40a2f0ce4447c23580193df8aba421fdafbea91a92f74f2f9d8a565251dccbf07133225b40ae28c33ecf8cf6ebd2703a135cc6420628304d13e5b65bfbf7aacec056664694126dbcfb2ec2334f04bf4e4d9227444b07737a4d7d7ef4762b53973b900320e589a08d0e6563086534b6fc6d939e0dfa\n\n# tcId = 20\nmsg = 34373935393033373932\nresult = valid\nsig = 757959f7d8edcc8d2b843027b0e7be51ef30769b79e7393a550ce13ff36088c49e062c19646b68a82fbff82d8f54efdef5e4a412faa075936fe83bab9d5ba4c16be9b50a45a8196769c899a4fda1351e0bfbc0d3778ba2f3cad6853e9b59fe1d5c2b6ccd3ea320300e55337991ecea2623f2fd2088c1a152acc9930b57aded1bcbc7d615e43b3f03f2568248b11fd0a7c8706acda54ed825a8a26dc5b745f26dcf0f6c6f6185170c7bcc94e0917160346a54b6f16596bc5b53d19824b77440ffeff031", + "14ed36fb50fc7539781924364995c9efbe5c18550f2259c07b913e40df859c3bd81eb9c0ba9429bec118f2ad0dbb45ce430084d2b394edefb230a192e4f6700b294e8debb3b26a66ea5a4c02d2f1682e4229f8b3bae2f0d02faf45c8a9ba7b34f8635d9c0b02315856d61a977150de765081f3fdffdb446fb5246c5d678496acbb4062aea2674e5867679e194c13ef1987b4ee11019c27c6b15d23202d699cd57a2476aa25126011b336bbdac882b901cbe748ddd58681d75b2d25242b75266f013a681a88614fa6dd3d42d507f621d77948e32eac5dc71f0138e0175f75be9d75656a1a04aa035fd85c44e899b4e10c3ae954af578603e6c0bae9f52d2af1d283c848f0c5f7a7c41105c8cfa83be5d611ce309c7d7697e23fe4be041107b3fc96ea29d2e50e25873fe1025187f534e89e56b3ac7008ae1716e97764fb\n\n# tcId = 21\nmsg = 39333939363131303037\nresult = valid\nsig = aced2477dc9a544a6380c5904bafd0c3ec8a98956c74a7f5550200b989ed8d6983e2117faf75ab0e7df1bdc3eb162930c0de770f3ed9faeab701425982cbb5a32cd515887f5c24de6e093b4f03f49902fa9c5ce7d4f3cace1d6da9125a1441ef78e15052ae753de4ad63cc05cdb8d75053d3f9fb74ae99b80bc4f754f0efdbf2959021cf80eb1a74ce9b1f3268818ac382c88fe6b542c3befafdb921ebe7e7a80def249b27fec84d5f2a8d7ad99e1319f39be3472e4915638a3c4b79c7328134c3d88a29041519729c66348b35f4dc07011c644abb6f49d093cb289dbb31fe94dbf22ba9743743902319f4ba119de877ef70606ef09c142e0e119850f0d5e6fa085d2ea1743e02d2c88d423840c5da409a1e686a986b08efbd422f8b0f3c1414a1db0f2f8cede003dbf3207ba7ba63f5e5d736d6be66b3df096048debf5d36de53adc916d6b90636c4a93e6064eaad5868bd4f1193fc1978963b07a7e6d07fdd4e0c65e4ad755cd6a81d069f31db15e89d6b5927d917695b2a9bab9c274d6bf21ab7a6e08b99d4055de8fea592b5190732633eaa719fbfd6e8dafa022cc89c408e57885031a9203baadc4665f3bba12cb120948c73f8cf8dca4bab83dd085b2f60b914c8646f4199121e453a4863813fb06574cb8637deed5e951dff9ae3b6c23c4133428db9f9a2dfbc5ae6ffafb89195164a8edeb2ef7c8c39d16ef337360a\n\n# tcId = 22\nmsg = 31303837343931313835\nresult = valid\nsig = 3215a7229e9aa9674d10ce9fa2a604976b737f6128a9c9ea76de8ec44f283641142c44432416ef7dff5b30afd778964d320972071a67c80d20262c6b1988efed0a82d82dc085e8d45a5a53e07771a014a116467c3c24e61e37499f8cb917d3f73e4f69857327966c577de6ae117a2d48d0a225b29374d3f6cfb5a2a69860a9b428fdd453e5003286e2727b8404adb2ee897bd2b10c7cba9071be535566b65637a055ea73481fada4f3d1279d8636695c5eb3f300e2b8d13b054f6ccc542c4b627f694329fb79613e28cd982a12514f1b5120d8cc2ed39d918a98b279f86248a02aaabec7eff9f84746df8b960c27c18d96c57a79d368de98f5d800a9b45d07fba6ef3562f4cf92870f41dd3b2d24171075dabd3b743373043892fe6533d3305a23bb84c4972d450e54d7068e1762ae1a445397d81defecca71a8637b88011bd3632301a41416fbae53bc2bdaeed34431dcf2b321a22cba5ca40ce8caae5e3e65661df75b21976c7bf3a4e59331cd22a1fb9d6ac5b1f7a15d4f9c3b4a061dba9b401c4e2f113757602635ee52142565f99814ae0322c402014fc9f06657da3b946c6d9a46f8c16073d5ec878d7e4478f6cbb01f3f8e3a0465d0cf5f1c0eaea00feaafae050b58b8ce2400af131357c7a2bc1b01aaa749907bed5ff4f43de8f9353b09b4edcc09f6733e901b678ee8d229d1df64e53544e9ed85bb85cabfbaf8ed\n\n# tcId = 23\nmsg = 33323336363738353030\nresult = valid\nsig = 333d93bd98848eb0a6bf8702996022ce3adb8afcc5f00812a0ef9693a44362f92e3a6d6e3526bbe3042ac11f42f0d64c0e40543c8f29b771923fde7d7af07b5fffd537742c57cbcc313231acd123f95a6407749335b7e0f6487bc00cada59b3b4265d79bcb7e830d33c1849106c01de1db87b00bdd68ce9ef55e3bb00e3ccb79ca900975f4d57d9dbdc105755e8d0e9ba1d953c6de3651eb1c2f0da3a9a2012039fed133b04103cbd1fb2baf08139e9bc0b486e43a2a159e4f2847379f6df72ef0697f7b801c774546e262a3e787065b564d81dd403e2784d350d322e3bcab396e4202964345b7d247620a9d10cf5ccc14bc2d092e715ee354438591edebfb75f1e2e503a2b46a7660b1a9b94bb6c2786257f3af0d254333ebdb7aa979e1bd56882a896ccc5c876e48cadf117b5c2889be5d9c76f31fc07ee410e1bbff8294e86c98db68a4f7a9da8d9959bb1e03180e609e553b11855634b7f2c8732f5da03027b958e7e6341054d4dc8899d588823ad31c5357d1dfa5784f3cac8783eb7a41c9a9655745cfba09893eb6280e479893abda38af66e72290439f1309642f955ad73b9a053c46dce15a85d96820b574be79aa2cace5d9b8cc74bdcb6df69af1e803549a2fd61c9087c594c4e1413fc8a9ca227e85d409ec595efff6be9b9f258ed38704cfa36f3a8523fdf2a512219deecb0db5110283eb126d2157f5056b48ae\n\n# tcId = 24\nmsg = 31343438393937373033\nresult = valid\nsig = 27fdf556c2cf943d81e8fb9eaa7954a530e639f3fad8937759ef1ebf4a0fa8538f184badb3c707542c2c677b4deeeeeb74d0d8b2284d26208bebaa2cf3c6ab89ac6adbfe30ab21f2c4a22efeb08bc025b5b8aaa009a4fe10a18a8bf3cb3f64f071b5940a8424690b2f86f9fa0a2ec34b3189a4e64de24dcea69511ec7b42c261ddf80c2d3931644a70c0a25870ad12e72c3bc9f0ebb89a81b8bc64300fe4f57b82bd90990dc33dad3f026bb3350ddc86661d1dae27a1811331b6ea363601d8665077070076d710af3599c838d4c5b90787c1ab61fdb20ee9f9a9a5242575677ea4e12189156aa32f7a474be1a361f49ae1542d80226406264ab4ecb5e58277166cccaaa2029c14ca8ba4b48b96d4bb75017d8de050f2bd2a9230adfa263a17c93d00e6539b884374ba8ef4479a59a510692efb9a3a3861ee2f7c23951bf60be04cf309c23f220581a8041321f73ce14c4c88a123312f603b17a6794be50287495849b6e4513fca78222f7890931fc91363a2d61919383920226fc8d7a6e35c6be94da6cf98ab3a8610e6d332c8b7c8f33f7d88a51afb91b94f1ec91d6f91b889d160e568410577faa0fdd5cc06370fe0d599a5b80e626cebeeb21a2d43e5b983217adfc2374209dba27f1edfec6a898d7583cfdbbfb0919ac3683a644261d4b4ffa67d1e4b0bfc9ca618dc884fdc3dfcae04d6cb0fdca523637c731dbc0b77bf\n\n# tcId = 25\nmsg = 35373134363332383037\nresult = valid\nsig = 84044d4d09140944e3fe1e5aec8146478182e2f13df2f27aab9fb4a8323dc3e25ddb80847bbbed2357713f8f11ee4167681814b7241c066e76332a0a87ab2e644277d7b3c9e247785ccc0e199c918aa90904f826fec797ee985e9dc86f1785f5973adfd3b2dd891894496b5d48bda3150224cbe8ad0e812b704612b864d3c9c1b0355b6d411e113769180af4a6a06b5c3886cac06dcb14be1cbbba68b5ab2ad85f830b19ed059581ac18a06d6c68608a0d95c679624f02966ee21a16f045ad6dddecfe52458e94c3e841640bcfae3738305666ab128ceb9651725a2725c275ef3e1dc2fe95b291aca73b843cc9024deac370eb4b1de1f5300a8353cf5e56b4cf23369f08d82bb099ebc588a0612c0b855270888a3edd2fd73081e54600c9a7a85d51bc9f6236620886fca318a632cbd7df6d1a677727b0db2713529d7e49c2c6c528b615e11188e9b0078e20d7f4edeeeb466c1baf6853696c57947f98cdcf2e96d7de82cb920008000f67eb112e3b662eab4ee5b5b528abf3604cbd5161e5aaf618356315e1e828425e6f053c3b0791d4cc9e09b9f3ec5fb6117a5e59ccddbfbc959b1fc504915b571bf625187831d5e1e31b6d547cda5a9bdf794120bb7e2aaa10f0a7d6ab3430784718321b8a3904e556da6de418561f4ce4197db67220cdec2d62271b404b9f8b235f93a104707331eff0e08feae6ebe36c6bdc02fbe6da\n\n# tcId = 26\nmsg = 323236343837343932\nresult = valid\nsig = 124928ff9607318486e427cfc88c6077f2b078c9e96abc1a6320fd44c166abb404d44de0953e550dbb83f696cfdd7263d3e7dbb9f0858213ef6ef884253729d38666398866c114bdcffade0540fa5c4a5d23ee78f3f26d275da487ec6053f869533640a023807559d1ebb6d7c860758567e40477585a761b2d0a29bb60badfccef9261aca3e8ade198ca3c661faba96d9a0d8c294de861e088c3329635e81af685f53f76de07236e2bf3645d42728bf5c64a1acfc00d0169fe6a5e68e06c579a7e801ca6cd97799f6b640512616069b074c7a9bd747473f236c071101c5c7026d4f2efbb50d2d869660c8b144bc8fb0861f38f06415ad7a2dbb24d942e13f7ec8382225c9de487fd3e14c0a2639e480965241b40b2eb9cde50abb3ccb4eb2ffa95299423ee9ef56332425464c5eefde29eff02c14878f8810329dde78c2dcfea52bc58cbf27358528b5d0957b1e7dd10efc31859b1f9d2b12e1a471f11702814f614d145eda9f2b49dbf67529b1f16acc3e511deabb5812e83a6b379342c17a391bcae1e80315904ece5a1790875c024f0dd139d0bcb23b05a6eed70cfd0c02e9ce96f2adccc7272d97289c838e52c3dc4ebdc3a7b6d2b12392fa12e23d0978c9763f3b0be72c436ce14fbf1caa5898c0e674036a677eed11cffdd425c52c61c37758c62a4e1ac6f59255f61a11515f0afaaf7a4e36e0052002a941b1d2e07de\n\n# tcId = 27\nmsg = 35333533343439343739\nresult = valid\nsig = a30ece337ac8a19be31d065ef3127ce6e996e8bdf57d752d11246b41cd911698198b05552a0b74370b9f5a001a56017fb79620405feedc40c817ef5b78b9b225002ce17b30f3668fb431928665bdf7f741137aadbd7f342643c58a1583e4d5db94887dbd693aa6d0c6b9caf5d17e0f673a52b75eab455ed273f93f32708cd3fb40df9866ae3c4a9c6d7fd8e0f0ac65da2019a4374b39ff9508d692eb3b7783d82dae287b1098489956b85ba5fc52f4c28d88ce6e8a899a9ee0ddf0aeede50ed0d8fa022ed97d34db3f98c949f6447c780142e47e3bc5c7c5716a22dab37275cab5fe3139ab822fc567d2958018e13e08b30cfa4194baebcc49ca707699f407861ffd8e0d12096a8e3c1318ea28501229093902ddba5ef7fc5d872396d0bc1062f088cc0901dd2c8893d80174826a13be0966c61b51bc2c3503d6e9d856511d34ddfe8b6bb4f47263617107f6cea82a95cb018845c6b4e7ce3a289db8d3421060a08fee5d9b821b19b01b7de26f0f2b0b5c437c54da03bae5774c08e14d9800da9f2b6d96c2b1ddaa2cbc95dcef3431e9a0f0b048812635062389c717badea01b05ceaa20069d3e2467da799aacb9c3001db84d6028e3ef513c2085dd14053673270abb139c4a2021a1a0e6349b4cdea13d63dfb2ceef45a18082c7cf3caa837b839056a28a911f98b5c2fd", + "9f700647ad1d0a9b3879d40ed0ab0ef8a437e8abdf\n\n# tcId = 28\nmsg = 34373837333033383830\nresult = valid\nsig = b8795f4caeeeb583357b81fefc816d41212e240bea508ff8dc3b7f668d016a82dc6e47766d0f0cf858f321284d27b2e04053623d71bf81e0dc2a2234367bcda3f4f3d337dbf0f29dcb459575884b57828bb0b268a3503edac4dc158ffb8c6ab47349d0b9eb491499e848d891aaae659397948bc54c09bf9522169915393cbe84cb8488e81236405c9d88911652b899fe8d9a84c4e12277fa752c6ec8652d536ed48cb726032409afa48150e819a9d2583e80c70fc380c5608f5617abd76fb50a967c86a7e8b965bfd9bdcc0657ca9fee1cf99b185b284e1cf996e8b1c2e312aa9ee732960bb9f56f882fcb89a1269cd89a6606c3a0907e9ee4672075ed53ae0adc7d95e0420c04a37b07721aeadf42d2536a23f99cd1bd4b64aed6b86b9c6767d12d845c04b5a24ae85f63f8e85ff15a03442fca308d854dfa1ea621d6259e39e49238b3a92bcb5a2223fd3d949e0c6333a80f16200a58521d66a9aef1a9843cd4e514e45b2e33072307e6a66560294cad1d61a103cbe4242b5877d4d5726498397043188a2b8043bd7d3dfab57bd598923a3f1dfdf42f74235bfc64cc3c8b813a2fd93bac3456a5d599ef7df1c53ead4d45245c92a1c26e9230109fbbfaffcb618f7ee758bb1d50275b58dd52c53b0469910095a803cf88ad8129c511aea159b2b7e0641e1be32c4eccd1ed17f76e88751fc2962d3b33946542976b1758eab8\n\n# tcId = 29\nmsg = 32323332313935383233\nresult = valid\nsig = bc9778eb784cbd743ed12e8fb75b84f7e3bfc1ed385ea432582429d85988686e462574959ae4279fbc950f1f3e90086f6997eba6eed80768195a94ee7bbcda5d07aa52ca456c0942e3651ed6465e39466184c348c2f66f12fd60d470ee706434eeb619119f7ac373e73614bd13956afcfb2bcbc7713850985f975cca0a422f26d05280934307ed1af6bc6544caa502b2f4cb489e818b6ae692f7f8419211a5a4c389b6e12ffa140390ab991ba045d2cc5203a18cb032180e5bac282ba40bd46cf0afd3304dfc881b96c7231cf9fba8066a9eefcb8fc1df383c8b9a6fd53ed75b9cc1b3f95b175617ddb81429636570599eeeefecbcf1e1d5ac87d40ff36bd6ce3929883c54970347e4c63e37b90d3492f31de90f085acfe77c26daf59ced624468b6da78cf74e06df42f5ea75f2508a790fe6ff19764c724a68a2f41eca820b8f5c3f991b101443429a1859fede52e418a4990e5a26b0cf9a0fd72bdc26555b026812e34ca880aa4c6a7efb10dfbcb906a16e9fc45b42d80bfeb87d46293ea01f4c190975d31378f810a53bcdca25f26f7ac3c1ca5347e39d58775b409099e4b4676ecc9f639f696e8e408cb0d98d9c9f28e12e1d257716fddfef42b41d7b16ffdac7b097c4bda1f1005b6732c00d1a70167ef2e8e5fca31715e3ffebe81e48fd74d62e7b857b523b093f7b742cd03cfc3a256df6e12cf1eb3e40365b21ab433\n\n# tcId = 30\nmsg = 3130373339333931393137\nresult = valid\nsig = 41e786bab9130ad3d4b39b783ba231ad3744be0ea0ea7813080ffb328922a8fc36fa9de54e63a5c852a5269cb72d00fb6e8c73a29b4c5cee801f5e033c300bfe9739f961e6e2f39a1974d7d6a31cc49651ffc837584077b612f9c5e3a2bb948eb467c7fa5ed0259a47d3f9c2047485beb178dcb49c429c1bd40665d4aa19a9b968550af7965ffe517b9fb62ffe03dda88971d0a6e7603420c0bd33a979f725ab91b3df1d6dbb5ca0585800190a1c1526023863666414567c4f3557776c940bc2fe9c1a82257c81179b20f356a02adf7004d2ee20f7968de988d3991d0db4d751edaced0748cb14e5a63e7907698fb11fe1a851ea8c1d8ebca09aedad67251093dbedba1db2aa38d7f6fec7d70e4db66fc87e05c6bce596d11a6d93f03f6b3d3fd23d6eaa7fea0a98fc87bd1f6a835a760148b2128c0ddbe181dedf21df24d22e9543269a2d990b249445ef7b59574e127ba8410289ca8e54d84c6bf2adbe2229ed980e9e7d67f600b34feef90f81296f6e42c4c1e0ae8649553545a5b857196ce7fc9b6c8d623890b133bfc921e3be2ff7b05364bc378f5c4b76fdc32c4bb95af2bca343ad4ecf16c8369dbe8771d7571fc1aa3090a2ef25783401239401bc260159b85fe1bb895a62f7a4774192f9c21aadf501e43db1eb1aab59d4814bc071d910bc171fa27466b6f85b44d218154ae9825f6ce3bdeccc3d00a427f40530b4\n\n# tcId = 31\nmsg = 31383831303237333135\nresult = valid\nsig = 357a46fa9ced5c078abfdc7c3df2450f869f52e78cbc3eedb1aac8200c6e88a7f40a3c125c5145b71c2454b800684bb0badd1aaa7fa88603fe6f0c0049072128f1f64b12dce27c535c010f62896ef16c7bc942d51b58aef102279c0fc13c2cf873d5f7324c8b66343f42e0099530d0137741925468221d5cc67ce7fa088be8ff91180039a751faf6ac2b7d1b077c61d894f5fdaaa229a3b6cc0bdb665ad53779468519b02e9bcaadf7cd6dfa9f851260603d5ac2cd83d7751cf0e0f3a548b17c8128d5d2341af8da4a1d0434112a011825d031607522b88ad1c68e5f2c3faa466d3ccdfa0b42a34882abc5e3b365200c8fa5fe5b567438b438554c5edd052774729b497e3153a1e0626081f09da04e553f44ee723e79b07552edff4d5e0219226a47e710fc185ec664536964eadc2b315c44511e00586384316c07434e6732b9a58930428dd25beb134554adb2526687080451ef3bd526a4f8ef4ea5b03416e15b522cecf411ef301db756f6421881d2eb178a916f2a519aec536568e58acc618be791e90dc7eefa8b7dc5ecd9f5f1b9d6c0395b5405c0dec6f18e5a1405ddfb17eb7dfe98ddfc88076ebf6a213a27f92c4eed913ac4bca710edcba06c12a1a12ce2a95b4591c89faee02c01445d3233f68ce52c6c37492930f03fb701082f2c3bc999a4f70be3b77e45c097779d62caa54b405d7b92728f0ed1724e4657e417\n\n# tcId = 32\nmsg = 36303631363933393037\nresult = valid\nsig = 2625de9bd8a16394d1cb210d7b8a6da3c0a4ae0ce93c9d806070b51e37dd10efb2026b38bc8114c1f9641e1e7048d41dedc298d20b46cf58f9b078d4fb2101081c4747c39d8277b5012256cd91794c1fdbd1b4c712f861613c9b5f1ed16bdaa5812cd386738669bc19de21935bd2633916ade87a0c030940767d7b40c9d604958e93efbfb6e926c925870785221320a4fc7d7cbdeecc4a68f2ee65b4256b9bcbf41ae409c3dfb1facc57fac69e7eaaf5a05a0d6f4d03b47fd6a743f54cde2f1e897a6906f474185068ef558673bfffb0c854dff1557272a4f445a0ef00aaec400da03cc63caa4d8e6ed8ecc0d13855ae0a4d27a7a6711bf8aa5d270077f7a6c4227a7ea5b6a85f99bf370538f6b42d8d50a2182704e813acfe984fb6328be30ecd7a0f9c41b93b1c3b2ed60ccff9d3e26fbabc06d526c40cd2f9afef43430424309d66704f25f780152c82851171caeff6bde11c0f6c95ab22c49364505649031e3104f1431b6f460d5346b9ab2f7d027f7a79a07871359e1141b7a1f4707033a99422528d76267c35891222c4ed239dde2235231a33771ae9c776492946f4ddf61c4729b840e2dcb69e6ba61cf1f418cd2420d68c4f59350438468e79bc8e64e16410b3559d661efe55f2144ab70d242964b69830332f284157ad178e2f6c13d8cfb17333b172820b4fdc59dc6012799ab84609f6ae3546f30b75572cbe9b94\n\n# tcId = 33\nmsg = 38383935323237303934\nresult = valid\nsig = 480b74783aebb8bdaaaca7a38de15dcec5399b1cde57e17738284be15f78c4e43cc88fc47d03b36c4d5679455293eb7b4d460d7972dcc8f0910a18393b1921fe21db99656a5268b373f06ebd17701fb56e59ca4ecccdd3541d4e3ddbcc9900cab7f5dcdae2db330bf22daf88c14fb6c1163ded71915c98c0bd62854474ab4fd4d8eddfbed4e1b9839b72b604b2d92d50192e92c194d6217fac1335905423fb67c69a9783f10e328c8bed496460af84900f5a4a09b2353506f5d3b8541eac68070f2f689b61ff37b639681cde00223bcb18ee684728c1711241b66ce0c82c0cc31b930b8bb38b4c77d1487e7607694b50732dbe5274b79669126fbd2b36c8a45acbfab7859bc85f1b015331e5a2530bb97d834eaa6425906246a0e431f607d726eaba2f60e1b02546c74390179a1ff90051feec8a1bb480971219c798e4a3fd3331aac9f872ac1132e553c0fbe0386d8af74959494f40b8cbe0aa43d38cfdc3e4c395d281b994de9f817a67ebac6f823c7fd100f95916143956b8c914533f0085d9da4870bda3fd2674e4e77ad21fae38d66b457d822b8a298d6dae06747f4bc22e0a64e5f6d7042dffb495be06a467fdf1516bbde2da1644b55eb8a830e3d1ea6b944426b30533415d0cca18d553d9a9cfd6aa010fd2cf02b90c794616bdf88aeea69d6eba50feff4f59418092b1c2a5a5cad600e5ecc18d2d50cd72105ee6e4\n\n# tcId = 34\nmsg = 31353830323334303934\nresult = valid\nsig = 3230da5932377b776053fbaa963aa0e3b697539bb8dc58e30c43ab8c949d69771faa15efdc5fdc33f2b521b03d4ddd33eda1f6674c7b53daa1a0e58f1c280a406e65201ecc9cb79d0af18fd1e99519d4b6cd627b925c1d7fadc23c1f87478642892fc1ed76716193b42b4d4f5119d8b46a9e6e1770f8ac8498e87f1fc9229b6f0f3c78394bc569adbfeb4ce1351029806ba1d0d09732e339ff0846cb4e7585e41e7c68232f0129a8ae8032d3915050a70ac2ee89e4b16d51efbcd9b7e79dd49ada2496a2a6fa6e7f3c62974531469036739f37f5c21647eb398e83f2be9fe5151ae23e9fc59745336d85b9b36cbbbba664a8ac743cc6d9f382acd4642cb9c62e8a313418bc3fa39d4568c040d14362556b66b04899c2106ee68ffd6f745121f5e59529a6a427f2b493d64c6953285c45912c2ab4dcffa55974605bd58f5b586502322fb4def479ff3dd62029bd2d87c120ef05b5d2f0bbca39fe9ed5fdc621149fc3146f8e10c6b8323f1847ebf0ccdfa6af44b20e2e775e7508dd9cfabc3edd5526848ccff9eb3a42f2cae2782f4037f712ed7d2d929b1d3e7824975463e0e16169f4e9d121235ae126615f22ca0444c7ff5eda1725efa3e19f1e587c3200cffeef61b36877f806942ee488b5e297900618abacd9ac6e13d8e4f3054242f1a0caba211c437db7836f016270d2eebf84a393c0a8839abc3322af0b95434c5300\n\n# tcId = 35\nmsg = 33393635393931353132\nresult = valid\nsig = 5341acc50c3e51e660fb0d7e7557f9d4ae6ba9fd3f4d924d1bf8e31b3d86fc5e9b7923a7a7d13fa965c99aeb6393cd4b51010fc8f87e91b647e15e5fdd3d04ebf537145537ee3a749cd9314d38ccac0597ae394b8eb7ae2d8dedc626410f61b68ed893171d234bb739daf06650d6aab569ea43ae15049cfc0bb4cb0edeef0a74393801a3ef4c84ee11631adde15f19584297e63ce8368b1465151d392f2e541db4da52b34541a2a1f56176d5128ac16fa86fe28dc54dc0468e2baa6b60105aa08f72ff18833cb2f62a00d8f168c8f8ceaf453d2a519c69751c449482845ffe7666fb07e9a14ba1136da78ce353f5a487b4a4", + "a2d14b2cbc3e85131950871846a17fabe16538f61b560faf5889dfa5b6c357c83bc95abc559824e4842a3e1adc208121d1f2723fb9e19cd22f7ee67d82a6766ccd6ef71046e2e5813f16046091d542e908d839df3ba318af995d8fbfca0969956557a50c4b2918e34ae651741c2fd2093fd935701a4e4bd55884043f88a711a86596812064f636fc5b19aed055da9588f13b73f5ef87038a20ba96783b36921ea108eff766fad83fffae99bd420c2ff54fb1220e2f8a93cb800475ea8cdb68e956cfb986f4c109ff7f90365c02d9db65a5f3f925c3a5dcffbc83e65eef0d6cffa0934b08465e9bfb47c55372de4d5255adb4fd66d3d349615e55267e8698dfc1cefbf14908d737b56ea96e3a95e2\n\n# tcId = 36\nmsg = 32323838373332313938\nresult = valid\nsig = 37a64cc1a6add0bec1b0f8ddd09a18cd97ef622e90d3146abd8f22fb2aeba3ec8f310a71509be78b63e20e4e90d604207b3c1fe8c666f0c655061bba49220755c08d43354c19d81c21c344f0d91150bca3c737d75f3bf74cadf80561fb30b2b07ba70530aad6586e4ad305db2682af5462cd3e0a1fd0f24913a70c275a42f858e8f6e3a4d5226a8ea7ca456a9902ae7855243432d1ec69118f6b806cf59d171356c638ab19f840d0069d34870fac0c15ab04312232b6d1f6921a1346d56b49cf57b1640cdd3aaf9853f5c90a80363f8dc561d4408bbafda390c8f101c3348ae62353c0631e02eeeeb64f57f544b929290658b8c41eb282c12f89c4c0f9985f7b1860234fda19d8e89e99afea57665ccee286dccd45725aa720389bad1be364717e6e3c6786a68600cd89b0feb59746c9121558c7dc852480b24aab1fd9df39f4fa523e0928c6e37445d06428ae403118078237125f8ae37104bf906357dadfa1ca8bdbd8c97584ca8ffd24975392bf63738ecf94500ef0a45793469bf71b22f7b4f85054fd349bf1ddaa9b3f074f8aae07805e225dff34b51653c0f15ad1ec25d4c8056d6798c651d59c74090c204dec1127a3bfc0447ed9d62d74d42e145e6ec8157fdb35282f1c9e0b76e46849db528c0bdedb37c8b9179e0d0743b2619e5cf192cb7b107e17545589f750e6dd7843f94625ce29f45e1519ef8225bad19033\n\n# tcId = 37\nmsg = 32323330383837333139\nresult = valid\nsig = 9144b6b031bcc2e5f3dd39370addf3bee26f9280b0c10ee13f022953b230be29dbfe562dd83d9e770c0670d074139bfe57f46b7c21d2d1b6e8087fcffdee8886546729d77bde5bfe6180f61f2c64b2d4923c5f18dd0fb839a6313020a7a885a75af0722c680a30b5e3d9cf19375bbf71b46db989afddb9e7a69fa5936d80250448ea1aeb369e33f1bbbb23bfccb25ef8f77ed87f76090eca682e2b7d32db813556f245fe6c23ac7dfe3cb370eee8b6bf1c02efbd98847ba8da6b175e6c2e8f7dc17a0cc21d776bb24c4150a439a2d9eda4466f23329b3abba8d892b18faacc85c8721d825aee636083ded2d5246b57fe4fa902923e38ecca5671a3c6aa26d316b195d9e1722c419d8c6d8c0f8dea9bf5317ef53293aaaba09bf22dafbea463dc527d80f483bb06652ee5eb160d5f51d6eb48444982725205eb96cdf9deb3e5e96e7c338237f83a794b0cab81a46afcaf986311c34bf7f5a8e9b43b97061aeda0ca2b13c5b3554e6f93cbf5843812d98c6b1972e2afa436ff3ef0ba36a469b7c586b1d5ecc52f6fdce79acb8c39ef673254b9b565819cde45569a60603e8c9f583f9e9790c6700188a6b3db41776729038ca8d8f1a8318832a91c964b74465cf3595c7c9972d2bb4b530e21da75882cf01e55f0fca4954ce1b7ca5d73f1da6d2b2dadb26a280ea201bc1e9a40da15f9d9ad78a5fbc50a5016741789d624fb3887\n\n# tcId = 38\nmsg = 313239303536393337\nresult = valid\nsig = 100622187bcc898e87f6f272932a6b46756a0984294ac6acabbe7dcbc91b5a917c8e66bb1b215923887b2f2a5a4ed73aae181b9bd93bb7044e1a4b4ad7f83c14614b9eb1bb33d372fc7af70867868c973dc937060e7ec6464141a0ede77d25d602aabc2a7498b20c6e8866f88f01baa39d22047d21f403b79dd325e08deadedac1d0663a6997e61ebd34bc0facc1ab6be2e885b53a76b34081d9f816542afdcfbbce026fa8621e15e88c3829789f0aaef787bed709ae709dc8e950b2a7c6246532d7c80d5213f0f3963fc6e4576c0be0111e491fb6e07a3d7726ce78b8016c4cb84b043f672291574605dc3cd06f65195cdcfeff14851437a04a25e77cdfea8249a8025c90e3ec56ca54973e96870c444850989ef28a20227d459d9de8c76000cc0d5bc1cf8bce85730d3a01a68f4c5392fca2b2180781d27f6a23e5e571307a4ff3747af226c1da1e9594c68049cd888cfad31d854ee695cec86fa234856ef129236f9ec7525aba54b353b4e1b6bb8632e4ed786d63c9ba3e8de333ddfce5fd97758692c0079482c0fc6b52951af966f38554732a1aafdfa04a77a7b76419fa9ea60dc108d5de7895d562e78d9115c498f0ecd8bb68861a22f8cd8b47cac1210d4362c404210763df395e159db96897279664d84770382c2014dbe19726664ed36f61d2e8e4e1e7e0621bb5215302fadca96db6f0d79e908050805990b77101\n\n# tcId = 39\nmsg = 32373438363536343338\nresult = valid\nsig = 2bbc4d767cc945bf2c29d98091370cc283b6c0a0385f2308fa22b6c87be478574a82397fedd9f12a68e57d8a8694c46762d989f3ea4148da77e220ce007ef53415755149030f175edad2ad35dc1c16c163c79aeb5e5406bd9262c286e27bc723106c8c2ff48acf0194b11308b700493d0e3d3caefe743e6b23d9a9150680b962ddd1a98e308c4b6ebc21af02a37fb451831ae8e22173ec8b78b9d6d8a85a4ed13b9546faf1fafae08888202e01c737cf8d50b2f8e197db72262bb0fd7a5677ff8934dc20e6f8778bf78c29c0381ab8ccea24f98dbc32ae4255185e817f27d235c1d954b8da4fe6c04ea6530ee543b60e1db17bf43ccd3abfd70f0ba183ae065f6464bb590d6f2c459455e91a90b23c46f30231a00546d236c9a8d0a495c322a73dbc59aca82895993bcb21167ed5ef11c36c6f8a7db09d80f827e36d5d31f71feec8c862d3caf837a940ee3cd98a29887959b02b62111ccd6cd13d7d569077fcde4f6a48ca07d0efe80473508c1b2b10aa98eb00b409126fcb8b8c172c0ffe4465211e31d8af6ebec91a6a2f720bc17f064dd3782b0ee6f0a64e711a7c7f3a20ec5c8a1658d75f48c36a6a158fa7400171de91e3149e5c09d0bdb86f34b98bec418f31d982da52cb995c2e3c7c6d15fe14487e033074069f7d4e9728ba85558efb48017e4d4f8353055d6a4612655c5171dbbb1839acdaaad7988c1a9aa2e967\n\n# tcId = 40\nmsg = 37353833353032363034\nresult = valid\nsig = b9f142c4d82978b6d25446a8d7633fbdc1cf4fe41de210de3784c9f0030e07858d992ddd8e21b289a4094e6f612cfedcdd1ef2cc9c10ddf78230f0ed2dfeee1987d47b45811c2a44a0a1a1155d8e2877100797e6710b222d1402e7e4cdeb09b09953ca4f5a9e49eeabb79cc4175c33f667665fa2713bb589fa54d284f544fad0dc09a3decfcae813c1e48d0ae5c63889d00905f8183bba916bfdb9de548ae807593319c866b28d19c5f09c32f50cdf782439a1781f9c1dd26074c48bfb44b4b42d7dde4997cdbebd74533aa2bed5649d0176a1d56286fd492048e44b180d8374a9f5e0291edcff5ca6f4b6ee7648f7720320b4bec6c08ba6eafa55da7a4d176cf4c1764328d7a4dd33a5130687ac9a00395cd3c5f6bc6ef1dd14301252752a37414f98d476018654e280657e14d9d9db6785497b1d666bc22062c274da2cd0858e29c6d1ded2d59ff8a1f71404e117050f19f07bd58e98e082d2eab41d3313db4a7aa04e4cf572c8cfa1b41826eb2965d8bf8994715974f80d810deb67288edbc5d9c8ffc5e43d500681324300c55cc056a89d5303abefca46933570267b25583c676ea2d05c5768cdc47f1f45e2b4ce5ad06a1f59d1a13d07e44a38ccfeecc4e86ab76b3f12227efd81bedb5a4899c2541313912a91e907c09122be5a41c54cd4d2e51f32c2a333ea66bb3e91f7a30c2bdfc6282fcb3593176e818586d28e1a\n\n# tcId = 41\nmsg = 32333237373534323739\nresult = valid\nsig = 4e4d0945b118bdbc1f7e01904a5e99dfe7b83489a07ba0a626032e5b86ad6fd3516b1455fbb67869d2b4ed1e85a5387bd2a430432b4e6c5073b81c241352cc1baed970d05f68459d9b3899b9e171455b19d9fb83828644f913ecfc403172c2f615be8751ac083d906d2b7f62b8894ec786afa3594df67ac4f3ae9647fe712a20a13ea5e980e0cc1d57bfbfee2c54cb8ee7f5c73424760e1c7819ae47e1527d0eb326f6f00ae38a16a19f1b2abb4c6e0b107c1bb0b4252f4bcf6d354975af40e5eddc537ffb6a64570edbaffc3694b6c92d8e82148dfe9a54ecb101b130a5f9fc6d10f20d402aa9964308416a2cc35d45676ed8279af31b0cf720245378d7608830340a1c2704ae2168358bbd748cf0b4b4a474cae2c88af8d7b709f668c3dcb42868aa44d69efa33b5b9e313086a65facbb60699918f2fba7c333a10082497f563084e8b5247837f46ddfca0489788a813749ac96455b849f8f46682fbc43a995d66b61f089027a4dfd758aa7bb35569379151736097488315871a665910b90c67a46c4b3a7c9f9e6822d8727418952037bc8299397b62f3464b14005f966ff7e562b967adb4ce685bed3ae3fe9cf21de851e1463214446c1e7d2dca710354533ad03c99478f3e199412b45e18cf0e8ccf75d5cb3ee2e8df5eb7c9989fde7942df9ab44db43795e5b969a31724d0ba80dea62adc63c190448435699e2106ba99\n\n# tcId = 42\nmsg = 373735353038353834\nresult = valid\nsig = a31aa9ee1f5a0304ad55384b6d2dc8f36e834b191d11af3161b94a030b13d854c67d775ba612c6aaf8d2be1390ea278babc8409a4ffaa8ba2a921a39344b7868ec9edb1e7f5f268a4ac487a76f3fb72e48d17116d69ba5146988056c864843d84202879c2bad3b7d4692e42a82b631c19f26e6ed7c8d893ba18dfb92438e02be12a4ff40e57c174686c6739c7f8444b9c5313fa9686ca3a189ca70f9920ced387a97d7eedd6e4236ebc259b0681bf2b7d72d7cc22e3d8e93dbc8a6a28485f2777563f92755cdd9be8508c8a79115f7a3d3b6ff68120981830b409fc61d23a347ec14ecf157e34bea26d11a4c1d9236c6ecbbda28271d1051720db1b794b050cfe94c047ee5bed34dbabf1d13ec9918f20413da37adcb66384f6f553137742bdd3f8037c7b7f50083242616f94513aedd9f8f7d4437aefb684c5ef02121548f7522017588818a819abe5dce74dee7910ccc80cb99efc2c99ddc6b07f7aa17524b8a1f3b51712d0ef8faff38371b13e24aa4a93abc44996c29557c4c0f9316d5a61653d6917ba3fe8c3ecb87d900357e3bcae5c67b93e5441e8fffab1f4065e8e31ee3b7f5f5c137db32789913cdb4a716282909bf71ff4664c1cf893784832ba0881616f6a2d9ddc462ea630774774a4e2ea624404a71c5bfb727309504c970ac60b1ac551943cdcdd2af2e439f7720a37ca106e693ea7a18ecaf481194d15fda\n\n# tcId = 43\nmsg = 3137393832363438333832\nresult = va", + "lid\nsig = b243ae322497a9009b709fd8b4db0945cf655958d3201a4989279bcd06f0b9e879ff7545c9019752200856750ada1bfb023d492eb3b13aa9d4fa4de753e7cb3c261f742ccb79a23076068b53ff91c4f1a5cec0fe26adb4df0d28b2c9c700eb6a8b1410ae14b12030a7fea4bfded54f2fb10769e29596485f14fa0b58e440d4b03a3da9cc390d51da7f23ff05159a1378b81bf0816884b47ddd98608763b1554d15a05c535b4e2d862d236e58c47369337285fec82ddecd5040f3d4423050b08c6eb1250ea7dceef1d0f76934adefaf85e9e403777c5a3c1dc7d25b61c78e6e9dc7fe28fe3231156d058ee4d77248d31f061b87ff63c958e34c3a7db880a9e7f7f8607f5e18f9aa7420a36aed27e341f6202aa308e625db2c66a354433f8c0d50df1bec0147481780e0c19c2192ab6547c3bfaf237994621ca2e2a5def1813e9f5a31db8eda86a6b78ac298d6a468126a372939de76679fccfd7e70e4815f4cafaa4292fae6be941c9c6fe114d3256fcbf27359b8230c07767416c9920a39893d6f39b9523d87a963cbaa5424907a9cd2a6d2f2a8a0cce52eaec6ff4ddd2abe1df1ca7ebdf77407964fe113106e23e65d2fa8203f4fcebe291677a9262480a7a2f9ac24fee57813ca0a4cb6e76cec07c54115769ad3db2a2acf0697e1c00c431528d26ffe9a4af263b5b7c0505d2e3c014ad2483caa61592b98f3d616a665b8a8\n\n# tcId = 44\nmsg = 32333936373737333635\nresult = valid\nsig = c29ab02b78baac0eff29c99492b90af4401377140b9ef11e7b5f8f260835619c52b2d8ddbf532133f6051b1dd7768a3c46f4608ebb216d39437a94992db3d689f32ab82d225f5ce8d5c8cb9d55dfaf9ae17635335bed9cc8e315010796fb6b824cbd54d0441d9209fb5aa07a294a068cc7876a7caee05344436c0ddb49e75882f10239ea75a73122f7799eed71c8d13dc9fe72942d152c9226d66dcda67342d7740d342dc82b6e56f1c291822c06bd4803d27bfb56f453f8e3ab06c816f6238b1ab9494d00bb62785b709b7619c8e601e56a38db74e868ab0f3106cc8f529f12393742ea02eb8db7314a98fcfec71ce630a77841c4e6110015d5dc373e3498b9594ad0ff92e0e54e5dcd3c3070ea56c13a096618dfa1f1cc2015029d45b67049f6d13eaa4caf45521c4b43a2f54b552a8ba9488bfbf6df72b94dc5298ead25ef281f3fca75d2d7af966d41fec178870a9fba1c82919919b8323b405c1d5c8c57a659aa516f76f0764f68c8d38a19c4991890da00679cc306bd93c37c56593ddcf205a97e03f8721e393e0410196a96734f791dd3ede165c51bfbf6213fab3d0e7e3df377f271b1f75539d9eab4e05d1ee01a8b976b821564760d6342ae9524b4d7130f901756ee14f43c0f04f334f12c74375c9ce4f71d6de8cdd1d8fa5bf5c8786219dc043728f03dee4379ed4d53ea42cb8eca8cf9cc8c3fad34bb1a009da9\n\n# tcId = 45\nmsg = 35393938313035383031\nresult = valid\nsig = 679e642c924ed01bd07e7edd845994703b3fc010271ccdec98af34e982d34349cb0694332a679c27c26319b72c47aad6042756fbc80126c56a61642d4b2b3e517d2a2f11887c519b154687b0258e38c9517b7cc8753653b917de00d1c24b49e379aaaa8d3fcc22a34c61ea943c2cc89d5d8f4f26723e0c6bc9f6a4fffee8235b27404705b4a3b2a05fdd7dea72bed71221d258b54ead589b1a4c817412537eae62da565f256c2887845b2a5e8a0b5cb262a5ee75b912ed92db592d6793bdfcaeb6f13a6eff91c34d4532d5a82ab4a1612500450ae86db3d779b39ca62754f8ebb6006cbdac9509300c1e08c37063a00f74bd3072c5e40245bb3504c838b5c5850796125dd6bf80f5c6c31a44a8ff0f752591dc380c2d64f45c0f6b1743ec2a5bb11b73c2d44a407f640251d205144506c475060d7a38d27cb59a15f117a85acea81c24604bf1b52fe5cf59af11ac190ded3cd5ca872e498e3b2cb79cfadc0353852c0a990b2b8f9bbe5ed889947893f98fc11ca7e0108a8da721cc824b148bdb9d389552f8f877e64e5fd3c002cf63f1daf4494fe296dce6c0f92d8851bf5624e9c5eb3d3c00a9b15a7f6f7044462e2c9e49d282e506819f611d531883d3e2b450433ce253c1ec62af3eb47bcbe810598dfce8186a6e3eb1e9abf982a7f688b7241abed0d772bf435f79b77cd07eba9bb17d85a76a5db0be4f8b97e508639cb6\n\n# tcId = 46\nmsg = 3136363737383237303537\nresult = valid\nsig = afd9f21fdfdb2d13cc4c0d15892295645f14fcf7cb079f3ea2f5f5a6429fbea3fb218c2b173fa1b565258733b7c8ec5315afdce931b6a7b7411811847bf4b8031a6e780a25bbc568a491700f19d6980efdd44cbd6b421cd696117e150fed70de59c145a3091a835e8dcf086f9c8ce38f43e30149917fc4564ebe408a933323cbfb911dc06e9b489a79451355b7a4016c4327eaac7f4099c3ca502152dce7c807dbdbcf4d988df3bb722d8fa6babde785f6a45fd05ae72240d4f674a3cec4dac1c8c7faedb88ed10a2776769f217572fe06e258a4cfa208706deecdc86b1ea62a823bf9ceb0a65f5ebcbbeb92b273259969175f375d4377dfbf92668acf72c10bb3f2f2220d253147f4ed0f25c4a6eab394c07f5831796522c44c3457427c47c40219ccd6bc0492a694af6b520e41c6d4832c9ce9e4efdfbae33daa4c1f2c7f3a78019143b2f01f5ca343304930981bcadd2d526e79b5623901033bbdc58f6ba5937a8d7eeabe47b889b5b0d10a85b3789ee1f1716c3f6a59552d9c0760100ff598c3709dda142443908509716205fd97c7e417636ee522de791b4ad39ff58bf6dc2e7212c93790034ed6494f1e6f293cf60dec30d9b13fc331912a7a1765cfb74cad7c67f21197a274a8f75ab817857b8cbdf4b5d0ed9c0938ea0c539f81dcc3d7315fe415b562d0afdbbdce1e1eb8ee6a01c8042d8eff1aa4bb3b0d319ca8f7\n\n# tcId = 47\nmsg = 323036323134333632\nresult = valid\nsig = 75687fdc305d3dd6278c0cef3bdf1d62d7b5b047557170547d3021d546c86fa682e86def5d5ae432586704bd3652b2394563ae2a1bda25f3d490ecd4fe56117e963741a8cffb6bb81b99a3aea3924c05fb957bbd19fc76a076ab78fd6819c981d2ad2ca8c19b5a2a2bb2acbd864cf072f5d7929e6a02a14538c76442302cdd7c91e9fea5b650bf9eda222820471cf35a1af32415151996bca17802249b3a0884eecf58289695f1ed11a7e83e84641f1a218002ee292262a5fa48bca7e64c692d614590f76b4d08e7751d3ffa1b57bfd8708decb244e63b0f99abbb2c8c47ecfaaadb2a52c760add96d84332d0b995b7771775a926e4f4ebb2c7fd0676eacdcb261c5e47add0ab63c0eecd5cf9e24ca6d0264b131492da76f583e77dfabe06d87e2dcb97f6a089f1c41b594063af185dd3e8d07ec8c1ed03b4c91393cabd425cb1c220efb5d500ada045185b585189b2f33e7821ab9fa338f00c57c0963d0a7821554ad0c7d425e636c163f98cf329c1a458508e5174008e1db2095e9ac5f24d18ef1455ec40e8554bcc37289e55d98710e4ed764142c86e0a9e18666f39ad9afef55c623b7eb25c2599ffa25529a83f33808bff9ecfd2eb2b73a4941101b5bd61db7a48ddeb1e3dc77b8860234c0d14ff6109bb50b21baca14e3fa29ba2df7c9677192e833f71bc389e936d6de09caa718c9fd5d66fbc49000ace60000c1f2b9\n\n# tcId = 48\nmsg = 36383432343936303435\nresult = valid\nsig = 146174ae8e45facdd9de77c544fdfd8762f027a3bfbf551d1262e20e253ca2a2023d541a306bd077f1b0f261bc4333edd14154c6b13f80e1ba5a348b681e93f43f49d3910849777d244f941a060f218348e1f546afaf88bfcf5c9a2eaeaa3c459321c95e93cb461a043ab3f842c3fc5b0a94a057a053ff8da132aad03ed317d89632daf6890be864abb01a26ceddc1491e50041d274518719c6337c643c1a8403a0dcd785c8fb3f0487fa3736bcf7930a725ea01d99bcef4bb1eb606ccbbd847ce3e757417a64998478e22171293c684ea4b697dd9c0ef148c0fefeeb43adeb4b853c8ed9980157f6a688c7c43e0afebf189b3e28df1d23808f566a49eef5a40a5e34e6583f136a66a86028cc58ec2078aad28845c095305547a4f96fa3fd3836723d2d3b9e01cb224ccb3556e5a1b79ff1794bce2e23c921bf7fe40781f213e8359ffb3be12fe05f1d238d3283fb9b8f9997e2f1baf6acbc5102c193557eff82f27e46b4b7a11fc865148587fff8def4dd6d3a1643a1929175b0c9bcd9300f6fdc65c3546d36365cadd0733a9463b98d6dc2b1c2dccaac42b9136eef10c2e863a36337fa107c5533d07d46c6870a3e0cfe398df26f0c42f9c7b49567316dd04c811232b4345d5f069872a09a5abf5d8bc69a0a2cee79973abbed56ba05bd7d741b57bb521184e32efc10fa0549abb2dd7b731b38e2839212ae6e7fa9d0c9ca2\n\n# tcId = 49\nmsg = 33323639383937333231\nresult = valid\nsig = 5a466d26dc77549bab3eef2f1b8a8a35ca7701c346555f8724cc8a3f878178328b5760be49fb386f74c9adc32ce591249fd49f4bff33020f607b1dfd9d928538c886d546a7fa21f3813589079512813a9e3453ccce1e7a11e153dcbdfb5048dc946a1ada3e6ac0c196e029563fdd953cf8b70e241cf884ac2a84e2044c0aea5acacab6aeb884ad8494232366bf2060d21848f3f94bf8273af10632ccfd3694c2486719f0dc25f7c561ec8a0fe32d74b5f914ce3b90662adb057561400f625cac5e8277aa691b6f43e696c044ef2890877e89725686ffd4122698673341c8afcc9ef0402ac9c5702de6ae205a16c6b13486a4958ed202a6ffa855c2394b1759b3266d5abe9e87c5c4a2e2a9fe7f000e2d95b0d6e7bbbbd70a27a8f7b10c8b90f07cb5e56ab65d4741308e76bfa1d3e5e2f87e6de199cce249138609b4b839151bbe32876c0d32c777e173613be161f5f9aecdfca9877cff6a4b067a253bd4a71435d6413fc5b8f9913beba7b90d140ef54babd942eb89ad5224413b7f4c3fac78a8c20d4c430deee9124467287f77b4634bb745902b352b7d3488044fa1cba59cdb0e68c44aaa3a07d5ae846f6880bc65194a7df3aef0bfdaa92313a23ba7f28c78ac68212dad80beb562a70bf8aae3a0efa51c653dd5031c40554dc96276be9e0ad8ff0a4cfdec5a0e4211bd161dab69df483427980f3ca1a3e12d56ece7a5ef\n\n# tcId = 50\nmsg = 31333837333234363932\nresult = valid\nsig = 3b08c38ba55aeb6803801c01f89df79d7aa3efb698ca66b5a9f55b9e52ef7258c23959924e2798c07bd3f0fd6fbf5e1ca3e9f6f9d792179c35f1f7108912ebfa23548668948a196f5a02201aa1e02099ccaad7a14b7f4c0988dd5592f9a2e8cf60471eaaff689b25399819a59ae2df374fc8e448d59bb494717b3f95bbc9b23021e0a34b77d3b9050059999a079911935a5c6706d55c3432cb6f709e4eb68b6d40caac07e1b2daea7a206e5b7a5c81656013c1212ba1eb319edf48bbb49c2377559fea90d9548e64c0bec9aeaa217f2a3296e68ef11bd5de9a4c3fcad76a77ebbfaa286ba64a7d547cedb032d35156b4f642263084c74e6429b6afbaba99d5a3e5c950b434390efe4c6b5f207413a3136dcb76c11d35bc403cebb0c163ba623cadc2", + "a8616ab7e64d315138e8d6f2baee4722cd42022ab35d178bc589d8757409b3cb87291d69f2efdeb9ebf033a06390a8c94131b55dcf83266610b417d9d6f3dffd6670f5a1162f93fa42c644968c57ec53505c7f1f04054db9b4c7079f6a62b75180502b344d3e961c9679e9c4cd5b99e890f5de3a3da56e522fcc9fe5384430871fe8425cacd0bb5f2ab2a4ad12c734bc104dad03086dcdd7531e83a41da218d04f4d2e1bd690edb6d8aad35f0bf935edfa9aba16f17a0b0155fbd1170d2b1aad6b7333657dd77406c0fc7448726e1a3ec6a1f9c1992766ae64fb0c59f9a7\n\n# tcId = 51\nmsg = 34313138383837353336\nresult = valid\nsig = 32dbfb19fac38e2401a0f86fae82b3a2ce6393aa7ef84559ccbd9fe9577ff2b505a238d267207b6746544a0a455328d34f0128c51e347abee033cd5830b8e8d8587f43c99ba3145a7b24d60295e2f481fadb03c13a9055a8ee0aa207cbe183a4116c087fd0cce2680a5629b82e1168ee0ebc1ff3f2f32d22063458db9e72f0307ad7a4cf6570f400e5af4c8296db10642439fa224fe739d454c3d7e1f14149c20752bfd6ea6e4a1aaaf8814397c17458bc9d592bf8e31562640c8a687cba5258b5c28517bc84659f6f7712874d933f5d72bd0cc48244e45f60c217562a22688ac3324d4b3f3d06812b3779c7d5107fd841a0bd397d6316918232b30be3fe605f459463e7c4a4d3ee58a164d9e8b3b2182bef5310a3a9adf6355cb7c089e9e0e3067691f340b4fbe99bf43d88cdadaada66f908b5032030d7a2dd8c62cde7378b57f77250e051398b96bae267c039d09c9a64a1a1aa86f47244e5c50bcef9ce9f280b6564cb12eedd6e25cb14a17c5ab2fece54bfb7a8e279553819796b9f54db9d856df8e2a63903eb4b2afc56118e9ca08d2fcbb51e48cfa2c13c0d3dd3f9aa88eb44d5f234e85bede5ee4ec0f00b390937afb846adacf6413a39b69cd178429a900a889ae9d6baa9954acc39e07eb50043b0d2da2afc476c563fbb341993d2709a3f0b4f4730256be509966a2eb388be5e19c3ac002369065c5dafb0215ef9\n\n# tcId = 52\nmsg = 393838363036353435\nresult = valid\nsig = 3be0f335507b49da7afd6dcbe2b06624c120d9a0bc932f0005c2120cf7e8679046769bda85afea28a2ac9c3f2f84c44536e1b2548920e4cd9cdb649c0667887e9d2c22f89ad31ea98595e7007670bd07230552c9ece060b6e81ca9ec1b658acc9e4e67bc4529d236166f8db1b04975a979ea03dce8f8b27cbc7488ba29f7c721ad2591652bd61f8ee79756f7b224a7e6d3715ccf03b1ceebae35f86122a2d29e9562bce3acf2251071bc85427cbc194be3ab003264dca3ac125d42336e1788695c30163369e76a062b1132a83953239a7eafaf6ac878ec664c3c880c5826184cafad97f2e56e37fd99148e7f49979079ab66881ca4a4de81c93ce478920c18fa4d8a13f8f4476728f654ae64d1e47aca5312f16f3c21a8713cc7edf0574fb31faf924e6437d7711e856761bb63cad0378f492326216509f89911d1417bb229eb1b80295405d823369313c7db586ee093b73102306f274fd30dfe0f43dbd10ff4d6e56249b1b4e94030b341126499c6bdc4c8d9ce576f4b67a8d63309eae7bd610abaed353431b99cb01369cac1ab65cc225ece172797c15e4f8c196513feb06411a69da6390f5085411f3d7698faa6f27d9b42fd3cca1325f60581997f59a595bba4838951dfd4c914922a1cd4d4dcd790329898d98320167493227bdc5f99283c1578b0b3759602ec756082087db4cd80168e86596b9e79c352398e315511e3\n\n# tcId = 53\nmsg = 32343739313135383435\nresult = valid\nsig = 73b8803ad08e4c6a3cd9dac9258f5605e401257226e742aa2a99cf037f6f709bec97035ff2f05068dec614386d748711d14d5d197116e6740db4fd2a683f44060b75170db4a4feec7722dd58e2b1de7f6463993db74fb3443d4f8a95637cd03cd440892b0786aad6e990e27931e241ad0133aea2c3c3627962f1de5e84f51073db29b3a7b0a78543a5d516de42190d2976359d545640bda31a7c7edbc4306a981a82c82408263401f0d3150739b477575e39292869ec3095c6fb19361f9e595548165004c172f29cbd2c64b9766c60c50d37ca10272a5464d2e5bc5cfe4aa00e3a7096ab13f1f4c9a3617739d084733aa721b8b4671fb05292a58bc04cad75594a9bace87b7c39adc4ed41d45047561d4d3ed4768dc5cea98b163c0901cb33ed38ccdc3057a220feab057bb838f632f571a859af40e50289f48927c71999c1ebfe523f354f282cf52d5c4d9822409405ba83f1a043f61655b310fad872a529b95af93beb44f6184c1a4e5a03ae0965cff663d0f86fd2a80aaa73ffaaa14fe0e9a9333f4035e19984bc8f70f2eb55dd1f9047786792847213326c63403164b98ba6699aa78ca2a8bc01a8f61f72df508244093989e7f42dbf798cfd39615193f53979180adbef6f9c9b3021bbc930f2cfdbd2ec9693b58c48fe1bcae2eee85c217d356396aaaabaf623da6ec9e571cdc1ea303ea46f92ff6a1506373f06d4c966\n\n# tcId = 54\nmsg = 35303736383837333637\nresult = valid\nsig = 878c929a51f3b16991dfcbe548023dd6f04071f12af272ba218dee01e7a9ef03954b96944844b74cfce6efd117eccae30a08616ed3e861c8008a62e657d7fc742aa501193f5422fa72a191d0d0c35d291135b2b4d5ef3b7c48ca24aeb1bb5ae5af7ffdfeea547b665360f0b8454a8b6176e7472b6f5bc83751bd2026a7b2389974df5f1fa6ac6b723125cddb2c20877b20d7811131b6a55d3897c6fe6f51184ce4fc81a7e1a27cf68ea7d09165756133b816661df4e0cf0d75725ba43e8cc1217c0c9f36dfcc48b3170c0cdd9b501f9a0d56028a97fd64e046422c0ffbec7418bc862319c97e3fbd76982c883ff51fdcb1989f6b1142602469da7b233d43f4bd4ec6469f31cd9dc4e88ab5b79ab2859127d56f3056dd4c8f874fafa22c3384fcfe4917cb025234eaa045aa04f71cd8822510e7c9aac87fcd5eefe96692c340719a943e7800da9b110efad869ddeab00049114dda9234322530253a51c8158aa33b3cbb4f627fbf22e51defd2ae5b0fd1cd3b381ef34666b2143f95539b643adf0d4d80fc0102c2eefee7f32afae7b56b1055ddb4d4d107a6772c7fbba366a0ed279b86c446123e93e59dd0a28b9f577dfdac73ffa3a15620519aade4e820a9f96f139925bc2d28b2fb4626e20a3740d14be4204af99b7c96f9b58e7420b23596035614b328cc24906fdbec7920b3a5ec970dc8967151d66d74cf086687f08cf8\n\n# tcId = 55\nmsg = 393838353036393637\nresult = valid\nsig = 56027ac715f84d90625b9328686db3cc420b10895abdfc268a79c28419e04cdad32c43d2b03eef1c668184a5f86cd3e2d19ec2eab6a9a7c939bb196ee561b78424aad717aefc088ccad4c16dcfe5ba3b077cc975842d25ce978da5b928f150612b48ecea8c3c6d2e9b66764fe546d8679b9457a612fd54866f01162d55c24f17dcaac2deb33d574b845367cdec01cf5493c413ed9fe39b57337ba66552089fa29d89ece7459c95ec78f867a05ba630948338e0f62766772e2c33d833b6cfd2bfc745f633f4090df27af41e0fc7104f50c0273459e192af9bab5ee32421508ee52d951ed93676df9a0fb5078d79ca8093b432216a2ed1e72e28bc9c8bf0e797dbe39563808add3e976ef8dc0060a25db2e812e89a857092d62908aa9a6754c4451a86e522749512cb6d022bc9507acc6a1a31651f84396ef912eb7d33093df401ce8d78aa4c4cb69dd31665f3204fe3b271a678d39555864036d268f2f5cd50d1d313a2488a7b191d702e2c38cc53ae01ca644922631ce517445f3b6089e7bc94a6c5a901ccc47cd61ef992cbdd97db1b01c0080db2d2f0349afe357ac85dc8e2adfd5aaa65135e5e3da45292c5f2cf8fbb290a0cb4ceafa552dab048c30f10711538b961ce3a0a6fe9df52703e9ea1774d39aab0e1456d8d7e61b8012d88f6e93ff5628a4b5ee47900d3a0bc634a0848b1691c544956f73ae060529dc80a3740\n\n# tcId = 56\nmsg = 32373231333036313331\nresult = valid\nsig = 61f6c2fc861a3fa3ed57f70c7757b93557c8c5ddebee568d776efbd6ee929473bb3a497b26bc401f7a95cddf419cb315b8ea4c0186dc1931be231e5ac93909c984a37be5a490a5aaf024de3a3a1823dc8ab25c63986f0b1fa9e8d32b34145fd06ba84f58d4ce4278a52cf2b6e5e141398122a0a1856f37e1c52a6c12e4045af214bc761a3d1b03d6387cf5c3fea781790956d70a60fe23355c02585e75df56876d0235753590afd93d0807d088bcf0d7c006c2ac8b0a9e69abc3b53ebdca6adf9bfee6103ae75d7f745d926646477461cbe18a5debe311a2eb03815ccefe6f9c2ef1922839201e8b89eb11829823557916e8c1072a4f8018f18ffb4172d76250943c5f39a3c1829b3a75c9c19fdf266732dfb5402a7ac125a45ccc90cdd3bcaf4b1fd1e93e8745e571b4721807bcdfb9cd95a79f0177fdce0ab84a24761ea59c7993fb48795b28dca8031226f2cac62e9d90f76040cdab04ed48ceb64e24da7deb5e16b255fcb5e464b1241de5f3b0c294373e8b57c32cd12015987c6df7ff2189614db810bab871e455fe935cd8cd2b282c686131b1b0ee4331a4d28fab974287198af800ca065eed9382f071630c0df89924864fe84ebbd1a990c51a2e217689c3a9dcab990455345ac785459348b5a1d9f6269cbf03ea1c00a474c81d48eaad11a5c12bd1252d9ab50d31f723727381f063f68c9d9158db3f112114d3f04f\n\n# tcId = 57\nmsg = 33323034313031363535\nresult = valid\nsig = c24f1342517ce4f4827846d7c372d284baa9e3caa72f9eb3fc0f938eb111779982dd37cbe90dfb3164d782839d1623be04f03026536279c1ba0cb2da868c8fbe52ae5d775e4a1b66a78d83aa228593df11651bf22e95ba9bc1e2a15916ef6df3a6a3387f9577200d46d585bd69176afc63e8861b612c232420a03f1276c589e7ef56c5627352988963643e7fb8094890b6b5678a741cb10716848abb4fa3624750f61cd2f1d5a072d471b93a3d243cc0a4cab1079aa5c68ed1c8767fbe8669bf513b953e421ccebd17341f8689f649db6f47b411e8390c7158d5dfffe034c5d6e95f01afdd524305bf1295ddec2f367677b0a842120c4c9a1428ffcd21e6d313c3ad876545547ec53cb84a63d628b68cde87965daf0fe55f0973bdf270d4144f5bbf29ae0187742d5f0c83fe22ba9972fa7806d235204ba099f5a3ddc8c14478fbaf794c098edf02f06960375c5c11b177933bf20527bb9ecf307cc058c07999893a9de62dad1b97dc342df7a6d236b8df152c17e356a29f21f14e62735849ceafb16466b488b04aef85b27250498c45da327798aa12fe42077b6b29d9de566fc18e2917bad20b28240526f53665f2aa56ca49228641bed4d6e6c55ecc0794d50fae088a2a44383b1e7a151d85bc31406b43896f72f66921d925ef3e0abdaaa7e76196f384954a257c1c2a71a1068e6e40e5b3ea23a6a5c66ebf304c73aa14ec\n\n# tcId = 58\nmsg = 33313530363830393530\nresult = valid\nsig = 546262fd614b171c287d1228ee8f502010ddb5e44fba513c40a6bb246d9ceb12b4446d989b7d33c80135ae01", + "50e9c02338112529d4e50abe2b9f7cbebb4dfbe48226cfcb4383d6baaeb3d85bf517c5f65892a2676d266c1f94aa8e8fc3a73b049d2d9b5281d3d5df7673e466c21f8adb85e765ddabbd28b8e853a9f12cfedddf2de8c2e3354a3b657aadb840156fb99f33392fe249e48bea33239005e44d6557d0211530c52b783edf96a46e1d4b0dcc9a49c0229601a3e4e77d61d393a0c4074011a324e614c407bb913ad20cd8622b120045a4233514076f01b89d3dd83f0e3650b95c53c99c8d09fa05a6dd8ca169b7ca05109421f088274d9f51fbf41a23074423c8a2f842c1fe816d34c11c407f3c7517bb80f5a791d6d1cee09cd28ae5b0ef93fe0493557a80ef3c325fd740903c42bccd4647623bf207f0070059e342432d45bf304875743363803d480821e19567f748bd7dd34f7a90c4173d31d9f520c2e5c3a207478ab88332fffb0214d930035ae51458e8368fc3bd5de531742f4192bcf1abf861be81e4fd6c24169917fc691369b18159ffcf8455c7d2ff1cb2f891d26d016e26a8b1211803533a58fba27604a0661a4c296fb511d2307fad366be047d46508b193699369c742d0a1c9ad5a8f46dbe758604fe36df86628b41ada0ed102f2e1517584ee4d3b946c6c6d821749372a196f63733ec9126c8b29dc\n\n# tcId = 59\nmsg = 31373237343630313033\nresult = valid\nsig = 4c8a28cf3e3b7a64df8edada86372b445756f109bce23280869e8bb206446553a75ec99f774a02d2d316d6d19b7338921fa983c6da3bf7942995ec36d86728b400e3b5c8b6a80952bea599be2367b155baee9d99500692febc3da9eb83426797eb99673cb36ea4c39debdede3f699b55e6e5700d4b86d2ef49145c311e61925e625f8d2d415d9ae8a188a097757c6b91b5c224a940e811176db36fd6d4fa7713bd12cff54fd90328e142105e7804e45f533679ea8cbe4d62fa460719469dbcfea282ecb2bb90ff69170d7cc7f7e5d4ade10f6aaa0b6f960aaf573b68cd0d14141231642ce11639cdf33320c2f93b7c0dba677f10d11accc12f5f4117da89cb5f7eec2ff644fcedb69bdbf10875ccbb90ad374a53527ff23928a20c048c670e28884e7ed5f68e4e170a7adcc7ef085a3648bd3861b6abeabd115a1c08d4b88dd9cb7ba85250321fd5f700325f88968d64353674919eebdd9b96303fa2abd1009e14154c362912b5b866f345d727a6e16b3a74661f0ce3b603dd9d86f46e8e095dc9675d9284cd6373a432e730c392d726f68c4a9ef1e4f1da45c9223f54cb1ca795020c0ceb1f995b3c15ddb221bceae5ec4cebccac147514d60153055a7046df63fc4f1b7a23ca6eb0c68f2f1be865f403ac491ec230856fc9afef556c79422000bbf39bc95cba10ba1973d0c3890a43b9202521951d9f7005aa2354e3cc88a8\n\n# tcId = 60\nmsg = 3134353731343631323235\nresult = valid\nsig = 4eafe90c9fdf472f002015535a5846345ece6d2c5990b0873669e5dfc4712f20a2a8583493dc12f0f1f922aa77ca414a6f739491fce3e886ce78febabfaf7b0fb143bf480409cea53de810070b95ef6f06c2e51fdb611ca99d16ecac3a6489de8dc8dbe603daaa12a8c528a40852f3b37d7daa86c7cfe2a51101c677daaab41dc2476c0caaef7f911bbe6d2251d3c3410279daf6a9d26844b22096f68b1c6baea9fd8513a4b81f74333c77e1a6f39056831d053df081a15cfdc8077ff6e4c4966174e88eee40d6762db816f497ac86fdbcd5e05f230b547ca06b657baf7ada083fe8cda5040ee7024cd87a38d418dd6138c2ac7c07c224f236c4cb8cc0b0754d22ddcbc9e7b1ad448dcd99931f5f5070fec57379cf83dfe6a9974f294ee06bfb5f7d5e1d345446c55b86c574ec5e6c87a84e1cde3826027a807a1351d674f0ae93407a23fc1f472bbf0dbc9a91781265d866d93c54be194d6daf3a748a40ee5cddc99f31d3bf7f198a529dc8918ec52e2c49516ca478683abff92d7c37462008e9051f8933b7278ba4e592cf9ecdd0e3f15cec8c4a76612180a22014e40c5e67b22c244183a714d879b4e5dd621bceb6f72fb7a2c9a70fb5c8aab42c9ae529018cba12e8214ba229c25de3d20e4ad03d67b531064f73da9c7956a714f4e01b7ec5b7bf400fbab6084c6f6e1956016f3cb322ce079dd2550f2d009f96e2a87c5a\n\n# tcId = 61\nmsg = 34313739353136303930\nresult = valid\nsig = 5deb38abec0f77f86d8e685082f334affae9bed923fd2ef6fbcad26c569f9f0dc9acd9a91a454202ac2160f3a48036460448dd2ce487149b52eb1f7a6ce4466894568dd18a40ab135f304f0a1ecef475d04d8623fa2a54466813e899d92e6dbd93025672b94382db4ae46e31be85b0310e00c38c7d59a798ac9a26b3499b88bd19d22aa00b2d4d1b33c9d6e1f9aaa5863087d9ff0d52c5a1a094e0da0af5a3a0e5a3b9d81d71a7020141580a63d8c95f2705fde7081820531577cc48dcea1a4db2a76c409f9783f37cfbe5e69f63ec9535de1982e07eadf0191faed3fb6c389bc263838cdc006be48299abef7a760e4c1b5f200a92282eecba8a0b2c1765435f9d5b098f93d3da779816c86f15d6d0af8037646c2825e90df0e95100f2b8f03b2717372d224d3cb5037564acfb56f8d3d9f3f79aecac877947818fae068196369592418cd3cd04fe80d69035a04050f3cecb57266475256020281f8dfbab0670cc60f03ae585fecd86e881cdf957970ebdcfd384bdf224d299b4de2f4373e2269be156ec6db947606496523b4dbe7d7520609f82cff421b99318742b3cab24179c563a84e631ead75d79b5eed30617c8fef57563d2170c612baeda07ae87734f12f43585b28306900c5ac461aabf9d32bc5ba8a4f517cd4f698a6b1899bfa0751a798c56b485748e0e53e27fbdda39b5c57b7a15060b025eb1e36664b48c1968\n\n# tcId = 62\nmsg = 35383932373133303534\nresult = valid\nsig = 89bd513aef05a92a16771282e95d28f3f2df41bf3e0eb85f052205fb68ad813f1e52f26db9e133e0915d6e6cfe088f759895966e4ffc603f08a1385ace354de81fa1b65f7d4fcbdee4e7a2e783e8be44d283060537930194b5f3afe7e8705ba07e8ed1e6cf3c8d3cf9433c3a450e9fc6a8ca8e0979f0db12e4a1a64d2c5565f96e8e328ac1125263ee441cebf493e7cd8d74746cee96498870b06c920887a7ed1bd4e6bf0102dc2a027024bb5e13dbd8c136667f30a78371bda03feefe109bd933716d1c26e6f04dc1558492735aeb0a4e556e985641f889185351ae326d9312ccedbac133da0e9b68c5e86cebb706d15ff9fbbe0b7f1cb8d60a2e47c59c313a5b3e1755546bbe08160d18be779d62a0d0e5f16dd260e42fcd62747c7129873b08ef58f816587e775f0c8d766e9b9cc02422bc6ab67c013dac244bc8969b17c12edf59453ac3da8d0e8d45d9c62dc27fe1ea6ef961bda589199baf3cb8908e464050e5b6f419ba216ef557758b357a2c8cb04810f9b478d44b00ce058d07f88a123eaef9368769ea92cceb52cab03fbb4dbdd4b7b8bc0c02058491d997aee22c5c04a57a079fc184f7769ec790b13d8db444fd0a29a07f2ca2144cd239d532c4d747eb1aab83e1451572c01bc828895fbddddbe59b42975f77cc766269b32b23ed1075c91357ac5d82fbe5c2781f48056849b41335dcd60427c02ae66552797b\n\n# tcId = 63\nmsg = 33383936313832323937\nresult = valid\nsig = b7c445e132cfd2f4bcc008c38a390230d95c141753588b85361b3b3d44c55fb07c248abd17212332e90e2dfed056ca72fa97769a503d074fab3bd81778e0115c30f799f1ae22e62903b3e9d528459441f128e0b9b7c57112abb2989a9e0441e8c328e12b2d6b7304e618eba1bb61ca84cbe8658f84798f3d5f54fa6a6ac0b389d12a14a2dcbdb54142aa8b571d5718f1523c05e12a46c065c74315eee0727a9be3833e13b03f637528cbd4b97b93eda3532fa461ed04ae542900e41e595996f45c9f083e1755a1ba56b5e48e4eb18f02d0e77083bccad8f37d432ce1e6cffcb3ce3254a128e8d2724fee750129875d3355529f8bfdd212efe10d804de30ad3d47f655eaaec3209b33bc87cfd13a2b81b81210b7b3442ca1a1a25963e9389979a5a75ba5468a2e077806df89d2305e1ac923ccb09e2491a24014e3ba22d7c141dd0a5642f9c7d1925d9d993270aed328c22d29936b0522330f3cf7c470e0d29e552618a5a9471410b3200bf967d9f27572ed52cb00d6a7cebaff85c939608d570d03f03f886d1c0c5a3c0a449add38cddd9e7492baa0d5207dc9d8a21a549be4c642e3573396f334c7680e5ad6c2b25d78e68730a61565874952a106e697be6eb832766d0672045979dd0633bbfb40c63034c845d47d9f20afab0a0ab5f6e0062a842d4dc84e9722aeae2e28656074187028b0463bea2b57f3bd9e11c4ebd1c26\n\n# tcId = 64\nmsg = 38323833333436373332\nresult = valid\nsig = c66f4a3475e8085140018aa928b82f998379e1f560bebd179132537cda3d94d033ebd1bbbee040c0f8729032c68c3c89e9061ee08f81cc1782738e55090af4a930d3305f7d94b54ea202360dbe2b222c488d066a063367ec0518ce4f107cc4ee227e1c4a033768be7914470128442aba0d628da691de2ee304ce40624d07a1343bb24caf641b1a44568c7e1b432a6ad393fd28be0458a65459f278a9561441104ddcde38155c14e684f7cf3c7f1a6b23724bd005192f4d1191029377902f385664c5e515624e694a2070d83893aafb88dbf55eddca32d9ad8de6213c977a1e69711dc67d384a9cb9145d177670894c353b8e24b8e3b0f152c2b0c1232045734ef61c24f4fe994a2e99876335e3c700b322e63b86b6a347e2dea67818d3d623e34bb458f2e92872224b4181eb91dd7bb3ef1fa4c8f58e682c8c148aa902655a7cc74bc525c2bad13530c95dfad47c3b04c5262c4cab47c37d7a011bde04b380c91e2876cf052cf294c39a9368aaeb7fe006ab6db8930ffb4f347b6f8d668606ba1542a010b4e7680291f423511c2cd56070f9df21dfd1428cec2083fa2c87ebd112156e47c758abf4aa5f1d2ff80d9f0959d4bba4955d793445cafcc32719e1c07f134696d9e176f8a5e8ea7230b733e4bf8d92beeff9c16e2a938240ca83aaccbd38a7beb6668eeba6d38afa6ed892825af57b15c03d936d8715bca54823b091\n\n# tcId = 65\nmsg = 33333636393734383931\nresult = valid\nsig = 4eb8a9a99f29927e600ff325421379cbbe06016552e6444d8b232327d2674feae72a9744b9bf461b237405c98a512faed8dafb29454e5011e9d7429401cb94a2c96bf3c464cf386ab971d7f0be6f62c59071a6384f1681f5a036d3e5af60a634ef3917ffd9595e77ae6084cd26799d93557a8dae375fad0b28417321e1143eace66500d045fede420a9144da6ba040050940d9809d8ce5aee62d52e08b9a1fd24c081a405491285289fae5c1bc9c89e9f700224e27f2564560e511ce1488cd6b7f124ac55f2fe54563d1d2e9c8ba3cff29bd8c91dfa9c000ce709414874da1f4640cddda3df74ae9367f6e2680be16a7aff5b1e1229c4195f9db88030b28c16cc6acc9a75ceea46fab7bb9687b2e95f9414092a9be0599ec1660fd7b2dc16ec2f0f460ce6579970d1a04c1a7fc2181b893b76367f18bc11aafc6aac1c40abd4f87cd8b6a7fc3516f71edcdb794accda2d2f4", + "e8b5b41f8bc80a34aa5ae3acc52e64aa1f1e8faa67a3d0676e67f904de98cb68ef9364920f2ea6e50fd918ee0a8dfc0c22f0a70034ec5620488212df59fb93e133198cb5e49c2a0c4c472ae4a7a9266290deabf8bf338eef0ece757f4864509e6c0f21f445c650d2f763d1ac47ff07da2630c01cad83eb09cf8aafcbc238f155bf511d60a3af710bc02b14640524986b00f0347ed17fd0dd0b05535580af9e0bb41fde72a907c042a09a0c310bf0\n\n# tcId = 66\nmsg = 32313939313533323239\nresult = valid\nsig = 707a88ab82f22de019e4843235bc3c5915483066040f11fa7dc7386d7e63c438eb82bba17d17d9b057a5a1438a84e181181e7266547774e9c5acd3845653e7e17847859c7c19f92c3feb8beb295e5af0bc300c1ef068aa1f9539bddf60bce8c42bc2e9cf261d074d6ffb444caf8f647d4fdd7bff2dab6144670bdc43fa7a02da09b800ed71dce9a931f1c47d9ca7a05896111fa4fbe99e96cd90b5432d686741fc63cf0e3b792f6370ff2572290673cb3afe10bf0cab5b9a6c971705236668927ac75087af78711bdac541b51497015aa482fecf5b111f1172c5922939efdd243fef2fe50f2340d56ce64a8131eac3d34149e4b09f10e1276394fa14228a16641a598f24f56327b04f33f47ff46715fefd02e6ff226ff0d6153019a1d337ebf5647d24614918513ec3b5dce5c19b9f1edb20abd38de41a6946bc96df81a4e1ceda56797b6f57b2e8abad8d938624a1d7bfd0c2b923603d85b71a59d041bbd7cdf03b02442822a8cc102268adf66cab432cd9a9838ccc3d9f0f39b71524045d8304a0af701426c5f911e6ec93657a9112a2d820e46807b43d7e6f12123d3ed9e12b273eb8da06149fb56460a2bffa1c1dc549c1e16eac373d9db0b35a965556acc1fe107a79825001ca189c7a171f9211fbb23be36c8c4eff4e3d972b7bcf682554fa5b54ec03187c008f31e51452410eb1dd28610414d7c06c41df1415e3ff2c\n\n# tcId = 67\nmsg = 35363030333136383232\nresult = valid\nsig = 0f19053e699b1db95d91a30c53aff8a73acff1f08556ae2584655d006f44047ef8f609f26fada69446e133a972a2d66533532a025a4432e0bab8fd35cd82d47a3843e972e8575908c8c795b11c809087d18b39fcc70458bb61264833b16e2594e37a979d8af83632d6c276b2ef74ca57e451f1388fb9584def70ebee7fe7c06613241608af0c050182a2d21be699536f7d848ec75b37931bf5658054e40782fe5d371c66cd0b6fc23ef4f875700dba54a5b6b46842a4d9f10e35c0a7c7de671e7231f3171b1053c2f4b0a126b95a16be815d6b1a7944505d0ff8f99a310d6ad81e8d4b34e0af7f49a0247c654a1a05f85e91585bccc42e9a76d3742d0c1fd228fce9cdb83a086cbc2178e9df246179710d8519bcdd2679cbb4309a3ad2651f11af7a601d8f4636eb21aa405557405c0d8afd82c59c8b04a1863ff2e2a715cbeb36ff386e3cc372a15c1a2ae3c8c37b5bfc6a87fdc5f3092c0847fda8eb7962e5245288479f8a4f4c207d9410dfc0649d0a3d19d7ee9684e005c3f442b6be54496d721f860195939ddfc48a960c65e803d30b827581ffb714c1c0e69d065ad5ee649d7b081ea1c44b8c332cc85a9c8d06ff45076e4490454162c6eaf8950cbda55de43f09253756a53fabde5638b23353bbe5dfb30bfafd7a638a1f28c6f3d950562329849303faee555dfc585ecb7c25e738e28480ae628a9f201d5fcc6b0ac0\n\n# tcId = 68\nmsg = 383639363531363935\nresult = valid\nsig = 2dd04c48f29bf2a05e6cce6c30f63cefbbcac6237c3c834d63e6a5b420a35dfa38a73a7c1c1bfd409d18d0723753f6b52d92d1d9bc0af73bd64b8f2e18095bd21324fe56b7732c767983390af0e1a530c9901f0fb9cbb8795ddd3ecfee57fe6df362ad953731cca8f67f155ff3d4f472f6e7d9baf8cbd753a1d2d608e97e727b0255461546caad684eb7efcb3b905e54f9a44bb29a1326a284885e78e1903e08202edb7b85ced6858fc65af6fcdcc660e0813f0cf6e2e0df30e92f5665032124c83338e4a45acf380cbe67fc02cea48e8581bb085e5f3e4b859161a21250ca678e8d4f0f948bd29656ed44a99b930b7c58a1423307ea653927572c197d0e953b568e340b04eefdc050a0d6a21007bc3155b38555897713fa39aeda9c1ce4145faf33698ef43325caf93ea0aa4581f02a317540ea66be2d3aa085e0777bca863f435673d7189ba73fee305625496e724c491d538df5356c09015dface1e971ad70e3ed35724a54c4fa0e615e67552d214cd97f5ef99611f0cec06263ec56ac45373ea28a01b831aa34dde5174422db8a70ea2c16a63212182ec5a85460cf1b23c58049a99fca24796bd9ef269476a20de0b91417743b0210882cf671d514214110ba341e47b91d55ca7a5a5f0452b10f38f33327c8943cfe3ec4c6f49a4da6ac0493f3c95d73c6a7d16848d009f0090034c50ef5f57843bc766228c5666e25f32\n\n# tcId = 69\nmsg = 36353833393236333732\nresult = valid\nsig = a32ce1738badd84ba6c3dbcf44dd182a7dd3e6e6dabf8e7057e50483da7c89791304093693f9fda47a6ff3bfcd42adaa727e7b8e74a4cf488f8111beb6187afd65665debf6b01bd90f3833112a7ad09a3916763994d182c1e1acc5a221b5aa0d3da01ac1b2ff8db99710d48dfdc1421f19e5f333b70d6dda638a35142582b485cb1f9cd60747953fa9bd7785302c16eba26d67f958281b5c91e33b53e7a506d30e1e06353c96ba71375ff7b628c03413692bce1433889202814ffc429c8179ddaf07fb9e1e70810e64ce91005f83f79142a8074894ea49f313bbbe25435e6814d472ff531bff2e00ac4b64097bc2bcad0f360674aaa2ce9882ab2fe29e5e7f5692864df11b4cd422e36cb9028f5feee93edd580d6dee12f09a8de6fb6ef9ead2b586f40b435643c770fdcc54d1eaaa4bd37f76ec8a65c7e49bccc5ac3dc9b17f470a7a5e9886fa669e9b8e5ba042b867789d0f448553c2f46f8b8c40eedc10d9d11110be68071befe123f254346433cee23fbc82c9b6c120e70970e596731fd459bdaab0113d9361207af5a4bdfac6fb839abf3b8cbae27330297e257bf124e11153b70a9b038dea270c99cf427acba886667edf4b8c2b97d0fd34b81749c02de9f049e414f12ac744184d45793e18d5bf318b159634dfd0dd7f94c226fd819745ae8bfa9bf50902bd0628c76344b84e99b5850832b309dce569c7f37d1645eb\n\n# tcId = 70\nmsg = 3133323035303135373235\nresult = valid\nsig = 7bd33b4d073dce391cb89a818f1c950e3954d3dca71e6b616eb35737beba12d945e066edda0694d54f8b2f39e4743f73466ba960029398c5a348d1f58222a74760d559c7e5f631fd0b895af5838783721829fbc235d7abfd36b8a92e520cb6cafc1a17ba8c6486aa046b9b63de8ed1dfcd99cd776e2fc8613b7e0c7c50b077f748b1e7bd2a992663a2d01dca15d4d967da12b0bac5596fd89112e4363db1d492573eba1349aa8445a5dfc3148929d5edc3b642241e8412de04ee83239c07022a632f2a86c036909a64c2a62a78225e6ac169d3cb43a51e1af9da892b7b7488b25c821741f08536072b97f193642f59801132a54139c5bcc73b17db7f67bb7ffec3da1bbd92a48fa742b1131404f8ccb035b69d195ec509a282fd9c421b5577e881e6eac717e22b14b1c599130fe1698aaa324b82790b633dbf1d4c30fca3bf1333da9ab65a94aed87b48bf6cca3d24ef453bd2e4abdb7e323961bfdcd8c30d442536280cbf93165993cc829ac58ce8f052bc70980d0ba906b3f57ed83bab45ac6615e839428bc2e8af9b444019f60a3029470ce1db83085b98aae6010998dc5622221691bb1779cb69d31230df4291759494e8afc2a038cc820bfe57b3ea548ee21e15830e26c2852161f21411cd3b6b9d48e65a4eeb174d353692f29e6194491653019cd662fcfeabcb291360e9c7444d96527f0bd666c9547fcdd0a7422dc7\n\n# tcId = 71\nmsg = 35303835333330373931\nresult = valid\nsig = 0f4c980c365422d74abf4a1b171986c575e7662e5822a0807986948322d33378b85dc7865e563c627ba4dddac9c65613329150c096938848feac13543943f58a9c1c0f46a0c40a041d37f300b83dd90bfad373e13bc70f74a7e4d18dd6be8c8cce0b5aac1844287e6aeb1c465ca75e2c7712707c2d371b0deda5171648b2d718b078be21cf10dc8d428e39001f5b30753d9ed40add27e98fa817c2fc3534c618d6755297d1918c2ae78271bbaab738c08c49ffede617c000820419dec9853430f5332e57f80ad71113bb492d7d24d32111949c8690741ea46172a568dfadf545b760d56279d4c47152b0c6c9db506efa762d2be29e224b87c805e65f2402a92c8a5d521bbb49540da40a2aaeaf4c6dfeb8c2080cf9602e320b0ed922f6847b5334144a3536257f56266f46d38695f7e46f254991c3d2af3827b0d790aa74fb08a5bc0a9d798ae09d33da65f8cf3a599e32454fa16a6508efc421e19f5b66a29ea60f10722040726db820180670211337e2d5b4f4bdf16e7d158f39c2aae75dc800b495531d8166e046b0458e84b409b5b4b193c824bca186719dfb0c886ee7970924178e0e53a75ba59b7e72718015918e8f015dd3d10ab3bc74f2447ab23e8e0606b8cdde9b5e70df77f8da313dd14fd95cf320a48a2828f870c39fb1dbed3e5c6136b893d68fab2665b560d6c15962f76666e0554be0b9ec7f0c151a3ccaee\n\n# tcId = 72\nmsg = 37383636383133313139\nresult = valid\nsig = 92b1d5d367f8b615fcf87cab3f88ed66b30837ddacdf47b7dc9bc405ccfa16546c11292447c68e0f26bc41a0c8f003fba59f96f3975d2ac7a63fa34d7dd1d8f4bae839060070330a5c911c0ddd9674d843960ff056b3fb2d6721a8fbb9fbb0b1ea8213b0293389bf611730b48f672945f5ff3ff356c9e5d254cef47f2c5662f4887536b30e2b54ae36428d13b551cf9258cd0c03702e8faeb8fe5b5fbf120b10552887ffa6384f84df39e94cee859b038bd6eeb2b0e0718065e1d3f526b33d4765cd5e7cc67bf6f97505337b62f1102ad113b722337e245db4e8e6e43529a6c4719a23b9d42b788abf3105285cceedda43847129ae39737094644f7d82e74f1271dcd430e1122ad127b99c7b95a16c46442a6c306248a3a6bf839acf6452a96eb3d28aba37ff342c0314fc0c34e38adcc8597a4c2606cb31939f628275cf6edc4886c75e42d8a4c32bdcd63c534f8c4d21b8d308e58d5843aebae8b3c35eaefd3836fc6a80bfd16441aaccfadf45bbdf993e46fd831443339cf5840cedef60519d3c7d92c39d7609f9a4841e3e5f682e71b8fdc3d7d9c7e622e73b754e870d76b111ba761508609fa41ee82ac02f4519ee3c46c9c3d8402f1cd0efdbc4417765cba31bf791988f2c9e7241d157796c6f7b679be52ed6c6164354f041ba09b20f7b0372bfc7a7159724dd02a74d20f82810b623055920094292d17aa411a3208f\n\n# tcId = 73\nmsg = 32303832353339343239\nresult = valid\nsig = 86fef6519b92d28a49a39235cc8454e416c42349aba7bd9a67a84b0012458b8b9af93349879f676787d5dd7bdf0323c02ca35533924b35978c8ea315d4d3a7436bb4f11a02d6fa8d9d32192f6f11ae969d8edd4f9bc12bef787e", + "834db6e4cfd9fd93fb9c9cd51b0813c3aedca7f432034c15638af52acd222b875676245d104c8d5e87bfa64e86e528d1e88e4ebe885d53d8b99a50609a59b2be30754169f3d0db72a054108d57d79c08c28765594b4738443125f4a68f64eb90e1d8d2ff6baeec6d3f12bf8c76d1c817713626bd58081f6bb03093d6729b3ed4006820a89224ed58d733432b06f5e6e42f74891251b9ad590c78b5da4278e789e7775d18b2fd0d3b9fdd303df7cd949fb20874d8ab219d8be8ca961e83b814c59a813bd284b01400e8d98795d2f7c9a7eca02120ebd7b2b8d53f945ae84bec14ebe2816501a2be3c9c81b2e8b0027dff16390d0686a7654b39271ec2c0ceeb2b57871c38f94ed43d50a764ebce272ca3a8fe45d59db2dcebc78f6e0ba97f3fc5c3eeec3fbf71e7ba91c0e2274110d1da924008d414a54270e2b3ff700eb255065459d00e8f6e1a7613d30db749215774df6d19873c06a2f6f5f8baa95891ded9c91201784da571a394e59ab309f23a3c745a8f73e370a58a5ebd34731d865c414f55810a08c36b5b35a5fa23ae3142db21c24783145269b035f1764b79d26ab76df32e99a1ff\n\n# tcId = 74\nmsg = 3130303635393536363937\nresult = valid\nsig = 86683bd48599e9708f70d81be57ee072e158360bab02205e15443c010792cdb4ee7087bb2d099f630cbf9a5d9672fbba62f9495449e6c9f5ce1d6e975c7bcf505faac0d73b9fffe90dccbf3b55e278f58dd541c235c920b385466aaa064c7bfabe8b9c467ade9a06ccfa7bdbb74d1f1ed6865f41b4d3a8045520251c5efbb8149ee7aef4d701d0937621202fa5a81487dd262a6aa98270ce385ecafe73a72356741251ddfab8db00920f31c30c47517804e6411dd78d496ed5554b337d335102961612f2affe9e41fa2b5c63c58cf12b20d79d6da28dd3648f6881856fae1c17620e2bbfb15e5077934f8f55757d9d84172839812581fc41a337ca65e115d216f32ae63f833a91b67e5eca5ad72d65339b30442a313a47ebae22f18bec47191ea8054bf7a6f22db95e82f0759d35effd1ac4b375885daddf77befd1da13e3331702323e11f75c68fea368647439bf7e8f99f4b676c1917b445c7da14b259e054129c9051515040571832466c182da562139d0703c15e17f9c22d8393a5cfa1c9c2cbe35bda59bf17693f24128633a3e223ea551b5ba1a7947761e939e7bbe9e80c0d3def2da56df1e1639af2048c9ffafa69fb60b5a4dd54708936673c431abc12dc69d248f7f87730269c2bca079c13c68665004af0d8e44dc0c6f10fe604700e0cd7473dd8e57b1b72bcf684cabe434167b346b29ffd521488de977776fc57\n\n# tcId = 75\nmsg = 33303234313831363034\nresult = valid\nsig = 31869b48fcb2506c54902cd80e2f1221266ec977226893a91ce6a3cf2bea43680de52c9c2fc455c44e98ef3735d9578e3a98abe63872b9a723780917520ddebe1d02e0f00be09ad77e210ab5518ee93a3a967c0a47f05b8b2c2aefd7215f8d8e7f203388e7b7b145da98b6c829b26439c9be1dc8c3f98125419ea2f816aa749fed0a914ad46bfe27219bc088d1c1a05c50efc7d7d0392d8d4fa6ca82f5784fb27111b137ebf4cbdee3b40243490461c8c7f18b226370ae10689787adadbf563b1fe25a7b361dfafaafe13cb7511c0c5c2beeded1f0c2ba51252c42dc293fba13cac292f50670b45b06c71ce55fc8b457174c784d788d38b0d2dac185f9f175938d6f305b028d70b694f02cf927fb5c42740988607d79206df03923f22fca671333ea89b72f41316088c53af5f3c7f118fc7aff190d17f5a8bd087dbb60fcc82a8f99208c481dee4e437b4e9f73eb51fa6036e230844ae950331526d0228600cb5b158e705db7ad0c7e713e639e219877b08a14964758ff7faae16510eba2c3f087ebc94702d0facd22416a4e36499bbabb06631eb92e6bb513c67fd12a44f5c1975a47f708b8470c2e5d9c3aeaddc9c809d334cd7771b3ad68f2c4bafa0480395ae9d30ad32a909d7e7f138ecc3dc102bad80451c17e91a1a8ac49c95b8e9606e994ff1cea2b6353499fb52b015ac1df859a358c2d6dc7d2bad22bf6c6ac6028\n\n# tcId = 76\nmsg = 37373637383532383734\nresult = valid\nsig = 12a3dd69efdc002c419e4a6cadc5c1d336fdfffc17981fad74c3625e5d0b7113b3ba52afbe03b53cd028c1166fab3d3e71911284e015a8abc67ae434f22fc59afadbf785923060110bb14b73f17b1905ae3255e7925d9be121a4f677071c1318ca13a221b20127da64dd0ce65b384107302cab9dfd3643b1845fcc08b91014c85ab595615c2f2a32a74430926055b09923bd2eb9cc059dced7535ad82c7a4937989330870990b6767312147c77e5a858ef0f8dfe60bac462a5cc4ec172f9743773cc91496aa310505bcf5694989a6b5d518126bfde43d16a69dfb8352f93e6c9c002fd2dc12dd86ba59f7c071942c44420577705135f13e5bd28ca79c220b7f4e88f4179b2da6b06fbce4f3b33f5fe3d026be18bb49e992dd84d4df11addbabb61b126c1ffdc8b538c8bd0b0ca6d0fe972cc3535097e49259e11910843fdfde151dcddc2497786e76ef5306dd475ecef667affe0fbbf2b1b6705f0c49dd9f242aa1c2662acf7215081aa0a1f31257665c28a94cea59bbf1dd57777fba987b452319c1df22af92065600754db7994d3f02ce6717e74d19c74ea4f6afdc093c6fb349602886acc867b909a8fa63ee4281ffb1764e6599bb0d40ee45bdb67387103962168fc593f74f5b8a94e77a92fe4d2076098415d95912c4f647eccb532fe7ae7ea62c8e98036112c01285c51256d7afb8930d6d6482c3a57f1bb26388784ef\n\n# tcId = 77\nmsg = 353434313939393734\nresult = valid\nsig = 0c02aa5c01eb5623a2b794b6f3cd3a01ddeceac03e85bba8f67f4a915de6671405dc98a4e7edb5832738b29d6539814197ca38a47bbc92e83724937192724e15eddb1243829991bc50457833d182998a6aa413bf1341ae55e8f82993f47199011028196196a87c232c23db06fcd7e00de8666686528e8eb44abaea96cc7ea556d5e488a043adeb7ac63b485b100107bcc77abbea5801aa58b633eb529b612592874a3b2620dbf9490f399108ef50ae042225758619030853b9df315af34245bff846eccbd9de2784ed85e8437187084755af7e541c27549eb7eb9ef4a620a44c67695441cb7c827a4b3a03913497092e277e3983dd8fa366962608075ebaf2b28f0e8bbdd54c226f91702546b7f015dc0ffb30f72b436e74db11338d3c8140f9d9c70f77e4b69564cf2ac68ee81df2d4bc0217c01c7ab5a5ff6d8f0aa08a5e27a1430936a2ca88827da86e75158381ec51b455f302d446ccfa1642238f281c576325bfddf3cd5c08fadc303a390cf10d98638f40d4792a591e4895dacc7f4cf7875c77d0e63514178dddc5a45ca0fa43dc6606e61ef4afa029214f6b7e2633259da1e9ae8733741f1a8fd8c1398c98dd0c0483aad6604b7e42b6dffd3ba30f8b05bb63e73a17659a7ba24d37d300e9196d831aef7549c6b2627b4c11a84b574f25b3d94a274ac17d8c959b613b86cfc0b7a210fc3bc7ae9e0106bd646fe5d720\n\n# tcId = 78\nmsg = 35383433343830333931\nresult = valid\nsig = 10389345200066e0b6e90c80be8dca0e9b91adc4f8fc7a7e4efe26b9a3c768875ddfa11ab6cd8ce9fefa8dda884753cc87d4b2d94493d1c5924ef6a817c153cc5bb1df29d7ebc47d622d4b313670d073cb7c70c75e32477c69488770213779c3d60da678d00a6fba7e5f2108bae0d64dd0157f5450fe787fbdf6598f1902b6ad1b529749c6065b8d4711f014d8e07c8b87e0a7cc78d0c4385eef5c1690f204bc5438b029398c9e0cffc3aab497e2c61e09a7cdbd9911f590ce8d820e88212602f754f56054e08d57721bb8020c7654c4df5ac63fb90121ec2cc2fbd55166eacd9dc04fcf880a16e05719a40f3e1de6c5b917f5d59ff1c71a0d1f63c01107e5a17d8972fe29e6290b27c843a7a1436b07c3bdd16f589772b7a66938a8cd059960bf08a801b28ecdfde56b18cd22ae0ecb7cbcbbe682b0cf264b13a29eab77f393bfba597b9425d84b2517eb53a34747cfcf51830b8275ae26559ef6ffd8a519f383ee5e2a55897d4e897db08fb2a8ff6e52d53326c41e45c9e57db34c43fc9412fa7dc8e154c9126a03aaa3ca50e897899637c30ebbfcb19b9331b0731cbe073a37a5a5957466d09494b0435715722c0ccce2ad2d04a66932c8e80608943c1ebd8bc1405ec193490bbbc3fb68cefe8783f9091eff7295720f05713e08415433fff0d0a6c1e01a7ce5d136320c0707d3a8828a463df807dfb08fe2c8c7fe71febb\n\n# tcId = 79\nmsg = 373138383932363239\nresult = valid\nsig = 70a554c5d1b9dc8fed39dc0ea4ef3e288c6f3ceb6aaa9a5295849957b0b46c0f1d74c548a78d882fe7c729bc63d4eedcb164a74b3c253e89751f204e3f3b24e93df00fa8a82694449f4c94b67c239275a07254d34a5974af9d0551fe9e13016a5787ab9b36233377c6d4f69e945ae2c6211681dc3e9a895c6151b4acdd9dcbff01623c71dd0981af667b341da79cb9e7f7ccdc1633872c70fe9adac7df4b1ad748671a24aacf42678e8d384c55fafc85f405dc7be424519f0602c4f535993ee88d17dff6650a7e1a93808339e90d662c37ba014ae76afd6193de7fb617131288b52e7924ad3df10e0738801b5be4ae94be3971e68715152826c02297718b29ff543a6ff8bd61ccd3c551b8f983878d66c6bacf8d50c0b4b3eb7de10fcc4c3a56a97d0e7918f260f95eee130d8aef132019fa44ac571375369052c62fd816ecb99a7ef7e53b201e5a43ca403fe403e9d12bac179e885d44a7e167eb3685dab4232d92c67c67751435ba7ddc0d4ef48397f1c80372e25e95c9f6599b3c1a1d1641676559eaf50f5cd4d3c9e7d56c54ec232e4f4a1722b0f940c3d72014c9465fa9a13587c95039ead91d231f7c3db8699f6320dda84d4e46298bd450337e553c163b17e4c1ff00701e2e97e0fb195661c7109f87646d116f4a571386a274b2557f587fd3221a100d6ddbd2daf04747254602e65ec860a5df38e0d35c21ca5b94fd\n\n# tcId = 80\nmsg = 31373433323233343433\nresult = valid\nsig = 7cc77f32ae5028bd8b53edc2f667a027499331fe42d2fb1750a22320d55213899a3139f4d498d5f6981a8d467f1448d6506c71977001f8a3b38f98748550f592453b99b0bdc5003cbb8854f858725b619bc151816046303ebbc11b40de50bc1a316afaff18fb940d0a15324fe6fc506d1def66955aade2402b8d2d006ebc5fec9d32e044322e2128f2f03badc92524f5ccb3c31f1e358396ab9a3688e7788aebbe995e003cc5cf586f88fb4005889778dcfef2a74427b294119dcacf857460333df2e1c4095fac8ac458627f7f0e98150db66def13015741ba1a7d916d9c05b2227b5cd6c66b06ced61272166e4e1b7d0f22aef180622059b4878c50773f0385426e096014e4467b646692df1e374a6732e91561342c769c9ab8fc8597088c7d84b8bc812cd96fa43f54c782f7ada22109359e312537addcbdb63f4840d41db450988708f364cdb78b612b5f06f765ca6ffd6daeb2a462a9a27450dafac35e41140c08fe122de8d97d92467ab7a76503ff9c79d02d0eb9c089e352da101cb3e53890", + "80830a8909e5a1547489e4764a66aa1b20e19a5e0a111688b799321d71c6178834f99f595b55a404eb44ec0ad9a95e2ada052950473ed5e0c29da9d1e198656a8543a901eceadea8afbe38f57a640c0df7dae7b969540615c8f2a432a8d8240bc4d166994755776fd95fe048f43de33c4bd6a18c9c383f68b9c3782ab45d\n\n# tcId = 81\nmsg = 32343036303035393336\nresult = valid\nsig = 6bcdf417bf2366c3847747dfa84b6e54f064c737dff1288e703db76c8e1f97760af50c5f4d3caf2a7387c920572b7bf7bfe5f1eec0c36edf00e1ffbca6fecec1013200fd4ec227ed15fd30a680131d837f6ebeb9f5840ba056d462a786f8ad327137d1be8f9bc376f61f7b00759ced58478eb2a7806c24eb0205ff7f8ef714d242922c404c1a84bb0cffc47a4c90f7c921ed9f1890de4122ad5b5b8ad83cf9a953e5f69c31392ee79e87eea174054c4a776ff3c8abb4d28790cfc5a8ba7a9e2a2c4e8552f823b676e24e24fd93549c1b994444ad6252d55a6edd1acff7d948d369b563bdcdd8590738abb508227c88ba4eb3f40deb70f94ae64715af4af9f57d714dd7513d4b0f74f99df341802d106f3b056136d56a8b4b8964d29acc3cba3448e804cf76ec32f30057d375d36e2b66eae61166a1daf8a044702dfb0fc5b0d8933fca2cd692a18d4f7d985b459a96746a5529e753cdd0dc8e1e71062b6b4f0c31cba6bf790a030b738a45b618ac37d7780ff7149a0c7c1818e610dca25fba39002e1b88b020a18ad33e20ed826e1ec34d20e8e7ee628156335e18345fcf2c17c6fde7fb0c61d09d7132f61eff5e1d3a78ff2768f379969ccab3eaa6d541fea8a9baadd27eb2b560276e0dd4093fb34a716def844af797e7cea0eb6347e7fd3703835040829b34c980c92915ccba3215a71bfb74f023da059241e6db516a1569\n\n# tcId = 82\nmsg = 31363134303336393838\nresult = valid\nsig = 9860ef00957ec620ae34e71078f3a70e2ca669ff30e378d33f5e26eeaae717b4d46e6a1b290f1123145e178e3e3100fea3fa3d58c3bd2fcc0a6f25a283af88fe6575c42774633d0f5e485a5a9260c85171438bec68b660384577b3671c5dd60e70530b5928aa68ec21c67fd2ef8b24805d672a90d92796bf1ed6d28385469bdda0531eec555881e7870b0b74f74f0743082ecb1bdc7d57ff69c8b233981a774f3461f134c610134c51c0882509e4157b78b3e5f45a8834428dd6582a5408679279cd3d02fa5a58c51e21839098c1b1c3d2be73950d60e239150bd4cdc9a22545fdb79d0467f9a92f6e8fae836483876ddc1454f7aeed71eceaa8d9a14f7d4a0728c1f256fbab4ec6154f4ff49800a184d7ed5351151d79e66d3579592f994f02ef43b7f04c34597271a2b1cb9a2d600b75ae5fd2a63fa26c0570c9dcffa0dcf27e9d06d30488f95e4f5683eacfdac0a52ee3edab4c663030ad837337f61e47ad84beab6801f04fbcc346ffc0b7a73249fcbcca81e60e575666dac7c8949d831f57043c3d68a839fea2b4478e0dc7ac2811acb301e1c0c4b890236fd7097d9f88b9c3a7ba13e492b935944d713ded44e82344e0e1e87a59d87bdfef71814fe50e5f95011f45bea6c88dd3cc33a8c8671f455b1ed9df2beae279f89e2ed2a7488ae93b668228ee2c3e29e3b672da9445dc080001854bf9a5fc032d5cea31b7f8d3\n\n# tcId = 83\nmsg = 32303935343235363835\nresult = valid\nsig = 2adf561bfd2a97fdc7dcf891883c4b8cbbb378677857b069b17f38099a5baad12550f77efdb240ad13ed7f620bc61f417b8215affff9ba248296c36ed087a12390b6e22e84e4603ba7b0624abc940eb720215cc64ea766acb1798aa369d2fa215b1086c2e74710d207873e362d8dc104f6159ee261ded7df09f0dc9d9121606f1e339a4434aadce76ee114a2946647340856a0ba664a699c239f2536c85c3e5b05e18abc9c993035c0b0f52eb7abaaa5edfbb9aeba4d804a9580146f3ccfb1df96ffd13a854398c4d485fafead4c591644cabe40c724885b3105ae7c524108f6523c8081ac512afb8eec7e9b070e9d66042a9edc504d0b4131b3967ce1b1e70034b193ae6ca4cea0d533cee724a49aa23887bf3186962f4aa5ad4190d99b026e95d53bff8dbf60fbb73baa763c2b0f558cb0d552637def253571b34dbe64bd974142c5af4273942b7ab5da6dc42c0f1890984c31539aca67c39fb3ff2161da5594cacc6199dfc9fc09acab2eddc4e30da3bde28329984d8afcec915b8868a60a9f5bb72fb82a04092ff43a954d84afbeb760c1ede208732185f8014f737363ef181c0db4d1cf8b3ec4f45f3f7f6baa1ae587b9ec3e218c0474cb38c338a1c4f8863ea24cf1f14a46d1ec76ff07257808fb3859277a4385b73a7a66f6b024ae9896e36f449603d5ac68fbc5db5120cb59837a6e61eaec24f9784856b8a92f1695\n\n# tcId = 84\nmsg = 31303038303938393833\nresult = valid\nsig = 4e7ff3036442ad1ae790ffa6451f14650c035ac1d8becef32cc592543052ae338165f4aa5e7022bd221457d71de81ca59386c3bbe78211784f13efc4ac571f56f090fe05d833f45d8de6af081c00e9e1628f34c394a857c5d098454680fbe3b30e8d8d83d29525a1d7fc6107eb90e81f840154d8f2677119cfb6fde8d77df676356422cdfff18ad1b64620403ebddc665b6c34bcca9f86d1aa7ee4844208d4cbdf634d8ea95ef425564f388a2f2deb0b0592c04d1bf3938d89b063bc679153200b27a935d7db9dbb8f4d94c4e7b5784a44b0b6239eeb82bdb4a615a7c3cd4f12cedb0931cb1ea588171a4fbaf0bbd97fb46d6070dce77bf3990ae6f5deb3752fadc87a85ee7740c4f47a3c738bc87af9df729782dd925541300e9b19bca6e202b4d48240374b2742592528c519caf5872bb066c7f896804882ab471ab4f68aa31a8a03a040875d668e8fb69e732acae745d568c08b1a14ac1e80eceed4de3103c59b582b255899734649b8de89a6e247f2d9313dea59f6f870e42e6cd859fa4a2ca6a76e7545297bdb2cff5aa419d9867e02e4a414f469ea3d55fc0c5f98618f6001ed87c5be0def6a9ff7950a14104d9d75f06ca9d8fbe3a43f4e29205022daff387829e49c8302d2629f15892f8c92aa265247702c07d090d70f6c5d6ebf654a6f0ad08fba0dc727f5e9123b2b5c25b12ac71d52edf7644c715b38b7d8c11e\n\n# tcId = 85\nmsg = 31353734313437393237\nresult = valid\nsig = 1253a3896ee6cb61e6b7400aee5ffd767bca705c0236e1cbb3d7712fcad7b504e739371ceff0774458a5dd27b342a8a496affb76c1c5bee23c0b76dfc37e959bfd81bedc226218aeb9d160f41c1e568180b36500f41c9642588c18d7b92a8132df4fec831cb89f399711cb28520cd974736f9dc460e06769bf71d9cb388a06f86e16bcda1903797d7bfc0262d298fca5fb888d2f7cd6deb07f994326288519df647e9da70c69f4967ade38195ff4e3916eb9ff22c28d691898c7d61e7ce8d587d9b7b4c3eed7d5367f3d11f9ca9a44cb760b9956abefa8495021339ca89bbeed56fb896b717ad4a2523f34f6c23528878c62782bbded8d17d75741d0ed235ae515bc704bb2b520cef951019b382d8e949f96bda73cafd2fbc1f52c182aa6455617a78ff88bb60aa0ee583551753e8edf8b3dcecbee77668b55131cfd5087ec3814d9874ca142ebb139461b43a96a9269f0d3e80bdaf70024417b862fec325f2f303f6e8819e05d39e8ea8ceff9e25d312c305bc2f1dd60ec69b6354f56167db73a96fe31bdbfe65fb4777c2846201fbc295907668a3cb36aff8d19fa035abc2a1131eed540ba28c0ddf74c1f0781fe1049e4c86db5bc907ddd7130f81827990d0c0e6beaa81a9886199666bf11fdb1ff3603ac04c1bb5d74556ec20e8f3ee9a7d81bd3aafb7b00fa645cd8f4f858b997bb4d727c24b9fbf305ec698b11ed37aa\n\n# tcId = 86\nmsg = 32383636373731353232\nresult = valid\nsig = 19f604db890b3b7abba8d6487ced0b7dca67817d457cda87f8bbdd24191f8ac02dfe215849b607e8877768f3b1feb7d0736051569660ecfc42563a7ca2da82edc83f7971ffe1cbb1e195f21cff262db58401c41112acf214bcb5612b8d28f57eeaf9cffdcc99dd68a5bc4fcef57ad875c9f0d9bb4835702a43ab9f81ce06dc832a7b016dd33e9cabcfe701542546956ba013465cb72c952371055da1e4d6f51c0946962c6be3844c60b5a59e0e84bbb144ae038b33a7ed73db3254386001a63882e958e460b558e173729cb8da60ae37676d4b6309ad89e8431043667bdb98701070ffbc20f21d2e0d7bec6cfb4f928d8b482fbfb3d7c8fb0b757c71cddf9cf180f40bc115536011b0f7ba401f1f20a53bea096b71c62d238a31dcc7067124f04e1115e17175d870ac6873650bbb778149ba0a5518d60032fa18b0340907668754816740f958ec162d3e632723a09f18c238e0e58b13fc188f43539087c198c122e9f33fdb0991ef6ac58e244e76a849acb0d0023f94a51d138a56b696dbf068741e6468d00f8f5f4dc01b350d93e9ccf605b5805a2a3a4bdef6b60d8b54b374ed0b6eefd292d773cad2caed827ea2b0cc41abafafbacc4fea63ec0087abf666445db08d0ccc5a1060e1e02d323fcb76f826a636e81d3b5cdb10443fbac9d41e00d236e7edec11daf382dc1776171a9d31333989f2752ddb60af0b5e1b8b844f\n\n# tcId = 87\nmsg = 31363934323830373837\nresult = valid\nsig = b6fee9ca84912c78f5c2acab8ed83917055012cee80ff3ff36c72c6ee84e36c606a1d1c2f649cc5bcb62c87b6e75ec027d51d998f28ba15a701f66ef092774318a83c14111fb489202a481bce14eb3b8b78ae16aa283edbe63ad243e3ed7747bcac9d343ad77a246ac1a1b03040ac6be71c1bd1a707714bfc2b0a7495ea212b6ffa70d1c8f4af9ae24db6b4619598853b721a24481197bd386f6f6c16e8eff5eff55644f36c61e96af061351e405e023be00cf23c6d31b298557291a1646922a1ce52929a8994d4e1307f4a05adb1fdd43c20672edeaaf388b5d5f32b6b3b7dc3869ab56551c01cd8c641cc22632ec16f84533389c0c5bb1c17064396473c9aa50d38f0cc619f51ca41efd7c1a8a8b6c9258f360ba97845c87ff8b7b30dfbb5982ab6f643c0f1dd7c4957bb1347a14e61798e526e57ef4ff7269d784361943e59a681d09b786f24d1776bc1fa20c3f6f56b75860da67667a9a7c2aa80bf098bcf342694d46fdaeab6cf426a4dbef89a9c9bc1d78839f5a04e411423ec6b41113068ae47c5d5d82c2d2f81b0fe8b1ab21beba616deaef41b55a8b09a256d8a94d105bcf7a131d7cc630a80b23af1c4a863d30e7bf19bd4a592f6c8c6f31dbb7c1075985e61d34cb0a91697c645ee2448f47270d3e912f0e65c263880fc738e5d966c43dff728d5a7e434bf7966f02dca3d0a0ed0bcbc79daca929e19732e746b7\n\n# tcId = 88\nmsg = 39393231363932353638\nresult = valid\nsig = 7be81373fda33342ec2f1a0ea8f9cc7a2c0c69ee5cd86e01c29dcedc165e9dfedc87dea23ad871337add303da73b184821f2613bed6e3042e5ed2b7f65b54d6596bdc2307feab05a87b35eb499cd92e9644873586aff5831f7e2e7ccdbbfb31324d4940e95d462fc1e0e0a4ff7a36709b64c2abfebce497ade1976e1c9a571628c8f08e950278f39a429", + "f24c124f5d447dc0d2685395fa7d7fabea7a855fd92d8e479fd7fbbca318ae055ba0f88e3b1c4ac6fa51cc8d58d34f268f8643a76f49f76525169cbdceffe817fd749bea12421829b1782e5b11ad176b90040e61b7b0339de282f3661bd0946b3179e79dc455069b0359fe270df03be8c8e79396e81e2a4ec090cb62a73d99994c560ae209edc6647997647c415bf537360ed4fb2b051387b58a8ba8b82642f7e65e405e63c8696f7fc949a5329431c51a41bd1d8af94a00e4e3af16c0d1c60783e170e3a3f6e50995736f0fabd8f3c449b2cb382bbe4f98691e327e479347cfce2ec1ac08d50a87e2a43b56eb9afab446bd49e27ea18211056bac8a4004cdf06993578de929b04e70af941dad8b9f5da8549dc5bf67e67bb452559b9b7171780e90399652e8223afa6a7b6ff6554eeb681cf5bf50249ff5462d6876539ddc4b07dfcfd0b3b6cdae959fec46f5c5a36f976afbe23c11cb5d7dd1c0712fb2988c1c31bab4b1929e83c79fb2258adf8f92a8e0529f7ff1\n\n# tcId = 89\nmsg = 3131363039343339373938\nresult = valid\nsig = 7f6812a65af684a3400a5e828520b9b078ac39b7b3d2016f5757216da4c581be2acfd36c99f2d927a8b9f5ea071f517f197df54eda08c9798aae5816b66d821bf569d7d6df174eeae62287bc824a3da2c539b4ac35245ba44992218283f0cc51ebb2e8053dd216f0b031424aee2d0f1a064a912bf7e7d04185b794f8fddca2a0c87f5efebc34af850b5c50089ffed87dd1b719d962f694e97e9d9bec5443e031554534e00675743ced13871ea891ae89cb18920c65c3aa36b0a2eabe8c13afe7f08a299be54b07d05405021c3eba10137266b7edc83415798d856590ff1a063cd3141fb1dacf08bb757e75f1f73c4696fb2f02453cac0dbc7f3a75e1b6d80b7f1817d6b0914ee79e8c3ddabbc7ce80d21c0d71aaa9715e2d963393763b60ce28d2f5f7dd13fdd79a30e7b38aa2f3ccb08be80ac67ef762a7da1a20ac02c28b5bb4e0609de320cf1234fd493258929319ed2a11f68f221c17bae806191d6f6167a5a75391643beda9b21fed620c012af963f81fdf670eb6d0ff54fef8b233e7e422154b8b0ed56aa3511987aaf714fc8ca203991321ae3875020d3a6109c8c9234df4010c58aa70228d262d3f120b82c0491348c66dfeac1baaab2d9f4affb034a5cb3adfea8d40c46844f0897c86a799d719617cd5ad3b21b97944c6398ab8d8b4a23eb1836a0675daf7a37db327b5e8ad15feb4dc74ec16afd4edd7e723273f\n\n# tcId = 90\nmsg = 37313836313632313030\nresult = valid\nsig = 876ecd8c4569d57b46d06f02af46c52c1f01f30798fb78aea5b894d9bb63c02d7c5cc5ea665b05ac1a7149cd55a40dbd60081c59c4d7a3b3ae2ed317a27597119337ed5a4ec092e41bfcc23de055bae01818beb126463c07297a08b3579b35a386dde533ee33d9b6e06a16df6b4258f012aed53377e409506d61e2721a18eba10c6d0166b86475c82eeb10791ef2cced9ee15a6530a55262aaca105fdc9b3012df1af7c798bf5da5982223bdafe1b0fbfa080ac68957fac4ad75eb2ae754057cfd64068f395e9aacf2c9b2f6f28306f779cad7d62af86c20b5f9feb5763c6ea00a6c6ec7ca1fa74d814f878c587edfe20d8e9db78d9b7c5ad7c9cadbb4b176b40c0421566da81fb3cd05e397423f80e4a89f3098cf82c68eefed48a3945cbc7f3625e8806899501d320695ed3e36ba18103434246caf542eb807f7516bc2773dbec092d3e7370e3556b041e9a59ab3569c2d0418b2cd6a87958ad58158bf9d2168632866c4b926b0333e30e2f1f8f36caaf27316d3eba7684b34fc76680490b1a8a7e7ba312f2f3ee38d82e8e8caa535f2464e2c1b6ea3047542fa29decb975f5fcdee17ad47aac690d78b2860e7d2cd34b4cdfcd75f8bf2e2a8f15ee9ad150029bd7a9da6f237474deb25702be8720df2edc4a2bc271bdefe19a2fe5828ee6d806d06923cc239f53644fd75dd362464a0baa9e9fcc2af96e6341d01d48d2d69\n\n# tcId = 91\nmsg = 33323934333437313737\nresult = valid\nsig = 3b5fca402733714b12031ef7054e160b00f7a0f6c00fcc40a2cee4b790fdd69e9a47ab4212ab220afee5d2d045effc16ed1d3e0c7a5e4ce4770e16cc407658154325dd4e9c5ed3b91bc89366c15b72270a20b8cf0e10b3a58bb9c9becfc881f3d4a620227c2c5ea1a7ad85dd8b9d3cfaed0a199e369e8add4d3732687c5268ec4dadebd20995d15351b083d874603462ce9d19c507ab5aa0561f794622597eead040fa11547e833addf39fd7062c2f3bbe5795463386beefe519ebcea039e6611dd0424b34156e522cc014158853465f337f47acf55bcb91437622935f318e5a03c47113e12ef1b85df46a4c6a5bcd478969d1998cb599435979b513d062c01f5b37bddbf77b106cec3a221ee959c481d42a0247f97e7e67ecbb8978ca5de63491ff05834f59e6f5000e4f59fa2fbca217cf6a1d68e0998c83c1495ceb3cfa61d0b834c99deedf767240d8229e6e6ddc4ffa0acf9c2c45c3b06767e38e4a4dbc2d1061ee41435469d785edda24f71ee3440243b122f388a1d89b3714d46fe75512a43834dc5453d77b7e44b23144606d3b81d86acde3827992722df5829c002889be8596b3e13c895d71d73fb359f917138637bd48f5d6b958726685b83dca672f848769fcd77da2e63251736b82cb740cc0e137c176dd29d155a4c9fc2803139c070e19d6e66b3e68f7f870628a389c5fb847e61f4e8d9fffdc34202d9c8979\n\n# tcId = 92\nmsg = 3138353134343535313230\nresult = valid\nsig = 172fb6c2df3b8b411813e913f633e98c3316d983654d13e3eb108b6af6629a954a2a0990bcb2041bebaf3a6584d1e2ea6cf2e3242778ac5566d943b5fc0ecc2c1bf97a60fd1132b4c1655fc3642ac2f9cddc0406abc272333612176c27c560ae2bbad3119d6ec1472611989a06f508ae9df23b7a807bb2319cea0a81e2458df2116b14d985bf0440440c02e98c2ea654c8bc03b12c5f03d8a5537955f2d7baefdf6e00c8d6c9adbe52742ffc3cb2c60d8d9dfc7a8fd758ec7ac002d78f25b4f58e9234c0a622db9c416998186c72de2a8449e552d52bfed674187cc512736bfcb8bfeaf392b44dae2beb432dbc4916cf03e2e4f2e1376d994c4dd79e0d8dbd9f337082188dcff0f803a658bd904efcc380376a68753abf158cb466ca01863dde78c983cd239d128569e495acaed2fdd09dc3385e927cc45e815f33026c62eeac4adc9bd9261db0eb34c67481d8dce3b7ea783a72d7d4b2325c26ce99310e0ab309e9bb3b680e815a2d979dd42b7f9b94bedd2ea5607ad78b786037cf3cd37db20201a6a7a598b1ab379a24d07eb9b53c600d9fcaff40e4767f87ebdd8bddf2284a1fc98a17339812ec63624b2d5a414e03e4397546a44ddd6e70939815e42781ab9db8d2cdecabb5fbfadf8258b20ce5b47624bab002c64d6a6c1c9750c14e42fb7a513631d65f4cc2215732f09024e6fbd1188197518630b2156306e81a1feb\n\n# tcId = 93\nmsg = 343736303433393330\nresult = valid\nsig = 6014e0ce22b92e4015ada297ececdfb61a5337eecfbd0c83aa738e556ab0b408de54f5fad6e0d53d41d7faa24255374a63859e973bad13f1eca3fed5b2a95b54a57c880e8432fef66c9b64609d922dd66e4d1679cfa6cc29739c3bede05bbddddb3e43acf59b42ef4fb1b19f1c08d88ca74f2657aa88a38ec403bc0c5c37cc7e7d15608fe3f9a4a4775c5cf1c51de01010d3ddf256d7567ffeebef5a513ca175e659f7aa87b53f4462883a8daef1c667f1c99e55c3ad9178ddd7089c3ddfbba8a4a398d575e3fcae5e910db4f0372b2fac13aac7b3e13bcdae76842c63b226308b5dd6ac16667b627207a34ada42eed4206142274f36eaaca309631a1f9a6de30e450d156eb956daa3d303434def0a9216efa83b64def5e42e5a418eca2fe1a3df99ea5becfd978fb9ce75f0d601e72b755ba24967e51b500b2fe57077ba61ad4030c8e1ec965ed85176559cf8808a53d0438f43bba060933cd87e1f7ecfe4de028e68f5eed9c36cf2b8dbcc92ab86f143b11eccb0948957e496b6c4779e332edbc3c3663497591e44903256d90d0824654d2270800959ed43e2a137a5c14a8c1baa9b58c1dda4a6511eec06a6959d3e9f6459dec78ae0091dc82fa8232b08ee07f975edcbdab88dbc278cd74766a1688a6841c99147fd5a64de755318095f84313cadea7f047fc4a90682b21a088bfd357d18b2f83fbb5cf5f7c0f16e4c3548\n\n# tcId = 94\nmsg = 32353637333738373431\nresult = valid\nsig = 5499b7ad83cba2dfab7485b6a116d92b17206226ed20e21736c497afc55ffb136a3bc5793e588f430ce4548297b2f1d8ba7deda9a070fd5aeada9a87450cc0bda52170d174bf14e14f980a79e44e331656762e6c8fd4fce2a7ca3a168d6a7cf8b36aa86e67baf2fd641a51899f3e90a6e2c13a978dea643364af6ddd9d2d1bc6ecbf1283e01f253198ff908759e669d45920691f297f2ea3a9c40928db1f225afaf8f33b4af5ed38a18ad7d7b040c4af580f49d7199552f684e5db2c308d697ae01fdb2bd0092fd4bc3a0b88c68f6afa57ff1069e5e79a1717982b22b200439ea1f6ba04a7d42e9571a1811f190872d8a01f916aa914492301121efadba8915669b44d2a5efbe4209388b2d5b5ea4b0a3a92d0088c1c55ef50ed6435bc7e6cf35c2c7dfc9d3e92734afc8100ec7cdfeeaa5703818338702939312a59a48f4c441c36c67efe1f4b2cc95cc9a8d6c8a61a43e9823819fdba526a69cdcb2a2e840d71f4a9f735fe8fcae86e485efcc653600a175ad75bb956d8cf875f05428c583011b8f21d34e8f9dd4fd706297b92ebcea342102415ee4d14d0c472c0f952834e021b31f70a85f72119946d39051b1302a26d2df0cd5b1d5e0e1180a136932181171de3a656f650ade2c480da199bd3e2297d8ab2f2d0345d60063fd6f09b6ce9f12a81feaebe74c906739d3ed0ff0f0bc37d527c1f4dba695f8d9a09e3764646\n\n# tcId = 95\nmsg = 35373339393334393935\nresult = valid\nsig = 7ccfb9cd2560754d74c8d6271d30ae72a8c8552bdb575cb13b9dcedfd2c46fa6fd1d2f6dd7162878077f07382d4707eb925f9c25fbbcbaeb3c368d855b25efc033939b70beb83340460334838f6644df7f6efa40e69a231e7ed33ad10b26c684e5f2fc495b62333557859c374e54d10853f8c96da26c0213d3ed08ae3b7abe8727aaa0e1c7eb86c0958a383c703dc6671a0a9990d0e48e65ff83d6339a84d0502ab3cb28cc080e158ebb6bcd99584b8bf237877dd90936bf5c79003dbb820f5b36fcb9b704cc4d1f37bf212035d7f3244ee26b3230ed810d23bbd889de0434c02e4522002ab548899e8ae3957311666ee6c9a8da6cccc2550888859e84a9d419f8cf4f312a8ff23b2fe27c5f5df89b013c13292bf91ac84d85d646fbe5d9e793da20f32f1f54b4687985d6776b86983e2d181b16e927941823409fd4ceec8a945e10bb05100f05a602b7f7d7ad150ce3ca2bdb035fa3d983da3c98015282022436a146346ebcac6d23279338c4812c7660a53ea60fec8b4db4fc4bae47a42de679589e4a3a44d2f3d65c8d73e7eb75d411db2a15e14cb5f209d5d4fe0f6da9615a0745558f1930f7ddede0b0bfeda753", + "0aedc8a025cc84aa7068abfb106cd57e21c5aa5e5fe314b3051e6adf6ba67a46e4a25efd49fe65f515ea70a5dcf354a41f0208b3e7e71119ee0b429a15a50e1c77a794ccccb84a2e22072ed2849b8ef4\n\n# tcId = 96\nmsg = 33343738333636313339\nresult = valid\nsig = 4bcb1f8cee9da35275f0c66f20a65bfa92482c8c000111179b4d0fbc080f237d217ce357767759bfe36998158248e342ef17ea6161202ff038617ac33992b40cf054a65181983a84844bddf6e6338ba8700f580f3f248fc4c9aa0dfdcdfb344ef9689e02d526b2565c99911a37f336aaa294641f5a62c1a83adc46959ab45d02c180f4f602a7cf3c7011b1b94a1355708313f75e5dfed9ac9e9e740334fba7404d3b46f42315f0c369ef0b96e9c65ff17ffe5da6b543295048a27fdba75daeeafa466ab22039887114bc68b603bfc1e11599dda99bb048468e717fd05fffc681f8506d34a97dd876e0fe8ddf9be3a33e6718ccddc7fc71661d7008d9a7ae8266af3745c28f35d3ca300b4768dc3b71702f2bf810d34d907abca3f3edf751d941fd552371ac2802649a3bd93e8e21dd7a0bb96466737ec3df0495bd95a4a830b717b128c08e71ea2c0e2b20ad1853bf8eaa33ff814724b1d2103c63d629cbd38d5389e93d2c29fc17051fa332d86959923ef4c3df53d24ff2f0fadac33785291078044c1de7dce3102a8d0d4cda5d560db06d81a502fb25e3541b0dd1b410eae3a5c3f5e265e709d3b9a7452e7ae9e7a290d31d3e51e3f8807b25f92969ec3d57a171b65e3949b12a7aac1d61bb96eba198149fa8a71397823a316f37f539bb3b6f663ac8a8443b65f0eb930546683f31f6fab6ae954ee0926835b750a99c63ee\n\n# tcId = 97\nmsg = 363439303532363032\nresult = valid\nsig = 62a30b6890e6a50bd8d50ee952cf46af4f3f6771cb70e82cc0c37c4e67caf929abd23d1ea4f6aaddcda1b888baaac23fce87a3fd691ff61f27f01a1ef56d62bca712353f2cb3ee4066390e4cef5f1e4a0710de4dda0c7719205a7de1402bb3d865363e32b2db3333cea9f54b6388a8d6e5f69d244a42eef7a2fc68344aa94243ce74e059241c5f63382b2ddc11325bd696e6a93b40a02ac8b951706100058cebd07e53002aaf70ea658e44b369e07fa9189659308719486c8004f00fa1b720b88153246e3dbf973f7be69c9cb80c1101c77ce7645d9a787de260dda80a6bf18e504f5b93191bb1024b7c5223e4840a3e9cb56832db722c3ba80df79ca619f3fee613152ccf847b35a508b0b515cb0696af0144b3fca9e621c2c5f2b64de3372994da70ecb82afe95fd5de28f3aa3a1df1a910816b9e69954d7599765066a34a7c3ca95ee6a90069bbb5fcee2248e90eded32e717b062564b717bad68650467fbeb174b2a688e526e8414e2defc7879e07b927d7bbb5f09d1b28215e05d15a8ad9281edb50f3a246ee08d2787eb3b8ec242c3d2d33abc26fcf27d4cf6bde79635db8cfd7e0235d280a735b2fba72f24bc265c493d9f0c3d5eec3599be4a90d9b56281a7962cb68817597747c3115a4610ca5bd65acc6763d3c4b337ff5db78e87c267a92feb9652c0eb131908214ee01c49590293ab34b3485edc94aaca4c7491\n\n# tcId = 98\nmsg = 34373633383837343936\nresult = valid\nsig = c7049f15d0ca1724e66c5efc64b782b418cc153a57cf5327d9be95d0f639c732113a0c806ffdc7baf14787393a9cc635cd2ea5f166e48885c55f39ad6c60f817b4ee013198d986b307f333b5950429dad0d3582a78ef3619d46d5f944a442edfecd0bc1dcd74429e59c98fa0b532fa7e3439e67fad54bb1013adcd92dd1aa7d2b1ed66f2582c6b1c83cbfcf7d168a8522a1ef63508d07b647c4ab0b867abf9da2e1a20c69428bdd932af73a34ac7897675a8b030c11e4de9febc426a7731cf2077cd2435d943c6452dd11e0ab25157b922bd78ffa9fa1f36a3116ed3906e6696cbf66a5719593e54e7159a6c732fe079c2d270586f0509c90fa034ceaa3098016c6ff82242e20a69c6e6ee318c24501bb74968fcb47cbf58a7f97081ec71f7a94ea062f6e3fa7d930d065ddee3ee3f8310a81da9a1ce310d6bfb46cc01561b98508326f9cda672d8c35c0b9ce29fceb3fd4af9723f1883cff3f9ee7ce3fee2f0d376481843bd906578f6603e8dbcb5b195390bb7d429915360e1546a65a9bed0dae431b59b72c8932779ea46c1e2fe320614ff0060511d75ed1c556953b1f5d86d4ad97ba45a3f75b2c557b1f5b084a3aef4edff0d6a20fc3eebc9afec028902814d12e1a103d997c4e978fc8f3818c789b663aad989728258645c3536c38e085e25d6a8c37eeeece54c6848b284441176c2e9ef57a65dd1b8fc3da2db693e77\n\n# tcId = 99\nmsg = 353739303230303830\nresult = valid\nsig = 2cdc8ecfb86bbc04919dd77370f863b23ce1602ec660fe45b599d81f12ad66cd357ac90ec638bc9bbecf7ea21a85e01b18be148f00ed98c91339f03212171a157b721f9a22295fb7128b053f7ea1924ef5418b13859049c1732126c734dba42b2048aba6162d7ea612fc0d7fc9061382766b804957731709a6dad989b69445879ca594d9e9b8faf222ceb9ab52ef9d068ccc6228a31e0e042c7b27593b6ca00336cdb24a618938da2b8a187308de5ee1ac5c74e0f3b2e34dd2665616055f6696f685a5cd133b62d813366bc4460290254b8229679aa7e0cbb868b19c4313fb22d23106754d44f6edbdc983801a6270e29905ee8d6ddccadc4654d29b464a474ef5d6eb821c26c1703ee13ed9475c70e0a49b44f4fba9278ea591d45d34f07448a6ab755d23422d8009b57328ad7b389aaad305f2af0891ca197c2bed87ac950a3254b037b1b13b2e14ce09e543f3b96265b081ddd07557d1315561d69090ff6db42fdee6ae64cd71d42fda5357757e7a1bfbb518df017ae3ad018d3ad5f853d4007edd0a72d3bf560111fe95372599fa92fe90844d7e0cc3fa469393e0a0bbdcb35ec4133f1e2a538ffe77e59cd71dbd0557a711dc3e0e40460038cb0bccbc596bf466221f45f60c8535a9c968384c248b9ea555552e0072a5e5a334089f46ecdd5295b35c1e00579627bf63815b84379ca4a87978806be1fc067c043968bcc9\n\n# tcId = 100\nmsg = 35333434373837383438\nresult = valid\nsig = 4e2cca534e403b3165d9cb4ccfb3c60a725872564f22e5cb2823efa3f881053260e54a5423a2bc481b02aa9f42292dc3aa6d3b493196fc0c7e1684cd598cfa7f1fba1b3a34f88db964d104c92304dd2501bcf4ee2837bc2c831f1796ea494977ef5f90eacadf5854c64e34c43c8c5841a0425c7642e55c5a05cf01c6504574ef32e6a66e90481575aeafb66f1fc15d791c0b0148540e6f5aeca5a455020edf049a946f5ca25193d43b69144ba0d8ce4c68a0ba70a0eb8ca695bedb599e8d6e07272d0f585f85b5bfddd7f8bee4a683359873f4ae43b15d632b9456e9c586d4472f9ba623a2f26d63f01a89c25b12652f97ca6a9eda2d6800abceafa8719649ff284cdc26ec64d9db59f0e7b814d04c6cfb64c82c243d290f9b3ed52e4b7d7cb1203e7245e36337033d250d3a568afebbb544a9724bb0dbea80e225777ad4b1fcd895d931775ef929a0f7205c34b381722f0c4c6e38d347ac9158ec5afeb20265397c4a38212c4a97f1227b5e039ae029ff9e71d3e87219a16097e41ec68e83f9db0826c507e9e39d329fef5e918a113754695e1087d59f817088e1726e3c95f1bceff8c721576e3abcd1b4cf6bbf23eb7d80e85431eb0c711c65f33922855293d1ab9d48216436e22832f379aa2daa216333fbde75249c93d73587063b4e7581ad114b9de83737df4816548d95dfd2de6c4741c334fc7577c6a9c658b4b51451\n\n# tcId = 101\nmsg = 3139323636343130393230\nresult = valid\nsig = aea92af7c6c66127d15e871ca199643932c50e97718864c5344952664aa4927b76be66e4ded635dc1ca324c4e3845fe664f4bda1565464b1e7d34eea3693d87f6fa456eba509d51a9742a72b39b731d09fca3bbd442c8da77d762a11dbe85c476ac1423d8cc12cb563b431b120c0f6aa7cf21cd9cae0783a9b2625e7f0d84810e2936602a56ff5945f85d1ad242cea95045017efee2c6859c00c5821d93118c1a6c45922878e84289f8d5902aa5fca52d526145c6d89d8d61145959e3e53f61f5c2cd0a0fecdcbbff789b2d00ec1b902343664fb5aed7dbbaa6cd065ee41f03f61bbbb72f60312085551ed1a2389ffbb5a008a4febac81ac505a63164c84dc3dd9df7add84d9b0a0b230b973b36a1ee27936e38f887cf1caf9661e087b7c41956004503ecd4492ece4601681f4998bdb5cbe6c94d6ae107f41a8b127f572ab3a5bb30aa6fd59b75f1eca9218ace61d832b9184c3fdacb1cc7e7477733972a6d08dad800ded3b0fd784ab90d071dd7a089e896d3390c2bd3306039175e70b4a0a02f29059cb168aa37d0c34005656481658cc5eb36776d33dcfd3ad6bb0b182b409d4013d4fd1a11577dc75a23d08da904f3aa0a9382b6bc1f504350d50ce0de78b0e9e0ddf0cfcfd0d0af941a3e303502036311927f832c19a9ec0e6d748a1a8be1c1d9ef4d3f110f4742452107b2cb56dde7a9a32c3c9b2c864076e64d16a58\n\n# tcId = 102\nmsg = 33373033393135373035\nresult = valid\nsig = 86b7a675432634c266615b5491599f0f77fe0b0dc9ef8dc46d791de8dac6f4af90f56d0af7f717a9f88c1c7288e6d97f791828d0f66218d29cfa12260fba406ec22dd0d5be5ff579b5ff2682011f10a24b0c4062d89c851cee27458d5e79cf6a2b8d8399d9efa15d78514aa92c80415d1671060585ff2526a3e9aca3d9c99d37f9d3e1b42e91cb8b90cb0ae465ebb44beb7360950036f976f24f4d5fb577b75198c29081ae573c4e44bf136c18e9b71e3ccc1a54d118ec43de423c14457982e35f725cac9d75956df0b5f397516a0d560c19f18a2beb3be5ea9fb1259c03cf825d47ad80e610a097ce35bde8e649ab5d2c9388b525d73a47c473107206ed255d37329bf9bf0a4f96179f5f6085559c0a2c0475fdf725addca0ef24056b2a2c9573bc8f7ba13b5574c1c590c47b7accaeb26cb35f426b7fa8050854ebdd58fd051d650f7ea8ff246d69f6db2fafb5300eea601a3b0925b54292f29724f11717d830e943b114369343c2eba7435ad4048f23fde0d38d9882787e69de116bc1f9cc9ce71b8301b1e539e7fab269dde8a882b999a1e9bcca0ff37f99172ea82e8166227ed7227e73e8df5cbb434034d09f236162e893ad0cab4c0e4268c0f9ab58a3e4c8c72031175c5ebc70df900c294d278750c45234d98506eee70b827f2b9d13af09197e6ebb9666f85f9f91ef0bd306dfd677255936e768549927b635616bf8\n\n# tcId = 103\nmsg = 3831353435373730\nresult = valid\nsig = 91527ce9c6d98c091a7a8203c20d43486391f7fdf76dc39f1959c7578fc38aa779e1d10d3953b073fec8afaf352588357c771527e89bc40b1fd1f2da3a9b2b4809793f0fc8a6324aa81f00d834143717dc41e38fe3da1a0ba359d146625ca23e7df6ccb20041422d6d44f4ceac397bb6a149b1e17c2c43eec5b21c6ae5163c910b3984ecb6537aaa81b525669f5b2feda8cd6a6a0a580ef5fbad677a650644afbe7622fac366e52d08233ec2a6c9c5e76a64fe450c5c656731", + "45b65f680529fb3664befeb57f946b40f780278293620350229416321479419421120d7ace900834bda75e8bf1a99f9d189b9aa14fb99d64042c96d7edb091896bfa536e7194900d806bc0763f4d87946c9b6f11bc85d78f63785e5b19678eaa63279937e08bac06b9a69a1baad68546918324d7e1b5f6eeb4d6d1bd8e1cc0ad851119fd8051a0b303c87f91d7a13b3fd6cb0cdc5c7d0df73a082470389fc8e024584da5e6ef61fb36c1ed10fc4eb721c81abcce51a0c285e77e59f38266f600f054c786779296ac16dd3bbbb58e90da3800ecb50ac893df2d05005a64778bf79c064474b9d9ac8533fd4f0565637cbff6a505e2b4b3ebe3d5469fffbb36a075ef91ad849871ddeb78fae761cdaf454ac2fa43af60dab5f614adbe74997354858a98660529912c1db7175374c053270f8e3ccab4b712fbe0d84269becc04ebbd95985b5429ff0e\n\n# tcId = 104\nmsg = 313935353330333737\nresult = valid\nsig = 53f4dbd17a75ebf198206f2c459b6a064da0a0bcb5d8e4e35212fb90b9315dd8eb86326b8e3701f51dd02cd0630e452763dd53ed018cce9292b2eadd6b21593f8e3e2d5a271b391b97058966df504463f073906a46edeb88b20d4e34f74fa9f1ee4ce25c251033588dbeee7a75447028fb99a72da3725d5d87b9d09fd37359656d259e78871af9f426a62468a0ed17cf83251ae06289f9ebf00bfa61e7f72bba8972f4fc6a57c666048ec3b2c2cbbf96fa892d026848089f62f8abf1e2c1c6d4149356c6b61af710fa7d8ed69b3bdeb222c9daf3eff495a7aaf28d4c8e7992ef6c2ff19c497978f739405eb395753981578cfda2fdf59965166d25f0a3bd6e411cd14588ae4f26d7582fd68f8c0a5001d6a6f559f2c84801ab7e5f1008829d81f475ffa9a24cec4e5864645c6828bd638ba88bc6d04cd9f9ef41e9f4c7f3ac01bfb5f88a0828833cbca8d5d8f840f4ac6a5515bb551f69c3f6a8d3ebda5a93233aeefcea320e63a5c2448f56458f613fe182161a319ef9ba6fd2ef28f5c16df844ea4a6ecb15ed38635d148b33ed331540073d19ed672f87231bc220197c7d3ace87f9b362378e90642d3a349e27290d1f32e004e18b8cad7ff9eb92a3d980a7ea8d2e274e86d3d3ba8f64f94f893c5fe8e8de4fddcac3b3d50b02814b30174ee7439f44421f6c6b6a7b3ee0d7dafc9e9aeb405c5498e83c69f45a8da96ad94c\n\n# tcId = 105\nmsg = 31323637383130393033\nresult = valid\nsig = 9f8703178debff5b6b29e524907057688874d51276546f18ce440bf97b410af7694fcd41922b5630ef3017f4fd654a07da29cbf8b73515be0ba254fea595d97b57d1c69208955b536bf6caeac9e20a983e644fa3a883c9003927274f7de0decc291ce40cb847e1ad9196842a2504cf066b8d53c7a70fb23295877bca466ef79a5aca5a92ab391ec0ce4c6f2cbc323d9e4ce6ef235f81343e2299e2526a444d19c7d54e64bd7c8cc81764ad3eab924a26c4bce31eb384aa7cfd2cc9e0532a2e7862ed5b44afb1c90b8fdc2b8e27f41dab3eed9f48af050c36ac2774bb354ae1fa1f69bc74946c39a43192dab67d2490ab1db2c2ca2f8a9abf3fc1b80588f40264e8d286425fd2693cea3c1280db21be051b9198f5e6bf580e7ce2600f4ecd72c3132424f35add136120d5fcb1307ec150a218c26e35abdfba4c36ceace0b91b80049569ca4a3f32523756893d41df2f0294037855d1e43973eec61dcbb1843c8325069ffdace065b2ae138706723f2be7c669f967829cc5e1df07be0033a6e65e9e6b777005879f78905162ed2576205315fc755c958a74f73bdc5ca041e9da74c3a40e2cdd4be9c3b3cf4a4144b33874bbfd1249b43865358be607b30e5ef0ce3fc98c4553b184651e7ecee13c9603f330c83d21ec91127de3f5226d42af696607bc0a43faeb84db77032336aff7cb27f19232dc69a692dca704e6e2d2cbb54f\n\n# tcId = 106\nmsg = 3131313830373230383135\nresult = valid\nsig = b64da0cd7cae92cd20fe78f19dab400786c120a77733b1a6e2c16033de50c19fee526d3dc3d2df18ea24c3b0fba088d2876f116187125169e22c33386e8e44113c7971349e534df32d20f6069035c7fb70ed55db3731b3e968885754f1019127ae0db74e8abdaf173c6ca94017dd612d4738161eb9ac09aca3f990c5ef56de50c0501164c0bde47361323ac86ecee299d9aa2325ae160790ae53421ac16c1e812e8b7ef25fc2ed08849e2c8889abf15a485c210105273677d502cb1ba549ebe73ab91e0aa2a148a966258f574786b93fb256370c3ecff5714a3e1371bd3ab2211fae69350a83dd9fbc14e1086c4dbb8523c4e0a3685082198ba9d7c92503deb57a78c981f69bf80b38cb948850aaa9c4ce3440eec6eaec5d071ad583ac881a9647dd56d62b1b2cb5099c274b2c66e54215a392f0eecfe7b6cf832aa6a2eba41f6b0ec3b9dfcacaa8f1d82ae17485670499587d0cd3345dac6e95479fea7f644c04850cae7c32454318ad29b5319a20c4d704161df62c41267512bcbeb269b0ed816eb4f27bdedf0c30f87a58c89cf619f9cfd5c8e00e25973a7475bedcd5c1fd06f1086b238c145e8a4185c4fb93527c9a6520ca58ac0c09019a3199ea0cec468da463f88b96c5c9c0f5750f48e5313a008a4d5a0cefa9dcc2a477b02cbb9e27d958d0badc24e2ba3182d336578191d70bfb6e0886135e9fc7a63f1fc840f2a8\n\n# tcId = 107\nmsg = 38333831383639323930\nresult = valid\nsig = aba69e866abb3da412a1b5f0284b8bb940dbc7ebb24cb458a325e6399904080212b8612dad9616fb0b92ab057edbe5e6f5d68263cdefbb7209bef4fc507e440c52667b6ebc34f9ff29bbc7c0359d78a8f0df6b3071e871d623536c882b287c17f5f280f77f134f97e6701d3344864e76b70c0b208a2ce74afeafd9bde901ece504e1bde17570b1d0d2d114f7112e0334c8a5ac691962c6ab31f8a238bc65cdb8f01ee526471085807c95b02db797304bd33f5c4c300dd119e200f00200b463be612bb4b88406d03a89821d66257031ec9a57f5f33e3d62b3d18c25aaffd43b5e88e6fdc201fd9602b6f8b7354db3c9bf5466980c331dd6af695cdf00dbba0afac38af5bb78d37994c0d12e9acf1d76b7b4ca3214c5d703789a63301f2f480825de03e272bf791e497a8b122d846540ff1f369d8855a6e5942e5e2095d97ea923dbf22af1b3a14d9ea955b925c791c88f74df0b90d578e24b894738e16d70d1108405d2ebd2401520945208624e760c65f6833a73ffb4bc32224ca3bc78d83ca3b2021e349e051450caceb4caf5e4cc9fd906f91d575c6796eeb69955a634c324c9ec830cefd0c83063f3876e135991500acf8ddb8fefc55b839253ea2a18c40473b02842b36c2e40cfa9740ce5e0818e891be8fb484c9121128d454b41aefd4d4e5ac4fa93236ff05ab02b9feb9fe43bda2dfc3e63bfe9d9d8dc9d804d9fa312\n\n# tcId = 108\nmsg = 33313331323837323737\nresult = valid\nsig = 4d5d13eca863400fa4c0d6da1351b5dc47aaded17042b40f5f4018d87a77429b382f1691429c434530be31c338b262bee9ceb43d74045398c97b8573de9bf2df5a84c2cf8ae05b1210f17afeba8a076e91743cbcdaee74369228b7a0969e1af16a0bbb6c93ff09a425495a6b67415b015a5a362f852646185e0bd44552cc8602c3cad2d41f688696d37d11ef76f4f5180264d81906e7366793cb87915f4a58d024998d11ca0206d73220078036e100f267a9608384d574096c811d2bea5c724251c7e48e2eda2e35792edd97c886428d2e8e2d24436397783c7c56e508e558a331b1257026ad459a0a10a0c566be9e4090fc99b7e62ae91af626fd2c7518230b9b0e97896f059b5a216010bde5c17e7dd9585ffd241e7a3290d3a5d0d480ce9a17a2cc775e237651ff7817b669a9e4b2dccb214b4dad622b269994f28e04e538c7b087a3339a7326988eb80df70023d71a813ea53422ac995f99a5c2cd96e8a3efb78fd1532d382f4b9b4fdaa1c4863f5ee80716a6a088fadac29f97103590d74f5854f98b963bcb59028fd2dc924b012c3744dc9a28b1e8f0dba159e3151989dbf3e7ad09c7d9a8971890ca7658f126761992b7ac9a548201c8d72db7063605d7c8d49e6c58eb790b651115d11927b869f8ec1812f8248d937b55911a2198624a373ef20848253a104722f5a717081949590e5da904832ef926cdab7e29d64c\n\n# tcId = 109\nmsg = 3134333331393236353338\nresult = valid\nsig = 314ea243b2bea8afe0c6c66279426f82e7a7bc8614f2729b002bf5775576e51efdc5a1f69e6ae5fc15b06771e45aefb21b650366a0369ab495b0a9492a4e5b5fae2af3f398253aaf829e815a6025454f337a0a530f753d3323fe9b90f36f60e127f9c7d968503cae117a098c3f04dc9fe9f8ec32e8dc1c1b00a4b627016b831387a0458ab707641a5a4ed2e7630edd85b567a856f5eb35984199aa90ff13ca7f7b856bf35379c59919e76d630840c547e5cb726dedfadb22d323d508e1aaa73cc0b1640158be6dbe72f16d7134a9eda78ad55e859b7d320a5005ff15b4dcbfaf372d72ecea1656bd50d18fb4f0ca79bdab376637f0a2dc3820b7b72a33436d0bfc4b34ea7e816fce69dd81409284325cd404864de6fdadbdfac4d74949b39080c01d0b723359c4884e356a875f1ee7a07582ed7d2426e554818fa89ad1c73f2465dc429db9d70a3b9191d1166f938ea0218fbb881d89852397edef4db544942dc8dc14752a49b8f8db93f36d39f4debf1ce3c454113dab80afb348544e964eb747181ff3884a703787e5032d0f80c3710849ab38886b958fbeae8963c209b0a076f9238ed9d467af5c9a6434eb55782b6abc0436ce177a493afb146299f61bf1784b26bb2c49bc7b3fe88e1fe44c8b04d9f24ef6acb89985ef11116e0b518502289ba29cdbd9620783022d30e186649199523760169f28f0c6969c8172ffb4ae\n\n# tcId = 110\nmsg = 333434393038323336\nresult = valid\nsig = 130818f75641ab704b30830a81e3d991e0ba571cb9a86a2e0abcb13fd013e8f550f4c7fe7b3a90a0ab6e4e5b478c496338dc6e0fbc09a80c8d39d7105a353c8f9b5fcf47c889d40e3a824e7b938b7d61a8374563dc57f7ced417d67f8d3bbdbd6980bb093042d6fabed95fbead272fd256ce88f0d11c076c03300d3fa318242c4a66f1c96141f7a030d4d1ed195a386c0cc379e84ec4cc965269c9d944cce6fee92bfac0005100d9461dbb204dbc94340287677c0493b2d6fe3a15bfa282711b9ca5773084c9dd83f2ca96748a3ccb6e8a080b6f26535a38cc9e816c5b0b2109b830145b3b54296a395638f459459a546fc0deddba9e092e004e765f5b67192e148d2e04e48efea90a5a6aabd7eefe592fa49989f6c1e80cf9e122bcbeb78c5dd34ecdebfed4bd9d84decc94b421b16b5458198e6e554fb647f28eea3a0031f45a36233dc4895e03324296939aaff35e0ecb541025fffe1b90ea1f4d7149e34ff849326356dcb118f4b43026fad0a3b1796ad7bc9c4bb27dabd35f858be584721ce053038378943b4d8f9b70984944ffea1f63cf85ccd1b33e92d7af9b0c868daf606332f75d4287200cb035eb574ea843c075b3cd66a581acb6da950d07615efec26e0819f96250c7e85ffd443f570787c609faf5cca0d3ea5d8ded6", + "d656fcba70d9fd02ea2b7dd282fbbd08185aafbed0b52139552d5d420b8200d36c3e95b\n\n# tcId = 111\nmsg = 36383239383335393239\nresult = valid\nsig = 24294dc6e8bd6ddb2a5248f77cb57d515a34ac41332ed20098921ce0fd939853a102b928e67b1619666149719511abc255111375754f5e6bf4188c585693cdb1148a11f187b454d9180baf16384b3522074ffd7f511e08a526facc0a9b8ffb19c530e01c8f4f71b6a60151c474349c6e2b958800cb83a1494e4f6ba0a1586a00e85a8a7974f8cfafb28d090fef9483298fc72266c6083112082c136a3fec28c629714f8b4267a6194a196e803b53e20496cf45e81c3055086eab1f6c4929e726c158ae39cc73985cfb8c584d149ce9d265d26d58a955b4c2abd291ada7b7f9ce4fb35f684abfc569a757e4676c388b3b6417a780528d0b04e5f1497b37206549d469b0a774997baac4309d00a467d895b06781f2adf0b2d3969c8c77692ff6c241737cfcb87357549e91b680e97fad60ec2e3998f14e4d18a601336d3147ed6a948b63e8ff7cd41cda81229d525b69a6cfa44fbddea1d10cd70c0a8596c79f796ca193341771d14b35708c2eb3e23692816bd92c8009034c25c617ba422b60c5d9b3d3302a9e2bf63b8dd1e683ffe4d0942c5941caa1220f00a6f41c3eaf6443c36547fcfdba62e42de84da1062d8a24af1e5cfa1bfea69eb62517195044aeb350a9e3b6c92401f5d97611371b920b47199fc67f3fdeb731c22a335b5ad427397cf634f97b7a29430c2f063f1f018a8b1e46e3e67330b05aaa8d371a705b4cae\n\n# tcId = 112\nmsg = 33343435313538303233\nresult = valid\nsig = 53412f1014e986c56b334e266ef55a6a60f12d30c05a2cbecf2b5bccb3791baf04e888bd32b0898cfc63d598f5e3297366fe2ab25b343fe204cf3dac1f568747594c71a246d42ba68fe9736bef05b1d4861844126af1f911e105efe198c6227550067571d611fd709238d707503906577313e6789e7ab1c8a4aac8d83a628aa19f4a136c5844cc1cc3c4e41faa6f2434eb871a7c9b9f2e52d666ea9043cdc1afd442627ba661a449e4e0e4c16f9b84130c50ae536b698d4c4facf6642d91f23d2eae36f0e4083997478dc7aa9772d8226f0904aa8120c686baaf864449d5bfdae22fed5d034605311cc0af9513889e57eed6b24561546969d1df1a110d2815ef8005baa21af1615fb6cb45d8256dda3e6a15fc764c8246d0df238302f69f36473153c841f1c5363c51724ac82d582f04b29245200f34d3be1a3c653cf9a3e0072ba592c098019f10aae25804d16ff23ea9539e6288ba4196e557b838a2074d33b6849778b5bbb04ac677690d67d7c491c928a16f69b0a2e8feb41e5c620c6e206498d0ef27df23a327b3006c822dd41f16f8ee2a3c6a905d97381270bc4ea0f4457006a31f142a1ef5fc9bf1bca535c2f7d6a1630dd20a9de675be86d1c45e93456bf06fbb8fc55343f40ab4a044092abbac0832cb1ad8d35b480e7092446fe3b5c5699977fc53f01255ea60b86948a7a71c95100ff73b266a103f0b2ed46f04\n\n# tcId = 113\nmsg = 3132363937393837363434\nresult = valid\nsig = 116caf06ba69683664a2002ff12b6ca45e82f41e9da874ee12bcb5b670db0f6228dfc5ce4d5c05f44515c4d572974b0538fa0ba7539e99cde314be5d1d9edece531930f8cf2d5745a119601082c30edba59c2943c1675334645c53c958c951213834d1d2d54c119b454e6af03e7845eaf6444665e1c838866579d1d7b167ccfe9af44ecc89cb89817df2bf3defa1dd75fac7187b68b4d9f9750001ed5f6d766f7a3fb4c4a5b01c738b514f0393dd5bffd8363c952533d933eb8234b65973bffe4d12a6e76346bdcb4d1dd061a690c853f6acf144ff68c31789d3e7dc1d2c54bc5f949323ec77ff3e1ab2e64c006e67e6703e6adcdf2ac14c4008a876421b6052d2dc9c275f592a460acb9465ac2c0aedc31a846f8f3ba6d32be20d3d3aff1eb83dbd3cf2bc0487fd1d3a6522c5accb8a1c386095a52ab42a445d41efd1202b9b61a7f1d801215ba334a88381bb13d556255d344a561ede748e63b3e701b24ca95db4eb7ea3e9662eaf75cc949aa576ae25be5b6c4e9fdffed557ce1f4abd11745a9ad1085d2c4ea900153574b560415b2ab473ef2c9676d15d315944d4a9d2f56c3ef95532b065c490b7b09c1d4c7704f8e0812623f32d87c3b1513164851cde8c25c9f42f9b6e325c20996213c199fd6943dee8d6d064fc04e88096ac8f5ea7dfd92ba0be045745910cb5f93c91c8b01940a8276b8bab766231166239cce7ce\n\n# tcId = 114\nmsg = 333939323432353533\nresult = valid\nsig = 04c799ab9a7e3676be869e977af0f6d266eee7e4f8104126be32c26e20c5ed855082bd4216edbbe1d9b55dfed7d93a0d490a425b34eb023fa6ea0058268d7ffeb25c5372c35cda0853c8529dc1634bdfddb0ee40b436af9d77954b513ef315e147b86a5ba58400a877247e2d72dd7217538233a46e368824d28b55819cbee39b1eadbedf0ee7d5f38add5810f34898344d40904beefe6d7824bda9990370bc74800175c15bbc63b9d650e2ab7820cc09d8a281e3d962dc13ffd18685446633229d474aada724ff004f0d3269a45dd3d29902a0fbcb02cdfa7001f3b4857c33c9ee691481368bc1e9435772648e31df5fb8039cdf77614cc0d14f39b988e7f989f2d8c4b36c506761d237da1d829e6e92dc41f5fb2e7d067839fb7d46a6f3c06c1f3090a3695f4c8e4f7b4419b076ed3b09b1db9e741e07ac9ca609a7b45299c34f3555a158aec1ddbbe7747782efa6b0b944a73e876db823bb5802d747bad412ec7794bc73c0c2854db87fffb27a470f7944bf559a20fd24eee589f6c4b627bd30874eae2a7397b1b4d6d9e54dac16e191d6e405cae45f43aee6a09e1baf0b3eca2a3829efe82fe13c1c969c64b0f2a03540ff43a3b0118afc84ddb1993e97a3b324f4d39af3889db9edfcf8755255aa9303891f67446bce6b7029056d7b367d2ff49607144a435cd647c0d317e3577f03f223f81bdb2426f12e73311f4e1928\n\n# tcId = 115\nmsg = 31363031393737393737\nresult = valid\nsig = 2941cae270952b08ec58d60af84fee4b1d82c21d48356bb8aad78011bac54580919ecead7a20914adee8d385ccd75307ae2f86f0e901116c59901967806bf76b284b46cb84c9bfaa3ceeea211365d5c9b713f714c4e360b1d128101850157b44c2986478f97605b70d92afbacee2dd0040c204dfa1816fe8b39306a4281668a88e276d96279b96381ef32c672a7f4b9cdaf165d7489f9424b8ee82998aec7f561f490d07b4aab4c2b2607a2efe2f89de9bb8133966dd0d3087259ceb0d7cf8296c302208439f21ebc252c532b18f36ce9f292eb8a4f423607cd03a09412557d622f38eec9fb3cfef4e317da96541ecaa82108c88f8fbccaf5449650f2ea6aef18de8fdf98b47a940f16ac0ee4d8c2980ad0ea353cb6a2d0ba96549144856667316f036c3a40ea1fbe14b9906c8149eacf8ec23df1c563c4460c70544918fde2bfa1d76dab1b8103645fcbab882f544c53077a2f940c2240c0d97f0e5b29dab4be96bd44aabeefdd0bcd431975059585740b751aff012839ef3a331f506716b822d5b9dc0339de7e0dc7d554784fca7bebab2d7f714709f11cbc5f40700ee184f95fe0c7f91953c31a0c580b8bed69dd15f45e7825552a75d875bf8bc87b145d83b9f70e8b74b07397d83907c6e8e0be888cf2e6ea5dddde1f3327144a869cab0680d4e90e92e85f661d5bdc0f29c0a6f710bb485c3af3fba73cca9b719476b1e\n\n# tcId = 116\nmsg = 3130383738373535313435\nresult = valid\nsig = c711f7b56aa4df24a29458f2e0bc31ef6e2c424d71ad243effaae03322bed2c075e49c0f1f49dd5596481613813fce93b838932bdb499a5e1626852c8d3b56b26996b21abdeb0041da3f8b2b9581455ea7abdeb643ccbc774139964e1bab443ed33f0b18f4b09965ed1598988c9aa8e9b0b44e2a13eb57aa46a7dde4262aa0ce6e62a1ae3f352ee59c3cfa53400a96051a5b7e9aafd0899a9d5d362cd8850f3b28f690726c6b931aebedc0f98ce596f2f922308f57575dcfd3e7eff33e4876c6254638637cef68804f06efb2add925e44b17813b790970bd54667d7216c7375432c652e4d4c0bd996394e357eae12a654a8058848b8bc1ca6cf1ca41ba32f01be0fe6d52e463889dae1c7cd44ff5517058ffbd2f812e5ba411bc45417141b02c10491355716f51502ea57dcb9c39aee4636dfabb0bbd9e3a9fc71c2dde9b9464b0bcc7fc94c03acd98c256cb2131c503be1aae2ac7b3b68bda68865bd785727d1500e7075a9f39766567f8985f29cdfaecca04cb27932273a5f2fad2579b0c8cb7c780e147a3d47d6785fc8d28a0e7b1b3ea9cf02f691d7b4e1b6255c0ae1c059a62b5348d2b0a8f2c4673492cfad87a31b57b325e97b8a6a40814753539d80408ee15fa077863762c9678ff3c407ed9875e61021cb1cd4e2709477fb788f96288450bc7da2c425549a9724004bc2d62ceba27835071971b04b35397f8787e51\n\n# tcId = 117\nmsg = 37303034323532393939\nresult = valid\nsig = c135093dc0ebcd24faebc840005cd04f71faf9d5d78c30e1c5a094dcf60316092f3458956c1e2bdd44d784ef65d8082a3e2da0c0a61acc81cb123b9605d5e0f75b9e943892c4b22877def8c9a7e44a461ab93aa317c772c66b643d017a2de1e0e5a4a355b0d800b7564a12c29ac1c82d12bfc0d4ddee202c6f040692976da4469459d2c4a0776789d089323d980f9d54e58fbcd391486d35609fa56269364b212cf1e240469a70c65d3920b28751e551f5e5b87b57650848b389846e6702aad12a39946cfb1c654710b1b6b0ce1abde5bcb2817e93f88f0fd18f2db0a776d09764bd806efca57bf66bafa315e02a7296c31794ec38526fa0daa1b88508d0356103dfe7cc51c073e01be33ab7f75ec84dcbb57de5a907ecf91e8e8d7b37193690cbea186e7e7851a0e6ca37334cf029c7c4ab9f2870ba1e4e02dfa380d9b8350519b9e38c0c5b6c0843edf7193828dd9d07f0145b11ad7386d429b1c139197a7cd1e8e98f99db185e9b78784854c8219e0b5c67d56704f7b5aa48463ee7f86965b9894ec4d89dcb6614ec60e658b684eb1c2c5a89a25e7c681f7a3815c176f909dc4e80feb3ddf5054c7f4f5f9b4dc626ad5462e0d5bda10cb4a900e6326e2ed5ee00f027c54992ff863d61e28adab795e2be6abb960840d7db65a3d0cdc7cfcd708666abc6041d847dd737990dbcdb9c5faaf6d704a39b18fc011a151896b5e3\n\n# tcId = 118\nmsg = 31353635333235323833\nresult = valid\nsig = 5e9ca7f867190be1e78669db4885c089e50d5b999cb459ef6645a7b52ccc71fc75018f8fa931edacce6299b1fdcdf89936dd3bb4222d7c9db69bbb911c5e1548066d0221749f88c29bd85d29ac833764f56d6190a3ab2f6e3253ad7cd35402bd8fec117f669785cd36e6afc8accc66022ff577a401c7a48a38d18e77d8a38ae7f2e74b8390b874653721ad8d2d1ee7bd82a33d62c5bfcd58db90798dea5de494586f73dc942828d90574cf5bfdacdee7adb227ec74f5c6a0644264ad114b7cc9c9856d81f94ece42fc64f93a2159c621cf86cb49049eb853fd37697c1381017", + "9efc40c58f601b6ccf4ea755bb142daa62afe151bf48aecc8350926368215504edabc5c1229e77c2b041fdd2295370325c3566361a2be54c411b94e78c928aeb4733b0205d8de21db5674f646e26d220987ed543331b4d4a46c9cf5163e972bba6f20ffc2f119899b06ca79c187e36e0dc921fefc5380420feee972982b01fb2ab7d51110ae0644ea411a5fd69b45fe0afdad222b4ec55346e2e56b900c74e7396241f86395b58bd1a6993e029a936b15b2f63e53997c224bd7e56239e6b248b7037cf48d7fdc6b85510cdbfe48afd4a62341806777015a87b503f8ebce55811664b4ff0db608a16474334505ef5ce9c67327c1bf1542e8970352a3589311cc48b317af87fa85fcbb3bea930a0cd2bef7062d83ac3a3c1547d48476fdbdd0c2d4\n\n# tcId = 119\nmsg = 3233383236333432333530\nresult = valid\nsig = 499ae8311f47244b6018a653264ca8bbbd1ca51a9bb49b8b46ec0e6903cd4b3582baca0fe3579b1d5143fa1c826897a4b48227e85926fe330011dfefc948984b17e8674a4756edd773e00575a51955bcf31a9a87c676a703155a00be004c02e6068377d11fd9942bf2060bb6c171373b043ff1d3ea46ebb14c5ecfddab08330e87dba194c7059e3519d5efeb32b212c89a70d5defb0e0b52b21ed04aaf643f7cdb738c33aacc0be843514782a3d5933f2a0ea2085e3bd9d1a5c8fe0389bffbbac5d8f5a3f05e2b202849f2a9e4ec37ffc2a3f08684b13e1e9d312a0b968aa49c43a6c65c0a2fe3b5d3a8ada64bcb3ee09b34942165eece5bd0d0b73cad7e87fb214699d27a705759aab1c8a000d3ae58c390f7d801fdcaef2d328daff7bb6f7b60010cc8dbcc648fa6865a0dcdbc9efbe6b5ff474d84bcd339005253caea87e62d2912f4e8d00a693c5227723231b05ddf6fdd6b3c61870d67fb6d231726aad59ab4d9bc13f0bb3c451c29c47d1ce56487afa173259d37792d481a8c23ef0cb437e46ce46c2bdb898ebf416fc9cebd1e7f0fdf5bcacc0b57f369474cac2218c1785ad4949397d2026e88ab1949c48d3a02806f2e4ae3059e3bdbd104ba33c907700eb585e2de830a5cc25de164e65d52ea5ac4bf78a73da733b86723fe82c3f6eeaff5d7c634a48dce217e82fa31357c937a0521e05a7a3b21597c4ee1ac93e9\n\n# tcId = 120\nmsg = 31343437383437303635\nresult = valid\nsig = 38321114c70b1f98560b78bdd0618c27110d256053bb11cc03b655b9ccf158fa512bf7b3552788366643525cef8732b6db74da92598c5a134c27d4ee46920134ca478b04335bfd952960666f6d4e758fe3cf8b0766e94c6b27ca42d4b7b5df4c3c33a17d2a4db7e476bdf8a5c220fcb1f6bf799c3961df5dd5ef86372e3caaaee42f15f9c70be9dd2961f0ae935858851297b86dcbac9888045b51521cee7053af2764eace38274b68b443439c91011a668f4082811b6841d46322ab4b3a9aa97e9be04fa01208a7ec431e00937d52073b5a98f6600188d5635b010deb199923189ac0072ef08f1b2eb788f09e776080fad9ff4d8032d9eaddc6bb2317bd16e87af522647375b3b891985b662c2f47193dba28c864118b0f80945c4afd9b9662707e86d28dfde942bfb4e45de9717247b4740db3948c5cabc5b6ff3facb277524aab1416815224209dad8b693ddbe05f1daa24e31ba254adc03bcc964caba08142b6d3d8c06751358a216d111b069e0a6215399535e5580e8f4a2bfb3fd5d89d0a66c36ce970b464973b2dacc14c8a978a944b83485f9faccae78473b244ea94a27ffad3e5624a8c7913467a85e2f419a7c51be3d616186d85de2bd28d1aee156e3b5034dc69753b9abfa8b439d86d68e40e3558f8fa6158ad0e17b6cd0b899fe22b98ed5b2b94fd31620e7e315eab3492f88c53f95f501b63b8a0367f38e8a1\n\n# tcId = 121\nmsg = 3134323630323035353434\nresult = valid\nsig = 56d7404eb298793a2e78db00408ad9b7a8ee1baf7c009cf1ce95ed7daa558d31464ade5a4175aaa3ff4f7f3919bf668ef5dda59991f9ad77c0bb85e3f4bf3dbcc7250a462510e5a5ddd0917512c6c116a6f730796a14790951ceda3f744e290048e9d394df827420454880dd756a483803d816d4883231b7651125ca2f950c4c248b3c508d50b36c0a105e0188da888acee4a3b40ba935939b78f11b8d00011b6206869c7fc459d62c10d649ca05aa2aaf9a30f9adc5b4fb648cc0565a24c87fc27eeaae0b7728c5d2ac66fc554dc16148c8f8d976207d4a973c32b3aad2cfaa3a2cf758abb1b86c5dfb83a847e65428da2e8b59c3c0789731683b1b60d5ff01e93d58e04ef6b67a526bf067f2fa6bc97951f53b91c6aff3c45f027b90e72da5fc86aed0606ec43d8b0d789d774734e5b3384f04a8f99e01e4585fa0bf3e444200991bb7a3fe96587ba39e05aa5d527a63785f7db70fce6725cbd4b6f5c7f4f095976f298f72e106f797197df2ef03ec84501e5b292ef27c13c822bad32bf217829febf1bb2da00dbbb6f3a955044e5c381c210285a889c2aabd09adbce1a52b67b0c27f6077cc155c1d78f8f94b621f14fd4225ba71c16d548572930ef1249de5b88bac8a89bd4fad55a8bfb0c34a9a2637ad771dec76edf992dee5be30048a44726dc0ee9a8d152ee3ac80e202a5a0627409751bf6440eaa95ded99b9ec097\n\n# tcId = 122\nmsg = 31393933383335323835\nresult = valid\nsig = 5382860479fc7283b786c208c6895fa30cc878867b0d0c08036cb4d1c77b60c33b4b384697161046308d07d6ebb0f914291eb7bf206e773793ff338d400d9b6a74ec390b7c5f9d9a59c5d8b10e7097e6a3a9e03f50aa660053a7ad8b32fb5c86bb56346647479869433acbcbac4cf0c5b6237d0e318a2a6af73017fb2c722b7872256e382f27cb637d15938aca0e90fc73e2f481fce70c7ee265a843df3abb17288e0841c28d9b3e93d0c0a9342999e767cd48c740f4be7297db5dfbb19f14ecca19c76f019dc37648a6369a3e7ebd3f75911521c3c667bc67e829e580a6361d5f246d8fc4ef35d66ec9322f8a9ff8ff9961aba614941c033f92ea7fadccba129d607dac5363e408fa272cefe3e1738b5152b395f77f869053e60c0e60d8a16d65c1b78dbf273fc9a3e312584138fb622895bf44a8073d25d4ab7cec1c92ae2dcafaeed22668ae3bef2b7474ce147f5dc4434b928270761ac94eb3f751a5ca69dd008cf7df0ee845b567c027aece0a8335b412101aa22901973d166b67e1e01224d5ccbc6506840cafc6bbbe339e50b7dc920acc045f19b9df3dc936abe9dd9b49e5c332c2521d77cffcb47b57de8acb5ec3b77ba05cc6cff7d47d086f12e90744a084c216d30f663519e69bd84e4ad716d8e9fde4eb47e85ace5854d88d4f33ac5db9f4658dad283286c1ec6cd4c0fe15c232cdfe6f5b92b12264bd0988b3a3\n\n# tcId = 123\nmsg = 34323932313533353233\nresult = valid\nsig = 2d3c115bcc6341e879de32a9b07966b2a124dbf9805a9c1c84d56cd952dfba4e11503c08b2f5dffc42be3fdb92e52144de775f2e8d8be3e547da427830d3cbbdb1a6afef4e21e845186c0ea990c859b6005410404029e2907ad6913af4c93c168be96a4857efc729ae4a323fa052a8ff432a0521ddd2ed31d7b8d917aa592ec7d9082b85783a27870aa30361d8c7d5e20a2b97fea2d42c328676a9e79d0c25e3ce1df4c561adf63436fce1b2f1c6b2a0362709f86f6f5214b7c0666d99e010a384ea2aa8de2fc0fb94f88f769c083605c531eeee4cc877917c6e7bd400c9b3d4dae27a0527262ce3b19f4fbd56213634ed4ef8bbbfa19d226646c7106fd869f9a1b4fd567b6f4c584a4fd30658722132e16d2dfe8f455421effc59fb5df6d7806c9a3e06811e4307bea0b2e1dd48e514761642b4e0ec045afba3082eb967755f74186a232d067ad227860385d2274f557f4577b4c25077c0bf189f3b0142d5f3a975f8808dad8035f5a6f7462f97b65c7355685f0419e9e0112d4c00735f7f2b5ff84617f2417d5ddb530f885aa82ede90cde871b7ee04774907af4bf6086cb2c0adaf0383755d01f58fe8923204fa204baebecce83f65e625a598fab75c13cc00bfe0210e2683516421531b40e6292a12b1a5d16c9efcfc97d8b2fbacbce3dadedb3dba59a0fdf3fd119ad6b23d6bd12541f611dc1c3750a483a1acb5e8a710\n\n# tcId = 124\nmsg = 34343539393031343936\nresult = valid\nsig = 582b2358aef4ca3976f61d4e3b3336757baa2360fc037caa9f45234997c5ca59f4cfdbc3828170f4084c94aaaa4dee12df987c936b5db6c6765c70d6f5261cc1713e100e3592d052685f20a26abaf96534301570fe2e3e3ded1659af624a4c3b0ed460661e198a35544c6a7241036093ecab414248bc799dc9d3e6146b76e821165571d9802bc6314e2f6b2ad81a94e7aae429b8183c60c5c1963e847acf11321da8ed07c7e013320c49a62a1d62474735d6dc4ef4a2083f2769e2867acae904ad2d0f5fa65ec517045fb8d25efa9aa8ca46f581ec4a7c11b1e4b6831332bc119d86229ae14b4ac0b29f41b78d4d7359e9cb063cbd066a955449d11e936e5073612e3e04cbf0e4432b79dda9e3e14dd06c38721f2e6ce128af51ba6141939ce6a35c2b4b0ade9ef0138ddac979f9a24afb69f9d1d8be664abd24c382647d3045f584ddfacc55889e8994358936c8377f97f626ecc188ba2c97291b074004a363128bf85c5949ed72c7687d8b9865487d8051b07cf0546cdaf5774b70e0ccbccbbfea3a9061651d00ea6bbf45961c848b21945213ca52670da488434be2efd0a5af6367767540011b350251c4f4ea4dfe480d1c0bcba80b14e35566460e57ccd7c762e2ce04991989961aa498fd0f12a3b392c45e129720c4e67dd57ca865bb7c3c7395c1e2a78aa03cfc04d1933b3ab57fb2e74c3bd45dba43ef688fac5c1167\n\n# tcId = 125\nmsg = 31333933393731313731\nresult = valid\nsig = 63e32b219ae9da909f1db41d569fe3790e906e47067491f0c4b43caca58aa9d956eb127c3ab50e4b72694aefe29113e9506ecabed0bc52f9012d9456dcc2f229a3739e6e7b5bfa9ee8af0d303abd928d1429ca52fd0a49c5eb166c968e33f39af16a4c522155f470aeed6a93408dbb0f278a22b0f65822c8cc9bc718318d3b48c1da839b897f69efcb94539db53d49fcc06e98deb7fc1dadce1221dd4840fb8f2e280ac326e211a1f158d87ab1d473b0cf1c8692a56f8da0db28653701b2b12f18d765c59008d461fc63a92e812db87d4b7f0101d7df8174feb32cb30cf98342687ca71ce7724cbcbeb9178a57de6f07024b3d00d47c50a962e4f71b31075a576757dcb6bd2dc7c8b441c7371bf5f34f878ee5d031ba412a379e4e649fa674213a018552144f1b01a2440d2145e3752c7825c209e625920480428b2623e1616ebce39ee9d4353b1f3be1e9c86b1d5b7f8aa5d65c3260031971c1117d0aeec7bd4eeaed1d456d1ad5b99d84dc6e42835c6ce3322b71f30668ce6ceb7f6fcd8760e67c88a8bb6a810bb442a0aee6d4f42accdf2f7c18c3ea0e1a8e5ac0d2a70c31e1bf421bcf53238acb24ace9e68cc9eea3dd7813116814b06058270a1055fb2820cc3b206b39346fc76bce7e284fbd29df84f9fc4320f5afacaa6c97efb33b01f3faf73d69fce443f6ada2f1981664778dd58a1d9b7e631502ef5cc9b350e649\n\n", + "# tcId = 126\nmsg = 32333930363936343935\nresult = valid\nsig = 43b42fd492f25deabc9f653464f86affe4ab5fb9ac8c9038730a69d13311c7c36dd97c14721102d33c15c38e3671e2c233d14edd4551bf369a80e89cd7b42d91d631501332415844d71452dbddfa2f4bcc4406f8864b260dfbfaef89f782ce5f014a6c406adcc4028b31dcc67590ed04bbdbb601b28c2e674e48ffddaf1b4c95cccdd2c2293b7b728b0475fe7b2cebb154367d2ebc7d5fe61c7dac606b509a193089c311ffe30cd04e438c826ee2e56b95c43754ed89b06ba000ba0d25b34ff20350ae4672c76d003748301bde42871c08fbc81017caf76b20c6c98ce5ccaae81818a6429cb8cf04ab3f26244098480210a9dd956b99c6aa9f4dcf45b755b306724b28743b03d699efd13b9008b33c3e2e5367551147b25439b87718996f03b2ec16e1cd7007a9a711b03ec1454a769021feb9c05f327502ffb2189d6c2a0ab4e74bfb01994a3f084f9658068057b9f635300e855350fcb2b569a526c739e76a6d0939854481332dd98fcaf60e154daef7af7d4379be774be82c247eb0d52e3bdc4a79c9be154035835d402cc5953799567499644188902f2c4dda86d04598ca2e9c4cdad781baa2b7bb3cee2e44c512fed31e024ba314197d8e864f067bf12f24e029c3a8dfd6e3bd7dfd222cabe9aa9e06b0c1a4293d10360803e5732a610e9c26e190b7493c055f1695a44ce8c4f8982578708a3ee2979734765d6196273b\n\n# tcId = 127\nmsg = 3131343436303536323634\nresult = valid\nsig = a70928e1809c7057b458a1ec4e4b3834bb6d24ae874ba3d19ad52a4d839a9ecae8f41df5e539fc4453841e470a4a751dda5e7bb3e9e2f3c19d3ede54f231ff34c499cb0c2b907003ecb1bdde486444d6c8467523ffdb2d54c7a51992ffd8cc7c5cf86b1255b2f96b3887ce9454a2a9b601e1ba18e1a06deebc566fd8229db2297c46a3e8122a413e5d3a203645ded323a59a5be8e4d1d59d425e3975e13f644e382955e497ee34d17e9f886d2b5ed849812ea325fcd65fd3743ca99dbeb8bbc5e91d82e72e94a82127baa8c385cc3af73d39a7d40ff2c403df50fd69c777b92039a7cc1ecc3af13521565b17f169077998a1667d9cc1e36c60a69b38458e1bb472a41bc796e1833fc7eb38a4156e6628d5c72b5807c5c7e040917c4232b3e9a3fb7a74eee6cfb48f9850e8b61eed38a2e6149f6d5036446f71aec83d84d1164205e1465f4f1e818ce24a92c194eb3dd8a87e3369769b16417c3c1d2cb41bf3f9c08e2aaa8ed941dcc35ccc550e7fddaa2de43a7d0e02db74b398047e02c23786ab7b3b9d8e3c2a0ebcbda5a2eaeca41b74e7c69b1a48a809fbb56b353640bf46dd13268682eed38424ec36e7392c5b4efb17d75ed23235c00c1f3ac7cdc2935f8c2b8d9b466b1f8a2e393af64f54e3ba00227e7600a5800d8c3fbec9c276f9e9b89dc18161fe440ef6b235adefdd62f22682a4fec3e1b117e4db1325263fd80c\n\n# tcId = 128\nmsg = 363835303034373530\nresult = valid\nsig = 2ecb207c24e560bf8c27bbc98004114f7cb9d5814f52c43ba2dcdddb82043063ef6f45b97fb26d8602f304857fdecf66876267833a452dd4d89327b95ba4162add93d697368bd17aaf982506be95ab2ed6f0b46019fcc9dbc15dad63c156c31db2340418f39da0d2c644a88853cfbe26c6f059bab4cd0b031a880da36d298c352ff1cdcb146a8425abbcf2d0e651d1870734686b57d306e91694955b7cb10e856556054322f93a9d45d86c9e905dae977916417e5ec86d0a0b2f7cd8ab8ce18a35b02bbaa977a02646e8c6d870db4a816ddd484a1b9314c7be412bf131f9df5c3cd529da82d584d85485a44013fecd7e820339b67b2fe9634974da873bb4284fdcb7a671df530c529c2d151be9247e77fc30e36f9e14250b76b68ae931914239fa8dd5b8c293a325d043cb300f20326eb563af224572b345bc4e069c3db920f7d222ba9d268a52c6fd5680481fc6f2e1c93dde845c821e158d971b09583ee10187c44fc9e4ca5b0c9a312ae5240534c03c4eb8ec375614f0e9ecc2ca89d99b375d6812a3a58dfb354875dc5c2eca6883beaa26af80c2c40cda9efc4edf4f63fd1d4a34140c7b37df98144a0cbe4dd5e2ae25b8cfbd072bfac0a4faf62915bfa851351c73215cf5823044be6551b1ad48a71c0b354c472d9175ea5f7819c3268d18452fe12f1d0e895caea537b3da3c035929d290e64dc38038fd0657cdb514b2\n\n# tcId = 129\nmsg = 3232323035333630363139\nresult = valid\nsig = b49a149864b4ada746da07d3dc55b95b46bc2dde52263b5ece4a68ac521615e9de66d35260a0f1569b6826f387d79c68c1930a8a7cd41b98d060689fa21fd85776d970a55e3606238b4c42a2f5552cffc1a95f0cab6fc6b87f40eabeb83cd9a7271be57589aa9603d535e5d8b6b101a7ee20f3e1810a5a96e57341722904c7f8af6f01180cebec2ca12259d409c1c8ed15f4df40948fe47e296d82c2aa3f60f4f4aec2edfc3109c148f8bf5c55f8c22b6bec51485dcf10e323ad99ae09c85e749824de11f150cabe54f2ec9e95750281c399bfcce82cd5ee3a7848fd18dfb42065ae134acae6ca6c08cefc954c54690a197f0d9ef61594d2c1fd4dfb6cf99262ad749f83b0b143e4ec1ec35aa12b6b0d279692c4e0332a6de12ff1f88d716a1f54a182927d184c22da277c0be29eafb313446bf45c76b08f13a583cf445ffe75c852e51293bb6a64432b6a75ec933726150a8e4b3f52514b3dda2ae8bca409b4193cd741e16773200cd1ed526cebbcfe24613476684ed66963a699ac90ab84274664f807e4918f24908b42758e2399bcaa5ab4f3363f0c72563dfa10a15c16fb708e06acdcb88d35ee79b468e64cd383b8c8133e16e0618a2a1e56180bc92ac4c766e13ac357dcb0e2003bf3960b72ce0cb7c5482ac0f9fc7e629068bbcc92e46e849bdd39be373ecbf737a82941e11917cf70c1a9e1afd6602e285cd6fef1db\n\n# tcId = 130\nmsg = 36323135363635313234\nresult = valid\nsig = 643670133c6c1e953ff28a10ff3833c6c0933916d4c0fc368d9bc4e6cc35bb1901b1acd067e4436470dbbcea8e2e8912d85d49ee99fa140ae1a3ee6663c8980a852c96af8686f4ef5409d98e0d0b68bebf7673752a6bf61e0476597bef490f65dcf9703f49774c42421f74280be8259c9b192b06a0b52751526aaafb0a276cbc588ff5ff80dec98816e169327d57a581817accf2ec4f2d056f1bd4fb7252543bb95b436a665eb1badc87d05dede7f91f03d0b66cdb6264671254c2aa82392a73e55cae710350f69908615902128f1d96dce93031e6a532edf534831284d94a4f2e1fdb319dcfc62e4637c101f21a0d784ec7d6a1ccb743bf5c9994e5ddd34e7e76a0fb2f7f7eca216e69c3a1e068fe391262a97fa009977318284f162c4fa3fb2a6cd154ffa8cd4306e65babd405bdf8d879d14c0c0503b66078bf8c84c947389ef71fbe53dac758151bf415e6d82575319464cb9ab221d2fe36600d8c2dcdb7f5ea1848d49f7cbab8620e2ec2a220a74d332464d95414d11605791f25f304893553ac99577690851b36f89708f74d5802ae6e0cdb69b651e9ef66a6e1a66cc2aab10ae05b58149e4ae2962b7afc0c1df8f8d51267d1cbe8b0ff225a693546daa46f2a7e65cc7099d1aafdb1e794f0f0a9b40571d184085ae873e1ae799aff76d901e798d484bc0aaf9f3f498731b60a6553a74c32656345f687c529abcb849b\n\n# tcId = 131\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 9d1925a05f0e28592ed69d6951ff5417b240bc327ded41b460de2fc3a0101bb89d6badc5bd50e2d1432a57b7bd620646e923405253e93c7f2550c0740ab9657752863739fcf89d492ab1cd8ab2088f4ccd8848c4eaf95cd5e7240872472f35cb702341c6965c0fb7b113bc45d991cf9616b7e200f2cfe79201babba3455a60cd628678725c49958282a2c751e0861f20d49a4294d59c3cd33c6ab0b6d02121f6f2c9322b6f9505694de40f9a98f628edddf18b9dcad1cf586ef22e7000cf09582f80f0c377955e110c93dbf9d7938c59a0b7fa283c2f3b186c21e070da5bb800ec622036906306229f8f965133df82521f454d900a01bbee1aefce262b1d8d9219ca809c699e523c5c7204ce45c91fab1cbfcbc1930c661b8a3da04e29d63794a65b1a656a7870c7974bb785fe49dde68118feff1dc6374032e9225325c3e3d312850d0ebba0a5aecea061b5d61c8f13f9f82e6cecf6667278da4ac38ec4424bcc0fa6181ba1d63966e473157c76c7d007f2a0f01eb4efb54cfbcdd1254a871775339354695618d791ffa8d57fedffbbe568a5b848b7fe037f8002d96c478a21313ccf42e5819478aed99f6ba834520ac2460a5aed186a96dd9c90754f9d21bdfcd2635bbd11e956341d0284b51e352c79a7adf1748f2deb2921dfe6ce8d36aafa35cdcfe5917113d0c29cf29478f9000a0c78396cd891dea0056042711c0e54\n\n# tcId = 132\n# first byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 2f19362834eb20e169132d1ba73bfe32b50faaf9c413d0b2ad578e263cad266a3144835b129648471fbbbd4bedd9668d6e96d4c0d0b95504a8beefcda6b9bae162c2c1bf53ba91d9e1771f46e60c0c1d356fa166a331d51ea85bf270e7cec459908f1fc29bb6b5f216eb9f5f453d29fbd486a03355cdfffd6d131f4a027c9b179ef91257272d5a383898b864732edcde78e5cdf2a9ec9640e9500ac7bb06a7b1f1e947ebd468815a56a86a6f747e806cdbfb81d3fec3ff66af0fe5a472f559ac05b2613ada9e40587d75d98c1368776c696ded9c0b34100eaaa80f2016a2797ff0c0090e4e3b042943436336c8fe72fb5ba9c4b5264d97421582e0e859b8a46a083aa75d7b8f1137fc7d1703812f681f615804385d8f533f0f4f8c21ef3921f42be0f2ee863480d72dd8a4d78256cd4f44ffd62526abd67d2b4393328d41e45f569235f091bed9e2c72b559dff4af790401c18b4af71613ab53f1d362f3ff2e6b0d4c181ca051f88087ecfcecfe8a4844f7f99f624aa43a070bf023d28eac88368e7e8f7c2357ce63728820422a48ec0970566ac96ea714422d5f67a28f5b67ea9008dc95bef728c51c8b5d83d59f92c4169dfaf232b4926c9b59c5385fab598bc6df7ef58b88a60462f2692a8abb9f8699169094b1971c9dd6e90517582721f6e49f5af1e94d9bb0efd5a0313968322d86a2e2aa2e91ddc9d4fde0a6b612740\n\n# tcId = 133\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 88a4b39c219e6d7a7155a5e38eb2bf76715c540c817f5f7c3ac827fa34ac202c7d904aef8d59bf449154fdec535b45e1d0a5e9d31d4ea75ce4e6a07e2b7b5ad61181a2172f220e4a0679857eb2152a3e2aee3c5c0fbe8e518f6ae410cab5ce861c66ccc7f72494b9b0f0a06cb8122f16776ba7098139884006a08a6f752948b677f1bec1e867afab783f03507c5a4a528ba2a2e0a118630bd93ebaaa96ce378bac92a9f02eaf0838636685cdb7be2da6bc6438cc84b907b4c927eb1df22a3242e4886bd74ef7133e37708d3d2528ebe39e9c051a217c6c7deb2e6a87b90", + "5abf4ad4326d6a830ccbf2c3044befbb9100a364ab897a684b472104a1f1484e39c2f9ff3f5b8ead0fb813e3d54673713f1909af085359c881bdc7b82ca9f2f3c1ddf3b17f796496d29b62e1bdc7eeff0c65b78b4ae81fe7b397d02fd0e74463b3cb68064aac87dd0aeb36248c50974b066b7864924f36084e7bcf462f08fdfb387c803afffeebc9f0c317c9882713a50800e1250776720d1dba53e5c1dd3e8b176c6abd051bcdc9851e7107417f06c5cd9e8853f75718dc6386a7f4747ffaa87994462fbd9ceac6b5da79f9dc5c5363116a308b4c20e673acc5a4aad3fe7f427ee1c08ade6eeb048cbaa0120eaa3a74ee39e5f9e39dac10d5019f1d115dfbe051090037503a63229c216a6cd4b6b4723340debcd812c13edd4e77e66380bac99dfb0\n\n# tcId = 134\n# last byte of m_hash modified\nmsg = 313233343030\nresult = invalid\nsig = 39a5d241a8c6648f4f3ffc5224dc31585e22a58d343cf227b405466ff8f8d5bf553affe12198e6f8515b05d4f6bda0fd645874676d7bff6dd67345f4a1aeb21adb43abab63c3cd53f186b62a1d44d2cd9425cdf163bd2f90cd190329718c18e7faccd7c0f5f8547d74bb9df9890cc8c5a84c6f8fde84f4c8e3409703196a7d7466afa6c0edc728f1e513fabb7df97172545ae8c865ce95dfa81ff35870e71b1067762836a8dcaf186c9fc7e0a633f98f7d32ae10b2a6d962f720d6784e64c04e08f8dfd688746daa69bc70f652d1d6f806b0df297f655162809fbed4cf0e07d5ceb66fc5b2fb89abc4c2abafe325eb4617a2d244783f70002056961b26f0c2dc5a7df3e883bfe36310ac3ec92b71687d6b6bb3d11378f0ff85d98c6584bf2d2c317bf287e95537d0314519bc6b01798c26b3d942d08194dc34a884d62160919db67df95fb9bd4d917d4cee73f88914572db84ddb3804984c2da20eaac9bed684a0bbc224dd623e527255fd27ebcf6435292997fec51b55b73dd83decd002c348b2025776f2031672a15fc62ff857938e0cfe4da61f5f9e0442d4452a1f7c2687c632bfcb143a544120017e26854ff6a3e8d597ba4fca595984fe1d38a9199327d12fcdd38663dcc7d1fc7ac6d7845022de5336f9e570a6700f0c5eba0ee68c4e75295f69b76de1455406cc6b285ef5b86729230ef8781fbe63e0bd9c82a1064d\n\n# tcId = 135\n# all bits in m_hash flipped\nmsg = 313233343030\nresult = invalid\nsig = 3ba629ef8d7cb5798b51fef0959cc00b4ed788f6f37b70cfb16d68b864ed1a33ebccf4890c78970695825e78b3f219811e928d27af0d389e4b75624a06c7cf2174e2a9de6e87394f617b8fa0361a490dd45b9cfaff13b8b807e5ecb0c1b6464228f1fd968b9af8f7a63fad9a7fa53bcbc633331d33b4d7c2bac330354324365c0616bbf22bb9de6a5df5570150186f517ed1b75433ac186ce41ea4f330ccb6fdac5f8db5f63e37fd3340631f7e4c0365b75a0b2a9d790bdc6a0ebf828c84a426fa9a7154cfea1bb9450a8261e0cdfacafc10ce08b64f941c3bc23732a4c3c43c6126736d84033365bb57b3587ed98c031a85325a15ec6642a99cdb186156993ccae8e36640419c15287e7b7c0518376589b93106c434d67b5a5c1fd34fbc569a4e4edfe06b621fe3bb86efb0fb15475db5477f6f9a85d385dd49f0cf3c5d4f853d0574991d1a508d5767df9219f8f15e4760f049c84938d4dca1445df3d15f9f42191e34bdeb15742050812b30a509d4a2444dce219f05d0faf11342bae72dc3f5ab1fd2f25b507d7d7e30a9d4c619ff587ea03d471c8d0306ce89ff3a8c1b2d650eee83308a9236dec87e0af54c74f402f9cb84379aa6c9586db66aefc94fbde391330fc108569a0b9d0b63c974f333c34e881494e02047b19102772a61f89f19622e0b8d92dba4acb19d395d6170dd5d22220b5e678d2c9c9cc7c843a195be\n\n# tcId = 136\n# s_len changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 9e591980e9ec3d62e2edc3163ac8206fc09fe026a2f7e622dc5a6d02976d30ecf141295335008d91a223ee98a143541494ccf7cb06a1aa61de524fb5bb4b379a67ed2ced447c7b395c57a625f835dec6844c3b67a85aaae10e273d3902f5f30539711f98d73f86beccd798b98541a84a03ccb3379e8eff88c19c88aac7b7ea99758194ffa6660153d4f22c1252dd1b7b574e19b3492f28cc097d3ee3f30f6b88576bc6299512f9f8749e0b297295bc275ca59f8056decfca9f3980e6f8d6e07b73e1a8ae8b3847556cd67ab77b96618979ed37744be2d6bc9f2b671615f1d4c4c1b419f05036148182ad4c6375f9e3c7cb37bb75d16c4486e97c0ac5685995cd8e5d76452934b26105be9074b2f8daeb1add13c9b127dca2858e5c80e686791a6f98cd98e540bdf27d21b2dc9fc84e09561df968d73c190b3081293d666be7d991761f4722450ac249a6eb4bcdf190c214630c85243a6c5970184e257c00c5a2a18bcd20195fd041887f001e06d4a6049e210cce62356f99853f3da2522d3d63739fbb2ff315e68ab4a05ba1e29e5b93808df51aeaced52539d7b956db2f229999ac09a6d4c2ef8714ef9d4783f538559f29af9d850bf71b001f231270874fb8dc60f1d1554f60fa69cd657112530e22563fcde26c3c86137e476a2fc1d8ba4a15dda42d4d8a20fbbad7586f472b716d6ea2ee30f1c111bdbb3db8e5e2d933a8\n\n# tcId = 137\n# s_len changed to 20\nmsg = 313233343030\nresult = invalid\nsig = 23e198d582d048874ce4e6e69f5a81234ca08be1fc9cf0f7be05454997fad87da8f05c2faf7285a7a9ca7aa50f772b8175479b7bec85919162b8a7eb7cd4c1b8f0aaa64a8f371e23ec2c3428d7d83411f24bbd4b80762a75fa0e5de468a71dbe9bac382b4072241e3c7085ed2b9e72ec3779c1f70bbd0f246834f3e81ebffee13312d133e1ddaeb58b84d1ac1b441f311ee1e2c9693e300862cdf5b4a5d820dfde870da22746be0b12dfb943780c0ba928c657c54bea0d84db37fe50f0965ceab905f2ec3ff177421b11c30e846ad93212485e7f6e52d7d51af1c96f31fef174ab38cfb1b1fb5961cfadac518a6a4991ff2d561a7d8dadc5ad430c94b40c04a297012f81e6e84ca02879fd82b73744c4372ec02f141ae6c4ce75595559f3f4cc9e4b7a7a6d93636487e34938082b3fd5f09366a062484d1820586a720a9618ec18d980c969a28d74c81fe4fe7bb61986769a89716c965a7f056aff60e9175527778210eae23e53e244b973b2452f40ab375222621a89e1f5f2abfe5039708f2a659553582f760f0d264f854840d069e8c4db0246738af1697b05980c1f53a1ba4eef8e08583781c13a93d03eb19db75e71bdd0602b91908a885b41f0b8d9588d6e05796c8a6f8d220922ef9bcdb026af9bb328ac7d96d4078205ba1abf00eea45b9c260e3b55da036864bf5bc0cc2d3944fdbcc7e64539a45238bb2061210514\n\n# tcId = 138\n# salt is all 0\nmsg = 313233343030\nresult = valid\nsig = 0147dc7e2712616f76c84caaa47f17f267954a0924bcd846fb3389202c059062f30b786dafab71fd7464caaec5a968f75b20fda1a4c074c89b2732baee615c6e88d1e2e2fad16bda01db395df1103e0d1796da2fdf9d9c8c1c776578e8acde7d97808deb83d0c4e5115de538b3f5a48ead7ac6b5076b12baf7db4aa68a091174020e5e4adf275702020e6eeb9d8c4500170dc5e2171ac370763f7b1000f805d924bbd80cec120446e9be5669181a8e4eb033ceac5278e7b80ddf97d1a58737f072957a221fc27cdd18aa0514b0811e967d5f0eca4f2553dea4760299c4db6347c9070759809247c48d035cfa06caeba20db6122cc70f81647e93f5fe63c4861f637c3623354f9c2f8bd2f9906b0860d0c81c05a0033d966323c8319c5633f537b9180166a2f15502b5e06dee09616f2589606e7229a0e6fc770261abd737c02cfeb833379d0d5b850a39d4587566dab90ca7a8331654532b589ab7aa20376f355aecc03c2b06149f2f9b4290d0ed304eea6947d235341455ccc04e91e3c56db5d1b74928c3451b5a9d3ab246ffaf7773b0d86f35400ad2ae02ec761ae675ba70d1a8dfceef2a8a70caa3e4aee8c98578bb8ef5a8e2570646d1e62ec2fcbef115ceed2c16cf944b4f175ab0899dca124683f3bf00dd0dee74c25dc4cc82e80d10e9a941845d9e174dbc9844941738eb22076a9f6253cf604d62346c14663bdbaf\n\n# tcId = 139\n# salt is all 1\nmsg = 313233343030\nresult = valid\nsig = 315a9a4ed7b0ea4db96b233c62a0e7bdd725da924ba2ab8e2f20ccadb2b5256bca0308cddcf739d1e6b33a859f03c550d65c78958f0eeabff625bce6c8ffe38b60afff13cf33866c35ebbfa85b70a3c592f74e47fd97b07f3a7c4f14e26e7be666ff64cfbd873cc06dff82da222dc135ff47f875ccd695ca8c64572a97b76ee7c772d9d07e4476fd4e945ab0146ace3f0c2fb98c34a066f053d93480d1c7725f858e459b0cba699093e8c315bbd6d1347b608b51906d44d49f106ed866e230785afb2a2002b82305bcdb9927ca266ae641a570d0b58f344b5e077501d6ec2fd69b3ebc80d7dce55590f4504fa809178d92b45aa69ec1b28fb69197991ef33dc9f4cd661fd6ae74eb99dfdd1ef122f12d04f7c7e624659fbcb2b987fd5fd25a104d735acf50f3ad070333e9cd4e659aaeb5dd28c86ef0680d0a6b526523e3e5a04cde0fa997c2a4a4744cd87170971ae3d903e0c085b6e62f8b715df76c7779a729c5d92382419804eb32b23fe4fcbaafc58ffe9475710e789a09cd9c3b8737032222d92d0a4cdbe53902d167d49f41e60c94ba8ba119499a5bcdd3eab544cc6226389c732d782c69c97b56c4b701a6bc032079150ae1af8a7ce5e0ac540781e84723e076911f4cc238e95689ac12d05676cc6da9219c491e2efa2af317407b5846fa852261181ccad659911c19931fae0f7e70e44d2b056a2f63d2f6983c9502\n\n# tcId = 140\n# byte 0 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 07c9a0c4ec1ec530aff99c7add866e0d065ad0d4b8c04b1937fbd821a204d11f47f61d934105028abd2f4630c5460d68ce33a02a95866f6b58bf6b3cd06a82e543620cef0e4261083c672f2289f3779bd085368d75a0ca002427b0997e1b13f0ae4e2a32d475c0ab3c7088219708c1b774577db73ddae7dd22d32741cc3815029596c0f654c45d6795d47b4c1007d25e026536124c121b5c1ad7ba59b8cc5ac7c288ebee89df9a7385676f4c928da96b2216505c164f527b0c85e4465809a2bb834d47e1f8221d62f4bcf86e92fe10b11dec6b0d8aa34cbe1a8fc43619f99971c85dc3eb4aa091a76055c41151964b5d65f593efa0dd6a82f076b60a71e11d88b40c5c5643e9fde6c05341d2e32bddba6050af72e8583f8ccc2605e7596f7206ef7b9b59829d911a9b5199d4438f642d2367d28b5d4be12cfc5280402d86712b6eed2ce2ebf37f62bcdeebf989256a1e19dde38f32e3980b8fac73ad9153ccc0f140c96413bf7899d8fda510d8315e7139e8f749f8ecea99afb63af081534cc9847d81e520b926b8f0bf1de4976c5f6de8b7cbbde644158bbd3807bb9fce36339a06d930c137230f52fbe546066bf6064ecdc76568d36ae706252dd4a9bddd3b2567ccd", + "eb3bab11bbab3560507b5557a9c66aabf9e2cf3e42e3691ef77a3b29889a1b7e7287b908f1c281cbe2212a3d980bc3d312819fab824504167ac01c418\n\n# tcId = 141\n# byte 7 in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 22e1bb23c2bef81ad373284aebaa714bd1a9aef8bc6730b66e73ff0f6649a17b2a57b3b14ee4dd0362f659b69c1528907ca7ac8a9e5017152073b06491b255a7d5b8f6909c18583d8d118ee32d3c31d7845c30c419b518575b47b6c632f2102c4fbc73c2ae5920d97587ddcb63eb922cdb68c00ad477e028049cac752e4101c364e11c61926bbbe731a7a09cd30c376ced8084bd1e9e7532793300f5d063faacd167f014e66f424a50e2329091a63861539327b664b019124fc3f3131c567426036b55ccd7a5e37c3cea52ed02ab9dfef0d4c08735d04aa32f11938c18c7ec8c126e90793f6f5462366c869c7178701e3ac87e68d7b8aab57e5750b798c89bd528edc2474627aa5f087682b9b652bd6d61455a2b7181e0c2eff78b89fbac1a63691a3c94c873d8ff6969c754d62e1d135e1a69276f978169ffb5495c6c26f77c9a9e9229d436abeb0f635ceb786e5ac52cb5b57bf6f0778b62021c5ebe358099a995197712ce187cfcf60da15c04382d2828b6422e1959445be219e9aad957e050bc5214e8b18e916eb5d1d6f7a7bcf64291f51922c5c41d053d50ae98ff3c3942fbd55168bb2c439835f79d1fcacb3b8f1e40bcb2d3eb1db774b07822a4e6ffd021a49fd9eeed2060a79c3674c7ba5f7ef6c909325bf53739da9b58c775edd9ef54d625f00b99bcbc5b2ff2934769a497597862c818428eada5058e5e988f41\n\n# tcId = 142\n# all bytes in zero padding modified\nmsg = 313233343030\nresult = invalid\nsig = 960e2cc16879708c9ae7329f118b3d9c8c7512f54411c7912c18e1b52fc9b644e72ab9f467c78069e2fd0156241b82b6677e34b782b7fb0094c67adb4827e050b0b3fcd1a050a6fc4e7045b3766dbc9a3f59116226ce2a2e4135e21697bf4560a32b385eb438e78b9adea06a5bd2fe268a1cfe763be160d0c5628fa009c870deb70787d514a78da0b505897afbf0905c3d9c2d849f8bdedbac1ad26f6fc34f74fada027f49972b33d03e9d82b04834a6500599d12d524473b4e8a8d1bc8e4402cc1e5224f62911cb0cc922513aeedae57de13c037b527e36771d555c27ad4c92359dad0f4617b22fe672f01f8967ee1d602f22fd40b6328ecd7698fa1bd8fd5358b5f430ff37904d607ddb45ceec4e66f8a4a12fe24221db24624457589b81159869c26088d426fad0a853cdbac650f4d1fafa913f98069a669e2f0c79ec84ee727dcbcaf233c7908955b98d6b5aeefbe8158b8e8e9ba60afdec7556f4278a78a84c6af3ff4c4bdc7ee06bea762db57e996e81d05ae3ec62e8d99a419c1ede6934ad1b6829d580643e16392d53d268ebb1f225c8011fabd908ce7e0c7b865f1e75290935b27a236a51f32ab43c827e249321cab4b202e02c09a747fd06468dd97906dababc0ce4e05863110945233e2138f5f8a3e4b994ac57424d9a3c1c7075836103ede5b63e2645be30c640c66cfc4ed4b26e76efd8e02f4de24699161c01\n\n# tcId = 143\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 492af926baf970e1cafe0062596f226f8b8c38bc1903a3754f83745cb321b86671411b9a96ff88ef68119ca39c8fe4599b703f6776151ef7844a9afa23ca63afa99b64721c1904329eed182a3b61f6e267b6d80f7af5b8a9a40e32e5ba6c029133c73e24c07e64a9343ea8f9b7f6658ace44645ae2a0c18ead4969f73f6b3acafe5b64d285d8fd38269c14c266c1a67f9ab1fb83793352a29ec39d847f02e1903595c88d8c64965507516309b77185a31971dd47ac47f9d7cd04ca1a33e5f61a0302c1dca998723310e0bf8af8bbb42128d3c2d0c4f90139a78bdf3ed4250c2092cf927ca137ecfce6994a6b6c12f840e69ab6855383ef93c33b93b984f5455eca3060b22712c6e82e05eb204bfb77932d7f1f7f0e9954268d801523b1649839cd6b4e04c5c9ed37b56d843aa4f9d546bebe4f2b56093987c715e784c15e6be25e8af454755e4fda56b2b8bc006946dd55469bdd9e5d5843094f78a9d74b192be98dc072da23ffab3e8fe603f7e467792948b158e84c98e8b600c97f0310241310955ce99c65f4910107f4ac96f354fb6005eab9c9f1bceaff68167bb6f39004d37df3b5de71ca13d0bbe1a2420843ece44bd3f5fca845563834eacff00fe6a16972ba647323d637fe8da1e2cd3eb1db2158efd395ec65ed315aa229a7733dd70b741c6e2857334af80f392460c1a5563086f0190e15238cf41e74b76eeee525\n\n# tcId = 144\n# first byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 94987f1aa4dc1f0a782ff78af1da6495309e247f184b683ecb3ac5f2319ac6cb324f6e081c69ae33d2e8bec90862739187336d1133856d6ff47fd00296e96d9be845a4d606b9974edca34e36cdd19fb0e61ffd526521228f38c2874e99ca8e03f59269337b761c822df212425b38fc853d998a0d411d05a675f7d6aabf64c8068177ba8fb8b36e18df86e7f6e91368f364d7eb91c4b5878a1e4b610d089bb4fe2c4308a3a0610cc3070656b5d2b2fd636fb2ccf7731fc7c850b4cd196ca68992c5b6f2fd87d94d3c7e212fb914362657011ea8aa90baca2fbdc62e51245b88fd59a4f708da72c19202fde546a5f994fda930b9625324846e05bedf4a68d97209dec7e6c4cce36aaaa738876bab824c6a6b7d3bc80befd646fb6e08234cc60d038c510776962ffe26d4edb8ec8e047331ad7c3c9d2d0c8844169ae715a04cc53cb75c2bad8e6163ac43ce4be7c57411eed9b2c986b729af33285a8e487e26ca3254570202bb3bf4f19133ed4ce076c06af6867489c983cd579a705af7ab6818f7667ee0abcf222db7e2e956e26bb6865e7ecb2b25894ee4d27ce782c98a3dcb896ab27aa5d939f5dfc72441d45d384387bc2a162d6240eeb6d0d58eb039f439992d782c7743dfcd3a2427c24197656931b772cdfa9479e72b542b56ee393e3fd63d3552c798e49c67a6777e62fa2bf7bc41440b560f9bae3dde2f3df1da81b9a8\n\n# tcId = 145\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 445e1dc7a54c43c7aa5de88c92e5ad7dd0895513c042c3a76f4cb12231e35ed524ac846373c7ba5075518577c07063f0634734c8d5fe0ca3a870d1eaac6c8762796d310c5cc9f95aaefd1ee1f1d9adfa511ae4b3ff022eb7224f2d0b4a70915c8ae5fa3510fcfcf05290c9bf5218c39985df21a35f2f971f57f52e493a17817b2a683f82448db330c179fec67640607b4e4d8baae3a86c33a33b8f9f3fd558ac20f841a4d0b58f07c52fc25b98d5713b90bba6db7ba1aab130c7fd988ed81e56280ac4cc48ac165779a5d51ee976a28df0b29b9d5ae9a8fe790b779b9cf7cf4c8060f07e3fdafd120814788bc83952394f6a71ce3b280f065cf219aace434c345541486f05c4744b31fe747b85fe46484171ad66d81ff228dda873c49677c5785a2eeb4534d90113b2d4442af909577420de6a732905636972a334f3670109aac0d26aec70351312930258e688b8b191d2dbb9969494d1004f6747ccf63e8534abbffb0aa643dc50ae60eae61c701c89034ab3125929011420f1d95eff52189908c2ab1e9de77ce15444f5f1cdf9b6a70b5d4adac1a371ad2398f2781a0a5bb6d1c8bec564960050796ebe0ed50faa1d353e6ec959aec8fdae8b3ddd428c93c86d431af7ff53afa539a87e0c07db906692784feaff4a3c20c0f71486b25ef22a16fbe4b3cdd9de5c6c72cd02d1f041787f5052efa621bd89cef96bf48b0023f8\n\n# tcId = 146\n# last byte of hash h modified\nmsg = 313233343030\nresult = invalid\nsig = 7dc31d29d09e8a858c07924152b0f90f1b575fa9d77ee816acf6aa6c1bf3156bc25e0bae5ed6d9721604115c467f0bea762ddcfa0fbb45a1a9c97c58ce54963aeb35e63a9a26898ae3b08c56f24cc9d9fe2b3f80092cb18581867e4941eb1d1d5899c896327806bcc45ce51a6d5c117917f8ac50445140d48cfc1bd4d37e129607b3949f93463a72ff3dd085559913b73d734c406cb4d8ec5befec27cd8b43a5cacc5afdcddf48b0c3f99a761a74a249e23884aa5092bf201089abfc2b4e705a992a106254b94afa6946f6e43ac533209ccec7bcb2097f242ed4fe8448b6729aac6209b88ada4885e3131782401ccea29b45f35729c5eb810b35239d65696b761785ffd712118c2d1d2d858f7b1cb13fa9f0575b6156f330d8de9dc9431b1a48472e62cfddff6e3dc992a0d2cc4c25671f7e72b3b31d9c4a79187d0336933a6750d8a6d6d4e63332f6158d645b6b94b32f5e3eb23446e62fad0aec1a12b6e1e3e3a735beb31629305dca8ab9ef72b462ad5a04b13a3aa0737273b21fd94ac322dd2b01321f860dc0bb4daec423e3b824f76ba0955e1bf3c2b17bf4275bb91f3204c476a4dbeea928181f5038bb6e78d8b2d5bd1179726bb622694b162fd36e337eff3d41cc4d231869b3f4a49afbf1318732e5644bc32f9ee0f3990cad875d7c09b3b2661a902bca01169943728f0a3a3dfaf5f4aab9a8c9459bd19a6427a8fa\n\n# tcId = 147\n# all bytes of h replaced by 0\nmsg = 313233343030\nresult = invalid\nsig = c30b3f70a397dd8657bfc7dd49bfa7606a0c91fedc39f8b2b2bdf07dcbf8e236edba3df876d58ad90734e045ec3bb10eb6f4f0d04a6ea2b6a29c446d4be3dd5b9c7caf51cd8a591d5238ae252fc0eeeab8543572a7ed61ea77f5d619f696740b1315f2ec6a4ae9efb5a44e4028f6ec977a7439f1847b6a5341aa44b3a495b411fd9883b0f3c782bd4f416ddecc89c6ccb4faae810b961045d7dbd1d605a17ef5378928b1f4d2fdcde8bffdf6dd56bbc2bc9fe26d3f95794a6dc94f2b06521541f8d9e63c81eac921b90f171ac2a178924c45d9005c62b1134d3af85b11b961457c29878fb2442c1b48f71968a83d8630b14c32e9cb5a35c27e8ad6f075d42429721dd3ca7ef4b6daba6e1927aef2e3b8cea49c34020cf9769268e83cf098562fb7f70b158828d94fe4aa84ca5deebc7ffc8c8c8a4af42c556f50e3752740ec955b7020c3b9a6b406fd18689b62719340c68a7b63924af27044aef6879b725c97b4be9bfa794eb3572bbb48cfbc8bf6695f50f5a18b0f35968a0849bfff7b230595338e3c1f69bdb08dd5c05e8d15cc0aa1311fd726185b659cdafb4ba9b904532fa38c77cec9719de9b98f73524b4e9aa282a855f6932f547bec21c691cc2cba9e96da35b6d808b7f5fed29747fb1570fbe0c02674b1722a38434e47d7e4aa48267775e9a3e076b7575bc55b6dfcbf721a2a3e7a7905b0b486468150295e1269\n\n# tcId = 148\n# all bits of h replaced by 1s\nmsg = 313233343030\nresult = invalid\nsig = 8d91bcb5e22a56e39266ad5dd457fadb75626a69454d8606f52d11dbf016ab2d1a1758f0fc3bc95e9e6df808dd0a26f62ba25bcc90c756857adf66e9ab3d8e6af77c86921f63c7da72614ecb521e382126ea8a226c1eb33384d134561e83", + "5024eaaa54cdf7f5f4d751871fb2c61e4386120e688650be35c871dad4b7d055c12ef534aab68bb562afbaed8c47ac823792db900a5546c957571504cc4165648f586457623334c3b357b688cf82242373c5a7e48bbf92426e4d33c035a6de4e1d806577c54ad6874d04c5f48994875f41f7cc3f266cc896ae2ef5e875ff08da0b411a66be3e7a3cfc740b9855de42b3913101be2e18284997afb36832d62c8a4b6898b36150bdd24124adc8bd47ae722c2c2d479e13982c9c225616100305019a3d609887222e01c815108988507fbba1cf288703d47b36fe1e54c9f15838e765d95d46155061a10b055b47352670df7b0fcd7b7f89c5d98b5f2ba99f4ca11bbe1194998136c942905db13290e265a594fddb5f4ec3f7734f384bcbaffb70bd78c21faa0e439aa0b3d3ab70893a447337061243de88e13cafd02b53143330900bc009c3d173476081d7948829407502480c905254f8fa36a87eaa8f1265f5c49e6a57c9ea50f1888e64781f4ee821dcff7650636d6bf41772382ca9672f10c599cf90293e39bc80ff4910cd2712cc3ce4c7833cad1a671e9ada9898e9845997f59a\n\n# tcId = 149\n# all bits in hash h flipped\nmsg = 313233343030\nresult = invalid\nsig = a71ca7bb56501b24e9152f7c08e2002d2b0b59c0a00e20e5ae030820caef502e0069eff23bc65449e13603241b3e06ca71dc0fa46cd7b4fe128486267872315ce4230ef9c4dbb9131d83caaa5eb80c98dd1f4458e71d2d6cc450f43d4049cbbb97bdd97e7d7ec22a2146907469efae344e94eee8b56b44fe5f86e81074c0efee8296875c95c6a780ad7a301428df907901b03cf58a69b3f7404b4af276ec5bcbcdb345b587bbb7b84f9b7c6304b59e9dda1fb313e2810e7e514c80a702f2dceb6553ac0942ecc2a9c508333df5b2fb36cf50ca7df780bba3b1668730e5fe829758d5f22743bb6b110fbad6aeda879084d9f3a519db5e2e4af0dd6edbd779856bd0556b9cdc93e3d0849e76cccc7cfccaa42d925c04ab6c75b58bbd513189b3b61238eb7b412454966a46920d78c20d7a13841190ebcb2d778c5c59ddaedb6c7fdf2dbf0ef244ff96a73ebb4028c1a3d89f57e1a05983aab15f49543cacb7424bd3f48f117db2ad0f27a1f07a65d4cbc43edeca39b88ff35d910bfd87f295f0234bbb1f8efd5b0b3aacb251b7bbb628bdf43cf8276d26e0b0e21bea693c778aeb1c9a2a9b9f7c82c6b0600685a70f881b4354176971e872507d916806a410fe43d9612cc258afd639a59c89ff7f62d5e795b1a3c8817e0859d497806433c2b8e00a20ea05a68af90967a11074ab0866f253f79de4dddb4e721ead959f1f74e385\n\n# tcId = 150\n# hash of salt missing\nmsg = 313233343030\nresult = invalid\nsig = 97c75e05bfb1cf41d40d9459475c4ddeeb2d83dc91942fdfd50f3bc3e61fecec0a7333caf6788f5ee93e9eb71df0edf5e181fa2c7276c9123ce13b7d7fcfedac4d10e351f20fc2bf06e340c1fc58b5330793f9e79ab60d550b4cd692dbb1247bede9299f506eba27bb87567f68b3e6b9934e4f1b94dfe33c834b6b6847278e285d92c0a1c507796218bfd6ad072a1af33154f70094da064bb9cfae5cdabcbca727e1ca9d9cc2c6895270aca78842740042475d5f3af07233aed83c93ef2519fa293341bb3643f7206c0b64b6bb69dbbffb8330c122a236e572381f91980b4542449671b199926cac2f1851bcd0fdd6d1235ee1428e6032945a953ba101fd62a14a4d55596b8af8f8c16266f94863ed3a466e20c36e66cb59529eac17b738dcc7be76de25c8ad8933f19cc02d9a459ac3edc29503a8f46d4e27b2fb2d397be467f32e028b722dc7bc0908a366a6786f9c287aa8819c3caad01118551bdcfd072505b659db197d6191d441d9eeaad0d78403d8c1cb2945e6ce911c69d9f2d59fb86717a83b535c4b714365a055963c7a04a6a5edd711b0e01e6ffb082fb77933550b72adcdcdbeef8d26cf30ed6227a6396b3c2c8d3675d15bb7c03b5c84c3b8184a2b7eb8ed4e43057a299062452ece02ff8a91240245c2dd67041a214b06bf5457812cd91e1cbff12c9d92df3f2f4621271e356b7a630387317e2f2d517b2035\n\n# tcId = 151\n# first byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = a658b821e9f496bfc4d0773bca57118363c0cf6e520d4d1c0e5e4cd92f41f3e68bf29fc2605b98adcc37ddf1460d53a3ccc714c8dd29c5c5f30f234dfd0c2ff4cb88f998adc6801d87f2d3bbcdcde263058d38612d2c476d899297ff5b04448e4b36be9869fdf301f2aba98004eb6456ce5a277ee6408908cccc9fd10948903d6724a32211341bb4f17ef82b58d58d2519304eef3d7df172a317657285fdc3ea170951e5e0d672d50cde0f9502d6ee2d28684deecddfdcb65a3c6bfd4a213ffff97f291d707b2fd214ff207d538b40c4b07dafe059e96690578a86daa08878addd8e4cb422d7cc1ade303d3f3f43b3faf54d6a9316fa862a209d5f324763cd4c9aa4e1766ce52b688e7f32e3680bda51fa1f93404fb77f1e1ff14ffcbc6111f085501dc7d53c7b106d651b562f6357ebe217dc3d6040b57b2df4d811c9f82f2665c18b17497827a1789d9c8b26178ece684c9954a1d5880a0da8b338f111ded5a34f3d4854e39c8a49ba28a89b057a69911110854f247fc1f6b77fae7c454e2f6990e194bd43241724331669d41e6a2b5a9de2d29efbcccd9ae9fd912de728a3a8bf86b79f991b024648c6309feb0641134bb60724ccc59b02b3d629b2ff0b54964d4932bc8953a2da75f8b2fc74c046db96b03738d57d99f061301fa9d2549f9bbe990c8cd7e0b6a0a94e00f30cac6400120abbad679c761c7ba07f54098223\n\n# tcId = 152\n# last byte of ps modified\nmsg = 313233343030\nresult = invalid\nsig = aaeb65102cbed1c602e4544cf08a44fd282abc4cf6981d8d43cf33004bddf16cfc5488a200ef3935bc42dc6b46a60975a9f1d2e2e41824e1199ccf371b79c91b8fddd43084d1d1a8e8915d5efbf1fa1cdb4759aaad092efbf21f8bef084da1d654f801f8f80051c8d2d8b79fa9ea1578bb54f1d9397597fb164a0316d0d3c7be4be714d0fd1bfaad27325ecef7573b77609c6430c8b1cd648ae574c58b232078da0b5521f376f13b34635a573bfc298cb010f663db67756a9d109b0cf42caf35345ca8cf1ccd15b98a66574c8c6d119ec26d08eecd92fa61c609c302c902a2cf9d78f644e9db3d99d5ebfb4561fb72c33e47bc1f5385362bba51972c1fd9c94c839a6c4a3c6169a711afeb4d020ac6029445a5275a72ffbc3dde7e1f93f5f4eb00492ace4f45feb7b15a882f26e36146a2f55e18a51e8ab329403d19cf8466bae7baf449b84b842e3d2e355ad81fead994b711a3565c9f416c8523c0b26300a53e2add01f4bdaad160bca5bacce95d7b69f1086fca551bb2616818d267a2f3351d17e6f64a896d53265314548c8ceb5f29829e7e2314c5ffacf3caabbb4067441f2cce5693c4c996d887326267cee4e7545535feb7e7cc8e3f36f202ae3210999d2b5df472e0cd5e811336c19db898b6217cbb3f102169fdab8629174cbf04a53690ee4d395f064c03acd7bfd054381198031885b99f51117108f8c04f2eef57\n\n# tcId = 153\n# all bytes of ps changed to 0xff\nmsg = 313233343030\nresult = invalid\nsig = 184964ce5d2c22bd587ef648cc499b007badea08387a646ab544ba57562444667d8d0dc09baf2ea98fd096eaff5dfefdf16e0fe09c88fd895804ed977fce48cf9cc963434dd29d0c612f7dc0cdab2b992ea298393dd3dccf5498100d149bb3b29f7be67397513d532bc30dd964f661726672f6064b657e42f49f6d5e9b9170a8bfd8c2b89a6a0cd1a1691b38efb719f955b478f468092425077d490ea067d72a975df78cbd91708394bf6c703e92995bc79a071023960e0c29de8dc115890b3b250c69242fcfb76bea21b1a72acfde90adb34ca92068a2fa2dbc5431f48b5864a20a6227d521f9ae0be92c4be7cbde99157c3d5d767993176997baba3c2a3254230b8947178640f87372184df010227c3a04e85a4a4c012fb3ddcf335f18a131a864b84dabd75fadea39236e81b15241b8bb220383c6c134de6bf5824240c7b884bf41b1819aa04df77c02fa920bef52c7083eaad216bf628b0f0f08e5b995a9a4b49d9b28b1c3636c9c1ef9cbd7f537d4e3026e869941edd77759bf254945bb095884fee365b34eb9f7fac3c496df866dfed6b07a35721c8248000147677e0960ba2ad077d5022382d9f8415368d79b4ccc28882bd8dfae86bfc73274448cbd0a96ee70650a48931cc16354ad69d3b68d821abc548e3d3c0a7e8808c88d7ac0dc792ba2236e092b994b9d5a7501f347716c3e1e17cbbf8bb9a3ab15c39b2428\n\n# tcId = 154\n# all bytes of ps changed to 0x80\nmsg = 313233343030\nresult = invalid\nsig = 36f38c26e0a23f6cd5c816bd3d3e57688c4f58126b4dc24d5ec659e76c1f97a7369317ddea841a3d90a00b69ddbc6fcca2768c85250cb64c5e10452c2569126c9cf5fbb66c6a98849eddd51c6fe6f87737554f1ebc99cfd161f727bdf9da0738af5dc076c27baef7b4b2af498137475c5100bbea7cd6ad83de7c6916a9cdd3609199de4e2f65d655adfd603b4ddc507d7364fd67940c293d84ac969bbd64e63a57f62a87f5fb3c100b0b3286a1c9d2dcd263c3009534ae05272815c6d9ff82d0fa59fdd91f6a06fdacbeb6806ab71556b4bcb72fce2bc74aa0e12f0a831e103fb248bf1dda7b6eae1d9f2197dcbda37c343bd679d66433d14eff97905d2220c2672d01f69c07600428d47284b1b1d0305ebbb78bd29180d5f54344877e741401fe9cbfb671b62a254811d21f7595f841c2be876104abbf10c2a06949500f7cd883268a1b46207de28ac102b58ec99e0fbc57c99449015ff2dabd9479b3ac796946d602d4cddd9569e38e406b3b3d47027ace498dbd47bfcff785976d4ce4fb0d74b3f780fbe8c6d8a6baa50ebf53111869128ec354ed4dc0719f3cca55f610c5f82b97a1fa443ba73066236610bb6bca882d46dcd613b0f29d4272773456fb35fcdb056ca053a838abf65ceba0ac0d0742bd633351c3909a9289de1f0539fa19c1823aac286e88bc8041edcdbd4b62612b1f1610a0d519e161b2a305cd33eec1\n\n# tcId = 155\n# ps followed by 0\nmsg = 313233343030\nresult = invalid\nsig = c8ef89f800577cdcfa788084cbd57f070d634ed7ea5aa8c1286b22e9ab33f44519d6776de6b3eeb6d7663194b3097f428e8c52462549b64d3adc26beddf3283fe9af81c46f54fa5513b8df69ca951cfaf2eede4df6eefd39b68d2e5d40867a517567dcb0a4b954c99a194ac448d38cb792782bf07072baee13928a708521d35d97babb3c59095d3026e8371a8067e62bace0a6b42405a4f0e1b242a7ceb8b193d9e0584e4e231def3c1c727a999ab03ad6cc7a33d6cb147c7eab81e73948f58d550750f4d5de507f9a95c5f1a99cdb38215f4b2f22aba9a313b33edfe66473c20d3b3a109ae1ac618418fb655da69c78c56d0d8ee95ae8d569d49ba395473af9e76402a9f4b071b14ede2c28fe5666c7d6302b0914334c420274a77629d835149cd1ad045dce4aec198810ce4167df8123a2b124c7f", + "5fb6d5bd653ca55eb88a8ca2d51f9c42df365cfd8287fcc1dce58f6051e33fb0f1219f02518cbd01d86b51132b32ac0c1a6ef7ae0edcaaeb4fb190817c3c7b6b865bd85995499aaa7d87652fc1b44d9dd49a545a5de0f5f58a4798cf022e97fc8ab28319ed713c3a11d42bab6e2af1280139e03b27926812e5c67e5526c2b9e0ca318fbd48fe951717b7a5e901b782a81253d859820383a1cdf1fb20841fad390e53841b236df9cc7bb665207689e51b7d3948cf924f92d05d2af4c04a8173f46407b1f4d1b1706d27ec5\n\n# tcId = 156\n# ps followed by 0xff\nmsg = 313233343030\nresult = invalid\nsig = 83706cf470ac7e2ff571ae2f2fd618b5eca1a794be64eab576aa63e0195ddf9e6e5c44381e3a811387ec948eb2e9006d991a66dc80471f1b4875e014187e0eb1a7a497f06402f390f44b8a5beb2521ec90da193169eb86e44bef92d2bc11150cbfefe31fd9f7c6fe09f6cabde4797bcb861fc6686a0dfb38a51b80631fb25d7bd84c30d2779cb5cc6223b2e0ee8a7343db8c03015a3885b6f66057d9e9281826eb026824f0cc9059c1b21a1b7cc48b80a41713a3d07f85584cfa0cca6f65018713cdaf3ba6acf5102e0c22b2b839c8875f12db8d22c73a153923033e61a4e7c4031006194f3dbe8661428c810f5d1e93e815dce86200a3fe45525c308c5659e0d022dc0640df0591ccc5e704c8ba261fcc53d2c53eddb47f139dfc8f19b5fbbd4b498ca7b22b5ff6016b4c8f6b98e4fd4ec3bd3b4d90592a72d57968a21e912f597440ec068c7c27e7f57347d16644d78e7733634f4ef71635a1c2ad55a2448b85f1eab0feb92bfd3139b66726c77b78d5778fab114eab3d72d3c924112dfb0eb5d19958b1a60cb8f7379d53a6719b3d3a4c9ee2c2acd76cc1e5f3adde590c3e157229b9051b6d62ae4469ca3e55c184060862488160ad35c12d86e8d379c4524cead0d7b0268c5088e31717536f99cfaa7459fecc0247233d6fc890dc2f98b21f4e6008b8f89fcb119cc94a6eb96f87f057305549d18d05af0964f5285088f8\n\n# tcId = 157\n# shifted salt\nmsg = 313233343030\nresult = invalid\nsig = 99d2525d1b4ca3ea27d97237c9edd75d44e8cff850e8f3fc8643c95609db33aab1e39bbc94b00e21cba5e9b1d19b5554ff4df42d7bf1a0dd979c9699e9183bfed23c958ea7799aec3585de698d08147acc84366cff33dc45a94feb6f42de9f75927fc74ad3992aecdc100ca6c04a83753930175a85c49821420919bcc392d50e4e290d5a466e92fce5a189b9c87cb10b764c9e476427bc2719f34c1266c446c2bceb10907f730734c0706ca9de348aa5cf7f67cf00a73aad4ab2a1a8b7ccf4af5e326a0aa6df096410855271069991728f367f3569a00b9f7a97151e0c1a5898aad3ae2c9cc20e06f01013b5e4221c65d8fece68e4bd72e57a5762733d3481a721f53041e843ba06e3dbe0407c99d1897bc3b20301e469091c2fa1ec464caa650953e78007dc60750a7a72f61b2c370af195906c831b9f648e633a5c129fd70608cb132f25d51261b62bd3a56ce9c9565422653300355c7d6550b05c7c579b6378a46f57fb2fe57f2a56943640166945530cfe2410bd6cad823c73dc0ab4ad3c3ceae4e2e15225134e47f375641346d36d94e87ef6e5fd31dc88455bf70107fe8bdf9a4009c2d7782f0668739afd9d090b44f599fc1d4da05483cfdd17a9ac55b959d3af20e55a421c7a5d7e6d4200202267219b62db2f92e59bd260383b944e89a1c1beb6d5d28a9d48f235f3bbc4f172a7497c3ca8cbd5bb3418edeef02896\n\n# tcId = 158\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 121fc93905d9fb187962eb95f6f6c5871720195c624f11a552b6ff644d1eb11bdca770228afa766033cfce705effa5b081d125212bb93956b0d42cc67898be4b617405874f86847c793a4a8019eb1a1193d518f59fe85a7f1a491e68ef7b1c0845cd10419db3fc9a5cccb045e31137ed0fb2180239057f207329b1b60f04bd1111b8a9f7f5179ebf98d991fb1eef76753011eafe090583a32be5010898f24b7154eb10d8dc3fda6828782268a0495e3c0c1ffe8eae51d1106c316dac5a0f07a9748f8be0c639ff12f00af0f0fbf4f651f26298822e08d65b34db6d15fea7ee280f1262ef47338716f3ddd64ec7d7109e97f54a299f07e3e71e229c4bc0f587bfc6c9d3a9e67c16aa79359cbda18f70b21bff5d6f112cfb3a188786c26f54435063c86ff1f867ff8e9e74fc9ff849c657edd17153e71d78c175fbed9d69865faedcd5b1a5392beb932dfca613c54edc8e2be963eb0e7ff47e1bf972a403fb2e257be4bb2d1dfffc84179be8061f37477829155168b25d907c3bbebe2e7492d3950730e227d1faaf7cdbe0fec3f2f19e9f98842bb29cfa60b87d3dd02e51b43468715ec388583656eb50b93ce501daaab974eb191840044a204ab039c09c092ae02dc54330fb65048e7ae8aa8117593ababf695b9fd2704f31d12071d76f8c2bcd2aa14bde65a7ac1c785843c2391462ebae10812a6bb735bfb1f2ac3d74ea5da9\n\n# tcId = 159\n# first byte of masked_db changed to 0\nmsg = 313233343030\nresult = invalid\nsig = 290567b67c0a8c1c756f6f0c4b5157e1ab1c921af2d02d0ced12472404694c6a56549bb0cd3227c7f04e769c75b46569640f2504e2892ea270ad8bb102a001f7af1d1011d92e01c9bcbf284236151fda13a6072bf4da11f9263773967fdf3122a401e11511a04b633251516e8aed8de669a20223e0dd39a6b841bff40ba6af6934e9c9ca3fa2a3d277801e3483879640e16fbc5b8a5240e54d50b07c081f84d63b9ff9b24d703327a997f1a74098ae3e5a5a0c380d68b4a3437c7d5f33da1187e7b6ed5d9eadd1e1c2d60d6df0a0910e9f93e17f01bb2e643f451f36178a13193d057c0c8648a55002df72d1166771e1d9ae36dda2c6058bd9d2ab0a350be60b15a021a016f06dd6e6b9fc8834db10190b89bb880aa38e5dfb03bd122ea9b68ac13057c9f1aec75e90cef05602dbf4bc70d94ce7231265b3e846a2e2d00b53e8d6c04470125d07e782cf559c41d82f1e10113131d48f4ae091204ee81388af98722b17114a396764ea8a3852c1ad727de9742220cb3d111e0fe4de9a27c636e57f8343fc287d74cfa9e811762b4f9ff3715aea0a258baf4cedb89a22e1593eac18f34e83f9a34ed139158b6ad8d4b292a7e4d933b58bd6cd9277d93f67bda8f67be72fe32d1805fb33ac89ae2aa2864aa402ecbca8430bcd6d42b17fda76d13ee659a23a629bf4d0e49d5ff5e327ffd55584b254c90140269b226fe561516fbe\n\n# tcId = 160\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = c7a3f33ebacd1b82e186709375be80d2eb75086bebffab34dce599b3e97f59903f04443b1062a6884a4360d92dd8646e1455e95b33dad16854f744c4acf3e9e36f85f830d3a8b75e583a828e253c2d62df5c5ad4374110d6dd85426d86894f35833f37a7433f234ef966f830249dbdbabde11602976c1afeb321dbc46e6c481290108e97cc7cec2f9d62a9a1d0f00a26afbc74d45f6f137880909fb5167da8b842894dd4c933eb1f7db3402179bf130595679e260f38c4a33e0b3e9f73191756f4463b6cd159ccb0b41c75f9f405244de0aa6592563b6f0d3e519582acb1edcca9cf89b91589911e9be178cc29d429721ae373a49addc23d72057c6709eb0eee81a60de406444ce5f00783884caaceb1e07a91de1fc6e2b88a0c9e28d6eeb6c965d4e7964b24b09130b1a2536e117ba1ad3e4eab1bfb84918382739d3a0ad75f271ac343b37224c8b1b86ad1a62250072f68212e0bf1c9a3715e1449d44ae471db4696310d9fc7a4148bdbc29d264ce4c4696f758d4df5543f71ca182b0f4ca36ce1c2df8b574ae3a08e59d0c014fdb44c24d7bbd9d59b39ea7fc269c2d2b2163188d6339209726471fe297548b27cd3b6e3c58ac7bdbe3a792d858268275c12029c28148c2e0563c52061ae83749819e61dddebbe5dbf07e9e2e07503799cbac3c879d8508cefc172bb997d1a3b109d737fbc1c52975704b6f1edb2ba044fab\n\n# tcId = 161\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 29d54fda4344d689e54fd3a4625660b994352159a0c045d2b7345e0a6fe4bac788d54d0cd63a13f2374b6f064ccbb379fcbc771126a6d6cf51ad1aa80584046f6b33e9f0eba434d08531f091e314fe8e4075f184b156a267abc3909ba90d5c3e96ea7b3f191e38c631251176334319479a275439a633b61d7197aa45f07837fde18f5e2c639863c1a7689e6f56fa0131ab50c8021ef24ae6d936fb3da4b7c4993de4de3d0da0da8a19f1787f3c2ffecb11e505a60e2716090f2081831ac778a11a4b26db77f7659ed66f00f0c57e478dfe34663496eec5434d8872d16a65f5efe12107ce39225773488dbb8847bfc144672615f8ba18daaf9b4ff0bb36d731e1306e1bc7644ed3aa5820642f7a15fc253ec9fad79ce7d811fbb1959cbe124ebcfbb9d30127f0761585a49c772e9181d47ef4488e6288d17d49e759d39adff61debaaac8bf8e1c5149e9160a40078eb8f8ce47bcc0aa5517db7bcdfa4e8e2fc9825e18824839a2c30fd1cdcef0779b0f7a5da9af8cd315deaa40187a5c4b5a6fa009e1d9e288552be9f6cce448fcca2f011557ea101d41267c5df8331f585315cf6e83f3081ce149ea4813dfd11b217f3924324f34975b275bad2c8b8cfc670e2a8345e28fe3c1f955d88f83422ffe6ce28d5273adc1b30f26b7c558ae7688cba8ab24971baa979de2480f31812b990e14d8859bcce323437c8290bb9b89aeb8c\n\n# tcId = 162\n# last byte in em modified\nmsg = 313233343030\nresult = invalid\nsig = 5905112430194b195a3698730332de7ee44cad62157ffb95f99aaa4ca39d972712ff27302a960d5dd5fcbfc3eb48d196697fd57aa83123d62030d27dcb7f481914aa20dcee0bde8dd070e4b5939c359f3b01e40a42b6c4c4f02ad64fb15da070e68f63cda98db297cd535b2ebd0404d02df3036ddc8add1f545a6b09c1dc1d9519854f258a478ae034d3416997ce939bc72206fdcf5d18bb46be8a3dd5f55dad95e1067dedfd7ebb4c05fd57bce7148bf374cad3af3af327878d27782659695459987838dfafc00d898743bba43db494894246366fae5d377c2e5d150c2cb061678147f3d2bd24641cb078f074f503f2bee7231283709dee766609b76fabc0d3d14c5db3543c12cc481972d9d01950c60d4de5f7c01e7b4b81763467f1b6a1bed4f06311defc24453053ade5a50c3dea0117456eb6adef4bbe8afd49d2c1f5152f80f7f76e72b2e2269d3080c1545cd8c7afb7981b60d63ad0c6b1f4deb6cfaa4e0db62684470ed4013581e497c3441c4e9b481d148c89b1872b7d8631b37520bdd900ffc13348c647a71cf52933e46184c5278e6752d9c2e97aadf29d57820eb99de2b050698932b5dfd50a581b3f80a2d39df9290cad87baab094e17c9ec340255ab855b15ce69aeda9080195be03d00a827b6f5f863c16558a407a49862c535bd24a911c4dbbaf2996b680b42ee562dd2f519123fefccbac1d2a343f254e8\n\n# tcId = 163\n# signature is 0\nmsg = 31323", + "3343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 164\n# signature is 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 165\n# signature is n-1\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\n\n# tcId = 166\n# signature is n\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3\n\n# tcId = 167\n# prepending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 00004a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 168\n# appending 0's to signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea1441430000\n\n# tcId = 169\n# truncated signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea14\n\n# tcId = 170\n# empty signature\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 171\n# PKCS #1 v1.5 signature\nmsg = 313233343030\nresult = invalid\nsig = 12813153b37fa6c0fd755a1c7c409bb8169c5a39d045dff2da02b2f8e8897b0cdc6c2d40e6945b97006f18e1b26983f77b70bf2961b5e5f2759241daee8c56fca7c53c81f69d3a0341720d9761a4f7be8c068464e881c85a2c39e0ac6f74f6f5cb42df8c3713f66a282d7fba85b7a09a6af83a068b78bfe83ab25841e4bc67c9e40cf2a0974f8875fb81cc6a115b91f922419c44ea82b33187521a7e1f46c0ab9459b4e97a3f4a1d9e92403a37168826fa0e", + "e914232afb6c4d7dd082d0c58885e356d0efb8aa9ae33d045f24b4b3182d5c54556f5838c449d31a49a3ac4ba568c248ed72c111b5ffabd991ebf5c48efbca33cb38996d584992c4abdcc7b93700ca03619412a355b41b000a32f6cc4935f942209b56a23cfb7b788dceb692343995f77daffa25e44d672f8bc451f776560b415d0d1bfe9925af1c2567a8e9bd15b8554d93377c62b0addabd27e8d9e0859f498ba8e03094e1d86d41e69f7606d9f1fac04744c3b7b8fc4942a846e2a3649bd9416d500b9895455fb6741ed8ed4f426f20ab40d8ab2e6cf6c63f5c290fc011768b317bde49753efbdfd12583f1ca79287225f9c3d3ed0c4530815e4f5e7ed78d14aec0d04142d0ac0fa3bb5d73b4bfda2fe7103a2ab40672abf08ef4d9e537b9f856d32450e2e41d9277be62ad0675d1a530709f2747f51f17aba10381fdc70c626bab45d51166b6f6ad978d2dee\n\n", +}; +static const size_t kLen147 = 350237; + +static const char *kData147[] = { + "# Imported from Wycheproof's rsa_pss_misc_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PSS\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = 313233343030\nresult = acceptable\nsig = 88f4676b502e365dfd82805ac1db27d1107d1516431ab4f71107b62625b6275af4a5dbfd8314fae255820c0cb577ee2457f510851d2678e4ed3e6839848aca8b67c9ce52c5bf57a01b6683828d03470034b136e6ab1914adbb1d918fdc31f7cef6f44b0b0ba0dbd6c1d3c8d7699ce374dc86c28beb3bee8f81f41162344e688af0d91297da0dd5e8104a5440add89bdc6c05d20a164c0f079b78654f038d443743f94bc45762501034a32b5d05bb86e75dd9a171c81dbe43edf50b2e1fc24297375331d78a8f0399d4aebbeeed911f6d964049e67d89eec0e95443af2ceb37125ea8431cbad2d8416fc15fb9cbed9142fb8cb06dc7ceafac056cc1f6696e3d93\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 2\nmsg = 313233343030\nresult = acceptable\nsig = a85f06875b529ca61b60df404652e79a499f81a0591bafa3377b80d8e300cbae679a941832eb5569fb88c9f8629e3c2ebf5f32ffe43767d1eaf59016f5904de3f7d39cb470dfc5fb5678fcd7b55d1a30f716b7f04c2568f3c1a2bc780e974a363adc622e679902e966af183d874b35396423d1a263bb1c6e7330179671644c6953cd795a19e2fe4208e7da5244e4760dde142313a781a55b0baf866dc158812a723d74911c8717a512d722669193f8883b1cffac98de8473b7a77198e20560c0c21207e00fc7dd14385fabdd530d568d143ddbee8d1b502f7b194b9827eee9472f2be8b2a541124405582bff393412f6aba9c42e5824d7c24bdd4d82d925d066\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 3\nmsg = 313233343030\nresult = acceptable\nsig = 8189776015db3a51805f6bf71aa1214ee07f7e385510ea95a0d4c3d53bc0d59f07ca39af40fe8c3138cf6f4ba0f72a3397df6ffda9cf49e467a34d92ec772f6b6d51d52cef86d16f74bea798a85aac873cd4d5d3a0fbbb618998f4b2b691bc14fe1f235601c51a76c4eacd1a33975d9c3cdf1daf579fb943556f0febd948d1b1e15cc85edf486b00499fa9032b6b801b5ae4454c94d7f89dc1fa6dd6a927969b14a4bdf51caf7cc8a87ae05d41e1933849acc5fcb0f478f1e23a0f476372837ade82f8ed1809e2245062009b8e683f563029ddb9892a398dbc2df594c12fb4a0f0c551abdf2fee4cb325fe9800ea741f7b2f2b4db370939bc7e3ea95ab539b10\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b95489", + "1cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 49e060ccb577eb614274db1ad34249490d1cab2b8d3ae2b708b93c8a8ead302e6efb8d26644d5caa5f62b89f3949942d07470c37d8878eb5cc9c154701feea36ac66d0a9723fb316f7ad6226f634346c17ef47b3e19c7b9979d60118959a5b35cc188200c8f9b2723046f480d95a9a0af07e648225dc35114d8199a431ccf4f44fe8e8c9c0130aa819aeecb09f95eea8f6d89981c05cc82716fe7ea499c55460c95e99871aba1ad3ac3bdbc96850863b23e3e6659ca346ee0e186ad717a8ec9c7a548d8fed0e7b79f896722659ec7e1335de12f361d5e6c65c791441c3c0020de48e60f200c3ab79fe0179513b2c1592e2f0064ba4799f6a0eea199da77d174a\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 5\nmsg = 313233343030\nresult = acceptable\nsig = 2d4216f277e50736d41cda2191faa97fa99d9e325b34926a363f8dd73c901153f087ac206cf3cb25001dffbb6200b7b35565b466f46f23aafb872e5c39d26156d36d1bab19382e5f15873022e64b58c129d38eee8126130f6210fa5ffb697bb3dcddbd99a9b60b53b25d094f9ec9b7a1cdcd0cc74a3ac478c7a34cc22c7e30e952bfac85638678b8aa2341fb1f108114d43dc849d91a3b174b0dd62f6dfb96459d4c76ab5fb6479d68d690d4a5c120c42a4bf82a8a7e9e7aba127fd5fda3f4c6ffbf2e4eeb72ee695cfeb286ec99e7cee8cf300e4e149cf17e70cf9f2bdb6421087916e945bca42a70a88b1a87e7ca3ac0a1bf2ab1a65ebab7726994a6c9597e\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 6\nmsg = 313233343030\nresult = acceptable\nsig = b66294f7b1e1a673e566c59f9abf264860200763860cbd666e476dbbd61fc39136353ab74299cbfb64bff88ed51cf9a20694e832fd97235d31ec6aef386ad44487d3753cc1224dbd59a34babc3eb8b538c10705775a27fa88ae35c0f618e0b3c6b91d999fdec5b86f15d1e462feea3af6fa12a5234d526e82039e1df013ef1cc6056221b81d755a13b70c618cefc6dedcc3361b5a910fcd4a812ae48382fddd75d5b51ca3d243dac021aeeaf6e2bd4aed75d7ff6d81c9aaee2356e3d12192b5e75d006b124275b0daec06b5af29b0d3e85f057db59db4b887fdd2bd0a33865eb87e8f3e37b4d8621e2e41c760a973f1ba03722d42bf5b921380b71fea949cf0b\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 7\nmsg = 313233343030\nresult = acceptable\nsig = 513db066bc72893653d1f7fa3f19546281b6239bc8390c4984999121a1dd75aa94004c3874beb6327205f2ecf8f6eb93eab018de3a6c71ea8b2d3a628188d4aa2b1cd6bab169f3e78229e4383ab68aea4635935e0eabbe9dc1d671416945f1867782900da53451369ccbd548c8f756e7221ee7e1ff28dba099b8f28d1f3aad2ef8bd816a53dfa9bc88e4e3983b0de955e647caf71a607ffea2", + "0a9677e687cdda29219c7daa839276de3fe436b96b2c68db64c170ab9e300ced00e72a9c0fdc321a517aa113cdec8e2713f8b54ee2d78820f6f86b2f6e6222493d15cbe8ee9815ef2e7ca9a6ceb55955049db35b1af188b99f2c4bce38f130a75780f41b852917\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 8\nmsg = 313233343030\nresult = acceptable\nsig = b3e943f3982a29d0c1e241890ebdd9e734baf85bd32de80c6240e34dd1f7f0ca4f37fff2c373f9718e7e900df224d155c4463c66badc8fc3563f36309568436bcbef1d83c63e393d9e1432d50541d45e54b7af1b18cc819d9eaaa65a4b1e4f37ae16ec75e9f44a07262cf3e2dab85a066d92b750ba1cd2a1d42493868123f18017bd9faf1de1a4f87a3f9cf744da1eafc761b7e24c9929d3dfd15d1b08db1e3fc64932816095cea495e0dbb82842b5f3ca90dc7b78895c1f12ba991f3bef6f16451a84880fa31cdfda6b9624a77a3a0489fcfdf6e07b89c0689b5b7b7052372a2b1e06a3457b027285c3b160c0de1dba4910c0162ae8e737a3d7dd1e05c77ace\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 9\nmsg = 313233343030\nresult = acceptable\nsig = a9b9eef8197c973d6a73bdc165f40f0f53b05848c93957aec2785fa92a9cc6397418a71870f1bbc21a39b244526b4a39a538d149cde62bf8f21f3eabca932751da83120136c48073792c55e2eff4e29e6973cd3f1090c5bf3ced02a1ba4c145addc674d33b0a285d73d14bcd6f374f60c95c4184e2d57388e9c73f697ac0af5116ddbf5081a8f99ace11027835cb3df8ae785491f42850de04b3e01b9317bd04ed488ad72e787c728b4516c7d839d388a2fd7b21994ff3f5b7f264413bedd3d8a5258d2b39e60411de1ee69fe05f4e76b23a9f50b49f7043f9812aeb81cd54cc1dd9ffdc6e73580e2cae821579ba3642ff7793a3995b136e057d2d2ca7aefae4\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 10\nmsg = 313233343030\nresult = acceptable\nsig = 899a49ab1511bef8727d1ed7093bf7e6a77fa8750d047b203740324d18fc45b587d3392bb7abbe7e6bed7bf2be2fa5e355f8ac5452e675027dbec1835555d059a4ec44120f499e4951cc3fab33d3e8154a4340d29c69fb50728c60eaa58d61b75cfe7efadbff55fc0edffb4af9719cd1a3b2a240936eb6c2ad70b10b72aab7e64d9fb17ba8fadb6f4f0036bc22d5779705b02d261b8c9be700b65c066c27be02db353f4ebcab1ccb41c4bbcfef39abfa8999196951209558463aab1c6d4917ae97006199daaf963666d85c133817035f36ea321714a6b20dadb355a226257fc0abff10c9afac551bb7c3ba9e44737f45ad4f9b7f2db002afb7ad61cda0d96538\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afa", + "c10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 11\nmsg = 313233343030\nresult = acceptable\nsig = a9cadc9cf41400ea2a91e86ef6e0715fe5669dd6a8fa3aa50036e521e0c939ad9530d15e52b10404cedcc5405e7178a0444d0c5d20cfe4af10f3c07c10ef0915d05e02c62e5d0874c2ef37d4176655f63f9a9dbc2da1561c09c995581cc811b5d7621e84bedd7546d346a7a0b0a65d7f38f101b24303da0b0236a7c78f4026cc20bb32dcf79cec7f9a88661dcd52d5b209bca191f5c607e8d8e1957d779e5dfdedfec49bc2defc0ff921d5f7e875e5df46f0687a05f03b5ba5ee6bc0fcaf8d67592a96c0abb2f9a99616955222dd1e87ec9aeb4b160ab5ae96afc87a65b522c6bf4d8133901dc3a9fa63acf749ca06d00e0a8fab39a939396cdc70f52b9863a2\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 12\nmsg = 313233343030\nresult = acceptable\nsig = 807285dc6aeab0a5aa0a7667856993288b9bac9544136a5757c63b23715944df3b9b77953ef1db296ff26d87ff3dfe514e415d9f118fd09e7ac518f982736bcc08b558038c771dd1c1d3b43df922ddda57906cb5e6f5a3ed677061787ffae8eb1ee2de41b5e58f5a012b49937af8d7d44ab5f4c935b73764fb46daaa346c54109c224e16f9c53d3bc4cff2120fc3e0907984052f9e33dc1dd24a171b202a52cdefe13e93cab145416569b5a6a7f29f9b7b36bfbac41959903d765bc91c3c10b645fce9e9893ba1e3325df764bf4ef0f8eb3b3a20701d8e417a86d9b859f2a318a66ab923a49fc25a511900a149e89123b488e44d8f77abe9e7fee56286d7b223\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 13\nmsg = 313233343030\nresult = acceptable\nsig = 9031c063103542817542fefce9e30a72e9f14be94ef2b7a1df2ba721a9a4efe31476684a491e4849ee8720c1f49cdf9755d549b63fcc0e78af8353bcb42575abf92de06a308142f212ac987d42d5f622b8781c6c215d3760aa4ca8441bb3f4587da6a7463ea9425a45876b0470202315ec1881dbd4f1bfa40801dfb8898561a6ce6f88698dab497442f1ef83b1d3540cc3b0af139d5e125a88646f0dcbae053f6a8fc29a2f083e81d61082812121c3e59c3072a76d4ba830d4331105355693f561adda1ad8278ce0e10ec3f7a5ca24e31d839e4823c683e14d75f764872c2267623faacca1707f4038494557df84cdc3fd4f93e4a134e9b53e7e80ec1d60556a\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 14\nmsg = 313233343030\nresult = acceptable\nsig = 9dd8855b0abfe98598937629db4455c561b074d270146d6af837c709df76d42ff3e0d50f04f7e9b3c43244e4a893f0d22d54c58b121b78dd604d1903c96109f372ac9162bd0e4188992d9b8957fa08ad9723758299ef70125f916da07cd4a696a16340d7575e4fe6d57365c2e4aec1a5465a2ebc7a4a7b3d83d", + "8395fcc36a11e8337878477312a7fb4ab81b70cab24ff98565559846706a42f2c07a555e92f86be89d7704a5329fb8637b7621112109f42e49cf5f9a059a7225e2587ac41b699a0b27fd477e0b1dcaf8ee88291d62f41692929b87513a5d8e69352cf6e3031f42543cbd9d8442be3c28dca1ef8a9b7e51ba089eb691f6054cec55a8e770158df\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 15\nmsg = 313233343030\nresult = acceptable\nsig = a61ee300ba0ee8bcad3554a5494a0ddacaeeb8f2e0d4c71383a2684f21a260df6b48d712d7145f62468cd20e3dc70950d89a7d8e962961196e53ddc7f1da53766732e193a7e18b08ab3c71c3547ac5a640cdb9dd3a2dcd866d8b37d57549b17a85b1a97271deb8515324ae30782faca29dae55d50030b4d5eecdaa65b035c048a32f01018a865a9ab1392b477346554ddb403dbc03fd834b72956087b623cdb6d4ad886985576ef75d186d78d50788eeeb70a0c65259f22d5dfb5d08a9c86d6055874b4e38671fc64a36083b34e0f5cc51c26ad876484c47ad7f8e7a524e967f587fb0ada6aa1c06eadb0a149923912565f25031f9c5e721ecb68ff2653e23e8\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 16\nmsg = 313233343030\nresult = acceptable\nsig = 30389051e99e04c06b5e92773ebe85fe1432ddc868153337a7df1f429b941c779049219a25db26c7ee2f189c4a9b71e690317fad22174b45857a7dee66663ccd608d4ee3da1c26f0f0ce1e87797bdecefd1d794c782a7cac322ad38179aafe3df4cb815885c391b6265244b45a7c870d1836bf361eedaff8995ca882709fe9b32bc08cd6246d74441699bb30462b9df9f74fb597b4d953ae3a4a7f060d464587ccbda79096df38ddf9b10a68cce11d5304d648ba3c5e8e111097a54f2afe1f64eeeec0db303b5f9f8863c300c33a4960a0664b59f18016d48265ec24c6f0bb2e6441262e6ea7afc80ba5399e850fcb37cde3175f63383da272f1f692cd732ca2\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 17\nmsg = 313233343030\nresult = acceptable\nsig = 2dff26d07bd2e3de20c8b6fa527e9fa16aee9cbfa0d01cd71a0664727bcb505d0518314856c43c602de0fc4647be7f496abaefc1c766fc44f6572ee2b6ae3fa7d4f23c82703d15ccf97e2e8dfa0a15a3f3f639a2f033910ec04494fb2470ec1a6cd7fbb348153f62766e2f84c1542c7e32d4d60d24eda5b26d513f49bf517aa56e43d05c8b12f2de93c36f56bc87f786dbea42fb960cb4423752fb4a811eca396d0552c4f36dd692e2ef551778a9de7843fcf37f767e3d3f63b139a5aa40d8713dfc382a5329b4f90ce43078cccb6a03f18816ef3b053006603cec694bd6e8352c0b545c436213ac5e4cf42b2a3abb5536b68ec05b3cdae133c7105df461f4dc\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b", + "00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 18\nmsg = 313233343030\nresult = acceptable\nsig = 545a45b222868ac1bfec75f48c52b2addc0f564a7ed54ea7c2805a4640cb54edc58e0b6dad1aaa6b629e2eb4c1c56d53cee00e61ba5596a429e469df55e5964fbf8ce6e1f36ac6adc4aab6663f152fca09729c314449431e96370b51a76261ed37ff264ef4dc9891a41f866e53f98617e496e92bbee75cd2651953afd65ce6d2609f49cb201872ccc6b8d9b853e442bf6e207c394dae3d180bd7126455fe8bc08a9c8d79a97a300884b88e1e2979ad17d15968e80c7b6eaebfcbef488fd4604f24685fc8658560da381ea827d96c78bb17d9e5d09c2d37d61275fbcc333daae6cc3c35a45f7f8d1b869586075ef5f90f60a6e9563f31be4ee6f54c1bfcf85079\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 19\nmsg = 313233343030\nresult = acceptable\nsig = 40af2e3149996f2bb055dcd6ea3e3fba2d57be6424e206c213abe5b6b3ac7ceff049018abc864118d90c5028857d73db67b94e60208c4304f61412bc856ee76e398e211d5c4927145c3ee61ae101ec071e43be9bf17e2de03cad861f461193efed7950794eaceeeeb34f4944e0bedf1853123557deac03457811270c7925d0c50eab2b6dbe000542fcd3dde5cc8563ecab6ace85bf1c535eed7bd67db0584bd4e911fcd3ff5c4059fe53dea7b382f953a4905d481af39beae68e418d2a4c0d75ed5949dac1327eec5bd9d0fdc4bd9ec67f38f2a74a4d38f0760d3e19eb9dc67c96fbd43f1aa8317aac62781738504a3c0dfa5c2288cbf9a412bbf50025cb4630\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 20\nmsg = 313233343030\nresult = acceptable\nsig = a7ae22473e8faca5602b9f8dd4e9a235af3c734cbcd2674f19d9234eee077068b2f65b3ed884e1fabef786a559e458e1fb62990c543f987e09ed482bab699cc2fdbb19397452ae3c080c315b65c61ba0d2088c776ac4533d3f877e9d9bd58dabdc9b557b5a2ce2e90e6a8476fdcc0e84bc2d861ec2e09b078e4ae4f32a0c7032f86f9a0e064a711999fa4dde25ed2841d874b172f6fd621c328413d4bffb3f6d8de7f1a329c816702d1ce6343f28cd024d0d81544854a455f337e10049e9b6366dcf96e7c47c1bf3ae0b9f041017530d319cff6a83c7b4b073f6b2a0034698631b3b103bc296773602c198f17b9233b6b8360863a716ae1b5ba54efc7835301d\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 21\nmsg = 313233343030\nresult = acceptable\nsig = 432ec7a685060666df6bac3f47d8cb960a70b1f8fd4f161da5b3cfb8fd44f83442a1ba43ca8e748a59c6c7ed7924dc0012bbefb69c97750d8d9144b4cbde2394f4b90502c1d8d047355a51265913838ee974f2386ad4653195", + "5dee655b72d470456c8cd67467c905cb06b7d46ef14fc8c9cdb70a4d90820cd80cfde02eb164542e8329dc927e199d0f2ca12cf4feb2414eb49329ba397bd2880510329718c558881891d6085211b6fab614847fbef728e961c8cb710d2e0f4d1f0b292cd372f86831c783755d149a511ce619e3ba09f41aa45a47699f266dfb8c15f90e795db4f78d97c29358a037e330ce7b59d4e34ab2e0bb84a3e8898bfce5d585b9b74f6c\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 22\nmsg = 313233343030\nresult = acceptable\nsig = 3cbc0634c9ec2732ab369624ae58c3a5c18ac10dca48732a4428a042e8b35668b119d24a5e10b5562ffcc6a5b6892a562c36828658b92037a9d48801f0694cf46535825fe450d26b55866979fe4ea2238550e64b2ae639b533a9b4c7c7c9211c8adb41e8e5d0c3c001f50d025b06af353ca11d7277129b6c3d0c3592aa1dd3e6a3371585b0cc97487a8310cc1403dd0dafb21ddf1f4983512c91f9eca9f2c83c376963a1340d4efc61f3ce23bcfed6fa01223b369f99e13003b9b9b78e54ec305569191b3dd2f7c6b53151b5e446d72b5409b18fe4ac749185feedf30e5db3096df982b76168eea32e4298b75e38caef733228a604adeffa8a878468722d36b0\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 23\nmsg = 313233343030\nresult = acceptable\nsig = 02d5a96749111200cbf977effa208876f80276dc90804910a4142399c24f46060ab148fe7817558657c459be7a59d01b1c6bed2a9d797e76d3eecf3a9099437c73de1ef1b14fa24304fb35782824e72db1adad75e0dc56e503c5a0ae29cdd55a8a6c29594153be4f69ba6dedba71dabbcfb5ac8de3b70cf82aecd6b03db4f9a0d3e7bbfb90b5b3c750e4f33cd3ecc713f8cfc15eacdb5c6e6db41dab5aed521fcc7188afdf059a7c3ebfcd2f1561baadd648cd6bdfff00b6c80130c5a3ecc3a254f8ea8f484520a0522f3aefa0fa79496b8d82117252a566fb9e191c0482398f16be513551e7a6afd9f7f2f1e89adb2627dedd96ead836a8f88e0b361ebeebfe\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 24\nmsg = 313233343030\nresult = acceptable\nsig = 97c683214a380bdc8701717ce1c4c0bd6b871fd65eb495d449ced17568b7593714f49ca8110281a1fa8b91ddbb40f85c3f0dda165bbac3ea055c8b06a0f4fb887c597b3e9082607c5c9c837d0034dc6d3a0fd4d472976b81a0792f1e31891691498c07dfab88ec72e1ae0f25467f9a4f532493d9657a0fde2f88ef648769419e269abc830e9d6b6d70b0e398cbbd05064935ff71d586f5c363640da6dcd330cf19016aaae85817311fac58f8bddb304c74e0392f2d61ef940124d6a337a3ad6be2bdaf83955474e7f0b2ca63629ef446c9355ce8f52c3c802ef3e160002ffb3824bcd25535bc2b639a4e609e3377e121b3e170e423d3f827132da216e21292ea\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc", + "6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-1]\n\n# tcId = 25\nmsg = 313233343030\nresult = acceptable\nsig = 0d9595559acb85a317dd798b6a904ec80a2f9afe5870d05e017371408b101710026e149084dd0399a23faeed59b18082dcd3ab62bd67effe619874bebfcb2d4fbfa44e754a4f1853396fdb79d712f1d3a1dd3ff6b0707b9489694dbd30d2fa92e002258d461023f1564c4964c859ed56f93ed42cc7c022d05eca29fd2b0fc2ea252b7e2a68529fe27da9a7a900f18e61fbb2dad4da8816d52746046a6515c29f63406c13634695ad07aa6d2be0abfe0b8e10788f2a3a31e68129bba1bd51cff5c980f6c45fb36041c07b4c863dfb5ee832cb5f3cd870205b23c8176777f4078b2655a0cb447ff34ced584f0e0eb4abdf2f35fc4523a52a9576c9d15b80a6d54f\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-1]\n\n# tcId = 26\nmsg = 313233343030\nresult = acceptable\nsig = 98bbf3028617ae1a57a689217ddaebf56191c686f8be8e6da7bce27fdf49af2b9d826c64a43f79fc7c603c5885b0c46ac2d175a7662d9ba3d82072069363cd93f7d3a0d61375e16b5a5ea1f18eaf7307e3cf8b27528aeab9d0a3d1900e5599d9ead68ede88e609c213be0a97642cc2dd6e6d2d6cea5b159ae35c42630fa9d8ddfd5155c3c070e12ec914273ce5304f8057eb0fcb0c595d895aabef7abaf6fa12eba65059bf2ed86b7064e9a279bf9adf94b894082760c5e9c15a29feca66e687df5b68e54f3bc0609aa778204fef7f8ea957c0ce1a883d1c8ece6b6b968b5d2c50b726c43f2882cc76f083647ca259e3cb33bdf1fe38d7bf8cf70da5dd9248fa\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-1]\n\n# tcId = 27\nmsg = 313233343030\nresult = acceptable\nsig = 740edeef36d73719e813faef24d66f1785b278106db66548d311115ef8203669d2eeccbfa7609d9f40e8bf4180612835d6cb07b7a6c70038936334e007b32d3b84fbf2d78dcfbae22dc5c6d4849e1e073392b02badb521247bff1c277cbabf1421ee9690a236efd5067aa3ee0cd7a3ec67cc80166bd928ba14b1105781a74df09928a816e4f2e66e9c5e45ded285a597bdd65159d87f54c8849291cf50d9aca1b57e612f7d4284f24eeed1277c43a8b1a7cb0a3ea988696afd0f14a0bc1d172bc19d4abbeb9339b5a7b8637a88142f04ff9b8d011f7b8fe1d37f75fe3ffcf13bca3c481d806839a520cb6e760bf21d28da20f58742f52ff5459293a70161bb73\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-1]\n\n# tcId = 28\nmsg = 313233343030\nresult = acceptable\nsig = 71065afdea905874489d3029ffe3979564b3690e980301717f29c2333aa029dc93dec41c26cebb4e28bd0b4beb5843f6b14ecd803d5e49b32", + "23174f2adeb87a69a20977d3bfd486fee88d829e07957648da5fe6c8cd72d0dd492b2242afb3e9578a415b65c9160a37501e22890a25b4638c9cf9685f49c840a04e8bd99f9029be57523e05a3e35de01c7454a06493b5249b4d5be2419a4ec166f6a50f7dfd7a5852d05a89d197dd37efaa3ecd6c27e0786532fe977d35cd65a4ec2d79db053d667e61793d0719a1432b0c0ab66fc3e5dc6eeb415774c1acd448ef95a3be4fc34083891159cf6d630bcd6d9c78eb596caebf963210684ef43a6a64d4a832251cc\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-1]\n\n# tcId = 29\nmsg = 313233343030\nresult = acceptable\nsig = 2d01cf0fd2d3f2561b34b7eac9f34564a33267a98b2ed4ec00f07197cb3332a7d0cd416e221acbe3b40e9599eca87cb54f1eed51e5cd70ebbebde573215820417bf55ce998f4121da2851fe01477c988553edd2d85f58d7a24ace99ed1bb440206cb30067dd931cabcc3e3bebde0eea9ad1825690de0c5b2022191b978484379c7aa30531d296e6351c61d6be37b04fdb6eb2f11afc47b9437b5cfbb6a6f059c9f6b23fbd64105adfc72662325b5abb446529216dbe772a3a363eeed2de26647652bba01721a5b875036a75a76665031bc26a97d416fe564ec2a9b808553929e48817b6679abe7feedd41aa9c6ed79676c772f0d8acbce65137b66f45242f31a\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-1]\n\n# tcId = 30\nmsg = 313233343030\nresult = acceptable\nsig = 552c5ea88b09b51b8653fd164ccd3ea62ab84abfe22d01092449620dcbaa86deacaaa7e40e22b16cc30113cee21b5e491c8afa3806ad39da88d2cd116b25851b57c26c6c6c8580261a90150a88928e22524e731dbf979d7ec7bf70f853fbd3f77fba86d5fd325eb41f12c28416c2125e2bcc68297bba44b41dcc9239d93e5ce9f067f93e0f817d439cd17837503bc82eb342fefa658d064b21d14c6f7ee9e0be061364b3b73e441a6b610d63e1de6627276580861b085648748bd575a33b0e75bb9bf2ef699556bcc09f1262d4bce29b8b508aae8278d9e663818f2745186c33733d9255c5a54aeee8f4180816d8fd2aa0a9b9cf22cd0ae3124eee81c477a6b6\nflags = WeakHash\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 31\nmsg = 313233343030\nresult = valid\nsig = 52ac571ad2a54ec76a1efc430f87a914dea50dd18bcf82892c93ef233c2b9eeb1970229f3e79086b51d9f1e61eae5b589ca3dcb140189c79e339d56e07b92e24fe61da02c395c651e6f22e9cc618592829ac07883f1edf120897b0737adfa129442404e4bcf23eafbef3439a7ddd1396f1a7ab4979e2c3baaffee936a47a4d74034f6977b9703ffa71de427c621ad5ba6d912aa2dc5e581f2999566ae0abe5a65a7a819de45cfd701c8e1bba727bd777d2102d484caf3f6ad72f400d1cf078e97759eabec691a529a3548f55779b5b9fe7c586590bd44abe003b71dec960c2cfd9098dafa329c2a75c8d94aa0cee0b91680fe3910e5239043276279c701b8aef\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464", + "ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 32\nmsg = 313233343030\nresult = valid\nsig = 58952e6e15ec300c02758a59518f619179778fde614a3e3ef742a6b9039275cc8416c26ab5fd24649ed22def7f9215994cd3ded23459ae4b31c3a24304401a8ae700a22bc270c89f4300506baf4f813396ae017a5ddb2b0477a5786d425a96e967fa350adad596f1ae0f8148311ea14836c36b39d331dffd7453c6f7e79092c13938d90b801d41569bc4d14a8497cdb4292c959663474d3c6b391e5e7ff301647afb4fdaf8bcfd39b4e6e7632dcd5de6ca12f0c22c4b2dd16a74a1e814fb334ee4647cfea98acc691e0fc18f0e4dcd9354d3a8f5a1082000dcb3ac81749bdf2184375091ab31e133216ec0cede22adead906f8595e85fce5f28a67f7d6f11249\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 33\nmsg = 313233343030\nresult = valid\nsig = 5c2ec7ab93afb7a9fe2d0e006597a075f8ee01ff04bab318a3e3c489878bcf321f681d123a7acd0e5eb01f8261a82fc3d34fce1a36560d0859d39ad9c2b8fadaa2673b7faf0c0b74eaef13f8a71f4b9729da1e3d444cbf261db415b59374842789dc60b1fbfad43daff40ebb4dbbdea400cb506ff0b75568a5e48705d75abd9b7444178da7ae901642835cabf86b22e55a5e090664a90d6a78f3e3ade7a72754fff56f2445a014928131ada477420b38951389e84bf3cfeab57e864513ca7247323af03667cd9ca926dab7eb51d24c25918f4980065ef1846cbda3a39b1020380148f70a0ce26ff43658374870b51854b99be2d3315b317efb1390c7c13e871d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 34\nmsg = 313233343030\nresult = valid\nsig = bad4437432699d9cd3799c29bcd959683b879287eac2b52c5c263f46e2488ab5e0be517ff7a5bc59a5fb217db5602107a28045f08ee9286afd3d61970fbc12feac76b12f75f17993779c8c3aed862dd681665f386610c59a4b6b0e639de5fb55e36b52baf3d9e0ac150d3ee30be85ee95580b34e47022c517a96b14b93a64c4a129def11c56b34f60353f40c813f60a924ea0391ddb2770cb00915bdf33e3cbe6f2e87840e6335b5d8dc3d1a25daa309c5644b035c46416c75460f8ed68a0081df5140cef9533b33296f6271781c2ede182002165be862a2f4d8f5c31d26dfb6dad56cdcf269b4e3143c152dcff6ec80754e22ce2edfe7879a1eb1b83077de98\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 35\nmsg = 313233343030\nresult = valid\nsig = 3b45f1326d3b0bc5101565b022541f836adb79c9e10e20478b1be6a32a54dbb62a5c56c92844f46996289f85501e1a681a29773667f42e3f0c1e79f14963213ceaa59282cb0d2", + "961139ea912faa94d3762aa928a03c88dd5678373e39d182d8690d9c9b8287622fd354bd5d288cb4bfefc7fb5a3187781339441b358b7f0be6c884868b7ec47352712297ef191ed4e55e1c8e438eed1dec2b57907933c14ed5fffb101cde6007c7823e804f79c34db429a55c2861c2c8a4606509f7be774d1adbb66f640adf16aacd61730f8095905ee9978f379dea4d233b3bb0d7a0feaf07fa85a2864014329d9d31f29cf22aa76c5c061ec41e4211fbb5fb42c8d087bb917\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 36\nmsg = 313233343030\nresult = valid\nsig = 84d30ebddeb64f5fcbe17632cbb692c1222c5fffb54e37f25bb87c9219930f5cbda0f762889a8989b8b23fc79eee17d8e590206d55b4006ee3cf4d79aac93ac5a3fc68fefa280b53368e16e95fb8629653d76991609e42ea04f19e19a5bd411b2ecf9a18de945c695407f608c05169e2e200259a6cf43014485b86d3ac10b22783fec39188d39b5960a97a414001df8381cb0c17b1ad05a3a58175202e2cd8aa6ca3131d3bc0efbc2f0d5f09925080da539b93980497816bfd042949acf31fa2705a63d7442cbe1c281328bf58a1e31ac69f96d67cc31856e22b7fafbcae2b6223e55e2c81a5fd67d74cdc8ccc5c3b6fe2d8319ba36ab2da9a8dd9720384662c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 37\nmsg = 313233343030\nresult = valid\nsig = 080c7363b801b6bc22b04978e72ba6ac9c55932431594a2f80e7aca117c51bde990f02defddeca373394829f41a9d49d62fc1593f99b169bf6f8dd4daa149eb2acf6f470932af5615e440f7b648354f081d9b82eade009f52328194eba383593b60bc50689449eb7d478679dee267ce199b3c99d4b004fe308102dccc09fe041c125d4d6c287dfba9c6c40a4a1421d5f3734f6ea09c85e994b1407ac8c7c95b0f78925b9604027a28ab2f921cf1c9feabf5300e826b383b6eb11b00b9a378cf360e760c4777cc8f4467301417ae07556483e4e47ece4e7487b188e2a2ac95d85a77586aa12537436ab2e50bf7a4fd7cd577421fa12ce6f4b69b97bf248d85866\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 38\nmsg = 313233343030\nresult = valid\nsig = 676865e033ad3a73bcecd236a125a8305413e2cc99db2225ac87f7f0bfca644d87bc6489295730b98874201f0889e688872b4c30a68a699e883ec0adc5c38eed5b90ef1ba12a930de42a9bbefdcbf3bf9cc157ca950b9e927841df138f89f874207c2595e6f7fd4039b6f094ac0a5f59ca5707da5c3230fc740a195b8db741d602d5b12dd0042869facc1e05c03905b7be9ccf0cde94426243093e1622373301542c96667f163b067b1b53db10ae401195deb9d1746748e5f491ffc7051c946a245c4c1d1c3f880fe99f09c8a90d9138dbe994785f576d79bb3eb3f4be15de46ad4a8073ccb946e284dc2ed7572d90d8a841ca0dbff4bcae1fc307fe17e87d87\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0", + "afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 39\nmsg = 313233343030\nresult = valid\nsig = 603bf778b29561fcaa54f5ff628c5d257e0212c6327e9112cab8cf2853146fb8e960601e9613f57baff8e64223cd7e0026f66188878bd35d9236e9de5f0950bba51be06eee37304081a36ef7f4f7c9404956c40d30b3a4266a3b25898f546f0f6994c54ec9497474ed04dfb3a24a4938172d877fef56c3e6e11586a5b920c1538e2f22dd4c971d933d69f5a4742e3b23e2bb56b1253b67bcce761722b9a026674398e7711f9ec0415c75c80e3bf38f6991b3963bc4b89bf3f041eb8c894ad12790db35d24c54a4d2123fb91d9bc4e9c116ace06e7b59b093d6c1cdccc067540b2c599f8f5985ff6e14da691169bce203ae8c127770f3833b0b19847cbc4f6a56\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 40\nmsg = 313233343030\nresult = valid\nsig = 8272e0864261c5bfa05f4e40a98aadee43968e9f5a7ebfd7cf39087a2b61b34f4592f00c3c18681e941fb958b446c9d98bae87944f0d41f13b3d1662bf9db1d011c926e69311e296d0dcc59e9e09e4f6c7b0a7e5f232533e02097e52fc0755ea756ba0c0ede3ae4c75f7f8966b42118d1683fb9f1e127c1e6a6a63126a0d50b1b5a59f4adbf5cb822f7b863c0f8d8fc01dc698bd70943a6231d7aa77d517be3f1fccab61c99b8fbe5e4f745029ce81c9595ec930abf7eeee6235ab2a84002471b971eb91838e13ee4b014cd91059b3975092bdb26bb435eca40ec8ae887470f1c11e32d2fca111dc254c029a2f824a8dc2824ae32a1168de2c23fb69c77647c9\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 41\nmsg = 313233343030\nresult = valid\nsig = 77c77d25c39754755541409749a94fcf10b28edef92a06792feee1a5381c06aa1ed6fd46dc76bf12541120922473912bd63bb2ac17295110615e8c96039eb800a0a2504a47630852c354da0b9c44c9cc6b30fc2c5715e02425c9d573868f0eac1e97415408d4d7850230d0e02b61d237b4145c99f822c39270fed2d0c236f0128568d7ef5dd5b26d0aac7f752dd45e891e7f3289974168a6fde1c8de368d1e3f546ec4eed21200f217c9de87400d846c26ee70f459c0f87f5ae64273999b0f1bfc1b60bba4db271b3d63db27cc24b9d225c83d2043f3e3a20c088b36adc50c15a5df894a4a4875918c8dd34f91c7fc8bec50872217778992523409cd21f8b88c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 42\nmsg = 313233343030\nresult = valid\nsig = 64a9c0e6fbcea96d62da56213f2a11d922418fa1b56ae4afde7d3442c9f4013ce11ea203ca23a351609a41d5b7696bbe2f3cca01149a1a7b9c0ebf052e51167ff18bead5f2d3c2df375a2fad08a91b8c36baaed7aa58469a8f428e37e83ab04feffe49997c640bb63aef23ef40", + "8fb299aff97fce0486ca36abc6441fd52cfdccdff17857ccba6f448cb3d39b729287a6113b67946c004720b4f0bce42678e0702b0ca6096def9e4c67244b68d89a5ac8986ef6f4acb0b50065fa75410c43874844af511d6332c7db8f11988e70a7a02415261101d9e36dece79c211e26d580825a7e5358b1ac64e9fc43f381b6cff477b58d2861c73135d044432cfe34cce883\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 43\nmsg = 313233343030\nresult = valid\nsig = 26dea68e27018d3247e2a1c70796f5e025692ce3d31a6cf9eae6e0ad0941fd36f66a0ff542596ea15149708df7b88b63d77031b1a1e8e60b2221b58560141e2a3cbedf09aed29aabed1c35eb0ffb312bddd04f66acddf42a0d7130e1268d909d988bf06d465b02241096e8744b5541e15ed274e54ceb9bcd796b3c361ad7cc59d5ecee3f1131bdf9ea681e9be09d18394a64711a040fe421b8678da330c38ae6f057a5b690ba7164252938fda0c5396d49f265f7a38754edfe5294c1f092721ba263bcc334439088a0c7169d9badce5b220f2c80c44421ecef605f46c6ed9affdf3c730b266eb031f1f265003dff13066d3b1cbb12d898e6c15f34f7516dec75\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 44\nmsg = 313233343030\nresult = valid\nsig = 91ff01e79f9c9e50aea0efdbc8b2c370f3a40ad8e489601f8217ecf9d047bd8e10bda664ea986f5734ed38aaf67cd7b227e5b68dddae13cd81f9ee1b7d8248bb3042a3ca670f32c316e81e4076788420a18150cb1d4725f7a239b49ef25f458716679cb1971d39b0678c1ffe3f45d272923f3551a337871b59f4762c6e11c9665b200c5bb7fc572e0ad930a63542a1c77c0df7acb8bc3c3b0ef59ce6c2da74ee6ef4210b409e2245873e6fa24739d36c0b12e5e328ca669316fa6a4df7481a547f6e671b7028e2ea3c15ac98e742d5a8995776bd586fcc23922eca59b1497871f744b357078e8e90188a2b7224c19ba9ca4769f91e665a9cbe7de8ebf84f12c1\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 45\nmsg = 313233343030\nresult = valid\nsig = 71ab62e163e31ede946e41909ccd87186086c7d99a3459813db6e380a046cbd75e8cfcd2086f2b1db021bd54e72b88193bd38f9664af1b7f100a89c2ac851cd13d3dfe4907d26769a46a4b03256d18db21424636b671189619840737fef2d8d31f4864a7064716000c44e7ebedb6b0a3bc06e5baf01fbed82933abbc43dfbe87fa1cbf68fd30e48ed595a998fbd0ebf1cfdc35dfd8026fad023412e82322efe6182a849857a66b1cb41de7c8a4f22ca251db2714eb8aad67f8738a59602e900c5cd1604e6e12d7b05de329d3bace06e7785cd4d68ba60a2f5b976a4fd112c924e4e15cfea43cda7ce14d741fa8a0e777fb3a77c2cb7ce2680a20a6ff5f817a43\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca", + "4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 46\nmsg = 313233343030\nresult = valid\nsig = 325cacdba224071c1736adb4815a0a13dc199bac13206967894ca897402c2820fe303d2c2160ba6317fe342e8db0a2ab51b5edab4eb9035d3ccc73521db011a0f231d02429480a4398bc68bfd0e248f6f7724d2db791a0366ae25aaeab2f8ab377405f95af2dba8db349236dbe9507b17f52fdf1aad4991894e857054666e770c86ed8e62fc9bc2b6ea6d5e121ea43337277c61eee8d64f550be0aaaeeb29a18c3c9dc543ed0cc41cf0732d394fe008e5d8874f3073046189f0b6679bfe4ac65cf13de43c36073f60f110f1f397ceb1f7cb40346fefdfb0c817d32531713a04099ac6b6594181c11dd8f2c0f0b43f1d687e5b846b69283dca85a9a596bf5c112\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 47\nmsg = 313233343030\nresult = valid\nsig = 6ce19d6c6ed9218bdb0564fd490a088a3d3be80a45bff0f19c7d431bbc240fa300f562d00d25a58456ff092304e51047f5d8956cd0015ebb0eb6509156640f2ded9c003d6db49ed1d95bf74741281990f09cfed582ad7e2d6b896713e28f7d3f4fa41c798dd88ad06a8716063f0d42c55c414fb6c49205fee53a710fbbb98e7291aa07cd6f7160e1fdb5f3dc2dffe014bd91bdd450a1f0da83cb380158b9d16aa27f9c078e444e23146701bd1b42179feda1998258d45a204fce614be395413b259b5898a06379c7eb69e6fb58ea82ca72b8f231f11ed0f180d795087cdbe26aeeb2ff6d7d3eb7feaf4c2c74783c96674ad959bd5cfbb979cc450b9c0510a364\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 48\nmsg = 313233343030\nresult = valid\nsig = 2d3fc532304570b6cdd5b58b0fa7287ba336c29eec633cc5f215f4e96b2ec44c67e3b1de1386ab616975af3ce3ba93887e1b705d5e55b054e1782d50bfc0094c8b7b0f067fa250cf474ac3b42776b1c76509ca821225989c13faeb15b187231f6dbb5cdf2e1ea52cee05fc2c1f8033341caa0772017fe3a720212a7169d46467a05b4cb91ac9886f940ddc8f280d055d54a51100babd9631b2571140cb15c2e53fb3026bac02aefa46065d9c965f71adbc5d3f11f3a0500fd833a05021c95d5e7e5f3fa500f367c99595514ec221d8fb51db4c776d86bbdbd2fd82a395076bd1e12c3d0c94ed098b84d858a733e0c9a153558be90213db2b405d54df94d6c989\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 49\nmsg = 313233343030\nresult = valid\nsig = 391ac1b5a466b886378fdd220d5871292412bbd62005bc8b1f13b02c7c4f98f3578c31a30c0495294cf68dfcca12c2ea09388fe0752487aa060f93a0bffb7d7075428f193f673c43d60fba94bcf2a8b6297d2207fb5db7abb23885fb8b4f858c7a395c5e9731840d17d7ab749dd0f5511ff8529b9461989dccd126bd442e8cf5c56e20c27a8869a6b576ef771520912347099b", + "566ee588eac583a595a333102783c0f993e0eca3f55af1adab66790e5dff1cbcb2f549c5e085317afc8afa181424f2ff252eccf643af509cfe8778872107b4825968acd5271a36d4b83050f11afb34afc4a0cf073204187c1b7e81832500c2b5cc32f123644d9d97f24769c8d7\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 50\nmsg = 313233343030\nresult = valid\nsig = 2a6cfd3112b2dcd37aa4fa4ef9ddb13ed713960cb062653656937b807c5ccf80c5bcd205ba314a5307bdcf58279afb16be1b9b038c93ab4d5d5b96de1c042b66e44bedf4f5c72d7564e3f190f4654211eb7471315b512f896dd315f00b4d1952c0c0b70e489cec2cabeaa58123cf000d4653228c7246952e02400bda062d16c37d5790e4aeb9e78f75d0740dc48c7dd6b671e648de13e036a0265ef6c9458f72602bf5d295f468f554caea563b56d3b988615d12366d4ddb4f7ecf39fda9913dec271c9ea5f9286fa11eeafe2088a41f16cee7ed19c7330ee99a54d981b183c3da730394c8f5b90b17fd0fdd47c0260f08490b52483ebb32bb6640a890c94d85\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 51\nmsg = 313233343030\nresult = valid\nsig = 0495075a7ef7da665a8802a3dcab56cda8675e38d6378a9b5f5fbc53f9249bcf7746b2e120db4ced134124d54e62bf7aa187edc28a3384bf2516eb616c0958acb38c68f85ab671ce9f2e3e7f92a247cc4cb71d2aa536ecb24c6e3bb3fcbd8636ede677f91bc59988b01bdbbc2b986ba99082f7d2dc6e13b962f7e6e1c7208ba9b1c55dd96779f89b40178be648bbf906a68ffdfeaa0720dab84b290914667eb423a7cd70fddd4e947cea0773383c048e5e4a250ed20d31ed1730d0d1b10f7ed3401da476cf9c2d8e1bb86dc5aa1c79a5158763c5d6cf0addad25406e4632e1a85617f177f2545f7f0f60b5c297fac40a304767acffc5c098a8ed85da2ab5c766\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 52\nmsg = 313233343030\nresult = valid\nsig = ad2b4ab917b942d7172df9c51756c21fc23b3bf467f4dc9e024e89b7d6df71f099a0e0c627f12257b6b05f190ddc269206556ac5d34eb4d63f09f07b8ebcc38c3dee48acf056aff46e23f170a47acf16621a65fa3f9319e5e21c65426f9acf9ca6576efeb4e593f0ef01e6577c85be73acede78c3f43157e686a564e0a542dba8080f539556387c199089c89c9866bdfece7bbe0cb713008bf9adffa378d76e4915d1b445080977d353f2f34e9c063d67f0ef50f755f94dcf4ec4122495835024d075aabd7d65adccb1987e1e654dc2a4df0de3252b4646dd7b86a068e7d952410f1341fa49d80d6f1d09825bb2e6741d9e8b43ddebce0f81ac6df635fca3d92\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf", + "1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 53\nmsg = 313233343030\nresult = valid\nsig = 9e5a42ba80c6b91801ce6f914dc48f03bec695463313afe8306f726d1e1e0690ad33425b1f5a043f8bb1c3b474b009eba1ca67d7d9998b56b5eeef09e94358e3e3133b85a4652493253aadfb4df892d1bf73b42e2e857302bdcfc37905e37fafdc8accc26a30d0cbc1ed98d0e971170e1953b91c1de35b363c00ab4a9bb2fef45b753312717920141287a1b8264522131a522df46d5545c760c3a05ff4487542f2b351a74a7dcd8dac6e7b342a987ed65d5e1803362eea8340eb67f014d47f63e720d96738924b1529beadd86e62e20b6479eb9623f29065c8242d753080cc4de962b934e10f8eed23be8bb32ed1abb23e75949e30f58b9667e9c25cfd7972b6\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 54\nmsg = 313233343030\nresult = valid\nsig = 1c57dd4fc93dcf4fb62e082d0e861d554563203578c317cd751f017c4779a36ec6e6dae4621ac07eb506d4cd4d627e63c55534bcf2b168649add19628b0a87d455c6f74329fff663a2a9016ed3d5837c2b843b83015d203bbe25dc64075b27c0e708875eabd9aca4ea6468a2117139ad85794b9629a3b06e22a3d945123b41d1ca3b656195ee3b0d7b046dd1f28ed3b46ccad9a174da581d33997541c0d3ec589285587e340dc65c3901c40d3353de448896634698ccb1ce55e22fc3b808cba5082958492fa1997b26442f09615f869db65efef28d50a75075c76fe6f2e96fd38a7429e0746f3b20a0eb31027ee8325756b42b2286e0069e92461ba5e5a731a2\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-224]\n\n# tcId = 55\nmsg = 313233343030\nresult = valid\nsig = aaf95747bafcd968dbc2f7a719315467b1f438e3c71ea01b5b6035b9271e16a27791ec23ba7f7aa637892c9a0110cde9f3df8fab65a4b2dcfbcb827628d0988c488b9def01caa916116538d535fc955aed97830a4b6796cec61fde848d149a3612e4a815a2dfd45131a435559f48e72337c42cc104f1797262ee69709882d57809b19b927410af979c479fb1b3f65c713c8f3aac3907d2a10eec945e302bb5eb5e194363fc4ce15d25961bdd31c51339cb1037b4c86236160a0bd1bd574c52abd88265798013f1e7ace7ff4eb710d0b7726754ce14a0962d7eedbd08353574ca9bcff955ed02166cff430c34dbd44bbc927d8ffcc85fcdc685e0ad8ee82c27d9\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-224]\n\n# tcId = 56\nmsg = 313233343030\nresult = valid\nsig = 48486ef632d298186388f80506bf6a12de03781adef4b778d5f616484ab5cefbb5a0a004ae15def2d82134b96c555ebb3ba9e8f7dcf2c473d6198b0a455cb027b33020ac7c7c2d10b8904c94d5ac45ba9fff42c892dc0d845cf42d4d162ea8b9a544084b6565770f3c188e8e2dbaf6861574c94e1295b51c5e13fb7d29d65d9121008870de99b4cf2160718989c9f288d90b50069de579027a624805f1356eedb6bc34ad3f4fc9519fd90e626bb0622bb701e69669724b454", + "4c584573f054dfcb79a2bf4b3b8760fc95da9096d8f56a91433081e8462c92e45b0383811581e37bf4629567c2b19f0135e341a637d866686312626b99c0885002655fc5027aff0\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-224]\n\n# tcId = 57\nmsg = 313233343030\nresult = valid\nsig = 9be08bed6aec129b28159d23d0c9d3171372b44ec3385be93c5070ad0714112e88e774522a6c61874ca071dbbba2a41ae03698395943de1c0489a2902c5fbcf7790d3f6df0500b3f04b989863f6ff742954dd32469b96ffdc94086b6dd39024a1db62357ffd59e1a2687d4266581e5af3371b1c45189346b374426a8fe87363e71254a6f1e566c911f467a089dfb19cb527bb0c75e442a42ac356eeb0a60ee1fb16efb5a36076a28e36d6fcbb1ffe5b1662f6ce1be09f30c9949b8056686ab3c1d3894350ea0b12f97f350ef7c2a232dbde200d4ac74b6145a0eeaf40cc3e0b8937d4377bdb04e14730cd4830ff787110452c79f965ec4ec8b080a5bea0d0b2d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-224]\n\n# tcId = 58\nmsg = 313233343030\nresult = valid\nsig = 265f70be75fd2ca926327fc0ad87f20a9ff1a9bf9e45545b6d59cda7abbf32a5b2fb0f78a4acf772749ff038f03699f90e23e6a27df6c324b34a5a995046c72c3123f894a9014a17654337ab455a9a2942af4a31a4e5144ab708c653a9a75b949bf800f817b856a6f139b1ce02e4af27180901121ae1df5196d4c96b013f98874d9305a04bfbdad91ae365b9d39a28ca669ea20c4800af18176ea83f46e094a87998df6e14e8d6e26ffecad9127f6f8c5b96f2f192a7345617f5c563e8fbc3d870c165b87449af77186a813909716747fa0f2a487d6ead2ab67a8b81a0a4dd681298ac8b3ce607cc50d2b9fb3a4a6d4cdd92fa3d9ee3aa0d46fc5715df133d1d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-224]\n\n# tcId = 59\nmsg = 313233343030\nresult = valid\nsig = af120d2204a6680c75fbc88dc52fa817b4876f2598fb7d6673e7f423d0959656471192c034d02b8f96f82c63d44b22776ed02813dd74fdd383c70838e5139bbb328e068f31ef09c420e54e6857c77b4f2438e6778bd7e6a3b6a2163be5fdbbbbce32823a26d1c85298e7f14ccd9992a510f13e66b5c5c7170f4639b39b2e322b7b25251978801b5fda78a73d1c35c93f29766434b278c7f49acf147cb3bbb906f0ebf3c624e7b0f24cdfacd852ed594d90bbe222c17edf91ced1f6adc36ae7d4a5a2d5b81944ba5401d8285b0a95b04937ded001eae93f470600e7d9b0f74e4d39962a039cf57b6c955c1724ea8bb304faa0cefc097eec4bc5570737656a8a84\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e01", + "13d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-224]\n\n# tcId = 60\nmsg = 313233343030\nresult = valid\nsig = 285f6b301bd5d54927e3404e5e1ef8dfe90d58dec37e267478b10d2f787573025c2657665d34415932e81ece24af57329c2f54a651cbc7b791bffb0ee20343e2c341cf9ba5a0aa67184c03345d36e561f4ae18ae344414c0478c7bdba9d7fd542fdf8d5e5758295cdba159203494021e6ca674190ece2769a0c0b97c143da517ebebca3aad1933c4d89432bab197e779995e49bcb0e945fbb7dcf257c5af509f19abfa6fcbf29f4704d25aeef57ea3d4c63f0f378e5c5b8f653c5311640df57bd5cb2322d84aebf304b649e337539d47fb1491ba1b0d936cc008d06970e0c0a10d75ba0f2e0c5efc1db92830cb022056952105da83b07e25c375803b3ff536e5\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 61\nmsg = 313233343030\nresult = valid\nsig = 55d88872d2dddabe8874f8999fe1a6efdc0ee4ce38bb1057f11c8fcec2da27d238d23a8010ca9c0510c3df12a638fae0c0d64ab83a8b43cae24b154f1b8632dbef8726db103bfde6d33f8253512388557ac502dc90cc173c9ac82a501ed534d4c57fef7ef68d320897fa882ef90ae32b29d379c39b4a8971c46ab9366e39db2c2ff180cc6259cac703330dc2f80ba398e4eb7bd70175aa4847d0e643a8d97ef6abddd239155cfb780ca228985235d0c91188572902c491aa011d9348517c370b5bd60dd9a9598997a5fc763267d2000e2728edefe4509d98f7197c487d0e42951fa92acd621fbffdcb595b20f8cb53c6f1935f535d7f0282837e4d03e188b823\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 62\nmsg = 313233343030\nresult = valid\nsig = 977049eb468411cb4b4745d1804dce61aad8038be0bfdda3d6e6e7f235503100505b6f86ab432cb2ed28bb57358c95042f71b8f9e5221166dafdb9281eeeb79f790f8f9e2b0a19e50b8459eb54f85695b1929ba66520d46203814c74900ec3cc546dd681e35afe3b55e3ec1ab719513dee7e9a9b5568e9bb8e342aa3de2d4ae883e9f0c4dce2c9fccb68ac09d5a260a0f4b948bfe5a03043aced68af31f854dfdd5d42047dee19b71d114bdf823bf4b03c5513b5ed2bf333e323048ddf332ec284c7d31ec032cade848d0d4e8a0121264ecb2325a29b56ce5c168cb9652d31305547dfa281457b16640f3e5d283b3fde108b67cdbd6b2005af93d008be4ec46e\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 63\nmsg = 313233343030\nresult = valid\nsig = 4ca8cf2d7817643e14484d757f0853625613984728c9e483efdc16eeec616d3c551212107a9cab91796185bd7e60f661a5f2f17e82b9f34c0c55197eb5e2b7d74b8cff00caee33083bc69aa66027a3e68180817fc065dd5a5eb2e11626bf97c0ca44b70c18b0a0a70ffa628d86aa8b45e718702cc5d15854d51baf34fd637be3e201c39ac3db412bef0137951bdf74a43c7dbf5956207693c40c9578f5edf408b43bb1d078003082592fab58860a3d9a38d6d5aee051e5be85bbea791f57d68a7c4127b7d7f5dce2ea211cc35f367d7b0a561f8ae63c37101748fdfd890d616426", + "690c5b6cea817c219b9165ba6784f9edaf8aba7082f912940254d7b7921212\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 64\nmsg = 313233343030\nresult = valid\nsig = 6ba6eaed9a00575e0ad5cf4ade39dbf0bc6b8f50e7d2a892d626ee6751b6a360a703904d3a11596b10473a8030ab5992dcca8932dea1eae7e3c88829702530301fd85f5be515216f23c39e70b46b256a06d392f13edb5431fd6bbe4b77445db03fb4706adb22105a7ce3c6bd1a537aa3d3bd3e264e15bb68daa88c0db01c2707a2aa7af4b055097b68e7c0e6749214478ec91f1104ef2b513a22316476de696b14090f6a3e36a562fdab5e3c682708c88017a077154fef4fb84611b9df8e3b5db55f9dcb0dd5d2d797d8117a4db392c62f432ae24facf99eddc78c41081de9ceed9f651769e44cba098babf7a78f1992a53fe318879417ff3cd8a5f04e66945c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 65\nmsg = 313233343030\nresult = valid\nsig = 5bbbdc57a45e5fd5a0dcf03b76c06edb2066f9205eda2facdf5120dc6bf93c8e969d714a9ce71104f2b9455d6c6c3b6489a41e578fff9247de07ccf307961b34f454df5fb40ca98a4a0ceba8f705e60afa02c945f8ced0b6daca87acb6ad081098deb1419cc7bacb407bf52559440a69c0ca2af1738b266e2c14fb26bbeb9ae1f415b27b31e36e59026066b2674d60516b8c06b70fc8194d86bc8a5514e9e73dfb29ee959f2c857f33dd0f672e35f13b60185c8cfbb3af23badb9271e40dc1d4374562d88277ce0600b18e634b127d3bb2f5e1264dd9a3c188be38089617344a01efe47e1fb442d747bf5862c409c14327b2e3b8ee065a03764b026d08983ac0\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 66\nmsg = 313233343030\nresult = valid\nsig = 4d34e818a3cae7ea179c057aca683ba99e347f661e5a931e702a75e9b8593c888461f8057fd719b4cc57dd674da0daae36972c5418205c87840470cc090d99714aa2d886d246ee6b5751f683070254ce0e12303c9fe252d5ef435f558006d3bfc9d173be2fce9c580c3c6b6efd003c84de74aa6d9e31fd7b04b0fa2f0d6bad247a3c28f157276f525eae16b058936cd91f665ae1858b2c00b778aa42b97aafb5bcb38e577da899c0390a7619339e2eb487265b6e660be420be199586f4124671c682a67e0ac1d31be4b458ba5ea64249e988bbbb67a59bc62d3d827b355f3b0e4ed32ab2078389653bac1861586e2ce2b49e423fe5832c49f7e04a53c6a72997\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961", + "dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 67\nmsg = 313233343030\nresult = valid\nsig = a4b028e9ce76e68732edd1534e6c50df0fb88de211686858b815f93f899955d91cacb434ead4755f6b2ba64a305e656c31f52581e6910f1b3c3e941baa76ebfb5b08b8544da46f5d557b6baea4b206aa4b03b47f0fb3c4dbb38a6dee18b6e621d26a108b107cf24c00b6f5e9ba2aa98f7afe7ae96e45d073f36d57d8d38e4ec8ebaf00374f9b2a4a2a53dd7a4e5fb0879498240abdf366ffc731ec56cc89cc9657ef0f6eda0cf39c0846be2b8b1dbb681ebe31b20f851e962891d55fc62050a5fa012949ce584af8c9ef5b795f0a4c0a426450d71161638d80a49a842fe76dd320716910a81dd9edbc10717eec8afcb22a590541daadf0bfcd117deebfb2d409\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 68\nmsg = 313233343030\nresult = valid\nsig = 8e835e05ce0b0a5d4b00b8ae5ca60ca6a6f654274d0d1db9f32ebdd91f526cb69bf2508006db1e559489efea6b3b202a70ae72757aa13603fbef69083efdc39a1b762e355f22603860a2b12e69ea5086583eb61d754e5f70812eb3589217bfc41fe4fcacedff8fc146e3ec10f5e06c127f41ebaea7c4e82b3ef6e786886a80ec51189ac5c4d9319ccf50d9ab4b93661768fa2730f8d91a7892d5b72872d69de29c39771e8174ef0a60faa4491eaebdd651c9f2048d800fd6ee5e0b897e7cd962639911943f5401dfb44354a435f353648ebead13dcabd62657074b448c0db9c9a47d8b863b93812e18738c490992e6b16f957cf769fd301a2d609243de926e9b\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 69\nmsg = 313233343030\nresult = valid\nsig = 9a0006356a9971ac48b80da03247b0ac9d4eb99bfb7a59c730b707d16a823d31d8c64622f27c0184aee75235c0abd91625a18d0d17f7dda988232257b64727cfecaee137a9a2e033942139ec4c076d16476bb406be43805efd6398e0de37f1b974de2824c39bf61b35af0f4936a00d0f2c078ba815ded518b073cd4a36c8c1c16791bc78a222fcd877504935faedc3da6378b401247c6cbadeebc823fb2f516392d3706f92fde0d519c48a3ca2842007257adffa1fa8927e90e93cbb8d2ea175a6c083f4ee3640f7f7138bf63ccceddab07b2aed7639c2e1a2bba5122e4588a7e695020a3b521e1be3f299ca9996cea0a1ac8f7abf29a13d36732b934404f3be\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 70\nmsg = 313233343030\nresult = valid\nsig = 515eea496a899f1b6f84d8ae1a31390ff4e4c889e0ee2525b2e9d656b51ce60889ec9745a25d908e3e93b10d1775f60f638557e6bae1a9dda1491b26aa038dec60bc0030be3e23b45fb1f55e800f4eefcea448fa8978f144a4264a3b79dddfbcc033fbb987b6f849a91b2a28ff193db1ba715a157026fa442b851369e7e4c086aad5df0e2c9a4b598c4505e5703cb9e2ab0ab8b9c5e7266f84a8e998fbc799ea2f4e0de0db5b97161c7215c246b006c4f3ac9aa973df2aea96661a367d7b09b109d6912cfa84185947298f65274dfe9ada215b172693cd75bd9e0008f07dee6ed159933fdc6940f5a31e5d31f27b84f04d6241ccf440e1ce534c8f16f6f287d9\n\n[e = 010001]\n[key", + "Asn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 71\nmsg = 313233343030\nresult = valid\nsig = 85391950b1f67e9bec6620913bab3792b34285ca2850c2d6767452330c5dd76312483a50d3948a1d721f6de83ef915c67213e0bfe8dcb307905e68103b71f16bb96328e44f4bc61f7fd6d994abea65b774559dfdd3dbcfff7608855fb74d91b3c8397b42f5fec313abd9dc599f0091b419845944a49149ec41ec526e9f5291904ea68aa6d974dc0f771b7aa78bec702601e83d3f24bb3ef48a7712f48dc6e2fb0ec718d7dd0c035f9535b86eafe1c87270f5782f68197ec90dd256ad79efb0f52c1fd376e8a980b681985dfbe995406c17cf919f49ee3122d79eb94586942cdd2cb9fdafc870081e6bc93d90cc5755812c818f1605d652552f9eeefbb8d46819\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 72\nmsg = 313233343030\nresult = valid\nsig = 058cf56a97bc8c274af169b3918df40c88df6f1514903eb467a14ea7d264ca79f56a76b236f60f3eb30fd349c08dd8066aba5983f8a9c2086dcc3e66839f33805e11ca2a39d929508b296fa477293cd6d3314cad77f4757f4c2a59b8946d0a12efe19ee0b534cf6f709ddfd302a9109b5d1caa95b02f903dad6052be22d46f84ece5d3d683fb9689a7e2d1161833d98116de414c8350e48c8ec41902785641c190bf1a14bc5980a5f650bdb1c401ae1be6aca24d5ce8d911d76617c260a5d744ea9ffb50829c3da1c4dec0de3a68dd37e0bc6e8bfb30c2d91201afff113e78a739f074f1725137cb39a62bb130bb5c7c9921cdd5431c078f09d30b2060fbb900\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 73\nmsg = 313233343030\nresult = valid\nsig = 03f634b2c133e157c7955445082102a69228131ec6fdb9840af28ab45c62e20cf832c055418b665a4958c02ead8ce77d62852dc77b8e427bf0326653df718ef84117af503868cc7aff3c4bcbbbe6e69c3e5b14de31095e3b3b43701329a574c7e2c64ecbe08f3cffb0429ba429e83c206625b9be1185bc5df34ba5a58fb20e655972faf6c0f55a94db6cfe975e4506c6ce4572ae5bd196e2b108ca9622b9bbc315193697858094bb8007d8c007674034375cb1d4092e28262216aa44d12edadd1262291cd085eb8d892ae461ae6c227ee91b7be1521f53b332e1c6bf7a3797c92cc86b738d306553bef975ee7fc6f0a968186de390046ce1f51fab68bdaf4ea0\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 0", + "0bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 74\nmsg = 313233343030\nresult = valid\nsig = 46dd15af9e3e221e85d682f4942a8c7e4d31a3bbaa909f48e041b3f582a9e799e9125e6b5c6fc35716e73da6a707f8a2c59c49ac0f4f140715b9c51a6e07172c5c9675f3abcc60a46dc671e866de78c238dba6f34e24c15578ce9d9869a915056c550bd632e49ee78067a7d20c597797c5628048d8286218d1291e759b49e6fdbd617e78d00d8953741c261bc5ee0f27cc61719057c5494234e453aea6c086fc6b63cd21d1da0d160db4a1b80e94f19f14f5d3e8c5291926bc815a378e8cf8b2b3036b02549854bcc0ab0634d0b9e70570a8fc732ce0f12ad927e67356f9454ef5f1e5f89766bc8867693beb4e852e6f2c19ad88e33a435548bd8e840dcf84e9\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 75\nmsg = 313233343030\nresult = valid\nsig = a1f187aaa6f2c383b5b88fcd59d80a58475bffeb05049e71096b0e396ad6168b4f98d2be393753469dd48107e119eda73bc7ddd7830a7772d19cb7d799201b534361ed52ae91909c2efb355ede49f16ca7648b21a0c4a1746ec5bb48cce5b11adca074d79f1252e906331eee3abafa6f985205f9c64dce2a954ade4e600f30d154494be677141e4efa12e5fa86e79cf939149bc30e73627407455622515064b5b3a7e3f2816d67ef59eb499c9cf92b0f9f78a4b21ef7c32dde4cb89461f6c7280dd9d90c403c0dad486c22f039a16524a31644b635f05bdb615ffab67df491783c5c85ca19d935294c6d458a65ffb065229f408596b0be0327d5af052845bd6b\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 76\nmsg = 313233343030\nresult = valid\nsig = 3eb30e9c91fe7f0c0da8041f7441bb3ffd542e63a8519705a9941883aa13cc5ff4d5c14263605687778edbb8c9dddd4828524342879a6c8bfa6203d85e338de351608ddc987bcb510590276ea691728d5c94028e10fd47f209c4e4be369ffdad3a0483cf6c8704af3288e1b4b7f4ff9deae00f54bcd068347ddfef7c3bd1e2d05be8e87b52c8f348806898f0cef7f494e2c2ad3fffc73a39d5531c629efc0a63604c4173af03ad73cd71cf8ffa79a5cb8cc10efa66004237a342899bfa81f5a47e76776c9a626d49c6bcb051b168357d5ab4b7e51c1142c86ab4e52a6b3bdf85cae768841396da036a733fc15857078ea563635ccf5b366499c550c63dbc449d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 77\nmsg = 313233343030\nresult = valid\nsig = b261dbd4e96d7508686709dec566282ca192a0bdd1f37aea4d0530e07734cdd664d933906ea5bbb8616d1ca5b8e893ea85c613e6ec6fc94f4fb500bae6b356af8419f55ccc006781f6916190e50f411bd0c0bcfb729d2b271a4b1b30a80f53dcd9393950e595a2116e27be9b2ca1465e0eb5dff2d8f9d524c70d06127d9bd160eade8328452967739cd5e372e56ea098a662e8f5868614e0834cd380e7481952428cffb9e15daa66406c025acac8a73d63863fe3192c1eb9806d42f4add9a2c9c608c763efb64561c2178f90f46b34dd967fe6b0907bb13d2a13450128c43c8b4569778a1016495ec317dc21475705d6f95843bfb5f8f1029d2f257905ad82b8\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb", + "69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 78\nmsg = 313233343030\nresult = valid\nsig = af289127c72413c318120f8a55752cee713e81786ad2002fe51db89e18fa0ae98afbab320853da32aff8efd5d07c9e9edc8211c53d6cab61e4e02827cc80b0ccdb8ce3a5984bc7810b284384eb6afbbfbdae51ef15537893737a46a750b71a248a257d4e15080201837a69cffb5a1eaa2ba31549ab2737fcfbf8833db9692db50cac6d22d01379aebb00ee43505bcc4c151a84cd5b1da9d58122385d1aca9cbc3cbd6e4568b8efb51f862d170315ab3172c40dc36e871a10f6cd88bfce13b384653738875acc2ad47e5110fcd7702a1737ef459cb49d70d3df4e6f29d2bd6c8020c4c77c3124fd5d53be435b0dbe8eab6a70fe120c5de89717290cb8052aa405\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 79\nmsg = 313233343030\nresult = valid\nsig = 5e6d645c45e43e756bd8299a63110e9afd6e8055b1759f29058208787222d04942da32b858cc355c089cae77751826d13fd6edd8b73d3d93e10558aea863af16c739980ce381fb092eda4ec6b0fa0f40d91ef98b3b855e557e6fbcc15ee46059b75014565fcb826f4f51662fe37f42bae43a628d70f0d8b49fa2e00fea84a22091669b9601964f7dd9eecdc1b539437ca1ec1915499c5cd5f6ffb38e9585c8baf39a283231691658d5a1cfb1befeff4a005804d050c339a681ba27175d4037a8eec6cb882972cc0a408a0081958d2ef13de4f2cd0402a1c6282eab0a8ce418e83f7f5e3880e88d115202c4c481a09d15c79d7388c2561cc724d9ca94e1f33b47\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 80\nmsg = 313233343030\nresult = valid\nsig = 47b07a933329375d1003bb984be0e9a0c3b6c736768f5bc36bd314b9365b525f5f55185e49f4383125bd01f2eafdbda9d1e8b51e0cf5735e5ae36bbcdff9f7e8f6e2449b4d58477a4c9e57f83778be2c7be22b7ef0d5ae540a87b9b7ea123372f09f8ea111ef1816472af9b391122745accf09e0f652aa58a6e79d4081eb3fade4f4ffbb3506c4aa9b8d00f793c4173636ace4f727e7adfa59a40940bfa652ee6faa6dc6b6cc16d9ab34782951a099f33636e810776f212924c9a4b4788a20f2106b8a61529aecca14701738eee59a1d0c46c82b902f5e4957772b9918db556c0bb200321b5d7516d5b0a7b67f9427db0d7da1deacde2ce7008adb8bd4f12542\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34", + "fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 81\nmsg = 313233343030\nresult = valid\nsig = 8b9b86bc3d9f34d2514b54928a542be358c22574ea01e254526cb569841b55d429f4fc190e7a4aa526781e439671acd1189d263a8d7cc8dac7f0978a091ee4455c030ab325ba55adde20ff5b4bdf9c32b9d48ffd5c05e6b643cf7c2827befcbb745cbd305b6efe6d38a69a9e44faa81a1b8481cb141a72d52fb7bd01bfc3db962ac79093931c2fdde0156db7ffa0da461ac9474419ddd27b79ceb55dbbc5cec9d957c4967d3dd2fb9d43f2aea8b254a7428c0e0aa93835bdb82634d125e3041ca999bce5eac7f0b28f87eaae8dc19ea312085c75c72d743e8a6f9c20fd659b0534ea76be885758560abf0de446f975f5689ac83fdbce309afce89f68d551383a\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 82\nmsg = 313233343030\nresult = valid\nsig = 67b898d0a5794d80c30fb977e4ec96933fd088df58b2094c9e5dda132bd23fea5820da6dc0eca9cb9f7af7cfdec61b94c05e004a7d1ef18310e716b70ef15fb2e33c856ac0b18580a735eba59b5183491912ee386f7b498370decba37ace8c50608b5dcea22678b5e5db20d06fe25c554ca2d29b25d13c3cbc981a8c9afbe73cd260c9dffb9f3561af8a9b459955072f31621a20941990b04f27e1f88e86c3dc8915fea08aacb41c24284e0ea5bbfa1a7cc09ee786dd0eb2de28392ff15604b10d55f0959a11ad2a895b910cee367764c61daaafa49d60fe951d8e143a1d1453843cae84808bdcb52919a4954573506cb69ee93167c16a0d8dfe89527cc5108c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 83\nmsg = 313233343030\nresult = valid\nsig = 5fd7bd964b097ccf7daf5dcda4946d8969d6140ec7f4208b2593d36f0ccdd94e191b85d3c63dc56b4979b3193122ba3e122b6cd687ff535ae6b78635641173ae76e32ba6cb50384a2560600103cb9f2c1e540c5f73d1434535c8ada6f62ad830838d096df9afcc8ee129f2b3dca499aae25965cc068c2be9b19d3cd4e8c5c7aa69b6c8a6dad86678edb82e906617794baaa0577876ca26ca7b637d6d4133a371eb7a32c42ac0431bf6611ab66d5621c5ad4a94f2ce680b4a8c21f7a2c1a66cfee9a802362041329fd6e1fd66e7175569550bb865f38e6c1803829c537e2ae0049dbb5509cd4e0537b7e1a03eca9b5825f90c091f81c480dd19f086632b0cb338\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 84\nmsg = 313233343030\nresult = valid\nsig = ad477628385ba60a8c098232fc75e7d4631b5bbfff1c90eeb9f7a9628ea33a808c3b46d86af5c10d6c15cb8827e9404db420aaa18669d3110c3af01375dc9179e6ed900fc0493ce1a470822e23a2935d6240f6ac0e965d8d1d3aefb73e34572db3e807ca0732f4088fea9fb001b17f5c2e575f502f17d056c72c139ba1b9b44403684e25f60ce9427933d9c044757f7dd1f533f7239a7e0c8ad90a4b564cf304a928b5f0a30253d3a4c9f38a872dfbd3af0bba3a4893ce4fb9cbb082f25c2d700cc1b1bd57537abb01cd9dc4ed472ee3d6e5dd1e4604ac118d6d1210d5d35c583e4dbc93ea9f804204d81f509e4feabddee9cce6877d4d9b79de13e08ac01080\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc", + "20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-256]\n\n# tcId = 85\nmsg = 313233343030\nresult = valid\nsig = 3bb2c2b51524d29a8d6a11ec47faee62599f2a310ce42d578725d19d050c1051a1bdd65ecd7e4f1c6e4bfa0434626f933bfcc1532bbbee1ad9b83aa888d51f92f35795a46d06c81970a6f6f8cb0f72a57e62b33e64517c1b2625b11458213919f4b96ea4956143d8d658bdc7f5600dd0f301bc7a85a5f785c91cb345413fc1b1ae9499c68739ab963388db47f7cc816bb53f8169cc8f8ae27f7cec4b4366ff2ac14a5273eab9215a2815fb71c45a274bd4c11d0a7a721501e41f30193130e7fcc150b5c54df4728bf72f667de4f3a8cf6fd62faebf1c2fcf33dfcd694120532c7a638a6f1da9846c36b2c2cfbfcb8782655c743d9d324b4fa88bcd16997f3c2b\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-256]\n\n# tcId = 86\nmsg = 313233343030\nresult = valid\nsig = 275e2235dba328642b7e5a789203119e49012c0006858d0143dd571c67ef8757c3d90f640bc0c73532889dd7739cb023505bbb6f64fff8872aa2274fdbdf1a698ce03aa24e0f985c8e503d093bb138388ae98dd16e9e3f1dbe65a9f313b26dc8d35c527929dc1fc6c387be538a13c97de30a8460ecdb87891e233c826be75cc7f598fec0301dfbe3234b2940d61e93b2e4e6091c19671b7f07033c9f1c6ee90eb99abedc9d6a39aee952329f34d617fb106cfcf6e95fc867f2d991ca30168d08259b12dc974fc74eb5b03f9209d208896b88d0191dab425b7e9ed0c0b6e598e7284b51bb276c46c1b4b60f6c92b1177832ab26b69fc579e7312cb0114576d11c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-256]\n\n# tcId = 87\nmsg = 313233343030\nresult = valid\nsig = 28b91acc263bfa8e50742e54f6a7cf9ead9cc0ed81ef2a063caea8c8055f00d1d1cb897f84f3f832300031d7293c98616a994b2944a4e2bf4765c573ef8aa26db4b9555b55194d2a50985332c0b3e449253454a2b17adaf293bc5ec52d6fe95b6b7bd997741729bc5ed68c2b53e426f4f27b533b765cc58657133566793356e6c4ef8f4a8a0192f2501116baea02a11c7facb9c602eca510e4cd2066bdafc2789f13ed959e44cb3f34f7476e746c6f3d78eadc7d0152fb37428d0d97b52a9f90e47f74b65c3c0ee0f353968c703972262c175f89536e8ab3c26906525d430aaa82d2aeb34ffa70d39cc777bb03e87cd5e5c8f93d37e291192a4f333bc857e714\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6", + "edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-256]\n\n# tcId = 88\nmsg = 313233343030\nresult = valid\nsig = 05d62a19dd4bc8fcd622cd55d6762f7f46f9928b1b1806c92591d432c4fcba91ef9c834c7d99fc0583634d77f7d2a6cf8ca525fbb3ac037b0df8c3fb7da46044c7a54780f9f83aa897d51717c44de91c7f2605a40b3165da8fd92eec6d8bb6612226cf7fcd4c918b7cad68858eb0bddf70d5823986cb580bcb3d274097911acc1dcbb61c9c77daec84251f0233749b6bb03ba5905ac29c6f8485ef9e67c6290c862490bf49dcf4153961abcbcbb30e17169f9465cb71f84873675d9b71f5c04b44dca8bd2501b753869e04328c0095fd4bcfb059324c4e8a08900d2012e25bdf56853fff41e333a552bd1eacbe384909da86845f960d31e8ce570770f174d714\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-256]\n\n# tcId = 89\nmsg = 313233343030\nresult = valid\nsig = 03b0cd1b267805404dad5ddae2cd341ad2d4d4ec35c764ef7205e1a6f0e437ad41990baf569b9b072a2e4d41a8c969c688a586bed3da319ee471f4abb6d4a0ab452eec6e5ed67e6c138befa3b8784af91f158185b11c1ba141bb5d2bb9ab8a759139d19fedb2af16b230a4ca00da9f6f9908194f9202746fa51a1c3372d4f3ef58f61889b67380ade4bbd53a0273d27a37764d5aeeb06d2bd96398d5d2c6f5c7b9718313598aaf881d98262e67d709aac76b6d397727df2c607f7b682adb76cf9b8e58ef64de1cd815a36bafc79b270acc30aa8a184f299ef217cdd630d2026a865821f29d82b8ee8e4055ad45e7388d03a5f319158895ed803e57c3c3b11049\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-256]\n\n# tcId = 90\nmsg = 313233343030\nresult = valid\nsig = 7c9132adaaa0592b7bd0f8b4de70b28c5f3a04cd777e90e82758b95f368d6f7bda039e134ec383c5cd15e67eb75df41c03bab87d60937d5088272392e11e26dab51afcd73c00c0e167fbb5d4bd6939691788603386b8cc90458679111faf4af273b3b32f4ac3790cb4f4d88b362d11b8f7897472ba3c8a6963fb7f708bf6c44a5467646c3972719345ceeb42000603a1b9fc0063719ae44c66c6e8ca989422add2ad533465b954789181e403049411585549a44f0da9abd6af3f53d50238ebbd5f4a4e41e426255c261322d415f3e82e1bc0b889fe80a518b19079565ac7c44d79707354d15872e95e99262cd9d8185804fc923299b2baf8d40814ad9282164e\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 91\nmsg = 313233343030\nresult = valid\nsig = 83a3c6df7f928a467000185413d80212bc568ff3bb42aa5d6276c2e52bf2dbb4e44d27c7845f05791deaaa62cd1d3876473454a3a18538ab0552236ccabd63c4b7d98a2d38228c66cdfe9bc8f5d7c60ccf66321da62d2f0cdc168f95846c4bd5f70a918146bce9da84d07e2392d2e0cf5d3d9bc58e2f0f64ae92d90a6c5ba37e074f0328c4c52195c546bcc7d46c0dfdf9bce167848bdc93d34a01a4325d5c1da84492ecad974ed1d047cdd69cdabff0379f2f17a63e33b732a2648d5469c6260eb96aecd7e38892f595e3d1940830605260d2107bfd37d7db3ccf31e39404a0f646673580e0fe7cbe151d6bc522b8d532b2bdfc2418546d802c77ba88ff59c2\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a6", + "3d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 92\nmsg = 313233343030\nresult = valid\nsig = b1accf7eadc4dc201a87e535242e9d929d83d7621ee97ca27802dfbccfc5f8b968139562fb0df9ccb49178e294c5a78bf0a8c3f3239e762bc7077a9c0befa69d8904b70763cb2cca86e973924240820165aab285a313897eb034d2dd7b9c4e8e1781a8ececf01c610737443ea98628e94e8d94db6ab32687322ceb3d0cc5ae7316f7736c3fc86e8a911b30c6bb80c1bbfa33d5fa8b5d4fed13ba433f66c1c3235e4fdb2aa915141b34323e64bb39d47d3582ad2751f876d22e348e5c4eff9eb38d80dfa0a66f9df9e1f96adaba1d513903c3fbaa8e1379680015ff7fa659f265e8265c5817e742901d9e9c8c9b31e04c50e60fe4904fe9a9bacd3e133870a388\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 93\nmsg = 313233343030\nresult = valid\nsig = 393ec2b5fd66fbeac6cdfb62f43f832483c895f7a99df1d44b74155c9ec7a4174ea80f0011933d9a2988f2ecd2b140120709239ca412d2cf93da30f7626e4d2e41051a29846c4762a7971ebf015786ba720e929deb0f3ebdfcdd4dd9e08dd9dec59f31697a6e41aa20567b31aa0acce622508321a1f0ccfd6ef85c99bb371ce0298e5d501d2597b0508be6838985cb95051c1271b4c7edfbe8976e656488ff61f8ddc291c873034e32fc7ea65dc59503bb49ee279d6aa5a698da77f6ac20d63603308efc20067e903dd3414599edcfc488dc1b93e3ec4de2fca1be8772413d10ab65058f9f1da4c5abbc3e79965ead7cb06b4f0752d8725350cb84c3ace51a22\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 94\nmsg = 313233343030\nresult = valid\nsig = 59ee9757c6d77e1a29bda4c2d0c69afd89a8da8cfae62bec1f87068de3c855421d20172c080d8d5ca24f68009048ea1ba4a72c397a6178867f21f500cfd8b352e4cf02d99c5b084d6bb5001e20e0845b62d3baff8e86c5a9a8d6b5cbd90a215012bff297dedde49978c8eef69d7745c586717fcf3615f83da251af76a77b2035a3bf94f705fca89d3dfc1feaefc21a1990c9acc83ce5320112514e4f9a4bae264f0d6a100be4a44f900450afc99679f07ea0fbe8ec494131830602d571352eb8f7c51812d06b53023413ac436f27e8d9893438efa00ddbbfab975f18a25c9f189eefd90dd751ff7f36ac0ac22e1514c8fa1882af05514bd6c328028de28db79e\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948", + "973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 95\nmsg = 313233343030\nresult = valid\nsig = 3a44e84f982a227dd65ca85621eb786d89f86f698251f0e297d607e94c59ec246aab8df5601bd1dc5959768dd13320ed6a9fc5d8e2424d251dae9514bbffa8094ae48b226f87a1e62b0f50aac3de7ab50dac7434b1c72fc6b6c820e0c653d8477837ca12bd53a2435a56201667d0241dc1f5c2c3a73e4c37fb8f10cfbff239cdda5eeaead887a5055c8a2f156fbdb7b5ecd458cbb8baa3b564046147af1cfa7369ceb602e9ecf5d37af5e0a8b7936410d2dac61883e8e8613519e2c6a88286099c7a7611704052f4c1c04f9b40e64bd0cbbdb909bba13fb47cff47594b3e1451992ec0ebbd4d14eb72cd4d3684244190bf93faa3cba93edd3677fff20188d8a2\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 96\nmsg = 313233343030\nresult = valid\nsig = 4800faf5338b7795a8666a28bf8a73f33193ad207bbca13dc3f3baf6397f3762e814c237f5512c99dd1e5124892f7da09c8d2ccae562c4fdfdad929f1de8fc3c434e7a99a0e56cdceff69c00f104ffb2907a064da0e5bc625767fe23104831d545c1ef1f8267a0ffd61755bd8f520ccf797355879faa752ed8d59814aeac713f34f07d8ea803c90ed0581d753646d559a13c4a82cbe04655f5d404b26818447074f0e68012f95acfc59e341e6be59901d00b2f7f41bd034213624c4f33b3a002aca2b8447df255278700edd31d2ee272c248eb2844721444d4a38344fff28e0787c2f138ee84f7cbcc1d4ac96e354ba8baf67793f2466c4b48f39f37253e8396\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 97\nmsg = 313233343030\nresult = valid\nsig = 4068088a052a019bd405635272ed21a3bb7699ef4bd220f5da1951aa419fadf417d3f8187d49ee1fcf17f358bf4642706df684f1eacb8424ae94dc87ae4eb1073969e8f874d4972b671db37f3f59f210d50a75b6f8dcc20a2749253e799b3259f9a95ed5da971d093ce2b3f388b14778dad85b14eb404a3cb16a183cc732df393421d48fe0094395b90270bd760ff7a9fbad19d52a24aa09255d1ec098c878d18498fe9929a52f699cf7a24ad63727ba88bdb3db6ea7682a06b7004559d1f5346d10b709e5c93a8a24fb1487c532b7e7a87b143d22a2213f591e7b3959b420593e603f5beeb4454fc8dccf0bd4d3ea49c8f6ad67f3ac90aab3fc73db8ffbda2d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 98\nmsg = 313233343030\nresult = valid\nsig = b7e5e12ca4ed531ee805973691e1d971b79aea502a7416a56d14e49c301482668323ff8bdc02ab49c98ec0b2c67f6190cdc3ec548ca6fa05f94a68eaa2111f01d6e3aabd8513d3ee0a52538831ec2c58766b6e28cf7d0b561a8a2d3a54cf30a98e777469e1b2f171f8457afce2e0b61ec147dd7eee64d9535465d626092038b848b556c2d488fd6169cc1115e10dd05a4b77a0560fcef4cf3ba608dee6a33e09f00e014acc3a2e3dfeeb3128db53b1075c6922f9d90e70d0c7de60c57420668b850be0c127d2683b38ce13a6dbb7c9cb9d2beeb7e00613a1385df1088b38288081f2120e947d522a5a145b899eaedc21b9072b201d92efb8e1964858e37574cf\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a", + "5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 99\nmsg = 313233343030\nresult = valid\nsig = ab24379ba46e86c915374d26ba25217282454b255bc8a675d7b491b7d7ab763d7ca6ad735297bfce4334b72b2c74fe68cccee1b04317023ee3271ba6b674b87237f141e94c2d446fb46344bfd8823741ec931ca8105089c48eb199315dfb615e17a4aed74f9654a1cf5917050ac6a2065e2f8886f4b3fb8ac092891ba462ead334cb64c4ae1a29537ba4fb53aa6bacf521a984c7c9e0fd0eafe5fd354c75ecffb5ec356fb34f2af67593916151f219635ad7afec1ce8a779083219d7fdd1e28c9e78fa6e312ef5507b77711e2f58934b6fb43379c607f99e6b4f449a0b6c4b5c723171d63fd74a34332ec54a2d0f4d1c31090b8bd5002c981d2986fb2dd7f5f0\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 100\nmsg = 313233343030\nresult = valid\nsig = 6cb2d2b7235816f9ec77704b9a92e10f6fd545222a029ebde456fe0a7f47711d26ef4012e6445fa455fdcc90525ce4b218a0cb7c0002f3331acf7155ced2b278d46bfa676661d0cb8dfda8048bd1066e46cfdcc3878b845ab0dbd9668bf10fedab8e971b6ac7b42e84ce0c7d51ade27dc317306a8e623df8ac56e15f3cf00992408f5644e17b736550af04361bc7b5dcb10da9f1f7df4415f2243baccf32b500d69dc3802060f66cd5ece6e0bbcdb9d8c1b2152d4e747e8e017889a7a9c0e71abe1dc6c8f4593cc913cfa1c68c5c85fb20db5dc27297605fcd77d81fbb9d114f5a343c0753eeabba92d3a6157925598a5c84022de9ea913a2dd2b86610456202\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 101\nmsg = 313233343030\nresult = valid\nsig = 9c6221f623e091e133f137f82c3b700c907e794ffc567e00b1515f5b7dcd6233043e804d85692c1e9cb9c4a634fd3d798b75205e599a149681fe8c8b766d3b9dfb1e50ace02f587fa903a92766182e55c82afb10893bf29ca64915477abf164d63e3c860c5330169ad4a771649ff2c38aeb36a754aa98377fe8903243dd9342c4c8d0753f5b14f05bbec3e2149f74a5863f8b29733cea10086aeff8726a0d3c5fddd037a279843e5e99130172a19d8fa8b5d8ad2815f6f06a55e413d574d4805572c6256b63e8b8eb338cf54645e5e6e853da7250450c2488acf1e7b63ddd8976b0873d01937b5bcce8cf035d41b4fa14012355c354e6ba1e3c67446325fe224\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b", + "323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 102\nmsg = 313233343030\nresult = valid\nsig = 4657d03e8657ce1d5a60d755765dc8ca3ac956cf8f9025cca0261de70c60dc3ffd3205db3cdaaa15500b652bbf82321296037e2efbfcaa903def52d1d4519df9fa9fc5d4c36912533cdd3d8c78a72c07d16b6240b86a65bde7af5bab617ed35e3b7ab46c93d9857a64cf83109afe83955ee9485184640ea7bd2d7a20345f0933856e2dfbd2ba8905c377ff832da56b9d7bcc27de96125f5c22de218ddede298c95ee20d9bd96bee608daf37adb51e7c8d221c822bf2b030dec29478c208b966b2f6968594d6918e7a8ff705938978ff56f25d008e3f7ed3c90200c5cfac5ba7009c0adda69df94621b0faaa79a23dda0af878d519769e72de127daf69fa3d62d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 103\nmsg = 313233343030\nresult = valid\nsig = 27c8b29e6cbd79a0a564b7ad856b360f8621fa91623813e671536fccb69720cd7596eb023caaa4408a480a14b1b17573d2a190530d00912c5a8430ae29be99148e3ce0a83fa5a7895fae8f2a0ea0e56911e69efc5668018b4fdcd7ac6c147713780b35950ceca07062640fa8b2c946c7dfdb09f69c28e6054dbd25de807f4ed750985d5c21059328a0da9ed8ccb277d473c6a78f873d83a5dab3675f6883a73103d998bcec6e91150338c9b09b847e65c430a64337306f9af9ccc65576224d405764c239e2b1faa375d92cacd09bb6a0ec2ce61615e4319ae1e49183cb0f9647b450497ae900fbbe22de24b31e0f2cb0c5b26de13699225534c218b08e4d425d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 104\nmsg = 313233343030\nresult = valid\nsig = 3e4ae7fe4888ff711a348489a4770abfca50ed0b60ba39c6101972c96dca5428fcd6e2f43ffd493f1de41c22cdfcb327a7a3d43ff3c2218cb6c48a287b885373e8fb4cdc1c799ca256341eb577edf238821e9310f0cdbc98ca2e48f7b1dca5c1b861a6b80f246f7948c29db4b26c648f66573b4acb058c36a462f2d67fea2d23bf449b863c016f3a622320dcb3760d0da34f98a51075b15076e03523fdf370a2800255bbeebe0c0920a695c6ca7758e81ece1e199505df880b365f3b4ee897ef7d04c303322c27ded183ec0d432784b6efcdab558e214b839ca8b0cc4daaf80099f69b9791f5584f0d21ca4ff66f3acc3e5e003a6defa681ffda0a58f8db8861\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 105\nmsg = 313233343030\nresult = valid\nsig = 89e34621c15e6638469bc4e4d95243f1f0ad698e3f374dcf8bb74778f1d7edb5481b22ff1cf1f0bb30ac2f0e842816862e55c9e47b87dda5d05f0b88e02662a4e0fd456529b535893411baddfd965771857b7ca1504f0b0952f2b60f24139db821a45020911e94e8353841756fff109795914a46b126d8e39dc9c0d2ce4882f80ee843bac9060da62f01cf56a3596981120228acbb1da8f5b89415dd652b1458c21ec51cd2fdd89c391f07c15737d7485852b37bba45f27d95fd48d3062ea22019dc9088e27b25acbc486250485a7aeaa08532a5a9e07a7a7675d32a178675ce51a3a0a756180596742c8446b0383b37e86fa910e76034a2648e93a80db970f5\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c5", + "7f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 106\nmsg = 313233343030\nresult = valid\nsig = 3733f507187912655231dcf642ad9f7eddcbb6db32467a492ae3c30b61fffa2ed141fc2501d11dfe3b36ee1b10754368ef9a04c75aa2c1bfce20e0eda4e46a6d112e29827c03ddfb430f386c9b24a7fed4e8e26c7049ed09ddf231dac183d5046fc1413e86b697c1fc2eb30f13306ea049467b4ec3ac37f56ce824e6f4797640c7ec46a2d28f292824e02e5bde9dfcf9e099df06ceb4911cdc5fdba459bdb19afce8fa8cebd0c64a880655264f35201ee5b5e4ceddb64e583c1c849d6ce8d977f3e8424d37af6f5b810bdc8bdf0ac384bb0dc75856317acc12b66b0a9081ae6d2afb6eb38684df0a8708e7ca45809b98b3ed8092abd77caf38529977b9a52b8c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 107\nmsg = 313233343030\nresult = valid\nsig = 73c0eea34bccc2165128ea9141fa6f39c26fd88c5282cbc26e36b89016a6371ddacdbbabf278875000ab550949a5a26d2672e2219bd8df0ca7fd4d4257d9af6ae20ef7bce5f1b5ceb83ccab2c2e4a47a248493ae85603220a9bd3ee546013bf55cf1bd25255603e54df67e551b6078b442d188f0b25dc5ea8c33004f126320691220f515e74d3548e3a08a194786f1d42e781b0d42efeb461e2afc9304254f2c0dd85e4d80b16ba0d6f356126155bb99820f00c17d307bc7ca677c93c393ef9b2fb4bfe75e58763463909b1a3957f775f01f12ee8aba704a63014f83941c3490da4515be2d4ad1dd43934abe1535def1b3bfe58a43bb0edf296424e2e432003c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 108\nmsg = 313233343030\nresult = valid\nsig = 1768cef965b3e5ea372db44e211de05ae4b69c2ed4465084e9e55e602b4067d1058dccb02a717022f896d2fa2f6f56bf54cfaa73ec21646dddace99e3c4cd6dc2a3c9ec1a68cb91cdde9d56671ee866a3c681b867d126036811e306cc7320bb17d6a025818b468c1052661ac2475865fdeb11ffebd9521d2678fed02b9b3db221b3bf514d8d7a7798ab6bb077b94cb1bc22c541cc15a8385557e85d3c88f622e93e11193b631a331f993138368992015fd70f8cb8716822b6bf418d2438279948fc3b0641c9685f1bb853e5cea0568f7e1c040c13303cd907837b952c1e1f3eb6513888c5cad439e7206bc3f9b9355c5d91263df9f284e5f014cb2f052e4ecf6\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbb", + "c216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 109\nmsg = 313233343030\nresult = valid\nsig = 55e2a51a5399a3ec9ea0b4bec415f1c53fcfcc9e0b74cc27c80ba07463be541d21e06b4b40b6bcc3e042bfe586ec9f036862be075d84956b0d326d92ad21a150148c9def31a9004c19d888ca4b46a48532497793d9e2d61f305a14f95be6e4fa99c1b9b1feea9cef980353006d71c2cc3105fa0f430e86dfa41743b118aaff6d133d95c52f6795adb53fc0f18161f6740a240e73f8c85fc64d2e74e2338ace4d13e11e02b0f3848038fcff8392a166c581e9dd1f7b8263dfabd5e20ca7dbf01cebd551a26d85199979a8b97c171951d604e9e009ac8d19965c079aa4f09c2eeb6f1aed989260761965c4f9aa135f0ed728c684ff555b3dda4f136369d3fcb565\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 110\nmsg = 313233343030\nresult = valid\nsig = a9169a0553a8f0f904b0a4a00dcf5247f87bb8e930f180aa2a543cfcd17b07fc1d627fdb061fc6b6fbdc2baf89d3bd8b2344f3c7c5469f88484517243d168a90a963408b63a848ce9fbc8c12f358e553ed624b5ccdde8a941a4f64d29364f83bbf7ebf10b60a85d73c346c7e462e7859e4b7728930472a0b2e67eb836b4d65b20c1cda68f54c9b7cc30840b1fe634176cb8e8be03ecd2b9f32ee3cbc981f8529d5a205d0bb6d8aca576b69e6478f1c033b1bb16ef1522a7ca5ea1f7cb71230681556e3cd1ef488b42004236f9e7c0b421e04bf746670f9c1d515c23875bb980267fe66b17050304db258672b35bd552da1e4860af4f564df3056b543794cfecf\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 111\nmsg = 313233343030\nresult = valid\nsig = 0bad39cd8a9987eb8c5af65c8491f5d975ec833311d1ae98d89a4ede949b93cfcd7f45c2191f5a5def8371a2e7eb26e966374d21bd21e13c52ffa8ac4c45eccabefd0bd372389ea6f857e2d44f7ce548f2b18a6993a3ca81ea14df494e4c1646268b6e7dc3945a0618a5f4447a8309a5ccd45a8dc59bd3cac9348707355911ed09f4e2d5472da0f343be1ed908bb4462c86446bb5fd227761391c367227645ca51c4c4893735093fa508705a7157eab776a515a2e40360b50cdb273994b4e99ea5fa203aafc35490651c6e5869ad9879f17bd6e5c8b6336d0f34db6af8fa0a62bb01ab27b1d5eb5a7d18afa80b8ef3269f0849a99e0483757f3b8c93a27100b8\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 112\nmsg = 313233343030\nresult = valid\nsig = 97618c022f53f7e687c6f2e631cdccd07be804873fc70e76ba77ea7131ea25f68d41e2adc6d8d4226a07ad915341a4c05cba2ec1707b14f5edb5b92a25dc39a6418740fb47852add908f40ccc8baecc343fdfe54d222cb2f9fda5d8a64333393707bd1cd2c4a88f13ddd7595aa4db6481115aaa5a5dbb41623c45d0a4d3e4638a4bf05b86803ae607dd8f97260fc3cd9e6fe58e3dc24729cf2a797543742205b93a0f92b32305eb3e52fc762f3333c26de543befc954051c79fe2f0dc2e2b1bb855827b6c11b34141a7a9275083bd246b6174af1b758afee37216961b40e6f504a7525e99eec6c9e1012b5c4b73cf73ca10f993c6a0fcd9b07eb9053f69c1462\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c7", + "7ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 113\nmsg = 313233343030\nresult = valid\nsig = 915bf230ab9b210ab7a6c648162badd5e56024dcc783ba9993d6d2e02afd2ee48e6624e8c536545c297468fe3e4e76c05c98753310a5df84c2f478ce53783f9b61008b41c260c2b484c7daea7f67cc5f715d81b07bffaead0022419f2c085eeb69807ca189b442300be8dd3b3a71e3ec7069156d214477074965a7d6f747c5188f10ad7c26614fa48474ede7f7a8957eea89e5af57c59a615d52e0c16837cde7ac198607c35726af9d9a8e4e91725d31f47a052dc9f4114dad4101d3b21d919ec4e06fc8df0faf91eea595403927eaba5fbf3f9b6aeef4721aa9a2c899ebd6f3821770863d1dd2de4e8dcfb09978f5c920382f0a843c0607f66a780d53436822\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 114\nmsg = 313233343030\nresult = valid\nsig = 03487a274dccab65c76356abbaf1166a6b8e40bf41fc19362e609103d68b0da623ffa655cd222921deabcc783e32cd922d534c930b2012f03555698c9548b7588094b578c20c1a740a54adfb86780366ed951d01b162d059832e251b38a103394dec291bc72c982c2309918629dc656d96a89b71f57520dbe8baa25b97e68be0bbe8483c1a41cb59f027808ba22b82413c412594191c2293af570f02cc24cf3c79962a46d063bc12d9da5c1b1f562141957d049536d491b50398d2cd8d968add3fbfa8637afe36cfc0b1b4d953aaabc3f73e94fdf72ba8c06d405e224ee80c995ed7b32553dec80590f2787684e8dcd10962e3ed8280dbc2217d819b9de79aeb\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-384]\n\n# tcId = 115\nmsg = 313233343030\nresult = valid\nsig = aab6c1c447d5b10d9219633293a369348984c8614698fd7c46e636e902f4c7fe89e31ef4d4064fda55dd9cfe8461713fcdf0f6a45c88d6efeb10ce02f8d36ade589551988f49158d3d546e747be0f9e65fa1b4c202aff09b5d12feabef52e921b719cf45147ab67e6f0aa9dcbba99c1c3746cb0cd0e3509ac1eed05a2ed91afa424c6a33276245a94a9bdd183fbeac9e7d93051643784f121e13e89b95190af7c51176cf71eb832b3eb73866e897816fa9fbf703b31f1952af5dd8c68400374bece4f1baed06f19c5c5d68a1df8e328af1c8f0779bb8f805f0adb65bad6bce1c2527d4cdb89571c833f09d4375d75dae5bbe17d47608833d1041288d658e136c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4", + "825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-384]\n\n# tcId = 116\nmsg = 313233343030\nresult = valid\nsig = 1364a0181c685d561d44a5d3a735a2630035849de6eccb06bc52431c2ea69907fb08f2fd73c78ea3a849bcd48d2f62b89e370e3bb74ad3b1f9d663dd05d3c829cbd2d97cd4284bde84c293ef45bc0ff98eb47dac24f8b09dc39395da587fceec7a2f10bdef2eb0fc2fa4f01f652e6ab08986d95bfb15125ae5c26f84f11682e9ee4a6f19fb73b66cb2795127a9e98c623d8ce132310471ff6f50d1a7addb2d844c3cde7d1c7bfcfacf64b2880b50dee6a687123d313d74ff83bda1fe09b4c63115ac9c09ae8c936327b700268a3c83a56724a6a086a34afd5c8ccae9a5bc3225be35ac5d6b00f5a4c87466a2c5fa3e660126957d4cb4ebd064106c0456864ba9\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-384]\n\n# tcId = 117\nmsg = 313233343030\nresult = valid\nsig = 5210d4bac85e2ba4abf39b41c891237bd36447683b9ad80e738c1933828c6428085c0d4378b544ce6bd633640c058fa3dbd1d309920140ff4768c90710cfe1031ed471bd4ce30344c5eb1acef0713b02841b612c720d24276df366f3c57e5654585f11a48fe47d19f6296dfe2f845dbd91807f2eb6d9491f2ff26ccfec4f53c9a1d48aa7d0bd7adaf94cbac583f9c18d7d6fc99b85555ebc1dcb28e8193ae25fd1b625375235e609e8e9e97bd339747231dbb28b0b16d7a285171a791130a792627d890889a582aaf6aea853a7fc214e3a6cbbfa99a7083b86b4a8e0c69e7762c72e425b7370ae5eb444df3d539c8dfcc9011eaea130f5422a5be263b5bc66ae\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-384]\n\n# tcId = 118\nmsg = 313233343030\nresult = valid\nsig = 1bb37da5ce67bdbd545d59f368b339fdf5e5eb8d2178dd36279955c9b2a97616f380983f89b958c5c845ae061f71ac54422ff3408b9219c1e4328890a6757e635dc2d4b3ff2d9dd683e48c14649c85b2329f1b4ea416459566b63fe50cff6de769cb1a68b372bd1966cbc55919f979b7293bcfd59e299c18d0cd3198ef7e6f828ccc7e06dcaac9ef109e8232ff053e9accc95d12832941e5900dc312c552b5b7bf5c005220722fbadded0d7d4e74ef00e8d531c8bfc4700b4b1880312aaabea147defedeab15114a797333221e7171394a5e73c475be06396b861fa2baf7e47e59c2b77f31d3b753669492e6ae691ece8fcb9bef2162fd86dfd89d051716ee03\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-384]\n\n# tcId = 119\nmsg = 313233343030\nresult = valid\nsig = 103f71ce6260900e6d53721819ed2df38f8e2d7a873a5efc730c16c85619b1ca180acd097d6d550fbe6452fbf0fe70c0a2299e3db88656bc347d28cd21e53c494e3c4ff28a8ce783ee842658863582b3b4473ebd435fd0b836bed51de16ccbb51308cdc953d8bfd97ab0f0c656b34c5d8c417a9206aeeaeb3b9cd2fce653ced21a140b156091754c93119fbeae5a8f868afdc7076cf65e9f1a14a6274bb49f6cb8c4f47b87055da28172176f18cac7feb463d22d841caba412f418e34a88a566d3c40ede21551a520d4bf8118840692d509fbfb18f1d005c2f54356bd51ac8202a85a163a60d885e3754c47cfca3518e7ec27b97df8242388bec5f6a41e1f0d7\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74", + "845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-384]\n\n# tcId = 120\nmsg = 313233343030\nresult = valid\nsig = 586439d37bf0268490b2c7d654b5b04418f6f62242bfb0a813a107440898bf63219518f32150e5743d7c55a1a0bdc9083aafc01729576a07f4ee4d1a12f1000a8490fa0d4dd035289a210eb587bb2e83fda1f9995712e1ee0aad7f787083b86af4913b2c5e4c54aa085d29b6b965b86e2caf70433c87ca864f94d68602fda1b547f5fcf132e6c5a341c276208485cfcc5768bf5ae467d06fd231a6b2ad1a0c7ca25d32df891f611093e9939a949e13154597025a2d9f5bae1f19bf11f6f67c37fe441627060ebc3a8b39752df16b6ae0a76f95af16cdb0e6957ef25cbf4ab89aca08ea9121d909c5b7c1b3c46757273cb44a99b026b7f939fec4f00b63e281ce\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 121\nmsg = 313233343030\nresult = valid\nsig = 65b14197a23ee775882c840a5dd631bcfebf6ec45d060d632f8ac00c3faa68d0e958dacd710674f9ebc9532dd0b2d1fa5394e69db283706929df8c206f7a8b311e14eb129bf153363a5f30b65e851535e71b9a1c46801f7591f3c16848042cc9e554e0f0ecd415252e9e61d7244bec0a8c808e35a22caf2dcd899806c0649932a0aba64d61b92a5c8be887aeb5bc50781e8969072ecdb6da96baf59d667b95c7f0d51c4e23636be837ed2c0175c5d42f931b152ecf94e8c6b06499e900c392c0f3bce47176e8507f6d239a26e45005a8d873c76de1283ef852769e13af0bbea460d81c8534bfdcc6e8699070d44837cbffaa1aeb3b72eadcfdd2923e506d30cc\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 122\nmsg = 313233343030\nresult = valid\nsig = 90ea824d128bd7c3b7719dbe79e0fe4e34660badb908a3b36836c8873e07a62086c3d163ee7b9a0b0f6baffc7df54c97dfa7c456c6b40b72cb8d040178f1e29d076febda7dcf5a652930ead66990241ec1afe5640b7297ba52e919b7a7f9e5b718c66095669f8660781da7b8183006a6a67d2dd0676711b4f96f5f71fa6d1d06c1c7abd52a932ea0580d14e1919e5acf2ac90fb55354070b43a1a42831ba288182c52060d31715f2c3febafe8e8080bc31093f7e688caa3f8d355448d95e4321c097ad27c69e8d7882261ea815b81443e8f24b371976df43a8cd7fc42d839df6645f7e5981ce16a6ba56c4270a8da6e09078de26fb4339d60ed0e376e0aaa69f\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen ", + "= 28]\n[sha = SHA-512]\n\n# tcId = 123\nmsg = 313233343030\nresult = valid\nsig = 2cbb507fa7ac718bc67365071673c813cb83d4f3bff46661051a43836a7fe52b42bcc998a8b92a5c279c133e521bde2da0ee8ac12dcb791aaddc6a28dd7b798ce7c26262d5bab10f240170349ea2a27a9eda6cc7976365e4e2502bb2682fd00db43e0ddd83db8aef14c00a272d72fb691a04da1623ef2da7d137d264025cf17f6a4198c0917b394c6f010b1b42927f40647dc2fe4cc3eea57b77249ad4b0112e328467c75454f55bd769759980f62247babc332d263086e27142926719d86379d3c1225e6561f4982148268099469015aa5aeb7a355e3d4f625b4c9f7be1fbb6acbc2c77083f3130c59adcd62b2d1ebdac296f8c31221d2601a92d220ec03d54\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 124\nmsg = 313233343030\nresult = valid\nsig = 68b59c29001b704995ea8b55ff590832ccea1187172e52aaa5b04b4bb27304097b0ea2c08f8796a3da792011185ba13c7aba58139013086dfd818b7b8a465273b7e927eae6eb4c5d057119b695a048a19047f45bacfecffc230138153afe7a0f0983a0e6676ccf0bfc8beffc7cc15781f7270e9b6a98c278699d0e1f7800fdb2e5a30902773ee1cf73ca05938c582392badd982e0b02f23afdc60a4f6a5f8d3b22435eb814d1fa3d0eb063aff7cb1f5556713c82ebe17c9b4de6a43adee9cf9bddc10979791c01cc03dd07e4554e7a2c314ddc97aff8bee5c1ce1bab287362afd44c1e300da8c1cca49b4b462b0fb83db1473ff852fd4f9d289844101dae4646\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 125\nmsg = 313233343030\nresult = valid\nsig = 1dd0ea7e25ebc9c5df19d58bdc4c9eed06c626061c42ee5b97e7d1e188d60752983f58987cc52bd87b7578c1c25a32fe78ac95186c6af64d6221c57626784953cd4989de13a84964e4064ecb1f7fa4ed7d812d41e60c901080f2cb405b73ef8dc8aa7144e8d2fe5457ed54b9aba0a1d77bc280f9324b035d0d2072ac0b630fb4dd596c92b6cce3e4b6e2be46c63f60d62f2f87626d52d34c846ffca8589776dcca43c670fe8fa816e51c45c9a7cbfd3e4fb9055b05a24d9ac22dffaeca4d8037fd453a8f35c9a118ab2d7ccc4ccd3f26c5e882b3fa93c0774067d11be315447e9daec6b65dbc830891c1a7e71e2aaad14a68d5730015ded60923b79e3023d036\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-1]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 126\nmsg = 313233343030\nresult = valid\nsig = 905f3a6f6450d1f7f202eaa68909cedd73e70422e27c6b66f3f6f057b42f0458e10afc61a537cd06b919103a89967da973ea559dc040ec18aa412de1c4fdd848fd287ff8f8743220f2ccc6d9e30898c982e445fbb986268726f4278d7952f901dedd7e586c729a4c434fc023c96e04ac9a86fc5e97b49e50e97079006cf42c54696d37282a86db2a3c02e496a4717001d3019a54b7ada3775dd3e7b690fd79f5388808449566aded7b0bddcfae9aa4f1344b940a681189f2e5403a5cbd811e308a6c0f65784ebff1fe9ee6908bde5e6f9c6392e8aa54eff69fb5521d57d7d3fe6aed5337ac73d31414c7e3a294dacd9a149eb0e42558e9a8bef9800a06d8d1ce\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d010101050003", + "82010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 127\nmsg = 313233343030\nresult = valid\nsig = 66964c2f2a3194e60ce2aa1f6fcd6f0eadcf525c6b95e2e401d7ac2f88afd0ac1fe52010d830f6a2a3859105fb98713fa188c9b68df7ce5e4d45e49c347d83cf7a1a3ede360e357bb47fb3cc31e0429c25bf5e936bc368391184fb88d6adfdc28aff2bb7fca9cae9c7e4b4ef37c61a7a5fc5d68cb12e5c56a0017b31948b4f0e0267754dc70ee92c5f8dbc3b2e7ebcdec638407e0c08c83e76eecc65f592e9a239aa303581b980f75c2630e3af8d93e8fa33f62cc461099cd9dc1f133ea1f499de3902ed3cc6732be6286168cd3f6b7b0fed005a8645fc4a5855f021302322485d9d694803c4a4275533acf2b1d5ec62ff8c98170c737f800335f84f3e9388a0\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 128\nmsg = 313233343030\nresult = valid\nsig = 63e7ef511358d2a28a71bcf1e143d27623637beedecee3638b3a513dcb0f72fc56c372ce5125e46ba442d6e5e9290a6580ed3fdaaf3f51e3daa34eb32cd9ef3c8c30722f9095f6908fc6dafc22f3bd37d998baa92825cbe36ead00b5014fd50d2371d1245abfd605c6a8fd6db6362b18723c797e0ea39c2cdb3aded821a51f8f05821bfa1b6d72ff661415cca11a5dbdb611d9a74d905298f853fa2cd2b1eeb74ffcc4e2c2955fe8db6a1c2a8014918fc0e1e0c9549d74e45287742ff4bfc8a56856d0d4cf89815da4f223d3f8b243cd7a2cca428206b82e28617d9cfcd35cd029deeacac03f8ff7ef72f5010dcdd93ed07388b2482db0ab260e1022a33eaac8\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 129\nmsg = 313233343030\nresult = valid\nsig = 0b1423677cf21905e2cc0dda60e27f749c56049bb03e61794a43f37b84b2e5f247ba9bd79050c5a601a7efc2afb42a7936d543b916e24de1ca1e666add1bd51337caf4cf2f88a4c202e53cb5071d638cb41473d4c8db4126e312c711405cab1d6e05414c43b9566b3cd0b72da3d0753796a81fbc1c950c2aab48b34d5def3140e93e0a8d1023374b9687451c847cdad5544b05b09804fc9727bd46bc9a86f0aa23f4a7715a0fe9a9065782ce58a3a53c022f4fabf67146c3c919cd1069a08bd96e44746e1a49315926ee06af8d76c4339f23540b36cd8b07e14d7ff63d38461af49927b53e7496ed6beb855cd740628ec0021768293e7ba86c03cf88b2ee7926\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 130\nmsg = 313233343030\nresult = valid\nsig ", + "= 9cd79fcf9b87e3a30f538cb7cbe94d28f76b69335f6d49dfd440210a40dc811a930b76533f789f4e23905e688ec010689e27415c5600eed4da4815db1e6e70f0adc9ce47697947e0dbb23d320fc277d473d3de7abb75837e24cd9829f5993ac35a427c172f47046e485e47003bb8447f1406b14aa495ba4b4a3cf8e2caa1b44f0718a04650dbbe749bd27c0b69ee3c7fb5ee956d0d901b5e42f710d4a3e59b3e72d70604c6d7a7a4d1a3a2763648a891107d3b14988581523356295f42cf77b7cdfe3a38e55463a39557d5ec543710b9c28e27203e23bf8cd81a2e018927a623b84cf010e40d8859b304c97e0c06c67ea017d70852ba28eddbff22712738b120\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 131\nmsg = 313233343030\nresult = valid\nsig = 90cf8affc567778bb47d0b50147e51a10324639cc17b5d5958c4e318c49a22f2bc3421129a24702e1605b3f8fffefe7847f679c91a64e56ef874dec27b4540b2471e79609067c7871cc76d717945bcb558605b3eb4b33034bfd7148d591b837ac988c0cc3bb2372c9594e573a5d5c9ba5c23de5257ce8274f60fc5ecf35e8889659ecd77c2d6ac74898fdedd3c542472a6e113acac5c8aa35faa52ac0deb3ceda9f83d2441a8f441dd997426848e461c00f64ddf6d5659dbeed8681d18102c94b3be137ef926840cb47027006f5699dcfced1aaeccca848fae72b405f4e34c5ef9fe8d15fe6b565216c102aa8e9319289f2dfeac735c8a5b95f991a0fd49be04\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-224]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 132\nmsg = 313233343030\nresult = valid\nsig = 4b88759bb96d67cda87617a09d625f5bb3b7672dffe031c3b88c3d8e67dedffc7c84f0f1f754cfeb4181d0573f2a88ee4c98a10dea1a048712472c724ba81bc28984fc48169a535538c13566f3ab3d2a51b270c4b2d55e4a82292c084b4f4e6a58e473fe7f39015fbba7d34083b7bd2134ca63330f0dd1997d0453aad7dbded4b3175f9a69607a8799e7d3969280c8f5ee010bb2ec7c151ca3c8a6bf49c2ae8eaa470998f390d12a4a7c0a39371a6c63d232bc09a647750aee655a721f066560e40a6f899909e72e2c3bf52e70fbcd26a37402b1e37c2c7bd88783fafba07265985d3a7955a5bc14cd0d0d10f1e9c67f6d98785c9c1b3914a7972cc2b1eb10ff\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 133\nmsg = 313233343030\nresult = valid\nsig = 1c8818df1fd23ec704eeb6868ed1bb8419597f4128b5ffa52166458312f42cf45e710783eab39de511cae689f1d731cb4bcc825829a4773697855e7dc84c617f459dacd58272e75fd2eeb4db20d6f956033e939952614318c3bb82276bb426b55a0deac14b831e75500134298dcc05749426322ccecf10ddf3c4eb49f2ae746d44e5f3f229f9e2298312c0b9168fbdd2104216a27cc1e720cb8e28d9992d841e52f31b2a016d896529fa1cfd7755d363bea1bae565e579663e5b7e8c2b9e0b85e77d7f740232db1978a920c8358274bde475f38794864b08c0eec5bd176de52c27b10f29f3ce0c41b2ae23b091b7393997a436c158cdef76beffd200a4e443cf\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf", + "69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 134\nmsg = 313233343030\nresult = valid\nsig = 0399ea1e6bede457e1046f2363e1db44f8450cc452845c47639f300f192906b7d39acd60ab03df06d1b27d15ca473b9b0a339eb8d63ad6ef2a148b5cddcce79175015241176bac81e6b8cbf87fe256167fba8d3cf2dfd145cba2a8d118f980cf279989d3c491b73fc123d91cc99a4618d21e5ad6789818f3a99a337959adda18fb571867d3a9eb50956dabe7e6b3e64d40bfdd5d5ecf1ba2af4741d3dc2a9ae2e2222c1881da0ebec621636851c46990f24ddbff9c3cef15533a5fc1794f365415e5d948b64877053a93953490c8f250488c9933f2547a89d1cb599ee5e7f7dbea2626ed343c63eb290b1e9098269e1115a2f5995b71aa2617235fdb0666946d\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 135\nmsg = 313233343030\nresult = valid\nsig = 12f0c2161b8f7b4bba16d19c4c6acecd554bd091c6148e92a24f1d73ee6fe7066fe28fc5b066dcf7391967f23786feb935002a0e6308427c613ccaccc74b9aa24e1425785cdfbd8720db37d867d35d09973cf4c9bb549b7d4ef8c85474252b1f760b1a81f79ccb540c0990e6a20d9a0eb5b6c101d558f8aa4333375dc795ee1563657a803c9a63a2fb957554d4b4bd6ba33f2a6b537c08965de4421fd83de78fa5ccdc1d9fd4597568e44f16b60afe961668a0a821b8aee5834b0d527c115abb649c73c994fc6ee641d44773192574d9f330b8664ee07261858d7b5dccbf27dc9452db31fb0e59870217c4751c5247565d2dc94568431f3451dcf6874787633e\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 136\nmsg = 313233343030\nresult = valid\nsig = 09c14c750fbf2c5536b8440173357de03ecc9018679af1ddb1a36dc5b38582c44ae5d42d7e0031f738191171baa6e72562c2915ae7046489a4863d7b86afd634c6ff44b2a9af0751fa84d5054f0a93971cd7c36b634d15489d75386edd1b15e6f9325eec84a2a7879e7c80812cfa387e5b620533e03e4504768f2a8a0816938959b1e70e8f8ca14d1f8809a398d98c155101363e32ab353d10c5e0a3fbffd692665f5b9d34a09d9082fcd1cf733e0f37aaad82a8512b66debc119899471d61b33c7f4f3d4a22a45fccfb8640bc2564e679ba4b6e06cdc05be7cc511e1205b25c4903b7641bd6ed38df4a8008636e5a716c014906d5a0caae3f3d5650ce3408d9\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 137\nmsg = 313233343030\nresult = valid\nsig = 47510e3b9785b68cf1524fa9eaaceff81225dd951103507749bb49b23a4c2c5503", + "727c716719feec97b79d3e6051c34982d07ccc361842bc0c92213732c908e8639b1d98a0f7bfc34cf801f96fed23c4d5e25c0837f222ce764fe9d521e4499de93307df29ac4e5c2dc92e0ea65e97f55df7493d96265b048f24260baf8e8c3ae55f44eaffa3198bd0e6e731be13cd43f13d40e354d35c132bc8514bdeccdbb1bd6a3babd73ddb8d51db8598bac7badf1180ec2aaae8494c06c43e5d2bc988b50f2bbb72c0bf8a5529e4618bbfff5356dbb47387d0893cdd601647f46deddfbff81b60961d4c293c3139d046a526398a9cd8cf605cef5358945ff0330f113e3a\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-256]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 138\nmsg = 313233343030\nresult = valid\nsig = 14bc1a7955b30cb603f617bcdcc12405a873b1afbdfcf7792a587f1aa085ef9411cb088c34b898234704286d7f09ae1586dfa3a81d4c9662ba26674c0d5ea966184e3578c5c4a926df87d75b149ea9493f5d5600deeca05f76bc445421c25220202c154bca83a216a1d6efb0b9233eb0cb3e787be2f373de8e99996483f39c92e1ac9f18367717cc9468f6e745e25abad55743fd2b59c92f840cef0e5df47ffeb83c5800e5fd486b7516a55c7b05709eb21c8a8575e41bc567739d5f1dbe95be8d43f27769bff55fe1a4dc855cc76bccb3ccf27c68d27e3a65829b1b177015945452254f5f96a96c363ca56969201fdab187c9a6c991afc932e2991837451922\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 139\nmsg = 313233343030\nresult = valid\nsig = 49ad57af4c93b5e714a83e1af3410a9020c47dc9baf25f52c19652970bf70e918780f48c3dd59a6b816899f01d9b47b7af2821ee4ab76953a2b706118eec13f5a0f442278cba1c6b72000891e0b832dfb97c7a4e5b09971c133324213820f1c7711accaf8ed1d099221e8ff6e0042ba1b0b38257a94bb621508c584f5e39c8d4fbd512800f9483dc84f99eb2a9ba9bfbe5aaa8cfe1691cab0ad87dbc354ea49b331b26158274d348620ca01d872d929e8e01d6b9815d573b83bda1623136c55e81db7392b5daba5187a09a883d58cf0687a24d019172b843e327ae507db2dd2fd84dfd25ab04b11cd4b02215fab23bbca886279091e21ffab8d7d5ad49e16ba7\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 140\nmsg = 313233343030\nresult = valid\nsig = 8afbe33b98f8c30b36acaafb3d61bd83175499bd5961ff3ebd340bffce9a4169b59768e1e3e5913c2bb411b5bd495cc92d7c04d65816b3c13b2e3ef1fe6076dc910e75f477677e106e3d5d94a784c378ec13b66dfc1e81c2d0c8c9a9156af52a12757884be4cb9d0afc6f32c39c427766db7e3d07c6780bd5fa62c05ca32b85966ee6291e3ced00d00eff0cc51d3c19c7e1bf103db0c85ba5e9e2d130e5136f209d6cf8a7fc18670264b7f392a68c6d6e6a5d3eb370bd5a194f3a17436ff2495f373c4dbb45de9a0575aaa4a2c9da84d5f1adbe15dce341a8b3ac4e3722b0aff0b942e522d8bcf54fb0d942997568bee3324587d0afdbbe578c5b3f50d5f47f1\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8", + "980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 141\nmsg = 313233343030\nresult = valid\nsig = a91b9cb0025546f2c6696630ad22530d2b41419073541a5d13ac9b739ebd9aff8f8e87f405d5151a930df8311240d6131336a3e55d33166019be5bc97e5209551df0d5b69be224af9a15eab57ab748c081e25b9e6aa68e4db0937eb4bf190ca46689bbbfc4ea5fd4745ef3938a80404ed9dbffbdc423238404768fc513604732b9c30f97fedadd6b8e3fae4e54c574d2da6ba93eeb700541df688011c59688afd11accd6c7c2c0f0d8e5b06380588a5bd6558fafd764446920b21f43af7f9590c4c20b8b90e0acdff1ecdef4456d1c6e898b2e61e6f9ce743063c6c08d1a1182b5d58edb902af0a78e9df5ad6d84da4b5109807a2e6345698c9c879679dd6c7c\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 142\nmsg = 313233343030\nresult = valid\nsig = 9a2ab2bb0264c95145d3a0970b8e66315f93ecf679e92f5fbcec1a4fb5a3f2ca0dddff5d42aeaf6cfd34e3c2a0edba2415920478be0fb23cec4f541c3ef51d4663a85d1b00f84ca069bd8405bf68902910090e3db749b5e46995b05ac28254120d8a95b6d8cb96d1bbef9e796f2cf44e6e539494d07677fadeda723704025edb0e1e48d5c26d584ac61ae3e5e363e99aaa1daed11e2cf9b637d4fd69b1177727a3205c077c1d368eaf3de56e57022629dc93b2f7bea2914036ce5f5c154fd6e216d2ead20b65efbff9ff0197432ecc01ce04993f7874853a80a8c98bc66022bfd5c40cbd8726ab3b51c84d34ac67018e6069f06c2f7b2d9c700404e9e0a23b16\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 143\nmsg = 313233343030\nresult = valid\nsig = 60683e995f60e1cf7d944eac2f0c6dc02a002e89a87b4a0a36378b6247a04456166ca2d85bb24260da59b7ae84e4191f95d15851afb8ceda6765039ef769d13efa89bf081e6cca52753e28de225015e2ff81c9b39d9bc759003a9292c892b5d9c6584cd779180048a40c75378cccec47a84b4097da02878c42423beea50fcd29a5eb7b67ed3a06eee2e05cd4236d86052bff1145a8cd5367cb15e2ccc792636f0305d90aca07d1e3c011a617f0961b938c6ce943c560c42724237ce4965ef50e7c98e52e0d18797aa65150042690dc8604f463104e114a1fbdd7e9ab2646e9c759502f2fd0e2fbd331c92bfb4168b638f4d8873e0e048cf429d8a9977e313029\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-384]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 144\nmsg = 313233343030\nresult = valid\nsig = 7dc5457f6f8aa74bc2314156e2efca717c2360d57a8c5ee396dddd6151c0cc89f356e3f14bea1478c7bb4a54620a73d558be246fa884c41314472bb9c9866fbddb5727", + "b0976593ab6c6635d8258a7dae326dbe65d203951209f8ece46a4132efcb640bcbd7990a6f0c138b456688d268150396eed52b5553f091f4888642b18580977d80680bb9c1194968bed4b0198cf72d1ed4631a6c16f6ea562c6cf344b3f8d1c2fddbcede647c91d01312b3609345d3e32df899fb981f070ed1c0740d79eb19f6d54725c006c0cfd961a2943391baa2a32e4da6dff7ed0a2a61fded39a85ee642c1e219d9ccf93faf80e2c2135b0de494f8cbcec5bb77f75148e83ba408\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 0]\n[sha = SHA-512]\n\n# tcId = 145\nmsg = 313233343030\nresult = valid\nsig = a289625f9fe684d186604fa08140f7d522dbec8ae6266ce83fba2b6bc6305e2e27bbfb346165b4e110e1b3e9445ffa8933e5417dbd87e3084835b8677ae439609616f7b755bbbad33ed0257a170a3964b85b3cdfbce43ea3c550354a92ec8e75642b039e2b4d9bc77b84c6bc7f2f2a43a0a403a1992e008786b5e9e43fbe71bee787ecd99501f1204921f61ec0ca83f1a8fb7862efe69b104d822ff5170802d510fd55cba7dcc2b695db905bce4c07a702cdecf24381f49a9b95d4805f1eb51704ea198653f43c3f124a4347ea1becd138cc3fd43e813ed823c373a35eb9060bcbb8fefb1c453c72f1f6198747577aef14ad3fe144b7d8de1bd6a123bd9f3f96\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 20]\n[sha = SHA-512]\n\n# tcId = 146\nmsg = 313233343030\nresult = valid\nsig = 740cc94a43653655eabe5a2c9f883a3784cbc5b13161e05ac0849cee39b2e8a42a0f53d14b47ff61d143584797ad0889b26de17b0c27c79a69a356e2e3eaee2b8675b0aaf68dfe682df23463b9b780f5b4d6681c00b27277e4e7839a333b022a16e7b75418fae9d5f5b3b996427d518eb1a696ac83ce6c5107efae577859b814100f19c52708481ed03d038a4cf6039f91bf72f4788dba51179e3c95c750a9432af1044f7cc758572ff11c537add14a6618d0fc1064f762485a0ffebfb0cfaceff4602367a231cee6ea2c8407bcc88267f42189c02e3438e62e3825d8667d1ae221494d4e29626caea3a7f5d2284f18862512cdd4cd9cfe1d8d57cedc9960299\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 28]\n[sha = SHA-512]\n\n# tcId = 147\nmsg = 313233343030\nresult = valid\nsig = 9a8092d3e759eac9374356b3bda80d87c6cd1f1188dc894f48bfcc2d15e99c65ffb6353510998a360f28bd636c61edda93ebb903029feae9b2c3935b2870f9a3f29e044f3ccba9a08357226d48f760158cbe5bfc0d7c0a2eaca0b1b167745bf26ea1e008e7377a085f4bd685fd5ada6602758e27541e6f270adf6d5b1a2b6c65a3757c5b3c4c29284e7cadbd39f4cfcb4253e959945651c60eab57ac0170da7ccb0c8d72e760e603c755a1b1e1356e968989cec1b9e1273ec2c572ed7dd0d0d29c0ad1e77692b0d79ec60657fc21b746168dcdf0d05a3ef1f37a4ebfb199cc167d94cc2c9b75dddf113048326797a6cfd6c9a764a6c71131e5f5654a93fc83a7\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba78", + "65dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 32]\n[sha = SHA-512]\n\n# tcId = 148\nmsg = 313233343030\nresult = valid\nsig = 3522943f158039aa68354e3c51eb6d9a496f5c7e7c33bfe9a20cf98caa710b88b18ecb6d73177787479d5064ce3deddc13f98998a7207118de77029e8fd5f012a9e056b972a974cb5b087b6564821af89ce3b64348095accdea8ad7d05cf3d21d6208365a1d2fcce7cd964295c963e5fd495448c0926de0950d12c42e056595295c4376484fd7d0dc6feef3dcb41ec5a0dd21eef375e65523bcf5af70a92331beb0c6b5ac445d6a06cbebeed0083b746b3d667aa366c647313389a2d9b61d41eaed8cf2db8b4938115700967432dcc4f383278b4a397afac04bdb7c2f5f6051854174d85fb96525c2ab7bb58c0ffb481efc29d08e4ad1a86ccfcbdcd98974862\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 48]\n[sha = SHA-512]\n\n# tcId = 149\nmsg = 313233343030\nresult = valid\nsig = 45d8ed4982ba484e0bcfca14537d607fb6c3f8f444425bca05cf29bd5f92945f0ac211ccbc78d934f6fd24131ae88483547aef01b4e70acd6f84eef74d4a2de40b4d15d38a0807087a54ece36f268a60b70c500b72fe0ff49920c63c0cbde6e0d9100f4e50ea3b5e11a595f3755878bb1e03c295d3e73f1ec32d24d629f2fb469cea48346c057abd64f6bae4cbd0fb89076a1e42bd5260cc5691fee46762136f936aed35cdb6e1579d586fc4e166fe252778a379c134562175e17eecf758c11eca66ad259aa9e51e504d0d317b1715bd224706d65418a4601612e482bf95c1e9e9278e5401bdf1ed24118b908a8e42c562a76896563fe4c04d62b8abdb61e4cb\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[mgf = MGF1]\n[mgfSha = SHA-512]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sLen = 64]\n[sha = SHA-512]\n\n# tcId = 150\nmsg = 313233343030\nresult = valid\nsig = 63942e89a56b634787dbf074e75b0525e8bd3b7b8172f2c27499272b939a812ce2f501eb95a64603f9bc7c2120ef2f7133c3b2a4bf6445e2257b59e57022c879f8d60667ab8e28dc972846670858fc0d5bdbfa71dff870aac96492214533383d8740d84ddf61d46f852c6bf0bfb2d10c2e4d41ce7eeaee028333dfe77650b53e66cd2c2991b80c32faa33aae27b1c30c0ae2abd759c59eb22e0d0597b6dd63491e0c95048c074b1d64d8f356e637669d90974f4eb29ca184468bc1e2d24cfcd36e395c41cf3703cdb1a5c206fbdd4763154e5569d04d75998e6f425bd42f80e0dcd8deeebc3322aa6f50aa873345d7c9a0522154b6de2387664ae33764ffb2a9\n\n", +}; +static const size_t kLen148 = 236014; + +static const char *kData148[] = { + "# Imported from Wycheproof's rsa_sig_gen_misc_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[d = 5ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801]\n[e = 010001]\n[keyAsn = 30818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keysize = 1024]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[privateKeyPkcs8 = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d902030100010281805ff4a47e690ea338573e3d8b3fea5c32378ff4296855a51017cba86a9f3de9b1dc0fbe36c76b9bbd1c4a170a5f448c2a8489b3f3ac858be4aacb3daaa14dccc183622eedd3ae6f0427a2a298b51b97818a5430f13705f42d8b25476f939c935e389e30d9ade5d0180920135f5aef0c5fecd15f00b83b51dab8ba930d88826801024100e882d12d5f0be26a80359f13c08210bdcbf759dfee695313efa8886919659b064e3c656a267af6275ed1af89a5dfe9e25b31a02bafbd59445b7507a22989a681024100e5a65cfa668bd857d59135a78c18c8adb7c222368e9d74abad8e83299f7ac3c2ad7aa44ddb05deea6d9b20dbaf09a8615284a17c72d3723240334685ea7e2559024100a327c8e8f19d4150428f5e055a3ceaca846a19e30d45534ad60d894b56caf9b1bf0c9a8d965b0a882dfd2e1485154ee5cbe052e8d4f525c2d5fa9554b1992a0102410091f17ceb411a247e056287f79787f498b9cc2d1400e43dce10b91dcfe8e30adf80820d42d12b54f4247dce8eee193421cd602e843930f944c81a0dfa730081d9024075915a454770b49082423761244ccec65a6e48ae9966344b675610facad9162fa5bd1cc5108c322c2fb3c144f807773a2c7d097f63e5c8d3bd8ce8efac2ade04]\n[sha = SHA-1]\n\n# tcId = 1\nmsg = \nresult = acceptable\nsig = 03e64d148e05201b021fb5d3d72ab6abd4294be6c1673277ba5822ad2fe7ce4bb29ac547b2fdf09c2894ea0e31e76f1b3e1937db91c389467e9a8ac7be0a4f674456f01c5b4fa4277a26028b49b16e25689827d0a4b9f1c25a63350dc15131da908a05c7cfa8c08a67ac9efe3b0cd04aba7db12064cbc36729eaaec540c4bc12\nflags = SmallModulus,WeakHash\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 1d19763e80121e228ac4dbb3be8448560aac613ec74b168efe1d8a8335b77e6d8c3cc0f641de8c8e26a2aff9d32a4ab77340912fec0e60e89257b5b6b19c8deb866c2d2349fe63a06ac6b72397b478cdd4198ead64f8d36b9df29651e95ac7b886978cffbb5f7498f136b1ded7580cbcbb31620415eb71cdb5bd615b47eff813\nflags = SmallModulus,WeakHash\n\n# tcId = 3\nmsg = 54657374\nresult = acceptable\nsig = 0891ef2061c4d3377744cd7243ccc444619df533f4eadee216f7ffb9244e86d3e0162fc82c0b9502dc7aeebaf7884067e5f18f21b395c43bbfce5559ae84157ffde2aa457b7f44675e706af443acd9e38070428dfc6471a24cdc0d44f9283ac158704ad114375f10c24e3adbd12c55dabb78b8c41d3938124acc74126c82bb0b\nflags = SmallModulus,WeakHash\n\n# tcId = 4\nmsg = 313233343030\nresult = acceptable\nsig = 8277e8984d536f81667feeee7e24068ca5bb8b815210b3e9fa82294e11cae92c45164c9dd5683be4650e4b7709eb8879f793ae804620750b26032894e53333158f6afa6b52318e6c730a4a55d5a0fca6d029744f2ecaa2e00d3d6dffa0716acefd5c91afeda74b7f1a1bd7e635283bfa2142ace513da24eb8f25f3578a401ba7\nflags = SmallModulus,WeakHash\n\n# tcId = 5\nmsg = 4d657373616765\nresult = acceptable\nsig = b41191a7a1d11e973600e9a28c8d6e6d1513f7d970cb05ad50c686bd6fc42b7848559b2b3073a8cc9839f464d82f8a7d864cbc9698cc1a4b5b8c8103d07e9d79e5d24e1b3ab69053461bd76ac3b62935c31ef9f0c44120bf5c0a012eeedbd2a39d347cf6676ee8c81a88eb87eef2708edd793ebb79d6fced626e6475681fe73d\nflags = SmallModulus,WeakHash\n\n# tcId = 6\nmsg = 61\nresult = acceptable\nsig = 29f69d320ea3221cd0704300f456295becf54e877c2b9b2704dc47ef992588c7dcc1648d17172d8c76362c488aadb3437be488fe667a192c5db1440f70d102361d7e85ffab370c7bdaceba0d15b1f32ba0801ccddc9fbaed1323834a60d19ff13ecd46a27f06e79cb0d3aefdefc0c69d8e85fbe8761d83f35e362355ba675933\nflags = SmallModulus,WeakHash\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 9aa3040e7df724bf506881f6a92a133ff76f6a168f0f3ced70b3363835ed6b655fae6f39416555af4071c16262da7556412d9905279d666f9e15fb8a813b313d00007cef3ed2be306b9e29e6b69c2c5bebe36aa057feba44ccb6c8619076a5b23f39729ef78bd6478249f34ee99f3abeef37c504410910d1ad3f1a712c8d697e\nflags = SmallModulus,WeakHash\n\n# tcId = 8\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 1fd0610221104c3f1e7f49d4c77c48bc169e630d5471e41100ba58dbf0ee0d4731a3d5b3c8cf9b07ad116e6cf65787650fb90bc85a9c4fe9940f4754316772c4946022178a3becbaa3d9b6252ed1353f7de834e0ac6d95d5a1f81453e89650f5690dc078df80dfe8ab614ca4881e7b001f9a11a4464b1004bb537f2b99624deb\nflags = SmallModulus,WeakHash\n\n[d = 50f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1]\n[e = 010001]\n[keyAsn = 30818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keysize = 1024]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b020301000102818050f854da7dec301ab50d81761a575b0436ee7a6445ef359b7bf3ef374ab323883dfcd6e6c2c43fcc1d71d0d6408faf1f5992c69846911fd2a438068fba46fea5c108f95e307fdf3904c1cba6f014c6555a79679b843e5397e2dffc5e349d7b8666bc3c5e411f39f0f2585bc7bda70b84b8f5b08c9260b39d3e8603c88d128fc1024100f002a2625626ade6f48c6f981017968124de0e2a8fa38d6bc4853e1bd0b48ac327610f5e566f017bd74bd5134cc9fedc2625f0f7370f42249663e31dd58c4ce1024100eea660e905c086faf3d3ea3a94f2f9716a0fa760c170edc81b64a05cd5289ba8def634500068682dde0600531b41cc3565e9d6ec3b4ca3f3385e85a843e936eb0240667ac979318ddc6d23f81ee20fe4f2777c1570790dd1e8dd9e10c27f3ff306d8e324975a518f", + "9e53918f2890d015e3c37e6a6ee42fd74d07b04b403b89e619210240609d72f663a1c203aedac824d75056b417a026bf01115af27c448cb788845c204dc397021c68286509519ca8088ce6c36772f7d3c35e0fb1d3cc5088029653e9024100b1bde8f7c203566e12f11e23319aaf9cd671e25579a22d6d153eeec123b5ffbe7fd6ae6a0630ef956640805b9231d9b5da97a0d1d83b55374c22885ebff7229f]\n[sha = SHA-224]\n\n# tcId = 9\nmsg = \nresult = acceptable\nsig = 507e6233a3c80971daa07c13f34a532d53441e196d642fd6564b347fdceb865c55dd47330587622a30f8d4ee66bf8f163c626f8dd26b313bb4095ea1ae9d6a96a24365f4c20056998eb9d1e3f2e1c78257361e5c21e5ba76320997e8cb30021e8f11a580000891bca3537d7a2c0972e06844f1a01a1dbc9a3f8b8a2955f7005f\nflags = SmallModulus\n\n# tcId = 10\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 414de39059daab523a725efe437d688824a43689766b33136aa3e6da0a2fcf1c2aeff952605c2f1a12a29e36f282e59631f442af96c7659e0717bb24807835aa06f034906670b042f8db1cdcbf3c54e25472383b6b9097a09bfbd73b2e7c10e18731c6bad47af591bdb2d376680f6cb62048a97c19f23a70e98ddedf02786efc\nflags = SmallModulus\n\n# tcId = 11\nmsg = 54657374\nresult = acceptable\nsig = aa5d174e95f9a1ff88c1ce60b3aed1d39e256e28b0512cc4b52be1d41b8ccfa2a739945aefb5b697886f4f08cef365d18bdd8151acc588fd4ebf2aede9bdd904aa3481822206f3fedc5889c9f9889a8dd4d160d65e587ee228f9ef155108cb283c4e2a697a1e739827cb4a9790f96023e6ad24cabe51741a7c7cea8c52f08cdc\nflags = SmallModulus\n\n# tcId = 12\nmsg = 313233343030\nresult = acceptable\nsig = 54a81c62bed2f716feb2939f504db144c1c3b70485a1f35b2871ede567ffcdeb8d2ed0c57c56f21b70388d631be05b4c738e67f160f34ec42f236cef92b03d3dc8e50145b33e634a6fad8e87f84624e96feefeeaa91ddbb003c3969017dd2d102da2e7d5de8ed298139d5e503e0aaab136fb583b99ece2e6b1681699a04b977e\nflags = SmallModulus\n\n# tcId = 13\nmsg = 4d657373616765\nresult = acceptable\nsig = 11890613a8ae298c21bda95fbe4059c37426f41ceccb7bd79598c72ab4662e012f08b7009c15155b5ae9d132b4ede565963e6014241305279d60662f57df7119e5d4088d32bfc7e0847036f41ca71f9a92660f90ec13ee9e19717d0b567ec5a6b5978a11337d5ee4e9147352fb954817be04fb767ef35c07babb03fd04a31338\nflags = SmallModulus\n\n# tcId = 14\nmsg = 61\nresult = acceptable\nsig = 0fd461012145fe0ae9362eef22ee35dac0d4751a037ce4cf0792012bb179d101f9a9752e5ebc5454b18684fa1b557f3136ae68edc087dbfa4bbfaa59be42d0daa84b574a9f23238d4d538ae3e6c32f8dbd98b1138b545badcc10b184428fe2707aec73206367f147196f7b83f358377562e8c7d9f1d396a1cd9aa74f8a78cb1d\nflags = SmallModulus\n\n# tcId = 15\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 307e421e06bdec1fc1750d53529f5f007eddcc991af8351477e1d67169409e3acc93367fadc412a4554854004c4a29c8af4af09793e55967ed439645034cc9e9ae565edfc861e04c763d058ff3aa29bef3942277b4c971d830be1259aa30c125a6ede65971b0120758c2a6eb21f238ff18228f344155ff9109a0f9656cae2351\nflags = SmallModulus\n\n# tcId = 16\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 019682b9c934a37ec166efae16b5ec75671fbc6322cdc91bf56a6f557001b8914050852ed7f13e96cb47fc5932a311ee677ffc05c1cf6589201b1a806f2ead9ff3c7cf327c391044fee073527a791a451a0571e50bb1e4b4f7e40847dba751f2d73f2ab2f5ab11724be81c9fcfded5a2535b593287e120870138e5534292104a\nflags = SmallModulus\n\n[d = 008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841]\n[e = 010001]\n[keyAsn = 30818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keysize = 1024]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[privateKeyPkcs8 = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001028181008505d47c271560aaf6cf65da6d5594a69c86f01622ea194071606fde369b65f5a751bce06052409c3a04c6a8b2be935bc0d084829dea8ea0998398fd2a0b0719ac1a1ae2d133fcc72d9df27b377b9a0109ef1a564e92b66963356b8da48f88fcdbc20658f74b542582925ec5cd03fb5e9a527c670465f792a69c1f6c7c5e1841024100d397dcfab4919db23bb6b88c4511516f6135e1118277e496130f0cab3a75661010cc98ec8f40cdb0c1ab612c03bbe3b023d891f46185788fb114437c8a9ae71d024100d0c7805159509ddad70f35b9a76c7c2bd95a844d36b76d96138cfc7a2a55f88072e8b10ac37463caf9bf8d1014c93a001214d7ce230c8332fb58dadb05d52f8b0240762d3c4b7dac5292284dbe3701a051864e99e4117e77ede06fd698f1cd5da25a58b79cb58ab0dbf0dbca17249915486ea9269d260b8d9b2f4dec8e60b19d2075024062a4f06eff4944dc6262905ae0cd343a2f9f42058d85cb646e665de086e249e0beea4cc42e276f03374f9721f30044c445c6cd545b610d186883ca1c543c2f1302403cfcf044035c1854475e1dba480ac50d2a059f32d18e819c96a3199b1e3855a653ec0e5577e4d7677d6e0b7a55fc418b13202ee19430228c4bf9d28af8851c9b]\n[sha = SHA-256]\n\n# tcId = 17\nmsg = \nresult = acceptable\nsig = a0abd165a5ef8733ba111fa0fa092630222d809d8ae811f24f8bead4968b7533af31019663713ba134e7dd345c38e7166a037025eb34adcd6891c9ec941d2e3eb1e4bded1d269272b602cb9b53568b992ddb5103914e6424c75505701a37996c8318b0b6f8640cb6b6e770ac44314b866a7c683a6903f7bba07b6f197ec554fc\nflags = SmallModulus\n\n# tcId = 18\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 41339884a9b3940e8488d666bb158063c6a2a2717cae7f564834a876fcbf7098ecf3acbfabf37d38a8e6127b1e313744f1f896e165efdaea0b2e7673867842b9e94db0868ed9a92bcdcb370a4e20ff275c82595e4400a8b9e9f12482f014846b48216f321266ae6ae6338dbcdc41b711e483e6e3e728772e7f9f5ef95c30196b\nflags = SmallModulus\n\n# tcId = 19\nmsg = 54657374\nresult = acceptable\nsig = 8883676becdc27878ccdff53dda011e5e2f886e31e1e88d520bb161cd63aa001fded9f0656109c1507bd1ba5d3bb3e725029a236b4c3c0420a1fcfffe348c5277d6aa51bf75d9af26fdc15fc49d637b078a8b0478b5b0a9c428756d260068e5e622f193b9f9a2c1d979e3322d7f3edc32053541c6efa2485e42e99a804f94388\nflags = SmallModulus\n\n# tcId = 20\nmsg = 313233343030\nresult = acceptable\nsig = 9f2e01b92bc9dd32dcf24aee91467797396649a3255bac943dd0e03c9ef416f349c0cbb728704730f3c7a7c244066a94b229a6e86bde7753c8940129626307b542cc7f596583932b4fe6ea9384d5353e08654e966a64b63bd6745503f7e4383dcef74ad4516ac25c8790db6702ac5b8b057a8fae75669b6a9e689e9211a337b9\nflags = SmallModulus\n\n# tcId = 21\nmsg = 4d657373616765\nresult = acceptable\nsig = 3cb9557d9fe49b889319e0d41efc00cba34277caeed2b2c54fc89772c669200dd63f02f340cb6ed579a379a3fd6a568ca9d4bce206655ae4586850638ee6bffaae2bed7c7afe7353d22418d7e4f6b15e198c85b649d3e5a67f00702dd9fefed7dc72136bb4440fac58e64453e4ee63a81de4270446571b192f414116e165efc0\nflags = SmallModulus\n\n# tcId = 22\nmsg = 61\nresult = acceptable\nsig = 06e6fb568e366fa20d48704be40e991a291d47a464296a49c37718c1153b0fea17ac18a01ff97b32a92d07635dfb9143d011d003c9153020f5ef7fd3ef258cfe92a7a2120718fcc85c73acd34cbd50670c2e044dc3b82fca29b1017912b65d8a844515655308367d8797ae5b7fb91042df573f32de69c1842a128ac88937c0e9\nflags = SmallModulus\n\n# tcId = 23\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0", + "f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 327238fd701dc4a829827550aad98f9bcd75e9f3831c3679998c869c1dd8381bc6b74b721e9d3377034e059d6637690ba3a184ffd98af951d43a22105a51838f72cf592d658af01adeedf721cf2eb2bb2c90c68311cb267f0cfacca903c1a2a73f7228badb5d86976f5d3371fe9b00cca048a7a0b0fc4b03da11c5a098045e07\nflags = SmallModulus\n\n# tcId = 24\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 65fd6547b4c27c06da21cfd067accbdede11ab8ddf16899d3acfd61134bbc4ed3269198733093062476906f36598a565ab32cb4b4f90e8c2acdab870bfd7f97726771050c4c67768d98514e51c28739067ca1a7890a846f6fb142d720df3c98ceb833a8cd8cc6129d22d0c5de9120c127e69e8d7b1548a474acf505897fd9f8d\nflags = SmallModulus\n\n[d = 5683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031]\n[e = 010001]\n[keyAsn = 30818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keysize = 1024]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[privateKeyPkcs8 = 30820275020100300d06092a864886f70d01010105000482025f3082025b02010002818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed0102030100010281805683206e498cd4867f94b062adaf2d3d7498150709d45ae03790731a58303b74a30d9b37b728f1c56fc34c2abf9c21e18adcf3952416d539934809cb1b516a62d80e1082b3e4d2ce749f58c7a1c0e5907fb7c6b9c9f971c80b890bfe101c5e8a83156bd4a55283a72d0634550a9bd674b771b9e1e00619eb43d6e35112e15031024100d55f5ac3627e7d4bb07c530cb26b3e0ec6cfc7753986e009c9f53d84b6940923d293f8c55b5e9820b56dc6eb008ee779a156a7c8a0b4fa5b6117a4f64233a38b024100c227f5cd75d8865f75ab467ef5f8d43ee0707250450d523230fa3786a6632dbb893ec9cf1039058521b4280529644315f9d37409915f6f5e86365ab82827d323024028403bb3fe01948b51b8b24603e65d2796739dd1cc4f5836208605dbe2415cd4082667d87b1b0621ad780efd47f6ad4df194924433a4d051aaa836334a5bc96f02402fec0d0f9976c833e7a74ecf2787335c11a9af8d807db93c0a3ab859d3d7c701f2ee3c818f4f83bd48845f1c670b0843f455ecde2fb38e999626f45d600bf46102402efab8b9b528803fe02e6dbad575d57824b794dbd9ae0b4d6b43acc1b22a42ce2ffc12ff9339af3da08387cbe73e1bd326725487eb97c71ba6f960e5dddf4207]\n[sha = SHA-384]\n\n# tcId = 25\nmsg = \nresult = acceptable\nsig = 8bda47e85848bb1d98eab90bd5f1880540204c8753a17b2552ee4778405e4c42cc3d25a4d869eb38f1e6fd122a2f52fa8685c3ef40400ade2017555ae88fa892a1ad2793f7c23762f0e54db0852cfdb2e52ebd02c8acf81b9a1e78accb5fbb57a29391cf4fa9aa298111c7b94fe240f0f576b1b52853853fce13da155f16e81d\nflags = SmallModulus\n\n# tcId = 26\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 74b9a7b9548a281c5a258520c879e0e64d8a28812a7b6461c6e418e0502b61008a8e535a5b55fb64529a6a6df2f60ef33c1844b27f81532be2bc2992d0eb5e524112da90bf40adefcf206469639ff3895a9826674ee1acbdd623842ab0a9a36d48da13ba17c4ee069254da2ea418d5a8f135e2a414c0654a266d538621917545\nflags = SmallModulus\n\n# tcId = 27\nmsg = 54657374\nresult = acceptable\nsig = 10d9c8b0bf55586e985799be60a17979eb0461daca00ea6defcc62fe720ea502e7e486c02a48f5ca41ecd96c67b5c762a067c465c35a8e416748897ede3ee2cd3c3e1b1199da5c7f0dd0f036774a1730e63ba781d6ee43d78b067608e831a16dbec6075c8ec90e81a4d8e2ac2587b0ae43f7445478b03ab7eba2e63d4043c2e1\nflags = SmallModulus\n\n# tcId = 28\nmsg = 313233343030\nresult = acceptable\nsig = 2cb15eb09030fade89eabc41794d288275c456f12cb0d414311e5edb551a51c3e1354f134b27aecae50536379a871a4ce6ab2e1b999c0308f5fed2ec48d97d68885b37a1e3e26b841db103b64f720f9aef265632f4f4a207ddffe19092e8b16144b0a3443d779c0b648077d3b04b72dd4f4051ac232261ac9df65974764b97a9\nflags = SmallModulus\n\n# tcId = 29\nmsg = 4d657373616765\nresult = acceptable\nsig = 9c80154e3087b443fe6d9bc24faa7ea009330a210f2f1063ea1b61261507a5e3853079a0287d5b27983bd751ac782b1a5c31130978d3f2a8a95101c4ed87eacee964953ad32cd2cd4caeb7c37330d1650d7ca19dfa6e8f1c184d3dd9a3a759d6badc700b7063d2c579b336c5e141c200614ba613d9bb6493e87d26978b438573\nflags = SmallModulus\n\n# tcId = 30\nmsg = 61\nresult = acceptable\nsig = 99fc12c90f67dff9600c30c9f81bbf335492151345c809c05771d59ef73d438f88c5c43ba507a3cad6633641d70ec3f3c38f67cf7f2566489f59422a2dad1f647e790bbd28acc290ab392d48ce7a140184bb71023f8c9c5dcd9469ebe848063d96bad26fbd390974b38459d51727eb8c0a5b8a8ef1d3394b6f852dd2b22cd22c\nflags = SmallModulus\n\n# tcId = 31\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 869b42bb93624a139bb98c043cba8fe12d612aef040e3085994824a480274c0cca24d08d178321acb048055b777d897e267cd50809bc7e9f86c276beeb8a8d59d82aa2091c66c71e41ca59738b0e18f055f9c75a01e87aaad446e64ac0183c002ea2080415ebb4f85a590622bfa4e701a6e37d0b33bd78d5ff874d8d28fda263\nflags = SmallModulus\n\n# tcId = 32\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 1d1d3424bfc646c0e3668ab4e9eddbf993c5efe63ee6ccc966dd467c466225bf587b9d7508a7dab8079c50cb3086b9f0fa3c6e77236744618fd651d39bed94bdf47a2a77897341f16da3db9557b2377f151375a74d9af8204e155abbb62dc7e2f6effee3ffe936b360e45ab750ce69e29f29e915baf8578017f66d85192ded04\nflags = SmallModulus\n\n[d = 00ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1]\n[e = 010001]\n[keyAsn = 3081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e6110203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7", + "327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e6110203010001]\n[keysize = 1536]\n[n = 00b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[privateKeyPkcs8 = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e61102030100010281c100ad5144c6c266314d11dca0af34b8684a77cab12be2ffc8fd213e9289ff83eeadb70e4b6af5bdc7dd72659753ef1f84c2f8039fb13ced41f12af77bcb1cbb0333e26dcf0b27187216910d3de289487ddc843c8b66f1f662037e181dae36d6aaa3b509dd33892ed4851ddcaa4d02ec210262947517a38da2e9ed35e5801901bb6e82043bae88aa951f4a56cf454b4dcf2a9dc425525ee4b6e199320d1b080625fdc8af4e44592e87cab8753316fe933ccf044380880b1984f662c638ed8c3158f1026100dd9fcb8fe2c6d7d3cc0c52588aabf47c8919e4ab8f056c1cad8383c073a0989aae1242f2842c9c16efb50277ade40eb02201b4dccebff3a7498012a19b3703953602b6fa611d12126f40872ee2be249f0d8109bf61934375283b1c96e7c2d94b026100d565c93033998143659e1fa9efe089f05fc225cdbee5452442d59909730b48a1c2018ceb97f25903db1eaf8735f8269b5ffd7d7a3643e3ae8d736602c1a1f26f897ae68654bb3380f2cadcfe6503c0347c84e1bfffe0019aaab4c2349d92609302606f4c205e51f4a9cea35a4cc04a63b0941a05f6e07122b7f86eeaecef6921ed814089cb351f4b87d7bce99a23a02037801c93ded044c40108b1d0af8a98f837c4672b55d8c78c61d70027d7bba402f94126f6f67e35f24e9e3765f825909e39a1026100b10e4ae75b68b9ff9988a0ecf6c26eb0aa4303eab9c0b0a56d6e9c136308b1b2c4ad54a704e36747f3be7a14cd8a9f3dbb5f2f84ff11450fc6fd405e791a4d748db5131fd19da116145c8d0fe5f03ec14daf533f62a611aeaa845fbe181f2351026045a036c72629ae8dc5dc6ea1cc5e8d81fdba1076218c14e724b941835b1901c70dfcdf231ad63b1942f3d79cc561c42b7e7013a97c1acb5a1e49ea44c86201c7feb57b4afd83e3328c82a94267d5d6a4a42d726025ebd334c9692190a603e230]\n[sha = SHA-224]\n\n# tcId = 33\nmsg = \nresult = acceptable\nsig = 9cbe6b808679d666332a97049be279327c7e00e3c17354fd1d5f611969f487d9e397456b90549a77582a6e8b51fe212399ff68b979fe293efcd11ab79cbfda818cc4039c62d32b58717fe0abf2b4eeea0304baa5afe23ff6614dc6cec45b518d6d58a157ae211e0a67c36a0ef6468d0dd68f6155a818bece4f8d35884f4f90aa6ac6250bb3459604d4598ca7c7e57489d484351aa936be4fc9051e28e229f4bb60fa97a3f018ef37fdfe78ca8cfc0caae758c53d0f68edb8b9df2b826c80272f\nflags = SmallModulus\n\n# tcId = 34\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 570c9a8a85a988b5e254b74af7611f0a1e4843e4727c9117a5e2bbbec29b0a6e84c5ccc2cec9b100410b37d1e0eef9a2a21a2894e1a5b581e6567d1043a980166ed7449e557fd7f1fb19fff60f3cfc85c79c9793c553314060b95f0a2199f4de16792e35888b78f7bbd4520eb09efc7aede5d24a51d8c123669ee2452357dfd089986005506df4431c50432509302e7c7e9aa8e9f383ef8b856fda1ba8db44f36b7aae91c597bd6aa0b4f12573a664f328b23b7a7e8738d5bfe772b39d5017d7\nflags = SmallModulus\n\n# tcId = 35\nmsg = 54657374\nresult = acceptable\nsig = 74cd13a7cad1ba8c0254967f1cf7d594a084995b5778b113a42f35654151556e36ff796f609146bcc519a8f983d0093a1fe7d2789d0c2688d8444ff4c3c8f6759eb71d6fb7f47a2eff42e62ecdd14fb3cf2e6df4b0717094863bf19a84457a656d3fd64aa5c086e09a8097e3576ba1d91fa17b7a1222b9064e2c6b06aba5b692a7078117838c64cd6598bea415a231daf4e62d4bffcbc0986c3cf86ae6a3bbb7ffbe85ee002ce9af3177b1f2c0ae14b8b1cd41b1bf1b2ccc688794f092c91873\nflags = SmallModulus\n\n# tcId = 36\nmsg = 313233343030\nresult = acceptable\nsig = 1ecad2c46d9d37b3bdecb7f9002cc48f8345a2aec090f5d599350c855c4eb58f8a503d8dfe042525a66e771bd8dd8a70fb4822aea1a0cf33577ea658288e6f2fd886888cb9225f1ea0d03bf5b5e63afd3bf59c0c1d3f2cf4f4ba2a8dcf23182feec72f76a60d252a8cb0b770b7d0dd6c72c072098f81b852f7271007273eccbc55a9099e426e566a52e11be82e78bc8ce8c6bb721f858816c43aa253a950da5810e5690c193b820d9ed4f02046a548503c72755abf1450c09dda9c84dd2a079a\nflags = SmallModulus\n\n# tcId = 37\nmsg = 4d657373616765\nresult = acceptable\nsig = 402c91c41a3e1782ae406b04ff52cbbf9f71cc5f3473b9af43a2ef96245e79b62551d9b23a85e6e80a2041b616dce2647312258b29bc6b549eb38afb083d823b3c2619caee52cb1583a7c20cba7da2159ac8154b98a9683388bcc523c10b6e560fe0c8a0cce9237ab1991b207e708b601b13c5d1d86825d89fc5aaffa0e89ddcc11d2b516de64e34783d86c6d05ded6024274498b6f3dd5593feb03147cfca3890f92487b64e67ccb676b85144899e6d257b28edff14130eaf0cc45b60ddec80\nflags = SmallModulus\n\n# tcId = 38\nmsg = 61\nresult = acceptable\nsig = 4d93f0d689c59942d9e7c26cfc5af040cff4b3a114c7e191851baa888133ea52583899520f8e063d7ea1ac7773ccca280b92840082d960b0d1e20bc8549c83f989b6991613c1711a0a2586de7fc2bd10750023e2866fce48329621e9203c2818373abd69bc1807fc1158639d3837b5391077a39f829f04472c74bab0a15757083a34ec2701abb6839ade2674f1220af9d109678d209bf5f16eceaa8227ab028d0017530900f52b8be12c33f007dd21774a5bdae2ee12d7e47e98e5cc7d301d9e\nflags = SmallModulus\n\n# tcId = 39\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 44a571c4bbf737001fd5602e8d096123de21b47c36eea780f3e0e19fd2243605066ea949c88b6abb8353ee8b88e394a485031e9e980936e09bbd17fb6dfe340f07bcca5cc51edcbd5bf98c223f44976b6ba3b4b2157f1a14a7b2a20728f92a31120f968138a33164c78b7fe9146ba6d641d6c7b7cc9b1b4062e96002054eb9cd2e738fd82564dc0fd87f08b5006f52db13a7efd4602dd6736cc9667701fcb9ad48c5b3625a11e44e034d0cecb38cea4766b03416c94f01418b411e2f4739ccba\nflags = SmallModulus\n\n# tcId = 40\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 641b7edf71fecd3c54286459d1c34ce67655d829afd2e4f09aa28e673b51d437113b5a7ad8e245f131da0b6e8a6aa3621aea4211a573ba6a9cbc8e5c4676970b8032c53993e97b2fd93bb6b54c627786abbcad21dbdb584a33e1723a40e0a9919920708e03001019f715335024fca23a29b948c4eb4c5176689ceecf034ca0c29466b4026313d8238d499cf6af4ff93792d734ef0c453bdafd0e5dbe20dfacc5c92ee9cae029ed045f9ab23b03c6a4d1e6d286053cac71ba10bee4a8bb4df86a\nflags = SmallModulus\n\n[d = 46e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01]\n[e = 010001]\n[keyAsn = 3081c90281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a2710203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a2710203010001]\n[keysize = 1536]\n[n = 00eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544a", + "ab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[privateKeyPkcs8 = 30820396020100300d06092a864886f70d0101010500048203803082037c0201000281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a27102030100010281c046e1a2857f797c070aec23e122a46ef63c924ff207da47501ef56edf4621bee8890fa023657297162f0b7f23dfe29bf492a5108596d486a2c19c66c8a896e07e812a271d6af54d9a405f0d6bc259f4c53c5aab9fa439ae2b50c4927973c265b58767bfbbebbcc0694b4924af47648166e01c6a34ab8d4ef1d23e5629a1ee56565b69a4aaf921065aed2d659aa20969b0eb7b7afbc6e7471766dfd7c6b758cc1509f0a1c70af0cdf8c4b2ef4d33eeb7672b9da5110e39722a4767b99077cc2e01026100fabe439487c73dc1231ea47cc3b8daf1776fcfb44920ba035c9f1f1a597422a8ff38c0291971c45f7f617e3d0b4e4af046957b53cb4565773d64671fabc78e27578fd403afc7d1cfd6b8339c44787149dbb56ed46479f58e7ac881df4902f945026100f0363a45a6a07169390677e607acc4e17bc624a01c377cd7154e1b7fd819f08dd6f13b9f6dff6dc447c502a79299c3ac19b4bb55a2aafeb64321a4a896e1c0fd7d6834e36894469007506086f159d807bafe9a8b13b1ad83a501ebc694d7993d02610098a9108234eca4779b87438446b19c73995134f741f2afedee0d5f256ec31b7b22f08d66387ca09fb7f146a7a9e38012ac16c4a06ec9108eb98d109022c8fb8e8e6c1e1c24809708606583dea77d611423b56205e42ab0cb8f8bd62e78c85bb502604b1377c4fb1e1c3419d996b1b3666126642bfa987c192f907d9d2ae51b2288579c7d4af83a45e205bdb4aa6ebb58099b0971be37369f20fad0227cb72069308b499dbf21f0369f933665fdb54f4b98445a426704dec3e28a49913f2292b48bb50260593d103d8d4b2b827f0faeb695094d4f5dbff86ef757a9aa51b3a06923d24d09e1f9f0f50ec57d3c65986c3822345216762e92d0d6becbe2bc718c63c651255e8c0649b244fedd754e454620efe317d752e578ab8b35cd7da6d6be88cd5b9f91]\n[sha = SHA-256]\n\n# tcId = 41\nmsg = \nresult = acceptable\nsig = e4f7f0076b4bddb632c470881bbffe95a148573a75c014689eda7acf5e57a546327d4bead01da0b093b2c4eb5b048fd707d27a4baf85d610e4ff8861feca57e1ea88ff0c4b803c4b0d62ae0cb89012b0ff041b438e49a79680f2cb30722a5a2a3aa9b516ff2a02947ebe27186aa9ffdb35e15328c0f49f172af51f764258e909651469ebc6a59cd98c996fa3417008252e3386b9a2d059d3c67983ce62ae2d052733c55732320679eae156d0e4b89da1022bd052340819cfcdd7366c34b65a01\nflags = SmallModulus\n\n# tcId = 42\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 8d2611d4c79f6b2087ae8bc76610905c361b9fe0a6629388197b4293f9e14ecbeb377206e4c1db35cdc0ab163dc5c51e8a7370a059e9ee8014d18ef0937f7936879d7825c792180a4f10a0d46e0a954f093d703b82bd076dcec0b8a66fc3be9bdf79ce4550c453015dc1c7397ec1bfceed040a4d777915546b9cbcf1eeb13eb71ac49c235e69cb07c315d529442f4863d61b7d5caa5ce07820edf649a9342211a26f8280dab9c5dd11af0752168326f8e8d5e834ddba3bce063f011eccc8f46d\nflags = SmallModulus\n\n# tcId = 43\nmsg = 54657374\nresult = acceptable\nsig = e12e3540e7f20fb5533772e91b708151c12d8440ba9bc994791f5916d521726b53969063f9e13114ab89de0b0adf119cfaf19dd74a65b5eee32f39e69ab6776dba721adb2a8dea1495c51d5984b6aa2b5d216eb48459103907442f725410f53ddd5d006762dd3167c2da3bdb19f07d27e3fda712f444c093f4c8126d40ca7c381ab1d3875294df84055239ebac5039490b597366b58c2806e52f1f259c9ed16f829f41851b6ce7e390ea73251395bf940997d47bc323657160ede973f2342b91\nflags = SmallModulus\n\n# tcId = 44\nmsg = 313233343030\nresult = acceptable\nsig = 90ea80b14758fa12319e54c446e70bf5bede38f5d8d8e978531e6c54c567b63a0fb7b870ab963f979c4015c27714dc9292a48123c0a1f13896055f6628687040459488bca149f410cdae4249ef918f10329e902f1344a666fdf96085b7bbfb086ee2f4e5891904f945d867a50289da018c245be31b684bebb8dc367d43d53448865dc005ffd58e2f76f1ae8ac51fa7ad723db9bf3b78b82bc5b0e209ed216575009c27a6d46bfd1d9ba35fd50eaf4a39afd7b3dfdbd2f437d0d97b5b08e1870b\nflags = SmallModulus\n\n# tcId = 45\nmsg = 4d657373616765\nresult = acceptable\nsig = 3ebfdd69af2a561bdf4315d015d397b8af75f6c17a3e6e1c6b52bd6e812bd9112e1920f6cabd82b996b1b48be3aa40e447d29689be7dc64b8548ce5414318c4288a6ccee97f55c523661e629d3cb124b97a042c1e77a9b039a8631815c535c8216912ea47684a7220a63c198ef2b80568882e153be8fe92ae4c786a5fd56a1e64fdb235663f3a242c121e59df3a19c29282e647a5123583378577925f399560f6ad3b2a4c2b18ca2547aab5e3ed4030c6585fd2abd1d65fc720bb30354c966d9\nflags = SmallModulus\n\n# tcId = 46\nmsg = 61\nresult = acceptable\nsig = 7fbb42d2bc1c3e5a0f66fedd581e5ce3e555f6f1c736db24b6e963d2ba72118cc989e2969c21bede87ff3f4209f2b009263b7ca3716a9d3e7115dfe65bad1ea2a1013304696248dd2b1d70764dae248bd1e9d49623826f2c6640247cbe8bcda47d882e298f30bcf3db1f496c26b738848e9876e4b70f0ca8259760e919e5c5c0a2ce3d05b5804a94b67f4c719fdeb3ce23657a26635f867af0271736ba20abb7fff18bda006c48d9c3ed774365d00aa0340a04906fc07f00b18a572c96f986f5\nflags = SmallModulus\n\n# tcId = 47\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = b9b478f6ddabce2b1ffb306e2135132df09585be16eaa5182b8476796c10b0eecaff9b91100882f5872e00e3d1df2df40969ca4d00596b6d6c9c13d3a956dd8d91decbd3a48728aea05b8f7707414a8a5de3bf0becbc20ae0ba852ee7c4f2c177f3d95a4a8375ac50e11fd2be4da1f94608786fc84747117604138d06956387924e5d7baa2c97e25d1b0125122c0a13981559db80ac2d6848f4db163027c4484a51ac5095f5653b12059440dac69970b5680e017a7eb2861c857a607446b9420\nflags = SmallModulus\n\n# tcId = 48\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 49c191f27f7ee50303b6ae8ada646d0e96fa369f16d8f66e64e6ee123164d781c698931bec1097c9b2b2cce017e65560d8ef3601bbe297b3992c0d89024b73d43877c9f9f3f1194c7e0a36ef1938d634394e4075330e6a2665c853377a1e2d962eebc7c8d8b50a32af26e287aa62e1bf26dcf27f9d561a59a771d86e66bfbcaa38c13748077d3ff0f9355e3fba6a36ed45b39dbb058cc66ae063df89e3a620b8b820de05fe80d6b848c9a7984e5962702b522561b4232ac9c6cf0c93a2c48a0b\nflags = SmallModulus\n\n[d = 1b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1]\n[e = 010001]\n[keyAsn = 3081c90281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f0203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f0203010001]\n[keysize = 1536]\n[n = 00d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[privateKeyPkcs8 = 30820395020100300d06092a864886f70d01010105000482037f3082037b020100028", + "1c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f02030100010281c01b37e4de539f790789f0b164a08bf6fea908644142bc72e3153cd3ea6467389ad73107e5120abeeadde6f1c025248bcb775a993cec5bff07ee447e4f24ab36147c3af4f9056f4c9fddf8782d60f03c0b2ee63a31463212925e21638262f59dc8ac026b1c9bfdf79401999bd7e79e7decfda14dcafb04e4916959ba29213e93dc0ef824e132a706ac804c71d79b9b2dabea877f48fd2136a7abd94cb0dc7041b4b14464ca39d99c690b550badf2d33eeaa04aef787e07e291f86c2f45b76ae6f1026100ee00c43356f3af8c15a0da791724e491d7dd03afd0cd0b40f81cbce1b38a5dcd245edec03b3b112cda442b772278c2abdcf6bc8d23133e98b2596d5a61b5b3d4204e48055a33bb5aa0765b12b8bd28a9f63d1393193c295acfe4ff7bc44c67f5026100e0d4514fbd34a29a55503de9a76ebbcae7809612a8d13bb5901f6ffbd9f06c98760647306df342f77ab45395eb7a2dc2dd3763625fe9eeac9f03baa636e381168440c54473b55211d8f0f3bfc47af94e3cf4267de479e5ae3c947a1a48e25b2302605e60a76cc45a358e933509ed62a41a8f4ace359c0e6c80bdeea556b1198510d53c4af281bffb184074fcfb4f6eb7fc5a3271152bd270db2da9eb945576d19ad1cf4dbb7983df67b7f4517aa3dde604ae011b0f1c11b1ada4793411ab7e97ddd102607f04543fa953f03d22cfa77ab6a5dfa05d338f15519c8b9022b13011e7e96560a8e51918ea351173413659368c87450d1eef28cdae043a5bf9a620afc0b8bcf81c957f1d1205b12cf6140291278e9604367974b990f7b0e3c3c3da4bb93b70630260687d0174d89b9537ef87bb7c7f8f75a0247af7af8794e4f06a327e6edab92d2e164062ffa3e9581f53bd3c1e293e7ffcfb1b075928b8611a426c5c91e23f0a82e695ec68f3f96ccc37e1d6d8a613580ccb1f1fc45a081ee6a1db85797de4610c]\n[sha = SHA-384]\n\n# tcId = 49\nmsg = \nresult = acceptable\nsig = 6428e8d022f52b4a9307fe0f93e650e9665680d3c4a66194c6d50cf08726a3de45dbd8f24c9b5d4ad3fb6fad8bf3744d166742c6bb8cd690325e8eeb8d33e1303234d2a9ef9f12f8adb29a423279405dfa25d5bbbfb4255f6d739dafad66e4024fd413b16a167ea4cd66a75258c476e9f23cdf99346cecd6a51d44176346e6704e1f25fd953123716dca1eb8e2ba0288a38723f76c7b873299e34373fc2b18027500c26aa32c903389eed545b87061988f9e06effab524655e52103be7551fdb\nflags = SmallModulus\n\n# tcId = 50\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 58c4c42da5eee1b757b31e3362a95d75180c0fee472c431527ff5500fe0b5c1d59968d79e6e41650f013a6b3e37c5a1d79233b818ef76c4ed469a09607becdc58987e6a548610de14ff06899ef284778dd5329a27b85072e8ffd46b63a5e8f7602ddb9fc5a07224c49818fc8057581ea36da033f2b936f0761186c7fd82b474e87d47aa1b7ec610642d3bcb16c59bb70ac68b1f081a9c9248f069474d6ed9b29c669fc40a979cdfc2053e1a3c0cf40efa29c01785323995f1d8f3850c32bdf92\nflags = SmallModulus\n\n# tcId = 51\nmsg = 54657374\nresult = acceptable\nsig = 62a81171990b2066d9c8a12d75b719b1d81513e9ab0a38ceed12c19835e8291db53045c6be238fb8a0a7daa974f8d0e10495c197c8d94b617a5e84982b849a121377a4deaff1c61f07365a4429b3aa90a0a475d3475e93b27254e1e0a75f49864287f2027f7b4c8c0f54ad69649c042e2445a5f131dc5d7878d7a040ac8499ef4208f3cf7b63863feb6fc3ae7d9e299ef5777b1d872cb19799f5097d456473760e5953a650a207f50f5dec349e71b848640930608208dd0745bc185d78284482\nflags = SmallModulus\n\n# tcId = 52\nmsg = 313233343030\nresult = acceptable\nsig = af896fc432e8f0d10c082153fcfd95b9ad7c90fd1f757d3be4e57556553b982af328b2f3d96fdffa3d26a9fb58e011206f88bfb7dc453f8ecc1b8a86910f993e91a1f70e2d75311015d676ed9245f1a9379f4f29ef26ab403eb1e76184855b10696f5254f2b51e536df54c84189d1a1f97bfb56a3b7cd13a82d8c0262229795a3d2bd46f28c3e71d5ae18c2ab32b295477e3f0fb428c5278eea15622ec47efd731b78d747568757f82a943fda22d37d883d8daff25dbb168032b5b36e081ce2d\nflags = SmallModulus\n\n# tcId = 53\nmsg = 4d657373616765\nresult = acceptable\nsig = a3c4eb3756805db479ee0aa802a9cccec9c9e146e736ed48b8739f2c8f108c579f1a16a71b7d222fd146f82292e78d254ec030b47267490927843c13005b88e2956550bdaab0e5748dafbbaa825425e9d83283a9a5fb086603ce00c8dac8f73dae249082378fcbdef763ef2f207047e9a9eaa35ce466e9569470f612c87292df4babe1d1446c55be5ab0109895afd337843eed2ca777f3ea1c08898fcb36e02674772d6dc3c71fbc49c897d05c81cf2aaef212dab088d9722db4033bb8f2ba56\nflags = SmallModulus\n\n# tcId = 54\nmsg = 61\nresult = acceptable\nsig = d0deb372624d4e1f64b9f3d7517fe2bc9407b1cb99ca0e6f641d5557935b4ce3e0e7fc88a75a8a6b39a7d03b9c9b43d6f5da250bc2c672ecad4f559a02f45bd6319d7377d305493264b17beca8ad93656a88767221113a30c8402794a920da9edc530a6649b881abfee5b92dc857332970973366ba05954d70a99f378e8f65e3c1586ec71f79fec02657bf6dc5ed82c835735af15ab1f305bad5c49ae4dbab4f6bb4a5c70d35ba779e01b85ef208d7def3d0358fbe9202923fd035d58ff36a06\nflags = SmallModulus\n\n# tcId = 55\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 4e47d4cbe778a471ec643bb235fe9ef8d10398bfb2edfeeb9c9bc12caafe4031e33144be385e3adcd1609652f4c9dfe15f5cd6ba3ff38b34dd67c47c659473cb12f9b3905306d92405d38bb763474ad65e96b7f68104c1dfdd217ee56c912f42b054f16efe23fa8821093d8169826a64a77b86ef33061210280e3b4793fe540a09cb910f5a1f12a410b588c2793726999021f8880b7d9b83792ae9ed282871921a63976131b8aef855078787bf32df696458e507b1dba70d7422d4d37edbbdfc\nflags = SmallModulus\n\n# tcId = 56\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 3ad151db74873688bc47e123822db75e4bb7cc30ae99babf03333da27515283e7b1229b3b47c1929166fad0164add9d65b88b03b92c4c9d71329a8997305ab02cc8c2cbbcf156819f4d487e889bc229e310766cb33843815d64049b14904d32a6de668e21de2a9f948ded86f3fc33acda46c0fd97b2a3ea71c211b8cf63cf1654671677b2e8379d27ea9150cc4cc8972950a73e0053985f7d7f65601c8dd9ecc7d220f5efa537e58974730cc5961a62c7fd89df1f7a0b1e574ab82bd431c1906\nflags = SmallModulus\n\n[d = 008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81]\n[e = 010001]\n[keyAsn = 3081c90281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e90203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e90203010001]\n[keysize = 1536]\n[n = 00d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[privateKeyPkcs8 = 30820399020100300d06092a864886f70d0101010500048203833082037f0201000281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc", + "5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e902030100010281c1008be04109981f7726dcdf63efacd55d089901bd681003accbf97282a64974e1b5ea90f218927086c36b4d1b8f3f9da2b5ab767803f5e3f846c99605db82960400c3b0f284dfadb971cac7c10c63df3454bddf5c889bde32e620e8f371e9ffb96d8ec9f8ba95449d541691e7ad22453bcc52d938c41bfe18c70e8e042c4b83e4af5a9c40d45dfcb8536540395ea8b6d261fe14c96c8bf1d2bcc84b0ed1381ba2135683dc74ba03b64223a0aa968b6fd1a6f26f23b3a4c8e145d6c8922c925acc81026100eb6b28e97c190ade38002d738eeed3479ab199d4eb9012de14eda58d7819a2ab07a903a286ea5e689412089200220a3876732271ddfe3a27ef19b37005ccd57aa02bca3ace160c9246ff282c7cd5fe72a32c31e9718e6661908aee67f2f572d1026100e44e12b7e2476fb08db8c536af017f76c392af55144146bbd55ee890b68d464779fad4b24161b0a57a611f86b5c21fe87b84126e11de9719a0e626f34ada3ea661fe219814d3c59719862ce0edfcd238f75cfc32daee448b7050c6f62243989902610082e89ce070f48ff990147131d02a77ec5a56261fa33a0373e1196134f0b2f8a4b866c0b1b0ea44c34c8b569eb15a3c6ab75b40ad26efc6b10c213389b87ff5b9f1b54808392f43a057c06d3b87d38b617de10684347425f45ce714b952fe2ff1026100a40cc5be844638a770eeb82757118879da86689e85f371d43eb9f7fb2471d7723ce0543dd26553fd5436bde49a6e67673279f0944f1ad7107f6161d3a891b23af4671bd4a0029c14bb2e82c90db981859599a74f13a9ea6f17c1b375e1a118e1026100b60b29e2407e938824820a5412f0f5a8c568f2a356df31b669a8afec89ea2ff34ccc9dcb6f962b76ad02db94ff9cb4cfc0f99928373fbd6a9923b912a39ef9fd7ab9074e97b938396a2f5fca0b0ee732fd0215999e5049798b338ac891b46c8a]\n[sha = SHA-512]\n\n# tcId = 57\nmsg = \nresult = acceptable\nsig = 190497b9c697bc8571dea0e67a6594d1ad0c401904a6a8f6e44837452949b1fb2044482ada64df89978f1168d5caf866afd928817afcdb589ce3dc6ffc5d58cb76fb9edc59b7d9188ead57981e1acba36e21d76a668660fb7bbf6f0c946ccc86dc251855c2cc19de83d11aba1d2c465db713725c2014e48865778b762dcbefd40de78f624436c6a3d316594dbfb3b05af97cb1d19229b3cc29c9cc6df414ab963bf1d6fb4e50c82dbb1add6d091d5930de580a988e3268cc5716d86c90dc12bc\nflags = SmallModulus\n\n# tcId = 58\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 5259fe9566e1bd81952a805384b1657374f33550ee0895b57b7a0869a831270d3b3b2db8e295a4eb98d8eb036183b3d228ad22b8e493c7eb0f9ab00eeab2e086f10f8018a8daaff4858ae745a4d70881a166963c64403216422e18974aa456d8229ef2e43002e0390166630c7fabd14efaa974a9521a72a69e0b446971db077ce80f6dd95cf797b6ed276873bbf6b1ba6a79df8c917c2a3fbbc0e5347b0bb99eec6ad0b6bdb7bc9d3e0a7f6b7b623f2aa9dba1e940676ec5629d39778286f261\nflags = SmallModulus\n\n# tcId = 59\nmsg = 54657374\nresult = acceptable\nsig = 288226f169838f352ffe409368cf03d840e0c0ac5e2c8d24471a924bab05ccbef26f202aabed9fbdaa33ae4a95de90e4196d92a72926971230f90a08fa68e51b326c9b5dde4b7bfe76766b0362695315846c2270a67e7c3f623367c87ce13670c8c778ba379b7de015a1b3fddce8d54825ddd22a8f88d89a43a0c5be784c1c1a1b920aa0dd31102a23d50e3874c411051f724a9b6181299d63db58dec0dbe667f7455f97f5abddc87cdd9d85e7e8139fa5e4ebd167aa8af8439934f34eb7f1e5\nflags = SmallModulus\n\n# tcId = 60\nmsg = 313233343030\nresult = acceptable\nsig = 15eec15039b374bab3d0eafff08146e4ace24e67a2dc14dc6cd19826cff0ffef52f62210d5d1299ee482c6d39be0fc4544b2911af75a8c5fc1b57b658febdf094d4f648f82ac88717c14204e3a570b2c796ac3a2e3cab052c3ca8f5d39c5e5a4ce883b5aeb6a9e6f0b72d6ef7b8caaf75c4914df6a8a0e7ba6180ac639296d9e29f21b7b6ddc09ebd9559ce95d3fa27d7325a2c3e8c4dbe52f18036a9261a2f35c48e34bb5a137fd92549746b0095008e63d351acc66033f3c9b6623d2db976d\nflags = SmallModulus\n\n# tcId = 61\nmsg = 4d657373616765\nresult = acceptable\nsig = 17f4a3294054ba76deb171fa60d4d224604082432b5119253bb28766aeccfdeee20fcd450fb2b1c76496d28f871b7d3b3b768a81ccb5313ffc37a25760c30d282c309fc929108ae743507edca29b594360c924c8f00f472bdb15fe207fc76c83d4160ec3ef502349f4baff23cf2c954029db4c68eac992447dc63abb3126c1b82af57472aa205c40dbd445f008e01dcb3ddf770fc0d778c3f4913a9c4615dc6291e29e0debbc3b02a82f0a52ed59f0ea19cced519cf037b4d6159cab53c23c67\nflags = SmallModulus\n\n# tcId = 62\nmsg = 61\nresult = acceptable\nsig = 505ffc20f64d17502d9697458c58153b34bcf607a01dfa4fc77c89df2ec41e63f9b396056b76140c46b2b47d6535fea8dca0ba19395df2f7e7f2ba53d05c9cb4eb2e04d2a123747f15899c65cee85e794626e35c0f1dbd3e592904c0f0324e417d122a0adf401a0a5d5e7516d263fc8f6909c7ea7c984a4e3f1c9535e6a6e66d8d35689ced12049b4ded2cc93a5e6148773dffdfd1734ab55822a6e38a654a7bb82fecf83d5816228962e17bb8bf6f3108f0c89bc4430d67c38d648d7a17a29b\nflags = SmallModulus\n\n# tcId = 63\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 75627812c1b05dea5a309394dd74d9fad11a6776cbe6d8ad0936b343bdbd0b6a770ed1075676bf55cabaded9c6f74913e97f512dbda5b9ab0578b1f1dcfde313fd88c4c876252f4334c2d4752abb22c484e76237f59878b42d4d75843c93761ab3532295b6a26dec558fa6a65321d0f6f3fc88c8c21ffb8b0739de2459f1a3fe1fb9b71a92de934d86a8efdd0447885cfee91ed8b559df65d5b57276b5ae2068ec30f3dfe48371ea59fe487419c9fb3c4b58449c46553b497a2ddf7b30aa7a78\nflags = SmallModulus\n\n# tcId = 64\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = 8f545e7acb30c05fd8de82f2f180aa34f7f14af62c39c70c9d262c51836379d4315374ae04673062256505ec2452f1aad3a15ac5d73d30ee2e0f60b10f905704a883b7ec712bdc9aac2a2ed6439caf20cf7b22f146ff85972f44cbe8df7a4e7735a8b3d40d0f265ff8a36131b8307a422194daaf7554823c972673b93c3e1fe3ea9502e55345ce91fc5dd94a06302641c0fd22d86e076448573a7fab81913adcf190e36e93792d161545cbcc98c4a0d1d70fc03edb2ab6bf92cf159c462c9be7\nflags = SmallModulus\n\n[d = 0747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb9]\n[e = 010001]\n[keyAsn = 3082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keysize = 2048]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf", + "96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001028201000747d520ca9b2dfc0335cf94301140b8102fb838c92ea99917e354e25709602dc0cdef231ff26ad2dfabbc391e723072a4ef52929f3f1cf0216e44c0093030f8ac29096faef28933bc9b924287014e2e935e2145be4752ccb82cb7646271936979cab73f521eeb27855ac2a410834ae5082eb62ef6f9899ee5cbb624a8d8c04ab7edcf78fe135d0f808f63b5de6e071779bf1d9eaaf8d3ef965486f2c52625e6e57a651c7bbd0197c99c057b3860a3260c864a11b3cf22ba44de3a3b3f3117e64ebf9a91f626ebb3f3c26d1b0bb80753468d4bf6a997b28335f20ed8c384d7558360a9ae9755661fa3749846b174e6bf330e52d09941f6ccd7de5004779f9bb902818100fe3d238d376a3856d9592fd4961c17a7fb0fa39d442e9df22e7eda115c648c5cb738df89ea92d8378558d0d9c1cf3d8bff740d3743a0140a6a7523e9176c2953b2c11d7f44691cf8bec2b34fb59c649535983319488118c03118ae7445e70df466ce98671260f05d5068ce777da97e2ba84779490500ceb4ff7f62ceca9a147f02818100be814af26bf3c27115bc7595d0d12a1af7713feca877ae6e6d858825eda3d192704774f42e1ae1b67f1739e8c45a0476388070fa545b7cc96b8a44003bc8d07fde73f5bcdd18268395dcc2842b5023ff14b352382607b7179a5ea330840fc45045d86e0acc4feb135f0ab9b7ce6b8eb5f5a575f2a2a8de299c0d3f506df4879b02818061bb4cf4572e0cf44ddefc0503a34ef0b31142fb0c9fc2f5bb2be656302732d1dd590e8d6cd0002fefa1c1bf43c28fcd4668ed3fa64e5e05d700aaca4ac7b867455af924d83e73f5a7171f68efce6bd7f3df4b1d5802d069e935acb263c0bb5b8d3db3d64379624cecc12d453fd82cf9495a18649a78c1fd500e3f04715ba3af0281806649dbe920a7a8ceb982108cd9ab857527498aae52a2b86918ab6b381a4a2cbbf94794f78b4de9c5e8a59af56d807c06d23dbcebdca1a6f62ba4f8f03b298f32294a9036d16c2739de1cc3e0ddb4d12f2479487b57882afa246c0e297daf4d94607c5e51b3f4715f5c57d0f26d867901209db02010d0a541284640a9b9f0636302818039ec606f5c9f1f33d964606e128e9e90cff932772c5715aa759816d504efe2c46206f3379aa61d31f88e726b50dd80b8ce8558a0d7408525f58c3399ce32e239d70941f12d21e7761c043e0b02220d25ffd03571c7ae5bbd59c31f48120676f9d7c370a749d8491bdfcea01662a136c85d349b6c710fc6f6ebf8a7a79b62adc3]\n[sha = SHA-1]\n\n# tcId = 65\nmsg = \nresult = acceptable\nsig = 0d7e029e2119e60e585409b4b27bda676a1ad736008f4b1febfc36b64c6920024376f8b9d8f13590c281dbb1bef7bba3212fd0259cd6aac4ecc955e305be645cfaf7b03e8c871b4076d05fde7cd15cc5aeea187f3c4c1774983baaf46ca638f2a6e95dfcc20c9b6e1dffa7739f138422a36d92ea83eecd9955c7046ae86506ca7a892a1f61ed3a7ee472ccc31fbd20fff87d3ef35f5a10b6dab475a3230a78b0a919738741807b6c482750154f62b3c59039aa4a0e359b43ba4c3b2185176b80db5ce99efdcca1e3e03d08b660822b71d85614b79e55fabea1a79f23da031230d6c27e2ffbc59d57e9c6da1f7e4579c3a98facd772236f787633dab9738d48bd\nflags = WeakHash\n\n# tcId = 66\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 32f17d854cd2a5ff46b805ac0966458573acb138de56a9d55673ed260b6a2e965fb0455853b4a94d05ffdfdc7dd7ab6c1d787fc8bf26f47b9682252b7a201821c62bf2237f7b95523a868b0bd9e7ff4b3f008f15f19655122a72764ba2ff58f8bee0f1223c1914ab4d309b74ffc97931842dcc99ed88e1dbade98a3ab4bae03f323111a5a1360340fa60fead3c0d9df1fb625b4559c690adef10714c10ed7a4dc7e5f2fb84e83db7229768f5dd51c60c48dbf7d7c865c38d2a5213fe00b2c4d7a0821d8f337513a3abcfab7e6822f96ebfad79c84526eb0ae4a05048c4f5a62cb5f9d49cc6b94055cc8dd2f9b3e249d45cdaa85bbc41e6f0613596e71c07efb4\nflags = WeakHash\n\n# tcId = 67\nmsg = 54657374\nresult = acceptable\nsig = a0e86ac8060a42bdb3e46e1e3243b87f831483cf73ed6cbb6b30f442e80abd04ef351de45b9952c807497381f3d4c802d7985c73895243e79887211b1c1bf23c1510bea2f038e03cbdf368844ec4513f5541079cfec0e6e0c2136524bbb90e670cc554919b6ce40f668ddf603e9188ce4c2d83e29df3880b9ba5473a676a6bc39e39e6d560587db7b9a5bae659df1c65184d20b0237404d86da670bf24cad739686946a55e2e6e6651e8ca79f7459b1b00a5847400b9675c403ef1f547b0f27ddbd44f91c16c5e4ccf3d271973271752e67e17955ab3a3aba53f27dca6676de79e1bf69a177d1a38d1038572407f620c2a66692d9208c10a7d7e520d5e2597c2\nflags = WeakHash\n\n# tcId = 68\nmsg = 313233343030\nresult = acceptable\nsig = 3598f87916b45e657df63a839c7e544953c0039477b396a276d8df752b0a98192a10fdf431033353f8565c6de1b268f4ccb44c00ce760c67e97409271c55055b3ea885d742def2c6cd32f5fed077193d12bd48d78130353ad4aca34d9148bfe80d8ea455c3ce4b24f70131908e1947feae311e29e0ae9d1074ba73124568468e34c8b073283d16359c530ea613adb4de2ba94ebc470a57055571ef9f575c068e00de09b6d1af2051b93079ddc683090d4427847b4b9ed63a34a01d9aeeef00524278ff54b7d2955ccae5ca1001ee7588f5a21166dde7b2941a6136b38d374aac73752bcfd3e700066b2972c66cef76a48d81811e26fc7646974a149708ae2d21\nflags = WeakHash\n\n# tcId = 69\nmsg = 4d657373616765\nresult = acceptable\nsig = 138ca9545ec6d2bd203b51906680aca4f286477abcaa5602e7163c7905e03acc2ce203edb0587a849ebf25ccf5417e326acab708c26adb6ce4e9d48a145ea649255ee7acd88f1a3f378629e7f07733dd37b715929c09c4d25090bc99ee529341754096bd812b5835a687758a1995c4dfcabe7ab9573ab77332a063d978fa89b0f591640ca0c2eaedfa1711571d24de1bf04ca2ec4459d8c5daa3e9c11f876dab17407505574aa65d4a92be714b227007dc3175b1541baad6233b59f7fb816c9df6d896b36499d7075fa47e00fec9225b4c6049d507cbe9d0556fa10739f94ed8841ca54929c16c53e03fb04f552333dd270c704e611e4f734cd0a94a41ef7486\nflags = WeakHash\n\n# tcId = 70\nmsg = 61\nresult = acceptable\nsig = 60c54adc744cbe9079c5bde94afd7a233b76c4b4d3f7b6948e35948a60d76dba4b939a949903100080f532e6d21a3c788d4bbe08678d5d5b24c0515286e025a7eb220490f1e94b8fb1891d32b423c9889446b6acc17da1e127ca0865602ac309d85cf27fdd594d84603c790ceef7e967f49c1cdd23989dd01abd84a2c33380fd8a723654592f0702fdddd4c129fcbe0827f91bd1fb1eeea8f9aa42853e4cffaaec9930d98dee7469bf59f225421c0c0c50142c81968e270f7044ee95a1d86999216b20bc77280237d9df87781c9138fd030f1edf1ff7069fbbc55b1232beaae640a110ec708a559fb360d54a64aafe7c990d7a6dff88f0018cf3f77beed9e28c\nflags = WeakHash\n\n# tcId = 71\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 736df32badf9f57455b0ea7129da61ecead04a709678997f0aae6a47d0dd877bf6fa0b4fbad91d9e5b4a15675e5201506a5b7a9de7d110350bf1862be7d867025f237c0f44555905ebc22c7e88fdf61c6a8be636c919b630079a0aaf1020e3e53c03a0f830d9335ce668fcb52e54c62408a4c7fbfbbe4243e843cd10461f2bcc4939869ca273fc745ab6ff3f4528b05a5131d124f0076cd2f644590d5d9257d3e6a5ccf3415fc6622f62d76c3c533a761ccc80d01886345d3c306a27a8d52fde6c39fd50c8c98051160bae41d5aa43b23ec0d01a04175bc3bac4cd81a29f4922b7aacc89b36e89a3c6b02a9056d134345b96bd67ae33e219cb0835aa93fa7cfa\nflags = WeakHash\n\n# tcId = 72\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = acceptable\nsig = b7c3e881581a1f8b551ea95b9c69009e3de1dfd751dda5dd2dc6e4083a643cd7dce19686b99c6d3af7020b91e732dc5e56184036b3d6a2de19883befbb37623c7162a5900aa36f45a8935c65c2294013092c5e17f4a29c0ffbb91ae383a066a19b15b790673511b9b1eba51bd5f98dd126b2ea633604918cbfcf2ab76e88867949cd4abb4757d4371f0821dcd3ac9eff07635a9d679d03a919a009f7dbd505c884d09168f2bc333fc15449af8d3458af8d149ec211c68d8c72a85fd9b69cb027776d96888e874b308f323b1313e05ffa7a469c940e99405c90503116cbe93f8c7c006c07d0ef9cc693bd06685f12b090de59f57399963c54f7e556772165d00d\nflags = WeakHash\n\n[d = 56d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a1]\n[e = 010001]\n[keyAsn = 3082010a0282010100c32cd0e1441f", + "de8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keysize = 2048]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[privateKeyPkcs8 = 308204be020100300d06092a864886f70d0101010500048204a8308204a40201000282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f502030100010282010056d0756ceddf7b1e5b258f783b99e036e25675eca054ae9b6ed7552776c69b2728f76e08973556b0a35ddbade9d462ed12bfc46fd254a07ef4ee043ab24d1ef00f8d214cd1d906911e92c4a212d9a981da74b8d18208153d583035d6642b87a23371787867efd02c336eab01486266c853a052490deaea430c6043a6b240b6e9d71e16f29255f2ceeb35d1a4ae25ae0dc9a436fb5dc30381cce982acc824961976df683173a02a540c403f3c8560243ceb5b798abcdc20f3c85d9532b0f0b0826f1b6352c5adac757fe3224b822455cc529fcdc8a220b0469f321f56bd1853d8a70b893f404cc06317e084173770c7d4c836281ac251353fcee4ac393838a1a102818100ea6010a0017d4073198610d0e761f286e3a1133eeed71b4fd4dfb0d8b52e1e1d8ffc58d9c10396629952eb002369b22bb9c3313c80330c1f3ab7a3fcf8d0fbf5a1c0fb7936ef20d51373b21bea72fcb7f70275ac41d97b566b71f727a32f0006de15e7f9bccfcc3224106f6b1ae62d59380065a48ef7bd015ee6dabae0f9d78902818100d52ed808d74a79b3ab515b4f2fe7b41027472c3785eb25587ae31d3500bf3c6ef20c427e223efa4f2911cd38cfc4479f28ae495fe3e88e94c236c0bc1323d71027aba290669ffbd7e0fbb6f615df1c9e4fe5abb5a90d4d0b6d1dea0ae2b249e6a5102092c998b60dd920d09a2e6ecf2a611793016bc0c92de3b9d92744bc070d02818100cb64f6c884c257ae0b56673d83af62b360d3a64a1527a3d211e0d62e1a7d9d30f6857dedeb2cdbd3514fbe14eea689329d1121a76971e3712e99b3bc9389793edf5304695b1d0697233c62330bb12253dc0ecc63e2f983a9a9b0cb5620ad670e8ea8e019c09b6c8f8ef09c608c85789156a231932f671b251760ac2d45944c5102818100b616befc3e3824dfac535f74b1ec6d46e6e5ca04dae4510fd4572d595a7bfdf89dd28ef101fb5cfe448c2a087e9e9eb6799ef4996d27f4b1677a3101f42f46c14bc134a7b6a0ac1266df5a15b3f4d0930097a22516727ffe64838aa7259f37b44405146d8cb85db8525fcf0e02df2f2079b21324c18ef7c7b49dc7b7dce3e5f902818040fbda2e571060971cc6aea0c1cc82beab4fa0361de43a55bd2b399f25ed89e33c48983f409d9f27292770d5c0ac1b31adf766045e60d67b89957c81c0f3b7706c3e1418926bfecba0242ba54ed95ae1bc73b67ddb1e3f4161380cbbf1db7d3dbef852ebb38063bc2544c9c29f47f416f14eb1ea3cf2bab933d21c2c091293ce]\n[sha = SHA-224]\n\n# tcId = 73\nmsg = \nresult = valid\nsig = 19c576f191c273306ec6ee9e26c673bdcf3f821adaf13a0759df7787511ddb096e964f5dc199ccc5cf131f855065d6ff0a6c720651477d9026bed82d201f6e84a23b37725fd24f5b75aedc2afa24524e7222c0dd7c6d2742430bab3ec46d12204a94a533e2a9147723d087d619e07873a4261c420226ec1869abd70117c787d4b1827fe98779287451086354292bbb90617ceb391122efe70887710c5cb4549d163d37e79b33c1b336826cb53b648689e6da54241d20df822cf7770d7beaef4bb00068252786580a88cd00e93f5ef42b69efa7c364b98749fe734ee7bd13d0aca585d84e4fe4b29478697170280a5921278997ef9856f7372b6995d7eb43ce0c\n\n# tcId = 74\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = ab2e758c8de97282a7ede3401680ead187cc08658be0041f108851149a9b9d2588d5ca544039533eebd0305c07f394504d91a578f5764267149d4ef70b88a2a3f8cf0b1061d06882af53a88bef195aac87294dc833d80f42d942f3a59bb242b187e23bb89a068bb4c8a215247d04aec57f81f75c14e711b5878b04863e715d0f359ad13f008b79342b7a4ca095fd021f639e8f48860c1eafe6fa19162c2632a2d3a05330d149f3ea6c9aed9f89fa3f7bcb2cf2a3d1af0484178710c21c046a812f3b8d68027173ff5aeb1ad19ea6639e2d886eabf8149a8fb491d2c36ccfc4da2a9785a992046f24a93d2dd7765a171cd8ecb68b94ee70b0e5bf791967267251\n\n# tcId = 75\nmsg = 54657374\nresult = valid\nsig = 61c702c72b0177ac857e52707c1a40b84a1859bf1d7d1cdbda643f924e8bab7c3d3eb2065aff837e92f93836fd54ea52e085e19cb0cb59fa58afad48480c2dac579315340883886e78456ce750fc55b6c188b716bda7957ff547222f0cc1462344de4bf078ec19f1ba5901a0e5f40d93dbae4aac407834b272a2be82c8da085a3e1e9e0a57d3f43d26462566f0aeade04ee8981fec8d7e34c916fe78c0c5c43781bab2fecab654fa55ac99182545d0ddf070d41f67efe0737d8ecab3411720c84862606c8e4b53e60faa1c9a98386e92b03d676b53e3fdbca3bdf0187ddc50086cf82ca6052be55fbb7f3bdb6c6c0432defa5634797c23b494c3880846169b67\n\n# tcId = 76\nmsg = 313233343030\nresult = valid\nsig = 965f82f0649a338ef14387a7f3335b9e2d5d3b4009eecfd26c0110344a30117bde6bad668cf083beb28242460fbb96adf9754b9a4d4505f6412e677bf3349868fd5b5268786308a5293f2cb2f7ffda76104351f10381e504e72d27435d5bea0517d20ebec0afa531e520e5fe484475a330a40ba1109c204fabc44ec099878a5e31342a650047c299a5f2322f057b9586cd9eebeed1f3d2d94aac24f9d7b2f05c6f28bc49cb2b00f5e56870fa099cfb2c3e276381adf5a030ab6ffd9cb96fe309061d44c2ca5ccdd76a69458be561e3f0ef603ebe9ecd533333584236970dc7414124ace98357c496369bf94123bf0d4e57b03aee567c2f83a9e6378e62a42fed\n\n# tcId = 77\nmsg = 4d657373616765\nresult = valid\nsig = 105c68d221aa579ab6206d23be01d0c91f98fb67ed8d2044b6278916223758aa346bd6d5c7282d23a2bf702e0facdfb884e0b389202a5073a715fa80158e31d1e3588af30d2fd8b61233499ab7952f0761c84912b700fec807937d00a021eaa84d96f59760cc7733236138cb4ff1fb04c7d4621331b5c729f9694555b6f9c324e74db4a7a8b72f2853dfd0b9fe63759b3468bc66017bd6c1aada2070dc8643b5e581f12cad170d9fe754c65dfd0a5925cfe846a8413d729103e9d7e8825affc20f477d5bd3860947c2665ca4170fc44f2670bc33b51d42e5df78134919bf4660cfbc092c1cdcc09c8fda1ec9383512abe253cd1a470271832e0c7de5a6d9a7c2\n\n# tcId = 78\nmsg = 61\nresult = valid\nsig = 3662fc9bc91b00d457bce2fbc667dbb31ce7fa451acdbad95b4b418782b8af67d2fbaf1424be2c99e95e2637d8d39e751d757f89711ae165fe5bf142fd88b284df696e948ee714e3f2062c5d01d04bb6c0387aa5ff1511552dd066bda861e1c5cbfe73dd8c6bc3039b729c700c8f297f48ba2a36aecbb626b5c9f9b3c04102f55ee65ef5477d8d1d14d9b7b048cdac54d7239177e702d0629d3617de2a9fa556a6d4ec37fe38a46b768e39f1d8a380484ffe0cef59abb7e20ffdb7c11b14a42ee3cedda99ef9f71eae7cf760fd81172e03a3f2a9f7e42a813db3b089c11528350e93b131641b8d023d47447f58aeb9f3f38760df8a9b1ad4b8d43ba0c9018e02\n\n# tcId = 79\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 8392c4d888e7c63ae2a3d53d560ccbc226dbb1d9f69100fd86a19ef30a83981371169deb4ef87aafcfb4186c5ebf8d83764470acc8c9cbe36a9b15037e25b1dfc63e929b0bb3891be2d1804b8c6a0bf65891943e4c0fd21e7df55c134dde69682244d22510dac2b304c10a2e31adc134ab27ed186568fa9091df16f1c9f4e7044ddef6675269de710774ed124b52fbac9bed285b4be5ef9f2fd50e1d95383e145553762fb87a1da173b8b89a7eb9e947d08b5303ef0992bf4e3783c30253a43b373d90a75bd52fc53ee4fb86bfa1bad035a8177f8c0a9f53a6214ec950c2a07cea7f908c55c24dc31799867f819af18fa30f304ea001ce9cc87eb703ab578f5b\n\n# tcId = 80\nmsg = 0102030405060708090a0b0c0d0e0f10", + "1112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 6e753cd7072ff5692087ca21639b6b11046db222f85b8e9a3a17b080fbf491f72e03c2552796ca09b63237b8d9c8d66502ade07cedd4c8e1813378b942eb6043da59e496737a6837881366c91031ccf08bf81f61985e0792696c6b2d37a0329c94b5f3c50c6db8a732a3815b6707c4a9cded0157a5c8fd83da91efddcf4622ce3f4f961ecbb21dd79f79b424118e24d388d59f99c524837ece4aebc11ad77f108cc196f61f55ae67db69a8f16533ecf746eef1f9ce05cc2b2317427b3d0cead00103e8d756078ecc11a2e31fe0261288dcff752abf389748f14e0995cb50fbe725e9dbc0b301a456e203196ed359e9c7f1b9110c994005d675568026f4811474\n\n[d = 7627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c1]\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001028201007627eef3567b2a27268e52053ecd31c3a7172ccb9ddcee819b306a5b3c66b7573ca4fa88efc6f3c4a00bfa0ae7139f64543a4dac3d05823f6ff477cfcec84fe2ac7a68b17204b390232e110310c4e899c4e7c10967db4acde042dbbf19dbe00b4b4741de1020aaaaffb5054c797c9f136f7d93ac3fc8caff6654242d7821ebee517bf537f44366a0fdd45ae05b9909c2e6cc1ed9281eff4399f76c96b96233ec29ae0bbf0d752b234fc197389f51050aa1acd01c074c3ac8fbdb9ea8b651a95995e8db4ad5c43b6c8673e5a126e7ee94b8dff4c5afc01259bc8da76950bae6f8bae715f50985b0d6f66d04c6fef3b700720eecdcdf171bb7b1ecbe7289c467c102818100dc431050f782e894fb5248247d98cb7d58b8d1e24f3b55d041c56e4de086b0d5bb028bda42eeb5d234d5681e5809d415e6a289ad4cfbf78f978f6c35814f50eebff1c5b80a69f788e81e6bab5ddaa78369d659d143ec6f17e79813a575cfad9c569156b90113e2e9110ad9e7b48a1c9348a6e653321191290ea36cfb3a5b18f102818100bd1a81e7977f9898122273ae3222b598ea5fb19eb4eabc38308a5e32196603b2e500ffb79f5b886816611debc472fac45544070beb057c941378a6868af3b7a03d3f9880ec47d5e089b94fbde542aba9ae8d72c57088d7abf5b131f39098f7bc160f90536abc9492fd4e06f3ed7299d4b97bb03677207d95669f140cfbc20f2502818100a94b528b28f291599121d91952ffd1c7f21d7c1479d99d478885fb161870ee1218bf08472612dbe5497e8d9c650688e09c786961ae3e2c354dc48ae34514759c4c23c4588488961dc06b414e61c0e1e7fbbd2923d31532fe289f96da220711e58c14019808e00414276933bb07e4efb9b4a9b37656917205209f33f09515d7c10281803af0e72a933aef09ff2503df78bafed531c02ff1a2bc437c540cdcbd4ad35435cf511763596543480629b114ca7f780ff7efa32ea0cb6e000d6d9ea1f2ef71fd9cf9948422a165557e37e755edfe70d90b920502eb478bc98a63f788ce3a0f856d6ede7251a383bfa8fa480a81a925af7b3cc538c4bab8c9f7597ffb68011d8d0281802640fbfbcfefb163ee7a87b6483a66ee41f956d90fa8a7939bfc042ee0924b1b7993d0445f758d51933e85179c0320b0c968b48a91c38b5be923e1097c0c562f88d42294b6a2759bafa5428a74f1270874e45f6fcc60f21602de5eccd143cf31241f5921b5ad3983fb54ef17be3b285367e50c999c67247b552fe4bfce945f7b]\n[sha = SHA-256]\n\n# tcId = 81\nmsg = \nresult = valid\nsig = 840f5dac53106dd1f9c57219224cf51289290c42f20466875ba8e830ac5690e541536fcc8ab03b731f82bf66d83f194e7e180b3963ec7a2f3f7904a7ce49aed47da4d4b79421eaf937d301b3e696169297b797c32c076a12be4de0b58e003c5123051a84a10c62f8dac2f42a8640008eb3c7cccd6760ff5b51b689763922582845f048fb8150e5a7a6ca2eccc7bdc85349ad5b26c52137a79fa3fe5c29ab5cd7615013219c1941b6708e9c3c23feff5febaf0c8ebca5750b54e3e6e99a3e876b396f27860b7f3ec4e9191703c6332d944f6f69751167680c79c4f6b57f1cc8755d24b6ec158ccdbacdb23107a33cb6b332516c13274d1f9dccc21dced869e486\n\n# tcId = 82\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 8a1b220cb2ab415dc760eb7f5bb10335a3cca269d7dbbf7d0962ba79f9cf7b43a5fc09c99a1584f07403473d6c189a836897a5b6f8ea9fa22d601e6ba5f7411fe27c638b81b1a22363583a80fce8c7df3e40fb51bd0e60d0a6653f79f3bcb7ec3e9dc14cfb5b31ab1735bca692d50ac03f979dda92747c6430f8045efa3513ba6e0ce3e9e35570e1c30c8ebe589b44192e1344ca83dfa576fc6fdc7bf1cd7cee875b001c8c02ce8d602769e4bd9d241c4857182a0089a8b67644e73eef105c550efa47a40874289395ac0c4e02fd4ba98e130a4c2d1b95521c6af4a002ac3bdc6e52122ae4c08cc3da1c896e059acbddec574ac0432f6103dd97273d8803c102\n\n# tcId = 83\nmsg = 54657374\nresult = valid\nsig = 264491e844c119f14e425c03282139a558dcdaeb82a4628173cd407fd319f9076eaebc0dd87a1c22e4d17839096886d58a9d5b7f7aeb63efec56c45ac7bead4203b6886e1faa90e028ec0ae094d46bf3f97efdd19045cfbc25a1abda2432639f9876405c0d68f8edbf047c12a454f7681d5d5a2b54bd3723d193dbad4338baad753264006e2d08931c4b8bb79aa1c9cad10eb6605f87c5831f6e2b08e002f9c6f21141f5841d92727dd3e1d99c36bc560da3c9067df99fcaf818941f72588be33032bad22caf6704223bb114d575b6d02d9d222b580005d930e8f40cce9f672eebb634a20177d84351627964b83f2053d736a84ab1a005f63bd5ba943de6205c\n\n# tcId = 84\nmsg = 313233343030\nresult = valid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n# tcId = 85\nmsg = 4d657373616765\nresult = valid\nsig = 513a5abde16b5e0ecb8659d3ca0845800adf75cfc4437d42fa34e7aafbbe35fc5984d3560cba938f9a622e932bb6162b7fbb6cd8c1", + "cf8815f28c495995ac18cdbe8fabfdce29c17aa021df192ac02d080d7c5eda6bd4c99154178a9d5e1cf3ff4177106315f4e6d74c991b601069acd60b55b3bb4dbf6316c35096a487d6756181d3394944f1c742a2f4d608ce4f6abbfb72347ad7d342ae15dd6d1049fbd0ff55f4d7c43ab805f81ff1fbe9256b5c78c2de6beb787f4b6d66d290a3d4c4857368aea5f7ebaa1296020c8f9e3670441a08038bb810e853a654e44316a4e52428745123ce2714020d00e55a9eb82f7fb41c73d852a82b003670246c6ca2045fc8\n\n# tcId = 86\nmsg = 61\nresult = valid\nsig = 38c042a00d6f27742a46f1f963a7b2e04f0eac637849631a491b8e4e58fc721c6ce620d5e705dc8e73409c3909c1c68b6bdb2b30f882cf2797e65030b38c4e7daf6fef9d1f115c890086cf54ca3e7c2b21dcbfd1250ed1d925810970f17dbf482d1784f296adee9ace6979075c1e12f5580cfb322e8737db9d127d38e1b99ed87ec49448a18a6fee650d3c27e4a2a86a3d6e3ce4fe64120be60872fa07a3f78a112715c167fb6c900698ba1afd824087a4cf733335c4a6d5120e3b29bc42f3b3d5db79973e4e321e0910a288d18cdba172d060283c4f4c6656e9175a18b756b7d06251e9060bbfcab04978853eec6032850a0e757bc0c61ad38aa4eb6bb6d907\n\n# tcId = 87\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2ae8d95b19cbd64d0e343ff413fffb85d8e6713c06ac8a1ceba7f3924fa740f8d2b3e120fd71f22711e795cd6468c5e263b1a5ba6ac6b8fa9e23d2d6e7243f510592a61d134e68b8ead00612dbf38c5b7302abc3bf33f23e6d4816a6e3ddcea6482566e84f57464f7d56de4cef0b2256ef21874dda4c131a47292ff8ef853f93804483c8e6373d39ca3a22552e75427b812b861de6a310ff4c366f6f6604116efd9770170aa423554c4ebbd2b5c0698950e66bb5b7c5c346285d9f5c35146255736b6e818e8e77983c93b21e7f60b04a7a525598e7fd8049b181000bffc7f3753a504370f6bb70617ac8e914deb05a198a5758a459c9fcd2fce1aede48e8a852\n\n# tcId = 88\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 7aad44a36610ac147835efc623e3aeec0d5d8acbd7f469f92142592c7b843c9326e2015c4bf3843678d2e183ec9ed568e5dd8d535ea77a6d7fe804222e6208d0160bd6cf2744cdb56bce0ed7269cc5f2bcc25d3474c0fb5bc7d20ebf3664bad858dc6e86dabfa5f39a70e23344ab4f8d5edc6397d9d1b54fda4216e0b93d37b906384f82d36666d526939e0f917344208aadf05416c656a11a307ce2101912763728cfc0bd237017d36b8566c6c366b13f142c93edde181146ec63e49a57335b5d9295b85aa4c00d49cae7930653a5651c21371a4b3ec8a6e0f371d005e8b4f1631f7466b767b4789e75e1d2bc63ce4c46e5e7baf0b801ef785fd07ae79bbeef\n\n[d = 5a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb1]\n[e = 010001]\n[keyAsn = 3082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keysize = 2048]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[privateKeyPkcs8 = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001028201005a3dc962dafca26cb3640e73bea7439a9f1874bc23e04226ccd89e7ba5c3b938a1a293b70dbab0f9f0f57f66951447dc33e730fd7e2c2a164d47ac502b07dd24cd3c142c2a79e4ceab5cfabff4478754b25a8c02c1a47d80d9f37abe442ca9a78b23f631b6ff3e15a4956d7f18590cdeb206d5e2b698bd084f260e82ef28ff9ec6dbc85a895ec8a3865750f501b96125db1bbdd99a4ae4688adb304aabdfc4e0cfb9fe6b6bc0db74c88af8217eed738a0d04fe8d32c1d110370ce1c1b2f630657350694942730878e6fff77ada7e9a317df8bc059ea7081325306b8eb2fa0d3a3d89fae476d9344892bcd5a42cf83b7bcf3e0e51b4c78e72b3207a60a701adb102818100ef885b87e25c29d1ee431d1f4ace787c4f882e92d12c4b2766c84f89263106ef0be0ddc4de3bf061a2ba46ffe7c132ae67d337f04dc66daeb9de553791f4989f50b224c981812b5388d1c2b5d53349a61393bf6611995b6988f143c278ccc260cfe82a6ac4a6409807eab32664b7ee3f1c41dfe567e097fd7afe8520871a1c5302818100dbca582288c81a30d6581f272050a5fea773d711301bdd6ecac7214e00c0fcb9498f1e585086b14463cc89a02c2e77a89271c058c6f69f3cd13553994d8a76cf62ad9e275217720d62eb6e888ec4509cea474b53f37b458fc956dd31df3bb6ec7de659e88e7e709fe3be6a8d37264c3d20e7d088276ce7651a403c68d6c47ea5028181009d7e87c851d28d80c5eb84f375494ab959c5cdf1a4ed3dc0fb78cbaafedc8f958fb6dbba3cf1263ddc3424c8d0461c9fc60e802255d1197f20210ae10debc88a4011d1d4587d68d2750c8ebce620e1d4fbdc52a5b6fea1b7435e7752200169f123e2a0393171aad90ba38b05bc859f76098b5abec8cd48c2572390bef175fe970281800eed602d00432edc30428de31763c2d257c71b4d348a3ff0bd5ee6d9285df30c167ddcdebca1593abed86e646d7bbe6eb97b7647d14380af1dba54722dfd0072b74df956cc5181527d6c65f66a53d4f1c34b9247225b35ef3d0a643d75ded55e9c725f9ad6caa995825f35575fee7ef10be2129c9ca8ddd2550515d53cf8dd6d028180101d1f49afb04d065bd8c29001d212e737bba696108574a330a9cbacc51bf6c96594f37fba9c8de156c226371d49902191e1f69d84a1352193bff29e318eb36ede6ffbab93b6555ecf6addca9e134c20220a2d24b03a6d23ef8c608a5186769f66fe2f6b21bc39f6277ad706038b907872c4716609c223762130ef03616482f2]\n[sha = SHA-384]\n\n# tcId = 89\nmsg = \nresult = valid\nsig = c5b6f5fd8ea320880e9e27b0026b1d63bcd1152c72855853294b7683a759dee042be8bb0c350b0c31aea76e1ba2c6d79920c3e21b6e97b6cf46fabf92a701a7555540dd7c325e7c657fd9a079bc5a58923d2ccaef51014acd6fc6e5296960362a94688f2cb2675d5062c5101c3875399b95143511e6ea156ebbdd32c9ef8b061dc66e2c912bf2ae37e3ddcfd5f32a72412db8ba7a1ce3b44ea4c6e2a858b3f3cb198cf41914e4970b03edb1bf81f8abea6371b469d2e80883d7760c0707dac808fb55e588b285153b8ee5c32ffe90197991a567499d5ed62a6b810581901cf8abf086ddf84c10b03ad6845c977ec72d02028308cbd19daea2668865f00a23ab5\n\n# tcId = 90\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 0e8742af2a1d82e99038a99a09bc182e21317b690004fcf8fac5a4b39c6c4c6f32ee0395a42b8aee31a7af7cc0b0205087b4cbe18e791c1d5454faa5dc220d3b21e44822d39beefa5e90654fae46205631c4691d3e", + "78221f48edc14e342ad42dbeccfede07420b9352af9e0a009c49cac2b4564732d94495457dcbd2f67fb60fd77080631cf38b784a3373b66cc2d1ae971a7422562c2df5f2476983263f6559a8fed69c2c76806f8553b5f1f2239677f1a4a3f5f55a00f8391174fabd2852503c9dc130ba219d145709a4f045bf62b2278d1c9c5c2e7a81f47769b2a11b18bb8648a32eb984ff7aeed9c0ee1023886e6a402812ae6552b03419b4da25cbf3bb\n\n# tcId = 91\nmsg = 54657374\nresult = valid\nsig = 943aaab06755ab012b4e062210ac3e2c1a455ca30f1c65beee0f7d54384e4e0d4e390208332690fef5ba0cfceffbfe28e6b05a1ecd8bca3a50f9542f17c39d28195a50203c7885195c7e84da26436bc9fe7fa98a5070e0a1b6f51d8ac7d2734fdb5e0b32da0df6c6c98311bc4d458b4e970412c67732effe67e083123bfc69ed164090be3d41a37bde52119da16a4fc7fba5d8d3ab905bca7b1bccf4699a8abea19d0ba0659fb6c94b4ec6d06fd086958f443a74a783b7440f6060f01cb9dee89f32c2f6fee61e3d61548fb6b3a0f6b649cd8bd5d5a5bbc016f4c737889c79d45c41b5406129066e259dfa06fa2ec05cf9330dec66ed4cf89b80b0f5dcd22c4f\n\n# tcId = 92\nmsg = 313233343030\nresult = valid\nsig = 682272b36ee1a6c7d4d73f0f3f153d8e84e2fa4ac812581fdda214a7b45d6ff7b7b3db0c89da96ce2e651fcfe25596761982799289b9fd2d69cf122e08404c9db0bdf6f8240b1545e76302a5a401ad56522e0a6158157dc1f9445f8cafc161b25423d35671d9ef714c5d33f7fc155424ab2ac34e0cc93bf2ce385721dacdc6251c7e3a5618bdffc8ef3f278477083a96de83303b9d286e64d8297ef0948b996616d34036bdee5538ca0c06fa08c72f03739fbc578814b402671f5d625dc9050d61b389d1f0a32011ac0dbb53b9c2980d315bc16e2272206a1a955ee870df725e78a7c6e9f793f5428af92c670df8e3bb0d567699714b04fede399f49fe19d0e7\n\n# tcId = 93\nmsg = 4d657373616765\nresult = valid\nsig = c86aa0513ca2e6bb14892ae983212cb21cfaf702eafa5adcf17dfcb7ff53c1fc87d65001c639a20167ec97448463ada9b20d40d3e13db23d8048e38e5c05aa42ecb10d1683e3f64d42837274e1e021b3523cf763d32ee69f92180a9e3e6c6ff891b4c0f9f30a7840fe2524bdc0e82b0e19acd041554f4050f6d917a4677155c6e7841639cf86b8439a4a1edcb24ea272775dd9287291cbdaa79e97ecdbd97522e250db7c8d32658891a0dfe7fd079ca5a5284097ad505c83bbcfa82c0ba6cd91abfa0e21178981cd5c635433cffce413a3e03c7afcfc2fca37c7bd7a5287c13813afe3aa5d051d386e4250ef1617c0a58a24caa33e5855c32b457b1436d11d94\n\n# tcId = 94\nmsg = 61\nresult = valid\nsig = 801ec289191d6f6e2ed3d7ba7d8cd78db3add3022c8387f592080705eaec1dca415a04e09d55aa6a8c90f11730e9eace7f0ef892f44377085fa8e72236b160382fb3bca71b71d775e4acd75c0ac133645c64517909530e0175a8f06236839de7f7704f39afdc4720a2d94c258188cf9f0794c279c777e5ef604a31412262cf871e3cff8a0fd7efec06eb1db05b50910733dc8d8783a24c07871908e711b27d0d1ebde4e418ce1216a5bc1c8c85d82fdd2b8bb9f0b047e8b38fcfb80771b019d154a510f2231c6c5becbff35f2c5b1f1a5d5280d0d8b0309db5294fd99b1afe576bbb85e980c4e9ea49327343084a6c29743d3e48316df0623776e98acbc84382\n\n# tcId = 95\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 6ec812ff1115eb60ad2cc1f641479aca46c41da5d8f7b9e59b2dbdb8956f5c3ada3fe162c54bd5835f5e043ed3906a10a982e177f5f68c94ba367e4541b75117dbe18b7acabce6bf7bad0bddc4a1f98382272a655e0222ce4a87dac7f6a2099ad9996603479cf8454102e7ff703d11623cd59e3eb2df8a303732851a119d6c75f7503acc10c57f2cc418863e1b2a5305688c03fc9971334ba06541cb8b3cd192bbebfd5e9252517b17d2b8a3ddfa1533784d6f672e14737c4b6bfc38162ecfee2e97f0a29c98bc6709c922f42ed959bc3cf43764627a9beb32e53d2b35da63942006787476ce89abb7a82ee02e6c9c80ab777af86c1a99c65423ed75fe82acb1\n\n# tcId = 96\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 3ddbf59aae59bfd68742f75b5d3d54e0df117d8975420570c22e6ef86a4244fffa0c377b07d456e746bebbe0ab30aab731dd02a280a9f2e8419487ea53064044e5980a32beebb46dfda8193ac2f7cfbf5a3513e69fc2fae1df454181f45329cce475504c797d9871bacdb7e4c22d62bed569b3775ea0f3561c4b5af82bfc1525dfbb6ac1e68b45086f7f0c3c622f865a40a24e5ac9cb032810073163455a2d4afab738d3174448c233f38ae385667322f2c990853fc3e2297c8ab0c7baa5949cb304d4429ae74b8d970c0409cb3e7a91d279f1b551b366bd405c97daf88888940d3a333e8b23955951fda6b2d185eb02d22afcf158611b3e6488e451c4f2f4ed\n\n[d = 0a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff39859]\n[e = 010001]\n[keyAsn = 3082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keysize = 2048]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[privateKeyPkcs8 = 308204bc020100300d06092a864886f70d0101010500048204a6308204a20201000282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001028201000a5c2790a591c3ecf4f6281c17e1038845e540a95f21294a7ceecd75b18c54c50c02e789311c1b0091526f87ab3cc8d48188e980ce0e0377bec00e9f7d9793583cb66a1f281e31d20b594b5c66a2d9efcc36d979a92bb877a9678f991ff60b77e28fac55d64f21c064552a4319eb0a9a1870a76ade3c3a3534ab8353c3e57b2708363859ad3a6337fc15ffb90980d93743f972d743c3dc6fddb44279079a809abec8113a6f987f71748c036a4daf353b27a81e6983d56a2d65b71b93128d5569499d10ad1396f094eed77c044e3ce9ef82f0014c25ba693928c00b5043b641b016e3569b4bd84d683372538671307321c25e590f14bef241e6d8edf24ff3985902818100e74a124759a174de33185996b3b437c24ed248203d674a87bcc2e76a667be3f54ac15e8f04e4c5e540f4e19f402a71d37d39756dcefbfaefb380095b6cfbdf4d78dd20cf085a1f127610e3b7102ca6bde1825941ab602e9b72c08e4533ac50317138e10bf7edfea30f52ee91ea6628c2cc65e76bafc02eb9d21ab66ad374ef2702818100d793b4f5514921bfbc47a1e45faa043eea03f052bce600ec4f5c62b014a7c45aeb3f4bc02160e7b12dee135e44b227a31854ca833ac706d14670ab5932a269c9b6f9188acb93e698b4a7dff65bb9c963c2e02b2cea3f2d5cb254e07b616792896e37550cb38171c4c32e0a6543bbe6acd4e99abeaba", + "1340a961017412b57bc0f0281804dd402049a679730f2169e86f49f8f27c6684236ff1293e4cb22f6c63a083474251c9e9a17b677d5261f81109a81eddd91c4d4fc076b894c41a5b3005dd2ff984d3473c6d6f3a4830cd1b01eb8c59db245811c51d9be3ad0ba338b6c43f016e81c465c8c2f789977fb3f17e267f2ca828a4f3c29637193079a68bcbb83be547f028180767a352fc5d6bd7794d08186f3948af4d0c40d664b6ed4ff0ab6a97e403bdbcc6411cb5df27a419bbcb4656c9fb091dc2ed91adb78883d94f273a598461dc0aa1da754f7a2decc130ce65e4e15274c2949c6cdb3c7a1a51a96dfd2e7bc26a20069d47b2799d80060b52c2e866ced6ddf7abc50518e1df06e08ff1ae8b41b69bd0281805479dda30fc06b63cb5f77e20bb29db7eec7a6b37a5007f9651a46ffb66c90160be5700145c6a08d9737a98c5f7ba0dcef39352cc5d8612d94fd02383b8e093115376b154fa1cebdf915ddc051a7017d67a238fb4376749ced94712b117a1d0ca31cd653a1955dd547346d03b21eb0ad3c123fb85e92c8af50a985db10eba79b]\n[sha = SHA-512]\n\n# tcId = 97\nmsg = \nresult = valid\nsig = b03dd72dc84b305ea811267a489aba10a1dc54b59f92e58546a2f0b6883f543512d621951352ef12abafe4bd6e10c2e5b0eabbbbf1d081b66e535fc9b8ad379040c3c71ec8f2b4f5d319f5d2a0240a767ddb4de1fbc878b2c5e8e1e260217bbd70971789fedb8c677fc8193f67e4637239607c7b9d3511868ccc0df372374abc685c9b4b74b2c5f11758f809b19bb3b5c464db870fea61ddfa5e18be2c4106f3e165fe85a7f8241db2806d0fc3c45d8a7f1eb4ca411a46ac411b81c04fd8c4ced5eff497da6bcb8e2fbe1f95cf4c3e761fc3037c82276f7ebfb7e6cc8534cb4fd34192074f580c6e31008df4f1404ae8dbcb111503d4bdfe6e7107a1ab5cd8c6\n\n# tcId = 98\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 4de4dbf82607b36a5c6778ae6351d83b7ef5b4af64c3788889eb10ef1838822847ceb531914392360b92dee055796f73e3cdb8b3d50910a537dd2244fd7f922780356ea3f01e99e5bebcb1b6ef398d2399bd02472a871417daec3bbe6f89f45f1af0bf819a446dcbbb75c56958d34ba27c8120cee6ff97242921ccf58de9216995fa0c49cb3e6d60e46411b2df3b01b78fa81ca145ce8be594ee009031eda672eb097ba5ed6687a703b154ef616757f94237f4275f54738cb59d36b20a9c84ae133bd715747952f0222573a91faf740e4b7eb4e88abaa91004e72a1709b401616b2edb2784e491f671fcf5ebe326b669facaa5d8a0f6f8469ea995c4db772f06\n\n# tcId = 99\nmsg = 54657374\nresult = valid\nsig = a0f46582cde6be215351bb7b29e8ff24398816fad9e7e2ed6ccf1d0b5296bad827316c18b1565253291fa1c0baea9a735357cff8920e1024ae5707dd2f0cfcc9e6cc81402217d9b4f51e10def2bc2f4924e7d22c022fc87d6c3e772f4952050d027b003ab4267ff227a15cc7c884cdb46bbc7eb38852d0e6d8a12f485ccb0312157097687debb6feaf2b6dac998224c6047c1d5727195bb8ce05a59669034e88de0e4815af00c65def5b9748d017455056cc1ac6d3a77e31fcea4e726eda6be7bd33e509696e54d1d1858a1165fa9ece5d62e493c1a33ab3c94d294838a19f367fb799d6b69161bd9532a6ef317deb919923d78e33309f14a97b68023d600b4d\n\n# tcId = 100\nmsg = 313233343030\nresult = valid\nsig = 9922f7bd01d7ba6b2de255b91209631af92e5537a4554b3b7a50e39f2fe9b6085a7e418084213d445794ebc19be43782d9f80df1daa7498a1c67d935ec00dac6b7a194033a14431320acd1d7f3d4c2b7b5b1649dd93931c49f538c94e34f44fdcb8dac9d31539f87e6720dc887c6605284a6a0408e244325e35917b1e1ccdf5959ca87091827c8157bdaa31239e2103ca8a112cc76a8e7e90f352fb8cb3a3381e52cedf4d4188bf881054b80387605e7041ab149cccea1ac2bb6560b45000601c33ebc31cebdd499c0b8fdafa7c1691d6dcc48edc98519d55d126a757b2a753eda4f2bf35cb191face371c9c34b2ab57242053b9ecddc91e4b621e650432adc8\n\n# tcId = 101\nmsg = 4d657373616765\nresult = valid\nsig = 99996fc01a53bca03382b96e9ad83a3139bfacc5d37b180a099fb5d515a7b78a5c21a339ae6bd2bee8e0f503ba2bf892c1885ad5f4940a99d8d49df6f4623da16c337a011fb895c006100286aed82977be3fda054d1e935a872939b704750c3e2871c33768946e65a737184efa50060c6898247a6472854884fdbfc2533c936fe9c922d881bd5f093851b46693cf633e25f27efd6db65da3ad96f2e8154ac39f2a9859f15c919a92c8cd22285c1f9e87444e61769f6833bd0d56106f87825e472e59caaca1fedd8d4065fad9dbbc252a84c196bf5d6c40bd8660600bc6c825bc7470aaf4ad118c6c139a5c6fefd5223ef490d4afa6c06269ea8c0054aa1f368d\n\n# tcId = 102\nmsg = 61\nresult = valid\nsig = 7930ceed4b191365ccac54cc8a5bd38498c0d0c1fa5a862b6c0744edf9bf1969ec4f3c7c42aec737438acc797b8301aa8b30be2a4a4c1323be0427411dc8be84881036e9062a55fa2334176049305a44b97f90ed0b3becf56f8c9f164ef0bb45729f9fab1d459f690c58f07ef5ef89f21b15da14a235f3012e6f83a7f226e118d3b7fdc9356c39667e1cea5c667b54ec5ca6a0d58ad933484f447c670e5bd3647361c81831dc710360a90692eb7e4a57ad225b2516d9c3bcc77323a9354d1b92d0b3f5ade911f5faac4e4bdbead32f3349840ee66f4010789a84f0934182c2b0cb7d6e72e2b2a6839d03d7c9f681bb7148449161ed50b4466d60002cdb7492fa\n\n# tcId = 103\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 16b5ecefcd0167682fbb3601a016bfa8bce9dd5855bf305ff00b45d97e50fecd27716997c37ebf8efd8b269558385b3ecaf2b6e38313508a7a14546107b75afb450b1a0e39cd0760151b666451bab43d7fdbd93771e9d98152ac889bf1abbe1c3f62049c4735602ebd6a90a0361dfa08417ba03c55fc6b7bfabb136851ab01eacf528abb1129bef47f2b04e2aa24c0341720f728bc9fe12cfa5d4248976aaf7035d19c18302fb9ae2443286a71198b500034d48113b705c83e64561762c583dc013cc099c7e5bfecbfaa7b971c8f1a4d3868fe0a4ad518372ca68c65bdefbb726b1fd92ad92ab739d2bd1af97724dc076ba011a9f32db3979ca4cf94c5370b77\n\n# tcId = 104\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 1fff6827cf12dab1e9f7b152638643a71577021177681eb4f85a57d98f0aa4131a680f9446f4eecc49bac1e5232c9e577fee389d6632dfd32c76e3942e9e89f45789e5c7969dcc4a8943a902197431c7f720aa502f36bf29f4216f63ed1dae10fb0b1d4667f422611a5f64c69d993312b65232d3225a0781d7c83bbc60281f92aa654aa0263481455099920bff07c6ca29f7704e218b818ae323854db3cf3c824192f13807890ef1b18f4c9cdcac1c7c7ef7d7015d4d924d4ae31cc1a4c432c3fbcc2f43f155e90560834fd406d89792db0292ce2c19e0dbbb1339a6c537432881661954b36ebc398a65b76f32d5b968592f54479259f94b967b3cda34ee86f0\n\n[d = 72ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f369981979]\n[e = 010001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a", + "20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[privateKeyPkcs8 = 308206fb020100300d06092a864886f70d0101010500048206e5308206e10201000282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b120302030100010282018072ac6bb6d9a5726e454b5430c71125c6e9ad5fd42e1c5a18a8343e9d83d72214386b2308c0b8ec5ec6759dcfcd6a21f88b8ceaf46403923eb86ac3d14a8592e95de0462e14085c3f17db005dc4fac87b4a2d1ede5cf851d5745c8651a4438c0a4d746ad72e419207964728c301bf379a01c094e9693376f721137d3dc76ee47c9790fbd590b7d6a8d626e21b277ef17a4e4f7e0171c1146e1ec324fa97f30d3a1bae08f8d5f6e92cfc121665239c429167359e9650434b29d2015190356adfee12f25b341b08f12b7fec6379598af7d5cc24fe7f00de1d47133ce3ad8b6be1c9a854e33fb952e164ac6dd2a9052186ee144ee7dd986a8f03891d0da21ed78516dcdc2ac89cdddc8b544731d66f9d89bf17a50c6d987a598b02c938dc36521b881ea994e4c8fb2ba8fd001f73335d4dd1bdbe177d3093cf3883657c9ff944e8f5c9cde548b7c1b0741929b0d74977ecda694d940aefd9d2fc75323e0b3a114b99feaf3e2518f5158d1fd9d953aa20af158e67d27e2ce2f18d97fd02f3699819790281c100f5eca16e0e83696b0ed9ac8a812545daba55f20a964c4e6343604a7f2be2860fce9fa16a1cc92120939deb88dff68550383ead851fac07ad1b2e8a9b2bb69525d96ceabb7ee83ce50f08d649107f449a14521a6893f3f3c5c5a703b2fc28bfcfe261a4f7f450558080deaeaab651c7a9ae586c1e7f5c52cda93e40aac908e4e3357984fc116af9cbe9539bc7a8d3b351a73ea5c2413d1da2e0b448b454670aca89ffe73b1401e9b8554fc3f23d6c904623251a1d29962ca9b26d973345bc4c5f0281c100cf25446f59cf512919ddbfcfa2d9670495ad92b6f295d61032057f9da6dbefc4510a623c2b47a5220082a3bc42af1a144f98c9ee4fdae41be0ec501ccc94b2b0640191099b355611160deb327e8ace018b898025ef470e4373ec1d97f669e298e1d845c6553c0a546ccb168d5b510dbe6018fd4ed9a3545f9bdb81968f4a6d7c790e5c34729a8efb496086fa1300249ab8b28f38951d7bee1c127ac3c4d0bd596edee1e9d17781dbb8227d7b5d76ce8b8bce03c5d339b9757981610848c55cdd0281c06357a59679d26801514c6940c20eb67b370e84e9f5f0f9316c0437d3cb7c843f5a6e6d9c19e8bdb3152e93f904cfe6e692f1eed27a0ada46f95601b3d122be793dad9bdd05d4f6d469105ecfc11448381dc154ddadf6bc20c649435b483585d68a527b7b967be52e35e0be9a437021c1cfa5f4771567cc233c1ce3ae99eb37daf8bd10156b4bd580a3ce9c7d391bdbb23e67363a947405c6c812cbd3dccc8b356a2dafd0d3b23a21b684b458e4ab3854bcd9be04cdc9d65ceeb10a8531c470ed0281bf04dadabfc15b1a8bdc0f566f876191088a7986f6c2b8c04ba0e0801d31cbf5d2a4139a39cec9df14ecee22e846a7d3f4a5e8eed2a70c7a4c2cf95ce74fe42c4bf60c135a264919bb4cc906ba283d1896f0ae48529b490f0c85ab03068cbfee8fa6bb6ae73b182d25cd66f5205b038b4eeaf1aafe2e1ba5de97c88d40fa1ac47626602fc90ae694734f44f3e4e88d184e8805a755ac2904be8fe9def6b7a62cc9ebcf4d7c2d6c9f9e86b2483e9bf22ce51861bbb4e73e731a4dbeba87772d290281c0214a1f73130e48b336fe01b950885ecdb3443d93e7e8ca62fb0da96bd423759d8be552c8be44f139fbee6ec24b75fbf0744fac4daabf5488fe6c3600d9b8e9a922481fc74a7a3d622662db8c85318de48ee8b716f19429fb594990da705ebdf7ef6613dd6bf885c16ad65e9fe6c280386bee976c25dbaff8fbf69baed9510be5eded3f90e0ba4a97e5c81a2189f114670745ab95edda215bd05fdc78929fa0cfe8b01c83f2aec93e3ad1a334fd85aa8794eacf955ae5dacd45b268741fca195c]\n[sha = SHA-256]\n\n# tcId = 105\nmsg = \nresult = valid\nsig = 157ffb942b1363b5989ec4beb93fb0187ef016de4ce055620825d13c3dafd4fff621c71920e884ba28c5e98b328baac29ad4bfc4d2cae2f0ecb9d1b6c9fbdfc385aa565aaf6c5b3150e085e0316e21d7d440a873074e5d2700d961114ed420478647a4769d832691f7a004d934a89dc249c9343341902d5d0c3d1a623001265634216beacd5f756821f21c3b58111790657690918a2eafa9e85ab1ee44edd3d8bb89e892acf411ba9eaaeef88eca37dffbda72751c117364fd1b38c840d7b42318fcd011a4449aeffc2de32836d3a4f704d4c8ad4e078315d0d1758f098f2ea749ccce62aac592ac4041b5e733ba0431b88332a39a2af7f68f9bb1f469a793b280b964f285ce5cd1ff3adcd7dbd464a7c9414ed45791073f08415be2dd9f01dc2fec8c3a26fe97d9778e2b2fccf71a1ea5e9ce017d2d46778d7e37bb832ebd5825b3257a7852db5cb6c132bcf9ba3522a670b0e866585444ed3601fd32a922818ef6611626eee3ea99cfcfeeaa4c370567cc65e0479bd35e091b772d7445cade\n\n# tcId = 106\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 631cb4bed6b79dcd3827879f6d64de3ae17e0fdb022be013e733bbfe0031cf204f0508ab87a2e2bbdfaa16cf24acc96b3fd2e72bc4a224428e515d6f1e0ea6927eba6ed7282a959e5df5e52eb3be9a39cfe139ea2fa45c21eb81b3197eff655b918f7c5fff6abab33945557a922063f9600a372ae7701db686f7e1fe4a6e804a0f624331fbb59536733bed3710dcacd22ec74b1a1386d045372853cac91130703ecafad7f6f42ec1aade5cb865339743c83e882f248b0db0855f487a6d3b55442f67773611a11813ff46a58c762b1bd70b5e870c3095507f23758e90b3c84526f47a825f0ae787acfd3ed349ca6786a2e84ec500c6042a9027a994c328c7a6868e6a81481b294383edda62773fd224af46e782ea3f00468515f6100486d94e818afca1bdb81851e62b3bf4f9236f061afafb3e399b93e6f6a295ae200c9bba5ff5aabcac8361c84f2e69aff8a8a21720b900d52ea4bddcfbaba3a231bb9b0dd48f0a4ef1cdd255b3524ca0633d04907ab672314c5e3173108313ff4a97df3772\n\n# tcId = 107\nmsg = 54657374\nresult = valid\nsig = 5819a699691c01a7f35f0bb1831a1cb65631ef693f7c9ef89f1e8460ee2ec312f6fd38fe382b3bf4db8f5d208146c32c5ed2d3b13105743767a73529bfddb5753c8cc13148d41db97f69ea1dee0ef1e1de990ff565f633bd3cfd315a7dafc70aa7f27d4f6486a2f1e2711e7919c5c73c518069338c0ac984d75f58b00fb0eee0f7da6c9c84d97955137417df8f20c02b7893b5cd929ba37f6b3278a1bd35748e14086c5f7100abf2edebeab5f767bb83d999a61cc27531bb67e44a92004fba9944b9c5f770bc66671d2efc74e01fbbd2885c5175a1fd72b91937c324b8d99d3592bfb73efb9641b87949266de441b61d180e141de510ae0cdefc2160df918c08c53799f050ca4eeb3a8b6b5ed35b8b59d3acd13a600a8a137eb1b8c1abbf55f3e99cf52d7092d1e3acc08583b04aa25a052668bc982abf060ffb17c1782daf76fbd69e7fc9510c5c6a68bd525719be5b81d0f2a8b961f1aeac7dc13aeeeef9986c7a47b34f8b96167d79f7ec458fef7345c1c31bba599d09b3fe33e738bc7da1\n\n# tcId = 108\nmsg = 313233343030\nresult = valid\nsig = 636d31d8d5dfe0fc6ab01ef2ccd4602dfea62d386b002c429e7e846e7a98d0cb1d448d25be039d5158887ab46a9dd49c41537a89036a065fc10329df051e5f2e5c1d4436e84790ff6db4d3f31575e5f0fbdfcaee625722c5492fceaa3fb29d0a865200dec06e117b04753ca9450a7ca7f7d1a1176cc38ecab721864413a0d7a22d8fc1595b6cd0032fbf154fbbb31b56d3bf963761ce8ec9fb38bba3419716d0d39e976857e79b1faefd5f5a2ce0ebd94968da1ec3a387804694d90f37b34033c7f70ccfb26beffaafb7bf56c1b8385d489217458e0a68b5d680f9fa45382fd1c227ff3c11e3ec82426ec648a564f0e886e5b12e695dd2fc8465bd9d08731fb140084c79be64d915bcb4ba10f1edb4c37e35231753be2d9f339d37d7b5f22c91584a68a973f9cc469a23d3b5800157dbd72a8405fef4e444ff01f7fd23efa143c1887504e81773743843d8a73209a1deb66c5f305df539bc30e871332e82330e5b66fa6ea253b2b64b4c9781011d20e80ddd8cb83916834eb8fa696b0a4b6bcd\n\n# tcId = 109\nmsg = 4d657373616765\nresult = valid\nsig = 08e0ae3dc0d16c927c423f12a87313afd1d66fbd5d09f48a4dd1a8b52102bbdd208284cdd692932869803a5c7f041a4492ac2e664bb6dd981c370e0c79ee3f7c5c6dd37018986fc2cc618139fe3eb85c0616f0673403c4afe7cbca49c1eff27bbf6d7e", + "541b285ffff20b80bf61dcebcc4250068e25ef5a8e7c3306e49fcc2a1ee0f500a3ec603b472082f12ce4a6a12a6ac66cd4da8b6efac0796e9dcdc66c095a6282ae9a32ad274efe63f43e725410e6ed4c480828ed876b76b71b1cb8c142d0c7a51dc202af796d7bb55cf544dbde2f564f31994911ec7307015b0da2c51abe265a04a74b9afd0791a68e725cd7d8b473296c5d948157c10bc4682f74d843ce72e9ee8719a7a49d9de2f982c5d4490451eaed62c305eae3d0f9cb3493bff056a0dbca8579b7b41dc8deb1becfd5abb455634569d58c5b5535ff1356ccfaddd14e0f9f7f69a7ae9cb9f4c0c9f661fde349facd21f0021423d3a9ee5031855dd242f27009090ff0c15d1655317383231799b18c01fad231385aa5020990f41e\n\n# tcId = 110\nmsg = 61\nresult = valid\nsig = 9858e2557c6b99fbd84bc7eac3e31283a4efb351ff019343760a1e282368938e29ad902d3eb6cb29b35a036dfbcc7e06d2f1d15548df59ced35326295375bacd7a9d28a01b4e8acfb676d80b6295e19c6b7a259df56456e1df72f6a746e9cd31fed9b79b35d7a30a7aa257e9e8ac60ea886042b9194e7a383d1c9f71c84511faf6c96f7ae0e690112b26bb60cf7bb10f684e4fbe2a3a1b1c0caa9b1bdc79fde23fb758c2ba57880a4de461ecd2bc696689438183e2b9724fa68258f461bb4405425620a4d95c87ddd83e04be381bc743b05d26ede2ceff8a858636baadf56ef1dab54080da0f516307c579833717def053c8906d4f102448ab22693e7f52d5850193a40ccf0d68d1303953771a73924e4bcddd8486e1477d96250bf6b480a5f4b822822183694c52a2edacb331564444f0335d3b17d511ece59889b6d961767a3192d7f081caf7e671addb3757451776d4bd3b03f7b689843dcd59019ae4f292dba54738a88b86cc6ce3b123c61a446f4878b627a7f3585d8ab7bca9b258f10b\n\n# tcId = 111\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 1294490626bdb36a31c93fa7853d93152d920b022f1b473bde3083a99e11aeba8c03218fa07d6c4a5f8b2504d2cb54505c40130fef5a2412f7a5ddfec5e2c8b5058f7cbde7ace0ac01c7ba8a1bd897e8974d991ad2b95c2f03100a34ff408a788c70ab5ec73b5356a4e3c7beb44fcb9e2f3f25d1c974ed962b148167684351dc2a223a174c9744b092071d58dfd39c38364f47d292651e7806ad7962bbedb64739d7ea298f0254244790e3971c15b861c95f00f65532aa1c77fba5c04ad078525128e92ed2b4f1269ae744547e3efd4ebb63e9df844df152a098c47fa492bfe0f1917ec973867c7491f64c172cf3ea1bc3f97b42a397e6ad88d12e150d3dbe360071a3285d6a68ee6e736eb4d7d637c649c2f545259ecd430b25b38a1618d69a4602ca8a2a151066f12c3807f5dc7cbd06bf095711e4483cb0a89c26dd9e4b0b03e05beca349f601c894f9a245aca3204584a9bd844772dd87b83d481c8df18b615307eaf643cbe856488c160e077458e899755301749d2d27bc190d68a5da11\n\n# tcId = 112\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 6533f9ec83cda0ca8e3c06c440cbfcd4e5d98b07ecc2419714513b454ec710c04d1ed50808db5131c69f091a5a088a6d9c93310ba7a9616a0b45fadfcba655290624bb529a86ac215f6c76c89030c82ebb8b0eebebcd2a398978185f47284cfe119b2b6a5ecf4ec1a63663c351e422599004481207bc7c15aeb1ef30248b3c2935c7ad0b2205a2f62b7baac72f33ac0b8e9f5d146a269791d901310f64318cc66dd4283008214b6012ddcb1e7450763b9bf236a4d282a62f91cd011af439278c2812e4de55f6480bf6b31e60fa57d7f40d9fd56cb9339f2664d95fc372e204a0271014d041d2856bc29a536cb8ea5d33fad437b7dd4bc1e8244e10c08e1887646ef322b57d77c4be94031811169cde14376e91f17bd71903ccbfe320921732e69260756718b54d1aa047e189437a1d0bf9edf8019b8ed4b173aba3448e7309a443443bdae326a9c98d9a66c271e53b8353d0340b4cdeaa319b0aa45dc21f0e8df6117b80d7d6a5cabbce40f72edeec42ccb5106c1afbed518f3d8b7117acfde4\n\n[d = 009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca80951c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a81]\n[e = 010001]\n[keyAsn = 3082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keysize = 3072]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[privateKeyPkcs8 = 308206fe020100300d06092a864886f70d0101010500048206e8308206e40201000282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769020301000102820181009b88373c9ecf8daaa05d0513982dff2451306cad4064ff8cc8d65a7e81f0fb296f1f355250729f87d26b83036692abb81ce711aff1a97e204a3a55ac34a98928319936eda4418ebe6e7923acadb07648f484a751de0fce14e6749f7829819bc48e312020513c64263b81f0b6014ceb5911bcd01dfb0611f455cfd224a3e581c3dad1ecd7ca9ec89252138ec61970669becf1844998e5006c1affd894275b5b153d55cb6808f83566b7ca8b017430115a62cd97853780efd2c8ac079848dfce3ea766907775047d778b5b47288ef9877fa55df06f5c4ca809", + "51c7ce98f16ebad5c90733a5622a4484c94ae7c3438017ed312767bb70e961a192c426905b87472c5b7c6c673a5d147881a43758d1a65473a9bec6301f01cbc422168add721a450dd2449947030039f30d3d0ead874bafe455a32ea65b186abbfc21f163af1c49752696725e0103c4e63cf1117210dc1cf7eeeabcea960dba93e124da70e3f2c234d3b29438ca8a9c2d6fdea44916ab61a5bdcc209752d4a847f0e09a8a810f7a810281c100cf3da32cd99c1591aee15c1a2d933b7e5ff4d2dac6e0430bc3b41c2a93a16b5abba9496c2efb7695856bf1d38e818c57ae117dac789ff0e725a618a0d5ae46921111748298656b0bd76844e323497d46957d5c9e31f186ed64403b911f02b23ca2dfcaba2bbbcb7cbca9220a2b170d0ab60e5a1f90f957e32d82c7a8362e916f83a98c9f74cd0d08c687afd6bf0d89f23c7cad68a5d3be8cb86a5fa54870aee4885c60d8051e74fa46a75685d7814e153238727351365b94fdb9ef64253bf03f0281c100c639e21504b61149d3d240cc9ccb85a584417f2373087b9f2bcfd223974df5c075082127bb55d449d6670c5ec550f8033bbdc6a1ec7a67999faee700ca453fa1f37db626fe1ae62784d77428d8807e270bb5eadb1bf5cb3488827851416535243d3021511b12c2d38e3dcbcd9560b3d9cebe1c435582971fa2d60c49ebcbcf4da896a57f280f97a16707d0471c3cf62fa43cc01d5d09452ef08d29ca2286256ef2feb6067aef00eac0b1d13cc7f49e57182350e5a695e5803dfc987788350e570281c100cb73d4850c618a5f4a535e0b2920f8f0391dedfeefed6c84d92d31d5aeb772e0518981565ecd69fea24c75cd5e82da179e00f7e2e14d0bc0b11a5de54fc1d6f0412764bd6d056bd0e5392d1fdc1da28a2fea3189f0b80fe170610ad98e9b2406195420ff223e2c281a42e4f31c9875aa454ed3b557ab225819eee139c76f72420afce1dc0d5bdce6f7986fcd2025177f2358b7191c6b430f7d6098e377b9804945818365afa8d5e87a827f93c81cde5e3abe65c5c63dda2cebe6a51928e0ae1b0281c02ad9a264b6c300d3bbc56c9a8e9e744286677e2b549795d99fa7ea1e257c05ced7bdad25209afa2c07fbf8b197e7dbe51f09f42156b45326e35cf4b4b804e62f852a3cb10b27176f9d88d1a46ec0c00482c48d8355f4f93b5ef30d3d4b6cac632c12f670c8f0724b372966a00755832b6744b3695ed7bf0168baeaa72420c7ac5af04dd04201b4de801e3148ddf2d3a912d0cb1acddcce26ca7b497857a435fd58ebf4bf4bddd48dea9fc5c264db1d4b687d61e472f15e4e2d98280156e1593b0281c06c29351eb857f399c0c6c55e73d06e5010ea90c7f170dcf15b0bdb32451be4f4bb846687783da0df865f2846772f1c29f5c0663ee9fffc28e85d6b87db1d2c07e6c27274028d734bcd0ba4d264ce32d6d03d96ccb49c023518c93df3b34c6a9a2dc4dbaf27db20f040742c4121e4a5eeade583b5324c33720c299141408dfc9bfb785c846419698b4a71ee126dd723fa6474e963c8dcfff1c0bc8e34e3275c289f088dc9e54ec58cb48cdae73b251c2cba6d6dcdc4c7aad8ce6835fde9d6d861]\n[sha = SHA-384]\n\n# tcId = 113\nmsg = \nresult = valid\nsig = 473432cf11b6f96b1dd41e1742ace21cd10e8dad89a3e00ec68f3b45411059d0bbc6c8a3f077bfb4b12da60aca86dd856934061aa8e4c3221a019b7ed3d4e70ed8bf53fa140d3c31877a135a6ae140e021bea9408ee61fe7f32e60cd18932282b1aef1019f9a39789cb48991e535568b55eb26cf96e9bab35d03121f6be9f0d65079b064cff923edb5639cf08f48ecaec0670ab37b03e4cc2e604582e1cccef79f262c8b3d146887303c542ae7c455b0f68e882c5e2259ecd9f76cd3706e9894766089b267ed3bdec29df5b57e6a6f8deff21e093ce611724ba1012cf63aa2c62e7267af4b1df5ef030e6cba7b217d46fe43fab255f41ce086bec5e4f604718c95acdbd5c56bf8b68541ac0dde0a5e0f2336ea608864abdc5324b29b9f7bd35c514373efde38bb593b8d4b249535984662bf4b397b2a584ca15624416537320fdef81133d6038edd99ee19af9567c9fa536474effa925555c9c2fcea525fe2da935b791ec1d7d3bde33a58f80dd1e587e1c433239c65332e94d66d3c79bfd190\n\n# tcId = 114\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 69d89aee9a1b9827228c40c3f3bdb9479ed36bedd2c77b3f5dca19917a5cde9636b9f6ede29718a391224ab58f464c9052b5e6786178194a90ec04d2d2b7513b19df2799b0e7a2d6d1ef2c49ec6870fb8cae45ee1103692da8d211bf61f656d304f69adf68c0227c7af5ceb8c2db4a3668bb6a1b8cc3a437b9df79bc0dd650d6e3a42295b4a6e23d40b3a9b7548f3760e0faf69200df230d2c143807b2f35fa449cfa73792844dff5d2ae50adc272c0dbacacd60eb0b7964012a5c1981cb2f358ff53509f90b0ec41259fef321e9a306a08363ed194e51ab6dbc00ceee576c048c02704a19f8f357250adc70cdd2819157d71af04ab0cc63ac9c6fa4b5799eae521e275f26ce53302017510826f96c4a2889deaef19fdedacc70a6598aa89e2bcf373239bed98d1f2267fa7c2436add13df68d9ea296fab52fed0f5ee46874f48735fe32c61ed2b1c977ff1862ccce093bdf7d84a6b03c3007c4c926d1e52d81dcc0bc2a553a12be363b764f6a322e41a8318ea7408c18e33c260aa05d039625\n\n# tcId = 115\nmsg = 54657374\nresult = valid\nsig = 259332bd5a274bc347ffa3e8a31c8b27f216cc865d32c917a5d7e4c06abd44b6c024f44eba997862c812d8ebaf7caccbb234293178e44b2532478e8bebf6af5f83318ebe398e0850e929a89cda860cd18ec94554e4e0d45a9ec2d9acd83fbef2b5d31dd7b2f3c12e791afd3e39a9437fda7724c9426194bcfdc6bd52036f62aeea7853db2c8c498103eb60180281170aa0fae8139417974d917090dba8f9061665e92d953827dff4d450f5566d2c5b753b65c9b522a0c4da868629569a666b7c292b22060e92acf4ed65e51245403a4f162c8b504b85a810906ecaca2956d395c163a7f6f23573156968ecf62ef46b72b9ce39303681e354e91c5d7944cd3288b2a84a1ea28e7e6f260bc5f8d92be419ad649a8f55a2195ca46130922d82759f9bc030c8b122211d952c3ee7851f09f30c2fecd1070656c69c2598584b55cbe6567dd2719305dc52dfda03ea289a5db920fc2c777e7081cfd92864316d3fca9aaf8e2218ed8a5235e746e5cd9bcc856b0c615b901dc610f0193171869202e845\n\n# tcId = 116\nmsg = 313233343030\nresult = valid\nsig = 1f32b36eb43f87b18e569fcfe7021763bea0ca576cd273c0b20352906ed8484428d250241709c825704518ff9e97103bb70cd26f437f87754bd40407034a9653d00e868a759a190f3067ce5efce9ab17c8b46000d88e2d9e68b8dae0a0eaa4a31d3bb51c8c8d0fc839b0b273c83dad57016b1b5c1d8eccff1c753e5c6d189ed07b801f0a54a1144c142011fd3226451faea43d52597b003f9256cedb0d7d7f56d86dfeef50179a794f0b0de97da1926e9491f025bb3c3e8e031661e0ead860c8914f0b294bf8cfea2d5ccc726ad0743e192510732dc84301eee15eca3c6a5213ba66d0871789315f8537a44b727bd8a10d6e54636b345715fc0b6f5b5116f22557b0af9f948558b0ff4a3b0faf1de7da1965b977aaaf039c5b7b09b4f03efeeab3189d2a09fddc3983e4815df35ddd1c2198b695cffc35aa6662839f82468cb676b677d53ee4857ab9be7bd99e1749c811e2d6584427cbce14d2ca15df061165e85502420602666993463733b43c1c1ebae8d37780470b8cf5cae31cd7427799\n\n# tcId = 117\nmsg = 4d657373616765\nresult = valid\nsig = 7e3165358b5d09ab1ad1599935bbdab27abc32486910382a0ae630f725b5dca5ffaa9e606e2e555122c1e0f3409d7d915ea00d8784b814a6721d0dd117297c951c8d225a484a549e488fb80f996ad65490a09defb0b46f9cfca2e952b04dfd5418da920dfb2968e48dba8f0729b16fa32a832fd8b789bfebc63f01a1190813cfd55ace949d802afffbe9a1ec1e6a5df196e5ffb241c918d712e466f30c66c0bddd48b57ba4d0baa0c2ba9bcf519c3a26140df6aa5efbdd5ac9beff48613f92d247b35efbd6014f3d714705933e47d582f4a5da05b15a79bcacba1aa15a5fd6ddb228bbe4c5236f9ac607f41a492e6b1c92bd68ce30659eb5b27a5b2f76a5867dafbf85a9dfddfdd476c383fd03e38e81f2e1434553643e652cc006e5df7313272335f122a7fd9cae6f2f5a7da65865698d6d08d688000a730c90919e1826bfa1db85d5607ff9d76cb100ea1649442cefc4251a8cc1d823215e0ad1abfb2976bc4a6b2bbd793ebf9c7770957dba1e2a8583d9a82a072386d0957789b450993c77\n\n# tcId = 118\nmsg = 61\nresult = valid\nsig = 8bc948c5c16603ab63e75e18bc7f062ea4c675ebf98dcacc1a9826b0eeab0004e2592b07525fca53bd288bb56b5961aea93b548771068f5b0cef467c387e2d62c91e045872922b516dd6c5b8ac3615c986a9c8b5211a05f63e82387175e8749709951273cd9d8b2eccf678284761c72285be5c189c4400629c26f87bf18ebfe5e56f2057fd91fc9209ec48a872d6d23bc330f1c81ede7fc5a0e2b09c3a4735eff9c8adf73152b3406a62656897c1eef075c4fb02244ecd93912dd36fbe0d358a71e02d2b302dbebd28ba50860e4a963071f0a890a2e400c18f530cf9440a897eb2781ceb17bbc58f61828a6456b93c86df972c42d082b913c4d8807b7563aafb7b330ec39dc988674a5c3b36f6bbdd096201f1c7c25ca9ea8f28e923ba46dbe93910268d6e35cfb605b92ecf98699ae9b09dd4634d1280586c5e6bb0b1a4b5e5e22b225453f5c66f9a7ed7fff83ecb201eb157c76c9beff95227b495c8516bbc7118f011cf9237b6e794bd7a9ba19e35d0a650dbf7c06a0c9ddc95f108a78246\n\n# tcId = 119\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 09ee821221ce7bbeb4d66ea3ec88387bb5c5bfb055b8beb36ccba4c2ce9666b1a09935689db1cc2312d797ac8b6f62643de736f38269a81f969308eb616cf41960341fa8edd3501f4edf73736806b6fc1387df4ef3e1e26c03249f3db6471ed580699e8ac77d0fd9a78972347e8657b6cdfe172fda324eea00d60d38b47e066c4a6fc0e33f75d1d4ecdf46efd966ca9aef80d22e43dfc2cd0af37fa70d6df7c637c3c18a219bf58dc1e7bfc941a235bfe81ee7101530a2c264527608d7148dd91325b7895817ae50d774e8dcd2def8a476a9592d55be743c62c1192f0ad69981fdc8651c1db828097ff8088b720c637c60c771b5091f9d9e174bc823115a1f7dbf086f9ad36a403c2d710c47af4753fe6e43c675c30219abc2b8560bd18c25aac719546ce7a74080fcf22bd4e6cffc270e57baedcf2739c5cf4fc5fac18f5dd023301caac1b1faf4dcc65327255ccf54f5fbd3cf82801a8685c2eef3c5e7f608cf6f747b8307f617fce148347b76facf0e1f7895aeeb11e3225e3a6066a244ca\n\n# tcId = 120\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161", + "718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 337c89d91b74d44f3eb0ee5d3ded458f41bf3919c02db91041d1e648ee845641a70dd189878feea4343c3852272e6e5d2063263d546257f0642678a07f9a8badb42177f67aaa75a76c61f3a432be808862477fa3f9c49874fecd5f377ee5aa301058b03eaa0b7f04e6a152343a6d1fbe8abf910154c22ad3200f8b9a200e6bddec116e07c3ab66951c106c599f21c3946f2e23bf2fdc34bca5d54602714d6b02f2de95abc37d63272665f0bc190343cf1cce73db0516829679aea385822100866ba8a60521e9befbe9cd8e2c11964bebe3e3d1c99063bec91d21da8dff32adf39de3059278fb672872a60cd2cbe94d4ce235e69225df72c27e1349f8319851445a9aeb2d7a7aeeeeadaeb70ff6be4186ac6ae46c21a066baa76973e2940c9331496f562cdaccb98b0d6a39570b026739e00132c6f1a0395ef9ff0ddd901cc511bf595fc23a0666783098c2916eb3e3d50b7bbe75f5f111585c5d9d4bccdb9f685f76f84776dee5c154ab580a49b8568009a20143a3e0c0071cb0c599a16dbf1a\n\n[d = 009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec2181]\n[e = 010001]\n[keyAsn = 3082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keysize = 3072]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[privateKeyPkcs8 = 308206ff020100300d06092a864886f70d0101010500048206e9308206e50201000282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245020301000102820181009a389207c44f45ecd4b2ac716d728ef622e8e237171bc3e12f848e1743b73159a7731fc73bc8011bd8bb24855acda63ae8327dd60043e6ca86d3ea10f2dcb863f1fe20ba98246f324885198d642cab314c087b26fb115c0ba7dfffb222c3894f6577fb60bd07384dd4e71fee050408c9120a884f63ccb0901ea3e2ebd9da67c7cf54e7aa1adba1b146a9372f426e4d0f2fa4bbe070bcccc28a498fc711af83996362703b0433851ca516316da0758fbdac209eb63eddd91f6b3a24e87fbfa1d2ab8f8a95d1c143bb643d9ed2cad7778ed1bb41277f07a2ae4d5e01b263f905a1457fd1f7689c85694bc8a7f2181752a606b4e3ea5b59e1f85e993c8f8c528cdd0f9f09c65a53edfee6354be565d594060cbe594faf46d82a17056c8eaa59ccb0f0bb33114b9c2c029a6e0e7ee9325f03592ac0067feb660d99f8bdb6d25ba1ebc480ce770c367949668bdd2e3032d04968b5293c080dc41f2b69607c157e71c62570481a93e340a7a5be1629d91334533e41eae79befa422cd5ff4d838ec21810281c100fd9e30b6bcb1674ead266332e2af25c56b2869b4d822d247e6f5b35cb0f3c573b5efc39e4b5de760489b82536d6cf3eda1bf60e5e43f69f26ac8e45b056d702f0361dbb4a73f42ae5889a849657a841d866b8b4417286ca9b39f854c4d95e3719b6cf367fc7128088a365f3e322c1fff16bc68bbfeb69c5b2a9a677dca6d494de44ad057135e65ae5a5f83c59a0d1477e5175acf716cdcb2966fb75145dad1554a112c466d249ba894caae5e182c65f1753fe5bb583ef962d1574d9be20bf6a10281c100fd3c5d0967b74bc6fb54ef961a6aeea76a59cad1600e3c73f834e5f5b7b5096f7779c62b07f783739341ad5de095e0209f2f2f30b8dd503da8a271f4b35d93cbda013b515f573501ab80dbc7d9fa9dc98da4451e00e0032f53583c818c2645cab8f35619e7c27928648cbcc3af39f30e0a61259ba2499ba96b2ed7b9edb881d442466c07f362ad11a2a9bb3f67548a5e24c246fc6c438d32de9ecfd18b609ce12fccca90bfa4c3ef63cfe3a349611e590e44a53242dbdbbe0937f2ecd81c8d250281c100a975dfbada4df7673c8edfcd8a65d96915f6c4dacf6844f5423f7dff3b4546f3cfe74ae0241fb4904333955b454c7d98947119bfc24914f3a3a263e2e5b7803409a0837b2c1d3ae2dfc9eb264fa6134cdf1a50cdc8637c67cfdb90e7b117ac07a7009f8b25c43e29a6a039f786f2b0d6734ca4f6a8753ff83279451969fea7f261ce13737b3fa1d564115a2cd88850dae3ba3d354ae6a078bbc81dc73253c977a1abe3d792e9d910458b40032347d73e054812aaa186428062bc60e0fda35cc10281c0098b4ade5de054a4cd38284779fb69bf398ce4cdfb56ce0478e8557a6b501168f811c8dc3a52a3cba953225b956950a72a18b72898ef0e652483ead3942704b8fc206bc1e75bfc0d720f4b393f07e9067da6214cbe2fb32f076f1de8ac058d3fd4b4a71c16d60786f43331b2165a92c486b39e9d3d0295314f6ed68695650ccf9927da4e7a67cfaa087d69273c97bd174b3f5f3988430b814d4ea2fa7ccc495d5b55d6949a0475b6020705c753aeab5c23e3866e5c82b8c772c57f0c5a20c9590281c100a2775a3e38c279cc6633f91e528ba76d14750e36b7d43883b1c8bc89eaaf2878c3b6ea9b87140d6938eaf938d1f010656899717be3e0de04437e1da539c6acf3db3956bd49ad71b747778217e2dc67ca0800726a7ab9624e41f10e578719850ed7684db03b7010e86c197eb79f7f68c3022403fcce14d8cf9df186b0a2b97cc120e2b4a729aa5877089240a18fab397962198fc846cf9a10eedcdb7cced6091c61e8b1c621df270cab19e5795485a4b74cdc3e24028bfbbf0eb1fa2ed4531cd0]\n[sha = SHA-512]\n\n# tcId = 12", + "1\nmsg = \nresult = valid\nsig = ebf3c64e4c19fcb0fd920e65554a552cc1e652312c2e0e51cdb3b92c94b2b41ee201f61f434a6aa4703e87416388f4661c04fdc2e459e199af3ea208c61b99d746f4b00d82105caf4f0196f1305e806bc13b4c6e6bf581962862dcb0eb15a0ffcb0fe6b36502320011b540799e1432baf2a56a428fad64811afb57d210d859a1201ec057dd8d2a68784b48dd07357162f21e4c82f8d5e385b1f72834dd4c0d85ffd333410f08ff28fdb7365e408a60af177c80298726940bf4c40efcddceee3945b1d921b9d04080dfb12d3ae61863ad2e3e302370f5a8858a1213dfcd500269ebef76f4ebf0982a751d8ade1aeed95f41d4560084711362774b11b6240c0ba6ee4ca634ba8298f6e63ef560a39047481b9eaa546178e69e4daf5651c66c6235ba97c231241c63ad16efe59b7b5505d9c3f1818368b9462cda71849e431648be9757620c15f99ca78f4e250afc41ffdcdc52693a1fd43506274c431caf34a4d37321f5ccf04971a25c5010b9ada07596bf9a20bf307db9d5e86146226081b25f\n\n# tcId = 122\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = b9bb1751f2336ef5126508541b949d40f1719bd23c2f0fed64a7b73ebe1819377e6e4262f8440a3a3cd456f5eec0b1c0956bf6989add2c3d1c7ba4acf7a617d198179dd974051fa7a14ecd8093ad572d7e233daa2a9a46fe59bcf7e01c6ad8d68c0afa89a58247ce257566edcedd799173e2babadac15405e2812ad12ad900ad997035966a05a02988e11133c21e111a8e06d7ce509de1e0c11de55379482cfa072348fb41c05083529c2db86aebee92095e7450a75d97fce7b3103ef1f8598459651dcb9b6e90f299c9efc95d7ced2f6e91526ab3788238e2b5e109d3ea984189ea13939d58fd4ab896c76bca4f6a92fd3bc124dddfabef1f286583a1415d1fdb8c80de8e7583fd6d52836a22c3926f69723301904532b9fac2a37d0cedccd4b3d0ddf3550377191f813d4f92a5c126ae91e03fbffbcf59637ebbf1f30acba1dfcb0f93285381cec6da60bbcc62074075c71300f8424e0f964422dfac19d205251f227614bc13568f408284b6b53bebd7dc4adfb7e242953564763292d9c01a\n\n# tcId = 123\nmsg = 54657374\nresult = valid\nsig = 1cc02717a3321a83da62deb3ed0b9706cf7ca9fdf3674617fcdc3364a697825b910d54b891b5f8eba197049047cf0048ffba6425d47374ec24a84f1f7f04716b7ec54daccd04aff858e2e7c8830e4420b5f99df756018083abe46d3fbce2da6e8ce6c893fc11ce5967a5f367159f9ad38d957078dbfbd32e818a26b49ae00151350044d22b58a4a61a35fadef67e3f8247f407f026eb17b8dd4ab29d388bfb271a1ec606e141cef3fe57e2e55ae8b40fb076a06f5898362b695545124e9c185c50647cc5b83f09f406e780f626ec60462fb50caf8560aa72fbe174111142029b19f2d681f771a774afedfe2500fd8b1bdd437fc41709253ffdedc302f47afa774f5ad23777a57fe44067182f4b35a28923edc82255cce11d2fbe91acbce29289b4e0e8f5e99e906e6607637b05eab4028d85e91d060fc1fee052a09baeea759917b34855e09b8e5b67ad60f45851e991cf01dd528b100327961eefd0c29f1d1d8771bbf3bb1e7f048d9c2e1dc5e652e6ac4f6a2aef86245b83f611700bedd07a\n\n# tcId = 124\nmsg = 313233343030\nresult = valid\nsig = a0de9c2df76523499c6c344173d944b8e02ee1520f90759fa3c27ce284091f80215a9a26c9fcebc125171da556bb732a0645cd64b05c7cbcd8c187d3995e3c86cd59468118e9278ecdb8e791badca8785e56f33478ba03eca721591930db01bc1a5da5e193b2dc9022e98948644a406138a4c7971ad8ade585a3d72e6c9de50320b9fca1ac0e054835005cd39c96400c491e1b706eca22ae2e9f1b844284226fdcdab1f2cc942a8280f7786e0f2cd069b9ae99f04aae424a6d24eb023e064513931b2e4f7629151af6bf83f4c5c58616960f080c6f96eeab07a87b6d7cef3fe6b071e49ed340b48867a5bea30dee332cb89e1a54d9e3a9a8bbb87179c6ad206fd48dab07104b1f887a02160b59f9ddac6d1f8801c1a8df507ec199e970e02058c749475b7636ba2def322160b11b21773fdf904cc665eb5eda887ecb6d9be245d3dbd85cde107d082cc6d8492a087166e23835a379ac69f5a996ad9032cc41e205078c5ec9c50f85c396822c057b25595a35471a2fc3bdd3f75eb8ecf2d1189d\n\n# tcId = 125\nmsg = 4d657373616765\nresult = valid\nsig = ddad8eeace34f1eb1b0dd28db89ba710ee68aabb54b0a826c2d69355f63acf0f2f2e0dcb96f388d44d0940774d7d55fe81ba6a8a880aeee8ce842101c7e8837fbf2704971341d38bf3289dfc61a6b3b557588db93eef2789d3735000c8e2d830a32070626d079e710c943082a8bd1c0cfb64b2dd911eea76001f8e08cdc01cb072f027fbd9c72331b857d07c1c2f3090eca53accef8b3b015438942e8d2fd3406cbc54c7ec3797a163b13878881f7b4ef5ca45056e16e0c2a76c3d5108c6f0f48803d27eb4b0d55e90b19b6fe372dceaa61270b9efe2800bb259dbead955635ca44ff979bb054b5cdf86d4914ee553d7d5b1a49fb8e49f3f761224802858458f702aa4428964a32a45bed5738224517489f2be075f9ec7234a019005be922b8265bd78abdeb1d1633fe7e5aeb37b61d36b1a03a06847a812e50ed551853d3cdebffaba8b056b788a1bc452ebdb5a3f043a116e5a3d262c745fc15897ad4ad955595292a79eb85373d552d6079ad77e469f7d3a60330702125127b1ee770225cd\n\n# tcId = 126\nmsg = 61\nresult = valid\nsig = 2ecc537edc397ae5c3c789638204ba3393bff5cd9c1f0552db515a8258a311b6bdc88325f9072d2ae67bcf132a92c0b4d01ef0f2916349adc6d8f1b415c86bce6b5afcf4cf2d3137897d0f8a33063a0ff69965a5d2ef00dc3e010094ec8214c95c064313c8e90bd84e34c86b2e19b056539bdb3c83eec23722b3e380a53826bbb31cc97ebb8ca77cfd96d3e6a2da59baaace3883c652a92e79653941c5615bd30c77aa38ad74c49d36ceb9f76544835d57f0cd14999c2c0cf3debbee17a8aba6d777ebd9ffd44b09e093f1a894a8aee80301c3a5a59626a79e445254cb1df1174450bee22a7518afeeb15495d663af289dbb09216543bccd136abf2646bac573551cfd04e6a35b5cdf9729c8b14d34c06660a42b3ab365a42ffe470b69062d0f305c733c43844565b0b94d49d2019933de9686088d219d57b256170c137a21475d03f2a7e0783af11426fc6e64895fb92da117702e4487558e8bd21db82f263c4bdc64065c4f66d87c87889ec5aa9cee02c95d001b08636dc3420f817c228dc7\n\n# tcId = 127\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = b9b492d4796fa2cb7066069a00e36aab8b8755f9dc8294401137efb3e2681c9b57930c0ba87b45c9d70e214979cca91a06562f710a2427660547006ead7b3e619cf4652131fd84999c5ff1c9a1cf057363b8ac62501bbfb1fae840cc963a95169c658add96c6c969d415c10bec5e2457a5c3fa4fe81e7de1afdec6f4e59e3fea185c7cd1bee4b8a42d2f22c7bad7d4933621a0cfacf0136abffc3ac54ea37c63af719425084cade944999aca3f43c7625d22af10149f39acef32ed7c92f781809aaa945b2f446a03e66150a524c7d88b7bec587ba7d6fe2db4ebb7a8c3bd46e7fa1cae291ff502acf33f003dfd1417fc60674501728e52490476d813f0079f56a9456909ccee3b76b30aca26fd4487527f4ee6283bdb2e72393d661ec0c35b2d1675f679f823fd28e044fed090721ba4c6be46da3eab26e5eb356d17d04fc3ac31425a6f6a50474e2725bd4dc30da74fd3767a122ced21671e47b1fb33bb7018349f7cbc916c6c7f4ca7334735a0e0ec18e01735107bd2ff02cd9508fa5832dd\n\n# tcId = 128\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 7efbd7ac1c16b211d9157cf3ab796873196b248d69d5428b2f143404b93d73192eb111b3c4139d0291850d8067dc9b250004298f9690dcf52bdfe024697c21ca2d0cf84b9215ba22ae16c787d84346e6a5e4b494cd651abca905b3fbddcad41b6020eba357498166063e39886731d5eb93434ad026e70c2b06c0ec468e2f4784203771729e6b6542eca06a3718c4c66612818b687de480d379a180f81da405d32b8022aaf7ff55669c9487ae2fb4521f83e37aaf666e95858de1f1b03bdad2c409a5e0c4256b05461ddb17b61d7e885bdb1e98c70a102713a4e69ed0a54c385f0eb4c46a3f41c25b28867b6dd1a7ef9d2c5ea40c64dadad9f705f5107ef8dc91659c0790ecfea83cc637fe5d7540ef21bf608b7830cfa03166526b5b2ce771582dcc534705ab4b8427b55b891ef0a41669e4a2c4170bfdd85ed506bed68ce20e359679e1ab85150e8b4d723b03455fd80f319e5e61397e644a98b9e43b73564a2da455f7bf6e8b81a2825e0fdc95a96a986bc8a5b8daff8d6e2c94bf84f20a2f\n\n[d = 097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102", + "b6c788e0f049]\n[e = 010001]\n[keyAsn = 3082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keysize = 4096]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[privateKeyPkcs8 = 30820942020100300d06092a864886f70d01010105000482092c308209280201000282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed020301000102820200097a59d2c4f70377793937bbbd95d19b5d01edfb1eb3b073e27e4cfed416820d4af4e04cc3f53d272ae43551ad0cd09b89cacb21a595f9f8423b3b0148d2ad46cf818fd9e7cbba18f4f84a1dc18f69ed5a764c6fa191a3664fa94a39bafb1a29431e6fedf61eb9164dd7684f0cb506248121fa948a32c8733f3d9453dae61c8708b2500582f32d91128775265f18bcab6eb170145e33dc40f1bab451194cf8c38f9fa91806bd225fa4b54ca50813b9d7a54f61e0000e5e0769cb2a3eb99b1ae9c3c5416dac83a6f91248c734d7e63291ce12de4d780703614128f878f29015801c7a5ec7670e531e1573ebc8ce63d640b01b9aea48b43d1eea8ad85b55423d4e142bcf73315f3e9e978b65f0556246066596013fad97b83ba552140c6957ef443ccec4051b2a8c9cd9f25c4cf6bdc2e904f46063e319643283462a4047d49c38bdbb0ee3d87980ec08410d5d2dee8e5349958e4178aba065a55d79d89080570fd4af5678b1573e42f2e0f863b31bb4e19ba232c02ae5b8f948d1ce8145c4968d24b56ac930b4f67047257f3c0b86bce7a77b8d0d87124c4a4141409ac11377fb9fc805d60012386becc2ba8478e663becc3d73239ce3036c2d2fc9e6e2e370c2c78053ee1bcef7a87872ef92b784638b84713a5d78ba8c3a868e3466f2275b252e19766d2104ec60537bc1589b1558b76643751f6a60fd8a5102b6c788e0f0490282010100c3c677495c2bd56619e44e26140d2ede0037409b81f3a5b3886a0904eb486140f43b8626af13d14a33918eb72b786b3c9114f39017871528953c09104e1fd2d36b725388f54ffea30373077895a6934ab174e55ca6a12c21923a7b775b5ffaffbd813f9fb752805b016a5735b883c639fedd55ba2e233a6dc1673063d8487390d1676123544d3def177a91caeef98b13f38860474e44993d4c6060926d878a2059855d0de1c794ac8dbdad655fbbad20f152f15c73b95ac544cbb87b8bec8fd3c007ad09d76ae22a5e993302aa72f11deb265a7f28b88976af5d0c912d97b7284b1783c5bc91a6dcb7a9b97fe53713965857742b7e4032dc5141acd4afd4771f0282010100c357cf685f9b8d4e59e96686f7b8752f0a982efbe6658e6bcdb615d921f5e7056882825347455782d7bc78d637e17e0e6810c2136ad81b16cc1c81750785924616f2bdf5964b26c7fc50fa98fb67b746b50812705b379f5deadbd11dcd2fec7b724d042aef25cea2eb37f85b7554d7ad49fe5f47737ff436bded418507f2f175c695e324fbb11beb0544a7a7cb3f07924e291b5c8ddaa6a7dbb07e23bce1960cb52b9000d3a7aab1f58e3c750b6d978adf3d085ae7693b7e6a46cf6dbb6d2ad981f4bca5d15e0962c39066a9fc27985b9ba1f51132355792796a5dd847400804f98671ee4899050bdc2e7872ce6fb2b78b1050436d882425ee0745546a6a1c730282010100a6bbb5460638d2b2f5242aa6657760cdf3731b1415d5f2ee77248f6fe00e31bdc70396da054ba47844791809c9fcf19f90943e671e928e23950d9f4e82aab9bc138b37b7b1ed2219a54b67367c8574762db237d0f39cda5ff110dbac286712f69167ad4f122b3263cf4dc8de58b9e9ade4f08e1d5543ed74223e06c9521f4a45310291892c37e8a262e5a19b2a71decfec1dde997c00125e5158d7867dbfec9466899d59c04b60c4a0a6c5314c1a2375a5f194dbbf37422635d426d719b12c41140fb5806735814ec268493861002977e8982e8493a2ae78251be32315a85b75f6961d44dfb7505c34135987a2288907074fdc015ab1c45f3cd8e91fee6bcdd302820100178cd58f72bf5118da141e6d351e42da69ff90e2839348c94c62a05dae0f744b9d9ee6515ded4930980bbbd1afa8fac687db455a8bee03ce0acb80fbf7ed2d864fabf224d27abaf12f45200123860c7d74c3c55d5051f35fa239e00b24ba9b5b029bb05df0b8f12189141558095c32284d1c62a63d917682c700fc7e2a482abe1533eacf819c878e1cf37af6eab4ed97c0de89d2edb327966310f31421e85c6ba9c7d7b391d0cbee6a793c66abfb09630fa8cf020e960c3b205aeb15029c95a6e558f90950a572a23a8b852507264ae2f86f5d1936a161ae61fee5d3763b8cfbf48d35dd1159895735b350881ec52e999c255a57d6b3ac0ffa935bd36284ea6b02820100484ad86e79415ea3c78af5f6c807cc99decfb14ca1e80c8e6a1ef00ee582d3d180774236a54ec9dc8dbcca51f4da4379cf634f3a07cea4b7748d7b5d94cacd4d474111f92d19f3ab5eb4def8dba57b990844efd28d85344666e283f5d5fb0e6e8d96f07411c882bf280446e49b3b9b15218fc24da34ce8f01e02735920ef48a343b4de11f99b26547a251afa7aaa69083c421e2447b1a989d50712bf8fc35882b63517c7c39843cf67b92645b68c6d8f90331600142e6cb97032a5af6ef7c20f87630c6b25dddeb57f2cc0cd8c8a0661b5f40ed6632989f5d40f33bbfd9be09374483606c2cd7ed8b5fcb8bf3df1f9368a13922b1240c0d25792505b857d3e8d]\n[sha = SHA-256]\n\n# tcId = 129\nmsg = \nresult = valid\nsig = 368105195f0dc82c2cd37e8edc6ddc0c983dc13ddcf6f9db9a24b52921e5280319a1bcf797f774066d643e5c99b811f0ad9df2a3f430f484", + "8a03ddb97e06daa4d01ddd50bf2b638935cd26b19d6ffccba884a4e7cba35830c6cc5ccce38bc0fcc4ea421347e241711a551c67923b3daaf2e9c51635d416cc2393a9a4f108f84f26990c11dbaacea75e39dc6082b539cd2c0c8dda6c78cbad12e14a352b9dd5c92a3702d8538fcce0e92e26489ea83d75c174ab671210fbc6c397be2167864b519b5136d23a4363ef773ebc140e1da4b0a788d7b1f15a300375ee42b27261675fdfc60c29bab7022dc2e624c7d1f31e278ac089c5880e701bec41f63c8f897c0cecc5eff0a801dbc58d7d4df6e860c20e61f31d9ab2d50e8fbec7471070d8ed06c4c9c725cb63afde0cc4475d3dcb7dcad7eabd874ddf7294cd9d2a66b13b6367a14dfe3827da0c6c8b9e734deece80fd79609ce5ce0a16de6610fd04a09b0b2411bae2bc3222ab4c02867838d0c8346c60589e6204b226efb401841fb95da05ff32989ef935425b943d1b5d2f8af5113491a36c60a98c90b6453144f5fe00a0df3de8d02f0f59c7b94ddc7c8895b1dff8d88f69a9a2cfbb55eda0837800950601fc9e230a5514c9674fb576df8391c51ba0febc29c267462ed5337326b6f40d243ad7d81459ecabbd00126b2142e6ba10d9f903a9918d2280c63ee84b47062e1\n\n# tcId = 130\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 46a6c9cd78e38d5567795dbea71872ac16da06725975cee7d8839d2de665ec3b8411277f3e026fd2f9b836d788b48539755858bc8be0804147b59c09354b372713145e5a000ac15744ccd2db5795727e2f4d5f67bcab5e7cb1290824963ae88528aba0e6785989c8adb86084d26dd1faea3ae2a6175739fe978b576eff673832e513419806d206e0984d1ef0e1c8d8981084ee2ee569806b003fb7f08e775998eba1771f1efa070c00a769363c6101d5c5fc6140f102469574cd09746130ed80d14eabcd0a0418a752d5595b5f40ee0fb05f5f9860e600d75fbdd53461f5ea18be5bd807281f9e8fd6cf7eb31985206c9a5033cdea631512bffdd977fee5e692b3153a2ce9c7708a9c7d665d84762740cc9ea374bd32c18c2d76320e4893a2fac374ca7122e01e08011c351bd33725a6adad96becd44e4ec1032fbfb0c8dcf13cae9556eaf419211d0149c574b8d12ffe5bc59468c7c549283be541697258af847e52a9aa8063557dfa40404adbaa95e38ad28eba053aec3c123e98ab1b947bb774841e9040dd5409068a2c8a84c530fc4273897ed845d76dbafbf45af1a8fd2767234fac1e852453d8b7eede02af228d8b5821238a50a321490dab74d687a3400c34f215b85823424c9d966b516cccac38fc7f08769f47d66c57b9b75ea67be82508a513946bcbc809436efc4ee85f139b143c5bc15ff69ad1f3667c3f69bcf\n\n# tcId = 131\nmsg = 54657374\nresult = valid\nsig = 43929c2fb0986fc4570a3ee7f6701b96a78ec9297a997415a142ae539031c0e196add5e4c6ec572de0a2b109cf23a42567ebe98f42cf312d07538e4a32b0f20403b662c652ba9e3d6e38a625d6b5e91cce5c810d7a02262338e144a57db4ac4debfc536e8eaca7fe08022a2f64741d66d25e3010f2fd259d4c6b00582584bbbdcde4266d86eddfd0443ff24b06cf7ade6d733c637a48a398dbb28355ffb9bd21a49de6b345ef635b68d917b5bfcb9016f7c64c444dc0036ecab8f59b0d29098facca02335df44db87d30d02f08553ffd0379b33d13d09a385cae7d63b6db52e9b1eb8fd549e0e1e18210de1d3e9527547e5c72f816eb36288b09d96db772f955ca46fc8cbdb6eea93c841e1075c00c3c45e9442d28095136cc5ce8212ed8c60c9668898ab5d64734d4d0f2311f104cf8a732e6d88fb2064cb57bd54d3cdef7c11c840ecb238466c747289233a317b73785778ff4349949da47c9b4b2dc9f89bd1fe7e98b582500dfc05dba3fa410cca66acd854669940543c22ed1038eac7f0212b9ce4aedba0eb15ea1e75a73c45c1ae03fd241662e9cb89b051939c468db3a0adab822617b5bc669d1e0226cf6b475445d9d5e77ef54ed646cd81f0952b949b7f4f37381ba6427e060966467a76e1d9261a5fe8c68398a89eb5025cc39339885b6c33dde898a159f0af4acc81461fae37f5f4c61de4a888dc4f6b1e2b7336f\n\n# tcId = 132\nmsg = 313233343030\nresult = valid\nsig = 0e207de1295caadb15098f51f5db90f9f000776055b107be58bd24d52a01d4171cb9e47a40790254f86a8a56c8ae38252f909aa3b9bbe7b7e1fed008105690d9afa647067ac122a272d30ac28213d2cd37b45cf81dc48d59e87d9ffaef6e1c9cf6ddf4ea5ff6123523c9cc885344b7e1ef4c8096bb542bc0fa5c47abaabca9a58ca85bcf092924741503a0f3c54c725c48855dc434b09d761f729051fb15af5612bdd387b4cd5019577327bb2e64edb065f713d50ff4285f1d184fe709207f809b9c38d064722897a868f8a09bfe1d33c80be0693e98d7e85600befb643e9f713584c716306731d7f8087dff66be1c4f6dddbc51b6ffe6034845cf0f88749e039ec314887c94648154f7c97235323bf78041ec2c8ee98ea7c553ecfec1f9fe89279c9c91ac6acd12ebe969da4c67fa6534ef9ace4b629c7b1de8c4ce1dc2b0f5bd7d416db6eb512a4dc8eda0322138cb7c65b9a58d712284e4aaf059db80af5785af4d83d391b7d8bdc4071636712410d1dde662478eada1a2f1f35786b78eec77b2788536108e7463d676814a91f81fd5e2084a8c1b1cc33988e73184110c6e6b0ef1de874104602eb33b5276ebbac95d91b943e25de6dfc66b31d8091961c78dcddd358de7f25584d9f74dc6271ff31294bee2cc9b2f97a2583c9b33243600500bc723b05d65839de7442895bd57a1dd508651a20e20f264d8dcb59d485247\n\n# tcId = 133\nmsg = 4d657373616765\nresult = valid\nsig = 0a882c367ff495646c21ef0489ce268d6c4e6cd0176bf9488d4b8edf04e1706f23d121b500b427eb8652099689429a08e73294cfd29694f9b4f33ebc8a7f9d0f9d11f114d0f848114d116ebcab828c7ed4c64d5ddce9958bd0883ae82ee2be0a185d54ae64690accd816971ea5ef80d7d601e72a814b9b61e8d00727a843ac90639f2c83cc7e2a9065ebea3e7aad3b12dd9ed8a1ee03a43e669598571490fd92b699d2941fda3af7271f8864c844f8efcbac20066c7bee682c644da2329db721ff33a7a81869a7bfb7a910fde6008e1bdb4e9ff989ff78fc0a9f43b38399083808fb3f38f0e96d4020bf8a4b329bbf81d59dffb03f5d1ea34276ddcccc2a4319393e1777488c843f9b0aef1fcab7a97e00d50f7f83bbfd30272c8ea4a5b0d7b74e7f7b70a9295d0e942e5b6e627ff8457d0f60c1aac8fe10b7d7ab1b8cd18d3904bfde2a316a83ee2b7633c3dee3141fbd61c8115f88ee7ca4b2b677d1803a1a35361c956c1adcfa8c8e10f0422eb3347b4983eff3c1c79e7da80a2e7c6d55e61f5af74254bd91db0d4bc10c3812513d832bd6a603a6bafd29cd5c062d9e3b74631f873fb3ab47e59791446e5f795d6ef5bbfa267a541d4405dc09e82c8b03f51db4798cc96dda7a7bce7ba9c679d851d5dd2e6b3735aaa2fcff0d558d68959c6af8b283fd383315762767cd0e4ef6e027020148cd3b14833cad4d92c2c9ce15\n\n# tcId = 134\nmsg = 61\nresult = valid\nsig = 374603f5d4728526e6cc7c7bfb6f456bd33bdabf37d942dfa8132a9479f6e4a9c2dfee515d883ace45cf1d660190e442a9ea7590d67aac9bde6951314af90baac21bed537c774148afb7927337d626525e13fa15664cdd78dfa5e3886ee1fe7137ad5f69aadcb098a0d49475b0f76ed1bb86cbd08a0cae9a6ec120eabd55b7e5c4456bfac2b2acc3892110b7f62c0dbe7ec7e491474c5c641453743fd70b15f7a726a0ca44a78bfaf3445a979bd4df362b7f29d4ed9189bfcdee01476cf1b48c2edaf02d226b41f587a8db161bd36e6ea20d64c8773fbe8c0296b9e016ccde333b380161a641d822bc65d3b60417534072263cd461a4f77826cbd0508ea11720081c34b12d80ef0963857624d48c53748f279bf6ad338ba564e35d37d1dea27d19ad5dcb76d6f4aac62e49eededb1121e06b9f78eb285f7d7ee2cd475e791cc04c029cb76e5b33743aca3ac3adf5e317d95aa79a2f0ac3c328e69ea4692661b8107d89eeaaf3be01122544fd9d0c61511e87c6a5507c5701655d35f71586badd55b26363b51f019896c03326c72332de5be8a0f146d630a6e747a906684c7dc59d3bda667c8a92432e879f6a4d91d3cdca89b9840285bd8a22e5e5bebc32011725f64cb5fcbade8a5f5f9ba372a9be7f0a4907e40b4d06feffee3a558fd023514b504308a1d821c41955c305f550ffdf005b9bd5dfce2d16d3d09bf17c156c4a\n\n# tcId = 135\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 401bf4e63be4259b54c5909797b2b01fca18a6f74d76fecf75535f2876079ad9ee56c653dafc3513eb02114f5c96efb4025cf58c2cd576d003f688b11458fe3df1657657ed52b2756a99b48c6722708ef11765c8da2f3b061c779f26a64fe13e4be4602d0ca2553793d36c23f3194705e34a75b9b91ff7f4e554c5907b85ecb561a8d22262aa3669cc7be2fc5c21b9170869ff52dcba46b2b1c688e4c04e7a8f099e3a4196863bd1e828fb5ea5443b64b190327622055d44ff4c9999601338e56c175c716abf8d6c2ce6b9ef17930e846745e751f882ffb3f0b1a20e68ce9083d1466295caacdce85bd4a34615d09f2051839ff83650708888db818aca9229c38ddef86848a2c0c88b86a2f5a1079dcf0e888be62e116850b7e8d06785627fca1899f6d7c02eb60c3bae0d538cde8a05ef7281bba7f35757360ffa79fdd08642b6af5aaf8c71a32aecd0e9f3d9a2ef164da1740a5c2dd7943603bafde05e38f2ba78c15c3eef13a5059f3f242f07af2e6044896d1d6d9810ed3fb8203ca4efc116e95d2f53be8c55fc1ce653f02597c0df7d4a7dd88b41c2a65e40bf5dafbef2a97e4dc3bb49445774cac283ae131c08492c9715712f998241e16eb776915f15b7e9544ccf1dc220a9e139defd63cb2951090808395ce56555a7cdab4564d82151ddc0ba00db24454f2174bf0fe7ffe6e2d9d82a92437890bcae1601dbcea29a\n\n# tcId = 136\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 3b24aa8966f2e4b1e3b08b60479b69d415d679ad786e527c41c5059ef17b4df55951f3e7fa55f46c3b88888437747c9a90c26581461958fded191cd881adabb7afb8f9f19", + "5181408dc3332c916bdb1f4655eb17e9e481a2c647e56df365605908402739056f0df65e09b6d9594e0a57172c91be078f306f59d3d861a1abd9374a5ece07f86659ac9e40d5d4d8f73105464b3b86f45ccff1a4b30e7a7fe829e22bbe4e9e3d2b53c5969a3fe364a4caa0e69c5b0135cb5ba73a87d804f6a475b95f255a0a8c7f0c81c98ada1c72403b691b8853dee397337cffb707eb962ecc9e8af2f21cc014167fd56854b61f82bf32097182f4d36cf34c28b2303d9715046618c9dc2adf759ec8ac5829a8ca162c98e0fcc18bafb98965f655950e66d9e0083a1e1c452a4ee89d6b34b3fdb54bc8da0be3210d888640fa1ee86cbb04158b6b6100f41ac8ec671566779cb99f26dd1992a5a7dbdae7e61d85abe48a52d32b4c4acd452cd58c842c71de44ef94b3d19c53e1db1a0041f199409bf11b27a6ad0830aa18097e8c5d25d42fc2e4826649ce7603ca8321ef56cdd7aa64e5938b18eeb2f468aefc73b33ec333ec8c889b8378b83fc717ad28702ff5116c23f7e7bf18d1e4781a4f7b7fe803f382b50ea02b8c60321318abdb48d04432c924ba852e269f61eda1fd39baca88bc3c89621b60e03d82f41647ef4a78c9fe1976cfeee8ec3\n\n[d = 0085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb0011]\n[e = 010001]\n[keyAsn = 3082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keysize = 4096]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[privateKeyPkcs8 = 30820945020100300d06092a864886f70d01010105000482092f3082092b0201000282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001028202010085f99393b1ad30ceb4bf78e3a85abcaccc1387e45902c965384fa2453f968924e904b6dae0c38d7ba5095c838c45e879bd64ee6ec58c7c8c308f2972c8f246fef33e70307e6725145252641af32cde219b766829ba8f33cde7266749d8b4ed1962c0f8005bdaa8b65b16001323c5b11fc068d14c554ae4465b58029029c30754963d56a09b17c1e9f46643bce824b693fcc9bfa45b9fa2bf2d0823cb9580071d762a049251baddbda74a303f859197fdf27a1e90227953ec7d305f9ec620eb968fdc531cbcd060a7496e229f37144f52ae17eb70a0108098110c7b8474a430c4672347a0c6f6597832423f8b171a6871c8eb62ad5f9ab26a446926ec88ca73d8c5f7c1233519132a6da0f3b75e527107d4699e7edc9e1d028c117cd6cd5a84c057a9b57b3b7c1571af8023336ced6ee72f19ac3b92b21429d3db940ac3871b781d9c2ba70184f7b6386e4d4e16340285f5e22e892d47e0475a1bce4d7e8dc2c9580cd8684e41422165eb3cb15ad67b2fb9ee4fb63482ab838c10ecfa15730a692f8d0f1ca74078bff70015b3a1ead8bdb897272418f6f25e7c033c1429514adfaff7dbe68623f7d17f40f326749fdd4fab0c24bfe90c17be87a49899c15d83d524f04c0f5510adab43c9ddf80e1bb4b68b700a08667468824b5b5d358660b0c278ed9cf8f586584887e20657a60f7c4150f53e8c9f8ae6f3b546d84135fb00110282010100f8dbab5ac0479b00c69751ffcd0de5e398deb0bf0cf19a659e09b6acc4c569785901b75889e27a6cee8a309708a6d68a51bd93e8b25b86a5c2150b4fff9620974daa6814c3601dce8fdccce1abe6e6737c948fd9b7c8a3d9032a339bc6ee848ee4fa54f513c3575b7a89325f7c97b1beb5b606fe96f2b3293f4ceac194c090134ef930a04882f1e96838c2827d8ea512cf474a4b5640f46ee2580df8b59a6afca4c1e1f9a3ba82232b9db27e9f2b48d5181ec781df795aa87e84ad15e095fe43d46a6edb0d47d62864877692c754c2935478677fe4ce9a4290639d8a448e7e2c393bc5404f14dd37eb66b4b23ffd071d346fd6e59d32f0ae1c1029f656d74f670282010100ea373dcc568d1345b0381de192171c20d8c8c32c5a5bacb84abd72cb96fec492fe4ed35d7a65e5739d859fb99e2b2e43c590c78ecb9c07a40d7793aa78dcb31de236b9735b6f2f09cea70ea921275a812821bcbe3869b8883beb2409334f8e0a96f4528157de3f23318240e65d3dca9a3d43de08345bc2ece4bac68c7a21d29c5acfa230c518c987363c37acd2b6f6cbd69fff99d3a619c6268be013d3a8b96c2817e606863d3d8c", + "123306fe7f6b8dc027daba68a6784bff414b352649bc7769eb9f61c02bb8c7627814484f2799233c81898c679256f10bcabef4684ec84b259df1751a49a153c0e84357ee8cc9e35e9e5616af9b00404e55452b2df08795070282010100c3b4650e6a562594b7987ad8f31671eac9e69f12b0083486a3813a12a67025608a86a9fc4bfb3a91fe09d8ea7dd84eb1da547f442937872d45f32cc14ddb6f67eda10c56ffcacfc60926f84ca4d661f7024b06d18e1190a0f23736fcd3b5f1b33a698f7468855f66c677ac90a137de857efb5686d288acd2cc401e01fc8c6f017042d1b5cb3087342a4d30d2541160c9e90e4463f8c1fe38517234129a2684ea885b1cee288f5d16718f83b6c64fd0e81c1ee080c710f575ba817668d504c03ff1857e06706c4503e10313019d16902a32ecb9603fbd265d2095e667bd405e03434338fd38f3cc80d47421b86850014f3b5494a8603696462635a3fa6112d4130282010100b43f772bbea02b68c2492d95df5c31a585b05ba3d29622c261a292a9e3b68589aa74f76d45390df08015c9ea8bb32793b883c750399a06b75635e44a99611fe7aba3f9ecb13d4bb1fc7bcc6894bf38839563016252ffe9a7ce9513d290ce74bde99675b85ceb09240881f9784fe1b1fe2990055bc30fab5fac57a15d92d05cc93f89f3841ceb0a8d284c077cd55d416975ef04425a03c66a1c582146a0e984699c2168413526042bbc05d12822df9ee376c87a14f7a834b468877c8bcecb600affee54c813ddcc74177d6478a63cd0454c5b92d65264de74f8bf2450f1f06b04b41c92c67c4bcfacf21281a5706c1eb33e9f7a2e02d79aa5ae31e11d25b2f21902820101008d2fd00d16cfa3fdbb3a99581cc4cf3e6e31ed69dcddc62a989530f859acb06ddf0aa8d61020d6f700a7ce71916b409c963e02d96a8ff7ed15f091650913cd0c49903d8d036f3d21914ec934d8080f891be53c45666a813b6f5d8e5f22ac202cc1a0c5131f06e5fb47e0c25a5599a08d285e02a4ed2611fab47efe0b27604bf8717ec11535b02df6920bc87e60d3b172d7d70ebf0482ac59d4f6d34124fcf460165fe06fae276a5dc9c6407e691ccb3fd675430be6be036ca1882eb48aafe0a3be03e0f6f9a35bbec7b1be5452eeb21dea824270d906472a9a1fb386a0acd99d9df4d3cf28ec3a1dbcec0efb27296b0f540efa695828643b95c32d017bfc5275]\n[sha = SHA-384]\n\n# tcId = 137\nmsg = \nresult = valid\nsig = a454390b04bfdd69c4be2ad1bad96ec901639f0bb60df268415b4a93b4cd53510fe64f394b319e66ca8605d7d5f7a05dae5eff827060013503d857a977c09ef742525e43b7e69d3802a58206e696848a87ee17b2b9de6829044349036554c659c8f8866c401fe85869c0a5ea90739c4983a1561a84e4f0bceb00015a671f5283f41f0bb8599774829b6a2de24f14d83351c96e35ae1475c8b4bcd2cf66889237a206d147b0e949f2b2028ead379c74203017904ac09a5561a8ec343be22cf46c3bc2a87b12cf9cf6e8fb22de884bdd9677626b757a005d3745f387d296347d3852ddc2c4258cf572dc40df3ff6a8a5f9d8b1b410c54739b9ae182611ec01805c80b445d058ce2afc4bd58d87c03fc9500fba237bcbedb0960a1a02efef52b97cddac63b5eb0481c0c0991375735338ac84c0505415ad2bf8e7a819ad269460668ba8f8c879f521ec9dc709e406de023fc0f9129a3a94eb1f3af08d33eed6273e5166f31110097f5558d8d9028ff558e627c9c0db2454b134a82a9dacca5b4032bc0e27c4d41cf55e9d89cf51528bb4f08c6ee5ce651af3772f008a44863c851933a57cac8e29a84756c9fa7f80435b3b78486f9908512902d5461964918239c76b6790b780e09d2f1d3db1c59b275d20bb24fa4f518b25af3254b61d34ed8b444d3ca736ceffdddaf767bdc92b4543f68b25421cb8c1328f2f253e446be46d10\n\n# tcId = 138\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 909c1f13b544933ccf3bc73ff5053a8a65a8f01b447d4b40f109cbde29d866368aaebf46c19051092063993862b32fd166006bdd4d988794d4e9a77821fc9e684fab1366a2d988eaca60e4fa8ea947dbc4b8438a9fc036691107d3d0be52c46c61342ef8fb7e08032921c1b455c55de28d58c77c1eaea03f13c26c4cea73d14acfa8ac2907f6a775273e7686ecf4b882b88a42cba11cd1efa5b985cf5a227654e54cdc9e2d283b80d250cce553fda636279336ba13f7f3659d70b5b2995a2ac7b60f329c62790d8eed1c3dacccd0df468a91e767c190be41a028d4efc1c5ed5e6f3a77930f50217fde9ce9ccb66b75731957959834839fa3bdc1a769fabebab03d3f0e605a12aa9fccb2a9421591a7427d82068623582de592935904b59a42e59b50419cd12d71da871862149a6500ec6870d989423346879551e506fada7c0c01b328244ac5f2e2c5bcbf4b5b09a4512a0edc90fee4d4dd9eb88582bfe37b49b8d8189051b32cccbc4d300284f9e523674a601b1a725722695d5ef438b770b575b6d0955edc761250bcc6a30e8d5c7287093236f223c2da8d9ab7d6b58e5d0e9167f2e8c58255ed16b63789ea16046bd0f987b156e9898076d444cc7a4aadc76699a2e3a442d63ca4c3f92da9f3b2c4ae13edf9d4e28ad206ed0cbd2df2a46920e298abd1904877b75c1a9ff80c5bf05bc5d1ab94d379d064fad894918ce326\n\n# tcId = 139\nmsg = 54657374\nresult = valid\nsig = 65956121a818b842d861d0dbcbdef22aa05c7e94ce5d748308663e142881feadb85dc4421d9d01833b8b4c2713842c77949cee8b853286107c655de7778a5acca11afbf1d9dad429eb6a281c1e8ae1cfd37cdf530fd4f2b765c352bcea26ce44e2165c36553318d89b1e06ffd8a210cb988cbfc916a9401fbdaa56a1a2a4cb66ef00a3176182d33dec5f3625b760c37c82cf618cd2875079a36015af21d060dffeb5c9e1f4255d7fea64386d8d860c6868cd79ef6d7a87927753a78bdb63c4845306de1d73c5d7dccbb6cca9b65aef19a7b9e53d9c02a4a2bd6910e076959f9f40c30eaa0a6ef783c0b73f05566e4492e16b832729e03fc939e54bf0336d376a3b4cda534bee446dad3fe51d20bb8a135103e7e12220484bbe02e99c5803282ab90d11063e5243297f80d3f24ab08fe8f2fb62702b0543f0203972d35287ba64facbc635cb438a888c83c7028a325555f07521c3095bc4e38bd0f60eb90828319777fea2276e0bc76f2c13ebf92f802a08844209ccddd2aac1f2700e8a5107e86426e6ab76288fa01de18b8a63551fbe8705824d16e5190c559c7bbe8a17031e7d352a681b0418cb36423632ec48a8d3861136b250ad2fc72388e771b41849893cdbffe04aac4037209944ff3174f86f7a88414b1666727c960b1e54a2cdb82e39cf9f2661f4ad6e22f330b350eae7f588a623524617b1846486fe9f04abbf5e\n\n# tcId = 140\nmsg = 313233343030\nresult = valid\nsig = 3b35a042a4791dc1ac1561ad1038750bb9a575a7ff72db2ee60ba027f8994bcbabe41fed36417bd139a286ed0aa6c3ef2868a7251442d060c1cc67d4470c3ab7c307acb0c0641218a45b9cdde05546653850c2168a59f1788cd55dacd40afe38eb941ff08ffa8bbe609f2aa795c73c0368f482d53d691980891ba43b69f5791c2e6f70e17a996a299e60ce1c9d44ebb9f29e700e9ae216df749149f6c222d1e1733953553a792745c382d44f52ff404ed5ee04c41ac8acc97c250f9a5e3cc6d70902d51e8ac000d05e36279d83491dfe6a40f222bc1dfcfa7fa5e0197cf47528f77719e007b65ca39dae17bd0f323b00ee63b66401e2ec5f8917ef600a41c3a61571a4d922c0b0ad0a290ee054ad15e63f1a0cafb749f80cae6cbeb06be62e1608b502182d247bc6a37abe5fd750ead8b7216a35e74b969005309b14be36a31c5e6c2266701d5afdb5ca2314e2f32ae17387d8284ad2c7225fa63ed47e7245a65b74f53a5bd22654b3878ed09b1e5e070bc20eefac6c95b006b8f3e613b19f518c48ee6781a12bd08ad36ba384d03d3ea3c4e0b1facc39741f9ec73d0335d2ee735355955ed12cf8b999d155d389b1a3caebdfbba32c883ef7d0e112d86e6149a3328b63b9385c68fe8a7b679e8436aef7466067a8e8bb49e31675729b3f448e7dd3c048973d2a5f8f7173c4428f3982a99361fa691d1588e39cd4485c450158\n\n# tcId = 141\nmsg = 4d657373616765\nresult = valid\nsig = 09d8512c4667994623530a2317bbda738eb8917bc80c84b64793351463da171bccc88b95049a57ccd917a4687da3be63db21b0ad0972ed9ed182f4ecc8e06647675340192a57e6591eacbf15d2f5fbdcab568b16ed86e668144d9e676e55ec4df1dce61f672de9f53d1743b72993a5d21ffeb7ab58e0f83e297cccbf25ed68c70dd8441c119afb6c07fb1d83edd9bc1ac34046733c8b827d002c3b6072d74a6c2cf7f1d968e9f7b0873de8ee5adf902dc68fbc93171f763c425964ea6e3af6691f1a303ff7837adb07a09f728de3377fff74adb34c959d363db650fa5c3035febfe8c62a0cde3d006a9d34d51c5b2c4a1dd4f2423c532c6b5fddf03e0a05fdf8d857f98787d6f55f0ce1d0ca95a37177657035ee48bd4f39f7d520ccc48ee999777868b4c3876e2242f59b725798bca28ae66c267c507cd65fde612c1fdc9362994ee31134d5561ad7c3f523858f43611c249cca3c134d00ed966a82b800da11add213731b58caf232fb2094e9dd42ceaffc7002f1592e79b85eb6e39ed5de8484f5509e0f54166426095e8522f88363fd0dd7bf64414011a710c7834958c0aa308189819cd4488588b84729dafe163e79856b913ef55afed55e83ee5b812579b87cdb80d5bc9ffa02ec32a0d97b0a56bfaead58a438cee53d40dd197fa2eeef4aff98eb5590163e68b5f3de443909769080c8a6bf87e3808bf265a41a3b79f8\n\n# tcId = 142\nmsg = 61\nresult = valid\nsig = 798f597e9ad4ba8b3d00a9527f4e785af5c55994e2953046a1b9062945e8dfa35eedb1e31af3daf1955d7b0afe74fbc53739b1aa02fa2dba629c31b211cd513e2248ed847dd579406ab603d3369de3bb07143a581734fd8b1ca0358c4fda639045be1f192b233efb8848bb2c544e4e188e0c7ce311bb4841077d15051c6f6b31998ddd8a7bd30d75b7b3c824358bccb35f8ffa8c0fc5ac37ed71cdd48ed3c0269a638317756bdc9287043be1b4f3c6ef6423f1d0d38857c195e7be81c3778648ab889474109ff3c7be0fec790d3f5f50b966e3df40c566f572f8f252d09e97d4c90442badf820c7db74d6fbb004bd7eb53c0b1a871bb9f480821bbb48b363c85c9866bf8a86de9c6732a3136f2c80e88a29540a9036b72fb8f4c898e7b487c41d0f693c91309bb3bc06f1e3b2fa9918c31ba2a4b82a37a927784a7c7d2aadc3301524ce2708774c3e2189ca188b3d85a33348d28ed6f080a06452bf8316d483e6a5e28b831797f85a8ca5ca922bcd94b9045f588ea9e15f2a20dd26817eeb80b3421c5de72db98843dc719cfb1aff1f927ee1df1bb718732159bec70d5b6d0f98a3fd5d42c31ecf4124cb1759f183838d676eca2cadb4d57f2d6a52cd0115ffec0fd79c99aa78df8c6b54797a590bfefd4c34e4c3f39750ba47f4d8002a131b870ff8e65c6c37b75e5c", + "54c8a2bc2fdacedb41f30ed8bc9029819b7064b6514a1\n\n# tcId = 143\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 41fa907da9f78e107b58ff6c4ac0e92a9bbc7f5b510260572fce4ef047c73cab3fb0d00b353b4cb9256dddad432c5815652bd83c78e657075781140de56189ecfbe1601f24bdce05c63f511a3d04673d24c4e943695d7812aad66f374a74a906177dc729090070cb5d6d518e7045f4cdece06ce2ae42e1177c46856a8425e60bb06040400c8ba0efb8d4f395a4377d4c2c128c68e6b30e358a73d9904d7aa1e517ef396526cb64d39b3b36ed7204b3bab1d91b23ca95b2ca1da3eee91c7d27b4e4e658fbf5060a79cce69be1d95252b0d7d7220797a53982dc371372969d4e06556507e7e7870a9efd9e03766702f217be1c8f7f80006c08d13e175040cf28b215deac6a1ebf3520a3ad9e91f9072dfe50c69d1aa5a0df73ad63f72831b055f2367ea35cfe676a4f7970bc85e2b58917d1bd449ed3d274ac40f7a515e261df3d067a277ae610e4ee4cf68b3a947ae8c8339c818ed10e73b6480577b2a13722023cbb09d3b378cfb71f6c86bd481ee09a1fcbb807338e968aa5af993697eab562aa4975562eea6b1169e86c75ef13e877cfcd4608994eadedea3eba55af19a7a55b19e92b974450a593cde717bf0d7ddbf0bbe8fef90816fecf86ec522a2d06a04ebbc50a1eafd67aa461a8a9cd705ece0bbb46cf773689cc19cd69607594fd2ebde06aaa1e34ebec001edf318fa22245876461fc46126172db41ae9ecd74700e\n\n# tcId = 144\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = 385984faee8f784463a2afb790e000860c181993b90919cd22b429d6f1e46d1ddb7eef75c81016274dc46f15a92aa8251366a6de1a26f3e73c89d81bac6569a554204cac547b65402e019adbd0db9c03664d3b15b8ed008f81a7be06c3736575490b1ec8b9d2f8aafab76142d1f6320c3450f65d32599c5805794705d546b0f5a19cde112097910a95e54b636a2459f52e6e01d96263467297e2d7683a797216059ad537aae8975d205fad6aabc8430f86d2e76154f12553a41eb6c59cf60fd50fc3fca5bbddaa6910b1a0cc6b4eb6aff583ba8533a2e5c39b0b9280353a0a4fa72cabffebb3bbe52c9bc87c86062bdf577d4cc03419b73fe42ebd72ce0d4b5fdb40fcadcec32c92e63325d3593fff1004b2d015dd99a53abb6e29544230313dccfd8a777c454fcd88da7d8c72258c85a7e9a2b556f07054774cc85c5b381d92fefa842134e2c1b0a3fe06cbc7ac9d777a2eec27c9799ed98a971bc5ac904cc6bab9cc51515911ec3a6f3320bc5990e37e9087b1778f7c23a5598b3a280686479b3337dd399925e2ce0e7b81412623a16d1fce014bf194b78073b640c1cf008446ae7c618563b4c9b327641975c93da1e1001a0abdb73d05489cd3051e2e1c04382e1f93bc17689e5b6802421223e00f4ca98f9140dab27738d9d7148cec0200e876f867263d06c690487c85cfc70710b9a01d06ffdbcb4c9b16bbbf719952fe\n\n[d = 7bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c9]\n[e = 010001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[privateKeyPkcs8 = 30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3", + "0203010001028202007bb0b14b4fa435505b69876e65a3a3f8892d61dda53709f4257aed4c8aa91f2351cca74cda1989c898c88e4a4dc60c583fe2e5f73852933bb13942bef04b4af985f8e56fec2d282ed9ce56f27e452bfdc4ff6e7295d95251c264a36743c14fce78a2f4ac6bf8ba0a8ac5f88c82524a1610abe7548b7f6a97bc744473ded26370bff86f966885ea31787b058197ab58830ea477fb600bcab4e2f133a613f9f125319d272ea5ea323fbea830ee146725a86133c4167c63ef899edebd2f91769329181325b5748a1146407901a8d8bf66da94dea20e64dd3c12ad7251df719dddf3fe882b6a22a30ad1061853f748dd83a72839adbd885710cff95d554c1bcf043dbb3feef19d498e7d8db5caed36bd0d44470fe7d7d1a1b0eb4c391a0736bbfe04846ac98d6243a4e3e58b57549ff7f54c92f103b33c9db04fbc6b36fdf5191567a79bb35a0be94a45480cfc28d377be27da9c2c3cc0bb2a4e910ae44233305af6a87387aab762c63d969714be53c0b8a26bd20cd63761b373b815330eb92a1fa7e6ab827276335dfec94146548d073ec828f3793a84cafa12126196a33f5fa2f4f2f6470093e99b2b2d91f2ff9240580965480d56c74be39bf42408a0e41ef60dc080898ce3eb530d87b4da4673977055e83d6504a89d60fb2f49703936a2fb391fdc39d59608d500870511b458c9e45e53398db152d3871f18d61b9afa4435c90282010100e97acd5f64c460b2cd51cbd70af5b4caa2882bf6033a92a23ed80f039e8a32c8a4c483f94ee1bb89c1dc1f6d04360a1c3f654251ad72eb39cccbfc38b072054bb0f21b9d516ef272e7cf86f8a8f838eba829e7fe9d803d469a1810fc5b37476333ddfc0cb6f00e9967970b4e474e04373f8dc92df50fa155e3139bfebf4e1cd274705551f2e9022029bea4b86664633d13fd90ebdd0b72d95a6508b6b4354e64b187fd81d21a0b1e4a853c27df11d7fe6c8953cff6344f50ebaed2513dc03761e8877c71ffa8005331043027b8dfdba97cae037fd5d1fda1f145a200c0d20f8dccd62e5c489eea8ae827910d3f48bddf0b18dc3089069f96d800de47036859550282010100dd1abc951ff1474ebfb70807b160b110b1eccef429c8fc8535ab0aa98376a82d3d33af906fb0395750b9aaccd8723cf73a8c3a6ad5c3a0929178ac55e1bd1ba1bf5da4f7698dbf09e87c84c45ecbbe8f12d3ed1091bc470eb2c733c31f8d27eba9718ee78db887385bff6b67950b79524482c50daead4db0f5676e4b92875b5be383ab1cd75e1cadb59cfb5794c17220154aca808f733a636d28c016d9843940bf44bb15ed191f53449b1651b79554c23e006a56dc0232cca209bf2d3c12cbbc0ed8b3110aabd365b603ea8cdf15e8b9ac781155f92f39dbf9749f70df003195a6bb169ea0e0d69eb3a18ce8fbcac9be3c710e797acb5c05a399c2f102947c870282010062f25622fd53741f927ffdc10eb5fe7e79cef7c274afd800c65d4e4f9c5ab916eb2d15390cc301756a20dd7897f646e69dbf4e11cb4e0e7e1a5ac0734de3a476e570555fa069427a8bdf19363c75a5b9c934a94af078ae7f4342bbc016f02062dc5251451a2a3625b10f040d928e6f9ef262264641baf406b00b596ae6ac35eec2c5f082a04d3b476229972946cb787b2403abed296a76abc2715af602fd2c51e422dbbeaec9b6b889a0595414673d806782f37008c9366bf6d5c9f000197bdf146a86c4d131e3a15dfe8661ef297fb01e54a8cafe54d6065177cf263e91476232d2fa26c5e80342070ced9e0d99c84dc4282ef8aab991dc9d8210b14bb267590282010100b83b9f0763265894758abd562ba6b5e3835e1ed3b43d94ac2a9beab674a45a5dd7b14988c087c63fcb33e9ede62cca3ff6b901b4238a6e31b2a52a742534bde178e33ea22981c2bd2ecb1295cda757913fcef6a9e7c54a302527772a0f103f434e5d21063040a1eb843cbff1ff6f20183c9dfa33fc68cb63b81806ff518917c6e93cbd47baece0589e0bc022aa00c66795564c85f301c095384fcc3f3ddfbf15044af0d8c4473aa2d777a29154b74978d0d0e7ca9867fc8c263898e3c83aa12881f66ebeb4759820181a0b46765c7b1ebb67108ae2a7473ed40d290d93c3458dbcf00759061452c0ca4cc26d1fe149590a63e9fbaf25e3f78eea8054f22167e10282010100c301f6bbe5fb5693f665b26d1a61e1de87e38950a5825270ee68ea5a5667e11a3aed28b2266768d1a3db3437dbda681ac8294dd50ad0b4bc5cee5694831b8df7354695335740b9b7dae5f7881536da6a6b2ac4308a0420ad6e99cb779a6338f5012986b1c1c889444d90585fb0dac995ad6e93af7eac717c643c4b8e7023cf57cfe284ca911d6dc3132b08e17f4e8759af42b43ac929c0259c3a1d5e5f7c4b247e2f6461aeff8577aedc710d6d2d56d943c211e47467421539dfc2700663c4068031b695e487ae6910ecb9c547cbfe12cc6f45b658e2c6f9f8fbe805304194a9d1d9c6d599c5ac5c9ee5fa78c8a4583218f7dc8f4c8d3adf275eec0e0941fa69]\n[sha = SHA-512]\n\n# tcId = 145\nmsg = \nresult = valid\nsig = 9cd28bf41b99fa4df2852d86536257fe111f63f01815146c057dc3bda9b6633e49495d38822392b6b901e6ac69c4f09623a524e49246c3710c85a1957943d89c8399b0c2a649938bb07340f14c6981a0da0fd35163bc7eedac80ad1cbf06a4c32a4a08523554256eb221395c76e1f79a5e3c5b9636673db3ba27eebf8315468888671f8441324e092124df31d396ad8367eb7c9d0afa44dae85d56208ba21ec7c1f0ed6a3678f5d97ba7089422c662d86cd514fe853f38481632197c1ba07e4d92735eef3b75afc25ffa900769c74ba34f2d157e74bbab64cf413bc858cf6c393e8afe24f9e71168e97db96717d0081d88a27257d8c692dd0e001f3fdc2090512550ad38725c10a201fc50f8dc89ecf363b4d21a7d815eb78557d42e657cb44bfc785203e8de00f9e18af1c8e12953a33b0717af215d9b04b71fc320bdf4d558faf55d03d30844237551e35ed6606bc706ca43a47e6c493e14719049065eb8e00760283ee72c1ae3ce019ce3263a90b8340d1a47b49b78d5cae9602539b379186e5c1e847b69c75152036c8d9ef3c77ecd151bdae7ff36a459d0bbc1dfa33ce3dcd94ee2cf6ee08a77485746306ed987eebaae2baa544b543b5afe143e4122ade5adfa4fd463a246f29482dce7a51573aa18fce87f7edde842e7f21ff9e40c4101b922616ee4c14ea1af3c4d417fe8876af381027d837fc40dc684e81b9eecd4\n\n# tcId = 146\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 659ffcbf6b22f5d201fa4114077aa7df32b513a1fa5948ee01f6e21c1862a2b91863f7aa53d1aadcab9347955210a91829a5f7c86b3e2850bd1f76b3c4f4333615ceb22830a7a9d7a13436683a48995bfd62f528ef4959d30b6ddcc8ed2a431c06c337250f8274417f6369b7a08b927885df52bd7370d3675094bf1bd32a7f5b0ca9a399a59f868cfb78f87b8647ab37d0d7a58d6f4a58f3e3df7ae88ddfa6470050229754f4ccfa265cec0635f0360c485d8f81974c6b8a11adce3775dd01936b82db37641ecf5f43cb8538055a053d4085c38a8a1c4e0c8af961448a779288c5efaab1eb4401c8f388c0b729e42243d935df1ad3705c1c5a7ffb6ea8ce77a69481a3b930f95ff118cd0fdb17393a37139b3b5a9c275c6bbbc819e18f49c369153bf1f7807b450e54fc28065a6ab6d5b0ee91d0a9302ebc0bccd35c2fb2fefc341a954b67e91f6d8f3f7b62c5fbe504508594f357b1ed951fcac7043a082b9bbf41ccf609881861e2de15ee99d373c0e99027ff240c0b6fa52be2e199967860baffbe25b3254fcd375da7152bb94ce8dd01465290fbcdea0838a69576e97e63cb636db79c2799a26f94a9fb044e3bf66c520895b4683bd799e6b04ab62f621dc00f20a4adb131606f127b84025269466c760181d7dd9ffd0aa5381180b541e5e933e1841d6386ec55a63bd9d8674a775526d30dbe34e4db87067a9326c6dba0\n\n# tcId = 147\nmsg = 54657374\nresult = valid\nsig = 46eaa4624a4d2c1f1043eb3d17b48d977819a8796f48f20174c50da624c657e64d3154dcfa2a5b1d8c6d2ed07cf1f1c19aaa611d6466f7e7ec73df5ee786573adc5a9e3c1d0a25559dad282db26e889807764115a05a23959acf48d23b3b33a93d8b6c7de3ee446f113eef96055d285fdfd27888e569c50f022d5e8abafc874dd5a61df6258e85268bff66cc5643107f7d9097496caedc185b37311ab6979f273e5670f143146b68e44b49389554772c1ca7bb7a12fcf67d67a1fd0c245bb4cbb924276ae756098599392cde076a1c0edc8096d9125e5a5d30c2a93d00fe2e0362e98592c8fd31ab5b4c3b34e65d38ca0c25874eb394e04969982b70932616b75ee2912c6a07f20ec70e52be630ebe024c0622aed125e00bc84980416b80cba7752eb90af2b8215c4b559880d2e1c577b7374531038083725d23d02d4fa5d8b5a4c68e9ea5e11fe2d9e03c1b8a4db0b053097b5a175b1131e8beef5d559bcc3f17ed2e6f6304c0e4650a2bb675aa8de44af8a2e301734584eea145c4b389f6180e6395412ae70e57f488ed15d45895be580bd87cd916b8f20e46ad2fff0367dda54266778bb444c6e4fdd45fa62cae3aeb54b6a7a6b4d8068e3a4d0730f0260340a6c32c3c5d33f514612c941bb63d730df5584933e12546500495b5ed3ba3631a3db871d17353d4c16676a0332ba4c4c4c68cdb6ff21ff737ee249be153c1d9\n\n# tcId = 148\nmsg = 313233343030\nresult = valid\nsig = 12813153b37fa6c0fd755a1c7c409bb8169c5a39d045dff2da02b2f8e8897b0cdc6c2d40e6945b97006f18e1b26983f77b70bf2961b5e5f2759241daee8c56fca7c53c81f69d3a0341720d9761a4f7be8c068464e881c85a2c39e0ac6f74f6f5cb42df8c3713f66a282d7fba85b7a09a6af83a068b78bfe83ab25841e4bc67c9e40cf2a0974f8875fb81cc6a115b91f922419c44ea82b33187521a7e1f46c0ab9459b4e97a3f4a1d9e92403a37168826fa0ee914232afb6c4d7dd082d0c58885e356d0efb8aa9ae33d045f24b4b3182d5c54556f5838c449d31a49a3ac4ba568c248ed72c111b5ffabd991ebf5c48efbca33cb38996d584992c4abdcc7b93700ca03619412a355b41b000a32f6cc4935f942209b56a23cfb7b788dceb692343995f77daffa25e44d672f8bc451f776560b415d0d1bfe9925af1c2567a8e9bd15b8554d93377c62b0addabd27e8d9e0859f498ba8e03094e1d86d41e69f7606d9f1fac04744c3b7b8fc4942a846e2a3649bd9416d500b9895455fb6741ed8ed4f426f20ab40d8ab2e6cf6c63f5c290fc011768b317bde49753efbdfd12583f1ca79287225f9c3d3ed0c4530815e4f5e7ed78d14aec0d04142d0ac0fa3bb5d73b4bfda2fe7103a2ab40672abf08ef4d9e537b9f856d32450e2e41d9277be62ad0675d1a530709f2747f51f17aba10381fdc70c626bab45d51166b6f6ad978d2dee\n\n# tcId = 149\nmsg = 4d657373616765\nresult = valid\nsig = 27a042625f50673fe9edab9aa2fb4c60dcae0be2e8b75662bdddec7b1d698065510a193e17981bb0b1c32e46d237e15915afe2e2d4890c09907e1866095c19763524b6c8d2db", + "b7814ac5047f0a082f7fed4109741f4719e12ebb91f27a3cda71e80ec8a7f6c882ea5b3de3c9f156cff033a0d3cf787f9a8a833a29d0c96f0b68ccf55ffc62098e21f0df1832b70878dc94ef1a3260ec2fa56dd3c4fece5d855644d26012f56d2af85a0771d61367b7e266577e44c444347970908ab6cfae42069e2ceedf63679c2bd03697957e287d156b2717a416f0e4ad96868e1c7b80eb84e99778f670ca39c15e1f901def1efd824ea5f7bbe127dce8c8f53d849fe1172a1254caec13b10b0612e72d3f8e7206eee2620e8e3c0ea176deb4b1fdf5d8d37b57af553cf7628ead74443f98655b5166cdc08190d7e3b134d71c21bfacde3e4673529e6d8a9c7a8b419451e7ecc6c16a44b8e1b3f2c9d1c822df8f2b51d8fd027074ab2d1c52d16aab0a266c7d9ec03df7e631052e67a28963bf8560e89326168bb7c8f5a152f7ac54a46e88190c62a938628950df881a4be4136a55bad4f608d39ff37907a6f99bdee065e5ccd2921f8f1a2ebafcb336fc6ca96a207a5a0a7873420a2ea383a5f1c604c93b6c0ac69244f05d54cab184c6592e9bc4069df60d3cbcbf16729dc2f3f3540474890abef29e1b21dee8af0386ab61784d7af8d79c\n\n# tcId = 150\nmsg = 61\nresult = valid\nsig = 2e642b8a5208890b52187729c43a1a308cf6b846ba1c2fff152ff4a1b051753f14ab035c2f3f732d5a9df7c2cb732d09f8147509bf02df8ad26924eeb04dded8467b66c5e3eae384568f624e55c81cfd8e3204422677ab62d919a176471b1fa8bae44bcc8d4d116a6afe5ea2773ac52a24186d6a4374171ce0516bba8733c59f38d622b7b6b7ca7ed2123f7f46b6c06b02f4c7506c46327d7cd908ddd503fd42be3cc896008eb9202bbd7af08b9908121a8b27fa44747217ef72a8c549444232e9209ca1345ee017010409527faf0722e3f13641ede5730639bf560c8a655e2f96cbba7b2811da8a1fc3e5125c92754ea7b823f394998b8890602b1713c2a4d352066e01f55ea86fe3da71f9119300d84874b667a6538a90ab24aec2bdfd9ba9a5f0c3072d549653b16f4a4319ca398147e6753f9a048b5b250c64d599115bb717ce85c8370df62c93da7e10fe705a12482e6f25e6ef1f4851a305aa4dc21b08791885867fc10c5503a769a6d6794ab5a9cc5da68cfc3546b0e848ed8629ecded620ee3fa6dc1236b59874916c45f9c409c9889bb85d7b289ee5f45f6d33262dea83b32c071417d3759cf650b9d43468ff0c2e922632e8d73feb4c55fe4233dc1f0cc6f6e522fbc9e9362f1d69441d56ee5f3252dc0559339335901f539ba274cc3640ec776a12c5c7e5c1cfeddedccce36884ea01071c2bcfae7ebfb5b874e6\n\n# tcId = 151\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 811dec041124d3ed9d5eaa9c760ca5756e42525687d4af701231671e8f7f4448ea9b9eaacbd9c99659ee3c175277d30cdede73e1b332ffe41b8b737150ce1f1c67aa6b22ff801077c4241a6ff4af8f4db9462c70c13e1da86edec4042a70be9d08384d932681dae48fdb83149170472564a5bc68cbe952c76e476b99c8a5a1ecaae809690a014b28224ddb9c9dce0d4f6a77fa2888a71f3aa9b5deda0af40ad0464d9adbd26fde242523c096106124048bafe824f733b0af480056de2314f5e27db5aa3fd15705777e14efd2ac43beb12f8f496d09103ab377971cdd45e9afee8baa874c23d3942ee3a505bbc3901dd4cf55ea8a30fac0cb754793fb2d8f4edc29afd51b99140a8d03aa0614169428205fcd66c1047d3366fb32f1c2b1bcfed8ae23580ed254c3dcb127daf16aec1892714ee05a1ceb4e561a1e9c8fd4118ef8cc9e063bd86c55d28b8acc9d5b4c589583e7c6b78fd518d8ca85b88517f10c27aca2f0bcfa54ba5bb94ed5b005e3d871b68b86e96adf12588037adc97cbef59c05f0d2162db2e4cce41227df11eab5449d612be56ef6fc522452573340d4d68af0178d4f19db6a0ded521f1a982bc5567dbde2036f74d6d67b806ccc7c7f70d3092c22c9c1acf307b751d994fa5259a5046668a047afe4c3302e908bf70bc6b55c39726bf24ceca809357c623b89fbf0eaf8b5d18823337e7e0245d865574cb9\n\n# tcId = 152\nmsg = 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f1011121314151617\nresult = valid\nsig = a359fd38305208e99a3c506ef3993582185c97171721b3bb2c4632de1a18ea3f1f5e2a8208d60379c3c35016f8f6fa21c80d99c9460abedc3d158c841c5250cc592e511bff21bae85490ecb27997b5502b6c2ad83f4925aec7e7c0066ff0788ab68570e3a7c34c89fb270ae48a81918c8170cb0d3556d5bbbe54409e7e97d0ab897f83c12fbcbbbf8023e175dc353bb42ae87cad8932c5678ca8c89a064e9f6ad3bc06fb738d249316843c6e49c98babf5348b665b78ed3cd78991bb6e9997d3b9671b24a0d2e7f0fdbf9273e6071c4c39ef8b5a2ff6a543b67b5df4b138cf9ca7d7d8ab3084d514fb8838e062fd8538a8464cb2aa913bbe972d871faccfeab3a12ff5d239d6d72bea9b0a44551e406dacb320d6c324ca8fa837fa9d4324874fc75ec96d66c23f9a0ab2dd47c32035edd9e27393a459607136095c64d24d43663918d2ef7c86b47886db08dd784cf80a18b552487979b6350041b34713edc78fb2fb6f2d5f9c4b6fe158e7ff2912a7bf93bab9c3cee65ab1e77b2cc9d07137f87b7d2ef9842320229c82366baaa397c52c1d9815411e6bac4d2106a149976b8787266e3d1f852863dfe6b52b15e2033589def99aa2a6d3c2e7d367ff991b48ead647f8d693159f06ba52f59f0d30d45aad0f852511f56e37d078f409b6a182a789858dca55c1083860939d6c00486ee07811be5027f45d58c002bd05b550ab7f\n\n[d = 5baed4f10cba539943f679e2bebad47e96a9b2b4c2a708665b7d156ef80f24de627df5887a54fd283563f774b6120b98d8b6d8ecd6656f9031cb90546b3125f54662b5860d5837f85e47cfd63f5520ae10c714c07a473af59647201c19d7590d6d5db84075738ac081be09d02fa3c82a7b170cbd33b860927a8efbf2e157357b]\n[e = 03]\n[keyAsn = 3081870281810089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf020103]\n[keyDer = 30819d300d06092a864886f70d010101050003818b003081870281810089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf020103]\n[keysize = 1024]\n[n = 0089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf]\n[privateKeyPkcs8 = 30820289020100300d06092a864886f70d0101010500048202733082026f0201000281810089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf0201030281805baed4f10cba539943f679e2bebad47e96a9b2b4c2a708665b7d156ef80f24de627df5887a54fd283563f774b6120b98d8b6d8ecd6656f9031cb90546b3125f54662b5860d5837f85e47cfd63f5520ae10c714c07a473af59647201c19d7590d6d5db84075738ac081be09d02fa3c82a7b170cbd33b860927a8efbf2e157357b025601d2aee6ed1ca9c37dd6bb10af280177f9b7c80bc242f8717ad72267f9723875b08a335c26c2002f1b2a4a7403ff45ef68d0d7628fcf09abc0c8250ae70fe04eebf5cc362c667718f959474c73239719e8878b45212d022b4b7074f8f26554f31a0ed0ca5cfe70c9a1b00d2408e620b2042bac09602b322e14b53371b48a5ba2d92f6b025601371f449e131bd7a939d20b1f7000faa67a855d2c2ca5a0fc8f6c4550f6d04e75b17792c4815574bcc6dc4d57ff83f4f08b3a41b534b11d2b3018b1ef5feadf47f932cec8444f65fb90da32f76d0f669b0507836b73022b324af8a5f6ee38a2115f35dc3dfef5dbc12008c2b0996b21581d1d5b957221740dce224bcdb1926c90ca4702560107fb364902bc8bce103cbb445281e4dcd428f63952be322321d4d4a4d5cda41fabbace7c3a21831615d49f82bda110770117842471d3a2ab256e59665e34d6cdcaa57fbdaaf47a95450865f39b8004c860c68d9ad6]\n[sha = SHA-256]\n\n# tcId = 153\n# short signature\nmsg = 3831\nresult = acceptable\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c68149efc8a4a913a26c9170590a1ed9064323c12b6ebde15ae8c05a0e5205c91f57f5753815ff39c918\nflags = SmallModulus,SmallPublicKey\n\n[d = 606e8fc7c1db3dac5eeb9fd6a82e852e162085906932970b7e6baf8f74f2c216525bc3659cf50b32958d1d5205ae70bf62be7eb59def1e202603190d694c489e0ada5dce46fd39df620d2db99e68a52d8b13be84239086852f24c979a99d874c48d0811c669eac06ddcdd44c80f42a7555f0d435246647d2e2c8cce1b05ea3a1e3db39733feea95f0719c4836f66f8ddf24c2eb90a3b9afcad3fade8a8d0b93e81a54c42e84112b943c316480aff80d56c9143e8d9859b0fbf7a1e46ce02585721d629662f1d594738895addc28a89a74d2d34cc7bf13a5bdcebf3b8053fb3a30c6638504311c1a4c1cd1e16fca63baeb74ac2f7292b84cfe79f56ab347e08e3]\n[e = 03]\n[keyAsn = 30820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe", + "2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keysize = 2048]\n[n = 0090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1]\n[privateKeyPkcs8 = 308204e3020100300d06092a864886f70d0101010500048204cd308204c9020100028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c102010302820100606e8fc7c1db3dac5eeb9fd6a82e852e162085906932970b7e6baf8f74f2c216525bc3659cf50b32958d1d5205ae70bf62be7eb59def1e202603190d694c489e0ada5dce46fd39df620d2db99e68a52d8b13be84239086852f24c979a99d874c48d0811c669eac06ddcdd44c80f42a7555f0d435246647d2e2c8cce1b05ea3a1e3db39733feea95f0719c4836f66f8ddf24c2eb90a3b9afcad3fade8a8d0b93e81a54c42e84112b943c316480aff80d56c9143e8d9859b0fbf7a1e46ce02585721d629662f1d594738895addc28a89a74d2d34cc7bf13a5bdcebf3b8053fb3a30c6638504311c1a4c1cd1e16fca63baeb74ac2f7292b84cfe79f56ab347e08e30281ab0de06a7759dcbb9b86ee9997aeda09ecf084f92c7fb4a0adee50a1ae3b7edc4b6f7e5fa504e6ec0696b98dd5013be9a448ad1602b22881855df6fd11ca623fef41eb1e366c123bd08cae96fca50bf464193d6546b61fa4f4e3988d18ca7444d4077ca7cc865f168d9764ab0ef0a5bcb616eca34c3d14a89e9d9f579df97c0708ceb83d84dc9425637c8594cd69416e00d5ccba98a003d9aa6a29ff6d2b15e64bf9fb5fc9080edbaeb5abf302560a6c8149f2428c1a77259363023c1ada4b808df997e9af999c99faacaaf9f37267f3f71a49522d8b2508dbcd17e064d604ee222e75e8088ccafbb063cdd466ca7a9d15f88f20879cd444f7670493851d4e9a37e47e7b0281ab094046fa3be87d1259f466651f3c069df5adfb72ffcdc073f435c11ed25492dcf4feea6e03449d59b9d10938ab7d466d85c8b95721705658e94f53613196d54a2bf21424480c27e05dc9b9fdc35d4d9810d398d9cebfc34ded105e1086f82de2afa86fddaeea0f090f987209f5c3d3240f486cdd7e0dc5bf13bf8fbea652af5b347ad3ade862c397a8590dde462b9eab393327106aad3bc6f17154f3720e9987fbfcea86055f3d1f23c7f7025606f300dbf6d70811a4c3b79756d2bc9187ab09510ff11fbbbdbbfc731ca6a24c454d4f66db8c1e5cc35b3d3365404339589ec1744e9ab05ddca7caed33e2ef31a71363fb0a15afbde2d8a4ef586258be3466cfeda9a70281ab052c428cb7bcb4dd32f6a7485f854bcf9a4455dd882a6946ef6b593521c045e6a964477dcf247f99f93db6b836bad6c1a8b62b72bcc4f7d55f27d70fc624d5762014269b3eb71c46dcbbc2c5cf883b06d3dc0c137d8ddc42daf8dec9fcb81964e4a397ee02045612ff7037e6f8785acd8a3b2a88c37cee30f6eaa3322596ff07ae58abfd622f0217fb0b15b0394afa8e32ec7bf4e6179760c3ed8bd67b975162719904795c4843b2be35ca]\n[sha = SHA-256]\n\n# tcId = 154\n# short signature\nmsg = 33363730\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000989e7ff72e67e680bd21d5f966e4ad8a48c3592dbacc4a2f035b4ef4d17a2f25f8a9fef7e78eb99d76d68629ed02d67c43c4b7ec8c3badc32e3d0a524c326537739b0fde156723b27c23ae2b09895e470c64d700f5c\nflags = SmallPublicKey\n\n[d = 00a1f35f0cc1b4cfd73412c0e955ddedf4ab41d5b15586d12d64b3da2995291261452e3ee643a69dbd95d128cd69acac6766234430d47955bbcf3527baade2ba686575bbebb601d26dbf1c1b518ae9fc883c68e24d865b969cc3a539b9c42b6ae9d9cecc86b7fa53b8fd907ef03b6ad73efe29f77804227fde0a502f52f9711fdfc948042fbd8e2d510ea894340406d8e3e8bca184b7a6d91bed16256fefc2506b289cb8fe349157e1311005e5a8c5cdf1b77ae9c96c444e0298dea4cf8139a53124e2c46eb2baa0794ad5b4858d9f3362d39269eccfa455d58a151ca1c34314eb08e62f1ce62a0d37f866d15b3c8f2bba0475ad231d20f0e50b029eef26b165db]\n[e = 03]\n[keyAsn = 308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d00308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keysize = 2048]\n[n = 00f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f]\n[privateKeyPkcs8 = 308204e4020100300d06092a864886f70d0101010500048204ce308204ca0201000282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f0201030282010100a1f35f0cc1b4cfd73412c0e955ddedf4ab41d5b15586d12d64b3da2995291261452e3ee643a69dbd95d128cd69acac6766234430d47955bbcf3527baade2ba686575bbebb601d26dbf1c1b518ae9fc883c68e24d865b969cc3a539b9c42b6ae9d9cecc86b7fa53b8fd907ef03b6ad73efe29f77804227fde0a502f52f9711fdfc948042fbd8e2d510ea894340406d8e3e8bca184b7a6d91bed16256fefc2506b289cb8fe349157e1311005e5a8c5cdf1b77ae9c96c444e0298dea4cf8139a53124e2c46eb2baa0794ad5b4858d9f3362d39269eccfa455d58a151ca1c34314eb08e62f1ce62a0d37f866d15b3c8f2bba0475ad231d20f0e50b029eef26b165db0281ab12aa6c4fffac8146f5ed82cae905e5de35dd59103235022daff32421372bf037cb7c534a9", + "9a2c073826d9c0195e15337bf271804be3542397b1d9316cbb6d1e107dd9c7828053695b7459c4b652946dabefa36b0877d80e465b346b26d7f388ddeb1fdf440eb9cb378da0f78b39191f1282b69bf7063335c094378aead687659cd5cf4fa7a6bb92235224563d21b81f848265b3f07f5fb3e33d24f5c9a2f36fd1a115d010136030210cd4502560d03b9f80b93504a27f8f70016adbdef3334b3732500fa45181e810ad8b1dd0914020e64cde75d33c363ff1ce4c7ec06188a0046ef845cbf7f084ddd64f80c01d85e56acf5e2b2f897788487148d4a016b8f7f64a2930281ab0c719d8aaa7300d9f94901dc9b5943e9793e3b602178ac1e754cc2c0cf72a0253252e231bbc1d5a256f3bd5663eb8ccfd4c4baadd423817ba7690cb9dd248beb5a93bda5700379b924d912dcee1b8491d4a6cf205a53ab42ee778476f3aa25b3e9cbfea2d5f26877a5e6b4fb22610bf61ac79bd4f5977792b0d7a5c9c8f04ee688e8a351a6f27b6c236c2e428c1256a5856ee77f5aa3fcd4228c34e866ca24a8bc0b935600ceacac0b3383025608ad26a55d0ce0316ffb4f556473d3f4cccdccf76e00a6d8babf00b1e5cbe8b0b8015eedde9a3e228242aa13432ff2aebb06aad9f502e87faa05893e435008013ae98f1df941cca5ba50585a0db386ab9d0a54edc1b70281ab057973d6bdff122c8aa4bd273792b4f4b7737c7ce8093654407abe0e1289b048fd8c13bfa9a0179a60d1be228e4890c064f9608f078cb34008be48e4008fc96e8fd08ac8b4e004faae7827a4fe38830b2328ab3f93bf0d8fd45c1acd91d49fcf45698d4d8570fd3e1cdf295828626d36e0c788f65341b57dab237c9aa230c2363d465144211ceeac2cfcadfefa93107b73d20cf781fd81fd1a142c1bee319cb93d0c2769675acd586a7c3b]\n[sha = SHA-512]\n\n# tcId = 155\n# short signature\nmsg = 38343432\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e7a1269086f0bbc0778ded8d7108ff4edcc2313425088117b2d5c53e9d9971950a5fe8b2b67d2bcd1be74f6b557a3f90650a96d7e4dbd63c05b94f73337eea682417c058d66ce523e4461065ac8ba990c4ecd04932\nflags = SmallPublicKey\n\n[d = 72386df6e407bf9951c1fad28a4fe2baad2b0098992d472237816065727c5c3e543627c35d169decce392e2e52d67c3b4d4eae6ad79b805f904819ea918432fccab156a0eb9b0cc432f959e71e3348b89511b0dc14cd904100c62c654289d0e55cb2fae8039e3d8eed9aa4a16ff75adb65e1336548b8f455153342f8fd8fb8a5d721e2b75a76990bc7c14e53f0fdbe96826349dc659d9e9be077a05b4aa572eb05a5fe1d620f0d10d49303d73e583b95587c591e559760b790720ff94d57f4700c5dfe4d44ce4039b79597b02fb04eca9c8ffd8a50aa69b0bab0c83257eca90a490e68add66c5b57a4fa06a28bcd35aa28851f43f5aa77de1a3bdc9b71927a341bfd550ec4035cc5ef273c3016521c4d485271e862b18c706129eba043d9d7c953b06e5618f491edbc2d79bfd8d50f50f3d61de9582e6f39a4027f4949812506dd6014a149d01a607739e82f69dcba197a5137eca7a9a6c40744a3adc4a58e26c7a31a0e21a231163d15d45d17ba7782b221eccfd5d89ab1703932019a212a0b]\n[e = 03]\n[keyAsn = 308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d00308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keysize = 3072]\n[n = 00ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83]\n[privateKeyPkcs8 = 3082073d020100300d06092a864886f70d010101050004820727308207230201000282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a830201030282018072386df6e407bf9951c1fad28a4fe2baad2b0098992d472237816065727c5c3e543627c35d169decce392e2e52d67c3b4d4eae6ad79b805f904819ea918432fccab156a0eb9b0cc432f959e71e3348b89511b0dc14cd904100c62c654289d0e55cb2fae8039e3d8eed9aa4a16ff75adb65e1336548b8f455153342f8fd8fb8a5d721e2b75a76990bc7c14e53f0fdbe96826349dc659d9e9be077a05b4aa572eb05a5fe1d620f0d10d49303d73e583b95587c591e559760b790720ff94d57f4700c5dfe4d44ce4039b79597b02fb04eca9c8ffd8a50aa69b0bab0c83257eca90a490e68add66c5b57a4fa06a28bcd35aa28851f43f5aa77de1a3bdc9b71927a341bfd550ec4035cc5ef273c3016521c4d485271e862b18c706129eba043d9d7c953b06e5618f491edbc2d79bfd8d50f50f3d61de9582e6f39a4027f4949812506dd6014a149d01a607739e82f69dcba197a5137eca7a9a6c40744a3adc4a58e26c7a31a0e21a231163d15d45d17ba7782b221eccfd5d89ab1703932019a212a0b0282010064bda30b9e1d4b701e62304a5cfac174cff72e5214d7940b0e7bed844a42fb1071253ef0a1c340f02da022cfaa2ffed11cd083ed5ce8ce0a52c317bf6923869a80f9caea17fd6023da79ecc24e9edc6ded5497e5dbab53b34256409f184d1dbbb170ce81fa4ca5483726bbc2167a4f20ff6250a60305a2a573dba27279c180508c9f2e47810f1649ec2d7b729d8ad86872322afe9510228011bff3fb4a8b734b31828915e9fbd7472b09c9322008eb641b96ef41b7d2164f595595c761be0479ef4186eccc566b40c0b4eeffecbd12f099c96639d657c5f6c15e083d612ea90757cbbe99df81b2e78a9d180d9a44c773e0298e794d96460dfe41346f2ad049e902818101b3619b1e7c984fe8ebb7f65eb39cd22ff91e2b7e7b50e3f157e83a46f4b09eb237e57c02d5a5648c74f26971e9535cad3061cd269b329e0cff3c84c578b23fb053ba520505c624ce99874e1fc4816f6345272c140d0e672f47d7e03f0c8343f1ce717a2e269eabce162554d452ff4ce49f053848d4bbd4a2436422b6cee4018b028201004329175d141387a014417586e8a72ba3354f7436b88fb8075efd4902dc2ca7604b6e29f5c12cd5f573c017351c1fff361335ad48e89b3406e1d7652a4617af11ab5131f16553956d3c51488189bf3d9e9e386543e7c78d222c39806a10336927cba089abfc3318dacf6f27d6b9a6df6b54ec35c40203c1c3a2926c4c512baae05dbf742fab5f6431481e524c69073af04c2171ff0e0ac1aab67ff7fcdc5cf7877657060e9bfd3a2f720686216ab09ced67b9f4d67a8c0edf90e3b92f967eada69f81049ddd8ef22b2b2349fff328b74b1130eed1398fd94f2b94057e40c9c604e5327f113fabcc9a5c68bab3bc2dda4d401bb450de642eb3fed622f4c735869b028181012241121453103545f27aa43f22688c1ffb6972545235ed4b8ff026d9", + "f875bf217a98fd573918edb2f8a19ba14637931e2041336f1221beb354d3032e5076d52037d18c03592ec334665a34152dab9f97836f72b808b444ca2fe5402a085782a1344ba6c96f1472896418e3383754ddedbf58d0308dd28dc18242c1cf34980107028201002cfe71b7d15c072e0ac71c7aef80e8e40823a92ffdcdba8977450a5e58b154b019c9d9e7a602015c41b7909389afe686a101e223da9e752638c244b31e298aa451e24857c97fc984998f276b6f4c69575f306376cd2870124488f518ede6ab3f43f0c68b133c5c278028d3d824163e22cc5a7f3fff478d502af055ecb5ab5039a94c9eea95db34ad163f1b0c4e5b66aa4fe75a4503df915c1431d6965e70c931fcd6e768b06e57653e7261f4b95ebe428ffd2bcf904f91fabe16c974b4f5ab10ebb66ee3e2a95b369946b2dc0a30f0e9653eaeb681fea81bc47adbe1f50d1e30c0bd85fd0a98fc4869dbd00f2d61571203411fa7f008c0e43cef14f6ed1ecc70]\n[sha = SHA-256]\n\n# tcId = 156\n# short signature\nmsg = 34333630\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a21abeac8409398319e65c8656f8f72e179dd1e99358c7531fddc037e47c1e688cd70eafd6eea01c823516bc79f89d7e52ee1eb4ffdeaad1d550dc0a47185bc9c42e47fce5503c3370a60510f834b4691152ef668deca633cf3873ce6613951784aa7dafde118f37f1cdf1a687ac236d5c956bced564b73cf202e3bace59667\nflags = SmallPublicKey\n\n[d = 5a227bd7284e2c0f51db10b911d24bd931add424b8cf6aad5f77f70bf94faebd2b6c8753ecb0bce16128569ead41ab428481b5748311fd02cc821a2379f3def60eadae0d46777eca8a98f50e653012867f0116768d9f04286b6921d77c812947fa838c22159a9743b030fefe695a25dc6e51a293700e545b52c01ccbd297d110a03719ee437ac4b220d7dbb058adef86b949ca4de07276101deb7b61b2e5e8fad8bc6bf2dacf8f90060aabf2696c7f1cafa101ec562ae5572fd592dd7cb1f5fec11473dd398f7effc7981ff96fea4269561f21fa87bb5c2ebbecb441a13098b6ff7b8aec3fb7f483f48f80bd8b531f4a99bb27cbdec584cd7c0114ec972380f333f1fe4849ba118e5c3895f9865b806733cb764b66e99703e35dd49bdc4372d8520f069237dfa06c72fe78ee267184cb3b14fbdeb1ebdadf31ba6bb57b469e6242bc0d1fa391e0e8edc94d01b5fdbb2010f7d8e4c5cdeab865b1a2f08643dd0ac0f7bc151b6ccb0c835202f07a9ee5b73db9c4ece4fe4cc2069379414ed6552b]\n[e = 03]\n[keyAsn = 3082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d003082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keysize = 3072]\n[n = 008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01]\n[privateKeyPkcs8 = 3082073d020100300d06092a864886f70d0101010500048207273082072302010002820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103028201805a227bd7284e2c0f51db10b911d24bd931add424b8cf6aad5f77f70bf94faebd2b6c8753ecb0bce16128569ead41ab428481b5748311fd02cc821a2379f3def60eadae0d46777eca8a98f50e653012867f0116768d9f04286b6921d77c812947fa838c22159a9743b030fefe695a25dc6e51a293700e545b52c01ccbd297d110a03719ee437ac4b220d7dbb058adef86b949ca4de07276101deb7b61b2e5e8fad8bc6bf2dacf8f90060aabf2696c7f1cafa101ec562ae5572fd592dd7cb1f5fec11473dd398f7effc7981ff96fea4269561f21fa87bb5c2ebbecb441a13098b6ff7b8aec3fb7f483f48f80bd8b531f4a99bb27cbdec584cd7c0114ec972380f333f1fe4849ba118e5c3895f9865b806733cb764b66e99703e35dd49bdc4372d8520f069237dfa06c72fe78ee267184cb3b14fbdeb1ebdadf31ba6bb57b469e6242bc0d1fa391e0e8edc94d01b5fdbb2010f7d8e4c5cdeab865b1a2f08643dd0ac0f7bc151b6ccb0c835202f07a9ee5b73db9c4ece4fe4cc2069379414ed6552b0282010044f592b4a5d5d2abfcbb235ed9c890ed4c393a58511d213477c92be7c44cc170a2476f6c9f836aea06b0d584c6b0d6eff344e20a58cd94b601b98ef3ec8ac8a7415430653450bde8b8e26ad2608814ee56bfe3ff1099d195c9c76edd82b1ffa50ed7b67f5cec464534ac99c8f043f57078a8752617abb04d4861031993efdcdda9df505b500c9dfda99f422ca3be309985b4a3ebe48cc37227e802298f9dfc937f3c419c156df8492b52cc24a1daeb355829836689fd0dd8c3057fc1d473942de38480e8ab6f16268cde71af49badce2cfd07524e8f90c301a6152129ad4d578f4cff93a042db9ffae0be5136c1ae5d8e49813d9dfc1703d14fc507846a8b45902818101f5ea5d7dd210be18585cc8f9118dcdd91e0587209ede4b419552064988741c3c76ff276ff952d104db1f6c0fec6c4a745e7340c2d000dde533258c29e5594566e240fe9a7981c5e7f6d6f42202590e759f34146e61de89f7370a15c0403ffd9469ca8e5b527b2d86cb52350e2e79dab865b9cb35fa88487d8190885a567d86e9028201002df90c786e8e8c72a87cc23f3bdb0b48dd7b7c3ae0be1622fa861d452d8880f5c184f4f315024746af208e588475e49ff783415c3b33b879567bb4a29db1db1a2b8d7598cd8b2945d096f1e195b00df439d542aa0b113663dbda49e901cbffc35f3a79aa3df2d98378731130a02d4e4afb1af8c40fc7cade3040acbbb7f53de91bea3592355dbea91bbf817317d42066592317f2985dd7a16ff001710a69530cff7d8112b8f3fadb723732c31691f223901bacef06a8b3e5d758ffd68da262c9425855f0724a0ec45de9a11f867c9341dfe04e189b50b2cabc40e161bc8de3a5f88aa626ad73d1551eb298b79d6743e5edbab7e6952ba028b8a835a58470783b028181014e9c3e53e1607ebae59330a60bb3de90beae5a15bf3edcd6638c043105a2bd7da4aa1a4aa63736033cbf9d5ff2f2dc4d944cd5d73555e943776e5d714390d8ef4180a9bc51012e9aa48f4d6c0190b44e6a22b84996945bfa24b163d5802aa90d9bdc5ee78c521e59dce178b41efbe7259926877951b03053abb5b03c39a9049b028201000a481e3baffb3d30fa9e49395e7fd986d58e804befc9bad0799b2e86389792a2e6e47449b23b9e15c9139dce384aae4f08bcffa353bea9ef2fe2639a35a1bc3f9ac38", + "963f1b605d785bda5b7c5b17e66560d336cdec31b70709b43ce064d7e521df466c8015a1593453fb90f3d43713b5d5066f5c7a4abb817b874065a7a117be1df350320a5555fb39d78d178d17e37a288da8761853c40ee99590d87f21c133fe06d09f40f9c1765eddfa7e865b6a4b369470163aa681d85223f37a868e97e264f371dbcbd9cef8a17601f7b29b4e76f2ff77b538722695dd1fbf92e940b6e24c1f33b490b1aada82875596aacf074c36e1e8cac178e8690be9f54956bc1ac]\n[sha = SHA-512]\n\n# tcId = 157\n# short signature\nmsg = 36313237\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bdd0c9e451b5b3e5513a94492dbee1ada9ea87e65a8cd95cceb4d304294ce34bf09a212f14908f5b865c7a34a72e68e389794a2d1c5767ba17829e2044108ac7842b6bfe0a5663b433d656f4e38522c5a5a23c460b898833828d257350e5814291b54cf13089080f84998edcacf0fe5fca0c1f8b176b172c5f9989491a039bef\nflags = SmallPublicKey\n\n[d = 61d4ba892aa781fc663a897a56f278364b09a89485a37255bdabc5e0f543fede724713cf3613d20c059983e7a38442c776c9accbe8ff714aa45d4d5cc35005adf8b8c76a91bd14fc975341a1689495fd85fae6f45ee5f010764c45a01d7fe521b0463c5838ced4fdf17f2df3056cc3f1d1f76753b563848ad5eac21b40e286e5e847932fdbe9a7a569c0542ca2e072763516ff44f67817739a3ee721dbc88f5d3d4ea704e53798eb8c0e7195070f313b800d65827a4057f62ceff11b160a8419054f99fe6b7cbdfa62a9f07ff7313b8cbc2b338bdf9517b1150de81212f9d6bde36a5b16eb82aabcd0157d2caaea6e0b02c784bbf9a00c7cd12e708723909f93]\n[e = 03]\n[keyAsn = 30820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keysize = 2048]\n[n = 0092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d]\n[privateKeyPkcs8 = 308204e3020100300d06092a864886f70d0101010500048204cd308204c9020100028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d0201030282010061d4ba892aa781fc663a897a56f278364b09a89485a37255bdabc5e0f543fede724713cf3613d20c059983e7a38442c776c9accbe8ff714aa45d4d5cc35005adf8b8c76a91bd14fc975341a1689495fd85fae6f45ee5f010764c45a01d7fe521b0463c5838ced4fdf17f2df3056cc3f1d1f76753b563848ad5eac21b40e286e5e847932fdbe9a7a569c0542ca2e072763516ff44f67817739a3ee721dbc88f5d3d4ea704e53798eb8c0e7195070f313b800d65827a4057f62ceff11b160a8419054f99fe6b7cbdfa62a9f07ff7313b8cbc2b338bdf9517b1150de81212f9d6bde36a5b16eb82aabcd0157d2caaea6e0b02c784bbf9a00c7cd12e708723909f930281ab0c0f4f3c24bf8d0185bfe3f5be0fd9d94045abc59ed9082ebab4615c4fe5e74a26d2d3824276b90631aedbe4e2795873adaaf909fb454f7cc4eb6403c226a8d4fe96c429018c6500d227af70236f30ac3e299e502b0a9423ddccffb7e2987aa6889611896f3ca767a5d536f9815cd21fefa7f8f177ddb32b9a8c3599c3f37ef910e37e9048e61d0cf79dc14f14c242d0f0e350045ad6b54f278abca959b59c771e68c312aed3e33a71a73302560c2b1123368fcab3690929caa41f19b4e7e973c9696a6e1fd13e66b61ca9bb63cc30cbac1a8735206aa639fc8dbaca40f273e6b6320752fe2f0b4b5089d932ca0422ba3830eb74e462a7dad66f31491c321ad7f861df0281ab080a34d2c32a5e0103d542a3d40a913b802e7283bf3b5ac9d1cd963d8a9944dc19e1e256d6f9d0aecbc9e7edec50e5a273c750b1522e34fdd89ced57d6c4708dff0f2d70abb2ee008c1a74f56cf4cb1d7ec6698ac75c62c293ddffcfec65a719b0640bb0f4d31a451938cf5100e88c154a6ffb4ba53e7772670823bbd7f7a9fb6097a9b585eebe08a513d634b88181e0a0978aad91e478df6fb1d31b9123bda4bef0820c748d4226f66f770256081cb61779b531ccf0b0c6871814bbcdeff0f7db9b9c496a8b7eef24131bd242882087c811af78c047197bfdb3d1dc2b4c4d447976af8ca974b23235b13b7731581726d0209cf89841c53c8ef4cb8612cc11e550413f0281ab094cdf234ade11daf48b0df60628ad6846140b65d68783caf13171f4c2772e7a2f7576fc8ba0d5689074568ebfae719a4f2faee5159f17bbec294029f4b0d7ef85f5e7980a872ee5db8f6a39cf6871373abe90c894fc8cd96399a3a28f643752ea6bff28a919e88d85fe720ca359aa5d4c828f2530665ad9810d7dcecc0888bdce4d71e05c3a8579845fbe985ff6d0608fb2dfa1121c7b7e4ebd7209ce7fe2593ecfa2a061fb4e7b2773cf]\n[sha = SHA-256]\n\n# tcId = 158\n# signature is close to n\nmsg = 32353934\nresult = acceptable\nsig = 92bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240b8bf4bb1a6d0616fd5be2f081dc9ef741a9a4ae7274418b791432de470c4556463108388e8e8ed5dcebf3558e4650c2ac97c86fa682176f09b5dd8cfbf15d19c3fe4f961f4607c12cb3dfad9b6a0e59c92faa1fc8622\nflags = SmallPublicKey\n\n", +}; +static const size_t kLen149 = 145457; + +static const char *kData149[] = { + "# Imported from Wycheproof's rsa_signature_2048_sha224_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keysize = 2048]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[sha = SHA-224]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 19c576f191c273306ec6ee9e26c673bdcf3f821adaf13a0759df7787511ddb096e964f5dc199ccc5cf131f855065d6ff0a6c720651477d9026bed82d201f6e84a23b37725fd24f5b75aedc2afa24524e7222c0dd7c6d2742430bab3ec46d12204a94a533e2a9147723d087d619e07873a4261c420226ec1869abd70117c787d4b1827fe98779287451086354292bbb90617ceb391122efe70887710c5cb4549d163d37e79b33c1b336826cb53b648689e6da54241d20df822cf7770d7beaef4bb00068252786580a88cd00e93f5ef42b69efa7c364b98749fe734ee7bd13d0aca585d84e4fe4b29478697170280a5921278997ef9856f7372b6995d7eb43ce0c\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = ab2e758c8de97282a7ede3401680ead187cc08658be0041f108851149a9b9d2588d5ca544039533eebd0305c07f394504d91a578f5764267149d4ef70b88a2a3f8cf0b1061d06882af53a88bef195aac87294dc833d80f42d942f3a59bb242b187e23bb89a068bb4c8a215247d04aec57f81f75c14e711b5878b04863e715d0f359ad13f008b79342b7a4ca095fd021f639e8f48860c1eafe6fa19162c2632a2d3a05330d149f3ea6c9aed9f89fa3f7bcb2cf2a3d1af0484178710c21c046a812f3b8d68027173ff5aeb1ad19ea6639e2d886eabf8149a8fb491d2c36ccfc4da2a9785a992046f24a93d2dd7765a171cd8ecb68b94ee70b0e5bf791967267251\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 61c702c72b0177ac857e52707c1a40b84a1859bf1d7d1cdbda643f924e8bab7c3d3eb2065aff837e92f93836fd54ea52e085e19cb0cb59fa58afad48480c2dac579315340883886e78456ce750fc55b6c188b716bda7957ff547222f0cc1462344de4bf078ec19f1ba5901a0e5f40d93dbae4aac407834b272a2be82c8da085a3e1e9e0a57d3f43d26462566f0aeade04ee8981fec8d7e34c916fe78c0c5c43781bab2fecab654fa55ac99182545d0ddf070d41f67efe0737d8ecab3411720c84862606c8e4b53e60faa1c9a98386e92b03d676b53e3fdbca3bdf0187ddc50086cf82ca6052be55fbb7f3bdb6c6c0432defa5634797c23b494c3880846169b67\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 965f82f0649a338ef14387a7f3335b9e2d5d3b4009eecfd26c0110344a30117bde6bad668cf083beb28242460fbb96adf9754b9a4d4505f6412e677bf3349868fd5b5268786308a5293f2cb2f7ffda76104351f10381e504e72d27435d5bea0517d20ebec0afa531e520e5fe484475a330a40ba1109c204fabc44ec099878a5e31342a650047c299a5f2322f057b9586cd9eebeed1f3d2d94aac24f9d7b2f05c6f28bc49cb2b00f5e56870fa099cfb2c3e276381adf5a030ab6ffd9cb96fe309061d44c2ca5ccdd76a69458be561e3f0ef603ebe9ecd533333584236970dc7414124ace98357c496369bf94123bf0d4e57b03aee567c2f83a9e6378e62a42fed\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 105c68d221aa579ab6206d23be01d0c91f98fb67ed8d2044b6278916223758aa346bd6d5c7282d23a2bf702e0facdfb884e0b389202a5073a715fa80158e31d1e3588af30d2fd8b61233499ab7952f0761c84912b700fec807937d00a021eaa84d96f59760cc7733236138cb4ff1fb04c7d4621331b5c729f9694555b6f9c324e74db4a7a8b72f2853dfd0b9fe63759b3468bc66017bd6c1aada2070dc8643b5e581f12cad170d9fe754c65dfd0a5925cfe846a8413d729103e9d7e8825affc20f477d5bd3860947c2665ca4170fc44f2670bc33b51d42e5df78134919bf4660cfbc092c1cdcc09c8fda1ec9383512abe253cd1a470271832e0c7de5a6d9a7c2\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 3662fc9bc91b00d457bce2fbc667dbb31ce7fa451acdbad95b4b418782b8af67d2fbaf1424be2c99e95e2637d8d39e751d757f89711ae165fe5bf142fd88b284df696e948ee714e3f2062c5d01d04bb6c0387aa5ff1511552dd066bda861e1c5cbfe73dd8c6bc3039b729c700c8f297f48ba2a36aecbb626b5c9f9b3c04102f55ee65ef5477d8d1d14d9b7b048cdac54d7239177e702d0629d3617de2a9fa556a6d4ec37fe38a46b768e39f1d8a380484ffe0cef59abb7e20ffdb7c11b14a42ee3cedda99ef9f71eae7cf760fd81172e03a3f2a9f7e42a813db3b089c11528350e93b131641b8d023d47447f58aeb9f3f38760df8a9b1ad4b8d43ba0c9018e02\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 8392c4d888e7c63ae2a3d53d560ccbc226dbb1d9f69100fd86a19ef30a83981371169deb4ef87aafcfb4186c5ebf8d83764470acc8c9cbe36a9b15037e25b1dfc63e929b0bb3891be2d1804b8c6a0bf65891943e4c0fd21e7df55c134dde69682244d22510dac2b304c10a2e31adc134ab27ed186568fa9091df16f1c9f4e7044ddef6675269de710774ed124b52fbac9bed285b4be5ef9f2fd50e1d95383e145553762fb87a1da173b8b89a7eb9e947d08b5303ef0992bf4e3783c30253a43b373d90a75bd52fc53ee4fb86bfa1bad035a8177f8c0a9f53a6214ec950c2a07cea7f908c55c24dc31799867f819af18fa30f304ea001ce9cc87eb703ab578f5b\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 00a3e40c77eae1f17fbf23c0218bb5baabb4adc424ec585b499a0e28ac21e664a0a8030026a161b1c3eb96cb5d0e498023561f11cb4ecdbca633f5d6087784106683a804301a16911bd7f8fd44c66a1c890c70fdaebb68267253329280f60fd617594194c96714126ad30547a813ce57f4fd14b1907172986c8a525abd130977a8e0a4af8007bb1e9b7cd83865b6f1b0e40b1709663a25bf118aeabb0af179cf61f034fe23d505c86f9f2be08b4dbd9e9c465c71edc0ee7f6236c1b52ec2e01904c14a3da0a426f39a8a5c462bcbf6edc04febbacde1dfe30495fc5c9726fb103f19d30d9d49d69ffe9190f5d448ac2d063ec4bdb8e07aceddb17202dbc25823\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1da09f538311c3b591f0c28ff1ba3d0888fd583f78c1bbdb93cd44c17640ea658a62e41adcc74bf8d7509e7d46764b33fa02f74cab9db364101857870003caf2f6df6f4c366997d1d00e891a30275554db7690b267c56eda3a279a1c2d9271cace128f8f3449f2590e4f30befa9f374009c7d4d75dc9101e63c7a102fd7ef19c9d8cc8214c7d8960332be27270e913e2906e55d3e55085c792f2e34cfbc6e017fa7211d3d2aa0dbf9f664d7cd0252247f8d9859eb7d738985e2785d1ddc21a156824dc323b272c04ac36015061888de8cf026afd575257f4fb482d5807d5ca41ee8128b2c9bfb22900a6e60f03b3fa99621f2b7990421a070d89d0eb981de5c2\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 22b094143d7c0e14529739d6e712202114a04053f0ab81f2b9ff357e6866fc58ec238d225ad4dc6ec877db71152395ca3747f72c20de76aa4bc04b1a61babb5d3a08017978de1144c3810ab5e371e0236fe14fce95d79fedc74b3108c0713940d4be0da190a7e7b7b90440e91fa1770b56754b4e7a8024ca5918aba59afbc2fda4d60745665abbc2ce2d9ef7aa9a4894e14c150c98b7855f9c015b90a245b491f5c4f74900737692adb05900d590e617ba6ac8e951166f5c6ca69b1e627ac7cf09d73d84eac332cdb3b6372575a2db2531a4e1342f68b91bf6ab49523d5b29f99515fa6af1e2f5d02ed7a7ecf8aa3884a656dd026b29864762bb85e55e4a8e39\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 1addb77d2c6e825936e498fd1210c2b6fca811a99896ad40375567647012f3601f9657617876c62d1314731ea4609d03dc3681e6b53a93ec3ff0d49af491ed906692ac9278dcd0e0d051eacedaab7a038a6a8ec4d2de08103025a726568271ef9561db94f44ce4bda7210057f6d9d70ab71bef8599226349a88161de5e8035b671505b6b476f2cf39589030148c1bebffddff6d025870a4859866d63e8945a10c2cb2fe575f667", + "6051c9f38140969c0162d87edcd0abd564e92e7389b223895ee92e35add16fb745ad493d269bb1c691cd1dfeebbde8e343da7051dd6d5afaf7aa4ee78200916ea2497043d07dfa25ffad324549902dbda79f4d9f02817a88ae\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = be516056260537514e69b25f482b4c22c1ff3ee12ca49b7f40e676a48cb424af3ca4bcb4d81b806c9c666ce066063efb1ba00f5b4dabae471e23e3eee7bbfb6ab5d505a725aadb6822a34d12ae00cb8e1a900a25cf236f3b1fe3b576162fcc8f33efd9bc6bc1c44d3c09e5e68c8aad9288a5a94cf86942231a413ced5bd61b4c6ebd83ccdbf52ab886f89d570d78c91d4b2afc3862569570e2d1b5469efb0be9b2c126c32dddac5c34d8f340b52cbcb38b1134c6b22109e7124411522b843c2bc3e575e60b35e7a440156770b85181c95488d82c0a725e02e90ca3dc4d41c8639d110d4bec80827140ffd1fe6e8d0c945de1e1b326a26e2998a2b03d86fbd7a2\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a9698fed4f4dd3d10ce7b039bd40b4a81bbd6a5eb82a71ba710094469479c14c1cb0cc13699fc8ccaf0c10382e1b03771a6d05670e22949c28965318acafde1331600f7337be8c19209b532958c5869c89b8384923a065df377de37b9e5cc7e5c8f6d0fd8664691dd9c97739194e5b2dd6d4330cef0aa0d873dce1405e7a435993fd84b339fb3574c78ed93fdc6fe604a3d9cf15c114e5fccbbbded2ae606fb9943a9a45461069e8b2dfdf882e9898a0eb59c4fadc3d86bf92b8dc537b1792be81b662b9c60db2938d513a7bb4878899df96a59334432d07a42b5de4a6d7c4b6449e3f469cd5f60857875bd1a617a2a8de8f9c0777fcf2e3e43499d90f3772a2\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 89d42ba026f51a31c27e079279cdded5cefe75069ce04bead266af39e266dfd8e9df16a3b9972e03f4afd3f561c931e815c66c2e81dafa56a8e6ff148f37e1ef4e98370c0a2b2e10ba47f7bdd4f433e8af206c107efdde39de9d8816bba196d52ace92335c34b15496c15f89bc087a16799059a556da9e96dafdb835b5553c5dc2c1b007a6ec1176e31a021da8c5106947e7a2316d3874a66b8a4ce2b237775365ec6f0842ade6f2a1b1e7d349189f6d2799c9dd40bd9d32056bfba10d14cd7d25fd260b1790f6ac6ff77631d4a5466c7c976c251f2d4b3fe943a344e75cfab3b8e30aff2ecb34014b906e1f1eb3f55dc8e4233a40cdd5364070ecb1f2b15682\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 712651f84c12fcbe98958b629326bb8aa9cf8e96cd8d06ebc68713e0241d2499b181b9216bb777e48d1191cae390d14dc63f0a09b5236fe6cb73f47d6043063ec1960e1fa5abb3631294e3c7fe3fa155864963a69ae9ad7f1b233a00e4b3b256fa0e28a431ff898155cbec008ec8367757b9290fc847bcad3a71d2026cd583b59401b7e66d552d9b59a010235785e6075cfa5f8a6588c957b66ce339882244311d9d0e33cf277134c0bf72c21683183ef12cff0ca9d3f517ee56acc4d89c74b0e81a7e1a26f14649766b0194b933649ec1fb72ebc78dd9645827e78843d31f503eebc40748a290b5fa5c1545d0801b63d753f0c0fb89e11e387d03c5dc465b2e\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b23e98890d5806f743eed29a2f972bf2ef5e53bcd20e4e7f8beae79a4e7074ccc4ee9c38bd2122fc1ff4a94a22f25092024dd3aa598c70278c93d70e932402cc0bc7153d87c59c5fe15c50f13eaf4d0c468caba84e43c925c634a5c4518610e836da434a4743824139610d6ebacc07ef9438dbd860be879fa84f3cbc5ef4aaa140b581f7085cfbb343ea32dfd30546f559759df095853ab2d5dc9026f4f51f86a3621bd22b161215088a58233a42f64b1688244ce2a170b8c6656e33b697abf6a72d57662c5ba8e14cca9ac502392f4942f734670bd9addbc1033a33c1e7af3ec7dac7565a8fa50ddb8e220bc2426746bc0b05a9988aaf3b83103ef3a3902a74\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 98053fe9f2dfa6624379b11904fefed76adc19b8446cea727737fa452851deb44ea5a864300736b1c9a3ce27caed3fea4511e9bb9401d3a98b0892fb086a5dc04ae9e1d8ff6407914d0bb730507ceda69efb840219084c8ea2528b4146fc3420eaedaf45c0d8450192c7af36c3d6dc38f1604ea69fa9b2c38baf7e7cd4e0f5c151cc9db3590d505fd73e9c6363ac77aea87c7558582ff3a7b7ea08c4b4ef655984224c2bd9709d34d9b8662e48a2df5bbab3e9df9e5fb8db8411721c73ab50ac3d5a8b31bc64131415cc08daf6c34faae6abbf1b340dd4f3b1b0ab0d64cfa33b501bca552c950ddb7bb5f59562f73c51fd97f2d6d750b30ff19502516f5210f3\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a25aa3f523066ded870d269c7d26ef45ba35f386097015e0ef59a9de4710e88bffc62a16f8fb02eb18704c562bfb0ab9230d525e23b596a804707d98dce426d3e3a1278c29f342b9dc310b5c7da5aaa5584b84e922a385fedbe78ba432adee58f51b2570b7889fe854de8ba2654d52390217fc1f5f6f35f4a75cae85f388640db87e96908fe2a7b78c91f0fad3c118e75965ff2edc0cc9228cc81700069c6e71d4c7b527869e7a3dc63cf74c7f4aab9ecf0b2498d30765ed719ac0987cd5fa1058c81e57cacb3d489866f96d5962b1fba9f48ff298f89f8261e8fc4dacae06576c550421b419e5c5159a64b6b67eb7c709f145fd4ffbe4bf9d46b0b7d70d2e11\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3f0770de907f40310ecfa536486f77d721aa07371f7e3c77849fb84166389876f4bd2c1730ec69ea95951582f9f7fb9b7ca388689062f50ebf2202893842891edff2bf0449f9fd9d9b5b26a6c96033700230d740dc585e64e0365079df974d12fd96cacddf2f114caa5ded4181f63380f30a696b13000554fb963b6b073891ccedde00ca3701baae4818f5e74838f6824b7590263228e7b31d614432bf06e78247cc82f88c63ad0514868cde210e2625fe5b9162781b4ac32a53d52bd673a257863b0c137bccb2f86e481430d4ae570bca908f62c27746a1e8e1bd051fa2de935bc40278c00901e5974756f94b3824b40e695296dfa730c2493ce257fcd7f00a\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5e4895d00312302559c490c304dcd4fc4a10398cb8d545976d6b700edadac5605c44cb0c0c7c7738fcd77dd5830d0601d65f4b1211b365705f3d5fc36fd713ce5b75e18232557046efb632da5186399a1de3dfd0236e2a4244d72637ccfc39132a642e4d467b15140a32550ce67d602d06e40c4a39085f63b4e382d4ab9bd55e070eb498cf3dce7f315c28b7d83ed704dabcabe0159a7254295755c7cc0ef757614e4d04be52ac43f4586535373780cecc58d07511b310fdb3e858489269968751e25c0641519547127bd99233e0dbb82b0c1b984a7856fd28ade5eddb5df6ece6c252283d66c3477c2a5a631f0e032e5330ed8e097426426502bfdfe1434b29\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 1feb9e7455e16c9b7c572b6b0e095fae2a86e99fa92a8d65ed37f00450a20c3582dcb34c049d82c22200988da67eb45c2fe9d390161d50c3269250dd7e0f6f20a175fc4edaa6fc149a2fca18b3693b7779b686073e3c64f430c7578181389b813700da244d3725df2d63e0bff0b59d3894b646f94587e9431da3f508f23832b0eb69c825685bd1b9381d8127431d7efe2000bcfa5c507bba21b538780aabfe5aa9cbd8a075c91b487b29da70e18c48a9baa411f4f1d14ade15b09aafd0a3984013b376b2355ac9aac22b2695cd608cd9b9983821f1d570f523d3acbf119633af972fd5b311233fd0c7444c10d8b964b8372989640571ad80bf3f67dd1882d98f\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 43de19d59bba7bc49d2971d66a98e6eb34324705a3a860f74bff5edc1b41bb7b168cb7fe3639d7dd7766cfda9c8cb725c79c66cdf7b1fcfbf97e24ef45134b23e1028bdd8a3f6a50564970d9c8cdfa2e52defdc919a4c915104ec63b122323c9f37878017b5c2005af3249018417efdec9ac2cfe176a0f54b5b1b5cd949be1bf64e7e2b1d22e485bd215c61dc3b50af335e52ac5a9be0d5e3fdf6ead6e25146c429d7d4e0153a52e91504edf9e48ae8ebcbcbd753f06ebe111b72d7e24b80d5225daf8eec2bcc7d484a2fbb9d59c17cd5ab718557a452b848fc605b7f07a6a053049bc1221214932ac0892621b95dcabf0f9b2321a6af61fb4f47fa499d9f085\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 81d561d769770756f1120220a1b8abc6054560f2797778bd433e53e256419f4f58b0ad1356c2cfade14a7a081d1b93b37b5edf2cca3f51ca82c683781e25f2df36f20af9a67491b302cb12f8b96c49ded82557999ea30638fc5b3aaf546e7e81675c79299c1994ab1b3ebbe6adf6f91a4b5fe15af92f05c4f9a63339dd53675e843f50d5e74c47ef3a9f471a7b5966c7995e1dc9bbb3f14187636c8aa1e1d3bf70d24642396765333b72a2d450d839a6582c7a285db440734e2488baa416ddfdebd7b6dbab4b21146c9adde2a14f69cc69aca5bd0a80f285a4aba56b2f5abe0122edfea4b75404ff0eb6304e10886adaabee2b778e36527f38335ae0932f9d11\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3b8ef79b1e78c674f827a66f305d67324d31847c0855cbc993fe9159f7a5e310ac2b30621646dacf58e57bc7b44a139c0834b3252f9c06ba6de582bd90de6e94211431820de2e00b9b0ab100239a5a75bbbcbb1761d85a3570dda4889bf37c8d3cc0faad74baa8c83124394cd10131351defb1673cbac952c4d968a4af71a28fc776f6f070b087f69a4d924dea561722f1029dd0c78bea40575b7faa5e8f96d3ac66acaa75aa5f74d11fed5070eaeb9f05892b7faabc4709ebc8b1748fc4d97e1452dc4dec40ab4789df166f68a4c8de218abbffba4b7b1733f81c47b3bf371a35114fff099b7db6fbbcaf37f7fe5d25a0399723a273e2c94f78cd21b4e534a7\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 89721e40d6e14639991bdefaab28735bdf50739f2583cb9ab34f4298ecf8070b5badd7d818fba03bace4d54fa050117cae3f5", + "75a97cb31859473040360b994866918ff6b83356ccf53ef6ea900a1a8ee77f31cd5cf25245c9c543463d09c4ecdcd9886513f630c9bee91ae0fd054cce64199a3e43ec3ecccf68a155f2bf1086c59ca0a3be47cec1d8638b9120b67d7ba03ebdd066493092297a6bf597ba63062dfbbd428bcd9725afd10586f1d6320738362e551ccb8631d802541ae74348dfb02f8662ff237daa10ca4efbe33cefdacfae2e6d86d96d7d06503c06375ca1abd2196bfae5c2ba9a2f4b1cc2cdcd59ac24451742edb3152852a89e5386c16bf37\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 10264b9667483464d2bff8d643de5bbc3482da0563fe1e77f11977c6c0c0b9c8699ab5b0ea87d123f8a73f4aefaade654f550a0e5197468246e5f8fe96704172ab6e50da24f48793f1de62bebf8fc54a2ddbd11304678f75831da77f3177b458f3ef73852fceb0c25fb91c1b99e865dac0deb6bfec1d924ceab739da876e7641cc3e3faf530d4a47b283b7a6954e943d0ab1435e217687ce7c0d0664c08b307401f7473e732a5edb1e5b76960283a29df5e39abae0a4ac89247c82a828273415189858f280a98ac509303e2a94c01f5e28aa4f04468744c9279858de3d3e81e534816eadd8d2188624f83135529544205e03f9aa256ef31c00cb5bb4cb69607b\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6cc03e058bdf3761fa04a89069f97bb0654b41d00d825152cd00db635d7844d75596d33685fd02f4a1bf36040ad71d5c448d1e2a95d23dc150463d85394709f95d7e37aa44fe300e3cb6c59967cceb81e5741bdecfd1d877e5e02a543e4acac44c4563df5d5d2bcb20e68c26ba032928c5019b3030457f4a828b19d37c3bc5f341f00e15f14ac1184239ddfc66ad568682620ef099c08d088d5bd0a95935401fc1091bfa2a120e94d25a54cde34c455cadf6b5f784392e3d8a687a9c56f5348fe9e5082432b29f64ddcc292e445f51ee0af42a595e860b88eca2aa486e8c3998c00a3475ba04d740cb1cd3f8f436531271df58bd2f84c8dd20cf45ba4db256ab\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 177e1f3535ebf19016eefcc188271b53387292eed25eab416ef324d58b7c26bccd05e5843e49b5ea573ec7557fa3662159318994595a878bf162f5206729bb960c502e248a1bc85bb60025ef41d9aaccc040d99d3b178b609a40c1581251cce8e6f410b082d5635f94dfbd06885f2935fcfbde23ae0ae509af1f39d77c2d94c0454cb173ea29381ebdedc4983e34efef635f954f6d911968c4f79b6487b28ef427805f4c3d14d2b8ab72f5d736cd48fae65ab3565d8d3b7af61b56f691c064146e424bd6db124ac9e5fb82e9a84e2d7da8ca953fb8db2a845640e6d48532adc426c4761315bbc2639bcde29f420cb553d6ebff0a496ede669b413c80aa63553b\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2a0d24c903c732f2ad18dc96c7e58289a1ed5887006f1ff7eedcbeb28b517171a25e48bd161b33f8c620fc42f23cc0a4b3ec0c03e42748355650baafe1e03cb1e6dca25bed0afaf5a56f016372dae8b3d92e21e9a5dd7b56b26c9ada092805bdd6933cf2a9017bb258cc19cdb04b2ae507894527d93a1bc85ef0b8f3c2e6fb9671c75cba20986ecccae16470d2a0fd8534fd879d65e62233d0e6450e503912569db3ec382210f8173753b32c8302137f0b3a60faadbd5a2a5c7d117f248797ed44345ed43284adf7655e7f70a0d94c4b05f484553761ec8b7be2ab5bd66d3110b4fed00d83dde2f5e0c6e0dfad1f084a851b07fb097481517805affc7e5abb72\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 28d582ef90052ede462304fb54653941f2b45d26998ae7af80f058646d2dd472d7ae738fe4ec226e2937366e759d2cf741b72cdc85f49004a143a68dd4c820985a5656b583e95dfdf48afe5895f6e02d8ad5131a522d8bb005303005ffe99fce9374cc538cc78d4f383dfe8b95cdee1938a91c847ad0c29345c99efb03424a4a04e52e5f955eac56fe5ddbb9c103223e0b3883ef4b1b787ccac10d9de11b85cfb8d3f675d18144ad64ebc59823653d54b85696bb6989c54dd368f0a130d8cdba7945216b7dc1da1f0a85e73f1458e009884d02106a2ed5b66d9871b5d1143d0ab5cf09b76e98d4f03675ff3e74af40e4fba4f9c0b87653455da30e4dd0897cb0\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 2ea2f54a8bb688cfc16d6566f6b94d3170cdd93451316e89bef148e70cd85e185e5e19f23f4a8e7a5e65d938a43002ad4be43b3be2e409aca1b69292928d98830945784abd1ceb0cec45984a5496d0ccf9958efeac39842ba50a1cad7130ef5b227fe93040ab7f4226d5005647cc1b0259373e08ffcd242b77f9037797cfafc0254a96edfae31c4f7ee08833c0490082bd33ea25a2138593cc88fcfd7668a82f0cd26f4e1dc65c4e010c113bb2678c91254de5eeb689b582601b79ad08198072c51987602fc78bee6bb4754361bf5be123aa9c1f8c0d8b2a804102962c8da772529947bf2dd36456f6ff6132a0c6ee7347afc5680e705ad3b8e81c9a04f6a807\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 0bc548744c7474e5d904c1a21dcf938ef8abc3fd1a0e20d94564432dae05550449d4b6ade94503073f6269bb71afd2b3207b809d39a2828a6f14774bfc04624255c1a2f28a722925e28115c98b20e98016fca0f8c4b3e2947e555113d7bc88d5586bd5a0c361d290b4dccbd1cce03a6df3dacc1baa516b1664608e6b9b097e64eaed352c8dc9b8864b0111581b97bd62a0f1b9396a385de650690e36818fc38d042574401c9dafb28b81ecd14d1b9e64ba867b4bf29f8e78fd919ba2b00f0896ab7d7df12fe4a8f525cb5b9a5b1c13ea609cc7d09b6ee57db3858e62270602662e8b160d7d4b76f2d128c901ecd74a0e2188aeea9c40325c18937e0ab67ea4ed\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = bf13c64caf9726506b5cf9605c68252c38c9151064fc85666c7572145a72fa04dfe0fa5aa12f020f4581f1b199025e44aee682d65b1d6f78d52b03466fb52c6c8bc2adf65a0e20cf39f4e9d62cbb6746de236279dedb71e4c3b27fa7b4263911ef7ee2164384ea9b47ab8efe33c7c41a785b3b8c3aeb329248a3ad4fe443828b73b7da87475b1ac102b582ef16d45678000dc625fbcff5fc6509f3b42e0b097617af91c63bdb661a6b92f72cb1ea33a6ef2b6d23782bb87d069f9726c8c91a7b412461d59433a85f04f01a94b7db2e6b493505f6ab51dd2cf37c22cb5b3b9cff2316fc4a7433af2f6ad4946bd3faffaf03fafc1921ba7dc135f3d06f76ab31d1\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 4789ffe0c9ae08e5b4a13e8e94fc0609c0485dd09c3d10621187aca1a503b0ad3e74ca519bc90f171f2de9246967b16ff69730a4fe9073685d35105633300f8af20b543f281fc7c2580a7d90e5977b13e20e3598daed7d1164f99999c49a90d50350e5e5e134c3692bdabb75fde51fe7f09bda5af6d98eadd4396bd90782579b02a0d60bcfab72ba3ff4414cd500360b21f9cfab420ccb67465967bf5a77efc2baf38b97759c28aa1df3443713c2967223e014182699c82169375388fb204b8bd609df94f5c14de98c4c4a97ef52bc4a26907e5610e249aeca9c951b5559ab1a63235cdd50ad991efeeb5cc87c2f270f3ef916c76beb90dd0fe380ef1d7f54ac\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 3316b766710c2c54ce3c42fe05188c41bfd22cd91282464930c763ff3325bdf4cefe9328e6a6a9eaa0392422cc000a78903552649146773612a9becb4d7b4cdf2c6e468bf11b2ced75dcfb3f5811b596894c8dc7948d88093face5963356ef5dfe93a0839c0a3bde0ee33319fbf28949e9bf8710b988c6300beb0b04cbc841a9018a6a2fd6cad033fbb8e22c8cddf713fcbd096d5c498310a11863c276ba69d81a2327a0972bef0db5303e3d55dc4ccfdbac75885f337867e81994ce7e890dd52a0174639167b53718ad2dc59f75bb111461b713bedbb1fe00c790fed6984b630ead97647648bb09b65db20d2bdbf63b1101068d82a1ec3b2891f932ffa918cf\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 4f3eb885b1033c3f5cdbf48b6fdcbd092972a466af821ebbd6f8b8a2508240ef14957e9cca82bcc1b3124828f9e2154353292ba3339f19e5e35bc6f6a678bb0296b2b5f54dcf9fb4b19fad1451c61539f5b2a3c0e94a738f25309ef87b273cfc3495c79a3937ea0cf56d3bce104b9b1ce30561dfa64867ff722c37973afefea4b5a79073f8ea6b0af36c9f49e61998381d0dbbdf9243838a987c7c446bfee0f18fd90ca023c03576c1ee24d8e2706d337f126775f6bd3ac3c5985592209b2d15f5ddb8dda0a432a5992d784dccb4d84f91e8edca9eabc4376411cde969c703eb1b61f0a8b82cce96dbf4bd97d574efb97e60c4a2b50808963c36c20baffb0ea5\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 2d481e02fd9cb19356afe5a88342998ef96ef107f5b365c55e24073b815907f3ef9a628146f13101dc8305089ed0487576fa5b149ec6d80a0d1e6e8d874d1aa15f0261605105a63e41c05ba80aebb417a7fad72cbae383a26470e3ed867943a2a697b0e89ae5f2a9fa46edac74bbafec445a5d3f7ff8b010b6e0e0dd815f5a915d867c1345f39a3ff33e49e02c10dc0c87c1fbe3adfe8c21024573fe22e8f6700e9b577ba0c494eb96b55ac1fd6cc041f17f834c6b8b6ddc1c4087b6313012532365bf3771ef37bebc694fff80ae7682452d732da71a30cdee5af3f437451aae30d6b240752d87bfebf1141130d24a470fd991bd06bdc7fc1bc428380311dd86\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 421326a7fb2b1c3ccef84998301905f4f7ea1c3b9a0edee378edf33a555bc379399ba64c970fd8c41a72f6d7f6149908d22700f3836fc0baa11f88a15ef9aba5337c3d5ba081715749b04c3a05d026f17ff8c781af9526add7d138e3899651e28544f21dac75fedb70d1a38f48eb711afb66dbd275ff82fa2cba43d265f07b2087821d63a5467c9ec363bef9a55b65537e15fa0b2015d8e3cebcf096c63733cb418336e8f04a86ef9f430d28b78352043151deacf135b27805fccd9ae4bd6e62b10c11173b22ab155555a88960f3d1cb8ec761c56d6d5aa63bad6b0cbb47a981e283f3c494411a4c3f27d26013e3d09bdb7efb", + "f3073443951c83697f9336fad2\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 7a722b22c2327408ee6035df9006171f719469bd5b48ee865978b0224eab4f0c3ace1287c3d95cff5c266cfa54a52c64a9b88d15610f6b496d30e9381c6bd83cb94ad574ae7fff00723d6996771e7395705f97c8e7677a3132dff741e38a5284e7fab7a68b042c5df40ea5adbfa650f6cb3eda0790d5be4d16ee07c07d8728bae2cec1d128647cbb2df8606a99804a1a00f9dbba76d4a9cbf013be2c541df73041e7cceb9a187c0241eb213e64ce29219f9acf064eb63a534006277ba02fe5a8c5fe0f040f4323acf78864d3b8a6f6ccd108131dbf92c42f42159a6f5a86651c1cfe56750a79a2a842f8204436800e51eefb7344f733b50e525a06d8dafc3807\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 047d4caee2c97c7feaa65b9b4c183f54e7cfc8e94c9cd0c0b4c4dd204728c357b959c38376b74e65fdfe3a4b21411e22d3f6495cbb905171322132b879a95fe75f62bb7e648e03b923d6d1e56c810b9b71fa3b68ef01070814e56843a9b943cc83eb6f0091d4c11f0608697a859c3265a5554befef16557435072e251d70053fe6ec28b1399f8ebaf7956868412bc1dd7b6b2632098e3516a133fb13e690e36605f23a588eb1142a55aacd434e7ad8fce310ea6ca6ecd6214bab17ce772c99059ec9fef69fe2d3b1580d53d2ffde3c5930d203d7cd3abd345c56bbdf01804bd146468ed5ea193eb1b329ee33b57bf955704be426768b22654b988365271435b8\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = b0bba3124e4e8d991fefe71464559da12c7228646a5901a7475b1c71e352d6fad3dd37b16601deb4df3896535810dd9060223c0466035c4a2a481a19be2f85de7f0bf0d511e73681717877fbb6cf404727cc52a966b0acb3788967ce1aa5ea887a419f96454e583553ac07b15b3206c984dc32f555612534677bac5565f63d43729a3d2b5af5303d4af92027593313df17f46671caa4ec8deb10b870f4114abea7c11a32f1e66b1ca92fd21bb3678cfb039c5260ad33deb7c2ae1e847d86fb9eba1f212a707276810b91294773d469b484a9c9b2c655ebeaa9f0f77b96e2074c2441495351f605201ce8917d4d8755a74322f88157189dd9eef4b9166967189d\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 2103686c13ca1ec2567a0364cc5c7fbd2d3912d48e8eb79ac078ba92f780ce084c9e2684a7f162808499aa3c7dc17afa25173f6893a382c8a934f1bf9c43b0b3ce7d40f6532fcf6c225286362242a89b9efcc3ce8575099662a51d5ccb1a7dee56c25b475638de68901b855e6ca4f18286aa358fa92a4389fbb0eefc6afa547c68e2790980c41889217b5914bbae5527e7193df70562f4d44b0ace7be822470429c4798c39f33a36870cd3acc0006c356f6a3abff12ace4960f9a03ad1acd44598edf191789a5f8d83f33e4109ecb8a55e66bd950a7f0e91c369fbc97f221347c64dd49ca997451678de3f60d8dccfbf29f92f82c1843500b41a6aab49a2a146\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 081375d1eca4a5d33238f9bf1f7354b2d680752617a0caacecda023045cd5bd28771e38f24fdaabba884c87a70030ababa6a4a1d8e3d72b19dc7474250ce2d048a8ced039c8ef4fea770df5fba7ff5353d2beb06571503835a690dfbc43a40b2b9cb10d244c91a50b76f0e0524dd123a8a304378d1bfe6c10d7c281a77c18db64d844ef62802e93dcfe1df5ec9efb8e08c3bcb7d579e1acd4b0a0c33695a15c458ccb507f1715cc79d5c30d90da1de5d3d371ee17baaf51dbdde3f282fd266521940d3d1b5967f830881bf235e4b896b78aaae61e2105ce61fc7bec6274639c05a9ecf59e27a4b70e14a8b13579cd69b5760859243d04d2bc0b35097c551c748\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3f04e9d3eeca27f5558685349f50f5dec7cf3d25801b977d0d07028fdafd462c7da1433157637cf2e32fc5b83dca9b3e293889a31e3c8d2e31eba924baebac2ceb7e3aecbdbf023f4e1db0e3b49884ac42ac7b79c31dc19796fd08bc95b08829703dd4ab6ca804a8f5c601be801632d17e08c217b5ff9d4680ea36fd553e51d7477b4e5360b2c076e7da5a9894579e33bc35f797b93d2661efe2bb87f557aca9b1e65b9b6d8646ae1771219cbfb0ed82b18009a8c0ab729b2e3815c6a0bd7d4eb0bb0dd209c417ff310678cc6b5813b2acd4d1223f5afe0ec1e08493860dfaea196c86c35f4506fd88dd78011d2accbadfa38323fc3a9625ed68cf649d1aca94\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 0411baa04f289c095a5bf21c481c848caadf6786ae0d9ed6f91a785d81510a3517edd3ac1d6ed4746110a109c8a99bc549a1409eb72a3681fc858249135cb5a24b3aed3ba8b3a33f472b15807c223473bcac0e301a846f6a293b28ae456987b65ec0b1dac7ad30eeb0f3e5d7dcd73978e79dd4b0c80efed470f5c90c8cb75e88c89e49a2c2a3e5c38fe34f57c6b15b835b4cc086721d55b8704299b6cde3b9bb983a9f2403ff68d3f9a55fd40245f421f586cdf8307d73cd77d42e0ba886ae5d191c578c3f4cabed531a0e32899b711f33611a5f89398d903dba08c93084d08e705b1fa5fca28b4e3bd031f5a7a0acefaa001545b432d6665d5ad80ca4cc72d0\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 8e3dde30848a0ec2780b18b8d5cc10875a090dbe69b6ab4e808e723372eeb7752142a3c9be04834d18fc4193e64a1436b7c9d6b62204b03afc122014a6ec2b2037baa3134344b612938a0dffa465cc4f5ce76642dd266afc5375f50927974c3fa458a5cfef69df6316ffff6019f00d40e7951613fd20ba9f5d575fe1d81bcbb1f51bffea42cb5624b3ec5c4f471e3f9fe6f0dfa162bfb6508711150d0727260b63cae72fb429b1153661fb6c6b7d3bfca05bc6ac9e96876c9986a05f62dd85693a9fd8748f9cbcc30ccdc393f9a9249af15610a2ae277f26a05b99dada16354ad93853dfbba23f817ac098ae5007d7e9bd023d7a4d803d5473087f3ddc0a9e71\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 573553d7dc7ae88321d688df3ae7f6a4a621452c55b8caa6c79c678d30f73413f4010a4673971dba59f2a31dde45fbccc00a24c316e186ee0769eadaf6d6fc11193f389fe3d874afe4ed226908acb2de226151d81f00cc8aea420cc2d8a04b24fad5f23353932109ab57c0ac3566b868692a8d7f50e975056e4b462debffe9d8a7ba7b8a2623970ae17ad5472e5fd1a54a4592d4755cee2a4c48391850a7dd732ffc9fb1387d63aad77d767c5ffedd557bfb7c733d8405355c9eeadf376b1ab3a83de9a2711f78903509f030c096cd1b26c867954c6c2c2785c19b438990f4f9e2748da577acd2985301065f5883325eb154294b37398dbc402e805fb637e742\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 8f65cbc7da6bbcaddabc96881f19fc7fcc12f7c37995965904a130c83f94294848ee51ac7e0d631f1c8f5de531297b458850179b41bcad718bff75cd7ec3538bfd4c24a3a66a1923ff803595ff297077a7c46c86e58dbaf8532c79c10c630b9282f36bf1cd10bf944c10d7031da6e70efb61850dfc152dec6f5e046990a1880c6d2f3b737fce1066adb6ac7e83f4f54a8364406c85a3eba4d9d5d3653c2e18fee613dd6d6c3aed29db13eacc0ca6f4c153c7ae623061bcc91f9909592c909b78e3da2a030b885969089957ed8e5d547f613d0f75dfb3a6192d49d5e35482841457bb97153ea1692fea6498bf1530546014eefb1041404b04034184ce1a93f1b1\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0ef30aa40666dc896d83d48f76736806caec90d3e75fc02f61f3d6b2286cc695cf91a4fd58d39cb970c1c1c507431f9401330836d6e98e7d1795ea2afde9adc53da7299325c1b982169f96b11219f1cd987796522148f38a4539420782fa2d7bcb28e836188054420308ab512014c85dbf21acbdc2baa2a2f044de110701c0c42f842d6bd25460067787707b52e1ad14d46a0d815c754cf7939ed10467bdc0de1cec481bc2848dca5a385ba2baebd6b23086ff70eaa6ac2cddfc821f1c989573c749a86ff029faf42a1193a3a23571a9e1321f0b8c24f76c4b6828dd18e0c2bde1a3dfc5d0aa59c676a11c623d06e3d2fc652dab6a980bc4957f3ccbc462ca6e\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b0e67666c17cecdd0ab49ed69aa23b34da30fa6607f0f1be12bb6d5fe480ffc3cc253e97159c4e789019b78d7ad85f197eb91852b03d88610ecf3d63d9e3d69ee2dbdbf8715f0ddf2a0c238dbd83382488acda3cfa51a5f52d060b089354cddcbf76f0bfc74c619988dce3566310c884cf03a4eadd422c8f821865a04a991c64af3c220de643da0bad6a71aaccd87727ef62230c595312e40b1ef12d1b89da7f2c729a94a3c576b750061f150d074ac0518e1c0fa83a015545d56dff6dd5f549a5a471f6b029d2c0aa638e4c797d1dd6aaad0c8e58dccb184b56fe4fbcd7bd43a97e6c1abbe1f44ef0fb0ac79d573e286ef13446b697d2351c00bfe8eb4aeeef\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1d02530bce0236b2b3de8b12d0b6725f703f679b39d28dac0764df224d2bfa712e22bff1b56b9ce565dff215e762c5b2d3e7e5230566ad5eb77a5b1eb10c21be29e525df1e7001a9797340e589d078617937eb24ac0001eb4990cb23e8f7ad00850ab8eb2f289cdce45812ab38b902386327a6480a76429bcea479da842ae8d632ff6a5477a520369e7e40e2b1cd8417c27d6e313621339229033ab24b516fd10c4bdcb39fdcb9556567592d79019954be9622aea1751d73f9745402e945b3d9aef077296722865e2f9dc88d1c1e6ff82e6196f690531474165d8a2546b1a40992b7235bd6706a41d414310e014c091e10a8e6cad578b9e23126166ba2cb2156\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5783c140eec08b80c4b6ab121a106a5eb8b98d10316aaacccdc0a128d6abcd9b69c94256990fa05d747473d39dcb7b7a105c355fa59b88c022900cc2ec0cc0b6d86c498c50f21de8366e497410820f16d21f49ef6c54ce7c83cdb7f6705a65be1c9dcc1ca784933184bdfd2cfdbc0e6849e7db44a14fc02bcda843ef3061a125deadf2ad5e7c64301ecbc8a0bc307c4a92985b3723fceee8343622207a0dcbcf82b3130b6922156c09cbd846a59795", + "a7756ae6c71752f73e740a1199d4428f5bb98b03454944af3553a98890ba5c8ecf63ceae9d2bac536752acd2752e5dd84780974aaa8a1ec2560a04d43a69c480df1c76a64e734b7eab7c148d22b198ff8c\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = ac353b1cab78df8b9eec61d5de41f878f246914ab28d983f1b9c837e2d5b85df9bd27f07821e01d149c1e2e6a95d49553d23ee075ed98a75cb5903d7ed474e2102ead177ff584862877cea040714c3cdbe7dc0a7dab28492d7a6d14e1405b8d3f21ce35bf68a1afa46fb0de0c5f9568e3342b30417cd245492869d2264e1c450b0eb22d03aaad0e9eb8f6664e2006dfc044b5c147bbc31c09452d00e154ff8a5c15de66d26cad5efb656b4512f73df85a577fe83efca291c10603ebe79cb3782a79db4456305f259e793300899ec565621aa3700e9d1f328d161aa7d2d511545c3d2f9e3d5dcabd9f45fecc2fe43d6dbf5088362cc1f5193f8d785bd5230c6f4\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b97bbe22841dba4b6d115e4d297de6e2a7eb18b69651b15933d8131f5184566129d84e7e3cd9f9670c1b082afe403e8b2082a66db6178c8511a6a1e944a257ad28b163653455b9c416ab2914378d2bbac4edc5692bbbb5877b98ae7f7aa17f6db1a1a8c110e6addfde8d083a37462b461b842690443d3ca2e14a420fd8e663a2423477b0ba979b4f99be3589527d82158d05f437961e29852efe2bb7c3ea1c60993a70170599858f951249405b596cfae321ae71e29e2380455931c17387820d3cbccb91b6c55c53734af6dd94bfbbfb5faffbb6fba6dee37274bfa0c4e486d143b6a820f4568d67c8917cc05c97235984e1716a856071743efb4b00b461195a\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0d6a1193dcd1fc7e17c72993cbc0d1fa3668496d131cf6e4cd70f9445edb45d228190c0bc05afffa4dc57a8d2abfc68beecc62bbbf0df0bca13101eb0e1a82e62d1f942e718f5849a8b47c9699914bcf6c69807c3288a39cd25429420892d20f9a65be77135921633f21d8f62481bbad628cbce6a5df56ff009ca635dc21c3d64df38382f5aff0397ff7f289b49da3ed1b31c4a25b39f806d8ff18298cffa65e312b663673c7d2a155ab7ecbc70710be28c597a291a2ee0ad695589044be2edcb7f91d08145925fcf3ab354f96717a801ce2d293c6edd89c1df4c9beaebd2ff8e360b1cf95b422729722ee8600939ddfdad24966b867f53be1ebff94e0733d10\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 864714bb1336f8b13d8e6cb9c5c9b8523a136f48cb2e284c56f5d2e9f13139deebfe55e9cb132f07d5437bddff75083ee9a912c913372e343d0d4f5b23a19bbc3c4f35fc1408bd2ecbbaefea399c1c217aee2a0a34b9d37af538f01a304689f5b8770b9f30cf7e525179efb333793a2ee89811159e2d16c40f507de9341acdc841d9341a79d1408a6301521b8941e1e71c1d9126144de7e9b6beeec39982bb8d57c62fa8b5274cf3ab0a90fbff7245a30b79e407553fd56c068ca7cece808bd78f866412ea67ee515a4a6469be5bbe96928bae763055b1f327000387240cffb6a9934c9b7289b2101f9c121d456120bdc268b3f490a543246d21194dd3aa8f6c\n\n# tcId = 57\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 9979b2682f0f00ea94c2e937924ea179cee83631f72c72bfedb182495301a15695e6f3046cca149e939284d729870500e639924422b693a1930f296b210b565f2ceb61254fd57e96158044a1c913621f5af9d3a8d593a9899ab5153442140650227817c5737353648ed9dcd137e8b2a8d66ba62b0256082f7d0d7f9c2cd8d457d01edde6be4021ed7cd6334c0d95633042c7da5cb9eee77ca1288e3b698ed435f21bfe1d4a6b62428b4f8f9612fe19bbb6dfb53b4e387c57de60228f46b3c1d951bc1df5ba6d169de2f420c9e2fbc06b4384eb3f3f3f8778696e862d8ed290a2105802a4a2376557406c7a390cfcdcae7ac71c5c8b4036bfe6718f7e258bb636\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = c30cdd24a0f73bae9ab20a2ed7dc92b7cd18c7603d05dd14498a6c9a7f3b5e332b6cba1aefce53ba9977c452317a8c5115eeaeb4da93c67d323381935eeba09f1ba8755e935cf6f0ecf0ecb7c54165f2dbb221a0a953795c38694c32e715e87673549f9bd1bda907b7f2b0f9430336b98e621e4fdf5c569ed9c5f1a146db2b1ecb0da9bc53caca8fecaa20a59ccd7a97a5323a90140a248e6ec764b9ab573278b4cdc818f202801678192fa83a01320753848b64d6515746ff99edf5384c8fa5317d3e9a043dfa613403b99e4a05a88310157d02601b940db9ded7121701e27cadbe494fdc855e583c1da47bea02520ecfa8242ea18fc61c922ec29d9d9fe209\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0a3d16f6a90c75c52870a3fd75ad9c7ea68aab871686c058659863c84c732ca8d41a0e890e717502a5abfec94a9190ccc1246157f79079091e5f5b5408e5df84550fd302d1a223e9a227c8957fbe926ff8cc83b4fa4bf3a93826724bc9ce4b81343ee1130bf9b6b04871a394dda363bfe493190f0e0bb8cd63efa6558b5636dfceb98013abdaf77d0bcbb139b5270d16e4c75c1890c3e31a1b665c59117d560782fa4dede708168ad08acc4ac4a72e379f8111b06af6e70d4029eeed637cdcc4804bfb20776942675c85b6ac7f2c9386075940b5aaa03b0df227332288a78ec7e9bb086fae1657a87a456ce78ee1a197222eb52b67c6ae33defb7d1cfcb39fba\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 79b10605bb396e0fb0ff055e705957f77a8c178b49e6998665d7a07d25eac2e6450477ec5ad54ec5aac9d2802d14a0fe290b0f577721c595c14770fa9680e623d8e724ee97ee0e486d8219e5e4a5ad6d9d12e35af7ac149685fd30a598a561220d497612193c5262d7df3f1d0b76acb3896d22c29d50f5c51fb9ee279d8deb770124ea9e60635ebeaa2c187831b75d6d73d26c3bb01bb958b6a5b1a8fbb5291e1674ae985d4b5f0e1258a803160ef06469e6ff92d3c67de254680ba245c8c4ef3305e55a498076aa9833fabab887258c757778f7dc85258f75efc588392b74f2aee52f04e975d5815eb6350cbdfe18824231a6a5202d67f2423c4769631dc6cb\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 23ff1fbcd4bf817c966cbc4fc9f4c62c948664441fc4259b6693519a95e266a7fb3fc51754905126d74c8c7de562d3526932b85fb81e2bdafea221152b995a904a1f980d6e88f276444ca4dffa1e35ba6942478f31732cc4dc2802eeece0beffa4a637b59b96b6ec0c9bd236d438605a177dd4d3bb2aa195d283e379e365645a172ac6712effd84ddd5b8c6736012b417101f6a5f7f2d5daa9fc58ffca9bc9565ad65821e8154b85e28cc8064f11c646d795efe9ba986420b28d8aea0afe5a11e038b03af78ab14b95e050cbb228cb505b708e56ef73b6a715b37d42af08a10dfd573c4fea47a1ed582901de7c0d71e1d016714f03f59106a9d10b15ede1892b\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 42c18c5f195b1993fec4857593728cf00793bb0961f0a924b20f5cd94978acec7c4cb6d4c56dbb07028a8454d1f3b586ba17c2c9f4c6f993d12d315e49f921dc1e81344741273193b89cea722ead9716362069b5fda2dd45f00f646a25d17ead262c9c856cdf8be4b7fa54053ea5647868cc853e0843fd4577086b55502cdcaf7388ea92fe1250f2333cb744f7108251745cfb272e157f346cb2d1463a6c119ae0d6477232b321075bbcc69d5e76c8485d621bc17cea315c53e49036708c7b33d7f65dd851ddd96182b873e9efb2979678e78116d4d85063e3b314649996bc3908d409158221b563a119f4c857fc97d280e7500f0f4f6ce9761d2260189572ed\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 8022366a2ecc0f3bedcdfed040048a7b951708d3bd22049be9e7ffeb46da3e2ad1277207b2f84b60bb24d00defbd2b895f3242fe1870a1291ef048a6c164486445729302378b411637073e386b0004321852e448f07620554dce1f75f1965773e20c01d0fa0ce9f51cfb938fb8d356ce3e281675d5e2c5aab46b3b7219d9660fffadf3ebc1f4618d46f54cb03e428e74cae7ff915213194abb0dc016f83b9740a438f6952c6f3e6bf3fc7f124196c34ef4e36cb54baed6a6707078dbf5db2c2941a235cfaf86df2862946e36f4f513160e50dcad2e31106f48619a41ba3a94d2012a87bf21a81dc23002a2c14f216e0f16e57b3cf26419c3cd2d61503936971e\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3c967b1b7453b98ef67694d96e8fc81c91475a6090395d32150f0df1f9492bcaad385cbeee2143f049aa7a7d59c0876859cb9c5197dab9a0ea886cdc58470e252a4c555fd48546db5c8bc425430ae08923b6cadbc48cca2a68167aad493a7070c27c9fece033567a1bc4969c4e6424660c88e1ecd657409d61f881411d29c1de427be1528af02db4defc6be5df7db0c85f8c890d50223ceacbf715b938d9ff2ee8dcbc57f65583bea6e21684cc5bb629408a80a68cbf901d6d05f1814353a458f6ffcac1c49b7f3cef66f52601f65ad4289707d44278694267fc5c43f4f9df765af887f4ce1753ec189553c77ead37d4dbf963f7b73f360db65b417299384dff\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 238cbda5396565558992dd9f4e51db93629242f2e8dfb7fec1b1bac8bdafe212b21125b09e782beddcc0122ddfd8463b4d330f2d69875dc560723e58b64f154bfbbad8f8ad3053f0e08108610298396cae35e96e9134d64c4b016a45abaaa10e8d24759727e0f85840f49a99d1ffe9d92561c6d152d1d033fa237f9d23b44ca3eb9c2c353595c4b3bb540a3c7030d64029d97f146a4d5c107cbf1a6a111b8bfeb148882753e3ccddc897cb3231b14650261c9daffe94f4594c43d45533692f0c4445646bc1ab30af8a6c548e2ad3d1fa64c50bfb96542a4c1b04f8a507fe352a3ea1152a3e47f52b520d4064b878d8281a7b3a5528f8bb7353d9c4972323db91\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3f40a7d901d1f36a2052be75191d05e0141e1411ed61ac4556f411ab83be2c0fbd4c537a537944130c0b62993c1a1ac9b1f93684d7d39112652b0d5594ad9abcadd28ecb85e7683959beb069bd22a4252d2cc1ef3ba181567615255873bce46b0b27ab06d881b1917453c8d944c8ca76b3bd2ebac261b9b9585ea7cdd6cd189c4db872f5cfa41c2a48b1f06f9a", + "5ac70edad5edc199766f7113e60b4da1df4486971ee371fe69ba655578eda765cd89436ee74f46a63a65fe2f373aad63e28e1a5c58db169f598a1dc9f638585da41eee8e971a8429becbb4d0bb03788ec6cf1af7102af35ee1cd7b91e3e68763e34e56532e13d133e8cf3f4b647ad697cd4ca3\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 2974ef65a46c44f98e9e42db4a90e9896704ae8ed8083e2c8cb3b815b53ecebf381ce8ab71dae4f6a17ed3cd2190655e0f7944d70f61dc602744d0762998661f6e3414caaf5be9e219ce861b9e6cfffdf0453eb586c2ed7245ebca69f145beb5d98b9b41336f25193733e0e36c3982a182e63c3c0bb6beb8b10246f494b01e23ef8b5c2d2307fd5186e9177c8ceeb34b366393ed6b3556ba474d3b07ba137cd3f5c4bb3b614289fc94a4dbe7838d00213d828f505feb1f8163b949002b08da26d4bb0b2ec44a40cb059938bca94029804942bbdd08b975ba8461f4f929179fce2a6e2c15cfd4ff1cfd55a9d03d7bbccd4942bd2141ce3b899c48b8c0f7d3b38d\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 53d232f8030be51ed89087fd1adc816d1ee52ee9bf91a7cc43ae1ca4ec613ab3ba4dfe02c4e492167a0de06a2d546022aa288ca4a4ec6db4455d93343d80c57742f598493657a57c62ebe14fff7f7e3218f8296c2b9952bc58652ae81aee9e26450fa8c9f065081f00e3afc50d17b67f85dca8eda25fe3301f9696d2ca7f0fc4f418a479a2202d83a44bb5f7253d941ef9fd2fc1e6c4c42953d7315fe7916fad820e61bc3f1236e72e9b3ce5167027c791fb9179aabcbb08c307b70d69339acecb55840d0b24a8f596dbcf35e474b71c66188adc2e871436feb12b671261235842accadae54d6893dffa5c02a337fbc58ea4d0862f94f4d18bb0df3073a6ea9c\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 2688c25cd6d46dec0c961aaa9f80b38320130c0570f7d028a6cfe1dc0646152cdccb77e0171bc13b14a38e152922b780b73e63ada04cb0831904bf952ad15d82922e11cae73624b8be30a8636162288f4fbfc7ad0bff12628a9355ae7e3b329de67c7ea978ee12e2e8b9b98c8ed5967bcdc1b61a979ca746b6a4b2f61b964f8a8253a443c16a960e94e99f6ea07c9388820f95aa3d4f5e7ede3bc7beb385935c96a54e11e94a1928a6e0dfe68af8475b6903cc9191d2ea3fc43eef8dd0a74af3e8f0761d981ebf905c3361eeaee129263e3d587a46adf60747b6ee0da148a4183ae82f569b1098637a55565a17dc7d93d30b232a60fd3fa7534ef1c995395092\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 7c4a0234962f20fc3c3402d73a5f01293b6d4066fabf90f2d3221c11d22a415a4c469558833c9573bca8689eb6088ba3ea9e499d6d4deb5106fc9b6e0e0da5d8a39c00cbf455dd81a24cc15ce0cf217385bdbc7603a02967dc1388eeecf15a22431ef7da1cd5d208df946f90a0f1d609e2372b148079bfc3b7c9fbc94819d7847fa73a7aef0c502b3ee0a5d0103aa673add25af6f4ec0dfbca97e720cec8a5af70af732093cc726d72434f7f2ae685c02c4c607fa2f025c7614e164099a27f8aa214c6cd58c524d6402299352f2a83ccc63ff4a2190dc5ecdf407012f2c5c018c4be31382f06ee3aea6a4685cb395680cfebd6576dd07428cff98f6a5389a2ec\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 88a2ac7e968f22bc28eef7ec6a825559216e71a51e2b0ce0e66935b33ee0bf3a0f72af9d35b30d6afc9117b8ebb36a1deab61d5e3a1977d32f246918d2d43717b1489059114d3bdfceea25477dec7785b4ebdd230c83e1a7db863b09836be01d005f4cb6e4629bec41d517155410634502d06e5f992ef377cbfc5800f71786a549fae04df96ecd12d0b94857d10f3f631ac2d32a2d18400d12b0039959e725bbaac36245599f71a6f38fb2545d69ff1712e712e3be7ef65df9cac6252c2ab2963d733b503e9f5133ea539ae09c5efb8a1371bf96d617c9ad488be05991ba6e021ba20b900553608c08c67a70e88ba0e2219fd8ca977e8b756dfd5c370a6024a7\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 532ce064cb7186e8b373861f34435d417f4073d1a3ae6850e0ac3909faa275b388ddc7ea7682dd2197ae74dececaa1e21bded0510dfe5a73f8bf2e050aa69b8e592487f39624820d7bfacadd92320bf5f8bcf3b170efbd5e78f36a81cf75262de0ecc6f4ba033abe155e563e83cb82f39c4677df3c8c47af2b1db91e36735a5a1483a91ef98ba0d20abc93bbbb1b79fb9cf553e278d2c5542150f1668074eb1ba7e59eeff74d8fd5fd35ec168323d4b886dcf3961e3eeb05d7bc730c01bc139f27683ee8c1356ce05265d18508e2689fbb34a5d6fc26a40094f64b4ac1cadcc3ce9c3c08aeb181f73701325fb77d84b0ff9b0008aa8f68dee76a37c696c4f8ba\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 19082cac9c77c7837df434d9df18fbc9da0d3efb02316a2be47099aebf0afaaffb08dadc234653b22f16ee1aaffd67afaea5b8467674e1a359802bcf8fcea32f22b21bb258c4d9c802a8bdbb64b256107bb61c2970a6de9612f781cb6ac8852d6298b3f816904cf444203bd6165ed113ed04b5c6568d37ccbc581246e3138669d463f1c1f837a3ce6e99af0084f360ffc0e73d94e633ff1bc69abe0884b2a548066d9ed5674639d4fd1c5f98252b800c43676850ca3885fa644c69b6fcacdfd7c44dccbc0b2395d65c838a4f4e297926ffeb2ab7beedd912e2ef3e8bf685d7783aee5493ba871aa8d1199f88e8cb039b4f529110cf8f256ad89c7062414df91f\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b7a46c2c323fda6047c0efe5819333617dac68c61b047d40b86881aa4c8dbdbc195e981e644ae50ab734657206a97d9c525ed3591c8dbde6c617cb150cce08afd867599df818db9c43a1c85ca89fbef7948bd7e089baa7d030546ef749ba5bd5a414302b1dcfc88a7a0054630f48600e7926d99f8b87460eb214df16dc077236d1239c70db04880e6d6044788f2deb20a4efaa3d8e43d73e63792b55aae9d61a3ac50f6452368cbdc7481dee9a419608ea401523868c8a9a825f858f7918c9ce0e138554ba55551e295323d13c30a01ec160c856efa17711698e4aa8e7457b2bf89a158ed4a0e11ba5972c996a1a9719628f0b5ceb81d415e89f34b916c64647\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 743ac2e50adef925fe5d9c1ef79a650b92b156feeb8f2f5b47f3cc46ae90ff97bbae177679e69fc62f8993b45f5c813d4adc853f469a88b487a04920d490b786b1f511fe27c3cac8b6c631101575154bd6faae13a1798bb66a7df0a6344b2ab08bb7edd741c53078bf5cdc2b77806b103b98904db2bd0038d6cd974675b7aad4af88b767c90b709b35dca4865aca0f55e0467f37367f4cf2ef52eb97060bbc80f08d56632276f2049c51f3a6ad95ccd7cc7d2f8f9320a8dc15acd653c29a4eb6e33094cc957bf8b762ab0b6b128ae3c9306b73c59585864149de30ebc0692bd602735a7f0c29a422549346cc06e44c11149b92c31466c3dd4516a725cdee4a75\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 247c1089d3c148263fa548007f4416273a6dd21eea760cd6d8422dfa54f607ffb90e825182c4ce897e96de0bc869fe1f96cbabcd9321d5f379215b44c71fbcbd67635babde3061c940e09fafb73d7da345cc01af91edf4a311ef250ce4fdd172657e0c3eb046fcac5f49b0ba149ad8a06dc67c85107bdc064a308330fe5259d50f286dcec2f4ecd6518fa7fc43555dfc8a1692e5392c669d8903fdbb257f7c8f435f872bf4064b35e101a25c6ae7bd7d79ba31519310768272a2153b11d55b4f9cf6ce42584a4204c846cc40ecf9e96fdb428b850607f92f7638270bb93a33ebaf7765c48de75eb11948876d113eb5e265e36745b267f4fd5804519487cdf4f6\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 5f739b137b57ec0378976ed71d00279a53a17069df1c6e05eb087d20450bb88097381c8fb50b12cf2e2924c2a863711eb416af40ddffd244f0657e2181061efee132e008c82ce7e8fbcb73b376f334b25ea8a842285e62ac6d1f73a70a6621452dd8d3333d44f89fb63cecd9b229e7b3e289eec8eda9309153da264c48296dcbc3afee796458701494cb6f8d4639bab7726aa5c5258de29d4a1b19a079b6f02fb1f8e38f13ae9def64473264cfac91158a6d003544e5b273a2e229c72ac566f33e0b2843dba1297d33416b93e69f4bef4e887388a44c37d310c14a36f88b2bb73351492fd4a8497aae14f5b8664b0fa9427faf2f7c1b990e1460d01a2cc80adc\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = a6b75fd7cf6188859a2afc987d28a42e81ccd095c15197fe71f42f37b60dc7d8dd5f7c1687e7be87156d24eeba8f468f66eec94e7167718f5535d556052fc6ddf61cfa4ae50cd7420670611e6010e4bfc945740240e63f0f6ad18de889e33ec269c56ce541a9f2359257cc313c46d76d1c4e9247927f0f7d4dc96174305980df30ce5026585db1f02e019f793ad590482303ae52b39f821650f0eb66b9d79543e5d9f81d3f1c8a64395065d978d1945b47c9110b54b58eb671b56a7a2502db9fba6ace43953f14480e00ae67ad1e16b1a3889528e3e438078764514322cd3a1723a08ae34b2186e3d38dd54d7e53f1a7be25b680fe15e9f813a47001013da5b1\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 667db4f818f537d8b36a441eb01eac4893841c91c6b44be684e7eb6858fd938c350a1450d195384e556e04387e8db2d69f0c9658aee5ea58646e964c4b01b96d08284333d18feecadb613f66ed69b6bdce9150d25a20a5abf4e8212a1099787eedf70292909a3e766a3bccd68567331f7ef6ac798834e2f806595060be19b1908f4c41d7c07bb17840da8a7223feec0e001f36704e87b5b703d9005c6338c1e2baa221ece6037af2653023f022b6a253942cee075899030805b7023fcbebdea43203bf7378f12472e109c7425e5806f586fc9521f7db66bec29a9308008c75868e5afed351691a1a7c607cca6bb711282a9166fa2ca743fbb8a42ff2d72bc83b\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 98484856664b3cae4bb563a23f6da8fcef1a168408e58442", + "17af959ddb3f36045655c71f2569abb4b4a104dff68351e7bc9839117a7d4b666a21201e587823b2578d689b249150b82f3ccb2b36d31a4119de66cae8260c86dc553e3cbb8c2f68f8a7ed72a8526174c2f6df4403482d99fc58a52a95988ee3bc61505b14bcdd3e41cff71f29caec8a59d3181625e1e323967120dbb27f566987b66ca0f1b45429e3b363da5e1634ac48d5a7697a06eee3f96f3c1b84f156a1ce7e6898e07647ce62cec7ae30a6370411ccf9425ca28ba68024f8d21ef59e5c44bbbb5a1bbcb86af45b708d4eac46ca5e500b2ca913a5b49b48c7262f8f50576e7147755be488d0\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = c1803ea21a43fb4b140650b7d2cda104f0d5a80a385e9b7055c509065d9d671c3f9fb2781ff5ebe5b22ba213ef62d54a43e2250ca4b62cd30b692052e2a7484b26aab40a27ec3c714c733093246f3614792c52b487279df6a693a481033022731fbdcb52c6d6a74b3f2b020df806837a84c2c0cce9d7c6e39f24101069241b7fb432d00015631018a94930ac3ec8c609bc5da81689b20c93435c8dd2edfbb86179c310b83b08747948fe35ba3d06b96d8029ce7609d53795f6e931d5d326ab02a837e839f0f20378a5ccf083f01b39464fa165c8221388391664765dddceb5fd4da58d088be7632f00a889a654d82962d68e078d1379eaa055120dd00b7c9dec\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3894b11225d3ba5f37298149e2f31b7722a69f3d948ff6a1e39cf651f2ceb2bb4557945f90a6353dd9b217c8fe5d07b9383b5a8ab269b488b6d73030dbd4d2699e079a1d29d34088d9e9db18ca3e95895fb89041c2c5efb1df6d4ce270a577d829216a7c085e71546b20c947aa258f8c6dde4f4c92d7d31f39a447dd96858817928d2d73eae1c99618a664ba48aa7b0e757b6cf259eedda2f070ff0ac8604ae9d9fdc347be3f6fc2844f473a5ee849c01d20f8b9d6f346d2bf87f812c901f935fed89f3a0248484a9f21816e10a44f35731bc84f87c4d4d0723fa917b3f87e4f77155af986ca2c3f8a2022fe88db007a07c806c60cfcd75d787799f8b3aae924\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 31cb40aa860da5f103541cffdf14388cd82b683183d0bd4f813d6180ab24537b78f048bcc2fb6a27d79a0d641cb78e904d993d119b0bff260f16af03e70a45d3288980593b1ccc39c105790e0759cd0d9350e87c1d12b448fccfa9eb0b84b745480651caea97bead57d1a6a8fc98c97c00b3daed4662dc074665bb724290603c1b668e5aeb401404a6103412088285a436ac96b8860c576b1c5ebb6ea3d0037ea0d0f4e016046a9cf4bb41cc880556d5dcd87c2857da1b62adc97dc424055027d219f4866e673597309989f17f5bebe89e715c14dc8673c07c5f324f4d30b3bc424b908fb7cb3ed4d499b716575a10905c197cfaa5a8f2ad0b7300f2350abb51\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 9236f2a93872e266cecea65731a4c8942b2f8397f1a844ad667d178566c92b823c191595fa94220105d53c64fa1b60dee3ae982ba3eb507b99011d402c227853a24f3470133caafbb9d3d09fb45e7ad3060b95f53655e55f3264838df3ab258ce5cdf22170f0bd763092be876fa2728639c9a71382c4e04cd142d468596c91e86fc1608cb37af190c3e5ae63eb5ffa8f73fff11ef4b33770bb57491ef850492caff49d40f51e36f55b1e23489663a4bcc22a5e3f3cdaa2806c649adc288fe5031f2b047efcd777345c7803fd5b7957f8bbd6c3370d074fd7ec06b8298b4fab6a49d565e07daeba504871c853aa9d6393a1d83c2393bcbf7cf65fa0d2bf50c204\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 996476326e01ee4b1cc50cf43aeeb6cd5b6ee7d4d9a0ac4fd6177ad1cb7e946f05b1dc4ab363c3160238755f24dfa7b44f5fb5cceb3d7086a8ffcfaeaba0ad6c50a2bf018de4cca5d01d1db2f818c8c5aad4ebfba39c9a2bf72bd734d1a5c9a51a7d5a29cf8a1a7424121704751c23a40f2e7989b24d3e4ba3c55ebc8fc9df13be98ba653cd18f095edcbad10fee9c3d5cb524413c0b30d4eae9b7c3f677d53bd1268f9786e2f03e6f10bef39c9102cefb0d89b51564d109a6506f2d43604b9c57cb2f9f83add3e0bf3eb80a676f5f6171afe9956be3bd3ba1f7c3d10ea1fcee11dd3d67ad6efa62463d6e418219b03854bd38e1193f43b3b0e4a4de46162c97\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 2cbe8ec045e8cedae1543a7f3b2f0604a2a94ba7a6fa268c16ec1d84a3980e76f71465d0d214caa0dd8f0148fda5df1e4dcda71c0de219447a7d562f60558418b66f4fe12a5b57a2d0c88251f5a4ddc3349b9b1ae40b41b695bf1ff69fe190c60970d65ca51e3de57cddfb9400eeeaa0f46b5df794b18f0b17959275ac800f57d3c3b7bcac259e6bba5dbfaa68204a15835c72a7c3602347c5fa16c402a37b08bb978395ed03aea43a05f16f2d501d786b7a6d4652ff6446fe16272d59f473333c0aad54787e32bd8a160517404f16aa7817eb6329131c2b2242eb5ffa621a467fa5189c574e63ac3eaff10d27cffcddc2f8fd185ea6ae5e3e64388ad1038443\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 54b4355a6ba1d1f036c86c12a495abfb1d005084a55624660ddc919242382249467ab28d6e975a99a6314ba0bd9c0c533999b85d6df9517d95f18dfd47e878aa8d0495ca5a1fe5bee9009468f3b58272511a6d3503c757bfffcdc1a00e0d0ee2ba385e3aab44e91c2830eb232994b304de062da2751ee4d0d3ba9d8fd9a58660800be4e3cac831850816a183d0a7bf5ef07fe15416987d2a9dcc66dea01f620250eeb8adf5ebd4f3e59eb5c9d15701643d8d00b169fbefcd99df2f237f9f2e7a6b464fdb27a808341aaea2167861e442c69f2fc2c8dce3016e7d58e5463fb9b73180839860d7e498e83f2dfc9f593521ee5135f4a24a853b409c942b55be8477\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = b2c9d522eab8e949726340434fe91a1934de81f97f8085289c508c99a111b84b1dd0aa2210d29a50f19ca77c2ed1a5adb426682ce9afdb18269a8ccf98b52bda2bfb0a62f7497832521aee1a22d22aab83abeb19ee3d9ec924728d237a88cf18748fa26d53af27935438fb4d6f6a4c43e5ec9462ebeef792df7871e64560dd0fedd94b0ab97f7bfe2816ab208e5cd020a1f5ee490de36087e69c89fc9867fd06610381cfb01184c6b835cc1222ab5a5961fa0dd0a9d7b8d6b7735dd92ed6a15b7694376b62e2cdcbe37cef6268f120d018433329a396a6738260c8e2f34da8bbe19580f1ddb0007198aa2d2d95fb43d96f25b3c46c196d5d26672c30ae830924\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0f9a528468ebd469bc9db21a0edd8dbc568bf0492e18edd1a4a7f28666b839a9e3d3ca2a38b8ef41422c0b40de173e2566e32285461030f0cddca6c73f5f03f67b14c146d52b4d03a83dca365cd603dc5668b5dc2bdfd704e23ced38c1d20ee6189efc2f4749c36009afca5362cfb00e5699d559b1e82a4455bd3bef96ed38df75a9dd1d5786d224657658f048b80232bd17f8e690108d7036349ca26a8b369d3c9355e643d4b6e88b27ab7fdaad0115824fc333185a3102fc39e20355e9845c9684813dad7e2b0be33802aa4b94bfaed0938ab0ab1a7cbe28df74a359d7f301e65bba1a8dda1d8874911f9e81348e92db4f6f3780361da79369c6dc773cf6c3\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = b408a5f0124d71e810205f8c8618eaeff99cf5029d2c9c7be90a956467a8f3f6df2298dc784d228911342cd5a1dc52f62a9f8e838c3a60a1426f33892e98f7249f2945723a374901c8e4b21d1de9585ddb0aa55992b1d88e685a088e81d460daf72b04c23e3b2ba24c9155aadad7c737a1b556352621dd7e7b5197e966d8ea7c0c50586faf4182aa94f9051f3dcddb5f67e8751eb8dffa258a52981119670c85eb3b371a5c66d635aacdd810aed9a28b8e3d7a5eda1a4db8a857ef65a9b6e1190328ec09044ac41a38837243b6a380647cdf469d16ab0c7a2612200764b8241b0e984510dbde762f5b0a1efdb56efce24c45d9b778bc3b0bb4efe993c6e5b0cf\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 11102d3fbbbcad9b9592df2e16f9ace9d47621a9a3ed195b3231f44ceffabc2285842d125507f2ed86035a06ca7172051c10592275feaedc25e6917fd1a2c176596d6219ae303286bdc4a337a88354e3d75031aa586279b5fcc08f74c7de335cc9261c9d3ddff38e7922471096daa5185a396e4d4b4c2010f4f06912e21fbd26e86b78905e10a3d2577e4ffb82d664fbd8293b28578813177a4bb169ad1fa1a1cf092ed87e8eab86f493e65ea7921fbc7f154642aa05bd14a0ca245892841f2a84c411dc4533a9a4795ef210fb97473e6223b6272ba8d26425471470df33b76ad84dc029281a1c3ca2e666e8901dcec12e78a2a2a5b04dddaa2cf475f5365a30\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1f56d2c5fe55eb054497a5a9d9c58f4c6f814d3bfe1b4fa5020aadabc9d77256f8ff14c2ece6f2434e703fb16adbf48f91bd5e6df505f2d9bde65496a82d6a5d0d7a2b1a1a5725f7cb58d1c2e7bc101a095fe3f59219112bc4c89970197bb7d48d5afd9a08f3b70963a0a766f1d4aa8eca7893c4e7f7f432649faaf740d36dd20210f32f195b2d085c7e294912cc36d35e01dcfce2c12083f5e473cb75f663de533a8b94ff55ef781d06b1d8120894144fc3e4afd3a8de523d902e59137937d53c6c535550b23ae3dd50da50c2cdcb73dd19899333be21c95d6ccefbacadce30c48f31e982bebf55025241c7cb509a02cb4c8572a1f39abcfd9828f57a6c3800\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3f4d732558fcf6434d2f80c7debd057da8e47f87b8fb9fe62b3229b5cfa656d5003c3d6c6b3b5db6dc2d348fbfc6df1bc483e9f5ed8a415e1045f17644842b96439c5127155ac226097dbd29c8769da7e485db333ebbb3ee22464c928f42f0a1ee972cff3fad879c542c066d8717bc9159302c4b6c2f5cb944d9b21d8502e9e3de6f6bd20b3febdcf8348e86db72d1a8ea451a4af54ec4e0a854225eb7006cbf7b02b3ed5bc5ec81e511d6eb0513617c1b5b9ac330f408960c68e3a2c04d6c9b953da2c50715d191a10739008056c2412c4ea2d", + "46d6dfb68bc7df711a4d543bea6903c8f67f88a553154b64559beb8adad42fe6686525a2a4c8c15d1f669d394\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 615c556ace09f24b725489b29274422524f6e372d385fcacfc44bd82d75ad6f27a9f9378007016617634502691226dcd72aecfec6b839de344d1c53d5bbbf54f93f1d510d0ab9cd1c0d5363e265ed0b7fd9b6de200d4422ede2c65cb225855045f28ea14290435f35cd6e2a4fe59516babd10577c3d690c6f6431a56c1aad768f83098b19b3756a732382089516d3424f23cfe142a199db129c9ce2e61dce822bda75c0dce6f59f7a8e71d43bb0319c373f860f69c5aaa9243e9a52f221430e5315440a6f6a7539c058281309d9e435a31b9fd34f78020f1874c66c7de0f670a31c98bab40415d1a4a4e5ad6249e12f9bad78afd17054576c740673100e71006\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 73dc8c7ea062d454b15f18d07539a13d08f29bf7791c3fa626f579f7ec701fdcd89a1facdda4b15d808847c419c184b39b6a4fa54a30f9f5d52878a47453fcc7d0cb504d1cc297b69f62a21db59aded5baaa6c100fd31eb32e02450433dd2c3c6dd7b343653c6d171949f52fc963416700dd83d31f259c5fedf9b1cc1385dfcdbdba2538c20a8aab641a7d5bc96223e038c6f84fc8302afd2c9ffd298d313dad50a5a943256549526e35fe61488acba25568826209048856e65acf3c9e2eabf239f20bb68f2538e0c81059603e1b8c94913365adfbd959d9353d8f653aebd086d123d1bf3687c3f644fe1247ae441b235243c4ba87dbc33f337b1e63b119656c\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3d9ed722a84f0fa9dea4187d8f0d51b70dcc754b7f7f951782643da2b7b06769429cb6d9fd0950eba58b0dace0e73dcbaa2c1b8981fc5971bad5f0c858761877b0c0967be0fad4eacf850b296447ee30519aa598159a179299e603cdba8f7de6cef9f9953144f34ef5f8663cd4bae2828bbe085b35e8a099cebbff34d6ca858eb35aad31e1f38bd2724c817ff32bcdb7658955537ce4ba83de10de7f6cf9d4d26a0e06b522e8e47c3a7ef1b7807792f43461975e0304e65c40afe40de7308989024d9958aa7b04657e9dbffe35d9ac69ab46a7e1796bda54af5cc6295535865b6d53235c8779ccec52108cfeeb3752b1a57eb3e81761731339a0af080d128b2d\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = b32a87df98eb19ba1326fa42c78998fea218b9c50bd5858f474a14b324b34cf42c4116a8eb121e79379defd04c8faa876482d9492a8beb951bac9ca56c4610aceccbd803896437d5b104ee06dc41848ce5f6e79dc0ac71bda6ff2ab411b26cc070a17ef3760e6a415929b23323c488e710761e8cef9031ffea40e518c491c32185730a2af20778681c74f030ba9e3947bd8fd2331c7b4e73387945739645bfd767d7a912fba46bed4355ca211f6eb438c4cd3202021deee48cb88f83eee84a5d4763e18f3ff9607b8fcf11e42186505c9cd731e7f6a7a0dd30df61b8ecbfca1fe0a6d3a1908e6f8aab5bbdc3b02be78fc2636cb5d39614c44060fef9d8c5cc70\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = b720bfc084fdd3352e066e0597edf19f1faa271cecf4b3d21bd32964862465b66e0291d6f5f87342b9fba6a77cb9262fefffad07889f3ef2d49dceb6779ba8025b05b5aaedbc46a011c819411ac4c4c596f88cd421febafd9549f404b3ed8458303dfe88fe8724a9419965945df23d810c3a2db45f27643eac386570a63d6dd6660802208e9bcb900168802b3d1014ec39416608ecd2e304aed4f1d93ddc6fa1a51d3014ef604c8ee9740ef2bbe546f1b5c307f529f1ac4fb8206bd283e9409af446a4b34937447ff259ac3b9a7702a56c8e8a571fadcfe1b6d55fb7d1e572e6ab641af87565a05eb55fcade48780fb99c6da263ab076149a5d2d4c40a15644a\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = af7d984e678893167aab922ba9f1dea3e67a98bf1ee442c56388ce6455a8cbd69f0cf0a30e21ec67d4bee411577b0700887ca5ce5f2a2b63a026956a6e56676d385b720ad708c9d87fd72a12d2921628f4ea931f3b594ebeb6c26030d7945ff347e7f1b30a0fa9177fe7382dc6247d271015f61f1fb2d15b7477abd4642f64eb5f5bd7adf92ebaa5dabc6714e873a8f93ad13b6ddc61fd92e7167b801410e338ac7ec85838e2f8571be2562d1b56377bf13a8852e15df0ef5f5626d1891988a0210ff2f5436ee9ff526f0dc7cce525d9ca8dbf35e37e17248567b792b1d8d233a2ce4efe589132e58f87e7db6cf86a7614559d90bbb9b10cc4e22b9905ac191f\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 2deaf754332fee96a5c4954df9cf4df736deded05cb333d4654563c73d3de5629ad8e4ef290ee992874f2757a1e0520cb233201552c4eaa3b81968c3a315235d70e013cf3c2dfa1fad31336d4adb1b4bfb027fe5bfeb6d4a40274920180caf5d4676ca1bf16e0fe3ec48d72f61b7b37f3c5ee04c2dc095ba650e98eeffa7aa78023351087d4ed55d286ef8506ca09a1ac472d44a7b540dc63818298379a0c86a44751ad3f51e511627cadd54cc9a1a5ac8ff4deb552378d94ec22878239109f769eee07cfc70c96f2a601f722e5634356bcb24fdff5db7a1318213491bf2cc37dbaf36afd1436f976612dacac6e15b72f980099b53b89f220474041a16b9a0fe\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 574444942db4e74b6ffdef52694dce12f41a4473c8fd68aaf974816102fcbb0ce4153a05b9e11eed421230d313586602beef2d1ec6c74f91fd70eaeedde7ef827d1409649a3a5dfacff49c5bd6aba7236a90cd4371d3f029029a4691b1f2b4ec037c1704c9470f99220ab35bb5b9f9209b05cb90e7e09047c3e2df1c5e020f2ed228f135f49ba8425f4ab40215e05927ef3be0a502642fcd9f2483bcc8a474b46b5211960d0af0cfb591af6d91b906bb13ac5e8e7baf582e086afa9c1df050321ecf473b56f490a25d158c5a7fc9dc515d5c9dec911cb83a4c05b5501e0cdfa444e3cf5f9b632b1492a1a1766f23132829834fafa8c81abcf9e4fe760be7dbc9\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 41775fde269f4a630110839a8af5dedd25bca44c7268ae8fc0d5aff838cbc1bae9bfa0948f03c79309b9c0e0c92fc59f4260f57f8483c0a1a014a58542b04e37b235337325c6f5021a4e04b1759a72f6f43434d1f4392c5316d8e69274a1ffcbf18440b4c92b9efc7fa238deae751a6b58c0c4efd5305c3bb63c20f0d782e4ee75e33ef3c7f7df1048eb3b0412bf71915bd372e7792692ecf5c3ee47d71c728cfbbb58f46fadfab99259290f03f9c6b18169e5602afeafb50751f2367af1053b41ac8b1e68107ad466a384c701b5cef71abcf2814bbb5e9088e14205fccd13e1240244c182885df9d32d804af5c34657dfc76f0a27a04d1fda612afd605343da\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 0d5a499955e174e55cc4129d72cadd7bb43e416f232502d89113e15b557be64484b7a9414fa854205ffd9c33792f02b13070c5411ed2e808fd0c1d70f4a971f0b9aa34e983cfadcb3f027b76a6c35dfb537d87572cb67e7dd7e246219c62313fab5fca5f021f91b64b3ed75e1c371f101c09cc95afae07c2d257b2bd8b946caf839e88078c98fc21583ba5b205e2fa538d0c7de3f6ab17b352938941f6e65fe5455ecf77bdbde6df263d067004d508a2e32b2dd08d4457bea716bff025b5f32c5e8108b045ceda87fe710fb816c81a00ba26cf6f395da75a4ffdce9f47e712b9197898a6aa53fd8dfb3457cf9e1992c7371d370b6cc8125cc05e738a5dfa35f6\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 37066964e4c35b0540c14716c52798189318c20c73d61078281d3a0213a003e60f1b9867f1b9a0b9725d866677f80deefcaa38a3bd795a0bfd00d5853ac1714147fb2d284e1e8b3213acb96f587b16b9fbee57d4aa333929ea3d95d706c0e7dd8a29acefbf70ca2b77f0340a51c5a44b8ab4a8ad9e125ebb3747ec975d0cbc4d093516255195323106d94703347fdab58d3fb8ec879b783ae01be7c778b2773ab4fb71b4922a13d5638407465bf2bb388fa17c5fb8218077904ca3f532c3a692ada8ef261a8fa5fc91119d5b69b8bd737505eb9256399d6eb415d3b9e7b07f46f67d976e38a6ec9f9de5cdcd240640437d20f5ec76dd4c8817e98b6735a2e253\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 65f9966b68519da57e9aa0e6e024704df5307a40502ffca09d99826d9317c34781f81afe459f767ce11dde953affecaee68f444ccc7d8751b25129e54a33d6703f69789e76133f818965d6c97257e0e64b8edf88a8275d58637ed00dc6e606a95a0e7b0062f70d1d52bd8e08b790eda4258a16a418cdeee2064f7273dadef468f19a06c3cc3d25dcb47acadafcc3aa4b61705b44eda5b7deed0bc7e42bb0746bbbad0ace8537682b79cc2e8c6f4ec73b1b1ffbe6b5d07e0a4eaddb3759bc4c3d33756614f54159f3751f38828828a1d06adaf4d9fc270c941ab37d3380c16aac4da352cb152b4dcce0a63eee0a84a0eb07f243597c6759aaf91aa623b5b5c266\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 24882eaa767b6fc594388da59d578bd83ea15e7c2a239c78ae07098f2ad45737b155a7933b98e02de018da380229b2f4649143a82bf86eb4c8b00dcf6418e00ccd9059fcd5665dbf4c065a90efc9305862913871a7ceac586e25634993f4ddb2af2e95992f95166e0ee610bf0b22397ae5db506db3113838afc59efdf7a30a5f5b42ae339f379b8862ae27067718fef95982408de7cf64ca35c5ff195e39a390e62d4465b4977a7c2f7545026f647007e9483dbc3e5f030ce7883e8e4379defedd5f53616a2cb2daf932a053c087cc559fbc477073db8e9aeaf3708c7605dccbd3b2df68f3c957419ae8354ee01f3671fc27aa17a80795d0b65604af0f477b7a\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 97fd91d2e281945e46bef3852562724a0fba617ad2282063c182d6979c3dc72989432ab0c3344af047dd81d41fb2abf6a00bc1a63baf1af320bbbf47a00deb2538a3e353cdf0943a6f362da1458729cc24ca55dc20497a9e30c7895c24c7a36c1e8b42786ce17458134a10abb81de6e14e6a349315142238a22b56ec2165b90d73bbccc", + "249b0e1a1db9c05fa190be7228a5ff8ea105a1e1a40dfb27be77188ad83f77d399cd20976ee20e424a324046394c9c837c6912f3d23512376fdf846134398f0b9d6a1a65894fe9e9522248e399d6e787a889ac5431fe3a2ff5c6855f121b37815be35f65a9c724008ce744d3431b761f87cf84e3320e201b6364885ff\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 5b20dff0b9a6110c8a3b833c72b38d20cc86fab63d9f12a1a46641fa05f45df7cd728e221cc7ef4c59a76bf643918a680afe78253eb840cf563639bde8778fa287717e72f45d3e39d21d07664d8d33c75267d24b6bbfb40ec847aa9f9f45468f014e3d48de25dd735e3c9998dbb0b482b219dac5da971f424d69b98d86f22a35dc65df85f2dcd08c41dbdf65ad53c8210b56c65cd005ba038d33edecebc952ab07582c5e6a4769cf845f254774a7eeeea59aca728029c0f3d07aa44b30a6ddcb17c203f85c732fc24c8d3797d3827d48c40803314b8a9878973335fd827f040d2f716d9d30ca66df6e7b19043dc53a80f05c12e692aa6b3c4d79022788b7e5c5\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 36415113cacc680ea4cae62df22e52e420be4f48219f45a90a66e3f1f023a7f004d828bd0ae923ca927a45cc8e840e635b06019a146ffe81e1bd777f79a5bd23a0953d68f520315f905026c530ddeea6a8b7b62f559e208189ad47e5ad797df5fc019de29667b9ba8ad53661b5ed93d73ab3fa3c13eee7c5e75ea40c9d87c0a45ae065776d781a3d94ef9f5878bda1abe940d23563b84be00efdb5f68671668f44e10d560b412e17280f5be9448d8ff057cc077153625fe5243d5cbd4ee358a56f52bb07f47cc6f4d768543446b4cab1ed1f489263477917178f84670a8f1cfbcea97b94ed951d29209dd70ae905c8d795595c723753c9f6028007c3744fb959\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 883205afeaa96f27231b485c53ead58a9949a375a677a28c13c5e4163d9a9bf40589f198dbac53a58c6f70ed087bcb75780d5160d567d6b77d73747ff7687f6ce708b04197be7fa7c4cd87dbf16d2acb2693fbe75b3b5633cdc0079762129ac6eb7cdf292838648fa2fcbdc4363548f4059f6e96792b98a9a8a0411622dd185c0f65a423fc06d70c931cb288d2f3273d120c8000adebf277b95cbb42d125432ff84be24ff8fbd8992fee51757e9578cfe83ff0b37d4c4fc2856606a820d22d367a1fe47cb3e16954656778df08d1ab8f868639fea43596b45671d06510f5c53ed79ea6c918d015ecedede1f898d626f95fc6bfc5b6d6c81e9ef01faa5b56bffb\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3fc36fc628b18cf13fa4c6693ee98105590b96da05c58de44cb14d6ee4f038c76a0b0557c6bb9c4a289e3442154caeb427e9d77abdd2bd3dea4f43db5d9e40d2facdbb61b2348291040b4ca18a4106d3c061a7b3f514602901e3d8680c81ebb52b4d4ada68d43a3a0d4f9d79f34449380254e265ebe0524ec60fc9f760fc4b90bdce7f2a7e74a8ee97ea8f0b5799f17300ae6d4a30cebbbd6edd2a41d8862288b37cac2a7b9e4f5fa3f78ebd761715c36e1e226156c05eb6dd6f9d67284523620bb938d912ca388ba3d9cd24fa354cba42be0c932b00f52e345c8c8e491cce4da3e1e07b9e9f14d84353ce93b27ddea1565d8381aadc051579277624cb3fe7f2\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 5b2731749c715c394b718a51cfbbca731e651ddaed84471177169fa7afef0fad68b0cf35416a94d912ce1e555b31218a28dcaa1c22f64577c7999bc15ae99b0bb722a84ade8096c49db9965c2a11dd2294809fc7a3437431708e88b7776a2d17df8dcdca1239d11ebec354b80a4f787d1a15aaeb504d9cfb73dcda2b70233a73acd14579c26d8b166e0dc3f4bdd1d6bdebe81f40cc998fb035c1081d80eaa3dec7ccbe3e5b703cf85a038a9327bfbd3c1f260af148b7980c8d5e7a026d3e5bb36789ef554eb245d05a40aad1d0cbaa9e43ba46c1122a1160cc79d44018982b69e09aa34271b42babe3546d1deea236527b49e9895efac1be13117a8719419bda\n\n# tcId = 113\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 4aecbf74bb2ebd634e398370983c147d012c4bcc697caa4a5485750135263c004acd2218a1610cb17a328d560a6c692bd0ade10a6aba6f348dde36e8a96efb3cbe9d0fd58cebfac5ace26698ab21b6b45fdc1ffb28347f29069907819987d4333af24736f05bf2953f42c8e79bcd4695584807fdba2e184065ccc51b345d064b26bacde9ee2482ca2cc81c47cb3c30a138c8be31af2645bee217310d81516bc64036a109f19307aae3487dd145d1175efea73d03c1d32bed7adc6c740a64e4f4c78e95f3511cdcb9007d212798fd09dbc90e0728381ae885076e4c3c545ebc5b67a939e55588e9ef5e3640daa28517ded7ae0c068e0fef9940b21d871728b31a\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = b61d251dfe5c1851ef8739293b0d9af8ab2a482565cdc3b43bba70db7a03a7d8878c372d93943f42674a7678b41ffc9089d9a93c7a8009b57b2fe15fe1d944eec7c307e2f79ca2b3cfe07878cad8b4d1f38baf181583e30d7b1c7189488b7bc82e0e63c2efab91fc8fc40733306ce6b12e0db3c8245324e4250a9a015c221561178e54b615396892415fb0a9783538cd4bdbb37ee19f10f527165cd5452cb1bd2cf81b672451da9540e36d9d32416bac5b9cd8b1af67ac4c12dc0f39cd3b99648a4fe7d9e23b75df6838408225bdcbaccd80964c13c91ba8c25f5a0f822c5d03ae9e0bffd3324028d4688b2625542ef8ff54cbef0cdd1f52f3ffa88326d1659f\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 326febb57eb76b58ea5a0c873383cd14947f0c39be3338690c6e3d1fed1439278b8ce352b9dae697727037affff53350fb57d4e83347e7aca5a86b0bf4dd2eef88e0f08e0b6800021e310a3abb6d85cb504c7114e5987cd3ce39905b1258a3fb0c7ca1c4fa6f540406a1890866a635dd848919ec55eebfe1917afe3ad47d2ae27177c2a1cff84a7519f17245a462c28ca42fe4980070d6f72b52be443c125db095344b89269c8166468b08ddd52896c0b590ce6f3b4184cbe53496cfe38532b18df4c5ff021339e9425e0608e832b67dba265449de2d052adc077f25831baef3f7cb8ce618aa8eb89fe081a2f57d9d0f3d8a9c2010ae32484955bbc28c452970\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = ae2e46a32caa85e7e75931aeb5f69ef37a0e6e684a59ec058a48a23bdcb1a0c2186570469d7c6369dc8874e14a25f9b68d6e779ff1a1674499fc8602bac5848bd9f0cccbc7e5b2cd138ba6a02770c87ac82c3fcf60e2b124e48d77c04dda8a05053632e25f2dd95a8f7c79f152a746346462275a8c779d515dba6f8563acf7ae08b10efb95ed85be29281291857944fd74bbf85f782701d7e73abe9424756b1281c9ae3cedc38de4906061b983752d481b3fabbe513cc01539c33fec9f3d5e79b20e050dedc5f975c696607ba64d8e623b717d8fffd41b9d28af51aafb2efe268840d886fad2419df9f32b4d493378dd87bbc1199f86438cf74e0a0f7b9885b4\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 4dd4bf9a57fc71a32ecb68063a6fcef1aa8ca1209124d87ab0ff1a8eac2fb89270de10f484fc6b385ddcd5c84049df9c85fba998b33d777a6171f87c5e60948fec10ec6eddabefebd69bca0d0dcdfaa2a3ea65e9ccf55f3c5a3c2f3c794522681a9a3283aa1d03c5b23841984b68e9435dc79e1f32e9dc392a0a4657be8832c9de063eefdfb24fffb2ad11ec16c17607f4fe9e526cccd22d5aa72b11bd2d78b7e3606c95e6a5c2edf8648ca7f27fb6a370be52f3487a7e5db564907f7bead76b0abf8f036f3ebb8a1163b277f66f50f253fc0a98a0eb6d16e76ffda6ac67f637c6d56e0fb64ca53fc036e398a6b6b265ae59546e6b987949ad6cb3430f7502dc\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 96225b7241ededebd722a0c68a46ca99eb081bd0f55eef0cc4595a0737a59009b7ac19288692be4d594fe166ee35dbc7c34b5c4f8cbbb3ce3b3a10b553b7671932d401bc2b7158266eac9e5e0f0e7ca6bc2d0ec0d6bae86104de02e11dbbbc652acb8f88f3122b3a1054d7dd37c94cee5ea82db3b145ae41c5bb065fb1b8eb6d3a706438a03905c8088bc8b8e5ef3cca9001c833e4883ad7e35fdbe654f4c23580d22d533d7a3938b16f0e3d457c629118b3294e4686ed4c6b703bdec946dabe75a0411a8cfe4877f0d7b71c6662d855bf8bd19c61b57ff4e61d756aec4f1a54dba26c0717f83b87056c7b982766b8c1cb407022d6b6c02762aa2ce02cd3bc9f\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 26a73b76551879a9188213c39fd69f8887e00f5280aebb87f2e6ac6049d938b41ae616971419a7abb81297a250df76d101c111ae581b1104c2c670c865d32081788d9934cab185ef3f82a2b63e4189cd445750c6f0782dbfd7e9cdb37d781be06cc72a14673e1f244fa3095028404090d2954e13e692b0e624d2c5cb663ce468076c08829a3e51e8b0a12632e71193f5c67780db620a2fab9a36f77916b8639bc82a24ad8cee73d15c17fca3443f37fe6f4a84fcf8bb91f0dd9d371b0f390a4dcad4538cb54919da6b1b584b233599f174827fc541811ece4c5860b81d7c75c859cc836cf28bdd66097537f7e847efdc1dcf03bd4cb2284a02aa172beb52a95a\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = aaccb6d6e7916330ffe535afe9afe3fa39b37a20008f62168cf34efb4329a31fac1a47f0708846224cd3ab7df38daa71a8441c0b1d133f620258cf00c91858353cb9ad6e6892e241968d9e1005c87ce4811c73059906711a38618ea1a0806893788c6c486fbe46f4e2011fd7c61691d68a18b01f969eefd78498076a458b7679cdd76069d3b17777cecfaf89dcddb3bc7e78631d5be60d90b12138bef2011bce1f6c033750fdbc1366ba1e1283b9513f38445978793889a8621960cf4389235d46831294a5b6e82c6805f373b4b9eb4f0edeb777d2bae6d89de6e7b820b69554e941899b48195ac8bcb37af1aa4e39f0e1ea5b6e62201e0ffc53fc2e1829fcf5\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invali", + "d\nsig = 6ae270ba3e32ab2bdf1c8fb47028612c5e6436de1bf716ef56dcc4cf4667ef1141797ddb756a829b390f42300541ba5d276ac7e2337a592e9302d02177a797c6ab40b43e8db9657d278bfe83fd8ef06d1cbe9b90eb7cf70e1901b05c59a24c0ae725612fa9878d0c3061812f2e207fd68a2de9a97b571c67c332da5581d5104e3f8e6a2c88d069ff4674e18120bf37879fdb37f702b8e6fff5ff44402187e9e1e11311d8d2f27fbcb8cfdd7ae230c0ce319898c6e33cb9105c47db2698f35f05c2405a8a69e57d581851c69911272554433f735b5742f0dafbeec0151a804e39fbe4c8851fa73efab753914a228ad7e235d95f403d2db4322ed5de3a6bc8fc07\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 288b092c259d269eb8c5e29ab1eaabae77926cd9ae2e700b637673697020b97d5e70d2e45e47c17ee83a194388f01c44a8c5e4606636772784d73553d42dd7e8686c75199ecbe3f3f309cc28072e72b6eca2d3ade1f006f1743f4e88967252b046ff813665be450cbd45c3c996b563ca8f9ccd530d1d61b62b562c8f18976d0e02e33eeddfa8203f7d83001477f4ed1910efb2a26855f5d13a919f3c53c0e4ab97e5f3f67d599df8131afbe974e96d313f7c55e2bdc3dbeb8a97f5090eb7082a25b75deff12f18f7ff486731deb3c43ac847421083cdbeaea633e0e53ec79c95393b9f300a7a721b29792c59f7ad069892e627016f5a73377a012d66336ba8a3\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 9c95c7d4b8e9bd1719460e08d3ad1842fe43e8397c1605e2e3df9badeb228eba514cd2c5f6a11cba924ec287ab164d41a525de11c8f459829697517d271444b5d1a9735fe0a9cd46c82123caf063a7a2c7eba7ea2ae0e93df04c7f4cab38904ce394d1f12968796c6a744535e2efc6529ab18e747992db7a35c27e556ff0d897f8b1950bd50f333f9f8add8ef1fad5ebdf38cb9aff563b0fe7fbdfed5fc5d63c68060b380f5c792ade7d6c5295c1f25fc75f7207bc3624595669ffb20282d7fcbc3b24b8755740e41bcaf86b974a7aae3cf1a7ed1e7312449240dd80ac1715949b7565ba11c2adf30501bfb0d386b5dc91581fa1df31f5b26c175c7c60fc538c\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = b5609442da89be47095a0d9f5721b3c57382025d020b8fdafc0cd96df60f9e90d8499ea2a2a5c715f3d30f99af925a006634a84ff0ecfef26d959ba774ac9b26180dd3e2dcaed03ebf2922fcc33fbabda261534e5558a403cf0844fe0e715afe7059adf9888668aa9c34bb535d72322db8cad93a0f8607e258bbed3bd711f8188c380fba8367780b06f60874437e4249c869535c2668012684a27b29aa1cc6fc15b5268903227ce9838a437efe5073224fce926e2c8e6334aa1fa057526b566c06f685338692e72ac7613884eed1526928892a849caa3ab798361ae2bde4348b5d09d13c4f5a479a94e4e4f3bc84be2fe0184fdf4fc55494312a4f891e69738c\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 6068cbb745926f80b192d4f5cb2b009b74d4337200ceea82e26bb21a3285de6733123c4dd4e4f47f34a0bd05c310b4d50ec5f54cb9fd13d0cdeac8a31073c01e1fe119474c97b08164c62396fc7e1284e8fe97fd570bab065de8ecbcfb88210d44fdafaea7af0bd26c0017a96ba9152db828c42f895f688d92db2d7a51d966c5ab7810062a913c447f75d4e5052da973588fa49e990bbd88ec2ffc6b571674193b584f50093b424a173c253e7e711d647a190a5a5a7dfc2c3110f11dd83608b0fb7cfcc638ea97727c9b185e28c9f0bcda32a8ec43abba401c519e050b7819c09fe03204aec7216bfd41e389877a33bfd18fc6a08cfa815fedd5f10f4b87f833\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 92e22a0b52c4b83d9a0ea055979fe3e19984aec5762a639a51d07de1c298ec855b349ed5e8b28e0f3c583a5893c4243653652f544659ba251a017934c98696879784ddf04b9c3bccf4a06b0715dd6e53f762e9b6dc8022178600d88bdad727d8b3d7e72d967d4e44b5bf3095db626ae06e784c49f24849041dac411a42e20a8ac96ce77c31d82ea17e105530d522978ac1c86c652e90481af20ae5449f934eb00dea92bd1665e47e914391cd32a01ac499277b18975aca6e6cdc0e8773c524d8375ded14a85eed50b957f152079297472f41889a2acb5c510cf9030250d1d4799ff165ecd4f6974f8d5094d272fdf1445c84cf27199b7cd33179a4ad14b73398\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = 10319c5491e381dd49b2aca0627aaea12030206508112a84699894de3b85c78df4c1a10bad009d2b56a4089082e53571c954e83d9eef8067b5aa1da948c6fc91baf7eb9b3b53ba00cb1cc7bd96bcf80fd523f3870f86e8bf1726d27325633eac380b9bf36a4d292229f8c2b6ff86476d95e454d91d92e2d850a90ce372d7ba8633a554c05eea5e6d1d6365129cc7a4c4f41d80e770458d0f4ae43d6833544b1c7e5212d5475cc78f326720a480d7dd22d550cb5145c985df82f4ca6d92915326b344f898f1caad6a7bb125fa371f26ca1a91a69173803a808bc2a79d65ab355d3159185660e4b0193a6dd44ff18548d0da0ef9a3da6a4bdcfca64fb617dbbb63\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 9a8cbf559ab2651631b39b94dde87261d9b4923fac4d4ab7254fbc7c4abd709a07c4cf29ec75b24728e851bc47f99181ca707e42d41677aa4e52e722db548f3b4302bed7cbc7c006643f2562a4d8af7d93e75867b54d263d29aad85f2b282213d8e12e3d52a8e5342f42ee762a310fd18a24886f07827dcc599c2fd85dbb126a91c340ddd4c43aa276d50606fa9850eda9dd13b009da84905dc2f4251ccf387a492f5ad0ec2167c04e8127e9970064008cc10b18dd0105b8bd30fffa700749cb1ada7f9a80f782b8a2153168747a6e86d4bb9179fd9b5ca7767bef629e6bd969ced193f60a1f09efc54023ddc60561c2a8986479b75086cd2d5cbf829bcd1c85\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 81188dcd73390585f94e326b28c78bff4cfa08820167e63ef40802e2b6561bc73bdd740ea98f9e7196890ef6fa626b836b5d8dd33d93407ad285191881f4b378f2481ccd2e0ab4fc065e0941c4023fef608a7f2c975e39b0f0c48a833cb3defb5015830707c7050c3348a08a3829728736a6b1d0e4d5827461724b985acb9750cdbbbd451b97e660746238c4aff99b4184098fb5ac9cd4d0b398ead157329abee8feba75171e35c04a317c8d41d8b998e0a7ca5403ecba9ba66210c925864a20893f9a06bf9556ced71e1eed0178a7c36cb94d17b170e08e3e72b8fcd0941c4a41521e98e587a0fbefa2700b90bf12c019724a7d20528fb57ddb458eba8a7c1c\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 0c5a755b16d0391221bae10e19594d3640a6a77cebfa79f478f55933f551b897714578fa5e459339e33405ea4290ed250bad9a4af1e49556ce5e76f7d3cf53d24159bcdfb11785a72a79e839a9e86dd394cdd42a3dd57792217d8075724b7460d311459e475ef93ab9a0000617dcfcd20b6982255c346932e1ca0452cb53df17de7d78876136e661341ab971788ee178ee9b8742f7affa11e63c8802d4b816fe3f52dcdc97343600d3703eb79a3706f888645f43bdc8333853e8b5869dca22a4db046f0decd66b8096776433bcdbdc3499a9609ece7f783d0e317ffcb3d764e8545cf6a12168e6f5560d0e7a7e31540d4ec0c3c9dc26dcfe8cc071be87568441\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 38294610b70d2d81675ee28b6a2a2283dedc976e95ba516b9efa0ccc017e8005056680d389ad287666a383238e9bcbe56ccc2d2acae5310a8accaf85d1048bcbf1ab74b4cbd3a9fd13056bc8e3c429af1b95330799bb9fcaad25b35545696a43f6ccdc3bf60550bd90e9e7592b9997dcdcf7b274dbdf4eb7c0a59b7a2d0b3d50bac5c394b0b60c580eedc6286dce16cf618a2e79d2e504b797914209cc896dd4f1a79354c1dae9c2b260934a2fa22320136fd1070ee272fab398d28c2c7521e4bc741da78a4acbb981383f03f9dc8f7bff26a110ddab72ba03b2cbd1e8e58888b0fc288f1f691cb5c3e5decd4fb656f71eb4f6b389b1f522ad4346927e31b185\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 310abbc3a50d55f557be9a7c8b64130908abb19b82daac9e9ffc00db5f5c701eff529d6cd9c006178f842bbc48c63938e0f6f0a39462f01866e80b6d8c350cbdc6327f7685a392cfa79f14f695278653caa7a2b7ebc7079c4132be18fe45e020bba5e846109ce2f5bc92e1ca70b1ec21f6b1813bea96f0af2c4409c54c2005684b30e8bb5a787e7585caab3a221b918936f74fb74733a8032a8ae471695e776a188ecf9832e1a26442eb8052b1e5ebfe8eda19019c8e727d73a3afe1304c3d6b0b033395286359b478e60dfeeb8481bfd3baf64cb1a2647f6fa55b67c2975868a030084ff60145e2d7b585582d2d3656e24f5809067baa42c0336660c46269ff\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 70cedd06d21f7082d54c91ea46575e484c32473e9d4ad39d14a32239d56da1a8a1b5c61783c0a6d4d0843860b3800dd3958c93c15c15c454284b7c6e12446efccb5b2615a250e5f8f083c9546336e80a47bf0ddf427488a4937b57c269b2ed9828bd71c75ced34f80a3c7e5083462fb197ef2080a013f99bebde6bbf888b0e0c8ee9c68b3460ac68c82ecf1c31fd94f5fa8c6d931a75206921b694b793b0d63a24a569bafc4809d89a633e14671044464352e34eddb2d08ceb29584139065714754912dec831f9d3df34b8d7d3c57879cfebae1a987002d0705a25430bafcb6fafe8b1e5f113098236868f194457ba3e879e087e2999e6f74e2ca7771cdbc66e\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 423b43af069c6cc9ea47d73957dfde488371394e409d4f23ae4d3acfc5397dc328a1df5bdeb2f6bffd46b4da310e29d7a1edd998b76781f31f59705cd76d57236730b9f12366274bb532940d56ff847b38cc8785727b56349554791016bb559b6975551e41cf86b9ef83ff911c1968dbb9417e3d48d0a7605b6b6fbd09625e2d77c083ff5b8752e6a9a181cbdd12fdb636bba0ba9bac3b4b61113c982aaecbf64567009c97fdbca719ea01b2acce11a4711294fd0343a4ef1f50a0ed033303", + "052a0f047e3feb19b0a691958a9392c97aba7fa8411f904e9e873f21224df5e6ae15a29327bf0948fd091b2aa611b40a5394fd29475c6327672d46a1f024809a93\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7f9b5c22b357cf95f0e3159b06bf2be50ab22f94217538f626f805828d8f154366ca2539e9b8e3355cb289bbef43531ef48b680bec72416e52f850d0c0e72112e6f1811d12a10d50251d8d526e5a11274ebaed0944ff3345903916e19f22a7f25b06005bc78c8713e30d0881cf9e6b510283116ebc44d61341b3fbb4d2bd5849636ac0ea47cb56bee1f6db9c6fb6766304fcb8bae7d58f82560a110c9d1c4d4d8a9eb3a74c9fd535caa86d6b890b2829da5f708388e19d2abbc85987b26e152c7b42ef48d8f79d5ef4337a6f5e19824905bae4b2afd4465d1dabe967a7193e6733056c5c809eb8084126644302ec9f9e672d6cb40f677b0373714fcde4009d05\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 473595c69d05d4776a0cb1186d8b898421123b863ea62b9274a46d488814a7b56e1d94ea2708f34b4deb705bd5df15ba0951a5915d27507bf145bf0a0e40cd2dee33e8c3171463d3db8c0f0efd77238ef463bbd959caf87b283927a304ccbfdc5ecee3e923ed7442afbfebdfd4af8e5d257015f21ea3b5d27fbcac0155238bd86e442e93e91659ead077893a02c32583c48e25784e0e3837bec334337b873b6b6660bdc138d3ea2f41b624116af4cd0ef70eabec4cedf7a3fbd83fa82b2761f1d352fd0770ac3bc00631afc7f5bcc149e7f13de23828cbb804218c000ab31f8cedd59cca89576c7234ff02e3a3ed3102abe1bb8c8e4de1a48192c703e24bcd64\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = 296c0c4dc1182111feb1f9483872c861de9ef9dc5a0eea97a233379d71b07be1f7f7cc0447b069d871a98d14302c9e54b451f1a060dee8a190d20349eb9e316fb271c8fff3f0125751d3598a14b47c80e49fd772bcdfe08139cde367ad978a642d57142607a1ff367da8993555be75f7e4998030f2c90f7d24979976e5edb547500aa6f350d31b50834c476ca7d679180cf82f32d83489e5246352d39766ce357b83f21bf9233884c178bdacd1b59c084a287208418a5b09f6418720a4253b47d56b041b727b104f4b913156daf797946ce69f6c565aa679a210f300987b12354d2ddfa1d55ee133db4fea872824d40b28d10670a6dd781988cf620c1dc26022\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = 6cce3b4cf07ba332c27e6efec7c1efc60eaf3e021165377a15dcfb6bdf76ab88da2ef3cad44a695d8afabb55e81df29281f85924d265fe18a4ce9b083dc76e070d795378ea95e50ae458d825b824e51fe264b6203e1a17981c69035a3a32eb0d24872a7a9264cf5fe068c1b3b24bd95f2404abe2487683f742a9196187ccf9eb606f5e951f73d614fb99151801794d2f69495cf1350a5369aea41da51de919dad4aefcefd98524b580e63510d6d75b46d4073a3a7d762117489b7e228bcd65dc49082171d54c8e921912f3caf724542a0ee6c0e6602d5c9c9ce5e5ec2797dd77ae8d76a27242a4a349c2f2b87f94584d3f9c470f9a485ffe9aeadeccf6fda97e\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = 085a664ebc3ca8149ab63ff2a46777a05e1b7162cfad4a300f5dd847ee73c33c1142cf485ca957b3c1b3361734a740ab9c4f050e1eec64be03a5d11993de4989a38e7fb9f9c899d8a929981aa1b32c0cbd75299285fcc758d95294687f93f1978e843be1cc5caa76a57603bb3a57fedf4d4066c532cf45f16c57ce0e4a628c3ecf33c0fedc77b670a33b9f71afd59cb725b1b1f0ff894c8c6383788e7604e531b6a02b917f83bf5645626dc8bbbdafb9bd70b7412a440cbe8848c336e0cdc3f94fc9b07a8ea34d50f6ac4a182cdd61bf20e32af5f23a4dbc0ec705670172be1a9a8352facb1a7ff4cc5e021173bf7f5964749f90a234a5589bea721811af8c8f\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 7d14a4c74fb25ea6fb4db19b08d8cfc03b9a20bb2cf9f8bbf7441a7c492854b5190688548438913ff506697f46cbc1ae6abee8dbc94a0a6b8e4d905cb98ac717da0fe81a8a8b12781f26e6e2509a6f4fbc283a2c2b938c267e601f4304726d43960ba571c5b8ae4ac1f8d3968ac61620632b72691d0bafada5fcecbdb5aba56bbe524a56187c4dd9655520bc145b8922a0edf4cb10a0285c65ac96bf22da5bf95e4be37860456417f5cbadfecb4730cbe9844b617b1ce1865db20f622b4550632a0d470703c74922967a84e311634f4936c0f6981de8be71ed7eee90bb6008be2fb5f88b5dc10d9f5721f81b1f7515099a8dedec08d61e84a145bbdfc6e5d418\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 8b77e3df0c4988e78be57be796bbec888b40afb6bca4011b396f1fdfb87106a62373fdbdd038bd32fc50f375ee4b97a2f03fc9d866986141e7059a6c9757271db785999051dc71b84a10f15edc8d3b7085ead49c492937192af11dbe80a443407e068354e57ef7bcd436febe436c61140a724387a6e3d67101878aa703394e9054c1c14e01d2fb4fef803871c7e3d4a16787294c76cc5f1721675107f9f15700350fb0df77470832d146e52191abedf817d8165e982c117a40c6acfedd3d3ae075f3840ef07b9c0f281c97c1e41a590356f8ca3434c33c97df9af8fe155da43085e31c0f2c6542a778319b970e416da39fffb3b0c7d8462b219eec0548ace4c6\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 4748745f6c5bde511685fd4b1c50d41e78da3b3c189f66b48390c7be0e166eec074771bead431b40f4634378f82e1f2f858c77a8292a7cc3d7cdbd5a0ab17ff07bd9abadc7c5fd269d329f1b0ccf4b3e1d16c9df7374502c3b1dba57d45ee9e58bd725d5a62c8c2d62b5332718c2d3d73384f73a89423d56247b518b6515780d3415c0d2c31ae1e7f7300401209a8f837be839b8cadf0d104b1c218a0de3fd16ca74174527bdc37b735861fccdf3b7c2601ebbfd47a6bb8b970cbb53d4af55df8ed99d19605c4db379c80500419692c3e6091354c9b3ba4beff13e7c946ffd128cb5d71172562ea734916e6059d5b9eba540ecfca9495401e6579e0eae3d00f4\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = 53e3142909e9a9c048b7f0f95a0e56424b896db0c7135bfcc23c49e6db250de1884312ce2b144977dde680c20b6652fd1e54eaaa84c673e039c673ea30e0f148b0c73da19f8a75b94e7411cd02a994e7b184e53426763e7c0483fa7be78eac0d4456109081dfe843e07084ba5f96c28c69a21e1468657f15be08e234230251b92ddcb70ef76a163237b85483046450bb9d831fb053cc48af052960120100d3e2bdc02bab4f9e099185a8cd060f8677f3b26617696b9ecb53f84065a21fa41e6695107b13382879fa323c0a9f35594fd40cbb9ff9a3984a78e9a643e88245c57c5372f3d9c300e35785ffd920d7cc9dae26b9cedad6975e492f484b23cbf1de94\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 602943b9d26af2a741f6bdbe8553a3975830ef5f055391dd8169b061567a3edee3dcab00b2c274f233e0542c040cf01e50326619942048453f04081de1d19394a2db310ca8088d75f2b559ed663734eaa3bc6fa26fb8ca1a08d0739d0a426b29fc25023a9f110f22c04f80cf9a243aa37ca594c539091a2d3460fbd5e91f101f1773129bc489a780cd1049e7c55399bfc996a8e9005d191bfc8a605fc23db5106670b95342c1e4827e1c02b8d92db79960fc23f650366747be30a082f2c7b90cf15574e52633c0605ca459ea864841069f75833a6cfd1be6260c0fc1e4f78fd9420cbde31c4c7f7e76be5ca8bcee000ed44591b160c553ab88e2cf4179ecdf70\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 456f7c00d31ad1ec7cb488711a9a4224c5d66b15c9b9a521ea316b94f2341561aa5d4955db7feac3bcbe4347ccfec2ae34ba7779c68e502d4ca9963311b48d3839510c16b5581b69eaf3c83b2430adf6ed6cb2cc5860a7cbfc063879b9913c94d08418cb3d9215090feae09aee52bb0fc24a515f2c7c6c380acf9d027f615ec48704f616bf0ebd7230c0b7d31231a919cf27e1fc7a4f36abd93dc133ab75e9ffd7a655eba1d0bd07a4f5308e047eb421a14908a693394c8eca91e93528f992816bf44b318e821eba1e4bae64c02ac588528b366bf1ee1e9c93d3341a3946f49e98e14b55ba8a5d120708c712b983319cfd8793e19c5608c9a8c511246b376cd8\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 1d3b8c10515753856261581ef9035a9799fc1adec7296dee7be49a3cd08ee9fe2db6addc5e3c5fc5dea8771f54b1e334a5364f1d3560f2dfd7d88b9ad4670e498282c8fd10f9ebf6ffdf7e3d01e467128c4da0536729169e4583ac6aa472cb4171d3448140299ad69bb8b7276a1f10e85f3ecd66f0cd94b850ac77445d75efeca7bb7e341623e447c3bf86da2f81afacb561b2c0939db30b313a302c52f8bea43b8a85c038d3343e7cf58751dfe19bad35cccf6263bb8f94ba81cd21885ccac5908f65d4b8eda969faeedeecc54c71698f3063738d7b107573876b1a25eee270cd10b44ada6471996dc2c09e95cd39cd2934a3d72f18da461e8a1d0b1773b419\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 2680b2a4052b86c8ccddad39e73b127b13456dcd53e7794dd42f15c5764084f0d95ecd4aed1495df89988e0de4420413a9ac9da93c9bfe4992c88c480b91d3c4e5d560dca5ea9460cffdc4f89e6e27c44e760ab7893a38392197b762340a16d8b14a96536b1115656161a77c528bae274bd3a40786895be5bee47fcc2bc284e8813c40b3ab250ccc6f85cc1625cdebf1e7854b448843f7e878489c8965c7f3ff4f44110cae9eb124b4544b1cb64dafab668d0473734bca208ccde0aa94befb5ae7ca50ebd42e66bee587435912b439ee75264f60c5082c2060022be69db6d3c0fa6d4d10097d1cd6a4029e5c927e023fac65631091e6d9443afcb79b85474c9d\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 46333e5ce80dac1d8b3ea04eca470613f7411581c712693852de4b8f2879a9d99777a6c2bbfdd04be775e4ea89c181c94fed707d99350c967d0834350ced2ca3783e975672ae7ac395f39b9f8f3060a9ad88c25b81ce182d9ca1b095e34992612a38aebfb43d94a8f308a2c228c5edf1bb1b7c99a242064240826968b53", + "e357dc46f46780a7c770047f905e82b22c0a626da2631a08367905243ab7eb506f915e8351483575132c059b43c079b05f0a24ccd81547801b5e7a9c377fa34343c509be5b7a243e9b47c4ec824bdb9481407a8d251c79e1f046a2f5356bbe08d4c1bb87dc92361d5a81cfd7a914f0d472bfc3ca1763e89d0be797338c09d6563d556\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 7f99343e2ab569fab355972825a87080b57746e6b810b07e564f15aa2981c91932bf39108cff2538bcd869e33854ee3479f3fa654b2b93140fe69df27ac661970df9661c6ba3ffdedb3597ddaaef59fa2d1dcb41651fbcdfcc3bc9928fe0648640722e134200aeb04521ed6128d7790844331afea369b532834216a9a1a6e4750b24390f39e091ccec7e17cd8ebcff83ce9175df2538107ce86db0ae5b44163e3ca4d7520e7e5a0af5fdb3c43c2977dd6a09d2523d72f61f4184ead70d6578f0dada65f28c5f04a4b16148d6b2a6c0c06ae9372bbd68ae011923e6835ecd5c9195cea1eb5ba30020f11d80202f9fe6f615caee33b18c0ebfbc98d6143f8f2d34\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 40f5ccce4f70ba22ee1471ad394e351c4dc0095dca9ce9242215aac8784adb6e7cc353846487a9260eb1d01912ec858a1319f085ee48617573f1477e3dc9e1ebfbb7f8369f17da625d2c291bfa5f4d5e595cc5f0b51d835cbb295e22730e76459326de7be7fc8914558092d7a91de466e2f31a77b16ce00bcfde4d8d9d160b5f8c9987fe792da98e356587d574472dcb15fbe6286b1813caf5258d98739387bbb3ae59272d59f997588e693865c3109c1b43de8fa52e43a44087692fc263d0ed4d6e72f3c1febb529ece3897153bd8f67a9ad2a8bfec0de6db4d3e7f294a3dc8de22b78b4c5e82e36e9d641951de5c1c83b86368f92e5429afe3f2478ae7171c\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = 203b76f479e7f4910b519e1a6b8cc4c113ce838fc09fcbd9e03266e1e3e69264c622af09562ca6c985819ece0df48fe6faa580dae52fff36c052cfeeda7d7d0cfeb2eaaff7fe6b015b82e605ca2f75fc13327db5a99e89a96a7c09e79f73dd3a0f1a14a19ce248698f12d48162c4008c253dd6932e9d95ef9fc0de06ac3cdebdfb71301097578afa68a783ee902c7673d72cf4163a13c665a7d73160db15ea239d645150ae8dcedb7b0f1e4566639eede7e3953fb3fb23568cbbff07f0958ebcc5417a04f6c35cf853ba0079820d22fcb14c33ec5a59fc48430b1e92d4cbd948b17675621a092a9e01e05006d6ed74f1bce336f705a02b804a4a7811e2d0bdac\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 010cab7807bcaf7a5e9e0d82184c24af79c838663a8a6c5547e5ee77e9b433c2b4b4124a863ec745fc46612b54a30653063142ee1bd5849a558d518389a0bc0e920e16482a15d2c2eb2f531f8b3708ede3f4a582674d45050c1b2f65ace1692f346cf38d3ad1a2db602509d0127fe52a2a9fd2fba7af62ec69d57dca87da17f70cb4af4671d8b4605acfddd95bb49b23e379f3581d848280d1b4c363842d1875e80a9aded043b66e636e0d45e58a7a3c4d3d046c13d2db0158d52fec634c5483f3e864988f80200818f80916d787983851ad3de9f0d2fcd063263e3ff2970e6fac058ed5e91fa99bb81edf1dd1e9dd704cf8f394989337b748c5adc304614904\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 5af633ac970bcabc50e4202dd2fd0fed1099fe9d0d0fb3517ed92703bcf6527c827f7e2ff71f0804cbd369788562b7ec3c00450e86c95e03519f3489730091257670c3a785ff4729e40412f9cc7c4f2e42a5deed3f5bae02c929491e4df1e1996b56d8a67f2c29af70ac56c87801eb9ba4bf43d353bf4b41b3bdf9ea9e0e08eab61cea2deb9c9bdb3750afe1ab303393569249a024f1fa2c60e7913ab124dbc9dec67b900ab1035091c75fceb6d45e498144b2441b96fd0db1c84cc1d155517c5bc7cab8ef4e4d76369ccf7c2ea7e686df05039611fa6856760c56457f3ff7c7a6d218ce6b18938ad2d2cd9b48e82e7fbfb3fc9718b00f22617a8090850de678\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 3844c68a3e1721d699de35121c738cd857f1fb64e94594f4e96991a3697b261fbac9977c17385502b7ac536a34031eb77d7035cb5849c501e92c9b3f24350b7089b0df15e8daaa4bf48343ce5fb66bdbb0b1ba5489ee8b04edc996293f258a130c516b00f4cc8d0c4d96794b48d7782cc4579b2502ab1a692a5db2129efd382f2aabb26b7bc845303b9a6898dca5f78b2b981d8f01fe4fe8401f672682b1bb7edb80b8c4e3ef9bb645777bbf3aaf75f4e868f88d66aabb4a0f4fb3d6abca7378689dc6b2fce7832f77a27400a56050d2d84b38d866db2c34264236190455cc6e6b6fddad1afc7515f0f5d501af63732c34fdc8ecb921db54f01a248fce06acc6\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 09ee17a7a33ec5483b434de0ab4ad614648c1de9527a436ce118d052697698ff21f096c4d87fb96f579eb099ed52df93de4e6a0f077c8d027d89c51412d56986253cbfdea175fd656f19d345bf0507e825b91b81536e51e73a569d6174a5e2409f213d0dabc090593572ceea2b98ff53d4be9f3f8e560960a60e166da56af88a24f62913699ea8fa68947d51cf543fc86df81454ced19bb72044106f51515d9b3e8972bef606fe17dd2afbdb198ef147b29f2ba332135b373d55bdc08fe78946c4e9b587c99d45ca54020942f79cb7b3f0fc794d66af07a72961ae3ba3b56b982da0ffea0db4028fc21baf50464b37630885d621a8ae17d9e6f44b3ebda04b73\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 068b437649eaef8cce780c2c6295598b1a55f0eb903a2069aae7c5697eb1a643cda83e2691970f69b7ee9fa1d129eb82097d9d01d7ff7bad9580559f18811d9b9ea0dcc62d16757c73e1d3219b58c276c5d1a887adf6f3826c333c5e42887551f49d08f6bc95681f835ce520d2fcb3e043c1810eeb721706e46fb57e50da5c15bc03bd6ef40b2651c1bc5a55554be3945f485f699c3c27cfb953d3288256d663d9b1075cb473fa9c70862f35f78e19e1799ab19e4098e460d31cb51f87e32ecf5419ea4cb2677123130d8497dc7c03c8a5033b19d5c9b7b5608088a700cea65dad9955e97559a7e55809ee6acd22d7c291bc823920ee1aedaebf02d72845decf\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 8730b927f2540ef947089c056ef194b7b119779e4f7b03fbb85e3830de65827da21d01591659c62e79b998b680ab33dcb64c366a8e0744f097fcb72289173cab08ce7410c025615352dcbfaf36c9f97fb7b372a73c6a93131d7b6a570a17214a691888ffadd5dc71659417a56722291b28b47a6ad418a3501eb3566f632b48728fad399a8dd2547eadb6d271a148e3691b2e8ec3122400f8bd40b0ecb4bff496aeb782bfce28d779f6b4f05d2355189c4e02de3a8b55e6180343888c45cd2afadfa882519f13019677e489294592f5c555a2f9de1510c08a1ad9727a1182ed5e1e8c1aa2903f6ad3f638f94fe1a26d2085aeb11e9f246dd2eb5702cdeca3c20e\n\n# tcId = 158\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 29faf94760d009cd2a16a2ff1d13f415ac85ae4d41af4e13201312c93871c9668c00bd4c5d07841952725897efaec6783a188637d71e8ac8e762d12811c5dc108e8b7c10e4319331b855b041523783353435656e009e60f81a4ebfc900454b4a4d3e21fb4b4c82effa12133e58962a2a4320b6ffc9ece361c0bd4c49990209902633ecc271185127fe765c9c41b4b569220ad5de85b547c762cea9fbf24f92ff44002cefb25fd08bc0425192f332b568711c73f6fe9e87c577792ada529454a044a89783446fd007e18256e289756c60b781250b71a8876ca78404eeed93cd1dd36bf1c61a796195a8be395d59d05e2b2da685022760f6b46f11a9b86baa0490\n\n# tcId = 159\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = a5f8a56a3a951bdfa388a92b70967c1c25aa7c2118e947a422c910f1f48f074f6202f8646020ab6cb3f06f336b0f70919d6253350f57d5d42f364bae61325c3f829ab0c9f99a649662cbf499ae5aabff354fc0eee24f2ed5f1e848075989ee3b348295fff034cb5b6de442dad151d4f06987ae37bccb59c15fd8e37624bf42322bbfcb9ad404960891a6aef5fbe64f66ccdff912be804b4c48e1c8ef92dd1082cb135741935fc71e73f3b8eb27750e1dbfa4b150dbd9d67ced4f0e0a5a49f12d0015ab85e1045119b3487c5969127c7d08a29d68dfe42ce8ab9d778befb9a97542eca9ec683f18f51357c29aed99450f7a53874ed81ad9af278289271ed9a388\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 139fde943a7adf892972c167bea8bc037428b6bf38f52455004c3ba4de05b9c8a96b3d5015e91a9a1fe7b3a16714b4b0529772266c3ad8c12064ffc9376b571b4cd509cf9d4137eef35153e0fea58e4d5bccfb0b6da8c8c821094e2c0a16547925225470aba64d7cb08172fb090749415f24ec4f95870343944908eca76b7c516c7b3ded202c617d1ef5aad06e97b7f46dafa3dc8b117770d56a0259bd2b7384373cbc2c2ce6d85d16022e93148096021e209deb88b288a7c6302561e4d3e94b42f6dfa888f30de3e977822b586b0a04e804360f271a5d12de773fddac5361d77a22566ce271851a9dd726bc917a38d8fe754f24d275df0054445af197be7f78\n\n# tcId = 161\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = afb195571256e9e37c1d876e232cb1b4b3130d84c1803d4e01bef844352049fd166f5ae9b561d5dbb2b26c76f0e2744f6a6c41d04ca3937860f0552cea49c5f34f6463894ec206bc52be3e402361e12673ff37dde42527a6d3b62f47a09cf8cc9ba1075309cf748e263ac2c18eb0f78e3310625d3891ac8bb45d95378c9960bc92e20d0ab8a600707f70507d2566a200638e09616bc35b4e20f9c0bd93ec686bb9c0020223f4e3d1cc11a117cd311ec341d2c40b81680b52cf9f62b7721e0d0a2b1e0c54477146d0f6d1b0091a9ed1d60ca33dd6318adc9104cbb7b507a573d76661a95ead875caca5e4ab4781f4e18d3b5a10e02cdb62a1752db4e6870690e4\n\n# tcId = 162\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = 86561c6b04582ea648efea4ddb8da8f973a78852083bf28d1955e88bba763377aec7816f757b6fe749ce5faead5220d98e50e8e716e65e9b89a3ec79bed65385c3664dd029af77bb9a24675a08d7a402646705781983e1", + "11ecf81251941e5627c6bcdd58b8a921f546b4fe6eb8bcf1ae8475a39320027ad96789e92f64a860dedf808bad796304fe6a75cddd9a2b63778fea536cb6d25cddad790514a989a04acfa6e0fcaccf146b40a5b424f29e8448bade4d83fb838f68c85be78a75dbe800eda6d689aafba209504ce4f46044371e4780269d276d54f5dad4d8d64681c22ca36097b36ad0ddef6706ce6707f435bedd3ce2a07d4c3a154febe7577ac298b9\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 6ff8a2c2834f021df94565bfc7b3c7847550b3af7488abf85f0cb09c56e0454cc62f3f2254bec19257fbcb833966e652eaa55750f963bf1e8f3fa53643956447773a9024392b5ac8a744ded9543d334e4c35a402fee22e38853bcf79542d750860454a8b865f8da470b7c000da5fcaee580f1f0919fabfdfbf852850631ea7d5d7077612f4037834e337b5e2ce875a2a0b51d42bec41632c1d992801683ae5cc75a2eec632d56d0b3d3e2147c1b0909e5d6b78a2e0bec0f8bb5542158e6fb0bc183a99284a2bfb61777519911b77e65f80be62e55feea2d59e2ea04a934b10c6f74228a75c7d0c951c37bc073e9045a32220f68731f023672ba5fc907800b197\n\n# tcId = 164\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 1fba2604adaf2f7cf9c0d4739b3677b1d8a00d4d7cd02519714e9c12881719853427c79e6f10f385c041d442a30897a917826d0a6b9004d559f6ebd119ae6c77ca17f710b963b7aadbf4e0db885de2cca48de8297a64541961ce1fcc0429fe213a0e9e6c59a39837e41dcd7b4ffffebee4736360947ae22eef06abba920791fe64e0b1eb7339946e6ac2aaae405efa0ac8146afefdc398f45319f332fefa03266de3256b6b50c3e6af4d89bcbdaa89b556905931f9bb3315893c4a6ad8548cbd6cf92c633b15c07871a2d8b48352eb1fc6637dbbd19164ef9f2b144a1ea3b53044e9d3d5c9534af7831c141443e32adb9e3db4468546437b5984bcbeb8fef671\n\n# tcId = 165\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = 94ef725bc9d4374eae7758aee84e38ef98540d807dffc5de49aa12003f851e18fe3ac23405fd594212687be5ac3e515160ca540cccc3ad7cbdf7cb7e0e8f32466e572e99c46395383ea5588a8bbba46b5fdfa29e2badf8ef536f43c2e72cbf54c779f22ba880e41acdab922a19fb429a1520fa0f4f3c22b911bf7263c424a08aaca49571592b364814fbb5087dc03f52897217b6914609846942bf2566a86cab01b53512b05bff59e74eba5cba66ab47f1d1405b5688e9fd138ab8121804dff9a3f4677493bb9da31e545f69c51d17d1fd447ae2efdd73609d712d80a2a7d26dac168066d6d6f0255cb87589d2240f2ece3787bd122cf2e29999ad35fd6bdabd\n\n# tcId = 166\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 1e4874b647c48c3328ff47f4e3fd939a105dfd1913236958acfa88e63e4f9bf7e67a171b3c4b67f192092b29443650185281a5dcbdbc6f08530e7ad39a5de2920b9e089a969678841cdf311e2e90f1ce5aeded74ddab79961ea35072016f977b278372cb60d79c0cb84b3c255ac0b9e9dd14c49449067785fed408fca8bc98be54fb3c95e898f3c47b752dd20b067415d055bc175a173eb13b2c513adaf139903c71b13f1b56d381aabbdb6f985eb19bf670124d7f8ddcde05219648f55e203ec1528e2edb7b35022fdaef522001afb9312ae8dec3334b2160b761507f24ca044e79fbcedd5fd7903e2a168c4ac85bfed5f3e6877da3a6b4a604cf389729eedd\n\n# tcId = 167\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 2840188f2742520ddbdd97a24eea63070050d3c9ee536eaee95233b66f5efe55ef4d8a318e460c4614310f00cd25fe2f154f67734556495ec15d2e2ea285aa22d9cd0711033c6db7aa84a24650674ec018cef326fcfc0f632012c4bd6d4930352712162dcd143754e7012c458ae29dde4fdc8f25486833a1a97991883f6f4cb94909768c0b80c2c705dedc6dfb244c465ee90dbfbc821592973b978f723200074ae4691f8f06c3add26e630a1b793f98e27a2f7edc48d043e1962de29b648067872da627967b0327d386f76af93d9c0d84ca89b9d567a845dea4de00accbaa11ddd4668a4f912a1b15666ef0f7604fb0b995a2a78660d8e52da06125335dfdc2\n\n# tcId = 168\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 18610e0b455000de3a8c413af0dacfa8928be8844ba29f84235c0668c35b109f1b415b2e3c5ffac1195a9beef33a24821361741ef9669d626a8b76422e26380787af06cc36bcc7a39fd3ab5e8524f310c6530eba3c888eba5a3efa7e519e849cbfb2ce04b5a052f2b7b25784db1b84cea4a0871f58e766b3c93f122613a5486969c88fc20f5e70f55aca0f926cef4a2156cfa1192ce8d025347eb2d48658c7b6ed1f6c6faacc6be630f2f9f73e0258d63cfa489d81648915c20b1d45a8971a3d8a8888f95d7e745b207af923570a9a98e40aa97e1ddd8ece69c22c177b5c67e20b942a6e100142d539ebba5ebb814a376b0de24636cfe6ee19bfc95d1bacf6ea\n\n# tcId = 169\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 8f63e0cba1bfb93d25bab5873bfbca0f33a78cd5291a7634745e1a9260748b8daf0273225c0549dac01dfcc0a4937d360ec408901a54cc0a2c83bacdc18dd900a24994aa43c208b2067157ee3b04d089a76ba51afb829053b4d63d0b48bd1a96d0a705f8d9c3161a18581e53ad2c534d16723892230bee71cd5e6e05466c4a32bfdd3d62519d54e318b0d99946f04155ff172c2f066b54fb2965a90e129b615af617590c9d418697ac989f1f64468af5e5138df34f6e0190c549edf38f2383aeb08ee2ec697428a0ced1f5299c3e64eaefc507a72d7e32011c4ef56a3157f4d2ee72eb870ba77ce6d688443e0577ca8b9e768e8d7bd965ce894e506617935c3a\n\n# tcId = 170\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = b7875711a6985e2dbab6e3cc7df4629c99abdda3182a4c7f4b86867a71c929401ee9946e158a1ceeea97882acfe445fa90bdbb1bcdeb28eaa94791297b72e7640009299842e50015fe5cdc1cbb291e54c4aec98de74a012df737192985a89f3d3c8054a4bf5898fe9af8ce3d3b1afd21058929113358dee5908d598e0b531925dd8ccd03d1e0d885c3aa34e357a85abdfcde58893ed59b862dc6c98a35537c040ec6bf7d7af0654c50a3280af8bd48a49ab6ab7ce3000830508017576bd999adbcfce47d46fe6d2702528b73adfea2d7741b082af7b8bc4238a87fb263537d0cccf0cf93401915d7c570cb29394fe98878c07e983d5281a54bd27a097e065c39\n\n# tcId = 171\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 5374a6b65ae6b7903d5c0d06ccbecc1e4cafc0fc854ab3d58e0a897ff7c65c859e808c17e154f1a8fe19ee7ecf19be910d6baff0d0a2dee05e049a07efa2dcab6cd429bb896655f36566073d576c2ee0829e5134cfda43e836d085c40f51690cc843c32831d37d3388aefd78a1cc2cb86853cb3ae4a92d86cc2acff509410d90a193d74630fc690156dcd4395a26047ee9c3f53b49ec5419d52911f2f89a53582b91618de91c23fdc665e3d5df7bea5c0ac4a84cc07aada130bf13c0be73552f9c9e40383e5d03d35f27e90cd3c615b55aeb0ad0ea3b230e336bf06cc785e11138b3d24e3ea40153c56734bd2fc8aa4236ac3f2e4b166b45280222bf444fa9a3\n\n# tcId = 172\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 57c8ca1d0e8daba503da489edc7ec8b331e1088090142947cf10039da674933c33fbd7531f9998a67f4e6bc9d1a87e07a1a86ba821242d3a01f4755bff8130c4ffcb44e285cb72d38f729a1fc71e1df6aee5ceb9ce83cd1f635c201ccd0e7f975d4a4b0154fb2badb7b170832fafc9023ac74497fbd0e70009b55f79482a174573a811bf46a774d63ff3fd9ba22d82ad6e46761e9ee3b87f2bba58d76a26f03b4d5ab6884dbe5b51475fcbc2dd160f6f9b86d54b6f5322445ff8022c3d5a78dbc97a364842faf3e3be6b02faacaf22ee98e0aabdb1fc1e9c546d0978bd59f9062101b0d86c93e095b2b080067ca1cb2940a2271a6e738af88a2b9c92553512ac\n\n# tcId = 173\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 5969bfdee65abe62a8cfc7f57efb08aa243fa3c4c4a35b62fa4bbcc3ab9aa45021ede863929644635bfa45ac7e73470bbac2a51b00f496f42bce087193503358eb285f4f45953b903858f1867870156f99b83c5b4a77a799dbbecc8eac25a5fcc26e559594c903cbfd086e72bfdb28b0be91d9f02f8cd94979937e105d2dbf9d134d0451a39f87019c1c13b22a6fd8d4d3603786489810be8078d407f614e4c6e80981f9c3ce32180c1069799063c6d759ce6973322043b611eb957f97d96b106231b52b051371ba5b36002b64b0f88557f0178bcfc040236d675fbcffc0c2ab9e5edaccf00db475e3a99396fb15af3b7ec93e2de668eeb91e6d4d4b78881308\n\n# tcId = 174\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = 11bd148f30f52678e48cc8ddb9bf60ec1d09aa9b80714728c222e249cae2baa098adb29250ec9132947abf8a28d287d5b0401ec86fb91e0995afa30b14c3f7d7fddec5a9e9dc9bf7eb43d218bccd469ae7972807bcdea685226995b3858d5a422409dc4952f661ee8a106642cacd264e645d88ce915caad8355cccbd56018e166fa7605caa05092149407a5cd469326301e4177f613b4ed967d9361bd703ffe26d9c149b583316c0d769cc2dbe5c4e45b0843066173a9dd5874f4498951d22f621be210135a4dfc91a72dd4d2423b3e8baf3d5ba08afa79cdc2bb63d0fa9bca508ec8e13c2dfa2c2aaaf2922bcf8623d8c4c20c3d927c726c57eb26dac95f49d\n\n# tcId = 175\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = 3d15e68ede26431e35c9a90b60fef58b0e4272399d3985fdee920c789995eb8bd99d01c4db80f90fa7e3105de75cea6ae24e677b8b1060a6a9f151a49fb4173397e59f79f46cd70a69ea44b183f6dde2245b4cf7d6c168483f276feaa2460eee644796979f20c6875d2ff9d7b26ecb9568a39db999b2b81c74f644573ccd7816239ac7e36c3cfa3ea458d192ac0eb40b5ecb56201b2826872df27403b98d1c5ca22e5ffa287b5ccd1c1a3f55841dff414d1edc4328c6c8c4b11877c954d0dd7a8d3f776c85810c842a4e14c87a9f9550a687561ff1875a86d4fb63191a7daeddbdc38f556c16ca97309935f13f5e2b2143f3725ec8ebab88f6a6a851a9083e93\n\n# tcId = 176\n# appending null value to null\nmsg = 313233343030\nresult ", + "= invalid\nsig = 7cee1b5e0354fafa1579370b760ea9b7254ad7341baeb097ba395480d108b1650165bf82e3fb0c7abfcb6e6a26803efd2890f1fd138f57e1bd1dffa438bd28325c20b80d015aa670b27484a3fdac73a298d97356d26abc0f5330b1999ea37fb75d65aeb73fa4bef29d0a788bd1c5d50338c6cf4723071d1390f5911f05daee8307e9090f3509f47d235ea53feb88f82c89125501ec89e737ed31889cecf71c0ca14ca0e50631060069451c7c8d73cc943ab3226d82fbfb9374600b96304f74b2ae4c50c024340aa1ff7c884f010c4449d7fae341a8f048a1d072146ffcac6d13a84b995fa72563ae02f74df72f5e78e93fb7ef5811201fef2c5123e5725855ed\n\n# tcId = 177\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = 99bcdd4917e12a459c8ec9d7ae7c5f59a74cc3850297c9b47b1ae62c2be91e84fde9bdd07bedab7ff50b721cf3c9f6bb448985b1f0bf1c54d9740b431793ba53c1963c31509a27f21868559d935ed6b3ccd0e52891b2371c8e77d8fd6478c16250b8920620b6dc6e73eddf059d483595e2bc5bb5161a08f1a430766507a68abffcdeb6a472f17f488420f8feed8587219ab1c432988ede2729ea8875cd501d2caf9bf1ea53c4e475c6e97410289f6ddaba3bd96b0b0005cab3b3bdad74c8d0c1185a099ffadfd3440e82a24265125a9ed641174f361c9bf944130939fd0daef02105c5ec01d2b5b3158aa46100d66b48e834d6edf050b88e83a3cca4212f995f\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 4c5df8bcbed902183e3e90fb167a75c8e528eeac4b71557738f6472cc9755230f9d9e661306e7d99d9225cc4d392c094817d406c28df99da1241e26d05fa37a87d151d56ec19a0f7ba0c0852ee6f889fc623d67bb2fca1e8c93aa9d5f37fcfebeea2ff61ce6e7ba4b4e608b89901e17a4ab03db6eba7fa5f3768fb232d58a953456ff31e2fae2aa005ff896a1d6514b6206b7ac4a92946c0ac3485d255a9b7348fdee8bee8e1c4ab36f8a46c4b7c8200f14afefa7acfa8e45a9d0b7b207919f163afa90c36e8dd3da836ee1c5be69c72bed446081a80f6fc8c7fb8f532142d3eb2c56e6ac33bf277cf1bcfe8eed9fe637f24d4bf515c573d02f0868a25e88632\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 5e0352e6010a615ed47d9aae0bff7f23593b2835966ebd2378bedc3459e3d5813093c46ca3ba496486975fab640bc05d4f0f789c730e5fec8692dceaec65062b2f0ad849a2fdba3b9749a8ca7307b71df156a57900fdbe688b98874219bd2b86f5fc2d2fcbde64ca55bd8c5862e68b7883afe0f2a6c5e4cf158349477dc99fc43878d5af3c75a10831a2e7a95710a06f15958e71e32f230c22e8e7c1b08c7dd2a7614e25ddc8c54f819b8ef314881e32e35beac0e70078b11c9307cf20280f8899630a0d02ff4dcc48a6ed74ddb18189c747428dc4657f6fe2f28ff772651b04402cc9cd667d44fb1dc9cb10061fea13c78dc82da9fb7c4a91cbf5d1f99c5449\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 9175dbff955e941f857a3a6ffedbad1228ae8b7eecabd519012deff34ef33a941a079c7b4e541313b314005db463b80111af13e2bf975aff6d26dd97b6ccc3b0cb45d7b8a01126bc80ec48ea2821f3f2ac899a5c0c2b7307d928b24a379332e5a7ee287f3cd736c701be439bef6e83a23b2b93dd551c7cc1d5c14d6a1e9ba0ccd33ac9a2e9ab4158c271d728acafe36c61f68ebbdfd0c8834f5f87f83f296ce2d3880219e6fd8a24f38a685604e9ffdf1ae59ef4a301c7a56861987aaa8cac63e48272911b294c99e8fe5bae8eb32686bcabebf316574d53ba07a5cc07b327c056eb3020b6e9e4064a0b7714ae33375251d2d634e541a37405de3ee31bba78f1\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 5e4816fc498d2e3f0a33263983b81d563bca7be0760b5d54c5f49f08fc6d10cf8ba95188428de68b4864fec29a64adea0119932d2c4e6af69108b1e397b1021528c679e21fbe7dc4dcf7dee27c2654561656d7b3bf08187f74cf8a0d24ac3fbef8bacf82d50981ac18912aa785263212bd71c9c6e209caeefe5d978e67bf34d3a1f6da724d7337c7f197642413d219d24653845ef35fbbe1d7c733d8bb32fc25457d36f20fff3f6c718a27ecc05ef36c143a5a580383e9d47c39c842598d0ea329aacd4eed20dc99e641101628def125b860520797f8434fb96c3bd90d9fc29562a34b4a784f847ff50c7322424d656e401c1b9beb39e2623e1ee7afddd0dbab\n\n# tcId = 182\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 3af357a109ee6de3edfb8b0ab82121c9e6ba5c78beab6393e776065f08184428100450038d40cac13d7d271c68da1c0d05e6d20065fed3dc1b02bbc9fb8c1de0b0dafff73f0bb88f36020a78590dd96b80189eb5740d2b84f66ff64240fa91ac8a73ba72ff56c6bb82dc424904e65bd1fd969c5d21a81f44b458ac52ed66cedc403d01f2139af14e6e38b722addeb3a2f6e4755e3d2337de4504216acbb596ef39deab19e5244d52fe462f4ab75aaa510552034706e00f33b8dc1b16d7e8cc5b4066a921ba5a70995ccb9d7f6a891cecfcdc78a092a8bea6408f5883fc866462abfe35cb28aaa6ebf1b283351a7505e6a80d8c64867c2d275e2c5d7500617975\n\n# tcId = 183\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 8a38e8a54857755b4922f9d248d9dfda77d284d2a678aa8bd55f351acf4aa40902f8704479827223c1c6aed95bb33d2c4048cd578f0b24b0ba88a96b881fa8b86f241ed49e4f0bc1a27f2e55289c53c44248ac1268f74123d8d055b72e7440dff28d05cbb174780e2f0636ac596849c8d6b20fc37afa9d160d8cb370651374919464dc618d491fd17754d9379ccdb689b004c7d4d4fd04dba6a9f721d4da77ae9f3abc094350355295ccc773ded661145aead73d5485e49af3d9c112f463503ca5be0549e186f334e95e8aa52c2a33c259306bd12279613f9969ab33075d76222cd6218f2efa9e0213664db951ef956814f29374fbfd0e563a5a77cbd851a9d0\n\n# tcId = 184\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 4890cbdee665ace86b225086c7b2c04d5e6cf7ddc5efab39973ef9f9d32a40b7d540f30b9aeb8472b304652768b1347318c8d763815796c607bdfca9cd7270a4767989c6f67ee989e110e36bc443aeb4df7ee56c399390a5794b0254f38e27b47ac9a87b013f17d460bee3b3ef64d7d13503ca9b0973707c03148ecdc7c947ea0e94cb6d99a4c1bc1d8e6eaebc662cccbd85b0671a53470f74bb2850f7f67ab42fbe15b266ef687c5f72e3899903225bbaa595c63c3e302e031b63e1328b567b7fdc6dd4baf36ff104922e6aab4a848bda4c6512f841730b073135ee491feeb82cd2bf99241980d900a7e215762611c48829aded1cec31db92903c037fdd82a1\n\n# tcId = 185\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = bc4cb8d9113b6fda304a0e8c8419fbb18d6d9412d0922c727e36aba5a9d8c0ff0cdf62b544fad91af23f6b0ed985f88fba1d64357b7e92df0b4e196b4edeefa2b6b1d04927570ef07d5e5efc6e84bbcbe9f57ad2e0b93fd742e0fdcd37e730ff25fbc038a3a808cc9f40062983d3839977cf2a22539045986be087dfdd30a5611e13427e70c2f486542db4c71fb53273f8653bff224e7e2c1a778163b5b93c06976b111f3cc9fe55ba644bf8233c0752dbc0f130d6bfe85424f1d10b21fa64d074caff5c820cc3f416e1c48bcd17bb4ffe187ec924cfed89638882f190f4eaf45cb2105b208db449b8b9f66a71f0ce4ec9e55dab3ccc19f487080d7efc256f64\n\n# tcId = 186\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 4278e146dac5ef75ac6b9b3c9082e8401aa47be4fc0043eb5823eea077373f1ca319258b6842d77bed8177aa9e5c61107620d2f07627f869d32c9cd3fcec52cb9becc869f2ef4e567dfea371b021dc49f296acb7413241dff218310df1da4478bc99b24a4b03e7c80e03b5d85bac39eca10888884443ddad80647dbf658d11e0f4963136e030c4f8b687fa4637a11659614e158025fa5ec1a122d38d7097470e3fc8b9922a4909f5127edbeef081cec7c89c4a37157a0e27973c9ad62130e31ca6df22cc97ecde6296e502529475a6d92618e4bda715d1cf0426e92898fcd55b6c962d94aefbee3dd256daf1ed1458ac313f3ba778c29dda8d80e3e3d4d23ba5\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 23d74c2777033454f93db22d2080593c9cee14edbdc62dfcc9f4aa5dd5b32ec7e7c99f48f3225541f1048754ee9904b6f9b9c76819af8595c78762f420048d66907563802e8136560be3397eac0072573789695bbfd1ad4874277b047ef5ae2bbafddaba8ca0280e475f103adacdca558ef346d69036c13c72f388dc42340d76a8915ceb8b81e47122f0cbba0ea8e39d006e783796299309698dce133f1925530f12b3a5a9c8872a5dd3f822968f67b23e891929b9ea726488fbeda66237bd4d9b2618a114cfc62194c2be6ebf4122bd95671f94d88c1cc7eeb2575c3e6d7aa25de63b5a52fc5284a429c6c520f3acd9acd888f52410bd86832f45d1b32cc59a\n\n# tcId = 188\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = bd3d6bef4d7dd8f13d84a23eb5d8d7513e1eee3391dca46d02c7a673c1e468f2f0fd341805138c8950c1501b494f78d481cd5642149821f6f0439dbcf815169ded6856135eeefd469f42714b12b5ed5334f3ee2e535b0cbbc1cb7cfa8addbaccc65c7e02df84c926ecfbc5b5646dc9a17a0893d21106613707ae3cec2e13ea3f289b219d871b3bd67e8579c4473695ac761743f9fc5efcd572923e4f5d3d04c6e61585c9797d865d19d820b95e9c38402df6ab1084c7438dfa3fb12bc8f80c6d6a582f9bc9034f3e247058a985b571d0ceae1b3087814dcf70402fe774bc384e026d00fbeae4032ecef45eaaeb531835ad33a8c80fdbbeb7fdeca1d466108470\n\n# tcId = 189\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 49ec58072a4c00be0416cb0887462bf350dc06c603958494b81af3680bba1d89fd193e23ad18910daacb63b8df2013923620a2e81cc7b57056b1634d381dabbf37e0748c41889a9c1c57259e743b3da94e2e9b430b8dd21aa06b28f45596fe2ec35c9a4c17d11480c8e771bde791b6dfb1161b84227430f6473395692ceb75fa48f4aea0a5540213899a4f015cb50d1f47cff07dd84156bb127e20e33544c4d2ce0e90c46e06435236ae5648f99a080b6aa20cbb8e9723e7a3c0931f5ad82c806303257128f48900691cbb7", + "959313dfb2ea2a3712ccf3776f6be617305002b5a3daef3ed2e9cba126bcc6a840b09c34c6ff113d25132bab3fc074aba7a74b363\n\n# tcId = 190\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 60dc41d5618fb2a8dcc94dd2e2d5d4122b4417ee6026f5e3e5e6528a2d59bce72911aeb2fc935b02262290b7c9e7648fe8b7725642796e8e06df60f94071d900169b2ac498cb13002d8fe2fa38321f89c593cab41223aa6997a356d184acdebed45ebfec4fcfdfcbcd0a8b5a74dadac80e372fe51725ff449bd6ff7e4e39be2288879a6342e7293a9fbb3b7faa56991b4ec13f48f27235e7bf348610254fcfe4b517bd010580f9ff1879c8c16973d6e0cd15a69b3ad6b9964f088ea1e90d548487c093a8afa3c3604cc2c6b928969d66605baba1810c2d483b9db183523b3161323ebeee3aab79cbd698126e893ed7412be3505a20eb09831e0d65023e62c522\n\n# tcId = 191\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8abaeeb60987b9a8722ab291049fb5c64c813a1bd6a147fdff93aec3b127f2dbb2af213cc920c7717c000d4985e0c833dadeee99437876d3d493550bfecafed0b3503436ff552c773e4d0c60ac9196efa9fb6be10378128c98a96480ad9e2c0242d1a7a9e66fbd7084f0c5e0a8979f2940bec7b6ceb2ae0bb221ec23983d6e3344a0bcda92263f1d768c1a5b9df555aee8de837060052a194851b732d373633ad441bdc761ffb9ea6134cd2982071f780b4fe92bf9253d4f8e8f07df417d1c2bb49e9268bd5cc0e4e652c38a44daf668095507ae05cc5879816b9c6a146330223c98a096847cde6a3e724afd9896aa45234c05c4a259dbc9ac8c8f93fa18181d\n\n# tcId = 192\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3a3184a997e3cbdfe9fec8d260c7e8b09bb7180f65a83dd7d926a0355f1d04366994b0363c92de8730fe85f2f81d15725a6e9f7c06d01a7313d71af795a4abe11fb4c545411fea4cddbc128c8b8b0e713de1d0e78e457551e57a9f55f3c79b126ebcb586d5321ee78ba50034dea7a315f7c571922898230cc0c781383da9d3c2ebd936929bfb1a20bad72389903ee558a904ba39ae931c1ae9798b5951eafad58b1dc96159b1c7df12c2f47e81584099e33ec98ac9b08c192d676cb3eb2ef1a4959e8c29ada3f9f3738d0eac8442ac0e00fff98ce770f629a4a5a5effb465bfe4f7b4ef18432621cfe1d14a99102ab2ff3cab1ee37553b28bec3d04b2cb1e161\n\n# tcId = 193\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 2edc01b091fd7a5896b25ba0b960548a9c799f1ed7208bdc320c44ea15d46483c8dd8775fa3c689739defabdaa927f88c954befdda8452152757448c1207cc694af555021f5756982210f44780baf6f50ffb888e763ac87bf048611f9340c0ba78227f980b81c059925e3c5c42775e45d400a057c1846a314f5eeca92ed4febba7b4a91e1b1c2902471481e132d40681aa9e2bdd4dd481102d2c8259153c76d41d49106cdd3cd30fc0a0b06266f3cb4b6cc34c60b528cf7e7ef9f7d42e5e305dda9e46d070548c14705685de7bad5970b165e13cd46159f957cd2908b8eebba955d2c6760c16b3a2d3e9e1fca3cd8f184b30b1d6e188ece497e9e01c8e2a5267\n\n# tcId = 194\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = bc0716ac3f37a44d86b8225bb4834ad3d4bd10b171f36fee3885ce424e958e80bcdcf644ac3c3ec868c0c60739d7059f0e264dcfe73fdd708f13cc931255fa2576915b6e40b99cac7b40d259862316ce8f140435d44c973d6bfc48a26027cb1f6044aade27e387f950693e5a2787d6cbb9a38bf64303503c63c02f7649df3ccda47a380af779991b1f7356d81240d99a924c0c389c5fbe2719f7dee3f84283cdf41fed95341a4b249c92df9a93b5e8d031a8d693c9ffd5a91fdf2efdad0feb11fbe5e5eb5ac51ae85c65a4f0f0b3f67a0fef3f4c5ccb340cca0b43bc59015f0192bdf24dbb1e92ce66b534ffd38dc44f08746d0429271ccefe0bfda3c8e5187d\n\n# tcId = 195\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 4019e011da7e59b601fe76db0333bf9fc0d2fe1fa33cf0569632e39940affad58dbe255f0e250b5dc5f5f4da0dae5c8a7599e1c6852c9cc052b4d7218acfc1cb6d2899b7e5d06eb0a666903e69383ba4d8bc6d2146a4a54cb0c7ecbf2e60fb09f4611f0d5692c653b31eb5795c838303ace417992185e138ea279f2081ae0c65c0431d9aa3027726674690ceaa3f0cc838bdf1eb2048f1117e896fcfe71513357ad636cff8d3b0c0ea2948d6c4a055cb61b0dbc56b346a6d9d3b8bc18a038d98d8a20ab63ab8798884ded8d9a11e94cd83d6d9a935abf11d079059d3fe6b21db0508ad9abf8603acf8d52d50926043033e054a81e4276fc16687234d4029370a\n\n# tcId = 196\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = 9f360dbd80e1a28bc2b1759707e4ae5c5e432d4d4b9fa6b67f37e8c576178b820f5fe3c8c44fc3de442b900c73eea6f3040f9b58ce38611f74ce6353793b7ec1b9ad21ec8dea913011e0d76ea2caf5c1ca7899453789d9e868a1317dd707481c213056add922177145e7cb077b9aec2123d8e854dfbab7c2a96a58c51cde0c7c77dccbf58d781cd0cf5f1251e5cf263088af9c374e8781b9f7d0fb0965a765727682f97b3f1ed593082709ca699570c7480c2fb3669bfed128c3063cccd79d1161c781589e733671956cf4d1a6d90a4680f4c38c04cf0b3b05289860a809ec99068fe853176f7e6354b4b2c15e3b535f301a00fe240ca43ea401f954e2e9d170\n\n# tcId = 197\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 05ce3264ea04f7f7ce5a073bf70154b120bab5026887f675c9ec97fdaa0c66effeb7952e5b11999ff343bbd176978a6ec6eefa8f4be2671c700382f7d8d221266ecfd2bfec8a7d2fe36de408104df0152ece088b73c1c0a821b9a7ffff8d83059fc7250c5d54ad9e7099cfcd82e887b5ae551732c37a1bac432dcc5504bb5013dfe46764a03e24daf62e180a62491e75cbf560958ade809f8698e8465b99332807ecbacf1b29719c7d582240a3f19ad6799c852b958c7fce3ea5e19b6c098afbafc5bdec765d0b90da1b6df7540435f291cf2a19e9b31176b04579ab18cb3e9b5f4a86c7b4f17f131b7a5a9c03a93542990220709f8a68ad1d691e8c13345cd6\n\n# tcId = 198\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 0a7bf438897d08deeebb38dcdd687714d69b0f0ccd23c8daf75e3ac8588e1ba0e5cde9bd30cf6d61edac581c8f3d2b8fb7d92102faaa142f75dd78152bceb9a9cdce3ac1b6d3121cd7c65c5508deb1f671a83b3ba45d0d079ae294f56086ee92e109e94639494093b2fd9efb0bfbde8b459c7aee258b23b389871d4bedeef7b8bceace4b870098f42376cd0a2d4631f0e606390b34d86259b983c2c16939fae962a4da25c7874f5f59fe0b3e6a25fa8c0132375cca9f21cc23f4638a6efd3af2aa9010082e340394e33913f7331305e6544c87d34bb3a668a1c8473ff47d59fdff11172dd156aa94e4262c9374b001afde4fe551fb599242dc3584587fadcb3f\n\n# tcId = 199\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 6db16a706014bdc6d673d5a1e15904915bd1fe1934cc20a6ac6a01f1e3fe54750eb01ddd2afc1cab644bddd3805c57b0c45ec2951b2595cf41ca2a006e6bb4b4f1529516c48e007a2173a5aba22081a529d3d970c0ccd41a43b739e38063fec026f4e9c157670faa2a2d0288991737ccf7833f41dfc4c8d829bf1f4cd35af15b247a9ca676c52e5c3b07c08f1322b31f0d0fc0a9f0698c74248fc54e505431827b2b0e8814d806f12ae85c2e8f49207c21c6abe348e058a17ccaed6a75bcd07a677b5f1312fbc4a1dacb05b64272c178d8c57ce2f3556529d9ca1733cc386e39d661ba1c7bb1badf11488f84e533101a5568b9ef0604a8b2e131f671b1989999\n\n# tcId = 200\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = 518a1e1c38f30eec3947d32d92d04e57a8a82923ef9f13f67c985a4d2ed90ecc39441372897888906014a98b38c079c9c53d9dedcec059518a1d8066b38b6fb6a6b10cc2b6ec04ba7c2ed60f6d5f17cda6db6db3f24d5e8a46a833594ae3817311a6664ef5a5db0eb988923e6cf5d21cbb1fcd27a4646ab5670780a86cb492bf17359f346b426bc634fe4a89797b9d71e6b80577d7b7cc3179903511bd7475d85596e8371b80684e031c9d676d665e9778be8ec6347a6622e2ea0232755f7fb07a53fc6361e58a76b87cc54678152c4b8febf1d942be3a000b6820cb86c9f25f332dee768dbdbe25c374af05a085e910d1effb97c914cf1cb0578b1f0858557b\n\n# tcId = 201\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 4fb00ed61d60c0496a690006f40ea8a5df2e3e3dd80f8f6a3e39902e0447a37f4ab2e3737898cc0bdd7617236e637f0fbb9799f17873ad71bfeb32eb74cdd927bb830943bd0c6ae3a11705dcd8b272fa356d34445b46e3067caf45e0b4f37bb8c6dd43600184b25c2651932d07e6c9aedcf94796223bc90eaa329633756ddab77ed3b70de36f585918a7309d502c88aa922465ce213fb347d3aa70e840dbbd3ce920ea2b04a99c3845ef7ac87b68a54bf359a6540001f0602cc458b91032418da97bdc472774cdf65f58cba9b30b6f51777beb83cd6bdcba1fc1bee1ca35eaec7a29c8784e33b7a5b335058df1e2903538ded311330336a88256168a5759a7c2\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 08f67b8e90bb0959c276ed23d45d3752f2594353d868ecb2f213a980d8204d530c7b06ede81453a8ebe58ad685c7c9b8743fb0e940877592b87ceb457857543f060101e0757e02dd8f48c3bc348adc31d57513f5231e7cd32822b9844a41f00b394c20a6abc67d51a141738657247b4898b0c4422d900be64f673177f6a4437a125ce0a85ddefd952acba2c2809d4bdb4a9c05bfb9a1b09bbfb6cb675b51ae23f3857350b208632761ad04267caaf969d43f699d5908dfa7ae634447abebc05e372f194387e29db9adc9360d07b0d48c02f15eff31a0bb2ece9e97797fd18dd3ae2afee6b12576055913ecbb6cd8f58163736c2e45fee2bde79b7da293597c28\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 386dd157db54f471b88f6f4cd01b25ea4788cb1f8256ce996fa3a12bec90803e92b907d1e9e8c23bf20d8226b9d7df699d5d59daed206d4a5da51d0aa6566a47bb363c9375ea5404539054924b102c1e0ed40cce6c9b6811f79159a971c4a879f7568489d5c0ee7d6d", + "20f48f0255bbe556de271c8291c1e4198f765e3d5cc7fe2f5ddc366d28ff08d57ee5efedb170a18cd27a4d15fa8d315b695d47f1006814731524cf3922aa5a42b2cef314a0cd43578a224cee8d0140c53ec80e8605e1a4f5e1e23f4600d18eeadba902a398c4d874d03ba098956749df963cefd387553b4da2a90550d516451b4430d7ce2601d148d6c83f3275b669bfce35b9a5c7c336\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 0511a80f4b37cd13711adacaf85270137064579acf30e3c928ed6419507b9a807f9f5e4aaf853d96083420949d4176a4bca9bffcafc149ac57e3138ef4ed6e7aac5b024725654ce7ced2e20ba2c43070ab5a9aac1382f101cd5020bb8ea6bb3e21ebae04de3c65cbb746863232b129e19fa2bf97bd79f7e7975e093da71332fb10d7f70285237017d7251a118ef3fde78dacfde73e4e28921dddcd21fe2fcbedd45121552a10461681fcb90bdd1d1877b4fe34b9deed004ce41581dc1fd38cb767b1ffffa69bc1ae1dfdaaf942f7b50cc0737adaaed0273c929ce60b0e2627c2c1d5153f001c55096120849682f8a9774b6f3ebbee71b5922080076a2d5544e7\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 4884cc2d614aa4f4f90973c0490a796927a2def10606cac4b00039f6b5e21742e1f75384585b423ea87efc022d8e7d2190b5eead35292677fb843ab81c476fd2c4861695cdf9d3ce3f49e2c6f90671193ef13d6726547f89888bfc16128c7e7ee48d61aec79b5e1e551abff8ee27ed83ee661e42fd614c2e88958d4364460cb9402027a10822c16e17c083e5792b77ce3f07a4698c7e25245c651858d96c1258a0e0d0ddb3badf5f7b9713c2b89ebde7266f5a88c19b794e6cc2a8d96789f0bdcbec49e128473e2efd7ff80387fff30a5dfee3f2ff18e4bef5baa2131937e7d71bab5e5f521570165a8a8fa27d6288a2d524a2be7a28a3dab05712210c8c1f76\n\n# tcId = 206\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 101232b1f7090316ac2c1f1e56014df258065a04e8bc08740ce46d54356018ce1567fa2610743b7c496d414506e8d439bda52e3680ef660d4e7ba645825c0e82509be7f9adf0272b212381f5039fd354e693d77931e2d59b0bfb431d903b16cf3e84187a55f709e6bdc46e377ee965de7fa43783004081e9f681f794a922409434cac493d29c9d1ab0f2e033ff4e54af9cf00d6c8cffd0b67f0ea27c5776e2eaf039946e8d287c2c419ff9f1fefffc968ad7475bb95aacfb9cb1d623c2d1b6531bdcb2493f0e93ac4be36c7a05af062e6ce9af1b8e063c808af52f735bc0c64ad141347a19466f650eb660a6e7773900e6a0801083be2934a178403f5ec29e25\n\n# tcId = 207\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 23dbd5d795fd3f97f7a2bc5df227e14e39416976c2c616e1e8a19a85b0648eedcbd2ed91780c043dbcb124de6be7ddb7eee16851a97eed4848589786095cff7c4395fb4bbc606f892b0b3a01b285c9aa4c86a060d4ed5f59e1d1d72180382531f6ef539d4ad5cfe82c9f02e5b6fc81ae0b952a6409d2109710c26280d1fa0be306a37f956ca50803b6eae1d11d4fb3a3d71bff2ba2773dccf3849bfbe42f5085f07334dd5bdd6708325d67d98598ffc5c52a0689449729665c3fa86d542e2f2da752339ded4dae90b36b0dc8a0cb3e350f62eb05ddd710ca6821f32f840eeb98961cc5823e1c827ac67ba8388a4046b8c856dadbd1323c919fea5d0f61e61f95\n\n# tcId = 208\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = bffc9f6d012a4e94763983a47e9f37698e6810c3de75df01f408fcafb3d3099896d07017670867794d5820ec163b1fd2bce080aac8a6cb90f8856d5443d2abbaff0e18d6d3201b5d24745ce001ef8e07f8258a60067c83f42aad79f922ddfbf6199ca7935fba59eb2e639c8aed66845beef5bf01f2ce1b06106ac87a2c27f447d6038ead7cb1fbacf7bdfb7811097fe0b4b1f14012c3cc0025750f9cf67e838ff715f59b5bb75676c93f71ae5cfa96f0375e3e704583d41f499017a5e62a5ee321209041921f5a64e212d3eefa8b42a4a7c240f4da15d903682780ed8c005d4b5fc13e7a95e106644eed0ae9a93133df9dc7ae8555f18579f020651e53ea9340\n\n# tcId = 209\n# modify first byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 8ccdf190e17969f0e4c496dd400da98607ecca78795348eaf308d11e29950f0bda64cb6de73604f855a36326b4f18cfe433b67eded578feb4f923879e087af1b3c42f6f29d5f688924508586fd5cbe5ab90a1a04aafbe1d548f5945f7699db7264685405b558afdbe34adb976efc9f6ea2776cc41eeaef56c5cc13e8eff817a0b8b2d8978a8e445ce0ef586414550cd79030fc83d4aa4c2867570fe3242f6b9e659500f6d6072b8aab72d16454067d6c97d5f26ad9cb5e2dbacd9b332cef70578db5eeccb36d0d8f815e2125915764134943f03023e991428cb66076119dabf088632b22455f3e4965cb0ff86d67f8d5dc99763f831add9cd23c911e0a11bdbe\n\n# tcId = 210\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 442fa58b964fcb7b87eb5b901fafb15c38e31db676c2df0cda01514d3bb6559130973b20478585e8429ba873ac0f6baab8c9ebc46805093abf57355f36860921edeb93024d812611669501928cc869b97d4eba755501c9f1a420317527e5694c6b67af946e6ea9fdf4dbd01f8f677d9a5ad69e8878562531c91362145f923c0083d404f1c6c2cfcefc8954e6efb63a10d3cd832958fae01ebb932e76eda84929f5c5032db5db9a9bf49b9f43e3359aa88cbc888fc6b10b4d908de28085af20b4287e30640bd3d67888a24fa7a216658af1add6c721de36a35e00d09dd54e55c2debec12eb475a3adcc2452ac5e68d1e94548734540cc1448949a5eb39945954f\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = a39bf00d81fb83c0c86b5ae8a70aa45079b84ae55c521f4363787f569836703fef97f5ed4f70fa9693ab365bdd8a0a6bb5020d01b0381c5cd17631edc8257a6fc271f05279d64568fa3208a632fe2b34c324fa0e93c259e80fa99fc2adbe43693d16399fca84c934a5f2948e6dd73d4c9f1f17bae710ff68ee63b39b70a09bccb891f2f849632efba4d001418f719b03a298e6f94459aa0786e6436986f637c813149b7ac5941792e7af84f8ba78bd6633811e6ab8c11c90a1a4d8f00795c8aff086c18a69f23cb75d615e298fd0d93f5ddb88b6b198af04247a2741728cbe51f571fd820c4182199df335d7b1480a1686331e8a04e15a4c14ddfa5724b785a9\n\n# tcId = 212\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 6cc74b8e2ed218ccfdb1d0a448c5a4b519ce9ea56ddc96dbb8a894b1d97405b3d3d728274ffb49913f578dfcfab9bf6581ea90c4b854ed701cb4dcb11b16fc68b7b1396d32eb24f7eac9bc121230450c41b54a6afa82a857c4f0c36dc698a2241d2f628e3f728933fb646cd9e6b97e69d8d059a3d9f08a481ec8e0c0d0b51f15df7a33a88a1e11dd46517a2c3a538f2fc581a65d1787f81594b740283df9aa01c28a64b203d6b43da281481bc4e05cb1e6c55031162afd482fdb7dafe520f4e79431cc956ffd512c68400a705bd4598534328a90e74ed4980a5bbf25efb1b02d32dbceb4b7593c1fe386d58e955a522802072c4ea02bee12ff5b76d5a0714867\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 9e97021c1c5dbc77cb54d1e88b29a02102b7f48e1f94c6f04a8dcdf19f54a72aca26700ed01912bf589e4dea8f385eca79a45e421b16d2d84527428537f4ba4b064773175aff9c9eaa6a6ea1949c5e698fe40de3d04dff9dccd4ed9e06a68bd2e71c6a4ff42d53294b45fcde7517ed378ed8c34c2273bb01c0773af8bdfb7b13e8e38f3cb49965c757f7718104786dd86c10b8696796db7f05dc2fe2474c0a57a897411aa7846919cd4fbf094c5207503dc8a4ef8966aee6561a43784b0ce06e7427429fbdb6c6e283a6a7af3af7a78124ae1ae6c57438d69b050f80b36d6cde6d84fec0bcff2196ea3232db115a3afaacb227417f0470f505ab849f1513058e\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 7e5c93217161007a38889a0a43234def7026eb0a1259be8c7c5b2c94074c73c8a9b2e809bb635786a31e23cb9737c3ed87b113f9d1709b30240d0cde14e706d02e26f5dad1da07b7a47c21f45223e2946ce675bea3b4f1ccebf3d8219bea475897c5484cdd2558fd6a89a37880a3e32fae45e752bef2cc05c64f45b6bb30da8af951896bdd0ecaa6bff1963a90034f5ed4e45d3e89812826813ff067eef323c9e09943b25da94f138dfcb40457a1357c54ecc0fdd82fea5eddfcfaa86060feb1530d8623625c9de8bb506b13ee55cd29365e424240d8dfce15f09f98bb6d2930697841c81b35a284958ba6478b1cd75760a26a6d56212e83f38c1bfdb1240bac\n\n# tcId = 215\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = b51fbcdc6eccb38cce3fa3cd271b9fa5930c6055a58c07e8b14fe29d0deb12ee2edb938bce4738ed5b28509188c907f4db14d380350de48333c7c2da1a9e284f533eca457dc6cbfb62796883a03c0e4bcd7bc60099b719a39d6b8b2609cc831661da6d84d02b19bc35b00084093225cbe336c34af9a818804ac9440179e19942db0af899e1045a035fdb24414c2a64a33a8887c903d4ba7028598a2c120a7e3da30e4cfbc4585babf11caed778b0e7cbc5198d281d5f82e9978bd8f620b48315a7e6abfc13bd83d0398d31fb89a0c8a51321575ab9a72781ba420ecbbee690604153b38bc76d00b615f901075be5305a2e78713194a36c443c0515166d7718bb\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 40f3c15a900e707287238618a78f3c1df4f751792bcfed49e583366a67413267b7022ff5668f583184ff8656fe1c89beb4ed5387fd92372d674b433f9bf0d2132c59db6c5974b8514eaa4e1b28a735c60282329f0d47052178ac07935702c7808285872cc498896f61cb887aee1a3fbc700bec4de4894274a6ad8f1842d6b87b31814dfee5688d573dc0ac5531921fd7266e4b07b26e56a10616d0027980cfc781c6bd1c84a7b104fbe9fa22377fe9f50b3caa1f7ffd4524f96a35e5e5e00f1e0248d36fe2fca1e1f21b0bebe1d4d9b16c8811a8b8207e954bb173cb4a17e8110d3966da35a491cb15f08130222067fd6bb6caef8d5e77ba7b4da52c302a6145\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 090d7a188074116255cbdc8a8c1eb66d5224b045d3420451dab67b2d2111bf7d", + "d145d522428c2e9e71be74af29f8e04d88ef46ac6b6dcddf2cb91156278f8b9151d7d5fec55224acc9b4a015762c9cc7327a16ed21a060b1f17b47d23ad66a2e5276524af9acc652e48d350409a119abdc73235d9de02a26964dff902aa1bcaefcb2b3e1a8394a50acf4c6fb503da872e9a65a220b7c1d31496ef10c2e27c00b7694648c60dfc5f238c7ca3063cd91d96d6617d76b0fed8da990838cb7a33561a7b61507deeebb95cb6a455b441305629ffde7979ac76c44601081f8cc425b346b08171752d4b3f711bf979a657e075e4924b73f011a0ba10d034934f8199c3c\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = bac5e1663853e0a4088543eaf4cdf36e8b1ec7b52fef42081d31e3f294dffb31276834807c4719a1cfb8c7ff8db7020b72058d4dc481da66ab60f40db119cb57b66726329194f8a8e2a22499bb53c1346778b9a02f92e015b82b4ef432a13c51f93999fd3bba3723698bb0724b2cc5f91dcda79e29c5eddad80b7d4a08e3c549170952eeb03188dac1c81bf37dde0378f66fb81102aef841a9a69743f4c78a8e31556fadf5af56d81afa825d37d2f6d8516795abb7d5804ebeab2fe2fbafd5ae355dfb9864c996b147bb5f1d8c1b4ccc3040b42876a27c83df2068f1ae264ba557a6f1c5e0436c04fae398ad4200f5d1d5a872f771934d4a22a1c7785d4bf347\n\n# tcId = 219\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 83a66a917fd062478353636c8a55eef1bbd99fe82af9305ef6e9049d8e96758d856191bc2fa3226166670502552d6a9e2a62a26d449b31f5905a34c1199b2de9fa37ba9970d1a00baf6b070b92a59054b12d83517d3fe5ea4b07f7e234b3cce16b2783771d9d6cca2b7c6477d695fbc2566e55feae9c6dfc183f99b7e27a964a6169e6a27b16c6e51e1e4e1becb49f48d3f225214db85f5b8f729f3811ff4497b517c4bc0111396692e4f438c9a8437e62ccc5fc44ba85d6315a63dce77d13e54832835281982e722d3eee4f4ccc4c4112e881df0900433ef46cc6134dfa75ce7da8c6f96729760172cc613cfcc89ae90edf1e8126f39ca5db76f45eab8c20c9\n\n# tcId = 220\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 60ed20bd7d6f5a7e30cfce9c7cb5686507fcadec04b8c8aaae94353f83a5a857b305aa837eb818e11a350d1c1f1d3b40581118771f57e987f1b9fbfe5335a5dec435982fa37a7921af79cf52d638a79fa13fd6007deaaf9cfb5425b7bb99269d464e4a342abef1be23f5c6383750c6563caafa863e82ceb3aac7d66e38eba4811944dcaf6bc75e56bffaa2d1070202c898b381cdec53dce38601c196b40e1dcaa5ad76d7936be573fd2bedaa6ab98dd5cdb1428d36ff98e1784adaa39d3019ba7685c4ccecb18dcd7d120579b8c7dbfa3334a65d4fa7620c6d57ed256a6ef49dd5a317675c6fdf27d6e58000195c65f5b41ad81f866859e2c6adfe7a8b444865\n\n# tcId = 221\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 5c206e08becf1abf756f632e5a19959a8f91a57bcf02a9f826555d924cc084efa07cb56d0ac67921f8d7c40155137685cdaf3fd92938866210ab9674cd451ab7ffe6c6e6c4c079cfb14df12a169540f3561a410a83f31eeccf0b2ffa5ad426c8218de9c11685a4352aaf076c815a8cb750e7dc3906eabac30e7179657054cb11f04a70e9c07ed8ec499a274001c9790ed86a3ee1060bafde5c2ecb6545d2e19dcb2eba4cb16e0ac45723849cc5ac4d5fbe9dafd47db853964b90b4f20ba2cd1786ece2e8a34da5d5d63cd5e535672b34158ba66adc480c5b78e70cfa9b05b506abb83e03c7f3efb25013aaa0c35beed9a020dac6e8bf79ca43adaa4eb482f0a1\n\n# tcId = 222\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 6e838ff1c850eee3039e4ea545d9197b3f4bb810463d20759b7d5bf82bca07f8f82066aed8370c848ee55474fe61b8e0d83594d97a499123b468277c6b8eff5b9f124f43766e2314172a9c6864580fd24f4cac27d254c0638b15c0984008066340105d339418aba4c25e604992b70da5930533e830ba1a0cb9cb95505b25d4dce8b7e62975cb9f5a3a6bdebbe01a868048665ddf64262d55d21de69c6cff62aa7b316993876609eb1842f56279e88c238836ab6360520f1a81ac2642950293aafc945b2b9d967aa6e0ae09a0f9859a773b0f7ac0d74adcce5aff16b450317b2441a8b6cdc3c0c2c527ccca0f2a1e7870ec6e582f0b068e60a105f4c54f014433\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 5f4e316d08081fb15f407f929883188cd7ed34b98fa2fcf2cd79ca01d83c86af4b122c300f4e4075cbe94c8b10b573e8f32f8dd24b5ba74f7ceb9583c562bd966d3071a56d4b815c285e16d15572f26ad3656bd86465cc2d1adcb4ffb0b323c1c77b3d4957523d76d82b25be35aa6a4c18e53ce056166aebc8ce5538f4e3ef33be60373f797fab945368e946fe6ac51516ce38ca46d86077c594e38f5a80e2475f3b929ed320ec43c12c12c297a6f15d90aa9d82321ca9a4ea7d147328ec2ab031ed9486dd889460f800a94a99ed2ee7a09c88f4dbafa1b462cdf42840db943b0b952f574a92c972af4ba04eb59540a2a02c538007f147769e238356a218ea09\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 7cce1a56772b4dcaf1b2fc68dc8300b8ba9cab26f96841934b207590f868a2d5b0ab94d9e31e2edb1fa2b8785c5255d175f7c5eb3ad81d20bdf20bc6f8cc622529ab26688c74015d74257c76fbb3faf101db3823f6cd164bcf6ad60c3a80ab95dc400d275348d7d6a1f946c37b8b8f38c44ab05198c5e5ac32cee8b8e9b4efe4692ccbde4acfce1ab26cd1d8d10c31929d8ae3b0d24b91e2094ae967a42393ab198259230b07651476208350a0a83de06c588f77e4a6b401bed5339749ec26231e7fbbeb690d3d29b3aaea38214b3ebc3707dc1742fa373da53d98a47f3199d0e948f285edaa9d79fe819f8c37d51aa8a60a8059fce71e80f3b95364a0365823\n\n# tcId = 225\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 654fe698ff8d93bd6ef88c6aabe684521c451e4dafac0a762b4dcff7c159c410ce7f1ad7748b40ee4a97a72368edc33d94f024d83a2eb1188e48fd355dcb77dee4255c28a04e2b3c355e0032380336dc7e2de43ef670e578d1bf75cc25a3bbc169fe70b3d92d187d8eea1ad894ed1caef719353236e9a0813fdebef43f39fef0961d606106fcd476f0f51be3c202555bf96c4d32bdbf019e96b4935c03d0ccca0e62830bfa344339ebc679d90f9bad3eba617b60877acfd9563b413e4b7764ce9c746134c57cb40b7d4160fa26a5c8fa44f2f12d8a1c934ee6bd140bfcd61c560a3f8186da83d26f0d733028c6e4abcd8f223faf6ee371b97d765cb799e0c1ef\n\n# tcId = 226\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 61250794cd149921ecc1e182bac8a1c378462f8054be355d6bbd7159eee35718da038516172d30ea1806a674358a0474bfad792d1b99e014871f5d3ea1b818a1f42750aeac438b37e265119f9ec2ee6c6d26fdc17e080b2d7ad1ac5c0da61bc55ec89a2c78897ebfad49dbe9d6a0d6eea9acfc083551675b0468f78e5fe302298e97280995317a9ccfcd60fce9f6afd9e465b7934a2fbae4fc63cfcfce903e02f40b52978ed8ed01511576c54d9fa33efb708aae9854ef793a0abdf39a68f330423f79448de62ddba7bc8480186a2afea384d66b58c71b1c1b1aa905af314db3ac9f20b1449d2e5099c4a17ea0f131d3fb93fbfd79757025ed7c96d14ddbce12\n\n# tcId = 227\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 1927a8ca62884d8515e9df565abc521a1c40ee409a7aaf19368bdc2c24f9e0cbd1f6a144109273acd712cb0e34d367d76800dc5f0ca9145feda1c518cdf7d07dbef73c189db35220e78c46339fbfdd63070d47e2bc1fd8dfa8b5bb08db1266960951da2ddd16a345c3d34f8bc59622e940a8317685a98f5883ce155471d6c96605b285b754032f998f2e6cd62139f75cd66b1822dce1a10b5af8c22d0931bab50ea1a47230a2dcdf77b720411bcc64c88efc0dacbe8610c359575a1dad37f923a6ff44b493a3b5ea1ddf22c205484cbe07ee665b04e26f9bd7ed62a66286b32a209fda6b5df0d7df048c400f27c493a2504bb1b10a20fc7a5566d2c0bbb3783b\n\n# tcId = 228\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 89c981b36b3a8db41f0282f14fd9cad08d7c088b56aa16eeac5f643e83ff68d165ec6790a5c195bd37ca3e6d23f8da5187e866ef44c401b338337bd4f9312e8e87b019e89814fd5e24d322630555cdf628b56f93ef81c435be13cba6cf91db2c32eb6927c9db7f856a4f86dd127e9cac8159a990cc816edee7e8c39f06eff4c72c8128d2be37d2eb2247a9d709797af04bcd744d54741b14ec0a5b7b1583f9e12063521d1e7143690fbfda7cea18451599e76e7c2bea000ba9ffd5b8c547c4c23e8975bc6ae22eec79937929487e0d1166dc7ea9f6a1e71cef41e704e89f2d01b7a81baaeda1738756265573528a3a495919dc65abc36c9aa246691fe0aede70\n\n# tcId = 229\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5\n\n# tcId = 230\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb0", + "0b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50000\n\n# tcId = 231\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 232\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 233\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 234\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 235\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f4\n\n# tcId = 236\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f6\n\n# tcId = 237\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 32f5b016f20c499f3cbe5d57253f464bed824eb521d191f3dc668eb9da87c8725a012e7969756a5ed530266f109a4666997fcc27419c208ab0b40cf42d5ae972f2dcb10fc3c8cb60f10ceb8f44394d8e66633f7846f1abb11c581a4827d5606558bbd7fcb6263b4c877e1682773fa94f1a1dba167befc444b89975daa7f8d30c6dfdfc397c21db569f887a9caf74bd8810c6bf8a80f38d2267295c3e05afc3699abe11cfa69dd385de7da73871e4c16abfd1ba60abedeb54eec3763cdaa533abe970f75d63d2e936e75bca2d1b467e42490065644843a509d2dd58d178e28a435ef4c48f2017c5f7244b4d8a74fe024b513cfb36dd2d2dada6fd5e8975da1595\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 3fa351c977a5fee02f875bb284a25bbde9175cddb79e53ad79b76b6e376a8967ac81e6ffe8b5091b4d4ffc3bb4394850eb912d2c98f60ab4fbd24e0b5b28b47e456d36aec7c11fedfb52ad0307ec24380ba1a2323e7f5786f655a6f6f6048a0bbf6e4257c22decd00d55556d06bcc138eecf2d51f2353df2c82c29227890f235cf84495febac0b074c35a072cd97ff206e3fb534de0315afcb4c36918ed8e39e84c6a1bed4941ea9ade58d45ea215174b0d45700918e9a3b44c1cb91bfa52d663ffd04dbd70889b126f030ce53e613d47f7cd3324856f1c41286d6ee16217b0fbbfc3ffa4ad4f2d323ab36fff4129cda11e42560791141ea22000ead1e2538cf\n\n# tcId = 240\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 199e5b886bbbac2fca6542b31726326be09fa9b865fdff482ef32ca5e91ab9b8a594ad1fca636c08d5ba242ee503d0500574fc07dfeaa2ccd6b0ce2cec51f3d97512e89494d6a33084095e1e3afcfd013f95952e3910b74f467d8d574917d5e0086973dacdd005d96e0cef0f6f518994335391238cadadb5871095cb399e2b5af51e06c00d2b78ac3b10d16e2a39628435e523f54873265b97874ea8f3c44c0bb331167b66ad055cbb6e236eed72a80081ace11bae8aaf39297587e5be4338f3baaa2a6623a9624162ab581371fe58f0ea58efd68465451502ae27596cd58fe40a841be295a81df636bfaee16afdafb01dcc717cd02b6065c1e99bc918f90786\n\n# tcId = 241\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 7e6af5ca287a5546bc76afcf42b1d5a8e4b3c3e276f6a56bb643cf3d84995437e830bca498c651b873b48c39493e71c6fd23eb76bd0d7523e092ea4c8f106a505f52605930b8ec244ac9b02dc14a089882462cd947d6e851d6c5999ab7b5325afb1e7c3a75f72064f6a66307dcfd98f86d8e705ac5d44d5a62023d97ebf9a759c6c657ea29039ee63370344610a2a072aa459b5309fa1ed4e1569ec40c57578166ad80a5da0f3b6d4f48a9c5cde4435d8edd5d909fa76228d8d7ae71ec5709ad08c24dd49280308e41339611df6f2e339215a70b901f189aa747be01867b8fdc08ba7fb0a867f3ff0e0aadb123747000db8d171b9864bb95885e912f76b3b21d\n\n", +}; +static const size_t kLen150 = 148331; + +static const char *kData150[] = { + "# Imported from Wycheproof's rsa_signature_2048_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 840f5dac53106dd1f9c57219224cf51289290c42f20466875ba8e830ac5690e541536fcc8ab03b731f82bf66d83f194e7e180b3963ec7a2f3f7904a7ce49aed47da4d4b79421eaf937d301b3e696169297b797c32c076a12be4de0b58e003c5123051a84a10c62f8dac2f42a8640008eb3c7cccd6760ff5b51b689763922582845f048fb8150e5a7a6ca2eccc7bdc85349ad5b26c52137a79fa3fe5c29ab5cd7615013219c1941b6708e9c3c23feff5febaf0c8ebca5750b54e3e6e99a3e876b396f27860b7f3ec4e9191703c6332d944f6f69751167680c79c4f6b57f1cc8755d24b6ec158ccdbacdb23107a33cb6b332516c13274d1f9dccc21dced869e486\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 8a1b220cb2ab415dc760eb7f5bb10335a3cca269d7dbbf7d0962ba79f9cf7b43a5fc09c99a1584f07403473d6c189a836897a5b6f8ea9fa22d601e6ba5f7411fe27c638b81b1a22363583a80fce8c7df3e40fb51bd0e60d0a6653f79f3bcb7ec3e9dc14cfb5b31ab1735bca692d50ac03f979dda92747c6430f8045efa3513ba6e0ce3e9e35570e1c30c8ebe589b44192e1344ca83dfa576fc6fdc7bf1cd7cee875b001c8c02ce8d602769e4bd9d241c4857182a0089a8b67644e73eef105c550efa47a40874289395ac0c4e02fd4ba98e130a4c2d1b95521c6af4a002ac3bdc6e52122ae4c08cc3da1c896e059acbddec574ac0432f6103dd97273d8803c102\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 264491e844c119f14e425c03282139a558dcdaeb82a4628173cd407fd319f9076eaebc0dd87a1c22e4d17839096886d58a9d5b7f7aeb63efec56c45ac7bead4203b6886e1faa90e028ec0ae094d46bf3f97efdd19045cfbc25a1abda2432639f9876405c0d68f8edbf047c12a454f7681d5d5a2b54bd3723d193dbad4338baad753264006e2d08931c4b8bb79aa1c9cad10eb6605f87c5831f6e2b08e002f9c6f21141f5841d92727dd3e1d99c36bc560da3c9067df99fcaf818941f72588be33032bad22caf6704223bb114d575b6d02d9d222b580005d930e8f40cce9f672eebb634a20177d84351627964b83f2053d736a84ab1a005f63bd5ba943de6205c\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 513a5abde16b5e0ecb8659d3ca0845800adf75cfc4437d42fa34e7aafbbe35fc5984d3560cba938f9a622e932bb6162b7fbb6cd8c1cf8815f28c495995ac18cdbe8fabfdce29c17aa021df192ac02d080d7c5eda6bd4c99154178a9d5e1cf3ff4177106315f4e6d74c991b601069acd60b55b3bb4dbf6316c35096a487d6756181d3394944f1c742a2f4d608ce4f6abbfb72347ad7d342ae15dd6d1049fbd0ff55f4d7c43ab805f81ff1fbe9256b5c78c2de6beb787f4b6d66d290a3d4c4857368aea5f7ebaa1296020c8f9e3670441a08038bb810e853a654e44316a4e52428745123ce2714020d00e55a9eb82f7fb41c73d852a82b003670246c6ca2045fc8\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 38c042a00d6f27742a46f1f963a7b2e04f0eac637849631a491b8e4e58fc721c6ce620d5e705dc8e73409c3909c1c68b6bdb2b30f882cf2797e65030b38c4e7daf6fef9d1f115c890086cf54ca3e7c2b21dcbfd1250ed1d925810970f17dbf482d1784f296adee9ace6979075c1e12f5580cfb322e8737db9d127d38e1b99ed87ec49448a18a6fee650d3c27e4a2a86a3d6e3ce4fe64120be60872fa07a3f78a112715c167fb6c900698ba1afd824087a4cf733335c4a6d5120e3b29bc42f3b3d5db79973e4e321e0910a288d18cdba172d060283c4f4c6656e9175a18b756b7d06251e9060bbfcab04978853eec6032850a0e757bc0c61ad38aa4eb6bb6d907\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2ae8d95b19cbd64d0e343ff413fffb85d8e6713c06ac8a1ceba7f3924fa740f8d2b3e120fd71f22711e795cd6468c5e263b1a5ba6ac6b8fa9e23d2d6e7243f510592a61d134e68b8ead00612dbf38c5b7302abc3bf33f23e6d4816a6e3ddcea6482566e84f57464f7d56de4cef0b2256ef21874dda4c131a47292ff8ef853f93804483c8e6373d39ca3a22552e75427b812b861de6a310ff4c366f6f6604116efd9770170aa423554c4ebbd2b5c0698950e66bb5b7c5c346285d9f5c35146255736b6e818e8e77983c93b21e7f60b04a7a525598e7fd8049b181000bffc7f3753a504370f6bb70617ac8e914deb05a198a5758a459c9fcd2fce1aede48e8a852\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 095dad1fd82bcd36652a381b7f4dd656bd89b40aa58b56da4f6aa8247874b935e65d2b86752d537df7103884d39dd9ad3d65f87404526b09094c5615c6249979b0dc58d2199ae8696a5b76b4bb03eaf08c2ab6aec686c6b1b289c9b44f648bd30cb1ac6a64a73d68e59cd05e7aa1b780f4bfd7b83dfe3b884ec11821a93dc5bbb47a00eea4557b6b96b5656276001f1f295ddbbbc511a99b9a665b9c2674c8af0d812286d0be3ce74817ba2cad283757de35dfb149f2835f60cb03ff155524a57f78b148feceb84cd20b0ae22e3e48f433fbd9bfd60be8afec93165ee0310be961d3695f309d031320c830aa6ba08b5a51d943797097c57630be391bd23736cc\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8a0e82d4f334aca72a718b6f8f643f69c6048d619d5eba71263a5d2d3ac7a7af133b780c7595ca2c982c006e861948f543cd0210c758691f9626842c25de2843ea314ca8eff285d47e0cffa54180af416004017034962a80a5959c3d3f1bfc154a4824462a93c014f6dfe920824f414a6e30e0e5944d480b99949ec7bf64c4a7461575933b17d7d6b0178b5192392ace3ed8469e8ac1dacae51ad5d3ad73dcb213e056d04596e64d8c0703def3110c7cecc93ba8ac8059f0f3d66b89d8712c62b41d407e4b4a104f4569558b0290c213cad6d0653898b9df8f4a453ab07d13bfb7598d505abbd0c4987e4f1ac66e1a523e113e370ab7cf990f0cc63f50f4f0a4\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3a380c29ce2f304f33a08aed4bd92cc6e8cf56596928fbde6b640cfdbe1dca564cb01421789c7fbb49856bbafb34da6e1c8351fb12f79a4614c33e50197939e237e0b987efdbc042bdd09073f02624c520f1e9524ec1cd10e917b9237166e3689afb710e6c4ef644e08ce866da6dc8849e0b2b4c6615b0aa803bf112e9a4883c8e60660935c43fbae9d939fdce49af603dceea05246b220a5cf99044f0c09dc98f3640eb23fa218d1421adea7898563144085f2c2d1c113e7046f80ff359b2f65742c58551ad62eb6dc6e7465553f7080fe100fcf1aad89fb079bfed32c8c4c15c84d2193de22385df91e9825717feb5209f1dbb47962df24f3b43c114417ae2\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 8d9c25235cdcdcc7ca2558c0be14f83afeb303f00c13106ac5affc952af527a0585cf4801104a7d019fa2e63fd0b923c061a24b8be7c3105443c8eedf4a033d3de802adfd80f872d3c505f41e3feb116f5d5f31f04df3e448bc7e7cbc2343f7dd4f4c3d2670ed3d3c66f91d626bb12a2001160a123d03b77d2a6ec53445db517147171e3ba3cd7dde902c486c74e8d8d33d4f7699791179d1df4fac78cda67da9138c18f2cc886", + "3018e1739fb309408c62051b715096512602c5c4c7e7c394282593ec087832fd48b4f353d8046600e4152c2092632a79bf05497a13840e171047d79c23a76896235e9d5f0f56a78d3fe472fded2899e228f714690b40b66ee7\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 884b4b6838fb629fe42914cf15257111b502385d71dae543d03597a46cb10a6122f6d539ab411161ee278f16cd3b5f4bb7dfea0f907256d96cbdad1f1fb40093e9f5c97880814d86091bfa080bfaa5a955af9d15e9460610d4c859332c5beafc24fc9e02848e951eee2797246bef20dfb89e8e949ed52af39663f5f088690f1a24abf8a8e221582282127344bf740308d146d6d16b127d1639071037fdcfd630342ac134ec24791cb8905b77dccf45eb3ed7e9b2e72e60b5e19367fbb5d1c41853d79965530b3181e4cc7c24b198a61bcc2e63806cb6b3c76757737e35066b7f1bf0dd709216fcdab4f35d550b31ccfbda9eb8165aa78ba4b4e66e316ee07282\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 9947c137ebf7013ea9e41f1ce93fd29022e340e6ade56c1119cd826430acf9833bbc1ed05c1899757a79d3104c9b4133ff0aef7e1cbeaafc2ada2422bdf9e29926626527f947124d5549d9f4fddb809f84923aa335d331c392a5ae5e29cb0f503e230ce7bff114206d5dfd51b812f9ed5448d9100125a8cc2324e560c69f4a492988045c97ab90a2806df900c3b95ab95bd634dd0a50edc5312eeef6463bc4b62e54261cc67e9cb9caa9a0a7550183c9e03f26bd5c8718dd77f54290b3a27a054d7d3e39e8cb45529d585ac0e507b8688219d2b8032268020b68d2284f9f743debab5cd47fb3fbd77fdfe3a9d7984b11a37cce190ac89a472578a3332b150f5d\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 259cc7e43882850415f4d7f2321fde08212490f6e9929c37c6a60cf686eec1dee385fc513f5e4105f19f2d63565b2d3762080634306b4ca87f857912bc062f31de6cccae9b48213c1b661ec9874d426d74e4c23c0ca53abc8f7bfdfb9d32dc6b5559f6aec33a5b9445ec4490302af6893890f57969de00287203d8df9a511b678caee2a7d666d9fca912826216ae3c62a37f12dac1412100c966ec7c8ff347eb79566784ef86943e999d0d1aa46fc9e5b90e9b91f4d16bfc2d5b9ffd4515f1d23cd0ce9612d19c28079702e1bc96b98cd86a5708b9000a5d61777a92d7d033557492f9ab1a4aee6719dbb14e6c3b4998480a8d49013898a5418bc8c63c41c5f1\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8965489287b5c6732e9269f3ea349830169f9ab644076423519bd18d744e9547dfa82d9bba9a8cf4e1ff5bcd79ce2c4168a8b6b1c7931bf4eff64dd18a1728715274a735b9f529a2fe7b02cdc2a8740c2f16bed7e0ef2ef003089a30937f04c2d0617f70db8d67ae9f6200b8279200a21a7862b7cdb406d4855d8fc950a10d5430424e4872714cbe07ea03f36689f756ae0bc09b08cf1f3343cac1e1ae6f943b5d0b2a3df116b0bbf2d433a8c03fe27c6cf2de2c0603b2fbe174a6a4d0009248c0a04ee4b6f393195955ba0818d5e3abea276d9eac469b5eccf6b37d42e38d840513d7130009bb93fc3d208b89429d053ec1fb5b635e6240b3f0021c7a243640\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2503d3586cf23777bcf02ac28f32daa1664ffd2e2bc3c34377d80718cd02195de3de6d10cbb057db69ca2bac07881497189bcd66b181972aa8def94a879dfcc1175aca14781a2abb39cd71569b721e69e9d9504b4ed54a58a4d8baa5f17bcaa8ca9524ed86cde37a86139bd62502afa770f4eef4293a0ba157968e42e77dd690a3920311d24013522295cb726e006a2e7f26dc287fd2754087f784151ac30188937c99cb20ae8d26db527d5dd3020742e8964f518bf13bf2cd36d99eacb1c81a6a9a46155894153d3c1a98e7671233febbf4f30bfad312e0dc4a9520a97098c634966c204aeffe7e55543a436ed003ce0772d9f57c8b0d3164ddb785639314a4\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 129990973396b70468d380897ccbe6930a485460bfc199c7c8efeedf81c7fc6a98f47c0afc29546c92d3ac2d93d8b1c6909642757fa52de1375867a197dac0ee58c5b62f12182a5b4e703ca981ad344411e2dc3aa6c456dc69651cde35bfe136ca323753137b4a28571eccf8d1f0cc4cb4977238dc33827f1bf670d938f5b902e6389c10b564608b396feb0cdca57f5bc3ad6bbb2cd324d531b0c5538de37482a09ce103ef6399cdfb404021c836151c81adf6f852f9a96919e4e78ce76aec77a48bc5eb224a3fc404373e28f07a1488ce2fb3181075b852a87941bd11735b3cd6f5bc0b660031fbf7671d3bb4f8c9f653b8c36e89320f7532ac0fab23dfadb0\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2a004204ec4ec1515b855f1dd802299780835fbf7430f8f5861a4c6d86adaf38159858810d8645a3076fad16d6daac69b942890d6cadfbd12affcc3d3fad8f07e90c2b1e5aecfd9716ac9a12349e4a4b29eedd9bf59d875cbf028bc9a1a0cb4f5ea77b7ad026f09a208d3d39477a1ab59329cb64e9edb6e7e552b8875a73490551df742ab300f254b7805b4a9ad72b650ca944289a9c7c5223d760baad3dea1fc36d2b5961684840939fab0ffaf7fbb7e181ce3b92d9f7eb833235d97431b76891ef910827d110ca9fc88f7e4f98e84d00a98a1b5c6c70d86d89f56bb4f33cc88936db2b7f8127d11cf94d91f56a07aa7880f6a7c3c25b0df691d8657c330a5e\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 002faa1b204fd30ee0d3d6d79274f3b498f736bf6e6b34c0ec6eb418b7a4c105c1a75669c092f52fb1d39b2247a8d5692aaa44d4a4d70b8f9e636dfef370db9315fc1b35434af3ca21afd366c3295424bc1230a898186105a07788b92bd42c56d5b66a336fca64fbe58a843f391fcb58588466e0ba484502aa26c50ae35585eb95fe0ebf248b7a57782373cbac21a00928a091455347127910eb0b9ac35c1bac4a99eee0b718550ad282b4210eabe0602823209902b2bfac9283baac38940800515877366117a2d383e8f0cd09de7c946cff1eada4f1f97c44cbb3bf3562ce21af7f499af8ff40e13b907e5f4d1696dd52e3726570228095b89d4ed958e618a4\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6d8de4a2cc01e33812da2d364cf3cb4fea7c6f37b4314c123eccbb2e4e9ec5d593934c60dadd5fef2a273d01447519573f701d398cfbb72b0c19937e9f7805fc4d354e292c5d0fc18bb872f6843a9211802f5980538ec6b100e3b2b744693a9b8d07654d2655414550a1645f047c865291ea8043137758a13dfb1652ef7dd42182603ba597eace857f39a0b7ea0c9a987326f55358910cb51e4141653e9f3c3d73f09686463433520ef0786163efc39bba3c62cd5c3599678a28b90470bb6f19fa1a56cf60e8c3465f8d7082728c20730227a2a3d2a6a4cc50fe0217f35a45459809de1f921ac5b6aa833a85bda15e288abe640829bc4a0af1aa9b3692a414a0\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4c698321f4342f64a87fe6b199d5800af12d39725e449c79706e9af98b51a2d0d724663ab87618b06c49d3c1b98d97db35fbd8746c1d9a61f31ead8893ecc072057ad4004a53009703f66bc2b4fa7fa6826f54e8b873c79bc19ef71fe61a182a8be6cdb6dd35d87d1f46746022f98360f3870f49aceac4bb1a839977af2096539a2d182dfc4bd97af34ea075ba96c39c4a85b3ca83002f97e992c110d40cb6c668eb9fd022a4ef89988095e8c513153f99e37d9cce75a7ffa0a55af6b7d8314de4690934d55895b99cb0882adb346feb8af0480a4fc46251649d6cb2e4358dbadecf27ac713dfda9b8f40cfecb642b39bc1cca681d5628f4fd30e8788635e937\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 43fe92f5ab6b2583fbba40b493ce45f9eb5f9e0254c6e2547ed4b9543a2c3a927d5b9c1c12525f4f94fcddcc4c586f4e16626ef48fb0688e07eccf77dc65a26c28f374aa4bcca05c72555e7f54d896065f3d44a728bd2ef9c8adfa698b963c16b13c1d5346457beb6a66c964330e0945dafc5bf75f4ff26e84c0a8bbc854c6c877ffad409b11627ba951181939ba9a2e28764de34704a5575f43f70c3f4bc5d74f4d651e25f32fe238f193d4ca55c04463dafcc2bfe50e017fe9d3bd319311bd2d972f5e04d8324a4b26842fd66115ebd139440fe89bdd55d10e14aea5d9e3f6a5c5fac4acada9d9e2006e6a0c36f4b94956493c9a582eab35c69c9add972d40\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 64401a452e3b56bebb1d5f3cdcac3dbb0a6f6e81bf2fe938143b9df7e8f6380687249a0c30a2bc5ba0fdb1e4d0fdecfdfc74064d365fb8dbca0cefeec0ba6fb4f775b4650839f03dc681c1f78d298f6c789ef4734d0a3ceed09ba8850671911e5e68af41ba2f37f3e56f7864fe4775ccc6af928876290ffcd20b988540c0146db97e333da0eadd4772cf15cb494e366f1f3bae740dbc69cd339a5d1f8a5e608cd61eafed4e85886796520ec5ad7240d11f1ce25463b57d0723509fc368f8f81a6c63ed2c61a216629dcdb9fd226215f8b248e2dbab5cd4f62600fbf921f4fb666384333d92251578dbdc5dcecfacc2c4435a211cc984346bf254b7cd52aa2bf5\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8998ed832b496be462a431b1b32c3696374d816bbdd2e348d98795a5ad27b02766aca9b161d8e8c94370fa38c56ab0ea9aeaa0bb37fee33a7bc27024024d321b25504874343cbd50dc31ef1429b16e2ecf53deeef15b4a8e5a447cc3f1b212179ccc5ae4a62e5af2127c02e53e8a23cec5f1863ed53e62f472ea65d599272a5e4c0a0802553f31dd22103b7fb7155fc8ef4a3a7061f78f6e72c265e561436159722da4b8850204a7d85f7d45c18f5ed4e452cb146c47963e38cd29f2dd3652720fd4206bf96ba2c7601895c8771d1b73f03fa88ecf81b8a8f2f290094d85521048ae0c097460cf8340ab32262115b5332abd75950d46ae77ff03cb618dd69e52\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 09634aaa108980fb190dbaa425d9908a4237a2531c6471ad47dced90ff65e217baa0d9a8b5167d1c07fb414c88214e6caeeb6", + "a1809cbf28f9c6083bd54cb2fea79296ad2dc1e27de2e96c056842ad7694391b40c6b6a6693c64fc1e3dab13185f8c1406ad4d2c39a04c3f6437519489b3d6185d9415d97e9cc405dcafcd488cc4b93a9df5100c1fa8dd31c60575dc64067f2fcd26d1f5c44919a4e28ae00688487c279130d087161137d6fd480111d45b03057bfb7f79ae75362439775f28e84839156b9f1fd1aac698f1b1874ca19964d30a725e92d4ab784b8da18258291f86e0116c9d3d4be6931568c109068ec52af3a26aed5ec136abadab1688f06488a\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4e63d527dd005236fbe35e838f51ffb09afd2669b684d9bf7488ba49730154be9147a63dd33473ebf547272cb6105b114f72f544e4568d45dc814a3c5250acbcbcab008dcaed3458e02159bf5be9e4b20420f9e4c075d27bb980748528327a1bbbc93f63db57ab03e7fd86c61db3ff8c39bf7d818a26d573fe57f5010718021e45299624e25a2f5acabcb3a1ca608fbde28d13cf74a3f58d283fa5a41e875854cc480c5948d2c0d57f2b857988a28e34a7dc5159c86ae1f970f3e318e9dc9d29641a521eabc66353ff0dbea4f237bce4ae546b8d05f6ad19a4ad8d4cd086b22458b311eb970ca33c484f0b9dc544ed4ddd88e7f70edc32702d66ba570b749428\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 467e9fdad9a1f83ffaf7622a156384920eae46b89f63c3fa61c5066786c34108ff73213ffc7ee9102f367726854aebdd9eaed49b32c88517e136778dcdd7e231716bd618261615d029241a77f148c1e5e39777a9f85fc3d4e9320f2455cdfd3280184ae17e35bd9be0a0a0d1c2a2d321a3bc86588fce12d929de1a2f473026e0920b1cb8b6dbadbe3810af22a3e95dabc9553733afa026e0c7847493182aa1f3057a3b227775a3d7ba139c1724b3196f6300ca4ef457c2bb3f09bb2be6fb4e7caee6d4502c962291da0e499213209a28cbf2c4adf5d559e44075631c3035990aceca49bf6161203390509a80bcec1d274f1e9a1bf26c9f59244a695adb2c5fb0\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 063b7dddb7483a77af978f1f09180b98557643574b40522da25e8636d5e5a71888c79ebc5de9ba6ac0e4c30c8dbcc4399661b117e4252d980822cee7cbd4d2aed3a10f91011d11ff92228d02393cadac68030123f52529d76ca2d41546cbfbfd28a43c5d52026ff582a6bcdd10a3dd944fd7232bb950ed162f8827a5625ff322bf98e079dedc770e4d586a7f28b4e19452a353eef2defdf56e0d07dc2fe5625d91651629c5b7bf6e180dd27a1cb51787ff264f0138b46bbbd32c5e1ea63722b4baa8e235f27e283ba6c46f1af28bd744e2db92e326ee7139b9e5370fa5b5e2c2bb79b60c9f9e305a8acaf29340edabf7531d17fffca6f43ff07ef5cccb50eb32\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5afcf0d327a427f6d51b87aec24789fd7ebaca9c4eebcc307664aa6e92b6acc22b112faa3918ea3ef24552665965842639a532a09b914bcb3b953a0726d5f88eeac1bf65bbdec56d55bbdac534da0f83e182dc8cfd6e9a59095bc82b5f0f5f56a1163f716ce722d80394a712bf0d5d24cc13961079082e4598c8df5510e20febb3d1a778fc5876c65a3e1d3700ea537c8d67f7534780fa8d1cb0ef9c39e439dcb8a4c8b76a723ff8309e3f3cf39e6cdd6e52edca5308aa6be2628608d5206e82251f9f7cd711183f3604d83e1c23ba71041b92d33a695225b1a3f61fc742f969726d79504b224be259e9115f1988bca3c1e2b61541527227c3d629b22a95791a\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 543ffa8db719767c9eaeacdee487311bd4c1d3b6bca2a07c6a3989eaad5f39042dae40b45a9b5aff326a2994f36f0a2a59ff3d46a3d4abc705d26afa3cd35a35bb662292c6ae3a47cea9b32de37cdadf797cf72c7c62f7c9b61024ad8c7c82f5efa27c8dfac28840677116183f1f0721fa36ccfc13ee5863589b0433b20b6e1c954cca97b3796232a3b0b2b6205382de80db8487bd00b620a4b423acfcaad649a683b915de7caa65a4efa6b0a1249a6d90348171b816deb0cf8c99013ffd84b8ebdc660866b56545de6dc4aa23156cd86c5bf3d5765ab48d8d601f43dc898ea6e05fc0460a28bfa2a776e8917c59f02f1c8e1cc454558658768acfd717718c6b\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 5f912ddc495c20f1975219b0b5cdf0629585a98d5565e8ef2c98fd945cd851d703be32da38e6a376c1269734de5e72734cc685cded8a31d430f526dc3788dc2b54de838ce6514ef970afecb8bcc0b2cfe0c5e8de29d2a6c009813050114374e1db8d7f4cb714ab291a6095b7e2713a28b5dffdbe3ef127307e10155e0386e3af886cbc8e1b9b66086dc9c48d07e460fa4cf66197414a4e1a72f6bf09ca94964d668666ec1daeffc52a3384cb61abe1a4ee0c26674df776c7769fd0c89667a421855de0b060b169eeab02ce0005a1e7d7a126c8583da8a4900f14fbce7ec1b4120994ebebd3e97e0d9465bfb53f2ebef725a10fccd0359a2724a9ca18b2b7f715\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 5dec8ec2a5ccc79cec9d4455a2479f562c049430d572b98e5bd44b83ccf6a08d94cffe4699dd29568dbecddbd28c92c771e37e2ce716ab7455e4a92ad87f9e5b76aa1ef1a08e3a77633bc71b3756e3ac956eb8d5974cb50b88a6f49f36d5d0e84bfc4d379621fde3bdfebfd9cd916e1294c854330218d50aef788aaff97e68f7cdb2e7a12e8350dedad00a0ede2d72fe294effd152ec33f95d66fdc648904c657eaf6fb0c322f5881bdc1f16305c3ef90c3df597a0e75222b82d79f5d6dfd913b2f9620092f418a3e67c48823b85e96b1fe85d306f3653a799811a1ed3dc612461383a6c1eeac737dbd2c6c20fbb56567bf544d199a474bdc38621c8b9bc7920\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = a2ada8ff1c1821fadf49dfc156293dd59ac8f51367633f73d2200bbb65bd960f7b888d1a843920044ce98528773f3d3df57de92f129c03e1f6d425d39ac83978c7c8ed7cdcc8d47a778350f99f8fde4f6028d5ea77d46091f98f72279c59fb39ff8f73b35ab1c6748970d325c65ff49fdf833e8c2f40621bb770f2dcbdfc34fb22422f0105f5f582c90be73e664c215cc6d89419a8909f0d13f6535182aa567d4e16a2f7ce1e562a6cda4582304a5cef821c538de46c68509f3936166c109da8ef13f2000117644024ee1ec10e8ee4056879c07a6604956e1d03828dae5ae0eb60c322dbc6ff183a57b258c06a2b837021d4df94baab66be636b505a5a5b2697\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 743209d44a3c907ca08c0b236b9cbabcaf210bf522de862005c977bf7099cb7a38eb9fb15b765a044703c9410082b6a35a7866821f33bc2e2a58ca8bde08b78ff6b3c53e771f8d7fb43503d8060a884ff6012101278564edd6d64fabb6add5f4d4c62707c2ffc45f904acb43ca2ab5609a23daf9cdc58aaaa638f6325a54a5e272b253bd57246d0935bcd19c7aa31f878c474c8298ec567b6a7e165c2e7eedcc80748953c90d20699ab8303062580d4693c058ac761678df6c875bd91d465430afc93cf0bce027ed00a35842ad560d79bb640cf3ea55d8ade362c258fa707397663fec6787d44ec075d857a6fc55c50f8df898da77252d8903220641005177e5\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 098464aad869fbb37c36f56d750ba97ba6bbcf96c9e25d92fbd5778fcf214f6a24d1fa276a14b5945320eeb37dc9ce4cfdae21ba57185246052ae26718b549a59a81cf26387356b3d3fe39a45cf303741587e664244233fa2263cfc6f209f796112d61ca5e9f16e362765b0651e8e197920137a3842483772428b1088e7c1a7aec2152b62688c5655410ebc4907680753079706931359e893ac76ebce92a3572c7eb32c58b386d7ab0f3af24acc5047258b5b7c0db4c1ea4a4b64203d65aaf6c879ed89bf046ce5ffb1c647e95630ca485acc9fcd6beb6a5d17bd54fb518cbfa226d9738beb55325f1883ceebed860d54f5db3f1670ca910762d877f78af80d7\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 498209f59a0679a1f926eccf3056da2cba553d7ab3064e7c41ad1d739f038249f02f5ad12ee246073d101bc3cdb563e8b6be61562056422b7e6c16ad53deb12af5de744197753a35859833f41bb59c6597f3980132b7478fd0b95fd27dfad64a20fd5c25312bbd41a85286cd2a83c8df5efa0779158d01b0747ff165b055eb2880ea27095700a295593196d8c5922cf6aa9d7e29b5056db5ded5eb20aeb31b8942e26b15a5188a4934cd7e39cfe379a197f49a204343a493452deebca436ee614f4daf989e355544489f7e69ffa8ccc6a1e81cf0ab33c3e6d7591091485a6a31bda3b33946490057b9a3003d3fd9daf7c4778b43fd46144d945d815f12628ff4\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 4da37914ee4ecf0c0973cc89f9476e2d872eeb2fdb3eddf6fcbcad9b21b8eeff2dde26be6a26d5d5aae6300b4caf4f77f2ab7907af2434026c3369d76268c88b1a4c555c9d54723b17ac48ca1118d94e147a4c63c2c4baefd244235cde4f9c254bce8c8c21b45b7a2fd9d5971b21abad1bef74b9d5583d352ef67483ee611ff3f97198c023cfc56c667c81ef03bda4729b2eff85c24e75aafdaaa4c0f47419d8a63fb2ff72c074ffe985ec7f88bb0e93cfd375c656137722fc6aa45069771c6c66d4b109a5dfd8500331d8d840edf9a5c8024b2520daa56641ead240033b0aa300ff3f951009ac46a97ab9311f8af9467b8ecbde36c9744e44168314f092529d\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 1aff9b9ad34e142421069661c71e35b98108a8f976191b45a97cf12e8ae8ebccd64c0fc6a795f4ed798fa4a2f79746c57a86f894110c1a5402dd72577c2bd9817a9e7a1b0b7e389527428140d53f4918b305e154f7c143011dc27ddb874c52b57758a3f4ee4395108897f0cf7b4fd7136ebf991dd9758bd2cb85cdc6f9d96a40f8e6a0c12970c18325d5742b80ae499da45655f972f33a80373a93572fe302dca03cf7e004690618c5b725e3b9be6e05dfd0ab8f28b8b994ea202875268837d3876681a63e88a410a0bf4a4c41f7336be2799c6e62514a5ee0422cb6d5c57c2e45e9f96d667f8629e0987421f01a9391a3334d", + "c1e8a35425501bef6641f9e6de\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 7a1eca54a78ee1e92b8c29d667bc89e9ffbb404c5bf13a87a864e99c7d3089c458865a8e3ab714fd76ea4f01edf15e1f80fc9109cdc53184de1443efa533939f498bac27b0f127beb07e4f788ac5d9390da29dc156aa156d342158df68b825732a8d8e852644afd1bf230bf01c15ebced9f710f062b5aba0ba0edb2c1bf9f4fb453d6ba7cc9808d763930b6d8dabe8224db6004aab4a9ed4495fba8ddf371592b05bc057aadeeb3d4b800dc849eefca86f7414b2ca3af53e04b524ec566f646974c17acc6c76e66f7689b9824cf4f98f75de9b3997233cdadc1a79679c47dafcfcc107351f7e64084d67bb986dc2cf693f9e9af2d46c5f8a560b1c7ba2d3a202\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 0e6eb88e130cf0d79056bdcb87f016f99edd9f35519c44bb509a38cd346d996e3d9b7b21a40fc976a935f2904a6423dc0f251d8a89c4e1424d3312b1e7e0c14f057fa3a45841dcda2bfcf107c2103c0475cbb34d4c769e98b08cbd35964aefc3a8dc4178725c16ed7da6b438107da2488af8fd5cb2c15a8849a531e1a955c40cd6c147956fc3e8a15a1082e9e9a7878efab929c50d52fd6c14cad0987f667221a0c8ab29a682de04e437b20c82e9a759291dabd22fb38e86121b71b3ab473ea0977441db6b137d01b63e328412996ccb8dc27e57c8cd6cbeb31e321160df29ea3151f34ba36846495b6e4bb766f0bcdba00062265ad7d01847e22c06a463dfeb\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 755f090081189878ea1ad03070944d3466c773ffb2632b045ea28655c8527488aca42357718436f6c9222a16ac61ae8d752ea18dcd9f0c5370e76730c31eeb772755e3a763509a9126b64007341c5fa48bf95bbf3e3a9ddc36096625b0f6bb27108dc1c4bfa191d66a403e11df2838fd401215cd2dcfb5806ad0955edc2feda4a19e0d84968a6e1756036bf0aac8990d7b8bdbe45a6c0edd8f55720f105d70be7e42aac114a528f1b3beb81ae796d455beb05b4936ea3b0893e8c2fceb8a6b8e1bb6de37c40e4b3da2a1ebe9a52244a5f4bbd1ee201d218d3a120d6add7171ab56da3062de4952495b602dcfb4404d0c900144bef9d46cbce6d7ef936160342c\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 8083dde7cef1b018fab0e9aa58744a665c24dad0791dfa6e8fe3e95b320a94038926f6cbaaf19562fc53f3a69e0aca0d9780af9eb9267f19a081343294356fba81518fdb961574a7ef38625c201036ae954238b889c8eeb3677f7f9df07badd5f27ceb0ccbeaebedc41b977609f8b964f028454b4406e22e0034c3655ab499d01d1b6be0c19bfc9e4ee2e209dc033ba1a66b50ffececa532c2c806cd2ed2586325d5bbc57f42840d8df88636b488ea363bb7f3ec35d65a635befe9d96ce2cb8c4b7b0f90ae3eea677debde8c6b2f63a0bd6b694922ffcdbf8e54864f4a90202eff266678490e53923dc48d70e9fbb756536fe6196553c8492fb5ecbd0a5e66d1\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 85a965f4cfddb17eb81195bdcb081d307fd7f218de37c6daf043d1be8c9bdfa85b3a7a0951569e670cfcc695365dc45e3b9e44a7d79fdc3b8ba92912a642ecbcea85d56654161b777b280b46be78abf7f0ee220dda1ae3eb4e39fa7ae4d2511d4111b31fe17dfeb897bad9ffb1fb367076ab336b1f48530f7d39f106cba2fb8961e59ed3b060c64f5b2873ee51ae59526e782afd794905923c8753be18ec9cd3791e96eb00433548f2f2da478053c7bc222281e7342a0510224c9f9e53c082a11331f0923c44da8533b56563adb781c76f4bc303ac5754bd6d7448df0e23e41063992ce6abb3d31378be040aa815fcbfb333559fb402124c53f1a5b4e6fab559\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 51e52edd65ff6f2fb812d2fd4f3f9852eedd745630c9bf12e6f63347c2c80402ab0da654155046e4831ea02fec6dafffe94e6c450a96cf56831a0bf8e48b99456da7e17b9f642e9d6e033153f740095a67c86f5fa4fb37eec9cffacd7dbc368bf07ee00050606748dc887fe0778871ff64953c249244e78ceb4b62efffd2e9cae6803c25504a67fd94941eff1a320b1e0618eb9cc350d8241892adfc42790f24745be12ecdc63f891bb6c0066ee28895c78a9f1773ca527e976eb29abf4f649f83f0fdd7a7f72b7dd3343149b4c1b699588948e5508a58bbc481fbda5115cb5822cb10834cc01989264c79794ba032967271a7d2af9c12a493d1bf3c070b7207\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 84a55f8bd78994a9e204bf57292e1c29d663a8963c01225686cd646ff8b23f7ce6be18817bfd284d2649b075fbfe233a2f8cd59ae465af14602108da6bdad31fc97500f791ae1bf4459a4b3be350362b46f84697742c6fb6671533cbe73dd15304e7c569c673c799227a6523a54eaa4e4abba2e451c3f75cff2ffa6cbd9b04cf4a73a35e6bbccb4445a99a1380fbfc2cdd5fda03bde573b4bb88a205fbb38344648ab03829f4e3687117ef7c12522ade2ef736b24633ddefd0ce6da208e860ca6f3a79492bf4db6b466500371e40de78d5d2708c2a97999239e38852de7a02981203c8402274cb1aa24fdb3e2cd27a4305b15797a498145848e74d5dedab41f8\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 19ba81c3e688c41625d6714da91efb9bfc95a634409325f1cfab3dba44b807fe063740fae7604a839efce051d254af50efe044bec96280a831ae8e4e93a0d0611e0a43de6aeafeb3eebbe0d6ec74e84fdfbae3ac8cadf657fa342921274be801d05e553f589e8f48d2af38b79404d965e0a4def7c0975d6d9b5351ea82451b6bc26db3fc64729325b059f45089c90f5c8792933487d4c5317b62a02b9367a99e8d5c4148faa1781ae21200f1c39be49353d0976502ff19e08f374ee685d58f14dacf613fbb3a56ae3f1bff1afc060ba36aac11e2d038272c01c430bd463fcf55b311024cd7ce10bf59c32ba3d9943f75f8f76870bf0a8dc3e786e0718df3c01b\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 2f84141b773914947f72db6981d6d0815aa77fa8ffb0444c13b7612d6d89038b02eb60a7641dec20079d6d87961502330f228b936aba65ff8c59a651656bc3ad7a3131e55312d334da0f600f3538f3b65ed61a5d298e32f74453385d09ae45eb93a4d35ed2dd7a7497085d5d3a36e65f1a0bd8683480397dad3b304e49cee02201a9a1ca5b778e91e68ea35ff72827f968426465845698ac0999f7311e5c532438e8fb494d8d92efb520293c503cedac0036fb42907e78377f897bd7b94328f6a1a594ea2ce3770a49bff8702e534798e1eff6324310c6ecc71e5363a0b23f5604a2aa245808b72c9f6eee364bcbb22e8f144460c5300d3f89f3b8b6fd26c15f\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5e97f3122d202fc0c7688f28a0eba5f5ae8795438b09f6532a2bc3e75a164075146f72e0b3397bf086ec8e7299b67f5c54e4263aa0111f4ff3c16de9aa06682d63be4d8e82b5e2b3c15d913093e29ad844c70f9ff9b3a084d41648e322a2212463ec758823591117e03d90997d6264e5bfcc15b834ce7ae785bf22399a85fc454f6fe9cacae568e0d9bfead7ba998cfa1f25a1b7392edda3115801eb31c9bd0eaf6b5c070224fed09fdb071f87266a6247cc4e3c72c591c5a88a6b41241c491215512a810efa993b0c77e9d3ea4fd78fe9ed4baae8cd8d41196efa3d5f2fa2b4fa6c027f4c385f98c88a296cbc5c6459f91dee01bbdfa059c50b42639641b29f\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 8f32f73f3387f371465e3a75a0d1c7df7c52c11abecdb69ba83602c9f8980177e7df76438f2e95ccbb031e0ab972c30279dd2641e5cb43a24ece04d7477879bf989e504887513eaa197c0b5e6365ba62134eb51fcd3a713c69acce9332ca50ec1796d88ac9921631a1fa182e6fddbeecaeb9ec468773cada71f908915259967fd7932f41a3734f09d230b1dd487f3ba1df1ad1be8306096f3dcca684548bd458b0211738c79a8104a17689bef8bb9050cf59df1b0efd3aa3f203b10cfdbd3deafa36d79802126de196c9bffa362b797ccf253af546c4751b68f7a0b819a5b634a9baa6b981b1bc325ecf2b0c48c0463f85b02031589dd793eb682023cfdc7058\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 2f02de916b44a1aa31811b48ae20efdc26319f2569fffe23d0734dc4f4085352945135b209d4609bace95f8b850146b35f703854d4435536d00c3fbd9e9fd93812b4741f64c33271c01ded56a6c103121dba041b6fa1ca7f9f8e26fb98c6741ffb9e2c7abb10d3581e8f0a8ebcefd386957daf36d0aed4861a2b480467eef8fe5109012b765c6219dfb260a2aa016432dfe74ff2e71c2a748d9c99e1a6a9a98659ad6b5934d7e538c7aceca9534e6a48d27469a6ad582ddd838f135a5fef309e0efdf815485756e7d8046e0db84cf136a725f5defdd78935047dbba4dcca1ba153c68cca59844e1691dcfce73a4fb11cc915a4ee9549c26d08a86ec51a69e104\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1c6cc57e11fa138c36bdb069b0787fb67a46c70f39124ab2aa2326386e0b055b8195897e024a7e43b7840df0c0d94459830cac7e33ec3f127cb1e9563167b61b3767964122a243e95b15ba9c8e1a992e20d4e70ce14134f932cb5453e795d84fe5856dc5ce39da38af6ea4b6029fafa7f804977ed075c30412ffefeef27277e541e3877f439e49154bf25383c9517162b1d6e469f5e861c385f2e8c45fecbd26504747ce9378f3f25a77ada8ba8343f50cb040f2f8c224d16834c6a4d97b4b8af5d1a08598e9b7c0fb1026ee19feb2a7063f73d78bb9cec8f499c4f66c1fe55049d4fa183b1a5779240b9a7c908c84ef1405e8ed3c53cafb92956d1ba2445ac8\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 077b81fdd849f2ef237cf278e10e506dde35069cc046c4d491cf74ce419f11e4cadd66ab1acb99a33f23654a65c860c9901ca1f8ebca29f0cd78e8eda1f69eca20eb12a6c1448eb679fe5255fdf634f3fe2e716c590b5345515c02636a4f2ba30a2b62efcf5cdc13a6c09757b2d1ebe5943a7804249f5ce9901d95b3030eaa0a2065d9fb5eac8006a176bce1f4ac537941c6d74c9dc73e85264ab058cf5043633535b09abafff891ca6a83c45a7e99", + "8de6c8b9b275ae9fd0e7e0ada7ce1434146ab6bd86a6eb790d724b8d3ff921231f92d5fd86f0634ec45b911b07cdd6f0fe275f22ae2219f9497db982e55033dd9867357e6a09a9f4dc281c6aa36d8d984f\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 048d13daae417db317d655fd73b112cfeb8cb8be13cb34bf3235cea1e81c4248a7657a005ce89d81fe85f4706a478dd9739fe438373edf453db22fc3480edcaad7acfbee27424173ab89dc37aa50c722a9404bf697f333c5cce65c0394c3a86845029bab0f3e2be57bd98b707e3caeb270d5c0ca72f7fb11d8d6e4717cd0dd6dec4ec5b0829c66d44ecfbcf0b9b46aad8f192c66f1da67c2520fbbb8cf847278ffc665b7d97760ed0581cfa4ebba4333f03f3f7d30b366ee313a8dc3eaa68f1c596b87a848ecfcffeceb961f0e970da56aecad945dd78660446bcf7d5890d0f66ec012c8f2a84a38ac528050a9dc883fbe95b7bc9f289f7762292ee51133ecd2\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 20c0e1476060b1ed708c5f7e15d973eb79f23c14d6746cf1f1c0fdc0fa9c3b2acf6593f6d67a541ee279751b384df714a3ae13c1919947638504f0caa2c84291ea00f5b323b38e720035e8ba409b0ad77ca1ccfe909582c4de83e32661be7da06950d959ee812471d878563c75469ed82ddf806a06a4859166d7e7a65953779f9f1a3b72a2063b5c5e6b546beb42bd7a41cca54ff06abfd093a9470202856da9b8709bf1615d7a4520f6842ed29c8911c701e312669d8f7927ea16e4519cb573ac1915061407e957d0ad1e2e732c4f7c75f4c5ee71f25d0aa6c55d2ef7af05deb50656dfce222cdb049a77e6c30d6d8cd1a88938be1cc04ddb1a542409e6a881\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 210413ed83069efa72a4215cae4e59f23edbd5d1385294cfca4a8408e69200d3bb73748ca484a5af10b5e665e23942c9e9672ace86228484a8ab0d76f8f5ba63d66c1c6b8d1c032f82c531e4a96856d19dae24b7e090955e9c5716643a81e6a4af6e67d4225f6c3ed2293b8e536c333aa82fc80386249590af1a60307d8787b50419772fa738a753a8d592cdcbd8eab403b744ab87fcf8d42b03040b74a6479acdb21b7b8262aa3d393d34a8f5a5cbc7966bfeaa771641d25611f1e9ecd8acd8532d0c79d3eb80b41c2c6ba03600dde2b555a5b2b7e5970921b6a7f2c341ed1ce44d70dbbf9f038acbed1a4d16004d48fe697ee38a6261c107a6c488f1330a57\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 19c1b847f37fe29638684cd2aaf0a8b09af6812685d503713d357d4c97cfa552703d3690f9f3c87d6c95ee417cd47f1ffcbdae96b01e31c59dd4519d5c0d8ac706b6a365394df9c7a49078b489fd612a07d147b98a4b58ce9a0f812f35dfb725e2b53ba807b891e87cb735deb40bae7bb1842c52b924a9413bc893450da1b36edf0a02f8835330a54a2b1ef7bda97f3cb9f3bf354a0c119eb54ef38aaacdcd60aa3e92272754de6d51a54994be7ab44c8dcb11dbd61a593a3ea71f4d616bf055749438f53225b1c0746c6c491c726664ef80e20391e510e6ac99ee8f7453848be2562c173b87742ba48b0596e3080a48e7091cedb9c23fb7d9208990381e815e\n\n# tcId = 57\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5f6143cc96b7343e57cc83612c6e85d46352b1eaa4b6bfdabee0af42609a9ebde9dd07db4c10d130f58318f7210cff30f122d9dbc1d0f88a3a0b7c04442c6f23794411dfea767609dc5c767ded7662e5996051052f98ce4eb0e6bcb72fb0109370b86fb0d4ea99d0f02a4e0101cc88d01ec56168510d77b0e7890015bb3b22a032957d8f1ade702aa70a360bab6bb77f08e9340c1c53b72b992187cd4f7c879ed83d462fc69062746e7f0041801709b05a58ca4b034060ad14d25257ce4aa93573db71779072c5c5b21168cda09ac775b37b2975f2d5ed8ad4bd07872e74e6fae98e6d9e8e46f7a2623b940ccb662e897ed6df058c8081ad78c9cbc5468b2afc\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 324d4aa12baa7237b487b756f251b41bcc3cc8c516e582187035127e1cb3dcc789d5306370ab39f243ed45b8834e844fec49c0a190eeb5b4428a9925057a9f26ed57bf34592bd5676b7db1cbd95378c397a6818b75a65da03767038e5d111f5fee2a6d81663f1c8317ea6c4e64498253bc55f07659d14e0efb0de842af6b823884e7dc2eca3ac56c53f618c10362671c575a1cae42416b1e39962bb06fba2369afb336ce44f3fa3868c835d831746c30c3a609ae5e44d528f7f6c7d306d3839bb46b0da1edefb5eaf59b03dcf9c5116ce49b03cf03c1fed3f3ba474ee078ce37970173408660120b342c4b547e9c400c81be8a6d3852a07ab299556ecb868730\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 90a3025f33b6508e08d407443f139b1c03e1fdf203334763e4f010c69d7b1728d37ed146ae7a3667a655ab8ba20c93b5dc432d9d546dcbc41f9a2c4b9411785efd530543f78f5d98e2490a9eaae9164e085a3e50a8aa56ee11f9c27c471a433c6c48da518b890630185ea711a5b3bb0a966af679506ffad0c1f1d2937a6c39ce7e908cab5597c5cd5267f5e724460b12938c70e5b8b589f16a845534702706980b3781ed12bf2a76f9d3a19ee771dc561a84a8b7f4587d4f0763357bd512a1193f07830e64813b6abacb922bf31af6a23d7e2c6d44cd8283b301060b6f6fce58bba01623306bdb761e40fb298a300bc7148c379a4f778f2af934bec60db7c586\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3c1543d5cadefa71b2b00aa9bf5ed02fcba33eaa8237adcf6eea90f100e3133c944f434961a115e8bc8c757ce82734328dc2b442887ea984ab74c5fd415941b0876e45b3a338868aa07dde0463459a358ffe8e625ee2c2f94dad9aecc0d011dca6ba841357d308e0d3d2928f85c42ebeb5613918063c4cf398f9d9c6e57337d4a3c50e900c6035ca0833d4bcb705a0ef8565cc591fb67159bfa1e58c9c9e4985c0860126bb4853d700b13cf0c34ead0f691ae046778e8cd8596fe9189136541429887ccef244b71fd494770c6819ad3ee62a89f8cfbb6a9d7d7b01af6482cedf328ba7b3d7c30c179409b6a6a659978dd26c3e3bffb93cc985a747811b45f69d\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 8897b2a9b6d6eb401b297f006e7b1a81b26bdcc6ec530968c4bf9558c3648beab5e706954ac50b18e20f3bb2f1061215e5013111e651c456516ae34e63f1d4e15d380abe36baddb7c3d0ad38c0f3f59621024c8cc37bf35871dadfb49c1795a87136d5b04a827a4f8fea6a7f6a2612f6866965cbd6635fdc2dee4e582d602c230ccfc29450810be09390125da052823766729a1c005506b975cf22c49c6854dedd737da6de60632e583bcfb4fed6f5a5c8593e999db7db53642f091e9792843d142411b16bc3683fe6a748de93c49a712b405227f1536ffe257c00b3eb525cbd91274ff8472f113c50621e3221173a058c923bd40e28ecf0faf42c9fb7b01f9c\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 6c1eced47b60318495f7cce7800139d09229c4804482063413e96868ce3074fd99f8880dd01937dc0b956470494afd577d35d5c76ace00bf484c2eb2b9ccb48bee3e85697bef79d7d2b6f541ce5a83d3a71c09d5b8d80943030e6e54c5dc29c5d6e4837078c763cc018cff3c4b214de76d0ebf5bf2d7dcda39fdcb936d1a26c25ecf79342e8a3703cd929aaba16ce0340e5b8134894e6b3b2145969826cc5f1c2f72c1c8035a920c7c00b108ca796dc077e1d19692b92f5d9f12a7cfa3506ef449e13c41530044c1195cc7658b3d0a295877bae7d2fd74044c318d34889004a4f1e14a727c66807e5be4124f5a6819064065c0b14d7545cf0395cea881734f8b\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3e7d8ce9db20f4b8f3ce10a548544cadbd05f23a7d7c21233bd12641692a4cc153f17e890385b7047b0997f5368b3162078e4fb7fc12b250423ac365f0651c5ba2d0e92f74886ef2f5624e6677679a64acac595c30d8bc3b0d1e838e18705373124adb1f6f01aa816f871eaed99240d6e6d4a18088944ffb11da666b6fe5dbd1ecda75dcb8b5ccee024b0ff9a4f1788fcef403af316d5b1d1611a1ad3f36f9a7bafe1b209a7dfb091f7e63858a119dbcb793bdee7e68234acf06979c0dd5b869dc4c92921422907f01bd3dcf2517b2ead3d1ccacc68da587531d773e1934d766f9ff40566ab3757df02e20a5147e39c92d65534160cbd33d32036e4f7beab5ef\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 507bc632e1a5a2f787b0befa375b322f1989d6dbf4254df8d6e37208c9bc6ce1991a8600abfbb36b9b8fb954b4e5fa134e66bb528d63cdd6c6b05be5844e80d63ebb1503580997c817eecfe7fec54392614f79e2a3c27878e7261b78b433cff39c9a4805502aba917955da4c7bb816a5e636300d75d47b93ca0676ca35ddd15e6d562f8d376f3b60ab5e88290a2a2e0d884392921416d3405e3a3ce3e7e4e6e549c1361be042d060b0a6d5b418369509cd63dfc538fa648083574937ac49ae02246c2a0aabbd6a710f7826bf06dc16e47572e0ed990f3d2392cefb5c6e7eb4b6cdcfa39b08496f172481e20b4cd0c1d529d98e411e0025fa6aa3caa9446a6c9f\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 84b76f221b3b7d29be54cfaefd1d16d0ebcdd06f30fc49d9c432b7112039d99bc8fd5bbd8e1e8b2ffc0d6adc9df34a7319ec33f86c39819b4ffbdb5de30e94ac6b725690a4a3fae09aa91c0001f9e526b2315ea1e766c5685754101fcc1eeba20cc078f12f166191a5bac18045894d673cc6159738c6901f5edeec291243b42f2390f13006d4f3a29e020744a7889139b7d4b1d8378a80da405e2ec7428ca751ffc17e2186daf177b8762244e059abf697563728ea8fd6a1df30b4b390fb7b0bcc1fa11503777ab66c589ac097e0be98f39a8a2e21ecdf5404ff9b17d092bee119e32001e10cdb11493498094423257291a0d835a1c1b90b87c521fb1c559e36\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 67bc94022123f356e465b4f42ea02200cc8b526ea393a0c35da34e612b8f7d85853ea31a0b869515ee783ef903f86186b97eb7269420cc1a3c55295119ecbd51ca47c7b3caf4ac6a53433d3aa23d953606ce3692a248c9e43ea5eb067533f4f03369417c8c5d469e9c56b2dd1a60b7a0c520de2ed2d16cdbc323ca43dcb0d0886be11ccf1dd4ec687e205d33eb", + "771531a9bb46d7847aee7017690bd1748b1d39b6c669342a83eb93a070718970c161e8c4c3cfcd83e562d9e4fc87abc1882b16f1c63dfde2d34e230ebc9959e0936fb48aabe716ee751fc4abc62007e4cb875dabe9f7a5533d99514b5296d481df6481ad3bdfeea5a85fc6cfb928ffaad6584b\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 7ecc2550cfd058167ab406f7f4b3af4180b4b84526ce4fa1d0751a8f3947e027f4b93991409dcf5b4abcc902ad136cde8f65ec2566df0076d46ae2a34b971bf792e5032f026dd03c6f6a1e9bfc535cb15d8c52374bcf09eb2777d38a7767fd1a6baaf65335fc679b8289ee22a32745731ec7c8bd2319b1898286062cbe9302853d42ae61ff0a97cadbce838826c604c042fc6a0579078bfd9dff2bb2d9af7e29f12943fc0dbeeb81b65e3cd6dbb53724bbc3df590fdf9660b634443d485cdb05e18d57e7f9c06f4696c55930b83d70b17e15f49971783133041f6bede672c59df0486b914f61efe622dadec842e85c1da50567decc57dcc842ba946c4cc77e07\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 71f92fa1a1d60a965e0fc90f260a322a561ae3d4017409566ff113b0d8f03022d96eb0129755de4d62d8b031c20c93b8c476c3dabfe00f15975029797f593a63a971d465940657a3f147a359fa8dc6f22d0e0b43cca953bed63117670e345ee6c12d2fec365a2b6b49433f1c1b2fd656c8604ce2d83112f457486b8bc5ad376568468487f3539a981ad9c8ebb196f49c797e7a4542e95d7ff77135f533be20222db369f59df8a4e9d081510698409828d0567e0d28a0c1cca2cf674027b18b51122800fc97cb45193592d264cf5e74f707287df9deb77a26f2323b3ec1c1c17be5e11cffcf4ced2508525026deed6b8cf84c5cf7a9ed19e322043a81c0f7f519\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30e738086ddf782ba014fa326769c14b9e23818f48dedf3a3d09252dce42c160dbd7fbac9a72b8d3b6c3d6fb0e4f726c20b8c4ed31d8eb2f92a8b6d239fb78668f3687703515fbd9adcf64d272443a457735cce9eb102f881596c416739b316be58cfcf0e4d1fce32a25c2483253b3d7571a9c72479f86123d830a721ccde80e4c243e6bbcd1a895cc17dfbd0e2f8d7bbbabbced4973d578e4da5299ff15ba170d15d87ca2652e724d533288012fdba420e8427a2d1009e3ace74c03d80ac5d0b5949bd1ff42c6a728f28511264fa4152ad77e09ff60caf1cd5ee13a78d67a838294717a23f3940ed7356473dd07ff58c360fa0cffb3dcfcc2a2b673d9d574ad\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 9e1300bf1ac3f95d20bed0c450beada85fb878c4e280f3ceaef1ddf6c1723be2023aae1c5adc0c8565c76615e6d8dbc491506a4b086bcafcd211327a01ced188fe1e1802f7bafd3f79a434486d07b417e3fb8139de422ae29d921ec2e8e5b6843719ce8af35349e69623f2d39eef26970c80f67f23409a8b4e4c4b8ca3e5db512eaff96499302f7828a44eee7e277e58e578de56118a7d5e647f8aada1c03eed1beda3e7c57ccce9cc7585b2bf75427747b0e09310c4f9f9e0d2f48cc62e3f413e445ae2a6eb706269a0a1941021222be8663508657557c49433bdbbc7bc4727a405bc12bb0ba3ab7fd46b7458b9112ad010076bb96c596b9682de58ae074863\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 45e4acfe9e0f98d8841778018db1d3280a75a08231bc511bfb2392a6120b629df7bc59b2cb2f3f327ba07cbfb4e48b62aa7f871e44e614a824bf7b7852cc020b17147a35dc0bb8baee6479b8a1cdc032514fa412bf4bba8ab531615839f1c4e5730994131f8c01103c8ca84417a84e95d3fc35c94a2cde9437518ba74ac91e9c2e48432a16277310f867764b72ed1c656a627b2f4cd3991708536369e4dad049d45c5ced889c5dc61dfd36ed30060c7bc0bed22d06ec212b68dd7385aeaa25813424653831f7515c4de611a664e1e43205d016e622c632ab297abe51673b447d3a3e067cba4bfd21af1c25ac6cd24e26567e654f12f0cce613edea5c4f14eb56\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 79da043a98e24a49eb5c250a5cdd0ca01c744b411774e1e660e7dcb41c12fcde79c90270e750f2758ff1d6d3d73621a13e27424f93c57f777277666964304655a0bedf717daf19915acfa00313ad4f4dc33d69a048741f04c601a009bd27eb9586c41080c56bf8e0b7abaabd76a2d5e9e57a8b8b9d91f30daae3342dd292692915231354db1a665d9c231310b9805d616920a51c66bad7094d6836697161542e09041c12220ca26a3fb6d22cc62420bc3f07ae349b91d3826ace394b0210d710e240468ce7fb821b3a01b8c38287382ec64b093392a82884df2fd0bb530adbd49ae71528f268fd51fc10b43cbb8f383dfa3874b7cfb4722e047e7f0b941ada31\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 274dabbe063aba2a29f31badac85f874657725510e1f194ff51b43aa4034d86de9b6542720792d2bc07e95e8106b6072e9337ef0c721a07e3ebbb23edb76ec2b93e97a3f0b777d3e28d18cdf4167efff6fe548a1344834f7c92c6fa379070da86240096a030f6362301a601c2da026d72590f0ef30d94acf676c603809f619f432571666b57015a1e41de41a0140b6b79ac5d6613ac3f9fe1eb1345b198f495c27eb8d5ce83e1126a90559a62befa469e7e6ff41d81627b4da0b67891e09b9db22c76f653eddfe83b5b1626c6dc3c13024b27a66e04c070792a6345953a7832aa6ebb963a745914516e1e8a3887ef953934cbda4419b5e6e1080fe379b1eaca0\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6970f7dfb793edd1ad41c0d6f57137a9ebff66e04efbfb82c882df25d24f0913b9c906f4214b2b776e6cd6c158f701af8e17487fa77dcc9d66732c568356104ae5450e1e2559d3475cb27858ff8bae188cfb778a587eb243ff6adec6117eae055ffa5de62cf50ee16e0924b0afeb927bad811316a1c2abf01b6a72de25ac30e466d0051d1fea51ca2cf160cddfc9a373d4c796a19885237afac7aac698cbfdc2d10de86c58de9f6597cf5a701d2281f7343176cbea53f088bd7c5c755219066f4b35ccda85c7c8e67ca08cb70a02439a49238e5309f6bd647e1076d67b0b339bf4d5323ddc1e406b13c29010bc325cc17c0c338c38102fb523bf0f4f341c22c4\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 21d55371d842235e234aeaba3f33e6d7f5fea10b7940939250a07d8938e70f073d1514f54bf9e5bca902190f1149955e3e6251c98e297576f726e2c982969317ec7416c7df93b9340c879dd167431153bd64d3010456d40dee836d71d405bd3127f90a6cb61d837b4355d30ddd1ddaafa5e4204815221f562d10684a6881d7bca66b1e462b8a1b3c889e916c848c4f88b179bfb76debb18208946d40f464f9e5e385cefa1c9065118b104f216f4ac22abbf0bda8583870bfbcc339ccd6a0da7bc46338e90dbb90964100c47dc3af08ead7978e39dd7369084f5f9f941a3a2d7d1fad0dd4b60658b5931296d6357e28fca5fc8d84fee546e1f06e07efcf8f1e4e\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 84567b5a2cd8993fa4297e61067d1d0b34a4d7015c46438bf4e02cdc934c3c586f9f80316307928cb20fd4637852674d99a560352c931559e26e414d67eae6661a34a52809d4a8e1e9b94c72e5afdccc78bcd99f444cbf4617c18f481b36fa36d4dcef140986f2fe6fecdf8864a99d32cf2ca43e7b30d9a5faa61237177ece4fae0f03debc9dc07d1b9de0eeccb76a8b84852bd534cbad9b0845d7f9e9af5d55ff49832ef725e74fd91c45a6bf9d2a519d0c0b0c4e42b42eaaf5b1cc5aeaf18228695838cfab32a47b1b048ff6cd7833ba54d8b83afc3a45fe546b68cc26434b1021217c1a5ee8254ed50508cf79521abbccf81e9d3ade87f236b13b2aef8151\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 211b7ced5b5d0732453757fd3b828aad6d5fe12752d17e79577f7604f282037ce5df075908b53bee8eb9df54098c8c44f8da32fdf95b778a51f333ddcae7069a6e8afad390dce5640ae25597823f0bad036e50dcffc224f86c3ebf09e3ec0679019cf7637ab0b2ab77377266dc5762314bfcbd3a90cb7a3d7cdeb72585ca9a11e1965f029a29c769e003f6abe8bfc1214e4e0cd044d16d0eda0c7357f5a94a71af57d076baf455f56d0c27a437bb649aff9100d55d2988995eed9980999da0271c5c533ae9055a07302d65cf16bb26846ca04c87a72c2efb3355bf6c125524a445250535d984675ff99be9abc0c544fe3fe8d33a9442d2a57b98f159129b23e6\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 1271847c6516bb1deb1487be33819ea16e72cc739f4752b75c8e899fdfa28ef0b40de5112734f6b4a0e2921ea34966da45998834e8429e7a7c8dce6bd432fe90febaefc201e421a93d21aee907210c97efc2890d0c094ae82a5e734958d4e5509b85cd0c17267e1fe1cbee894cb0838508acf9a3e31402352cf4134eabf882f69afa24a7fa490f22d60c180ccdbb14b41ea53aa549044e940f5e5e519b04824f9c97099e83593fd48c36d71dd7151c1e212fd772abdb72429b3931a67cd7527fd45aca652536ef3476955747ef98759c1e561bfda80733d6dfa927e1e32ba070941bcadcfcc21c3bae98e362586b82fb4ad48d347915ed5c89c15b2a13950704\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 7d4c142eabfb72a880070621ef9fcd351129f31664ed11a744cfa209a4199b9293f8b603f1d0672b7a2160b4c620982ee7d2553e46f5056ee8ec2711946566f08d23adbf904ce1ab8d744e6df61c6788b22154ac9a516682e26ec31846b6a5fe8a9a519931ab61a9fd424b2babd883c3410c772b89328df17296b464c8914b31b3ad63d6984d46c772b6b9d791c21d3e3ce0984ccbf7f2902deb0961898e8ef835c658db4aa14387857b6b7ab8b38dd06a4885622abdc3669d37bd953584a3f3d19d2d77115d9bea244a65b7b26faf747aec73e8dfc0bed10a85e4ea6398dbf8d9a10154ed3f1ee51e6b3ead792ed2da838c0a25d0b2ea3190fc33bc9902e579\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 8c76ad15a8de757cfe122ab8759991a1374236f7bedc1249", + "5201053b9adf0042ee64665abc4b9485a52818ebb2f5e0dba6d667cc1aae89163fbe0db066b80011f6342ebc22bb3decf96a3901e0fbc44ba79cb17adc811c15bef290026bd9e33ef69bc5717f2c774b208cbfbe88f0e2097595e6cef35745a512690593ac1f0799655a73318e8bf1e1403e42c29622b09d0000f9756ba9a0fc44692e7f86e6be28467cefb8f95aff478965226205ea082848dc503fa0f16b4cb636b916de0e9b0e91216a72950a65855692d1595b5fc9bb55a48cf584048317aa10b63acd505a45537c751c4e898aaff55f0e4e75570b36babc13ca158dc7b009fc4901ed407015\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3a8c6928a87795c3025ec336cbf4aaa80e1ca6e758c41c7df1b63e223cc140e7703815300ea7ca9c169a972a3049bcfa9452fafa34e0491c99a1867d6f0e1ff45be4feb071c9c1f2e72c12f8aaa2a9542e0a3a037305e57fdc8f2584036b619ca5a30bae66e8c212c8e2e2013209f502bd6478d112bfba869427870e84023ca06229969818ed557e5617c6ccc23f908423c87bbdb03d011d328c81f0c24057d8245bb8d4f861dc76d3a9eed3e31a16af114147d7b17b4753b8294290a3c8fd3d135d7ec144f2eed11e4dbd4dc1e89d96a06d7860e5b1f806e5d15badbe05a310b9da804abb41297b179cf4e8d077258b2f7df549092ec6c8e7274f25aaf257fb\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 64b01c13163085cab7ace03109a35f5aaef67670699dff14720a7d9ca0afafe396746a997ff3efc0eaea70a658bf0eba2d0a146fe93dd5a8b45d8693054e52f4969cf021b6395c8b57abaeba260a4b2e6ffc328069ed30e992191bd17f7be889bfac716d24dfb47667a40eb72f7514ae2feae5ba11bc24793b3e324909fbff67f5000fe7e6e71986e2b79c7825aca40cf6c426def806d59415d6f477d321ef69ecc8eed7d061f242b088df548427ba6188cbedeaccc6dd4d75311658e4dde6d838a8049699893997b6e268d54d5ab13f7d1e38729d1e0f55ff607b74d6f869a5ef50980118047ac859d8cc57c79e0f3cf1f0562dd705689bb471c459c3cdcf4d\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 82240214858bcce755f761d3b6416c15322aa97b4e130a01263cefc1cb11fbb10ac28c5c22207b609f86cd63759a689d6e7f825ed84e6042b66d06362441998c715db426157554e8384898cd63177a1ea538bc589bf7441ff9d3256b851f9ba519e3213da248645e22314b34a53739f035157e222006112c1f6ba8e7add0326d618afbefe456e530532bb29769db477089330c0f0dffdd4302666b128069d8ddcb764f154c8700c45e5a8cdea403f4e4231b6260f18e6039bf497fbf09420163f1dd976af573068e0f87047d338c6446d480c585e6a6b82eb387a8549b7a28c909d88d3361a80baa25eb606e4e5f9eb61be9bb8bab17eaa7a98d5f5e406cb0b9\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3b243a065df77eaf4fc8665e8439377181c422acd42da5642ef55ba548555795ee700b156d690d9fd29cc31d7ccc59d6b29472feba8fa644cc49c4f5d46722516820554e3f98e1dc03e44bad5040ce4f0748c82a5a44bec4c4b5d1b0312e74cad9e87c022385dfa034e91f507e72d7c1f7fe99c6933801eb202c8314c5b60fbd67427fc14efa9e7569d401c6af268e9e3d864fd108f78ea5ed1a2ecfd1c41da2e9353aba41d4df48d3f2535d5ec60cdebf7497eb25db4415875f7ccc15a49ebb493a7eb9476dbc11815eb414577ff76953a63991938fb6ea73e0b77a8cbb77eabf3b893c22aacfcab7108dcb9a3bbe3ec048c17b416b146d4251c7c36fbf0445\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 8322390ab9d742c87b5b105f63940d9e4ecc613c12a921798c2b2a00c1e5c6f6fa38b33339c3fa762487629bd589cda879977e257de58a0d3ad4eb9bee9e3d41c57ababe557d0f3f8bef808dd7d5666b8a635b1a1d08a94bd24ddf10db4d6a366c3ed7a6891b7878328ae5d928a6a14bb425c4c1e917044a08ae0cc679b646be53177962bf04f19a345428f7a0c877f5749264edbf0835cec2f5aa66b7a1ae9b5e8db22748bb8b8f37636de4d02c9edc5dd182fe1f3c227d7fff6111005326ca3fd693248759fcd56a356068d3be8f78ab03d484a363fba9a13491ff5752bb263db2d905a90c556c8e5b12315b577786e038c989d13ded424adef4932c87a5ea\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0279b5b3e03f864b05e41a6e964c5cea2b777be5e670bbc43d2550c9c443bdf68069a0eb91e4ef95dc9918eb1786a123acb034fbdef2690e5f2f4f5aa0dd10627342b90f2c3ec1e3b6ec77c01a92b0c24e7760cb49f845a168afc256686dc428f48667d1971d56ad81153e7a54a59f10a4b00986d9752f1ba11774923374a990996388bc26dae6be26cdbb4c1eb76cd0d98532720e94caa2904fed7b937cd94481e4212037c628df3e213d5d856776a337ecdb52a4d256b3267fb66f0cef10e39a5330a9899e103817ebe6c32c741dd4eff16f37fb6ac91facfbce7f467397739b1557f0ea4234cbd8d393abb1f842a2a182e8ad9047c7ed643bcfc02156b106\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 24c8587350927113af79616a76bc5aee56e9b580452eec608dc4b25e8ae4101244bc456368e14b1cb595aee9c1d05bfd169981d2f5819023c43fcbb857b5feb7f11e2e3469cb1d53bfe66313cf662057b84b8f9fc1743547d848d24d1678d14bf44fd29b2c10b24da5f42b93534dd535505415c32f05e4078a8d31461bf42f2e465ab90d33c24f2ffc4cf430253f50478fff57dc1eb91debf89e0fac9c382f8acefd9f1dd2f2fa2203dddfa56fb275309bed0671f623f24927abd562b8a4cadec561a530f04dd58863458b802e8fe5fa57cb22708b700be9b250a6163b6e54bc9921944c9a8d468d02981b7fc41b9c6ef92fd705b24da3cce58a90b6b112dcfa\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 58b5bdce097aa778d5232055b695fe11a01fd06dd2c76f6c4ddbd89b28d823a6dde045d541bf3baa04651fede28dd5bff79719e0310b285c4b5ef39f426ca9eb9d20b759b6455c8ca94b08f14e8b237429cc93e6cfdc8d5f9590ab9eb1a05243a6205cf26323dc5b4c1ea1f815c3d26e9a4d5f58e99b06e213117f6ef7fce8ecd63e661381aafcf2134c0cefe49b9432ee68e9e366d7ef85ac82befedc5c7476befcefcd7a6ca7f0267585576680c6ac901cb4ef12c3abd319f74183c4b5d852e898a955628775b941f91594cc00d281b3e69b034765077e967f9282a1bc16043a162ef1fd193921a3da4e4974cb63bdaa7745278175ac3183976b4bf1534f7a\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5498ddd6aa8ec6434d4d772df218db7724d4df79dbaac872d187a9cf58bfc62b194c263660e663b2d50583dfb1e232a6a855c3be31a7297ca1c801b065a13871686f1e379f50935f754243dabea67176fc4d92351e9bf1e3c9655b5de16d725f0e925d554d215bccd55020e749afb612420d30ac95c5723855e2414c9d7bc8d2a9ddf33787c521888852e1946bf866411f72ebaad3ae730ffd13648fd8e5464036e800064472806ba78a0ef8a10c1739fd512cb2913d91325cad3fae38a922c3f0e5482781bfaee6e097e09bdcc6eb67772ff79d358079e522f9c8f32fe5f8b227f126803f0e78554c513bc0316ea267b51aaaf17f1dca423f1e0996dbcdc6bd\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3b2299256cea4f270aa108ace666ff3a44b693c27fe72e21e3f0443956dc277b1f24ce72a48d512d7545825db729983bdfe4ff9fb0ecc6f0893a9d326d39a46e7040f8891ced1174d2abd7acc27f79781501c3a972d562f0b5c57a3ff2ec703100b7fad948c7e46494cabc1955dea0e8734ceb47239b915476b969f317a9953653e0e5d4820bb28a5c81b9a4f1d0f18479096a60b53d0808acdd4efcf16cdc4ed82b69b33d6e5e5261347e821c2e366f2826fd81e8f282840495f6f2613be6b9f1efa989d912b86257d5449c88f7b3cdb39c7bee6d411187a0f2cb83115e5cf3a187d9cbbbbffd9da0a62780b265c2a5a33465abf90e41550f8b7f62747f5252\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6224ef796a605bb30a142e4671549288d3ce9a7ca6ce58ef79d08b25e95a81143b99c84efc7a0b92885029752b8bc1bab7fc56048c19d50ca21e8c009024dc9dac2746a9b961db242a1454f0df944bbbbe28a9598878f9392746798aa1db8c69c6d36af64726704f9252ad71e655a02adb6f3e8453ad59a0a45ecd1ea512eedab7867fc50b508c49caa7399f343097f76b2361fb7ac2544f6ab1b745965a8d7e83bb9a1d39a21fa6b4c14e9a800983f5c76fd8de81fcce99f4926e48bdaaaabbe09528a203f5e76dc19982021618f231e37758e8e729968c267390fdd759e0ba88c9492e4ae0ae7512ea389bfc6b64d90eee12c012fe278da80a915da794f6e0\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 81297d38465c4346e408293d770242ca6e9ba2f2ea9a66dd932eb3bf42e72bad344ff31bf058e38bdc716e5a747963e6eb96ea1a48813f39200596d6d589f2164bab35c15f545f80d10276eb6d3b7d13bc7bfebfd0f6949fd7547c45266fe6573389c2343e3adf9fd64ba627baed14e0e753a8fb75a3d1821e2fd03f5422bab3e71dede7470b43449e7e49dec566464fde545a1ca53a567ae460a1d994d295355eb301048413cc92aa34963fc59e054e88bbf2af2ebb0ac0df18b06d1c5d9ddc4f5c3046c5b609a9965a646db2a1c70b0c851e7aac01a5df8e2c822300d3732ec182e3d868adb99d6c0186cc5dd17dd8c89658c0ae021475fae278e7ff464501\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 73b38e74ba14249c5fb4d2b3923e2a848898a2a5b1b9e6c17848177e6b0053fbf768d5b393088c3b7c5e12d41d24cbbf214a5bebbea6661229ca55f79b76b1d1118a2f7a6a96f36f88e1388283d446b8f8fa4b10b3a6d8c54ca207ceeed96e06147475a3d47d68cb2790dd0ada7d816fc1edac6e10f4f8e6bcd807cb70d995d7d6029dc774b1ab86de3b31c4fe1033517a64163b4867861d6ca0bacb3e32ffe4761de071a03fb79f8bae8515973a4eda2d7676cdf5ff05974654f97d6dadc6bde754f7b297264945b3bb69b950000a4d597c071", + "fc1b9198fc1ade0047bcc7e79dca09e8f01bf4ab46183cd48c8b243865eb6267f0974e29072e38f65957594b9\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 56502d3cc755778ce731048dfff628943f94a966763917f8a9244be934208ca6fff2100faeddea5693273b965e62e08672a2ae4037b2a6681e1037ec8d4f00b7ca75b792d596e01f6312733929751dcb629ab54a6f910a57dc01895cc92d2338b4ddb1271be183f906e128ecdcb5cafe1096beac38e3e49eac7ebca6c91bd3900e83d96910feb192496aae8f55ceac814e6829d9c068f2619b048f1e30e2cc0b7d64e7e335ebc1b566f12b545a5e610fbf5317a2efcfd5d18adebe17b3b71bd788bbd581afda953dead19a0241c6beb851581249d780e780be43c995f23e90ea4190fca6b9e81885031beebe6a65a53db274bede417c35e7e1e597c6610a1ce5\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7c49a57abc1b7cdd2699b2d64c9ed240c4ea19ce2dce960f611b5264acd37fc4e1efb3ebb5699a4e2292d9d63dde3b80f30c34118614c617444d7e2b770d6434c58b176db042b74810b40fac6006bfd84a51e32aee8900ff40bc8de3fc77277f9c34c174769afe2bf9c8674712c645db823741a4425043b6152940bce8eadfce213dc4de62fddb626fd12b56efbdd3fbf0b570dfce0ef3ee7b3f7c7ac383fca18e04a4b347fd589e30f283ce56fa60b9761e9d5f584b493062f490680ddb7a2a6a23ba0145ab184cd8e3c5a2f2b297b85db51438233db7d3c72739b7074f6d7a524ad83aea2465f6c1bb236d5ee34e5f66297d549679574a9847ec45180a8aab\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 41abeab011f029748cd5651c173ffb01f3a5ffb4e198549bacbf8f98523b404791704f52c8ce631d77b31066b1891728e761047a0464e8160fc6093c9ece6f359860da1ce8b229327cd683a2854047aee8afd36540d35c424a19f0db5ea444cf91cdc548dbb9a196f3aac9dc9c4365522618c354c0d99e7a0efe40a2b69b9b99d18f3b941044ab37e0e564543a51cc919870c38a4843d3ff4c6a7d503dd38126b5b76ae7736c9e1790f64f5f6e2faac7fadca3a8f75e6998270004f1836624b580e1430a31c386506b9def2adbcb01c716b74f6a4e1e85e55623d8d3dc4fe8553e1e1feb75eaa4c71829315f67b46c2e018caed17c9dc2a31642ce574a599ffd\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 95ddc932d45b05c0a1f4c2bbf30ec6aba93ee9ae560b4a9c124c6be307cf930b754b6b7b1c8fff23c43c2354b847d37073214ca3c95d27e0551aa45ca36e873122c109c0067df39797563168e5e6cd8d20e972ad364a6c3f162415595ae273574b7b35807072b71a8b17afd06bc26d3ab8374df32ece1da2ceb9daa582ac11fdd9246d162fe4830846d08fcec90234ffd9622e4db5576d86fc4b913882da7bc5b1779b2acc0261cf434cace117090546d86dbf5056d0453fc003ce9c3918a015086583d266602403353f0c62eaff4ef4f5697f6e682163277818af6f487600ac326c76f34cdf49654d3eebc7913c0f12a669fb6bcdc809b2621d7ff5050da3d6\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 51c0e29286c44d53354c2e11b057c373690cc8a6979ac1e184bd4bdf560c0a3fa76e80aabd7041b0b1cb40e703966312b8037dc40a36acd170ec8fc70e35c1edb41d9fcc8ddafa54bc1e96199b842c72f2421803f8e95c734f19ac169e581fb3ce0da042108b21218f28faacf7141baa0e2b72fc3bd38930f4ab139c1347a9806115b25d3cad3e00fc29296b2d90e403e5ad0dbb9901dd2855fb49f4b7c9500e9428e4037abd6aa767b604edf426cc68e39bacd9862dd61612f0f5c5666e1593bdcc6ba38682f19c5512b1217f05d1905bc47eff2625ea5d6581f3657caa3d84ea9b948aadce632b3bd4ff33699f384f618350b93a223e037d6790bdf7be128b\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 1a9f00a0a13bb63a9a2b98a93a53cead0f0d0f0befcf19404e838996ea86c67919611edf2962f621480741ae34eec18e6c87b5f40b2115f81e73bd1ba59dd32ad41534d143bd82f982f4ed60d84dea28d77ec78dd6301145c63a0778e465e973e963502cf1c9a21ff5a84f5f4a673d81a9f74906fa0f28b81fd4c1be7eba5974266802149a616d5b7b9bfdbf51aaa9ab3051082a0483b33e7b43b52f86bbcb33f07783e3dcc3ade6c70acde471613b6d7863c4dd091017ca9f0d9fbf7405fcc7e7a012f38404fb0c3ce03b2e601611fcbffa985535c238b5a1d529ba092a3c41c8c255da68eab9e84a7b3f6f29eca3b52bb4b977b6c5e1375b691f6ea413b557\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 8270bd31d9183e02c4423798ea8f1092bdabc33e144cb9e79187586cf92a2239cf52ff324848461bcc89d0409574655b8374bca84c38df11facf035a6f54f25a7c2e691adaa074d5ebc08b0d20b45346679d94da1fc67f57444a9663704bcce7a6964a7e7d6a98bc89b674bd3037b15639ec5bea57c313331dfdb0bc0d2017f1381cf5f29245af5bace9b7a690b573bc7abd9c36fce49307f0524b37b29776fed6722bcef049e566c8a5a0db44ca6932bf11e2e7447b82318c71eacd164093eaf40b7b122f306cbae65098b68b5b920e96f2143637db6d70070036c2cfd64db05ac87d77806d53096bc63d6fbbf2efc29d8514c8b909ab79495a04639f27b882\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 0f7e36a02137a094719570754763ccf4cbfe21a05b95634fffe0cf0cb46210d379b5e7dda7ad815081d12dc43452e35a89b1fb715e4a507b364da2b73b3fdf91ecf1b04a6aa3ab9b90718660291478e6ac0cbd29c18d4beda2b0bfeb53979facf2e5d8ef1bed5a36686cb034082feff665686c41572441a673e7426a89866f65529de9fecfa32a2cd1c7098e7e7bcf2a720d46cebf23988c259dc880a3acf8e1b17f1ba8de6e8e9cfb8af2b6398f7541d45162438c3f14c308dc6d778bc91106c7d48332d8968fb083bdadf1edcba30638853e5bf1398d61bb8eb6b61363cdd859ce4f6160f7e819758afa067c612be054b4c0e2567fe39a81550001cfa081d3\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 0571ed711f75daa6e7c7b65645cc10ad040b37fcc3230d4e8655b9b40cbac0e1c5e7d9ddf18f7995bb2a630235f7959791b1bc21c72ccd88ee50b5136472fe63c13a4a391452782b673b90fd6e768385e9f09023ed975c9fd5187b86d0d147418396a971faba4c5d968b29df04a28f90f0a2eb89a0777dedb38e4f41cb1c373f88906da1218a80b47334ed4e5cc0bfd1a93d2ddc5141b243bb002dcc513d98e68d512728204bd0d0d9ea5046ca21bd6d32169b69ba8b1f829fdbc4b4c931d0d29ca72e4fc2d92a74d2b5e1569a222f4b8c93c6cac09c67c08ab08fa08b1fe9ba78fd016aec186cf2f9443b8a3af242019a4888839f8c6021f26476e32300af4c\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 690df1372a35a30d9c76a4bf91cb951cff5291bccf26a1043bf84805d75d27a28c0567d353a95685d3411acde938df718f2c845d72c4676044f692e8ceda2b22da5fdf32bf493462fc83c59cd8e5ed0f62f607bfc6d04fa38a6b01a5b3cb6b58d55d9fc2c0a36fc4ab80fa3a0dff60d55a0ca946c568451616441fc9f14685077388a069c3892f1b208c5431b69bcd5e6ca8f789e210f63af6b4ead0a8f3380e818f0463b2287599f5c4cc08bffc460ae8404069cbc01e2b1fef6fdaa810478abcabad6b7405d01e5d3f44884ed0c3d69b614b2c794721066887e5389d72fc634d14716f0cec8fbea5a12c70cf6b4471df4f46058c0db75ad3783b2dfe3ce2d0\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 13ed9422722bfb8b6172cb5656b9951610f509bfff5d10e2b91ddcb4c2e8ca58879a7db943375343fdb794302c28e3db0e1b850e8428653c09208dfd46f065e3996927d85979927930b89ae12590753ff03889b8eab41acee725b7092472ed00ad66d00a96370c909c2f39fb6300175d510b368d3ec06ebeb0f62f179e191fc1ac9f7abc36d19d0180f50f7a33337daaf73a76f9b38361e91ed7c0af2c9a3519b4f538c532f3bccab27258d711856b29c41f215ac87f6c7f3ea52c3bf30db5e7930f44e489205396e94c0bf11700499b5a72b26c9f3641c45bb248a235b42c410a908e5ddefcb481ae619b23f8a5ed7afc1a9cd782020aa119af745abecbfc57\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 054582c86eb3bac23c330ebe275884ec6c740b477ff69795681bbd88d9da5369ee5d15fa2dd64910947cc4b3a713520716ac747834058f50852233fff1465b4c582ddfa2411ee43d26abe6a26aedd5bb79384b44a45d24b1a374cc9d193c3686fcf7290569173b07b5a698ca75653eb83ce3feecc40767680f6253fbd0d7151b42c82ed7126e6a2d73cd1c64378294932eb790f5997746af7cf87dc5292058c2ae575f5929426fefe7d78867b725fdf6cf2e40c052b69fd8104fec8c017561737e02651aee89c11327f866875dba4cc6a6e69a5f2ab612b4e72671c8206d22c2a9d69dbf1dd29eaf06745bf2267ec2cd89552338136a8981da13b4223d79abe1\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 67ba3a10105822c5f34c661cf7765419ebe52142b5ee9358674a174abf5981fb845d4877315a6a5f856c6a30992f520bf3e979a7169adf0e1666457905d49b91481b641158817cf2ee2b8725bee0d7a659777a128fc7509d3f0fad7a53b04a77339074401cc306328d7fca7876b06a54a2fb46edb4d763598e5fe21b9818c1d61ece98a4fdbc0376fa2f9b3c50217f576124f292d6032234a0a6e34835a8480b25a5254b9718c665911aec227c0f432d2dfdf0a6aae40030a05d3c03a02e54507ce0652cab324a2b29814451c985be5f4dfa2546e5b310e670f9fa510c24352e534d3c46beb8767224d90ca8dfe1ac534a5a8b80fffd5704caed8d5180adcd3b\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 8eccc4b661d66f3c8b4e26791927ac035e2a633b872c60fc006324886d45a88ab29b9bff8075701e61cdfb7d85b3f6d41bb78ae12d2d40b046f1f7bc6ba11cda5eafacf3002457aa6951dd7e574b6ccc7e0621f6e4110336003ac2f368b50969dc45370ed7a673f9b8cfaef3c40a6814afc2ab4ae6eeb8749e8d0230b38658c17fd44aa", + "a9ff65773d001430d0963167fbd08fc72343b1ff40920741423439ee3795c036c912e53f9e75b2d255160e67cac99ccc2db7faa8b488e7f1f56ae3bd0fa6a277b9de387651debe4e16ef29215054d9565ac23a3830ce37b326a4eb5c6cb5db7a8cd961f6d7d7497ac14aa459b3b64f2300da1f95b42687d2126e60d8b\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 574192671e303ee2fa10bb741b24c8632d520a54dbc24184dd70ddae468e71971ead18932c8b74cd6e27b13014a2ea96f2074a9fbdaf432153f408118306922d111e861ff91f549e8e669fbda98c4975a60d36019b2c4bd25ee2fee0e319c56be4554f5334edf152f911a2317123aac2ff0d11359e43189223673e4b4b613cf070841364470b08f5390951e8d9c6f8c3422f79e3bf4863b2e4ae694d63d57f77620511eb308c3fb454270a4d2190c83828bec4c0fe2283e0d9fe945f6aefe7b806151caf38bbc963a40a97d92b8f71428fe89e8f468509f34b2cb35542fa717e5feaa6cf4cd6c8ad87d8921d5b62d97fdd58642a5d8d782c87f8f6a53a9aaefc\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 90bc6a2164881905a53cf42cd42753f61a47cf4703d4658343dbcc30b46f97d8656ff1ac6c395e1a36f27562d7c23ae859239c1086b1a6473eb4f57d9e0d47f626f8de059084f681032e6fdea27590a08d5e57f06adc0b8960b640d156b31047d26180f1a9c510dcdb316948ebddade72ae3c8d9d6fe49642394f30951a614d03d37c5ea640f0f72435b49a0d382b93121603a424fc84307bea44e0ab83f25389c639eaa2614819d6039c721bd622b86822ceaba916ce302d2be47f38d4ef37e5ce40c3771cea37bbb200cc64f4180199a7e6aa2863e0fa8355b1b456f748fd1cebee88972fc17d9fd77fe9bf8bb7f2ca4299843434b3ed24910c5e2abff7c42\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 7b590ff6d404fec472f9231d39a4ecf4ce6b5e9438b8597c082e01bfdf0909c7aeed2268a3e568c49d9959352378840454f9119beccccc07b46ef2c1f143da08818c578c6b2f7acca6a85109c8acb719fe9f06282c25728d466b4f138a4b129de607de9ca3bc6180f4a2a45941416f8f5c60ea19c921f76047e0dd0738853c0b24c25476025ed4291beeec5db8e2c744795de8367530cd5f5d0876c3b99ed248cef9f83c54a9faa6565eb0662d6a126c15a5a4a55ae3433cdf37c6e8854563d2b9c06363a86f4a648951226a34c612c3e6b6b883c974d4d2a8e07d99f88fc4eba0a9ed28799c95fbb1404b3599578a164721121ee387b0509ed5e00b3df84033\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 8dd4b03ddf0c4f8c044fcfe70a0b97ec8d8f31b519d11d7e00702296ac731dac508e074024305a285fd32d93aa80b26e6c1d9bca4dcdf07dd141557f685c473f8a323492e9674ed28fc0f78f141418da63e24ff1d82a9e280d2b63819107190cf0018941a440291ef291fbca9616074efb977c2debe71b4609a6510138754d126d203ffd9c234ab334506bc2607eeb9a64e0600ae45e45b2ec398316f4ffbf405d985be94b23566f71b77679eb34dfd560bcf81d790dd1a30dbbef3b928d13534890d4640d47237b11c56a22401e8354b3327101cfe07be6da690d1b43df4486eb185728d7abdd8e4139b506821640a432a219b1787569cac4a870cf17a3dc28\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 3c6f82cff4559f83ea73f58e5303b37ac576572fb8f94041640e6bfc0d1e527f77af011e5b62f8e854ad052500439a9a6386ec01504a899860eba9f67d78badddf2e72fc92e0ecf25895a807431cb8381cf0bc5eb2fdb28f96340efbf7e54af7d1bf132b53dd9af5b8d8ae37fccddb32f4469b880bb01a84892cc43b394e94f82b22c454e4d308fdfd7e893369498aab4d42ff7048578a5e2d85893c16f8f12e2f8e7be48490fbc8f82c405d1ec3fe8bdc0243898c58dd4306796c40890fd467d024b033ba724c67a1119fb98da9d8c0c9d3673f9d45e3f40811fd223265c8e75fba57dffddd9ef6f94ba03552d18773d009ff142cf09e62cba6330916453f5b\n\n# tcId = 113\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 0f8deaf286c4e55b6e1a936abf3467b99ccda07cbabadec1798d81db7c720d6d8c278c14c494faa48a4def3bd4877b5054ae0dc7cfb6842b69ea1626b667ecb22dd8864a55b7d39205141c5068559874495738c6b9b756c0e46b69ef21ace864740e300c57d3dbbd356d992d08afd4f78d4b0813ba6ff629fc837e04032e6831f931823cc43076a69a91c3da38f76ae4ce127d11ee0aa6c436e68e3b4c496ef04f00778bad4b51807791e901000f6c75f81568b86fa1c606acd36661b1487a45cf36c2991a7bb87e7fc9da54c1f8a98b1ee0ecf26336c4a4088bdfdd7ee463ef3944100785ac16fdf77cbf8d6f6f578418495efecad9dd1c279be63fe5fe9319\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 7b600cb582f01b2093b8c6836b1ea72a27bb54d167c3cd067de1b9f285e824f46b5712f0024cf4115e69bad8c6caec74742076dbe365acda52fd50368edb854d63020e9d698a4f1f753b4817b282acd37a625e88997c6d067f5f80e43c2f000008a57514989c8ddb6ac36e6ae15858f16a6436588e79391b7fe142be5b66cae553f4b998ea9ec2dc8712af14b9a2a7086631889501f77bb81ce8899dd57f75fb3cedf82394627a72fcf7e1fb5670edb260f71e5a67c502501e1531111978048cd181cd28ba37f20e3c24f9895af9b9067d1c59f69794e43bb64eb8f5b1519255623fdc64bb85e1b85b7c793b0ec42de4d850bd542160791d6e543c633ee21171\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 16378bb4a3a00a1916e10733b6db3b960c20c82929d1d50f6ce694f691b8b1a2be1377d6860b6d678fd27e797d7dec9850d99aec1079ab45e08a70a54b6c6b13ef7c335d48a7119fc855ba69130e08af62540a0327dee39ead88e5dd923edb41f0e0c840737eb35704cf5a3f2320a1b4eaacac70846d05eaafd743046200a5cd25d37ca312d1800fde082652a8e802f15ed775e055b781aaa7375de845378d57ecc516e23d445844edc1442cdf7eacfa60a995c7a9b062765dfda8aac031287b72044af30d5b0ed4e815aaa55b068212b187845e829adbdb2902dfbe2023870d006b8bf77779b8ba205dcbb3225e3c854d853587b08482264c5083576cca1107\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 64316a2c63e71413bcf87cd2d8efa6e88a527483bf4329a27520217903dd7b4a74ce427cc388786fad14061d50755ae6514e8161dc596a5eac1260a24716523e5016dd55174b25f826a7e806e4204949e8d23a4a7a0a244df064c57432f39d4ff3c90c282fd4f49712d6a922b9b3ce8297f35611ae846bafb060bcaff0fb5c484f9766b0b36b2727c11cd7f6e95410b8398ac5ae1f1473ce16df25b2b4edd80ac083a3796863e2b55428a900ecde671f84c21fd8fe224c03878c62b8d988f487d063e2c972ee46f72a8d859e9659483a860938613c9f4b4c26313d27e828dfdb4fdad98d4edc31e07b050962cdca2f2980cd2034a5a4eb82bedde65f837a04c3\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 49cd3a96260855d9a0ba3005b8ab18f077e18dc88923a4acbffa7ce91a948601db5317c6e6d7e55a7686f735d378ea12bd17ecb26638dc1ef5f613c527c52dd91ec1fab9d3823ccd51d7ad1af5383f4920478116e20fe43996a8ee7b61116cba0f69f42d5661c97c71e62a0ca792d592e6e0ef28e67e27b1ff7260ac427f35f7788ac81dcc69ed4f4ac4eea07a69303cfe083a7cde808e75abf62283424a8727cf0a85df2e26060de2dc04dd12fa6a0471a00f003b30eb4d14b65438d7090c2bdc953588207c0951f39d0aee482dabb782cf593d631900eebb3dca524f9d1607440ada91e20bdb7117486ae90d77fc44cf5e4aacf4c850093ca883ddb7b3a040\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 9dfe688124026010b835f972719361baf84e104ead160ece75d8778200f1dfac867d262f6e8dd12cf25a8018c16f176d032b28150079c35a6d831f9825c80e986a9768131fc6e221e897e221a14be3355921369d5accc9fba6ab8649bb444913603db70cf09188c1f2f34eebd06907dea1b7a970add4c01aa4858d78dd2910c251dc832157e0f373e4d6bc532e1fdc85b8f6d3bda13585e789607e823ea8808e71c1bb61fa40dd219c2980f5a84b502363be708ed3a115c5711c69d16427d60a7a605a9c282c5659d6cd203e0dd181e41aaff5dea6233985882978172f03ff34b651f3592155adc34b26ba7a32df6cf5ccfdf15a7ab95d2f217a0565f4564fda\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 7b17d3b2cde9c95d954e3d795eb7fadec93e788101d337ff0366a3d2fd7de8294761b0d11daa19dbe5fefea7bbba4986853bcb065a0d5fc34d4386bd0d9ca9f1dfab415377a8ca0c8e879aa2ceee9adb3aa57287adc2b2ce1b4ab07c09212b3d443d29297fc206968dd22ee2160716bece2ac0cd9bc9550cf0bcc71319e97818cf1658f0384d991b2eff0001da8329d50935b3d3efb4a045cf1f88c98a8c91f316a320b90c73487a6b132304c547437c5581c2c66cc1b23f2361e65d888872cad4c16de7138c1ac2cb13a6d84cacc93019e7fd84ea99409d8d8184cbe40bbd75792aaa283183eb290d517d46c7da3b1ecd6a2ce086fad43c565b696ed3fc8250\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 5ba48570aea8cea4f6f76ce4d92a9588a6478e6a6dfb82d26eeeb6319420419eb8553dff3fc9843d01c9c708947a413bef9c5e7beee54a57d3ea9a01a81c7fcac04c4a3f0c7ce17bc8fa7c3e47b03d3be004a2f4340fb8c119d6134981d9933b9510e7b89fbae037809b8e49c429fa9e01ba6af5899f0c2f60666d42a62f4ec1f8e2182e9bca160116bd447e9aba05c9ffe8cbd6f9abf3061679a50d567221c2b808a48f1694188820f7ad07e9883fd67ef7f9f2d78ccd13fd8017d8836101de319d17f05beea9d7b1a2c8b1f7dcdca212d332befce5c0c2a89bd29dfe2bcd6be1dc9600baa0ff970393469ac32996c2710bc3d07763b481b6a713abb9880604\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invali", + "d\nsig = 45aadbe78b131670705fff8a10c088e832a6917cfad4b985d20d6c3173b2cc26bb95670dfcfcd927873410d2d3e87850d1c64bccbd2e3246f81ce2b6be32a5a7acd9b2df660e279740b4b916ede28fe1488cbff230bfd359a77269023daf8f897a4adcc6929d9a2414ad2d2ea151953fad387ab963f8da7608b1253cf88800848b68dbbf4f8cfd42bac58e37599de5390e6e0dd9b3c763d963589945fefb33c33d9b0597434a2ac2e36db4e4f52812ad24a76bb91bac54a6843e0b20d5fabb5aabc2f07c857bea2446085bcaa27ef51ca194f9b1b3a16a7be01a4cebb5b641c12c78cfc2dee0c0c7480efbfd4fcf6c8d1379dc026a11109bf3d0d359ff7e6ab3\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 52dbc8c5468f1417f3b9a57c3cab9bf8338e6096590418fe057f4c4313b8462ca42b25b9af14ba65cfa64326d5ffa512d603fbacabd46bb3d381427173e3a91af99e6faa7da7507f1bcbe794dc236086c5d3cc30bf0e1cefaa3dd0e24d759a7ca00ef7cf2ef335ea192f597bd954f2531e19c68e492afe2b4e1c12d5bded1ab9d1c7b494ba52ec017c5ef02ed4797ee0a27d44de9a9a365da76bf5fefb549058ff1ffa21c2b77c7e365267e14d6ed209ec0739619d8ff2ea3174619e82abde0732b1ed9ef3dfb04c9fe4fab5125e1b5de4bf8f4d183ba04fd13130982196e8d603be1c2a69c3919179e8c3b9f189b54e4e268402db11a50724809919de67ea5b\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 25918876ee17947c7ea13c95b6f5e693cfee2ab988a68b72765853a4f47b0075d105952afd7d271e3aa39a88bb35549b18d0aab49a48a0ff25c64ec8d052cdadc92418e84436f3e930f6ffafd0614b5e0af4f87e0c6e646be9e7dfd996139cb73838de8699916317c79fb16df1272efeedf3044fcdff7255fd45ecf26677f8e3cf7e86b40f48e7aad2f4185433b5f04e06bd105c1081e5452d4292346e07f91f9b29cf2e4dd9ea335c065cab8daaff554fdfa1990130dc1650124fd7af5be1eca9c38a4bf2813af9f50e51d293b4b8fe4fc6b40f8da779ea595ec0b43c4db3abf7751c74e92e28481ca919857d9a92c8db1387be5f4ae4b8cd3372d350e57cb3\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3dd518a77a43fd87d8923314e8a78d4dac476188c113377fa71ed7d2fda4be726b17e10bd7870ed018368a3c36be143d4c3d59ce35a18cb46e457ed2afabd69bff77fe94ad6fb95b360249944fa6228faa4159531e67490c8ea44dd64b471d96c48bae5d1da7c6fb144604ca8e8abfde84f681b9b700d62649009c135fdfec200c92096bdf9a699eb1b8936e8769044ca0127070b40e2cb8289a9f98b91be61ec77861013cd9ce5b33fd2837ba8a93caa480632aeddbe283fef6ccb953f2e4af9ff6fe5bd01beb0d1a0b3f08e9d22f26749b5c9f5f302002f89af05c7f9a09fd416691abfa0ced5eee4aeba83113bda1ffd418ac4030443b9072cd6602fcf797\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 56e666f4c8b916f556ae1139f9626a6862de59780f148165f924965aeeb35ca681b7fe2a603bfb1098ecd06e3e185564e031699ba6f5b7c4192e60f1c7e06131eea6a6e772f9b7e9be4ec4e94d89eddc0351347c5cd7dfc58e2c9795099144428563b77bc3e3d5dad50cbd19374ff5c7915c8987f046df62907b7ded38deceb2f04f18a868abbbf3f095ac660774be8274d0788b88001c17b7c3a59f792e81e18fd01bf8d67289012f60a887202968c17f2ac684e5a4a05673a0b2189206ca3358ddbef03b54488d5a794d3a5767de1e4e9032e35bbf1c8fbfb9b9be9a8bc5ddd98f12d3853485cb6a38cbc7044e10a61b704c6987e4b76331aef926a843f85a\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 759f6957706866606f2ebec1d6400b87afa134067897d332edd191036f318e1e21a71dbcc88e0e3b7599123cc8fbe19a15273b481a795303eb7941139e7d48afc490b61e3fd38078ef756ffa8de344f2e930b56452c619089062c27a47b594c5fff1fd7f5870cb5dc7c30f83b245cc838724639785c2ac7d8295e9e1a99004284ce1a5a5f4c90f1edf87be994e2176ced8b0339bca21068db978864e75e84bf9b65b5b28c3bc9fdfa451b39125a271dc280b9c6cffcdda1d883f5be07cf8c14aa4aef6f7993e86dd9dac620ca24c027b83be7cae015d2a55b85cca9ef1e6d080c298e58c4f0730de7820951df305d85eaaea46f087c74f3ffefeee09aabd5827\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = 24faf2f1b73eeca67814b066b8099b41a973b1c55f319d5e3f7a9943efb958e8f5a7ad9c9a7dfd64e2be0231d341a822a8ce31cf3e008e65e9e7ff7d7076c3ec62632a4c5cc4bc867c54c9789cb248bcd5afd0f8a2fa8b1884f630a0663758a6d472e4e7a085fdcdddcb1917630dc5e19857569208108123c0e87089f2f247b6dcd5940bc35c25dc10718649effbb56048bc03991851b0d50cb82eba64e6726c41567b5c708a8311c22e477a4614a2bb476e5fdb8cd7f14f461118bec1b6defc26a56df14ec3f64707d3d462378f6de72499639c01b6a745402fa46fb09578f52ac50f9db82c83e3041745300029b665701c595476e3e8651f86e1ffa6e0a045\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 73cb10d068ce0168ddabc2dc7ccaef8026edd5517c0de9b4c8becf660ba62c3df0fc47710a9628ea478cc75adcae248bdcd3c555cebbc4f1d99ec1f6c0674e092548e20c747f84959cbd0a5589b8db3e464889d537c6977f13668fd02ceebad3d74d7ade6deb16c6c8c5d30fb0778c3db5d7cc9df986596a0768a0d30c199fb8ffe5511d99c8592679febb5f8851a388f291e194fcd19b9423ad4b47f492dd720b9f38c3b0b20bcb816d463ab9680bfde66132a54a8675be19944a5e648e0bf942427f404d9f810f2a9d4626df659f54b6a5d3a6878e113c48b733066b3a83f5b26ac75f20dfbb8efc1ffbdc2cb6b9f198545f95ca0c3f54dec2f8307fb1b6dd\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 3aa737bfa89b66e9ce0508aa68da6c9760d5de6c50e1dc472073d4f5f280794b8e5f2ed5446cd73bbfe29d54c7f7f5ba69880158809b447a39e0363a59f46f83ade8032c7dfd090784c582141a5e4a9114082a2d91538bf55d7370525f31c0209342d78d327c53e21a64d9c81330003dc63b84d1ff3dc7a63528153e3d3028b66ec2c58182fa818d3c333f69b6dc9935cb670fdeeb226bfec9f3f7d04f5aad6947444e72dff3c46858ff89ab9a642b697f8c37fc6d58abd30d7e07061cbd366a566c22784e84d836a8b4d550a0617c4ea1ae7af61e2c78c9c67bb50c0982098faa9e14bbe0bd007e81c6c556bb3ac19b05057d7b4efc0d3d4238943ed1a552b3\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 1be82c7d86945e9d8bbbcbbf58216b20f2b44f68af6be2b538c52b0fa7809345aa227017a0854d462b74e287b20783cfd871fd85496dc39e8258b22e6befcefec67c69432ec269af2b4b348ec85ccc03a64523f038bf3dcd2de8cf6b6c6343b374419802d055902569d9188c9f7f795aa2ad22c8551392fedb3c5dadeeed4c1ea0ccf9ad237dbd73fc590f0920ba1ce11a130304bb3c4b923484a4922cdb87c032b16ba940885569e4a8a81fedf839f86e0d264e5c773b2530cfef13614de349779c08b9c18ca8e53348b62d9324c13e7222a99ef4b085cd8bb91d90b37e7bc6a5014a4906d7c3e5c59b56df9322a06434142bec6b066759658aa822c86bb5af\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 1730655b946726d5db32d09c48c6b06937597b5766f4bea6d2a851faa90d83877887f3250ab9b8b4fef104a2fc0c22d603b28023087536c11da54fca390f4a3bd038e63ad1abf12c5bccf7f80519e941862dd673624ab04390a68fae6e1fc5874ca2dff234172cacf54c565fb999598b372523f4e3730acf43e3a747bc067215bb4f235133a7bc20a9dcf3916d619bfbf6abf0d565bb3e922fa93116725017bb7055e75b455de9b10f00716f448410f6ee84a5612d2646809050eb8b27bb8707b6026c168958b068c5406384e031768defd754d94bc497079982012edf7f966fa81a954e9c9be118001977773def1f29aed719e51e73fa618fb9d61fcbc4b34f\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 264fa8d38bb793a078fe9d9f39a484a8d42f4aae23c9486e2d987c7fd18a3e38111c78d4e90a4b0152ef18bcddfc346b901e3029b11ad5c95f92f0c53b62cc7b1f8e489392b323b81f5502e69920e7bddcfd212e32233f569d42ac9c511779de6618ec5411a95475126455e9d3d83d35620eab93f18f7b9080be87298079c5aa2e31f612727d979c7571b7736a8cccf6f3f053cd9e25ec502c8d61ee4a2ac94a879452c4a9aa88c094f73dfe3dc31a5fa3d2802fe2400ee8885f5527100fc82222d4470c979eea045db6e068e9a1b09591754eade5dd48f401da26c44dcdc13ed482b2202b10212d99378cb0f848d19f67e3f3d5351c5698c72f38b2d7f71c0e\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8908cf495fae96c593c04e0bc329ed29cb7fc151c8d66546057554b7f59e2da70b164dc6bc26aa19370903eaf5fb60a0c33ba9f8d39cc015a8a5e10e24d9d292227e1a52bd6640b8de82202c2effc973341e0dbf0bf7a47ffe500309699a9787fa74ced281ce129019df96930d66d1f95619abfd5127a85d9e0aa6757e7c8ea29fa339214074580b8181804bd224dd6d4be45c1681158ffac6ebf5399737b5538ead3fbbfa68b9407fe717d255c7e1f3cd02c6c2793095999d0e35493c67766ce320d4bc4c984bd4af0c1a6744357508c2bc23c2eac58b72a181963d7838e8f8d5f979ab3b9c505f177ac3350657cb84c52a4be3976141ca5727190a2f570c08\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9175f30fa7863284e06e3a81a23f56b639d0ae37a4f42779c71a6765e6a2e94aaf76fa32e7c29a8d936b9936bd02181c2de75a41a703e99d35ffd4dd3074803e77fddac42fb4ccdb5793b7e6a530297efc326559253d493a8677cebace5ce7b5f5b61c253b4512c3fd58ddc94a5e7c241bb4046ee1b3d955a80d02eacf0b231b3093cc17f18e84ad6d2631d225aff74f66f3e0afb1ed290e8ad10ba44ebb9e3ac198a17044c3abb4e41c4351a7d6d86847f654d3839870a78641aedcded01d", + "e60665d8edbbd9d7ff46953d2fcb6127c3e4864a7a64cd4872a2f7074e4ada781e25f18ab3b60d712775b45cac1230e403adcba7af3aad81e532490fda65c5f044\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 36f243ff8df76718fcb54fb3ee26a497df468d14cb2e9463797349c85de2fd05ccd1d3c8b969414add075a55c9c4eee7c1b046aa5a9b65c47db59c236ee44b165c38b224379d39b131b63b6df44d6119c947c01eaa14980df1a5e8d7d6e6c5e8306151b16dfd001773331a408b7442dd83a63adb705cdc171d4b43591817a7abec70ac6f85a73db930b651ade05c9d119b63937109ea17aaf72582427e174ce84a1b82b51cba8483d41d06dba51f0355db3e4f48aeeebc3df5942eaecac74ca56a588da107df4be3edd56c4510f12b85760da6676b778024fecaa217cd0f359834cf2fc94985136001d50cc7b38d6f7c7383d3ab58df97a464968aa651d6ddb0\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7757a37d09443fcd3836e17cd254d3d03dc705d23f1d656112bf3aba485ee6220c7844912405d41978a94a2be8a16d8afb098b87f2b641e0f9a7d3845b02f10a7d63c2d871cd1d832679209e4a8c66095757b723557a7fcc9a7b6f6f9bc9a167364412905e38a843883fa7b9761e7fa664cd2bfb0a5f0043cf2a6eb7804ea07f79a6ca6633664b3813d8c6e95ab7f376182f315b7c6b043913e19759485d583fa92a4464d76140a9be4305fab54219dfe69590d6841f024bc29d48b39563b6053456dadcb8c7903c7bacbb3a80e3d0a8acfd222758b2647592ca4c4f2bb2a26a04ef15ed65e90c14272d15fb4e0464ed31e0a3203c6242c102f480aac6bcbc6a\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = 1b7e55659dcbd51e3c3de5eb5cc2c4224009489948385cdc8d5e564a49402ae38c1e51f2fa9affe9575b2f768e21565c39b5c0ad107cc1e5e466cc77328b8919321ffefe5431cafcac48bd7d45fb2830a548cb1424e3c94ffbd85e9bc4e6392f56c2b6931a301230b37135e93e460a30026da53bb55e3c6adb68800b694172174615bd2e749e8678023cd7c07fa3021e3bbf75a7ce81ba849efecc3a7d8a0af088a5c437b114bf45be2d10d2280da8a6208049143620134c76933278d54c236065b795b005ffd7be8dcdbbbc7ad822f3ce7a0426dc4eb0194768470b0e7317466899f60c40ee3d49d7902b9c355f6cad7dc26386227c1fe8a264d3b7c0b830e8\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = 4e856814cca0d9c39a2ad4efe2b425ca0ddf90634278255edb4b7f643a868ea468f8d1afeb72b1bb60455139f44c046ecc121354f1a9507accf5865aa1268448935790cd1b02604cd800f6f2f0aee5adda9bddb6b5b32e0504e2fe2012896ff9b8f670364ffe6e563e1a9a19b491ba3414f779863bc8bf411ee0e8a0e6ddf1b4d4a70bdf6a9a743818be75628773558bad898e4842fa9727770a15a6aabde3b503709d1e9f602f6fb23115aa46706cc78e48bfe57cc1fc4409c4f1b5f440a3281f955b73eaa662adb9fffaa40b4a8495659625c6b7b51218df928d51cd66f59c25d7b94b798c9fb6e97b43ade5f4d17f59111deeb03d442edfd144f26d3df606\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = 7dab5f7f0430ba2ed6dc53d9db80579ad10343b72a9d8a37ce0bb38403224a4abab252c3a0b5a950170d2f663ff4a8d03217e289d715b27c069432c5fc9591972f1b4ac468ab8e933c1fd4831978c0381ff9b8ec85baaed76d1351a8abc38a53329e9c8bb3c1f77a8bd15c29e509b198d46bb28c8d98f03c01f9ced381d24ed9d28ffd1d2eab5416ed5754ccbfc1214b5ebc3339f5a6d667581fee46d60eaec42074de8200d71e1773a9c83061f2ba4b9a2475f552f9ba99fec5028a020f4ac2208196f55c9fa8901c31ac31fbf671be577c9cf64f7fbf3ef7ed60132f2a204f6589d23bbcac7a87dcd46607871988b5f9afa5299f35562d58e93478f1d973ab\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 7b677618a244ccf2d2b9ad60413580b07be0460cbcb449e663f1d3504772c369684eb6fa5a3a18e2bde19f8f2584a3a3204bc9026c492137738058ae433d68836889e72aecdbe0385c9fd56c4df102d979f7ed6b59c1be1627575be24401bbaa88ec2346f6633e8b01afff790a4ec4bc1900214d8b9d34f29e0a548e3acef57c197425afac9e4dc2b9d8b9da30e771e34740e5780a52d028ff2016399f78a802f032b92e9f1c4c9b9d8ba9be494f8e652c43cc0a0b4952b5d03795359a130e4cbb0708dde79db136f256f1dd885f340e7a870fb4c3e8efe2bd20deb63fc63a01a8e1161eee493e4bda9879c814d9f16123071dce45209341c54476539a9b1a2f\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 2a69e572a00d5d2fab1f91c04c151ab21e1cda5a7675b9e6f67277b120781494f5ace1ad3cdf78e6b6022eece7db55301f5749966c89df5dbf2852bdb182a75baa295697fb1e78122400d013e579cecf3789396102aa494623b5a4145c9bba954e80473fe613513cb9fcaa6792ba67660a9a754d6ed6e3568079a7966396794c1ab9016cf980dd3963179c8f3f0c010f3f136c4b611170fc11c133836cce42fd43952c00d3a7dd868b1715da5ef403e93a64673b15ed114e671caac4109bd2392b43062434c19a68dfbb71938aa8d45b96711950380de2a1c259d770cc5e98ae79fab1a7fda2f53e3098aba41b6fc486b521eb330bb226d0f95fd14aa83e2b14\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 36536ad1227a5d13acae18d8233a00d21e8064b14964a6d0fdb43ce46a76b9ee1749d77d82227d5bbb031ecbcb2030586360460ce3bf14c7a4d1a0202be3a46913913498b3390cdf96ee89914e7e78548f902a175a7f5f35b48838add2418b25cb7f919c1a0ca558f9ba77dfb6e4df85432071ba78fb6fd0edcd343f8c735f061ca9033e5b3441756188ed588564902602e18745a5ce8b57e3af413173801ddf0cc914d1b4d29e3377110a7b844be6c19773f9db22d5b266b12e8e3d4833b721b1497fe7194c0fb4e3d83ea9193e0a12053680a1396ca5fbf69a717758c5bff5b794ea18e56c0e82af3a1b97f6420f4d268f298f75d7c3a7b820d5557b44d035\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = 325957b2999e0ee32b5ef7302fde0299c7c3647ee225d51ff330f7cc67b6b406cc4dbfd6a33ab2c831c78fc01685c4c3bea94f2194cdde48b6ed1e87f5984de990b5a8525470dd23153e329660bf31e433159addf094b6edac8f118d9fe59c34b83db1dfd26df7154d13e874830e42cad61cb3186fa80b54b7d7ec9da3274d2544dfb42bd8f29a3bcf976752589ece5b731f63f3b072b7bf95b930fef428c121560e1daae7d8636a5f40312786dadb81c07577d4a04ac94dbaf9b161a7f8987fae51077a7caa74da3c84e46c3e1000f2590ac2b0c04d17a7a3cbddd639e762e80d30608289bc6b7211d69af76602d2ef33c5750cb3c183c11450a3423d6dcf4a\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 5da303d9c88ba80e7df9c1bb650e8317c601676af8fbadd86550d15da9aa9f3d465d2719096e738e922b8bbd1b2e032f7cdebb111266814641fc45857af8b10ebf328c9a434170101a04be7cb2559394debb8a5efac20c6ed858b13d185536270f056913790a4cd269c424075183620c6a312aca860f7d3d694bf5e969fd0fb9333f7e42e8955ace71d957f8eb9fe1965117684c2e73eb2dbdd97c1b2f7802dc68fb9824254b128055932399c796dd3ab14d62b917b7520760e678f7c5eafd82f6510906d959faad867c92a5bd8bbe8c1e64a34025621b20dfa166e37251bda6e76c296dc823acd8ddc73aaa29a5572fac2344f8d213c21e5fcfa1e50b8b2eba\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 73ae94e6749a14bf9e157305231ca7941d8cc42892410520060f916e1de657e11b50e42a4766c5e7b55494c605ad3324e78d80f8c4b31b1055a599a3b31843c900980ce057cb8bcf09906c8832a97536fba159723e7ef271a8017545bea5bc0f3cfe19f967f9ecfe0bc9f786daf5367be00456f97d4f3b69d932fc5d119779de21f7a4e0a9e80b65bbee18494c4c48c4be3a62a19b483bd56d194ff1c88cf146c2eac3fa2a05afaf3a813d5efe29342f6b0fba81c1241d565306d0936699dd20248689c5b6b4ec2f31a12c0d5909013ed97799c47ef089b9d98ee7e79c8d89d7a27563c529917977ff12a0753bdf8b4f62b660d33f7f6da7860ed4b021f51d01\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 468c5f910fbcd2e2e412de22199a9ec2e46d084e2450e3752e58170fc7a7cd9870c24859ca131b967e0a734d555a78795ada986a1b13b81ac3bc5b7e858fb3075708d2cb03e4cada94455970fa7d849479ec8e5484270196147ac77c20c0a14628b8d3a69388973e17d571005ae218fef67c70f62436ba32e5a53566ff6310944417c7dd0f7e1e5aafbbb9d4d0853d84624f9d6e3c8078c17c34aa16f0bc8971580f456c2dc49f13af44cad2e3dd7120b70d3bd2c0a0957d5a739a95932b24ffc564bb94d748242cb95875814fbedf58e8c036a516b540ab62a7afdd6e3f304242173fc69ceeb95871bdcd530d53b7145459ccf41afe2c8ca9ccbffa28d405e0\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 9e7e0c0d929bc15ef8ad6b64f9dfac6a7f0b55942eca76df1ada99e443fc3925a5dd9e2b25befc7a9e1c09c9d9c19a3bb842c0f35e8ecd4229807012de47130335175d6f558b79aae6fd7bf2bee86ea2902fcd9067927f485b007723af826511d1a01042ed6a7a2b2c558c929a580cabbd83c5676e1af860c596ef784b043d5c5ed963c859761499111337cfcf9d4cdf8a305d6da83ac6239a4b2c16281d1f4f30a06310bf4237ba6594b93de279e8fda3406bd5c7be52a0d3cb2c7362a6ba028e74572c8f21e3ebb608ce284b4b378b211ccc8f42471ee86923f57fd7c2b8926c9fe0a915e160171cd595b37924ebda6ee187f4a5e7e4a63161e246f27eb829\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 92617dc932c110bf61e88895560638df4f8d05172f435af4457231ad08a5650f1f505604029f423028247d4231c86af51db339c180177bade39076dc67f9691fb7234d9b8c097e650ab3f2822414757f3633a047c5d5082eb469c35757678be46db32c4cb628f30121fd8f5894eeef27707c8689ada5fab7ab0c2e2290a", + "76a1327828f41869eec62c2c03ff50d95a678bd95bbf56f533eabc5474df2f23ce2f8c0bb71b8bd79e2dcc28a682ea34eb20e670018becd44200115ae5116664cdd0429fe227fd0d599b60c6bd3911082a7428ae1f57bcff5b9377fb30994129e2bec9429d6e613c1b527e9f51c6e9921f59be1763dcc210cb2e4ce86297b774b1a0f\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 144d33ca3e767af7d1cf7de00481c6dd6541189cd4899cbbe3125463469e8d317018d0feeb5f3c875a4b7217bf1128f448068af845886de43a4bf4bfccbe7f4d02ec30569760119ea1446ad2937a0ce28ebe3cf65b8212cfac09d19988c3ebceac6ee62d7ed3d716e12517f2c9aee98561ccdc8e7430c6f9f48e13e1061e18c02d037d22fd4b40ca203b7eecea229d155182fa8c4d70905ef9b42885fae0b99bdb945283be021a521a57de94958785bb9fd8b9ff5f7a334a0062892ec1967db6db2f9d9af726432162857996faa863ead0f7ed761643961e80192b72c7bc2210d80600bdc5d9d766fd4c1e82053f42c54e79f2605705181a4d7039377dc36c02\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 8cac0ec2416e1ffcb37acb5b86227e5a6b88b7e4f50981aa54a1ead401e9b968f68b1e0278e55300070f3f05963cd74124ed58fa3969c41c5106a145490174001338c504fc01d2574384223eca0a755142697631e59556669e686b6ac89561c283c855e6ac27e4c9e4c6989c97d86f7f9ce042a65f20ea442bff4f6e3025854a2db562f4a25e2e9d0cbbdca056c09bbf2308c3d34a0c0e39b932cb6c6ffa47f471f6276439b320044c8d9d00dffd9f01442326a209fc01cf034ab84b0d9fa8f63c2c342deaa9baf32b904b66451590febe4c1821fd6b6e88a5c1307b053cd0fe9040abc3257766a82e4d9c6f9a059fbb41bb7116bb6d71e6fa778085930895bc\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = 8cf2a2d4f7e3bce319cbf1f2611c9209edb696e61ba984512067db8a91e7faf6bd1bc399cfc9e7e744662d07437f677b1fd04fab3de3f9c89499d4a15a90c194048b7723ff22572acf54187852381c3453ae11da318b92513d3544e671f742bbc3bd69c8552f1d4c58b43a6f7e6bfcc9eaf78f9b94cf59b7be21ceb2de33e50e50fb8a4592441e0919c621477a49f87d5190fcefcf4164ff7d2d5803f03a8dbdbe74258342e50c33fe307294ca1ee3b2dc6f400a12cba00002871bbd852e105b350dc11e4b551182ecf2088cc46af1a899e606bef793897f538792a09901150cf40efdae87e838d6c2a5ac84771599daa0e5ed9db1cd35468ab3b5e2c12a6d1d\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 2dd458297ce1a8845a767f0a1e40bc30d3b9b54b4a82f6240a3b993cde0f70695435de7973ab17352699e8e383391f17f35caff60e64587e2714fc6807b00e98344acb71195e20673d7ae0360e2aeb66a5831e1165432534f873c0f625eb3aba9307ecfb7a460ba4e28610a7242cf0f76a73e33d6b15c489e2755f91cc4dc47acd6e9261a2e34641fafe52da98a10e4a8306c843ccc8f1bc3c98f1b4d7e3ebde5607243e4a4bc442f87d2a2d09a83c9acad25e558dbb72277512b284a0f93be155172b9f8463e27a701b3616c3021801f893b72abf7919f9963a20d151a5a8d0bf2dbe528d199084a2d7d4f3d1c0ed5893117620cc6800ad3d7d246ca074c54b\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 09b1fcf9a76a1cc0819fbfcc70d54d52ec5c5007c13581415b742cfed2185c2a26784aa85a208dd4ed140654df11436c5487c170bb213e9898650019848b26413f8dd6f0aae6edb41ac017c079b63de311fab7dcce522b9361feeb941e9371bc20936689d0a7e464c869ff8db1f85890d604e814a3fa9c39d101bf7a4b40ae89e122d314462606f8a5e5039f86bbd3da35f8d213b64fa82aff067817936da0c009d9f724abb2060588f8ce3bdc13ac587d51a197acff533d0e4e03083589d1d7363827c34f2616162b085715417d3b8cb1782c04cd0a37dc91780dbfb5218d674a2d2c1096c2f05b28aaa575b60e38123a8ed8d343ef95f777081eee898ea455\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 889bcf54a28525d32db03e8452c6e0f0aef9941716dbff0497014ea9b0b181be70d319574c24fbbd752dbb9ffce4b198ab43b950b05c2a1288542b6052c557c87450168e4cdd399ed8d9b7aa7c841a39b28c7bef5bab0f1716e8e9de9a15c1132bc12cfbb77f237409608fb8baaa2e851742655e272e03f28866723b202d639f28e29372f18579c4482570b3816e037f8f256d7a95116988b676e0599885cea80d3c24b6984ec8080a80af020e7d5631ce8646c9d270d4a521122c009ff626d2c428b1b8334569a7e79aa64a5dcecc7c7e4881746bc3754a87fe51018cb401bdcd6982c4fb4b3782008b951847d64d3eafe4e974bf61d215e63b750313163c47\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 14dbd0f32a7fd64ca18913ef840e113d7bdaf22aea671414c9c44de02218b474d6d4867a9a4b6144bc6274deae6f615ddfc54a9e74b4c657187c818781e399798db8e62987a128105086fbcff4d5a06bb43823b1f754e485dc24d9f952d1d4ede9504c92a2511cf51e68eb67db959152ba1700af0e0aed533246d7ce9e0c012eda62d66ab5be82b0ee5fe4863d3c16b59ed6d463c382b25a9c8ace7dbb26b125afaf44bf93edf6a63942b38f40deef43ae354934056917c9af6655872b010b0840403c1cd5c053355fabaa23ba39dd381f4867a2264c476ba67d46767c546ed3ea59488c5500c79cf5e0670ce744c2603e01e7c53f452c22ba15a8c5930c61e1\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 4bad954b43b0fb966ac33ed7c8ccf2fa8246279677172b39854268b3c2a3fa670840aab9e0f53a754bbd105f2e52a29b132991ed814cfee0a102e293451420deac214bdb5a574f9cb4b3661b10f6804f5c27d1239556413db01cf123132882972d04b9a0b8d046b8993eedae811f67d9acb9e28b3ab4b6c4d0e42f85879623f1901ac082c93ef0fbc12f3ffcaf252c8953bbf8abd6fc01b2f272e27448f4f77fb369f2c5215c7eb68b2fcfe2e584fea33e505e22a2aad0844d1c8689160a19ef377e7513e96dfd4efb1aaf180b8d5dd8e6168cea4b34156f2ee20a97deea0fda18c6438485fdca6c705806d7d48ff93f3b8dcb847eacd2235ce1db391bab325b\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 0043058ff1d0e41ca8034e843d17284e41a93df84ec80c927a2443e954025f74630f118b683d6fc4e3c6b7ee4538cc6b4bbe3505f70ae40a336948f7da8d83b1d7fd4ae3541b885537e92e86570c2b7f622d2c4f63b0e0380e3d13be8ac930d06ac9cb1f3d33882cc235f93702a4118038a343b6da20914c40e52a2842009bf9c8312090bc2abbc4e48541a6b2dffbed3c1d51e989479d017c60e6cd2d76ec292e75ba550c1c195c6ce06c017e5349e10a90adecbcc43f71f3d24493796d464dc89737264dc102d1fdb9fa1262ca696528d87dbf45996b7087e755ee07075c8fbcb2036050c8946866bd972b0fa59a2995fce09e12250341a2e43d5e2c8df8c2\n\n# tcId = 158\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = 6afc343f91b6e24958dd3da7ed8261a127ca3a5641d38f17ef5da8bde5581d87cbea823241b0c7990c31972e53288cb253fa1477405b020de6dad1f0d48b30ef11547a84f2edad859f6f9f11c1cf3a22033050d04ae41b19c43d6a6c079e46df4c38ddfa7c0482a47b5aa00ba4b244d423328c09fa1589d412775f260e55a8d10b9930ec6988ffc138ede59c32e995bcd85ea83d935eec5c870b49b88b0a7826683f614812449a00a9a67e11cf55f5d16f9763934d20c7a206b0cc86227d33498f492ddb98db5fe7312e25654309f848b271563c5c75d246ffa0ab2aa04ce3573468902212e938b8b6927b5baf3620f75c20e3b5d878707837110027c6165c24\n\n# tcId = 159\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 539a9b1ffcb0880d93d7676fbfad02b11efbd713f273caa558755cedbfc0bc838d10823ce56c2d506c7979d96433d6777fbb749c52ba263c77d4e33790f78bc54d696e1124650681d260af084be5ff47ce9a69eee44d54ea31b9e401b7f558413d66790bb69e938f45e545318c8b7886cf8c0a3c84c331f4c334ea59ce3076fd163ee17c6786e7908c3356f1c81916f7ba36d65fd31c9350dcabf3623b6f2bc3fe5c247a32c8313da0e67e8375f8163f63e84feac04dce2ce2950a56b6fe285ed06039df5b9329677b2619639af36137bfbb75ef07cd3ba5db5104aa015b0da57f70f773edc6bf01d5c68390073749bf253ef999d7d1dd964fac0cd3e39526de\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 757a75f982883fd9dbefaf8ad051ab35c965607fcd55f656dae97ce949a17b5829efb8cc34179242c2d442000da7ee7bdda0a5c114a86c7d0f8ad79bfa76c4774edbcb79827029179c9b7cd7925de898d09fae39516ea1da61aeba1f31f53380ab9edd6cc7170cf70a35b169cc9390b20823ef0d5e7e3a078b31f877a1f6f9c447dd979915b0716fed43236ade3086cc794e8bd210140f0c65c79d2e57f387f22e2d7dc12454f9ea384b928779fac27bb2e614e947e3307cfaf0f0899dc320d4e5bf47b9e92cc3649e35854d709df56f55dbabeb61bb5dd0e77fa8c499eb9654c277b34218b7c0a92088a0909da3070f5c2736c8edf91fa7ef038e091629aa7c\n\n# tcId = 161\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = 0d146c7968ef5f1e85feddf8d27847de4b28e5ebab16f8af3b6b6e58396aaca752052764b8db3b1140a0a0cbf529dee7f1cde601bd42ab916e0f183b0d37c843a7568d24b07d7e1f26ad7ab6a96129f447ccb28849f83b92cf9d002a93b904e63c80d8e58a57fe586736d129663ffc6c6fcf58cc6de1955fc7bca9ef16aa6789d61016212307ea1e059c43c5350e485cf6158a25cd1e8f726a1473a4f598cd53bd7b6862735ad8e66491e6ddd0ead13bce9c14fae69dee16ff6dde8f0fc33e85684e3745cfb3cae708dc8b599142821c49e5d5d93e26e251924da8d711a731ab9caeebeee7d764b87d633374125dc14d8f8b944f2cea2450d89bab9ea1ec7370\n\n# tcId = 162\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 2fb7010afce511f6c6563db8fe3e623313fa82e37f81a1da359f9cd27ca423788cb0c65a6ae7c01ca82410929fe57ccb8f4f3158a3d9016712876f7accd970d30dbf6bd90c1b0393f11279b3febe760ad1", + "786d593a8e0a3944b4cc7c5e8ca41ed5e698ba367975b2ab7c7c0a6be919f36ed1771b1648f22ad899af51ea469b1ee47206e8174fa148a9670a4e45a3d36fcdb948ee994888f07252a37d636ce541c70da9d6c0f3ae2a860bd660ce553d5e94b1bf2687e036e77da61586b18189558906cf12a63c2850e28cb595c46a85a59d84be6c28151f81b10ef8ddaf6297e5ccb5c009bd0d51463fb48dbe48e9dbcf7b325dfa258322cf6acf30ab8d566874\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 3f52510fde9cc0425aa29ab11dd95bb0063c94b9e835dc4ad839b409e1cd8994c87ef018e0dbc1571d3e3e321d35d88e2694bbdb9422c31cd64331945a8f6133fb8079dd5cd8a55ca761a88f280725f6e13c178ea94bd7b7395b4327d572e2615cc60366acffff56d3f555397b2cc348844c42dce283c948c28fc8d077d07c390b8c78193dae608056c93950cee202d68f02b3d8fd58026a690cbd8a95f4d1f1fd15a19e119b3340d02710faaf1ddb66af60fdd5dbe8f0cac69a370cea0a4297a8a2ba728141886f6aea3aaa113a42b6f9acb2fbdc9f7a0eb295066a1862b75acbeee9eefa0adf208867cbf173aebcd4a9151a657a041577cc4265c0c1ff9e47\n\n# tcId = 164\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = 78695d7dc94b3ad16254631482570bc97bbe1e5601c5d437660c9ffbf3d7864321e0a5fa4ea6136084ea004e71bd0ce76432f9b68e3c5e8995bc6e33bde9a93bdabdc6bfe5f8ffa30f22d4a13d453e26f975a7ef6fa21acf7903818df3a008b818e829d00e93f0fbde717f7c9de12e65581cd430993ac5d8ac840d5ab0dfed1834913c66e2689364e30f595c673a3c6c8191e80118e8cb2b36b1b613cbdb40d89444694b2609694ad877df3e42173b8f07f8d0089c34d8d6a539ae508105ee91a3d0cef2208ca74c57b57ac193412a713ad9ddfd10f63a6a9adcafb8c3eaffab0d0aa38fae362de560665022ac755fcea073aa905be19177debd5b00e9434f20\n\n# tcId = 165\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 320d404e25a77d4ed6108433e85c9e8212b3614796c96105421acce95b48abd9683e00fbd57333b4483cda1d69d77189e7ca795ddf23355d0a40b67f9c97bf5843487b7550fc0d3577ba3a0cf7c7e083d18902fb4bb231c6ddb7942f512896af12d344a35cc6f1d3a6ceca567a15484ef95580b831e0c4d62bed425deff9175b68da5b6cf8daedcccaad83110b42ad03c5e8d4bceeb8e1ce2a9b15c2a61f0ec65248698b691a86d61eb593a359366254b8259b396f5ca3aaff4d0d3d1341afc019e6f7a2d43fff46a48aab2f33721d906299305dd97a9aca7aefa772f153371831653b607725fbe60c952bb04f3b02194fd0f0790b6560ee5a8f55ad1e8779b7\n\n# tcId = 166\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 3501fae15b0d575cbae58228a1debcbb44575dbfe77fe1aa9dbb45ffeb821031933ca8f2b0e38900b84c86b4825bd587b28b94f27cf83cc8f36ce1e4f565124b2fc3426de04b3951800e54276ec31534a987536ef0e3d081dded8252bec64b432958df9ae045b29c1a85b9d4207fe4941356149dd0ced33fc5de142458a856151fc246c6626e9f1e00c326a00959f9080f5dbdb7e82fa79e100b03b6fe42e2d5c03cbb07b8d0ef8db22d323d9e8acdfc1dc30c765f7db9c9a14d9f41c451c3e037db9468148d8564b63fab33d5637183db20d27cb6a231491d6ac08d70d9a82e6e8ab04da8bc60659a3f9e31f793c2f0f090b6811f1dd634da057b3c4aea5e84\n\n# tcId = 167\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 989c7cce6a8018a5a2b05310bccc3dc0aa8f58fb3752111eaac000a2daed122d44293203ea9eea41eab79d0cae1bfb526a131e8a8bd021e5b98907de2b066a33165c30c7705c7cc684c21fac98d03e3c5e9dffb78d87fd57018cbca50e4cf1bd44e1799c03b0b44bb7a9971c314f2fcb1345269d27dc0375ef89d1062f1ab8220fe57ccf46a04e32b815f2c10a4045fd3b814113c679106f70d9ba9c746be24354e99b54e3dc1aafe2e9d83a668aa440194be87e914eb986c3d21447516efa0051f6a30d89acf520d697776b9b854d49230c6a221c5f67b3d66793b97741200b9f73d9ea7558df17e44de5480d99a4399e72a380c30b314d8b504fe160427df5\n\n# tcId = 168\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 98ebc21ca822ccf9c7e82166aef286277d2335a8f68d48c1f4cee180bd6003a89e6137885113c2af09e805020ef5c0e13f913d6add5316396654325d04b40c268c3eaf3a0cfcbc5963e5d7e14e8bbe95a8b15f9dc0244b202537cbc561c91e22e933f4ffc96499e6a3b0b33a33d9329f8178f35f5b1a15940f34ff47aa1a6381d8216343cd40a02b4472b5a4ab2f3116803740b947258ec85e3404c375d97ce73e00f9fbace9a53844b8ae669b9743e8f7bf59b3623c0fa1d7c60fbeabe35ad5796a9d8a6d32eaba6c045a6aa2530b6cf1cc045326db85b4f2f567a8a38f58c8d978f3f2fff2098eb6dae5ad4bde60d9d3913eb23f378ce41ba198ac273778fd\n\n# tcId = 169\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 94ed6235a870a8ac919051f7204f809e6bc1da3c22eaf7df3f238f7b183a7fac66adc90b51688e3e00764a45990845d542b04181d618c383f632a5f5193e77b48e423c0db3e266c5b87b7f38d95cdeacdaeb29e419619ccea4899cc2d1489e10034560aa52f6b17ff5f650659ccbd403c6e89b2812211894fba188748786b2babaf913a03c432f22da99c44cad95272e6cc16dbc44ac6d0a9afe23946d93299ca8840108dfdf25cb25846a8fa9234bbd92ab5712ae6d7f7f162fc76baabf30e0efeb42cf0a68d8c02dd45a7f4fbbee275dc14a96b6d010823d604f46e09dd1b99939a625f9a419be178bf6244929897d1387928e5013a0c76db37e7c048f60bb\n\n# tcId = 170\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 12c8a3d061fad3c4cc7b6cacb83a8abcee495ff2255464495c9d6a600c6e64a57fa9dcb18cd648ef5133dcab0f1a9c57361e4b2b9b0b996a673615f292601fea09dad776659b014dcf62c35ac063dcfb7186fadcae0b506e7b95c2b8794d771856d0ecf907025675d980746c5dbeeb71482ba4141e50f67dbea79f78b40875a98ec80fe1d7fe2eba043a966543a79317c28a824c3c6b382c0c57068a3036687fa53149788990dacd547723b3f0051f57829b10aa97a15cb4f9fce9617158e77a8399a22629e9d4a708114a1497d0465e3b5a4e1bbbd0096dafdba7b12cb10dbaa54834025043055e5fc6cec45c6ce9c0946e055ef77ed49522892a267ea2c123\n\n# tcId = 171\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 789094730a65d2a48085a67c9018839b2187bde7a2898c13b17fe25e509a437c152f9376ad710423e8a08e6c98fc43f9039b630e77cee3629791bfeefe37eb168a46053c80805221fec513e796db2d58f119ab33b6d0a1a62e1fe2824f2d5145de791d651ce86ea84c8740ed423938339d786964139b6e62680c991ab404cfeb166069d8c27a560780722d8b6b9299086904308458b47b9d85ea48fa78f861b396c630b3bdc1111edff7441b37afd526a4066e0a130b0953d51e5c3812dbb054f188440e5d0cc8e134a17e770d5a93d8b1cb500c72ef1f49b7e760828f92ad65050ebe4131ef295c7f8afe19a0d0c5be318353641d02262d557cead9a6052f6f\n\n# tcId = 172\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8b2e3c17fe8adaa8e7c8eaa0e3d98369131c8e9b76f36bc97fc95888c4a0f6ae4bb85fdb2435bc85d6763dd07dd923e29a8eb046512279ff6947b12bb2e2a6b6a3ccd64c7de88ef6b53676b25472997163fd7da09815af219120d6cf58f3a0fb3f408ebedf235e5e0d7bf6231cd87d95cd26c2ed506a0749abf45884c22d795bbee01b01884eedccdc7ec04d6394e4200233b8da3dbf148555e4168123749267f0ace21e1b468ab0d4f99a59ad10bd3bb35f517836d0034e53efa6f4a042434a69d6987b59110cfc99267835d7ebd2ddd0a621116e0fbfeb1b60ae85b9e80bdcc52fa3341f82da73bbb841a0e665b084c6cafaef5bef5de609f4f94005488f68\n\n# tcId = 173\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = 4706e77141ec16f6936a2bfc200f9c5ec3e147be7e2e6b71790750ec513ca2ff2ac2a84b76fb96ad5f9af0c766af1b7fe8927af940c2487631fef6f7fdbed533df4f5da4f1aeb89c8f8a34c3a6ed7e5e10e28fa1c64f33985ada66a92e9c3b8b5f5366f075b2e9ecc0a41a061712ccbaf2add75254f62e1b66a820924b18239559791dab3dad8f60500fbaa3d76dc754df7a848912aca54e6cf627c5e9f9db9bb22c2cd3ce0fa13838125d88e80b3ae6baf8b65f0530885d307d47f1e3eb4bf6126dd631a4b6de235ab136886ef70d2f483cfc962cdb52e291ca899d108b9980b91eb47087b3132d154c317622077a28a904de3daf415a5634d79625f926fee6\n\n# tcId = 174\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = 78e59ab23d412938f10996b4332f5a412d85b8bb8b3d55c9d017337357823b3cc83d2d1f2b9fe0025fd3f898d2661ac2e7d7a834465f096a0d29315fce69ecd15241750df027eb082d799e4d56497bff65a115e69c2cc57cf1b5e1c62edb25d8646fcc89a74082b9ba36c6aa92ddbccae8858ecc06391f6b39ff5a740be97f012b39f2d48134701cf27b5172297d217e8eb679732253591f45bdf97957f29b596f27ec29f7c471a966818c50296ced411e5010fe6da1c26b9e3489316cb16e55f8b65fc5a1b1bad4077dc34c7c9730402205f12e4e61983e6f5ad163324345a59381fbc3cadcb460aebfedf15323cf1be78c45198afcc803719bf13e42ac560a\n\n# tcId = 175\n# appending null value to null\nmsg = 313233343030\nresult = invalid\nsig = 46412b003a67d7cac1dc7992d31259013069a1aad4292368ebe0e597f41883e8291aaea88c2a8115b47fb87265ebb9eba6fe9006bc1e34795a1c2bd8a39c46a28ad075d5cad833beddcb116221411efcb8e86863063b5f6b5885082c8fdb6501e708d734df29c87a723e103b3cb487138cccae90c7431a16189ea8971ae152cca07678491c5b3b68d88c4de18ad771fc252a9bef889b963b353621a0d52ddcd043ebccd4bdcfc5fd4f878aa2fecedb11236de9f44cae8559668f9d035f7adf90e03a707d5e0f97ae84c2da6866f85d49a8dd09106616519df0f5d94a59b1199ab50884cf6d912a061c7488fb5491df32c58d1af741a164a21c5a271feab9a2d5\n\n# tcId = 176\n# truncated length of null\nmsg = 31323", + "3343030\nresult = invalid\nsig = 951b3c537c26d27fe06f602bd224906b1c1d26e41d22c7a22479f11f913978c9a0f7791eac42601122e6a812730cfccd410aec252b203cb0020d3998fd6bd469e335cd664230fb6dd59e0c141dbca861346ff2af394d86b8fdd2e6d5f0cb3d942c3393d917d62cd0148ba82666adfe4c1d999e1a254cc466ce268cc0f14d352e7b0bea8548a5b6fd3745a81f15a72b00d278f881a55677fe37044394ea83630dc15f794b4f6192b7546e841fae0cdf9c00cd3a455596fe9c5fa37d3f3973c58f189db8d39e8ae149f57bdc0b16f9853b798c87e08ae5ca75e89d4b4f3baf87c8c0b699e8c216509e51ea60b52d569491b186abd2365ef5cab983f71abb233b67\n\n# tcId = 177\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 4b75061a5487fe328a32c9f454bcd7e40f234cb1acf55f7d3bb8a50ee75edb8b4ad16c46b8da533792983de2dc2d6371d7eb08762e2bcefc45467c82130d483819ba06735985b26a19c391f94f854e31e56cc09ca20d542e62e4474d40d5000910a9a24b1443c66451878656d3a5f00a19f476f1c9be86379036555de05b3198f749e40c51e87772a5ecc59abaa9e9a8d0a1681a3964c9f022215a71be814c8859a63b2a62caca2b6e98f5b10a872bab1ee1c00bf0d640926b867a87640f64402596df229d7bdb74f1e39973aeaea0661787a3878b7fec9d31274e227b59d14b1ce2f707da4521e430f17d09fd6e3d61c97d08bea35631611737780f2ac40bbc\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 490cbd8f51a6f8aa64af8eae7f76ba045aefefa5bd072a3de5590d7ed120f21aa4f91decd13ae7e9f414bada7916ce26854cb8cb0dc63731c58c94a9a9e621163546f19152c6666648ba9291f5e477ee86ee735cf326958afc468ef7dd9a5b2131505c7fffd17dbb7b35b14cb81058d533c7e9f6ede933825dfa689457af1e1b6ded479e1508f167199be1d8c640d7373283b3fc76d7c3c1354ba725eeab08a24b5529553dd38cef48b9d45f2b90f9aba0663839de4de17e2a838e243b898cf040cf6053a3be2a4bb346b1199a93bb8295c9c4e1ed40d0a5d5628a1be1ba21f45c1c28b936452c3e163810f0a20fa717dd484e46ef92477853592ed3fbe71da5\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 7f23aa1e2965383e38563ab246870c43817dbfef46b008de4b1744e3610b1adfb89c96ca9a9e575edb97c471861bf613cc67428234dca7bd72c422f0c75877da341bae476ff43487b087f1bec13d31fb777e94bff6830527bde2bbe83578ae2173fed5a03f142c2a41b8ee8873492c21b623cb8143134f9de25872b39644fafdb1fc96ac072935efcbdcd0fa5a97cf036248388946223399053770197b886b39673a438f67b0ea789b9d206257f9a3be5a13017cba89d28ea493ffbfe596f9f5d040ac3098a9d968198e3d004d79d6d704aa42801ad6de597cedb3676125e9a23f971083b2bff18e42aabeba6ec760ae8b8c19fbffd18947061d44060f754600\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 13db6c6f0fae5be1caaec197b79dcf6784582e508c7e0ed3e56c2674e8a74c0b542beab6b7dffb0773a87f00e4648332d4e9771ba85df0ac1f9ca2874dd7792480799209155773e39f1bdfaa561b2d8133f67d47c96275e6b1098d1b56a8b8ab5525c14555f4c9b1f241be6dba874e5d794d0fecbbd82a624b7d31b12bd60ce27451125594c744f7f32029c6c7cd0663627b99f7c5636a836e115d0c55a44f62775eb19444020506b6988e11b2726b2330471536066e1f0d194ff9e6e457442b9154261eae83a178ee2f1eed06ef36e417a04cd007060ab83c53e28056fcf49a26e022ec2baf2badba859490243a0d71e5de61c75d259b53cd3baf7675a1db0c\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 6a0b7c4e2b7efa7002c444307bd3848306d2ffc70c8e767a9d5b17dfb3df076c06ac0374a1c23a011d466c095184616abc028b74bc58b91df76aaecf8070d509d7c7b9f6403bbac80040ae854d139af21bf7a0909cd8e059b5a9b444b11fea701bb1e052d77c7863b557647c7d468fd8ac2f6540eaf18896284f56ee01aa66ad89fda43cb38cdf1ba553e63d4301869bf9ddf076cbf68fde5706787470cbfe78174a516c53ffb6d5d1a91ed78b4e297971f30afbb5bdd02dfbd1097128837541e2974be63541f8df256c8a77a3800fc340093355b5690326242b0d90b3dfe63160382fb3bbbdf9bcbd5b0309ca9d748a343f4a5f8a54b3a2736199e27386a4fe\n\n# tcId = 182\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 4f611ad1c6ae7158bfdc5ade114098ab879a79e7c70184884f97dd875bbd6b1b869bfcd82ae7f3ee6fe88de98d813103df76f4001fd430de68b0e18c5bf4c8e0805f46d1f98e44112cce945943f682e1af1444e20a4f5e5ce05f12c00e4af3d871730d5e18609a7abe3b7142fc2042077d03e6184ce935e668570271ceaea52c36e553fe791bdca3d966c31299138a2690a671a76dda745cf2aac5e5153a06d89aa4396aca684938c0ad142d5e75e6615364c921c8d18d2841e9a4722fa1ef136adb3aec7be74a018ebd97d48f62358623a7c8d13a76fecfb0ef73c9477aa59ba225416582faad0d7d466d6de53749c3b51f1c55c92fa9a2a08b83b6dd42848c\n\n# tcId = 183\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 5ca68695f420c181c082921645f30d562c1e004bb469277664fa7fe20eb317faf0664d266c3d5cc76aaf90ac74c6a4650ba2fe6e143809c4629c33f0a267015f16f82cb1243f786cbab518ef8a1dbb3abc4e58b1c85f4d04dfe795696927cc20bc26d9889a2fdc74634cc0e697426388609e30b6195da66e114fb2505ecd15ab8c5982769e7675cf76181a0e791e0e211367d736d6dbd90bf27eb7985fb3b33ced721c46c2a25b4dc849f0946de01b94b463be005fede931fb41a3231403c800db10c7783d442cba0b58dae9cdd02d4ec144513ce74732936b31be61e11715d91bde3998399bafb18b690e5972fd0d579470a98391c475f91f5f90fcb9d41ccc\n\n# tcId = 184\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = 9b35b207ca21297aac4b6b7d64614d610e43af5d21cf3c024aebdda0947fab0be7c397491eeef644cc31c73b7a51bdec1dfa4b6c34f831ce7044a1ba0ab50882886393c5b714fd3efc762d6d1c9cd51b8972171d998ab884658a8887607ac9b57f730238849806920f2a5da51f1b4247ad8ccb4f6cfd44ce76b9a8ebc57a3593574f8640d553c74a3fb4d36fab9d6cff6241f6d9c48488799b384fe3d8a3b88ec0aca5f8978b2194e7d9ea6d6a0cfd5b4601bedc90cb63b4ce02e03b736bd5249fef55a5259d0001d4a78ec392e3889a6863fc0c9acf9cc2761739e75ba7f940e424992aa9e63609df63a6c2cdc5a15e02e11dc4248d940275bca51142c6602c\n\n# tcId = 185\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 15e12377d3c5d50865371a69fd5e9f41ba3eb5ab2f9882aaa1729198dbf16299572898e6897b615d7c70d57719591184170321df750358f6b6ab9e7aa5a2e150a77fc4532b6d23fadbc1bb810c8498ee5ed2f8708faac2c80eb704ea65244f731e85e82aeee3c195eb01de1dda86bd80634b586118c1f2c144809f527a4b522d20b241c8e50d679506e7ce8f016cbbb8dcb57fe6cdffb860f0afb090b5007f81c61c87dac85fc0136477823da4011dd65bcd6eb67977091197ef02a1670993113199392b8d8173c971a03de1e1e15872188ab951e21da015a17959527be12fed5fe4cc3019741ede5706c472fc7befce0d9dae71083d61eec4679f3bbf222d75\n\n# tcId = 186\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 1365fd05a76a548057742f631e0d957c020f670c74a339c4fe0d78aab13b4a960953201e12d75a8b221c0f30be8a9364f8925c6e1d8717222946f7410014b85eecd0ce632147798eaab5ffbc43df3db7207ad776bfba6d5d356307f9c8c17bacf6aed2a35979dd304e5400541e999aebeb35049c695fb5f6ea15b2f5a5734e14a90ba5126b34b296c5981e13f23fe560ca11bfd934082fe3223e381b24fa17677ff85da1709135e150af32c42415eb954746c0183ec648b7aa2f25ed94bf92afbc3398869f6fcfeca70977a6c6f2505b350e8a647affcb203dd836c80f178007dfc3b4e4ca6d50ada50dc73d3971cb055496f7af889ddb31d73f71501f4309a1\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 1fc4b5129a8b50e734dc531aa0b503c61fae5ae5202aaaddcee197270ec30d8d8e9e06ea5a4b83d113cb430a5b275d8273314c094fbee06047f8d9a090baf8f3f57c52247516b1ac84c1674a4788952dbcffc8c4b50bc3ed0ea16f95887cbe8121fce8c425fb0409494d5a511bcdf9a25fb4590dab75c2ebbaca4f66f6c11229f9367c9ede1214e726c8e3df12c764fd5b3b41121fbf240e92873739dfabdee2a634b142810b04d024b48a8f105682b5999bcec61bbb6fbed1d947922ae808cbc5b7c96eac9a7a94a184ddbf789a816202a19ad9c5a16d10a05e86a870eada53fad5d5cda3ece11b304c2da1c6ba743322ed24417803b1959f2a12c92b9939fd\n\n# tcId = 188\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 5c0038ea42c3adc50e88f90780e9b0dab64b67c5507f5de0119c0fd2bc7d7a66d6baf1a47c7994fd39e33bd77b31d85db7f7eb1c3e5a5513a507b8c531be20303987382515d84a403ea3f9f3ed7c1b2fb5e5ca7d94458a7fd6fa6a522e92717510a167dd0cd2d27cccae6f29b3dcbd189448834e3ef5c029f6753826ed166f4148269fbb1785bb52a00ca635485c10abc64dcbe1fd7fc39dc9e6499bc72cc0099d6d2c8abdec7beeec586667af53683412ec0491534af62431d650752aa7da5cea0ceb298e24a5166f9df4cd1a05762dca43c5a2ee4687cd230b35d50d811d6cf33c8cfd49f222d5ce2ff0403f95c21f9e6d6d3c38eff74b35a392bbc50f0ea0\n\n# tcId = 189\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 188571e345ba738adb4d1c4867474faf486c7a4813bb0dbcaf3f051b4fb5205412cabd2f8279930d1038976d5a23e0b064ca804cdd3a5b82b7e8e45c70381386ee84e2b9198206749f79b343677408731853bdeab4b5849abd3e603e612b857e2f63f59ebd66ca977d60e8d66f115394ad06c1c42ca0eafa8f32133ce8737ea606fa17db0f81898de3c3d8f4bbaaf7f6e48aa01424f870a8ecbbc97a6d71f828e91ba3a90c13540c1a3c3c7de2d4708edeb22987574fc9c9be0917cd40b8c", + "75225d71a9b0dc9164d3c194043add6f6cd636a3bf42e0f6dc2f856085ce23e5a9c62f81e120b619551cbeda6e3eb0fbe693b19f2047245281dd6591af89fba425d\n\n# tcId = 190\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6c5623ed04e763ad3bd1f370b1bb67ff8e9029e0c34d81e160c580fe548aed6964d9187a45e8fa87f79dd3d8a94d521f2bb8a52cfc34f76385a924c88e63722a7ca365127c0c56e0125ed29ac2f8c960ddf1c99700a19d42cde3e5e46b96bf319fbeb93c2b54076628e81c2ee998f4257afa27a681e8dbb49fa149acdcce9d55222960d307b2e18b33729a61ecfbb01461e3b159c2c958fa1111ad7b4ea80d8897bfeacaee2afe4b17b9b0c7b19f9c2e394429649aea3eeeab3503fe9966c8f3e6b7f0d5e482d6a07d93dfa1eea617a99e55bba32f957c1472d7605a4ba93669d15365f989be09187a9eb58beb942948b9fc7b658a1c06289bbe0d2e6a1e0084\n\n# tcId = 191\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 27e64c5bc5ad2b95b745e868c21585b53a912249344faa36cc0a963bff4783ee128fa6a8251991c76cedca73b70f7fb27210dc89a93574c2e3a61a8ced2986a1578179c969135656b07502a622fa7c4d208442a8318509f0a736fed1b0dd33dc8a30a5c3249aed7a0aef71ab8858d9f1f9cad06d9802ca9bc125a7fc0354bbb55069d73434b98aa9c7be61fab59fd5c96cd0e64bf704c1b213bed2cfe97e66fc6f6b061cd0a9b01421784c32e71775bed2bb2890c8135c42372f208602ad9c4e3e18ff2cfe24871598803845618308d7956c8314a58eb188e083fed8a11533c933970c2bc313137726273f09e36e827c9e1af36b7ac450e0b544a03eee9a074f\n\n# tcId = 192\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6cb9ed3d4ae69ca29c8d865135a86758317510bb3576086999f6985c9f605376f778e9c5f3b80ec6730be4bae0cd4d5d2361a3441ff41118cd4ae3a3bf875c7725f97fcf32805fca3a1e686d408fcb4695db384a179d3c59e3260b17031f971b1c5088ff1849022dedf2d1ba55259c407e57bc01203a2397c7a9ceaa1053a1a75df95ba6a9878e1e40237642c7a4fed84162f4124a1ad45e6f4b98b7e607d730b872467ccd0079d2037e2d4850ac59cddaf4ecc0d2070983f44155eaf26ed4b57308a44d52a36f8093ed35561130e34708c9a3a33285ebf11cef99a4a06fe9318c6bbeb1e770cb71e1645fe343652ec8174aceb462745d4721c8af3e3d2f4b54\n\n# tcId = 193\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 58f32013534e2feaf9a78986204ba3912715c4ab8f1e04ad4edff544a3c29d80959a0d5a169af564a4bdd5a9ba3b6e485cb76438c3fceaed89bd7d3aca0096627cf2b6135914c7ace9df9a9c8b5b1c97ba2db844c5e1b73d105fc033571ef8e652e4d95bc8605b28a0cbf92f373e2f31a6fc254c2eb9ad944ea376c150b88bb1887848c290d42314f1c512759d25ef7a79d18c8e5f81318d28f9794f1d6cb30be36bb30c6dcae2cbaf489678f87a008042c02e6eeb067f99ede27043b2b4166d46e1ef02cdd26e9189dc2794bac12334e34e8f93bff071961b52e693f01fd875af73784e8d142a22ec9c477890d47edce8251026aa4e4b001d0d046bda8519eb\n\n# tcId = 194\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 1a6de4aae4ad4de60bf01b8557e47a805fb435ee7e8214b2152bf22655e7f3d6c7e090a79674acdb67126a7c01568f5592ff68d4210104ab92eac884887122b3d489055a55a4d7407862356d192a9d7f15edf8a2eb4ae9ce615c594c0f6918a427e5e27e725b292d2109d94de5afd37d1228ffb293c73ea7ca1c6add14e8f420780d2006109a47d04b70eef26741b846a47387d5fefaecb391063ae1af3e77f493111493bfc5554e164dbc5584f74b3fd833e6d1f3d346d17a3bbc8c171d997d06780d9ba149b688ec575740313181de87f371aac306cdb79b2d256deab35b1806f63aaf2eec73099c937a94ddbf706189ee046fb060d0e586bbb7f951e17861\n\n# tcId = 195\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = 7d36a779f2d88b6e0b55fd0cacda1295fea91d1fba45a992befd742c19f3d955ef16b6d2f5e8a98be0cb72f0aa71356c14919d67e546d69d8ff47aa393b8da04a3b73188b0980bb3a638c962940829a6903dfb28f3d68bae1334d2b63b11cfd22baafb231b5b93cdcb405b43a0c6e7a2cbac3c70054bd8e48f458893ae7a4ff62764bd17254aa4db52d67e7a7d1b44a277580786dfd9fb702efd9727d2808f4f859bab9b3da9d6a18fae30742857892d04a3bd001ac10d04842dfa4be2c6209a87defd735000d5704b1f754bdc254fc131765e573510abb5b7307eba62299ed9c3696e88c3a54cbd56305f2a3010b67ce54cf9e77b86ac50d69b8400017e7052\n\n# tcId = 196\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 0b7312cc652255319e75a857440a77c01a73de1cc26fe95aa0d6296cb037c79839584b67684f57d3b2959df2bed426eafb6b364ea283674b5bc8ff6f400298781134e56e080b227d47cfa088774ec73f478602c9e4a571ae383a572fa951e8b9ac66e86a532512ceb862339a5050adfe723f1c1e016a3cb944d29ff6d55f9056e6ddce98ee4a80e998f6fa4d535d3f42ebbb2382dcfd5bd4ed179240c2178019e184b957bceec26283575c00a9bc22f8a6ac8dfb99e85657f33a7f52c44e9feaf89ca7fbabfb947032d112dbc99f05badcc995dc012955a7b3169d9956cc091b69051c5f18b1aacaf30653599068d0ab6d380923fcd7b7c8435b88a7344ede84\n\n# tcId = 197\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 24599a537c2958d7ffd18b4d935ccb1d045c8d10afd74452ddc10f8811023584950c546b9920f92cbfd0c08dbc85cacf6a16c76f6cb52bba27ec14837d4b3861b59b9645bba8ad588c07cdaf73d873004d0c4a51aedacfdce1bf3dd63c68e0f2c4b7c9d4f2027b7f35d60e9e2e9c913ab58a21f054f2a2257f46afa9cd300e16a37a4ee116b43f3fc4ca2c58dcf41a99f10835bb788d27f061fa790ad503a9be81ffc01599edb722aa5787a94c99904993676fde027c3395a3260ef9fc9195c85af4db3f15dfdf03178caaaeffa3e33e5b9c454047b2016a82d09ba7521e273b022688f7af5d885b2942a296f2d1bb666b4c2cb2cca98c7462de5ae85749119c\n\n# tcId = 198\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 0a16c4a930b1abf1dcb5e65a48096dea21c0631fdf403c382de73326642d693159ea82831ee14be40cb8a15709e359d6838fad5cc26aebee85e50320cfd2c4f74da82d243b6d9b4212d2977259f36c5c08d31a75fdd920b40543c36b73c8c244ed1766164f99e2aaca92346705583f0b5df277270951a39aa22dc456417b21586b618043da2ba6835eb46f58590f4c21512db1e1965ec8e39bd0aac87c4473af7e1cfc3eaaf3fbdcf30055fd9a47058ce214aa02c0f96b2492c489c5b563954da1651eb7d4bc6d07d49346fcdf7afef5d9b649e67243f900ccb867452f54f73fed48e671fb65dd4f5508d495df8f54228a707e339fc590a1ab9527ce4f328657\n\n# tcId = 199\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = 9ef084bc6824070ddb5af82344467ac985d82e6de8b5e988f92ec1ab41ba5f41ede314b6e64b0ceec5c9e6800a72d79c1d64ed1caf2179f82764a52fc491e5cd20796f040812e38a15c40a4a4509367de92b22af477b2286cd5ef3587480be05b63c513df02c728c30051ba1770de61e4826282d82ca8d80125186870b17256f9fee25f81ff55a8a0a92b1648c09e9f58ac66711087126c1e773a881a10c06168664899bbf1d0e68f256620689f85f1f8254c59a30803966e55012e28ff90a07359d66a73b80945e016ba1381aa66c490662441ab6d6c19d330b4fe39838780be91c07f74bbdb189354557e2f9524856a466c948d350f57aa87e8e97f5bfe616\n\n# tcId = 200\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 15739f4caf4284e47e7b53dcc8167964f8772bba88a2692da445edfa2eb0f96d2a0a9f25be5f22e8658eda0f9e29881b47229c103bdc0f19f24560da6ed9f8f2c768bac88c19bde510ee301e188f8d86b3ea5d4ad9bc410ded0015213b4044d0b2ad4f0c88a4ea987f5829521a3283214ec3d7e6779f98c29873f302bfc58307e11dccd964fe0f7745bf2e4e92acc1d120342a8e6aab8abc57aec2bcf932efc971532057844758508e00e1abe74c6b6fccc083aaf862b939ed4771c04e2e5f8b7eac4ea4517e3b87084de8eecc6a3ad06ef87f5e4cafd4a1d313fd8e4b19c69493d227f09b72e1b65e08b40837b8c1d275743b699c4a49f3f59bf43e47c1125c\n\n# tcId = 201\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 0f9b7c0622ce7129ec1d6108b3664fcc7c5fb9e38163897ffc30eee20b5e502f64b2211d903ceb7e14a26ec8720a38cb2801dbaf4d86b42aa87347de85a21e3f648706afa774eb50d10db3afcfb1943d3cdf20240b9322403487baef167571acb0a035cfaa6aa1c0be9450c5a36c02373a6a71c19ed3e4f4941c35b4be82014c915e839f31c27c4338bd5ea954ba2433c4003bd2898ae197c8a276b10afac3538049630f0af67767aed14f646e0303c372ff4f97683f543d7be01960f1d772890e290b44abe59f4e218fdd7b324720dccaa33d380e99ca5d5dd53ab5950dd3aef373643e53f184e36b7f2b399bcb5c6a30780fdc2ee9387e6c13c537913910a4\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 3f070db7471e7d6c9d32dc5dd19bcb518fdcf2ef2d48a1724d6e3dd6299cdde3b5ed771a0f1a872d872e401373cdb53fbd7bb92a4a13442059f55bf0522d48539db5b52f67b444046a923c7dae3f07230d602bee9f29afcf4880f123d0363de4efc18f6e4fa08610d4203dca4705d26ded912498f653a5ac8a811068c1f3ba547aec31cac73825540e208438e22ee61f20e0506ccb0d6be3459cede4edb91916afd453eed5088df58e023c6040d794e3cf7f531fbb8b0200939ef7c035320356c491c0851a598dc6984c8d98533172ecce1622b7010e49083b5d10ad71c7bfd089ee5695b42eb263b005827928c3f93aba26fe7b6382df948ba761de80dfc187\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 96a45e04e0fc9a701e680882fdffbd56f5ca0067b93e59f06fb9be63720781790ddaf2d6a981d669e8eca75d5975203c77bbe7cc0e4254cbe40d5d59145f746e3d14f1e393600a150471c4f3f288ac40b8d53de28dca2537dfd1265803bfce7", + "c423179e3483ac86e72865707b0e9b05a8f6f932044b90dff67c444286e8c9cab31df8f70f0658a4497e596526572645b282baab02462e5f34656b0d22d94370339cf52408f71105b668f6b7c37020b12e807c05848b627246d94789e2543a9f69db7ebb1172203c00495ebd64f380ebdd1a1180ea08a323ec88972263e7ee2ba644ce3bfadf46634fae4a2e149bc275fc798f021541145cb2783474bc4060e6d\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 038c6f8d890722a43126f4d9a053e45f2e10447a62cb931bfdd8b14b342bf651482fc194165853fee8491263e7a7170d13d56eb45449fa09c3c2b2df0dcf51e823d24f7533a348ca00acf910fd10fe2dd9b1ba5b46876763db3a83dcf6311cd9abd02e28331b433961c55c2fe1ad51ed4a4066ed83a0f03b619c411dc8b4542297555d468f6f083331c55b85c89a44e0aaf58c7c953d92f0797b137253061c0f218d48d5cd30d7bd47c7449673304980979d79adb93b91c1eed4f046b45d05f1b3b27eb9e62eca141fa6ac866ad947ff3210987c7d75275362ccbad1792d68d3b8060c5f089aa2a07f06a164641ff5288ac2408bf4c3a9a934f264f962fb9a43\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 682f3723b4d560faaf6f6b52fa4b387d9b94bf4c436dbee647efd892d661b601a4df467e192b489ba4f3d7a2712da2b09cad25cc3aab2af21ab3ba0d51503c02a577236822e31ca2cf382063d60229003128645ed54ba9813c1de735506a1a63ddda51c3320f60151eb383e56bf6fcea8f6def400305a55ff2103d3697922833eaef804d65f9c1ade60fa5b69eca886b6d472626d444efb74397d37d2182df0db192d382566a6cca3acec93495a61a0802c1197a062b0231f3aca1d1a9e1482dccab4198a0a9df40aa1b354a4e884174d1f4f517776e1054286347623e3b123528b68598dad94cfc79e7a418493eef4db4af8237950018881ec12629f9cfdf79\n\n# tcId = 206\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 321fabda209fa9eb11a555f2d5642274ac93f47dc6b09dc98d870117945e0ec326da4cdd92c9262885387c9660bd5101feeb536bca7de135d517e4c9163672c86e9d47c7ca05e8f6b4d1a472a2a91565029909bc7b007eb39e8d6e6a28c1b80f7c289431b144c99da8264420b8a22ecac431daae7e9627665c64e93c9fd38917d27aefcb74015bf2b4aac0abbf3aa2b1be74e4ea28b4bab05c5181097e50b56e2f3c2143914780ce7b4861dd142b0432f05d23ba926c51a91cd875e7cbea9e65ec7a5d2ef9128eb9857b290314be39b7b9e102f3d3884179ef16fe98fd9ad72e9dfb62a8a5ae81a9f7831159fdc601101d20293ba20042a7736dee9448077c0e\n\n# tcId = 207\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = 656c5b616e74f4337340a6ed4db988edaaf677dda18e9871806abde19f26231ccadb30ead180ab3cfa27c74a7ad40eef610d5c99dbc321b049417cb9a36b27026d63940dc05149d030d0e9e34e291416ec857f9b4736f9100a691f8f10a6023258d62e0e1483bd03166fe7640b21de04a533f0d5e9c726f4eda195db54409792889712eee58d56d0b4b2e70f90cb8edc2f55792add333ce591425a0f2a748e97331109e677b72ffd372a88d3518fb7cd716fcd096e3b5393fecd86206947168dd91559ad915874df3bad476e4ec8dd97884190bf6356542878c19e3ca7c7748fe7a639f863482ab230e5ac01ae85e4ed26036ec281017f7cb2f41cf02e6877f4\n\n# tcId = 208\n# modify first byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 22f31138d107f7f74ce012c46e9ac322874648bd1e3388d588098e952d7273ab97d1d17f265485eeb2ab0521b91ce47cdcb74342571e5ae103d228dfc1b967aacb0d4afdee4bbcba330abc3ad445e0e7d94ef39e05b4db732240af7ef1538859866750a039697abb79ce91d377a9907271ba865a64d57c4db4ff886e4e9b157d3e9ada5eca127478483fc7548abc1aa27f8ed088dd437ffa9d3959dbd8768b1d1c35c7bfa390d9aa6e8554bb990ac89da7e49b4bc086438be7670a5f9b1871491e2ae8a23f06ca3e7b87a7fb87ed0bb5e6fd64ad6f1af7b8514115af4e9ae53e35ebe90a5912c45d6dc3aa4b9c7c46a3b4d20ec48a7fae3a5ef8981e965dfcef\n\n# tcId = 209\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 4142f9fb5e58eb4ed8c1dab74515c643b9bc4a013373e79c0280547fab695e88729600167ceba6460d7fe8bb2885d6488f0d929be7be7528910828106f16cc5e39685450c8a859fd4b65a383dec054af0756e67b2ee0b2ea756b17e602c9f5ae20b062c5845596c5cce1b13572f54f251e2976c5d137168a6ade05a14227f719bab6c40da8e8015687099fe78f79eae35a00bcbaa56729f60b8ce6b965ad03cef2c33c3519f07c1dd63e6d199cc56be298d027231d0b6e8471038da9f26474adbf28d52c6a582617046cc678f2cb19abe5491cfe9c8e396477fdd878adf244fbc19d78e9419035f3249ce52dbf281622df55fd8b3cb2c5131591e1d565f4f0bd\n\n# tcId = 210\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 66d88b8adc0caf4ee0524546be91a69aa3a7c8bb4f68e3a199b8d4b0a0cb52158f785f9ca26fa30bf5827524facff27b9f0b1ed06870c35033bd55ff386c4946facacd0bf3be3393777d3043e6050e5750cf6da7a7f4fd495262158dd4f6b0fbe01b601451fc4f090d03eddba5cb140fb01a65ee6912a8bb594f9e25a9b73608c058705a0a41b17ecea9e0016fa7128ddbc561285e3238aeeef72f8133ea6fdd755e3a910e2e2f2c4c5c7e1c7f608f5796b943f2e860f37bb311628153bc7baaf11d4f33e8aedde79f4fd080636739129dbe2a951725fdee5f32e471c9d267999d9a11bb13ad40b315647b3f7e91c373c53f845ba8db9b30b31d6740da10964d\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 9f24ecb03b77a906c8a865182b5cf5921a98f8002d1c59f7c398c469444776fb38d7221b386c5bee4f72ca5dc36ca1b08c2a21947832c4e6e7e755faa4ad61fb1362cc084d0adbed10ac8165f5e13eaa1f6c77bb2e058050b5f902abbf0041c1a3a93497a95608d9dcb5f7d4cfbb4c037453d5558f0f9bd2b1d3a769e2b651252e9054071dd34f065c0350524a39cfea3bb0dd10620288f9e5ca0c92cdbde4277f9961be882ae2f07b1b75f279fb48062945139cb28ea464b4e00b2a5259aae4397f0ce063321df7ef6045d4dad8ac0649c992bf2d22e728827f4c992045f376cabebe75e58e97edb43991bcb38c66009872a5d5c235c483d8d5bea083c6231d\n\n# tcId = 212\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 16b5347808defc31a231c28edac36a3f1789d4c549e8f5c71e2fcf5d5304ba437b4c7c0eb7ffbd80f5c5b2277bf24412b39ee3e74c368517717c438bb88b80b12ad14f7295ecf8841947e5e7457e66d2f869c30d28e9ac2019d7e5eca6229812b649c8b6b4ccd4e17b254e7ab496aa5325525e7974be348dcd53c652e6315e670236bbbef2f501e246631b735c50e388ea3af8bb0030fb7fba9743eb70fc6687cfdb92d46a4537ce88dba96ef52744e22fb7257af1538e3ffc4e2d9ac9101d6f71bc2f5aab71ddcc73a6c635500fa0a9174d25ebcc85dcd7dd85a7d2e8d3138effd171176bbdf23296ba3df630ee42185720ec141ceeaed1681a6ad0c156e099\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 57d9d9356676927b5b073de32f930db717a920d484b220ed784cbe2805abed86a27ce84f3c9b5c00b5c9bd146249ed776b02c1494faf4dbb2e435d0b914bab59f3e716121fd212a6967f17b82bf1f96911e126d8251279ae28749e24ce8958d54b126e623b880c1c80d15b0c1f5bcddffbca8b957276fe73a076dcf5627f54f36f35195ae5a777479f945abfed5298531c581ae5f71d2ab6fc34aa08a84d53a03829e756f21cb4482649ada260daea8befdaabd2addedcc5515dc439059739f13ac77d1049fedbf38dc00b11fcf2a1432debdd694118e3cfa7ba1cc6ff716255af532c80784fe570fd5b48cda8c50878377ce4503a8ddfb88e7e3dfcb466b8ea\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 628db8142e4a89ace83835d484ff84f40e70a0983fc97ad5874c2bf78361ae02f925b41e6af645c0c5d99c3e59929146b3e6de62070cd03be2eaaf760874ca6879b6cd695050bdb8a6c0aff0785918d3b83d214bc1ae73e3207f9dc7ac550cda509dbceb5309658fc52cd1873d747df01ba52a28b09ab4c0eddeab6108e3b75740a80369c0a3296d3514af9a966c5edc9127b88797279291f1dcd3da2a512601880d2ca98cb20d512c0426140f30c11dcf49e769529a72270542501961a5fd3fbde56af7d85bce7521160a95e5388d941fec7a0f312ef9efc8382676735a6ece2d31716e1cde8bcc86063741457644e0a47474f5aac76c618fc960dd9c6d3f29\n\n# tcId = 215\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 9492ac64c45a6ee14fa5996c865c18a0310bad275a26be5f4df7eed2f49bb3fb76b222c9f7e92d413d00fcc9cd6dbe590a48c1250ec6807ef5d231585c202934182266f9bf931be91bafa1ea47d0d6dfbd39b5516585142cb52daee704a6c36f5a216b5e42a20b8deaa3e6d8b26e97cee7ff4cbe4b72980edf50283a48034b1b0deb36730439509424d7a5229a5dbe08005f372057b7bc6c45d7633d509d833b90be33e706b023027165e2be40a165240f28f7708cea38ee9fb87aeb8ffbe53637d6f652755f312038f6dfaf5db3b89df86a7031f4d92d1a1b1886fc9594b8e2c29135aab5e6a66ba428552559ab9cda9d915de834505297471145e0a64fed3d\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 3ec58a94c9495ecec016babf77fa114d78097e484840d82c3cfe7de98d2ee21b499992bfe3a778161e781f89d20745bfd1ea6037c2e7fd67c3f95479315dda5b87fb53badf0b813f28410de6e79a11b351b1668586500917feb44aae0fc18ba6de2bdfb6444d89b9b8b67490c1f2b81e3081e5c5c7c39f4f8f9bca2ae2a9246465610a9e6a5a67162a3a40857fea59e128f21903afa9143bff67df9679918a0f5c7288af9154f096c03a13601db5724356131051ce39037c6b870bfca5198cb9385137b7cf5383630b459cc6132b7ac611d13712f91b2911b9f8526e02a8c61acb7d184a7c6d86d6246cdc6bd13174b6969e5033bb90c4abaa907968edeec362\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 73225d8f91bef922f7fa479aa9cf384df5cf30ca893ebf8be1", + "9f09250b35df80cb8fccc5e13e550b926a852d40c6ba0edcf9645d0965e469d38b1212637b1e4041e47ab1af8fe8b738901bb916270061c1032907f6240f33abceb57dcc93da9cadbaf1c26f42922b3a3e0b407bcc4927658d4a465cdae48a138ba7859c303d23b135a3413751f25b108b0058a313271343ad6f0b81458ae7b050bfeebaca51891d94ec9fc07a698471ee3a0a52fe61dd7c028a70fb4c22314ce3f251a21db5e13c8514809ddd0e8e4ed76a01efd1ccd10f73e29fcdb8d8d4f4c60341e166e376d8a60d05816fe1abcb30152bbfbadc9172ae15e58fdf41e4bc53f39f5b0f477b\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 3d1e67d3b6f474f7e23ee14223cf10d3d28beb454dc7f7ba972bb3eabf6b66eddf245f34c2b9a2486c693fb193891a084bde18576b50b17dec8f9390a8d10dd80a4498cd718f7134ade41538559ab1140e28aa5753bba7a60a515cfc6aa245d3104a598ae06cadf881be563b42dc138af99de76b080eec50f59c0620136525a8b4a3bfd861a24fe5a2467dc23da5b0a7c298435172e3f280fcf14a2ecac790dbf1907ab0670974433861a2ea6e097feb99827c9626b7464d1fbecd7d2d939db1474c30d9be20b77b1adb92094fe1ddd55c1f66d8cc37bceb1460a120fff35dfc24a7e1e3a0b7f7ff4442b36d147ccb635513f415cfe6305b8b713f813497e6ea\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 891f1354e36c2b7faca0981c64f249f73940ae03da86f0a413a971031b00c2bed14489345225fea317d9d551cced9c6c6f6f7134cb6bdca1b0319d931a1d7a1e24a744eb98fcb0d3254660066f688531fde00822917d07deb9d78aa337bdc2ca3a4a050d8debb6c1283cb90e6991429887311f72b95bf3b18d1c5cd68f65f8ed934d9e516e2a8503613fc4dc2e786c36d77ea2d5dff75c26dced572298f27de39459c55c6bec73295f20cf1c6e876b345c6fbb2ff23adf52d9d4ece53877a2bd6e7cf3a4eae08b1b3ce8dc0468614e119ffb7547f1a765d9d9b5d9d8624ecf3b836dce490c8a36a6a60e689c0bdcbdf774eb60fc552bc3e27fc9abeb2c905ddb\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = a0bdd0081c1e7680839c646417b69a6fee16c94cf7746ac21ab410ef83a78a53f5b0a51afaa2e4a1ee9b44970dc3e8229712aadcd4cb2b92684e2592379b581b2aadfb3c4781f543d8b80625a07507c2ddf47937a27e05044c36c70ef091cfa1fa9f2fc552a9ee1eec07dfec597de11ca1a67ba4829a0f620828cdd424a079258dcdb39986157dd48d2ca214f10333c6c2b73593c3c72c0b22a4d374899e949313523ab9f2218a03d5f06ff0dde49e8778a076e3f9938be7179ae90b4b068b04fa507a842c7966d739def7a22ed70901d5e8c79b8df7498fb684fdfcee8c49627a38608434eabc03eed78d935d34830fc3248c90d62d743fcb1f633914f7ccb5\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 46bbab5068ebec737454655b811dc71877f4b5cfbfd90b340dfe549942d2493114873470f91f1bb342a39c0bf614268e7bc9f5a68543d57d8ee14fac4b3abffc27bb8d3dbde46ee6cd171b5ea32881f1d037e67caf954769e416c8dea94b7b4d71af3aa2ba321afb997f2120c1ca4ca53583d85a4ffa13552120ae24dd41c71984becf4aa9234ba0a5d9b918c6bd12a85be40d0e390b88150c1635357e891bed185482420bcb2c4f88f21927f4f8e81fc96cdefe82e735c9a34708d5f225e462340a4c71dff89da993e821972b8ac963aa8a73271e602c6f23ecf1f696bbfb3a2bea774b1c058cd8a3fbd8a4a73ddc31a607c9fed0052e3f78766f71dce75773\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 01ccdf739b6385b875254ee9a25872ba1bda2b87cdf57ac741604ee962632e17fdd32effadbaae5ba52904a731925debc87509623d95b0ecd8e97ce7af10f1f9650698d22eeac705a7fff23710c0909d4e8a736a991daa074e32bf8564430ee6f5740df310cfcd3b7bdd98c4c6a1ec24f08a90a015d64ff43dfc00f142838e0cbc2253d8d4a99dc344e6826c79cbc0983147152b0777682e85fb18a9cc0a73d98566aa856f43356eb611ed5b5ae2f551671731967e04aecf96b751e68efa11a3c2174ae0bd2a14271268437c6f60c49a2c1dacf413b2a4f1623502be024488006abcb6680034efccd3104e8c685e0da25f35c703fe91716565241bbaccfb3225\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 2d1c606370259b0305745860332edd9caea333c221c2d16a2e547892b8e4b1aa47263f4cee9e7da39d0cd793d019ea529224977b04f7173e9bbd0de05745788dafb67d2933bcd462fe018c960c67808abd296eeeff4da2b17dd12501402701b4f44bf95fe46297b7fa3c722b24c74b89db2da74f9094fb558183cde9f74394f26f7e0cd51f373d259646bfa9cd75fdb169997ea982624254db25723017c9247f86490519350f9ed8af39da7fb181d7864b05eab70b9b9d0a965c9122b38fb1617fc56e38d53a8eaa97ae0baf59c5a48d0721b36323b18ef8cd1aaebeb5fad6dd09a0df75fa5eaf28bcff54c044933e070e220c1152762b4d81cdf85220e38f9f\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 2522f982c80fd9e16f2cc67c11093131335a170beb7708105fbac3c73221cac832670450922364b80577bf5982921887adb4999a891c74164ad9ac62620d0f944500ca44f15f1e4db806b6306ecdbd9836370daee023c2d99107142046dc94417027e717b34c49af2ebe038dbd3058ebd6645248a8f80d70e87f5e247c1c07c2518015e40414fdbe4b50065d1720b9ab8100c369aa49a57eeb4939806eb4ea87fbfa3fd58255113baf74fd5e76615c0d0fe5bd6a0907c4ed3ca9dde622822f8dc41cb46eef3598ffbb0f70bbde313260c787ffee2fa2bf354c15e12ce9fb5e8c356aeedc2cd6cea61862d2bfbdc3922da1fce1947e76972595d7bc96e6cb0931\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 4b140acb262c451b0761236b926afa2829e8a095828f7dcf196eaf7fa46fdcf7fbcaf194aa3000ae8d3dc7dacc26952502b1558a67fb692da5fcc7dbf48cbc5260e2b2a7041fdf7bf46f531d4ef48998dfcb65e182065535aaf182ae6abf6e819e7d96ec86178137a3c14383f89438ab35f0dc7698e1811c415e163f8bac5435dddba5db55aa6b393d538d31b34332fcc34ef8e6eb059d4cc453297d6895ba480593a5536a4e553a55417295b6f6798734df67e739e54d3092de4f476cc0f65aac6950631081df1116097a7f6a9d00a1afbe0ce6b2bd32ef22acc95219f05df9fb7e9a8b391e6277cffeda298bf094730f5663172183dc5842056de36137ee90\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 7c408d5f2efcbcc3f1c6c2a7f14eab73124910f21e4a4b90a782ec8ee5c72d6e84c43bf76fab6a4953e80e712d755489446130b46dcf8649a316868aca5334afeb7c957db77940e93b4241cdbbfe2a0a31a2594c93afa016ea3b95c6c4af1d076f7d7c1e6d66e3267eb05aa4b52014bd8d9e83f0183a9934963b4e4778176f0ab8fb18c327da3ca10c03797faebb4a0b862746bf19ce76ef214507db80b3497e6b2bebd98087029c458389166364c1a81254e8684b37209579c8d32c3cb02ae6e319e12c30c84422df2e82f99fbe37864f6badd947b4785011a93562de2a55c562335afa67b0853e725f2c91f0f49b2a28bb32bd179d928ec37428c41bf631cd\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d4\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d6\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 5e91b5dcbf02d6f19621d41a83dc8f15ea83c0edb83765ef029b0acac2e1ec8918b1d2afe1fadf11c48d27594cb9c01fed79d90e5d5a8085c438450111aa7d9fa39c2345b14fc3c2cb34128f86db5eb00bdf8dfe38d61f29a41fe31342e7aaefcb4b122eb5d63c2f5c263c8df8450e9428ffef974d535818d51dc03a7d60c8b2d16c999ae46d73ab40515fe601d9b89b1d09c6d60cd51639a97c1d211e097609ba5e8c319c6fbd21b34a634ec8fb8971c5aae21c70b847a4539cc10dc314ddd8a9629e8a0e51c66c0cb61fd1f7228c01c6769190abe9bac9a3897800050014358594e0fb20dbb458b12aa1346826cc9f7e9c5352b073d62853dafe77c848cb1f\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 57e8cc1dc00c07383d89a79b5c8e4f5bde2a2ba55a3c7201b3291c4d805b1b2eb36f8f326b542342da180abe508669bb6cc2dd54e327bc70c1e317ba93a0fd21e7fce22a0c597c7420d1d5602ac43d9348ba3eba561f250e301ab955b0dc33e4abde32946b9b3e86c8bf07a44646ca595960bb988fef04b2824967e9da8b0264f1da0659373935313a574b5380f0b54ce1bc0dde423bd3a54f6ae5fafa772a55c1c44eb6edffecf13e6e5e1edaf87a79e338577304141fbc44f0e9eeb286f553f879addd6e12e436fa3af51ad53a72f2679f0ed102d504ee08706fe111eaee49d880d1a0b91924b3b79968ed0f9bff446dac199ee89b158c074927d27b864498\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 68caf07e71ee654ffabf07d342fc4059deb4f7e5970746c423b1e8f668d5332275cc35eb61270aebd27855b1e80d59def47fe8882867fd33c2308c91976baa0b1df952caa78db4828ab81e79949bf145cbdfd1c4987ed036f81e8442081016f20fa4b587574884ca6f6045959ce3501ae7c02b1902ec1d241ef28dee356c0d30d28a950f1fbc683ee7d9aad26b048c13426fe3975d5638afeb5b9c1a99d162d3a5810e8b074d7a2eae2be52b577151f76e1f734b0a956ef4f22be64dc20a81ad1316e4f79dff5fc41fc08a20bc612283a88415d41595bfea66d59de7ac12e230f72244ad9905aef0ead3fa41ed70bf4218863d5f041292f2d14ce0a7271c6d36\n\n[e = 03]\n[keyAsn = 30820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keysize = 2048]\n[n = 0090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1]\n[sha = SHA-256]\n\n# tcId = 239\n# short signature\nmsg = 33363730\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000989e7ff72e67e680bd21d5f966e4ad8a48c3592dbacc4a2f035b4ef4d17a2f25f8a9fef7e78eb99d76d68629ed02d67c43c4b7ec8c3badc32e3d0a524c326537739b0fde156723b27c23ae2b09895e470c64d700f5c\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 30820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keysize = 2048]\n[n = 0092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c26712", + "89bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d]\n[sha = SHA-256]\n\n# tcId = 240\n# signature is close to n\nmsg = 32353934\nresult = acceptable\nsig = 92bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240b8bf4bb1a6d0616fd5be2f081dc9ef741a9a4ae7274418b791432de470c4556463108388e8e8ed5dcebf3558e4650c2ac97c86fa682176f09b5dd8cfbf15d19c3fe4f961f4607c12cb3dfad9b6a0e59c92faa1fc8622\nflags = SmallPublicKey\n\n", +}; +static const size_t kLen151 = 152041; + +static const char *kData151[] = { + "# Imported from Wycheproof's rsa_signature_2048_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8rc16\n\n[e = 010001]\n[keyAsn = 3082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keysize = 2048]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[sha = SHA-384]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = c5b6f5fd8ea320880e9e27b0026b1d63bcd1152c72855853294b7683a759dee042be8bb0c350b0c31aea76e1ba2c6d79920c3e21b6e97b6cf46fabf92a701a7555540dd7c325e7c657fd9a079bc5a58923d2ccaef51014acd6fc6e5296960362a94688f2cb2675d5062c5101c3875399b95143511e6ea156ebbdd32c9ef8b061dc66e2c912bf2ae37e3ddcfd5f32a72412db8ba7a1ce3b44ea4c6e2a858b3f3cb198cf41914e4970b03edb1bf81f8abea6371b469d2e80883d7760c0707dac808fb55e588b285153b8ee5c32ffe90197991a567499d5ed62a6b810581901cf8abf086ddf84c10b03ad6845c977ec72d02028308cbd19daea2668865f00a23ab5\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 0e8742af2a1d82e99038a99a09bc182e21317b690004fcf8fac5a4b39c6c4c6f32ee0395a42b8aee31a7af7cc0b0205087b4cbe18e791c1d5454faa5dc220d3b21e44822d39beefa5e90654fae46205631c4691d3e78221f48edc14e342ad42dbeccfede07420b9352af9e0a009c49cac2b4564732d94495457dcbd2f67fb60fd77080631cf38b784a3373b66cc2d1ae971a7422562c2df5f2476983263f6559a8fed69c2c76806f8553b5f1f2239677f1a4a3f5f55a00f8391174fabd2852503c9dc130ba219d145709a4f045bf62b2278d1c9c5c2e7a81f47769b2a11b18bb8648a32eb984ff7aeed9c0ee1023886e6a402812ae6552b03419b4da25cbf3bb\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 943aaab06755ab012b4e062210ac3e2c1a455ca30f1c65beee0f7d54384e4e0d4e390208332690fef5ba0cfceffbfe28e6b05a1ecd8bca3a50f9542f17c39d28195a50203c7885195c7e84da26436bc9fe7fa98a5070e0a1b6f51d8ac7d2734fdb5e0b32da0df6c6c98311bc4d458b4e970412c67732effe67e083123bfc69ed164090be3d41a37bde52119da16a4fc7fba5d8d3ab905bca7b1bccf4699a8abea19d0ba0659fb6c94b4ec6d06fd086958f443a74a783b7440f6060f01cb9dee89f32c2f6fee61e3d61548fb6b3a0f6b649cd8bd5d5a5bbc016f4c737889c79d45c41b5406129066e259dfa06fa2ec05cf9330dec66ed4cf89b80b0f5dcd22c4f\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 682272b36ee1a6c7d4d73f0f3f153d8e84e2fa4ac812581fdda214a7b45d6ff7b7b3db0c89da96ce2e651fcfe25596761982799289b9fd2d69cf122e08404c9db0bdf6f8240b1545e76302a5a401ad56522e0a6158157dc1f9445f8cafc161b25423d35671d9ef714c5d33f7fc155424ab2ac34e0cc93bf2ce385721dacdc6251c7e3a5618bdffc8ef3f278477083a96de83303b9d286e64d8297ef0948b996616d34036bdee5538ca0c06fa08c72f03739fbc578814b402671f5d625dc9050d61b389d1f0a32011ac0dbb53b9c2980d315bc16e2272206a1a955ee870df725e78a7c6e9f793f5428af92c670df8e3bb0d567699714b04fede399f49fe19d0e7\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = c86aa0513ca2e6bb14892ae983212cb21cfaf702eafa5adcf17dfcb7ff53c1fc87d65001c639a20167ec97448463ada9b20d40d3e13db23d8048e38e5c05aa42ecb10d1683e3f64d42837274e1e021b3523cf763d32ee69f92180a9e3e6c6ff891b4c0f9f30a7840fe2524bdc0e82b0e19acd041554f4050f6d917a4677155c6e7841639cf86b8439a4a1edcb24ea272775dd9287291cbdaa79e97ecdbd97522e250db7c8d32658891a0dfe7fd079ca5a5284097ad505c83bbcfa82c0ba6cd91abfa0e21178981cd5c635433cffce413a3e03c7afcfc2fca37c7bd7a5287c13813afe3aa5d051d386e4250ef1617c0a58a24caa33e5855c32b457b1436d11d94\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 801ec289191d6f6e2ed3d7ba7d8cd78db3add3022c8387f592080705eaec1dca415a04e09d55aa6a8c90f11730e9eace7f0ef892f44377085fa8e72236b160382fb3bca71b71d775e4acd75c0ac133645c64517909530e0175a8f06236839de7f7704f39afdc4720a2d94c258188cf9f0794c279c777e5ef604a31412262cf871e3cff8a0fd7efec06eb1db05b50910733dc8d8783a24c07871908e711b27d0d1ebde4e418ce1216a5bc1c8c85d82fdd2b8bb9f0b047e8b38fcfb80771b019d154a510f2231c6c5becbff35f2c5b1f1a5d5280d0d8b0309db5294fd99b1afe576bbb85e980c4e9ea49327343084a6c29743d3e48316df0623776e98acbc84382\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 6ec812ff1115eb60ad2cc1f641479aca46c41da5d8f7b9e59b2dbdb8956f5c3ada3fe162c54bd5835f5e043ed3906a10a982e177f5f68c94ba367e4541b75117dbe18b7acabce6bf7bad0bddc4a1f98382272a655e0222ce4a87dac7f6a2099ad9996603479cf8454102e7ff703d11623cd59e3eb2df8a303732851a119d6c75f7503acc10c57f2cc418863e1b2a5305688c03fc9971334ba06541cb8b3cd192bbebfd5e9252517b17d2b8a3ddfa1533784d6f672e14737c4b6bfc38162ecfee2e97f0a29c98bc6709c922f42ed959bc3cf43764627a9beb32e53d2b35da63942006787476ce89abb7a82ee02e6c9c80ab777af86c1a99c65423ed75fe82acb1\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 127eca0852f26d216ffd2779159e3e3b742a830e3d4f29e9aebf4d8bbd45eda195002aac8ae5d10cebbf849b026caa37e988a7d5c6e3c0bf4f6da974b31a8139a85cbe62e0aed71b9c50a5e3bbfee50cc465d9a5173a33cc2952893e89815b3d68a2269c78dd91d3b8a9d9fb74bed451481267b797b28460358adaa90b82304a6182a5d79e113808adf31100d0bd943608a3a58c2561468aa379127cf8891ba61c2de46e66a9e4d86da3c007cebbc2ca0b8bb66f29b2205a3a45ca7303c0db32efc1e0e254e0735953a91f4927901cd78ab0ed2d047c822dafd5bdaf34cbbcc227e7711267785b68c2f9ba47ba108ff7633d6de61d453acf48fad092b28cb70e\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3c1d887865eccd6eb7d794756f93819c8126fb018d483b6cea67e10364d2455505e228c95106d493538c60d1203ca317aef7926e09e088a39e198915fcaaf316346db4ce62908464838efb7bca14041ce4477fd55422b94396dd79883f9024d46b8f9838ca7b5851e2d935329365c917ca03e1c44443a9602ae1cfb95ef89d9c7315f7e0b287a39d8133243c75ec0303339d88e937504b118ecedef756f746c6a8b244d86ad9e02d02b24ee5e616455deea86beb334af9e294289cee20a7a135448739dcd48400da80f15e060c312d4b981d63dba827ddb2751a89bc421ca600dbd5cc8915a1da43baa34d09e668d2cf5847cd55b705d5e7fb7d355c42c88d4a\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 47eb6558bc35fae214cf871eb167e0760a9b51309c805d7439bebca18ba163972f2fdecf5d1593933341553971b3f529e82850f519cd60597dad8a5920e567263995f7e7f348414920442fd9e4b0ec3b95fab248261913e773b05206e832ce35e5035d6f023a3d768e85b9588d9c5ac4c7beeb56ee14cea7744daa600064e9be391999bebc1786d3d2fd0a7d4ab0bb47ffcb0f3802503a0b3124797866c5d9c446025e21622f4d1cedfce4ad930aceff37e2e1f95dbeb1d4f162e542d1e6e47486766b8d6e0db3e336b8eba57a22f4e44a646ed6ff8bef24394c23059c8c6bd9ccc28a355d87d9a39270ca88834a8f0baa50af19a44aae9d5fe3961e25a9a070\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 4b09bdf2e03a21c695d457aaff214b4736034dca0fb9cf76763d623d16f49f2735fe831f9990f9b84171ebc39f5d533130a9b8b04adf332078b48a7aef60355683bafff862da9e30852e1e3a323bc09838679b687a6615df4b9a71dce533aec693345c1ceefdba7246eeb49b64848359b060fd08be04d4446241573d3445abd6bfdea24d490a14690e50920948998cfff43ba080dc20691841a739f6f134285eeb6c87f4e1b67", + "0f2556b83b99ff76d873033fcc3953cdc9857a7352d3766217d987b03fa8fe6f90a4b7cf8bd55ab44d800a0c245ab25e91b54c0dcde0b3adf40e3f2bc8776f501fd419713a5445ddc0cd0e9c414ff30f8987071857050a12837\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 756305930024f3b1e17696ca04fdf72445291c2c4737277f9cbbd6c8e2036c3705e1630d47a6a4b5fe2cb1fd071303e4c70ec49378530cd811ee2dfb5f1da6aa66cb57d62e9a96d88c6628e23e1daf8ce536da9acca8d1068e1e430e43b469a55e311fe794767131f53e250ea99e5eb6a5f09e37a0d886ec92e0dd635ae4eb1bdecfc9a4b45b8fcc16245fbc5fee4e876944cf663a56bcc68f3e6cb79d96571eec6057922dd0841aaa126c6db7daf00c373ffe23d8dc7f14c2a294ff0704e5d7636c9108b05ebee13574b63362b547e4173ad37328241fa5cebb7ddb6a99dc52a4be44d3f2e0cbb823f02352fbbe31a3646e0b3988ef0f77445f4e5cea12434e\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8f9c83a3a017383a5cab106589fe076c15802729be880120b956dd69d36b822022f58f6486cbc9009fceadb83b92883b281e3bd998115e522a1a3199b5773845aeb54331bed863baca87d6de45f387629bf6f328e8f3b0698fe2e96e4faa95d61d7afe105c15f6c3d11ab561bdefdeca453f87e75945ab1746fcc559fedad0be2a494b7b9b9c0089e131f86eb6a0a422da225390ada5559bc64d1990f94ffbe77d00aa19cf1a1676a2362596b32187229180e5e8944173606f54a627ae4457e748c481c3cbfa7416f381157684eabf87490ea96a8a032b1c0c316f99eb18b9c30192094fc8606bb86bf5445c10fc5e9025737fd52b779a008ae60e504b92c3c2\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3adba4b8e5c7ab81ff38544b299ee14cdbdc7d44aa4592fd32295a0e20ebf23d20cde4d26e752e3fc02a67bbd3b7fe927d2388d27f8d9d399ebdbceca97df4b5f1a4d5cc27fa5af84a8e39a32511f36707e8b23b6e38cec3526a15e557719aba13237620222b205992907f1e0b7a52cefcdd63d7f9d951ba528e707d179be671728708c1730096743494fb0bfe319fea4b8f02595c70dd831690c3e692c7b4f18f77e20e063d9d634b966cf14f4d110af8d7db642ad1f952c498d78f27838b84bfe0a9f89fea32cc243ac65e0cef7be743330a19c51a13a747e81d341d17a9204d167cb4006210cd8c7d6cb43d347cf80351041f98efe1379cfba9654d4a3e54\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bdca4de4dd3bba08516ed45291cac24222f7978f0cad43c92cc3e11b3812ec5ccc196a59af3eea5217d66527776f630cc648d01803767bf1d97e341d6e89f2a4c0bb4ddf4bbec6e68b0e608119d3b41a2fd41da75e157bc3d7f76fbd29d9a6e60e1c383995dedecca3e5095d20978e7be11789137f940ddc8d3bf06eaa2013334530ed945cc3970e83d66f0f181e18c5bbe2440e0f04f472d1b259ad7af78ce7d670292a2894591d5055d5a0339e3321471f48043d92990fb6c3fbe41a3fe92597202e0ec85d0ecf6bfd88db54711cddee648540dc7f2cf1bfa9e0d96773c6c03884285d28fcba88e93e9238bbea7d07dcd36d251e39345c28bddfe365e04f12\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 648eed9f390fe7fc14589904bd72247c3a81dfbb0e84ca13796fbf4d248dd45763b2dbc687ae99a8594101260fd0b3a398ff2b6ec9bbd82099b5b44201a5bbbe8421a686bab7423663d45cea77321e16a155612af9443b94c7c287f73c6c5d3e0139823c081b91f4302da9a75f0e79633fca4175c2fe9f6d4657467ba38eefa1700b94f4f7882892e60954fada4483c99ae0b05d0ba46f774832a7e9fc8b35c81ef4a7fa073ad62fa2ea25143367c4d4df39090d34b40d48ec28f58073339b8677455bec559fc011320a53303c7484bdb3f7f2858262a6420412396f68c3a9f826d5e889d2c8599acbfa6705a7d22f1aef07560932e742a831a23f53d93d20bc\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 28a0905a6461f258c617cbd3cfa963ab3b137fc270296a7b5541c0e01aaa856a348383617dc987011ea42b58e19c49268b1f527ca54acce5e928ff5f122d0366f2e6f656765a73aa7ded1f2d0053015fc6e2d68155c6cd8819e7a6e51c485fc0a620f1c2c2973b21ad463603dee7954fb8fe83ad4ec7d4d860309d498e8d8c3f429df3defa7ec5ded39fee1d5a9aa75ae8ec9dd4b66e52f711e2bed712c43b5fd06e0fdbfbcfac5878d989102dae62307dabd0214f184fe768583e06311d8e8b30738703e11d52919fc72625e418749043df757d01b405cbb01eb2458c09d21b2c472015aec4fba7f88146cd72a2d0a3d80ae1adcb5c29416f538ead8249fb87\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0167ceab6b14960f1160f13ecbdc8efa965049c1db8acfc8b487b363b7ae7a95b34c51bb54c69ff8a08f7b98fcf63eb200d2dceb5834487b843e9312e75940317d4b507501e46cb23000a12f7042548b8934315b247d4cb443485b39f208487110cf08a1f95a90869c63cc8c52fda64f86a37cd9c562be1e8a813906da82a5dfd72c96c8770b08959d5a7ce72bed149c2d74db3f57c3d67c1e2fc31cd2f2eba59348bca4111176ae050d8ba565a71ccc131d92f9ebe95a32a4f37512bc43edc02a9d65d45a59ae431163a5e4e2b237c0023ebf6aca27af938d3fe855543cf61c5e17e0bfff32c2da92b54a3ab8b196479a66a2962fba50cbb8365879b8618662\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4b0a379baccf3147b547ffbb3c6023332620a2722e373b8261abbfa31165224fc85c1e41fc495e197f921a8db2d51282325bda21acd2b2fae56b4dd48da9dfe85b7c2f83e75972c22275f8af6c2c8edc544983cf5a783e74793978cb9717c39271613937505814f1862c4dbe2fb7ec577e4bd41e3fa6740319f15042eb4655aacf1b4a45473090910c179fa942e1a0876162f162f44b17bf554e65b291e7ef1eecc0377004c871f74628e2c069ef85d942da5cbe319a2489a5f6d16c421765451615c987f6d84acbd919013ded88bdf1408ed2c0ac1fd701fcc1df6da43a6a802368c11965c62aaa798efcdb699dc715e5f10bee9355d14afb732f270559fab5\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6dbe87fa8707ec43fb4a4c51f6ca422ddd0051726dac648e1985b5146f54cffc78a2b0335b5d621f3a4f3eb5add994e1e68a4223e9e79616eb06eb421183729f4fedeab5fa291aaab3e83af7fa021b56aa02384752bfdb73ebcd540953695127d8adad2914426f5e9ac30ab4f5feb36e4ec9d7c7cf0a9f50c33979cdca2f7952ac8fccc4180c8beda3772250d6c5a5ef2ca99b9eeeb90a81e2346b465d24a8a8c47dad4a67d4e6a28a46a3ffe432af8c7ffc85c1eaaaa26f1ebf495474d96ec04b5fcdf09a25d8cdf45d8f348805b9558abe525f2c95d3cd97900e62aca25b744b779b14195f53d555808d3c15c0c3aabfdd50801356310deb29346a445d5a93\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 49b6dde9c7ccceaf49528a6f74c41d83fc3473ada4896eb0bc239c62efca50b33bea31e500b48ebabab16a35182651c38f72803654e1440e30215b0c54738772dad70b8883ebe60680103fb328d1a990547269cc470e9b06e208268220ab46c39411b7f2b5d3eb20ad723978d13d0970ea57a96237242e9892381c02674f349b0211b03bef1ab568abdb1fa28cd913fbda24d94af8ef79efb7d76bede1b43db2f45b9a522368cb9027a6d1f2c40581647b85a99334f05400e95e2ad4a414e032a560dd2321387f3f2deca9d3a4a34d40be2dad57650ae12390f28d2e4cb0ee8bad7ddcb9d7f8850c75c99c6cc4e154d4c8b741e972cedb373b9ca64eadc0e5db\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = befa74da01ad7d06b1464c2684576dffc25bdeaaa766683710934a8ac4aa2282320fcecb5f512e94dfc84289b2da3fc73afbe9239540f1066bec52bc8baafaa5830e85a5c8f31cf89a8e548604169d7e43d94fafb67b3d031b994af3f3741fb0aa02db1aa12e674e1e7fd0662fe06c8ee641029bf9fea3e997c15a7308fd65661a10be4ee1c8a4510b27794a3f5870bc83c6db63cefd008ccdf4206ad7ab6686c8047a52cf913adfe5d17b4d3b38a7e1e4f21bab174f2afa9268dfec1e6c9a611bba07273b4f65a33db419b18304f3ca920a4b1c655a76b5a5eb920b9123a1160b4855ce807a62c8bea9a9b8c38f592284afcfbb550d79ef085f1fc9edfacca1\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 814446f1d99803bae8290074bfa3b562eeb7fc2bdb5ae95524a8f31694e166163f89d2a22d37636b320867abb881467f0426fe948a774e349b72564a3215e117e7c14e54a7da4eaf67363723afa19886ba47998389f8069b3a752a2cb9e7e688ca273b260312562ffc124fb6529906dd397028762ca34a8313c99b648c25822191ca6ee3e956d98ab813ded5bc298ea65a9bf949f0a229fbe0000eadd2429ea40ff66238201a2f54e93b560e36e8a207a7f4624c782359437e5139d8ccd2a366a9d948780148daec600de8a0c516f0f93303067d12dcd8d5ba0b484d7c87cae1e63e4868c0c829cb4efa8650fba081c649014b3ada38dcc1c1471f93def8f7b4\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = c68048e66a376c5ac3c6a5eca4f1a73fef1cc0a1db91fa078d5334b80db31f339dd74ea3e975893c4dc26290bce8053a928321280ae60ffed3437072a562dd30442e5d3a5b046d1f4f3bce820604999b087d3d02130ec4bcf6cdc19df28ca9c61d44b9bf11b8d7d48b6d535dcdb52316da25dab87f747082a83118d7d1cb515641177f2453e2391345b893367f6bd8063a24d78d041e9eafd6543c9d4acc3f4e7ccd45bdada5b7b046a86b1bb0954397afd12650dc1d6bde119d7bc681c3c6cb1122cd2c523bf27f017faaaa1f5aee8f010f4c562f81d67a04e817d4fdd32bc032b8978864a9a6cde55958c0c6863690f2f3507aa53fcf7e3f932e460b09668b\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = bb7545df9dd8b0c768d7989248106c242e0e441dc1de681b22fd50b576a3afe9c6c19d52c77976343a529cd6bd95783a7c24", + "4ff0d3fc701eb18297b52a3c0a6f7fdc3f991c1c2d47a413263ff67f83e042bc98991620ee16f08b9f9fbe47ce37a90062848a0d0ad96a54d4f8077e41d03953a10fbbe15a8366a88fc12f82f2cc1ed63fb5c295c4b0b3f7c87e95a2b76d649fe839979b1352fea3b0dc112d46c7fa72623932f1d3197b0da93d0b87f40a8ff1575dbf53dcc69c800d2f616cc7b80e942c6b3501858a6ebca6972fa3d4f3c16bbc165ac91f61b679fa33f2b2f909b63fa88bca231297145968bbf1c74814fd691249705140dd89dd32a49116aa9d\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = c5514a3811c53e0f8372a945ef0e3641acbb60f6321f67d9dbddb04e1287f1b42d97eaaeb7957e22de05abcd9f85d829b43ac766c9907271a1157c811d429d5c7c8cc36d19ac2dd24a036a16be2b6368da44cdc80bf21ffac73c0224b6f176218f70f0cb70e864224df7aea9724b61943dac5a0d0def579c342ff1fe0810b6edde9be8f9bf3d36cd75edad327d60c5dcdaa0f410ad7e74760bf56b93e0d5b9caac25ba319aefc510d26d44e57cd8e89a7355eb3c6d5ded4be863ab4c60e6c754fbcbd086fcb3ec64a1d4f40d3c1d00b65e93f2d09ed45eaa295a5c8b09268aa292096a5c41b86618e493d2f683682b10b25ac9032448e9e0b76bcb6f6664042c\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6acd858e30ee15fc5c1e8d73f0ef784690e047b0152938993e3e0db02c61f04f21ecbb7cd154b98aaccece5d4948e26260e0b19f759a5107cd4c365bb2ff6e5be93274ff6fafa1df4f26ca73d995f5604e847d635de7d6631e23397d95246310d884c7082893baacb46b6426f08884b0eb4b0bddcd01ee97b8182c55ab80b67f73ee0507206a5563f79167e9045a7ba9a8c9d6a1ebb85f53922d4a5514f4bb13a5f69154a2db4287e8aa95612fd7cb7addefc7516609c1b93844f254d630a2924cbd7b7ce0b623812fe4edc7edacaaa449ea949aefebb2e4b924b5ab893d5bcca76fd20dcfbdd04ebc6bdbb1d7407f710bcb2f23c7d50a4fd49eb6acc7d4ab97\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4df3f6eb5fb1049fd74877577a1ef69216df191af5858a661ff8edf68c8ffb5554d2c0e3b7adbc7d10da656c1c788e381d43e9eba5b0a84a92431df56eb81d7b19fe0e87404d16608f387e4b961dc13d336fab669195f357291e1287f9bff838f4b2c79b75536e6af0b5adbd750135ec166377c6c8ef6a9f80c575b1ae95da834a2d129313c096faafb641b46bd093cd1464c20821f4ced6b4dbf5922c44297fab04dcc286b68ab98bdf03de215c4b8ee1b46ea93d8f910e1c8976f3f040972f62901fa1fb24c59bebe201d3e5ac0615da8106c6b28310382fcb6c6acac7ca3255eb3d529863d939cd876d88741944ef06fd8ff9939184bc417200d361d1f1ee\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 55e7afb895f743e418302ce73e8fd49aadbd0a4c27a9469406e0a801753d5a4cb96fffa47ce3af3a3f2dc0d816e6ec61a764455f2427cfcefbfb9452ed8401671607c8cea3bf105fda04abfbba07ebcccd141306c129b36f9014b4970f4e8ad6cf3f7b66c21ba1b56ec96ffc6b6500f8f38c00b7c4aaa0a0515272fdd0fffb43a4c4e8eecff7922b0891457df27029eba35c86191cd7d9775cc7223354d89118ce1b92490558b2f3a151fa1b8f9371db8f8fa0f156134f5d78d7897849d60414a7d0565535f271fc9172ed6c3eef2ff62e638da46ed4f507ae3c63a6d308a20ecad814232e39eeb7bdab898b18e37b57c10b19905c0d3d01fd8e7c390be1b218\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 89c7b4912157be3be42558074cf23b8693d38dca6205289c9fd347369dd92534d2d2ec8e9d6fdb0a2ccb7e398c90deb5566763e4802e747e9dc593237d5a5e1d52bc3c43d89ac484445e3798a16a00bfd498f42d88a4110cb7e4745c5f1e6359ee8b6e81b42e85dea2e00e80f1c17dba13d586c6f6f9d3e24f5523bf9a0f21d82f150a227a718123c5f7c934c2040628e2660c6392fb4db3f7ce09e1c403d479e4858adaa6d798c34c4af771994129386594f0b9aa687706bd463a92d47ece2d4dea43192f8971ed7786ca2b6dbda7c449c2c2d428178d8de5c3a10bbc7533296ddf9fcae3019e85a22d9fe9fa23942912187bdb11365bd37114fafc9e88d4e1\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 2f64360a55c3d64c3a5391d6c3ded718786ee654c97b6910f4741315fd7d9ab021999638b88b4751736a13faefa6a18339371e2f892f68913dbd426415cd34f499b755b10376fe11896694f1ed703d840a5e6faae1e6f75c7d6dbbfcd3dfd8e818499ad7d03878f8148d85e325e7d2aadd6f9ca675d7f0b8813112e83d3235bf5f9a33b14bccc774aef67517529593439397413e322d02ab7259b98ae549fee758b02adb6116e563d2fc8347dc5b5bb07d573d51024de583baaf8e982b3a8c742f03d7d739ae804e8de6198c75a556318fb372e2d1e6187bece98a5f39640ad28fe014e823a380c83fef85cee7bd788941bd04284d32961bf3582c4c3ae488cb\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 325cb004062247e5f293ceede0066fdaa89f37f2b73464a14fdddc045f5395e7ab3710a9ad3eab03e9c2fb15818b551b1d8755f454dfb5fb6ddac75dad79563d9824a213ffd5865bcdb9e82a1bde2b94756a7877b91be30d58d48700dcdab15210fb17613bb9dc4f7cd95e1b33f4de328b4d166f78c992121e7e409acc1fc893771265ce9b01b5e21aba04278bab10be21dddf8a9375bf4ea0dd4a608a186f0889b9c0d132b022de4e903786789d0a5a960edd05b63ac4c08ffe57f6c5afab772bbc7e77f82ecb119022f96a6f42c5a5b958b88d0d6b17d3314adb050bf863a88782aa78a8efc50434c21e1077ccdca9b9c7676369bb8972f290bd5a7d85a635\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 4b043dfcb768599364cd876ee5f6456b8a270dcafa679ae2199793578b26c42b30ef14fd8cc4ab045dabb55b938bb8c8af337386de8ea009a3a19ff74b6ab8ff038d6685b17e7dc5089ebd1c8565f48dc699770b48a6ab5d9353e26472b3a57dc74634435bb7b04681bb69dd3e7396adb569d6cc8ad07aae13387a17ff862b40af23be43bd74c9fa24f07d3c0afa47a063412eaa2016647b84a95b67f0d18efe75c2c9be7240d748c2bea9f25921233010079028e608a85362cccf7fe1bef5a71a5142f1dbc72224f5d983d7fb3b0d1a6303f017d9ab77b5d6ec4281a5df521d3528c6caf9508d65f07a6676d8d4cc9fc796efc6c5dc2aef6ff516ae55212671\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 2f7659bd4b043c5e74d9e3a6bb3841351335881091ccc4d0e2de1efa168ba11ec04ccc71a0cdbf84d88a54a9b5e8e5e0ddac7fdc7c221e87bdf70969f98857ff91bd6d4c9f8afe28f5394660c959ebc8e4a09ec3e0d9ee0d6c9831dc0f31807bb8ebac2c9e74fbbd38d0dcdcdddca714b771aa73abf3d2c3174553ae3b30597604e4b33f8a6adcbc42c4e49e04a6bb0e6d5dd36b519d5de172c5513f8317c16cf39c89ceeb5cb698ff18cb8e149b8350815cd8c619aaff2ae5302cc683863e3c5e5588607237fac82a01c028e572fa77b30e60bb5a2874715065a2596af49cbad2926bdef2c81b5d031a46113a178a92f4d69c97f9ef311ecc7a2f058ec7be42\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 241cebed86cc3a251f62e6dac6a4cdc7ade20ed6f879942e18185c85729f6874d4b0c0d8eabaaf1ba722891d35ebabf4b549278d14815db39f9e3c3dc7856ad29f60292318c808675079e2ec94984bdf0966a33590f47ed05058fdb91b6fe11456e592c9df76e4ff56df480a83fd2890b088e14dd59e7d6bd0fa1f009affdbc07161f091947b9b9b8342684a0bcc746d853cc52164740f08c364c2855455b82aaccbb80488143f59614be4b6a1c4f70cd1e006c775498df75cb0d700b8fdf164d0cf97e860bc8e153c85fdb6f5834b79efdd0902e02ddbde4b515afa360aa25632c19fe7349247bb528e617d34333120014eca9b549fcb1b541d3ef6fb5e1010\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 8e694aaee29d01d26ca0fecbb8cb2bb49cc8ac8e1a01e327ca9dad1ed741032dad845602b2752f8637ca9152d36f120e81f37b6f4d6e5b5468158be2ca3acd469e3f532d9731eb6e7247f97d28366a652d747b21b732c875fe22867adeb88e42729eac1077fe7e6255cd643fd33050ed087b01e07df5efa7c182d266ae8b33a667fe88e5dc95e1751787de699be68857470cd4b0ab989ba7483f9ae375c693aca41ffa9faedbc669a9f4a0856a809d7406207f4ba4ecdf882993a2d774ae4f35a12d5f24c79aff5c00e89b7fe99a8d93fce6b1305e91a3d553ff0433f1bb989fe8923e1296f775118b17bbb3ac22d4744815e647547cfa03a515c20a33b431ce\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 4abd84f5455855d18a88df8808a009b6a470964a82604d5e562200b4ee22a6537b31ed57bfc60151922715eac7804f1aa4501721e242bf553509eefd5e34fbb1f4b6fb6d6e3caad4c1b7d12db028e42f4a52efefc88bcda58c567c24fbafd2b3165d768947ed7fe69f0bc55b9add57638bdf7b44c0aef8bd104fdc80f32084466ff0dc97d37cde2499a498b77cedd01d389a5a4063d9efcf6a2ea6b4ec3d28768297865220dfdf379ecb3546949ccf7687beec862c72c3faf80a944d71f888821f079bde045fbf1f11e4e813bbf81b102cc5417af8dc93f24a7c3200395c824b9c4a2b643fbce4af95cf22afe146f8b66ce38d76bd8821a3aed81ed05039a097\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = c9dc8b821879fbad44e3b5827c1d0f096dadd16908d3d7f3b6a63052f897e2728a855ebbc04d2af9c2cc1cf87f0d67f2599f134358626f52f2fe0dfca954c4e7445e604f347e3f5442e0ecff1e81f4593d2ce920c94bda5a3c75022c303df0930be672a7648f68294dd62d4299bf750eda9af0322a17f66de12ce87876e51b4c6141c2e09f7369b76c51ae9a200bcf110ccb938d789f3265f8766ec8c40f1fde02e64937724156d367b1a7761eff40f301d1b610f4f1720b38191ec71c8753064291cf3446723b8a7a9c0a188a7cc9e09538b8ac54a04b9082a299131e49ba733eea7f86eba7ca0ccdcd8edeb6575181b78fe", + "a6b08d97b756d65481b65e89074\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 5edcdfe5b80c46f8a5dd42d09cc513436d16281b0ddd6ba1527a335d2edbc1ce7eaa3fadf2301c0af5a507d0fd148125299256687febf81bb31cdcd609a3961844d4f569de6f720876a2780f5abf5bb9f8a63a3cfb0d2198528bc7b12e7b7f6575c331c13c2dcd27cc481ff8b58200be43fc2470697eab33a9ea1dbcdb6603a33e877fea578d50fd5624adcfc2237d0f7171c378f1fc06c93233f56055d72099f5c69a85c248c8c5316cd679188382ed476ca7a4d6474d7bc033bd3a8c09e75793fe94e72fda8ab864092bb263ad1a9cc24bd3b5615c36c560d2ca438e3d113307935b0f89b466c92ec3d9a654aa99481840496cc88ea22ac9955a07477a9702\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 1d37a4d8669859074eb9ab3a3a9040745e78fd131d024f80d2e4fc2ee894a4be034ce39a3ad6999b4e980a7fc34dbacbd8b1ad980dcf2b7286aff77fc420d875156adaba3929fcf316b7957d18b99eaa1427ce7b5c31b59430f253ceaaa806cce501bbf6ead832eec64dd97c13313fda9815a77335d394d7474714b7365e1020e1534a3468b6d611bbb67046c265f96d57cfed5bd4cb4302462474986352063a6437fd9581ee000f936cd0a706e0c9de243ee2bcbbbb033ea3cbf5a54613a741d0977d4e81d6faaf4342e8591c61b218856e631377b1cec9b3e7dbce72a812ba55294f32ff65ffad2b0407643ed6eca28fdc2c4e6da9bc5d4793bafebc5b666c\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = bc8046bc0e23da370c9a4c8ad737f6fd84f0cde3b0d2cbc376bf1d8b590879aad48337b5f2aa36e4f4e6276fb996623f9f4b5f2e427d3a482716d274192661d448d3c3174bcdfef5bc049d5d1b28024535984d99c9186bd357e48fdda54022c76ef0ccaf6d1671537fdb825a7c28f0cc55cb621083ee0d7f3335c095482cb3abbdfc4ca37f303b8c13a46d9f8bc5ee309796146ae4a07314041e8a2c52f36579151598e354e1ce5def6a2d99eb50bad9ea1152f8ed7055969d5c2b80949cd4811cb5dd0312f97b2cc8f851be73de6db1b02a755b1e3e33ff529d29357ebfa04d4f1e7b80dc4d7f18784b538a18ba9e732d31e4b3f494f8ac7ac0a9e16a6f81f1\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 56888249daacbc6a72ae53fc99d3fc1dafb2d011ea1132aa60078556bcde81c31d1f3af3c5f500280c910547453f6486bd11c1a4b5ca0504e6bfec394070eb4c2cef1c847ab3ca3c9f79f3861ee1f54519e9b25a3512ce3d545a418785e98b8610ff0611b8dca271ebff0ad91010d4d34edb2aa824d6703d0701159845b30f369a8097d9fb0f904870573c87dc5e84a6b575c751565852c3d95d3b6caf751bad936829e02a19ec359070b3caa82004af31eb7f7ab10ab99b2c6207ed6fafe5dc790809bdb40ef02239e70c5881e2a0827ac5c2064a6e0ef1b794e2a252ffbb6ad9edbdc87254dab94509f4c0e7690099f206ba530ff6bb8206b7a7462e633ec0\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 4b1ab0878c518109ee48c7aa6f5b71e2562c094f348060a202c07646bd4de3ec5561ded7f38beafa8ae990b40a0dbcbe3bdbe3c33395f9a1002297129c4c2dc746ff54e882f5a630365f5d212da58e1521edabd51b76603ec7e0c69a79c59807ba073bd19241d7b4d3fd4a84429fe8aaa8a7ff897307a66219492e9b6abb41af5c8efcdd5f73fb3325ed5ad7fff49c185d31fe79fe3238bcb20f6255a22edd06e610029d6c8b49b81e8f364a34574145a0bcd8c81f4d8f3d91342db4237d0c183d718048ed528e71b252928f75d0c067bb9f10bb72f2b87515d53e44f77370d4b8abbd187340b1ac8e96fd9b7b40a6519a00ca496c263713fb74ee011c1ca91d\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 7bda24a481d2c6d5aec6ca0311b77e857fe8dc0029b2954f65ac08f13975b89faeb5935f0db40d03b5cb307a8ccd34a3308cf042b271c8f97092418934e00852d437b5578170ba0851ed761c2b99516a232abf2248bc2319385295e53dadd6f98daa346a2531962fcd8f6b45b3135876556df04c9bc64d435106d4b9138663542984a2ce8f9157f2e79b171e3dd9eb3a7fff8d3198dbd8d94f430d7f07d291a4137a1631f5fc89b4f2dcbcca7e1c83c9835f41f9a553fc6b41a07cfbfb4fb24c620e718a74e6f0a0059848309afce2c8c4f2ff6d58853f73f7b16ea9ff0499bfd3faaf58f3872fe2f26500873559ef3c1506038f8170d303701f9d72764c2024\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 2242c90d1db4c749500e81b191160c08c4e477c5fa91a6a9017b32e233d34ff5141b53185c65f00dd054bf17dd8908e69b3604decce4bc30ae968a1ed374ceb15ccbaf350fc9006a0789fa42eca7ffffac814cfa53cab7b73a9631b5a1db808da2d20603aa058621a8d8ab8f1b9790a8efa4b733a12e3d1cca3af91f64670aa289fffa13c48f8e01c20dd66c5714ef48ab69623490a3186670cbfde414e93d0a69f15264679ed013c767511da02255d8eab937e59dc929bd3b9cb70fb2cc157d01d6b42c0c298acf95e1d1415aab37dc0f0620e175e341f184ebc6e5780c46942aa8d033839fa5632fc699a5d772bd204a37bd241ff17663bdef1998f685ca3c\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 6c5d69cbf6b8b72811a52d3d81e8727106cbe69527f19819c183a5988bf054cdf4093f8f09ba3494bfdb014b835026a86fbe5334699ac38d92595766e0007e94a51b2bbcdeca8f4ba0b07fc336b9e67c55ed9660d764ea90cdda765640d1ad7a267859f617b17f813edbf29e78f3eb1cecab99032c76f465fc72333066c1ca265a36f142f956702739fd5b4c5ef27057b6d0ed624282a3690dde409160235834f6ff0f71e17728e74cea66ce41fa60cf990f46444947849f20530ccf6daaa0f50304453b59860133994d8bd835e76deef7743ffeaa61775c0cbe462dfc533ebaed072c99d116f55f473fcfe34506f4700f512ccf29b582b6c71809ced31349eb\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 5a0c01bd1248217d51d3826aaf58969c9558527f942e798af77ec9c89ae07d3afac0de80db442011ce38020f2381b26322d4eb4beefa9f2898cc3453c9501e957151098a4a26c5d9a0efa1a4db7edd9946201c58605b9fcc586e4f988440667e8da1f68e2cdc473472e1fc9001922dd3c3c5eaff1d1e1576e5c12365597c9a78b7834b6bd29e0512bda68c29ea0ac45e1c38cb6d6371791a7172cf0b1a7a14de16334ffe66e2f037d53d866511799a47fcaf2bca3bea985b1376fd6d66505a4dd86ba03d45293016ce4c698d72252788c78e1d18c256b42b9ced956aa205becdac7372539dff32c26544284d6725703c8095642ee43b5736bac42880e0494d4f\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 924175981a53ebc96d53ca5cd6bb9645e267aca81c4aa800e65751a0fe2088e89d39697b062e525726997adb78ab554c07981c240cb779ac9d7d4f73b47c4428df6f3b7b118e39a0ee83b43334cbeb8b29e0d8264db01ae731625543a75d6a90634b0b4927bf3126fe0693b55061e5125c7b964f97412af7ee730a1b758a3e31ff5e1d7ebc0d681516f50a8c18b8399a96ae01406db49b390f6e3f6bb0286100b6c282a06d428fa090827451d671053be5c6e91e328fdc0260eafaf5f9a8408b033595dc259db296a47fe683f4277fd5cafccc8eb0705898860dfad589f90d750eca6a1cf157dc1a708cd9d63d23beb6bb556d200a63d625558d328fbbf2a2c7\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 2a8f73ad97454d8c5fadd199e89efccff7e48f3c525724d53e1d9a088f40184f8f2798f2065fb2fbe8c90a7238ab3952875d0ef27c24ea400d1afaf62f2d71e9efa85ee9f3830cbdb07f4ecb90a5e27c234facc29c4a85164f22e354aab5c6d421fefc2e16ef2de1919316f011e41baeac7333b6d147b1594117b5dc3fa3d29bd5d38f4a8ae3d2ead32f197bcb6231bd890ba017f434fa38740f458bf0ac72e5495eadd6d521ed27cdc4bc3815123757edf72013e5728bbee8a6497772d91e1720480c635671f087e0cfa2b8b75cd7db3fdf0d15a41cb0cacb8e9d5709ce035f55568268de8fa316f8617f6f4acfffbfeb7f737c62622f24481f56a5f72d824a\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0837fa28973142a87e540db789ce0d53b9dbc39cbbc6bd5a0ae75963289bea751edd6403bdbfbad2aa79df84b835e16289ac833595108ccee7a3730deb7491ca0a061a8c87fbf003c3ae78a955fa1e42ae09818a385f842e17ae19087e31009a0f204cea5d7d89ba4f12c36f336d8d020c33334840ae9a408a667f52125783d1c299f673cfecc69a026e01736e809e7bec2e53f022a82f946cb3b893a4cab359f8fa0dd7882f4037803df05e058745c454e5235bc43b8f0a3d7ea53df07f1c100fb2ea2c74c5bc1ea79707f11ea2a5bb7c3c1fa41ddce95f60e81646a233cb3edd45484d32504086e87fc3bafd0fed328cd2cb542e9292675927dea0a22ae691\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 7e2886c37e1c0ff6e53fb6769e6c3fb7efead34e2ea3d9ec94e130ff418e70302cf947219c4c8f3f128a75fa2928c78a06e7b73c17f5753e24596d485eaf0d178f909b95a958fde1219afa53ab428454afa65cc7fe6de247e3d2c9830a123b93e9673eb6b0b847c676a4156e562ddfcb3714c63a5489c08f605ac8692d61586981396b6c061742f9356c82b4c84389d91d0607b148e237573882caf89cbbd024606829ba2e57298e868a752669f17a4d6b01a02dba9274c5ab2b54ccc439419a3b28e249c3b1cbd1f9429b10b15ab972e47dacb29f739fafbb12c8f1786629863f3015c672dbb7fd0622b926bb04fa61e0c924d6a377e89f1e1079bffe4b018a\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = c959fc87c48efa6c66f7e823d317a37bc6b2c6001738e638f75c5cec510887ad651edb8e4bd91d069a67e932216a012cebc75ffc538f0ade2fa214d76ad046f7025dcdbdfb54a6d18e2393005824759e70eebda48d3ed11224d3b20dcc185400ad01970b05091627cfb0db0f9fb156705b5605e76330ef9c8ab7162dd5741e62c9d87b8b635efa2ed3059c0394487abcda18b2fd22fa2cec9b722d1f4620d815b9b5b7d946b42e9018d0b99f02080", + "28e63443224390a4a1326009cd54c13e96eb0884742f6a4fa58146e0600e673f950501013048abcda6c5d4bb4fb027ef32ae8966f3764f0def64ad883d3d3d3affd9437c386640ed4917da3822a0a18471a\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 9586a20b0369fd231800686b923dda8f1b1f04ca4d3fe5f3298347c542c7f043dea35d54511b3995fb2c44ace8fb2b93b39a859f5b4ae09d1cc7e4daa7b4a057a22986e6b3f5f4a5e95b6c346c491f2dd162e3bafafbde6c4835556ed6fc29d0d99c0b345efa19f87fdebdf008c8b4670d5eb844f8cba58efe1af41bb1007644484eb857e9b78b7021751e51ec7b3d4701cd56e870a47f5fa06856560e112fe951762612f674e5ef0e1d80025e5401fa7ac8d558338d26c811f40f3227e068ec8364ed9cf846659b4fe3569e5e1dcfbfa8c4139404a73c8ec41fa9388df28af8634143560544511f6fa417e43a26ed40d0057f5b316d75c533fa1d9729dd4a60\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 272f638a88e8035ae72ab2574220bf41e1ce3e9f6131386b7e8e042c62fb1a6ae545051948d0708e8b33085da1992d0122f7309a6a4b3d64b82ced0263d2fbf0d4c4625dfa697372776bee389142adc1297d32f227f903e476fbb4c6487c0500277d0225a0261a0d50f7987ba93cbb044626f403124da8d9c9689f644a5ee368bdbd8390cb75806bd6e38e4aefc2301d9b33f39d90088665d1b12cc0d5ce5514a24fd6049d70a1a977f05043e955dfa799bcbdb3a970c81288801761fbf2f40b34899d1072c3c34237116c46aedeb67147962901c7c7926ba566953d5f597cb94cb1f64e4987e84a8ea59bac61a16b04c66962985c59bdde1aa42448222f2f39\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0184d649a1416dfb0f81f5a4b6bf88b44af0f7d9e74955295ed80f94b81187004f7f359deeaf9cf80a6e9791af9481f1c162ff859eec2aa610afa47eb9aeb3c98165da7f089baee35e75827005cfe10f550aca6c7bdbc6af67b2cadc09d94390e9abbac5f81429edf2d920150997022f7c859852cfa0f4b91c6825961da518577e48232629ff5438a30df87636673164f8fa3a3aa5191118206b16b9aae6a5a498ce918e7f384f8409b584f5668ba41fdc4941f60c3b6c33544416d964bf600cd88b914d7fbb8f2069ecbbacb31f5891a28717060d2b5fef7385de6e0a2510ec7ee22e4d1915ceaf57240aced94de0fffec14790ddeb0f5244f69c746891b176\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 6802121a0611871cace7d5ccee1d5c400347d96fbf8b24e0e34ebbcda4fd52fd69ae768ae1f646bbb4b9a749502ebf67d004c34d297a3e3ce5625d631bcbd5de91638550c1255f0e2278aa84b68437bf90921c3bc4ba34e755cea66ba653fe6bc5d93b77becc8448405483b3503bb44e183ea0b2d092130100ff4189d885fc26f23cd070ac7c611fa7e57ab0cfa26efa1a32e1244d35d0e18091a0d82ea4317375223408e071105b7c9d54810c50a08ea98f113bfacc3437d1b8ccc3ea4e080cab5474921669b226a97b6234ac7195fa76bd1bc8fe8363af664b40fd402a8ea150cbcf0bebc3f279f51bea7688e6389689f92461174636b91facaaa0d86b26f2\n\n# tcId = 57\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 53472879d38cc459f5d6dc018b3c032c39e597d264efeb0863d7736577694a6f98c61a36495489e3a6f078248bece5dfc5ea3ea9e5d97c69eefb4f7e498de5b89d33a46aa871406036b1d8490aad465e92e40cb78788281091ad7eeba14047dc08441353beb732a07295aa3baca1401f3725686ecce5117c43c425cbfca2c4d283a0e7d3cd8f5fa46fbe374e0b6f4357fa3f09eac4344604fb120cb4f24cb044d68026a5f4a67ba1eb97e07b355145f7ea4ce41efc1254a93ca17eb62d50f793269095d8e803ed16abe0abc1d5279202978ce9212692c50bb426b4e8eb5b35d1505c58d006608776e63c8f7c4bcf5cb078ecffa90c57dce7b37ebd6382d947dc\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = a6939ed78db66031197cebca770294883c50031a5f7f3c43700976bc4332e9a5c6542c651a52aa55176b7dd9cbb235545d6091ea79831783f25d5c044bc7a78ddefdb86b3c8272895a1ae7995baed96bbee63bdc8795469ea2004ddb7e79e237d5eaa2910f0816812db93a9a84e1b2019b650e5c7ef54504a54c40017ffd0b2edaf7f1dda8efd6d7bdee3dc840962d1bed9a4580cf19127b9e6c62483e32141aa7965a4321fdba5298202e92bfc922861d7ffb2f50af93103a58ea78076042225b3645f76346316c801cb3f6c80ac2dd1d2f613d515a8d1ca08c27d2c6dd8c191781adcd0c259526bb7509291914aec1a94d045b1f101a7cfa6780e05e4786b6\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 4caa90066560af60f3927e11e366e1dcdc5a70c65a342590908a34e38012677ac8bd5931c7a43cf3c2c537b985a58407eff426f314cdfd056de9c2c856c1a46f705bb6c493fef4568bafb1e797f489f3b7c3167b6ace3f70ed69357afa0bfbc527b7d50e26ae00ed24973c1218caab5d6d777a401133e6d58cb8f87d7d4f11a6c9fff2473dd5efc59b4411aec6c69129a0b815bedfe28aa4b95c4d6ef5bba7e853c6385c87c6beddc1d5924cac7a0281190e740a9fca8612887dd7c3bb68fdcf6c90658343bd28139f1dd96a2865a4b695eca31c3ffaa28c585b4fc608ce55fdd4539a1c45e779fc4b7c7b1a7a0c289dbacdee12ac1ce5625bcfe2a490dd5b45\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 2bf02b2c6d3976b5bbecad1fa0a0c7280642b06c5e1ae1c7b213859914189cbf4f0d882e83377369cd692a2aa48760446a3efc31b35b28ba21b8aab13c4502d496158f4a932273a46cd8a07e464412a2fee064d3bd74ab1fb966179d3649e8dc10e341d445d06d6893a74bf75447c2bce2f9e39915ea656a41d2df5ccb3384bdf414300d3f05fbf2f18261c129d84df7dbe1eaa26b49fd70013988ab8d9b8b75dd883e773b2929d3782484f67400c03aeb51715270badfc8c19c0bd9f21a401e7bc4f4d05771bd8d98c2b4321d6807da92871d8aa67744c72acf7b9c57fb2211994cce0cab04bc262592cd5c71a0f01d8ba90614bc776dd936e7e96787468aa2\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 81de03b054e9e9cc6d4429ac83c56328f67dcfd501d4de90b610063135ff65f01490c80103be0ca82dc25d05e2b3d3ca16863e32d0e7390ef8b3a5c564940d488ee1abdee73c89a0bdbaa2c70fa99a74c41247991a85e17fc43ce3d3eacdc5fafe948d1b3d1f479494d40bcc29fda605b619034f9e75077494c3756ab6afc2971c24212777146ddd2a758449b176ee595c86f223a52c770eba2ef8bd3c795d167292e47c24351c3e4380cb80dd94dae76ee353bdc77de87af436c883a09a9e7151d54d117cc928f24cfde16559d85b649b5e5538632d5c45ab83cad762f1047a877420a8ffc6a937d56afad203a136fa78b54b988b9e9502f0ba61f94c5f72c6\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 223616d7571dc53da3e22f301d052e014eab29e12de34996e376844f63c851fa67c81d65e172824b68dfcfb8e5d6b1f1f0bbbf09da1e9892c9d0737b652729d5a57b51cab6e8144c4ca8d1df598468fa0a02189450262d9331b146d847e1d463bd53ac6735251bbfb42b28579cf228acaad700162d2e2e834e8df46b6a59e1f5c087016225e1347a574e92fc9a4bae8268258c94f255e4e4f679e972e059eea9bf9f48783a15e93373604f075c5784245d79d39ab135f35effb80ea535b6e589cd944959e7b287ea34b93f7163ef092738a4d27e91461b86761546950ea475a93b4558242a932fa9d7726940d886ad3e06854e64d9e7ad5cd4e3e921ec7f223d\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 79bd74ec9fd2ec407f0014a183e0cd0d82312a4d3c6c710ae8c7c83f600361cab4bd974da6d20a24f19a42a38e3246c76a8e58a764a65f8163d0b39134b9a3e3f5f5ac9ad95265efedd6097443c58ddcfb0682e35878db6cd96dc8cb4aa1c5a4a00196ef88ece2532944b9432eded311c2140c01ad889d526717f9b6df04bec233122ef44ebd0ee948e7178d6f12b798a1d08f4be92b9d084f7fbed4ffc0a510c085f4ce62ddbdfbfeb1c4297615a01d8ced0e1f5d9e5612218332def85c2f50fe8e00a75f630e73df363607d8419cf9f7e512eaae76beed22097e9ef51928402958c7c7566bd7391ca7140c3a75a159ac14b30dd7c861440de36961ceb84be2\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3c616f2f36d444158706919f76b715e54a55a8d840f14da84f7c69967be7724b71df330f3db697ab15ac4113173bc15d419ed1fb657bed48b660881eb97b7215f837760ef3d979955456ca79be5a8024fc6e17fe9d17795e28fdef0c6f439bf65c66a14e1b501ac51080cc31880e6c40daec5d199e778937b10fcc37bb553ea42fd24991f75072064e88d029195d8246e4e5398762c2f2bcb4a584db08b8d5a665e983438090b42a8b039d07eed40b5e6ba1b416d684026ca7dbcfaf4d1d3bae7e1a62d5ebf5e8376f49fd9efa53474312d7c72154227220cd37e4f4fc9f82b24e5ed6ebd0b87510e860cfc8c516c67f57b7b82428b553a4f23aed4cdedafc4a\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 5b07c09462163b655e7d8ce49c69b9bd0a8dcd6865b74530537060ff8d3b5de012435ade02b7cb078109b10f27f83eb6fa3d61ce0f28199219e7dea7db64405bf451e1fb0dcc59cb014f41e95ec3f7b25b41c6cf88ade3cf7488acfff381bc4dfce527a7f7c69544b7e7d9ff8e3538e3499a453ad64482e5cf3ad5c6aa57eb27ceef1d5233bf7fbc21ce3998ce85552b37e6a8a1508835de1816b877d1a03e6f727ee74ec9a7e04503f706d1f39d1b97e0d89567401d796a710c3cdcede6939f9e810f41fcb143bd6f5a8fbcf5743620d754f4ae780c9f76b8a6b719b36dd68747ecf027889017fdadad899d84a30561b1ca03c7900adbb673f9ed1562877938\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = c45b1e66738887caf46645520a550934e2bac206a32878a866858be4c4f1377371863c92dabd7326cdf937cfad5d74ece76d70468c85e4f14d25e036e207b199c7b56e6957ab7751bcc39dbf87d3bb164273dff004ea8a4ffacdca7b026afd4cae3929e60a70785109678bdde2a6eb605beee71cd88ca445df5750190594183ae6a8d49eebbdd643948e55ebf", + "56b5a29bfab211f9d4a2b1d18169a336141cc7d5c5a1d71f08f4437340ca692862a82912cea2a0e613af52a7a4af77d114af74adee9e2465c3d5fe02ac8fb638a6c50b4878237642dd090a6f8c9982cb61b876e43b08f91ae34e15ff472fbbc4e24676a9d5f5321bfa1ab74cb1439d7c6f6cc08\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = b3dcb29f68dfd06f808fc589549deda516164cbd2b0d610574e2d5eb5ba2633b2e65a1da22e6b311d5762be2425a7cc6f7b63913a0681b96da1ec341011c2554aea7be4fe589ebbc46717b9c6b9f2776da5aeb52e4bb071f9c0e9937c6ce2bac7682086f2d9e234b43dd9fae240266e788f7fc591e0c0aa73b5d30208b41f84b49cda5ece81c3de00cc9e5d7d21793933f9977a7567d1a9515768a8ac16fd2d4d11eb898ea33030491c127504504d2e15d86976c74b891bbe87e569f240eff9f3fbc49ba183a36d80623dea8a3b5d396df3f81691643bb1fcda5a8cb7fc2e369dd116be9909bc21c67759a898324992b56b3abdd0ad668f10e39c74216b9c8ad\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 9b7ace146c4d6f18616e5d08f02e163bb9c9601eb5f0538da1ed460c2378522afbaf74ba1fbab2f38b363df5d37f672700814a1c117fc355ad0641547dbcf79bfd40f7f650fa225fe12328d236d1b5fa31594d0d42cfacbdf4a17b4c0c99ff595abbe4eb8187444fed074e6ad1042eb250190873388a1ab7260627931cc584f44aa19374ef39df3f90ea9ee11df87afe539547650367e2fa21f7c29d5c55324ce2d4d8f964527d8373cca90e64ef23d0d0ae792a562aa48a0e0b5fdb6125f9fdade491496a5c63405880456d979a88107738fe021c16c11dff70436f07d780a15f49464c831cdb3cbcd8f9455ff867b1e5d54d00bb599b81dc744c6406fd8125\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 98139e8a125fec0ce94483344a06c457bb3b90ec7855ac9c15b98790edc2b2ea1c7b30a17bae8b39cd46b342c97339edeb440fd2f86325c3a9244d9999c938d31415365f5a78c5c265e18f0a4bfcf1d4db655c25c8dc112b980d3c3d16d2d38c079f9c5e4371e8966ba3c71972c0f820c18604aeecffe626d8c0721bfae0fbd979476b7efb739efec51f3d4b98ea15553ee44cd209e0cf394374ba52cdffe21b0d36bb0d23665fad56c37df375266fe32488add3ec3b3978773e3232a39aa9d5481eab3343db2a5c5570f03e432a9db709f6d42ae214df25014ae02b54b957e5e0939c0f97c2fe0c85feca538130019ec9af83cf53ad29d81da26068ff199748\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 41912916238ce7571313483bbba8ba916a0665fcaa4fd8809b583a8a672d3aa22e75425892ed2fa86ea4a85bcd833af391febc3f6fda508e092a970f314faf3c71e9426fb0a818b70962ee0d3cf53048dc02457a3efadc0b6e750f56ad910841885efe7f6944cc1befa46497911dfb9ae25dde319d740d645c53ced9eeaf70cf0bc8daccedaa79e4a3b3de0f17681877fd69c45806bbacdaa01191a194ed84e54a9abbb0a38c2a06a798248151242816b38980f6a741f100eb911feb57f355567140940c5cb363210331c9cb4116cc9db3bab4773e0a82bc29c5cb3a72153083970b8835942411e89772c8713d2cebc9f5e9c15622bbaaaea6865710565f3099\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = be11e3c61158a256711d0cdf54982d7c76c025918e29fbda4fe4f65363bafc494e57eef24c4571ddd277664c48838e88add3ef9daca684033981f3be31ee492b73a7841109c1061f19a500b284984ff82cc4510e4337b068af676782a44daf7e450e4eb60550c1b568ab3003ce65d3785c0bbb654ea66a7e1da20a7fcac054484f22336c7e88827d5e2d7d6f7acb7fb28801a19da4701da89a5ae37554a89fd6c47c08a37a86a8487c3a38ea30d829535c929c35af32c33a57a4faf4665c1595302b807e48a2025a6c7ce2e62cce29eb589b02afdd1c57db155a7227462e8a0ea56be1f1b54d5dfe0e91f54a2ade3ff42136176d5499b2dc26245a12719c1d99\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 36870d60e29723c287ebeff349a70995c12da19fd4743cabe3672a093d67ea3c842a4539344848d572a295806cd0e94191deecf58078bc08c7262a57c6735103c27e2af9bba24d317b318fb22563a34543faa65a0e066e6900166ada0e296ce7ec10441cf4bdfcc158ad35bd9d33ab251aa0e71fd1194a62fb92bd879cbe7e893ab1454dbc96336aa6307d8f18a68648e83b6537c66b85d1d9db7d184ecafc85f80eb790f8b22ddb94f31b960b44f0d9741439a7a1208c3cc3ba3a3abe57c8a591cb0c7e43addff0121b213c8158def18c386f8d3f550dca07854233a69704d300fe32a7f5b49cb31837c1a567940ec6784e73675b6dfc67e128fd05a7415d9a\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6955b0357367868764cbfc9bfa4a199669e7cae1d50623fb7b5051745f4b7314f49b155ea1257631b613afef2aacc310407777a4f634e0c83816735fb25486b90eccd4112be94287d88548b0b557e63afa05b3fdc087f0bd78247ebea1d39efde119bd32bf6bfb9a0b8d23c46f4c05c2a7725b48f89e57cfb42ee24fda6d96d2702a20bb4535ac39448dfea082272325879c6048064f89d607e28536d7c91ec7b6c5fb2eab17b90abf5e90231795b34ebae04beb2e55e2cd95650020be20ab86fe181e6895248e5be081f1cf56c5e9d8f3d09343942d45167651b27d892399f1b2fa2953b2dfcd7ffeb8c22f1b94a1e1179719fa2273569698a7979af6d42bea\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0a322d5fabcc7db50a69bb20124f79c7cd177c04ba2c788d694b95af2d7ab2fce5ea22171fb8d7c8a4041608eb3ac69472e52f1cd43ea15d911daceda8ac03f6d28a9569a17b1608f46f576fca04738b4b0cb0a9eba921d70fe3a952673840d0a7eb366cf44cc2f4bbb1e251a27208a64fcb23394358c90276ddaf83a1a861bb624035273e5effeb30f193bb7ebd916eb6b878e7538c0bd03a273df3f404ef519fdaa3fd09e93aac0f67d4b2a3a999e29400037ec42fed904a83adb3f4464ccde14dc0b9b9e28fe15d1a43cdddabfcb356c0f46fc05bc06e35797449cbd9e4018959557cf3d285297cb0e6c454f20cc2b72698ef52a8da77fc576d9995544d4f\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 515e66684a467276772add2a9dc4ec8ee8ea0107e3443cfdd62d04eb8a4788bc48c8ebb9c0399f72ad280b6f370085c4461dffcb6656b407f2f9e050d84ec6830c961ae9973733c446fd17c89f0500e07ab8a94d7cf9ce2bb2f2d965c68b7ec9278ab7155b21ff96cdf6a9524057e00e57e3f4e8c7cc1a2b21428cbb48b2eb54896d6352438204e768c81ecfa1f435f779ce0369b5dcd817fe232ec288d87bd9d0344484fb25737686e44a408ac71aba41731657b24d940f5e3b921d9324f83878242be3701ad88a55d74dd78034da63c1e0b91be43dc83f7442c0d290b5c08dee9ddf0c00150e041f71423a927c376062d88654211cf374256ea72e1a4e5a27\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 8666aab5c3b817e15f3df3ae71c28179d4b5e29b891a82b031ac30503962c6b177815cb5c2150f4b79ad1f094d29599de873f92aae777865d39306aa67864b793199084b2a83f922133a78f7531c5fe5a55055b0f7422a3b304130b0d661bff1e7aa0ad38bc9d8f17249971cc9b2d1452fc63cd6b071d98f1576448f1b3db6801a415df971a2ee4462508e57fb3d83a2109b1694df05152de9ebdb699a0e18d095010901c832aa4c1fc19fc95ca555e1ad55631a3b1c8ad265e2a240321bb156aa57b73a66a95dd5fe68543c4b0fe2558367c2a5930997a1fb0d3bf71250e529dc17aefd5de8353ecdddfda06fc80f76268b734294a60c95c853961636fbfce4\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 019ef45cc6563077eb21b53e276697f0eb074ba5d6f150f6a8844a7933724aaff94c0830ead33a47a4e66cefb1d26ad38f1be5ea42db9bc2d0db280224ef7fd76beadd2c297645cdcad42d045677c60d79a2b23eb257396e33c7ff198df2f55f2d3235bd7bb2c9cd6fe0f82f041ba5bf0efed42d637f5f71780fdd17de5c89c81974dfad4b80128954cda09f3217eec9eb7773ac9bf508ddeeeafb36e7fe27d6d8674a4b5ce4fe3b2bbca9f514d8dc24e697f4a429a363c87f88098afd652f906e42f35281f778a282fd7d3b15d7b244f50495944f47ffd5204e299ed8113f725b4a117b4ae9da5e27ffcc1f4b464747ab6351232ae5f18cc66552f333760f06\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 1d8be49c0b9764bec221f490b748de4347ee8e7f55e046261bea4401084e16c113e951094e2480ca8459640e9f35f3f60d0328294287437bee3aaa70608000617017b9933431c8edeac3602aaaaedcb080d6ffe4540afb4c93e00f760e68a1fb0f767e5901d01e6768c8e2812fd3612fad0a9409e14cca7b28353edcb116355166dd83ec264cd1ac5c1e602fac637efc36bfe7f28b86bbb65c85afa67d3ccc6a15099afae5e42690a6131ff58d8e83d201b9841bcbcc6e52778bd41b1430fc91076ee85cd4f6d3b2c1740449c4248850164217d4c631d1ceae8c970a52bc66cd0d15534e36c461b29136fd05726f569ec0532925da25bcfadc60d4dd558ba028\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 06cf945a6ff49d0e0cf62480645b66e1c948ee305c68d785bfa7bf42b13d7e0afcf16cad0e7bf9230dfd18260fb3b4f3cfbd0d41915d05d1971664d40412c7a673db6edee00fa54db584b3a569a33afc46461226fca210c6123e6553de2cf7346fda791db011908a852c31b5231f2a9cb4d64a5fd26d55a67f2b46acc3853eb2958e9d46cad3c8c5ae4ebdbc22ade2076c5b1fdd939122a16f84c03f3688015e697cc37556a76565d99b81a46f799cd2ebf504353271f15c5c99963dee0004da53dfa62aa2ad09794d8e2201df4c311fe88d1e09f56fe8dbb31d212fc559d84c1fc8d7a1b9287d8b86e93319bcfd1e584615553b06ad1436dc9c44e0dbf4fe29\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 3d5767163395135c06d3c13fa30c6c7e72e57d2b7162f64", + "19d2fe3a779ec76383dbe8dff52550d17f6072d98caf7bc52d64260ce526922624223d1fb4745eb287faa3bb495bfe3af605acf2a1d285f251cfb1f12edc6fa27a3a2f0dfd50bba0d535b192be4bf61de4c46e738ee26e29ae8594af9b2ac8efcc6fe2094411c6f241a286fac72abc971d358757ae41071ed0d97f1c151aa967b484a10e5ffd7d64215709e51a386dc9a0068024e5a6686aba0eddc00cbd31cefcf4fc909e82b6bb6445baf0f1c7903cacac5f380677564f0e75bafddc7fe0e6943551b6eaba903cdd7287edffe727ae9c3d2f01f9f0d624b04b70bdd7df81216d4297bd8fcacb2bd\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 14d59221398d46999f85f2dfa13357d961d3aa543519ca0b5633541d451977c222c07f6e86f67c48eb0d318c8553b2b5335b43a1e66cabb6e32a4644a5870d15ad588eddf92d7ce01c924453425af6acdffbd2b1a6eaf40bd5e820d1e0f12ba64511deec04430cff2fecc09925c3f21ff7c6ff8bfd3048ebc13f4ef9ac3ede05b9627ebfdc15f871537484b6970dcbd801be42b5b6190e21295b839371216b1b725cbc45d9cd922bd028069546a425b219496b3ee9529c4450a4c69bed7dd9cec20cc672f1583267fe266d84966090760b04348573f51b3cd5023539e3e52b95e0a70912d75151e027751f70876c602db33d3dfdb9fc128d1086400d8cad89f4\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 86b785bcdb48f290fe8ab85c6edc25ed429f7b1f89d9202b828687468870e2f1e7774a35937ea128f615928779e30acae33336f7ec3e3d098dd3c6a81177449e347ff991b37502f34aa9dec89bde524a79c6db7b1e72c412a88904e2b2796173f5529220bbdd96615a5088087e21dc32429785cee19a6eea0a2203829b00d3b2feaecbd5e9c01be264e8170e4db10060654dce2b60e080048e45244b4a8d35204fa09c40bbd788eba9a6cc14ddff3fdc5c5dbf3f4a113cb399db8e094ba126acd56ddd2ddf1d7b2d7b7fb17eacf1938459eebb3cd68082cd56e827acf9848d003c9e610fd688659d85e5481e35b9ada0818b23b926229da3d915e8f43c5ac502\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 32439a388e0b4c6896ebb7e82edd928283479e9c18e2401d7b6c8a0cd83d3cbecc226832f804c84a87226db49ff3722a215e6f496e4db097ee465b363eadc4b0f4280bc00710ab393f3b9560c0e4f5d5774e1aad7f4ad4e12e323d73d5174457fc831964a13eb533ab3916f866291929bc35e8a8847f334847d13925040b759f73c037f3387a3c3e042a617a9b1364187023dd291ab5133aca58c68d4e0a89da58165338f6b1ff72a8ab045cb6bdc7d3660954e78473498fc5fa0e15d61797958596fc12b8667ba96ccb7beaac8640d05fdf3d2218817abc8c49875d540b698ccb12baffa1bec899131d2a901c912ed898fe61e3222714f837558eeddafdc04e\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = b97efcb9fd44880345ee6d3da1ec769ef30cae441a66e265942dc06dcc4c7f83240a69bb8f71d8b46e741b9e5c4e04f544d6acaa8bbfcf2b7a1c0885a2bae953be9f8c65c0adca369d38d38c55186578450c327cabc2b7cdafc6ac81b684e4be0b551f4f28ed64fe168d7dd9f093d61f6ba0425023db543f423bec57c19fd23f1a06e466da0f37dd2bc0e40f956146dc413b2f70be0869a46e98880e9ca35fee6f217c0e8baaeedaa72a4b6e56b418b68653c8d5d7c4343561a92f9d10209848c027a68057f2b95d782867dafb5976a246e05665bb24bd0fd80d8163d3b21b85057995e841278167c0119fcc2a573c7429b03b41b9123a24cc14e985e3252fff\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 25982671d48a929364dbfeb05687bb49294c09750169d2488b12800e3472c66ff6add20b39e78191b463ceabb0a99f5c7c7d50686aab34cee4d89691bd199eaf0b5fa44e05a000dcff189308be16598387e703849f9b3abdfe76db86a9d585e53e0aa2098260c5904ecfbbe2247ad2d3db10ca7d2fb89b6aa13ef1b0788bdd5d7acb3e8f04b9ba1f5830d7321ade28297ac6dab8dd93a5d31c8c97055bbd3b2501ce14aabd5641f5a24cfbdf8f0aeb0bb647048f5b6d50eee76e4c69a33252fcd7bb5ceb259edd16e05c7df3839c94d9e847985721d54e70ecf8ccc478e8b752b2d4732cb5f3826ddda48656ab1acda9241ff7e086c1dd05df22893e751080d5\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = b3293b16efea3754fd133e9f0306f25a57d038043752d988dd7c64ba892cbed5ed0eebf613388cd5ab76e4bc6d1e4ae8df39de88f7b390a1aa4e005182111eafd6900f36e6e9fbe52787874190de9761196305c37462175fa119f134adcb875eacf53b368e9b359b445846fb969938fbbbfc1cd44f616738cd75bca4d400a400febaa4cc806b846a127cf771fa2a1c430dc3d7d41bb916c4ee703797338f1f097788f1112a90a35c13b2f6c90cdcdfbf9eac9861511ed65df92bb219caaf22b51e020ba55f38ed2fd99264fe6e7fb3dfba8ad546c726ae24f55886ddd008bec82fda0fceb277c214290163666da0154a8655ff2dfed63e9df5f4b42731286fd3\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3034216d6b5111f1f5c265b7cb92ee9f677f7b19c612da92e6fc971f99643b692e540198275d798030854cf47ab6921403a1ab84c55760f46aad6d143a5537d2f2bfa7ee0c5dc63477f3ee663c29118729195faa6f99235183454fac13d68b78e9f41c576acb6897c56f0a5dfde4ec6219b059eec46904974532ea1eda9c12e4e8b4da740b528ed0ec95271af740a576e49155551c87b5091859ba4cfdf70d2b339b4edf909f9ea575878b8846ab4be3964ede928f366aeb6f08a6eb44177150ced1e6c28ce3d82fd2b5237af2b0f4fb155000f0127e1eb997c073079d97b0fbecd74d81e1975cb06ba4f931788f991e39d04da6502bc93fc3412b8163743f3b\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6d3796e0e3832cbda1e0366bb1326556cca7fa8096a2ea856f6960e3eb9e3a1acb4e4b75ab69c999fc8d03ab242d6cd9f1e15ea5fc7ee1cf15d9ee259c2c78b387d9aae6d3d6c1f73f4e539af8f7500ee740cf7b29d89569defcd49ec6f784e81b0bc4b12c0e3c8dc5ef48e4d3e42962b55396ac9f0eba18026eb9aa812273070093d0093b60c8527b9223159190a0b8aea9f8d478540ca9cc2e5590e0608574f58fca25269793dbe42094af262a010861deefbf984fa9a93cba3b031c6acb1134aee074151e29941266de21f24deac9d34b42f77de53efc67e926ecfe03f5220f299d9e00b715ac5798a8039f53b431f1cd3955f5a3fac9d07840223bde7d43\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 37eb891d215b391350327939bd9c922f11cb40fcc9a68ea933c4b86e3a2ca0ac94d80015f73ecfa1acd6d7969579eeb154deade07125b2bf42adf9bcbda556b2fa105caaeb645800731a1f04152d481965da98fcea4c42b19cab22507797c602c4a8903179a614d2cfe81c3c49afa87492546912ac286fac82284619b396b1f406a0859bbd3fa2cb5744e1087b057087974c97af5d7df8043bc883d18ede94a099a34b428ac934c91e14e73e328f0fe4d016dcc95ae751d270ff817f72ffadb4ec41c3b8e696e8e4fb3096847a68667e9047d96d03b980f7723767a24d79299cbaa6e4c1ff2756d988f36208e80aed3186f3ad87fd921e0b5ddc4a029bf07b40\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = cade4d820ed0b583b06140ad8ebda6e3ba802b005d62b00321b147d2a5e0291090234d8c023a937acdf269b073d8295e6252773497f89b7490a9e0f5a76c0552f4d4c283d6b35d58411810fe6fc1da959486571c7a40d44dc37f27c9896f53160716291757f14a2b5cb601ff65cfd2a478b3d8fa20333dbd1c067ea910ce99eeadaee1a3424d5877b3840afd59b7bd1e063a9a92e89ccea7c7f913874f635d22ca8f4545a2bef2420fb006d3d387a5ac6288138f1589443472a1d59ffa08c9494f2bc7e9e1ae9678979f910b0990271d0d45d5deb61ca3f4aebc9f9045bc354b65bb1c1440d2b5db491fc78a5417e90cd3629acb6f22fde793c8b772d34d6ae0\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1a2e92ea0bf379ec2d3931015bb547c408229b235b43411aae19b53f8f622326bd262dfc49f76adc486950acb19590d6d1a7be16f97ab6c37dca120e6c2df141fdb985faccb249330e415861521f909a8402298052c176454a37dc6e2f3116e254d522c152cce91bcbc8e47e6ba230255505c0aa2222b708efbea0a15164df17f9d3b23a89abee1a67ded1114e7d2cc00d937773d8416971974b7266a7334cba41ed4238cb6b41dcc7160accd5214a6cd0b34f9d885ed00d8d1939a06148f0e1b47703607fe916b96520a2776c27067de2deb24440f005c7dcfc03399da62fe3d6b00fca9cf0002e00e76d4c8de72d78b62f43c5e4ed142a01676c723ddf9c6b\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5714fcd88ac9f0369bd6d0d9478f2a94cd76a53f8a8aba492b467ba824476f3f66d91023fed8f34743ab4ed0e66f8004227081d4660942bcf1fea86756d2a8f97b38583b06241474a1f253976cd13c6482224e77978b14f3b708260445f8e51dfc0f46c31d15a9e37bc69d095d8e0afbde7cbed7ae0bb294cf3998a71e4ba8dac4f73b6030be531d2dd1fdd41e10ff03250012e80eacc439cf8db4f8ecea50b22cab2587650224bf35eadbe213ec3553113c7215e6280065df3b5efed6895abe4f6e7a8ee602c79a1c5eae0cc2a18a9d18c9718f90faab9aeb22f8b585105a8760c8e036b812332934f9f7e53f9aa2bb992cc6efed3857d63a901369126da197\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = c8a017f13ffaabc7c7bdfca95ba2035f59d9300ab228b23ff1b4804b02bf0de71b0f4f830fbc6f76fe471e1c49cd794f1278b131773ca2861b4a3520e7e303de781cd96552e74ae1308f2fa1b39155ce86064b61c21acbc81e2ac5c980b7be90302f70e1c18b9604a493b56291025191449d77e4f15f7debf5fc710d84625800cfccb9350d722088cc7a2d9db148842c3480b28ecc2a683391525c395886d03bc4859867201547c930a344667ab201c3ef995f1abdd110110cb5be9b0b15721b53f88372cc15d763c44ca9654513ff802f661f", + "11d97df65e74030a78707c3067875d5c3a00ff96dd94b46e5cf51e0b6568936a2f4986defa345514789b37e02b\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = cb359c59eb113f6bcb7dfdddd1152c4292c7d1fc25341b473100846729abba798fb09819687294f173cabbbc6fe9db252375a8b1202d826cb89a5bb937577d70e4eaac761fc95651d17afeb1eb07bd7b948d41d3dc4dc1bd0646e61cc036502e0606d9abf64e4ded36f2e1e52f5fe7f7342b5b3589b9a66b60cc6421d498d9236b6ff187cf494740c507b552cc836494f53820f3d87e0265f52583c02354c171d619cab1d34e27d528d0abf13b05497c5907fb0c111e805649b221ab50963c00f652488c7e9bbdc6c1cd1cfa06a7c7d021e3b55e00d6f7ef2b686e79703137cd1291932d592e6069201fb1cc6e35af21fb8135e3c1790e8445e250e6d0ca6d75\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 05ada827a4a19d8215494f01efab4061580775395f21db84b8e2b64b0681fe0025b53e9cd6fdc7742055ad4d307e513163bebec155f8cc20b020a875c64e9ab8895da3ae5d971d8b7e4570b75299509c70e28de4d15bfac44cfc4417888605a0c7cfd62be3e69bb5dd5c410e1dacd78d198f13793cec80bb7a9c85018a470734c2d837e537771e3bae6552a27ca8c707859118b8ac7a1bc09530b3ecd5c5bfcec96c48173d41f8a22bb54d44d63dd386e43039e71de623fed5af9332426cf1bb40e556e1e197938ebecedfdd47a0dcf377fb9d7e841ef4b9d9b8184ed80dd67baac8799ad859e81db28e944cd1f1c709bf993c8726dc1a190143516b37b59d29\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 75fa983332db76bbe79b6823e580677cc03347f703d4a1cadb49d2245cc0d21c130c6945e1df1487002e4737d89fa022197927bc7db86f3e6080d2e26ddaf0f37adb4500c4a91d4d6d5b9c46b834a2f877c204cbea225ade81c628285c788dd9181aa695c47703200c5c267eda59319f5a54fb72b24f99199313e47156b0509f47a06b3fd39e57f0c810bc53bfc8f44f0785674c8dfc47d6698abe852958252c9e3f189302f686e580ec17623e34137ebba67319f2808f043b1f65901caf5a752683086d96785afa202b3c64dbd06867092f50246d5474354f83804071690981396f6ae724c39ccf735b4dd7434379ceb8ff668e42a07835462bf14d4960aa64\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 57bd5678dc5adbee761fd843b8c96ef7bf5eb0c4719ab1cfa3f68d282eb20f87b5f840527451aa6ddeefdc430a4b4ec39448cfc228f967b1677269dda16ad39a6c4dbf4e29158a0443b70bcd50b9dd343842ccffb4535c9bfc0f91fefdd6be0ff7329c88b0318903c43b69471891af657c4ad05d94ea2aab5941fe18c2ba4affaeff14a2415b5224d97e9e6a928b26be6be0b166db1f5d238684d771011abd91c919b2f4057c2e6984a72c348c53d14457664e586e440d50d67547340235709cd4c61ad2a47b838832f56e0c4da4121dfccb24d0be397010a1a33be0a1fef8289ba04240aa38ccc92be6a1bca24c0972e89a5a7ab9b5ae57e5f82ce4ebfb0ca0\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3451be4229f5b37b25aa33555aef36d67c692fad8810fae0f0763058a6c23f6ef659a322b36ae0162ced9855ac56e1a216a0e4806c48000c4c01fd75e73852a157c58348939df553de427b02a0a907f629d41f1c2d63bca132b9abc39edf4e313cec60e8b51c5a5ce44056b49f5372498f6a25cfd1bd36356609fd93d388a184fa4ad483592f27bfb36ea1f1c50943c08313927fac2ecb4db5e512d9c14f419373461e1097164a329f2f7d9febfcfd38392ea4b15a0580570c9cb974f347a6e7f28d5d9e420308fc90966d9e8bccd657d5f854415d2282ca4056d9674d405b5f4626e43d24ab8041f06f8a1784db8518c5d509fc3ea63fc1da095b4b9a2f7bba\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 2167425cab3ee4536d87ee3d4ec59624a0f8201bc2e80dd626aa4971e34e001b9a511ff8069c302695aed83d82805c915964861f142fc629654b4f864464314cab4f669c60dafebcda0a5de40bf7316b6ddb80dc450497d12be8ef4c03cadaba0785517a1bc5fe8cd426137e55387da8eed05953e7c237f2d22cbcd8cc96c4f985b7815aa6f96f766edd73b8a8475df50cf702739d1921cbceccff437d833510c54f067d773f4e796c36a4cb07c4b8ac0736438d465922dbd4ede8ae66b0a7e1a97ba971fddbfbe698585f302637bebeb82ed3576d3e2e102c1aa5363fca6854c0e980ac1c1511eee034d6484aa3aac575aa9355233108aa2820ead95518fd6d\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = be3a05f0cfc1fa572a6b54997a7d827b66848a28f11323391c90ca81067a73d99c958cc01eb373c7afea800ccdbfefc1269dffe16a3d88640a33d7fbdba7961eb1c61ae50b70a9c885fc0e127171cd0405fc2eaffa199f71511bf4db1e9fe665dec1edab0f4ec95f03c4387e5830a1d0f9da5a8db55ba609b70ddf1ec18ff54ec5f885305858890a96e1056749c1d97db37951362ee1cb64537a742017045946dbe70cc21d7fa424ede6959581d4e927253defaf901588bac92accf04b898ecef2fbe350c8220c115ddeb6cfd9695e9e868fe790c8a8c803099b9b0b980d2fb5312ad1fcf7972f403f62a3a76d00941823deea35e22f11dfdf5d2d45682c6cc3\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = a81eeb92109e7cecf7b53571c8c2713328df15c7770556cc39257a081fa1d4ca7676a61f34bf53c178265aadfa1731bcedbe495d95c74ca18e681b3590848e92f244872e59b3a2a729a2dd01628fe1e3e71ccca730a35c50d691d6c220755f13942dd6c73774d06b0121b8edfc178c62b8c02b6c6fbba7a4741badbd7a4c2393a8ba7173ee6d48e8e8890f633f2bc5d95dca0bf266424f6088e12ff9497d9adea31d2ff92ab18fc8570379baea386e42596a211d5a1c644b61f1fdabfd7867f9632baf2ce83953ef8dfb6a834aadea8e16c122040a011eda52e79b0f4813e061ec40f39b0f437234fd99431d0a7a983e097b5a7a39859b35bbd97639e8c9e28a\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 0a29a84bea46462c60784fd78c3d48fc86c582abae789e838032af05d6db8d2e8c4a17aec7cde389ce716c7a28c6367a6851912a69188e83d094a63e88cf99c4550b890e0b0b2781c3e0f859cc3e066427002dc4628eb754dd75f9ec842d57cb1cb4f67aad3bbf6227f50fcaebe6c89991e2137539ff75990d278c22c933438d5cbf81f24984e491607b81901cc89d4b2268d734060e7512a89e107c534bd430cc7ca867a0c57a103428f8b66f7690927ae5c2715b3210fdf1659f6775b49cb2fddd14c999ed2b35795615945456a9945ce70e80649393b278430bb027302029fd5323b7c99bd690b70579ce76977bc692a4ad5babb360b8c8fc614330889b4e\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 9bf509a9472d5e3d1004d55496699ace2d00ba5a8f73e9a13741efb47e1b6595beb4fb733bd48f48904f9831bcc51595aecba451798331f6062b1857d5038d30f73b203f0bb90e30444fb0087492ef41e5924eacbdbb3f2b3be9cd9d1b795a1c7c8893223e6bdd7876c175fb608bb88b51fd34e438d7d4d81fdb83b5129b8e5312cb3cb65fa1d36d94d5b7476d0716ba8fe6c24280082763a687feeab79feed1f1b1325a715a168f70d636260725a54b9335d973475b9048a7c8e80e44d3c02742f3457a36f79fe0f6d3c5f8d127657bb80426980e531b41f81ba4abbeab671e2f4141078cf4913f3771af9a2d65596de96e0d902b21530dedfa19ab3421648f\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 5b2ba41ef7f8b67a78d06b95692c3dddc1ec72de45490218e4fbb752a384c0e6edec0ff17cbe705a4d8a88edc9492e30ff333ab2c42b2cddd11eb891c445b5c92bde01b8f04f0285ef6875234e888d5ab89fb82e87d4e15b48462edf22f6b4456dd96ce95ecd7cb4e7111f06380ab525dd7e8394204d2998568b2145dd5b69947854c5a571be5c728cb7ef3cafd9ada62ac6e8d492f20f82b571f5713953f52eb1fa14d703529b15e83697d8fb4f4e01438ca3c8a443111fe16167c34eb87ad635ec056558e7690660fd5eb39ee884c8f30143d90aed4193af09d25abc0c57af603f13fcc3547d1dc5a8303300c2b413862127494df8f24e4f75f12effc1ad2f\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 5407f8d7fdbad61526ee472638d55f324f991314cbbcbc9050ad1421c8c86aaa40e597ad11fc8e70af0a62a8218bacfce4818929184fd16dbf9023425fdba9c3c3ee85f46a59b2b7c7757b4fc565519c091b81f3c79ba113c6d76faabf28bef3216cfab8d1187c6fb097acae283119aa57c35fc3d771db3482e52e6c58fda3475082a414d8d332808e089f1ec5aa516ee80795c9ea2235341543f802687394afe89f34467d3cd1dc14204c293734beca19fb4008d1d44983ce039752a0625687fde6d68c30a94d12e2ff2f7b26261044cd1c2a3b5d5fd3bdf53dc2a0ff2377a9d3122a9434713e18303844fb5dd7989ce034c0e2ba69cb758b371fb4404c0e42\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 022187aee485090ae701c8de7847b65b217eb269a754ac57d34737a4d934bdb2b8f8974dc13241a23f3c910ae5cbd693c3da38cdf0a4e628d6f3da2521dd1a376182bd11b1404645b91a0c908e2dcb8daee6d361da2e847d64605744de19238495fd8add47b509f2bac0883f711032b549103665c6d7c67a3b7a0506706960fc9c1a104d9a7a3c8cc8532a3cdef1ea0510a6b39bb1f6179e3ed1a0b13617082704302f07cd839a96c27fc55ff8d78d14c865af15fbb6c6494f79a0d248675b7ed33e70442182745dbab1b8090eac72e498e3aa9c3df7e593a975a53ba900659c67eadda2f94a979376b2bf145feb2046136fad77a0c5f79f08df8055552f010e\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = ada586824cb7f29d820319c18f6de5b3e7fcd363b030e36f077bb6fc4580e5b225bcc87ee0d69bf5d55ddc85e01d7044b4e64e9fa678676b87df06c0b995248bb713665d308032220e327a372b2785d561d9df922863392057ec947131c820a993c302976e86a8a1155e18449a52a50796369f178656b2ce1ace9e267d6f58475ab2f3", + "519892bdf354ecc74c8185aca0fe53f7c5fbd1c69d61f50f80d9c4d37dcb801195c3fc226282efdfc1102686b93f06394205ae9d9f203a6a6ba4d5443cb760304ad7869b48417ec224d5d039d5ec1430b8e1064d83f2abb7a052e8256c281daf7d230e475b7a1508e05761abeb03c367ef86e8ed6ff89fe0619c2c8aba\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 18550383f0fcbaa1133739219314695665aef19ea2e77554e961d88b1a4716391d56c75a5e904b9d793756777a9704c6d9cf5ca90f93b5ea673ea3e69d493cbc2c2d2b0f90c7a07f2b3d1897220e3e9a1d169127859630dfbaf2e67ec56f170bffde383cf0967b927c0453d36e31575757dd3a779ba5509fdce73a32e72162917d7c7b301fc5092befa92ccfebfb9787b05591caa008eedbfa4da84c2ef8035e90efa01fbba43c9f1abcf39abd8beb06dbfb4bfa1a8aab8c55dd0d4c1c88cb151f5178ca96f0391875f3c8d1efbae9daa47658da28f30209fedfe12707263b5c62c7321423fc1fd6f835d8ede374a6236e6306bb3d2afc9b38dfe445dfa80058\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 9228fa494de3c8e376bde392e9afffddb85402d73885e0b32a9c98b8426aa4fc3ae7a1fde93650c1ef47f3c82651e63bf02cf11983900efa569dc78d8344f7da3c3c170733436fc9830c3d185aa47782bf3c4f3e01008672f29220668d97ec664cf5a591279783e248987f01186bf3c6bdc21a9f76a85dae40267418bb912281de09bd342aaef886593287d2b6d5bd1184d5beed3968ec370dba5d80f251a1278246b374248e30db98bc60bf5bd90328d46c70bd3046dca70aec994a3b5ec05e8058e581dc9aa3750503c991228c2c35dcb08bf1b8d447bc5ce2ea970a4a35581c6ed0f0801ed8692f01171764ec858c86a79e15848747ac715f892412aaf935\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 36c4dcaf9327cdcbebacc2d46a54483255d6a3833ae0524cfcc85a8f5418c1de595a66eb6e71eca1bd5c72628433b11f04d6d68949f5cc693771b5aaf01798305dd1e123fffbeb7d0254a1c6b37441b8a8eb29829b97ec99fde20f62858b7cc990c1c61322efc8a2e1217eeea6c85705dd59e1e80eb76d31ad9f9f4490dae284b039adb117dcccdf5da86751de5f79203f2b2a25ca4e82cb5ed9aee813909db9875dc2c0f8391d34dfd475e8cb69687be798a3b041796f91bf85f7a8de673fb05b96476b0b501d75417bd66eb53cc4c829e619bd0444935d22a5ed5dd9e7bbffda856bb81c8566e58939dc65a1ac4a07c75fd80747acbd08465ec98afdf96ad9\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 33ace84b69defcd8b54d67a6317b955534f47b6e993d531e056080498562772dc482bd19fd1a259aa38ce96d89680ed03e1c90907a48df1d6325fe63ea012e92059e29348d717b0812a46ea3597372db8fe031882d734536fb65d97d375a3ab3251740374958cd0e79ff35d17f6dc50c8001b2a6f2c3f3ceae9a6c81dc4f4eeb2e29be67b151511424fb22253388c12dcb2040380afdd10b45f4660a479942f3e8514a2243397f959119b92a6d3359aff3731610896ed157f9e02ae5b0e37737c92d0e07509dfa38e1d6cc752dc903f92e81108641113b9b085766becdc05ebdb0d1bac35e4f9ce2f1078b1c94d53aff1f31dee828ce246df8bb88b25b459fcf\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 0cf79af9d40badad2cadcc2a310a67d01c5def46f2cda6f38dd03bce0ae6aa272213f7dcc1a522aa317cdd61736ac80000b1547715d52a9ee1b5475f6fba95e4eaf8cda1a77d33700e40b0c78eb108d75861c3cda19f4dbdb0e0ecd95d1956b1ac0a259f2296b8d76c744c1fd0c32b0c8673fd2a558297a212be00952c014a79915675cb2807ce309000eb6df7811869c45d99b6a2cbb05dcd73f3080f39352bb2492721453f3a957dfd2c397c82974c279698808b9a536c7addc4e2921f4490306e4f7f563b983c77fd377263a5fd1f65465bcc505e2ff31adbe9d365cc21df340eedadf25be258cdbad99dcdb6ed335216c03f2cd4d6f1e22edad45f154543\n\n# tcId = 113\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = b0a01591483e3ee4d5918ee5c7d9308fa03a4228bb395e36801d009c15562a9e8169fcc5e57612666156819be8081e23335ec83f9f40195c9b164088a391dc7c2dbe96731dcf049dfc1c422fed5033516733a8511bc8694cbf68758d0ae897e2ec2dfa202ef3cfb5931399683c4d70d2a3e624837f72d92fc7d3f40f59c4356e304b770ab3773874c817c0f3326f11ee8f0bc70d1c9aa8e7212e07d236c320239ed31310979b333a13fe63fb0fe8ceaed517a83baf03c76702d1a11036d16fa9ef4968db2a728f630793c312ce76db3f8315f6e147a37c83a94ad76b0a657bfe76e75fab00519c7f0058948609f28816a5511ad09893cbf3f8b7ab439e57404f\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 1c582fbf5ce5d5592b17a3f7c0cd981d8f254b55cbe4874f1f6e15e9b9024f1160e588af4e32b787a66984cd20d21da22e490e0e72cc309906a3634fdc7a32c5be07258fd2da1fb3f416185ab1aca3e41fa9faf5e2252df6c70c11d75db96b4cf5f7386f02b3a1c20ea54b56c9fcf3bfdc5c6e187c2cd064378e4d05ba2d1c92d4cd463d274a05bbc681f6f1e24aa268a25d997e78bff642d6ab0109f709827b6bc3e1d12ce8ccddebd22d722be1b77a5099e0d4a66f56e4e1bf11040cc50db0a4600cbc869d9392ff71a8a280353523663c2f93544a4f7f032cd8b3d3e783d1591225fe7f402234ae8a444aee3de34472c49ce06d29e09900ee3579fc990816\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 4a42d8803a2aac418038951d24505add471ecdad24baa193f09b386e1f494de4f36d502f68a5c6da7834619e41c294d406117ed1f117be68dc81c7dbd52151dcae56c2e676030ea371d88fdf2f1ab54ea63d89697c248dd3c2fef0b4b2717b119e47f1b3c695f082ab2f765e8af9f08f25f25bbf7827fddd0cf01c5e201260f87483c19ce4d59d6faab6c4fe06b9d98e2b7c6f48c85fb3aebef1f8cbc01ccccada7543514e2c9509ce192d61ce90c898e50d8dde11d6fcd4387a7e5f66b439af13a137420a94bcbdd259c02f8c74c6b5eb1a6aeb23e2c07fef1884424dc4fae793938cd1cd440edc2260005c65125930599d2bf8313d449c7af7d691ccd48fbe\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 731899116bb6aaa41c9869b6374c44874bedff493de631c222f8be42e8c71b30e308093e113cd3d9f208ccbda38de8c803eeb30b99e43535117ad655a9067d4d4cef98cacdb555222f3fa3fd6dacfa22555876ec5380ef8699b8ec4e489954a57412c37aa0ba41eff64b73b7b553257fd3648e9bc6dfa5a60156e3f87d9d44330144a58c1ce85a1e441a1fc675f80d3930026cedd0a78ab0bbf5169a7f71b2bc242868595e2b737c34f4c70cd8dfb8650a30a4c1c108d1c0e8a6a2de9d0ebf6ff712599739f33efcc675f91488e0a9e006ab1f51d0ed89c74f1b6001e925ed51e46dc4e23566b30105c36b5fa976c80fa0973d79c5185f58233b5949b22d6697\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = bd23a5fa2e2f62538900629449f30ada4a1751021df9611fb528d424dab32560bcc33c4214a4a27804b62bae2182ba7eacca55700e88568d5b686a39562abf7f24a620cf32a70c8b1dc0d89b54824d7678ff7d1e94581b38e9f531d9fa6d18854e1b01d9fee81c0c046fd7394c3a87fe63e75788b70215063d75307be8b308cb655713ccb8e1416ac36150514ebb6d15b1617e84e7aa9ebd8a81890aeabfb2636446af8e4138b49cc85ff3019e40aee01afe6650870cdc633de081225731ea7ba0b446655d9bdac6bc0ef8991c0bac7d6fc9916ff89b2808e3ec1e266419c11ed5004c96cb27f992d58f32e38a765c1243c4be20942e1e1674d4b5dd5b8a0ea3\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 389e8eceef337c7f1c956871f87c6ca0d8882fc2004ea5b487104a11af47dc0642f827eb893d95db66a4b9d7ad319c10bacf2d3cc853e301df6dd047044f6fb5ecc4d20b892c384d88e5c6e4a98305fd8c635bdbb245366853683642b37922dddf12fdbd9d6da582533a4ef5525090c7e6a1e1078b3004ca054608516c88685ef6ce16c034415cf861057b1d2d773c6624a769e9c129d0ebc3d1ca905a16ca3603d00afa4a85776b62a40e34e3798173b4f6a6ee40283e0403be7203433072f37570cab0d824254fd3fa0fef00f28f89087664db6f5153a12a7251157333b3523fc21f7361eee6b6c30ee4b88ca211c3fc867548ef112fcd9e352abb5248e4bf\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 29ca8ec17d25a457668fff26917a33c7698c4d85e76fb2372d9d0b76142a8725b774e65fd68ce261784cd8317b6967ab787ffc5eee6fc64f7784b8ee1c20796aa8c5f6caaccd410829274c4f50e0ce318cb47180ec4044ad1f5549d2543bb3f9bdd9b5a5677e81d6b58daa0ff1ad9d03e7c7e68fbde0f2984b15fad6056ac96ef1faeb8f3cc77b406b51f57e2a6120ef733b244ae2ffd5d8f644cdf1595edc644ef678e81a27fafa278314b9903b5b61d5bc64bf4a3d19941a10f452efadc34be8305118ad3d699fab185e3c064d3a2d1faf7ad0c5713910df199e1e3b39597809daabea1ad8853cb412f51642935562b09378ec82bebd34191f0516b73ad1a0\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 848cfbcdbc5441eee9c26d755b80d63134a9b85c5c0379edfe19879c17fe9d85620b06ef41191b5496968be05e5a3ea7e85bc1d463096b0e3305948bebc79b9f298fb1b6e68f8ce1503d297ae73760f5969de48840961b65881d21513ba2537f63bc9fcd4817471ba6bbb2cde3bc4991507da727a19af05a1c15548f79c74e1f35f15724cf0244f23ecde7af3a225e174e8d510de8f6d79ecbdc05bc1173cbb5c85c6ffebcdd27787ad9cb571c130d83ebbab558fd5bde3a406b8ebb2087717eda605c8afcb2e6477867311a065e859b094b92d9dc4f1db0aada764750b2c7d9811846fbd2cbf94e9349ed67130fc8999694c5fe57970e8597b87351896ee52a\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = inval", + "id\nsig = 03a6e768923ea2eebd5498845d970b29a7c4457088fb3b8a6c787478274514e48fdb18370c4b89b2ea67eb00f31604c18e2b3e75d792f64a15fa001ba9224eb36673547b9008a2fb3f07646814e776a7ff4dd5a955429d683be0702c934061d52491d8e02b12a7fecb11c7dc3e11aaa0ff9beecfef3281371d3301db400cf7882188d847d5e60fff86d9b8461ee896507b8fb3de601cc31bbe0fe7b529937dce5c07edde203d9f7e75816d5149e5dd7503d6966a40a4311c5f5358a90ddc0b81f14a8fa0933f60c96965dad9741195677e1f0c7192834745f961f2ed5d7955f8dc50c84ae30a2d32da9f61d10ebcb4bbf53357965065128ea33ed353c423619a\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 2d36f4b2c603adf665b949bf8d1fac4ce42a78b06899950d17b7a44bc4e8b3be7395ba1bf7a7e1f11bee63e07dc6cb2eec5d30f471dc3d193383179c189935bbc54b3cf0e50b39f31e588949e1c8a2beaeacbe4003dc0ec454bc94b042fbde20c5087ca9fe0031b6296814b9389afea985cf76992c33b76b213aeb8d57777e88b4a43b822fc7ad5a768f395f0c166662717f3dfc25593ef7f8d14b5ec25956554949ee2dee3d699f067c2146e47d3c10c05d9d023c74d5f2d4b91d98ab63088e3f049cb978462b635f5771e316a88c5577a9af6cb0f887668dff729fbf0201cd8bd26f8165bc3072958ebbb24fa78e1d385d1ba9f62467f5a1a510d66108ed69\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3067abe38926665352858a03b40f4855f4a7a02246e5743ed8a940ccb46987370cfe5994293feb16dd1fb67b60fd20398b7e807cdb5cd3cb617db93d40fb15c648a536c9e5f067ef31f453cba781e5b21cb0978cbd1e8a7d4a448c008a709863038085aa3d07bb9ad0c1fcfd018275169bc7f61b2ec885985243fc0832e892a67c6bffc2327521f03ca52db160ab6ee749090efec9d4f32c37337b6abc6bfc7c372d11715f2768b154ce53148ab5e303e2f7d1e096d981a3d9bfc38e4f6819293850b0ceb3e8f846e123209a0e62d27414045acde134440cf8fa9d8567a6468dce3591b9ea9464d3067ca093b916397a193bfe99fc477d0de046f4e27eb0adee\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 772147f2242c1b2e1dc0c0237a976d8f872c4244eae1fea3c711bdf21d5e3a1a62a2b0caa65b22920c50d77ad5d9a0d052a9cb096549d8516c81ea2e5b20b6fd61582d31c08bb67213c5810726dd5ab8b6ee858045fe59a706f793e6c49c2b25d1ee4b7ce353dd0caa8fe87c162cf0b06faa2298d745161ff1cd950398c1b36305dd03a8d52f65ba95f1b64e6edb9a5042ba1d0f74d725c937c3f8136b35ff8de06499a2e0fdb4ee4826f886dc65bb876a59069d8aa7db3600a1cf064f5484cb7ac9997f597cb3a49c8f2aabfca953ab070255aa013071ecdd722944633e1ef218af418ad9fd06b861212880097463e66ce0f37e28d712690db43f88c5e90130\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 4d669d1d6545081c5ce5972f539b6ab71bf7aac14f5c8d852b71339c76d2579c5ca9f6200b0bbc0287cdda61cd1ee20298227fa7076bcefe927dc9ff570ac41a69faa5af2812bf199f56f81e43390ac95370fed20f1aa67c286c3752b24842ea27affc6aa826c9e59bfa790498062f242c4ec07c77854ccb1e500845b2b654c4c59b60d1be598f016df41fdc9a20f4fccabcfcde28a08fc87b0b52875184a2d6267bde1e3a2d6a045755102fa994f57f2de147337bcb044258fbc04860a3c7bc8c1f49bc7773e368d4c4ddf677caf23107480538eb3d71ce80055f62afce25143a52dd822efa8b1a1bb1a14eed9e150f32a9e9a550defeae331ec31b35c99f56\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 90d4fa1a743289741d363634ca6b0ada064d3a5430271053a0f5ab8ebf7423d790da1c7fbfdf0d088d70707780f7d7a1038d5491a71243382ae77083270210703e0d9cb7ec8e94306be784ab81b63747e28036286079b052549ba5e30b3a38046aa7f1afc27dac3986fa53aede72cf226c96e120c52d1031a082355aa71a1b582fe0f8530e41e5d7684c781a142e4661efb3607fb2784983f054ddf3445fa10ded1a2898e065d732c73de5eef0c4a8a742d437136cfd269e82c7c17473b4adde9fd5877c8f2bd571e6597fe1424569922346c626c6cce8b16eec052fc13f93c3007a45b76927a0fb7b7b47089cd707c600d68b97be5c4208a531d62538264691\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = 825de069a685ee2342da6864b49e06ad4491133c13a3afc046128442e76f96baaccaeeb9f03503b3665883342cff5cc6d1f770776f94834dea58260442a4f3d6d2f9c2866228c724df937a27b275d5058c3dfa87a97a19c852c322b0f89fb4d909837e81761d2a969e0491ffd9f8a2b583cd0b94e8a7754534e7e4a6ee55dfce992920749644a369184325d2285ba0d542cdcac255a10b6f439672821b937ea199114555edab6a0faa55460bcb8485fbcd955ee87325f235cd609f9d42dc9f2c810cf418d5ee89b76b078e0def2edef994162fd7a3abc0de9f09d537b5f0c332d714d53b7da12a212194b8abf5e55dcc5ac01e19ce5c58edafe367ab74b89bf1\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 25b34c2e795257536b7064ec7564f71e25b230a80c82e49303a5db49af56277638b569c4a0fa72ecb38de137275fbe1c07375a4d044dd6d27a05166ff4e12f6a851f35b65f10c37017fc18eeee7d62d6a2b56dc2aff034682dadeaaa0b98773e7e3feb6f46fbebc5da59754860839f01580ffd86c6f600a2ae206cf1fc59520d7e4f048fa31157244c78fe022d8a9a57273240e0d5b6aa1cb77c410f3ac0a57e4ecc7f20f228081fdebae3eca917e16ab1ec5940ab5b10791a1094e46d0c244cd1fc2650ca1efbf0c5309080bd488e433ba0423451ba68c27223df02b3056f9d64f9310a8c2a71136ba0c0de6e151f0f84b933a7bcbebc0170d88d2c380c284d\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 9aaa857bc84ee4ead6ec3921e00838e5b6e42c6cce5e57721fb87d0702730f4d4646407afaec4091f8a0d178601e227fda7f3870f1f08c10910f8a8374e22c1997392c8e807be0e1682f04fd3dde9c9277689306d9553a9f77d3076e75c11a3656da3275ff2c73bfafbb51d00fda238f370eef25b037dc299129578953f03e4ad9098d99d6e5b839f742eb8695dd10892da363adc2df295114bfa21990385b0724d2d8c03a872dd781c97336f630fd8eab784354340986c9ad0b85c94876acf3a4684c8ad31517461f6a2404e990b001be94e7b4f2eddf621ba3b38fb9207dd341f4ba64cc26d87eb5fa795fdf8ca0dbc2d90089ddeda90cf3aeb6d5c50ad9a6\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 3214a13f2906f11141de81f0aa4df0af15598d6ba369d22d538a060a86d4a9b5b304dc146ebc8f5484601a71e2774bdb28213c3c2369994096346e64a8294e4a9147bd8494efacd6071b9ea2976dc4378a963192b8478446cf292586ec2f1e9693be2e136cb71ca00e1e358ab94e6335384b8dcc307bd4b06a304a27ab7e3d2fb4c62e903cc0673f720715ef389032150d341788e895922e78b835813c534a7c798d5d3411ceed6cb030e6f26cf074e39604ba51f4ef2c570424b4e3b64cf1b2bd96a4f50300094487f16c589f68ac2fb8a454f6ac14a75067b53537b290919304a7251601d8399c5106e528548e8d290e7a8b93ee9b711d6e75bac4505fc613\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 9040b3d077756b975a4152cd3cffbba8a607287390b7442f5be9a1962688cc8d59fae56886a713ad692766767deaf42d56dc9e5b82d04de243a9667db08b853bd83c69dcb6634ed3a3b41cb445d268f017375951ff14d962ab0d5fe0ab21561e009212222b66ef2f41ed74da72ffac275899a7c53ffcfdba65a7e153078a083bce6520885441349425b7b5d8e36a14b59153e56a701dffaecc05fc24f6b26899665e8bcd21e54b537eb738160c4674f589a319ebf16185e7beaa94ffa5727bd2239d8e97c9c5a700b463bd3da646c7615651a3469d1bcccce7cbdc5d6fd9fc08fb4465e94a81e60d6080c75c2514cf25c6ace920f9343697732139430ba4e79a\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 473f078276387fd47e73094ccdf297a08ee76192a9037ee222b21705748e4a43b275c318429dd49bb4287966f7e6f25d54383ab92e6fe2f524359486f5e5fe992633d496f245acce20ca913c81ff773bb82b104d85767b0318269aee9e8638dac6b6ef38cfd47c14993558e49cf1ceecc4cb4e290eab489f523bd9d3b317b9d8c7abe94db5b294840beb4e00fd5b5de9d469394441a41874cc2418eb5c7374554bae9bdf7043205cb2856aea9728db60994458e5a638cff09e4826f894d09a408f47c0b5a40c9fa2f9355c8d63c38ccb82f10c11aa37157583e2323ad46b8955510a0393bdd0586f27dec9ad1f4c0b66674235f22ed76144acdea78c62dfa0fd\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 86df04c72c84618f98459543662f343149a83741ac29f529e2e9f3cd770a647904b892df7b8c8ee183e893ec6e50a4107d958c3ecebedce2cc64b5761c415d75c658e185bffe27fc4608f76370fb30e91909b1429ae439f335e222f4e0d1bb9336dd37a43d151ef8735aad876c5a7a0ea2b952d8d90ae57d54cecd4aa2d94a953aeb0b9e2e26e4d856d3f9c664c07ff10356c4f071774f9e038980a04191289e323675f8436d49f989e91985e9c7f542835f8d9bf3b54273e886599ecc276d21b20362da10d486152972fdc086e89255846d263f9001d0de4215b694b35d9a30b7e7d6aebd171ba6f29575b10dfedfa746a998871dfbdf044453eda30088ca6e\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 43d36330d40291f18232c83119c692b92b70feaf4ad8739ed41c151259b53b76861af2cdd326383f31d51a6128e2196ce86bf6ba46c590f413c752e1e7249ef0d46ea00493c9dad0d02c65b780cd36f80abd0c3506dabbb07fdd321170c9ad345b3a522623d4a163207192eb0449c3f5776fbc4925cbdd041dbd5a32734e2d294cab33d66d7241c7870da2ed442c1b869c643f2783851d08877bedc5622bb4a1ed5ad7fc76e918790204ccc9b8fb5752d48aaba50ef8966c8ab7866967a58", + "cba44b9fefd0e3108103f6789a27df37e36b4f166f8ccb184b3d9fb379f449025bf5aff87466be512e89f2691f618e23470bcb7ebf487e0cbb10a8afbe0e33012c8\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 72791849c8d418b40b3355a76d99da6a6c19ad63b4e4580905876435fe896d511fc017cb515a14aed320eaecc169403431c663d2c2d1e82d8cad304c796a87be085b7f539604f0e35ff0c9e8e992d624bf29eee9b13f77063a67b2ad90a4e7495da4f43e1a3264f5433c404d3feac8efa6548cc2e747d9aaeb17efb8b3db0fb2243402d9fd07804990e64a15581493798a905feb1d6de2a7925f5c65658817888114d74299ac53a4364d947ae2f51c4292e5c9f9c53ded12aeb2b4f28a547579c1d5bd71bed3189108ca4d04e6836104a668a474b07f84c0ef6a165e32d64af083365127683c8a4dabcf94e69eda0aef0428afcd3a1e46db77151db747836289\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4d758418e4b714e083924c625c09ed9855a6744ae56f7238f4c582a5e6568359ce4327de12a2a531186174d4385aa8772c3953d48a9e15f421397f073261f1d5d3e0ca8100a0d5110a004099d82fd691ed0a8aeb0d38f5d0f47d7867965b46ad3b6074eea0795603baeb71de81a64d6f744183b2707efdf959e1eff56b416f94b16340c70db18b5947ee5b382fcc6534fc55d3fd11881786c4af20f2bbb464e67c790fc3442d23d5bcf6bfd9f19ba07affad8d4bb6a0b1140bb387cdf78f06919147aaab149cf5493a18966d809b8a10bcb2590135aeda04617d4bf107f9322e5aed821ae412f5cb6085e549f967da0fb8f04980e5b0844f481ed1c4ad1e6274\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = be284a4580761d30c6ff98ae37fde3d2296b1d43ed5edc698684fb57b9fbc558a4ff1fdd102c457cf7ef1c63b535c318b751c0833cd4e2ea712b46e0f8d4c174ac47c876918da8eafc2a117e0457733a994e2b51aae9641292df7a7a834710c196b55a4ef61287e350be24b8b80548090abdd904b94ccb4ef0ab5a1e50a665f8633f11eb9a7dfa112ae6a2e4cb0ab2d6235ce9abbd9d8ec2497ab4f2e48ef3b3f599b89a925c09ae83cf556b4f88e3a1387fc3cdc5dd2b51707edb07092524381acaa536f03dd0b84f3e81cca0b2615062b1b4c7b9d771e8ae6825d90e4b8ff59aa712029fcce72c71c6da889bda3b1b296fd6dfc0af61be421db66a3ee56969\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = a8f6d6515174225491d4046a511493c1158fdb4590f5e8cff5a35a20aaedba28a7ad4f9cf7f5e5cfa8523e3eb7280984232937fa4e0e9e5e020c2080470cf86092f65a9fa47fbe4ba369917c6b9280d63ea0aa88cdb1b301182f3c69c501065e9537f071b5b3395867948c85b6f630863654742f701ec0a01dbe15f3855e1b112187af2aa6e28202dd4da53c404160ce82df5d74ad6948a8f76049b0f5933cc7c99c5ad40721af70275a2bb3b0442e6a438c78a28e611aedc1b3778d25d36c4772e1499231098ae3cc9e34e83fbcfb5f1db56acd2091aa13e0fc61b55e553347b79a479fa1499d35b1db37f52ba5c0ebdeffc4af547b21131cff55b8eb7faefa\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = 1553f0c13ef8ebea5eb02471f270d826d327fbbe639d97476faeb3033e00aa95ea222ace93081a6403a10ad39da25cb72620624427d16c42cfdc53ffbcf2c8268493dcb72b9ab20447998677ac6bbcd4c487cb0810810292bdd5dfeccfe10331b37d6183841815286660ef6c392ec12a25e26348786c6ccdf297dcd832327141038a8d705cf82851033ea65b16782ae911e8b876186ed93eefbab77e6d4958a903b6594d0f35cb5f7467272294e62c2b6b4cd22f91c1188513391884fa720b309d76687dcebe8c36fcc1a7788f26fb31e2ab3286ede0ae5bdfdae25883be3fca05289151d3977f8c3526625df5f785ffde1e31c5a7390e6e24d60e35948319b1\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = b36916d94322d69a5fedddfa1929a5648a64591d95926d2c85278c87b36d15e99f457cc872d1363467cc46e23cd1adbbf09762d7bff2ec5a9b0ab5c95a4997749d0978332b8e5ab757025146c214c6cb98ca28b8a97a037046504a6b0ee78a74d516bccb40c4e988206b91e767a9684104a28b717bed58eff819d3743954abf18d4450a610219e84b78c05a0d7bbcea9f23fcb8cd3b604adb632122254d28f0bdb299c08f85048fdd12aa10045d5c8462d38b06f3dc89cc6f2e414ca4036deea5c59ec4a4999bb13fc951ae68344ebae5212ea6520f89e52399f7c50c2386707ad0b04d6fe136b441d25df7afe3d0d22cfe55a8ba87448c387616ad935f29690\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = c2c5d3a468d2a26d5e6385d450f91edb195d66f4a3a78608312af4d7080cc1007db9d43a7bc3d3322cd3e07db8b9f1cc541f30739d6101cd6c9f4bb19315f68d970f80ba6008b23d6153377f88213ca26924bc277f7cb676136451dda0ec7cb9c44172a12f496a0f435402e3fb913d9d750116acd38cb222d3f1421dd68cddea192150204d01f9471203d6d14b4c6bcd044368a4bfbcd80ee25013af07255f0f207e242524de386b32fc88dd17458527016320a55509245e7a779169396d09408875bfdabdc71d6dbb85ac66416eed4a213d02bdca1be3ed1c1731c24325baf64781ed6910048105dd86b0d7d954496c4d7a117c616e1f7478b3f4bdbac723a8\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 736505743e80d60bf7bd7b80a24336fafb539ccd6a8f0ff201c7a62d17f692da0e1bb72b1765f4f5df75e9e25b158cbf0ff5b3eabec042dfe66a72e32eb43e474ac12d34a5a5eea4b5d1bd26723c77ec381ed59cf6248aa4e60c2520606c7e9855e5d534a3b650a6727477a37a928943e4145b7a14e0c65741f2cf2a237f9490add06be54b4c449e6b41a1d9d9cff6295dfac4489259baae1707e9ca3979430a693c0e57098a1e3413f75973534b04eff018ee04ca58a3ec65f8b6b4603f40a4e616ff0835f3f4efb65dd38a4b4a53d7f2a6934402342341d38fc29884cd59cbdef1528d2e4a26cb39711fdbb218fdfe5e7aa0f3b913e9d4841475abde3060e6\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = 9add0858ed06740d16b87b5099b3beb48fa900e5541a1072bff69812d89665eccb0498a58730edffab8db6e505607fd457a58cff056db9c045030fd21dd52425ba00014c8fad2ae3f6174931419381ae5c438f92068a31e06c0d6b6417eab9478a666203acba89e2a7071a8bce08b354a17802a440a6db408e732c3514ea08a10505fe7429c953613f38223a560cea74c2be65768cbcdb385bf93d55bd0f3cbf1767ea44f7da233157e01b3d10cb7b65615fb8248e9ab55f397ea5318dec6e793de450e83cce3fa00ae2137ae6245dd518f21d77d2e229137be861f6187d36dcf6d339f07a555cc752e5c8caf0576bd3568853f6865df5b7c02cf06a48594474\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 64148b25121e13cc247d6567c4e7f37ac4981fbbc3b3f3fff167268b462ba0c54e85c828b011b8ccadf4fb37c317fb3c12d1fe7a53f358ccb60f59ed02882606b61d34f0199531c693da5a22cf3987106308ee39df81946b246a49e00dda8fafa019b1e9f3bcfcaa248d7ce4273f994603e88d641a30b2cbee835af6d5e4744fc994285efc7f46ed3d70d501960f71a927f6358e7b662ff644c10f4d57c3cd624db6d23a6caa0157ff4ef8c3bebce167d0a3418f5d73bf395c202679ba8d3373c072a8a07b5dc4050f566174c3bc5a786cb86c67103436cbff9e248a3117532746a1bc1adb90ed571473a9fac310b903cb4b2f9f6fc5ca968244bbafd7bae997\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 093015430d2f6c4320f1630319524c7fcb3bd22a1d2964cac97e61362ff455e2d99abd4ee4b466b8a613d292f2c17e97d2690291d41a3e3e8f0cde315487c4101c1192bd6fb6ca7fa2265c4d0b80443738f332c3d0aa6f189b368799cc47e8d04de4429bb6e46ebc47a7ecde586441f055b36db5e7f15260403c61f1310d421ffc44a28a2548f9a625e94424eba9520ac31d406b8a144e93441a08795e5e6ff64f0619085df187a6fea65861a251167e7f79f5c1d0566825b8f7b320a929dadf4958b541fc27b5b5f421d0b8a4e1ef75fcd2991d7aecb19f89da0e175b046d47d7f7b797a447363c3c3cb61902935a2fa48bfec3e30720a990273d794fcec4ef\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 1fb3f000ff48405238ec0f4641a9e468d94d4363c2a35c27599119336ea7b7c6d8ddb037458e80cccce7f402db03985a4faf0eae6d9eb7577b6fafe7978a883172170a44c2b35d3a7cf0851cd2ef6df774a590f23a4c19404f5662d310603376a089e98f5ee659454b3db92cc528aa2d3461a7aa9fde64ad2e3023850b5406a5769e7e7cfd799ef4e4ebfca4f5ddf56bb35140f406aa7820195b002fc48424f0f330641051a5d67f15f854466d216b2623e23bb96ad5c86ac4b135b91a24df28584d94b64b471a0e970ae37e4297c73244b425a03f58a3c26fb3d3e51e33d516e7af7da8d9b386a353afe9ac1b6391690fa14981d30eb9859dad45b9fb4d7da8\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = a65b77dab3ffd2f8c4de17bdf03edbed663cbdc75f2d1896d48bd331e7efa43a71f3f64669b0529ae3e033258f0b518bf967081db14bc5607b640bcc409bd50b2ca548ea4ddcb24d3a220967e9cd5f5e86e167c8e793cc9b7b5b505c27dbb1e63dd151c8a5112d2e8af5453463ab7b141c33b75bee6e5cb8d8bef9402f47402c6a0a86d64ff98a3fdd24f401dee22fb6bf35412fe5255dc23955304e86deafab0df002d2a27b45000c6f85ab9439182219652bd4b305362e3135e271b6cf31e0f2c6cca8ecd717880ffdb28cf1f2b2672f7a7bd51e2ded1fa19522c5ecacd8a0e0fa2f82da56e321a595a4e5f6a24fe55a2e0527a847455f9b568d9f0acbb042\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 8d30ea13beb88de3f3b0683cfbe2ab295d159f8cfd5f5619fe00c0ead3c5f31e2f3e34fadb993ed2e001bb780257edbe26c9eecf8f11fcd6c40923ed98b6b65b43fecfbe14d65e678bc62edaf01b14fed4ec1674cfbdf7aee91d6dc5bf371e45f7392515c98fcf6b73bea54e627bd8effc69be2fa6552b6183d9df1441", + "af1881046184715211c3f10b8d5704609f70a2e80b0c681baa48db2ce8757a4daa962b1a99360b4c2c7c9129ade112f007cd25e856b2f502ff3aeeb1bd2e64c1f7b61c067f5760a509688b87fb9529f305d1d857a78d70bdb0d48ab067f4119dd2c4726b68ce55c27aa090e7b022b7dd007143632746a757515ec47ef168a35cbaf17a\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 24941990c451972477c48a1e01ce29a70674cff6a6f7e1b9e5969c9edf6fd5abc29f01553e3001f0db24d219347b85326ba1b145dc38d63c8d05438cef2843823d7d6b519572c881719e9fe4aa2da7b89d07fced3833afc11cad6e4557c9cb7845afd032beeee940c2d8db10419fdde7463ed0656d213945ef8ba53602c3ff057230180cee9623ae0a1d641b49efbd38f1be0dce4c0eff7de3e80466260c10da6e8edd0ef91cc7b80d8fad43088bfb0b84f1bdb69939a5c237e78c67f474d87a19e8c5e4d517923a5e471fa9f60c954d4a8264f38f069117537f7a1afb7408951a8a26fca667b3ae60d33a2c4057c653ab74bc204aa96f0ee0ef3e48f9948012\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 66ca05bf14b498f2784e9416a0bd86bd34642ab138ac4ba1e3a39a773b88356043805cd4fef374c66d947ea32651e14d308123f6bb51c3415fecd9d36722d01e0eeaa996526b44f07e5cf844e543dc6f52dd8944f34fdc6c150f00c64cecd0352330f918ea219493149bbcf8c2a0586cc8779ed0efa32bdc33447f0cb0635fde4b14be2e54a2685b6dbfd485dced0b9725e134f06f89b44984290f5b98e8733efde30c9e9c3b2658769384dae324aea46cc8cd841d97a371e896642414d4a976fda185fa28b8c7ada8af3dd515632b89f13e3153518016f758908997341fe172ed6970697145858ed2df10b4e807f8548e907954dd8bb8c7c80da48a3418d94d\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = 6e2ae3b01ee8db55d4062495a28bc39e5eb30c68b1e80621d8ce3893ff548ac9bfa0c48d756739413c496e9dec0ccdc17f5d33b8f076fc62a4291a9ac3e2a6e69400a856bcdcb20fff75eeb29f61966fa4a5be190e1b1152ee9cc6e5884b1fce01b1d6a9a4c0d9b70f1e457d565bfca01e86cf4c96f0748e14114b1b80b646446b7d926f96b3c09663abde0ff12551a97df3250808e9ae2a20b02a2e22ab9715f7ceaaf7e652fa1b39f433e0f9bad58c62f7270e8b48f44301fa2f99222ec2d8c553f1bfce4e457f412b833045a3e68e2d4abe2ae79f6356ee12bde7e403d4c2cb5aec74adbf692b13b23e035da0c5648a26f1219ae6b25855e375d683d7d17e\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 21d85de13122c0c1914f774fa4110c9cc825cb726098736e7786e0a2e9ab5fbf92a196a3e5aa5ee61774ee43e74ec542513cd94c535b96e69c81e2ad671af17a84b9a4bfe8c1cdea2aac5e46848ad7f179c305783668a3a3def11c4aeddbf32def93ca743a7a2bc2621c6bac454f6c452db55e2f146d424fd64feb7ded950f4bf9d8a784468ad7ed59082cfcbd6c41d797943ec8b54791ac53eb82b82a7045e4be5a6317a0cda8e91acb734f4e14b3192737f04a0a1b9069c5a0c128491a2e4489d19aee8eba7e8e12b2a51948fc3f600a19e372931cfdc1b3162a45de86e36e35e42ad909ef27242cb264ab0df3da6d327da447add6f567745995d2638a3c6a\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 8c9cbb00a9882a86ad2b6cff14c07e9bfa055b44a5256ba46f88dcd1ef295de245f5c6116bfc23f2c9227fd0843fae7a66256057be74f95b7c388b09a4fb44bfb2f92002241ad29558913a30c06299346d22d8e81cc9520f9f675c55c21cf1ca9735982e359b43cc053f63d66e435f1a117eab2ee3060a3ef0c5d5a3b7fa3d329e86299498a565e6aae728eca14cb55b9df92effccdf99869ff62b149ac807b288d252347175df66560fd2afc2384606973130058ef2b33b8a1c6fdb0e1d6e59978d3d16ba835c9dd684e4d901526bb3eecfc57a9b463e4e5ec77472ed8b869ef81400e4936ea5181763c5a30c525e84d2822d652a1560640c868233aa3a7fb3\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 889440aee2637bfb10978f2031538732d32e30aa41608245cf81da1fa64ac6c36a2f8d7ae39126ce0c672f9e39f09f6938a136b89bc057b5f32c9d2af28bdb16e8431d93e9b485e1f42a600ca31ab6809dd61cdd42ff37bb161da6685b557ccfb409d0030dcd2ae25a77654d8eae6cd4018d925b5f78785339e05b14a5d2825a11c9627486407ddcefbeca4c8d0bc036ec05e1a04fa503cf1ab175dc74e6af031b2f4e138b1ad55792f942a9c49a9964def61c51c3054f4a4cc2ccdc203f15b4a196731588ad0f6259570e6b01a07e62068e874ab3e6aa661b7e04e0dd4b8f9092883508146193b44d52a76540119fbcb577341e3af284c14f2528e9525f8b7a\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 147f6e9c4a52afe867ff9f4c2f0f03e5f4f8fb68a9b5b420bb3bd62125df8fb1285db08edcd43b78ea7ddbe4ec9eeba101d0c85c66cca2897766afb8e1ea4f0c90667056a0acf08ed0b3ee197c380e469bfc3328348b4ba7c19c4d729a893db6b73b2eb0288b4a2f2cbf3aa47d1723bde5bb7bdc7d156ae1217647577635c8426963a5e32eabd0bb7ef583a0577e5d5df0407f1b4159d97c4f564c8f9879c84d77a26463e8e4e277f8c3334cbde725536721e5fa6b11ab39e1070da3f67e0c42fe92e4683b249311c034ae04f0d227da46d6c0022c7dbb501a6ef2da96131e220b5c99bb7b0f19873dfaa3b19579beb7fd4fd6a59bc23d563cc39bcdc224117c\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 6c0868af8ec94913809f0c7cb10c27c639ad35ca7c6438213e96eb5cf90eb20a35fe2fb96c690903708f638b9b02d2e37ae9a3a6b0a9bb8d015828c8adc30f225b0e290b8e6f2361224b86639650aa34e4b8d41c72dd73443c80a04394bdde558e859c635f0591cda750d5c4827cea9e0562701a43296d99ca727676f2b41197fe6568308e9f96b355499ff6aad6355da1095f2bbc12b050969f0b2e8c91243133355c3f07f4465aa3f0927ec7980631fce30dc36dd3d742806b6b17ce82dc1abbcbd6344aaa9b1d93ac0223396facb913a2a26824faef50319e7223fe6f4fbdfacd9034b3e5bbcebfe548240dde63de3916ea8fcdb5326ea3320e833cf816e8\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 919c27ae9c2c52861aa8defbb67ce33f9f1fc8e684b5166e4ff43db6e3fa1c9a817101d11a79ebab67509dac1b59fa28c0198d1d181080626e1f24345ad4dc1b58c89dfb3dacb119114ae7f8563db2f0d03118582b94400dea1cdcfbf331341a802c47e4343b3776d23e4f3602f6a1f6a8709f8f5ff33e4d6e5cdbef812ff6108c194a7e269dd510d7f6a4f1993a315caf64db2e34dc6c47b3c37358a80db891f3fd10f459d1f34eca0ae12689de3485e7508f66dc1941a17d8f917d22e9356a157494ad36b6034404d2cbda779fa7038a565daccde7e849578327a8d246cb08e943710d9d8c001211296a5b7a9f706b40c5096ebd3500126ccfbb418799368f\n\n# tcId = 158\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 3eaaad835bf220eaed0b232b2e99e4498f166a97fa1f4ecc9403a89cdea28ea3598bab4c2fcf343462440bee6b406dcf56eec6933279784d65472c10ccfe98a97c1b87cfabeb24f53044a699e31144f6bea5954fceffbd5f78c3d662f8c68d47b5dd412206daad756a3b6e5376f4e2def40550fc3c1c75afa428c2fc8721048cf6aa157f993054edad9fa607e1275aeb2a954884e43b713898d485463d15e13682c7f72908fe84a7ad17357380b8009dbdf6ce6283f7896336f5fe59e5a1662e3f36226099b47604606da81cbec13549fa7b30782c50c09a488d735fc0a96d3d05b71d963bc398037f422947bd572e3acbed2e4ea84a8d2ca6b809477ecd16c3\n\n# tcId = 159\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = bea2841e394815379fcd8b1c8522c4f7ff23aa4a9ab2f9e8680b8ca41a8a719e532e9fed82b7f4867555d4faddd1b25594b7f3c0d4e69a1a2f0d0fef080df98a1a5a7dfe8c0c8865324177f5b0ae85c5e10da64c5cf9890887f73b0a853ee934ca5815e9c89e99c1c500c58dd7fd90803672333702d891324215390a25ac08e2aa4a93d0cc814f9c81d216c546aaa1e6e5334d9110aad233b60d7efbd7276ee6a8968f7b5f1c22499e925f90557dce6cf8beb1304b40428fba8084fdc2cc8557c0840263a288fc686dcfdd7cf02c39b5f2be5e5914e0bec6b9004fbbd687602fcb93958ca38cc2d2ed14d490f0e7f3b459846e034d73b517f5c43c1c9b2bdd7b\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 26ccff0fcc5016d566864a01f55a157552eb4c354e89adffb0250c7094e8627efc3b771217d65fefcd720cfcf567a266260dcf621fb4bfa3c82ef58a1195d69ecc87aa17933eb8758124712e163e613cb0d0f64a11689016facfb9a4aee48e1ef4c65655400503de4e06917d62265d4799378562d1c70d8fbf8eac4838b95469457ce6a70d534e0f801a313d305ea49a8cfa45258ff989aa33e2504cd02e5f1ff7a35174a0f5717028f9da0e71706d111afb2ee013167ed06d6b915572a4e9083e57a891c2226dc0034a52c2cd2d04f0c0293a398e10cae4ca985a424a3f868a96ff9b540960460605dca90d76045507a99c89eef5e2ec7618f9b6cbc796b1e0\n\n# tcId = 161\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = b8dca88b5fe5c82210822f56f267084de6f797a8a3608107b685751f6bbed48ade470bdc2c9db4c363b15e7ac25066c5a92f571415c8f1737872ac845f37fef93617339e9113e12b4e0a569383afb0abb8c397177d617d0309f6112f2bb9989088a2a60837b299a510c1156d8404d30c37ca3078d9b28e188be6bd029ceadf62c246837169b6c9f900878a5b6d14302855a4eb343c87437c686b156fbdd1eca2ff54d872251591d0bba7fb444c5c5202280fa6141cbd8d8351f5a95a17b7e7fbfa015e730029eba5bde41260bc02928740f4003fced727c6eee551cf6a95c65a9c1e11b91ae509ac961876af433bc17513077d1133efc1f71763a89f34e56b1a\n\n# tcId = 162\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = 22cd30820e1de6be04fc0be7352814fc7f0f27ca4f14bce7f15dd5b73d543137cb99b9b2fcd26b750a7cd63c31d05486b081b93394df486d93d8709ed3739bcb44f1731970d1a41c3d2794a1ee973002b60abdd03bd8a", + "2ea0bb1a265975d7f194b9629b56ba2afffd0a717ea0cc9ac24d136b2ceed4e8cac6c142764b103952f1858c7c8a294d44ea2d3d9378b56c2590ca902acd846391f0aedd4c65ca0e1cfe126f72eeac044fbef69fe04a6fc2babb5be884c4fa57e0f622b5e2847c5bafcb462573edd46a4cac95c02d0441e9c8c2479831e4dd9c49c1535d499fb030795da70f51639e9adc5fbcc6504de889350f5521a64e63636428793ecc1b9195a58\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 799fe49c5eb9d2efa4b71a13f5aefa24bf87db843095510cb8e08274a583b03eaca85f62303a36d15eefc3106067ae86d414b52905ae43aa2c0332b75ccb4473d540d50c067819e913b3bf636c653df0bfd9b3223a0dd55f38f1025ad7ea8f68c716bfc307516a4d60eed1adab40ef47cee1dadfacfe41b107d7924d2a549339d39482f5c046757ca90381782a1db1fe3cc919c1ff49c88b40ebabeb8827bf19f92a05519289b21e1f7be101a33a87a5cc5b6a0851febc0768d31439d59cf6fe0f75c5ec060c7569ecc131a3fd16806bf53939d36a860a4eaeda718008c1b762e8628e0744ddb3bbc700aaec43be43af1a060cb4bf562ab6a32cb624e8b971b1\n\n# tcId = 164\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 9de3caf47329431d39d853f831aa161e131c8b8e98022909f715689ebc570703a8695dac67c459b93d1d96f44916df1e3c8686c21f926568133ec765dc7b02787ba9a0b4316576e0174cd6eb5da5af5ac1c8f90783ae2a1c1b0955669cecd0e8322faf932b6512e22b6c6e33ab91c367403e2d429cf593130266440f088e70e2e595ad7550f0b006414bdc2dcf0142292bcd0f284d840445be73b46288c643caadbc15d31e64e6e97ffae1a6f996ac2fdc4d4ea654292319397396efbd5d6015195ebc0a531db4720390a8743fb5fb639eaa03a8020e095c309b4a1b03723a10811f4cd83fedfc9610091cec32da0d2aa276e08fca42ae232143df9fb5a13157\n\n# tcId = 165\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = 6b1d032cae6cf4f2900131eb383731a2844a8c22670e11986273e7439a82be7073e2240006f77534bb88a5061734244f22a045b6a56ce5125a1a975332ec92d09638cad1d04791c76344145fd4bd2ef85fb65be532645270853c1d7aa385150b28a31a882e5a7588ffc15c4510e7e19d50bdc6f236f55f7200a8cfe8e06771d4315e0d56035ca3f1b619d321a59f1e36e87dd0247e4ebeaf53853567a0f6786e5b67472ada13e51a2be103b72be934c6bf5edea9d2b61c96467bcce225f93d78c50635c47a7b396be01349ccdff41cee2e0d96f5b004453204998f017392a87902256821b5b534eedaff75c532a4371ee3d1539893c4e7fd1cfcdc2233c03f23\n\n# tcId = 166\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 62a1aa76c9f78c76a655893d344b676ef54f49068ae7883010efa0635345c9c9352b7b27ba717a7d4a2334fe71a90a98068858d7bcddf5c30f60bde7d9582d88cca5b4f2d62e5346ecc551a078bbf0defa0457ffb4fe69f5cf1fdc4360e6f83004b8bf397dfa60bfbef693f4038419d3c55b29e7c8c01ed6beb5db3ed3fdcc494e3a6952ea582a10bd3170ad187a2d31ef15c39c2b4ce49ef6e339bb3c3619b571ef10e60484ebd0cc8195332c86213e5248d5627ca2723415cfa6775adb4648c580b29443993f169e1e07b2c1478fe465785065e0b38749079be7f4e0d7522551746410676d194539f85299c54bdf16e8f9541f17af40dd9c696cf1b0533e6c\n\n# tcId = 167\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 275377f7bc1bdec250bc4490b2863baac3d346362c02c83bec4b1d8859411c86d44b0c105f67e2474a2a4165d6d0d677c09b9fa54b1ff185d254bd629aebe701468cc366c9cd204cd3694e91ee9e1d4aadafb5da57e3611adf26597eb50b57d7452defb03b4c693dbe3f2dd45cbca4e9efb5b963c290cfd95eaf51cb2f03ad97fa0a387d96dbff1da45921c1545f027a01259db8342d73001d1b96c3903e99b25d174f9b726b7cfa7d12daffe3e56fd9089244fa60571eaed4901e5a3cd52868c0c421295ea521acfb7bad17c127640016dd3c8e3cf9f5c506a876c7007539f796b91726fa4a69bc830d63a96d1efd92bfdf03dd5a3e2cacb06c1a65f4700b31\n\n# tcId = 168\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 5e7916eee9b35665d2c769de1997a77e2e2405dcb0e2986d31205958e3c0b4b41afe1173fe0575a7568a631fc9e07cc85f2c454a34b86159d9d68ff6bf4fd2105862498e27c9067b276568ce71ec915987afdaee52ef8d332975cfed5d5a60b62046118fcd94cc8670cde844674fb7a22e9ebdf73a3336c5efff10f457a528217e816ac1600dfd180c71c693d0d089c0526fec6546df971b7479f5f74254eefc0b5d435e7010026d48117165e0233e6ac83ac5aa25ab7f4c87555a820acc2ffe64fc4c10ca417035e7d673a384babdaa374da2c51d50c70c89af184ed678fb8ba3a768ca916fd70050d77850ab8e64cfdb0ace0532f9508480c51e39d39a126c\n\n# tcId = 169\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 428fbdd8a24e18b30ca15216fbc71b1fabfc876a3e9faad7952e6f5687507a468c26505ffea1b3b554ca00e2ca3b2749a65b2e1547c9598ce971596108f89dfba6ac07d414434aafb7c9128f76022c8aed82d627b6798a0e1f2cf9b6e79923c4ffe2e77edf667a7f03a8f4bf158375f38b08350e0f443b85a8215af8b88e8434b357285ec05e1a061737cc4f8173702ece950c499e36f3ff9825aa600903fa44550c0df7356ef9390e222942cb272df87190c3452279c0e4cd85cc3bd27310515173322cbb31ed841ebe7542bf0c746f6c8895bc028f767856ee3c6900fb38d40ebaac8a5aaf8d60d147872e69da9b2e94085f4e4ee8f80eb46fd5a15884340f\n\n# tcId = 170\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9d188843a069b61299d5a59c582d9047e134d0e52a7a324ff160082fce0888bdf141dd15c75031cc8d761116329c20476cb23220d21434a88834c39a20014611c4e18cc5102a1f9de3744bab79d5c040e8dea55ff88c726be0ef34dd88646b23a26b84d061439a390c806ae0dcf31eae74dc077e472b15d257fe57c4636474c2fdc84c22f26e7837df411e0c3ab4882de435497d10bb46d2823e37b8d56d53b50dacd77097e30c2981021efe9f7538924cd59ba525fd90994acfedc364a9d9927e9b4ac9b74e8d7b1520f3abceb6603f7dd49d07900af3c0d6ad2e7fc0b8279a30db4f7f7611e9479907817ffddea650ea108a424727d0cce30593e1435bea2f\n\n# tcId = 171\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 524c8237993df005f97afa6a830de97521a079cc2fd10adfa7942bff9a66449ea36d1ff686e0dd112622c543063e896e5599db7c7b5b09298d7351d4bfe58b62d141e3dbd49deafb6f9244c45d3e6f591e4de04c934a05246a4da67af4b61e2d3a05b0b84d958e6afe5f2634d8f86da479231916955da9136a350b70a36e697bc76f3db6853691d3b489a43d7ce52a7ca82461e03bef0fc23442a58da0a5f5c8d7c1613620a9af5cce674ff7c5cd4a17f358aadc18eb42bf84a3cf8e556f44081dfe0274229ff313aee0021f481c7a5f6ac57ed1395baf8e62fbea83b905686f5f53bb853c2cb97cc7ebbfa7267670d25ab5265cff6a97540a846562d6a988b1\n\n# tcId = 172\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4aba43ca040afe65df9dff1f856b187e920e53b9e7355a452c8c33114976dc828d097060fb6d1aad461a8ddcfc84fed67410762450b73299984e5b2703e3d0eb9359122589d533e87ae72f6be80dd59fbb14685580281ed2608f6825b28e4d3a1936eb908031c5a57d147b50ed1f115a998043bc15e6353a49a37ece48df5fd5e49440752d18102b2a8f936c7054a7198cfaa1ca4ecf6229c9dc84b12ea560367469a39c3138ca6deea0b9a91d238004b75e1751042f0cdac004b0eba0d4dad3f893960dd368a7e9250aae66719dbf808aad6f30eb81c76cccfa1c58370b6c612c574e8c59d2b38a74191796a17d95555b4dbc8dfa7dbcf6fac5c7dd10b2e2fa\n\n# tcId = 173\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 21b8375a400fa4141162646bd88bc64526085f590a7ef9e1d25e3dc491148cac463f63190c777237f5751d46713f5c58ee70641fc2ab2c8c9f696c8d9190ba0bc3670e3fed063c53a7d10c42dca053970fb56dadf34d81aa1c53923003dca035c35afbefef104d7040392b2bb933229871d82e6ca83eaae8e71f27129158098f6d68a0d63dd906ca41e7993480d0884d5f0661fef3f5a5c1220a7566292ee66521ca8d401ef8581b8d7500248915ab986314bc257c2fe99ea4c6a02db4fa343ce83b4e9ec979ca36bbcf81766a4d86b730cc7f8c4a9e7904a2b5874b63aecaa3c730cddc57561a3755791f27c3d75c54396b260a8e73bc7cd4d6f1b06111d309\n\n# tcId = 174\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = 06bb3755bbcdabdf65e7801470229b467828dd20a8fd96381670acfbe4e5321844b681d6af6073a6f043f653479bf8522a11a34f0bb1464377201f7da0ec69578fe121b89eff58ccd879e776463858d9a48f7e1a821f6e3030b7ebf20b9c7403f6c91474e500c9b779cbe8fb6efaff22317e9f3437db1d7c26959c6acb3181f3f628e8aa00f9b7daaa5712eaf2f8eea47c25506810b7da2ee795157eac985f5948bf943c4b0598ca404a2e67391e0acaf4e5b461845789d99c57cd2139c6f8df8750926b2ed0f820ad656432c7417e8ee51b4176cb24b195e4a5c261c091be1c2dce4b9ff1e4272f8a4bcb6fc01f8071f6fc39dd7ea27ffac923e333c0044408\n\n# tcId = 175\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = 895791f81541f21d18315e6e1b10aab06ffc2494f1f6dc6b8e5cddcf4ddea807b2a13c1f22841c725f2dcd6bf14401dd56777187b8012f65c2122ffd3ae77f4e2cb5bab8b074777511dd7405d84634c4bf9b5122f59a4ba890f5c477a370e807aca35842f30f7c81de8ba45407181e13f3af8eafed1c21ba55fb37929cbbe1db0f25f0b34da680985f6495fb49108343e8b1e66e441a644590feddfd6aa51862b34adbaf283117d116ddcd845323c5589fa5c29edfd116909cca708d5dcc49b32559fe27e8104aa2d73f7b35250b36edd5213a2cb1b51b7e2e6268e6ff94f8d3112331b507a82d8a167d08264a1da6883ebed5f41ba988f9ed64f9f76b461403\n\n# tcId = 176\n# appending null value to null\nmsg = 313233343030\nresult", + " = invalid\nsig = ab3c0febd45a9143d8aa7bdc77571d8ff5da9d9451fe86ba4a0249f2a23f3cdc45f407a6a8400c0f6f40e6963204c8064917f19aa3e9e9cd653d4fcc63361ba3590a68219a213cb1615cebd2564f7f396b52aa58b100974873546c82bc647002af5ed7e2404222b98a995a23a0075115ee916d0607ac7a172b05d8818f5d73ed1d9ca0b3b435e6676fefccc448654c88823843fc1a22730f561027d457904a65507eb5f5cc81e35b9b682d434ea0e8128d1adb04fb9d1dee89dc73b1f1f7b571ccba17230c61f55642365142e920d5b45724a9b0fbf5769a4430b1845626337762b40719e2a7b49bc722df7266a1640c204bbce848a8fd6219418e1cc02eb37c\n\n# tcId = 177\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = 1ac5ca0d90b308fa1bd99dad5567455377a79ff6e99af3da419784ba48708d5dd4416873871277fa5ba447252dbbcaaba7376155659f521f4813814f6ab9fc9e824ef512dcbe6f6cf04be52036bfb5e3e93af2d000344542e42061b25d617832416ae2487907ffd8d05ecd33d826faff8e4cacd33efa3e5f4c15902c8a4cf3e210a182e347389bb5e83cf9ff6a41f4551efc44078940a80075bd7e7ce434df72756ae3c93c98bb453eee879017e7a2d566545ddb5158557171439eae4af018e82c383c153a1d818735cfc066cff5badd14ee2c60591f670540aaf469d8adc97774943ad8c8fa69f74e00ac1d11d13dbfe80024735c4beb5b2d472389a3d00d48\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 24e70d3f6f9c59957c923e6dd276058b8ffc3fc9083126aa57abdb2ca842a263b86494dfe9ce93647d5da4eaa4f14fcbc5a01243f9f7ba4dd3688a8f4b300208295a40575d64eb05d116cb26f56c77de03fd1888e2b5d72e6b1aaab3c5268832f128119c0588cda847642ecd552f7a71209021a11bf969452be75647cc08a3e5d27a9f2b1d739893437fcdf27c3e5c6d54730dc7dc6efcaa242138085db04ac7a0666c05042fdd817476bae00d7845cc513860cd59bb7feb84cf5e5f60002e364af4e10e5ea4719120be270dee9733caeea1d812cc2675d6d4c59194b5ff1be0bca0614a06b35e345070aaf76a8f8ce43ff2a6bf0717133a4089c9d0b64eb735\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 1c211c0bde357de65dd732972f012a69fbfdb6bed9eb0986e6949e053a50165a384e4cb80194899ebcdfe7f1560fee1cfedad14c55061a6add078e337d533121ff8c057bdcc7cdfe4dbe9a4f3a2add04bbb0a9071085437460dac46358c627b87eb68cf1dcf0a68b4e386bc9e168a22a98d0c45e4b81f1a171192eef41e3b7678770dd1aeca9fbfd3b525a1cbe0ab63404ee569a197e4c8e4b0f956e496011c5c849cba84c679581383a0f573fcb0c8bde4469653c2279b136fe4a27ac54eabbc2195f8b0948328c147aaa5461afb52ee5b451c76295b869b36b8af5c6666333a1966969c9967dbac02fd01cc8f65ba685d062dfb3e96901b30f0ca0da9ce066\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 8acef922676a3715668f60042b9956f225cfde7d1ff03d7f820df3943f614526a70b3831ac30d8b0ad92f9f6742b41f19d2da13abaf8e8c8ca1285c4e13193a244c12fd93100b81af9e82e8bfe17ddedec53b078ca790a2bad5a69da6654a7189bef1c1c90024daf05d977e98244e772095018cf7ecbc085a37af3c6b83c6a3d02507b9a48acd539911a01113005f8b4d3c97bbf797cffbed3fd3a0508df129a4d8e8da4b82df7145069a3438bc1cc156063fe16bdc35e21cccc12ad02b22018e2e2ff021b2a28e8e1d71d3b1825fb28dfc8e54b42fdb17fd2eb43a82e26a3a566343b8b7fda70fa051363313e7a7536ae2f7fe1f0432e081c5a41986b56972c\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 853417424b03c7545069de2632460aead059268385a40ecc270c68a2550453856f4bde29fb5cf47e8fe83fb917954f8bde4b1f0a1cb1ccdf717ab5302fa01a335749e9239f23f9a25b2dc48e77e6c45f9a8f715dd6e085b07b293172232df5b08f46b9f0b50901fb6b5af1642f70013bd24f73d5f1598c44a0b536e94990ac2280b4f4e485c02fe7404d7c397e684236982b72fbc4b215ed038f90eea3854edb7ac92af7db44b5bdbb6b538b1cd5cc48e49a34d5fd8d488e84f731f7c1aaa9e79059bde1e0412e5649914402cddf16798a765eb89099ae000403d31c1dc904c82299bbbd808f173c8c1f5ff9b5985349cb8c5bd829937dabbaa8b51fe7e92835\n\n# tcId = 182\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = a2db9c788d5bd6d374dd3e18c576f537d765c6810141b3f3bcb0a425229f0f54a4671dcd7c1a8e7f85166eb0d5aa904bda479da5a6bb8aef63fad9f3e71e0eed5c1f9a32f9ea2a9125e635649c8d935fdf6cad23a10253028e57b199c16b95d52de316beeb8b478193ce6162dfbdea2b0fb8744bad88314d87fc4887ecb121841ea799a535b9ddfc1490500709f2f0b750af525cb54d2bb07eec95b9968b0f3b46285001c1d1eeeef96dbe1b31c346e49d139aa31f6b5108178ecc91217886f1f1567a0ebcd0861e222948673a1114d2e8208ced1b6ec146b1af8706edfff71edb11317fe1a35147614c68150246a49bd9c2d024393c44e0c6b19406d6d0aea2\n\n# tcId = 183\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 4b05160ca328008c61781e2f419e3bc2cfe79d4a3d4a37d5251645b1999ee3b10aa5dda1fd687ae24896de91132f285fd0ca7dab0a01531827200b22d47419b109282059d261b96c4ae4d70b82e8f6f9220c5d513a120af590a4706ba3574b0ed83e98758d7ca03a5a3192f8f6aaa48f02d270711e80697309b57344289caf861df868fd77fb3e3f4e492b9823c7b6a6a8db559a0811634a1d3e3a2238024b550b65d9b03a5f6badfab07ed9558c1f736c6204807fc9c4ae8d26a6c3d722263395faeeb75947d388f7946e173ae84fe9b51ae297870e39c81f663b1beafe500b9aa56266da86127f20ba7ab2da9731cede2cde3dd1be68d20ea020633dff3a69\n\n# tcId = 184\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 18b8213f8c51236673e657114a23234bc98cdef86b80633a2446b69d411f1cbd6b7c33616a4002918aeb94455e8d8722cc8e6e84cba23cb42586dbf8fb1d0fbf62a8542c519bd6e0df8bc79abad2425f5ab20be4dd46ef7c70da6a0a22ffeaeb2e243ba26083381ae49b70acf506de5b36d0d00617e969b422b878a0a83d185b69bc07e7f7745eb50894ee041ec56d76be00236f4c3693e9e6ea8bf4abee3adc1ceab57626a2001400d5f14273a20494cc2067ca03ba10975bc1c4ea30099d97175076aa59cac375eff55211f6807af092b47d2183feb3efd4eb9d2edd006c7a33b1d321ba070f7cbd83984dace44f6c98c59d655d5d6b33c5d11236c5df9435\n\n# tcId = 185\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = 4ff429218c127e704a7349def6c9619ddecdd30853fd0b4a00ec9d080525fe9ee72683cfb7cd92b41a19b62dc4af73b8312e355d802a2a1f806d31c3cadc6655fca225de48fc73c9f97ce2083d59c2e636908023becfbbb1b88c44ee8585fae11ae136df2850422451b38493a5f8c2ba4b9b35b789d6670bd9a528a94597dc556b8e7ec26055480e3f5c0dc68f4772562a3b2ccc31dbea6b387f78b1da790f3074dc06721af2f365cadf1ebb80b0a1308c272fa29341a8bab40b89c41e0b88806f6bacc36f03cddcaeba9a2e5d38b9a510efa1bb3fccf971a480b93e2f650c6606c1745b362f67e12e46969f115070942d919ed80106f02a28dfe3fec59a8f45\n\n# tcId = 186\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 7e4b2c079793bbb6e35b2d0bbe99bd46cdf32a059291824c2ccbb74ca8b4cfe398c6fd88780495e5df58236b9ab22f3112dde293bf7f18909dc3a0b2a8b6dceaffaa93c5f543faa6cfeb4537e647c0258cafc26c11cf8f5f978ffa4e8e3919d7c585d0239272bcf60d61ceb3078d8718972d42005fad8d8018f0d13c59eaea4bd000dfa97b787d3fc4a8c6c353dc4b8e1eedb3e4f19063e49f8c2385573c1f5cd197be520b39a6606dba37e87db0b0d9dde0197d523bc841a8359901b36d462891098c4d51425a5482bde71a1d4b1f1091c9820337e1ab1d8a7bb2bf2450cc11cb6850f115dcc7625cef16fb7d967e5ee9060747f20ae1285595dbaedd725c17\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 3e7b2b0f8c923ba2e4addc3c648557cc07af085b06b57059d6a4901f6c08ff4934c6ce9bf94b9f28aae9e13f067f49885ca529f28546c4f7381ccbb450a3269d2d58dba6ad64440ee7702daf0c278b9b016e3a3a83a13f12e48973d9dd3cfc148356337f064afade9da643a9f46a3200a206ce88969a7c177dcd1e404f768a729c7b6548acec14d4ea358365683441f1d8bbd1b77c560f63a95af08220184da7cb58c85cfaa92fad64a67f2db7ff42256a6b210efb3a1cb4e523dd3642f087563e4c3e63b92553187ec71a3faaa37afa1dfcd445f5dc8d1ba56319f39e6d3ec09ce34639ca88c9ef9610df08a68351cd8acd23700f999dd233c41829d15e0d7d\n\n# tcId = 188\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = c9114c522381d994ab42120d2e577d7e106c9055436bbac6ca7c2cd7235f974b39715b320abfc9d716c3d5422130a75a14fec089d3c07c86579e5b139b46a30fb063cee71676b29532dd7db968d46edc30ff19b14428355a504e5b514564966a336a9ce7aa824c306f5f3bbaedb6eb2ce46914c20b2cdfd404d715c81e48bc7cee68da08e00d7719a2a0ed98e91bacb56af63d9b875eb411b4aae1221e988f69b02afc5f79683db5dd3c60235c2c4f0eec1e5ae6d32de970c218e55c0439b5aab5e020c03ec2a223b82527996a63a4f4adae8105d8b030c8d3bd26d71d9920199cfeed0afaeb607c8f8fdd69fd9c5052eb73ffebce1887f32075b08933912b03\n\n# tcId = 189\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 4ad0a3ebfdfafc97e631811d5d6f13f4c4f28a32cfa18a0598af9188241752a77f2125ea36e48080f3d61e4a147f0359ea625d066b22a6a9b655ef13e7bd3e382c3e72aa18516a9174137fecd771206e68100abd1dd7d4aaea497d80b45e56b3e3b8862bf65d82e3b2175be1e83ca5be773aa6a3339295d40f9bb3d860ac3b0e88639590f309b2e8fa13142274946126eb4c3edb663a05c6b80fe3c2a65545bc9d0026311d0b472e231201df5d841522f4e3b6434dcf7ad2e3d2830275a07733d79c348150d80890c9438f", + "135bb9c6556e0a8fc4374258d2e3319912895e44a56016cc8d7656643136f1648d128d8b1e87bf5b7969959776478d21de3961b1f2\n\n# tcId = 190\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 00e698b0a7ffdc4c3751f3301e747ce32863ef3e0788b4c05c1f33671e40eafab23b4726cc71de0ee1e79afaaa64b31ae0a8ea363e83c41bb0f134b23c008faeeda18a151932af60e3e4135b34b8e445de3ccb18dbdd4d2d0b1db8709a4edb6fe7d36483c6530727c77b2ee957b1e001c3f03298085f90461b4e4aeadb25a65721d63bc501b5d77246a2e73a71a0db2dc054ea01edc588a849e6cd88a66e6618e3dd0d5e62f0e4a0971ea7956c73008035bc034a2175bbc2942539ce4cddd3d0134dd3d7c4bb10d600c53e39be1e0b8fbc82e4526696bc366db755d0c1e9a6bfdedb2ffb8c8e41e885c3eb769bed9e004bf67cb0c8e359813e8eaa5e9c56ef3e\n\n# tcId = 191\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 56cd9fbe50fbebd5bea806cabf8c7889890e93bd746fd984f668043a256d0967831b3b097863a6da88e76e55b3363179b483e90f15a0af6921f4a5cdc4b78ce5657b801da09166553273f894dd17677a9089c302bf516fa1b5feb6e8400c370a95de211fe07cea01daf051405806f73f53891594db9a576c5c700b3b082a858cde398c0daabe42c8c264317fbbb31d3e3da77d9c9b3e83c5e81cca51959c40571d6951678b9adff6c805310fc7d801fe5634b2ac0db4c695bcf86411a81ba0e64523e734cf610c6b6c9dd46bb601f3a10717a5b92201d40ba523f9f66e3535a5482127fb7550f62aa4b4dde3cb039533b57aa8c332c255ab68eb1b9dd94673b0\n\n# tcId = 192\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 311161af14ab4a8947952e2b6a9d9a95b32a4bdf3575ea0d6bbdeb015760b191c6d2e7c5ac516db821e36639c8413d89863a34bfac44d4c76d2f2b3cafe5787cede0b61e0e27e5242333925dca99d9408ed039454823859b896a252287f30f727d43ab44e7e2fd9d65408332b197d490b2cd7be7feb6130b7192d0afd16200fb17fa5c430cb12968306d7650196db72f694818e34ab19f96d6102d0441365d42ed7ca8d39b563db1dba57307e258d9577c95e7e46784116d20488e73de790783da32d7cd9259dfe1ce0ee2a5f67f27003488a6b9c9d661771ca74c538d7c36ebec5714095daf7b15db103d2903ed79b767f51e48169c4cb0874fe8f670f7f874\n\n# tcId = 193\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9cc40aef38d6098eab578f4d9adadb97db9b03e0b102ce86191a81d1ec27a2f9136878729520cba5a816a3563cccffa7b814ee24a3b72f5b677d5957442779ccc120a686fba13e1cb4b9bd9b695e70c3dd6ba3182f4300be45e0e4f6782fe3927fc1ceb741b65636e85e0e7c8e9f3169920a2947b530c25dc98d5790bff7755205b8aca51ab4c817b97d7b28d8f0ed7a5cd227878a0cb6738b9982428e1d278ca95f7813cd308d5e18effbe6ea7f1f79576b20539a1992e8353144f6f4f95864a14b00b00649e35661656e64f0dc7072a3dcf287aa837a42fa8eaf5be23f0164410a5a9da33773a2839eba2418e0454c4b0353bef213950501e80eca20f3b33a\n\n# tcId = 194\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 68bb4025b24da5cc31f626ffc067ffc6b9c990bce417a037394cf508db061221931d212abc165c42dcee671a0807e93e225f5afae6d9b5bbda8f4410e944c3045c45d85d0fb25676b2e9bc09943d1a4f9fed5e379d704237a8a4355b7f57e714b8ac78422efd88c20214afa65d74f81028e16bafeb33b9fe990e2d1e94d3b06de1bfc7ab729a1349979cb90b3f962438acf88c73a47df80b66026a617900dc6e512b9dff32f63eb5fd2199b1b04a2bf9e2de20d4434e69511784b26be0be2d01d864836b6397bc1e496b59b91b5d9de8be0377fb3b7e91997abdd59635622397ddf8a2894348d015405b32f681be0743d1866cf02e8e75973f784ce2b5eb45cc\n\n# tcId = 195\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 5694e5ff4aa0ee436c5562c4c4250fee88d075f639007b7e96102eeec8bf26a71a67967403524ef7947ca648e85d0259cafb797fe197be368c1522067f4e74a1c7211e9d5d51bc9922f231ee6f5f3d0a64eb5d909347744a62a5531fec7ffe839705a70096c8137b7bbbbf4e1f97a5fecfaf7f14f84f2e78d38e4d3dea05bd0f0a968bb6efae8384142267e00e656a9b2e0354c85c04723bdba7d46e8ab9d5b231a6b27f860ef0289de3f19fdf299ba7d8fe5ff374826d835475758da1146a988e738a9645620a4eb61979e72037477f3ae1109c1a0271afd6462d39bec5bd0018217eb19cb80540461171540bc1bb43e3494a5715e8eecfdffe382f0ce226c7\n\n# tcId = 196\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = a58c06106828793e4b06429a1a9a731ba65f3d2d6a2438310a00e6168db367a8addad439c29b5c214e95b4d8c68f7e5410082471ac15285c2bff2a61e7e79ec3e2536e6632442fc813aea3ea684422a68f0819074612aa1c91e88634c8365dd553a714d724472bb24060b3066ae07033358c1b7155e284f9f509f7a35b74699511dfda48194673e425b6def1949f5862b04647c2dffcc3313abbd135e34dede206265d939f812f07375cfa2718d6ae3605803db16a832bca51de2dc786adeb6ddb3dfd9e3dffac3173966665f687908efe2ccba0586830bc99958f2bbfd4e2ec9bfd763e7c2ee0cbcaf950f81bd20c481e1d5ee66c6ffbca902f742f02a7554a\n\n# tcId = 197\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 90652f9b56a91cf16207d37783a06e98a8b07d2f105afbbb77259b0e5d1cb8a8d5b4df4ba34a4208b7e55362c7434d21971867355b6c1b747c9c9c5585e93c500a7071b6160965844b9c94499fe53e20e2b85a30588963e4c9394a5d9c6ccec8d8fb02d243a63616c55c50d608ff8319a2c019719c5a2fddc59bad37baeb9ba65ce3ec4c805ee77777f9c20a09cf399eacb1c138bf394000232c3f7eacd85028a0a4ebd9db73287934e38da3e1134ef597dd599d9232377f803b4485cb89b3d59d080a2528aad2e1125750e7f4b401e0ae6c139ee3b62a583874c0634b28507be3bb73f21de3feaf31876b4f8f0bd6e3992c946ef9da18ca6a8b72827128bdc6\n\n# tcId = 198\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 85f3863770c3ba8142f67230bfbf14e5a1c5644bca57bcfed9ff0c3b5c55b850d7b4b743eed5723c25213b6e67b3bfe20bf1e644cbbff172d870e621765590f98668a94d53bb967c48c5b00bc56409690299ab36cbe7e216e9768353a329b5f1730372c6fc9b5a9f5e61cdf1c6d44921e9afcfc505bea1752fa0f84de20860c2c5cf530ed9c35e58fa8a172e54725cd735b19b42a29afb1860510d955705de7f3fcc61e68017229615f40a2bdcd02efa2d5970b34c52501d92f36f138dda54a7dc8aa3dd58deec460853141d19cbf39af3a6911e67c68f791666537128dead190af54fb1e82c8fa8232745277fca794db499e3c20a56745c63108cd1188a55d7\n\n# tcId = 199\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 911e85f3ff244d87f563e7db570be41664a3cb10f10fe23c3f32fabef06a1d58812d849e46341769b0fd45ed6f53c0add4088f4e97997dee6edd7562c09745b79a69193a263efc83acb68c797174279220b8c6c19f9344ce9874095ed335e80c053c5d15b8cf82dad580616c7ec2b54a04d7db990be316305c783156ca4dd9d28dbb901d4c62e4d8cecd4867a2643e21501d18a310d67f1d0c5c3feacc73282e27834e8b5c6e2e0628c7171a8a66aa4d71208e10b1833d72c672b84c162dfdc54f92c5593bb7f316a6147741a9e517bc9ab82b9646a6d8f637b7b3abaa1c4f8b9169c20a43bf42bca891606d43ad03f00febcd50d4e65b896397d549e84cab5d\n\n# tcId = 200\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = b822d06360e6588b79ae00929703ce051320f743ed3957a64a25599232b109d147c525f6934814b9fc7c940e2048b1f4901b93e52ef797e954726f0c25f92a5a93504503461d2883c343934fdc3ba4b229e8f89a18add85f8ee741b65dc836375e4f59c568df322be875765bbb28ffd74ead83b9b4a7217227c2b02531b4424b0b2915b6cee999736d599e3ee9fa01d22002d0be15796a8f0efa254930ad4884a9f41c8b73e1a5f9c32de11ed8ff46e8957b59bcbc37a3a1cfa1c12bca8fe2454c02fcc0b74848f19a4e69d80feea8c8a217d978f601dae193cdb08cfe06b7676a2ccc380d17d7e083e893574cac8b66c9f52d557b731d067e348611fb05709c\n\n# tcId = 201\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 84550f7e87c20bc055ee532eba23d897df92001b3755a06d505fab174d58b33dc7e677ad2259a27ffb77dc1d913d5b240f8bec372d6bf156f12736df36b170ff26f9441b8e299fb481a065ec3f11b1c474131a7ad52d5b3a3378f28a73812c9115b26c3007dc1ffb59a0aeb6a754e30a6b0ea5f33a23f7c92b8b89cb258546def8f59559ded13d1ce64f6840d47cf4ebc9a81ff9b339fc2a5edd6b6d798ea1a9b861c8711a64c0459c31cd2facfa73ca47eff6972eaedc65e099f84cc756dd11747cf101148f3f549001046cf86e539592b2acbab994d44d1b0708e7daee96a4a46b250f8b1e17b120168736340c43e74ee3894177e43aad55631a3532105c65\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 0c41d7989a2cf877d897f6443b8c908f77b5ff4aead7959a8997f63203baee230942e2f8fd60e847290937185f5e64089ed9beebeea1adb6e4290ba6dce5835df03a4bdf14ce7fe2ed10f09733ceb323961ab61508003356ed16df4b4f2cd76257f3c7d42670af3110db3e4b2eb180a0617c50b0f3175a0d375652a356e65946fa957cb9925feaa82aaee55d8ad6133c780fe5ee1632e9a97da869261f9d3df249c438ea04c224b48ba40c446b435cf5cb62ee35bf734f38d099178f171d010ba2a42fa0344a3414740092f05cc3d2fe48ca79fc52d581fedcc384b8e43c3962c13e7c4f7858ed21fada6d4c3b8ab171d2b2b244292a51e470016155788dad10\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 9bc68e023f39b492a2a6eb1a8199b4878a5cf73bacd944f408a2fde913c98975afac1face2b9246b3d25f8abdee2b7d2e9c0dde0ee8f21810f42289432e37296c5ab11a073508137b202a521eed83aee7069f2cdd056219a43bf98d49b5941480f79af70b4222f405", + "7cefd84bf05d9a37a842d693fc528af6b091410e90c3ddaae9970d9b555d1b89b05c1d3ff73f8446d289a3b8508689b8929dad719a1ae54e18372a697cb5573b262a6bff1906dc240746efa4cac2486acb4f7ca1dd401577c70c39fdf4d92c01f63ae6d00ea225f87bcd618ea3ebf5e642c9dae5276579f828537ba6cf9697f3254cf5bcd7788c247d0cfe1b1e4f3e5b83e0b78d3f26116\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 99adbcd29bbb267c7ed5725e6bde25ab2ace3d75376fccbc06303bb7320b8b3974500055a14d22febed880d8315daada0fa8a42302a4cfddbf1c9e8b56cefdada345a662b9e61d1b23375f93d00c96b8366ca0493883db29fd106b6ff4d5e8ded8ae550dfcee36987cfa26fb8ed2e68f9b0f278fce3130b07f6c0a73eb9f81b93fa1cf2e5eb4f41911dce50631208d21a7dd2d2ebce2a07197db5f5ff2221a041eb8449a0fa7c0eea251f2fe1598c6c7765cd88d970a948842e3af9744d0c3f8793254f3016fcc1ec1f30e7509ed6431ca15cc5d1a50dfe8306ce5be3999be5db80d0b23342c373bc8dd7833c79693f9b0066e84572a4c3f138990c28b727e21\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 3c0a2696f07af388db25630bb5818970c6e1f3a35d3a9524ca8b683fb1eea8c2e419de25287465fa930cb5bb2200ce1ef895323aa05c5c1b03721783eca4a34858da5da818f911293945a617b6d799357dcbcb31b1b878aa6ef5012a549cf7d48b888ea29014ce0e636833f32bc4e6cc762c252b048c86edd3aa3bb32366bb02bf86e1babe3a526a652e0feaf45b36727b37244fe02a41f61adde5a81fd53635e3495c3c1ff8cceeff90e2ef3ca1eb50a607760ebeade37b9ff03df720e912d2f9f3c5b0624bc468398b82692fedc5279fbff0b69c86a6bccd0e360c9cbd8cd05357c3a0ada43ca25823a122ca3d181bd7e9d3cf6c56b6030d4c3555cef5fb8e\n\n# tcId = 206\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = ac2fda61a9cab54e5dd010e4434bd1914ac955fce49c20a81f70fc4ae81ef4d5b09a95ccdebefb01c1459d17da869cb60336661445d708369df691394b0f65280a886aa7c08ff6c2e264e7b3b79f94061b0ba21547125069532403b065adde771dcf2c623f3bae29e10cdc2f6bbfb1aa9805c17d7726ffbcbf0809468d53189352c10ec4922342ce5c446c63cd511cd073dd709c0cb43e49999bd2baea003877cce903255d6604e903d079475ca32506459e73e66f23743272465bec3decf48c404c0050256b05fff216f8c5ac0ed87dabbb94ac4c032bc767c3a53eebd1d2e2ad98120c1be02fc712b5d9ef3d899fe7f16ef76d95e5b28839318724a08de25d\n\n# tcId = 207\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 46949e87f59d539fa055c5379ecc71c6b9cc488489c2bbb595209e9965dea9253053c3b086fdb4642e1ef28a49b9761b870f9b7cc6a7b991e59aaf686a62dff1e6f2654eccc42a47507cc977eb89ef05c1674f0cf18c3dd918958e2986c963ca90cc18d0728437a8f8ee67d9736c7f6fc2b61000fc865996f3c918d25dd8ca86c6d3c8f26f4d6a6ea8d426078ad2de8dc17afc2910355228cc03b88c15565a5a107500ec6d87ccbd4fe45a149799dffa8b24f088a23ebcaf4721b6caf2ab96d3a6f181b89f6a70c9a8962e4aa20f83e7084bb015ff3da5ce1cf853f8d2de2a549fdb5977368ed25204117deda378a185b780e5d6cb29f9ec6c8d80094b0242e2\n\n# tcId = 208\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = 2f97a06d605630820aeb8412c75a6bac2e01752e30d69f30fd59ca967748b608c9f05f17f95a6ee2410c9db151c98b09bf11fd1bf178d8de15110fffd468940d344f89d503afc6e69992f8c0ebb889314f5e9e78d78371022c9213084c1f666d1882e48e8ed33caaabb50e06bdb1ca39e7938b2a18524222c7bd91d5bc7df8faa63db5e48526ebf1333d496c18ed6f162c411e73655d90292637aff4afc165dd014ec5bdccee60aab2c01e4864fd0859700bed5f3b5c803980835f0f166fdda5dd2c82c8cf2b5851643428d6d229dd0e76821de73b7055cf579b3dcdd79def8dac9b8afc356111363856703a9dbce3668a547cd2f75b9b24f209c4109acef6ff\n\n# tcId = 209\n# modify first byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 78d23ac2e2d666d264f9fbafca531a4a7730d0cb469e6453459c1e272f7f847888d3d12ee561bdb07a9bbc39b3e3166212e4cca386c30e40130cb5b4e26156695b5482fc5dcb2f3b4f18f30304d1761b48d407943bc9342178b1f2ebf213801682e03ffce08f9a26eaec3f764d1b09c20e6788a62bdc449172c896c507a00e31a24d1ded0090fbcc54f18765a083f1ba3e49d56aaf8a244efa9b11cb154d6656a8f8534cf455239db9503a78d06b0dd814be867f1673e16cbb7e2e25694f251ae5242915aa6e7d7193fd32677a1a1af62a66f3378dc5b0966297df2b394c5556cf7c816e07ca1675dba3e7f7dbc3d1e5971cd9b489db6ee97664f9f679a76d33\n\n# tcId = 210\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = bb08fbc402f355d23793b120118c38239def4c6ab901bcee7de18f55d8410780fee421fcbd81a43f847ff6d3bdc9f129e882abbfefa7c72fd81270389bf4602b5a850337df6542a5d5bd0809aff5a2eb6a7d7fdf50e14b9d0a28776b6c910894d24e9eb06a2f2d5f3c0bfdc3841852037dd71fb1253fea81da7b0ab1df43de76d948c7a7984922e560420b3b531e7e34cd0a39ea5f1744826fd93e5557d546832c2f27e253dff2547e44d06f1d8cf0fce735a1c3327da791d100f52ca87ab40de5abb8edb997ae215700c67abebe94d62e717d803bc064a5773f0b17f7396c074cc1673d3540253afb661ab3bd76f31ade9e4940e11138ec5e6c6e39a06938da\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 47593c15e618f6e366caa1c6ce9d9428819eda907a15029d10b3a74948a5a8ed138c4f53f2422db0fc57b3231c7fcac4f32013328d07a8a8ea01e3e104e1cb1bae67d308bf2d7ecf74225e195c2c22d5271f3667d140f2f328d01bc91c1660f84c6d4e779590cf445e620402c2fc6a452f7442ed53da44461da862b15de7ac1f263144a4ca7f758d499e938585cdc5d2c6a81cdccef408d3a02c2da0478f34b1bd3c7aa3c074d2b3fdb68cc1c7ec9fcdaa08c07a992796a5453664eeae4a25fff0c3dd6eec745cd9c49de6fa507c305c3c098245b169c7b4ba742682789b72c5d5590cd84c9af1da2e9db86ac060dad02d669dd823e5c49d1469971a925889fd\n\n# tcId = 212\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 8bf28fc789ca5af86177bbeb771fc544300dc23c3be737a12cd9feb74760efbc51b0f8ac30966d7165d61bcc73a7643fb9f0a7fcc4bd6f0b062e9306dd768412cf5fd0700d0d201045156926d20d64f37d35a52138df70ca3601e9d7159935fbe64ad922b935f677645b177798df4b1940c9c157e17e702045c8217b7e52a94987b8e54c5dde1ea215b3d2c4a9212d59dfe84b8f730604f0e7d396b490b9bce7fdebce76a26ea57d021a4f131b668b12c66677c92445cf7f204d6210c7d1a25a4713b75e1faa99f971f9814e284b5961d2508ba3ca33a5a2ddc2ba20d9332110ba9abbe202a6c7ccd35d41d7a6bfcdb0b0cc9fe0ed8941916a538064d4fd3e51\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 6f3ddf150253e805519b99c3e41ebafbcc81d39b328ba9dd388107ef1e7136c6242cccf61d3ecc213345fd8b216c3cbc1ae77cd8747d75c60cc648622d25a35538558296f3ad3df183ef41c3c80c4d5659186f9a34830ca2b4db950051a99b7d23018ae6492ed396eb85b665456b482e81b3f60ff565b3b01f51268c0b4eb8c455627e618ee559a74678d0338cb25411fa0f1123fa9ab38f666068c092c168b33a971664a6ed4359c1e1e2d8c777217d510fca6367cc06b8677e02bb6574a218ee48aeacea51405531d81758df68d2eb7ab640fdced07029437a611c1a05ee3d2defe2bc2d35e06226c16141fdba4810b14733e8c7aca430bca49257f86c9f54\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 5a791de95e163c86912d6ee662ca82a3e93e2a82aaa94f75def7aff0dcfb6d990618b8688caf7360a08fd513df5b4414e5e604a2bac126fbc1e93fa0fef726e2ae74ba63bb7b4f3adb453912c01ec5f906dc14c9dba75f3e0f6ef8e648fbfd0b5c4f166b806514293430c72712d389ce8cdabff1826d9cde88cfa0863d01b1b8176a8bf30e077fce691ca5d1b34f0e1052c9112c2252c445494176ac5a6d277f9b7c8dd3a912d8eb42ca7d76304028c3e51f475065b8a3db1fec6314f6eb78115030d237b91bfe70f5b84d1cf9a879145528ae3ecc6d8c180a2e70740df10fc0671dbf9606598a2c88e43af588f74f890e8f9d3bfab157854bfdc1784d1b29d4\n\n# tcId = 215\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 86ae51d56a520d4cbabac1a460ba543ce3eff99c2eeccd54f823821f894eacb30c2f1dcdd6db6e6db4b265ea54c4310f0e599256516843323e2c39df9f0001f2ae6f5ce2659c1b6a41ab5fef8ab823258923be1dbe3c0db4705094c669db4960da4ab9aae2ac8ee860c069acda23f8c8cf864c9c37582126c6f918e04a869b8aed52c8d0394c591ea16de6506c265e482e2b19e1f9ad529bbefb099a24c8d53a8991730fa35b76f60796ccdf0a8b7d027ea1a50e89b7bcbeab8be4bd52bb3b701b42dba4ad1b0056f8d9f499a305780f742831b0bcf2377dd986f143118ac531e880be5e59a3a022e2d50a4c4043a04de9d2208117f34beba0bdd3338e6d0899\n\n# tcId = 216\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 75e3e0b1df032c53890bf0d394201638a779d335d0e359f6e88fa547ea30080a90d34b9605c57f798a8d8cf76655b1f5d023f0f7cdbab9e40ba01480d5c60b74394509baa6e2f38453a0e9ee62c6fbe8dc03360af4d3dd11e6e5b964ea2c59b3b4bcb0fccb4f40777f4a998e738ab2720a74c5e7f2b9d8f28ae20bd26447cc4bb6ec9164b07bbddd314706c79ff9c0ee7158b30d46751151eb29e84c13674026301c4f61aeb3d956606af22bc2680c4adda348813f25e171a699339614f0935d4046cb88cfaf3952b765b3baaca5a62217b922a81b3823ff588cb18494c01a32bcd1a669e87cc9fc8036b4d0130acc57e97546be7b8af622bbbc50b5ac157099\n\n# tcId = 217\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 19a82c1a8baad64a96feeebd38e0f1d401a289c0b5087b3da57a3a996ffd0b748a4", + "526e481184d3003a973e5de86bc1c3b9d1d003afd229b8cb4e94ff69c4ff75bf8220c69343cda68972a0ba4ec88804fb42c9048faaa9a84d9ced011f7de491d0a00771e393239ffb8734121cb56ef1d905ddfdf34aa3f746914351f005688bad24b8f37c64269e1049d7a6d2aefc370849bf891faca398fb4a367e4e0ca8449e7d40da55788ad2a1eb4bc2403a1f37195fd816ceaa303522c6f57fe704b0be40f3693d0172382c420676f8e7ff28909d67145c98f5a224c2511d9e1996de58786ec87142795706578396f8da212870694bbe3214e2c506d2161b4c5ea65be\n\n# tcId = 218\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 3acb0bb95b7fbcb9ded94b8f6a3aa1b8c4780a0e62f0dcff0befeb17ef17a41228921cfb610c58140870f26f87dd0899b20dd15ef90aa1d1bfac714a86e874959afa6ac288713d0439c0999063f1c52c823e89183e62b92bb48372cc09266c2657daad449bc937ae8e427fe588080205629a4b0116497214dbd818f51ef2c86a28df626a6d11ebef52ce40bef9a05c78f4f5104acf0cc1724a899d372292a21c7021a4fd7d25b390b8f3d18dd5592802705ac47e561218330de96530cf08e81a705bae7f4a44927ed073ed48ad751a26ffde9b3026c07795970c77734bf7ac7795f8ff440e8d122fa2a3d7ef9861ace40a0608adc2d675aed6b5cf9d1149667f\n\n# tcId = 219\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 90be5311188e6796fd1d6ac1b437c6b8ff950d18cbede72832d602f23983a67cfa8f74a632d93d9f05e146bed503c4c336c32f83fe2f510282078a2946ec4433e2fb0b6ee9033db3dcbfdd84ef6c9e45aeefa5102a73e27cdb9b31d16de42cbb3fa392e4d947e38a1143ffcbd0ed5b99711c5652e8ba85cdd68c385e1d00aab42a8e3b7c6bd9f13a3c553686c00dee411a022ad19bf8bf79e7da4d40ce731d07e75b1b8dda2a4af34c3635a7a784240db61e19a56e287997379da9f845ceafd08d2fd06281c943eefd30912e0d8c70d8ca36caaa2a529d6d5fa3c2aa8f30609996513417f0e274dec8e92821bfc25801a17789cd9f570ef2d08c447c8b28dce6\n\n# tcId = 220\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = cacbd8b8da45addc759e8f0742aba0aaedcd8effcbdb44f7a6bba1722c93ec460924d4b3d1c6e068f248c5a85d4e2aeb4be097d793bcf2ebf421abe9d7a80c95b29434641c0d1bfe67348973f48503cc658ff40e6fe6fa8651237cb5b1f630f47e0e2af1a5623977808f0f9db52445de82ec3115cc29337b6e3af60e9213ae71cdff695b61322cd5a40014794b98cde97cb883c6fc9d8dcf36936b9042ca217c5fda65c667cb146928523f2c5c66eb74b2ba235f631deb440e94405642a4173abe41ba7ddfb40f2154fcd0098cf38f1ed3059cfdcd90180d7eeb68f072b7bff8d2c264296073b66aa751ac8d676935872506bba9d78d59d8e9c2330afcae146b\n\n# tcId = 221\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 0492235b90728c9c26efde341123d4dfa06af0a6649799eeb96b3e021d83e629a6dc48372f51b7ba4b4c671ac8bbc1b04edf82bfd34f671888581584a9e874c68cf0588dc60aa4dc2a6530505799c3924c81817c458d4fd213a34c9c3c7237face791df8f41cfb7604655f58920e5f72c17cae980d4e0a44bc694177cb957fa492cdd370cfa5939240240a271e44698849581b308d554f1ab33055b11d94850b11a9f082310ff40d871381a314443d11dc07aa4d9445fe7d34e140efd93b8cc897770e3d250987b5e9feb7968b35c82c9be7d1f9b7fca70d44d23d4e5060faae1fa6ba7f8a13a3d519d38be5c34b4f79acaf54fa20a7de00883bf91f1f42d5ef\n\n# tcId = 222\n# wrong hash in signature: MD5\nmsg = 313233343030\nresult = invalid\nsig = ad4148c33d3e46dbe71be2268485d23c763e5943aad735c421100db1311e0836234f1f19619a17aaa1122ff94769e5f7e93453c183d97f4f3e5ea35dc180061ced95bf6b9818d427886ff1c1743ba6c73d61b967f99d54b566e8f56bf5437184a15d62549c0cdde5dc903c200027299049deab8fe68510ced79915f3ecce5da54571f2ffc2d24ce44c679394cc0810b7858fbabf75416c6495460b9fe331cdd0bf007ca138c78589664350d18e58e3460d015cb2202cb4f2f342ea1ca81b534e0084a94918a62e058d2d195285c34b269be0705338ef98696ad53d4751efefb6937c99da703cbd2c097428a0e2d0c9cc5d1cb897aa817fde9af8b72295ad0625\n\n# tcId = 223\n# wrong hash in signature: SHA-1\nmsg = 313233343030\nresult = invalid\nsig = a0c87a80a092bff005fcd88ac0ecc25ec92ecfda79e6562b3a76d484ff4ea8bb36a842f214448fe5c8b72dc5190e1d609cb1ae1a951599d55d52ecd8e05a5cd05bc4b5c0af4a521f0955e6b7b2b83a86c4e48f65921eb7568f5198ec25bcec50954b1ab5437b2738d8486641cdadb606d418100d99e0f06b65ce24720eee65cf4776197b718a8da721692f2fb6114ba2fca8080005bc9848ea0cfc3ad18648abd013fdc67edaf941933697993e377f9493affac7204e0515d8ad1511df09f43d239c2036fa626ef7c15a44b6c693ea86c2b71e28d3dec6abe30bd8bc40fa641c81a6d60447b18544cab2cb7eb154097cb0113e33b91cfe94560bb0ef03baeca4\n\n# tcId = 224\n# wrong hash in signature: SHA-224\nmsg = 313233343030\nresult = invalid\nsig = 497b13c7784277438d22769de54721438b5a1f17d9d980d1f55e96380eacd01f1a1ff8b016a70dee9a98398e2a7106b4ab6b1ecd7afeb2e2fc9a2ec6506494ecaa40fa2437c3ab0cc4a26bfb952849c947608bb6316375b239dc3e164957b5d40442f58fbfa141c3fc4cfb4a6d9e1988d6c5f10f1170e911171018cf63a7c97c85c2220cc407620bb168bb412e6d12e8e51eb5d81c64cbc075072c0d9de99dea0eced0a43c7f2d82eb31bf96795fca88e9b6fa4e6286511da86cff635f71acb78e5276851e70e3dfa9b6685160c82add5e53a9963fc147a5c7b0da71cfc7aafe37b01a35d7f12760eb3d6aea9621676674b5bc3f5d5aa9c0f71fbe0da82fd3b3\n\n# tcId = 225\n# wrong hash in signature: SHA-256\nmsg = 313233343030\nresult = invalid\nsig = 521e5af2451d73b61b7af2d81eb427bba3911a3f2e61105bf38e15c74196c8e66d52239936aa1a7823606fdb4d243b32dca2c4a95cb3b302fd34a9c0879711095b4d1e75c59d005836c2b9a05ec1daa63148841b285c10bb70f4683994fb0a598b927415ab2004dbdd6405d57804ea142f21600d5bf5487f3f7419ee2c2790a122199cff03be53847cbda28161f37810f046df1c54ffa9e3070ebd1f8b08b3293c6a160ef6593ab497415c2a086cd5242f3509b375f70e12435b01c21bfee65f2156448831050eec3da4df7ddb04acdfd89a5cbd5f9afa75a8e3871378933c1483c28c1bf405c42625b673bd0de4737ca144285af3981fcaa7302534e8c36e9e\n\n# tcId = 226\n# wrong hash in signature: SHA-512\nmsg = 313233343030\nresult = invalid\nsig = 99886332731f9c4045ed269a8c9dd46ca0d4423199040a2840a7ee7eae4b5d70aa80a8aeb0e8fb1c1097f740e8c702006293bdb2fe24ad9f7b10664d2a06cc3d6b1da9c44a51443f2890ca880bd1879e208195a69cfddd317ab5ad2610dc36026156dbb10841d03c91b87e2179a04228f461fc7af38452621cf874e3cfdb8e42230b0c746a8084d6def1e2092ae2d34556f9352f5aaf39bc4d620a7305190d0438345f54e1a34aebc24b2335977a0c8560d3e9cb0165ab919877af989abac6f0b5ecd110df1e5db3371b9755fdf3be6c0307254b445259b2d4fc193e31143d9367f4c03ae132e033ba91b0b1fea496b1d726207df6fa965fd63a32f7aaa31263\n\n# tcId = 227\n# wrong hash in signature: SHA3-224\nmsg = 313233343030\nresult = invalid\nsig = 02094295d59fe72514e4d0a0621d13385c3aff737e2ce7874fff518dfc14a0745d0ce214e4413a7f055a3136f592e36aad1ae110f31766af0ce505d4546406fbeb189d7a0e6eba9769dd80aeeeadee774355f3b67a85cad0b582b27092a35d35a07355390b5e38ca377e91e06199a009dc3c39d8c8875b3688b40c506c950421fdcc1e5f900d4e0b9fde2d8cfde24427e2292e106107b975b57612a989de5db90044919e926830e3a4714ad3ea39fd5d030725776fa93110aee8fcaab761ee54754b6cff58f8e569df981bf161d6580ecfe3d78e3b87d67cd64b23ab6498a341561e2e4600c053fdf5d03a73e58f3581509a483911010c2652197077d78dab4d\n\n# tcId = 228\n# wrong hash in signature: SHA3-256\nmsg = 313233343030\nresult = invalid\nsig = 204ac3fea095bc0b1ebe86150909295afc4b9a63465d0419862cfc985d803822207c498d306232121126da46cd03348c41ad8907b61858d3aacc37cfc481d5eca120a23de03c7863103b5c572c4e2b1fab70fbc0760fad8c1e3cc710aa71c8d0a6571859bf9d2a622747108e741050ea7c011fcfa6ad6432f4b8df0af2824946264de79f5782c215d8903f1497f69f58e586f284b5db98d04d2df14d8bb01ed6f3189c74f9b5f742fa4bf886adbd3e5f2efa23730da4bde05e87e15bf440f37f989ad8dff3fdc4389f77b03dde21d5be131817d498690036537ae789a59f48c8d3d798ad7daa16669ee2d7935d1b384f7617e12ec302007c7ff53a0b1f6a71d0\n\n# tcId = 229\n# wrong hash in signature: SHA3-384\nmsg = 313233343030\nresult = invalid\nsig = b539fc190c1d5e3bbbf9302eeaa7e36140afc6cc42658748109af599e14544b29e0b7cb488636091a48e34ac785d0accdddf761da9abbbead603a6d3a53744fea294fcf105858960f2139e87f09f82dbff7491791c0e79e66aa966a1e0e177a23653d46c36f5176171a44f02091ca4021b3040faa0d4e9119a1bdd3cf42ef3919d8d494b5393d5014b21c5f7223a3374e1de34c9286de91335acfbde51ce833b54a4804c47a2fe805c182fece58a2bd3574269388c7028dcd2d69bf4e10864ad0ce0776b5b0e1e2f5be90c75ae5d46df0ae005e4981124492e33127c278e67d05e38ac17e364dd78ce3e7faef8029f12c9bbc4102d6f5c752b60c637ae1979d5\n\n# tcId = 230\n# wrong hash in signature: SHA3-512\nmsg = 313233343030\nresult = invalid\nsig = 875a4d6b69fe203b43376daf732492751e01cb93a66be6ac272fe21c272bdeb74ba333f3f11989ab5c92fadf704f30b2edfc779e6c9462b3f25ac4b9fd23f4a30bd5cab6d009eac89bb5a4d8d0ecf27e531355dde3363645708c9cc8ea4d2cd6335d50fb768de53845b12d86333481dd2dc447156821c7dbf0e258938681bba2e95514bb762141d9ac3f02badff825990c4e3a07c15901d5c05c3fd433dc500aa24d16add9356e422ef03c9f8b7b478a43fb967a8ad16eaff0bc7b0223c7e1ddbb2aa7fab4c81df742b143450aaf06ae48c3e2d7f4d7cb0a0d2fd1362acc8d9653f84", + "88df0548430ff4f0a8dcfbe466508fd93a138ddb9dee83b9cdafb794ded\n\n# tcId = 231\n# wrong hash in signature: SHA-512/224\nmsg = 313233343030\nresult = invalid\nsig = 1c153e1a94bd76b0c5d51d1c91d38afee4db20a10ccc44bd46bbc4a40974c02180ca0b3a53377d694de9c34d168a7466b0bf5954952a98031104934fb319936185dd8e795bed92ec7f8d1487dd9393ffe476c377e406fcbf65011c96a34ec627b7093cf6c0ad4576506d559c74cffdd73700c83ae8c4b6b8189b4b5d4119bc4b720bfb2a6acbd8a560c2642e25f6e8a4ab5ac6ff0ab19226fdfeb02e6f97943227df82b251e6826028460f33b7c6aad633d663fa06aa048b5e3c7226af2feac31d00bbde8965ceaa0d3ba2d268cb2d6c3fea67ab672c7f16f8775b3b41d573b8b99a71fe60331c6243dcee7438a30a8161099a7dcbd9933562eb40bd7d587383\n\n# tcId = 232\n# wrong hash in signature: SHA-512/256\nmsg = 313233343030\nresult = invalid\nsig = 34e2223e4f00809c5128c2dd2611956e8b3177859bd30ba86765df75b2aac2241c6e6fd836970fe68ed723f1399cf1c7a8f04560d776c572d2e53b2d0edb65fa5dd813915236b278c058f4fca84c6dc75de97fa7d32b30d6f54d6aa8318105e58391508dcdc1d15cf235d238a70b085c8007a65e0df54962dc31b098a9a7d06108f07ece64a70426d5d749c3e329d1779125a7c60207a1c99b892022703229cfe852b426a2a46d9407806f911cbacfd98168e8e4f1322b4572bd1f0634c8337b5160c2150dfc37d30f671bfdb2c3acd89646ac37a0ebfee5e1d2a078fa1b4c980a87f83a6b098bd09c865305bee5bbacd3865e38b4414daf5fcc3bbbb1655157\n\n# tcId = 233\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 4a2bd5ed1e053d5421808f7d2636779c7c1e6e1d94c47ae2520332113333f0c3f229554db384561cc4be4615d2f9b36d7a1cfebb85333c0a070a8379293d5e46af0d5c34d71b4cecfee2a190a9bad3baac34aaa8881d048cd2e9b8a74c67a5be02fc27368e5417b4fb6d928254d645bdc95577fb1ba79bc169a9e24466427db64406a98a8589e3e164a5889d205ab861acd9ea5551cdc06515813e4455d202b08b829463dda47a55729961dfd2130ee03c4ca92a8579b30478c2b479646c242a7e9ff0547c7e774a29469eaa49157d53425e0afe0dca68c88cc71aad8a8a00bbfe8f39c36fa3ecc168f605d7333626b0afeaa7465d78862d4d44ad64a4f7a0cb\n\n# tcId = 234\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 5e47e74f1eaa0c542173139c91fc3684c52a3e0624ebffab2ed2bc007a3c7fea826b4400a9145c7893573d73340789f32c3f6770e1b646e814846690a941846578afd0455e9f016631475149bab5a150469acadc1d0486da5fd766a75f2b6be6e7ee56bd350913acdc08e06806a3db60ecb9c1caf58db36b92f13b3ebad4c67f7be7f16156520691dcc37b10c9c3d0215f3e2c0558cfb8d4944e936816d38ea6e3829b736b68cc6156e86f505236f366b5928572826be1bf0b42885f1ea822ebcf79b7008d14b23a1f76a2730848c077fddc5b8982ceee4768ba7733864a4cc0525640f1fda07c6cfd92c7f32715a6edbfc4366e2b62673fea9116a18e600458\n\n# tcId = 235\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = c1d45424fc88ebc3de2cb0f6fef91042822f857835b014e6362b986496d1d0dbf3ef50d71ee2dff5567027dd00fad1e826216bb34c95954ba3a9ee3fe646f9f690484c2586b96946efff54d6591024d251cfed885d6e8d36baa14757d7621e75ad521adea55a217ba7e6ea0a8294651d688ed395920975d52f607d542126db2283f00d9ebf48e395bb83901350843cd7812072b67472d16cbdc2cef414ed57e33bc725d53c5d78bb3282116bd3ee672842191e9a5794d78d4f2bb9cf600d6ef8f3d538881c9efb80c7f4318f62c091b0a3d13f485923bd0561bacfd7e08f75c26a60c8116b37524f4e4b40cf488035a796bd19d3ae5cba8bcee923e021a78183\n\n# tcId = 236\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 20835e06ad227e3e7868ba812b0361062e5e7204e2a0febf12eb0efcc5cec87328a0c0c39539c177f3f81e50f8f731c6651c03d865cb1ae667c2083132841ea3bd9749a54fed4a9d04b9f4a36ecc11c31202b79f5c7e2bbe0499eadbbc7781e22c6b182d5eedca6591af8e4a7665883666e30a927959ce67a149a7d03c7a863c16eaa980e7ffacf844daf83b5958c50c502d742e638f97067be25eb0c0c1f26ae9da1e65924bbc3a963dfcaae959300bae2240881d9f528d14a9f025a7feeadde1301096479d8ef77bf722dda463ff63dbdb4d7e5fefb4a0428544e2a8e9b1622b9971f71671cf32b0c066a26372c46294a66796d80a498282f6da546ab095e6\n\n# tcId = 237\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = b386c91fe71bfe594a2de2b2a0db0eb097178076afca8fec5913337edee509eb6b470eab1e4553b3b346d85c8f2fb31b6afc301d4a545cd3fa2b7c4157d501207518728819579b51d15d59318e8eeac0b903cf3e770660dd7350336ea6431057ff68e47c9cd471d616f25043d099c8a1aa11a9588e5b9275e3b1b93c71746307c277b74dc429d9ca2ec87145636778a95707296d980cd8c430e5cf1faea6b62a66b2362c9aa74d6391ba7bfca88aac9747cb4b29df1ea6bb22e5cff500c746e26a95ba0b442b468d1663bbcbd9d0162aabe84c02d002e760e77f766938880776e903ab5e09844829296515d89bc68f8c3ccc748c35dd285676c13877f44f2ece\n\n# tcId = 238\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = bbde1e1373cb938add41e6ceeee683908f3c575c6a15e38481ce6e83a5d95fa3d2a4b0b6e95e1abf165cdfd5ba308497640f58cc4642298100e9ff639951446951e67aec55ab8e7b9f05abd8870ed3bba86ab875e03d935803d13236fd66887069a72d14375a4f17e9fc274cbeedfdfa7c8b77c0b62fc570dc5bd30dd6f9f23f309ca58e004495472f2c4e5095202c47f24ee8a10474144e1d101ae173c387dc92647a93618d779ff040ae424d75b22262146f457e704240cdad3bff67d086d82b4dba7f8308e1e392691065b28be33e52dcc20787997817104d2d23bb67469d21d5e3cb84c035a1d75e6b699cfe363db10d52b9c0b4c82573cb1de5a5cd6cfe\n\n# tcId = 239\n# empty padding: 000001ff...ff\nmsg = 313233343030\nresult = invalid\nsig = 27e5a5c4d9f86f7de7d7220a783c26afc2a6614bbe8e2685171481f928b230abcff5b37f3ef2e384db521187566c70b09d75399385bf2358204fd38c1dfa1fb84fa78c1d5d5e5a869063d544ea812a3f1db8a1f0224fe7e21c5ee25e75a0cf2ae5d6db16172455bad2418c81235bcfe2319def91de16a7e3de8dffd74122bed90dc53e7fef8f77e832f30b2a33efbb35522fb620ea326455339fe22a81fed5b58d9a5b103188bd530439c4855e2db8cd9f98a8129c76a335cd45923ab67100dc2b02f31e0e5282fe526f9cba163715026071b61a2aeb93a5a58b4a8499b3c078cfa303ef0a107bca6d2922ac8220fff175e2b4e87a7a9669a1560aafe3ae99b5\n\n# tcId = 240\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f\n\n# tcId = 241\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0000\n\n# tcId = 242\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 243\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 244\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 245\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 246\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7e\n\n# tcId = 247\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b80\n\n# tcId = 248\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 249\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 69a1af712699465ff84ed85dbb35323df339f7627310b2b3cf2b8b9fd4fa5cb0f536680d7bf905347a642c1960c3e17495770bf939b7b3d426ed2209b5e47a6029af076a8e95f9a7fc959041d2e221d433f3836e37b6075a8388a2a6aed1785528cc79348d4dead276988f7f49d827c0ebbbfe7aae9d946f16c7a3598da587710a8d9fc72ca537534959c76a35c91ea90989dd0fce6bbb0d0f8c439188e51e0c82debfab4ac1dd7df3c3e48627039a9d3829a7f08432da36b6ca6d9ba0f9a15f6a61afa09c1ad305c3182e0a88e128192d8d064af7037950574cfd21b1ddb5f562ceecefed4e62c6d12f82135aab2c0a6dba9a181945f56943b4a81faa42fff0\n\n# tcId = 250\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 8c8001352b612c2a8ce94e15aabcf7e077a4135a6cb9f128870ce3f7ed11b74df002a93e9c7929b504f9c33d6bb1c8193dfaab4a808057380c3a142cdad876290bd68472ab37133d50d3805b6037c855d145d75151c42b6fe5121ccb44c7a624e897b298694566698f49289ae0ea09795450ab9d17dd30170b27fa65d54ca4a07835b3d772dc27ca21e8049dc5751522530169aed63009013091fa7621583d6487029c45eaffcf0c9e7e9fea1cee27da0f623b3e4cb8f73db62ef1a818244a4d00165e4328cb2b1af117eb8daa5cd808fe06e6e2058b7db69569e7db51b072381fa6acb7683e4ad9164b2e29bb3c72e99e0f585787a77c69f8a58084eec664e9\n\n# tcId = 251\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 5bec85b7d892bd8bf5452d477c53eab4c930828493ee9092e4abf42f905580413a6ad458f82e78a839a47016b2c6131899abffa563f54d49b07c3f56ba5e4975d216be7a591c6466e472ae46edf2a15c72b649f7089f4f1147cdfbdd1334b07303320a95c6bf8426cb9e6452d3f8695b4e376058db6805a7ad304462ede8d89543a5360749e83ff7cdaa6379941d28a44a60bc36353cf8ed7cf1e3db091d136372d489602ebb1c4a41a6a15663a809e2fd3905a6e62f49a4df64594e0b13737de6c7e38bc16b349c9a71fa9d8c519b6aed9cbad2984e13a0d75a6d24854823e6c8d64d891cbd64cfbbbab9157f4a015bcf9b6bd1465e5badfc462e51fdaaf698\n\n# tcId = 252\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 9bc2fc58e6db83a04d327571189b835a63df65aa3a41918aebd7f97c069cd499978370e4a4e46b1c27165b51f703beb3beb1c0a3a83ed6613dc840b58612a996dee3a10e1907bbceb5960e4f7a0fa9cce69a3ac34cbbf10b404b685763ae3fbafb42f125a060626e1136742d4ccdb469b3a6b58fbb4cacd3f5fe88da8838e2d2645d11618067edc8eb6bf6f96e1055122cff85c423d113cb4e9e1303c268dd5ceca5a201bc17d582a84ffc14f7f5e654a25a89486d54991f85bd24a6112849f38ccff768d1ca3c44e3e6e6a23e177426d26bb1173cba60a7938bde64b02432db83fab73c3fd4f10578f826ac3cea04172aaf43d60455c2632ae06c7665ef4537\n\n", +}; +static const size_t kLen152 = 146586; + +static const char *kData152[] = { + "# Imported from Wycheproof's rsa_signature_2048_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keysize = 2048]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = b03dd72dc84b305ea811267a489aba10a1dc54b59f92e58546a2f0b6883f543512d621951352ef12abafe4bd6e10c2e5b0eabbbbf1d081b66e535fc9b8ad379040c3c71ec8f2b4f5d319f5d2a0240a767ddb4de1fbc878b2c5e8e1e260217bbd70971789fedb8c677fc8193f67e4637239607c7b9d3511868ccc0df372374abc685c9b4b74b2c5f11758f809b19bb3b5c464db870fea61ddfa5e18be2c4106f3e165fe85a7f8241db2806d0fc3c45d8a7f1eb4ca411a46ac411b81c04fd8c4ced5eff497da6bcb8e2fbe1f95cf4c3e761fc3037c82276f7ebfb7e6cc8534cb4fd34192074f580c6e31008df4f1404ae8dbcb111503d4bdfe6e7107a1ab5cd8c6\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 4de4dbf82607b36a5c6778ae6351d83b7ef5b4af64c3788889eb10ef1838822847ceb531914392360b92dee055796f73e3cdb8b3d50910a537dd2244fd7f922780356ea3f01e99e5bebcb1b6ef398d2399bd02472a871417daec3bbe6f89f45f1af0bf819a446dcbbb75c56958d34ba27c8120cee6ff97242921ccf58de9216995fa0c49cb3e6d60e46411b2df3b01b78fa81ca145ce8be594ee009031eda672eb097ba5ed6687a703b154ef616757f94237f4275f54738cb59d36b20a9c84ae133bd715747952f0222573a91faf740e4b7eb4e88abaa91004e72a1709b401616b2edb2784e491f671fcf5ebe326b669facaa5d8a0f6f8469ea995c4db772f06\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = a0f46582cde6be215351bb7b29e8ff24398816fad9e7e2ed6ccf1d0b5296bad827316c18b1565253291fa1c0baea9a735357cff8920e1024ae5707dd2f0cfcc9e6cc81402217d9b4f51e10def2bc2f4924e7d22c022fc87d6c3e772f4952050d027b003ab4267ff227a15cc7c884cdb46bbc7eb38852d0e6d8a12f485ccb0312157097687debb6feaf2b6dac998224c6047c1d5727195bb8ce05a59669034e88de0e4815af00c65def5b9748d017455056cc1ac6d3a77e31fcea4e726eda6be7bd33e509696e54d1d1858a1165fa9ece5d62e493c1a33ab3c94d294838a19f367fb799d6b69161bd9532a6ef317deb919923d78e33309f14a97b68023d600b4d\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 9922f7bd01d7ba6b2de255b91209631af92e5537a4554b3b7a50e39f2fe9b6085a7e418084213d445794ebc19be43782d9f80df1daa7498a1c67d935ec00dac6b7a194033a14431320acd1d7f3d4c2b7b5b1649dd93931c49f538c94e34f44fdcb8dac9d31539f87e6720dc887c6605284a6a0408e244325e35917b1e1ccdf5959ca87091827c8157bdaa31239e2103ca8a112cc76a8e7e90f352fb8cb3a3381e52cedf4d4188bf881054b80387605e7041ab149cccea1ac2bb6560b45000601c33ebc31cebdd499c0b8fdafa7c1691d6dcc48edc98519d55d126a757b2a753eda4f2bf35cb191face371c9c34b2ab57242053b9ecddc91e4b621e650432adc8\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 99996fc01a53bca03382b96e9ad83a3139bfacc5d37b180a099fb5d515a7b78a5c21a339ae6bd2bee8e0f503ba2bf892c1885ad5f4940a99d8d49df6f4623da16c337a011fb895c006100286aed82977be3fda054d1e935a872939b704750c3e2871c33768946e65a737184efa50060c6898247a6472854884fdbfc2533c936fe9c922d881bd5f093851b46693cf633e25f27efd6db65da3ad96f2e8154ac39f2a9859f15c919a92c8cd22285c1f9e87444e61769f6833bd0d56106f87825e472e59caaca1fedd8d4065fad9dbbc252a84c196bf5d6c40bd8660600bc6c825bc7470aaf4ad118c6c139a5c6fefd5223ef490d4afa6c06269ea8c0054aa1f368d\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 7930ceed4b191365ccac54cc8a5bd38498c0d0c1fa5a862b6c0744edf9bf1969ec4f3c7c42aec737438acc797b8301aa8b30be2a4a4c1323be0427411dc8be84881036e9062a55fa2334176049305a44b97f90ed0b3becf56f8c9f164ef0bb45729f9fab1d459f690c58f07ef5ef89f21b15da14a235f3012e6f83a7f226e118d3b7fdc9356c39667e1cea5c667b54ec5ca6a0d58ad933484f447c670e5bd3647361c81831dc710360a90692eb7e4a57ad225b2516d9c3bcc77323a9354d1b92d0b3f5ade911f5faac4e4bdbead32f3349840ee66f4010789a84f0934182c2b0cb7d6e72e2b2a6839d03d7c9f681bb7148449161ed50b4466d60002cdb7492fa\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 16b5ecefcd0167682fbb3601a016bfa8bce9dd5855bf305ff00b45d97e50fecd27716997c37ebf8efd8b269558385b3ecaf2b6e38313508a7a14546107b75afb450b1a0e39cd0760151b666451bab43d7fdbd93771e9d98152ac889bf1abbe1c3f62049c4735602ebd6a90a0361dfa08417ba03c55fc6b7bfabb136851ab01eacf528abb1129bef47f2b04e2aa24c0341720f728bc9fe12cfa5d4248976aaf7035d19c18302fb9ae2443286a71198b500034d48113b705c83e64561762c583dc013cc099c7e5bfecbfaa7b971c8f1a4d3868fe0a4ad518372ca68c65bdefbb726b1fd92ad92ab739d2bd1af97724dc076ba011a9f32db3979ca4cf94c5370b77\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = b73d6d97834d8d14bb4536b050dbe47db349dcf6847586f80624425065e10360f9ce491c38ae5e48f6640bd3a314eb097f08c859625d3b7e8198b0b9dda03920ce5fc4937adf8c16af3dea2cc3137c2c200cb8538baba5bf36c9913784e079d8cde826f615313cad093d53110ed616591e5c38f32e2873225634ab10fbc7393dcabe742ebae9ea3802031ffdd6356a30aee51d126064584db555657f11cf742b8ee1ee41119b5c2e65c740219bfc36e6f65fe8db8d16684ba4cd7a12b5bf22551192fa75362b142b95a0b0d786eb26c07547e73ee3f3a3f0b2f2f37ba562f61e86c4bb25e7e059ea504f0ea8f5883382d7b17c95c5297a934479b4d40b632e99\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 93611a697f527bb2d6e4193ea34e079e0b8ec8e4a516962a74cc91c157528bcf4654beb487f5eac5ed445f858fcf8461e63fc657a57bd8226d980b212fb5e61111e0c654e0a6aa0c959f20001f6345a60ab14b8ef5631a81cdc552a04ad3f17eef287b011ce401be17900e79b4b045c12a90412a852131a1b9ae7c31051e8fe6f066b4f7e1d8e9997aef10a8c516fa3d782c9aed73dcbaa1d9794de7300c607c17607740f091c2dde354b58c0ed9d4b8fdc43e249847b494821bc9560fbc3c57f363e5d2bfcc488c041f123fc379c7bc80a9ea6ae98b7fb76058f9260c0f5fa1000a7f865e5a63d1d279fc7f452775186608cae1f3b640594d4b3fd8af4a5a4c\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a98a9744f1f1893343ba5b702d7d431e40900a3e3948d3e6630fdc0a8f391eabe2f4b5521a2bb03a16053e87a15015d5bfbfb0e7ea4877a05f491bb8df5893c867070256e8bc348f896ca2c8ce4e0ab6a9adf10ab98412e4ab6a4fb8440243fd34749596855cc14745d7096842c48db0647fbd71361ebba7fc263a2d191d719d23e727b1ce36e543cccd521b540cc42e01120994a06a95f43cb83ea51f73dcdb9d5a90683f627a070ba8afe67f9e29b003800479b6b8ecaeb6f2e68bf19f1eb568b170e56d70a8ae41d2524a0e76bfd0f4d27ac8cde9b00900b49577c55384e948c6c6dce081d277c3623b1e749748488e648d9349b9f17cbf072d7083c377ed\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 1075928172057bdc681a626808436b13f556883057c93b452326c7f51316939cef89fe3072c6f1365120eceabaa0c12ce4ce05762843a09debccfa01ccb9a85f8b0f1f7f030ed2a0c1514ef1c25cce22557d30627cecbac23f9f1fb645776883fbdf502894cc373e18ac6bf47d655894b528369a341ec1e56c2801a30f4c93e5219a24f727b5d41c0789d01b868742dc9225f5bf3b588e5836aed54bb009e44b9598a96bb36df4", + "bf3521cdfd792c2bf9647b01f77e80f8063299ee26a9a36aae9594536b7b3d3ab2fa8df3dfd7e4380eabec23ea09b046d9bd07a11f084107bb6caeaf32559685611791912513f50b0fca6bbc37f93b4c0048a41758228539e0\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 7a21f13f8af98f47bd62b03985a2e91ffb3c7c3a5af6ec75c2269e3ab11d859cd45a214b48310c7fd7983c8577d839cf63d3c3815302ea649a17f813d6cdc75803a6caf2195fe17a5e84d8a59eac0651232dc793d9b7554eb1123e3594e1f6a57a72e2bfa6b1ed9f1f9a6168aaa83ba2d8b408f3c709354a278b991751207075e7e5548f0c0f764d58775db3143191a210e702b69dfa8d8946b1a65d67b3da6f3451f70a65d29314ce5b7ff13b95cf7ae68854f586140d97a0e9de4ede07be81fe20a5b6330bd9c63f15a3d4904b3a4596951ef5c591007ee2f6ff94fa90abd1093d4dec45a9904eb656713a110faaeec429fea9d1b8c47133787ff6aad3f938\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a7db33f68fd972b3e122e2dc8c749561d14e513e7df9b03f285422015879de35021689bccca37b31aa7d156f39399063a06fc9590c58cee25d83e1debe90037a8713eb0c58194e7b54ddaa86baa0e9f83b604afb5585aa1e1a45fe24f38576e644eedbbb86f57031cb43f3ef1428a33998c1decf44011b63763e47d2b2fbdaa90deae270455607b928645b3f5ac39553feab8f5115c9e2f26497155076c13d76d95af3ef342bd1828e382949a63c54cd0d4c4c53cb00ff4b8e285034e78ee0f7dccf9017839c189ccb3bb8b92f515beb63345c9973e77dfb388b373b8076578e41aa3bf3e86bbd4e1875996ad19c8d618c8d69f4eb06b4103cceb2b8ccbd8a58\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 72eeb72c3c87040a35b98244d6d93cd309b65bcc793bf9b10d5f7501bcc4dd8030eea73c4670de7ed9605b3210dee4e53e758fe7741c6410dcdda4769df6351ee82380b5b2387c1cc8935a60d58408fa1a51b485949e0a4d4a82a27e8b2265ee634815b8fbe3778a00fcdef0201179bc4999ae16e1849027ecf92d53f53ae3e04c9d7a39e71f9be774036d40d38777fd6e115d0bb7d8b538e57cbf16bb4d5748ffac01e1b20347bd688b0b45448fb5028fdeaa190e3c288df6dae55ad078b50cd64adc36d471f0c31b574fe86680afac6a61ea7c2fa5942687e1a4027833655f88a123b50e7ccafb7cbb73c8ebcee7f915258b8ebc47a792832242176e2713ca\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = c280a6067d62ed84b0f9f44bfb322bad0ed92fd26f5c8ec7e91d9a115eec2dd6f5a589c124b50b732bc5f4e382ad344a3498ba280d70a8e7beb9759972fe31da8ba57b29a13c17004e4336207109385a5e27d53f12abd5bb6059fa917afbd45ca8a4322928cccc776cfbdefd7559eaa86326c21cdd6ae4c40c40b1659016520e5d34b1b63b7cf744a37bb795ffb86d853dec82a7c2c57ec5b14f68535c12279841fccacb94b35049a5feed59496db1ed372f968a4de1d70dd98c64e3e17e541d0fcc971a735cc610b9504680cb615301440cb211a73b6bb9355a677be77de6330dbdebcf6abf3ca83d457dbb951f3189d017022c354d08fd7a5d0f8f63aac308\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bb7d11eff4ebfc47082969640c3883ae3b2a95efc08f0a4c4cd59c61fa5f15e1235a3e53a9653186f09c21e11757a016a671db51ab597959a437f26dd1f864ab7c67306fbc578dcf614c304f8ebf6b745967c71b8093485f74348f81865bcbadb39075497e1ed9de3f9e21209d21ce609d2d11c3fe837dc7381ef8aebf4680e680276cfcca5506d3c1eb5fce1655b566ed63cfa69e4e186140580ec9c7a51aab286a54fb674cbc1b527ef6d778ad228109a93ec4a7dd39c30c5879e2517a540ce7c0f4989b7a930899c1ff51143e7d2d3802c2328000331b9c6e9c887fe8242d2dfbff5f828f604050268c450d74779f8a512dd0632b90c9b5870c541b45d163\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4988c316c1057404e4b0b1aa3d0aa039e0b4dee3917449c0cb816c7d738db50c5e62275770f2ac0372fa84e88a20a23b9c36970c6065c599ab4c23b5b28d260e95b7f020d760e7b7e00f0e7f7bba51ba104ef62205fafc6226c95c0f483486980eb163497d7c33aa1b856ff77bc1dcf94c57442edd91923417afa48fe718285f358a24bc7bba48707155e41145d16d9e37a12b8821ff29c581dbb2f3fb64172633c6d7c1ff6b78debd5fa8faa4623fa3fa93352834c7948f7b68311fd8f2189e54420d73dd5190ab34dc3a8efc9bb7787603f6030f0ea2eca2aa7e87c4373c9b0b3c8d9fe16afa3922639501b62459c34012313c160c8707f740330870ac2273\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8f9a07ec03306424540f913dfd03eff0567cd419dbc5be4a28b3dfae5de126a01d1fe4c6147aa4f1a2f57fd50be2566ef8ef52ad8ff816abb114060d6efcfa64abb0864e613907ee142a4f96d965b3aeacc6c870bdfc316c72d43a5c9172fd2a5ba0de6c521fd82023c511c40700f7b7651e8e98a0a20d84f7be365ee540a403c9afc6087dd5ae8473006fe4203a790db4723520be38fa3b9247075c93e6b5499fe8ab997c7267e495d1a99d5865333acda265c02569040787d5aed0bd4e492e3f76605120bd41840473da0e4fe1a388cadca7b4d543f5beec4be9c3fbccd0442dd0b11f9d79c6e910177aa1c997028d675980c439e61571011ff9b26818a69c\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 22f3151da8a6c4d0b32ed9d6fc8fe090e218f18289b5a7d780b9cd78618f57415b49ed7a2ad1064cbeb8a20dcca021cff65e5d51a6d662f947dd2286e4734ea6923ff40acd41cbe4e6b33e4661966a8de0673e59958f71fdc191b24a9ca7b08a78bc318de1330ec7025f526cc6704faa7923c042e561f83719a7edcae9a3cc6ecd91d86a94416d2ef60ab3e74e1f587c0b5c26fbc4e2f67983d4845f907e58866936c80b3159d352383d1deffbb9bbd67a2eabdcc43450ebfda73495618c6b5b8093d49e1c0c32445f5e945227de1e8ce1cec611cbee43cd6956944d6554b5e120ff63899755836df131feba79d7fb06fc3a3b0feda121243ee00cf8965d4acf\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = ae0ea39ab7ce7af3075d67f8edd5862508eff6170b43c02e4f592c9101a7da1dd7ef2e4be53ba3449dd6c2a6c1837884f12fa29dbe8e9d40c677d1edb6122f61205b203ab0f342f21ef8cd45839b9fe9f61738e7ed0915ff398a679a983124009fd37fd5bc9891d33f4830aa6f89cf30b59dc3d84cf955ef960a0980f524c686cc8123dcff7bb9dc7e7e1bfb3585bec3aafacd5a0c7ba63f6af332dcd1b5215f95f06d2307cd75dbafff2ac5cdcf4587a68eab0d3d277ac6e999ede44a551a0d266f9358074715931a7787f4ca26a94ece1c963a96f6558a6c8611fef31a5d459635bc2781ecb35e75837829864001074dd585d70b7e5fa6abe2a6e28b67d48a\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = ae177278bf000f22063be4bbe62c28840bf0d293096cdbda95eb2794930c96544817c7af9e92f22dc81ef2b64f43fc50243ac91a99ff41d05a5e38005a32c519473de62f05a5250643412d6339b44fcc3ff2eb671da073ef72832cd9a4e892fa67c59f8dbdb1b5564f1c8b93ec9e9a1080670e649450b006afac18937a62142e2041cc5394f87325e723fee67bea8385eb8847058fc56bad33419314e4097852994286c2094e4d0360870aee0a6fa2a3823d27eb3650e727845df9dc1af0e475a8325cb9a39f0a9ebb2104a3b66214a7cc02b2ad3be12f91fa434553927dac42aec55b8fe2b5230b0951d738b42b73063b97eb6cf1fbebf76f5f7f5619c730c1\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 1037912266d26bbb66bc872403272075ebc3c0352ee5201b189db701f64ef193dc2facec45af460a38b8d2a71d1ccb17dd0f8532bd87e5d7f6b8e1414367b5128e3f6035b26054d3331ece1f926c2685f5c286ad0befce4be76df6c26bae8a6df520ad073a058eedaff3d5fc6906e8e1c864d5b989ce9319e87fb121623a27432e2c06e936d151b7657d6500a08e8a3c71a0b491cd3908811b18d00add825f848d6a0290f4c0ee2e289274cbac8c8ee00168631d43e7e637609444c18aa4cc0a887bc104d6ec9f699119840a99a9e6b7ee3dec0d0b4a1f6a1e022a44721066b0fbd6a7c6b4f51401036e755924845bc94de315f494c5c19901b23e62e9db6aef\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 47fc62936a9113548699f3133f7252e4d2b060969d2a992e4e83e2cc6330f4d3c9e5cc2005ab49f26cebe2834b7febf478cd01d0338a56f262955f61c70bf662a55ecb8848374f38bbb16b0b25bc012197e2b92d62b5c38bc7b2b570b376f6aaab95a134cf6d0805f3e5823bfbc5f57b69cd84fc103d7f3fd7f87186a08dade4522cd32a7cca292d25c02c90ea0a44f6c38c13eb58b71a54b58e42f17245f1881087d32df31be3e83a2716ff9487e3b389e2398d79ed80c0cb355322358bd908d397b7365185ec4f55a50a5879bfa87e248d31a6ff51617b282dd2c07e228510790babe57b466e5d7e7ea6491dd720e98c77124354b3e544d064895ac845c35f\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 389f60a3f7e33801cc6067cae353b16263aa75279d0cfed16c122b4ed81350538039fe7f43859a1f76bff62b613bc8abbac257ee6eb3e5088e6ec33815281d6f6702f05ff75f2c6260c8791e43dc168f69eedf1d33d42fa5da0ddc9d2f071ab3f9dc0654ff1a3db8c855cdd9941e6c6609aa29d69f6b1b1254c3437196fa871f443fed2b2beb113257da4bde8aa7bf232fd9c0ae7e7419bf977f14c4f2c4d128e5f79f6f5c63939e7fcec231ba64145f8fcf6f43b821b41776811a848d613b5da4cb8418a1a95402c3ee5bd7195666e8d5b13f12b08cbd730938c7ddea9d65ca45683e9de28d618af1b618aa0bc88e3d1db4521dd069be105b3145e54004eccc\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7528546f84b9a056e49a848644d876452449b0e228681cf1a83c82aed6d1d68da0da6b880e31d71eeadd4ff2f59cd55340d63", + "0c6c548b4b9c600de0cc4b18d0e6144a5a294216e4c9901250ec8a6897eb39517212fcb0ba823ed763427e477308194927c7ceef49c440c690f5ed33375cf29d697da0fec04e4bcb0d2bd0f52a3bcd209218605eec678ad665e8adc2ba55caf883d14fc6cedb87634a36b0fb6019849693fe47b0e5ab62bfee78b415397887cc3ab293b170b5cb4217f912e13ffaa27f8ae6bdd4210dffa0179d723a53ecf6d4996992ea0ac9ed6b10064bc793256bfb4ac5aab69858d9ec4cf9bcf13c1bca969831639fe8bc372ca67b7603fd4\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = a736d77611787cfc46ef5e49ca0d39f9a1249326fa77b50e024c657c791da09ea1d363657fb7b9d5978dd9b75a2b7593528e3c19e6e41abbe0e71273cda50382921ec6b366b07f0edc0aedb048484d51b603d062aaa18c404d6bdbd61a7bdbcb32e917a79bd95799cdf43a992ee3d93193f9a20fd113cbe168df7f884067825b79fa73c72b9168f7b83002096fdaf613919ecc40422317fd14b5ef8d2561639a3bcab462c3ef8e0f59929c43e23cf21911be969afe3548c1b449baeab90a8f6b52be5f6cfe47b941a625d4020785e8180eed315b7a6840986b33b6ad6d519c53179a2c3cb180583808dbd3ab5acd90e4ee01687d0946578ed9d7558ab8de8a8c\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = bea793e3475943e123a0f811de9b3066d85d6cf394e1e8494741d8449ec11eed7b3d796ac69a5a3ee4279362f4a69decdcb1dbf397c7e0e46b9b855feb3b125f3ee8c735f79282a9efd6fb25bef533a9f3641f47d1ee3bd647e4b8e0c1bcb48ca35468302cbb32ece10135a63b4d4e14300d0a30b3eed9412b24139134c84cc2231dcaf505a15ebbb8cdffb96ba06b24f8e85e4274588f20454175752d94b0c71aa8d50a776ad13662c8badce5ba74f4d086aab60f12cfed831ee562d3b9d9bbf4cab8b53071dae0ce35644b425202595f155eed25a8d651349a2dc734130e0bff2f09b12750977fec65c79449b95957e3602104b4b0936d8e41d5fdfd1e2c72\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9740ab49e35c355c40c6eb4839c47c85a27231b2b96133015267e10a7b0f786130308be8255c68584aa3f6d4c1ac2c304130b5bced81ce26cf6a0a0bac293f23b31e2f04f5f91d98ff17750b299dc521cfc946134cfc76ab629f9abf5275739befee3fcc9c217e6e7c81a71dae3cf3407e5362ca0c0db20386ea943466d59ffb9e512022df97d666cb15c35b0d1a0cc532e408727e8f76cf9955587bfc1e327dd5f58d1f7edab6fbc7232d1d2afb9616fb5a5de1795cf6e93896a55285f793edec78ded83560b34b4102f505c4f2ab8f15f603a7fc73b75cbbad2bff29c374fbbd9e1d1a6a1dc10a09140bf0cd5aad2ba8a0926b29b3d830959e6c45e8d8fe32\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b5f76f1fd7a6e786981f7a4fa8430dddd9a27ac86f683d4c7abc383932e57e5b15a30d6efc79cd266acac752fa73ff06e3f2169807133d3f9813932cdb7c83de7e57ee196f1785c12341142cc3af2048ea81b4b265ad16408a764b412b7ad96dd29fbf899d8343b01e74b63faba19c36ec825102941acfdb55f8388e7d429a89a5d10e96e2e612e231f8cd857127f6b19c7766e6d0f79d54e9ef54bcf5bcdb457509154eb5cb0640de286e2d4fcdc6941aa4d97f67fa99a1213deda89c78e5373e40a0fce38e71e57da2030575271012c4fe96eae29f65462ce293943952db34a93abb2719226592cd3c651d3d4ee6a36f8082a3f325290869bc3ca5f02de629\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1c41cc918d7f45458e0bcf5a8e4ba5eecf39beffac05fc670adfca933f8e997061fb546a2faacf4cbc92f7b6da6b7ec97bc142b41f38476458836df716b9b7597072f11848bffaf7ade3871435f2b06fa0baeb08d3be31466d6c10409e3871c92df4a6a5346b5d7c3e82b90539033d170e4950320169c7d9db5159201bb5457e9b3c02c9aa6fbf2b5359f4b657702d37f34bb0ea2841e46c73f6d30ac546c1cc8a83c72319bcabf4ac741a542f2c45fbdbde6f4d8be88906a24efa7f62cd5e7697ef02a76c3fc827c1d2969d8c4ef05658ac4de9ea06dac8c6c0a65bc3d05ae3517428883a0c219084486c8793e2d546be6c8cffe00e07eb7b82a07449c726c4\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 1b80690c323802241d2b9fd1b024571fce1ba770566018753d6434d0927336d9d4441a845d629ca275502d14bf818ae7a58ff7af427c3b8ec88997473537cc564267270bb2be0030e0cd934c417f814091831fcf776331daa9e73b7e426f73f0ca9c1733d015f37cce5893723f1ce9fb2fa0bfc3df6fe7ac28549983fed2f05b70eae4648011da36855f892dc65c06c909ffa179a8950501f4e650fc6a1b05ab988edd59aef685d5b05224445d9603d5b816f1ea3b3743fde547de72f15ca60c305c6f493310d22e84523b036bd71b1fc3e38164ef7b954b0bec028fba60c4720710356d080917c1c5abce6d27d3ff35d63baaf685db37dc76568e3b35147d54\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 596d8e9730030342f72f0a850fa5ef746f63b89a1e0c48b67a817f775ac937454936cd8400653f4d1f82e315597b9e5146ff3fe4f9412f81cf6f8516d9d440c9c01c6a8e0a56838e2a206216b2f3e419e5fcfeaacc7c9be4fffc7586ec21d8bca6b49a2efe44d66266f298a3b70c4310eb22e64366bbd5f324a1c9c667cf0d970ecb37190bf7c98977f180100d3d6c63e3dbfe382e406128eadcbb99e45407a858dc6a443bdfef2c9531bd2461186ce21ed34cf5715b764c5bb4d4cca9fb59c7f90d9f71f43eafbb256906095edc27679b8c752b6232ad374c668d4ef2c55bc6fad362f8538b553ecea8658adf73fbee8c6c47289d9ac5c4471f74847697ed26\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 766027246bf7d6eb5d4a137dfc5d537fe2446156834428d928f6c2c927f8e911fd57db474d55b4e8007a0cc65d40e7f3b13c16ab4c106550e5a89059862a86d95b2de4dae32d29f7fa0ab67bccdb74f90708153e5c726614ac33d61b3ff90c90a2c8b7277dc33e677647cfdd303462ed192c145264f253cfc403bd55a48855ea683b3e0d39b866c9408f149f76beee227a9b22720cb5eafe4ccab94dcda783ce5a15c29905c2d932b57eaf359e1e066ee4e41f97ee2338bd61f01bc0516463a6189cbddbd083e61f82e6ed918942242ca178de8ec45d9c3abbe0d6a621fd395114ec2f53683cfce25c5d5c5758f81bda5f2323c4f5897e7bdb5e0b1c9a2691cd\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 7465093e55ef94f127a95582587d4096c69391e5fd935f9679cd2423d5e4e2edb53e1c6106f12e57fb372f0ad6f0795fc9619651568834be5f78d4614498b79615f894058d5e9be91138895fc5f38f4dea435ee9d8f9a43cf3bd98778b1c6d17ad4285338b26ac1288b97c4b2fd1ad27d02c152f38e2cab73677de734e56e6d48f1cb5c8bb5cdce8597952fb63ab5801d60acde502e5583825173646d4ad4a7f47dfe060eb7eaf34e44a45f621a57c6afe57a4fa2bf785b09f0ccaa2d6179f4169b65bd8d71b1ddb3ec92807708354cb10d10a4f198dcd1eaf8210079b12ec50a0b759e0f32103f46d256156e8635c99c973a03f70f31e32ed7c441dd4d7e36d\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 7925db05fc296b0d369a6695038c4196ef66d47f0a389ea05f0904eb9c048eeb464516de247437b2c8aba8fa6f95b563c982d21f5141505d2676b7691454a5f0c9c9d07d19b81c901b01f9c1cf5bd9b0d5e0b2e244b8475a1931efd5676bc18f84a8bf97031e2fadea1160ed8437c2dfd9a8f7fa918e93dc8803de821a067b0eeda6a6ba7c0a74f403b3fde78b182c7a22b6ca779513e0955a8fcc69d9a6d7d1e7960c032539f17322cc40e8698c146df8448ec2a430203dbe53421f2cf19158bfaba36840a5336a775200395dd1feb4363a4df2d115b6508fb2a52a7e1896a85fc778af2e014d485bd270de8727640d7e878fee0ca41b552241a83c1531fcff\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 7255b2ff2dcd7241daf5c0973f37f460e2ac85bd20d4310c2797f2e263f4f8df1a70eed714bf5fb19ccecd66391abf0d3d6266313cf28b828694ceeb9846e9adaace75f691f9af5818e05fdccb2e2dc0c9cbef64aee2e058a0954ec3ac9d5146073796fee6f1fbaca676a5cb70b00bd0023b7d171e4f79d22d16fa3d6886f7695ebf19ef51d0d6e193ca73939c620c632881a26d61a354184e00e805e20326173fc14f1e0ad0e85c74272138f58345c365e4e46623c624995bda7eb6be14be0d276d6b6ab770b1d1e424aeba562e80bec509fe3c3646f455ad9f3ce1db8f8b923aed9ac89a72505e608f3ec9e58be7bd130e81c1e7d3b0bcfd20bdcda9e0945f\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 9cfcb1b8abbfd5ca02379491ae39e3982ac9fe8bdf9577957ae39cc3b7c82815063a179822657aee3670e4b37436d47d7c24b79f5ac06d14a9ef51d5d48be524d09d1b8068b1af518ec4c80e2da596d9cc5f0fcd261a366ddfb191d0767e02371184ebe7b5999879ca805a79c428315ebc350ebe3d832fa0bca87248be57b1c1ce72df271cd7826888c43dbc4f187640ee5cde3ee3f004b530bfcddfc0eec7884998255351c7cfb7ae5d8356fbce910df9ec471ecfd15c3666b7943ddbbf3c688289ce3375bfa8a0fbf3f6078376c5f310690872c7e608b87b680be66d91630c8f3a71e44906c75560855ef3f341bd8cfcc1e49cbf77b58222ee1288b6979ad5\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 67c3f8293b514637ca21417422cad5f3c5f39fa97cffafd617ac72649a9026047e6d8ad968e48a9523d0883666dcf1d7745e2bca246f01dc285c34b87c10bae061e8e9e9b27c673e43c311bd23531443960f132d78e667ea8d22e118ada4efeb34a84d147b9206a5c462f89c49c34785416575e7ec1d61c0cddcb4aaca309b44cd5a5d0a0266e7dd71171e160b761dc3f12024b2508196caaba0102ae74c7dd1cf1c1f45127cf532f274489e9af63c02b2d5664375faaf1b7ba2b556d46b145c28a8d123b5c88c0151698f7771b790c00c17e75bd63d48406b4b245827364fcafd4fadf605bc5f68a78323d362189ce601a791", + "9e7927e3c62c2149c99025d5b3\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 584ff1c5a6668279b29b0e4a49fd2eb654c7b6466e76501a79cf204540da66e98d74abb67a990140e2c580cc17cb0eb9a0eca5d92f05c742eff0a037e841f22baa1144e2908df2c2dfffd0574eddf71eefa0a6d9eab16d29acba2af2ea9c6b28f9e577cf24e8fd68b160047d01601a407c048a62af4380b2bd300277f3f95531e0c4648567cd043207e8c80fe93a763214ded5c6706fa2617d8e0e6cb27cb2727b966122ee5031197c1c6f3f84ad1139d867f8c770c3dc0de731ed67e3fbed068ff86e39cba44201a309fc75b2f7c7f99e4282f8e1c7376a70198fc8d3564f7d015c7930658456a94f594abfb6eb6c87f41ab340029c57c761f415f5e5faf6b0\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 19ab49725adeffce9e1be9623d1188d5449e62403909441891a6179d5803dc61e3c647858d8db24ab61aa8f1160db289e7ea0787565d28b097ac975e5602f4052b703de1211f112380aa9264180ca1ac117fd21db9c2fe6b32dfa4b9e6fc42a94e5be8700577401b0958888adc4ce5d2720ea79b1e869b42b22e885224fff14de367bd9765e1e426bea325c7ee7982d7d234209e9f07115363fceb459572fb14c9b2c1477d36d687dfb2413fbff70a7edebf86a7bbdb99b1b6de454544597d499b240867d2fb2b5efaeeaa1107ef4fd62f5684c44d1aee075e52b467187c3312e46889edcc39f3e0bd9b57490c98022c89e5f61a2dd5931685e5d5e8fa1cfcce\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 7bac3340b1498d463629f91de4401adc8794d07610b10b81ef8b936e4a1dd4e7753ff7befb08394ec3d2213a969adb00492ef61247fcd77e1bdcc4f5bff41aaf904ac021b194b1b53e8763be5331e71f7d0f30a70b12c5e1f11678767704f925827e90097d8116e3268a67b77ba40b2ce3f29a8027e06d3072accb1638a08d119819350135d7e3713f7366becbba4797b294e7745476b57504a9464cff1d43bd6ac7b9eb17c9017e951684d1d851737a4e0785be8f50e9981af883baef33dd4bfb293d6e86a8ec34582a5508dbf1860ec5906ec9b18b2dd05ec3df360a5a756cd0328d2001e752674cfdb5080371a9bc62a56b3247f900eff0c98b426cd5aab1\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 2fdcf46433528f55e55c59db36b48325fb1450446cdf238c5af6edf60d96eab9e0b7e0dd7df8978e61afbbbf98eea261eb18d05c008eb994ad3a4b819d3cdc530bc26cb7e20ae25784fe3b1ec655370bfa5ae8fe9e9a52d4e0d1ea59f579f774df7fcdbb1bb0a46ca9f793bf4955aef584d361c412f488cc4cef9306574dc9c6ab9fd39846b823b4baefa37ed955c882755656c415a4d9c30ffca9da196563154c0935ce0b4445328bd814b2df982312a688faab1b6db92fd6b37d5a55e0af70db5d5cf3e35e5dd626341f53fb3c28514c9c6812f725d5671d9221dce918c397d7484f0a87d884bdb623003bde8eecdcb87aad7227df07b6e738c3db1e46c932\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 671db30f2d644b954f940763486a3153300b841d03f3879e18d4b146c850a998e8bf284ad997b5c1bc91b053be869a93ddc439c1360ac22e54247c770fdead309dc2b8ee1fc192528751ca97c5cba6cd833e65047e1b136b9e16c89d339d1c4611deed08d78a24573506729df3a67ab6273d653341875cb15c4aab9e32685cccd6d73461605f2d397cc7d8249cb374ef065aed42378c939b3875f64f16fd5b59db0158569e6075aadd5206ce7650a0095d3c11312c3e5f21dab98917b59aa5218b69339853e29fd50949fa24302c6475ff232929562f03980606412ba6b58bfe4baacaeeabd8f6cbe807006c5a527f368cc7719788bba8f5e3de908f40d2fb4e\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 02889387aedced02dda2786e1b3229958823fe9784b81f0c19bc61920ba00e34aa392409c582fc9f18dd2db125bd47e25820665a91b4832373588a0d2fecc4dc2921da9860e148896efd00c7525c64fc8defcf53551ef8970662b43cdaf14710055d490c031df27206adbed6b4d2cc5e65200eb3e37eb7b3fe5c8897a2d8f1f1546459f1888752cbab6657bb9931c5dd6cd106c114e9f15aad0898c72eee9209db93e8a3f4ff595778fd0f70e205c1e21cc37f64e741dcc5240d9709115781a17ce1b9474bd96e6bf30e320f95d9cd4f234bbcc7d23f493acb5d0a58dd84e1fb1622c08940fea7f6d1c842a948ebb5f4f478b02e8282dc55e69cf014509fd770\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 2b9fe93da30f53e330a798d543fb4e7fa92130388c55091d28e80ca9ef40061026a0138264c8063187e1fa37baf41ae159d1d3899ec9f22a6a37325e807ac8df2486dbee7f287a896e9124df0872a941fa85138333fad7619f010533e817c23dca7e86c7e99c191e3aba443d80e4c80fc45fc0fe53a6e01df3ae620bc6a7121c533091344c52fe496c349eaeadfa63ba22c58a9070f8d4e705dfff90acb355b789115e3c79e8b146587b06b2167a852be4622354152d24a625bd0a176ea2d3a98fecd4f455fc9f2ad3b4b20ed21bfdeeb498d18fded0d4383a9731b9ed2613dfd13aa2e603e9680dcddc3fb5727fd63dc34da27d3a355079adf6ae74f37767a8\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 6461025c5ec1eedde863cae192d8a34596d7d620ac1e14abf94d68ceeab229af5c0b966e70e54cb0257a8e26d60cbfb4f40d3ea675e7aba2ce18f2754a8130a0f38018b6e0349afcf63ad02b7bf75cb370b63f2905f2b5326be8bf74707b69487293fb206d4dff1ee0be775c259bee1d862e821c10afa60c3f6e9c610af5c84cded299daa97652a1614f649a90c188622b501dbcdb3ca4d13e19221899e49579a6c6f36238cb3f3d67d87d2df3b824e64724f8c3b8c2755e7384ba0b7cf31bd1e5ff16cbde4e00e5c5b866702467502ab5c1f226f7e2caca913d993755eeb6289af7b75c9548a28f9d51941c5d62ba37b1c76dceabb705fe0254d1d603f40015\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3047b4b63cd0273a80b6162fe1d13a5b92c1f93ea91bae6a3573975e98016c13299e73d8f996f86573e389a8554de79a9dc873bbef1c849b9643f6f75537fdac9e76f07e94f3777f97c2872b351096a67d0ccfb3dd6b415480d55caad089fabfd3a3de04aafb83948734eb9b56ee5aedb66bd539619d9b5e5ab4fd6c94f74ac3d1980ed1e126a7452b4dad5e0caebfbd7d107dd0c3c0ac654fa5808c2e33aa50598334ea2e1743f45ec1f8a037c869d69b8d6aa86d27720ff214b0a6ec8cf5c775fc2ba8148489700db930de18e0fe5d9e7fd8786d604cb7c85cbffe32ea16a749eb31a6ddd24aaef9ae0edda02b0e8f6bbd1124e3befd7ce56351c4f5632e82\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b45aa577e7ee5a6e0b230fb3a2676e47c064c14007ff5d3a56db38ae488e66f260e9c1e9a49d771cdf507ce9cccaf1d5e864f761134444cff79b78ecebb91f60884828df831c38090e718276fb7a57189c978bea9df2e8bf1e9c20dd402ad88e1e08dcd2036821cf47efb29ae10a7507c9d4d6c6bb902230ff99619e9ee4058bc360143db9da02c08a6fcc9e4fa2e068ae4184a166a64f817e1c5e6ef786ce0eee5712dec4c604588d6f907b4fe8a43a7c0a01257566f93b461c8fc5ffa4d55913185979e93fbea0263cbf99d6af7e4873a57da09803fc435cb233aad7b2b1491fc9a123be89378b4fbeed3f55071f96fd9aea7286625769b18a982c8c3a3887\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 090dad9560cbeaaef4a311285473f5cfaa4a264bb685d583f50c4b2c13025ac22959e81fb3b253a0e20199e8ec0c50a554675df9846ee579de3e40e72fc4dacff0f847d26155e2c0c42dac136c2ff5f427c63228342c56cc4f56e588dc4d676fbda7d15f59b30197e21feceea75b205d01c29e691a840e884a2a6b6d2042367932c2f71b42ac28f685bfe80868956fba265bdb96a6c8bd101886f7bc6b92111e2d5942b25f3660cdcd0254f09920ea4fae54e40862d7a71be42a2922f8dfc708c1ad4734e6d3452c902da9ff7c9b653ff5ee152fbe0b039f3b1f1a4b125f4a1162d12ae067d614f6b6cb46504dfaa78535c1f5705b4094176a1f968b4f4726be\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3327d0e8a13c15a84b8e77bb0b6aaa8c437a7b52bb793d00a992612fdbf9dd30721884fa7d96d614266d5667cd4f04e665b2d9fdc07c74aa239d523c01397043176ee4fd4fe542198c4ca9575922a629f6ee6f5d23fe57a7dbc060ef98425e2d0c7a368d2dc3126410233a77f2e9aeb8e0ecd99149bb55b4fbba4b49d968d266aae48d88539cbf64ed738c834b682b1960a13640afda6b760076dc84f059f4f4416aeb62b5311dfb900ff945d7f4b597657d6fd0ff16741031bb36c892e403831d99c250c66f54ac34db3f548029ef2443469209e9f36d7fe6f79af249cbd56b30b767ce09dee699cc5903bce7905878db7e62cf9cb0a0e889152e8589e24d3e\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 54cacd037a775ea0004e41ccbe0779d22926403ac988d1490dee91bcccfa442d509eeaa6f620e09bf9088f42a3d32b7b726be3b4d5e8e9562314ba96a95564ba1684ea4d132f81c14ee67d4383eac8d6ee984ac539030919f81806be095831db118b6821cdf61591517b38e45daba68fe2d1403bbc79ba77d721a9cb45192e28c4292f7ddb61fa3860ed3bbfc53cf5acf6bf9dc01238bee8083a25d93f7959ad931d1f47390d26c3a417eac4b73c48e6536662f41aa8986a65015532d094d85879051611337474abc9e3eaf1c97850e204d298c8c38296d6a5a0058e6114023af7e28ca7fc94eb70a42d37c1ee69775501642bedacb5dde8f7b75ef096fba3e0\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 87493eb1ca944ed8d38710e5231adbc2d21664a963aee4df2fc2573b3839a6daa9269dad4d1eff34ab00931d2e4cc939004ddc429b0c780ba2eaa3e937641468fc3455490906c5c0ecb3c488d3f69a5e2ddb29076a2e2abe36a9542e9b9920db662dea73c1818a71b9299f8e26504a8e2e81e87e713100feb5c75c3b222090987fbe851d53595648fff3490cf6e1b978753ed6250dcb3aabb5498708c2555db98ea4adce3b2a0cff130f38839669eb", + "acc6bf86a177804bbd93155c71f6a754e41e731bc67142488cff417aa2d4d5232eec0e55590e6fb4dd9b22d23803941b922e31b70f2d9a29a1dea5e356719b9fe15adb9bcea46cd935133e2bacdc635e4f\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 6dbbb9ae8b55d0dd42bfd45c8086bb09950143d0c0c10b26d1d3d9005fb48830fcd0d720054638b501a2cd7311db9cf664e6c587688193e0fb62f897b295b051c95dae9054770c5d165e2f37ffe4d2cb7e7763381a69ce7d3e0cf8a1ef95d26da58d03341d7ec73c4f843c4b225531996463986f275f9fa7fc18036f69e4e3c3ae3d122c6f035f9a36b7e36e5a6ec811d4791fe7bb603fea4cfcc13044c484431954fcc61c2d103b302698c6470d6a8ae181060d02ee36c7104b6984288718eabceb2c52c36992503fa035c7bf4e37c468fc5783b33d1bcfadfdfd2b04d4db985a4159f7bf08d3a50fe23c1bd4bccecc79ecabd3e0271574531e93f11ae38ef2\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 4aeb1e493470a207c0ba34de3a752639557db9d7e86424a3852c927d5ec5f384591c0440b55ae33db33b1c3380c96f72d94a93760155a259abc7ac068d86c44285cf3280f75087c5bab487539c002b933638a7851fa491366e89e8c33d27a6ba8c3bd2af0269bafe24abad6d57c86c5c70f61ed0b3a35594a73322997c49ac194eae12e00e7f5a332146786992c431203f836b3ffb1cbd02cea793fb6a133354436d78503e41055714c7cb74351c4d2e51839f42bbfa391ecef0b252e9040454452aafe63b57d4f8c6620cfff49005718454830976fd6dee6cdac55212a4f91082b64f5968f05d405398881e1c27b1d9fab81e63b21725369f1ab7bf29cd3dc9\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5e005e27f9c909819bca7e39bcb9b83725426ee28521807cdd06c42265a4d0eb4a71f8173edf095969e3aaddfb8c431120fb50d5c5edb9c0b136957245593aa255f06ee0119f301f9ebddad5a826c74c6faa8b2807cce226aefa07d0df0e0ebc92f34d42cb2a0e5c44f150bc78c822b2cb3715f9f2f59e3104e199597abd4c54f473e5a5260da3b826e769b2b0ea0f086c397fab96c727a22bd2758ac1e180e1ce18d0be398e640994b144504f4910f2f437eeb52e597abd1106ebd80cccda505066f884bfe991200b88b6816a80d8a5dd1feced5622c73e1f3964b0148a17bf0e326719d71c8f15189ff676ac154b5c41f787a11443de0e2a953e0a0cc1e937\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 7e9e9ae62b8e55e530a179b44e1dc4b2c8ecf08c8f7461bacf03fd78aaccf5ec7168220785969614bb84b44fe5464bccd6ed1073785c8a51d3bb61fe0161d335119ee807298ed0eafe9e248adfdd90ed3e5b5b107db429765da0246c669f65f283c81ca959caee80624deaf312702f407dbc7b4c856b6b28e64f9cd385c5150ceab551f1f17b245915d25795592c2b2486ef2e0095b71413ad195c10c76cb816cd96fd091327821dc40c9ad0b4190c7ba912514d51b8c1191b8b81b7a318d435bd97e50c9c0e459a874230e99c66ec5fd5d9f4af360c744463ca2925df12a47fd76592927d55eaf60014d652527649749509ed6ae24d554cf31b0c3fec8f944a\n\n# tcId = 57\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 45ac5b2611957ad7f3949c0f86abe649e3b6b08aebf3ead9df022741b87c09ab969bff2827fc96ab1f569463e889e2c42e37718b9ccef9670ed736d90a6b07915070f60bba52c53a1c8e4b56940ffcf628184d410da6e413ff905dba8f38813dda5de7d7aaac84794edd80bb597106f239d1f976203c704abc66bcfe04518bc759c8d40a6866c41f56d17a29c81871968ed7e591f0b0deab4570d2c8c12d6bf815acc3f4e281280e2251195b85d2e8713ab632018b1991e381dbd9c750f6938062460f79bb88793e7ac132219c426d39dd6cc691f5c081d705f13e66df9a4b51862d83e1a5add751dd85ef883db58fe7ddf8a501b4449fd5cbc9c6c1b14b102c\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 22fa9a0051d15ecc5bece4d6ebed89856e69d8142ffe9a5f033dbb1ad51be298d41706fcf15cae260262f41c847e8685126d300a7da7346c6a27f96f4a72f55fd49d71291ebdf56b3bd6c89ee3cc2583f6e437edea19858eb9c086e248c6ccd5f2ad5eeefd907900047152ed760a5a6f4427cb7c3348c62a4aff532836545a9f98eca5862afe03e1bc4ba9ee7134c8cbe30471331f90da43955b3d25db691268afdf18bbe76030e276128b94e6937e1a14b8af87f4e9de84fd0a38a19d86fda4bb952b7b8b11421c2fe700fc58902a8938d6918f5fb5936889891ffc88a8e6996d39af02c21c4ba9b75c8c0ed1b38596c0a8c271d1b598248c15cb27a31f9402\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 97628cf0b4a0b2d52849a51742d35739731c3572082681d8f4a6a5e3db87a9c5af93fac70109aba06f9befed48f069e1db2bf39e5b5645860875ac5c1c09e4beab0793f40c3072634a1f0ebf121d957e4ebeb92b5cb2b42c387b6d2a31612570c902fccd03c47d7ea38062905c2f8ec457d989833d6fc506785a3d86f6b077ef9ea454fa1dc2f8f6ebab997aeeb5c5a275fad733e28fd5f43c44c46658a7193bba88d1e2bc515740c1c9804524296be7321768fdb0879c6564885b628cf3b7288caffb1d038d446b6e8384b94f6fc14e5d7d51f07468d4356a9ed16c7f7fa1ee899ba579f09d65ad7c5e77311287912d9069ff93eb05297f8d24d7a7e37194c5\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 6e31f57bd445e460399878f65fd7ded779319a738c1577248bd2a35e3c6e527a51cf920fc367beda727bd540beab689f0d1f82982f6d5c22a44bedcd1fdd0bd8980a09e4673110dc4ccb696973110a428c978f9f73a96ae984d8a3546e0acdf68bf6cbba4d8436717c5c4f136f8640a2ebc5b0596d2ffd677bd80df4fae538ba27c838b76e4eebd2449bbaed35bc66e2dbbd9dc591086af4ec86d66cc2185ec871e9964ecdbfcc4dcac7ac23642f688dc67ce1391174e7158b06afb5f4b86e0b86ba9dea277840b1076e9a71ed9385af6edfa71cdf8c24a960d5d3e0938b75f15a68bc5110b2c6d2785c1eef49e1308d47d70daf8df22838fc4adec798a322b8\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = a6038ff3fc350ac0c54bf0a0724734565afa24e28f119245df0fd0d64780d9a814461629f41c8df83bbd3d1a2af15ea3a6a80999a10482478ec77f141a97a6fae9c58b0984683e7695a6a0353a5ffa8cd1ed4c6f5a0ba56d1351f9b26c943f63043ee71323124de90d2cccfa39d14dc269fbfce545188489c4a15bede668855a81caf4e2ec544f27862633d1e5275e012ce91d80289988d6fa7792011a20e1081d994f21986d8aa72d2514f5c9baa1b8fec3b543e4e2b32d95203f274740e7ef56c3721884897af0b41116dc06ae3d7bcfe7656b333995158797091e20453eaf8da37f20fa52e234ebac3567b736053b211cbc73c8f4e753f000c823c84742ef\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1c2a1a28043403ab356f34272b37838011442562695e66e8af127ee75b71ac0f3dd40d60f0a62331e8454f3a422090c24209201a954227cd06eabc05d605f7d6e44a97044e61b9aa40aade2e37611dbe470a043f0df3ebf6c54f715b89dcd88c63adb710386a839308fa1f71abfafa56a9fe678c7d2652e4aac60884cf54b14376d3be85aeb8212888f372d5800f5f25c1bd894aa460905b5151cc712bb3792a0d1b1b85519234b169354f2ed16b3e1beaa7a9da7dd574e1b28a993b4f9d3bf32854ca4881bb1379b11473268bab5919ea3323ed95104049197d9095947433e9356ab2d4800e20fd54999185ae51cb25a50dfd799b9ec575e73d411f373d96e2\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 6efa13c513d0ad3fd5e633e565837e59ae8355453697efbf04256bc76010a09fd257488df9d8cef8d78b2e5819182119092fd483e601a8c4d984cb5e8817b798bc70031bd7325be8a7e0b44508a9350ee179a4792b351d370259724e565e60df9b72186ce2800c4e79511767f66aa84cdcf70e646065c942c9fa2dffb16b0d819dc861cb16a52ef1d5f36833a8a9312189898b142426bace8bc631b1b74c96d03669eb92f1ae83fde6bd1f7db7e94a93d117e21f1368539c3348165a0126fe08a60b8f170455d67cae0c1c5e651a635392ad1818d51412a6b6f958a5a80553f8cdb4be940f78a3366e360cb3edef88419571f0b5ec1f1b5829e5584c2c3d6195\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 647d39715b34361190bd842b775e7b53052b72f9e85a0de8be0436a2a61ab402237cbb85de1466e702562ed04084366d662db011aac0dbace307078ffbba1b3a37495fe6e604fb5bde54ee9afb15f45308a9a3af51f6c8e79ba69935635360cafec26986d339ab8641a1bff1f1af0c1196919ad4d0c9bfc7ae3e43296c04fd5e353ea5f754149cd618172558263d3f17cb6182befe4c40816be06045e5428da0ec1c3aeb71460802485b390b350b37b8ae1264ceaba74b21c052c295e36068e685cf9601673baa2d935ad3e323000b3397bddf91e64ace3669dce6c704e65142773a27c5a07eaf74e850bd72b9cc464dfc5daa8b6c396d0add2937bce611beb0\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 7f8f298c1628a3d42d4a60d93d269d2bdd2aec2b894aff12cb2cc2edef41b4b814622e0afb0f893327e157bca9ac0edfd1b76eedeeda70c0a0c2e8eb85f2098bf9808a0a4e9ae4c738c8f721ce33452c68d0d06ab22184af90bbca42000a90dcf5e3228722db3a206bf2cc6e31c90f1ef233898acc957433760f380137586415056467d43900a7c21d25fa20253b37d7288eb88a9348343b985409843d6491a9e12ee6907233cd83cf8b5b6b45fd22f4b5bbbbbeb152b44e22c3e03c8c18dc608cb5ec6643c17f9165eec5b8135d14bc16a0e70edb5daa70a2d50991040de1f0cf4382ecbded2e6adf8ea5acea034ab00c33b1eaf0f6ab10f62dd30406d83667\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = b0b831b5ee661f4eb43b906a2f9ee652f7f0a4346a9e4049555d8bda185e195d8af881f2e36304c8b66abf5f8f030cc0b7ffcfcfd67fefd5e7efdfcd8caeb1daf441f834004a610f091ca2f8c974d51a0b7ca76563927f19d0e120a90393ddd6f999dddd766d2435ca3e526247cb2b649d4ca13d43d898369730c6fa7fba937a274721d21e2e0578f4af4824d0", + "cdb377e292c6d142c26494cc0474a9da3f57c60eb2bc8900347b4e619bae96eee6489dae5e2b94cef512c9f2e8a17d277e02ed744c71215e21e6d95896a5e10a982b0f35621036308ce9f556726d9a83fbdd3ba6df047e56b4793ecbcfd57db1f08e6323b3d9ffe3111f7bbcebb46eb33694fe\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = c16723c96cb88b871f9ec6edf3b008e2d003a8e90b93cb0a1927adbe736a8109cc7bc70f9bc3dfbd656db4fe779167306d97782981d0639252d3b498408357d4ff5828dadf89f4f602462330d4c6fd61d02ba17c39d072a87ab23e926abaae6528c2817faea5c8c02befe96d93bfeb86c5fc0b5ce1c24e3a4986a512f9b935625107165179b53a137b013b0717fd203df902631ebe4331fba1631214f1eac855f50c6a5a59eb8aea944b138dc6c1e92da8cfa514b254aab63395880ec4cb8117779c6a46faf28917fe77c399863598284dc3a5d8671c0d2856dba7791c84b207a2ba18be5d685dfa1b3f9b5582afe9904b2d273113e015b1f4194d3ab070e095\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 4f0248aea56b71437bfcc7bb572c198a4f9f120a8ceb9a0b2fc2e61af786bc447b49b99bab96d009cc6bb8ece7d66f08765439e5fdb4ecb771193bb8b99e20af4435446844252d29e054c0c75fb0baa20760929885575998045dc6840554212ea6d240af67eda477923499f7f5e7d9c3d95d9fc35e40c17e7d5fe22824ec3bcaddfd71744865f775cd7eca63bd615d718518b0ca6c127ed6288b7768445ef8ab6eebf0a3bd0fb5a18e94d28f09e45031c3e3e8c4bc0bd230140de3882959115af01bc6b9efc05554318f733da51f6f9b66c899324eb2a3f21cbfe64e4772889dc5f52dac755d640182a1ead5e0203dfcf1746b64d6d4f4337228698ec757e0f9\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 43a674e2a0fe1adbc05065c7a098244c05581303352a797e003c39309b09d4f4303d1757aae29cb2ef361992c28d955af3e293b98c0c977744971c6996c1dd93f2da8bd46c771885a4634952d0538789406723048454ba3e88d78ff44126eebb0a7d850223a02a64285f678d961b4ea77142bbdb1b708db912425c6f4049de3b75b046463638a6abfc463265494ded66db720adca38aea8f5f03a930ddb784a3731124209ece721904fc66d4983a36f6a4d5adbc109a4d66c7b861ba92fa57f846a811a9a4f56187b507488bd49265cd017ef1721e4decb3b2c66666977b2af010ab1985bb6b8b8322ba564b60052ddde7f106777da138cf0013dae91887d71d\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 91c7ca442c95b09a08ffceccaec1ad24609a1593c2a89dbba9f30de5650ee6d534a9c476251c7a601482ff44531350e87bd070bf8d8d3f716c3dfbd635a0719c5bc2a5f042baa13646266d640b414349f008256aa70a8c4ae0fdb34be64684547548a6794d4cc1677fbaa50eaad7cd5ded53c07a601c65358060423498801ac9d2ea1d227f5467f15accd6efd3662e344a724a5728e651b199fc20cd62c4144e60781b458c06bb1521161527179d8fddf3a2087757a0920dcd2e75f88d831e95b246784c765cd21c6ad698bd059d96aac722a70669a13fd3681da3acc784c79924b9b0e6ef4bce2d9d2dcb994c41443b932bf8e5d15797f846b39924ee6c0658\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 2447976e684d4f5d35e1c33ec207f921ff9767732e8864cfbac5da51db7533b11d27c07e96f278979da3a6d3bce53807bbc2449390f5ed40bbb81c7517bebfbdfc3f1c15a3b22a8b2c08cd7efccc90e39c2e001bcf2a58a4e29d38426baf2ee533f1cae67c8c1f4ce24d6505ed9a118cbfb192fc4e378a9b5187615e69296e1bcddab1cf88127f05c29f43606d00ebe259868668708de9f5a9bc51ef0dca83e8d73f0a762015100553a440688feacca6364c4c68226582028eabd275692e133054d2f70d8c4b3cbd2ee69e17a571d6a3473cbb2c3fd8450262981180cd1c81194f09bc7cb3a2f7a949d8c56cf69e13af7d981f170073f2ba8ca55c9d1c9a9343\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 10b900848ec8daf64fc40c57765d01462225893d6e5d46c21a1b7de405fd6fb505b678427a274d1e8954f866f3abc6c7d5ebe78af88de6ad8ae31f42827dc7792b160b70dc4d177e7e4925ba24b75fb19c131d443b0d4f0ef73daba868ac342b79209e313b439d5a18e07e9858fc6ca913fbcd1256397456b47db9d987227d84eccd0df2fc2f4ae8ede958382200dc867731a426c80e83f3eae20134f8ae7254c815b1ed75ef2807938b57993f5597f42a0b6542efaba2f5d3ae6c5035ffdfc9adcac7384e53ec601e8624e3471aa6066796bde6241f9d9fc40af340f6bc6a82e15c338706ac25ea7fcddedbfc0a77a852d1becce0ac8fd7a7ac3f376d2e0b56\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bf524f0f24998c53749025f33201b8270e4800b6798ef21d84f363597299657c49dd6ac74e0500c343b5f5f14d31a422ff44342001f79067ab9d0b0d69b461c687bd4deac90e4300c1bf1f2a809b55fb870d0f52b751c32f0d824e73b82f8186b604af5d5847fb95a4bf4563c65e460ca61913081398d57ad37fd81e652dc13083e9debf8389cdfd564b00398c965ed85cb4f5dc8fd4661215b3a8f7ccfed76eff03085884f08faf20c971032e13483df6ddf78e1bc0c50e77ca69dd678f5e69ef376f206410d9f8336b3789091679e302353362964650593cd1049cd0186dc3ff30cf62f66e3b37f2768e0e5b66d5c7b858e4aac6b53fa727cf42779e0d4ddd\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5d0891ba0fa3e7dd890ca0ba77fdf832819d40b84cc8c90940605893e44aa22aa7780aaa3c7f7696bc3f5a7286c270a6b0cf1b0e370b6ee868cc1139ff412ab28877991d541d227092465e034bec6e3fbce0d763de2e0eb045dff2e52c6bd42b4920f13fccee1cfb25e2f54a8221bd733db7e2577e88477973ebf8d3e3e23b0fa4ca2ee182cf65e2bfd3826d2ac3f34ce5142f949d400ea9f3989f54bc852ac2c37ac4e4bfe934c552ef428925b92d5ea23ee5be3cedf0145735203d4aa28d6fec3889f83482e57d16c15e100f35e9697af561dca27c435ab99c99407eaadf200fb7e8172a85b5ca9e080f290408ff81d79f318540d1ee4138adbe3079fc5c1f\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 7097201c4ea62b8711bb9c5fc1f2f360faa2c1e975622570225cee8df555b46645c4f23de2f6a0a8b018123beb401b0baacdd4f1aaaf8736054ea781ecaabb237d7ed6f0bbbb2da8b8df63f8009440f4829312bb167e035bfbeb39cba467edc1c1bff6d390849046bf89636a87201fab64d04092e13db975bba25736ad560ea297752ed97f67f760acad3e01e5902ed1c768578dcb57c61a17ec1582493ecc6f41c97a439e3fc46ed0954b9b799b88d4f58219f4a1b6515b08c7b5584a0f304f2aab4292dd06f1f616c5a5cd132be50f4519d7d51f0b87e0e0fee39e3ef0e984e9fe489816286108315fd0c19e9fcf2334e00da5334bb7afded2892ff43c04ae\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 2e58069359c7e48521bc0bda40aa98647b81840e82cbe107ef66f1ff6daa1ed22d15c01bd80a39f3bf9f191f5698e1f1dfa43f8c71a4913db2c5186dfa76c405ba83bdfe5011736b6478f598f0f0620987f323b52ff9ea56ca6953a039f44ee0f61c8bbea923978ef1fe2e81ff8066f4dde848035d377f192b5e856539ea875c76df009e1b4c9c3c78ce31b997fe842aa34ff2105ffd54266092f1e8a6c33e4087071072c3f3a19156e1fffb2295fbc741a958559439bf84085bf8641936573576804626734ddd89c889e9ca373c498d84de52bb7a830b4f1c6ba54e66f0869bda2449eba214df065738e823249c0fca1a88236cbcb4381f1cb1930c04f59187\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 7fc58ab285b6bff2af7f3ff1036f4d2fe8483d4c36b89e78b0a39f76719eac94c1a7cd1c44447dd408e201726fc7300459122cbb5ccef288b57d42d6efda841945892bec222a10da5d92854b1a7d86fd1ea6fd25f097a9810e3237d8cd615a3acb7a800876f473f6ff570c41a62bfea8d24b7fd4e2c46c0d4904496e536b0cefa340eafc1828d2a0c872788a1046fbc6150ed9e2d15fac878730d9c5666bdef5d1799d43985e711dae99e19996a199e33766ff4469d6cee3687b6703a4f9a3e70515c0761822efb22bb45292b84e8908103cad9c6bb83437088a137db76ddbec9b5c8c80d68024cdd22f16d3deedefb9da927c478f0755d042b662bb34ffb5a4\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 648115f0266f9c2e9e891088aa19d63b52d0834c367d525b1f904c675e2c20c84c687465119fe51493a0059377239edd310bcdd2265834025ddd7b9299d733dd071b682c301ad304743c2c18fe4b94708917ab131a4900939218715f4d3db8fc9dcb4c7c0af77310cc296502a7682a050d6a8285fcafbc62a8cc28f7f6d404eabe263f9732a4a01060a2c669a3e0b7e17e6da44ab7df25876852de52e43daa09d9438988cf3c5b410dd24f1b72e557f01cd4ff15af5b3ede5d6be6de21b19a945b563ad0b6f169e02ca11a4ca96a80e7d49222f0e4103d19c1862c27a79593e54f97011e67205c5c6b9bf5119b9031d4003be3c17bcd4ad9eaa499f053d92e20\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 0f4df0a0623c2513a39adae1d5719ce01052d7b72cce3f70373d8bfdd0bbd37ad89e512f78a3fe5ed907b77c14db1bf7ce65d5ebd04d48fcb5a3b475d3343bd7b56cb61a7e437d1532bf4b904b874369459327bd0e9150c709421e7bd54fad085324bed49b3da6fd5bafdfccceaa39ddda0c737b5c3e284c2fb2dd31ebc770b257aee15e926280132e698acc60aa2352bb2d27424707c05ec66905a6294cdf70487aab1798179c125381274850a40c118d65acef6fe7f6d561b2a1723d7ee3c20970948452f308a07cf9a7fae33badafc576387fc993cf37e17726b05dc619e35a6a587a81613dd0aac82d9ea503688f9df225253158a629d674f90412285ee9\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 37b22230608119fa91a6c8b10d573e0e9719570cd0e209ab", + "cce67a3b23751617b28518a681ce66ac24f6ef1fcf1f66f3d0e477b85302b0b19852ed3459333511bfe3e589bd567d77e58e411769bbb2ff52c56969cbcddec971520d7461746d1ef920786e099477c33d7584d23334ed21186cc9bcef7edee82790ea1a20f91bc1dd531a9de124437f9f20e6660994b8d0c1b6d60bb7b261dd3d23da6c38115b95af518d12fb24bb930cf2a0378e89bb620c02364f6dd3c0db53526cdc401fcf28975fb4327bd36b1b985d1d8444b7cb63146b907f74a19c96cd3bde356bfee145f25eae40e1b07dadc5b03b3ef7bac252e1197fe64a378de32158bf1abb1b52e0\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 325aa2dfab66503c6bfd45e770465b03ef7492c3f43f4d5169d907fb85b5e6e00947b11c6ba28d1e45ccbd74fdea67552f2e0362035aab025cf583d274377dd837293178c69c97c9f31b61c128fb19f333f72bbe13643cc389d239c393c91bba05dfa0bec8ea8e13deeea943d5fc91e06da014ea5a7b76ff62f9b53d62e6041b0a53c0ae7796dd42666dbe65c12b1b4143b33004cafe7d69ae76a73943c5d41604f0e9185f758021ec71495034711d37d9bcb5cb3aa302b03d36d79e9fe9a8785df1524c2ecbecda6fb7221c8cc89e896db301d572e6cee253beb7311b0b1fcddc33b2bd84d7ce77af9c702b8ea1ab2d405213f08af17f53a95571e95d14b1c0\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = bad07932d5e267ceeabaf78b85715044b99e7a85afaebaf15d2a60c6082c22b1080c663be9544f44f3d70ebb32780465b7a35a3537267f09c65072c1046784c93d90ecba33ddd0399024bc93837e4aa214fa11d258d35c7ac30ce0ec6802554ccaf52b86e20efa055f4c1010ebc3a6cb0b8fc3ad5bda2558554031a7ea9f549b53545b36b658bb3367e93ee619bdfe88e9299fb4f7c6eef5d822c48a227b839f05d23061b2d49481a4a9f164ad3fbbfe2b20806fdaa9e16a465b3e721001002cebb9b9939c605841c831ce785c9c65e866e6c00606518ec08e5598c8b789923c3fdf4ce05524588d3b0b5d9eb56c5de1f20333cfbc7d8e7d43e46f9eef13d6c5\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 66ff77a8056aba526746d6fc1d6962795512f6cecbaaac2197374426b0983eaf78e00dc9a895f202ffe467f9705564acba03d8a5c2722a2d9cb27a59e0ede7f71614b3a03f32bcb4f10ed094d258e7e2c49dbd0aae647c0578bb4071017acd187a684392297dd8b422b5c0e66ca9c6cfc4c3fb52b9a66efee32c1e2c0a217bec3eb030bbe97297f01389ed3b884d7623dbea779d5570327630f4d863071e3d2dc50b5dfd192bffe5b866c3ed7d3442ba282b8d3040654c97d0f89b436576288599845b3801be28b19d27f2052c0cb792104d58f79eb87c43b626ba46ccc9b288bd8a0e09ed974b2eaa6ac148cc97e5154feacb03937db217a1c3e3e8117b5d92\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = b55443ab3d8eeaed33a73c1b2f7874782dba51df091d3a6879b050493c43ef8feaada78c06fb4842c690456f5aae3a81871b6961a097dbbe04f63fda2c5581902a1671fdd82ab35efc35d07af64f9791f99cd31239f070c96b34efdc68bb311ae5398271378d12892d40a54c15d7286dd5ea618567f24bec646afa89dc04a1ea5ee770cea923dbff457d7f2f93f602a287ed7180c0ce6e70cb7f02d1c11fc8f9266980a97e00454f9b93c6a06b8132ed7f6d2255214678f22fa2c0a3719a8ca8e685b4b0bdbe59a890c2e11e5608bd049041834a450f4b6eafc1411536f12adbac2712c048ec11ea556a3bb5c98c1ff72c540fe9a9160b4bb0dbba8c50a38523\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 0e063ec0ba113694f86e107a61b79867edb6e40ba1053fb5132fae6a665c042f371b76a24cc37437bedb0835b44ed8f7e910303a565ab6985c3233dfdb59bd29fcd514577243ba437add9a584a22b704086857b92da088ff72f13e4ae29a94ec9c6276967075a8dd7a51cfbca1a70c3d7d624a6f1f9703092740b3d552cca1e3c69850e88b25d0a830cf5ddeab64e8f856daf921ba8692e3e34c362208c4661d171ee9456fd8be4bdf7354cd6ed703366ce369a81a8c445a62641a1e57fc1de6d3cfe2184eeef69473ddfaa556de0270583a84a60ebdff77cd31f73cfdee04362fbabb3320b7e18ac00e298fa9c502236040423a31ede48601df77f26c7f0090\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 8b00079190ec5ddfecf3394edcee7c2c7fcf394ecd185c29509d6818bb7c401040c7ebbbe806c20f2c414b72026dd058a12aaa1a90c6d4254ce2e26f98747778786057086663e3a50397d02887af11694718091b0aaaae6ab79740c8285513f92fab0ae112cc25e739fbf7438e2e48a37a1cc86c4443e5ff53c49258878c2d9f08f322651bbf9030a8563a2993d3e2e663b0d7d8ac2cf871fb67a7a5d9ebafb35dff6329c1929e14a66ec62ef92c3490c1daec8fff67c763b1686fae7c4c79993f9c51659436e989338430f4f772aeeade41f4711802f7b5110379b3f0104ad2c897f182cc148d403955d3212b226e99cb6b4bb9cdf89f43198898b5453a4a91\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 02b469c37056f5f17eef3cd2f3e2bf0c37f0c917f3fd0f5341f610cfc5ebbf425a4950dbc42fa3d2d6499f44c31012b8c8f4d26b6aa20905fc198c9ab2642d8208861a3f363470ee499328521749ac7556c3c9b1604fc17f37f72a732b26c9a7fdd5984ed38065a93954b57238a3a6c3e0fcf8c75f6010c1929a8de5e1fcf4729b9ca804251c0a04f364f4f47a042146d13b1e016b43fbf7bc1193307a864df078dbb60449acc1e9621d14057f579141905c323ee6198e3b63f40d75a78e7adecc4b14e0ba346061bda490258298606bc28e8ef33fa041ee2b0f69080651ec7717ad1ff14f1cdd8435d70abe5363d5e4f320339285916bd84a2ce88f890ad8b9\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0de9009bcfadfba4e031565e32ba542c22d890329905cfd7dc4c46d86d87b992bfe4c91962c96354c5369ae60e1960a9925671d2c41e5da0fee8fac65ae4c72b1d2d3dc8b33aabb5dd656c1652c04faa17af753e9ba332f74e0996666dbf8a0a4e2634f640c9f2b7da64941f6c81aaf9b6fee9434ebdefa89694b378278a5ed71524c20f85e33ba37c15984d5663f0a5733e65be9fab5655bf80d7b92b231dcb4743dde798cbce8a3ff059f70abaed958719f06ea8f55f18f71bbac78447f3e4e775a7ae02676a3cd11b1493ca8715bce0687959b0cd1a9ca8b6a3792f9f6377ed1f488ec8e3ed95f87aa932f79a6412e2cf5a241b24107590a1f1cf3e7c8545\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6a505dc2ab0dd4292cfc68fbff91c28f49d079d02c842db9e9c2078092bbbddac03e8c32efe8b239a5c8570268b86ca1de0dc96c8b550c14f2326c779ab44906c1dae63c3b1c9fc0fbcb03afd7360ea6297b10cdd098131b35ad271aa3b2e39c828ebbdafe97b3dcf12b0c41bfc577fdaa37dad459ffea653dd5bea70abc624fddd856ca9f023116af3eedc18f2747b2e96032253dc194e2e40a4a3257e5c6e210441d31bb826dd70423d12acbac290849ff45dc4ecdcdb07fa9e7f9c3ffacef0800e63979fe70daf04566250860a974eb2297c46d7478108f419055c0223915e8a4d95aa58440e2af3a6ec6d44c157579ad851a53413351c4b8bd5d9201395a\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 60f2f9b066a7329fa2c0e01bfc7d0ce06a77f08fda918703fc56c43e8a4ab058a81a13225af87d7469380fedc9ca5966a29d6631b88b3c1d0b9802f13c4a8c5e3049ec3b3ef4b79b7e03846f96536638a82997d2e55f1c5c3cf5b93685dede69aab95c3ad10ef59f878a69b96ba71421598157048705826c96f6edd6231b4165767d94dd85e68beee6502f0f91a3803e247c22030945ffa665fcc5946d022f938e8973e231be9c81bce34fab30edc9167288bb2bac0fc13f46e3f03d0d76a501b7f4adbee6300c66a13d1918d4fca30e62ebcc16ce97bffa3470929ab65889aabd4b18daece2ede653b85fc070f309cc381365486a36db4b2e85f27c74471507\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 25a236f8161ea633d5e093cddd5fcd0905bc8714e1fd26ac00ba021a8af1612b0f678a9a5e985b32abd3fd7dd711f4eb49dca5421cb728736d074fcda041608ba79efa9fed40ed6d4c0dd0ef4ae6eda4334e374966f079453c755149c7099ede7c54f595c53a83fca7e4f74a546c7259a7f0c62c82005d60cb49a4c0b43f119070aff6429e1f6cb5a7ad9ac34a0863340f8eab186bf4b923d2481c1e830c18933ce28b8b2a847b1d5f515e412bc3e71030d1beb5cb12879c0f7ced790234a3059e3e964b9b17d7129a6c83398f4fbd8c04db7c33879f1475e3d5dfe1d891f1f7134108375c0ade5627c53fc9fafd8a66d2e204fd3ddfdcdcebb6a6d5d6191db4\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7e0fcc77e2df20a7c6d81aa9a8368d017203dcbe8c66169c10db0548f0f0fb3d17889cd4fca9952347dfd9bf9ddac6627dcf4c47856a47f4aa1593e4a4483abed71449ab1cb0475b1d039ce7aacdc803a6f271e89c47adf14a1b14250b4552176ba2d6fb18332ec320725bde4df6c347f3e41a81ac581fe519ee95dee3680a0c638694eab145ac5d463f48876996e4e650c0b677fd926cc093a274506fbefd3fa70423f7e5c970437588c228cf9f0906ed05d707596244d8b85424eda776018dff56ab788c8fce1c1ef1f4507805cf6cb37be6da10904cd24ef8fd658c1b98840ab4d24d6e8cc3c282fb9245b76557a6d5258d8c9f1d973b10e350577a675a3b\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7fced2a61a55dfbcd398dd25ec813c30f176fee22fa5aa0cf832afcb8547c4a73dbb40eb723cc3e8248d3f0d9e395d79dbd82af8be5d7dfea1110394528ab9fe031677bf914225de7b325ea136921eb48c206f681942a5f15287658146b5ec959bf86a4244ce34df1436f900a36ebbf4bd0abc28b1b20d5d560e34b634812f54360316a066c4a4e284bf615e6280251a194eecab697e2d0eb8decaebe574a3e222576d394c0fbaa7f4dd97e1016a3c0ea05efaa50c768310d7e2a375b28d526dfabf2ac989e4693bd5a61ac7bfd53704b8538b1", + "d85fed950ee46adbacf820163e03f71329f4285f74ea05777c53c51a91e1c69f1d3e6f0b34b64df73b1b46005\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 89e1130ad970c6e236c2dc4152c7879aef47c1bfc3ae6401342900cc53f2e1854734194509bf92e5a533724b27d076049d701300e5fd2747d4c7b90b55cfc7110bea516e380f37d9aba8007d942fa504365181a4c9cbbc6ff7fa0c9f7423414b5454e57c225cd4a15f93f1259a8de85d9deba1c722eda75192a080214e1a039d272eb0ae0be72d45b35ff5d61b316a62606a58490d86ab5c1bce3a27a10a5a0fb6d74f169fd0a21d1f841dd564ec0bee3ff6b8be891b91adf4622aaa926a60de08c002d71312a5d2d4d1a7ef45ac892bf0a6fe496fcf3b223bca3de0cdfe52b0885ebe288fe5bbad0c84542cd0ce0446615b604d47ea3b2506030f986d057035\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3a8075727fce3bc85d1b454a9f53f0e6353bc206b8ea30ef8e1354c4420abebb103ad6999184937c412a037c24c84267b198238fd25d55b5a3c27ac7ca221736786b2c4c18139bef13f9ae28792d5f439e9bba6f710e074d16f589f0e2cad2e319a6054fd91de2cbaa657a7c22a34db8561e7d4919e2263f18fb3d176178d711f7f1ed5e0945b5d36456400b7ae43ea4c379916e549221e43a1746424d1dedb0303fdf074c3209d172167a7af1b0a4ec6305decaba57fdb9aedfece4328ae51c2691f578d7e9d2a1c8f4f0fc4626d37a4a1d507766b82f7688f997b991ee4e27dea8631e36d9bdfb24eb5b326b73b793c82e9a0c7f974eeb34843304f000f02d\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 247f0836500c49f74256360eadfa3c00b7220ea7e306a7fc1f5d0fc5a214d47d5c0a03e72a510847516e7c32a72a899b7a0a840094aa557bf0671c6607cb0793d15586004ef95a90f076c27b4c5d9eed04ea3c4a833e05529311189387df81b2d9a17ef5387ec87d6acfaf8c2d2bce866fe324d6cdd9905eda3d63d1083ef75f29d72b005cb073aaf68fee0c9cf1d8c5b639658c49f65d5cf6f9d0b8c485d641ecb4374449bc823d3bea8c3509eb7884ecc275a3e95c72f3ef5dda3b47438a554878c96048d0278c5c44d8fcae61cf69630645aa595636fed3015fa8617dd22a5d36c37f9605c5a4f386cd194942391ce99177e42afc52350656501e8fd08133\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2874dc4e08a70a652af91e419c2379bd874a74ac75e6488653c99f332825dd111d3cb498a34054ea1cfb5588df892a3c34dd04f29665a0c939526591493d536c6f5ab9e72518f3965c6d595cab132060faa67c031c3c5dc16765ccd2e7fbfe5aed4a019500c7d3c06c31b6605e658e6f88b126d2866d78db75917d168836222f7402097bf2349b5c11ee4b7338e97041b168cd2b0a30e7ded7980b7dfc95e55cac2be1f2371d2c69ea025e59d21292903501caf243b30aa30b13e3c65f8f439d63676e5486e1d9c4827bcbadb73bb40810ff8eb6fe8ff5635cf5038a52fb84112806708746041c52f7d27a6bc7ab5f6ec54ce042ed7e6c258df7fce2d00bf3f6\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7ad94d2bb7b43fc3312c4932adb8ac70870be57207411e39174d5b1a8618e94d3369802c8e24ee87e5f0e340bff584f05a4b622835cc75e0ca7a02caaffaa3a7bfc2e6bbf7be33d55807d01c00ce0b3998a1fefa86814651b97399564a862216c57fddda297bfea87aa609dc878e527ba84ef82784f07b37eb7c16b2abb6ed3e7784def03f1623d553697f24b049cb1edbabdf67347983eea902ab3d2cae2d88cdaa98f35dd179d2a6f2617bac5b9694f889cb9a2ac0891db284fe346b5f845adcfd69b76ae7c69d2ff26fedb982815bcbae92a65a5db9dbec68c6ded7dcebea20acb0ade92ad148a66bb2a568bdfb299726f1392345c7138a5629d52a0aced2\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = b46f1ad5f9c3ee1d131cbf92373916b4c45201c02d631be04444bb6892d25371e6c78ff82286e340d1844c0db3ac2bf32f1cddba51096fb6e515eb466fdcfe47ae84b6d5a080e992f1b3149c23bf875b694e9ab0bab8e3c855825c55f8986e58f8d856a0b153145a1b378482b008af81b30ebd73d20cef495f97e548b5367e25d4ae335233b98c051a4531a65dbb2d18241e702643053113810a1a56b9c7e4c7b8e10fde8aa95c0f1bd5088b39b5c45e3393c2cac01365b78a8b455b436805290f1e43ed94873b5e1aed3e6a38dc7459e82a9de9e0095b67af779b5473fdb12dd95491ea7912b5d7271c88ff6fd5a887efb8fff685900d8dcddc031fad7c15ac\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 10791ebd2e8a04cf4d99da2cc43d296e7d2276787d8c0b1cd2628abc74e54c2b88543dc9f1885f2c232be41d8182867a2011e8f28a2d2ebcfb053a31b94eda6974eabb6e8bcb8c273394978a3771bddc8cd21fefe814d32459848ba06672f46c83bba26ce69101c865989d85e5b04d8ca180e1a67ea816594eb71d6536bc57eee88b9ba17b7c3f7b85f905ee1f1dccdd57b1ee6424da71b7e466181befc1e3763d1a367d99a7f2c59939d30a552110f7395750a591b1237e1bfa1845a685aaff44ea7bee45bfbfdfdee6d2e6277a77793e3ef9c5874b5e13ffa9e1725560d5538211fa7bd658f359f085466cd6720093bfa3faecdd137ea0cd0155bf73741044\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = b2a06b54e578326e41c2c7f7071dd8458b5fe9bbc42be12b068fc10ae51dc9daa35ac85239e11c30c5a714c5951d09dcb99cf7b400f7a81274ab4409262b3c9362e735cc1dbaf3f4e7afe32b73894cd3191936339e5cdd78b56eb84d48c78a714af0e710d60ea72199955c5f8e9ee9acbc1492e3c1bc2187ca9f77cebff25444622c28c900f213e97100a0653cf8f6307729ff8ecdca410f30aa8928533a7c6190dfae16f63df83a0461bd72aea5f4200c9a831ceb5b0333f1e5c42805155abbc387b271fc4df2dcd4e0e597f616cdee14d364d9a6dbaf5d145581171367b1db517b9aeda83dd731d36a83b1444ab412d8f0c871f72d01f941c7c68b32006307\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 086b546296bb96a5254a28190b345df408924354f6ebc521e1fbc82cc113e6f2b9a03c1cecda71988665220c65cd269b40a36d452ff08ea2c5f31914a45c038810c0e47171682e53b93996ee958c091eabc84c95530a8707765c1a5a783b3c022648879bd8caa4392139bd7975a2dccf6445c8a2c2ab084e72e87bde250091677522cbe71f9121b80dfb365962f97e6108c4c8449fed8cb87561c9f6178a0b96fc7bbeb105122ffb75ce2fb234919d86bff858abf1ba37c9a3ec886cd0cd228afa01b83857116eab734c46031dc485e503abc1a9f9bfd126c887c528379205aa1c8910c94c0c3a1e4f1fb4a637184aa5d36c474791d37e01981678cc63ec8ab3\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = a4b495fdd1120556d60b01459a7935c6eba0642474447fc76cf0bd691a1cc0170c409a969e3d69907d39c9a67e27acb13fe875136a1f466ea10b6b1d2d5d1b97916359851156d085e785128b0d5bf1484c3a44c0c18cc0799e5e22e1f87f33ef78b89d7a21064dbe26974dce5451e60c5d885806c8126d539b1bfe668600394efdff7b840f07a2c3ef8d15dd2c0624bb6919f1862ad606399c8b94b9a19a5404c9857e029a4c76dc1c02655c037c004885c2c16fc727954d8811ccd726a1a4d9f14b2f5d11feb2169aefb7c32af559fd62220fc652f1fad3c5dfcd0679adfcac20ca484d9847b4f9413b0664b19151e6cb42a1cd7ca54c1e5d8a8ba024a3ae91\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 7ea7ac9d5851bd2e33a6f39ffa512c37eb07944de484f5e000db07e609ff86eb759573949440cdaf4846ed2787137977ba05a17b06761ca658b931089afeacfef78e4e2607a9043253d0c6e9b5a8ea2b176fd3aa835927d4eca9dd2b470296499b8194908c505459d988d492d1290de9a9125d5b73962aa9c139fd18696fc5695d5d852d8afc03ea536f3f77988afa16b44ef9d679bc27e1da7e0673d5d7365a46a3e87bfac629069f820100a13d22aaa88ec010a0b931c9221cbb329b1bf14103ab6623ff7e198d7287c0b11eafdf3bc0aedac23e37f4d97830a0ee3d47cc19c21f13b55d7928ca3baf0c66520069db293f569ff0722fffc9032d4be928bb24\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 1342c8de4e6534e10fd55b7a7dbd447d55c79c6318bca69d9f2b30b7bbcee67ba796bd4c38199835c9e0ce6afc0c649c1523a2a14ed9d50f512c4b64eddafd9ecc73b96ad03672feb599b879c4cdc4da4b53606405177aace48dec044f32aa18d23ab3277ee0a99bb87879115832e45eff8d6a653542f879a1c6a79e96eab719b7fcdc19669395ca95df933242ef299942965e2b943c8c5754c6f136535ef76f4b679a693554e8e3bc45af26a4f5ee9f6682734ffb5ef822b62a5e448803b97b7563a0893ec098c0501691b7fe6a9f367cd6cfa9cc8494fe6647f7eefa941f56d14470e5315c9081f3d7a2f5e688ef43d14d1ffc0c189045754d1ec4913a462f\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 5bb15e1401b13223187ec4b9069edc1b7c822f300e09b2c49c8b3a76d6520a0361689e2d5535311beb55fcedd905fa834474dac5d4f8ac7f64ed76e864100dc262abf43c47912f6e1233e8d0a327467ee31c580b42e36c81e6dcde10a5acad83ddc4c72e95bc8ff5d6b3ddfcb06e43cb673c00d855da419d97dc72ac9dc5ba84e59c566925649380c98dc03bdfd94b2178aa5088e4f3a87ab9a9cdd3f6e880329b66940a13336b83746ecc122f711eeb816b460927381bf72367bc4c07529802e083c589ee2d53f84163847cc3da94cbe807b1fc12105f9f1d3e7ade0fbfb86b6e68bb1f67d124aa9c93c76fa6fb95438464173fc154db866e35437f6668f8ec\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = ad644f64d1d3da05772de46bf9e93aa88ba29b1caea1805f4c74335ac9cb8113dfa53fa4e254e6932a3bdee5024f3e4522d0d6354a84b11d8a7dc2d1263009a3ce0b1631229c62c3ec537cf819b052feb88f5aa3cd4901488e1ee51db8332a15eeec5797d450afd5f49bd625e425678c95eccdbf91c24d9824f28258d8edfb4d7af2f3b", + "71d4dd9cc14374069e5d28168c985e1a5485ec7720992fa5cd6c1b8e370ce6c583bd4475304bc2a70e8ffeef40a445cbe9f0d506c3d73814075c9156ae44ef62f2e40a319f5e09e9b39c754325ad59bd81e00bca12efea07c6ce5dda532b9b5c0390db56ff096b73547935f00ac056166f19743a24239b6bd4dc5d38e\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 5666334ec38779802e7c1c18e9b7be98daa86bdbb44b12bcbda7348469fd8a38b18ce25fc6a2e12f84274c23d7d7a4cb9f7b75e17afc5d3221c4224a49e6e32e2079a95e36302ffda163c3eada3aceea77bd75bf57e5cf87071d2b5568204ace66aa58e12bb127b11e9e78fa2a79c7ec738483df8d102db54e9d16ca6de170a5b5adeb9340c5dac1c9c846bb173e056fd5f224619eb043f4916ca1667a11be65811da6c0be2ca2722e858b2ae14c79616e2a558416e1b6de240f8f5dafac00d28f94aac8bbb8661f0f648c5dc001e10488afc6b5cd8604b028faabefbb26fb3813a5f2dcb7adcf01d946bbb17adbebec64ded62962e98fc3931f61ffffbb8258\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 3d24d14d20e9adbcac72a678f082bb084fdc4bcd099d8bf85ec7b2cd90ba8d89a056fcfbcfd9e1fd8f4123fd44b8d4074e52ee5ebf3f8b9a016b68743cce84606c09e63ae5106e9e246b54f4e02d0aa3215ba37dbb7e72784215919d24a74d8f057a4d5bcb1df671c898933f32e9cc475401179ea2231c12582ea13a6acca83bce09815ba8f783c80d49d75d610e3584058e67c581cc8c9d268f3b331fc150a436965f5cb4bb9808de727473131aa442c08fa98594441aa3409ef0df3e108a02dfc70f06b9cc89578a0ba0e5cf4bfc65f5778a95bec0d60864c92b8716eeb308077922f7f659b706beb27a0f3b82395c5d4ba8335d67dfca8a186c0563dc37b3\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 202277c26e39060d39753e47c8e93266d73b7af28a7b527c4140258164ccc368de4ed91c5e6dc2a84811da2b9fc76f353bc508740d93f9d81987e3e54d4a42c4389b15a0365dd907f07cd44df04d51fe14d60320cebddd3f68b3eb4b2618b222f6c9afe51646a9992247d74fa5313b5e332802ebe3544ba551af2b89c6860718d97a0d36c9fe132410d6215ee90d28b8ec272fdb332c188eae4ca666090dae19d97784601a4ed1f7390864762693f2e3c68465125340921e6f64319c2aa54d0565b6b34ee935f10e69b77c439ca70b087f8f91d6fc656c8a43f05d9319132a67d26d3dc9db37e78cbb4b92bd6165cf83b94a876b6711aa9e430848b257ad192e\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 38600d6c91ceae4c31e08d7bd27e99f5da851a023eb838266841c2d173eaee4e7f59f1729d11491397bac90137631c14fa8da9f7bbb84e6ee70823b6746dee0eba41e80c25860b62201e1f58bfd4a941f26c8997a1237ad12fb7e3d5f21b65a739f3955a04c76be2352458e3a7b7bb622b135238bb09305e75a068dcc4f5cbbd15690e484176cb07a74333cb401b0975fefe772bb80332025861aff08aae24fe6f58d1f59e02e6af68b0532c7f471ba0e4b5e25ec4b35a38e09dd0202d19512e7e56628377d8fdb45f23694d6846b1d5594c1b8ae858683f3641e4eace65b3996b893b324e8b73ac16f4a9c518ff833848d19aef8d3819835a222112e051436e\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 4416f75cc33c479c6115de4fb437ed353bdfdb231aacd1f4f13b229d7b25f904aa0ead240dca564d9674c6a979ad28244fbf274abc8998461b572901f21e8ab60a6c61ae6d0ea0d5de35a1859a123e8485548aef1833863ca8228aa40ceb202cfee1cb67152a31e4ec8be5d8a24b83846e6f2c05c819d0bc37bffec2933fab9601d072eda2d6f704d80b235ae5b91bb3f4a7173c92e53e144df171e021c4b13889ae0d7d99ae80809c5a6ad173137b21aa545a902f9e5b08e5c09c9bff264c32ea0151eb8a5498a8f582215217c7cfbcaba9ec0f8a3ab1821e0b6cae644d7b487947f33a72d4f050da5f31cd9ee6d18aab50a9abc8a34cc2a6b45e5c23fbd9da\n\n# tcId = 113\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 911dbd150f8ebe9eed71419dc8f6bf2a09590efebacae72f7e6bfd912280b1dfaa2fa7461502368de5f4c609bc992ab8421c86bed775befea591ddfd9701f6bf46b03c2472a2b802e609bc02707d33105d7a00f3f079c4b3b542b06b6d5cbbef6521fa56119a39e1b0e1b3dd86c0050092275dfdaf13fb3a453332888afeda4c376722d45b71e2dc8ad12610dc1a11cea80cb95855dbe120fde8bfc9d1c13b38684db78d62019a9536932c61f441d9d292f5277f00f7e97fc0a37cc4cc8050318475b0ed5ffddbfcdafbc951da39f317d39284c338be3586e352ca1e382b527e21b08f5ed9ae812af902ff0037f9709c5c792f5f0be243aa89b0fe467a04d72a\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 5d2788622abed2c9d557aa4b66cb8cdb7289f3dadbd6dac50317c9a6103447cc0c333ea9f950a9ace342d82e05f4c88d7eea7dfce425160ec95fe95befedfd8d24b274a887073909272482bd9426ff10805a9d54792dce629f48e1c7f7446b1c1d542180df758dcc2668fe9ba94fe9d347c897725142083f44efe8f41c210ec809e5c96e00848c12e16a1bd792360624028185e597a62f4685e53d831063e4bd6cf50b2600870ee835d9d6067a5d81205cc88d02ebafdb014a80a06d517295b238c13bb0ae31f2fa5f68d14c4bca9015aa122f81d82b9aaccb0cbccca3751ddc8f4cf971190b765ae246bbc10bab538cea8123e81b68d417bb04233eb2b66668\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 1779b32fdaf19771df92f2e365fff5f5c2f432af48f660014ef09b9c01913e5902bc0be92938019502178ca736b46fba68a513a884961ad19ebaee84a977ce11ee4f2fd13d72b611be3e30fa9926d1bab6fdda62aa031d79f18a09b9b3a3bb26a8a368ee42846edc1f85f9023c2190d844042a6cc9e5a1b274fcd075d58ad132fad05fd5e2713d0255625ba0e56ec0d64fa66d5e78fb242af25f12d41180cf2d651ab9c812f683262274426b4a539fc36602860e4b7543878c582ebd641ae31dc2e8ff5de9576e24d878350243120ccf800e608d9bbae41d10b8a1a6c3957529b263c6e80d7c8b54c32b15e3ffcfe85fdfc0df5698fe9d6afc677bafc1e55bd0\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 1a2fe05ff3073be36aeb55e736b7489447f42482f91c7539b9d8ffb27f7dd6d58d1e6274861490f30773b6be750acfbec31e5cab7be070630feaaae2ea35b0cca36c67b544d709fa17de1145489236bbc69fcf3637b1c4c50399e34a5866ccfcc7c572143cad581184eb78fb1e84b9af4075da358ecded93288a609b2d5bf9c159a542fae376e438bb947c8139def481eb308f568345e1a902b433a5766c266b89749bfc4dccafd6b53a8b6c5df1af7eceedcaccd9809d94bacfd82c82a0de376971b6454dcf0dd70a2d94364c73f579b78242967b28bb6e4e08bb1efc47281ced3d0b2d771820336bacbba1388bf73edaf9b140c4eafc18cc16856b78599b63\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 551797652916d3e62a0cd534f4a0e6bd1552d7aa38e94ff522e8b4fb39b6dff8e1698ecef6100b4a2e3d7063ef5abd42ccc0e5c49d26e353a903cd06f8ad3297bcd60a8597afb2d7aaf8b70896f1f3bb1d2953fa76ba3059559cac7e5378fd129ba8bfce5851600abe78aecbbcad2516747c7706bba3c835319b1761e237ff593d8165b5a1f58bfe2d437f1b8230f5bbfe61b3c9eb56c60a19f70816dd3c86e28805823106b3f1798feb36b903e6e52340d559721679bb95700d9969367c50997d6786aa10e7614eee58bd98dad66f81c7084068946b391f08fcf3ed67ff4208080d8b093be71d023fd0d66d7e2af5895f5369ff76493f51ba67712ddb085d42\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 6a9a4de61a2a54615656280ec94cef9204224fc0b4d0ffe5a25177030d7ed597cbe199c18b18667d54830872fa0b2ae363ddd44dd07941268d5760b8808ff87c942287a4e719f7034d223d1baa21f6d88b2fa52fde4cb7abbb84e1e07417792206f70c208bb1c1d767b13b9d675c5756455bc27852c76c1ce924d7e981f2af4e770969ab86e5f01aa3820ffecad848c7be52e85ee19769acf17e0b5117a8a14885a85eebfb63d4294e87a24fc710e8e560d998da812c7de3fa0f531f2af7553f153cfc2780db420c7a17312266eeebb7ec04c0fcaca815f092156cc3bb65bb7d7e1db3b5db955851b3b3415f60ceb487bf74696cca2eba09f2ec9636ca59e390\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3ec47c244218719cd70bcad5ba1deef15fed2dcbcf4073ac3f05cc32750842bb74d6ffd506224b8543d562b2584e944cf4ab855da0e4f3336c97cc4636bddc2eacd66b3398ef48f5fa74054035475526733ed14bfcaedf421c3165e3a40a5abc098136e687bd7c7ea7e935f5940868cbde5efe0b51c99d15d4a64c7e4ae65c16dbeee1322f7cb3bacb4bf2c7c8a2f5bb03e264824de55eb3510338494dcb1513557120adc5150afac38bef002bdddda43b5c14891d4aab66ba50c20e229c2c3e1a10d5f194900abd3c217a7f5e82b9e77d0571589a51e9f56384d67b4865a7031f57a250d765cf19018dcbb335b856e2376c15c1a78f5ab9bb8836b820ec2e4e\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 68f20b149aa70ca60748e1c95b10147093aa384a28148b31799839fd0d087121b236503057fcaf6d1f390cb8ac6fa92a18768c6fd04844db995f073e893f08a86a86d003d508262bf01fca7de1e082ffce53308e6ed5b462211013f151c16a375a342b0c1d2fa607a720242558fa82a403b8443360fc0f1b64e4b7bbbe74b10ebaa715087d71fb4539cd1f5b3a72edeb89235c56018a57e04c5ffa5291cd1346cd7cc0feee2b99a3770031aa4319af0a365ba77978c486ac174009a2d3d97d3a113952eea3a8691dcb4b716460365341256b2dd5c846184656135162f38acdbaf70a4c527ee751f384d91d09ca7b618231edb72cc725a942211b00c58d4ea7e0\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invali", + "d\nsig = 33eb8006069a2d3d63afe5a1eff9118fac6e3556d34bf97431db5518176ffa1d35d61c6010c25980c6df9d9cb0be5a9878c4e79503367bed31ae8a4244562a46f49e6ba7fd780c69b33f776d130f19b609116aab8c917c798024fbe5ffabb33b2048a16a6a72bf189f7dc6a94edc66c82931e02907113fc4e254fe6009ae9a716ae2e5f7d60b1eb2bc8107efada0f3b2a325a6574603f30c2a87b5661e007f07298f0ee74d4f4eb85a0d421fbcd0ad1a33bc5589dd72730df896fc3c3fa8f55353c9e88d58cb258404c28b350acbd17a569418e350436a83cca0a2597aaf6592d5169ba927ba1d687ac70cd225f0c652e10c75ee4cfcb3a03b9d4b205f7c7b4e\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = a1c66b956d58196cfbbf706b8c9df9d9ee4d36a7df18017dc132943ef52dece5d48f83ec06ff011a6917434893c6c112a1ca203eab0b64bc027a390921e1ca8f553352847437b26e3be6dc8a0b9febcb93dc4185c687a2fde4302012b6da58163ed67a842118d6eaf85661702729f3aebdb9641b5f913bc687d0d7f5b1291e137673e88ce5280fc04b993d45cb731e88400f8e5cb1a40e25285881a7b877f75feb17d68218aa5ca4ffdb2318d5e01e3fe8606982fc40fce771f034578bc67972c5ad392e7d3c046d28273696f737320038fb33a7417e6744f17a153b4ec8112838fac3c18ed4fd14159a408befa2a0a39ede900a4952bc2bb163ad90ed961f84\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 13b9208bef3ecc8a4d327a3b6da582c2ca2326f84d233cc41e962333612edd7d2973305619186247279bad6d849d7dc7426477dbb35635b0b843e977cd8540b078dae1dd156644c4b24bb75fa8a8d247f95842483d9ad0274d5d9f7aa29002f93313bbc277b01f1cd0cdbcc9462f8b984ccad2c05e95b50e1dadf8e6c9c26574151e720abb9747e899812bcbc6e43b40a233804a91a6f50420b309d4291e2c2e1250094625d59079fd264fc1930f72fffae6fb2e3378bdf30543985690e61dc4f1262c762881061e59024b2069f53391ca16b215371e6cfaeaff1815fdc6bc1a8b7b53be114e157b6edd2930e0a7bfdb242c8f7a83013ecbb6c583f0a041723a\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4eee2b16048f104753e25236a051720c2d73ef183d70c084e792ad6ed52b0a2535a99c0adee80c59577f2d25d257f790830221711fde591ef71beccd654431a2de33887cb2e2dd4aaf3958806740691448351e5fa44fe869af58bbf15d2f489994c5c3d6b8916c5725b4457a2c7e4764a9043d9455325de8118f9dd60f7988abb3e52c48b40b94d2752f79e203bb75178fad51a0220563d98e798825fdae83f698b8504634c380081179b64042a44f146712203843c7291bce264b64fb3b8ec44854e046c8c4cf5ed786701e2be6bfe8d015826ccc430e79b63e718c8c0ba6ec1cbcdbaa014d5bcb51fe9d74e01890dcf827780a337f495537385311262e9a71\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 459cdcf7a5a6ceb515027f05f54d2457c862d780cb64e502da7a2c4b9eaee3f19391494771811b1d1c60b7aa3343474d16648b85cf30af69203b6ec09f9dbec5942559c8fecfcb08624438415772dc439c62ab785ed2b246644b8f5050a3629a1280de7e5cab55a0b1c22d79cd1a851bff929d393ef521a3bad2f76a8d12435c6c5b83a0bd977d4fcfe3afac7f359cc2e45472adb0fee40aaabc6ffd060963453d96f3f34afd24e95c17cbd222865eec529518746c2815ce6126ec6bd3730e43dc701a26e0c903c51fb5166db09aeb812288ab932cd1ddf42ec17ca2364561267ea4b136198564d768e4da6b19d51f3ca3936451c25e6da102f8c4f10c6ed283\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 308be7470d0c265794934b0f211ce54f7d67936b6a1760154d585a1ec6b05da313d942847fd3a1133acb8fb9c5eac471e342755268bfb7f2c762b7d25c4b53855e9bffde4f68460683d2dde2723b0aa5e9705c4cb25bad26bdcea726c9315c2c9341515daa6e12e714c6011eb152a050c903d024ae8e06742c3c8c86612d207f5288093830a83761ee40729ebb2c5dbb0e6e98b785040b1cb3bae9d1463f43e39d752b212aaee52753fdccd6de71eecb17dfe486b296d6c455a17e5718fffaad9e82f999723c8a66d0fd2457c3cf3f1b3df127bd73662651fefdce95f91f1a6ebd370fb2163bca19c9759e7f5901bf177464ffecb8dcd911a4d5ed5d5e7402fb\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = 13e9948a6ff7595299ccf4fee8f9bc52ca20d8899844c1fcfffebb64052063bef5d4c03460495a475144a252fbf30f00cf58723dc1d4ea48f6d961bdd20d0fb20ded4c90fa9b0384c0de08a2fd4b7f94c6f66a8f3123fffb296cc430ac962001d0bc7d211a80dda72be7e73b84c8b40dcbb8e84722f19ec21aae93924bd2f5dae584d0082ae6c4c52994a7431ad2ab3c80710b089cb79a884d8b40f7452a1874c9fd2f22cf46fbdaeaf5894efd3b0d96bef147b9d600cd0400412b2b8a5fd939e14516e9c2574e02c6f7e4e8f2a5cb0194a34d64a4c5160c55ff1750c5912107805d2c5767a260be1223bdfdb509f59782570c7ec093d7f19f5cbbaa64cf88ff\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 608ee7dbc573b80a6fe241bfe38854451a25de5ec32bc17b067f9cc9679382c8ebaa5607bd4b9f540046129ff555cc203728551001fd45487edde84a80f6c4b035051553b683881c17ed34bbd1e071f28e73cafb9e679489e5c73b02be7698c733d5a6316735c57a4c38a820987d934c463556183ad25f0d2a69e882acd7ac32cc3fc229e0ff80a1c5002095c417a559f84278dd75098b75370e89ae1c6ba708c453322f9be79e74530b062a098956dc6727a515a5e06c3d528f1a8f46318c561ad68060aa459dbaad3b8d8502fcf8109400dc3f1ab6e2bcd0e03c11d6c659f28953d70a9403c12ab154b054d860e534ac5c322f38685239cd20b367ea6b5c77\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 423e0dd97d9ce8afc746250cdc9d4cae42ec240e53f08a32bdf9028bc5be2d6848ce48e13655f009e719d19a150923c145891fd2ceb63d2ba5540b658c18514f660831cd9fac648a487cf74075116ef2daf99e8c65c5b3acaeac974769dcf693b535377d69e55162b3c77c8bd92e21d874174e44f6e129d217c0aed09894f4cd75c7d370516cff3a588d4c89da64e60ee89abb4cf28ece616335ed3efe4c9d6f1fe5ade4dc1bab24410f48a9eac864699f4d3dd80bdb34c600cb53a4505613245df1e0edddc9a09a4d7dd540c661a5cde0a32ae22ae5dd63bbffd6fdb91f4bda8443cb8f8dc5ddc40d62859e5cf5911c2f843dd62b82f0c1f39e0bf3e8edf094\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 16526d1cb139aedad31a0e397aa3fab0232b3d6432dc7fe1bf223246ea35ca6576c224afdabc95571a57108bcad87faf73136bc694f16f44bac788982382d6c46ab751683a13575f917acfc9830585c9961a61de138bab17171b6c8466fc35065e08a9bc6dcef84e46c37507306d60d855e661db7c41dbe59f3737547063796c618b5c9983726dad445edd1a89a5960758b99058e3fd0159b739649e40e9bf57f39e66f7bf23ef72252079d1527e9099b0f2be56b36c350468202562e33489d1531bc5188640c2d3f4f2745cdd190dd96e3e9e0a578da8132cfaa12ac736c4b5f9a4d6398195a88626f5c38b16016c9e97c2246175f8a1ae5660629e109cf60c\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = c1cd6bdf82c00f4d1ac1bd38ee4ff5929c7651095587293d97f4afe324dfad1c3aa111abafd30cbd4d9d61b68430e9a88e016a85866ae40ac542c2803e0b0959d3a3f1e66b8e79dfc73f69ddfac4c86892c2da5fa2c991ff20cb2630cdd0a8a38d1c4dd3fa623c219ef50430798faad662bc15caed462513ccee3a1aa358d6e55790357fb34221a32796e0c6988dfe18320b3dea14f3423aefe12bc4bf1f78fbcc70a1cc15e8653d6a591bbd662859d81df47bca498e5649c07cebf9cb26d4bffc1ed0aea7059767a6b47dcad293dcd24855afecfdce49e8bc885511e61e754fbb8a6278582bdeca1c04fac5465f15a14d28cae2241a0be7cd662ea87680525d\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 7be6a7fbe11828cbdde67e5e0f2580b09adfe1b81a564875bb522eb59ffef9c3541208e520b4e73b597a30a526dd954272cf936033cf88891b551d1eb9bfa033a1cdcfd0ab8f51cb8503995d18a0acfb644d5ac892f828166ff25b48dc4ebef7acb8aaac10baa402c8db37698f048cf407df57bf27383db2663ae3e208b320f9634af208c23cc23aed64b7a6f3078f4b873113e75457e3f6baf23d3f49ac6cd64a11c90469a6b6fc9837634c72763f0cf35505b88fae96e149a0b87a0c71820c5696fc7a6100138f07e65c40b2384dacb0c8557837d0a5082773a09fb0ea369e7c296cd75a5e8a4dda61de1f923d31e4d8e48783c39d5eced7c7e82a6e36a1e0\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 70a231ac8da499eca0f1f4abf682accffd04f7a611dd850cf5241f13759592877b8d43682a1f84fd01c86247f5fd9fcec98cda26d9845026f15923a16fc6ae438e718159ffe1180df97fd66babacc4b97b156ec6ec500030b0fcb62c52a208cf1ab803a2d8c52be242075cf4f6c84abae285ce2259acd437e7764da25588bc6dd254456158e2ccb9c5f0e89bd899d97621e9c2a6049a60c978428fdbfd7869e3b12aede869d7daf7e3fcff841ad88b6c2be36b7765e3fc24d996e83c592c32fd1c45bfad63acf0bedefd30529dc6f57877ca0c72424474dc7eed3d4f502a45299f14d64f79f3394e00d160c4dc0a05f57664d2cef729b93d37654df8f1cc010c\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 2dbcfbd059d95582e3c0bc4b91163fedf41dc471aa1fdaee288eb6aea12cfdc6445ad75dc1906397516180884219116bb4415cbc1a45d08ec53b06f3c823cab4f633ad62d3035a66155a706f36f5899c9ec33ce22cc18028311c121000ccb23f34c4a071a8d296466452453787e7a955c5f83dcb3e0c8adcd58806e4d0fc5c90a18f6b570d007c7b5f6200cc96ee8b78c457fb3be09146ebbf7812a747d7d2aaee76085f6f6a14aa7aa7757b17e1eaac0885b0cb4532f46a4b0d5278966db8", + "4f5d7513cee0e269d32254e9c041bdf77bc4c2a08020f015f19fc4ecc74ddeb0e58c2693e42c554a7aa9c83a97e8851aa408a39725f123b10f47c4a30cddce2fe9\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 2675d35e89ae0383be3c9c622c1dff2963444bb319ab7ac8dbda22abb32296c6a5d09419e054a2c8740f79728ed0b1fad7d6213bb7fda21ca739996d97a3d5a21205f13692c4985e360a8297a011432e09c7c4b39816158337319b1704f503b96f3b9b3e270f41a840deda4c869036e456849b8185e03c2d88b6795a397559af36f479d6a5f95b93cf3a87a21307e8bd08b3bab11d0a3fc8342589b0c55093d366af08a3cbc6c0b7d324f09c21670dc50cf1ec1222e41fb114ab4312ec2cd74662a96bd79fba6d6cc9c677f19dca6fdd22d8ea7009fb330844496138f0d119211d9c4dd54f416c6ea0db267ad5077fa1b5aa4fbac15f7f4584922494365b2df9\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3008e12d14734a49882eacf2cf0b9dd3b4c9d3f40ce7e2fa02ec0577e473171b2a54bdcb8b2ce3569bf95034cd27487d8d90f0ec428876dbcc1bc858a97f521a61149bb8009d5a4eddf55c67e268a53fbd381e0b918455ce7b71a0a8663bc16d8fe2812a3951389db9a114339b16a13d54c88fed79a8c83042e3a436bb4488ad1ab501cb878dddf09a2b5a76a5d065b6f2353bd264c12692aa1dcc463afabf760e55f499110352f527fa98c30feea6d5b0591f4c6639716c0134855df6ada769fbbdba68354d364c2c19bad500c00dd53d5950d0344df58f5dae54ac532b5cdbc78cd5b25243378a903b7b5c9c2f03a7aa9e7b3cf5df2a5a0040d0ad993a0e9e\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = c098a958a53b531cf766bcd77119b565fd9e943eceda96bbd5e9a3178bd8b01f71169660ccdaa440d0523c03a455af18b27ec331756281618f9e23c29b088d2d2ffe0854d665279d3cf305d7b1bb5e5d50341460c483831f1712801496371d1b406a14b6317d495a4042c326e21d578bcbad406589a2bdc3fc0b4fd02dcc41c3379513b370b7c3ddf84614ecc4c3bd9e623153447f1b0dfad67f783f30a2e8c0dded1b085530412cb33b785de9b919f7d7971463bc89dd390aa46970df198d2a25d718c8af793cbb28dc0468190e04f0958145a76ab170400fc2ea35f05b20d2f96fe0f4c68031516fad5d850daa1d2dd2ac89a0eababc037619884e87379904\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = 64a7a262c21daacd9a5650b5d86e0bdc07ed09fc4a89e4d3fb260cf5f6e2e4ad529982a0e677b37d8d945c0c98a802f10770f6148ec47bda1b59f63229bc81424e3c53ebda28adbeff58b0c59c9f96721c187be69a6c38ae4bbe664c185c297c150ca49a51812720429438e293a646895e4d30bd152097fae13f05a3b63fae91ea15fb556cece63dd9616e9550af7c2f9e9732ac288fd42258c34a48cd22ae389b9f38a9e16528c7d8deca2b11b609af2259393fb28b353f082ee9346a5aa55111c3362cc245bc671704746955f496f58b574fc193be8581a5aa0a7ee333b6d9f049011b306afe9f99d2ad01545f278aa0fe20502077529849c0eac95ad99fb3\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = b5ee078736ce4de46ba4afed67454a5d3133044607ce2a5efc69a20cda031e4418b15de0765c6bdfec1e27577624a8d188d3c6a2942a6e9c77afc4d851ef1c489fd400f19b1da93bccd00c43753638944436b0598efe8aea545bd11391062599e4733ec4fd99cb59b16a57b07d7c63e245b9eaee1aa637195a04c51d8b40b33d00a08419365a69b2611e60430352c4f81eb423670b76c556bf3fafa602a4cf97caa580f646bfe6d795d35c547509705fef5c5198b878c467eddb9552051d9c9eb0e86a28d2e5896adc3048a97c0681048c5654081160b0ce2118570a76c648344dc1948a644b7fb745ee47df6344b22c8969d08442885e101efd5e66a9de17a6\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 7ee548d37ad707c16067c91cd1b3f2d9c212d13c5b228c04b904446aa5d5ec13718c8fb36a698a644437dc0ddf1fa2519deec3316b3703edf450df964242b467b01f4162f555de37b10748dbb26f1424ad671b7aec5821b5a9e14a1c7e321924157beefed43d2effd1128416e93f9a4c676e7c564169ce161cccb4a6bfd000d40ca317beb66905fe2a5d0ceb9b65918070c18cb338dfd2718ffedb160d2dd3f321c025ac8bd8b31fb87408ee0c1100b7ae72c731cf3625601e13d23e6ecac8bd5bd475a37b32fd4e8548a268d7d0df133a4e2c417d124572f6b9e741c4df1dc2c2cd6f660663495d93e1c506310af8dd3cee5c0116702c5d2484ad281c78e7ef\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 00369a147162e880067ff3543d2c4b2572ea1e79629851141e1e1ea5a023bebf1032177cbf07df027b655d617b752075f12276bb40ce958c43c5ff61ad88d6f057b1f38b0a5692b4c8711d886e4608ca76a7e4e30492c37a2590ce8b23a9c78fda60d8254fb4d5dc3356a0c6385fb045e78467c6caa333af9c683504a1c5c40ac7affc005bfa3cf75c4cf9f6dc281e701d18554ec757cd62b5afc3a260ccf19d9047f09044c63bac9d3e90164208b3d69d1862c555fe8bbc916b3410584131ea5f575bb9ce15f17dbeb243764f62288d3f92fb3213d94218c84bef34c97ae2eed3a454a4fec5a69852ab12beee94acf0979a1549d2e975bf176f7bb07494f4a1\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 1e31c9be7dd863bcf2c486c18f350c7caf4a46fd87fec097c492aa0630760a3f8c9aa729cf2d16d1f234090f194f03009bfaf5294006a840f9e6ffb33f3c7c8bd5397dfd1ebdc8d0b755a0699c8cca65fe6127bc0176cb64f658d9ef653c245da12b83669625a585a0afca004bc8450c4e8be8cadc0f7cff7b7a793a4eea7d9334778b6326d404cfe6437dcad120e2a801cb408032e0b617f95cd7af90df1641285b082547c6a55c77b8006c6f575c555ba9445246fd5d9b1fe351deb9be539ee221bfe8a0e1813186f19e420766251cf73028cb70bab2965ccfd67c9a9d8b137045230bd976b666df73489f2af2b5bd1d5e39b1f063a8a93f39ffce0fe69113\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = b6ca1d31f2ebf35e1410304bfb2841bb600d24f234f163cbf2dc907088f43cacdbeabd0ceb585432286947e02edb6b5d04af456b214023c79d22ab7056e674bf6f124653e1adf12be8805158bcbb4aeeaaeac13ca909d89121e278931ab590d7279e1c720809db409bc484b6bd388f759e9581dca851a97767fe4b017534c1986d8066386c8cd49dca14ad0f00a01db076c79414261a97a353f824a7e07a8eea966bfd87b58dfb93ceecc02d159659b9fc035a29391292571ce4defe1e54f4cb37257401b54f560a4601a5fe39c6898a193547eea558bc6e4cc1d675d46b86b38fdf2f629df7d40bf36eb7e4a46e025c298fc582252b2c17ed7300e0ff4b1673\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 6522df9e982d2032265bf683bd586618b9b392d81fde606d9b5f629c170279967455c46e4024b0afe305f245a62cd0460871a6d470bdfbcf0f5296e59ceda6a5444606d7c38491d1ae76ef0f2c26398bbb1850138c8830d1e2baebcb8ae05b81302f490ab08252f2dcb13466437f2b196b4570ea78f34bcf9cb464e5f43dc2e28c3819ef744e5a541254be84f9fda3bf688c7b2181fc5943be1e484f01ce80ec01474e09f55fe6ba54fe92b57613fef41d5d67d4e740229842449e5314125328b6bda2eb3baafb623951ea12b1c4827b2d395b5c470ae83da4af41840dbcf2d0b3eca0403995d0f5644f0f6d9ce5e18338fd097bd0793d60d749dcc431ee429b\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 258f8575c6a1fb31f6979bcbef23df0d12da874a5f12c6d59225dc388582571f30e0585abe7970b0c57b7c4bbf5e41141f9a484a8c01eafcb1b87d612fce7be6a45d7c126e186fcdd108e9b2a55a6f00684c561d486644eaa9653b0f580f05a9876b9d7e7727d82a3e89f9b5bc790939d5546f1404bc34756caca7ca873a9f64fb8ea553dc6c31a61e302bbaa731982b6faf0f44e5fcc1a7aa81a302597901d772bc3b012b2e10eaa3c6f1668d7dc67ac2d0035155c3e32e4db79af54db3ff78683facb523054dc8274f01c0e52f658f62c62a42ee7c05b9426b5a0255689c579aa10875eea16cb14a529bc0e37a17314c37ee81eb99c11f2497e270a9e187fb\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 0e5a02eefe35f7cc3b99aaafe148aa6e904a832f61debe61ab99961df933ba6bfae5010db70671fadf05d7596fbc3a42ba443aca4c046e9dcd46680b16eadb024e822b1c973bffa4a6147c6907e7e5cb5108ed9b710f3a27ad57cd2c69f8c246786d0255159207ea83ec93bd84cdfec3b9d7ad6bbdf3fd35ce4c59f040df0b9f549c03c37e8c9a4a77fa63dc8f0fecae5a4482e766e3e8e7b4509ed700ff3248ed7e2db11c04c8423cbbe86008a194dfd6703c4e172b4eadaf7d179b266e33378809ed389d9cb879d22d9b881442051cbaa5bbb264a3746a15889649af13d3fda9f59ba28aa569bf2a8e79b69881a6abe310d49967edc12207a98431a9c14ab3\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 7d3451b9055c5922fb6956a1296b243f2ab1c3b689fb1619ed07a812414bafe3e41c2b71ccf90ec30a7b7c6cd6499611c3517e0d91cfd832cdeaaf016056fac2b3f458046fb8af03d521d07fc8649ba62331e6ad894d760c78b95c7369c84f68bb573660de2a08500faa131261a81f123de87abc839a8a6720b0ef0edd98113592818e0f027a0e0e5f1d9b6d924949073d5d061296504f4480029cb2422e6505aa119a5006b6b37e68ce866b758366e4ee8b00231f61030e5d221fe26f5ef30084e04c62a7a965cc1903ed0945dffd830607ad579446bb3292d9a84a1c0172486b4554677b64e21bb9a00bb33df7664dedf10b06d7f691ed5b0e9683ec6fe899\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 4a3c11a32aec24532f92b8a4cfa5390ccf67caca60d6d1a5512225b80aa811bc4fba8f323c5d71dc1941a2fe02e97bcee6c7a936ac1f95e7817378eb78a257a25dc9ec3a446503a046fa008df571c53301e8bfca9dd4bb9ccad909a1f1899e4e012246824859306011c9a48d678ebef2398712df229988826cbe91a4580", + "77f6e4f7b9af84d2ae5901d73e7ca778f8e9635b37f57386f146202be3e95f42909840a4348757085c8de8431e4e1c91aa667466d899b1e41e691745d73d1e2fb9968ab197ef1aa97b70dc49c25bcf62bc0746bbd5a97921fe851d96dee01753fdf6272cdd86ae5b7c4b3f9817994f898e2ef39738b52e62e788bc878fb446f1f0f80\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 1753bd81f2bccdd8ee330df96e0c03345951b813c551e72dc7d101f16245723df7105b3e815f0e23fd08254158f60a9bff84c8cf5be766d7c150639ed017264d30e568f182c74a7e0d6f6c7d32ebc41d4cff8c09265fe60e8d52f204e6128a57e54a18fb90a587897ed16c50c0b901072f175ebfb20ba3670a5422908043f4e416b5622e02fdcf8d1e632d769d2d1764a537803088921175cc1a7337df11eb006d946576cd08934caab187d71c2184f0502e3827db97976f7485bc34760bee949346d3b3de8ff48642a4ee0ae7f9dd97084ea6f70118e0dc3148a428cdb662b03941f6a505da8a77e00be2013ce2762703c72105885ef2507f9146df1ae15341\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 1ef6f0daf2eada9eb09ae8b7aadf70dd9c511eb427d5edf04c62b6584f851e47228f0e7ed71cb7a0a1729b62885380f132f63d54782b4c5981593bb4a270b43b2a93e7cb727e11acb1eb649d8f77d9615751d1de6f9b596071b61c19cea2d3941bbe66ec7bfb2718a16110f90f9b852d0d69ddc67923a9861e51fcd22d9faa859b94feaea5b3339817c9e6c7a6d8b4a907787279e0f82174947db7d110690e0bec1ebd7d4d36dd0c8c67dbd54e95e78d150ef635e7c7b6ebdb443aba2eaed29c1b6cce426dbd86dcca2ad0c217fd4d22b2806176f45bf7873839d4051bb15cf0a3bd29d4e80ab39b3b92a1b2e058cbf3d3bed89a8c688f37812497d37aefbd23\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = 3ca8aca6df10b57108c39833e880401c593d24594f3f0b176df9bc948171b84b3d1b80fe11770cc3340cd9d77cf61836f5f3e4ff05b4da313e41fc2dae072adb596d43da649280a85933c7f4044954222f06ef58979e2ad172b8bf4a77729dfa7780adc59a52a255e664a85b1f0412246b0e85721275524197c77e03f7beac12b9a43f3ff633d4458baedc4e6f37ed566ce67cfb4fe392411e086746122e8680e3be330c9ccb2acff91ed8eabec3fc84008d8d3e9a3f8a379f1e5d1923a39ce3ecd69231dda661bad8779ab04dd93872bc3a706408fb5e23a4d375af4637da1dd0437ed9398367e3418972f711021db80ca9eef88823c35ec31cdc1509f8d222\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 0230849ceb04f40b8a6e42546816fbf497fdef532670ca9828fa9f12b127d7a97c5c2c56f95048c11b0c4c0ffdb1bc5af25dabbb09379b707c7b9902f0a730013437e8c5b20690c58a131f77a57320a8258b3df073c63ba75576a552f65f3834bdb7dcc802b4a92dcc81b1e6091cf0f1403fd376cd53ddf62737af6ea847978cd8edf36650ac25cd741c02cc0d1bd503af90ce0b8da6708e8e83ba5cefb28a033b04602999d38acbf03ba0ce675e3ea4833e67ddbed6eea332b6bad6e92973a359e2228cd3020ab4fbfe9056d18470e15a52de034f7b441cbaa5484a6a5882d706ca49a4621a9c159cad90d2b3adabd71df4bc9c63ebc631ad5cf6e5e2e1729a\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 61bdae14771e75b523505ed9d9f4f276f72769b723ef6de8f0be6bd482b89a55af6cbb6448474c58ab53f25e0680d8a37a0cd6e6d7c1cf87e6d94e88e405c9044aeeda7380504ace1fe5fd1b8241e74708d513f3396fbfdde9a81a814e82413aae10920610a7e4ed2b00d51b54886a811b63b18e6ffff58549111d7fb5dd0331831ed3be62dd4ae704e140014dc83b57298323af840b53fad3ade4d19086243b433fa39375d32536f42747700914c688bd74244d8393fcbaa6a321abbdefc711485dc17bcdf73fa259fcfac4a5a37111145cd2934ca80cd786117073ac7d42b2b8d9761c6130aab683bf5549f79f95a342717679e67700221ab4b021e5855644\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 6598c1239a83d0c0723b68fe38250516ab689a11a2f61c027f8c0d23877cfac192b03d3beb50c4d6525195383f01ab4a696885bf0f7221f2a4481654019db4a8c463033a8ce16a7e05fd9c93f931e1430be94d8e9d05a62d2d0c3aaf6c4d559b1811b82aa9d37f82d194b86e593c94bac6450ccebb8a6929217b534c00e3e287cd30eafdba3279c97a614153e187be4c2da60167da375c736bfa51239f34690071e0f1f8a73b631553799d1174f36e0c7b7785cc768812f597a69ae74b8f6973084bb272b5fbb6ca56a21a7e0370f08489dc306b0854fc9f9e5aab570d4100d90404f4d9b5c7781fc791759fda49815782b38ec9f58adcd18cb70b2a651a18eb\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 0ac9696f7b0b311a6814d3e5d63c48a445d03c89df77884af972961f49812506ec8456747ec53e288937286f14c2e41a8f74fa421f4e14996de675d9751200f42604dec63a68c45430a575da116d77bbd38d60577206c743208fcd843578b575908e569514cf93f597075ab0afae8a09200a1743bfe3610736b70b259becdc38b67bf73721814c0134da8e484ff272cb9326bbf2bb769740132f0b2e44812fb54fbfc5ab96123c0d13eb62bbe115cdfe33222591e0286a09a963e20bb0afc0cd7bd2de7aa36251ba7cac6997a52186cf28dbf31ae3f571f9c86bf26a05412cf1e1a4114db0d5c8ea4e6b07ee215e3189afbc0b430d9fd8a5d2d138ffc0ecd984\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = b29d1a63166fc63e249b9375636e95d9c054dddadd20e0ae1a3da348feefcca44a27bb23164136a8ca5964afaca45fd0543657801b1ba129c7afb554172abd19ee9edd058018e4dae4968372dea904afc553414f45bfbc26a92172437a699d3040389f0f507ffc9399f5c36956a11aab1e97aba595fb424abcca14ce28928bbac4c4e275fbc96854189509eadde522457e12b22c4fea0aa6a5cc751c87ba30ba3270bb0b6aa1ab580b663e46090104d55c5e9bafbe5d347ec7116676d1fc9100a2eb7c0710f5225885a1796965c923dcb7be7c25ca95458dcf3e48f42373fc3fc55353a029f9dc40050288ee419054203e840ea14fae81fd81ec55797993f076\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = ba75b94a31f9d4cd88ef2cd76ffd0778bee027436f66e9daae2859c331fc57f0ebf6d8843e5897dcd8c94cc775a1546b84ab6e1847584f418539356e50e59863ab15e56a7ccc96bd96400e0b6a6453bebb6d7f9db6e23c59048cee4cb6ca099cb4a67d0df948822195379d01c7b5e3349c4affc78c402a02572ae152904ccb1997b96f030f68362de99a381c6079e4e3b6b0707d17227e3e2b4baa1ee2b35c434295deed6f30501e5a068400684416e5bb0966b4ab74c1bd139cf8b7fe09c2572639c5b87794a89cabf9cc47f35ddc6ed5a86933c564eee6e6fb4590ea20fa012133ea6178780a2f009af14b9e5fd6c298f986f61430b279e933d6d234d3f41a\n\n# tcId = 158\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 61a425423adecb5f5f407ab11b80b32f8ad08ac6a1a16cde833f2d8ddbe6bb311ac30fc71935337a54af6d1509ef70a01b7fac6db659c8de7c5839a700e98e0f6ff4a2fa9b60fe3ae1b09dab7e8f56ea96e326d2116bbf65016b7ed600339bc43c4cdbd05dcd20d8d46dd324833f2c3b39c85aa7cad40313c8523a5926e6bd7dd2335136f518c44e745a178e92b71199fd6c7395462bd9328313d7ab45b3fc45a91ebe4f000b3c84394713a52ad986496bb2714232d6edb11c8cc43257553526b908838ac81f2b566bf5bb193d7ce7b77109c9bc71f70b04e52d0e6d106dc148b61b6c758b79c7259099b09615d43532c8845cc136e1ffdadcce785bd406b785\n\n# tcId = 159\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = 334c93438cf92f60e2f92cdbfb57dfdbcf2a7e1369c0dbca628b9f8ebad0f679a82a43809d61602784fbde2af8b8a203eeddb543f32f7891d1a1293465da2ecf88b3cb6c4025b3661101e2c621d06835f63b7d007aeeebf0265c6221c296278bf32039707613950702b49208b734d9835f283ca349630595ce39a283baadb9cbc7e950b258a527c72bc62508a3be68988f0749051b6bf7f3d303a5350f6bb28edd4359afd34ef1bec01af29b199c36f0c3cbbe1dbedaea37a8324082dc084b7c532c0912fb681b371680829e504d4fbf03001a2e674762edad44f99f15f69378c373a430a8fc23177536e2b6ac38cb962276e885375d7b3351c8c98453b9c222\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 25f9f878dff4b8a2632f808cca5cf03836b85446b99a0377c3f462eb512d7e338f4fe3645b2b075a5616c24f46917617bcade97f8863a59cebe7554316bb6b7eb46f2bee9c4a986c1e58d1189ad3075e5c1fe30d6f760b0037ad5c71148095155db297b11026a0064c11545469acc7b607dac606e8d1b9d83c059b0982065f30619b72c64af721b424328df3e18da905e2dd61a5f60c5876c9ce617b05be80827c2d27c21d2a55c751ecae400e4a45b52dfba39ab6986a1475f87f217b30837bcf10f4c564615b9e9e77fbfb45be9788eff010ea6dde7bde2668c6b5f0dea060b85588be2e00d26fc807d2c8c83f965f58d3ad3a8ac55a069853834d992edf79\n\n# tcId = 161\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 2ef2f37b36dd7d580ee5bd4e5fda40edb669ac2c994a0d3bc593fed96d30f08214c83fb5df338f34816c004b1fd1a977e3802bb6834ebd1e4238e9038e467a63dd4ca53bafb8bce7f1ac85107516ac4b0c350d2871efaff0cfcf6e8102e8ca8217ab414ca4059a4eab19bf2080cea23f305da8df8b0435120b98c7c1c68136ed477b6c9506b570fe7cdb7f49657e426fd0b0bd9908a1b05fb87aec53fa2a2cda540e99593a91c5f3205271d6b4b4f1eca1d5653535d21c2795422f757ea1a483c0aa9749f74dd78d5fe0cc9fe04e5adb35ddcaad79f9ef49de4b818b2c1705dfa295384bf17585968d19d8f8d96f5a367a2f493f4a72b6c93c33b90535d968cf\n\n# tcId = 162\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = 5ceb75f65f2b9f4b326ad50291182de132776b4a4e0fc6f583377940727dfc33cddeca6b045d12486a3bfaff336f9b0746b3e9adc1a03651c4632e343f9988bf9db8098afb6e17a1e000e925f6fdaf6b5bd96d7cc1c7ca", + "491105794b0ac064dbf9d78eb9627b3c2cf8fb5f1847d1fcb98ebe759d18f9d11f4b014240b3b1d88aeacd2c2ed6d23ffcd1927a0bb6dfc144d791dd447c2801c4f01b6f4e5b0124cb76732dcff0c582a8158896ec059dd041a06962102fe6bbaee1f1288910a7adbe8c3a2dcdb48a7c255b70fab8d015decef2a3990a0be9b94ecd2a1056b28fe3f96ac29f14ca26bc5de7a5b251e332d17aa00b1ac5f8eb3bc30bbe85d46b37ee3e\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 2e029166647b30902b520354746d37fac3c2a5f9d20e693305220609c3ae8ea0c2e52caa1fceec761b17ffc6c8bd28f41bff155fe3c7256e3315a66b93da4c97240f67b1687b259c0e227806c2466dc720a57aae407cefc34dde814260ba824433d1c65025b57dd866e2fe5abacada1a4bd0e0c71835cf798910cfdc1997eed34dae12b3812b1e7c97aa07432d4fd728b8935ff8ca523ad209531ecd8aabb2ae741f8c27bfeecca7aacf940356c025412d9cf969ce1dbc75af6796b9b2b1b5a20a8b9e363c310ba1707adcd4172c5973a9c758af292300b9458a8c0278a7e95053a3b9c2ab8dc206f6c8b68a47c24b2b9b09184df993c931655d1d9c232bb81f\n\n# tcId = 164\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = aa0665f8b14da337f7212640e270e75a75436ada44375e45e6e976b1549bcb6d5a1d4042f160d5b4a3e7ae6cc8c5485450f94cda3c8c52fc071b4b5db3289cd68a4c48045375b7896cb6e8456c33b5bc4238f92ee242628baba30bce1a8856bcaeab25076414d4468d72d26914b9216bd23ccb77e1e5863481acd26bd2d1706c5f9c65ee84c536bf674eaa9d480d631de47bb6c422232e544f977af1eba39741561b2932f286a22681fad7faf5bff4d3f2d9fb22e9fafda6a677ab7eaa005dda5a67228dbda74b043f80d2fccfb0955124db86112cbffeb1db382218151f4baa2837c0f1692ef9a08529f09792ed0b2324157dd39daf63fe972748810c97ce0e\n\n# tcId = 165\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = 81752aca9fd0847f603186aad9e57149bc9971f24d1e11b7d12361f989c9ae6e221ff02ad4f907c8cc31b55278ff51d900de8b1635ef5b7bee09b41ce099709e63078d7c0ef58a2dc5c2b5aeb7fe27a283087b9e148c97b29cfdb3a4ff4debd22e60989cecca3fb85c6b5da660bf7d00b4d88d65c0c74ff879edc8ae2848d1e2055856832d05b3f4effdb1c057bd1788e67dfff3d96cd1a4a8b04fe3c82c4fdfef4f91b352b6afc47d5f843b898908c361511ac3980ad1b83994b69400b7702c1bace5e344dd0c5eba651466c2a76c5a8bbefca2fd2bc258dbf424a5465f33bf0a410c606fa3de882cfa5c8038495e3f1ed5e919e18cb107505771a346bef3f9\n\n# tcId = 166\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = b06f06dd6e71e4cfd3191fff49312e1e89c9ff09b502f8d81c6710bc25480e34519b70f1282f56c70ff540b507f729702dd6b25a33a3b96848ca94974ffabbe7ef753ed5a6b08459a1229e163777313f7208e7d4bc30eb8221e832efee50fe22ee7f915e6000aa8d38a96bdd1bc87e432fa10da0a1cb70116c62d894d05130aa2994796a4b514531b749405f56aa84874da4c25b4743814e0de174401d28d822f0485b267fd77511eb936011bce790fe8742677622c97f6ee8f749c57b254291deb8cdc759bafd8b8e0e95eb26d2e25097beb24e7b752090549a5f12c276ca182f911b095afcd87942504a026bb2ba3511bf4d32ac7fbaa8e44dafa39a47cb03\n\n# tcId = 167\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 27e34f147a216612af33b2d780da400926ebabd939b41b6d6acf64765087231c6ee9c32398921641dc586048fb2e5a6750bea7d99b1c5d0ebce67fdbe7474fcdb67d9154971556b7dcdd304a28181123b05fac0b738d8ae21dc84c0c7fc6c152c06628579e708d4d7531eade2baf0539ec0b3985cc03f9e5325c093a46f2f53a4a0cd9a4209ab4d7100a06cb446444715c746c4619d3f32a7516c8c13638ecba66242222d3b636a3c609fe2618e080484ca741bcb755d217b50fe2e560d6983b8f708597adf4bcd0b948766f4390d0c1409cbfd87f8e1e1208561a849d79826cc60f380255dc4949af3c4857ae626e2e0dbf4dd5fa4de585a9c0ddff5decc465\n\n# tcId = 168\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = b8291b35c54446e9295655967a687ae59a795e96885dfbaa83cf52095d2ee55646cd939ccd8473a5f1fdbc8c10a77e87e65b6741ef2f854229f0cc7f8771ba6ce56391061aafebdc7b4d65d798b4492cb5d58b106c2e9fa5705016e22067b9cbdb6820159e390b8ec4bf41661a224581b774b61bee9238d5a8663217f6bd57e7e3405447126fa0dc3cae2734da94b2d848b9602b4a313c5283a5a5306ada0387589d1a5e6ba004c949dfc1c07350ded30494829d46578251c8a777867486483c0af6f6fb96a137573a72b81872162d051603362e873e5923ede5f418626f917a53ff66cf0d5e35a8fa2b800b8fd2fe68e07492da3bbbea36dfc282f05f243271\n\n# tcId = 169\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 8c03145d0ab288cb35d62df31d4d9d3f7e8f3bea809f5fd2b02722a1783ec778bd38b861bdb5b5d1d3d283493a7f75a7e458b165df40bc6b370ff901e12b5193187d85860f391594f75276596155b802e497a7b7c0bfae298f8a7627f70924e5008a0c5b2da24eb33346f80d85c7c5851b67e1aeab3124ce64f0c3298c2cc8d3c7ad46ddb945be4b2cb9ee37d08b252372731b0321b617ee2873d187898e9079cad56a9953f38def6f318e6e9f30eb79060dcb82f3013b16444cb10fd84051b9c9c954d9af65ce4f6607063a02e179dbd67cc0a98cfa50a78c75d7e7ab53f5bfef34e0a0afcb782ff74f8846faabf24f3073110e4b1f72b050644adb386c0c84\n\n# tcId = 170\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6ac40fedc37ad7d9529d4327f81b3d223adcc7050ed1a6cf060a48035f01fbb19f8f90f17b1a5474ba1b362d7d826d2a62bb6cf0a6c41987cd624f887cb259e3a5d7606b479842b4a3dd69421355111df9d1230c2ac9e082cad89619a34d6eca3f317992fc3933b3cc29bb36787102b077d8b87911bc8376e68ee1e5b405adbf62e5ca46d8f500223a386553c45d5d085cfda0b68428eeec08ab0fecac33da41c30062fa4e7c89da57224522343df9c42d55b5b806d02e6ba11b8b434f8f4a638a3d78f4e7a295f17063e6bd8fefe1e452b6a7ebdefd82aa399637b804722849e6a3950df8abcac54e7faa656e52678ebffc9b69e2e8d3b77590ae592bad00e2\n\n# tcId = 171\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 0f6a1d4ba914e27eb6df8dabb7d9e042ceec17d40b54171bfcd150278c64d64d4fda06ed0895920a141696a1fbdfcbb4df8ba357b81a8053de2ed74d423ad46220f6af244815b02d44fbd45b31cc2dd26145de9100063e3b1f24cb0e001837c0ec82fe739fa46ac8e75deae417e4ea7b2cf63a1c6d013b2a17bcdcce9a740149e70dd890acbbeabaeed4fb85b2c2c4037593c68769ee060e270d086755f16a2c4efdb84aa690c2dc105d47d0661f794f9a5c2d8bfa01228eb97ed79105dfe80b3bf8c06cf0c54749e9dd94ea26463d3155a268676123cb4562473a7cb6b3292d57fbf65c1e77537f43ea13d4429c76e0efb922b6954aaf481a85cb12d242beff\n\n# tcId = 172\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = a8872892622d1126133c7de0a0a87f9f31ec8dc37969b81f93f9e43434d305d2bb1d1d990fd3f8ec7068cde599634b42b67529c5ec3585ad9897b45d6f791413d160de78171506cb7f2edcd530ec217b62bf47bbcc4a56cf11ee5f8f736a3a14198784534882b85f2e5533d80add216c9e5d0bb7696f318761f2c0ad788f2894d5aa70f2161b1f9a26cfed2922ee04d05a4bf11ef7800c5fbdf880fc1083ea7482e50133bfd3f514a44ff1d34cebc78c4a3db2d2a244585a23a587b38deac25fd15299deaf9b0e1d8df689876867687f98e60c250b5a0a35ea60763b0d842ebc5c8e3e572f72c8b9c678d17cd65322e1a9288c6b41190b2c39bea774dd02060b\n\n# tcId = 173\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = bbecd925ad43825c692249dfaf8d329e195611162f5f92a9041aad022b32d3f557c5492ac4b3909a61d4cb140d66290c5237c19989dbb97f38ca1c3db2cbbe557c23ac33768ffdd28edae33452c84d555aec763752322d285de31ecb8da49d8308aeb978d0e64614411a28b21a848b864ed36665f7490a277f885ac3adef86cba6e09161947f7555d875ed8c09c1d0d2b7abb8305b30211b7cbb5a948ba7f4b4f1b8a3d95112b13738aa7a8d76a65c35af1f4ecf908bc2cff1201e165be270b029ba6e47b9420cbab4bf354cd2e5e617b031c53c4d3d9b4e47084e25007e6dffcd23a4e3372bb52ad7ccae4dd5dc856fe0b1f6540048644290468132e3466c9f\n\n# tcId = 174\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = a347a01df709ed197c3b2d2cb37ba7b47b77c04ac8f2c8b210536635ca7204ee94715a8eaccf53ec5d0ec2de0491f9ed35f5b8f380e0d4fc97f380381312dabf7bbbe2b8916ede4b6172b084a46ed834ac7c6fe891eb165d606dff803ac345595e2c7123b827d16a3f0aa3ba10a33a8d92b30840a53a4bbdff30f093b2cb0d77fb4905458cf56313d4e13efa8c4322f75eb0247ca91a3c440c367de13808624c6accb006aef61812217aa2821ec82503f93d22b56029ea0c995982c82aa5036fe63663591165c6be4d5aa357a98cc8f70fd2d7a68aec6c5e2273933f954d7198f073c2cc3263a38d6b4af0079b5f3a5475152feb2d90c1bfa2c859ce909f452c\n\n# tcId = 175\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = 54bb859f5b913bff81a26bd83526899cfa36ab1f5d0d3f582aa414ad08629d279d694e4d585646dd59ad3fa116e1b7e6ca7548bb8dc81c69b76058b57a4cea6f8db185a02a4fea5a173768faa26c8537a68558cdf8b4fa82b4384a04fe598b1612a7ec357be733546c618466da5175162ca99d9323dc89e9b7fc0c99dacc3c7779fcc1222c23f7375d4926d2f1970f4359cb3083321216169cae055686364c77ee32c339d89ce1884d815cb61702b738436b3f0f9ac3e774c6f74993bf1c7bfd54741476ccf111791e353a991d707f77cd5a52d470a187d6550a17bfa13c33c7dee5da8a07a201ad5a1afdc33e863c7bd80382989fe9a14f6b6314af53cfb71e\n\n# tcId = 176\n# appending null value to null\nmsg = 313233343030\nresult ", + "= invalid\nsig = 450f42cab5828ed1719c100259528c39c2ea655b86f1c45fb8491914f48ea1dfd82b368b09a6b53793b7cd65e1c363a886dd0482360c366a04ac626c6e24717df9ebe0fede2e50b2b2fb5cf715942670ce7ca417f213f6500429ce3953cbea17d1adf4422d56d1598fb194026c40b71499462f240bd778de1162946f3af9c6f72b9daac8562c897d32339e40ac858fda5e5dc9abd6caf4af1b01ab5bf4d99cc86d9d39d12e5d85cd4892bc149da4eea5aea46d37641f3b1c4c15e9bbc9498649e5ff00f329514b890e14bfbea31ea811330b3a3587a556ae2ae53c46e3ebe915d3f3885e6c75f3285c539b95a9dca59513adc89369dda1ef18b064bd74aaa2dc\n\n# tcId = 177\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = 816256d2f65d1e78a763c2eaf69a6923d2c6bebc46278ac9f4f005b40fecad7f9f0d2a06ec69b08195b76b6651d4873f5acaea9a122b99d381b35fc08a790c8d88ea63c102e4fddf6f923fd5d0b048598fc19bd35e62ff0b41ab729d167e2bb33ad8dee0b3e33ad8e7ef647f51b4e255f677b99e491460f26ac488cd35fc73147d6a18199839b747c53f15a25f14ea56ed0a5e381a774ef69c69d976a0a2847a6ed865a6f402c9eabdab4a8c03956213c19a9783aa8bc153301aca3acb538eece52c43bd7c208452681b877e05c66c914a8811eef729185db3630ae24f0d2a7b46da2b2ee12a0de676df07bf3a84195d5ec354f6bdc5287d8b2349eed31487ec\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 840b053b40a9778db629e725103848e7bc13aa540929c6df42a55c186e2f0330d8894d5247c203c0659301f6fe8784e165ed253a7bbebd35723917c329fefdb439e784ae7aa13411b9de20cd1695ff3a084824b39c25fc6e3187dec94f28f9335b6e03458bf9e0b7099314dee2ed29228c4bc78d1ba0ee0eb9bb340242b083416afd193a93632a9bd761faf1b78444fab6c8a43f159f486605808ff35af1fa0dbe17a093d1d5f47fd8c1eb2e6789f66d7a4dc74145c8ef43b8cb3715d3c7d6f745273b0b1a7c92a6134ba9bf6d0b6670465fef1c176476d53f26613987b5f363c38fd3972e802d5114904fa6c8614fc789b5a40bbfa5cf5d4fb37e2f8049a136\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = b889dd445907633a178a31b9784e0fc57598a6062bdff35cf0fabcec275138fae388cdafe2ce748b89334b54f0dea56f6bfadc1b35f1d81e19c7b633ba0065d3d04855eeae5c175d984d1da2182589e09dd1228a7bcfc118d884346fa9d2f95692f7e10b8848d90ce20f6401a092bb10145ff817b7be159506246267886becd34cdf14aea0af2da54de8f888a5ca1d71ed8a2c213a2c2f963f368a3bbf0cec495f161925418ac5eb5cea816160da64e992670bb900b9bcc1f9fc57a3506410e7e53554f3a8f06701693fe0c3df9fb4a45c1f567cf787d478c409ec97c55f0aa8c9b5b688fb2786bc0a3a20bfe5a57632cdecd75e5eb350f4ae2fc28c9c287268\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 538f60dbb84589f86b608a0457fb1f0019d9058b58c6c9578f7d49ad4c9f312c58b868ab5832e6c0f6ecf1e52582dafcfd6ff46f3fceff1a56ebae05adc421a52b33f8f93893ec760a1b52ce9b5b04570be56fe92eec59ce950441a06ed3d7ce83a17f8cad57f8eedc380e771878e8d8191b14ca783242ce005717acf9c9e05bbec4d9fc0d1007bc0aa2975ceeef98e97750e7f6ed9e91200062ddfb7fa7bb070f7b6539e4590d2c5d92b7ace0367608b9b7b879d592c9f2d0152d3f0184c2ca9e50f14f9f3edffcae85f1122cf579787cd0bd2ed2d98826250654e96fa5aff5d00bae6705fe3d95cbda5cb0dceeee98c17eb2a434a18184cd15b08804a9e5aa\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 1229188a8f890df59c2f8b9a7ea411329f0f2c968d7efd14e7534a9b2c902300a48ae6d5a32b16fe7056bc697cb3a32b1bebb9a459922b37723740f0169def4228787b3817af52d441e59a548995955cb09938d83230be08cb2ee8ea0ac97d8bc354021589a20f7f5a483d29f72646e0d2cb344f915152c18c99ec04512fc5caea03220a48fe91dca9a53004b118af8b940f62a40b6d9f1876149c65ef2e8cc9a8eaeaced66e415f8de62df25d8e5e94e1ca1e52ea71c926df99e97e967cdcf5e1bcb48aed57bf66a34baabc9e773d5048cb436d9ea196829ff0d8b9f843a6eeed72f393aef10a45b5fb9d9ca99acec4744f6edc2d926d665cdd5fa97b29c003\n\n# tcId = 182\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 19ef5e467b218a8f5dda1f5d3ab6c5c6c275d73292f3da402d41359fb61212309877fac2effb0734dddf6fe6772942d046f89eefac510a5ea511fe8ee690cdff7df4c6590ca9393bd53484630f744ec48c310379994f381608ab1ab356ed5ea1f3077e44107b5967c4a4794cf26b389d92d01b40071f023ba0051e4cb210e31972d12a3a678fb43975a8107d1bb5b883774723fa019a2197e48edc35bcb42781dbfff8cb368e27f6f0d82457ac25713e38340ac5a31cbd4a560d6a762251605badb9f818162e338393ae9fbdf19824de991f459e96b167194c50b223849f9def538507f61daa21c457a4560d7880b6996668024211639ed9fbc4fafe7aaf4b38\n\n# tcId = 183\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = bac08a201a27e4c05af0ab67c097a77dfab297546f2283c6d8179fffe4116d26c3d9068315594640046ced0248c157ac27e8d2afa2819817e1854f7f8b712bfe9da5eeac951477340b1fb59c85eef525d46e8cf20a0b9e1cf8b799ba18d9ec8cae60d6663c5a921b97d195d1dae5967b288b4a1268a66c5bd22606416bec803c426c406c25d96bb2aa7f58c3041341031368286af25bf96fbac021036321dc4418aa33a49194faefc68dafd7d2239a1d1800451d4906de61eaaf29a61f860f82fd6ed8b5bf4461e8821e91e67fd8a73513014b7625869bc5572a98c048e6d7fba0a22f4eb4a92532aec16c7b6eb762188bb40619f7ef28b77906dafe01852b00\n\n# tcId = 184\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 92b1eb5b26c69592b669ecf0f64d7bb2cb12343e687a6a8b8acc1440b8028272d49837a5d5be49dab02f92ce28679c22409e2fe6c39440787412a70d12336c1376b8d6303b9dd877442ca9dcbfe753a3582c277184bc32a9ae9f3906c1adae1724a6a479be5f56b438424d59a620369ad649b4ddaaaf53343e3c1a9bfdb222e9fb66520326633fde1b43f461bec60f6456b02f417d6075d553c4157d5712f06e68690db5f5a07a85590911f06be76ea0b7af608e8792c7c53075ed8f4b11eb0d4be557623d5d68172bdab3b64908b7b4203cd6429d2d783347f8044f37bdb5fad865a490ebc9c4e7a3587fc472adcdc3c5d4ce5685a9cdac5a43eb86b36fff6f\n\n# tcId = 185\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = 73c5fb16bf8b5da488f290b61eed03b17bac3cdc98b0951e610580392a74f6300961dd15670f8e388ee9659aafccf9dcc1fb97596b9bd39dbb60fe5cc62efb463dfd29f491751b3204e10dfe9845e5c111d335a201c7515e33ce30c4bcc72a6618a9bfb79322b00b675191d763c4299f2a771c9e7e26c0bf0d6fab1f96d0ab60170cb88a101616dbad060ab079dc4ac6f91bb49776642d7b47c3b898fc2cd2d68ff477adcbfb1de10b782c554f1f963fdeead16c2fe5b4e584c6ed8c81725169f27ff371282305d4b1428b89a7a25f057763c417f73ad013e62df8afce855a38dc6f20ed68f4e37a9a4bc7395b9f3a4aa8c54252505de3f9b3e0301316bb376a\n\n# tcId = 186\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 7520c52e90e539f8d2014f1bc44b0c328df96d9f93e6d12fc56c895945993b73ef01834db08369da066eda44e585c56e675b2b96801442e6978d041d0e263a706ff384abc1e9b7b0c0ac4a3602db96694608a83c799a2bb679fdaf6771f2d170827fa284acf4d8ea77b5837794ba74540f52c2db801ed02f040e38043d6447c1aa6db5a76d8cf425d7e6b85bbba2515d9de7063b8acb3bf0d44d364d69fb4a20e0b6ead6fab8c8b17e7c0fbeaf352e5cbd34b2a58decd81dcf452acddc6875b079cde93b10661b254fd04262918a705a1b28926388b069e0184ae4f7349afb33aebd1dc37296e04f116c691b14e5728cdaea04462610bc64b300e8b5b903f912\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 8de2a7328634e513526db5c50c132c3e955c22a6022a904b4fb66d72a2d2aadcb250a6cfb838c9780ea047048b8a6d1650062ba0348a251f61247c0f1babbf1fc6fa5a4da9e01cdd7a80a6e3d8a566f56599eec09903e6b4b14d3b16153bc43fbdb1261bb5328056c9f95cbbe7f7072c93011f6ab837d6f3a38129ffd14c65e1f666f64c6455654748cac6d18c08b1d45481720a7834580452d1f62aec30245aa84ed8a7aeb686d46c2c512fa4e0f3f423c62f5db51a3e74a6e1c6f1450d61bd43c172dfcc355f56bf283421d3d60b2676c39122a99a6e397250c319419bc1c8febcefd04eb40ab336554c870b6dc719c4fae74929ce79807eb712828c85b482\n\n# tcId = 188\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 71d7a71edbc49fe622c9fe146967b2e4dc3ce1e3b49e022216b7c64eec7ac9294185a9309f0e2b78c1a828893f0ec1c09a4d7eddcaa60010807cc9878094fd18b179b41cbe73b4ecc03a7a9900eaebe560bdc7b92c22fe7a20fbceeb388d0bc1d440b265166524c7183f577bfcdf2d183257bb9699b529794568756b388f34a987bfadd2344f331092ac1199d7d8688dede96b1ecf279b1f2b027105439224133b43a95d2a31196edb0ba7bb5f72df9d986f0d55466fc37cebef4eb9f5b942e274eddc8f7d51beb95afc8210d88fd1578b28ed31947ce64cbea9c4e7c6a9fa2bfc3ff07f90f0b0e10a1010cac8c6768ca3ba9321c3da03640eb4909f5dc75bf6\n\n# tcId = 189\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 207d9fc28178464713a14c9076366375fee88f884707b3e30d1542be03db648007de08890e60e1a0226927853e13f48908dca2201221deee23c1ec02b8b62da8f5fe6d603ecc8e4fa50b45f65953b418a81ba9783ecc53c45d3c027d7e891c5c9ddfd4e71809370e353904d5a65d31dc083b37c3316a7e59fdcbcd9fccf65132a6736d2143e55c786d73e3c10971d1783ff46fb9d782e8849d2edcda14d9b1587117ddc0defdc612f532bee3bfe12eacab5ad7f7f4961d5a7cafe691409495517c3579b5e9afb1286f8e877", + "b6c92180d892345569f694a779dc45ae91c7181142bc18352f7bf21e62f3c25b486690baae34759fe0d7b5bd5f85c2f6bdead0fa0\n\n# tcId = 190\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 3ee1be0f2f1033fc034979a6de92c97f9cf26737f8143859b49341bfdd8263f1bfc65e246bd2bb655984b8e98add8bfd43632964a36fa47be4b567bfdb51f10817a34085c4f391717bfc7132736d05ca587bb090b9d2db16b90ae951524f30bcca9aec60f8cde84a373b06050b231ab7a1fbea4c7d1dd8102c2235437d1ccb89571678ff1cab3659061829f867787e6f70b8aee07a0f63345723bef4d26915401862449918e00f9de0594c77fb2ca13259404be5f787bb7bdc49005f2da4a6a2e5beae1623340e7af7fcdeeb7df228d3f7f5cafea8bd8d06bcffc80708e4703f64d874f702533c5642878f408db3ec7f1bf573e92080fe532dd7f68c96679ef9\n\n# tcId = 191\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7f6acb039833635053f8746feb3a6df4e3e98d9c253dbed7dcb01b3fa729aa93f7656048d094ecff6b7f283daef8af14bd328422a90c838754c92f79fbdd923c6975ea16ac4b02b9a4e9b67ba729228a35dd94e0272c759ef7d48f75f9e329a0a14e29f925675f9deb1885c1de7f61b9b95dd2067b1305149928093c3c99776c00d4facdbde91b5f975b2a4931ec369efc7f50252d58219a3c7ecefa70410e78b6cdccb96b14384809c257462434e146501cc042eb014eb3c7e0b712c88facaeb8d8bcd7274a0fed55c01d9bf6c7b9262166ab0d52c320a15c1dab52ae3199ba043c50843eb6ffa66fe147b2f1cf33f836017c3652b79f8384b34f68c7daeb8a\n\n# tcId = 192\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 099e3cefadbac010305b80308665c50dc8513e75ab7a19a64ef0c25f1d5336c73b7d50a0798b2b44cc7bfa00eda29077c52b303f1402a90ef4a6bd8c68a6304c30e94a082335d73f064e67e61a95b0ce9507b3b5c04b51380da72d15e22c4bda161b28c9cf73af37737c1d6eb155cb2325160f006aa9920f11253b03fe3a9b1dbf601d29ee89ba7bfea43d7258c91e706c0650091c7169692d1713b6cfb0a4533a8195d67ef679ddbfffd13148c22035583eaac176704179dcf899c86524611ba58640fc7c91b8f477ff0ad39d897aece17bc4248337dc1547fe8eaed37d16cf829a7a77e3d7f3b6438a37ae15c16ab1debabf6117151ba19e5be7bca1477a62\n\n# tcId = 193\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 2c2bc9f2b9b0ab9a5f4a02b2b02fc0ebbde33c53fde074a0899597d9a4a93e64c008584e89b281828fadc8cf6c7a6a99870a881bfc854cfe02ae508be21e63fab8c6cf6d910e0515532d695789b2faffa1209596bfd37828ca2b4c687f8affbe13e3ca76fc421f0d76283e6ee2fb60e5460449be80bdd740a14a0cbf98845e373a0e3b0cadacff00d3803d8228d96f75d025071d71056724fa9b2c77af66656a4f71de0c38cbd382a883a92ece692c54f255c2c8552f573605d25486fcbb06aa5da4cac4acbc5831b7f68756fddd48d7fbafae05990e2bba2539a37e534e4f57fdff95ed5ce3e11baddfb4415fbae94db41647b9801fe62c9d8a1585ddf25dce\n\n# tcId = 194\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = b3fc99e3edc4f81ae19855341b8625b2367e92e5c4b989cd28fa3a78d2f9b6254f314c6e31f6f5cf2ce2c6d835518b7e9a180127e3ce31dd31f896f5f910ff347a98dafc4b441d6046f433c694d300ade547ac6a509cc8a089141f32b1b58e8f87653d382bd58a258a7495d0e0b3737e20e6edff09b314ac7a44f33e83cc524d81b95ed0a2b9969d73b3cb256a0ad207c8c622c557db0c9871eccc36752433aae2393f06bceef3be7ad0d5f9875e24b3d7db00a905aa7066da5317aede4a0964dac144f556dd16f3e626cdaeb78262bd526101ad98e064f42aa9497c37eaafd4a0a2b0252de2556e20f201df34fd1bb52829cf544959f13fd380c435fbe39e8e\n\n# tcId = 195\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 376929ad5fc3c2b1692d36a18402752ee5c18aecbfabe02f09e604b5f6203222eee92f58bc3eb387744b07c55c5e8da5db88501dba16f0c2d75bfc49d0e8ddacc31de46b478916dd4ac26c98302761bada412621287a4d2a72881e97b955cbdfd4ab5093835f6247c5132a5310b5482044704fba3128f3ae14b8b4fb14a347d9f96836a7ce51346d9405f65ddb674f99c4325eafb9044c8e3e1c817cd47c3ea8ff0807a4c863398f4d9658ef729391ad36831ebe616f6fd9505741a93009748f24e849a737aeb4872f267ca94ffb2c6663d0006f22637c27eaa44dc597dfefc2235766f5f001bcfa8db334d88348ef0894732c8b8dede9b8e6801a0b28071f6a\n\n# tcId = 196\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = 535f91dbcb5b924f6979f1bdb9dcd1d59fdcdaf2fba34db7ec68c0d5e334149931ab4dde9b5e711ba06adcba7b529d7dbda571cf53d7988bd31f6f9804799c8ab3e193b712bef52bbe4c2561bc27ae4a0f267cf7636eaf7afb11000e6cfd311ad5a3cbf746bba29cec9a83f73ca3db339a7d570c025e20e4416d2a4c1ac0eaf23812444f1ac0fb7cd96f62da9cdbb8febe3e77a04c09c3e64e48c0ae2868e93d42c2cfc97f1aadde8fae28bf942074cdb55e9a04d23090de87913e36407d98a93fa0785e2eff28d7fdc9f80a457bad3a780cc128439b36cf2ed021e357cfab5ab08da906e1b2337c42f18c01cab7754bb085f5857f2ccb19b055756ae7dac41d\n\n# tcId = 197\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 21d0dc541ca6f3766392be26516c1ff06add55fb6341641c884814511af5ad230d036ed7a547da9ea054cd509006f7fd11c39e97364b265d3606a06e44971cf80a1426ad76e699f68937be16cd256ccafb94ff31053d9e01fead1f71c838e05eec5c98fa91607bbb3fd17766dd56daabd826c7aec83ae56f1d60c74b06885aa8cd94ae1e105dc96d13b7927dd08f07daf784155fdaf54a42851c7873ad77b4b2508180cebbf75e0c30aeb82988a20301071f338846e8fd6981c11baa11626aefb15c2e83ea87f0b5353ed2a3fae1cd8a5c9e61a5d387aaa989093e1c58960c759d6699de374cef8ff56e42deb6517f552459a1fe84ea1a8e4da9562d3f567c69\n\n# tcId = 198\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 5a6b7dacbc1dc464698f2406e9991dcca63bae465a872f62bd9c0626e98386c3ecf7935cb1a6598fe167b61c1c0a8c0b3cbc3c1c911ed56b82bb443838174babb6f7ecead6afb94b371de70328143f367402a55e15e0f390964933e0553ba892bd03f0d42f88e1a67d47b7d9e218aaaa0caac46ad88e76a2f887439406feb886800788469a27c2b911fafec28a23a9a4781018fe491b1876fb514e6c73cbb166ea4c1f1d878b56d2029f277b3471557ca546db6ddfce9f367583c28d14491f82f31e50c11f078801317bc29f6bdd5ad6986e7c0a33d2944f2d4469243fae4d7e3bdbcf6a8b5a01bd5c094b1cc27d772d6f7e5bfd67b83269a60df11cef3b6b10\n\n# tcId = 199\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 842978d43a61145541fd3421315fcef1e95ca32896bebd6dbaa0a0e856eb0c47d1ff7fb2eb981c26fb8f7d6f1964cdc05f856ec994517f1eee6165786eb12c44ddc60083eaaf02778400acba6702e54f891c7b5865bc0c735e5443043b4d6dd43f8c9554a524b808be58893e18762b68d893a970638d2de3e677ecf3b6c0889bb1816e910f243dd1c4978ae2cb1aac745d06b2a8add4b6f18b71e016ffdd930c4d5490257f9d0e9969900e1b49796f3e3fb3a110b0fe1a00236191d34dcb5b7c2c75a042f9a50449dc403403af09cda51926d8f32875c8c0e5903700e41c7f93a585f6a6336fe48174d1939e029f6bc30800c269fbf85997424bd2624e5c76ca\n\n# tcId = 200\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = 5b85cd70c97ddf46244456e8d4f303239b7e401674fd96f96bfb8e28271abeff96f07776090731acddba70fb758571e6d3b015bb20d5e88981a9b9940dcf1d77a4a61954b56a86c22870c8ed4de7d6d991d3421c08179c03cb4d2625f2255491223c66fcf14635a97b8734c4f823adf99d7e04fe44c2206bad08c82868a25685cba38e275559fc1a8fb9f81673210ff766131e05bb727cdf45a39e1e4352f29dfd9f49ef21528a202da5f2c9ca4abf5a2041dfba41843109c22d89d6295229aeb9cd0a4352c5cd8694389e8d43dd6eee8258e57f085e9f0d39c0ba17a35b0bc036c3d568aa901f1b6a3597c43f00d330a92a39cbc4eadcb73e5e9f39b3762496\n\n# tcId = 201\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 17116ceb9e397e3070704a060eac2b5dba73e325e5841e13209d2c3e836a081839a153d3afa6b336f9c077d9c6f4ce7e1ba77a91241e41a836d12783239d6bdbc12b1c6cc3a0959fad86d1528ecd4f18ac95b2aa0bca0bd1d7473694ce57e72a30b93088541002b92592165d516cb2797f34f686276a80880f18a24fe18204dbac867c646ab6c8b59e007da8ca119b8a0a7fffb127e7b017dafe6d21aeb112219920ca14ff16bf5a88550a7261e20cce9626191c817991d99b671f60ca8e9466868d58e3588be2254f2a1a69b810987eb27231ff5a0046ed4215433c9d8631375d02db3774f3429de73480a16af9819bf8403cd5794292aaa2fa4ae0a28c8092\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 53394fe68d3b43c6037d8bc922be22587d2ef728300b3ec7bd0da9fcb8e7f6a3b68e849a18a7720a9ecb2d93b84f913955ee7be59bfbb9f5981844ce107052a1348533ac30cd421c548f2479b978404b984867f48436256db3de8cc7f76912a796418745d42cfa6aecf5e137431eac95c956f543ac092ee53d439a249fb439b2e1e629d86ceb8139b1229355e203ed3d887a340a97748ab9b7884cca8e7a2ca99ebc7bf0d365456e2203d0b983674ebb87a8d9adde73595790e7aca88100b13fe3355d43322d84e5c41cc50824878c8418562a4bed7a0cb65f9e3c6751fb3b7fc79807c78bf57b0ed12a9341be7f5f39823d02f7a3bef0f86fb1a57569760dc9\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = c0dbf6f41b307c2eb228f72ab5f763323cc30ac5c3a5f027172e735160627afbe1b5e05dddef7f1cb0bd145d16d128d1a35c03803a01bb2e12f05ee21d05089b9b7070fcfe107194088ce841725433d1b59f3501796930ae4cfa3c20c9176927ce3223dd434f8dc2be", + "9bf706020583f58e73c25d7008783bb30a26fb273efce258e802c509dd319938fef1e5f6a951649a3f461b99488dd3acf45c254eef2ce742d176a58179f720a6578f5101d89f74026bfe2710d150275cbc3b5087e63dbf37c0e7692d18fb53f5b62ab67f51eddff22bbc62dfb864a58047b0d5b83a94c44b1c0aec94f8c0e32b00f3367e505a5390a3d3dd40237ff6f148c6974bba31a6\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 8300a625836213ab8267dd9b2d5a785bdcfc56c56af0d97d648c2ac1e40855581daf13af70ad1f37111e72faf7bdedd1083cbf05de550ee7f43aba0869d254a0c3a6a2ce2d2a801a9170aaaf452b7e5ededbd685f6cf2c52f3f5842a737d56fc9ee99c4ee9d0c3199957ab9a7a584792c9fc22173744b3eb7076a556505751d6e08414b5e7f4b8779ce8d5a2a30d58960cd94c051c0ef6716d0697fff2d9fc79e362b9c03a2f6c07d27024a2a61424a80c331da1fc321b42834759b5de5dc280248f02d80e85704e754fe29ddf0b680672ee27a65accb8233db3775a81eb1a6126d9ee657d74c878be876f6983521a13310ed3035d8069186c2824dfd8b7623d\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = be0398b3e6d268582b4de2a05342d5c72131beae600bdab1f3f13d1e21b42d0b4b60d89589bed32dc00b230102f553df95b2960e451f1a240206330d0eaa69c11d50363bfaf360312aad5d3e9356733201ebc3a69a5ae731e20426263591fad1cfe31e0e87d2fb4027de3c57fe32b15c275b9c8f7ec166ae688d625674dd4efc8b5931a41bbb922e2ef1bf7dd9bbea8e98f1556f8aeb99baf2fb848e5e1fefdbbf73d61013171f46ec4f09849d7e7a2388f7ec05491556eba3a3df18edcc9a8db46e10b13593fe37beaf1646138da87e61a98b02b33297cc0f4d7a91d6ecbac28a159d410af25a8b8e653a093a45c3ed19e617cda1709e8b1854cc1028cf886e\n\n# tcId = 206\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 6bab815040a7ba6cc82af2d5449931628126eaacedbafbd28673003fe9f5bfb2b53de6700081477f769d9e5456b109250c9409ef998e334e44e132a88efd33d41c8395fa0ebe58c871b289bbf20391db3919f2b51189b2d51f900829df95f5543bdc62be8f94272ccb620a841a4ee4373212b853cdf1d079ee5256c188d3fa17f91d651ebd522b60b5f3eaeb97b302a70ed9cdd05bf1212f9ceafaae5309303e16f18c4477badc580383c13a2333910f6665fd08dca1597f216096614b2b7956142735fa800f5d74a422cb4f568ad9182e0b96e49614e129679d46b387825820017faa81087568e87ef13c89474420c613bb071b5c295ffb9487805d147c7cea\n\n# tcId = 207\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 87007220bbef1a21ab37ea2b757caa112233a61688a0c0ef1d454b86843c434a98f43f451d6eba7da2e8a82e52a93d44dc82d2a0734c69a1e9a77265fe9315984ea2971e729abafe4f7adf4b0bbc750fa4f59fdefa59339bc838d5f6cb9556aa4498f8e596c2d50516fb540bb4ba98b2d04ad3803eddf55767ac7b121b909c9d435d49dc6ed03a9ea0a16d251e63459be47056e2341c239ad4f532fbf4cff50ad3029da8962ff09b4c5e47ae29c28692a53d492361af254ff86e99468e53887708ff9f805894896ede5f7d04530c0eaf6a2159d390a63ee154062789215c160895cc9b8c4a6afcd31b1d474b51bbf157f95e9f2be6675844cd3ac9c4acfd40e1\n\n# tcId = 208\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = 185d46fd6c9c3728852a39c11a39b1e8117da5d2be36ee12d7f87c262983690189775eba623251e1d28304bdd7e94d7e9bac6114e4969ad2ccc3fc45b94cdc5904bf3f1aa62cfd8685b2a7b49aeeab673ca2de7b73dce357fa38e1d6c7bfe79329ba7f579d205b4f3c29559baac344adb2db1d5f90ceb542943740901193997c31dc1c5101fdc354b47d8ad37540bc1058ce57a8afb76cac731e03903ebe880ebff1c299d61ca2d3d48204e4c37cce0d80b7458fcf552ceb225e2bdc55c58b3497339ce1662e7064fc59c342d0ca6e6798cfc7b6457e7284ecb5684ef9b68ebc257532a8da54cc830aca53d091fa60d9e1af166aac5da8bc56b79eb9f8433020\n\n# tcId = 209\n# modify first byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 1e28082a4d00e25231308b793dbdec873d93340a3e85bf0b1af485c4be16514322761d6e80bd848a97d394e76b647b79bf25b23c44cc208650b7877435498cb4e7494145fcb43506e58f15b83fd2a25b3b93232c1f9cfb748b8f83cc961de3fb3dd2856a36d63af7ea488272ebc0174982a7e1f1873ff86bb219dd87e25509f11e47b1cfebb895d9c6745354dbaeb8c5842377b1e9326c28a489285fadac25912f9fd971a8ab4b4bbeb07364dfd998f774633269b516f889633d49351f05008766dd0556aeac57987f3b18db2ca056042068f1ea4fa87bd90fb06c6331ede38ed6ac3c77c3431e30f4c3b977c0e3ef635fe59b0d884495c95d2342eedb3d2266\n\n# tcId = 210\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 1dc7a0aa238280e0fc150a9177a3e4ea9579d6383991210c524db4c07871edc5b89d3c8aa45a27351581366d887bf1060393a1fe62870938805e97bf4aa055199fcccab3523131469ddfc4e7436844fdfe3c2421f1c2e4853d891edeafdcdec7b3e27b71b41e1b055893fa40624dee585898b194942ada5a143bdf2a8d04fe06c449e21093c8be5986e3409c9730b0630c4f8d2b759f50f92be0a13876f0be20e8132f2134e221b9abc03cbca36b3a47cc865bb24806fcbf9b3c862f35610e240634bf97c28b459978f7da007d29e0159fc1f3435a8c4c5c232d4382c9d2d16e168eaf10e1cf0db41fff58807c979f5102925aa50dd27567272303bb4cc8e70a\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 04784d6cfdd749438e88a2e61defac5f50002bb0607ec2b696e94c2d9a012e12a8a6de60a08fba0bf4e372416cea84a8e93fee36276eced5fff257747e3a535608b446cc716887d6ab64859ada40222b86dbac347e5528e65b70a2287319c57addee766427ecb491113014389409214e87029cf5a219108dda4f1cec11637c7290d3096267ef7a5c433f93cfae6b54d4af4da4568f4d88775da1bd94f93ffbddf19e0cfaaf2e200b71c68df04188678ec392fa718d89497feda1342a2100cc8dc7c9a616981e2447b0235241bcb48c0d384dd6e6c4f24f3a1e2754e7ef8348160ae27ae207c72c74866023c35685e1566a4df12d92fd5e7b44188f56e3c00f9f\n\n# tcId = 212\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 65acbb86ca80e6a03047a2ced4c4a461835bdeb42b27845fcef96711bc0e7d3d3b8ee95a87dffa2287132e01d9ad7e07c230fd6d2c1871aa7f113c42174dcfc2a78f2442355f0f10e68749b0ea097a6158795ca0b236f9c73b0b1af7de9be110b244bf8552105f35c761dad993323bb33a03b89ff26c312042073f1eff9807791449ec52a50a8799d0604fd35ea1d10f316843c1ca780cfd4af1b695daa0282d6dc743331d239a087f725fa67980c7ba1515326cb82faa07711df1675c9deb9960955bdde07c8e1f57884cf71ab4bed2b1080be4f4558c3f5484c578530695bbb2ac3405804aa7b5df4a301713c18d4db2c1f9378d32bd5a94a0cca2ceb4518a\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 735758c0d252c3d7eb0d5f7d9b1fce3f3bfaac9c27ab9c64d9dbe53d5a20354a1bab7d7b1da1818852f9d8f3fd24afbd7fd94709672106d7b389c1c07f7347b025e49ed058406bc4e0cbdaca5f550e57f4ea07cf924c371ad89dd72a4b5bbfe95e172436b5ddf10b564662a36c1762a88cf94cc164ec65b538ff8c8d527dbb09aa2ab60972856f1b4fbba5fbe4d82ba53cc8450feac18a276938a3d175095cb7bb923589f54e721b836cec671f7672548392196e1b907afa5fa22f8817d628c922cc1de6c9ff2dbaf691bcc7a53b30d5b39ca8acdbebe6992aff3c28ebc00bb6a91d3714e6cacd42d99653cb9eb3f148a44fd2cbaab35336776e73657b756955\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 409aa4fae8fe1e807391b23ac3a34f9b83554a4765526b3e508bd0d51c054ea3542e6f7853c74ca5ba675833b7b7ac1611e3f4b6d5a88c8b045d45690eb7713d491bb1961be5f7a788c602fcaa558aae928a3afeec262d54cabcafb77ff9cbd7ebda3e0d8af1bfd2ea6a441b99306601a7f456f50a693e0c2489470277572051c0d443b34126cd8fb46e53fceed29101a82b5c0de4efb4dd48cc45bd383c6c208903ab4640de5e6ae7d2c7ec80590d979150775c167e7f2399c9df892c929d8c71c8f084338fac7798742cde063c51926dacd683c2435e3d6c75967b732d2040d89ec3903da1ca5a057bc2987a0cfabdea681a6cbb564b96f320170d9885220e\n\n# tcId = 215\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 697ba35bc32c2ed66e4231a7c98a947b99b67484bbc3eccdbdbdfe8c926b38c484a216bf12250a425004ddb4cbbc1e47112dbec6393bf5d19ee6a9d46cdd618cec2ac8ef12518c6147e524910e8b0c53026b44359f003aaafef681b0ac4137618c3e571ff247b67daf347058fd7d3c145c8e70f7bb5018ace902923dfb002b08922f0584f120f39d94e7f132ca30787b5663c40fcfc93fc1920496f80a4f47b37f0e668cc7a6ddf39ce502badfbebdf5db6dafff8c8abddfdb272eeef478c09a70f4c286c127832d98044e549e20901c968e3f327cef80ce581487438e76ed86d384985137f081ba7995fab6ae8bf9a8efdc8a08f0fc19dba8882ae716472a03\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 5d71198021ef4a0c0ed77cda6f1e7989f023f62fefd5ba81c70d31e1a6a1c0301e4004c2ced7acd9e98938b7faa1d20cdb12b9cf6ac59c9501d8f733b3bc543669440e74cf63be3d41d8b377c2a222cf1ba40cae4c24fec5033bf2ab6860d9d0312413ea8a3446e6040c6166c06ff5bd1070b5cc5f8693cbcf90c1e7ffe562240885ca18c181c86cad85971c743b1f70a4882e0cfef08ecf8a3dee55273bb06bec7dc19263d13a3ac887cbb27510d4e45cc4f183ceec9117f4b0c7ad4af6a89fd9e85bae9da3474d0be8fc42dc9fc1e7a6b98ca1864037d76adde226ff72a609495ab76c2242aa2391b21a3e8e3164e98ab6f1adaa5fb3848eeb687472699508\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = aec1eca91968d08b4bf15b9c5fddd9e7a6a20be74486502380faade04d84d9", + "a5916a6c0ef2dccfd5ac7397e76a301096732584e8442f20ae80627588961cdf97e344e131d79e6894be6fd51b72122bc2654d00f943683a8db630d35c6874ea56f908eea64902f18c0a548905b3c13114e3526f3d6ed39061724c8e9df498545ac7f455c37d2e05beecd47c15181161873925049bfb4a671e4d1901a75099c7edd6499268229353073a598174fc937f856fe85f950e9059496348d0a1d9f98aa94208d66ff3f58792ab0afe27075b241a636f1b5835f4a4b330c6f9e032a736119a1d8feb99f6c22f3490a82a65710abc3767e81ad70a230ac4b1db9a327ede40\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 60899366735cff786b22572d67c50af5f644bcdfd50c559d989018efb91cc888398ce3b556d8ed134627827e7af0ffd5106795ddf96f988e581d8498ac2c2ac9ac5195d7c15bca548ccaa070924c6bc8de828fc08f5e74b8eb7cf94477310436b9d139e54e97a9764d0750182867e00f0f9e5b4b6122137bbb65271bda16add4bfb9bddb3d8ebc063296d9ca073c377e56993cd5f3f1bf229e0f40ad3efee00fde0a9ef1604f01a24c20d67fee04fe8848cd245a5b0e69d619dffea08fe1afb6cf075c2594d00cc6a21353656b1aed51af47159ef88b61891842a6eed6c3d294c1d226009d457e4c54108f8ebf4305d0dcacb07e60b51976c35d9dd5aa10b9a1\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = bfa56d1f9db006144a2714fd66a633ac3d27e7033ad9d59967f816ee45277095689203f3b257c8fb64b3b1d16b6e424f1347076b6009ae56ae193075b82d5ece6e643f0e645b1675fa0b7998c6f5414511d2acedfcecd0324543f92a462b9f9f79223931e7ead2c2915a1dcccafaccbd374669caf1e2f50d45aa986e4511674fa9a5bebeac29760bb055acff67026ba83a977aee4d6bcc7b247a76bb77a345ceb97996750b77fcf979adcffb71e734c461adf3e23b708591f4987d59ca8983e0d10ff5a78199a02f02ee171c26b373160efbb51a23451bd326a7a6dcb66e4d9bd02ad30acb4719478b0908831d5cdf4012efe94aa8d87290f9e94d430e9095f0\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 7859342f4b0977d970fd2c30ca94e898545f8dc398e37949a58146a203d191a6124cc2e0de5d3311587b4a54a83e5855486aeebe867584d7fe2d6b559f5bf2bdcf990062c2f04db9705f06fec4a3aa3db300cf080d1493a60c63df1ffb98e1c82440b8143b816244403c7d806bec0481264219fa263c62852ad9315db8f03b255e7e329caa6288beaf7a34ce3273ff39e8c8ba449a979253b60e48b66124cce678112cdb13d28d805c6b3a5fe55cab2df194287fc060442fade432473aaf96fa331fd16544c0fb801c30f63b0864ccf559432f98d1fe42215c050bc71616145b1fbb33a4842bd3222bad53bfba487101147c3119071513a49ba753c8b2307fd4\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = a5521057430948701805207688507441e3ee85b3e8ef9334922c8ae9a9a8485f95f5747778b2f7db8ed3df6655e57b03022bc1244d04961d6ee57e62c762040b581bacefe7e5beee3fd1613a142baa6ad106e720206cb119c1884f41b90e3acca402b18deb5593c3f2d9d841e23b2f9443c13d450463b4e272a08fded7f00d26029f7c0478af557d41e7285c48d9a0ae3719a95a14bf8b9e25351c7513a5ddd86a2e6c124a54be07f29660bb09da8fa8e484c0c930833fd727b429ddd2b8a6e1626d05f6265bd88eb88e9783123a7720068f590d566d16bf19b474d58ab5ca9f718eb5d432d11f6c65e9325a2378c6588c5c6ee89edf7ac708c93bb9b04a1f80\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 9c0eb700b26efe50ee6aafb76f0a996890ea71533c374286ded0c21a567afc5bb212e81cf80cfd6f2d26a3b27fd7f17a4c976f093b240fac274a2a22969d119ebcb26f81ae0bf5641dcef96510757de9b0e7b02db74efc1ae55c55e8135320156ee9152dd05c922066aa895319708bda1c7a9db1890ef7cdfe7de3925f4c9852a8679f4d71714cabf8fe834ff442794ba96c2f1df73641eef076b172ea846d7649e9a42bded0a7da4647e07ed4ad8c1f2d7858f416fdba4d63b7ad80241d8fd60012b3a77e7e0a759091274d350f688c8a73334a6c0f2cece789042cbc16585cc84150278bc3465b3df701533674d272c33d06ac852cc4ce6648e35cfe60da60\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 4ca9a8f3f2a187234daaa149e463d1e27d78edb054e999ed19e63024e41e267a51bafc7c863b4f2802b09f1aa0dd3d6a42fb0306ac38fedfa3cc642eebb6f4748e55ab41d86e3fdc392b1a9f9b01c55215543b39e96d8603d80e223700521bf4b3030fe4f2a53dbace1d668d99cc4e57098732a05b99dfdd3326a218a11c195af7f09b829ef806ef71f3b139d1c2ab00d488cdc75576e7ccf75fad3ce9724495aca667dc41df1efa59974cb52b040fe7d578c7a4f2e71384ae347fd7dbc6f6076a86797198e989fc87878ce926fa39d23175de35b1d09862a62512fb58eacc669e11fee9aa0c08f351f4da30170a6e3bb47929edcb81ac0132bc6ca77b3f09f8\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 89c5da365d5d2c22a961187ac62c26bd5b88cccebe46285c654dfc31f44b7268f38d9e2902424b09f35b7094a39ee937ab6140895acd30e63bb927f3a0e017e68a2fde529af3e1a2359ad2ca5df7c94e9e91843160922ecac8ba64d38ba0fbeed8e8fc7f2ff86888e0657805fdab834a6cef5920ff70929d66676eba288233427ab5ce9e44462e03f71225d9ba2e1b4898e56fb7949e6f788fc0b76c0b738366ebd32c58731e8d551f8f52b433bf45d6fd668548e59c41943684203697bfc0cf2c53274836aff5f346eb7ca753b3856ab4d9128efb0db77ca05274b393579ba78624fb356cb3360ea05bd5f9f9d642b74211f258fed6bb940577dddb2d807eee\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 084fc83861c80ca0f3c7d5f063916b2de3a1b3f93d11a5289ceb608ed3246bdf1fd79b7bbe22bf40ca7462d6689f1f50a53c0fff60b4899cbf86825f8e834171aad934a06687787c7c833cb4c6a2172002445389583edee72ba4d31a6c5cd09b1bcc18c3358faf548369af125a915d47affcfcd30f934b739a62ce37ee0060e568211ac255ed9481f6a3a871812ca2e86417b807e6d352b0aa0ca078c75319a64bdf4323a34f379dc2699201b1d6ab1599ad02c2e103499dd7cdfe0545716e73e400ea298005481288d384b76f1bff69dab1486921622fcabf0733c0bb392c3a9876d168e0a0ed453d0e020bcdc0432aa00ebcdab36538d616d93cd01ab3a63e\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 471eccd41ca3c301cc79447afec99925611ea09e5701fbba0ea0458be7d77b35e798452fd19865903b33e2121d4f21cbd0a2df7e2d10e8d20ddad3b9f0194cdac071a3c4f4f879ccd88fd03d761d4cf0770abeecc946a3dcac65e1f4152b833d4a43b65777bb146099800ae324479d98f623c5321cf9d0aca42ea93cd9df23f5bf27cc128f20ff41d9a5f4048357397ea45463f04ee665bf4e10630a006f57833ddae1b3704a6f50f5e2766b3f0c700c21160b24e0666c54eb3661f13cad3fac33b0d63860262e6759632204f0f87a3e1e039e38c15359c99cf89942cea589d78fd3710a83b5e9ab09f1630fd7f9d7a8857efd763d361e158bed5cc85b3776e6\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba748\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba74a\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = b6e6752a6f99a6dbc43817850a139bf61d3b983821b022758da22187af9cc02a33cc4e7b59586fa829582374031a34d8d7f3ead4d9f7e42d3e50ffa74ea085b4cd884bf637039152d05de1fb6611c66b26bb4f4543eb4680dba24249aa0e31ba17b6fb4a26994b85bb1b79bd77c59ed18bcd4d4da04e45655c0d981af616a8ef5c193135a58c9a61857e1fd4c6afa60b23d214f58a968d31486c57d483dfcf7a59d49039bca4d0a7b3469eb47cb2db77dd9fcaec9d906bd206fad6533efe9b06a39e61dc1e901fe552fa086fde96f03e58cf3d6b65bf1c4eb9a8b48b218189ff4b0008c99aed899a787cc0d4ad447093db347161ce79d1de880d653b1380b4ff\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 58c3e57605deefef20c57f260b790664b8b215b3dc82d33177b8054e5a990df72fb27c3e7554f76ca5e42ee8b2eee410a6a6c8eea3634a527232d6c8098056bdbdf90feab1d123e22f8fea82f42f9b4c8d65f5febd38fb8357b295586d63c3fe689f89695638679ec3807c76e097a76be05720320a525c3911602704382854c0222e2a51384a08b98df7eed637a5dfcbb8c49156848cfa4b8b36f00562f4ceb5d7e7c6237d9d0c1dcffe3847605d1607c1665e956666b4a28df99fd7342336ba119556c6c7b162208f160ce950e7ff41c6452bedcfd5eede9bd34da77749b8df8c6925e24ebb04175611f0027253e7ceb028c6fcc82d87fbee1e2017ea43b6a3\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 8ddfa621e73504de33ee75ca1498cd7daa0fa625b7dea0756392f2421cc84ce10f0032632bd7d2b74c60d55fd2278bb86185af3c187953ebf6415f643974e53d34d8cfafecafd20dc4767001fccbd197a38222dcb1dba53ac8fea54427bbfc25a858e52b1b2f8a778b1034318c5f76d0f81b91267a4e37ee7014e50753956740c33796f8161fa72899c00643c010314440f026bed963bc3b5362124f2e31221151dd6273a28b21c3955ef6bfbe48eeca51f454173d01f7d4dded623fd2ee69442affbad43a648c82c99e8bd05affcd805814dc1e1f96f301421ed9ef6a3ec2c6bd6af61d5cdbae31acd48218badc1da7d14c07f018edaec3537d4462999550ef\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 53385d184121d3b7cb41d86ae31d9945bf8057e126c847b69d2799eaffc133877a51cf8196ed85e3d22e37c1f7df932f796753798abe3d3b08b03b5574ea201eb6caab2dd1a6e112fc75c92285243bc3ffc7bb20e8b1bd872c55c6f1e4935582b2653cfb7e1cd343429d693589b516c8381b324e27d16ea1569930295fbcd94c8a75f2d0d380006f0ba9702b2089394d678065540de715c7219dc16897201d61cc0ddeb2148ae691e92348c91e9c45118ce9a3d5d10edbc2081918e879c7234be129b480d5c46b5490eaef51d3e38403a36baa961d4d0e4dc9a045342488abaad93666a41bbf90039ab189b6b9cdabdd00e11fe0bdc9d52cfff469aba22080a7\n\n[e = 03]\n[keyAsn = 308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d00308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keysize = 2048]\n[n = 00f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f]\n[sha = SHA-512]\n\n# tcId = 240\n# short signature\nmsg = 38343432\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e7a1269086f0bbc0778ded8d7108ff4edcc2313425088117b2d5c53e9d9971950a5fe8b2b67d2bcd1be74f6b557a3f90650a96d7e4dbd63c05b94f73337eea682417c058d66ce523e4461065ac8ba990c4ecd04932\nflags = SmallPublicKey\n\n", +}; +static const size_t kLen153 = 208470; + +static const char *kData153[] = { + "# Imported from Wycheproof's rsa_signature_3072_sha256_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 157ffb942b1363b5989ec4beb93fb0187ef016de4ce055620825d13c3dafd4fff621c71920e884ba28c5e98b328baac29ad4bfc4d2cae2f0ecb9d1b6c9fbdfc385aa565aaf6c5b3150e085e0316e21d7d440a873074e5d2700d961114ed420478647a4769d832691f7a004d934a89dc249c9343341902d5d0c3d1a623001265634216beacd5f756821f21c3b58111790657690918a2eafa9e85ab1ee44edd3d8bb89e892acf411ba9eaaeef88eca37dffbda72751c117364fd1b38c840d7b42318fcd011a4449aeffc2de32836d3a4f704d4c8ad4e078315d0d1758f098f2ea749ccce62aac592ac4041b5e733ba0431b88332a39a2af7f68f9bb1f469a793b280b964f285ce5cd1ff3adcd7dbd464a7c9414ed45791073f08415be2dd9f01dc2fec8c3a26fe97d9778e2b2fccf71a1ea5e9ce017d2d46778d7e37bb832ebd5825b3257a7852db5cb6c132bcf9ba3522a670b0e866585444ed3601fd32a922818ef6611626eee3ea99cfcfeeaa4c370567cc65e0479bd35e091b772d7445cade\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 631cb4bed6b79dcd3827879f6d64de3ae17e0fdb022be013e733bbfe0031cf204f0508ab87a2e2bbdfaa16cf24acc96b3fd2e72bc4a224428e515d6f1e0ea6927eba6ed7282a959e5df5e52eb3be9a39cfe139ea2fa45c21eb81b3197eff655b918f7c5fff6abab33945557a922063f9600a372ae7701db686f7e1fe4a6e804a0f624331fbb59536733bed3710dcacd22ec74b1a1386d045372853cac91130703ecafad7f6f42ec1aade5cb865339743c83e882f248b0db0855f487a6d3b55442f67773611a11813ff46a58c762b1bd70b5e870c3095507f23758e90b3c84526f47a825f0ae787acfd3ed349ca6786a2e84ec500c6042a9027a994c328c7a6868e6a81481b294383edda62773fd224af46e782ea3f00468515f6100486d94e818afca1bdb81851e62b3bf4f9236f061afafb3e399b93e6f6a295ae200c9bba5ff5aabcac8361c84f2e69aff8a8a21720b900d52ea4bddcfbaba3a231bb9b0dd48f0a4ef1cdd255b3524ca0633d04907ab672314c5e3173108313ff4a97df3772\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 5819a699691c01a7f35f0bb1831a1cb65631ef693f7c9ef89f1e8460ee2ec312f6fd38fe382b3bf4db8f5d208146c32c5ed2d3b13105743767a73529bfddb5753c8cc13148d41db97f69ea1dee0ef1e1de990ff565f633bd3cfd315a7dafc70aa7f27d4f6486a2f1e2711e7919c5c73c518069338c0ac984d75f58b00fb0eee0f7da6c9c84d97955137417df8f20c02b7893b5cd929ba37f6b3278a1bd35748e14086c5f7100abf2edebeab5f767bb83d999a61cc27531bb67e44a92004fba9944b9c5f770bc66671d2efc74e01fbbd2885c5175a1fd72b91937c324b8d99d3592bfb73efb9641b87949266de441b61d180e141de510ae0cdefc2160df918c08c53799f050ca4eeb3a8b6b5ed35b8b59d3acd13a600a8a137eb1b8c1abbf55f3e99cf52d7092d1e3acc08583b04aa25a052668bc982abf060ffb17c1782daf76fbd69e7fc9510c5c6a68bd525719be5b81d0f2a8b961f1aeac7dc13aeeeef9986c7a47b34f8b96167d79f7ec458fef7345c1c31bba599d09b3fe33e738bc7da1\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 636d31d8d5dfe0fc6ab01ef2ccd4602dfea62d386b002c429e7e846e7a98d0cb1d448d25be039d5158887ab46a9dd49c41537a89036a065fc10329df051e5f2e5c1d4436e84790ff6db4d3f31575e5f0fbdfcaee625722c5492fceaa3fb29d0a865200dec06e117b04753ca9450a7ca7f7d1a1176cc38ecab721864413a0d7a22d8fc1595b6cd0032fbf154fbbb31b56d3bf963761ce8ec9fb38bba3419716d0d39e976857e79b1faefd5f5a2ce0ebd94968da1ec3a387804694d90f37b34033c7f70ccfb26beffaafb7bf56c1b8385d489217458e0a68b5d680f9fa45382fd1c227ff3c11e3ec82426ec648a564f0e886e5b12e695dd2fc8465bd9d08731fb140084c79be64d915bcb4ba10f1edb4c37e35231753be2d9f339d37d7b5f22c91584a68a973f9cc469a23d3b5800157dbd72a8405fef4e444ff01f7fd23efa143c1887504e81773743843d8a73209a1deb66c5f305df539bc30e871332e82330e5b66fa6ea253b2b64b4c9781011d20e80ddd8cb83916834eb8fa696b0a4b6bcd\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 08e0ae3dc0d16c927c423f12a87313afd1d66fbd5d09f48a4dd1a8b52102bbdd208284cdd692932869803a5c7f041a4492ac2e664bb6dd981c370e0c79ee3f7c5c6dd37018986fc2cc618139fe3eb85c0616f0673403c4afe7cbca49c1eff27bbf6d7e541b285ffff20b80bf61dcebcc4250068e25ef5a8e7c3306e49fcc2a1ee0f500a3ec603b472082f12ce4a6a12a6ac66cd4da8b6efac0796e9dcdc66c095a6282ae9a32ad274efe63f43e725410e6ed4c480828ed876b76b71b1cb8c142d0c7a51dc202af796d7bb55cf544dbde2f564f31994911ec7307015b0da2c51abe265a04a74b9afd0791a68e725cd7d8b473296c5d948157c10bc4682f74d843ce72e9ee8719a7a49d9de2f982c5d4490451eaed62c305eae3d0f9cb3493bff056a0dbca8579b7b41dc8deb1becfd5abb455634569d58c5b5535ff1356ccfaddd14e0f9f7f69a7ae9cb9f4c0c9f661fde349facd21f0021423d3a9ee5031855dd242f27009090ff0c15d1655317383231799b18c01fad231385aa5020990f41e\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 9858e2557c6b99fbd84bc7eac3e31283a4efb351ff019343760a1e282368938e29ad902d3eb6cb29b35a036dfbcc7e06d2f1d15548df59ced35326295375bacd7a9d28a01b4e8acfb676d80b6295e19c6b7a259df56456e1df72f6a746e9cd31fed9b79b35d7a30a7aa257e9e8ac60ea886042b9194e7a383d1c9f71c84511faf6c96f7ae0e690112b26bb60cf7bb10f684e4fbe2a3a1b1c0caa9b1bdc79fde23fb758c2ba57880a4de461ecd2bc696689438183e2b9724fa68258f461bb4405425620a4d95c87ddd83e04be381bc743b05d26ede2ceff8a858636baadf56ef1dab54080da0f516307c579833717def053c8906d4f102448ab22693e7f52d5850193a40ccf0d68d1303953771a73924e4bcddd8486e1477d96250bf6b480a5f4b822822183694c52a2edacb331564444f0335d3b17d511ece59889b6d961767a3192d7f081caf7e671addb3757451776d4bd3b03f7b689843dcd59019ae4f292dba54738a88b86cc6ce3b123c61a446f4878b627a7f3585d8ab7bca9b258f10b\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 1294490626bdb36a31c93fa7853d93152d920b022f1b473bde3083a99e11aeba8c03218fa07d6c4a5f8b2504d2cb54505c40130fef5a2412f7a5ddfec5e2c8b5058f7cbde7ace0ac01c7ba8a1bd897e8974d991ad2b95c2f03100a34ff408a788c70ab5ec73b5356a4e3c7beb44fcb9e2f3f25d1c974ed962b148167684351dc2a223a174c9744b092071d58dfd39c38364f47d292651e7806ad7962bbedb64739d7ea298f0254244790e3971c15b861c95f00f65532aa1c77fba5c04ad078525128e92ed2b4f1269ae744547e3efd4ebb63e9df844df152a098c47fa492bfe0f1917ec973867c7491f64c1", + "72cf3ea1bc3f97b42a397e6ad88d12e150d3dbe360071a3285d6a68ee6e736eb4d7d637c649c2f545259ecd430b25b38a1618d69a4602ca8a2a151066f12c3807f5dc7cbd06bf095711e4483cb0a89c26dd9e4b0b03e05beca349f601c894f9a245aca3204584a9bd844772dd87b83d481c8df18b615307eaf643cbe856488c160e077458e899755301749d2d27bc190d68a5da11\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 8b889902d581f3be759dab7e53cf3419d5dcfc825d203c736a374f37ac5570da2b87239c938bd299691a46387fb47ca656bb9ab639f6736207e19680ad1a0c7a7818f2498ec98e4693c51bfe414fcecff4bae7afc6db0d72cb9dc447e2ce4ce9ff435b9daa98cb125d77b7c7d2fe2e39ba15122da11bf19d341b9878de33d3cc134bcb77b9963d19a3037a67458b17eec462eb0d7eb7ce69b71f41287d3b104b45757c76440f370dedb720a0c721c08c055c5b815650737fa478898246d36f7722e913c0913612e753908400bf6b456f269538102b778257af0c7c14339d0ae1ddcbaa357369a065c0b3627cade311a627e1e3179514cd3761463eab7f9485f6651793cdff282daba9b16c2f79adbd24ba54ce4890a9685ca78d73e8785d722825c9fd22ff327b97f38d5e0b95f449928114ee9756aef5213eb95cc40774fa1733fd02bf37cf5243e7ca76f88e7e3fa8d28a754b5adaedf31a91e6911688a6149ecb52eab8024e72e1bc3a98579d9eb242e08fc42bd491e3b0924b03fb95bd1d\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 46da0267738cab66df530dbea6fbbebbe904ad3d6ea7e7a06e39a3b5f3e38bf5856624185080fc756941b226a52c8e6126d07714deb781f6f7944f47147c680aeb0dce310c7d6f429429ac73e562510678c23042b635116174a2c2f4e8e8becfee1e4ba3cfbf4e2ee541c7f7c27b1916a2aa165cdeeaafb9f81c84e9754d196c3a9bdc777fc55d86b6bbd16270bc4d3cc75c2960f2a7a661105184b436a31de2cefad722a14abc1cd2f2c75738b2c81580fecff78d7d385b20d1a03d4aa2c21a168e13da18fd628e34be16d821b48136b6dcf7594ab3e1243c0a2a9e785fe40436cc6fc460879b673b068cd35a9114b59c2dc61fb875310e103610b74aa5e3620c51a257dcc3b9b0adbe774426ede0f779ea9d370f18a19d8844ed9f5d90ebfc4e0607a467645711da2b500840d4851e3de63723283bda8d08acc51a012699df0e8f5aabe269206f93ba4ca6597e17cdc01d2ead46b5dd2433b82237da01518ee3168b133b6a42e9a73194fcf9162b71d08528254c34b20d692e141c657c969d\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 39c1fd7fd0bc4578c3370787ea5a133e8a34ec9702dc1456c1ca7f8c3cda7bdcb8beed72e4098de5ab3e467f325141a324ff55af1390ff6f3d0cdf680f4319378f099604c9044025e04ed1af1ba5c74805265d8963684c7555cb835e8b1bfc162812698679e47b96744809002c805b75bcc5233f378fdfdf3e56593bfd6b0228f416f58b4c32ec0c2d32fe113cf7f3c347425b69e8bda1a2c5bbc3cfd0c1bbc609086d91175fab0adf050a8b3e904fc4a700d747500433fb72c55cdc25bd283d1bfa1db93604f18b8960127e9b7080227235e6ce234880de8e3c49d5edfa205140b8ea383e546e0bbd4c5dc59d0c058670ed91a02a3bee241ccceac20d434a442bf35ec6d5922196d78b080b1c14aca63b827434679d7b6e666db10dd9a85b2da60c6b47fc97979974f11b6051fe9378d96c78328ccf4e5cf5c120c2641b3f6b7abdfd0832fbcf59fd3787100032ae65aef2b076631788e7be1019feed9b863f39759525be659f3ec50dd7e9724bf6d09d8b771bc60e8a8e788ced8d945c89ab\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 530bfb86fd2a4b31587767d5809e5ec2002cbdd9121e135391392c242354844a9b4c8993ae61bd85810a0ed240203cc4be48ded5997832570875a7b775206460067b30df7c3b7f7af9d98e436f0007ce0d6360de0c1a4e75912b885d1154ebc25df90465ecb5f07a6cc477e44d3579f3a629bb49b7a19a619f44e6b630b684f3ac4daee5eb386dea0386593be825a696656e130ec0e4a4bd5411c45ade6ddb4a6284f343b0a746bbaeaf03cef31120f19f2845dd9a7fb818406b0cba91598ece880836e0b17e6f375b8941381d0b301d0ed1bf746c992649b40899d2ed2b39d488981970cea6da2453b5fc85f23c8d671a3c7544f4a7133fb500f5448da44d4c405bb70e85aa3aa399204148c01d1a79de3f784dc5a9141dcb41872461e62deca48dc567b984ee80097a099290e413e575411faa54f7f3387cd7759f71b8013ddcf9ff2079503ef802c54fb731e3131316c93182dead523f41551bdd3a96a4261bf6c3dc72a952ed4b7cc95d116741c653494b5ba8ed9aa565ee57ad22a4dc83\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 94e0075930de07ea37f0eca5023be15c472a674513654d837befcf17765225c73d17e93ac4c69d855027747c7ab81c6bfb3080ccd5b6dbdd41e2ea4871fe30131bf2dbc143ddad0292dd4156c60cfe5172fd9703729daf99b2067334af23a2aaffd0f74d574955c406ef8ccb1796189c140d1a45701c993737b9de11e44112c4df9a5b2c7ac827c9329c5f63f4bd740f3f1baf69a8fb6b69ddf500272beccfc2f24902c592b91de99783242fbe9767f3809b38368f04b02d973c761fd999b0c69eab43a2187d6de4fe5455e070e20bec5bcb8ffa5e439b04e3883804a5dbeeae652260a405ef5e2e6b9b7bf7e8018065a900cd831b05674a093650644c42341c3f5429d59fa3aa93737a6b525a80e0748518cfe19e6a4de792d3bf842e2a864f04da31a8ecd0b191ea656f1c2987a1973ba1b10e16b09524a3cd07c96814b395b29ae1a434e76bde8e0b6e4e29ea3c6871ca447fddf077f53a4c2c3499c7e96dc6de112cf28ba83d8d274ec03fcd1d570b74e22ddddece554b7645380a2a7483\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3e65342b3d9322ee9b0473f54f0c3be5a17f56f2cfa5a8168bcf3001ca1256be867d3a575b07c3d7d020037590aa10d75dd764a1d57a123976116286ced29b68e3b625c3ce0c235a629e27e4f8011afe4b383117a8bfc927a7718bd81ec4a156ef6ec5cb206c2f23941b595ab3e8e4a3eed825c8e2af444cc7b0ae0e303c8f109cc149fed6e8a2679c55a2f483dc64642170d0f62f0f20a5387a80c5ee3e72d275a8c3e18c65de6f9af8a7ce886b83d84cd0270bddbca64db5d6de42619ab0f37ec18594a09a80c0183d44dd3ec6b46ca4846daab73effe1d5e2d8ce302db26708ae9223369ba5c488bd11ad27751abbf994e2bd18cc999dfff0f65e8c6d6d04e229252a5d6704483458d7d094dfdc96cd5a7b0573a2e0b50fc14a8d291fc856e63d82343534b75b25298c6ab7af401ce1215cebedf87635ec80d0cc228831d26c40efa5997105fe4b3786d0a44c17be443a67181d35a5ee56da18b7e97db573879686a406c3bf340851d12d8ed57c0530433d655aea85eb3211bb7f128c91c0\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a7ecbb2fac0916fc1bc793f4503d496cf2683d1529632eaeeee4fc89bb8174e7797a8d78faa95a52da0c4c887585d61c680fc4d1224e02d3a0dd2b33031120a14be8ad16e267656c683c179d261f6aa6089a14122168748a4bfccb59ecb086c0b7edd342bc61d2a9a2f5aab2f4558d458971ca04672e513d3db5784db83fdb93816bf8f1b443470973d96ed20a7d85adf93bcb497ae07022db0f939028b9387a1d448b3fab2408c2754478621640cae0ee6af76fb6e653e4d418e83d431f7967e435b748e8c7a26384addf77115e0dbbf7cb5be6ec0d11b183edd6def81d0554a2e7fffe692e3cdaa6c138cd73bff960f047c0226ff0ce1abf9d16ecca4c3b998ae8ab1fd1e35f80b04979ecf0338497d1df5cea3108bdcb1d0bbb6636ae234cd81e6f2df123d263ae38924783a2a11c85b7605808e84433dfd72d9ae5b9d82fc6a8cf385b0994d32afabf3ba62e8578ffac2073d81d69c808a2c9f46b1115ce7f26885d1be3052ca23e2cfd05e92469795bbb274c4cca1b992612d0610c27f0\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7c2c6b135814accef0caafe8a22b8cbdb832a30c997edfd33e01a9578e309988322f08c64704080dbec0469274fcbfb131b4388cc1181ae2004a63cfec1080087dbd3b9e7409fc0f960ca721d456755f1bce99bc91ba36c65e747e4cb693ec4253f0ca37d8b9d64d5f7d0526ab809a4f476e6537263adc00f20d4261d78e5b6f22896706c665e885d5283716dd959400d2a7cb35974a3a3adb1a4bf3bf36e9773ca539787c0f6a05d17b75837452e247f065803513eb8c6c995e989a52a5d48bec77930a91cdfc1f373c58b344cb1700b7707a1801a758246267c8ce932035f8a93241f57e9ea8c4d2dab3ff4c5fe06caf37e5c996e60e7bcc4f3a6176a69e61df24f8cc080b7489bfd8395d30b6a4cde92ede49a26a0a03c766cef25ca6bf982fc3126ed7b1b1b2bf4a7ad9ddbe1a3a456a6720953460cebe6e1bd5c333b9ab2812f9b47452b2759436137424832753d8a97fd456603c5585620342fa1dd056be6247297d5758529c152d24fa2644e613244dbb66815278385be78cfa4224b5\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 27b9f6f0a34cfa0a71fe15c15c910b7c8f2096225213e7021649aa3689ccccd5e2041578ab5be9d110a05456fdc516c5675561dc82a23fca94cd66df6dbd4b0805ab85b57734f5dd2d6efcb1a0bd8c3da6f8ae7a68f54e015a324212b916a0eae4095975f76f509ea383edc4fd888217abb893693f821f4a3c72dff39dfb0fa7abace8c16151d01bb81be374122f0e479748df2c82ec87b443325ba908bd00b2cab985e64c7f6a1edc62787c64b84410d93ffaf6d9a33bf3164e4348d7e1afeb6cc7d3e8a51d723ba6ff27ff5ef1358001ffb8eaf651cf48ca5534bf5d86650e73b540226fc2a2c1a7c52e6003d89a108a65e1c9df183b47d1753ea697f05e77b3a13cbeba8daf25683a6bd423b2b7acefa66eb5e6d08ac1984007aedb7df5d4fa1da1aa3c6ea5f383571aebfa42ae1d42060d996cd9dcbcbfa605f002dd7ae653e7c295eb3c3d03c9f6c479068456a8b0087f0c61492ff7c125e3bffe30cc45a136d72c75b047b246dba18ebb41f3fb9ad0216a09d888885b4402200291e6f1\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 39c7a8c06ac4835655fa719be214556e0adc5a00ab466d88d33e694c30882e7c41", + "d7fdefde724fb8255a44ec4bdbbd03d1ed528b4ea980bde20717349c0f2eb78141ed6f4490173e62cb2c48b76357c7816d1b0eb5f85391143d04cf6a100ed6917c46ec661a35860b3210ebf71bd7e6b8e4b8909914226ebe925c99a7a5a66f1d02c876f25d80ad4482899193d9a444a8a1d0ad8d5afa912b53995dc36ea89599f4f181241a6f4fbe698de8c7c794a82f1f576c255e701751d3815f5b6fe93efe9a678d2422ec9a4a5d090beef2e552db07a4d146f90bb4cdf1ea6fb844ffa1948542bdaaece102fa3359d2bd23c6447ddd64dfd7e4c94c801c2b6ae17b07b07a4dc79bd69ce5ec46aca637845a0185a372feb8adb7d60996133b9c37c32a9ad869ff5534f39aad8701e3487e1e6c8fb9ddaf71a1c34374a09ffb85fe44790ddea79439bae8eb51ce12e5abed6af335ad1ddbda07a8507b6df0d0f3ce80dec487968d29d92a139eb1d5ede5c28240320c5ad9cd0edefb69fd156f0626f6d45d\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4c8a79462d5c62f418c83b35e67899db78b04883afddd506855ba23e7ef8c5336c1492faeaf1d57444d1049bd008c317fe7249d5decc09fb4f39d7858edd097c3949c53bca1a439674a61b355ff5a9388a60b7d5c7255961af7079e72c07fade552d0b77c36ea3d2f0c7c9985b8ce478df8658de208dbf4690299db7f1d32660585b918af94bbedbbde7ae9444972abcca2f6b3c4004e3c87940793f1a625d932ba14e715dc1b5f9231e0f34956b2920eaced888b3a320ec8376b059fd48ff369beb1ebfd32b9e9c9623d28b54856919b3af12239df425a055cf43e448541af94b88a223a90580977a72782b831ba0a88877cad65f8fb49c68d5e3b2f6224637e61f4b356fda8b8ab916cc31b18e6f92d33e0e27971a480491fde857715cc55388b281e7d313ebb0abe3337f7d4544ef9d144e402f49c2b71eed30f8ffe8e600c31de5960947bb07fcc4e15ac0d7bf00bee0920c9f092c8bed16ad9ab7d752433a96dbe49ac2cf33445257a51dd347dd77dd5ae0d08b223c457db3b57d727f52\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 93391857ce1fae6df31b1ad972189803a1fc3ae91b89a264ff86246d6efbdc599003bb7c35814a4215dfdd3932834d4064b497f464fa93054363f1fa5e365825d1b87881e125a50deaf22d75aae32fc0fe1e8f3115f7cab6af0c2aca54d6f21f5a72fa77a0731c9f8ea82ac2e31155fe56a7950f61fc1b22c274203ea91b28a4bba0a925ecaaa017b9258e1d0f492c24336334e328054a12df916e1e4108d0b7e5d8b2bdb3d4a10282cc1653b9df2a24a7ecbd753cc7677c88c2acb7f741e3d56d670c226a827fd6b19aefa445bd277eed60dd13619427a048616dd26770ce76a3031bf5856b50f0ceacc7bbef257d86f6e9fae62aa6af550c9d526a6076d1de77a9097acc15728cbab9fedd1428c33a89e07c0a49dc89822558da1da6db6f8f738ae309fec8f033ceda8773ed3eb5bf6203fed189c3b7a774cc5f44073dd0db9e4a614bf7c8005d5c6e022fda36b82dcfe66f4679eea23269ff39213851798e63e42c1ec5be20b3cb5e20787597b43248d4fadd1c10cc94d066639736b7781e\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1d9a1575ce2cd06e5f160063d03199cac5e912cea51439f738d98ede05aaf7b821d8b26082ecaf4d12fd01d0f64be9ea2e1831388cdb5e7c7564b73146de8f9b5314ad6738d98e1053ad0d7d594425043ece575c75128888d0d7b090ba5d5e008be46abadbea23c9b7741a023151ef281d99fdfd684408992a8aa9f2c85376a40e53d9d223ef4ced563fca832ef03bef29a47bf381eb6728830ba37c69a99568494efc85370e8e9c3fcaace1a59d6c98afd03a0e8bd5da2f5c909df5710e385ceac35ab0fab92a6cd918ca8d32cd5d4bfee5dd644e0adb3d188a5d0e7a20a305bda34ec10bb65c922a0c074e8427cec78a590c095a0c670cea6d34bc7a88b2f1f06b00b368b8009cbfe6a14b18bdf2b01caab7041d46e6b76fbb1f63e9b309f60fdb4f1a6033a11dd7dc1eb15d7faf922b3fdde28796c44e226633813a969ae1fc54388525d0a125414060862718bd0ee1337de2133fc773d06bf83987a22e4d2e883765e3affe55ff8d92771da79ea0898258f0d7e858fa3937ff24f122669d\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = c0177318feee842e802480dbe0dcfc6215d75431a30bb8492cfb1cb84f7ebc73dc37f56cd0dbca1f6a6516c6eee3de3addbcbd569bbc79d533a4f5955d95babc717cd4c8f5039ce49ce7dd20aa44bdb96a394f8499172079f8ed20c4ed780ffbe11cb00d04aeab80c882eac517c153993892549f2d4203d8e3fdc719fd745b06103b49f54ad51b6dfd0f4c94b08b7059875073ac11701e16af0b73d7b305d9a420fcb560b490d01c4afcc52b9b21a467e95bce62da8f559527066116c602bbcc29a434ca04ea3227a25a07d733f1b867040ad1c85b001904c749505166635c217d8858e637cbd74ebd1b86a400961f2713cd00e64947c2b5d2b97a4ef795822eae56328bc4bf8e8c9c8bb8d759a3743cbe9d368d985299d8338796ad6e24df7eb7db18147450d2db91000c8667681b47aa9f0f2e08b48aebadaeeca32976dd03ba94ae72950803a07f566e091670c83c8ad01cf1a2a921467010c20975e1b9653a7b56d2137799eee863a576a2275c33320445307670bc62fa039c7cdc8094c1\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 5675e16b96e961dd428de891451ed0d23706165d65392d277eaf846e24f0c4388536b2b52e519c07d0e10686a164bed5a05314249a77f77d140dd16d42fba947bbed204ef4c8a958e49f3aa4e62438ee333812d6a9719ff166839e467080d8762a4268fb575a33070209013741ae8ea0c757bb44d12450579ac8e22870569c6892edf1fdd0bc12a7823b695c4c90e93c3cea57c2fa004eb3306d13ba60cfa7aa3f1465a232c3f4cbb765a82bd59551d0f130137829871bd35cea7c59cfa12f188c91dfc214d8102810a7deccce40f204562993633ba4669f4d7d02418d5a66db59af8ad001884969b8e00951492bd846ad7db619d623b3466cfa062ae9282a1cddf150e761c90a3413e92f2f1fb2b5b62d410cdaf6bd8885d635f05f20331416fc3808fccd342764b7c244c1aaf78fa7a1166b1b204058a16ab750ac3fafbafdb2610f52164f75e7cff8a4c3cb899ebd5fbe1834682ee94e6cd810a4015ed7f0fea7f1494c5a477b572d172056629320307e8ece3f72de5dc0652e688d79d154\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 562cb29e3b27d68a9f8741a57006296a943bee15c1e0cff97e8748ad822a321234a15fb3b89f4e07c1756d693507461172981189e9191e0175c71accbc258d3e79bbc627365c95f19fa416aaabf223bf22fbfd46cb8022a88600fdaf84aee70e9c8939e24de4e8a5fb2536c4fda5e3e3d71adc377708c1f4d7982c0c2267265d4f85d9e27f689de2c216a21239d6d4f95dd30ce102da43ec1b3e72ee5696db8c63cf06d94b8ccba75e197b2d26350d35336475f66de615daf8c1900ba37d7699ea881c0f7af84e936c402c08e15d3923733aad0894b4e78216225911ceae7f4c770a17d90fd7178a196050bef7218d7e0fe7fd22eb5c3854c806a5cd179e3a82b59d9b4e9e2dd1d4cd998ed32ffbf19a91cb19149c948b74861fd0e92174c2f35c82c9232a8413adeee723fe489dffc8aded50c7716403c02549802e083f16584b05e3f67a4e726dd8ec6d4adcfedc0695a47ab75e6d0b0486e946b6485f89162349eeeb88f20dc3095ec5f45bae1c2b7af4352138e864e6fec18b9bbe98fbf4\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 2302f69cbfe30dbdfb830918913fb556f2634e268210efcd0afff8bc527fe30ea1dc36833b01fc1b7b1d8781913a5004a24c2412b9e0713b84f228b6b08349eaec2ac6908861157576c89bcf472572be53c0075e48534d335b954f46aa456c90653912e07137a418f8eb59329996e86fbcab8e585d80b7a8f97e7aacad3d08d24dbe30a76ef8f47788d36926e74c0f24df942f73fbdfd649ffe9a952acddf3fd8ed9aad055c3a950e749dfce25d0c45114f40dae0a449f23d7915dea8ee1f6f163849affa4b7b8105badbbffc5690190fce192f4a647b81b14101b4fd9b1f0379b08379901f0908ccb48d5c88e8a3d0b6563bf01117ebcecbd84dd61e6bf05b77dd2a3c63d9c36a394843df28b8184de81cde4f381eea84822002008938d3549550cdeafe31606fcc282ef2c2a4ab90b437d0975a6d576fb705e26131bd07add5bcd34887496b653f3e9c2a7760eb367935cc8052ea896c6f2023f0d2a5bf3267835cb4adb079019b8974426953ef1447069a79cdb51fe8c32fff14a9bb8f78e\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 92218f94fc3552f215e98d21758992429cb17fc3313f780feea3f482d0e32cf97fc8832205e74286e69a1fa35062b984635687692d15e6050376afd8e8501b4a07e8c61006a2fa6eb27e2a4c310f54b907808027eaf9cb0530f8ade781c4fa9095a41bb6630c1e0973783eab65cb0849f9c8e89f3c997ea3ab930b4fc629028dda3d5e0e7dcd99b2951282c31b8e3739b6724a414dbc254802e63a1a6a268e7fc6a91934cbb27d9cf0ec994fd02334a7451c3658e7ab13aa5dd27e81736c9cb316679eb9a3d3f87c3739ca07a7be08a0402ab2883d860867a4eccd2476c8d9e37e2ec214d6895664bdda7ce7344c95622791cdfaca32508c8b7388391846b720659de2aea7bbb84520fae9edea66638270e735677f175f115c582f8d76185e8edb3d105e3d6c0f490ec486f7ba41f750add6d50997ec85ed351a2b14a4c328a41faf70ff3e50fd4ddfae6f9c74fd72a7c1bc0df045e31fd72f04b6a797e0cced07bf2fce788d75ef6d783cd6e4eff98c49e99487c76ccd4e08ea26d36c29aae1\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 55a36002b43d9b5a2f99ba0acf767cb04b54b7849fc2443d123bae5b6c6b6fb666d7ffb96e09580462df5fc560cbe9744c166f8f43be98b7b61ab71b86323d771eb6aed87ca4261b4e4d76af84813173c01cd82a87fda653c47f3700fc2110a852def8c785da96dbc779615335ec871a31ac3590562e8f50972b5e217d45089a217e8b0b1905693e7dcd121542d11c0083b967b04a8927211ce89262329ba2f7875412b8785ebe47693b8f3b76f98192bdadd3f4359999d48d751290e87264a5f2e53ef5814225931b253b451a3246f22ee3fc7295806ead7992bee92e74b19dba84b1228a8fcec6fc0729f4840d2b467956f86a916129c57025c7465fbfd760e0ddfb480f74", + "8c422c08a98fd0f73a5ef04b28fac58355e6d9bbeafe84d0b24e6ba19ed317bba9dd6b9f0008d5d150b3a27b839ec2bd72205c345211c99c8bd92db11c1bc16415b082f0e6f23bfdf9fb00b80a6921a023cd2d8565d2c98c60b5d44b2593126f6ebea96c6529e54d3f2a503262bff664c955d6435185247b32b9\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 79ae98a76ace727161e1ce51f127445bad0f3aa45443a099d246b3e04057097bdf2c99e744fee3a55a6feb7f386e89b3b4efca1cd4bda07c0fb4a06c3130c9d23550f56899480f4dac7b74af496e74271eb23f96236d61e12d5fb616b3bab8c53845816efde0d33a8f041fd0b8b01391e99811bc4723941a0b5cef0974eeeb2d4726b51e9a8687709788abc5376374af650724ba6aaca36b854afd09fe978de357de3ff1cbaba28b8afc24887742656fbf6007f61715e9102aee9c1544d8e7300196f5ed3d86d3e665db7b8f98d16d249f92f34b0faf3025387c31b5aa572404b8d3338ead9d7e4a9891f0796cd6866ae0b34ac57592ead287b984794d6ce7da2c89ab5b352b79ea94f8c0a47e03eb11fcb7cb55d2d00a88a09e22b9b8d5040003e4a8b9b5d411b21673ecaa59424bbc59a2e564d7d7fd8a3730c09eeed6b6f3f1a6af60b9e96b2021e27df6893a8c9c7bfd394c7aa02bcf2af96a392497ef1587cc271755b84db15957d30064fa1be2bfd8bb46de4285640e551bb8cbb843ed\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3894bf87b1af9047d10bbf45a65671c8f96c5603ec84ac2edb97684354cc7e1ce2050afdce800626c238b3de0b7d94e59f03c1926fee2ff49b52b11fe64c8825eedfb9fedc4b58fb53b9bed5d5f0447514e6e5af4dba869632bf92051e268835883d16f08ed8ebbc9ce5decfba43acafb72f8776a2cfcfea0d2b43e17d4185782cefbbc27a3a249275cf47456c1486fdb57396d5ac0321c6676432d25ffd946ccc781d521c67995493ca3e6fb05e46a1b906cb0e48096611383a072d5a2b0fa58c003e5c58311267922bdb4217a19f9405b79d0fec5a177de5247f1f939d5b9201378d09328aa98d1e5a7e1efb63ac9bcee721208cabee3e488a4551e444d47236f89a6846d1459abdbbc2096cd7dc1fe69bc3cad5ec7ddd02359c6b96398b455a39022129ca179e1da702fe7019f9d73b8a8bc25fdec727bb70dc1e69e57faae10c8fe6a71fc903b1c2272901a94fc2721fdd8642a61666211f8557bf5f184e524ce64978596e8477ec4ef9abfd9ebd170ccb632b76da9d015d3d7f3306a0aa\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4bce06246b965920ba5768f11973b7773576c8ca811031d091fbf88f0aeeef793859aeee2220a543df5dcb0a6932ab7eda80ca2d9a45687d00c570c0494deb6960424d936a21664108047a4b4f0a3f120d337c7e010e56098e9b707319b1e306a499843d53ae351db6eac5538a4cef9d49660345bcb5bb18900381850b371ad17a47ac57860d1ade90b839402c6bdd8479c79e27fc9cc3fbbb8ded4348da6d70ceb8b6c95d9c8efdc6fc0a51f952ba0e7dcd21f28dfbd39362f2a817c4045b1a3cd6da4c2bfce76516bc918a11dafb9f0c4776bf3f23802b38be8d03cfdc6b3551998842a028ee1585a6c232409469a869b3b144d5d02debfefe09a8e14d0e915dfcc722fccdb87e055929140257428de416d6caeb2437857d585ee6c3a4eb64a5d8f51df2050f28286e3e1987c6e3e3b22131597ed1c83410a2569c8d7cb04a80ef8f37bd043230502987013f560d7ba865759a01f588611d9a9783753093d87e3da0827c7903851ae9601d1d0e7766ba645a0a386d49ae2c5eccac6667f449\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7af993a700d939dc8e6b16384c311e092883680d4825c26cea5c25d4b738365473b0dbd01e944d84af0f658993b35c1dbf8a657cbedcb1e4b003694aa401c8e568b4e65c9646cc861d689c02f4f1b176acb79aa8eb9006f0f68da78f41eecd4869ecc576f849e9a20e6c1132f9af34eb92da154a459b5a3034abc8ab4c5b26d8721b89ae1099f88c971a9cd58c28369a9274bc7e2df4eb2dec049fea944ba505f61f3d6c4d65e643fa15ed99e915471d2631840ba05e7e05c714b84f102c8fcd94fae291ab216f0845bbee06a5452ed71d9e429bdbd50d11710890673c28de3cd07448a68c92ae052256837429590176c160e7eb42371753e778a6728a40dcec33d58d46ae03ba97fe2f337288a7ef67d71a42ff3944c1a0ff29b8d59820e5b3429342ac74f2978bcb4b56d455ed7b0f035237863f0dbb249f570c591d46a67ef2ec54bc9fca010d9b6c018c415fb4eaa81bb6fad502c273e72bae7acf4b4e3497c9d42bcdbf731c0bcd04604d85171fedc4b750b63d31fdcca389b6ff7e6dcb\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 1123e2e0acbc7c8816b6dbe2af9359a2e0b6c10dd522bb3fdfae93855ba73a95961290ed808b3ff8eee8a9f58f3a77f05d03ea1c09d849080c415b3d4214a706692fc72692a75c07b6bc21b9ba4e79f842519b1a5c67259f028995d34c993d0ee0d71262892e3e76d677e838a308a2b4bac5fe20a6ec073148b1a420d5eb5bc4f2c9a45b10ca993d51be5146ca9ad4597ac6ef522e0441e2977fa6470545b086d434d69871561033419e8540299d92f5425e91f82ec902a2d2f5ae8f9017131644107d120786802f30746a116cc67f85ee9676d1738dbca0b360ef257588879f2f6a441d66d5aaa20a98ed3f57a73c3b96e4ced07b8129b50865efe1b8e20f0b81ea5cea294dc99f67cb515a25c646b749b2cc3cf18a41f1e3e66d77710b1854c3af1938a74c991a7e7a93971acc3fc3de3dbab92a84b498d711718106c98c3fb39d3c6eaf5c3621af25d3872e0de8d7588f742183918267458e5975bf5cf0f6c43846ccba256f76529580ff9913776600d1538002690dce5bfb8cc3356d96d7\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 194494470fb927c96faff5627eaba83b85cfec16ad38d166a5d7858d6c77580a4a8bb94c16eabf9b22e7653b7957aaed312695df9bade2b4722dab393a286fc2b734cf6f7876083d42f238d0af3082eaeb85e61158e9dc352bf151de4f1329e7c379b40aeb312fe331df8c460c423ce08bcb6290d7e772a75ba6679eaf4be77227c296246eaadc05fe3451203479eebc0fa86ae86ba9d3b42160f0f58ec0652805000ee8e520fd58f80421ee5e78436ce64a58a8273d512bffd3794b04b37a3f83e7b5805d19595f61d07f7a4790bbffb57565b27e8edba4273339ca62fa711c22ef459e78429e9c1f06f6cf8c6c8d5e0aec1bb88bd29a516f6bc1789fc790188c26c484231a78696bbcb181f608b08084426e49daef7d7cd080ff0a82f9c70605748bcba1fd4ec4976319de01a44b76097f86e627c37c37e92ba35bdd51027651b47f9e87e8490f7ce2d2ef8e1566da7f3bfa880e98564bbe2f80c642d30949391081801af2bd79e4a9de3116658216b9bd7949752661d7ccb7ca3ed5918288\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 9f6c7acabb5676d40357d7f58dc188aa11da3b032e0fec24d1d377e9dc4aa71d52945873bd82a6b1540b07f6bfa3158a11beb46513446cfd8af28118e693a4f700ce677988221f2cb0f308e29b42feb8c5ce768e34a9ce889fe5429b6b1d9dd5cce537c311228bc524a983ec83d5326cf1141cceabec8170a8ef00d3e003a86962ac760d6de2f906499e60ddf6cdaa394ff2880c4cbd7d658e02c3babdc8c39707e4ab59ece61eebe3e6266d635e0d594e1cb114b699022149b2105157d20c0d4e289c8558348820250a03931033b2cafd400cf62c21a617b16e83cf9c4a79a1df59101eaa180d8b61e5ac2c387f190bc5d01c0766641c8e796afdddaea9a8f625a7eccef21cf8c9bbb391f13fcab5f253f598b880e0391c2e34a64d1aeb028fcd84a3158f692466cd953334db71f4512030534f31a21eb65b459969a00307e9b2ab828f6e4966fbcadec694a394a8b89f94ce1eedd3d2731fc01395d30794ac2abdb0b60dfd14a46b533727d137168fd5b42183cbcb79d38b9259b725fd2485\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 315f909380797c58724f05150a19becb372342fc5fb8f0073633808be07fa49be3cccd3892417c925674707c1e36e7188d5f1313eadf99a9907d6b0ba2093ddaa28c3e030d64448d935e2a56b7d989475a7a7e577f2329c6e8e2b2ece2a553679ec90a15089b494028c914d883c460eacaee1eac472f000076a4642136ffd2558c5b7033d71cee3a592899fcdaa05ec41de962f19060a32ec686b34f85b105a413f3baa819bc6cdea0f00fdd07900a8b041fde463d7e44cc6c45c48f7a1974e76e0fd67eb495b6448d739fe091a99eaa79f8436839daf485085253ced9ae1d5ea2dd5135fb5caa44d51d728c4e70479c6f0c239fa585fa557e08062edd07141754543c5af6e554afe5b54e7be52d886c83c7ce6ca9f3fcb3e8329816cc6c0d046bb1daeafb271ad6ed3da795a1b8fbaa3a056d407aedafb457045b6e067582be605a7abcd4643bdc2fa492df1e0fd43cc3e8cbac05ae240392ea02db489e6a5561895dfd14f47cb5ec6ac594427642eac91cafec05182f3415dbdfd12a348c3d\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 2bff6effa697277d05bb0a7c6a7f714a0c2f23f9870f51c6b2a678d3b06f5c892d75f377f24fbb14c3c9aba52ae06d3741ebe3e116c0d49dc4e651251367fc63720c8553646bd7465298ccb7b4bf765607dd05052fe5a660c84e0e516aa67540af1ca35befb2250602742a53d4cd97cbd98b9136049336e553c3e7dc64eb39f3d96be6fb1146c16f2180992d0f16fdb9a4c9012753901fb7b293e6af23187c76d9ef55a6956b299bf9e9c9c27c9a4fd524360a4a6988ca1168f35f8bd2038869d77f117ce6d20e710a78b363973a08a5eb091a5ae7332e83617deca9911a2b241aca731624905b91ae63a87045bb2c356c934c70a6cc22bcecd7eb26adb6f98b1c1d727582d7329235a438e1161dcc01f82f760833bfd8d54f8d856ec475ef342072c3d6066425cd0309c4bed7a0861afd7e64b92cdf969ca4d2655a2ee47679134fc2ed39b41cd1cf2665eaaf1e21e8bb9fe6f19b16a057d8277d68ea7a240c95978deedff766e84ef46490720a3809e3ce2a9994af4a04de2059c5a393cf3a\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 6e8ac44ae4bfe2af008414861bcdba58127d547d3b4ba6516ab18875ca3dd015dfe303d54b50b2fa8c001951d16e64aa9c2b14da674b4547317f14d2921f1f22", + "ff72f1529dc8074725872720f3799bb9364e27add3c4eed2da587a6a8fa45387a80a68b879b309447874b8d81b74c69486c53aee543ec53c02433c9d405b86d0bca97b34f38db3e7536b838a87c2e007cdb675b7c93be81d1b102ef60672b740f3a9c8124885b6228bb3aae713b69224c5278cf9d4b23028d8fe0890f9897b215929e110265d93b66b98357bbdcd7efd51598012c313b120233911001a8519a9d98b742650296f8c5a67ff0fd0446b3006ac254cf8085036bf6074da96230fb0ccd02fcd95fe4b1e8dc7cdadfa2677da92a80efe36081333c557a4704422c3780a00beb6670a7ca95a30c9ecd78d46c88e30a081d0445142761ffa4e8c8682610395d2de0602043e6567a6d62a77cd6c697fcd362b13aee3fa92946036086ca3b002f1eef8dd5550a4aec137a6f60f7d943c9522f55cdc14dfe58639b17350a3\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 83dc093ac399d896efeaf13a4e5b9f5404592c7740af42186b01f2147e3de7f3f46ba323dfa3dec885e10d92c4f5871f50861dad583794b25e3ca2b68eb1458ac3640c7d13711d3338dc509f10df2c52620e0b7c2e2a72608fb52b981b6191765ffe4e675c6a7896c0f026598a3b156f1777b781b6ee688ccced77b95b61ff54b1bf492cf732b9c7a8212b18b5c899929acadc622069c6b4b905add8de54a2332436b5e6f6e16d572ffe46fbb76067e1c67c7bf58d449d2cecfebba5cd7f8246d6511cac17b106e7421c6c65e704a2496773fe86b937265cf27e81a37a3f4f5b21e47fe214e84a9163cc89781468b3e5868ac3414dc112f0fe159d909fd312382a8b76fe194c32bab360d9d694fae4a1c9639103556a7d283252bc922d889c0d5eb6cc657373bbb02119cc8527e6aff051d555ed12806f7b22a5df8bf13c5fd35d5095ac6af7e106b02d4b18dc4400d2404a3221e1f1c8027e722ebcea1d6271cb878d0e6b825f4e3a692fe7eca65c4287a63a3586810c3865cbd7fddf450f99\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 6823574bd9fdd7e59ced33e5660e9b5cdc90417fc350cb4535d78dda72c07ce81ac1aee37b90a85ae15f8f59be9461e846a45bdaf3e5f5868b83d1c9465b080d5bffeb933aa9341b6d508b059cfd2e62dad31f35d7fe9058bbe65024d0f73d43a3450eaa707957fc452a69ab9a8ecbb8ba002c870950ebefb06fbd9399bd08d64f72dfb4b2d3dbf662daf7c2c1dd8c3c445e1402e2009b47fd92c3a23864a495037b7f2fbc3adf19355f171e2a9f65f5a3a2c45b131e5398c434ac6daff018e5b5e44b9cf1564cdbab39f407a334fe1f05ecf84f49cfee88836d1068012b4fac6b50f85f8b1a8c37a333028e38f719ee6445a9fcdf7bc0fabaeff32dea7e45d6e1c12003cec8dc5680be584ef2cb478b9988fd7484e8d374d825a95efa5163309eebaf962d0b8ead00b4b9e4791dd5c6bd26c085c96462f2e4d19cfef3a0a97cfdbceb8c6ac2b45aac1df4be4e6c775021c6730e88f86babd96bddeb0e36d0fc573c9ea9346d6a93bd096c8fce248b93dbb0ad00596788cfa6fc0635fc0d0778\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 90954e5cdd1888a510092205c3f66fa1cc9ebe82b14e80e0353ffd417876c69701801153402aaba503e98fe9020f54f717b0af8968fc2524a3081e709974ca8001dd93e52fe0d1782e3eba03a51d260582e4222937252e454ae7d5ac8ede7a4888ff826547350c594186126efac622a44e9731620a57cb73de7e29bbfd727c2dabb6a5f6cf3eb0dbe072990a8b8ead67b8a719e5734d7f4d96fd674c404491becb4b3ecddab7f872afa3326b7e18d47d3332f654793323e13b4d9d2f77871c7ab50ac4d76f57fce635da6656b1e09b3571b8e841835023b2226a4ba8cd0b95588b0827bdd4b6f45fd183100d327777c2bdc0a0d55f0e4e1760cdfa7a2b701f06c0c5800fb49bd48d57a077ac90f1726ce2ead834fa1bdf735b13fc234a07685537a5eb01ec44ff8dcf086d2de02007981bd2338bb2b455a1379d72ca8a552bab119692b9ae1f2851ae5e838c33d1d2255114cb3223edc18512cd41057b71c4185022c4765049089836d62020905faf3eb92ba80dd91db64e51a75dd4f206c140\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 058742fca1521993d7e3bf04b3369a8cbdd505da63f7684ba9279dc8db6841342664a5d780dab0b87cde7b2dea6a0fe77ec1b723a47592ea932f895faf2d1e8dd8ab16228942a217db65d51c5cd29c05590ce9ddbf6f19111c9092e60e48ac5ff720e0f76cce93c6de41023033a902be28cd5c0203d06f589e7b63431dd741a3e227709e73793d0e2bbe0fd22dfbbbc1bfd8343dbdb8ec3614d771f1c58e107b567b81105546a3b2b54d3b56f8c5785d50f3cac892e03f7f879f22c80c4cef3faceb1038234e6bcdf2382d8565d3ef3ed668b05c64e08e0c7bec759ad77c6178161652b95142ff1bb1b3ef0d1738e444082f113a448e4aa7d3bd182ef8caaf6e2d07448ef5ca7cf7933690040d6d41b5d19378f41bb9cc7e659251bb63444c3983377bb01a176828dae9b255885bc0d872d33a0a257940f3b30b352986f201646efeec10796c6bc43031813f33634b6450a2d9a9d3d96ea95a6660caba876a0f311e4b083b25e2fa9f69e405e59fe81d337ef0b27996e76c816bfa84929b8a73\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = bcf07d322c37a507d2288f6a079b037a6cfb1b5bbbe07de90c9a13b00d400f94a03c8101a2f9a4ea258e3d8ce167fd40e48e5ac42be2095302071f23596474e22d2b9fc20800c2cfceb3b92ba847717eeeb030e4304a5e1138976166ffd83467ae7790bcc4d0e1d093ff09b41b62cd389a612ff3b9204af9a24efee6ced39de96bffb1ad3636d7aba49f8deda056735afc848381546d9c2aeb0a72ed2602b4a619ab9a534186f8bbf5924618b49cbc35bb021e575c68ce5ccd886ad2d0c968292f2dcdd411826470b34717fc2853f52e10307136add9b68f7c79c56d992a08b461418781ce66311f8bc37abbb1dbd3551f924be3b1edfa7340267303cb48de616e7cfde59111dd1f91592f268b20581fd1936d8b3ace85cdf3e0d4cf55e170ac99de5bf5df69b851024858f8f3bcebf3f45d7831ccf72016877ac59ef49ed5d81112a2fbd9f97e40ff1e6f4cb42511dc246a75af9fff33bcde3ba9dfa3249a8df3c8429e700c1b3d701914802b5edebe909ef86b8f57b556da3b1f4e675711d9\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 7c6c491e6fe9fd16192b3baf32127f4f9f7dc21b1d2950e67006453f472cf4ba3fd7bcd7cf6f4fbff726b4d757bba414e1a848df8759a0ed67ac8275962c5e812a0e5ee123fc87a0bfbd9428e9f5fb0b484bc0e28b507606a71a5df14a02e968bef67e1a55f66bf54260e5563f8cb14d98ee2567a7653ab93050bc443f6cd857ad4e26e129350cf283ff7c6141ed0a5c5f9034c5e3a4a740ec1e80017c9f2806e87eb946fe7c2e322091632746788d9763a2c11563f871cdf0917ffbcaefa858e03503ea4ac73c6491ae12e9e32f67f217f903f6cff2b3f1beaea6d2fe4aa82dba43d07fc1cadf48f4891acdaf8e622edb0c8d7e0eb745e02f39e69efd6803105fc8413f16e891113272b1c3800b336867a1a303cf8b80527611fa2328c444d293287b226ca32172af6aa79f191811dcce404f5cfda1084e8b8cc8f26c875213ee3ff2d758f58db2e7eac571ab62d4095283083e5287e61623ea9b01be7b2ad31e887146f73ef3a1d70e86428b33db66de0a0e12d9b6960c00d9048b266958ac\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 43d99d627869bb5cb798be4db332583afc162875ef4200b10b0f019cb186a44894b511fb674ee02f4adb6e2d529ed86812e559797a7d60512747cc6a135dd708bc12f1acc01aaa6f6584a8f9c02351e23b77bdd2999b79660ee956e9bac5b98647068c0c6e1c5c5907f712b6993050abc872a217699ad5468cb420b90f5d74812e9d9af4e5a200212c01469799de9669f28d7b6e9726518a2c4fbe5fd1ec5ad66a1d472e8710fc5559b9e75d3aa625825886e9045c2c8019be254d2f11d3a55b9a3fb87f083a009a7a6634198fb9f4e6521d2706e3192e3e669fe201e60bd80574b5e8f66e8ea08740f3b0f0f3cb78ad90ddc95843e42bf4baac25adb2b57f667618ba7bd1c10b00c5ec14dfc3ff1f8f5c036ca7aa149f71e7560f1b1490baefb2b7d656fd6ed6e9115b9b59167a304ab7383e091c57f57e3bcf1ff57e3a4b99192b91f4297abbe9a5d94b6bac7fbc9a5bdb64657949ff0040ad276e2d9de21df2c02d68929a6c366ba3d0514b8b50ebb3224ca32ff88511d35e5ac6e51a28ca\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 544f8bc68d5fe49ca8188815dabf1c434ac7379a3796c5c78fea5fd2a9e36a71d50a194724f65cdd9c9562fbebd44f5ae3a690946fb6e528554f51353ccdc899c0c3f635bd83afd3429ea7cccef96f69cd6de7ff58ba4d22ba032bd0a113dbebaa780f149a47203a65973c27f0bf00c168382f2311de1e900253418c77d521d5c5838d4fedf6c3255d8c05051c396f0f6705cd511a94b19a96b043e3c4f95422cdce64c34767ff6373199ae1d3168b62ebc353b8c7e044f4a1ac36b1f692183729f8865d24966101ef047422c284cd9dae44f968b209cb1dc11c60cbe2880c3745862bc1c64899480ffd3229a551fa6e765f4c01731a978a1e2722f1fa0d7f235ef114523756848816cba51a561744355d5d484119faffb953f5ee9b32be692a09ae40bdd8860687197544c39535b196766e69ac8a05dc40c733a0d906d0f7735014810621a6d83a9e6234e6d2d9dc7b1417f8ff782c8f7c44c713dc9fe30757ff95cbcbd159f80fdfb86eae00bb8565d497aedbf3c4233c616ea852b60b199e\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 866c67760ebdc192e302d47ddb40a927392833cf3a3a3b9c33923600fa08443da118b47db980ea74bb73518382723e375fcd9baa773f3b022d37a4b0fdfc817edf2a4d9e71987e034cb5cd80caeb97881abc45e8e6b965941dab478d17039d98c989178daa541507b84df445655f1171431da75bbac810729f973cf8f3606529c89b036e046ad7265e4e15c7f18b319a3c870cbfb7953e069794978aeabd9c20d3b8a3b9a44b68b620196eb1817d70162b22078fc4a63921a7f35c5500de7ec0aefa27d93282ce80d2ccd42c2d3ef1212c10a833582b42be78c6e866e887b8ee329b883cb08f3e374ec5064f7d1b760b717976761a44eed64d12021e2fd58c9640398e616ad96ab2e56ac95e32421f7c577e00c35b1fc95f1825a0214cb49047ede981a0db76c18e7ef8a9628702ddb4e9d5dcfe55da36857c497b44d182761a7c185fff68f13684", + "6c698b5dc0753956209c2c0e0d247b815d711d49683e9386387e82f6b4ca232b653c365485efafa988e799ce681f3c7c37275391e56a3233\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 0767adfd75befa190f623ce2a00fd6c0dd2a8f1e53456489f8329a2ff6dfae00ec4dbd3156cb278c41c197bc80b260c9b8332d5f0d39fdeed33c772c45c17d3594bc37349a31a9ae58b4426860036680546c66d10d3d539ab377c2fd3ae25de99476f94187b895ef9384c7515aaf9b8d580eed7ed9273354eaba4ab57e4bc9b7b48529072dc691fd7e1a51a4164a795e2a3ccb2520cab25b8e78fa7ecfb057b05e8c056fbd407895e83cad14b6840ca773d6e6c8f2c3e7e34d77e3f746351562829a81e04450076c144176bf52c42189336313a71924964bdd34b207c9e69c424030e15e9f2daa50b4f162d2c872828606b12d71cc845e38149d76ce72cd11c33c46e837094b73905534cbe6ea9d9f84f74e9125a07c23dc32ff7535177eed47f979e7d98f62864ced2545a5e994eccce3c9ebab7c746f9a79eca3fa8523cafbe69b5fcadeafe8ccd00d91c1b0f12fc2868aeb19ba57863bea62391235eb35fa7924ba74b73bbd0929aa33862419982fae0389352840833e4c8442449a392105\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 1baf2ccfd98c3c37b60101bc5c8f3ef871937f3e4cd7a21fd765023f03437c3179e6fc9715d6ae00425c7838e5a5eaaf1effe9f7b591f588667a596c539326e8b7d8765d78bec33e057a25067209dd26e7a9d149b0e0a3ba13d7af57c436ab9bebd871a2cf4f88b26da4ac30d6aeed5e67b871eca23c2dc34d0685a7bb9ece53ec9e99228c0561578f39c269cdf19e8c98cbaa2731ba1faa1008fce7df30a1e5f26beabf6cf0716faafb81d1de203a1aae8f6ebab2b123697838b3c0896786fee11e2953667900a7ebd359bb81b340c0b9e4353af1091b008b5d5f8ecb64d75c574193aaf772be64ed106b374cb842ad62adf9c98461327f254f866bc28290b425a3ec9d8e17e126fe930d58fab0a5985d7844d85ada69803bc29026e5be9c9a9bfba5e4ae00c91afcd2901bfa399e459ba87bdef0577366b6a546b91a8bd858e33a3ead31ee07405199b9638f09848af52b21092a5690719c75b28f12b983712b2c79035eb727e928e81df39fec2d939510927e749c4833c02c12139f19447e\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = c5dba54644047fe0d229d54710c0ed4f226380e4d1ac8aa865f3e8060ff6c5b3decff0836898d75b59d6e7a6bff092ced3782a8d46af8f3861eee72045a297b25edb181d1ef69c3ae0e69da6c04fc9286e2f919a531c44af2b2cab59a815f3c02f67a1a2d0b5ac5dc1d8a1fc7f6fd07ef6e3e5415987523d06a9a6a46a6e71f8892756fb18ad6307c22cf97075f6e3abe18992b55925d26dd2fd8227f34f992358736f22ec94ddf9b1401e901931e035fabe04abde7fc3e1b3aae5ea51d5e8c1e4cd6ae0adae1f0840a2c990109bd1fd39d6ad66cdf56b9759067c10d743f39ddf608c8fc7792c753cbadcf5ae6088bcb485c851025c5d7d0f28b099977d619b5b78c3ac9ae15c1fec85ce2ade0743c11bf7709e6e48823a9371e380a9fd0c06f2f7abf6177ebe017ae8d9c1008f04b93a8588848dc963cdcdc26ff6275a7680dc0e5039414d746decb067d058f767291cd1a0ea62850496460f75540ddda51171db09e45098833e2d67e53bb6f3ff7da92b48191c0d7b4b3161bec990359001\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1a9716b7cd0e7d9b2c348076459a9384544de7d52a597fda1d6227247028e21b910472a11e6f3924118a364936c895eb4c3ff4cc4064c43175a78f0b4de4464fa32c14c3593af96f262ddf302abcf7e6756b2a79b821dbb195640e8d30ce57d216b178a4a34415dad08f4cca150e39a901aa478d3f5fe4d4ab351d41a66df0e0677780f84becb4ba59655e211ee6f421685cd42616fbba2c7cc8cef92508b022e525195476fcff4357b79f292ef7e4fc754de490400364ff0969946c9c76366f17cc985aabe0fe6011e734d9dbfe6501a13dbb60daa4c78673a25d84565a1e13b7e981157576b8bd3e33ba750c9bb7b5eccc8f8fffc4ed817e2444425bb5b5d42a5d702d8b0cc093a57336d4becafcee90a65a35ef4800e0e0a5fab2018b1bb5ea153ca23ec59ba40d05b8a3df4cf807d934483fb0d8a2e7c174eb8c3f2efa7f82ac8a047d0b700134eac76a469d6f40e87d2ca2408642218f47e4359e697c62355813e7df722ef622659784406eb5ea26c1fe3c5b3e917b13a12363b20c5d17\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 191593fff20301e6587a3e57b9228b77260edae7e376416eb8fd4d80b31a4e7326d0e59f3ad3e178e84936c66501a8fafe8f2f4c9e4ba138cd63991342eb5be66c4b6231e995d6dab798efe105f7133db0cfdebe8862b21c447a2acfa9626e4307a0c7ae0fc7f4de3c78f9ec480dc3756c4d2b8c2d748bce4a7865fcdfa5753d72f2b84b609af4c0039425a0b80ee4ebac04bece2e11725f9f766f93917f3822c94c8a186f4ff7855ed54da3a959ccbab54b7ec2a3f41073d5254a06ddd8a240a997e391b06b083dc4d9b3fe7feef65453f356c84492d3842e957ab113897ed874ae9c5ce061be8fac4da3228c0fddb7cabc89c8a2edbb3a1b3f78a8cb41810863f9b1ab8e0e2a6a2782045002d4bd07cbf0c6ce589dddac5878599be97cec0c04dc42594e2366493919c6306d1b2abb1c1279daaf85c90be4904b93064acc73a7d59eff8191e3d4d9e3a763dfdcbaea492741e2e17707285a9ab8d9aaf8d2d95cb4ee0bf1402297917ab025cbae8a201099c4c06ea7eaf0c6808d142057797b\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 105aa4e5e08da8705bd94fda6efaecf22363716f59ec83d0d4fe1a40160276a6cbbaf1fbf3501ae445be06c9c04b541caf22b58357404eeed16093e3d295391732dbbc3eec7589f80c02a5f01dd2b371197b46ec2e45723f086d6e4a72efa11a609c7e528b04a519afee2d01453d8504fe4e039dea8f5fc1035918829b59940eb97f428910186d6569af61371736f3c3aa65913b4b0a585494d386cf83bf6eef442f9e763fa1f205e49a80c35c7906264d5d07012147b557d0f8f5728d1d533b578d0a8294defe7174c3838289ff2505dda63ca7a1d261b754555572fae41db05ea1f3994d4469d490fd9d251d4b53df0a7ee9f091657a717368c4275e3c3e1a2cfb05cb64cf22d1e7d9bcabd4c91da37aa73a05a2f2092b218c081217456aa69962d5660cda5393408cdf1d2c7fd1968bd1d3232bc5fb90041dbe707b63f082c8ee743cf3102792d4b1cc9650d5d9f6004a31b3b32e9613d3fabd94395b1a01026a33fe3a42db19100d3c0eda29b849ce420e4ac0c71fb9a610c730f27bb026\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 396b9f59618e6b824e1ebc57b8f18a133b49d96bd3fa39c66bc4a206e79ee7984013a324dc41d00bc469285e8d255dacd178f106c9a37f11344e21a24275417ac29f2dbe14377d0feac8061fc24d5b178762700c60d6cb0a9d3896961daadddd11712c2c006eecf154b5b0a9fa5786106e8c12cea3e3968c42a165f640fa0bcd5bbb3734c55f57d14506169d7f805a4ec4e055f5ab2f1c0b0968b396119e2d64d8eb81cd0ab78e09790e33ae752e21b1b64dd5aca05259aba1c2014b390e84ff25f2dae3cc198a7ba5d9e4b104ac6a5466e1270a1631e6ffe777860eb63120f1fe8b3422a467a083463a133ba9db8bd18978ec559676f969e5e466ff2a8f0998bab5bde97bd4b759eb3b14b8171f0f5c19a2d590a344284b69d0b08729ed67824665701c360fabc9a48cca7591e8bc3b2300f1c76e4c6c13002f53b2fd5d45da382a63c1073cc6f4c43fd06bfd4d70104c4d5e2c74ae18a5dea531f5a6c2e9e23c381b1fb0fa1fab4fc94d662db842ff202d55f8cb0732628c6f15f824aab121\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 82d26da118ac4ce272ad266f402323cfc25d45c885d8a8880e04a6ef52d7de7971b00ea0adb51768b31348f590bda5e41a8fff36939b59cd0012eccf474552ccbe2308db3b3910ea4856a290babe54fbdb1f482f524d3fe81d1037cccb5dfb6a570c898680f19af007abec62fa233f9396279d0c6f9e8f9bf87f7a7e088f9193febca5316f0f10e139fd010de1a37173ee90d2b35467b768625dc59ac028505b885934e55c2bda0a97f3def80a2e26f14a4f2f9ea4fffab807eb2670aedfc85c2f95f9898f7a07dc2295c4f91ce2b96134e92aa9e053dfc2cc012513e39788a6f0af4e14ca6eded4e8e7befa85d69e9c45b98ef9bf0a067e9fe8ba29314b2be334f4a5438ae4bae6ee85b6b9086bd3bc13838ad27f033208c834ddd3f48fcd9c556bd6a6ebd6ca625372ef84f6bd44dd0c24c0184b3815e893952bbc42fb790b472e89beb93338dfc23198551ac7257ccf7ad1ddd776c7eb620dd6e6d341dd0693dcd91cef175f1b3165cd7d99a2623c7607dec9d0eacc0b6c487ee1f90e4236\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 02cfa2d1774246a4fa94a7f9142ac84270792fba20b09a47f0ddf702a41e671dda6690451937b0063ce2797c2146eb68d2e84c87211cd3f9e8d169579e88e522c98469ba814c5a0ee2f0f42386d44e07c8d447b77b04fe3799db3f2d7d20843027408a4f1f08a0eebdfec3c3ef81e8d9b4fec722a5782b2e2e920cb60b0cb8a28e7ab9b8c82ebf6dc25d439bdce586f4dbf41b01a2f777ddefb13fcd0e268aed975d5aa986cfff0403b0bc260bdbba4db2b51bf1f0dd88c54b0a7a6bcbf3ebc8840e751c6dbe405d6cbf94f12820c536700ba940a70a4ca8aea4c7690e33ab09c0d1fab7a962167e5a8fc51e4b07c82312b0c97e07d42bb2e2abdbb57442e9a8520b0085af7f3168077a842195a4e19c7fca15f2e7471caebfa80f949528d81b619632fb3345bb7bbccc825ae8bd20fe34474b70b7420fdc17317f711495040cbaf5ae21d7cb70b47a2997b794de3d9bf805d1dcb8104b50ea69429f3861e61b1a0dbeff7a03432f98a8d537a03b37ac38d9838a7c6a7ed0977f29f96b858ad0\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5efc66fac14f6c109e9a2e219bd3852b28cfaca26f3c26fc8777959dfea55c738c5c086e819377f8f4baceb66b4980de412c63fd5a1e329d13a14ffcfeaed1d89047dab579e243b3fd6b85f87069997aa7d07f71ef40250ae307b280f0db1c30a4a7c2411ef723746eab7045f973277a174068bb8bbbe69c0773ae9977a7f20e971d405bfa5f0f975b5acc17237e7341f0ead535ba863c61c155377c47d4bca280c6312c0fdcd76f52eabbca08b442e0eb629a44a0169c6c63e5e1c52c", + "f7e2c61dd29abb9142fa7c83439306c2c1f6cdc3257ad63d0a57ee0d5f41341acc7f452519353aed51d739ea9153bea1f6f029bc4eca33ae0511db90df1bcc780b3ceb6edf3213b0b2e20530d26bb6ba112aa6e1363da049d669266a956fa36e890464399fbc43baf7c8fd3d47ec6db5e1029bf6e603b8e1cf5ed9ddf6536bd8d6a7648af7fde533bd51cd8f9a6cc28779163947dbfecbd6f50917839b900e3fa37274d97a2049daede1525c145bfd1660d4577caad7888f5c84867c6fff30ee8356de\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = a4e7378d2aba9bc6cebe5c8e5603fac9bce6e3c193c1675df95ab30904a149ac3f3d7a1312429cd63eec085f7392051a2bb883c0e078af0bdf29464bac2268a8139074ec53330722e1482b935fb57956214c7445d8a778686b624944bbeee7a608dd15ed277ba378f4e2dea04b33103e437f94404a09517f4327c80530a1f183e046756c166e526aeef53565cfe34122ec23312bfaed429369ccf08f52c2351e102f439751f26ebbd5423f9efb3da3d3da0edfcfee3b9607fd77dbbcd7546ca4df84905fdfafb469bcbd78d6cfe6e420993740b64e0846b5c0026990224cf3b5e1c325326376c5d6f3d1971365ff31498089482c7df06dd92f7952e0472bfd81a52b0fcb2058f5abdc70bd7d55e2d843821083bf6e8d13b3c11cb4fa420fc90721f226526ee677a8eff890b664e2a5aa5735db7e752b6c06218a1fac315d6f1cd6120a30fc46e8ac220a1bf2e6e4cea5f352ceca4ed4c5675ebfe68ab15da158a22fd044459a4aa9673a5fc078e7851170faf652c9791b665ebf62e16891b54a\n\n# tcId = 57\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 616a47c86dc9e2423c5678dc0ddb74cd9555f63c219caaf182f82cc0b47fc5505afb0405a693c4b45ed670e009908b6316d22692d89798521b477d45c913cd31042b8a0a52626e1727bc36878d1303c52ead0cd69c0e9711e8c5693ca3fcadd48e2641cd73e40eaa26fb7de1aa89f54228fe67cef381f52a571c054ec1b815e37d071054b08280e940735569f452dfea10d86e742ee8db6c52c696699b99b730bcae337f093418598bc4b648276b6a7f65130bf8bfa1b2b2c7893e408a6eadee77bab6c28aecaa0e3a200da9fd4a7d06ab00c38e7c0cd7e41f64dc43526fa28e5d9779730b41e90b6366fa7fd10055d76c95cb694d07c3dda1776fcc774c2b42eced3c82c9327d6865ce3c76b6666770b625eb49d6b7df9fb1eaa4867a8b13ec1d15af66bb5c37ad8ffcb7b059ebd9f198fa9388d706efbb20d7bd6f1a2d6a192e55c5adbca41fbf1f27c9afe7f94775c123cfb7f1b13a980e86b812f5a8a848b9bc76472c52f31f556c02eeb4b71e388c7cdde33b22bf4a5ebe1e9e10a08afe\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = a158c783c6141376270cf0ab8f4c08e5a4534b576786e0249fee264afee8d92558a2cc1224422a5b33f1d0661fbd2891f72edf381f9b52aad268dfe82effc96bbca66f4eecc7abf2449aa3fb858ef5606299af5d477242cf91e54edbe042a766cf108731ad6b7b038f28a3534360906272027d2a83ae32cc0ef53c1a89e1372c50edf86b2f9f09f06e49e1072a5260cba1528e8607b8336286fee545e325f34568bb2867f3344a7fd53729da935589671d6ce956462b4729f8a1c97aad3380852760f1c16dc0f9fe9b9f64e7e0317e242cd777ecba0bcda61c19d6e21ce54f007da49e2ef35c10a0bf42ed8c522e6bebab94eeb5557df840c23739751e7cd05f02c52306827c71e14b6f8771e2d3af07670a7956eef491cc26a512a32c3a21a547925406184fe55882303c17c8bc2392cd44a77f3723dfb4c24936dc66b66da9c72a3ed5346ac14d31f5efd227b87faee10e5cd88a1ac73f67e5e6527752d55a12490afee5f500c4b12a28e2ab4ecb8928aa5c889f8aa9696e9d5116f748da8f\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0f442a9b1d7aaebd50a48a9f81623bed9a6e57a9aafb22f8cb6e56f28086ab3609a8c13f9f676451271325d453f9e3b31c0310a38e71f91ae90899ff610bbf474138a9e610cbdeaa52985446d873695e35d1de1c777efe02eab419d8f0fd5184c850112bfc8a271307f2a9997155383a85b80ac99f6031d94639a6603fa842f731c4920c7841228441136cc0b07ae11c4a07c28b3305ad2cf6a8594ddb6fa357f17a9fd7a72635323265a9a5eab8029215d21f2b3d2ea41350d031c93bf8d3ecc314d6ed13ed0517e12df45ade2f7a3cbdf0b17b220e83031ee06f4a670b47c7d5bda77c0da7f3df5278882049582faa073667a6270467d8b4c28b5930856ff55400aa1c7f7fb52d838d5e9508b8fd4211e130dced03a6996b9afb860c066a56a6d3e1f1f7fde8179adebaeffb2b8bb91b83b7c1c56a6dada297497b8d8de0069e31ea452c0fc4f820d769c12a744d22ed110fd99476a4524caeba7f766e1fd0e0ee01e91825bb5913c0e2f87497427d2687d776e2ca91055e38fcb6be3f843b\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 6e317cb8fc092da3e09b63590743ba17426826083697bdd526f85d1ebf0270afc0fd89ad67762836567f36d2bfb52252a2a54ef9f753a4afbfe520e857a503385ab6c16df6d4e3494954912ecb31c514f6427b676a1c61c83ed38009693ebc39add66a1af1ac1834381df1144fe5f0444fc955334a2cff4aee6f3cdd3abe5dc54cc4ec25c5c66286e91d29a5c498872e7edbf3f4235bebb402dec4b91e629123e841dea66643f224c472f75caf31fbaf18943e7bbd09fdfa8dd908ae92631129b404f7414037d42b5914b532e7ff5a618876a550fdfb80289c5d635adbbc60e41ab577c59bb6895e2c4f02140b95a47dc327d5f414293b3577acb277427285f82dbfca53a4acbbe4497141efd0afea149a7c12b6c702fb9e48dc7dcb0d4ff1f96cb238d34e35fece1436b14592d3eee800641800dd9df1b9541435cb2ce933a0150498f9416446c95172a2116ffb58cf5f397f0d0af2e025e2951444d204291b1c04281c9242058b937b5d01f74b6cfa2d55d975c6622198c6cb271f289110d2\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 41a99f4e616d19dbfec0e1e5ab8ab605ebd218c107176b2d90c58e41e01cd6f6950fe4a71c3b0ce81dcfd6f88b57e7345dcd466e43e3b5dce645ead38d0f5df81d307dc89ae059b3738b7900eda146f0ad965e67e760231ba58fe7e33d3f14fba66978e3eb7bc5dd6960b24ba2d59332760492961b5b81af6e37fc3065105915a4505fd239c79e6fa6cd8ba4bb585fe937d5d87955f659cbebd6bd9f0d0030e8a52341591fbd1624cd2236352e9e6bd91d7c121357a4af1184efd102fa911a7eb8d7dce098fbc02e34ec92d14ae333e502ab8bad7ffc275dc770913eee42a316b1fac871863e0f10899d72d0802bea9c07bf21b91050850547d6c8ff99ef52b1bddbd655352ef0fc4748c44d4bc4a4dc4ad3110b367e63620cf76139fff563a7c76a9b3a24cab86bede3568ef1524d476f8e39b9df374d1d2161167af5a00c61e0aea1bee56ae05ff1759e0826c4bb0b2058b5dc92a5c4dc865110bfa05506121ae58583179bd981100f42d1d89fd604db4f13db7ee6c49ecd381a546813b284\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 9e64f806c7528a1cd1c8dd5b67ab67335b8f9a1ef1fba99afe67e9fb2cb11263c79dc422d51a68728464422307a0a445ac823d10021ab7789e6f701182f632786f77c23806b81324b5cd78e462c35e495532c2330a08e0e9ab7b44bc6dc5d99c70e052752a4718fff47d00c9b82c4dca22fe3302cec11026564288eda51b692f36fc23ab6b3a9091c332378be3582aa551c8471a9df5f9451291a1da952019788f461fc5262e822bf5d5e11f80b91fd8748bcd2d856e0bf7ee29333b627d6c44ec0ead86c0ab18f93ae9f29dc3a91562387a703b42a17cc4b7b310b6b6fc7d9bd7bdd907520dec948d2048d556dd6db3b0e5e95788d88d0d643c6336604d0b81fc996bb85d2b4993036635a15acab8dc486e061c8e2eab891daee57bf08563bc018401087ba854f300a97b9c5fd6c5a3915ffb240a577e7ed23c76fda89407be57aa7869db4c6e72fb69ae2af877f189992d99dc17a071894a2c6293ebc9e205ee3792c4da94de734b77c47b21c7a6572759126bdda03f4984bfeec0afd744d3\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 71555a4df579d3970cc515fab9cd2775782e87a7eeb0cdf0fb9614db00ae74a78d495110577e29ba7d7ed8c2f71b8f476a87bc569aba9926c75811241b2a3525e6dbf3c339363b9d85511a89726ade496fb45fb476e0fbbd7bed7ac1fdc9e8948f622b2f2532cdc139fbd500f2807022739cc396023e09833f513caae70374296f6324e31f27b1f00978ad68a65a87f63e868f66589becdd34dcf732f7fb85a79a28975fad578cec2ff9f2b89fa7c03b03fcb14a0cf2cdc4d989b6131fd3ee11907f9405ded3963c2efb6c1bf79cd42335cfa143e108b8b9c2aa8f7d1e417c0fc7891456fd7ef72fc1d0d50affe882d0a31139df99a6366e7b5ca2cf5c11e7f50e2c52f91a36543c554e2e467185e0bb4fe29dda115c214c306dd450bd9c261aaa2844091796c2e8bec02b40c7876495b7b4d327c6ab19e1a0a90dce923ce8f8cd7cff7b6ddf59a011d821f2c86207b356d0badac5c1028b3b3727933f4fdad43c923495af16a23e913ccb998ba0975863dea15a42ddffff3f0b4f04a153372a\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = a9ffef059db6395dcf691eff9ab53fdb762000fefdc58b964af85ddddbed15049cc8bb2eaed4aef8974bd3c9e65386f3a11effadc26a9f85f648bae5334d08ce23db566fcc8a6ddafb127dc95d4c3ba0d7b71546e1c010085d0e5c9e7f6d1f396b50c9fe712ca30e78dca2ffb58ac5fa5816702caea67b932f4b8669f2cd3a61a412c685d15678b2fcd982f3b8853ffc2efd841d59136501ba65707e9488fc0078bc03c318356968e7478ee3eba9aa0b186660f08b055cf025866db2d7162cf152c6caf4a3d68b5010ad9e9fb346e47cee9c95ca4dd5455211d0897ce239ab92a495cf2db2df2e1a3d8cd1039351984277ace1888b0194dde50d53cb9b05b28bd51939d95683160a9d7d36df412632ce7cd693fa89bace61a6a36347339d6e068f8a7d99f76b470f381553a1f901e5de43bdc8ebe32807670abed2d1d7cbfb212ce10fd5bd3769eea5c175f006aff33677b20383e61433f5b63da31404ae940675d3fc1c3cd39f56aa2cbb30efa646427614c2d61ee19e7d5b8ec5686a071b8b\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = c3ee2d5e72370734429ea8efb80d949ad0f0281909af720183edc0f10c83699f8549fa7820631d084c812d37e17e37d656f2749721b90", + "db083ac0334b56a413399a92977b73fe292822433c1c97b2a176722259e9d19e28618dc7a42aa8585e9665b55f3ce00dfd28c7861eea80583fa99d68c8dbd5accddbfd8dc2f74b9205059637a5a09952b03ea2ec0bc2bdf8ad211e8cd6bd410337eae3331715f92391b631b5f1e2c339dba0cd6ccf9cbaf17c30346987236366ae14882046dacc32b676d84f4378c3f605eb81529c398882450f833969c8849c489934e0225cdb54ad6539f81e276f16004761361ac114581ab1fcb94bd05854687c8117c590683d7a49f7b5d2b80287cf47e001a7c11c74583ef2dcdd096bca5a38326f87e67d4ca1b5e36f88f0f0914ef5405d49349febbfea2ffd44932b7e5b12c7eb0b78c4de0accd9aac30612f6de12e710ca0d5c1db70cadd03e88198c07731995e4b5627dab808d82e2fb47a538323a65327f236c1fb192967fcea14f88c03beea4c31319fc2\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = c67ba5369bf9eab5141829d0ba753245c885cf33ec6e9ce6751f2abfa172beb3db01ed0513f3b936b48619c64d6cf58cf8fb1a6b85e0771dd9450e3b4535740e7078a06c7a9afa4cc28ed0ffc695a0f9bc532594f0410987d5a308cd2a8607f231186247a89e8babbc6a2adcb71827535d11a95228c38790236ad2fc4de9fbee03c2b2d1ea809f60ac8ee770209e39b3260796bcd63187ded4e70efdbfd89606e9e85b13c26396261b3c907954bb0d7d8cfe2dfaf9a94ba6d54d98c082fba79d254592bbdc3e190c8dffd24d84e03da96eb0d291f5cedc2a9aec051be76dcc9841e6a2201323f79d9f18ddc42fd45bb64d62151a30d1111782a9ac4b8b5893145285eddc0eeda0768e1218a693a863ae2ee5a959e4249ed995f85f1a9f8692e19ab609fccb0a93e986786bd548f0bd70022b61bff520d19aeb97597f98034a5b78d6454e55e8f4caf4eb019d6aa00ff736f9a3105f9e75ced7a5e30882bb5945f71a7c8a401cfed0c07f0347d46cbdce7bc1e931c6b0d5c1488206e39dca2512\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 004c3e2c6d82ddb5af78bbced9b7d3543f69deef0d7b0acc29652b13fbc2b0a256a733f8201b334918dc8354b3817d2cff4a2ca7d00b329ca88217f28087020528c6c30a75a1f82e0c3ef3e49d8335c1c354c31b31562dcc2f98e6b960e52452d0a37cef4ac21c41110070eed657f2ff30839976c98f38151fa55aae5780ab72fe2f5a254b4f83c8493001a598f2b57197fb3d5eaf439671b4d4a596f7c4a4537d5ba3937c9baa57623aeacf54cfdb708dff8aaf09a23d285ee0ae6aad50ada1f51c1ff5c5a6468f791cdd7619138c06855675da115043795517395716cc8c0d282f5aa5c46b92a2d1cf20c50ff7f69749277611a36f18271d2ad91ca371ab2e87aba74f83c37523b50419e5debd36e56452b39059a32823e3ac57929452052ceebbcf517a8733300ef3500ef4b08e4d2f6533ff3193e866dbfcfb2e841dfc133163ad3d7b605efb3a8c7715f0dcf1aaf848c4721f9c5de2c49e31e92cca767b0fd34d34c1bd1db1dde2edb1eedb119079a4cd25b0862a4b2447dba751e3f3cf\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 80fc40a92375cf58a2730a709f08395c7f7a7577ef00c7c4730781b806afd5f69cc0c990012c62ac76cd4f860ecbd8b6f96c4e9a7828595bcb56861cac5a0a1d39040d96637a8628431641115a1f298c144e3e2bdb3b43f8edbf943ca9b1378f256da835a560b35fabb3d0bdfed894643daca246a6e22cd6089bcfe033329a3d18f5a27194cb8c915ba5763b44e51e5380ec4096f7cf5296db6c7ed57ef8b8812edaa10d9f12adca6dd83bec5bab1561e174226896a46d104c134b3c17c876856d54eed489d64c2121d68e48cb1da6357d9ab3128e25f16b1809288c35ae38c901ed6bd1b80961853c1d4e9a60273cc39656078abb4ca9e8afa057df58a5fa851a4dfaacac3631e2065fa8e2e423b4692dfc96a73faa7c2af3d89cf1e98dcf3e69c35dcf38847fad526eb56706ff4f9edc068be609417e60d169ede36e4a9301cdb58a408bd12eb37457f05af1f96e431241354e181f92f1199d2bb45681caf56ddd13542994fab6bdc2027775564b782cfa2cc31d305e7e70692a96182a71aa\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 756428ea39f0895138538845d40ff1a8957b5c3e913e7b475198268e40efc604cfdfa189619f60f9dde5694932fe5419b666b10abd4adf096d6af10360e1c6937f3c0ef1e37e2af4faf064831ec44d1f581398121c29c1a4b3a056b20cad0fdcc99ad6f68a51e12717f72d2981038ba2b860f7347a435a69ff01cbacf8d4c66ef98959049bf90f6c78d2215e66b8453fd7de0c2d6ffef90fb003192d053046872fbef084fb1b104a37980c2604d61db8340254b37c8f4df3d5c1ddf6745a00274e7b826398e756d5ebaf19aca16a137a6a38e51612b580ca3fcfbc4d7eef58a743c8c7862135eed1926b4592071ceebb6133eadfd8ae270e1367f705f19b44e0232db2173a261dadb3c61aeeb9ab05dded16d95b6b0ac7815e9aef31314003949e19cd76ed5d7e57509057e6031cda36d17b1988479c2bf217e21a4865743452695415b70e905f836561f08e8df78c593e5a64efbb19b42929c4fc9d875a8769895f21b887b1780dc38937d0dc2efd10a14030e43ed63554b1ffac50b801de08\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 579bb79622238ac1cbc0af03c3c0d1ccbaadbb29ad974f67b76d752b960df0928d364e33eb04fae281992aaa01fafcc0669eaf87791cb8a7142b597050afa58571f9fe78a93c647307ea0db9017e0c41a0ba712dc8871063bac01da6a3dae7d0c5bb5a40f633b45cd35213fdfccd296221a0275f3b552e56ef8c856f5bd96722ee3cd9799abf956dbcc0bde6bf65b1b2641658f04e063298cdab2029c8c0af0566878822737fa9d6cc48c175fccaf7e866d80e1e478d7568a3e67d39c3a14508711fadd84c3e7be8cc226a23368e9982138128628bbe97a3c572ee68606bf6427ee5b9862bebeaa4f6b08325241da15c9f223bd18b797e1d6e88b2b08a4cf95baadf4d684c8fcb7cd44711aaf203862ec79bd5f071247636623b88709f6686d6ef3178fcee04e2de0d661d92444f5cbf3216b07a5f6cdde0657b2d4596ed148255957b0a23e8f262b1ff628cbd7ec7e88267d100809ab5eea908aa05e11d823e794a0d1e4cfb82c76b0cf9affce1fa0fe370503accaaedcaec65d1ef3a696df0\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 9a32e4a06f502fc0991ba84079044501b140af892bc3a3c46f9c41fa75c47745292de23fa60443adbd2e705ff47ebd1338771b157741c019c2187a2c8a08e06583a5e4d83aefb3146a6eae37ff79c499646116f2e457b9baff4543d2cb0c266fe0a6f75218a0f565c78904777fd63e1958320f084c9abd89056d118a269c11e00f199782353950c005316cd87058ed794235fb0997fccd6c17c7cf9d5784cf8cdbbbafb96d6111824e658c3bf574d123f6dfaa1ddf77f093ded9e636f5b921ba9b205667e3914932407aac17813457ba75e9f4380ba08eebb8abf5ebd281fcf5b2e5d138585651f25c1ca7194edead3507d6e69467013512b679dcd9ce400c66c1f3c0a600c9d0f6c33a56c366e56c1e413433f904eab089075ee9396650849d70faa450c1695400b2f88d42818ac212a13fd9bc2f6926e2ce92d7394f8627b4ebd27b8d45e179ad927099e3bb5e71cfe6ce275b65db98ec4fcdea0b43e2dcde6601f0a1c54de549ebb03d98d1b361be9239fe8dba8dae94cf9d1bae5c51007b\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = b5efca28b066937c2cab27c339106a0f40139a1e1a5b6d66ec3a76abb62824c06a3e4dff6bc0dd204610fdf386e1ce13c87159f4aa0e88f1c29d07b1320217347c52e58c57ccff23c01c2039c2a385625072f974b690aed9cc5f6341c33dcd2aaca6c260d5945d49c5963c4fec651423c765c973e457ea2ef33eb57b4b4eb88f0ffb66789303c725e3db8b76e4eecec73c5a466b25745ebc00dc347d33a71f787e7723358270d0e258719093736f72182ef5cf2c4f513fe648531d755d6e945b3c44843978ab009b0b6809bb0db6794a4bb2311991b1493fc15226c15739e2b3d621cbbeeb891286d747dbc71a7c9cf06b51442c8086d839f52d73a072647832309b59edb37522dc61a97a31b7bf3c63980060304fc647c5743687c15389f4d996e38c83bd9e631c3bae53c1ac35486e9348b730f066069bce7e840f1b83d5215a52284972f2258576e608c35c4521d87e9e52cc1f4f284674f1269730bafd4f5727ac61d9d179302c99ccdd4d9e024578803ae6e9fb76ab5f74c23d234313c5\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0e5130e5c5145ff0822edeead396c87963494102b8a4a0e38d9f55c1e698d677e5fca1375cf5e027024966ee4fa8e2d8b4f25cc2ae8cbe49050bd675f39be5931ddcce426e1977576f60c6b79174a763f57395890026d762df6c8db0f79f02227196606256ef9af7f6a211b38cb1aa0c2af9be830e8bfa9d30169381a22b74f138939081a5261f3b277f01aabffc2dd3af713b3cf11bf772d69d157d7ed34c2ee7682745129cc7c45881e00a235c5103c09ab3719bf56f22cf29c4e962cf7bf4f633e01dd3e49fbdbb019cf2b56475fca8007fca63202e02dda6866bad778538e459e7df0bcd234abf919b5e6713a68a9981227f8d3ad204d077bf2d70117ac606e03caaeab26d8ff04c3583967a77c63a3a7cbf3d820d650d56c76d31c71173e9577d238f1ec9bff8faa48f3ca49f531b38eea21b192435e0b0138f83b54635e07c12ad6d7f06b5ef51bf5c21083e9170e86189a47f9907a9622201cf3c689b62373f94c540206c8600ba48a049210f1ecf93757d22a70c88402a17ca6a94ea\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 00eff78b2945917f92e9ba0847516157ed33cc85c64bd1f5bcdcbd62c3906c5b77b247c892536b115e6bb03ae3e692bfe94c9d6b58ae0627bb96bcc53a85975d2929bc930cda5308f8dc797d0b0d6a5f4ab5a36e096fa4e934a7854355c1562553738099640c3ba675399a9d386b6a9c61854d00f7b6fa5998bcd05191a9001987f9621d1469c9b094d72590d76dfdfaf9b9f52f4f8d28315ee6fc22550e5feeba3a41f223dc9284d26955247fbebede5a3d643b4308843165f658ea0887a9661b26a707d22f5a827f33b2a60eecac67e9c730983810952247fb903e62317d835d9cf6140559941c3cc5ee7333ebc4bf43d036983d0cd3a3dc2330062f22933c295b05e6680ad053e8f64898151c72680f4ce8af1583fbd2f730f7d63e6d00a3e6991f809909b6cc8843ffb25016701fafbd6393e65289106cca59f73b", + "ba012b0bfe29aefb4a2f458b52d4736add4c2732c7ab1264a33b9074153b5699dc5e9566882a29efad79309fab974fc32b96750f411e62ef0acde9f9bdfbc8ae78ceb8\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 8d636450d02664f8fd18ca58d208b87ae5efab968fee42eb399f09ef0f3e6dc0ffa4217fa262d1c2cb488ef9625895018abb27feabca718268ff274a84358336375949bfadb21584dd59410c48968ed76b0f5b60e01adb37048416f1360f997d99477f0a18b367f91d68117aa9a0fc229cbf0198ee2f69493330dde8156a265e660f9169d874df428bbce40f00a366a5d6df2bfba9fd6f78da60155af0a5f72bb971fbcd64e144146e037bfeab5692b740bd61c28ccb5fb330bf5f10e595692608881ec857bfef1fdb94a1c4ba63e50ae0dcaf2de94bf50c7fc5d8efe099a51785aa42638d07cc0c23f796bf55d6032fa3027afa5b8d6072aebbb56546f15addebd36495830d7c08ce99533343e182e7d08031b95e50f729f5dde2d276a1be47e93d66ae45547fcd6e90c9a5141439c5a5d3b4000ce58e38ba4809657a622d9d659de3eaac858b6e8e34d16997a2fceaf43a9a733dc67f272f3bcbe560a75542784b7a16cebde20bbd90218466b5501b1f7299de1d9874f682fa0bfd41d6d54f\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 633e28886ac6e7c2c36a69e3c1d6d46caec4d115e852c8030ece2c5ae1489fbd795affa8478b23f484b22baac6d1571f6f2f33f36fd28c66cf9b2c963f051cbbbcf5c33764bf54867a757f6c74bf6574e3b7778eae92b55495bde44a9def4d1a31fc8dc783d60cc23d1e6ca973ec0832d6979e56a42269d6fecb6bffc3eefa36e2c340f89311a89902b40d2179e25df9c841993f245fd644b0bb65e5394beb84b1544fe878b165f2f6bf49b77f8ca4337c60be4a89bf7840dc642da1937f9a933276320d0488bb6cf4535e68cc4a558c95fddf04c65400500fa580b476dc53d60fc33ebd06191ce23ac289c7850a9f6c96caeb68732bbb028f10c496364e673236e55d54eb6b187d6905c9b894b7222b68d90b82da7bf29d1c0ff5a2aa552ca13dd49a9f50d7e69ad40cee65ec7ad140642002e75c3c6cd55d5892528d2503b33debd4be946a3c48d7ba46abc96ce2e79396116c329ce4e967ca28ebd56712fd6a9de4ce1a5ed00df621d18713d508f6f1fb959e2ce8ca9f8eec2e3a5a80c771\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 4f7025ce36f71e0b1c0a4659ddd25396a83e4911287700bf27f72ee19f8990235af6d6f33f3b3d3f7d400370a914de2ff23af964e4eef9c8a1b15a63d38935698ff70b7c2d2d2d34cb8bc82133d70fc1fc3c19d9f47f0fe463393b60a61fc19d49f84385836278bffd710a7ae72005821718d42b2f195b6a3bb5b1b6862443a84d6a4ae04449b6bb6b4347fa14fbb4ed802cfba5dd00aba3e5e1fff2143db0acd4e50bb9951460b1e6ae5608ab642780706522e971aa350b13390df5aec8585c3b4c2bff9b64c5950357fa6c91f88e981882c52a8d93f156718af5c91c7009b3f57ffaf98d9e280ed51148d5b2d0b57495276fdd8a5fe0885ce37426760789e671b4cbf64e2e21b6fe4a1fd3f538675fbbffe51d8cce7b74c9bb9c25e9caa84b88161630a8afa49265d172e68ad42836f6b9b619fe32a1b84734ae58f09a0d8c8a5f3181a5130a503306bcc2535b0cb325c060afe57e29c7346a5489f9dee3206d8eea75e07514ca3ec547c816d88a4e5ce4b7e4a61b3488d2c13eaf62204766\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 90db572ad2c25dd02aee6f8e0ddd5d42f5434b9b59f0bc7057abda8924c2a061404f345b9ed3e2fd0486fe34e2be725bd9446f031071c4ec13772fe468ab4961623d16469a5b9577683f20035caf524d557291b700a6903dd6c472b50cd09455779289b990e86ed6f7135af290b320957c93db1a34bd66289b5304828a71d2928fdbbc3a90af3884fa2f710455d2e909422e66aaa1c01565fb67367223f2bf30661ac72b9c6a84fbf977927a86611514c0c387371cd94bb703f2325e3a11cf83cbc6727b5bd49f6fb31b7238c1a464b22ef6c5db0dd2d5039ab3d5a4a7b1ea01cae494c5dafa48b73a411c982389abe5fb2de35d6abd5d9dc33e7703f67d58feda3a17fb6e9ce3200f44fc614638f7931099f13bc175164d9d68e2a4d38f2c12224fe136fba4e7fca1fbfe3344afd2f52d8812624a1af39c4f128e1c9c1eeccc0ada519f27b694fd982ffb6467f791461a2b803cbd298a4467cecaf274f855583ddcf470092f642edc79b23eecdf4067169a2ee72ae95c93e3ee5d23ec407185\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = a2f7d989b2b509b4d774f5de9acf12e5eaab05684edeae1eb42dc090356e58b8e15a32d8fa313252633a8356476327d32915c52449aac56fefc012929988fa5cfbda0d04d81392eb35ea340dfe449511f5fdab774f7e659ca0a8c91911a255d828e00d93d64638f805d63cc926c17804cf1d857c40be5d10318fe06bc311a66329128bd1102756da5da819afaed6ec6864287c44952244e4a8fbf98a90ada98bc1b5519cb81173b64357ce82f29ff16e5d76a929d4b7db51d9f3a7f4c91491dbc6a0550bcaf5fd37646bd8f71ef459540ae8eba668723a81b941939540d92c4a7f9cb0543dba1cb7969c4d644c8f15bfc13aae4a778a81b27b82903dd223ba4d5d5c157a35371ea1443788d973d953318b204f232cd5c53a9a2517d571cafb62d3378655dcde55f46597295c89bf882041ba6f4352a88dd7c1748761728a2d8dd628433855364024d42a0097346443459b840415b5a56934ea476c5f9de84419d564e493c594a9049352ea82700b1767d75244ef84ae2c8a3d5b1853a0ad08a4\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 5c662670149791048df0ad6c95a119bfae057011d7155851087c0085b901dcd6e95252391f9661159f909def924cc165b140f02db3863ebaeca40b57ad68cd77459ad258b892c090de55b93cb48bed9a96b5ef294e9c73325e4aa595431e780058a392c0b9d512e3731509fd537df0378caba38c3e20d17e3f8c4047181becf3a505acfca94a961cc6d952b387175e8e4274b81acb168f63df180210752fcc72dce93ee2e23333e547f4561ffaac06597757712ba8ce776f0a2c714c40be54b562ad693d631aa1c3a840c8749c833401e73dd05a9592a477dc43e52d140af0b2841a14b945a10bbc5e4d4f47dfda159646ef1d49d39054550dfd188203585d0201c33a42afae62aebccb463e3d2dd8748b8db65a3f5aa3ce7a1b227139041bc805b7a71144510abadff548318f9a76d8a7f64eb9d269f7739319e9a3da728d001e29628ee1366f53b752f7354055ae2e511a6d9fff4c9b1caacba36be1bde8fbfd0a4274145ef6f122cc203fcad66d8f51e97b0f8f25a08ea8c9860849940fe4\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 30596e00b2ad31f266f2b47b598029146aba9d0cf372b4eccdc5fc9f475c36567e6a159a454b417c77b7bc576721c52f64a31204279d524409434b73de9ae4d819390c3124ccffa5b4aafa135fa753e71c1b3b3f05ead6e6899277d0e994ce6111f61f2464155f539b8871ad0167a30c234e0541b1f39def8deb531ed476d81418218c682dbbbc0f4c3cdfd674c5e7a7bd057eee05a9f1b8b796260380e38631303d227cd9df7e76fe9cc161f8db2d9db7306834b67ecc33ff91b3c59f35f789a65b6f1433f1cffd69545a146fcddbd047a847f55acf4adc9be2f2595faeadcfe39127edeaa9a1144a5a726edeb7b1a48fa900881b157f7f3516f47dc0c108630cfc9304a2acf821a93a867b063217db60c0514143eb53557ec8f86eb8a83a83219f8c3310baa122b79d49d48bff90492acd83de8c3b9d5f07cb2d061b243d813cb1be42c658e2ed52a9b31ef07360df5945406e7c81a80337169fedf5ea76b25a69a1900a673b648831745f3b04815df9ed7d71acde44fe36aec0a85a7d6ec5\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 23bbc7627ae0069673b6de161c79fc721fa169d7719400aaf7d60d53773649bbe5cbeb4ec3b553dbab1b0cfe63142d21ad3a46ee475b7b50ee617e6f58aeb6942b0793b94ea0dee9347ba233b05895b457d478449787cab04fd0c4b01e025088884272bf060a82405172d8da5e0b4e070c61af641d311885519215b0fbc4947097c765e87ee46a4a642bc44b7212bb8b64a2cffaec496ae139c248f6b00f203de256adb345be3f46c11bed0811bab43961e9d78646cf14be18b891552998782a413b6adf9829bc47926178ca118ae0722af0aaf6694d5aa64bf970d530f71e309319dc43f2077fc66afa48365d90061c0e1696ecd2ec29a15007bbb47278641b27e10a28b60e4e7405fbe5a05e5ffb8c0a52472ed51330f169440dd10d828f1830a23dade9fef0c4a2373eae849977e1cd15054e4ff004b9daf6ce8fe8010f9102d09bb4b18ed4e30cc9c3dae2629650e00f139eb433138fb49e2a896dea8a13253282d8e42c1dc42d490b719373b3c723b8c991566474257e96fcd0027808a5\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 37a98cbe608f10cdefb4d787a23681902d7a3a02837438ffcc778091a12dc473aa6cd38d7abe75c362a877456e4b29db13659b4f3d9bb1ef73e0cab33ec2b11d06782ae4ca0a13d15f8856223abe0131f5ec5437b2b001e4f5903a78afd4c46d6a47af171271f3a4cf267b0afec0a1f368a789f4c03193e2f365fe6c0b8dcce1b2f1e6f1e0cbd7c6f1a98a8ab747bbd27485aa61ac84e837a95a178efba0b23725c53f00c94b3cee6831f4d000ecfe84af2a63f341e7bfc2cef7f5654d253654139245c4205c0b2418e8de35da690a8884507134a0b2f0bb9d20eb8f39fb134adbf171f1a8edb4e1489671005f8474708708d1a627d22c76b8ed0993a9c16a6b635fc090e3b38b96f37b28ec44089b17173647eae6ac4439bac2019ae8b928d094665aed8ba0ff89c308097b1e7ba74fd2579f1c21f63296712cf4f5405cf0f3eb60ae1600a5b8d717a09ed23034368c9739ef2f880c659bbfe855f809adbe231ef20d0eb6300f2b6ff02e9f3666876971a9d41f8f0f8fe954f00bf52c0ce013\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 2c269aac4605a5e25a660071fba9f97d4b9e4c0f0d2e567459e5620884f889cbfb33ea6094feb6d2817747859f8c203c548d5bda97821c3b6744711ed3f0bf02954ef75ad6b9afcb6872273f1c164ba168db9a8bd72d715bef221420491ab6b67d5f", + "4847743770ed4136280bda363c1fcc2f35ddadd1be3093eede6922cb95e3e206d02d98e91194a7fd39c304c848c1731e1f90e8a9433db71d94e7d76d7b5f2fdabfe20e8e1ac7deb56f81331fedd7a7e9ace76887dba2fcd72ebd2017f5bb85de1cd309b3b7f7fbb9d8901f61bf8992fd9a63f861e8054c9d4fc1472786d6efec3cf4bd1543116e2bf36698de85a6a3c17c200c73001b3218e72b8bd515f9f96d9ced500a1c6da4c0173f35ba24ee746e51cfc3ef00ce60441031bdcc2742d981833006bc05a513f1cf67d6a9e59ad4acc029995608fd05b744d48be829148552e13c7c76450f30b5acd4fab819a71c158c82d587fa7e839c3959a8150395f567387024f7b786006ec0b1f6960d3b5de347742eda16bc76e3359becd2e184\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = a2009e307ff24560348c7d796e1d69c5726c8389eb26423ce21cdb701623343a25d2a4841f994f3933fa82242f9d525464e3b6c770584567dd8bff3ae75f22f94139a9ba2612063e8117a23adbf72fb8c425aec994219c16d42299682eeffce61f4a0663d173980066009d542f09fe1186a28698109e0d5ec28ee2848e0a91185b492e53f67123c3f6d81826a943c60cd888e7d332310838f306913e3321c5ca89794f27a0ed36c697abcf665be1253637cf2226d7591884a9e7636b8f49972df71dabb14b6a4cfc4b4689e3c37869043bc0d802fb906a902a24b4445ada3b51f7661cff461c4b7b5a59c1974a8fda528039006f1a860eef799f15f606ec8fc23a20d4b80c01a639d34b9de0eaaef84855082e443f9a85964766473326d6ab6bf49f198c62269356e28eb920f858f3695cdcd77f3fb513121470c64c25f305a00977d0d61ab75143bac7eb57d9c99c8d51ddeefc41e3929f35da3dd544f55d878a9abdc0ead983a08d3d35d54b2afd653f61ddecfbbd936dc6d9721a959aac0c\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 8431b3c74190f8c0086d779639fed56544ad0fc422dabb1b5dbb600a7021a2e25fd9e69ef305d0a3da9af97e24ecefc11f515412edcc6a6685b3c4e8c251386a7728e3add07ccee395a851e5c1330fdd05c033269fe7a52df15a1e81764facb46718ddf598a83943d35716e3fe1f216b2e17075fde3751148290040a56535eba7e5d05ce7738d2fc7f6e8450bec68a0a35a5cbe8aa3ca0adca3886bcde8649fe491c4629be8a1b8eca64cdb226eb6a0e32397a7e0dffca2fe7b27b99754a428ba300cd62d0ee228e925d96418e75138f56d7219198d04dd7713c8e8d606d7a9bfa9f1b9d731ab9e0ec8553d1515a32994ef29f2d2e9c1ce8a32ebf8d970121655810b1afcb96fbfa0495c39b759921624498acdfc8d9abe95a0693e04ff6eaf8939e4961c32b86f3a5af479d294d6dbd01f90437cf6f830db644ad9466262333829fc2243ed32ca9fb08b9b56633bacc450d86af6b4733034ab987db01a118c5c41b9b792a83be1b4e068216cb642b11075a43efe7e3a81f0872c4481ad696eb\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 421b2b4795661bf967bf5e679f69d06c0fb9a02192d839a440d364533de5c3f620f8531a68603119ec4045391c8f3ed297ba295bc1215d4c4f0f315a73b338f31547c110d4fa1e3deb385eeccc2d57e03c0f6309f6c3c28e4d837d22787bc0b6d626201da55b605f4e8522ef75b92dd1d6dfa0a177b0e666f04fd211b713fce8b2fdd96bfd4c07e64e4b8253289e400da12fd99c2c0620395208b7f2d04a2eb696f9992b0b0485e3147c5b18aba35c8a90d10b0429f3fec71e59d019f270a5e0cb0fe0b5eef004461b5c6286f33ccda3ef358d99784500084cfb5c9d3ed8e1c5327c4ce81eb1ca34390ff613807f5a24e0428eb48c97900fe9c3dd68d201a1d2a55a20174adbed47e53a0d0f032acd4d65978c8afb55487af30439bb2f151e343a47b2ca3b5e082ea741e375885377a2e3769c712f4d4144d80c2a6f2b1f0fe41e9fdf9bb43d7370332ca51bb2f1325f4d1aefcb5dbc42614f9cf11a4ac72eaa350a9c2222a6e2d82f6aa29df12b33979fff1ea265fc2a5055600b9f96c8688f\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 365aaed072b2d0e5135c82f25944292872f60ed39152eb19045b209140a4a74fb2074037dce30d674e0fbc8e98011ac681204429d9a5ebb8fc3bf20ec70e6b53cfa45b259d4f1312354dd5a00bc2ecf4e99b4434212f92bff2b99c94a08a1327fb45dd3367779a12d8dba9ca846b85c6216add315fe0b17240fb021bf61970446339dc93ed53cf1c57242eb4aaf798a1b8010e9471f78b6f0cfd7a628ace627bc64a4c6d853af0d7ff00500b8c682238eb37f59972ff87a9be9eccf69115475ff45ed6daf9d462e09ccba899315b5dd59a3cd5c3ebface31f99854e0475fd76cc7c191ec3f13ed7933663b3902b0cf7ce7696cc9ec28c13df6b9cbe9182980f7dbf7ebb603274a56871de960a52bb5835f4db71558876202b8d9c4edaa35df599f1c6dd105dffcb077a7ad8f7748c58d6131546694bfdf97a645ecbe3829dbd2da1263556a3d29e92a810337c8c1050686ae880314b3e808abad278c48655708bcd2d711cd93f446911a2b323881c98ac389582fe0a9601096911a8ab0dd8669\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 24a95969a4ff4982bfa2021ee1ee009d2e4ce995e6938fb48ce35041842bb516ce21f5630264f3f7140e3135ea5d01eb0ea6aa6c3b85ea5f64f1de1de246bd6dbafac9cb0a8a0003c02e5eb68714d569c8036bd604aa7bc604999a85cd3caa209ccb12dee3b89dde2c9bb74f0dac1458399cacc7e4ce538dc3a5b54c5bf7d3132430110089d5b4731dc91c2711dbe0b46b97ad7ecc948cf5881c1473f5b6540ac62963357680f1b12a09a21a957b512126c7457b0635c185d36090696c313e8cdbdb92ddea8b8621d1a640bb2636be15180595e6373c04ec38f981f05c6e255a327d9abc3b3bc04680e277e593b04d8d89963bbf83574a5fb63b4aa1d06de63e4077e8f9242e886014109c3360be74dbdff64af766224aabbec9c0c0a2ca79ce12765cc8334bebdd1355164ff636e24432c042443371f9d7a4ac66658dcbcb001934ea8b896c0bfcd7e5ce140ae265d253180c72fc9fd05b4dce2b6b664b1c9852bf84eac06ce5d237f242fd2cc6d61a870691df8e9b5b0cbde491edf3c8861e\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2bde28ddbc4e84009a9c98c71f5e2b7ef6622d0283889c94a31b25074e8fc2068aa26e4ff0057de239b4588d0421b8351f8473eb2e66c4a2ea28a4ef81613b5216059b35c2aa990c7cd398f1edb7c93723a3ab489f7a91242977969c19a2e9bd421ce79eff960a06c52f05c251d1e8a1d4e3c799ed70948a6ea35f396f6d83dcf8e1c59604730e0d90c2704a9aaa2dbcad25c9c3c559a73b7092a016e6761a65d41b878a5c717ba63344cb1adc247a92d377345cdfc24b652516de0123232d3b0092cd3f5d540b66bcdc024a728d781536ceb7e41fd80622441feebe4fcaa6931c54d67dd28dc664df83e3ea2eed769e24ef7b7ee9f95f36b31984924318d506635f31efd096aebc8a3c04d6d09aecec36484012b5a5793a2405458a250897d246a5829ed7d99bf1638fb5225cea2d0a351fe08aaaa8ee724a824f2b6ddcd69221f4a992ea5edaab8969369f869810b4973cf65adf4529f68d1c0fbab24fd1e80a03b71ddf702418d3452a27b95752a0f86053d29b63b1880911f657e4fab978\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 88258637f7eb07cce4e8cd05cf23340e796bc7e067ec5e74bd031a7b870e87a40597be7ffa8eb135297f6c4e4e19dbfbccc49a23b5a7903d1c8cf979a4e0b181cef1c48a7ecc5adb8fb614415f9cc727d2985b0eccd51f72b714f2ee8a1632b36791a29e68b88a8f482b24e0596ee8c9d4c504aef0820cce5f5a71ee3c236931aea720ed6917ea7b41d13b50f909fa21f07e9cd9f79454a3a1996cd5a35bb92b4a1b1537afa65c9bb67091f340b47f3726407b95e68ebe8d4aae735c7802b559179c64da8385e72628f29aa4e4634777e6b7138f6206c79765dfcc066c034977118255f8c82c66425b5cbec3cf65f952f0f4daedfc2acc204df23a707a77e479d33da4db067608f075e29e4fcc3600819881463f071c0b879251c0b83ea5938761d7d63688006e2597eea88997aef9aaad009ab9cf54b4390eb808b09047a759224835e7c282b301b09007a15ed23e93a33e25079b5079089428607453ed25ec639a513311320dcdfbcbda5fd0f47f6035f0c995a7ce980ea7b2e74a4ea3b9d4\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7bcd19e6ea965e860485b4a886d032b2d79971241ca2c512b781822dba95d8db8ad9ff4586e9f238c885e464d8e67f291263ab6481e93544904da7abe00cf7d312077447c7b0e5026114bb732191a06beeaff6a05986a02919264396b8f0ed1eb9bdff5f2888d63d3d66515f30665c9963e13e914feabd50923f674c31091d71b2d01328c07af2d9c4da3d41942020e179420f3d6d8265ca1555db51aaaf281ea92b0b5b9f8deb982723825cae17a877e6f0544d4fe48f8fe3db3a7018691bdc39ea7021ce4d2c052265b33a1a0cefe72392a52086f673a10dfa7240d88001a4053bf376bef41881c27510edb203ca07d8fde2955eff7bec85e9a44794c0fa757e385c376e6be063eb90c23a526f4fe4b5a3caff01ec148bd725ac6ccd8cbacd0b336185c3d98804bbf06626bed831afbaf3c106a847fb72a60e39b192940c898020137a291c656219c322cadfee3100cc988b98da6d203be161945e4d95d455cf73b28eccf5d6f9c36516b1b8a1dd57531d8bb943f3b50d04970b0c114a2a86\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 43f62292e9039df3d1160af93dbfbb2963efa6dc905aa967bc765415a74fe4a95612b53866c56c6ba42eeb76aec0a5afaefb24ac7a4eae23cf439918750b2496579c33806d9f60bdec575473371c96ac56de3b1df2d00036ea9166341720d4e164a9bbad13eac4f9364882772a20630e2b067f7d12ae3b02385a638ee562570d4b4913cf6d1f9ec6c36f724c545ffe7e0964d57531925a9de4a58511674f6ce271cbae8fe4d2502bcf5feeebe44aa6a6a6757eb3709b139569b40c019dbf0667d0e23d7a4f93075ea68a303df9aa58b02302d753089fcf6628c318a80815dd3034e5c67cfb88cf678ba1134e7aa722452c0da20328aedf3520939afe9dec999691dc3411f75815f568e3b03b8f8e3c08d99b958fc6e463fc512c44e583f869c9154d630ededfc507dccd68401ed8b37dc3f8c529936d5ce94e6e6ee06115c3d39ccd85e86ec0c27087a82774f05a031677bd5f8", + "d5440dde337b860f00deb788bc9e81531bf7a9492ec4af8ce04f3c94c6746f8fabaf9b7be9e089ba956779d9d\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 73d4d40da6efbc72e01d95c3504c95737fc2e401ea73dcbc56b2f1f784b54d0c4587877137abdc84d67383ab0453f69381df09fde92edbb90fdac2b54451d76f00b5c553949ce6e39b86cd5a5fb555f231a1dabf895ef9b7c905ed9b92e333c0af57437662ede62093dbf6c43a8482706853c0025fc724ee13d17d6f052564550140c52cd5f52d98622e02da82ebca62423270dfe18333a9f202b9f6aeaa84bce014c8ff323be51327ba1a7897911df7172b819307bcf09069a3fc1559335e7fdf06f082dffbac70a973d70e5f4210c91744083d5113b510fe721650b3be52bd003b30372d56fd3268bf6aa0461af41c05cbec350f771eae198ef315c60c08dae19b0f31d3ddeaa144cf9940265660c34cc579b4b825616aa3d234d600248645d778a789d7275166cae5cbccc14c3d81c26596e5b236838ce6cf701b106e584d96b1bf40a75398763128d0a748e8f0548ad1d810a00e961a88db49898baeff2ccce4d56d3b0f059ec5727d03ae56499f811705bbf6ab41a1a3683e3debc5a6f7\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = bf8c782edff2de8dbc7f480a9b29f1292a5f1ac96ebc92670aadfd369ec83ad35987bfc0ab3915dd388a504ca34ef43f0ff55d52e891aef35c47c81493fe6ef53a4cf5de1e415278e63339110722c444c6c2eb26becfd6589f18f2925dba814d5e63a098bfe8882a3bc73a9a184e8eec0c8b7db26b4524a7b3eb3975f63fd16bb461b42e0aef58b7953fa3ae09f5c8c38c4528fc48199fb652b27bffa9c85ebb162a0943af6c1e2ca954e44594157e053f35be8d40ee161dd30929576a2cbabc7dd0cb6bc3305f41dfb77644f32c67d8f04e7d68822def40d341f3963a12a1acc16338d3d8229ff500fbf6849b2507b4dcb68ac7c8e06a076450b3da320ed8673d86e7bf7c91f8379007ba05303489eb9537bf33c275845c923d3881b4a80998e7aad5b6a9f113bf157b3aa96b45791937d9038f94569f1fa753ec9ad612f75bc89fc79fa5d26711d39aacac5c05b06baa5efc40d9081fa39c2ab8de2bab3ee5023a0b668e17d21e470cd1efaf5e7087d440cbdd7b447f5fcd9046fd9197acfa\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 18c76a48b8a07eb2d64933e6d369bd7c03cdcdf1fb3bb15367ace58ab1539c3798c1afba510f46b1f621c5374343d55e11cf82fa1da003409702635c013481fd785b32e495dbc0400502ac60b82269bb6e3b9a405f6794c34fb801f920413d7e243ab31c1e7e2bb25619e66a016c948a24d3fcd24a63d45f30f0cc41f7c963ced75755a11222095b3451726708b3d255d60c47746633b822ae2ca83ee50d7dbb5bedb2ca666a80a24766ff121b6495a26cb9ac14e0f11b5a17367fa2ee7a3063717e4511a7588c2325e5c9a479db77fc799b42a9cf0962d9fad45ed2cc750bd30e34a088049ca942ee1a83807151986df4b2e70afa7533691171dabfc861baa5ddabdae2db6a3f07086fd539fcefd4694fd9764af7d5d38a75c3a47ebce1820d1a15cf9791da6c194a4d1e3d9484773c256d48989cf800a83c2aa82fd88fe5fbf945856abbaf0a8b843422bf30f933de51739d583ab7870e0402c1c0d8fb95668a35027bc40a2164ea3938e7891fa052b353d87939724bc6e78c3950cd25c3d8\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 89f4d0a739849f213436c9575620dec5f5c2d6a7e4f83cbab2a57b3876663af38a0456a1106efe9937f5ad6d8a8952ac24883918e91a9d19c07b5fb67ee7dbd1716c86ef7f45c651e74a41233eb01d0ec29c7739bc93877fa5a880f5e27dd28e3e58f2c034c6bd512b9034625cfa60fa1b1b966ddef324eaba49f07fde57dd751b22a132cfb50a2f37c69f773feb8637be2296680a1b1511e76f5f31154e6227f748dd101fb7ce4dc4d78aea619ac06a4419c23e2c7a6025f3084c65ee4e2d898f3b8da4b180f592a3e85a3fcd04d788fbd55e7543789c177076918fbbfd0b9bbd69106ecfaf980154b008f86418285623bef88173d6e21de37fc433163f719d1a5b59a69a7b3af6e2c5e8425135c9cb402db577bc0d57bf9e4a2ea6792e59f22149be5280f19f087f99a5a645e7058ced09552f7e324d1d786c939490177c6c882e53332fc64c24b95866131c0e78daf801a8d94e59e1b339529e59fdef88bd1440b9f4928b1c68b57ee8ba22191dd423c32fed56bdc01ad0c14850061d080b\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 75fa1d30a796ea7e6f6225bfc9001a3d48ee2b66985772624f51f74a4eac8fbf0e126a8a21e7904a4668c37257a2566f6d5398703e160c76fee8cf4510ec4b4fa38af5139a117a40cccdf5b2376da59ccc1030ffb37ecb65e7cea239eab5369c4b20ddaded7b4eb5ed79b3d878844217f4094a536d824b2d1b9960b8f9aae9dc42fc5c9266e0e15a503702096fb725fff3bfe4eefa8bbb232ba28542bcd23f434dc3b3c8b827ebea88bd1e5058763260c45ce83915d7f998b3b557a94a41f2d6e10d5c6c0881c5080f51a20c8def82ecdf795ca5682a4a4b451f627e26f1a0f4c01b0c4215d335c753908ec16f55290fdbccf0855047280c1f0e226199897300e456ecb74ee14bb1b68ed54408c5a3932eb0bea33ffb2f495577f37bfa6daabb8971bc227cbe817efbcc618f7365f5ae49b51280cce5d90a085fcb2568c7381943a93caede03f492869a768c7178abd6d8c051501a81eac5bd87da6bb0424655356d5cc86f0b04a598d83df52680cb20a49aec6f9966e03feed8de78c1e06b2d\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = afa99ed41a02fdc5677826e51db78440e7336159a829d315401f799bcda6eb283c2c442706e8ede5c9641a50f735247795fa823d257cb8342315603904fcb7f3fb94c1d885917b938bb57dd8114effb76f0ffe53474b3b6ac909b8ed94a1ef4886b8101727038f2d3ae6daf82a3e985ba5e005998c31f888c3c53aed0246b99dbf17d12c59c02befbaf580ae4b54bf6cf4098840d86ebb406df68b871ce3c6a6452fb936c975efa9b6b40b2414017eeb8cbcc58fe3547ebb16f95efc24cceedc374744cb102ba6c2de6b6e53d561c5a6be9525df8faa7756a2e7af39950013289d08ea48dfea7e6fb0e7f228a8ed0c19e229f1929fbac0e183aeb196c46a5c0130233d78568736e6cf377e26e3155576982e3d65e08aa4def25b1a1a5a225cf884145c187818e71a989e0745eb6fbf1768d6aa5f0ee20d8d534e1f4f17cfbc78181858d1e887848f359a92b44a8344abbf720e9a0a195003e6bd881d248a80982201f97d524ccc159d0d0a371cb5d913429cd43d4416d9d572d49dd140c00a80\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = b5eb805ad3344e51dfc3b5aaf0aee47a8114587e54079d1717ca04e3e0786681fb9a77aba6a915369573714638b408c4574f8951bf38ce7ae055bc95a078dd6c68af56f33d6c8e39e61c386b8d5d148e94fcb64b2ee4826004509f6c033978b75f403b8710b16d4e0029321e340c03dc4ee0cb2e4dc112c1199a9de821a0d73fe5ea361a453175596e0c945ff0812b5b4c92bdf3cb628637b4fca898b09be06188183f37a59dd33398b786c8ed44a0f36a3a99a597071a17b432c76420d5a68d683351d85c6860572e5213f45bb7440febcc4ba6908b3920079021d03c0befbfc0169d987d5e19cd81267aba56684be25b8b94e3f1229c5757966938b63c66ffdf0f07684214d415d73bed838212612d3cd4071a53ec43cbbc5d71bbbb60f51fe310c26054318876a5862033fc21eac0c1ad91f7d7eea9318398b2344dbf3c2f04574a5c3db3121971273244ec876a63363054aee10ee276e8cca376e60189645e3f67517ef820b35c930485479403d697b2a72689fc238f09f60e3b598ba562\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 0f058dadf6bd5ccdb3c9a70a4223439936ac81daa5928d09c182995503d72b8077dc01ee268658e8ec4da9097cba57c19d005243ccbd98454ec42bae8f7b7ff9fff4af6b2382a271931e7ecc15cedbf52d1426cef27e033d58d8e153341265552edbebc46bca1d8e88bbb9c0f82600d29c02283fb295caf4a743fd66f096b3ac12d8f301a1a1464a511f1e5da7e46f722919836ed985bdefe7587391443b7e9f6dc7193e51f0de9e0be451ee335a39b875be4fb6e54ec38d59aedd2000f6149dc1e07bcbc6f674baa3d9170759a2db41d6a1691086da82baba102cd85d97476beec17ba3c10e82c213ec0d09afb4fa70775097df3e9c911a2b8a8e3d70f55e4236447c0a539e499bb4f442d218096ad35b104270205d6677f37f7d96266bc180936c1fcd7a34f13976efa47110b86cc4f5b0e94af73887d31d37fc38f84db3ff7b06bf151f16c0077921179fdb52ee89414dce82c0248a97b88eb2aece5227078877148879f96777fbe7fdb1aba00d9c7340f7a66812a080ad1da514fb1d7855\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 93f7909a8a46597be65fe76b5c724bad99e5b2692e4a6a8e9a7adcb38a39bdd7f4048a00edab88fe9316f532b13be7283bde8f7c4ffc4a822575e992cb8ae46848015c0ee56817aabe22ffc2f25c80e04a0664a7e9a82dad7b001e21b5c33f08965d80a1c4bfff52efbaffacb74b0a9c10acc384cc707b5c5295fdd3fad5fb3b89271f8cfe0059c0317836b2a42640e4c0b3969aac4050bcbc756b5350dcb61cac15d045151e412b6aa94d082266e7f4c7dbc83b2adbe817476eb6bf5a07cc7f76fe80b4135e0ec5bc05b57cc823a0b993b7b3e4f3a6803879754220d7a6ddef0f5c6944b352ac5064b9d836a2565eb0e2049c9208b797de75b141a5f6d89bd6dbae167f8b1c7fa9a316d10d33d96fad6e2692b98d42fb6fb3d79a32a7a5eea23f421c5e1dcf09047b77b253217c3674b97b85afa0162d818e569d6c6438235f404e8fe9e3b3b7e38878b5bd296f88758b917b7d7cb650e6ddfcee085e52fa5143429b678a3fbed73b588b6b4cebc72d3e23266f8478d52629cdf1a80ba37550\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 2c40ce5377f098678cb1a3f6177c8e290b691cbafb4195a6244d148ec48be99792f6cebd4c40614d9250bb3d6f6287171ffb713a0814a6746e2c4126c82f7bde8b40518ac506cc73ee8e0516a0d0257ef153fa2464e17cd17dd6ae5343d43eadf67c4bc629082b484985dbfce3cd941c1b69dd4a52b0f177f641945ae0037c79fd0b975ba955b2c1901883f2c5320fa7b43df6c673eba7c76c0dbfc03a470bbaa2a6083892af527d0f592", + "1d2e20080804db8db936d02f53cae19d010a113f080e0f7baca77c70fab4819c2481f6f505b5459b59a2a482c6b8803a26610cf54418a931d48b8b3a2f0a5e82cae0ff81bec4ee9cc93e8fba9350b5cafc6c020b484847d1e590eb1484caa4afbb7d3cbcff85789ff47401d69de6554ae7ea679b69e115ebc0fb3f89ce9d104e4a27a3ce5098da2c4a840f496e1b2395a8725dee67259bbc71e89aa18c35a9c0db3d092e02bccdd93fd6d4fe51eebf17f5cff0e990215537cc0cefcd69eae4a596d8a95a9ec40ef651ea7da397630fafd26494da0be\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 28d3351a970732d5ac3bb69fdd6d85f8923a20f7f7d72985d6df68e41f972dcabb638534d163eb8cf8baada3e1debb7249da4efab8e1ee782dfbd3b1add9e77253ce048c8d0a350936806ad473304f1dd0a0318ad10a11085f2cafc20114ab1f724ae5ffeadaad0bb17bf66277c499876d5ce17026d6d30964dc43e9f68e271d5b6c81b9953090f70bd9b9c05e3219942bae623faf06c6f21952427a5a1a40f05c0c5159ff6e9b94fe4aeb8310b0de9e69ac5f0f4787b6d489d1040ad63ffb1cf0fb924239d5417cbbd7afce71ac0841a0fe2b6d6a5742649fa60433c55fa2cd99e1e173b67528784dd0f55488f7a9939b46137f9aa33bd62e477a77d5fbcf0820a10a499aba3ca383210778e7d84dece64f121acd8d74a761219c6359d2dcf9aeab782c58dea8bfdbdedd4490bbef8fd514f90cc5a33992c4d3609e300797fe0d5dd203fa71f4ef0a47624e5e51455b74ef87e49b9d122264ebdec7fee7bc0249f02ba60159aa0aa8585ce19633cbce48e6e4765b0fe7b4f1da4a8417092873\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = c4a4057d4d2eb4e64dc163add62d9ad01b24bff92fe0607c0cd39e3dd05e5661aa1a2c9dcdc7ae8a034b93e502a4eebc0384519a2589afa113a0dfd45b122fe16bb655b6a034b668d7d400dc250b25d7dd4511298c1185c3d02b82ec63f3f406da0c72d204881ef5ef43e63cc64b799044a6cbabb533d862efa9c3f483eea43b26859b134a2f321ba5ad09ac8dd3f740c0ebabbf35ad3736b093097769a635283c20c1b88ea0a115d59a692552ad8f70050d586532cd3b65bd9e281781d09712b1f1287350a20e40f11af5df580a98b258fd7431daf19f92546d5b997df560a3237e8a2e83e925e45effd4cbf2c1cc439d0d3e658d836d6b93513c41c87bfefc85579257cb8273dd0bd4b7ca21c9e2675ab60de22289b31f5f96f708b76ec72b0209c8846ac6e32f1d28996829ebeb949b2358cd2332178bdce80804e4650b84a46ba4f3bdf2aca0edcb7d4138e97dc14d30ba34352d62f547caf117856a745e1e99eec18cc2fbf223f4548755fa3ef8d9d7c0274a9a7411dfbde3bf53d9d84c\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 9a86cbb68e9a4449be3ea6d69e5cb21af81647a8a0105db03c54176fc83991c2b9ea548fa8eb3b248c72c391cd23dd675e865ffa561cda1abbbd58a85fe4fd108bafb213a8c79eeaad5bb3410c7d6e85a237d1e2f9c8e0b8b8fdb472732bd4bbfaf58f57600996a49a742a6ecfaf55319bf939eece50d1b93df931a144b07e075f8486b5dd65071bf43812a27351402b849872c849878634cb01483df78690ce0dbdc5d45d225ca87614ed1afcd084223c86fc9bc9c891996c096f9296b9d91a564465197857fd6769977c8acdf0acf2ffb1b24d311a8d0a46109594f1fc4dd5b139c180c6f02b88e72e155626a748ae9da4eb6a1195126f084b012f72405f027bd22baea81d765f435efd2b97fed2df6e38ea603ddf8f3ae969f9690ac22d8072211d1337125a3e88388fbeff1b0c7cc7677998ee5f7ac31d8e268ca900b72c98889721e18e8dd74f4b43b083998b28eda3895cbaaa607b9a05f90e36d1e172a95617e9b102bc0717dd2a1e807b11d72a8a15288ca4643c791694dce30808aa\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 71399eff1c82b67a7d5da71df51de813631f51679ba441b0532997ada04711a2c874e56ffe4d9289ebdfda910988e1c210507a450031592268385fb9c08102c1961d33bb789522d97fcd86b7e27b59d3c369280c7367286f46c1e815851349fc16e1bb2fa76af8ab168acb634a22a8d60d7c6d2a81f4db77e65c621bbb4d0e5628ee2320b042bb4c83e55e2137ddea75c3547f3a6b93f1b0a0bd29c729835edcbf5129b33112ad000458f4a8db1149d514db7ee70e4b58c11b37809dc32020dd81fd1e3b0bf1354154e7dc0da0403ec944fc5a855026473112c88f072a8fc39b984db2c97d085783d4f8d96c87f4b826f39414ba05f72c7a22e25ded75eff8f00e53401aafd0ec08b255b5d03b2f2cbb9603a2def9e5a754b33953d3c03ab8cc7f8db33ddf6184150f5680f7401dad6b6c38ef848c00b08a70ecead088f895acf5f25c9e21c87089fab3e3edb7ee3bf3570145041808ca738a46c8de389b5c2f84f98f76941fbe2a9a159525994781137cdc00951d4229f8df099b44930a7a72\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 661c8fc20646446cdf579d0a78003666c8fd9fdbe9845c02823b8e3b780f532d2891fec3a554c743e87fe898300ee17639077fcd0936c13eae51a40d98c329c3ff525f65568bf74fc84fa112b3036610d49faf17f3426309805636b9502c3dd81994465594333e2263969da1509168f1228ded2ab8ce0ca53c8d638db26899558ccbcf52af7b7017d68ba5d7bc79657d72f87a14ad8224f40d1eeb1925b51f8330b221ceddd530a73bb814216fd6afda33983a74f7da5cd733729df22ff78e027eff2cfde27a76ab1abc97e08375f670eed1beed74a9b9205ba2497faa1c46f0038f098ff5950be17d4dd8a3ef2bb0811a8945188d635a977de685435dc128184948c53f43abb70c053b9c6298b7dabf1df91116cfcf8945e78c7e3de5bfbdf19b6893e733cbe65cd33950c77132b7816dd47d9ecfef2f15b4290cc1a4cc5d327800215a49e679b640b0ad1aa1593a730eca633ae17bca48e9efafa0471a6591535c94c4d123cb2ffe33014302f3109712c279834871d9b18982ca413d131126\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 2b0d588982c68cc0b39c00ad80c19ac645e038d3bcaa384909d94cf6c8ecfc886a83084d19843f2878879e60f5a46af4ed8d62f533cda8ed04ad8aeede3e3c823913d62b28bcc20d9836f6ddd9ebc3eab3fa52e37638ecf897d7cc027bb05facd153090a78220c10ab177f1bf19b2c6ef6ce94611d466ef758eda71f4d496c420dd88e712c6dff77149f4bdb50d1585db27fde0f2fe37e04edf63e56eb9cb72106a9a821a670110d69683f32acf5972efcdc34ed5f8ea4a40f4f6329479499d584c4db4df7122a2c7f34e866564e68552ce12fc30c2a6f24ba7c7d9dddd7fc166ba8ab0b8b7c1cdcc8af880d6f1f2b621286ed722edae310891e3b2b81addfda316225965ddfcf0568486921b125cec003a7b48af9dfc95b0a9b94c53535bd4dd977f2a4aecafe2fb08b5bfeb997d22f6fa5fc946481838a32273b6c7a89817dbca3d2730bdffe63e096d3e88a7b9785e7ecc30cc5c847f193268ed761e05231e3009cf3ee58d2a4f03ab73f5053b0bc1e57960ed3ab43ab5b1493d5a73f6faf\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = a60239ae28daef9b18bc56ca81d0c6161762a66e8bcba6f387f71433464361450a6a08912bdbd86da34ea4954ad0c6548131d6a4de7f60615560524ac5644d69e14f4bd11a29b8ad20753e2c74db5529ae90a6c733032e2e365f9f57cdcd5adf5c66979870d8eb9c5eaef244973376f4872c323bc8ec32e5e92713527b6545aa85bfb7c31325000e6ac6dafd5b48db8286bacd05bb4a9de30d81a0eb8e4a2a888a71152e68c0ac99c74adc697ef9f34c9f61dd00514a8285eec30364e96652c49a32afb7b88f60e98a4f0d2382d795d026d8428818633cd5d62d97074839362fdd2508633da09ba491ba0ba0136056e7cc0c25a0367f637e90ccad93c60c5f735fc198810a01e2f1394f5bbeab64cb0eb87c83f0487b353c7fac6434805476f65292a72aad28b1bd7cfc5764a3a6457d05434814e7f669fee063e9a171a7e0dc627221b540bd360fb64ea870a03239eddb4cb582a0fddd6ce73e272c12901af1c9865d30f11a461fa1d7280eddcf12b8531fc1e5b6d6a771b9917fc3cce20188\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 1acfcdc7d861cd9b8e26fd8dfbf13517caabeff310a2f5df45941cb6c4ff23fdd500fd1ea35a8ed95060496aab0273091dd9725ec98b14a71f214e7e9f9d8bf77e62c2f1b844d9ffdbcda7c11cae4a463f9e525acb924336a5c93a5331c2f7e167bae20464cdc68fd08f515f21bc897efb732c61219f8a741e867c3faee19dcd9443a8b1f192fa00df56a1de690e0670cbb0149bfe8bb5b95ebe64accf43a80f5d262666da65cba48937ff81b78b489482aa6a59951b1f56817d288d3942cd79ab7eed0b934f6ce092fe775eb0cb7ea9858e6810d3720751361b903706b50f17de49f10616f9d7d8053775b00f6a3d6e77a868045a85ad43c15dead74f5f86e46e2a455961b7f6092317e87d93b50a247c11b8c27087e3ecb3a680551e3bc3874a34cfba1f19f69a708762d1ede6bd560095f31b56863efe7913947132caf74e50c64b94ec8ce28a0ac1b4044f23b89e9fe5c706647ac8ef0305a0402a84d21a3c546cf7a7ab63aaa6577aeec89c8c260124cef46f587bb4ce940e0f963141b9\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 478e30fd62bc07a0ea6fcb4fd9875241139b012c921c448821356f29bfa331a1d44a03870a9c79482bed3ac275e0c2a15f731044133b5f6e1491af217180c7a5133ed781665265bd6fd9cbf3d65111d39c6c4314231f745291c70b6aa3d6ed696157612967a283003f982135520f959d24df7247d0aca3a81f7af80062d4d2b2c4fba1d1982bbfa37d5f9175747f6010391c78bf6445f553a5a77251f4607cac9eb17904680536c2965b5db4431619363245960dc8643c83b914479ef0162c70713b985241d2b271facab79253369b37fae70888db2003cf87677e915888d1f580e1d9fc7360ffc8a36c15fdc1f27eac143081612c004b81d4ed63bade76f04b0c9acdd5a79457c5be90ab26ba7c11ccb3945c05196b7ff9e29c713f6de873cadf6efac0879139d2bf25171474eb4b754762352bc77efcb50d4328e940ab4aabb8907043a4e24fc2eb0fd7da3f31bba14e1b91624212eee638ec4051f1cccab861b8aa6948326bcbcdddcaab5f2d0b38737ca7722d8cbb310585f01787007a9f\n\n# tcId = 113\n", + "# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 1e035257b6ec35b3ceab42c5ce7a5fc87fe655a55802b7f8dad54bb048d92ac7b22982bf1910a810d0a3c5aa26c5eb9fe3e2692a272ea063a31607b0765bc3cd4365f75db38ac761651f9dce99c3400099fe37a76c9201fdc4f97b83094734dbb64d6ab62e5ac6b581412943285083e2f8ce252596f8bc0e0894d4685de91e248c62d68bf7665028d06b9a28a231243f9022c66c02ca8c47c711bcaae628baddd685f0a4001a23a11e4a898de0c0247373e0a5282e2214f7eda51513a903c810a70dce11a95c808dab26129af2555679d8ba048585a3134c0197ade27eafe7f4a777ae835f509301bae94e9c6d40ffe5ce60a43b96a55efc5abac62f747d5fb3a1c0b3dae4b9bcd8148eefcf7de3bf1731aab7bd21946d58beb2203da98397bf4c1479b1072a01782f8f08367754a1e25a93a096baab9e88475108b4032e473d005a9c91eb3043ed1774cfd36aad18446485f138da61dd9872364d35aa7e10e116c70773547ec1625c9861f0e6c92a9243379604271ba88904fa0d247459a6f0\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 6a245aa2bff7783e93fdf6f5014a01934272c88d6ca19ce53708237bd15ba9431d0ed81a6e81ccf78eb2d6e1d9ed5c46d39f818e1a1dbc7634fa1e2a1ec207335bc838932efd7eb85bc62fbfac07b0710740a9f0b0621bb212762c891f04e0846ec594922e917f5cc0509787603c9dac04d98407b967e463a0d912bfca979b92b12e756051e7bf023c9f0fe061c0d67a87b79d8ebde7f60ef4d2399964b8071e6a1a9c63a8f316a174e33edb1023fa0a0bf272800a9620db648d061eadb9d180c576817c759483f85ce359685598f15c9b8f00d75f4a8a1cb260f666fbff559da3a4f075e7915b284febf8bf21eb668012dcf31692123b94b4e44e3ef17c942644437d59c49b437398bcdc68b5110523fcb48241c60a8f4fdbc0ec45e80acf259e61cf8414f4dc9e9adefdebf94427b2794009b1377d64059977307059828342d605545e0b776cca88dd0db753b5d8aff63051f9ea49da13821ccd4cd11c2174f5cd179eb95c6998eac5b66a19b8f6a3b4c6b00d744ea14ef64599ebdf94f859\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = bc870ef5ce9468f85274cabad18feb0c0cdf2053f0becab52a3668d7ddf0239197eb2365f29e60edc36e673dc7b0f89f605ed6f3e9670b7bbdea42770957ccb11f8421a9982f38f2764f75f31fecfb1267a9b1e85cbef52c2d3e54aaf304d54edca0e2464a71946442970ee0ccc545946ad7cfe08363c87dd89cddd1d7d579c22ec49525fd9d83760909209c1e79a24f14750f0d0501d517909dbe852ba777415075a797a0f410289fce04c31db77a97f1eb1e8f978713d2b6bf9595c03f6376bfe9b9a5a8943408170d69272d3a5ad2b98b73d1213bfe97fdbed1b29b7b5a01bfff20122974b023251a2825512a2e99031777491fab2c1f41517953c10145b0b606171c22e06fcd78d6f51c02a25bb93edd7bba6fc3d606ca802f8ec4f82c56d1aeafbf6b7617c604ea53c736ba6cdd755df7b03bf3d00266645e68763a2bc53c7692bac8f57d14675d6131bca1319f251eb589c9cd71062d3792a3a359476038dd1f55784754bdd59b91fb7a9fbf9f2274705abf67b26a227e7ad1eba201a4\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 92780052295fc37894ca6c4ff5f6d68e21f8b907a5ef5411edc4fae49b615503e6b2beeb1501c0cbb0005c4c29bb918eced60c62fb21154d11d02659ec1cc2a41786c813fe80e8fef35594255b11a6f6903b93411b1db9697d69f2ce115954b095d5e56cb7d202c1d4f6fbc795d4966980255098f4929ef28cf80a2dbd5fe2701ca358c6acdd55cc801a0f8fdbee2be57c6b6bd168e90c39cc20adbaf6bf083e3b53332482a411da3983f054557ce976149d82e6ac3613cd95b876c450a474823d03ca31c1be5c7049a5b554fc2b658705f16e24eb9fa4bed22847eefa71ee4a253c52675fa82cd22c924e33467803faec7e4ff7fc81c40e3c8d102cc4d54ac8b5c06b8416041a50cbbc53723373bf13a7f5b2a062552ac843cbe18b3d5238a8bacc5592dd3af26bea3d8cf6db91d9b54f8e61d62f46b39bb9d918ce5d77370341e5c3ea5ce4f46a44bdab383ff1a5afc5ea96dde6094273606e4ce4ae545bce61549e1248011d6e2bea5dd6d219d9d8edc621db13631d17067765827c50aa96\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = abfa120284e8ecbc3ef8eb997e304c657bf2b7e78dbbc7b5d910e10f02a1be9ba1305c1ba831da12e5bf7ceb70a6bbe94cf2c422b2e56ddce696b0ae637f910a7032fa26c8b0489cd57b3af8b3eb09ceb24853e95315db7b6e468c2feb5287f4338d5b301efeb79815a981c8fb5112d16fa5ca1a6f243af9bb57c09e3c0c68a1cea5ce25cae53609295eff951bf030db144d3871580f1b9285f6e58b7d7a0b23dcaf5dbd2d96b81674bc9e4b748073aafcbe476808e7dae536971015891efe25ef14b00e37a63300ae82b6413d31d2453e55b3808670ed8e76fa733d24e346922d93c7d340a820151686f00c4781c08419caa56c950b9674406cce2c1f2658eff3413ed6be5ead69b6a46939120e1b03889c6045805a1f302339c544f32bf0ca56c7b49b2a24078093d2747c4eccb77b2db148df83e4e2094683716abff5599dc5ae6d4b132c2202aaafd8a5770827ea93a15a361a13eaac22edd47e0154164ae88022f6e5da9dd158a3a25f5fa02638b1522180293dc0e06aa0150b98e7903b\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 6874b0d4afa491d22ea00d77f521010641dc45ab6081c939770c8a74553ae414fbdd1a2686f346eb5e50eec2b75be6b4d6e3c1574d36fe32968a5683dcec662480ec526136fb119ce78b7983875fed59989b24a2082b7dee49b00cbf3e18d6677ac640f723719362ea64fafcca71c4e5925159bfb36b7634acac6cdfd6eae269ad7a3c2880eaa5be35efb72d42ba30bc5fdcdc0a642e8d4aa2a6c1c7faf4464ee49284142cadb7851e9ee832a367558b1f3f06d4d55f50c8814ec6c2aa4a3284cdf3d471bc07506c4a5f061a441e44b87912612f1e4c576f4207348b40db8bc173002ff3437555b724684bc01e8490e34af10aaef0aa9d509840e5ff8a6cc92b2877d1ca108590d7a382d6a45ed0eea4c0e0abd5ff7675476b253f06a25f21c6e658634878ba318a3858737ad875d3bd1c1cd1128a094d778791e6163970e78909d4bc1f5b62d912bc643afe9218ac9dc29df522909d394a5178b285df3669fb321f0d7b6c7b50791b6ebedcb3740fd7f382410394f5853724970dfe75bf6ad9\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 7fafe1dca84d820316780965987a135054f498e3a9f70341dcd4cdc992789dc412b68440806faabde11f00c0b6499d84d5962ad1dc9586fbcb57ff05d57c907d74bded8fc8d990c71336d814f5b732d0fc3f441d44b29e1187102664fa71e047f0bcecbd57d9d6e36d9085c37add3a9c110be47b3ad2b34c5b8e94c6065a56a638fc073199b16e17efec87cc482a192f56f8d0fc0c84e211d1dc658fb222582be550439615803be1384ff8d2ade2ce1aa46bd6544141246ca74b86efefc8c7cb169484c122f2269fda56cd87cb257f7b31ced8516d01423c1ba7edc1ffb5de565979cb45326274f160a67f90a4fc6e66306cb833b914fb31b2070b3f60316aa1b2ad5cb5580be9aa47c3e2223fd9427dbd6f35d83e7a890a8054f71dd4d1b11d2597c47385d3a6123cab406dc61c562ef40d626e7561fb81fd3eb1ab72af94122a40a4f0649022e0ed52fcad209ae22613c5956215f0e3b4bf3d2ca6b45c5bd5c71138ebebecba05d0ff12ef257d5e8706a628876c958e238a3e4a8b3806bd4a\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 5015c5a03cba54943ebdb80e79fba8a8bd61085c0febd1a675aa2d0712cca98b1f0f43cd3e239c890af58dfcb40baef28692e81163bd87b5121d67c588cfe972ee8d560621ca1e9325161bd13014625ec02e433cc97f7025544a935e0f8cdd728f7fedf90a8a8e57d5e12d9c22306fbae77c092e13a3bbc9d98bcdb18714d62f3f24e65e74768c0a9e9b8600e87443eae345919ed7fe4c8581dc00f1bc0c2764cde2108e21d34cbb8f0ae4293a4f7d4ef938e8765bc862302379d979207d4f7e294f6bafaa309aa4013877588192ec5c669eda7f41427f81d75176480c85e3d122072d96174a57d77bd1e637254282c840db3d2a1f7f05de9f47422c32f0854a9703c668515b5b4030a5d26611e452306d8d239589458b8bf17f56f3447969c783496ceebe16a163a06f17bed06d4505b8e0d809e351e59883cc3ed15faa22683beb684e04323f146dfabd03e836f08382f5d00dd2d1e9ca17946446c306a2b97875faa042e3a4002fead6d15a07b7b4cc9a2a6b5b436fd03e231cb100a43fd1\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 872518041aaac17a061bac385b6e03b44e0e7ac1d1d269e166cf4e4518bff2e3f70656e7741555941032359b110530518955870acde003ceb4a528b9abf2a18c375083af2554e57c5614e82bcc012b4677def5ff7cc63d4faed4166097160891a0d0869cb1117427712861fb57b2c545db08427f121533bf1f3df1d04c20fa2150c18d4e966951801c8fcc7ba6f02801365906373d239942be633d392376d1cfea3857da770ed5c3dc4bd35b7c5abdb036e829c50ebcfd31a55c4baa2cd63d5b54cf92402c00f3e18097affe9be39294c4eb04f033ebc926ccc040f37fc1a81c132d971fc1724c1c00377d1157fe08385b3b12c6a7d44314803b1a2c72f7a8836c72346bbf428b67b86bbdf37638949d81ff4153c81d5fa1b8fe3f8a94701945d225e598876f2457adc2c58424908d70e3a61e7bcdc909993c75ae0c24a111c204ac28aedcd7a0cef5adb278de2fd395c97ba15c9208e32d709a314f17504ab83f583e811845e6f7143e9f6b9437ccfd699d663e1749d71b5639009d3e5cce02\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 745f043935ef3cd29118668cb2115b671af0e3ea44e9fd20b18dfe1667c926f9d4ab7e281345f47a2b06e7141cb69ee1328822cd04c8835c42bec9c19e30e6401bb6e27c20c53b69429e2bf5641c7398338f080fca064fde6eaf77451cc57d8449046becee9b87d6f797711d20fedee58d0f162f71fc8e736229753101eda5121f332afce03b334a3b4baee7c97e0b6991b5a1da18a7499a99f8b6983cea9046ac22b52f7319d0d1588c2105c35773c3937f256b40ed8f4127832385c9575295941572909fee56fd9a457835f", + "049afea39a22792f012ea2d38d0da75fb22e3f0ce7f628a1488e6d30f58bcdce40dde4146b472227a666d3d4902374c283f9aadd499604b45511cd120abace789075c8bd232cce717824c551f8d8d03ceca6009e6db55c6bf5d0c9615ad738681ac94681ac2aed6501278eb882436cd134c9398ebad449cc2c430ab9b8513b557dc4c345ba90b5dcdcabb01992cb9cd851266d1520762213d2c2676b4c2b80301d59887bebcf8a09b012f8907f04f7521175238\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5a29dc4f6d3138febf9978266c319c1bc69cb33dc63eee578ae1bd2a4736d28dd9d99a24926a2a6a5a2404f4b5a15112a7d0c00a24a427a0af817df199a4aebd77e6b2ecbc958d30179e00d8ecf9cb1500a91d5f7f4380e2469cbbe61d91b26573b2f7726e5af49af963e22578c08ff74644cf93c547c64965d708574b4e5496e3923d1d0414499220a6a9349a0116ff8d843c8a563865eacec1c284cab41c3d6aa813b0c5cca1add5e7d2edf36d8845499586b5118618e1a616d91ebc3349f5ee3ee1088d9323e79967929a7273910b389fe94882c28044b8978f5137a4b2d8537eeef53600e5c93734de279717141ac470b8b7c40eb0a3b0ac6cfe4e66fa2e50b44e8fb6ffb9db12c7ceefafc75a89c21d767f8d704aecc416f5771daad4310aef485f0b9c150a4a7fe6c38d81e352fcf0e49cb036aa02ea10c2e6222c4f0cc27bbffb7e89d1556457d73cd6333bec31f9acc6b7d927895e96f1e2c87aae21f8b1bf35d173b57820739c7f170c1be4b67a4db347bdbdee1baf477d7de4b9fb\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = b16e24d20ff575be4f5b0322b0fe67f02b7f2734a7e350f078c401a4f1170111b00e68524b566c7d191e48731d03e3f8e4b2ef90f8c9f798c57ceaa26411836f7969e234ef5e4da1ddbe2f6993efb4c4abd566115727831cee57a7511022c33e47716fd796f2263907c54dcfa7ebffb1912da68bb5572080274a664372822ad2b4516cb54dec43185fdaa0022c84856a178f69483bb743976f3d1f1ea4e2eb77d1c55800b7b405cc4967d3ef72ca6310ea6719617255c95a2e31231e6c8b6603aa82fab5d95009e908986d105296fc1f81eb3709ba27a68edb771e3e887903913e72c6386e3194dfba12defcb6e9764e07dba19a06504faeaf9a2313e345797cc4543c6f38a656c4c1032120ad6e83d65fe51275099c9c6d3619a491c5cd8995c42726f8f7f72644957e87b51b698ee443f81a24ba0564260fc2a776316f3f470ff3e1a3e3d071521351b11c6f4aad061c6ee81da1bfb2f40ed306ebf42f4779432bb79d7f0d20372c55aed8bc9df38bfb64fb016675ed3ac83520900113e1c4\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 3531e3180f6385e8235d402ef40db775cf88d115fe8c3426adba5a4b36d05063130bc2e711d5e71f4fef4cd2d7c21a7e2fe76a4dc02b961a6edd3658a96c78e3f7971649fc913ce8c9c4ec9ebd8be9209cb90073702b97ff94e96471c42dce887732d93f89f7376a1ee0190d7c646d56393f42c60a6db3724a734ef986380e934fc8cb92428851a6ff74f1a3feb94f7f6d3a331d4d61846026477b7d7b77077a8213555d4a7339ceec0c71d65492d2eadb9dc3fcc7b3c0f08ce2d09c97c14351dbe8d2745aeae9882b252ddfcfec719c312b789ba36430d81db2d1e88c29f0ccbe410789e0cc27eddb2b4b6d5d0b980f67700c05cf9e64ba96e5e50ec4e59067cebb580a6983acba34ec260f5ebc6abec53a899483d266b53a0cb24f81c9ca144772ecd622ca3cd0f502c5cfe6efec13574d51acc023f277c3a7efe128fac202e41033ccc4bc78b550a1663fd0d836bfa31c435badd977f38cce70a5fc353449a3357bec99a87b19f92f81c99e1a6d23ba23b5940355b078d05b2554e5885fd8\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 885adf1a5e86d463e8f6750b49a3c3a91a2e8bf90e4c19873e19dde041bdfcd08494a9d25ffaa679c3c4c6d5addf99256f75498f3cc6c09c45bc056daae88a509aed0c4b46df5c1a6a1b5b4f2c5d5d008bdabe5f22a0ba1f34e604fa0fc8c647709e82eddf9889241571a07e9dc91b4eca9af390f63ac20a7e526d945df9541fa43caae141ea3feba0d0fcac7c50f7b03d4172daecca84515448f3d8bdecd2513aea8565227c2da298a4e2cc8f5fe5603c30c220c2e96c3a4d802b87815b1d94e06f717030bb2d173339ec3ba700828bc7a02495a1042b644fcaa02fd9e67a26600718d056a050800eb546eea65fe9fda8258cf629cd48dba7393b5569112f156032d5d4e7a989605423d27945401ae7db0a9469375ecc8ccfcc3f2573570056027303a556115b0f98958fef8917e1861de6a59843842d269c8412da05cd2a12b9e2ae75d177ecefdd5af79cf4499488037fd2d592bcb2828b9ddf9cf7fbe309822a9f0f54368ec2a6e67550da715307eed5e1d80bc9baced4fef132b2f59cfa\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = c0fc6e5e9e1398d0cf6575806d6ce8c10f63d414d3ffb7d9945b986362d9da16d61e9e662ce133ad6672964adb4bac861abc4693286f826e4e77cfd72825a4d6dd03c8befc8a9712c12b0a4c2e0f3128878bd9fea55b629abf7029cb7e9cc381fe6b0eebfc05e8a8666c661641fd247ffb6e3c25bf435283a21b2b785b9d4b0b552ab3538e310bae7f36af1d2c6697df7821bd469a10dc53f007c7a240910f9f137c6d59060390c41a32edaa8f49a5b28484f0f69d2f8ac99bc04ef06d7d8cc6e850376c9e66875d00282805df54398bbc5bd8e8216943f845c89e59fd6bbd6a8e2cdbf148c656982440bf2ae364becac976cd8e40a6159b366d8d0522617f422531bfb83ac8bbac33f6b5c8c75bfc107fdd17d3cc4d54c66cf5bfca36cb1e3ccf4383080f18883b890af744b05279111095d6aa0238a86a6f3433185c3ef37203c9bf46ef7bbf3cdad39072e970a1e6dad6983e8bafa6e50a10a6ab7a316a6104e1361bab2837d51735fec2b81cc79ae415051bef115231f6e526201d0cc6ed\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 92f154acb89d20388e78100191d964c992a2360f2d205a5f008091439f454f865d3d5ae276adfe4b552afae3859a71acaf151eb04696b6222a07e1274d6ac314a60090bc928164596e2de56e77e2cee607080a293b71cc8403bb2466519f0f14d26009ae7f09fd9a41447cf8d26fccf9a564cf3849be92d9e4bd2b3d7095087d43e462873ba0534ae512fa8edb2884d9e1613a1ad3522ad9d449f78cdb8331c35502851e8354829a78c56df4fc9ebebbc7bbc468f2219e93e4c524b3b8a55d7c997bf3151848ce10bfefa6f21207f2ccb2fe9526a0bfc417c239a8362282af93124a0ed209534dd540bdc8a1a08613587a1d62baf3530ba0297aebe6e03c2889942658d50f80f33c6ba0d021f9703933b2ba4a24665bb23103f0498e68a0f5094a9b9a7ac146bcd5842039dfe55191f06a70f103bed094f7adc3c3f3b4a12f2cd76db1e9ca7ad3c9d8ff41811da6adf3a9450cab6170e74270755021fa6f4dbe3b1226de09a334ee82617ab44ce93c6420168f6a75224456910b907ec2de68bc\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 9094c58ae7096b725fc29065eb17648925b972e5fd176a546cdf03b50d3df72e84650e99960c783c54558a44166cc67b0e6a9c8cbb0095b984440995e17e6e7b5c3f561f3a8a0fac06b973076c16c31e11cde1ed0716c41074afbd94695953a7d075acfa529f89e98f406ad028dd48602884b7f1c04d60a2317ce10a4c3574800f05b83eb8f170ee6c6d084fc68d2db32d0a430184719dd0c0141798fe608ba150f5336079c4a712d62a2f58a88d6f6bf334bac46d1be0e6341695995aff0b05e152a4d75898d713cb2cc6a01ba4df3e4b45914a2fe7f2380f94b71facdc6c50b1c61485e3acfabb986cff365df2436e50c44afb7711a53655b250c3336bcc12c251e1f0e7788c71c5f80dd02fe4cc03b1103691b45820038cc094553f8fb2a5b829a230eae9a97ef4b6c7850fb7e1bc99852dd0b7027fe8ffc5e2c1a50bf5b4e42c249e55c7955ffa4f4336a60ce0d8423f349abe3434e3eb9f3425661e0686fec79ac14e435c1f6c3df4982c7392ddb8ed77f3f65a5c9210ab81e40ef3eb76\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 59e8c182b8d7c58cba812204a8132fa02af9bb2af8ea16dc10907a14ea29a224a80e0eb6c1e12e16a3144bf01b539133f53a4c2007f15787cf61560c6bf8fb6eaee9ae65b924c5f852f622d8e9bd0b67a46dc8fcf551d577a916c9a0af9ddb50c05dd27e716c4c9e75f3ddc3585cf739986de48d9add7d39bb113234459637f159e7b95245e59546aba7f07f4a40a1d6ca1c6d1cd946e8a2afda98cf663e0ff6e9bf1a05fcb0c46486976e2d9a2a35e43f4b79dba5087fa4af8ca4cff44340b3a60d153b5dd3c9bed8b5dfc684454adada547c1f428dcbb70566b86ad87310aaddd9e935dc5a6c68456b3c2ff98d3484e471e586271c06259cb754cedbd0913981bd5afb5e49dac1e8cd86cc8bb53863f87d11e6feaf489670ba07ffd133ea14a7c60f9263f986b1d13e1e67eb0a72f67db108852f97e424d455633336f3c4388898efcfe500bd45cccadd505c481b5c89729bd1451bd790bad68d2572ff09f8c19bcba18a1b6c9ff260562d1f1ac35373449da2467082b288a4edb76c475795\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = b7f073c6413f4f710af62ab1b9f023215fa39db9f47e3156df5d0dffbfe4afe1aa9dd72dd7c681b3ec542ef926bedf01608bf7bf0874fc68fd90d12e0b26b2a049ed75968b77c8a24c626a5c706fedd36336c58b8158a9f1fda4bc3f6e01f2fc19544378756c48a3283e4c8c3dcedac07b71b6610e3a10aa19996efd006b970ce00afd9256fafac4e831cf598ed29d27e6d3238b7e799e1d0d96bf78cc9f50584d6702661ca93a887010d16c711ff138f8b07dc2c4616c5204344f402067527e2eddc0fa70a48fe929e6a195e27159b35121612eb116ce2bac85e9230895044755a4c56f83b45fb3ad795728579719a68bb739bad1e3b1f0f79985a65c43758b29497f99785dfbf985cc6524d9a97739fedff3b1d6af5a7c23957807a5cc2de62110b59a0a5e47aaf33247644beeeda8b1a4bf2ec3c1260701b4c1c052276eae49994b6f8b2f8008cd5e637a9025d364ebb27c908b7f7d803dde6591a543524aac3ea330445b9e7a3090ac3c9c63c964ed6e1e6698d5481704a495f8e9ffb1a8\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 43bcfef9e1c31f739cf7273b1a83fc38c319d4ef", + "394b28147e99566d60d58459482054f2b8ec88db88fa4033132c03eda101406873c76703be2bf0d0703083e9420a917233fc1baf2ccfb8b725efc7d302b474195d54d4d3c7cbcc0573c5fa0f2b07a6ecede1b445ee59d8fe101e8b0b97f9b521963b0933efe4d10bcad18219bd2d33bd2dbc81431bc6a3ae6a827c7be7d3b0a1d1718225670cf25a405ba12e9c7550612a866efc6edf994c155f24f069574d3f73bd09c74eb44326af7846f22687b84b8caf54b4052364f107ce5295bafb2d91ce6f4efd667e6ca40db672385163d1b7a27ad1d57723dbbf00571cfe56a1ee02d6b6503da2ef3f78003d3fc07f778926f16ebcb05762fb72fa50b75f78c2d97f174bae392065db2699b00ea80649ffa470ca92e57631db263aefa225bc1bdaf14093ea1323071f7fd614b475f5fd6ca0ab5df4f03624fafbf5cb3a49a92651d9a6aad2e405a7f76d9eb76644dc6b77d5f3846942ae662fd5a11707feb5dc67912c1285913ae2f54527ef39ff\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 0ec454d968f05e44953e179199eeacffe08757e89401d89f0c34875f81363aa99334615de41513ff604ec742730911b75138d3dc489094fea7ee75de8dd72f70af216817b5fabc521e391d5a0a870f2c089cd76105f96730ac1e33a2ad07896efe98b4237e8a937635f8d1dffd7fc77dd23b3e6959fa450e48b70611878727874df80d4f7949e14133a3135e422fb6fc7dffa6d6cae3ff75df25458c53f859a8ff34e1756b8da403aacf3b7b12980eb8e69f786c4433d92a5971d615251381185ae436d9d8fb04c6bd7264ca6b65b4d6dfdde13668f27fa81cc78115a07cc88f68462a15763041b3f44fe9d6fad4afeb2cd99258df774995b03a567d85553210111d7f0eeecac6a065f3cefef4ecbc607d49972aeb8be6042cddd844149275696cadf5778629c36d524f8b99b2445a8358afbad1c0d549312d6f5d0928fdd563e286ebdfa2e7db8acc4fbab128557ff6dbd03d123bbe525d0cf37cf9624f06821e422bf0f0ca8e27baab590a50d1e563098c920be15c0e8e965a2994d5916af1\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 69a1305c5eed4c40a1799a68e0bcd73f2fddf4cdc750d24c1035eb256eadc6e59c13a7784b22b09f4ef0c34b772ebe608f9306bf5fd7a463ce0f96ad0e3a2df6e1dfa8ac846ddf54b1b10dd9583724a96a0500d5aa6184052d553266d6b69b14bc76e82e15386d3b961323b326d75886fa61efe31244f5b79f83eb4ba8eb5d19d066e1844c11ba8ef225ad6817d6b560c0ef551fab8589366ecd74b93a944aa53becaf4c8e77b13e2da12fe5543c2680ad76291f08a146ed42e0273592bedd08e493121843f1f544c766017aaf581bd1645614edada2f90d4dfa5f80c1ce9e21efe901b8ab5687fad0c022b52e154abf2bb1d0c02e7cf934519c0d934ec995c79c244eb3e5462fa86dc7b13feb69abbba73610a70f69dac24e6e5ee98cc7376102f5f3b58240f13e0eef2ad0cbf1b33e828345d17d7940732886a20e05c00f2f400d2f45ab68778f3ec85246e0a2851e44fa77cb6079addf354a37512035643ec785bdc9a011e6d0788208c1e14c02aae32c3ff764f6455c8f8ac4e5017a5d5c\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8475c42278f3ecfb53a8b19904c4cb40ab5eac50077bf85b8cc71f6faff06321110aa240f9a7e8d3e99b813f29c4bf35acc8caecff0873511c9bb9f87e0228a5ccb82601dcec8b8b99acf08683e70981af9f7f2ab570023156471d77d9e944f221bdff3e666f87dffabd079606a4fc139af85031e1de8664590340e39e2c117054c8b48b20763b7b5fca7b5fffa645f93d4a9d6f3336e229f9ddbaa4e1490235c0e7f516b2e995d5abf602803c9e7286fae0fdc7cbed07a69f5b1b11cec32062330fac3b85cc4b549450ee358b859a10b2e8a33d988e52ac6921d5503f95f47d4ca26d04b4d850235f78aef513258b627d27d47edd8374828a1dfc26e4f1c2009372110c729c01dd9a65464bb1ad4be056318a0c0beee9458962e727852374dcc27f437c6c550be2333d014767d1ba0aabaed99297a544ecdb27098cd2acec886ef4aaca14a030d07ee42dc0194c1f867b77aa8b7187358a5d185ebecb24097b00a136d39553cc508ca82dc088f359cd836497b3e87276437e132096b03db97e\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = ab5bdea7d6018c803966227c8bf584a231fec444b6bc1e53fd3f240b30c7a3d84ff099899902ab9a11f1f2876dbebe6514f190838af546a249f3ce4353831a20effbe944b97b523c3857eec96785dd117ac188ffa41b7c8374ac37b03bd14afb828641b0c0bb2b47c1913ccaa5c1428258461ea57a72678e1ee41fb2ce9b5a1c3bcf3d44b8fed062de9a3600e940949b7478b452af12c97412cbf8f0bf1d95cb2bd4c3581d1ada8a0efdc2055e52a16ed7c2adc36e5f26d5367582b475a61bafd28d92c589cddcf99d3b94c64254a9ec0ea409fb5f480cd3a6e18728b68637b563467c48370286457012f92106278375b018a2cce2a4b274a4971725254049065198ff18e0c6a2f216a3df4accceb0077ba4b8d5492d7078d093e442b24588bdf9076d727b3a17f17172c8240294938b45ce0d695d637f11c8b9a4d71eefa0237828a6ff62d9b0c88fcd4d8a97f71b09df62274f51daad2036ae7765a03036ed637f3de571f4f8af7522e41acbe84d305f43d74f878365ba3fc0f2dd3fce2335\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = 32329315f2d1bde7c6d3ff918ff3101084385adfc2216c0bbbb22b1e3dde65dafcf76864189d3ace3695e51a40ae844ac6e9fc72f1fbb04a047c58b0b6a86df0f2f73726eeb8ea2a428f1588a222bc95bd550083da397add4a6d37a14358f105e85d270b14fc3ed99c35e75ecb818889a065e9afba8918a8f0590d292b507fe36cc4f416e9168cda8ec687ae7cbe2018a585f4c9d76323656ff4d554744c516128eeca1eb6c77c5f566b1ad66665cfc81632cf47f76c2d366f3b5fa0818ccc39e1a95ae9a5a018e8b9defb060482a5e38b4037cf50d23bfbaae13f096491a811a633ce2aad8317376a087bc46f12154e2fd14b2a008698b0acd3485d326dfbafb1c36a1dbf5d7da8119f3f456a4c0db555aacd48905646ad6d65b64deda1b248e133f251ab7db6bc8449cdec4ccb5f45b1a3452e25c3a04f5881ad19c0c241e10f18ea4aa41e1856123e2694dd701edb7310e651b3d7d295bd193f800000931eaed32e4c4c52e339e939de6612ec6bd10d384ee228d2d14498fd1ee4ad3b46bb\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = 6f4c5d8e23801e4dd6617c4670d2434af72844a997379dd7f877179bd7405bf407247e77a9b0e76956b0b3d61ac2592c7005fa85bf3cb53a231603070a83880c0202e6a2f5e4149ae05d5333f5daf142a8ee7b649cbc97d465b2354e68a192b1c63c51a1166feb428afb215d89e51bbb076eb0fb7f02a0bf512ef352561da2ea1a2265eae0dec4c7f2eeb232208965427c81c596cfc7f18ca9510bd34e83e5a51473e6e138b75368191d6b1b2b605430d9989e9ca4dcd2daa8f11e0ad05b20f3b0eae07795ef85385cb29df224769038f89599990d0ed75eb122e2cf6c0aa80f185c535bc328ae21e53376095ab9ef9f15ec663df2339fde30c480944026304d553b0a2f270f4ff999a0f39391a80a73c22644d53e1e6bb1820826f4aae6f126831b195c2d137b919b5d20d918b3fd3d85a83cca759850b27ca101460d1be3cd417dc16fff5912331118a4d514fa3634f67f72b31056cc65d8f6a11d1fe10618b88fc2754830eae79e12f4f302776137a772489e3488f37cbe0a1139848fd288\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = 70f10afb809a64ab2407f0c3ddaa0f2f38f981b19536f3f5ac44a6fc85e5535e04795a16bb6c435528ad255402200b02f203bf3f539df42f0ce3cace96456728814df95772560057648867897603ddb96a92f3c7652ec24ba86af4fb7c1a8ddad03409e1bf982d01b63190661dddb932018cadba66a43cb5c4694233541c56d9d03e659e074fd6aaa18976856b8ca27342cdd3a516d587d5d46c9c845be535ad1a923c2242137d0f3dcc112190a807ca112c069fade7af53f17f2f74e2f11fda2b75f9a48250a4e9e8b34920fd20783b179399425b19e7ea99f395cd3bd7d37729a287d423623a33542100d13eb61d7f77439f4e3aed7265d7a08a7d9eb0477aaca23261e4d06d25ecf1219b87610e89af4c1b427f7a9432624dcc6f78454376d215a6fd8f6e5f1211a18334395ffa710c8730abd64de0daf686a45e979547c46f684fc130f8cd9c4ec6252408a87e29e38a8552a4a908ed86f3f83d42a9d7dba1574a2453dbf2613f8c9aa5b7fffd61f222c122e39d86bb01fce55acac1901c\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 36343b89eabc3dcaa053b5be3ed7faa79c143ec18800be18ddd3747ecd557f09998203325f89d3badb3eed7fbc20823680d38eb44dc368abbe180474f494431c04d936d7b5886ab3aa2306c0b03750df05c4e7fcc2dbab79736e2ec9b0e27e277d130060abb4ade70cb924ab950e95ab1c2335578c5cc40dc429e397691542edfaa8f4d408918beb9b0cc0668b6f1cfd9692b32f63c9fa4d482beac2745d5777b6da28ed7665bbaca9999f65309ee46841a8e3998fcc6670edebabc4515a438375ba820380138aa7f2e32b8f74d29db86cb85dc2b556f4a307c02237f18fdc5634811653ec2a440a53f8647c495b76221c058268713191a9bdcebc148a60d2159f28d92f79dc5f3b5f0c09e62bcb68f7003bf71bea00d25c4d7777a28103ea43e92951d10be77ed7c73cbea573f7e46f924e4d12cf9df8faa53560153c8fea87365b90ad3f0e6a50b41612fd191c8abc3a5d8f98bf4006e1ae31907afda4b20d7632829bcac43c100ff3f10f0032e1bffd3b207eea2d6a87027577e5458ab81e\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 750133d796053811558b21dbcae35e267b2fa467a9dee49755d45599a6774682e40e00cc46cbdd412e6233070dda3a59814d6238f474d04d9102301bc281816bdef246f80bd3ad06646cca4c9a662527385d3c473d03ec4d021db74c7a1ba6ecd1cac005d58163644b993aea62060a25470083006a6515ed45b1e54601b9e5914b8d5e3a630f29bd88036f5b708d2036e4ce7832a239699b2879b6089048e33c05d3672c0e5c573699264de531a0f6c2c703335fa32cab0003d25f9bb8e0fac2fed05a82c45fdcffdfa0c2be8e5501212007eecfcad720310a8ff44ab7dd52e69900344996ff0dbb7c39d2398769987402a7e1d9a6378721f5aad9faffecfc4fee8c4092207e849715c56ffdd5c42875d170467799e0f8a08ad5edbec4b939cda099d30293bb76", + "086c5315de60e967267f3ec113f7fac4bfa9af68c4288c69d5b0073848aa722124a9f53654544923b5556eab31bc22ecb6cfd8b18e665fb345e8b5e48cb63ae37c7ab8125a1f3e5d6c4bdbdb9778d8e27f91883aac99a69a26\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 4e9272dced0bf87a8a3b6ce118532d1ffba529ee783857ea0ca7510f4dead7406f10c48725092eb41561d067c1ddbe0c111ff24aebe1655edec615adc123839cd77c1a3de8baef7217911adece72b3a6b617c69e8c31464e2bc021ddd2dbdb99ad28042133a6a02df2be394d5004c6ca2d7520af46227171a5ec22870fc8a7dd8d6f4e137393261db00c57fae4fede6ddc7078f7c9fbc2235147da239979fff0dac3c5f0ad10fb3de6ad70e12ca6c3de49b8a36383649da69b62de49c967301cd36d439a6c1729bff6ea0e664a6fcc95898b190cee2492fc6535b7552b5f04d71b4be2dc0471dbeda5ddac313c9cd4e90109f04bb09515e54f6463450bcb6fe06a5cf80e7644f422cb83b123b94184c9d81fd0bd4357b60aa92bbf35a9a7251c515bdbd6016b81ed361837eb6021393daebe302c4c204ad3fe724b4f5b8e52f9590ea33e02ae1ec2863df83c33fb6b21ee051f489668adbccf04883d6aa972b77dcd42c03de0be2ec9e63a717d3713a2c7d31163da70bf53dd3ec342183e9696\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = bee3e72ab46b5bb4cc6138dbef0aa19effb5067358d98252ff739aba22d21d7ada25aa395aedc0c29224ca5b88169072fa6d5da902130ce97f42072b86103e1b93313452fa6285c3f963689cf15c0aea60ebefa1058603b5c9f905d5849e496ab4036ee73e5ac612b364c84b34887cd0141ebc114e240eb8885b0ee82f31a9548fbcdb6faedc1c27e0fb1fb4037124133088d5edb6d34476e1bb93e6da177197b6463a0e1042581b965e9d0e7797c13cc841263b991af9af21f8ccd44f4ff161b6545296346ef54792dd5392d26b8bc2c5a9dcca41ccc6adaa1971cbbc5e676f0c6633ece739b57a24a6bc54fa75bd6c4f2d1e554d7d7e78a57e012f5a86121e6b11daef66a0004fd514e3b688770566f4f98db5d368f1e4ca9ae583c245e30e485d4b71cd3a624eb1157716d6532c866ccdb6c5ddf3e9a6e05952f7c2c6f37c50871b21258a2e9cb152bb877971aec6827fdfb4fcee828324ed2decada3692e3c4483dff53bbfa12b633544f04866b3c7c15f713786feec165502eb895382c6\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 2cb338f3b3e9ca09f101b5ff3169edc180c1ed936f2e4a5f6ee7befe1e005eaa450c1ef3e78739d142dde992cf73b2349a617208f6979220c85f7c5286c3126816e47cf0946a17de1fdd80657ce79254881079da225d3b10898b1e5eadd04489f486a14ad530fa6a444c19d875c0be51875303abf214bcc6fedb1e7e43a257a3375f0ff7ef64e5369b1ac071ef8a64336f5660ff9c5e8fb389a6029a8ff853d4a8e565ba17b0f7302d4eeb5416598421858ae2ab65c2411ac92db844bb430a745470f402b13c9575b171fe9e64f71d6ac40e6ac65c5ee08160864c89df2d9567c13dbd6ab1cc6a767892f0fbcbf2d734424875e9775c2020deb25ad8e93472e1ea1235bcd06301ac181bb20a700050e08548a5cc00234a44e42134591ed70dd4933f4d6c6dac7abad2e6da8417fe42945ced787495fbeb99f2d4648b9382d253e0806d988b1f3a64edbb28904092941c834b63243d583303f6081067d1fabc5afcb818ba8a2edc31890ec28c204eb767e749950c18be17950bbe9df4ffd2bb97\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 85825bd4521c433e916152fc89c06d11ca2de44afe406108ba3cf299ca02d0c7165e41ffdac6279d0fe5b915f0aab62de6277e381fb8eda73a89e880fe546fa425f6698b89e47d457a349ac8cf0c38f255981b902f6e22ab9d90ecba5682da95b72ea32b243082d564466abb5e9abe6a66c5cb9f7977eb3b827a1b98af236340991db4b6fb957c4b055c23e13766061aae849a2a8edcd3ba1521f1201cec81c6ad2cc7c20123f8e1c13d1431e6dfcd3481b085e32ee4d935311f5341e3a0c594c709523bfbe9b4a0374967ba42390e9b9a1cda573fa6008b9a0a96250e9ccea74e5bbb019f1b870268a48df9d39b422a9064d923cbed7063d8423b020f07c57e4e33122705b523c845bbbf764e5d505d42940194699143188c7e694059416070f4da019eed7663af0f007d79433a091fab6cef6bd0f3d7021ae7e82ff956b37f9c88c2c82e57fd834abadd012286f1af916819bc9e91085eedcbda6b5cc44feb83018688da4b97c9dcdc1700d015b71597e96c0d6951f04873852a0dc3397f88\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 8204c6b2d4027f7d93ff89c36eadeda03a5b5464deb495e5bd4fe066c0d9778042b8fa130396c1652949f0fd577ca23f988dadc525a820cf82756992ff81c4a7562ac1017ea01f8f9cd0cfc787dca972f27103a4d92bf215eab991e6970e409d431e6bc2be4f0586f5b98b4ba708d9761905aab265aacb9d495469b1863f5938549175f30b30561c998e081c41b039918a6fab4eb2519e6cac910cc4d931c6c81e899655f06c8a26f7b9433992ff923f27d982c1bfd0dcf62e5ca4c3e035961aacb99f831bc0e42a668c01256cb830b7aba0f22314b548c0b85d84c61c9b4a8ef331bd7c98010c9a65bdb7bc4f0f09b87d0c8b8a1bd96b6bc2035b43348dea48f1f4a4ed6e393040500a12d7a2ce1e08ee8934218630ecedbf2fc7fb5c6748ee3118421967e8685488fba058f312ae41f7d386905646ee334e294662a97ce70486b450a64dbf8ad7c1ba50f0c56295cb2dbaad3833d3922566802c80175526e24b188e18574292e225bb958305dc2749ddd4b46685925c0ae9deab2671e1e799\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 6593928f8e0a2a486c9af0b6af6ad78865c215f64ba3b72bf3a103788a352d216fe5a2a3382220f037fc2d8a2d25b42f48cda3337cc831e4746266121181bce964abbc7eb6378b8c59b9ff59de336989d58003534458a47cf18fcb0d0397333045f0f0d826445b62487217df62131ac0d84a38a02ab39eb7fb1451c7ab10f47d7e62c06d0d1b8ad35268ce58573432b1f4a9515bbc9bca4428bba426a3ae8ef8695bae7a2a3629177fe00edafad675811c90959ccd7800e4ca1e22b16910170b9d697b25af45b9d2febbec6b57d550b7854b425fece239155f068c6873e314ed3c97a46f7a61c8b82af22191feda559b7e93483350652354f005a78dc62bea279a888b4a6eff708eeb4d93ffa0f5c6381a9f6570746387f0e116376e4625a01ba34d68d39b6b793565dddd357493e8d45c8e676026e93b26abcec1b4ebf467f3f069dbddd63f30b6be3b93525618ce903463ae5cd091c39263327b40b76e4be0403f6686b0ae74213a5208bfffc360d3de49253b85585b181133e55bb38aac6a\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = c138f33d241e4e88846f66b4c8f6d27c89c08297b8acb8e23f6026b4857f1bba758f5c15f4266b8d66aec30a5a46b32839f8863b3e2a909ff37c97322ca4a9eaafb2124171b52dfd63465e147b8e32c99cee9a60672b70163e747a238402477dce31497b2339f638d5907e43e3b794ed8f1521490957a57cb9bc82c0b066c20c826237c205bd47d1e6ba57eb5e37364bb5fdcfa8155c8015ca06562f7f0c9882cbfcbfefbd2f5ccfd2f78c684a9bd76c659bcef3de3622995ba63913120be5e0ab72d16d11cc1ddbf23d28abbb8a5831bd0f00a8286122a117d55578e58e0da5b7dbfb48aad8ebdac7e8615ccb9c21a1d877dc84f1d89aabb0976f59d038b9657c636b762801f214953b0d0cd55ba1bedb4701c5e2c3872f364585bd675927a56a3a0fa0b962a7170f925ee921c9fbb9d0d8a19057337ae74940cb86fd3103b232314385cbb59011506f94c14d18850f13556cd7f03cafdf9229030963f325b15c701c60668e6a167f9b3256bca99e05f4f5c2c3dbff30f3ecd36d79bd0db54f\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 8c174bf6650026302423faa9b90c71e66c2e54e65ef77da93795f04dc8fe0cc05f992cf00c41486268252f52d17a4b5eeac356866162c031e55d3ba7d0ccce982fb42457aaa2a92aea50f9cede6c19fc0e1052a4dd85d8039bc3f96dc19d8f2faef835267b6d235c25feaef590c5035c2dcce1ceb6172b693a63d3ae5815f5972bba516a096bf45e006dcda300806eba09ebe7629a939800b7eba88e7f82467d4d65889ab65f8fd37ddb27e62bf4738748d9e429eeeb41bf2a4573baff6890cbec660fa0e1e0c38cfb8a1e086c432562fb14b28c74495689e356ebac1a701deb7328ea31d30227aa9ace477cf76ccc375519995788f90b41bc7f6fd4af812ddde49be65a2c7f9fa1108376701099ce79d640ca5ddf1d34634513a76eac0b3ae02d06a2195263d79e9dd6edfe9b5bc24819fd5ade71b1d1afc3f5302156b97bc3c4fd3386f0a9c00c449eb05b1d742c75f02ff4529ff1a0c0b34ce4cb91a5f8b700d9c38ce6402bbefbbbb3e158aae035074a6e0c91484ef8b65590e6870be30c\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 39681cfed3cb5ce9fe0bf719a1e92aa3af1302f6b6d0c93cb22795e0ac581317796a79ffe29b5f88fd38b572cffd06fbd2426372efc6f2ec01b2267f8c225cb6c6d911c87e7dd756ca3828383eb5bd9c56d74261e62550c88e39e7642604529ba45c81c6adbbd4104788df8e00f04239e8d4c0b43ad15b497ec04d7cad30dc0082d586b1d88d121e5e5ec1396b207410a3bebbc065ea25b97ecad9bcb9594b749a6fa8f33dc11a64c48494201ea0efb73a203cf10ec68dc052bcb68d336e31535bb0f667001dc2da63358e37bd421fc88a3009c698230c057983968d61c31462363bd93c200ce4f5add74f20d877564e88c20982713da42a1b279caa845b486b090d5fe6c154800feb14e67498cf6d3176a707b2b1c82fc6773cf65befd64c9446a7b62482777b1c77c8dfc644798a3b21533c63e0fbd39e07b127b051ea2cd85b42c0592c27bd988781ef3a405dad25e9659d9ba5cf1b3c3110b59117c322491d55a9c93c8a45635b5b0d378addd082453a6d190b8fa0a89a59867d85dd4d07\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = 7206322956aec277538b8bf09edf980c88df3eb0dc0689f834581b94f801883b384ac4fc218bad411d44e49c03a6d0ab123a19a4f0c7a8e72092acaf5162b0e30a2927f53543b31fca0b0b3c1abe56268f442e6f856018622584205dd898e2f98766b0def32894a508cf7c824ecc26750082b80408cf7a3fb752172afd53afd6", + "ffb1f0b96b9d0c705574eb0f1dc1f291ad5af8c5d1f539757e19e19ad600013bfd2d1fc8b668d0e56a138381389a7fbeee5a7ac363fb4ad95006e3b3e16a3b9abd450aa3f16db19facca9f45cfea2fd52034e7a1835f6e10d40be16e44a0ce5d798a8bb9451488f78edcd203455fa6dc1253505fa83140d610eab8cac65fdb2c669667a75bded33bbd4ded3b0691de5e30c0eed12e01e9c78e56fdfa485481fe671fed3cf558730acb382f24c1810c674e5459ffe449eb82840bde95fd2f23b8438b844ca019882778edcb7d5b6f4d2ba16c5ab439556accadd3029173604e5ba40373d491779a049d0106dec560e084ca942eb6293bd3d88a6b4627332a615f\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 2130fc5f94a8a359b90ba546795e788328f09c45903823452fd44c5a0703033c7ceaa0bd956c20b12eccc052c2f535400e0f2d0e90aa0fd1066e400d6e81ee19fc2b7827b48537129b54938d324680966cb39850f755b71d967b50fd7d699ce3fe956a150c17088a4d29740905d4d1a6b5e013c4450302bb3c125e90748c3eca09e39d7c6e1da6d65ad02328865e2c0efc0eda5de61153ae757b33965a95da80e23f531286a3288fd61694298e68dd21dac3816aa0b80c08aa57f16cc24c641164c67bd98b2c5a895926e1025d3d699ab7cb9e4f0b43e31f68bbe2fbd3655a705b28d4266807e236c4fecac9ea470dc9aa55690e428a1b353696314e5c62d9e5895ede07b7c584f65d63935865211fbdd78cd7b0090bfc169dd000342d14b068c6adb65068cf708c4e3c3be72302bbff056087fed642480b9bf2064fb3f0f0356b7875025a4641fe5af22b98432dd708872412144cc9706dea53d9d8f96ee55ed821715124bc824b408092e5eec66eb574f069be3b5d88a8f152ab73fd160b4d\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 575ef9ef6335f748555a176d35ef3edd9428abcc6c00850723b926fd84c0937361b662320866f555f6e1062e1844aed72754da4f50b1c960b8522ac932cb263c40d301d232dcda65ced16d0e8272c2a23d2130db57cc2d39b0b1fa03ba4c7fbf03c6dcce9b474583538f48075793c26df725bb88113738e674f7fb4490ca61e56b350650e8039beb39a97b6b55b5693cb7f4106a26ceba9322ff889b0fccb2e35b8309a25bd91bf0b8f5c2459cf81bd9e8c2ded35a9e87ef701e26d82207348624aa596e4e1847b111c518d881da598e1ab6e635af91c802ab35f5cda75833217517e84159bbed67bba55f51d62dac8d14c2f9e1a8d1b1649e367ebe7611af0331424ed6784a5497f80ba4617a580270a69cb2ce8b0f63a73d5ab34c8d7e3fa966f465788efe41f57a99914ebd708922d570d1334a81bd6812882f0a3b3f41f88a25bd48de158c4da84c784235593c00280cce586b5d388e4ccf92ffcbbf69dccc8171a7b4bbc8d68d1f00d8628b725f08c194fa18f064ecd2f3c1bfea173cd1\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = a947601ade4bdd5adbb13779e2d0893eef5de17b6f217deaa8e005fcb9a5863e1e84d1258889dbda768ec247848e7c4c8bccd8fa10a322d05fad461ead9b51180070e5b263c5ca4bf471fe2711ca4d34312cc3741148ce2a0ae9ee7735984533606aee498481281cfc398f852ed82020e0c9f5036b38b31f9812f9bfee954411d7db1653c19194710b42d726ea0844022a2e0b5eda0bc205dd94e271883bf91458bcacd093fc40546bb71ab2ef72073e278d46baad57f744b4b31b100288ad6e25fe8a582263428f83b92646579d18438eadd89e59baa4de8da0d91fae6c3667be486fb7bd5891808930ed3c0f6b4d7a6b5e8898215ab479769f040380ed6636751dd19ba27c8284bc8661d7ab86c5242f6b012c48491966925c3f780b35a0286e1b389bfc134a60969d3345b4ce1d0bc23885fbb3883da50d1b470e1bca3e7df62e5872d7855072be216faa971684d632135858303c6de156dc89be01548ed69967b3265d208a62f5887c46e3b395847f8177debf3c572ef212dbabb8573799\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 4c2912d0f4de569d7db9cc1a407a01874ab8e0bba81f38c370ba55920f64b41c21e6a3b67e5e0271f8d9400374f11396388966e2434aa0ebd4723042c92a876b635b8cfdab85dd25fba5f88236fff2f7caf23602c479c95b5ea6cd3e4f653cb3639e75ac1cb39d268a035e744453ce706caf3f53eafd89ec676baf74f2e6c9cf8ea4c288ddb1198f15a77ce07e7335671168eb1cbd8c607087dbb17b263c9ef83e650ce9a48ef2fb5fd37a13aab9e8239bae823c048cff16a7e1897f5f7e06cd685a829a85859695fe6956179cacdce7181d045419e69903f987b35acdad97a7dd2e7713060c67b8f447a02afc218484cb1948071eb64e77cc4e48d0bfc635340cedda460a1201b3eddec7ae5a008aada21bed3060fb17c8028eb2bb767d1d4c948bb5ff9e9a2192256e59ce48241f5dce29dde5ab2de0ba8240a992239b7a2a546ec66ef7ae549c8a15fca6a70cc1474c90945795e876d609d5bbed72b8f001673fd53b9540be4d187a484ed33506464f402160bb1f18a3dcdd47582cc74488\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 357ed432befdd0d673605a705dad0d8d2f100da229e979b1ffac404596d777269d9469dc1b9a4a389015faeb44639d2962a635c3aba4ecd7f38870980e87b2af9c7afcddf2fd379160cd415f261215a5d46ce5c0c9512f543a8b1ed961d2a75415c9f32db7892f1188bba23c6d5f2fb40aaf4fbb003ae6edb74cd0844f7461b3ee029029595b6b8d299e392d4763d3f6b31b222bac5777f87bf9e0beba302ee87da8be3dc5a0434b8482c165087d60532c52c811fe6389c7c2728cba5912d26d8089635fb01cb8d78aa5cb41cd274309d97cc10dc2a43461cf951647b110a65bf47b8c137a8363455155332287867e4c0765ce691cbb750e5e141aa6fe61fcf4e4b707420238e05d955e5dce215168b4d1742dff70ee87d4e24bc0fd9b73835d8cb359a28040935b4c64907a7623d11118e2997fb2282cfc73b2fa27d6e58ba9f5b317f35a14363c78f82466d7c9cfb8b07210289817cef53ad672f10892b0458f0004b68e74796bcd98e51f2e2635d494c615f6f087a293ea4d225b3cf4b0d6\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 5c87e321dbed16d59c49867ca35cbeed697be4f279027879604f1686dfe246dead0694eec5b2f516702b36702d7b11297075b489d9087bcbc0eb1fe5e756b5824a13d06bcf90d298592ddb6e13ef362ae9eecf0c36380159ec511abf3d071ca89b05a56d709c3350de5be1926007ab5830098cf61e677bb4c9d2b79ddf11d9115905bd862b4cd708a069c79cd276b73aefa05f920ffd6a8fb778131ffe4c8a5ca2d81256d43f60e123564bebf9bf14d04cb6d3109865f6f44b21a8896c294c50f62ece38798ebed8276ea7e40e1d1fac611cb511295c03199491af3e0c3d8baccd4d30b2c9d4d47067073f074f29c079f239871dd62e16f53352914d89cd4c126d0e38370f42a902f007fca4c1557b2d6b420936d1beb484c28e392b4502bac5cc5441cbb59daa3bbde3644836682a45ebf4d683f11bd12082b4e46610847cbc42eda82b80a20c4d847963fbddf016232a6c7bf12409108eb395f66c6335fcb6d1b15f54f825f15c7b2cdd2afcb797c129140626e32c8031caaa007acdbec381\n\n# tcId = 158\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = 5e5a6bc0a9b6f5beb342a99156da240d4ada680d83939e62a8f9d5fc19649e9c381ced323c26e642d034b67c9b01f2378ba0c17a853d9c2d73d087ff3b011959f02c2fdfc880d5c82179da86277fbc23a84ebd397fe22f775214ffb8d38359fa141758ff4b84836541dfc5c4e19337147935cdbc7dcf52c91f647ff6e7ceb82f1601e4eef9b2f799b57d0c1e3bffb63bdd6467b9e385db30f56b46ac06f03cfec3cf6805a0539029080b3b95f7efbbb3728d2cac0b98bc61bee10b4a890b818fb0989083ad828f87fb79813199c9de7af666291d153406b8d09bba99ec7675cb93ccbdc2a62b3e89a6b01ff66fd69ed667515f46388dc57da04c022f12ceb2093f755e32281ec105011ce7179243f5c399c219192be4667826d009fb38c7cb2f212d8ca046c00deab4dd9c3c48d4935a7736a835c2a4aec58a240cc66b50df20f21f4987641d5c6ba78799eb792c7973cb01e963c2865a76c1121bbc34c9ae40e55694f56b196429fbe0b89628b3a08ac7289a55b365e1402fb61ab96410fed2\n\n# tcId = 159\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = b69fe03530859d30589af21cb06ef78702dd9778aeae7062204740b36b79257951bd30e4aff739dc8118a5a97961b68304ab277fbb0e0abdd7bd53b7782812ed2bcd26fd60521bfc17e543ecbd485f9b7da6da75fa558ced68cb49d819561339ddd271d2f484694d83ffbb707e731fc9972ff1c132ff648451ecf6fa2525c3ab696a635c3df648de67344f8e6eafda31d94dc32aff88537374b0562d887f437f59da19e18464bd06659785cb99f4f979be6e59b0a3a0a336019af8d324fb3889c40aff31810fe8c6f5f3d61b79238ecf5a62505cab45c18f8e0f52f18a67085b8dadfb1076de0c48631f3d200abf42c07581b3e6c670d71da5f407c7e3e31a7d46209f95a2f14aa8c595bce7e6a371405ab886874ce8740259dcff6377b73634eab9f50e83ce6629faf96c470bcac6cedbf991ca7eaf15c95167cf086303b43a88c56da11983584fdff05f6fafb3343ad4e32c534a9ca4b59f79e80f2ad191855703454f1353989efd6c075627408b61cd7c4b804c8815911c3a6d2976cf35c0\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 589f370ab31921a95b6bf0220d0bda22ded0719e0979e42f205b2ef3480bca5f09a75123350edb164d1144136cf15c0ced65f2be5356b7f74b8c0595a4b14338c83e501aaaf9192fd80b987d5cf6a0920a96ec8c535edf5c114daacc7275cb6e6d1a224a43aef54978c78a5c91374ab5f60e089d8e80e540134c4e7ca936bdacc5a67e21c91af79ff05fecea9c07e8926f8d1a82478f4da3facf8f7f83e27f0907abb4ab1b82ba451a39837d508b2c1402c64e0455c4fb8b4f97905f2e168bf5eb0f1ac62d205db2f0739130908b05c6f2fbe853df8ff40aedce176114fc1787bdc45cc2426f7db44716b604623a856e1907fcd788d17073abfd3b7d68f80747785d896328158e5c597b03e312f0890968d482fa8cba3ba0dffdf05a71f872410db469d43c9d7bb9e4429e57e56efd9ce3263eb0d86e032480c3101be930f1d313eb605a694b6744395d1b9fc21cb5e7dda9ce05a87dac83d7b8ac5291ac987dcfba1b1b5d237cbdfb65b573db9cb4281469b1cd267c40c867750a1cd5c74ec6\n\n# tcId = 161\n# large integer in oid\nmsg = 313233343030\nresult = i", + "nvalid\nsig = 9398d3106cb77d329abf72abdea2bc68e64a35faaef9e32ba9612e43322f6252bbca89915cd5e529e8eb976ce97e0f3e620cf3e8ee84d92fea7882d90ce02e24bd7f3997ca7bc2d2d615a183a5ef4777376668068f6cee91e72d6a5d714188c1e02196fe6cdc65681c07e1c92c55c2bc56caa074953612db3d6a401d5754e32e79c6b773e0404105dc19a125f41d819623854467e5192c537f9c6bbefa0b7fad645955ab95ce487f1337095647ab728fbe1ba21cc6164dd41c7707def39713a09e945cb67882d0f60231d190e6b872d81b80caa1b36fccab7bf8bf4e7c88a05c5b41933dafcf3d44e60bebaaf8fc7f63f88b970c2a66454bdafe41760f1395eea1e9c43012f1ba6dced5695e2229c2e1a8e77fb8339920029a8b9b389ab32028acba61a4763421bc705a0e4e674e6ecae2f92f65d14144731badcccf6dfd2b545ada88721f2357e3c224ba12e420b82eb9e455c833031938135fa71d2607e204e3fa78e6bbbfcb3f633bedbf076509e1bab749c6853faea658e39652b8cecaf8\n\n# tcId = 162\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = b089a7ba334bec3cd96ec5c28cc8179dc54933a443ceb64b087a55363d0553da24b37647820f3ce8b530c3b1601f7b1976c2cfbf5b4ec2797896c52264474feb1711c3efdd883fbaf35e5f3f22ec02ae5aea2625fcee030bbb3eb08cd423457b8f92125224a7ca0fe4fa10748769ea6060b5085722efd14399c55b3197668b1b2282476b845f4c1dad4dc94c265e40cba7ff2fe8bce5c5b4e51b274d49654bb087e3abef3f45879b28765e666b7be4136d0cee5b3d2c859056e55b1846fb3199bf7dc209e603fc2c5c5420756f5298490a7e2747f283b44564d7dd1b0829ff74b894517aec399ae18e20a0f13ac96578477513a61611e25a024f8344ff83626f68c62a16a15dbfeddc060c2db00a024bc3c02d62bbc614ecce1118d88853feeee755f9e28c2c943daf7e237e524bef4f86ac761a5d9eeea47f05a9a16cdae78a59acca4729e7720db6396563cf3ab9456058fac2aa05e7c5ae484a6a1e8d9b5461046d944d8d34b42b9bf35f068994cef3b477de9685b9365cbc7b4facccf55a\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 4a8db880aec3d9cf1e3b778b4f1616e1b16ab80ad3410eb847f4319d35b5ed5b63ea0f96260434e5281f6242807f1e776a9a5f6dffbd65c8de10b8ba7addd44289e30b46ff327f7db6c34b09250c22a1ff96044942bb029dcb2ad0022117aeec3c0fe89421e9a873d049e3f1f5884f3f1056974f2df6351960fa5090aedf544bcef4d59dedd3ea170c6bddf6bd5558d8d2ba5212fae3138406a112d0261128284c05178dbed5a25b589d3f1bf90e28ba9ce363f53605016248a7cce838f7ca2f20fe43298637de5327a9c67eb0aa10e6e92c0fe3f55fb299caf302ba1e87c1a3c50142a27947028f60b9baa272f662f443d78ae446f1aadbba4099496c8ed49d9b097d67ba2babe41b62f0feb8a11261f5c4bc86cd9a55baf5b83154116c1f344cb71f9d2d7ff6a8072ff5a9ba0d6e1817a798693be738f9c9b0563e40d7c8737f0f38c73229d00b57be895a75e2c1e5708d39d4a9447de6412be8d5983f5c1bec5a67f941e844c2ab8da51628edd6a03a8d2d9f5bce86a441b5981f7e6c0946\n\n# tcId = 164\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = 33e76286146ec82e95494f798a413f2569722f1dfdbba39e7daca5d654fd9bed5b25272fd3083d493ccb228b9429f672f5f6aecaccc3b6b66e6cfe2748c55c772c7becd12844369fa7283a95aaefc7b7e6b444ef9ea0151655bbd358ba6a42a4b2b9f9c8ee8dd805724bd8fa4d29e322d56e997ee1dced90e10b80a4e2d007985214be77a1807935b75a2df81b9c87b177515bce12722b1ed2ba8295df7342a707fc02f4ac1b17b9413a1f61015c4ba998ae75fda119f20aac84e921bc5d2232f7bc9c6eb29d8de3c57f4bd62cf73fc20fb6759db4f9c47988155bf73d4102bd78b09cb88905dd0be0b8e613f076cab8cf89711670a1ccac6c1b9fd775b05ea6bbe25ff038bda5fe828b561d7be73d68d881fa7b2c3c3cc513da9e19105cc99a02fb3791becf89e7419d2f430713de41ba3c439e6fbd4531aa0949e1fe8f3e910183e75b706083ad11cf3aca16bcf8dfc606ce28c2466dcc111312f3578bd41af4e190436f5c382cc14728c7b7e3f836662acbf7286e621dc5e121d5f5bf8af7\n\n# tcId = 165\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 2f2fe9ae01a02e6d91f4fd785c4cebe581cb323898e110062c1808801f822cb2e255f9b2bcaf2691e931df9e15c7f876082e569b3448cdb88f44b2a1e0665fce0ddf27c84ce4d9586da28d401e76a54e9e65f7270b0c34e64a7eaf720bfaceb063f984359f38816876d3253770512c5beb06326a62c86b7f05f394b28d09d389cef7644f03acefbbace66c7b1e3de93d39d831b2d27d3998190063adad46335dee71194793739780678056d7a7dce03e2352cb9b22fdd4922cedd5430a3f56d96f9b2cf22669bccb70aea9108fb81d7266d838bafdf7b707da06eaca841996abbc3637a9c246ea52776455b80fad6810eb01916242b3069d333e541b78778bb0e92faa4fbe4ef7feaffce181be52eeb5b6807610f060a93ed663028bea60de1de63b6f69a106d61a93929b6da73f41de02c58572083dacd98e0b11f57c16bc5f0e3ba1a95faebac48c42912a791488fd96322e52bd022d686582eb88fe85a48348bed36d95947f39fcb17ed2512974804c467c9a4ee5e3fe586bc54a22d65c85\n\n# tcId = 166\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 4c7d25a7c86329b2dee76f6972d27481bd4eadfe1c901371d27406bcdda5c447d35b5b4cde6eff94fd5bf2e83ef8f1bab37bbf04307dad6d38b96a2ff6464970673b0c05c04c1c07e0e28d1fa228510d9b2bc9f5b4461330e348ff61a1eb533df887c6b3719c85d3ed4d75f36b85ee8540048600f4b4b70fef885e90c4e3c8d924cc0a53c44047cba805d15bf88366a50d8b60d5dfaae09e20e5efb186ed49f005011bdaaecfd97074a8cbcf87e3c810d9e698eb2a6f8b77e3868377af16ce42496a8f19b9ef8809dc35364d35d614f1309a3765e3da35b06ebefd522b688b86337a9f578e69a2640cea2ebb5634665ed7fcc7faf124ae7ac70c298e0b3493abd22ecddfe23e595355d5deb305ca5040246bc3aa450faa3a5bb2cd2eafa2433e4a40d1d602422c8d41f02d5a3a7d4908190e065fa5b18f0160298a52d7eaa828440bec7eb234b2c506172e46068823f6084058e511a8fb59fb722577005552346c04f85c841487285b6b2a469e68a374005d8404aaedb57d3c962c186ee7c27a\n\n# tcId = 167\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 4ef8d630c4ba8a424ae7dbc197dc7cab463ff00f93fb6db064d9987f224f2a589fdbc40e7d3c9043f1cbaafb47475cc9dcffd85a41a0b50614a206c5720d1151229d1d988dd6b8f56cc538b8cf0d55d1dc7003f51b87dffc178b3a63160b759c88e829afa2dfcda4b4cdc9e228a7a81f301e2edbb10da5bbd8ae9dc93ae8eb98d47e760012d990ef53ffbfbddcb8a7633b3cdd8695a75ca6b196f9e2709ae9b30b4f7b606eaba508bfe8f46de14dee5c0d663d01718ddd053dbe204475d5c1dac048f6d628019c8b4126003e4364e90121aa0d9472149590537e35858e9bcecadb9a1f2504ec78ea8d09772c992a7a12e31a8850510ca726ea3c1231f778b51d8818b8694be37f4656bd6f3896f6c19f5e9aef74f55d6b44071bdf1ed9dbe9b26e0b124f28db5d32dc877fbdc63d1b51f62997b83877e46785051df7cf4230c82b1007251cd4f3ccdf204103f99b27c5cd48b3ed529702d89e78cdca05cf52d0d99b99c9e9f479c537a578e47194c9912e7df890f15ec671f7ebb6d304d3e834\n\n# tcId = 168\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 8c1a2b91e9d9fbe87865fc4e6b478290d1e4b189866912508402aa311b953f7d4340fdcafe8f78d76c4a3d6fdd7a387fb38cc507ba6bf383743c8f6aa404d97007d60911622a8b96971cb3956a1be3f3c5e49501048cff335130c9184b78e3913d47ba8a69ce8b457910c69369a1b4ee05ccbb0bb17070efdccb94ea8ffa4f683356b1656485f73b19f7b6d1669b55bc28bbc37b7b0eaf88cacc8c019aad99778c032858ce1da532ce2b039294c8ed0660d20b6bf2019bb864e43623d600b83a1fe09ec5d7a6c434ff42fb3f2c08eda52c1ea033dd757db02159188f1b6383f93e1ccddc027bcaf77ed85303fa86644b2164bf99ebb394e0d25298b28e98da79303621d0b188bb2dc65aa19cd14ddbe0edc1b288fb46daac7db10d49bbafe28acb9e1188331978562fba048badc2f72b942d54c23cddb895250dd590df62f4cd184df7ed6ee88ee82b01eceadc939d822c176cd16f21b9cee6efe6cc4cd7b3b62fcefc83cf4a546c69a81668622e51a11a5b728b7689f4e16692e5d2c7e5b70d\n\n# tcId = 169\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = b42bcbbd1403e77665fd47c2199d5d962ec7b224c00a30367d482f3f5beda989f72ba20822a46f5c28e9b5524de1ed6f3efb390a4c0fc222047f3a238a1b53ce6c4f2debf4fb4d92a8e1ede0895c39545c7a3fe07148c8c5944ba76a57315fc814f0c2a08d8627af126c467f281643d648128183379e90f99e97bbdb0acf2ed03f4ed38c61df3ced83a195b92ae786f2a81ed2bd6d1f33a7b1233c5ab13380621950fb27fbcaf63ecdc703bed0b1a58b1d36f84914be476e857a861bad98d35b248fba6afe10e410b93435e5854530f07d5d0c375fa6ee5cb8b306c2e40ce5eeadc16ba8fe40d7bbf31ff9ae2f70b458a8db46f4faf6373ee3cb0e5398b5db53b65bc8b0e4b336dd22de54c7e8e3b09eda2d33bbe53daf8626e63d16808427359cfc8076f07259772f00cfed32a6c1466b1fa1847bd9e7bbcd68b6ca9e8ea8b577985bd107bf1752353390656784f92003d43fb585ef2a4137c7f83cdad4bf3fe1eeed2cf76c79c0bf2cc322950f6ff0a98a3c68f83d7a9dff5d87420295c18c\n\n# tcId = 170\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8a8634d606e5c507f60bc6f932db58af00b8b057132eb1148b278ad00be6e595893982b2f248a3b098dc58dc751bf42094ac236874bcb4b40f95e56f07f1267e559d2bdcf316af97dbb6c9b2356fd7eccf47698190dbe3a116a24ed7a09eb2d51314c8272127f9a5960158ad8c771489aac374b9ed43cc4d85737b808f49fbfaba2fcfe044a526fa067401bf6c4e8b3d89a527dd2340983ec0fe0301a00857726ba5144b8fe1bb6d995c82455b04ddb6dca1c02e1e3cf0086f95e6d51420891231f5422bd16cc84f41705451d5dac7725029e9a4e4a1d1a7d0dec7126e1bdba68dc32fcf5a2ba9d2893d2732847b42", + "659c68da741c3eba87bfc6f127edfaa1ec5c05ffab1ea2d9f412600f0016540f07387b4146c1774a9a0230c23b1ecc8c14ddff0ac8b12bf47b64fe9c7c3c2bc0ae59d1c22d1e1790d88edb1c6d31d90c7996dccca9b91e3da10cf185cd36a35267acd92e13909cae9ae19440f142fb270496396b983c79963a07013a3bf089fad02334c1f76bea4a8dd8578db9174b22d0\n\n# tcId = 171\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4efcc5b2b023e2347dd71bd948cb661534e1bfd77fa55e768b9ec3edf20709786ce113b6c9026448e97808d098d33590488028c098b0d7f5719dc39c2cca636d9cf888230a803c75c1a9a4a2c884ebf19d7bbbe21e62f0b3ea8dba5706c98027b3fdc0a6429578fc2ed02625f9bb9c9d3f193ba98b78c510fe7e7beb42513e76d84b72b49abce43d33e23aa25d8038bdadbc3b115dae29d4b4e4616108c9c1727f14bbaee73ca32f8bf4511cf45959c2ad217bceb544f9ad7fc69344a6305680723dc1f18de7d81f2fe49c2d058f9de6b76dd8ae7d94dbb0fa0a54d253d51ad4b7ceb939a239eedd455e9c6645988530ba59fa7311b3ab26eba68d5cca744f57a5cad7fea64a6fd323e93e92cfcf4504b4174f3fe7fa93d68abd98b1128ca909a03fbe82bfbec0dc4017675d3fb54a39ded1e00f93fff69b9374c280bf124ae1a0928ec39bc2a650c345a9192221c172f2a3d22301db276e32e78dcf75dbb3569f9ca45b9c5db35d766910bb8d644a1a3ef02609e42a586e2c9096fdf3fa9d73\n\n# tcId = 172\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 70e063e00143ae6836b44a35a084218baea5bcc469be89df6a63cd58de6b40f4718d6b7517afba52a459ce12dddd06cf9e3ff41533e7df2300119af7fb5fe943b133d548695860c4598fb418b278899e4e0e5084d785f468b6cfd9945af926ad6509e7b6cc0482dc0d2b8d1201cbabb619fa8aef07d9700ed0e97062604574aae8bdd9ae2eaead2a22be6aca035f56b25f419ea378dc4bf6cdce24906c62facbe2617804b54c83d35c651d14d5f93e4416a4ad9ffb0784e292f7813af00dffc5971c1f6ef6725754ca06aa116a92cde6088f95ccc8c5ae19a821fce9c316b2c74f07baf29511f3f608e3e8a2c276043e2631a1fc651d622754384ffc10045883b93675c7e4aa8453692b0e984b12c213f31a225c77d28fdac426aefc523f8c5e55512c3a44f4e75b9bc04da2befdae590f09463a0d0fc417a4ae8eb31aaa5820324450b0dddcf8a9b06bb066ccb333a4bf445dbd10c025333154752ac0e919f714deb58ec58f38742fd3379754336ce9944674573cafa81bfcbd71e49beb5ecd\n\n# tcId = 173\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = 889989d3df5ae514b1bc95c5231248b30e38d08e48b88ee8270db52c2cf65427b3f7c59ffb718965849e774e40370587dc37fe4de5eafe74865e8c84ecc7a64fd3ffd657c309db28516100f7b57e70c557302e49f612f185f11540d1cee57f643ed976fcef5c71e0c1db38d12c621b8c80e7cb2a02406ffd728cb3029c23d402343f3040d4fbc0cd2439392a93d0492fd90a89176cd72e6b8a434cef5ac4511ca14d4b7d2dee0937bbf5daadee6a1bafecfad41c000f06f72f73c6426fd540d59b0153934fd059e2dec7a6dcb29f64133b856c3b18ee5531998870f3cec2c375c44060778adc1b159e9411bf43f391f0eb82c20e8ea6c6ffc60c4a0bf27fa82e5f79857ac58de7107472670292c66337781070e562da9bbe023d2396d5f75b852551d721f8aa1a737918db641520809e0be68f5aae43994d6666d31805431b9fa146251424600fa08466622e970f520b4bf5a903e329f21c1c74945cd6898f2f8464eb6b48da5af543bf1937395adb0e4e6b4ec0f11c9ffaf0071a453db37d6e\n\n# tcId = 174\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = b81df2a5f0d8b8d3c5cd1c644f3e110597fd1d1abfc186f4c8012a6247c8102cae07155a7ad2edccf8e6c505e7a4ff0d29e34c8a5ff25aa25e7be34306844f49bb6d90e0d8a7ae3191dac814f00a2c41f6e2eb8122c199d38189770721b4dd0737286ca4456cc771709f23b198c936802c40f8061e6c971963878bde111f3c1f3e1a6503c5e58ddebd395966eb100e6882e71aee84b589e23278f838251092da897ba9ca862cf9c4d20cb20bd0094273f9cdb28164ba3229bb121b3965a02597919b7c75a93ca7e54c2a1a436a7172be4197d6819ecb4b71eab5b37d58600280951d6bb813f7cc5df3929d5b02860f024995311097e42554bb7083e613ba519517abb87ffdc39a0e5f4e4d4dc2d89e3c1b37f98166e80bff7be83f9477211b4ec8f45d8fa99b0dc836101c5cfb385072793698394310ba85772827c4c0774ad917b40fed0418864bff70be1b63fe4f401c411de9e4b57be72baeba53cffb807a7a9eb9c2b4f91049114823ad1abb83787b5d160787cf5d57d97dcfe95c44189f\n\n# tcId = 175\n# appending null value to null\nmsg = 313233343030\nresult = invalid\nsig = 0d6eb76e1cc70a4a16d760c0a518defa2bb0987e2d43d8d294a55c9d60507a62236be3a6ae0098a0b28bf7030b373242ccccb88e4f5d4ce3567d8c6ebbf726ebcecb4ef0b26a696b68e59596e104864e5c7c985342e93bb40faa0bb1cde596556951431af93258664c1c1a0dd44e620b2ce0bed8a37014c460c829e0ca104e66cc5a5566394b3a43e21661e5d5fc0497f52d0d8a1c6ae3a57cb689d75e6d94be30c756e9b4d6b7f497a60a897b83c289f6abccd133b63837cee0c2ddba2b2092c29d96831fb14175dc84dd1c5dd1cf42338225d3be6379dc2f0b51b140f5407baac7177bad2de991ca6ed246b53c94381aaca8a299569fd664234d4fe928086383fd50c2af8b91909bf74a5fcf2e2ef30959b7fc0ccfa5d41953e2f1d3886f77ea6f145550b99b0efa3212d2a927db2b3f133a9c45ff5038cf5321fba0dfdbcb8a6abfbc65a2484692c1a89f49a39d00844fc2b4c6d488dc78da5045be8b560228c1e9c93f8f3613555d15e7e39bb5f4160d6e8463ad6b2cedb4174c4813c8d0\n\n# tcId = 176\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = 3bf6856f73f6ef422be2e247ca197d3d7ea3c8aac7c12af4e26ab047eb7f8997a97a3b6afbea78dce4ad26aef24568640643293f338dc2a0b867ffd71b9e9a30e9286aaf10281df870d2413b20737eb8673ebe3479685459ebac4c30c123291d9eda00cfd580eea9e77c88087185b72fe6b3b0ea201d9b770f74e24595fc02d40db9356ae20d226f9fc09e59e3f7f760cc3aa855da72d510fbb8ce1e6586588f3e79a64bbfb2ce1983d813fa1ffb5890a5e59c8066842f1bde986b7f1af334cdc1db4d97b793d631d1dc67fd13207198106f58bf80dc1188fe571507b80cf4ca18ba4cf7b7953e937884344d4d8f525db151cd5f2bbd856bd3543fd5cf71bc7e5a45e10553dd1ae47d0cf5947e8dfdc8fa174f6642dfd5e3f4ed300d7571ea31c28f14bcb37dfc6e98ee6b1162d72ee1eab9ad21f4e976510178b6ded5d637b1245fdc48458f6928088d4fd792532144f737a9d9fb157fd22225a98e0a38e8197d4c7af95e2eadad8235ee0800a5ce584257035a6759ee0d70e7216c06b6ad51\n\n# tcId = 177\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 3428832b0a12ef303ea4510428a001d6c54d3c3cb4008cd07f57a3b73acd1fcbcef9d29f84a4ca1b70701bbd193598aad70e7d64d187da76bac023ff909b338ca75cc5fa7de2eadff33e377814de682aaff232975a1fb1c36e401fc40c4ea61941d7e6d36af36ae0bf30127f2d05fdbf95c8f0e80a27300373c055e3f5aeddb48b57936dedfa58a3712a2041580abfed8d214ee35e08a5c2d06e9bd9487112ea9862c56eb2eed3f5ef166bfb67bb76ddbb1ab56fa60e7e16a34f8d2dae992a255ba12a154130eb07c8cfa6c2d23331c043332c287528239b7b138f7787db620c3c908ba150dfbbf712a51d5e56bd139824ce046c598ba323ed3669021308b76d70925fdc7461059eaabb4c6776280bf985c34f1bc035e65024629f47c2026ec2c9242d840b037aa4c634659bbef8283c39785ccb596185689abec72e7ed527fce49264487cb40423fea92fec60bb547695abba011b862db538684fff0c77823b0df95ef1396dd93a5189c158c7a845682848455b73b8822a9c27b8a3e789c98c\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 264ab320b777d6c33b56c4a61d1beec9d4191024268a32d3ec83c247bd34bf55aa60660adf5d7480d1082237ee5515692e6002051900b87ed499ed879d7970028d308aab51496864f2d87d3ce95559b24646be209921dd147546203bbc38fb13f38120c4fa5cbdf5b9e39cebe2034588329dd0e2e393caf14d17135ce467397ff71db128316a7220561c6714e0abaa088dac39f98cfec71f14f6b3bb11848a4809240839eafb0b9695967ed8e9ea0b7b2fea9ad6a60c38005e3ce36aa38a4d2fb974e57a6482ea47a22b31cbf9ecd73ea7d63a4d5321dabdb1d9a1b66baa754805322040807982cc4a0fcaa1b30b13e3b8b1675e190c76e7613db3e57f199964d85ef6b8a169b0d70304355fa1633097407eb30e5c5ec6bb2e356b79d74e8d7a516e1cfa1e105c4e9409dc87ca041840b639668ba9819f3150929d2114ab54fed418fc940edd030c481292c90070542cacb0a7efce531f69ba818447fbced8c622524b2e6fe57c466345c2b74e7c6effe9d9a092e0c5a6b1b7f36b11bd2afb58\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = b6921141cacd717d45fba03ff01be38cccfab166c66121177ba660551efc193ab187baa767d12936d1b07fa736240b24e8c7f6bc02b10d82eda0c20b80c591ded6d27abc97f0640147e7c7bf8dca3bb250c993efd3de1f1f58b3e6d5baeb0652472af89d3a08dd8ff39bb4550eb2bf370d6c4f79d0f093c8e3d99953414a5f92593e00448130bf6b2466212d108cc0cd01621658c401cc55700a4e51da8d02ca634cc2560dec5210f28bfae4bcbcc62ffa10569491ad79e9a1b383b55291b8e9b431c51b0afad99eb5cddf015c7d91930c99dd7c47708f1e254ea1c8c09c10c796514478634a9a5c8ad87f6244903c59ca5cc374fb52b244c002dcf39f675caef15bd1329f6180006106111a1e91d4d9c7ae56d065d36fb9843d74b7f4fa8a789cebae586c072359002fb0c3698bfb74439d561f093587fcbc09759b60964578c3150fbfc1823c76804d6e643d2d67c0ec6fd1408d3a7e0ff92527d8c857a92f3ae4400b4312db163ac889b0634f424ee4fa55781e46219ea25b1bc08ddfd959\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 6467d159f5a3bcf671e1c4442e5f1455533866ec8053a788b7e15a0fdaa7d62dc93e66a5d9d9c85c11bd6bcef389174caa3aa9d54ad3978963bf69b5ab503e6243ebb515a", + "dc2bc45bdd6126446095d0c0bfd7632bcd8168147b141007592b1f1fdc8e6fb826094858685f627bf321457a8cd9df9c7290baaee6480841a5f2c6092a084a52f0abb5edc8a4cf750494b8d494f69b3efa970378ebe6846fb83ec22ce56ae8c2146ece552925d2f3eecea726d02f56ffc23c6010b52b5240119ea326349bbbfca1c799dbc5c24125f2c41fa21718dc5549906c6bccb748e10189d6ce73bf89158b47e6e44f20f95d3684cc710859e61d878e540a53de45388e98fa1a1acc92283ba3790d7b52b22e9ed671c5b661ae33ffcc924825efb90962b430e91f468b9ffae07e0bca510441b73db302296a170d64e8e024170bfd0f5396a369080c4ae8e7a3d23a91b021e100e33a2a1c1f303252e63c62b59aa797f5e61b453c45dcbd69ea14f9e8eea4346d7c4957740d868860d7ca554ab88bc47b0058b\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 16669d358f0681b0f7f54c5840192dbfc462bbda4e2e13ebcb23cfd554f1454f616d156a28fe5a2ad2690897a1d6f44b4579407eb7486fd19b5f643a599eaade6bb6197627f38b7fc18eb6e42fdedf030cd4cfa30587e3100302aa37e6840196e1d48be48da0f51e9f92ead2cfa8693b38cb2a732a3fcbb27d2aac903a594c567c2ec8249c97ebc89747047a5315f8b5493c732859e5793672548eaf0161156ff0e96fa7a6d4085aec19c4a218958686746eb0a40d9a6336809ea435e6b45c4ea97b771db37b514415b86d57900c59ceaf4541e0b53f786332ec055bfecc1e14ffe67dcf41e9350802416f31b3ec0654b87db474bd4c3143418de724eaeb74b95312cfc6bb64659a2e537c544673f9ede21dd5e343c15ca7a74478d06951d010acf69a6befbb224262c95c4ae70760d396958fc3ececf8a8c3c42944575e4f4cea5d94dfc1c93abf18aa8a9ff50b96615e8aa8c8649efbfb69e0d1401c0fad73376a589790aca696ee8f92cdf8680a9a5b9a1fdea7260392d9c7c85262af7fd2\n\n# tcId = 182\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 33eeef2f8424d783c321bf75d1b30a57454cf54d5a9c43256db187a70bd58d0a807d807c48ef1f15bbb06d7e908f2160cf36f14411360de927b86bbfa9c726fb859ba05fbcf1614f3f26039815b8663fa715c842ea5613e1322164b37a9e7dd521b1dc3b4cdcdf2787b4aed9853bd1425e951bb16cef49d34fac2c792184255eab68e8c23118baa26a7084ac59b0ca699cf2476689e0bf28dc7b5c7fee4538c0926cc394579e8d20caa0de2548ce9f909abbe6a99cdf4e2ddd7ba91becb620b16262609b07cc2dd9dc7e9594ada4c899de7808633955a40eb3cbe7cebfc503e0a4aa9e89a738ab86033724f5cac153d4fb851b73b6857bfb569cee78c849bf5905cbe09e3bbbeaa5db4b2f13b911706aa350403b6288b53b570ea1223e875343f3f1e4ad2da3755007dcb7cea413dd7d3f8b5a995039152ebaf5617d6e40d01424834c6cbc352b2f76a6b763d8be63013f87741232f6b4c4c67f23fdfef08a4362bb16531dbefd3c7ca514e78ef0b8b7837e5614558c28dfd6fa8c4ad6f11a2b\n\n# tcId = 183\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 671cd766a3875e4734591173bfde1e2865b532f48ceb2d8af037335cf1808c53259b3302c883083c52a28d35126969f71f3fa354c1228627046323664a5cce06d58b7b9a947dfd0cc0c44f4f0e26ccace7fa1b7c3b219101a022c6cc4b6b7579cfb7b187d1d56c7d6060c39b248205403b8f64f67a8521934ffd53fe80fd92be28b87ec4bfb602edf08534eb69c77c0dcef1a9912a684e685e610e58d58b03b000bc7f82253ec251edf239b88bbd43884192607f947c66cfbc3b43b10f0e6d1586998b86834f39522ca9fb30232ce9a7715045cb02bb2bf232d5615afd8af0fc5e3c4253f912a7015428246dcf73f1e416860570c3484c561730c852db31f9dd3f3515c315cfee97026e80115cd238b11208772077f3c8e45d49f0d19765268e12d0b17c077a937a3606dada3077f4789a85b29000cc45c6591e44e73174d4ef47bd417fc67ab658f9ae179d2403495cd50e488d679cb062cf5b193093bc6dd101bc31334fc5abd8ad3fe8383f5ed14f9b148e6c4f7d390ae38920da2e10f070\n\n# tcId = 184\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = 0679679d5be320641d3f545816d0b04741dcecbe8a6c0d1af3ed2faf80449ed184edc4d1b58c54173a5b26f27ce50d8e6562d9dfa425cd732fc08f47eab900060dfa975b2b4a7b30403557950cbbad3414e61cd7fc004ab1ad7658840d9eb5d001d82fa8ab862ccac8eb2a96fea79fb58cdb05a0e8d601e95fdaaed3c4362d1d6a4e8a396668f9a5d119ca32e4a1c926563231e39bb8d3966f2d986d8ecec22f361c7430636bba2031c60a8eab06ae56d3c491a301a3a5be0e0e0a1daca0f0c90945c2b81d0c873e4eae4b1790c61720f0f7df2d56b9c3a21216d604ce550c547e75bc59c401ef1ea588aaf43b7a17bccbceaa47cc62090df5a7d5a0e908c25d589d54be59b2800a5f6ad29599a01a51b82426528f311824e801babe52f2ca2fb058006f61c7e50b621fd44d4d0fe5e4cf92b48afbf6c37254b82100685c6f57b0ff32ad9a17240788366586a5c3a9458bb5169026cde4f703373c7895b3c86173ea9f24ac89e7a218bea90c1092aebf4cfe7387fcd61fd1f13f3230193a009d\n\n# tcId = 185\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 5af6ce6cd7d8cba3c9be3478cb3ffb94b16c6e6880a2667790cfb8818ac081edd53d49cae910f9e3461b18087504525fe0a97f8d6536829eeb16b0311bc0a07b8ffb061b8d749894b0ac1628a9d8bbe62f69fd1b19222483980145ef76be38f6b497fc1749387f99da7fb5cd0ab7e1a6a186a199ca9f86902c08fb495b5458198bbfa57637cf86fb4b12f7b8e59e0af3336e2fbb2f82cf36193a7c06601b010387e86ef6eeaa5aaf7be0a1b9bcb4a23cfff0fec5f3ab645cf9ae47569cd15b55811fb65be2fb83f4c2f376419fbc6d8a2e4c7901a97c660a05cc9beb925a7dacd91bc97eaab1a13f3728187779635c6b9f706e59a1589ca2974fd1195cc07528a024aa07624aec1b0fa39851e77fa67d36cc11552f4c3c91dad62aba44b989baa54a4dab606559b637b6fae9eab10af9ab5aa156b2bbb169a3a8df4bf546aebcbfb87b620e3aa4530e29b9a4a2e18d859db2c6ac8378ea9b36c3c83d292dd6db85a3e7a5f2580d2615027db3731d80c43c917c2771667f2f8fc2a105223fdcbb\n\n# tcId = 186\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 369197d34d2131d501babcfb49f789ef8ead12e732279f06d99e87336d840294a40ba22f7f303a4dd2738744e22779ef753ae9eb7bb996c1a10f5e70702d4688334319ed10f9d5159db9f4f58b3a7ad43ec531cfa9238e3e68b63551f4809f6619bded70a38d70b7fe62e892172d1994be13dde2b2c4ac86fe2ef5897412cd665ebb9e26d7d450b05bffa1d201c460fe38ec76b80c7a3671be4847535226ac9b8d8cbd3ff0df537eadde670444cc61c88724178cb4513df04e10c5f0e5ae6d123bf8f966d7cf777eb4140a3d10146ee687d460414f6c883184292a9e3bf052526433d9053957818188a2ee0a6ed8a0f2a4db321123a367d2424960ac462bcf109f65861cb62451066b7aefb5283a6ae50bef219d151d9f23df8f66fc0a8128219770fbaad551b4c7b02c6b3e20380f1e65182c2db933fc5152da8f22b3372dd97f454230b3fabe4edda79562147df5403824d6f44ba5ba00f8649db460fdd29c9b67d32b0d88d56af66f06272a401bf872ec639d5c79acbc020e930095d52f4c\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 935c94aff85633cf56d8e3dc3f58edf03cc95c14e721d2f311f944999b8b5c413f37a5ab1f3ef809683a436d3efe95a679828b8bf6f2d40b17b553cbfa7f32d3d9cbb6a99f8f41efa09a4bd2d17111277be2121c2d85da600bc7ea8f26572bd70d9b66c02a89748f0d8e14520c0696b7f0d18521a632dc9620c19d411278b6a13eaeab0aa84275aea8f548a8ca25b8d59775e61ea2cd4eacaab836337cd3656629c6d896ed289a14c109a4019b8897c9b6996ff7b20a2a1db2a58ce5728a49806d2630b8b64d985be2c2ef14c8b791269bc387355f646ddc19db25cf64d2b2b6eba30bb007959cfed2cac0292dbd207126adc90b8758a65094068fdbec21ff2db53aaf969692e7d0ae22ac850f853b2892290ba6f198aa6754e713f549172d154220fcd6996deefdbb14c9329b015448060aa0152a08b4d1a5e32d6fc5bb60a411ba8b206fecbedafa9883a3bd5d9fa905119656563df1d2d08c24cca881a6ab2222440b64bc12a859a9d20c7f9ea02322c436003c55723cf8678dbc8303f97c\n\n# tcId = 188\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 71601b43bc8ce6f6ea74985843de5a2c9f71ffa37bde9aac20c59abb025b0dbec4cd8d3623b515f0d098803cfa01564a2d319c93d3acbb5e3603f53e019ce2cd2975905f9faed64ea4756254bd064985e5245d051ba7756d4b1eedf928f9552e9854b0626639702d3ec0c40c2346af7572e86c128d1aea0ca218e63c3bdeccf290ea995bc2a0bc7eb1229395ebc6b9f8f9b14f3d5c1191bb6738ca1d250965cc80c73b3fbcef29d08767038c5c9ab006b100bbfac35e15f35698f6f8c6a1ff3c9039bf4ac984e2429540818632bd02015552e9757f363e8317fcf8998a55154f6161b67e00910cbc736daf7fe738443a3ace0763fd6505cfcaf11368dbe5d585206ca41d76e39feb68519d309dd92a54dfec5791311f5c00bd0bdc7fc5f2f47d558f51a5f3cc2c86c33958d118dfeefb8b531fd4142892e28ccbb2c574b6c115169981af4c3ce6e019fa27c2efe4aa34c0ef104e16c7f02a3b7bd46390039c7d4ccc6b27deb5f6796714d67af88456a8da6395e670b513f45b62ba0aac65579f\n\n# tcId = 189\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 241332a0e34ec700cdf2297c8994ee0cfb848e6f5d6f31216524bd3d40b1539ee5d4955d405497fbf19f9b3681306408a4ef5eba87e75799dae8e86ab050b7e78ebbe9a2be1e02f9cec519a51e7880a7f653a8327275bf9a2a298678493df013d3c3a191372f5f84aeed7abf72697ade3e02d521655d2d79003932b92e26ec22a9260606954ed32c536015a8d5306de8354fec6d51b48a0f258e5742eeff0d2c76b86bdec0b42a6606ae043e86b2de8f4242be7ef65b9ce60fe4f798a8aa19f947aea9ef40fb4a467d7c5413d526aa9491ac9a98f9e6342a154a99264ef601293cd2d4a979ffb5dbb5fcf79ee727f87f9cf7cc6570dd88d60816232eaa57dd75a7f0ffc8160f65715fc12508fbf00134964968d33dd30742e93107eb74c3721cf6615fff5ba1566844ad6859e028ce769823f037a6205edadce32f3d38bf7", + "78d47c36eaa67a36cb53f572b1beb90622e5217b0833de3e6f8000adea76d4543c803aa707932105724706ca4db008c644336a89b3ae8f196b7f2b3ae306e18176c\n\n# tcId = 190\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 60aa59b8254b47199db7b29de45c02247610f3cf9cadc3f46c969aaf36ea1ecfd7aa2c6cf626a5ca11c275485818b2a433e9648c3dd8f6e100d530b215e107bda795ea13bdd3aed87b5edda40a5bb0105ef3731b44341b6a3300409db7b1bf2dea3b84507bd5fa0d7a11709ddb106df8fddf1a9625c64552b875ea96d5ab33820b9acc94a30f37e8817ba1d757c1555795cc82a26c6adea36676eac2934dd3d54e1bb0fca770f6051c108de1e8cc04c15306d94b088a0ebfafeb93bce91e283ef6b4ef88ee8abbfe549eaf2491f23e3ae13d3319c73330237e06d2d00989cbd9d9c8a095e82534e14845caaa66599d996df6b583c22c3e73f747c5e597b6263efd3d484fa75e227873f50c993eff26e14bca16e2df14098854167f0de73a157df996d0beb2aeb6750b5743b0a9f4d685ee8cfa5df01a4b924a679d14919d2753f8935b82ba4e2e4670097cf11bcd59a613b5f34a2963dc56f59f25f2b8b91e9a00a2cecee8b488d860044dc7e10f82037030d62d48e028022e7c3774bf3c25ca\n\n# tcId = 191\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 0d814684d79c28bc169da20859fef117d2d6c98a9c7d52b788d972fc098db62d46f52ba2b5083cc7de5cff0658d4266c113a8b35cb3bf04061d4c6ba6b7b4cd67eeb48d56101555e4fb556a6e90d513ebe468eed8ef0202118998b2a1c0d9879b14367f21d9b4889b9f2b41cd260d95f540dd8489b78ddec27999ba507da902f60fe1dca5f7fef00a85829166a1839162b8e61436bf6723a136d765581963b812b0005b4cbda844cd76c1054c87f69641d5268abe4991afa2fd98dead30ba26d747aedebf45a96bd1002aa3b8c86cbbadd86124817595f123a39f9cf3fd26543afe54c6fcfe170060af7aa096ee2aa16e206303f8579554b7bb1f412062eecd486219c94798737e9ff75ca2c1f34cd03182c9431382f0e12cc7efa13b1c5ad367f34ae84af42b4614a7eac8ac7f1ca10695b88bf6ef17006f06975dfb4fd02731d5cd8a6e429515c4730d0aec054b3533d5d429150fc9714665e3881c25f5850fcfb3e8dae79c364d58aeaf2bcb0ee5d899af92adc93d632eacfe529ff57a0f2\n\n# tcId = 192\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 550ce3e78b5e1301a0b375e5c6bb6ceff056689221188d00c6116eba6920eb8c6aafab5bcc11e52984e05f68920d44be9dc2356617d3e7ada79d51865885262defae63a4d34b8c003ef5ff324b59ed6657dba99765ae425ed2c9bdcf11f41ae0164a44c1c41d98cafc66ff4e916390c42c82244196887d18121eae27b6e21c57354b0d37e160f324b95e790956a5093a9283dfe9a72922cdfde37d15bc317bd05909ed8d1c8dbcbf600fda9d26c810da486a865887191e1bfbb21a68c17c217fc3f8aa2efde650fc8ccd3fe5f6d7270231ab0a97e3d5f3b63981e09d0b8201ceb649505346ab22f664b9b6a63ab088bf4ea01fa26142ea3795161f933164bfc4e2412a2961bc09ae13257df7171cedfd2fb48e5a61034a2494b3bf70dc51a3577de4a948bc0bf35036b0496cf79c9b4d1bae0e9184068260189a6b5531715dd47b9e4f011622306ae7cccd7743eb42b4748fdf46bc5e3285373b385b5e38185d9990dec73133a9b88bd3d7ef0cda141f2c6704ae967af791056ff249c3ddb7ae\n\n# tcId = 193\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3b2eb94128068de15497d0fb6d8612fa6b900a7c8d38512eea2c579b9f62c45d1bd198ecbc5b2facd875bc0291b6df8de78fc3367529d2e36996f14017f3ef71883d3b95f2525f62ae32d294a170f664d3ce1cf5a5cfed4df8b5c658e45ed65a606b238349cf1cd53d6f74278dd8e0d898c1375f007b8d2777889a104735ab7306df6751d9539447e86bc106e83ce6ed856505e5ca3d9eb58d8f4caafe13a07e2d3670b3934f5a08d1c76f723bf2b2130fb8a99393338912bfb06fc6974bb0493a43e14549927215c4cd0aa76ca99754fcaab897f2cc7a149caf0d2692a82e91c5ff0bc9d33e2f6620544b7fb0734b304df20a1e4389f1da4d8b1f40f019060708a5a05582606970a30ef75606a1cc46609615404b7689520db0dd22434052d6348c01cf8d7a2bf80e19b1799e70d049cdca517f262f754e71f000bc0f83bf9fc59fe3865a4e75f275d514cced20cacf10bdba843b824bbc1c9c9c22e4a8e234be197cf90575f132e1c53cac7d87979a84c612b6ea0c2f0f1cd1da0559661e73\n\n# tcId = 194\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 6496f96674d13a493992dcf6193b557680962c4152826f35b82befb713a5e86b09ac350b36a4b27a730112b91faffd84eef3e032628e5a06e98600e49665c9755b2f48161edafbc9ce527e3403ca919e1614708a7ab697a20a398233fa23f32ca77a9c81e16bddcc4058015518258bd48b955fa81cafa34282bb5e6d42bbd1c82fc30ad3a7aeb1d4381cb2ef951da28941c4b9617be518dd3616a0472669c25ed43acfb5f55e58a87fa6181337efc97256635e7c678f099c2d62f78aff5b54663061c0cb3c6c330c43e8a4c4a50a8229839ef6ca0c5943e87e9216da644aedc80c698f9eaafdf81046548bdfd119cfaf95667bebec6ce029ca0a4c96c9a17c8ef735d43af9c81bc82a9317046eb8444a765cd4cd848e61370b3014af893ef92faba5a14b4217f076872d187d8de12381ddb7e30e40abc6caffb5b267067c411f9d104dcfd1e395e2b73c67b1d884690a6a4ab58aba1e7c720c187604864440b6dd87d85188e94b0c6fd99038f299d44e161de8ca7fdbae62c3a8b6ee003afed3\n\n# tcId = 195\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = 04b2a5ace2b1f16c675b02da8a8532511a25d59b2f37031baac48b4b83bb434df89ec93799ca6e3a9125049c051a0f9ba89dec99931cab9786c2bac52b2a06a6250ddec383e3290f423ba899869b4eaab192793d15156b13cee7f7d618ba7a6acf49c992d381b59be6f020812d5a0f90d12814ebffed3a02994a91eb3f2c079f03145576869878f641ccdadfa2eb946c84c122bc198e3d343f0bbd6b041701e7a20db8460a2ca79d35923497028b6abb3d72a5a6fc4b3e9092c2118e248140ed2526ea7b5ea56a2ef04bd40ff27436c7ceb1b3b29a887988d009167dbf2b0ef5ed2191d14ad2eb2d763a7f03e0d733c1f2c27e4634063c39bbb0234189d72bc7b08695e4b0f5b88d5a16f02914c74dcdbe55e7f8a773c9a7b9c9780a2d2ff0b0ba4f9adb0bf263afdddcf2fef8046c605d9e0ceb8b3ee793c41b4b320d7c71f9835dd6a604d5216f55c9a83f67b8f5bd28de1c7b499b7ccf8640c78538c88e00edc66b2d6bcb24bc4018d1d731c05d250d4f3c7b722b38c74bae05c1bae4976a\n\n# tcId = 196\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 050789f05b63424da4d9bfb1bb9a6e816f2b77eadd4e127b2e0b2b5d16e0a85b9af3a7e42ec2b862f477261787e4b65d849254839d88165033edf953e954deb1ad3bc6a0b8e45b97ed267f8104e69ef0db1c740e5e587a4cc17f48e10fe240dee9666a4e71d7c58e54518a5b1d04cfcb9b67e76374e7974c44c88b9b4bcd7f8e5a10132745f398e3588b6dba5a4d680ea8af0311f9a3c78ecfae00217706a7d7acb187caa7883b73058015a2b9c3a663488e1a42ef143337acd5a2563feb38faba0c1c0be567481107402715ed56707d7d0015f9cdc38a9098d4aa9806f790ef826dce67bb766c3ea6547d987a00d5ea252e52d9f536ed2b7fcd39abdf93b43bb5110d3c472cc5df4da021e82ea132cee2646a302f6e5c9952c56eca12bf31d29e32bf810c9ff5c0535a9ea3264223874e1406ccd372e05c0cfd95b97cfc991a13c63178bb5ec5223e3b25e055188c77bf05d1c337617b83da328804ede26b599a76bada43cca9c3b271db2dccd7be1259cf3edbb020a4cda776084508081a24\n\n# tcId = 197\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 9bdb19ee8de8003f29924535f141da242c069d7d5efec9c46044071834d2d7858e794591e277b87e1fdfa6b3108ec8b615fe76f3d374381562ce3624e35802730a4bfc2c54385da6eaba8903aaa8475dcadd67ace389724b59a10e7ba3bab6f332f44357c95e2e84a2741337a253bf85efb10cd9e69cc656cde704aa20681f993f2324ff323582c1feaca59ddfa26d696ae43b09832d2d34d126c40be89959dd2a353a2f3722e2e0c1cc070cc1dd0cc5e3dba9e9a7cae5a7e7bb20a58b37366c624180b2b1d77344351508a47ac5cb46277892f0a88db74daaea7a03ad8ac60a0e212ac5e18d01cc81af472d7bd905474c7596c374b6521579ecf115575eb90721c78c741bb48d4081d914b2cc9eaf9e7ff6c898b5c6d70117b2c8870713b4298bb88d7cecc3446dd4e10208c09cbe89738078f573ebac694d6da770b56900ac7e4dca41b7dafd8e3c96a63e79a28d9727a831b05169bb1debd17fab657d8b52d8f915590b3a67963ce5c5896fe6569ce4c90859cef89c79d1c9b8e48a46ee4e\n\n# tcId = 198\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = b252d9c77e84f1274ac8019d0993427574d63a80a26c6e93b786fcc8ec699bb64306a9e425fc7fad43acf8a4fb40cc7c54bb29312430a67c0c23c79d34f2ccbbd3d196363901316bcb1fb1a7b6edbe4e457be1f9e92e272bdfd7b35310048212b8e8059d4dfcee86bedb0d7bb7bb0383d0187ae56b56851cee1f6740cad320af9fc25517d729c09ce30dfcf477a0f5fcc71c7342e99b17d831707150be963057a203b133e30adbe10c73df9079cc0d0b5b535c7a2f1e545352ac80473545143251bcc77ea46ab72f3c4be6ab4d5770020b765e900f33512ebcab8de4b9bae9ad68002abebae75773efcd84748ffe4be93ddbb736bc3cc3e5a81b5221ad4405adf4dd3f5fa9ffd5975116b56a0150fb715d22abe24e81af90455cf617d290873d14cc1b368f0fd969ad622b9bd299efb40f640507dac6bd6d4c8cc144014db6f74f71e751e7349176e549d694f68d4007ca6c51f6f58fc5a6822a3005478d5d890e1919990118ab5eb61535383c6aeebe1f514a793adae3c1a91f90dc3261279b\n\n# tcId = 199\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = 73c5e90d38f0fda07b0dd538fddff64534db7e4e7f0be09b62ed828c49c616663bcf565b2cca9ea19a77a5135d3dabd86bfc831c2b03d81817aae22f4991422e228e315934e993fb134905e1aa03b3539100d9293b8f68177f4326867bd71de9fa47c8e9f37ef46e1b9f3adcc2711892ce1f1dd9f238ee8e1cf2ee0c30408179cc290dc895cd46e2d717552f0a4db", + "c890fb85dea92554553c50f7f93b34f52625060b290860734cee378783b32453eea66b5bdb3de41839ea69d873346c710a114848eb0e53b26715bd143fe3ea67c3303d1d238be8032242f622a030571bf4726162788004541d642de9ebf1d4ad7ae7dd84fac1c3bd5215a18d65e982bca38342df82463cf606d7c30ea3a5bca3971f78328d0e55cb0bd99594dec125e73547aa6bf4fe22edb30fbe4ac4298752673b2a4bfd592a75db98a5a6d73e26ad1de4b63ac83ba1e29215125e74908bcc888ce8590925cab290711732e4638443a6dc60e705f3c54706b5cf23a654001de4e0f0c40a0078bd6b071cffc2f9f728351\n\n# tcId = 200\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 6495b6ed3efb642c89767686ca55fc7f0296bda99a2c04cf03f269f7823de1f8da9f67d0ea773c03a9aeb41d8c56e4f0919c4f228f60d1be84dcc68f0448d95e3028c230ab5b7cd807ad8c939ac83ec77ab5ff44203a6b7ccb6e69a6ef0c902f1e70f31d480737e418b3a73b9b0bb5ab551e86ff80c3e4e9dbff385a49718d7f00b5063c4f7deabc566494314fb5297968538771e0b3a5b27a56f11f6c9f0b9f6ec644a3ebd9b6e7acf668a1e64dbd3ff84b860f91c3d4965e657804e6c5c92bf5921e10bb405f0d11740aa4f7b46a82224e0305e312cd4e17a30757eee88667f2372cb4ac971b774ef78edf1bd299cb172867352c574cfbf23a321faaef28774d65bb22b45647b9a526b7c4245b6c06f2225151401a77ecdde12e767066935c0f9cc94320d6afce02afc71d30a45344c79ea22c72a247a1be6989e27d59ae06295fc69898d5f3d2877e166b9227fc1a0172ac8e367828ba3f6db8ba29fb963a205e897fd2fe1273a6406551d9b2eb4aaf88a7178da423cdb4eda07b2e309892\n\n# tcId = 201\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 4cb5a50291ed1e9d2514f4b5c8d005d81608ec004b035336991259fa908d5977ba8c75ab7f0fe0b31dc7127f9e81441e11b1fb94ba034459622b301cfc6918d49648b74680c0dfe79e455fd7c0bbe2d9cd0cdf8d28c71b949feb817575e01e3fef84f463acbeec12f1a5eb6b5af59d021413fded81f12e792ef3b4e29d3787f561a20884dfc296fa4490c40a790db98bec78be02d6d83907385a6ae8c15f9ce8b30315e9c0d1593b0a5efe03d25745f00f507aad0e607e5c81ed05838c3b4cee63405ac6b6a6034051479cb9f40f2a6cbb0c82913277e32d5d1c9c55c63aea1110cf6ec03fd7d908083a9aeda83db8bbe72f787af3914408d82ddf9d38e80ebfc152b36ebca127f7d82cba622684d44c150d46149dd452ce322820316bfc207a3b44a614dcb0f9ceed843a8f95bc7cd540df590dcc9a451c39d8d0a9770dcd7950b339990ec5100723bf07da131bd384d6141e98e18600dd44156750db66826d65faa991180866c752858536992a16cc0c89e56dc6cbc7c0972827e586757476\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 82cc73f7a3bd65b0910b012bb8a90593f78230d0b9cc0e3ad3895271492acf1d520c231aee97e20084edde67572b4f3f4d6f42f2e9b9d262c15479a0bd176c0767b1c89fb8e7776f18ebb210d353c870e4fd2ba3c42ce8949ec0c8a5899a3b841bd4f8de8b549e6736b1f3242ddf959b637d1be3aafc4ba7c46f2cae3a16228180e33796ce759aebbcca47a64ff2cebae8bd1dee8e5cd46b602360386620fe6d4704c16e61cd4801abef4f6832c1400e99c14a7024a46ee43e3f729241ae677c128d9b5c548066a8d765afbb42fcd3b491b480e2496c5ca5cbfc1b93f4f85fc5eb3dd81d882b86376cb800398efc25389750704986e5b79d1f6a22793cfa3519e519e0cfed2ff9e4ed454f87367239cd24cce8fb5b1bb35f9ff286ed565ccb1bd41c2c98094cafec4960e59e5c75e4f03794b7ff913e848c1ff0fc5e19d61b0cecf65cd37c95658e371a8629b091ba05135ef05cf57e7ec508be6f978787d9fc7fbc109132c2fe0efb8c3fff622b600b3d3fcbe46b79db032052e2c082257a05\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 943d197f031094c5f4938c130e3b9778c44ac5708e2b1346a77a9fad73948505d9630ba4cf537e9c17bae76033c7c6687ff256967c51d4241489440041a2956efeaf7ece62c3baf68057cf72b576258c79793ba81a1f726158867ea20cf1fcb9632c7eaefa0fdfc728c193d08e57a29855f2c4577c566f48cc1e45a6b0af10c0d68dabe814574a131b8ba167e1c7495955edf33f90043c9fa5cfb312b8d55d08689ea68e2c27d1c65188bd35475053196e05cad0ce63b9432bd40770c1b1dfce8ca497a352030c1178c6865b6615103b3634562b7ab1ccb1a08204761574aed2da75478f432add1b2888e21ab9da9ce2c00259f6a4b541388bb19a48daf91135aa9b540bd362a8ce1c986bb609056f19d12e4c56b2031a3c149ceeaa767f57939cbbabf1221d486c66ab5209f29480f63b367c8619d90f5e7eb3116cb87930ffb1ad45717480f00a01c6e69541523b998835c5d81633be9b4b82d492b1d54b2e6b14da2cb33b3fae8210611fcf15009fd7ecda3e135113baac619e8b74d70b17\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 1301f1131b35def827e8d8560f56d7dffcacdaf65df2200e054ab7717ca7a9f7f19a3628d8774cfaaba6a377e8b854613a4ba7c6237ab989976b0d1398753b7b66a724c91abba885fb77e908a2c6a3ad8d837f75d872eea76d7fe0d75363098a4c7af8bd831de55da3254b85dd199173c2708b191670cc659cd491eea567d633fc256134c2b47e1d1d28db03a5e8294f20a536cd7280e4fe86f750d99d41cbe5687217a55ccf7bae966caaea313258333d07fbb0b00859e5d9e21d71f190e4079ccb0026f074e7e4a984e8f478b298680470ce6338a2b25ff1da6f0aca3247c743c384d82406e44701a46a4c2e50312c11088567788d5743cd3165e3536b693e54f4c6ccc4586e462cbe4796eca57baa70b6296013d9c1c6f4e2e02a75bc6265900bd382892f4135a13ab600c764c546fea14febd51bc378bd1145c2282c94228db5e97d6ce7f29a505e46e373779b50b3856556d8907f07b61c2745ee4051d0f274947fe06eac7d4b091fd5476d6b7c54924018ad7acbdd252f1024080dd681\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 742a5c3575b6379d7166188aa6c9fe5406b157db778ee0900429d6c427fc530c4c0144a189265dc78ca14715a5a0e69995ff914fe0316e504802be88d5325af9344cc54db76e1d75030b3c41a27c8e9eef0c82d05ca92488475a109c878624133db6154799b4c2820997207389c610204f17d8c2b8d7cf61e49cef4b2a44ea88bf9c3026e29934be4afb3cff846482c5e76d0b581ce2851e4ebecf04f537e89c42f9ff29e0d8c94fa6741ec0a81fe7d3394ebef89d0cbf2824a374283a4e142ac6d7338ca1d6467df4bd97f9f6471c4e772995fceb7e34df6c7b583c73a6502677f23760369472b89e0051d6813bdb16bdfbfd1b9a49f474b29257883d218381a674fe9c245f3c419d0e0aa796e0c37c146469dc23f655a287370727da3a42e99f05595fa3f76165c6e5dbd0f0349daa60086fa30299f5e811c5ed4e957d4f52ffdc902a15fa97d2709f95f680ada1df9ac17ae1703471d00d2958f6f5642635570ec77fa1cf70c17e12d3a1202ff4106bfb7d51819f381b3c8f0d40b3a2f345\n\n# tcId = 206\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 7c5f79bf21ab84e634160b5b201ef9fb0b2aa17713ce440c58e681c91ae777ad63d7ebdd1c77dbf90ce483160ed3451921df200e3eebff4a25a903e0db6c21a2e921a1423a2a23141a841444213524f36fe99386ef68ce319b9093162c475cda89a55487d975fac01318756ee64b70fc4bae1af18fc806acea41e74986716bc47a73293c5d3c55d267310744999e533904e73395f2c77fea30268f83318c6ecc657a4f4e87b239404c72798976258af3b444afa2049763e96072880f3d2a647e586ba284f0a50425a1deb8bbc0e52241d6ad589f5c20f09a2899fae574a4bd29e57b604a2214afd024a54951461af01d4f0a12f497136124bd3806244e8d8633336dd908c68ecf08435f0a97553d2943d060873411ca5ca62fe8337c526dc8146c60a0a1cbef0cf7b5818d6a2e96df207729276ced557b1fce70dde2be3a2012a6f6f20a9f94926504a593fe8dc6b04efbf559a362ec8a401772828d277d8f1abd9588441d575cf166752f57c1b50251cccb0282c75f0145df04e68da9f408b1\n\n# tcId = 207\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = 3743ed858c007e5f535e567a2cb63ebd669283a40d369a06df23068afd1bf91ff4521455e45ab94b0751c4c1e648166c7ea571b415faa4311a1598c5ec0ea75472040040994ae32209ef33393f040e05646b0ab14ca0309e1bae24c0bb8ef467edd7ef74bcae2e8ac7e22f5bea0a8537a907f42ab3f6bbe61e24084642f3de68b73c979645a3d43956e7c738ae3621df707638f8b0ab0fdb854eed46e8e307c653b894393479dd1d0dc9f7317bfcc736d51af55aa036e83752a6d6433a6538c5b31900401944288fbe8209728ad1f5394ea66718161511beb70a20bb3e67a464204bd34da479617c8bea4e878c842519655dce03627d833f9b9add861d5ea89e85fc6a56e623719a163159302dc041c7c0c7c493131e09e631c297cfd00388f9bbbcd9a216a8aef364ecd579719bdd5ad40f2dfdcaa3756f574045eaf4f8b05b4b78a7294b77b420cd317f1b74e40afb649209c769d82e434842397749fc5f80b89a1cfba4d532045459179259e37d3506265fbb1b54b0e0d55a036746447dba\n\n# tcId = 208\n# modify first byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 7f63d99bd8bbd79dc7916069e234578e8966e7bfd0ed9b8dfa181fe5c340c7cbaa50251d4cf253346f4c4333567f754fb828e8e19399ea645e97a7006536d76198f42af8f57a03ddff688b83d481a222cd6e7f5bce75015783749a34fa5f20b2d0e17610e2c4526dfa780bca5c8d50d08b85e5377820ea657823599a32cc55d2966702e8b3f199f5dce42a2dcab5d372f6f30005e72aba34b149c89ddb14c7c7f5466902c0de4cfa2a6fcf2d297f76d9300e76ac7070091c9ff6a56bd80b9f09be64638db7c200dc455f0437009d3549f543364b03a2178bade56b1b33751752cf7cc744f2e69be572d56801e23e91e8a6f9d3260ad4d42c66cdbaa0b2252785f35500fbc7a61df87b09eaaaa4adf08cb42ed7414928f085baab1991fdbd73aa0afdf7623e14751ae28df8824711cd68c608bf6cf4829c2cc7db1159797ded24d017b9db6d284b5fa2ec7c4e22f56630b3b8779816ef0c77d6be4b3fe40cc0b286284a8773975327f535811278ebeea8530137385a8957964b33cb3489ac683b\n\n# tcId = 2", + "09\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 661b1580ea4a54570440ff74a751624926471469166304117da3cf7c9ef2784c547f29d9c18cc3f0de876b259110180e12570868ec164492b7df971eb6640a0b8d99dfa4e40d1c0b0e10e6945428b2e7e4ab3cac129f34165bfc1e5f370390c865ee44e2e1eb011ee448cd547c6c42ced8b776c9d3e4bcc32106cf112f5ae94e01d8a662e350bd76aeae070b9ef3fdd0b8a9ba01277fd9a5b512e4e3c1a0509b725581959abb340422a0953e79002efd49b72354ed8e75999b633d399c7b7f4e6726850f05d655a600b99f0cef7716ca11a8ca98c40322a1edd15c6e090748994e967f381265705971f9d397fce9a6cb7ce5d3669ddf6c08481a1322fea8c3f030d53514927b269a49cdef8fa287985c3d6f877cdfdc221fbec2bd1f38b4c3d01fddb4ff33e872cfaee30b588102f8ebd97ecca29b695e528ab0ac4c01afa1262dd4275d8de4712a2017dbb085b24b99bfa0b1f94b3d24abd8bc91eec4ed21958602d01c85eb34c2f09c0823dc523b01098c3167de5746fdf6f2661e3c2b541c\n\n# tcId = 210\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 3e124cdc65f1d8fa0ef490cb7c23f812f28175af02b82f168e59d25e80c27678db0a49a1c4884368856a71a4b1b2f82eb6e3141d20c1afeb2f1c3ed827041c7d4e37d6a2869192f9534158813b0acb938610624de4cd410b49dca8a99ba03cbdb5095bee0f6f9b7925e7fc75d3173e19632ffcf0a9800cf75c2676fa614c8218ee996c2914d2205809a7b5bc3cfa6f90613ed68691927aa46a026bd7b2eb59d6512092d87e613cc0f0e76225ac3496051cec1e2d0c390235f814bffab11f67bceb3fcffcd03804ee6da2adf173c1abcb6d1c55960b3d4caa45be02d668ff29a063831bed22985cf74a640420beca4c08d2ba803b847ff696c364aa9610b9eed9a39581f382e76cae1fbcdcd80372499292e302f662e19b36224cab65378dadb6859d9daa4fccc239a61df8e7e288d7f4f4d6332764ffd3790fef9eb64b8c0c14c781f65507570ad29d7afb4689919d3cd674a119bd703cb46e9c95617aac644d71827707f11ce9886ec67211a68869bbfe8ef7b5bfb6af446e75d87aa6d12dcf\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 67a7cf917c469d5b4e5c5a6ad0665feaddba9246cf577e4feb2cee49eb971cd41e50386520c3c22e351caeb8d23103f61af2a6abe15753ce14ffc8afa3a66618617b8c2397bb1b14d3c2c39037260e55b1f3f837b193bf39fa8036ff74f9a7adbe5e6d1cc39d368cadb823ac1f969ccfeae89808eb383c89d514ca122f96a7d56f578a3f10e4725b152ec06002eae7bc2acda9728a3fe455dc5f639c42c09bc6517f92dc223f1f08b3367840506c80894edc65d5163fd73d20048136f10f2583c6048c7ed8e82f44d0cdfed868197884dba5ccb4ca532907eed31d3678ce82a0163f10de20e4d5b581b67cc10f7d6030d2477d17e29baf828903b25cf2f77c17d028de6df352674b288aa60a3437834d70c57d40c853df98ef1e38e6456a7cba3d8082c5c212ce08216f604a997d632e7d0f21b1b462df01bea08dd484e0a9e150574ecbf31dae214a8013c2e640a3b01b0945cfb4d0deb5c83a24438156602058b1bd6c30aace6742264f8ff7682e18529010f25c93980a5214a90d0d32dcaf\n\n# tcId = 212\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = a7f03b3383a083af9fe06879d4200e5315d5ab86056dd87ed326fbf48589f95da6b5465158e1b33099c26a962b7b5eccb81fc2962188181a167c6552f1c33ec35ef6eed346ac46b4ce31be3a1726b87387a7e5e7780900f7c0a909e6fa3a8299f5629bd8d2da3e6339c181f45d794879ed812974e5203f1cb745a1da6b34bf886928d6fef9111cea3bf64bb57057c885d8dbba5951a23781993c1670b75404b990a01d4eba230b15a65623ff2b2556077fb91d846b098e16eacf85b541cc23039e9516b465b07e2b06783019dff98420fe15caa3546e823e423c5262af7f54b6d9ed3dd854e41bd1ac9aa4dd951784714e5365d76c096395d76a647090f2348dfaed99b4ded7152beb3798da4bcb533813b653efa5789b9ba863cfe1522e5ed0de68e53b0382aee6b2b888e33482463962a3f9d817a2dbc26a070212046d5e6b80e49767cd85bac25ce2aa0d02c5ebfd4c75ab733d87408c8ef5d21baff4dbd409a4e6d5fa7c55cd4b63796ab79fbdab7587bf234f0690d8e9cd45baf4857ab0\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 995096c669017cf835c7be99440523256d5e7c11c06af56032d785d521b68272771ccbd2b403d7ad18d73905a63758ae3a5a5edf49ecac57299ae74987f79417b9880e66a0d9893e29f31d609ab1622cb357a8d19d95d037f5d19c41dcb586111355e7fe91dd51959beca4dc689b36a7f39684753e9284102afb229d50b022427925c2bd4dfb15fde2d2a18f7df3069fb97605e02a341e325b0bf163fd6eef8f7013b4aba1e6f3a311631f5cae20bd48fdc3246e63215838136c402894bcdf1179c05e11a76adb92686e3afecea8ede7456d05f62b7a04983c46fae7d2718515e875a11a261d54d30ea4e8f4db75600a1af0c884635164aa72bc129c1ce543dcaedfe62f7ffd72804db58066613c2235fb4095869975196c1d5f423207c8de777673832aac6e129f7532e2fc16d7034a1255f378c504ab10d149e8d2e79232b01f6261fe8cd73f9f89c277aaf38ddb71ca92194fcd569802a65f4325a4f6aa5e56e0bc5cf2156c04ec0aa9dc63278ae48de9a1657dbb62153c1392e96d551630\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 4205aa36ca11b03b644339d978e1b02228e2ad387aabba21fc649a8c75fd9a1a4f29e91b4e607b4b5e3b86794cf9242dec5509bb30e456e4f5dcc57e83028c60b461f748b1d7e79c8fa4f934ab117114956da7a2693a4023d349a68a4cfa0257486d42a0b6c348a9f77b2eb5d8822569e3dea0cb95c66d68b7c955e98a9df4e921bb2731855f35f0327142029f8ef4306d42481406de9deba401b31481597653cca1234cd20d6cf0341292362a4402dad4ee4807b38728b265ed0d10d7707c8562f14b6eb890c5a1d427725d39f10802c7e865638772a9e0709641a22809633b9ae19bcf052b40fbed8a00531e869761a6312216d69fad97a7f58bb20be27cfe75a776a45e207b6cf1a10215da2c6ef89f540006a2177c840493c83fdf616ac8c9cd647a415532ada9cefe067a81393df8bb94a3449ef74bdaaae0b120165f4a64703d7daa14e8dd13fe779b794699ad57b593ffdec9202f9852c33a4336cbc0223e2117b37118bf9fc4fa6204a7e584db27cb009b800915b4618548d24b3b30\n\n# tcId = 215\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 8100d8da45f6b2d77ee4c5c5b6fc8c617d85867eefcb861206a991f50638b0a582908846c8c10eab4b694850b6e440d85fc256fdde3fc4092c262041b28e1daf88a54f48c0bcb5c17d9e76ebf5f86c87e3b89478d679bfef8135cad5394a8e6211c64614f6ffc813707273b4d9496276dfe6d566582eead31eff06769b4c6ca3de97c0a622fb282c646cf3de6fcf8a12317255d724f099f1efb4a7379f47d4f13aa11d87e778cdc79784d6a6b5a2d68b9e4ea52bd507a7036c575485c8c377b8db9cf662e6eb973053b3630a94aea288191d9f26ee5fef5f10be3468c5a721421a07d9b25d5604a190d842fb3b92e70f247bb339295da253ecf1c9011d8d49d68552e192eabfa012fdacd63b9756ffd508c04e28039df08867e5d5298da5e72bfc1f0483129581b25ad3bc69204f2822fa5a34e3af4f9eedc0bb68b66a0268532cdcdf5365eb5162d05cb5619041a2f9dde7fe444fea5e9b3c524e3760ce1c633758ced22d5b98f0e1ccac9af15cf825cbe9464a5a5d45a8d1ea426f9499db8a\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 118bb4ed79ee68eba200bfaf9909e1af3216904d9dad25815b2052da7d6e057c1fd8afd0929e82ec945e9dc17740790f791a1eb546dfe8d382aff418b094244382b97b8b7dc67400c99aaa5c68ecacbcb429a151ad0a77d0ebfcea781cd3093c312758c7478d4b50682702ee37f69df129f0eb6f19d80e88982700cd9bc81786fadf5f7d9d37cb07aa4ec7c863ab706c42133dbb79e34a22cce78617d86806ace0b4fb28525a1b0e8dfb8da4de2b5792531709e1632e36d8b80c5bed87e559819b5aee7613f1841e9f4b1a3caa77736eb71c9c2b190a6c6ebfe97c922b7bf3c1ebff0accf555d447812a1677d576f3a41a8bb3e8062c49481222c8c53bc00ac821c1cea8b909031f23cd1647f685260d31641177b29096f426816337b70bec98cc0d911b0f926a5c2782466af2a8cc8e8ae78243c916986bddec9169eee2f7d84a9d070ef02878a3b15204aced6dbab3c0fb6f35d07bb2514755c318e92e48010cb4ea5e7b9c073fed05a2a5dfacc4a94b0d78ab89fbc5f8746ff440dbb229a2\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 1613ed80cdf3d91d6705bcb079fd15ccc29373b03f84510edb0d74b5651b91967e60738258a03ad3dafff8d83f3c18feadfb08e9a94f9f131d3038288976ef35b9c8dc41beac539dfb0fa1e9772524f512a2054e73467c8443abc599c8a58b46ec2340fc4b26f831af6e09b8d5b876596008aad2c4045fc09bdef06f445f54e36f591c73d798a6905a993177b094dfb345a55aacde1304b05cbe652a62e9f6654b24153a7cff6daae42a55272fc72a8250acdadc59f74dabefb9d321e80050ac1f211ff7946e56d14619355544058b714a000d8b4b096f56338201f22114c81370543b392725b735017a550c7f685b675263f8f9b43c1f8e8f8064764dcc34c0d581efea1647dbdff9a296f1501a1614fe9d53d52ed278a8b017215503c1e648a706c5e6c3a4eb26f5eeae804ff5ad0116fb9d2d246723eaf6533ec71d126bfe7d08273e587a025c97c4d2a55a1d850a730495af8998ed35558866bc580d7c51212e63841f33829156ca9a938aeebf3a38bf67495b686d484b02c4a151bb2661\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 906ed74270c0bdbdcf086ef69dccb51c524331e79d6186a8ad18f86c11657d77d752763141153dbbffe125f9e26c30f1d58808bb8628bd1e931262e872fb6503bc0c919b2586c4c5dc6dd53cb122086536a87541d61dc33ac6d437ea1b9a9e3f4476f7e7c3926e6985f3b8df8d7144f6a81568a04a6eae2977ecefe2664806fe144d9a174d53734be7deafc737d0a3e6e54891d85acd0fedfebb55d069cd3d3b2d6a1594ddf65cb433291ca4f2283c21a5aa4811bda25fa9a8b41ca9c5670cacf721bfd0dfbf388f683a7f87c39654d6a8c2f85196e23c915219e92189aa07f60dd6db16afa97cfbdc9413ec33f3bb9", + "8020ad58d4895f4959646727521ce4c2c0df3360fa3db123c455b65f4f0b0aa88caac6da5877b1da3c49a4fd587b3bcbf7fa0d107d69fc415842abc860c19f32dfefc8695b863468b112f0f886c8a249496c355740e07291493bb08ce9c941cd624b638b3466a4c2c51863410bd22488c5b7e00ff636f6dcde4ce7ae66614f8a283709b07f80a42739a0b2d7092031261\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = a761a8c3db6207c8385574f6ab3d42103e5c9dc941c02ffbe0dc1369900360155cb591b32ac8725b01a1d9686ab442af899751d9c4d3a8cec2cdc6725eaff56e8a13571506690cb2f26a0530dd49aa380fab93f4f0dfa7a1e6b1c8e392cb8bffcce1f5ffab5f82ba45d7dd922f082340acd1738a685abbfd598772fd4d0a03a44c9166d807364437464bc3b186733a4aca3d746ccf84a9cf512fa66f2cd73f029ea837ac15c71b2319d1adc9fe9b8e430a428c8f3f2c4b4ac525f94d56620e3c6aec7c87de0afefacd6fe8d817f25ab990ca16d4b3339f15d0fe2de6a0488901e4aa2844e42a8d63b46eced84ce33a346ace4ba03daa4f5f978df6bbd956d1d9bce89a5964da8eb72d9e3b10de99e9ba54f6d24d59d31ecccc213aaaf2d902fc8dfb2059eb2ecb3e17fcef97f8ff01aa59e4c615bcd4811afc10db1d1c04de71d0556ddca363b8a34f48d97d540b045fd0026655cf0c37c4c694fcf2423e0116165d4bbc7395d72f00f6650a787d6e36357077630974d375c2ce292ceeb568fc\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 7c3599d8539a560502121ff97bedb8a1c16d10818a49408f6152ba9d914b6a852710088e5c48826a099ecbfd5cb244ba16c04a71f96663930854a64fc5ae461677dba9744fffa624e64b9919814383ed0fd947e355bd1e651c0027697c8edf76d804394f30e6598a8c805e4bd80641c81f2c78e9a7255535451186c00e963edf2ca4fc7d57dcede17b18a1a22e2241da6b71bfaf24c9abddf9a4542feca1905dd9048491a5469da8fc22e46785e534a53623fb550072472b46d0c9e6f762bb80947573e269d785f6580180bc977efcb3b9af90a974433ff7aa56674af989eff32ed8963c7b202d3332cdc0285f67bdaacb0a41c5b59da507af942d9bf59c504aed323bc22d8e214546820fb32df77e52ae9d458b1d2994006c12f31701bc09b448198956618f89eec20a2e0c916d40c26406258becab6907bcc348b46e7195734d29ba4846ff63aee05e604bc2df75cd3cdb3005f9d2573838a792e68e3cc5f2e6d447cff1c2d0324ab8819031e9eae8923478c0908b0cd2e9b80bcec076c2a0\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 0b5d0e26ab8bef0ea2a577c3ba6fd712e5863c3008e85f46122809262efcd65658ee490c85c7945ae06b6fa342d7dfe01aa5faa9bae877e9bb0bc0cd608670b54bf4ab8593720304e2aa0d2bd62c568cfa6bb2eef302e15769e5054e95bf7a954e8d2997c06bebfb9bb25ac6f52b7b4e79c872b425be6b731a4fb9bea7c408703c768a30f9cb455994bc42a200ef17c64f4d4d6d7269f29bffed1ba755fe4ba3233a7ad464932abf831eef5245a18bc61dfb399c7b2da6455b6e023342833b5e5c7b255c8e06fafc78266856db13317af40b6df8990f8ff37344029e731a51c937a1ca4abd66e0fe90ece58be527dda10b3e34ac0bb661135eb04fac8b90b0756bb47d2453be8ff80d05a6596a1b27c0a33f24fc79260e9dc0a6e099f6a95a22a4e083a5acb201cc654d2fc6e21cfeece62eee3270e6c6211c2025d738953e4a8d1ec7e4cee254a8d2eb446429aac5d8ac480c4305b32e566b5a017348fbe2422246f0696c9895c2a72db471e058fe15207c40ae84a46cc7ecbdbbe9cb9100c0\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 37540f8ec9398571bbb6f153c1ff17055c96373b7e75e41f75d959c0b937d635baac3ab200f7907af63bab90b7d0128d603353d5628653bd067caf644cbd4b4319adc964869e2d7933a3c4b873bd2a4b3f8c0659943058293e42963906424a2cece6504fb8cdf76c21e772ab7a0359b191177d2c2231c4e4a5453a8af346db0e91e057fbd6b70dd486caf9516fa7d6f408d10b55fefb03a5795311b0722ee2a5d40a11e29316bd6fa5ab8eb34ef1a0375c87489a8821d0ae554c91bb051b03e8b3c3f301927d8478bbd62f3f37213c734099730c582bf19095e39ece2703ad09a7af236f175706714a80be282e262e7c903c59795754e589007648b550f93d4c7bfa17d116497b258014a86fb00403f05598ad588010eaaeebc2e81f936c5a9524446323a890c69ee99fbfc6917ffde3e04a591957279c334e76dc0dbd4e37a493de9ccd9fae9f3962e5342816901771890a22437f56bc201616359ba68c041ba1daca49e4c7bed3849f9c3758b47b7f90a9e2d03a2fb116b594e28bf74eb1a2\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 7e851fc3f8f1a61a6b0c121f6a59c098c88f71ea2797445ff1db5cf27b1594e14b795160d174bcadf3abdae48d901a39a177608892b4f421576064f2d07da9c5edeb90ba607062e950c2e2a89addbc46a55985d6c7aeb9be9e58a0dbe9b72e408162a87710008cbea6c28bbbf7efce153b2777b171c8fc06e293dd0d1b08cbd2bd09d7fd9d316fba544dde143955e90f22f2f65f1c81b99bee7efc8724ea97873d18bca62496c708e88d5b3cb0ce64b6308e568b5e03d80564b2b182b428e7e08b4a50ce12652027572110946c8804ffe5230c9a063eb74b7f64c792c3de430d0ec5abb89e6f1176eec2aae6f0740f1ac24db0ab779217c5bdf25f1509f21b50cc2ca1cf0895874e68e4564cc82cb270111d524e948ea627538f6d9db2e41c8cdfa7c2c505eab96085400437ffdbae4097e059b41d4a8c577a33e192c4a73f8ae51a9e7f5f8f1dc3c297b0abe204813a704b7eaf2ffcfba0d44055146c4beb9120d832e86a57a816d7c016d48dc69e6e5ef5dc55c43025967a6c6218788dda6a\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 481a84b65f97038ccbc2f835c37f207e72edf255c5c5e3d0d14c581568a1606422da5f51e73974a01ae95f13c1763699267b0842a2be727217e53cbb486cb524c04392e4eea943df6c92898c9631bb88ff52c2ddec1df6a1a4daf50b9cb0676ce16acd8f173eb0663192d2057d5360caef3e122d05414cd95f84be4fede970649f00a93567d36059c4fdd0eea32a22d18b96433f0cbde398b0de36c0ded21dab5eac71b6fb167dba28a79a191c3447cecf0944937bd6a58a511c058a681be19ec373ffb9f0cf7f47676253afd605c1e7be41a6b7428cd0510e9a7ea2249c5e0b643af6fff232e8fb99ff9ac728b32932889c8c96be9e6985ba6556a05fab4760ab0f3df599401a41e0d7f3bdc24a0188fc4ad5b7eadf65f32dd4d1c826b76b5f04a62e3f7722f10528771b1d6c78dfc559b4bce32257a4cd56754a167547f56bf985e328c02f4e65c3312d480fbf165c6b266ea1081db095a1df32d7d0a29f98ce5beb4dad78ae09774805ec58ca0eeaa9c17541dab93302c49d27bd4a1f6090\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 4c548eb5ab00b32b5cc200edb95a1f617fc9a2b82623da511a092c6cd7d428621016ec0e8be4ca66993a079125a4af990df598d5202f73822a5768de5c79af28487218d0f6a23960db9ea8f050b4da444a44bf116179c2d01c4e7b438ee298bb5769a8efca3bfd4492ef4f45494e1540ba279056354f5eb554193269627bca912f0e770e230d5e3671292059515d163cb52c181c160ae8b29de3e90c069cdd757d4adfd5014db2aaf8371a390d0ec6fdc19f37d78776b00b55db4d6e04e0f047ed08a3896cf69bd155e1a95f33fcff2918a58ed0b377cc46d1a09825d06799812309f6473b2a378ffdcb4e6a6d774009085f4cbeff43b542e2bee3aede395f3e0b5c878c303b6667c34c2ee6440657941638b8356318a9ab5d4a072ca83f7482ad764793add9f100377d750bce70b9d063d26ea3d8f29576de1a3795fe2be290623c119beedce6ecedc86804f73f3c210550bd582a98f6a7e86662b6461efbf0e518bf28d9100c09e44c8c78b5158197ed2ed1675291600a6442cf2c8c038fd7\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 7175635076412325c1aafb617fc38754d4a33800c55f307216233b6824fc26dae7bf8e4906c98ee4a22d527ba46e8161df8383e87018a12735d2036600b79217e61f6b76bf4cc6c50cdec487c28ca9fbd5cfddbd8f3021cbfda8d238c61d848eeb9fea97cb3e0cd6a56bd42f565a1b635f960d786dc229e5f58fd0c4465e32e39e5f10e21ead60641adb04d88f920d0458dd9cbe15214070dd74b1c288d8a1ad83e526bebd0ca0c35375b84ca1e05d9db0992c6453307b8c4d64e02fda6af6a56a8f53196e8bd8c1ac8fcfd699542d6f9ada11fde6a2c25ce3727118f05456ac7cce967726bf1beaa1093d8021b4dfef6cc765696de57d5abd4407ee2d96bc7439cd9385cb89a9a06b2f4cfa8715777b421d9c26e35d314a242c844157f61888b4a57c169407c180392e21ceee821a82d9ca8da77051d7efb1e1ad08c8824c7aad904ccdcc0884272d118bc7200fb112a709c4094884336304f6ac062eacec72ccf143c6dbe181e61c3efed13bb9cd0c7c2901589fad8fdfc880e24d9efe23e9\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = c6", + "fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1202\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1204\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 4e28f546283f9ac74cc99c6bca79bc208e47220cfb0717aabc521ac55119ec6bbcac880bed0007c04eef92a24b091d9a09ee5d3b5be790abdb2c98a07313d505fc876adcbb1089026940e03dfc10fb46a0c2a764ebe86e51ecc2ab489f56daf38764fc0a36a9cb4529367c9880bfd7631c340fb7fbac0edd2e1def00d65bd52e597e2eba1be1e41bd89a00f5c66fbc18b93e9cc1b5be962780f6d7a9c6d375a28556114f37a8a3606dcd68c8128bf7a7e5f1205778bcf3048bd4f7c10cbdb4ae759954c4e4db0a9fe4df270c41bb86885dbdd8cb7e72a33322238a2d29615a2f01e9fc59c230c2cce58ad096c2de5071e020f76c8c39874f1de677dd5d2f96ab4dc145098d25b740b5279f05713daff54ba695f950039882059cfc2f86c35a0501b8d0914aa59a806e8d1403fb2eef163ba1d6e3d1e18dc99c622f8c2d360bfab2c9e8fd9d74a027e466fbcf4fa56777ee0fea7e04ae1901e65b5361f97146d7f4a550adf77539fabb7135967dc16f8ca99e8283dd69627cf27cb9d2df20bbbb\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 78d3509284dc06b54583e11ddf2507d9e50bdbf079fc319d107bc2527c1b742f4c759320fa22435d74e94253feb4a379128e7f33c5f3462fbfb92ff40c10b23f8bdc5890114757364207768014380fc16ebeaf22a7b1a9366f3fbbbb912347f1ef595d742a976b69377533e7b61d3237c3693cf43b34f92773497b8df7ac0660f67439aaa66fe179b34d9dd4d013e8fab958fbe2a27ce84b6d1c3c2998a50d41b6b38000191673c23792db2fe47e4ddd3b5396c65dc44812e55298b8b50b5a2a01d508b9d215986113b099717c3a4ee930f479308c20c26630aa5419c2589c8cbbafa7eaebd71fca9e751793629d767be8709fef9177d6631a48731f5e59fc7e98cd466375e8775ba935f12b45575819ecef4d78d85b6e984d90d41c93bb03c832fe415fb567a1d951f7dbdf407beef8caa3a741ca7c7729c8d8ba98896dbe52d9785feb49332e646771e7d84b75476aafa0a54512806339cb54ec1c70943beb508966741eba4d39c2fe535aa82a9cb92eec99d38540efa3e39fbc02d757ad74\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 8f9ac1354af4161d0e55b5674821d02823b3a6b3f79cefb98cbc77f9ac2d91cc6345f989a7828132f73f3630a247a936b6a057b3e5a2fda0c5999ea7721ee8880960c24cd2377e869cca1799747142d57ad6a8d83ec9254d89f591add11a758e1ea1e29bd08f624d0e28cea52ed5eed7c0f5f49d3533eb1cdbb2af837dc42942f9a86b5f4e2d5ce506697ef067a344949bdd89afcc25978af4d50c300bcd0ffc9d93cc559e3ae1a13215a1d3f6030827340c6591061a5ab7e65153b1df8b25e1421f924d39c7e6f76243c1bb9ae4063d9a475cd2ece45f4e288fe0720", + "074e87868d70a5584a9ac2b47a56417cc76f15154315545a3ed6704b365f15d34320804469c3b09ed211cbc9e9e767b6f21fa16f8641d8b78b8dff8062a25b5bd3b6a38cb4706c42c1fbbe66db1c05cb57531132eb94fe1569735c33ec491c318a686c837ac810be4afff605f92bb390e7ab3cd24c0cd997cf13f112e5aa01746f43902432639e1eefcbd37b413c586f057bcba40a8f1251251e84cb7c87c53c1d1d558\n\n[e = 03]\n[keyAsn = 308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d00308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keysize = 3072]\n[n = 00ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83]\n[sha = SHA-256]\n\n# tcId = 239\n# short signature\nmsg = 34333630\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a21abeac8409398319e65c8656f8f72e179dd1e99358c7531fddc037e47c1e688cd70eafd6eea01c823516bc79f89d7e52ee1eb4ffdeaad1d550dc0a47185bc9c42e47fce5503c3370a60510f834b4691152ef668deca633cf3873ce6613951784aa7dafde118f37f1cdf1a687ac236d5c956bced564b73cf202e3bace59667\nflags = SmallPublicKey\n\n", +}; +static const size_t kLen154 = 205965; + +static const char *kData154[] = { + "# Imported from Wycheproof's rsa_signature_3072_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keysize = 3072]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[sha = SHA-384]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 473432cf11b6f96b1dd41e1742ace21cd10e8dad89a3e00ec68f3b45411059d0bbc6c8a3f077bfb4b12da60aca86dd856934061aa8e4c3221a019b7ed3d4e70ed8bf53fa140d3c31877a135a6ae140e021bea9408ee61fe7f32e60cd18932282b1aef1019f9a39789cb48991e535568b55eb26cf96e9bab35d03121f6be9f0d65079b064cff923edb5639cf08f48ecaec0670ab37b03e4cc2e604582e1cccef79f262c8b3d146887303c542ae7c455b0f68e882c5e2259ecd9f76cd3706e9894766089b267ed3bdec29df5b57e6a6f8deff21e093ce611724ba1012cf63aa2c62e7267af4b1df5ef030e6cba7b217d46fe43fab255f41ce086bec5e4f604718c95acdbd5c56bf8b68541ac0dde0a5e0f2336ea608864abdc5324b29b9f7bd35c514373efde38bb593b8d4b249535984662bf4b397b2a584ca15624416537320fdef81133d6038edd99ee19af9567c9fa536474effa925555c9c2fcea525fe2da935b791ec1d7d3bde33a58f80dd1e587e1c433239c65332e94d66d3c79bfd190\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 69d89aee9a1b9827228c40c3f3bdb9479ed36bedd2c77b3f5dca19917a5cde9636b9f6ede29718a391224ab58f464c9052b5e6786178194a90ec04d2d2b7513b19df2799b0e7a2d6d1ef2c49ec6870fb8cae45ee1103692da8d211bf61f656d304f69adf68c0227c7af5ceb8c2db4a3668bb6a1b8cc3a437b9df79bc0dd650d6e3a42295b4a6e23d40b3a9b7548f3760e0faf69200df230d2c143807b2f35fa449cfa73792844dff5d2ae50adc272c0dbacacd60eb0b7964012a5c1981cb2f358ff53509f90b0ec41259fef321e9a306a08363ed194e51ab6dbc00ceee576c048c02704a19f8f357250adc70cdd2819157d71af04ab0cc63ac9c6fa4b5799eae521e275f26ce53302017510826f96c4a2889deaef19fdedacc70a6598aa89e2bcf373239bed98d1f2267fa7c2436add13df68d9ea296fab52fed0f5ee46874f48735fe32c61ed2b1c977ff1862ccce093bdf7d84a6b03c3007c4c926d1e52d81dcc0bc2a553a12be363b764f6a322e41a8318ea7408c18e33c260aa05d039625\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 259332bd5a274bc347ffa3e8a31c8b27f216cc865d32c917a5d7e4c06abd44b6c024f44eba997862c812d8ebaf7caccbb234293178e44b2532478e8bebf6af5f83318ebe398e0850e929a89cda860cd18ec94554e4e0d45a9ec2d9acd83fbef2b5d31dd7b2f3c12e791afd3e39a9437fda7724c9426194bcfdc6bd52036f62aeea7853db2c8c498103eb60180281170aa0fae8139417974d917090dba8f9061665e92d953827dff4d450f5566d2c5b753b65c9b522a0c4da868629569a666b7c292b22060e92acf4ed65e51245403a4f162c8b504b85a810906ecaca2956d395c163a7f6f23573156968ecf62ef46b72b9ce39303681e354e91c5d7944cd3288b2a84a1ea28e7e6f260bc5f8d92be419ad649a8f55a2195ca46130922d82759f9bc030c8b122211d952c3ee7851f09f30c2fecd1070656c69c2598584b55cbe6567dd2719305dc52dfda03ea289a5db920fc2c777e7081cfd92864316d3fca9aaf8e2218ed8a5235e746e5cd9bcc856b0c615b901dc610f0193171869202e845\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 1f32b36eb43f87b18e569fcfe7021763bea0ca576cd273c0b20352906ed8484428d250241709c825704518ff9e97103bb70cd26f437f87754bd40407034a9653d00e868a759a190f3067ce5efce9ab17c8b46000d88e2d9e68b8dae0a0eaa4a31d3bb51c8c8d0fc839b0b273c83dad57016b1b5c1d8eccff1c753e5c6d189ed07b801f0a54a1144c142011fd3226451faea43d52597b003f9256cedb0d7d7f56d86dfeef50179a794f0b0de97da1926e9491f025bb3c3e8e031661e0ead860c8914f0b294bf8cfea2d5ccc726ad0743e192510732dc84301eee15eca3c6a5213ba66d0871789315f8537a44b727bd8a10d6e54636b345715fc0b6f5b5116f22557b0af9f948558b0ff4a3b0faf1de7da1965b977aaaf039c5b7b09b4f03efeeab3189d2a09fddc3983e4815df35ddd1c2198b695cffc35aa6662839f82468cb676b677d53ee4857ab9be7bd99e1749c811e2d6584427cbce14d2ca15df061165e85502420602666993463733b43c1c1ebae8d37780470b8cf5cae31cd7427799\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 7e3165358b5d09ab1ad1599935bbdab27abc32486910382a0ae630f725b5dca5ffaa9e606e2e555122c1e0f3409d7d915ea00d8784b814a6721d0dd117297c951c8d225a484a549e488fb80f996ad65490a09defb0b46f9cfca2e952b04dfd5418da920dfb2968e48dba8f0729b16fa32a832fd8b789bfebc63f01a1190813cfd55ace949d802afffbe9a1ec1e6a5df196e5ffb241c918d712e466f30c66c0bddd48b57ba4d0baa0c2ba9bcf519c3a26140df6aa5efbdd5ac9beff48613f92d247b35efbd6014f3d714705933e47d582f4a5da05b15a79bcacba1aa15a5fd6ddb228bbe4c5236f9ac607f41a492e6b1c92bd68ce30659eb5b27a5b2f76a5867dafbf85a9dfddfdd476c383fd03e38e81f2e1434553643e652cc006e5df7313272335f122a7fd9cae6f2f5a7da65865698d6d08d688000a730c90919e1826bfa1db85d5607ff9d76cb100ea1649442cefc4251a8cc1d823215e0ad1abfb2976bc4a6b2bbd793ebf9c7770957dba1e2a8583d9a82a072386d0957789b450993c77\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 8bc948c5c16603ab63e75e18bc7f062ea4c675ebf98dcacc1a9826b0eeab0004e2592b07525fca53bd288bb56b5961aea93b548771068f5b0cef467c387e2d62c91e045872922b516dd6c5b8ac3615c986a9c8b5211a05f63e82387175e8749709951273cd9d8b2eccf678284761c72285be5c189c4400629c26f87bf18ebfe5e56f2057fd91fc9209ec48a872d6d23bc330f1c81ede7fc5a0e2b09c3a4735eff9c8adf73152b3406a62656897c1eef075c4fb02244ecd93912dd36fbe0d358a71e02d2b302dbebd28ba50860e4a963071f0a890a2e400c18f530cf9440a897eb2781ceb17bbc58f61828a6456b93c86df972c42d082b913c4d8807b7563aafb7b330ec39dc988674a5c3b36f6bbdd096201f1c7c25ca9ea8f28e923ba46dbe93910268d6e35cfb605b92ecf98699ae9b09dd4634d1280586c5e6bb0b1a4b5e5e22b225453f5c66f9a7ed7fff83ecb201eb157c76c9beff95227b495c8516bbc7118f011cf9237b6e794bd7a9ba19e35d0a650dbf7c06a0c9ddc95f108a78246\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 09ee821221ce7bbeb4d66ea3ec88387bb5c5bfb055b8beb36ccba4c2ce9666b1a09935689db1cc2312d797ac8b6f62643de736f38269a81f969308eb616cf41960341fa8edd3501f4edf73736806b6fc1387df4ef3e1e26c03249f3db6471ed580699e8ac77d0fd9a78972347e8657b6cdfe172fda324eea00d60d38b47e066c4a6fc0e33f75d1d4ecdf46efd966ca9aef80d22e43dfc2cd0af37fa70d6df7c637c3c18a219bf58dc1e7bfc941a235bfe81ee7101530a2c264527608d7148dd91325b7895817ae50d774e8dcd2def8a476a9592d55be743c62c1192f0ad69981fdc8651c1db828097ff8088", + "b720c637c60c771b5091f9d9e174bc823115a1f7dbf086f9ad36a403c2d710c47af4753fe6e43c675c30219abc2b8560bd18c25aac719546ce7a74080fcf22bd4e6cffc270e57baedcf2739c5cf4fc5fac18f5dd023301caac1b1faf4dcc65327255ccf54f5fbd3cf82801a8685c2eef3c5e7f608cf6f747b8307f617fce148347b76facf0e1f7895aeeb11e3225e3a6066a244ca\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 3b1a01f69afa77d96c1b7bfdff94d58e346746f3712b2bf2705d771b6ee082c7dd9d2c8a87de6a684177edd8038ea1b9bfdd6722a1453d68204e4d6effa584a1b9520561982f0181f102de2d62108418778b4976b4933a79c6a981bd48f84711a3f7cc26ddbf06c59aa669d56d60a741407f86e6a645dbdb1f7927dbc0acf996736899dd9aa367ec7bb157ed121da15f25bb21807293ccf6d3a66e18713d80763cd153cdef58b1e6e31b348cc514b8f2d357d14af7cbaae39993d7871bbd0cb9c136936b292dd368ef1d826000d3ca13ab48b659d231c95c02163d2e11e33152e69f6f3f08694918d89f9a04ad6a01c0887309654a4ea8a848422dc924f990cb65ba2550ce166b6a001cce4767a3f1cce74649876624d2a1111436a9a6b06dfdbafeaf329886d5e7482ce3e81a33b69a9fa7d82981aabd81c2650c3c2b34778f99efa2d3843b386c24377fe17483c490a63c6896212f8beeeee04a3959eeef47a00fec8061845d84fe7d7afa206074b41ff001be315a7e32c2cfabdc861eec45\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7835e135188e97973f3cd0a05a102e888fa51ce232062c9856d134b30ff32b513093e07b7571b251f5b3618364b830b1af01169b0a19c203e079083c4ef85827f1a4095f0a6cfb9ea0c6ea4ad1bcbe27188f90b8c66a9ba0258d3baa49b97d0f8150370bbe9926e1471772f1f37dd85b37a5b9a4e15d32c02b427313407fa9ed693e0f444fc6f10dc1564072c360f9e5433fe985fa699860d6c9fc528aa82cd7b503854a975524b132eeed5f94015ed1b2d85d9dfc6b10b529e140bd611d316cb54f31f9d7d06b6deef9b63519c14ffe3d9694077bd0bbb3482b09a490b10ca2c6b510532f38dc2bfce51cfbf2ff8a43181fe2852e6876b760558129c3066a4f2f6e0f2f4e95c85f40ccdd81e795d5d2987c92013d542d99764bd0cac97024adacefc81ce89b36311ec4ee304b2307cf1e10d1f171f0ce7413cc03d5bd2c2233e0f80d98034e91d8b575e1ecab76d708c0899f27bfa1fee102e9a5f393ad18293d3ba93c7af3bb62e17311e79e02214dc9b62a85e6fe270be98a72391ba14e18\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0e0e316e9d6d1e5f7333789d42f3761598bbb76da7847d5b75c376ad884ac2b61a0394bb2f65e1dbb986c26fa3837f905bda324dc65545fcc6d949ca4b8bd49f9ef7cc5b1c0c593bc34e02a56a0b2fcde4ced168a504ebd4ef1565cfb400cec0d86275af35afb01a5ed32263bc264a2c8a45a84f348c2ab7c7f74711e4e295323e2b9b76a7ba7475d8f8d72943b10ba64eb084c832ac9b2a984e1a2ce1bfb50b97f64bb754bf5d5832499479a198baef88d9dd21240cc95568c64664a704a359eb56534e241b106cd8d301b047448c9e83d0e3d9632da4641581ce53c8829e49701ed297d815c46f85528d2fc531a7813eeae45c0d249eea00dc69da92550ddd9e04787a1cbb76d7c6f4bf35b7d8582ce2f2e4c1184f79d3d7473d7637f42215ad4b9bebf143f958f3d0295b529d3b3db192dcdf4419d42ae219bd81a716f7d6472a6a86328e2728c5ed4c08cfc6f9c3277e42df22d15d7d46c442af610a45668de66d735e09abcbb638ac39cda905dab0cd802f5a542951df3233aa8732111d\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 02e31b3b6f1200f93fbe8426cf433575cf01030fa1284ab8bf74428acef25759df587be26a5260789cde2aae7b133d249783b1cae14796658d4b6a4aa24321f5afe684788efaae848b693846a457737694d1a7af6985890ffa7384769864064eca91ece6c03298f5ebfa7a18bf731ec9a7cb23025b7072ad4c06bbbfe33655654422cd4b97a9be3aff016000a6c7303ccfc73cbd908e82c930dd410c3ab2ace258bcd05e91e94e4a616a6ded7a4c64b00dc5cf202689a0ef3583a31e066337b1971cdd909c20a1ffc7c006944b81a89a5c96cf43a6def4d745134056becdb9c9275b2f2a97cfe0163bea5ac8dc32d0fa7b24dda4ec0c88f61cae77fac4c19a67c46fd26a03b990c5737ebeebde402879a02cde56728688394d577e5fc7c347a8cf66702b3b255084eb224436ca5c861b6886db60590a783c2d32beacbcecdfacfe6b6e520586856596b25cd918d586642db9acda72986078511bceddbea5239f229f1aee80cfb9d851ef9e84056141d026ff50abe0c83d2eba6288722457f916\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 0ea7aa33781b897d17e849f3967ff8f99b2f027a2f3d46bb979e5d4e58398f2b6798b6c6ff4e83df0a320cc964dfbd6542c0441668156e108d2eb5c7cd4947b4c310456fbe342a00ad7ec2be365d0e6c71abeba20f701b0b55c833e52e30ea9cde21bb1d23372b9ebf920e1c163703a484960872c2b5ec4e4840843447d108cc76a37474a9b7f2ba09e406ae26722b424f3de7a0c9b68ecd71fb1cbf3e87163dc780fbb8f0a16f06e05cd31a0b6de0c79912df07296bd059ff327fb5f860ddde50c3a28ccef959e89808120cb1298ca5f6f7bcb7366564981bf90161453df0bd8268e8cb34209c969bb5c7028476eb212baa30990526fd57b36c66b71c59180ccd26b02990906e0de5fb386bce5ac1b3d2d23e1893220f698b5d075ec0bd871843f473555df877bed9bb22cbe69cd7004d9eae7feec60808ec74db9f257ccdde2d20ff5eea9a4a8c3b89bd281286864d62e4997db92df8ae0d2a1fc3dfd9aebce9f7093c129c426b5b74e5dabb7fa2bbf8a59fa2e4b1aef9d69ff7ad653c2546\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 556a31f90b1879a1374cc4f2922dd41cb2313a61fc526e889fc9a20868458ad5cd26d6b3d3a0106193d44be3a22d1384084a949e5d1388f1e671f638da0dd1ab90d9d316ce66a25840a332bc2ca312dd9fde87ba57ca718f99f1851b36be9e023e24b9984062828211a581127b0d81e4b1bf5977f23d1c70da7887c09830c0e3c5a4cb66bc8035da055596ee7cbc1ed4ea76d7712708330385e5a9359fa8e3a0f6e63a569e5d2db4e867812b40da15d3015dcf31ffa887fa7faf478a0cfad3125fad16d38a57fac2262e01217d6d7adc50a3af804d8881e61dedb535001d999b82e2d9250ebaac07c4e695e946b5f42c86b546ff18f1a16a946963c9234d56d44a78c4b0ba0adea30b17528ae91fc326f1f976891de26e9320bdbca32f3709f731009da45b0b09ed5ee788278f18baa5a97d039448785a4751b77a7b061489adb289eb85459e663d85f3bb300be43a185283bbb94336c41e08f50ef7ba378e525e48a844e3a165bd484b882db08284e5a51b392727d54f913d4bb9b7c153b884\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3e5d3c3c140ee9a1443428aa0612506da862e56b1add3a86b13f4a014b65ab0be390c5b6be0aa14caa77c0e0a9116c543f3ae0ecb927924833838993d02cde56819fb5293b84b9a00ee84233c42cf993ca79a9af5dc7fb1d0074b9a9f895bf48f8d9f79f5d8535748196734790ded7f5e1cff092ba949bb70756835d1ff2472c82069aecb50ef4eb2078e59877ee8ebe42d90d8629580813f3ee4b9fe08960615c7b4c59acd071df543fdeb7440499ad473621dfcae3c14a2971f85e233925215ab08f7f2ee3cf70427e94be6c895cc11e2a3ba569d7a530d36e33f00cf76bb7f60b4fe7349cad86f09225a5ce0092b8fa2162b3ed556a7eba89e48461d32a241c4fc7016ed77a097ffb289ed34b88bc471d35a931a75b0309021dcfde235169d8b3f18de671444cc5a86acaccdaf62945fd39f71c833a58521f591c5ba04af3287444d6975d128f090c1030ae4de3100094c24e262481de1ff346da67ea73c410b80758273dcbd83e127524eb93a703bb982930644297545ea36000df500e7d\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 79184f204ed24bea8e2e768a55ced92dbc0b5d59ff9013db7d8b6828d9c631f47e1fea91d383b7c00a64a3a3e553e7953288cfdaa78affed5e7acd78f48878b507b02e85479c9fc529879e9c8c252a0e559543d78f0cde0e3b797d87fdfdbf960a8ec3bd49adf6ea370a10ee8caba7f8edaa44d36430163f1be74bb06a6e6b689aac34ec48c3dad3f95d21d5a453ea55d472331d56e2272765747a06909d8cba8d1543488cba40015af45608cd11dee21c22e76670693498ed7943732fc3bd4c3f5b78821f1d3481a1ecb73c878b190094b5b5094c54f68a017918768d9162c15e1e15e2623019e7773e6815bd6cfdc37560336619980829a61e950d34e87fcca3b5143ca26d55d6b9c896a28eaafd1d77320e18c46ea1933f681d32828486d2703903079633a61d2a828fadff6c617bcec466570da7d9d0a447e50d49beacb46a4488b65743fe8200cf6a0b44bc675ef6c6acb7c96fbaffb7b8ab0ffb6bee5d3d5bf94b6aaee4346307bc65be6e96de1fc84c52e8ccf2b81f65785f097f9bb9\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 11ad49205eb560672ca173d10d16e9f196ae3ae43350069549b74ff6c8c4aa71b31e017ba2abb0d8b6e8154652fe186a83fc34844beff934852a9c278286bf60166b6f99a30081a344e11c655a0fb51e1fc7a3ad700676ebaeb0557a2c8140686d5a803bc8e5ccc80f688bd0550bee603ea5f59705cf3add97712642f0b65e517a183b4637da5c7ac78665cc5ec07515fc4cd84c885ca673c35f33b01b9727342ddf269f4be73686b05d8fdbf83a149232f5c7e674d4079b8021dc314afcf3c5561915e03fef780f51eb5acb78ae14e84c82a1efe444330ac4638e3f9918ddc97b89ccfff94538d0031807ea147e068e5df45e7fa3592fec60fbb15a88094d491bf94394e0201a865b40516e1669695bc32813a443aa868de58f60b60617230f871f9923c2aabb9106c39b88650f150ac935485a246f559437a9f687104785630a6b18d5544a1eadeb259228e0a047ef829d9fc5c9ce907a344a89c5afc51408f8f23438be6885ac746a334e797213fb6f854e58dfb58baabaf05a4f2070244a\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 135943bd12689bfe04cc1c0a8860d7c18f13b4bf0a82c334b44ada2c5e82fc32b0", + "ae99c048c94e3508f59855c53e6b42bcc041c219fd6465d21582f4f99cba4b88ec1844ae5a89f3215caf458547f0d147c0fa1db67453465e593ad2bfbac8ea9238d672368d32ccb681663fd8b023115c4f41345551d5f2bfd387117830323a4d061fcbb6aa13f2dc0c5a317e6b7339f6cce5c543291154ed7b118fb8c55e8942d0ee9acba4ec3c9106278c982a8cda67a2f3cf74eef8a37fef7a256e27ab43f5b6f6a5645544bc7d766e4aeb439d255d144330fea4c10438d2b801b477da861f6f13eeaf61bf5ad0b79669dd1c795e03bb826627fc3797846005aa975553343c91deac0c777ba9e253da8f3b925abf5cbb0c317fc2ea6f8d750bdce9cf149ebf623314de480daab1139f882af161750d3b74ca437df8bd7c9570c23d0d896d4a70aa4e464d0a836c7bbc22306aae10058d1dfd81303dfe07b9231c651fe30e0ceb328570802e30dfb5910cbb0739c6f74c6088b2ff20088b7b91fdbbe96068\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5513c16ec53402c0546785ed2febd651c1370352c121289d2a1fc9d4db74f99041af22d59c407d60769174e5976159ad64e84a3dd841c04a16b6f740067b50385cd31956d917372187d04bc169ac0d55555dda949bd422d39ca03e40817a3388a4ae03668af3148dd08e6faf1eaa170d4d8d9d1fd607ebc4f72c3eac163024dd2f86afdcd6b448c7c5d09f2594e95ef97b5fe6a38a265c06c12dda0665393ecbf64770be7cba42563293626c305eb840b54387d40fb371047014a058ed0082be31f59259971a27dc4de18a403bc26c7b4279e390844bfc13215365375fdec2f3c3873b1ff8f87f60506c55b7ccf03f3b3ca2534a4f686145536f65bd1f11bf7eca54f327c6bc120192fe4975657f54b962f0da0444c6650984213ea2b531b0b8432525a416e2de1790efb83a224d29d5d8153279d45f990e36c839ab7ef3cebab0dbae382b096a87075b5fe000a4369bae1335b22edccced1085f7c1fdc7f71c6ec16afc96df26df65bcab54321d91d59f7024ca5d65e4791f8a1589f094b797\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 62b1fd9511766e69a94d61d38e4b02f1c6b39a3c28e8e390175cd61df62001b189a0e44e7726cd8de44b0518dadd7aa360ebbffcf293c5ff749230066a63cc5e393ac443e73a345d79e4b54637ab3d1625a3d1e7d3d0c5bbcedb65be1c85317035cea9f73b282554f355350513a7f8564d5c2ebf93723f943d579878c89b63d25be92293538bb9d80793505b20c958da5ffde894c71c392453c506649b3891be55d69c607b6e4179d5a91a332f84a44ed32767bb189fdb7145bc13f128a0790b333be81288d4b52493cefb118d770aa5622a4318f5d37ba40cbea11d2433bf51d10d6f0d48f856ac1a87376c6a008ad9507d64103cf2e12d4f903f9dc7bd08c1c6e56a5710c01040a30575e755b8dabbdd83abbf53c9c0e53f184680a5d95526252f9ec04b03ba99731ff15e07d8566366ec78d3eea0f723c6df1cc32e0f906cf33b1967077f61ed045058f040746e4d414584d0c231cde7c28a108e15ccbf5e89744e3ba1f7bd3ec92934101be8af0bc0705690043261e98692ef737ed78e5b\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1b035a14cae3a8c4311b879f4ed000debbe72f9847fa91cffe371d2cc3e5e5853542eeec362006e7bb8fe2528d325071a8d8564ec9d60eea7655ff33bcb698d65cc30753084f773ddc3347e934942afcff23da35628dcb2751337afddf1fd900e2d83f528a96d4a5ebd4636aa7ce0f20b181176973c440b014d203b24b03a92531a79c7fc802cd10b7f633fc238e9ff3e184bbae1db31a8e70a69dbbebf925467e5684218e5651fdcb9ab2379b2cbb398363c410192c1ff0397e9e23eddd8e3cb473ed39dd9ad142a7806c2e753310efb1254edb928d781e70211d0483bcef6b7c43b52d04b96ed56de631343e29c99f4c115d11c0b74880c4d6a1235c55d0601b07b23530c9f619ce12289bc1b3efd4f0a5d1d2f7f46f9d58f0b93f659420cea287532e0f3b6c92d65084c5e188c998857989d5a2056bb973a7cec9f8a25b260963bcc2d4f74f8701aeb9ca92fe7551c006b21dbca74f481b8ca1640e251b98ffa768ef2ec7924cd708931b15752858d6f7dc0890fae266181b52ccedc87446\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 0d6c8e033994b6ecedf22c5f544f2e3b688db8b2235a00dfc8f1b2bfd1391faf649be65815533d6ee94098a4382072beddc2a2f439837dc6df0c9826ec49c3c529b71e9cad2ce717fa047cebf81e0788ea71f8005a0c7ad1a8d59c27efc334c826b40c3f4ec0354633e7e6d71654509460e7d5eef7a44f4894f07e652d9d7860c78ba7facd161b65e5b8c47fd3df85816ee5af4ed35c03f9bf08c2d95d56bce82954f17da0195e95558dfc49d7d545ba004afc59e8f17236cb6f0d8d7d288f8bfc41122ac5e803ef855b3d02d11dd214a7f1e90617435b2840583acdee0feb145a37a8b8c9f5feef750d9a950a605b59841370a47f59a3aeaad2753f6b1ef1c4327133fd59895b627b7da0dcf5f9bb7660cb9002692ab94711db9c15d3bc5fb4cb0e62b36beff03bda7746a0161b4199366d3e2a3a9c7a762b6bf15ec1fa27585aa22d428e7c7ae7dfe8b8010a7df9f07a060d9115d235287ace863596e1e01fbf3551d9995e5442de650953cd2951c561317d331df010d1c6fcace9f8b05145\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7bbba09b554cdbeb72016995325649ab9c9d0a9bdecb5fc44ff0057bf619df2ca2bbd0c3b13dec3126a0545dc4936c043f200d7df11d87c390dfa1b0dd4e20c19877f283f62d6e20e0ff2f0d561589a683034bffb5fb2be9ce2be2a3f9f86667b53cb0901cdf40c23ee67746a49ba1ac576b2075bf1ff7f48941dd8bb9604d5369c9077d766776f265baa4db5dc3fe7a2643fc644a01f14c40a7a96d95713927b7cae6fd55faa5c802added32c5ff6f7026adef607a2f2abf59f2f0a8edd35547db4ace0b8d81961480412b02b5d51f1e7f0420086fb506b7d617605414a59db8d7f1374398efe6d38dfa39a0568a53fb58e1b71ced8e3c126db99b02c0a7b3e27a4d1493f2c077f51f5b9ae73bc89399b18c270e6e5766b69577283e084ce3b2522a77a994fe0e4a192eb997cb5b4bbd7592d24ec4fb1977809440c7e0dea07c384169e9cccb23c1fdca7773afee4ed804f63aa556492b7a4063a0699ddffe2b583230b826a320e1e26677adfc11d185a1992d38e4946631053330a542fe594\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7e13964d767f2f286807be50118481f2651e9da08d93d850bba4297890e79673480d7dc10f5435b5e0e318adc9af3dd5d99e0339f9bbfe21891f2bee35b9462b442ddd764fc278f77e7c17d017779888fd552537f8d7a9bee63dbddc10903c665e975cbb01cc1ddd0349afa100f325e3dad303b707f22ad2c120083e4e304eb1d12abdcee41f6d1cb276f58eb09cba643444697e43a899c5bd3b1d10ac939e618db4bc12ce6d822a29c205ad748d3f632b147a7232f799c14678ebaa0124a9ec16168e32df41d21fc31a2d87c3b6008b2cd90f51230e1dec00311faff09c2fc07acd78b57e39271a8912a0c5b76e3cdfd5915c6362f1559c28c95479750b72c4f0b79ef5f9a25d9022051eb1d9de1ac764fe683958ca8a6980098939b473d2ba58a4041ba3db8b5a6cd19b4a2212744e1e2179d6c94ddcfb770d55abe3e5d7a81032809767dda95683f1ea60054d19b61779f17346b7642a92b57da96c5d5421bd77b49c0cc75e6294354e307453718335f5c1d87f5179c9fc74f0b10de00f9e\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 31140fb3b755d517fa660fdc5b940ba6c8fcb667ea633605c730fa47a3b52c0641829f275d2f8d9b8ccfa16e546146561d53a4d16a88bfc7ebf5fc3f81882e9e563346e19944727ccdf53b2f71c30a108ef2a43dba5be533fb0f05ba0ff302cf18e77d2df46d903476a9f7fabfb0a4e8a23e040359326612fdd9411910899900c3987a4b59d2e8ada6d6db45ef7f420b8e8faac28c6b9b55806dcf44f0b2137084035be8475ac6e5c6bbac67069530a36892e1d6bff9c594dad9b7e9bb604200c9320abffedc8ed3a568acb8e83411e6d28e0561848776c18f8822a150c68aa8279b90422f39432b44a9f843a843d4b970ca608b15f54c42057e17b406f939db847113fc6949090b203b35bfe53e3f414837dc0e2dcd58d5f7b829adfbbc60e41a8c9ed4a9fd15f31a7795c4fb93d88f640b20842281e966098060eef25b2ea3df4d8da8b8dbd9454022bed7f33539761303b46bf810b33253ef1a5887a9e4175cff852772101b27d1bc266e8b2924fb37917aaba4a1ffcc9fc444ccad469260\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7b4bbdd6a446be7d5ff306171d91aad0f94e7996c01b12f2e402ef415b06ea2483a39fc4db755f3e7667f474bfa282dfb8af30c26a561f499b506a9ac15500d8b994e6ec5dd7c0b6963dea7f0bf1e5df5ede5740e41b8f71ba6ff56fea051e44b441df0264d730514e3cb74e8e0ac5d4e0be7e3621be53a41a12c12d0966ce64c524c16f4e1dd04dff3077b50ef54f2f4bb1da42fe79aa81d1604ef346e24321a7d9355c7e3e64d83aedfdcc02038ee483d6c46fc9a2290a8d75c87ac56e04da09e661df1f6adbb1ddc19087a3d7a96896cb803068c496ed93ab184d8377cb277032d627cb5f89aefc574d799445232292382d70e13234e4342825ce75dc08501878f4d3d219442cec45c5c6bcda2a70047d671aac7593c746850d8491a4fc9f17ff16fda341ed97ce8fc9d3d8cfd889dd752eef198914c4dbb78646674a5c88da0f6dbc3083dd5453a520a68ef79a97b580b87ddc7b7761277108eebab138b7eb73fb6d73e8827f0d7b7f4411136cae3ee2f172adad6b5f3fe3acb478cf7ec2\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 56edf756f30417735f334309157c56b1918947f55978e684fc98f2b1a528e45f162ea4dc2463bc3dea7e31e0ae19a8114689ac76464efb2ff7e3a2258ed9dc074d5bfc47d6d0f95b71efbe8dbdfbb0cf6a9f3f96978597b6e2ed5c5cfd365ab5607419c529dd315302a753939c920351e2d1501f63ac2b8e1e3064eb7571cc4fd2d6af08c6a6e54eac092f80304ace2d717d9cc75efcdb714d7c86460f73f962ff221a76a9345aa92a17afb7faf5ee30a9351259a304f8430dc6c063de9547774f1df890756e4a797bbd1faae7f2145940ad316dfdeee42bdc5ffea9bcb19dd329b4f84c48318d63476f09f8de7b88db07634289ed42c546b2998b583e19912092b1895a086a", + "7d050dfe693f3676e3fdf26000ff156827a6bc94ff483e531a52d84bd0f3ba9a8d3c52052c12fb7330b318da34da565f14b37144a0196000ad96629483e4371effed018452e69ffa4c73b0270b6a3bce0c76bb594200f992b035ea653d54ed65b2b4e70bb6d6f51ef37c3a2efb337694e3c54637858d828c57da\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9e374703a9e94e6d708fab0d94cba375bd294aee74b8b63ed6e0e8396c1908a0284bf0b79b87189dda35b1851578b8026caaaaeebf879e0142ad1574d31f3f9bde867f25f4b3cddb65a273242e08ec77698c8bd1d095f92a87f7777fb865703de7b11f92ddcf8d56a330e43e2bd575cce35aea05f7a17d6b2e7e420a7cb2f6f969076a6a96068b4611e1e2a04c17be333afa6216e7a68f9314307fe49a3faf890f64122c04df658af93e05261b537344baa336cbc0aab6ff1a73eb540eff4922cdf6e0114161efee8178b5875c77f0c87ab5894d71d579f52044e13383d4747829744f3d899fc2278f2ab1d946969790bf62f3d55f015a0e8c47a3ed27dce9a4fae0d8523dee7eaf1703d1f2b1b5daa2bdf13a74fe6cceddab1c7e639df7883b5787579af5429b358a8453a325a3ab5746190b7abeec6babc198d0c6121bc420bc4192ec3cd79faccbf02a2b188d71a5fff9fff899be8101861193d2fd41d9fa253ae243a6de65d25ff86de236ab674e13f5f5ebc795f95ca4415a30cd3a48e0\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7e1af37a290175e7191640d8c497c126714cc3d90e788a96c70fd2206485c783c3bcac949e09db18d4639ce1d26bb7acb76c3fd7922addfaa370c11d8c96138fff55936c62bef61bb5dc43660467f43039fb5d69a8964e023745ebce424b314df76ce9e5999a7fd8cd33c2d2ca7f62e2d1cb8ee0b349674fa5476949a002fb6be10e21f241b422e5b7a8ad8889d7e52451c261f9b83f9356ea4e37dca86dec14d371a23fc7c9a99e8f81542e5caa691873c57948a3b9b31c8a203ea46e353f4dad30f112ae545e985759b2272664266d8df7cddb889251c8fca0061a27d3682341a789b6626340b9c9a4bd7c063e96d08081b0ab1437283ad8e4d95c5ca48167d4a410565294b657cafc56e75acaf553d609fe02056a20374d3c06bb7484373adca95bdad39d5c5f204f56e9f4a689628a7f0364bcc0fc42f71a8769669764c0244c7956100fae4526c82bc62dcbe47bb6f37dffc59e9dbfdf50225eb8c583b8b161e8aa3c30f70e71181f412758ec9561feac3f51ea5d1960c541ba19795590\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 9d86754511daeeef9ff6b5a1828200670a1a1a9f7c60889644a24cb0664cb01fef5318237a568781c26f49cf9d0c094ae79df3baa9ea53486bd9910a57b3ffe7165f9208bddfe0476a16eee73cd85fb41fd072708eb3484e295ae6dd1cfacf2d63ac269e1dc6afd34d022030a85861d24d8fc73ecc5d9d6f510c2488bf00b311d114f2c73f18d4244bb4ef868c2315734605f8ce5022d74200bf520cd040d899dfa193367f07151ba0de412dbdcecf5cca924ae675631818a68c2b92a8a58d53d168e12f84e5f1cbb087e974590689df361cb3f0243d5a3f325bdbf4456a4d5991d245ff5ccf8d15c346f1f15eb8e6ae7ce4e427553982ba38005711443b4acb99c595f7d3b7f465f4e3642a016b4fa5d1d4108f6fd7aeac9d12afffe7f90619f56162e289a2646760c803f4246bf57bdfebe39aa7c563b8c25e68e35996a8a068fcd3e32ac4d34995cf8623e6d016c0d2ad22460f7a0e3ee8f608b027623e926c36a5b3502f38af59484b71ce68143755e1f2bcfb5b6ce7fc060fe48013a4a9\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1be236c819d1e7078aa99ab03c5334ba84c4bb30ed75a05d4dcce54b0c3048720b20f69f703880f9f1ef38b65143f838478aff456fafcd7c7c56618f0a5f689e09d86abde3d4aaf248abe6c4632058cc519517a1cfd3d7c219aa4a53aa2cedb164e9387f789a4099b94fc23451f855e0eb759c522becb8d3b9ba9e73613e7c1a168c378eaed5ffda4e6062184d40b3409ff42dd7f1d1cb20a557122fa82292ef5513da40a16db1d45b0121656831b0f7213650478e835f43c5e103bf663bbce02ef5e34050ca38ffef5574d21dd212b57f65e59336142ecb64cc58a6c51bbf1acac55c8aa30a77c9b5d94416ac2d9c895760045f21901b19db9026aac3da725f90af498e108f3b0f3383ff197dd130ea425254d7a85b5d1d843609d925e09d9a0d0ca6fddd0d7af909134054480fd8f78ea8e106484dfabee2a7260205da8ce2a95ea2a42cdc9de07b0c94fd4682a574ff22ca14c033a18905f7155cfcca994c22c4321915afd0149843b3f2be74d28d3ae0b3017e8eeab4ffc531c382a1dabc\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 5ecbd91f09531622a73bb696711c450ab91af58c953139dc81fd527875be35b8ac7e377b5bdfc6f2cc502c0b6d3b1efbd5b74f2fcb49779a3c9ed716431aa0ecbf349b1dee3e7285cdd3774db949d27dbed08ed18ecf12ac24f04865b7e11719b9618bd77085106eb05cd994e769fe1f261f8b755d1d4702115638c060c1c5c430790250ca71bdcf10b3105dc3ed84be09ed12fe124495692b2ed841429dbe1382bb513416a488fb4aa7956734ace455695a641dd99719bc2530cffd6e02bdb4f8e0b391e70ab339b153653d9688f2beeb9046ea2ca41a11654978dd81552386827b8dc8e35d5d401f79c3ca2bf2e1188c35b27aaf78a36e2f3c0245a3b5dd1e0ab4bf60a3e5c18e883b4d8110914e08777e463932cdc5d01a4db721a27a99a3c2cfb7a497609243887eb244f6fa276a0a28d53a77d28bb818706e72f9bf91ebd99d3598761b3c38fb0ed0c4c5bb32831277574996fb1f46af34cf173c711fb81e0aec055dcf19a594a4cf5f667ff64166180ec8783d0e82716e57619a45f6ca\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 479f622eba6551b6f975f419bfd3fe5fc357d32199d85ae27d5c64a9a832f2f33dd93ff1fa0f3e9487d3f292b1a60ac1239ccc568998f5a5e2fdae7da0187ccfb7a91d754b23c98c34a810015b050f8fef78fe50f2c9a99e16bc936898a5355b0642ee15286f8a0851a7b91d3988875917e3905a0c265bcc7f5fff020c709fd11049e908eb42e4aa13bb6f7bcaab2a3256cdb2f58500717c7ba28464552901440bdf4ca6f4cb9c9faec372f557cb83d4258bf853808af35b81da76c937af62c926f7f963aa68735f6ea4ec1c487193cd4de17fd679a9fbd8ed18527cfb7bb8266635f4aa66c03f310b19aee57fd3977a76a858b7e7c405051fcbdce4ad4073d8993a1b5ee16b10f5bb3702ac8728c0f3c0c8b723e30287fdd5697fbf5f08c030f17e1ff988ab71e0ea8539fa68c30e2fa760f1998e5bde95a65013c686057a50105c9aa058b44a6982104deec31dd1f393a8223a25828130db01641660f07a5f9531babd71df640871806880f33a2b13db44ef9fb0d03b36ef58a2c554510515\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 76760f4face7373dcd66f3f89a1cf93344c0ad0ef083ef769a8e26013e0551641c5ef00397eda16e9100be6ce21259eada475b0ffcb2d70ffc561250503c59280c63f5ee5a58cb5c11d27ba88bf1c219e4975f3eb4e02eb88191b3f4081e308b0455ca3d729adf5e9177f837e5b6279e84ce247f6f95164109f5151ac4bab08f5e1a2875e4ef16c0ae9121cd4b1a2601fd52a4f1d742ab6420161904816e4368fb7e64bc8f240651da39c28ae81f20699f6dd71c4c2a3dbfd2109ee973bf4df6fbd48379485e2e7ef6602e6b480a7f894d3385c80d9453191737516034bdc8cd93b35017a2f97356d670f424bcf4e6643b4d29ece738851fb57eb8561fb7260ca1919ec5c9f90c6cd4a5d60796aecd2d28907412ef986cb08157e15e5ae5ea98ea8dfdecf0cf624e65c762a00a78fe1453a070b6df6e89d7b51285379cd8bf4f3ee69a1a233d0caa324ef72a1ef19e5b5376403487b8c6f0d54cd5c2351d082907b045333cb34b56f9bfb3142b889a5cfc3b9e667e8971129a21b4a2e5d1b39d\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 9893a1f80a5399db63def36a1801903e04c68a22974c37b4c77e610acba1067f8faa6f54f47da6ac680d2f94b6167c71b6f626679d4099294914c53f00fc77263c42ffa995d3777bfda44477ca1b790685fb27997ab80db50e1a99ad4b77dc0aa8b05479ff2ac1589440476b13fcdd5712aebfd188b6e6d11af31718411dd09e55275656467220be8e0ab93ff03796321d72e9ccd32cca553c2dafbd35280e8d2aabfa8aa3c111a7a34da57785de990e1ca0ee13f2118b2277683105ff09fe5800fb0be608729393f2ef495cbcc4ec30bf18e7f23b8e81cb3d5e4973ea3451fa64ed7d2d6bf99245775c6d8c33d62368d5c90d73b9ea292043efaf7564129355e69787e618a199ebdf75ea53bf7b19b3783276f068cf01e744e7c13f99afb3796b6c1f18c8a961f02ce2b1280c66b31d7c2c43c563782359c0dcf67f1c23cebc4caa9f3d129fdd0dac6f0a7917eac5187f01c708b3a6d539e133d6486596c16ad6a2d32730c8593ddcc30e66ce41345e67a92b95b7e876cc6c48930b817d5cc6\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 21db7c79c85f32090e2a0087d5558298c700c40f39a6f9e08f70860bbc042ddc1e98c290007f0d426b0cff6d6f32eaef0792f10ad12ab892858bb2ab510d9d5d8d2a2bd0a0c737602c9949d15e0c67d5c54dd85a4cce003582f892317869d34709696620fbcf0bb572d665316d11d14958a58e11ddfb75309c7bddb87fb851d8970ffc2ecef3d7f57cab94045158c01ea3a97843ebb542494b8f883686fbb83fbc89a2aeee590573bb41788824ca49da882f475f415d7bb64b113e046714dd67dbe0cec72416b9be30476d197ed0675deac614be24ed8b4511c41017dde5be0d09e1e4201e8ed9f43327da18ddf40fbce03c477f8a3831bc1d22b7ec72be3b4927c905d77066069962f6ac8a929f810044dc1cbfddafb763df8596d7a8197e8e70b4a818f4c2163a16907bead72940bf94f64f4ced5a5141dc2757d6b93a1c6e5034d47a5ee512f960f37fb269d1b0102b8801ac67eca3ec27a6938544415540f55b1c5919560778c6cfc8c6f9bb21d2438d2c65b95554420d038b1905e02d09\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 169a1d69376ce5e37f7ddb7996c66a6a0bcaefac6e41193cf6b1c15308ac9fcdbb68bce602aabb18d94b458302c7f96110eddad9c61844428513f10d5b82fa8a", + "685b756bd2ae1e2c7a94da573f4bbdbcc49c965748bebbbd94fb0ee74944cd272da81ee3af6f747095d92562c0cb37eeeaeb24ccaab9bac22302c46c7846891f5de1286a16a1bdf4dcf78b4f94795890ab84b5a232e5a21b74e72d5d8897858897201d3db3a7f5a0c3da6eb6465975da790a8271619ecf2f8b14fe5ed986441fc8c26e506f408699b8d100bb2d9dc7515c114d9845e6f29a306800307b50fb4931a249f47dae58756e132684ae1ed6198f88179c5c97d3edfcf76d87931cc9012b23d9efd4d2f330d549eb7b30ac7e00b67f39c8e35268df5f12f163e3f7c45941fdf746a653144a3dc2fab365d527b2b270c185e020545eea07efc6baf00049addcd83874787a3fc986a571c0c11a4c7232b54a438be0332589ecb598348d0a1dc13fc931122cbfd8eb4d286beda183291e713ca1b872d8b831909fbc033b77\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 3a975ff773526672d671380dab20add0000035d47c04ccceae78ffa2975a90647945b467c4e30365cff5f3a769b053b5ed05e0c87934893881d896da2c714023394a1fbc08a09538cfc89ad3481bb0383472aced4e7d1947c40e65a06d6adc0d1d47493199aa981a7bde828a9c45349ce85ceeb00b3978a12c73ead5a65f17df8aa85de1ea87ebb0beb5eb9d96d6aeb242917b777a739bf805ce49e2d0f2f4d5115d621bc7839640d7f5aec3a4546958f62b94841a1e8e53e53ea820eda668f643354b1bdd771fb228f20ec3e968a6dd53db38f0fe847c45dc68aeffb96dca441b85180d9ab348a8a428cfe2d74f238fdf727d02e4eb6f52e740da85ffef408eb500a27ac9fb1461b7daf684f56af3a58e803792cbe2bc7018a2525fd3e4313f42112558ac821cd1274c0656b65a2ee2e9ee7c21d47c211a3018caef798eda6814a9c0a14c039cfeb29e495ca272f0471cf32517bdfd6bc36fa47890ce49fc6a48afa13c84cf7652f8ee1b6d91b0348e90f3801cd19f3dff1ad24ea5fd8b62ef\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 5c102bb519d831ec8b3777861d8da6e59708411d6e278b264e97c0e4963b6e4471175671fe27c64b00511d00fa7c8594405cdd0e8fd5c6fdc997a3f7867d5d6df13376955aa2cbe93120cbbec3f3121ec340d0c52b0b9ccc110d194dcc0154d8ee0a3eb056633a1bb14593afae4c461928b2209013b7ff516c9f8b548490fc1695b57361fdbb806962342652df898f297676b0a0bddc98ee4d35f2ed855205ae00a3bae11bdc7dec322e69e629e7342008b6242199e5a90f550107957e2dd5e037776f3b679e479b8f3842efd6a35a32da5f20ea59ea209b3e4d9e52fef6c3721fdf7caf5c8a52737b573b8e7222842c6b97623e38378d61dc46442ddd056cef1e62528c7f586832a86b39f02c516b766ada35efd6a7a88567e618546ffb027ca826343a9020491572b1b96ddbcc6aa3c34309a254adbf1112774b6ca0ba480f4e9375185d2a12b428943c8d0aad7420857e7e9c8f364a7215b5f3f89c4b345ca24ed6a4535867c7b8b5eed03e4ef02c3ad949522529c7893d4ca2d5e5cd52b9\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 4c8832f10a7fb51141c4f802bda680a69220ced808e5037933911b97f017ad739191d5f15514e9f42ad7adbfb62da4eef5564ed39806522fc7c7e09429fbafb7f48c23bcfb6ace666fd764747e2b1bb8b3a408ad80983ca0b794a25a2ec4e967b4d1f5cda3c7e708f1f90efeb068df2ab53b1ae279ae3850d8882a38ec2c92772a7a27d7411d50f768b3b99b8329339c5fb375ad513d24cf2ac0b300c4a901b486ae6606293d622fc6e76083a296d0eca5c0863301659d67714c95b48b93631e7e6aa6561d8dd14c0195d382d7bb60e0511fd98b21040cac16f5788ce09671b49f7a0d9397d96969ef3edb12b957430a5325013aeb9fd73adfaf5ccf5d610e5fb31d78a272583523adc899b24dabf8cf15b5c042a59fd87307914e61729eb72c6c1611d4a99cb80cd43eb72fc4f5339be227d4afd682f9666468edcf8f6e7d2ba57979289bc91bf8e2a5e114c7df98ff36d0e3c557917bfd9365f661fa417fc6a75889f8ae639c8ca4f31d5f3d87e1f1711f7f3698f5107146cbcca4f58bd689\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 91cfec5f96441f0a05179b85502d8dfa2c41966cbf31694e258add869511d24f1846bee404179747dd17b6e6a9524ce397fdcd078bdc93e8b4c75f56699332b8ab06f3cbb868f1e6b2b410e4049cbd31c538e246c4f14f76e12bf230da74692ae55bc019d24eb8cf445eded9a14d5aa2aba24592072ff3b9c801961b0c7cbf8037290755879f2b5158fe133dc7023fd21ba4e21a39da7992b724ade2a52921385b6c359d9814b62b0494e5b1d436b17bf3d2fcc1e95b5f9556fcaee7d8088e808c3ba5d5a92cc1518f82ca24e9659e0435a362d4a1f1d033fecf855a3e6f05b6791b2322d81f1298af5ccb4588d9a6c6d4f1a425c72f9d034f7c35d8f8103ee2ca0ae7d4daee2d2929ce6f3f4ae04d8183427ea0b20f07870ac471503f5b94692ed809c5c6df9b95330baa3d13ae8a3ed21e7480f1f2a2bae1df9fec082ac154276f1f142627bdbaf1abb64703c67d9761a02f88f0e18e9bffbcb7d4bed3db5bae8e6421d9c04fbc88e43a822495cb49d2d6244508f3102a732bfa4cc0bb970f\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 4d13b9eb5da323a7e1877e36b830fe6a84ebfb35a618ca53e43378fa307c9990038520df453c951016ab4f918e94c1a1ce53327e0f9af6410d3e0fc20a22ede95cc21a8b81a55edcc8f64a497c579d5107ffaa0bff5fbe64be77f25d4763d546a3451633f5930dabfdcbc84c5c29f0937efc47fffb25930a7f737632e485176b78a575536cc7522efa7d90817ade8e6a2993e53796ae54f746c4d9e19f55f6cee53109d669d35f0711cb1eb0b835e8257bf4672aaeec2eaba4a0d5611d7573019ed66c3a5064210f187f64e5bd6f345737e76b12e3db4913a752dd7d1ca0a80276b38029f412079545c54997c1890f9f269040f7ce9b13660cb6c348caecaeff3dc9a3bd8f542deb50771a44a17564c992a163be49151654961fdd9975b77b47c2c4b5a731d78416936f0af467116c56dc5987b42ebec4e926184888eb053170b8808dbaf8b58e53b329ea24af08edb82c48f66d58c4b59117a711564b4a886d38e01dd83230d20c2d248594c28a4e16a6910d39ec05d4c46b549cdaba7c8ff1\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 79f7076614b968d30136234124eb002100185aa41603b85530a87e56723e363e866ec18b2bf7cd69750eac12aaed2f5d3cd8a174037d1b11e0fddbae8248b6958047f4fb0836eacc7f63af9fe05c772b7fd84b6580f4160ab78239468aa9b7638272eb3bd03135780cffe958085fe571cf872cd3e063faeac687d85c440fd8f9f1b0284a4749ce22406f3d779318b0cf9820a226c54dc2387601a7b0ac8c4c7579821fccb8e8caffb1c506ec3c3390b4308fa5f0d3ea4d0f596b258c4c414c47f6ed143272df118d0759f707b50f4df9ccfac60f72a1eebe484bce46de29ab8450f35852ff06ff860cac57caf20dc81b9f0e8c7cf31667e993c0c502a54f91287fc4d20dcd3cdae22c4fd73c957be77a065a8ff04098b6e7ae166bdb42594cdd9c902e2d031d4ad421da7c4a7d89ff85aec4a05759fa207446f55408386ac9c3c74a52bbd9bf73c094b7a5434dcfd3822ac554a852d3be1ceb966fa5923b917ee4235aaf4624928d568d80f2155c2443c2138b0bfa5c63b7314c2073a72e7d3c\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 823f727d76fa08e6124b857e24fa0e4d9308c18b5a750f26b8035d924ed56e2ff9226e0747ccdcee6b5df5812e432d952a93be3037ed9194f987bad87498810b4072f9874693b35690bf6a95759b0ad9613aba0b36ec8565d384c345669931366d19480376d79733edb09629791d9b3f7bd4ead3ff37966c3b9b78931e2933a0a9672904ef917c8098cecf30b0f7a11f41dc00c128e64fa52cb5681491fb0813519ee60add3b8750eff8a51faae4f96a5bbac731eedad4c11b81c9f116f2a8c9e7d727b84e90f9f89c37fed569ab6ca9e1bb80529a6361428a6f3e87b83a9122085ff0f9a81faa5e57070fca49daa38b1d590216ff1d38e1977a53fc89440a29e945e6182154aec7e43aa1f59070715be2dd0eef8e3772a2c7f2c44b57ee2a0491ae6fcb312838fddffbdf0e9bc21a52d9473ffaaf4fe9816a277c3c2200528e830ac2d7fa349e50550acb177a0a3621924b202fb44a542e551ec6cb7ba7b66db86ce0767094e89dca1eeea5ea2a732ec009958b7ac55c42001bb5de07d899f4\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 53785168755db72bcd3b7528e9ab4247f85c2425ee652334859ce25e1abdb26277150db9aa3641cdacb950d8cb430b638ad16f9249f2a0db6a58d0d832e6901becdf4e749bce08fece01d6c4ea7fe4293a66ae4ae39ceee5d0d12cc37b8481939735f7a55524250a0618d39afb3645e1af91fbea02145f1431ca225f6d1c4a562fb4bfc8c59e64887370e548fd973d4c0b7fc0d8d3281ebf3054fe3584dee13564a8818c6df1cd78838f4da2cbc2f447d673dead6a55b27bc8b028c8a9b212f9473f361cd38e8b24be043cfd2a18b42f5b4446a71d4c74dce7b7371658c5337126741eb70783512d2f91b9df8893e9f903183487353008495363e68a357108fc41634830c67d69989d25b5d3b24273542ce78ca72dfda0373598e103b54962dfd29a823fa5c0149e9f2c2f80eadd02b2436b7872cc5f3834437d22a26717964dda44cca259769bf852b378caa879a09718f36e352866f4e76346305319789d86263de746f87c8789f44be6493648789fd7864c30bb089f6bf66ec669da8ccfe9\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 5fb58effb5d46a67b88b52ceb30ecf285e264eb8f179f633c7d3c87f0401574ed7365ae5a02fad1437e3c6ce1bfa03986f0f93024bdf3cf0e04f08741f5c8032091d58ca8ac92785a31af964d499eed535d5cd14aefb61508146321e45fa0ac74a4c3bb4cd1a5b921f3368a65eb8df5d887ae303fa7a4531a07e522a7065618d1da75cda66564dec3320280a769a673015870c3f04a52c01eb6e31d74250339613bb3b39e67bc33edd45130b5005918f31dca231cde2a7e5e27d84f189898b537d78becc983f1e00126b21f3f947daab9102623e32639c9e7c66c6099ca1c69b4a4d24a0c56798baf8616c8d4245cbf7b2d7b212b9fb7c7bfd4a49b5bc1cf03dda5f69c7490a8e80473288c7adae02789ab4966ae3b4cdfbfe3a0db1989d1e392d90dbddb52c619b54e3e2855a1507f2c314e5f269f3934308f3aef49ba61e16f0abff6d3d1817af", + "b82c097c9bef22cd439e717480bdf85d7de75e903b3a22060adc88dbdd9b854ed727b6d86f01e203c98d99a1a22dad91842a444f7f81a894\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 7a87067db25b9b113b66ebde982d6fb68cb5972a2354061a649fbfa6898ba6e39ed2a206ef0901a5fd2d04ac250e0b1182c0b4820a7d36cae82a17d849b6b483c563192be8e3be5cded937b4a8ed348cad8b1612176f166fd64c4f9ad337494e0602c6707bb9fb0d8bc98b12f4fc07dce28e1c9c3f797d1873f091d3244ff2d8019f04dc5826aae36b3f146916fa1b4adff2c342c285108df07a92b2539fdbc568fb01b3110c465774bf1e7db1420fea6c2c59d9e1142a9ce2a3f14e36f30376dd25ec55a66a16aa53e0410dca324de691728bd9a532e7a73d4466c45c5a3f2b4cc9e79ba5965478f0519050422737703a54252da1c90e6344dad1b1f1100756b421765cac73da14d84d857cf1130796bb97bacc57442ea2f25070b0bafce234b86a5bc69f2ec29bee767a8afdb6e596eb2560b141fe29ecd7a111248662cbffdef2500b9e9c10ed4226811d99648e3a3f8ab0c9f2ef6f79fbe61d9f23cb2fe81e79043344808872e50d81d1bd1de211d431326fbcbcf5a36145f626e2ab021d\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3710891c1bc609d7d31a58dd5094f70b434d5ff1d37d3aafa3ce31395cd0819d94d744eb0d79d942f0c65da6606be2a89a238954622f5e6d0e993a80ff623708b5186cecbe9a21ec4ab593a95fe46cf73547f25b0a2c8953c1dfef3a1e50c37a725216be9eec50895a62f536fbc9cf448112656cc775506b79a7e26dd6bf90e5f1e53e0d7c1a3f22e2c086bf916aa72f3455dec6c99b720d56b2f80cfe55b4a3e7944f56853910698e6cd974c19468df0fc0e1a4408a2c1ecfe239672a7e104a95b8f7a9dbfbfe4d538ae24b1c76cfbcdeeb31c27c49eb55d6d5d3247fd2411efa66d8e0a53d9d00b76541265a00b9ee0d71e89a38f63ff9b3169dca65158602efb4fa70419b3c7e1617a33df13adeecb46b114c8a96ff8e70eb2231ce8f50c785f0b3a3fb4fba97eeb25eab23115f71a65018a22c0eddc3bf7d31b7598574ffdf0d2baf9c23c660494243907b93eccb3f335bee80334f4572c3d5e57ec1753fd10c764cf4a6d1b5abd99c4ec844fb1ac16fb84501bb0f8cdb75296773523821\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 044d5b6a176c87f3b605e222bd9e2af0635396f73cd2db7560e842b28b5c956eb74dd2aa46cdd9476acf3ff6edd02e0d1801a3e97f89c0611a3bed7732217ed7c8fd890a8319be159dc1038b2df28997cc31edb08f64d9c5ff84e4cd63100859afa5d6c54ada3d39363864e53ed16ebaa0d95df1a8af19c11b236420775bfd0c1c63f25d71b08dd97a023469e84d265d17ce17caf143459f35e3d8f1801f64ba8c97cdab77556c1f34ac570f1947a375f62fc6c4c3ddb04363c6455ff50717f8cbdeff55087c836eca9edc79976d1f14c40b3c4c5dac0c579a64c40a26092d062e1a8c2b4fc63a03d21abcacae6a0faf274db6a1d82ffa55eb272354b7507e0028eeb0bef2fadaae03b82d488ab450e1a7389de4b1f73fbe321d8de48c9118689507ba3bdf6581907523222f7820b85f601cfbe6b6b29771146dae34dee3d7a7bd6c78461c544c81dc1e962c7d78fe50df998de3308a4c2cfe68e3bf78083291f044349bc1220a7b969e7a2e773a9bc57e359d0826d15ce8ec09ad22f03bf2c8\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 320e2b1791735625a7846cc56050ef8258ec4baef5e5ae8e69bebbeb4a777407780a9be356687aa13c9f5c04f67044c5a5b10ffb17c9574360c697b72fd2f647a33b0f55867fcbbed311bc5d76be998a92696f37e6b99f27ee448d10e0dd17ffe6f5f7f07262f12a84bb8f539f63a85fbf530cfe1cd9b1be1c98da296e77bbafad6cff34dd559e083a40ed12ff4839e7a118b8d3f1a2a884437272bd9472c56f07fa8cc29f3e14d906c03622b55b0e9ccd7cf8dcfab4dc5ab2bfb158fc1667bb82354c19883808dde6c72e995321413663dbd01b2fcce0f4ed1638aff672aeaf2c82d37eca0dc5a4ec70c324952b71d37d08c7ef30f884c364c1c85524647010aae11b6887e5f2c86aafc7a6c23432eb4c8f57e35f529eef806ad10c39a32f65019a25e04252be1f795d174878cc9afcc4dcaedd73f8080dc3b812516b49a76d7b6c5b2960ee44c6dd4e8ecdb0f15f999d9c457f6bca0083f38aad6a80a7af2f46d89cf125e7f55c75511e4cd9d462d6c4a8c8248a03bb14a5f53987c1c9335b\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 08a48199ef7c23be30287fa4c8b6c63ef19365b4529f2079ec10303f8baa719af016532593336401f93b922a17a760798b11364abb463a9273936b4a0005b9ecb9658630e8847c5e4ef785c44ff2ce0832c4ca25e1595a54eea621178c7dda27032ffebf3dc9ee27759a0a01400e36b87249b58c854395ea5bf831c08d42b69a57abbffbabea943c5d450dfaa05222f9a82062b103277ca751e99352c8561e7edf01654bf57ebefd8a5a4deeafa9e2aa0055d02d73c3ce43b1c8694513e98b490ece9181e83da0fa9ae2c32e71e27dc95f6df5f5cb78d1ae297bc044b7315d2b03d1df786ab0ac55022fae5c51bdefcd97efd4d5f0ccaa14c3f429d164077c23320da2c47d936a0841f401eee0aa18d3677abc1970905edaa6845de62d8b51166fea8c149634c64b7e552e4304392921492d83b624d917f6da7441ec650c76d8404a6851ba16cc691928b642354e91535ca5be6a636d524594abe1d53268652164a0752fb6bd855ff0e2f16f073f948dfe1d687150cefccd17df8065bf1264e9\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 498641a4096cd12ee4d68ab9f5c0b0bdec3588558fb12a4b4adabf30bd5ce8d757343078fe1f64f83f73d9039d75c8f37a1977cfc7bb8fdbcd94fda1edaa382b4a0e9b142e8ef9e4a101837dd96a9e3448be292d4b4ec59681076ae3f6de3bdbd55ddf2d80b54a9d82152ffeed01043c2a5c0e355ae368dcd0bc666eb46872a0a14a56e56345bdbcdc9592c84ed73ca6189e340a85c11f8e6eee064cd9e0e2a1cc4566e2d142f3f7beaac2f73b9a055c718d53ead553ec52372bc671254b00f6dd8b24cf6d25a965b742968e5013421b71434ec62fbbdcfd86f85db4a4fe1997379f21a89b7b1aa5cdbc13cc27be299d4e9488e938ce7d12a2b5c443047d3388748a3b955e31713ee3acf9a2767acadea54f1f7a728d0f3cf730be1e0a0ec7c6ae8a61fa4a8a3d1560f97ab882a23d20e6ea7beca62d91d00b825a2929bc036fc4b57bdfca3a6cbfc02ab7845a55128f27fe1c0ff385b5c03fd42aff8f8e88480c8c4f4c9123219abce84cce7c936b0016fa8116ba4e6268721e5dfd9118ccff\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 33b201d3b0f66d29e5fac85bcb1430c570a7563d39d591dc8bf7cba5566a6d7106d52a682cdb135e52080df174d476d0b733e9fd376e34581a8ff71e7de7a89c09e03f1294384f3920dd5281d139a5d939902c5d201e975e06173b06e0f02dbbc69db16963a67f6f4dae9a80fd5a4b0796f53fb6d65f39fc9cad68059783491e37928b477c0db578d10a159ab5b0156a49f301e023e85776362e1c3149cc9c5513adf9505259bf92273c8922994810bc2c247838b4672b872792c617109bf46bfc14768e0bb7db4ceefda9997b253e79472605c048cfeaa2bf743e4b10a121810c2a595f1b51780b31484c7e81b2324fc42082240e1f8869932baba91803f633b2afed7f8402fb758cdf928fb1c8f9a5421662e4e086838100ab3fabb8e833999ee40f61e9d8e7b8f02e3207930a131f4c6fa1b890b40c27e1814b5a606f3198902aeef55fd19f327841d1873c0666db2e33ba4653470215773d89ed6bdd5ac8a4889d730f3bcb7e5c57eeb0d48d3f5b620fd02f837ea32629c1b5d747f38b4c\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 588f82aab413ba5b03748fe9587d34b9364c41936c8511a02b6e31d72ce7b0f62844252a98b2ef2beab1806b01225c938fcd5a878778b348d45085aefa02335153bcaaebd59071d99098db83a0d603410b45e8f3b56b4900fd23e733367370be2b0adc3eaf3cb0b9a8dfd362fac10c80f059cf3fb471b908d05806ea512ee95ad61d90f0536699a70fe3016244d328ff3dacd5b773b18288648f85c6cb395736dae2b7a52c43589f9e43ccc76c61a6d1c03610249808094e0a45de1b90daa1c4c9f779bd109cf4300e4ca9263565be44e338daa9266f9366a19adab638060937b9da317170ec633b8f8f3a53e283f67ac35def4b18679e84e59f9d262743c72bc7469a10cf8b953f7c10fc62ae8e095a65964841b4f53a152e2511089c83a16960ad1f12f52cd5867775e2e80d1c30be0f7492ad98328c22c8cf5b6aa84985ea0c1e724d3a7ec551f3f5144323948bbaba8f1a360d279c5db5bf85b640ad76e731963bf9daab653af6be27e1fbde4144fc312350e521208e884dce18436bd2be\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 37130972f89d2c3ee87b9504938a624485bedabc3dba04dc37efb278b9c052c80bb8e601c189ba2b16ce016fec3e4b53bf57350df00f9b52894ef2d076b1b34e43aff4d7b2d09fef66bbf73b9ffbcd98659afd4eb7b96bea4ef99a1e303ce550e2842522f512aa2c3316747b1c4a13750a0c984675746278ec157bc3a4839b4d81584d9c03d77d907f4734492f0680eefb998bc917c38934105164abb65cdaab868b3b299b36bca62ca0e5e36c7a88171f6f8dea5de32e5d127331df9a06edaeff600a4780273b58e6eebcb9d5c391f62b908dcd1399264d2bf428df9d861d5bc4955a817d1762c9c70f4558a14a97897c71079c76e737723c3443e90f44b5b5e7b41ec0e8bed64edcce80c56aa3c0a1a5205f40cd4fea68707ebde9e961eefb0ed47a5ab1e21fd7954da403fe6e71369adb3ae2f2f8ab9c20a91b298209c1296af302091ceaba1373b142a22fc323f588757524884c5c3267e1c2f59ed4a01d0964298147f73b7cebdda37edf4643dce2f5b55f14e2c418621419fbe4c16320\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 503bbf0800d6a11442e561278589ea651334def227b19cd636292a6c627d692c52a36a1c526f5810e296831e4c04246cd9d5122e47940a6af708c2e36d7403c5c2b4aff9793daf4ddc6ca12239660477feed36a3cce855c37b46b1c18659cb0f39df01a32ab7f7c4b0a8a2d1f5d2c9bae738a5cf3e1c9399f4e4d9008e87cb143930cf229dfd0f6198787f9cdc80e02d68f34ef7e9e5936aea035f1c3ae67e11f941f70371670039b5a3da37df56ef87e25a3838ad29e9919f1efb2da4", + "34628e80c5f95d5c39e781c3bd4063834aa1ee99c13d09927459cab25cd5020a304d0b3364e9848ba5ce852a841029d42ff4d64208a8a3b65b81ce86f3ad60be21d66c75121d51471a4271e34637cbb2a25e13221a310c376465e6dadcce806429f36564d1b86d6c5cde5611e9257a9ee98c6ec54f09d11e16562cd3dd7316f4e13124e3757d45dafa902a01bf04f9303cb9cf86f23517ede1350832c3768bb94232fd93b5c8c38c4bc61c0ddaaa24c3568c352964a6545c6614d0ffcef6faf658fd0c\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 07585dd3e14468f327f3da7d401e5ad2fed4bc17d3abaed7a88194f3e9a8f3f95e49852baffe3e8f65192d4d946fced70ca2bfaec7e50469678251e08480f32856e60a46bc0bcc974ce01251c555a7553d9f83a3b19cf94bbd7d9ff39fae54bb4fe552adc92c47141aad66fcb0e65ea290022290f8d7944d54c63502c088a0c97acca122cde48305585f162478d44f42ab093f38280d62d29eddfda75c94d1ead34f240e1e2f3cbb747449518ef6d2338d2f65d95df4753652f1ee2cc55ae10cffd2646ab823cd583a7964e1bf5f9830a3b02abf00d314343154823e536d617774ec605db2cccaacde5fb9bbc3d68abef54c6a95a33fbdcd76b5b43638cb2e30cc2131d1fbd5d69461469d33697c034e1795e6eed75fde1b20f7265dccd4dc7ba90df3fed735660cf84142040ceb2887b662aa260e287fbc968d348858c23fa8908c6cb049906ac9065fcf3a755f905e91f2dd08d5af033084c73f705bd0e46fc864c16da6a8746c75e2a53d96830e8861a975458233dae0eaf43084b6da5205\n\n# tcId = 57\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 31710db409943c4cdef364b0e8f51267d701170ec680130f959713b7d148656733e4276656ff870a9280b594f3ee50e45eef2a023b3ff2d75373000a4ac77daa789cfc438167d17d9007ed6c67ff3fa047f165a561982ef0924bdc2131a84995e9d039935ee53fe58fe226ca21f6f51e62d01e257165a647c475a069db568f8aebc164f87f97036e2d5925dc763a20e4cb3bde4e8af2cf411a9d4ef5d716c4ae2077c3038ac6d59bee603266b877fc7011d3a95535f0c2691687e62f0d82587d8abfda276294685a583bb98895ca62c59be501ab11c914361fc538ea24333d25a30e6e57d07dad4161a459e5fa1fd2c9b08d2d288b3dc5cc44f0eccb736d4e47766df8a124959fe2827457ec8777d8f98852db813c4612afd211ddf37e6e224abed61323718153b1b18f00a046ce99d4545a575461310cec3805edcfe8e72f916d4147a8f5b27115c2585dbba558ce0282feb8c6a5b051d9639b2f21fc061d205b28ee11016aae87e42f0672f85a0fb1acb3ecdec0c271ad4ed895a4f05599d5\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 9fcc612583b8a8b1098cb09d1421c725907044804e7d05606b788abecf34e80ec77ea0eebdec6970a947fd56931812357d649dedca5111dd8e1c1ca21545c41cc8c969eab26158001957e7e7f848cb61882ff7182e30f1826600f7aa121ac139fdd4980772707fd912a008cc72c002378b22f72b38bea4fcc309bae438858c5a270a81d31633b3a149093510b0bb885407be1bfa128256faccef43b584390b8db4dadf8c3ee2332abc5c82f1a44aab8a632a13a3b047cc90f4cded328afabce21a61f9c74d3ae209e35fc8a5eacf59495ba4dcd599bc4f282e25527cc3515ca3c6925fbf3e83f8afe37b5f496cee762ff1d5ab58cb06c549a76c181a1c75b60330dac711403e40f5cb934c33d4e2a2ad1944041a2fc6bf9f06a4080f7a4d1b9aadd4579c89657bf4ec6f8cfd74a286b48675e574cc2acbf562312fc9db4561699e45741fa6227576b2fa79031a96a8e5651fdb5685878b715ba913f59abe22ece33a224794d7876b2898910e89d4ffbf2ff95385ad41db3cffcc60bce4019f62\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3bc6b4ddbc152df7fe32559a8327f5de5530046fbc14fee2ad4ff942ddd347719a830983ccdcb93f63e72849330a5cb4f1b0de74f56278ee78ba1fc1891a0f572c7694d3c30bf538deccc7c33c2dc863645927cc3dfcb3709cfedcd00454e26deab05d36a3b410df47f73c24c1e3271114b442f5497515b0b32739cf8fcff86c2ce01e0d79202ce6d36ded2047d007088e1500b1941ff72f00547e15ac52db8b03f4f90582c19fb17360a0355305507003abc367675983fbc522a1bd787b3e3cf3e44683099b7f04cfce3e5af53d87b6a9945ba970a0cd243ac4ae93edae84facab15fa3e3fe0e49a771305851c51f677002fec126ed7801c42bd4b32c4c410bf3be1ff439c6c0659a1faf8264b652f3418ac0dc6adfbf67b2c1725aa4ab3bd36f358a2249b4a1784fc965caf1f9743da75550108c1193c9b7e7650c1ba2ee0497ebc8a44283f1589bce15a5b85c87ff3eab980bbe18ed814d6ee8bb6126dc6eb4166637178836c6d2ec63aa332f6d4494855361b3d51f450452168e4b30808c\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 64cebd7488052ce28e0a3161ac93beb58e73b9f054019095d268681a42acc2c4579cc0bd628a786b052787485243a763c1f880fc19ae41ccfd70f5e7b1b107244e878c318b1142633bb4fe109996273163c093c34e33c9db45d61a9a38dcff55c4375544018f555b4d3b65ce764c449e1056b288c5979475a6ac48a21718385d1704275dc7bd95535c0b351e60b06b6949feaf7e615a41ca111fd390fcc3dd172cd1a3642f3929a61c228f8a35aef4bd9f4fdbadcd1e61aca7c0d2f0acf4003c504d979aa065be42f769810d9bbb515e9f5ed524d388ca22e80a30085a38bfcccc7348f786b04e8d12ddadd51c1a450b11a3a5345363ca789e061068436cdd0e9aa480d1f9fc143f6bfe22a594068399746c49440e958a434e33136a4a120a314f8f617c3d0c856dc442b3ca53809fec686652becfcb803ccea9a216d5109c208c834f31529d051b4c51559ebea0b5305321895789f3d9d0c80e46ea13e5d0979487a3b75ae6d3034c424ed94a609c8eeddbf11e91d8c012459badf75bbdb3fd\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 9b38a8f73ceb8ba6700fc87f64ef24e6ab775695508988b773169039dfd35171e8e11619c460f431816a75b7f69fa6938919a773b489c53cad243185cd0e09b5e89caaef999c93d0767c05adc26034da9e45ef4390861ddfae45bc41ce54a6f51759079356db05352c7f217920026f0545e872710ca24c1f7167d9d660ba1188eb42648ba07b88b5a9e7983d49819de25817b0fc8b95c6e3dd639e80dd9f5ecf303b7d9d6f3dc751246c8d9719d537a072ecb581867a7b90c92f91e5b46405040eae38696e84495b1283756e769ee5884fa58bdb2325cb4099354a59e191144810a24f7f2f29bed9277b7a03fac6b22ab9d87bab62aa076ada1bdd762e00d1fa2535ffc3e29e8b15f07c56d7e70d65fd4b8b761cf7dac6850cd25c4e8fc8209dff390186257f0e522a7c4cce9fc2a80147f2af9a99eb860073087566a698d8e74b17a9a197dec5acdfdacde6265d6443adf53aad6774d233e08145f7c9821a0a869bfae87b2e39e392c31cb47351982c1f69d54166d550d251be7e368af8f5f9\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 640765ae60fcdc6e9b81d4846d0aa21779091e45c59e04d5627525926ed5b0a5ed16838903c23c4c53ccdd44f93ddb43ce1a82646c3014bdd5410c155fe72edad7dad7f6b172d4859ceb1774df11064fb60b6c37cadba8cd6744fd69f043fde4680521c82f78af1350ad9f2cb79d5bfd54d39e50e370d3ec2299226e4e86851dd19edd2a3ac1b6f90942219ea805fda80955923265f9abaf086a49a7a242d33fc43c3148eaace6276dc67b5ad428bd3dc5760d2fb2a33ad41fe568c09a89037ce48e91436963504b4fdf1092e3727c4eeb631d1096eec5cbe2ff502577d801e8c363b6c4c51e5c14e263e52ec937f66ca47a38e91ad2a8696cb2d4dddbb1512c6a262f80d95a3c7944a523bf66a5a0e06073b86c47f142a1f632122212b9451aba0e12c987bc5cb891b33719c1272d1c03db0294e09c0ac2cdaba018b7c36b033d96e6a95e9133341efefb4876cdb458f365fc2f8e7ff22b2ac8ee03c27232d405e65070fe0a03b2e1d6a040e78fb872c086a168b6099c26e2f32e88e2ce5875\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 47eed8ea933bc0b1d22529cef51b0fde6c44ca18073b83165a81e417a16fc6742e886ac977a37bc6dd26c8b9a45e86c424881096d34308f3d406260da35b178619cf327d920ffc891740f14882652f922d8501d9b0c0309aef765a769d98536458e0a0e64b4a7b85d4403b66ece5a9778724c12d3d5701a73fa75e61d54ee7f2d92595a626d7041342836b264a6ebcbdbcc30c4a74dd142d5d4b76609ca20e10feb8348880f3848d72a9beeb02cbf9cc11c443ebe2a7dd786f4866e246f0b8b8de911a5581637f11498e4b05b21195520ca1bfb3b08d1ac0a5bec68d4f63c2afde1e31753f038954452145b6d27103d2f3e3852d4b1895e1c567557ec679bff15530638188853d4f0e48794544028d053294999a2068a81e408606373a8c77296a9cc3606c9b8a6fb7b598310371465668d1dd8c1eed0ce5a1b40058ef9b11a40e269168b5b403417c1e1a550dcfb466dee395d00b1e4d8eedbac1a01ee1653cd60ef96e0b31d721a9d035d63708a5a88dd311a73c07fc03b5897c694297d9e1\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 586641b89ba4d44381eba31bd2031fb648175c94f47e7421df974b668875814978e764555f025481bc3df71b736842e13ed75667ab10eff46d60f9168fe4301b08132fbc847b9fa1b77a547b7e0740675b68e6a383b315ab11f6247f7b734be09addd1f209e80b6d98dc60d72f832a0b15a68aa05a03eab165069d6d477db4c2e752faac8c8e54a9d42bc81d22498fbf7b7b41e8c7eb24e9a64cecb444a37ba6b0bb1220220d201ebdcb2f146688d2f82dc9eef5d89cdc861d7bbaf56d296e91d8efa220484c0f54ed1818cf2b63911d5b2b21c5f9beb190c442d1737141bf2096554a289fca342513217a7219ab04b007aefdcc9a03064d01a57e2e955105aff31921fa6bcc02fae9f50fd88efc581917cc9bd7c8e90850dd2bce26ee7a2b60cf3995e71b3943f591d54b47e759ed5a452262a938b8f5b1f57b484f576b6b6c4b0777c7cd742e7561030f4e0c84ad700fcdf40543fcaa560935cf973eb26b54cda6b28e293c987349164adc847d3876a42e8b61bfd6e9fe5c22069de4a8c665\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 6b873d87039fe496cd375aa3aa3901632a1efc96c527948f6d3f083ec041af9183da0fb6d0934337be26fbf947d4fd986d2d0216f02bd", + "994a1b2b052ea00f3d762a1516efe2b0b8c171c647c12b1d0de86f249f94462bb96ac3363e3a791fe68eaf1f385e15260a391a8ba8764c411aac0f7d4f2f71a8856c04f10e5be31be758c0456a1dfa90c9f7bdb5fb03faa5bc128c81af05a56d25a2e8b0589b49823fafb775f8b846921f41f48d0cfaffc2ee5b039cb3f7f3c666bf1353ac34f77def48a33bb8eccb12b4d79bc5479836b17b47e251eb3d8f73eab0dc015d3d26bddd3f2bc1433ba3e136a98f4354dee37a11c47d14ee1c3bb45b2000d4f937282eb0d849c78ae16d5079472991791fefbe99d0aa47b2bcce6ed14d336acbd461dd39a3cd2733352cbf120547b9fdca8418c3ad8a309989c3fa506d486d2dd076251065fd54876268c851d41cd72f28b1446c11b34043d5fe1478a63884a0b013c51c53adfa4a274a162c50d33d33bd58bb99cc978f69e0476a51577fd69678ea209d5\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 7731633ff4bbbfbb7f02024abb12c43197d6992c1c1202ed39d755177524c529fde5d9512a49c150e024d1ec334587ef004caa06381ab7d1bd4015c477da5e07098162cc1f756d0b5fe65d6b80343bfb8d710afa69dfb136971b09a7ccee6443001b834bbd94cbe1c5dd94787fb385687e744b5dc99879d5ed75a8925dfdc0014a480c64d1bf3732fdb1495e1af335c1f8141d03f9dd859a455607ae691a0a9f3232191b7a369c1b5fe634dcda20296c0029931d865004eab1a39bd931a54c934dc4b6c3874362b00bbff2e6b30c5c513e8c20ed63b9e96606994f5219f46ca9af1ee30e9b5c2b4ed74b20b926ca84427fd910ffa0c5368b3bf9a4a4c278b9e335e8c43d1a181af5cd928aca703afc24cee23fd87dc787d73dfee0e80765ec6faa7958ff3b35e70f1fa1812d99c1f23ced1a8c2403eca1e960f317bcb7bbdf8752be3a758df32c403213bd70ed4998174439bcaae4766260f1bbff2af9617af8419a9598738599289b7ce2f5a27c57b5f6a40a29956aae95b5bb45ba08caffe0\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 73f9a2aca0b9fdcbf0a69a3e6c2e802e0fc6b0a32494989e7d1ebdbde6254317edb92a7c975da8e76a6cf4005de7f572eafd48eccfd8109b44ccc5899695517c274f982f1d41160b18caf2a6767ea9e3ccedf1373f37d2256f682ef8900a6df21cd5aab8de2f9fc9db9681246f34019c0a6b98292215156e685b0a65d2d1bc8555b8a27d31209a26236068bb29b7241b660e3f679daf6b25bf98c9746151e13339a20e5d1dbc11b7007971843fdbba12b9fb4c6423b0dd09265f6da03ad01197bb50937e709c21b4a751b60ce3bb5cdf4537b5127f8cf0ac7e6d3007b5f5a96e482f7d7000c83284998656bdb17b63b29f30676c7dbac14d47b507bc3fe7436f52a6f28f468e8c1ec1a751e7e9b9415fc8a2582da5d2c37294b59559860e69afb59ec0868d33f4632ba7cfd32b5bf66761b2abe326c87ac9543d5b63ac081ae92245a840c0f2e474cfb0c5bb6416b288f65ab5c50ec3a49ff1dcb66f68221c4101698757e7cd7e28c017e71896fc73b67a6e5656a2354ccb1f35fc99b8f6636b\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 4469822cdb3c1fe53433001d64fb72128c477e7376e1e6baaa324fe275fd7c8bbedd186b57cc4e8f48d7453086e911c284a69623100524ad3d2104a25fe226845a45e5b9a0c986e443d89cc2458cacd9de6598087e07cd2bce47d8aaf4ff656ba439d7a680da2fe3464300a6eeeca1b9a8dfb6ff55408690e06b5a148485f50ecc1b2eb629c22831e19ccb6c074d78cab3d073ef4823d9a2ac492ed05af14ec9466f58ebc4be5e43769a6118ed2922c45c17b92df13fe872f046061d0a841f8baff6186fb9500fb7663c1597e5345b857ca8e9218cc1fc6ef40ee2a0297c5dd757a9967bbf2ed97dad0611aa3f88006b4c26323730b258bcb5cc401ac8ae52c304d340d6e32944aa65a4714655d930c038a03ef94eda4aeed3d5485c4059c014ef90029d1674edb6805a20c8fb68e55aacea705d06d8d88aa747d8e3d14b9ce72c00e760fda4f5f34640a43f331d0366ad61364a98c1a897d32c087ae038aee593bc3ba74f474e06af53109b2ed750c9049782af970e77f0478174b6c8e7e259\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 04416f1cc2f441bdc8f3b4ac16e1ca9fd8d36776bca1d5c8981123e0e76d6a6bb3db4592935ad661755931c23f6330411d592c51054aa898862adcae51ed87499acec4ab1a98f3d37c456c8eb02f8847c25cf31b68b135c33d051440d405e76df02bfdf20539f29134ea09659eba51971fd3d5e0b602592c37e4250e0a7633ce07233f3e2dba369e1ca82d001c309b641d6307f696bdf685666581c1ca92f416471f029d46744c2ddccc3fc7585600cb819a7386fe23b6a18b77dd59c7c2335594c8b2b0d707766658573b3bb056777f6e06c1e8feae6b83345b03db9183de96d08f085c429cfe3ba2ff6a8eb0b025bb4e316ca3985686eb8e6295b3306a62eff35f29c0324e582592b8f29f9797f5d4a26342c103f9f61968cc283210efa221c7d590a4863a84d3befc1e4c991a19d00b2a4e49241af116ffe1ae3bf7401abf0e0321307d9c3b0fbacd28c22d8ff2fb51d5f526e982b975f0ba3b8c7944f13dff530533c09c66e66fda505d90d24b77c2d302eabce7e921a80ec3c3405331f5\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 1e7c69c23f692e22292cfb817c0a0bb60bd7550b6aff981e6aeb6ef7b2338646a3a1ab91917a590fbcd0cb142f724c638c5ba91dff9ae358823a749054f147b1045c53eff9190e2f945963b6783c729d7eb0fb9a9b06d18d04fc5695501a93627eabc5d04383456469aef45b634ec3694824d69816e6653a13a0503f6489dc42210396738e4c500c841fa08a7df20eeb18be5e05f18fe23a78813f190ebb921bdccdfda37477cbfe54f574f922ad7db9f566d0fb7cb3686e335b4d70f246dae458848a41a72f7aa702f54b54dd2612b21946d63c398e7024c3a23e8010b3c22dac1d610b1ec0a76f7d9cd87369b0ac768db470ae002835cf48040e659467e340c2363d345ef4153cfaa9d5ebdb5d60be138d34fd7a36aad4ca7da5b46f7821a47114031688fa3658e08c64cb670a58c0fae36b8a19a1a3e8dbc88b5532cbbb044ef90fe24b842eacb5ef1895c1a92cf1fbb5afaa63a62010e939f72b56c6006eb977627ef62542f5085d15c53b1a235b420ce4eaa85f7fc6656d5474ff87fe99\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 6ffa54da77609087fd60bb517346a1813954bfc9fa43d1d9543613d02eec6ea3b64bbde3fa067271e56d96a9699b00d9da06f0a71e678b54801be474c15f717fcb42c53eae17ecc84bdb07bc286c37549b06530a145aca253347d39b01953f483329ede5a309e41ae39ab881052944bce75fdaf1c54605a9bb2de43d323cf59f029dc95f2f931e8a86bac79979e5eac2b41279b06c697f81d9a56858a5999e97c228b37622ff0ff20a8a0a4ad83c0fda687ac3a88f71c1deb17bddf789e491f7ca0462693cee4a6ad0f5fe53cd51d257d10aeb66741fd5e4f306d0a886dc63a524bb4ceb1dc99b4e356dd7123c0100abd8382e659ce4bed568e122052b7c78ad4d3c7f2863b5d7fc91dd099b824df381090dd9b401494a939a1bb7a6c718a36916fa0f2f3d27a998a9324547f64e68688ba6d3b948fb1f310908eabb9385fdd7d3a9a0d57a5801863100a5a01a3cd6b09955f6fc67867a8eaec817c3ce7f892a5d6af0015abb4946d3880e9e14b550ae87e3716c9c01ceae5ec20ba252809e63\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 3290aa822208aaf760449fa0c88ee9b6135d65ab391b97354f95682052df59a4c3f2187d6e15b563db2b8ad1c48c29945603d7a7b44fefefd642f51aab0034ce6f0ff1cbdd8ced3236bcc149b84132666982d83ddd23cfb5cd21891e927a523b21ab655b8b7d041482a16e7f722246a77542543a11e5b4abfffe8080e67a6f1b4e716ca8a9acdf67d499296d7d7c2193ee7003a9e563bce01f9e363dbe33a1a8dc45cfe37e0eb454809e52f84b682a736b8fc24bbe64f3828c88379a0ed639fb2b650d38321d3db534265b3cf32f8d8475296e0ab33a01c914f294af103be99a102c16c460fd79ad8abe689903f945325f1560b252693f52eb6f6f4a09685d9579b1dc99cbc2eaaf8b039176699337d6e2e4dc2ce1d34a29f71cf01744f74c7ffd0765663bb3e9dd95860618350376d3f39c805e577d01107f06b4efd2e399b261b555789507a7e4b11f26a19bac5d2d723dcf409f9f0c44be400d250235549ebf266fd02c699d45847614848ab73f4851f3c57181392212448c022f6e0303b8\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7aba2179e63901af10b592252fd681f0df0d83a6a09f727c0446a642a25c4920041395e49886c8c78ff324c3476c7cd052315b91a16d24fed9016f829ba00e0b075158edb164ee03cc691b21d18467776ce0b2353240676cbb72643801cd2c87b0d45b6516a795ac72f4dc93116a5433cc0a2dc5d08e4993eb67fb937d5febe9a7cdad58b9cb57627d9a2b038445a9c8e6f79bfaf35ee057e7c113003e9b54913e4152b1b7513feed12be9d84e87ed9a5ebc1a18e60f63241803856eaca8bf0b648d9c1732573fec56c0e9f11bf0650ab0b3773519f248150419e6184f049841cf736205cd44cb0b2bdaa0421c9287bf5b60b1a703b8519ffb408c25f3f2ff0f6665abfc5d1d5541895fe453f5c29245e7ba58bbe11bf440ec4ed7b7298a2ba12fdaaaa775c34562fb640a6a63b36c74d8fa69adce790e12c2ec4285dadd029bbabf1117b425eee862330a3d52d8a362186644b31bfba6d7d322a49014744e466911578a5cc602c0066419d418a8d057fa280e2798d5f651e4e982068105adcc\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 555fc83ce658ccdcfe3751aaca06e58ca3860e2bb9d9bf9e1a6a83da94c9a83103afe196d421acabc488a0a296747d73e492cebd68d719a7c56cec53fcd1a21737adcbfddc0447c553aa5d3998bd9f58155c4857036808a9144f12d1fae029d541ec44722eb7dcfd544eb71aec72309b9671606502c183d12c452f37c906419664d2f96ecabbcf389e1ff1ddf5bc9233426e20a42188a4ee8d6f86e9085bc6c36178ec958bcaaa0ba07281be4c9c450570794104848d5b5f529492cc663b7255018e6debf6e6f5962ba6498ac2f3eb5cf5bda84e36979ef079c2bbcdb614bfb5ca9ce86a2a0449f2abc4d4c30ce432382711e621b00e85da71987e04359a879bbc2731a20268d15aabf3537bad25a2e2f0614955b6a689f6fecc1ec846466e24f33b59d3eb9da06f4e90a20c798f11d53b19255cf749a92af0e6ea0783", + "48fd5ff795c04c3a1768f8f6f9f00877424ce0887eb8572dd992e6b57e00b144f59b46ab1b364e76ad69a6ba0b3fe4a22986a185fb7ea704e613763935c6958ffea4cc\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 44b0b41e209070c6f8a19505c7f5bd4c99d86d37de28a95edf8b430dd851eaf9d282f206d14a6a7fd29d3ca953e1a9b45a72ea871b02b2c055a1e6c845719c9530d3ff644065876340408de2aec8b0444c4f9c1115a1a8533f202f918322e01a180abd0d5f679b2b31622fb3972b480ba1aff7d01bd4ee6a44d4ae860c6f36710819f17b622c62c3557913900ea3d681c76e58ef7af7df34d498a4917ef66a6c04b4c0e09b6c70148c1dc083546969a8b4a62f8123f8ec83cb2f359e5ccc7dd4d5fff790d1940196c5495c9d3bba3bc320b14dcb7870b3b8972777eb96ef621f7c30e66225006eda4c5c438bcb996d0de3aef122a6130ed9257f3c7bdd2c048c8741f21583aa1ee0fe3f9338864a91a726988d6d0cff2b2923e8ea0d06fff6c813bb6d5202a90f287b5aa9cdccadf3135ceeb94c02146b6c6a852c67ef91dfe1c2fcb1ef08953bf911866185ff402604c976a0a8af052816a4c8570cfd3794bc273495b5b2bfa27c629084fa6bbab06ed87204a5bd22530ca947098e58738a01\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 93829d94d3153fae20e23e9c5543b64382c3b88fafefda8ecf55fa4dfa4003848bd543f49e7fbfc5ac9b76b347af44774c350776ef02ab3ad9e0f42849cd457b840e0c7b3e9ba419d3ef71961daf4bb637bf8393cd965588019e9ad73fa8c4d2478470c21e5a199196842c15891abfae4fe0296681f5ddca70838f01003ac380d5d8d6db2b5871b14bd20937bf7919dd7ff24a4e4ce14ceef989309de1c53b94ab89feaa567e140005bea8bc411bc24924c486a6819b45ca681e48148beb8997409049e3f1c09ba6fee22fdaadb25044a3bf360f0d29656ebbcddebc0f97129d02d7a155d27c077929dba148efbaec4f2cb776aa8daa14de00b3310922f668fa8881d28e6078299a40770a014157dbb74f242ff0a4dac31da3bffdf850eb7beaba2ec8116d978ffedc2330ba41e8c489e18e1702a3c3845f7a308f43033f1fc7549ddc30509f768be92540372b423a73793890d99b1eda8ca6e6cf4eba1229ed264368a7bbc4ac9412d9b07ce3ea6577e8e44fba010ac863d6d58927757badd9\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 226bb0ee3730072becec171cd12aef240c91ed58e9c2d23b325738575627d5296826403f1f789a7f9d9f285f4372ece003c3bc7e9c31c75e74192e95c1a71b1d67881a8c425b641fd510fd67e522e2588e6b7ded5a454234b8032291345199431f0c08c630e8bc524a352700f2a19d7e25f1229cf4c1e59f2a225e977497678d0594f693009ed970acef791be7181fc67a5b3817ac82448c064f2afd9654fcb8606b4a94099ef11ddbd9705622159f90d165accd894e753cfc134fdcc22004f3d6c271c44ae4958de5d3d0232c08acf03ff543368cb192326ded21b52ec0118e394921fdb335d37121d5c4a33c2370804f5795c26f7bcbb970bc4f5ec740c10f13247181d7ea339cd391318e548a73135979f07a7449acf5184126779a625540eb9220c4126a9561ca3389d5ac2378620674228c7587dc78e7aa6c9fa2ecd1e5eaa37e43a2d79073a20de7c0b21517350b4a1b459372d2fb6acb0504616da893c4a4cd8737c9c7881ed963b36e7e6e2318b9c5f18964308f8932dc7b1ac65436\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 37496eaba06154a08cecd1a768808dfa1516c02105a4317e1e941d967b7160cf9bbe7912b2046db71a0cabe8629f8ed197f17814418d62e616cb10705e662d81775208aa7c272ce40b598c9a846c698532ac967d9aeb610e0033c2ea9d3185b3a549260c1a4a0ed56b10bb7da328c68c70ea058c821e29532bfe3031258d7c61b3ead7ffe4e1c4265dd6ad337e68ec7954c329c3285c80921fe067d072bc8e821dfb6e6d1a7d4354abbaf006eff47d9ab1325a4594d077c9ff20134383c4399e9d99c71b6a00f604d0b2c116cac0fbef037dea83ecc0a3168213b8d6b50a140a55d9d2be409989f7bf29bffdfbb6ee659fe1435438d48978b83529212d706a923d4f194c52c6fe54866fbaf0e8063bc9cdcb283ba9a1269d26010d155085d3fe82734de844a8873212ddf2f5369838aaec95fc7903b788190091c45d90393d929fdfb2eb83cd7300d5f89dfc605aca329a616650760eff74cbf697f6333acff478177c8c38264b4ff0a7f335f9beac0b47d3ae42b2d8be49c0cbb75eb4e39cb3\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 27c9de67db99c0490f34b5af2a0494c4888c8b02963fcf931be580faf9a01253c0da3bad70560f7b08eb3ad52989792fc0dcbe0d07ed0849f8a4bb424343997ae049a7552c3719e2f64d2c708df63ee1556b5b8c47b4109f5d534668a2e77b0437c673dae230b3b96129aaba91980f56daf496b2c64b4c11e890af9874e70c497ff2bda8bd70066423536a1044dd84f5d7f842bed546c03ec38fe20eddec53796ee8826de6db5e10dec144ea04893433b7c5387a413709676288b2219befd64bde0539ac32dcace2fff8dd5545c99ec4be8ebbd1e7520020c4c22107c39a13db2b5f692482456250b061d8d82943e0f73ccdb7728c26142540aaebdac04df32c65e6a823de3700d959ea54c5204951b9ba8908c18977b7f15bc89c9596d2eb5265ae1df05cdeca220f5d1b3936f5c346291e37a0b3c68d9867190f7484beb04c2c4c121f53fafbc567e88e99509fe11352cda2569001c8af02bd68b801e745711a3d7dc132e331b24398dbb08e1103a1a7d8b970227434eca6adb5400aa58305\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 0fdc88f00e546f7cc63269cb15743bbfc025b9321c258df25e605a8a69a133a3a765bbeb6481de0bef05a39d071a425b0332fb06ffbc5724ffccdc3bb44e63e91752e96448f4eda2f3c5efb60a0d33602486aa34e6fb0fc92ea5d97b8840f93e688ab20f12f16b14071c0d87fbf83a5f10518ebb6da3b0a5041a6686f73a696ae6db2f1ac1321929497287aa281721f290d9d612e5d68b7ec5941f46802fa504bd810eeb3178081e0826b88177014a4f80df92a5b766d940c1ad9f3d0c79ed0587c0a97e59d0a3c2ee3cc573251c744f343638795c2181d9dce5b9c47fc1df0f784691d115639362aa49033b337aa2debc909f64dbf975a4a12f14ad52be2fdb4815b04cfbca6f47de56caca0ba3c4e7b211dfcece5a96570109b8a303786ae4b8d400a3fee11a05bc3de55256635d66cb314512331cd2c3d63a6ae7f9a0b1a9e5517265e8e536a6086c9270609afcb48459c75976063cadefe87e0bc02aa84473373ea4c369145631f510640f21c0a105e26216b06917820530100b59ca9c1f\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 213fe8704eb681efd4bcb42bbede075c4f60f65a48eef3740abe24ca170115c0d7a653bef8d1f9be11d32623825b77aaea42595d97355b31e8a993452a16b3873e8ca426a45968d637ceaea264f3ccc2baa93bfda5745aaa03da3e2fbaa99b2b9460a413bc55d18365ceb29b3b0457bf272587c561f1ceee33cc44a968bcbb7a0ef2ef88f843d6a9414c0555c44fb4fc035f59dfd65be5ce81f5d532f817bca2294fd750ce47b656694241146ed5d82f3cadccaaaa6b0dfedf761519234f7c80bd9197a8ed4b209343fcf7765ec922637c7de6fabcd92cb2a0b4f8563f75c83fa0f6097e4794e377def3166976212a8b49fc021c0a66358e7a0c1f4158dc74247bc81ed4edd048af0c44538a9efb548010f612263f716dd6e0405cc1d1e3b9b18db849f5fd2f1c1386e687daa5b091b595861d81694af3cd62343a32ade113c935aaa57041ed137d7c677ce8ed2954eb3c55812e3a2b1948e1a435c46e0233c77d80813f23649ac1d904ea3c050252c5c62deeb462c6571efd5f08e041004197\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 012ce6406d457b7b55c0f77d140d4318abb425d13f285cb5f50f43690dd6a8afbf4b876a751fab263d0935d78f2dc01d885562050239d9cb849b497dc95a576810f930af1bcaf92ca6020de27d8cf4faf1e54dfb6a5ec666ae542a1583526b2d58c59bbbe042f3397d97021ed8fad1df1dcf7f6f9978a3f0645a02fef83edb42a7ec85beca2217c323a001e13d845332a272a5e00eed1a9b0ac29b45c5734e57c016c34e52b8695d32289b993581e4aa4c4254c6340b8311dbfd85486745c62394d929c15e990ae334175de99480ebc6b9e395842df806699ed326aab550ca47af93fa9133f4c4aba0d605e6f8ebc271f672b23c8934c15ae54d8e74a02e0be90e221dff74a9c17b3f013f8c0980b62747f120c046d69b3a43660f2a5798423e02b047795b07ed44f5d71e3bdddc2a1e7d7fec3d745b6a14092276d2253f92c48433f8f628e2cba8c626f3a4d7d51e4ff049d5e4fc3b27b8dfcfe75d38b95e5a88c2d7a0daf192688e5c0d97f795ca446f81496d29317b4dc5968548a106effe\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 4f93bd8130c780bbc695c07e7c83c7131d4ad16cbb1efb1cfffff1c934dee9b2261ce189ee19bc0b94bd22ab01a21194512ca5ed4ad50f53fb6e577560889909fb5668bb70433466542b4509510d5f7c01b31f18e233aed157011643dadb205abcb5e82b79be7d66925c15b5a6fc0ea40145eebcb0a0fdb233a3f8d56a846cad59af29026aecb8dc7e36a5e7de648801921cb0b498fd76640494f396f07ef5d1ea8eaf3bc1ea6b92e5f92b931e7bd9fcbc9b46376f06f3bfa44fc12a5a1a62e23a2ef921638653074b8ce58845e18dbb5780e51a7eaaa14acf05e92f8c5b7b2e2a0f640db1662b0b4992171a5d69d0bc0dd9a2c8a317b268ec4672f2c6a46c4300be051b424fa904b3165cadeb5a443c54513f759a0530b04b955e81d6ddbc8a972e4e2d9092eed025a6d25226f0445e693ce9c5d21f9f53b411c07d68d6614cded03b8df580ec128fb600fc66760538c55a023b2f89f59d0f56c6e716a7289f268e2794527edadab8bf359e6c00bae5f8f0ff61712fa33afdb4bc0c964054c7\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 1a19d23e9e200924e751b01b520ba6321b3f2301647ea667d1adfca563334038136d2779120cdb2301df3165c508c4a64c8407cc6792e0f3332d0b4ff4b1f9c905fdee8b0c0ab6f5fb4f67d3cca6cd90a0fa0d54071efb45f6ef1f155e232a2aa67c", + "de2d7d392e05cc5d2fb49b6ce9d628722a16d2f5aed54e50ec01cbdb75cbf0c9923954ba1d3dfba1bcfe5428345321001ef0ca32d2cf70194a752c092c5d1095f90868ddc389c28938726e1a0000b4d1d8aba7b1ed78475c486f7e1e08cad2e5cda63f25ae05380902ed81ad172c01f01538b5e1e3aca49bf3abb7e3408736036ef14a2273edeba019c20fe5c6af066810debb8b76d98283e717b91caaa5db49917880518523e1ab7272afdcaa24ae4a03019bd4d9885fe1844079c7c55a44a2f06e40d87283a5677cec08f384c47e138edf434f1c52edde198230c3b64011de7482fa1f938ff6c4e1a66fbfbf13565e876ee1563a5862ffc13a1885e20bdc3ce6e34bf8331bfe17773f331b708dce7ed74d96fcf94dac411de53220951a\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 04f1bd2b132945662836f27a7236f15c357db02f39db46d902c1c9378a43f9a07c01e23304710d531aeb762070d80c64720801f86f5a2354d146d9b64927f95e541a530b5d20dcf94d6fea56a9646fc610741575cc87e68f43220566003baee8c6fe0ad8cb1bd1c3257d18c39ee05bce7f30750996486ec0069127e49f6aca963bab8892932607507059c444ad917e74ef7fb55c50d6e379b698bde71d116a5bb43f039edf944479122dd660d88187418db1c09c5ebd7e6e35ee78f32f863a19fdcd6245d6d3fbf9a13d9fca7593826715555030f67fbed499b400012852db9c1f4e12e0d88e781c114551d2261b016fd5c920c89ba83f76ae89f92f7693e2e25f625168ee4a153660373d2a29ce7d38139d1f6fb31a93aa4d887801fb44d4a2f586533844bb3abb5761e68f5922ba371d2d9c6db28d36dca63f549730ba90f19eabe8d4f57014af0b0063a340785ccbff6860d1794422ca6d83857f7f3c067d26b2d24a493bd3c13ef0970872941e6ae2c3ef79f4463087dd25a9baa57e3f03\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 279b3950ec796bfdd55acc8eb0d9c0ef9f209a61ac6c72a3adfc5c11264d84fdac10572e040cc7d694e50c73f8fa5e3ea6edd9b4d181fade7b5fcaf654947bf67ec5922e90f309597763a8901c3ac5ca4f474bf846d5f0887e4a069b6888f00b8ab10fd606c14d4e7f56e3184d171b8848d0c03f9cc0e33e05bbd1e0f40f15a750a802009192b9e3fdd72b1a242194e80110b5ad6f444c2022a5ca2afe8892a152c71cdecef6d33539913956c8ed85580b7bd077072bf0042f5a9ef6544781ad9d4ecdbe5c5d3220ae270826d355efcd13d4221dccb26bc458ccf8321fbc5b9997cd6dbe3b1d8712a262f9e8b15ecbcf1e2243ee3415a9eb7f6126bcf8f7c821b42f9e6a8dbcd7775fbe854b9bdc831f0b416ff0cdd9170774bf4b9b7c17002273fa72d9cae5144c348a86aec7583f81b222a1d8f17cd2e21f9aa4a29c7e8905330b63043594e62fa06f4c6708efa56ad5929eab8599505dc3daa2b55bc6a1b1ec25d6c5b01b277f98d6c7d65cd5450a68ae83ec79fcc519264eba6e69916103\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 960dda2c209de569a1740bd07a71e20476bf66eb192c6207f36a6188f4149da7d47624fb8ea0cc7eec4e9529a479f2822051551c9155670dcc3c8f889c2f3111373f562ac55131ad9e61dc4471ac96ec8f43184ada3112cb1f9e42cb734d85291b282b64c87bcdee549a3efbc79fbce13543b9b8da93883c4d997ec037ca10c5299225d8fc4e3d6e8f91015403d29ead6dab703635f7d82784f89ff5c55e873e5bc11c7579205c0ee6cd6b3cb644075c71738cb5ae2f19673c15f6d17163905df998d659492a40ebfc9b29583281705acf93eaec006f01feba6de073512af10428c2f0c53533129b37068004278503449dee77414d1c52f81f8c39b7100e86b51ca57d03566121885be87dea6b35c9dd5e165c3d10b59e3d5dce19b9c284df33a6431a87d844580b9c39d5c8c777f76ef36428ae34d019ad1b545b323c643e7c0f46529c241fb34ae7e116d62a194c18bd02c2a44229409a48cf8ef99da2bea86788d00360a3ddc3244995ef21cd7c32c6756a5d301f817c189dff3b9c47e351\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 592b9218b580bf8a8d697769c588567157e106d59a8309fcc6efa858733e38bc3f45d6b762022c5463da73366f2f6cc333b6de44e807c2acb3c69dc3d1c739adea3fefa81ebdaa8a276a0d03f55416eb69ab32642434b55ef1854c183889d4f17c952c507308be7a8bc27af3333736b28842538e55a2cba66369a80fe12a8072ee99e398f2c3b23a4a161977c56c4947cf36d2067572373f85f0de625978700d9eef1fbdb6c79889bc2d90a5a97432da51cac57d69b142e8566584e914f74b74237f06e0b94ac00d76120818b0898800c182720bdbc11ef55e753276fbeb10a7dcff7f2115ef204a2ce606f093b924996a245f939ee2c971e02559eaba64191e25a0ff74e7a96a787c9b60021b02de75ed1ed3adcc9ea24c4ecf9ae0010a7d91db406c48992be7c6bd694e75fca42c58ed76d084e4574cd03f87cce4c399bfc0516abf7443842e53900f828ae660a527045c81da0b067a3507f74d6ff4b140ee992340d3db3eb2020f5af3ccf0455a1c54188b4edf55a14e678e7e12adf054a6\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 82a8b93a19af90591e212559a93b99a591663f81c1d800d646db7b4a001bd569b06b05556057615629984b7f48009d955d84dfb9c0c4a7ae90c001310a0309b6f9d370add6ef038ef150cdfa6524043748d16d17866c9bd9b1eb58a70cebeb86a5a2ba7337dcbb88023becb7b526f82c5f6abfbc822c68ab0f049c54aee4c49fedcd03b10b4dc708b67ee70d476150c85f3af05f45170e9645cbbf3d5722612cb3424652a2f9ed1157ebae2ab627dc71dab539a5d3d4cfbbc7bcafbf71ac4535de96a47ea33553b76482f7bd7520f12dc9f5bc161759885a8ce244cdd01eddf328c518849c3cb5d8748dc4e9b9983b7c1fa4338c8097be273daae2b6fbd5c713930005bab58ab8c8527438ed21612f75e088bd97b5eadfaefc68a4f12a99165d7c6f61e4de6f3c22ddf84e50643ed41e99e5414c37a696c0a5fcefb3d8c03d9437402e5d6fb6b9631569dd2ced972a69e710b3b6e18419c9a4af401a242705f23d66cb61ea1e275eeaa2bf5700147142a0bf099d5ca426a7ea65399cd5bdf2a8\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1423b1ab0964b6dd977c227648fcfc29a9c2f3c06909319b0629c6234ab9aa5cad3500b24a71405e7d8c299fa0f6d55aa709e321c712ad1eb6e32e7991f29be7dd116b0054ab4ccc29bac302b24e904c9a13a64dd95edde18edecc7fe60445595424b765cacd8d8071a01d45b6d38d5bd8321b14bcb2e9a3243815a9e6b23d24bb78c3bedf88b93af23c5b70d5ffd9d4e92578018196dc6447b1fea1a6752eb2dbe0d5b42313b7f5a3695078eb2ab251367eccb4ab64181621cadf7c92f8630a5d62500c306e2f9d213926bf75343179e2faaaadbd18c6c3e7856cbe4644337ef412b190819b33c1ec01e7ea371c0dbb03884436a45077b9e05f6d5dc260b9aae341d96820073dce8d02924c2395e0bb977f3245aa019650744f1fb16dff1986d43f99a27411013da06b425da98184ca8dd86b5ac83b8b1aaf71c0769722f1a1e8e49ee664271317c840fc8068eb5ecbffeed99199ec89a1c459aa923170b0dc0a9102a991859100a4cd3b9b7c73cf86303516379ef5221af13f3f1651b4d9a6\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4c5409386930fa979633663e2e623dd687cfb608a3d2bd764df29540793ecc9362dbeedbf143bbdaea63ebb01ddedbba5c25c35bb55b74ce422a308f4ca7b76988eb781be4f9229bb4601800f99733098a1143e37de19fe0e4b6874c3c7e534ab1d62df42bd48bf6ce75c59400fc31c0d305c1217a3b225f0013bd46d34cba9982700fe7e1c1683c2177fa0f687b5f8d2a7283e122fb1aa0ee1bef057355a7aee117dda07ce79ea8604577473b64ad5e3ed093833fd0c7c496b67a2933edc5aaa550452bbee14d4f6c5c6e6f254faff6ab5bb96a06de99151936df691593c964d91ce1679fa3b55e26be7ea52993a25f67a4595c75c952174d1a6e79cf9f3e0625b7173481b840a8368a9bf45ea16a8f2320ae3b65dd6c654905cff5be15c390cdcad6c142e537f356ed6a5374a3e5b1d17f802f3dee2c1a9cd9230c72160ad5d9c376dfad8c5d39a52ebbbf5161b9cb1e70009a107fd214631c324148ec85ef6d438b98e3df7135ae1a7b052ab02c94a261af7155441751aef19bdd3c1c32ea\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2aba17783c5e5ac85a1ecf3a76d74435aa6a686c2ceb34517452aa4436c7e961da24aac9e45d8c45ec7edde6e6ab05f1b5496c81ec5c0c47de5d3e490317381cc3619af4b6361c74ecfe9bf8ccb0a717cff26abfa5ec032ae46e6b358761b48993a90c56216c5b6ee91399e29bc1f5b605576f7420505b3beeb7c519a0cf5cb1e198b5de6d737093e12a826707ac009fa4585e777509f11d677f7bf069bebf0f0e555f47a1cd0baf36263bc1fc7e28dda83cbbb640573ea4b0762765180eb861ec6505317025895a89f1e1e4511ef8bcc46bf34974e083b251e2716ec298026cbaba3a2f392bc35b17c8415592c1f496844b20bc505ccdd3d4cbe2fdbc3730f3e54cff67653dc4318790208d825dc45394267e4ffc01f0e071615caae13349889b35e1a8d7dcb83b6402f69f9f1577b8687c2d4bea97240cee41b0b90349d19466fcf752032d395cca317380c6fe665595c4073951f1b0b42d8b50c91269bede7787c30b79e80cbe1740321a6abd8c0480394511e57a619ee80c132b7da6ce9a\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 960143a34171a7d6d303878c23aac9d7ccd8b9218a5d84edf0c0956c22d1263debdb5a08cf890e341836f94760135cce793b0b8fcf7c062ddb8661befee62cd790294e345efdffde7c26ddd9dc6d3a3adb0c6efecbfddd9e382c1d788ea9b00c5d2d0f8964c241657bd1c9f82fdf3e4b15452df6e2f7e46faeb34272573936934703dd1583efb419e6c03ff4f5d6ea1d7f1827528604729f1de24721900f3d3ec07237f4cde6846c12ce1b54a06624a3fc90254e3cf72ad26e8223159177376688d1e1e79f800b2f1de811b29c90cacbcbbae8421a34c74c4b0de29ab1e3b6f76e1188d700d8a55a490386073ad1b57898775442e53a78b1e4c9faeb9c15cfd0b735d97d459b11fd11916f6840c86a9eb446c3f4f1f41f62370a7eb9a1bbbfbc0e6098eedeaabb8bea2791a4aeba2443bde74a2bd10de0bbdcda4ffd062c2cd346376d33e540d1667f90b378ef663b5a84c927e", + "3ee41b01aa2c133ca07cf43eccc33058cf4c0e2a66ae9129e14c57f01f254c40470dd6751304641730f9aa3d1\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 089a64c082a7db8c5768ca9daa426c446cb5015da417f98de000b4112e0b71a4641071759e96f1a0cf35d60d0c5e7a6190f288233acf9637c0dbf95da1b9a0fc9a6b7d602cb60e82fb03f67e8114d1d596ce637d78a33e176ddcd2a1376104b3dffe09abfd71acfdda66d590c1ef862f35afdb840efb79e8b976c5459a2d8b43cbed8262efd19d2e287a14bdfc5a28a221e94056eaf1b7e1ce382046723d08c4cb761f4ecab57ebe3e24ea1f8d099f67e5a3d57369520e2b1ba993ebe3bc0ec28e68b7d15694b5454953cb5aaf99c835a01a0c5307bb57fb95a2938c54fbc3e7f8ec687f049744fc5f9022e9a93f80f0be2eede75fb7a62d9440df8b5b803e94c9bda66d0a44d7c832fddfb41158128c001c37db31248d6dae5393599ac5297eb13f63ee10ca6e575294589f805c5eadfe16e5da1da78806016c11534ce510a8f7b76c0eb98bb87b90f5ad94e4a9b452e092d9491a0714fa02711fc7b6740d4d7fd49e51dfac1095d300736696d462bc0d796f6d0a837cd7e515e0c631781297\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 519a4136764dd2a4d09b18e665b233a48a2aa306abb87fb5df1c6020e3cfe8cd85782b9244bbcd436a05eb9f1652fca28b1c8838625b978b6b22e1b86119ce80dec263bada9bd56dd9b7d7227b88511ad83042ba30f1be7159b157ec95b01531bbefbc6c392406ca6b6ea79480072443d921d71dd5e1d583cb86763efeede98d4a46eab1418c64ef929e37b410003bcfae882d66a6e97db80844747bc632cbcb0d38d2a6970b6272db4141cb8c8ebe3236e947848b276530cd76a56ae44279311ae2c0fac018e2b2d930c563068ab154e90f438899510b98d17a256b0411aec17352b137437176c7331b0b315a7eb764fbb7ccf7614b4185907d24063d1fdce8936c1a1ac13101ff7144280784b361eabbcc37f69252010c5c6310f70cde6e3ea89bcb4d7fd0e79018414e5fd3aa00f2c8e6e9febbbc4c02a0c6d794ba6f15038a66771cae6dc876add5dd2338b806d82a18d9ac1f6ae57c5b748ec3111fb56d6cd992b4c80e128434f8b8fc9025b2a21d062dcefa75566c242118b2b0619fce\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 08e480b9d4324d10ea855e1a0b2a4446370a7a1f3d6565697f8c5b2a5ddb360deab67b0a5c75cf9dd491fb0ba6402b702afb22ff9c4f7daf26fa413323259e15f392393c24fbd2fb9f3008e64a775838d6ff66c68dbce260ee2d0b78b29a0da9d0d6d547193c88c6b04c6059223a68e35329e585911c5a2d7bd6fc4cd89945eede5e3be3f6fd54799e217e1708745634ad06cd103f24fb2cabd07a1d66545e0f641301d8503af94e4b176908254d1fac4cfbf6c227a518f13818e22ff7d5f12f03be7531ee3060f47377f2f0db528d69e6ba436d08a4c034fb23084cf71dd819ac199a4b159aba6a3f3f74733f5e9fdfa9f5af5b7746863ba70ff63a83dd4ad80573747b70173b32d67cfe3d6c44fd3b1071175c77c0353586760c8d6d7d0cd60cca68ca049ae1321d39735be3a71e7654841191bb8953ca6f6677a7a864520402e5ecadce5f0a20f615dfca01786b01e7e81a0a3987f4d1204a8b619867546b41069195f22a9fc0659543bc705ec08e011f5852852eb0a07c670b2b638c19a8\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7c63c21d6e29a08a6f0edb1958f53b593a26124bcc2d57803bafd7a60404eed22efcda07a7bd8cba1946a488fd7078e807f68d2cf780b5c96ac7fe65c3e975b9274bb9bc1a79205d84d9cc96edad9641a58861efc058d425e07810b721c3106d055084f0711f2fdee8d1b18a8692d13583e502f74b65c909917b4684e4cc6a633e635b24c8be249716f8b86570b5ddeeb98e872c5403917b0ee18d27455ff0c5206bca624ca4b610294cbfdb438279929c4761df942f73dc1d544a7ed8bc2df10ca44d0c7802e3249127a086a209b2c5cc10bccf52a447feb24cb37c4bb332bb414e62e1acc0ba043e160bde9d8e3ad8167d89d1dceed4156fc0c0093f06f4c7f782a78f58328b2f86e8e04ffa94f9fcd90757fca13782bd08a6d3cde56476cd3ca431169534fd855fd9553455385abbd5559a47c1e4c86acf455ca21756a4a5310fef5e2cceff9fd637c0f03bf409788073285c8c0f56acd4f1635b0e21b84e32ba7abf95d3296d52bcbaee4ef4a43437227ebc694d462ca06eb886e7251893\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 03ed6a107120a2655098e12efaf80bbabb69ecb43632a42fbabe0bfc44d1f0f35b7058da628909fd2427781e470eb1b14c94355fda9bf5bfb47671706a41e5174c6547a266e7741f1ab9618035f3ca8f5e1af4abe191c0b62b47d09cbbfb25a1bfff54dc369096d3602cac21cf42fe206dddf762798621ce14c855b3b2f74f38b2e6801e20ed5b53ee90eadd6f9efc6a087265ce9065a6f525e4508a70322752409a0e5ddac1ccc105150b92e011b832f6c8de408ef1957c1d9621961dd01b4a425ae7244cfc6ed611966d10fff9d2598494bee39ac7020f45785a64be36094af7f26fc93d8ab3f79a83f1cf5ec0e3e9725d2c1059414af44917e19e33416e1d04a4934cb812530d2a0153b33ae02babe12f99599c52dc50801289469a5cd0b3467b988b39a7f43ee9c3ad5f903faae1ee387f7ea9482842780c61503ce50dc72e20300597d759b7c785cda11a45508b51e661efddd4b08af26854a293150085ebc954ce7f5e32e979fbb6ff9d18c38ff6d8287636e9b7268f7ae6bb36fe9514\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 09a748174eac93823247630e59fb5a50bfe1730cb49795ab6ea39b603332419b499f2b75415c45e70464213998ef403ffe533adc65f78aa37399fb81178e56653e973f4e317e2359e6c48c90c173bbdaee564268b45eb62554e8e4bf60bef2da4e261bc1948c7da9249cf97206ab23496b5857a8b0bb09896e16c7f8f5c3d620a2bc455fa5bf600ca5bf76241a512fc3b61148d62054fbdb897035e20aa320890b57dc852fcf8e31ce6e191851c7b11ed692215eb9ce8a508033ea2b7ce08be48e28c29dceb69fbb4a2a2320cbfb914c98edc3a2c1df94cb631ede7ef6ecce1173951e1b962d3f1dfd736cb7af994c7e7856439c9efee52f791b0a49058de7fbc67b630be2341030c88046802434e2a0fcb2e2ac70d5cdbe033eef49dcb872cb839a5696e60e438b718ddf2b79b1fbb4973c35595430567426aef7a641e876d08abf61b3b9535c9c0356492b4aa27adb21364071ebf8ec5cd0dd34e46a9283e997bab627b817e84bf52b09ac08eedf20383f238a573b39ca94b42d31b0a6222a\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 6e702dd62b88ab9265d4ddd71b091eea6a2825d9a64023676488c1e6f467ee9a8893063612cd38da889520941a59f3cd7133b7cb31cc410dbd109566995bbc5146f648f7a014b641d20629ae8d8c75ca4342fd12f374247cc46e154faadbd593d8f9e404adebf925b1c9b0e7f20c01a91908b835cdc2d455d82cde8bbc6cccb0ef311d76dee3c1e832d8a59efbe0367540fbf2fa21cbee2cf345fdf8b9782947436ef7d5285647b1c8c57909d3511cdfde07723eb666599cbda596b08b6164272c8ac4711238615edd19f9dea06a87467d3b8fe2f87f45e8a3a1e5d0d3e15fe0c1802754064debb772e539bb9528f4cdef77e75faebcc6938964cf45d32c7e24d9c9b699b9d927744b2e4324462c38c09ee70a587a8c26fa7fe287f2a8f552aeb5b71836c2e92b6f0cf1ae21178234b8a25ee23c65384eb332d6113a9d48fab1073162806c5671b9f2783f913bc85aad9b3a08ad960a4817e1b4c4e7c63c344b22f6db60e05c3f2c2c025561723be9f9ae007c3e8a1d6c22b0b3957af4c942ad\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 28d3b6aca52dac1cb97ac1893cc5940b8fad22ab50918c78500436546a1cdea65e9000aee44fddb0ac6925421de0209711a51c9c8802636f990adcd17cb1f0889a5cb09ceea430547e8a32679f97dc644874543bb45da2ce442eccdc7f73bff6b8f09d51906e2ec1eaa16c17383ca65f43a76d054f1ee65a1629b7f9d5fdc44c71671bf10ae75a22d7ba9a11acbeda960a47e5732ad838197100fb89e782940f0ebead4bf9b10b7a5d48811a3a8330363e863bc3b56f6e54b70f0fac33a88348c5c49c9359519622d6c79eb1a6433bd68a624b1757a9dca7c7be1bfacdef1f38936f2a35486cf7cee85d801089d6daffa572c25b4f5a70378970a8e4fb48840c74c1be3cbac84798bf9281e29b93a631f23742b93261c96913479598bafede637ff5f4a7761a28c70ef860a4b33abe7fdeb49e9efa9fa9dfb17702be1661789decb6e30a989e00bc6f42a901d1a4345c47ab87d8168e6cfcfb339739f7105de5f68bf011fee5c90f5fca7b2b163ac77e34995d309715e70bcd35ea557a843e27\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 07ea7ef7fb61a021c1b5c26a1ebeb8d8fc943b4a2e91d0cbd9b023e8a786e2d521ddd43dd4e75bbf9583213405db98bc3d7aa6b1f0baea1b13f18aaa769ca4234d35fedec6b4017db591f27b9e996c21d7d510d81e3331cb76b320a1338ed2d740e2802fd4a3159e1a47eb0f2e82c442c9f138a630b507f14c277d83df4818054ec8adcfaf170adbfd560d69bb88fb9f7de2a294efb61ae18bb8159ece5da31a4d9a6094cb956d1d9e85ab13755f4e95a9a8dbe9130fe5eafe0f5832cd82b972f2f0f65c60e72e5df412b3f9280cadfd11ecbc28bb1e6655f1c12decba70cd75d90cb1ae494b416c5ad6bc83d0f9eeccd7a0a9686c28e903883e7fd1bcbe4e9dbe3ce1a3226d71dd6df459f72e8415697cb16fc3d2ffff38376a8b1b07397d2e6e2ff65ed7b2b0009faa20a5b425157c847481de2593366d7b7bded304d133fc59a7887513cf5067c1e9713366a533b2ee72324589c46ef9a05d08ca8055c47f0c12c541a854e0dddea4171e6f1f08d091fd681cf90df86c7bdea044013f0485\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 22d60fa58e7b904fc1a8e3dd73855a727153e58a798c0b566c1b72d23a4ffa29363472557b01ebdca870189c024af76aa9560f538bb32e2e76909607e23bf9450912d0cae66cd4c2b168f28b479a5a4606710ee8067462c396773b18f0e1568341728120b718ec8677902b556c89b33690252684684aec96a12e5f9beba0f8fa10fd7809c6940ba7389f152ef6cb39160157fba99acbd5e80e48e54bb5e7b7134dbceec62d73d8d1b3dd0", + "c0a27555d49f622bbe157e3e731ff4628a988ec060271184cf8d4407f95dc5839a55297521694bfe8978cac511d4fabfb9072a79b205bfbaf3cbd1e18c1b877b2ee9dd89d126072bc1e63579d17780d8551dc463ed9ac655b849ed9630ad18cb40e54fc60e56417fa0a89ade99169571c9859dc801139b395b62fdf49ed4748c6b2e21e129c9a5bbf346fc46ff408dd7e10f7ad1abc7f374635e292994de9f3094167d34a1d104f4459b7f48cd05b7e150ad7e3bd69a7e619bb081763a4fb6f284c3d330c4df63d42e0dbf2856044ae1c17ad4e8112\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 48dc5549c7d0d689396d966a08e69dd6a9ae38b32f6c726ffad684953204b9f74eb843a7abd788ca7e95acabf44e0b00e1dcfd77919c3de38a77b8f2947461a29e7038290473a95913cdf57c7bf4de826289850281433aab7c8754eeea7e0ae6152b58792d02a8b762550d2c7433d2542e4356f5b8a8db524f9a044e0261c1d2c08387b6257daa1d9974bd7cdf46eabc6eb8168a535e590fa5df0998436c08d6574bf7611443dd9d4aa48c038ad1847e9e661fada41b6a52a95264ec82bd0e497b3ff28fb2e401e7a03cb1ec823cc3ee4efceb31c09ea2dca2d20518cb8af93524ee83a6ec4090685c974f61110eadfaf4943de93ed0eda4d513cfb91f3bad5bc54a4a15742b3b5c06da7a73d43dd9eef9d4df4c2022fc62b1d93b285efbc2a823d3e15ca90ff6b00540d878143ce06f51c996d628e7a5ec185de7c5d37a9ed30a5daa7bda64057174bd1a415aa9c6800b82ed5c0892f174422c51e8592bfdb2f3ba51056012345e92e6319604ded5488636dfcea8139ad8411b13ff5bb89580\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 9cc09df45e13b4d33ee31c545026be5f9a63d393a9b43da7f42722eabd1ca783cadc21e3bc1f7e9e8f70c3bb8ec4e2fefa82db9cfdc106eeb41f49207d6654ac374b07301604abfc28066fb524c97b24e64c2f62ec98307588e4de3b239130123d3f8d0a71582b123612b100be12393d878658e8e122161b1f4848ff2d3cad68edde6406fec0a60f5327120a6d9a4a13746542642d6f918a99892565b7c4ff10b2b7f2344a4506648b5ed8f0dd1ff31687ab535ea991e55f5321f376fb93925f8a0e155092427ad5eff03efb1a712e347f0afb7df9446409d443a839d5d28713cb4064c9c4ff527587d730be3f989c66084ab7270e46e38e4fd2f26686b0f9eb222391a25bb702022d3bb7d7452451efde5b8d1053662015ccbaf80afa51f075ed9fb3ad5ec4ad3ff19a976585e82d55dddf8b1989d44c21d73f1b19e6f259fcbe81807a115690bee1c6a50ae16521358d2ef8c1fbb9b9bc989ed64d9e19e7ac4de2124e3d8efaf09d70a6dfea102c7654924fb6ed944b447c65d81e4d8bbe45\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 60a14686f2e72eb198741efebb65831d2f3b7a51dffda9b39a9dcafbaf496a483e8136c20fb5cf3b9da4d71b256061cf3abf680a2e904bc40916edef0ecfc2bf6f50ab2fc9667cf307b9f236006f2983019c16c25711106ec766217745852f76b5178ea8d0c7c04550a97f38ec0feb9e43193a83c9ef3024d2b86a86142fa0f4c05449f24ce673bfc11d5e36d4d843bbaf0e36a322efadcea13a0081a8a4144ec9dcad0a90aa17cbb9c772957ab950176d1b320dd0651d3450bf3df68b6a39fa0c856109f9d42b058e0a222593e375669cabe963f1daed0fdb449d7b8bcbc2c4c70af474e6486a19ead5e8c3af3dffa613aece85d8e9ffc7e11146aef075ce0001a018f9e7859b3b9d0d5e8a77e229b892f008bba10ad0dddae63952845c0b6a4a1a296ca9e6d99605c923c5d96cd8f8976d2e3e340b637849f22013c99d5e866434189e9117031df332e853fb86174ea30380aecb8c6a11451273f19a352461393b9e941ccff8d4a080d068941984024e3f85c9656769b4d206bbd2f75dd325\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 78d137671fb0c788b1401f11e26055c2b5672891c513713e53d17d1633235437e6205c0a42c40f78d37d940119ab028d0a67e1e61b83c97d41514c943b12c4d9f09797949c3f910e49b4a47a2d0f08996ee581233b30041dd88e599267e4f0da21303a6d0593bf7552e0288974bb198fa84d93b5c38e4ea6450b8d070e3153808ab6aa750fd02c359df30f9cf413ea59246a7e79ac78d8f89ae831b635dad8601344892cf194e6251ef72ffc813646016c25ee0d510dbae75b6a84df12879495a78a29d910e81c59b57c66e055d44720e6adf0e40324c930297ccd6a09a3c05423342c23008370826e9f55b3df4aa2f0f2aa6205d7dfe69c6b6bb70235fabb82651fee69d6b47da6bfd5b47bd4ef8fa475fd8f2202f0a5399b9441eade3a01292754e5b1b2ee88ccdb5b4c735df37632d3cadd6aced32c9657d2c5af50a605a04d4315aba0f7f55b361ac82548b51dd1103e6f9eb423489dbea07ba46ebd27773ef32317e6df26ad95be3e200f4d55e1b7a1c78939b3936053a94f56368e606d\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 390a771c1be9f6d6f4a2682209f9dfe2f565cc191484ff3a178e32272db6863681311a7b406472bb476c1beb597c8f0e9921aa45cd4a8a01e2143ee86a32f71acc84cfc213a1757acd21d81862115400c5cd1408ba65a4f126734efa77be071404a611ed75f08ae28045e014c02c2c79c59c736fca3ec865943d46ec2a6148be8924e4942b79c68e408c60b57c0aaadb234d2bb6eae34f57257a426bdc5aa665230eec4c9aea2af275f0ba15f76655dfbe4e915191c8b804b392f5a9d04efb1a3f4c870850d65244dc9e431249aa906d206f1497b0a1d6deb4d691b61ab9a1e61f72a924cefcd0f6fb566f77a69067b1f6baaf23d1d7ec7c134b9959bf78ff79eb750be286a3f03b769c199ad49e769e913db72317f12f12aa340265060218f0cb28de4be5550dc56151a628061f50599094ea68177d5a9d5a97ccb3a69c53fe5ea36af5974c57dc95b6ef3b067c204eb98249e6a213300e3f28ff7eafa1a1a61ab95bca729d17f849d1fd2857ed00777f7cac3b05ff98e7e75fdcb3a13ace16\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 7fc48d42f239de51b276d1aca92ff54dfe57a3948992f676c2036df0aac90df4f25e47c713c552f104839452b5c38a0529fdc2b21dcacca0470c82c7a42c80837e293ce4afd3c1ec3e086b961db8209d073c7851eb1345d6f6f372dd358795f0c02761a26df1d0a84901a8ca63e1a705e841a81e849032f8fefb0e3943c45b08e4789841f9e39737f86b9ed88339864da9922e05202cc1f73fc321aa317ad027ad5533fe586b46f92b56e7a32daeed3bd5e56765750c7ff84459c0c0d5fb1d17f0a0b9782b203b5519aad78a872a80bd7b0aefbbcb8b8d1c5e93e7f28506caa8267a575f064f4e6d4df3965760829266d225e1343552fa657850871afef79d2fb25bbad1c84a47a62e2be3d5826a49ab476f386785642ad1186894cc542fb91308a64d1000678a9864578398f02b84ed1f0027c4ee28a5ca5fc97d5e2b27107f6d3a9a68e6d5eebaf6194d22edbbde652b496fc4fdcd65bbc10c292df7c3e8a1df8c6ccb2f70b4e679a820dd250692926adfbff5d127f29a0465bd8c8719a7ae\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 1950963873afaef51578241b79a6035b4b5b51d950c550aa00957e8eff6ec72e8e7c5c9439eb531f2f050c3e3638e946bc7231b10ea14e47bff11247bb83d984c56d9aee11ffb0772ca915cf80b9e6f5d7768fca787e5051c315007de4cf8c0b697a44a955de4f56999861a3d8a01c897d212ef32c7f79fd986f8ed09955617a3f5bdcc0ae016a414cee5a4df402965e9cd46884449237ddd304e90f7c6856d48ca7c7c9d1a0cf4d2f21ccddba6e7153ddf65de5230a0b21562a9569bd643fb926f14f0d26a8e14ac3df3a2051711307b7dd260e54d1f89c26b02f0f1cd378a09b2116d308979c997e42fbde1facbeb69f0c788e39d09b8f8797bb65f9f2a4c73dd95d028059bbb6807fe7f1a710b453ed16bfd9548fca623fe650da8a701c92579e4a82361b42ed3a22c60276547c7843813f99848dc60aa3178f4c01f8763b0b5d3dd6843213b5dcfaf73a64c5628a3553eaa1f955ee97b8e7a837d69413de9f61f89c2b8efe6b9b6c7fef421a249f4a8be71c2a9cf900e21219080b2651c5\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 7795eee4bdd138a4baeb5159c60b56caf396313af6a46ba5375b8dbb88e8bf37935185de5c8ea773b6ab2f6f7872538b6b0ddf35ddaa06afe519ca5c8110985c710b8e8ae876753bc9653764a810bebd29524c362844f106e3489722756af1164fd8cdd96069139a779aab6ae283a95a17da7c79aa43ac43e2512f9eeea845b99f4d284b46aea6596e43f3dc3d1581d9f9943eab06c2ad8aa506ba1c778a1128a1adfcb97372647bae1cf12357fe0e44c307e97374d2167bc864def4ec7a24d35fdb4542c6f3d330c2a630a6f300a1e571cdc4eb76b13e0c5de6b06e2099dadc5f5e8a23958492634cc1cdad8b52629415d779d60b76299e45223a40728f375382492ca0abf45ab23b5fd9f5a45c5e71e1380b47ba32a60b0ab7568c651e6e997e7e8ad401510d30bb32427f9a2a43ce9f58fd1687d86c171910aeab8be986999ab7391e854e2f6e8a815def90eec3bcd2d800deaa63c6dff88aa52c1da9698fd8f1b16a705f4b3de7dd0b228eff75c5f48d3408170d39626c7e9d3ebe437bc0\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 23887a22776bba317c2488243d77916cf706275e3b8ecbba526c0164a11e7b5369b491bbd8e4b413567289c386b922fc111f149c5c1168d49e1255e8d18f28b173acf1b0f0ade32801d0c95627ebf063626bfcbe3ec117c40331ed2757a2cb2b6cf99e0059260cb97627203b7e69dffcfad099ef43728f6311240aa1edd5d4055108098108a23d3c4ae74ae3b6bffc4f97aaa50a41a3d5b22ebe767fe0e1749a3cdbe3ff40e982d9d34878160102afc14a10a3921dea6b89dd813dfd6802f26eb76f223186fc3454b599b2f4528d676efd18b7b28e25b5d9040fb8ef0af2c36491478b10bca1a16741e6276fe2482e63e3b5df6a38a774cf0e2469a5f3d6c63f3a68b562bd63c791a711e1d9379cc919ddf8590310b04a99d8af9508f0a66738fe2d0519ce2a58bdce05e8691afb095c4c60bbe0ff18f2c732e91190b3dbcbd54c5337b12144d98aa918b463c3b3a961121218b70cd032272b0bbb1c545bf7a7b9feaa6eb77d179c13541860a9c78bb7d763227f5a14533fa8434c63e5e05caa\n\n# tcId = 113\n", + "# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 01d1a157da33355d97b6f363f2cea4f98b31ec1adfc2d4523b40d8fa293f2ed93ea5784a6d133a4d88584ee57d2510162fa16c069961ea904b32446fc1a46692657e0fdc2ee070195ac398359ffd9d338c40d727524176714f550d95f0e6e988a9bb8460d569eafa252ea35c398feb120cb068c9c8b9ce892110a1a4672bdfe4166bbafe667200f5de03493e74e8960b9afa800fe5b3b1a3b8ec857be750d7aac89ca95c03744d3e67ea599e08cae7facfff1eb316d0ed2664c1f15c3559f3a7000eaf89c9d12ab2c4cd212be64a86e80ccab6b23c4ecf2eff3efb84d84bc20bb371717bf1ba83bdd4346c332212f31e82c9f9d89b7b5d44f3628504614fa0b78ed4db11e3fac5041521e8e9e4da9f4a768843e1dafe6e4669f2f6539e947efe24de701c425e1a63f6aafdea19df24c37c23abb2089c0a499a9ddc2f16e4e92de19831db2988b1e53b711bcfbdb3519352a7bf3dd556735f83ef9f438c7d92fc2a561354b19cd028c9b9e92ae420372c4676b7d681a4a1ceadfc11444dbfbba0\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 0ff8a7a6f38dc29d0ab58605dc1172c32e052e26957b7d3532f7087352b21ae4917824218d79d7c2efefd18284d82b8ae18974949c627cd5d7f75870ff94ecc4b4746b23d8499807286d20fd53215fb33deaa2367d818514744c3aaa877365d23aaac52890a6a14b2737f906997d5bea4ad2c0e6ffe95f28494760dfbe0d21e392a357fac9ba126af9dc1b079757aeadad0631738ac38734064d22ef3f52126f666c10ed05d2b5db78f6725f5de1a7f357437f3208ef4f8426c2824309a6e0e7e82a264da5782151646e711e4968886c4662f87c357bb9311155dc2ccba00642c862120de0c79024a2855dfd97509b15159a2e4eec467b7ac2778fc35d2e941cf3c5d46a931c23752fa69344b6ecf183693806b85f48992e7d1f208be3119a37dc9eecf131fac71f9e55b6a5f5a21d62a7c2422e11b2c5002ef953a6f34e1c1391162e50099865fb24b6297ed528cfe1949999e48b28d0e927f03ac8c256f9711aadfd0d97e98acd12e9c7a2331ff060128a93508d13b019b1219df4f2cf5465\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 404a71bbc91ced5b6079d94ca7a0e4c601c3b12c7c1e89c0bce718ab0899cd25a1c3399858480cdd0774a1d24ab72141f5072f6fc85202ea6c45fdedb196133560ec9de18964e0e16cc49959c290b69e5b80f7d0cea34075ab24220f12a324fab92ede089f645cf4c30c18275c3d5224af53e3703ff7b6a8413aaeb41a1e39e29d41986698a7aa7793a40f3f7f389e33860c7d97fd1f158a8a0effc48d08ca9d8c54fd4ec80d4a210e2eb5d09c9afae6fb5788cab46c8251e42285879a872f1b48b847172234e79120047ead865abaf31682c1a2d104f40a2cbcb329404f9502ed7e9f9ba7e1eda6b94a36a8b28ffd4a2b8730b86f9013b5369063615671a58ec601bcc9703f3df6d0427522aff488e57d23a90daf79b894babee8a73e2c18b55a3d5c8bb16ae47eccedf1aef80dc1b84dd9c25c2af6bd39dabd0ddf396c44c22cb15641dd9cc409b1538d6728111b2101f99647e69b9228f522aad40e3f9812f9cc4f506beb5b666242466dda4e7e8e90a4c9d1394df23b93e74eca2393a42a\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 64f873578fbdfb0543e7412d585ec60f95919216529d93ce7a16afcdfa577bd2f1aa6eb660a5f2ab3b79827de197177a461e6afcc444909d955f30e6524e4fa5c9a5962c7a824a8938543c397c2556471f6c0a030fb79f0cf147ee29532aaad54c67aeeaa8e6db4bdaa869711fe9f02143f9b8532c99e58c3a6629c5e17b9ae02b18695fb1c4c9e61cfac678c75fa27a744a8126e86e0d1d420c3a125f3a705bfe6a7bff256747bcf047cab3842cda6efba927a687d7d9641b2e8cd53404b8510b273717dc3466476888337c37c427f977db09848b8d1faaaa7c163b8ff4608ff90e8d8676703ebba1cefca44c25c732654ea6d45ec0cc58bd00214a217c055aeac7f2dcef5dcadb314454a2e1e5724a1d7621f07c2a77b08d540b74e363244d879bcc1584d0b179ae1144c1e3d8f9769230b936bda8d38be450a223a19d780ec93f5fe678e8d9e6d1d81a4920320f8733b37cdd04766c1adab1feff63136578ac1053adbaa1aaeffd2559d0269e7dc01adff4eb8d8c9902bc42549ad7675f14\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 00f67052a70789e75039f18cc6aaaf9b1db8f77e5c2e1c496d2274b5c1d5ca097ff6bf9ec8d8ae5bba13bf2c12098afca25bcf2c26eb5716ece3286c6a7d64f56a473e3116c4e6885fef7ed2685760fc8864613b635fad956b65100bed60477575e5e7bba50bc26e623f4370068870843da5925f7f123403d38d4cb30457e14c3eed2a0268bb9b97d377fa2e47fd5238ac643cf22793b3fce62da501fc0c287e5ae960b78f7acae20ce81866b9b703f85d2c9ae2057cdd2077959356e51903a03fe2757eecf47acd33ac4992522ddda22c8de751ae373a5970a466d8c80c68d435856cac74d2a85c6c0f8474f6a1b89139e15ed9ec8689b1cbe4b97f7eb9ad978d4992bb38e2ba57fa4890166ab792cece41284f97cbd6e892b32d49ed63b0fbab25670c27399627911751427faa6e5a0a475adbc01192be2fe2eb2d323d25ea5210256247f8186db87314bd484dfaeced367256d0807f8e981caf86d42b3bb13639598001d0e57baebf222fccbc5ecebf35bba31238991ac68edeb4e70681f0\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 42bf86f17a82ea6cab7eb84215779691819019ed827c485faa11855947183a49f52fb0f6c591de616d2ec5de5480a8017fb1bc3f785ec5e5648c5db9101b087a31b3fd7d3155aad77b69ae3dcfcdd6e32031f670143436bff324566f727a9408bab195a0ab61e79e884dc2fa66b00da52c0c683f1e9fb16016439f6e90c7c3efed53dce7eee9dbf05287c92b23d3d970b745a34b801dfdf9e846da2b4afc086c58daf3eb1132833a9799216da6ce730b94ad7e01ebeeee17794e295f9ade0a7ed8b1b597023e95d67e238e978eff2940c0829e7cf0c1ea885b17803b3730c226b97ea1ab161e862c0183789a729c31232b596afcd9b192d69a429ed2371fddf2bcad11973bd27b2f6cf355f8beb3dca268852930e7c8b194bc999b92ec059e7122bf05b849c0647c399daedaf79998881da3b86a3a5ec08d7ec47ad37012d1a87e6aa4477009ef91176aa61f73dcc040e1063b2003fa2b84635e6b4a206ba4721d0b7882a1a3e360de362f1b01db6afec1cd01424013f66faf2c503eb84b3929\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 8bacaebd990eccd128ea06c8e135e50d3f9b00c4b31a58f960458c9256031c832c501cda67ae4f1aad98cb1103d145caad9121113a1a365ac19f4135341763155cb448bed3cbc3185fc8ca63d2bc8b6f0784b37a6df4486bed7978b490fe36aa4d72738e3337e4827806c5970ffc4313966e5246e05804951868fa45d4d417438fd8ea8cb57f4a75717a3012900b19f261d8aad8d48b1e4132604a3273e17fe3bfca080083509b90315013d677e2932e029ba89e9a8e2c3be96dde760f9d3ed422c11bf8d6c9f5c4aac79ca910c0f06a0b0d757f6233ea821c1e2c123c82d32e9638dc6c84cb85dc94ca83026af301d0390d1d3186422ed8a544b675b5267369e4a276743fb88d926b9ccade5ab4d31a7ecfa23fb271f47e14ffeb795fe65adbabd7bcb9fd606003bb8b0cc818162937b36eebe1da0685907cec64e6ea0cb71e01001bb99d19dd205bb264199ad87a07ec20912770c0b6107ee73b094607d31558c5b1c31a1a8c79d22e5c77ae34da98e2a14d3365b7eee4d7789781c8515797\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 62aa9127d8f3d53285814d9b3e66fe3f75644ad1ca071a6a895ecd148d7fb7df9605ad182fbbced4f9e078563f909398b4324d4d192d2f7abb828445aed783d4c9c76a82ead7fedf109310a6d65852aaeeff87e66303354478085474f60873f0c677b1ad9138dee0de2589235a121b6bbefd6b7d8ebd3d296c2ca091c3445b346ac39f52addf12489955fc4ff0ad218f5f5db5ab808587fc42bbb2052f9782001f828b8294ba1ebf4c6a67ebaaebeef386b56e23555df9231cc22b5a49ecdee35649714040715387f1313b7d8e2ce6e60d20b4aa394d180ea7dc1c70a71e738ce06048ed9f1f6ea1c262c3f77f613968bd86490bc91c43f7e9302a2c9c3f934de2f368d516d0693910b420a9f32689852cb6a3184fe815ed00048e2ca87cf9b4ee53c178cff7bf3398dcd444136a55b6753e0af951cc8e7c53712dd9814d67ed1ef1828b3d827eaf53da05529bdd2d0d24dc1ad64be7bd689f3aeaedfe31a8ef74c46453953b1f1f3466020dff6c690d3e06d5ed9f51c3f28fd3239d1634b93d\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 539826889a8aff731ae9e731083c7744872141c8ed3e4d04013152288ed1deeda0d42dc07a70aef3c053a4b55099edcfd92b5df8b73346a62bf3e5be2c326ed3b2579972b1830313ba51126998855c42786745f2b71e38cd522e4015f2f8928c8ace48161e1cb092858cacc061e7b99e3b44e85a50a7fafd184ca739e6ddf0e9f5cb04093f7f2b2307061fd99e1da6691ac694e4756ae46517af6d3a968109670e317a99e5197192cdf4ff083c7e044f46be530885cafedea06c657f1d6b902458e102811fa3cb59b02bb1f04f0240b5a1471520dc4ebaf70ea0cc31dfb1736144d615c7c77a4bf732e7775aaf03b5623278b96faa022d670e9a043575bfcdc277ba50f5932a05d4007761cc97e37e0a986ced116b3bbb68d77a0f6e32464c2773a965e414fdd9bf19a1cfb0451aabbd96b3b3e27320ce2391343d441aa404bcc7cc107550bdb3e19eb3a954a5054fdaca39a14ef4a1efa1459aaa72c8f68ba026400495a76bc8120600ab53eaa095cb2dfa3996de36298ac4ead407c5cb73ed\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 6ed76b0cf22de889ae6089d2fc739cbb2db9c348c035c1b1c2b400342c879c73a2b834737ac33863eabf61e452c332421ef4b1692643ce6ee5d08f2395fb3eb7b6d20e60c6fe2eee0ba64d9dda3bb95e7b6b5bee64dabf9f1c2c450c118b0f3b82bbb9d3851c6e9bb1aa138ef5d94cd8a9765f7aa2b0e76fc16d697a8c10ce6f9001c005064bb0740bf5eaea3f49f277b01bfa395376f1e33d3e2ae99424575ed5d1536dc7773acc94619692431be858fc941cd53f56a6841632215cdffda41de67cc102ab9115140b4f97a22", + "a6ce4f2aaefaa035166977f404cf956cf0a25d6945c8d8f5580e48d77ee2ada4963d139cb4478357114851e39abccfa77c7bb70b6d8f4ace53b9f6500d9d9c2c1b28489f88da9162b4cfea89a38795702dbce4775d5d5d7409bffa693422332275ef5f82ce8f7b88300eec2e40967f5d1724ec295ed8124ddf6828a94f8ba8b7c084d18687c96d1c639ff88da2b42af7db2fb8e2e504885233deaa713af829ec3f624e03dae24ab138931e70384ee76c9b35a01\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 772227d41321eda0b8e0625f87cb555befb7a6969df63d03924108c5bd89974bff3c69d8dc963f315f6911cc49d76b2f575bc15ccd6682929661b659b2436b3945d158f2a95721ec1eb8ea4038f5af4cf85266a987b77d318b6c1631999574bfcbc28280dc0b656b33467eeddf75c57129657ee5b77d671118d4b57a55c468bcd91a0f71799433beb7afb8558ac0e70ff91ed48564d93aa55ac79b35c468af57cb64ddd62a4ad56c29f74bbe829b586ccb9bf1b0ac56fb9761b278d1546d2d9d8c8c54822f71ca47929ef6d988895527f6a364bfbd0587f24b8bd1790fdca3eff36339979165a5948ef17125ac8e8d3f3e2aab868013569b57417a53303d5acffbd11e65e5638fc4f9d9b23c16779e82ab38c353ab282eb8035fd1712e15f9f441be8773251e53629fbe9a4d8eaba7607b0d4263df29e425b47345ddbab4da5cd6b66a616729c967c6f28a29e8a8057d7c2bec54d854c8935437ba2205c8a615501d0938a18d10f3ad9ae3f298840eaf87b41e42ad811eb8ba48d915962ff5ee\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2ceafd49de62fcfd29d10308a37e84e7b88d990ddfd5787d4d4d945c4309febac385a13c285555161bc14f83ff5ff326da0b6d6278bda7bda7bcb7acd7178f8d71e0c297eb3c98e80b97ec6eea564cf64933ea75d3458fcc4d8cd56254d91efed6152953beff778032ef384925b1e45c91ab30ab6adc979e9ad02c01b1eadfc96311b4ce98745b0576e90f5cf471cf9c75cf3473ddcb0a674d0b3d03787e8446ff1702c4fa588520738cdc48fbce72cd7867ad1ff5a35615b51dd5d42cea9f721cbb12d887f1ed58ae5d3269d781f764e51c1bcd93da5ab32369afad9f6b67218f9bf8dbc0fc1374e67ec360b183594740b63d29d86340d2187c2291d280d3509ef7ccd3b2cbfd45ff6a5f67bf1f92135be0f4b7cc29400cade412e1522d81a138d5e27619993865f8c3d73fc24bc2eb7147a7906b25d8965a4480c4bb46b4c7df348fd0d83119b599619a7c4fd985aaaa1040641679a8ae69aaa2a3a315557595806de350f33dc169ff2905c1b432de34443ccfc3809ff5ec7462ac0fb2a5f2\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 4fc3980f88d8da1814ded92a3f4a4bd66e524e2c6dd98d80b2ae56b59b0006a332c0ebef85b7632b63ec85528aeccee7cf09016ec2465c00cf012c324d21db80be0839b87f631c051d7d152e251f6203c5e937b8f756176f2356f13e947e47619548751c4ebb96b6532f22510ee1ebf946851cd20c098504429dd7ee7472d7ad9b93d9ba415e7547773608834848bf4f80fefdfa233a95fa9a535bde32dbee28a0ce38650bf022bbdcaba39c436d7f7e2d1bc74079fca8dfb9c3affb7f58faf90837aa8d770382f270e815764b52a2eb3f9c2c315e290007df5e881b041b4bee65b6ddc7c549948734ac8e1a8d27f205a30c68b0eb36b63aaee373e0e4fe303d37988cc179ae169552af975d69cc663d82e1159fdd8b1aa14efa3cf465421401d301fec71def2fa1b1c185bb6e9217267b34dc2e13b21a5ed68640e6981820f349b7d35816a2eeaeb5881d12300e0022a15477de159ac9015012bacefe4bc1749fd96d1fb1bd2273f86e6a733688632ccee551ec71cd68f7f204554ca48d345b\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 9e9547adfb919109a3a7291bb041f8a431ec229a922c0cf256c16a5c422c860292ffc626ed00f09ae1faa7230f5721807c0a99134091c6ab0b726762592cd61eaa4c58ef2046912c9881119c517c84315096fa0b729ec201a804ca4c4a4b34d4768e97ff099053f6a628eeeb6f3052efb26a61e45f65ea46b6a08f446f239ece38775eddf57eff5f2cd8ffb9d4fae4348c7a4e94a08ebb9aade57cdcab2d39285cdbcf964e5c5b175ef41b4fda46b63d8a810044d93a04d344e072ff348ef8c58f77dd0b46369904f174b144ffee62ad8b1d44a67025a527a7261b78a831b3f91f399ec3dfd5bb38e599a485e9b63cda14f8ab06c1df236b210bda7382df6b1ad8904ffe44f70b893d990d321246d541b4090debe02f2969e04244144a345e4e89f1ee5a51c6a3d83a8b1866152cba055866eea6417ae60cf72b688c5e7b1a1919cd4813afded685f3c78f8edafe6bd642af232daf2e12a4097008a8e7a1aa7d3d4e5583cc922246a4fd051bda5c1e76b5f89c28abe88d606f86b9c26512a6d5\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = 409bac0f385c5d75fcc9ec8a63cef1b00b2aa0b49583ac56c9ea697d704ef5347236a351007dfd7420134dfb8c860bc47d0bd6e303265cc5db8bf2d462744cae06bfd9b92a082ef0911bc8287dc202b2e4893ac15217acb2c29859cfca05769e90e8bd1010b67da6a2b0bda4c310174a9780492b802927f458da53da9d69efe8ac436c5a0ebe06c4d0c62d4421f018f468759b36ce050c8b242e4070d5ae9534406871aea1a7d65736763a27bd97d90828f0f217a745fcf454640dde39030432e8b3cf92686c367fa6affae3bd5fddc57803898a880ea28978c5e7e76bde18f451ea3b2a89d688cd5dcd5f19d1600ff222875f84100ebe2e97c2d98abdfe9cbbb733a0f257bc187a171326268cfbdef12acaa28125062fdf3e9edd756ad8ed9e695b61cbc9adb94046480693e6acd5b415dca69551dbea6883f8611b994ab57d736557b6c2d7a861393a0c8e9daa4be0fb3ba13201f41a56701f1953c3fcf54e2615a20b15a2fb73622d1f5272a9c1150dc975887f032a0bcf1681041a21c527\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 506d8fa1f4dd3222ef4d1db80d747562ccda3abfc129426610901780241300ad2c52e8cd5ee44b499928d7d42dbd37d0a0ddc0ac2e583a68c763cc3fd8e71cb80288c4a5d0c4fb8ff91abf99cadeba3691982a2f31838096d0d9e1b9e65d8030718aa11924d22f49d6cfc0406ec6af05dbc9ec4d1e8ab13918343f6a973fd23d5ed7bd05603685c5930bdd93c313c290ce678ff25d815c2e469dd6cccf914bcad6e8bd5121baf589dacda9f04a22cbe8b1d041e3c8eb6f902aef22859066ea22feecc33c898a7fc254ca1f84d66cf141d7b1bd1199070749f8f584eb7ec0ab819373a4770916e65acc0be006c301af2c0ca72ccfbf40dae37e316193555bac56fa982c0034a2c7c9785f58cc40945fec7c0ad145c03babc16a9bab02562afa4dfeaeced32cc409d344ec143730c290791fe78a3d6f8ef2fbb163cec5ed548e631f43d3e117258ab8c15f6f62ead7aaf3d590f9fd5c73e947661781fa1f56c3efc9596756c6bdbe4b3e3c8a05bf66220ca234e6043c900e9939d689b7ef4aceff\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 8812df05afb4bdb86568cfdd2345a77baabfefa7fafd393c79044c3576fa7b4537e834676ea22501604835cc685030fa596bb5d6ec4e8f75d65d0c69949fcf28f1b6711155bcf19512188dfc8afcc3521b7d875cdbbaa7cc4d993c67e3ada4f554f22a4d6c2ac033e7e2eef68cf1ca89a3267b18911e82c0aa72f452bfca7b296173f4e25842624942345416906576587b97f59a11717bac58cce7337812b9f7c224ad04a6b3c2236ef12983975979fc40719cfec7aa3f4a169156b03ce7952e3bf7af7c3cdf9ab5643c2e43aa1501306cdbf20f7f2ca3af47a4be5d9d668c503ce4406d2a95a209a79e081507edd4609aa5673737f48b04342be20aa1b46969986aa66156fda91b00220bab2e4c9585c3a35a1606aae9e577612f34fe18ef0cec1877c49665c34b17c2e6bc2062798c1f1d38602c7420c414ea3deb098eccb858f22ad5877be24c1c44c7025f934f68b5015a3d9ee0d3991a96d4870f0e7b46926248872cc46a74d7c272faed56f90981a30ad55c8996f38429628afdfeb414\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 7131f9f2ef70ceef69d90adacc74dddf5b82c7f0ba6add6e4d53be487861fd8f5b13fd2d9bb4b862336cefbfd369ffec5b7b37d77f5e6d54d4efdcc55c75cfef5500ac39aae0597bfbf6b2c4523a9cb97e539e4f0383dcb3aea4c705015d1748a4e11dbed9979c05eb5f7579a60b625240ade316cefb9c056647927e174241491c87a0ed01128d089e50d878403a4a2946d315ca034003b0899f4bb95613509832c76cccbed4ce3f794aeba83e8f59244e8230bd9f7c5352d12d9bafbb45b11e6d59398d6849920b1876082ab058e682e7fec79c1e0ec7ba6a95b72b9650516d2a25d28470d31e9232002799353c1cc2c921372cb4e38840466501b58629ceb51b1dbd17643be4acb59fc3cdb44de24caa49faced215faccd8d52f437c8aa5e529436facbe9c1efd85c871b65fff075d6d6faec3a7e7bd25f5eafea62bea007c45cfdbb8bc189835088c0691488f4ca2b0d6a6250b5e1fc76eb40aa415d9eeefcf665a41ee0bb53d421a27c2580aa89c6e25ddbda69e963d92145591bef8b910\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 2c478e7fe2835ce5363122c379ecee4e7cad31173dc248134a942a724c336200d91013935fbf80a8f5a81f40971ccc491ba5650cc3725e2869b76e06a30feca80d09b48c89696954bb91a41744082ab3a69f3a5b8a122a927fd9e7f41e6e53a26582d6625be1e1b8cabf3ffa5af3500cf9d21319ad5fc6edd85ee7935562fa29cfb2cb3fbcac9aaba5f7e5d2e252f6d30efc20d2176236fa670d4b0134efa570a9bf5fae8bb88da4536f4776f5bfb5304830ab8cb9cf8df3f90665b082ee7ecc03e9f36706cad9d7fb293c2e467800442ab39c0150304b668cef6f84b2afde87728f429802858e6988f8b6ced894dbe24353e5e2e53310acbcc291b688e76c0627152ac92d9d5579bcc73b38b275807569e7ff375cb93c977e52b1f21eac9334b9e1a5e68ab5fb1930b810f5636cfb386448413ea80a8174a616b10b9cfa321dbc648f9d1f8b8ac8087cec959d8245f2bd0ec1bbacdb96afe60abb5c7db43d98790cc3c3f196a1bf23aa1616231ada13a55ff6b345b90198588e3d44eb742ece\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 6319debd263a0921f9d935f8b033a65f6e9fd9be", + "bfa7a383e6dc2c0aae9969a2d29b6f8ba9c9d467f311f9de3d0af75230bcd662b7681f4967ab1dd4afcea3abcf12a7c4b89b3e31e22d112aaee76e114b98b81093684e5172b26f18deb45d47772957d4f68cd5f39e0d7015d983edd534b0ba59afa0f1ecc0cfce748ba42ff9c3c6f54fc447a343c24a3b5e244d18d15cd43a37e3ccf4e0a34a0b6361b650f27cd90ce9241f307975ddee05945430262c68f0bf08afe60c87fa6f2aa8cf0b26e67226cd962e1ca0e3affce55182e26dc5f29e0ebc48a1d9ae837041cbba28461accb677ac793b3bdae610c7f5cfd3ad221317c81d6a2b18415d2d00c25d2759b509cbe5e1a99ee9cca1a1d15f8ec1fb642b2a8772e61861bafd8c67c93a835134e9acf03f7630e1e2c99a1fe9ac08bdfcc31a6c88845d9a0e552a3fac84fa1202bea4ad2868fbd8a08b0368b9a1da078d3576625eb72b7f676b9e67bdaf687e867a66d70147f09b009200bebd4a866202b9de7dc97298b916dd8fadf817ce2a\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 17a45efa88058bdfc012587998e163266a1b5e29f474b77fce1d699aeeffed91d2586c0fb65d20572bab41e678500e3e03fd7202f89f8bcc363d4feb40be4877ad51c2b31f23a4c9967e84e0310d35a831f1f4caab9cad13f7df6394a52375bcdda97c4c8df483eed1735ceacc9bb1270acd2f8e2b71dfedbd60b2c20bfa732053473ddf2e397a6a8c1edd01e1d37eec26a6d4eb858071cb95104368b9457096c0b4f1e8c51e7e51a2b9007f9f88b63aa83173ddf62e0c1e41472015220893f7c7947fdbc5759eb1b05f100440ee7ec166834a33388d0ac0d6b32d81c83853f46ef85e8db63b1eb8432f7f1d33d961426eaeba4156977436ae4e3539a687a02c08d6d6201f57244c83d11f5fe0031548e0267c9bec125cbe5ea2eb2da72986b477274698455d94a9a69267851682ece2da32aeec1aeb666cf969caed281dcd1d3cd9729cd5621883975776b5da8bf1a42c634bcf316c5f1466bdb89c78ef6f68336364cb9e2e29dadd72d19c9155039eb4b259914c0d21ce07145f833c638dbf\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3d092c08b138223b594da83fcffe06d090dff3087daa313d9f691ff91572694acd79618016a21128d5ec266ffe6ffd45a55d9e21cc2d32680d12d46b0cfa332d7eb676dabdc9271325ed26d9a9e46dd3d4a2348724661a50c51827ffcd1123e43b09ad646838aad5372ceaf7a5d8e9d0a9daf1c1144c087331c1dffc3a4afb6402285902c0c0a1cddcd39c17d59e26ba87574f9d19e3dea6a907409a8ce60a1a343f99c03fd3c8c2304c4da3f856d2983cea2e212998adefbb4a3c11e11df734b625265b49f580ad733666e420d640fff98967666b9f135d842906e54a20eb922503e0bf0b829237404c376b9fa766ef0a1f9211fd268eeec297833f1a2b6a5f8d058b3b7f4cf06546307dac9a8f8983b423c5e4e35bd6015ddf1a9a118087ca9e836260a449152163438a027c294948b4b72d85e8fd9a8296615d17e370864b8f0fc99c3c177d78889240b47dd6f429fb5517203e45eee832aca712dfbce12ee112dde8613b285ca9cc62aab75eb9ee23a2e9adf7a1cf8d36ef55bca263c18a\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 405cd9478ad54df415faee76b02ce44a8ea555e9feb13657fe0fd0eb7e99a7195ccf80aea8094df48fad59f4fd7e8b383d1ace0956709cd2cc4a6018e5e364dc0867fe81f19b18a770fc82519848cf338139ccdfed78c5b699652ee4aedd5d529d51ca41aaae623469848b033bba3bb898e9e73a4d6b709f9697ce3c889d2bf2b100fc79feee0e5bb4ca9895d67adfd313fce9bf58a3dea9b6139a7ef7133e07f357c1081747e6093fa10f725bffcefb3ea79e80e66c8870e5cc933c479a64e682f9bcc459459581e483eac41a27af198023aca806b7833b1737912796546dd936dfc1e4c7e3e7b5d584c078d75930c26b6d53d5bc086ed1b5916a02409b6254a296bb0fddeda31c3b26b5865f1655c34654b4b46afc61cabfbc439dc5f5a282107dfb73e16c40e96236101dd998ce8311355529c79822ca442eb1bf089b6f32befb4a430cd3b38c015c2b7c5e74b2e6716ea6d893f8830a20092db85510e721eb5810a3bc7a531cb5e263ea4b1c851ec78da530c694226d6c5cd018f1def21e\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 1309305b47cf2c6293581a498ec0d9c0baaf682822c1e93c1738519b3845c535afc95d098cc5130e513aea85889f382eedb92447046b762c2ba76eeb89f4c974cfb8c16b0e258178c8ab06b6aabc37669984c4db5ec2eec7cd7785e0fac258ce4ec0145dc4401ff46a33c8e84dd8347327799281ec475a998cc92ea60bb1430954f174f8628eb84f46383514837a33a4b29e46130ad9d181277c4fd2405c9a41f796cb57b7da262255da243e76b1315234c241363abf5877d1ebbcd453b17a3cd2577579ebc0e2b7457b965e33491afc42083cac8526d6f44446425b13da09217fb2cfb3ab5fb5a2d84b837195eea58d412a83726cb67def7bc5f349c4b25fec9c512bbb3b34ba06d33e6fce13b991b9ea76976b2c641641e9d46a1ed19444deb9f20f98ec1fd1f7cab025e2394c5e659abb9968470804212c2bc526a3ed3ae38c5341bbee3b236441c40566bf980efcd1b3319d536876403a9962f8d84d2bfb65bbcbc7f5e7448f2f81418811eda1b758031951c2c7ce7e0e375d7709446c11\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = 1d7af7303b7480a2d492f87928ee58e4b30e5a47cde37cc368963d539661b503202a13db3d08ac507d9f98634f869acf6d7824f65fcecf03f7faff5d51732e23f03a20a784808a4f89f1c418a59a7ca7d1a5ddd726bed532bfa498942a6fb4dcb8a331641a261b94f60b43c0a857578fb3122b682d8a3bf9f97c5d98231e091d6a6f35d3b3aa3b2d2397c15138c4c91ce7d8f96b54a0befab5662442b4ff30db1a0d06970e9c1831798c65471e60a5f0e76cc5607fc12db3ec479044fa2ac9b0d36a2794931a644afe754b43716989b4db2a462a8be69b8c7cc2fbd78afb681816b21feb7ba71156eab4ad4dd196ace3908ebcca00d7487327e865769e9b877e4d1c172d4ae77a183bfbeca34e0b27f3d1f50f6739faf982e46340e66c89bced5046764d3dd9b02c6e18db151ceaf9d2789d5a923675e72e89c9e01aa2270f24a31386a7cc64897f4c79d58020634922c2926b72b0d00d1ea28099116465bb5120c64947c9821ba840c0fcb1906dfa88aed9431151f6071fd82e388330009e87\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = 13931038753dc1a3f632966d301340bc8d6e63038ac4e9e5bfd3a899c3faa8bc37009313f116e038e55e82087cf593a978d4f56caeb9f8e686887ae351b8c70c06525e0850ae1534fd96887fab5661bcf9ac8ad51a209832e6076ff8a1514c1d229dd77e1e7b10c44769cd3626126cb6231f4a18d9bcbf20e613ebd2b08a855a88adb61f1fc66a134f5e37fe991a1d794ecce4d745c713ee65c293643f418d35ae2335f76dc2683364674c675d93a6e09eb850a703657c0b30faf2268bec61e8cf1294696da8bdc8a13905169c2dcfbe67e3e88e025cc1096a8d02910dda6074be914a2543506aa61af23cc2ebb36af18e4fd5fb13f891ab12a76f3c274143232a8b9ae989cb06db3678a189488fea9e1f5580d35542108cb127c056e923081867d39f3e00cd17dbe18ebea1f2370e1156880eea6a9d649f06250cf60e72bc05879c61a7953c5881966c01751944716bfdf196332478f883c8c1621f9698c975b6adf3d3642cb2cbfd83ca7c8a5eccd4596e19677f42be162dd19731a1e4d6a3\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = 20089ce845c5a3c8a28e3901c74386f1f73babe62b639b636d6d307729dd5c92d8a73c970a880ad5ea79a4b68d0d8e9f672c5441be95f9db740101f99e5076e7572e248a93504167b0ef7c47a54ca159b13856d6648c049ff2cc132bea493ebbbfde6348706c4c2104a53e8c9098a90d59c97928cf5588c8237222470849dcdeb66ebfa6bee33733e16d50efa8f79ac4c5a6c6d1b9851782f0fe5145ba998edecf378e999e91d8d29007ac4431c62de576b953556f9bedbcc6b415b7b29fadf6524a41a4abcf01bd367793eeb841ba934c571c92c52cf76642f6f1e931a8d076540bed56ece9421dbf5f965a828db11627ec062590869d290c27020d5aaf3d626cab8700f20d672f6ca0941e059739744ed192d4dcf4e835b61c74e4537b3c3a80586c68b47dfea8ee429dc1cd4491659eaf7a87a9fde116dac9eb4254aeb265f4f0ddd33549a63ed9096d81f17792b3e4eea06db19cd87b00947ce2fa1584b89b26cc7eec9bc48b6b77c0e0d306a0bc5ac2f8823c464702d491da90fd48e7c0\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 4471378418fe3baf5389f910f1765862b44f4529f7fdeed9ade8f22506152e070f80ec9dc9a55547db688762874fe06be1c1145070b4e91805c23285eb5c1a2e2e0d53a3431516a051d6b880bae3dbcc6adec3934d323910eedcf1ebad0193e75ad17cc6fae778a92e5c6c3460235f1689a9d6af96471b6b4962c10db9a83e72e2614e2cbbd788735a9ed5955c5a0a8a609b5b0adc7d01e49f97bbc33a33c1a47d0fd522e1af333c7a79e4d3cb68a356afb812d44d4bd575791960e375a0ea44e65d0f5b207ecce201c6484ff06c2292bedab8d05e81fdfb14679e80ce22173e21f48aa626b7eb2b92b37df875a1431ce3b09ff97d6cdcf7558c5e745c2453dcd02b3cbdb78e8f4fd804dbdfd9cc9c24ef9334df3f965ba999e556745f717a325346f7a53e3a257972069da572d40b07528ecfb01271fa04d7ac1490ca4c6f2d4c70de47866d8d39e698fb90fab53c072928415a784f5efd2d9222494f089607dd1b61ca6edc86ad3c26b1cd831ebf0bf0c25d85d1f54ae0cff0aef177bebfe5\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 24619e4465d1f0ef48a66a18a6c76a11fc9383be6cb9d19ec4fc0928959c6d96f9e45665949a0bdcc9a2609329185851b3a35377b84831f7b4f8f6168d77d25169ffd1f747303c93de0d939c912efc5a16439d1512def8213694c79efe59d85351e466ca148b1ce43b74692f1661e95373bb5077c6591bd0a867d317ffd5b98f2283503e4ee9ce57913adb02def14f0302389317f163301a3f1bb177bc1e91bb5d88a7d2306f54362a1a5138a9bc1653da0bb0a9c0f13c1f3affce6bb0a28e0b4287f5cff033d8055a915e39ad29cdf9d08973d81df34d5a032e53466804859176eec8a52f12134c887282955566cf590385f22d4b9178c1fd11120e8800f19c10e5b3dd432da78b317d54305f76579fd38753961fb66c61f7e81d8a369da1b1ede47bc0ddee63", + "505c53570b2c79516319f2afa05467cc3a3939c9ed5e0ddc8290ca76be90d557553fb146d419e751a4c9631db00491bbcabedfca3605d569647f5543cb196687360927417387bc27b774b1486c7f7668c1665e76d1dbb03b19\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 0796e1ac938aa24c995a03fb2c35a39a5206140c7c2919978f7a84a1e2b5ec93efe70045e213912b6e1e77e65a62df6032925cfcf2f5cade306f4debad6c2e1c6a84a221acb86f8d10769f66cc3e1ad66bb52e9611c3d8eb50de8e21a850d394e2ec690494264269c75c65217e2df1fd4b88e13eb4747a04437434a536b96bd2dd251c49123e1341b7c7ebdf0ba3c7307270be47b0b10d6a52a834a7404ae7725cc0c7e0f7c8c10d525c642965df7b821fdc5d0f7945d94bbb2f8d4cf14f91eda9720b8f345d35a326866ea7040cc3dec32aea044646e9b52c36b8a30218d1c2f1b64ca9dd16d588b6f4a22634c551c22fde9e6c8c0e42e0a29640dd2bb85e734541a974c6f89b44b615e39741899ef9f1e4f3771830aea67de978f9386eea5520aea35dd3820bef1fc90a955edd30c8a299941c623158fed97f08f51d5354c512686778f7ccdfdc396f9de48aaf9ac894e65424e2e31ace4c5c1db28ac809ce6a3f7fff4ae55bf1b96dbc4b5da5beed795281bbd6a0ab75f6660deee3081e36\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = 12dac1bca4777d2cb7e7f072e61e87f1a526afb4278d10f498f5a936e4386073b8e262442895c553c4453ccefda23a24a18601f765a3d7a39c5bfadadb80b631a708ba4571d19013be451832ca64952e9cd985059d55d37eab94e3c8fb1cf7565cc1be2ff6b45a7f1b1785d8a0775442b1b96ead3707f9bd712f75c8470f985773ada0433e720af3b8b7389919505fc626733fc90bdb1064cf6cc9ef41c2752c6fb6fbb44043dfc97bb3d31463ac0d8bae9e19658b723d9c74371da9dfd74cbbd7cc8041e2437aa6249651805f8cdf2af2b256142c53073e3c9ac6059b65a8ed25f00d9e31561af1bbf9d27023693803fda4f511af523416337b208430815f09b3aa78c35be8ee439343bc79186702351c9182ad1f5ecf4260e9929d0acfe883a6052397de9e49b51ba7044c751aa6e4eba622e1d9f7db431f3b7048137e17c5d6d28cf31a7995b46cdc5b454eb3593e622a54a96f2b10193ce41608dbaa7a16b7f1e96f627b0b1a2ed2f0714687214372127265d091834b55247e951ed83869\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 890d8b035cf1d2938593150aa00c3f4242098c6250aff9c3c33044e1b9247c81049be88addb57cc68a2cb98b30919c25bbe4931423771e5ae6fa9b15275d058fe931985d896ccb26dc495ca9003fce602d63161c4f00399d7aa46e6616181a06a0cc78906afbd80e65fd0165c7303551b9d0b1d4cb3efdbfc3138da4d1a6cccc43f8cd8613932d9d092cd2936f95b1775ca485f4c2e9a7c0d559a0112a60ed2f1fbaf49e3b514c598de80e0ddc072dc84ae8fdb565ea91c655e5c989d5b0a7bcb241fabf0705c6fcafbfe27abcafb25b26165c2822f9c2b681a86b97cfbce75150fc58a3f9ad92ce9a14c29bf087c2d9813c0e5fa59066dd260ba6e06668b0d305a8612d6d0224b7418c6308b8140f7735bdfde3f0f645eaf20bc0c5e6a4c8e6402e6d1c8016a0cb276e2001b63d2b7de52bed4e0f99b511f060773e5d2d67446e15a9ebf5ba4cdd995891301f08b2892e275a47a5a566d405507f6ec51225a02f8416758c4b35586863cdfc8fe57424b8e35fdc558fa5b3ad84743c5869e405\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 99bb35ff27e19ea04dd2ec367ac90d6043e8c205b50af1061f9ad89013aef6257edef5c865d04cf7a17406b910d3c493fd0cca41edf36ef2f7fc3eb1d4ea842ec044ee89f6d192c69564b2377952b450627af4066c5ff2ee53981797493150094362cabd68f8b52763086654606019c7c293d752ec65dc3d76dbfba6a3675e02041aeb86758d4a53e4d5c938219c101cbba5b5a61890c2ec16e569d8d11a2fe0a838aa0beb5a555145f23411c209124449dd9d19636403018b8e382d5956bcc81f47c5c29348730809b3f3eba2934a39bc954c7787c5a86e5cca144fa93abe1d8a34e65de29151e08f70951acd62b96cb1a8bd9566ea136ce75b83214f8132d5af2cbcf4d159065d22588b3a78d4eb9d86eaab23a35b451719f6ad16635b35bc01705f03a5d8ee71080e69e2a1de5ba2687f458f30b8a5af7596fe65f964645d871d4d7855a372e9c9d4ba6571516d8dde5d9b5c5704c4cc727f9022e2a4ffec77cc8668f320db0aa4211862da93a03e5348f1090e54df3ec9de50c093a79cf3\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 731e25011da87b990f38e7fcf08faae045402472756be9874d764933f7f1ef54edbb79e2b9660f40d7c9e05f34253fd3a7b8a12edbf9ae5218a203ba82bff1cbb5fa691020615ee59bf69deb02338f0ba879a7b5c6601798a3ae30352404ccd7f84e1c12d021e32871105e8ac34c2c1ec7fde8248e4913e07ce69b5ee9984f0a4e20c2f434dbc9b6fc466e49fbd1d13b7f15922184edc6a985c64b76675d46485263da1251b4ab0030df8cf0ae3a8c92c19ee9ebaf1e803288e209268b13e83127cc3a424fdece29afc03e2990026d710940018e61a2ad90ecc1f25f3e21f174697ad2bf3294888fe3902d240ab35f4dc68ce04401cac82b27ffecece9894c6e83cbb5f42bae62d5a62300afe225d68f54d2b57f70683b6ada55e70cc9802401c761832ab09b40af2a939564dc4ff7265ddac1feb099d22bd7fa4d2b776914be0305e1080f1b1c524b83c13b945f499c2ac043f4832371168853ebb17569eb6d53423447a2044471c36168f78b4145160a8842d4d5b9ce8868da533f6760db2a\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 07df55e096e6d4fcab3214546aec5cbb90fa6ec621ddbb3256692f8ee683e3e828aea4299c720bc4d2b8b63ea25d53afd91573a2ff9b88ce09176f7b8a73bb8b95cd35fadb4f68d916ab7448cd845b5f1af10809b9e7f359511afef75147b5f5681b346313846461b9133662ab0ec38175e1a9c767659d0dfd9c298d229550403991f74cff05cddb723e5c7edbe9d69bcc6053c1c15592a6be6297dcffac0b4d9d3a49e74a2042480ae831f4c62986635462b39e244a3758cd22dde75b023daa5856e0867892d57d8fd805cebd21fe0862278a63ff39a11e0450999d9d0b01c8f1a045c3474a059617ea21eefb46947a44625e4f017af73d20faa4bf0210c9663c18b203b02a2f0399552c31531cae621bb7717b5550a12fbb896f4c0e30e5fdf9c8e9a6763eb815bfaad226ca947f1da6ba84455986c33aae2ff741905bf1910eec450bb746cfda374cefd6489fa0854d4e4411f439f31ffd7cc0351af22eb0b3ad044636c241e3101265cd7b285d7b6faed192c8015d8a6090b175f1092797\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 353b37a0e4860de2b2142667988cb7dc30e29d86da33b4b27984aef1803db66edfe116f0ed7d13b98ca30f7e6cd0fb98b02bd86dcbd7988d2db68c611ffe67a11531d83c8216133aaf53f601631fe2f3c900788b568c9d4f6a72ea87ae99af32228638154319c5974ee1e804954dd1aea7a0d4cefbf4442bf69bc67ef002761ce7a5c67a3316f71b2317236866ec3c3e4ed0e902fc2153278cbdc0d2ad2c36a4ba2562f098e71f7fb6b06208bb64031bbe5f95c824c8da862324aec7fd436065986fb704ea44f4d543cc578da5f44ea0f3adcbafb28ea189ca16adfde1dc0f852954cd492289959707afa1423e3ceaf064f3dc3075ea81a51f85717fa7e8b38cf989a47c77a3b9649caaab04a2384befa92e4fd4d2de8b00699d6ffd87c6507cd3b9a81f162b94e60c30fc4a9e70d52406b4d75400457e4c9c8ad900e8fee456de975ff075c08ef378bdcba69e7b1719f5ad6d91434c74b1ee577f016da9229769ec9a3d3e91e7466663212b7bb51182fc245e914446c31810e444923196b972\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 98ff7ebb8489bcc3c8eafdd75225b744da3ac4bba8ccc6c0157e07294dd2687b50c9e24b206b4e1ba2f9326b8e30ac6561ad0a9642508b0b865dbd89d61930257ec26ffb7bb32ee6754edd09e610ce47a47db0ab0428c4c503daad78201a2006632a06e690d001f345dd4e9534bb64171c49fa2ea250f435475111b4a12460b40e74b14283af18fb4ba2af0c64a76455b2dc31c423817dcd50c0df0e55651bbfee48536f04f3d413ff1be6392dc9f3f3027ef20c58db18ef86bb4834705c1ca368afbf174575f480ec79b0df0efcf24a1651c1c9e260980dc5f6b0ab9bd98a248d9f8a6d2adf44fc501fdafb565ac47c227cd19f4a45618fad2686c765254f6f1fc92162460f7a9d32a91ce21257357988d86a25d6395be70c73c027b53edcb32e5ed58c36b9273495f027b7872c5a24ed39f5e6f07b1d0e21ec97ac3b17cafc4954c0184b01fd44c49fe3fa97698828df8b6f1e4ea27f3225b23263f1e72efaf9a6322e66826fe5b5d087119a5bfbda327cc7a610835230806c9233cbc966bb\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 103c3122f6ec082438b704ece029f2426e2667411cac998014bd2d8d1fee917ba75753b9907ff4fbc65bef274aa4f863834a0ce45f97458f77862c426ad786a418d8fa3358145bc46cb6cc4ae3de6879127efe9c6fb135edba0bf96f7f2c7cbf3cf8a23799fdfb22d46d18842d3e5eb9f17423a4edd39432323625ce5559a50a602cb80431abc162ad80a4e7323d59467a3b6c2dacf386c38cd82c22658c4f954f2bb5fb8d8c4fb5d3523639b7872ec4b2e431778b41ddc20fea06869f661e6aa2c1092af421f38f52555244e5585b42723179b85c222af2ccb35deb93e5a1fe065b862c857ca096dec9009a17608e421202c227fad739764b064583db1c71af9a018800ceaee556c9f7deff6522d14a4881430fa10273e43fdeb992adc825c1b4472e1f7c298f11dd9ad2c6ce4103509b6c7f591c10cddf306b36bfc63140fd65223cdfbb06af12577353467b6774be789b7c5dd59db10f38451e0582c159246ed9eb2d05285ef3db4980199f52a7893b40ded3e65275617037cf04d054c4bc\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = 0f626f9cc1d12cd197864bdbe12c188613385960d9ff9aad3c5b8d835e4a3eab6087bae290883b45796f436755583f017b2d1293fde26e9493b484cc6634a928d2630b0d76f3b2d26d9d81e9039fd187a1f94963d871280e451938c7223e83f34784e4fa1ef83b20b41975ff514e7624ba82da566b9fa30ddb6ebfca7130b705", + "54720b120d094c731636fc5d938b8adde4c7a49e822d633313fffbdd4ea7d4797713896ea2c213f99399ce8c76e916361f883e1b76760a45de8a08971a2d3741e57079df4c93dc2801077f44395b59a816e55b5c5438b0372d7ccde0623f424442befd7b8db2c05bda177a5e6b6544762a5591989fd2dc3670e0174e12dca4c83f2b5c327b5f3db53897895594980ad4a99a4d3a41e586b27f2c44f30ced8d1779fbefd86e965e7642d4d74efb94b3751cd658ba80f3a6cf90d014582b51f39f41be6c53b5475a0bc1340f583f9491b8c91c9d673ca326af5cf66943a88aa04c04750a83fe8f429ee45c355d9bed7bdcdf886b5b9a8dcd57a99728f005bf7ac5\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 568437f4510335fb3cc818d177747da061ae597dcf21e84216f3223c28438d1157df0db8ed06d429c73366a76beddf207dc03b5f6fb3a911a042280e1943319a1cf8c0041611d1633f3e4c53387baa750d94a0c1ddac1e416590ac57a037d40076e276891e70508a1ee7886fbb5c838e34b620e288093b9bafbcd2bbacd4ad365cbe57f3487467de7804239dbfb837d65defa8ab1023b79492c4301419eff396e561224abce40a58d0025d7aec67c941c788b585d7f47913d8bfa8449a4854af5a3806bd3ccf6c2336993500297491304685277822e66e2e56f624c8ebe6a5a675123f488540ffb1c81771a222c3dcdebbebfe180259de8045ae2ef2b44a3e17e27e2a58590dc709b3990c1a1607514693c95f97dee5d1cb527c28e708560eec57b07a6718b2b2ee782ed7490172d08ab71c043434b302ebf297766e8213d8efa959b05cce5e29b85267c3ff8f1850b107b7358e5d1ceb51edc2906c26911bc2fcb3004ddf68ed35cbb5505c4f6ba8ef36cfe7a37e53781e29b57073cd01602f\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 0a4d3aa01f80aff978c8dd9fb0e0a8605c8882a5e9936371ff9906f7feceb4ce5c981f41834c9ef6ae34afe6567bd1ccd499135a844e6dc1695b6a1fa7ac58f4ba73714fd3d4681b10e86302d271e44eb685146202daad33d0e3a7b25902a915fcd5c10e45677672581a7e12d7f51a4cbf6197ad013fa83d2b473238963e727af3cb1fe2054d85813a70c8139b795db3e514c9051671f993c9e5096a235665df2a7c0c435171c5012413ef95b2384cf910730ab52a5029b7f328d74f24bd33d41f431dccdc775717cd28ce611af50564da46a17ab2c0e64f5259e67b895631879a831bbdd02f97fdbafa37f92633b9a5925b2930e4060192e2e74832e1ecb280ed8e0aa0d85a025f32a38f9f43ac7fd2203db7424d14263576fe4cd4246949f4b225a42b1a282ce364d0dbc9b0a1119baa2d310a17de8b8e969a93e8a08c1f8a0f6c5baaa50ab9b0368dd9350561e492cec6188f56b0f53795d5303bb0eb6cbee53b09eeb63591314e52f62ed135c772219a9303abaec273bd62b1383471b128\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 0da333e509d78d8eccbedd7f9c40eda31131033bf765e895666b71f7efe54177117f10397ae3173e486dc475b9a894301d2670612824575fad6220d55b391b25af6d8779367f85d4302d56669251a08cf0b1a34b3ca7ae7f4740b63156042c040a5e0762df8677007ed3019cb2871064f884ba00b7f20b7aaf2fccd38e8d8c47555c9164a32bbb40458902fd8e086037190e25d57f810ae4ebcc42de13664f4f5c27c7068657f637256faf28f664dde1588f3a649f7bd5b60b9dfaceb29d6dac857fcb3b4bcf2b2c6d448c0fc1c710986825e3550a98312bf3d571ea2cb68e082cb0732d75a665128e56b6b0beaccd476030679cef73b3d07eb56774be3001c5ad89fc77f82743696f0505a6ae454199941d56f6002054ef651e6fade757531afc2bcab05397db8f322dd09d90d4a9a058bee0a16f73b1da816f86864259bea012e58ea7dbe6ffe5ef1c82fcfb97eea91adff47a0c755eae9f25fd5fd732e5bddda3519a6933ed696f81391350b9f3022c549cb6986ea16ee87175d0ba422bd6\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 8ed8750078ff5a635d6ddf42dac288d6d0268d080ab53d2eb859b8f11352a3a148eec6c6bf888cda29bd80e2708cb5ebded4041f8b01b63cdad1d4342a6cc1bffdf81a3bfc2ec3d123f7d7ce5d6d8d455b1f823bee0c0acf6a9da03d053a0ba314b2dea1d4ae4dad8eb73a4d493d2ce9ed23c3b2678cf764b9b500838b9eea9b551600afbb3cc03b348b4ebba2f6a41ee3e5db39ef2a652994bb0534c8efe2962027609ef4a56203ade8bccb50c7554a22ecda3b80d02653f4e9d0398ca300e9f4d92ec3ba4a1b15565af56cb357f7373331ee795a19d2eef0060eeeae2dbeaea9e283245236b939bf4626581672ec7d0630068250072e86ec9ad1b51f264384a543a52f2ce42471a1505169ba30b608bdab23b9ccaa710bdc3cfcd47864710651873f2411ae7c1abf65d36ef2a2401b8d974d60ba951a023beb7689c099b0816b831a6f2a5364a92331d3fd0dc416d734e0581347108a4ebcfdc9dae2ed7a8b0cd93d2cf5605a9259bed2219478dec3bd38767fd5aa88643f61cbbb69a234b0\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 4723279e6ffac2a5184ff10943720498c2352ea2e155fc802263e10b17801a030622f5f684adaea8eafc5087e971efda34a69420ceb4fcf3d6aa0c1d8ab3e9f009b9085518921cb684deb50517b57356caa3915d3d12348152b40a8a8693213d9a19c4499cfd42d09d4accd879f1bc2987cfad5278505f90cbd6b981500dadfda23582d2dc159bb9899ef0aa9f1154a4606a95be18a347aa1a77716fec9f84fcdd1b23a8b1d832de858d2f5ae88a5c32cda762d9619796f52a9959aaa86fe527d04e4bf7b19b184657450ca611c24b0c55577ca32b1dc6f6863e2ca5c27058d6803c3b13564dd416d1e9e6f695b4c51e74f2dc280ae3eb89bfbc8cf92d608bf3b2220b26fb60ed78c2d579255820e23eb15c3b3149d76f0ecccdb2dc7f0bea9a346fcaed75f6078bb9d7bcf9e677a15ba92ede667d60c3ad0e5d9097d4423bef4929a79d8bb953ca4dcd85fa1f6a65b578d31d3787402cf7b1d515cfab71fbc489b1f121643a9c048ca55364ce1e770c839311e9c3b8892612c829513d4167ae\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 3b40bd88f99c9e37b01472b6efc413c20eb223ec850fe20ef5e9d3d81f266b11225eaf207f3b712d792ee681b1d9d8657af67c995559c602b8f772da2794daccc93f9d7aa8cc50060928b078a1d934dd32f10d62aa492fc2a909ea6ad3dc10593fcbe42009e67dc7c83d7b42c2ed085c5a0b622bd1eaaba07065d8753ee99e323a18e4c31aac3a559268d2dc5ed7460c50accc9a70be784aed2bd4794d18a9a6fece6fa252bd0b5f6e285fc9c9f9f0190b8492f2209077f7215d26c31ebcdfdedffb4bdd1e407d7d2713d6439214d3077549ea5aee7f69ef52f26381bd822294ea22189a87a0aeea85e9b9a85f102c37d81074784ffca6ace2e44f8432bc7e2ce1babec1ab0bb8a17339d2017d254a39a0719957bb2c73f4ea67aadf8fbfac3958e845996caa02934b7064b4646c6368733b73289d5c1bef743893b3a5f570fa900b3328e076a4222e5fd56a9032c305231204a83cd021366b7bf2f1b1c55eb1cce8c11d5bf0804e8f6a29f601a89c3e92849c45fb013296c6658a9e09e6b8e3\n\n# tcId = 158\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 113568a33ad2fb84007606720847b90f48f852950d4b6b39eade1c7304bf701e37eb0944f767a67bdbdfacd9af781727de044509ad7d094fde06fea6d0c6990a834eddbb47c1bdcc8fe39545f0f660dbd50c7aa3ecfe72909fc32dc183309365bbe478175f1be144b1012ea3d849baaf4e6172dc747d220eea7a5ee63120ba8764ce75c8fc1104ed54813b945668da1e73a8c3a802be6ee7d91c3536a49e7c8a39c563bbe3753086a261d19ebe1d5124e815f0624aa16129776750e521928c6578d8ad24bb14f24fc3d94e335b9293b01a6a02d1b75b80d357bc93c1e69d6f8aa51aa781ebc0eef18b7437f7926af3cd86957050e9b759b681462fd2e49daae518a5fdb2c7ce38a6399593b44f4ef32f7bde907ecd7bdc68b761365856603ae781fc0000dfbac9ff956a71c94c32f902d470572feb513b8cce6afa1bcaef04ed4995fec70395976f33feb4a878d27996b422118681d8b51948ee497d8c3bf6ed53500913f985e2f3589fccccaadd81c6fc08423c5643f6ba3ec4bab2b51b82f6\n\n# tcId = 159\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = 6e94314f6bf2c893d1e8a847452457fbf88992840d7fdfb560d9867c1dc6cc49697681cf5f992d4f480105a0fe988b4ae3c2054321589efec66c2b00db7abe242c9864a8ab81d12bea0a72c8551055c354a2cc6613b40a223bf6c6130f705c2546856060cb7aaf893a155e1adc3a6031b11460865c682160d407d60af73f24b9173049a6cba4a00873e4d01b438426f05668b660cc2e7c5bda3029bfecf1c08b5f4142dc4bdb82eb3ba0dd87cd6f22812f60b81c7858420df8e8be6930d34df3543752a20e5b1327c5b31ade28e22f36e7dcdf353d343be41bd1a822af8db3346ea0994e7661f1df427a36984aa6194fb6cd2e0cfaf2b48d5f1f38c3d4caa191ea0147c84ed83e90c61659445873e3e8724827fc644f84a6d0b7aa8c3c8ccacb9536bd0763f8f13a25452c4499edcf1c1d83920ea7c537134847feefdfed0a035a712620b17d822a732dcbc307bc288f81a80b2563d5a64aecad38cc96c4fbf894aa5f8c186edba2844baac59362cba9e8a6a47b5b982f07afd4120cfee5423f\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 8235fd61e07cafed235d6bb2cf32a61c46cc64214c3713513156a143725c56389bbc055efce63391b9de9cf068ce8552aff3b10133df8b96a699e1c5f55532cbd8fd0b537f1701a5ca3cb8805b8b0fb4321645f9263eefc7f2e0f624adb5851b26d443fd9ea63a9777ead460d541794a3ed501785b7004617afc8f4a2fa25ef031c58accf42007d69f11d1ea5bc60a0ad7601ddfbd3886855965203d923f9fe55ba4659f619e93698d95ce6ba2381fb00b65b27afd9d78f7d2345e3de0288eda47426b3fb53274961431da5f276ef0b7b1e89bb892f608c1d868c9fff005349e1707d9a0b3db43c7cd6c58fe6010dbd2740e19bb516aaf6a7439552e76c9a4f47f70473c2ec46cb6984298f79732f1269886dc35aa9fdc24c53dfb85d86bd2f8d4014e08dbe20ed386251f1483c9731246572a5d7812d3187f3f9b035b9d435eaef7bc04b640f7de3bee24c0eaec19c83b62e77f27e07d747dd9d12b2c6c981d7c782fb946b4dc670c58aba775e691fc5c87029740d533ec8ef655f9dc07e062\n\n# tcId = 161\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig ", + "= 327ba5921f996b8a88b73aaab9e1c84a0277f7ff6b321a1146b074f9b90bb4728e652dd676fcc11ccf7c1ef1eceba019f60bc18b2ed1a6a5baeebe9c570bcc9875692e9c72fcdaf4cc60e095cd09e2070fbe074d74ec30cfc9d07876994478583f8f4066e05bd6c022f5328315b114ffe50809b0add2169d12e97dd426be82f258f39b348aae9eb1dbc978ab192a0b66f6844249a1025d87872bdf0ce704f585ba31e129c405e12de222696b48848e08cbedbff7cb6b5f206b26c9d0222edfce7bf4d8feb90ae7e88c65f95fed9d21f4820bbffc2b7e872b65658a2698480741aa4cfe9d99f40d6c956cb8d8c984071d2acb5116e23f7e89c2b2a770262aef9c2b5d606729baaf9ea42175907f34e7017fa587c8bc86e0383eda2bf3029914f54f70b8464562a446d845bcdfbb027a08265ab9d2db601f4b8dce68379de6c9af6a795a4dc53306e51ceab07bf26f3955513a6211bb86dac338b17f40bfbcf5eae1530b856c729bb930bac2d669d59b23320f5d8a39f116aef427ed6c67d3f087\n\n# tcId = 162\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = 4a0c5ee82e9057632d20711f56fca5b845f70fa0b167fe7bcd5aa374d5ccca74a40d92c525f7abef1aa29e7c3bef696a2481c8aac22f46a9b733a85fcfb38c765fb56e8b45224ed3ca6ddd0e8d8c35281fbe42c9fc635eb6534d5d42ddbb2556628ee942bea2c0d0fce65c2f4d3a51b8c0e0e972c9f2dd84796616b1ef48f4c32177a0fdbfb9bb2b1a7c80d4d3a75052b767f794c4251a40fbaa14ef8a700fa0b0d3d974e80ddb31d03daef42cf3ba1329211f60f84025f87db6eb67f794d3a31a6cfc3ff7a5edad3ebb20fd13891d0446a44c60b6bb2aae96eb8c85c7406113ed7c13ec6dae94266d1581f8af06c511f0c0d27d174c0dadb7784cc290102106182ab28c041a47204aedcc15419ec9189126f4c27bf700a0e7827a1ebc13a379d5a31366f72379f544513b846fa7d6597e48a325a1b5cf853483ab51288735eb55e7ede668fde6a73ce3f47a6eb17de256a77f0f62ec3f5f339b0e3ac1e9000de07d92ca5e119987198c7a8b450bb0afcbd4ca3a711f2507d989abfd08dd18fe\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 7319ccf9d0cd1548f31726f12c5f42f5c934d4ca8f87073c05f0cd028f5c7683b2f36d446261858dea9bb137ab65f9b29ef29a9c161ad244b67fe481810cb59999513dd9e8199eb3e5d17a5c431e8f4a3b8dc45bc13c7afe5108e8cdeb4608ad14767b1a6c3c9b2e53c229d0f6adfe28b249c196ec8906c1b326b05524c18405d8c1e26d035631bf22630e242ebb6c19a979552f6a7ad6dce9836306a7439d8d5deb8c5abf3238bdddf4cca7b3710e7fabc23abb6eb39c6476798efc2d95a8720dc034390831c87a19daf8c3c7df0bc0b07e931226502699d109f4bc8d2e3b880a9849c730f30522e818fbd71d3f438becf1aa055eed37ec3bc102be32eff7ec2af6b60404ad3cea825a4c2a46fe94193009eb940984d830008c92587e8d36733e5aece691d4a003a15b0fdb9026e3cc3f4b69d071789fa7392d0bf640c10b68facffc8656c4662fcd894b22da6c4e685c01130539018ee19b72c7964a200a06a7714baab1068ae55fa310b77c3b7890bb828831da3dc93ac7753e0bea12c5f0\n\n# tcId = 164\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 1ba3c4136fc31f48fea41a53aa08809c560738e63fe4c80a30b2976f4626d37e488048bc696276e8656ca071f7bd3aae45ce8911e3e49056d3ea54575aa93c58eeaf489039d7596f9e632a586aec5993de8939ed26b6363d5e888dd70c392b96d933b158570fd0917b76b46442964cd4e2692eb2d69b19e4c1c6e6b208a9a5ccfefada5e1ff54fe3fca74211ef01a6097dbae787a65062b00971eea93b8b3eed2a558ac75cfbde9698cca5d1484a2436fb7f54040ec0adf34299e66e3c5062179745618c2868092593dbc1e59236f7d55dd2ea1f5607cca607c00328d63d8e049beb97ee0f92a05927ed2639f68ec742774d6f69afc81e1d288c887f6c4eefb41529f846b49e0ac3c48871bfea4cc84cef08e08f2eb647146286bdca275621bffa048dc11012ed50ad9defc8107bf5344109548a02de126df0d694fb7be6a4db0f8444684e68eacad2af46658084fe9c4546b0df6917771bbfb05125ca4de8585c03584c916b458ad243692f7870b70e93c0cd031700451215df39cbbdf61aaa\n\n# tcId = 165\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = 91f445878bb1b9ff36555ea7342648119f303694c7ecac4e9aba585dc16b36fe7b3dbff9706e1e2c30e1daa8ffdf57214b05c795163d43f6368757ea73a30637a7a7e892499fe8e9510be9e6bcd790ba887e66c6e1132ec553d306d6aa2c4b5a743a1535bbaab8f3e6eff467ae7f403c566d99a598d877860b66f5afb5d468cb94b8ee89a0d67a1e163d2debf7d381c571d8c5c334ee34583856e0ab56dfde8682508eed44afcbeadd60022db7c1446adbcaf6d7fde9b31f028ddf4cf0455849d9d219bc04629989918577b7f460ca46464494479cb4b6bccfd9e1d1a2ee53f16210f5dcc7390cede73b04354bd5bdf6c2e7cd4d4c056c013c0383ca053b15d2412271c7a384901e791e3d5702a9929a540cfc11b80dcd980fa64916dad7aaa9d73048cbb864641398f33775fe50ca590ea490abc0419c78fe0309fc0334312835a0076f1cf34a47623d10704f22e3ef86f1a0989565da39d0d3a0859488e48f057230159787c9443ccc7e8ab93a53bae722613e6c55c1371403b9ca48761e90\n\n# tcId = 166\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 804c6e1a8afee9f6201560676b65502a9fd4e17d390821a79c18dd7036f4d7a6f4efdc8a20b9c573b4f1bda1c3c281634bc1c1583ffea03e5dd84a5d3a0728935970c37380b97f81c89a3a2316a909da68946a35f77427e70767d6ccdfcd3ada7e503336b4d9dd1d269c7530994663a4d93f9e5e3d3208dd8f4f2622a2d3bfdc2bc79badb2541e6c04b40f98b5d3a7caca89fb793ef78b5aa0d71c1cff54a6a7548cecb7ae6ebff52aa3f79eccc0fa60dceda2fea8598ef135bd3b1703e072e6b07b9495ee8a48af86d7ee9d6f00fc11fd0cd5af343cfd69eff9c08299baa364de7b999714ab9b31b40efb7980563a6873480d1512dadc7495c105915f18eda472cf4a524a3bc3f7a163c11aec456226615221b321b7dffbf23d4e1e281aaa51203c966d440d4edf3d0c26eb03c0f36486f252680d2b48df239b5cdb7d4c77331fe8d771b999be67bf00a50a0fb806bf9bdcb91d74b6ac9e124f73d696ccd9766df1a8f2911dd27608c50b2a4a0706071a81d26d7e9fc6fbca395fb7f190330b\n\n# tcId = 167\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 4544c2ea627bface1242eb30cd981b03220a44587112127ec34b3cec6625f785b89d5466154db2dd8ae2cfcd529508652d4b8d4c3738270411c3fec03dcaac18c363d8ac77778925bfdde9b079b53c1cfa5a952c95895843668fe8a9f34c60f62b1cca341b2cc2ecd7b1b74fa1b8165963cf94c3080f920ac969ff945236eb47062c1f616f1a70ed08439a0ce48f65b7238afce44f51ff22bd2f4954e6c9ca56406d8cbf3a463c41399d958633dd93ce4604d3cf99d7c46cb0b70a5c3abcc7fad329c6ede9a2e2f38accbd55bbbf0562a2539a6258e16a583961564229e21a1b125389b058778ba2ec5e2571c0bdc6ec2740ca4e2c961bac55963b3884132b9dad7c0b172ef8c5abf07ca6f4ee8101d49f9ff9b7c634a713c4f58e8c543e26134564ee6ca5f89e690a92b9c4c195182ebde4898e62ba3ed1471ea6497777658e0cf6e1c079e021695960bd946d04c5fdfba915b2798e79809459b6544f828ff3f7b841581082b8820832f15b39045611059e408424878ec882941195e1e05fc2\n\n# tcId = 168\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 6fa51fe3afa18272aa61fc9eb46e730dc62e41e1305962bfd52ffb1008373fb74127743707dc8a44cac5767bdadf5f9db8130369b2051017d27c4af5e00192d708a74f915128ab7b58bbaca311456cebc65a0b3281c67c13594ed75c478a3b943ba9f6a13e6e5eba3b313e9b48c052e1158e0579a61251694b378aa50d3c3881291758ee38328c6af167be0e13267cfc285d0e155655ef25f73f0e9008cfce46dcd35df1f11731816cc54f62ef292063c74eb13306253e341cb1095c1c87c0759b8362eda2f3b81bbb4254c91d6487fccb247516f5b2eaf075b9c1c8ec64a32541edab4f1d6d828f69762798bf141ab0e6c0a193ff85331ad051f8266392de58b949d3481b9681b2e0313bdbf723e69e9bcb033bca68f6727281b0f827266544023dc4b35a14d418dae7b0ab718326aa9008bed6df1b28fc76efb24ce0fe85a0ce44607f3679621819afef73051d49248f55778844731eb532e6cf476a0818ddad1f12f4a1c2a5950ac7c128c9f492013ed82e11da4b5fa3a281e2f35058bdb3\n\n# tcId = 169\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 35ac34aed37bedc84ba18695c867d9766905a967cf406b765801be0890c3d52aeb3070f053a407085209bcfb99f5f45860206fdffd3badec9a4e8f19ec2d3f8206e6a4e767c4b52cbd8e262e30c52529a4568692ab8738f03e5b1ee15b64b74c39a57de8882aa512c1eca1e6be516ffa67465aac6472ce80a69985a8f107546b0d9a6086976de8d8b30ca46a76a8620ab64e2504824568b4bd9a5ea8819b454aea310531bff8c0884c52c80543660f2b7dc78fa15d8fcbaa9204f6496df560d66996fe3f022f4cfa36b6d4e427282f840b23c4983819bfb19139512949928d1b1806759c94b6482e9d7e521c42b1775644b885e6e179c20fe78e02b97a01a91f38d61c17d5ca676cb38b3f4313f9fe8520844c1a965897df0f04542552b5a30f37a20fb149b1064007d91ae0ab1e74f1b29d9b612947c6a5b5a3ea7181d216c77bca94ee8aac070022a4cd3aca6b740eb520fdab50e07135f4d157eee0416283ffdeea746e5a625a0a67d321ff0e2ae3a5dd4adbb3f5639f0b412ab047a1b5e9\n\n# tcId = 170\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 1157d82d3d7d64537c3d71d45c613730c35a2270b75664aa03745bd1145c61030825fc82cebb47b32b483dfd11188dcbeefc33a5a23cd394c8fb496bd46fc37c27f3b2a614f93b83216bb0dc5ed2ab4825e8cbd6146ad90023aee3a17b74567a6219f703d4d298b53adda7efa6e90e94597654eb9f0bdf605402b7e2970ef87d5c9cc361607d40e7dc57df65a021599fddfc33417d58a8747772a4bb2a50b02921de042acc8a7bb86659c29999159f5e528b167f3fc68fb0d6c62738e37a5108e14e80169c4a7aefdc4a6d7e5f8e04c46a99c55c8f3041e01ee25e0ea55e6fb61ab094628bdaf434ca2002abe822d83dcb6199198e28a59", + "6e31ca9a1d652279c1f583b0f4d8f62f6d3572cccd7972415fbf3320d53eb402545e5c680094e1d43fddfff9a7c6fc54d99d5bbd89b43b01f495312853897a9293341c66321dde1586afc9a87dc0ee6b96e9522c8e0d3c0d26efc8b8a1e72e920dde2cecf9abb0fc262fe6ed3cc433d1902e668b456da663977b1036666b1efd7609d2fba6c5ff809\n\n# tcId = 171\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 13d10858e9dd83b88c6d06fda2b433637b55c611a9cffc566d10246e966eac2b404a7ebc5f1d382e1000bd07bcb3b47236eef93449cfce8902902dd1a963c69762420125ebd083dedadd93b6a4fe453492da1897f76f11cf161a8b7b54e70ea9fc5e4c8a3909a537eff2f1c693a86685f249be1e8b0a9db591a4d69502574fb161bc00746b1da9d0b697914a8f8032b45d61a3912b50228d6eacdbfaae960876c115034d8caebb4a6b426c3d8813a48eec5221feb6a11f9a4d426f5b142d099efdea1db072f7d776164080e2e42ea973c7b86215d980b1238f80fa0dd03187d1f42e4a6c1b5f99c57a83f0a7297e4f8df41a71637ddd82e6eec3750d226b43144b0595682fdfe29885f330f72ce3a4ac65cbf9abe8030776c224e1a77f818a625288a144ced77173f7d89686d5330831d0f49bb9121f8bd36476522011779a0dfb10dffdac7ef3a6ba5ca9a189a9d599c6dd9a0caa36ddf1a9260360f1d682f56b1bee11fe605dd46a22523d0cfeb6b410697a76aa1a96cbf9b397270eda3352\n\n# tcId = 172\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 73d83c49b2f9f21266520b5fc02405ab30fc11097f3531e5ed891897b2111f6980ff87dc9e71037616af49dc7b95ffde6a409694ea5091287d5fb89890286cf018a0355066485ba92ecae9c6197003b8b42178352988cff33de298d6365e0b726a0b6050d2fee7967e79fc8da939a9e6d24930ca674906bd7a5c95a625ca320f28aafca85367f20f8bf4493543bb8a7c7534b28fda975c66d7b40e3997b0145900751b329658ce5d4f5246e96155207b8399ad9e920157b4149a2138915bbf5c8e4aab38c113e1375c6c9bcbd53c2280eec2885b1c9a826f2c938f6d42eb478fc32d27933ef3e0239f50989603366c98999dcbe73301f26a55e2028bd721f1e765225fee1ec13d42106127c826a810b3a0747ae5f70256d6dbefd92843797c708b4b6998c34e57c72d7bee5a1a720df1417a1e50ec274cc4579456c7f72c59803058c6ac5f9d6e97f3ac67b19388fbe2565e421347faf326ea2ab98795025408899cefad1db9f6e9c59fbb6b4ce50034aa26f52374d83e350f765c52e2571126\n\n# tcId = 173\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 3f9364cc60c899ec9941174efd85467eaa08d1a61a9013431d28dda61586470415f36218d43ece41d4226e5b2ad325d31bf1c94872a6d491e342fa44cdd6bb14b6a9e33a72374d43cf8c671f1ab01df01be49b07478cf05eb936e551eae53f5bb3ec778116325faee9aaff2861ef3e9eaee8260c85ee1bd53c402df08477537cdc4d15fc577ce7bfe9ef3877dc3b2e27533654e18d62c02322b2d2c9f1dc65a552dfe4ec4f3e5fbcd474bdd9cf4b0ebeeff8adef924c2224265a7e31beffce81bc5e78a4ecf0d116ce73de9844dc025fde2d83db233ee965b08616fefb229a9ab4688d726177082ee11f745a68bd9f73f68f0049b4fd1d6eb6409a465b11ffc9aa9282724a9501e21e00e5d8e182ef35e8d60cf775c852969ef01df5a00455826d6811b4d71f45ad09709ff21ecd7d0162dee3332b0ef5af75a89d50a04fb0637fa89795c883bb156635231b11387b6393940bcddf0dee2511656d019bfc7752ffac5cc7a715b41526418f031e29721d8defedd0df3c360aae5f0615cc2fbf71\n\n# tcId = 174\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = 5531e7e612176c77975c1af25bded7a9dd232fcd51f3a8a447d4716e91161bfb7997ae973d20a5e555c84950757ca7709d840f0954be1c42b19a7d34178136872828b41e57d3b33b98fa61aa31c90d6bae10bf0a9c74b41900cb6b90cf88158018043c7ab996399904c212ce2b15f096657a24f697f27acd04f3997880a4a021b500a64b6894493130db373904f736de03abe71bb675ddde97885f0c73a770ccfdb8b25b5bfea0fbf5c98d6bf19d3cd2247c11b02cd0bec4476b9da97fe1d4a684158ae235274a1a93a03780b4929b8549128d8cba3af070978688dca296d81facce004d0e15f787c617008ffe3dc145d11d985a264f3ba2caf7a7f5a3bf99eac806af06611e106f2daa06ec6da6b72d8047c454c83ae79bfc44b8053d4be351b46e73cef389a9ecfd82881ce691a87972b3f7eb01881ab5670d6190cfef9e034fba0adb4015835f480d6464a07aeadb0fac199e4524dc6ee850c8aa2799e24128d00b402963549620313b87518a9d003f2babe91ffce92897f3999677553d97\n\n# tcId = 175\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = 530df212c308fa97d4e8539a62894771f63de58fb1ef7ff423b42991964f147de2daefadd9414a40059bb3f7b683ba887ccd96db3b9e887b99132a21ef8fb6c2032fc31fcec6b5c9c1de10624438d86e7edaca6baf4a9daae468bc27d985d8cb9f554f05769ca74886a72a42c51cd45ec2b2b6002ee01e52572aa1b17660ecab8c04119f3e5fee56fb54b0367b135d39a905594e3a43e91f24fbd178323d69839bfa2cfffdb7982d6da2f01e60974d905ce75164cb355c43d0057eebccc4451de40b923aa69e0d8339d5ca56e95c0e2e3e7942bf1c53ad40686950a7a7d266a716edace18b30675aa0d531e9c380cc479601136b37e4c902e6cd63b77a29d7d2cee1c044dc347a21043f3b10efdf48b3af769c399993f9de432941fab419b0883a8c5b137d00c5fd827aa803970b207a9ad28c0ea283a2f7c08d273daedd3e73b2dcbd154341a1b0607dc9208a4e0780a4575a1ca541b647033d6947386032b4f2b1ef3dda52fda5460f9e145beedce6d0a030825de385b997b3a61b5a8c8b72\n\n# tcId = 176\n# appending null value to null\nmsg = 313233343030\nresult = invalid\nsig = 36bed7e07cc416a7d5ac19b50b56eccddcb530d6739a9fb7aa0ea151fccf65ce872fd48a1d90c816e2b9887276ba07e21d95a8904c300602d5450d6ee996e8ce930fc11015563f6e5e5d8b6066b2cdfc94e5964311d9c7aeb76520cc19c1ec5182f942f93f22e1d1f5eed5572f3f0f90bb7b33f91070d4afc23ee49b36060e46b29a1b7a536809c5578a13ebbc04ab52019a017f946521770fc23be1f3adb1e84ba9abcafd44892d396914f51fa4a7acc0cee3f5d064571a654cbfe1dfd17d2bf3c64875abb62468f2a9b56253e478693a11d0e4e884457090eb3d9c8cb79c83eb64adab19023a6f6e003a74142fabb5b984a92695ecf0df02538c6d5da9fc0753ec36d8a02fbfaee8de74b297b8ecf08a28ddef5531f21fa9cdfb0791f809db1b0cf6cde4a538eaae02a6a459c76cb118d0b6bc06f401e2acdbf3e6baf7ff7b5d34b9113ebed0156fd639d80e51c7b41615096e4f954a300ad7ac98f6d3f1a5d45fd567a33d086532c7e56b55a89785f0eea0c28511d76effabb56e2b96f5d1\n\n# tcId = 177\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = 94d4378d1c8c763f825fbb1d1a24fb4c62e923483a9728abd4e12519ad2602d3b676987e9ebd3989531f6306d963300f91a0c4498c16afc2dc82a8a97ec08e7c11861a6cd6f037ee90a967612996b78a738ca9ec51f853da12c53c78879afa15ec2e79944cdd036929ca7e6ed28ee9f2f556c1341f3002c9b621e3a5bd4f14965ebbac93979999934dcc7e4d30bbef77b80d7b4abbc0bfa027dfff28a8d16ccb9c47cd9298612a827d060de18c92a18fd92ba4ce86fa360df20b801c93c41e753bcbe3d00341a3cb602d94494bc44a86d6cd970492936d5cbe8c03689cefff2e91955489505ad98617ecd6b440b02167a98357fc4e4c3b5d70ad710fabfe91f244f36a488046097d339598da00c84e7cebf24a82f7bb85404d47b55b91eb1fcf4920aa93d43ca6050bfb2f8cee8625e523f3c620d1d3a85651ba5d0fcfa833dee73540f88b44c1eaddbbeb119ca4de7b163210f0a85591577e7488ff35a0dd52c752055a551d517b7afee521edf4ff60fb00b305fafb6ea47b0084abee01acbc\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 6570b72bc1a3047758f7aff566764bfe3d4a7ae9c6a9ce4778ac3fc05dbc2fa0e3b1713a6fb93dc4d3ff1a8c305652c3478403a995f90065bd48bf3cc82e79382d22e62cf328a92d5191e0bbed42f3f852c984889a908784bf172f46c7f40cee2970429db36229199d2bcc28796628896eb75d86069419c019638cf21defdccd00443232f3ea44edaaa55b044763302f52e92c23ed715f40f7f2ec049719b74670b8b59cb44387acf01bd406e9806f3460bec87e5cc55c5401a3410dfcb0d9dacba84f841239d3416e1234cfbf81f5e88212748c60f5759ab93430b17e92bc8e6d80b5e892c7694f119c285348e77855affa6e24f9bc16a8da2aa245069cc18a3901201c881eb8bd805b49e8720efb24fc0746239b0e4e4521db23ce597cf3b3d7372253214542bc4c40eb5fe1a90b2cf8c75ded44b172e79ea61abdcccd9f27829c91c29d574e828d416e5261cd2d7de42e50ca351597f72795a8bd4fc0eb721437fc848b363fa9d3bff447879f1ddd1c1927d679b0215794c9256b546e1685\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 1bbe8fb3a0c107374a27858866d3c9e18861908439f631d6aa55e1f7eb8a62945284efa9f0f8390f7dbb662672b7b447a0bd5abe5aa170686288045227e2d036cb9361b9847516181b1b84dfb59adfb318af3796f54bce608bf9063898dc9ef5c5b806aaf9d1f49d093c3c1ac3a1a8adeb3cbfdc2a88e9a8b657f7a0cd3668f94a68eb6d89c016793777af6d046e9e7a4c51a8401a0f0b043f1b9aa5bcf3b64b25388c0a41f99c0cc15028ba58d9f8c137db4280213e4d4d4126d71e9ca2da4d0c56d215bf1b12efd03e3063b30ebc994b7a47c0101bb5ace808a5a9f0e595abec4f2a5ec8040c35728e6730a3ae79737f495ea9aefa232cd86a2fb728987f11c97ff47d6e65a155e0754d57161a6d427e54e6823e72f368ef02e0af0b38b893035acc60cb9ad8da2da0aedb61d554298c2d7fa855746f6c85cec85e61a287f2fa1ae382e6ebdf5e9574fbbec9be671c96ced4d8547e9b4fa3999dcccb0985b18e9094225a713632883530611bc854a92877e4237233ac8466394bd65145f232\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 3a98d7d9fab0680448b1386441fb373c0768bb59fd72484c0038e3e0448ee6d1ae727a1cea451e881f204d429e6bff49b52ea3e16a71c7265ead31d70c4282975c854f7a08f205aaf0cee4040a", + "13a2b4cae71caf16b1f9a307ae029bde33a4659cc92fa632f9fb724717d0a0c126ea256978255358b6c3bd975d0454b974cba17f6455dd240604866c0b45d06b1ec1ea8d590c481dbb9e2806e556d4fb5e40f4f37641570cc2a9de98b26f0346b6fd5dc39e076aa0d836b0a3fe2824ca44e959215468d5ae09ddc8f48b4f1bf8a4eec683ba9d45863b9a544cc0d535b62451822fac336462c67ed0bfef1619d516af66fb147f0061d18b9a8f6790ef30274ab7fefb9ed89d4f2ca6d30c6c1c7fb990149f16af8163d0eba3e59ce59fc1a822a38cb1802d2be4af05c7e452f0674cd1409bca1abd9636ce54b98f1fc4ad22a482cf1e50e9609ae09741d6fd0b1ffec9b8782cbfcb706c41dfd52fd6c600330dc1cc42a4b86e0a85f26e0a269ab8fa76e3bf2fa79f4fd02e5a471961f67c3a7a94\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 33538b31ce7c5e24d7dc087d73265c61c312399e8920b8fdf521d3dfc590657f00fdfcadca3fd53d21314e7cc35129cd6e170c06b8dcc25476a47892a689ed5c8afbddf4191b9cd557d4cd29f59333201def168fbbf00253a942eb6c5e543ce01fe3c4a1940edc138cb95e249a32ab7b90fd1d98343d3ddf6062ded626f8b049ffc73a9f69264baa0ebb0b7e8fea0470ed08c2d4140c2d492eeb12e4749a7581835cd81306294737351ea302c9069132d19b0f7eb280760941cb59ead82e665bb138faf7093f45090ebf6beb5754293a1e4f0feaecc7678d5fd56413bdfd7014938f3031a912cbc57fa3211b02ad34139fd9c11f6fc27a8b6ae0ba22f64d4c9e2dc1ad991e3d89f5978d9c87d1fb052a68dfbc0b090abd1b31915ee07a0a481a9437dfc8163f84586d0f3cc3879fb6b4a4203bb44d84f5f5859f5b294bbdadf34eb2343de2d16e7aa005bee959beaa38482b6c0d0f7817f4a556f377cb2b388f609c377921d5e20f08d0fbeadb1a3e63a11fea5b7b7531c94c152a083221d238\n\n# tcId = 182\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 206a841a7c9c2b0af1149a40a5ea82658730ac50bcd20bdd0762afb9e4e5debb745e9943153c8cf4ee1fc0e22c730a66ddcd52204cbe83c05149ccbb6fc60b9d641168af9a78e6d741a0a405731acd459a45b942581632111f9f447a27f1787cba1b3fac01f66e3c6756f63ffc18d550313f579d47ba847e9b3bf5a1f4a138697b938c04e547d22d3343d9ed1b2143f85109ad5a08b835802732a796f1f15698e46b47658648554706521252d265eb353231695eef004b913ba0ce9887eaeaae752a3b7d7db70a97c610c3e212c5336e2e865895291a70a1efb2a593b76b60950727dca1330d1215775f41f5614a094daf94c9a6c5ff04f699cdccc48b6d7953fde80621c796285bfcc56d1cb7ce0d14e555083ffed66d3abef9a9c2ce76c22cc57ca08793c6080cf0b74c21443c5d7338b5be15204b45628844f68b1ec3629e53f55137ff9a0ec9827bf41ef935c6e6cf67b2d5074a8fec929ab4b1b3663e6e755e748988e9d4a5310d3055c3269ad74fbe78354ecf97bdd404db93e8a42d7f\n\n# tcId = 183\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 72434ecd0f59044f64be219f197dd2ab79c91b2bf5d3ced002bcffdb28e3c59ae04f4d87bd9a439f406a21174fcc5b75f2565bee2f36a83e5b89e22ce6e6e26e68cef6c6e7973e27502c3091e57448015f148f0847a805a33be8322127383f0a869d21aed276e9863ce3128ea240b63b6caea2df217644fbee930add2d0145d21f2f799a317c123aaedb1d71f40ade4e76637c9112c4e8f327bb2f6eb050078c9b802d3a2e18defe0c32f436021a6a894b03de5f68d6a677ca57bca8845385d5bda6b0f320325043008fb8be25c97a8499e6545dc99f27d7e2ea222541ae91941dfe812a8ed73f848b692aaba2317dc2eb84900605e0b8328c9e47170c4bb6a90fcbc0ddfe3314677ed4255b6582048846d2a8a738c4e6e60f3619ae722619df0f940660e8988abbc3fd6852a8f6b6b947cccd1cdddbcc676b35eedc5619aba1bf8adb0a74f2fabb31f4affe1555be5ef478f6c5c3936000c575acbd3bf6bdc1faf69276b3753e76331ff6130eb50fa9552c87d7ae047a2fc28a3e211d308765\n\n# tcId = 184\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 91fb96a01453a15bd07987b6a072a04c3a1f71de0949acdf89883a749fa967d5721d6962f4b313c5d6036dd2c9db051fb77d91d9e72996dc040b97f513eb256677c554ef56a847d5e3cd9943bfbf749b67166c52bfa2add4c399d662d38bb6ecb812bf3052f676edbfe084b62823a1631a0d22f992ae73b92b0e116ccc45cfe4bf2d913ca60fc2224480d32dfe75cb50ef14561ba2d425988dd504ccf632cff1276aa592ebcf725ea61b1af4b7f2fe53bbcbe014e19711dbbe7e42df0c73e93480e37d8d42d5e605370116b13012921f5f14cc1dfbb97e06f7eff77fbf4e5d127239d8b44cc907033cbaf3881cca67eb1a2299c6e586c51142001f475c3179ee1e009867bfe61614089a060d8f9d611e519eed0149d8376f65ce3f0b038ff338e6ccb247ce0cd2cd7dd24d3d5a48c3628523e1f7edfcf46102360aa00460dc828113f46e2399b2ef77f86d2601cb4eb4c2a6345422ae40e8fba2a14d00452517c6fee431682438962a02e424db0144987ae403eda88c5ab9e0654afdd13ab1e8\n\n# tcId = 185\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = 033c248bbc3ff5231e75cb44bff8b3225d20f0252ee528ff24be672328fe66f413a4ff0259b3a22b6ca788b6f4bcb4315ac99f59434e097ef066c0e5821cac2ce1f50e4510d3709bd030a613ef05a818414c9a5580d51fd4e6d5b4b7b146f808af2fed1ea5f23c12a370e526fb1133f06f3acc4d7f1ae5891eed82dcfce4dc46ad947858a228d6e47cbb658176032290ad7b4cc76d219c41a358d64e1989faa294cd6f11b5f9d94fafe133b725cbe482e82ec6594313e0ae9b6baab9733e4ee01a88093ed171bbb8384780d1c26930d409bc98c36989a9db93fdaed7852ffc003e981c6969e3a21f1c1ec80552f3ddfd76f16ef8b04533799a298690c6a76a2e034119faa92d458089df4df5cfc3e5a2ac5fb7496835a4dce6b8522ccf5049e4d294216cc24392ad0b6bc7250f7d319c1352f58123377fc7ff9bd34d2e2f4f504fc272c9ebc41d11f83abe60495daa36c0ce6c2a26b985cb1f30873f7b9d6566bfe6963dc2154c128eee636a815e69ef32d75105f91f1597ffce0fb34b2b89e7\n\n# tcId = 186\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 6e64189255c0d7b2a93f30bf771d9c0850f57a173f93f5dafcd599b801b997eba3f76e4f1d78d478c79adfe14ca8191aeadd81848aa769d65b50bc96f3e18654c2096e16eeac3b0246c8d40ce09acbeffcd5edd87815dbac35ec555925f33766a40f330675fee4a68b8b8f54d3550dd0e6a60d3fc9f971685ad1dcff49b17bf7a933a13153dc4b154ff5f56e1e72c8775366b6435b175ba420e6fd09dddb6466f6e87ce2075b2fcd75c99e4df5f2a854d9afb60a38df49452a20f46bc604f92af5c9f155884e3ac1b2319ddd4525c118b32130b7dab2fc18967181a4d5879dbee8b9094ce02683f30d44e5756420137037df7dc4e21efe99721b013098fd895a3593ee8661855644bb8729c36aeb16f230c4e8fb0ac4587e2392a26be95ddc57b19705018771a6160206dce2e6feb02b298dea43e732167cbf7bc96a5bffaf27e3a3b04eb07a77ef482d77b87e028f6cd0be364d9cd606f73ccb0a6ee19d927ee221f3c724e7a3d80c8a715617aa06db021a4e1b956f17e29b462a6daa6bde9f\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 55b771a10f9d7f1dae6650f5a5898c7132e288e98e052732780be3a22bc5a06f00af59831aadebbe5dad715b1e2c80ca27160a126b372c6a02fbc597c9b132d147e5ac72b0ba81cfda442921bb65bc31b55f2cc9eb5ef9fa04553cf814155be4944138a79d053f0adcc8cc2fa0fe5a97ea6129593ffd1d3364cdc1da0d3a8ca2aeeeb96f4cd529919d155b09b35b6ef30790fd928dd623a3143091ae74b298d9e67135939194d6cdeca366f6f17b202ae5a9b291b810a165cfa6581aa42aa49138a8548267cd20bea61d90b208cd4549d9b1f4486ef933fa276fc71eadf7a0c332bd0ffb2c7a7a41239cdd2451b45a5f74db7177cc127edb752a8d38f543b0632bf8e92dc0aff15ce036ac68722e3013f219b6a3fb8b9f9d75e0ea71fd4178aafe16ba575e5fb7bef9d06f294658246b53314a0d05c5dfb36977a8d3f37a7095ad9cbf50bf4d45d7e8291faa72eeb83db4acbc12cf1c9abbe9108b4ab97f2313a9d0767786a13a0f8611c43627e23d0d180c10207db9d366165d5d6a6c183353\n\n# tcId = 188\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 6551feb2b444f0fac650da3445c113ff927c26a1d4c8ef0f4b150b335635ec50ff1844f469ad6b3da8828705e0abb44270f86e92472b21170ee6e68dc49a46d1bd242c0e15974a863b3fa0f0489391e8791164347c56b87bf0258bd1fe04f6f11d14f7cafc1e50568b871a2bda206dde850f6edd46cfc484bb26e4bc8c9b7e5b5aa694ddf0dc217a8b85f8371e6e00cabda39b22fdef4fc6a7531c18bf03943b3af40f5d49ce4c45488f24a564eaabc4a54fabf3bc4848b309de0f5452415607c431805785d8d440a4d5b36f71d64c49c966001978159e60ad48199c45ab88333e329b65d5780be2650875ec0cca3f31463568e840e5420e387cb1788c614fb95e0392a97c0392d79594155ed58d45546d6ab7ed08be75f959d5232bcf08e77403185dbf5eb9398ce8b9a4fe3535ecb2e54b15965b9cabc427164ab23e284bb72d4f7d12b7b66335686ba988a26aa12617a267ede320e75c8b399a8dca3338613aac83f99bfed281523712fbe32a7046b85af27163e14193ece3bbef93361ed3\n\n# tcId = 189\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 16c1b7c4625d3ab8b9a7595bda96e1bb7c70dd7b43bc143aab817524d3fcf281ae9cd5df2c1e1949d6a7d4fede269b6308614c1ecad6db2ee71250deb38a955c07e76f70272a261bfb2b31ba3155b38cd3705bfddd2148f2e3e0976760c4f0051a1f251aec74942dff3fe78bdc36e9c8d41457f42903bded23e05683045c131cdd4e343831a2a1d2e418355e2028d2b3ec94688d3acd7e3a5ef4c0e53f4d722acd328cb9c3ca3f0497f6f5c54711eec8693c67fe9c235e45ea9f27b93901f7ae98e77edc295a697d8a17a91b954ea910900069b43908024b35b7aba822e3ca57af412916f1a5df213e47608e65d2d903ef762755ae60c241b1c36bfeeac202b8a35086dd961b06534ccc5a2a4f23a39131a915ee1d1caf8c5b50834b224cfef8ba8b752b7e030b5e955361a463a6b908f8c8d0cc513af925696614624d12c4eba4ad72b2a7727b5a2928b83", + "35fe870bb17adf089d30116d7c9f0a6cbdfb53e5f5ab7f056af622ca5e77b797118f7add95a7115049e4ac31ef5d7858edf5186c4\n\n# tcId = 190\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 440d17b009f689abd5301d2728eb6238342ae5b63134681b24d61c18443209a18d8a9ff32ecfd231e77783a00be559152fe28807c0c32c8ef1287be6bd0fc3e70d0fb8741bbe2d30bc39a898569b845b1acbeb1688c82a34732f278257fae502db21238a504dc1157cc3298c6bf6137d6700ca6ce03e5a1dc7293271d43f5863e024595e63e2b98eecf3ed14afc2bd08bcabe0fb882d9df837f274077e79d08e1a46326cf5f3b4806945405c84a7e7bea28b6e84305058832c189039038b5e2ad54df21139e47acabd93cc53e91a8e4988a633a63fb8a7db32cc6580acf8467934969cb64fffe3da2744e7518140cbfb1af3f3183be3fcc951d79173d40bec9b5987cf9ada82a48c7734073fdd15296ed07fcf50b270e3f38cf227300138f742c00e02e8d636d6bc46c15eeb631ae0b25f649a1ba9a19a8d35ef313c769aee5e996526bb6a1d205998d366ede6abea912dcf8f39349a0cd0e235aa24d9a4f71b9de18db66d89c8f7a53485343e8ddef174653a454a3c856a3436e2f9872aa25f\n\n# tcId = 191\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 746e41c7844904f729d879917081761ea0020aea2372ee8568f6ccd91e5efc532f9cb12f08da3b98877f2b93851ad627db7411429367f9a7af703a16ba34f2689518f468581879bbcd311c171c781f0f75fe522d038ae5bedbba455ef8bf92d92f53f3d8bb06b6a9fd185d917d01a327224978ee898ab1c0af1105c65d27265b60912f84a3dab3720ed229869523abd565ceec086ddcd48a2404471e70f22e214b80c062f0d2a43c3d0f8c0fa12e449ca1b2174ed1d6f0e7940f1ec35cc74fd0545db764bcccac5483720d25acda5c3bcb9c99f4b60e7717836b8d3520c3a8e7db48fb68571dc9e304b3a3914eb2407c8cf3e8f17bb38495f3397ec850fef614117440aebfedfc40515abb112bccf09fa4b38301ddca73892f4f780c574bd52a913ddb74fb9f56dec6c54e0c8e910eaa95f2f1a9172cf673ffac01c2cc3572b80e93a325373c1770cf69c09fced6be76193c83c740f5e4cd468fc20ba9ba145939e052d2a58b3bcac19541e2f0bc408a2ed547117db7aa6ac3522c6409d8e06f\n\n# tcId = 192\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4468ae2dafefe85b8a52539cc8c9847d94e01161e01d377f6ea384bb1799ffd763e4a4210a39e937993311b355850a895286b47b26c251997c9a9f18964e793eff80fc652fbfb7ce1f7f052b39323970c4cf427d32a07708f3859f9d101c4c75899a145da0590da8f07738043e4264e0d3d3e3a2987636018823647e4dd7ec3bc3cf7d65fbfafe365859e6a5fd907d37e0db2345e67ec00d7dc0b75defcf88f50603ab55b1e99e0f788cded4751bb49522dfb4f9eee8b2bea813ac50be538916ce07e3513b1fbbeb9b2f83c4c2e004d42a49d31fe63dc9da6b55e9dd60d705fa367d2cea478466a9257231a53940164d4dcba5dffc17dff7ff023e8a95da9e9ae126cb894a06e0341aa3c3c83a52d83065bd18c36a9edf3d4410f8dfd46cefca3db9b64d6020f9b964c6e4d9b5630b465396790525e55d33b6bdecdb7ff4a085516dda3e5c0fa3a7bb57252f4c79fd56ffb350669ecf1075112c5e90268bd773ab912e1dedf36a859c415f774aafab370883981d3e54ce780097b0797403d610\n\n# tcId = 193\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 77d8cec49108b8a6ba4315c2947dac12d8143248447b443d3c189267727ead92e054f8dc591df862eda32e447fbebaf5354f67dac043fbb254331481afb6c4da45b233e4a5449da2ba07b993ecd07de6e5c21f8a2dc8c06a6222eec1cb82043e23ed72bbd9995379672a3a6d700870db6b7e33c459f073b92bbc052935fa967ab7caa04eeea6461db6ddd7cc061d38d8db9de581151d8b38c25e8dd79f8a4e2cd147412bbe90452bcad114a7cbe8d6b6130659aa38be2feed6c96efb1a3b8231d2f8b290356e77d3fcf9230cd75a87a84479a34ddde67a826f09b41340f1372a5dc07acaa0c7db898d49251a95c88731eb93cb35423c0715713e248ca2c7a850a2bbc7816d7bf3d82bab216189dc15d9413e23d77a9fdd11ce16d48f3ffb2643cd611ce15389966656251e5adb08033baca6e69b289f4a03cf88ff493e648785210b30484ff9125d25217348af874cb97b23c8d07258f95997e14f31f646f70d2f94f00db8e2958506cdd8403f110602e92ba7bb0ed0cf8be74ecdc85a131982\n\n# tcId = 194\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4ab6b85a2c2b64135217709b6ef5d267dc8e9f61e65c539fc92993b84900f9f2e6a035592751f5ca54001174c12599466ffbcf7f86b4e7e39a94214a8b84bb2baabedce3f526103e3e951728b35312a4a617a031167acb20e28f2bb7c175076f8556dc5b37e8bdcdb0320ef434821ab5f4b2a312342c7a64cd0fef8981b52d99dc7af0f27e506c7e099eca75109204394d5b50d26ae3770a1416aa73003461a750fb189acb23e5a6802d098f8b33c1397c44d6a4f3c0e6ef4956dbd285868d3f2fcca8280ff7a9afbe4927f444a394e0d62c3bb8e255396f22d14a2148732d80b6fae6de4ee6e4747764dfeb4c60da9a7b2828ffcaa670a136bb22ffdf997e1c8ba1f5a372facfb467d7e7378a64c38f447d45edba202e233f8ee06ba56e7c8a151c4c4b8dafe541de59a7b530a35bbae4cf7a885cd6ec1f2ee6d14930ec20b53893eb4457ec36df22a5ad015300d4d1034286471f72a05e395598f3b09c390e0a0594b7d36b4d9c1758ce3d2832ab64db2a4ca65211dc4e5b4e69b72b21b5e9\n\n# tcId = 195\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 131d9d72773f3a6b9026f55edb23b348ccb4e34f6735ccc204592a69ff19663551d73d340cdebe9f1d26ca192ac58764b02989cea4e8253863a6d9376a49a2dd6ab53dceb678c3ea74e7f0b4ff97563dc168e2020bde4a56c21c988f88e379fe647b3a39651c1c561ba444eeb677d7130f9b9d5a9a4cd9b09fc879c2539f2c423bd15458ef32bb1c71d5b518a20dd50f4a9acec57648bebfc4df7964fb6d60d0d37116d594864be9f826ca53533b77317090a3bd1024bb7a39ca67f43a96f5e52aa5d73d69288ca3f2de548641579f54e484aba2e4676d91ce01a50a90996acdd32c2124a3cea110cadfa46338374c87fb52460087a9caea824fb83673796e28e2d00d5785b1e820b8d35ca1ad0523b724a310b606a4bfa6515a2b7af231dc203308e9a9d0a39bc10c2be68651860344661a73cd1e81b61cc3b39b2035c15f6feaf4d6821a38898e3e920f0e707ba72a20213d86b2642873dbc30ada5b5cfc30895f1cab0393383f61a7aac1e442f3a5ebd01d16d5c4b745e56b87b19522f649\n\n# tcId = 196\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = 09cc7ed5357f2eb7449514215b7d4bc94c3d0e3b9403a138683444f12a24fb4f1bffda8037602b19053727c2f1422f540d5c6c2ee0c0205a3e8d19e4ee968640ba857c04cebcfdcf7538e3a11b32226f57714ef6ac47045e94026748fdf05ee975cf8b47d790121a0bef0e86a2fc9e7444f28ebf54e2cc06f7adb7c14c1077f99f434b4f4b23d0e308c3af0809393639f40435b190175fab570b6acda0b2b94dd331cf75edd594aa7d49836620a720cf715643a73704f1f5d7136b3072d6e9058cae72c0cd3fe15394b4438731c37e6fe78971d8280630679131657b64edd132910aa1263ea2bbca36eddb34de0b4d9a42258c6e2727b71a41c28bdc07c3e367f194f0418a4fc7b5ff7e531db5f0e4e5dcd9ba332c0fb6c4fa73e10ada4840f7aa2c310856e2a453ed595e9b7bb0e0c729375eb0607694c4d44ac2203f797f701a13c0a4be1fbf5a90c6c680a78d871e3637637200e4d38ef6cf2c2db5c2a5e55c1105637bd97831c9f39e9ded20be2f381b96157decfa0e648696e5241f3794\n\n# tcId = 197\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 8889ba3a0556d7d65a08bedcf40c2862409cf65c5deb821b7d12e6d1961859b8ac91177b7d50ff8168cf80fe88266e574c6fd719980705bd7c488d768e15d2f871f13904ae2280e21c7fe65da19988f2f62d84c87a32ada15fa3a0591e8f7bac5da67e7339966c94c0d864e670cea00c810a01ed78c0552562b37c11a04427c100cda4c6511f2986e577814e48ff565d3f8370e79321e612c371fd4e1b9cf93d53636844fc6c392e547f5c309fa3b89cf62d1912f0774c82c567989bc14399d1fa0b1d87d67ef15ae9c4d577f78c913f58c48cd28dab95d6358b49410926816242edbbca97dfe9fa9f44649fe02fc8c620fe86767708a1619606ab6c873e970c9bba1bb8083a71e2888a7a4917ae8767b3051ce324c8babbca7efa4509f8186264976109c3b0b2b453e1bb1b7468567be2844de295098a8d849602c0261f6c3284613517f79e84008de8ebc151b98a9c19a3833a8c322cd021af09422e09938db0b09cddad47db0beeccba5ea56d2b033e2d90e327359f056d22692cb7aeb2c6\n\n# tcId = 198\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 252594c934192b66a349e58332c9ff111026c512a439f886df1859f327d875836f529e9c462a95d5b0e8ee6b407ed6f7a7512b70e42612c1479e856388da8dcace91780be2f56da99c4a76251f86f2efe2e214404ccfbe26728b6766f9a28f8787ae318d3fed0fa585b68bd76ab238e28739ef19afab1247ed1bb119fa50f1fcce4bb946047510bc683ae499730cf316eab96f14d654ab311786121ff7f2ac09ce146b98ec0302775c0b9f06be0240b28695894f53ec1a92ed985d5c6cd55d9ca5d64891842673d2dbe8f4d6a678da4929eca8450887884229a3edab3305b691f242da7b7043f0d759d6c36361664e4566aa419e26944195ab8746a05d56385943d971a1ebad627c2a9e6c429253a1142abcab5ab71bcb35b7c6dc89ff5795aae1fa0d7d8ae5fe327b3959d3c7c373c7a98cf382819f21e6fc1d29ae15897887728033b6c05c293c28bd9670b7bd7fe70051f1d30bc3e9b4f20d6caac77d331c3c864c61733cecb5cf5756a9c3e485b58f936261487ef2b8054b5a1f95c4295b\n\n# tcId = 199\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 0fe6555340685f83444fd844ae5e7d11a5ab36922f3c63803432ccb84b3643f060fa7abdc6865891a1672b66b921867ab08fc62a4dc48104b9eb8e4bd89c26b821c490e843c3517fcdc249be66680ca40f2c3b7500228cbdd0323cf6b6a7c18a1846c042676f50be45802ba4f1917a84058382b9f0a1401b1656b494a325a9f151edc49fe2cc919d84e3a027d8c83afbb8ed5a72f68155", + "86ada30fd7b6fb3c95b063ce9ee8fea2b134ae42ab8bf08110301a8838c42498f4d6b449e1dcc65454f81af0ad2f6c146f0b3ff0ebc761b53b7f855323cc4c16956607a89e238b376bd76415648a26c8a473709ef02b27a2cf626450c92ed1238ee95df90f4b9cb8ff1d6d092bfb79c0e0114efdb0ab989cef4280b8a8089b4d65460edc9f93d89aab6ad072afc903c74fcc889a1e06ac8bab8e61bceae5e325af68d1357cf0747bd10c103fa04f69d563fb270a06f3821305de3f02ac1617700f07ecaa6dd525ef9e54b9449e2974a94e7e7b8307659495d700181f09f8680064375ca19cafeb5b81\n\n# tcId = 200\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = 1c0849644c72821f89775e8240949fd317e66ad216beb2876865daf067103d51fc428bc9e19dea39b16df3cf55fe9af9941ed456a9b398b373ec7de6ca9c176352d7d2b2e2635529c37715c1139b36a105f7def4aae688266feeccf22a076d19d519aca76b88b71364fda8b5fd52c0832ed2483d3a379316e370b7e10c8e6209debf2172446741aff676da31d7761b7497f2e55bf78954cb3352e51c8f8686cf9949c53d03d6af5258cd3ccf442a6e773a687ec95a07d2fd3c37ad0c7c729a832f0ae3689d1f3bb272a1f901a1b2f9e161432b57c37fa3abfb509e7dd91607895df45cf2b7720f5ca34a9b74cdbf82c9637adb391ad70f53e47131a22f82709fed31c99054a2aaed935e9791a1a6190b724a16e5df74ca14d1d15726ccf96edfea8bf5dfe9f48747f45153056ec068429ed080eb5ec57f0f7ac9c81ce6b1dccc1defd5528088661e0a050322e1a2f315fd65a4decee9ef9f3021a34af2b1f6c365d680f00c0ce9d19ba12b5dfb515c129b7a63c34c5033edf9d876c03e1f3594\n\n# tcId = 201\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 5681ec35b49708b8f8962a579a33e9689947e9883246a8df999a35d8bc24271ec1460668999ec74192b4f5dcd0d49f22b31c77afda748e3bec58ed52e96dd45b23f66b7b2c2c703add64e6794867e9be72bd3a4f80431ad6d76b9a502b9b81f04d126f65c18e9fe3953af2023c5519fae6958bc7a392ab5413b2cbcd2136491b5f25c02958a844d700468c2bca431d2b998cc1ec6b31856234f67d50872aeb12e9d401f597180d396e74db862db073fd157ff4c2cf0b73c86cfe5266d99ef969d986236960d710853c5540f62f12df09f0a81a7b0acb657179abb0442ade44463ce729540f31b3c2df9687151f142b5df3913d036604636fdf51306c329738fecc711d57713e5f2630e769662bee450bb5fc8c87e0da8a2bfc25902e5c52a5c2fcd46bf027550ae7976f8ed008cdf4b6b53d32bda37dfef9c98a3cb68200c3e06b0a10dd73d02da9c43928e14c7455140e7d4afbc972c089977e0bd69524a721acf48a4fb45dee76b0473db4ac1907ffd586c54c643d6e0ddf04d3821439f3e4\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 349e9fb23a4eb3c943d840912a447870aaa91c3d494c05b1f801bc5384fc0b7e9b0b0d6899462bcd0b357eb7094ce09e817a091f10cc34ba793fb7952759ccfc8ebda5bdc4b7b8932db3cd18f5cb0d3ccc07e1cd5a6537a701f06c07ee01433d50a16c5331a2a913a82dd3c8ca95e66b481237bd38bc76e213af3d32489a325ae448358bd68509d3541a94ca89c898acf6f6bd67cd66c8522222a1ebafc5f47df1b0b10c08b84dbb81926e9e7104c02e7bd5a77a19ebbfac4fb423f5ef0956a9ca3ef49ddec1f7591d851f66834868908cc8a8f569921ec7a9a1248d0f2aa68c380f194e80580e3113427cf6ebb695db18ce345845bf22c75f62bf91cca1c3eb393814a38f4bea08c0f35f03b9b77cc65140a382b4376af27c653e1b7a7c0bf801fdd3d18c5aa3759eeb25c158c1ed8c9865f8c1cf0b6438e412680667a94e4c390ad3d916b3b9c47a50a6ba460b1ff05a3df1f7f0f58596005d28af75eb457aed85ab6475a73172e8eb987af41558028c8cdada1a754229db1c35699d717982\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 419ad0e31cde95cb53d3b3a86b8a8fb605a0dd08bb4904cffec0d129ab7b20cba91fddedd019897fb486856fd779947702efbe929a006860417354b4932582084b75e3076498259fdc783b34441529c25381cc57d1016e196768dbc01879d768d158c299325cbb0f84a3712a0c9178e57c592e7da5e95ddf35a1adb1c7d217ed13a2f1f53f76344236ea93bea71f113a61c2677e3ed5c406a4e70eddd76439804b6860337452da8cbcef80af7b144ce9dbd7cee010268c9dc68a4145adf2bdfd05f64fe495a3c4c6996358e1833e07f6a189ee3b41952042696d4b9888e6ccf0940b4443adb78b787b29f6c1982e6f86b099a3a6bd0661a4259d4b968cc83467433632d86ff18c2cfc920dba2bfabe852e283525a15fbf2fe7a965b328f8e34514b3430182d426a7e3b392024d8bfe20e1baadcb484eac0ea97812ccc92a4044f60d446d2003080a6f2cbba47afb74fe3d48fc9d599c50227b30df75a941c8f19d6fd6ed66b9d3ded89947ed19bcac7db4fab8097a2d6ee652da61163a7b5a31\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 9555d56a5edad3ca7f1c40700ee2a072673159193586b08713362995898ba384aacb76f7ef3cbce1e94fb79a77f72bac5be73aeafd9cd3b60546b63abf575741a5824f5b0a621905aff6c7085531936504da15110edf31887be9c90b96950babdfbd6f5b0ccfe99c4c300f730408bd07bd7b9d035d7b829cfd7045150b1c9e89b4600d6f09baffaa4dba48611c8c3f745fb954a52fab6944b6df7f8cc4266c3042bd0e6d7b31a40640f726567c44d456dda93eadb7e2016d4fa10a0376e8acc4e4ed01d0849da3c178a6c75c0d7a8b695a8cfc84d0d8cf29619b3eedfacac2165c31fcc3c3a6f062fd5542c305460cf55858d372267bf95f58817f37ac7b90c19c69f17d9cdeb4504ed7c278dc10c12a86273a919e03419eeb25313d976d927fcaddbe08e4357f7bbbad0f273f0bb0302847e04bc89c850a8605f1b8ff0afe9fe9a00fd05c8235ced766ccb0f2d8590d9fd6c20c4fe16c5a60e056414eca6fe888ed5fa338e7b7e27240bdbc6c708e13a316c113c3af024b4e7dc5360aea3483\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 8829061808ea7aef2b338ebbcfbea99dcfcde31958420193326e26fa5aadbc9eafba2f49b38bd629f5bf1c2d3e92000050d5d89360896a8a29d147aaa2add622e5913da439451a951c0286863cbfee3083585af883909ea498314f5874282944546de32a80a9309fa9465ebf324d482aa8283c8589ee90757ac52de8f6654ee708b44f588c578f0833a820c8a56bd575552360adfcb95c39616a488f2c95fd94e083c305d5dec38a158eb94c40c018e6b4002efed29e28f78980cc9eae7456c6b68b04f5a0dc0c2a33b71b0911e058bf1e629b8dfc8187319d78285953d53a38bff1a994a23b017a74b6d18b86d37e09271cff51e5d113d9d947abeb188c074182cf281fdc879930685023a5703594820a4cb1dc22c7007083aebe9ec8525a044cdf67d58e775e525ec2d954f2eea316cc12701ea8a32627b8db02152cca9dde87a6bf5dd5eb4bcda3b34d35171d9152560f94ac2dc43bed33f3e0f026f1a578bee46c311e3b14d444428482952184e5a9b05c9cca0cba37b6b4d30844aad78a\n\n# tcId = 206\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 9f8ea25a407acb845c6be6e4cb263be64cc2fca7d573536b3076c75ae9d38cb70156873eb2fffa3587c3650a81ce19a254e2ede3410b0c10f8a2f4b8972c75dfc690ed29ed1b41a44c149dfc36d5f07213101cd4d2c6bd3a9b367279af08f8a02fc346437452bb40c46d705db078efd49c0ac0fa6be275e3b2db60ab17204d87e35201a426c4c1b30340ffdc6667c2e0ba82dcccd11340e1c7ccfcd18c6b34ac1545e18e3034e296c2cb482e5b8aa923b68597667abd02af54af7cea95cb2fd923dc90ace6ff906989cdb98d36acb40f5663cfd6c68976e502e79b845b592aba02b43ab16699dbcad74c0f00decd1e26af1963c49dbbc6baeb585c9cbc8230827267c0f6330269317af01ba0ee928b04e83ad94fd871cbbd3a1d4da58acdcc40327042762930995083c10cdbb2d9543cfc6b5478e61ae544f66bb65332a061d4f07fae41f3b25130849aa9ee4ae9497bafb0143def8d0a2fa0e19f87b153fe34f817a46cb00348d39ab1507708e2c2defc388486724e9371148761da04d995e8\n\n# tcId = 207\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 6d675527594f79cc5e66c9f795573bb7374f66eb396f97c1feed0772c86dbd1a3b36167f557285eae066567118670a787d4ff113a7a7ef575de05875c3bceada7af2c86aba621352f0b1ec1aa3a5937bfa830e859e836b3a0a62841feeb7d2460a266fd6d9305cf18421a1744d93183aa68e17ce1d61bc55eebe21a23fa8bf1b94045b10580f57e393a0c72081aa1c83bf9020e3d4c3e761456a18a1fead5e00157029b656797dfc321c754fd1b09cb2111303d1bd603c2c3e650951516c34bfe9650e03446071cc19ff9529505e1c6f69e2fd3f61a71398ca8b55310843033ad0c75578a11db3e83ad802fd335dcb71e83ecb4edf47faafd0b1bccfb89f3172f957eadfe61d9b097185150ba582d23f75387caa248d11413d143c38627be244bdb442ef4756236cf321288264a892856ba0b5784f91326e58fefe80e32f583aeb56f6204a54062119e87758ccd4ef0996ab51579240384149e1f19bcf54e270937b3f915060b989c026b5fda38919bb9fba6bf983091c2c6f338fabbe971c96\n\n# tcId = 208\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = 28ac59fd8a65c69dbd4c66e3aab2d1bcbd93d54e4710b3c3003bd8e1a85ffe6e21ffe6ba6526f3ccdcb563295db756f7ef29daf5c3210a36c34fa42fa13c6a557b4f7fae965147420adccd0e1013cf2100963dff6ca27371a34fc7ce72f7de62a1b6992b6bfe287046f01611c0fb65872fa3f988075295b73731ebf149df9b30016f305e950c46bef57cc40cc0daececdc3ca1979da134102e47319b0500cb32b337182d053c0f17ba9b9a7866a3852855d1e5f914a21b83548093d4a6c4f8f635f8c9d7b6625aad390a202c6d3cfc24b2b8a9d195135bde6ced5f57368d2ecba166e7f17e05d29598627d8ce6b49d3e681827e6185272200416502a1b9e1afcb4f9bd454fa39622c3eb839bc55f021ad006a90c4b2d9f9a933a92df7b2d997868352cd011f8ec17aac6619af0be4ece5747b9265a41185ebc6519dc43b1ba9ae20cf8929f54df6e4ce02f87e649b975d1e69c8610cdfc9b6364a148b2176cf1bde486aa141da819f639f58789eba896e9946896fe1995609fdec089e75fd742\n\n# tcId = 209\n# modify first ", + "byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 6d05e2f726e9a367b65f841b01844e615280364465071c86b3f4a527debbd7cd46f5732d6203727b868889438d569b821957762c45145951ddb8ff76fda97f5f8a279eb840f9f1f521f804c8e65168233f85adb863824a748b5a5b1395979335a14fbdd160e555ba064b79fa3b6d0b31692753fdf2e088eff549f7f6fcc4256444778ad1ae5112a59ce4e9962214bf0d4e7b4e85c93ca9ccaf55b55302ee3ad0795ea4f4da90af896caf2615aba2d3fb21499c4ff813f696c54d0b955b0fb34b4eea874bf9342193226c6d6b2967543b9d381f33f7370f5d7ff5f89dd79f388b5841e64f1b785d9e29fe235c7d509fd23a08d473ef3b75fb8a7e8ba78274d5538fcedd23886ed916cf20c0054dc43438060da6b685607219410a08245f214779acd278619689ba7e621d0257f54a2583a3508b0d69a968516b5745be891ee0731989a16187216d47600bab7000ab9d34d41d515d909d97419dc4d63ff014e9db91e6f3d5ee83a22d1009327586f451fbada7577f6540954a760a414cef0fe42b\n\n# tcId = 210\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 3b07c83eb71633cce02d709bfe927baab8139776565c90ef4f363b9dfe24b5197f4f457a4d5515b18b5833a9732a87ca0ca0f6572767efdc79e29a7429b8f95e5d91236ba88e03041f35188fcf305699a45a10f43d16991a9c4157f259d4c92a9f555468680cd17da5ec93bfb0f8f2fd1edb0646763466af4704ef46123c232ce230aadf0803e89cefa40e8bc00ff53bd6d46466b058b12ede7f6ddac04baf420b0373990cd3c69e277c1da421288ef85f7174793118ded6e65944c666bbc6ad80d2fc17e5fa0255812dd1f227cb9f62f1d8e8e727f77ee76110694f0217b3d1dfe5206c53a2d9908508bc902e0aadf318d8cce51a4dee027db4af891eb495fb69ee8f63e19bdbc7e79f636ecba4e73bc4cbc77cfc38f72349827cbe4ea7d416fd66bbfece0d8089e26917e6b3d16a466139974e5f5837938bdc7e5adb19abdf0c9601ae44895911d26ae0aed08dfdf0ed13a6070da51a7b346794fd4ffd1bb0e4b0eda4118dae388e738aa6d451fb8433b8a1ca4b04e5b36d8ff3dcd537498e\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 2ef1b57d4bae68d33603719c33a1d408f1edbf0262d7f11cf1fe1271206d3004ab581a11e870e7aedd9d48f4ced6d17920d46260331e3b6936be3976c0195d75f1ae0a31531885dafcbcfdab108f830ca811dc5465063b4b0be364e284cc759fac4a6e21aa156f6916654a9f46f850d714d245dd0c0542e61292101839c63c3598d58f56bb9b1efa44be5d6a2adc5548c4c672413d551ffdf239550140e91eb763c54256613c910d4e1c951a1a9b280049e368dfcd7a66448787ae0ac7638f4cc68bfddb0a837b124306b4e864d7a89eed62c20c6c650e1c24064c7c779726d5655e7c7c0f29b3298ee6518f44b316eb0e67fe1ff883acd0bf3e8f43d666db819f50ca3c765148d3552bfed9875ab76506c5ab8008ce19163264d5792caf479fd126f9ed8ccc234f3e696e62a8e6c5addfa0558d9a23bc09f4dee3bf03dc7f997111dd0f1fcc331c6c115ad299c0837cc4b52933d843faeb85ef80971ba4e6c358d29061a35632bf794ace4b85513db058e54f81fdb43a20d5e7c0bffc3f9cb8\n\n# tcId = 212\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 2415c061a50da3a1ec6636857127378eeb1117194d9db2147ec4f11e5d6b4a9137e8159e51ef125bf397782fe3dcf15a110c1994f1ecd006c2030be5de0d94e0e09e55581cd830eafb14bfb473f29a2f11d7bb0b7ea7b7a7156147f7d6e13f3541f8dfd10a4d867b7f82e550bc7c553a43866b295b5430faaf7d5ff4220e8fe1b538837e92eac811fc713a83533241b31e1004627f583fe349ee5c7dfd334fd9b4494dae6809029c12b8dba865734ad7868288aa6d1bda45f37639d2d0feef3f3b1a742720faa0c628dfe016ea413a48032a1eccfc5c54f667c86d14e8c6ad5b9f7a44fc0a85e1aa768bf7fd778d71459a92cf07374d2cc9e6ed2660330f4e8b62e2c7117edca9d16d9b10d833b2c12309a7a2e9d96fb6eba760a4c3528e71ab3a8beb1b11039897443bbe8c85b708613c214a7ab7a7b81c86b493b75fc5b1196caa2b1138b239b0c455f17338ccb6caa35a420455d3ddcee6ddd01847632aad44ea88573cd50e6588e586f0ad6365e7aa3a8fa941e0b6089b9716e5832eb659\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 542afc8d3d3cce9687949f8c540f90232f008e8d2018fbef274870e99b6ce10ca6bd4eb9b47ffe547bcc1e7eadd9643f61be60f86f884dd8a66e1b152550b397d7bbac9cc4296c4af5e14bee66b04bc88a8ca1d35189ca4cd0fc7d0ae73c52086148ba26429709830c339c3dc89cb8dba0e182e3df9b95fb10e5150f18b81ee3023504a4b1daa8f85ca2236f62108fff221936203e9c5ab08d42bbb208bc318aed4869686e844c1b94d94cc3ba6dad5725b343dab9b01553ff5011e59496c8bd3173a1d2b2faba3793030433953ce1085c4b8a8b995cf5cfed340f24a2917af535a26d1c0c5f3a3bb106c300849fc8fe26203d14efcb3b1d9214a565493f5d07e084f3675c971ecc8fb6cbb1f7c4e07352b1b3ff9e4286d258e7b12e844c76ff9eb18e11304cadb7c781661c98bbeb8b8e28b760c66ed71890f3fca7bfdaa15c04fe7eb53622096a8666de2444095e03f016f094800848de29268982466ea0401eeb4c5b8a1853d4b6a33e7176fb3f6a31bdd6d573cbe857ba00c5d5371ee81c\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 31690fd711236dd6ca3acf585195ac53cbd636069684f40426ca86e1b2d7b033f6b9033fa75b36ed9a848e2c9f94e5b8dd05b9396c11514ddfae18e8de5a3d5116bf81aab21c2e564b19197fe5e83dbc87f4fc1afdc3a0a6617f3fdee4d63e89b07ccc30aafff4c192cc0164a81c032585cd92c997d852a0ab35a330030e59dd49fe113b889acef34d278eabc985b70b312e6bb62ba278d7d2cb557aa38c88b9a0a4f4ebb51b87306602619a9361d8daf8bc8289e232665f92a244ec0e8b041510c6c1015c01c05bfb0d36999de4a57fb3127258e1ab265365fe2b4c051633254b429131a330750422074803b6dece155bb3af508df4706fa6b465e3be280942e26d82830caab376db6a5c95caddca809a246f05fe1fb9336a433a49b1eb31b26fce820117914f6d7d489c3c79b8d67af29c815a2883470f5384f6516088ba1d999d0d4ad1c7a5d006df523ca69229d20ab6774ff7ad8d80c6f3912671475cfec977827bfee540c09c4be1e3fa1ae5516aeb54773b522621faff15024b20b447\n\n# tcId = 215\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 12c17d7c5ae90aef671b6593279ed2c76219f9fa6b7a01e620b45906582d85611f95c8d5b4224fcadcad8d57e1d6ab7aef928c2a3608ac6d94442afec80945a8d2d25a04376e9a41ac77a76e572819cdafaa788a036a405d9eeb1ee3e3c956d53dbcea9e62adfc921ca0bbb651307818cfbf67000b8089416d09f04fab15382263fc9b2455a8a3472e8cd685be2d36bf6b9f073c0b37e76c3e74a09c968bffae2032b0708e8dcac6e5d539eb22c6e105031fc03a309e23f78fc7ad042196db84b877eda3a234368f982ad458442d998000f413b8a442c7188c9139284989d727d0effd09b6dae707758de61b8a1d6ee2b4873b9f38e87570842c150e7df520445e66565b7ced7bb610878884d08d6438f860c1911e2d07894dc706b14b1f83988c2968fcad0c0bd3f61aeb775a909c40bf4983175c690b910ce3dc402a2f8ab53a093a67f544d652703c82c55b49016d238953b0b31e0f9a9dc32c134032820c17a0275cf3e6bcad0b4adc864407482c9eb34406b7be6c16633fe9c2ed24de2e\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 0797dca79b5a166961da39e28bbec6ebf0d9c32d61881067f667423f584148fe8a22d432fc00d7b560930b9874dd66d731749015af00e518c7105d4d40d48bd824e69b77e92a2e302f14b00af7935fae839c7402ad58e24ced541dcc2e0a95188504e652a7f051781718f741f205a6b7d814b39fa066dc0b300cb2ea8c9c7fb90f0b1a057e64239a97f0bbac7995c60ab8099b272d2e0dffd34a82e6a443211e13daa5ffc5eb28f4e6890a7841e88234495138f6d2b497dc2165c65cc8177651375fbc0e6d0f0815b9e5f49b53f67850249bad66703e84c2291095ba66ec33ff078f40ae5cd66fe3950514820c87c42e5866997a35baf0f721793b08bc50403598058526c0111f91bc46b387cdb212d3f6d144f27d3eb6a32ced5b5022e1775a74e4e2c52638a0d8dc4410718a7330f8d15ed5e1b321fc0cf7e3b209b49f1a61cd71560434068d1759529898f1a6a280d7e31b7cf498bca168208d1335bd35312bb4cb307d7aba823a9ce8767d4c29d9636b85a0cd077e552e59c552c201e495\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 56709e7ac1d1b37f162bebb32a9cb9f86c8f9473e5ebeeff4ce5506642688f0256b5f1fb06108b0c3bd89bf7956e07ac22a4154ee4bb2cf5672592852f24d1eb46211f3a9dc55c515fa87db83d5a747aba9a0b8b3e07e1be26bdb462a3dabe7312350e6814cc857a1cac7ec6e1789f69df392d13fefc49acfb3463ca61dc59f619f34d75de7c7532a1c29228a57337a139a08bcb376ebeea36fe92d098107cc57c1ab328226195844a8cbc292dbe31523a842c5e222271d1ff98ca8ef5985bdd7f8c0c6f9f1a582e07ad46fa64306cafd2ee768baea1e2cb5aa42443920a6ec40e168e5de50dd2a94243f717dcebc9b4ee47a5128369b41fbee068f848b8a9069350dce0b83e6d5a9a9ec66521b11b735ce4ea3d8c7b4ecd8695cd87221d1d7484c9a893cddcbcb304fd203e7c2120ea5104c0d3e8fec59a6e0d1c44abec68d98f6409be5da8aa8800a93f457ad6b085cff25f7a51602691f8465391276e71d7068977130668aac2a533444bd6cdf93d8808aa44f3b79c9930e276bceb33dedf\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 26f1c4ba5c1a316e6fc50e47e080740e2ed6869adec3e427d3e85b41e706c92a263924aad99df90d5dd1a7f778486f2bbfa649668b8b8be51f69906ce866b11e3ad2fe85e36bca16ab3b19c3f9662f5e58fa2adb25d706c2a1abf94dfbbdb19d44ee2aca040585c8b83c01d60dc0d6c21914521d5b4d9edf1dfd6301fe24b4a1b27276e61348686b743d3c16cf5ad590667fa231c0e8ccf96b4c30cfff37061a33b01258a6b3133c5087f3d4f90238d0d7689b46444f15cdae75c9f52d934230d5a9c8274c7d78f7b56cf1575ab30976bf4057a4db00080449318395d3453ed40a851ae93d44f0637a743a52dfcefeef2aab70546a7", + "e23db718137c2476b29b9a96a6f144afa4780633562d14018806c5b1e156a0322eaf70aa574e2fecd1df95d22e91b45bf0c8e8a440542d1d70dbf2edc08c408bdb18d70d950286c20e6332cc4c715037e54388c8ca225618c94154241129e642c00fd7accaabdb63222d0e84820f861419b14e3e8cee4b814b1fefc626ba51c2f1097c6a4ebcb8c0ff9f1\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 87cb3f4338f3778724de29879c04dae6f26bdaef62bedbd3bd90c7beffadc29855a32763aef0a270f5144e39dbe71c9f965242e00e2683161814f82fd88035bcd4b088e4eaebff0e10ee66b1ad1958dc8df27793eee2b115bdc1756f82728967d54f09c6ca0c5aaad6e19a5fdf2de1e7fa92274ebd8bf42f66a63a066264b5c63ac6a96105ce01c820fe7c75c0570d9aca4ba7e16a57aeda4ff63e32d672ce47739fe6f599f2ac420ee4776e5849dfe3c0a1888b4f6efd76f34a5e91ff429b553a9929e73731e2619d512bbaabf3d188cf2478d026dfa0f3abae77906780db2e1d4ea81379f6b609fb0b244a44ead1936b406b4c9c60b1f1861d3c456214244760e77fdb3b5282220afa345fc9dda3e91aed17d6ce6c4920fddd2667f4e074cfea65a06291da9a7c447a7eb5a531dedfa675ef4893e615aa21a5487de867c5e353e94037ba5cf369f49f661f1d0b1dd06eb8e15d02a046bd627e21dbbc8429d49db65bc5f1407b54a609985005878a126e1506de27aff74ef59d077f16090ce8\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 57e351ad1911613910c6dc91b55738ba621e299aa13d29a85bbc5b1815b8befabfd5f01f50be542ffe12e75637be6cfcd53dd908986bf158129eac99d21da34f8febcac49eea9c0af87866739e82afcd91e8fba7aecbadc5463ea8a8d758f904c9c5c02dff1b265a7017918554b1e4af660971c2189b9d11b064cdae1a442a0627b0e9d01c57931dbbcd55ff2f130524f7502b234cf6fabd4da24ec8dc8b26189bd3b0edb5556f24d355739266fabf8b666726306f396cf679a95e2f976d25a6ae13501093eca990c35aac9ef4cc7a7b7022eaa8a1c241637c8d3caa8c87513544e955bb1cc9dfa58232a476bf92bcf9f7d01d0bc7a394d435574362f5067a616ca94f80def4325510c99fdbcde99bacd1f6ba1aa510c6dd0cc7ea6e540b1ef6ca03721f166e3a34ed794402dd81af0b6a7683acbfa83e60905f013e65037fc2a3e98cdd8d2a7882d96af02747c2e940bc049cf7d21f889767096f177f2bef6cbef65c5a11f5ed481352ab92888da8c081725b573c68745eed31581d649218ca\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 48e9fa9c8e311a1e30a12356c5edbee8a6f426e2afd213bc404618c4a050f00e9029006fb0f285759bd643b03dc4683fc76810b8fa2eed9f559383d9ff58d7f4f67fa6b3f81d702c798b499f300caf17b7d590df9db39b890b5b4d15e33cbefaf4601fffe0d0628aafd028e9252beb0799e2f8dab8245476d141f0f40716145a4f4b7000e66cb388ea037d678f0b867964468467850a7ad6ce57f0662821259b0b937cfe072a587e562f9ea0d04fd5f646727305b1e164578ffdbfcec538ab4b55977f49e9f4643ef5fc91482cd50941ee3389583bed58ee57fabba1755a2994317d903b4933dc5e1b950d2023a1ec8647e47aa718cb3387d2f57c428363c1b96bc21b636bbfe02d329d68d5f2b8a55184997f9f250fe744099a28808b487c2387825d9eef46b898b16a6786391e2bbf651e50d172e6f1581ec3979434cfa313a19006bddab314f5de431da84b377b0b51e01af31c22046e5a08cf01c853e742116ae20722d9d6be74b3659a3a3dc3f72bc4808f6cb205953d8c36381031fa08\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 40be445399dc0f5bbfc80b5114d463155ced7f80afdd048763f3f1c42f7ba0421c30b3f433d4ddc34592985529514eaee3725a6da772328746ca6d0e8e600f18c27c91e3ae86f084144384816fb13083870ef06fae11569c2bf22303331fcd0b4c905c5dbf3f1fb844bb003a96cc8ad2ff8d13d814f8304aef179dbe53141a1b92c28e05a2acff47b0113cec3bd16d0d1d2844c95daecd2103dd8e1801b78bef6ac2bb4e9584956247235d186eba8dbc5ae278a7992ce58f4bd9f0cf79bedcc8c90238bdff6f2c9671ccf355154773dcf425df02d1beaf04ba79b466f036837e26e35ce55a6071b54a92f4e0bad91b8e1e0e7e57277a16b2d66377866371222f8fc747bc2ce1a4baa6ce6eb1289c25b1834377d52c693d90d63cebf7fdad96b22796bdbeec6dea78ec6f2d886c3b7c27b850e4ab9750c9a71e28a29e93db8b980908ae8f485155bb434e4925305ee06f08ca8be63691cdb60d32d28ebd50ccbac1c48e8f91a06fabddd51fb6ca26421ffda5b6bf30e38aff88cc24715f97cf51\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 1665825cb4c077450250b5c3ec8bc34ec3fcbfe9681e3e2636d6487ee6edde37eb62ac5a715ab8135083ce2ecc89240d5c5c716dd3823d90e211f94d308d4c8815369f9a5e316782c71ade45e48ccb0c657a5d6174e7397d59ccf9455044ab87b97b61bd0844fbc9b5783e7333a190ee70dea29a8518b46f8052e06f956cd356cfeb1b5b7e701d8269c3d900a72d4b78af7fd046244a5e9b1abd300f6b37ea5a91d26c9cb0502e9485d607298cb62f2ca730d4cbc082f3bf7ad21cc250772b75c188ea6845e8a776aa6dd071731ca4dad85d0ba3ec2d9b027071ccc5761241191444f7bc98fed8989c0dcf10cf207412ca8484d3354b1669087da44e0e1c182dcd0755bf9f6439741a5781695cd90db51e42848997ddaca2b924b82ebf78b3c6769bca88389694e79ad6ee438c010ffb93a10bb839141f8dfdcf6acbb59a634dc6ace2b7dbd734ce1bbf5724cdefa0d25cf897379b037907fedded7d240c2649a99d813a850aef75b18d7fe6f1829caca136081a3502d7091eb90555017a53a3\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 3da7c427a128077200cd057541357cff5e95f1eb1ec4a370372ba4b62ee2c25c5e1559351cc4d4437c0de4f96ffed108d7455b1e76590de406513e143ac6de990673ac0c1b35e9ae3190b9651467058715ae20172968faf81c2f5984bdc6351146282c4492c6a7d9c8cf878aa86c29523b74a15dc18f0fd427f09a65458bd17acdabdbe90263d5b247c7b9cccb429be3d5467b6b919765bc31598dc684c01c00437096904ed3f9217774ac514ed9861fe0d402069489ae91ae26eb79a5a5f1d45927101fffe6b3c55b9cfc0f7bc4764019dfcffdd05d13da1ebfc0ba99f344b1e481a59476ab6d422c872abfa133095fff2683ffdeb0935a5c779bc97a59d929084d77325fa05fab2e40c50d140ebda7710678ca77df62762a7c3cb0a35546657e332f38e0fe51cb285cfa9b2ae838d23d6bb9f3e962d55c06f3298e96ec4f77a3f2a53016202dc2cd8b423ea2e7c96a7be55cfebf57537f6f8cac6e5c50d4ad9b533f50d399057a5bba03f87cedc2de59aea08079cfbe90b966be102a5fc4ba\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 98f649a766413ae1348a8e601a78000f7b284eb9077f2b4a202609c6540502d6b8e54a5ddde7634d4e0e8d5bda0a5673a042c659d5fd0366937f222582b0a41305cc382dedee14234f86015e9673defd1133d133b0daa87aa1e5eeebd3af545cd59effe44cc8a581791f874f491a10030837e619fc089c7671eb0551f17ffb8237c2085e0d5c90348b22317efc1ed53893e06242ec60a5d438195bf3c70b0a11b78a7f0edc6d4287129b412d9477b020937882a6bddb9cf7ae963e7bd44ea61fb671ce6fba1a2f085afbf781971359eeea082312f3618c199657653b37f07c46a43ddf6709ab3433d799158ff6671246aac560a7f7e26010d9937ee61537a6a06101163883b68b0e4dbdeabf22a0e9a5a0da15d33427440b48918d620c8947387f92377d3a236942758167aa459fffe96fb5ca7304742a3e4e049a2cca570da8f05c21bd7f797216f01f5f5cf844c05dd74d6a5fd10ea7396b2704c07d44d7d06ecaf18d2d3aeb716599c8013e78dd2812380e15d28272ac1a378fe4dcad9085\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 9f59ea3f9dee7d9336ed2f86adb180cd2872c032ad3324cdbbf68e26d579bc7580cf9cc28bca27ee4630c3cd69670840e1f8922018023c3ea0b2e85b86a518348b46e103237ada4b5d0edde8a0ff0a54656a156010b16d86dba3c2c1468318325710b8fab1479349739c02729472fd497a92a1a23f8e5b6717292596da69c3faea3e9cc836cd21043569ac64b3b88e394b8bd450538e63b0e1b507ec79969e6e4aaf9e893374103a01297422a6be9991882a48665cc955b6d55bff8c762637f82a181ea8ebbdf6ea25ffb793c09e69842a919881fd0a2f90636b88ea1a3dbf27305cafd0c7233fee01c4f4a4444bcbbc6585efa94a8c298966dd8cf2ea17981f6726c854560c1a908ef78bfa2ebce522072eb5f4b741b45c6365b8d5da492c067c25b4f467b6c34832032a0e2446f5aaad149b298b3b6711dbfeb360cf6149b0ca998a94afd9c835504c6ec97ef49a5b8427e577996bfc921d2da6be89957912f6183b289212279f6fefa768ce8ef4386abcf1dc8c7b6ada1dbde45b7e7624af\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = a07887f3733781", + "96b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1768\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d176a\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 627e76d9ab46ec144d942afcb5fe8f677eb9b1a51c047f7b8974f1a6697c5f4ed1c616ce304bef814ce307d4d6a8ad96a704e71c2bbe7fea47db502e59ec985a69405d9a606ca5ee7bc1e131783452cbd7afebebc6cc4ecdaf119ff16986f561ee4405a0bba05707da66de70f25c1b6e7bdde656eafb70d3ecbe2ff3bee66e3f0663a55feed8c501827a34f5916d0dff22fd7baccb87db47a472a21625c1af097264b5964d05368a19004ac9c5e11bd3129327f476b66abbe5b59e7df1cdad9660c52bd13c86b5a721de476f6662cbcc64db4c6e93c8ad7561326947192501050d4cf6e62adc42e5f3c0c605e3a1b1a1cb8486dbbb6fb070426013e9e1a5a2d1d8b0481ffcc9235a99d154e1991e8f15cd453e609be6bd008187b1f3066fb8d5348f08b2784f8fff31306dbfca2c59e1f48d40d70f7db16b89cc8506cf0137e2a617e27d529450f25ad8a7c502d197cf146e85fcbdf6e57e4703408754817a06fc8a60008560890d1e72a6751a43903c0f00a47ad383a28ec7bb469b178d5ecc\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 4b417241f14720559c1e8cfcadb9e0d6b7de849b16c80dfdbc867fc33e4b81d56915190fcaaecbb8f6481c177cc68e26813d8a93ff45ccc41b795714c7d486ff3b929800f88063cdac7b7100d917c2288094cecbe5d6f2ee20edf36dc646464958cb1cfcdabed57f329561ec6a8a00ea2011d2f9215f65ff6afa8ac692aba8328a04c9f9fc59c8d8f22e309d403fe04acf5a31de007a5f0f402efdb2c83c0c5aa57379163b14429146f9521ace54189c5445f80076b2d43214035c2b0e175ae0c463253796ec66477e1571bb6ac57722105b58fb507922974ed770eb898bd584d00a2267d8bcfc66055e7cd7eb7e7497149076e1d287b31671298076f1aa6d3f1ae1e3fd62eb8714f9fc38bc6413b2a15064da7b6b589ca5ca539d0d01a58f999935f1a8e6a0d89d440a510ba9cb71a87be0cb81cb1e05b73f8402d684c768ad86c98cd3bc904a59ec88c385835fb46b4ab46e3e026eae14e54a00f0e55b5cc26920682f9713d48c7946e1b0ab22a6fd6cd3e833666cdda12e31c05240a94c80\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 338c3b8b3ca15e0fd12433c5b18347d79d344871aeca17dc93389f3c5fc123ac9f9fe95c97dca7583e3fe3c2a319d0cb409367aa7573c7ad75b118ede506631f52aa861c2b0e31a9d8c435416e8e67059dfb4ceff533c214c4243f5451f449ba7b75667acdbeae22afe959287fd9f0ad3e4e7709de5c90a6e23996a7ad643ef0c3aae54934c31d79619c04b4cb85fa5069fc9b90231debe3e59da0ffa2873dcf9e53b8481e215b585b1115c02f63bfa6143e2b900a0ac71773a0439bb5d86a78b4ddaa5e2b9e44f7192d9451a6bb8e4635948212b17173b0695d4f518189714dc0b51", + "ace3b9068f5fedda3b4ba4e24baf901b313366f64cd54fc2fa3db8bb8f1e81e06effd580fc4974a3cdae688297b4ac423d81dbd342b3067e6b4d7558ac8f4fd1c1d8f5fc94854adfb0ef8a69ec43b375ea724932b391ca5c04e7e75fdb952d671c315a7f86a28ba954db126cda3a39ef213b5f9531a8a159dd9e5698ac7ec8fe7df2a2316798742b2fb5271fabad932542bc98af6e99d231a1b5fbb09eb\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 7bf4d4739c1ce0e13aabe610a110ffe79dc689db3f9fdcbe29b56212f7ec0b3cdb96ea7052a277327107a992d40c5c5d03ee11476f328a83d2c3a1bcad5c9d9ea2928fda571850a2a9988a0078429631f6097b2fa9a85aaa1ed9ac0934a5b9d00fe6fc106342e2b03d4123e09e2ac61c1343f88047daff5f511c8fa3d66f76406b79b8f4f0475ab14313968e56ca9d2e8672d3bec27a5d536cef54220cf44a4a698fb7cbb8035eb5516ae4b44aec19da40fc788f2546d5da54b7e1110d13d3e3ae97671cdba93a6f5946b2cee22c4318b7343a0c6b0a32000c6ecd08c6913901b79dc2bf38707fdf14261581b656af1fc4e1d5d6234f9a5578869cc8b920d7020fffeb95977bc3d154b1127f454bae63f7b1ca377c3ef42b0ceb75c96b3f54ab8a5831d59ee8ebf4457f540550a6113584ca4782a53d7b62bd5c5decf44e005d2c46cf3e0691963730708ccd6bdfb29e7c099f1e91494a14a938b3f5fb08ac40bf93a10cbcef007fb6a99b432472ce3bc883714eecc76e002bace4b0394041e7\n\n", +}; +static const size_t kLen155 = 209306; + +static const char *kData155[] = { + "# Imported from Wycheproof's rsa_signature_3072_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keysize = 3072]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = ebf3c64e4c19fcb0fd920e65554a552cc1e652312c2e0e51cdb3b92c94b2b41ee201f61f434a6aa4703e87416388f4661c04fdc2e459e199af3ea208c61b99d746f4b00d82105caf4f0196f1305e806bc13b4c6e6bf581962862dcb0eb15a0ffcb0fe6b36502320011b540799e1432baf2a56a428fad64811afb57d210d859a1201ec057dd8d2a68784b48dd07357162f21e4c82f8d5e385b1f72834dd4c0d85ffd333410f08ff28fdb7365e408a60af177c80298726940bf4c40efcddceee3945b1d921b9d04080dfb12d3ae61863ad2e3e302370f5a8858a1213dfcd500269ebef76f4ebf0982a751d8ade1aeed95f41d4560084711362774b11b6240c0ba6ee4ca634ba8298f6e63ef560a39047481b9eaa546178e69e4daf5651c66c6235ba97c231241c63ad16efe59b7b5505d9c3f1818368b9462cda71849e431648be9757620c15f99ca78f4e250afc41ffdcdc52693a1fd43506274c431caf34a4d37321f5ccf04971a25c5010b9ada07596bf9a20bf307db9d5e86146226081b25f\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = b9bb1751f2336ef5126508541b949d40f1719bd23c2f0fed64a7b73ebe1819377e6e4262f8440a3a3cd456f5eec0b1c0956bf6989add2c3d1c7ba4acf7a617d198179dd974051fa7a14ecd8093ad572d7e233daa2a9a46fe59bcf7e01c6ad8d68c0afa89a58247ce257566edcedd799173e2babadac15405e2812ad12ad900ad997035966a05a02988e11133c21e111a8e06d7ce509de1e0c11de55379482cfa072348fb41c05083529c2db86aebee92095e7450a75d97fce7b3103ef1f8598459651dcb9b6e90f299c9efc95d7ced2f6e91526ab3788238e2b5e109d3ea984189ea13939d58fd4ab896c76bca4f6a92fd3bc124dddfabef1f286583a1415d1fdb8c80de8e7583fd6d52836a22c3926f69723301904532b9fac2a37d0cedccd4b3d0ddf3550377191f813d4f92a5c126ae91e03fbffbcf59637ebbf1f30acba1dfcb0f93285381cec6da60bbcc62074075c71300f8424e0f964422dfac19d205251f227614bc13568f408284b6b53bebd7dc4adfb7e242953564763292d9c01a\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 1cc02717a3321a83da62deb3ed0b9706cf7ca9fdf3674617fcdc3364a697825b910d54b891b5f8eba197049047cf0048ffba6425d47374ec24a84f1f7f04716b7ec54daccd04aff858e2e7c8830e4420b5f99df756018083abe46d3fbce2da6e8ce6c893fc11ce5967a5f367159f9ad38d957078dbfbd32e818a26b49ae00151350044d22b58a4a61a35fadef67e3f8247f407f026eb17b8dd4ab29d388bfb271a1ec606e141cef3fe57e2e55ae8b40fb076a06f5898362b695545124e9c185c50647cc5b83f09f406e780f626ec60462fb50caf8560aa72fbe174111142029b19f2d681f771a774afedfe2500fd8b1bdd437fc41709253ffdedc302f47afa774f5ad23777a57fe44067182f4b35a28923edc82255cce11d2fbe91acbce29289b4e0e8f5e99e906e6607637b05eab4028d85e91d060fc1fee052a09baeea759917b34855e09b8e5b67ad60f45851e991cf01dd528b100327961eefd0c29f1d1d8771bbf3bb1e7f048d9c2e1dc5e652e6ac4f6a2aef86245b83f611700bedd07a\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = a0de9c2df76523499c6c344173d944b8e02ee1520f90759fa3c27ce284091f80215a9a26c9fcebc125171da556bb732a0645cd64b05c7cbcd8c187d3995e3c86cd59468118e9278ecdb8e791badca8785e56f33478ba03eca721591930db01bc1a5da5e193b2dc9022e98948644a406138a4c7971ad8ade585a3d72e6c9de50320b9fca1ac0e054835005cd39c96400c491e1b706eca22ae2e9f1b844284226fdcdab1f2cc942a8280f7786e0f2cd069b9ae99f04aae424a6d24eb023e064513931b2e4f7629151af6bf83f4c5c58616960f080c6f96eeab07a87b6d7cef3fe6b071e49ed340b48867a5bea30dee332cb89e1a54d9e3a9a8bbb87179c6ad206fd48dab07104b1f887a02160b59f9ddac6d1f8801c1a8df507ec199e970e02058c749475b7636ba2def322160b11b21773fdf904cc665eb5eda887ecb6d9be245d3dbd85cde107d082cc6d8492a087166e23835a379ac69f5a996ad9032cc41e205078c5ec9c50f85c396822c057b25595a35471a2fc3bdd3f75eb8ecf2d1189d\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = ddad8eeace34f1eb1b0dd28db89ba710ee68aabb54b0a826c2d69355f63acf0f2f2e0dcb96f388d44d0940774d7d55fe81ba6a8a880aeee8ce842101c7e8837fbf2704971341d38bf3289dfc61a6b3b557588db93eef2789d3735000c8e2d830a32070626d079e710c943082a8bd1c0cfb64b2dd911eea76001f8e08cdc01cb072f027fbd9c72331b857d07c1c2f3090eca53accef8b3b015438942e8d2fd3406cbc54c7ec3797a163b13878881f7b4ef5ca45056e16e0c2a76c3d5108c6f0f48803d27eb4b0d55e90b19b6fe372dceaa61270b9efe2800bb259dbead955635ca44ff979bb054b5cdf86d4914ee553d7d5b1a49fb8e49f3f761224802858458f702aa4428964a32a45bed5738224517489f2be075f9ec7234a019005be922b8265bd78abdeb1d1633fe7e5aeb37b61d36b1a03a06847a812e50ed551853d3cdebffaba8b056b788a1bc452ebdb5a3f043a116e5a3d262c745fc15897ad4ad955595292a79eb85373d552d6079ad77e469f7d3a60330702125127b1ee770225cd\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 2ecc537edc397ae5c3c789638204ba3393bff5cd9c1f0552db515a8258a311b6bdc88325f9072d2ae67bcf132a92c0b4d01ef0f2916349adc6d8f1b415c86bce6b5afcf4cf2d3137897d0f8a33063a0ff69965a5d2ef00dc3e010094ec8214c95c064313c8e90bd84e34c86b2e19b056539bdb3c83eec23722b3e380a53826bbb31cc97ebb8ca77cfd96d3e6a2da59baaace3883c652a92e79653941c5615bd30c77aa38ad74c49d36ceb9f76544835d57f0cd14999c2c0cf3debbee17a8aba6d777ebd9ffd44b09e093f1a894a8aee80301c3a5a59626a79e445254cb1df1174450bee22a7518afeeb15495d663af289dbb09216543bccd136abf2646bac573551cfd04e6a35b5cdf9729c8b14d34c06660a42b3ab365a42ffe470b69062d0f305c733c43844565b0b94d49d2019933de9686088d219d57b256170c137a21475d03f2a7e0783af11426fc6e64895fb92da117702e4487558e8bd21db82f263c4bdc64065c4f66d87c87889ec5aa9cee02c95d001b08636dc3420f817c228dc7\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = b9b492d4796fa2cb7066069a00e36aab8b8755f9dc8294401137efb3e2681c9b57930c0ba87b45c9d70e214979cca91a06562f710a2427660547006ead7b3e619cf4652131fd84999c5ff1c9a1cf057363b8ac62501bbfb1fae840cc963a95169c658add96c6c969d415c10bec5e2457a5c3fa4fe81e7de1afdec6f4e59e3fea185c7cd1bee4b8a42d2f22c7bad7d4933621a0cfacf0136abffc3ac54ea37c63af719425084cade944999aca3f43c7625d22af10149f39acef32ed7c92f781809aaa945b2f446a03e66150a524c7d88b7bec587ba7d6fe2db4ebb7a8c3bd46e7fa1cae291ff502acf33f003", + "dfd1417fc60674501728e52490476d813f0079f56a9456909ccee3b76b30aca26fd4487527f4ee6283bdb2e72393d661ec0c35b2d1675f679f823fd28e044fed090721ba4c6be46da3eab26e5eb356d17d04fc3ac31425a6f6a50474e2725bd4dc30da74fd3767a122ced21671e47b1fb33bb7018349f7cbc916c6c7f4ca7334735a0e0ec18e01735107bd2ff02cd9508fa5832dd\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 7d550b35998d60a62393379e47dc02b1a4530bf60c892c4e559acf9b9a61208dd9ec054c865018aa2fcd11a88493b54935039d0fdf5371436da96ccc342bc1440afdc46eb7bfb6595303b013037537e695787324cf9593dc156881bd0dffe8d2d22d4e90c1bcc801c9bcf12cba9efb7979a293dc2ed17ef787515e2bac8011286c939c418234df353ff9a5e0617615acfd7bccf9aa31c6681950947df67690e36369c3c3bf6c466e9748da0582acc76bf15760e8ceead43b5c2e98d87eb502d5a823ca69702b6936cbe36295b5714fed51b35fad66c819cf1191b3708f398fbe8274f1ce219e8cc77690f30bb7643f9ea472811e6216253c58fbba5d19ab738d6fecad309999a4d814c19620c4ae998a5f0061fa616ec0ab96e3760dc5d3450ec376a1a0292899212828768bbec07a0e1ffdaf4d6e5fd1ef5a2e0567341b2fc0a4944fe8bca36369fdc0177885d5169747103418e2af807c4715d94c2bef45f5eefabe8980f90a11acc01ffe0453e1fed8a7986b07d8f6daae2fdf0cd266c587\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a31ac04a54a8b6ff7e56a0fd57b356d1f854de8e0f9001cb216b859819279bd80d8584bf603999215ba8debd1e9e93fba985427be8e2169924a3954a43b58521e0c79e7a858a77081439beda623bb7b96ea46176fdd040682da77916fbeb77290e7c93b2e8a1d3722587a70ba56b8de3b2e9599bea708568ed88d2f09d7b9d0ebf9be2345b81d9b343c7392701d35d1f3400f343763af8d9233e40228aaff22ace45920af56956e07cd010af64e01e1f8f63a9dcc3b7b205de730199fad3e3b2f139c556748d704876af986b98785fa5686d5d2410cdd95f1c80a8ab8e24c23f06d5c40ea5f2be6f980db62b6d9b22cf7aed0ec00125e1900e50db95269148f6165f563b8ccc0d35c9867412c21f627ed436769842662c856392d3d0daef99bc47ba8f2738b4ea9d068b20c249d43dc01a067aaa8c249d43e110ce40de060c7c68866639bdd3c6d7b7b635b7ba71b44b71e7f68651b203ee07b914d65a2165791cf2f6d5dcbeddef7bdd7f786f812d9c5515f846eed933248b4f40a00b7735fb\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 693fb14d0d6089db3aae22e292e43627af0cbd67234983ddc1b077b4baaadc45bcf0ea0f36ffdaf970f99ec5ed8ae8a58b7e94db9028963e14c2f624bed16bf24bbc5aafd472915d643e690f6e981287ee7856fd0f14ace63a790676457ac09692bafca0014b2866c870227a976fff547812641a70993da32acb962a3ea050845dc533390175900c668a5f36ffd495ab7917b768c68407f4cfe1d20bedfaca38f9f609e74d9e432829da2487f957069dcc290da513d8a453cca27c8253bebba2653f82f676e663db0248af2a310b254b00219c5969f05d04fbdb9ea0cfbd746050ab25cd10de42a02a0ddf223d40e233c6a6597992576f2d105b72cfd77b2f319fe3525da8a8f084c305b14e090e3bea5c5eedac3360d366c47fe9cd60c6bdeba472d408a79031343bce42bb1ef5d6f4e0e63cb7ad0cd22e4270392ce711d7c8efbf0feb888c74793f2dd903e3ce894ec758d69644f654c5a75378b0e5c63a5f9ae05e0f4818e2aea7286416aff545c1048eb4d359ce1bcd0b26a28f55695b56\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 0783d81e403f352d1140b99d6cbdf63f413a55ef9a64fe1fe019adfe807b5fa59a18e63d455e0f8fd61edbeccd392a01e09dedfe28600d1c7507b1d81bc814d1e835a95219cefaf7525fc0d03bf211bc99397bc8fcce685445263a3db61184a8e44edfe7ee48e2a7a5e3c8c7f28158a308db3fc35d822ef6cc00e8df43ab1b0a7ec2c92e3fb7fccf8f8b35e68ff6d31657aafd756782996785bee97d3ca5c37d22b44f8a1a44ed6afe5b80b9659336f3a39870b5de2385630f3fe7ce3c91bb269ecef7b3fa999a79518aa3a06fb626a5a1e48db98199c1c4d7a139497ed8e9682cdcf343dd03b4a5a056edda9e7101d2da5ed8d5b953e765bd6585cab5a27030a8c909ef69e61c0ffe9cefd2ffbc6f7cb26f64de674ec5f4395f7627adc72203fd6362c17bb1f262c430e502a258edf86076336499fa89efe7e1298c7c932b0893088430a30d7309282cc4a58c5ff05fa3f1dd664b00139c309831b8084e9f3065816844fc3074d7e8bbaa638dfc2fc0aaa74380a1282e65c7934be1cb7cdffe\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 162e2eb2457e28016b961ece8cd8aa9d4d2f4b06a9ab069cb79238f5870075de2a9755fadc5c78c28c82441c474718ee905a8d7700ff2601d7c56d7eb5a9d7019e92db6897c823925cfa75b5608c7a79e24af37abc09c89008be7b2ceb70170c6d1404a892d0804cf9abde53f9aedd13815459c3c6a1b37f7dbfee6e4b9e25143d9c64a6a817550337d0c74bb5cb6c7b5db2bbb770c67037729341cf25aa880b14d39d71e66cba9b62e1ff89c348eaf4efc79c0de4734171406295e346e9ce7562be7a5462834f1a00da1d4d54d7fd7fb12430b4096610fc96ff1bdfb88609d6a961338bae78991b05f2c80d2a131de5eb3477946d0d6f5f500a0fd93d57e0be3518b60e5688d8ba5b25c2343e894326129173b86dc315fa183a0d96845464f24cc020dfbc341f4623d6732ef699b3af9274fb504422bdbcb491c8cfc63f6cf6adbafd4f2bb671b92b6f4316ea456d9d87b8f3b2228e37b0f34f2d1ff70cfb0ed16d14ad3ab5e89985d4e30e51e4eafe69c0cf6ee5cd1ddae25b5585622a8b45\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b17c7e6b49469e75e489f9647112354316bf3ce3a58aa9ae41544f73c8e1e56c284667381eda58b3466d3ef16962a2619d718f93edab9aa12e5be05f73cbfd4d8e546bc936ff9043d5c048f93794d68c9f8d99805f85665797a27b84a3e97883e74ea14c180aa2e5c0785af69275d484e14dffb50a4ccee742e809a03da229e70ce529d0166439cad74ec6457016b92df8e53f8ed68cc71229a1e1732b15175aff54ee34de4e908e9b6f9e720417d1a619ba9c1ed70a55e4f5d9bd940532b2f58700f404cee86c8ad9c72ad7731b8c2a063efbdb96c7b35d641d5027d55e8cf6c317613373dc303cf84a469b54df3c2ecf5cc8d1bb3882dda48e41b9e5a3dae95ded93f230959c547ef59131fed18c269a0d5c2be16891071299cf1bf77573fde1535836cec1daaf7cbcc50c563d08a79725d66d3720ecbbe1db7edf85ed3c4a9160350fe94326e3f0440619df346e33aab6333c1e38b9f34139a26778d0b0e64b8c4746e5879fc56eaa4c4641171f79f4f3fa711b9b0548cffdbc39929b4ae3\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 38f8952c63cb832a35b8808ca9255ab12fb5c27573f29d585cc30b94b050fc9e179f87821a2cf8d23f10d3ed6f2a8f461bd098eb5f6ab98923647f87594e2cec18a776af433cdf2b77dce0cd853651b50700c9812d2fec7a9760388f4c26da6bee3b768574644c4069775ce21e81446a9e7aa2c97865f4b953daf7acfaac13e75e079800bc5ffc94090ed6842960e03e95753be39e94dafbeea1745fa7a4fefe777ff5d278a8444c07e3c8526e80960f6e2146900ea86720fe35c881a61e3f23a32a6bbfbddf049084d9a6d1b32b9c2492161d1aec9479a8891c7b651d13e34e784e5a8d3cb2f5412d322689591a98b41ef9b010190e732a5ed0d28b695f6ab06870ebd23fee44845cc64d4ba39017047c7eadbc16a1e35788a9d2c2ff02b48badb7bc4605225b7b631913b19683b6f90e634582ed64c25bb6157f28102c4560945b6baa91dcc551b4a6bf2b5cd2adb8a0aa87e29c502b5b70bc4cce2e197479f9923c3ca35e5437c849d5264dc18cdd3f6bc7b88fd9182bed11f0cba3cc68b5\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b24733b208d83a92b4a7c6d64209fa2ac1dbf615954eb99704ba9b6eed2a545aad13253234d88e0afa81277321a8662a1c9c59a7ff932c6b2889e44ee47e25e730427665a98f02b8897b24ee3036febef294a8ba02ce60b9fcd6aeb592f32daa1a79afe2a48f5097971f3a72ed3680433d93da0e3f19aa7d37082880b0c3745b86be89d184162287bb6354158ced89bbef14faac68649d995a4ba8576266bf5464106a82cafc07e4ae4dfb4ff3f6f0e8c713d3fb73673e75deb3fd04098c7c939f91594e45323432f30029122afd4e812475f69ec05248d6e2deec18e7dd02c7e9cf89cfdfca8b3412410b1e271023725272ef0d9fc72f35a94a484bdb0c1167c282dfda53a86b72922506d51adfab81df9dd257787aa5fb6033bd7fe61a577a7abe5b48174a3b2f7bf276ad6a6735593440867739851c91bb30fb2f6d279f35aced179d231dd9c5267cffd6b184bcd710a365b29957eb98aa81f10db84deb3448e2bd8ab50dcab06fdb3a2b1290eac0e60dbc4114243540585ec78473fe9297\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a336c6c475b3ddb4f9e58bda547d867c25b155b19d14746f8fe9b22cafabc05aca001d019352e8e96cb0afbadb7bf16998e5052b834a0045e861f646fcfc07347079822e64dfd5e72c2f996f0d5ae5d31596b93c77fee310b046d9c461ae9637ca21020e48c6745feb9b7a8f7e98e47be68214405b55d81d190d0bcdce483b2915544108bc8daaac9563483399a69c19c644d4cc36be4333fa9e9221f17b0ebd2885e57e84d31bd615e438aaa7a1742f0d6f3779c55ea3dedce1940e819cc140cf887edde8506b4c919edf3fb6505293921889c3d6704ca6aef24e620d87d6073c0e9f8a8c43f98fbba9e84fc9c445bff081acf6f6559dc0a49c9acd49c1adeb11ac31e38fe8319389541144dabfff498addb55d974082988503adc422d78f3e6c1764baf174c451eccb13e0e2f9791512e9a949478109176671f56cb3b8b841fb55207bdb7dfee0b7d76ae95a76de6f6ba4e953ad0431bbd23311ef17da7f4272a7ec4a34c08501d01965c4ab325420f6464dfdf471fba6f59ee78bedc28524\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 84d3cf49f14eb7e6d625614743859b9c1ef5a79c23d3c16e25c492c85df8c3d8f5", + "ed0a6e548c042a71135bfac1d209cf434700e8a6247f8d9bd3f1527ae63a5b797880edd6b3112928b9878a890cb1d0aec6e84cd5da2d3191d590a57a82577c8db2cc51e8eff17c64a6f445ba202c9f13af6b20d5974c88f88bcac534ee80eae451d72bac360511ed77d9a09952937129790dbaebcc92014bde155de59c13ce95784ccec3b4e9ff0a08281fd30f5180f62667f3a2575e67550281c2f3ee42af8b9cd94721713cc95841311f81cfd5d50883d063425b8a307f8bab6bc19441eb5eb256b6cee8126586707eec75465bf8fed4bf010f00633f2d2a216af178f3439fe0857921a92a642b83c7edf45b8b7f0e280cb362fef1e6b77144465aa06968971861a03c8f6e6b0cc77f713a1417ee76934d441784fe9df0e65aa5f439a0cf9889c9366a213fa2f9302d8a70b4d9cf7707687cd2214d720eddf7a61eb0edbe679df5fdef79f2a8df50e90f26be5e156ccad330a3f81b998df0b610383fce24\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = f3d8e162aa3662eb0648048acd70eada84b12a7d15476e58e47f7720bca89a0f467f7bc2c6cfb17273d0ee66c82c2e82c7cb184d073af6a601cfa7c8df3c7eff348fd32973f8b3502d5257639016ebb24cb6011deb8ed816ffc44f262f03799b122a0c3bd7d69df064a34b166d7f138982fcb4bc2332384207117986d92bae3a5afafb0836a892a6c9403cf7054bf02a82851b35768ea77498b4d12a6e85018aa59623644e18fd9ebb4cf3490e8577994836a84ce6bca85ed3fce977e0fdac1eedc81e4aef60b9de47900b9dfd1b67a0c89b0be88ae67a5307576ff84a7f99f3f030e2133a51bf7af75142f59330e2492973373e64f34a05ba7f2262ebb91f144a89cd82906358e5a8bfdb5e7da91c2ca95d0e45cd2bca9912b27af36f45d4cc5535b0aa95e75d330cb01bcb01e23438d0bcc4207a2a7fbed4d762d6a81822993bdb42baab84a3b9cdec3dec31729c831cc28dec111605924ae0ce6d6c16ea9a605171a82cb11102bcab108229271e2167ba6ae715500038d1186204ae2fe685\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bbb3dba33bbc56a859bfe0cab3ef7ee4fd1b9b8196f5bf02f55c3fa70ab8eca32d5e2d95e3166d5137b7136d21ee17fe5d790b37f51b030521fba37b0e1aaaf5bffd62db0421bc82798e58f6b94046519adbe859675acdc9efd050792a3ececaccc3dbd774a9cf426c5e58527021cbe8212c9158baf67a8d3ca0361364d0fd486f0402e8b5a94894b3af023ecc6b9c0ec8c9b717736dab8ae1da1c1913df84b6a5b7e6019e3e53efba2bead981e49316f671816b7222deeb8f3f4875cca353351d810f271d3c2a6663e34a8ee083d80a861338e22ff97e542878760ec0fcb8dbb390834409754b95f902210be72d7104abbe1a87979c0460dcccd2cfa5a13470855ead59d0d7554eb6b5a12611c5c1ec9db3ec7d3dd795acce3a2c4c71bd55c15986562689e808683442ddbc8ccb048eb2b154a66e6e19af41c233d6196155912bb1a020fabd6e803f04fab88fc677162b0d98c42500977c002774341c3fa455b6092d8848958c94de4641a43a269cc6903e512ceea3512351a05c52bcc2ac18\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4ff317feb7f29b39f43c6dfe386347e057a97c5063007322c8ccea1761e5285a14a25cc84af041407130fde5e7e94d5196cefefc485d1c793432e62a8063557a0764305b40a7619b8e9aa9b395acd64a1c1321fed36e2187ade19b9a25e52373666cea888f5c699da92a59f2b2db76fa29b8e9d9b78e6fe42fe9d722c524a59a3ac8d7551ad5c5838c4ea92685ec6dbb23b6b69eb07e8a187ab78af4ea81c2d14977be336faf8169cc189eaac340c9578dc6d98148a14844c220ac1085a80c5e3e4c6f04a472cf1a4b893aad0f3370d56468ee1cef675b5fb77da481f128ce8aea30c67fdaad92f26db2df4c45000ef581e1a0f323ffb69e45981a6c1c8e45ffde22b4cfc0045fcb60e127820f4f1b2568797dc34ae29e916030ddc55d78629534f926a230c4144543d383aba05fd3fd1787bd70bb9fb8046d26c4d7034546452a682de60bac900337e5a27978e5b709475f4e01a1d57a00190b5e829d81e82f38450d3a21b5b6eb83ec0c491cd17cc91b6c0553d857a55fac7e8dbe378c95e5\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = c3d7c56f39e387328b551f8e33f1a8f6ebcd8375bf8a4ab92df72c732e73919778388f0a3aceec9f6753133626887c3a5793cfa2e8340466e8c0d602663cfc169643a46eccd913085dd1dd1efff1046dd441b1dd071a558c629573ba36631105ad76d89561f284c6321c9f35b1c4d5e588cc93be7c62b2db5b8c52526c8815c9dc5b755431de7abf8b2ae5750dea20823de561f92ec3630f80606a0638a18a7aa71d24a6e19f6ac3fa16eb77f769da4b27ca1b2bde187d10e297f6c8ae8c5aebd84e75948942bb64504ca0230a6801e58b23a7aeb2ae1458b5750a894cf6c5dbf3c60b86ee988bcef8e30f21afa7197e4103fa6f4f1a87680eec6173f480c94e11f8db980597e38c71f36e3c68215d810504ead6ff1b1291ffa5d178708ed3b0e5b9f5651fd1df9c18b21deaf20b1a8bc6de73de6e7337315bfd428156fac738542b38d03bcf1403ec210f67753e5b73db07d363ee85a595c205bf25827231df2bd576167e84c659e9276c7611a92fcc1e06af925543c4b11bac35df7ad14f34\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = b2b73525c8a556fac8a98c717231601636d1ef1f6d52265bdf3da2236b35d6e673277bfa2b2b1222d6a90b50a30877447573210c87fd85a48469185198af8bfef4393e0b46b416ac0cb7fff2be11860209c340e470bd59d84dfa598b3635a5bdefebeb35feb4251157ec940a0c0fc6fd5ab97493c3e9c663dc943bfee7854f2da6f9b91a9dfacfb88bd21c15a488bf2b08bd00e311de4bb2aff850de3dbd9be9e73b9ae4af9a2dd0a7a3cea94f1badd56ae6679f5cb87cd3eb7ee6ddf7ff426686e551d846eb8399124e23d6b87897bcbbc0242cfaf48f8e08e9d5957b30bbb4dc942bced416ef50388b25208c5f4824ca875c4ee75eb1a705c1b5b693dac65e447e06f41251b295e05d4c5137bb7c0f451a19adb61bcf1282ce729b3ad581596d99c5876db7cd4a614112bc9d5557187b824a266434276c3ba8bd30c7f1541844a262ae8d4c09419c6e21881a3f4b0a8c3d958abd7ac0a9d0e7f1770d229177ad8afba36e324d254d36119d13cf1a47c93f0bedfb7d1776acca7c9f14cd56e3\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 32506bd08dd88da1d3a3172ed17a6d1393f40413bbf2a7fa4f9393314b7d158a905c1e528d4f0b0c47417d20234f55e58fb9fd87344773b311fe4a77137a829d3a80dc77dac5170e32be53c212404d2802e1cdf982cf57261ae64d402790a7ed8efa42d9d807698884d23187c3f239beb3007b014e324e9f5f070cc225ede15115d07da064665f8dcf5a439cd6ab2aaa86cb4b7bd0f8d97c1c9a1eb3b416702b534ffdad74f447428c04073335bfc96b6f0528b0ba541ddc7aca70e37ba0b9acdb8acc1410bf82d5e6a8effc291f5701565d468c1578025f529be0cc7a2ae473eba843dd72ea8a6f9b3022c79d05e52964287ec9c2156745d4a14b304ad7d52da8a45a854becb8095917a4c7196afb2d73d35a7ef65748138a46c69253f0f67970daa38e0d435fd8f8763e9eca8d3be5ac96618629e30d285db481f23906e8a145f70fc8eaa71e451421501c579446c9545a1d7d033bd9ddf62e587b97ad7925b60a5a69ef383405126e4e0061b0349f9cf292641bb2050a86fbb505a68d321e\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = c0eb720b105f53c191b4e62f76d6e49a1c2319c89f4223f1849b0ce95872363e782531d8a1a5a45e4422ce872327a49651df41705ea48087d797e68c1fefe0b25cfc01b457361ac2f98f2b6d675c04a62aa32f18aef7c488205cd1d82c6bbd14708125d86fba57f2c54a667a31a32af54d8df6906c07595d2dd3147fe4ed42da82377c88f44b7d29c8c1daec6230fed36b4e57191d950ac98c78fcbc6e9405645b3c5fdd69111f9e3badb199888d0dfeb69ebef4a4a39465cf9fbc784c59c2fcee8e367387554148ee6318b8a23d3526266206de788c7ec4d93e60e537bc3a13a99add8087f5a33e6c8904050a9b9e2ed7efac91db3e4672a192b6d11f38ffa57f5420043da23c4c1fcaf46adf4f7ee4efaa5f72ab4560953a1e9435f93b00a8dd4b5865d714ce5d026a0ebe9dd56ba7d4b35f33fd764c04850c5dfa91fd6cad03d71d41845eda65f9c36c7117497e82988aa49f553a510e812ac475a0c510eb03e0d5d531edcee01c475b7cfe94a77bf45a22e06307a9f6c6953d0117e3892d\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = a90662e02c0b8f5452f56d7343ba207ac0a8141977c46b74923a68f9dc155abd0230dadf771262b1c02db06de7bf78dc40904834e01b7b8bd07d48cb1f0dc9adc5dd140234b7ea8eb51ae64b84ce799b3948a8c7e3601328c3ff520b712fbe037d4ca78353d8b518660a0c0f61d3141f7b6a010e2f7b644665a2038a63174156d67f00fcddff3315d76dba6daee07d8315e518a376b3d4f695576670546656e538d7eb8851497c6e8428dfa0a5a10e3e7834a23968021c7cf17d2610254d411d2a9996fc8052c38c322004fb359bec00b4a781e4dfb66eb842054fa7ada84797010f1dff65a0729554266086e4767dbe7c174b8540f5da25578a3865caea12915e4cacf0284495c208dcc5096f861997d45ed89e534207c79737bf420dd5c9d6a6e81a5064c72c3cfcdd25d8a3dcaf2a9968aa97f8189a37db4a228ac26894f3218c1466343ad41d6b292621e795289bbcb5e80740ff91283012a7f747e0220ab94a8ce96fb54c417e0ff6fb1795f078ef6039939c24b9dd32d31c4b68069537\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = d8436c155e096de5d22e627bff7f42869fb228581273e9eadc0c3f35be02077b3d37c8c6e4fb39300a1093af1fe0cb42440caa0564f7a78295bd1f8946a218051f7257323aeb227d80f3430576da12a54687c96dda4c2ef7e359d5fd17b7d77a2fffb09480d17a60c80f30c4e06724783706b210212ec11cdaaf91cb1a7648b3d197a4c2f4b79380f356a06f026358a5381a4c975eefab6e9546619cf4df87ec106066448644a415820af3136deb86d34b61337b4b0e3a53ec136ce8b26f949a6741bf067ad69da068af1291451b0b882544ba72b74248f6f7df5186ac7da1946c4faf1e1e0f08ccafa7bae6c9224d1ccb6a5fdb778ac4e55ae414be393de1da87424b59de23", + "d245da78bd714ac7d91103c296d4407ec50b61f1173248e9aed1b19ae50d416d9d2cc0464261ca9caf17060a0190baf5e1e3acb9992da2258c8338813b2a14dfb1da5947e694a44e9aa5ad75eddaebed2f837a2b3cb5827ace240f754a9542e94f9734d8ebf895a3175e978731726c24922daebb40ddf75aa1d1\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 385dccec5af89ab079eb126efacaf253d560d2f0807fbdb510f7b1afd9bf99bbd2f37e1a35c6d60517774be91f5f182726ae5bb031dd5013addbce8601b17e36ef790c99221dcec94a5f78d4d04deb3cac59db4dc87b0fa48e6e1e846c8efa86af95f13f28b3eb32b0b5afc71e7a74a713bc9f675629c77325527212e3a033f11722314f16b6f5597910a26aa71042ff8ae271d6adf3a294eb2af5dabb0406ede91a9f14fbd8835f83e50ab2f47756e287fd4f0fe09c73ba13b84ef6510a40a0aaecbc3e2d3451024ce5e08617e8b88cda10d3ae277636c13b61c2f81dbb1ffbdcdc4b681f4cea0ae6f9d30858b9576e5c4659aa89a5a32410f07fc6fd4ffde8f7cfcfe04a9b8b9bbc70863360b71ebd1b0c9c04889a2c45c24c9fa259e51deea5c313a9e18e8e44ba8c892b7e3cc1c3877cd7531b4886dfd7eb0104ff2af8e5a886774ea7114c24cb6fd617398c4096355df008ec9a27b7bbf6220618ecd71edf86ab2eac7506de4bcb2151605f767e3d7663dab57df275136299af1e59a5fe\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 475af5abd6944b6985018ac37700f22f00ea36a9e1d6072450c5e8cc95ae37f13864b55ebbed41785a4222648e70841d3e5e702efb39cc58fbad00ef9629af8b9390b994ac91e366fc85518dce5a777553019604896d8b9130664cd5f40afcf455caa40d684ed09c3c968779b06a196b8a65966ddebd3bff289b6031bc1ef8ef64d69b9f98f47ebd8b28d5b761f7950942a714f487020a9fd23cafa893391712328a275a2656076e1ffac7ca816268e17e0ee5e71636c8757816d1f7cc199850c09cecef27db8b854023b174b8e266ff1694a05f78dfa84952399ed48102fe170929bb050f8d4b1fd2e5150a010b77e270c50c65585c36e9e6c860b20df609bbae4340070435f7a8c7acced87dec7f8bc4e2232098632794f2858f5ac5e13aad50c4c187bea9d4d7463530bfe565543079748d9f1fe794bbf7a7fd525a907d7d533e3cd2d6a8e40b26773084f0ab15aaff91c29a7c094b88d45ea39b37c14204682f9416226d11fd577dffc543066c5e954c1565c400fe07985cbcd982332e1e\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 201e55e5d00bed299bbf003fda2ff30383c34b8db32828a0737b499f7b19297fe05c4ee5f50f404d1fd347c4042754f327e0aa634a832d098dc8c4a2019114569a48087dccf8e30dbebcde638c8f1d1c7c61ef9f15c478c8bea4d9ae0d5629f2a420e9d1cab335d3237ee9675ed06790865b901cbf29de2b730b77d8319ff9273aab3e041656226c129048040784edf4d13ee1def8fe4d52beb55394b34817c9fc5b64bf6702df68211b637e3f4211afecf8884867f614cdb0eab49a70d5e1e61947f7a2d71416dd72b826968592bf88feada316812301b82694feedaf8cc6f3e2542ae0a3c4023d3e8a9aaf615b8947355da990855538f256927325d65d4f0799039e911cf1e0e9e940a88f771a0e4ffeeccf91588a321e26a48ff2da5d921a0666deba235f7decbe1a3f6b929202227724032af86872ed2e436aa11712173cc0a926b31bead6ad31ecfacdbf98ffe30e1505a42036ccbc76c60f216486ff7d7286324107e95e935a9eba9a4edfdf8f6d76d49a9a9db3aa86f7439609a1a0bd\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6419ec844dfdf0475c7db66d008c87e999d7ba56b4e567c344c2c6c06d8b07191f0ad831843db5cc931a96bfe30211447f639781c3563ff9d1991cc0e1ec9c7e4312440f801dda8ff5016ad5e1cd12cf69fb34f4b45118ea3baa18502fe291522b5c7f5016c4d770312d64f18401586904f1a96ae8f99c539026a3aa71967af53dfb88e68de1007b063a581d88720f7f5c7c52c32617b1f5f2cf3d4a2964456f6bc97ba97c11f7fd24f8a632a458d1cad6bf78389053c74eac14221a0adb1b813e957b3ff9a65d143b9ae9ebc8a5def0b0e8db934bc04eb7c91c62df274b50c955c374b5081af628af9f7b86486197688b7a72bb634d849be226cf8960b5cd9d1c5ddaef21c919e755ed17b4dc4aac8292d433ecd6b97826d338b785903e6d059d3a7d051d774183c4344c9119b93cdc5fa50ffeb644c09090fdf0083bfa9ef37d01081bb69e28f6d3e4cf2d8ccfe176d961e67f2ac58dd865d77bb52594aaa87be0b2979c3b569055f59ddcb5926303b3b9109c372d79850af1adf1538a5779\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 7c70ee1645524561876a1b311f389b53bbc5350bb4554e02b427224bb121ce8211b51ce67caece664fc45fad2df211c579e888ab20ad3b86e13b9adf5468bc161589778767486cc620822e1aaba416da06082f48b7331ab9b2c1dc32dc03fd9243b658c9d701f53fe46afaff90463ef6fab2e2467edeaeb01468f1b348d23106bee3637428482f2e8f65466dd9f9a79b892d45e17e7ebe1e0e4e0a227094aabdca782eea92fb78ca38d1e2f9eedded60f91388136f61c450ece1fa08f5fecf50c3e195ec6ab609cf5c20ef8fe342d90e21090a97eefdbd1a69432e2de36d8932b580a0e9fc7ccd027e73d8b5a580fa37a02cc0e304c895cc9f2527a864b48f531d64983e830cec0aaaa9895dd5ddc80a86529dcce89bbb69b6b8b03774e5c03f2412796dc07b5353c52420eab2664dd3ad216fb69c2a74f3bc2a1aeb8efe29602bbcfce10c077ee5768c6f26bfbe0d52ca169275fe87b26af1f2115d5ca592a1c8e63198c4c5d088f2b49aa6aa58c5c0bdf6e836c2cef0b34f7e3effde1ab9ed\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 71e837b50fbaebc31fd94343e5d6e5f8bc45c563e6d263fab9383256fd5ac1f2bac07f6c0d8d90474a1e985ecc5a62481d372ff8b37a867209db1f4389fe80895890607b01f0b44601206a06348813a7457b7a97c7fdcb1b21b2b4ab79731f351a515e2410f93646f889fd391d398a7fa5a0d21b1ce57f6d8c438262e81160dd0c8fd43325ebb6820cab91da203a988c2595268294388049df95b900cfad08fa4b8c5e7d2d4023d0c71d18604388a422af8e8307c6451cc2f206a70669ac7177fb8ef3532b0b3cd4231d350a315b340b9e6603b9b9c7831ef885a72f0f4ebe16ec9a7de4a90ad926b1a4843546f830d50b66d3652b9deeae9d9cc744d3d4f2152d3949b3e71fb0a9336fc8ece6fc733d63c0fa1141b63639048167e1d138a5e4b50ca77382996e7af183cbd330843d378371758be58a657a286c12cb6d555874f38981059a895b2c5f0e77ec0e53c97dd42d64060882bcf5d1239c007166376c0c12e9740b2ec3bb6416a23ff4794a525680d3ebb2c77fd697807044ad720554\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 376ac86131ed100ff9dcc808553ca9467e94b564faf47c37a9c383e5dde02516975884fcbcae65b294483f74a585c2d61977174f86df067f826f60c8820f6b99fc78eb830106ec1c9ff4e5706b0de93829ebda0d18924503e92dbe58f68be94fa8dbd16ee7b962c58a1eefafc0a2fcb63e086754ae66e5e3366f8c739b589cadab242649e737a983bdfe88bfe239002afdec11dce52597358d79cfaa72820a37cab83b03e23863108920f435340f450ee66bb97b000cd12347febda1b4e55bac1f4835be2a77fb164dca4c1800099bb42f20fcc0a9f36a7bbadfe979861dc1767dc3c58000fc4b4d25c6d4f929333256c5aca2f7bbed9c9499785fc623ca1686915e7f46d66a888f331dc6d1a2b34a09a526908e9b2c19fa2dfb66fa4adda319023ebae533dc57f3fe9895e523ab67125e0d296271587774642e44a9c034ddd876f67c2c1cf7599c31581b57ec97df1841b5716406fb88ee991abab2a34f5bd06017947a1b43cebe448daa1d98c47a56e813e74a42b3ad05c3172cfc394d5304\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 9f71ed0cb9f065dc961b8ce1a397f5c3eed98aacf7366be7a6c62ed2c770bbb675081565e57d0805547d36b8166acef4468a2e122f92504263a716342db40b86515a34ce3b99505af3668b1e94e6d9be2ac4cf8b565c4fdad32e575a84e0118113e74875ab59a627b18f01b3d85d91b679de5d18adbad1391233fdff71fd1b08a639ff8d86a28b75f161ca0c711a11ce506ddac3fa450de7f0225c801b1a1a4438137ffa669c2d51d8ebec054aec406f890ba4baf52ab45d7e32f1b32d828d3c6d5cdd673dad9d67d192ce1a66c0b0f46725cc4499b8ce302e693a388b69d10ea58fb87c76adb1ec8e7a998f430380a703160b55b62bfeb0b66ecd0190435c387f6dcc0297603b68b4059d88bd671ceb59d34534f7780292c25f0227a7ac84b471714b74be44104817591c981dc4f795f7162beb8c5af79b267552965aea4cc97ce44524f3f812d455bb7b25cbd24f432751c20557fc16a763430f7541b97c4249a12a7891b67c964e0afc6c205e4d6ea5c531b6cb542d64d655341c61af014d\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 938394f2a86941956721d808ccc01920c59f3d99370036e22c8a1d381a83feb1b4bf59de0dd2cbdd74c69f284a52e3c27196706c84ebd8dd7d08f4024609114d3fcbefe06ff94df832a37c8a8a756580b5fa5dd72e315bcae7fc0f94f5aa592f0b171c9771d5c4345edfb625967467b3534cfe958a76adc1337786c634db7074126570c080839f7cf8682f14cf8e62c8fcfe86d2c6fbb5cb32ba7982c924f2a0833db59495067cb20455e573d60af2ba687ccfa5ea0b0004b8ff7f49eddac928b61df4c865377438700faa2db63142cc64378fea33289478361ed704f9d419415c6b91d310bb41921b0b09789062be03ced9fbed5587414a6c0fbdf91c98001c8d479683cb3bc3c6cfe2ea222d3b58fe49bdb1520548d193333eb37ab695a99c9b98d2f8ad2de7e8ea12dd4740e11bf1a66fa33d3183790624dec2e25f20ac79ca1e605afb4c7feaa7c15fbc8bfce4835e4e2bb60b3d4691f9c792c954cac2a432254b8e293166e90d20e5ff6de6026cc696e5849f9b1b427212241b15791f9b\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = d7cac36637ee8e4851c5ea7d95d46092937c85e34d6a69c88a0beabe329013ae2ff61c4753a1670cb08d7b407b28161ac50f50f30865b563e684b90b652daff6", + "b6babd850bf208969466accc03f5a48375f7de56853dac4679f1cad8da476b306b7d007f61a1dc169d1450a9bd25959b1d2b0ba5d043e4ec05e897613a5aed53fdfb528057140202d90bcfbbb47de8dfa7e95f5696ad245f2a2061e90ce825366c1e9b90996bf24c73a5dac95751bb9520b4294a76217c6cc3e0ad4e3d37ce4ba67ba09d7fd597536d90d3e65b391d589d0d4092ca44113da696250a6981dd26f4197db7c2135c0206a0120b9b42c08a1ec6730694e95cf73723dad6d40fd1871bed3fcb86678934dfc459131c84f5418b76d1786b55513938eb069e2f788460fef763ceebff1191daaa8e7bd811fa6b44d6b7eec52bd2f62b8eff81fa3b5459ced8e8a8b02d2c6d67e20117eb6bc3cce5d77488f9fa11363e8bf99129a5de92b49e23066e5fb6da9d352cd9ff6e0050a340fed391cdcf23d416d443a86878a9\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = e7b23269693fae38ea2261ea5acb4fd147c47a71a67272d1b1e2ea49b6a82d6abfe840cb8f2f756922eb6d12dfb9a3c95f9b1acda189df076f6e127e5a88bf3c745813ed9d858ea25eceec8393c0dae2acbc6531df80cf591b2f0bb758c1404be3e5e61e26dd194406ac42ec7b925142b40888b4a8331ab04932a184a586260861aa7eb597d873e21a2a36066c7c7490379b01b6b378a013b965c0e0f77d7cc6ae56e5c143811fc6fcf1eaf16bdda1d110e27527bb49b98efcde70bc742b307478dab7c693c543615fccefffff2410453ebaf289a9440920d230e556766902f9f4feb6e950f88ed1b4a08320f6ba997171f56dce8789a462be0ea6ef38d0195ef98fd79d51d1943be9e1649b221f5d087f96a4dcbcdf086161f1de31e46e3f65e1b63a2176eba38fad5ab259bf375d73b6d7227da661181c3b4a13d7ed2dcab26b71c0e1554bfe57318809e32f5b09eb3dab4f5d385495a1be1899548bd4cf4d5d6ec5b88eb1b69d6c5bf20a539af5d6be5bebf29c2813f1db6830258b3eebb6\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 0d2c03a46e39606fd20a39650049b00f2c218a92a590d887e26f33953e9cf8174004c3bde1676d9b3c17ffb7097670fde1c99a378c49d1134c67b82867440a4b2857237ce10a947333503a63b571beef37a59b3511ac6709fa3ea5d814d457af1a864ad365bbdaa383c862c38af292068d839728bcfc1dd5cb7b310baadf1d70419159191b33c6124d2d9750b88eed87c71e811a7f65a5946ae5ab6ebc8375c6d7fdd1e425d4f48b149d2f48fae14e6b3b97f53639c17a68365cb5b270b52bae1c24042776144b9e5d54932524cc83af8eb4a710f2d301276c215477f7192f82502970d5a332f912c0a9ceb7c4104eb0c104da8fbdb3c624d7e87de20b770dcd568f097cba0dc9c1b2ceb9ed4a9d73f7f805e6aa6f0c59868fbd8a6251598617b157ee31bdc119b0444b60451af8fa90e4c0991d91d2d08189283bba14e6153ee671e83ac12d1c8474a08374e47f0687b6fcbd0b844bc435735645657fac76507a7113fb5f4140c01070ec5b27523effcb47eb426bc3231d4e4dc874c4a16ee4\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = e383e41e1322976da40c9e5ce64c7dbb0571ed9ade7262251f7ea21ff94c75002f39edb73f0a9f86a2070b5fb143d078b14d908045135fbc930fb79a59920a90bf0aba0d8d7abb46f619cc95654a6aa675ff822d43e22b63b06c3060fbff2873f3e9aa728d663b64f0b0b561da9c3e98b865ddecbabb990463bbac0810b5703f5196384f0c8c4ad6ad55297cca2267db1ed3830e064aa52422d614340af68a361db77de375b7bb1c63997ca85319738c4d0d7519e0a8ecd8cf098075b9bba602f31d06451f83691dfeba27503f969f70767885c4c659e5aa1957259ddfd8676f58dd5d3fcdf951bbcc9009d029d17b0eb650184bf9a2b2df5e7ec8caf3a52f1223611f1c44bc529019a1e38db9c309ce3dfa8d5658ca89eb071a7fdc13fe666a09c7b22650f07eaa5e3943568780a2ac282fdb387d917639b9327237e7d74bb88b19f53719845d0646bb548fa5cfb945550cf1fb5187c142924f11a7043493c53841da19ffe27521dd472108e75980ed1f1ea80325a8aafb272939226284b7c5\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 01892d88434a5f51ab9502d5f3c41c3dea7d6f8eff6a14aa90077e495a0289e9ade4e9b1a103c5436ee2778ffccccf2c99ca4b844609cd95dbc1aba6353929d8d5b0cce922c8afd3da22bafd6f067e2444cc060c22e207f593832604fd94ba6a0c91431cbc5dffc9a272876cfa4fa83ebf1de5e2d889212818a7283433963ec9a15b3ffe486b69c6c3748b03823485182739b5e1eac0b90e6ee62aadd808160dc1ca47e2b345ade0245f1e03983942fa480a38c53c2dfd3666e2f81198cb85424224394efc0d915d7b4819c92316c26219c46c85e3e29adbcd6102a82159dc5227f9392b28b657b08fccab9233ce668646826a0611855547be04eba7dd469ba2110aafa398ec6f61eda59b620f7f95caee46b8a598830d851aca7b7f15fe35fc8e4bca694a0ae9af7567724ba45633ea12a6736dda8c014a0a00b9789905a6c1b2a38b1b270619d79532e07c8ed940af69cd7c4553d6b5938f9b6b4201b495e44358a09ba92f2c487325f9bf3a1311a47e1b55aada4c994496970f80bc2c4558\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 2cd3566990157944c036d72097a0a275da39b5aea4c5b091112cf8376cc1f1cee1b06eb2000b3a2f6d5f8f952e95ad92250227b1f790b23e394a97a9037762d5e1149ffcd952348932e56811caf717ace174c3ee096bb877eea046ae40478c14f81aba9d3c7e47a988204ae7d29f482923047c85b14ac51997b6a5166bca2c73d1b669d842fb16fae98c4dac5edb48fbc7cd38e120f8a70814592cc70dae5f8a7fa8c53bcdcdadf025f674e51abcc03bd9883f15eacdd0801afdc976e61c664a250b6fb211a4a69e0547906914247008beecdd3f513ca600ee3a466b8a78d86d0c5341035acc64c354f2b68830ff8d176272cf1ff541d1609ff3799f0c3a9e6e448e0b713ece48a14db4a58df585e2d13fa739d4314b98ec75c6cdc74d68481662c48988f48d1e8d98814395340e454085e1153f6bc9c20e4a411e2c610f424040b011f66a6c5579fae1b9fb53b673da0cb5a02ded3fb37e5dc117e4e71302b360a23bd300143f7efa1a5f2d0052d692c18bb4895d52c0bdebafa0b625e13134\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = d59ac64e907bfcf38d4bc3fa50b6f2799483d29879a006bc352620e31f395d8e8ee32f0689a1b145246316d27487fcf3f729eb644d9c44703aff5e57df0567035c18c3af96db6e86fab4aa0ccc0c6fb203a50941767dd17158fc4dfdc34151bae10269bd68e0777f23ea0ca8a332f7f9e77e5d95bb00cd6b8d3a0279da3078c1bdf4824c433f13117e4755eb3fde5f9bec4006a8ff9076ec5fe5247554a8e76ace12f27e819143819bdc6112af4be9b25b896b01608b0ffd11ddc87cb00f826458a5357a78e1308e5b5b961b53e8a19b33789c0f4984fb1e6d9315f9780f81e6196f908fd00da1d2fb6b61b67380bd2d2e579829edc44002111418f9ac624a6165cc538ed0ede4d7363b7f716c84e1e9213ed70f02b5de44ada49cd7c83ed819604433aaeca68d52de440183d878b0315388a884824371aaea41290221820cff49e405544cf3545e4eaa4e7697cfdee0a48eb87a73ff47f4d5d8dd3a4f8b09ed8cd2223ee83edf2d41b7ca572aba38b64e987e668bec1ce88d24fc499c92d0c7\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = f294d22fcc6f9cce7bec0e44a9d7eae443ad7b750a72be5dbb41e3694f48720dc2c1256e030ae1ae06ba65cbb59e8d180b222430a8fb10ed7abcd69c869ad1c8070f33d0f262085414f7985c47d33d0b398da9d272f996cb701bc6f84eaa0861deb5b7cd7226d2b8a969b48d6272a98ab9a9e3b761231e892f4d8e9100a7d1bbf820d9102a62d7d41d92b3d9d55ff386cdfa066afac04c50bb2e1da0e1b9af62de2a7475bf403dd2a4a50f80f6a0f0eb9eef38e00f19861aee8d78a13328469475cf42e0a675f2d6f086115a14243a59f3ecbb6a47d25cd1011d0bb6e1ffc152060465b354ef2c66305165426ec72625d6fcdfc3e830a6f352383e05556f4e14f5ab739f6ba331d3ae8ebffb49157ce3c597eb9718635493e8a0254410bc75755c5d854a316a40845e97da60412eb028cd97d206d05afce20a3221f13ffb7389c400da0047c6690116de9b987c02f09db67313b163b9df54d2437b1f857832fb982666c19b832f6928db60f8c695a4d95571825b7f87bb9601003f95db54a813\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3d8b8f962091c0abfb446c89b26af8dcf6b607ecfc052c4d240742f5bf9568a7f27cbd016ab734220e8c532412fd3608c8dd3b2437ac93071b2e523356194f3d19cef8ec8c6a477fd9c78a67b5e844af28afd7a7c0e4e995020e5a33db394d24dee4577c41d040cb9f78fe31027eff68090b9841a66a83c4af2cb5d076d853d9de73e2059234ad3d62d56b23d80bf9de926bc251a5530dfbd564db9ded9edd75db0c96dca8f7e704d1ecaf2cc66f12ccd9e537e0ba4d64ca3718c439ddd8bc305367da8d11037275fa2589451fdbe2bdc9951af42034521a58f8743d4dc1164dcf83e6ddbf2cfca80ad5e6346e52b805e27702e382da44602cfa4fa98e7c084492fbe4569bcffd7ef3885a05e5b091112c3e39a7e3ee6917d33367a12f087653317ffc156bec46768403e80a8bf59721249c7b909642751ddaf3a7851ae65146d6b44104215218a5f2bd8c4170bbc5dd69afabcd13a5742909a41965f80e191c8bf21f2be9973c8f656bfc46812c3d64e14b52480c31806dcc2fff05ed7b82e0\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 04dcf055ea6c80a04a302f8b6c7c66e3ac796c4c8c112edaf75531ffa903c5a4c749947b51bb4f74a95b05572cf7f99505c7882dc8c9fb836930a7b78c48e282c287cd64c1ea36c494c1fd7b1597a727c9c0bdbefdac06a752aa5527400f8cf5d881c4364b4ce0dace6c619de1b11ad1461cb9fbc2ce9ccd3e2be901c3204cd613d0e77d7c740bab1ef2634aaa4ffb6f1f25f9982adc8f6c3246267e33de63e7e346f1e22b45ef4438b1f0a8324da5db56e749dd3879fbb5a6fdfde802ed618b15d3abb8fa237bf4623b66a55365b6d771489d8c60f34f83f30092df049c667e86421807561f78bd7075569cc302e3ea72b0559f9f9267463205dee24963c7d56236e433d6d944d4f3708da6fd12173555201df31a52694f0266a4a417b6866e5e33943847020936bdf843fdca5894fb984b6784b1d506360556f1afae4419021c74c6d77f2838b6", + "e4b7d2d040bf6dac3ca591d60a3db50896162913665f7b8ed3ba1027fe246efe41c59c7b5e952aab011e2f8cf72ce3a1bc57c02e9bacbd73\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 97ba0c5448dd06846b1383a32d9e5fac291036802c4f2bb5499d09dda2215eeedb381dc755a8ba1eacf01d30d60f7850e0d86880cfb11f181933afcb6c9101c97db5fc943e89f0185eb7505b8b0d905690dc1d9d042ec098fecf5443b98c61fec2131b86357cd34efe4f65071bb1a645aa1596795cadf69e14df98b511297f17330c7dc5b9403070f3840d8fa3740e997b4671b7a1baadef2d289e66fb01c43755cbab218c57b871071529e203dc5e884d6f86b45f28e37d80c77d81b3d69347ba7e476d521e17159e875ef7f49ae685ab56e100ec475ab67d10d9337294a1bc1ced1413a1ebd8bef58364b1a1a5ec1482447649ee27c4548f70f12f5c32d8555047834f5841f30a1556e409489826c0d2a03334a63da4957e7ec9608b5ed18e1193af87cb75ae32432021c8094b80a71ac283fe93855033e2cca47d5d362a37607fca51291957efb05711a53ccf7184d8e2a6b79e2da051781582f3a37c28c7ad095f53680088308d8faeca5b75e2a27d3b62c40c6eaeab9ab8a2d6234eb8b6\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = be57eeddc0bea94257eb26456a6a4a6d9e9c8fee1ae2e0121ce8e64806cba6692643186eb10ebf43c0cb032c641736401ec189adc48ef6b222f19a43b09b6d81a1626d93a49055e50968e295b78f883cbe0df94251d1f0c8c067d2a5d5ef7eb33b01289f9d666e1f691762b7ecbac496d0ce3dd2e40307131152068307f28f8d2d38b427e03843a7097c7af5628991b8a752bc1eedccf8cb2e4a7507d4d03ef6f18ddc6e757acf87444ca67d7292b273893b41c1ff4a2070043d5ba76f4284e4f16d75721da32f2120ef666d677b0a6a04e4fc8ea5e5d64552cdc872bc860dd5dfd9939143c271c7886505d696be9d7e7864eb586e396c0270d923574dd2dee855ea3d7f6cf57f834a7942ff2f5ccf88d312d4edfd08fd6615407059604a359548af4d92794ffd1a610d82f04d6453bcf35bd8ab523b06a6875e05dbfbb9c2196e2730c324ac51e8c9ff36930b3025bb2a081ead30f887e4eff6464f784ffccad644b9d7354b071101478fd6ed7c64167b90e16d066ff599c5591a943a5f4533\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = ecc5b9067a93fb90cda4b45f1c21d2c5503bea7fe7ab592922cbf90b38892741ef75667da1f0435a25588e22645dbaed66ea912db9951fe9adeb357ebbc25b5f524de9c366d657948c2efcd008decbc69cbf085f094cacbf7bbdc9b863cd5d9174dd35176f587ff4f7878817f31c3a9a669bf53aa38ccc782e98f7232b267045252a8cf3ae1bbefbb2030573bdc7cc9222550f5fda9923dcb6412ca0b21e17d464bf334fdbc9ae61887f1a4a96eb4ffdc1dcf29d6c2d7aab07fe96db30289970d5d8200ac95ecef8efcdd60f8fe4991a22427fcad68de1d94c757a764990acf5a76ff33da928a46ee007367b4e90449cdaa4d7bb222babaf1e2ea5a46aa9ba1a1f3999c6a55c2a36d083dca472d30a46dd312cc123b830ee39283a6fb11de58bdff24df169e716d3f2487f05dafb73cf3815a616e59afc78c177a1bc85ff89b431e988f5f7a43359dc9ab7063baafbce30dc245b5ff3ecaeef5a1d518a09a6426a6edf9bf9dc0a5f79860003ec1704b5c756d522dbd93c183dfea819c9758e5c\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = e495b2c030b082cd0d58097aa1d1d5f4021215109048db0e4725d3018de3d71dad07d0fd5d94df5f79bebb7678bc85ffc09d39574e7e495d17621c59bff6bc9cab066d5aeafaca13e02a79b3c1a5bd5d8540c4f3937cd4413e9ce6f2e3b7f5f8c7b2d15465435df005304db81181de6d496cb45ff03cfe84e75c5b1d4c4bfa4f055c9da0582ce73dc0974ab5132221a61e7bcbe1e3804937bd007d293861f419bf8ea9a72a142db387b148041f34c5b9cc3e034a0d3cc93cf3bd1e1a5b1bc63233fe8bd1e1d73f16386a70533113b48029a251bbd99106ea7ac9313e93e362a9c6956dac668aa316ed8130376912926ba9e9d2a8a9e808a3833614ffe0e22d7e1ccb49adee5445b1526af4e596eb675e12eb89751ffe5b031a106dc282c6e4f06a233291ae7fffad2b1607ab7d0fc06082de63f7e48ddede5122e3186dee3f797888c804b2aa0322564f39f9041d71b238a816b751216aaf83bfe407f4cd28ca2d319e3dbf873f13329c1ea8064bad9d43f00837cca98080b65fae383c17f2a2\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 9ac18b311711323d7962279e8c6d693744db2c8500878326bce11a9beda2084a6552b89ff425c21a22598c09b538a194d177c3aa647cf43648e2b17b9675616f81896949bf455edbd0b0f5713ac950b57397c66281a63b96f7af4bad5c697b293387570926ef7ef85056dd11890c8765223b2569b4115bd36f5e17ad7cc8953a9b6c9a45627cff4addd96dc397051f759635ba3de256fa461a2c56848c924d81dd2a9a59cb921ab4a1b9b4657eb6c1709114ebe99b0acb8c598847a650fd7216690cef68bda445a3710fdbf8540378323d32168af666fa0524150ab850e68e1dea1ec00d2e5e63b65ba6943fcb92217acc16955f2d06731e0684a490ca9721183b2cb72633997e3dceb6fadec188da2d7ecc0ddd82ae7d828c640a89696e66ba7d33a64034100a1299c26ed90fb59efa80a88ac8057adea1378eb7d156b2ed30874eca2a0a5917953c0f865034f53de703893419fc650a0f9dc211f0828343bfcd76f16699abd468e863fd8696a52705d3b49268e76514ab6999b98d8eb942f6\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 700ba7745d6c9c146b6026d854f958d4ac00816dfeed7ee9beb4580abdbd491156bfff67215a7cc23dc0dcdbcdcbc79009c86dcd4bbdb54745a8dd85f7c74b96394ae1cf9bc88cebe88eca84776f263434958617b9817339d756e5f301548a1ca4dae92ce9489c5573b9e5f3841358e339e056eb75b105292d9a1897091218a9a95be4a76d2f22a7797a3853bd156a91f0889898a63cfeb764e643e6f4a5987e6de15fa334502aa74dd99fdf9c074e45e463083d434ca0a31424423257d1aebb68375b27fa1a79d721bd3b1cedf744b7afe62ed03cc4b7e6765c50497bf685392d9e95dd1cc11e0e7be8731ebb689d321eb1c67621d87fb1144d56cec866a308a0b3ceb941559f7d157e87f0daf107e82dc18d3c90c67307664415838dfa2969ef1790c4e99017a1f25977b1f787d6504e10693fa1b79f23b42ea1c5318ae79e46ccef01174a752efcbbaebebf24577fa859b6ba87b540f2e46903c3aff0df72b4f8d10b34630bdb22282d7fc1c4f3d7db661865ab5089d221a1f7c24f30230d\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = f0edfb2e764945f6e6585bdc28b421dd735036a4d109d27bd1d79f8cab0ae46f5018e7290775f5a273459fc9992d217dee7051a9cc86670fc82f3377861193ae3cbf9ed4d9f51b9496233f8f01c9f88c43348f64dc64f2e5fe98f3208ece156aee90baf7c200fb8018d715185808e0efd0c570f5af1f0369ad01e18a3200a5e04319b779266b33d70604265c4c95ebf53cf43518988b7501bdec23c9abecc498d98b5195830b2883b261752b4afbe7dd7cdfa21bdf593dad93b106b91fcedddada864df066cb5f5727afe6ed1567ff21336e6b02abfe8ae391b3fad73a4de05728577d7cd4e0c639db381ea446e1b7c35e891bf7258b53fc356e714ea4bb2856ba037b50035b611f070d42445c9263e968e8c803aa040eda540c23d62a48b9884a9b9eb58bdc621a5369ddcb007e52be1da996f020d8c1a0cde9ce41749f33b9a65e5ad33386587b93723ac6eecf3adad996f5affa7a9772336db2ecb9607dae06cbc3a8d1a55cfcce20a43e9323c7fa7a11b83b0198dafb6f0ba860103a54af\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 350190cd72b31328cf1fac929b03c45900eb1dbdaae14c3553b40b53773324bc17b13fe11282d70b38771b5ceb0ff87f8517a787b0e06e97b83b71fc7b680cd5d61d616c15d6c1bc98cf93b058a5be99ce09f9936eb55c4f92751f00c4b403d9771994acc556d7e69f5682223807b2e7229e3bb5360125e4366052c9629cd1427f8dba9582348e10ea4f4d768d84dba73db5442eecfc90d38116b002dd4bb34ed8c346ffff883444248ec236c738959154decac717c041dcf3df5492f2c9a509c272d825a49149c84718a9835b40a38de6cfa7d6102042150039510ba401fbe53fdc7ed3b422848f75a9821c0cb0c7a0e4ae6219f305507ece7b84be1cc8c1ebda663fbce724ebe7a2f6793271e8098351991389546cbce7297c8a18c8d202227b7dd574b1c1778058947840ff0c601a7d65f035f7f66081dec7f3cfafd042aa15edbee6b37da61ccd4938e7517dc48ce272ed78cdb4f33cd000217ad142f01b967d7ec4e8fbb43db890ff4ec8fce37a00c88ad9407a6aabf4bfad3ccccba48d\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 2a32d279cb8e0f44a196a1f83fa8dd5bda36f2f857664f4155b2859d9f940e8fecd466b3a7589254b3a04846721b8ba3fbda7a85a6a00ae24abb2098d3a1e8cc853dbf693d12a1f02ef490594606990dc8aa7916ff6911254039f4a0565068af5620a3caea7f76b775b96a8d8456ffa7bc6dc9fe98832acc512a709ed83e06c72166512e3243e9e30487dc6cf3d288ef5406858b6bd60177b01f466cb8d963a987bf7ac242da9fb78563c2a8c9891b213544855d3fa92c62a8d3219db0dbe7229eda4178a540f7b103c0886d1a1a4ef2c6bf5388228e64d6caf6e65424b0683d0c6f2ecad03355cc7f5efd8f3a18a991e391bc06b0a645586316ca61e101fc0c262b7f67d7979cb0aa1bffeebd3bbee757d257ef9f84418d2b4f9cfc6b09e5efdc2328f7edbd02b1d9e13ea7ae86d044622773c50a8f0c53908079939ca60a08e652c2a6856397814304def15aec6e636eb6679ecc8619b820a655070fdf7fe2f204bba57a92d894cbe2d7328cf6d73fcab07ba83b020c3b2f0951bcdfab8ec1\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 1d95d2affd3c347ea5848aac974bf4c7ff675a876f0944d73785594e2c8d59a9671d8ce8ad1b7c6d0d51f818cce5ab1cbd7b6e3b69f1a1961c4446ae147d64b3794c6a8255386b96f062e022658e0898892b3e54493c7b6c1686d687ee72f5faeff077e6fdb9398b271b6c038d54c3cb0674717a7aa7e75ea3cadfe87b72aa1cf19c799ed2102264eeb646271a81eccf9dcafdab5aabd586fc03e279cb8500203b44fa7178a9d846a85f2cb6492e8175b2a7b04ce24f4df04e0cbac76b", + "d15907ecaa7c07683e20dbeb1cf9f6f03fdcb0e31b55d77c8180f27780df7b253a2422f0f319a081781ac295bc89de4da40708eba17217a6ef42114bb46695cda20b27590565592e4575098ac1ff27af296245005a0ff49d6a697ab4bd70c6758a1897b0a1c09f32293d7d1b2856730658d43853362569bbad81389e85b3a27b316786de7cd0798c628344954ccd1b90c58495fd112dfd246fc623118c7cbba762535038e10885d7d8b96edc600ee03b1430628df94ea65da17b1376719f3ffb739ba2\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = c1bd919721819b72b389c27f0345d7506829b38a7973f7d4184184de56a0d78a800b99dbd8a0216f60bd2d423ce18a9fbd45f6e0d171e34689e06d9d155f3f3a0c9af594bcd4dc476dad915d17a4973af9a5d480f622bae2dbffa125e83d9995e81112d633daf225848c8e7ba17cb030a469748dbcbefea29e93f464fe16ec1b1456cc823efa3135d49d94e740146de75c44f380ae4e5a6260e64be7f0c3d29ce97c29c9a76e280f50d88557e52292ae9fd1e783643756f6b8fa867deac05c21793056992ddcad2ce5ad1698470cab4ea16d5e1784dd449bbaba725ec74c6480d0d39319bdfd24f55591ecf92e4352706483f96f75d63714fb1a288ef09ea8f6b7f5ace9c2dc659d95689786c5cf734972b5ef08f78eba8d7e18545dfbc1173a561e597b0412739ffa0fe4448d08f2d307baf85d9ecc5c2a57c008f490ba867f5fffbd21091f77eedf1c6cbc563613a443fcb987d776f05e8cd1307018439bd0ac729a7ca05a968d4f012200293a1740adff9ddb877b054c4d11ad42e1456bdd\n\n# tcId = 57\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = a6df51d80d2902569a0245422e5b5e8261903fcada8f01c2c2d4d9897be35c64b7286ac79fa73cf39db3d9e3135af2f00a888138df5d6ede7cac535767e17206f585c57149760ba379d8791126b699230b678bea9762e73a2f0abcbec943db9ac74ffbea3824ddf22c36fdbfe77960149d07da6d5acd80a7378675b3e65d4563d60b1937347a4db25d6a1592917e06bb1564542beae5330a8abf9ff854912efb0ec3d93f25c8c4e19fd8716f22ea63d8deafdbf9b9be61c9d98fa2fd4d2a9605de2fe2d0c1273f64b31675c440ee267f02a981c7efe142bf63a09af9693ce07f6807f389fbca151db87589b82a833daa3b104ad472f69b1a966f6b853c20c9a5a5c10657de941803588b1fa77398f18752c175fc3808441d9abdb5bd84c654706c20969c9f97e24806d64aeb9832540de12232838f257345b58dd4532830c531f7e0f42ce2a032bdaa3fce44cbf1bf2eb30277e2babfe3ad12937dcde9ca6d2bbb2093b7da5cd33446355ff0dcae75863f8da2c54872067a717aa07f1eda8853\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = f5e4ddb832cb5ae5314ed853498d9415027ede84e7280fbd802fa3a10a3a74f4b13303362f1c7dc1630d22712167dcc2869dda4c20b90a5f3b6e9b81f456be5a63691a2db758fd64e9adc4cb761e907cbc112353905858f6c1f0f95aa0526332245713ab02e374439446d8325898f169453933364739505ec6813ab53d6bca1362bf7448e9ef30780d2db73fd68d444490263ae2e3aa1d0f500a9f648e188795347f773d18076572d95d1971f02d781ed4d64b8b928777d9d2e59a1947b067c797596ca573dfb0ba69da0d3f0db71ad1e9b07b31c7fca0eeee3582c3c96a7ac4178e01756d5db8c458350527c9405f4c20b4fa1b30c9c7aefa2b7598bcdddf494ed1159ccf6fa3f36e1523cb6412d8d641c80122a6e2b21253a1268b11b8c80dd98b1011c54bfbaed8c7a9e67a96f0e6c8cd90481f1f7c18a98bfd665ddb512cb2a30ad417bb6186e5e3b3993310b3ae79c1064e353cca881478ad49c8c59696de17859e66b0b0877c711f433e38283092cb80c319b9e663a1ff99cf4e583b1f\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 452a4d8ecbf65423cee481918f6c9b7b4ba369fe652eb1346496553b58012fb7334f9a7c4797b3f3df594938181ccefd3984fc9a8fddbe740d7686e610af25b09a04336cf49458b724e92832e820ad5dbec08098e27431eaf02d81dcd319f585b99e75c311ddfd6cc157e17ae1b33c5fbb4bce28bd919771a27c48bc21b08d45cc4110061f4fe04dab8107b543569d58be18efa572df128c74fdf4193fd73c3bc4e71b772d58e094ba552b8a80c7ec5080d596ef50c7b0727857194f2e1b5ebe7900ede34121a115f4fdf716fc569ec4c6645f06dceda6972bfe2793bb1455b5bca72635aa8599bb67f601ca6485e6ab3b6dd304623ed5e8b3d7a2d07fb6b733fc32491795833f7bd97c313e0865c842c7ce6fac9a304c868e1af99fa686bf842f6c2118ff957b822aac3af68ff6451e1bbc23cb7b9a3234b63d227ce67d61763f9116860d31dccc7f984b1ec9d90377249e73af5dac9759dc82d46e07519f39c2bf21645c68ca6088cd8e28d1afa688cc9d9519e9a29812854f3304475371dd\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = a55c1c5b119675dcf844f31e349edeac5d79f87909481eb394ff5c4aabaca507dd0770eb7c7e08d565adf49d236c1b9f05ec9994e1ed01a8cb2e6ac628adcf316614f70d7b2fb813d8862f0c912e7459b23794029ccafb11d74727e5813267b1e423058ab13fc76504466d87cc80bd0a3e00e77a3777ec5202101ef44840c61aeb27ec38bac175980046ea39a13169613166ca401ef40a107fe1c03a05dcfdd6252bbd6a35b1fa4a54523d0efce0d45d194612e1cd6a51cc6d0be11078ecfe5691a43e58f1bbfcce28e09f97d8dd1c6163df9fe1e89bd894fec88676801c5f6567a8250331a3982d90be9be7ee5deb682d44b97a0335c20a9aeb851dd7c02eb7eb47354a02c13c3ce678de820d0e7f67fb2340d79f94754d21e6b61d95d1f14d63f27e47d823117df4f4c84812693193efad890dff16b5119dd78ec95653bf167f740346db8fc3cba757f2a43f9f53bee8e61eeb513790f379ca9cb2d074506c9ecad8843e4c450b26d34153164bee5730e0b6f2a7210953f46cc9d5cacfe30a\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5d379e24ce1388e6ff8bd565b3455ab74f213581ba2e3422aa02d94596844b94c123f3289fe9edff9897cb913a957c4499bfae6d4fb2700187807dc9adb30f568ae5bdb978f1dc1761a465ec87000a4a7b24372d76699ecec070982f66d261788060f86bb0f087343fa9f25beae52436769714d572bdc4f4ab97ae7d47c8d314b53470dba0a3b340bd211d562687832e7d58e521600f69b8b60c10aa2948c1fe5342fd11bb3e218337bd77ced154146d527d493492ddb2e6cd2255be8967863ef0be88040e674a7b599f6388894c04e41d831b42dd9de2ca9c7314c4464801ad2c72e8c7637f320c2fe5c0dec3e4cf3f7eaff761a0a1760d1144b1186507224daf05067623513b045dda51872ff566dba379451e6aa53eb6af12132c4c4d77a90746b56a0a98147f1e98f2b16941b4cd5ff9936f9bbcb72d427a8b8ace967f5dffd6b5d6f345b4b99e86db01790cae49fac889a0f58387a795dc0bfea7f1c2ff3b8615debf9e7440e22de113ed0a76cc38d84386d2859b59460d7a8242f8d324\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0e5c7194c9e30a8e07631b3a6474041c85700a0d1dcd9701b3bec1d45bf2837312d2eebf25018229c86ed492d83a72c6fe2726ff15b44cbd5c3b6676b67e1e1360bf5725effcf5153d2b2e820b90848d36a5e00c2e0c2d8daa3f31cfe7aadddb4babf5b8bf2158611821df7435e2f73b1a130e8cc6151fef3ee51abde04c2bf0b0c1a6922638b115aee943a6153fc07f6dcc4c4bc132f3676d3de947bfc3f446323bda136055192e4f1550702d9f9716edff703570a5f736f0a8ce220a1de0746f557e2c81d1723cd484bc78e7fccc6d802bdb67b94d6be1d48450e4c719063ff07d6d2e01f4669f9739da38f62bfc01145739e291992052f17bcc59114cd5d2c12eea3324e7f9bfdfb1e0bda3e8b71a89dd351f9ac5e246d309a87092e06b7c32f67d5971b89482862ac89cbc168eed944106f647e33c33f27e52ed9b57173207ab0a2ff14e7cae22755025818090fa0b4e6827194c2561a7d43094eb6212b65395647349b4b7bac27a5c17c7903ca941fce3d7ee57b689b2bdc8b547aa5bf8\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 686131d0f3fb2b615ab435793456826776a9de40afd11e3a6c4e583beb7df00d6de5bba618ee35e25f9199e47f15c0f5807a10bfbd38bd0b9bfee3ca22b0f9ba07aad708cbdc5545d05448ad09d90742e1e61ceb6b7bb498ea77d3476fd283cc4d379b4cd2e29f1b468f733ee920d16a06f6689643fc611449e4375ac7f9275d553db3f5fe2a858dffe4c9126595e69366698d27efd6e304a92f43d0b43be5c05998e91ef6a73e34931914a3e29ad2f82a3cedc795a430dc877ab5a5bd0816cba7e8cc5cfd5ce8a3bad76bbf77dc66d92652a42eccd7452bc7104a1f208cb0e4252648c3036affbd527a7130edc3da5735229511228abd4cff1dacc1297155cd3a877be79e78020587d80ebe481af9036b83e4108b9f7a89da26ad50ae65d9008fe2374564e133cd6ae1e595a332d08bfbf3612ab7c8b96a735648173691eb124fcb36899df3a5c173dfc1f37fe6f43b7234cae9e373a212484d134f8fb45a34e02b6d9e59d3eeb7d07e4fc69209e30d2d6c1bb763b032ae342bdd6a4226b29a\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = edad8c2d141137677b864afb778cab75c44ee960390398b25bca129b61763fd6ad2e9d24fe3a66b8098982b40081b7520a99e622f80d1f456cf5ae5a000e943966460e83f22c80d32f74cd38111517db3711f78126c0cfed6e5b528615804908b3428367ae7a2d68e5e41ff3826e4882c6996c26b6e879d298bd4fe7d917eda57d56e03392b112e0f940ed408124a5bbbbe4bd1fe4e12392494b155e5acfeb7c0c02305ff8bb17f291dd9adab088275691b217f8f805baab6d5c8ec656dbc67f1921f12b1c3670171e81135f16846e831f57f67ae700f6bfcb4d619d3b9348740bfb3ed9e9bab3c718c4fa9ca34d9814b96fd3c775d83ea7729ce0a04b84014552174968fd4be92f281d764a8bbef9f1b6c04e843ef7fc5618a945cb435891e0ae9332af46af185a91747194cce9f3fefef1bd0e6f1c72096053546d72cdce8c764b27baaa01c3530eb115780f2a9eb1555949f6838be7b53f282606a82ad8c56374b3dbc4d50870bccd1b5e2c50f6d32c0abb92d784de41fe54368e9c8f4ef1\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 9702fab86b0f4cb3594c237ee0dbec79b169a6c9ba83ad6eb3d4af38825fd04a938080429c1409e48e764cbdb56112e217b56f7fc2ab0", + "cdc5b745e078b1cbecbac1dd0fa05f987bdd817c4289ca3418592a1ce84a6357e9943f49fa978a06f0c5cbca2e60a3f159719626e150c27b741481fb0f8e9987b93d72d40f709096fdab57bc3a0939e688136fa819d9729cb7417c18bb7aeead2ee533da70df0571c2798079f663a51aa94e89c8656a6e87171dc3707253b24fbc4342681b51be9418f34a5a443a8760d92bd36c6fafad5fba11ba24fa1a529b583f637d6b251d1f0eb9a650a020aee27f9e5dfe882c1da9caacde3671fb6be4b3af424f8312f1f92eac1cadc65fa1bb146e4d3df14534a320702e22addc9426344ccaeba51dc2d0d3d59a029328b059c7f76dd6a7bcd518530fba8ddc7cd83411b772fce1ed464d13a25385b5537a053e3431fbc958f04d1a539401f6660e5c7019f9617e6c4e5608c409e70d8b16c392e6b3b77860c3d45aa3824dff4b30372a061609f1ae1c88cd0\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 0eed6d489bde718f00aa338eb64e156e44ca165f4bd09e59ac893e02db61db21aa1a475731bf1ad7a907c94b1b080d33f6081e00dffe5025720b9d828523a4afd2fdf644dbba202d7ee2018ed999de038ea4fc5d96119ab65f0b2c9d889a47aaccd9c42dc5373c8b64f27d2a2521c7dcb8085b8a51c8a5bc08296b2ec2ae980c98bc8d00936b8c96805eff7c09d3835c1479f62a8b77057d8e8381a412c32cac8aaf295bf851a2711466113cedadc5e90c8d0fd1321e6a9015b798eaa66a41fb27a53b0dc80525c87663eb805e76a3853961c12a9fa6520c4902d4d69649b5543b48fb3bc8516f35d4029dc4a140886396f9a69529e8e1b7147e0bcf5819dad1a5340cba0ef530da999325572916bd4c1181cb90aae0be3e4124e08663ff26c8749032ed664115cd20d4f92d92adf2cbc704ce99e389aa0e3f0cd8c1ab905d1ea565701d1075863671618a94a47ae8bb2a2099ae390056beb9dfb1449e363cc86e5e662a176769d1434f249a21a8cf84a69e8a9d2df87b343352fba9260f88db\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = e764485606b1b477efa3ca4765d452e2b8fd97c8a1c54c51d0235bd1360280cf9c1f21c9a1c148c2a8e560ed6a75d5c324b36d0148aaf20fb2db59c5f461f3399b112cc4bb4766de8d9789b8241c7689a5d296f091658284ee8b429bd3c3c4164f9a67bea9901c2fe89853d6c616921f304a93cc3cb4b38ef80b147866e0f7777cef50f2dc63ad61adb3fd522ec0b9feb3fc9781e97a0a0f1f6b1baca125d9d006de6d3befd9f823bdb307563cfe63ff49d767d68079386c30a03c373fb3cec92c66846b6b87bca60235e0ed1993598947aabd1fb284b0ffd3a4b4a69c5c79483d507d790bde13a6a9019c918736d511cfc4793f75f201405b62b256528d377411217eaa2789b2e839a8cda14d1ea408a3a8bfad6f6acfb33f0d9ea4aed34715501c807541d8dd5da9160b11c7c0ac8ce49fed32fb60a54b1e031f203872a6d8e5b4536fb25ca2e577a8cdcf8843e3715b97983fe935db972e6a8cebfd42c7f348a02aab0fd873ba03d8829d88dc2d0058a9315c6fc5f035ebee4c97a1d5ada7\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = e220c5504ae996d68892965dbcf9d158739387c655c4c44b8695f3f5a00350044e6a3ced79ac812a78ded031c406ebba2d3df4223639747ece73d69e2a5788de752d58a581f2b02dfed499620248b48da2776fe349897d848b8121837714cf29e3a929c34113a05457e5914cd9c14bd683c9025e1491b9ab4865ec25b281ab9696a9bee80d2b32e9ed3e73c162420800c2997819eff42caefc5d193bc3107c567f7f364f3f1b8cc6c8e07b15d00eaa698fdcfeadda11149bbbf0d2ce84162b5f2fdb1763c0108e540c9536318b1eb67dca7cf603921333864a6eae20724ee53495bda6ef5e81a563584edd6a705a434948f0150f711be95d763627c0ba132b8592e9022b18542ff2c314acf0d597fdfc3f9ee3ed617b78cca7bef4cf259329a9ad95ef5dc636b86434e9e7f9f719a9f6022ae913c19737b81bcf1b4281f8561e981bcaf2c38f2265f44755cd9b2311b3ca157d317d98ee273b3a477dcd7954b5f0a6fcc629bbe3338d06773a92e07a8cfb32a96a28cd356acff3a6d060f20bff\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 48334ecde4d3717bde04a2257e8aaa94f5383fd49a8e7e6933f60958916d223bfb32c8324b50916e72d4ba62b715e1298946efb8c669e3331c4aba5b4b5d885e513bfe694de8594b0c268a44e1916e1d9460aa419d7e8fa8e5a69b96aa0078a3072f40ccf87685a0e4efd1f88822e2a1491dafb2bf34ac5c7d7c93ec0311e4531f65a8b35f763e9ead78d708e1cd3a45a70d84705e9684b00cdde81b265dc1222a608eb090a5ca0aa0803945a8e5fad9fd13bf9199119051d0fda7a0ce3a8cc186a6d9b4f880bd8d7191c9eb0ead9eee5ecf3160f9457aa9e0e1913a9a18cee98a5fc8c74825f916a002da58e47a85c98e2de0da9ab39d6ec326d5b795586251b8d42866ea5e40d9738d21132fe7163dd90814a7f0f308ba9883f24ec123c9711f1911160034c9d3404466c5f21941129127477baf8aa5e171d573b568a11175451f6fdbf081e976eba6c5f79af5ca99d73dfa2c468e0fbd7ac0f3acdc4755795e09c2363c0b145d23c33e2a0739c953d7bab1bb748062b2129e4eba15c5b6f2\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 2b1fe31339301988be9b729b9a14ba96cf9a6a549ff66a9ba6948af2fb8b2651baadc2fe1fa5ec7d466687553cdd06349c6d76b702aa2ccb6b76658685c7e1c4abc6cc2902d79ff82d3d6da0525be5198d07388b62b1173f88695b03108129e2915822910f25007a6229db142c8923880427645437c9f180765464a317fc882b877ef66d913e6dbbc6701ae7e7e1cf0003d681135a76f59fc9a035b8b6396c66f2fc94a4bd524a816ec028cb43da0e611d3ef20572e0a6f2fd33659cc85f2a4256a4badcb8d519aa780a290867f1a0f671d7de122a3b7c2ee474837dab5a6309f3f90ea42eac6ff768cb82290eff6fe0229333c5c252a650f4bce41f3353799e093a2193f9d6da2e3127db550877c32192b1dcf144b7981259c3e3a5724c993b5077cfe4d5ce3c76de5230d116a556e6272cae5e1ac6a2fcd4478668fd1fc4ef71226dd1ee36516b8b6933236119d4ec7e85d67f2e2684089dd4843cfb4fa0436a1b0195d0f28c52c35236f6f563e3e937e1df08c33a40d2981ac9fba210a670\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = aae38ac4dd42a1a038aae4121f0bed8a401fb8861e06cb96c4be4ff803dfaad82084113998081fbabc649238655f2bac523d0109c344bcaf3c2a5613ff8151f94dc4178cc56ed45b31c9935a4d35be965619335b9db9d6ed312d29c4c38aeed6893031fc0f0c9d86b4155cec28541ae7b17eae83243140f8d0df248ed9f921a3184aa944c3c1462495524f25b0fa00124710b36bf03aa80cd7cc549f62578031c6f01cc3b182af18d5f29bcac956e6ba549afef1f5d65e1361f4bce878bfddd526110d6b683a64a522cf56b8f22c2d6c8d181ff4de2b40fb2345badd8335e09cfad9f1e9db86d319f0f510c73a706f8191f7e5022497633867fe9d0d850d39107bf63e6c42513501affd5e253e329ba1145a650101384e40a804944f9347fcc3fed072832a4f2688588340bb2f53475bcf16a8cdfcd4fcb8d2ce874d912459a631c1f00a8e7648382c9f485c6bd86fe02087cb899c334ef7b5fc485f30548d0924d8fa68fefef46b96433d2e806b58b13e0a4dc1ceb92e61120ad5c2734f227f\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = adbf4896d40ee3a9e30c01cd0392d508d3dffdfc36fa624e8040fbd578b1c40258e8e42ede92830cc9492e323166fe56cc93f440e57be3be96c6e6ed8d9d9540e5a68942d8df8adbabbd4962ce4238674e5d7702a7bb4dc83e0289a1b3d57019e278505fe66bd2b8901f832f9f563624cdb465b59e95f1fef1432b728f0af67b3d171b6c4a9b98a582a12c627405aba6e5a9f43a8abc90fa341b56c39afc84392756aaed1659b4c08b70588e65d9e4e245c598a14737bce01ae0c0c16c9da5cfa7c868c264ec46c7f297982f6e009093f93275e2da5e74cbb02cc73b6462a581534fa53cdae39ce37a1c66c27e162ca559aba518a8509bfc827fe4ffdeb2232bc01fb1c92ea8f23b1ec780933cfa0c8df707baa2a796e0190e93a9f90b05c3fe5e5128864b08cf0e27296ed862900e227bde557ff47eb9d7f97762baa59ff5d22b6461af29dd2f02b1e1e20e432b7dd362e8510998549a23857f083a44ac2036a925b92310d9749d8e85c59dcb5fb1aea5cf1cce6cb714dbd77510ee81015bd3\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 38981944b5a9536f7eec9ff78d3b7c1203e94f50313b30a654694397f597695141c3e86f0881923e0de58e0220428fe362c9feabd088d49c0ad93bf52e322b8ff4215b122ebed895a29ea72c8e7896d37f0fe49ad6c9433d4ff16258161ce21204a908869254f0fd1fffa383d8a23451b5c6dab2e9f5481f9cb1b427ea867c05abee1a76a130026908396f2b5facd6426b2a45e26ba6d623e6b56e4a0bcd6f88bf67c116853eac6f29355d3b68a074eecf7ce4daceb68892d078afd70d0f0fd906a592871356145e3227615d50302192dc498c61e79acbe2d2b9b1e61c2c18cae80155cdfe85aa110a6554871f7ee0e64ab3bf61a94c8c42369465d40679cd348928ffa582e678a618c6e8661b51c23368794e85ca699edbdb08d73b83bf66e945c18c7732b6ad85ea0c89ad880dae3de5d09f4ac32fd820360f197fa4ac548d73e44732d9984e46067d16a271469035f3084db2fac481d1f14b61d8273ac320e54e87c9627d3bd2428539c00366e4fdb8a367784e75460e35b50e111aa22b6d\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6c773036cb6a6e2cefe921c155dba50e1ca1aab3596aeadda218b05b5cdbe99174f5e6932df80b349f557481e51dd8c3b01777d85dce5ac2d88466646d0a6db82ed261c5a8fe0eacd8913dc941f39d54209410a2f4c4dd4903e1a334aa5adec17e21b274c327c1c8c577fae3572e1acf88cc0567f60930fe7d3582e06ba1cee542985766fd2a5bd324beec1a0d7bb09f6e29f548e936c1966d75607275428dfb33e293d49ca216caf2074f4c8c698f9a02dd3191abf0df2750e56808e89718897eacc64fb6a1186512342cb041b55858867bc42e81bf67e94390f6c628863a6f5d1ae6c28caf921eac0a9738e35799573b862ddb80698c313543e256c0b939152436b8c617f9c0a6db58a1be76d24741d3dcec36a1dec76ac23e31ecca745c93423816b6197671ef8e905a18356494881baeee6c37df47277c9c978b97", + "8251929d5dd23acef7e83306b41d9831750cc0af3d67ac10d741f7f78dbb48be0e55641af08bc6566d332aba39710ae2e9d080daf44444f4886bd8b493d6885ff6fe00\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 6620fea7f9ace7ac74c838dec6ad523e77af793103ba27faf2b6ee464984fe04cffc2e5cb822a10fbe3ab4abc82d96d7090d1fe468ab048bdd341550dbf19828f96654e3db78df2edc8cc09e2281829d70ef84d2f9d9ccbd860bdd61212eded03643cd68075c35ba391dc07dfa422b446bbc834f5382fdbb9c6b23ba8f7f501fc7b52c6e18ebbb42ed7d3e43d7e72911a2f24557b81b685644df9777308ba2a63d0baa7c4d744db45b4dbb756dbb5945ef978c3e140ff851c7128bc43ab48ef297f664ebc33a3490ff0f95899dfc7c06561e55ecfae73406e7b0bd9dee29a4bf9538d42c74ae0f9759ea2fe7ec65566d637e23fe645675e6ba8fd0ea50fe6b617e211bb79a471188030dbefd16c115c67c8ae6854487f68c5b8c196d046425d34e91da1937df0e48df892ee3291e2532fd2f7b0633fcfb8e9f59d03289653b36e93eac77f00c3ca751dc601f4ab7bb1581cd7f1785fa959d85b87d7fb44d83b6742728f8a6311096f6d73f282091745b56eec604fccc0dfaf019eb96abe37e17\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = aaff23fd935dba2da87b10702f80d722c19a81a05b675f7e0e19f6e006e37eeec3ce3b05f11b6a5e493712369a768346c948c657939b3f1aa9857a1d17775eb0c20c2c2b95514c5f158cda935de07e076a0b7e8e69b0a896e9e5757510f94c4cbb0952c804d882d36870497c0981ba9fe7419062852c3a3c3ddaeef9d5b59387474dd4717342d30981289d81689cc101a5bc60de467b19759b7cefe2ddd717ad13e65bfd0158e394721ef2c1ca0ba98af14e5c1d88ba05cbc012c1e944f7d06c4181940c46f64f70debdc474b3e46a37c25f8a6435aaae4081bf883eda779b48abd4abacf394fb5148f4b3f0b7e89ca8c0cdb3c1ab007f5b48f02628a48e67ac51c5dc74976705febdc1f32ab75fe8f683becb6de0f9b81fc76445d8ca68bfecea6e5ded79f92abbef664dad11e508d54c3a0508287c42b687b304687e609dd764f800855ddb1e6dab4b219938d0f890412f74742d6c1734c078ff1fae54bd43014611eba7e7c0c9dc399e638d160410e081c98694d82b747838514223980495\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = e880fa8476ba3b887d5eaedcbbc8c0147c9695d719e65242dea3364820908965088d9e89dfce9faaa94cd847282778e0629ab7ad20051656ffdd59020d5b3deb36dd680c5c77ed74e0f2c7bb364fc9b4affa04aa5a1f606ac0ea58928e0e88853acdb6a6883374c28833927386dceda7d5e99a97304c07a75977c859f5e5d8bf7a77130036c449c0a9781eb0909d9c791a1cd7e542a25d44cb11c53c065773392746f19678bfb93a0c5e1347b919c3199570884dc78d2c04924993fcffbdab41d3bc811e965f16742ba802b49946e1e9499db4014e1e9c5a22662ac5e437f0525fe124dd02e2e850e266478fe903325b1a0392662e7b0843391f93df870ef870b543aaf6a5a70d87474d8b013463a10924faee91750fd64e4d18310512756caaf970202401fb878de10eec97c4502581bf2c50d5d339392ee2e41375ee3d5cda64a291fd9ba853bdc7f8ca158d53d2d59c0d049dbc73179fc6252670ab2dd2ba1a30c9b96646bf5543fa2ca4e02d6e0547ff201c831262cf656e5a4c1ccdf693\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 1b42ad089c3b4de1ad32dbd8f46fcc88abcd7f7099d3a95d1903e80f96e582fddfd94f56069385717fa3da22a281eb35d00ecf4392c00c1b518a1e54ca7d9971643d6c0a75b15518ecc46a73b1108026c2e89bf1fe153798e70420364e447f8dca5096a1b7bea16df4e38ebe6bdb7d758d839c3c61a7ed7dde193cbccf4f77ba555cf65c248313116a4d549c314b62fc5bcf1bbc649d336f46fab6a28dda4cb29dba704459a9a25160d05595a0be63d1fef5ecf3c1167c06868f3dfd3cadc5f61e1aaa2ef6cef1916ee215a2347fbc26078037e4c1c7fe9dc40a0e151daed6a5a30b6b09a29733599bff959885a1e88482da0e7ff8186f924ebc6aeb391c93883a682b6d66b3884ad51b8f1f7c664bd31fc01b966b68d26d6062bbc52f66f020edd561d38417a780f53ad9d8a1219df6be31913e7006f15648d96c3eca2b54c4258b78a27ede8a4a8f24eb4a04df289db6fdffac936437fdebff11f38cb1c958a2aaf68092564f5d9d995394869d9b45e8bffd28d60224a6c7f30f32792755ab\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = dbaea130782f159f2e7dbbc5d61d7404deab0c7e604a245a73a7cd1df1b48a32b7caea2180a2e3fc4d66f706aba4aec414662fda761c9b56d8c8ec100708d7fb3cb04a1e82385eb5645a4663d7b59d3fc2ef2de527e4c5998cf5ab064ae1833c8bbd714268034e7e269b2eeada1665298b468915342681e811d93ca0b21a847f49876b9a44b62c5e7be7ec16bd40676d31da7ca5cf3be55092b9dd5aefad9dd4711199ee6a806e4fb971f767277302bf5dd5a1b85208ec5a89faca3374854799baf8771e4fc3f98ffc0f71825e895a48c9be2f7697053a906a41fd9a4d853799029a7e4cb05d3d4764419dc3ea3077c9575f47929402090a0eac0b3a004a64f31bfefdf315f8080a0e532698bc704aa9530f7095aed9cddecdc4747ccdd2fdc9e3eb3a40eb7d3b432f00bfa237a082d8a0892f04bc11bacbb81c7c7729da186f6c9cf5d0840c3b79f89829fb061a6d0e1a983e7e99866564e8ae682a73c1e6e1e5a9b2b4d3e308ce8a7b7bf1987da5ddde05b34a92f25eb720c90335375c6742\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 8e22755f152bed807d5a31f9072dca0f388e761e24a0208475b07764e7da9fe76b1653cfedc0575889eae4adef5cde93e36538d2702808b4056ff59123797fce02442d08a4f4e4b957e7e597d732a51d81dcda3f5158a3dc7239b3e0d0598c923affd7f06e31608f950a96eda03222772ca14a3d02eb00c2b6bde5de36904bbf4b81a3401a5aca49a2c0fe0962d8443a3b3351309f8df1e83e64e3f4ed20c1a883cd61a32904208ad46eaeaf960c4e3c2c39af4c21be815f9ab2118af1574f3746e8d740784fa97a583133eff38c3e2b558d8d7c2e0276be9e01b6cb22e25defe0c52c0f68b929cbd62a034ee2c7a63ba81144207f6f804bf18543e8dd487977aa13835e359423db151a3c5347dfdc89ab7bbebcab001aaf78f39af10b923ec24cf795e86569cdd10a3a459e8cc30ecc496996b871d5c425387a986d3dc93e7cc6a5c058974af46be2b617ccddeb85ee101bac2dea07674943579896ddabc9533c560ca5f14da5ff031cac5b1ea587751710674e2f023211566a5536b9a7d8e5\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = ee8fe865ef88da82301e8724da2ebbf270a8be48d7e6e6d32bd57cc03841cdb6acf470ee716eadc23f155371c4b6b0183062ea44c6931922f2e26241cddbb6bd4c13cd7d74fd8bedc9d072c040508785042b218b55a42af61f0b52b17ebd694c12cf9fadb6854179b3ab8ac7cfd5b6167777f001554abae331b09f996afb5babf3292ff8fe9a380fa6d7bfede2f7b73aaf4684b3fb8a7753602096e17b05c0bfe531579a303eed596b6c7e583646e5746cb917ae3dfd1be2f2b04de3db7c32571c9d45c829df0fb59e9a0a3217498067fd121ec63b249566113aeb2a1733f0c47586144d35ebdceb79375fb86343e5034af795e6d197e09e21cfb9d3c2c3448dcc7e9eec34eb3f009575dacdcc25db9ed33974e279958229e46516efbb77e6274c20e6d86b712114c46da84b581e1a95428795563316b0f42667d2524098ba270f58e60c977136b89715419515d2d53be0fd22c54291d161521551006e3e413a006c8964b4734636e40c06c81171df51c534986d90665bd60d10f34b770ece5d\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 03e3a6d8ddaa0dc539796b84822e3e3f59ce2ee733246e891db71f1a3550b0fe17016382a429c7eeec8fbe2444c9bf4a8de7883ad7bba6a527e15cfbcab2f5bbd6dc6d8474bffe41688b6b73ebd8874b6db8a2d025ea9af4000059599660296f890d70d8cb61ca077e463e1fe3c3cb81d0378a603b2fe4405b28c92a5f70e06ca283f32d2650d7d04e252ce08152721b5c6852526b14828159bfc199467c901e658edeaaaa6272e8829cf1fd2f802f4aa565396310a19ff95b93e6291d2dcef36bd90eb3edda917f4fc1e999e335275748203ca0078ef37d0f7d4293c4f5fa3d90f02a92d8bb77922d5f7d02176a329fc1d587f80fa1c247cdc2bb654d2610b2a8a3c04abaa04ab2ee9533294290adc8a12b312449b2e5deb703b086c7ea4887cd8b197f1310aa32694516accf4701ace7a51b5264ae45d7d007294f141387b1761a0568b7ca36dc23694eddfbb7658f5836a353b1029898cea2e647f5e14b2adb01e8d1fa462daf26280ea94f14a252ef5607ce31d910ce1122b323e9a25273\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = aed52b6e5941a4d7225768a427189ec37a5640f8083827f922bbe563b4e96ddd039e2774e4e790a55bd0986936de6c64c08b1637a1c6bee932f24adf58613d378db73a947e5ad20afe1549ff6e02b6a7f089a97e42ffb2ad5fcd05c4d49a2d82b9437bc34043ec6213f0ac593e42a9c9d0faa96534dc30cff56c8692bd71d376d591b10c450daf3c31b60b5377b0b4639dfbdd6e2ebd5c4e0c344c02dac5ceee2b661b97ac670564604a0d2bf74db73923089fd3a1adf60799289cbe6dd63883818550233e45698d3e7e4a9b0cc2078373beec13e8523d0b118e15705abdc804b785a7c2e8a8ba7106260a5dc860d8a59b717c47817d40be37c392f5fe11662bbd16cb15584f6bf9b5bc577cebc08ec6230e0480483dff16a56ab2ababa26acce9566a10bbf0998b78e1b4ef2379d8a2bbb28da302e6f43d2ea509846c9d079f723966c969e5c1dc383de47fa2571d9e515aa343010b1f8f1ec1d588ad51bb6742f354a5547e5b80151a70d6320c93ee66951b6d44472ab3664f03a3cf309d88\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 6cf1b3bab7cba1717d2a31fbcf7a2218e4f0186fc7488c3054c2193a97d3824dd15d2e15a7268676a2740dd428fc55572748c8a0b65ceed42ff18ed42439f25664d7ccae0c2b72e2578cac39c69c55d5ab852a34570eaef54db1f91dcfb938fe7d82", + "2e581a3a5eeacb836358216ddc7d0d8e56d9aecf1698079f59c7faf4bec74fad37352a1c80c737712dfcdc8f0b8240d478ebee8fc626cdea531365279ecca43f45096f878b18eb71cb924d7454e41bf8c7fbf0d117e082a7310dbf883b439c315e366c98ae886158d276c05e2bd732ecb32e1c5ea05d2cc8d4585c7d3af5b7cf72a02c0d91eac7edaac95ca47efb9c0cb9f2a519c139bf9a6c9ac59de0cdd35f5b6a17cf7f66b822e62aa568ed3046c399e834fc741420200d942fcdc648fecdf186f46a920e87e1313458a312424da15417286ef53fd08a9e38d18a97a819100dbc7b8b43fea385d15f9227332dbe606d795127d95e5f5b9794b81be57d49e48abf11d35fe52edd54e8dd0300588a0ba62047f562a5abf47f0a645f0d10\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 5898c8ed989e4c4a3780a2868ff1b4801909ed8e0336b75cd32801f169cd81aa16c34dd21fdc78aff996da124f9edaf3542247e00a4cc5e47eb9a837d07984fc5d2f0814d22e274851643963d349a43167a0659549970c053b3cb4293769dc748c6f9d15ccf683714b5df003fd7601f9c62c2c31f5245ef0676585cdc008ad087b8237dd17cb8d5720c98256c9a46daea423fee19abc659b670574ea145d5057ac3837002166ebcc14ccd990388d533fd12cfe7e900c6e80334b9bdc89164dc4c255ca346775944337b6e9c4472a2b90abee876b3f743842ac46e3028815be18af5e405a8f8d4a5d9d890716c6bdb49d365edfed199b2d91aab958d839feeb62895dedcdb75447d741f1be266fb66f915af337716950a4078aacfbe3b744dc44b7d991330f92e2015de7a3ecc6024cdf4fb8106ace7d521f67973a7ec7cef27d66e359989009c68b08d1f0baaa8270ea0323602cda40c9721d7cf667c1f319542fc5eb74b85455b182539497672dc1e20a375f1ba75aa6297ec615d8ecd0ff6e\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = c353da6e54821c2bbca7bb85317ca50c0ea5486225dae8033c39385dcf3a2fc440ec6aa7dfdee90209cda40ae07d20f7a161df4d17020f620e3040c376f5bb952a7d250d9ed76c3c6fb53d99e2a7d606ee1893b8a62c403e2deba0db6fc27ed8f3300bb2a57618dd0665aad48a9a36ee0259f74b084fe9dc90a1c82d198ce0bef8f3ee44c83795f85e254027ba64487f546e475caf2e03fb563779e8ab3fa7e3f5740d2d3e97892d8d786f0a502f71e3e9e8d418cca8cf1d1ddedec0a5737a8c3e5d07388bccf27fe332b8a3c6965c777f3c6a7b8f6539942c791a78c9d78083dce7ee6b60bbc98dc36cc925d42cd2983176a9fc88d67f8ca1a325febd59086b10c3add5a6573f76154173763813f219e29fe466f0346a7dd9b6c952fb8ff6bd7a0b19baaeb9427fc554fab64d520c1b81a00887be9b50d34507d47dd347331e3948e633ec0738a83deb5c379bacd7623ef2b89c994db4825cdc1ec39113431166e4e240e73cd6635d9a9af25f72623fce4ae4167adf48d24ca19dca1dfc7993\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = aaaec870a8223d256457cb14183889938abb00b21366b90e36b3b51fed1e170c0b3a8944f5cba54b8d233879fda1076a2303309ebc04bf66ee4295030ffc6753f4eed4a138af850139defe1544d5eed4e7e8b75c6c39d66fc68e72921b98cba19f5dde1302e91336aa81e21654892dffb0032b82fee80bbfde4382f22e71281a808b81d58b4f335cfdd6b170fe0998e775181d0304e1195d6c2fb333bf9684b16b10a06dddf8c43032c8870739b39be55e87b0a66bc7d3d65751083ba92086a7750f965eb2952c745747d619ef4ccacc99ede9e2bdf25d62028da81afba377438222a053ee6945ecca2ba227c6da44397951c5b0e28e7362ac5c980295083dc0bb7c9783b0bada0f2ad61e232be626eab91b0c52f8774cc3331f6196b4c16d21e76a3eae64ac85c525c90c670fa422df1a23827a93563044c36af04c7b7c96ae7eb9833dac917e097a1f6a5951de61adc1f6fa3b6aed4edd4fe0d3bb796a88aee0588b8d15bbcfa572a6e697b7d23087d61f6db7740d307f5edca795188dce0f\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 41d3df075cb50c135e1d07a11d9239a9102dd3672169ccd072ff78e7e955f61c40d2971e10a4825205d067f37eed21f3487b9a512d0c80f09d58b6cac1689cb25133dc840c11a94372332aba692d5f6157a1559e28469ef8a57628b17204b2d81a8e21c0d91e0cd15633f7e612a127f98d64909b71bf3984b24aeb1ae3daa86ea44337e22a91e63b7e1273275e51dae473b0ce61a2e3ecf650d38fdea9e05bd0e83a564dc95869bf1fe1d19b5be985424f55581208b09f6e26397c0bbd51af1b22198f24d483a2e234f2f90ced3b780f7323f29b404dbfd517b4e53bf1fb40d29408812254177dbd7939347d0fd763d2f18fa7e83f0effa7e539a3061a3b7fe77d9b5df5d50600cf39055116f235a60f298512b783e22fd83935083185f565c9fafcd0f038e55ad23246ac5b1e9b6cd777dc36c889d4adce69494d45d5e15848f4ba57169df4a28599648f62e9919861f6d5d8c4e1de4e5601f9e41fde562fae0638c0988bb0c0ee63d24d002b67ba4986d1519694a41ce36cbf20c907d62d53\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7bcccc5b52d6a7360dbca47a47c6a360eb5f2f09bc402edc26e696fdc1eee72ed38b9bd3c9472e0e4336ce74dde05b4e94c6933c2763e95e64ab0a1d45256d129ec8cd5bc0a283f2ca0fabd18ef0ba2a6b66dbfac9feb7ff95fe76d443d0aa5caa7095a38619d44f07f5152c44df6acc766859134c5f9c9b8932c10931002e16564b074b28e2588faf7f127c02958a6ecbb04b3830ee05553c83ca8a6d5b1c6f31f2804276cd42e6489693975dfb1f17c09fb5ba41d9ffe597710a8f4d0b64907b2aca89d6d5beb26cc78125e4a4cb3565aee24da8c210dae2dbeefd2d468d006420127f49f5d8e45eb768f9af9eb54a130fe327bb0ea12771d4a6e36e89fe2367e1b373f7c46b34a67c42b165873bea2b763473ecaf60b3894f76bcbd78302bcb1bdbc9f8f42ab9f15c0a2175234074441aaa8da806a5a86880ddbedcae3be07e86fa1700c2437e63c5ac263d98833ed989249cd3e7db8f75323b828034fc4c7dbbf02eb8e3049010ceee24ffd64bbdc294fc1090c5998ccf40098c09650418\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 291f4b35a4dd89e9ed5278e18d322d473e435c7b9b611bd62bef17e6ba619c9e811a295b5da39dd291b7c29303f0cae07ece61b8f3849644f34e0e3dd291df0de5e7225aaafeafd3d07e8e1846b53e0ca61121f91b293a3786fe6a23fbdf15c5adbfb8dbc43540721367d7e9db32588d7651b329985ed3602fa70b3554ef00718155054cbc9f3985ee0c731b05f4552bb64759f398bd36b2984afe66b50c51aa4bfe8ea8a223b827d24904e8781bb1abd5667f731009d315f37bd8b3400573eb96d738be26b0a13c98b147e3f99941ee3608b1f38720c55ffaedd8fef9f815c3e1c48b40134de9553f38a8f8945707d9bd0ce4edf51d626b15c522fb29852ac5f45e8c8fda54bdc81be05088372b2934d7ba9b73c081ceab58505f9080dc3c3941cf3121f5705cd42d9122958148b60740aff97e3e55eaba7d093e1fab65caaa065537dbefc75a3067375694e3f8b7b585718de51829d13e6233613d199c1dfb3f5d16bc056f768253739282bfc248b1870b5c098664714e3219d3d3a433c5ed\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = d43971650646e5535fe0b97a8fc8dc2bbc93140b750641ac2f4302f5fcea941cde611894d856b7c19806bfc7c7708c100254b2e4caaa56f6a3a5ff4e105058679e07b291eac95d8bccfa91811d6c167205f49acffdf0fde91c15e6d3ed37dca02d28ef25c7f11a910c67a91e996fcf397b814cb1537da377955d651d6baccd662e9d5c5264516e4e0c6d396fd5aaecd9a093bfbe8d0e8f9b64a2c84f8a2874b1a788cd94d307658740dc0358535fa1fb545df3125b7ae19f8761a3ecb1ddfc24c1ef754d166239df5bbfc5f4666c588b6a07927e3152a2cf5008a2f718499440066c59dd23c7258bd762c8b06bb12a89dccba58eb8c9851455148296462a2afbb2d392cde73e38d2a1e01ed5b47a85ee3033ea02f1f4a4898c3ebdd5967b88811727fe5431c52c8ef4e58c2e001059e8fb6967d37f819a2586bfc8c715f842334054d70d26882026b410c251a17b89f052ea23dbb9407bec32e2e61994bffb04ba11674c15bade539faa05d84d73aac4966dc075ca968bba6e5dbd8e16a66082\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 75cc5277b4df2add60a44bc66ee8cd4b62e19f1fcbb7b502e139b26c9b7f16c59a82041a1668d530522131e0b602fea4f5206a59bf793657bc51d320594f504afd7f681627115f49e50e2f3fc4e745b0d7c412d1a37f8b8cf1fc53c25a65b0bb18ea45667caef3a8ed608896741b57d7bf305740e238cc71e930b99be530e866227e0ef26a82f5be083d4dd58b21a3c5f01f29c72d265afce64f56e66f85373939185d312aa83e58d82ab01ece9a4ba5e4295af10d2e563ff571f8a32e68ae78d667af19e17cc1f954620184ec228d8e8982f19c0e4f7a10cc1bac881967371be184b78af4116ed00c7d4d1fcc3b2aa66d28461eac5422716d0a7bfb5d31d79fb4d6b2fb5799d7c86295cd4bfbfa6bfd6c8c35463885fdadc5e5edc2f5135323253d717d7d1e091be6413cdb898800ad96b36e8d2b7c1ccfbbe6a97f516eaf9fe08ef3ec6c902ceb54a9593d65d0976c7015e3a7e6780f238738d3ee725a16a94041b09484acfa8d010d37b78febd3d7a8a4e95d90118dc1897609be0854274f\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 9b13eeb9c2d90c05aea36362cf7c99df17dbee7174efa2c2ebbe097211def94cc16943636cfa0ce56fe72254ef79558e4edf20de56edd93501853d63b009b00d40778fe0a46f3a220d0681cf1dc54e3c3f9578f69e9c14055c73a6ca4e2a2cf00e33499879a3c4f6c4ad928535b40220e6cc49a55d2f809181ebdb6ae6c439a235cdd36aa223e56de9d53054bdddfd9514a038b4edc4cc8145a5e37037b3b4bff7e664d87ca6221d7e22b1acd8b54a9a5c6da5da7574d2470476cab1785afc7d7598d4ecc7201ad0aecc09a8615f50ce839c75d224a1771cc29e8a429516529105ea9f8331d1b0a2d1a52d11663295fcd24245eb9ea04fef04d5d17dc3a77602ba98491bef151276a0d6e37e31fdd3b0a463aceb0b03dce495c9fdd85449c305f933dbc1b3fa71ac2853ca04a67727acacb77c48217446854de289e704eeb4279cbdb1d4abfb3e06a2b7d66e0eea608aa5f5843", + "bb957c44902fd1a8d1121811ee891adb63a8fdf6538569a2564d7181c7aa4d4f02cf78f6ba928b00ad6544da9\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 577f6e42fd397449565db814762df3efc12973529b0b9f825bdceb5c9c569d8f57da7e97f0007c23d8f8a88f79ad079644dccb2a20bcc56675267cb8d6ebc18d74dc9ab58b1bb508f3b30557ab6a09842d0c02b58d0bc23b6225c551364ba6fe15154ac2c279a2cfeeb7dfe5e4226f24802df3571b72f71b52f99cd2488008eea573aee351508ef0af9d8849621e5603158601444732b6f62185adf4134621e519444e4844d551eaa0779df03f1feb2633f6fd293fc1d3fe2ac1ade85e6b0f6104bd537f67fc09a21ab6f32cd98ec916a0e5e60d385cd4a55644b42707f6e4ab1558209521beac521960c1b3960d4cfd132e5454b18efbbaff1485858a1258de95b871eafe07211601b7f116d3b970fe36cac65c445c62e8473c544dbe9dd03f51d20645fdcae8c918c28ee42d46b8370787ffde9d3820bde2e13cb48d555eceb1db30b1c686d2f01ee83c44a07bfbbad044b786d6d02530f6a101f7a1904cfb3d4e3cbd2bd07accf88bb35c104412f1fa0994ac8d57af6b70caee6186cc44b2\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = c2bda4a6569e430e701b1181abec2424faf9215a0a72790873f36a0fd935892b43b221596e840b062e7fd05b284b354e8d420efcb9027f1f4722a41c83813f6bc8917baf7046e4491a1291e606fbfdfdf8a18093d1a521d2ccc6a3444d9006c8d16721dce5fc82ff9da22b3eaa841e445ba58a40ea0e96cfa07d067a3a0e83f897fa941da57eff9ab5e0a9b6693dc36d471dd43bdc5b71fbc8d1fb8c22bfa91ea846b4d228e474ad999c2a5eff17ec85678b60a2de1430286f24bfa7ca744041c1c54bf08c9afad6d7387d318cc3980f2022dfe6abc6c15e1321dd835e684f61855546a4e6e74ebc40607e0878d61eed6c287b5ebc3c1b17b2b7b81bb91fcef3572bc8049dd7857614b97eb393bb432ead46679bb77b146a9b27b22e3961f47a8fa38f6370849630ad2caa216ce4645a13e518ff3d3e10bb6d390df6c280482f0d053e08292a9f4152b8bfc6e285ce0b4cce29430aed9956b6c43a40983c2140fa3a64b2d54ca29c52bc63bd67e22270f0bd76ead8e86c2b8fd6f42cf2628c54\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 121c2499b559e438e8e0ef2e2c1584967c83691610dbf91c9f7422c92a6010bed4d247aab8c20135811193b27239d65fefaf8da30baa8d9d366da8c264a34d61abdcf731b2d4af79abaec9ed4b5dada3c1e982d99b617d42a4f632dd8725e51c937f7c45650aff47a36641d245d0060207908bcc4bf5491954dcb9ac27d1662afe0718a2caf7d451a4a17d68f67190afd4395c4be53eaae6f096d89cd0af20364c1f6f921de4ff75e77aebeaf048b71c4acbd61e13ea90daf65946d2fd7e38c2f50c71e2b9a17ee81017f99925016b0af93100a1d8ba576b07f3479de16d561b83fffd8aebc5ba373d2b28dd5feacae9c0f3deae0a60f3af071dbb3fe07d4142ef2f1836c8944d250ad5f162e92827e64a8593b7df3c932d72b8bb3b416f825c495fd29ef3c3c67efe917e53ec9a71d0ccd29ce5717326aed80665df34c038d6d6faf52ec0e4201acd4dedf6b9774c97b4c806ffdf6f45fe4a2b62433c1de34ccbd14386db40a2d85956fa062b26d232ca83325c38cb5b006ff509c32e50981d\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0dadbb9332b072d1ad255e22a641abfbd36f4e1aeff311e8e2f81b4612769c285ce708e635549111c9d1b125de03da3adf921964d74299900ee85a379f63b2513e36f5e6eb8b57fe7c0b09244a4e592c6518bb498e5eecb43280d801ffba42bae65eae9bcd7067eeb3353d7914c2dada87e7035f4027b25e27ad6172d231fb27d661c3a7d1c99dc5b402d85ee471dbe0f85b9631a6f9314d99debd84f537cdb789249966265b0ef3269a876c2ff247566855a5570528be74cdef53c596cbb7f01beec17ce61b9f5032db0365673a5b48727617f8c4cb90afa4136e4ca511b80b4fae57afbd1834386014f2f352fb43d5d7119b5b61de629dae681f956bbea009ac2bb52f9ee4c33946ee84252dabe5ae3bcbd9e1a28c60f90a222b6fd97b499c024671f038a9aa7c8b7641dbe1443d3aec968d360ace3f9910984042d5256288260d754648f366574304437f2097e55c4a31787075f0b7af2a212969474848459ced0e3d2178c322b6d8edfc957350995145bea5e9ad81d4b3bef38af862f320\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = c2719fcf01676eb69173e5b862b3a2ff1f1e71ddfa0f393749deaec8a427ee39757d90dd21e9ff74d142ce9df67cc38e2feec46b74957b287d2767380b53b654507ebe96dc43dba78021d71ea7ce9d48c769d0bee0dee2ee99ecd9cdc9e7ce9f1ace832376316ae1d0755db466a521212747cc1aa94301bb99446a3d5c1e33dbbc60fb73bdb2a9e561ceb2d6ecd6d5c92ddcaf2b2eea8e12222a7050a8dedf44e55350a2c4d2cb0016fd95c2298d0ce805c140f75b4af6912fb3940dd610856671b9e354b767eb28a4f4dff3458f78c7add72617420a287ef3e5486b28307d88ef7bab3a737528cabce0d934fb722606c6fcc942c82ca993c9afa54b71b72056de2437ce393704da59413d419ea8439c3b1ac341e3121a03ad66dca6bc3caedf46cb7c43d33c5f79b40a25a922c640cd943fcaa1c2d8dd6c6dc645ec66c2a5e3873add5cddadb21ae51fa14115534fef8abdd153e2b944892a627cfda3faa71508fe489a28b5bd0d285117794239d4717bbd31b41803475e18b022eb458cb170\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 238a0867ac39812214e7293b9734b0cf70ddbd96c20f27b29abcd7fcb037534d8480fc9d9186227fd919ba35602573d55f1cedb9f307680ccdd850ef7b92a663b5907a83e9e786af8ffdd3181752f839e45649e346cbb0d539b1de62981620c12245079b46d2703e968fcd9d55816fcd3c48eba0a54d321c3d8c341004b45e90ac3013897d4816e007886799439525223607c5100f2d8d48d80b1fee6dd6b25664662460f64b9858f5809845010a6e962f2101606a6b52fa5e154e9e060fe8a4518943385a6cc9af1fb57e388544921d849e2dd72b65f8ec955093cb4c7f18783b347ea19b0325573d92ad4cc0518b6aefcaa156fd4ecada18fd68ca00ca70f8390adcd22aca5fbb5506e8719590d9b74c3a325cbe18b96c2e18d57be8d9907f76d156c8b3d265d12733025d568366879d233a9463e26509bd1a26f141c98946af0162fd5595c83821caeb253be2db73b3752d6dd2bf597064d6ccf6809d02ae0756df341e530697bea1deb37fb34840077cd3032ef1ca38cc302b19d26c3ec7\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = abf57269b9d9d1f2bd1b8df08ab37e56648ea96d30ec02804505fd303213f0313a789e62949281a30e171176b17132b41e3b2163d98fba58e878d48927ea2fafb830f1c4ee6de870289f3513b2afd005f6b0adda15b6b9abe616416deaa9f9e720d246b4d19907514417744d3180d119a93b9b353d7da0913ecb83d01dbbcb8b44571a00bc46c656fca80ad9df6b2e4fb2cd8cfa9a8fbf6883a9c2dd213cbcf0a3e104c27274276bff2be215229756a4a58052e0ae3132ce018f4406210713ea9391ffe1580d8c0c937fc63bc514ab69bb556010802c5a53eab522ac151fd22417b0101f6dd3e020f8f271b8eb2f6086275422d42fa896a8fc3df69c17ce9bad8893ca2b8578bb1866c7673a3e8775dd776e28709225be821f6fccbd7926d1e18605520b90aafdb6a81554d97216f97697cf52bbd9ef55807de827b94a1e54aa2bfe8c778299b1753738e475aad93392dcf99c607c89c43e90e4c524f0a4754281e442c78fb1264e70a43f1d97df8bcabcef359a232cd1eaa36f4761f459ab76\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 312fcaa24bb029f9178c3a2fd5ee46aaa41ba1270fd166a097679d632984e57e71e4b1eb7cbcbadb29cfff24b91ce2dfb7fb3020e889b3bfa81647c26a0d7b8f1555b947bf869d551e7a7aae3b38d3146e22c49dd358a62ce634028b42f45ada608c64e8dd548815a42f77ab3a2e52f99c034ad0337470b4ef68bdda89eac668cf12b54bdcbb95ac18d56ae75d530d44ad400571f8af25bf4c4656d862697143cc02b5b40b489e7279a52185dd88b54fb1af807ea2d1691638ab84360fca0e8ae40652c5f58b962fef9ccaa4c6a2dab76cc0c0a0b9096308807def0db94e472f1c97bd29f25ffdf5fae8bbd53053d304f4ec214f79514cfe34623c745e3bcf8eab336c41ce7e299da2868ac955f64c738de975fb970dbbe450e528fbe7d3dfdec8b6f174edf706d12c128d0e846c8bebb23b09c53b693b031395df1cfb8835ab7739f29eeb9758e904e93d10499ccf64fec6942305962b4a78023007fb9c7548017448c028dad3ed092c961b81a6b23f9e14de6f9f78c0f559955d1af00e34f4\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = d726ef3a63208fdda04a5fa68889a77a717ac64fa4a32e51906916ed7dcce303fb0f8a620cc9f49d481b9aa09745d4d2accab1f8ab2e2e60123ce73622709ba8585f6076742dc03071b52c17faee18f6675159c5a842c98a270923c212a1dca4137297f81c9775245afb4f08b8b201635ae7eb5466782a6717bb57f78254198c16326279744823cb381014e4fea28cd3a962d19a194e72fb067689c972a9d3b9af7a14fa63a8ad1b2aba076dc4f750396ef9ab952ab42a1f14d65d9390f75cb7d48a5ac4d0eafda58096924cd6acab19c2acbe1ab0a39a6a0231ca234b4c00beaabb78dfddeb81363594aba0a2a6cf238f2adbe898d5adefbfb74cf9e3e183df5d4bcdf59f87d43f55da0de74884392fc3ec335bf23568946afafe3e1fdb0d2444e878bc38a18a27d4695a2e98f80b001212dc309c3ff24a7faeb24800314761c0024049f7ef55bbf02ac49997bd4b623856553dc813eed9ad8453c83ef51cd7cd2799474559cea86a896607e5976515879760fb245a34e500800860280e5ec7\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 625b90b5decd25d50b44caaff4f911e53e2886383e13df40fa812ca6dcda7186ee306c87685d2992e2a5355e5be06d6174ab25ecdf299d0fb5a282874a19bd31bba308c7cfaa10896ff1f5ba679f20b76d7e59b28bebae065fec99ef94e0e3eb7261ce1493f66955f957cba49375def2de39bbe4402b5b673179a86872a5a41568c8d9e4212e7943084fe97d6409ace3e07aac64247e1132072f6512bf2608084f5f79af1120ea04de9c9", + "505877bb81553544fabadcd0278a4e4913ede9c0eb0530a11ad6e6d507debdd37e40bd6ef9252bf4130644abfdcaa59d29edb2a56e0664e36686f261c6c6bc6f09cef1b840de2e7c1ffb5eb202b1acdf40c0359742a267333c1cec0c4b931efd05d7c2c6500e8e2039622d66ccf0aaaed914b479b677dabd08ec13f14a0e6b2760a1997918a186b84e33efdabbb899f8e2bfafa15077bbb73d85a5df756636acf87dac49300ed0f0e6c6c0dd518874fc84bb097ea4a80ddd500a413e42440c2442b8fe42afe39c9fcfa6d1d2415da85a8ad903bb741\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = d78b84dbacffe53f9f7b058109251835cfbd56a206a677974a45b7616d66c33c0ddf8c5fab8f6da081339fb9132421933c0f0356354474ea2f440df9d2716583e3755c807a73d4eb383ca677043b30d9828d0392817b64168429787f2845bbb638af68d77590c82d6d7890333cc1a5e31fd140be91a1cf1678806b6eeb65cce02b88d5a69abbf31a16ed3108392467b476f7c2eee9b6fab75cf43358cf353bb2c626062bcf92a8819ac4b2f73d3b00e1e18b7dfb60c2189a79939a390c0815756613f13a7d13d9a79b2182152a29cd498b973b8b00b13ec11af697924fcf0f193aa316a9e4c02cf44cdbed2fbfefb7a01348d72099166945105ec08b3db71b1da6741fb20b5e7206db870bbbf422ac577340ece1d1a93ee439dec9da18c0edf6c89f16a0db8812f187473c8d1c27c65361f5145cc9fb0b3931c45669c0cf8ffbf1721baf92a2876fb9e681762c994dc04806b1103e06d72b852d168ac5b715f0c940e4adccd7a747f7c79b9978eab6c090f938e035d4edc80177b537989daeb0\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 654d3d6433b71add296e323b4bd6f1dbbdc60d5f7befb1c7509133e79d30e98ed9432d85a8d123a13ed78a1855d1c9d9c854c516d028e401bfea1d8e58be0e8031e8ce582f7d334421ab504c317263ef33bf743202b3e140654a7c9b1487f0d9454922a919efcf2142f2b9d0e3ab3ce803be110fa7613db80d1da8de04b808a7effd729b751c896c8affdb1172418ffc3bca52cbc1563a5c183f86497195410b57acb7ffe18c2e31dffcdb927a3544caedc5c4f640289317635e5e0ec56e62f68831a717f2810d43265718dbfbf6d2942a5d4245d0a86e3dc17462f42fbdcb9e5ae57b28279f0a394b1e188fe98f3f514642b22d1c26218b2b43aad98a0c8ea73480dcefc02fccad043af277c6dc2a39013a51a24918fc78388327198ca5689c346aeaa2556eeacc63f745dd94d6c8b9b54681cc057fa3abb725c8faea599b685cf30d948b58a228d77fbcc1b18e050c6dc810f7ecb5a0c3501fb8f9bf69689d997637612883752c8a29e51e7b92040f3686d2a3ca020a50ab04361c69fddae8\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = dc8b26af772ad6eba277bab5d97f4335c95f56a1ee5f1e248fc71b409a76883d29b2ebd65a1bd85e3a365284f632672be93bede2000ba6c3cf5e100b4bd9a699af2519f8917631d7563f4f1aaa2ddfb729118c96a01722ab5b74c93e36bb706c8edba0e43225ed825c41b8203e128c45827f43f98cad8e8ea862ca7538e19737dac5b54631cf68b65624845a25f5106a92a111af43bffde1f215395a1d9ea2c08296db9bf97e2c7bd0d6a37a21f97c7bba3ab7544400e2fdd2ca001115928086c177ba9387fc268770652213012b2bb917edae3416217fc4fe58a916d20c9507f11a9404d36e26e1e2f962168f06d5e3ec254dc8b554db9a33ef99775f246974c3d43461ec9229dab0cdfa876bc86a661f783ac2a313691f9e919363b2aa4d7691f59152e331c18c7f1b0f2d39408d937cbb1e669c78d509dc99d10521ad0e6c4a34dc30b792bcf56024aee4c8b9370aa73269ad7c7142886ecc7c29a6d79890922c2c81aa2f5f0ee316cfbdceae3ffa0010de32607efae35ca5f906b04205a8\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 6d19c9ab9e470c402578e0fa8f5d82fe57b3103b94ad551a9174e9e8a4533b9571188ebfb096aef7c1103ceb2a93f592c0f55279a2fa36a0ab77592b110ae7d61a5948f5c9b7bb941963a0acf4ceba0767c52bd62ea4e5d22251e2cb366e61940f11bccce40b35bf4137b9c6447a29dcf0f73ceb1954ce81f37043fda74d38dd7b45edfe3bdbbbd87b74aa71c7384cec2ccbac628271ffc4edd8e9578057aa130b683c25bd286fd652c12522fc7f85b4b55ba4d1cbcab096b19a04d81c2fe0599581237ed6cbd2a28b789dc3edc6f39746cc0375a35b86d09c02f4f996849f0333b76ffa77713787ca0845bfada29a27b66647b6e22cdaef29e8094cf11dde792ccb6f4ff3e33d2bab0215bc7438f34c96765216adce5b053240eb815ae2230173cc4601dbeee51bd3192d4af32c573b7698497dc8b9fc6fae53730e85ceea2cc3d9a15fd00eabfeb99f487367f971d4d0c27babb071df80bcf2398a3e0666a04c9d41c39f72235f125332f54d4ba27b48f0bd580fab9ba74be16594f17b241e\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = d58dfb5abaeb00f79173846f172df4da2b6fd056fb23ea48a4b1c04fbaacf74aac490f49f5bb437018e68260c5fea5ff4bd263f9093394e256a85e5ec8b783da1b296937a155a14cb2a027db233957013c00ea573744b4cfcf58cc51d6787cee3b4ed6f0b23511efb5cf8f553985999dbc54baef408bc5b3ce1eaaf7be828742c30870bd586a63d8c02cbb2517812101759eb290f70c45250f5a197da3cc6620611853ba6130d59cd70f3a4d519e5b49e7b7cb474223dd8a5bebe3f4edb9cc44840f829843c024a7a269673c84677729c4f6a24d40914d8feb182c5eafa02bb45d2d4afcc57751ca5f6b39b6c550876daa5fcc32ec9d4f5d9b6c49a3e6fab053104e344bc7041c2e6b7ead33116cb8ec7c5e59cd4349cf23bc96b1e7b2dbc9f160efab95d3d2ee495f8fb91ab4d53949c946419f36c62eb0363c46bec6d77dab0258eff8910a3df789ab28681a059a9785039529a292c55d431cb6f97525c5d181d113fc24ebee04376b2c22a5faaea5f9431fa48688d014d8a3e22819d4205b\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 9c7c0260a14cbc98d93b0db2c40028fcbc672b4a213f2e284bdf0078b3f9fca950aa43c870ad59a15d21fa0a16cfb292ab54a093ca93e51f32a325edddef0885d1efa35cfd019b4f5d34f8126a1a65e7e2586fcb5c3c5a4e70153477115830024a2400136ed195982e8c3aa76409c38cd63cd8315751d26af0183c2a6a7919939ab1a626b66106d2cc6e884b7f9cda3555ecc16f96a261b74aca59c28dd84ecc668f1e4dcbaacf394ee62d995f3357e387824086f1da4cd35931390f1542c35251ef713a965cc9a58d74a257a6b8d2f7cff0c6155b88f7d201d90acd9e4127dec43ea842f41647891779581feae92a67c184546737960654fe4d74783b13ddc02f4e5c964ed6e1ccef71621a8b75c47b6c7fb98ae24831e72800484b8c38cab8620b0a7a2719d846792f8a04cc338f462e81c52328f8f6a0e5031334803129ed6c96ef8a5e53ff7ee461daa44595c9da95bad9475ccef8fb0839b78b95ca3be577afc9e4b7b63d357b0613aa4d46a0239c7ddacffe6b43fed020c5e4c7fea9b9\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = edfa8852cbeeb5310de2778612b2f7c1dd18227aec6af8b28d267a6cd481f08c0e9ef807188a7b4db9fb2b315e5a6211a4a46cb4321ea9c9cbd5b61cd3a3011094b82d55d561e3fc1d8830ab99355a8c72266ea6070197f79f191931a13d560a5ffcec16f0fec99a0232851c63397b3cf0f561d9c13d6c54b0840387dd7be3ac7e365baeee631eea26c8ef8a09331acae63a49f8f52026447f403be950184cd5c3dc25acdc1c7468a33b672a71b474131853cbe020f33b7699dd5960a5a817c960de36eaa99805f5a2a56b30113b98bd30b38a12652815dd7b972545be39b1c6573781c6907e0d510f0dc876fa404bef9f36ae895d34008078cd49053b4e4e49483fe8198dacdb68b5e864a491c4435dc7a86deac9ed959a6ea6267d9e3120ac2a091cd5d63950f0c91b3be9954252872620dbdd11c7bae1729652061c2e12ba1b9306eb8822863f479970767f231954a863973916ff5f08e9adf1e486403da4b78b654dd5927481b28af50ecb846073a7e7f95b552935993a7d660452fe89b3\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = b66681b04e8b3faee9bac3c52d9c6b6e62c5454f744a19df0c91d94f30c8faaa5769437e02cf4ee4f5e3cfa78901213b54476f8ef2d6e619e6ba6e73205eae6a573eaf34abda20e45fa23d9fdc7d474b8a70809c0e9aa233da83e0eaee1abc14858f519076159eefb770c6c3479cd70dd3ce4aab574a15cabf8d9ed64854f52f928310715d7633f3210e5a3595157c1b39e8e9f939c406318d1af7138faf6cf2d755c213aafb0784ac126e71c4d2d0b1f054c28e80cff43af8fc41c51efcb2c620c4600907061e075efcf1cdfb25cb886b64451e07e20e16bd10b223453a7d32c116c2b34b6419534f64964c95ea3bbc08337526fdc66b5ff7f90ad29615c550f74869c03afb91c97934f89d4aee124f3b280b335605d733e395f2a1bcae5454701397f02896a647aa070db7d36112b427d3ffc344281917dd27592c530b6669c0bc3f191ca578486e036f99abdc5ad3e72ae325bfd6a7651de9b965ee56a6965bb3a0b1b6f1288b17a196f4d7d57a31fc9008e665058b299fb988b64be31a91\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 65b6b1cead06a1ef0d9b593e58429e3cecb4be8f3654fcf6f1cf5240c5e1f617520a79c69f1a759889a60a2739107d694e2a21ee8ccbfdda25fd30f46b441f1a524dd0b7f4180705aaa70533e56cd15b73f807fc6d0119eb7f7acfed7ef96a917469b9c74898de4f28f2f8b207221ef062c8c9722ce3480ae352e99d43982b784faf9cb3b98b037a0e6cd994a4cd68cef59277daa3dddf4a0c492eb2e2f354504b5cba4759cb7e1bad9cb73389aa07f48e8410ecf7d46e3617824ba279a96811ae89d15335606da6afc5d68f3dbb71141203646bff8408827a76e7264fe4d47399fe74112b9909f3322f726fe20fdacff5b78492db20198432e497b4a73d0c9bc9a5aba64529a6bf70c9de78741c588b97487d9b13ff552c95e0fb47ca0201d47eb609c712762e23ff39b89827b89ddadd9888a5464bdadf5c168d28d976d9c8d8885ea2495f7221f317dc3d6dc5462eb5af6bd2b02a2e540b3286196abbb9bc36b684e141e4fdca882890b3b79ad57e2584ed8ab361b4a4f5725a7cdad0c1d9\n\n# tcId = 113\n", + "# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = b5df4fdfaf1665d89a83242e493c8b2a44550228eeb00bf71688b664c1c133eea9f4c0a1adf9a784f7db87fc7bbabeeaab8ef424f9f12aac640be61aab8f5dc6dbf229cd685bab1981a27cb1c63c138f1476393faeda6710b2c6c1c9948f7815f4f488dc9b70ffdfa9c6ed8fea3de1f71c140a6d14ee5643ded186b9c2d94745e105dc0072b3653294e7ab3f89894d2eee9c09f01db2d36fbfcb58192d77b81f05c6a6e9d025b612f055369fb0b67e78ef476f88303f31a7d35917f00b5e4e6fd33af9e01c61e4eb1a2c1b79d126052313b9d9c2b2e257b3ca3294a46ede05727c8a0d1b55c95ab142cc385ee5e724107829371128f17280ac39b47e18215d775255c53b5e19b76507d5009bab76df1a413218b409273b7aefcd20ad38375c648fc85654d87509888b93714c18cb9394840e86fd71e704ff3eecb9a764a19cab975e7441015fd4a2da3299840df025944e69ac79b2e5eb51d894bff04c1787e5fb1841672ae799a3d27fe1c5661074eb2b321def70785b1422b34c7a428f8597\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 99436e45ec2e733ae7ed9b14664cc0d87b9d70d288cbfab5e903665a140365e6ab8aafe81be94b9707441c588d726c7be562efce80b0d1e6f74466d5520031707759ccef779e06e3a7ab6ae7288f348e111b219d53121ab60e4528455d42aeca72bac0c64632f402f6b8edf76ac7e13cb676fbe0082b32185d13b4acc61933f4707c43942ecd48e71160559d9eaef30342d3e3f362f4c028d0136acbce15897ccda53691ca89db559adf125ff0cb47027fdc7c6376c5b304e004e848f82c6a681235c02d3ca98fcbfce53000450cdd5a48378d7fffe86793520a0ed9bc9091de51cbfc6b88bfd2af75cfc558af37c41c969473a54051f741071e06a4bf42f78f21c4d7de13f6669e9203c77e09de584dbee7dbb5874f1330511a7666275cece3de7ab667cdc43b7a782a42b8e2be8bb983c7744c82fdd0454aba5e1725dd4cd39065bbb86c39239d4a7c56c1939fe37a94966e0433f6211e93e0d9fc9477258239df1292f4e74225547fd6ba68f8af30f5fdb6f2820423b8e8b17b614c91c41e\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = b49672bf48881d9397d81b4d962d23b6f4d0da5733c4b4488981de8d61e6aed4083fe15d3e788149f8cab9ea0bda6156db278b4c66887a5aca6e511f0e51319476d329eea509b4a1e3ffa915b3dd39cfc8401164185fece011a6d82d71cf9171612450e24a3d06df84b80298cbbdfaad02ad4d49a178b3e16b4d2b69020f9bafe6c58d577ba4a933531ac3d2d525222073c3dc883c6958b36e7954162031d9559a497187d497e0c1eb6ae55c7050f701df233c4d6b98e45d5eae45b36339d9c619b474c3daf9a5651b1bf9ea5776765148b8e439f8466414247f898f6cdb75f222636ee965dfd9acff0321c1da6f1c3b0b528c75f5f63c4894f746db01f7edb34b1005ea99fb9f82f82e1cd9943e8ba336334c9b2edba2343d09b082629869aa03fe50937d9aa30060dbb4cde14c3f1bc225042a556e0c64ce0df4b3d0486d611bec3c7efdd3b2be977124d0891915bd68e41980389762e01c631af2f70e904a0b7041ee1a2c32c0f59903dadd8ce5cc335b761108c1c176d243fe2140adf792\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 781a3d96f3bfe9b6f0aabc4f4b6a0c5dd942a76b099f67732f82b6e342016082e6a2c1f584070585c7f2b67c9ec6edbd94e9cdc8693d7d7f3e15084bb02ac7f8d079d2f8a5d4d998c90d242f0a0cf786f99da2104d8b035abc069c763f8abcaecb6194ad78fd433114e61742820cc77d8e0eace89ec7a19b861166967cf22a608175360ff947febf804436ef129c45e86fed9ece9cd16e9756369c638eb6a9f1848eea24e2b9710092e31fadbcc72c82dde582069c2fba3b021bfb8e81bff479687098fd9ac9c7abfede1f1a2811684f745b8e10710fe469ad8f3128694694bb4b333fa59bbacf00c3665402ad486d5609b57f957bf9c964231002bbf190121813f0bd159a6c879edc44200c7e30caa5921d2b0994257d78e0ecaf7c13e67c07bb16b419f48943a956f47f87c839898875a106319a8f860b3d2d140b0bfe6163e2ae5e2b11da259c0c4ffa6d25cb20822049c72d2a142e051b760bc9fd128563e5ba714c01514530f76d50657e4a3ecab74229d773e08347c35e39352db85d3c\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 04c8fad7b52391e832af68e62e8cec1cfc2256d560db597138f1aecacf4fe31ee1515fcb1400ca18c56a1e0aad984709b962223a3d7cdaa59bbbcde52ddf9ded9b8ba38e182cb090fc0fb421eedd787a6c987cc693db6cc645c51c41b91a41afbf007f6c3dc291d036688ee41193f49758cc1dbc3c4809f0ef528d00f3ea2da7e8c74016b20de55a6a481e6279978fc851c692eff78886269e45259ff8607a2efab66e7a18d247ebd2826d5c9f7b9f75862d5da206954488ae1cf1c4f28630b46d8f60232ba8bd3cbefcf8b7cbc06fa7e84c06fca1be837d521f1dbd67e7feea7034d6539ed126316ca4401ed1d1ab23623e2ff91ab762809147b9437b46239044a69ed1fa737c896af9d611c1e8062f4a3faf4220d0afb1d8851a4205d34c6a0ffda9d5b114ed46d66c2f20be4611c0f8b73d69918d2079a6da90bb27828e5605cbbe7e3983c2850334750da49361821cdcf0af965f383519f326fe32456615cd8c72bb6ce7106cbbb4cf3627438ec5de18a4f4ccd967b7259585f5e35f050c\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 6899934d13c7b6133be112f7f63e2a58de2503fdd0c9055921f94b4db0e1aa8475f5804213e79369f87007f70021382644239b4dbec4f8630c325a79a9c2f1e026a1792c1c43b64a57564fcbcbfc9702aa3a9f497f9f5b236495ed80347613170e5f18c81df504283a04f20381ff60cd11255fcd1fcd255ab4eca0b00c4aeb4d6b66a31d05c3b7d7cc329476a8d5e523af06b7542970bc174a6965bdfc42dc76f9efa2abbc61794eb208c48e33c293620f1b348e2048d82832cf293961844ccc6958ebace14ed3de52d57c0c166def97f602b486b75faa47ee8ff7fed50424ab5f2422d61a5c7bd2c64cd9e12a3750686f30ee965c4f672069796a75db2c106606ff7b9594741ac4ce3e9a29b43759b6c09601ad8fdc22c8ec8be269ab634064f6248cf5ce5c34d100a08ced73296055fbdbb8254cd50a799126970e07a5b42dd7939cc8342e82ea8d4f3037dc16abaeca4b8b97696d42ce51eb5241acfd21711d17e55f0cc31b8be6690bda116ffefd8837249a5efce51445740098148f5f31\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = b763fbc33cc69215b354605de6cc21eca3c8e6a8b3378f86107a09476694d31c4d5db179183b0d0923f86c4177149e6143089bded2274b4a7e328f3e45c540421cef31972556c9d81332bd32edee010bca4e77c2113bdf2971800c6b61766a95a2eadfef6901bb1d79237b3af3a817bceb69e564d1de2853f016395bba5a436634dcc1b37f4f1c2f2da979892802046505b20dc28294c3ec9d6517b144c43caa77a3f4f9469295f7d4e0f566b2b10394d8a4e8ef50d06078ed7e614dcc1db9dc3e6f7c9ea8413413fa93d54a0e30785dcdf1cfe5509bf0be80c5ab8ac74579d695cd3ec471def759727470191d057e6d5f32c2c8ead53310890c932de3e6dfd0f3d485a3efb6d733c21d454d032b4d1388fc8f5469de8669e9ee610b725ff46bc08cef304204471ab14fdc585ee02e07191e1e9bb2a2327fee3b23a714cc5d1ea59a13528d97cf75b24357e1e232942aa54db19a980b3e7f64c672743395a9d470d11c32597d1763e62fafcbea2f480c14bef7774f74e2619b1062b84786d5c4\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 3dbbbfed1a149832c71a1293c20b81b1c8d35c4b75181f66c9f7e6aeaef04066cb6edf1241e9d87ddc842880b7978f18af9d2a33fdf7fd1a5e8c10dd547a5d334233ceeda2bab410d5dea9464f623961c98195b411bb187e981e107b6bf67be5865a059a6daaff8e2da602e91f4176f47c53c9f53b22605b748b68fe98ad9c5936957b074fe844567e7dd1b07d930929d3dcd46e84ba6f9121fe1f49dee955e1ad5a329cc0441d524a20215a9f7304e977df5097546a4d3ed5022765b5cda292f1819b55334e6b95119fb0825756d7fdc8dfe173a391b62e970e51729bf89eba61be3ac1f3a5835aa1f6676ef807395440e984b13e3711ad316b7fd61d0fdd9dd3fab9b75545882fc1a2fe1f0d9dc7c72385b0b445ec411877de83e38fb7111d5b935167f469cbd4f37fe1313b2beff0fd6ac4bcbd4e98e55e787a8e16967d8110b8c33ced213fd792e1741e4824e41be24dc6cdb947361cb9ad8c742b5ec01f5e71fa4eaa452801fdb6524b5c6d1cbe97b10d36bd53c9456977f662b6a1c85b\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = fa9bf918807d4a55847c191051e8faeaa3bc7b51ca1969477cef9fd13d310c2b75e7e72784465d2116df32925b772904ee9a185c15c5c740b98bcbe18342b6c8d513c89866bff83cd42f0124d9b47e289568f298c190a185671e6c32e7d4efc86a732c4250b5f9dbf5c084f5efb468766626c06bfb4263e0cda509b269ce9942614d580f700eeb1137e2abf520166485b841eb2a0f2d3deb17e67304ce500df3535a75ad5ae64e2658e5bca43e552a83ae94e81575fc8994c20222ee3dc49f5c8f25fd6a5c8523624dbf9fa035020845557020f5e3c4b988645faa436eeead00af9135d3dd84970545e7aabab9cb7239a42f1b7953055eca1ab75971b067d69d37f2a9d1485aef32230d97fec2ac2f82b3790fdb360495ad96fcb0659029a78358f344155e54cf52495c6409dd4066ec6d44a7a3f05ea3d87794d8dfcf79152895c35085db4cf14dfe44bdf79d313be0b6e75b62d003547f7a30075dae09ec28b8225e08ea374ed8f442e216fd0b9ea5021fc72c76d42163ef3049e2c0b3a059\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 106870b720b4fca4cb9c6cff814c6118b003f627a8675865f15b4b5e4488395e0dbfcbe127fa684a48c4446bc684054b97717d83396335631e59b1c7739cf647049e92ccb8405f4a6160b9c588560830bf3259abfac4c827194a7e19bea56fcd03a37e66b2e58d71d92dbd694c00316079fa2874d27b3f533d09185e4b11aca79b5225fba9b5b20f05ed38d24a202ca9744f40a7b81dc4e27fb56cafe2bbb4a80322f009adbf19697cd055ae8acf38f38e9f2f33c0d0683646778cd52dfde268cc81cc6708f090d04a16cac31", + "708e2a2418024e53a87f11589507fdf65656d3056a7fea52467c27b1f90e1bf1896a1092a575994bdfb1b2acdb3df59fee8248e74a0be80c2ab0c04aa4eb0c1aed69c1c1aaed052e25d46c391947d2b97c36b707f82e907ce991a5eee9bbac578b5ae83134771f9370f1d3b9154d898ef6504ade6e17d96262cc2d32bea12981219e52b9738cc097b18eb54de0856f1fb89c82b1634cef2e7acde0ed2a09280e2cfa534f3520ca1d9b1d7e5bc90205d2bf7332e\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = dda96df9b188652fae7ca14a1d3a44e26359ad9f2778f0dba63b5e4aba7c30b55439f74ede96c56d48df4254f4b0a6f308859904f2f69f47ebf438ea87232f84e61c3e376daa2da8c0ab2391a5c8d478e42cdb2b70ba430db5dc3aaaefc9c7c6ee39e2b1393f024a75c4b91843d52a49bb2ebc9aedebec09d2bc5c200bff6556e689e48a3442b216bd7c1927946a41733e8ecce2589d0973ef8dd2a3a88dd9d4ea2d1d0babfa60239632dd2c23124165ab11c625b95c3a0c2141301aa0bed4228a1b87964ae14691b4dd02b34e38d538ea1e02a7fb20eedcc90176e8c57833adecbcff87df4c04f19a77f223976c41723f36cfdcecdafbb72f2fb944d4ffda0eb0796c3c0f1e3d19046c3824137260094bc6eb3b735153e9bd683cd741fb394f75dc7510ac4f6f3dae980b56db7ec4bd15cb193f13df1f03ff8a1b62aa9587df8d6ada3e8cb849cf923575bc5bc4bae87c93393f7894a16da39989305a6ecc77a1a3739ae253679bcea0d7ac472cd5fffc62c64220347765eb4ce21549654f41\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 80403d3a020d83681ea576847d5d1367e0210401b81413f948ff106e1e341be57b4f39f2d8509586cc477b0b8934c0ba78a3a97ba425c9d123ca3bc64bc26538c1da92b24adc50095c209b522dcb4f0892815064580ea87c208d7477b50d7330bf8d463bbd4ec66003576ca520a1d04f836d1e2abcdad2b0ada71bdbacc9623da2276c718a36825020dd20d6747c9b7616488c7ce0df20ab150d649c4417df73718f3c363927884bfa6134c636402b6e6c231d04b3bdc4ed6b29f479c8c35e0e02af932e59f800e46a14c0647c2f0c31748d56995f346fc6bbbd90e55be49767a16a6934798be43fca5d8ab10853cd20556634df53b13a1bd4c047d7d52b1102796611b016517a28b277510c87d398b4fabad78d11b0a6a094efadb7c21464129636c75eaf06a5c1fcc1a9cef40b9488f24279c6fedf93b576f5314800709929c54cfee383140fa71bdad7552b0db467e39caba1adc70e1ef22f62e81c5d4a50884d5a359de3c7bfaab1c00c31de9fffbbd4f8a4e8e8ae7e39eb29abe0612554\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = e3f92ba88bdc4136cda2e5a248325c98972c8a42872fb5779c46c406dc8a7f117d5fcf3c2ece96f3c2c0f5061547ee233f20e17fab48c4316441367e445d7100a173bda80b9d6d4411188a942c3be703f0779829dbefffadfe6cd95625fe4c5c1bd3f22b8221b2b69d3c20ea407c6d5ebdb5f5c137d056899859cc5faf5bdc87c223508a662e5b56b08ba3c8d2d344b6df040193e36263c11123a39d7b222377a131fe3c36bea8467390ec53e46946c54bafff4bb61a0bafc09c838081e4e66231957752fb8a49cf1904d70b024dbf470f17ae3c50e7407ed5342dc8ff9e556564fe37a6d922d2fd867da8d92be27b20deb8c7597a1bef71edcb402b2bbb986fce5324f4c02af643f5e3daf623f370c9ab7d3a55e1ec92a5a37f2148979c9bdf8488a49d2f6a31a8e99f1da98ffb5c635173a43b94248a8c5037dd385d16ceca4b4e769a8a5762d4ab952ec99f3fc9ac6115666e0f5f94ad59f23c3ef1798093807cad7e08dc86f3b4b85ed6a34abe354d50c772152c9844b9a34e9097688368\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 8085ebfe55c20755b6f1375ad924b868867d5c878c41943e61a9eeacbc68c7ee9dfb61f54b8ad22dcbe04c506814711ca1d36c2226a7d906f095ee1e0f6bb61ab8eb6344d727b13a7252543c842bc7fab0fcda70ae328abdc8ca3542a805c6ad30cacb432ad05918a65862f7f2d59d0821eb1e73ef8b7b2c24ceb1232b7b3b5a3ce06e7e5f214722a4fa4675217e09daac6764fc20b3a87d21589b8d2220a56b94eb71acc6ee4c400d47f415507d01207777ca6f3b2baf3cf27e75a6cdbe1eb0089f6b5c3825edc6a223a61c9d256006d30a6f0fcb2c5624ee8b49814f1f560260dececd9d11f697ef417bdad561a9b63236dc2e62d8914382bb92e98a1c39393815cf0915308cbf212c04bfb4a8e9dabfb5ecf957d0b6a3e4f7b0b13233d27998a1c447cd845cf926144370f754494e2c1b845646028e4e26b87888e8866c89e35a00da8f3ff3ff519a813d9016b8c31b861f4a292f7b25180447aeafd03439c543b6e7c94c03eb837d013fcd2151c17155e24127134cfe6f5d88d9515e3590\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = 618987b90f8071495d4276c5dbbf43c8a7a2b952d5f81a30feec15f3201243c92628b64da8c347a9877499c28e1bbdf63398485c1f88913f803789538d3011469cda13483841bf15dcee6b896aee07bc90e9f7245b016c41fa03944b1676a7fe392bef538ea1a97b71be9d50fae8c6783ad35470d45668634f91187ea61d2cfe959a869034d333bd6616c738f0a99bb4e7bc66040421c833d5e3e1c39fb9a92df063ba851b5cd149d1eb0ea903241297fab62cc15901e82d2eb105e9e037202655a6904f6c051bc79af16b2b9e043d32872ee85bf9592039822835bbb7dfe426a6200e0f0b56b0867ead9c1cd5b8e966ad72ae287da6e84c001d29a9982521d9fc193337f2ce4dec94a9eda41d17a45a60bdbcdc85e6ea034bd696396bcfc40614ae6ffab3e8d78d525163ea55be5d4f1f3bad866cf59089ff727f58e5fdfc5b77f43a3fc0e5507035c875577f247d4d00f5dd6f5a9a8ebd6fffb620e803060fd0e742d7cfcd3ff408ce53b1003a351516ea42a47fad8a62313b8ea03c889754\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 9547ae982686e6c57123cc12864b93c8e55488e90ef6c2b6779538036dee01392b62066077be8102cfd3d82f46920bfc29b6aec0f29bd56e71bc1dea1f287cf48b65707b5c950f60313efdc537a5ebf6d8fa51ab448c70e9e8726cd368c615c75218465f41446fb8e21beea8a0322f443f125b09ac9d4f4e1978fe93f9eb9ce2fa924a384a922e98a023f20c6fda672082d5f8904429a54d0bd60309d6059f76d66de8d02eb6bea880472f8e569ffa06c0ed88065f9b93f1c124ea881c0cba4d1d2b13564c5c1b221e6295b74840623d9d014e179343936bf583b8391e89ce5e913a6cc3db1e510f63a951bde0d83758a4670f0be237c80f9d5ca851ab835c5330463cabb8d31f4b8e188a3a226d2553668b773c8ded433df5de155c0653bde5d06223c31e39055273e485c78366bc84d013a277dc0ae44b48d3ced278506f2f07e81f74524b0a1353ed6b6c798a1f8e9a421dd8248b81eb25891916b2183580cb8cccbda2d5f45f69451575780d0bf3063f937931367f28d15d3b49ce1626ce\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = a2d71c57b8e78998da1d98c13757bfd9e0977c5f17ba07e47bfb3afbbeb3a377f8c4c78c8d82890b57a311035e2225942adba57859490e004f8c9c69b71ba818fd1ee4c396215d90580818ec2d5f71bb3006596724541eadc981dca096fa4540be86465274f19a6d47836692d7d0ce80e934ffadaa70f110b08974a32f145d2df260436b0524571b3710bb4c7726d093c90fe333a0fb73af084795e7800a036445ac90a1f3ae08803053cbd06b9dc19ad70d775bfc52c9f2cd7096b4405ef62eb5f330ac6110d5af0872182471f3d9c2ddd65888f902ed0bda98c8a3faef74e50e39841266be25698d28705a577ba3c2f14f59b14e91f70bab478995155ba08c7e5a819b0310121845e9669d45095ce1452f426285e2159230e0dc8c4098cf01ceb3db982a88aaf7940d9f3c59a4bf9cf42c06c11ce61c21bebb92169a04ac0b2f13972c63a7a42d64dd67a6b8eb2d707bf059d831485fc7a73784621b559058f5fadb945f4228e9e01876dcb903448eee5e560539af7354fe5a4e4cd0ee586b\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = dd00c9e4579457cf35a1de0cfa01a1b96eb3395deaa2ef1dcb8a1f1a0671a28794db39b0432f00ae28435e5a0055d89ed6d9a20cb1be6aebdfa1a78db7a1ff13bc35040019729f9cf0d344cf1978bcc224e5c184dfe1d7c64a38e9ab3af3703180f8045bb55498e3b797e2c7dd8f23a8341c8b49d8f8eb4d08d96f109ed96b42783251a10365bb6b8a6f0941e1063be9977512462e84b42371b31217945b12c9c9762fdafa7b450386339d0f25c6bb8c9251c09cd58a414e95150d84834657d06bc8d2bbe5b36a18ccd04719c598374299c33e795ababf0eb2a23a053b3635646ac57b88a13b519b8734b1ed17d570dd167b9f95a98d67f0e36b9400e8e6bd61208be53d335b24f14cfe07d32011db038ad0dfe99277fa970a208572f805bba501399d66c7751db984272c89d4d8633af03872f45ba89026aa45e3b63ea861c104e9827d1e233127a79796f1c9ae60d6196c3f299dad4741184121617f9d6ac7bdce2d480e783568955193b0cc2d2272f3e5ee468d4ba84a89519d25926112a7\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 2c425edd6db32c3a52db746211cd9394a47a93dddc932e3c563c9a6a556c5fb4655009fd1d9a2645999304eb0972edea50155e6e1db3ee990eebf35a5a078397c284ec71205c0fc2fd09e20716f82c8dea46ba80f86b837c63809c2df1e51a05a8c9300f2140796fc3f22a851d98e96cc7d70a868c47dbb6364dadcb6f92f1af23c42685fe28c0cf5935d1a0d22be4dba0719644caa84eef15660aed1a32ecfa5dd5bfeba5c84375e5b92735d48d017162660149f8577837297c52522217a2c1adfc42c6853003a75adc7c011d695f3cd17d4266d73bb07553e146d4a944dd072124d339785e7b03382e36e2ee72c844686abba9d273eebd06e202b583fcf74bef871e1f2e15bc99366cf290eb87519cdbf9328da495e392f2ba47d05465f0f555ee915c4a28ddd14ecc82a26e88a2b74e4eed0c0e78aa8465345067c2fbbbd3e53b2c9c7fe69e30bf1c6500f9cdb1c953193d5c334db68318b753d8477ae8cba456a60b1641fbb6343cd0511adf3b836401ca20f01ff2dbc332a91396495102\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 80a9e92817a9edbf2862f1ecbd3029cd1ba0dbc7", + "abae4ea0ddfe44f49c177319a37b646c41e7caa8153e7d88b174e720fd911e7bb09d595c2c46f59168ba2a6a8cbee8a5cb86e2440e4bd7579b6de5ecc56777ab3b0184f77d3d1757ee0e9c9d08d8296eabb488c4b91a14555178ae86f863756ed3a8beba4f59ef90dc75dc3f9d5faf6d4221dd13a6ab4e353a97b59d431042e72956cfacaf8fd95772c8c66ed91c8dc901436e508bae2db4ed99230ec54d0a13436baaac811b78d01050444bf488d507749e242086d11f147b385882d1046b855d335c3ee5e35ebbf7ff4e712e8bf76d4733e6e0f7b84c5e59fd792b89ab1cc456a89dc866bd6b0ac4b2aba3ac7218ecaccc96cc59ac357e1d9705fd848a94fea3d2034b657fc816466c376a55b98299790874988d078330cb19d8e354193066da3fb1aacce6ca61960d115aa3985f02a7948531102b1e473f73303925d8ef988ccd780c55eb0a3ffd35b71d098dd39d42841f19b0de234f18ce8303a4016fd09b73c911ee9609165382ae34\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4c8c062374efddac383db9c6c0fb53e6687c202caff3378e5499196496956785134abb5cf8c9b1ba586852e2fc5da928643fd375515930fa101371cb855611bebe46e374b8a5b4b2ff7b19e39fe09d8fd72be6183a564570f1fb7b488870d1941f9291d183f323bf9ec606c4388409205377d1a59723d67079689d4ffb138656e30ab4cfff33a0824ef98721f83498bdc7f98565ece6c627aa71844d9557ac6088f1ef2dfe81260c57b84b96d96afbf87e3c18c86a0f3b77bfd99f3680be9c022486c964c4c1de8d777486fe9dadf8d3c865f56069c947d634055304623ff789d5833c73ee381fc4c68ebda227593eef7ad9cad4ce4e165b82273d8bf8dc2c33004ec3c2be3419ec50ae20e8db48c2dcfc7ebd769ec0b04a4c3932707bd355e9d5980670408e9da32a5c90308f8ddfaf9c55b3b7be081a30c2d9cc155f2453a2004d3686041fe31f3473f2dcf04010469e2c3552c52d722e6d0e09947ff575edfb7b780ec77c6868e196229159fa197299008ceb4c8872877c692bc372ee5c4f\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = f6c8f078a23885c0028b37ffcd85c2bf29a853c4e07a65ff76299a9b9ff9dd4fec9553188fd352addd5e0d0a968b8c58b0b8d501cde7dff6efb40a08420e1ebbedd9d1afe0caf03392e8b1bc075e89f269867d5a04486c6fd64247c0cf2fcc5c6574013bc353264b0fd396380e563137a5c360f13e41a73c44fe6b5726a0787197bcc4048ba50c553e0e7ca2ebfc153e72c57f3a94d8e0ae1f48b5565883579ebb50e3cebbd289e378a284bf6b8c6ede76edb0285516a799b346bda815b860c913182ece4fc3afda940b9b027014bc08e0aa05be909204d624e0dd07d2a883271683936eb8bf2266f1f41073c77718fd675299f4c250222c031f24b0d1aa6d86c5aa54098324efa8704aba7d32e4b9242b3c440e82a4116c20bd1b055d64d9b4b2460764751f92c901706c6865e201da551e8213d979f6997853feed3bfa973e6948a20f7b3ad4d0c5f8e767b6071f0c095712c36ec226a36e030e8d5b9efabf2b626c3eb673ba8c14e099dd22f256b90321c74b4666eb6dd86037e1bb80dccd\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = beaf12b6741d14ca48fe9824bf8e47c9d08e0fdf9f5538151dd92c85a039bc8d402e942bd74de61f4c1b7bb3dca3e41afb93cbe35db66bf58d5770cdea919cbf0cfd61febb4ace8d7469ba67bf4f7882f0bb756bc766995c458c11406b31adabe63b33c6203c461579e4c79b406bd626156549b9b222122b1a2d22f6a8d58d0f79bf212a61ca58ed6ce036785f7ea78aceb5490044b05fca41561d4e42802770ba24bb1e7cdc299f9c3cdce99a4b22c80a6086484048132933f0b8c5f42d840ab1ff22d0e7d182571555fd503215685626f4806e07b811f560ecb0387a4f63c525c84c3b1640be6f8c4f7a7562ef232dc10723b7008ab6463f7f5019499499c17c19852d7c60d284889ddbe376e5a4df0505e6cc7dcb69f04685d8d0cbe6aaf127a49bc61278d35d7b9eda9533939cbcaf0f8f8f85f5972ae842920dfea6e14fd5b1416c9303388bd14c4092e6fa86c127e6e8d7859a590cf16a792c3b03f71a72a49e563b7e787aa2982e76031e63c9b81e07c6a2cfecfe3573bfec21a8e9c2\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = f50372a93313b5a19689d40356e10d2f6829b9e46d14e613ee1ec8fc44d488b875ba440508c8b20d40124163fc5d7e98c8cf85943909b2c224196c08abfc2cbbaf24f779c672ef8f9410a7e8fcc9a9e01427155194433ed9078aa46deb3e4a1dc8d68fbdd3ac1280210fa3ebc917947a5672d58568ff54e85ae740e4f53f1c00a664efcde4937fdf3f6fa3a0ad5aeacc68108810e6e436f6fe8b3ae31bcfcebd3b7b679cb74d57c7eb78d81ae9b78e2de3716bb971316f6e2c0d1b474f74370400109bbf297efda08602efb86feb7e047bbaf92eb73332419275d9175943ec0d1a70ed8ad3d63f9696981b83b0003c93dac1d2d8b9fde2978993b42939c9e30c3b3d2da67988a89b8e1cfc22847baf8b390a0d3befb92ce103264f9fd91d1a9577b300a9ae5f9f0a77c41cf799fcdb2e188f9afc8029a5a88e76ad3b4688af5b272100e522b294af1fd093ddbb3f82e5f617e0371faddfbb8dfc605e2b9b89ad65c2e5df4d315d5dd4a16c8ae6b96ea289a6774fbb06d666f6e5039003824674\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = df8d82d8bc8e14d29f72c862238c5c350ee2f08b70898fccf17d57fbf082d3e1a7b4755ba68d971190dac33dc1053be648ede6014a272ec7f7a1cde09315f90d931ba1df8d580542569dbe7e28772a7b11ecfb904d519a73efea0277209b596141a1a86f455e6036f869005d434fda24a0375eabaaf9b0e2a7c0ebce38a18336c411af96f31147b611132ba2b1ece8ad8996a4b604b4ddc3a87d85c8e58f0406b0f7fdc82bb6e1441030cc9ab2f610f084c2352b296444340a1d12b49e3cbbc065ef2e24e17516e181feb60789c45b181a3639c395471cbf9e013dfa56c6d5651fa0c1021fd8a2158764e2d8b4a0340e964360389aab5446e8617ed15ec3989881e2ebe086c0d992a7c56d5b38dcab7a6f92de59736d6547eac156ab76ff68a079b8ca062cfdcf1ca8c6f0b7ed1d70c3fe04a143a88870a7bfbf1a5cb7914db766bd91381f31b0dda66ae2c778cd751c676d725d3b8798d9793992bd4ebb0181af7c4b6533ece8251e524aac8466e025ef6d31397aeb15e4bd92a02e20d1e51c\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = e75d3f7a4fa5564a8ec1bfde667c1a2e9d55645c1ec35c81a427584c8b31c014297106d8b6741cdd11d6f27afd040ea5509d626b54fc601640297adeb3e04878fa5ec4f553d0eb2f49281c0db547933a50e18aa1bf3f5e6cdaa6e452d9bc8dd1d60e7e1c21ea00fed3f70481ce9cba7c2ddee00c1eb3641654e41b92ccfa278874907788f934c1807909f2c9ac7a25157b7b7551e4955fb52a2b7d9a9e30706a1f39704deccda7a156af9da41b874298e78291b31c28fc958170015170454d154759eaaafb9b0800d7c4a7c9351c6e25e1395105a95af889a80340110f132edd2830fa313ec7714100dbca65e427f850c65adbbc94e6208faf33f26098a3d61c17a0b6dc8902eadff5c19c6887eed60a63b9b09753b250fe586f5c34e204fb0e3e4bb431ff1a78c4849fd78e7e6ec1736914d3b1cc6a5503707dd96fd9bb5e8777bd233dd421a6ed0b5dde9f11ff0d1fa9ed8ade754aa1816465a23845727f585d63f1977becacd3a0923b310464432237d2662e61622a00c1d310ece4ce145c\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = d358d09d7362c351759cff1a38cf5ed30d46ef8cfa4891e1de3f51b0b03f318a00ded0e1fc646b9a98bbcfb1107cd1ea1cd9fd5654814d6a417e0564d28e0e7b35751bde792c55b9ec4e3dbde0b791a04d996450abb85e4d3d60ea2bc0e623f04438948cc7a03e0f11933cc857ff37cf47d3878e6bbfe26310a754ec51bc034785cfcd906dd7f0a97fd5ea3171f333444df812ef93249711b649b46e557f38dfa43e03358363a99610088ed415bd6bb5ff7db644670637a509e8ae3dea48828e178d4cd28049f3c6dab0f2c5a3bbda7d2663742f5b68195e1ea4b14c2c4d8f66e89c6ca1dd51b9f5af289893b57142325f1ac2126db44b10784f12ddf1aed5db309ebdbbe31c99a3191a22a044db2022ec611ffeb0ee3944cc51324240e4d54ee5aca8ca8d3016939e3d4215e9b87a20775f28e7d477b4b9d3526d0dd128d0b97d7530d18dab5ca1d1de165e5638bc236efa62f87ac1c90a0858b41c08f9cb0db85765cc7fdb968e7f6f50546ee914fb7784e94107bc7bb348096bccf3de13ba\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 446145c6c678d35f859a08fe02d4e58a1b8be1cfd2f85754ae1f1576ce7e8c63a8333cc90880b3845c969505d27d4d7de731fb5bc2eba43acefe986891813008d737e200ef1af95a4fd2979c01abd7b06cb52bcbe514da42c5a5fe1bd0de6ef28f078c94101bc65bb187476237d992bb80479ea9470a9a9350b93830fa97b726e858034bdb02f1237771b94c71db8d16bfdfb8eff439e44c9f4b950b9cdf31258d36e6c170aed157bbab1563317499276259c87bfe92f6a73c02bdec02885d8c6cb06be332e87d3f3eda0ea2fb24761333f014e1aac01b076ffbc39322462dc82427b8b6af01ef5bf5bce0ab4d222ee660f3fd661766fc2c402879910cc59d743ef0ed1432ed120754ac0ae1de6239989f013dc17ba66353e1a39878d45333422e53187721b8257848ae5edb451cb1c6967f248e15e92392e5b9553ebae45a9afa0df9c5deca3c9d527c373f83abbec734f2b469e22a391866299fad635766812a339c30cfbc51f22cd6f1139cd76e6798e3e24d40ccbe39b7ea4f7d22c6c87a\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 85af3a618063afd989a7e1747191e02e93c5fc39230acc8265c575558ea2f5b2dbdcebf00f7007be38c1e5182ccf643cb7e821a26b5824c2c3cdcca308ab157ff8038781d1e89de77ee4832e015fa490ccf6390e9111b7573188d9fe401bb1d32556de05b0cdfa27b5b9930c8d7e044a0470b4fcc03913c018932c700ab61d0a86c28ae4bdb0a9dbfd90eb8922fdf237f2a37a5e4e3ee50c784268048190e5da77588c5a351498113a60f29247f812c457c5183ee1bc6de62720b0383aba38461b6d0da451c55ea383527ed9c4844e5c86c41143f815a9c94eedf4f0ff8fb8b9b33ab1085d9c8103c7df6312cf00b1d094cf5bf2a3410b2c480a201d2db601fd3c906b96db716f7acd73cccec7b6189c9a0e0f11afac74c74d5e8f59ad403ed8cf63e220ddd026", + "4fe4e7d9e038a7bb371221e670cbabf5e99dfe344642c68307ec55bb0a9e61de7b1c8a9b19d317a3a024bac9e5f81d9078817cba296a7977c1f300b01878abd4991e3acd3895c463bcd7b3cfe98c8a5b2aa36579cf9c4d698f\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 32d2095dfac746fa0f63271819bc652ebc1f5a32f16c041fe8e7783e4696ad79e3d2736c1481d81cb5c3a992854de7824e55e62406a44a6576430c86e48e0245da194065a58ca28259bc6294dfb71c30171b4a9b97ec6d7343e8e7e2726d1be0f75295da4f7bfda68a44d8fa78427409c3cb4fa7164da212848e8406ed37f9fe87b1ccf155d46efe2a6391c58f78d8697c1b9965d7f1050c720f10519ab1b42cbb0ff05ee58eff40fb5d0bddbc6b36f42a321d60589b46acb83c07373bfb8636e091d744e3ea643cd28e5bd3bc8ed8262515f6d27a573d38d121c474e132be3a66c35f4fe35ff378883caa731e1cc5cbcd63e4b37ddbb3d20adda51dda12de2c12bc8de468969ed06476139ed99eaa3a21557cbf082768c829bc2d14c7a9c7fdc76eb2a1d7c037330eb3a4f11017a29b7ae47c92a4cb69f932dfdfa4d9d91e2424cc47bc6bc259ce03bfaa7cc43f991e8056df2a6ba27db209c73a27c4e6c2dc2b81d7fe6c7df701631fb9a62f76e74354b74ab2f188a456fca5f241c655e829\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = 94cf74fa31189732accb5392f396fbafe4e0d99d4dd19fb9e91d85aef619e859aae3e27546e3ba5a70739c9d6972afe1383bc4ce501251b427a50f0a5327a55a0f3ffe847d454528e5eca7cfeb122be2bf48e537ee5f692d20f778f7dd9e332631ca7a869a760f6880c9af59e9a1cec96b268fd9bcd675636df91db986422fa04042090aef9b25a2285df8cb5e6c90e5f915679d9da3fed5b39702ab36911b03aeceb3be040e80bdfb4234675863249a5a49987f242282ca3a71197f9d412b71d1c08b70a9c396a832a62e57a56cd6dcf421605c326a95eedbfa85afc9e2e2dbd41e3c675ada6e3315202eb3d15c57e9c08b503093aaa51c2051c35578ce6cd34c40428fae9e9d13caca5877864fa9089979b385ce24c52a9fb807476a2b87856ed06483cd8d471ff3063830c1b6ad8328bf6ff01be02deb7ce5ccf8d38b650582173ba19cab73340e4d3b136d154bf98f5607a4738dfffd87381007701987f88f8fda3093e8b83c64a10d6d71e81cafe1cb33cada4bdab87ad6483e9af9cbd7\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 49fc18b547fa4c7d19cb46197707422c411d53a2ed9bc8e0f9351acb69c86e258043130c44b86a0d7dc0590d04422700a230d8b7f0cac824288381d0dd9b310975c5855b7192dfcb5675a2782db475f3fa2ded14894c036cbb343ccd5308316735776e4a8b9b75ed133de1389e0fef59643cf2918974b14f315cdfdbbd6f4e0cdaa46eba5e8de283bcc8b3b5250c8b4b9336e9ae5dd96c375fd16c2d30e50473478ec50803e9f278746c4e6b912b37ac9707b4961484546366fd800bd8cf8d7616cfdcc22a7cfd24237da437ceb0e8016c3016446abd2daf313c325e951da8c01fe964487d3b6e4549af9de5dbc9a30462ecfbb028fce3ee470cad39fff62610fa5526dcae39de93e6909620319b214c2e0ef984a543245c441a3732cc281cf18b63bf7546a659ae226825a0ca5025d73c4c1a1be069edc16e80cc66a7ac0309f5cf4dc3740fe6894e8da2ce75b93a43ae0942bfe0602dbc90315baff355d7574e31a9cafa7c367e2a68fe040f419fb6e71317c30eb7f472e0239790a18825e5\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = dd3ebe40edeec32720d32486b48ee2cf966c87602e5fa879917b9de79d1e4617e882336565dac061769085c9f4f53ca9392de1aad42656f23c4cc3637ec1e4efd2090d6f41d38aa587119451e15ccecd6b3dddf2bac8686776cd0207c0ddff44d10debfeb08cedfe56524a35e95d45ce733b9b86f62aee14c3202fa122dddb017e797f2714df68e72ead5b0a782e66dec732fc706f4c9308af889611128cece803c2efaf07c261a13486bf7d7a21aedd4449266ddcbfcdb5bd171ce4255de460a975badb19a5531dafc97e553058d21fc1643999f209719a0a17e3802ebdde28d261859d4858c30fa6c9defe34f7a7d7b0604363266e538e117a414a0a4af8b68a94d18f4ff8b731a4ee33ae8f2f81ae22d8758cce3c34d2f62786d45c8b0c69724c78984bea20b55c560dc831a674210158298a1e7c90984fcbd994febd83478e8121fdf7abe1f14f2f9764daa70615463ac1aa5e61e0bf457e1cc9ae83b44700ad2dc592943aaa948d9028e59e9999fce4c3374880c7f9b1aa2dbb9ed70eba\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = db0c7c8bceb36078e3ec67ccce2f56cd9de9dc4a8225554d13bfa5dbb2add120240c0ce7c369d4f4a9ac99614b9b44005bc18ea526fd1c00885a88c437debf5d557d8a19ca2e58f58852863d185ecd35a5e4c0fe5abfeb55a1febd9ca107646395f07c1543b9c19b02277368a45adb3c947919972ce4df484a64bf2ad5f16fd76b00b64c8ef9736c14afc99ca5e0160d5ecf33d623a47a053c6e0081a09a6b819eee701616aee79c4b8cb04c556117d738ec9064b92ad716c3ec11cbe6878b51716ebdc75d95cd463fb29f2630eb8ff61f7cf282e639caacec00359e971dd41853f39bced011b2db23c262f950004c2d6ae9476a8e66b4752b376bb549c63b36ae9e9f81c13d05f192c41676bce2823947dfb77d03978854187d3ca94c2dc98f10496a8f8b8bee690217648ef55af1721d73edf4f0a023a0b7e5a5b74f3caf81097a7def0a585ec3adf04df86bda63aca30b3b36d18584f103c8b310fc923f84bd4b9914869e8add86bb8f24af20e790beb984daca7956e85321ac772d1b034f\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = fa714130cb868439d5d3a57505d6300731c9ded56175570cd5b843b2c6289e70450070e5bf30691dad249ad3acdc0f5fab7fb16d72a5a8d38b4481eddd2b3f8a390e3833997dd01cc953b6b9184285254395c24a911e7b65643582eabeee2f048b366bb50782732d155b70c98e67a89a330257313fc2ed9822c088b55bb7d645f348581f0ef4b89d44c93cb00b7d750e9fa195b87e4d9cffef99be38922da21188481eeedea4a174b25be42b6aa44f9186ac9228b0354896d362a394c1049e31b6db064fceb3a8d4d381e334efa494d6f22fa4c35bb61cf2c9e84090cc8da3083358e7306f2d21727230c7e2741e6175056ffa9ea3c85157fa8dbc76dab85999960739f126bf020c8c38d1b96b2b9e1b850a4be1e861b6505af251ab38f5bfa12022634038ad2ac93f9acc334dcbdfa9c5de36b9dd502ab08435852adaaf7d0f73c7c7133c7aa9f5a057f96b9d370e02c4bc39ff6e3b6bd011a25ff002538d2f238f673514362a98878a518ca98ba3b9e9c2bb454a52a3bec4290544c887a7e5\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 218562beb53937237244c9185c62743e986519ea1fed36be7a6b6a44e5b88f9c5ea316d33ed5b9126148b5d6699114f804f4d3d698d24d85f0fe6691d5e804305c4b7d76fa7a238b4642035d2f2486dd575980aa2eb36c89e732c420c389d391de20eaaf1f8e23096d4ed73bdfa2feb710a444bfa6557c82c53cd15a2007f7a3f8159e01fd6c890dd9574226c39ede68bd57e3a1c5a70a77b586fb49703d52458a6b587244c39d5852cb2416a391a6bd0b58c99b32f1217209b4349caa0d7fa9397add65a9f494ec1d95deaa4e7257f03c3a08244889a6f682cfa4a6ceec13991b5f832cd7fb8f8349ecedb75ff2795ca33d73ecee7a42553966a1df438f65ddaf6000cf30011c064a3da0c87a66c212a5fd157c40dbe3d748477acd67ffa65ff7049e46da3da0f7bbc041f76173f4fc0acd6a1fa690e1d034aafae009912682f3800111a15a22709cde9ce00fde3b3f5f90cd55b4c5ce224f0c31b62315b5738461bc4606abb9805704312d2716455aac4fef649079ec2e62b901b289321dcc\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 3652f7be92a00c508d7b1185eb8ff9e15b586d21ea715bd1c85425d4cf9e6a753114d766318f3f1d457a4d71d7464687cecba92df12c5f14236b4a52b52f58e9e3a0ef3bf500d292bc9680f99f016a01ba8923cff14723274c609a83b2e3e9ff2b029998defafa05d2067f8aa4726057e73a4b46eb5cc996c44474f977b550890e557eb83b6df446e620b836a09ca15ce7ee961a30193bd7f1c3b31be510043a38104fc3fa97f93edc51dc26468cad87eebb6be074eaa881aa40fff2c2054a136d2acb58d04f775266aba1f23d5a45afdac8b0a2de37c97d8506ebdf2345a36649a3a243c572afb900627fa89ec84fcacc7a9275024b9ab55af240e1c6f99135b3c78a08da3f23d2e3e81f3bc9c84a03760c415b74c7d00a0e228621c21ecab749292a30e5defe6363b29c590abfd91c1f8d1a819b52ce4deabd219a320f2ed0c9b47bb40ab7e9261b3a4a4987fd5bfb0f18f1a0ed76b44157c2e9093a8767fadba09665b20653965b04e211119f2d78b8c24ddce9cad69827ba4b453330b4cc\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = f87286ceb7dab7a8faf1c8d68cacf38e576ad5e0999b9e136aca42dcec65dae729a9a94e0631bca93124804ced75e3d8e1ac0a7bc91e626d74a80ed3f20defa5d73283f6fe0b5f1655d49ad7b2c91e170e18ba90d4a0a701e4e7c0fb0178b3f58618a6cfc9cfb31ac94acac92072eb683d1bb5250926a57d6333b297264fa27f114db8e28fac4f65f5c899267b455b91267ab98e6b75c6c3b34efa76ac0c9d78079b037d7f151a7cfb70e52765f3a0d16012ad23b61b75a7cada0137d0a87fc7b82a69682593a77bd31d8b4d74c3d781016c04a1e2a5a1e1bc8afc9f039428555321c73c42a1dc7c60786f0c3d1941e65ad31e16c789be7672325bed8a5b9e779316ab8480dc0a8def681ab80d9902e25e6103844e848831f709ecfcd2403adf595d56a26b3562dcc2d0bc8a7970a5d0a4681686840a864f8e85185255a2ba1c43276353e36cc9b2c0d2d2d2cae1ce4b0d99b17774879192e4fcde186ce1b3d5ac8a33ad60ddacb15692ba4d5a49831a83deab5261bf303e30a0a0266790a204\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = 1f6bd67b020e7d210af1a4aa1bd4bf52cabfa3e2cdfcdd07150ca9b6d27f07f1fc1359da727c45e0cb26445a661f1e170312c77c97e03ee3f1c3ca89a633c95c0cc19a486ad09dc95e3b4b8b0dbc64e85ef05ef979ef0f3a7419dfceb1211197701c8dbd6adccd756cd06c98b755fc1cbc438a54d5ccb9c70e5378ef0ae11123", + "0865a06114d6e6b8b847417f627ec5b0189858573948147018afd58bf618f5cb2a06be8df46e433b6c42851cc323bca2ff8e286752f9c928efec8ab6212d2fb6ba85050615dd8a956472cc25fb45f7613b5caa1b5f262048ee646c9fd01692f029417fbec9429e5a697837b022d38bed59a5e892c6f9dcaa17d119b9428821d82be7ba0ebe3901078e1bcb98ee0c411911a2efab418e2288f5177e0c889319733a2fb9977b9855da4f6fded7c1684fd5900324075069804db29818c30f1a346446646a3b22dc0a19ae4fbfceb841226d754551597789493470d072d8d1af8f6631b4609521fca978faa56707ce5b18ffae93be4e1a7d27d1fb4cf6423401d50f\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 97491372bea1be6c54b767009bfa9e1b5d8fddaa2cbf04551584c15b61f30ee48ab25b6e14a2db402fcab453601ffe63cc5311484e9d39f6f0b3aac09875d31d98e8a30fbaed37c1bb68a6185e26d6e35e0daee8fd0cf9c3b8c46e5c97ccae80eff6cb18e6ac9ef15f61d9fa6b983d7f98eb38c8d862aaea96864a7cb2e500bd91ebb291fd852ca16b18897d70ca2d8a22f936b95e9fadda9a6e9595fa1942a942c3e690f5531e029aa5c38407391709dd0121f9820726767e1ab8501eb4641fd8ef3ab37a9918bfd5dca32bae1cf9c5e8f1129c2951804811a126ebf932009f4a30680d1ad9aac7f6c865398c8df5100fd963b91a5115c9cb84b31a1fa94f8ef4930be13f3157d0985a01c9562fb3aa7ae894f11bc54a1e46fec8f78d03c64dae8c8c4f2283175b9903771ab151fb482d64adc97bb371b8263eca46206d8ee8767f61815de44e0c034a433c383fa93d8fb278ffa345395f3399a3f178a3baefd2adf26a2aa998efd1fb7aa14a9fba4737f03b34893c1f2062ffbd4015555c12\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 2eaa7958a6efc137e84c5c719a95d613b1b34e334f172eb97a8cbbd3dc7f568100f3b606ccb4942979be06eb02ce2cf5d4450423bf0e21ca8cf3af401d1d4447dd85ac73eb052ef71ba998c843b96c39509e9b15782f6be475dc5491e2f63837e7136d2b8df7571f47c07e4653a6869a6832e1e6c0498994dd94e05a86ed999474b9556f458cec1406a224f61377e97dbbbf578f34160eecb5a04941cc4e8d2211b2ee804e1d351e70352a5f94f1c50ff5ac1cee8916201c26de237386d91d0263ec95039dec97c8b21643ec619bff0a320c21c283809b4e1b7ae82808df8dc1bc87b4144d4486da7f9b0d50495c44d9e858ad5fb5c071c20082b9a50db8bb6a5fd3d23ab112922af6fe6968a568d8da6efa814bea870593a9c46b0d18c00466c8fe31669708d5b2b397f7bcf136c51521feeacdd196af91743f0b79da90dbebcb61094942bca654be2e2230c2094abec7424b5618cac15a7cadacb8d6d05779335a18f3434e1686c54d5d25d8c58ce55f6ffd39b3716ddeb35d0eb6b186c9d9\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = e542315fc8ff4adb3c52637e051c40b8bb911602c21bf3c73072f9d3386fbcca97375f79f17f7f72f7009da6791a4e7d4dfe3c1374d4ff766c6204dd4dac88058c977baae7bd667392c7a3af0fee933caea4e463f2ad0c9c235bf31e526f3f4582b7836c8a0681949996d596b6ba0a5097193e984b7fc77e42fe99585ab21c18f1eb494226f354410805ab4ea02d79234bba5b958dc6bc1afe94810bc583b04e81f1c0ee71d60caa239d18cafe4299f0afddb71c3019f9569a7a4fbe1163cfd23b1b6f4e73d5b9771aa708e2a90e57d9e4875a4a110a960735dd114ecb112e691cbf622cb89d7776b0e98e6b9a5c5643795144f91ec73abb5d8877b80ae697035daeeafddb12993f3d0c8152dba01f074f13c545ff7c3c6f6fd1f1afac35bd3c8a6edfbc9d028e9788af2134cff12708cc65bf53b9120f52bcf5e780652dbc6bb841bcf63fb5106c6b3b3ec2fdde8df1e6bbc88d2e6e6a63e92fe9bb5335d48885d43f7070382f88aee394a714bb8657c120f38306cf9583f24fdf6a80fa6d08\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 6399a29b7292371f30ce9c2b61ff030ef5accc4503ec987194a53c9b5738ccfa4a9b3f3e0f59cedf8e55f6ab99bb27d21653b4dd12e277d98c32ce0b551234bae38226c32415f4bacfe80420185821f8a3c7441dd9cabe2bd334bcefcb96e117945f10fb9c2a3a9c3175299e6de82bb24ea3756d8db8a946cde1b5ae01f12d5ecdd114cd6279ca2237c26689580ef5fbd11ba4686b1e102c72d3152ce90d4a4c41835ff19afe2387b24af290bcd3ca9955b7d9a6f616d247f6ee2c52156b7953c9b13bd2840b962936f6cebd5be7549a4a33d16198b64c908224ba29dbdbed40f2c819511c10dc59b36be961a8b1301e5817455cb20fa328221cf04477bcfd244bd2951ff15a6fe9e7e41f1f704273e8d62ef51fc37e1bbc70f08339d0414687164fa6321e00c80115a4c6f1544d88305fe338b95767df72e3b33e7f334bfa50ff26f83e44ee92d63acfe6bdd17db240082b158bfae84ed0ac748c81699fe7a70d8797b5705533e6c6baa72cc5059fa9d856ae7068595113eff5e2625490560a\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = a3b266f266eb5f6dad2c4bbfbc4fd2db1e9514645efcd1e5465e9fd762d614db5c3d044c7c84c77143471c0d981359a974d6609319764d499823f356b1a0b6a3ebcce63dcd08be24c63a664338f64d1fd775139c0efa67cda0928309bf8815757b936fafdf85d27a17c059ff12ab185cce6fec640291f9089559b87d20bd9c1a0b890a9fc88280682594e97703adeebc0e6739df8388a2f4335e545e9597dd9fb57c2d1a7874b772a9493a3ea34d161a17d176bc2c197c561f0c7e80065a421f77f1f241178c9c70d392997cfedc94e4b1adcbe7a6bcfab7eb6a60cbda6000919973e9b1382e20da6032f86562115fe45ebe67e102e25d423bb6a99b47899da09dadb9f990c905c67559d4d78364eb6be40cff03cf60ceb023dad22082a7b73996640aa3c3e87c3ee8b4229b0ee70023ec7a39231202bd651dca6de076b683e894b845d8f3ad289c3b7c0da4e86eccb2f1b7b053ea4816ea376df01f001a978f9650d8124e3cf7c4d30a5e5369b1260e132b4b3ec838accc3a639580bf4ea4d0\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 002de47f8004371d52e2cea646c3d30c24c7067ccfe134c4195e79f3c1d5e1c515ae7f09b04184a0d2cf9c829388c11960824150ee619bfc8d55bfef47a58b2a662e62d692f531376cfc887d91f54223007ddd06a2205b4e35419897d0b332c10c3c9bd9cbfdabf44af4b3c9da04a76b2d4fb1e3aab5ae020116bf97623b71c6422656a3f4e9ac1eab2f7de9e0d048782dd312e0dfed774d87e454e5d593bc0f267093420e8047b4246f1561bdf500f1c70a7a96d0f037bbabfb2deece7618fd1453e88f26b6ccd24a8a0bf74450df11c9cfb5f6f9ccfa3ee2aaa8b254750987a14087418815bd7409f21a286bd5a2774e79fb5d6b36cf5259acaf04b8910bc2f6b072d0a4d02dcfbb0fc892043e3b73b1e76598bf95abe447cf995a638309ab1e21b987db52273d592267215b9af4de075821583b409607bd0e3618b2c0f93f5421ad53bbff8cb10be209c1f01a62b8f255f2ab51c1ad583386a6c34b7f60130f7a9112caa79e9e8f47da71be9626d4d68b2b8e3327673f8bbae6815107af7e\n\n# tcId = 158\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = d6b8ec6312bde1ecbd8e3a0bec28319c6778eb1642c1f1d62777c259002cd90ee9f4fe1e84de43c399721f7a954bf59279f53345e9c03160f5797ac477db9fd84866d02ed8ce4433de49885618cf0cac5ad01970aa72922fe658cd0766fefff0dd99a6ce3c10ef2967cacef6cf5af8a662ea35313166a77142ea6bedb2fa730e584211f3703126b3f79b883dd8c1ba23627b51f06b760ce38f01e5d658775db23b83a31236d52e347050172bfdc36ba3234d7d6bd918a48176bcb64d9450dc777288c98d89330dfea1ffdfffbf8a0d16acf4fc1f0acc92d6eefe9b2f56af13516b39be2af12838508db11175c761d77fe647aaf4f06c0a3d5700d04420d74f34f95ee992991b54b579cde870cf5c6a79c60fa1a89740e271dfa80784a3ad722681dfb0ea7c30c85ca57b392cd8fa322a94d2efb5deabb67326900c20f3366cebaf97891696d24b708d81993261b55969f8ac8b808325357a0bdd51f5902cd228e71a71693d3feda96a239bf10fb51f32994dcc439f43cf11185d23652a9ee5b4\n\n# tcId = 159\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = 636e6fc0bd6201914ea8c43ef33e937e95e859e1ae3d4901aaa20e1965e66ae40b7b9df0bf27815a6226b48e0c5d87fdc6bd0b02ec1df5a871c3ed3087abdac427f2e4ffca3692fd6e6ef67701f5550fa32c9cd09f872116c9183b56a762a934a7475c13f9c7171d3fd93bbbbba105429d11a8661b8c41a69d53f0280c201f83a1730d4c77cbd50d4dfdf3a65c923658964aee0c8bcd6aff618ff84af2b12fca58d0a1fbbeedd5c7c5c17045684e27804089f05bc41a104f674d015c65ce677d9532f214e5a8a2e9584e4154aff80c19321345f24e961d0410f48e1d2360d562484dd2154e5d3d20404f51955095cb98f45cd0577724a7ff30e00e9c63a6b046442ab55877e94646826dd57a0fa2384715b08fa0f327c7bae7c95c3aaad23a3c4c0fd70bb2747fb9f834e62402a981f5edb7037fec2033e9884fca1f8b2ff022eb50b04da9341fde9e6132ff11335e62cb7cf4090f702a56ea04bd1572fe711c47d940c58d147f02d5ccb5876b7efd7939c3107ffa51bf4cb0397333cc0fdb8a\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 768d19af59bddb4a7071b66ab18e4e90a381fc928172c0ff280166f8dc9c7a95a6734f2b01f2c9d14679373a359315d3a7e0cd693433c1fc1841f58c33f4658c0e5400570cfeb86087f19deb1ada0bff7e926bf9b191c10d2c76236bfec95362659c0ef1154aa1075f421fb2bd6a1b115363496e9e83ea65eecb443859d2499fcc3d1337068feec26c8aefcfeadb6f559dde8cd14f1200752af3327a9222d0df0e5643bf51c0b6bb0a95555fc17e2cb4512b7d0d3a6ca824f70b3a33e9a8b3a8db8a7b5e3bed7b7126e56255c640f8eaa7a9533aeadaedd015958ad773865bcdb08c3db29c0be1371fa3e66f89d2e9e30e428f839293fdd43ba200b42c8618934cf47c38536c709115dfd17e09f140641341177a9a9e75e168b547f4a1975be5f3c2c00e8fd32a1b8639661350c9b114d3ac17c8106afef86afb8c61b29b29543a8151b3ad41a5d8eb13602cb91b7998e5d0b31415de1e7b6ba0cfc5a789eda8371b2e1b6e276d549b57527ef38a2221636ba9335b5174bf23ba2efe5d9929cb\n\n# tcId = 161\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig ", + "= 0af8cc9feca0de495fa42286649599f71e6f079dcc53ec31b325955b75b79b9444dc693de48b26e98d57d5aaf78a808f000b7546ea755ce8afce86f15b44e684cb12bdd8731b501e59117e0ff575280c44ab9b0ea62bc4a156814f9dee5e70694f31239eed16bce55c0c12a150ca88390d1615c2efae6a9db448be3339b359e2ddba1842e8ded4059c5e4b0c2071d4821a59cb7654a005a3b397ce8979a2eb9e03473e481065ebd65d77ce66b116ad4d6a356833e437a4eb1ca8ce48565ac720a4830c2e31d42875ef35b6c779ab7020925ecabe831dc09e03b0993dedf76ab459af76f4122155f5a3c96cf4526d43af5b800a9dcd691195ba5746520a1f6baad2c77a802a0e44b4842b5460264146bf2f9b0dea5f7abad267c7ed0dce3c9c8cedd8deb8b98f51e30aeeacf539c3bdea00031553bf569af6dc50f70a0569e50e837d66782cef3dff29a849cac54d06e4715ee507bab8bbfdb8838c53b5d3f51b486c07160e26f2435b14fd30dfd1251ddf0e7874d2b47fc1da47efc4ed358795\n\n# tcId = 162\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = d97ee70fdec656a7e68437c142e0f5ff1a49b441f068cc35dc42d35a6218bd98b54c77f79e625803459a187a8b37384bc4b4d93bb56434986f06f1d8ee401c88c9886e5988caac78cd85341f736011916be55db9710402d62e644bf2cc5e8887a12d9e8be72a2300e784d807a5922de477cf540f36bbe9a66142eab6f258ef71c2d47a299d9adba7ef285ecc80ca5ec262256666347184ad773c2142d1b4fe7581b9bfb8091ebffa8cea525f0c76a2b3104813ccec6d8ffe492cd0e7c74683b082d607fe04fb9d5132f0113f7dc3a9266e653d51d188ba1b4be8d4de089aabc01a20d66bbba74a218b0372365eedafac02349c7329d781848a3acc9dd89bb8afe9c7e729fbfbd9cb996b37687d3c9709b1d14404b8ed59d9a2d3b393f1c5c25a68276a2437e7bd690daf8559e7f3fbed16212fb1d94fa53509a067783359f5a7f5db56407c0418f9b61dabbb9f8973eb900709dd172beb258821f2282e76e02ccf39ebfd7a1f40b2bd07348620fff37f2788cc9fc7118a1141085ce330518d09\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = d119504d49b56b24caf3ca43bc873940aba210db68e6783ee300220df953a1a2cec7cb2e03a2837d0ae06c486e761f5f4d692b58f0651c5a6949a4d51a3b6c0c830a9930615b7820e0d21eef7edc87454748fa0e642a7a4b9c9c96b9f7b52b5f85ede8724cc07aeb4d253694ce2f5ec543bc13f9c06cd91f56997b6301af98edde34f2bf18854e512dbf068f700e54063f6ebf82a4303f403a2af7159276857152c7762655819f83b43e4c4c0140e5f4630f8314d7dd252b03cec48dcffbecde66f1928a307267c0a607572d80907408b8418e7198b993d40f5656af68d679b07ee702d5f4325c749d932261559d7220b869f4d5108f959edf71da62b8592616f92d6514441480d2219ca5339bbc8f83aa2748146b55e2346c77dd1bfe2e350072a52509e78edc7545acbc792cbd7339afcca77ca895e8d4ecce7c41115560253c4445552fac2ee56d2e6148176556166dac7a316c64aa72ba97836391b979fd50194f8629a810d965be0941228d2b4582af14c7055e6222a60a06904211e058\n\n# tcId = 164\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 4345f8620ca6fc5f73a6f412c1cb6fea5c3be84044ac8a7a1ff72057db52ba841529e0796af2715389e83eade82dc9cb525591c44c100ae2bbcf0ded3a19252c486099d85bd7ab24b0fbc6c9e6ee7470ba1a2dd69c3f78c106e12de4842c42a1e0686d85e2ca3e30f015c76df87ad374c444774e4209369708d8eac9c02815f6d75989d993c31cc2ec1d963f4a149d9616b36d90783c3adc448977139ab34985a52f9b96c60c1a5933d8a9db99a23c91ccd41695cbf42638c44932a31a49874b1539d849b2735499680b5d04b1ec31034085be0bb59c651792667b21b2001fe1e4b26e3cc2c72a2037b551aebc304b51fc1deef2a5cc5eab705cc681e7a3d0b14435c9c3a73db06417e3dafe4188530719ccf5611e275e4ed690f657482bc90d87c3c27c95ee03e39eba957a4a7e27e9635c9e833366eb833927d96608f9f98bbd83be20a2be6ae6d7460310c6517d511dab2153eb5aa96e8d4980c2acdf25ccba234309343e85ba68ad6095fb139a30155ff6bbab46009db306f04c5781fe43\n\n# tcId = 165\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = d7212634520ae65f540677f72d8f230d9b40c37c9307638b1a8321ff6e45924680a68b89ba73b2400db38719906448bec9c35d5c2da337a9e39c82adfbf658507a74799ad647248ab9f21d2725d565ba015327d3a9a4d0aec2c4d2a34425d3feda996851e7547271e5f14543008c556a69341338d7ba9ccb34f42a71fcde9e410395e5c69e6b2c082246075e519096c0745786cc275e2d3fe65c6cca95d97a1f22410f8a2e0d2bdb36a61431b67c6b98f5a34a4592bdbac008dacd7acf7b7a244d5b3edd63e631a4e21f9b9809d832b76dbe82b9acc4531798b1f4a0ad9d84ce23d39652cb5d0fa522e98d442ff39656ac129c5a2611268a534089fa7c58c665fd276790c067e0b799be17975b0388ca2f455b8ee54758a184d25738d97ab9bccb4fc884d59df610809ec7ff9a8e52c5c8e93fa53e69b502975dd595d30496d9ae18fa8daf48d66292998e5a9a815c224ac0a21f6920f08f9f70fa60363cb67f386ff02223ae48300871a84e6a9e2e76e715fbe9fc156078a79f0a5f369a7e34\n\n# tcId = 166\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = e2d20b15707ec4522a15239977be889b2f72a23f6531c14a14da66c59d5cd647a90441c100985055cf46e4e3d48b00ab99f2f280e5678918af9a7299783b35a1ec63251228d369f61635a6f6c6b228b3a83ef26ea1f899ddc009eabd33d36c325bbcb193fbe1bec12ed756ed02dc21d56d3e7934f3672a3591c655102f766a371a34983d40ab34d8b9476e927c7e23f094af98c9c0ee30df46641f8abe5241d9790af6cc61a6de8248f2e7039510d1ab92b52dd17d8dcba345befd58da2fac4794ebe3e7a41a1e704f9b8fb900b505df8d46a0484d7197beff7c081505616b8a5ab8c6cd25b7dc3c0bcc500bd1a2577c1f499e83cd228c48a0f40164f4716c4ea7dd74b8971cb21a25ea17e3d07c77106cc18652f82d8abbb2ede781e0e85ab668ee1d8769829b8be77d457991287c8308258d9ea2a3ad327f9dcae03fb5f6a71c419fa37416fcebfa3422ddec93c451a7f93b0f970df21be18af1399abab90c7667c1e9174e193efac179239db64a44590c50e52278f460785c6a399102e0b1\n\n# tcId = 167\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 985830e50116006b97961dbbfa9939ee492284b10771fe3d3910275072e1e2b3d1f4b00a3ccdcaf310e04f10d4ddc2deb544dab03236d3263ca743e8b40c1ae24d025b2524bcda651e7e128344a6c009a148d48504f2c8fc4bdd7dcfc6fb3c66755f35e4e775fa498c1197f0cc1d538afacc3d087a3638220d7ae845ec79e255ecdb8917440026e9f8686c18b1e8dff0d897112bc19b087089abac233b274827d4d4c88f99be595974de26c79917a94772485c94391465e19588836205138cce5d19f7f62ae8fabdccb724c8f84a2d60c03425346189f97613f79ae652dc6b16e0b889b7f310361e52d134633f8cc15da56aa6a560de0c895fedf6de4dcfdcbff3cca6f10d2631119d7d75e0223ae73ad6f79b2f9bc32e4d28776e9a5ce4f733d824c3c7aa0162ce77a438df92a1f53d1878bcc4848f41dd0b0e8c88775d98039a05b91ecd7465186f6dd067db053f3557bba24cf4cf6a372b26162b228a8183484cfffdc7da2f9cc15972746cdef2e07e6c203209ccb7b925373d9f36250120\n\n# tcId = 168\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 809455aeb2529962f94c2a7a214c7c449df1186c7a568d808acd7f21a898ecc63e23e859243702a7279a873109727d67a915ba48df76694cfa2370e5243386cc7751e2b0b40ff511fcbc08b8fd523fc094648c42907d3c30d21b6a3ab74cbf6787001a1dee5366a37a524b831be807c3776fec00575d3d723d4d4edac2cb8875f59c03f843bb9b379e833383e42bb841308a78fa1200f727bfeb3c418a7cecb03814dceaa65d21f8fee9707c198e3ba77b66a9dcee4af4662ba97e3fa83ac7c92694dd3bbf6360016923f0e6bbfbe050bc1b1a073ba08d0d567aed49ab215bced50d2eff95159810de874e174f614751eea978690aa868219b12449ccf74c6ff79e018428d8d41b1ddda2c4abf7609ab48fabda5800a0b97c0d88f546a5674cb507b909bb2c380d1c7f34d65f05a42a872456feb2e2b97e9071d1f17152e2cfe9d208353bd887eb36659d9468d7ec809058523347472d5bff81c44102c9b1db841ab6376d4d16c251bbc9885eb11b7b3187687d15635fb51d9ee918efe40dfa0\n\n# tcId = 169\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 5936466b943bb0b11015c946373444d97e2af61ba6e67e8a4004c77ac6818aa8bfb5bef619d1267fce4f49fd40e6bf85690ef69d821afb75d6660d0a023fb67b7139f7316f7fde0ddf9d75c3073f1f2683dd02fe0c7a2a2d8551cb88cf3a4c1f4f73ffbdcc29e0fa0f148c7e6649b6f8e7453b708d7f019473103465a24d3b8dcfa98e44883b3bb6a24ee0152a4263b8315ddf52acd3d2f3509fa5c6ca0428aeab323ab77f0612e5e74710b515ea8ce35266540ea31361b1bffd59fa9139ec39962bf5507c0eb77161945e71270dad21ec30d54d9e97f088b829950bb236c0874f4c2ed134b565e7b0e5b63555a57d82ce6973e11f5b737077e336905c87504a24b03846f38a9fea414d7c7a7b902fbf34be86a0087d78935fb0302011a51c778a766751c1f0b11d014f5c33b5a1816eb86430d163c5e3f75ec28ad8f315db53294b5f52ecae24fbf8b1714711ad60766b3952e459b7ec9fd589ce2605bb1c11595e4580434cff6f748c00bf176738b21d2dfef0c44338a1c05660edb59f24f1\n\n# tcId = 170\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 98baea66be8166939f2fcf1cc35963c154776a65fd7e58405e1fce04e2f9d7c25bd8a56be3b0f937b8c521f7e2a9df4c98297fc2aa696864696194c7e742a9769fad227db26af96f0e50d613e02ab24ad142e1642c779ba4ad4d4bde46ac19deba7a694e21659048468bb4da16f8436bf9def4dd148c9b1ffb92a5ce9263a65ce6d729ae9976c59d5de757548b11899704c62a47703fed0451944a82b3e2d592785038edc11a5da29975a5432a2742233b9e9f76969cfd9ce031dd16d1120e2f8dd1965f99d3c5d4a2b6486cf952fdc01f227716b4311154bd8a25939ecefb416e0cfd169a89f3acaec236f3dddb13d417748216fca0e32", + "434ebe953cbbed454c263afa1ffa23ef047c9b06114f2a56109bb77ef58d92b9bc01bed5eeedd7f181628b90df2fab3a7d6615b01d41b9dd1a01d7c467fe1acb42cf7c7111341cbb0fe7f673230148b972ee2cfa781ce2ccbcdc467b8a6aa1c20196ca4479bc88ff06d8a2f0c19ee272997a0f43f2d0a02a0a6a8a1032ee8396574fbf79636970735\n\n# tcId = 171\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = c2caaf308875c6fc7942adce507dc24fab21899905efdfebf24e4d189cb46734eef0547eb68b1fa0e9d3be5e8714f404c0ed1f98d31896f2149e34ec077d493849e369aca2047efb7b4e8accfed92678d41fe8551bdec8bc6073e467a26648b91b885df097c25dcfcd8477301eae038cd41c90d51496412be9ed858dfc111a3b45d9f1b3d84c0449b7f18af43064e703e3724cb73d49db2f92cf7b45ba16608ed332b7ee57c05edc283f7eb572d9fc18ae1d50de26655c06a55fbe09e3d68d61953fefd0b0d42fa470c6751282e190fa42eec5c2a0bfbc58df41198a7e52af01cf456fd5a50375b54edba81902aa21ea0b96919b95a4d605ed6022460e6e811ab23a6d2b889738aeccc2480519e8d3c07e10a9f79b6fe4c9feafd6d62b5ee68f8cf840059050ac40530a8b09f1767dcd6c6daa488fae26fd9daebfbedc42e851427b738129019ba4aaa0075710363c5f3f798865acf910d9be639468bb084c6293d218c1089440c3dbe3ecd4560af4ebfba79b680d944af3aba9205c73a2e7ce\n\n# tcId = 172\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = b89b0c1f2bd605ee42adcb8ec138f8953395f21dbf983ae6f86296a561d8bad404de8999478d7bc39e9272366b37457a968e68a15d585ab00ce110c58345f290c53432f066c77a027cc8b5fc1509ab3c52e7b095d58e9d245fdba75d206274a01121521f6e6560300fd2331e9a5e8b03a139bc7a6b636e5e519cc7950205bfc03a0ba272ec010b96129407e8a6eade7a3520b56e1d68bd2edb4e0ac3d97e6cb5ebef9a0c9acc9df7fcaf0572935063b2e6912b1bebc4563ed36c295ea3ea27495a11e41ae83fd8d7fe0437947346950b87a44af579713ce590d4fac398aa961590c1fe013cc93b96ef404fd2203313d472a05d8f0fb20822d54a8c3d75939015749523897ac13f18d36c5641f5436eacf5dc02c659a4df5583a8e86b2d812d05da32d0ad9cd5a82e045fdcd558bb4e5106de858bef6b6b5f225f7512cb3d3cd7a23652deb7325328ed59e0fe922c94d5890ec582056eb7f282b48c9c1054dec9c3fd27f4c30609aea52e89e50a6b5408e910a18ba5111c545423fe23e043e0d3\n\n# tcId = 173\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 22dda4b8c0af2d3038074ef87060d100822ccb58195fad6c084bc1fd81ca7bfaf3ad5bb766d265c48eccd4c3dc0f16e846e9ca36c5b49d716d64ad0710ad327d6478552267d5b5b9f6afb1e0cead454fc48f52b5e414626fc235d9097939f7e68f4df1076032eb024ea336ff34c2aa046252d42ec38b4001d0e1991fdb64b41cc69cf3385c9b32f0b45d56680e987df8f7616ff25f320f8ed22407ed24715ec190233dc4bd2fcc9ead1b91dc17fc807bbe8a7d47df0f9970c36d8a89d22ec623492fe028de0382b32d56b91af5954f515a76323cffe09052f68c35955ebc158b8d069e25b63e70933c2bf914d6d41e23cec30a50b2e35d0a80ed378cf9d43e7542fa656f4417c510abc6a62aa71916d0f010edd19403163d0e022ff41db48a7a1f343ae8589c86b7aa46ea554df5b5e9786ddf0ca3c2ee976e5314650f39c6cca280b09dd787257fac847d9051136b641d3f9d4c26856149540d6bc8d6cffc4c4446851a832c3c65854d341ff040921e9d282ad5790a27c46407e9c8bdac5e73\n\n# tcId = 174\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = e070274d94d99f502616ae11eab00aeb6f676b5bdeaf3f6e1f5b9c406ec6f56b8ee90d077f26ac42c0886b24213d38eb102745787eadd5b99ae24b4a986c24f624702902c2f43ed8f6592504328d939800a336d3fb742263d7b907074070673b24f5c5e8a9b402529590895d06c823c3fb9d5c933942c5a18878820243ad8c210b2f98b9163146b75a85ae1127ec1b9f80bdda356eead3c79e5d03a4dba63e382be85786c8c2fc28a26d028a440bb8057f3ab64d13a25ebc772de177e3d755e9866fae37ffb69aaf686d48b4ff07632bdfb3dcb21f666f5458465601e5793744c8a3af675b31f777d4fe7d59787d880939b2ef17156e293da74d5024e3715b866f567423e9e0a307c88397001e1dafa88855c314e5a5ce4e635bc9d3308996b8a1d82a5fb3356c0c37e41e5752e679988521c04278ef37dc112d999bfa1ec29be16a20ff9b8585ce900c234bcd064b1d7993d273982a3c02b026a58501fc5241a9b64ce34f388777d6085594faa5ef3b7f0b992648f2e050397cc30edbf3a841\n\n# tcId = 175\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = d466b8d8b4fcb2a566b4f2203d786b81e63afd5be21ce8228f40a183a9de52c992e27a85bc7f61cf69ed0aa559880c79016731b5fb667795fd1b37fa0cb2c86dd3bfdc20caaba24d3254bbdd063e6ce1aafca2ba04fb90f58f7d9fbb5be9679e30676b80f7c7cb1af50eab77e77bb01b166d23648c3d36a4fc228d6210e9d64bb3759c1979c014703b85c4aa7a5fe0f9f014819d96c4414920c6b57de2aca8ab12f7067895b13fdef4bdf39c5d863a671d66112d1f841b5610c9065fe14b1b98103c45247c2078f8cda5bec1cb99890dabacf08086bd0d73af4df0a9113e704ce0781ce631d4e39683ffb9c8d21b65d999fd687301ca1f0f9e7744474af65089d9a29c805c3257b32c95eda56426efcc856bdba116a08a5241792b1c282479fedbd8421d746718e859434d3e0b093f9d2de02adcf86697520f05023caaac8740df9ed28fff20e97aa45de9e68075a73b09b2ffe7fe5398e971d69d296dfde0541757248bf0c3876f292373418724fbba47bbf16a6eff8228a8d73da863d882ee\n\n# tcId = 176\n# appending null value to null\nmsg = 313233343030\nresult = invalid\nsig = 539d5ebdebf1057648e82a961ec142f82a979d34b37cd90a48624cc0cd63c15f835935c3fd7ce618f383a3997e841a0bf5476f4532dfc73e76f2cfe912d42a57c2f38b90a497aee58b280da0a8f2e9bd1776938540d630ac1681997e66e30cde7d5364f88465d43f0bf23b4b2a7476813be3a8b49535366441e126608a3e699023543ee7967b9c99bcada9325d87cf3c4a5ed333ae50d74554f863a05defbdab379d5a43367fddc240ae760fb257e51adf8ee4aa2451425b9e0f1aa6963f43da61714ccdcdb4986f0cb835eb064a112d5ce4ef5e9123f79f21d500b9b87e7ae11bc08af6082b5a284cc04aa9f58972af28ee70a4cb78913746f3184b76fa6e248f827e342338935c0301a18fbac9ac9a97fafb0f80e5c88c4eb9a1c850a118f32dbcf357a1ee8079c0efb912594617b44f1268ca7f256309f60250f7e0b0b7de5077d5c900f4581635e67e5b9f3d80dc8917b995e4ac1a3801a45a1b88ad0ff16f33141824a9769e9ea3359dd88668a9a64ff75201ac2b171d3c85a1dfd9f99b\n\n# tcId = 177\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = 094cd24b3a601b80b54a60040199c6c0f3ac766f4e7ad56354c9ac551af0cf22d6df1612f81b0a195e4e471eeda3efc95656b87645e05c3f224187c85b8e0fc01f118aec78c5d2533d22951261bdae5346d6d158ad56cb305fe0ff5ebd6b8d0e947f1262e56329479564c1d4a77e03f81ec7c520cfe10a3abaeb77ea602bbf8309a0726051e4313be579d50f2b9113b21e581c2225e5fe3ec435fd80d013ab24b6cae83c0047dd81328a4a3b9d7f5d342c34254ef3618d8cf822ebd738bc4aca8c3a2df349fb7421463e363ea77b78836f825bf023cc6ab9a6bb6528ea925789e577920d9cd1bb402e5cfe192a1cd6c2254e16080ff247f54e9a02c7cfee876583c276d736bda542be218cab897b50ee5d36c3673ca20e02c07e922bc49b054351c921b1d65c23a6d967619901f09ae048d4c09646567c3367ea86b86dc9e353c14f65e7dc6926ea5d70b36e23c66db53786444654d70d910764842689b96cb87ed85668d608d58b31c3632ed985b9051aa288f0005cab9ea1d4a278b3a68fc7\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 06a763017fdada141ed44353e39b0d6a3038c903f059cf8132d7bfb05d49db22f978b86ce942568fcdc9c50354356ba4a1e43bb91172e898abee5b5acb9b0505f3873fa6ddff9f08413074fadfd1c6b977ff1e5cf5f7176726d99204de1031213f7d6c3ce956a93b29b898c197043aeb27db5f914ebf86de7d26e17fc0cbccacc8bfb4dcc7729306cb5aa6f8bd9320ce501aefddd1ff0de105806dbaf06c9c70e10b2a6193903d6e387e7eae612f9ff280614f86da8766c966e70548d255c9fa0e9945d0dbac5a0f0405132bdadd8da67bcbde0f5963f1e0fe9fefc0e238f5abb0030a87793eb952be375501636d86f68c5093b147ec0999987d6e830e90fd3606f1486dbc909ba0e8c6cef23eb4995a9b1264c696bfdf0f4cd969edebf03c5ce8a07258be91566722f0ebe3c736123aee981d1c1fab2a115b0814f584f8c59936974fcfeba4fa7cfebde8e9410494ef3110b6b2d419c3128884799d7ffb2ef99af6c272ccac1d8022fbd110a6fc12d13192e4a9fde1e7a3d8bf3ae53f6d8e3f\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 7b0dbc9f51cbee3ed57cec73dabd268141d15afa82eb378d7c6bde7dcf0650554eae79a2489340b9eb81d54cd677c2d351e36642f1bc5699b5645ff9c4e8ef6c68bf5e337064f78f6eeb19dfd4e5e9e70b3600f4360938cb9336e12361f75f39ebf44994de531bebd230bfdaccc02e0f3452976f73055d24d673a55e58618dea96718d180e7bda5372df8f2adfe8f984de3c5711abfe75cdeb81771fa105f00be7de76e5b0a8838dbdd8d22226518fed7383e2a101f62ba3e79f59538ce3c9f368d6442063ef8591cdde03907fab38c79e5fa326bd67f6c0d017cdb01d39eab8fd3d7a901065986db241e30c80b977a7c5723ccf15c9494b08a39371afb9ea0e51f4cc35f515ed88a8e5b702b9108917061d2b75e9dd55a89a387aa2e4e0d5b9faead4ce10e8622553966c1324e92f8dece4b3d7cb981524ddcb65760aed7cbc32d47585afe5f48eacd24ed570334814121197c48505d790402b85a45a5937b0aa7cff371588e0a04030fe0ec1b8fec9516becac30911f689015b16a44f348a4\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 654e9bcb87ac0bddabb2a877a1127cf9c306c9ce5da052f8ec732b1a98ea14c335ed82ab6f62d174651349407f1d91189bda73182ef8073e2dcffb39c21c2204081b36fa6c5d66c3fc97eb2ef3", + "416ed16cd3e6a4e5e10c2decda13c3a08268893769b212f2932c954c121c01944c51dd5c2305cebd54ef65bb6ea48cb05a37acdffa34395e5e6f540fa87492adfb9ee1fed9d7b47841f75da0a890a0f2914b21aaa0a78781af9790dafa4dd23e511f9d9eb76adb25e85c6cdde568fa14145d821f8602e67569f869d6e73e396e247ace4b84d20522e45a066825450586e428e806a2672525b90d316a5b13dae5d215cca466e064e541f549b0b298b42ece5634c6cc48ce938611aa06ffb120c205955f537fb21cfa7c5db92908cc278f7e003ad2eef936343a70a2d6460a149eb930793fd45ee737776adcd04635aa87a3f7a12e4184689a88dbcf3e9d9f6d829e0fad1f08596768774fd149813fd9e03a42faae20f02ae026647d68f3c74651a7f469da2359758be1d697101135d6ca0da131\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 5be6f89e6f531c41e248f0d72c37cae7b2a466886bd4c1059d966b5c973d127be3c75c7dcbd57a767bb13be20d9402a780a5e58faabb571399d7dfdf3c8f649c825d99309f84140db70d4bed2e160b22e49958e7e35aa444d4fc49aa24a02b2c170859fa621d14c3692a2353249118c7b01e018ba5d82354173afe122a71368e4342d88fe2bebf6a0255f719b985d5b57f720b0d4767f67b13ecd815ce40fab2b610c4af1054734934eae5fc232891f29fba6d364e4c0f2b26bf600836fb1ec9530d5aa14b90103e675efcbc92f6e88afa351369c694892e949da6d90e74f2ae853f5d8aa70d5fc132d9b41e20520baa8aa74b77c60daccf4da758b9d22745e50cd7ea118dc14926b9dfe0fe26600cba5b447e9e2a14d1d8a5e7af01ca143b6af298e031d2560d99aa090ee2d7180ec695dd553847175ce66084fae7b30ce6b5a3b1164757043dfe053853c84bdc9fd66708b029fbd44a2c2fbd8e5ac7c009f8cbf53ec2e285f2c365d823d31772bbfa710e70eba58d71787763bf0dc09ec5c1\n\n# tcId = 182\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 3d7186aa38d431642aac2fa01101224d652e468ca9e420652606d050f109825b4c2943f57d943a48e8559898f9b6ee174eb0748a9c84e9cb874c50c760d2b1656374703bf82b2e4012d4a4b642a20c2e5e9edac54f6b152c7d79ca5591d50bf9194bf36c8604dd8f31d9c40250909172346331bb73cda23c6ae481ca91dee49a2298df8cd40e5b7f6d497a183499d2a0950f2e440614ab5b4279c887e2b228c27700013ce15841937e319deae2f7350a2f76c43c6e02e5937686f4004369e478f61aa7dcbd38d50d93ce74a9aa8a13cbb1a8f92cdd382fb2c35cf292a9d45e404cb1cdc14608f5ed3e2c490c22862cadf0c6c63116c81b7ca3e8ab6594e55f10bc78769c3e4cbb5b44e5a1c2ab3341714a1a40702926bd5e4facf3b55dc978a2768166a48285c06722d5436bda3add1a7adef76fd317ef06f7286b47566a38720232bb58954efc44f2207de71c2f3661a3140ce5a94145df9d4bc4cce0a16144fe0205a1da7f57409fc8da45a5062b2ee39119c639436ed128983e1c7fc4976c\n\n# tcId = 183\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 9f32c9b659775417abb7219278e0ef2eb30ba487d42581fc22fbb18dc11f5ab081a40621b4b925fd40ee62ed792e853cc26f3589aa9bed4e04aaa7773a08b24cee1ca2b83331487f889d7d1770a55cfdf1654c4ce320542ceff8b0d62cd6c59c8bdbe923431d9308fce911b25dfd1206b9c97c0cbcc46b36faef1aee9f88e4e353a57fa48d44f88a76b3e67cfe276315305f71d0f3656f3b086d787031dd4c716cc906f9384b765a7d2a648ef497b7f89b8fb72d63351bfd0f019979d859407e30d7ac22f0eefdc92edd7ce8033b11d266d66eb19228f75d7ef300848927c9543e6e7f195bfc9448ed5cdf2963676e1644d09729115ba95878324573d4bfeb74c7713b405304155bf7abcf7f76bc3fbd96c6839e81624d96dc9f45f69af43c46e8720d1b488aa647c0a7f56dd36619c1c6dd5bc93b3fc00a00dfd49a19a2da23de40c3de197ec6cb55ed47062ef17ff15112a78728a8b5f3344d0a7168726b0d8d223037a52a2562dfe6c943cf09d82b9d777c3c2f1a2d2e2112388b324088de\n\n# tcId = 184\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 409f9dc527da49214994cf1ffba569f2e3ccb12b626a685367c48185e06e972d3826df52b54aeb5426977c4fa91ad5e55cfbbb86dcdd8da68e83ba5f25779d87b2e9035f7591a20d8d6845215d3a4ffccd0a01cb4fdf0b835a05686f64a8f43153a461d78649e8a635ac52d6e001068f8c18163b40b3860691117cdb0bb15a35364d6b4ca264a24938a68982beb8c5e4c5b9c90480777005d4906f2007e337875201718acf464c44db8d2c0e7222583088577759384fbb7bb8bc409a790b987fedd1d09bf5aea2a0e444c0648f7adbf32145df8c2d21dbafc408f8f8ea05f26a99b182fae3d3c12f6e7d9e4404dbc20063a1a00127677d97c20a78dcc7572ef5b3693aba44a9ffb1d8c7322596658b0ee24ac61f8bf66f83ed32a953569a2f0037c634a9314905cbc8a37722eb5fabf3a5630463cc28f233953b57c0d5d2f6ef281cb3f843a7c640d6e566809cec0eda548cc1f9efe08b4b8d3604183469c34d1194bcf6a0126fc072c4c97aafac748bfd4e21b5f0347b1977e5baea1849e92d\n\n# tcId = 185\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = d28388441dcd3adb103515a74be1afffeb250255ca7528e955b94e7b8ce826c97df3f371da7e7f399477c1bb033d50f4bdbfa982e3d5eddb6bf45e08dfa41d5bbd976fed018d1b8bbda013e79fd80c020ddf5379e96929cc70868f025dce41e6f3dbc220b3cc6fe70d7a4bd0659c60fba376d672016599a44f89b62aff469e7e91b24bfe645d63cb0cb03902e8ce8448b41b5886d55ebf054ddbc21c23d571a4e6a353a5f880ec2478d206a2a08d431714de562bf2aa6a5885e0bffab51bce4ed9e243eeaa5d1b2297dff1bd844b440e9cb270b6ce40b76fd79c7591d3f38a719190a5992664f24b8bce0f4d050e8072ae4a27c51b2e284304af4e2ee2dda546a8ff91affe20882c119ec1caebe406ae2b04eec9bed107cb3b66420a730ecc797c028bd97f9dff631512342355b6efb3fffa49d55a9a5d5ad45182e16f7c378ca36135a520732bdbff39d525c89c0a3118c68a779bf2f2f43cd560b4d11c606fbd089b046fae8f01447d661bc374d2b6a0e094e7b40abc240856404d2aa7364b\n\n# tcId = 186\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 473f662190fa09abd247533dd2d4cbd1880ad6419cc3b3b1dee6059d5672b28e768560c604260a181c41b6c33d9fd902163bd956f67011de608b5a7a0059e2e0be3699119afc8771c44f7f681ded984d0674754b0813fa906ff8d9db40e1e48fa25af65ac49dfebaa30c957e7ed0e06d2bfd04ca564f881dd8cb075a6a708eda0b47174c66386a5fa1b4bd2f8f2d1661d2eae0065c95560da197ef5644c7f317da9a8dce7f42f84bfd099e9cb20bbf1fcad1c4307903e18c9c5595ca8a0bf2f4b2c3c562561df21de86329a7bc5059209d05699b888848723488b111c0e72a0d84978b50242d94ee47e2df4a0c953947d846e56c9c9aaca0543ea13671e6e8b9e3c3799cef6582bdec5579f2edb171fded9e04a900c61c429cbe09768b93a417f1c59b92381682bd66d0018e94cc75dbdc0d37acd85877fa229db0eaaccd9b1e4275a9dfc2bdc60ccd7ad5a597e85c443ac95f878378d88453074b83d152d9ce4f583b57be32cc13971504d713c3ccd719e79303b0c1a866e21426e1049ce3bb\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = c67de527c6b72c804a52df6e44b4fe2e408a9f048948ac16db55b664b5da6044ba9b2498a14f66a83ad76f1b2363f393d85b4470d318114247c6f33c4110e24801ca915800adc98e8b3f88da6fd84be3db00d09f027dedd60e68cb0b467c04d6bc4c629c168f6ca46988b6165347aa885cb954cb4a0d2ff2851b7dbe4cb55eb89ec48ce45064f34d6907ba62d0b5468b316753ed36b1ec8b8f36a05adbd59cc03f1aca50001bf59156b9065cdbbca855c54fc3dae251a0fd1c130f545b3e2d51a632f778999bb2a6693fbed677206b65d9ef04c4dde2e5fabab0ce9668135915389dc498d1641c2a504bcf62c94339d3111d64c5fbb476d7cbde4dc72dc2f1745d02e5da12fc92f9949aa672e9a567ee4dc760610fb3f280a9612b24fb0a367a6b041e5f9075d20cf27f33c34c7a005cb2024468f2ba51de56829cfe25182fe9c7ba95c6314276852b2739c4d7da4514c58a53db655d0a7cd442e3f5728e472b8d0bda4e275c3a3a7d9734a35409ac8b6bee2def19f1507e8b21e278cbad13a4\n\n# tcId = 188\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = b41adc2e291efe76182d118257243abc0f8e46353ae3acc7f22b1474ed255be6fef75c620e362c04c875c27a6e93d0beada311c01143a249b160b92753687192fe4875cbabcb09ac137db95eeeb06d9b220da294968bbfba6c0ac2e3e0089fa8038b0a501d90ec64f5270ffaf0bd135980ea84d18f7ebfb7417397c35d4cc09f7099ec5f9c5877b01b95056196d726089689189bdbd828f82ba621ee6c51e14f46de40529fb75550cc92b51887c7746eacff279ace83426de329484e2b3e366366a9570019a8e87802c8bc8d1188e1839837c3e2d108448bd9b78cd9f4d4ef7d2e038ebccdca08365115b68d08e39babcf87919918ee6d84afa8f2acf89e4ebc0847833a18b28330f6228ce6e42a1dce0144772a306e8e6abddc9970769c96ebc0e4c4ebfac7d02e9e87516396ef8134f182b4fedead9ddd8e5a14ad15a395009d58b1839b3543c9c30c01255a56ff93075b7cae3f6cc0717d8b932ba4ccb186a9af42c0df16e4af298280dd6d19eb9b806c05a9d08f2dfb436a9a4d8eb6d60d\n\n# tcId = 189\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 8dd51dc50f3f37d9c4f4ce243a23ead21eb389c27478e295d95abbce83bfa439b29433b550c4e04832f16f59ceb29a7c8c38546a8b5070d37033229cae1ba097b18c05bc590c483d9e4653ce0d8d10734cbf74f35346c6d09867d5e54453c701b9ac228225900272fc916f1207e791c9cda36965935ed16a51ac1f38f773194744eaf00d6d26999ab50256553be60f7679c7001d33415ae3bc4a1cef1dfa720a65e4da6fbb87dcbe1820518b2aefc544a27a627073d6dc5e1db59991f70fccddfa909d7c1a261c355993408229fd78ec8cd889e3f7c686f5db7d66f0aecc750ac49b3fd5e4cfd7702fd2c8181a2540cc7c6ba944e2928eb547b8cb77430b1aeab5d6d1d374515106084abcc8753d3e92370bf2af7685c1fd4dd93f4a04a1dacf15109617f8652758d1fc9ddd78cfbdc44db85a5e233afa29ed6d6c239deadc93a105f47da8a77b34a6bd4dd", + "fc302a3eba565184f3ebe4e086437edadcff4dbb0aa17fdc50401651de60ce7738d3fc0d5c51144be50b4d36b62a33dbe7a55fbc0\n\n# tcId = 190\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 471a17bf9d8a875f1206e9c139877b50389e96d0fb6c15e2f5208ca8a35a6a11cab06ef4b2b8ecd7518f2a546b792897747f9ba849550aec6bcdc268cab059b63dd69e459e317ef3eae7b508bd9e33f4c58578b45a47364e7cac4629d43cfb9d6c4585bb2d8a2f8caf342c4004e933ed6baf652d178538b8a0cebbed2447906f83261df3edad17440e0eea7eca270cd7f2b5a404d6e72565764dcbf57888df3a0b8a6dcb52405b6819af81bcdf36d5c3e7ca8b73224929cafb9d1e98bb1be32f2cdcdaabede8255687d8228efc0713bc901855fb63757b9e755033cbbf09941824762bd0ad53c724d3c6fd01877424c2107e5ca9c1f7e84f1f9dea83a9f802e22d3c2f10833c475a3dbbb5b6544fe48bbcd25248da0357502e9c5f4c00914dc41171038e800082767c62a9c9ca6ff06561f7cd35d9626535fdcce5beae3c9505efbad478915936dfc3947f86776a25c5fbbdaae42922db2607809033ad2296d602fbf47f0fac1c0a281807c6c9fbd68f4d45be8b1d1a0818b0310558f7c81558\n\n# tcId = 191\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = c8443c63bafb0f500af4dd195734765d5177e2b81016fbb647a64642f08701cf00cca3a15b76ae0f60ca9d1469d3e226d5fbcbd33ed9b249def58f54ef90000df2ef35394f454aa232e3629bd95d021b393c7c5d7fd32a5ea7cc1f5eeddc14ae8d80c7af0d781ce0609993c52943e71e01659b51cd4726f9c7d9f8c23ecd6f946dbe5991f4d064a7e7ad92278a00efd19c87a1ceb5ec1506b14860e12db6817556e279b65504a97ade4aedf84e2f44256d88b7db263be75013b3b4e19cdf4f43d1861936eba689cf9f33e1bd514f294fcf4a37c42c2b64d6d40d3acba6b437abd74ff30f2ef733829fa5c5fd00dd5b9aecfc39ba72191130944347360fb721a8d47085aaa33e35b6f5ea43cfe37d71da69ac628cb496bfec81d0ec6663436117b58d5923c09b345d399425d8176f072eac65d3fe6823473c5491c4cdaddf004243ccac1fbb5133e14d8aa59dc936cb9ca1db1716f2c8a631a751b494ad67d3c2cbf8cde2c609bdb4e847a4e318ec19ba5bc804fb92e8552eaa74e7d6a5abf16b\n\n# tcId = 192\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 448f9991dcb8b062ab546671a097260dcaaf68163440840eb0232ff8a2bfc326d53dc49fe1e0aa84d190522b3020166adc2820fe7fb51529bb9b52caa6a50bea343e1e2169f44476bf3b38ed93206d7f3285df546b674a570fae67f1f55ec3cf3023827dad09b19efb3ad90fb462438a93e3c6f555c8c9fe235c35211aefde711a2b81a805b96c5b5a27f1fe1b16afcb95cd0cf4337d20ffc20b8f505a633972bae62274f15128ccb061822667a6a14c6011193df2d43d3366b79e8d5d9f49bfb8cde25771979fc3dc58b1d5ed9b2952b885340eacf1bdc88a9a83be6ccada327b967310c9653c08985975e15eb7852ef9b815b5530d60217c9b3e2acf38c2618fbb893fd03ab47011e7a17b2acefa5c5e7d09deb4bbe283f5c8a0193ee8273f826afd3ee5e035be329ab04a2acfa6e4f8ec6f90e4e9c8954e1cb4fd2b5846643be5ec81ebbde608deb60a9448e53f7b2d592dadd0734b99cf150dc7b1dc32b0b1dbd68074a2ead3c4d885b404e81162639a34d065626bbc98a46066f6887318\n\n# tcId = 193\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = e447af5561678214e302bf3cc4f4023df4d5ac8b27ad8e1586290bf074858cde3dcf624f6ddc6733ebad8ce49bb87dc04e6c492aa0df5b2726260de41353507cc15428e257e8f1068b79972d1f55fcb4100686dcf2cdba809d4ec70bbb22a9c4bf89e338bc63ee180ee4d65cda949c25c2137ef92bc33063ef5580cdde56f72ca206e38db6ab8825e895f5cc3d02508ce7345b16375892f3fa16b11ffd6076cb12e54c9abeb095abf01b4da32ffc977be357a6fcb4c4ba7cab3e60bc5772a83903285fa0183ca87a7bdc31b5deccd55909fb0a6a4d82af45e42a0d47c57a7541344d864c8732ac3d1f1f23cccb3f196f20edc6e1412a3b15e645a5582a9489ed697f4f46bc9a487154fb609dfdee41c424cf09719aad6c85d3ea1c122e29a8e46e0af8e7052fbb100788007d98b4a325dfcc3c4bb1eebf4d0c3c0812b7937713e8702be35a725ca5a0891f78a854188cf46ec97bdc5b44bad949359dc59e9d3e55bdd891b9850402c5ee055197065ee05d702d54f3ef7ebd7a32d44602e73383\n\n# tcId = 194\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 557241eaacf5e190018db935feecf28d81ba14e2f91ce295a12ac5f48a9d7c7933bc886856b0a4556243b418b1f7ca3d37e3ac730e869f1b9ba119ea6c1b7d1ee906ed1e7fc31be8276b18902cfe59333b891dd864367e268404875452162ef0246be23a46acdd17234569778c887430f17f16ed1a565e97cb7e1dc2f84b68a3821df2177d4c1967b631362fbb128cbb6706b6128960169c3db606fa1b6e31e5b21c7ec1d8ef29a0138c62f902bea7b64bef7971fcd036164d4416884a97e79f641d10d302533790405f248cb502080b666e75041a6164b0cafa293f4d6793e5c4a42cb4041233d7185898daed6aa0044f1ddcc9c3ff57cfada82142cb54cb06868ee9c13b305a92f6efc4af8b8e8a569c57b3ebccb8bdc19e76ab85adb59e7075afd878356269c63812443c84d13f70c22f1c98dfa05faf85904423bb476b325244de80f8cbc874a5311a106a5b977d2d7c1c053cb2c9220d8ee34fba15757175e7c3ef5a139df245a44d08ddb8fb4525f978073c034c9001bd6fbc11786cde\n\n# tcId = 195\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 5693dd850f0170bac3e3530bffb8a9bb80b1717376b7736a9e13a343e3bb97211a4ddf47da7edfe019ae1f411bc29d5b70db962a8f36f85010c276b1141b14d42342485d81ebbc291238d1470687ae5f4d564c3f9e5d56eef63f6206c545a80cc59929d16b1916bf36de340552585db477cfe531c5621ced4ed2e450e9b995d8381294a0ae0188bbb7ae0e4501e590eaac173bed94ffc6c92cd7f95f759615b7f7152191aba74d62d10c22d7be5abc8490f659c337f612e21f26252c0da5455d5badf164b135164fc648053ab29fd73a5966af21f33c427ee121ceb563690254a33b764c6239021d83e25a0ae2d2f9b0b162907a548c28c34eead5b4226bac554789f95b7a7486c5160e345780c28912a7c5510bf661b00d7bf09d2a709b30e66fabc369a436cc1f24051e010d5e66115724d4e216cb2c2d5480a72ceeb694e7adafe963deb72e2d32f6a39b2bebd0bc9fcd9e32ec1d58d238b385fd967db3ee485ab5d6938f36e0cb475a61d2c93250e30172946157ffd67be345fb9d8a1930\n\n# tcId = 196\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = d562cad64efe72291dffbc533a218789806229690495e470c0f1fa92ac7388d8c9cd28185c30d302c1c12dc0a8a275a3038e90a8e1b4c0dd2cbcb1122b25fefdf3a3b5bc95c51151c7ec4f2c6dd91a1fdb4f1c95394291ce477a9bc6c374010d073b6d2699a302e10eac34432bde58b2ea64ffa5a165bbe9361221314e46fe63cd668c33f91c995e0ce090525d86509a34b8edfe333c5fc2f15c0bb823d0ce5cf407b38663bc9dd20b9520f9912d8c792771220adc083478a08884423c6f13852e356adea36476f5b7a6da5e127788958fd42a746d854a8aa2834445fc7caf534fe6a07e45330eeeac8c042f1cc528d39a8ef016c5bb88d9bde9fd8502642ccb9d120756cc6eefb34fd379ed20d6f3fd391b54a31dc758a8780935d52881082f23f0b5c9460e83369b9fe030d30be208f8a4686b9f74dc6dda9f29957eb02bc8238ccc3444af8e160f6511633c96b683a5e4f94499a9a944374283e76891072b5cb6216594d87581c2b00c884b07785dd58b954f4f850417f8bfdf6fef77f99f\n\n# tcId = 197\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 25b461d95013af14d316948ff8776927113814cb3acc23b7f241799838d9081481e7f27fe1c57a40cb6303f4bdabe3c732c350abec0330164da650eafcd62cc44fd545b8ed7b2247573e4b8c7fc0a0f07a4b4cd685fa64cc9c27dbf7bbf35be98de52249a80e9610f91c724e09e657e3b95d2ad71478f8dd379c73c193fe503245ac003c238045c6e799b3bfd805e55096f86ee9a46e27fc2353fb59439bb7a01bc58956f052543c6da133c5902a053ed5e0c5ec074f35757bddaecef424a7705437e217224b5265445e11110a8dee8cc8881ee03653e9f68ea9ec5dd77810b9eb9cd68ae153531426f208b9e669be6a5013438283f00a1f9e827522178b9730ab72b9ffff5af9bd5dfa87632794d17913467ff0aea511a8aba2774d638a6bf8bc5a5c6589dc9e72df8c6ce28762a2094746e708bccfb4ec975f3676e3729d452542996dfa9dc4263e743afebff649a0b12c214efae176fa22e5342c8f66b10d012f6852136a82ad8da72d2a174b510aa99184df188be760743704d42900d155\n\n# tcId = 198\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 07de84b9faf2ae81955fb71df5e5e0b432f1ff72bab8b80a3305416d854e4bcc0c33db78d0ea4e51b63ff3c9ed9b7e428fa72a27f9124fe7f7810cf83b830c5993b8fdb85fd7738e8965d48807b087d58d322efa3cc1006abb273f32dc52d6e98ca411fac77617467297750d0413f0af18a39b7429045a0b6122c7cd601b4bb04611a38f6c82117389981f1270f81a4a6f81782ee8ade72559cc7008f86065d697ff5721f34cdca3f7ead956d25bc1387ede5b5e1bc84fc47a31dab45920817c6b86f15fadeab17c22123e6bd4162733ac5a97d58d2e2b9c1fac6cdf682436d719a7940210c546c74c7ed3d64d76d7af06d7eb1eb3d0a5b31dd2322fc8fa3147592ca4f35863c05c60431870c91cb537846dd9028e82f3e014dd8456603cbeba7e48ca89d75ddf053dad7c89fa6ee2d315d1e57841540004251372777e6feb350b6f8e04934b4e623d631a76b2ed78fe67d55ddee2750fc3fc56ddac7141640ccf2b4bbe4e23faf4c9de76b50980a1388afb4b342e6f94bcf6e37988ab523b71\n\n# tcId = 199\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 4e3712c19853d5431f8211843b51a56f8f09e182c52c21c8ec8af0b4b01330d3d82618048240eb27b7595b99532676b45f338453cbeb5bf089a2fe6c5a9f2766696254546b2579efa6020324ef17516192b8897f6b5f8e9567bb05b449a0749e2aef992454aeec0a44a4a49b9b2ee6e231428166720c178226f29e48b0dee66c7089aeee7a60ac9001a3dc7873717a4c25e11c3b15a2e6", + "88a740d3463f3d4d22c66ae7b749a4a17beb8bdd15fb64a20538edeb2bb5eca7837f4bfeafd0858e910ae943b3073847f68c08186cbbaa1c35e33262077fca3be60e2a8bc051553eefd08d23eca5665837d0a604ecbdfbc16560079a0f7bd1f0659b7ac251a1fcbc18870164996a9601d9882685f359a0ceefd9b476a297ec4e482496da0fe41a081c43bf9e05b4657ee76cec9f50410e190a814cc5ad6125b2c1dae0d07c3aab98839f78a77a20ac238b106289082c695275d989e77eb45f0b63db84546f6c63ba2c0247f73a340bfc55fdefdf02e5de4cb9047a2fc41747a661eed538d980ceface\n\n# tcId = 200\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = 1d0050b90e5eb30d6f772999383dbf06b89f5752b461b05dc62cf9daea0340a1f43424ffc567c54a9be58a688315618734f2098005552a07d6916221c0f24f539ea57454907d5648670e50a7907a5c7a7156d9576689a3b72e7c78c892a0eb2f4a241484bda80916899fc8ba6080431f47a78a17a0467722ce8b7e66c1502eeafa5963857a1791aa61c355d1d56f1f9c76b4e1c05b2a669fcc22a305baa6754245477aa6c02947cfa15930807884014d3a5d784ed291b5e3261d4e4079a7bf5f07ede12d6a9ea4e0f05909dbd46fdf7f504132963a7aba86f23b0691bd69161e81bebce5bd8b5d545bca66c430e6a05ee7f7d1d9c3b6498c534d1bea91b127d432d45976b29de017523547b936d163d8d8d75d4ad549a502ec441180ef6f06b41ab827a57530499fff99fa4a8c308ecd9bca6764a0846eea97e15cdd19a028fb3ccb1d33f407ed8bf04d8b73b7e004e17ac8e5fc44be897d46e1420b5c57566c114ddc25a05ae8e8525b92ae9b28b2e313658b4f941a6989b46db6ddd8c371f3\n\n# tcId = 201\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 9a0d31e7f932b616c73ff612e42dd74c9d6f7566a40fae8e6677cf6d54fb6f2e579b28d0d2d8670a33b3fcb3ebc57d7ffc202b801aade2229540e9c45327ede92354bda2dab08190ef6985d824d03af59709f022ab33cd8559b48745f1dfa158e100a68e6acef782407fb0ef4b96b4bf2fd7e40695191845aa88738e66cffd7267d04536e4979508312fed2894db446220014c3cfa8db1fece66e484b56f105755e6d65706bca5b8b4e0b615d56986f1d0ed35b5357d17f54a32f4d5063ff61ea4c853f0fa99d77efbcfd21081589fe63441324a0fedcb6cb31c91f6579b2b8b8ccd288a0f0fb9f907b474686d41c4ed25bfd07acb864118825ce56814babdf6dc8ffaf5a5cd6a30941f7760d9276e00d91e9ac5ba4fd0b3900d54539be2879bc95c6c58e6b8443cd8d561919ac2431528bb8b5f67cde0d05f2e5b4e22aa902771596b5389b662ee847f077f9b8cc35f0c8192576af7aeec1d2c719bf7183f072bf3bab37897aecd785078a4bdb06d0bc2367df36ade0583449ab25e8d035ce2\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 3495cf0c5cbf064fdfa088be1d7e57982a798c17933513d404197aff77c0513cae184df56e0bbbfe6b8311a281d8e2cbb42157a156938381f4b0b1aebbe408d6b0365fc20e8f00c39020fe740332b14d69fb3ec734984e92bf406f1449603164adf2c3c77675b30d25cd5f403acc5f104aa754f755626f1e5bc9fc0c570ef3bb9e7dd2633ec9163f056cddf73debc548d52bec6214af9b4c6b5860d54c2a08b6f81af40f8fbba9902a65e388a121402ea276cd89e0076315d4e12e045497236473dbf6eff14ef21f7875daaab03a81b5070394c127bba13e9fc4480ad245cf4ca8bee343028db6a808a2876b7130bf1f0b4d1de1f1a7f841609db96b50a28ad4e263a76b78ac2fdf3996cc5b67b6fd71f16bbed1067c0f9e71f399990b9223bbd8628614a7fad5a45970c4ffe174120a538ace6969fe0cffc9508929606e4a30ea28d555124206063f2ba7856c6beb0367012176bc258a6688647b161ab2382f9b3c926d33dffc12ec15049c2df248a46f961ba92a94b9e36083d0c229c406ce\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 330ed439b3750e35bca2cbef5bc0470799c56b206256b543d026dc11a34d15d73c696e03340c8f0751b0dd204b53af0cebc32a1cf1f33b20b5755bc4f2b9f2c8bc91939f880e62a0d8f54fdba12e602ea37af779a2afb9258e19fdcd51d4e767733ff9827432adad2f0781a46991d3d1dd9a8e5a700860e7defb0fdd3b4097aa101f95814b848abc0cb5cbb260e61c42673e0e836eb31f97a0a50ae9aa1df72ef603f0e78c91459e690363042113335b2e1050eaee0b83ae5f6ceb50a4c88956d5b01451d56e72a7755c28768004b258d86c2d790ddbbd66cd0a7f5d017bb62b957fb0b6e6253a88eb94dd5d3cf90c92dc2563b728f46928b83b1a29ecd8100e7efe254c7e043f215933f7e9873fd0cea1221f03e31f43649cc2c1bb42d7f040bd5fb401a1f3381e5c4a4fc1f973b67460b5bd2c7c99d29dc14490922138b8a3b9a2a415f50206f50d254fdea8702cf2e4057ea77cea8f18c5da655416a1f7eea84667789f78faa98a871b0a6837babab974b60ed54cc7d287d538f140e7fd6a\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 6818ee1c57e9ef40da6b1aafb3d3cfc9376eff56c2913b8b2e0891dc7ffe4450fb25f2a8d1b379c13b6b8f45993219112adac050f43ac612e7957c9484a3bafef2e550d15a8dd88faf9525a2fbec8c702d0721a408b1261b3af2be9c817e0e1dfe8b6c58c569539d66f6346fe0813762caf0ea857895e1fe90d50e1e0bf1fcea7d2cae0d5bd2eae197b0eb6ea15eaac077dd81e10c07e71f948382db1c5dd6ee4d86b0144aa648c38eea0d8253eb988205a71af95e1afb33dd20fe8315c16ced59d6185acc43e8dddf968875c331c5ac31af14a9e55023ed03f503487229be4f772eef970f3f132d1fdf334737848994d939074c4ccd448e6d2b9065088003d76d9ef38e8c713a5d8a010c9ea6dbb0bc07d32a515ad1437029bad8eeaabbe92f1b173bc8c92af832e18fe0b60a006818ebf75622ffcea489cb3f165c905c18a52a04188bcf132db833d7416858d81bbaeb8a62f80c1b328133647b36db5e4b37ef16713a16223fb24e8ae93c9d687c62c77f4ecca256e30b3ff88cd8ca3c0c68\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 947f2927355398312e17781d59a713a6ecdccd4ee315049c041b788ca52c691a7037bb489f71ecac2776dd1171853483eb453d4b93f136d51318cf32469b3d56d04bbe6dfee2721abdda3f40551beacb3f2348dbf0a8056bc4bef013a4e9819e20e2b045c3bf77f79c116993c8064c46cef8895f874438c30e555a59258d1a01596fdaabb22fed93c51c2a4881c08bd09c3219e5fa2979a32775c00f61af935c839f7f0f54a74677b194749ea1831c44e61113474396e398e4d821d65e41b3cd55cbab2b703435073a3b0c2705622cf802f67f346babfde288ebd26bd909813d8bf51fa2b07946ac0e523c802173fe6a42f41568281944f4dee91077a12e41d37e53a4704d367c2b5b013c90f73b7f24d703cfb006c8d0b399f498ef2b62f08834835108dacf637959c5506a26bc3ef5e30e1100b093707fd3b5190b597d0a6f270b21eea9aeed5b1e77acbdc01c8875724744b37554791631cb60a96ed9d7b985c2d6a2c09a33a17475e2ba47b3f56f9a33072a0fa920eb88ca0d9bd195bdde\n\n# tcId = 206\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = d054b2a5ae9bb9ded9a28528b59530dbd6ac220d761652fa44ace78743c5432a517024900c9b24574e096b6d1b295ee5251d2923a928e7852820c455c43b76e1d522ca82f98852d7cbdcfe0f85ff1f3de2cf383ed6172574b12af7fb03c58023644100effe836bfbf8e7362378541f0569606d1842fabfa288dae9ef271079023eaaafb6e6b4957e0ef96bb18b968d73de32707296e805691532925e18a709d036bd798a6ea0ee61c18aab41322a7063dc372bb1f0b9991d2314c94e370a8966a2187a8940d81b6db830931c101ecc47d13c0b9f91b3a07ad0268d0f3693684df91a8720463fd1442f01e5eaf6741d2c2391a8b4d55150728825dd9e922d89823051948c99921b7280675641e9a94c3a9d3de31332545cb6e88fe54d38a111a1f125241333ffc58bbbc4e759b3986d73a3a8f7f4fd81c1c634b65854d12dca87f1d40fa5624079426a53be23a1649252ef027605f3e82333861de641319b8418b963d2d043ff789406c3e34cdecccf111343632c1bad9deb525783676c36119e\n\n# tcId = 207\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 28cad6c07a93289cdc0ffce1c1beb709c6d344883e0e175feee78cd6c9a9700cc89d51cbb214e7b8e6e84a3039ad2eb2be4aac0c968b9081af46ca68fa1155554b923eae4f4129cafe12c44891656b5433d4e048fcc1468710bd9a3447e917a35d6333d4b5c7118996f61e0730af44fe2c663e980b301d8c7c33279da81adbdf33c8e90b04011665c6263fecdc45716015e11b5d9ce3077d894f4168159f37f2ab3296e66f2669f766029f8772835d7b887aef0d597a537f1db4e84e1ee45bd8293b4bb6f302904021522cb9eec833fcec2ba008fad69a6372470cb67207f29bbddb4a22470d91cd58c09e37d54a0751613ae8e0f29007a409d31c4e61dd6ab8d181d14474b56eef68995f2ab50622c998fd49656c9f6507f583927209253886f60de38c294f1fb95cd0f5fe3bb8d9f1462730c599093aa9418429c3ed45d595fc43198094ce216acc729abc9d7d5c2a95014d8b02fd50a7bdf69a3c3bfbbdbf3e29de2217825fda34799f231fd7d3ff80d1fbf82f82ccc189598590a051c23a\n\n# tcId = 208\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = d266da27670c18b97ccd0fe8beb45f2f83a0969258449fabbedc12d7bfe078ba741daca1c3fe504631b221eb1c899aa6c3a89d3a3904f48ebeeddbdca91b1bb9400eb1bb4d9f4ec903000ce239bb0a807de2c3b916336dc196ec87832774b701115796c4ffc66a6e344c9dd1ba9cd8517e93694f4d4502b20c72cb87426f250373113ab5b4f73c0b93de792ad714225eb70b9b44ee154719d89ad6c5c2c78917d3dcceddcdeea90bdaf0b35f2d77bd08f099a245cb39af8cf70d9dac0efeea156aaf83b5316b5f05c6fd9a3b6de3e82c9d02fdc5df5e25888c200219dc324c856d7a0b5687e3463a13accfb1b13b25f3b35ec84e551b2fd3738a1924dfb931b4d264e9515c508782c6ca04e2f66c30ec54873d39c0501459f0749aafc652531aca65d1fbf9b4d3f1272d8e87ed5dc680456d8e7771790a64b628ab05addd1078e99c0e197f9bd648db9caeca4e7160563496a18606e57bf5cd1c21bbfbca5a138852fc471eb09cd5a9e900409dcb2e0b733c54903a70d04e58cd64ee441d9ada\n\n# tcId = 209\n# modify first ", + "byte of digest\nmsg = 313233343030\nresult = invalid\nsig = bb94c13e6a00776c615fc879f33bde87218a3ba010138d8e239d6480db2431a67499a86d86558e3c16c8292ac5e5324981684894c8c7408f741de4bb4580ba6250f81ca6d0e8927f01de76b48f5e176634e0627342ec7d941fc25926d4b3efa0d94d9e53379c0f07f0d7a68f3fb26ec2073d257a6fed96393707e09e4f7eb247d106720e91911637bf43866d7ac90128159bd2381a5799a03b5658f2ec5956214383f3bf7b11837621dc4dd2a38fa4bf979bdbed9752ab6fb5c5af684304220faa3a5329bd106275900633488f25fcdb7bfb13db8435a53050f00866705c1a6c51507304a7c09c166e15bab7e808032da23405e8d2d25f64066c07a5acec27554782d2fee6d71a52f588268dc6fc928bffce6fc5eff2f53fb9d923f0e036df832c2e834b738646f1726c4016df56cef624d017a8755a9d9c8a885f53774af71ee69b34b7ab5eba4270a19f979909cf8331d64b32f759504ef35e6e1e839c66b000dfe24893a7a55a3d422c2be8c51417c266288fdd5cc98f8af150e579b42e96\n\n# tcId = 210\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 4f66ac4021d9aa29b43caf068b45c62300884232650b1809cc5c1eb9feb5834c9177d5281d53af9b9a868471936fe7911d5a1455fe101a394182c1c21d5aa7cf203eecbd02507797c8f9d1a7d69c53f639f61ef112ad99e87e65d02a15dc48e90acba7b09be2366eafb45a1d2dd4b2caab7fe07b0e3ba94e160a58df743c15d286bf8966447d4305c1b2d27d23203e1eae1a7e2ed7da7b7962c4f6e95e9bdb30e02dc1206039e84aaf495ab6c04628a661f06e7592c4a9f5ad9019e2c4f090fe05282f00b43ca98a8ab1a0b38db98a7ec36c1d1afc61a9839796fcfbcb0560aca2d11a8bfa7dcc46e76b69678184b8ded0d49efc601ec69266164f8e5ad7f7ed416a92c6bf62fff7fea732add959723247c2b688f60a7aa1cea5ebf913caee52cc70f7a850fe1c8b006e4e244cf2d4f948f040e28e90a57a80f2e4fedf6650d59683af70678f52e79b9c60a93536814fc6d669be8092703bee6f2d842518fb7a031d6562c740ec018918aac1ba9192b4b552a3cc620251bdd62670a834627bdd\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = ed93465874a3d62afda94f71718914dff11e99e0793d9a4ba45440f475eff498951cdf6f435f163d78f610a0dd06393e99dd2e7f5139db0c4ddc43a932ecd1b498fd8bf5443c7d62e53230869e631e5ff8a85e379b34c152d662afde843f205b99d15c2258ddf6fe286ae58005d21d4c24d016e2e084d78e684b7344302409e050dd759a5f5168a587a8189c2781f7ce784780c0a6a0ac4978a4a7f95b457b4cf2757246d73e14a957ed061edb0d0c8f345cce741dd7a1c79af84a81fcac9c4badf490ca28c8b8a4b90d2214299f8a6a092012346f8fd0d679439a0dea2e196cdbe8a9a9434982a5fa20af9cc19df2deecbb86dd4772297db08e407d78bd6d0d95aeb4c987a21007ef00276eff17ff24db4f51f5dda13a75cb7b09375e99b6965ca73f423dcc1d5e9aeaf20fd09cdfca37082b92a9a582781da5eed90eaae7b0a6c7684abd0f0417c3c1e8225dfbbb432176304754d82c96dee504fd36d4c1ec0c750d4276180a52c2fc93580192084f270925ba138c52b52a95ab16be998cbd\n\n# tcId = 212\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = eeab3ec4df4e69668f23a6de6d071be7ff5e01613dbfeccefc722997ded7114f680f0fea889a070ea1e1fccd513b1b23059d0eb99d41f4cb08f2b8a1af16584b34f29341722355eae5a8a223c391cb392193e9367b81cdb46b8d897916f5f054a7a02aae0af18fb553050c88ad94ad406e574a52dbb167997dba36d2e8707ae43df0ae089d663c93daca1c354ba9fad356ad788068c7a82a7fe82445f732908e2dfce7d16eea2212945a918d6eae80b8ae93f9fbc4babdddd4b09a040cc355200149ae4d82ae968db6d7693192adba439f33be49143266bbe157baf4291eb8f75328ef0c76fd5cafb554aa843fba336d4f9862f2a2223035fb9e37a43c7cbae811980bed620768d5690a9fb087d050b0f8a09867caaf23ddbeff490497f7d26cca6d69d0beaacbec5a7e4af606a1eef4c4316ac4084b9b51663b438f97e507b54b86e5579409e13de979d749f365e50dbff67b0ee7994ed38e96ac897135c6a249855dbfc10b4628025b7177c3cb0107b1eb66cef39bca2ae00afaae2bb236c1\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 2c5c3cc5f8cec4eac19265eb456fed4be0c582d3324407bdc6aab5002534fa32dccf93ef7f1ac30bdc5f5c2c4964a0483bdff24ea5694224edf98f808c847ceffba864c3cd8b2260626129bfc59ee0117b53bfab63f437c96af170c0caaa68d8d8ed84261cd472b1edf699483fe7b794d07eee92b637dc1c49aa7c1a6aa2dce34abffccb37db3647d3ab877fa11475d0ac2647b4d4e439185a11619cd956f9dbf9f73a33faa321f2f5c501114528817e932ee71be313b4507741ae81ce6b1ab3610f2a65ead30268cc1c5ce3189a37e8218459d717dab5c09f991fff3e07ee309b1bb607144dd0d477cd18b7147b065f9e09b8ecf282dcfa2745154a75cde6097329a9782968b118bb23f3d2b36aa3a023da114dc648fd740250e76cb952d7edc0ddcfe96573ce196cbb9ee3b309b88de6213d1b220a24a95d753cece91e12b211832968fa450cf8f752fd983e64baf9d0707dd708670d614105a574523d49e492d77647717d653c4ce6f997560c3c35e63342a903385d17a1e2174ac8ff4db4\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = d789585d72ef27eab443d409250ff15e4e188ed3bf497198167fee8c3476bfa2b7f3ed644fee7aeed40bf02df57ec28596fb0a5df4db780fdf78ec97e709c43ab7b805c381d32948f8e43ea2663a8e2fa6f817b99ae897a483bc37d4315f95e8fdd0735d742b9da61ffd7d468855f2aabb2c5d5d5f96c9f5458a4ec612b911a41618160e0a9bf0ac98f723e73a947e8826b1e05b7a293188f3ccec45aa8e8a225f386275287dfd5d6896a716532f876797749d3ac3a60b6dd016fc6fe11007419b605777d3e4d88a1d413bfdfd9698cc67e717e110c386e0c0fef2939648eaa0b0f83e1121a70c0c93dfdc3a92c6fa60f98355e8da8f368302defc9d5f3813de9de57dd493559460383413ac1adf3eccf8ba749e492c7d98da5356565a1eafccbfab2534e405ffb4c89a9548a162445d1027ed93ea6dcfbe4825af3b629dd8f0454cf54f54944986518be2f9bf6c68314c2e98bc10afede065d7c767f1c4ee11ec7121182722afd0f0e3ab65190fd35b227d86daf3f8f740d6164ea5310895a7\n\n# tcId = 215\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 068b2f62d5a72b3d9c1cb75c55699e539c9a9f97c5eb4137aaa30da1c9c2e6438aafca227f6bb87c02194646aafbebfda1f43f361c0fb0ec53ef07f86c9ed3db7ed39fcf08fd3fd0212ec51eddf3059104516ddd1cb0bd9ea329c793772aaf7003e3b0387c03a79eea56695f415c3aa0029238d0baaf619ce5aee8fa73aac1e79949048c330e7b33f55fa4e8822d926394c958045ab6a97859eee5f39f614711a11d5057b5a467802651bff2645d897fb8b95207a968babec7b7604bbfeeafed44e3000dfd4241ebdd87e29103af5184399c65620c9075a91fd2ae5a40c614e4f07cf2c94bb868f0b99ff284a4f4bc1f14834d26ed45349c959c30e8cedbcead87fa7adfb898f998118332a06404ac36d7a897595b64adccf9169865b0d412c204c5f776bfce6959230e29574111e50189dbf0f967856643f135a2c51c8e90f467cd55fac3e8bfe4314d23f46e8f28f399e626f9d576997b21b4be2d9b7e50fc150661a25032d9f150c97a9b4031dd646e411d09054765068e73c1da7fa9f9af\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 1b9c7a5fdba8b0c84a6f98b1c419c6088a478346c75049822877b2402a5d28a0bd6759a1a579e6adb33a59c1bdbe1f829f2d3a4cce9f54ac7c1932a6d7e8c750e538e70a1a2e0af1481096687235d7b598c3ee9fdb3a6ea46b50fae66dfae54a1bb475ec742598dbce5febfce6de99f00176ac8cfde273a0eea6ebf0479f2dc676087873cd204bbf9cc49872571c4965b8d57c511328cd72811f89a6b216a28b9906c12b1dc38282b3cc7f2cbc52803123cb8cc0ac1a58397a7ce85656a17dc19e432fb124b607ac13879a4477dbc099d3826c3d92aa6af39f80fc4934816dde6b50a932cbf902f2f11125c8ec68b56aff6ac545601472380b1f3a19238ca8ee8e8f9e2ca3d3913c4a7f0d6e959590a739028a240d30813260e63e25132e572e7705acb241716aadbd0b9a051df5c5a7ac9a98304d13bdd518a84ddf589ae2d7f122aab5c1db9a7bcdd4688faf3209e80cd9aec91971121f1e5c799d55915b88dee9deb835ae74ad898293988e54662c29559535adea863ef606ceb559d9e236\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = a7ace057a106782b546816f8dcc81cf41216c18e587d8a5753ffa780fc51007196f37a816beac993023b41d192ac88cd30e2e9719309aedc367defd2893d767dae6c6148dbbe6fd4ce3636bed48b746982795dd206d11e603f77fb46fd56ac9e51a88f26c9c9512d3cf851afbfecb061bb6ffe7510bc4a8f4c17b8a6135f9b80557149834d18f4bb23822c1384a48a62ef3e3b723fdbd250d25d25177355ed361d54f372a78798cc111d6374d40062c5d4c5e43e8df75af841cab36bb15c5d4031afef9ae76670059a760e7aa610df8517deedcc6d616366473b8193fea07b3226bb67c3989778a868997371cc4f1242c77e85c2fab1c342ac49131937f16f4f0cb4342874374232ea1aabc7e3681aca47bdf358845f668a8844a7732a48075caaad959354592f5f3ec413cdddf337c64d0263b4096762a7eeb495bc7bf9868c9be5334697f7118c8c1274cdf300937955e36babc895745d02c22f1874159a33abe0cff3da62b76b3921b24573514dff80505c10c530a78b379da653dbc2947b\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 7beb0b9c393a8514932ce399ecbcc86d4725fc7c64840d24a45564548eb5c01774f89a75d3365e653fe39be83484b5243d3fd894191ff011f7a16195c1c6b4c9f474bb7abb45981077f49f696b5faae60e45755cc58e4f006a5fe1b02fbdba5e37f0d7a9d930bc2e68cca8f345713a9d0604ac8dd4c53e435631993f3b1aa9a2986dbd0aa9bda6e0789652387fb60aac6183b815743efdc4180917a30fe6f4fbc97cfd2c181855f4571408707fe61c5ead6bf36ebd4d13f4acae41b77160a4fa2ab8895ea7a36e6c8e48a4ab47be8addf9d1f1b9317b94889087a7c459fa89aa7bce959417674765b58554233e561bb03e7265afc15", + "d7078fb18053445e865f5ba637d282406f7634e2d1ecb022b98569203b56c55c2d493b1414684984db401464559b339e37c6c6a147d3d5c05b56fb0eeeddd917a121ee1338ccd33f80fd0cac3cd7d9ff92ab080ed5f9bf350b39580fae2ef3046d03e67fb7cf0ae32872ed0515d27899409b34f842c8eac6a8c7f840fca270725b354500d1b1a904d06c5\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 1a2ab1f73bcefdc551b574a99ef47e7d21aa4ed547f8428d219e6e3eb94a366d0979a43aa3b8579b600ae6d98fe5a61adcc06c04534a1e1409f46247e87111fe508fa38efb61e72d8b46bcd75aee82e601e025cc6a7fa90d807b9b1457d9f1b7253f3aef066bc2833140d215438f9eb288ea9bc4d18c3cddb2dc593732f08e34ba91174131a1d71e29468c46bd2a16020e1d8119394e77291427a22f2e8254b402073cb05c00776f849cce648bb0c38dd11f23efab69d5e68a689cde892fdda408146234021503b6aff7abda2539068b366f61f3115767104df1d423cbfa4fae159abfe1d2bbb10a4efc2aff19893bfab58b42c9dfb7faf3ee962b298bd600d2af0f7b87f354f4b2092ef45e18625942f1ff7aca0033789bafbf98b49c9f845e3d9cafc0e89c5fdfbfebcbc4714136308e80f575b96877c28bb4b3cdca7d6212f6b52217bc16203c7fc37f2ed48c61d5d5b2a957770abb1457792004d177dca34115bff7dc10789e44c8d491496f310c313b1265d57463a02b7acb6690569d86\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = bb7481d11b26b392b392fb12e7b2035f6053511e9c00bf926a556f04597a663c953c9315138ddf3ffdae4f97f3f296718348d6bc80b389b1a2a8672cb2e410f1a18d2a376c527f8361fb85e7d9fd3371c9ac5cb26c96679e28104dbb33d423df039706d4a058751a52bb138176e0d72d765ab99398aeb0e22707e97a61ac65fedf8e6fbd401a9122c73f4e15b2d9754661515a3a9033b4e9d8da4e9cdfc6f747bdf2d44b06c296db646b5f668d60f622c65b23f2713f4ebe47c154d74d5a1d5bbfef08606a8ebe3e8a4e3fd26fdcf1ea9969382363122148744364c7e0e1f98b3d5c3d09fac98f3b065d67efba87d709f4a4fa54a9b07974e5e8194926f219a9f9fb548a6afb363032255d06c84e43a8983a20227ce298ef9b3f677569291096444f19d01b629b90dc09dd80a550db66aca16552a521df07ffdb0cbb4ac14f5b2b990e84129cd15bf79e210560b3e9d9a57f11a8ba8752441b3cc98d65628fdf329a0e51a77c9c15f29e2c5cb3c76c9a00c36900eb97f1ac3f65bd0fc051c177\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = d4328711d786df1aa78d2bd8f93921d208862d596d92273d861ae5296c0909a6a3bef5a5a49728896a9430e6d8ef9903fecc910c66cf0a9366fb1be322b7760ea0b02768a339d177a392de3efc44216c0a80b68212dfa2d43f95d2b3e4730c770979d67db173ff0f29e00b1abcdfa78afe2f20673f84d75c4b4ebbc0c4499d69c7fb5253bea5c06ba37d6fcbc384e69dda6ad7ae18a220b3f7dd548ff2ae547502567a6cd34456576fdcdd813b491d7f77117288d10ab91de9bc8342407b53d70dd83f4b94b00eee3ef7cd13e9147870382efee58563007b96dd910a7a83cb1246ea39a492e596190511dd313aebcb3ff5f8dd9bd0d9e29b01f75dd9a6a0c62f008f1b24769c0cfb9f56d05f2a102976985e7bf84f75ab3611ca40068ad9c4b1a3db684cd816bc605b22192ed3e0beb5ea42d4242e0ae939e6fdc3acf35755249af5bc8d44b34836463627220d388ba9a356525f77bb636106d961d5ddc069e2301e454f486d478e06becb8574860dc24b617f5709c6f3d981817703a13fcc46\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 2b938542a768f5d8733e373f6b21cdde86bec1a6693d4cb150527491a3707588026527c8bd3b5ce9495068eff3b828844d80b65aa86e0376a487776f648e8bebf487bb02f8b2a6a9703223975f540e7447f14fcbc9dea14463fe42a998934fa8d4516afd7144f199b9b8cc3026217b981649ef89b19c508c6f6880585749787274a7d91e3cee34d69eb52930dd52ecb034ba6f3d482b36446fcbde1e96d45fe36ac1f17c43a2a7b7028113f063ff4cd61b82cb61f4cca8a407848333ffcef570e6e4c39ae0731445e8430f474a1bf48ef138f5188d0e16334139bc40fae60a3cb8cab659cfa992f913bf91541823e38db370d30fcccb260f1dba1e859d7097c4456beb16d5c7674b3dea4a892710b1afb98d43482376fc323abbde6e421d43bc9be112969c5924fc831c43870c2f5e2459fcaaae3038f75028e998251877284506c1a1a231b322572a93fc42c3d8fe23bf03c1ff060100bccc616d92865db402f03f5d7632857156b71322492bd5c9676d8444267d28eddf9023ae84a96eecb4\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 4069c3930a7eddeca877e379c2fd9216142086e8934a0dbba227707397cbb967607640834803f7da65e7722316e465dc43234ad802ff957b7d15b4dd196e7f5db9ab0b6a977cee1b70980e3d6731ba6250b5b44693d28105759a47050504f073bee6e50fccd4fca13d53424dd43c83770cb06a40df71c650450bbd44730c6af16fdf00fbb12b482730b4743e7a2babce66f2494d63ee89ba419d3d46000b58c70f7907ba16796db39c5802d70c85ad82706dc63e927d6acbfc7436df4135b8f9d4953d330321015c232e63c5c68554081b2b1adfdf70e5e7321f537a3f0659d8701739c86bd16c17ee4843da23109e716cb2437bf6a45dfde5fc1b76967625c725233aef7af252c81687113c754c7a533e8c6ccde6abe8044d9f3a15e9c0059dcd3ebf892638d27ee9e9246dee80b9674f2b1a5395ed0ec22df3e6497207f858282684f8def8c97a13631ec21d622d9ef6d4882d49659aa2d2bdf37708d380739a43c797616021cd47eeab66e5ec7532655e43cebc83e5c045fefd322c08c995\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 939e8efca0177e51ea7c3134efebd3d229f6eb6426ac33530c9db86024c166f50e13706ec423e8196c8fe21157b252c15ff692ed4cc6ca8cb0501c443c63bc0e9dd167f8db8b05e06f7655934a4b446b4435b6d1e00cb50028d83961d7f153c4942a87310ed2dea6fe626b8755a5f14fc5f6383ef3455819984d9dc4e6351db56a1a2f17da21ba3515f75032b62d5553b06a00d00de77920a94beeb1a48400865b7f97e7d9a9c518a2d8112b356291f1e60234cad3515f7fec3a3209b8b76c9fb59d0083844c2475c973fd223027d1c10562d129dd2afb904823bcbeb85bc45b62a42a8ad91ed3f0e62d722ce2dcadf1898588ba468510327ac59ee7333a6a137a0f3a061b5c5cafe2b5f57f1575184fd19491d95b8829f9845fc32fcc18cf2f1297de0b1d8426bbd313618edd5ae94fb982468847403e46061d38caf242285a9ad2ba55287748e14b67fc333e485b6ae29fe7dba582f56e208cbf5ac281fc853c57cd68e4e45d38a42bbeab4211e87168efdf337f8b44f14fa69e1a7f1e46a6\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 08317cd804400c88a2cf3055bdb9add4ff6c5844cf5d521e05a59dd32d30397688a1abe7212b385ba4eb82cbf091dde7bdcf16e706675b6687f2765447f2647cb9b626abb96173baaf4f9c24a0ae0a25f2d337312cb58cb7a3487489c91d12390213fb6cc32459369b410e8f87c7013bec907fa0980a31afc213842501498068d3207b48405e13c9cc2e24587aa5621b4c76898ec8219d05043aa2c347805fa2141ced11126850d62b6cf63f05c568cffa1d58c25ebf9771fe0fcac49d1c9b7c6f04d1730f8ccb25722741a64f13f7627d2ed7c89187bb704a6b461e315f36342ad6d7cb270940286af3be4083a5f1d5c1441528b21d0b02af7791a6ca5b72f962d3b7a6f8892dafb35f91425fd7b921179a1280c056f3cf283c8294bf29da404f80e62a9c0a76a0359d8dc6c01159e369ef2d2a29dbb655dfede14f6e3b4fc0d4dc9dbd52501bc6b3fe747bcf8753379791204e4138bae4daf1d6db65e0f9dfd053d90237e12a044e331a6b6bb451ed26405c8534760d00e7d46a0c47b09537\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 6e35d7e838f318735a6050fb3faea4beede2e0c3e5bd007b096f4d2bf855af1c29909ee6859e3012f3509372f8975be33ba4cf4111f25e7cf91ab9cd23df7bb27e7246f6d03449dae81f93e141044b95365777e1127ef2df2f33c0a43cf1cb28a9b3e877ecc0979983bab8d2da8be009706b5636ec753828aa51c01f48b57c9e2bdd7f23330c47a27d556638ca0d8f92b8d1d5273e7d936500ba5ac79470a669da9ae334256d34dac2d3b241baa61d8127735bd42f43bbc928ef9881996d72012f940e7b8c81ff6d37b5b0f6c3b116d53d816273f33112008ae256352401dcacc12d27f5c912456b5a72334437ee0d4a04ef5c6e77c29d190563c1c500a558b2dee8a432c9aebc53a1f07ffb597d25c832f4df2a4415fb4c142dcd2d8b03020340976f33d58cd8f27b757e6936200f297027a67beef36b50ea79a88c39b0eb5cdb3de55fd8650dd3f480104f418bf7a8e6ed2304db3168beb1d060a00069180f4d820894566bc9237b12b0d87dc5266c07928de63258e3ab532b700cd7cde84b\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = fae12363cc51e2", + "66de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5244\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5246\n\n# tcId = 235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 78caf448aa52e0fe470ef9082842a2f99079164744e63b4d3637e5ff0760088ff4f3f0e047475bfd023ad8b50f0f3d83d0fafbbb5db1e5edabbbd72253e2b696cb35705567079eadfb5ee3b442a7d13ffd92976c7bbc64e91d924c87e409e8dbe460e0808a5f31737c4a379b27b42c01e2b85fb703cb326e4b7a76d9446a17c406ecb2bffb48a501bc9e98646e94394edf7ac02a4c141c76bdef99cf52d4680e0c23296684ee7d0e935fbdfdac76299afb3f7a221fe45a07be79396631b8db97e358a0f4c4b29163d19f76c771d9fc7ebb68547e40f95f10f93ed199da7cc776f23c29b44a749bf6bcc8d4e3d50ac3aa6a9d13064caf8d81a526055faa2926324f46eb1ea5d1aca239f2d41523292bfeba89db64bb20e3681820f03b5b0f7c4ae5ebf7657c626debe58a8615b95a873c7bf306ad6e9ad18b6337f0f24d89384556eaf59c1eaab679c7299fcd80edb656cb3bbcee67e43e230f30f704f4a3e25aff07bb636865ab9fdfd830df834609d07719cff33ea0528497947ccf398b4a09\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = f2e40f94959e63e5cf5722139fc63dbac2712e0485718b153041e8c24af9ff96025b7da26810c78c4601fe6d3576ea33f3c041c911e8c7384ac86f062b0c77ddd03cf5cf91b35448326e04d65ab01102dff37c5a2158c5390febb0338c1c4ccdbd2510243f2f4ed3b762cc6f1430b7e0edf7da7b582bd963daf4d11416756309fba9ebca7eed8def4c538e081c966b11d1f2a3a7c52a9b134e92622397549e53a882f4e641071683633217cf7b0bbd4305559c40a3c5f3785c555705e6b67acbf7887d919c69b165b56e301367825e8394a54520a99c7742356ffb2fec914f968cf9c80af3beb72263f843aaeb5b32f476915ca6369984246ea453fa0d57c3dfffc76f8a072404b9aa5de9f8a5a60389f539d3de4c9e095f7fa97c1ba4253b7a3f0e61715774df20a73dd5acf30abccc2a05b3e418caf1b96baab1234a187c5c80ddd0ca0e35ae4f5afb7f9c56c7bbef028c79158d0d57c1dde1fd4c8e0252c372f684aa438a33669f4e18d087ac0fb36c780404ad22153d6de4f46f9081cecb\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 7acc8cc66f2c221df076ca4fa898f98c46bb0809a612920c0a7b9e2beee738e4403ffd34b35911ff20a9a23def8d0067b34177d1ebf02486dc699133e4fdd0a58b7bb29a971cda32617b4b234a10ffeb5e154adbcd83c478a00b9fa657b264dcc998d01abac58829c208120aa5f78beb0594ec507b9f7ac5657ca6596662b018cbb582277af76b9630b30e6fcffffb32ada6d256bba86077802db41f2424421b18bb906c18fc081ec6066dcbfc5805a729994d839601741e7ccb7a5b6564be1033824fdd5172aa4621c6cce3af870ab7ea9d538f5ec3f7f2adf54d1f56468be03689c", + "715cfcbd8457f3b477490a55733d582ac7df3f087461112bd91c859d327f0cbbda4ba399fc7fcba66fc99f58e01fc6fdc7e77f6b10b7a624155b24fe2e1d9679400217ec9092ff6a037b1de3aabf66d3c997e46eb062fe64ab88433bcc3b471df2fe600e48b3056bdcd61be1ec01385402b33ae9ac55d8108b4b9ee1b15eae4f9f6471079d34daa33c24fabc5dafd18b86ce365003dad36c043bb56d5a7\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = dcd190da293f545fb08432ae90fd77e4974e5817ba8e7e858d95df30f90296bcd3e4ba1ba7a8e5b2fda5613b22cbf03681753eddb9dc975971ebf211c46196630501c5ef582a0cdbb58b8091ef5c4af1df4df49942d1077dfba75c73f4920231507b1b55ec73d1f1cb87accb52e46a0842199234f66b6489f050bd5b0a4da862801446242697802f23a221f352908e4a1d400f7f066f4560c8201c8854bc0ddaee5b45a1f1165dc8053e2527623c9321a412dab7c9e2f35db2b7f3a8f59f7bd4818e03598625be2033ddc81835308005f64d240d7253c1eea264426e49d4170acfbbd95abc48174d6c13959e3d8fea723eaf0623e4785ef6cf7621a4c65865605f1cab622a1a1add8d7f11266a7084f24c9fa1073b5607b90df4b786a9279eae72e300d1eeeb72700de66765d81f997d3635cc031eb8a962355efdc3937fd7fe3349994c5ed289d3656d50dd3844b24c3787785bd06527bc0d958850aa86c2a3a16eb41bb7de9ac214fe351f9424e3aaab67f5fd680622e690bb25ba967b311d\n\n[e = 03]\n[keyAsn = 3082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d003082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keysize = 3072]\n[n = 008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01]\n[sha = SHA-512]\n\n# tcId = 240\n# short signature\nmsg = 36313237\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bdd0c9e451b5b3e5513a94492dbee1ada9ea87e65a8cd95cceb4d304294ce34bf09a212f14908f5b865c7a34a72e68e389794a2d1c5767ba17829e2044108ac7842b6bfe0a5663b433d656f4e38522c5a5a23c460b898833828d257350e5814291b54cf13089080f84998edcacf0fe5fca0c1f8b176b172c5f9989491a039bef\nflags = SmallPublicKey\n\n", +}; +static const size_t kLen156 = 267661; + +static const char *kData156[] = { + "# Imported from Wycheproof's rsa_signature_4096_sha384_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keysize = 4096]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[sha = SHA-384]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = a454390b04bfdd69c4be2ad1bad96ec901639f0bb60df268415b4a93b4cd53510fe64f394b319e66ca8605d7d5f7a05dae5eff827060013503d857a977c09ef742525e43b7e69d3802a58206e696848a87ee17b2b9de6829044349036554c659c8f8866c401fe85869c0a5ea90739c4983a1561a84e4f0bceb00015a671f5283f41f0bb8599774829b6a2de24f14d83351c96e35ae1475c8b4bcd2cf66889237a206d147b0e949f2b2028ead379c74203017904ac09a5561a8ec343be22cf46c3bc2a87b12cf9cf6e8fb22de884bdd9677626b757a005d3745f387d296347d3852ddc2c4258cf572dc40df3ff6a8a5f9d8b1b410c54739b9ae182611ec01805c80b445d058ce2afc4bd58d87c03fc9500fba237bcbedb0960a1a02efef52b97cddac63b5eb0481c0c0991375735338ac84c0505415ad2bf8e7a819ad269460668ba8f8c879f521ec9dc709e406de023fc0f9129a3a94eb1f3af08d33eed6273e5166f31110097f5558d8d9028ff558e627c9c0db2454b134a82a9dacca5b4032bc0e27c4d41cf55e9d89cf51528bb4f08c6ee5ce651af3772f008a44863c851933a57cac8e29a84756c9fa7f80435b3b78486f9908512902d5461964918239c76b6790b780e09d2f1d3db1c59b275d20bb24fa4f518b25af3254b61d34ed8b444d3ca736ceffdddaf767bdc92b4543f68b25421cb8c1328f2f253e446be46d10\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 909c1f13b544933ccf3bc73ff5053a8a65a8f01b447d4b40f109cbde29d866368aaebf46c19051092063993862b32fd166006bdd4d988794d4e9a77821fc9e684fab1366a2d988eaca60e4fa8ea947dbc4b8438a9fc036691107d3d0be52c46c61342ef8fb7e08032921c1b455c55de28d58c77c1eaea03f13c26c4cea73d14acfa8ac2907f6a775273e7686ecf4b882b88a42cba11cd1efa5b985cf5a227654e54cdc9e2d283b80d250cce553fda636279336ba13f7f3659d70b5b2995a2ac7b60f329c62790d8eed1c3dacccd0df468a91e767c190be41a028d4efc1c5ed5e6f3a77930f50217fde9ce9ccb66b75731957959834839fa3bdc1a769fabebab03d3f0e605a12aa9fccb2a9421591a7427d82068623582de592935904b59a42e59b50419cd12d71da871862149a6500ec6870d989423346879551e506fada7c0c01b328244ac5f2e2c5bcbf4b5b09a4512a0edc90fee4d4dd9eb88582bfe37b49b8d8189051b32cccbc4d300284f9e523674a601b1a725722695d5ef438b770b575b6d0955edc761250bcc6a30e8d5c7287093236f223c2da8d9ab7d6b58e5d0e9167f2e8c58255ed16b63789ea16046bd0f987b156e9898076d444cc7a4aadc76699a2e3a442d63ca4c3f92da9f3b2c4ae13edf9d4e28ad206ed0cbd2df2a46920e298abd1904877b75c1a9ff80c5bf05bc5d1ab94d379d064fad894918ce326\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 65956121a818b842d861d0dbcbdef22aa05c7e94ce5d748308663e142881feadb85dc4421d9d01833b8b4c2713842c77949cee8b853286107c655de7778a5acca11afbf1d9dad429eb6a281c1e8ae1cfd37cdf530fd4f2b765c352bcea26ce44e2165c36553318d89b1e06ffd8a210cb988cbfc916a9401fbdaa56a1a2a4cb66ef00a3176182d33dec5f3625b760c37c82cf618cd2875079a36015af21d060dffeb5c9e1f4255d7fea64386d8d860c6868cd79ef6d7a87927753a78bdb63c4845306de1d73c5d7dccbb6cca9b65aef19a7b9e53d9c02a4a2bd6910e076959f9f40c30eaa0a6ef783c0b73f05566e4492e16b832729e03fc939e54bf0336d376a3b4cda534bee446dad3fe51d20bb8a135103e7e12220484bbe02e99c5803282ab90d11063e5243297f80d3f24ab08fe8f2fb62702b0543f0203972d35287ba64facbc635cb438a888c83c7028a325555f07521c3095bc4e38bd0f60eb90828319777fea2276e0bc76f2c13ebf92f802a08844209ccddd2aac1f2700e8a5107e86426e6ab76288fa01de18b8a63551fbe8705824d16e5190c559c7bbe8a17031e7d352a681b0418cb36423632ec48a8d3861136b250ad2fc72388e771b41849893cdbffe04aac4037209944ff3174f86f7a88414b1666727c960b1e54a2cdb82e39cf9f2661f4ad6e22f330b350eae7f588a623524617b1846486fe9f04abbf5e\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 3b35a042a4791dc1ac1561ad1038750bb9a575a7ff72db2ee60ba027f8994bcbabe41fed36417bd139a286ed0aa6c3ef2868a7251442d060c1cc67d4470c3ab7c307acb0c0641218a45b9cdde05546653850c2168a59f1788cd55dacd40afe38eb941ff08ffa8bbe609f2aa795c73c0368f482d53d691980891ba43b69f5791c2e6f70e17a996a299e60ce1c9d44ebb9f29e700e9ae216df749149f6c222d1e1733953553a792745c382d44f52ff404ed5ee04c41ac8acc97c250f9a5e3cc6d70902d51e8ac000d05e36279d83491dfe6a40f222bc1dfcfa7fa5e0197cf47528f77719e007b65ca39dae17bd0f323b00ee63b66401e2ec5f8917ef600a41c3a61571a4d922c0b0ad0a290ee054ad15e63f1a0cafb749f80cae6cbeb06be62e1608b502182d247bc6a37abe5fd750ead8b7216a35e74b969005309b14be36a31c5e6c2266701d5afdb5ca2314e2f32ae17387d8284ad2c7225fa63ed47e7245a65b74f53a5bd22654b3878ed09b1e5e070bc20eefac6c95b006b8f3e613b19f518c48ee6781a12bd08ad36ba384d03d3ea3c4e0b1facc39741f9ec73d0335d2ee735355955ed12cf8b999d155d389b1a3caebdfbba32c883ef7d0e112d86e6149a3328b63b9385c68fe8a7b679e8436aef7466067a8e8bb49e31675729b3f448e7dd3c048973d2a5f8f7173c4428f3982a99361fa691d1588e39cd4485c450158\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 09d8512c4667994623530a2317bbda738eb8917bc80c84b64793351463da171bccc88b95049a57ccd917a4687da3be63db21b0ad0972ed9ed182f4ecc8e06647675340192a57e6591eacbf15d2f5fbdcab568b16ed86e668144d9e676e55ec4df1dce61f672de9f53d1743b72993a5d21ffeb7ab58e0f83e297cccbf25ed68c70dd8441c119afb6c07fb1d83edd9bc1ac34046733c8b827d002c3b6072d74a6c2cf7f1d968e9f7b0873de8ee5adf902dc68fbc93171", + "f763c425964ea6e3af6691f1a303ff7837adb07a09f728de3377fff74adb34c959d363db650fa5c3035febfe8c62a0cde3d006a9d34d51c5b2c4a1dd4f2423c532c6b5fddf03e0a05fdf8d857f98787d6f55f0ce1d0ca95a37177657035ee48bd4f39f7d520ccc48ee999777868b4c3876e2242f59b725798bca28ae66c267c507cd65fde612c1fdc9362994ee31134d5561ad7c3f523858f43611c249cca3c134d00ed966a82b800da11add213731b58caf232fb2094e9dd42ceaffc7002f1592e79b85eb6e39ed5de8484f5509e0f54166426095e8522f88363fd0dd7bf64414011a710c7834958c0aa308189819cd4488588b84729dafe163e79856b913ef55afed55e83ee5b812579b87cdb80d5bc9ffa02ec32a0d97b0a56bfaead58a438cee53d40dd197fa2eeef4aff98eb5590163e68b5f3de443909769080c8a6bf87e3808bf265a41a3b79f8\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 798f597e9ad4ba8b3d00a9527f4e785af5c55994e2953046a1b9062945e8dfa35eedb1e31af3daf1955d7b0afe74fbc53739b1aa02fa2dba629c31b211cd513e2248ed847dd579406ab603d3369de3bb07143a581734fd8b1ca0358c4fda639045be1f192b233efb8848bb2c544e4e188e0c7ce311bb4841077d15051c6f6b31998ddd8a7bd30d75b7b3c824358bccb35f8ffa8c0fc5ac37ed71cdd48ed3c0269a638317756bdc9287043be1b4f3c6ef6423f1d0d38857c195e7be81c3778648ab889474109ff3c7be0fec790d3f5f50b966e3df40c566f572f8f252d09e97d4c90442badf820c7db74d6fbb004bd7eb53c0b1a871bb9f480821bbb48b363c85c9866bf8a86de9c6732a3136f2c80e88a29540a9036b72fb8f4c898e7b487c41d0f693c91309bb3bc06f1e3b2fa9918c31ba2a4b82a37a927784a7c7d2aadc3301524ce2708774c3e2189ca188b3d85a33348d28ed6f080a06452bf8316d483e6a5e28b831797f85a8ca5ca922bcd94b9045f588ea9e15f2a20dd26817eeb80b3421c5de72db98843dc719cfb1aff1f927ee1df1bb718732159bec70d5b6d0f98a3fd5d42c31ecf4124cb1759f183838d676eca2cadb4d57f2d6a52cd0115ffec0fd79c99aa78df8c6b54797a590bfefd4c34e4c3f39750ba47f4d8002a131b870ff8e65c6c37b75e5c54c8a2bc2fdacedb41f30ed8bc9029819b7064b6514a1\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 41fa907da9f78e107b58ff6c4ac0e92a9bbc7f5b510260572fce4ef047c73cab3fb0d00b353b4cb9256dddad432c5815652bd83c78e657075781140de56189ecfbe1601f24bdce05c63f511a3d04673d24c4e943695d7812aad66f374a74a906177dc729090070cb5d6d518e7045f4cdece06ce2ae42e1177c46856a8425e60bb06040400c8ba0efb8d4f395a4377d4c2c128c68e6b30e358a73d9904d7aa1e517ef396526cb64d39b3b36ed7204b3bab1d91b23ca95b2ca1da3eee91c7d27b4e4e658fbf5060a79cce69be1d95252b0d7d7220797a53982dc371372969d4e06556507e7e7870a9efd9e03766702f217be1c8f7f80006c08d13e175040cf28b215deac6a1ebf3520a3ad9e91f9072dfe50c69d1aa5a0df73ad63f72831b055f2367ea35cfe676a4f7970bc85e2b58917d1bd449ed3d274ac40f7a515e261df3d067a277ae610e4ee4cf68b3a947ae8c8339c818ed10e73b6480577b2a13722023cbb09d3b378cfb71f6c86bd481ee09a1fcbb807338e968aa5af993697eab562aa4975562eea6b1169e86c75ef13e877cfcd4608994eadedea3eba55af19a7a55b19e92b974450a593cde717bf0d7ddbf0bbe8fef90816fecf86ec522a2d06a04ebbc50a1eafd67aa461a8a9cd705ece0bbb46cf773689cc19cd69607594fd2ebde06aaa1e34ebec001edf318fa22245876461fc46126172db41ae9ecd74700e\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 174f3644f5380c9d804287d8b58435cf141283eebfeb4e376493b401b812b525dca70833fdf626b043e70a71a9a54974be4b77b8fac0c8cd8b5141eb4c8a906cb16584b385124f2d339035906572e446d230cb60a0604e53454d8d0cfc588c0491190e2c26f46234bce081aab2c2cf15cd1d764baf46fd8b154e75e8be85d54c0b9062ee266e2ec781f7dbbe8764eccd13da5c107b46829590f6f28f595ef4de3744050fa2f721c3fbe1afe8250069d815c63273cfceb77505fec5844c21ad8e60a73149e5d7c3018895967abe471d7cc0800030c70760bd0d3d48d61e7eb12a0a27a91677216d0095a2a95a37f3c86942c1981dde4f7897a4190a270e962e2ba427b4e630e3187ab42cbb3f9aacc9c0f2eac9a8c44f6d73f96eab34b74dbba066c9dd56d32ba7df087dba9e479582bf73d5941cc107cad55c6596d4e25e39a7ee3704228ef978307605f2872eae23d8f2fc5d8c088b482e15adeda22a7cab9d00578d143d53af27b04416a1c3841aa88de6dc4f16b8dd320897d1498e4effb58a6d87b8ddcdcfaeee75ecb9ef64e3db62c232965f556ee3f74d73d2b19993e9a9b8d6ba56cc87fbbe3b7fb7ddcb35184ee2b881d55e55a7803ab2dcddcd3572cb8921bedf958185ee7046b12ef4e6190a314012006f8003aca93f430d121df1ada316ffe0b1ef85706e36ad2164cd1e40389b2f36cf10735e68e15022097884\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 34e01ccf88b7b25ed56f5fafc89ddcb9b6fade81ed2446b0c133f6949e73a1d68134973f59a551582bb3c28651b34fff77f97e91d947a96f269baef355697e15f4999d3b8b173c66c86eaa546b44f1aa42251df45584a938b40c6f1b5e1f8c58ff74f96257a044b10a70bc5075f9769c3c949dcde889e3b9c6d32d4eee6e312dfa2c74318954770556677d1937265e896bf044b3c0a03ac6ef1d82888a5a010787dc4a65a855368532b092a5f6c985dd720966fcd407d465b33426cd6e56ac30feff073bd4c55115bdbaef71c14f180fb559fa4860d7bc94b52aac8d121d0c0ae4c2a64ee32d1a1086efdb4264f4f93f4e8db096724f52d608bc686eb55f3e2820abc4384af6e4e4a8f9eca4cb3e52c43a67e673f2610ded69df520fec76d3aa50b9a6556fcec204cb959a0ebfa6dfb868068f583338e57cdcc2d2603acedc48c59500453522bfa8165c8e2c63e4ac97b3d4d70075c857beffb5db8df58247ec4842fda08a093df5ddae1cad03e374a350a87961408bf4fa99e5511ba42a9059a0ed73c1c9618ae0a300399347ee194003fb81f6e905f0286e1467fc0eef2c5691c0d05a480e52ec578f77d2616503061530de1346d1a424facd2cbb9a7c8da38d870e5f4b8cd406d41421c959101c6eeee60e092b2a5dc717f2caf292c8622d903856a266e31c7c342bbf09f8bc37f67f576a3e8b963b88ebda9aa31d093fd9\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5da09302fd2e6eb0695f2d027893f42d71476bd0ad8e1783f3015fda3d1b5d4fac1b56fbf133144bf82f874160a3a248e2c6a4da691a7db2110e4bd095d536e72fbde3b47ce0bdcca2fc9050aaaf2395686f98b8da83a7ad152b2f517125843b8306828a0d5ef8d4b3abb874373644e81755e7a929a33e98069c4d4d0a732b65c5b836c2b7ffc6a914ce02c2ac0d4bd5e67f7a395da04d8f24031d1bdad73eed9d08982216aac5a067d90311bffc2b109f9dc3ab4ee2c051e23880a675fab15a3ceebf15f114d79523ea5780d62a0785caddd3d345697b8a1a785b1488eaecbb863f8ba22a307bc835f3c832ce37de47a416136b8c2e559b38fe8d2b94c4cd376fbe209130206b53271f69789bd0f2596b85d9ccb000a15e3f2e7c50e8820dabdb36b1dfac83cf0a307ee46eca142eb747dd72972f0e824e9107f318036e83274ade55d53fb47069cc49cc51460f982cb712074082559bef436c501c968e1b73fae4adae5f2d7111a1741d1299869b5f5d6c831c69c4ab323c4e04227e435cf3cbfba1a3a9e6e6a64368027d5c385acbab0012f385ffa331db5decd358d44afe4d7d047ca4ec9b8f888930c1c6ca1a01106c8f7482ed80cecf0e244ee76e28527d8464f41395e949eda74e233282f50b6fcceddd3478be8b7825ac05f0f1f09617f31f79eacf10d90be50711b8d2c0a4e1f2062a3d6d4ab9ed05c0f6678f94e7\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 10877ae7a63a66b8249e34557c24145c4a5bbce1b2d7191ed8a6b194b5a14c6f0c75e157772c90553632c4a58636aec356e50bb15035b7409084ba68e91d09cfa3d090e1b4e17c08c56a3d20fbebd483df984b5f800c7724c52c19339db62ff9b13b2cb38b1187c5927ffe5728b8c7a66d3f209db3e2a490b115e6e854bb8b5fb6e390aedb5ac7fc93921399824120a24c6dfe8b084845e4921c5bdc04f0d3f9dcd7896632252b69727996b325e99a07fddaf055328685035b629c001078c8182e4bc79155405aac2324790497ca082e0d9e6b2707a011a9530fed0fb0e2568a05ab26e3cd1e613d6cf4f10ee619f97bebff59df634427584e26fa81cf8efe07c40eb910a7cbe463eb568cbc0cb1992146fbd7280064a8189d22ee23283f661b9e980d2403e70753c1bca7505ec92c1d688200fe001d597874968d14a8f3d8edbe436a6f7328218b69957b1526d22eea70992ed14526a0415e12534af443a1d8100578be888bad5e2fa18638d77dc5eb177fbb12045d6bb2fc70bd4ac3d9f3a202503611ef6b55b005f6a39cf45e3a896c5a726f8eec1ad5b68624347be0b4561df68afcbbd665935b4b5219d75af0252849ae4bdc9ae89636f7d0bd9533b0a18f94fa2ec5b4c4fcb63a0880619a887b710cb92b3376a407fbc6fbc43d5794dd243c7d235a14e8cc3e4f786c3bd57f391393d05c283bd9c62104fe04cef29c75\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = bd9586f52f2e14b0694a447fc111086141f8864f0d2464ed83adeeb0b702cc0dc501b899f0c1ba5acb0c0163191dc8f46e26631fa236289902949c087ef4968585a9daddac00fdf4430561fd81605f7f3568222da3c4cdddb9047dd529527a5d370c343dd2058d3dd3885157e4594d7af160e2443297a3c87c4214ae3ae2fb3c13a8ff39e1e804fbb39f3097b097a7d2dd568d885a5abdc3d1bb012349758e96b608050285ad3c80132390ae5fc9eddac40ca98d6db6463b8f10f79e4c4a98d2aa91b7d8d6b9c2536d8131a3d447a9622467e7170c66c72495df3f8cec11951db3cc6407ce75ef398581677753773bceb6aece44f40292d8de15e020523644acf0afc79e1381875b6a67168bf566665c4a4aab1a8c6a2a384437f4cd2b242acc8d8385cb39764dab2c73e2476200c2136e4904f8ba0479e5a6ece38ac8b4e99b6be4a2f12310b265a8470628f9d198d897cace6efd9cc2b8bd299696654ae205e1470521ec7ec74d2cfffd058a1bd1f84d72a5e13d2bf4", + "4aa8306d78319569635d492c639397d886222d5de46f82dcc5bd9736d401ba2920577bc71e7cee77b9395732317b849d22ea98bd5c6ee461d8275df4fa8a9acaadc3db528d7c53e8b7e797e6647ddf9e2259af83b4c56d63bca901e1f0ce5414b5609fc1edcd2a6a7121b41a2f3082a7ba6fcc630fbc7fff4bc2535920d6e8345e0aa8d6240a5f04f1\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 23da245bc1defff09dc4a0adc58347ce419109e3002fd1300331a8dfbde68f4b17d7e65b8ecaaa69abc14134422b76036f4917b7d991e0f51d168074722a2f1ccd1b30bbd6f3139f147d29ef11a0da1204d4ad115df67a66d4d10509abeafd2502a6b671a40746861751e7e5912e23db05d0b3ebfa95f0f3fff8876b6f01af3dc3d5e94ccc7582536def9d40facb2c6d91e0eaef3ef7753fa8830c71e6e583fa21d423cdac47189337f8cca61044e492b073caee975cd3cd33ebd548eee68d7220fce78ba2db17ef8ae487d2ff06e94d3d4ae67e3ff9d3d78256403744dfc18c5649d529f3283b51edd7817cc3ee9a3d417d4e2e583f13a36bddc93f078cdfbdfba1c8cc486b50e8104f4dc862d4cfffc7c9209143d43fd7d55918d326f022db836d6d3ae155897aa4a12af78846c94e1bb42025a796d594920011945aa7d7f41eac8c0a42252286267433c0409371d20e312423062dea435283d3857a56d1b47248190b73b358ecbc998e7dfaa4f4b89acd10b05b58a172fa58fd37f07b707a978aa4e26d471726240edce522d4083477db37e4e230031cf06096d373d65e4e7fda47d421e4d000b722da6326d9e8fa5f09f2685f6af3a51f5649e99a67010bfb695f3f5bd8a6027ab1eb759ef0a022f5bd6775e5fe96aa22d9d76b375377e2b556199c940f0567f09899874e02e8b972940fc7d7fd632efa97a617c1d4767e\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = bec4ecc1e9935d26a8a448266a6d450ef1926d3e0353bb61f7d84934d7c66d66b4441d21b54abaf9200257fca89ad352fb0247b5b65fc952f4d75fdfd2c04a8b440817cf351c4c09493191ede4d73ca55d4142f1c8abd1982278c60c2f9f5f2adf4a0d1e0ad8ea2e3aa1778a846a91bcf4ba4b9637e4a2ae49ed91379c2127dce0fe03048e78dc9c37b700089ab84b84cff7872fe08d0d773818e158b896bbd6075af6df1a751909dd1e5dad968ecc91bc6219c613a4ab902de6b0acc46748a30fef9fb33a335820d737fdb353f9e8e5378e9ceced5b8809906ddb710038c6f2c4e3c80158f5ea4ab1e2357bee7f01e2dd2dc81e9912d8b260ef4ad38e181d7f2d5b07287659e03351e4cee0f0cd4e4ca477415504a8e59168937958e3eadda0a9e366fc370c308ad78505a8faca416e94b7f27f60f40709959fe26c1c6ab985a1141537d1fa110cce115ae45a10a3498591800e81102097ff514551819abfab67d876df37e1d04557ca98ac6d9c14cde0bd2e0f9ccfd6e2571750b3a69519ff2630c5f1a08f22767e9500727433126a7da85d992cd14d4d946aafeb596f7aa8ea2239d1d5fc0556584669a8fe968c7d1ec9f35a601afc7d8c5e2620af5bb95fd922dfb3b8d013f5b87c3cb1da4b3349ab13135a13d45de49b4991eefe8c6f6b1bd409b2f827288986e986cf08c643420b160a642dc47afb7af321d9eee89af7\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6e5a44b4fe52c8104eb60e7d96e697c2fb0c7610fe17fe8c6d10fabc509cd3cb16bb4428935ec58fac84db83542ba166991f923a9889ee78088f0886deee107c1d0852ebcb295561c3977b2d69aa069e1c15e41d5ac47050b2221962413f9b5111a536a0a6c1762d04dd8ad96318964e34b8230564509e62d63b4bfd0dccafefc31bc44a0086daae5da89baf990e454f390343f1755f7db2bceaef0a310d07b7817a29371485d5abce1cb9b1e556b830e15b35de0b0aa977aeb1b6a54117bd787f7f9a64452123a3f29fc2e87256395102b6ac86bfde21c05a5aebd4862008be79eae34faaf324db09b5bc57e7e2650ba2d5a11851ef8c864dc5c04c58b132c208b7c579673b7419557d4bbdb47b2281129c72072d906e0e63f4e6dd55f3d3b2fc386a81a7b746a991a751d49d91a76fa4876b3c93c4b8e6bd9326957994354ce4d93dc93df5c5a8d115897d263857c702f2a95ff4a714d402c88b07caa43d4876ae5c37780a7a22a01e8f5a89ee1b50185a27318120a6d3dad156811ee818fa2d7b051d57c5a4f9b93a99dbe9630b3e301e94b04ff6bfd4361abcd95d86fc89046f66da80e29073365fcbbef0e7f29ea799e33302ee3a29792742f4a078f6cf86494c97e8b1dc2018d4a65ffaca21af43675a6461a4a8519e95f4320e2ce904f88ee8bfcc5d10a980684a2038b3dc8b34b5131995c684c89d01095b41b713be\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 856accc6420e940cb6ae49009afc46bc43ce4853098a25631d172c30b2d94b71268949c8ecb721a24f1d9b1dd0448f2825268c3f62c39a97d40bbb36cc93f36f9e78c1e87ae7e217a3f0f3b96c20b99c96d10d8a06b40dab75e7045f484bd6537610f423345df4b9235be70874c3754dc9131ad5041da7ce7c61ede789d87adac85dc9318b82985c83143ea1194c07386ecf2e3af4c1a72722c19649875378b43e85b8251e769e42405f70ae26d94e7b7492dc761accf9d793f5b9e3619a8192d8166ecc53679dc2bd1b8ff609d698bf92c75ac92895653c650ab205a9233237c5ef111d71cd13ae2cabe6c71f5164e896e9659afe547ed1321a6cf84734bccc19b9b93d796b54ee6f3f5355bf1a8f681854ada63ca8beaf9695c5da9adb1705ef06b3bfcf2d35be7793c48c8d8d32a1e2273714c314670447c51065619558c8ae80ef286048ced7e53d3c7b5293d1145b337a0ec34b21dbd3e2bac4897bc657737044c9ebf8c9d8ce82a33a56785a2f21c296b18435895005d1a5bef8c496a36c4608b9f7dff13bc7a741217b54b8293e8b754e1f1d98f9ad74bd3334f381726f405130509b815bcb09f34b3c34b3340870e7702b54dfab81fe68c20e1d6ec9f64ddbb73ef0768f3ed80babbfca7eafe69ccbe1bc8db50ed35614f1b883e702c04612af87fe3cf48063068abc42f3dfbe6499b8faa57ab75384bbc47c0a83bb\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7658eabf44cbf5777f121c459c87744aee55b520f3163f9753d7c21d6487dabccbdd6a54bd8186cc5cd68fde76e6eaba46443ec0a750a1824e7f8e7581f7b57949cc6c44b5a6bc08d61178617c4ee99ec700053562efee3d8c7d532082cea526f6e0949b686399f15658771949cf6ea8eb455587fd328de1315180df149bf764ce52536c82b2d1e924e7b7cdc09d11f7e8e8e1279cfebd39b8dd64902206e3fe437697b0cde2620da6f3252d09e2ceb52a6bb1a63b407d3ef1a0ec2d6dfe7a413dd8e899b8da238032241514b44add07e2a3cf37cee9cbd50bbdecd386226b08020652bb651e292fb4ddf6a0cf8c3acf9ba13ad90e74055418d6cf0ec2dee44fba207a2052474c6e397a7eb30a021d2e44b343624657d4753706df893b031395d0cfd831eae47775b2a4ee21bb36f294f26a1ba1011d16d5a889edfdf0f69e3bcc10d85dd89f54318aa6403ffa0dd3711516a0d13771f04a23c7679a2fead20c57f067e9feb5f43729bf6351ee3bda720d5f01d56688ec2bd5f760977beab14b22bb72885e2b7f43572c0bfda433eb65e8f8c7da81414f96454fde33ceb6775ae73ee119e25a8f54a9cf33922fb06def12c6c6e3cdf01134a62a81412acb67b7e63778d675d110d8fbeef33db054737c9c99b86041e96a13bf064264d3abbde65af598cd60aa827f4f7416d3f3b0c622c038c7fb63ea7c10691e4900f0505a05\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5bdf25b34b0452928d5616140daed62cb7916283165722a98f344e2fb86028f4a5a6459227502f558ab0e6d0591f28bbafc7fbab5a5411167acd7183936d072c3192d73aaf5f02ad4d31d0afec686a6c6c73cb0426c4320b57b73cf6dccc2a376d0cdaa2b0f86f9aac6bdc3700e5df7a75fe69881e3e0573167f3b8faba3d7be21635e7dd10ce82c7cb74e97611415f7e283bdac4b186f7b0c4e9e803a9f19220f686657300e4ec312229ff8cf69fb780964d14c3654df79903fae9969058533a7d0fc29f417f98c1c62aee7eb260a318404e64164699d18a16bdb934e5beaad513d6bb7bdf1f30c89eebc2cc02e623aa7f52532f2e89122f50ad8be9cd3d6476d815e721b789f148be254731e4d5236a678a5894b939de88067a8f70c3ff5355b7a10c2a624d09fadffe29c97e6c2b655b22cbc8f99a1912539d034537f29c343e94d762496ed93072940bc2d56bc419dc584e0f984bcdb4681920d650eac7bac0cf2ad14457566dcb2c4165813aee4d2891adf8979bf38e6d7a3b80073ba04c35b2d161575edba17520fa709e2f1ad8ee43ff5327fb8f40935b7563c0a1487701e964b282c3e5e294b5d5cb570d18108c2d8fb9f9e2419bc154e1f865b2512bcff2424a690afb6d0f582f4b84a41e4a211fe57ac406db5908ac95a5a26d7de6c3d7b4b27d4a7919c8362293e8c8dfe21675e800794d31cb96d9a400c15df4b\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 20dc09d6978139edbfb570a17a39704a662b77fe4047037275064346e761f2e198046a42ba19087fbf5f44977615a8c3d26950acb99ef1aabb32a99a5a069ba7008a0f8594c4fbd7010ddcdd71c2f5bd2ac972d4f2434cc662443e280f2e241f0c36ed47c276563763d09591c80d1c77fb1fd2ca278448f3d183fdc16f1d9acdbdf94c7a2408ebb7bd3883767ffd5f7a392ba1945c2ab9b03da850e745432f0a09c7c02e7065c8b55c3ff86b171b78b13c3ab933ea1a76c332a2690c852f4bc39e7e8cbff8d71f1d2e614c611e4ac5b9f6340fad1db3a3484fb7a295f9e7673bbaa8ed675da4915eaaf0b3cb882e9b9055ae4bb8ca513762c73a78f12f42bf3cc42c8e37eec06f7caf1da5cad92cda284d07de75aae9681cc4cc9974e2683d4a56a6af6c792f26a281e72df45ee3b2beeb7667e2b254405c3af92889e6add37aacd2e6f1ddb106d1e7de901f285ec7097b15898443d8f368a0756c2c937ef1ec177736e94043689d6ab04abcd7829d58e888335fc64d19783ef08544fae0ef5cda771e481217c09ebbc12e41981f56b68c4c9078172f575928c7003606f69c3d75ef2b397dddb856ad5625035c274b5bfdd6ee91045eb8aef15004160b98846c817cbbe8e608fb1426daff941e9f0d358abef9d8b52b59d3d25ff41a44cd1168e6ac32f09e86569adf3dd11c632ad14c43a4545575f4461bcc29122cbfaf5440\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 380c5334185962bef9ee8ad0672b4b997f", + "a0d1be3fad6300732dede2697e5900230c64f93ec093263e62aeea76754223acc93faaced53e558a7147b560bc19638642ddd82d1b240a7983bf2d7c70b986be5cf85abaf28b51599e8d3d50d49abaede889ad06644982aa010d86f3f9e9332443bcee685dd90d2b88a26b41a4bb3675b6242836a168917d22a5eebda2800d65c33da791c3befbb2bc72a17976c027686f967632ad94bddcac0559e82fce6918588f814dcf65cc3137344dd84ae82c00469308ec62e9dcbafa501fd6091e05888a28180b8401a5a2098702e5bc3c8a218f608586c1252cb5ef81bfec154198f0e2af6993e4ad57edd8f74f1212f70509b459b1058584463b96925723c1e9537086356887b450db8525d04f4e53a874b0919e663fc9bf8bd2848986054d56f3766fbeaac550565c8736b65c8b21cd68c3497852bfbc6f9c83f48e787fcf2be244017bef9de6c633d2906bc3a2907ebbc177aeb685e2ffb25be2933c39e426ed28046eb06dd9f02fbf133887fc930b44ceb52a7e45011d1cec76d4937399cf5f5310cc09f847c04efae92aa80543be893dab2b05c30c9b46dd8f075d4d03a8f5c6c07f059c740fd557a406f5147573a9d92c0a832ee25959239760ca0453ec1aea8a1c6a2b332d2a9700236b975b697640082c6974047cb2d3d39968761202701420486e1e271c5ee495eeb7967bfcd6\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = b32024e88a28fefc022e4d54eb5e820b5ce205d4eaabc87d3c8dd1877cd163b1bbfb3d3d29c3da78b98d31f2478e8cf31e5238a1d2849b39d4f074ec3ca96bbce4c7364f9a14c83e363ac17a36e42ddbf61fb6638a0307f3feb468ef526b0b1e1d23030fc6eb323f405c3e34cf211e5967c8d84ac436d1ef722650117eb5f74d4ec6e168bbfda7e372c1ad828160937067cf0bed8939b8af2289583f459e6a2e43aa942a78ab811c5f720cdb92cf6357f995dc3c176be981ce4e86be3b63bcd5ca84382031f16440c8cdbaf4327d914166af22321ecdaa02da8faa12a5522de776f23ff9024b60446bca0da45e5e348ecfebb7c85ee4952cf6b543019b5cfc9108d9edabed761b8522e49354fecfddb24fe08154250b2524dae76128f3364f78008a414d0c01bce320b32e8fd8bc820d4598e5a818014cf8ceb119e991722c95e2e4380f66d3e7a2e96b49cfe06dba26b3c6eb4d67f2c61a9864c40230df50b784145be40ad067c0acbbfcfc0d706b87137020317d5d5cedc0bbaaec40c16b5900541eb2c2dee9227f69a006db0554b7eabbd6f5789bddbfbc0d729bc36759cb23c47cb9b0428246351d254735d92816f8f1cc1bb2e3030fb8dec028af473a643997d621b06aab75d8261e9d6e17a7f1c222ea7b4f5c4204a1ffbf60a7a1989fcd0e9accfe8f53ed03dc6ec04ee4ffdc1ab63b581137abac5995afc7c52b11b7\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 0a95093021bc15ab7be12947e892fc72f12f5cb76600ee3adc0e536dccbdd235110658ff7d1d63b242b9e41ce4d6d8d20ffeacb59a86dab7f5729328d3f5d9d886e88d344788ccd8ac4daced3d4c7eefb5727037d5c073b3abd221c95207f2f7344ef4ff95ffd65a97f4c60a3a75901a616c9af07571bbbc25a9ea3f5caf40bc2790c824b6b31685fc92438b735226c1a2f730eb8596954be137182ee9bf0ba68606006c262d7b24360cb4c08dd5e0d144f8f0cae94d691aec91e0efc1c92d0128ed99ea7ddae3bbbcdbb1669485593a5313ac42f273525fd8dd6337037635571f05898baa6db86fb576054c2f62f9ee695f7bdb54e8224cdd914ce9ec073253917563f9353164b373a7e3d65f3d7860c9692ad5ecbd58ba4fb1c0db705aa2e707332df7573c704569ac92942fc8d7f0c49e973a71a7f7792ea8af8fef8055db774ec12579c9f32809101ab0ad92ffb5157f26a18343c3594a3183d2a92c293db280fc4e4dcfba02b4441048498e3ba8ec1cf92b2f54157349161c90f7259e2aee6572218587b99dccfed4bbcb6fcb2cb9fb2da566d5ce7075e5a8e2932ba467fd027b63cb7bdcad671c1c84b7647598506ff0a572c1762f5a3d9d84860bbae6022e4578d300c507219185446dcef47300dc156fff1b1806e2322b46390b4f38d65c8124baa8af2439ae0d04534cf0d53f8ca768e8c5341254885cce7410a06e\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = d5b62dafa940c5f752457503a90e75696688f04e3723f25ee50765f7061e44a4a02de87395f70f0f13c163fc6b458d3df6bc4ba862be1299858f065373d2bbb5d61c8e43c522cc92ac612c6d508593fc5bdd0e025458094689298a1e8acd76f2cc777d86a430c431c7b1b119c619399ae89a789d99a070e2abff83b93c2a79b8a066a9561021771be167777589612053b3810c12a58ae994ef56917cfac3fadbf9e0c5538301ccbeb566c3736717e32d358e705be486b19a66533d1898fc4771e87929fc25ed6e76f16cf4b9e8801a6846fcc1e63c700e809ac2e4347735a17abf9ac04f6a88fd12a14d36370dafe73e63c802b917b474c6b1bf9e39a052b4193027c4893757f92f6ea8a5bbb7abd4219d561dd0b765408833a84ef118d50340676f8e108024220968416c71372b74c5fd678183e632e814f286f329555a192d2d0d996d47a7de6ee27ba68540adc9b1318fdeb6e2eac326db64cbe4ec7b6e0b019c5171757600eddf9ce00a30591e0fba2fe9037e14d8db08be53de4c89b14849d09022e1b2e914045d9900c80db8af2985c19957c693430ce47f1492c1df5e43bf22800a56be0551dcac39c493db50fc4d47109c93b058c487689c41c5523eaf98e88b792740353ca54dad3f7fb0e143b85f90493716faf91a43ec5a640784e2ab58c5b268ee44ffff1a41b57373b2a6f605067e1323a6892a0f0fb73f4249\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7a4af45432969bd549b2425cfed92f2632f12a13d73f742dba27c886f2ed487ab7aff7acff1dfebb3f3c56b5ca804c3604c49fc328e680c3e1490e1abe753de6f798b7a4472dae1b7d992aef93aa1712fd2b016ddeab87557c5309056aad97a77a63c9668067560fe99973e78571c60e0c41f91dd9b6a6029cd911fa7f9d6145d34c4f49a46fdf0966b2994eec3707a84fc3a473d6d0279de1e8c02a50cdcc9a2784aa956d76a1aa11aceee7032a196cb03b1d374403700757c55363000553c18eed69a31658c77604792b2b9cef101d63c9a16db88d5572be93af8e1b683801bf058456dd033c12a7f4058bb9e55a8d318e4af0c3c62dc045b6c247c80a018485c27d107f6ff8d83bb234f902568085079a6c68042b724577ad18d82b470bec73af855d0b51cccc505fe3199bb7ebd332e7363f50743710a4812240114eeb1184a2bc79a33fcf69f29a61677ee15785d3b419f3d0a82fa32272b05b85495bf1ce2d2e4560aa0983a393b94b247350fac856b28799b84822567957a49fca2d4da6488c7216fff1d4895fcc8e62658643974b8c299bb05fcd46158f929446a536f8564a806e6b37b3058b2465881faa8157b7ec838998fec9fc251cb33630b1c5378d39960f3835b10aefa611bfc1ad0d11f736b9e56a434d2891bafafe8b42049626a8a39325b307c992ebd46f8e0a2a6a9f00f3d7e103fc18e7e6e624760735\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 591963c2164e2ef706cf711051010a9bb0e6f3bbe51e77b211431fb7b818873b0f4b62da58f970aa0f397dc65ab9c5a2cd3cb1cd1bb7b10a14d56af37814955db4e5bafaeb5e22956f2adb8b37d7db4753414a7551c287d618967bcd138c79ce2a8f590687285c14ceff93e7acd18005e64221cbe671f2dea1ece956227893031e2b4241a7f7bad418579bbd261913be9033102a03cdc1e3f509cc1597863c7a685921ca005011ec59c22382dede35f94acc06a19660f812e633d730b6ce73468508baf78a072a6b8428bb83f6c5d11df4fe14000fb0d8ecb12f8bf4fc811c1218d2522930972fbb33e0bf4927f51f5921d58ae4a63ed7499761937f482a22ad45efbe0d64e6304be819296a551f958454efe0685b921931a0e5742c94b8fa23ef472d0b718ef96476f27aa87a18562041ba1223ea3401df10ac43b433ebb8f434dbbfd1cdc509956df61c49bf6205a61b36b0df718ae108bd41e91724048c8b73fabdaecae53429ab2b57c7e13bae23a148b39639ef331e0c77ddb4068b1699dcfad43c7170e41c2446011e58ce1722b8276cd69365f798e0bfefafef766e41b3d0b59c8af8ef8f073ac6f540a2ddd6a1aa8628ae5100f0a2d9e2db9eb449e3d5a1c7f01e7cd52bc341b38cab3b26676103e19800391569f73d896fe4440bf3e97cec301fae4260fecbe9a0cc720f5b8c5cd1263456186d77e5c2052870db42\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 8e09ddeb3998ab05c2e49d3b184db86d9d4a19680e38fc4ee1116ab488b2d51d7bc13c45af9611aaff2e2b2278439606cef737361c2a44f705f4797da447154ab72eddecbdf6c0120597728983736a90ffb0bdec5787de559a58b187422143fbe160dbc1ab03cceab3ad8053812a68e9dc87df1610bb68b3dfebd7ec7fed78d7dba4563e5b1a30bbadce6886fcefeecd3f6e3314087a315c1adb893362a32831097b099429efdd2815085b78814a73ed1a99e803f7d10b522f540a2b3d02c6c5ae70f29fc35ec1ff6ec8a0779b6bfcf91c509d423118efd7d9c91fd011e678f6d7adfce905555c06bbfc4bf7e2f5b8e8bad468bcd1f2b3db9a346f68063032c57d0715c7352c48f1171d32943840f5ada9142c50f202f7671b5b4a12b6b516bcccd488c1717dc49025f49c59879a6494c19e2e27445cbe9bb2b3743ac8dabe1139465b8b81939f9e2fcc90b6432b1021a377f8ce728c2bee156d3127163f96be29af1a149e69a9d3834c60e7ad12069933e11e7d6ccb1f36c442ff51250b6c10502b37071dece766b5ed55a068e2b7329ea29b7dfc8f841a7cece5319a14749967b42931e27eb832ec749b9ad8b3ae0802608eaa1fbe4223993471f72ddb90704fa645cd0d9a25da15f2e4d79f949d0e6ead887c309c8cdeff60c5d1990f358ab933077dcf5e6c04db4388da1e93bc3302ae6b7e6efba0f8d3eab4d735513630\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4dfe3bd4db47837f8c4903e0db204c2d14c0977691f66b21b0036bb849c4688f1472587fc7e1eb6752e41ac492fb40ff14914565998ec30ec3d9963c24167002e1934ad79e9f772622a5d74eecce81fc5e3c02790771c3e44b9ba3eb82f3dae44910a2a5ccb3b4bdfe05d7d0789bbf79412fc27df50b3e7ed7e3016c804705dd24e060a60b0599714dfa46c4e229fc3380129b9e540cbff28fd367f6f0fee13ff47dd2f77c04f18ff123d8f0b02dc8979c9b7035ab1533a890e49b2e19a6122e98ae4fb08978af7486e3e589cb9924cd79026a3262284f8c8fa", + "13c8f29bfb2869a3ce1daa6f2513f939e1e9dd5c2ec8a8c3fc47f0620b38af8bf37059c24d6fe922ec1c9141a8e4804389e328607ff918fbb5e3de846479e71be55ccb4793365b985e4a2ac8b78ec2a40bb1f09ad5bf08bcd6fbcc3fc1eae8dbbc3f6f819e7e4b8f592e8e212eba13fed31483631e0bfea788de85ccccb45307e3a873f5088a3d5e6781eb5223d0e49dde2379b413ba1fce0197734a2a4f12204b16988d576a3d2de4b8f570bcbf5c5e008a9697e89ed47e837428d413a5faa1e98a73d92dae13da9802f615a37415d74e0622f30fb5f637890b28876da30cca8f36f63b755a8aa3f9f5a0490c250258200937d0d8371cc9fcf0cf8e22206a7086fc1e9335d496265a3ff0376f87724f7ff763f24c63c630a8da0ec4d762da5c4db57c5bd4bbd\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 42b9b53d0b6a1013f99a911e61b527fdb2c617ca3df908c74c36ee5a8e856a4b803bd39823bf093e191712c7f6c6fd2e08b0ee793f681ea52205d0c28d8d9cc09d7eb42a5227de646665ffac349718bacb75db619f5b04e920ccb44d45d6386cd697024193e68f39ca2b66906fb5575e9f0ab9d30462a8ab6daa8da2af3403584faf6c5d90801a599f9f6ad6aa8e0b05f9dcbd5da4a816b0e2bf89999bf462f3da047c26c623f3f00c928a1599afd4b7b902716d81e37c82e37e85a6c2e2cd6945dadcd3b0b4ab038b2d4b864358615d4c2d131cd734581f4542dd9c66318828247bff3a5ac977bfa6b6e279a5f01c339ff3d77ab1e35ff268f0be286a0d8a613410be65079062dcf700e262f469295d3392c747226c2a696e4c1b84dff4c8b77149fb9ee79a5f423952df41613715c021354c7ae88f4637d5209f5bfc5d9079fa578425e6b29341c12f7776a6b6386900a2422f950acfebfe4750e60fbdd26f3a9be8db57948e40d340b9ff6834b0893a6f4cc5da6adad48096348cbba72204215cdeb1ad26f772c7bf78ff1bf6eacad8da89262a6a5df69e7532f80f665285cb93b9f69a2aa506d652eb08e6f2592113619e32e9463dcb76d2b21cc298a130379dc0b368596e3b039a5bad86a88b0054225d608aa3e3ba729d3fef1fb9720c9ec19fec34f8002651ed2467764617b0a25c368747853760c3b31096f65538b1\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = dce897567a75219cd59c02c7adef6038f5e937aecf7f1abb14163503e7a37a958b6fd815d088421610b669c47dfb96283c4e843dd6552598d5a10b16f4b638ee97005e13943efe09764f5eaa29227799477e4e10010d11dd09b9964d32d2c0dc5812c282c24d6fa3a2322f90a27d56f8d7d457b2c0965f17768a8c95c109bc73a0130c56fc1c8a2275e0216409b79dfb3c83055b1335006f76bf2eb629d6b2512d022c1683d0ef13af008df0db74cae1a415570ad0bef58bbf6f41ec3d69ef7f53f098b04c477a082bf27a3c4f913c88f5210618873f8deeb12ed59b758364ddfd3d1b19882f085a982feea5fb71594e78a61b0600ff8d460b29af6d155246c77de5e65866dd60b02de47722a898e1948d3e7f083968c9fc9ed995239525af099a51eb44fb95f0fd6f33045e38113ca5e8f38b7fbb2cb3002ee816fb88f4855c97ffc9170e5678d9693a246dad58e22ef4a28f98e235c80e26d1d5f8abd063535852f4c11b74b899a485dd262ce07ec03032179d14226a9b3ccc46bce3add8fb4df08c4678f252e55a972553514403e1804ce5f1e2fce2cc3fd2e7ff72b09d0a1fac8a51e8b4d7391936567ddeff3d1da45ae4c022a57318957f2a46ae8dba2b12623e8d681cfcef63829df00a50983666dbf4b7aa5bbd597579520f20aafa8ee0f7dc2383ca0717d22fb35ed75c9dd65535fdfe95684c9ad076a8dfa96f67b5\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7996321602d0a9b5aa742393e774cae9e747a4315dcfd17077cbde30abf1bbbef88d208ff462cfaddd092242f6d0eabeb30638f50157bd844b80e02fb00ebf79b3d67f83534be4f0a65f244bd21b947c379c71cd3d75e83f26ddaa7e643c5ba00ecf7bf18a8ba71a5d200c53d70beb1781e4ed3a1421b0a5aa52333763ba5c739287a1d8f0814258b292e3de344030fa099af0ef5986145da163bf7a85473704daa88116b3a079cb8e4685dddefcf3f8cb39987200a94bd82012a95f5b564cb958aaefdf6f0e84eac82b93004ddbf4ac434357605141e0d03566ed55596c0a4f5e2fee6ca57aa85d454cc11b3f002521b3f59c7e2ecdf0e55f5152625f7f829c3172d278d7a7ec2fbc31ac6b09d983f73bf8fd8413555d91a99ba1c95ddd8c614e7595efe71136f69dc6903f28914b1127e6d6eaf473d56870221abf63977669d215dd7681e8b95fe6cfbf6592a089e69dc9779187fb88536f7ce15fb820018a4b05b0843a18490c03ba611bb07f02d1150ce2d5a2c87bfcdf83b196564379413b899912baca97e1d19c5af7deb1eb3991ca2733604995a2e8c801a1d813b4a65569238b961655e19143610bfeda30f0a6c0526774a622a15bf6d91d5ff7a3bd87ad81a85c20183e9e7290d49f0a5c2e080453906a5f1e67952d6e0e5097c58720519cc5b8b52bc4f63aa9bdaad6d8052fc9e53d670df191d89c5dbc2d7359f1\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 7892f12ddbd48d20aba080f3b7c92cb5c918c416a2f71999c89e790e92802968f683602929f8c37acaf2e0a7337e85b5f0bcb9e2e9a1208921d578b24eadf3bc8e130571648dadc144e07f6decff4ffe18a944b8feb38474d9df08db28b65ec155d168f37371708af138316be70103e8f4a8b372ac0d3a9ddeb3144db05120899f8759a37ccc93d0c0907c83e401f0f3118a76ddb2ef14c62a304f618318e2fbee1d5459e48437ed45f5c5efcd8a85e420d350f3c24dcb5f0feb1491019438e4d8f49317f3ec670eedae0d22fa6be70ff190057bd7c9df6411e2ae7cc0f35bec1066bc23d7f2be90b779e017f3b9499b32ce12547a98cb50403620eaaec33757bfad20c55c680fc8e5b0a9d8d9958b1fc377fd34739369cb9118b8ed40db29864975f4451abc2f0c9513ba1d6821ce65c05a4f7d0af7feb9267c5c890aff779b39e6782c3918521ed4a51ff049b8fe9e5d8f5cd9efd9e3b37dc3a0c61769fe25a3e75402121329ae5077b6e71f39ed32d6c6c3c26bda4cfda757bc42e5da1c9f6a99359fc3b3c15bae37528f1df374347ddf4684a5acacdc8de4aa5d7273cd91e29e84c75e197ea168004bed8038ad5b42343e88cbdd073baeb3b1fb7c8df155fb73b1f722f4454d649f939dad2b7ec93b309cc10eeee6634bf96b63aa14434e96dd714a72ffe2d581bad37ba0c73dae1dd23ee6d6743f457232ceb309b25860\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = c0a94ed1c9b55121960dc8d128d4dd62753d5198120db43451504287097c746d74b6be35cab6db103c1ae88189d91ec2028b71b05ee1361eff41b3eb191c08488bbcdde888f91d296ffe68b5a881611a104db77b8d3f7dec932e542eea14de6b0946cb8450455e40623cc9869b92142beabe3bf1e50a6312dea264402e079c5bb78e2f01dcecefbe19958a13078492535600fb052860f673c4046178a7f14f4f316f476b595447ae6acd2ab098f6c9a468b5909a8ff758faed6f457831583e52be6577ac693f3b51984888d3977e5f1d70f46e49e72d0cf46cdfa99047a9b684a2317c9b45cfd450e7a470d147677ac0dfbc6447b6d1dd288ea5769b7a6d6d38b536d952d256a1f5055d058eb5d7d8da33c35e2af92814384ab67241422c2124b30c8289fe7c506ef960f6fd65248b80638060421d1f274d12b5537a2b99030eaa05571dae32857fdae6482a6c989e987aa874a2ce5286d16fea05ca099cce49538ee82e2bd3991ac9aef37cbd9f5498e86c742abfe6778aaba7514ad826a3f53772e9e740df5fa8c3e8f88e836f3f74f743023dc31a49897c6236b37101279aa77f605d6f3b0b4b4ada7d2116ef95ec2ea3d93115112f4542a5d1309df787a78295a0b2572fdcb3f0e1eff6c53537488ef7622d980d9a8a2e33a9d69232dba00a6496da1ceecf055b78f196d3f67c80cc6931fb7c83934d1d44a3749cb19e77\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = c46b6e7c4963cf7d9b40d58052d59a10d3a4636dc71164158099e3d3071b7dc4c706bf3b2d8763ce7f31e7829092aa74d2b800c0274e4d8f203d33953a4b7a5624ad8b8742a2835c030bdb022a96354f930b8ab6608e8c83c889ac5df6c27823e0050c3cead92db5f3d9624d7b4af915e4215bd25cc2e3138ffa07021e5460a036f6c249ca842e8ae704a7c252c7de2291ce101ea28665ee436e80b5678fc84bf12c4bc81f35d813fac8e71dbbab0320c0997170b07e5f06426e66ad7e09afee86c17224671455cfe893c2966b1fe4ff0ba3db1e4ccf541567d7966e29b132290da4705e9769e76e7be4d9caddca5d2c1aad3d0ff87fbc136468e0a32583949b92a395d36d856002f16c251693f147dee1dbf90f05838b25aa43712c2d85dad962362976423edf11631c4099b4b5c4421d9686480765c87e0bb046b2502dc85a71af6cf5264e7959d5beb6e797de18c3fabc79dd4d5b5e6d8f5dbd852463b7abe49c8602eee12b8b0d4a7bc329722c79d57504239f331d27a62e63ad1a9050d2dc3940badda9c55631dab5ad2bc9e6bbbc8d920274d54879220989ebb6d5db5ed6bd2fa36e1510a76a17447d7b1d8d2e9787c3a98e9684622152eb4f65c04cef55670556d747db203aa62562903d5f2293ce38c2920afb41a0cd94c87cd5c75ba84cd5b4ad841c97f32489562a8571cb282b9047d93ef285fcb867be3cf7a878\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 48821832360f4c8fc6a5bd036c58e36074e0404cbab3edf5f78e9a9a939b732bdbe5909d09d084fc47de1b6ea7bd1ee82d45167fa49934fa17fe2986bfd540b954990e8db0513872844da0b0b1aab4e7caac1ccbe6ca1a58d2364eb0fa52664082e92d7e05e9fb95b0f27f1a8c1202fd4d5a1b97eb61f4fc80afe72c38e5792f3376c32a01db7ade6704725c3697c65e4700e4b4c94017d2c169603b65388792de2ba38af6c758bf6456d61877ea3af8364e8634621e1fd8167c6af3255a44dc56e4915d4ee2fa77b0e1d3cdc3e1a0b2038095a6462b07c55fdaf5f75862d69dbec7db8d6e63b2df7d99f8b4a98093fdcdeeb680bd1631f89fd7fc667b2f7fa70d3794edd7dc70d3848fcbf47d29132fc344d52b058e99d9146ccdb0fa16b81abb1f1144659eb79bc0d3cdc159dfbe64658d78c0a591f50f88fdeefbfb89716d0c8b7ae983cf00cc0eb8c14ec18f5f7317393dfbefd81774f89171bc1b46e6eb0a9f575c8d31b3694184f8f121188f10560324a67c755ccf816632d143679661c0be62869b20c8b99d752255b67bf8d3f78185592185", + "52d34267e82f805c0a6381e7b82fa862b1af81f96e7fde3d59d1b1f883822131f35a3a7f8607a492066d4958a46a339640533f431951c84662604896f04be007578b8fa0be96ae61946ff4d3853c021eee29541aba68f08c8ec32146058745ef14fc1fbef93bf601afc1\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 130eccf66275d0518cbf167b6f922525de36f21d9d9ad74483a34acc65da996d1a98825e1b39281415e8724533b5ddfacacc7afeff1aa28e1cfa8d079483d35debe4ffbdd9cfcf06ea244266ce7444ad91e66fcb1d4fe7bab93d29e69726f6fe45df1aa684304e160c2db01b39628b4a69a1ca48305628d3e5a82d7890a0bc44354f3b640473c8d8f82a313ebe86b07935a94e6ca4ca06170227984ce2f8d20afc9858246048b96ba4d7b62f7247bac17c8d130046fe50e7abac7e8acee2e02cf68d6f8853ac58522751853e89eb36470d8255f43924138640d7566d0d2d66d07d49d2056d3b09bca497ec882c6b6010829f88ff48bb526d7215bcc5613c5b89d4cb12cd9d41761e16756b7164b237cddf0937797bff6020a5158bc3364afb634d0c292df068ed29f5e3501c1aa6961566c61d2641bd3f9012c2e3e346537502c50688ace379155910d98104205f1bded745f40ffb766a45dd90d085eda384fb3f112100ad27f437e56cbf4e47180ae2d6424172664c11136986ed53e5aefef07b927b5c46be8c5849843472bf07e6c49f2f68eb6d619460bf183f424e383b5c858e36c2f287f5c034c9e60ef9a92ed861abba9c057227fdf2daceeec04faf1680751285615cf03734a8b07aadd81f5762776a235258ad5962af2db8c206552e9ff77dafe457572e464a0dc324d597f35d89e0cefb8d0192a749c8ab8856754d\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 4afffe50d1173d25bbc0f2b430589925e1cc85a5370b32b3dd4cf051fa80185552ce457146372792abe9238bebf6727e8da06c652ecae75d1a33b254a9440b54cdc0c2f1fa5f82fda4826ed0e0bf230690a451f14e1c9fea3939a141d354e2240a7d49d57d40556a84ea0b1e27f1914f7acf67865c68e52f406228a0be9d5619dbbd0b090928ebfd87a357d43218a0d63fb5e87cd85f4673b0cfa45d578e608476d6e6e7fb632399e5ac7bb65aee1bc43e86919d5f283ac30ad1b21bff19c5176b24a3c5991f098decc122c35e2f809b6afbf9128395d126350e2a9ef50130064c74e30e34ba97d33192069a286214e4d723e1464a1eeb804d68dc5408252f1c420b98ae118fb50e290b919abbbc379aa5a1a2cec88982feec6029a7018e2b6353b7ff5961dd6e44dc72ca97318806e24dde46dc0f1434c506e070e31b76f4b731661141604047e93018ce7a2cbf3c38b8234a30498d81d0120fa70eadf890ced155ad5d486aa4f1790bf59bd9731cee686b5d4d115bdc1245079defa9092e839ab567a6e741c8760f342ff0f004d6f71dae463d04053b98d5019407f0a885778f7c38d1f6fe80b743354fd1d4c5f7234821a41f6fee658500242763e339a6ea362db1e9cdbc7177733f17331abd97ac4a148c8e2c6dc7e6776853d37308f3a3fc1a5f2724ed1e6793651da7b6fe9e8e8198e58d8f8137a36ec5275622f1018a\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = d90cc3b01cda923057562eb11c013ec3cf77da6c325655a8965eb426fad34786b9b47c3849906135d4a7e9116ce1aa3dbd489345686fb7983947c03ae82ad06faa44c95b7df8a8bad4628a95b8164f75f59f21ae26ac70a3c60009a8d7fbc7f59650d96f19232f8c101ba3ed1127e89f2f8d10c4a8550b0ee5a163b3968c9e252f13a835faddb090d357386a96a0354ab84b119d8eeecd973129edade6450a95f3b8bd4ee32f20eefa54275c5f522bbde6906664d5e612c15b5b7d55beb1a36880bceeb0ec63e62c8f007a836f28759247f606f7c03ac934d1285fd8886540054ac8212f9fb55c01b2aa7d3726c4de0fb9df4eb3e883fc479e51640602b0d306c117f0fc48d71efbcdb898a2b553b39333d31893ac9d7fc2ba13f4334baba4f9f4147aa072912c317f229f04571e56f771873bedbaf8c7641213b06509e1d38e5191573842690bd17d3d16faa0e4263cd3576ae8e25da20037e4701afebbb0e3c5ba8baf2eba91c7a63601577406f7fead119d4c3f0a216f4fda7fa6b869edaff2683b52122cc60edeb5b5536c8583c39df7d1e0c61f7a5ee19ce7c879440258a6b07483210e3b50827d118d0386cb511ceff59afe6d6914de84d7a5ed447288e046440264dbb48dc9249226c92786b5210feac2318e2db91661d96542a6192e3fcdbef679be33a8bff8d31e66ea41cdae65d0aa18c3c460ce9731b14d967abe\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 7b6a7e872b1845f321814af7b20fa9879ba28e1e1433b718a6fe0e521fc8725e57e4ab0cde1d53b0dbedc5a0cacf06237b2eb795e89b8d2fbd0aa22711ad30849b71fd57d67f6eb6a2a8893d8ed68552c163811722b405330040917affbe2a746b4d13428198111ac3e4d63368ea2ee2e3db0a22fa04552d847a0ed9b43efa3dbd0b71e297c4baf9e30f94b06b3f1ec0553713460af77cfc71e537ea1f794aecb1105b57620042e75b248189364c27980f0e4b382fc54cb4b7b2028ee73d04aafc71e77e19e751b1106b3afbff80876da433e13e4607a84bd4e2de85cccfa94337d818d2100d8ab3818f7a973d7164831e9e21f1c9510ccebb4d4cdfe93212757ef97b40b947a10dc846fe5e7d5d4f492acb3284a318a11c12aa9c2828013d08c68f854d0ad9278ae1e88ba8d6849fff026126c04f4dd633e6d35a74585cb4cab87848391fd3fcc77412676ea5c85fca75d5247c283ab168b48173b7753bcd6c20607645fb51e21f43ad1cf5c1968c73e4da07933ec68829d569c5cc270cafcc83015fcb6ae48e6ba4b4542ac802f398428d969e1b2ba5261e9d7ecec0f559b54a6bf1b12727dc640c8dc70d71f2876227f5f1b2b8bb068e94140eb1edddfd4cec54e9b93e0d60ef2d36cf4fba069a72599a7f856f9b12de77ceb658ea7ab615ff3606804805de196309015e4d4f3c73e091e8fe24d9f49d0f7107bc719e816e\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 5a6bb1b516d2406cbb398deafa93858bf9f4e3d0229bf1b36baf7534265b53aec5c039c371d1fdd6af2ee2a5d6e2af244415fd630443cea8ba4d796f48212ee3fca5815712be72ae6a68f36b5124bb0d5721fa04da44e3a49f02d14a468340000e0394a8f2c7ac78801cde387dda6ddfcd653fa50534e204cd44c679be66f2aee499fecd63946c5b4885baa597ba16ce2cfe9af382879d68ff06139fb5e7d1ea68ba5bf4f3570a1912fba89d6dc5271b588e1684c8f0b9f20e7cb24916e87be1c4600d2e434b22d924260c1b934d630df3adb64b79662925b09ac8c66f8e74a49868f8a7ff23280f5a4d75c9711e59cdb24b3021c02e3dc993161ecc3b3fdebf48581b2984e87ced238cc797e8a173ed0df1b9a8461bb56348f272a43b2c8a065b83ff9fd80e78ab7aa6efefe603a3c6f7d1558c4e5eeb3a89673250a9e15a3257abca309774728813ebab2ae0f4d4cc4d703310a8df68fb7e0fbf58dc280c139cdc14be97cd9bdd8cfa2cbf14ce7cf94f9191b1077909882ae4a181b0dce8aba69c69beb752c80c7fa19025e3d3908108431b10e270cdc7ac75ab040a8f0522e890f1a95b6c1746b9ef2200400821dc4d85ce9efddbd51b1580377b36326ac6b0d88e0a7263c3815605a517cee5cb89bb118fc783ad3ed56700ac82412255469c38c6352b354a0e8d7a0d0a3ebb98791c18aee99962c0d3fee3d49180128f1a\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = a6f508b757f7a2299a0f259e025b53eaadb72cb0132983fac955cdee1706bb1321463634f707ccadf80291a45663c1676b7e7a24fd7a195d3ae8b1f3aa42ec55b5bf8102c1691a9f6feb4d6462e66219a9aa1a9c85c33a3ed123a6c563de615027becf2722bfb00b9427a641b6acca929caf2201630636f000e252246d979d027c566de5815c19a06edfba163cf0f78e2a73b926ed59e1874848d91a03e579289cd9dcdae852cfc61db8fe0153ce966609cccfac151157643aba1677749e140a81c5d4883e68d8a582c7519c9a0fd3600b1f813afe06b3f5039ac608f5b189bc1c5b0fc2fd2b3d91e936298b312bcda6554a51cda97aa9f22f7118f565017f5690fd500ab90176cac20c0251c5f82d691c0695ca35c7a550e3dda3a20c7e1d34870d04a01e9ecd9f0391143021a1328c74bedf8394530d5868e0fea177c02074e1d732fae99e5ef67de614753889d00c11acc07bbe61c5081659e2d9994f81b1510098a7f2d59a73569c689c1881e0370e00eb9826cc95b74569a7bcacce467701e11424f5d800b910606c453c7e908d8357f0333b829b10d2621832b5067cef0780c8ef9a369ff32569ed2ea2054ed1e25f2afaf34b110dec648533f0cfb4ae8ef327d8341ac054501655235b7dd0e8aea8c93dd656d289e24bc80e90bec472e876a0f1d508c09f1c8444be6e1030848ed6a891bfdb97677d30b8f5f5fe2aa6\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = e26e48dace9b39bb74735c99152cbb6703468744f52c44b21be6e3e2f9633842ef01ae9c38974b4aec38890f7cd3bd865a791eb47553b939c71979f16fe3b9d60c68545839b6089bccfbecc16abc2b9abfede4618d6913ec2cd7848dcd3dfd4c85ddbceadfd2277997e25239f66a3271036912d5974328d439b8935a10f84b04e29dc56e8f6cd851a52c69d658c369a2b5cee465b997c31320f3d9f8d578a25d28a43cf383064eea022780a28f4ad9f0962b1352ba441aca836189d2b01ac3094a68c18cb49edea1dd348aa32374e5d5ca329184d0139ad64a433e8899d41a448bab67f0350460f3bc081e32b18be25643634f3f5769e8c8c79589ea49a471ef9239086a814d4d8bcf53f1b9c9f327305d0d4e5879bb7702cf351d31e436888c63ad64ea53894c5c260dc7bcba2fc138c01b9320656a5cc9e9fabad0cc0f1e68609edd51538babcb4855e90debe0e57077860c4d310891405aab95c51c87d48d2ef276e1edba36048935f1883b69e6b09e84ebca727e6392d94d2325ff943e2d83800127290a6aef55c2f04faa862c17448952c7a18e6d4998d128459fddd24aa8298561e8af09d94f7ac58db509d376132c1133570a211604701a52c233896f20783b86d581474dad71aeb2a560d325d55e74abe17432143f7bae58d7948b2c743910fe3557731d75486f38bdc942dd1aeed216476ebe9e3b8833ef2ba97bcf\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 3e1148fa9bebf37e875a51c52dc509a08497b6adfbda1a63565fb63c0f2df6f463be90cdbebca587114bf1ab32cf3516049d3c6530ce8dc7b7dfc6a8c4a6dda8221bbf6fdddc8965820a36ceb33", + "fb98f37b0490caa2a9e5c3a1af0113d92ea9c6df0ea256ffcbf97dbac6316c6b5fc1969b5a3c390fcfdba370b4d802b2c3e53d9ddbddbc888bec7384322fdf550523e1492326434b77e26fa51e213c49606020e3547fe10b7949f6e734bb4ace65d1fc45b4a98b643cd0917aae9315833fc7114a154882bbaac999a86e9ca1e1f29ff2e4d3bf44aa91bee7ee18647a3ff9e033df28a9d34e1f3eea40c5848a39c29bd8b36fcf0264a58ee6586cb3e351eae22848e15a482e9288582c1505a917064db22909b81ea3718ff66c2551bf0bb72d210ae2c3568b71fa654993f75620a1e414fda3eba16406a6a74137752e0da1f9e264df5a025807547c72364682fdcca79dc040fd013b4b4ed3f83f5b2d729640f393a47ba0b4ecac45692ee7245809246b9f010896da355f4078ae0788a007d7fada58b9254e0b5eabe4e4749684c481b940a58a00db7d4e5296f4a5fcbf8a9c8f7ba51712ac64fb3f51fed9b866e86c5354b297796e66d54f3ada43948b5c0605b34ccd39f7c39112ea54d951c88b166c5d7190070e4022cf232161211dc13668f37f0b61602e51aaddbfa9c92f43ae42e057d89d94c41b0e93e27fd8dc8202a\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = b99fe6f7e3d7a622bc628c60f1a8772309c2ae74e906aa7e0d7c332f991629859edf934f7a38d65a586a646462fff53fb764c7eb9d74a599c7561834c7edbb186c95341d7f2832234537d8c7d16d3722da8de0c4ccbd7f68fa41e0cd0259ec3cd70f25993931690d467351b6d6e89eb59e36ee9a2c871b704800941f2dfca80e4ef46bbdaabbe3ab74ddaa413b6d8b0a9122112e925f193e0335071fd9fbb80486cb29683180a672bfef9e22bd992d46f996b5de54bdf8b3772282dc9adfe3b05b9365359223cf2673b701cf681bf97d9aea8f1425cbb8bb0474db547024220b3592294c2c08998061ab5f788ec9c1b6f9245e621bc68560446306d6579698350132a89dc650f77b334c2d720d5437b1e455627d2726d88aa683b93a17fc8884d0481d00765c7708105321d57f18d64c8268058c94787acecf693da8c7cde204feac0993af053f5a91e78ebee07072a4638eb27a660eed29c4b4183639c51b700eb11e7316750426da74c9bea545051959b122753be9c709ede76d5e0bbc21427f95f8ecdcaad7e9076d1230b363a492bd162441fe22210280982138bb1e9ada871ed719b7f9f7a36e4ff69a2ec2c07d7adb421dec61864e608613bbc539c1666bdd6c2daff21c170d692fe923651f2aee28a88a97b3ee0e707dab503337716cf1c447fbd181f71bb521c1cb10ff2c64d23f1d64c8e1cc8c0b963839dd1cc2ee\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = d9907f701a9e5696add73ff7055d62ade27bc2f945327aa20f2e36cb9e67666293eae511e11db7de1602493f321a8eb295ab9808c1eb2d0b10eaf78002bdd6a7e65c2d279280b0374feea4b9ec1772edd57b3d0bee6c2c43a9f6edb9c6cd4cf15781ea859eee86e1a354c277549960e05dad60b83348f43a2a8c16fa2735e8562a811bda1ac318102c2f349fda3827b6176918bb8d19aff195d9a7f15d3397bfc437869b322cadd8582945ddaa4ee0741614b62ee2d322015b32da2ae6f3bfb4a4bc63680eabdc8ecddcfa13d56932073f7f96aa5944831a0bee75dfba553e6bfae8cc67ca893116acf8e7a9920eae393fbc40eb34120ce135659d95ae285aa00f8a77431a9a8f83e48f0840bc9fdf891130bf71e2dcaf090b6a87d427816931c5a77ca04b8431c4c96e9b9240dd1b89335653de84615208b9980ce33588c8a145b373f4dae0bf1c722a90f4a21939f9d400f4adcee397a3fb49bfbd3c745936985400eb9125126c5c4d76dedb75c11b1c2a4388d45e1dceac5d467a8eed5cefddbc663ef3c8d853ab1e09022e89218b042752955ebfad1447bc113e21c0abe32fff54bcb2b68d8f18f7a7189d5267c662a7831512b5c419dc34d452b2120642c31c0ffec828251a464be1af84e18768697e88ebbad72fd3a656b1eab86efe5223f521867359aa9202ce7a3cd29e2e20763e660d3bf49d602fa15cb2411def61\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 8c1e88b818fe8bbd9d82efbe963b9057e1a9758a6d3c22c9724ef766c3dccdca775bed485ae98d8da9a1fea495b5146ab3106e41e6c73e79290be5dc0d2345af061a8c9143ab809ad84e42564e6484b9711317823af7cd16a88669881227ec2879d8db30f19ce2e8eabccf6d4274809c6ff9fa778db591937406e3221650c3f44e676e3a9df7a6e405bd55e756e3cf19c0b7b2796eca70d836327e10f490d26fd6cebb73c45048c9451c9490c3ff4966a2c48e5c41c35ff982d6bc6c97b5c99dd8fffcd8c3fcfacd65e9c4e7a3b3043134891457649770a622384e9f2c8414d40609f7c3644020492fb84ffc71819713867d45ce5611cb35925b5e1fce8274457ec3608cc7b0f13ba8dbb65d3ce6a3451b5f22d3a62340f0b16669c5d128ed1c93af2dc2c466267d7a09bf73961d14e597d221ef853f036878c3f3b66ecb34a519bee3ff8711207a0fb7816d2d9cf0d5c752c0fec89a08a6e724600f5401e0712296e8c6e4e7f585f72549cf54bbbd3e28d3499310390e644e89f509162e005187b9e52244acda342884dc7964a880d59e5174363bb3e84310fc78d7d2d2b6cd70dd6e01ffb9fea6567231a0f7114d5aaf8741500f834bb03e43e74a1e6515e64475bfe96b8ac855a107dff12d4b4f6f24fd7dc5d5fe254bce1d946522c50387be15c5d6660ffe3fb9ae1237538c5e8f3fadc3c7b984907dc0b7c3b902b5d570\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 568b017c1093af7eff04290be0619378435477999ece4008f8a4829fc668d0f75dc7c30a3822decc8df78da28ed12d1780c4dab154887609e2ecbed4e64b22970ec500567c6dcda59979d284f7944bcdbd511fb0e0f3850869e523c778ba53832e1c0806bf737340f7731c5126874f99ba0ddb38f3c2ae5ef879ee0728ef2a9bee6e08fc2d949de4b96ea8a6974b03804ea2574c210f06db4fff6e435c5b7400abe6baf9df97d56432d1082d46f98a302f2ad7ee19cf60d46103eaa1a303819233c62dd76fbcb0ebb1b48fcdbe462fe3dcc9d56b7ee57cbf07988bb6afd1a77f5795c16c261702fe6eadc228df8b4ac3dd371e10fef69f261b4b7460d174724fe9b676c91e24d62a996e7a877b7674d9b0cb01083077ebece7087004377a4450f3eb28abf73bfc3be41ca03691727b1a50409aa5321139826cd5ea3d830617bd1f8e40fe68b5f3e2c7d43dc5ef59482df795a7115a20dd58851c2bb42877507c099dd7a5cd29931ed4153970d4d1d29b36df95d1460f06396757657e3b4ee7b981c810f870702d48ed10cbc11f06595bf72386394c953da2e187a6db74b673967b1e71cc7f69d89747c3f7ccda9eb4f2e7df3b780bbd73ee75e873e5dc486991385c33b25a6ee5fb492bd51db6960e3c9452eb559413ba43140ee14d7fdd5fab8267320e255ef0d55e52680c5c518349d242c2ac2d7d0e3933addfac80e613f4\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 8770c11ccdf5fd9459f0361718db0e130720d2eaa098e8d8229c44d348b8c219c6af4515d33c86f620c81d8aa2bc8aeb4a6c40df8b8bc4a68dee303a0a1d67e6dfd8a69ec38ae7b09dcb4d513a2600e1107f55eccd5f5f1b95ab3c5d31bb56b3be465c3ae323b681d95be15ad1b048bbba2f5325a030098f2e0d54db13760f635acbcb1fa73dbfc695f62720a5ff534631108cb49b20ba3fbe339fdf1df7e14bc583b2166104dd053117a5b2b35b97a0f241cf4dcc6933d25bdad9f3bb5ae606d69dfc33b042f755c725296b942edcf87ebeb4aaecec9aaeee73c9bf04354d76130606f6e56729a459bc950e5cda8a147ce4f578796e3ce1b35d544d2536dddf97628e9acb3c2bca83acbd90bf6613d2bfc31c6895868c360de56b6087c1015be043a166fd67bf7f7865ad46184d68e500ce2d919ee4972c257c2f09ba1bfcf97a712488dee5db462e4fc964a7c7d7d99536f62c4b7ab2c18e8648deff7f2b21fd79a91b1d9eae5105d1dbc5cafba92ed803aa94fac2a7443787f2c22dd65bf1be7e40822dbc8897df8fd97668f997f716b460d0ca19360281886be8769da08cacf41deb7c497aba4e55ff2ab3e012a559420ad9e7730e9c218feec1ce64abe1f76702923eedc2b3b21c171af98e4540548102c586616e3ff5f97ae843e909d07b5b81a198b16d8a8b1b55ac21a35fc657e52bc6ea549eda09e53fd9e8c4f080\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 0edea314cdcac3303b62b333b886360c775d9170e35dbb92d5b113e151828f8c244bf9ef45c607f3b84fdbe2d6775afc74cd8584dcb7b36c5c8deb47af8839c0cd4f1eb319bc88ab0a233f7ba897f96e60b506e83c42b8c35da4c1796bd33930c38490925b13d6ac1800e76a0ec011fea9a6b97cfc36628e519ca8e8422645f61bd26efb3e963f7a3eaa661487bebd9abf377ad9e9700adb2ea6fc60dc7186644afafa6abc6aac644d24efc726147a99d0a745c93ac5ac0d17a0c51308b3d4ad430339543cfc3728902268d024e35c14deb8454d39fffd638289862c7547653346a14760ca700350137cf900964ef4497cf10eda0035dac8d6cd9c1e8dd2410698b5fe3899c2d62bf8d7812c538512fb9ba593ec583643ee162174d7e2095575ea66df5dc6f970fe1add50a001a9c4f8b7f730ceae488d5d5b8fa8a08779a7ead3b49c6082790e35e229fc5532519ab6dfeaa190de89671ee7ff2cc2c06f0a1e056a86bf6c1aaeb02c3c50a534757cf3eeaf899a4866d67c31ff3c480cdafc2042bedc67d26de464032778e9db384df0664246d2514d72e1ba29b0003d051814c1c40c1ace9d4b2ab2d38415dfc6d2ce822de2fa3fa95b3f507130d7664d304f6b1d6efd67f817eff71163d9cc46c0b0069834b60e17948ee101d19311734ae77151c49f283417168518bca3d5ca2d94b4ed525276c363dc35fb45c06a0f14c1\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3adb1ea98e1c3eb5412c117762e5b5e98fdfd21e7b51e4eadb5a59704615c2b2d0290a14385bf3daa87c13d374628850a2ac4fd9a1980a015f1a2cc9743d6b6c0e8190e7d9620f7aa6dd7171823a3fe92733921ad95004eff8a3485535fc9ed6bf2e3ff99628d1fca044bdbdf9315e6fdff6d176165b2520b44dba7c17c4f833228ca442bc76f96c957e13c4cd1e3c3bf83d983e92654a55c56dfcee9ce354ee4064a1ad3aad03741825b7b8b155f4ee164890ccf470266468898f8822c964a3f00e3576a4d82e680e0bf9498b291cec1c55c963f2bf6354ea30d17f26c755bee0030b2f97b8c0d6e04f17295df8652a1df84639ef453fd9aab01f1659de48368c5761813ee64e9ad7acd06e5a1f47a26c8fa9adc6af2868dba525b01fc4173fb2", + "4e918a1982974cbe2b341ba4056d412cc9b24f06bd5055bbd2da558223c3b0cf7a6dfe97b10c96f669280d69d6ca0fd72d3730b9a9ca6451bbf10ccb6ea80a0ee9896d1102f5a6364e54b4c3f7539c5b185bf90debc8403e060fda58cbadc305ec6055b221651af2cb18b2d1eea8f34e6b5f7bf3a4eca8cc172eaa0498528083913bd42514c832daecc0ce11c5da1fd7665c741f232cdf01024c83b4140be2f34b2f550511b5d7676710941d5363a2bc837f55bb6df390e95929e2ba1f4f305823c9751aad2aa6307ebb9980794c0daa95362430290d6b1e50161c3445bb7a\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 86404f1a251b770891f3fbe1a6b57add1a0d6ab6137efebe6405cf37a00b26f0a5acbf61d0fd46524780d554cdc4d6c6f5dd100e3a2a90c3de522c5491fd433c559726e06da3a0ed73613099fb17c7b4d3234b152ce4e0e6d26220d49f5ebf9aa65d34a83ac664f47ad1e247c9a1f2916ee6e519c2b4a3eef4afb1049c5f9351e15e43ad8d66d0512edaae3dca0e43dce60cb523e22ec14597c6c1da3d571142b1369d2dcc7c829845f1c59d23d29389cff0f6ddedc4b18241d266de5658da7b49118623b212e69b891b3698dfd0f63112d7a63af1be9a8f8ba88d78e3eeb5d846f71c0d5f6ec192f70a686088953e6c4ee1e6463e6576fb18806209225da46eb55cd888812d563f8d0dd403cc8faa2ec984fb0000a8a847f9572f3a0447a2575feb220cb928abb019e8f624d3fa1a6aed2c46406dcd9b13857f08a69cb59a9ec936295f67632a04d68230da4452a4adda23c12af159f0b5fd5afa282b454365cb5e47c696a00e1102b1bd7d478d6dd35cc68a91680e6f7ebfe8b98086f1cfa0ba89391d95733888093878be7d83ed58a0d758c64077fc42089dddb2f4ab25b312ff2e4cd545a507b0ba5e98372c9f61c8f8e854cd455d03382f5d95a985a45e17b5cff6ad3e759e4c00fbbfcc73e1b2f695f9c103f879b05f0d2d7a8b89070ba578a56bbb4f072cf81db13bdb2cf4dfbc744677b1a175373d075533fc99078a\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b6f794713172695ae6a9b6c10489f3ad19fbd363329919ea81824c7e394c38f1498a9bed26e7edbe1974feb098d184af43cfe6e2ec6c3cf9b79451f96e0bd49a09a6779a351826461c17167f47370325599a30aa61365084ccd505e90128ea8f98dc54f08d0e2531fb03c109360c3fadb01d597ec51e98df1739737c6e477ba5f4de2d20025602fc5858900cb721da6818b12b6d9ec854dc5b0a4d472f20a7dc6a1ba15b55c4f5c6ec284c9cdc723e208a31c4a3a0ad5316af8a83839060dfdbe9e80e7048d4cf4c6c70ae1db30597d460ac727b41088e21a967e43974048482feac3b76d3fe25cc61626ad48929f83a3b17052d5ca36025095ee06e7a767ce2ebf40e0882191942ed7f1180cb0c449d8dd35306e3c3e6d03881568bbf4adac1274f354e345804e65bddfa54c0fc340fee750672f9a262ab2b54ea3d4c17b6f7a0853624507b320fa94af2a162f401a6898b2cdda7a2595057934656863945e8e3a11c4897fce95133fc4dfea279e94464889c58e7483116559909c405d4754dbca59c65082e9094d116bb7a6d457f9d6efd095882cf412f6aeb9c04fce6508ca47512fc9b802a57c8c9880f66c9092894217a681f636d284109f2ba1ecc6fc62103eed28c93832c9f5ec04cbe535ff9ac489667d48a1e78def8680c0cb81174bd51dae40df4106d65239935455863389026e123165348f46a1ec846c1043fa9\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = dc886629819f93db9aa51ff96f33a3ed76a83f8aef11178e596785c068195b1ca53a951896558786b2cb3933ac12cad77197a94adcc77542acf2f0d9bb733ec6464c14dde15f4b1dd281e6256a9886fdc8bbf4d07cbf314e84692fc3571e2f26a2b7fc44f51bedb668d109a7b7181b2be96663e9bcfca0e8b73e79381bfd95e9ed7a1622cf1934fd18d0f1bbb81b000218a6ecc7e26b20cc9a8ea96c9c34742cb7243fc8135c89a8b7e793bbc433ef09f9e3c8e3a813b0831717ac076a5e1cc58f5055745c96d25422b0f435844bec0504022931b3cff27a4673cd687d071b0442eaef44dc01ce9cc24e239da85963a5ff50d16d74ae9b45418c5306895bb597bf64e0cd0a06bcdb2f08bb35e672841a092ea9723ed665129aeeb40fdeee7d843895a575e2dd757165247652b76ee39dd379b8a3c39db7f7c8946503f8b1e498fd97dc12f847f2f4ef269eb37e1d602b2df249ddf3f5c4a99ce5d0d4c131d89053e8ae848a2a6f281f7555fa2a61782cdbfdb6367a5fec9c61f5c4e2ee32003529c33c8a4f70e30997cc4a74c69e107aa658122c32ab864e1b33f7bd9bb0c5329e0d3195bff711972fc11a10580e16c0f4049b22a955872172f8fd4cc406485af45c34beeba96a23e78183a400bdd3a9d3328d5d2b3b9eb2da2f6f6b95f04b6da502d0b4b1af9704644309ce39378951cc86a0c277fc2a76f1e2c39a8a95e447\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5a8c242268d4abca2915e7ac989fcc7e14cdff7982763487ead667bfcefab1022daae19f137a8921e24e1326db1618757c3210cd67c72a893c09e112915446587367f7a7469d0cfc1f95e40fd19fbf653ae1ad505a71d12dadede3a15721d3c917d7822a8365c5724acb43f45283511a3e8ff6e5958974eadd1a46296a7737802d04291f32bb7bffeafa8dd1325173faec9e3932b45496f0aa7fde91b1586d695684c23536068f1017b837ad2b21238d7ede902808f2e756db620bf145ae62fb9de07fa748d9f0d98599358eba3ac24571d015e44dbe3f4227c369e551005662ca42711877cee27c02a341005bfd393eb42a1384088ec42b4ca574ff548bdec9e1125c67b396da765944d35654776043baab5dc6af360d799cd70a6255a5691cd5d02f6cfacfd6d8747c735750b1b5a6746cafc8237d33ad1d13037884a21b7ba5c897405c34e4ddd4ddffafde442ebf0e34e88b101844bdb1542ebe432ed438ac7cf7f6a1798e8f81c0c296e266a710e83128c6de317df95a01fd60fe899bca898569c14e89edbad7b847675e511429bf22bb6da4f7f01f832916eb8c92e53913b433ada43e2ae909bbb13a05c174bd8827cc181984066ec687801c325e1b694b8fc2ac14066053c20ab52f9e34c3bc4b11584ce3e5350522f1eccc7846541b9f4857a20a13caaffa99b7c0c7c7575ce63143222fd9bf24ee8193d087823a1c\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 3ae7c74e597df065e162d4c2a183a7dac48f6281c50f5e9ed4382e6ad0df3256a29c9423038c5642c17d2d28b733c0cc89eabe1889847f3e883889f4c37cf61a812573f983fdb0c8907c4ec15a46efbfc66a3174e0d7f718ad28cb86bcd3de32912321882f342b47bed73b243d9c01003ed17389b08101775ba979f7c15dc2e27fd7c67249b38b68211373592c59c541b324c88271c21144e924e78b37a40da423f9b61c59d1af0727ffa6e90719c73230feef6462571986185b47dac3dcc73818e84155c9c93075e454c3739c084d952edf1a6ce208cbbd60595fc18ac560c095522639646cb6787930ca76b09fe40a13a2987c997f45dfa9ee981af3437e4fe92cb1e909716335142cb98b73428d0f86630d08b5b48b9264a869cc68c0c25f30774d145c5067646a43d161313d0bdcd2e4602cfcc1ce8ebfc91873643542adcea5806c7c52895d77e365a2665ef6bd2a49ea86a96833786ba349f2ed6eeef4fc5ad45af3f12fbd57bccba0db235ac56594d9b9671f9b8e5a5e94ca19d84ebf68c3d588b16f14dc8806cdbbf7968f67cd25674ba28e051f35dab89690834111a1bd2fc8c20c12a0b517fe059e2318d22882e6942de196d52cd1a63b1594355fc1f4937798060472eed1c7919d304e6acb8ac022fb56a32a0b48da89e09ef8578a53f150ac4796124e101c531f5aed8bf2a010638c90eebaef8b9d4cd6871c95\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = b489aef0ea7a3c7171468a91132d30bba759e3506289023b8d414e5b42829e81ec7257392fad82d2d54cbc2626df4f906ad3e899f202df6df5428ab992c4e2c33d3b4812c3f9eba9d210be1845b37363698d6bb3713003277abb0363b26989a30c151a65a0589bb25c053760219bd2e68c4b5e0a999b64cf7959e05dc427a799ea7f80835b44aef449c4ced5d708a9e12f82d3f4340f98eb9836d1471d76975188dae04bbcb34bbf5b65ece044397d3f05ca734ff978cf3aecd6ef8f2d7569e7d7828abee068445314b9ab143edd70c347863909393d217d7cc35a2e3c12285bea6d848bf0cac7530e306adf3f128044b83e3e2a0cfb2d22feb0af4c1e93ab79b706c903cc0a13cf6bf17a7e23ddbd0e92b68957dd1cf80bcb83a76a9001136712956ceec4523d9be19c71f4455f2c6aaf2f6dbe187b50cdf25855b3d86242404c5544919aed5129f07e2e24511c794aaa75112597a792fea352e1c8230e7ebdb6d48089efd8b85e09fda8d8f317d88792fc7ec2e9693edee4dff1d12acd568c91239b2fca4b6d5fb7bb8fea899976a33fb0e72162b1c9737bf84992d210f6374010187afc02fc27a97e07cf6604d8ee70277189ae97da0a865f93307c8029358ebe4ba1b04a5e06833ac0e468cf1ddf04490884c7fd5b776d578dcf73ffc813ef78d18361c0f4ddaa45afdbd02f5c4e7082ade911b2c69d0bc64d6238cbbbf9\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = cf90ee6813db19fd26a6fcde2185d2bfedf5dbe16a87f7b3e04379845855450091675187bb43cb4c8394a38577b88b750b3659da84c6de73c59c63baae39077123192fde07b630dbeb1df55462541a0286ad6029f93f61e954d9f3aabe15732d0130e530ebfc1dff8d846b37904ea72781ab7b8d88e31ca5b35940e738e6594f9c801ebacb2aa227f483f63d52d2200d42ca1261e21cae1424cde46b0f58973a3d73eba6f372637b3679aa31336321501f1c0b28e735829f841de63177c3772020cd446482a76c0700403859d9506e32c99afb0cf674a23c5275529467e65f0dd6e9b838493a94a0af4ee21719270ba83b19f93eeb7705dad959b837f2eb9a6c6aca8d6edeaabaa43175477d644fa4b2b3f5a8a243b19868ddbd4a199f0521f4f00b91399fedd7f7a45df6ef145d54e2019ed8dc56f207e1a4d116a2dec57aaf68b2b8b847524cc1fd208063e74d508bfe648dd8c3d909b3cee1b675ba8fc660cbd1010bb4cd7df3825c3b2279321a9015a1c88022c941db129684e1a7d2817e8b362e5d9aafac8e675923ab8e76aff8aac56e8a682a789487501076f664e16afb5ce76f550bcbcb0e4250791000585ce762594c2f48701654691b0d7b09770d7c9d4b24729d4138995654fed704c47bf1b3341552e1143788630be88d44e7833e3e76f68f3cc81695d1514daadc12349e5e4cac57453e262cccde41238396dd\n\n# tcId = 57\n# including garbage\nmsg = 313233", + "343030\nresult = invalid\nsig = 45c53db9a2345c4d808d6b309de82bb90b71431fb3cd7952a48d3aa90abcc9bb7801cdcc1ce324d9cc9314137219511dbd7d5f6195bfb78c85586ae9940ed29ed74ec036f94d440c9cb6750fa3e1389e3cf86acf77671e31c9b6876f80225d75bf18c2b52d96ba2274c91e1c6a0f18c952800f0a975a09e5b17aee54d6cc05438086bb71123bd403b4ae9e0523962cd1e0e5a36bb0411f429657ab0715269b6581c788cda17e806bfdcea6c244d156c01728446e12116e34d3739227817be078406660d8b84881150845aedc295cbf1e83bd3bd0bb7f2b397a3623ec49de587a4d2577e28d288931170a7a119a74ea9a1ad37e06f2913b5884cf563f4b367efa900edeb6948fd81a24877a429636dbb68d94d6a2a73514bdc4f198348f72acd57d022e295ba9829bedf756003818b722cde1e3e65595b28df3b95bc98a59dc3377d0bed0804221cacbb1f5a4f3f8d3eccd8837078447be684afffadcef59c240747172b30881cd960705d88c364cd022e438a1c200b98ad602246d5802ea71a0fbacbe62502ab0f1ed31da96ab5293c9ab6fa9b52674619d3525a4fc5a9d5ae32814f8f0e284a16d0b7917a578692b934bf3d62eabfb2f155328489f89f90dba95b2780419a410fc637b953a9d77549a877ee896977e166e3aa11123d9bd25ff54728453c4b42a5b493dfc88a3ea188d59bf48b8d75a608b8d97d198692483d4\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 87f22dd5dae36089e206d23ffa45fa5f0b05ceed7b35b24558d9fde749403d1a90929a5a34f25b6ddb44c5e40f2084b77393edd5ad8cdc3bc2853a1054524838bc1a4f70f2e043d4397c339aaa8a8bbf918ba192b225e758576e9f3a0b20a8d3ce79506223a4b926fa1bc302b98d37a53382b04d8e76e4739689b0094812d82e29148e297b217173790751036cc7c800b4a80614a18fee9b4885ca841a69ab44aeadcb81ced8612ec11596aa136a2ef0457b2e2c4924eb87dbcfe51ccfb4d229db275d8b9956c4cdd572b0255d08b8efd9368c056f8f147d28690f1831ecf26d70c66533c87616ad1dbc074cd0d3b058e93a0b6df107f8d713161fa38d916821bbc12bb654d7d23c59175a38694a040d1ab03592153d2ef7423bd4f8eca5741f91ac6ad4f25e7fd47d1f41ce63a886affffbcf71ec1bef39dc6ef09f1928c35a4d126a75332a31bc9ff8219f16c1226b872a95f89d03388084a7e2b55f9c04211ec1fb59966fae3446f9390a4a3607e6fb23c366401131296bdd961c76e5f1f19eb25ff8d887cf5f0e28b2a95bd8da627cf4673ac32b368cf62fd3e7bc9e5d1ca78ee406b71c5e965251d8567d9abb05b16dba5cead301c77a4771f08e3b290ee778ea4d7c43666a388efbe5b1a163e3d14417c4b318539344e86592e46374c1ca1b1423fabbe6bebe276067ecc25fc453180e0b1975d01bbc037342cebdeb5e\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 8d3e95a6d3e758dff6cf320702f6865ab1baba3c7bc01e5e6e1bf501e3766e9efc7a3e2c73d1ae06dbc4025219ea6275a92a4b361eab888d100536e620cce007ba3aa7a917f6e715e29cbeecb28308b873d5e3dd4b619c484b9a3d80567570e426b15942c30e9d39879099d2b6e483af3752397342b7d0fc4e556bc8348af4ad280a3d1b1ed25f18b866a8bfbed243cc5257e1b1e5b5a4527f26c99691f2be8bd6e6ef75928672458bc4cd4bd04220b81ee70bd0111041d612f66d57d8b33c251e2ef69d693777cc9fa8d5c9299d2643f7cf95f6992db44ac5524ac9f3193cd4d1bbd1bca5309a830d023c129bffab5441c406572fa40b22fedd76fd23b04f3c6871baee621cbd5dae7e6580a6930105f842f9b213580485b11a01b9788b0c27926f6094851345dfb47f5ef90abd14412173694b8a14609bcd35bb93f9c8d5abccf1697a1c81093afbd83b972d5424195ae6aee02a7c91dcb198440e305b265b1a6e11c1d2eab3bf7d2d4bf17a1da5694701501674838d4e5d79c3b005a4cf08a6bdf8cef2ae75b7e054ee6d15ab0ee04897560060dd514d073d9352d50141e2444c9eda715e68b8a6c24f1e717dd53852fcb5bcfd0d2957f83cc67a7c5f6ad9235ed8355363e02111925faabf8f78f33879b7205695217b780fbae9f69ecf48dd3cde100267a914a81ecd021ad0fdaf2a0d047df68a0a1bf73c18a8cee865de\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 5d1c5c91033b1025d81faea8acd768139c112a3669ce1ebb101151ae257f299ba5138b7ea2ce123e927bfdcd8865dc09154fb2adf40ed7ba82d8e757ddf8363063259e8d30d24b169d4d5e98b911ced54d88353c7767922c502db33bd9b4f4dccfb6f5335a0e1839c31405f4c960b9d7a60d7827a405f3bab6296acfaca844392a2f3bb824029c209747e35961a9eea605b12a93134d0b24fd6778dc10699bfc160ab12e39455c027df447bb4d9c915ecfba78d6e66e904c5bae25a9fcd78b84690902dbadc14f636acae14effd84aa28112252e0706262106fc02ec191e891807be31046134ff7922f07e88737ffa9bd34732f87f3d459a53e5e061febc44daf18d0df04cf125ea93064acc3f257652ff1eb9aae4aea921dd89fc28fd7dcb2aafe5d9366e0f6a11a7bd0f67afb62d12efdb537298d787c328390951da3d778d107413b238ea66c766c1a1c3cc364679f8f99098a1cd2b7f9505e7626c6906c837deb1b1587e2c4b680c5a8133782b863fd4baa6b879a292312abe76492cfee03c20790e5ff7c768f206d0b4e3138d46cc515a25bae0d2cd9219f78b9b932a2671097ea651f709477c1649ab3c8c9875e76efac70bdc70671217aa15c6be247c367354443c7e527065fd1874d6edf1826600663eab61097bd007478396be2a2d837d44bba28766048aa02b3860b46cc71915798787ed59e06d836f46ec0c31c0\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 2b5eecfb4064a56748b56fcef79277e05ec827298359df48c41c75a65355c23c678d616bf25f08f44761ae7dbc7d161543b4394c5687d762c85fadb0eaa6e098ade6bb80dfe922b88231fc296e269411bd40ad3f18c6afff66a4bb2599628aa6fac25e4eb996cdeabdf6700327f73f26905ba5923a98908ea13f326538e1423805b75d6637262029c345cb0fdc7c6acf0897f138eb3f7b7976fe129587d4485cbeacadc16fc31dcaffbaeb7bb51c49a4f8bdb15e14a3d0ba958f330ee3d7e805db7474c4a7bfdc7f26a47cf82ae35a589559ff7b39a60564a3fc3b9e4e759bfce76e1e2844368d6d92e0e8ccbe74045cb3caf0ffbc470fbac748f72b5455b9ee38a615bfc5009923890802042a4d273fbd51bb1b00d78904ba06b0d5c425333616af7de7fffc8942a3d42f79ea6b3c5c0696f810e6033b0504ae3db2c6df83982bea64c1d8043573ac3310ffc17e210ddce4b61abf164a5e447591e072b67d01537b525c5388afe87636011ca70a0f2e75f3afa289a1d9de2894e7f8377baddf252019f4770eb1d99d4a473e92f9792066c4ac9019c2e0915a74acbfa9cc8882a4ad243a07767e77246c58618169578ba6a24af4ef24fc0059124668ff988e58aa4f654afd81383ccf9c80e2efd7b7f65aac3369d4cab253d1725a414c169d5c25d08bdd809af264ddf0a0c0d95f1b3acc71a1db00bd3efff553ea78703e54f1\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 68c8e6796c0cab6fb142bd411354b642469102ae094ef94e1157b704ab4be36e1580adf1ceab32e1c94a2bac154b11c0d80a84284a87d5e5a48ed09f08639be9c7349e2c8b6d52190a241b0afa60a4993981b12a59a38f2ff89e14cd8c765ffe7a07fd6aab3e66aec6b15ba042dd6576ba9526d8a53816a8dec33a81b4fc8b5e6c4447f4db261842c12cd76a3f145269c6a488f6c1baf116624e697270f10f8eec462febc798bfbdf095593271cdf47db347da18f4c470472638b711da67654a6ff54147ed86aeab70f6d85ca62c4a374cf56d0aada38e75c8611343b3bbbb7a5a49bfa8ac327c70cf0a16bf8a700c95fc761a0caea994b9a51089dd90d4c3570717102f965cf78d2015bb6eb19711d51613220be1c9a964319eda9bd767d8d42c6390b19f053e759e027cef3f18431dca9ec303c175356a597bca8807e72e20c71f5d18285e96eaa66ff632a1378d1a38a76c1cd7120c5887a8b2583d64ceb3f5dbb9a0ea3151e8c9e86140b8bbbc5e00b8f1467b1f7dcee49204cc435ba129dfc3c714f144f9b6322bba7184961b496039fb5f015af34b55e2eb2f8eae26c63a99e7b4a04b43efd61b69b670afc39f5e7d5806320f9a6f8c85babefb617df537e2228f85696dfe2e2cca3c057995cb838eb0f39a390f257241de5f1afdbdfb33df3cc1098db7383bc9b47a3c3c68c3f66b8f2028d4176c00556479a9d32d96\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 523c906493b202dd0ce8893f31ad828c81f07140fdc071f030e6f44afea4fb067dfc44b80edad16a26a1a2ee1c048e1479924f114eebfef6976d595baa77cebce5f955eb34c9f0a6d4d2a0518deef00b8a3fd673508907b7c46e8326bb874f593ea3562489dc03315a5e29f58223a110be55c37bb88509369f84e218d538439f13d46ea315367696299f3966560d282a2c835a9479709242ca2f49d90a341192b32aea1ffe69a2d2444eacf3ab92c083e8593f6ba06cfcb7a0e843d6b830c7b2cb9e9bab1249348ec7b97accc6415c86353fdb158b2008a27baa12e08980f216a724bee7632c9c49595c47e61e565448645fb3b349699ea3a8023256f76e8df613f59364aef561cc970bbf94545518012d5898ec4106af592c5fee551861c7e96659e47f133b6c4e7b63631105367fdabeb3ce38c033d5a965a4dbbed1aff66104df32d237c0264e44cd938d4335fe5c67db6e8be9ca79373dec2631985854fa010cb5be92922a1695d6e47e013a0d7728f3a0dfd519b54e0cdabdc290f4b6eb2c4e3b102055aa1d9005520f00532a8ef3e76d6e6b2470f270aa2456c5bea1db924b863b9749e4b09dcd186a0e0fbca8b3b2f7b98cb64e3682659b3de80e3ad723344269e908c393e8f9b72db5776d51262e9a59f275e56e612c106182745d0e5e8d5299860e631f97b0a5356534a7724c5412ddcf52c85628ae591f40780149\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 30b0c596ab84978dc1e37e88cc7af788047ce46c06f804c749322c0ad6bf2bc5608cf8a7aca3bf695a922e826eb5c3e64b46079d23457c9fb0b98aa6acb470de05fa612e9dfafcc492bead178ad8cac673420f5da5d609b518f1d0b9c0faac154b9310ed12652988fbcd7d5ce757d0704a5aa0b5144345f85cfcb5ee3138dc86cbc291713e50908718faa9badfeebcb73cef9a687db4b811d996ad92c1a9af7e44d875842cef14ee59d6a1f335d4cbb9e41b6155dbb694e15a1487d664e5c8e6c37956ad1292958502a1f4dd75e08efdb1ad4276fbc5c31804937cb175bce6e0", + "f734aaad59ef27c77ec6cc6267bd250455027581565cf91bcec27f62ca5e9a1e1b8b48fb47f91a086ed300c09bdf5e0a4cc36e7f4fa4f431cc5b00c7f7212dc321e9d483770397bdd8e1b22ded6d01ad2d12ea4253ae223c786b474f5751a046357d7caf4322e61ad55c2279ab06dadcff635fae5edd2dbb6d429759a173cfbbc8d3d537eb6cda911b290c0b0396b4b04bcc9a59a73b985b45f2a91612df57fc760a7eeba04ab1d8e728c7e2fc461553eafe21d2af3882b1cf95381c759714603e426748977294038ad528d82e8338f7403c78d78cd4d0fec8f6b0f8cbdc1fbc33f6d70f1cf792cb7066540768a44c4351319512ea70b20831b70682b96c1784316a1be737826e8f4022bd4fa84396f8dcd3ee4ba71542b6c6bf3b3ea9edf150\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 824ca998fad6a19067dec5785be1397c8e8b341c82b70c02960ce64284cda341bb38a5f1f86a428bcdd7085e939157ca627a18a823b8e3acf152391a8bc1f527cdbea011e44e8450749f0bd28b4568a30ed276d3866d2ed3bcf48e1e1cc8d9687e12736c0de3a1c0693913e39152d636210a3a50788fa9dcd5f747505f48f86b9a406927321a62e006b5a0eed073266efd9fe8d942bc64d1cf32e525e7dd9a036fc4e7229ec141ecd24e0ec67aa0e23f242c04212649b7fb8daaee515737c0d0a1b24a69ce324fc690d6ea0195ffe3f6f8969e19eb7505a56661243035edf27007b6e63bd5cb3abfd755726662a09199ef1a84b3a759cd86c469c5a7bc672cd4e9987154486614688fa3c7763d608f09ef07fda12b257f2550dcdf77617147d0c6ac25751aaa9b8e68210f94c7b2022a7a2659160e74d9bda4d6549a2bcd0930106879365ad7b807bff9971c6083147bb10b89bfd8611a2e363d0e0b77193ee746203faf89acdfd0e85e9efced46c0bf1f7d61c7778a7b8c091da878b5309ed503e9986984a56c857783501237326644b35bad0c50cab3f238b60d6fc63bf23176ae9a6d61e640e5b01aa20469fe5a75613e9da7131c97ca654377ff4f08d32048c99eea9414bf5e60f5d69d9f8c8787e12a4d526febc52b585764df437aa13b50f471fb9bd5cd6d265fde61fe159c4cc709bd27dcb3f18e333fb28265e9db86\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 844dadc18f1bd4b8bfcd206b0eb2163a3ac64e5fdabc81d17058fd97fb5c883af60bebb6f5a42e0dbf02cd66d3bc6c46787f581549bd22176d8e9b75eee0c10f64052af5ab3c02dd64fa87613b59293900fc5d2ed715d6a022ddd1572449233972a6b39b7c80ef408dd083e4f69ffe1ac2e7ec58153ddc52743c0a4caa9f58bdf44b4cf6890bfc99db817702bb44637a88f13ba92408d53145d693970ce81154124da6bd88cd96d731d0f248f76554ccdb34adf41fffb3c99c660ebe4ce501ab96ad52d184802ed4a66823d44b0374034841e4485909a7c7c888e01742d04f85bf9fabd39fdffacba9e97b3b6cfc3e27bb2530739275f3cd02ca0b4cc0a5b9485546bab8c101511b3d7f1ef335327b10b618cd7bf40a043ed02ee667d5e23277eff4b5d4fb51c92a82fdce10e412e03100c2667c084f54f3769b21dcf6fac728ef47fcb7f3fdf52b6243c155162fa63a832fdc4b48e650cdf17e887d0d37786061c5263a7f61e966a546584e454b61d2ae0b5365ba3fbdff4739ab388c082883ecc9385682c74c3057755ac90cbcac7dc296f795224a902bba9428fbac5cf197d36ada194a221cc6b36d9a93ec508dbeb9abc740cc736023c5298300f0dd3bf6edf0db417af44727807ee26020d33ceeec49efe751671bc06b5f4da2706bca7a0916445d11777725895f741a3e2d137349f43079a89f049f78b680c2e9cb5bdb\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = c7ea4cf1dedb76167a8c96f7e42346822c6785c94be056d0aef3918c89c243d9a64adef8a7f42f736a19c3688c8ee5d013bc633fee0696408d28c38b9548d998677b3289c7cd8061751e0a7bed4c1ce74d85f66715eb31974f28640e82190bddc7048dc84f747bcb8f74f3567753da72e888e29c6dba6efbf4fd87940d3c707064fce7e600d38318dd1c742b154002a164eebe1e57418f30292f61ba4b2c4bde76699a0f0f069ab3949c2a97116636c6a21603d6e8a419099bcb19eaec3f8d6ac0c76c5b9512f7a0962297aa631e564aedce4d41f36485f3112e2ddc08145c0b02a87067ecdf6e256f70a34b483065c9d15dc294d1e7372c4bf45991a0ef9247d14c8de0acab93ea0b87892b103fb8c1823002c977a7d390b3a3d392c67b72ceec6af72b9f500dc92050327a286b8b9df09a68186c03a6fad8210184a551f6f2545cf86562d978e8a6f2aa697e059c1f37181769058ba7b199150f165edaae00f85a51670c2ef79e2bf4e8c4cc0cbfc5b430b763205e2f208b460b3b70ae504e08b5237c890bbc7312e61823aed4b6998abecf0835f6bab7c6fbd729143f833c1e5cbcebdaa7ead5b5a135b16eeca9255cce98983f3a9cedfa7a01d1c2fd179172a56cd661b642b52ef26a51e98f957c8cf4cd96bcab7b216a48267e661bb6acb328454d376cd3a2367bd47069b2daa01abc3e45dca349710dd174ca55ebe747\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 19728d28c3d3ab395d47846577799244469fe195b59730a81e7bc3e02416a86a496d634d704d0a59dbe865a92090b9e37e3a5a0a76a18216f5641eee2a1a8e58a25d3c96500db282fbe476758bcd0bae998732332e42efd1c06db3d3d0dcdc63fa8955c06c7bcbfa968272d4c9f618d2cf211a156b19656acfeffc8749838fbdbbb033d6560bb2df8a07f99db7f18f850fd28aa5d89d1bdebd60fdba1f8b6044c946ab0e53a239e449674c5b9836d5f5a3a9eb1ffac8cb5b0a8714a8fe2e15b6e988b371e434b82891e7896de752216426e0769b11eb59c826856df058992654db6cf4e8999ad4c57d67bcf505fdd3b843d2daf0fc11016d64c554b17713ff838ca03ec5896ee6f26f90fad63cd44f78bb717ebd2c839b655fc5adf0e78018c5ebfc9422bb7efc669e4dd7ab1c306d328cd18e69d16a86b63f0b832e08144980c2e1d7a8c96636d4f4907f365959af5b5604408192d11311199f468ddecdd71e80d0e86f31f36df3576dc0823ee82a0bcaab62afff548201f054f7fbc2272c3dc347363e5b0fd78658db5c91475acf7d02a425ac53cdefa130e2686769daf742d05e06f79d0320617433e0f48980cf09354425d96334a724c1a3628e5fe437b486113bc5ddf70ad93322057e7cfac773fff134591e5133c18fcd49d5ba053ce021ca13744ab764b30c0233546d67b43bc253efbfec35f97d881c3e4c38fc4528\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = ba6fe199b2287df8633e89b1a7f38d651092d2fbbdf6cdf6d852590557497bfe731ae99c71b145ea009b6cd17313ced406f0188f773a4e8bf0e351decac56c0ce582ba1924d2d305ca3eb1f10ad87c869bc232a83fd6aa4d9ca4ab22b83dc5964f9dc4a1510032bc409c037e2367ee5a7f6dadf02e54137fe04e84468c424a050e722848c594d3ec59325842ab1ffa0fa25c107251e6d86233e5d43e9d6cc2bb3006bc1b5cd53417a23e1a880045995abe2c6ce8e54bcacee477e6c99e04bc3740b1bbaa246217770b553eec19c61e3267f9db9e68ae8a2ef216c253a668905398e073ddff62075a7aa7ae9530e588f40c18ac294e1d5c1771997887e27d2f07d20ea76989cd12785015cee5194e2db5fb736c2582cfd0486316ff3d3f26f19a348af147b77cf6cdc6264a38761ac270c2ec5d857785abc53a3a5d6d8a05236366180eb7df08765297b384a8e267994b847751b25398671453aab2770e1dd2448d1285e078ae5a561bd233a0ecfa2a4a9264a132beb83eaab5de5c29d9b0d2aacd3b125279e81336700f2ba8e76e756f4411c4f76cfa7580622ea86fab035acda5dffa60dbfea9df2b03b9540a1b89076559cf5606aa96987a5b9c46039593726b6c19c70515db21760817fbf588cd159b7bc56803f1c275533fb59e4913ae2b7973a7dbf034d58b6948a4910b5dbe688b2a2e48354d19259edff55c49527412\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 82c99abbb7e54f234ff2f2645d4267ba80f4b4cc7e65a52702f1f735bbaad8861c3d57052d8da51c478e2863d2e806f9ebbaee76625d07be4c49a0fd6e3f8c56f186a43d994bad73eb09ccc7bc3ecd47d05defbe45b5615cfaa2630a1da049f7000f4fc398ca1a969c9debe2bc244f7eca92374a3d57794d5a1b7727b74a9ac3e0343724e6e23cc3645795bb464e505888ba01a87b089659724e52a4fd308ed0452254395eec76cc759b0b352bb5481f721fdc21d4cd31548d11c31541628ff58d6978cb0f8ca0659b53312229e79c17183b727a60f482dd8afe7b212254dfe425cf54c48aad515cedcd0e1184ed757f7d5df9fa7664f1dc2b950de557af0a7ac06782487e40e85b2864c9bce8134ea2ce6112173ccddee031bd53bdb63491d596d43b8b1767018fddb26703f0e5d84fad73c8f8f6fab38234ac60a96c0b6a12619b9570f54491cf86ff7c00fc0414e6bff2ba0c1d79ec42de7cbf5a3237c890dd6626ba6f0b94ece47d616da769b66670cf0e787606903eee99f74f30d453ee0f03a5d5fbe16b1f4954e37af07880e779a913aca04a084e234feca996362a6267304b2133619f91a1cd5dbc87320f46fb3d13637eaade44846fa6dceab8ae8cf591a9119fe50cff61ef789dc2b3fd7996e82d0846a5db6dcd0cfab96bff1dbe14047b213ad6da8229cd281f47abec5c1eb24238eef1006770e5730ff270d168\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = a735f661613e78684ccee436e49d78af41a89c325a5d2cc8fefd734c76938ada09ff8ebaa3bbb1f35546fba76e74782076d56cda9a43363c3ec58bdb12183abaa5c50f5ae337ea53af2dff1148ae87825461d294fe433711c9891011f64b2433a643ee850d2227e59a1322a318ea66e3516a8a5844ef87fc4ed961eb55c146b6f98a389455b97304158283ccf03df52471e25d35a9c4693eb51e326ca0a2ae719af93388119365dd06ce0d942a810895e1ed0427960148a6f9e9d65173933482d1babbbfc2f3053d6ead274529254a69a903d7f2d15fe3a347e9e737fcfaf724b7a7cc21d02048dac0e0607aa7f6a7a8e5de4edb2f81c25c7973f632bfd522dad78eb6c628775e12484fc72d97e6bc35b8daf68f48456537682797cb66d4252d01c798606e440142f25859c4dec2e916b3f006c14c329ad67e6fe4f13bb0522145ad1583aa49239cc596cf276ca2e5894e448275a474c9353d2e7e7095cdaa1cee50d967e459b0619d5e48e32c328e0148381ea3f4b5a8afbf3e33ab58b98209d5fe152cf43af042efd5dab4224380e6f209f151642290513affb63961864f35ac85eeaccb8804da6a10aba85eda5438f9aa184f96412a0e205b6b8baf5", + "52e0e89a338cacf85eabc390af745694c51e26c877cd0c9c0e38f83436219eabf9dd23be5604a06c2411a08dec7e15cc6eaa99899c56c8c9fc151b838b998e8aebe58\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 0d7d84cec3b897703850d770826b1ac6f74ed87d4c5139a1121aeeab20ba0ad83447d7e767f2394ef5b8b28cc431ca907ab64d57d9419028471cae8d6c6dd76ad031f06b462d44f3c82052825bfbc4924e31ef5a89166d90402e082a01ae289d5a92b66ab26a9dad5f279dd39694f291f6113abb9337efdfaccb8a94cb49bed18e2a79865882d24074bd096a3525a6606ed00a3378f867a2ac2e81c4303d59a83871e77d4098f8fafdbf2db9a0e00006e9305dddbf9774d4c55ff925127df721679a0d701aeb8e987b6e061874b5a48a315a3758d398ef265fd7a14d76cbc8a2681bbb3f3cc3ef7ded37f99bf9862205b333d644945dff50fc6b20288b27591a204a415d79c9c1e1a088f9234edc4ecbe49e7951e08350ca64163d27d838433183086f8f5492d7a4c7e018006e82610dd7fc9b744419d3bca768709533e70ad77189a7190f5d1de2e55e31e68efe3724239b61dc8114060b69a0ef2a720eee08162901b05a005036752844caa02b69537efbf24dc522010c7eb53af96ee8bdb033678ec96829f4fbc33c94112c87d945ebdc3334f5b0fcb399b3733fdec76ec4c1d87b5706eb8294ef3f06877a33f311d5533180addae563c57fc939cb791404eba064c8f0009828eb2315b46c266d7352c563a41d6ff038258c94b51a710985ae678fba0a4731d4303b553085162d35440c453eb223d2d8cdb58cd4c348655d\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 673e324d7cd249bddfd4cc0fecfbc59fc92528386045c2c8df3ab0673e631d675a321752134e30947ed7d5cd2124b2870f8777c32ef7e5e8c76b51d262acd2e0b30904140979ee18dc5d6e7e3d4e97bb75825ada5631a1036e8aedfb194de2aefefe38827c13d528752d5337a752d3938ccb492793c99e7a726683ab7dcd9fcbe3fdd2908fffac6d866b13c9617d272b16b35c73bafa10bbcb216f44a543a9c75e88ac85e06c45cdcdfc2b0cbb900dabc11de036fe22ea06d33bf844d1371681c2a511e1c8a475debd0701c67b6ddd907818c300f32fed341ac4fcd7a356d30542cf096bf369dc95e35b59aef2a7c0a3b91e7ed4267e059398e282caa40d4cfd407001af2e85c78199ce9065944d8effcb1a330ea5cf5ccaca9fc448d967ac3e7bfbe1f2499700aafd222fe743377cc91302235e6446cdcde822ab441d074adbd175135b0777588d5a08c6e4a752f46b7e1d24b5179efc3c0e12068567b5c187d327a44de9f8cf2d4346a309bf91995faad1fa7b62270665bfc9d7ab4e5e0a0bf8d86901e5c904170fbc818d2db67f7a341bcf44a13b063d53c81fd7f7c5b83ad2554e5e624b6edb708d0bf1a0b45b0c9a087bc711dab3018615b5f41d164330d5f95dafe67bc482dc4183e70d3e16a4e4d438a728825d30831eb95f59cc65649b4ee89c01db4c013d96265bc85a55ee62fb3360e4cbc08e9dd1986840e8acd3\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = b01220c67ddd48e204e77994ffae3d6f96790f57837b141deece461202e89f15a4487990e4f5a703c1b24110aae87a8378b7bc5bc8896d51df2d10020ed3a3a3ec74d17db4024c2b23b7b7db958b4f8373cd3800f2acda5848c7d8ab163e54d49336fabc6c3b5d190a8fc78614b4b8ab12dda7846e4094b28decf8fe91f6f6133e2c10c6a8c27338f820416745d2be921d92b1ec557a40e2153bfb6f39e2ed4c462e8d6cea5108a715a857c3e0cbe905b6c9c71858a92aaad5dc8ee34123a8a58fed92edfc68053ad492d29197601994bf8edd7d1f1f86123f0ec55f8b8d15e1e0a9fdd78543f16a7b79a48dd9476466d57d2f0bf43ea4a153c093e2144e53e2fba6c41415c5f40b8a032e753995ba93082e66ab11e1e01321a66fcf65af2d270444f48f1e54f14bb271f4a5d206469ad1fcc6d2416d989c8a42c5f42abd525aec9736bab919ab5dd5bc6314e64d4c0770b963425dd021f90d9043192326974250ba86bf362c566a7012078087dad8c4a17b81466985baa51a306bf675e348c24d27d90a56aecbe7276d214f088313340dcfcf5e5f4400d6f3ffc1497c3eea09ebbd77ed8cfaea82764f2f9478715afa737b079aaa03cfb3dee6ee6fd219d1df49d4c8c7b57f24c8899804aea9f1c1a379616c04ab4b5810543c45f30ba1a660f1325cdd8592069b95196fbdc79c32da7976ed399ddc4948c0cb1994d2c8f109\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 0922a02d38b254cfc1b02965be4db3b6db137a3fcc7414737ee34b1a204c575ee12a6860e84d8f204dbc67c6613e75ade8450364c05cd7945641dc920f49f92e0aacb59d04d7e302da6f030009305674cfd724946ef5bf661763585addc7081876fc4efbdbbadfd5d77a65221bfe2960b3c7f43842544cc97f3710ef90ce508096921a2e2c32cd55983b2685b2f5fdd7c0da5a2293ab6e7d47a61301222c40f5d64bc66386febd37c375efd2ee8e43abe68afb34ff2ea1236e3f1d01959625aee0e05fa40f95583c455322f8ccf7dbff80d5212bd8cfbc54a12cb6a689f8f4eb4977fc5bdb287ce02f7c5a714abccdf50efd2e5302a89e5654993fa09ff5e45086dace58eabc0f078ce2fce724bbc96b6de36ad9d0e5c4993f2c2fc416ea196b93ac63619f5eab707777a376d8d0a51d79a5c586b4469a54beffa8fe56b0ebfaba579b47844859202e5ff8bcc8660e132c37e46c3fe801aa614d50c9953025b338dc4d8cc2ddebc1d07745a7cec01bd9414d82892a3f4818c634d51c486b7065288e57ae9d1520cf02c397cc0296c674aa05cf671760f2f018b6dcb8db73f79f6e95ea2111c0645be64927c9f802f8277922bdf94a6bdd7023531247baaac95ab10d7fcbfc8354bb44616a859a83fb080ff895528076a5c328f89516e62694b2803600305d10a8513cf705866f459f362f764eec706f77b325bd7cd40255fe08\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = cefdcf39902d003e18d802fe6069039ec65e16a3d14e8e81d5d7187db2eae04a36b3636a0e0ceb37439ba21b0dc127ae57c8d07557d16903ae33d1b3523bf3b93c65e079e5dd7d3d6f467f8c065edade7704b62c3a4d422cd14c0e17220038b1df0e039542758b42a60603411494adca0fe357a33d140c2e53a43b756c0a2444618044fbd2b1844bbe0bac59bf10e527e2b9694887135a29ddec1c68af681547f38fb203bcde4f8b0cadb1930fb63e344067ea1c104f71562c55c5a2fddb1babc7f0de0c3c28a32931d0970f6e42aae2105332e04a36c3b9618bca0a91999c426e32c26a1277fb1338df1b194478d2fa30dffda105007a461b954c1b8bbf843b36964abc21e6b43bed000e19753060f795b9bc1f238a59328a24e7cb3bac9f1a4fdddf01577d8b8ba92523fbcc26e3fabc9dd17ef950d10d61832a269a09a1cd5123eb76c4be680b633d0f6cd58d87833aaab542bcc380971561a5a8d82a49dbb24e48ce5f90f84afb2ac8a32b8e60604650247df0aa9c8e6aeddb84b55446fb8334baaba4b08884d7db20c4abc1fd819cc1a39b1fe63d7a74d272eb4ae5ae25a6d854fefe0d089535a4c3cce02d247dd81f1504c983d8765f3dfa1b1778d2c5d7d90dd1b3ab07dd1bb21841bffeeaf2beb323403a7cbfee9f4fc9e83d3f90af100ea4f892626355bb6c0a9b14c6937cd5974b951afd7221545f1d4ab6cf710e\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = c7bb6a8acdbb237c80d697ae06513c4cbfcc6d823440eb42519a29fb17a7a71a02a8f07f9077057ab2e9664933d0b1905971ed0d8746b11f7036ca7d6fc6328911342c65412716316e6124d074b6a59c2e5c43f4d3d1663bb53882940b34bb34fbb871e0d56bcb590069e6fbdef4601331ae13f6d3a4aeca9ad2143c68e46af7d4114d48a9b33452e072be7a88188f729525e9c72f804402fa6070b24d4c2cd87b498031aa87909ee73d53d3ecc07e9e4766f45dcf8f02ffb289ff6e1507e913e55a9d68bc8c35589b0665ec498237341597f85b1d3e8e7c764ba7da01901f90e9eef54ae72f319ed17a608c256d78a615c16cd430d94af5c0d89777166b048d52fd54f81b548358b1ba94d65d677599ddd7c3b74f1002b2d084334713a39eb5499f5d5163aa2f56cad7d7e18bc42ee1edcc76d921896f0ff7b3b06906b7d074aac730909504b10678a83ead711cdc4c984748228ecd6f92729abd000e38e1755ef159ab0001abbb8af20315ce10fae39d92d2b692e6fb7a2e2200722bf8715b6a3a0bf4a8312b01c20aa1affbbcd49ccf7d6312c5ee3fdd443dc2b7639c417488c63722cf02710432c623854504ee0b6e1183bc3c940876d58f3a507a306c0018982f1cb1630c97c649bb645ef3d1b875189437da270f25f0b5e5fcd1576ad4cf38710bdef5f09131bfe35c82aa0c841e09a14837a5db728a1f377283f95262\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = ab9dd3b3177b8f9fe49bf693b7d6eb8562fa2e0d04905de5bb2d8c27c9504af20cc90052e041880635f454045717779ebd2359a0d25c5d237f5279daf46d016fdba37d271622158b6b1f7defa08ecee01620b0b6e398feac0b3a14b84ebe004a2063d8248f9614b3a469c426f68df38e11c29d88563fa791604adec416b771ecfec6d4c7125b1a1a4c36a617bfb46ff11625914a09d6e72b411a35dfd7b805793ad7458892f7847d5f8d0185285aea27fa43020334e8b5c970f0ac306abcc33b179b2a1c22322543fff1b4031816b62f648490f96c8658752b96e12b222488e0e6bdb170c83d2697c0e97931c26895c9574998d67a2c9a2fe7309e498a22acc7977509e2a7c44764d10ac1f0f269812b0faf98273da99996e0d16816ab33c3c6a2dc8209ab39fe5fe0b121c4e07b3e3bcc5e2fdc46d01cac7dc1c9be8f4b1fb4434ea63d204313101b01aca2f6479d24ac2937c1f80a231de5a263f9faa5c36c1e0af380c550606a92b0b632bc486dc5d496c59c32665d13d8c19b2dcd2af6affc7cae03f7df5547fad63771023114fe8e68628b1bac81231a359b0a27ba86f5ee07e8a1f68c76a9862cbec38150c02c6cd01805d90d249ef0f6616ecca9e844fd9c9c10f4952534e95f0bd0abf66a24a6276dba332bc4dff19e17601da8007bbb2b0ed1e4517b2111e751506461a85271b7651d891d303eada229a311267311\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = c68d78d710aa7934f4ea6dbea0e50ea99fabd2ecf5bfbd51974aee80c574509f2bde952d4580b8fecca78a1034aa8b483dfc6a7a4413cc71c4f836f765fb86686ee68f46cf0", + "eb2191f9e887b930544d3fcf20d98a2ec29b652eb77ef6d994dbc9d2bdb0e901b5bb6aac49ccedac770ab1a7a3fb95e33f0b5f42285886c52a65196061f53a308cd43e089fa9d17d14a5ea0fcc39dd837aafc6f556c3b5afff72d76d8a707e6766841baa75640cdc0d9e8c0b01b8d1f0a3a67d91bc12fc500f3a0fcb1c3342e27a6ff48dea24f24cace5494afcf3382d950279a07d175bb10f942fa57d3a28d5bfea906f2311b6432012a42ec25997ff35396c76e48767d6f0d0063b07222de97f1619ab8f4471f092694ef7c3822ac88206b3f491bc0cb92a343bd2912ae54b74330ce8eeb1f2749c99df30667f8c7b39e7c623d0c12aae78feb8ed47578f347eb9e6d9e330de8c1f29745b23e657403367ffc5064d6b62833a3944f4f7e41ff82f8a49a3f08395e5a8101b83621bc479a208236a6c32731206c5363997d5b12efa54fc7946d1cc1c6eb4c955183d9ebc0e16dc4bfd1c11701fc987c5abb11a48fe5c786325a7396f88a155f95a04790590927846d16a62574d2c5f3c716fd4966d9dd4d9c90019b864b23c81794482940400501b224ba9f4e61f690eda2b3359b1a24c63816c3b65d5274e21be2c7482a19865168bc2cc1cc0b\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 894190558157e1924961175fb40c7d937b9087ebebf38f4456960ead945187ab3692a7990e51302577603487298ec75044aba599d46ff8dd7f97300f8797da644dd2f8299e3e4193e43c41197a9ac3bcc8ead4713a189c7ebac962b2e4a38c85ca94743998e6b078f936b9a53ec2f1afef70df7df96a6a40d03cd13218b884f4060bf2abe465db3e7ecabe9108fb4da987f1983bc0f79e2a2fdf86ee8272c5b8087bb595168c1ea59d32ea3a6538b9b13ace08ab09f75b4eb7c7aa6b23dc4bab318ac58b01758799e3459db3c19964c676d50d3b8196fbfacdc628d6e534061ed6e14a7b0d41c9856966df9c74f2ae82deac7148a9f786797ef4cebec6d431a2e1240727a793882dd3213edd4f22b1f94afea6fba4bcfdb4b41b4d3dc46400cb37bfe61d4236c518db4be052720e774351c7fb2cc7beed192e28a56d3353632ea4c807f688b368660db57b92afde5defa61c4cbc9b6ad1fb012b13b34d545065e448c614835b4bf88042039eb5ef3cfbe93361628635854c37487468e82f946e01da78c3648f04fa903704996a6b8feb98a6d1a393db42443bbeaf266d4fae1ab2c41cf9e974039e4aabe028e40acb4be89c6d7cd8be7b4f4ff743e12b9e3b29ec4b1508a059064c93020d2b8dca8a5488df4219d2e91db5542ca7483609ab8e881c202ed3a48aa6596c7f62cb73c9f0c433f563e49abcefed5c02e307954a7d\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 2be0a2ea43b8a3a0568411d79a73aa29e74f3e7ab88d8e47426bbe6b6c8730b465f017fb8977caf1cb898300cd86cc873d514253fcaf2398980d89851215dce7f61b3106faff71655b218e2528897a4516014337dcd40867ac81ecc0ab0497908396237f3265be06c005b110b6eeb69dea0c1458ede4fe8b9161427723f0603f8a19cb90a221c5ee9f868f4ad29fe64721e202ab3985f6d93aefc7975380260ad0af2e77fbb9ea4c4326e31307879850d016ee12b239d1fcfa42383dd3e5ac4c11e8aaf3fc8c7b50c650ebcbbcee41c82326830c473e718dbe58adb20b5ae9374ccf3ad9eefaa9e015829ece498f5827326286e2f4c07ea5dc7618d8e56e4f09f0bfa53cd6895f3d6a37871fceeaaae9ad8996007a83a8ff070718e9014fc61c4cb9a4d9cd762b4f1df1883de6efcadd6849a0bdbf3095f4281ffecc278b20e56a978d23e2d2b0f0ff929dd4e11f0f93479f9e09fbcfc50bc3ee345784ed9354ef1dc384316d5a901a87d141238dcc25e90f739bc2d0f61cb5829a6fb298d01527726ffd63030fcfaed120f17836d1c1177f6dc5f10b228d38a3bd3bbc997f33925079e421e2b1e904ff34337f087b609b62f6ce4cc484d2bcad953d7436b4bd0f22036150be04ee75bed7eec5c9f282dd686037178b6c517402431809d60db3eb69fcae0f949131183cb532364fe2a54deb5663070666a6913ba2ddf7ad7007\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = daed6d077ca0d4725797747d0bad8e617b24c4d6bc22d6d6743a01e0b8f9e689c92567b13e68139235e0f0759a7ad4ee967b482828f85cdaacd9070850cedafd2b2fd33f1c5affdc826109e0bf68a0f8b655599c578650326674ba2570abff0ecfec37bd133fb795cccc83162bb84aa93fa4c928a943db51f7ee30c5002e92b8efae476c55560572a2f47a7ba04c9f85018402a4ad8cf2b21388a5276d9a31afa6d3e0f85e45406c54dfcecd1e01e8ff6e0f12f23b95cde387c3ebf6a86a9ead7631d775a39880225107cdff549ca8aa5474885c21a3db2129036b474abfd0abcc134d0866c05e043d16d49eea0109b621c51fd441850013cb2d17a5302f62646efe2dd383f4464eccf727b28f83a2dbbf8febe8472eaa975f6dc34f82571a5e4e1f21d65d19664aec694c1f54dbeed9bd3d6855b19892b4a9d2dc4e54451d2866311770bb2d3da6e091ae83cc261fa14a710511c103eac2fa7bc06c6b1c048133d1479d323ec79adf85908a81f106a20470eed3d1d60b8750a508d8da17164a952a170a2f2aadbdf611ea312b25d93fa10e202ea30edf8f584c3ebd3d7113d5e4ae618a63755b7103e5f5887ed8d33bea287b17162e6497aeca3632076b81e17fa03597f9336f279492899b8f04255a9a8dbd3adfb6ec17adb305dd0fc7a214402963342b33bf1eae98f5bdbc0ff7ca3f6b94cab3e93cf8af64d39d294ec6c0\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 77d2bd2f55b37cd6812038cd8285b7e6dfb491c52b65a7f3465b35a198cdb694d44e8d6613f9061cf5ccbc6c8616317cab78c94a6560e1f64c25dbae259a47b753d9b1f95c62720462043ddc6a1390fda9e151848bfada7f74f523a9e729daf508f2053977f73fcf1a97dd5c227c5cfc03595ef82b36a99be50891aaa1d516eea29c094c4eee18d61e9a53e200b6fdaa4e48d6d954e9d6557f8b4154ece19c745ce348bc5886aa75f753086a1cc613b8b3bd8df209751aa6d7d7ad141eeb19463a44d836e36b1b88b22cbae08d87a713d8308c9af96679122986a2411cad90d4919be3284857a297c3fa4fa950ba0b74e9bf8570171bbd01672a5a0ad6e465090ab74fe6cf7d7d9ea6c5e2f621d52e86b69672e8bdda174f4f1efe745f040ab2745be06254dc94d92022ecd89feac48fe3eb181338bf679df7c06b8c6dd6e8badb7208c609e15ec6e38cbecccf2492b925d245cac1e50376801867d229f8fb92d49a9892645b6d7564647361ad047874f85c202e624128ebdea6e96794f4e941918015ded3b9b7566538f057bdd38866176f004b3639f680f63195a18e8020e042642fefac3edd45a2e746280bcd180e54ea4e8c9c7d196a919d0db1d30d3d5339747dba152bae5cb6eb7b53b85f00b8720f6d4de2109537804c1b1d65293b385c8d97660c1b9b84c46eddee1d2d97b810879ef95c1e83ee250574a9823639d8\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 141921b1c1b1dfd44caab5b9439bcf12f1a5c7fa273da49e7ba8b9aa6cffb8474817a7fd799022c762defa18bc64e704aa3defd44de0ac97833f1fcae8a52b58f9ccdb93bc3aa68132584301852534aab75bf2da3da07f4abc46d8591ebbb9fd1f826fd55a9a9bce55c897dedf40379ec289b83ce2842c5953365ddf43b09c9d59dc70e8552ba34d57c8a4ce108c28bb6282439be010211c637980aeb30bb8c01d9b0839cd85e1a3642f3ccda4040cb6037de2f59cbf0af15fac420ca0393589d2d77336dc08a86255a4b9999e2db9195ff3ed79cb80c9ecdae380d684dc07ee1fbafa977dd248e342c12c04808d2fc89dacde84b701364671f5a44952598d2c6fd0e45d53b0e518f1dabe34701b69279253d99b8dba6798ef23648a06c4bf08b8061a956ecbaaeafb6df6d320acb71b6ac0a6a104624f1f54664d688e1853316e000e28e27e5f248085b17265fbcac4311b27b90756eebb3a8001d920c086f517c2aebfcc6a70b89b9130d826b927aa119dd10a15de8c90156efc7df8f684597b62ca9c79869a5157ebeb74d66f6fa6c92dabebe18d652548ae951c8ba659956b263bc2b08ced50176e5a4b2cf265a81511529f961338078fdf0652194da4ae51cd28480c952ee7722d04c5d69383ae8d06fd67e19ec8e6df47d192a9cc605d400b5fbead890e3841005e150ef8d0e1d3fd4e1e8d64faa452c4ffd55cda557c\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 077e1d74012e8d54b2583056d0eb8895fdbc56e0a6612b8a38c985d402788c3f0d47cee7bfd3a138dc8f08670fa045de7f1949cd1621bd0963bbd6bbfe8cb35289e998f07f08e101a5de1748acfc0d65bebdf6162ad23ff706b759a0ddad1c10b7685d510cff228c098cefff1cc12f2f9b6c1cbc4ac76cfdf79b49230264dc6a515f58fbbe035016a240df9d7a223501c10bf740332aafff301072d572fa5c6791d45e8cc87f03101ccfefa358afb598e822da5268fdaad0682f7219e6f4bd4ea8b1a138bc9b28e42580fdff4de74b75a10feb9e78b122f8699f5383cac12e8d0efd3e88c5d6d0f4c4c9702303fdcdfe115d662abda6bae43473494051ee74d6289996c4d54beed7e5b2de6453b0cef1f4f42a1fd057362f935d466b48c6873c8737af9a5e62d8c832c1546087f459999658f3ff1a6f7cdb56c2b834eafeb992791316ff9d52b1918da4fb3d091861c7b66f7db4474b501ad83da0b4ff1c4e3be7931949a7bbee7c9a48f01f5f83459ebf93b0cd34b7e8b6bdd35cfdf6815d747fd6f6ce405b9264ce4ab26a458ecb0269d5a849b10393ca441f7e80d90977ac0276599188f8cca39f059185267cb7d60c7d6f2c643343d1161175e39aee85be4f3e87c464bff1088c20edbe4a543e8b54a05c4f1cdcbf1ee887d14c09496b306bfbe70654d0bd19d266952d3d9c9d0b17342f8aeb73aac7f827e53da2585c72\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 994dd64cdb6233b09ff4b2a5126f50c3dc01880d0d8ac3e9d5c2d34bbc02c674583ddb9a520de643ac81f1ad407855da715e807f200a9310fc1a134f0d6e3cda9ebf541e8437199961c96a5f617e075fdf3e37788ab62c393c2808061e6ed92f72c25916ec8ed846d76adb3114d15ff77a323bbb22463bca4d7d7d95a8c9cdabee3c1b236641a6166d083eb7f772cba93d0945197bf6b9a8a54a24c5f12e6ed520eac3ee9aa244e8374ec4cfe95fab470cc09ead7999f054cdd6b90ff95bc6df33d34d765547fcb6c120c042f1deef402f764d494aeffbd9f8b59d012671ebcf08409e90b40d19fbccb29e105fa087eb1a1cbe6dabfccf41b7e33fb0508116de4548609c1b57d24bc74404", + "1362cebd3fe201944c4e4455290f950ca68f5efca364c985a5531957edf5857645fdff619f5dd013b3f751a7a9feac4c971323b730f3ac4663a6b36b21749e6643ef43ebbb3b81c601f23d159c9df3acf6bb3fe63cc86e53b6a846960337afa595ae25694d7a67145c1227c8c693e133131e2c622926e9b363e4445e6dcd89bb65dd74a4f766fbc8570f954513dddc8b5b16e3c200afd47413ce9318a3c08f8b092e0c527be4a6bcf7557264593b803f652652e59712ed718954353197ffd6f19853d8be525e1dd999284fee98ea3ca49dd39a1329cdc1b10ff336bb1b34be9f2334529176792666ed4b924f884a49bbedf0f430ae\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = d292f30cf75b901051216a9579ab9108ca9cdda91d618c08ff9b8ceb455ba0a197ae8b6f60c1722b1d212cda0048144f0147e1b61ec2fb65573e76746be9b237031e95af76d6c726185855436cdfe4051fd56ff929cbcf4ca2e2dd8014d8957c1b821100dd186776dbf463a46a884969bc6e2153b76805a0ced2230b9233fe9a30445d8a5aade694241e6ddaf6a1765a1719c4187e6b8e9a9722fb8b18b3fefc746d32927dce857b2083ac43ece35968b616090157db2b09e2dfdf378f5b593b03c2569e941084eabb29dee9cf6a6706800b274bab9526fa57c1e1fd6ff4195ae377c64a01e8842463ebc41312ac8ba9e72126fc6e31439314145991085a7e876793885511318b2e435461890d588286e8c938d63534da7bb734df3962069b62d1c84acebc0b2d0ecd349126e44da37e04f1cdf42a30941b0622735ad6c13e4757a3d48b96d51d2720ff9b0d02f5df213b26e75facea01a5a2452d3a3a041c4ebea57364bc5f9fb4612998acce1f4f774f8479e488e6efff6c21f68e9a6af70bd7fbe7798b75bf76fc2dc1280d109a8c5fb1ce23c02b1398556d5355f0673e84378cc26ffb27418109c24d30ecf4c4957f30ced867b6cff4f71e832ab81e61573a5ddd4c4091e26ddd0f0d0a85cfc369f8685aee93a225ec7bb23225cdc47ab102d699636be2521694c5aae2be6d282b3222f2e3da965fd0cbd583aeff86b658\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7018fd12137bb5fac9fe8cbd2eb3e9d1d08de4546e8af48342160cc305d954b8f9460a12bf0bbcc47e6f93bfab80754fbe2ce64af899a71bd93ef5868e1ce15438843da5d1519d1833d75fc7b7beccdf159bdb175883f3cd71c7590526fd581bef307e21edac07d97c80a274418b7a5a1d5b5aa4de53f478c1d8dbe886d53ab82020869e4ea390d4ff87adea84a2949e2cd29c214ad0f15f041b8cdf427a3c26ec6f51af64142aa40892fe3692d2020eb4b9f3f2285a20ef0144e581e98a4844b4c495fb6213c00112ca114f9450b8abbb727dfee8d1a29b56b847ccef1dac8eca4dda740504a4ac172a8a422bf7f074dae49b5b8269375ffff4d150f07f605d97a3dac62625c25a81f3f5436d36f2386a541a5cbd3768f2fe97dbfcc9d30010401a4d6e679ee3aa7545aba2f0f096f81b579950724539e7538dd175011eb1e47b7e358db13e7785981ce36ed13f979d4bd720728f2d37bec72573aabcf8bf2990932c8e478598a72cdb34efb20f66b3b530a479c679620bf893b3ff0e33e85a3a6db1d72d7c87f9306977f18a8746179ba4948e51fa996d5dbcc27bb4f1c789feba3b1925b9c0af744d294de1375ef8f52ba8753444d798363a76a5f84a1fa542e431f8440df957cc731b7bec4e4ab6e52f092219374a525ec222029dae6448a41702a7cc8920058821a9790a3fa8c88ed06283b43c8ce15fec4138713cfbfd\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 491a44b18097d9d62e0d3eb41b3f0172f3647d65d9ffcbedc31ee68f03f52795fdc5fa753fc8bd77a21dccafac57924c4051eb89ffd17c0c703fb9d968c0d18b2762ac02faf72d8ab448a5d0161a15eb4ab923f28f82dd6e97ef61fe4eefdb63066a140ed5ac486da016071bde06b617889ebfec7c71ee3f66f35cfeee2ef49e5491021c26d73ed920c8e3913514f65ea49d5453876b85885d51bf0265983578ffd05dc8df8efc0d915e90a4cef181cd0898befeba7300855de21a42600a4fb2d2eb7fed5bb3f940af3d1cf7404f9f6bb3da863fbde246f4d3931278fb7485d59c4af8a6f5354ff4e05153280f6fd6015a13fa15439b9b4ea1c20ce681acf92aac4f60a86fad5f6a636a7e1581b3f8fc1c90ff058c40b5d0e64b7d82056a5bd1fa661610382c92967bedea57af5eaf52d7304e774e4f85daf09d9cc5c039d5bdab649703044047828ef2291777061de497de6d3abe1d2b7d0c5244a6cd7d317327f6e596b1aaa552b2d3048bbd26eee31757aadab0e439460f530fa90b92665856201e4675e99c6c2173fee1828954f2f9cfd324ff1f9b77d6eb0d48f1745dc01fb4761a00d1d29de9c034d502658b2926f6f3c283f82dacc85b8e306f9881a75a71c2bb03f36b5ddc44de525cc3af0c72b1af01c4445e305058af24fde5569594e656ce85192f9409c6bb7f5fa08622dc00102ba4f8fe7f7762ac3050aac0f0\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = c9667d958f9646740576ce18ce3085fbaf6f3392524423be838d71af5c576f2d12ece21c30da0e209921beae756b9ab6a8b04c3cc10c06dcd785a118f45b59cc50be3f3e62ec01e70d0e9d5859e098fb4eb172ce430e32a5ee1d11a94f749bbc0d444e9e03bb2632bc611a70a1e6a4cacfc9118247ecd374f628d3acc5cca79572e45bf4a94bc1da631a59e4b781b88368979f3a909a01cc7c4fc543fd165b67c82d8f82b7961989dfec8e9c4fa6077c89438a6667e42be64aa56944ac43c7eff8e4b9a9fa2b968da2a1f3f03bf7a80e884d22b6d3ff4564444fa5dbefbe62361bfd46c32ab42a27c3f819cd56016479a40ad138b3288560e6a1f3831bdac5c3e850c3f2ce500f766843549f5af32e002941b50cd88ce822a46183f4938d58c12cf17e1ab29da94c0df368d3910318582624cd66f1bf08c7ef9c29a7489ade8086b750f432e1699676a6483099e9ddcd3fa9771b0ed58dbfdb3f61f882799e20114de7c6e0384785a9ee6b22266b2816d485ae09ed2d71d4f8bb0013c932c477745eea36bffed3abf8eabad517118088fe7d6c22c018e0bbcff07ab814f541ff1e4a58042cbea1bf9d5d6f6950691bc61cb918296e05b9747d2303085a8e9057add2b109a661490e357ebd10a8888c7ffc7fe788ca3da7bbba52a8c6b056754d88cc2dc2aecc1a7dd770d19d0a9412860d1a3d7cdf905ab92fd37d559e4e5679\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0139a6c57398ec02a29cbd47a11129f51c07b61659d0d83fa68a16564795a669bb164e4162d19f852129ad135586a4227b91c54ccbb1e6a02e0a4b1d1e741291d508ac2e9f74bbd27a2d3d4a810ff016fbbd545a479fbe27a37ccd462a9cb22cbcd5d99ea7f99ce4a3e3ce3bba2db87d4343b22304436c60752f6baf33d3cf4d110f7b1b964110fdfa2e0058158325e78b5b4010801aa8ca59986f629912781cecebc33f7d9edb6f6ed529fee06f54ec2e62c6f4b72bddc8ab6ea30db83574bc931c0155db26d3a5bb830b1840c544b155788c66a42e6c8161f05a03e05b7271578d8380946c72b7d322bcc84b1be714cb97cc7851d06e1cb892ff39d88f821a5bebc043135326addaf480c4c99b21c26af904d41a014d5611f42481769228054729973b248ade31a4ea963a626770c5f9277782328ea0635e3a5f6013501e6275b419f145cb60ca2fbb3a7c4bcad7449c47a9336d658bc4a9a3c06b2f84ee9d8a8209ff7ed0505144311df3342d7fb25616c31566f29dd6139aac391e7832fcd0a6bb69cee74cc6a39a2cb29fead82bd23ec272e62bc87656eba34a5a44f443d69de2a572b3d7e9d5435ee69f6c281362c9fab99ef72c7e04bb8d4ff34497b2a80f5cb750462d131cac6da0907b8fc04cdc45a69c22c13c77606a6d6cbb7b27ec65fdbf496b123a3323b0370b031ce839d63e2e1ef59b0d95e646cae94bedc4\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1d6813c5fa766d4437e3fcf8c38e7cf829f02eba0cbcfb369b7b087bcefc6c5f65156d0e947d9f537cd885d4dc6050083aeb26f413ac082989b1df5efe7cfd7cca2a9acdea4b8f673ed943f6591ca2e603094fbe5dc4587ce41828b3ea08255ecca5ec6595f326d29616e9c47cd889d063ad8b90326163fff3010a5205883ae86c6cc95d90e449566d771873e5d3ca7584972f824015ec5bbe9330135a7ed18e58581b89d5a26ae0d13ac0b9272df6452d4d3c1761c2b6c5affbd7ac4a2f7d9b5ed2aba0edd11a068d58fcfeedbbd44011bc0b1e64435bf35c49a5411478239d7382d42c53c6fa972a20023da69daf44f091f1da06967809e4976fa851eab901c85514cf410f99c3686ae21c778b075fe73edac13173a13cb08f37ccbca2fab56329832dc0b7b8725bb8f95eb0fe811703dc2047eba3c23a1571c5c7312b38fdaf79e43dc00e82e63d8acef305c12d190b5abdcad1a82e2621b20c8484f56b1c84e55880c0ad9b03920c44a080d436181a7e742580be80602695ffbaa20c22c6b484adcc63cc2b417bd45ac6826764aaebc918a1fbe7ba4400cec0c9728c1c18f943069463a5747052d387f63890be573634f8f122efd0a75969b1aaefe14ae3d3fb3cedf5248df995415095a22dbb3c9d95cc4aa792c05116b727d60a7a9ce4086d00b963c177e3a661caacde70196f4541cbfd1b8909d1f7ff18da9f221b02\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7370d0c5dcd81ebe6544bcea2a73c187a5001c360c8a82c7cfa7b26eb703b73990e6f742c87008e0a2c676d2209d00f069dcfe8ec1dd7f21459236247061a6367bbc4dd02cd88d0bf6505b624c1530e6b730ef29c12da0a664c5e56bc0ed2928e1e2635c3bb82502d3f71d88e2108074664801fa4ee16d49e2de3cc638ba3f6f152b4b4289f715f48a26985c7ade2af50d8f0c1bfc92325863c64b864ee14dc8203be4ec8bf798bde95fc7da29d0a8d6ef2dc428e7e73df45f206646bd0242a49f673847b5d0cdc1da20a1ebc3f04c0e99b2aefb6a0dae2a9421fbc9f26f8f9601b9477145a0526db84440b0ea125182a9c1938c48fff51ea366e4bc2c499ea06d8056ed77e292f5a91a532c0ea68666687d2966249379f5476c35cb28b3242b546dce34c506b9a9991ebccd8fa9285b76b32a9c76d1afb431a040b4bbb5b7a3451ac80866075d776ef12cceecfd48f8202aa2444c44135cfe0b9f57de378326bc1eaae7b656b7dd8a5140c057b6cecb3e9941aeccb2ea87040aa980d06630ac8147282af6160fd36e003586d47b5ad5ba5df676c16c8abd90dfe2f5462d12498bbd2626cdb6fe419d4e98be24049b203288207298167a05e4f9d5c3f96ba3ac6dc14b3e1e6bce3b80ff46d5f370495dfac4636", + "b2c9006299c2056129836b32e0e4d4c79fc300f9c7c59f973b48929f56c299893828343a2875e70e33617f0b8\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 2e171b383d528aac51817ba667915906775f6ba446878617d1d4d659d41607ed671f78083488103c0fafa3bb445fb908d548f41314237d36df3840ad82394d23ff9be4a5e45ae6a3bad3e6555ad4362c46ce6f583109ba2a2c2463f98364e1e596db59be7fafa8fe9ee1876dc306a3780900c7cda8f90dd727480bfe707ad46a0321a3cd1e679bdb16f1570ec3b2335665b0c77548c905debe1894a29431f9ebd19222fbabb379521006bf0c490bdbb6e700c06c2ced743c5953b5756641d4105bdb0448ac0daff3fd2e75932ef6f0b4514d483b026d2a6ab9b617f52da83e062d80ca7fa80146023d5fb3f57be6752b8256622364d1c0b793ff070e1b30824bce0b6a1d8115cc13127700072d42b719c849404e7e9c49e71dc5987414aebfde54ebee2238c0568dc5e386f384043967740a231e6290fd42d6dc2b8e2c59fb373a30adaa57eaed796677b9b7b849256c6dff0ca6739206fd30fa6f43692a9d1d3e43c003e5a7f021f691b6f61dfef0f803def665303d95d2e51c7fa4d33ec4efe33de2f6f8ec8de4542500df75fb1b8c0936c992fea43a53a7e22b483a2743fb1fd1f7fc057b1712c8f61af638abbb14fd872ad3df465e81d3036eba7b52587344b9cb25960ebc68e62f9187c1b564136f599746233ab299be16be2d13960d3fe3217733026aa88e3be09510ca181bef04b17d5c198120e5b56ab3e13a2bee61\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 6be3d15693608f669ebb88cbdde4159a52412b2cb4d839af0f4d2d0c000bb1f6b651be8ae44405276456abd5fe78951c8d24105e2218734a1fbaf7997d1aeadbbf7c5f92c5652b4d447538205d9cfa5c20094bc992358f4c08776b9807d4d32e9b40bf54b717f2f691be337d881f1187b32393522ecaeb30a14de104fa9e229f276f3416675b7b39e92e1987e3d82e2765e35354f4238879bcdbd31a54aee464188b8750d64d2dd5317806b0c32888e0c8cd78264ab0da873ff9e8c9d833c4b00fb51b63155a122f880471f9b163fb63636d94710de21caa3017ce31986ed4e7e46a6e8d5ed7a7ca8df681bfad29cd7566e9e9e2716d37494aa0bf97e412f8e7ffc0056fa0d2000ae151e6a746290e8ef0a2adb8bc9189b8dccbc9b7ca59ded3fb7b1135c261de2a863dae5673cf7934148daa94d1da8e576b9f561af962e2411c5d0f3db0c5410adb7dfd9c25366ed7289389d3859afc92d385fbdf00153164f5f16d9470002c669500988e4a0e413d5b5308a7a3006eafdbc7f3e6710f84d8e76d43f0cbc09a686d7b023aad028bb91a72a4af271ba741d5eb853bded8e82c11297ca0853861c18f89002f76928f5af4db3edb79f91b70e4c5e98203011150488adecdec2e20f4ec6e8dea8a411a45363df881d1ca32a8bee6f2711fdd75c5cc8b27a04509e0e3a832fb83090d32b520db60c7867cf2c4426def622c120d4a\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8f89981a56c9e66d4bcf301c57c57a0c2ee2ad2ba19f497f553b898c4ff883fefbd4cdb7da8464cef028cdf35397b440d9367915c47c493f61da7bfa2a33eb62a4a421aebb5183287392f122e28a4963e45566e25fef1816071341b28daa7f586bd6a90fe3f6b9d786d0e57dfc5e4b3e300d5dce337784ca5f967488fcab93c9664a4efff22a213d127ae3918513e4824b5b0471a02d188a1da97cf94e828b2badea31e81dc14ae197c108d822cce7eefb5f4fad27b2e0fbba8d8e25db7b26b6411a87cf01c631675ff3cd0651ba67a419c29a4b9fc01dcd273bda9714a1028f55f926a7b469e4dbf01bd8276a9c04df24f653955c9671f37f001b254334d535e1659fcd4de185f21515c8b0072f6a9b6e93fe0195cb5480d81571270cac23e05a32809f204930ca25f554b22980b0f0ecf99f414fb8fa72cd9530dbbc7dd5ce46490c7c910f9ea229ad88a476ff9cfecd83dc1e9c68ed0a7024e841a81484ab7103c6e6695ddf4ede558e9c48cfa3d7eeae2bebca78ed5b0e3f6879d0cb4c59059e1710eb3142771e63514307cf4151a89875ea5af2c5bb0873a0114c7c1b43f47aeda2aeec62b0c6234793ff1421a36a46f0805fe5fe5b8daf234d48a3664b5f387c92e1a4ca67cc3d4d1783456d4b1a918eb833d14a0cb6f26920e843ee5d648d1332624a21e91a7d23a62dfcd3fee72380d59d78041a52d7e314192fb3d8\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 9ca87049dbcaef6dbbf981c211100fc02b92a79380e2fc0c4c59e320b1f559ad83ed653d77fa0b5ba3aa005182b4359158ffb0c072e6c7d02ae32d19567de28e4fb035be09471b07ff6e72a10f1ab173e46f770d94f78e21ab0ec4d4c11b568f394ad3bf3fef14610afa6a8c8347c99116cacc8833affe119d913a6596e8a2ae4d09bd9816e2c1cf8fc2519ec6319f8f219e36cdc5eace1a4dedd47b09519d64586282674571972eb578cf1e640e58463930fc0b08b1b297c5760303b799b7f24faa760c2442f0adc7d83cddc56a99692cada6ba8ea3fa5aba200719ae43d0770b178ad9cf574ba5b0ce847dde18df9cac32d0adaf7b3cfb460f14db0c542413d5f528b6046e9ba47ce986cb134011efb55064f9eb2163b0cdb264a6eb9793f12203ea5ce9d48896f2c448926615d2dab2dc51a0fbdc6f5c2dfd474f455d0b0d421e3711326ed522d1840c0d0e93bdbeb3781c066b7c050e299a2e450640ab46af4fc1bf4291953372134340d4ced304430efe82ab7c9f391f28c238806249258b7e8cba2db75f62ba910b815db2f889326f3fd724f93adc45b031e08bdbbefb8b2a48d0a861f07390a9f041a0255eb9016157c526e52edd7d714bff40473eb36d0d381e7ec2277dcc3f145d2efa02cd63e5acc5f05632723d5c5e016d5dd5ee267ebb2eb39909c0ce31db4ba0cce2f404f0c42c44d0826b24e0778880067b5e\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 29835fc87200783df0affe15fbf9e7850b21180cc9033c9918520e4fed3efbd8f41a5f8c558b377782d5c6b4cf038dbc7d084ccee88d3bbbf33a7d0addb95f0e149b39c4a4bcb4ee918c7196fad1d591a166b369effe1d6f3e42bb64597fb7a152d51d18d45f45f9a0593adafd36e522a1e1f777647b225104dbbac31f1e08ca476dd61526e18c4c6a8de4ce4374e139326377d11122fa685dee074ff5541c88d6652af1e5a1b8fb42e5f591c7101d12f5172b6bc5c0002889d5e74653d5e0a86e4fac756ce20eaf5a20cab51e5b6b5dc99e1c481144ea22745d2d7e6c98b7ea4edbfe0161169fea2400d326c53cc5bcd60bb2df345a91333e076ee31c003505c19df7bc96365014a413adc07edc86bbef255c26a46cbdfc381f23192de7c768976dc8e75155ae8d07beba0af122f8a5dd8edc4d425825710bf6845da8008dbf6ab6bb7a5bca8ee7037c9682f8b4e2a5954290d49bf2b0a9e7aee22d63136b7cc2fd7e6cc48b4c88e8c60520d4ddb793c69cb1c677d01770756e58e5846bbf868e0a5996c2ff7faeb2dba19440acba41fa514f84283e66547c5d9e4df8165df402033298759c906c9afa8dd15933573183d5269b4a9a2c63d5636f8b2e0839919897fbe6f87dd2a8cdeefa559cb7071ed2ec18d79fe068cf8f6bbc4dd0dad7f6f7cc869eabd1eba5775901cd248cb500d23110eac0ed206a1649453b81b583b6\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 4bb15135ffc32d2a7e59a5c536d0788ec37633b9b1e5c94adb9f5b01c845dbfab129194b8a5361f352682de8f5a92f0a691df77e06a147c2aa759eb5bb72ca96ebca33367360e22d19f0d4d90c25c3e2ca3785a5cf26fb80e1993ffc08dc9f3d4c1554e5e90a46a21f8f00a2cb376ac4efdbe72e0ab1308bbcfa83b9b484f43fbcb3311a6ee4927e07c568f977545e7d5b8179e6612c2311d5b10c72681c9655b2529017f245639195e416fe0c2800853ffa387bb0934aa977adaea2a13fb87d2f8903cb362c1ae1f4e84fe13d29bcffe4dd92f856db6c5f1e9622268da090a8cf85481036c15d6d9bc97687a09bcbd92e73ac9008d22988893bf78ec3ef87620ee27633faf1fbf3caa3b79323c999932a728b40294ace55c6c7c73ed0fc03151a56c7a87962dee757a29892811dd4ced9500b8bdc905946575ad9521758856780fb4b6192eb6b52a81e9a1ee9c6e563a5682b867511093a14f735f5f20bd6e2ca1d01e4c6598ea6347bbc61dac6a69d05914e716ff1d53ef0b8259e3dafc203c24166f32067201e11c241ad4c107179b93b3e254defb5c67f2d88b732abe96ea5ce09cb360298f1a34b87a8860c32079d5c80ce3f4629ae27f4731293294fc2ab7cd9f2fc101ad87dd489e7a2b0edcca37910d51b8aefe80874088ec53c0d56548ad4761ef14a988739a02ce08fcf81935da7f65c375787740b94d48d8168f1\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = 9298b6ef7eec73665c848e50e2c221a013b951888a85d1f7465be1a306f9bc239b206fc3a85ccd438b8e45ac4892478c4945df6849e6148c62a81f8c58f8c78ca4be32806a3d8b16c1a258534f1a5d9694e364c27490ef31e8b45b96c88a10829d902aa48396fb1646fb5a50496780ea455a2f918a914c8408165d11651b2d490874d870b2c2d6c0c73cf654c3522007b8fbd4f1ac59906cf719228d1795cc479c9df3a7baa81f5cb71d8c73d154b90e4d33d208f311150e08f486e76fc1786bee3f287a8b07a768f91ae9d65c3529601568265780031e359273f93ff7df610f47c8d0b025d017e1dd088a676fcec39099f78b25192fcbda0a34c79fbaa6a5abb554e3babe386e7e2246d4f68f0bd60d6036133ea451a12e7c3ed1382e539a01fb3c21e1d21be7ed9372b943937ae4857adb7aff2721a5f5acec2580f2e7620d7fc8cc20fb315ddb42461abe93e8b8911613d06e0fc1947a6376c430837562f8ee8348c1f2086acbd60f8de959355ffd5cb4f58efd9291538f9574fd94e75c7a7710a119f7ee75c4ac0ed49e45b703b2f5e34db04fb71478cbef4292f59b2a76ed18b51992f164b88903da966a0ca3fdb98458979ef79ef83122a6bc2194ed0f737b75c02bd713c670e26aa19883327481597a980475405e8dc4f4eebcfb35e7cb73a05524c92c1599950f0226c11f2721e658673ba9abdf8bb39fe3be76e1a7\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 10b4e879f27b553ff426c209658d787219ebeec9bdba09afadf14362022bc1f6e35be08895bda1c67465c74f8c225de02d49878f460515831f1fb1dcd42b2547558ba805b85a97e17ced0a1f1bcb6aa5ac390129916fa79726452af274fe65a963074be70710c59463e3b90e69e1fe40dc8105f2fdc7f863c", + "c9d808c6878480431b847f372e9cf6418203e9c9a267bc6cb1a1377c394b0f2d69911d48650717644c79fd02b355c4790610ee930c2e9cf1fa1fed72b111f3f4183a2ced3d3aded6b8b5ff3b80b4ed00e97aa6a1e947e95fdad77d91e36472fc9326f745c7127b231eca5b2dca161d5429c0d4c4fb15f43e066d80dc84cfa50949f4dfe3f3a1c9af6aefacef20604fd4d884b4656931c0d3bc02a70e37c810fc7758639e4710a229348e134b5a67443dc36853fdddf632b7688e7622247be4d47b39d8f8dd639f9a32db3bdaf3e45441a8807017a9f078baf89eb46e44e2484e22586842658d1ae39bcb4b6be3e5518079fb10fac9cf6ea9d1e98a3986148ec834cf2d00e365ef8b45af8e7b4f8ef1c36fc675aa704269d5c1cc34e63f4362e527c3c42bcf38c2b1262bc350373941a50102b5f2f1175ba09d9d5235a6c90d3db2875545b7330cc64d44ab5543ede211e9736124ba88db37680574e225deb86e40b1c2943eea5b8351486c75cd7536d6da8dad82334cde6f3cc55033d09c387d6abda7d98398e47\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = a62486e6b5c6dbb918e6de18664bf6f2a8c8de6bc0b3b323fdb736faf48d9cca2792f842b3a5e80548a243ab59725c1dd6b2dce185b060008b623be218a9997131106b47eb2bda88fe9479ac8d539698b6f3b3e14eecb3c3a7f8c9e39d5398de8d1c5e9fcfd52bc8fb4e73319a8248f9c99592aaa9ba8c7f44142f63bd851f218a9a73845812f865b921faeed8bdfd8b61b98ea26fab09cc90f78e1e714b3ea6948f1647e1258f2fb965a407d1582f28663b76e187197b71e209bdcf3b7223c1596b9aa2df1e2736ceaf4fb830459415556aa52f47cb26e3e22e4ddbbab3904a7b1968e83661f5c8a02bb50b33200be928cdf1babd794e58e79890435f4e6f3af79b7015a7dd7d996f25d61d6b29bd0034445ab6d8b664667ca7bb4537f19edb9ab1f58ecaae3dd8c56a07b57d9cb60725bda9057e3d9c52cf17caa1d435f8022149901d27e3b152898e3865dcfb0580281838a72fef458328cc1130e59d4f69e58db5fd4552938c182128fe967a42c8413928008581bd41865e0c747b7d5be7df50435adcc707e00c7837a45da8a6e7a6c7ab5f5d3494f36d9f98bc2f422f3bf4c1ff0918529eeff3d4e8e5817ec22021f57a2c66078b8622ff4eedeab8bb61362488e215760dd82ff3a58ac5df2dd0d38073ec574084dce82aa9a056328fe5eab9e637aa71b9d6ba317fabb96944c65eaa00399d2793252a4a7140e1780d6b\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = b48e469d7a411e1521244f8817cf17566517969357f4a8e71297d48d736886793186dd648946bef8f9d74f87b0d0490e6eb58dcfcf7c3504adce0fb2886c174e04e5ee0544465607441a08a93a3d8ef41bde863c05a3825d083e48575175b897792ba547e79b38ab25b89c0067e28dc8014e51486c8cd5c17a190dff2375f3a920fa1c3879ecb7fe387edd215cac72f490cd7018ee17d46a0f4d5fad0b69a74b64ab3363415c6d5edb5b69aa9831984d24ba5f4d1cb192c19cdc4c095375dd5e5a562b17dad8dde34741c865772eb2451afcfb45aaa6023e5932a4d5fe0edbd4d1dd37276755938a47aa3392611013c491962b717744107d2f756f9808a2a2551079277483ab680b1289f2f42655ffe770c78b8f21cfbe461a9f2e8429837f7f15be891797dfc58ab59262e697a03b9ef351e08ab943fbacc7d8c0d23c7351e93a11b614dd8c9024a0a2fbfa91ec04be611b4c5a282278c33c5aa1500d31cf6b7daa8f27158bf28121684f24e8d79e706beb696452ffb71c4ec2c2b9904612e300f61fe9746eb370b3719fc7964e3459f8e61c98d5b1e9ece929381d6bd19ffad5a0ff36e6214d27a0259729a8358fe4ded419576d94de0a27e0828f95d60b0b25a567e397a6d2a45e92a161ad6bdaf503a1b6711d18a2f4aeda01b790f3187d6cb74ed23cea60716105ef65c9c01476c846a0e7f73c01ffe7e9774e74bdd0dd\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 414f44654349ab1ee5933470957247bfcbed3bda71bfaf9688523ff3b198500b5e37a62634cba22a0fe2f8b8be9498fc916c704e1070d3940005d889e1618374d0035bd9198dcef4a6b5b7bbdcc1714dce5e21658f107be2d90e10ec048d5f2734f04d58cbf384b4282c839e3c587fdd8657c8201309178dbdfae5a2e0f2f163474cd7dbaaedac90782ac187b493f4f36040b8a9321253335de7a84402ea2bb4a64664030080c69c058426c952bd483de6691760de0b8d13b94ac72c8fe57fbaeee54832b7511113bde450158ffc96821493e37cfb6d21156b3bc038ec64f4e4b3e1e5d01b40982f52041214c55800f9129c2b9c76060f9317285e79a666fe3452d4f13fe1bd1f0ca3254d7dbf0ca5d740ada8db916a1a8305d6969567f39a2ff2662f3642612deecf0a99149420947e7984172bb54efe8dd72f7cae439947c8ca79436209d6de5b65f42542f24c33728e5b3192a76bc9ea51dc1d248f41381d898cca441dcea3c515e9cf15729dcfdaad5c249110254fe2f6738632b5c2a4090b76cbfd4b23378138e21b25ace3635ef68f3d679447cc744ef6d880fd5329058b2ea9cca1eaaf8bb31c8e0bab1342975d268eb4e8fcefa1f702ce1636ac04dbfa772fd2e778ad89c4caa9accb6e3a6324be7e5213790d80b4e217f362b34ce1ede12677ef547e8dd7ba229fc808ce31491764bcf85593f932096556b7d404a1\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 1332f011b204562cc83d5f2a84606cc9afe8a6a374041192e02d13f425e75f9b6db68bf4004158fa11bd591ec7b63b568e18f19191b5b9c67cb2defb5faec6140f240c0014396e9d6e8fd5a0f84dda87f4a46c3b933c34bff55883adaa70c5cd3d69b93326fdeec53e7d1c8897494855f6d83c21470f0bd2248b0f731d45003b7f5897be4bc3993865a6a530952a6505cf49ef6c6e319a581f73a61b20cc678af45d53fa33e8be9988aec097bbaa22bb9544985a23c55df8a2a9776eaaa682bb706003f93d16695646330c8a0475f84900305b40f9b2e54d522ec0372aacb5109079d9db19c03595ad70350aaeefdac12009a4b9898ab4259cc5a29524f2000772440d3d0526cfc7f2d780888832b7527a3fc7b5df763d4d4d774712c31441269aadbe75378be716bf0b4f5cf3164707c8a8d300957564c5c1258119d988b59cf222950de826246f4fb5de111e8b72d6a7b038c9d03ac3b2d061a07c7d6d3b574860cce8d958ccf676324599b33e8ff0d24e24f25e4341fdbd872725c84bb666e604cd6e7521cb478aa80ec831279aea590654a8480ad545df96d89728c0de9e46718a6dcd74758ac354b47c772f23cad609ef6357266c4d21787528c16be7e2b74e23db435e9281029b6b941bf87c9ef9ecc222c2bf7d9feb05fd82aad572d03fb392445517e93ab6231ae9ff9354ddab4d49afa0291563e283e6ec3a7bec33\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = bf2d6fc105da6e9b202864ec36961da33148c02b3ef01919b54252458c48d9c47e8e6c44f68df073be76057a4ce99f7f39a42685522a1d3cb9f4a1a16cdacb079fc3f5947726478d403cec4f6d8547f8113ff42ab2c2a048cebb7f8d989d6b8690b52c19494f7dbb4e9f54b03233f05cf068f715006b0ba22d027b2b026c50690de6bdefb68e36ce3774ba496b4fd6eb9b4dc75756f492e91a7eff34df34739ee4c9d4c70e28cf0d101ef7ae131c602d3ad17adfa6fa6b2d9e290bd3133545d8f86fd9719068bf6466916b1fee375506f4759360dc67394eb5f2eb8229b4f25cf257d5ac798494f936b458f45e97bbb0e555c7ff0a83eb4cabffaf0acb62a5baf3eb76a571aa5c6fee066d9dcf4ee8e114f9b1a67b89de311c2d4e6305330224c10aaa8050c30f7eb611b544c74c3e76f38ecc193bffd82a2fb5538763db40a58d86c5d308d3fc40f7e9d2fc760ab91ec17872907be2b5b59cf8b63c5cb677e0471005eabce70776361e2cc91e98bb925d5576d5e9307b91e30d63cfbd1b77bcbe30541dc2e6367b75bfde9cbecbdedc7b6e83e201716434fc159705ae334e74417e35d5e08540f59061855cdceb1bff124810d6b44c673803257b8fb0d1d381a370d55f3bf59d8364299b7fe2f3ce0e0c8573be935c930a7cf301d5cad10601b5cefbf060e75642c9f6110df8739346c26ab3e7d4eeb8573aba901cdd7f5bc4\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 5924a0a489677abc21003678c30202453cbdbceb80a0730c318745baf67b9ce438861e71076bb3981849310aedd78866d23b493ba42c37ece84044404f43664dd2648fd0e2ccec96acddb8d7ac1a73efd782d994c257b367dc9e84433b09ad4283b87cd6ef27c64b73a33fff9bc80314712adf54abdca29b61722cf38e509de1a7a86100605bd602f4ef5511105c50b1b49c51fb974e9efdde71e6b83858df47228e2e6de6eed91946f03c4b8429dc91d76f449fdc4caa251adb6b55840540b3ea379ba6220a6ea75fc1a716d91fab436bef8894501ec2fec9ca25b4013ca066e4a6f093bf3f2c0fef2965b14acd44c032f28af20d142feeb35eed9f3b7e3339d39a2d20069654df27f6b2577720b3291c7f65dc78601e6088e6c81d9ddfc207d47472b4fe0b4c633640f43c8fa0ed860e9624335d6c8c873b8a57c55c319975c96cb7e1c2c91ba4a4bec588d91837d7698de14ffd27ca6a1407e6cb58657b9a9ea050bede8d3e15d8a1ae9fd5bbe6f544ac0a56e95f5819025e392167db36abff9dc7e22fa1ed8f4034f77b89bcdd472855b918d241608f5d48a0ddf72b97fccb8d5cbbfbd43176d0949c48553ad6d56412244c763deaecf92ae8e09432c871eb2e62c1fe0f385e3590fe9c39264f00bc10d9280d385d88e28a522199a9108bd6d76f7d0d12585c8f6671074ea8405d2b396da5a86d11152d7ed86935e84adc\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 18ac3a1210812bcad60da4018b757ed3494d9f41e8458fec434aea32dd9497ebe4872c19643ad7692ceb186179c168f9e21a58f65531c494f18cdebf315cfc2ab7e423fa0e3872bd1c81dac4f85ff2192c9efaebd2a5f2162a72d13dac495557853cb10f0fc0f06155a808a21202f5743ed6df409f3e8e563feba4b0b11f3fbdd9646a2af4ae47f375dcaf2880ff199f56f1c528868f0bb4ce21434be80ab0e4b8d8f0ad76002542d2fb1d582dca46cdac63192a1b1a23b28807ef569da9a4dd9abf31f6a7b6bcd1cf19cbcd3df50abac097b33ef20dc1f9f372c070c9cf96b8adcde790e02bec4e26204460090fcf13b9cfbb71122c29bf22c2fc1500fb9bce140abf739f84822b4f7c8b8a115f5050993cca0589c5f762bb290643b13d39673238f43219af66b2fe0fa426cd05a774c29e3f6174b210f1eec5b12d879890dbc4b3cc3c43c17ce6d5d4964e3592475ca", + "2aad44b0528f83835c328788d3adc68050b20e399efb422879bab8e5bdec8744c2376fac385abf5f68cae5239a1662da8d56cc048d1b1f55646dced4d1b5d79365d29b330abe412217eccadef0f18e37a2a6b7693271c67143a65adb96dbb561dcfd4fdac0ff9d2ad3579f9d692716ca28008294724709756df98fc53af3a24505294b74d8b43f5ceff8556f021cda4bca401b21f2aa9af455da7f8ad45b1c0c31291ff00e55620480de1fc33f2c96f\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = ac914ad805a436102bc7f16f93f17600f5f37d53ca361b03273540f838e5b216cab3ae38652a1b23b25db59483f2fff00a369a80cf99d3d0b39d40a66cbc5491213c47f5ea013583653c68eeb5ccdc701a6ffd79f189dd6d6cbe0dee4ee7f537ca3d0399c7ed4171bbb27619c008745227ed2a45535a7f70684d2934cba5f35f60530a27ef9df9a122cda908c357c86ed656993eb8f700b375d050a7c5308cce03f86efdebaddd0ad10e14272047e504bc12145dbedc7fd0b4eae560a1db0688ff1000b4da2645c129b714ef72117505e458bced44cbeeb331399841296ff1ee9dc926edd04f95979653307a5c359b420face9f3b6d8504195bcef9911fb25db0bb3418e87370541a160c53c5db901dc397fe15f9b86f68dac53c9119a6a51ae60005756477fda826c4e0013b272fb2b029eaa8f87375c20ea9626e250927d9649f69ae9e554b6f993ad0976810c3c1b1db5275e1994e8f066c998190fe116bde212b6f11a7efa6c76695f324697cde80faabaa97a9e26bc4c0cfb2c42be2021406156971a74ec6b16ca9954c3ceec6f39c07e9b3c8d60a4c57311d5ea1e66bfcf3df18e3c0cef0e7a791db286e9fdddd143644fc6dde22854d3081fa0a5acbb4e50c14aaec6da1ef6698a20e1d2c1ea6a9f67e4d4658e63f7550e84769cf9d7a1f29ebf28b72ab2d35f7f079ead71abfcec576f862dbd32f6906334384660bf\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 94d625e64194e4ddf817475a9b0c6ba31804290ff703f39c0f806f54c200be4522cee5c0c37a350546115b28b3bd503f3b9ce17cb485e4c2875a48dbb5b664a280b971f5f7e3f33e09ff9818cb32f14e62eaad82bf7af60c84dde0be79b51c0764fca7b2eb6b3c193738cdc94a3177af0fc6e5fb2ad97e3777c423429e52b7fb937bb4d3b9e0851484501a1c77d0e0bc3b9766bdfcf58a7a909eecd6fd2984f5934e0616f56c1db1b4e72992796b00d7386890d6906170c8349e0a313599024ffb3ae5b7f7a857f9cf91b7b90460be3c975156ce3590ff8bef6eefa4d65e2966e5bd510467d864213367d3ac6db3607b4c6b773078620905d7cc19094e0407f4c92753971227e9888005d1cb12a855563552e610537385ce80ac1eb543ac67331394047c12f4c1f29578e62062b078bcafef26ac9c6a0a306b68cf0a717b99641ea7eaf5677d8effaacc6b6d71ad713c120426b225842accaf4921b9a96151bc9334c545e936462b5eaeac25ae02df0a2c4e76167a4091182d2159ea3d1b2dbfa45fe521fb25aaa56b8e7c5cb0746ef9c984d31dfbc95e40357051ee2182e3a949337e3eea4074ad2d9c0d578584f1a01923393ead31338f23dc48e6f9743f4ea9afa98354ea3c6f657305b4c35eebc391f1601a88e0022601de01a5caf66ed3fc7107c4cd37961cbb953547484efdc4807bbfc8574ee0d895f1bef46437b1ce\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 10158b081c00409582fa82d751e779cdb9501972d673a5702d7df6268c8b6c6d76ae8e98ebf558e93c4460f9be3bef7edcd4f78cb3a8bb5893cd055e884d72525b0f249e2418308c7e81b73cd72fdb5f0710b01878917677019fb21165fb819451b807c5b6caa23123e7ff0b889ffbc3484690ff2484acaf8030b6c8221a0f933b82e0b2f92f3b3d17105e4a52dde787ca4e37252ccc060bcb04d9ad752b03e85de89d2eb5d455a91363d189c4f8c0730cd165f4773089896b460584d4048837d9a18941aeb2ef5172ca71d44c72769f34272f612a89691702047ac079c0c52e77229a1baa744620d3b551a26a3b9ac18feb2cfe17abcfe3b9699b2474478ba586b7fa19f8f582f9f57a96a414d81dec30027e2784e031e52a3913de59fd5b5a6645fc71e162b73f0bf37dea30278a50bfff343f4c9f511f1880dab8c53871faa5683c219877d6cb29da4ce3d22ccdd3079f74953fc64262be53ae4dacdde65bac77dc39634e3955c00d817e8321427b6643dbf9f8bc83b85e61c959539e18af5efc22d4c22a18fafddd36b4f18d6285cdf37452d4f6fdbe4da2d478d11c8b5d1ef5435b3c9955a488e76b049dad19f2407871349093020f7879a950536a0a6c0f07c3e7eec951c8ab42dd150405fafc93abf43fbd895686ff662efacf9e3d13aec7ec8a8f318750715b45074c277d25a6ca71142dd15920d7047a4bb4363a10\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 5eb6e05dbd5ef027479a4685b3dbb29ab9be86fe8951a6d6908643a94d8a6ffda59fdeed42df9d400f8b89c1341024560ce5c48646981d6454d2301bf4f1df70be0af6c6dfa2b312eedad88d4a86af49e4c8d8a795b9433c42d77c84fe58035b4ceab914c1a9a19b37f18c85a47fc4449bb403eb1f2de3bc55a1cec6ff7de41bdbcc708b8af6b3776464e9eea900f910e807acd7ba886a7c2b76cc2ae5a6d372c39a6a89035da6934a09be6bf632392289cedcaa1785f6c008f332a887be0b148381f39b5d6da18b1be87920cb5b598eaf87dee65eef6b51f985d02cf5e2658d2847aa05776a81ff06f84bf9445b02cfa5bea1529e216f903b75216b794f3536ab3791eea6b38da91e732d784a870eab2fbf96ba60685db8d618a6dccee306bbbb3fa2c3c755d8a629099593faad78014c9f10ff9b949ee0aeba8bd3b16ad55bd19f18d14820c3a99ed87e1c21da8409786be4cb1b5c48e11fae272d8fa65f53f0bc2b79223f657d19a37931a73b4204573049b96d2e60d6e01e5ece0df14776121efceba7252dbb90c3d889fb7dcb7c43dfae6cdbc5c83416252d3304a82836b1e379046d73317598e6cbdc13bd7a2e89de3e92aa844f41a343e5e682692eb4ed102b3fc29e89567d789cf226811f08fc6d7ca3af31a363087c9cbed0201a2083225062710110395ffb2a2e446784b5c124f6597aa787acf303a0f20fa336f1\n\n# tcId = 113\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = d42e9d65ad28358b663b241dcd920f1390247f086f8cb360e6eafbefc46d8cd3e58ec96f691d39981ffa2c6f1951f4466d71bba2cdfdaffd85646456146121295e672ec14b5ace16b2dbbfca9d8d2c9d9c37aea8598cccc56edec2aa30a592abf542e18febbb8e075b11661676e0099002251faeeae23557efef2d8ec21d713c2fd85f4d194318f9763b81521c270828db050e12248dd6cc60b36752d17d0d3355080370cbcebe4d7323d022b4cd463de54bef641027f4d1bdffcb23f6b0ca3bef588122e35989629c209337bcac8129054d1cf05c057c9ed266ef389791cefbe3b38697c87b8362a7f16bc2fefcd107a99ba1b776dcf83177e5034999cd56fd184ef93320a88f40c0eed889b3ba77a5378938f6c8f0b822e7f4afcef619823e789565de67a7a3daae4b4b9d561fd7361ed000fec8236b94cefe60095c0516f3ee3712b9d3dc8684843c0683881d0ff690bd82dd29e15349817fa12db6f8017374568e127db29115dd9217ffc11c2ea85a563065b3b21372a2173dc0d21a0f8008b73ecb36b605cc17f1603f0d7ba3b1ce95593b77b572ecccd6c4297c60bf260ce5fe07729b75005a9ccade5ee19a04e68549fd926ef629f8cf2f956436f47bed5636afef7cbabcb4fc9c94a190cbeea82c79512b5938f9a746b1d651bd6e1944b3f88289d9c377bdc463457e3e1fcddf8dce6637d88cafc53fa6a3e2078018\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 0ea22f253fe76780dad6680542ea0f0b559ba604c7f5e16f1f248c773092f6fce860792b7c0a691f3b854d8554f098519084df3cccfa3db83ce1a172edfc672aab5e8d13ea73b15457b0d497f268a5816f842d9d787485dcf1655f6b73378c8e85372485054ddf409a5ce8ed8e8e2769fbcf58648863f0463d4361aa7c32aeb1e2dd3742106a49c684f89cf9f0871c33991ea99f488b81b042721f346400382deaed4dca657ce8ac17a68af64cbf9326088b00913e41885cfab0a551f097b59e2e192101148634bc063a8b2301acc3e5e0088dd1d47a37880c28883f87164b4d667eb96733ab93198c854658a4380b28e5ace8decade9ac82da2d889ec0092d361e34ce2664cfd9c52a0b49a45aee3e65ad4b545fb8c2a9bf2478b7c3ad969f916ab44cfa26f90bc802400435488512c63c83a7a46a1482f89777b629f913ea11a9b7c723c672b7f3f0396239ed75b329b94e1aa33df30523fe904204983db25d80396937c439709e443ece935e51e2d018b6159dc33c064598db728f7199f53fd659df0f6e6cac74e97812920becfb20bfb71d31fb0624a14e521c7a88086830016bb22c43a4efc3fc2a7ceba4291301c5bbb4aa0858823b65b0d90f0baa680809546f0dca13b4dd62f76cad902b522106ac4468c601218896a73da1971d7364e0dd1b6bfbb6f372dcc3ebb4a3f75063b20d389f4ebc5a9938c66c278b5a710\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 22b60129d2653639fbe477cba3f07e1c8a6f05a5eeced1d0e1d534acee45949c41c0059a2c24dde635b3b4c11b5f2126eb67d9deeba2067b17546421c970b6f6c72b66fb0fc992d8ea1c871b1256a99cfbfcbf75b2fbe130e2e8ffb0dc1b57d19c2a8ad3f944e27cb3a14eb444c84b2227da621610d3569907fffe581708ac09dcc10d0d4893bf46f18de5be2a5dddfcab4edec6965ca6259c700edf114bdc86444dd2a891ed114c52471a7409f81da490509502ffde2af5ffaea6cbc9c6a37aa18918012a4ce9edec18adde61b8b4f7612e312f466aa00ddf0b27851420f61901d94efc0473cb1f5ce22090735ead3fe18e7e72234ef758fc0a6dadcab006ba54166724099aa8942d7f3ad90f7e0031d4d3ecd79817cee7a0808400deb50c1f0f30589dde23af0990683d5463fd2d3a661edbc9cc79681098c79d61291d1c225bfe2a1d53111d35164e23f3e1cf176f41d292cc08e36a70552ff0114cd8b8ea7a8fe0615b0df6113d2e300a142803132bf296630f331190a33f040d5e8d22ecd8b2aa044d280d72e59a98286e72583521d075be2c39d2d5c35c97b626d571cfe214eb4ddb9ae4353352f6634e0a80e31d1eed3adc698d9652041461e1dbe63ab3cbb992b8dc32ca0ab5e8e280b19585df23317924b888b18416f131adb1ffc30c7e43b330a5ddadcf930ee026a228c2faaebf5678ee5a78677dba739fd7", + "e799\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = c31a07c948030712faaa219622fb7c5d0b617ac39b9a2c64e944dad71fe7d4c5ac41ac5b03b4d2ef702f86a80da37124c396efb3cb49a699a290a2aad3d94042e51448fa160305403559814627d6f6b71f4869382da10d58e3f3d9b960f3bc6d96b2c228ea08eb37d65099b18ccadba626b79d3feacf1735999e35999dd0925d3384b621d97958533eaad9787159843a431e984e12d502314450336511cbf28a21c313a6308ac7769147caaf7bfe1acb28d819250ba87679a52692f9b1c2f833fbeb68986081fe36d8a9c91bbb939b999d6b4535e796368dad07ab86efaff9cf03dc56f91532e802433c7adff70b18a60c402ce53a3c7077884a3f405014c59fd2efc9fd1c2c008120bb97831b9ef1df8088e80fdfbebc7f0136c9f77e7ffd5123eda1e5d4e40fbec8149f227c5752b0c23035b0a5711b666db60a3ffb1a9e7e704f9704fc735b07d2347c6389c207c9aa17f414712bad469fea9fe6230825955c3bc54949aa3838131c3012cf9e0863cab77d95a96d37e021efd83dae21b9b16f75d3a97d72e8096cffd2f267992c27511b8e1db80c45efd0d95d55b6aff706aa37d7b142193d1ea74b7c359d4f6c8af3aa0bc439f35649d7161cd2ce79041eb268957cda759602d1e197adc6a2fd7421f0ea74a401bf5b947c4b39e6d39c19b18652eb04398e03c9f33d47acc6e3cd4744911bb8ebe5f3b9fa2ef62ad2eecf\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 0ef4e9c1a2dea678cfb6b58581e01ae001e67e8310244ccdd6b83dd34d3246fee465fe61853c2fe02fa9857becafa74fdbe59aa21166c210b11730c0699ed35e36a274d0952a88f52e5b60e948d6bc2684146c74cfb255f346a3fac2d7ba3435923877648803976112b19cd9fe347955d0100146d7b8279a3d48b4c55813a60411915388f40ddd87175fb09c0b4aca6b68dad94c811385680c0a54799cabe22d9f376eb73105749dc2408c033f20d21ce0082d6197b2e62ca2fad78f221d971c432445a9330fd06cab0cffbce8046ebe419bfb354a4c935be8d72e75f7f932fa45bc2fae7f6614d59936b669b6a81b15275d8ba7c9e181a99e7d82bae1e152c02b2d3f3406cc98fe85da5dbab2cd6f1f379c302dbfe80e82e0a368c43d4d45907dbbf3c58b2c5eced793e8863dccdfd4c503af9b69355069f1b5254a349ab7350a2584ec044af3ca4c2246bf4ab174bd0477b11d6bdbfed1a9d48f1693c761e340348583ee522d51c89f427dc5c74771f0dd33538b90249db9c67b879d65b65dc818c1b016c51e055be80e8ed68841001c396d19c3caae57bea782dfc1596dbc26a3642b5661dfac202210ab4c85d5a516c2479cbb546915fcc809c14e0db9e6b4c6ca0fbb3c1b5b1f00fb8036cebaa357e05c796b546fe31bb1bf461ab2b65885b48109fec7b215fec0df1459774c96bfa8624f0f4202cdc907ec63162dafbf\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = ac7d5e195ed9531de7ab8c86b4ae02c6e0c8d4845d2adfe0580ef3331db8d3267f83d0920cb5384735e1d70b053613e3cedfa84ec606fb2de2de471f40657e05493a05ccd0618a0a1edbbcbb997db604b122b50e12171888cd0af9c5e87614b7a4b91a714e45b1108340127442010b50f135f2e00119d25b32277923ef98c7863c678ae2eb44e8078f60bb2f43aacedd95af37d8d7e773e6405493093c20d358cca6206c4f76c7835bc8b62cbd98962587646ceccf57ffd3a29e1df1ed3e2fc7c69dc1a5c9bf13cedb130e685622807fc1f5ea48de9921f8e53979654b819114fbb475ec43467250dc3ce9fac210924d29d09e16594edfe9b5ecbeb90c14e56ade3bcb0f99fbcec5d0b44089ac0f006b3bc7e51c04420b6b2cbfdc850602c461672d4d1f19bc94e016fb756d59b0818356f07fa9396703adf698a0f29c6709ceb2789d698896ccbf8aadc965596d9072327e84418a733f3ada1b9fe3a7b50319f66a948fad2554644cae7347dc184137ad4fee0d63aa1766f935187d842d4c7a4f51d752c2c22916a2abe41bd1cabd1e155e1637915bec41a5e792ae8ce41917a8041d169b036f705daab59f48d7e4b8e7a4c63b992a4bdbf7fefb14cc76d14936ddd7682363a2b5e9782a0d2a0b3d1cb2d2e4974e4f7edf4e50ac02c1613c33018d1d85b35b7bb435ec957f37b693d736f89769adccf85872818943a67c93a8\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 6fcdaa3bdd2851153a88d3ee180d531ffdb082b548f0ad27b1dbeaab932401c62bc47a6cc41a551f6babae17fcf81e8b1d290350d6c827a6219819e9796f1cdec2bbc8a2c75b59953d9003bc0e5d1e9633563e4120ce608c758ba03a779bc54022303fd59bf1f0238fde26748ee60c2d87411bf0c93fb67adc1bec65833bf5d3e80b7a34c8c652b67f73a36e8dd3e450e16b8edbe9623fc895692018899437e14136b72633cccd14703ff9845166793773562f5df070496f5e0b721534b35a5305699cb5dbf56cfd62c1a8527f7d06604bcbd74d0a8f8fce4dc8733bd8ca3aa08fd85a05e2044933702d90897e407b274a6cda2397b58abf12f9cdd377368131e435096915b1031fe900d308196de742c12f156c26e49d7d95c44f4cebb16de3741ce6ce97a4c932a3baa286f4b0521afac0ff081976f028f8e6cf3c14bc16d905818f8c6c5fa8befbe4f753da2c335181e99c92ad106de82aa152fafd8507bc0032d68f22949ff03e3dbc829c513d5c6b4fd003f76516cb2b23859b07b77131fddb427886329db959e4e3553eb8d049ef6e33e42090611fea717ab3b42d56a1f678b0e70dffe70125f5c924d8d0154a3efb75a555b970bde79c1c6c64af6ce2b803e46b8bc94d7db826eab51d9fd441affd173031c0b28447aa6c2dd666ad32814c753fea22f3d816da523f3565e438d73175d508a1cb24bbd2a892d87df509\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = a5a73b52429e9596e8dc30c0960699a9a39cac3a14404c0e79db0a4e3c81aeb8391ced2ac1fb2808f6d45a8e84432053e9cbc8bd12a3bb862b067697c6d8e602db8c79524ab379fb68da90aa27fdc54617cd4e27433253dab56fa380fbac707a8626129e20a49b207cf0674633e29801eb034354a5252acff7ffeba3d64b29bfc69c54480fdee04d7686b392bdbd489da711de0656b7b86aa174dd78a80e6ddc424e0de16a01c25624f200a19178054835ceaac2c20b183199e62668f3c8141c0c7e4048ebe7623e8b511573dc12cb03ff1023d41484262a0f8f57a73a6ea1e00b3237404dad1ce60c0d7f40faefed4f97f56aae395c6b28f6d2038a769cbd4ee32507c17b4bd17075e855367053b5c2eabe33727c1f54e0a96d188da41220d57575efac1ef2ff9784e0dd5be65bca24e918570c52aff4419d7b0571466091a9f68e3d55a59216f8f69357faaafef2b0627e85ffb6f8cf2338d427952c49e7430a427a5099d22bbee55e8afaf266e10e4fac632769619501c35f48789373f155f3f12adc0047444413a9ebf490e6fb68f8f75a575971333a14ac669f6056f1ca0196761df6a19d237e1b60895386feec829fc7ee1d74c4830f9435562568f858a75dbfa512782d9a3f817cb40d6a496a7e6161e066c8529f1d925eb215ed88b2984a0f98dd8e28886865945ff1be0789677012ec93b88c9593c4cca14d5a4a09\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = bef5816fa3b15f171af504f2ea184e57d3f99474ea62911aaa3255a3335293e1fd2006f814c81130a763c9c65cfe3bd040e831f350ec7b4c513f4499899c052638d15baabc13c9e8fc3e7b312f869ad557ee4367c38072a2c9886250c1433c44c4ce88fe65f56622ad336729d1627af94119a81f50f0449d025f8401ee17cc1eebb697c65a97caec4fd3e6e1b5af854f1763a8afe5ab1893541c1f3105ca5f1e36124ae1a9a2b21a252f3d7f4de6fbe07707746b303ed98418d5694c9e67d2f546ba7e6fe71620ce3793edacd477948ad09aa8d640ef91c87e81b43c1d581a1ed662ab5345143ee572462d4b88293748964f49943385faab3bd2d067c7368522ea9daa137016fe060e7c5b561a6e4e0e6e63396c44bfb93ba917d873bd2ce382470763935afbeb086071268669c82edd9048aa96d8f4f9f329d8a27fa247716e60d122536f3b9455897c0694950a9f60e53f88380ca5cca2339faa3398a766621132671f7c9693cd2f02d21e7abd33244d63622fdc156321ab6c7fc7ca7efc56e28ec52148470d8addeed698fcf0ff8bd01bd64b5b5bcff96e82dbd84161d4ef4c3339cbe7b82c36b529078ccd6fe42918029ec5d7b6a69f5c82a50364e040dff69ee5a7b015e604ab43aa46691ddad543dbfbac3785fecb209817d0348482d5671198fa124d5a45a29ecae1670a11c6c7da496cb10dec64cfe80761f76b74a4\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 7b74df1019573cce85ac1fb8b57e46c725c06c4f44f515a653b26f50e677600b5cad055508d54c7f73c50d7df2822916716221df94bb6a87b0abe955ebf1216949a8827e380fd05b4e59c86c4d821e244a26ebb0d5221dd461d9287d0cb2e9c27f9fe5c53c3c243b45b816902b5d2ff3a5650ecd749cee7d69e3fd517e56986739f66d82fa54412ffbdce94cda4b9523fa177a09a275634a014d594efc16eb52c52376e9a1c7a52a6b01f4ec609dd276eb40bb3149d8d2e1d7ab7c1e7e391770e0f821495dc9d574ab859567b0a1d32c255b398d38a6d75d8798f8c1edb9ef2fa47b0f27b9f6ab5cd3599d5786ba01616a41a385158f92f551bffadf72a68d53748d67f909b85a653e04f39722ebb2f628447e7eb83f75657ea547af3b722bac597fc2efe61e540e4ecd5de24d3e739c6fd219220a37a230834d8d0238a09c4b16fcc1efd85e074f5acd71daaa4ee42a144c9bc5a117a9854f07b62a0aeda7887c13f56f98f73d555f0b9ac5bf933887639ae6bdad38d3c0222ab54bdfdbf5bcb407d27b8c20f8f45713905c1d6d9bd98160db03f7fab8186dcface315c27e361456b7fe8c47e25a7a1044b6def6c6a88ec91af7a841d18e5efa9d301a35817e1c43465c273ad19df89ed7d5ebf8f0a6ad808459084dd6124726491abafff6f95e0c1fdc8640d5e6a7db52916493792514ea858679ed9d660cb73d7d84f6c09b\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = db24a033b6f1f1fb4e43ff98b0612b93c5d19957914cb21ca78c4cc6b3ad5242c13f575302ca531697c1b73cb06f1b7d29d017224a1f2e3fef14c97aee8290d86c00922af0b2e82f7d8010ed993fa983ca77c5dba14d491b32d7db94c56bdc1159e743f4812d73b1103badb4739f2f8a1d4b65d4b6c43fc7b83f35c0f30f0d9177219c133b9be10873c2bb0909c6a3658e5e1b3eff12b0a98c39b7a6b0121b24068511374", + "6834eabe950d61e0080ccca319dfe0d7fe33b28ac7d7628691be5211f2e1ae02b394aa9c88b1ad93ed64af0eb8af3898daa98d384e6751767b61687a5a54f6adb4c2fa76319565a5236253faf0497a625a62df92734799e192464f792ddfbb8f64ae65fa1fea3e3d0c4da249c28711db543a588493c5d20f42baf8812b3b41b059c7bba828700e0c032e55ef1c60a1a4d59dfdc2d9f10f9e72e24477256dc956ecc69af456409c700805ae0f04e9fd42c840382708e59214ddcd888e03cb96f2d22d594ec199c54162eabb5b65cec08473590f9c2ac034302391e1b2e9ddb78263bea393992a43ea1bdb3571075d56e2b77f874fffca00e291efbea0efdcb813a5083e4b74b1066ccff5e7a77fa4168dbd14ddec94d523816ac0289f5285b63ece4e5aa48854705a03dfcc6e41982139fac18f7e4fc0893954841be37c18c4f9b1f891c2b8811a60b12ee62b3085509754d9f33c30ba808581168f8\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3ec8c8209450d96ed0cb462e1908c450926e7092378c8afec5f70636b8574e85c67635697b95b3fa3ecc024e5629c68435736d1412ca8665b77670afe1a48bd79d636855e2f85ad049385846d275f75b6e77bb69251112352f2d438a5b0db1b71f9f3c8e2d46744a4176ac3a7880a36e0afb157de03e5d59e01fc929c672c144a448c77bde4dda5d5a9dd74ea5e53e07d07e5db63d845fd1a18114548a5098665aa644601d6e696bd5d2f81f1f71d9f2e55e456042d7ff36d813b19ca420d608c8704efa0519e2e147f155c5f85b6430275b5c1fa913f94d78911e0f081f8749f5bf7dfbf21a21fe50312ec40b8f8c9d1c1d955d0a49e668b51fec3a52d268dcc826bd77fd5e0af4f2c447a51dee40fc15faad7f797e0db9072faeb1fecf7cf312814c7d854ff3ce000fb0680028c110e608ca25b8902709faf64d0ea53201abbaac6025b87992d961a455a2778ff556015becb6ca41b477733c22d991cff0416b842ec3d86c5404b2d9ed3f47efddb6fa1f0725385d1733a44bf75b51a6a6fbe25af3ce0840a95f86da227e7f93f30ad47c033660c45013be292820f33d9c9e5d4f68b5e05755e18a1bce10003b7d2ee97932af123f636295bd8a13e07577ee3f3bc46ae6e471fbfee565a3b461bab9af67f18e244bbef312c8a59cf1eac8e88d4ee1b7e085260c0507945dd907ed6797041a594b88bfb1f338669f06984a70\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 4d54e56f587d6fcaf2e43ee1a8eff33e833f83d91ca092d0b536d0fff80ad67bbd9926e7fae8b2b2215babc678e6abb916dd19b35c8bacf99b397c8ef364b9d75b595a4dc9f07d3d4a59c52fa4fbfea7815a2196b7971867c8bf931705be8f106d150e71bd7f7d652686ede684addb0a29987a224627cfad213064c1d1d6cfac92f88fd9fd0703a74741a71d43c8029804fcac4d14f5d8591b15eeb3dff5ba654b521c31cecf2ed7a70014c748f9beca3f1b69baa4fbef8400888c5b354a8f6c80587675435927699f0894e109b21aed4ea54ff60fb2c8298425b2f017db44fce14f6eb4fb95759d79d805f113493f7d40722fa37cf797e03b6937179db4438a7895e74263a93ba212e7410e17251d5fb49fabf05c142c9f4649d44617652a5869496345cd48245a3fbb6dead2ace71b7fc3965de6e70be503b2fa953bd9fc76f5be70c0f7d987a323f8a221b875c805282b6eb58a6e4343eb3caab62b902c9310e56ad50fb4adfdc68f11e9bf94d76410bdcf4ebf05dd90d341f025ab182bb8ea0e36579288f6274d47c6c25ea8650424c2e12682ae58078f6bf5b0772d932aa77d837c2ccbb0856efcc564a28a03fe57e9c674889bda54b452388ba8373cbcc26c74e7e93edb9cdf6b91d22fedd014f1151f8a5935ac64e28bf90bf71d92d8415af15127dbfdeb98ef80e841254015641596f331cf5214edb7d8b3dec1f8b0\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = 3393a6451aa65fb86560a8d01c75c99485be4cf363e43f829a74ccadf02aaaaa85553853ed1cf0115ed5358580eed986a3de779a1feb8e4e1e312cded0824a0e1b5669422d00ade2d77da369cf2280a99b9cf42b6c2a7f3038aff49599555cd9549064d806625c077a85468c5d36fc8ea42078a16181ffa5f75db72f0eb19d2bbefb5ed86aa80a821078dc42bcaa0f206bf9712ced9f18853a6b24e80b418a0dfafc6f3d25f7ac4f20b305fd959c8972eac20fc1dd962c0e504ed23d2231425ffa5a8ce0a43216f07a3cce90cb503ace3a4dc6e43f4eb9a93a68a0eccacfc5300ce94a48f96cedd1179b294918bf6b1c6989ef4804bd62d820a8e9ffc04025b7657290f74fe6f02f2f6c6e0a5638d2b806aeb27110629ab78f1d4bfb22224e8ca09e47b118c972bbd3038024214e0d2a8d939ce06e0f13ad60d753fd62b26a83f9b2c28a10ab6b8e5112d3e52b03258edf0fb204ddbbe1270e41eae54c7f92c2f65cd287aad76e6dc7724711ec03b338e3f6ccb9c8c859f878c281dc0bc61a990d244154b39cacfe47b92d7f8752334e859b5796951ab3b3a09bb269de282b8530a018e5d4f15481400c0f3fa5e60d0d14ff4546598ced7f73a28468639cda085efd5099c12378b12fa4067c1678c16d0954f4b5954a48c2deabb4f694c171d69e7efdccfd18887e79207fdfd0e879824ab991aace5dbfcab0826ee8f44efb54\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = d7084e9d50f340dd41618f6236c0dd09f86ee1858c77e29fcf82cf88431111edd025d3ccfb90039f5b6315e1eaf2adad3f591f3cd4a0ee492061a73da45668485dffbec020947e3f4a07f82b3a5b4797623867ff4d928bd58c19096f604656f60d8e3eca9e218fab21d3470453634838bb52444ae1e2bbbc553b112ec3a3c0785bb3051183fa28ff255584d75b445102521c9376ed9114e84f7a22de4021c334e7da873aef6db293903a8d03cdeec3150bc1890d493b418ed23ee4df2631347247d418f201c04ffadbabfea441684621e78425b9f5e6dfe89977e7d5da88720595850b5e4586337c22c1a4eaf35d5a40b47791925d8ddb9471de7c8756b5bfbe1a440685d3c99fc91f73a334aa2d2b7071f5b5cffa643a40b9a8544b725a1e9f2c2bc62a4ed42dd4db24cdf80f1cfb8e9e5b5b86d200b5b950de96dbae50266f5ee7ec6e4e2cb2a635f4930e0b38d1028f878bfea22b56acc9526af21296a08849bc1c3a9b9f90686d4a0426dd8904fb44e3401fcd6fa3a625a8523184d2e03fd6d341e3bc365bb549c5307dd928cf1e409e7d60a1f3bfec1a95501d32eb79b38cb50cd5202f12de07d466531d85e0c668a70cee060cc3c46983cb488b8f79ca5311c91f2b90c8446fcd2a58d5617709b79ebcfd5234c7103489c4d2fc3d7b3387904e03bfa9f8c5ccb9d5b3f78eb05943273dc8a940ec0f74c5910dc93da81c\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = c08f38df11975c781af71a9a75b80f89ca790240533b40de0363b19584977b411adbb2a69921f53d0aafe040ce96d6356b879e0e4f24eb0dc04eb8b3a19ef578033514c63ce08a01e5b3cade4d25ae36e7c105450c7c1e2f2b4077b492a3b23961c9c40616617eb081b8a5616a741c30ddef99e6fcd0934c4af56b99cb48d4419dcb5c0d0db5cabb1a3dd11eb8ebed9a6303efe4b9ba9d00014b72a03b0589cbf604a9a13f224d6540a2881c180370ab9e2c90c93e5c9bb5e58a0926b6ab75cc18c12431c4a173e8c3388170a8cb7100193a8c644ff27495d98fca0a5f0d49cafe618c769cd5831707c8baeadaf32df0713063820173803c58dba9ce292b8e318b93fea3b40d75ba0a0570512e148d9e84b5535ea70eca59e450aa053782ff8e5ffcca140dea1dbfcd37ad8ba3ba24e6087275e947c17a64cbdd8488bd6f98f9388549b00b3389d256ed0c6043785de6932f25c18bed5c0527ba46652f56df24d3ee969e109d9bf23ccc9359603648d8e7b064043c9973931ef78fd107a9df7128362b0ad4cfa449c86fc613c47d99222f9500a95584c746b91dd729a987bc5de7c6bb926d52081945a9b42ae061347c16e71d91a6553109018d159fa7fc13a8d0ac9a57b132bcf7947f19e0444148173728397afcde410416b1360ad1e37cba2762f7e15ff2fffeee2e09d03b83ace24e9395e3aa6a0fe97d035e213164d1c8\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 21aedb00191da333a649ecba6a9d715d4b5d379a854f27c6d27c2ce892d6d664664ecb53351ec7f1bf7573336b3bcccf7fb25ffdc3a6feb3b95483717c08eabdb8d9e3a9f91937f495a965028a1c89dbcea8390032d737289298d6124197090f10611e418d7f6d2b36542549de777fb8d0a257f7ede55a9b63a9b0d7bebdc21b4b8c845e43faa271d55d87781ab76bab9b57a2e2237c466bfcdd8e2b23f8f65582c2105aa37aef7687ffb514df3629a367bc2d3fd183199699cf93c687611fc8f190efdcb02dd6b9e228361c7a72c2ebdd5077e09ef866e304dfce2b4b80fe99b42a0ce9f47b8ded420fc0e7e462a46a82307d42e5f139198556c3bd74f7b0215d8d1552c079c895efca2f9de22bdabc46efcadc355d13cb8ad6262f7468b85eb1b1d5c13a9aec97884421914b474d9c5031f8963b5d635cfb8dabde4ba9550978d0bda9c6ea0e28a7f78b1a6ca82185acf4412770cef4189b491c16f77357df7b6b848f4722c098e20cb7c249f3883c029e76ff184f657ac4b38995b428d7acf40239b101787e5c798c683afee7fe19fcada3ce41d45e63d06afcc6baacdf4287e70f03d38ece2b523f57c3a74f89d23c9490f0771cc4259b1d6382f1f0d6ce95e7aa6002104c2571d08f201f57cc8058628677dfc7c9dd631f648327c9478671291acac13cdb02d54c0e7a7ba5899b8757796d976e97ca64b18af462047226\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 372a2b118adb8ad8f08f5a1d9ad3688c8507591aef9122fb295c7aced53d3ccd26854a348624757e008de36dcdd1367cff7bfbc94776e762a5c1fe61d1dd2ef8d25e714cc68c2651456bfe310b2c61d170bce07d2d6a574eb6a4fcf0606956d6c18a25406ff80c0e153fd8d78dec66d319a31080906150a8fbd3a6b5a42fc8345be0bd28335baffcdeb458150327591770697bf785cdc1774a34ec740b9ed76f386d941a81e0bf8902f403526797ec5bd5058700131bd42c9c1a42a7f883a85592679f1e81647f7a60981fb5d0975ce03366d4bc5a3cda125e6dde4173b4b99f674e5feb0b94ac15e4226f1817a43761b7871a82a8d0b5a22b30c3969eef469127bb01c3f8be5e35de49c41b3713ca204d750e191a5a303f03ccd67a3d3fc1162b197cdda6cf604b5d7b36c25930f5ca5029f071438fde1f940a27055cdb0a902f3da6f57f28ae670ea2d3d5554c99c967024386835b604b0fd3f148ab081c8e79da6ea467ca16f14c938691eeb83157", + "4dd35eee97a8ace57afacd1f5c564db178ca057f596f5f667fe7a6b938075c9ce3b110bd12ec2ba3b82c5eae0d12b6bf1962496bc7e13e4ce04de5a1639c261f9562aecf8f87211821010b0a32b28a4cd6b8c1818b3ea248b5f11ac9ea9372121f30bdde55f28013c9713761a2c85fe563c58c418c08081fecfc178fd6b64c6ba93a9cbd2e7d81bb971132156b03105d\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 6c6f4014c6ea5c64e868215a495fb2e805065458db2bf01987d4457589d5735582c61ae5648d93ec37e3423f721311b9514ba7d59cad19fe731740af194225523889c451eddb5ee1af9b6f3e8da6a439f49052ea041010d0143f2abec804b0d6b1bd1a0336e8e1bf3aa74b817c212712f649862c68667abf57e0aac47b6d03de3b7099c7384669afd0b5dacbae4bc5c4d6b3bf52dfdc23c465d5904d6b6333ff685edbef1f9cdbe5912b4fcdec6c6be4ea77f3d913f47b09123a9d3afa48c231453063ec9c800130efaafe7beb7f7cce2ca5e3ea43529e68d85f93b11392e9912c9ee4b6df257c76d01a18aa6e6cd9d021d7d0d0309cb18b9f1e5a2f30972e57c5c3e12a4f5c37680bc1d1bf68911dbfa79553d993d7a9b197360ea9ea9ef6e7667b23b6eb1067d8bdba19a87d302c7cc627a4beb504860f17b89ff4e3fa7600d9ab651bf71bfabd89166033cfb5585cb6b2356391bdb06cfd034a9fbf467355ee91e19f25a9cd66b45456b50c8133e495e22075374374fcab1d373dbc52d57c1f38224b1aee50c8f0ffb34a7182220d1adfb780548289d7690ca5c2f0414c80e318ce0c62a3b74b793c34b708f1dfa1f87fed6d0ee5ae1813a7e881ef99b0f3c0df8616bde1aaad8571e106497b56c8515ac53bd24879489d7017f7f9dd182b5acb49bd3b76bac12ba7920b1c2e4f0b705a99e29c93963ca897d152329fa097\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = df88a9d6ac58442587b86def97fc8b0bd5934b841c15f3f1bb78d684060ad8d58991bacdd86880be01e1921d2a0701834dec7b5eab1ce4d6f11c314d4cd28fc7ea6fb63d4bf49c78deea16ec7ad3d807e57dcce387f21b643c7efbbcb36ca23d22ffbfcc27ae5c019a9974fe1543ca1bc894abf08aef39e25f4634eb04f4573862a73aff683ba42a8bf344f8840070dfed0bae179a314d235a6930079c62b22ed6a0d945d237832afe911ebab772ba0ab6f8ce703e28adf589edb836b120f370eb2c78c34a9f5d6258b133f350d211d2ee2955a64d0c7bdf53e957ab1ca4499684ff828aa51b844015bf527f89daf8e54f315144d0ca426fb67ba965a92fe77aaf42290609eb6ee7d9c098b4c396337a4e667baa50ecfc21d53d43270efae88206f4afbb58e94f43ba42ff3bf43ff665e84e7b2c6707d51b71155a734a8cee902d55927e1bc020e72154c06bfae645177142b0d331b480221c5c33555b9ed83057543219528d118b7e66365d9df9eb381d2e31da9b0f6d8dfcf30edaa7da7c3dd2150d9f5c52735c05723995d348c7bfd9f6b38000848ce4ecd8e91b445300a3744e453bf36247df120e5df0f9686d99fb9a5847fbea8b09c2b64003daf243c46e017190ba5a7f7cc8a3c8d3af7f348a757e814f673a8680311769b39288582c9d33de02b2f20cef728cbc9de9629b6002dd71f8e6516eb1f000e17158e9d407\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6f6718083ec44daacefd671314a9b2740e6fe164384d24642bdd71f6233d5de5bdbb6045ff38a86974822016f221d7b3d1c0035ebd7bcbc3f1d4e82bea0346f979242e5d279b41d05e30040d4994d8bfba56724a734298dcc01e7104814253f12ef0f1f677365a27173bb95aaf805e31a305e81d382142447d8c63a424a8cd5b130266659969cbf65f7ddf6b547d4e1bb752a96c6186bf29ffd52a9d8cebd61ceeebce3353b3d9797c6d1f15ab1db5d83b56b7c0b5dcfb10d68c963a7b819e2090645cb3b2be0c85919b114aafc7e08db4c5f05662a74beec2ce7f33a020987743e9fd7f580c6b17399178aa77c230bf1b0afde4ca9b8d5cb18442441f4ea54e5923adb44284cb0478965b5f7f50bf0f3d36eaf9210a5fbaac8deebebcf842d70f2386bde916c04120376c876e671f8df173bb12cc11746cb1b3a7bffac5576fd2fd670b95750b803c8edbf761f1f321251110994027bdfc300a0920ce03a18884d28b4878a1dc6ffe6a4710b37b9ec252b40f69902b737267f0cafceb3c8587c5e484f79abc607bd28135f88ceea3adf84153013afe1b415fea01a6e95793eda64b9f6f701e9b6a51d0f96a04f74a5fae2b19db2ad72d8cc358367cd8b6391e12a852f8963b559f863ae850777b2cbb602bd6a9da58b25464aa24315ecc78c104947b608c41d3589798dcf910fe5279c128c99d6c5467d7ddcfbe35e766c9ac\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 0c7b971b62c6a539a0f1c217fdf2796fe862e091e98390e752972fee87adf3a541d3c656962aa30f641a28972bd01f2074133f2077477e474f413b5694b872622a1798c776d001d76a2268b7b00020236e95b47f6dcc83e46074643d69545d4f80978c4b127be5eeec5dc87d3e5820432a23b717d276e86ab42eb9c87bea82f602b5036d6b28cba431460bdf475f2c74104d1155cf8004f083dd257aed7048428085a7c345f6e8359bf19a0e6e7d6ee100bbf706e3c7819d427d76920f0ded8d8d1a24c35f182198eb7f3d53bd4f85a011175d2bbe62918e3e021a1273a808bbd3639bebf3792ca0f6c4b541244775976815d5a1f989ffd93e5deb1cceb61dfd10a13eb2ad6b22ae6eaa8ba8c25bf64525dfb440813c5b7486c33651add322f833483e34e16527c5cf5cd881a5dc8f75e369610a301c6565605dcf0c631994bff502872ce62ed85a86412fe40af2289064a551ff8f5e22a79049398933a6d5dfbd4d525ac67781fdc680c9c22e40c0b92a8d25842c076570a983b852957dff31361fcfee297548bbff92be123361d6253adbdd0c0d8bb9d38546c79d59c1f9a09d711bc1728e68ebce398d94fb8244f1c959d54f071c321ec9a69a255e10a69c521d9a1a7128f61169a9621845cf4bfa700729e31edfb9cb9a01cec36882a1d31f8448b63be4d98affc9e5132f171b93604c83f8a688dfdbbae596d563211c36\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = df87b7a14a7127daff816395b61a9d9b8f6055460f79962c9561a94ee33f766f8fcf52879859f11df95018eb83abf3fd08331fc0bdb902104c7a931946a638aed114b0e1141c669d31516497945e2ccdbe386e1cc48fa19d9a3b4fea902f8fc62b8977bfd468fdf0e6b7cc2ae4219ee8b42b1ff5b22d72a0c60aea95cae3f7fc542469b3a4811925ce493bd9763a4cea8b87e3e4372d855ca61779a88a51832f72d8f96a31b5b0ce2c312c94cc477febc69d1afbf9c32258e88291d745442b153b4ad31ac376287e9fc20ee27442736d187e396f089f6ec80ec38461bd28af88165bcc5676fc0a09be3c0a322b07ebadc1e90152a50131719ff676efe3624056c03a2484e1745754c58d78a38802969eabbb9a750de6684543086c3b42a1d58c04ab222a465578af09c644e1c7a25bca4f3b5110ec89b5b8c6bc055706f0b4af09e772bd05c5f5dfd8b4e2241778d8d5b6ae3275208a016e53891618d6f6145cf5a6ca613bdacec5b75e183864c61c8354c9ec6939795c818353b8b99b043a2afad1e7b6bd2e91cdc5230169fb551754bfd2dca793124c3c863e7be8a7387ddea9409b745d952b53fca4a20cc29b6bed8bcdf5b2f51ed34721c59e0c630d08d19abbd7d95f6d12892aef338f0c57fdae3b67194c9906d09ffafb5588fb6925ce4a2580e7af10831efbe8f56e24c3e7171239af5e6be3303331c59574cc910edb\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9c5700b7d722a8f1f83fd11359fde32aad1606d20834a7b7b84b22bf34b18f5c383a34f229b65c56f70e1347632ab59a75821ea623d0ebc09c4005c0f32a86e1bc873689ace2b73c7c84b91fe270f457fea200051e041eff72af27e7b773769d37d5569c02de5a101467bbb014b065bdfec7780823e83199a32064cb2149c8ea388162f7a2e3604c7c33e14e5cbfb54e3597704026ded5670f5efd979dcb80a0b5beca42e5f49ee80aee7a81348de4616e3b3d723dd4fa5e73c1f56bd9b3276f85ad8ace654fcd46d7b6160d8ecd640e823432a074d4bef0ab0b58a0dd14943e710b7f6d7d23abff0cc855b7e932a14c9a6a0d550dd28a7dcce4605391b0ad128bf78ef8b550187c4042ae89570670587b8f1f422b12b3cb20d095788a8b31a388efafe616dd1841cb458de9d45829fd1597e55ee0c24e5f6cc71d194fe02930dc371f1243ffa4260a03129f00281e8000069cbdc8701f4693f94d6679807e28944b40317ce760b8ac170390233ab0d00f4e42f1e514950c7699215e2e2cb0a70075a22e554b0821083ad45d63eb8adb54cd0063665c4cb10f679ea3caa647fd5488bb3af879a2f2facc56efb97880a168a3c656c4d100826936934253c47f87a26490e51843845722862b55daeeacf70b7da98e76b497627de060ab3ba712dd8bf9e1a9e15dab3d4674dc32d2ff4caf9b30f81c82e4c302f7288b762b205ce0\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = 84dc441ed215a1b7afa0815ea15f403da0b53709b327a8ad26677bdd79910bc931e84f6e0a9a0617af72c5bf284ee1c05aa0029d4bd5f7204404d58378b5150746097d2f650456bcea0eff70ee1d1371a8b3d14564252bcf655d539a666343883941b3023b095001cd1b05ab45aeb3057bb40f8fc1100108d9c1ba4fccbb776965ba45a5a9cc6eb0ecfd230b0a2c4da0d8ded54f12f290f681878ccfb02ce97c8055f29032497b87efec10e225c204315adc30921de222e4f2fe2a92f995152693f9048700aa127ad651e4fa8f6aace224953a436fdba27470f239c7f9a59bee180e2c114b7e435a634f9cb4ddf49717ec10e95db84fbeec6bc6fb09a10f613c6d8ae9ec315db947fdf8f116256235b02687f0bea2c706637ebfc309895be00264bb462348d524903cc8b134ce52f407aa8c871a829ba7cc568a03b80336603af5ef3d55e54f4bb1aad3353df4645ea9229b3a84c83092df72b0ad5a6ca0972c54f9c1dd7b05f3b8d45e2f5161bc5c32fce2cf9a35bb55e818ca267c0aac225a2e3b63587d9391094596365b3132eed6ce24299f365495cc6029480c2b9e3562d8b7be8ff01ab487c39df67f09ed69fe586eb1875ac71a7a2b696db2362037b8ec4f5f71872119fc975bcebe0247a8bc15cb61bfba478a6f178c1ee9b2936dfbdc0b408ab056d04e9848a7c95c8bd9b00013eb8a045f32a9ae4017557a23400c\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = 747cbc58a4e2564523c46358d210af9490c1dd2679ce66d26704351d1", + "9fa8ccbb3f66e32a066deb11de7dc910a37f46e250e0f9256dfc8df5c72cbde63a2b2ab561b1d79ea94d51e84d0a022552a7ed8e457822e8c17c30c723ad5c4e333e087211566cfaae130e79bb0103bbe093b30f1819f908c5691f4b4f0ace3d8cbca25654ebbb506560683fad45d8a4914b242b72b99a223a2c0a3ab20486d2cd1b0ac60b438d8cca5ec2f7bb8384690ec4ee9fbb005b3d2ea21749ab86ce9d64414e9a87827fc9177f1a5af6cd97fb823874ba82e9ff53093fa2c05566c63e4c7f5dbbad75d8263594cba2949113341fac7c83fa13350ca06d73177241b3793f78027d61a20c37c56e9f34fffda7258004b0202a12969f718c278854b136a110dfd65fddea97486786bd5785fa2596bfd6e78e353b4d28ee6434df0844af14de10efe2d6f088b2b3ec0a7cf6f9e4a5830d7b0123caed7857d0b71fe9c56e72c29a908bba3cb99482178d64a4e27972179e4da6058c97e648c830e0cb96ba71eddc1cdf41d38f852a16554f3d9821aec57ec8506f0bc1df2a630b58fb082c84dee5e7bf3b645c9887e650098508ea288370f9f2cd32fc3f74784c82fc42bc2a09aef3b8c5fcaf538c50e12adc672200739cb2dbb343b1559bf70b00b2f83ed3139b106ce717f906b6de178c0d9da66966782cad3f7727da3e32950af437f33cf14e868\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = e168ece53793eaa84954f43707e9db53e1541394540472d502a676f12c5b4c1f1844d1e4a4fbbc3117c1cc503aa49a63138565aa366288fae712542b11b35026a027d3679c5a35f1957cb6c5942b5d86464e3b9dd6463ab9cfb9931136da744370f6b3307ff01e1180a5e79569e73e5ef9de4ea5c9f0d5a3b124714c1b645c8f0c1cc2ab4e1845969654ae9b0c565f4d17a844ed066366c17dca17f22ce69aa56e48937aa1c9f39fc85435770fbcb4d9f05048215664184ee40a4ff77ad44ae9b1d9dbcd9f9f013080b751ac9e2f05aa8f546575562194730f6cf1ea52f0d365d0dfc3fcef820c51d9a5263a2d1dc4ca97be6ef69bb2ebcddc3f8f4ea2f4e12c187949d95c3667f4c2dcbd65e06937fc788b5585b742eb5b99ccad8252be7dd0b4d38460340cccf82c5d2d58c29f87f0fd6f78a90ac7a113d0e5427aa56a42438c3c6fd98fdaaebb3dff5d8d3025cb408da8a6764988bef9d171c7c3a51d187aa1bab3f2a58425dfb82730488e83d97fc54070e2240c2f9083e6f6a4f49c50077067a4fc7d27e40bbf30f8fa90624d7be0e6f8c43ac1ce42760512aadd27f2cabdce2c6fbf7adeae0221e2e82cf22d2941ac56a3e10cf0f0c22242b4d7fcae009081eff5d23b6dbcb7387eb59922e5bf757c02143e1140b2831478a2a5785d056978e07dae02aa804141805acb7a5343acc17206c949d8b9f8fd5df0a36e7755\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 5a23159bb4948c16c9c31f7b3be4e2fd147717b755d13f5f86933302f7356f31003bce391de69f54ff602dacb1522b908fa1fb7156fa555f3f38bddccef9f85f22a53e4f53757f81d6455998169743a4a2306906a375235e548aece0715f94d83377e06faf758a36fc8758a586cadd368b1db26ee3861b79d6b69c0f3639c9ed0a24bf530625319125c301f5c10d12084b2f9917ab404a65a5bfd2bbc78fdd6bd1e583cfe87c0cbb4d41c710c137a7b330247b881af9aac5b2c5075c66ea33910a3b07d55c461940a54cb7579aaadc9e8f567d60d0548d6c2d3628e7bde8b631335f2ed00122e07f942f7005afbb0d2f0340c5c9270b27be30d10333b9ed5edb90ad6216b95594f6ad595abed26576a7b1d807530e7c5556a8698de56b481e5717683404f6b9ecc35bfb6ccc48a381a51537143abff51a717581f2c44df1a1f058c1b793be004b1a837f7acfd764644921b3472906e90a5bd265a0f0fda5e16be4db391e07f8daa84349fdf7a134aa138767441759b74a4913a4790f0e599691df06acd4f80cf5b64767052ff470617c93ab420d90b1838c0bc891bbd2581769bf203dbc8df0073bb826114e71fadea586d7cf6f06cf4d04bfedda455e043439937d330ce0a03ff97d420fc623163afbcc3e7de7025d0689f9441580308d1280e9235d8f5988ef12447067df3ec846c3e3319eee29c2b8cc713c979156d3e3f8\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 819926a1c7a0e283aa3ef42cea08dc3893fc71d7295924d7e8909f46ced6724bf38d137541224982f072e39a80cb277dab8dd848ca85fe1ce6a102e8adaaa55f2e9169d8094f10280829c3332d24507a54452a026a541446fb388a7663eec512a0ddf7402efde859fa1662108c704afeac80daf6f8279e5ab5bd552dbb5a0a5d0f35fa5431e8ac36daf25a5e36e09699ba25f00fa69ed7fb527a49fb25908ef400ab9c080b73c5f4d41d965ab1faa1472f76c63d9cc359f7964d854d8f8db382c304572ea6498a6f7e39f6f6064aea336949eb157a2346975f1a71e1c18a77abcd0c7bc2f1ab6a0e9297d121bf13f42cca5662667947d70fbc026fd2a03c1353e34cec608dc2fba202163201cadb6341cf80f49048f55333db9754c5fe95b01219eeb608ca3e8b890df71501dbc579332c7ca6479c6fc3c34f31561c15d500ca81f25204e2f848f87c472cf030b5b40e499e3f034be87041dd5756173f1f2795d1f62bd74aa817f72ca8a131b0a5b7fea3fded32baf493871f0be8251970fb2b3031122c328e7809139d044d8f49e6bd31fa938b732a5ddc0039a723eb7e40491d7533092f1b7b7d8ae68add6001178ed1624fd3b660f0af184fb70c709c78e83b1dbf156b2c8848cb986160db4de954c12a29d88496283a3cf37acd0e7a63d86135376d43bde517c40e9b5e538999a86e55319eebd9a87149a81aea225a8128\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = dbbc34b6ead6c85534784953c2f6ffa36b018f95e15e0c28b214ca2f80bd9694e2f091d8bc3e25aad3c4c9e11edcd73b6785384693e4ccb183553eeee251c5587150bac7bb2d7c717fd6453a72803443c8372260a096596da4a0b7c32750fb264ed58acdc736c86c83396b705fd3acc0f3d7d3135dd4b576729d68664cb1e11966438f08d417c0db8bc37b0201cc9ac0daf9ef60b9b600cefb79c25104d2fd5480c2e2ac100e9500729a4676ab97e09078736696dd2f51cf90ff963a6ee99b765e4e0f7cf52094507294de601c0d46b87e8072e37b88621f9dcaad28cec7d4544ae2d1b5828bc1ac9e5258058209944ab8e924fd228a047dca03ffe2f28e88f49def895401ba3f05c305beaa10928b7a390eca9b61b73e864c93559a3295703c9bd82664b226bca0ecc90d2b27dff22dbe635f3f0a347c49239104080c5b8195eb4d750055889d5853be4cc984f215bb491e2a8c7b0017016dcbea3b9951ee935e967d1515e659ba295f76be48feac1c3aee2e35d309ac71877ae59f024dc9aaa9e2053e4d4223e482ec3fb1d7f9cae98c18db9dcfe307ea6916f137dece096398a0a62a594dce4048588f87e1741cceddec314d5960fbecaae8cf48afb09d3eeadbf5a77ea1c27905f7ae47dcf066207e621e892e7d780bcc9bae3ab62cbe2a4cb43b6621c47f904dcdcbe7036461ee2563de1f6061c22f33a5e4997adf9e63\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = ae10acef7e1ff0d50705a425f623225fecd0ef91890696ff1636123023a6009b971a0fc20c50144ba4c42a6d45fbb9f48dce8a52514574cb41b71bf6c7cb255903aa9dae232c1c1ba567ef505cd040a910c2809be37a0f1d3aa8e6345ff77d0f95502fd6cb88d894d961b987c4c2ff6a11c279eab2c0759024e90ff7332e028391eaa1a9e5d50bf3e7d2a223b52619143afe8066faf3841c28e8b057f4326c0a5eda878226583d1d06e491ed2bccc20dc8ca7340f3582a7e9f313c90759f1fd076054ed464a10971c1f1e837d0dd7539bcc29ae9923691169f6f1b6a3f40eb09605fd987b75f4d035605f9fbb33a4d58f912b76089cdbed34f14d1c26cad0d400fc4f7d048990ab37749dd00b22f1b3b9bb31ec35a51cc336d3a7bfdace0ce5c916784a40c7cc76a8a2ec396939487b62516182b19830aafbfa6bb9c7947e7b1302f1e344100975c1d1ae523bcbdbb9a5a0dccf800447a7917b2a7c40e7b983e98ce15ca2516ed660975f1db031116196d4a52f8bd3ed40e904509506f8fa63daf1dbfce32b817dafd452c03e5502a36b8cf7391a3a7d9d303a9d5c5684dcd17634a80a73eb8a46855318239bc585eb2b1341bbd842baf93373e4b8e611dbd6c24767f1a8d620f5f4b97c8e00c67e77b13315abf9e5a98a08e56630b3d3049ea354ab3e69d5a5ba6c09d1ded3cc61d0006949a140b66b80ac31755c856be989b\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = d9acf55c9c01cb10d9acf6dc61e7c7be67340ac52414cab198b8feab214a561b1e20ee5f6c5f169f0339836efbe99044ea672d41aba73cc40ee7eb47f9262eea426cb560232bce5dd11aff64d9af3bcca961207f8ae559fce24b3335789c8ec32e6f4732ef0136f59ca560f91aaa1fe6d53902822fe559d2dea8d3a318a94ce4d6fbd2fc399c7a78c0f14d70e44de3bac04f3668237f7d45d2cdf53782879a6dce950a33314122654fdce0158c46de33d991b9097b24fd11a2718f60156affb27ace6a880f04689ccde83eb365543406fb7e7826986f2529f0678441ada0b0be5870ce5d1c22d0c6684b5f897ebeeb9ff5833505ce2fd352b5286a3dc9209a490483f3607dd907006e1895b3cf887fd657058d9918e8170f4031f6dea28b73b83f59a94efeac01716a0128807a767860ea417ae681f5f2bc627c3c9de61584f30496d28fcb8f9a18276eb488144f9adc33df6727871d3570ad5f69085073a3622dd8bf4634881d7defaaac0ea73b3a40e98b0ef1214e895c1d449c05137b0440f581641c7f9be0c7c718a08c3c8a6537fca80ab3c5f026644435b873af6b098a792dd4dad914f60e3f0de666df582b0c2279c786a82d44f2bf2328b9dca6a92da5b8a5bbfccc6b9cdbdc741560e9918ca6228629437ce593080b2952af34d28f72fbee2af5347fbcea9c51798ada5e09a8d8b3db7096175b5a44e7005689b49d\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 5e82a192a85eb098c1413968d3a0e58d0084210b641355a74a1b59e8651914017920e905a2909c89cf7b3b097ffebc34c06457bb9647ac394b8a0db5dc33af5f4e95248c45cf22c53ab1906bf5516dd3344c0cb02073e99ebe267e5b36586f3b20cf090f3c9512bf1bff2e3aeebabb3b9c328c971039aef1da8608f0d05ef9128038c35002889af2f463df56d028eb0ffb5309474e7f7e6101ac9aaa854d56f1a120588201f4fa8362515a26201d6249b02f554e7c2a885b520b4ec352387b40a7baef56c3828432feed464c1265225c8183e781869455f36159259297006cdf368c2dc82a93a286941c136c6293b5aa753a053757a8cbdb59ddff5c8b", + "2d7122327d89802b711ec638c6b7c4f8830f160b2aabc128d9f4104b5d794ecc35d5d7773baa976e0efc795e5272fe0b6dedebf3137e9d04085b19912d011cb7e746b10cad9eaf5063cf9e1c1e37c6957a72bacc261fb1c777795d16badee7dc0bdf3bc12672f4d8819eb111bbd2b3ac7b4658d97901ef0c44ecaae7b21d9b04ceced25e50044c69600573c24541608f1ed52c6b2f5feb0684d0b1bda858467f2de0b7c405490bc985817d1bb53d55f99ccc85e6f4dfe3729b43dc6e39ddb6f470e52221447dfc336fad0abce1ef06a4c0741ff70e52fe94af1088fbe6f7ca22bcb0a097e32f3dc6407f757d80fe345bca163f0def954e0b58211b2509a647bd238d08\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 15f0e55d2c991f709600d78d4e4a2ad19496adb55b99c5f6bd92f460112957c54474afde1f3e75908a5694883b9ce7dc956c28f89aa692b6ebbbd2873836b8ae596c914c11cab73e6333f2aac5d92778d95361110f9f4a23f09a37350c20a8850db12b522a8493cd085714b79906254c14ee5760c7bd41d605ccc106a94794988b2faa823e39b49c828a2a03bae06c57ddb675f0fad16f085a0d720ae8971395e8a317770b5da937b73ffb2a1d86dc6000f0d39be03c1dc0198f5f3121321c1ba0fc480c4280852cb315198ee86a3b295e37160aa2c5e8705b22ad9631a51a76789ffcb753c3cb4802fd7563da76b8ae740bd7546d8dc6b12c318dfdfed2d3f353bc94b0ab8a1c9111531a21c1af6d8422eb61d6fcfc77f983aa87ef8577a737bc095fc766a7a37025d1743969768c3f4389219f4660f9930f4cc45d62d181cd35d118b75ab3b013433b529234204f52bd0dade8609786ae30b97c0152e05ab1b119c3f8862c1eb1756dffccd5f1ad89c93cd946384e615e2c712fdbb0bf16ceb5c233b88e2ebc2b461e27bfe44b35ae09ecf6b726236f45e8b1a8f56fa23f0dd889a5d132448c04ce225d7c83695a891b93639f3214b7ab76418b0a252a595ae3f4e6dbd4e0d729bab70ffd3a31e6e8d8142df6f76a7d5ec60fccc8f04d3f790bd373bdce92e0f92af5bc90b5b7da24a18a38c8fee8f3a20dd303b540dd64a4\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = d156c8f72fd7bb5413c822f35cb58dc39bf8960f0171b2bf045a46db932d402e63c24e954a466fdaba36689fedd624a0c44c02225866921414909b99aed97925736028ae48bf2ddc5cdc6f57257afaa46b6224a5e9675849493c097542bd778c5da2bc3406bbea398180549027d6602906e25233c078b7ea06b4af69cfa5860ca69eb0070ecc5273db8cc0445eb4caf565af68467a4a24d8a5c31f714ef82c7efaba313ab44f4cd4f6dddc78f604e2dd42802ab9f6d828e43da3dcdf67dc2e5e139bb5aa5c944589f6f57b1e0841c86fce76158b1d3683bdc0c8f85c361f0312dc4b0ed456ff9c670072520f1a139c49d70d21932a50783064d7775adbbb638f36c25b2c5d75af8fa67ab53440508860d1de242a815d0eb87f2692f5c8ecba455380b61dc8653130e2a85110532df6aa39bbe134da1f3a14adcc48a8e7f282e142ed34b1feb119c0189079e81ee35a86472245789d193bf6f5717b5fda552e4eb547b3518b292925f50d51afdc352469796e2c9d28791a7428a68925afd1eea528aa5e85b00edeb34daa09f7da65c49f31d8e12052fa22be651918a797edef66fc5946d5926f21318d8abf21dc15163bf7f630037ca055e83d31cb4cd47d6d44ce81491f318252c8b2d80aea4f5f060643812be02196df31e73c354f91f0dd2cacbfc73501b1d8d5cfd81d6574cc5be05dcbf7603819b81f6fd1b11dd0d3198c\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 2ebdece5ba8e494f3810c98f49cc05c16369ba336ae0351123ab6f1f80f3fde76b98bcd9f79643993bcf0bee4e05ad6d9350729c4ef61597b454bbd716a85022aa9c9a0ee2471bfdc22e87c327086cbf76e36ae4f55fbf7fe3ddbabf50e744facaeed389aad2f58e8d11d355b2639f382404936d88db825b6de87aeaa3789eec51746db3cf7db9998ff8961a3f499079112c4f59535b8896a30b4deddf1ff6a52e370dcf3dff8b7f3b3164ce78b579469d823292304886cd596c512a1ee5f189e40eb9629095653d45f05683b53404ab2cb5ae55f64bbea4cdcd003ef80c3cec9f24e8842f83a992f8010cb996955a91a5362c6fd2c6e57a81f5dda1fdb931ca43997e51ffedb235d843b590a253d5bf395f6db9ff233af68a1a54349dd7cb37351a1cb3e5ee25cc79f19403ecb41e41eddc02d4eeaab64202b8696ca7149456ff00a563e8a2fc9f90a5d25ad754722763d8a04bd7336dd7884b5b577d88017b2cc66214b9d0d569267b43b0d3b7446f31cffe4b37161ba027e24353d2d63a339c8fb5bd495ac341e0eb864bc8ec25874f65fb627553031a58c932de9e99330a28e65a4066ceaf4120d1036f46b5cff421061796f245ca59a89715e86343a8b52f94eace323ee7578f0cd7ac8b2b6c9d53f1a979cfc863538c1d8a87bf21d07d7104975ec7a62afa2a551b5206d2729cdabf3f7c39396bba123a207a03c6686a\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 5d02decff78b7129151a66d93a53d501ff3cac82d92694dac78b6833b088a3889daaadc9f1021b02b6d2ee77a2095745a84048f606810b980f715d18f15027ebe9f59279895d668b86d14cd1c056d3de0e1e7da6472349de57b10cbcfa2c71cec7bdcf966ae6407bcc90b3aaa3df2802dd70be459da4e7612be94598dbb67026d61bf3f88fdd014fd6f180b32b785037a396970279fc26c0e689cf47f2b006908251dc1448caf42e71e19bfa0668d7bc4436d11e694add08d86cc10316f07bf64c54508ff058ffd70c24074abe83797157e057465a1129b0712ebc2d3311a7d6bc8226411a824c28d8ce81b21a26eee3cf5de86bae79f8206abdc93698850d141fc54b22d7f8165aeedfefa8a34f78bda9baee9c2ffbe249c33ea2040fe31651a4ab3977a71f36d13f912fac5cda4c1ed36750a6f16bb2e097535de4f019489a18634c4036ec73a3a944fa45bd1ebe073e0d3c36c536340538ca349ffa780e408a4f10da0aa6c01c3bfdc41d4001dabd379d50184c1a78d27944a1bcd25dc17b36ecc89babd03665029bdacc3aaa8c86709e91f656ce7176a25a67622642a5013a7e4d6906f8c3c49f998e9d566b62409b016d7befb6a87ac983b1784e9a1963d7500159912ba514f82966bda58e2aa5ca13c8244c464508c3eb11e9469497a06f1f96b3c459055f6d2e56a73609b5adf94d0587a31e3d85f643b9bc6ce2df28\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 39ea92860d76b373c6eaee74fb97f8439067c02e26e0da5a1a85e466aa9df4bbc1f2b644cabe5452b2692b4aa396d298e7a9e563d03ce3bb65a64272f903968e5ddba1d0e3322c90c80827beec9935094fe07681f41241bcafade0a2a7fa69f15f852ec457763427075ad4a3e129c229d75fc288b462a1713c8dee10d2a271168e109cacbb2b7f14e625007409aba3436d1ecc074c914b93fbcea73c5132591cf5037814ed9bf7100b48d0caa41f415ed7317072091d72036871a2d32107d02480bbc1f3c2cfaf407d0eb218d003dbd3a53c0a4ceacaf9466eecc741ba7763c912a594ceeebaeb3491ad7603cb74f5772567ff5c978c9dd1a3f5317d957492618b824a445155d1f7fdc25dc93b5d17c696796b21070af78c6bb4ef055b0e44f319af4235daa79b864fda2cf40030c04c1230e721565043e6ff907f17d7b1fe34961e9c8603461dc15c9969d62f17ea9e9ea8783459b135bd8943a8e1825bfcf7eae8437567280f6303abf5a9158bae430b1585c21b2be5ae189ecb5ec59ea66b97dc1d8247641e200c1b5b8ce905d6b095c0a0022efa707017378573eb309fb204c1d85baa39ccf3ac6841673e1aa8caa1954a3a3fd2d8d8bbef94541bcb593172a87b8e5a27f94272a053ba5fc940d905731977c20e050fc5864d2dabdc9b07c9a1512982b6fcfb1bd9ae4a4bf8be086e6c9f8904e1d0da3fe81f756852e982\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = a3d32a7d13de642496d925d37624c62ccefc1019fb614d289e74e71a71c98381f39dd0a041a364243687ec4d235bf07909fc862a1f9bcf122e73e53ca83433e0588988ae9e3cfd743f2d68404b3fb3b7ddddbf38f202094752f868caf1a234d984c2f80b26a69e39282b3e5dcd7c0a425e16788c1980497aa77aff1d545c95e1ba03b3a22933cbe79f047abdeaa29f9529c871702d59aad3e206579bcf9c1bd05f0986333031b0262734b3ce2c1e11f22408c751917832be4d9fa83e255249775bc9611e5966d08bd2813cd41cb2224d952e6f3d465ba97af6db4d957d72cd82505b6d814ffe92ffdaf742a1e0852b9899a512b02197ba58788513cb5eab15c87e45154dd11095758b7954f2bd10a363557d92e07071b2176230df060a2a6e026eec784bf65664d903a4bda0a6ca37c2463a5347e404cc49d48c1c006f43259441535d53ced7ef3451c705f90f33bcd7e770065c2bdf5af1b407548c79564ea766dea5a4c59a1c07a64b72a9421eb42a9b59107700aa94f9a674c3e948f476da18abc459f8cab734d2742d6557c4c6003d08f8bcb217e7a5aae2dac2c25a5b547d842271203862bf2b351a9848ca7e5b86de87fd1c58d05d801bf648a0b9233560f9704f4eafc35735dfc975d701492d453cc02fba018ff51874185c2d64898e3cf26138aade6e5d99e7d6fb3d1ad8eee11b366d000f1552acf5a4d261ade6f8\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = 8675ddacec059c224f46442ca3f2c506800fe11dd2444a6a341689fad88cb74047890df144bd1f4589fdd732b92b39a1c654dd33031f4541aa888295887362ac0db4eb7bcde0b2028e8674ed15eff004fda1e7ad4071d4b7eadb9e4a0106b90c92ce3621d9e12ead9917c5ee72b373cf4657dfe69da410fe30fd8ed72ca220c9e471195bae3face29e184c0f33a05b48b2737ba1ce2960a0ccb0ddc4760b5f88c463bb4a349446cf1c56ef332e50f1d6a6369cb3ecd7e2af504de42c075670438e7c58c5ef52e23804167b6db30022e1272f8b698ae457981a18d239c228f78e128a01c7c0c4fe62ab91dcfecf7b6a4e89e9be784d043b4b35fdaf8e81ef0ae534ad448a6650f496b15899abc5f61df6793c97cbed05cc1eadb227ac204bad3edfff32150c73c369a74ec0d84093fac2af59f53ca0d7d8723ea6d5c84a8349ee4936df5b71a3f162c2dbf6f5704a7465702acc00c91c247337d2ffd54f51194530be506660f21916c24305d1d4bded04e39a249a584178fcd2235f5e4997989febb486009e52f9da43b705732895b42c3c4428612aaf8bb966d8274d0b75afe0d0139d55e987211651c4d82cae3ee493c4cdbc7322489bd5d4ff12cf38e31241a817618a18cb5dceced2a5bbf2d32889912a6652cc8", + "d4a4b6e05d9d7bfff47008eda7a0f9e292c360a2cf5d2dd5af567b703718bd4c4c040db4847e30124a29a\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 3636498fdb54663dde2c0d06599bcc1ef3a10ef4ed2519c6da19893f3ed970c7f64ac516e14506243846d84e26d53f903e74acfab638a2c62c6aca740a83927561fa27d05296b6459088aa8d21ffaeaeb4e62330c49238b217146c60a777aa25ac96b701a561dfbdde859041d2fa0a116d14e5653a117e5988b2e7bf2bb5835a92e316903113fce30d23e1f55179b2049bb65241acad621d315187c1f0656efe345c7fbae6cc7c4de1e8f060f78acf2022fe6e7373966f5f10e525f0eba8b08a5a167108d3f5323a752577ee05529a5303262edaa6adbec6b7729e282f1f7d9722caa9eb21e856275979785e178b1c19b9b3a60ba678ed34994563b7caef22f13c6f6aedefb827a1afce0c899f72bdf27bdf9bd035ac37c071bc9f131c665e2adae13a14bb9b6d22ae96efa383b783c4d2fc8f5fd8c70688fb70173688f298208429465a7eb7b2e2a9a7531aed6a26d35c856bc099cc212460c0cddddde87440e552386e85ccccddd86aaff940ebf7cea462bda33579515ce1643323ef2d0c37290f3387355240404fc7b4ea610474b026616a4b4a837d78e4c9bda61320892e7cc1124357c08ebc5aad0ef5459ad0036884139ae05f3fd7fb23faaac48995474fa2d9c12f5dda1e3d68de42bf0578e4959bddd26d1ee79479cdf543605407c4ea2c24d84156210a278a8abb93969b519ae9978f8692fa16fd4921d8ae3dabc0\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 1d8f7364a550c1e7d07ea18b511aa9314f5bdb758301473b4f2ce4360e0489a8afeb09064f2071c1939b154799160d8cd205866624baac546edd3d8edaba18aa42c0cc9e8316fb8fc69f35d965ef5b7fe18f32d8f12b8180756c9322723b2c97546a2ae62f25b6f3ff7fa2c060f40e6ddb04d18b32fd6c51cf14ea7c2df2b0f2ffab5f0a9f6d1db361fb6d216847d5edb91bee9827eae208ddf18122c9c296020b82c7521c5ed6e30c6ff0b3f0a587f45ff6e993b855cfed925734b5ce86459d3fcbefc0458a6697e933e4d311d09b9bf896c1e2e7be6f739bfb2d5923ac0e69465becbd2e8b90ef3e73c06da041eead456fb5075daf8dfe3e48ab5e23b669fe4958f2b08e518df7eebf9cd8e0653400159c095667e204e1e122e889d87dd1898b27bcb1a40956f9a451cff052dd1c252e384d61e1c7f7015c79714d70a766fb14d2936b01f1d84af1a10f40a53897e6a938caf4c736289a4362fc4cc454f71650a78c1335b4199ff318de908bc098f685d0560abd8168aa0da4022a50b5b5249ceb4a9e52097bc60c254798deca930a5ea160950535a4583fcefe6a61b7d847302408eaf52dfc93478fa99e031d0623a9f5d353cdd735a0a4ca347e81f8d75c1939f5acccdb34f5a0624354b701f74a793d550e33b58b972ae1e7761f03b7a1db88c3dcc451441b89845fd6af4d9328092597f0541253c3bb695a0261dacd08\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = b0bcd77729a5eb38cb5327a725f93c4d5aac39e8fb1ef6325b8625a37c01a00fbce9cb5f150005a147ab5ccff9c0f347257746d05085e14bea6c016fd56e798517ee93cf9911af32d87b92df6122cb4f21b75d898e5c57255344f8759380c44a06af52d91794044f1cbe022c59fcea76f9d4f692895a8aaed98e7834aa00f0496594b056b1b800271b653d1fc07bd81885f8ad2b4aa60300d30fb29b416020fdc890af547090d307c2034283fedef2edc4ff450457ceb7a3d14442c4c1640a5cb1b67a7db7d6e227258409b36ae1fd52d126f59b0599da776cc1cc960387beb5b0f57cece021f8402ac56d87eba3c2867e4046a8acd9769b9d8164c0d0f5b628d9ffd3c495381f34bd81b73c38bc94441bb62e5716091fe09d40a3ca9a71897f610a501ab173714ba801b22069d20e4edcbb980024a5862e19a600f9bb0657fa3b10be05710817e5bb8388517d8d7597ef5053af84a856c1f3ff403d8e2f028f7dbe110f1ef406b2a78e8afa220a8ff444481eccd1e79fa4c9c38e45d9942fca714fba026d9da0fa3c047abfef6e090e39b973e97990cb8527460edb5c49ce61d3669f27d90cc411b16c8eaddcadecd586d55d237661823bc4eba7078631ddc49960cceb6f6ade3cbdea8e43661d28fff86eed6999f6fed8b76a614f9f5e0a1df9d3bb4ce5b6838d7fbecc3778025cf50698abb0c4249e9aef98720f8ba3c54a\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 052f44e3f7c5fb805564627c973b591454211db2446e10486a68c3c49847e6bdef7a0530f2db906a93f8e37c8f77bc1be341a96570a4807cc74e72e222bd8cdcbd406ff198df61ea9787d9fad51901a6931bcf67195509055e01b7095527f45e9cffdd4aa2f75fbcb039d011f5c2dcd87233cd74d496c53f95a8d90d1ce1063d9a9384d4bcd0013682974de3deaae49c44a08daf8a8ba770dba97b6fb1ca270535fd777c7b732a5852f48c1f52bf343a3215017af69bd6eb55ca379d556816859ea79f35a2d8e272fa0d8672da61aa10c100f2273772cc459349c015234ce17fd41d6a8cdb516f5e26aeaef9d98e4b41fdf748aef9e40ee2063761e32b919d1051285b3df90063fec355601f0e65e8e4b23579252adbbc3592c1d5479a9f5b8eeaaca95aad9c887540a950c9f83a03a44336672026d911fe40b137fdbfcb28e312a3f1aff09e2140055e89c8d3db97cd69e4f3512c211fab4b2997882d5e4a16b699c64ff73418126a10f63c83b922f1bd145739275aaa7e5d6446e8cf295e7e65244fea145a8d87d3f305a0d6b9dcc912cba677028a21cd1892737c4bcdaf925f2f56a6fdc9e0721fa8eaa1bfc4ef8f678dccd65bcd5726ddccb395eab8a82221d59190514ff08d6ca2043a73484b93fe5b5f6b5519d0973d4ca62e715d61f64d823825bb08161157477686f44ebd157f231d187e8907ddbaf77db58c90a390\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 6dd73d8eb7f7af0e6f0bfdcd84a107a4cd6edaee3cbc50b137426e21e2608ff446a2ff5badb2dfd517cfb47c60d832c00f86e14292c79872633c26f92008f2664672a24e8f9347c3b37940ce86f64ac698a5038afd97d6545969a7a5c03e81a29cff5dfcd1c0915df288766c6483bf32b980e60b07208479be18046acc3050fe0f25def3cd63cd5c77f86d2bd0f41925dc7881e19b74bab0323b2bfef61da8948d77dac968eca8f66a10d384735d57badeb0cf738d90652f48512d05bf39bfb0c239de3c0573519c1067f08feccf48d928e8e36633e48025dbfea49efe70dae118f0cfdd2cf5978cb8f63df6ab89f39e13ce05e6d27eb1091d803b5a621ed95758fe45d1fb249811735e7e1a5f2fb6d4e413dffd6c4b95cf106f7f7629b0525a77c70dc78822cfdadda44681652e4d1baf883114bc558b4eac1d43c2701365d5863429f1ac71684e08bf3e5bbafedc5b419b148b2d5161e763a96b634f29b32f2b43dabc68b3a51136576df5e2bbc40f319332971c8fdf673e2b65c6a09fb981182701eaf5afd6bbbc17073c49d6a6de3a539c5429f48eccfe9359db691b06f122ee22864176bfa5dbf6fc6b4d6bb1ccb2f10d58ffb941474bf5d5be955f4b2d45edf7c4c5bcb0605186ad3776a2308852144ce69df2ad216eb5db72b904e50c7b9e25a8c3e7c14243e3fa9a91069561c77d0c51d3f84008f512032949926433\n\n# tcId = 158\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 4ed5e27ff4a7733f60af2f99d2515c155f29854768664dc309f14b8040496645fe6a3e2c7d868f8c4aa8ff6152f38f3646b0b00e9fc8b60f9c893c2941ea6ea031d9d2fe212ed3f6c0b50e6c09b23bf1016d5f2ddb1d72f96a4a67a2c425795c96e4b9ccd22d3c1cba00a1b1c6e6f07acf1ecd730827c5a7ac0718a8f0617e7612e85c56b4359bab844753e2c8f7d15c853bc1a60fc58096036641ef7cd3d6ff8d3865b730194867022ed6a9a8c3955d95860dcfec490d6639c264a42807ff4978247498ede2dcd993c7d70fdfad848093f76710b8528ff8cdc6850eec48f0e59c278cab5da3fb35c26852f52c0672b87112332980a1910927561aad6fde18edc05f0eb607a976da88cd78e9c19e356ed79591736839a78ade95e098c04135e87b4062a6064913d079cf682a6799dfd41cc35a44cf8b04c5666e74b6cf4c1ef76dfb777eb8b071a42a1032450ff4dd198d0d429659948685854b4a4f97f4a281279d364760442475ea124f0f5f0d6c4a48ec7f8224e068dd640331138e8fbab4da96f757c09d96ade27c6a3f4c85192ab63c3c61ffbe21643c0e261d60791f59628fe128245f49b64227ddf357c0ea1b63ffeb48c1bacf088b63bcf6d3958cba85bfb081d3208eef0562f2df3d9d0b939d2aee3bc841e337d69243ed1ff627ece41fbb9fcebdbaaa9687f2a18fc43e571c8a1af885907d1a751d0253e918d04f\n\n# tcId = 159\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = ad5cde7fbdeaf524f09092d828341d2c5a7a7b715993a79df40f4c2dd5a53a06f906cdde4657b8097f6772fcc368503519cbaf2477f727ce7a12de5e6eb9f1ddb771e4857db185650acf11da2e92c393b26dc26e6230358c0f165206dc6547d444fbeb135c3f2d73e78ce4edb564d67556cfe82d6e10c18b69d9beb3332ea4f775d4356425ae59b225b793cfe91662e6ca62687f6734b2f53d5c8944d7d921203041bc96cd4a897a85c845c1e11f43810d14b2f19e75af5faed56664298d034d38552acaf1228c5b317b16dea8dbe138942f95adb517ecbc947348a460e322a6ed5f64bdb9614b060eb5f676c7151e89d10d2af6453dd0563160c1418f1f0a833fc54e85be8e1a689b5da312089a4dd4b2ee575edcd8ccb2d5ea69c549bebf836e8f069727a579207594cee3c2c20bf8b11297f7ed9d5b04d845cfcda01c01002a827666fd88da3ba4d9677aa547efdce532780aa2b672cd05f233d4ab0e38ad9733596b2e638de75e95ff52899d73a26b225d129a7209125219f34ba5c55f239f2e8df97760a17873870e711538727be4ed0e1c24b89c640689e1ea6d741a6c72b843c7a06131aea6c095e03c2cc434372d533bcb48e805ddfce858d1925081b1355bce6dae7a682c4451ba8d2b5db814a7a8e8846a1d5cda686417a94e3a3f82a583c9686db6df6ed086a25cd5efecbfc7899b75798086aaa75be71cb038de\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 98cbc5bd47668e1af5ff51e5c810cddca50aa42caa602f0000cef1b8952f8aa145a2232faa528f9625ee8eed12a5d1b373b0f6b42834c45d21d77f824b46042079ad384b98bc6a8e303052a3ab4af757b45747297b02347130dfdee575bc9ee37796c82b877ca0d617b861d0fbae1fd075cb7250cccb12aa2d2d881f185a8fe9b0c914fe1ec55d7ca897efc582cf12c6b624e684aa12de2ad411e5fd4b2f95cfc66650db95d921e6", + "6bdc9106086c064ccf7164d8bae42a7c3a0481980f4172c38824c2381a457a78ae0d85622d6dd623165c881fa2f29376d584c87179509373a87a38b782f2ef95142ac641b9f4675f8e32b0204d0bfcfda43d2a04e4db4676e104b6545ed8fb7c93292beb6158ae998081ea8dade67a26f8ba454f1604c30f9d904e8653530262d47739ff615ddf8080f3a7c52beca6c1b0c81708de9e587a523dd15e2af8e58d691794513f82206bd8a382163c992bdf0c5cedc62aae520836b149d4f1a41c911447ae921ea55ee06a970d0fcda1db4b7343f7c2a0d0d5e34eaac0857c75a308ab881593183b598e0efff36e9cbc5953aafc83c7d205623169d12dc6ade35be76cc4b8f3c16a392b9a375f5d0c152de93a858f253692bc2c6a2c0cd9dfc14d6ca750df5afdd9877c1e8596689743f26bb0f293173b978828a3f528719515b663c2636dc4dae3c657e4afc2a1065b53c97a985dc96abc8b6e\n\n# tcId = 161\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 097b1032f9a51a68af7fe8d75308784844f6b4391ee1b166ebd7333a60eaf923391b3e6a5c453dd0a5c6db19df38cc1c65e1e2bf183492f71b2b47e7b6442c780553104132c7bdba8067158265b773735310640fa9efd6eae33241937a92772e9e0cf3c0ac9f1bef801d57da950ea35c83bb9b412881eda9c80ac51bd089ba6c3b9ec33ec71ad17bf5ccd1434528a48b624d0c0a88ca9d531975489bce7008909ef295eaafdc239d482539d2a4c7801ced4bd773013412b67f97b43cf855a9705c442b35a4bf7728fb08a76fc8d20b60cfba5447ad50c16a79bdf5a03091be50415a79294ea5d372fe2cf033fa046e63ec3609831626dd21f9492f968f79786aa7f4a7f56df4edc0a355e488db1b348f6decf73f467c106ef0a1d693e59843de66651a59e714fe59fb41ff93dd3c54d188596887bcfe914096230030261d258f0348dea3af6469927c3532c4e00c15b9a3c0795eb8bd5611c8701c318b716a3bed53092107d792e9537dca6d7cf5a00b297a6ab61822d5149f4e8a95e78b0a97d1b808110e08a06918385062ec3a8944492ca3ce1f5686e776223a3e9878a4e53eb52668dc7740278aeee9794c718f3ff5efcc69cba7eec07fcb5143303abcb30c05f9c7ab5ceeb00bb848a5a6a6d41750fc49f695c6ed346e5c7f79a06e50fd2531c2bf8bdc92b82bb3105bb985e0a1eea524f7a045c4a91475661c0b8b578d\n\n# tcId = 162\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = 402ba3eeb6fe3e781e285b0cf4f659c240adc5f87c2d84e6d1043abde97a690df747aecb5fab8809a62bf86ef8400faba680b5511a193bc963e01dab7ab087b1ca0651c0fae04bb4928067981155d8450082b2d04ff7f1c6ac7ca1eb2c044aa7af472c511f3cb061de3766865258e363ffa2dd5e6d96c5fe32254c6c08b4e075643ec3bbdcafcb67455466bd005ed9874d8d439a37ab3ffb4694cfa58cca05058445ae70d02b30a67fd0d378c9ae9eed9b02c60f9ab54a8649b6201682685ea2ac8aa244da31066b1ff41f92a255840158fd8e5a4f17b6e55395331c823183d252dcec7833ebac21c4a716606815a5af641400e17f90644f5c6cde79edf34730ed6b3d58795d02f1dedc6be721ecbae2e5938cd8ba745c58230bfe1b60ec655e4d7f86667ea057be02c54a12f0feda686112caf921f67afe3744155d28db55f2e340d66c82b3cfa6266b19accf889624c0e8eac6fba05d97b1ede3472c2d4e90698a7d12cb0cf025922f4afb511b9dd69f335c79a4c6266ce0c8f5e003452f6abd178fabc1e027e22eb36afd610582c1904581af8b165e1bbecb48a85cfec8bb96550bb6874b1a4aa8d2433b309a8fa68074a941de7980a1ed4800d1d3ce5ac7d41152f6c99439f48796cea0b1597adefbfd034b6fc94787982fe960e074e74ecdf7c919d3c1309ec539e5a63529a042fd50b86049e44931a4bef4984acf5137\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 5dcc4f5a91b4b4b2bd189cbc3e865d035b34a0f413d4dbf3a3bfad18250f50d0bc7460a715821eac2af824f3161fb3d197a8e9dd5c0ee462e1e04ce1d0f3a8101aba2acc64e120f247c269aa3cb110f28b5ac9ef4ceb8669b7141e2226f73d0c274b238da7ad59b5d86ba731b02ce34b095c936891354507cf02ca2b8c64a7a1ba742a813752863254438f7193e852fd192e493f2f910a95de6af02aeab7e623d7ca86b8914d40fc95632997dc8b4155026afcc94f19370fa0ab1ab0f87c8fe0681cdeee71faac3f6eb37f7ed15e795d21d38062669e2b2be8ee9a1212645d3c0dab97ea6682ead7d2255f6d23a79d0e895102de75d07927b44d1408c085f2738af994f82ad9b7810b10aa161ddc90cd22ad6f60d3a61db98ded42e20a3e1787c65d9d9804b4aa0d5d73cd8e09800000575171b4e57b3d0e92830dddca0cc268a547e9a0fa0488c12d82f9379ad4b26f2472e489dc8062ee4439b4c0c5ec63b10a466a0ed2e591828377a44b87efb412c776170f9f66f374993316f24c2a0264aa87008912e082729a7b723ddaef1d6abdf10a23d55ead4c27d68e64933f8739931f48861d5c5c55b62c7b7d7c925fba2b88e23409b914c9b38bd42fbe559752b4a08ec2aaf374b81fecda420330e0ed832fe4579959f66bfbfe3cfebcbe3155058c34e4a709f389110fe874cf262dbffef835e17ffba41d700c4f36f6f721cd\n\n# tcId = 164\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = a8008cf08682a5bda70df5f1cb05178be6f1f073095cd92e609f8babf0c45938a2cb8f025755b173af0181e87ee79f8a73e60133f4183ee172dc60d6ea0f6d30ab60bc816bd239b0bc70cd2f95e2d6d280bc7401d27cc536dac23cebedb38202a7f4a1709728b3d32dcb67b2e4081153c652ec0f53c13c856ddfc0c57088c4a6acaa4fef18aaea1abb902f8bca7147c54bb13d430f792c48e4d3050a705922d73b2a19f3074857841338521fb996810602683ab0c8299bbab9c598754a34947a2983dd63c76cf74b06f81c02a78d448d228eca205a88cac0877723835afb46869cf38a28b46962269f8fab5695423ac3b37f88d5dd95127c280a1a4018e47755b9bf5c54ba7c470c1ef5ce78dc49d9a175a07352edb26fa36b65c53163c261cdff35e9e2955c5e3a793a00a14cf7c90cb4c43a2009d8e3c896101e5226e65f096804f26f644ae1311f4247a972a60dc6b22062edb565540ce4f3f4cccfeb57ea2a2cc9205a592e7f522a8867fce5681f292c5f2035859fb40790572b319e748fae1b7cd8fcf87421e0ddf8a20b3ae9c02244c6523eeb350f70a19542587eaa9e9798f104136c8ab673c7f3bcf199532d14f17ab532f957cd6afc5b5e57f15064d8b39ef444ff513d7de02ccae382b14aeb2cac0028e5fdb8c1fc33615ae4d93534f3044c97126816a1732d814ced6bd043045b918a4f5b97c8e652b16130f205\n\n# tcId = 165\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = 47e7664b1dfd6e4711f4de90fd311c1db87659ea992382d5e18aa9fe5a2429eec9cb7abc063e3fe3371e175ec9a51fe4a629d851355c38072743c37352674f6a113dbd79286994c5c6ad37f621283443e30cae094f834585e7ab2580f6d4d8a09310eb56be9105e0f44ce7ea9cf0da7766c2b9bedbf732113a4db1bc0bc7f2569cb71093eb50c0cb88668a78c040860cb54e19a3ceafd7dca8860c4920db6376dc37149e5b18d434853d36eb5977e4012c744faa739832d5f11e33151da54403746678456e3e70a7ac2b3802c719b0892207f2babaca7a3c763fe3399fe109846273e010bb69d15e09d7d9193b2ef00ff0dfb65c983a2c88becf232fc5bd246f441e9dc61a23d0e4c25cfbb527ebd64ec503ac7b4d501cd397e372bdb104aa2004b255a4e11424aac978c32c9e2b61978b1b2818caf2795542ae1a7808f47ff8af16e458f0771bdea370d31b1cfae0f0d73e14d99dd3872c4d9bedb3caf630ddc6ff49d98df360c9c6c4a61e0c94d5af3e5239ac443aa8ef1caecb1d22b148874669c263c325e6b7008a404e5374a9dc10214d412d5d00da814a6f9af0c83c40794e3fea7331f3d3e5736b176c8d6ee13a28efe25239addd4ce4d4ccbf9d79ede0f2cd53f575a4c47a46c14924178f2d4afc2d93d0722d85cb7d3e609d4cf270950e5300c1a75dd2fc10be6421a0c016db3d2d6863f644fb68a5ddf1354c6075\n\n# tcId = 166\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 4cf36bf17238f5fb54ca2c60abf1f66db89d674ba3598a19ae16b59c69b818bdebcd1c07848eb8d9bf1ac76d40c7f8277289f8399add2462993f41fe6b5e0cc93d82b691e38c2ff7dc7e0a2ad2676c6ce15b69e322a76cb05ddc6a6cd547b2d126549d6e7a62b37dc9121b68b52a156c0134c8679d553803ad2668551d62bda3d16fd3a12489c7e0edc87fa4da8965627e55256d441e005335cc212a7bdb42e62c7d23139344041b8eb0113bd0f5c64027ff6c5c0bd08a042a287b2ac5d45a002a92a69a7e8325a5456334219f79c174b959afe78c794df1a8aeff180e94ec3d2c1d25b8ad5d1c083c372b2cf3ceb569a5768518877d21105167eb89cf3793362fdc591066e26fbbb028e6f21da34a3ab13f26d8c3d0a3e8bdce05a301924837989cfef516ff4c18cf5e74b0ceb59c375f585bc5b9f99bb1c02968bebb18f7e16f632c33c79f341974f0f8f9d6243d59932e21b278760883f89724e996d5ed7d179afa967ceb37d0a4a4abdd694a386b6c36f7214dd339fd87e2771a36517fd049c04090827db6a0759178464bd013258fcc4f23335ec1398c285697b2f410777c8a9aa2c7c8995ffa16bf71da60fe56e0782a1fc6a58522e1bc000e5e9839e5b812ff220fc884fe35ff2769b4debe516ead552efc4f956a5ef9fa31d0f13523d6c4818d64d4b157c6a2f044dc68c85371a0f23dde353fa086de804cf1f8f916\n\n# tcId = 167\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 5ac94a9a7fad561012e21c69abeefd2e31e79c2978f2512eb8a3d59c50430c0ba3ba47ebf001b7cd0f6b38455255c3bf241beeb1b4ffe47c8a32919ff9e7aefab02352d4a95f2508d35409dbf0883f2b9d6ba8963c13d8a403096cac6be6a61e52c6a62e416b98036104f4375666a9566e78d3be53708a41f0407d4912a7da03c28d0edf69e6dac1653f8edf05d081a637e3e179d30d595f35f7e75ff418e84991deafec863e100e758de855ce51c1d047fd2c52242ea4f36b0d5a7690b784bcc99eb09eb3a0d434e12aedc829cd9b43fa6d4d2dd6566e12295b25c9a204b0c50a65f3aa69ca20f8f1f2036067891a4927bf3fe00ba892ec904a6e64d01eda8c224765fd3ce14103cf4d4b6261e4dc4d0dd3ab112707f2ba113baf69a56324370689302a956f9d1b1042a9e2baae8d7ae38582f597ab86bfec08f99e8970df218772bda2076ae24f2265fa1a2d197d78143c3daced75e66604098d0587258eed61509cce845410a18a81ff44fe8b46de83909eb0ff18f7c99abb1e3763bc09d", + "e54d07500626bd5f11f21f0ca62d1b8cda6297d7ba833934c5a94c60f6a3cb8868a8f7cadd01a154f028d42c00097161253f223b14d7b3656405728804519fd6b903658eb0a56ada5c08348c2263d30b3b476bdbee5810f0dfc131527a5669a4194cfef11c045336c4d60a9966e9117b1b5c0331f9eb9b1669752b0b259bf2972\n\n# tcId = 168\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 8808740c5b391010d78d9daf18b3108f4c94a0efedd9294f73c977a25d6fb372535d5cb7a4a72455f1c540097f8763dc93748307c3cd75852a572d07030c1727dafc70674470e7aef12df09fee2eb53ba1f526de8e15599010a5bebf18d7711a82400b757186e55972ffc4f6493c1a984df0cce9aa53419d4caea1c4f4947081ef3ec9e7888b5b40e4ee943b2b2047ece7b7c63be08660408d8cb061fffd6b43b36d01d0617232c3a6770ce2a6ba1e5e0aba86c77af3e60c74677ea7e458719aaac0b26bc57c3e115db330603f2ff5aa523bd6530b6afc32e014b69a4a929cd83384aaba6ff6220d43bfbde5cab82f572b8d8fd9e1a57b8ec184f48fa174974ae43d5e7d1034301e1f656554929891d61929b43f77023c389bd651dcf5f2278bd9c99ef7ef61a46c1a1ea589beed36e80efc821e8865412a9c22aefe14940ab17e68055d79f328eb5ebff9d43bab4e829c51e9dddc5e8900c1b82381c9e5a3fc56f922a95e3b56c5d2e9cf2797bd394c0fb62a47a5c54f19c76428ecf0bd2e5e3b845a1a14f14660932a446c9617f1b7418a642212bd3465cd812592c0cbcda5c88c8820c514f0702a20c59380ae782190f0e2e4f5f6dbbd296729d7f81ff365f7d8f273f49d27e0e1224930b48f86085a702a45cadb1aefbc07eb0dfb56c2628313953befb3988b20f9bdfbc6481f1816a05344c5a776ce20404897571df934\n\n# tcId = 169\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 62b367fd98766786960949acd2db1e084830ecad8dd52370500e54357ad5cd1f250274fd3108540bb54101981e326949b5a671f582ac3d05a4aa959be04754f1fcc20f3fc43ac910455a217579cb05f50abbc9091fa8cd76fd7cda030c899cad2eb7cd76ea3a3749d524cf08ad4898382e48faf9d34113628280b306e0180a1f9b8122bf8a69bb53ed19200c45fef52c8a41db390839696c4de65d287f0b90afb92d830b7b96a84f122c70df93db43a52876aa58d16c1ada28fffad42995075b41f0117d661f145f11b8bb18982708ef779e27d0d2303930752badd2b73f5720812c5626b38a1cf9b6a759c474d8256b668d50050e00f99ffdaa111cb3f4d96f8f6890ac908dfc56acd0076a6aea13de904acdcae17dcc8d3aabfc90f8f7a51e9f430e56ca8fb0ee3bdec82d2709f514ed037255ec7fafc22e7a396014ff7c479e9333455ab1707e0b65870ccbfd0a3f17b8a33c2fa3e06d9d2b47a77c3ea25dfc95519f2f28e54ed7308157965caa26caff01f64db282a7ac0f51fdeb3d6913939f1c8686f4434a2f4aabb0692ac2b09e269d74a83d8b5c917d1275481dda53a9b040f533b7307e2eba6d6fe582f5a594945182df5b1a7d855f36bd4fa9a47be0912c1be5aea36ca346c6f092157111c89fe825ffbd7bc9d9a5bd778b8c257c90c6677caf72c176efe2645f413acf5616fffc9dc9fff34d4d312a0647ccc296\n\n# tcId = 170\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = ad84f260175f9a0153420722e2d76c6de0d2bb38edccf510041f35818a1802b679b8b1ba3688ea486da1c58a0a22177c500d92e5eb880e6ea0edb543c30f11733e55167ef90bb3d91e0ae27ca2617f3ddf5cf2257335458ad65959eb6552df443de1dd3128475ba5db130524093007b5d4b7c6ff85186107152523b37aa1981e4fc995c1045a018e3559be52ab580eab73424f0d344612be29197b4bd571fc34287c987f090c639099db693f9b85368b61b6a506a283116df3cf651880959d0c98cf0e0372f4467f30b57eef683ebd057d6dc8a9b363bc9589c10edce9c522f2f6df7408e9453eb9439050c9a01eeb95f9a54a64c12bc8cbc883f23a4885c81b0d2fd01459cab54060721ac7245ab1b4cdc6b4c1c9bb4414a3d4a92d273b5edce9f947b9c5c238c10fc383461e3eaf11da8677e65236e70ff18db3966aa07cf596814ead0dca523081b47798dfcc07415720705a888b21d62316c675a8a3abf97deee7641ef7418da715ffdd00de54706de1bb458763142eca28aad1ffa928a06b5bfcb28a1629f1a606cdb6d9af8c0f93425e57cc1dd6b00b0bfbedb8f2bbf7f462cf677dd4483e3178558a0d6ef3cb4ad55f5a302b8d3b4d83ebed4accec1dee8a97c308f86197c4a9a2149531739ac00d3a832cc7f9cead2e8c3fc7c8563040503923090afad5b37266c297452b527211526230bca293bcafda4423983799\n\n# tcId = 171\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 24e1fadf0da791af63242170a1ed87c2dd8c9f66dc7c5584b953fa27cdacb3e2eb0175086b34b402bbf7da96f9e5cf6726a06d6472b818701b963530b9fdc8538cc229f0c05d883664de6dc58e0ef822c984bc83db6266f62f6ef6b661e360a1feace84ac3070ca90ee424e19afbbb6123e4ea1094078fafcdadd6a0e7c5b3a10ac38fa6456927021e5e201d5dbb32779e962252950bd3262f5951bf6a2d092e61e3610fd9f8f888a091fe95d0e29a6b519eb1808906458780afc51e476dc9c94d4d15385a0048304beee75ac739d698abd2372f59b107bf31c9af2d6a3476081c7a9a2b1faa1b7b414090f971491205d887dee30ed56e5cf43bf5ba160d6f4909d8cc35015533de2dc7948f51947e268ea29694fc44bc20582ac31184975ef043345b3296c7776999d2b65a5ed429826f658c79db5da04d511b01c2dde23cd0af17fbb95a99bfd0cebc94598adfc0c6aa58f3c6f24a2535849e094d8e87a860e232acbd4bbec060daccafa3fa1fa8b7dd68fa0374ae4feb71f7afd9e9911183db449ec67c89202d9ca3eb6319286b7377733abe0c8b215acb640352267530ab307f94f0a70fc86431e7f1920e97a2f67ec663418350a820ed5bc2df6dfcb05601d24128720eadc5068ccfe7d1df0391cf0427c5555b611f4c9a5f3748e525bb7d1de2bdfa37b8787917fc6f72877e2b9e970068982db3accdded9b533402a0a\n\n# tcId = 172\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4e29d514bab9cdc8821f688fd7c846daab154661b0fc6404b45a0e2b487b6ea8a66eb6bb7822e10e3ee4ce601207e64237b29f1e7080fa059c4caa7531ada59cd7d8d9355f382737ac4629273138912392120d5da6ab617e810cce32c67c0cd459ef2a95f8a153167a285f21b67a312a01c150ca94cd9cb6c204b1f98a45705ea48566bceb45a7200f162d30abfff33c97b7ecdf3abec66407d69c0d9bc8964aa8d5cc183b0ee0873bd3bd62d0d29838b1ae51655d2f0af2ff818730f5b26dba1570d569d271c874395e8bfcecc34035c0a216881f7c5ff6bbf715397c2d64119252598357fa9dbe2fcbd3bf76d34a35b9abb7ce42e336b00f7cd1e0369f296d0425fa40102120f76684def5c4d2cb1f82a9cbb35e0b0c62901c676959aeb8a469c07c21cf672c9878efeedea12fe48a10a938253730d2aa5df7277e401bcba1d83a6da09f06769d9d15d4c744ec39ea01135a645b89419197af49d0c7c71f8d40f578282d81f6f3001a8ee6c3b9353b458b2b3db4e66a2969940d3a2404b4c4cdeeba15648cb98989f9eed34dfdadfaa107b9d089d38153099fbb8447a7825ef41511af710eef6c227b1ce034c10a62945f40ecd388cbacf547fb44b8d533acfbbdbf13e078979aa2189aa533decb86f23b7fdae67c48075917b32457b4f67ba84b00e657bea303e23dce601f74a0aca78f6c5ef039d766678770111ff90ec8\n\n# tcId = 173\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9e61a779b2a12e128f87cbc3097c4c4f76fc0d0276cf1e7a1cb4eced9fcc0fd4f545e247c6cd6bdfb93835582f153161403efac0ff2b604420855c668691b067a12e1088faa1b0570b6b33821b454b405ccccfa60a9d240beda3ea295c750f45a80e316b4c416a901594b7406decb58ce6aa412a9040807fcd50a100b7fcd882246d1d6924e587a6a625a0fd6789def10a77379ffb653c96eca0ebbb72a5b300c5477ea534e6f853f1a2865f5713a2379835b348ef0e6e79c23812d6231214237c9b19dcf92ed8b474bd5dda450aba3f998854f123710d282878681b92134b851458b071e92863f0305d959bcd7689e597d03ef48ecadceeb74f7ddb5546b8e21a9d3e49505d16520bf67ad8a02b1ed660e6fd9288da454e43d4d45d32ad2f4f087c24a899bf74f0163af4f7d058d14e733a2078001bd619875e0d603614a95b76d4650b338f6cd244b1fe2cf70230f453f84db1abeabb1e8f70cf2650bb3762e3119a156fbb8c5c1dadba6fcf94bd607192bfab2dcea15a6184e71b31d038baf93998e72135af1ee22c5701019f4ae4244b39242a603e983b919efa61c221ab85254d43235ee337b064131a52ddfbcb298d50079c1a9e84700c688f14cfb1c673f347becb6dd337c310f57b800d12a476c2e014efa85245cb5c587d69c3fec4f59bf2bd9482233f9d7a8fa3290dc075df31339447d44577a27682111a9c41c0\n\n# tcId = 174\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = 034db01968cfcc19d6a59c9a15214fa3a7f57ea39a17de71a1b92e4210b48c9299964ec353a6a64bb185e545aa039b7967bab630ac4773fce449ab1a6eaaae89842589d6c92e0047fce4e7adc71190f554ad592c4975cdf6c5b0ce78b3738040d35fa0515479a0967482052ec9a0bf7d00ad2398eb5fcc07ea88682e158da47df3bfb0d895749b1d613160542b1ab30493344a279bd1e9fd4222951adea977cef7ea3458e16360f00ac44bfd8e6fc09e3f4ba5929e1bfb0a33909c180346385461d4b619e0cd2d2b7c30f94cf3192f72ca397901a0d385754b7f80393bcdd5bfb00931ae15194d0c83a8e6d4a3ce682c9f34e2d8f0df0941aecc2aa2d632e6b5a6053171fe54ee84318f305aa2e06280feb10dbcb98b0070b0db8b06209558b6404960f809d51085035b0d032cda67256d747925688f17f98d3f30895a435314c76f6f6936fc6f93b53d117fa0a99fa3953ffd614899ae2dda61bf695935c5fc408a1322ff8678c1a239d8733ac9b65173d4b04a24fdc3236901431fa195b2adb767990f6a9e1bc515e6971b5e34ab9f426b501df7c6fad19db554121a7d955e7fc3e9c3d33abe0198b2c8ff870decc2e3eb31af4d43d895147961278de29e9c11a67a5abf83b0ce89aeeca6e7085ea8ae30595e0f11e0eb65d0252e0cf682c813054b8f05fdb9d77cbf85207e4eeb3c48b9ca07df13d771218fbded402b7121\n\n# tcId = 175\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = 4985a583b2e7cc653a5343d6bffa4f349e115441d35f594332b753ae0069b66ed24e65a9", + "3bbeab94b25d992ca871b64f18974fc65ea52dcef1dd95e46b2b758a847a7c66082cabbc1d08df1e3b4d69dd5e351af6e1dc1edf2db8851ee9ebf24135ad62ca44547bcb954ae58602f7d8eb35a55e8835926726fc31360fe822fb12dc3e08a03ca6e3c19299682feb785ddadce89486ee1175763b52ea96267e5e90cca8b49724c77c27102a2502f1b898353220a0894bee75278539eec5d19431f81ed9b2fa3ddf17955d41ba0b86cf5dc1e78828a8561187d87140ae1a8dfc22646b23df51ba756f0af64a806be81a652cfece86a47e5077f560b89e11758eaf8b01559be0376ea02f40cbeddc9735681b83450f10696f2306d06f98bf2879b3d35b05b75cdf316d62ed6cdcd7a64455c0642f44b1c603d35c1042aad35262db291383400797ab4a0875addda08cbff48811c925df7482e468a3076bc8cc89e8b4b76f7c9202acd554fbeaee95be3ee8d59207ffe2a5461fc3019607ec8da4c267be29ae4646aed386aea72b47e2abf1be5ea4c2ca0107aecf9813da0ba6b3db42c3d48816e35c3432a0db42f433b121b80b461e4b93bfbe26479eac726d5e70643aa2a0cb2c2e4dea03a57ab8e8158c6aa96fa0a70d050969e4ec40ba064bd9abe59d5f35cb7cca552a745d9306f05eb1a16945d5f20477f203f2a4cc69a06a52\n\n# tcId = 176\n# appending null value to null\nmsg = 313233343030\nresult = invalid\nsig = 8f4b449309fbf4b460d841593ba66bf21a11565e948d155c9989410e0a112bd38c950e245cbf3010b34218d48c47318116a5f6161c5ac19c9b7d65c6c51ffffe852ee655d33e9dc5b1b92b83efccc1e68376c8e29665a8acbf56837c3fd12ade872b248021e701a64ad8f99ee2d26367b3463bda23654fd736c64dcf737f12b372e146ef652c1d468cdbb669aeb50ddb966da6907d2cf7456d29c3e2b1334147327cf6fcd254c536dd4607f3a2a8b197d5c5f44570d88ebe5fe821f656a6b254fd0fa034f7a56cd1e51724b6bfbbf5fe301223512c6b30a08eb4f8d37f1000ceca973ff43d409a1b7c37586524aaba49d86cf5187dfecc24d8e8fdc2386dc18d519d3125f753b672fa2baf48c8f8fc883f01de016b9d264b31862870340721c8fe35e254689b1ef3beaeb8b9d0dcd6a28bea69ede8f2997206ac30e9999ebeeb15936e24b0964a2198f97f9efbdf45377b064c62aaa68f67d68b181859e2f9022cb2253eebab8c39090fc8828ed6b2a44a9465d4e3068f15bd41c7fa7160e0cf5565180ad3053499628e4d91c27bbf7416429d7e2763ef30719fe639f72e851c305f0ea4c6de7ecb7a010357c17e0a3a4ce3ae784a78b3eabdb524133ecb59b94c3afc1fff696d7d89b03928d0ff480ed32f8610dc36d941665a2880c4af94fd8aed67e70542ce3caeef19bb34517e62aa566c81f1b0f232c9adcfa07c8291ca\n\n# tcId = 177\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = 1a23f908899cfd37778dc29a4944afea6494b2c3356480113316ed761fbec243ed42fd6f0e7a1bd51c6c432013cb8feb8c4e5203065a8bc5866d2159869d9e4b47f0b8749e606e371f9204dc6b8d1315b9e356cf4d361da1a9054a30620e48f668387b1d825f53752fde9f15fc187f64409df1da8fa8409f09951f445abaaa15c5f370975cd38a0051168779ac77a798a9956fc678acd6c43df3381558ca7b3bb30d3d2a77bf391cc55f057e25e2203c719bfeab7dd434a7bebc8427f70b239497bf1267e053901e161e8be2d461ab0006f151392c598ab08c189ab5797a349b3c06f87b82c894f7b1d6301338e10a960353a6306cd0f3997de6d4a9f31de9cf2da9517935ce7eb91900d517e45a664cefe494ab8c247e0ec7c76f201b6a3b619c286bd84759b5f1055d4a353d7e4feb71185b8e2b00ba3a06f180109941017fa849c10bd9cd187cba1154e64c4a9856f563c6af807d6fb914fbb2a843193c234c3f933e442fd6de4e2f2fba5b228dc0dc53ffc413f5b8eced36d9f19b890ad0aaf77b8e08fef44bcc53d2e7b277578632cb30180e642297d24e9975476236f46cd0fafcd93dccb47097fe91aed1a05dfe855b62768ab2bd65574e6974777d54a1e6620f31e3fe757a4f24e43817ae45538aed83c22ebe904b453bc89796998b3c43661d5b638670a9d46beed06e2208ebe9892da5bdac7127029e1a621731ef\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 3cfa2d610f8884246aad5616c1ce4c5212b2cde20d26b7fb8809e988d6fff65ac322dd443df32ff4008d0f6a9f30a990da3b4c9b3830a9b6f9616e1be9194dcb6f05e634bcf8b8f1241991ec8e922f5b3db8c5f81cd1b4b92f5248b9ae87f00117375c9bb02ff436ee6d078c9f86f1d5635b1100c5c41daa43c9781b414fa2a065b906630259976891e1ba4b97848f10c3425bbddc1e94d7f3e88f8c5e35851cdb1f070fca63a0e49114afede07cb02f2688c2337e632849cef8b5266f1e1e752f4f038bb15c7c08de3bbffe8671280c50e389e2ada8dc33ef777f3b4bc62594061cae12c21a0997e1be807dc9a78de7a8b39d35458a385beaa10cce743cc5cbe105ea2b2f36fda69f7314edfcf14c906ba89fc7bd118a3fa2c874cf72fd50bdbb5519e9fa054b24a86117b1b6cff2674d62d744dcefaadde620970f626a69d9d1db151134f3dae14a02878001e0e4a7eff328255e9e06cd1cf1817fac0cf9e7644177a3b46f417d9845060a8c62e2002dbc6702af1f3eb78822edd87fdc9ed01eeb8d6fa3bbd434ce5b089dc3922c0f0a7d56ffcf874421ffcc843c2675f882de1ce707b9797e73e4144a1ec5324b6b367c2b1c2ab7a3ebec71ce88825192e1959fc1d4e45c7c8c6cc117420c8ac15143c7a4e129b99c61c07db1f01951c3936f5307566df63ae81208ab3bcd7a6a67990d36bfd18b4af41c64d8ee36500d22\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = a85de4a779b4d0a339959eba0f9517f408ed878472054e215d066760722aa54f18977e8a58c7b5fd36a5f06220d75b2e6bd6e46a471e6b58df82205b25458c13a7a36f7789bd52e960244403f1a495dfb4feb44e0b0d745b9908de3a7832f5941335a59bf9f4ce32d5b8fab88db64a6fbb043f084bfae5b3d388d38c3e22c893491db8d7995a9206fc89ae29806093e1c0056a80534d20f41ac99473eb3c50695ab5c98deeae78458a00366e620efb890bde973201d0bd2dc5e8c23a5a4d49f94d09e89667f029c68c7a64f46831a718da5f160edf9c85e7e990c6557a3dc6fd3f1f4ee05b6d135abb1c1b338e101061d9197ed6f291900cde627e3bf34757e65d670f3834c2e991c27cee515d36f306369f32b1136553245242d8ce4dda06d6cc1f6f59bf784cf6aae50d2345bab804a934bac9d3bda14ce8f0e658464e42f0fade2d6b464fce88496f7a876aa519f334f2084d83323a4310ca2db6ba79ed24efe8e1349963d3fc7dfbb56adf0752427dc057e88fb250780962df439a6fba2ce35ebb4a6668278555500d32759697ba383b2b6ac70b9307d9497065a4f940196b384a371fc90195de37080c7129f584e57c893b1d45ea1a9b87b1c22dc8e3ba79e2a91765cea094932fb6544c0365960ec87ae9d1ce42c7612c3e66be8595e5c48ec96c2cbd3db29f0ba770836a1ee01069fade93625b4222dd22f4690d21e1\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 90cf98fdad0342a96065e493823ccade9b64ba7d55854ea54d5427b5982193727e12382e5626e1c2129551d389b613c4ccf7d29ef7c1b7af895b1081760eab34d354180c22e64a6c4e9e5daa00a13a7d8046478503d3121a02c9ffe35c3bd2b881815f388497d66ea3985bac4eb92f783b53b4e8f9b51e54c7a115aa3412688e3b8a5261d20035945b91cee01839cdb8abe51d96a850bf506466bdca087dbafda1d7eff29170c4c977b18bf218d29212e2dfc170918cee6cdfb6fce32991b71a1103e7df86ee31900509e519e59ecbcc74c99800a241db9fe9f7900cc48f54a3b29366696b65f15a057b2b5299ce92b975c0c0438a2b785d933b131f6ed2ae8506cbfafc0057afb142857d90264c07dedd9707a866ba150a1c54fa76fa3ca46627ba438cf261991e1efa73204f8f6ca7ae1ef041dd52888667bce336641b955161c7c718756c4a4cee7fab6cb9d5b98a96e5417902b30f518328e6f8c405615e5ef53b1ee685081c3d4758da7872395fa7b7010727b873d38f2d9164f254ee8382261f8ca4e7221261082ce9d913362933a2e5f1b3ff1736147782b0a18e17e913353f10d9a8cbf643a73743a37b085b608f2d9579be7a985c1dee58172c5b50bc4315fb2cc32bd62f9876ae4826ad75548573d4b7ce1c0aaf816b91a9b71e4e7e134e4042b219b6ea185814b5a265383f70b9311ee33965f16020d259d34aba\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 26bc51a5ca916c06954c53f78cf9cb9828bebffcf0a8a665e3f57b21b1d5448d44d2013cd44df286080125c4996395384de92a32e301369f22c36d554b7fafef65aabde06577edcef85f432691064a07fd71244bd642973d5267e07b6d224b1af31f0f7922c35192f3011e32fd64cf57f9eee9af506136b50d0a8957e9a701b1a0ae2e3115c6a95ff437fe17db195f85db8cea850a6eeae99cfaf496ac1ce023b909127ec2f3d79817348790fb88d36d5777384e0c2ff36f5616a6f805b74078e501a1e8d61b29fb92e95f14624ff9fb56de3a24d28fbe10a111589ff33b28455980410b36c636bf159f94ef30b9f18ca3e6ed69a0d593e06a79bb1a0b066d718064956ea884c7fe13f7bc80f9960efee39ccdd45d36686be74c43ca4106e94dc1be24d799610efbd2fb5002e2549183362ca0eff49bd9971855c29fc4ac31a759a57b2de8db0b1e226d924b4aa0e04f035a3cf7c0ccdd118e577a0eebae4d984f0230287c666d989d4ace41e02da8c704c3b5a2aa95dfa1d18f47dc1532a9fcce3cec6a49ca16e47288857d7553d3526916a976f0eaa238a9e3a2d37714ddacce0b40e260f56e1ccd9073466230b7d328fa69caaf79030a84a1aaca741cc196ee2ac9a44d9ad4788856e9fb510c34b9ccd61aab89a725870171b8a8ebbca35ea0968efb441346c2f04e4fffc19428e54ef96b3cf96593c579a33336e6cc1cd2\n\n# tcId = 182\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = ac0c2beed1984df4bc57b6ac738f12723f8bdba28d7c9a6b4494cd26ca118bf50490d366a1029443bd7754cc507ea785ae55e726762b11bf5ad687342f64b1e48ee2ed52a53f1dff4d5a939c585f2ddd1ce4cb15c460f5b48ac9fb8ee6f0f8e308237319cf7445c6d4c4fe7eecd5edb127eae01496b470aaab8a06488e9bb6473366ab21448855237f1f622a3c419093236cb2b6fdb672ede809f23afb675f15e7723facbe7d542950856e4b104109d6e647d80e29876c698f80dba9fccb279c2bcfbb289252e78477b776bf30b98c2405b9fbaa5ef53d5d846edf70215a99ed6bfa578a613a9cd0cdc5827269311efdc8cb9e907ffcf0", + "e66161fab2c4eb4e3aae73a21a159b341a38d92755a3094854588b1e5e8a427fd310f24a0d5422fd8967d36fa0c54efdf471dd230cc2d0bb837989fc197d193786fc84158649c914e69322c1d831ef10fbd8d26a6cf5a78e86b6ff5958b492201abdd3c3c00f3508eed16c2d243d15b4a41becf2692b45ad351b388550c04520361349df518001e5b0a5df31afd63e67440ce02d72880df09b6a3556200f68dee0eb665e287d197975c998f13272cd02e0a6b41b6d3d4994360abb26b35579d2dfc256b99d110e8328cec738062b1b04aff46aa43f7ff3db2cb6f702a45c23a18949f4e63427c9a6aaf4e44bb6917ec578653eac975b80d9bd8e4f04a2dd518ac74c626022b9214e22\n\n# tcId = 183\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 5e315a5a02fbce14aaec84d260b755cdafc00a9c0108766839d1b0a412eb9825f684118b78d8361fa3e51ce358654f6d179ae660aaab17f75f7f787f9447e7771e559593b0621bb7d169ae936e4e8c85e1a46a2e74364a3b3c965b263259fbd836ebf944eb2d81cacb367562323588745358511512aeb969e6ad5865c6065353daf9d14da626166228f0e9b16381d2717b686d37a3ab02c02ee673042df9ad204c260f35d5ef14fa74d903e6b759d0c558c698470267bfbbbc3181c7be95f9098d21a084bc3210828bfb32618f3c3345f7d54dc97ae69d256ad1e8ee4c7338290cdfaf90d35364ed3e2e9e212345f119571e59bb0fa867a93a2573145c9e943e6ece0e0b88c011ce15c69f143d4054b06897a5681503ca8882154044b003395195f25d32918b380339d13ed673fb434e3a94e104314a79589d53079179552d43de2a18d1e849696d4702d8c905f9cf29f0f805bf28a79ee8ba6557aa96d01a5ee4c8f3d7583a2daf1c5338490fff7dc276669aabe88d851026b3bf6818b7c17299e23412f4bd084a52a1604c00389b629d2310c932cb8606c6dafa16f357565b96d8af78bbeb6b2e10fa2f57cbdde3cec2b3e78d3f853bedaf58fb33d455387ce6aaf6e9d9681d74a88b767acf5f99cb83afe65e167c61b6fedae893b19bd9ebba8c9d1f791ec162aec15eb7301c881bf3bbdcacd1ab4d9bcf032a2472cd98fc\n\n# tcId = 184\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 52187afc616f1372de47c41592fd7d19bf2989accac116b8fb4e5c6b19452f733bd89001169f13cda52f0c38c7d842b0217326145b02a02a7bf41f3229cffa9fd696a152072fe2fdeac9c2829528dee6168f08712b9f4879f4da627fc1ba176a6049f68e00ea00e8f2dcb70f36bdca4dfdc7a33d43f4500f4dc774efb5f228690a87e78553ad97c2d402ee92648391310ece59ceecbd25b5ce630abc5e063d0b1946bc44639f22af8d3a5b6b5e9f322cbbeafa0d8ce850b933eb67534c7a240e272b1f117b63a59d122a16c2d45c7a891b62ab2e49ecf0f71e702ac02212d01187a201239c8f54a6f114574a78e663c948166942bd05ff8ddc2a62615dcb30a9c58086027ba2c39cea67f4440c41c7145337832dcad97d91af4f3fa7540e184e5c30c35e2458b6e4cf713d5152094d567217ac032b5aa7418c598511ae46152338b525f30ca9bacdd80e6e4eb242d61217afecdb5f7988ba5a6440cdb821f6c2bdc46b731f66fac51152427b7269a91c1ea2b35de0b9f690a5cfe29abe7e125bb1ae45ed78b1ef7ea961055154f52fbeb638cf72b8fed371211b774f712da5ebacf0b7311461fdfd86e16015e0b85af0d38079a8070d83043c437e3270658c023ebe1319536eada54a815191ab769e41ef3795247e4670ccb7a347878e373f4541893aee9745761eb8d1c582ac305e899e8bdae24bf2eeec7e4a18c5fd22ea06\n\n# tcId = 185\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = 913842cc62a41a3e105873bac488ab6e5e5971f24f38fb6d99fecb1b99d47519704bce498791e29ebabdefa89b02a516e92afbdea73d39c801a05ebc7b9988b732103d09064fb8137d96383b1c261b52614c8e531684ea0f1a29c043419ab9eb8610e2b5cda1ab9515b5ee19bae627bf622c8c802d6e97565e50a7fd6715ef3e921bdb3e0c82ba1e369541ac3037c056f911d5d434b3ff1185d33e2095a3627134bd6e0bf7e10d2a7a46712c9de87120daeb6b13eaec78d4c577a5f7d33f5a17e5fbe48ca4de7990df00e403cf2871050fe49d49e7b3121f48482d35600f5cf9a836554ee0f80abae1d6379b16833a64b8c354f80be5794fb6d6bac6e1b567917fb903237c79900146bd6120dc49cd1cd48cae7b84de5588d0c4a76fc4cb5b0f6bb3b1a13e7e6bc395d8f6f0723470d300d4529eac1ad6e1b2ed62d6903bd6f92475d585508d242c2b720fa694b09a7b66ec83317596ee62122324b0169cba1564d6c12345ff106472af605f732fb635646c9b608d6e8dce4951b8e72e56ef25eda9b8e81a4a6b40294fd8754340d9ca752274ad72ae3e4cbb5dcc85bdff3903016fdfdf1823134e1c10398d1ede0fa0dff7ab631db5a1bcd943bf6a2a73a03f97a4f504e5e8832df7f58c9ba99c54e843a4420b977a6602d555fdb4ed29e5237347be3707621a43cf809e3ec3b6b1c0e0c8ce7768ef96c7f4735c0632956e83\n\n# tcId = 186\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = b188bf6d0ef7001eda21409538960de8ce6765f52a39a886d5fe4e5d7854f56888ef04b8f005439ce3db47572166b13717de4c58ad31683e380bf23ac98d5c541aa558fec78b27c0e315fccc960f6b6445f8d732a144dac80980eccb6b6efb7dac2aa3c44c70ffad0d38f50c92acb71d799fa31b7efce919e9a7e7593c864e1eb19e1873a4359b4cee15f941fb70e4ed1c180fceee643c55f35e0a0ea45eda985ed5e104b696f6db37a21df74693c75311ac31b2213babfa473fab2c5eaff5b003264d8a1fae68b701879d8bf7d18af7f2380e513744b7eebe1ee83f6490cac6fb47962d59b2d304a920d7dac88b05260229a178f6196bc0977305a6f9de8aa58f6275df14ea42d3aa74d06760a712a257b2e1e7a83e0f41bd9c1da4f76d7634f8a9c2ea66ca1f16d82d27b55d55586399838c3cbc523c2f588e1de72b0f08ad782c5aa6f28f5eaf5eb04dcbe5b74fb5b3fecc99877330cea7c8bc9f2d99006c0f44f8908716ec8eb3c3273104418dc5b0d90593ddf8d73bfdc883dfa5f3abfa977861147fdeded55d4ce67a27bc8f68fe407cb86f5565879888b207576e05534dd0c6e5ef30a9f7d49dfb2d5023e318c6512a1c91d6a38961ae9681fe98aacb81802ab2415ff7889763329eac8a630245f0acbd2d29d18a5f5b7261e0379bf335e750c6a497d0725f2def9e4f0250e40dd11c62a4f4bee3cad2eaa361afcf06\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 88ea7c7ebd2b87ad0909f3c32cd4a460d33a96fb7e5c2fa353245e2f26ab1a6240c895ce28c94af7289d359836ff59dc634556bbac9689d33bb9515cecd733487a3e3b5440187bdbd524853d5102c500975db75252b96806350d875ef933f64ccab351143128ad81e3a02571e5b4048ec58b5a8f774ea5663f13f3e80f9452d67804c142b05ff2bc11de1d2ba0ec0b2e5e0f330006febe1fb470c93a424a05e14029834787d85f3b9d2a0a508a90d00c93ae76ec0a9009344f37c433ee15ec4831a0f14c5222928c2f4af0e6f581a77b3c8caccf5f61e46fc564fd2ef8c29f6ce07257499d70c2861247e3fe037cb986a782536b4bf05ca186e02fa5a5467b11a16f81e6d5eb9502e5d74fb207306c1bca443480b7fb69222152543892f8d4521e18a63690d392dec80db59f9e391f1b1eb733062268f9e5d9df7271b29ffaeb58563bf1eaede746788198afdacfd5443dec21e638e1eaf32341c2dee6a2a46b1a22d20b1c2ec698fefb5bbbeb3950e1f16e75578fbefcf5ce2a65a248d7dbaebf6c5ac23207ef7bf1ab0f52cf0daed998022efc6dd3132439e69b9208abb16dfe4d75a0b87edcd433a62b2be284a68d91ce0e987d5b79bec6924fd24cc030b2720a87fbff09baf20690dcedce53ba70a24fccaf89fe7bd6e70a94c957a910044d434b8326c4cd3cf85d2ac2cc41a4a86f336975ddb73229ea1c46c1637a3279\n\n# tcId = 188\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 35f9b145c1ebe1e46ade2d5c23d421f944fc093ebd2de01e4a394954b55331c916101ce35eeeb6894e1aa41de098e076b18e258f24a9614581176ba9a5520993d9f4ceefa40943b192be0b39e27b6cb6dc972434d99150ef0737a8f2ceda8353013f0e74455dece6e0364168661b1f394c33f5543d77005feeebf72dbd5e553dc24af1d6f22042adb7ff5aec1ca4d808b490ded1fa867d15909b723cc0d82c45e0d4dbac745901d6f98c73b0fc64bd012d4ec94bb3537b4099655f3e37ba3fd9afa0f27951f57c88dac0658e73e9622fac5826fbf9386bda7ac59c36ca1350a5639215c6c5dd9c22221a8f47f413583a08b6e7d348db552db19dfb245276566df9698fa3685549ed93b95788c918dc4d3b37eb6c79a3020bb61cdc770242325d18b21081507968ae90298986903a55d7f3e4fd79b21bb1e669662a9c3e53f8d43aa201e65aa2dde0778744b2496ea2d9cef2099b68b4090b8dd73171ef95aaed07c4094ba842ebd4155e2d016ee872593bda7f020c59f3911a91d9f4b52dba9a47583bbe57fbf6603c7275de7f49a416440579ca93fedd626d52ce9faa51edc5502a9f28bae780e75cb92fc2a9453e7299d7783745d7bed7b3d1e54224f22f26668ff129ee7b64f4f065ac95b4caaeddb428035be9578ab51202bce32163a5f2b14802698f689216d9cc018ff1f33311f0758d99223a0fcfb3d5e6b451ef782c\n\n# tcId = 189\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = c03269d89ef851b1471facf40576a4e6eac16ac9d530f70b1b8af39a3d885b263c893536c943a1449396c38389ffcbeaa8bae8622fb327a2191eac27c1dd682c40ecfbbd977f7988509255a57879940b1e70f8f0252335e128f092b50157aaec86b46b0cb15dc1da05a593124a19a96889df23b6f5c6e2925057e0438aa79acd8fe8f02fe9bf6042668e9e8db2b2eaa67892e61852533e556ab5680db3db94a098c65e5b45526bea26c2809c406871bc32db868630890206c3ad3ac83ede31d8911724af0cd645a7cf99701c44f25d4e717de38e8a6972c9956ca14d17f66484a6e09c294911e5ca70fd29cc3099639f37e832e9baae0031b7f0e2825514683b6a0b38060354c6edef6d990f22ca88154b2a1faad0ff249a7b6e6ffa5d5a1b76534f4c8bfc305bb22872cb762d081485832ce74e9954fb4f6991e3b9adea0d728893d5511ea80a74562d126cb91e1d059621df2e61f59ef08b8f1dbf61ef5a983b168148b3cff5bd8fcc73630055fb50ec800de1a1b758daa39d79f17aae7790ff92c760d4286af58a8eef669e582d44d772bff4fa36d998b1a70f3a57c530d3b1416c1457903ed760f83a2b211c69cfd99d2a19cb604bc6831ef52338985fbf6f0ed657034bdc5cb528f57", + "6aeac77500717ff7cae5aebd6e8e5b6e7707babc79e0ff101f72727424bba8a9b50304dbf3843c63d4a4700d544d55e1b8634d75a\n\n# tcId = 190\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = ce821022807ab70f29ff8ad554934d4ee6dbbc97073bafd17b16a72d43ee3691788048afd16a781fc8c48e6c4fe164a50ffed9acabc313531b77a4e3fbdb2bfe73016b3f58da588a98b8670b94db5f21f29ac475c4246c1b7bb06d136250f5e70cd3efd0ade5a107eff64d6c0269949935e4779161e0e0047c5ff6191bb3a7ae9c0188a1928807d694e0e5d60e6e04ab6ec025d958f97e9fd2ff9bc1068600dcd227bf02ec37811e48c2c6963276a157c0ba580b5347d44726626f59db6db03d2470b402325c1173939a96dccb438c81278a7a9ecec51637d2003ea74d66262a389b0937d5586dc4d8d86175625bcee7211ba6b2a037a156f45eb450073f813d4cd5bd7ed02e55cbaf112cc1221da9a0e133733561884ea82e295f8778603e9c438159eefeeaa7e6176c1287a887d97ed394cd37832db837c336bde154d525ea5190d0803fe2b89f12ac8d0744dc02b688915064fa260931fc0d46c2c630b4eec48df59e8eed49aa81f903a8fa9a35b83dc70ab658e8cf9c9b5dd0b12ec4b4187ff7168dd5f5878d1ace1c5d101f9cad3012600b3193c2968cc29a6fb123c640a556c568867f8a18b367a45cfa339615c93a170ddbe5978af9c35a20ed7329de82cac130442813c404c2165bd32437fdbcf6eacf2b07df7cdd637f63cb0ca0fd427ef66292559cb5aae38e4f33400b89d1adeb7a0f40f4dd0f2ae79702c0fdb8\n\n# tcId = 191\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 056b0422a3c52fed3b4245e6d75557810d0605df9630c1c82c2b2e2bfdd3321a5e5d27a5c09e5babca9c489f104c17d1b185d6e2e471940869c65312c8c5fc3bccdf97b83a0307847c81bc775a2086327c825f063cc5ae421cecafd00651eb9b4404e8714ff87d753e264d91ef350c41f9d78bf48082fe70de64b29da11b139bb4fc3057d7d956c0863a1ef4e73dfdef88c7746175298a27ad247d6433f3328d4dcd81674cc58005b2383d175700798a55b08d4036066f8a42e021a455a753911a26a0d289f7fe0e2e47bff5e9ea690a5db22e78945fd08337314278b39c0c793cfb1756724f29a730355c969ceae1b2f5f128375f2557bb9f77c4d4a0dd5b375435afb0ba57e9a8535e8b18639ad594c38ed77f53e441cdc6b09827ed9cfd2eee3d8bea950f36d707eed98f4dcedab58ef866e61fbfa5fa12a42e776cec9319e578a3ec6878bfcecb073140b0c1cd3a3b57b7341f743a38cb203136a49cb037eeae34dddbd0fe2b495a508567514f9ed2f663325aa751dc689db7e4fbf94a4a42ece4b7fec7ba1b32c384cb5b083e3d3dadadf1ed303a4f3b6536f648b64915eba1287823834ce0fe9e7726e8714adfca53493ed5828449f1737e3d0b33427e4a1b34341272a8a9ebce78402abe4416292d7aa7e342402f92ca5284369fc8850bcad65e38af3848a5dceeb8b3c2337355e104a6f8892079fc4d140b165aece0\n\n# tcId = 192\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = db414598d4c4387f225934fd5e4c72084ff10722cc898dc51c2c1d45294b29ce712a53a09b710108811a46b33898e0fcbab281e029152fce0b5c29a83665252c7f205993e1f13d9f66e81e6e9394b82f107871cbbd72a44f04bcd433ed44e05c33029b0b5ad1e1d0e0c9e318c2c9b67078b14b75222c162193635f6dfa120429b1e0a4903d9edc3b503909403f2087f3f1eee09628ee7b74489a99abe3b7c7f6d76dcea609035f594194ee3c370e91d6f23d5d397235b07478a61bf983617b999a39baf9b008f34b615ecc2a6bf1936546dedab2b6082066ebf3713f6ba3bfd13733964a8daca273fb2cc11f09658ed20de09095655eac231c5141553d5ff7cf1fb90b4af73e12635b190270db4612a0e3e728d2f3e9495beecb5f05b2d3b235dfb823e1c4dbd5b6944d05f10987a6eeaa1471307483fa0f089b1af4f162eed20567c71eae78f4a409442f05e8465fe796fce7b2ba6ff729d5688d04d4af0f6730836abc1516c3cbc60c29e9883ef270591e98588da2b164afa4540e7707bf162163b5656254136b02bf1343f75b03a28e57d1cdabd20d0a3b0043d80671235e8f617748d4c5e2e574376f6b4af3d4d9222b0f660b0fa24ec53d5532daf334b9da6e5da51b07249579346b987d19481ba501237d82b0da87bb8f69615478bc9faf40f26d190b5dd160ca75226842db370080c0e861a944f97fcaee673db1dff2\n\n# tcId = 193\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 11283dbc06396d4c41d44796ffa79ef35040703def2dd15b591abca401e0929ea0eed828b8c495e63c13ea6eb39b646c91a57368d93f6d3546e875b573d05d538fe9bc1cf568488aa150913ac5d0434989e7bdcd86363ea056d7d95f41d8de4926861c9252b345de78986fdcf62940fc53badde36ac81618336e345cc27117533a2e6d92a31b8fdebd5d3d439f09f868d4a0dbc0946516bd833806f722698b1d6b3e7357605d2d1754f4b88371c84fc45ac9dbaa83c1f490f1c5a86ea4154665adbf9dae438984f1c7b2357d6dc51bb7da5f4962f7bdb11f3cd1eb502dae227c61123d9d62fe8ee90346601a0cdff03743576fabb6e93ffb5882d40e4acd41d8dd40819021432d035ad981de1e816a528e31c6f0670d59cee80c0f51687c27e600bddff43f4e15577745d34685c636ebf17c1917c02716bab26596800a43b80e6a46bfde3346945baf12283ac9c03fd0a8b693ad8da48576169132b730f608ed60390efc1af09e6759d9bac49a9b5baa262f071f21f701ff0cebb032b2a755c6ab5495e96c5bd28c8c3956b93eb353eea6fc832cb6d9a3da3b19abb6bdfdf8430de973dfa02006c110a8bacd705b2cf0293783728fcef3faf3bf691975ace772ad4f39c6372d8fee7760bc8867e6b2cecf2e80667ad52ff1d51dc8ef361204e66c1737b1a2ed42883b01ac665177dedc96d436b8780a14bd69b1398c2c27bbc6\n\n# tcId = 194\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = df34b1f8f45bf7f30425d81e8bf759ab02605330d5ca334ed2358b7098320c8cd2cb393b8fcdcf3e34b5979e8da7a39b9319f75d8ccb7fca4e67e92a8d19d4597bcceff395a9f27b9b97074e45ba7f041d464e543017a608b6abcefb4d4573eb864278dfcefa71d609ba6f806c95172bb7262f6f3fe586d819b6d6474909b8c03866c43d4fc06a028f30d574aba042cfd53f33a6c5f17ceb642018d4f65f429c4f1993c43c052a796297a5374a77485de537a3d3f94a84913367a90a1b25e9918aae8a1af92fcc6a166e90fba579934b04cc3f77b9f00a85f7c9ec0bfdce253a73599107567e73dd0f7eaceefa468f6444be09e8f598b197de5d81db3c54ed18bf6378145b31842473389c9c818ac5732af3085f44f2d273bcc4e9fe39dac188658f94f02af5f80a19233b5f210fea84d6864709ffd726d9e6d75ce653b2b2c628a355d0abede74a39a2fffcc9738a37bab90d4fd0a5b625e695fc36d289385e2125b55a4d3776eb42f38c18e9eb2231ddcdcca400b366d712aa140a1d9ca6af3744fab95cef9079c9b7b9abe8b93d64b0ad7da07ac6198a497fc4f827e300a98d6b572c89e397b3fc6c443168b23feda2986915d27fc857924cc5ae39ff3ddd357178cc1fe4e57ddc1bbf1548912a0d64e970ee4169b04e24c21fdd8b9046a6c07fdcf191d16691aa091d8547717c40374de170686076275d9231e90743604d\n\n# tcId = 195\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 27c4e3f4b1afadcf0fcf455f2973f0c261934f3e4876020d91106a1b2909e5e7765ae76909f33a3fb40788b50330ec983764d2692d09f63cfb0fb109a32c799cad3c1f6cef40959a47eb988c364c85a70f6debc4adbfc9cf5e322b4466a6cf3272f897f072626c61e9d80b5e8f605c71db0a5df837949b023d9cd084b74f09a047c97822f2d9ca140b4a1f7636d49e0ab72d3e06935d67baaeba7eaa7e2c04216020ce84b3b8f424a46f615f1547051af2d9c0eb37a5967b77bd3455f32b029c1377bdb8bc24b9715a4ed04901d117ac3c2e243ad01074eff35c72f23b158b04e0eb5143417e611a5933f085161e9f99eace1c06eb0a12f0aa0e18222c3f9faa53651b587d48c1b455ee41b57b6fb592744b331c0b61962fe2f8e011dc891486bc1f93cab761d48b28635585217ed652cc22b7edd433226a62685405e086df7cba2942b728ee21cd3defa180865fc1da04edaafd86546f84e4569f763ccd70f560f838dcad56868967da89a6271d8e5daecc9b81d2848f8da7223628d016f6a8c8b7debc6fc7f457f31fd8d7e8dc81a9aa826b15569e9e28f9b2d807288f18f08f24ecab89e5d829c64a7a2f304a4b44e1e84966934b86e6d81b2489efa05a72fc8706460b305406e7340130132a7e16d5830dea332c78b8d8da73557052b22e59389a17f9ba3677a78d685ed435e96eed10c073f450a0c720ad3375946e19d3\n\n# tcId = 196\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = bade6f04bccb08b16c76f8905a7b8487705e1c1298d0b9b3883014015457e65638e4ac31d5c2c88895c3435a5add7e2f107551f035fc823f1f9492e7f62629357cf03d899c90f09ce6f055a703c0a65dcbab879058975d9cf7c9036e1558278a085c9acd7a0e37ddf5f2395d51cc6312205717b981806add1ca8da8bfa3ab963245f534711b1a5223013270427a7f4282c42008a1d68280a2a9dcc2b61742013aeb6bba22406deb2b01894e4117e90093f2456bb5909320d579b2bcd35b48e5256d91f6c2f45eb0ec97d5238b427bb1995c5d396f1c1f6fcc5b51d80ed61961b1e031d4677415e9a1f7c3b11864426d967f7ffe89d58d6de00cea2933dd2efd018d7f42c8325921c09bb4c7639379cbb22d82ccd6e8b6ce8f309d7ac3b4ce836b7a3c2e10a22235b4b6af855069bfc2be8c509a05c501cbdd5bb76781f6a21bbe54124dd45e9419a7f6ecca95559340b111d7879b55b20a9b66ccb0efb0ac280a0af5a5087548b6dd57513d475f99d2309e1d813303b0317f509b270e016cf598eda54018c04dd9b5931c66ed751a38096bb7d0d37989a9c329a3e614c1feb2a45ed99c2cd32258351b98a3283a489c06bb5a7658dc09d7d50c9eb9a9779f43472c46a48071aad0c93bc08fbc422a4b2130f31099a7a8b6aa53915c448c6e1062008a6b3db1396ed9721fea2232c29b77668f590ff91a6a9171b45fc498a80d0\n\n# tcId = 197\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = e0fe1aaa2e1f3a9fad69dfc47b59fc4b7a62fe809d601b7e1898eb1d4757af2272064446583468db4c0579c2312ae2dbcb8f53e3e775e00b6c422f17aead765cfc7bac9bd9a1ac95ce174716631f1436f418f87d4a0c22a239ddfd6fca4100a7ff5dac5a0aca2d445bdf8a0e0367", + "612d8ca4b666bfd8ec11cc1a5974bc39cceb3023e26ed582089ff4c9e121104fe5e54a15013643eee10fdd063f7ec8a0617d69b880a50c4c53759b75bb7364e8505a630e0ec85855453f0669051d95c14636005f5884dfffedc042b68171b335ca8c1a0d9138bc48b3fbdc72b22a79f05acba1d1a95a4c7508cf2a0e7291575da7f0ed3bcdbf85ac0e5c9f717811a367045f13f6c46401184738d138e310b7b62180ed71d4df05181c6636374667d4c08a954845fe8fd7fb1cfc04eb673e5f76c9a15991986d3cbb0afee88124a705bbdc0875d5fd037eeeb16e84296da65db616fbf53ff57b0379be4902b26e8ad9f6d8e49a88987ba658673bf24bda358554842a6172b1656fed2dcb7d37ced7f25db9eb6f1e07ee6a313143c7acfcaf466034cbf7d2e6598dea6a4ddadb5ff6b3c595e9924df35942c53afb4894669de7af0a4d0ba2bb045f0969016596590a3233c13afe8af5a4f03e47a3e4b1310257ab6d42bb78527e7f36314d0bf37e6d35234ff8be9791694a4e018672678483859f4fe484718e324e1d753d90e95dbcf0273855\n\n# tcId = 198\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = d2fc4f1a9c2d8ec2900a5f3fd171e869bd10a9e1be8b0ceae5581ad77b2e3ed42c0e1c1f64e2c813d0aa650cab443039fc9096b36ac2014d8ba3a4ca0f16f64c1b61b14b7d0247836228b3c4c9520666b6971e969096dd431d8467414d1afdcb9df197a8e1985693de6c8933049644dcbf2ad818600b16d77203648cd3be96393f8fbdc2cf885df2cbeefe27b8cb487eeaf75a2c05a18f0e8067c60dcbed330dd08c3e37708db2e2f0647de8f9370db07b4725b594aa23e4c5d991a99d5a889798e5974e783c87df5cc025b0e66d718c76b2977c7fb734b31628b102d280854046923cc31277e01a5567df6811ffedc36b5131c14d49ecb6b07bb10262dc24cc830ba47ff8037d95dd0db3e75b7c0bcace8012c12132889d5bfc68728ab7573fcfc7c0dca0a49f6e3603f911fb0c3865afe52a2e1f45ad880b8bd7d86dc549fc4c697462d0e4e017a307732351accd9f36b4e151554c6ffc300b0cc1a9ae9b517bcba3f2183fbc257fef21de1aac5d88c7cad1145bd20d09e12d757bd3c9f9666ff9f458ce7ea06272d898b8e8689105f699d2f63444ce1e10e901134b200f81424a3b01aec402632118fa103b36ba67a6a42cac9769db9f0013511a436d64ca2bb4f77db3c74ee45d1a745ca9b6080badbf6fe2c37fb8161405fbc7904a348ccd388afb23601099c59bc819231eae98c1c9a393780ea89a5381a65ec61ea3c6\n\n# tcId = 199\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 89ddcabd561a4f806194b8946c8ee5763c45805019564cf69c69884f5139e7be9abb0a6c2bbf57f6ddb5dd4caca478bcbba0e47afa0d811a91a0948f96901fe6343c59769718c517f971c954d9b0a81026b6391839da3cf7deda8425454ca099f4f772de94306b75e92f97070a16d5cfff1446617ac6331de218c2bce80e4146ee109a4344bcf9e0f3a4b487954681d2f55a3a1f6fa6cc4a8cc535a62aa14f8cdb6649dc1323ed62871191bff0c29b2e17593a4ffcd3f453fde02cfa252926d800d4a5c76198f9d178bb5b0ea1142a89eafd52070b4a073667aa5c9bc2cd0b13ed22e3f5eebed02893828feb90db44d0fbd9cd0b7eeed1b46f465b131073b1a2f1e7fbbbcb3fb681b1d22acaeddc6783407dd349a593cba891f5caa2328e5812abe370a017436e25f28db1617bbc66cac26f5722f0b9d78ebf59aa416f41f44da46035ae02e2817ff53d4b9f53e34d81795e4d2fd1cbdf3993942938a323f2a8c05760d9c3eae60698a1a38852bcd8206d5a47c3bb62fe027ff0b699c33b031ebcf275dc31f90b780633db0aceafcf28b25e618c3b3993794f4dd2a6407295d80e9fefea100af06b00815662855a9d5b1bba952417f1787480b4e22dd3f9fbec04fd8b83e9ef6590f6d7387f3e991ab3b98cc88e9b3c625c78c806752a7cec21aa06334bacae39392d009f54e4f5d3a12b6e8a934506273c2059632bbd57dd17\n\n# tcId = 200\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = afdb8b4cfb240b4ef8bc1b202c038ca85119be1c48ff7ae6039ff1a6d46e26286708ec8bfc3a9726304f944bd82b67201d7becce9a147441ba8eb9ceea369e004f702c29b59faeb1e5efc72d5ba3f989672b170cc1afdf77511a9a2178b6e14a008a2b347b5c8c47efe68c6b44d86c65b9dbd997bf42d143fcbcb90048c92860448e6ae8939add23fbe5ccae562a02df9f9681be016d2d90a96c77fb241c838b1f54526a1adcaff0a6fe50254c9b5c6b3dfd00906849ded5fb6ab06c22473f471288c745b591195568a5ca52f25f7893eb95b17a081763ce66e8490ddbb588fe23b8c9d339348df81b7699631fdb20756b8d915e7cfa3a20bb5a643c90a2dbbc97142a4ca091589a0222c459b8738efde499dfa10e729f863aa42b10a199f4395bf0d131c13891050147db51c8333fa6f2d021a263df37dd10e4b264df144657e9c8bf23175079ef4c9a24b561806d9304a0f342ae4ffa69925b629bf65948e53056ba8891def8b1b827f86a1da69945907bdb365b627bb47f3432616318164a751ee85691ef0a20fd7a3e61c1acc4c2d08bda5b9a23a7119b8b1933af56497d06af4627eb63ed4fa8cabacd70c42e9a2e638863de1138f332d1ddc8a24b4369d4605dacd4df96b1075235d10ddec93e13a20488ba9b649bea15d69a30c716f962119f31927bf4ad5741a739cbb794b68e4103bc05fe30877d5404976c5de0b9\n\n# tcId = 201\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = e34288ff196d90eed5925c81a8a0127abfd0f0de550948f63be0f60896ed6ed7c474b544a62a96c0f82197e67a34bd53de8cbca4cbbc28b6d65593a154521ffe4331bc7f8459a4326413e838828c0709aa794e62f7518b028d811ab400ee7c875671992ab6553dab38e94a897be099ca7633e790ddd330b50325ae29d8b9f57c498156ba0b74c310e40dd10c1cf8d3ebd1dd40dddecebad7a3f2cb9551e7d384eac9d23bdff84726ea3e14d785994f3ebe7cc1c0cd336f95ccb8b0d6d8ad787ffc2ef008a1112b0315457c631df1641929675f2aa126f66dc88c5ae1b887e417619a1fb853cdc27182d35d1c2db526830540e2e96e9f16f15a0156d6ca4a418c911c2635338e366847b2bf0c48625f3b7c56ab5b19ddc5e1e1fa638a76f562b9d7d26bb4017895b84399317f110159f5710a00b3d9993b1a4d5fd3ab1d79b3aa75597e7ec07db221c84ed88ee9996f510c88ee0bcdc79e13dba8c503e1ae2bf2ea9c0fb7afd67eb2ec7d73823cba3e3bfa84d151b7720c235b13907e2dc5c2c90be719bfceb230448e7ac52b8e0da096182871e2485b96c90c56c9ec69ae4106803af433b50c787c24ad04836d959f9a624c1ef04de3b0f0261fd05720b462c3d6c946b11d337edffb2d44d806ed25f3a9038cb94bc5706e54a81a16fdea228be8356ec86305e7cae97200e8593b47caf69c81b673fc334f7bdcb637872340f2\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 4ff661f10890ed75355d79a70ed18965ceb4a7114154ff3ecde025523853d4efe1d0b80047b5017f4c929aed05d28bc71271ef2dad01142aa2d45a8b82fad9536034799519d51532ed4f1821490fefe3b4e8b305e1c852e0bb1a0231a969236e9abaec94bd62a4b9a7e2e4da50c43a6d284d5a6d596a8b7855a4ca8aef9a1f6b16386f29d161d2f5a7fca600da02fdae9d15f61b1336019e0f280065877f7ba130fd7fa4fa0e97d22ef3d36fba4595bb0f944a6c8da0c5c9be5359067c191ccd486f6475af452f808cffe772dca4726fee3e86bba959633ee16c507c06c35e8c8942a20c1fc6ca323f843414d7fc5022bb24271bed6843244dcea15f5374095d66b4b48fb2ef94684a82826461907705dffee887be660578cca4eb06a6aa53a73a3608bc4206e585b6003d1c67b9964c82611067930612f60a8432486cf11a0b210bf45561f0a97addbd2d6a83d7173c109bdec2ff97e94bf1333b5b09950cf53144ff8b7ae2dc0afe647234f47471655b4c8b0e95ae4ddaa5487c2edfcecc5bb604e2dce7ced405ace964f49d3e3bddd7a18d9d6196df422b6c31c475aa4a055855cadc2d76a644f747823b79f7a10814473ac020f5f776181aa8c202ff00333dbde525a8c312fa2f1b8b739ffc6093dd3f40d604f10c6aac5caab4bbacbcbbd171e44664a4506f6f877f0f043dc25a21ccf6a366974423942187a90b6e915c\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 1d2ea8aef61828d7421eb7a118de2a98a2cd0d629657d1a3ce68dd6d101347ada185feafb8b90ba2184d90c232636a25a450cda95a9fb0ac7d4aebecbed14f672a3acf8d9fc3f942ad993446bb6955c5dc821eba7a333970a00d8d50bf8b95ce31da018bd9ae5739acff8e06498247e6b3f2a86658f4b5aba6d2a4594b17429b160f6a57510b89eb0e9960aae2b41f516ad10d9caf4c0f2ba014d365620933aef5de42ac831ba096b7ae17ddf6c9ab72507302a8c32d132752c19b173df21efaba1c875548fd2e3f7400e410c7921db0929a1614de61725b26e84d2919d53ffee6579e99d4630b2fe6414f329f1998a771a85ee265a1686d5f89943a48bf817fbf0750255d4648f835e12ca37a990aaa8d676a8f085269a2943fc244477cbcda6c57226fab8de4ab60f6ee6f87aad20f675521624bce16d3f172190d86fbbb0d71ef72ea0f05b45baef86e5a482d613248e07fd2eb6eaf61d0def5e0fc3ac457d2e232a1eabf31908d22f1539002c115a7d9a5eac4aa63e3b1fd7bd2dae0abd001f7caa0c5b20bb45f269a7eb117621f82b508960f2a0cbbff2b52935b93f213a8cfdb1822989fa9605c8b828296e3d3a5ca31b27ad87f10d92c13e783e7e0c1edafa0904f3cbacd4e0841498653dbca0983a3b7d173a51f4de2cc23cda295a96efd310fd119cbcd163bf7bb66e9aea8116ade1a9348cfc703e51fd98eb1b0e1\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = d3290f4a3b1c0505d4c9b5152ef833339e71aaa0cd14bd0b2d03a521036f28e650619432759d127c2f20fda5abb7e88fbcb907892df94d67e6dd2d4a92a6a047e7e953596741cfd29b53f663527acec8d0504cc88c8e1f156e1ee45b51f98a4c8bbbc466af0722622140ee525aa03e11c3d62f4110eed8678b503a0cae1c65b89a4e97a1770aec47a0a6bac5ef72dc3377796c043c04ec25f697fdcce652e63fabaae912750342cd57231316539e28e99eae207fb457271f01ddf51790761c647cb8f7491105444f26b5cd2c1a03effc43689cd9b71a92965f250adcc1222ab43b0d3b1c1c3934247b50f96e847aaa0f0acb93124bc9bdc7beb4b9a3254df7a53eab2440228fc7c2c2dbdf3c629b7c8645d31ad4a0d229a5fc872230d35c058ad05b6d285eadb405f29913cc139b9e308de6360e07ac50811fc91edde0", + "a74a6b7f2ce95854401faf3eb8befc1e1cc55022ef6d347997787c30c302d82137a634a74d9318c34788233731bf071a2ea9babc4e44006401222ea35fb82a7bb4d53daa757b7429a992b88d817488a785506feafd638af45b66b52198f53f9d6ca41650bcce8bcb8139f246342b964552ab4672dffba1c9d1272ae2c2619a4b58eece51e1a00fdae1df59fc32528a7e77f6095792e84c62b00be673c1772023a8890fa8d6032d4c145e5a48854b78784583a191e851e4698454e2b047ee1723c2e721\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = a4fb0c8c9ac70f9ef42b996437e16e4b5c7d17b821a5b38b5b0c648cf67967193b09e2fcb3ecfd6a9cc8b758bbbdc105b69a1384ebeef13bcdecafa1a6bf90a45100ad0689e71664f4244f814c8996bba8e11ba864938c256dbfba387b946d6ee631accb6b3758cf7db7255916b0e58862aa9d8a193479dcd2f72402d2f77e5f9084c013eac518820295177d46e99b5407da65eef2785fab0391f294678dde09781a5047666c6a49312498d888fcba2c7e614222dbb0065703535993946cd86f13f98b36411a6cd02c9071a0d5a3d45a96b73f728e8158ee16525bd3efb0f3f99a622f77e07dd54a9cbf158d20084e8a426c5f55f2d34714ba0057dbe37992292236dde94bd9dfaa686ae06a4519a5760f8e7eaae57eef705b4f508321f759362340216b0f8d652212c7688f39b3559807054af2b318125214b30c22f5f0f1526bfeb14feb388c441611130ce8923115f199d111de1710a81c578ab551b59c1cacc7b642fae437ded45d04dfbd2a18a8d79ee2fd7a4056e74aa2d15fe9c2d1abaa6c16ad412b96b8026c662b3f23abd8b7f15469684cae9b6fa2c720f3a79ffec8df5790a57454b70580f70eeeb2f34267c33ba0d5d9ea23bb807ceac9dcc3e028409c938a558daf691b63b426026308d3d9083c8093e6e78c35a3e281eb0745520deb51b68d4b1952d69b426f4a0204571fe96439083b0c5d0059d7447a1821\n\n# tcId = 206\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 58422b206a09e3565c35b4f267dfd0ce1adfdc43ec9a055794338ef4416126e8e19f2cc560e2181a0bb06123b67eb5f4064fab203e21b53b3c9c947951a8c847ef8b93e737e8af6ce491cc6bb9c551eb396190cebccce7d5e4a635317ee177a703c558d5747a67c44d11a6bb4975f7ea5638f6250bef9a54afc6cce0845644e12f0eef92cd5d6257eaf866154c23b29e40963d9377450942e730f613c8514d2907a5ba5923c2c0aa953f78fbf735b7f92d5803384deb562d108b12e37509538d95f98a8fc19b4d3ebeea086b6798c6bd10eae7b3c2dd49da6f20a9f4f5d2a10d12cf42b7b00b5e1abe973df0d87efba3fd9ab3e1e8679dd8bf9ff242fce530806190b48d2bb0fc45190894402213420b170fac5485eeebfafa1067211853f7b90b627e52e40b50b7a1ffcba5cf658bd77812170cc0ab620d3989f5da77474d5026fe48776bb3868baab780fb67ea8ee8c91d414a82904b37b59cde4b9f07e7099ad493cc32933e5c809a00fe5f7455b1e086681e7b15c3dd3fb8ad56fe2b3d78751231cc5b8a006b3ca2c6b3485a7974a85d80ef23824d25588ab7298a3425806620ed51ebdfb58e36c7b8bce12ce956734c6c4776b4c62ffad9083c59648b56efd64d9646763fd49d67302fcc6ea850c7f0a8c95c2e507a73f4818c8683261bb6c5f53b82aec1d969b396d93517113482902903adc8751fac1b6f788ab21f68\n\n# tcId = 207\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 42efdb22fe5240c1d2865936d0f9c6d1bf192c9f8cf4c4784876af753b45bb619b2417ca65d9cb24d1d1302c7ed5262c8b78baa6e167e96a4d612fec50bb7fb3a25dd1007ca0da4c83451515462594f38a1092a480a0e5a267ad312a556bff53f2fe02f9b011a97c48c8748d57340bc77ba12a1d6ac1f63a1751b945c7c1ca5521d6e66ac524ac6d5d8a8e02a7688384d39598034c76a1571a65f6f2246aa24773a032353ccfc764515fe1f2466ff95b2d49889b511f6518fcdd83843777968b2fc8317ae488daf8c66153da7339774180444f9498646f9533e7b7dedb87037891941001e92490cef687949087f1de9f96e0f5fc53aba7b4054aeb58c0b53e3357e1a201dc588470cb93b8ec631ea3590c1edd06de087725e9d11d474a730c3558303f9b3f333527acdc77db186883e821db8ee8517535c5bd17b20ba5025b92996237c7eb57d15e87c8bfd5f705646b3f9138f24d85a955a78d757939454d4715309d31c267e4f2914d2f4ea22a0b8c3acedc88812d4341fe0af38a84d3dbccd5b46326f8dd05d54d310449165bcb33e701600f5b65a543c96dc50e4035a5ebc11391db62ffe56d8359f64544edfe08f7426605d5d2c13f77c09330c6a400daf9aa9f406c3a4d25f589b37ca298a2bd5a53320ede5ce4af3d66737173840e875705d77a6835d0ae1896a696683cdfc2d57a07227bcf56d52faa9c7c7f3e3e7a\n\n# tcId = 208\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = 6f7a76a5951ecbab674440063d1e84141cb042487a12d45d262fd84731b2c17be86ff70cb498838d27ac9a9578ce66eeed034afc5f7701bdc94d7ae2232add9959dd810ad38ef28b49b5b86ccc48f4635c05a5f79a0915efed17cabee46c7bb4f01a73995e076f1b603005ac8337c616e933ff925db88ac61a674dca81c4adbc9c5c7b998cc2d517243da348212cd335c63b789777b1c10a3b0c37004ef7020d0738dfa6c16f4f8d8653f90d166468ca5b9afccc19a62e53b9c8a8e5aacec116996c253b801bdafd66894850d89e0af4a82af11aa8a2fbfa9ecefd8e91265eb3d10b745a018b7bbe7598682dd48aa9221d135c2b8151e611e09deeb145d600583f7158ec5f5cb79d626286b3e9c371339d52eec29a4ab31685f4363d6b14da452c0e1c07744dc831982792f417536186d8aa200f916ab14a462296f78461b104af201499682ef3c2e9500de916d18ec7bc6d4405a0fa54614e637e8847de309bead8750601876b2e0fb0fb86b59aa2176aa07b46e5d4e9c06faf6fc8aea873ce81e78d7dba87e6064e61c2ed382e940fa6804661f34dea0030d518c9b927da7043d13e1ca5c5d2e398c5c11c91930d262ed604a3f43f192e447beef0c6a3ce0c484704ae2cc36f16c88da090f856b802e93ac47b9d5c8a1ad6dba286ec1e2dcdfc8db758f0690d40a02cc02b552f4c9fc337943a2b32f75932a6b88797faebad\n\n# tcId = 209\n# modify first byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 90500ce4cddabd94c38fc4428e7a4d024ff698e05bd46c654e0f8e0d56c1816e9842124e30f8dc4307c67956759339248ffab63bc8a89b440d071d8dd513cf144fd8bdfbd9329a895945acca6515d2775458690baa1f91636b29057f322654c15d8d777e6e065892d2e2880b23ba740f3206b04f2be0ded63bd9797f314f6dcd127bd39322f08c12099f7bb6553f71696101244f34ad21d246e125c8e9581099888cb5b71becf9813e500cf54d6d07db780695d92cce8353bb4e8d78dd46512450508ec7da0192e8967675b572960e9bbcacea5958d56db1c8b3ac3ce5dc36da6e200c388194a51dc7f6edd86ceb9c4907d3150f9392298ff2e4058077ec9e61e13ebb45abf8eb51137bca51a8193e5e153894aa3beb7f6b5846da01acf0936858784598750b1c0494625bb6aff4af8b08e4198378677eb230282ccf57cf3dc82315107191fcd19b695bc3b7289b3c2f03d64fdcf62f06aa2eebeb09583659d3ee473f61381809c9ca3c268fc75ace4d69675fe50db2b8381935bda99b69f777fb9b26feee35aedd39725ea93ae945a9403478cb708a4054e3efd4e57eae8122b4b7632e0947452d5f417f08ded0ba479be8e05389b37d0b8e6875b0d4820cb5ea874dd7fe872c2e031ca2717f04bd592e7b8c2edd54b284cf8a713f13a46c4b7a501e1545ecdedfaab179d08aa6af51352f1510a61458b71dd18f46dd255140\n\n# tcId = 210\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 990e1338bb87618092594f64a8b924b5891fc8300b3544c6a35e56f9d526576ba80ad84479ee270364d7a56ce6d1ad3babe976c85866971ea1e4a579e178c457a2862c62d48d38fd6e019895b44a9945ec481291e1a8b4da0e14ac656db4932ad54f31493b7888881a70b263b1494fb842b3d7b28b2782c95902e3dc41979cab7019331437b4d1bb30fbc1e1d36bf282fbe7d3f63804ab61ba14f3d4249401694ea5263334010d22ac8466d4748916e5463a3e3ea330dee97363bbef5146f2f1b0a29767fa674ce724744ff67bfb583699dbecc3c12795b3d5b4e39d6318d4efd0610b1bf9cddc06feb587b7c67978968558173ab5e96c8518b694cec5806c21446b9acd975cde187dd30242afc3eaed7b841749b1df8372c3d5701b6bf9ae0d81d8cbf19a45089fb71843a6b8e933482fc862c80b5eb3193ecfff870f9fb58f5fd5d2463691193dd71b13553adbc54486c24557299b48436a75068baa9220d9537a52dcc20429f7356f1daac52a6077760aedfd82093996793cd506b3a08d50ca7e9972da658dfff8df88e635b6fd8ad576096ad274ce36313f662dd46b52a2d5e822eaded67fa51f74c4bc7ae66ea44dbc3c6f3b5dde792cc0176d780e34efd7174ab64a3249e530f5f75b0e3723deca0b1447d0256a2d3638b4b0d0f26afc1887c4dbbd73cff676e7bc67fb114fbbf791e9483a27cdbb6f24177ebe7d8d08\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 7e6e6f4d815794ba19f8a3d48d051c33d2a46e34d4239ebec18df040695d1712bf978993a142d7ef283f020d75dfc7ec1bf3576f1af6d844b091a2cf9533f3cbe0b408c079327b67bbcc161689cd3754108378c4d88995245069df43ce3328c91b0e7ef50454ce344147761e600d3f4ea33f18da72d0c4f5c2cf6f16d4935fbccbf57369f81d057341eb38023bc14a72f7b6284bd68281a1f43a3e10c00dfa09215e12cb5f091884bbb1c09dcc05f400a41f3a38090716ac1166374d42ca4b90cebfe78e886128b58a3d123d4a31102c0e9e7b3219201fed4fd1a690bcefe17aa37f534ea37391595da40e381f58a4323666d64691d4506721568e96a82376bf7b058e224d8dc977065895e1adecc31e68c469ec0199377fc59e3c9f65b8702fd7da1bc6f6e4840b902eee1fe4b77b847b407402c68295274b748b3ff93c505127a64ca61ef8a2c9e2615b60d559d1d03e06bec92bd54f671f115b2f17f81aa68b55535f3624d3ca940939578f54cd9e570db55e07c4a192d5086c534c4b499ca7d5ab240ddc1c6ce63364f39d2cb9e6489f2fce8941a20556da30f419ce039920bb266a38ad00fe8cecbdfe430066f9656b5a85d8984e9950e78f5cd1918adcc0c8dca978616e17734ec911985e08223a6175492d1aa8fe98db769fdd0c2ea375e085889a7c366ca471717f676ab2873c0f31bf9e9ae9a820f5985f37295259\n\n# tcId = 212\n# truncated digest\nmsg", + " = 313233343030\nresult = invalid\nsig = 79e0a3e4c04ca817128b73f11c4286e6c39a25b6a979deea45f0ee0a6cc0b5b9bc67b206da977f628c8db3b242b451fc0faa8ba3e522f0ec09776801cd78129230e121d2e2c9d302a1ffc5489052eae15ba9152738d1e0fae879a324bde029546082da97f88f67bc40e3431425b9599d6d097c452059fac41839a6e8194e0e539a5ac1a94af4708fe29dee4df1e21f0085016aec68f3c4fcbf7e64b7820885bef35ed4cd6b5d8775d691d2553b61afb596eee499666b7dbcd043d928ccd8d0be5754c73bbf36226017bb62b27cdf64bcb900ded9452eee442fc0341211f58cf15fb6164cfbd0a187c3ac90c05c4620394ef3e4b93841191a299c763e24f5695a230d1c03b1edff006d774cf400d2ec2fa2d4c397a5aeed9394699553c7102839267ae8379a3d7311d8d7bcc2547773e8acbb5a7fa2a9d2724597304f865bd8ff38e975afead121e2456f669b54a442fd6312aaa3c9bf1320eaac7a9fddd82abf70c2c0d252bf9d74432f9595e9d19ceb1b89a416c1c10bc62e031215f579fd5049f6e2ef5c34717f192c28f34aed00bfd8314adad692bcf2e5af5e68bbf31ed2923949df8c28bd77be6f4ecc00f5c1ce725da9fca12b884ff5a8576db58b174fbb11822202a8b015dc6d1b3ccdd5d306b64dcf4e4df138e44e8ddb264326fa35e969dad71eae521697a1ee02b101ccf76e794eb252acc5472ea00d8366d4e2ad\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 388f02de647e67bc729a241dca57c75fc55d876559d697587b302bddef18222d1d0f53a9c5f6d9459d457c2f8b22db872078fa3ee73407be9be6ec15785f9721400d414fbe908aced1af9453092e241a41d9506944ee4c7f0ba79ca3d05195408cbed131a6cf4ee28167959ad35cffcaef2b88903213a7a9f7270278cfecc9c61077517e3b7c9fb72bee572bea2817e8c0a774040b5eb508bfb280e3bbc878ecaf8cacb91fbec22d130a1a123b8dd6451c3744de779dddfc7516e483fc01554f16ada990016ed6e4ee81470688b0d91b36199a8e7e0b8aa3f3e12161f53ca859b2accf0667a1a306bc10cf9e66e5562410c183c5322b1024f0eac7cfa4a5e633ff99412d769d52a0dc2c585b7b6a5706c7351b7d04b26d7b9061d4455a97f89b0824023ceabfde9837d743a06a36ec974ed0c1a626fca20c95e5dd1e1a3a59e15632bc6b556c8394ccf4733c85a9b9008c8dcef89693ca34f8cd32847816eb75f303c96b627ecc8801c3a25b612983f0d8b098c0833316b427f5dfd66834afbd9222110c31e81c61eb2eaacfa39b5082d2207b547eccc25c03a825648cde875a09a03d2205080b4352c5cd6b47c32a5257f9b77b6b4d25b606f87e353ca096ea5b63fb0ae5e51e0ade201ac4452d3cc457a49be9aac9068e584ca9f056fd5908aba626b5fb12fad165fdb1687a358a010adf42020d6aa17152676a11a6a060df\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 365c5a432cd3eec15aa93df76917c577a947c5442ffa98373c70f19199dea96ffd8faae8233f46963ca70052348123d394796f596102506e4e09e6717493aeb257d9dda41316afc0499678ad11df91104afffc1e20beefd94f0d57500fac2dd7b71b3ca0366f3187452f3c202bd4441862ea4ff715c12af53b68f01001e5054ef851aceef138b094461abb7796a5dc84bf53f7c4e7006effbd9ff91e1edc498e867e754854c59213c0116a8dde9ea694210731eb366c53729cb2b6a9d9038b153ba2879b0de5b5c9088b79a84a9552f3f6f2021213010dc915b041713eb9350f7a1858e338fee7063cee43aa0f195fc70639479b5fa9e6539e69033c8d3f12acd78eff73c3ac110025f6f7c7dce6d472a240f5e6aea2beec9b7d8bc413e27df4a0cc5be5e73e887ac265fb258ddf5c94ec90c0a4909c73a58bfd4beebcfd9f23602ee10f78a8a8b395aa17ccff5e737a0de2a061394355b1bc5e3c688ed06ba65e8b57967a429a2c352a2437a448fdbf8fe52ec1da0934b8eaa2b7c230e507341efa2625bc4e015c21a7f9aa4e050b26d3aac6e474ac7f2dcd709984643700a0521b0d840cf93c29a276c12e6ff32978d92adbf36690d2fe8bcc9e12a42f42c26119f1f432a7304b1350c3d584a04b14cc6f31e4566f72786ec1e24d5ae1fcb8b66ed7d8e28619a02cbb8f217b1d8a3ab2938aa0b92e5b3cd8d3d0fbfb77f5c5\n\n# tcId = 215\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 64d797c9a480a0af29bc1d0fab877feb031e12d211621d1780f0e6c7d1e121fff78490dacb450c84ca886124336160b381c49e2985f90148b86015e32adb5d090f3a5b09e3cc46fddeb0905f92c3efb94e2ee887d160008d5a6221a637411ffecd725df8e92baaa8249f07c452439750c40b0afb88654585bd287bafe4a61de4509721eb4bd71d992f62d1f49ef96695c155055138fef906cf2846a2abf8c51d70a333206bd7a19ec8b0c9ea182a7b4d76c33c21196aa72d158a0ca7fb3dd44a39e4191fa47d061e2fe283dbb98dbb0914859a73d5fc199c297080f71a1c91547730b219a365646b5fdbbc0b397ed2b4eeb3055ea7ac38fa2e27ac236ef055965456bc2ea396acc1ea2802e367ed1b465d4706ff7e1ed810620247378abcf6545cfb3793a695a0abaf924333b291a6ba8e1714db4986a5b485f7a0618b731b9ad4b03b3d07ea3f8d7be90114f9d66211ff8b30febb2def245e6a561108264c237f8fc8c35e52b20953b9c49e620146beab9c3912f9a012cc5d421ef8ba5fdbbec3a142098ce9861c6750498cf7ad05d9d5e5cb557a2bc386960274d9d0bd091478bbe20c086d3321cf44c8f8466755dcece0078a0a5ec83d206d0c3f70744f234bbfe0130c3f6bb455f175a038db19ed336306ba77d1c4646a578d229fc94ad2dbabdaf773c49452bfa06ad01b8fc8aa6b63a4d4d8144c3270018bbc122f87c2\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 26864e54d84f29b53367ac7073df84ce5d885c7b67320e09f3bd3a8468de72f8ee21253f1157e74680190a14c895897535e04d8861a7460039970e10bd1f1c7f4690a2b7e2422f33c4eb2c18fbefaf72a85b552a26dac27bcf5e66aa97a4763a1a32a8681b2627409c8a71c4a6e35b5d845e35a3ef67b976ef02940fe0a4e479535a0b6239e4d1eec727e4a214cc7bd7f3029b3c36aca191ce5bec40f0927cf16a38542a46453764ba94ecf0651946978df3396f6bf12dec23c3f33c78376df770842f28aff8d752f25308c2ecc74e588bf16cef324cc0f9aa156b0f52c93b1590056f3f5e01248c589f55e415ec387bdee72f96790b1cdf01f07a48f57f058d1eae9730dfffe05eefc8882952f88a4a193e76ea79c03a32941e051f750c49b39e5f42083664f8e56a1a09854ec7f11931f9b59b880dd19ec698e4fd299b155427e209614bad115f277812b1dfcbe81375342d8336096012ff6d5b819c0a3d3592ff31994c2e6734c11fe3aa9767f2e07ca61e5fcc1b38fb0284bcccb80eb4763aaaea78ae33483d0aa73e5109182913347ede34ecea4cd1571efba8086cf7a4532a85c872e27f39375f736aed8cd56348aef209544efb5c433b013b912a71e25e832bf7d8f657b8885062dfbdf092085e34eba9b60cd4523a118405985e85370ba59735ca3c8805616158eee9b2431fb135e061d2c9b7af6f1a1e100a77da79\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 05efbba03b90bda7ba280c6aa2bc8af655c884de2401c9ff9dd59e0d82c8502dca3d90879694692ea2b3e77c6dd3fb0e1f180777b237e462bae0a8b35cc21497c36818a1dc89dfa64bca89cb07babc10ddb98538aee10a4e59b4040c366c8413326e79bc015ca2ebe0a53ee6a4c49f5d9a87bac550e4b6a8173fb49188aeefd28457b594420cf2d77bbc044f6f4f6a7d7ba52d657f5dc6b631ad914bb05bcbf2901293e5eb5a17a88dad2326b508624b698b31d1fa08d00a001db8cba4a9f42bebb0eaba07e87235a883bc719513aa217a36ee016832b12cc4ca0d628598212d5da416af6342855da7d77ba153e5435ed7ea5d04b2459d68c721adeba8c071e979bf89c04a3c8219d67eb514a79b3a2f6926650c55e724b62f800b4f9060110479442e4f8b82ead56330e2374cde8b335552dcfdc3d0f940186192fa9fa6daa8156b1e55005896fe74a3b7164520823e7b7f21611421c281242b37da0ded476903f4b44be8ea35b594a2d97cb0c98a7d2a50123be606c3e3c11b4984c5a55ed01b1848fc54b83f681ceec448dbc4d35d15c389283b26de66c713f05a0d31993ad3e6e1b3aaff06b6f046ab075d93a8ca75c3e5558f8f2a445cf10d5eb813bd6f2754c502c93e81b904d845fb55c9e0810ca7259a012840cb0c85056b0a7e141e8d3a7fa5849da50e157c46164c9c02ffc099f42cffb71368f0ac3dac77b2ceb6\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 182a3c3009c88b744220bb4740f2e7a3fbaff9f691ad27dd572ef3678c908fc22897accadbd6900c8b754b47a5f680784303978971fd9ccc90364a19a13e2b681c980bd71be1b45280d57febc33da4d1cb6201bdb2f7efb61b2c48dee4b395738e6814fb228d41203a6cb99c5b6affd6e11a0327fb0a920db90319b0b8578399ed7461f0575acd25157153bf483793f047d02cc02466201fbf6383478b05e61c49683bdc610ad3b0e77e95d9adc991e7214f26db5e685d0ca7ccdd3ea77c5069085d421633c1d7b894c8253da0cf5905bb16e412ff92c5dd91bf0a88e9ebfd34cb65b2f0347e4f2148741e8f660c39e3a156700548a8f5e847903011af1c1821fc5b4139bf306449d77f0acb5a8703687063a16bbed3fde1c5ea05bb8c7ccf9201f44634fcf08af88540a005f590eb5f91421a14d96431be124655dc3dc11bd7dc9922c35699c8b5c9244bd3286dc2514df3b034c973db50a4289e49eb179b7424ecaff6c3ddb7c3f7038e63474a270adde2d5a347e6138dd9f1c5deb7b5bd3a0c5a3720d960314c6f6e47b1508c38fbabb63466e0029157c34f3b67517e9044b5c0c4473c0b88a845e314a4b0193e0057d460384c62cfbd7ec5ba725114635baf28fd44f35ab0f9023d59019c2bd3bf48a9d8b223931e1587057633749590c19c8e96175c8384c3a525d35575429d9b4e89d01585ea15caea456a6d947964df\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 4c620417c3aad58d966f762754b64e22c3e37d9d504f4b96edd44944120918782e604c7bc62db1c5f69ff862e51ba876f562de42b75376249286020a14120fb5a9c6223063f992eee6badb230bb2f0e3ad8a9a59dc7247e211f6aa97515050d5ccb8142f2501b9440b9a782cd8e9d392bb584a5a27ecda09f2ef1dc3ebb6e01cc433cb59f788ff823abed3845393812c846167229d92934e0f74d1471ce270f5286106b25422a358715a7b558fc791c26e803cfce57116362634b511cebff74468f2bd30532f6cb78a355f454b6f3", + "a23e208150850fa5f6f487da771fb261d84f2c7ef0f669f9338e18d92797d3dbd8aff0f7d5a8f96c3e46e3d7744b10e9d3eccf93a74ed5b21bc1c1c7e866c6ac2b5b3daf764a4bf3bd4e62e60af84b2a47c6ec2b2b8d7ad2e1efb8dd94eb986aa2ebc26df9c45c845e5c098012958a7f51183aaf3462088f2d626db468e1a02a3e0a0eb2d6e0c4dbe8f7828a2391f0ef7872e2eeb653c98670bd0d9334b115df7b32896cec3a7fbb5331942951fd95d4d1a4bd2946d73e42bf59f2c6b847876761ade9fa866ca3c494b805d6618c4e7815129465f9b91dc5cc81d27690728f48058cc7786bbf7fc11855b1a0c0b169bc7eaf023e2ad9393da18d543829cb41aa7f5d693e665576d1915b5fc4c78c7ca35d4346c57f018ac85d8ec58c8637ac7189a83540d32706a2df8f0e9b5a9e64e36ef\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 91417ceb9001aa48641c92d1eeb3df7459f91eb93e379f3eadcb1b33164c02f619cf5d626d9cc594701a87d5c3d51f8bce6f00da86a07bcd1853984def2ac42fe273c3ad4d63c50064c532c9cdbdb1cd507035be54f5e0e34406676d1f7d9a5ec8d11abe9552ddde103e31a2fa23d8f9009372748b9d485bc77e17bfd70389d3c74231b3650ec6fe74acc8be6651e019af2f299b6e2d8183cf9ce2012d1a722e3aa91f9b8a9bcc05ec52537923c791bd43b2c7ef34567209a54d200adcbc61fc4d32498abc58add9b75842f5ef244117a658159351b44b29b8b57854e5e4052228dfaadb925ad3d33cd1559ac1134675369c17748744728b71d823f8d55fd8f57c4617e22a942622deb926e40ae90699d98d754941b34d2771680e51278314b382aa496abd01d2438e7cd047280be29600df056e23cc2e2667cdeff32464a8a834881180847b28d949bda9f9d7df75ff4365e009f114d5bf46b2f7f67df85d00068f347f201cf86821b9becd752c4ff0ef24ab3725c173eee2d9971bc5fb84559f9731d9f10ae84ae950e20d52ddf3338818b2ddd8c687e051ea8d21c935d58debde2e7325796756ca4c83a7271ed91b14040646cf7e6fc01174874bb1144f8506b5bb464ef71cf748de2c9069409836d9458e8f0e8105e19ec4a93d63782057de994f337850cd605e07b022a73d3e2e1487eedc35b2abc547f1c099ae0db128\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 86ebb86cc898d04b302d9dad510e9fc5e0018d685eb334c9fab116ae9187b9593b5e2b9690c9f32cb8219bbfc3317a9c2906a811415c7ff339531b554031248d668e29ce59e4f641cb1bfdc36bf12be43e86dc91ef095b18e8f60d671b20f06f1b0021e4e6e723abcd55ed4ddef563f837d8da6af8d078bf22492d4b00b0a4ebee2dcaddc918c585dedabfc69a9a98d553056e37f2888f2357d7e1292d4513db3cf8090af30b2c22057ffceefe98b9437f2ec751f8003f012aa4647b34bf230ba7e8128dd5b5628defc43a40d9107e4f36a4fdbe319d6dd210f0fc8c608db79956537deace1483ff2987327839fede77b1aca4ae0bdee7376e01df2f7ec6ee4735e9e573606dcf46038226273184b8dd1752d3c7fa989c32000fab98127ece022df538de31c65ed5b59d94bfaf1313618714c7d92c08137a35b3724dae445a088d209920a5867dce2e67338daf329d9516bc7fbc0a883fa96a9886a2d0c5a4671a1189013e07abd5dcd114929e5c3e7aa42d151696a467f58e4da1ae7ed623fa311eb16f67c3fac14bc9431f66146b3d015caf46205f2e70fe5d922c18be1f655e43a6f660752e388481ff2f8099c077ab7f816ea7dfe18f9fe2056af94a5dafc0565286e6fc2a7fde0d0beab06781c00b2253a30eba3407e2b6469aa3ea896e70780cfa00afaf73f441e1b726c1cc5be9fc69c0e62759893379c39f81be64e6\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 12053524fc1eabdd9eb1f39912999cb88339b12f53eb2817e50acaaf6ec0ba9b28a554e4037fdfdfafb6533fdff27be0e74dbbd53e95b66746ce22fd5c155d4f7f6898b3d82b3a917c300fa95a3471819be51199fde252ec77c4747d7feae66108197f7fefb8f5a2a78bb9f6adaf927839ef696cb5d5b0524cd3482313827821d56537a1af7c72ba4b68463d033b5af9c4aa9dbc7c69008a19793e60053259385947ec3672780704a772ac4b2481ea5252f5229d8aac50143c7049d2ae9e90a0205f1da466fb8d3fce4111bef81e856b8b362aa98826142f98b5d08fd36bda2b3d2b79f277beb942a6f28da26db50910646bbc78d06a0db015a8371bc75d29a75bdf91bf29adc2aa6e0f255093ab1e27ba31a9659fa7b4f5fd6d997f23150e3eca7e0abed2faa0d9069b37a95f4803fbd76dd3f4e4a657b8d7fa8e1cfc1c0f1734baf1559f49173da13b7783fdd0df41f9e73bd19bd6a93f3a43291faa740e95f7452c53c6ed05b4c1d25729842d461e2907aacd6a5e2aa84d9226d809d4b3bae8f8729fa08bbc93e10072d7920515479baf691a34b2ba7f71ec6d3b3a1630b4de74865b9c7ad4f1c3d3d73205caa67b18149b87f913701fe9c6fb9644bfc9efbe715223f3d0f75f5fbe1b6988c1d623cd4c3e2afa419cc950dd48b09dc8a4048163f899165b990eea24e9b1b43b946f5800c614e37c813aa9490e3d74fbaa35\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 3d5a97db9a79e12e3752b1da642f25aed193d95c9a347e044eb824850cd4ec2357e5e45dc7437ce328d225d9b90893d170275ddf4f4045e57edbcc596883fe71587b65e9012ec7148f74f7219eaf6ed8d2b3abe6967e3fb1b8a588cf95bbbfb89497c65210b34db653258a34b04c48365f7485f686e7c3950e5aecd41786e18cd316ce73609c4a07da70c022798836aab39f562d39967586554d2a53636b8eac532496b883da2cabc8b34b796a3606e56f7cab66476c76112d7c96af7e2b72fd400b33010edcd4ad7635b6cdcb0c5aecbdef9deac2df1fb416750b06be3d6f3bb88ffc331b19540cb101cd6b27cafe8482b71b8104629d5f8d2f513730ca5d0f01e9880dd8654c65fa79ca007784daed25f7e51bdadabf64cde053a7549c4c7f64d3c0c9fef50a1eb401ba72d33accc12e4a3c99c8b0ef8a606597e90edb36166fa38eed51f89990c8b52dca73caf77bfacb75d05ea52286ec27f0010f4834d21747a833611e3fc5ba9274e103c8acc36c6eb41ba9cba83c493c4503ed81d4c65b00e8a0188508fa35141d6594da2b2c64dbab5c16a9b5c06d16e030a11ddd958a1fd9348ea4bc4389e22cd82904a195ac04402aba46e03a8cc94eb16b9622313a6a258f6f35ef751fa44ce8dc2961c94a525800fe6bfcbdc1a7bba17b3ebce54b57c440913b8ac367b3c3f78ad066ef2da86bb75958340cfa1b5d38b56ab89b\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 58656a4fcf2a67dc8141c00a0a311627be548f804f5223ddbdb223fe213b111b0e67d4b128225e114d836bed2addcdd45938559fb8c03a884c6cfa2a85f162f0dcc0242e51a917dafcf76248d0c4c31ebbdfdb89e856c189ab030c74cd984c59e5c786abbf0d9a3c3fc638d8dcaa3438dd996582aa54e8dc52ab0b4bb5229734b7282038ac089dbddaedb1022aa27c7d3aed4facaad1ac2bdeb5ecf952cd7aa7fff61e13c5041ddc8ea0516eddabeea1ac5353372976e80b81dcb4769f07bac84e878bcb71f42c8a414f4e1a07bdd0c1f042807cf521dd1bc8aba6055e89c76c4dec3e41845d556b3d0b9194a39441ea70ced40f4896fbcd057358e04e2179ea844414049c577cc80bc6395afdc4ff7634c31a14f161ad32027a03aabf0d8d3ca08a882df363bb4cabef6cf9c76e213114eb242ea331d05ba14a49edea73ab3137ab3449c94e3754adab289949c4d346978ebb2af046c8ad7a9aa87be5def8617553a1d062d0ff21beb3c51305911dec33f0d4ece2f985dfe8dca9b98163d4f3d2c4336650639374eb1e7480d4b30f955be3d1a90cf82aa5fefede08be815e230f779fc754b45a5e64fc0b1d07665cc6fa4b5c83181745f0efc97f1f0554d88e4acdc605e065ca1733eb296038667130a0fb424bf13349897cf3de9d16314ca1e43e0f641ad5059e86877dca746d814fb9a3e8b4d3a9f330954b5befac7aa700\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 78fbe68519b106475e9407f0ec83652a9ee79bc60c3eddacc3419860190237ae947b21ccbfdee04db09e7ee4383f2b5b1019aed8c7ce14d4832d48153316499f21f4348bb87126ede5f8976e0d31a712200ca85cc484b114bdb7c32990e067a15ece647d637405ce8cca20db1a0b5918a8b7e51c29c9e323582c78de565de12b828bad378a3e13c85d7771790f6bd89186c991560d8d83c405c212ca195d765d6a8e3eddbc77471a077ab4e239f75a147919d817cb8da78fc35c907624900aef916dc0a81c394e9f8124103a5096b8d737e395c1d5a8ea70f79f416e6e7277c28c041e02c7bd4b1b4b07841cf35701da7184abf8943430fb443e81f7844f2f85fb9fdc349620c8bcff4d7c8d1bf0f38e4b2476c27afd74977ebfeeb301f58e6982ff78b1442376fb5a60cbf26d9df59dee940ae42fc2071ceb4ca78aeed44214546aadd6b34774a1e487c0b383d02d458bb7d76b799244ed1bcde685d8d913a785803166440a9147af47de0500a65b8166568f5a1d9bd0b8a5a805ed3c665dd95d6b8241ab9c81bfdc0ca1da068839c46babe1b344ccf2a9b8abe3d4421ab7debad0be0102ccbabbed438a384f5fd131d2e3b85d3a733f9a625e55be79010c44d386a2df6d7d96e896b2db0d06e3fe9c2eca9970c3abe79e1d413db294515eb54e479fb3c718cdef7b47c6a89287e48f246177207b8e75b75f47a2a348062b5a\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 8fad4280452da19d7cb9c1ebc9098733b6d337ee8dab0ee913163d8632620a15e7f27aa9ae1539907916993e0cfcb6577747fdf5934897ccb36ade1b495286fc66d78226df5d8ebcf1552dc2d7ce495444241b7f4e53f0e53572df653678ca5a102857943ffd446ae261850026b2ccf8689df7a72f3fb024483527251ba84c2c334d0395f47365bfab6ebde0791a8c9c3e9dec028e2d5af58525a43181f91c69a5acc78b3672b67e09803c6343cef3aa0869613a74ba59ce4f1967ac2d87e56227ae9f7e24cf4e25b32a82753bd50fde846fbd3618a6985fb05326b91e6003e614466bde4713766551fe6838b3789302ec084e0700c37e9c62ee98fbf711d31b7b1173e77a104dee21b393dfb3fd2e4ba506db1d9c2d99bda0c3744d04e11a1374cce40e1bb0c1c3e4e1680c1199c5e9a71119cc4cb4e4d7482c365f6a4b950e0ef06092b330e94bcd310ee9c12dc08c62ac1166474101944165d26c7a9aaa9328", + "935914f2a6d79090a79465c69239eef14adf66a32117709528fec892619c26f59e234b5755530d1c10c59973b40a55c289b85f5e5f34c5e147af44c84460e2ee834f0a4798f49aa61a16148c8a36fad5fc255bd02621b5f51212908d73089b10936d778b6882c031eda9e26c7fc8bdbbc4eb808e318090e89cd6daabb75c1d55d638d603b60d51d3f3a82ac56663a0e4df5d9cbf323e1ee7b1531e97a2129f\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed0\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed2\n\n# tcId = ", + "235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 556bb026d73b4d8949c94db2740b6cfbb17137b69cf269ba5f1be736ab6eb0746cb7ffbc5d7d11995b2053227013d5102b9484c59f521853d99f961e46611974f47f3932a8e1f82a3f5eb047cf7c7bfc63b5dcf86effae34ba216287fa23d5d79e7ea2439aad07fd751e190111308d9b49a524db7c3b0c939d9012f9c2f3edd9534176ab2096d4e3d1195566d072e3deef214539bd70223f712ec45f8a28060604e29ccf6e5031432c9623190dd194a79bea16a1b51745f2fc33f2d4229cd543a1d197813525c655b34def9990fcf75deabf65b325815f80d544528a0639383cbad12d18d4103abfb634a7b9dd68d416600aa4bee19bbedff26f81ed91e119bdcde3ca52792e2a5eb20a4c927f96b238bb478ab31230901eb99f856d0c92915fba339393d1acd7f29270b728d3f26614c6c894c11693d2d52a89da376530f3356cda798f1ff98277e8f469895e66fdcd8e685d663e9a4b9b25874626ccec38e1acdf1762e20852727854cdfda4682951000c6b412a1d0344aa4f7a13ac1a6af8d34bd7881c8449e645940df870292dc70493149f609db2624ad3ec293d8666bd8e6d8deb62b16fb88e662ca32f99ab3a7a99247f9baf9ebaa3cb2dd05b110d5288550042ddacf603388efca1493da1c9bb92cac856f5eacb8c7fb5650e9288635b6c44a47b5d6fd36c41637a6de1eceb135871e747318c27fd341fd5d3ebab70\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = af875eda2f4243accd942bf9abf7eb89260c365d64e610997961b3278914c330e607ca8342847b02c9ca916b1f51c2afdd95229c9c3e1d33dcdba370f472060a3f7ee1d74c8667bb8945b6f10bdecec96a9699895f2fc58f21e235d54f2988cf78d27b65037b7b46552412d30ea2b4e1d96167b9f720f4704bff09e3bf6e2ba899445debdb09cc9e06078f4dbf1794813662d522c25c0e3346132c53e31b02723cd0252ac0932e0171ecf11cef73ecf8eee9ce23f3ce66fa6301050c8e8ea96ad136968926753fbd09a4da0176e8e3d9f572d4857962d04aaf33145fd4613329fc4b3b50c28f4d43d54317752f983dea5432ca88efd035ce839d09867e0d84ed57e331eb7ed2de74ddcd625d13f3bb586bb4dbdbfba34eb0d72130a62ac10079807cdafb40c6383f08af4109472d2ee6430c3c301bd6bc1a983ddced8618b08db2fd4ddca07c9f48b668c9d6f2cb2755a29e19ca0c8d037d3db7919450900d217fe426f054443aaad6be22285faa923cf719350cdaedc8733ece6d62264bf4a0dc1bb88646f157686a4053111aafdefd412d3d7f59a2544829ed429038f1452ff36d4e8b297d0b43148090a995944b4225bdf519a6315d62df555d2337f7ef07975f0fddecef82ef0ca5bb41444d89860405fc06a8dc6c93bd23663a977c68ff8890bcd20988efc44df6891b9daea3af083137a21f3776f2e85443b359ed13e7\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = cfbad304e05807af505f5590a49eca630fc43df9950e5f43b2128a45d7271f2ddc86d8374af08bb478bc2ee3873f883ca0dd41f5aa853bc442dcf5b6fb1fed395d8d7d71f19a47e27cdc790e63f4bb6d17faad0f58efff1a36044448db8883325b290308caf5272255be1d15276fba4039206762ffa3b63cfd07c82ecbe0f8b68345f748c42729ef05ee87d7d5d83bf6f708658d7c45a7f457c3187f76e2e2e69bc74e60bb729acbd1bfac5b79ecd895ada4b2c9ba433ee513b651168fc23709bc75f27ac8f79336543d44af3910ccf66fff78113b103de9d3d0665157ebc14355e9048e04cba51882db9d70f41505e5343dd82894ff277417fc6b9524904b32655ff0dbd8899671b64b8f4e6b3878553d21da3ab842c12c0cc4cd88bc131bee41896d0337ea887dc729874922f4cf5b242296787db9709b237cf0b9a7712ca722ecc6842c11612dd79dba6b3fda11597baacd44a00519bf864fbdd3b4eebb923b7eee29aaa968d074cb45efb3304cb923b247867f819bb6145186cbf779b5c4d8b95add1b649b38ce306479e8684beda55cf68b2aa23359a9034c6b37e54262bf54e6cc3c959f3c7b8906ea15864c488e33bbec8b5d465054602798359eedb80c9dff2463fb16d153b0200aa01222fb3b2dd844f915efb05612a8f1f0371b2d668a68768a168d507af7765ae805ba3edc1f81e0dfc495d824212d1cb00012a7\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 92528f459c1bd0775d8c4655fb2fd5e8040f3265bb57fe1ee553c48f34738f3d5ad2ae40d6037f02a23989669e0ee9835f3fc7444213558f2eda9bb9485c3b81d99fe1ae4e26b22cd5ea7268d489d291d4f5e47f5cac8fad31027cc56138d5b55b3e45b05cc858afd6ed92bec181e1176b84ec33f134801aba8620b294b2238165b8182dd30c1831307ec35944e1611469a458ed3eeec14805562f88eba7e952beb9c19a8ec9c6a0c7e2418d0ade519c1675ee3b029bfad20c434ecf2b1105e76592bfb0341380adc413d566e62c9308f59d6ee717d25c5a2887af1c8341127b690156186a7d265fecb99a08421c89c8da829c6e242f561876919b229e73cea2f0694d8bff282231ad9b010e4d1c65483c2acfe70e0d840ab25e5d181ed7ff884f45d48c45934a60ffa6cbeefcff85d4bb3b6187a7d1454a2c08c5fa222715bbfbf707a492ac8fa2a709686acf466966823473d82a7d7366e253a41372fa2200cd4f3cc4d78a4bc2c425a53d1580f0e3ecc17b48bc55a8185688f3362a5ef7cb547ef4524606ad3e317f0d1027059bea88a0ed7fdf44515838e3a03fe059a804534b482801e5b1cc35ee6bbdcd4c6af53899cc97457224b8470cb72c4c41cb180ca639e18d45a9cdb38d27d9a82c04157c70d5ac18b623e79eeb9ff747289b8580257356e7a2488f0811509190aff1c7dfe3e28019f5f861543af0004f897ee7\n\n", +}; +static const size_t kLen157 = 267661; + +static const char *kData157[] = { + "# Imported from Wycheproof's rsa_signature_4096_sha512_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[sha = SHA-512]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 9cd28bf41b99fa4df2852d86536257fe111f63f01815146c057dc3bda9b6633e49495d38822392b6b901e6ac69c4f09623a524e49246c3710c85a1957943d89c8399b0c2a649938bb07340f14c6981a0da0fd35163bc7eedac80ad1cbf06a4c32a4a08523554256eb221395c76e1f79a5e3c5b9636673db3ba27eebf8315468888671f8441324e092124df31d396ad8367eb7c9d0afa44dae85d56208ba21ec7c1f0ed6a3678f5d97ba7089422c662d86cd514fe853f38481632197c1ba07e4d92735eef3b75afc25ffa900769c74ba34f2d157e74bbab64cf413bc858cf6c393e8afe24f9e71168e97db96717d0081d88a27257d8c692dd0e001f3fdc2090512550ad38725c10a201fc50f8dc89ecf363b4d21a7d815eb78557d42e657cb44bfc785203e8de00f9e18af1c8e12953a33b0717af215d9b04b71fc320bdf4d558faf55d03d30844237551e35ed6606bc706ca43a47e6c493e14719049065eb8e00760283ee72c1ae3ce019ce3263a90b8340d1a47b49b78d5cae9602539b379186e5c1e847b69c75152036c8d9ef3c77ecd151bdae7ff36a459d0bbc1dfa33ce3dcd94ee2cf6ee08a77485746306ed987eebaae2baa544b543b5afe143e4122ade5adfa4fd463a246f29482dce7a51573aa18fce87f7edde842e7f21ff9e40c4101b922616ee4c14ea1af3c4d417fe8876af381027d837fc40dc684e81b9eecd4\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 659ffcbf6b22f5d201fa4114077aa7df32b513a1fa5948ee01f6e21c1862a2b91863f7aa53d1aadcab9347955210a91829a5f7c86b3e2850bd1f76b3c4f4333615ceb22830a7a9d7a13436683a48995bfd62f528ef4959d30b6ddcc8ed2a431c06c337250f8274417f6369b7a08b927885df52bd7370d3675094bf1bd32a7f5b0ca9a399a59f868cfb78f87b8647ab37d0d7a58d6f4a58f3e3df7ae88ddfa6470050229754f4ccfa265cec0635f0360c485d8f81974c6b8a11adce3775dd01936b82db37641ecf5f43cb8538055a053d4085c38a8a1c4e0c8af961448a779288c5efaab1eb4401c8f388c0b729e42243d935df1ad3705c1c5a7ffb6ea8ce77a69481a3b930f95ff118cd0fdb17393a37139b3b5a9c275c6bbbc819e18f49c369153bf1f7807b450e54fc28065a6ab6d5b0ee91d0a9302ebc0bccd35c2fb2fefc341a954b67e91f6d8f3f7b62c5fbe504508594f357b1ed951fcac7043a082b9bbf41ccf609881861e2de15ee99d373c0e99027ff240c0b6fa52be2e199967860baffbe25b3254fcd375da7152bb94ce8dd01465290fbcdea0838a69576e97e63cb636db79c2799a26f94a9fb044e3bf66c520895b4683bd799e6b04ab62f621dc00f20a4adb131606f127b84025269466c760181d7dd9ffd0aa5381180b541e5e933e1841d6386ec55a63bd9d8674a775526d30dbe34e4db87067a9326c6dba0\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 46eaa4624a4d2c1f1043eb3d17b48d977819a8796f48f20174c50da624c657e64d3154dcfa2a5b1d8c6d2ed07cf1f1c19aaa611d6466f7e7ec73df5ee786573adc5a9e3c1d0a25559dad282db26e889807764115a05a23959acf48d23b3b33a93d8b6c7de3ee446f113eef96055d285fdfd27888e569c50f022d5e8abafc874dd5a61df6258e85268bff66cc5643107f7d9097496caedc185b37311ab6979f273e5670f143146b68e44b49389554772c1ca7bb7a12fcf67d67a1fd0c245bb4cbb924276ae756098599392cde076a1c0edc8096d9125e5a5d30c2a93d00fe2e0362e98592c8fd31ab5b4c3b34e65d38ca0c25874eb394e04969982b70932616b75ee2912c6a07f20ec70e52be630ebe024c0622aed125e00bc84980416b80cba7752eb90af2b8215c4b559880d2e1c577b7374531038083725d23d02d4fa5d8b5a4c68e9ea5e11fe2d9e03c1b8a4db0b053097b5a175b1131e8beef5d559bcc3f17ed2e6f6304c0e4650a2bb675aa8de44af8a2e301734584eea145c4b389f6180e6395412ae70e57f488ed15d45895be580bd87cd916b8f20e46ad2fff0367dda54266778bb444c6e4fdd45fa62cae3aeb54b6a7a6b4d8068e3a4d0730f0260340a6c32c3c5d33f514612c941bb63d730df5584933e12546500495b5ed3ba3631a3db871d17353d4c16676a0332ba4c4c4c68cdb6ff21ff737ee249be153c1d9\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 12813153b37fa6c0fd755a1c7c409bb8169c5a39d045dff2da02b2f8e8897b0cdc6c2d40e6945b97006f18e1b26983f77b70bf2961b5e5f2759241daee8c56fca7c53c81f69d3a0341720d9761a4f7be8c068464e881c85a2c39e0ac6f74f6f5cb42df8c3713f66a282d7fba85b7a09a6af83a068b78bfe83ab25841e4bc67c9e40cf2a0974f8875fb81cc6a115b91f922419c44ea82b33187521a7e1f46c0ab9459b4e97a3f4a1d9e92403a37168826fa0ee914232afb6c4d7dd082d0c58885e356d0efb8aa9ae33d045f24b4b3182d5c54556f5838c449d31a49a3ac4ba568c248ed72c111b5ffabd991ebf5c48efbca33cb38996d584992c4abdcc7b93700ca03619412a355b41b000a32f6cc4935f942209b56a23cfb7b788dceb692343995f77daffa25e44d672f8bc451f776560b415d0d1bfe9925af1c2567a8e9bd15b8554d93377c62b0addabd27e8d9e0859f498ba8e03094e1d86d41e69f7606d9f1fac04744c3b7b8fc4942a846e2a3649bd9416d500b9895455fb6741ed8ed4f426f20ab40d8ab2e6cf6c63f5c290fc011768b317bde49753efbdfd12583f1ca79287225f9c3d3ed0c4530815e4f5e7ed78d14aec0d04142d0ac0fa3bb5d73b4bfda2fe7103a2ab40672abf08ef4d9e537b9f856d32450e2e41d9277be62ad0675d1a530709f2747f51f17aba10381fdc70c626bab45d51166b6f6ad978d2dee\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 27a042625f50673fe9edab9aa2fb4c60dcae0be2e8b75662bdddec7b1d698065510a193e17981bb0b1c32e46d237e15915afe2e2d4890c09907e1866095c19763524b6c8d2dbb7814ac5047f0a082f7fed4109741f4719e12ebb91f27a3cda71e80ec8a7f6c882ea5b3de3c9f156cff033a0d3cf787f9a8a833a29d0c96f0b68ccf55ffc62098e21f0df1832b70878dc94ef1a3260ec2fa56dd3c4fece5d855644d26012f56d2af85a0771d61367b7e266577e44c44", + "4347970908ab6cfae42069e2ceedf63679c2bd03697957e287d156b2717a416f0e4ad96868e1c7b80eb84e99778f670ca39c15e1f901def1efd824ea5f7bbe127dce8c8f53d849fe1172a1254caec13b10b0612e72d3f8e7206eee2620e8e3c0ea176deb4b1fdf5d8d37b57af553cf7628ead74443f98655b5166cdc08190d7e3b134d71c21bfacde3e4673529e6d8a9c7a8b419451e7ecc6c16a44b8e1b3f2c9d1c822df8f2b51d8fd027074ab2d1c52d16aab0a266c7d9ec03df7e631052e67a28963bf8560e89326168bb7c8f5a152f7ac54a46e88190c62a938628950df881a4be4136a55bad4f608d39ff37907a6f99bdee065e5ccd2921f8f1a2ebafcb336fc6ca96a207a5a0a7873420a2ea383a5f1c604c93b6c0ac69244f05d54cab184c6592e9bc4069df60d3cbcbf16729dc2f3f3540474890abef29e1b21dee8af0386ab61784d7af8d79c\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 2e642b8a5208890b52187729c43a1a308cf6b846ba1c2fff152ff4a1b051753f14ab035c2f3f732d5a9df7c2cb732d09f8147509bf02df8ad26924eeb04dded8467b66c5e3eae384568f624e55c81cfd8e3204422677ab62d919a176471b1fa8bae44bcc8d4d116a6afe5ea2773ac52a24186d6a4374171ce0516bba8733c59f38d622b7b6b7ca7ed2123f7f46b6c06b02f4c7506c46327d7cd908ddd503fd42be3cc896008eb9202bbd7af08b9908121a8b27fa44747217ef72a8c549444232e9209ca1345ee017010409527faf0722e3f13641ede5730639bf560c8a655e2f96cbba7b2811da8a1fc3e5125c92754ea7b823f394998b8890602b1713c2a4d352066e01f55ea86fe3da71f9119300d84874b667a6538a90ab24aec2bdfd9ba9a5f0c3072d549653b16f4a4319ca398147e6753f9a048b5b250c64d599115bb717ce85c8370df62c93da7e10fe705a12482e6f25e6ef1f4851a305aa4dc21b08791885867fc10c5503a769a6d6794ab5a9cc5da68cfc3546b0e848ed8629ecded620ee3fa6dc1236b59874916c45f9c409c9889bb85d7b289ee5f45f6d33262dea83b32c071417d3759cf650b9d43468ff0c2e922632e8d73feb4c55fe4233dc1f0cc6f6e522fbc9e9362f1d69441d56ee5f3252dc0559339335901f539ba274cc3640ec776a12c5c7e5c1cfeddedccce36884ea01071c2bcfae7ebfb5b874e6\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 811dec041124d3ed9d5eaa9c760ca5756e42525687d4af701231671e8f7f4448ea9b9eaacbd9c99659ee3c175277d30cdede73e1b332ffe41b8b737150ce1f1c67aa6b22ff801077c4241a6ff4af8f4db9462c70c13e1da86edec4042a70be9d08384d932681dae48fdb83149170472564a5bc68cbe952c76e476b99c8a5a1ecaae809690a014b28224ddb9c9dce0d4f6a77fa2888a71f3aa9b5deda0af40ad0464d9adbd26fde242523c096106124048bafe824f733b0af480056de2314f5e27db5aa3fd15705777e14efd2ac43beb12f8f496d09103ab377971cdd45e9afee8baa874c23d3942ee3a505bbc3901dd4cf55ea8a30fac0cb754793fb2d8f4edc29afd51b99140a8d03aa0614169428205fcd66c1047d3366fb32f1c2b1bcfed8ae23580ed254c3dcb127daf16aec1892714ee05a1ceb4e561a1e9c8fd4118ef8cc9e063bd86c55d28b8acc9d5b4c589583e7c6b78fd518d8ca85b88517f10c27aca2f0bcfa54ba5bb94ed5b005e3d871b68b86e96adf12588037adc97cbef59c05f0d2162db2e4cce41227df11eab5449d612be56ef6fc522452573340d4d68af0178d4f19db6a0ded521f1a982bc5567dbde2036f74d6d67b806ccc7c7f70d3092c22c9c1acf307b751d994fa5259a5046668a047afe4c3302e908bf70bc6b55c39726bf24ceca809357c623b89fbf0eaf8b5d18823337e7e0245d865574cb9\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 313233343030\nresult = acceptable\nsig = 47dd8953f9fef033d428958a32a4b30983d7eb9950c3d9acd167d50d9445cafe2bd02f44db5f7c5f6f999d3e1cae5b7458cd3220034132a3195481fbe5ba6b878d85c6f8ec53769f28245dacf66b562bec12399919265b3ce99c5f2217c3f5b33228a7300a0e87174675b379ffcd8a048467f04df2b5b7a7b8e3b8ffeb2dcd408a9363891518988a2a09453e98f7cd73aee8be03acb0bc8d67f7f944b62a717a7a5dc9869ac3d30e7fdf68cef439eabb8220c6923016f00b353ce5209ace5d387a7f50dbe09a7d2e521f1ce57251c48883229dfcea220e31810aff68da93744715f0720d49d8a5f3df2ce56d8fa42c02300729e8099df6e8d39bcfed502a5ef910b024e09031e141266e5493e64202a77c661da8c363f713b78247d8962b271e6ce968810775b6e76b577f01c24daeb7f765e9aa0118168103a51870dacbb4144389cb0e221e6529f9692005a2828e68936c339c96f7bcb4ae61494d03a3ff46adde34aec671b5aaff2fb61dc6011f53f9dd9a19bb6f0180ed90a4ed44ec0ecf97fc50c15607d1c6e42d35e36526f3a39278a7afa2601ba7610292bd6f04bff85f8c4f32f32b42379085b461eaee65de85ef2fbdce1d0dc39120f5670ee2ba5b12902878d2eae39290909dc55d64d1d6b03cfb4b144dab9e7bd8cbfe8500576e1a9f300818abce002ffedb4e8f2f0f58eab36f5c81929b50578d4ca3626b87fe\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 17ac14ac21d38aaa857542a9d871f7d81a829c39aa26cbe7db722f68e4397a7c758b11a0154edd42e1cc6b64047238ce4177558a0caac2a6c66136c8347ba058d6aadfa3630b4c44fa7205e0b8a9582eb5d904cdc7d25e5b9fc83bb4fc5723b3171834c07d59876f9ac771ee66ee17dae152dcfd86095fcd908697008ec1776536724d9e4322b6f7cfa59949a0b9be7990ada56722e6536b8e1442e0f0d8799ebb36e7881ccd52ddcd8a8033cfaf6d3e2a5f2d5aaa04291ab11e48e745c4de3fcad3120261d01eca03f502b69ea1d5d6f5556e9a198d663b05b7d631dc975cb7368b8f34fac47c621e60163914144b2e98e2f993606f1961d2f176a1b1eb17e119d48fd2249889a89be68ac78a415a8752f0425f1baa1cc5de9a4e0b51bed081ebdb538a70be96cf7519eeda55bccfa7ec5fc82acf88036af913cd8b30f182646d9f7f02daa27306f0ea2fdf436a40bace578ec2166a4080c7cef4a862804820020d9bdccfb2289c99ae61ee3fb3b3a9d3f6df672c4690e8c943f2fe23b5718a199439c5b2dc65b63d37e00440fbba51660242550484c94c8b6f504b0bb4e2579f1f560042b721db7d2ec2ea175401c14899062f9022fc0d8e4775c8d10c63cef61e9c649f771351b94620a3305f2d4b681c11089b5fddfbbdd291ccf9e1a997c1b2e6ab3cb1e1bdb428590ced534cd4da5a9548f3d8a6edc20139115d459853\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 15850012d1a5af88b5d1105aa0aacf404c2417de3dec04484cac687f6bec531cd569074e5c44ba15b27ebd131d018c2a4b463ae029bef8295e89c594c23ac9878e6d7a03276cb7c0b5231e887fa7e0fc3529c11e2580e329e65c669c346998d687fbf7e76b3539605753c3cd708dc19a072331d77290d810311b23a76137ddb50737436fa31f078852bc0d546364a28456c4048bae337ccc0fd8713c02713a987f89f9868cb64658ab1b8298846bd36b8efbbca088b6489d69a674aef11191c3409ea5b6428c2d847833db1563c77727706d2657ae8f249a75e23a1782024f23383330d11f1b91ca7b0ebfbe3f4a5fc6b2d37210b16049a2aa61030ed1c15b5d2ebd1a0ece36de2f53b36323a0eb25d4f77ea3582591e13f00e836a87a1fd2fd432f074fdca1a27e97dfb62f1666277bef1404958601d4e6b8b24125b4a86c9dfb260c3eb84750ba00930a1f7772510fdc0b265efeafb5de8c2525f5706fdf52a6e813bdd18cf683dbe94a6df2464366707bec34cfebb097b2f025011a0c4b5f263d30fc0c67c6e5a65f2281b463988ceb9b072718802a0a80a52f90af1aeadc8fb290bcdfea333a90b55c1a73839665df30f5b42f3e795ff1f57cdd7edfdee1dcbc81155bc3be1e264084ee3d7af4fe8d9a5be9cb2692674f1f608139b9707dc4c4b5b6968d4081236946f4c6ed2c8836769a03f9e87efd1c555f4ac1013882\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = b053f20b91837472425746c5cb3c26f4aa24bb58482556b418aad3aa6df71b9f67fb66855b83ee57e7a62aba93167d9a0aadb514c7d9f4c6e0000fea8525aee39ebcd59017fe5e58ba751c89daa976c158d9de60192230c0ce85f832882fb3db671ae091c886559dce66ad1d6ac0a5d1b2ebf2e1c30d88c46d43f9ffce192ad1cef57a7f0c437f6d25db071b74b49faee3b9732e9e0c7fef58e5b9971277411fff636aa2393ddc82202319f2aa5b2d14024609310f9c4fb6b8641504151f07ec1db8f729ecbbadd5a1d21969cdca6d4c9e7995de673ef79e95384f83900303c157ac79bcb681d2601e9b2f97a9438cef3a8ccb72a740750a2cdecd1b1b0df4a313e912701e82d76d4af9c8e18ad175345ef59968ea8c5dc62a8afb39f52515d6e8527902a03dab09419208636a3b0eeda8148d2ddce169ad3389776e10ac3a88b1e57f0f5da8e12bb1339f1cbfd367b221fc2754c185fd52897deacfadfa401eba9d55521592311ca3441c4228896a09c080443f78144e3e5d8068a946fa0d30b2187cea28085913ac86051e77f84873ff2b150455fc2486edad521ccd0b58a9055b049664d1156f4eb4ed393bf73a5d3d09cf7d163b4ef5df618dc6a57d2983024b779eb6a3331cbca72094052a8621d24d76db741a9f57dc42f41712b474cd8ad90fb348a2646f456c6ffd8a30657e344e57bcf890bd0a2d199bec9e2d5be5\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 4d8feae269696ba5aa750a49b64e7346de9e11ce331a3c7bf917c5467bb077099150b760541fce35521073fc68a5c638a5884fff577e97f0d78faab8161ca4c766ee4cd89e26d8b747671d84bba1865fd133e51a7e81e8986f0c95400ecb58c8b0af8aabc9ab352a675041e7bccd972c2be01080ad175c76e431ff670780e4b63d34aa69e3227696d8736a6d6fc2e20015180a680117a6f04f8f56836d907fd9efe10a7fb5a0f57f6461fb527494e9678568e168a83ad61b8c5cc9872f27a80e159f8547849186ebc43a54c41bd49c0dbc48fa2ce3781cec1d6623017035cf7425d7fd8a8562d3ab36c9e605738f82b5a77fc65afd217963e710a1e3a4e30862c8a8f18c97b095f68ae0878ce3cf1d062dd440764e19868c5b98f08575d65e0b944ce83b35028da466051d082ba66c2650eaca9ea9d83804f41437a3ea43932ddc217fee2c59765b5e862e85bed19e9ba0de41d64e518dd1c7c2f2f0b4bf44b40b26eeae0911d0c63b1b2cbbf3cb8e24a1ec6ddd70b9d4", + "42313e47fd36d1f1624d071de53d76384aeeedde697c206dd27cb1d54e513621351444a4d139cee2fd04ff760d08d6aa949fe9f2c2ebcecda4f8478900503eaf172a63d4d6deeac67b3b880cf20f8472394451caad83af1e8de2e29c0bf904f288d74b73fb330fb3a50b63ecafee8ad9701361db09a1026146bbd0ffc4f0375488e5a178af304b6301\n\n# tcId = 13\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5113288772030fec77b5bcea9a599a9502d8dc6b2b13832ae23c34e4be89eeefc4cdce3311fc6520ef8164ac409e9c2a8f6b3f7ae54788bd652f73cb8902be3f0f95c64b7135a231d8b0ac9dbb82441408eae432106aecd8167e0d3ff56fedfdd0facdaf1478183fc35a522e34933ec07844f21dcf76ed0eef71559769ee6b5a6bfb14f654528e6e24cd3f331634e88862f2b37e25cd61549a7ce207aabf6550292c21b187a30707eb0a463be2bc8ca7532f1b00f7bf3e7b561f685c91f6492c5b728ff2fa26865e6f1bc85ad84d44728fb549fc9d1ef6cc0fce603c3fd94ba8bf795fdf1b347a9f5ac58f1d922bc7cc3754cf427287a8458d075a148f6a336a0fde617f771789cdaf7223a2dab71448cfe2c2ffabd43eb839c5eca84538785e3c6f1cb0a19e532b5efebbdab5b98260f26190a359c378983548497cd746d4ee0021f148a6c7b5ae97e96d72565521b9d9ea066a3bbfba1427d40099ca367e378b227616d3d679ab5832b2dc93d2eb4993ade501059cfa8b916158aa8238bd5e1cd83e4a2ee676dfcb85051906f94a8861f5e2679912df5b48ba309b90fb383e213a70ebba0964b00f7df451c6d60ec38350e260861f5b5e86af8fadfd09d66d8d1c4955fc8dabba82b937ddea4003f9c39d4e7b152c4d13fd2e54fc95cd3c3e1bf20a065fb6a78d161e80bc4bc00c5bd93acfac027c94d21accbc423c2932db\n\n# tcId = 14\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 78e1817f4671f8c737dd45ca7d069a572d73010927e5957dd6f05ecede34487e8b4168e666305a80ead3f6f5701d350397ee730ffb6a320161c9743db09cdfa272683383271287908eb5a61b0e72cb783b4b0f341f042973247e525330201eed0b0ad881582de9ca70aa66e5171fc08ae22a89a6d5bf61f056ec02fb5207a82ca0270da42d44afb79f299782da7fc8156320e837269c9170dec5a767451edf0543361c5e5ef4f6a165cde8b0f6c6b6c62ceddd73bbab815d08340046579482e39a216d2dc8069fea722937ba5333cd47905497e512b904db8731a88006aa6b650841f636cb75c1b6d0be32b955389eb1f6ab5df19bdeb9ec19f090d7a46b1d45063126037b9f8f025816bc79d33b983cb576392ae135bcef786665522b65a6afcae3e345c06d551d5a122b305b413144cda4a58012d539bc7f9326f1a80ff70b5cde353622577dd23d10f75d206839274c771f2c6e4da1eb7b93c3c0640ebf7d3d8010e22a2d58281b8f811cf8f99725542fc9059228fd7e01113b9c3c8956badeb798d89606f481e99c222ea1918a26aca49a9ce98bd4fd658ded3c5a2c946643ff312d418b7b0da0e8d96ce91da8cc037c16280632083ee0032ef65532ecdc45589dddac1fab52f8ed55e35c261425701d9778ae53caf595d7b32510f7dfa8a7c86af4e358fe08b8efc19835e0e9c40dda2f1ac05613a26520f0ca5a126e95\n\n# tcId = 15\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 246873df5e978483ab6bde2bf90219bfce3d2b6dd6db3a32d5f3da3808e5ad945f1dcdf1186f066ef8860c8854cc80ea794758a84dcf399c9ecfc54f184de1397d48b2a15432422c60d50ae42ca8203be687f4a51fb27f46ae5c8ffe354b708d9e7007af22b42a2662a61ce1001761f3935cd6649efcf5049e4ecc0dadf8424dc3be83a299902ec387e42a79207170bea5db24c729d811b6ae9480065809aa0956760d40fe0759024af27620c12a9ce2f842b429d005848857a904ed62cca6752cb5be1935c6562c3319d42efddd490705eaff46c822f81a28c6dc44dc9e08893ffda5e044217a6e01fcb0f6e55ef1a6393ced7049657d4c37b3dca55f5ed8ca383a4a72c3a6ea6f096d1cdb63c767d0c5f4900006ced15e0d39a1a6c2d36f69af25b2a324fe6568e4665b4ca9730f50aea9ac98bb2a8aca25132e614a70c20533cc0b78c1092988482dd42cd13e4a3adabf45f811d638915214b184692ea09b83975a5e0c3384c9b37db667cf321f3d297c0f4fea1c80ed2fdc218c0b7db9cf8da370cec25549f2a0e5be001df317f0d1f6f36b4dbbe4a499e5e5c004a51bc88435872e4c4e34115619659b94bacada61e7d3283bf5a23e6c548bd089a6553524e430285e2ee278768242952b041732fc7091260537b0801d50e01891cdadab05c671a39dd46db4d9988e03593f7b4002b3ed4b0ce1b0e6d5253c423f59bf6e\n\n# tcId = 16\n# wrong length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 0d93eb247bbcf1003b3360fd8ab063378baf9ca43df1ed46aac03429ad1d817071522cc56dfe61e96db6ee747a5ebfcbe2ae6ca7571b17b9e8e2a3f5fd8879f167d3f9c20fed72058c00801a4058446122ef04d8685a16804ff91c0073efa697ba4d6639fd789a3fef6a53fa5eb062c82c974bf8206dcd5617ed1851f537643ae16b58e368456636b56f4fcda9c81041def1cfc854203af0a5ad581ea126bee84a4452c58602a2eed0ee082ef19f4ac75f8a7ba52d927f35a3bdcfc64183238adf1174dddc29c49ae4e1e3388fb08d28d9cbb379dd6c83903f096f395ad3bef4fa245e6aa7af5533ab6bedff2775649e5cbe89513a18b00ba726954ef0ed94865a7d9aad1e845415cbc19e039b3f7a7e4fb8a0b47edffd9c6eb2834331f0b636fb5eca42925b5dab4ba08078a71a6e44896abd06276f6f2e41f122848b94e2a22baf2d262a06498e0084f700ed1d23faa7b2ba9f7a71673f4f8c2a9a00e611f53c2095c43d9e78c1a9dd73cdcf0b74aadb47127a990ce7dc335ee26f4c13fee45a1eb44b99b2325fdc30e33fd675fb991d487efd478ac79c8d7a57dd210c5cb9c6fcc7be1a7e4a86f2ddde1ec8e4ac687b61231646d9457b4bac5dd5eba2eecfadcc5852dd2f1f7b9a14a0d346c6effce2549c9fe552bf1f21b99e5a013d41b5693059fb905bc30eb40b075ea8da092fab2024e6c03c4630f53e31b8e78be253\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 3fe3db1dfbb41a675e4768562c60dc2c2ed3c43022b54f4c9fa8e99de6a93ce650984c6c27b7bc5524c0b032c9115fae2cd23ac7b03e496c6f4785e7045b24d226b2ac535b7eb605cf8b56906ab95ab0e2e6cb3e2b3df71b714c66685a2433244ed153a8f526bad60a530c97ea9a238fca6fc5aac295a257b32fa6fdc68f9216d8118907f282df1fb2085644cd8c51d1be9f6dfa9f3eaaa57acc75d1bd29c3a59f167215c90603e790c5658b2d7887254ff80630122ab5578083556351edf1cffb7e42775a5ef79b2ff6cad7a1b8f32a7704bdaad7d63844b7cb7a295155fd8643044c3a83f867d427511e352079f578f00fa55575445e4af5c6e42500d0e4ffeb718e13076d9531195bcc36333960060830496256702c20df4759c74cba389ad73001f166a3b6c2d9e69d2b3bf86a5f929c79d17483164d76cb43f8723cda7648cd37e5d9d3aaa5cf9d077a6f3a1135e3e62feac9d0a0d8c15d6cade7ed6d2b568f89f74d6892d645c89bbf1429cce33e525c4d151a0a4e9192fb6737f151d5b460c4915ba57e3fec3b537aed97ca425f58a81beb3144b5898e27905ae56539c97b9994cffdb9e4bd91a600dd02c2ab3c9d8c668ee077a2f1f58c8ab7d0db0333190c59d37ad615dc3029faed93f31a4334a1ea29bf7b53f3d9415b8b760891a4a649a92781eb0568d5442b65e574193f040af56e5d33d2e6a47da09b7bb8c2\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 34e1788aadfc237f7896f530426725bf06a553fad96003cf7f6dc90dc6ecf745ea1c6ed5facf0fed6a0b88f9eaea6895b6bdd4a6e79f114a75a01be620eb5eb782431bb58feef95956cfea2b5fbfcbca452f65ea049663639e996e35ef37c27987015ed3af600598543f1faef183199ceaecf01ef86b026e974721a94a549aff6545f42197df772729797f4b6c6dc7f500106a793993216d5a356104a72c880f8e55343bc4593f13f988834c03c45101a4c1b27ef8ade0b56c4df4592654c32289a706d7afd7095e7f8a7846d2607d12a409c67fff8a3997e4d6963abb979d51dba6c5be5e58b105738744acbffb6ebf7428ae4599318948767b40c831ea810f5d11cd3de09a066093205e852ebc663b0b970497c64081d1ac6a418289f7ac2eb755cad07390c553bdd82ff5dacd2937bedec7d84f820e054a3ec16ba447a8c25325c0f1cf1b8df93443c56947f5c9c8ba2eed73d379583fd6c57ecf4f70e1b899cdbff6c6d80834e8e88440cc8bb2596cb26df266544326c5a15b4e6fcd6f3296994ff3887898d95a0d32f92d179c3d1dedac8e2eab8e097770a0b35e886c2fe65fbf9766e397b746a2819d1e1d4f8eec4f7354e504310241bf6becf0b84d21a2b41ac6fa5ada51cde86b8151c409d642bde0307fc732de16476995628f79bf02295929e220e2a16dc17c6b271be629cbdd43823e0ac5a25c4596400b0b2f2a\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = a79151876e4e870920cd837bdf756398cf9929bc47dd5d082916cb622c05b52f2d02406960c2eccbd387b722303d5de1edb4f0a2ec2ac82fe2842dc6b321bb1ac772270997594460bb14d9ac27c3fa7c17ffc987035a30784e0817b4a90fdbcbecddfcbdda814b2296b2fa976199c2cfe8e2567a56b100aeadc571b8172f05eabfe8e10b302fb3dca6079c387914430e64f32c5267dd41782fda4e134e691eb4455656f740048640e3bb1226d47f04c973236a2c0a864cb1bf0dd354f47df45486c60ee8fd931328d8298aa77dc561c394dc337b418d4c41040fc3f15fe72d3b6ef9d3c582c939b6a33692b8032ef32e025683b015c276161e526c19c3e4223e71460918c03c31496e8eae68fa97850b051208e2a989a8e53beff882484992fe9b5c47a4f72849aa8d7896adf4592736e31940c714f8198101d123b72c2715a18e8d58d2c3d7d0d3a36c303f62ffa1abb5f8ca057aa5c4030af66b931fc6bf80389d84dfc1af44dd69e73bfe22f76ae6c0da7f936f06f652a9432697a94bdc2f869f8ce2338cc938cbc2c7809a4000666002bc351ffbce64a860d7e00bfb1083c47a2cde7ba67ba5829769b0bd63d0f2277f000faec93e225234e3cdf1a3c41c8a327f67d41eacea3a7ba3dac55072429f47226d95c235857739027b85a9462e7a9906d8908e5c7f25f0efe596ee4c05a22b611a33580054686f6dc17e930a41\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 18318a9ed077357126cea3c22f6dddd974", + "374e2615a3b964804e3169121d24d7b3ad9aee6a697e6de7e85c76e40a0c4cec8c00b679530706408ca48ec12eec40291480e42638bd948fd55c0540eacdca1bb95dbd596455d48782a291ec35c2dbad742b46f84ac5a4bf6cc2ee23a8ca421477292a64598089a96739f905581f77d1ffac1288ebdc9daa41cdcafb517ab8b44d22799706903d9ef4d9e43756a7e0b146fee94fd6a899ebb6f46039c52c95ee5fbe3aaaca76f604f013749baa2d25127df4f358f0f8b8a0b90706925ff62deb6c30fd871bda0e40121f59ae0a683062dcf3afd85af83ee06a059f3c74c62c13e250f9ac7fbee4efd083d897db98b2f69a3241d10331c00eebf1c6bddcde26b45407f925fbb499bb52be2659cf2b6df5921f96f5d6d97a1ff80b4360135cd5e0660f08c3f4391d84cbadb483415a3e60730ebe52936a66edb549430de1549941d9442f0cb465081328a80bac3b4b68ed504e41af0ee6b2ceb087db8e6e497ddda5b0692b1d527b3ab9f5906098e62bbcbf39cf897b06df78c059b766f2fb17ff0434af9aa3d9a3b3b9ce8c0a2bcce33fc8ffd0bf06e4209050ebd175e292d2e9e4a36c702d6e7712d951cbbc516c2421b65b1cd9359629b7f772e410f1cab7a2c675d7c7e5082b09f9ed92f1d417523281a61d37d19b0f1e77d58a6956148ac20b5dbe28d8afec6ecc4e789ac08c52\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 15948a4c114544bcb6ede3a68bf71cc062eb718dd9ba2818136084e79852026a4241918ed4ff81739356e960493f83da7cb4ea536c2a77ca574b94b44cc9fcfe3a35d442a2d43e91fb74c426e94d9b5381ae2853a1f1f06f9c9fb23ce3974d7184b3a3981e0e30a88f8614c305fb6d98b6af1175f39457c02a8c61364238382cb5a4cd861b9a406526c0308fded92dde543e1b26ca3fa2ecc6ddb6a5641760ec774b6f43c40880d57c504ceac48d550288617012f54d803b21aabaeccd041f6eae3beede1ee7146e91ca544721ad3de98e7118e1787f8b3fbce518b2c238f9ab8c10c1c1f391388759015c25365ea57fe6cf01188cd262ab3795b9f00aea6b333a64e505afc9fab75fb7df290668a5d60b5c2d3c18228b9ffbc5a56ee04edb24cbfd4a0a1ba42928342c25b9415e37f564672e7c83ba1824066c21ff578a081381b62f7fc8d2776fd6bdaa7cc68bb6e9ccccce8296334ee42dc33cfb6f2e56e01c9df06fd5dc43e868eed33635a291cc509c707638cd2f09cc595561d3007ff0bb49cdf9fc7c2d61d464878cb0abce6afea05f2806e65c7914ef33f8bbda8a2e7766750b79d60c00803dfa636339093f72ee4fd062508cfddaac7a1e3e0c1a0601000e69eb09ca3445893109adb13312b9e4f604d85aee88378993420f6d88da3763dac4844d01ad76c9030a60178444652d3e0f0c1fbe43ec2d558e0871f640\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = bd94dbe35a23ac704c874dff24aab7514d82b17cb8eaa8a3654539d2a658307b4a4457259d985db4601beedd8e48036efb05a7f7131f18380a21117fe644c6363de327b73f424f45a98022315a02cd61988e359f1728984bd06545f04bdceae8bf8bda39cd67331ba88a88e9f24e6924e51deb29db461fe9c3bc6ad0d3d3093c2fb873ef9749b93fcad251f20d851e111f61c835c99b259130f4d08669d636506d1049081e4ebba38cf616628929c6c16bf0a5714eb91270aa3e28b9884de986075e308d84ddcdd4f44d47ee9cdcc95bf77ca9d2a862c5866d57b14b0a4e4adba7a520f0257340ce255abc2237810e5005e2194bbbb116f6c4d078f4fb2240f4daa732d5bc22347d897e517beccdda073b35ca8aa6f822a5a6b4acd20cebc2eb34b97e6c298e4264634017fda05db8efb65bf7cdf11ecd774124834f9edf6291a885e456f075b681e892ce86397e95b3a7c39edd39b8424b42f1d40210840d5768b39dbbb96ef0e5debf2c4bb8ad0c9a6e4b23799d5aee4115ee6a393a362d790c6b18eac3c32e37a0aa33b37cf986aa1c23f0ad49f44c303cfe304d799cd7448517d4ddc6b4605ce92ec5e15d76fcd2a50ba005e52925218dcfb22bca9cd988c3c703fd1f5de578d2d3b003a8c5b42506ac72ff19c553aac8e73183dbddecb88b75c78b2b56cd86b5de592b88279bd4608b38124bcbbca35fcdce44f8743e26\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 5fed965c75ed7cb7051779c004ea0cac049734ad8579394d660565337bc0f248057b24f89a7e52d3bae2a3defa4a4c8359c074cfe96bb29c63d7f183c2d5959cd7a5f5728611fed9d511ad078b7fd6c6661aa269fced9216bd094664602f537c77871d8cba65f149c600007d5e57804d2540d4a5b0fb109c1811fc86775a19f716174c5331e693ad53bb893a950afa1b5821c97dd70f7a2ced3cc2e9b1b5f40a7dec2d44b17c8df9f9f2d956d5bed00c2718e7d3b724af758ee6e1577a2f4bae9c4d47053418b49c4fdf3f94e5835774a432598e456e1e9a474d9c39434d741450b02143d365bc28699cb470cef886e5a92a60c66b1a11934127aab6b36e93c7635fa42d8ec014ee26e679ea7e3470e7836f3948bfee3505e0434504884508ba66aaa79b32be94e2545881f47da2132bfa380aaf5380b7d45e76893b628deaee0336cadf927e64c3acddaedc182b92280bbb505ef6e70eb53717feb00c9c29b035f2e4e1431409ff809678188b400d70227c540fbce9b17eb5532645e762a26e00d532fc326f589a831f5fae74addc916942cc1e5025f55b8500fe55f44199a625514e017551ee8b4ab0cedea5fd1c7f6f66bb03f031ddcb572a4178f3feedd1174d91fa2a43b82972a14cf5a207c021595176bad8b6fa4b76544d42457410a140dc871ceb0617b36b9ba8cf4ad10111f5206279dafc6685bd7f56c6b19b1a77\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = b14d10f659dd8ee3065e57bca4e4c0ea28531de697385355944e72a7e877ecef2760764e1451d88276b6223f5a973d3b706443ae1645b0ecdb019063d176589aeacb7886893bb0ac1289a5e99496892e5010fc5e3625de66c3f0c3394e9485a405e6b2b448a3c07ecf6d27e784c5b271bba20af97e86fe909d84e4b9ebc8e80ddf8f4f55df28aac9d332dcdf547849167767ca496883bb6c546447753e7f35aa0f9daa9a4a293ad172b8b5c383189478301574d8d2f0033a982013bf39d8f041c510df0fab7dbca86d092409af5c75d43b39a83e52962c576e891b00fe1bf9a26dfc75299e61aedf4ee27b35d024e6d5f00f9ee58a5aae97b65b98a900b489800c59a94ad91b2e99a5dda868c46be99154b874e85621f683543f70c5433c06e76b0921abcb5431e1e7094e4fa4c9bfcfdc6a29eba44a28fbe44c082d510dee9db21b002521754b47f072fd9e074025a2cb928abadefc045a925926cf53cb9702c059ed8cc48e37f5a4a639cb7aa1152e6099e183a63baab5252129897f92e388d819a1067c3c870e3630ba599f2445b92c04830b24c3067cb8ec39eba5a06de0cb9da04f1914d817b5fd56d2ff1e2e37aa588272a665afb3474a0709293412bfb6a94c185d8bd66a7de0720e9a66ea8f6652cbe172c0f3af0b48c6d349c73f654477460acc5cd10d757cbba8a8d9bf7bf8627ce7f76a99b9223fd5de3f59f3e3\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 183f3c9853c987fe83123605574c6317a7b6779047cba4e661a0b8b48a8d8b94a1a1fa9f3fd2b6c2d7d133d778d34bc2d9234c122e81019756f8ce88fb07a4ae0af3b532facfed257532e6f148b85111a5b8a005000e63f44e31113748ca045db35b85af307d5c5b6928c88395801d2983c198952985811ea64258ef4087c604b71570a54f9881c2c7139323d682e6e4c137cf391d9b91b1dd5370ae0d0cdbb24a8c0c376d6528381d1a63599e46e145ddf81ad18086ea2146969f16b21075cd89fb18f695ec6461e4d572be485838aca6d0e76ab0ea3c33484defa48522fe5069d2040260f55cb7ad9750a4ba94375b660ac25a7d71443ff8d3ef54d58e2a05709e3b679dbd4b9104763d386edaf807996ab84fe8006b33313c16958885f2fc22aefdbb28c34d6835225f03a7b18324a99a2175b83f198547e210d56b68a1d85315779df7957bf19c62aec044236a4bbe63a7d8e982b4572b386d3c85b18357f44d807ac218a8b8f75697db20800650a543f57a151c23288d0f5c9df00b780857f43596da4cbadd531f47017476cbedcc551fb1beb70f9f922d72a3cae9a467cd02258cf4cfb673c0cdcae118ae56c2d3b3892f1cdcf5087fa421588c09c9031056d297ba9e0bf443072fca124e53023e1d8db5b60d7aeba0bb1958002a72f54cbcefb740340c8f4fefb82b4e5dd57d6ac7bcf85f9f9d57ca4c1a60bfac4b25\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = bdeb05d5e66c9bf5f9771a973872e05adb613d2bcbb6748193a8d21105cfeb4e8ab5242e9f2a1bb2bc2e48ecd8669ee7d66f1a1a93ca824b1daf21b52b416bbba48c667facc86a10d0d54c9c08f2bb002b22499b5537351f5490b397bbf0533a34b3b7d058a50dafa7765b1ccd5afb89e4b354d538b89f42a5b5fb5eef7b4e5d8ca9ae40d46fb3c83e36fdae9dd08d282f1ecf5664d319f07f430ace3e321d215af9ac8cbec02275f7b26d89505e3a0d2668c8c06f30d57cbc09733d45bec55f2e877cfef31db7782b5de2f1d8d2a7f03b1f3e6c5fd517dab5c0145a8e36578a86eea7ecf9f3dfd6081042023f3025d6124ee9b2ac7b40a6dec3b5c2d29d46d834d2c47b9837d377c0a2e965ac248a84dddc9fcfd11ad448788b2b9a2aac2eb8cb25932eaf1d7c36529c6f6892980b4cef6759dcdfcfdc2aab28b10df46f39a1724824918669f0df2a9e7af87c3ef0602a56d09bad330f1cbf71b146fbdd3a5e45f16b701744e28c8821adc2397171554e0c6713355155065591e0b6fed94c17ecd47a9beba3da0c7a6d17bd5145f0fb438cc4fb4b53b08b16d239bf839b33a321fb030df77c7534c0cc0664cc0f485fb54745111891e92ea2bc1c3596bcbc3ad40034d6e511b7e9a3a7eba426bfde56926d05af2f98ba15cc3ddc26686d5ed5a3611ddd0ee774094111bfab88dbf5ad99c1b3f6edba85285e7478465d351755\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 4df5e7aadd429163a756b8b9d9035bcf3d61151fb765688dbb4c238a2b0199ee7d520bf3d593ec42660f28ecb6825f72e5a124d6858a33514fd43e1485cc06b7813c7659c68273e05a615d1f7f51873e1e2c7582882faa2564c0ecebd364fc7d6a63c0f2abb4dcd15a2688ea5450d9b5ad445abe6035758aed19604e46ed2cf7b3627278c86c218a5d3dbf9446d94a53f59e46d540db4a0f714defd10b310042a63f07132d36fb13ea731d1124ce3c6138d3423b44f7b7680ac8c78f4d89ae98a6c226d5c4e3a1f5d69513199c629dd008cd4a2d272b429060f", + "136931c41b58384f5297e88f6a72d7b10d982c93c4757e4f86cb888e8472417091e9fc5f3bfdcb673063c15d108a01b04819c53962ced6bc98894de71ffcb211a4d5032731b98cce5854efae284e247d224b71de20cb680ab64f32e18a2165986ef45717b710f3b23b3265c547980044455f9bff029de7b9a750645975f04ac7992d66393645aef61896e372d4df1c40685e5abb8db4a788d65e0ead96d6c13713eb2c5197f0c561a4889a0052380166936ef096637717ac8650b1b821164e2ebfa6efb6a0443079c2c8b04f2dfd2410cde6049c511a46ccbd4001fca328160f2f499380f03b17ec2d98ac3c9fbb38ae18309328a3a3230d0d85d55e9159b710d357100b4673f7c1b73ca66e08359dbb260bd0c72d6e95e293f1c6b7b754729c90f5a5102ed99\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 737fa672e21c243bad70363eb698965a67083b4abcc3576c66353ee8204e36d260b00e5efc8bcc2bf5d9667468f99c6353b06c4eafbf49414f4bc80213907ba5a455e65fad522a00e08ddf44137e417f8d4fcf61ac7f1b826bb38322a403e8f6d2eb4e76ddb4badec8c4d50944615930d86194d7954c686caf822dbe253e72a184ade53fd494873d38344ed2f41c09b3941813d5e3cc4827626d02d420ba50c46619914fd0e3b8ba5639b1bccfc12bc2017fb9aa679e5ba5f3f7fa898a977d2660a06339df5341ac63bd4595d327fd9f651e478f701d58312c5ef36cacbe9fd3b8f8c726a580639267c6d2f3aec161a6dab89169c50e68e116549da431b50c1b18d157f48c3a28d9f5c8bbe6e5ed535356843cb12fa06680d117d9c663c84e512c9500ea876a547f5b60286388bd13bafe446aad7420d67cd2a7925a0b46720ff5aaf5e9c2e7f8cbb8141892d2d27c7e0976913db329213f277a08d9a9c99317a14e92bf48f01443298901e57c287488dc4d4126aaf560c9423239e21052f1a0485d80f86b74f2748c0f192f416ce236a79e7c0e6d77d08a2869f49c3a5e73210745699cb677372e3afb14d64767c1f7f31932720c3ad0b08348233d757cd02a39025a9460c83e8daf8be59b6d9240263bf9cafce0f3656fd4f4b0f9f8ebfaea86ccef25b93a8c893789e6eea2d588815639c09abee232812b8b379b3248f39b\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 52fa2c3025e2673fb95953747fc989615f634d32362d365dcabe6dd1c37370e0c582fe0cd54245fb2b7a892f9b45fdd6ce6bfa5e630eae4163f83c4ea2ca9a43a3f21e8a8b803d50d0345ba48155d1af3f419d8b0f2e8da897f7a36f88f0420bf53d89f3c2618852a858be2ab5d49d5a79b1d7866dff1421deea7143f75c27d9caee5372b1fe36c8ac8f3b5b06f4f71525c88be369b7743a7f5e84abad148492c23f6dc57f4218289a0be3ba1db5cc4468173b5fffe7455f94f5c2ca6c8acae8701dc393b9e5c2c5ab8633a67e4094ffbe2ced9700af85c8b3c0a31878696b53510a991b35f00e1f7c8d17106615b32e8649aaee855e25305c6864bdcea7ff583687ace773a9d56c67df5b462995444bf414b17ad7d5801c60340bec5bbffd49bb69ef97eb10156a490fdee3c3695fc8055cccf2cbf217587f5570efa8baaa384fe2053530791434610e4da67d075f6b8c5613e862e743bd42dbc1766dea5e67f2dc6117791ba42c737e56b108d6e8845b08a33f905416726b02354c6c2c17b296fb58d90fb2d87902e87a80ebe83f72380c9d8c7c5c74dbba510d658dc84976b2122b3216eb3b1cf7bbf868b844fd5559a4ea0c8a8a67219634fc9e4ceb637e6afaba347f7cbcaa562d21fa7e9364251aa9600a50b22694e4b532638d56ff3cce3a232d76b756bb2b7b21e8102841731f923ed410b04b4efb414454aaeb8120\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1a79e14f144c0b349987f2d2bf07b860848a6cb5abb07b3229796960a81adce08c7eebc1b935c58db8ac1b9a0998236cb726f704005b128e9da87cda8b47e43881a67d9fefaf081cd1597a8095c935e5eb3625940b1ad60d071a5085bafd3b662a2e7dd23205fd4d5af060c52ce23a9e8566977f696cd1d941508db5af70d6b065c3ec1ea08ecdd5c1d2591bbec6d48aef425d91b65761e1cbc38ef4c0792ca3a52c62b6a812db9d6c4ceebabbdb2e1c125e419912b12ba64ac1c89563eb5e10e55798513f8b6068235fffe66ea13815021f2e4cff34d0501aa4a8023a6c1e2aad933f69be3229b161da5902979bf0e71fbde0fedd73b2674eec7f478628d45e2ed59b5b1321b9c68d8c0ec79fb7422f3ef9cda93e97212412c1210c2d1c02a2e5ee1b653b923fd5b350ca17196c821095e5e71fbf32577e2720593b5f8a7786907b2d460489bf25ae961fdffb3aff6cbad48b067811f192e20971204085b2c297f8c4a1f64e0847d267ba11486f2304b03cf72880c78d92dc33ae458f436b266749f0b472ed0371c5a7ddd0701dd2a70578064986ffae40fb6bcd9d9c268821c0eeba083405318c43b9ffdd1053e717c938ae7ca2df8bfb4a69fad029c6de8993fff2f4be3fa051fcf4404362341e831e37be5f48081a9a439f07382c1706956f3088da20806b5cb56daed9247a9c414e08748f44681f84bea5d835af6e2f3e\n\n# tcId = 31\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 0a8e2386caa1122470b2b1c28bc9ff5e752726b52ec4a2205a45e8bdf28081cc12527d06ea5ea752de377078e2d0419b8e8da0ca5379b7d798c198e3bddfbc847fcf97baa52b2e8f03a03ca394d6e551b441d48a9a6cd005ec3c306c86b72feaa859dbc3076960cb5e43ec88092f2d0c69d2c6d55b0b8e955c514a420bd8c3d3cba6168f2c3ce212c8a04b534c8f2cf1b4cf5d5032ff5d23f74b332064a70e4fb9ca814269e0dd93d7bf7164361726d48fcb20820e3fddcbb480010b7589adcf19722d60097c2aa40ddeec5f02997e496c07b094f66f21288b1b6c634efc647301b76333c6bfe1934a038a5e83f0135d49156fa50bea7db362fe67bdf081f32de8418216717f63bb8ceca3664953aad3c0fc0629798635cbc193830551988fb7aee0b78dce22addfa3f4a830947a29fbe19464d0d0a74fb76237ed128e42b192fbd428e8d72c4b9ed37b07f800cc368e9c6aded9f1b1d45cb10978432990197ef5982290cb64e422a844e69a5fa9d96b854be009d3d9c223dfa4fadfb13a6e4c060308619c2d3682ce48c9b7ce29d2f0e56e5c95129f12f97b8857e0fc1d85480de20fea1db5f66a9a3eee6c085e1288c8a12fd0cda67ce1637d307a3852207184bca56b478fbfc07fa83b427f61320c6723bd877e1a34a38773f71df65b07619b94028001be0ddaaf43bb1f738c6cf728617bbb466161450a4ea79ac83d353b\n\n# tcId = 32\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 78fa766502eccb06f5d328dd19237803a09beab4470437f46eecb745950c6bbb6e8c28213c1a108f472098f9b955449d29d33444103ec65861116dfacbb0d52e2fbb5fd3ecfa4658d34622e88d11fd1d1d2be67ca63e26e022de9cd14a0a1b20598b1cc0d0733015ea386fe92645e15d23360f9a654c1fec8da3982bc16d2848a62494fe24fe8c3aaffbbb0e017e42de8a886617d6716aca701a706344bb00ed486dd6c4976ce5e95edfe2616154975259ff539081f8b71dae6333b1bdd181cfc93bb15fe656a5a4eb964df55d1519a66fc8023dfabf02a59af4554e77fc2e391e9645909a70684f0beae65fc39b260ea86f63da19482a8286e8c7ee3bfc93fb7e0a09fda6f8a2ac59f7642e5e88373f93e242bfb2c1665186cc1223101df4843752cd9ceaf73157eee67a93d14ad939dcbc88d9c4e13a7328d9df5b6529c9db604770764355081f703030279a9f997dc9cb9af61e0c4d53e89005d664be47d07eb6bb4c4b5e79453f7afa2192bdc5491d34d9b5b34cd9c08c18a3cf9cd9cf3f9d13e229c8611a2fc583d22b0f3737f4f1a74ceb6944c0198c88c4b693a43cdfe353778a5f5fd792c4d165811b388fcc3e65dca3565131c522cf19e848fb2a38f1be44ae4f9b3c2840ed539d8add6f11a549d30255544e3e25a8b7db849ac3de562f8d7477f0fc58e26c89b6dca486b5bbef305ea1dfe91bf790124102e14dc5\n\n# tcId = 33\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 481b7bdecb34d4cfc817f217c883dea3248f2cfe0e004d830b0a5e6002af4d94a52a7ef208df247747bc26f958aa82dde17152612005bf5924c79557b3039105238a66b1754e0dddeff2b399182827a5f24fbab5dcef1d8134193db2b7358269fd02bc11ad83ca74114e7d0f36e700eaefbce93509ebfc6483b177b58292646d16e1c66a31deed0c041884456f3577757917b045b9db6ca5a93c54258255716e022916fe656883e350d90bc59e11d0f3687ad073e3a4f9430dbdf7209fedf051b7b2b6ef4decc1c8bd56e3b6f38e0343567909282908449ceac2fd162bf019175eaaeb9c74eff24180e04747537a8e6464acedf96e557ed956104453c03a191830ee9fa23d5d8eed138d1e498a9fdfb0603456df099b1650d78ff836d13cf1bf068c8d6c9ca828b234b9076439f6ab2b4b778a1ab529d8a6d6011becb7cdddf11ac5cf2f24af50425d26db425815d7913e6f76b804890b13e5c01faca314a8d79cbfff018b4f8c69005b4db1f4dd5a2706f17d5f7558e52368aedd61117b8f3b3e8f08615396c6427deb4a53d3b0237946a4d25bc47e3f5ea0aaa5c569e37f755a9e0cf172212920cbeb31eb00a1fbf2fd55d400fd5785c5d15a52865ce512ade691bcbc27459465bc4e65a9cfb07ae397c80e0df579635ee74d0cd38fdb58bb9bd506269023d3dc8c8c5f58a3d1151171ba92b35cc7cddde54e383dfed063ac\n\n# tcId = 34\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = 27ab14c45501ca20e57d171479b224267f159104fdc8a76db33244e25be46d2555280c20e6adda573133dbfa5a3be591483f2dfefe52fba5e524106c7565642ba5c035723f00202b278e3c0c4c0ac4c2f71271ca3d55a41ffa111b9b16b38bfdf64a7fbd3e4b747c44802775168358110ad9df1b50608a1576078c13f71ddb9ef1654d433ead4dad38de9ef07bbc0ecc9f157a73414eaee1ce395141c9595aa51781dbd81fbf024ac7a0fac3efe0086d22e1372179532660ea51a593f24ef7cab63f2493f994e8836c47a340d45b04acc0efefad4eb839e537b0f9b30589adb7923a06464714dcdba351553926e78846e3662b0f8326c02efbb93b11b739e1993f4302695850b1d09b558ff35392fb6006c6cec3382c192da7ba5cbf5e233520b13b56c2dc231a607aaaddb3449c0673428bb5e43fd27b5ffa6c6b2e073d7192962d81289f3b6727095e5e7b3527c8c27dc1b5958a87f3d073880c25e022ac4e4986f2fb5f176f964722f62115e15406464270d6f3aa15dffd1203ad732c42d91b3979fb182bb4a5f0a8d1142847cadbadeedf2a8365", + "981137b87237f3699c0f0b114fcb41f83855b2af879bbca68001147af3f226fe82a2329ff7db263972730521e405c9bf408f36a1017950ed2f609a41164985634330615811b5005261fa3774166eb5a79bdda9b3e6c5528f54589ac294dbc6cc2cb0c8a76822a1deddeb\n\n# tcId = 35\n# indefinite length without termination\nmsg = 313233343030\nresult = invalid\nsig = b01aebed848724596b962d0d628a4420f25d12814e4d5ae253b3a67ea1c9638b540c678a8ae83622c0d755206fe423c29bb3f46cc52ab963ad9e8078240cb96c36becfd2e69b60644b1e4f2183ec24e53938fe2720c4c78252b2919e178b9a53db4168a5a65534cc149e56b3e93153bcb7bb96be3429583da9b5ab2ae7bd2546cd5ef2def209872ce619a2c1d1f98bd4d720d90cbf9396441db92e41a045b874061a6d2d196d3dbe19e871c60cad31460cabb88b0c35873939ce29e70e8c11cb35ddf80b5c82a47a399890cc20eb32181f732755d4f3e761c070e88b6b1d3dc38224349d26a7c77945073bf70037cb184ddb893f29f06b6864323f0963def7652692957d2ae6dfa25979f516763ce7cea66f21e2a774a8cd1e077af88c3927f181ee599239c76ca063631a53f419497efeabc48d4b31124fc986586760224621f46826e3e7acf1e83c33a09e4a6ec9d36ed286c37c27629725bb318525ba2f0332743227aef14b42c86696a44400c496ada4270cdee164a67eacdf5a1252e3066c0775d7d1bdce5bd42dcb429bf355428acfc7e3d9d0e88878054da4b5b0dfde7f31454488ac214f0b484b2eb95419395d7936d0ff3c6f2cd2e0ec1485a7c741a766656b3275533abeec8d598648d3527feefb378749e622f97b9e5c068e222fcbca164bd1a5cae13e0a5e9d0b32e8b64bad7ad7cd17967b06d18b8b5e6e8706\n\n# tcId = 36\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = bb673cbe9c34aa4e50653b50f151d67ed2c1297ecd20ae73a53df4fbb4987d51c3c229b0cc6063b220a0b3afcf5afaeb1881f1307da10a41af9588276b4649b0d023621ad0ee4df1fca2b4e7d1f605c587c52b8bdc566097a72f99c29cb8d29d6167731441429ce6f8931a331b44d33b691d044a7efbe97a31cfa22129ad3df7633a78f3859ee5d4a970f404be87b5f486e8006562d3312f3b13a934dcc48894dea5985505a917dc6976151f17a9818f6ca4ffcd2b020fe9cedf53945ba1b5b840a7291f449f1b42c56da6d229e9d48b0e51764cdcd1e1709ef7a9e2def7306e32b6e8355140220b4a5c53f38aba8d505fce60541a47eea7c7e3d8f2dfae74e1cd1725b4ed477a8771f55f51a50be57bb97f40329fde3a2acc3ec8d13f51428320a8d184240bb0af9ea0b67eb7d441ab63782f7e75e11aab72a7ac87e3fa6143c969b4ac80877bbb21e0b0c66be69db1eb46fe475cf6a1d5d46786cdd11ab88a99957f451cfc743a0928dfc5ba41764ab9154a8783edccad25f8336599ca5659758bb55f77d0b2ec2ef6f627047b7a15a82065dff9fb436fcfce4e747c2a0c52d30fdd3507835b49ef4158d77ad86cdc51293399aa7424369d2fc11bc93ca0c66d3d7a75f82cd2b0002b28c28cf3c91ca89b5115bfaca6d04a0daa82fc3d4dbeec6e87db394b67026b6a595b5965db12cdd8ab2ca1519fc19d326056fec39ad5\n\n# tcId = 37\n# removing sequence\nmsg = 313233343030\nresult = invalid\nsig = 94b660539810d7595c69b95cc2a59e20ad68292d1f381f639bb38f2f24f3ffeb81cebdabe27a56e33e7cbdf954bc00930de4afbebc7dc798a911efd3f62b2f6b8a3fbb71b94aab913d50a5f48250ec509a8a2fa3cc22cce006aec45697ef50672d44b574262422071424fa1e7a33b81df9a74ded09018072c9941d261e2751e173c6f32ffaa184fb51ad3b020b812a890fd650987d5fd374531535dd1c89dc52215c1660f71833060945a5e1a0b530a87b34a542549c1730989b9d25b0cda122e590f0304bcd3d08bd65b4f19df84d3755e993ac5a80f169797e16760d1bb4f714a762103895283b403b55271b4fdf0a8e486651a4a955cdc8e23f7287aa6f75f8c01e365d38fc4e783de00f05081399294b1be143af43904afd6d211d49ade9b78307281ffac4eef7a5624b9f867e113c30a686472f1af4663085eb8f65394f623dc029a0b5adf0140147900ecb0320bac5fe856baccd42eec8b5c9a5e69d2d6a42b00f0e60a6b9619b111ddfca6f94e845a1b8bfbcb4f6b13e52259852ea8475fb168bd8deba00a6424b6e54e1225542493a535e7a6cf01479da324f98c34403ee944a8e37f36596779b895d829b9f35f063723ec8ff2a423c1e78328de60a03bc61095d037e8a3e246e34e2e3df1b07f243daa208240edc73ff3d9b89a1db8086b1cc7fd0adbca26510723791afb390877222434982b8b19d566cb2f300d9\n\n# tcId = 38\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 3f529f9eecfc1e50f2407c70f82ab4c0a62d7ac9401e6c239063d575b0e198449dfd14b8fd732a9dc562b7ba83d9bf6df2295927dc8293c8502f1db4049ad46fcf9996b9b3746a0264517b909e7415a9f7d97d0754b83de36d16e85e201666321df84177a862634f3667fa8f780c404178e744cf73a923f470e02411d452991822d6b509a786b48a89480eb559c5ca7a351c9a383c76f2895ff80bfad92b57c80aa621bf67963dc1924a3014982ed5f30dfdaa4429e65767bca3521b450c4f9c8a1c36b91a9652598ce31b3cd531cefe675299d171112d2e591357c12fee6be0c52b192baa95e951fd563c4471de85bb6cdfdcc2fe7e7219b8d0963a4d6d4d72a3e94f724756c198ca340c1e09bc418b72ce9954c625c1547589e45563ee79cde1211e0169e94514f9f27c3eb3f19ef78ec78d50638150b41b59d369ff44c1f5e54dc00961a05600c5491f558e698d316eb0b21074422cccc11f80ca7c6f6ea8942e198ffbe9375f1fa55103717b765ab0fde89c58cedd0933785565bbfb0ced42133ff4726b5d42afff53686da3348572eb3a24f6e7b119906d30f24b5d007900d7095e4be80097f509e89d630a931582e112eabfaed2f562e4cce3c121167c454f9043ffabd95cd8dfc1ceb2c10a5e58faca8a23f32c86aed077fef810c32cd7266080a8b0238607a107cd036414a2185ef4b0328c6b1023c178d4fab5de38\n\n# tcId = 39\n# lonely sequence tag\nmsg = 313233343030\nresult = invalid\nsig = 2cae83310a2b413f44e68ca488b6d13ecaca8289e797786076bc63b00b583e373c48128d8500924bcf95b1d67fcd6961f2429aaad0e07a3a8273d164b8c9031d7b90bbda134ada626562d45c693c92847fa180af4f67dd87b31485b4a3e11aa188a69cec24f7603548fdb523c064cbaaee173cf45c82824c0bf5398b6339f55e07b66d0377ddc4282e3bf0bea5e987c556ed138bb66e3976288e0255701223cf93d11f415066d405aac2c330eeeabd84e7c7d022d6805dc854ab29f1ea6528762e40abcb4710503b44801b23473bc8f15a58f5f3cb69a0589acd129aebd2480cbd1c90018ecf36c4e2ecf82ef8076d8c8747db8cff0e0799840305d11ea2ebb36e4874d689622c223e3744356aff9e9817b9a8c0af82956bb11546382747d7cf8a9eb861b1ec6cfba56678b5a1581213898c63454db21714e2da0fc3eaf897f8f21ef84e8ee207b6c90a9821d4689f603e27827c0859a497abd9d0af6e7c070671c407bc3f864e600c43107a0270bc06585a6a14fcc7547978296f7b51dd8ecd43303ec204b6c83dfd4e731e3486014987ae821d69446b3578fc9862f13384f66afd807ce69037c5d6a388ebfa3e5ea5b9602f5e48abf21472838682e23826179b9c60ed6c5724db772c087e4f4a5109cb8eb90a70ee95779e89909ff47b7ca553b8f35ddb2e6d57049ede2879408fee0cd28a3444790544f5d9688e54199a97\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 40dbf72ca7d7f8067728e9c31e118d8899d71bb6a5e57253462a107521babbf81943428ffaaf03bab926e41a12da79961fec9233150d0af2d2a384d75f0c83ba607bfa485f6614d2d08879906fdb8ac9ceaf98bb2015af14e36fbbf3b381dff6c033dcb157f46da42fd89aa3d95208b917ebc387313013b3c550a906c0ffc27ca7b6fb8dba26b7696b36886800148d7cbc2ef6cedcd938a97a4792ee150cfcddb7d405d5c7670852b1e40b8d3bf3b4b74e208210378c5caa2071149d5a0ed6f2f8b69ebd8922e5f6232369fa2774dafb6b69254083517465aabad8657e550d7c36c2e2ae7788f1f2fe475c17e910e796a0e84f36eed6dfb8a3650d80b91d77f0442075c8009bc76f84a289b45768307f00f583bc3d98bb92e2cafa4703d52d6164ba44940c393e06e9b5d7bc91a11bc9396c910763aeec359d1a98259605edb643b0bee6ccd8f830daf123bf802fa0424cff97218ca54e5be6fa49f1c1e4a021d4e8981fede024c87b7f1ca2f3edbd3b9510bd8ccc90178449689eb261521f88d3a6a4e9cfd5b3a74d139297eaa0fb5b0fe39b0034881a11b2da1679e266cc636c8066fb7891863d885bf0ab06403066e2e00692148c9980a143517a1044e04709d38efea7fc7825fea19379356055ee0831d2dc0ced31070514fdb2c0bfe4a1ac1c5001166bd9b3939cb213d43b28e0825a503abfd138db3ea9d170e02f0236\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 4d8f1f1511d2c2f4ba2572e057ee0f73377ac09fca0eba99e32a346ef406c504ac40ccc3b8f89fc566b9ad43e62d1d389aebb2ec4ac35edf65b71a4d05d8b712176ffd3d0025636785a01f7710105d13155bffe7f2c128ee9580248655aebcb98bbf1410ad652e73089fb570b33038e91b1b898451cf8cd4e65eef5ff25e94e19acf1593ec99240bf3d839c1c01538705dc62f93709dc1e59d00c4f9ee1879d3454e68a205a83165a7726d13a8e47a84fc88ae0a9a74389bf1d73b89fc2fcfcfc2780c1e2773b38d3688b82e03c2298c3f584968afd0181b5dd6221ef2b0d2813c6dfb95b763bbaa68771029b1b19c77c75acd36dcef0b5754dd85109d4c86f593df46d2adc57238abfd2ac3a9ad14bc443a0c4ec6f3d2aa4133b1598e77a5990d456309245268ec6b48f876b1fbad84d3c20c928fc2695197bb5893023582e0403e06954c03a3748b1d96df7abcfe77d59b97451499aa8fb02a181ab68fe5a5d6380fb7a7bfc16e186f119b6ecd18c4a4007b72be18efa2ebb005430a405ea0cc1f2740c1b07ac0775f3b1bb25637a2142416588e043747a4303b7f7265a8ae34aefb7ec0cc912a81ac7b975b16651426fc0392b8850d78af728503a9ccb687249388d05045733cc2abb27929287cbb8963e5cc4a18fd64d167922decf900f39d1a9d745d995568bbc56a80ac21940a991e6211beb5fbb4a7857a4fb151ee92\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 6918ed68ef3e63fb6a020a6af0504fa7caf68d21bd87306ae1161bb6b6658c2e6d42277c9eeec6676d6273fbe9c215d9dab12e3aec042d663ec40c2a6ba3a1847d4f81e6631f40e1f1de474b793", + "18a6ee72e39943ebfe8217c4f6be9fedf801ea50d7532319f82f0c43d0bb80031f589364b0cf93553dbbcbada10ca0983f03a35801af10e373459673b1bff8d1154069828762778ac146efb4f2653ac1d42243a76036d0faf8040945b41cdd1cfa4994d4e9120b8dea24cc862ff4c6fc7b3da4f6a1867368165a5e4e7d786f85ad850193baf614cecd9dd1035105ede78d16daeb015f1c7ea44bcd2a75318652bc91895b40d9538568cf033a590106d370c778c0566c0881609cf0f6235296bba81fa78c59eaf76ecc275904947aa74ec1692e6d35e715cd09c4a57bf8ef2fea478a30c9ca8b773f2aa7ba49af33260f9d37d72eca27f67abc14d51cd8f644a163d2996b9e92ba424ef1cc7f657dc7591d4947fb5a19ac5cf8372c0b6ea64616873a2b8bc2cbeb6eb0d58e106984a3691a588dca0e0d6fbfc071cd3c5e4c00c3b0b3c245c685cd1932c58770cef8bc916ac11781994a9fb61f490fc707ede0e90ef1f700800c59d113ca7a347a61791100c60f3eb5aacb168bce7a7535d57f29ce61be9ed75f2f02cae48e3637eab25e1e26c432ae7d94e40a5ac8b6c9117f12fc1ca3df21aee1160df775e201c9d32c33393\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 5c3930a672c7bb3370704c2118883d71eec08d0373c386eafaae8ad29f6e34cd9052f2c532bdc2dde0d33dcbc4e00b54984f80844462bd222a886abb303fd4e78735c34eed7d9e72039c01d8a6ab7b8ad0d5c161d6d6a50e67a72b1bbb58fa03656f6860bacc01d1e79d99818e26793100573a3a86441100dffe2b1bec0028c320e271801d9e29427c7e48277568775fcdb84199451ea0cabf17b44474dfb632552f03118338100118495dc62df9fbb2d623bf8f09de14a03a18c0d5895844bd08c7c982fa966af224bea611bf7fa7a38e7d0bb788827ed66413ec962a8c49a30c2b01697b0246f812d484afee38fc3f49e34770be2e7ae6dfb0a92c70ed84bb516b1f5e26a04ef51a00f22c894507fbde0c35563e2c1ffb33e2847d16fa1c713cfd7f25245df18062c8c8a6d30c4244b01dd243481a65ab0685ba3cc6be4aabcebd7c8af3e5bcc7ea0c75e2f7955bc834d4f4280c31dd3ccf30dc0ae5ffb2862c8e42fbd86919e4f449f0513587a346a714699c4d1c99a28d17f4b1cfddc3a6c032113608e36cf0dcba19d743189f40a4374b66499b737d7f53bfc86cf334ab9ef9dc9e178098751e32471e9edbc00251988cc18fbd9e786290e523ca54907d3e3c6ed78c8217708f06a5bcda4e048d698453d1e0deb0d79b3200c1a7380289ab047bbc99e05dd897f48526d7fbff7cd0cfc244c991c1f962b6570c83e409b7\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 5179f20c7125d575420c85b0954d96a0fa73100b265113f301d91457cc901e04876f86603f7b5edfd2578fa64c1ca58ea48bdb7de0f7831f4f331f25548b35915167cbbfafa56ece7fae60f814c3faabd5101d82f04c80f53e3d1ae1a3ebc6e764e26676ea8ac34c64cc3f1d81a6343ce1622dde7b80f7d01f5906b1b05e6bb013f1c9ec9f60fd9a0b6220ad1ed6daf7b4a81371f3d80ee3a5f80bab868a70462b6414d700f60df20185bace77576a106594d2d5ce4b1eed154b85d779329d92b9187e181b321619e7fbe9aa711d98594b434f3e013eb64ee56cfeb7a70e0ca586e177540460512e61698035ed1e1537a635857c09e01c762809a8fc348278060b7b751c3009ffb9181703671546797a604b435625f21196b49d3cab7a4450c8bd339e2aee3a1ad8ef61e6643ec1037b593f66f9632a6fdd92cfc7edf472e62e386a3b5434a45f742461372ceb097d23b7b4f5d153d4cb4e7b692a736925e5110ad1a8ee42f992b96d4fc39ab47e14854913b7e9aa41536dba61de7f084e25609a08cda63f1b8677396778a0016445333ae370a3f26de61c607da3b1bc52dc3ef8c2b96b9a9d7261c4081449da088c6f02cd6f97222191a828dceb8d3c257ad60aed903d689123982b6d3af0b03ff17613a4b77d0bbe6f671c6cc04978714899714106892cb91fa91d912b1fd570665264508dfc1117b5d60e066ecdc494d7b3\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 313233343030\nresult = invalid\nsig = 2b822c97ee5998744c50488a0c2b47422c2ca0e13c8a07aeec7e42e0ef813077212ad5046b522898fd5d5f4a4662f25ebaa6403260ab5966599159c45e66e21e62b94f8dbd41cb760424cb8dedea67405e14bdf327065b2ee3844da82f7ae8a2ff4641b9a83ed6abe51cfdeb0c84022ef42570ca51f1f4a59956e43e3a59f132afaa4e872b1534fadd8568cfae195f6faf0fd4a405d5b2e8840df0db18ed8dbc2030ba57d2d49d364544dddac038628296b9937ff4eb97123bbba35fe7a32c676bc0292901b16fec329536eff1922a565b91b2b8ffc0985563a6ea245a20ac0fd096b227b0f3fc610f627a9e306336e42012ec55797a67a5c411c647e7d4f3422b3914ad8be283f33d654debafc3bedbd84bcac4fc16f70467c34461355396d59afdd13420a5cd5b290adb9c5d05e5ef3c9360c3ccebff652221dfe6076104e9acd92715344cbbec2b174c024ac06f7dadd34ca1d24750cb248bafae221e7d88750d3daf842717d567a7add339ef54b1b218d634caaca3a729b15561ac75f1f38a00ed34bc322e854f9bd5fb69b3e82062696e40602203f9e534295ce2ba8245afdd0c6028d1b02719962ff054d2e575cf33aa5076c75244d07fac155c3515a4ea9eafd6af33ad2d7536322f0e9ef91a28bf82e98feef675b50b223da27331425029a6c30d9ced424992b75d10c1657c0ec5c133f168304e34dedb4cda80128c\n\n# tcId = 46\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 5294afb7d060306ba815a17ba743aa671114bb97487289a092183bd41373e5e3a0df7244688781af07d118e9f18818468a837e83f2c58252da523f8b25e61c96fa6ac97434ee553ce58fded689ee82ceab47b38f845e725504b2ddd61753bb9e334a607fc45616ef66b347aec5cd44b8a78968abc6bcc0a2a19c36324937fd1eb11554516806dede4075c86b86835a35c60f4bb482204d0b0855bbaf67228d6936dd1886335e85a59ea445084735368f76be5b7fa3aeaebdbe87591451d9499cdad26f82ec680a46587d5b1008b78bd99575650af8975797bdea912932ac9398ba35ac95a615ef6b51b141f18eea88a1aac53dc13542eecab714285f5bf2ea75d9385425784fcffb33128bbe3646e5be152b2000020bdd0d00e008e674d5012170b2ded848ae57bdaf25877e333fa1c112acee9fa1498cef6b353e5b3c6da68bf49f302372bab5946065fe20b68ffda400f57f82f9e0bb024e06da7370d8ff47c8cc0098cb365ae97bba0608d14565f83a73008a454f028eb818dc8f5ff2897ffc964530990dceebcbe3acf46151b1f1111d79f99d988e89481144c39ae4902effebba8799ca9ff6d51994d94c70eacf33fd5e8a5c38c72d2f1e282688d2699a76a99f123dbca741d83aa222cbb11c85ca1019da80950c0e00a31922aabd37f6685150df7ef26587feb3cd825d5b4801a46b056b2d9dc491790249fff549bae0\n\n# tcId = 47\n# appending null value to sequence\nmsg = 313233343030\nresult = invalid\nsig = 15347a7617d234e8c94d0fecb9960972c2c99ccb33d384967fb821d9138debad76fa5dbaa4af3672c773cd95c9f0349251a90e813acced8b37d99255cb6190b5beb3083c176a6e30a5371fb32e8e1b8345dc60bb4b642aee31179e81107bfe71389bb4c821357f01c2fa352368f4d03f88e4b6ffbb82228681b1d8bbc40bad39ee532f35e747c7962a2a2b8b862939c017fd16f1f9e1cb68ffa78b491af152559376397f59ea0d13fa47a101c57fec26152ef46809244a7a1518d9a921a2f07b76e5b0269a504bd7add87de023a323eb4fb32a2d36b05d3edc840be4b93300cfce30db29d3b7e2ccdac422423e6027a8de9cdf5d998bd04feb953cd455d1b87e7cace1d5ef40cf41857e2611cb046bdcf6670d548e76015f2ffc48f482ee68aa9c963d81196ac8e99bde7e0959107e5646de07a1c44e99fd5ee6e2633b541c40579779baa2dd0448ef4e1169dbc7f328e59f618e8084212f07869d323510e88d19e0eee65784fe6b4eeaa584db42db2587740a6a89e746bac566fbe8ede6aa3e494db5143c5834454c70a1da8a66cc7382292f04102713132cf74f992e4690efea72dce8cc0345c0ce368671deb564515a43925d858f4e04d99c681195ca77e0731dc73ab14c1994a32703f7f30859a542e949cc5b07398246a2e428fb04cff95d4fe48a525384c9f03dec4d4a3220e17d55e6a2b2c241e83c76363a327d8483\n\n# tcId = 48\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 81d45dd2ed7bdeb122eded3c9d8e2a9c0aed1857483764f86e8d9453ca398e159886710558cfd82594b82726c95806e364c857aac2309f249c3f9272e2842f19f381ba9f062ba12163cec808a9d2f75f01d3760937e3c795d3028223b29ebc6b23898205ce286fc2c7345e67644db5b5fafc539a4a07f8da447815204827e53421431e978e86f61c07e413ccdad6bd8353cb0b6929cab0b309f88891ad9306046835eb04e6295536bc39f95d4023d326b93896217f4f5966d7c297dc58940652c46af565871fa0af03d9445357cc1e62ee9019a3cf0709b395db776d69063a028c04ca1a1430cc85dcced8d05b42698304f674238394febf532e3aa281ea66248b5539a33c7320e6c080bde47ee1107b107761170ee18c094a45385dde9def358360114c7ff9b561901646f2872825d63547ea3dcefa9a07be2b96ac269e4065cdddea77b8462478c981d0ef19c0bc856e00680e728e9189674fee43e2ab98b8b43f822b0d3194ca8e7df40ca9b8c795848c9f4a7e7a7ad8011e07a1ad88322c84af0cc1b979efb2c53bda8877c0bf7620128dabb993c4df1f6a6b254aab3425b9ccef47eb04c20112d04d6089ab2bf67b1fa9e4beabca33f882a9075dab810dbcde8dca885c897983159aa6074e022a2e2e4e3b679452ffc04bcef7f267111df2e7ea57c7bb593454924c3640c37487b0d3a967e56748400c856c6530df8ca4\n\n# tcId = 49\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 63bfae421bea1bc841c4c55761d3b902663c575777e3a4ef2231406600c6055f138a97d8e52a67b1edf7d47384e32c56ca0e9addb1f33e425613a4449ab1d511ec58f9b03cf8ddde8113b943148ae6456590a81746382d4622f260adeaf217434315e1ed44f52ee89e705b292a641a72e25d6393599af2d77524f720996c233540751d9d300ffd467acf58eeb1b3af0ea9805d5ebc8e6f70ed6bab6c5350088ab1d279b4ecbccb41a34a3d7f366df89f1c477981876ae70f019b9716e8c45519fed27f1599d469c93ac32ab0aeaedd37a067b6d460eb7de710e7a25c7c2e02f2d2a79a2299c6d4745af60e44cd30d804fb958e9c8851c191575b9cba358200f413e97dc435a8de7b996a935b87192a1fb9c892be426786c2a26e38ce1b61ed0600", + "aa73b142498952ec8bafe3e261c5a51d70cfcd8f179216386f71956b017fae883697fd626798dc3ffea15fd689e59fd5c9143cae2f150e54243839fb48dced3c70c4061a88fb77d971420b858ffc221f3ad6577848117970d062af3f255e197ed358a5eb7efb063b54fb6c21073ae1187659099682fb1583a0242947bb804665912471e4121381e4a7ac9b33d9a1d82b48a12c8b98e434e97eed912a41363bb66b78d92fc52dfb7c153449a06a095f29798101577fafa4d9125775621853644e2fac9b2de281c0dcd8665cef3d1d6bbef61c2c091dfa931cc6ef40ee9d5b80\n\n# tcId = 50\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 921897122fe95da7b369055a24438e31977ae5ecebec0e6a969efc589fddf69237fe8ae0761a4ea886fcf52cf3c40a8432cc462815fe34480488b094d5e156df992564afcb2808939dee01a8d9398b7dac996a76a207f7538b382e4da8eaf403d470e8ec98b9ce939ec7c9d97a8a9eadc2b7ed4d01b088b57483b9840570ef35d404f5bc47be1ee7db3a19d9359f5433b7ba5d5770a1c2c319c0e4574e7068dc0481c6446a47291f8a658ccdc974842d85658106d75a3d2979baad2c90b597b036814535b3d437fdfdcd0977f72a66c51c27ddb846ad7181930ece42056be4c1b7f4d62f081f60befadfd4493b1400c749c9d343b15356a0c4b863b9dfe92baae0a6784e4cd25ee1d352c55d257c16c7ecda76954fbfdaf79c3ae8ba81a940264bc75203a1ce4090f1e09ac54eada3b84a06a13fa5253f38f61dd5bf8fccc8b4645756f08e66f44499c4cf3a235acf0aa156a24f6070e9496ac4ee0211068fecbc5e6c7ee19455351c1037561deb2e86ad855dfc8c02d73b109a4e775a9a104c0f389dfaced039127b93c8a6edd943f8aad35c7e074a918b599a9d305b31f32c52e1a5a735f71635abb0d7833e449d16247e4d1bc1dbffceeed7c92c4b1805460aec4e2442513ad391671ac87b9b089b8482eebc80efb9eb389c4e87a85f5f53f7882bd66b42bd09b0275e60e76b4208384e6fd864ff99a4d72b39f401962e72\n\n# tcId = 51\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 37aa38b4532bc3cbba962bdd106979b4bd0d06963490f0a7c4bb0b1bbee5772fd976902c077799e6d24d21613e1aaf364687521ec8c75c763e27b94734c25a5595a1359e9f2a72641e473e70aff36ba14cd79495fdc0055c2f22cde8a0dc36bd0c4eb8d12f67ea9fbc05c282b57834b94f8704e8c229207b82bc379d959ca4284da7ea2bf6cf08c189439d765db056144f4e0f65db91128f506664fb1c136c7649c92b38bce90a4f8ab6e08290cbcc4d924c01b1178ad2993c971d055969b5253cbf98cdeab6a87cfa9983c7201ba7ff3522a292eac3a08c7f463fff16ffef3271175ea4eba206a634844fbd4b130a683a93785b7893e9ef8bd3ae73c513cee3bb1ed8da9be1a9c39b20ff0c6aad6f1f178ba75d3ebb71140f6d75f7aa71d258069a14e1d42934bdb8ddc3ddfff75b78c1cd8e1fedf0bb0fe66e2e817db92f98f7f73417ce821415a0c1b06a7ac5d1e4586545129d02a6fb171209446c7adceff80198dfd010f84241f3e18b0b99458092319f967b7064f3915d171875a2b63a30b45ae60dd1ed8af936bb48d8254e823f167a40e89bbfa2ff40ae2d48dae05989552cf8ab5bf7f571e5ffa7f9a1808723fc27555ee7595b09dbbdb3f35181da4b794995b5a07b96cfadf38d60204a8e0172fd92e0d3c8902fdb0c161f3ea3053bae2e21a9c478aea7bea42f8ab082e6e3777ee58ad797b0bfb7e7c79e0e371c\n\n# tcId = 52\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 15796dfe18c6eedb2488e75f4501f350c1c35b6af637f09460d94f3c61d4e119039c4779b88994006c3f62cb7f34f39e8ed8757f28dfafb55ca2ba207147960a71c29d1089550778b7b187a4953610e856adadcec93e166bb718cbb2e5e7fd09a2c0d978652eb89b698f2f629d71da55c2b2caa24d4069b82f4074dfad02d78ded1e1058f67117def7ceaeeab37bd48da1ba887bee751bef68ef4028c7cf4577f883f463eb56a5fe9145be0b2cc5455a9b3096d41af9f0f500da9489d00b6082689706fa01f40ecd0dc554c8e8bf6021139978bdcc25b73e11c3fdf6a74d3e1ec6260eaadf40c0cd86db81de9287b25e5cfbcb754a713eedba9e8253f65a7f02eab00851e2c189b3cf47f1d60a1c3f058f93aa644def56afa071677eff0d9f60eae8f3bfecccfb63724c618558e51d3455b7ed103ed1bab225dac9a675d56c960757cfe3609f178a13ba299ebca3468d7ed0ae53a5854134bcb3d875642224d330e4af4680fc951801392cf2c43bb8b299ba348cb91c890886f7db8ad8113b5e84215ca1be49199396be27553f8d3c1c4e281d4f911e39048229e4761197d2147276fb9d88565135d1a2767f8c8817ccb76b835dcd2b598c5567efdadde869d4ed4a3446f01f271f324c7cc943a194a4e6e1a9d56658419eaec73b0557f823a946c2f6f4dfb8505cb2620192df8f110fbbcdc4fd6b2298f124cd53041b0913e6\n\n# tcId = 53\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = c699a76b8f2743d7fbe4c47d6052887a8cb6cec90f7eb95f39256fa677093c71f604645c9d01b6cf177e6b30f825f63a0ff805337e1eb4f64d5d894de4d2bb3d0aa3c39cf309580a3fbd5415710b4d9aa015edbe4e3189ace28cad4477f2a73af8cfeaac7637cb18bb5aca78fdd2914281d6c0cda03ea136ceec5920fb258da99e6816074dff6fe625873d3bfde7818c756329f84f398a52e7a7ac886169f77acd790dbffe66f01c3820d93dd487eb3c0e222c4f0c246b99b13b5038a81120d8035c5d023e1296fc25d09a64a1782ea557df44219748c0572df48cf8eb285f7c2231e1aa8706f58e5dfd6723c779f71d87b8af852895564f869031c6696838f9a00164e78069ea87c9106d439c43d7c050ff1dcccc17a83b05cfd2b59c7c267ad5c32ac6e467496650d6fdba12ede1cda8e15e03091e628149e6c43183fd95d4bcabe8d179096879551e1259c59d6fbf9f19838c6283936b6402039928c8a428ccbe97ab523f79e70adc17e324315a740b00be8ae82c2adfdc0aeb60a840beeab03c6e690f54d4103858bca95dc507333892c15536d62b1f6b32e3f50f6faac5cf29833186fada7deba7604b1229a8c832d1685323f0a45e67d32a447db8ebe1c1d5083fd84510a5c92e839573dabbb97c240cb1d53909e1d304807c79a859228a3dc5756eba16b9545940c077133e876c6c280f08c5dde9eff0498bd5187a7a\n\n# tcId = 54\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = c4c8233dcbfc7d176ff4d31081ed91fe02a64cd00f66e830a97dfdc3ce1a7952fcac2696da6a95a54b76c14115ff9337ddf7c74bd36932e0d0abf5535b1d030ad6848f8f0184d62784d0d378d150fa8be447f00570492b6f540f88eba62917796cf9a76e7338f27779144ce3ec7196bba1f6cfb2b47541741ec454a97fc465cfbf1aeb681618837c481fb76074ecbcecf18f9ced503b5203fd3bb4c18a6a2d6858020c39d641063d28dd5d4903fe7437e914114e2fd8898b5170d3d50dfe856bd72ec1c676015a5335832892d015e39ac498e90c8d179967d425fd59663b8270fdbcff3b433fc2468f88f3126a4f3a5636ca92af919d6ab566598498130d777ebf8ca73705cc4e4dd6507f28baabebd462ca47ca24e2ad4a1a0ab930eea27053aeebeea63d32d6096fc0469adce1649132081acf55b80eeab28743bf7da9deea58d3ca0a96e4784397f459f6cbb040dfb9a6f813be0d55b1dbc1c3a0ed32e2e11ee01b4c6854cb4b3332027cbca24d0af9c2f9eaf61ea809831d44c4e194a0b142b49897496f56f933aee0e2fdbf4e542e0a05dbfc077d4cf1e4c41f8464f6ca18a9f958d859a6a6326230800e88eb6163d8056e0103b68987aaf0a601bbe5b9c50f6dda156315e84913cef48007933d4b52f100c763b7e1b78daeb2cfe7d6c92d32307039db8ab24889dadb7657ce0d36377f9e646da539747b266d849bb92f\n\n# tcId = 55\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 42d49b58398a0600e337a94146eb805b9419d7424189ced4a3cbdb49fdb82f47aceafcada6b120f6ab678496ba35be664598cc35e230491f474475d5ac55638d02c5a1ff93287a684ade443b5ef6a4715ee19680d9466db8a85d152251a54afd2d102eeb546d61ad80552353ffbf93ce5c38850c60a627df67d57fec100cd70a51558dac111972df1a1f6923644cc53d0b32c8236f0d30fabe027767c81e429e77cf2f0c21c979939133eb3063b447f12c6df48d82aaf3294d6b2fd1ed44a9ee123c7a6ba68b278c412b673787f6f6161553604d7bccaa4178bca05eb4b650dd94d73f55c7b2a2859310d406f6ea36f1400230113b3c4c6a9cf2b5b79b7906a184d9bdf2445330e5d869693537897ff45dc8e9dff48a78626e7da181ae439068f80f2bf460e9274a42d9be27115a456f28593bbcee4f2b1e8c33da85cbb0d4a25f551340b2a6dc6cbc26802457a720b053ff39d70b164a019643ba9e61172b5792cf4f90a277637ffdd9eec290d1ca9717cfae6285ae504120db2a081368e06bee71dbf5ee70b63037044b1b3f20e5dbe1749832566bf2c5788826df2983c38049b806e06e568d18637a4209cfca714626a433dfd4f4954a6e348fc373f95c59d2aa29b9d3dd435630f500d50ab424cb8c7b795de92d14c7fed75f0e2181b7ea901286dc9fc61cd887c6289a357d633c7c0ddcec38461784cb59be0fc7430e03\n\n# tcId = 56\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 28abe06eabb02be52b20e50de761f97fa5f454f4ce892484ca7df812c4dbcbab2d7163a20c0544ee454e43d1c96fbdfafcfee7d9c5114a5c6b324157e77bc283c3b0202e7067e252289f6feffd3bc287d6670f85175bac90d4d842cd902ecbc489c881abd113273cf3802ab3c4e347572394a8517763d7a2985214add76e757ade4994bdf23f7b9fe3d936eac96ebf11f13b3f09deb71e13705fb2a2c52311162eef035523902874989cd63e688ad53fb35bd5f0ead9dab6112db19c2ee186009c83455a57f6eceb4e6e5c2f46435d21d3d9f7d6e53583c35d859f42da569d0113322d7d0f91468d9c7c05b4a648b45b15ec638e210436ccc59acd2b223fd98255dce7cf75dea03cce9e8f80ebbb09b13fd2c0adc7c039ef0c5b369031600c29636a7ed8dbab4eac60a9940547e3591b48d97c329c47d86eff1b0a3f28f3b6cb213fc35bf35098e394c7f9f84277859fda51ac25a3e75dad7fdec12c29ea441612213c56d24b4cbb8529b8ea80d1c95690d540819ec36332d05ad922d71782fa48a2268fe149b6a77ea4b4f941b537c170607ad1a453550cb62e81ec6cfe8c0eac8fff6fef5e5b148c7ac5bdb5317a44c17bd9ece2a41305845ed3693911b3243b94f8a5f8cbd06cd1fbee782fff542f3dbb8367263eb1f79474d1419c6351923d861a347c53f298f2a959f6ea29015a99bf76034ba9ff91cd79a43402172080\n\n# tcId = 57\n# including garbage\nmsg = 313233", + "343030\nresult = invalid\nsig = 606368a102b687b3f77b23add45ce84f5ba81f69c55f327ab98c8a2af52a89d332e202bb3531a31394d683c691cfe3dd1087dc7001bbd58aa6eed9b22933c4e84ae303b449f38017dce2fe034a2cedc6ed4b2d29c8ba95dbabbd7337dd797429ddb2defa3410479bdf13b120f1ab1663f01fe13cebde75545ff950f374bee071a35d0078e0d11e56f4a73738a205431b10bc54e935f097c10559c7f8cd0fae3f60dced2ae9cfb90f641ef79c627a0eefeaf04f1c5d03c1a3e2dea991c7e18be5db6bd821b07297b630e33b58cd8e1d964935cc330921f89d97b3b14960d59d8a228fd1c7ded2728e7159a5121cac987c8afe63b58616b8b8db82942558f997be8853b3b152bebc39f251223fde61e05b6da00e273e54b29cfdebc54b2faf84280b09881def19f25ef3d36a13ee4a30dd30f517f9e738123f090e69a87f98b51b9a3100802e4be126b36f02dc999b1a1d83481a8903e6e87bec9c85182a6573747dd00d61c9daa35954cfa76196a1cbedb50b9491e41c28b2fd3cf69c262fc52307f97870fad0b16ad013ac7ad6f9ce9155d9c67d0f5e197aed564fee6a12b0c8c7fe3adc5e354397d80d7ce9afc2516b101f67b061cf0ca4842be2dc535fe51bd073103fd57b3872ccebed778cc2901abb454fbc77594e85c5d02e4d0d388e1e3ce0e3ab5b99a321de242f6631b70b44bb32a004d167ec248e6e0a9c55bc01b6\n\n# tcId = 58\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 578e32b1a21efd13040da60f84b4b23177693f91f0655042a485aa72bbd8ab5c9404ddbfd679586e11ed1115784c1d0a052345106b8beab6073258d01758fbfe4dc6c6990c0eaabf24fccb77ca7bf85e7b18ad25817adeb6ddad6d85b7d7cb3214281676ebc2adf0a4e6bbc9a64e1301c31d0c0c55dccc050a798568525bc01e99fac22fb44dd636ea08f388f3ac0c515f92242cde081077e88ac47b13920206834ba3e27ff6fb4ecb7c364d8c70f66cd6df9f0e3a4742f72a8ece5a4578d7f6d54eb7ef24f6a693ff684d0358802d0d842f7ae8b29d934ab657265cc8af115da8b8049ebd8767192db1a876f9412d021ffc7b8e91e2495090d556a35ca16cd850c521b65a28468cd130f0f23fabad041385b3232583d70a904cb3d7b6d7f1781b4267bbe27e40d91b2cb2c18a8da23aa3dd6f82b3fd6e9325dfde9958a284845958f5cebb0bba2ca1f34e96c010251286fe440e6e395117b6e2c7d9b007f13dbfc4d5d512fe66464264e6f5c502bd6af825bd502f8bcf21d1f213ae69cfa68f16449634505a6e965bd68e959d5dd247e0944ec26e4f1bc857f1b46f55ffc4cfb85df6130cdefb147a65025fa6b12f313e0b893815876ab575c0f9647bf69f45f538bf0ecb8593dd6a39aa12ad3420187d291cab553cf3a4c801e282a5db349b54ba15fbfb1054e9aafec5b45ee83634dadb7d7a50af029291428f6556280b09\n\n# tcId = 59\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 9759ffc461e0e342fc0ccab8bf5f71a528e12e368d45c371dbfd709e7a16d146c3b847b2a9a00d54b2eb91ffa080b072a630c0645f2c8c6de2f4f815702a754971651914ba24a9c35d895e747745dabaaf21ac9b908116e56a8043702b151555a9f90b33356cb46b6989a4a900b8b7911c2704440173321293ca6382b2289f859bedc8ba6d160355b029a4b3f30d4205b33416b41e97c2cb5848acfac5d52006ef8d93638d48a2e0fab5dd6d6009e1945463e7ab53809ef6aa7ebb297b5b72ed9f55c43df18d85596bada1b014a5576a195a99c9e6c729ccba224fd46da6f0ad1ce90422318b0a2edeb135b12fd61d0ed2b56be2cda4b4d9819d537bb10079cba8d44eb401498c194d1e9eed31604cf79ffed10f8675ee31d57dd2443afd43d07d55b7971ae50c38b2b00dda28f7b99d14d3f885b70762ed54eeaa899aa62c738035a972d0b6ad1574bfbaf0e8d2fbaefda5dfd7c64e44e5a81f1feaa3c9305013ccbb10af2268c6001d0c2b3d0edbf558c2eaa22d3a840e1cf678de90c341d310de3d7a3eeff1f275fc92119c7e13e9c7f8230da11c9acfc1ce44d1dbf3766cb83e1a335d9b2a51dd2d7c5e9316db24a8d1f9fece9b3e19abee6a54694a0b622120840629710eec4da9b1a1125f0a8d68a3a4e95e8d5de298a308857563add33499e50aa09dfed1ec34c103dbcbe400daeacd8d0d1a526b922afefd2e421c54\n\n# tcId = 60\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 55c9f8533f91e175b2faef772dfc8452afdd8af6558e62d854688457772785a37fb25c9bdd54c94374ce39f25d08ae61d32e42389a01c7ebfe19ad81f85b2680b157ba885f77bc651da4744f06fa06219f791c19e6c65a443d6f8ee989e0112a9b2c7a50f7180474861ccff6bef6f4d625e06d072b987ab6d5f4e49397a1d6ab5de81fa17790af6c20d6cc173b7afd8a986e885db4596d784196a1aa6aa16566e4fd95ea1acca6abf75e76d23bb5bcb9ff77703924c6cf0841bfe20a9210c6b039837765fd88621ac40966a7fff636d8c08d6e01aae0e6cbbe6d939273b41fded42cef520723689533b9c9ef880cec7165b51d2b2661abbaeec93655075e8ba0966387770ee4bf6dc0b5c64f700a1627ddb6444331d3d84a5f049e4313ed3408b3235f906cf1f71cb8a659cbb9d2d21bdb570a890a84b4eda357f5798e491306a146f9e48548567c21ed146082cc827c298cc03c7e9948ce0aade3c663ac1ba599a0aa4794f80507c5948f68c72ec45815b714cbd5efc5cc44b9b8143a00dab66bbf96d8caa34d89508b05de17282fcf4cbc16232123634efda9dd797f38d54cba71f4d0c4d610368f7687dc0d042dc85088f8f8da3ef01583613b2a3093b9f0f67c29120a6de03c92de3fa40078d5145d9331c69ca03e4978bee78418ecfc85410a19092d2eadcea18edb79849b838dd991026fe3bfaac57ffb0fa4992e41af\n\n# tcId = 61\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 622bc03c975ecbcf270d4fd0a81e245d2d2bb967211995550d2599b1ff72b0106fb155b2683ff4b3a61aeefaa4b9933a5177d45374eda2994c3b5394106a021ba370247559fa1217fb401b6a57c0c7f7af1dbfbb73ea8c1a8f60b23a65c1bbaaef01f35c0c950e70f430ebbce87ca13c2429b8e7a99bfc2fd9d563e60c68b0852da2db0acf752a1fe73f577fbd62a6c06f479e8bcbe0f6eece671644d0f650254b0131381b3b5e55529dda85fbb96ca8e7668d55acd5dc08dfbcba9962ebcf9e82469a11e38377d47aa6ac47e9a8985d35f0a23296da33457e3c95dbfeb57378dede44d8be3df8c88eb953ee82aebabd5ad5e632f5f89aef6aa7519a07fc52ed7314703cd8778672968ab6b31e5b371859fcac5267fc568c1339234eef70b22590dcfbb3678f8e91483fb2fda6c62b2dc38c7db4538d3c4673b7ab32806f8251b41be88226def56d05e031b1ae47b7375dd348081bfc34b655ad5181f83f4c7866510e947580c9f79d7cec9a2284ad169dc5c12a135df8f8aceb2bbb853246f9bed7ba175dec9c5f4aadac16c9b3ce74383260c9c71e88ad54161edbda05cda6922d906be8567d1dd5a78191a96c164976c0f6078d36468acc911f4c5782841273f7181be5781ad330d4b371e2b1888f53c26824ac4321efabe3a63a70775ba2a6b123d82365aa08aa01434fb973feee939ddba69d1d9ea0a4cf5c8750ecfb98\n\n# tcId = 62\n# including garbage\nmsg = 313233343030\nresult = invalid\nsig = 48ebe9de8e53729f8eda91b65096655ced00e42b9e60135730e26f454fa2ccfb75ca69fe5d199b049200d5eb092052df1e49c7788f0dae5b1e1fd0b90ce71be65c3078adc9f2ca1690dea7c8c742070449f5f2e381711f64960a3c8af07492a7211c6c4c130b51cc02eb4705cfcc5de189e59a4ff1f118bcd05a99ba5bda03d789f573aa859df0f6fe2e09acb2b48f3f2205d9a1b1a576d10a3506344c82dcf636013ae464dd694c299f6bf3035a230ddc08b9bab222ac4ab8eedfd75cd00ff7574fd351d3908f9c625188916a44a57c3da0233043fc4c20d2cb2d2a02f134764982a9a0004324ac2e8cc68ce7d22cc50fa792923c5582321ec980231bf00be12fe58c942584689d2174260558c2ba96366185de989149b4bea1b45811ca835f98293f6da83325f9f7fc24a67652e2629e8b429ffcfdfb1f5f8835d4e5fedb6f37b0646c3593fc2085d6166202535d16da6eb67bf63c5de8972224356424e230e54710c25d0077927564c35f7898766a6f9c4aace37037c438a6d795e575bed7df883e8ec673dd7b40e801ca1fa943ca8794f3edb528acae6f083985f5fd05b2d8eaecb3db23304d6ca405507b0aa3ea0ce5dc3db24e1d4ed5567659a51aa2f0c32d5653a78a9a3664109b47c2ca8667a190dd5879377e2a9749f45b115dd6a89bd98befe252178f4a202479e6bf1ec5efa3ca4381e66cb2e69d56d68a5f9039\n\n# tcId = 63\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 584e9969bb4b1cafaa2378ffd159216abc171a48487e7ff85533efbb00c31b133eaf6b61d1bc392c0eac00711c2c0a5815319b8e12f0a50c3f357d9fa419df1f1c81e1746ca5f4fb0d304f269f07d4041ebb0906de301a6ab99f8a792ffdcb26ed2fe000f8a719a4987425628e49559cccdaa74f56b3029b23ee6be01da127bb6c7c47067b281ad8dd47ab02ad93c87941a01e3369c7d21086279d45f2cde90faf493933539ed526eaebd254b03a5c5b69af634f81dbf30ec8b9cd2ee5d5638e7b9bb9051e9dbaed1895afd992db9cec16b30a440c640660bffe55621ade0ac1ee1f61823389577de5b76a0b52319a42b80c31f457aa9bf483a9d61820d418d90ab9a578560cf4b8d27ef68c338b2c5a6c7b92efa493ebf792b24218911b5acabf2d4101a62b90bc0d860c66dd871a9a748a4adcf8307f676bb49da703cbc24ca190a2641ddcf7e590f8b93b12ebcedbada2020ffcd25492f1683909e8f63a2139acbae12b9b077f2e327a990503b7ec079d288b23dc1ec70df44f821869e106d1717d384e8d8e55e29143042f91d98fd14f403740d0885f353519f2be192b172d4a0ae3399324ae7620514029bf60d1f80d4d228f3378b6d093729aab9af1defc2731929037b6f36495f764ad7b023517edbba0f9deb31e82456c98f7d1b7aa0a308af1350c17295208515b6055a6d2bf41e9a98f193a5568e9719523b6dc7e\n\n# tcId = 64\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 2eebba04c692db87e21982dab4776e0ea15be89e1ea2b7096225bb3d4c7ff8eb5a35c0ede28f57b052eeee4718a1215d4767b8d31931d52e9afb52e48b493a451f32e1a90564db40bc81ab8a1885b049609abe7d0f2e4ed8afce0f7b7d6fff141dd76a3004c2bd9dc8cd903a2bafb77e8b9524f38a4aee393a07b787c9527cc7f39d2254f10f1c834416ae9cc689dc71dad489051bec16469552714601fd5c059fd076c2f011a37b1ab0acf7fd4729e232e68dfd79ec0b6ee87413ba94ab4b53b1619d760c8473fad0d5d6b6921cc0838810c911e891d3492c2eeb008a1124c2", + "5a2a68c48c72064f4171c114a16effb23e351614cf6bf87e63df60bb59a77acf769924ecc1a7a6cbaa9cb29d69a7ee5721f1e3dfe8820120265195b8650a4c3f5c3fff2c66658a79c3f9e1e9b83985e09b42b0907791f65ff0c46bb10dceb0c16d0aa49c8d1b9b5f094eae440e62b938c842bdbfb0d52340e8b77da5c728574f0a090dd3e5eaa97a2c3fa7c1402768a693c7635ca722d81f101ebf1ad853ed6a3a2fda270c49e9afedeba199cc6dac0a329eaf47a35ca0a304286c5e9269d6d82cf9bc3aa49feb6b775e82a1e474d6bf5b40ddcf8f976f5017018ad1471ad50fa1237d1af971c153339cbdf9b6ac5bd4f348838c94c5d68183bbf81c87f3a362a795a714396c0e2c458bdd86c3ada3b8049b175d540d36b5ff48ea6f51cfd0b0\n\n# tcId = 65\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 72e0dbe8885928b6f14fbb06089957a13e57a87fb1e1de0edcf859b35bcae036a4986c939cd93a67525e960a3863ef32a4eeecd5544f151e6838305cb7cfac7ff9a5040c078fa09b5b6b3e1297fdccf34ee22c69079e912a67acdff40ed543def23bf6185fe12c91b29f73f68baf91144d4298c6200941f7fa381cb70f02d951f261bf1e42543eb82a93e94c50c955e90d4fa70317b1d0d6d6ab771a6a4663a08a6b22248f855eb064364fb7f96d755ea62debc5f6b6f08e6024c221eb599465ffae9ddbb0db1f9a81f6e140b24a36bf16d4c02908af25478d1d5e8f35c2fb088343cb51a9280dfa5d0795957cf62ca1d4c51289e64c7b14ce178ca6ce0baab676c629f363d4a6ff8fb8395a1fbfe85d3de190252d058e2be5f1dc3f8a9929d5cee2320cf0945a82be5e649b83e8ede3a3b01a18259a5b5afc377c36a2b038e5fe5904651619e470a083da069efbd2dca6725c92f34f574d7f5d467453f1802b970211f041caf78139a41f671d7500b1e6659894b4cd7d1af04e6d7a3fc6359430d4680260cdbfcfc49d46d8ff1801eb6f28b32c1cc4278750529328d10adedd792e6397209bd0ce6db0c965df029eb835bcd3b5661b083a4b46b9616525da7f5783793ac5e22c0a58f343aa7b11c05c4ed039e19a072549e31bcbc6bb5f6889d3c28ece7f091b6abe7fa5a2d952d9ac2408127bc46b773b4dedeb78e76bdcfd\n\n# tcId = 66\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 1bd88eaedfb86d2f11d9db39d011b4c001a20a726545cca555df9b3ba46f032dff5a259fab7ccab203a50faade4db09302a5dd3bb1f0d854d96baa47e74e59d42e54b94409a2cb63aac19aa2c601d49821c7a0cfe5f612fc00b5ac3963b19298bd4a00eb3eb8169d06b2c4ab7cef1e3e3504ab4750da995019cfe760ed976f7c996df4a353fb1177121a7b3d6165d08f6fdfe75716c031f49572c2b2981a770180723a62bd337d6a8916447cc25718c19e61122b32ada40a3948d1dc12b8a2940cb16245330e721e251955f3d48c7ffb8d0dba29c552270f5d5971fbc304729b7b0ce405ecef1e38d42a3823ea27cb177e85e8da196d8a07ca9a105f4e6ffc4a857d9a3a03cacfa097d3de68b2948dc29b19cffb847d0f1ebed4752d4f31697fa3adacef16eca901fa058efdc7a70338bd1541e851009916cf49b79b593010986e4042f7855b0c5a4a3fa331209e46aa2c7e6f1f180ec4e1ea6a81fcec25bb2c7f212ac4a7ab23ccdacaf81ac854d7826ab51cc991a1cb602f13e0039abacdce2e565c8709f4ee23ea3b3b23186af7560050676e905590fa9f6b40f0b874fbeaff6a467163a50cc1339e16f79bdcbf0b1670feb1dffc3cf867312861053a2908ed92be30edbd1ac1b3376c5fe7f05e27f56d72b08e7813c597d58ce3681cfbf943ce086db930f82cf0cb6b131169cdb8c57bee130d30eca2deec14dc0cf3b174\n\n# tcId = 67\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 57b03e4921cdc73982de748d94eb594090e998ce4ae520cb801b881a5b6ff9830a28b4419e7b3059e919bc0b27a5d020506f2db02c504b7029aa21a8be8a225ca9acc9472912d00348313fe856ed032dfa2814d88d7925c1f9e955e8ff4fd175b96e8fac7a5c6d749bb68073df1db6dd4b54b9cf87958379e327ea95c2b68a3fa8bd3aea08c34d82d82ac4e425fac275620d29704d3d636a5f6153b4b10695af831e694dd11bb17f72dcf6e72d807d7b876bcba57e49040297a417183f92827c449fc1ab162fc76520a74f03c979516f2ce46e2e25d07744ed93848a2bdebe55edcd978ac7249d0a61cebff1af4611a163b810c29140c93f05781b613fb046d87302ab6bb9ec68612c6e61481984f09eb3b57a80866e7085deb66130d24aa74bc9d9b44d7bd93e979c50265baa9a2528e98cd42668084f0c6d94d3740aaf55b66183d2b899808d418eb18e1490c7fa1224c870d9236e68ee071191dffc084a6590ebfaf7d54bcd2c7f14660f73fdd57e8339af64cacf159081bb4ba2a158b0c2e4795ea140383e4a0edaf6126721670919bba3fb41b4eff070608d364c0fcdf17c983938624d2eb7244a438a605a87a45374ddc6a5886a5550e5e2430a29b956aa24f2a217937ac96caf55488d9bff9956f41dfc00f017b9b53ff2ac77e69447ff53d0211745f0e9f91951e6f0b148f0488f88f70906c4606b47a6e6490be868\n\n# tcId = 68\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = b67f4a92151f8959f87b8c02ef7dfcab2a34f0d185432b277587e06fd14d00f580f66453ff4bf9e82cfa4fd399fef899f868d573b4dfc75b1b537a3d899e8064811417b5df57e02f8909b6fa45aaf40793a7b3ea3bc7941e785cd47e38c941d3b5976fcae196e6448646eb7d3110bdde27193dce9a199137b33374390bb6619096d219713981cbc199eb427de73a715f1e63e59c512c74d386b60ca716bb96646526445364205dbd102e05ef53d552ff293603554de2199e470e9c5db18aa885efc16771be1b4af38ef6a1d08282554afd5fca4f7282dbb07174843778aef52c70503a97b8f29acc72ca9becda1bf35ef6888c50905cc49d9747cc244eb3f023d822e977eef43e4cbea91993a0f9c9698ab45b21f2cc6408a55aa370662cc0e6238a2c18f77cb3db699828bce9b7a782b5448fdd0c1f9cd18544386f863ad07531385b9a2b5619672f706f22ee3dc9a20658178347135e9d22f141c0b759c3926ad8dcd9283a19c77791324a94f9200d53e0e7de40fff54494803559b0d72f5bb8f8a7903c8586c8e179a1787c8653bc54a3d1fef1dfbcc8e6f7efd460e5b255e759551b21dd72d4c68a73be8f7e5e7eb94cf3790d0aa5a2406e53e67b4cd32bca5d57b463821441b7d4feffa4894a2b1a1db26567256051d2f195b5f8e7ac676706788093b222e5617455a4ab45f291ed2382f12918a4044a502598d23b166d\n\n# tcId = 69\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = c69503be9745fead30b4fc7dce08d8c6a0178754a15f805dae455ffe8f33262105017502235f8ab25c13d63b42703d9fdc272beaf4f9553f62832203dc1d45915d64032496749eed244b798580e3c2594c0cf3d100e9c600912dad5d777708b0a883490b28e5922c6061458f57730eea9c6b61c6c6325a7c46435b3626cc9d7d33142ef75551a12e644b50115c4feca83d69406482b0d7d4e5ade8cc8345575d61cd7cb4e9bdd2efa07d2c998e2a1c205b54445ccda6d54a885eeae9fea3fe6fdeab8c9ad58412cbdd2a3ae4b8290bc792bf64a7f36f8574f22ac8839a7c4fa68c23d7bec8638c08cc7b501ff0652b272442b89692a5ab724050add8cbf9b229f50e75ffb88b07c29f3193d1c90bf4973ba336f70b06830202ea0dc69fa965f4bb05bfcf9c1e896dc832c8d4fdc98242ef26ec72df311d011a7aebf850efe276fafc7ebe3b7de020863e9ca1a3bce423302f47487b17e24ce9305d98bd2222d27404ea8a2d25c688c85d0640d96c05a1c2b49ce27abbb7ff0895b3fa75a3d649a2e14872a2919004f6a1a833b8a15ca91db08d5a6261f63fc3c0cd8e95aaf78c328d60409bdbcad741c9858924a844ae55a80e1ece9e9505ab8f301d9b8ab6a5d49f90fc46c09eea0d3b0ef7586536712dc695b2b1053880bf6282344098d6658a94f9d2c81d931cd1d35441e57f1c24d85150ac37b2280033f16bcda1c4f86c\n\n# tcId = 70\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 727998d4a172ced0ec2cb6d2d49f766837c1dfceff9fbd35dfe9e357a4b9b143c4d53a8214a39000467bc8c88bb3582633d471fdecc58c033bf3f66a29b893cf4f6777f58841e467b84c15c2c5007e0c322b0a51779490bad134e905e83bb90c13a2f0425331b97197d6485f2c4c534e3262f78dbda5a5adae63901504fae86d25ab579aa8b1a3f2451d1b8a02c2d81f425689c34cc9abb8d035c0acad50f2d166c58d1fcb75c251615e48741a38831da8124d821b2a369ebbf7c06cc5fa2c78950640274675d1ac38530814c4b0642fbc895f966bd7bc1648f526a611a979df403672b29d37786281311d9d537a9faf74020b8af03df4bea590463f31aa9b5aad6c602642d012b65eb70122a40e93ac059d25c6f7ade43ca1257bbfd17b29b1cac1ab46aca85213c9399e9f3c2bce25b9709ca52d9be29890a409090e8d4356aeb85751c3a8d85a6f49e498aa63e48f6fa08754711ae2e849dda0a784b29ed39fbc92cc54c2027b2912572da0242d480c2df0a347ca68f4435405c14fde7e07ab61860924fc9e2f0b123a7d1dc9505cf9219ee2e5fc0e3a40240cb9398fd5583b48971842e57227adf50927c7b2ce06fc52007920582a7fecf2a5848e8aaf44be1fdf01b39e833fe2e6874109154d321a00218c37e368c2cdaf2bf743fbc724b2d4ddf772b7dcb5c0f50aeaecca9e0351b93be126ff4f8653df60a21765c71c\n\n# tcId = 71\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 0a0cf5f50cbdfd0571c75579da50bbe83c0f92f154534ad5682a5e4b5ea7da1f0b6967ccc0e228d03a0232901493954451713c76daf5b7a550c42ad6e9dcaedd42c6212c20065b09b2be9bbb6d8479bac00393ae00c82313efc6fd3de3e3e48355e232be62c89ac74077cac1fb83dc7315723d879c9282056ef53b2ebd2570b517c498f587eb23b7c1d84cfa7aaffe4839d8ca39acaf2156425ea49134b41d4824347bbcdf7798f7d56009e8def5450f9519e3520e956357f11abf364077c287ec249e54810757300bd9b5c4b525a998b19247d41301bfe3f01ef89356a7322d0b3effa08c7b6c996194ae6b154ab33a97b9b35523314e5f5c8bc130fe2504fe08316449f46dec845395edd389ee5672b5e8e3360bc54a6c45d02b04150e86f695afb6537e6d1000f8e7c65cc0a2fa1fdcd8f823e5d8d972a99fad864b9a7423d06e8d4f5421e439d54e3d250e807fdddecdb65705d98e0200026e1d46ae9461534361ca41f6c68e126992b177d9692ecc7c77a68df09fc74159d382e9943ba85a62825f700ea3c8010c385e1fb2f4c2d1755c54cafba826055c0a4d2a2bdb2093e0b8f6fd009d448b09806ba4a3714937c39a23370e99f96bd293af486", + "674d746faaae76bddf56e43f1a0218ca64891d0cb1ad8130ea80156a32c0873bda12f372ae58cdc2766bed53dc27d81e7f16487ebea46893818b434c7c9ad4e1a60dd\n\n# tcId = 72\n# including undefined tags\nmsg = 313233343030\nresult = invalid\nsig = 5aa65a18332c2b515bb70c97059bde6c6cfef26b9c7d874575dc2fdabbd1176199b208c3ccec06bf52324a0cf13222add3b65011bf54338e139b91602fafde29d01df109540c057786a20a211283bd87b051cd0c226cc6d5539048a9622105379db015326cbbc1353da1ee4575b5635784c67dd9fe2e464a949f84f9926f7102f92b2a3109a77785a05416ac162179ab3ea4425755c61c5fe04cfbf735318415cb17f45c90f86b3ac7112698a0efe9e903fc816ff08817e62d645437359781098efa9b34c0246b3bf43e10233d55b334ced1d9a590fddd1190b9eaa56855f464d8152a71eea9dc4e9a82f021472b84f34b48fb418a941995ded70529149acc84d50880a8370e00f7c9817b86ca8d58991fd517e3d1123cd46e459c13fa1b07d42c64e32e1855225739b4a29d28e0c550db2080d1e41451fb1eaa55cb69c7d7ee0677201bff841ce0d59277b09daa91aaae042ca730d2e835371d6e1551c72fdde0466188278a651178c769769c4c5e83f7b492bc01c94dea2906dcefe48473da6e00b47823ee1440af77f058b0b3c53787f26ac1879ca0ea0fd5fb4dde72cc47f22fa0897b8ebb0d594163201b6d1e565c6a9070abb42567f65f5d252b1ba537c496b2688e1dc864cffb8863727e5311daaa0ec54397d725b6fd88c5f10c76dd4878a8981d864358d16764d82915064c1df1d14edfc0217ff13a367d8c9634ef\n\n# tcId = 73\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 8901dfd3f87f0a88bd64a6dca03f9b9143c12558838d7c4e8e8e7683f0a5fe4d89a6e92898ae653d7d54ff54f388f1fe6b3d7199619993fffbbf239a46bbd76573752a20fe645abd67856980c541ac70cab0f61bf08d35230d1c3dac05d2a109ca3695bac4525fda535baf36263856fd5060f95c9fdbd84c23f37fc8f00d9c545d491e33c056b1844b68cafb3d380563a9d24bfb85cfb871c81522cf70afe2d872d5cf98fd857abb68e14144651afcb52d3aed6cafbcf8473d63aa37732c3d6ac04439e0bdeb8708758dbbaef40726733c65a0714583ae97e9d61c7d59fc03cd5a8ee0201bf1e20c75c4d3a55f7c959b6e6b37168a5ed527d50d7ab4312ab3b4b20a57e8d4e1393abb77bd898bfe43385477850580a461a663f5ff587c67b33f2c7510833de38c2cf6188e52e6414884d10131fe66c0576cd0f786a07ec47590d777a9ccca9b542aedb4995da75878c7e56605396538972abf182148acc26f7b2f7b9812c09efcc7150f31e661aad6136a6148757a2a06661821848b2ee0bbdcc158fe0d7063a7cd7e65a519a0e97950c9cfe2a2550aa1a568b0cea62e16a9f96d75d49e4b0db0a9e6041de753dcebb1152f51b8140bc3e567c1fac0a5b37fd9ba91ccde9bb8c9d6da2b82f22d10137e78de24fd2ebb7a720d55cdf5e8375e3cf903aee907ba530d953c52f236b55411c082fc956b16a31a321d714a67e82a19\n\n# tcId = 74\n# truncated length of sequence\nmsg = 313233343030\nresult = invalid\nsig = 977e0e6d0d2153c34a30178af3fb99efb9edb76799ff0b1669bd0eea5b5e87150e84e5313a921e074108cc2ae6cbccc6ef0e0219af4f226a3e9e57f0a162ed209feffd5a89e65716486bcf5d6a79bf926edfacda0bf4091746345fdfa7d688aff90d9b3570185f664d94e5216bbe0de6143480d7051a36306ed99599631efb6a916e61cf49a03d10aae2317f758f1c4d1c46097e161a4ccf7d1029b4778645d5cf5e8d022681db62ff15c3854349727d7f65df9cd24f5cace6fc0fb131571144d24866be5509332fc77c3823779340c95637a003a549b3a8e1e90d8a3502e42cc355391371b09946a2274861a558d90dcfa12e1021cc1b98e96796264f7bbae5f6a3080ddc498a8e810e112ce6b6bacfafc8326e92956618886e2d3d4081a54339c895805d9242b7146f635af6c1f17ae1955f7fe49f45b148b65fa7c616cf48b5627de9f08c609575ec4581f0062f1476076b359145857325d19c0c22c30ceccf055dbdde9b562a1adcbaceef8429a44f62fb8f24a512d6ee70499bc3921f70831b57a15d7a3c023b18b6febde581d7ed5d3f2d587a4af0a3ed1f87be027a1cb7cc171756b170a65ae7a1fa4da832dffcf7efbd37cbd4d98750d437377cae209c51c049fbc166e381d4f879cc50a5dc3b31bf7d693c0d613171eeaf9e2572267236b08b655e4a068826300d7d92d370bc348124e63f8b871fbab0b2d85303b3\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = a91c56df4ca300b638c505771bf7b9ac3ef866ef9b16979ea0e5f691f5c91b886bb4e3540be2eb3c5dfa7a6ec11c513a62036766dccf50a36c058a9d06dbee640c0830bef3e50747ad7de9dda9810309856bcb634043b0907b7dd70f50f49b8fa35e2181c4a7d386742639f049a758b05e8a66b5f41756909d8d7afc31f63eb4b03a346e3a79d3ec22ffcea5c01632641e469c441951765eaf41c09f5c7dec10f7aa0eea85cb991428c496b67880b3ebaf13397878af0264a4276b08d85eae131553c6eacda05c5cce34ede7e5248427e390af8434e567a8941aaec4ed57049df79996de2cf3355b7b16531e0bef7ab3a3d715eaef6fb19d5e03c755cbf9dcd1a1d8ea756c6c75df8080963a9bfbdcdb551a53a7f4ae14d9469d93f92a8a509a687e96ec567176bf2c0766f03a9947545302b750d8901beb87acc83b6eb358fc1b82138741b5d33aaa7b6186a96f78f28d1e83aab719b6f383fa2e56062dcc50aafdbac7877ce8c2cd794e72d07e6b10555e06ecdeb03ad3de8f45a65b4a654ea3dda0c8bedab17ff55768ea45b17cf66ed9c00c8156ba86c5ce0228d4e5996b0268f3e19c75f14c34a3327808015e46cb347e892e88429fffea65b295eefd007ee77b533fa2be245af0bee8f175b6170c3b9d85cab02c40d15c6aeb7651c325caeba8fb17bf177b38d0a06abbda7030fff4969c11bae68d0027a79bdae1f340\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 563ccc0f74bc3c6bd12af3bfa0a290244bc017a3b6c452eb9531906f5ab092222dc5eedfb06b129ccf1eeff16d5f3a241be62b671098393661ddf88d1ef751e5cc46d90118334961eb989b8c6f1c38f806fe636c1f8c1961604b9cb3f4275d520b7f037b4c6c78cc3162d6cf3caa589af31f77a8edae1489ba86a2b36652a84a861e34f480783ff10bb3c9d1bd0794abcb77b785a9d214eae906a51e2d65fd30ef722bbc687fe8eb43df347f9ede204ceca53f7ee9525b5498d04233df06631706acf65338a88cdcb9201607ae6f71f830653d6e3d320a362248617ebab100c6450dd88cbb01c6e3bdc183b8851e2cd2780ebdace96eb88d2c5672b28d9e77ddf9146b6ca17caeeacb472840d0e965a038e08e437b0f8a1402356bd6305aaaa9cfb8fea1282feb103cf3e2014259513f1f43316a5610d767398eca18cf3bcffbb1ae179df35ad4342d89bad741db6cf2f0fbcb08ad857a738d306c651e6f7eda3f9d0eeed6e6d11df2c0398b2d3e0cba596fa1891872021c7fbe6c99e0ed545f147b093397b2727756f1a0260a50fccab5ac17cba2926ceb3495a11db8f1537ba3530d0d428644ae8721c67baf87bd2788fbde87c7c907860c277030d3141a65c57df025551ecf385c12da746ec7b594305bed042104922751eede193dfc9e1c9fb4785bfc622328bdfc5607dd21a6817abe4c941f2ffb63657f8797e3c84973\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 2a7439f30d8d4600ba553f9100b26a2c5861d5d5106410b369b94801c262d124a262fb17b448bc14114f1dd5c24c36e0d5528c4d617093df934e0523f4adaa4e262c2fa1cfe59db2f51336c627bc2e2a11b3022bdffc649de8690aa22fb6b96f90f7573d0fe23ff65d95c81274543a01ea654728c57b64c717f0767b800734aa84af805fdaf2d04946303c80286a487b48638b8972e49d412d351b9101bc435dac70f28c78dc1d79986e9a8dd64bcb11c8fb3e90d2c036c5b74d22157be15ee1ba291b97606057a5926b84eee13fffb3c8ba245f153d47b48d836828d71a5bcc02ffb12fa7ca66b576d2d76f38643502c4e529605f833b1d0af3bc7a58f20b5fabe63de399693b728b3b35db26ddd52f62bf6268c502cdffe883e8485f4a7c60e438e1bb84070c7adbe021a6380989a76b72faba576d20c4333879700e5142522589dd2c49e539b7d49f1293634b18f594d3f8106687049cd4093f442d34654e82f20bb8c4b252287cda4d9e69223e22e95a717aa5008bfd232ec5e2b85c92ec093c6ec16a7b043aa5a86c136a38dc9d1c7fabaee3af9f1b77fa4f4517c596b129d8fea402c856f041af5f98d235ecf2e6894798a857fa3e295a4a63c4d5d7d5a5d3fd6452775cf512ab4bbe7355f71be5c07449e0a8345bd6c3960a999c3c3ce6681071f5078f331619a9f5283e01d184782b7e1393c8291d0c409094d45b84\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 5276a6fab88bd401b451eff5d1a669c405225e90450584c5d6d2e4c05f715249900d10679fd58d736deaec1cc26b1000d6d0e60afe374981790dc850af0ce22d1e51946605783e37e8a2e899a607fa2551fa76ea9b20780b92e9b263be76e8b1da9a725e58b20a34e5013ede41c8601b466a7d693ea2b903295f0768fadef5c0ec3f0c83f659fa2db43fba1986bf3c6c7bb8bbb851905e62c4bf9b0b8f9029edf9f737ac3060f252cfe8c46b4bc4dd58f2ad8bb55a89a0989d9f2d684ee4934c1bb6859d17f8077275ec229e8bea6ce9e2d9383c2b89109380ac6335a46017bcfc57d500e5833cc404fb81b25f0b3ba28d71996a345ac8c9869167521daf8af6c89e130bbc27d55869717e5b7e3eb67f1c6912c6e9cf262544ac8d7b76ffa24bbd078c12c09f0b26e4f87aa227820aeaf17102180d272291d7c65dc40914f42c026cfdd5bc330b8d0d5c948e0c93f4beff299872f65da8790a9ad33e7a3232220b684cb8ea87d6855aa4c053c98fd20830dc89f66dbd1046f816405490884f97b9dc0ba5b5c2e9c8c0cd5dc13a156edb25ac384ab16bd5921008e823050b166b3f727efbd7f65d3e4fe741dec24d7e95f6ba707d5315c71749fdbaccd16b6e98a0cfdc456257878a2138ac754ecd96b76b9b63644c3c40a31f5553a0dfb5ce7c02ac8b9875a0a24b0f9b655502af4d5c5a8d714fe708f0e1dc188369a07f927a\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 8e96d28c66d90a67a5f09894c5b2db57b24cc18480fac7132ccff9b0b0da5f3cde652a919a7d20270083bf5da9635cb1c1e4927b8a2238e00c7e828c9fc251c8a5d326fd8e4", + "6f08ff6c36ce4b0a8b368806612e3172bff7534b2a28b365e4f74fced400efc93c1d4adc7483cc270b9d1f30afc7d25430b36e2abe82e3220f040e221483447f6d5b153eeaf137d4b2f5102a07e4cfa336e53e71a624236e3def136b479190072a55ed97d15be64bd92006623009b34cbd5197a3d57318c9754b90b105b3fef38db1acc0b8c3325581a1521371500bea1c1f5212d95f3def741d96e3d5387c4aab64b0a0f584b33fc00039e58c526280cf1aabb380c66d3b191ba11ce20b73944d76a50e8547fdad2d3486918a104c4622a78493eb1cec2ae748701ea5329d67814f581c8576149034e655c9d230dc72d93df0d37a0a4b23178220ec2a22dfa95f99ffa650d55d73c09ffd95fbed23407cfb5042e93a2baf9074ff85cb0efd306e5ec0813df08677dcb75e0c067559760d310a17c7ac0249c5193ed1823821b210e100b130909c2296b2cb1feff4e58f58065e8321515f99295d93400c133e528e44e659530e17b8b92156f151e49574774ff3e05038a31d6ba247efec4feb0a1efec266d5a90d0643fac6e390b37b26ff6e83c5f5aee67bb9c229b8362b50f4a10bf37d47df247841a28dd20d6d10934f6204c8681df0cfb1816\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 685f47587011d1f43cf865c9ef73b28f633f3a93aabc67ec69b6f3556b78c86e6b64409652b936d327bb1dd2bf96ece912d27b08899d11aa7dc9a27988d8dfa61f6ccb87084e22425a35dd57a43be80d508c04bc8fd18bd0348c790b1b33b6b84d9ddbec598ef50b739e4ecf1127457410ab2410e3164f313fc185f1d07dfecebc543eb5a9ac30cffbdd56d183c63efb7e288677492aebf212241a492ee1a736dc2d9e31c0200630d00a42b808d812c660ae2b4700958bc7f2f8223dc5ab0d32c788be311170608dff9378336dd152f4705ec687e75d4beec24c9495d801c3dce72fd604c3ebd50f0b7b6095f54cbd6c9b7a167a76649fdf98d627ed94d1307463430e4ddd99d4f79221fd0af76f42d94f5f472daf0faf63d9bd8649cb998f7be39388b85b5e0af9a3cf71fc8e72360f7efcd3e96af14601fcbc2d019bf4cb62fc9d892b070e191d7d68553a01fe04a3a46fce2ac45220e40f4033c07ba794bcdf31d90ebfeaf2da93f2bb7f51e58e884ac453e2274da963c60db990fed394f181f9578f7165b852ae2a9bf51415c89787b440f358e7774e6c8f2ae0a52588f13334cafa9f71c4262016e6995a76c98d5afe3e62bc8d23bbf62d3f2a3ed019165004a05a16c074a021b1064909c591e84c4a547c90de53e2bdfff68ef170660526708fe788e4b1b98d136295113112ec13f87ee3ec3f2590bcea4c34dbfa6561\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 1b68c793bbbc11aaaebe1b09036cdbb4b754b5d18858127699a1091714e6d07687b5d9ea9ceb4d937c8c09db1f919f33a319bbbf62efb506aeb085387632b9a1a016061f0ab9aa2b717c4602c5996b42e312f04854ee21852ad9fc9bcba137f59c981864b608d82fcd26964df05832983991cbe6bf74d09d851f95d13650994f56e8fa3204bc8685f16a0e7006918230a30f025547834145774758cec92d25c1b75fd143e4166c255aecf9af8189b90bacb4d08655d861b0ce2d58894f00b6eae3395a1d692cf7091f43885ce8220c5a4ea8d312625b650377238dac43da5b8ffac7420991d00b70453fcf633b844fe630e798b8ded1f27bc170ba0e7565a85299158bfd9249bc5d006f3ae97969f18334290b00c284c8a61ebdb1bc8c78f913f724f308c6f34d1b36ffef06f09a2ff5efe4e0f1cc6b16db8690ef0dd07cef88cd2b56c25cbc76d6ef2a0c1c7bbb5145eeec4ead730faea578f98c6fb30a4751fa15dca5a09d353c7afce7d572b8c725a8cf82386a3fe49c4ae31227c165a93fb821a93b47636170a2e1379ff57bd4ec495293eff1e0162ab6926c787005723fc58fbf3f4b23f466eebc1916c3d2a7e99a1416a06a3753284f02f4066cafdb9f6cd739fe8f34e49737b2989b37c4a01ee133fb41fefea2d437f4814f5a3ff433396800221428e420692c8d70271755234bfca374c43b331c20e3d8c77d11863b\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 530e5a01bd59e922ae4ac02a57974759da8bd978d6331bf58a522460a4cea7cd3e78c76987ed9bf39f5e6e0a0127d950c3de95e3603fd9dfa9d2f8daecc8f84ede2dbf99f29fae1a73da64c6ea602a90a529d9da1d8b1c2c1575667a7ffdffb8347dba3d13174f63c387966b3661429fcfe8da1f3e3287769b5826be0ebc0f6bf04b47cf5f0e6d9f494f6073ff7533131d17d7ce859febda32f8c639b9e2a7aabf0e82a3da62aac20864738d215a862c984343a639d4caf91fde8e4289bc23c65321dc387d8dac38765e4a3bfb1b7feb6360fabb62b97efe71c9fe789347187562ae4a6bc35c6f842f7e8f1bda9ea31b39f58340b352ed31745306c4cb5dd24fe308bafbf1e654bb8898333ab6b2fc96ccee80a50c44bf8af4f77f2c146ad5f552b893c2a036e3e7e64b1e6f8ed152ed1ac66390b1b828ea9c43645d7f36723c111cc56a4f7c973c0ff99c460e3f82169fe2cb3d30e518a38f1c1e2bf4bd113b85a30d26d9ab03a803ed4cdc59fc7f16f095a84d663eae4a3b1c3aaafad19c2458528cbf37ffc46d5b1595422210c9378bad7ecfdd222260f12a304baf3113e0a20d40a1202de6a2f5b8d23a8bb2fa12aecfab4d8c6c402ac417f6ddbd27e17f4fc3f5349b97f5363c9f74b5200d8e96e1d38e08dbba1a68b8d09f115d0bd277c39bc02ecb13ec6ee590d0ba1ca3effb97021a4802e2d1ea47d58cc494a68f8c\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 26bc4df6a3ac430e14349156fa87159cfe3be489c4f4a3bb3ab1e9fb6a24224bc08c8fc68d31c2dfa7bb1eee34486c189cde443569fcb046837278b85c2a3dd5d79a32ab234d962d9c3397901dc2cb9a9f2a4efa607b2d664974fc0ed8b21d83b6fc26fbec342aa000e798b398da25aec7f3036b4bf5b996268ca306497d49f94c29612fda4013e51bbd5f8ebd7ed6d3cb9651810f1953a0a0d91f21d23d2193d9124eb7b993b92c3f39b4b2ed75b9a6998899a0e627685244d692c9bbfbf57a32d2075066e26693b66c2d6abcaa06349610a30b9e365bcb40563232f5a618975d70b9ef3d2e370ebcf371e840400bc59cdb8ed8816e21295378668349f9b6872ed38cceed565b37d67f7cc53ef3048b4dae2ff6e6ef05c54f08da2b25af6ff8971b1e9b56eaf59312a82e074fd03ff310d2d063fd604807c2e1c9d8d10f1f63ade7df27f0894daef9cf713bc1900b8e9697bbd19c8ccbb6f7e608cd751f6befce4d1672190beac40e81feaea5987e8be14ef53f95af53a766c864e1e20922d745ad3db7fbc03b0889525a00ae2e748a9675628439b5967ee7dc3f3babc24f4497744940448806af9143b552a304a25f9112aefaf7dd32ba9cac33bc8c3e77f7133ad325cc83a10a2890c5ebe73cab87e756e16d7f17721af90c927ddc53d448adec90932dfbfd28c031e497953f1b75d16fc59f44f232eda3c6d9a05d601b05\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 313233343030\nresult = invalid\nsig = 62f48629c7a24179701c9c7dd3ad6573b147a46ad95364fe9b061f1a7a53f22ca9c94b628fb114ae94219eb443ce43847a948c04b9c9e865d06a508eaa53ea6e95bd06c0d678a99c68eb5d637e1348669853ed27aaf9eac212e10e63db88ee4ae572d71bcbaa9559ee698af1464e8c7e06a6089fac21e0f44673b59ad886870556b6aad683457ec4c8000a7213544de10d493f70a67bf768472c06a4d8d013d246cb6301c05d251d06e396297510bbd802adfb16c44d5667d49784f390cdd51a989227db8a0547b70139cee85fb98405157566f48df9bd99fc93f05164a3806a7a73225b0369b66b1a5b297184ebea4bf6e6d003458da70655aa78f936236dcf096d1bf2afae7552b42cbfa127343ef081a8a63cc65f2075b33f01ebde0c4c80306b36a70657becca450f3d720f5c0855a827e4d43fc2a12512f5f19301ba404ec46814e1bbfdf81e41dc03154283df7a10e6c38a89d2e1d1c43a71cf19edd6e4fad846ede85d42faaaa84c1b5380be55933200ec463f149915d65321cbd21ffd57c3afcfb84832c9b81e654f9a402d9c5b305fd3bd042e99a33dfbb4e3d6f441ad9646bbfb8473c9c01707ac4cff91e7ba9d5996ed795a1d562a174cf117b22ecce7e679e474e1f7e2e305818058aa85a80f87efa5c2877db870e4d784a3446802339b9f8e1f09e6eda2aea8c447794ca16a814bdcb1877c29a5a0e99243f70\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = 1f40a467924354f3025b37a3c5569518bfcc634350ce3f82ba8ba961d2dc9ba4206cf8b99ac3838e24c1ad80a8a967a7224ac47d3b3b141bae6b6ac34e2d5e1c65305038ac88f83e63e1d59cfd3db23ebdd8e3d32ac2a8c57b16c367540e2eadf9ae41a9fe284e3b0a9514557d468d17883cd55f741fa03f4ad166cc9b40b96eae4ce3546264582281562357d66942d09aad87d739dcfe6510295d08189562276a0cb11b38a32acd0b4372fbcb8ab19ada423416a99173205aecda49447d0d000cfbccaa8ed870416a1ba8401ad61cd94d4e99a98c4789f7af5afb24685fca9ba12bd7052f69517b3024c3b1fbeac62ac04a4746731cfe00948acb95aee3ea746776a90c7a4a54411432adbecd6bc239e7f629f02faa24e55f42bc15ca566d7214494577611d173746ffb3d59adc68fb3dce801993f779a2b6cdc0c10cdbfe5af0c99a2edaa23dca3152585221cc17ddded8474dc77954a6c96c5f903d179bc00603c6e0c9b809ff31bf31bc4d91c1973d29a0931c8dbdbb70ed09730f6c8274cc43adb64004bba369b1f6a9c7be6a49ce36a50121c342b1ac60ee51e89b73afa1afbe52bc86667a89536eba90d5cf036849bc2c26e7c45cbb7f919d3c7d139a3c7c249c0b8943ddb1da3bd875e5aeb917a9730cd20c58994e965f7dc35f26d35642e08210a82024343289a724709c9eca3a468b5825f6a13eb2e22da584634e\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 313233343030\nresult = invalid\nsig = c3f770ae10c10780d0ba92c89a1fcfabc248c0c4f8cccc3c6fe3e2887b543661e946c0ddb982d5b7cd89ae430058cba9fd40a321641646e590df3a2cf86b9645e347fb368c6ef5695ca8d2e9a9a327fdc75ae0d54010f594a050c9be6c5c0f60a4ee41f29191f7570f6dfb2d17d6b0933a22bf7822f520b3cba26419de1a91e39fbb12a84bab08ce9b1deb10b56e576e7be5dd9b746118ca8c8d991255bbcc34f9c7ba317f5e1190637c585f5a4f10dd037a498176b7d84d33a0370da7f834d443dbcfe1e5f502f09a0ca946eb4e6373dce383c9ae8714a5ae45ff555ba407405057d60dbbedb0b9782608a92f0710547330e842ff95533537e01272898f7a4dad71d4099b372a504a0e02", + "770efc85190e0987fa7bc49a3ae482905f47d23260a698842c1d94123c79320d042c8f39f5ab91c241bc7ca834aae345548660617d0d886d89cc91780e070ac36d67dd28bd48109dfd69f7229077dbf490467ff14b6b57dcc05c3e46fd8a2688f248011b539d2fd5dc2b217a0b41d57fe667b936158be8c91c0044c688e752566a383db0525b9a72d9059b9d2793cda58dc9980ba8f4c3557304d991d190c935e76a9eccf50953d04d561b5fef7e62b1368fbcff1797c6cd6768885c9bb98e6876d556b29a54e7e535df63be53a4f509f5454d492bc92be81d1bb68516e35dac89aad54fb10e286b012a0d41a04f75860c7e03113b\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 339ef221a9520ce055fc25955bcca1c6565b3f889fa1c2b2f078923905e9b6e950af0977e5d81bba0d8e39a5efc6a21ab6e6c942ea872d2311fab297d550d8444848ab12f920affb56ff2f70d750c3fcc4d5e0e8653b9f8cd1bc1a44985cd6c62b43d2b59e1f08e6a807e376295fde08fa32fc6ab25e8668a8bbe72c8e0332f83ba64e635f1cbecb0e06d548f24821a673a8b4600d45506a2e84fcbb57bacb0c47204a4006b0a5ac3d5e2677b01ec4b1461e4e862232010559dcbd177ca1c327cc2179b8c62f4b84c2bd77b8115b221ca83a1664daa100c060caf945dbce345b1f16c4c95f3fd8fdda21c1fd274b548862e751641d0152fe2be7f14e168c911c0400c589a6ba879995d017a31535a0dea22d29d6df8ad7d3f7e98c5f3c9a6c1a29f4dfa50002e59d39c9a46e03350dd2eada66f087e517dade0f72fe33ebd6af0859fb16d945aba9571d8e263127f633d14c68a61da09cec82dd75226388ba86c3b9499e6e5ab1fd34797a1f9f4a054d9636665e7e54442b24edf93c3b9e59119e15e0bc9e6d390aa42f3fba32b3c2dee6e66499ef065c0a0001b489e56ccf082264f9ebdb9ce1fc0c2de37c9fe81ca2c8071ea4e79d0cf70bbaa64e4b07af3a57a54ed85bcbc21cac3ab32ff623f38cbca65df1afc17ab5f6c7e7e54d67f8fb768a8c4f32d1a69b7b0ffd2ebf811a72219a9b0d26778ffce5da7cfa53655d57\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 1ac7cb7cc3dace7b4cb1f0900ad3e3d0b246d19095bb39c2afa0965995d5ebd42a4dfb6bf8931f8f641adc2eb34dd714b1da21c3c64bece5d77b3e2e5a7757fdf885ae0a92afc7da4965cc4cbd83cb5ae15d7d104d92eec701fe676a61347f11d0afc1bd4ff3cccec0ba5bcf47615ec6f4ff6dc5d036ea64aef6dabe6d47c2252095f45f9f9165ee591498328131a379cea3548f0e403d4f859dc083124b67171256cb54d6d328c206056bd00e3168b1184a8c21704ee9a4b990221c37a524579d0ce74703be382858d921a8d8afa1915d6cdad89c753d828bb8afebd22eaa0298470221260fb7ad9d3267fdf6840e4efe266a26e591b55bdc742a8605debe986ef689f5bc9a0c131317f06daa631712c5c33a604f5af4f6e023bae233a74dded177d6cfe42bcbad3a82468fdb7f60da8f4e11b61fe1c635e0a9ea0eeaa8265344a75e34d66d42ec85c817d86686d0d0c19d8419ecbb119d023b603ff48f22e39bbfdfbab66314f8f0e3f22e750b873336c37a1612c075fe7959b28dd39362749062afa4f57e08ec8dd8781f878fd5ca8707b07417adb72cfbf8fab72b21faddb8a1be9356227f4738f56f03212f4198c2e5ad0888d6cff60796be3e77d85425f666c7ad8a2c684257b922aaa6f1574d469a6a7f9840f4851454f5772161c8509877c6f3b6ac748a56a63b0e4d8e07942efeae3fd88d239cc5341261defbd83d\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 272f90a1f74f89ecd56326849a40d81bcb2ceb3cbbc7f961dd3c2a86fa187137b913b034012546e518e8cf9c5b07ce126435675f1f9f543e49f470a9d75f129d089c6c8aff33d19e51101502ea903f7b271817a58abe086dd8a2f41ad3aea277f17e26d3932c0fc0bfc506cdd19cd86cb41670d202bff6d55f413036c94520a197c12b58c3cbea1e9599e2ee80e361dad7ca71439a5e000720d8b0c979aa7f37e5637800f23fcfc736f8a9f687e2cdeca40936caadaac563a1a66c61b6e65ea3a251446ff0c38050516396aecef1762eb1d821b5c3d1a8dffefb29a77a8f680d240dfa98daea7d514216fb9dd5a9aa4e47795e6885c876b446df905a690044a85e30bd19aac5a32aab889e12663e5d68c2af656c12815c27ca62d28cadd5a08ef7c745a8dc0271799362da62dadc289243cfd8cdb422a348d23cbc5f3de64d2183d3d7e30677a665c656f60a40c0bfeab92442291ad1d15d9ee46e437df9391600af277bb2bd4000547dc4fedea3b0dcec337dc6db5bf2a18ff8561bf1952eda654fbdb865b7c06ec316a9244708c3466ca5b67356cdc702e1713d8a1591a4407e0f8eb6185437c2eb3b599c4b530aef6ec5a700f49ac3720f0761e69b97b71921212a75bf9c29ecd97ccbffa7f636860e12f54899ce4608cb774f2fb99b23c43e7f12dc262e593ee941a1b987936c16ade689e43d56ae9ca02fbaa0d4d7e9d3\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 90fceda255c8612798fe325acdca9c8dff227bb9564768155bae0187bf834cc4c03bf14ccc9a58516389da715e70376272dd4112150d678983878b5a3af8784d1302a04f7f3dd7dbc47e2deda258051fbcd018be39605f34aa0af4bdfc3015de49afa72e966d1667630992c31aea0747ddc925ced69407c64352bfc65c6aa48b0236cb0f9e7869f4a408ad90f2ee7ffe5ffceaaa9db1c778b568a3c6a1844d1af2051c81c618d3327c6085b18beea8ced2168921f63bdeb67dfee4ddc481f247237cd3a6e7ed0e4b6b0f2a332899ec6726cf90eb317b54375122d975868d785d2a99e42a3914798a0378ee293f6b12ea6de0370ba30dc8bd33d4f0c81459a21a729556fb02456a2abed752b3e0c666704b1b3195d269ee43a9de6dc224b69b2def19fe10d247d0554182eb998b49833fa874c6ce3a2148c9addba17db473c09cee1b910316be921cbb19b18b1c2aab1ce08ec1753080aeb17af2b4aa88a2b76474481bfe347c744dced8e7c627b4c99c490d6f8a24d049b7fab93a134a485127cb58b817ffa2123497bd4961722a1e23c5f9a275d9de6fcb0d0e94992e7903d4856a92c85696fdac207d4716896afabe0cb9e500650632088f1d1a13414aaae61ea0a13b756b71e88711c5a810b2729b7320cd58698cf08bf9d6d1304154a06f9d8c6f2e8362fc4ccfb9e261ebc3a600450f30d09cabd456eba321f21e2e9a60\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = af7c386df1cba24f753c589d9756266b6473ca3513b51cc50c888103636e9cc1e0f2ae4f74220004ab02c9f734ffa96b6db34556fdd27a0a6ced6bd0f695f4550d941064f509185e4b3dc2e71de6512725fbe167083650e7deba3035a5d7bab68050d2a0bb1f3ac6e13dffb43db0f6355cff1809e0450f629a99975e9368213853a1bc49538ece8aa64aeb1dfd837ea7e7ef54845bccbb8c9a409f262004f55c5e0a807ba3cbd6f3c43cf498852765f740c2c3e8ca8b3fc4c43bd7d28f6ec2d29bcb0ffa8e484b4d9f6f26c75add460a3b98c0e911a3ace448a66d8a313afc2c1abff8e4f7cbb30bd7660659da17b4c7e7c42764363899881d43c3fb306cc0cfb17c7b4d2c1de8aba3a43a5bc16431d8630bdc1338421c12d65b2909a87b7f82b9e8a3af44a28cc762f5b62b58737e07ed34ef550d553b0447f994405287a2542befed0b2eefdc552a6fb94e42e354928eec6c8e93e0b24ae6719da20dfc2d6a4a79086379fdbe5dfbd3c35e4ab219481f8a64d33ab84a94f4b8b57a174788dfaf9e558798a98c4fdb52ebaefc0f1f5617652de0aec1724e015381ef7145a15245917de42cdde83188dd12afba47cef5b1fcb064a3a6945fa4d7c6ef37ea582d4036d6cfb6621335747fb6473306b27fec80afffc4deb77578644637c9c3f2cee11a0eb641b491c84e9201fb2829d80e7fb0418ee0b44b76b7c2940edf29a4a7\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = b986dd481be76a98b5a23ee494a8264f9cf2b37e2ce40caf5a7ceaa1b2a5cced5827a652c998e1c26d03b48b77c440733d1be048a651ea93ee60695c34b4642a88d848897d89bc4f285081345f54516fb9705c9a90589115ddd0587544ec6a1984a4a72c1b6d36f2a57218b647b57315177834169b29d0b57326b3f4cd1df7914b088f48573b6b32efdaa678118e85aa6aa319ffd85cdfc4ca054a0f04822d934af73a7aa4d5f51d93b443e4d8473831b31bcd9aee22fcf4a6234f0fd6e27125905bc0bed0d7274f0734bb1f51414a5151fe60e4510e158e98004f9203c7a711bb2057d0e6aa7066469f900bfad93c7f9b1eb87459900b915da4d1a59aed8393088d5f23ea4614551607d8cd0c0dd0aea75734ae23a75e93e50c09bfeb7303fb704f3c976ae573f363553e89391d6f65035c613831abbb5f266cf40ad5ec1ef2a4871d798575216606ad76a1634d78abe9f16d6b2cc4ae3e99d1d43ec25e93b52c547be4a30a98e5d6c180e44a7c2db4eb0247b2b42993552e691cd9eb22547ff3bc4ee6cb2033549b883a58d3f50e121a70d51070b0d37647cfb6227764ad2703e0fe5ea61108f4e7e3d3318fc87a9ff59b005e7a6d232243ae16d4420e9e024d3904a6e54b30815a5bc1f1619b4416c2baa464a61cefd7a6fe1442d4552238414d5b2ecfe531bec9045e811fea37f8cd2e7a8345bb309cf17654cee8884c1b\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 5b3aac4ec4a0db836f2686221ab82071979fc1f09facbdaec056ad60e952c91ac77efef520fcd6627f5510b04b8651fe73c364e5fed835b412c37e5dbd81db1bb86838bf1cd865132fbffda55ecb18b2c7801be854a06aad0e1c2f0b4cafc8612ce40cba4865c3ddee40aa43782833f5ce775f2fc1be9a4097b1dd0fd5c7ea1afbeae7577fd70cd2c019642b74e2c94a259b26c34bcdebcd68982fd745127d0974a6397b92e9a3bd56ef74fbcf89a84546daf1b97b85be46106e6a6c91488694e25f9ed88ed136629ef0409a0686745c94322787dbb0df7f78d9e3424f5f47b24c6bd455d7bc1d89ce95e0229041bc985a6dc49695719878c28f821cd1aaf3cff0e23855890452bb92de37f04e9bb756fe62e9e4529e5f01b7b6a4374cd504cf7882c7377a82dbff7b4b87184709166e52238792368392c25d9b28218bf8730e6549cc9087e28fdc7bbcb0b6fc4c752b0482ab3b1c7c62d64b53fce9cfd558fcbba96c39c6a3d50708c0c5947dfc62a764f30feb857688e004d2e4e2c21523231dfa4cfaabb982b449ef516f93c81b53ff1a8dec51a441c50cc8a20ee5e2a19fa120b992e58e3cd5ca57a30f17c7ae47c6e579a572a1d667128e4285390f2906b69923fba414c6c92fadc58b87dae9378d2be30", + "ad3240a27226530cb8afc70292eed5af4037ae6c0c28684fe964d049ddad06305ea30ddae64d0a86094339a6f\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4c53c7b94b6eaacda889c647202d90dfecaa05e75a1b78041a08526869cf299a48b306577c1a1d1efebc7dd694e45155dc434e11627a7e7246aa0703a1592b00898ce4cb40e672d35ffe4aee140a6bc1df6d40c560da214aaa637d94b665763a7cb34e1db10d0f6772debc15d05bd0e1af359b53a521fd359c7e67e28d87c903254bba1f0c48f95a8e4dfdf09ac7afa2fd37a836e85b10c2cc6e0e0986a526dff679d3bd9da38e24e1a8a91adbe57f40ec7fc713792294da7682008be9cda6652254f0af7128c5c5ada8f7d5530ca4659b19b3a2b4b900776a9e06fd7fbf96a80320f9cf52d16936038e151e1b4928a0232c7d0d69d7c16839cc975ccba76bf435f50521e1905548e68302e35ba6642cabd84facdb0e9e5964ea683e1f09a12939abf306564bd97bf95f2fd266ca17326c6bf4e2a3f52a32fee4acb963872893f502e7a12ed4e97080816d34a112f3b5d184f7e0c7f4fa06e716fefa909ddb8d04a07c13f23b9ac919e10231e8bccd43a91d71ef02dce87ba6728e32e6dd92b1cfd96e9f3997e56aeb57ebed6b5f9b33ef1b6e4fec0410053339a5e7eaf956f262bb0ee6e828204627755a4c7bfd29e0485cf9d38f459b36f4783a6888639e0117b5fb72505184a727e2f3c7d7117d0cd4ccf621c670b33b709d165b68374dbd1eae9ac58da2826336fa01fea00f2a09ddd7a32ec83ba4ce0cdf4108241a7ac5\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 7c757f1a1ca4ddc9e1b4cac3b2166c6b8185de0b1214c48cf1cbafecb58147d5649e741af62736cb3945afc90e720b3d0d4dae820fe84169b2857e0bed0119593520f6f6d0103490526b9952e62ab19544509c174de8d2683722f83a332b4b2ec736eb85dc08faa8c76ce48b0ce51521a967a559fac7f39767ec4544f5a4901fc4b3c7fec298a843eda287a152d48ef75d1ed2464de565da4b82fcdb872633509b67c6b15be1ae709539261595fda30b6f46423aa74b4e12f505c2f160082b4cde448f59a70137aefa4fa4ff3f146a25a91a657c639e4855fc97c98d2f21b52376a881554d39a23acb938ba15f7f63f849b20465e1583c27bdb32952635e497d8f7321a2d45678cb8d5d3317f8c8a593c84aa0b767ec5472a0cfa6f7f4b6c32cb48dd11eaeafa25b1e195545a602f3b3cd18ac318a48743e9adc8ee1ee4134787d9de88b796340c46862d7c7ca97f142a28e915985308e3f703df70d88d72bc22404aba08d6bde21e2540a3d58d49517bf48cc0b3138d1ac08aa427876630199e11460cd6bb04bb9bb29210d9880bdd05b95ac9d769f00da72cc2f7ee20d3cc10fbb20490957022837656a69fefa83c5f0873aac068481921fe82482c05943a6607ae92c38806f5396387617c26b9f330c52384bc0e818c66465ff3650c1d3414d95bb528a768c82a7c076fa4050b353fa614a830bfb0c603a5d44a01d4d0e72\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 313233343030\nresult = invalid\nsig = ba1157f9b6c0d31a4c928e0c3dae7df2e13853eba781fd40605da2d2e71edbe65adac0f982bd940f52cd816f791232ae056d2553f5c82027616a65501a2ad1239d5c7b2b7511aae7c385d72f63944d1f1fcd9613ce5ccd192e674d22280a79817ab3308c3dff66c0fadbe9c0434f5318fcb9e1da396f11b4ba9e961de9f18e5b2ba3716d917e38de29027de43cda232f50d6ad948368a0faaf96f28fc4bea690d347f80e3ce21aa0aa49f445d3a4a1ebe5640f9f16e0b3d8b24405b1afae7d7eae6339ceabfa538a7ebdb66a4da5716dd3aafe0305c928c12175c648384ccc85e425b202e4cb34410f602a6bea3be79038ccf90af5357ae8ae842fd46359225d56371b05146798f04e92869c33c4166acef5bdf5b433c191a31eb4d4ef8827cd9bfe40345789d07f685f5d6fea483ace17fc8bddd120b245e7362a4516cfe4c192f3922bb9638cedd5e6958a6d2cb5da85fbae98ed6db16208336baa6950265adcba00b0203b669b62494bb56dcf3a417fe0f7d568c1e0ad1c11137d5b5736d344d0e5b3451721653c4bc9278284d9881ddf0e0fee8fcbb3f54db82747a0d8ea828229e09ce7d5459dfa590e4ad6ea2ac31dc72e68768a702546f0a98687a3dd45f2783e1fca8617d391598a6f9aaba7c829dc8f6e824cc5f9a7df39e209d12264205609d49c9958da2a3a59e4706ff9b119bfde600cb3a1127a75c77c77e586\n\n# tcId = 97\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 4614ec70586ef4c0e772106102b65652fd9e90aea637b0c808e6d28ed8aeab18ab750d5b7b5d34f918ce863eee94fae4cb67d8d30951db4bfadf62070436630a495e108f22c383c08107fbf7e363d5e7f7b610c134617c527027490aa2582ed0d8769853f9447afb7444aca2034a7e0258585c49aab54e6124ecb9f95daa507e86d7dde366c9fb2eb0430b7a990f1f055df4b3b6c2cb7e353b394723a1672301a43579028a34a92235cc26d2a15d5c7b9935c5b98a99c752badd0836e7902cde06abfad9ee917052814fb9d8a775516b948450c06d3e33b612e848c0f7dd7322e8b264d17bb67ef21177a93b13e9fd54b70cf5737a6aa870caa9a082595e70e6df68fab028e9cbb7f72e9d48c2f2106a98a8298dfddf575afb3fe266729c3346f567dbd3cf2fbafb82ae5851ca031c6e8259d822ea8623a3b63dd1de7c266c89278b3bbe2d3384ebd94c7557c63d08d290508cb77ed80ad97663540b7209ac3f7e9608be2db31b837154f1accfed92e0124fcd1c626d0d24db9e9c5a316d3e9fedf2c62fa55483ceea4c9c1c9a540d3eb8116422ac4229f3be8ddf8dbca64151590b3eef0411aaeb2b25ca03ccdb5309b28153515e9d343d5def471d5c67ac2ce59b62db6291b8753b0ec15038b8ba5ed0fd17050cbafebde18d78cda92f21e162ed72758f68fd50ad4b84b4a2318dd06279937db705d535d516fdb0757241a2\n\n# tcId = 98\n# dropping value of sequence\nmsg = 313233343030\nresult = invalid\nsig = 904acef8f764eda821c39c4c75443f43cc00e0ab0cdcc6ac9a3ecbf21c38999d04c15a9b11d7ca9de9c221b2ad3a233f988423868f5aff0ace189a48c4452c41d3cfd0bdfa29d6652cca3685062fd6d59122a37cded790122d1f4ddecdacfa50605658f23c2013c31814c23230ca2adef7ca10239fa9d56a141cfd6c4f48eb87b08d7fbf12e9e62d27a86f82f229cdad78ec31d1146d339aa6fe06261823f899f418d19a3bdf817f086077d7dfc8fa1b9f96586f0854279795e9b72596f25872f88a0e00e91ed18545823f8e427b2b4dde5dcc110381b77d4e5c397ad9cda2052062123b32293a1d73f7b32dd98761b9eac5cca2d397489469216eed8e4f359471c7025f66e7affd79c8b34c611233a197a96642ed5d7ae4d4a8155679f174386c5a90c8265f7c73faf1d9c510173dd52a00877bd7afc995f6399145816a764e68838afcc54dcebe67181290505d3a274be28c9b2a4db3924a98c3c13121239fe46b76685bedf1b89fa2c055f01d4a44679231dd9b9a2c24fcd0b7c95254c36de5251e496db67372c1f76422a687267186b3ebbb6b4fdb7a93ab5ca9eb0e0e45cab2b2b9ca8d5c8e19aad48776e45b92e1baa1b4275d7a8355911693e5f791793bd6cc01fba821d4b4e6150cbb4958cd1abf7e3c9e11e19254e74d441903791c8db111fc40b9cbe780ed3175596c98546073e918daffba9f87a92e397b61b8a3\n\n# tcId = 99\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = b6b03138199eb4e399d472be6d3504666820c52260150bd3ed24fac67d346de3dfc5b94f8683704de5dce5e5e4fc2fc3dcd77a3f60ec393d4b7b183e3d609d2ada0e6b2107cc84089acf9209183607b22dfb9739f40557192292f51723b8a261bbf1f1184cbbea65f6da8118634abca9b8c23fccecd74f14c49fc0c83bf2e6c8a6ce20d8c50bdac4c52cc0053480626b01b3b468160fc47147ebf8edf75860a5a500455347630983ada520e7317e91824fdec6a0d17a9001b9d2322c39c8eafe67ec484efeceecae83c875589d6625b20f494e390fc79816cb80f8f305018143a68b46572252ce0ae5240fd55e40ad76d36993cdeec6bd6733ddfe71ea6be95998ce53a601dfe87e35ca08f6aef11a247cea520ee7f3a8c703053ecc85f9b041af3e68254b4c3cc28d10714cd9e1b6cb08b0f9a9e0a6f902a0bbaacc98db90caade714a1ede7f132593794e25a469243d7cbac76f852d822fc823515419e6f0ac8a85abae42abadf274abc5a9c4127a375cfaefe6cad2be69d14dd29829b62c9f748a2f64c632bfeedba192d7b0d686bcedb29be3ff0589866dae5ac16058e0227fc98eae32da566851c023ae67f5de3d2eea56a15effdb615d4aa217681216fd42d50b255ddcb9ddec8a81b2e7e881bacd3cc0f1a5212dd3f66dc52994555a67ac5df0607cdfd279adb3cb0983c05a0117daa86b2da84b5ce146c1dd58115a4\n\n# tcId = 100\n# using composition for sequence\nmsg = 313233343030\nresult = invalid\nsig = a6cbc4959b1df49d751233e534513fba0efb1d4670e72f76ceb2b0aa90c1caad8430ba7067e4e9f4d0a274762a78c6a4c24c4039ea668e6e51ed4df98be132804078ffff469d00acad620fae3be3a9b46d89824a4f8a4a34d0c837dd6e612c05477c39623429fc34504524d6cdfee03104c6cd05ab2e01f2e4cccab8b08e905cae05d7f858a67a149e8eefbee4e7c01c851215a1c303666ec39272b5ba9870c0d3824546b3d314bf0407e33bbd8e7c04ac77c935f90b4679e8b14f724601a25bbd3c61e304028eb9ed0f974daacd5fc9f6feaf36237bbd413e16aaf188c65def2ab73353c9f17a5fa0d490598f27f3c7ec41bc2399436e7ba6a10b8f2cd6639c932c5f1f8512e3e25bd40d6e2776633828c2556f0661bb80ae7a5fd22eb50d8b617916b64df8e4927d07d61685a0c31b168bbd3f89dca636864735b3d6851ab6d4cefe983d7e765a251d26ab98c530d19de0213c7625a7904604acd68633d0284d83e6a559cdeee27f1dc308dbf23521a22a42739d5db8119dbc5d34220d1f30e62bcdd97808f00920f990edea9c3cd73ab659cc443e6c38a7209669176f8530699dc22ec02bf01feb4b2f58674c4838663fdb37c8aed415bfd2b79b7779384ad4555c62670d271c553cc00e46537e4d25fec955ca504351b7c7786993ad92335e19bfbcbb8f4441714523f28755b8cfba031c719d1521ac05e399092ad4d51c\n\n# tcId = 101\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 95313651a554ffad8c251bddb24dac0c4fab3544e82d62f7445cc6be99be3a5eb2b7f6b7db3f26b91795210a56907af9ae5306b73d6b8993eda74c44184385c4c0368b9d4314e05ba0f519dfb3959376554989f4e850d5e25cc0c091ffaf3388cfdbe94688d54e5ed4954e00f74d1f719d8f9615d4406882b", + "f37f0c1cf8c1c0f2a6c7a82aab3a820f9fb241971cf51d15bd26f8df90cd3597d9ee31e258c53372c1949b2728559e174ae34726ff176d38055ec1bda06cfa96d07c4934f4fcebeb9d4a4c03080cee9d611cdf6af64f051c5cbcdb97d91fa2de5b92bbb9b01bd874e1e9ed2964982bdf4dc9140ea84b2700693f804e4ab9c6bccfe251964fca579879e2c015e6537c4889743da609fa78b155fc02548f353db6f470358b9c6e72b1c40cc41a5c3da88581663e721f02d443f22c9d8db056925d805f505c77c270f37c448b15c0ecdb2396cd790c434c1b9cf8cb889c272c0524c44351abb64b3b65194eb7b76241d971d2505c21af85588aa98b4c020e3da106275d6ad92ac77b383b463f712c70ad7085c49f4515402264cfe1fdd70a220b3a0552d71be2c8f1caa3f6f7e53b9147b42d4971d7b0314da97a20dac44795849a155a48f40dd10d2025189d5a2a6a176e44aed266e79a52713d8820a52893efd32b3d2f22509c813245a6df5fb9076a9340352167f2aba0e5d9af38569feb6edf485cb106dde284b\n\n# tcId = 102\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = a057eeff7fb0d83799344e85b08e98410e2a85f6bd08bcb9c15a1662b0d4ccc9d7cbbadd7494b8ad390b58e5c48c9fead61091df7b3b59c721b82438265b7ba6e3cfaf3912bd3eee3a8f0ea64cb8696a393dbaf55959d7e516e16785d184847daac958445a79013a4884e434ee756de7533853cd219b0f5a4faa1133ff09d43c00c49fe37dffe0e3fac850c2d9c8e0264e64955eb3f78fa17795dd595c38324742ed77b85560e3dee3867ba4a793dcaf8f08faa612530355bd377c8009a08687999a76b5e4c74b36385a074e7316392457486a8679b226a1ecfa53f3666977af37e860e2c074e817b11b9dd4965d660074ae3c5016029a3fc210823f3f849a1c8fbeace5688a7ae7fd3358bdd6ee47d96c0ae6090360ba5601fa21cd60e71594438fb4d99b3276d49e506575d86fca9749d2db9639df69e15c89c3d555f1bb0c74e4f1ba3297b8affe1fa70d8fe5a19649a1f0d7f06804b0e021598c881b696d8a0b9396cecb61abe0e14ec200cde80fbf23cf521e110934ee7f33abd6355dca78f543d71a2b05327e0dbd88c9becb1817feb07f18df694e9312c3b4e24bbccedafef4d0bd99a268dfaba389f6462471eb9133a3bb49379bba80389105c5200b899b53b4f504d4dcaac174f99dd742ef574be0350d8c4f2db3a896e162e3058af5b919f40249349c0c3e780f685b113d01a1f4405cdf8ed4bd865adb2d1c3140\n\n# tcId = 103\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 04050d0ef42a4d145e63322e2b20da48aec3bd58dc95a4658e69be740b655bc94ba3af9c5f9af76f023eb6051d9e2956ec963fdf64cfef1862bf15b4e896d37e884a0a23b60754140aac87d15583b0cb84d8f9083555ca64530c64984e3d322b4233b0a318ce33c57857829986dcfd1d23dfed79d3c59ffc6ba44052fe9f74232348b9e4e2d704070449b4852d6985609b3d4f5b1ee55d99612d23db06f5d2fdcabc0b1f5cb2f47187aec2fad8f385a438a5ad5d6212574c5b61f500a0d192d253968282c393c42855fbe46fd1e85627c154e4df999ed95d905e89278c23eeb79c581c9bd2f9252c265e3368951fa3270b6582c99d80f7e2b58a6ea278d98b295273abda89f0dda0caeb3fc7819673d5116ad16991563f08db0c5639e1fadcf0ca122a2d1286a2f994f646fe98efd35a83999915df0170094add1271f2e3bb193d5605d8e410d0fd0bb3e73f64295dec54093626f92a227498b6af7aaabd88ae1f057d30b61d5da0778d67cf45c65a3bee3a172039efe97e25f3b3145c47cb824b02b393d15f7b67e2167da3f2c740eb591f6a4a6afdee0eaf602fc963af1792cadc6fcf805432cfe005e2d4484df25c999eb484ffe618b03ee9bfd373418ef12af89b73ba49021b2721d18f5f9a024497dfadf201b7f6fb7415f255fd8534b62b2e2cf1e337a2270d6c286ffbadd063fc09f0f8e9880820a6dc7d03d2bcdf5b\n\n# tcId = 104\n# truncated sequence\nmsg = 313233343030\nresult = invalid\nsig = 25f364b8aed878c58caf9b40fabf09d3a9517f297dbe4e101eb1fd840a82e57ebe9ec185206756fc76a53d9f045eca0a4d819e87e81fb0569804c3b9f62a54ace4163c9695849878ade09dfae4f50fca5c68dd201e6a1bc2cb0cf970cdeab3630915556b79a9aed7903a526288b66b00a30f565e53875f448ce0b3b5b05e3b6cf71df9fbdf248fc1843eeb11955570136bcb4f8214c39e8c12ce59aba1f96062d7ba5e63ee178a9210f8cc53965b62fc4b0dfbcec2cb35933c7cc1bf5d5e26aa63aafe3c53e2b8d06bde785db99dd8ccc981435cc9a5c3d69a75de2c6ad22a87fb9262099563a6a149ed96012f25e0c87ea90885734332d21a66381b5c7c6a306ee571905a21d95a2e6374a3bb84aed9af3cecb5724a5afe5126541ceebae4cecf2a91802f18ab4c6f421c9ac31fec7fb6b883a576e1d26b1671663df442810ea405bb3d311b795dd8292b093e5650196189f83ae963623196ce850130f018eecf9a933c442f4f0f3b8067e24a50d363e4d10e2f254571b3acd5c318209c93f002436fdc0484373ba47b18b6ea50e9a9726dad987ff09b2bcd00bccd56e7572a75e321d1da85f0da1be719b893a06a40c3813ece6623dc70d0115946297ee0bc62d733aac3f1065e6f7b79d7b2a6f2be33e3264828e911b09e38582b56f0c1bb46c014506aa9c8293926401e0c6b4c1aabc2d70e739498f723605b7dce4eabf7\n\n# tcId = 105\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 6dc8ab655d1a764a219c97ef4053addff2957e3d350b50f85d8c51c26e34d923a080ebb7a7ebf2feffa328b6d39109b821c241741ede029a55c83ed08c861f677470b8455ca048a0e329e67ec921943c1a6b5121ad714c3f7207a8b2ea1e7b100c3f95a8033afa5c0abf37f7f6120454466c019581bbf2fa26eb456f7f773cd5a60a6b1db90d9a26c652df8ef63e2de5b55b2fc14689e1a88df9cb95e11e5ce4944e1b9ad036d02cd25fa46ae08fddae96f5aa78539b062ba705af779a566209805190b57abf5698c129f149200ecd1260dd14dd59cb27160ead13c2f6d0494356a556295f6cbf5d237318e16b3ef9b0485c13a193e59f0adefba176d1f27ca5dbceed9ca6cbe8e112de56084ff3bd80d27a2d5e9306d6f56764feb4be5871930ad278c09bb444e213a7ec5f1fa6665a1f39c6fb4f4fc5aa8bec99141c4c559fdf9760ab4074780e191a9d3d1581ed411d502846748fa2956f75f779a2d0172c8011611da0a2e77e2fdf94aff98dfb549ca04227283d63224fe97d01bc3b80e08efab42b381013afdd1de26fe343acfe0d9981f0a432888c7e93afda0b4618d513663658556902c2396156ccfc4a8ea7bd650627a8228e51c4252b7df0ffd0f5b25df547c2691d6c4cae45081bd66e3e18ffe8eb37d378abef362024b4b73340cef4cceb36b38d78d816a2489be479244bf5fd25416a277535b350a90eb799c7\n\n# tcId = 106\n# indefinite length\nmsg = 313233343030\nresult = invalid\nsig = 6f1c83e54cd4810755b1ab483607f44f5437b82d8fefd1428e4831a825ec7d2182fe4e0910a596413d425aea53665a58622f66bf3b2fd42b04d4fc0212a5bf06c6093c8fc87c3fdcd59ddfb4672e3e78a289e74f7715865035cb1d66dc82d70b4565594e368e02afce093f12106407f47c2a21fca84259fccda46fcd1de83b697d48123946b1cfcdd58415d3e8bb5603981b0ae3367f7a65fb80b8545104fbf8a7a1df79d2b9c5c2775c9e25d5675c8dea5beec01ddc6e404e1b13dba3cd00ee19f59e5fc69bb82aa31a26f7e5ebbc8884783ea3fbfb8a56558a487d12f2b54f6a79758f2f9c803475979c0ae53ef9f808a0ad08abc836cd87134cd956e76a440454e4b9632d38f67afc1fed63d142e58fe5b61fee453ad4fc180498f91d47ef3481622e390c81bb4ad16e641d2c6223aea9b99ac4a8c39aaa8048e2fe34fe938c0b2fd5f097df6f15280c6a8af7517e4f94b0d081582892937efd56aeae6dfd8e410c08527395fe58b7520c7557e3166a863c4c29c79172f164c4c99f084b7bcf661a2612851ae04656bfe640413b45e0597c05c221def5109be11c28038323d5fc183f0b8c487551696d800bc157303e06dcbb8ec86a7423bab242cf24fde4d08fc640735a0158865dfb338c23ce90a9f4976836860fb737d504e5ca6d3d733a4865d9aa9e97e9cc8d923d31b8088da0e575cbe4bf9c78410452704cf5a2e0\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 92b2c003636f38616d66d59c6288063f36e8c81b57a64fbb4225fa0bce3d058dc3821098d60d44efe8c925c34d3c607bc79eb6a8b667bc99800843bcded44846a974dd0eccae8db6a5a6bf66bf8df83306ccd785e3d16b21bbebc9be03ee86f107dd9a99fb227d7c95aceafaaf2945b653df862269d16aa9eead9449d77c55dd998316f9f9f6f8de1b2fdbd9eac1791541e3b725902284e6ea5e29ab66bb00bde4b0f702891205363328f0a185527826a1cf3db16d016b34fa511234d672830606747f4b06c251cb153707207c22e76f1b85841db5a282554e6d35bdb540709fa1ff4a22d429ba582049766aa5b9a9767a37adef399ca976f086e7b8e0cdd61d8ec24258056921b487d2eb51ebeeb612d26d5678f51cf187be515a4dc642674c9c797ef0696ad4b6bffb3d958aa95b76b2320cc2383155e6ba45ec6546d57925c8ee96f212c46af7a3ad6f8bc833f3e3b416f5be85a1ff7cf77d112e7836ec085ae65c183b1fcc598e9f3af8bd032b0aaf83cdef8109bdf4c3c4a418c966fa459e1bbeb8ef48be950543a784016e84cb67d26f5755e499bf93e8047d16e954796d5522b28df0a20ba9f27b2141c9f20ee1a2421d13822fc35d50e1d6cc9ad4bb197b19b6b9613cf7f4d56501fe9188bd87a17f6ca070c95ec64c76f8637fd952188737895a327d3c90513f47cc9a76d7dbf74b554367882b934545ae2d030f3a\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 313233343030\nresult = invalid\nsig = 4e04d028ddc31ef77e19b3638cce03719a814aa2749b04c73be1d5d2235799185625bc17f1116b386bc70bff5caba577cfdd09270a7d1ba05de0770dd727f94c5a7a73a5beb611c68a765bfce90983e6f1948168b3921ee8fe338ae19d4af386b8c17dec3edf4ab7aa9cd98a3c8c6740b760de0b07bc7e5855c5c2ff196930d0af0674712f4b4b6c8043de8284d3175daef39756d8afe3bf5ae868045553ed7bd8233e087ddd4ff276246f16aa9676d8e8bd2d2499459c927c164c9faa9e9a0f12879c13fe204c422a4256fda1f67eeedfee97fd67c726ae522d2a67e56932588439aa6fa190b3cced40daca91f7f27e22c36dd17e4260e4e85cd1d005356863eee5fb09653054192003fce49dc211102513107f01cf0a86ff85ad0e9808a195f721ddc38405bd13b26603293b0edbe508f3df5da640270b33a7f4bd40558467ef1945087e57e387fc3864bcdff5de224", + "6c86b11e1a5ec56161d11dc10cb116f099e9700060a0daa45c96930aaf58b440a5c78c58057cd93508558dc363c332bc9a825f0c0650e49053e69c6d3798e127236bb0397a4bbe0d7fada7b5caa28fd7ce9c86fe57c00eee1a7c0cf2e218519dc529455cf650ea19c6a446edddd04733376cd9423f3f64fd3dd9cd2ef9e79f1c905be8e1e2f1c95e6e0289cd57c281f715a283258e3887d853db97677e8f3f3a7fae06cd9eb29012ffec0ee3347b3ba\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 968d675e64da18df5f5a42aeff479ecfc8cca4c2e95d3f75df51328496dadb3b33b9a0c0606fcc8c709e9bba0327f8caaa1f5bbe11fdfe89b9e34e5e3411cd3a64e08b268689386b2a83b0e05a997083befc86a74fd3db92c0445f9f253466807cbcacc80592c5befa2441aad8b3ca3c561522eb0571556d6a71e1cbbef325183fe70e92af1bb2d0011b0f56ac2688d7d24364e324bd76a8f86a3274647197c4ae625c44f24891365e62bdfd0e50d13b3a883ce21c1a563620a4023f228078e56a75ec884e376b09a6f03729b28e515b3ebf7179e21017d0c129832a19f9762cba6af38a2ee230f2c2d3e07258ea3f50a92f39f13050578ee0b5523f05a5be71ab0f84d13b0b63eef3632ebd7139de37b37056982d202141582b086ff099aa4f919ce2a346e43f252289bb21d0005c97175764cb9ce717aec0e8ee1b81de516014ee5885d442b2bfbdd6e40c69ac74e149612b21a017e6d0dec38513e4c4049f47fd01c23b56274eb074292a1c40bf5c0725ff83ca0fa1e32c7ed454ab6cbe57507a1929530462531560f8b075d363948dc3ef4c3f48f44853d395999aae8d8efb4aee9e83e490d6a3e76a91aa2569551e8b82b760029c5f38713af907bdaeb0c36079ab3e16dd678762e67c7bf3239deee05de9b11d5ac35dbba0affa55b0682f20bdd42f5f37a6022d962720dbdaf9c7e0f751070489c850349fbd9f9ff486\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 313233343030\nresult = invalid\nsig = 99c99292436a3f1b088154826d134aa10426f2a1d3a359a316eecaba5537f4f655e99e268d66e146250da025b82a3265d8ba2994f7eec9c9dd87c1232225cd985a40def354a42c4ed35c428743def6871d2c3381bf8586634558c28f5eec0e5020993359037fac4d1ecffc2468e75c88ed996c7bec2fb9c7893a6114381662be9e476653973f9e93d12ba4c738a51e67f813ad34d625c75f99acf5acb3cbf9997c86c52da8b41aa2012f2d492e30e898ae5f79af10db51bb492ea3b25f4bff2f4bc00b35af3aea5666289cb2685917d3c67b32c3eabeabfc79b1fa2722157b8e1d36e503314017d022f6d188a62c6f9aa05ab53ee7851e911dce4ee74c555c3534660271e3fbad5d398e5d0472651079ac2d79d5ce759ef71e0b38f2d2f023c4d9e7126a02773c41c996940b84193fededb07651ccd5b411e5f44d0e14614978842fa7a38c127d781a59b9c1a9f76b50ada3c4835c3ba2691556ec3b90ca5ffc93890ed1a6fdff6b2e40dcb747d1c2f7112e4ae75e79e4061823f330c6931663c4540d4898ed2004209fdda0f65eb06436bc562546d0d49f8181f7aadb15995d2e3468e41bdbe96fb42079dff14133f05175ffc5c6547e76ee232de0887713d9aed4daf1f72b6e131002821b5ad30a0afae478de9b3e4a559bdc8db9fa523b1aa402cb00a55320bc3d1e7bb2bc7cd1a3fe9f367203926a5da28a745d3741b368\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = a79dac666f7dd5d498b2e84b9b5eb5a88138bdb68e3d2377d85dd1608ccf2eb73cfbacab4f0ecc390c773e8676b88512fa3831093dc88264768a46a7914220b511f64155012df7927eac52a5367a8060e91259d169eedcc6be788dc39bee42b55e1c98f1c8597e5bc5ffe014cf2502dede3899e91ef7284689f726ee9ab4cb405d729452359e210d71219c236e1c66c694d69d36f85374d7f64d9ad4168a45e8e50309944b8bcec31f8131252ce42dcc840431a27a8b2d881bad3cafac25f653e65a182c8ed5afe75c82fb056ef7d6bc22e82c47f3bd0d389873c4decbc0b94313902331595c933bf445feeb6a9908fd2abe26f5744b963fcf6cb225d28612e609c1f443984f2ac84f1c49a8c814b21113d95dffd0307019b675f5b91e65c2d0756782ea1969e9afdba85d18ba0f7b4b5bc24bc06458cb3adb431af2be297387a28bac89f2266bd7dde35c9483183f8239bf7bb253df1305ca218d1d4ff7015f74df1ca7e1b29f7a66844f59e7ed96ed28b4bf53a3e6bc21b348fbcf144d26d4003d3e15ea5e51dfbb40bbf7eda7f5f0ed515532bdff3943f98fcebcf17c1d6cc73825f093a4fa261550417314ff9d53658c9f9aab00839394e91c1d07bce42a816f1a80f0192b76c482affa5c0e85d359e926d43bc595d0e74b44c3c6195bc5fcd3ac29734db6882e344bdb56c0dd367b9478880935bff82381f546d5182965\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 313233343030\nresult = invalid\nsig = 5a6d798ed5ea0d324429c38276b8f78bd3dd300f80b5700df516a4ef353587029bccac953861455cec0fd8cafc06dc18d1bf4883c76ba7c52a55213b7b57cae878e6ffa29890c4ee9b1f9f402f81168ca1f8fccdaaa1d3b712c6426e67690b868391d32e11e238c8edba7ac67e52ce364c9dd3302972a14405e43b93e212ed0063474b1227ce409d4e4b9b6c6d100d96670e464272b3db6e2688bf3d3214b766218d14cb2d33c53cfcb70cb955bc8ccac2fe2943e9209fdf046d03bd3d278898aafaf4ce87bcff6fc9ca1145e66fc35534cfe5e9323ac1ca62665e71912d50b3d0510c2f831c5829a33d5b86ed5d67270f21d514745e4a1b1413157c4c059bb43340fd30552a0b2443b3a005f824a3fb3ba930f836c3346553c50fdc4c344e8ba0ebed8c5a095c9fcf3f6725c49738740cbc450fc6a6e07accf91ebdc8d73fe70be3ead564823e4dc86a6cf2766b1d528ad04dd6578f4cd582b23faa2a2da787882012a8239d28ee4a072265eec50637b753c9f03ac890767df638c37834a266251f57a7283efa8ad9f9eab2f636608a7708d41d06c94382c1dd19c057f163e4d1363e93fec15c4739c41e1428ee3e013354739a6321d7149c51740c23e03a3e31ed1856c04fd35aa3f5e974e5900c29257c5033db7930e8e1c3b0c08de956cd89ffd1adde36f330584b533891505df523481c41945842b3136a13fc183b9d0d\n\n# tcId = 113\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = c16831c84203186d55d5391ca48c31c4a7ea17f4c83a773041af8fdbf4f98511ce7122decf06b7ed3a0b3e3a3fd3aa9927984c3a5e59661ae35366b2330caea6c2a33f01134d30fc210529c599e9f4dd0b12142acefef6b218ed6723dd06fe88a55d3e9f3cee052b83044a46e84d39a80eb1ebdbb0db8a0a7caa5231ea82a9738b1393e77965092377723f9a6b8f2d6a35deea4023d87c6e6a46fe9cde5fcec17ce55960a784df02dbfaa300f8e939d9afdc509e7805e253bdd64da9dc3e17cda39a4fa1e183c4e81f6fda5a79df2a4b9cd388509e350c47d5cc039514a25a37ec758ffe196afdaa8174578ba0e91d435580f17270847731123f0a9fe98a7586e6c82da1b9b59b43b283c03ace8da8eb56a3c4b6231893622100b3e277cdc0eeb13897ce9c676c0c1413b6751b220cc6394494962b4fc09aff620eb82d59f823afe1be2341908b3972eb0d17280a67de0156ea3430b498201e5bc38301928983a61473ba28fb8984daf6d1a551489c26d69b9f8761f2d5537e514e453d5d06ba960d298f25a16aeeb2dda3be6072535c336c8c8e96d99105a7b3dd93a310073e520e7cca1b3ca34bbcfd247c981685e7a0b141de1895c555d2feb883bdada9f070edf8cbfe32bcbc9d00a64e636c776fe7dc4ffb271ab92b673b396c90cf3774beeb7fc568dff65b46e73764c3c291c92ee2910604d75d3d890a90ef57461a2b\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 313233343030\nresult = invalid\nsig = 8cfbbab87567c1c9444563c93fbbc9900e197b42e47db8e082aee99df5eb7457e50282b28479c59a49a939ae6819eaec9f6e20b3631e4d1a86a23ae7eb5f7d7daa28ee3b5ee22b6ec7baa6541795d5785fd432d9586ea69951c0e2ab370ecda5836ce161abd44d2bf811c9145c40aa0d79eb3b26d2969b9e80d408c8a15f468989b0cd65af62445321c901309a18791eb87bd114dbd7f9a67d9ce717d3ee72c6604813593e885d52a7d6214c286c8b1160a50c816140ceba231b9b16e05f73006b90f63916941916b987d732138c6e8bab399f2ff0ef3e48aba6cbda52eba31555a89dca745c8e20c1dc4711189c49d58f212ab314159294aef96d6f3c3fddbcab72355d8d3b4cf26334543fd9f4e1b7e78314db152de2824f5001c1ec25fdb1cc9ad7a7ad753f4da458e70517e152b17961f27fd33b16222e974add27e34ff67f31da5bcb05c489d7b0bb163e0043d63d2e064a4f626f8d9917a9ac0a6ae79d94630773dee440af99562a7a918d77cac2d3c82e43cbf02a4cc00e4e7dbd149151b78b1aff4de3959b857fb8cf73f8c0da2d683101d4d3bfce02d234c343116836cf47aec0f593ce76f0ad9ce206194b4d830be1008937f5dd6418adbcd58f36c772e3ac456bb7d675f7027b692d3e759cbeb5f6fc57fd1ec70d459dc6153be6f056fa5c0b660cd37c0d3c73a8fe6a368e81c4f50a43d6147ffc057e6642000e\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 06d7c10ab9db50ccadcab75474b8d9ac17dd43f24c5fb37ddac738e3e102150975e6b37c63bbcdd987b9675d6f96c1ffe35e74da3c13fcf689a5e0c33ad11db44e87fa3db110e19bb25a6c8abe573a52f0b35e718a2c3365dda52f566c62785e61a47f87f56d870f148ead3571a1569f2e58fc46a8f5f8b7bf03a6494d9bbba960da1ff465815dc697480c8c4d4ac08e960d9f17511aa2bb6347c0d95f33e7e9c444c302019100cba7aeb93eb4dab84d80764559ea3cd3e17ddc8606a279d7bd54f7f2d2e9eeee1ff28427cb8fc1d4d4c552b8c6a52940841a3409f0cdc28eefb5eccbb9e12f604bbc8ca24d02d706f633810810d9bdad9ee77cd4971c6c5c6aaf3718440c7a8191fd1e5b334435152552c34181aabad626384e68329b32b4abc53b157a255b8e077dbd950e9e6cba24cbdc59e54ef056139b5899ee90fcb0113909b0df2ca447ecc860c416c025f9d65f7f17afacb7075c3378660a9432f4e4582d5db2009c5180567522c5a58eb72efb1ab9b4799111f351fb5b0a8326559467ca4363094ce9de5ff622fe15ba857d5b24a091a39cf1bfc0a1f5ca167f3a61ef57bbecb827638abe183f8ff1bdd6231e262a98469a8dd2afa0b436d9c47e121ca9c9bf318ffa0020490e89684662eb540b4eca22282695f422aee1520f290e10c6a66cb7e2153bbd3bb90965784b46711cf93750907b632cd816fa9398", + "614a\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 313233343030\nresult = invalid\nsig = 8bdd32c9ebc98617e93f5c81c5f9b2e65183486cd249dc4efdbe1a91aa9e3aae668f8008db7f2a09c42435766ecf436dc73bcc496e6908a17697129ad1594ea8d169b89198d632907e050340583a7e9580328cadc4c6cce0686eca1cf7cc5445b84846a4042648120de621104f05fea2f5f12ca2a856bb90654dbbe1ab3a15337deb7ef4798fae6eb3b9664d7afdcac73e1972e5abf2f16c8d1672e54c97e321f41d5ace05eaeb9513e2d18cbc2d7a1ad856aaf18bc84cc6cd6d7273279191315970e55838922b3d10fc4d99eedb22bca24e20e586258928343620a8361239b919d03a2ab2a537f2224376576eaa4a67e0e06cf79e335aa39b928e1c4d7a2a7c87ca4401d188715a6063802408582fb486c8890dab132276665f5f173a587fb2c4d3b1e9d50fb62e7ac6c548ca6da19d1a0c22a79d4c190550e109fd3a85a0adde9f00b22a9331eb72bedb1b564a788a5df7b5516388f37f8fb7b534adbd8ab7eb7be5e66963c6fd00bea58fdf570ed9b5b0aa7cebfb17b477e28ecd78461ab8b0cc026d2bde97fe1d1643a971670081ac495396e61d234b591ed07c58081fe938d0ec534eae561cef1999bc5cdb1f20cafe4dc4223ed015a41ceacbeef2e886bb0d3e5e70925f02c8e9f59afb86c5937598fd69d61e69054d5670c484ddd5b2b54a2e39633e611dbef4e4c72a8be0b7fd163ab5686e09030abcf373fe86138f\n\n# tcId = 117\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 9188914ee2bbab207120e12f280d6176cd8e12276eaa94f9c7b7dc66d886879b5641f12ab8b232982db86ad14145191f13ef8909f63108806c49ed9998824845730ab86db5fb3a4b4ab100f79da8af5c10d0372fbd2c9a2448ad5f3b10365fa316762c3031218b4a874b66d14be5ecada07c9e772283a9a678450b60d56fe71a6c2ebb4936c5c89b66dd2b68ba4a5cb1dc2866cc3792e710bf6548e24565ed2b15eb02fea87d239ec8802f802a31bb62591b72f59bfb4a63403d89663d9ab2aaf87d37400aee9c44de5f246571bb2fbf0557ae04a35cb515d42232b0a311fecd31319830ee6d2e505e6b315aedaeb68e7efff3015da5d390521782d32edc15386e102247f81d0607bda75cb15e06bc7bf25bf3063207c36c85a4d1cb3da5b96b638df3c80fa40579209834a1bd980e28da8f1916f62d9bf567e0afae734afc2bb2ca8288487164a3a7941b64af1a86efcd630aff21587ae9d2927faf1534d23765f7e88432a8e2fea53f385540fb992a8ce42e89176c07e66656e03fc875f81b897e002783bdea0eb92d1f1e6a95b676f616c6a03cd1c952477f3744c5473d4e2132e7945c290239428c6f140f79907ee082bfb7e6b96a3f314956acca345e8b832a8f97057a33c70416d2382c5e695173365261fd1f32039215db4bffa1a08a0991ff2bd09b31ee4642f090fb029a95bc1edb6e310cbd50cacff508ec1d2040\n\n# tcId = 118\n# prepend empty sequence\nmsg = 313233343030\nresult = invalid\nsig = bb7c6dd59e12462ac9895137d99e3c8d96772e6cce695c0c75abada842cb602c1a2a74d048e1ab581b237cca9dc909e6012bec30f40742375af7a0f6a00e85176c22ad0abb49cabfe3b15c90376898357e6b1faf61428cff699046a2b3b534b4c0abca5c1c5494c6549475a468a33e139edaa09ce1f59d58e51b80cb7c7e268b90338735bc3019c289cc610a9dabb6dd8751d00f7a90148db42d812aa53aee5223b76a19cdd0f41697aecbc2860f52aeaad6ea9927bfb1e7eb5b66c44c717c4378150c8df156a8dc9f42b9859a7905d79af61e7ab5e9aa7dacf2177c12c6cbb43c70815cbef1b4d4d7421564b1e6587553b64577961ed23b2da0113ca0b6a86f78d98ad3c91569992b1e1efec5a7accddafa8d806543f0705b0808fc52923575b068cfb227ca0bb8ddd65c421456c1d7028ecaecf56e2f42dab6b02c6b6df257263d941e7540c67cd09db507d1b63c59047ac7859f0d7d311419ce3016af5c2b74f68c3cefc073d5740aff573696c5f6c3e0c5f099f9d25d9ece981961a0591077e2ff0e07e1849bb75874350b68e368c48a1d9648a91904c53dda47b0071577a2217db4ed9edfa33aa44a250664d0a7c7c8defd05cd0c56d029f3c3213d1115cb44a109367617ff6cda8409e8e3eaf7042e49a9391e972b70024877ebae686909bb339d3f7c225256e1735d3b11028bff3ec7ac928f8469c60bc84c58fe7f41\n\n# tcId = 119\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = a292fadf0c5839f4b4c282a8871f366351d2f5889daf595e2d309f750fe7d05961004a614f398ad47138a63a9eb493f4232e8073b30f48245c12d700a7ca19a95af5f128a5203f80709e7ca612a8d3924dcfe28d626351553287de2bba75a6aeab85988566555b22e4b13f8bfa5a81e6e8b66f51758b2de5639bb7bfef99df264d0e0d5f4e475b73ad5533c9862fce2ac8c28463f9a2d9ad6ba7db7d94a387c309c92da156c46a7413bb6fbea0dcc14492f1b8fce4009daadefd6304e864559a1b27e473df7a8a7166054d9eef10511c90ea6c69cc19389529101f917c2562de3a1681fa1b41c789cae6ccdd82f93a9dbdc4775274783d37a8b975945ec05a0d7362941a041e4fe7ba87624a586586010444ac79ffea8d58057d808d3b8c1f2c705b8f77ed5e3907a16ed8685eba933d34f1dae99743a11a6cc6a47c6c168441ccdac81c0a9006ffe79473385d2c9f74ddd55d593af03b209df03eca844a26068c2da0967b7d0f2f4f2f2caca2decdb2ed3b33bab1250a0be60a2b0722cd481921518eb025f4aad96ac49e408b74ec6e372ef7c4921622b250a73de56b2a1721b5db919182eb3a5cad4e0f383d9ec82dd588e544741035be958e9bf14f7f029eec8828d98f8e2efc943efdac302e78e424779dda31d29ecdbfcb583e9573f0a3eb348d9f63d683d9e190f8f7a51c1fc7db924f70cbcdf8c70ac1ecd2176d38f6\n\n# tcId = 120\n# append empty sequence\nmsg = 313233343030\nresult = invalid\nsig = 22e0569ccd3187cbe2091997452e48c5a91308a4f9c944f58afc3ba1f9b4c155121b4ebbcbcb90a548bdf98c8e713ba6ca20c701363af4fff2b0784af10414077f5a0747eb60d0f1a38a03d90aa952f3da3d908eb8d0de98d4dadee03d4fd2ddc4ada4389d21da9d8a2cd4ba752ace8be606c0c088e10e7b411c90eaa342c5e8425f5733d0668c586ccbece1482d0ee5855b3a5d93c5105d631df7a1d13c0597d5530b32c13ad5bc7ef5c578e442322267a48b427bc201d30c2010fc6c3e27c40bd924e897e9e4d932467c1389c3465c71374e8a289720332da4a0ec29d7aafdc115515edab8064cfb35c653b99cf651c2fb004dc898a0c4b66af1eb370b1556b3d28814cdce5b7fff88981e6b7707d95eece4b9b75d624b3c6efffc10222e742090dc030542b7c2918bb2c73e20139aa9c383be690e8be74f3ea9eb8881c6c0ab27c16ddf10867a4a7dce3496b1a0a2295357d49b498ff1ea0a27bc7ea182a7a89a7cc53859fe2ac8d876e30d1e810bbefc5a48bee8be7b3e12e83c1dff218814bd6ea42228faa6b69195121f0d079cd887d1da9c1be4e3b3ffa9e4d23a1884d19845e6c76e74d9319884bd31622e09525ae8507c4d4b66e93ab55d57e1dee708542e1ec9ba7baa2fbab8c41c8be4101bb7c75ff7f3178169f93899c0c0b4550276cf166962194091c177179481c620a50290fb85feb83665a399f0afe6d961\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = 1839350788eb5904ca9deb1c30ebfad0c8938522d127135e5dcf4f5cacf2f24e32f056ce74da93b68517acf3abf45b55bfd19f25adce4aed72e2fe8496376f8299f06e55c4e6fbcb516ba1c475751c2e8a848d6604d866c7a391505623265d7ac9b6397444f4d229f0b82cbfe673c1eb7e0f3f6528e2b662a5b50f94db86d53abf341bf927e70bfe6a25f6da50e1383c9e6892b3cc148aca796ec1d957c7933eb82ca92eddb7da4a488e0768e1bd980e61312cd614149a3420c6e5fc1e5f987d07ca223cf39319b03877de14e6766a191bd45d5905b1f92530e60c093e106b2575b254cc0965244c5fcdb788a82d3c54afdb41e009c401913109e068d5599c3fa599cd69034164ea03e4409a29c259410f460ce9743ed98ba3a9bfe9c513635610280b9505c331be4674613504bef0c45ea16030e1d917199c69ea701bae06cfcd6143981b1608c8662e7ea0d97aa0cd6a2c9a81cc5d5ef472c83c03d2b3649ec3b0a49aa32ced70f716af4f25b5d788b711dad4dbc3738651a29b080e7dd13f18292c5c31a18a769f6f1d7c5970a2693c1e38e9665673cb48ad316a3af9c4217d98fb69d7cc4fb0eefe950564d6666aac6804b4dd476568d86b1a0fef91cbbca49c4bdd7f845d8c7adc5bbf3eff13dc014cb29d8c7f1c6d033922d00eb4a14566af2850d76cec15a4e9ab5d5811577cd4dae6ec7e6792c23c4becb949e12212\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 313233343030\nresult = invalid\nsig = af85d132381c07e90840669e177f93ed7c511b434145021a0be225287a5d97a9c1399ce025a73b3c3e15af034e8a568f5463d4f5c89fe39b28f0cba99191b8de71bee60621db19804b2401c6f6375b0adac5cd99b52927973f695660fe6b53eeecbf288cfa69cdc891c70be7c04a38453d9e81928f4799c9599b1e7f6f0f56319d30e98d16d7787075fc633bc3ac955ac6fd5b8c12f7e07272cba3d3af1506a77c5357e7c17b6883d1498d7465a675f015420da08f4029900dade8b94cad5e5ee3445c9b159b3acb81de430a39996e3d1abc7389e8ca34ef1a105437c543bb88995b02ebc01b97a86ee1520d15400dbc4c32a0b769ee2a9c71251e100634dea5c7771c7c7cc6ee8b9c5e2fad1c746f9be63394c1a36171828966ecc528f501e7a7f54f0a74d761c0a0fed6bd775047608350208c88a222b6b4e097285ff39a57620b579bd42d00f0adf09988c1e9ba8386806b79347d31460b8d1b96e0f26a9616ebdc8008a1ca46f60b294ba39e8c4080258d897a45a3c310cde1d71046f44f981c8de07b72c16dbacc53115555d19de38fa169414294caf0e90f7766d1e2cc3acddffb84d8b1770ec501fc32c22c7a2c5707f724590a73e96a30b243c8611c4342e2b5f1c94b67cd5fed0f10811ab82b28c16c38ef2aff795cf40babb92c19e62822bdb1b2d02333d14efeb3be8206165d3e75171d5666be0c92e96235ef2c\n\n# tcId = 123\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 57f36d681dbd16ac7cc447a9bd77b3f71ec31ae19853de2d9899d8acf7a95002f8e838efe479f56995d56e9822e5928d261017e1ff0042d00c9aa8b2adc00ea72778279e9665a394cba187af5b9ea3c9772cf0721528ca14d1cb6bcf0b13a71e455202641838f6bc353563204147960a5cadd5e370929cbed21150c85df76dfc907d4aa372e66e891adec59aab2460a97f473f0bc1f6480d2bffc94d0662d5a35c6771aaa", + "cd07e096f9802116b9b2440bd2c4b85c57556f4fe2d0765fef9c77b2428c39a1117fc26ef7f15fec08da0be03c0fd4617b32038d692aa3999f81bff85d1783a48a6f0973bbb7df191da707b797419c856e589a5acdff0a934b0646bc3e42fcf6f0568f233096209466f0aabb90d9e1ee5945820f46fc4d7d63f12048a542d3d4df4aaf21f43fd7ed74183971b458da1162864fe8c85187868a3916ba95e80cb130cd89116ce3ffac1b9d3090b8d90be18f48d61ac56635fda18498b4bc9a6ac1d41e5cc7f73b67f28dd03572f1efc3a73438652c3e49a6be79c9325439005be0d2d87d9fef65129bd6c9186a01fbc3812738b006e8952c500f4b271694f3cbc7b9dc648be76592fde4fd757f68f79d659ea3edb6b3434a73a125303e1bbe6d24bcd8e0e4b36e70b3e386b181ce8291492eca83fe7633901423ba5d273e1ce2bbb8da9b6afa8ca6870ce99cec7e5d470eee11d1835012fb228ca1c50\n\n# tcId = 124\n# sequence of sequence\nmsg = 313233343030\nresult = invalid\nsig = 342ec794c9b7ca5d17ac049f38b6528a847ca8b9a56cbcf05d106b4f3ed1459b3d99df85f2f5c55f1c78aff72007ec8a04a7d484865120907cc4afc8cca65bbab407f60d7548e189ae03bbe3084a5eddb27412d63e2475b2bdd6f7e432e3715222dd21ab3311b70d1199fcf3a1577f94ddfa9ce19029b7d7e9bab354fb471188f03956773b839d4c2e2527d912fc13daefef311e023657e17f2accf7f76056e3ebb24ba42881ea916d88ee494eac687ce75c6af7bc5206a25ccf3988a6c39aadbefacf496ae5864a1176a1f556f70fa9885b4e0fc263d70f11463d1409f6dca8a3fabd5898a8b93add7cad8d46f122173a0b764328e649251ea1184c4d13d7236fd420c8dcdfd821df19e1ffbb082dac30220d3fb7e16bf9711917707842aeab180c3ee05ff2529a3c5be2677768be4ce7aed70c64c8dcb8c7b22fee404fbd9651a7a02d514c62e7dcd8038deeeb8adede607209fa263bdae4a5ac37b8e7f3c6e8c3a9c63ebd250c5846c331638c147e39f3f8ecb6356e9238b779e75da7b94f4924d63211796e88ca11343455a5d1b1f6c3918c311ece01e5fd65f766046452c644319cf4e495e67ae1c108e5b7c50fe5e3fbe3fa75c25ed71c013f81ab53a77dfb8014f357afe68a42da2e41e5f689ecdda7445e3c5996ccf16eb2dbc2b5f4c4601aa4094929986a776def1da70a530bd21d71d3ef62d559eb2727216f0f30\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 313233343030\nresult = invalid\nsig = 770f83107ea496e0b6104c4d507008ad00b37608d30426b960d834c64614b5ed556771cb945f69af00cf2b055a08c1e2292dbfef0135e913164732348607873891269417b291fa737bdf689a11f48638e55a5242b55698b1c19080fd01fb4b3d2409ec9cc3b8a06c0c6c3244ccfd38ee9af027e84a2ab0cc1a90bc9af780579dbac88ef61a5aad1a8cf6e625eb8b18df7413d4363d68171430088897f02c5751a321d5c44a2de28c4739e974a881a46bb3c7d33021dc40c6baee2b85baa12bc9a54047834ce19f2ac97859b1e3818cb9179fa04f339d0c348f3681f40eb775b0d5ae6df0a653b2816d98f6a3554846f007c357f1f357d4cfecc4177097b0eb88dc4d132d70872f3f51f18617781e6a4f7a3ed74fb653c7946ee6600392a113d446d5a957fec8b797313ecff115eabe61cc7f01af93fa1af6dedb962f26f10d703d4b984e5bc33e74de3c04289bb9a96db7180823bf74245b4ca80262438cea1cf2b552289976b026301fc1570d94fb8767def547f086d91609f5b133755631611b81b3bdf1d63e163c3457b2ff144bd2a98805ebfc29b75ccc605e2a98b75f66ccd4182be191f8558c4b5aaf3446b86ccc1fe74758b85b555a268eba91acec4473bf96729a423f22d3222b042aca2d7838348bcca7563df0659ac6625f1678454e7eeb35ae0a63873f0e0c2632a4ce990826e66b943d70bba0bf562db8a289fe\n\n# tcId = 126\n# repeating element in sequence\nmsg = 313233343030\nresult = invalid\nsig = bda7b5ffedb9d0072c3dd8fb9ca35213dfb68e61eb9e3ac88e2647e3a7dbfc28de193485f97561b7c72e899416bcb191798cdcff2f50630aea4b296943a970dfb983acd47ec990d55b1ec8c16329ad94320fb1c2c3b896a19619dc204523aca890324f022b41a20bff7ca4356314bc4e952313edf91cbebfe55a65d27ea92290b975adeaf952c5fbc4415e7d8d3bd6e6319b578de5a66fd0a2197736b88d06bbd0a58ca65e1ba649759c70ffc914ab4b88bb81a1c7e6a2d4327944c967019ee63e34adadd5c1c77c2c733d02f93503e532af0a5178be79777a75a30bc2b4a5a374ca61f35f9d166d9bd3eb0aec8cc31b4c7e89bb751d1e38a16df5860e393c7c7ce995a315fb7c9a3d5c7eb38ffdcd3a9888c5b80b19cf35885f2ca26ce78a00d05654ee97c5dca4624f5c763bdac9fa45e8a0f53c3a18859f544421f746d00021aecde92466e5be57731900e57711e49868f826286ccf44133411b566b5300d9205aaa3231d02caa8434043e30b891b4e47969db9cf85ae95617db31e9a9d8834f816552c239649dd0962414cc683a39089144f3c1ee8c622c41c7b9b740a840ccd7f24275618a3f1e68c50f37c8fa073bfce35629c5512de29e50e74cfd66600564469de2500572a3e1867f549590bdd99f20487276246742dd114eca02905ebaade0a3895ee0f3d5fc70249f28612550f1f7a9a0356d4fed33020125b21c7\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 313233343030\nresult = invalid\nsig = 4f7ebe74a37d53164e8aad17079b798dce589d4b27878e57789093081e1fd6333871fca7943ad1444010f8a181c2cc6fb35b0729830fbbe3313551d51dd443011fda09370cf7aff65c448e5270781e1483291efc6f6fedfec81ada2f141fd436f685d28acfd7e2a01ad2e87030e076d8a93c497bd986654409c427c4f58ff7bfb9937cc068230804fa78977fc7649f31202437db9475db9def4e9b8409438c0724b9c05f3ad9f5ed9908ae3211367d465442de238edc8c2ca8d0e109cabed865fe37f6a4994651bbcb4d0af61e466808be729cc6978d1c08a1332a21f04aef0ee77e62becf11590b096704ba67219147b0881a000fd06baecb87db7549a74e08c17f2c1b54d93cbd43adadcd94fd116f7aa45d6e595d9ceac28d5ea23847ae6424bebe2d856f1c5605f8c88ba0ede58b90382e3eacf64c1c153174732061f4c80d071bf985946fcbaa362049fa86e59a72a93781a26c0f52f93a80e42d4a01fa4d292911325fe2cd70fa48d7e02ae80ae50bd37a2b23010cb8805b26a6415c4c6d265b3e28196c54d65cb67736378b00551a44da7d2f9f345f697175e4d5628f61998429312045f2baa16579a8511d9b4656979bb89babdf101ca9b81d49dbe0e329c9104ff76e290f6182e96e729884cb8dc3c5d43818508a19f462f0b7e4c790ba7601ae40d41cc6678a8a6eeb694d7e2c374397dca9ebc6a49ff79ca5463d\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 8023460b5fd886c16f15c0a31d2ec5a0cf43fecfb5a5bf4c9ca5a13e4c076cd55483398a20920138d821f1ddea3706ce3ea84df82a1542e9905f89322462e818fbd22873176ef1112d5bc2d8be0363b84dafc4dfdd4f09a694469d0c60133e2f4563a8718f0666f3d137456c2a1b644e963100e43b038b0896bca1775567d9ea6f0dc112918c2a5049c00823652222109eb6de7ea784e1f620666d61ba1127b4b2efcbd184a2300365d04b4724fa89a915d59c62903e93e8aa2b5cd04f6e1713de76335ae34ab98e2ab7c8b2da8009da54124685b2ec2688c4cd324e0b550c521274c848799a24fc901cc8f4cdac2a83d702e8ae0dbd1cafb69cb5ef4980e39d6683ef62454b47d0234bcefd2a9d93a482492a1bf80da22c8f43c0315b81f845b9597f855288370dce9f3d4256573e867d9fab46e5fcbf419f7f87c8ead3beaf9ddb345970648a0ceb2a94b487aebfecf020ca6b2950619da60af583abecd0c3f35fd449f20de3c6ae3ced3d348019c60295d324d68ca6be1071d336658e98d6882468ea8086af6ec66777076425bd708a046c259a391d90c1c89fcd4a8012de03872630368419d5d71dc1d77d0624fc6c29202c60cfd4904a1455955874c8fea2ebd940215d8978c5d23cd40cac7e99575b9b536eceb3351dee111e7a724798039a9c0bf8b5e671060e1e497877788967fb482ca6569472b6a4fd195dd1f9a7\n\n# tcId = 129\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 6e936a844e70aacab2a52b08c722035c1fece44e7da375047c8a0131072d4cd34598250ce2d953f1bcd3b9f010f6e73da16b5956b26017831e4937e3331c74f67de02623a0553e236e2f2c6c37b5ea6f9e88f2ccb33b6aa92823e23407998fca861bd2474c266070d32433b2d2d880dee2969b483b7b4701fc2eadaefb0954d17a2ab9ea94b050e84a71e32f319cb517f1c84a2df48cf8792fd4fe41ce53f71fcbef77a2aeb4b5f1214564e9bc238f92fddb7a231d154b65b1d02441e45a44c68fb775ecbad29b6b6afe0bcf37f7b28b9c2d0bf2aea540eb1a0035552147b25354f695070decab791e6a6f4524ed7d5991bb47b055fe4110a55dbff10c8d906c3b05bf012297cba96001c175130316a6080e9ef61f0afc653e9b0f82b7a5f07734865754753993c80b1aed172b2fc097d9cc1bb0eed9ecacab4f1954f454954db7bac959828a1b2e3e60f9a72280237d54653daf3561f65aacfb930774dabd34b52955d7f44cb81071bba7843ee327847e6f9190a6898f0907435595deb3ae9ea6bd6a11d1834f663fb9af3676f76a5e12762e893700eb9e65f4679dd2357b093285a96af7654cde9378919b5459c92f9d439b88cb3d9599204543a5ed89f24457c5f43f0afd36e774a23642c4359d1dda581cd27aec0fad4fb2554058d37cd5f517e3f0e9f71d9e80454f8c201144d966a626afeb31aa36126c115a33496461\n\n# tcId = 130\n# wrong length of oid\nmsg = 313233343030\nresult = invalid\nsig = 89d47254637f19d578cbbf89ab9f8dd5d658411d763501e10dc13a73b1898421be0b28352e2c505c3957cb65d745aa6dec6227954e7d7f9b6be8ccb98ff67f5733efa8b10d2041b862d2123a055291bc3038f9abfd340eac2e2ce9e4a6ede56feaf504903e7e8a2b1534bbf774cf56db230ec03be0da2299cd316af26c3e2058d3551ea3319b38a2ed142c8d806a0fe308a752277e8061aed64fe252464d94d60e1ddba421ba48262073b114566b3c9837cf643b8d168342624282dc20272dd5d92fa3de55fb1edc0079f4c2f63f2bad399323c3d3697e48eb5497289bedfcde9303e1e8de42f45e6ae9bbe94ce1cdbc1e92755ede9dcec33f49e711d0120df200c0dd6747801ef42e08e6d32902876bfd9a946ce2167a6575d4f9ff6ead1c320c2234482aead7fa90720b8115932cf243f49d3545e16e70afbec4c27b12dbab36954899ec927833a81087abb75d9bd854a4fe4daa1c3c6d466ffaf15fc2371789d64abef79ba05036b671311944179b", + "ce2fd6e707e4987ef9201a2a20531ab0dd163501892696166c47fc00e1060f5eddc64d79dcaf85551afe31ba3d87aad9c302e7c22bff0d7a5aae109f9a1bd95e02ac5c41bb3177a0bbaf4a1efef0dd9efa6e09d4cc3900c5a0164f6d391fdab7720c577b7fa1f6e3699457c72bd7ffc0bc32198e7ecc87a26946090c0199252a340acaf9dc5ed063b0b2ead7350ce5ce\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 40a14c4df726ed0f62b294f62573994e821d855a28d990fe600b7efad50219b2b2fa584ac37aacaf50428a36194ae2674ca2d6775290eda47cd40bc7b15a43f1f14293ede4f90c29c3a5bdd4081328d03d19511663d1e83dae82a791fda6a97d70ce80a977e4cf6b68ec832c24e4cfab0b0bcc9730d95395630bf4ae205c54cd45a1b818c83b6f9e457644671370753036920d62c2d6f64ded5f8249c79badb8bd6c2a1664069979ec38a739a92fd81114abf1a143a51af4a8895912e83b5c08a5206931feaed126374e870bf73e36203c9ed70028bcfb8965f2fdd115538d3cd603e2b172555c11347ab15caf65cc535bc09429fd0e5ff2ee9ddea121b18caf4d6436c24c56c4d97de567d4dee96daeadd310c808358cb1fbbf7bacd2b87eadd063e9bd10d6969b9cfcbbb7287162eb2a5fc904d53408b64cfd346a507f39ba6d8bab3dc01a12ebd753a7113fe3bce02ddbb47e2d4ded5e342758cb9e9113f0f287da337594fa3da4ec03b167b606f1f5cb42aa205f275e5187d166d8769d0d210f88fd956580ffae30c6fc637bbf16204146309569fda24fd38ef7a7ca5bd0f74ca8197d2bb9b2ef82f58d5e541a54190d1198a1a3d88a4e0331f1900f8edf2d31d6d8c74f0662ad92ec598a7fa27ff41de4951fdc4c353cb90caee871e725bda215068e41ed1df37f6287157deaab3f6e30c68cdb71e3257165cdd4c1489b\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 313233343030\nresult = invalid\nsig = 80c01d6f05ac1f8cea15e6adb85916192c365af6860d9760082ee6c15bfe56139b7bbe81865e9bccd775c0e805df4d82449dac42b29dcb7d404d5cb0532842572677fdfc834cd5fcdb0eb4be798a50d583b8d4ba730712e3f2d7c18c430aa7622b8239851441021fb08a9f98d51213ce81d0fb8e07ef990090610be6bd930367d76cd06835fb32cdff607d27f55a84b8ad7b8cdbab417cbc3072adaac5694c55a2e63a59a67585b925a56a4d9f47f0e9012935979ac75af96f7a40306363fe3bfdb428e9998adb3f2695e68cde1310212439abfcb5f78b56c5bd3db7b48caf897537d29c9433221359d080af9f8139d946d87ad5561741508f4ef400da92cebac640572c62ebd1d047a0f575fea856eefa057fac1fa3fc641dc8c1db63aa9074afec472feaf0082497cb37fe86fd84303b501f3e0346148635caa1ae2dc76f9fd7fc606529d5ffdc7a74d0ad667386aba017d510b11ee624adbc397e01b24ac8511bb1f3d1f74953a28114b5f26f0bd175f13949bdacaf9e69afc712f711d51c54c04db4da3c598c055ed786381c449265433719c26ebe442880f0797a254b165d0142527aef085a025b53c422e5ed4c4f8ad66455360e1344070c9ed3276979bcd210db43598033e60bfa302a02f77c30bb18487482d2c9b26447527d6cec876139379cc6b2a5df9f3ed91ddfd19a9ee6952ad4ffdece266203bb77a136a6de\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = b260371786cab481593ce95cd03a0ae66ed3a9b9e15f0a5a928a94a44f26e0c965c0035901ca12d09b5acfcd95ae770c7598f49e9f67eb7cf5d62722242cb0da595e2b5ac350140dac4eb36df1fdcf2298365527f876e1f798396b141f083b5de06f4a37741da6d8a6b227a8ffa1437d9afb73bc5eac196d846e3d7b209e61ef8122809fd21571e22876c8229e3a6ba49501784199ad8836838d2c28b90f86c570e25edc8aa8ebdc2bc2c08e8b24a0fa61b57fcfaf9427e6899b8fd10f2c263e3d2eb6981537bf461c3bc0f13748b937fe6ca7dad710c1706fbea0df183efb1efaa5ea2a73a61be57acea6dc6480db146a0798c2d50a310bf538da086305efdcde7735da2bd5e4efe5f1546602abbb378b1e8cca85507e6af865914b07f271305cacab66ebbcdaa4f9a21c66bae144b97e80aef5b75150613d46a2da399f3a51d4abe8d5959f96819820594ac4b8e37672552f58e3339b259cbefb000ab82c3c00839c265c032bacd25fd5c0c7816e65539eb4598d669834e2771f0fc416c4527e0c904e96ba50dd6786f6296b4d0de93ddfee864f8f8cd1a38c82ff4f46494aed49bf928721945b5e7c881549dd31b603391f1eab6d67ed5065d19d78159766a807fe05083d13986949b5fa004bae48252878c98aeddb884b079dc55b3771a67e294bc3aed666d25dfc865c7302bb012ffca4f146abeabc1eb1268d88a6faa2\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 84b69d46718915c6e9fb582d7209f64d7d05927985b47f60903584f73d1652d571ec61243051dafa5d440d9ba7ee59813c5ed847386952769b0c0ebb9633b302597a3eef713499129440a20e9f4c33d982261d68b87c5fec638475c41982e84229b6ce7e4d2fc957e66084dfe57702d94a7e8f31599c49e1baf6bcff00cf1a422e833c29233a71db631f125b1efd05c472d78f1244a2bdb1707d6c9f9b4fc7022b47a9a6de1530966e49a67e0b6346afb05bbf77e3fc415a696509b7ee4ca8e7b0a9b8cf7325f7f5d4cc37ebcdfa009d33d285e4064a554f0bf8010528db507d9dd12172236e02616a4e8693f064cc08e733eb1b975956d1db53b4d267fd0567e5a913f083df1dc3053e2377f0f2e063b69c4a741b51a2cc430a2539c13e831a7f35ce971587b08bd90ac0c3d801e22ece2a673ba1e224d4bed142f8a6fbdb6bc2a573bbd0674a05958868d994cc9c91165bddb67d6f2008a6b78896a77bbda1d14ca1f9c49dd34ae43f1e85585396b56223c2535b49df276e7e25bd6d75f137c9f3bc6411690c0dcf9b9d0882996df8ba5a36a5178e0975e8eea0007ca4b54bb7f6914172370226033f9780614236c21aa2864306da344876fce8f24a055caf66809648b608107ab0ce1881398ee5b14c2cdc6f49521317b9cb68fc877b3b52b4909be1d599a835903832bd243fd0dab75b43a02eabf7c7c61efdf59a2ce2ec\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = 7755314b6e33091c4217c503165e7465cf272fa856ade2cd36ff9a5db7b8e846f15a39418ab5e681d038fbe89ab6c7f7dc8ff7bc57040844b0ca6905a9019e592ac6a523b0edda7d3f11e224da2535338e371b05f736b7593c37ff156f73003b1ff335271649beccd87c02d5308b339ffd5b909b005274a2a09c8a0ac425e7d51599158407fe05de1d41e11008143dfca497f70c0e283faf9554025fc0ecdb1ff83b1cfafcb6ca8f0cc6e97e3a3a7b62b00d61cc4c1401dfeae2408622e19d5c06e69fe7fc1feb4570d58a7049de874751309af9ee0fc7ca3b50fa6493d03368405db1d483b61486bf06e640985c3adffe3540883716c3f78281347de09dc3de044a5c60c33caf0608fbb685d21fae3213fa280ba68aab5f822b9f1f5afcd51832b59466a1212c92063d657441b55fc39cdbf16801137cb531fd23de3fea0ff01d5cc68a6804fb7115a7deb35952d9a0dff4d3e31d52af4b68104f85654619908d08b16881c68a52b9b52b4807c3b44425b0987c08ab934c1342bb5469646ec0480798453d5c4d471f1c2b59fd4e4e363e1b01e1f05e19157e2508e57b615a1016269effd29890148867f5cc4159dc409a3320f9b2124997da6fce481be241ad7d4f780786eddd5ea0ee7a0b52fe419148059aadf0b90cf81825719abe73d6f9110b01b96fcd5640f945870404afda9550926db3611d89b22b73d05976adb679\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 51729b157cf61f9dc88245a3d0caed291c33d738c416ddc9f4aa73fc17a2a9b39500a361cd0db72243e02faf129acc8378f689842db2cff07ad43ee7cbf3948902d847ee2d43773e8a86fcc3016cc879d238ba4d7f19e097e331225146dfc915ae1c19184f81be47a3cace37327b134999c497425671a8f62e6678530114665f1861df49e8ef9a924e40424daf847b6ae1297d4c554ddf327f3b22b58488d83712fc5d736bb11e807bfb83297484902e100fa9abd4f36dae6195239d4ba9da11dd685574565df0b2cd9b4cd60dba42f646d76315d2eff56b24f7ad5744e109148d608a0a130b278974047992d7c508216a134cf0dc73931c85fa130ada08905d0046c2c5d05125db1fbac0af81c3c465bbec62fe0d93f7971639335013e7daebe749c1369764e9ca158bd27624fd1ed440046bdc49a6c4319ebc41a813f5859983fa023f781b0f99ffa62aa22d77363970f4e9085e2d5e928ce0dca2122df17dbcb3db72c73f68f7b507356ad1c7b3c47500408aaa4aa8b9070affa7c7fde7cbf29c3c93d29ac2283543e0912795d71e21e4c722d6db948ba8c30844879b151fa7e1543c0dddca62c34461ac3220a57e7efa9b01d48f8c41c13612c74e47feccae95fd8e1bf41b6e4c5946c32a5edaca3b6a89793ce34f3579fae2a765fc21c3521d5c3d5b3d80d7fc29f92bf94127ca0e509112aa579d66eb9a015c001be1d4\n\n# tcId = 137\n# incorrect length of oid\nmsg = 313233343030\nresult = invalid\nsig = b39a0d5cfcdf3534ffd2b1f7f025b33dd949164a50acba28b30499c7c6a5ced79dc278df30aa2e1e8086377b9b958a79751f32c4804a435f237c74fcdcac84c6fc635723446196b46d44356771eb5e276f2c8a2e359b2cdf052c0ad7fb629fef23fc22c82c375ee52601f858cae79643646f77e4c84fcc31f50455a48095c1eb72a54b4c0dd36ea3199a762a885d20694e0875ea2d2237053086dd7d34982ae10971b6bb478a85193d1114aea5ceae7821cfca3f521d62c57e7c97b55dd5fc1369602f15874925745503ccdf131345815bfd16b386de391f32cffd30a529e9f210cb3b9efe865f07b50c26810fc7220089b193e51003c819197e0d4a4044c5eeac1e87288a091db026886e09ecc386cfc378b775f42d403d6cccab2e473f1936eccb4cd41d5b246870ebe32785d8f9abc503db5ac269554ac3b6286b3b63434de33aee9df97b817050b0b857906d6cd4cd4d07b11df2058bcf924405ce020c42d01ffe04bb3919deab04b190d1eb4906378288a6feb1a1ce01e8256cf5b5f8888d6ce18b093151ae18bacbe81c42058fd35d6fcd1f6385d9d7a01a164cbfeb6882c7d094d2f058a5686d64708c928967dc8c7115ea940f994416563115d847e1c3e15f63618d42af12b47ed76b2ec0a96634b409c80241abcf3a68b0e255b9da7985a966ffe8098f1af6c7fe9da64be053c7db9addeb142f97a3ee6a90fe2329\n\n# tcId = 138\n# removing oid\nmsg = 313233343030\nresult = invalid\nsig = 1747d4961c28d37c225f944ffbd967ae2fcb8f5dbd3ec217cfed16b1e", + "d602f3d00b16007f94369a754f240ccfbf089f13a086d7e5cb5c39b4205d24c1b1838ab13618c8e6607d9fa52d08243d09c2ada538ee032fbf4bde8fd0b80ad97a557f6d3deb365481e6895525db6664c10f909a87915091608764707a7afc42a64a5c8a8effd4855485de4457d74765aa82a744614d35c83a21ea8f6b5591eec74a31476f39fce293328f9d3865070942308d64599d704aebaa707e406f3ab55945b7f9165392c13d069527011d813d20638d80eca7fafbdb548161e7f6c8ed25c0e8ed1d0faa3179dd18e75f0132ae11bc1904f7b195a345ea2b78025f0de6d81e05c01bb1734c766eb23e4032febfd5a3617ed3641ba7e18a16cb46ba9cf89dd406f8ed55748e0e9e868578a6575470b1066e336b4bf8fa42fc687d0590c8055866c3bb33d272f435258fcc2208a161d300267e7014b2a6bc95a42638daccff3cdad1570bc3e92746108d56d5ecb4a5fbf7d43062b5906571f41e09a3f7d2c5858b80cc25f9fe54774874539ffeefb485e25f2330893a16a0754b681ef34672eb8b881adb6700f5e19251259a3d20f42fd8b9bf3d9bce3b7b53639564171ae6bf78943009583bb1eca73809b1703f1ddbefc678e3f435c356676803a6072bbd0711d367f28f70338414895bdead3c97688c1e070f77697eef691a8cc609660e4f6bd\n\n# tcId = 139\n# lonely oid tag\nmsg = 313233343030\nresult = invalid\nsig = bc565c386b1056d48bf0bdfeaba954dca19874a51159f3ed835f2ed3d9023e3752171e70cdaa1f8ad1bb47cc921daab303f371759a5eb35a20722119921f2b3b866d2a806c4ce9ec9ea458b26c3e4d1e1c146b4e5cc855fffe27e4409a4fbf1c847ee6894a74a25a28e1dbdc4c3cc58c645e3b81be590aef4ea038add13779c29dc7c25710750cf516551d53e8a50f42f5117b9c6e139b2e8f1ab64331886a959136f55a03614d230b2f2b076c5d76df5dfe1a3ecdd38718cc6cf9c4d92f63df73b6672591760e46ed7e99ad65a800f15df2b88baed34d70242ae8f1a966f1289fd7beda15105bcafffa314f899016ad723a3e8fe067a7fb7763e019845caf1259b8f82cbf4dfb8682c7ac98d9293be1f0e697dd1c2c5bedac5a8f4c84e7a27f5fa5122007991c34a415ca7c8ea7cb15b16b2d85783e703e6b95ee7e2920fb5ca35b1f0e06b7f3107255e8b3d6041c5c105d225fd3eebd2799fc6677454a8a72d9086f741e0d83b4bf4a4c8051e5f02194328089182de71ad70c083287150c42eb48c613ced2aa51c713fffacf451c7bb03bed05280d3b30c2fb702e9efd31b7e79a3c27e419243da148024186afb40213a5c9b9325987c3abcc40187971b8590f6f4c3f945a63044851390ebb6ea99fc56e682c2c0c1b969f1fd265a7d6d11a38ec96f9ca517ee9849634bdd0cdfee2ecf0af21303ddc97b93e9c12e0a136fb\n\n# tcId = 140\n# appending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 3d8f557eb9f275a861327edb49e64aab8f27f15b0503ef64543cb50003c8e8198d1a21b220ae7fa8f2b9a82d150a6c07777d68ddb51e2ce4954f96936bf62f4f8b0417138a28cdce24f760368cf8a2d316dbe30597fe6060da1ee0a6a8a79774431d63c425a70eccc0ba2e6edd5e6708183f556689235736610049a2ca48e3ea3f4e15966eb95401581d159f89128614af8ba09cb380b814a0e0798ca89413a7ac4dd882b051c95599e6997ea029667103433c8f899b97807ea5e08bfc96e2cf7b1f76bfebd1ee3bdec90b6ecdfec135f97ccdae19d9c2a8f27fd63bd4ebd8f081df8db0e467a6f8ccffc09525edf345558446a919ef25acb69d419264af84cf45ac9756af252d8108cb10fc63fe8d0f15d8ce8c3ba4aaa9131bee157b99821e2fbc479092a9bfaae7b816046826e104b9f89eb2472b1d604ca09d4d530dfbb5ce8ed2cb4caaa0b0bb0c7694b37e64ad1f7bc26a976bf69467c671561270b38b224f0817e0380be488f2a86d1eb753c1470de56eb72a18380979e7d2f4b6a39778b4546f8b4782b19b5cfa41544171ff640a90a418a8f3fbee0e0c7a5e3a30c7fc2beb63a6bb51a071d6fdb3ca6ffbfe9d49890529a4c47452cf34f828e46c2d14437c47fa7a0ed16a1024752b5a9112692ebec7fd4f81d443d52c94849d3a1de7880ca30886f1b7497a18ecb3da314e66b6ac35996b609682307e1846d1efdf\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 7d26b01b6f272a51683167a0a345b132e2a259b1d2d255d839844bc1587837a366b9313c33a76a8e2c3b0dde023d4b4b45090fa8ee80ee3bc1ccbaa7a69aba4ca0dafaf412aa618b4ade92260a34b60792ab817a199d6a4efb8edbd1a6b1f9a2b9b100eca45f2566f29c9f3af891442804e7f9784ffe9cff2d8c78485640668ff7c0228acb147d66f8e42e72ac8961dd6f1102ed68d9812457c24e87708e4225ac098b4d604f1863fa90a45a6adbb67390d715a393e1229e1736bbc8a7a5cf7b7bf8a5d132122bc94f6056a47dd3f4ab0fb395adc96ea6f1ed3f96d0907e14b80d539abc99d5a5ecd1f7cfe310adf519a15c2cfa0447190c70982c07b35ca89c5717b8cc7bae01cdc7725af43fcd4ccea4175564b1a673c464d83f8c43dba42d0e2785245dffcc104f2e717782886dcddd29ca2a7ba5ee630ecd2ad185ae29647b728aed38924001ef055077ec01fb0333d5a687425a8385e7ec274635e780e0e4ed50dae9602b133111a08ffbd266945cb6e798b45820bfdece8b9ea7ac10253fa822e45071b8cfbe1387b0b7b70ca0a071cb20c5f0487c2ed022123606dd6a9228cbc892ff0c39e4816e8e1974942cc094cfa324e9074d55fc66acf160fb8577b04fa213a4010133211d59714fc1bc284a9d96d9a7351ac644d48e0ef6518142f06efdd702652638ac9725cb769b8c8faad1ac0c0edc344d17483f4f1dc073\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 313233343030\nresult = invalid\nsig = 19f9103e7ea9ba79c0e880bf8724136202b5ad3328108384813ebffa98e1c84c7f335c99473cb72207371222e86a6c6f601bbf017a1bc50a42749730a03bf6722c24a928156b86bccc97906be1ee6abde357a2ec4850719d8507a567cea7d1581c1bfd35b78aee7e44edcdecf768d636a257ad39f9def79e0459bc33aca63d97287e3bb37e41482bcdc0bc41071af3a01a33560db1a150ee744206dc5ea20da2bf75e5d2b7656d85e83d9bf63250d97998e3cbeee6eb3e112f590017c5d0883af97b7d3ed36ec7f8fce6bc84c7cccbcd7f69b205f9ffbe2aa940f929be01e25861efc0bc0701f366a5197e50da18f8d79cd277c48086d1373ed67b983dab817fe44fc1b85411c3205a46f4e209474a8b23c0da698f8c4130ec8e032714a05bb38dab60c79feacaac3907c4a353f21c40f00d3df123fa4327d686576606af1e380472712f65ff064f31ead17c79c87daaa0be792f8074099ce70bae1016a62f941aa124811b1316a6a584401ed8b3c5c58583cb43afb29140c90422c9557b8033413604cbf425a1f3d61e7d8aeb9f989a2b4d2549602f2db514b44b82e7850388cc396f5be16ac1a5d4e919724239c5c784e16d6439589e832031c1a133741ed373a1ea5a7ca08916b7a305ec97dd8f2ec080a051c60f4e7aee36ff5ec62ef81365806ce48a3eaf77ccdf4263b38207fe922ae4beb49621aa396376357b03dc88\n\n# tcId = 143\n# appending null value to oid\nmsg = 313233343030\nresult = invalid\nsig = a5c5c5ceb2d575014100aa459cee7136fa14894260c42d89da8b5d63e100ff5b504c25103319366e169a99516de7d0e14d37c590b586b5eec989a9cce06141f6e130e377285e4c64bdf57f2821f6aca81db1bb95539016956039d74f7c3f47fd689eed707f5e6defddf68f0d5185debd03d67bd84172481df01a83bfa45787585be655f7a064f8cd86d03fa2537f061edcbf8a141caec80c6a745a77c5fa8a00821582e7975e0f61a5ef0cc5ec2ce48fb793dd28dfd076b67424fd2498ee01a7e6721ce868474bcae0f29ede3a3afc7d6dae8bc35790ddf1e61f170d6609bb9634ed6bcf2482870c700dafa2af9769ddeb7bc98fef19fc04ce1663006d44f388c93cd6f4e4cc56825f341c09073a6252f142404b1521c83b42272899b19b7853d238e50784a9d5424290d1763a441a7709d02e49bec7c7837fffecf13ac1a8fc21764b5d88e333172a660c816ec8472a921dee5782d1037f32f9b938da205411c05f8ba0e869fed9efb7b898558d0a5480ae0092f836279bf4bea3f20d202bd8a2cde9cd118c84cad909be76a5aafccd602158052bf7d2ad765526e26648eab3526a5d5e8d198231e88f487641c8232a9e15e6acb1e72b550c6d60ff47f3247a558e94b2838032b2a43ebcea66e47e554ab8783308c75713d58e57bac17ffd472bbb8ace21cd8aa3dd60e712c76d81b7bec09b23d3db48549dbaa7dcb42e5e9e\n\n# tcId = 144\n# truncated length of oid\nmsg = 313233343030\nresult = invalid\nsig = 959e078e58b4daeeb3cf822627f6603bf94ecc5bb5d06afe4755fb188b6d7f96223cbf39211a8a37929dfa8c429544723de33d8fc7082625ea483abd525551a0be89a2d3c80d810e7a66b86129675c87cbe54b3b5b636c057a3858a4151890fa45652b673399ccb0fbd66856c43452407adbf856deaa851b3e3fe39df38ce388bf8d368252d3ae1f6290328a3db8b924870eff43e61469aaf2f3a82a5afbd4ffcbff173bab81de4534bbda85f92571021975e06ceda4232b821e8c1fbc8fd897086ebd5a364a212ad0fae314767ff535632abae2e11d2012d40b4f7d4657fa6df28fd0105e6075414cbc05fa139adbd0f777d280ca6cb84c46b819293f165fb288a96a19fe58bb4ce835e0f2fc8827dac483bbd60c5d7398a9723646644c20edd068efa8ee85806a0db06f761bd325fefd07566a34d9f5e61897c39af9d7b953c3deb5817bf01084bfa3f8b1783e2f545abe8ac76f1d1e32ddc5ac66695d976f111e05dd921f4413063b014167e45228eb070a390dcb44443ea6ec44794c86804a64368a9ed51dab5d95b34de8719c602727dbe1952d7a6107a43a54877871ec9a82dca237eaf7ae007a3c35f33f3f39401fa4e134623ef69feee6c2ddca8e25cb8a07f8a696a0b344d046cf3f83d3580b1ae75af0a033a000ed490204ee19c0338e5eac9906dc3d66f5edd402baf5576c7df56eea17070dffe047997851e0a7\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 313233343030\nresult = invalid\nsig = 62f4be8408c6b8884e73392b37df67e92bc0efc3ac3f8d75a226d0d4955177b71d63d25b25353f34d4ecc9b9389958129d3467b57448e75820fc6630cd595c58263a582027dca51a7e84767c2e619fda7746f230e9f0679ba4407e1d2719774e8a4476afed55cd636df12391a55e4f94a37b81747abbbac5d95891e4971c705402e8a9e6d0d9c4a028f36ff2db53a12624086ed6d4deca25801d849d82d79e95d09eebea8d783b2461d1af6ef4ba880aadc1b25c7ab8dfe474f8eff200ee551fb261c620499b7cc36de32f20bdde7891eb0e7683893f3bd9aedf0af9cb06fb090628d0b83ce6cc3f7a22bf337a30e9b3c77e112ded280a391e5c66774d", + "a01b282ae7444247f90a4ef58eca6983fa271442b8706f881b3f1ca7c338bd5316f16bc8e7f5887e54f39f1858d2496f724ad49cbf9d1c53bcfa4ceebc9327d977d844ce25cc3ee109a54f33c7fb5ed72149f454b39da42aa64a96227965936e70c79b3d1e0aaa670179e5293e601e30cf18632b00480592403b915408a054cbe42c81a9812e9722fb19d96d9838ce9b5f83e953305278e34ed676f520c49814fe45ff07d85085fcc262f93b622fa26af2adcb5996b241d137aed2af656db1d00b55f16935b04bf6f56961f093632f3876cc1285cf48262b3d5431932d1ab7c509681b98714fe34c59ea8ff235118155d1ca81ec1f7467cbeec0baab014b84d26d62f4\n\n# tcId = 146\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 93d462a876e26c401e4efed28a56ff2f4328d4b66d26ba4fe5679c334d7466d3b9907d4b4f78e933f91aa5fc18e36b751a6e40fb1221ba375dd55805fc0623834355d39985253dfcffa3802e8719db3a213fd3500506127fd9a3b856f06f1ba54c720458b1a40a7c349df52515615e61c7bb93ebf7871d7f781df46467e4cf37004fbbb87915fbea73368b5108de32ea25954d3ecc1777d1d6f818ed3ebc2b86b7c431df48974c5efccab71c44f8ee7882f9ef8057e87e1c48aeba10952b48f75ae296943988460bd489688a9179d27eca11e3878f7422177ab6f451ebc48d30ea79609b36c4fb16d35f43b0ac1bd2e765841f571413cd2474fef28d695a7daae3a42dbecfb4ccd3c3200b69bf39f725a15d749fca56eeee1b6c43bf59e490ae15237992561c8d7994592b4d911e8d26aa95b131ec228c5da95367e3a4a0ce74f73cf3a83d9ba31eac9673e73361ecc504ee52d943470db9668aaf8263bee6457338c19439cfc1d24a4f8fe20df2270fc32b145ef974d13e666124ddab7c5d879a2255cadcbcc78167e5a6afe692d2711450ed29f5459ca4a65168a090f17e82323b0ed5abd8558509071ec5b90acb7353a6bf5001bafd690c8c35cde3376e104a9c46b3c4d3302dbb00cfcf252d788a003c5cc50dd0e4cdb6a4038e4b7cf347ebaa49a9270c2b846d032b5dfced84571a1cf365c6a83a3f3eae71b97566a6c2\n\n# tcId = 147\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 1b1c3f45878014d91b5c757bdab09dc48b38af3068ea80e1c2d412b8518c6b3382d067bbb2308d3e5c109bee3e483c90717d7c6d71554812acbeae40566f205393c4873e63bfae5acfa95ee73559d152595b78f11ab33112fbaf0296b335e6efc4aff2dba640abc0cc76c69cdc0f4748aa1ab1c4ae9792e2801a852b63f297f0d6126fd57df87a628a12cd1b33f9fcfbacf140fd393282cb9c3c7d04a93d3c7e00ddd691095530643260973134504911d98aeffb49d04e8594a261b813995ba19ada639de090bccc10b87ed1f2304a16d2a4b5c0c868b376789d03f291ae8c0bb9ec336d89c5865536bb725fb94a73dcb830f03d49d4567a444b1ddcd1c575fbc27adcaea7b1d98949890acbb554b49bf92924ead8f616c83563ca93874317048a48d71ec0aada0a7b8d05daf073e8095bc9c6fc280c6e35ffe414d75b059efebcb67ce51c3f6efe0967bff90ff5b1ec7cf818d9485f1dc8baa5e8e30119e055448f0d12b0005a0581c4a296e8490ca032bd4ea05ee8d7bc3bcf290cebe11ea116609e13f5fb7b9f2caae9c5fd233c88b8f5ed90b5c8a167187c9510e6e902eb927aa7b315dac3ce141aaa61a3238f29c19a2af0d76c9ee5944257644d81a4e8a3a5ebd4aba0001c4fe6eea68d01a0b0fe715f591e07d7b39f560a91f3559542a8fe9be39424fd852f5dea99524cddecd1c7127be1f6524d5de2acd10c01da74\n\n# tcId = 148\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 9de0c820290da7fede3b34f8936c27812fd7c039c23a49117215ee99e2c17ee43c48727b6cf75a404936d393c1c592ef014682d49144263cec28708c1909cd4aec3270ccdc81de872f30b62fc6379ccb5fcf7056c100b2db6e57f4d2dc217a0ec9a3d6e912776c401b11d75b193e4b5d0104a92b0110d8af03740860d1824c5569451183c0f9a8bbbb84b64d2acc0595ff5c68ee203e0a0b148fae4115298ae9efda89aed3c7a5185f8e26b9b846bfee61d98da9bf0bb6cd5e4029dbb10f96e9f30815316399807ab31aaca8b3127ad35e2de8c01f2f63082898ff7913e3b8cbbe9191ca94074c3c99ead0b363d35d64df211462f42a30b280f4933d17b0f9df9ecbf424c07c733fef868c1a42cc380421df8a6c2ad49059d0cf7aa585c2a3314e1a0930a340d30cb4d4dbcb0514a7e8fbbe93a6071352ca91e9bfbce906189b8a319a4f44fbd4aae52477f90b75f82578adbf1310c6c62011279f1bc8c71519428b8b9be578a5532125a47900e9167f33d18307ce54b140778b5502b5a22198d1300ce03d16ebb95c4a927a69b9dafafcebb4435cab780851ce586b746f1bb46186bcffc2e78c58211087948546eb9260742ae938b3f04f10d194a4c937f9affd573be9942945e0720c5d3b4740f6a498259195243e51127a581cd6728f0d8ef67261320737906816810324089d9e535b111355d4bc1b1a1d082fe44820774e\n\n# tcId = 149\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 1a14143280cfd555bd05a13d9d546a94f5fc0e7994eba32475ea07f73aaef2f5e914c6018db12835b3168fd8e39cd580918a52ae09df03b93afc2335f05caf5ed944f9210af9223108b50bc49a48627487f7131a12d35d338d840c74961a55b41c099b152d052371ed15a7849dfb37f65a980f628f4033803decab3db64c80cb39cfefd94a38e21c9c650d7734a40262200c1b9265c823b006a3c4d95e1ac3cdd493015e4616b70bf73ff0cdffe5c5c05de8e5007c8d58613fb4280e70e51ccf2680098fd89eec6aa1d860d03a8b2cb722208a68d721713ca6c2c5c514db6e296087a8aa4a65e0be3f721a9abf46aa4767677a0016e27e16fd12d00ea0b9bd30b8f44e698d659aedff34fee6f563ead88fd2d53f2c5260f23d299a4bea1829b85ae898b47d76fe64e6294c1a7629702e5807f9ae131a8ac34c694c8284065e986a4134401675ee4124fecbfb772ef057a5a2602b24e1842b7a4a160bf0ec6b599e9ec7ed6f4bb6be0c27c0c6505aff4b3ab889a3e8b9c24bd329d39a362b8446a9b01827330782323c455466855f5de197463fe4d9810d69490b12cb92023b4a02a01429d8e03f22dfe9f614aa326f0a7a0d153cc6f4f7c9b5d3916fbbf115839c7250657f03e17931269d043f16612be118f3d64b0a8a85fd57ac7fbc02ba7a5212c5e71813a3f711245c68a3b28db4723462af16e1a3db94e79c344b7614b4\n\n# tcId = 150\n# changing tag value of oid\nmsg = 313233343030\nresult = invalid\nsig = 76afacb11b73f2de01c01482b3b9c0e0be0a814bd0f9dbfe73e5acc49d4089d7702dcd9cc4bb3a4efb3036c8ff062fd816b41ce2b144c6f7fccc9c6edec44609d13d052011ba6994c74c30c5e17670ba07868aeeeff18a65a70408fa422428bba9131b8586c2a4ac2af0aac2c2a0a2a56f3126d1b76dd2608a3d9512b9396559491a98c761226ed435ac657172664b865fc5a038747f3ee225694de434838e0b87d14fed71a9046fb36434104051a17a658d76b129bffd25a11098137f561cc4f2e3a72cc66619658848dafc5fabce6707acf3c919ca2f88fd4117eb3b9805d2a00dc65da7ae9656e77d671872d73dcc43e72a0c94846061cd7ab361f0e3d33e03d72732e39545e6283da8b50726c6ccaec0ff96c5a3504da85b11e61e167a7965ed18b828bce7606f1aabaf66701c2d7c23a6c7dabbe8e087ce5302d16b2bdfc372be4f7002e7d3204b5d410edab015995dbc4258205a76d9ba1981dac70aaff4059c87255ba196140a0a2b8e484edbaf242dd3e14780c499c78c5c809cb11fa0329e17d47d890b4011838aee545b4312517527eb59fff5e52a125ce8dbb9dae5f72f3577344cd4f2330f09758e36b50dfd38006382767393c308c0acf9f4bb0c580bee3eb619b8d94a30568eb5a67b32e602370f7023c363c7b6d8ac38cc2666914ebfbe0b190a032405d73c7c2a8cfd1349e4fecb90d7e50575e3d3f5be4a\n\n# tcId = 151\n# dropping value of oid\nmsg = 313233343030\nresult = invalid\nsig = a08cc360ffd7fa1cdf82be1d2ee5a39b9dfa9d34eec9a7e5125444a080ce3ef49061d8f188facd751b06abf4ab4360ae343c245244bee8f6517c894491c2dbfd94cffca8344066009a4be1275dcbf3932d58566e8d71be2365d3ac081350726d429cc0a4edeec41713a3496ffcc476451862190142d895449851f07a79bdd3387697dc0b76a1476ecfe9cb05675b49a12f3552d0c3d90239899921fb41bd26774e00ab270296300c7dfc577f854d7868600f8ac69d7efa5cf331095ac1300d410c6f25ad48894474e9008c91cdfeb187feaf47c6f4cab4e4cf83b300b19a566abdd957677eb63d30c53c4feafd3bf37e2bd4680f2c4e473a1ceb44dd7ff18e99dca6c506feac0785255f91a03267a3268603e4d39ccf16880a436c2c87c79e075dd4e712577cb9dbe0dec4f42328cd1f369478ab43ed516bdb45d91fb237194149ee89dc656e0814f951ad30f75ea04a0ecdf8e3d4657d47290502d67bd1fe18b9530765e4db10211da2e1470849d7021a39cd4e7b954464296595064883374cd3ad5ac417fa48fb2816d5896bd7f0b588be9e483246c48afd9898b49889d13af851d064cdcbb4ce35747b15d1c7a050aaf494ba7e79687f59f326acae771742ac7f7b0f1a680321d0356f97164203260e187d661fe9387b9d20f8f26e3871eb0ae331b4962599490743e1ed509c50d55721be351ab7662f2d9e039699ebaa52\n\n# tcId = 152\n# using composition for oid\nmsg = 313233343030\nresult = invalid\nsig = bb59b5832cc0b4cb649cf9bd8548cc025f6596fe73c3315684ccce1b79b453093328336edfd8562045a4ba413aec0ae63678fef9402cb0aadeceb20f9419a654d81c83ef0e4183797a054091dd8fb06d8614ab0d266cbef3b871bdb5643dbe7a93fb0a733166a556993a60809083ef5a4bc70b525c5c0de3ef220d725059561436ec2162c3beb9793f4e9849e7b89e0a26c44446e52c514e8000c9f206676fd6a034d54a77c31ca73c2396f58048d6c90148fd6d2924bf125e3b126edd1f17fdf31498ba04b7b86da5f1c4a6843a7bf6394d021b1692acc641d0956ff3bd6b7663a4759eafe920eb28a363ad12cfbbf654343aca9f670ce6757ee12f21446c23ea32ac46b79d10a3bb55683caa97450607b5473920cf10c7059b5719430102dc511b039f9a55b9e1824332c9b0e29608666c0f1ca37c8c299a9c1c5ecb25e2b9695903f8d406c98c0ca3d74052f09d16cd2f4a607d70732b8d877285c9089ae59dac80e031e563283270dffc024dbd8e70120d44b0fd36c643c135a811dc042fa376eaddf2e3c1fd5f2a23c0b7f481f5a053da7a4971d911db3acc6d4a3e60b63b291debff77fb55acc5b7081dc75c651706986e90e9f77edc2dcf721ead020f86bbb1ba439ffd165d127e51063b0916f36ca292eae", + "26962cf9a59f68ef8d200652d42d13c80ce7f0b5817fa9c701600a4ec3fe770a4b42aa8e6016cd16d8dab\n\n# tcId = 153\n# modify first byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 557a0cbd9b8b16b5c9603b2d36e541313d22a1904f446dbd308308679a096c2fc3110d4e98a474e0f5a7e04628f066b4480697dd29d63df810ef7f1890d5b16c3a7172200dbf7eff2862bbe6eea017cb8c98097bec1f342a985ed7d9e462a55da249f9a523c80b1cb5def853ce94cf43d22243c028c84201a993d2eb48a876722f939aaa81a9e92e65b07e541894e5bc23d8cc901b121dcb6f543a12272a81c8274bcf996bb010188d99efbbe07403c708085e5e7b24ac09e96b2fbe561c2d4ad49ab3f9d45ed7c2bfecdd26f089b9bbb3361c848607fb50ebb00fdcd8bc9dea6cd311ea49be89b1fc59063ef2da7a9b03c5b8aff5478e7d8a7aab8b271215d4f26afb0d6b71b4520eedb4687c72e26680e79c20ac06f7a245b0257567d3f325c186f891289513848c7066acb96241b1efc2bf2a2908f39576c9976131d89e4d1f7c71f0a4b97238d05e7e46cd207c0c864df8b8df368160fd766efb98cccd879afe48cf448eea4f660b069be0b15a6bbd561671997c5d92d0e1c0d24a52b5ac82aeceebe419b6e092ecc02b8f151a33108150301bffaacd8de624e4c50ef1e392063b9249ac6d2b7e747e5899619df886e41f92571d3015a1eccf1d1de6bf469bc54442161ecaa56d447c99ee5224e1d049e626faa95cd1b099151fe6091660fdd2dc9aae83b4c2228447b36a440c639bde2cf65a14fe778aaedb21fda83a1d\n\n# tcId = 154\n# modify last byte of oid\nmsg = 313233343030\nresult = invalid\nsig = 857a7a9076c1d8345142a6f66d251882cd958629e8e4a101f22d75bf0080a964916c5224484f4ac8de771c2ae210567b09bf49e8842e08370c874bec3cb4472cbf597f4877571f9a89e01e2d7247229103a7d9086cdd86c488dd51065ad8dfed3b30c9505881f4daed5f86ee6e8ee2eebc995b8da2e8b3f44f768bad620192f5e798b31b6eae9abad0b6db18366958b5e6c04894af47deaa57dc443d03391adcd5fcaba34dafe33dc8bea6042fad8d5313cf8b5b7079bc3a3a7b68c36777ab2e6f6b72cdcd93ce0297509f3db4fbe69a628696b13f705622e679a0dcc64037aecdc5b3b379692c048162fb8290ac71f017e82a85a8e6550f53872ada3efad72da3632514e50e709f4ca60c1f079deb46e70724f7db31f1c47fbfafebe5be9e78168ee135a629b2daffecf3077b8456ff91dc520b344461bf2c8be7de3f9889a67d0811695efc5799853c23640cdf5f60d837019ea6a536e27ea9c16ab5a7014e1c4fb6005d74a74bf1921a6d7ec725e336d10e1d649f4731b4ec2be54ff6e61ccec57e07f6a90a80085897f584b371db73b27d0e8ca29dc7fc35a809f9c69d7a3bef3740c93b0aeb3938b59b018009a4580e35337599dd56b8d06c63025fd12952fa1f292e053adee0a8cfea8cc8b5ee5d01ed4f141356e294bf6056eb712248a0884508075f40d0facddeebba5d73e6a9dabddd829aead07c7e473859e479b3\n\n# tcId = 155\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 3722ef91b2465c53451d59972adbbe6b7f65bf07c91677858924b5b5b4ec59422d6d57ec065fc652357963d616593862e74dda3b43d2f93fafb8366d4a7c708e3d0ec1098c6f92a53b7067bf73054662385957ed8efaa09675436154fe3b069614a0c61f58e78ee5e18dbf8daa2cc43a3bf46e4a71bc3db0a80c719cdcb7e009fe6f0757861a8d6e3c59a5596c428bb1767e5648cf682d03f5d0794061bebb57ef1b817956e697bc5ff3746510f29242eb7a4ccfdcab6b9a9daa343f4d86763f498fb71cfd842f9f8d1f7ddd766959099066a2adf21170288b2dec74ceff77728cb1f3a75c5897c0ff781564f628286e61f21b25dd5b36f8c8682f596b783a29d84d7b450c910c2b6b20434f377c304d08983af0b12e16a700f063b370882ad64ef9310f5716ec50402f33b336ee84a6cc96f115982ddd3d35a9494ed3d347d70f61cc699fdc7a7a1fe8808cad7f13e52dabf86ad417bb76614c0cee7e63a53f5f5e5b7e7bf04e94ed42d5db1d1e70455ffee317ee167f041b2619b6549dc6627c954f65b4b06171889429a21bf286cc6b80cc18db089fbc00ec827e3360fa1ce1f4224ada5f778c7e433863afe19350a248bb78b7c5aa6ecba8c2f8b9936980611c4260ac3cbf4d821a22a3d886f598085c3efc8818a95336ee6a748d0c811b7256f3ab8eee183597956f793a44e85be9f87e92b6b197baf7cf2f7a08c5f9c3\n\n# tcId = 156\n# truncated oid\nmsg = 313233343030\nresult = invalid\nsig = 8d1a54e2472f14039f1a2e1019fc6ae4159ad89f6480d141b78ebd8cd4837246a94c5938a67f2d2e05b5d5d196ae055d26e1b4fda469d6b8068163bef5bed0be6d098deb84e7007c06b3b6eaf14a07130b44dd01c14d7cd0d3fc2579c220f2822628edb9adb9aa5509858c14d242bf1d77d56a10e379e370c892d1ff2becf19aebbef2302aba66763c853e575c29421ed66f842b859c222ac2c0636078057adc1a185511085111d279b520cb2fe43b011554e8e7e37baf2a9a51003630759a9b6f6d2f18074751327ed739f39ad69f5275f340bfa985a4adcf865478278430eaca43d99cfe865bfe279ce417c10cff0f8cdf4d73a5e5ce77c95a0e306f3500b19055aba5b389de3d7809498725469f4396f05c2eb89a09f55cbfa087202d7c9b1f25fcca58f3908199a9e733f57aabdd3ca42bf2ddcc5612c81cd8619bce0c3b339ba8e9010535513d2aae38953b573800a4924a3e26a5739af64fb0667370038ec0e2f09b053e1c32312c72583ae40b78846c7fc128fb17b5f5cf88b276eaab83c54ce2db2b8d6ffb6cb8f6d0dea42f6c4b8a01999285a55c2e48aab2a29ee15d6101b699bd7d361436a6547788b68d40b340af8e61ed6caa189e1d095fe735bf98dd4fa8730c204f67dce1faa021238a1dcd34b14869d8ecf8bc283f964cfb7c8f01e4d1ed92204316b5f3eb5355adfc8f04ba97a2b9f0f221ba103551458e\n\n# tcId = 157\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 37a5fb4d5ba5c2177b7fe767e59ed949992e0bb6b0c9e5d1cd2b777bd1f57f60e79799b42cea9eef4b0415d6d1825199f44d703b80298c93f4cf5a46b33c891a93f9b54b9462f0286e6504f0877e32160d098fa7b8f593010c5a315399660567adcba7fcaeaf557feb6b0b743d09866cf92abb2586560c70897d2d1d5c7958cba4bd8fa33814091acf3e36260b44158faeed33510f1de9a6c8ca38f3182328576ca98ee18531b24c8699e4f975cdfadce528f87914aa1e9fedc573634534b2f080ff4458f64e1e02d71b2490a0db3595797b5ddcf213238d4b91d04c44bda997740e4d1a73b150f82e874cd6d062955f2993fbdf3523f2132d6cfd6ffb1e33ca1fca9dc53f2f767d604aea78a3f2751df2a21ef92b408d10549234490172c26168e293acc3b862e5537f9e6975476246e91a72e38b5554405e130caf094ffead06e397e885d79994dd3d7eefd7decce7e93621e93867d33c68ed87ed11ffa4ca700ee3c36cf06ad467f339fcbc35da52bad2c8e3cc65e9a89e6046ab0142095f0502f6ddab68f341f5b71c39d57629cd66bb7b0b4fdd507105cb12ec3810361430a78ccd1f0aedd96fac40f8f31823d6c3c11534ab3dc6978838ef91e2526362ae869fdfc52a6166bb5611a43f4783867649db78fda04954cb6a52f43d81048934519429de8de14a75a87f1802625c391138d79a96775b87ceff69d0f8d2b729\n\n# tcId = 158\n# wrong oid\nmsg = 313233343030\nresult = invalid\nsig = 0139c2571d73ed85895ed7e78bc4fd1eb47b9883d5feb7b17cf7b571ab4d9731e3210c4d4c3eb6c6f1f833f59e01e9487afb35a0ac558f8c337a1261f2c6bbb21de0a54d2f8740d452477ddb8ca734ac9fdbc508e77f266b6ea3291bd26b1617c7f2737fea1b154c035ecd0ec7c796955a66d23a799f755c64e28b0996ce26c529a11d876423df3aabe0f2cb7d8b5a7688b4b1a0563ec3ec9265171bd766f226e855567348df48da3e7c5b12bb6cd6b3773eff51d82f0de2fcea359d88b664dfa9b33c5aa079a9e0d874553a9ecaf76c0e1358c7e1f4cf2d0b8943555740a827b98d141e760c27f7c673c54d562d28ef86770b3673dfd205222e6ff0b03f394e89ce5e04825b4696c4c88e92dc3242746872a8a409e5e01b07ff64ef1e9554c35cd1630a842125516c6f4073b455217640711d80d6352e263ea0439cb67dfe9d9e169c5a9f0a34d21de64d63e67b4474e1004af8a251200e21ff01acc9290e6afcd02da6bd5f18c2af4ac01414eed63211b14af38ce103d190061ee6eb54edb69b4e443708703125883647466784e45ecdb6ff15a9be7281491bbd1e557445c77ef7d5de6d50f8b03ae9bbf670edc8d87b7ce3d39fb57fa245ea98b54c4da97ff4928206368841257880198236b308ac230a18b20e5b89ffaaa58be66fb748a2971794a88f36c7c3b81e389ca5cd993a0fe6d911838ae07480925d4899e38e83\n\n# tcId = 159\n# longer oid\nmsg = 313233343030\nresult = invalid\nsig = 65f98b901b21fca824a5c3c0175f305a09c7d99aaf15df12801c7b4a8decd14e99bf1e2a378aa29ad3544a15f281347812a6d02f80711139effb6fb0a916b15e56f87a3ab7c099ed807738b644722b0df4f9676bb039c4417ab9668244abfe10b660481832b515c3e756cb7726165a50281bd4655fa41e5df37ab0c870a334ab4377fa9861b0a7ce70dd8ad88fd7cc8f8cdf970784501e3ee3e62fb10ffa3da02ec33b723a79fdfab282baae9af35cba5656b6a568ca41a60d0bbe24f4d3405ace896b6267abbaa84666361b969ad8f64423cda7301e931830363cae6b98cf11f73fb9002780518d71f2f222cccd07965bf315c85625aaa3a47e319ac26f35ecd011282f1085dc1d84266153718b2b87b7736d4c0e175ce2a0759b57a3b412039ec5150ba3c2d84f6dee05006978437b65dc68fcdab6371a0e84c5db21697436fb4a74fe24219f077dce31a1377117807375774d4533f28b8710369c14d569806ab6026e0dad1f39a0a30a766d5f435da01b072ce6dd0649b23d25f9d16dd80645c0ddf93e80ac8d7d6ff552656ec048ad7c31a52047cddc86daf9ec2904358930b0f082187b104cf7fb866915caac8522e060141c8b580d602ff7f4bc60deb6c29db8cde03705e9d3ae4a6e84e95728e1584f3d00c58afa45136c38e482fa7c7bdffa39da749e78ae7e2a5e3013422ae9f9576933ddaad4afe500ba1104ddb3\n\n# tcId = 160\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 30a4511b14bd347031dbff60a60f69a111a19445c3369ee8d9fb20d3ba93114df68ceebfa1a1b28030a43dd8505518e9a4a04dfe14a828dd49005832e57fdf0890661eeb5717441b2e27a42624fecedaa2f3035d0de3ee48f1f86d1bfb4a57e17814940348e57fe704e44b7cc7ba5f7b8891ed9c11731f7744303439168e9ffbbd5c8705426cb33a6d52dc9127bfed861dd2e85edce5c0f848b99db2546ca10bd65f5b0c36f30367", + "ada3d400aa9cbee083dc2c3d99fd1dff71d779faada417cda34f1df080e2c8c0200f545131e385457a8a0236099c61a28ae737cfe6e200198dce46d1e3b1c97b09b359e86b9909187e42eff1abf90fa53e8caf1e17d32544bb78fbc0160586b0e615cf0980314d1e13bbe66a1ff97c0675d72b7853c441874ad4979e8c22f726961b077d3e99cf92f4e6ed28c8fb0d4f79fb2414f62a07e8f55cd79bc55d2662822aa17220c53888588d89229bc596d1e07883dc713c2595d026957f4fa61ad2a00ddf1d4dad8080a39fad12242793b18ae23ca6106daf717afde60705d59aae2fc10ddfe7231969fccdd91a347b6fc127eb52de6b92e4887736004abf2b62a3f23446ad8a0e73cf75ad7067bb2724e16e7219d7b294af79cac1961b15e4d1c647f6a107c6745fbfc322025fdb386c5553dd986bfd0647d8496a71f264b9c70343fff829016a94ed4acad561b59bff1e94bf6a0ac86bf748\n\n# tcId = 161\n# oid with modified node\nmsg = 313233343030\nresult = invalid\nsig = 1402744b6a6c94923bea2f48d4aca69150de1c4d4e04ed7e64e6cd2bc97bd7892ec94d70173cff6985c736b6bd5a698c41bc5987353109ee10c2df36a681b6c81e81dd0e391254100b9f219c49563dc7b871f797d025ed06906264906d2923ffa931a0309ff9e072ce756d0b4785328c12d630169cd34956ddd7a0e73078e7c738e8128c9d319686197e53b92cef17d8b10d5c8cebf5003d4d2c38c63c6cc230d3af7450766e7759ae4e854efc1945f855ef2e098d8199b6b024d43aa9f7793ad93dcd99ddda78e9f9be8da8e34d4796280d5a6816b6bb7565755659afcde89b5c12f9a90f5919c15ccc3de585d8543693ec44a63cadd1fa09a827880a406cae0b51568ff0e622efc2b7c65f4a17b1de728c68f3a9293d904ec1bd33e327ecf880efedcd0dab78e2e11fbac7da503bcb7ed989d0f8c534b1296587cb21dfb049b83bee34033a4a414b27dae3e7f6124622e90a58803d8e85a43a692b675f3bddb0fd2aa46687f41482e13edd65aaa6fa5b40c349c45db18039355612239b15bc13eabab538be3b56bff80d3e142f69109852c46420dc156e11babf02fb0a68246dfba0af8aea918e5e2ccfbe420ec162784ebf7520230680ba64d17fce66dcfad87affea0b5cd2c892e5f147a497dba031f4465d98d588dc925a93305425cda853d0eeafee04babcf0acf849ce36b511d90fa8a7510939b20ed11f7917ee37bb\n\n# tcId = 162\n# large integer in oid\nmsg = 313233343030\nresult = invalid\nsig = 2ec964d15d88d1bc2cefc93b2d5eb3f2c06f686bf4acd04ed7e27ec045597b571204092038d1b3c236cb18f1f4496bc48d1760f6276bb094b3fc8d3a1bccc51c3319597e8f4436cb3bf676751257ce3d33cad4e831b57f7979d7cdc3ba9d39b4fa4c7f599b5023de8c9e97fa4b263f6c715b2e6ce138eccd550c5741510c059cdbb6f16df84c47bc697384cc9c52e7a5cf35e9265fe4a7673817d5ee5d88ea643c155af4350d8503a4af044da8fa87b64f151b8c579deb09768a6f3a0862a3bdc8f23ea5c22f9862e24795bdbdf01e8446e93771b131beb46230440afa4aa5665083d373359b76c8b4d91e860b45699cc1c3714732889dac71319afca09a0b769c18810ab0a72b8c3aee35188e5758473230840972b1b55a0895894ea360c3be19d13f8ff89660971ee9c6c27da97dc3f09ba6291b19e2868a0c6e7132f5123b53152ba33caf41c7d941d3cd0908255a530cdabc356beea4169c996a6e9b317d28eee79ce021b714f54f398fb8554b24fac28993f8c40415241039a9176227735d4392ba15eae47d89c0281018df2edec17c5daf17ef4d2fb7cb0d849397d8cc5ed20b52fc4d222e3510c3d75c24ac4964053bff5d15476caa86218ed5988b92db01ff999e74846e5218595f9a67b604efa7e771ddfbc2367749ac8172d8504846ac64816e317e40c0c7ec59668981c7d91d39582d4e5ea1041136645a23ad37\n\n# tcId = 163\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = b82c24a2768b4dd4852565218795876793aad9712b4343afe30ecbd03a9112d47378859a1445a0a13f47c306e453541228e8a9273829aad0653d54a2126ba0658a2c0b730eaa1f8d5353386f16019a258ee69058a30912cbdc5e50cb84ed47f6df681713603dbfb51fa46b3d31a9f5e9cf937b348022db4f6f512c1aa60974bebc6b125a049894c2bd4def0b55af5ddb6d8a228ea02b9eac2c46c835ad00e94ef5952997b7626c37d899bf2609a224e54c2dd27c09c178a681a5a810d594f2ddb93fbdf44eba21b0e092ba99b8a7e9aca3306372e552293b51b6b17646bbd06a3fbac254f7549e544a4d1e3822adafbc46c299f9f2450b0ae267ff4ed4717e3f4c2fef81633f9a1499f90dc436ab2f0a598e5390a6978f56ad0dfd6c8d9a9f8c7f4d5370699d1b8a86c779488b6b6a9170d1a82e6de47833774ad76f06a05f19105c9936146e98c8a3a6b5dad4f6e6e5daa01dc0b803fb4cfe455f20c677ff501eccccb1c5fffdb111645835183cc06c3763beba5d753a6ede04aca03f5f96155de6ad93b211b2eb2a70d72e3c257ae4f1a0cbae5642b9fd4881e36c69bc9e4655fa9008cfd7821fd72391209241f604bb2b00ea99d8f545c9bbad6258a11a0fc22618cb44e713adbe4176edd9c30685f0bf76e4de97862d47c0c1abb80b47b6323b69b77451d59bbf274619374cb3745725d5ad2c828fee88829286a352714e\n\n# tcId = 164\n# oid with invalid node\nmsg = 313233343030\nresult = invalid\nsig = 43f736eaeec5b5ae03b1c68c460e115d20a6c1b456f5847599aed9af2900c6316bc090729d466a83b6879834108dda0325770913f14b248a71707a52fa2982db368f86b4eab52dcca31c07cc5e7ef1634c6a1b25e273fb35d3f802571278f79b8c27a6cf2a170205c493fc457248170ecbca4ebd0b42bc3d03198489680fcb5e58bb31c2b22d2aa1b99d8c8c3ccf42fb784c878f3c7632a656781ef638381c3604b0f4d84fc7086c0000664fb6bab33e55105dfd5dfbef634905dafbc12da2a25df3bd8530440fa636812da39c5faf26e76261a4ff947795156e9d159d6bd5b0c9c9b86ee1818d31dac3f541a4bb6b25a02df82057be4f9320c8be9764e989aaeab72d8559dd35bb1bfc221940624db06f46e467936bbeb1b97018b7e632d770447bdf7553d9f696b6ef56f2b737aa6171791d756c0809b3d50c5cde737492b87a9c5517c6607df77ca126e08e34139664137b6bd30ce2e6d97a9e2b8c4d4d4441c71697697bc3ff75fcd980d6e65e8ad8a0b3d29bc952e07c19a5bc0f5f09357cb664dc8b79ef7279f047ff1a7592b5ac8b1bc98b99a426da08a2178f76d96624ce84e1996e3b4af9e978e041c5e326f3c9e0db0fdd7787e2c138063db4415182e9af87c74cd36fef96761703e5843aca4c3963f484b90b1b800d189ff727debaa2773e08c8ca70c6f762bbc935687f4bb103b53805495cc0bd6caedee834eb\n\n# tcId = 165\n# long form encoding of length of null\nmsg = 313233343030\nresult = invalid\nsig = a9e80f11d11c6a1c07319788837939fcc55b76cae1c7338e5858e56aa250343b3a3b2c898e0e47623f4f3cc1fa6499ff7f12bdd8d43b4c811c067ba6739958dcba6c849a7f1dd924b12a6442a6bfe5ea60876452b86589a904d71b7b997a1dc4486bc1b4f2a9776948e0c3d1da887c20be126db414566425a409577eef6969836bb84afb715ff8e7f434505503193ba9e398bb7a15df0b132bcabe98d64e05aef8007b9acc87b1792283468ba77fa8173585411da87308f3715d0caf957f44b05f5fae579551a111288bfc8e3a2c2bd41db3dd741ae3c70bcd9f01504174d9117dae1bfae2f38b0391a377d230a6dc246c552b4fe41c7bc4e797daaf5dc5b421d1b5e7d88c69c5d5d7b4dcdad3a2a854935c01fc7e44fbcce85e6419511bd3191c973c6590e024dd21e46c0a5144e71b4f7166f4bb69455f59c6e617ee457d0fd1aabc9f77b56a05397cceae6c4a7dfda5758e52f6c94a8949d426e6f554b2aa86767d32ace6885f4c63767775ea2bc925325d9fdf665dbc941d6cebcc0385f590ba36100e6848e309d3d2e2cd0523fa7ab95fa871d78510a978a988c34e10204f1d669a4f78858fb49672c13e9f489fca236b913fdf075a7167d1e27e45a6b3614e55f7817f191cb2e09fa3c98a6a77ad0330385af0c875c471010e33a8c1633a23badc03f7046a6c2634054892d60d5b3da0aeb3f14282749e7e5e62c9760d\n\n# tcId = 166\n# length of null contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = c0886e882249dcd81dd653f46d96e5db093c4216c375e4e7cf7317254f978c846c11d34220b4460ab2062309d059c6314563b5c128a68c46da172fc9f07f569d5043b328e48a18ef5a59ae15b8368820891fa36b883ca71ea14632985e61181491e71b607962f2574f95e9bf95eb22370babf73361b704cac83c814c5c0597bd45658fedeadd0d5d87671c7f67f6825d0d18618f337e4d5e55062f474b242a08fcb1831916d46648ba55c857c897f3cb8868b19c3b6179966fb79f0586020e3b6abe68621f48004df422c9e9a69534542ad1b5585ec2f052768a67471357c0350323f3ce372609621692c4714a672b42138f274cef4a6d47047218576e9fecc506f5bcaa2339383972aaaeadf7f1efa3e4ecf1ae300735d27cb919c1366eed82f2eda833154c96eba7a5f9eb7e45504dff0320c0a12181244f47303b774b925fc3887259003cf5db9adaeb956d3748aaeeaf18e0d67b000076210470af70074bc7633b20d06ed6d3b9f9cf5868fee480ec2f80fb5ad0d115515249b4a72e256ae6caea187a89db3691de3d63bf4c6eec37ef2a4df99b9da6c47cc4546ce39111eec9983b8d352f7d34e7a975893beafee92e0c5b50f40f91e15be4f8af8c4fea1cc8c176be238bde66e9cc0778ea0d8b55e4cabe379e002904e1b5ee757bfe632b4f0858f42e0789d57deacef432fa528045336437ea1752730c72c9345eb3f7\n\n# tcId = 167\n# wrong length of null\nmsg = 313233343030\nresult = invalid\nsig = 9a4fe22826f1c64e9c88e178efd07f4ef95991c6c3e9c1cb10bfcf0a0c9d028cf05207e93edf3ac302b72d2961073cd1113ea5c8b3ba05a0e3c913535839884eb595ab189ee81c5e67763268f47fa7e313951e65a84165fb096edc7f1a8318e66d740c61d8bd9031d78189120262d2b9e50bf639a7bd70881e9e598f8f7d83de56793cf960971b60dbb24f3b6e8209d87464776e55d4cd6291cf8fa578a2d943fe03251898aabd477b748dbf12712f30b4cc5732826318b76bd638788d2bab9b178e12d28433e52856b7f466a155e3fea2e45e7d3e570074eb6c2227b0fa3ce6a3372f448f7791f2c7471a0cfcb098060bdeb700729a53e5236b5e35eafe765d672627014c94450289a8f62b90c4f928768372ace3658bd158f02a7953863597f0f0774a463125e0b5eea643f2d1049514e5c6590cfe2c28ec9ddced3c6185d5cb2656cea16506a302b65070eba32f8a873a873164bda838744a0d5a315e37739ee4c66b511d036661114d4a0443b2fb8ebd433abbd045d219423ece0a2d6d7", + "f3f2e24b8a5dd88988eaa96fcf879eda5f01c26a19728f9ed917a6741448f9e3dd64b02c8eb059c13bebec0d6df85a44be3887b8b25797941d2252f8605dcc3f0e7d3aed45bd110b6c79acd65adc8d6d8551345ca8b277de67279f2315c0a19240bd57466bb6263ddfea47474420b1be82a37e2f65bec7f973c15c961d5dbbf55\n\n# tcId = 168\n# uint32 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 2446322c0bcfed72abd95c57f8e7d815ada2a5a1d15f98c567f568cd033c0aec84af602fe7376a885166f611d4139dd9f78bb581b3f1ec373c474947c7751e67acd90c7c66bdb233811da04d5ddf9dbed9c6b560f144f6ced47c810142325103bbda47fcb5659688ae56e678c117f33fe01ec8b01de1faf0ff40a27c57f851e4ef399d8108c229471205a5d3a08a41069af72764842314887d3c141d1899926bdb6d825a0616a0d635c4ecabc4324c0f56418e7db0de1a7f94a9861ce9148f9da47e034157b522d60bec3387a659bba7d14a63d31fba5865d7a7b061d75f87be4bc830617c84445d7eefa53c5c4f77a730f7e06335b3fa4f5ae201834caa5bb73a14916dc4e6c577a0357039c8fcee155ac51f47b0c19ca692b73ec194d7db0134065e59bf784ddedb87233859e639fb675ea80ea4458b7f783b6c2de5bad3313844b4a7cbde66521597cf964e48ecd8f9ce97fe7e40dd2f3247192a382694f3d0ba5dc95d64028f8c0a11afa8708651cbf9d80438a0426424182f9b19f064ae7294d54baabe358255e258ea129cc81133032b73398942430657b796655a6d4a21e284425fca023f7d8609f80ff564e34d4919c1168b48322a32c6f3808eb977c7e696fe7f0709e5e1001ceb17233b5452fcf1f4b5939b4f0302ca90897073170f0a6efc3a5379905af1a813b384f3c850a69d700f0375fabc0e43680d847e53\n\n# tcId = 169\n# uint64 overflow in length of null\nmsg = 313233343030\nresult = invalid\nsig = 7531710ce5187fb75a63038aeca4e24e4c64b6746320b231ecd1073fe8c8d002a2f8fa7debecb3a7a156cc9485dbb452d0c39922e6ec9fe0ddba0f068d8a3615a459c8c2787e5224034094ec18a744508590723523492be0c307f0a241549f5c12c8bf9ef2561c402fb2c4b1989c351c9746133e75bb3b0edefbd81d334c46dc9c18208f2ea55614edac9f01ffe02688e3f5831de580ae2e02b70e3925ae2f791af72e992abd82c5c79122d81e32db603b2ab19e484e5ba13e1c319cb14ad23e746e90fb2091165822a88289c45095d9f823196d9c62c4d0222c53aeb192b5f69aaff7997d88e76c923942e1ad889e80ae7aaf33a225acf23e14c41b649df7c94ceba04bb9eb53f19220835c998cc9c55be022f4037a027c0e25ed2ead758d8a305c35fc3e94f2c410a1e7d49d75e0c34cd01c7924cfe4f7dd76d44c22ff53e3f8433f8c18486c99ba7e25afe3dd2eb2484bf01af23c24e61d92cc0a31d1f3a60952020269e640e9b22788df23c28e8132fba1655bae5df03da2cbfa87a416d2dec19ec427a733f3284cf9aebe2b915113e0976caf6110577687e73d0882d6d6653844a22b82ccae942dfda37c669eb81aff068b724d2f21c7b0b1b44a6ffe1b7dcf0272b1fc3555956a5dd97f2ee460e500d011067cb2fa8f2b43e15f66ad48e63c1a26f00516f9914c05b45d0daa854ac7f5a3be7829f6cbceae7fbd558cfa\n\n# tcId = 170\n# length of null = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 6e737db7a2273a789f038e94bace3aedcf7ef5e889b6859e1cc75a4a8854773368f32a500e9bfabf732548a3b3f4feaf62d0c20a0b5f4f7731f2dfec63dd1561fccccf0d9c91af47eb064c15e7883a41c9b49cbff3ee59f612a1b639617be841ac2e0fbfc5ea482a4ed9a245f8ac8a0a2e624ab1a4482eeea3e5f1e13f120c23829ee33ae2b6e2d5b90dec3b6f68eac069ac50634ce52b7f4f8653f48e3e92d3874172eb7d721d57d782475e8915b44476415260bd69eed4f15c2d99e2cdcfc2b1ef5d9cef4b105d00efbadfabf26392b1bf7b4f0634ba970a87eab426025d71191ac78e28abacded9d2fb99cfdd3d2dbebd6807da96c540e704b1396188c0778c022b9d0ce92dd9f70bd2c96eab2b47dfcbaa2f2a6546764fafd16ade9dd9c6ac65fbbccb7906138ad28beeb4ad74d87d1e477ef60763eb312954f8c1b3eacf0353f39b0cfe7da589d672a7403fa5ecd0c83ccf8879087639cf704edb09459abad3322b0b6d5c01138f4b19adefe1a02ab86f49cd964ff463e839f2334a39b44bb3661e80a55cd15343adae57e0e8f958ce50ee1693b40c4a61c48e119d05da98016dc6f29d85940a64d7a5b605f51313a586fc1ef9930073ad616011ad6662ef43c85c99857ed8a5fd0f6f7df8b180fb1c07a41374ca7c0fbb8334159243f630b63e76f068da81c6ce07c8b9f6fa543e1047418c126451f528e5ce8f495039\n\n# tcId = 171\n# length of null = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9fb8c68e27ac09ce37068c09d56d3a4c354d5710945253078aa47f31c1e709cd2dd6d53be85eb45535c2aa0ce139d0dcecb093749193bb55d08d8af62f142db9a07dd178022b303ed05d49eb61e1094798f33ecdac79ae6f5726306dec7f652c58be5fb196c2b9479f0806b19adea15448d359987e9377f3706290e1e75237657310555d5cdbbbcef83dcfc90cafb1c98aaffd0c277c6b73c6e0023ec66136e60a6be3375e1140d87ebcbc11a753aaa679b8e4b2ab8d686d4954b0b85365f070a35d600f18b34151460227ee3b49d2770e07bedcff1cb69ccfddfbdc6541f3273990b6f3c708c0eb40863fbb691cf5cf8e19b87746270cf7cb827cb64984cc3be7b9357c66b00d8a90063d2af51c34bc3da3857f07eef270989fca58b09435d4b15335722fb5b214965494edd8a9dd0ac0abe5523ec62367d8c119a5ed637a97a507286705d06520e7df4077de24dce5e087bff576eae20f9bcc4b651a8630eb025edc7ea28ad2df19305658e20db4abbeb18b38aceab9c611da6ccf127429ca4d0c448aff54342431b3d99fc69010945cefefb905a4dc63def5c2adabf71bc9f02691b35bf9367408f4408c315ca0f8a0f28466f8b5a7b069ed76cf9180c0125e56df8b515cf590c1bd6d61f443fcbe584e0695b68c9b097c21e12c1d06f1ad0177252822474bbbb2c29b6f4810e749f71b18b306812525c42e727f92f1b949\n\n# tcId = 172\n# length of null = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = bf7d4aacb76f4174b6787a710da30bcbc9115857b5170f6f98d4aa4e9f74888fcd341824e5da12c26d05612b591d4aec64c008db58c2710f450eddb1fc71fcef26ca5f3cbac2bfe53f611f7f0b4f3909fd763481cf4aa76e25d755e33c3e7a2e3d7a2ab8cf9d49d2ebe952f02637cd901e8784556ee49407a5901d9a1b6cc777b5f036650de693440dbec5b466efb84053d73c7932aaf18350f9c6acba1cfee21f874ec779f0e5d756afe936644459edc592e217fad93d799c9bff84921a2159eaefb9a978021e8bc1673f8e1a809797d317bc8c3d4ce1c38ae1e995cdc37c50457a16d553cfcaa2cd58e36bb43557ef70e1588bc0f6a4fc59604f921abdde57a2b05375c4ddecf23c5ac0cfd3465a364a6387327844aae68e9732b776e04330744296429200be89136aced6bc329e4715de6be8db047d4810c62bc19c8c2ded5e34e6cf8ccf000563b342b6ac2df2833232d12be0bedf219dddc187ecf1a61f994225f04eadf96e330c2f8dd42fb7035d6785328f8f2a575513eff22390ecfb93bbf9a57b97a4458e95bfde6c676a9b8fca765ead93cdfe9927e2330cc17061da5f2860a0291513361dab4ee5bd7bfa91af6857d1afc47faab730066ac9777b69804f491f0e2106361161fdc83f1e89ad18e61a1cea4fb128dfa681d1126bb3fb11610a7071965c9f706347b2c521f63c6e59dde524cf107403205e905d0eba\n\n# tcId = 173\n# length of null = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = 5b652650b3d26f1c5b3451483c4dd8072de76b639b34ed959f13328df20289042264a64d76d711a7b33dfc0b6e65a8d8a1ee8a747b7e4e1511c53200742b1b54bade56fea7895eca7557a45da92aca71daefde3e56cddc12667a06acaa609bef750ff1efda81490ecfec3838583c1a4d6453cfac3de7958dc0ee4fb650d50d36ed7724c53819a53de3e1498a8fd1cab183a567417c217a10f028edbfd4c35b339c4b5aafd0c8e04a474b7671681b80e95c3474702b2608478ae3ed0a8b0cef33d8265c98db5758a2c5c2166833cb560a0b88b9d2b5eb0f38392685cf8591eee3d38d66aab0a33b88e00dcca04f0a2a5b47d367d93390305e1fc0a49e70ec117836e6fad4d7cd5492379a612b2b0634f66195529a40293b1c08b87deb03ced33210721a63bc534e7e00761789d49a27cb348b2e89dfa1c238d733dbecec88d9e962bd32fbed47dbc134fc79990d0fac4dbeb7484b149a9b08169ee9ab46f1c9297fa19504f8f7060858bb57852386063c04d5e0a1c4e0545d57bda9d0f342574f02c7e3a2ef88842872461513bd524457856b24e4c25ab3f16527e9c90ff98ae9ec263358d6e8c192257c0269db714803cf2ef8a3e6c0d203c939adbdbdef1e7d37633c54873ba6b6ac5a26e8100f17f8b4be1e64ff884c40befef7c40e7e810cb03b1e738e6628ff424c20d2ca064df9b92a1f337b9905a918bb948fb9e03e52\n\n# tcId = 174\n# incorrect length of null\nmsg = 313233343030\nresult = invalid\nsig = 8de0ebcefe961be81df5cfbf212c86481071c93b89c876272597e9a1e069deb3677a8cc273c2f29233ee063611cf7a9d42af04e9e1d4a8c148f0152e7b7b73e5b6feb87e964b6bd71d7666cc25f96947442844a915425af387a876623c40f9760edd28bf2f6a51251db8b8139266a04b13258a6294dbd08bd1e9eb5154265d691afeaafc4fd1a386d09fb71f8c2241163fb84b9ac18f6294c3d3ffd10515532ec501998c2f73790e8e15075645061e9ac3109cee0b3b23e49ee7db31512cd251aecbd536aefa435b54980d6d2668812fed9516ae8e3e0f7e235e338f40d4fb192d126e19d709eb892c2e54f55e15d43e08373f0358f7ffe874d23596b63ef34511f59b692a20e386f410c2238f46b7d5d546619329790c8dcdf825e9bcd7a5251c650f25f8cad5eb4ac50735a04dda2fd03ad759eb1c5e1cb61f4befbe96f3bd432a4ac7882fe3f7a8aaec56a0d9d0ed4ef29b1332ad3c0155d3069de4b6fc6dd299c319ba67d1156549f2ff6403a087f21559d084ad4a0e6e99c55a9fe1efbb6cb1eba926673d182ca112a2d42ae8c402f24d54c4f8ecf0c2d5140850b3dcd676754d7cfb423c5c4da1fba0c1ee257eb22864b6481bab3228d8e42e8068993a87af19e78bde89cf7afc0643121880177d817f04523dc9e792b987bfc96ee4d5aaf4d18465a0e6d28f50e9701dc84c347302b7cee5fe7d048d07be8ee620a34c\n\n# tcId = 175\n# appending 0's to null\nmsg = 313233343030\nresult = invalid\nsig = 2fcc3280d48b7b6d5e9bcaa5d4dcbe70cad1bae22b1c4f407591021f4afab50c0a1f4543", + "29f8ba4cdfa69f4a7bb6fbec6744e32c78d9bdc6d585f30160e17117fa364638215531afbef6822ebdaa6ed89708343e14c843a24a6c152820b9e130b1a1a406270f50db5b0f2eb63204dfdc8e4230738ab9f43bb982a2435988e1e44ca08b77dade0c55e57b35db27e4cb9af9a35d634a69f6869110b219b2d8d231ce92aa5c1c2d8bfa78d67cac339e4af01a238e6cbf5dfbd58b92765d7818963f68e107db5388fd2b430b1541f2560c79a861288c17bd066d51672866ae8f9796ac5385ea4b4c165f2860dbb950435d830cf9d920f79a42507af93ee82876c02dc097b6c47c56a6bf3b1b165b98bd34c4335ab212b66c99c43894f67ae20e3e5730fb1fc1af38333f46f4aa8c745ed0f58b5d2f5b48a98fad75e922864eeb43e339b9ff8768f71f92a3bfc5806e34e02f2f3769c6d36f3a4d9bc13d939944bbbe1449735f9d848d2a4681e0dfd426115397bca1df86ea5739871722b0191dda8dbf93be29a8b8ecc154ef4810022500533425891991c3c8fd5540263a69a13fae3cdcc72c337d7e37571e9a3a590e82ce6a05daa260ea38f7fda25737716ac5a3b558bbcb5055e473f0d87cc8a171a4766432e66ab84177f924eec6e8504f658571ef737f466407717f30c7276306995831487ed1c6031bfa8929b68e51fb341f\n\n# tcId = 176\n# appending null value to null\nmsg = 313233343030\nresult = invalid\nsig = 6f76a4e433c0c2702e0bef87379cb827927b9350f9a6537aa67bc7812457c4406de7684ba9614e09e75ab4a54ae09717c7147c69ac0ce8b9b962f5842eed73aba82ba2db71c39337948fb4a2fa00ac018b5cf19e0dd9824f5b836ea9c04ac875abd8b8efdcffe7e6e17e75782b4c93ce0bc186a99e8567d9fe089dda051aa77b82f329dce58ff7228fde880d5e86342e3d049118f8e4c9034f2d586f3376851ead317eb691e9975f08f1767bdf8c5db321428fa7899e23ebbe11e2b5e7575805319a3b18a1e0fb7e763f6390434df2ec5062f4a4223b353bd12760d09636829a740cb3b6761536c1aa7f50f36711180ed2925d1aaa6bdd38d5d5c45b9b5f9c09de47751449ad6962cffccc6eb9a4939f7551a18f3cfb3dcfe13f1c160eef9de768b23faf85b480a2342216238ce93c59d202d861dabb693639695cbbd8009151ff64e5e3eab3bcb5e6a539bdd8d4bb5434f30a12a12ea92ae5d21dfacecbf559a2ce1dc9e5082e2217cea6c122b3468f01c737f0be0391723c8448f3372d88c9dc46cd40041e11a592606f6409c1fd831fd51fd6adc8cced49e62e9466cba70d177adb0a295019011d463b153c5e05a6c1177548c3dfac3ac1b2e8978e39ce1923244cf10dab652d250b2cd6abae03df960add94e9519dd801f4dcf2242cd5c22e287b34091fc42f6644e83006402dfce2b82bf8acebd4b65a9738642963bf82\n\n# tcId = 177\n# truncated length of null\nmsg = 313233343030\nresult = invalid\nsig = b1cb3df9c5d8e04a90cbaf83a03e1e976535db1d66372c4efa3370948e546cc310d827fad9227a7e35923d8b2fc56dfa1039d25968f984e5f22614cb2dd0e5dec8e1719fc7bd7018843889e3fca0c9e9ffa6de47fdf67c266398de961c51e7831475b0b8021a0c587617d62eef417b93e675630ca26d8f41111b20d944c39f47adaff1b636d7fa1ee000fca852038b3ccbb05d99a2fd664a50129e5062b8e5ab04a65476aa60dfc872345be0139f4e30f107f7e1d40a7a01a7889592c5ab40c2bfb188f345d3086af7e725b5a209420798e30084561fd5ac1626e93ccbc42e9c1f283073bf91232cb48f571c32c71e4b47c2575295726340cfb69112877501618575748da81e7f8fc6f898003ab89a11a8d7e3647c72f4389d30b265020e99814ea8bf0406bd75292aa55e69c5a168f5915bb1e9df30be1bfc1f097bcfe78d6f7ea963f8f0482f2a122d1b3d3c66465b6d7d035ac5249d4a3a2c54fdae260a9d50f29c84cc39defd53b616c785da76a862fc60a619e25903bef207cf1c93e8c765a13f87027c9bd7736fc044ef4f6dd3cf3752beda24b3d2890f09ed85e5f45c02fdcc474ecbac108d63f4bb0266f5f08d4a4cc09e5217793ed16532d0796bc22f05607f6f265d967e424e47d73a3c486532efbc91d8f7bd970cc9412fbf1650cdaceb99635885b78abe2b8047d3e04b07573018a5c8b9518d26f25fc6b64ff6\n\n# tcId = 178\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = b4fb9d923c57a13fd71e27c25cf0edf872de5a7345f04c2d5e002a9a42445f823e976f078fcd9b24014d74b31c2380f953007afd3da3ffa66e89f03425faed2befeb11cdc7725e9a031277be6e2c6216b0f2d0a53bb8242f055b80fc4709292b1c56a18101f2c2abaeb9bc5ddcc6ad3184e6ae8562c30216e22b43c889ce27cdf1469fd996ed90ac09050f31264cd93051507aae73eab22c64a63a28150de06b43b3b4099aeda795811cdd47e2b73515c2cad2609b9d8adfa543ed2ab122285a12bfb7df219151f0eddfdb4be45a5624621e1d45ec511e7b505c92516b70bc7981ad61ac6b8b1037b5e00aabe9851e3577d4e335244f32de627a7fcf9e937715bf31414bf432d339c65ab8ceea49bfac6f5ddaa4ed0a9d2bd7f5d2abb29819ffdd7ddea9c71c3bd575eb18c4d69f50d98c4955373408651ae19bd2ad839ab1fcb43f5881fd290ac2109df9c16fc6c14a86a614fc5509b7329e7dfd8197bbf659966701a1395a5f498988c485025a25822423efb7775c9b44ad3f3c7c79efb329735b21339611e7756a532dfe00d2c426b2b41942d65c48be63f9188f0b851348405dda0ce3de333fb82ea80e3dccb7f4f2453415ab86bf5a5cf8512c6f5bc1846961fdeba1955b96a5145cf447aa34d6fa22b226bc6696db29a50e3455474754db86155065dd596f9412cac880a0132b1e1fec5ed015b1c8dc8b682ba771021c\n\n# tcId = 179\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 98a116f889aa8209366a0ff461bc3a2283c37f78b990622ee49e7046af1dfb8d5b56c2c669e71e4a0fa1f1cc5024d387d6f9f5d981e8fdf09142da58d760c1cf10ce4ce8f2b467f054a9c26eecf4abee45d3b582f9f881e77d626b3b30054507efcfa2d4444dca8a3075780d306f5780de76f70db07a57e0a49f80883bf0d9e838ca5770f07ced784ea09e4eee412d02e20411ee5ec48aa85330c5e2c7a93ade0ec3383ac0f821e086871c207144472a47ae36e15b5b6eb5c564031b1581afe321de00be20e5125cf4fa01d2cb7e510f85eb690c32bbcbf79de19d6f162805c4b630d2f0122176222799b9e5ec6729bc150e360ff7e5ad28741626577926efaf8541336a9bc1adb4d1205e0b2e7eee73740357ce21599ff5414082d228f089f2e218f413109fcc20bd61dac6218d84f90c2926a6dee012edf069adf4007465a8e3574033c4be54bedb51abda9bb2cec081d1ee2aa616178aa08cb0fe4836ec7536649cebd2a29b9056510b4a6fabc6b91c72fca3c46572f397749486e4b118df5237703be3de3b5efbbf31033905300c50efce2aaa7f0a819b819ace881984707bb1ec6680b9ab97186b0696e9cf1043ae43acb3fd9cac9fba305d756c4406418e5dd148034f6b3b87e207fb9d1ac3ac24bcbd5f681645773177d09c73e8c14874bca763c79f873a2853e742aeef70b4c74f88e2b2c8b094dead8ed088dca294\n\n# tcId = 180\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = aa4cd5424b77ce7dbe0654a7609ce273d77cb2b2b0a2262a093f4ee53cd4fcc4bb01e16fb50a13b20023fe6f3003ac635d1fc7148318745b52e4df0a88a72a20ba60334fb5b445f9e67f31dcbc08b0933d10d320cc48b0ab426ccdbe5658d6dc66159d622a0b3550a970e4b90de79e76f1bb5e5f073f7802a627493dcdf5e8c22f3bd3cc6b48b1ee4077527b75fb38a23e0ab2ffb302f7c50a85215cbac99a49357ad13cbc12496c2495fb70608c242118e3bf01ebd0a63dc259e605c5421cb83e1003643a6ffa96e385bbff3f49a17de6846f54631c95d4534f3a9069069c578a40ca248be0e5915e6e499a42cf11f2652bd9b81719750f0e0a9707ba30753771af12726afe23a9c4e38b03e34c0bd18eb0cc93770a6f00543966d1709b659780a35af82b32c259d46f19efe26cb51f062d142f897cc99940bef767805c32ac8a1bda03d5e20c7f60385720e2d47544f8dd5999fdc766afd8c988751111521381422dfcc8816b862c422372e9b86a5d9859be32d8dfc02bd6f5e61f6bbba6cf7f4531ed7b12341c91533133d90402d0668552fc17470c21bb843cb36b8a4fa6a3db24b0d4254b3e16b92515d31baf6f76b988ccec2a420d0f0e9591962de92fdedd1b619711417af45702d7e1d5ce0daf2ef0154bfc46c6460492a8855d87e9a5046071a990d6e7fb0ca63c03b15b12c42c1ad5b0a20cc0472dc5e0028c642a\n\n# tcId = 181\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 5f9515d56d86e65d565634ad95002b9595f25ecfbaf4dc44897a7d468d3c71278131444d48b1cbf19e6409b6756fe753eb6c3ac1c73fd6391d4cd6e1e7be9f0fc044cd124db1a3db575046698d140d477a4c6d95a5eb06de11d8bbbc8b2e6c04f8184008cb2388574fef51aecb8f188ab2206da09333cf536d004dfd33890cb24be2af682d02bbbac68fb1fcfa6a5cafd3266ef4b09a758c667ccbded9affc37c13ee29daa9d0db2c1afde3f6e7b070e2a9b5a9b3b7d75e0871e4e60d868d8ce38fee726c40a27fc4f54287fa7872e5f719198f20b7887ba524262feda06d751a670dc1827374cd2fd25330a180e21bca4cf8dffef445acdee58eaa8c6aea3cfe55ec6ed963c05b7d492e7984f976d6ee4831c4ea1e65b840a1d190f1c49b3cd7f8d289c3a2751c4885cd6368f17bfd0da533bb2ffdeeeef4281a1efa93667b9fb07042e0ce3d17c7c94d39fdf81c348bb3a9caa17b96b028fd04f89bbdaaba37ca3c867b5b06f913b6c3bd6f7c1dabc82be3cdbd4a184b1ee30dddd28b00b4f015765cc95db18c74847839ccd3ac02f3997ce47f63f26c9f20d02dc1aea57dbc768778534a8460f88554ded387a64fc65209c0413fcbfa81dc24a9b8a081e14509fd1c2cbc05aaa90e202acb0688da67cebcd3eb0eb867eaadba412cb6c88f0fe9c780b2f61b33f47ce2d70060b8146a6cc5ae825b1edc492a88b4e397f5c05\n\n# tcId = 182\n# changing tag value of null\nmsg = 313233343030\nresult = invalid\nsig = 550fbcf50804c11a93debfbf269fbb6437b171fe00b9e93076ca7fc7db88e91765ee439bccc417d647d145943ed7994324b514a2d4a70527d8f857ff5933f4a47168b49f5920641c49ca5f287b0497ce878857f64c51afcf36f5f115b4a8e8491286e972f54deec16ffdc4b8b602b5eb76d8a729d35fa964fd685813bb7ef3ae6529d6610af6efcc825eb234e4561973956c0b0ce4f93c4bdbbc6787418a6a738b7771547deec774c404589efa676bc800019a9ec8a68f4f479d0c03b7cc7e7f04444fbcde9f8b1180db9a7e60a7fc82ef7f4e7ca2130833c5f5683ab06e244ca904e791dfd01be0a96cbd55b69cfb31d640f4bcdb72de", + "ac2cec6fcb045f3c259ff598e82c52b34b96a6e0f3e2558b6e84e8b90591ebec10c66f809c37738349cc6e2691f02d69e95a2db99510cc17e76993a5d860d7f19f21593f6be3907a3a56aee4e79eb2d5f61d9c8732796e3894002bc09a8550e682d9acc92fa3fbad21503b117c6a6382651d08eab777cc87dc06266709625d7f162739532ef1b8e25fa0254a71ac1dfb00c77ea5b593267b142fd60f565c6825985812e1a8c1e47353ecb743a2ea52f165c330a5f0a25a0a2edc515ccfda97dcaf40b774140e1306e68911932170e103aed2ffe108efd2197a05188f9f18b1f59bf59c6571f27ef20d12bd1f0b12d513243d0e117630b0f521e29e401cda904a0484eeed9ecf1d049c\n\n# tcId = 183\n# composed null\nmsg = 313233343030\nresult = invalid\nsig = 78c6bcc6e22b2051f5dcba26edd20d680536ea15aa5d5ed438db92b3b2ecce0eb59dd46c2496dafeac3e49911dbc72f895ca0cf6679f36c770847646e99ea102648b8fcc3d6e41466c5fbfb0a343d985fc95f4582b671650d991768403e4f75d852856a450804ee29e0203c076736076ae79929a88d307c07efa0992e45fe49205f67061f7ae2adc2caa37cdd4ae3e4b9157983834055bd521124360e8e03021f703ab4b245ba30b4e421505cb3263d955c6d315fbcfd08dba056e2eb96daba28abfda149084b0052a9f0013593692a35d52f3843a76ed35ce3f0c8e8aa3418a53bceb9d5cef61b84c766648563bf00ff3def6a71d02a03acbe3458679ad8b710225544af5c4f7142bcf0289e54f76b4ab0d2273a651ddaf4f565ad76f231eed8c80b5d98481eb6dd507da55396c6fec6571d81c3008081c7cb4792c47025ef33f89332a4f28f03bced3111c895c5f48fdb64faba97dedd1c18d86335be0b66a334113a0149c67dcad53040d8ad2325fd6c11b40350a92f03fce0d991034e25272ef3665d2bcffc8f52b7c08a23d821fb824713d04196075b05e82d3138c06319759e859c7973ce15c3aaf1baa2bf90ebed260f87a413ef0a17fa654c35aedfccb4e496612b947235522eca5b10e195f7341951cabe3e0db663532a8fb6cd8eea06a3667e1fcc4002a0a0bbbcb4d7b7e20bb635a4934f58213775693ed2c64f8\n\n# tcId = 184\n# incorrect null\nmsg = 313233343030\nresult = invalid\nsig = 1ecc71fd2e34fccc01158a46f68fe41ac963dd9f4a5279ea5ca87e81195b05241a8f4799a862fbbc3250ab7e86bc508f8fe32a1ee65007f90d0b319dae0e226b9f3ceadf362a5488afbd3a4c22d9a5917856f5f7edf02f61ddcaee6e25720406c3fada9af24eb2f9b1e7826890f621bc26837a82bff1532448fee49185c6535b3c1561f845aca7bd7d934c6511f1513428b928ee0465157a829284e89639b76f514ffa1cede07fc6d88cc9ca9f8dc09f17ec65b1fa6b08820b895f408194fdfc17b98d29b6acd5b36504ec8c616b0476143622e513f0a8ad331792499bb18271ec3ad794677cfabdb22d192924ee982f74bbd062acffdc8eb70bd2f3161dd8bd0e0b130d8e63f940620b89010f76e4e6ef039b7fc8f2fca7db563f5f5b80da69662735eb47eb2def9730eaddb164db61445bb254e22a8bf71942e5b2cfddcad5d8d1c119e7c8c2663db3b526dc8a265d03454fb35b18923af4c8da19faf08c6f770e3ddfc38c5c3988a4e302fd9c8c92ad5cbeb0d18b1de43cb8bbea6d76e1b0e57a49af3d3a2e242fd1f390f71bde968b6ce91230d10401d466fe7b6fd2fa1ae8ca58999b808670ffb76488882a880f4b9eafd414acbb8a2abc3e2dbc79362cdf67a28242e8ebc393f065dab6659c3006854f577e34d876bbe0afa97484af0ebe454e44bca989d7e38f8c42e009d4b9aa118f8e2c560d7320074a777fafb9a6\n\n# tcId = 185\n# long form encoding of length of digest\nmsg = 313233343030\nresult = invalid\nsig = 8abfb449d903f408a10718ce5c72d6160d662b03cfffabfe52cda027247d2af8ac9d870446a8b657b496fbf8d74d9d8e36d396f2e0d85d3948404788fdcc02f5462be06329efd901f711c77e83014ff3a02751ba8f3dd28cb2f30ccfe3a958ef2945c0f8a3c6d331e38a5c6534e71612c3f0b45dc81396410e4d55c7d31401ae7c7a1549104c718bbacbc9623637705a2342f261c37bbe35ed30c64d87be17ac10a263a2cdf82947b73144d145f8711693edbb51e707f1bc75a63ec875572f6f1913469bd9e8ce4f7dcb542ed3c5a61e82f671a39f69895f0c360233b0613c73ad683bb4d2b7771c7b7a24ffec537d8e9382c0b1a274d96eecc6a541e6a7a8115cb07767d7ff40bf1266df4b22bbaf49c8f1d103a3b9d3aab33bfb05dfced5b1e04a842add8f18a462c47363793d707f4fd5fce6fd1d2be48faf532523955adbd22d7294dd66e5c586e90a59be612777b3e66139a72fcb608329c297cb84134f20e55622d6f56e9653877042b1532c143a2d9c00004a5bb4355eb290695524c38a45f97a0d67eb4d1bb487d3967349e25fd4dd5b1823a545478dad20ee4dee931c6637ffca4f88549ead5f36d86e799ee757cc555f910835077f273f5c38c9508e8d1a932169618daf6269e2c85676c515f3a190dcdabb0bf1c748a385fef8bf108cd716ec09cf2251916ba42c20d67f178fd0853d40a90327053cabd5d8997f\n\n# tcId = 186\n# length of digest contains leading 0\nmsg = 313233343030\nresult = invalid\nsig = 33ebb328fe4a82206ee3db40d58d9e3081b53aa51ef33625afc2d778c8ef56c174bf40ad2a20d3524675269efc92579bccc332b1b1af5ae33092a3579d21ac756a232ca4c18f6a5e73ebb1fd0547e18b6bca99cd8dc715f715fc262461f587b2ebf4c2f7bf41c9a21cd45455d492d5dfbeba588cbdc2ad00183a3dfcdba9ebac02bed5425ba71d0890efa95d0caddd9c871cf414f2357ae97a28b48b656b27b3ce1efee9b29114ec551c2afb28c4057451d52c8ca1050444bccc8863c0b8ea65f45c985264022a767d245d3fb2d677b7bc56007d55ccc85dd572d2cf669855e38b41ea69b75f2a6f405a55c495daffd75ade0f086ecff34e3b89dd80627041165a91be8d92b58a44664c32bb7baeb5b3906a475e5efd680a85a0a3bc0aace9bcda1b5f83239d88f1d8f085149c3bf9b4dd972444d3885f266d4b30bb5ff239b05f2addf7e2e8b6588fe46ae137ab7fb9e795a37bea74766f79938b0d56d2df81bd3c7ff79c387909463dddfe36029275ba18c7fc7d2f50a042b4e2a65ecbee8b89f99cc2a5e45d34e1d4d42855f2d36a2a8e2459ad564ac9bd83b87a5d73e499cafff57c3742c652fa8651ceb10456b3673eaa564e4d72352e7f4f24e15a16ba94e7673f9c584cd9a12670cbf0f1fbd6764e15544a179e9e1cdada1c42ce8ea189d0d4bb9a275bc3102a180f440b09dfefb355a56f0c74ad80ab8954c6e35767\n\n# tcId = 187\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 9f80040b3371cf9b2bcbacc068f03645a114b73c73313b3e146d2c20e8c6d4bcad24f0893bfd320febd6991379ec8ea796faefa3384b9289f3023eb4a188439c79ad5c501cdc0807630ee7f9617a4ffb0e00fda1674972eadbf57692f516f52b3ca7c4146694cad95d54257d76abd3a93b6e2a30114217d2439959d9df1d218b95eefe36e4a01456aae9311932bbbaa34aeb12ed21039d643524462c7e0bfdd647576a3ced6b2a28558230ce33dec63a5123666d1522f9b2e624574fee22827ecd7314bd2e2ba28cb5b0fffb0e78798da8a61b1b752753f6053b67def7b19936e35fd9a0671a12cc54d099a7db5c4429b39eb4df20ba325ebf478675e5532cf79b9e534a96129dc71225e9cd337207fc1a060734c132843317b05c8b0b2a253366dd340a7d65e61f825a8b96af263b351a13c312141c7f70794a048c704294b152a918e21c1546b0e50694c12fa1feb5e999b2076dde418f2b3a8d4c906824a9735f80f0914e94740366fdad81a02911cd40e1a590a587dbdc31d15196698b8f1d658262a5d88752a0c102208f4c24c0e61a66561175cb71b3dafcb599ac327ecdb72bfc4794568e3ca5696e1d0b64039caaf2d2808d9f528d9740243d781359f9b4b9b68244a381ea74023f8b5c7eb770ef189b1c2638fa1234ecf74037ad0f6f03d62bcaf10df7755846d8d1ff31223d20b0543f39092e40d5aac96e3c5f58\n\n# tcId = 188\n# wrong length of digest\nmsg = 313233343030\nresult = invalid\nsig = 7216b71f801c5c4976a9db1cdba4262f4158e424644b9c9f9dadfb3de7648175ed1b4f57f2ffa25f6b5977153d059366e80bb07619ec5d9ba865cdb004bffee65b066fc285a4829891d17e502337991baac032138d85c6f0b3398e3029343010fb7ddfa6d9e444022cd4992918a55e5df7bf0604120d9adf25b30eba21725105077cbb6b142e00ae97f03a7ea943f6107e4e7ac8c639fce407f3a335cae69a960dd423a511802e8d1fb25f7e736a49d8ebfc4cdccdee4168726eba22246f9f21ce0483e6f07499d6375158a7761ffefe81948b59d47f0e9a45a8bf104b19536535d5b315fa325341c4c199b3dceed592b3b06d10f5b8223644e7e85287038f71cff7302ef5ea1cac02511e47aadff53010e8bf433ac804df5f0c80f71e580f1cfba783ba758b8fd1f62a6278eac81a798ccde4b15e3ce1909ddea724ce9ccc674320e3e023fa0c35bb5a705bf17875ba623e4c30feef0e6ffdd34f4c303e042d551f5a83ff18120f9f44c104cf8a604fa9cd0e300daec6298581cf6426b9f89f4b7fbeb7de681c638a2873c27e73528362c32332b9cf7bb03560f30558d1fa0c3b1ad8b3478911ae41bf1c939b59852570529eee9f7615109f1ca228a5ec78258e57276bfba2ff77f6ea715c2bd0113bf28e7bbc152dec211d14ccd8fb30e72149bd8c097ea8b6dd82d49481dc8794b120164ee0d9cbf9a2778216abaecbf4fa\n\n# tcId = 189\n# uint32 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = c11a64adfcc6711c6b80549a729c311ecf30d66ca2c7d31eaa2e7f7e867b3c3b5101146f4161aa11f6e44756215ec09859602051c7cf6238dc49cf3afcfea22683c4cef0cdddab1ee87365d9999445c083c5fa28234597bdb19b90789a84393c72aef4b7767694b3e0c09e62b4a2a864525e43e858e1e9a1424d7ea29a44f24038bfa2cac74501156e3fdb7d7956cae230f5d3efe726d817988351e893b3727643a3a78a484d91103a5c50fb80efdb8fd5852e9d63019c8d80a1ecfa043783c918d45e356c552b0957ac92841f3acaf38e725fd2cff798e941ca9a63d53c94a578c9e936140c2c0ea7f261c8cfe6376fd20bc3171b30fb386d9cad48a24fbf17896781d0c56d7635d9e61348673defc7ff1ddcd2530dd3b7d6a8b09c0c94a44ae450652b0954671ee78c93a0c5213b0e97dcef53b738fee913215684e4858a6f3bd6533591ac8988b91f1b60dcda60f17ed3f0de1388656589ddd78c5d61e40ab2280e7c4ccf83a0a6c0c0845b3036d55b48be0100f0945a86a3bd539f4d2421cd93a722eea084a839f70b21790a503a5c5c5ee89dddaec3fbe4f35ceb6fde832f281b8e2eba35d9dcdb0fddab11a7c6fc6c365cbc0eb59607e3dcb37ee8e15cf473f5118ba8727ebd70561", + "3a7a2ce2df80f21af23522c585d499a2503f11614a0fb7f2949f8e7882cac49e0fa077b6d5435c9a49e3f0714dd118709f95a27e5\n\n# tcId = 190\n# uint64 overflow in length of digest\nmsg = 313233343030\nresult = invalid\nsig = 197247a515fb4a12e874a4d4c9be95cee53782ef475577df61e0e70e3c3bcd5bd4e9867c0e5c9ee5decdedc53603f5aaa5b783d756279f4f74cdeb36a93aa51bf6ae3db9d1647ee62f6a079286391c0f691d2aedc1378e83de154572db611b61b8f06a84e93b94a868b7e6f2d1346acfe7e154986e49afe19f906b69f3e8f420b57774deb244d26b515e88fc133eee717786da42a166de47d7ba2736bda6227ec63d089a37064130d95e1605c848407b38ae9d35850a3b4988a22b867078a01fa038281c5f7a5abd947a9ed12a2121a74e3da6b2b50a7d8c24009fecdd7018335a1de8d86677a2a2ce9c57241b4805310608fe7a5e7ed9d29d46f99f63f89f1c4a5012f41ca1696383d9b2b4d19bf92b7d0302639797b4dc5576a059278badf1da475fc4731bea6d6277117d03f4939ed50f989095286d5dfc484e535f7929cf0191c5e006f8876527169a49f3ccfb8b9b21a9fa48a371da5960ff7b399ac3cf89a1cc0dd0315b23207ebfff886cf03422a01405dd8c7098ca926f65db7bdc8f32ad9146ac2cd81f743568207ddd52b04420a6fdb861938790234b3ae923e2f483bc6905ddc5a084e6265b39a443178aba79079e33e7d18315a86a0ac42d6ec513e3a88c0619e09cb25195aea856355bb3df00820a856e1730a61196bae28b89fc1914cda5ce0f97447c5817798516b48c0dd437953ae7ca17a1c84502b31198\n\n# tcId = 191\n# length of digest = 2**31 - 1\nmsg = 313233343030\nresult = invalid\nsig = 568e9fe5954b9d77643aff10e698d24ca734bb988a6591bcbd38659638e58e8ba7d5b03a9114c9dc8cd4c91613a5e90e21a83ecdb08844a6b42639e1c4a2929754eef740b7dd21626d2a3d0f93d1a78e6402361ea406652d98db84e235858c6c35aa4ae83133fdd08807fba77825668c0f6e36af5adbb5422db4b5bde2c9669fd6973e56dc12866d48e132be7393a95aee49613df83a042c6ec389d51fdf2e38ac4f9e816eb3fa5467f50d5939481ede71c94577095d2f94fa1f09fcb2529e86ee0e9548b455eeb7d435b14764fd9936b0b000b6157cdfb1940ebcc4f4ab2470913fa9af408042f4cd09a6e32bea3301a1ab093ea930413c230dcc72360391b95e9819e4e245529b0a1e75511cab8f2d4d3c10c37f2bd1c2548ca688f3db84c274d66ef934d6ae55a48ea68e8b9b37214cfda51036a526f33744bf2ba5a63b7d8be0a4e6f503949d38bcef9dfb8137984ad9c87c44e7e79c00a0a82d00c5757823d2c49f4ac73f05589a9ac3f97bddafa208a5e07171f9b2e5dbb692bec4aa4c7122a72084346ea665b87da227e31d8773f49e086c6ba1d2cfeadfb356419b3c695a3634693f2eb023eba301d6218685993c201eda426a377310f853afe4f5eb0171d772089c63faef2e7341145408d7a32ce5cf2d1212408446c8e04bb5a2ff58badae4019a56a99d64c95daff600d8ece037f98d7c763f9b699136106feab5\n\n# tcId = 192\n# length of digest = 2**32 - 1\nmsg = 313233343030\nresult = invalid\nsig = 9d5698c424b9c2d5980a5913afc9fa988a5115e0e689b9684ac6a1f894749561467804d11fda1fd2e6fb7b983727f42229be82938ecba0e9c446bcae9f213d722baef08fe2386e490712104d795fe939ee7cefa78bdac9e63d23bc9a27f5a93f3577517b7607b432cd0b045babaf241c9fb6f2bc4abb0f710b7b707aee58249837fac16d3a0b8745713611082d50327daad96b57e8f9b256e72e0a32c11e439abaa21d1693de7e03016bfce396b3591d27d069616a8e0bdc340df8340048b0073a4b24dffc83f0d662a58ecf549b1821cf71f4acac30c1566c95f14f02f7dc3e7ab75f91827284c5417b47e3a513bfba2a8a34e15c253c5c4ecd87a4d470cffd49cccb44f1b94e0e43738e526e2fbde7a75d7984d317d2f7d0e3dff24d5c0edda477ce1ecde8e1ba73b84575fbf77d9dbe50112b9e130581f8587dc7a2dead3e2e52cd9ae558bb74243aea20fbec26c9323e45b30dd9cc6c68f1d0febd890920d89aa0fa1eab29b8658c7331d65790da9e12c4a92945ee54b38cb9b12795d74b5cb9bce70633b007a6051516d48018d0157a946a1b8297d5417d8fd54084ac611bac2ef2df20600c3bd1b6056d2a29c9d4369890958ba030eb25cfd33ea00455c682bd2c36bfd24b02a8862060feb3da9f437ced7faff2afbe5a157fa0ade435e94116fa17f67424faf3d01c22763f95c9486e03ca0c46527769393d47ba2daa\n\n# tcId = 193\n# length of digest = 2**40 - 1\nmsg = 313233343030\nresult = invalid\nsig = a63a208ccc6becc02fc5c8b433d34b4e380e232e4a03a0b95b8df2ca86d6a5c402852d3a9e3ca48f65af6733ebadbf99226b3522db6a7c851873822f859ebe6c12014ee9d792bacaa7b917c0b8408ff1eb328bbe31a36832b0729344a38a60ee140f3ff708b64e1af538d888345b5afd7015163f5749d2d025bcc9fde2da10a3a193447ffbb6b9f110da2cfabefb9b4e00bd151ae7855c35d3da37f03a17490e02416ea7b8075431f3280afa904df88fb8c5e4d3bb0a7f2a52c67134d8c81756540921c9ec8273983079c4bbba69e11ae24240725c6a4ed90cd8ce1311b7531908b2cb2a58ad8b49eaa208a5bbc67c4293d97d34f507b120971aba0f1bc9c539aaeec3dbe1f9a252e203e48b05eef955e0a2aec652d330a4766705a73f6c4edacd9da5b4fb5cbc20d39e9ed1954e2c80ac15f59abfbe6d8f5fffa95862f4c151132a2b11c4d1a7b615cd6f5c1b2658593c43124ad3d5da14c3d3923fc11dd0e797decae73ce25b58966c5d00e48fad63afc4204c52b27985f4b15012ababd9c901dc81d7f63797fdd350e748862e56228f7fc0516a93f3e95ad15c1d2401eccabe185a533d42630e94b7cbec2a200a59405350a5a9399d83c58dcc3a64429c6d9fea31cb1917aa6b312416bd19b9c6c6113b9f44d812d7e83690d5a9120d4bcf3caec2c7d1e629a840a50143da2c242b2a761193fdfa3d33707dcac7d09563da\n\n# tcId = 194\n# length of digest = 2**64 - 1\nmsg = 313233343030\nresult = invalid\nsig = b6302a6dc2c5c9e13b4b3931769ba271d97f0df7e54b7b636e3275ef69f06b521563bc5f5ca1cc3170705fb1800500e67c97dfce5d4986514f4e8dcc67c8318fde5794e1ed138f9f50f748a66ffdefc9eb0c227cb8bdb6b003fe63558c6698cbfcb12cd53b5f986ce977eda7be54e62ac9ea523fc38ca255998b744c8ff907a99dd8bfdb0305e0b1d8e79c8313ea0c78d47d6b76a25ded0da248502800ccb44b1665d1793de207e20fecd09152eef0dadc99d24fc013e55c983e9a4b3097895d41c38cc6e9c7034b225de5a03fe11bfaf4aa2f2cc290ba0765732adcb24796ac9a7c3e2ad159856750cc9417427ca013e26fe911d2a31ba8746da30ae717dfe866446b6b6ada2fe9a5b9137ab9e65e2ab8fd79d8ea8f55d5f7215e234fd5ead6c334ef3405c567999e0b3a540e9467ad17ad20dba6ac7de39c11545e86e2d973c39f0a83e15a62d22b628b4b88903015ccc5c2ed12818c9f22fc97a9ebe1d32f426acbae9723f71b86f7ac7b6fdaf7075b9fb14620486a218da4ed75578aabe4600f2a394cc6865ab2f5c35913cdcb7d7580285ec08389ed9d8eca93a7490098c89c720bf1af7e1f37889fb85ca6b4bec4d552784fff6fce0be5c62a79e6ccf05f048bbcd033e6c7210c1311c48876d3e739827ced4e8344b7477ce5cbe5f561ca32a61b1927d0af1419e75f383a5ea01b117bf4ea4c9e0c64052f2367af8b4a\n\n# tcId = 195\n# incorrect length of digest\nmsg = 313233343030\nresult = invalid\nsig = 56c674dd1819d11b4546be728e25e19c23ff0529c927013e81d637a082b2d0ae13e2f6f9f48727f3b9e318d6f15d4e737eee63a7e0104ae6c115539cd26c4133ba386bf5265d2d9fc91997d3f262b53c311f2b54e75ffc716844d806ee30a5ab463d1bbd635f882e188b67b06210c2afca567bc47af50c76d1bcf703397512d30b67c198af319c2afabe343fd0366ca8099b4e8bf925bb01f39ddfda97c1f0f3bb7f62b8285ad6dbd427889bb4d29bee788ff4b46b29dd8ff4c5e5af919e61e5cbd4242a0e46a1af6a26ad99d8de39a1864501f3724e348b62445673a9d71b997afe2348bf8cc6f9ca262e81b955e5109b0258502ad9ac8a24c5e220536b99be690851169c3ea56a125eee7b2b374daf9f6b95eeedaf97f8151f618f1499256656afcedb8fefd1a524128068ce65c98162f9b5467fe3e41f73b2039d056745544d927ed63f8a588c820a8b45ad7bbf4cde144fdea2f241560199eb8ce45b1868498385677a13ba3f3db9f2ecaf8b55985a398a8c95ec2e02dae95d4e4c0cf864aff3fac920c1f12d7685961bb6e681b31e944d58ca22d64d38322d66d28e2d7db1bbe640df42a108daa275ddf2050ca93cadee433f3a65e88e7e52733d4a352dab1449baf69c9efa736427443c26b587bb0e359de5ddb75253615654b33246f1a035a23eeedb2f150704589e986a52cb8354697f33ea874079cb828be00d56ca\n\n# tcId = 196\n# lonely octet string tag\nmsg = 313233343030\nresult = invalid\nsig = 876d9d2c9fe40b3d3c9b3589ac75cd8876b5e3b65fd15d39cf61daa157dabfb659ac0d411e5da5a4fc69edbd33f3f2dc2bdd12b5e2a497c7a0d6486cdccef0ca8ee1f654aafae800ed764670a34d2f2d6491a97724e6d8c933a318726bf91765baf06bac71788178e565ad8caf12c4c1003ed4f724d7fb83ab09cf05cebf660daa44fe8918b6bc6525e7361ce4190625c52442bc99ac3657f25a0ace3890b90eb947d8229adccf191f7b7362ebda5f62794de03589b7437d85991c91fd55f0123b6c489e18514c0a977a798ba90453f4bf4521f438b6c096f2cf76352e2d48737a28cbc26fcf1515ee54e6bda99524b9c2fb454abbcaa9835f36f73509ed7fdf1b367be380283f0d391a1ff6a9819bffe629e7144ae5fbe03fd5fa9bb9acb9bfc0c2906aba09f8d797c38046c996f458a2e55f1451dcac20e082257d6ebb13f6966b0c2cbee4b8df9e75d31b457205a8b534efecdbbfd8706aa8258b2a85669641fe9ee8132e6fb356ddfca16344329f9245b856aefd263fa4a74fec495e28eacc50eebb822792c400b2b3c0741013da880d5f739bfc5ed23b0f523c719588f3a1f4c45b8f3058794013ee49cd604888a1477b3227c9de0230210479dbeddb1fdd6b94573141200db3da79a6caae2b0118fa8ef28b924b7116b304d2f2b469db8757fb463a05c495baac6d63a76119ed4a8c4910048eb7813fdc86eb9b9db1de\n\n# tcId = 197\n# appending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = b0f76eeff1462f8ee6e73c524c8fc6792547774d17c00f38df8533546d802c0d8ebe192d23a5f1472eaf562423c423d3646c12574f69f7c85fed1aed0083532d1e52050053a8a111e3cf4e24a24b0944f0f14afbd70fe53615764524a9715e3336bfabad476c12faaeca1df21c01", + "62b7ed9a5c91ea64b2b8ddfbe5d7d1b50149b31523d396e6c96ea7c5f9c2fd20fbbdcb699a6d75fa00adc390ff6ab95de2b405c314a1ae7398087f4d54f37b6805318fc8088a49ba46b2b1f7dcd6dd16881a641d922aae80e3cd0baa82cf1bc1da9b0d3af24d4b04bbfb1d1570b2385c848cad1902083f9e7823fd8f6afe84051ba54c76db9d7313238959791fe2b0947cef28b2954234a56ea3823433ff5fcfbeb37dd8d18f6a04d202c7757d2f0c0e91d6384a9037104041dabd72ca429a3b649315c5e700c51d35c16a585b0e9b6b9e019ab36c9168a17170fcc38b4c8dbfaf413b148b3217efee713e0a44540498f92cb33e8439ec585d03fb9c5ddb443253914b0ac90ff97c6c9093003bf10cb05652ac59cc2a4fb54e92ff6438f3985e7cedcc0fc7ff18e2e2683d5bc41eafb8bd267b3bb50b6370b164fd84f053acacd8dd38a26c08a3ca1ae85284249b5b9419080a6dea945191421504a1eaf3230ef8d1a8b353fa68452aff1423f5021e3b9b6c7d290c9eeb03101909f96a3b02d87a1239663e3460c6ca0453f5b2c17bc2f08a\n\n# tcId = 198\n# prepending 0's to digest\nmsg = 313233343030\nresult = invalid\nsig = 9ab76d318d79a840c7d81a15fb67baf380901dda026d6ad392eee9cad2520a7d87a659a49b65d5dee773b30c0d319dc57f31818902247868a55874f210b1e0b8629f4d565626837ee063deee65d95c8b569f3c38673172c48ad68cbacaee2d8c69fc3e22523f95ab75f587af15d5be529d95835f72c163b54af9d92831ae8f3fff0cf7920d57c28a88a23084649cb20a68216458ae67b6d99d54387fc00d845174e2f3e930c1a0e089cda56273ea4f673af196b56b55924b57aa0b91adee03b69e98438b12ef9d3c3a65f7ba06d7c58e5fc10eaec8253cb6fcdaeed5c31f177291945bf0c69e7bfa273d30504cc6e94f7b7d60754135117411ad5b25b6003ea86b808ad80efed199a559f9c84f473fa1f554eea985e7111dcb2df4c4bee1aae22e58fe0216c4a0c937aa08d62b9222833fde32d991e4f8eca619d0353c2770e61ba3abe08e9b71de29fbb71c10ee6d8220f0ac6289c9c425f4981fc290f9faffe65ef6d207572055a5cd5a33caf6a61f4eeb6205c76887accff381591c51499a32a310a50ac479b45ec1a3f05c1bffe4d38d1f083926a208d9ef6e8b9e852a6261cb4a9224d35b0eab8bced1a3e0946736e6d49edb2885325a01bc0e7f89a58ceb57f88cd7047c5b002104fb180415094251e49bed59112eeccb7ddf99977d1a25544cdba5b10516d7f6f95c9e9275b484fad64b7e2e25d995a541d28448329d\n\n# tcId = 199\n# appending null value to digest\nmsg = 313233343030\nresult = invalid\nsig = 1d21743f51fa1fe1038b8126f6ed9e62f99a0fccc2a8b645fd90b996de8ee8d76e0752c83ec965e342a87c02c248b96665413de03aa7cd413ca67b17f74bf9886c9fd8223cd94dd71c98f874476667ee96c311fb40e17f8e7446624a41c02791726e62c0489accdcebffcbde06bbe3ccae1d669667f0f6157b463eefe4474ee89f2e9c6ef07b6d63c1582c4570f8473e07b2d7d0be72ee7446633b7ca5f7838e92b977558444580f0d305dba8ac74e3542b0277c6c21d51491c1a5fc6abf3ece671675e48a41c254f78e1d2a58c2d5a0294ed4720e511985e03502458108200fb47ba00ce379da0f429877b62d6d60133f231debae91a29b940c8e8dd278f7551bb5df882a833a3205d2058958a0f11685b3bc0df0dfd5b8b2badb8e02c4449f1144fd744ebdc2452522ab32de4bba59a3abee73c9baa120a74474d79a5b414645ed827ed3b19842a78e9bb83f03ce2a985cd5ecebf6e773594af60e285638a7ab6fa5db555015460f03fe3fe2e4e815792108d5a39f2fc5fe620145e7899001cb722b1c1524c0c409d8207e48e7341ad209ffc2552e4fa4eb09c749c320f9568cf9fe1f4c0f1a04c20ebb522fa77a1d2016305a75dab806ff3f5dfa49a191bed0468fc5bcd680e0f5f4c730123571408d6e3c3d466fb5adb838e9be035d8588f1fc9055473200cfa569454bdc5a31531d9af5e7861f035119b1584356c7f505\n\n# tcId = 200\n# truncated length of digest\nmsg = 313233343030\nresult = invalid\nsig = 807554d5b4af18450ab5584c0d81a98da3c2cd417048399c060fdc8d45d8fe3f621a06f7ebf08953c091157014bb9c555673aa6bafdfcff69bf27b62992af6694b1426236cff69fdad373f11044d2352259144ad73f37025bd23b2a9fb9b9d310eedef1c875c269194584c9672f229af762274bbff201e9cc0faf3a8ea4b0ac0605666aa358b87c63ad12c4fd644113fc049f98daf2b076abe82670f85853ca2ba8058480b124461057be13f690057a9cf68cff0cab120de21c6d18b7b6a099a0a3cd60c9bb40fc683c19a4def659ad9d806dfa876a2860c6f63bc48c96bb75d0e3bebc1fe6da96251703264b9657d4a3c355f692b27608ef72d5cc88b0415273c3717f5a3809fd1bab1be928881efe8ac5968050494030fbb332bca315a6b2b31ddb433cfeb1dcfd4a8aabb50d3db62f33822cc6d68d96f1e600fc83edb4b8784930c0b9c9b7ebb22b12218840fc65c6467703ce961b19d7a64aef4cd4c2acd350779df4ddb1050429a0858570ab155b174c928e168b818dfcd311e0d2d2135c7d2d639ef5e66c2b806ffba10edc6e789f3816b7de76bcf84e0db5e7509babe5c2cc057d835428aea81f13a5de5e38d5a4a34dd657c72874c21065c02b4f0bd841bcf58e1c35ae3f1214d719f8790f1c873ba3f0d7a70d18622382d94d0468c2f5b1834b57abcd33d1ecd71ff9cc18ff398a0c14a88a2ef0738d866c767d8b1\n\n# tcId = 201\n# Replacing digest with NULL\nmsg = 313233343030\nresult = invalid\nsig = 7bc68409ccab429900777ef7996b067cf577eb5c5005f8244e0aebc2d09f35dae9f555c6b3c103fc01df943d90d6d57ff6594d47f080dc486607df002fcbf308cdf2a0291f702c23127d7856e9e442ab0cadfaa393dd6a0cba3c07c66e864f8fd488ec6b309267a18bd3099be8f38c31eb016a7ba00d2a74103a78e7877365da66f3c16a7fb2165a9de1e8b81d7e2ba33f3d687298545af611ca205912b79a5c63425f8c9659ff27d0041ade0ef02a1cb204588000a37733de3b2099d6eb7addb0baf2cbd6c9c92ea36b39c38943d6550d13adccd447aac93c664efc2100f48a0a6f9cd490e2668de46299347d04090f39b01de69032cd527e2b961cfe90f888053cc177fe98eaadb3ebb1b8eb44a1b232aa0e286d6f7ffebb7ac0a4aaea6711c1f0b95db88ec6dd10e2b84e83c672e4015edca760899d69f0f7801eb95a50d6673220968db8d7459ea74982ef3e907caf08ed42343a48d60f529fa64011ea457f69d2fcf693013ed6da6eaea5e80965d4d218fdf3b3d46445ed081d47e9b148ac2aa7669b3f1ada4f5b110ccb4bab9c869f849bd1947aad30cadab36b69ee0de614765315b7926055d3704aa0ada17b9d109111e538ebe431ddb745c6a4910dfe276eda05629126422d70dc3d9490cb79cd25625cbb96b300e11c0ed68a2ac10f87322129494468999ac29a7b2f1871a6d06fa4029903bdc441c7bc6af879fa\n\n# tcId = 202\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 3fd9709bd5e962443646b263ec4869daa6faeec59433cce2f237fdd1a1c6c4373bb770bc4172cb2374d937abadcd12abde5287705ba3b7c76aaa36e92c73e44b0dc629514ba6c24ce82daf867c21300d573970877b588c1292e2dfa8e9eb6dda466bd64c1f484e0a40fa25885f8cd3685de748df58e2fe3203451421b3aa0cedd45559e2c723747fb4d63c42ff078479b52ef98db0ad558def856f23ed9093ff8e7a36b475c66993ee13ca6ec2ab8d27d9021b5195cfe57c0d48fc51bf9237a7876d693bbb27cfd1668306bf5aaac676aa6a4095c8691d77b75a3e98725d2cf80a3136f64d2b7d11c26735f98b3f49000a67cbb37ed39a985cc3cb3af3ffe4ef43820b4bc9db22d2c5d7ec74b52b7b2ac1dcedca614265dddf30066fccc217043dcb37c1d40a370e6039a1490f41830be87766415dc6f0423e3b979e90f4ec0cc738ec11c03cec9bfe7cb1bca84c9086e0824cdcb55fcde0df40ba1fa4acaa51d2c548a58cffa69b14fc71f34f36c457989da718f9ab2ed5f428337bcd7211ea982879593724b8ad8a347bf1a8b260bf56dfe0994e2104c00d5cc1f6fadcff927b4e12ce53a2b784430a5b55ad52a1927c6a6c949fad1fa121b0061fc838e6923ec22734c94758b3d1ed033ca1f5c3235fbf79fddb61618b620b76bacd320ffc20e0110c8e106ef1fc8ba46f4cd42786a689c1ed80df66dde2c8f76716c5cbf7\n\n# tcId = 203\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 0e698f7add604508b556c6f9a02cb65d3c8b494e68d440fdce02375781c264e4b0120bb5a417c1f1b47e355dc68821a5d2a72bd3bd5424e1f9671a1267c7672a411e1e6412998a1ef45f80d96a11e50a6585696389250f8f84dfcd8c9e357fc35edc022084ba99eae2af55885fb145db13636a81a5f7ea52eef79c9268cf98cdf43f1a47674daee33cb1df5f7a09f875c65f7f9978442827bbc156ced42e564070ab44d551bebc7d218617a9d1ec4a5f48619e5987629060700bc188ef8b90a48137f5b31eef4710d5ee7561691832a0af77df933bbaff392be3b2b598b57acb38240a5b204ff9b28b0a52972f278919a8c14d01deb6447fc78e9659c32ac9e68706c1b16f8db3303290ee0c94b5c33db127e741f6980d1868a91571ac2d72e3a174dd3eb417f3739ad61c68110b0ce8ec78cae6b20cc59a6e7a07a8ca7cb37214105f1cd04447127144882dc3cc7b86fbce2827b9b756deac3f911e11a35599db509cca6f41e2b718a850befb7401772a5b3453dfdcf99b1781f9f41411e1f67d22dccf2ac2e0db7b524feac72ea2029cc8ae2ff834ae17031d4e052652ad957593ca6a042501dab1a8b000d6499d7a79741b0b73ebbf497023e6854753cce30a43fd01cb3db662c9e06da25e17122733987cc156cebeae44d67f3c0c5abe680fe105d2b8b501960f75bfb2397130f1d3ac0c5c13aee841f3e5c0aca621300e\n\n# tcId = 204\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 06956b9875fd5b4f7e0bc252a1fb560303d1d5eab0b676b6aa555b0bfa9be63100357c74a05624f9babbbe980a94b5e68b37202082d6ae713b4dfd0a7689ad5ed3ff70e9aafba45f7e905ac6b9aa9e4717969065d51c003d23bad8f2c821e709746ef58a9fffee3a99dc782811b8af30501d28d6865d0f52899df3c08b2254b199faa6402ff9cbab16b168c801bda906e537f01d9a541bebd77f112947480f1d7d470add94411e0598e7f0895b1ede3ba2f1b907ed04b10ed415fc3880043871677624ca0b74ade7f18f6e01bedc0d1931986e29e7eb0e7e2514742f828879cc8668d110f4bb940d1f7573835a504ba6021d6075cecbb5a1e4e908a418f56b1cc7edc77957305521534fe00e919d6cd03ff0a3b9416e44fdf31cedbe02b47932a6d95b702418ec6fe6e3e69ce5cbab745bec15a6122b5e74dc32bf7ad2", + "b984f25bf4018d4b62fe92b1010558024b28009a72cc4f72412a559d84559b97d12c549cc569f2ce4ec25a31567930cf85caa4cdd34117e775f48750b6b5c70d819b9e6e5579009179eb8fdf779bb8b898686f03617501d9293ecaa5df479b046819706d73a9b3afa0ed6292aa30504b65ab73aba5c1acf8485472bceea7256540a00e6c4624623286c9e4847172881b091f40e520e0a6d1280cba14abd774eb0db338f76a0d86ceaa5df7ce4fed554b890fec7f32874798265d1838a590be8634c217\n\n# tcId = 205\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 7afebee544075bd481ae14685a0fd2c391eca22ac5dc5379a2dfcf9cfaa21ff2cbc334c7ee489572c9cf30f34fef16457dd60f391f85c304779482bfe2ddfe8573345fb16860f60e3489f4314f971d169e8a4ebb910e05013965384830750e6d82e4dda7b366ee11372e638de2dbbab1c1cbb3439f45e57a8863bd7abe7c53d61f050c0a52b63bacf5e92fe47e3e7448f16ddf73d2576bd222ec6466572a134e54921ba1a7c29b6c6e7049ca08172e1d55cda0bcaabc7f6a38e17033d92b5d81e5c6c45fe117230fbdcb11541f019afca47ee5132d9368903ac946e5522b636fbd302c9013f0e5cd2acae07cf7e806fe7e96ed3390f214769ffe7a78fb76879820990ccf7799991695286944b5416aaa09e85fce29ac1360f055e7ff698a11c40de0be6c5d5d39b8e969552da090274fb2f996a0b7baf57d75e63669efd5113667f732a91aefe57c9fc18022ec83d1865f858c74a397806588c3849a30235749bdd7dbdd3f3d8debaa92d4c91cbde08fbd929073bc9d9d5855614415eb54ca518dc2b91ed1b90c0d2ec27a149d18f6ea006abca2cbccf1fdd9c03d46dab827e9cf420ffdc9109dd8505a0db745312d19bc3bb6896f99cd9ca124bc4ed4edfcfb972abd98b1fe606662ccd77471a35b8ae3f405d688cc8c6b2e27399fdc89d189b8aeb67031138c7168afdef50b9b2bf9c23191fd19203ba4e9d0b4629e5a0dd4\n\n# tcId = 206\n# changing tag value of digest\nmsg = 313233343030\nresult = invalid\nsig = 806cbf33b9b7c058714403ea504babd8ac78416b0a3e77b4f821e6fe2161f86104703f2ecf9e747be60512aae660fe8f7c1dbacdde77b421172b5e68aec78d7646ae8e849fdc878b8dee55947e58deb80235f1d79999dedfb2967e52b2554350ed7954b21710c96537d58ee2ffb4f3310e77d8663fd6b1ff92efb0fbd5658d757c887b92c84f8d79c17bcc498543a38e97219029343f59eb0d67b0f16e80bf74d50361798999b7783f92575d3ae4fe8ad6efb51346fea20e6c0beaeea2f56af5d073dc45878e6e975bbab9632d38f84da8296165320652c4fdeaaeb8cf17e5a3ba72aea4e46d91008de112144d770ad7ce78ee230b296cb2df5b4a1585c6346566ba8963648750c3744a17de3dad45fad71702bc0f0396969cd6ffe6368b6274418d23b56de452f14894db50720f657bf2e3700635cd1e1fd80fc61de45297fb7f180d02d4563edd24e757c461987a06ec07638bda0f362a5b3ca2ca1d7272d6039d4cf161e2cadbbc755ba3d19157d4fbf320845e9c7242265807add4b18f5952229e4dad0d1eaa5d225d4d1aea144e83254e6c9690272e3312995ab337d673a285707fee499e72701a5283e0cf5802c49d07a113383d65e3496de37b3dbbfdec2b90df48490bd9e9dc21ae294144759434a7183c9c8767e0d8efcae2a6bd1bc794781f8df000431664256b0d1e3413824317eac6db977937e47f2e401a7c70\n\n# tcId = 207\n# dropping value of digest\nmsg = 313233343030\nresult = invalid\nsig = 4c9e5d015a27bbbdffff3fefa717015004f1daa497060fa5d67660621ae82c148dd128cf2c3b6a2212ee74303ede9736327d56b79bd967dbe4593ec445d551582f0094e4d6573f1425325778b1a9720949d4a67ad98019839314daac19044472fbb463e576f5164ea0815b013773ab8abaf57d895316e6b7baa4fea6168b2d5f622f88ea37612b75417016ed92defab4de906951df472ad10700b11ea13f8f43ebe8bc27a944572ac4435e8f03772ac427bb794bffc52cb26bd7f058750a991d2bfcb5eaa205a1ed321487e7a2d80157f6d394ea1fb4f51ae546b8f8189c41415cd6a983fc363422ee0cd1bc9c6b0e3f5171fac51406af6b93f47a9449c0ba274584c8332d6253aa967690e59671591f9cc783d045f8cd2e53ae695d2b43c6dbef08398f17cb53faffa1ee45475879bd6b1763c361af445175723c6fc55f1dd2f108d51f9e2249e6b1c0b11e8a1134dc4aa348942ca2818df11a84be7ef9056b57d0701e41373909b0b7f2acbbec997c20f9c4c5b6fb373396608f8e2cbf4d246b5ab7bef83eac4061caef51895ad856839c8b776522ad217f8cdf54311720c28da64ab5d9a339ca82d43ba98eac57b8532c5606dc6d1a9c7fcb20dab617ec74984246b326ddf2596326267dd90cddd41586ec2279a25c2798fafb68684df90036f3bbab85ccef8d50209fb317af04825ea69c844b613d0f8388db9c2cef819c\n\n# tcId = 208\n# using composition for digest\nmsg = 313233343030\nresult = invalid\nsig = 1b4fa86e9437a740396f01dfc719b300bc30013ef20702a886018f73ff6009e20b0aea169d6c8d3f8e5b39938edb137e2118fadf6c6b66a352880d08fd59d0db8e5682214fd2344a67ce6dce96e4e7d0bca67211498b3cb2688dc312c97b051bfdcb6e950c19edad779d41df34888a89ab67e9ed352890a8e29a9c9009d0c22facf3f18351faa3ebbbc617be26ed26787208e8c6028534155fe983e8a856addecde394e7eb182177e32179582f3eefa06f8db14915f65053e7e5a17575551774be4848c00c8d781984e6e421df5d2e2cf6a59fd7049c2a2a299bf1fbbe1aec676ecc30e2e20656410d98eacabaa9de1c216f16363097e81b49bb0783a611ab32dd19eaf4dea1f97c4ba1204cef5f6dc1f1b20ec8ae246c3ebcce57d61d0dcd13ac4765ff8f0f36c0f2e7249b85b9178ccb454a4aaef2c9a5d05bee8e1464404036f4e17fa1c6dc31aa622f4e130ee6c447ee85d78852b424bbfe55330265d2f013915edf736da1a3871d3c62df5a1b0007306706286fa6c3897eea636fb2de3f4cb6a0f3c23294a4831d388b4ddd0fdff21461a8cd27b84da0a12d1e35405e2726071c7a0ac8523d19254a15296737a8a08630a767aabe2ea6eeac27271479e1fca1ca2b13ebfe8341c52411abd3056d00947f68b2434d94129a0f604b3fc76734d32e5ea65078af02330543d4e7f728988506095925a9c215f1b8ee0e734ec4\n\n# tcId = 209\n# modify first byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 5b2d1405cd372618413fccf1492dda7ddd2aba5e48f1f0396cd56e4f51a8728c67d3e127839b8fd44871165e2b0ef25f31e612fee9614f5ad6a1112f20e9283ca7906eb93cbe75290d015bc90957e570324689e466ff8822863178fccd491e5aaf34b0e16bf00986abd15e2117523643761f45eecbd7beed4d59fc8be32473872f2cbc91b17410a35d55badc3bfb746cea5f725863dcbc6aedd0228f56e94f5021ccfbd522c5d25f6b8ec86ba5c15f784b4d819e91ac622edc774cb4863844ae120c35e5fe78ec777bd815b07df996ceb679d74141684358aa50f96c47940157aed461e465d6aafd16b1e22c85e93336f93cbecfa9cd113e72af41012374a8bc143f95004705925b35f1724369000ccc3c07ec572dbcfe36a0d29cfe99b9fb5d6fc620864a717b8556c931e05d32ee93674c092025cf01f37e36ec21d34b9631b3ce3fa40893376abfdaa2f7aad26a60817106651660948b8ca568128348534c82778af0c91bc6204ce6b6bcba682146244903d0c6ec12130005c97d390977f71ed0a3acb9fe5c69b62db6ecc0baa94d608a4c95a62f98ca67f9d4583cc96c98cedff1f563ce9254d4e4cc88d127d74b7f9e6e59bd83a03ad3c720cc687e102cde5bdff8bfa0b4969bf037126b2eabeaf4d67bbd8f19449ac1af10442c5976f0d99e57070d6fafd0c64a25ec8fbc380cb71ef952f120530f3940227d0de6c8c1\n\n# tcId = 210\n# modify last byte of digest\nmsg = 313233343030\nresult = invalid\nsig = 0ecfdc9e8f66eb0091fd4ba2c702c3be35664feb4a8f2cb6612b3aa6585180c8dd1cb81956b0ff84dd7463a00d007bd26bd4132f29fc540b8f6fd2a29806fcebb167ce31cfe9d307558deb60db8e68f6c22fc153ad979686e0bc82bc199500a1a71ceae7b3cced4141c95dfd54fe0d8af15c0fa93e416525892d30ea6890ea451c0425db2ad2437f6dd77d0487fafb966f2d82f6752456f8604a66ea9367c7fd5e7dae8e4a8237da2cbadc97814fe05be3fb8da7a8263151451300e8f6ac051d1f2757920d59d5138181c41649b786f8957246a3459a299177f5e895d47d1156bdb2dde021b20a1e6153aff898fbdbb17824036cb0c0965ab508f1a323044fcaa8bb7955ca9188aa42ba3807c595ad27632b7b381a219cf162d0a80d56f58c7b5089a167dd0766e6cd77f5a1af2945a1930752b46a3c729233f6d849a6aea1dd13ed3a2e7a91ee0b8bd00bcf4c5888542fea02792367d42a9a675d3b3c973c8f1497811d6fe27a8bd82bbe5b8b4abfb39cac4c2265da619a01fb5847e5a4fd423674b2d3949d262095805555597e4930a2895bac40b8e18c711223ae7b2ce23dd556ac179c0124a6f1ac327807e8540b1497e1c72499757468b1ea8c39e8e9b9a5058db4340846c410ccb4dd6c477484ef3c96b183b6586fa79054b06ff22475dd6fa7aa08bb6bc3451dff8de4457523a4c0fd832007396ecff76b16ad19017b\n\n# tcId = 211\n# truncated digest\nmsg = 313233343030\nresult = invalid\nsig = 97b76bef18ef7d36234435eb59cb4e7c93d3820b825122b19c2e0824f255cca6486aff6ed6f2cba7603e81e17c5839678b6e498e41c0959ec95415ecc8795a091655790cdd335ac12fc7be271587433ae2b8cec08d2375c16a02afca54b4a68fdb63e3645678977ecb5f05696fa668ee06a2e390e48057999f018e98ef9fad938b124d86bd4a4739282f5273d198339faadf0d6488e4b6a968ac25d7a0ca88ea7cf8aff0de54509970fee9bf9914773bf247b622f7471d0df722ee5e7fdafd18c33ad92c6673d464c9e1f0de460c106d4a54be1c7538248f65004eb7ca94aabffc4f37cce9f4e628fde81a3d8300e0ee486b52555c94d4182e5e7cd1eb6328f872f9b1528d0e1337d20bc96cae3b5744ae88db90bd9f3a5cb3ba6d64e949e9b64d84c47ec5f5b7af02b08fd06a820b4df22b808203d0f9e327ab64a54282a30ad12abddd03b9beb83b8647897c52a889e7039632fc63b40c3cd5a8554f0dc96e3727fa24948d97cf0ea2644f888129cc6a450840cc526b9bc9446430393d571e4081a10e6fae856e15ea97b5852ccb253517bd8db2ceedf23e50e51c1b3500919e0e4c915a3ef3b75c862290bc0b6dfd88129195ef4fb4b16837a0064c60513246f1d4ac068754aca0f59aa847ab5c7086ef65d371075ed4caf0345bb22a69163089d683465d48d27cff4d5a200a1cc93e54bea0033b6082d52cdec5726c9bb9\n\n# tcId = 212\n# truncated digest\nmsg", + " = 313233343030\nresult = invalid\nsig = 50bd7b6ee4aea6da1a7e92a2439817dd3e521030d55ffb99889681a9e938f9ff0fc50c4a329ce439f862b8c12744fd565f0f18063bc27357faee33bcaf24887a72f15851de6c014664501954ad7e27cadfa2a1c852bbdf212928807be0185ef51d11175195e8621dabf5d29a58cfa28d96a1aac79a60bf83dbf6508fe891177f521388e13ffef6e870614a35c60253c5717020d6e91f860c3f447f038d65891cd783d06095b615bf1016b0d73183bf417521bb05d007f6fc23ee5c46e9e43307b0e2ef35bab3d7c86601c54cdd7cf9d495a4a514a0e804e084f53235ba8b7050fcea6c858eb67c17f45f1baa9f4afb7d7cc0c0df4fff8301ff4cc3a5754ac6a9c2956e78ec3ed3faba10994621b8474982809418124f8392a123abf92d8bdb717b94e8dbe87fa620c1c8f597401ee7f3087cd1765d9bc008db8bc017fa151860c9280984db887cc74c9429b503413b6c2d29765a3bb04c70dad254d598104becffc37173c892048c490df48addf5970193f748eb51c5536692e61c21f6f33f5a4728455ca916e3d707053b6d781535ac3c75bd33a1f6048d3632b092fced4f4214a6e060aaf0e6fcb5153f1f65cd3e62d65842e8587b378c0310d9fa6197f1981adcefb5b33936763945704df6b871d7026a3a2d011e43aec8651020b01902168c216ccfe367edb111184ac012abff7dc1a188fdfe5d8e865db27fd9ce4a4af5\n\n# tcId = 213\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = 8aa39e382cd8607c148606cb9693ec37591bf4f663b0ac40892656050e57dd9442cbfbf34d1b45d6e6b2ba24fb5910c6521627c45a580af8b26bc2c4dc411794a0115d11588fe7c24324661ad04023e8700f0958bd700e7319685e5e349497037a9dff809d5d8a2b89b62bb1e7530f35f5024ea927a4ad4c40ae09736fccdd967d0e59dba17af33d803061e4349e19066d92ecfc327cd660fd7dbf2863a1fb6685b5a7b9386c232fb7df96fee7244f37a5df24e4a039931a41cee3763919544bb1bb6d14e2adfb88607ab80fc0e434553a5e4c2186064a9c0d844571644977da31d6e5bb70d1ea319a6cd270983d22d73e226f65a5a5bc0c804272ebbc4553cf9666bd0985a97ddf676788d09889b2d323241c6fac07e13b7440554734d2c0aee1f3b882085f3a266b452ed2fb69d518304c5289b2c2a6484ab93f8a540e6d1f423aef15a8441485e5768cd0e9f47cbebdb85d7dcf045a5d2714f0d422fa2ff6a77325d5fddfe194eff9f03fb02a3914096a9078d0d954e981e7542c975fcf43503d2aa806bce49b2c6cdc971b290b3b2fe45b3e0b6c106cd6fe0e7003103fd2324665f800068f0a8ce635b6aa3de021ae52b2cf33cefd54b9e874a0665ef31fb8584ef80df6eeca5e1c323feeb36d804266cf2193c9a660efc6c791d9f571c22de39296deed36f10f59acb93b1558a15d5da024574a1a5c190ea80de8d9cc97\n\n# tcId = 214\n# wrong hash in padding\nmsg = 313233343030\nresult = invalid\nsig = bde28951ec3257efc054f48bb34c43fa230009131244f0a909bbbb387527e8251d9594d22e435db30fa55c01c43421dd51ab38dcbc23cee280180d74b6a9c1c30fdcbca02070ce3e0868419d9f28b04dcb1013734bfe9678f7c16f156f382596d9561fc32fa8b9de8b7b1bbc0047a4a2deac7add9a0736f0b0546956291d231d39b53d19e533d99924c8237df0ff91bd74a5131f4f361d7e541083dd4f3d711ce4ec9aa869a082e4d93ac9cec840cd00690629d7aa30454991a18d8d342fd582d8054eb66c6bc41df3e7c98b47b50ef7d1955215d5ca27f80d2b919a75c25f6c18bf427caaf3431d64e27969b6002cf125758316378fe05a26e3b2cd0da2f86016a5a9a8587577463592ae0c02f95c0b099f2bb0ac2143a13b9131ba86af8b32414d33c63d4cc281d5b1b442a68033dbdb445591ab88d33d184b4d87e84ea09fc047261f6cdef18462ea8392ef9f8593b71acbcea15f81fa68c9418ef37720c8077d7384f9544f85a519614a6e900f178f57535761cb388f60fd15eff8ab321f49bc152626c2749bc3033f46bdc20e853e2b5d98297c4f74d9b0b632d0bd1b6b64346cb6704afcb8afe94979caba4f56713c4c966ceee9bc0d7d1f248bb55dca1c58b55fd04422c8f2c390238c1fa4778d6f31b54a3ffe7654fadd8bcb14540333ca3aee93184ea1022b355a902373d7de9b60f3785465668bb0ab7a2542bd86\n\n# tcId = 215\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = c996f9bc755208b9231ff74c7eb386572fae494aa1ef14d906947d8e392a8c9729df0875788716010cc0b65c2e7fc445425a3e0f3f268a981886ea82fa6638eeb399b13e382c699c9c2120190315dfbcabd96c64cc65251cadc8eaa344fd48bfb139a7f3b84d0b9ba2e8ba730807e8f39035672f4fcc6e16959e77b33457881af75f658ad3493dc8cc10e8ebeee25f6ab0c435b6608fa1754ce3610a729a8f620ab5007fe95866feeab912deaca144b8dcfc682bafd0d766372d37ca4f78ce57bdb180079f577ba2a8b38754d7849179df6fb76c26fb6e744d2ae5bc1ec622eadc77dc58789e691160f369e02c1490316a3236dd8938bb17627e9a2e0a6450ba6617b65d068ca22c3e2fd32c94a1edf25d05231dfa1848a79959f327ca2eb2a5945f3c6520f6fbee14f4271e22b47c53879f1e968979f08232619aaa82e5477692edf1df76ce5c7588bfcecd32986360ee77ff918d34b7fa81df9d9630cfbbe9e789382679ab360c9623a414cb8472ea1bb85184099a66e53074d35d8c6bfd8a7e2ab60fde351d253a69f5f75c103a43457024f2500c0175f09af86694e278f6d7c967445195c1094d93b5bc1d3871a673ba4038e59ab4e4a3e034b1ce2385ede252e6ca5d8b40785fe3c0f9fc02071db80e97deff27dff9d9b96679ef5c25e8e68d1ad5c17b1e35ee054d7a3e7e9bc8fb97b68918979741f8d73bf75ba910f0\n\n# tcId = 216\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = b5fdeed7f0f69e4c0c2aeb07d36e868c827d2e7eccf409a77ee8bdb810d2dedf337dfbbf723bcf9411c5357650f8e92ca9189ed821dd2baddab466084d348b0580b19acb9dc7346739a314846aaa59d5c28e3120621b961b5d0b0c1d4de49739cd95eed627738cc1e4512881568e41ee94a77b9b0ae19c7c4f07bda6900c010a5e10ac9f8d110f2edf368669002d2585b1394aff0687e98ebb7e88a8fb1d950bd563e77c8c9852faaf941e17405c1d7f12a51e8ac338f5c0d6a605ed2445814c14ee949a781c65d318cf2e46064ed0eb8cfe68fbb0970115aace71722b6c5649017125685a79ea175c30d1d0ada039d453a56c59f4d01333948e769580db290c271c15e5800706db6b5ab775822b293be7c62c647f42feb2effc270d50accf866dc1b19616e7b2d7c5c91e298df86044df61f00ac48ebe2957258ad7d9f4d69266627a0aa7acce8350bcdd2d139a0e8a641d38b85070ee7a909ea71d3d10f9108324a5ba8288137b322367d973e5a6a8a8a12c2442eb93879bb4b3b3495960a4b704f7dab9690c44528d2bd442cf2d597c1ed9681f9352077bfe6177b3ecb157177cc572db7081113e45750d8850314a49e7fc38c31b4cd79709161b87d1f31280f496f07d39804d8b638819d250a5755b00440c91be15114e1244bdd8e5a783a61da98688af5781cff347fea61445580103bcd75422d43bcd77177c7ea0b554\n\n# tcId = 217\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 8682d5bac51bb32bf283b8cab1172d6e8054dbfc672de6f35f33a9f7b3f0662fe19ec01a74d5cbe6d90351843e2b129d0ce30884fdbdcfc962d2721fec5b3b7f6a9db4a95b13def111c737cfae72d13aef4d0ea9c29181891505a0d28c5c8853ce5c37476654703ea2e7c68ed52591c182bc051b5d837ef3be064901be454967be52f9c7d406b7409e93308b74a826d3d1e6aedd8aba3f5f971824784167df53d042781b7c2d3cac29428c7da1fbc451680cc211517f9175ff1b2c00f819916d6d25581542c8f05479aacfc245e5894763db8e79849d3e2dd8d7178a38cd4cb7b03436c150c467540dfcdd001d6c8994b2f8b332705b2b5ae0c841708c83dadc7d647ae15e547403d689a00a6bd4de8602633443e0b7edf060bb7b529e0afeb1b4171f70a943a14f69c59720b4b5ae59313325685c102d992645fd23af12f3b8f8de79399cc6c80f9a0c006c316ff7a6963a1f8ef58a67d107e5b49fd8d7079bd45f23ef67f6a83127da157f54fef9dc01415a6cf7a957f5ffa15457a1a8bf831273f48f927ba8bde79da623a8a2784e7d8950c5fcbeef5868311acbb793cdfa54c702209073ad8599c4c74b31ce3b662399789febb36d922d77cddf63c1de3a6aba21d6d8ed54a1b48f48955602d0f6a4f5eb5546131561809236f0c71b8374290106b893ab70f6fec1fbc3bb6ef5e6c0263a7c8cd90c289968671744e853d7\n\n# tcId = 218\n# wrong hash in signature\nmsg = 313233343030\nresult = invalid\nsig = 088bef646bbe07ef0c2d8b191ba0b36420a35ca1a85f222bd9622af778497ec8e489fe00f0b7b236e7a594ac83963d8f07079e97397b8b973402225215d2fab8ddfbc11ab3de487fbf9fb704a5e0cd1191acfdd61031e72ab931407029a9fdf519de6fd39e61f89c6f8773b588b1645ba193de9c44cf9e237c4aab05767ac6b13b125b39b9e303d175f38952d536cd1f0a4aa92872fe6bbf630414bee94a824f063dac6238f846ff829ea4dac1ac46037ab115aad3fe76c58c28bfd15a0f43b445e0d2ca02f7a886ca123fb19ee6b9685b4a704796e35c2e05c3bdd7106efde0a2fc3f478fb734b39e1f6fe6507d8804d8067dc57a02f6687a5efa85168131db331b1b426a0f86a6c2581cb3101b1baa35e24c2fc5d8127ad8c749cfcb62e94f0bd1c68341cc9c680aa2a067d242b1085cc6724d5411e1e71fd0747b2a17408371740b2c95f6956385936ab4322c977d95d03dc320629bd8ac9326169c073c2c1a87f4e36bda5546766c2d8a1f6599e20aac010d447458b84f5160e186861096f035f28c44cfa6e6a4565ee25b8f1a2868fdc079e1e93beeaa0c2da15adbea1af2f4de54b4015218420e309c330476bca71e303bb2910edec339ffe7f9048d16d98c0e3e6f4c582c50fdcc85c54e11b72542ca7b1fe4507095b0fba9cabfe5ff9596ade9efddafe266d7a542ea8549bba6c52910a76ccdf5ce296271380ef6b3\n\n# tcId = 219\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = b363ab557c443634934971ec7a90537c3243f1c40aa765b76f02883c4bff89d32bd27565e4a34ad1fcc36ad6d657df085c19f3ea0c428dbbbb0def2762312e4e3917d658d7a7e0fc7ed4b073df80ac671fd4106bce4ddd34939b2c23c205e9838123c95a0fc6d3ed72918c09d15b93aa856b3d1a736fab56ce548f947d99634834049e6f9594e705ba037efcb6dfa46f738f49ef631678f8366897b261edbecd29feb13ebdb27dbeb95d432218dadaea3c313547fc5f938c3ddcd6216d6250441e0d89d1a58a0d736ea9ea33b63bb", + "70ae6745a33f8923e6c7c4c665f324030ace94af922e1eaada9b641091799e04cb3b9a3a7f235ea915a955ca0be2679a00cc539580ff76fd66272e8d2fe4f9bf2f32fced7538edf0c703a0ac09c8ca909c5bb2585130326a44a172dae07e21cf10b2358f1cef04bc4a7aff332493fbe409e634a9b370423368eb2de662258d1f74ea79c7962e450377236c3f5a4031c0a8856b533608dc23fdfa65ead64a90c1e0e00c2900bcb4df00b0305a8ef7f244e4a1a8e6283225b26cd6a537de85d0b634937926b4ee5cd4b41ef67f3c6a91e60a7eb319c163c6d48cae6c32ad6015eebc85dfac2e34748b184d930d6dca11058eecb01c64f741d53e1955c1e4d8eaf8671f88b0b2b52c1b6b9571be73c8d8e42e38e5c665cc832ff9b321ccf63db49e6026db0837789e355a4aebecd473df6344b\n\n# tcId = 220\n# message not hashed\nmsg = 313233343030\nresult = invalid\nsig = 7af72677251061769f1084ad9ae01faaf771b1287ac350f1f11fa2ad41a416e464cbc415825852aad2717f92481b2027ffd72a8c5de6e0fbb682d386d19f74305ff18ea65c8b46f46d4a1ec0df6dac7b73896072efd7b9ccf83d54d367dc27379e058aafa16bc42b734b0257cef0b2443f5820743d855130cb62a0fb81955cd477354ad5093bf370e22c083c28c4dee5ec0001d83f05ebe069e1de81703c8837dc34638ebfbc9111c60716f83b9603f60a9041782b360cbcbfdeaeeda3459072ec76206305fcc8182c30c76a1dd2376be109d3e95c0a37db6fe76c4f777f3e674e8fafdef17685832db568728cc1cb16acebe584d19d86317706144f92bd9a3557dbcc020c0582916d4d26d5464f4bbbb14e2cbd828700249d9439ce634bc3e73f483027a37d26fd01aff3e5a7eaa7f109be43cf008f74f7517b96620c1a2e490bb950485af2f9f215c05ec3c3dd8f8b40646a5e47691cca0185f3923f1e836a8db77155164a335a8cb4bd9cfdbac013b895e7de340419c4ca884e6c39eecc2fc420babfdddb06669f511559ef64ad9a1f54198b82810a9e35c30bc3e9b7ea1594e372d1c29584cb6af71444b07d4099d027bfeb42dda594790dade61f47b00019f78f6fe1408088018c5ff3a6d3334173379dc918f3939330de53de5272e6db98f15eb5d78d33c2ddf485c27e34279732ff82ed2230be48de068046fc25d56b\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 6364ba6ae98bc935690023d9df5f4bcda28e09e344719597ee429ae66f4271dc0420c366c2ee339a1964d9794cf5f5c8f1b823639088a0a7a1bc553edb8db695ac74e8498de5cd34a1d95248b05de56da0878d23f646072ebc37075a4c625f721149104578213dea116b26bf726ed2550b451fb893fb90bfd6963f3298f6c10629d42584dff7c8dc7d5060b52f93492c8dffb71cd3b55756b93ac27569acb2602dbff71a95ce74cafe6ef5759dcb85949c142384b4f15b059070dbc0511734ed977ad70bbe1dc2a45dc724e8d709559c975a731b619e5ff9737db0c7fa1c77fde76a63334e8fda761531d35d292428b199a5f2e08cd4ea2a37d5b2bf47b68fc18f0ea0c6b5f903f10e597f4c768124668ed832f9d6a8fd17c8bbfd352685196cf7b7a8f6b6c55aa4b1fb0fc516bf9b618ba23661d49fb70a4e0827b9439f7786fc29132752e258261ed8f6e2a06a869d85e2e48489114b636558edefeb1ad6de98a21125e1f2401cb20e76496037d801d7cdaff0fb5cd3c817efc7a67a30fab316593e9a6d487115a82ff32ca64eb79483ca337dac18e8b17f6f998bcc5bfafef937fb1233fcc06a2f151982a27ac27b3005569251ea6d1995dafe4f82f592dcce808882621ba245619b0a7ff4fb1a445b598a3ccd7acc072864729c5572d8a4c8c207dd7eafc9385a44e6a6e07b5a744795c74a1a789e1a3520e43eaf06640e\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 7104011b21345d72d2c8b9264b8841db3db436ed2b1d4943596a756144626de1663a5ff4f294c3bdadff4998a127c29522c63c44d8ae7af49a0e6715551a2a7da73bf69866ffe55bd20a9b2620b813b21d404be5d2a8ec857a95d160adca91f15bb8d95f5d53aca7a2a32611b113ebfa69a3ea903fdaf5d33488394dd574ac6d1359dbc584b00218c2bf3415baec27c2286054770ac75de56936d6a0429d1b46fd9ac35dfba0ff2d23e935b970874c128970876ae0e60326d2f7f117a72e2f205bbb63d9f33bf624aedef361b5d60d295cba044a43cffc079451158812a794b516aac6f4f086059e1a1adb94504cad7b3e4f6296c14a162655e54fd68f95576782700afa51357144485cd4959cf2cbb9c2be718f39210261d90b963f8e6cc9bd94442a13f98d2bc7178ae460e749d72cb648dbb7d9966b9700efbb908f039487abc607bf88fd4e7df9a4f045f998810972e68811c1c3961556e0ec85808d3ea4093ff0e0b10bd1d066f5adb9deb852a726690bc6294fa10f83d9281edc380c0cfe5e70e6ea344ddfdc2d071c37247821ea5a290f72b2ce509406968853d6fa4b2ceb635a612486cc903c01bb76d34c19d4bc75b39150de67fbc125e7022b3774d01260c0d62e6bc6eaaa189ebb70a00b1bb9a8ba25564afe00498d541010dbcdef82a597ad313871357115f8af3de78f366c3f0d9439acdc79556c8a3be6604b\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 705f11c3f722c49b395a58285d37c52a902ec2bc72cdc0b9e62204ec960792e3948b177a869b22c7cb78c9d3cad1ff44f6dc36e6838579ec83d1af74e64fa2ac19c169860782b698845fbc670aa5af00d0fac6a9026b16c908d8c8315267f273d629551dd83327f1502036cc06767bf9a8b58ab59e88e6e3fe0ba333b3fa0125d1f6ad98b7ac9c4a3743d79382384c6e3635be841e0edf973d45d1b5431d6d71dca1a7e190e0420a423525da056872842ef724d6b33d638274c7955f4c7d873fd95e5f8d4592d70e8df33774eff3da79d70e75e1e7a72d421d2f4cc487f62bddc4679e2b55cfadf269dd04ec021bbe4ff23620c89be3083975d8879e178a375ca564aee4868a22ff1eecbe1d91d2604ed0e3bcafba52402f07799d08452edb13af44d3109c2c3f85751ea38316755adf3b2f185c6d1ae9042009fcd4de3f14db8f867ee8614c652496cbc39c309dd4fca06ee6958dba3b95ffb9381634efbcff3beb66e61cc2327e56d39cbfe158cda5039563cc263ace1c684521b2d19efa3007a3bf26e6e92f175e521165ea5eee4fbef3809d649a9959fbaa7a5a1f7ee14bef47385f45aae72a44b5282d8c993cc6a7c07cbaff3712e87b23fa0157fb40dc067f9340b1be8ca26225ec74bd5b1b224dd0662ecf70369f807b2169c6022a34e0ac09190bcb31faebd4a586ddee007e7f7a1ec41736707c1a25069068ead480\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 313233343030\nresult = invalid\nsig = 89bd9b3797499c01328b4c3fa56e8690d2ed46c15333ed54ddf78ce11ea1864cd68c1b6443bb299bd9f33f9ae05807c55065d09c31c79c8757772bc3febc2c6ea61521a5bbb8c7311407240461f28bffbf9bf1a7c8bf0f60df94885c92160363a8d0846f93af95790ae8f20074d1af828ee638bffdc7570ba85bfe9592d82dcfff270d233dd8478437a78546884841aa46407f97e811fefc3a097469abc3ec1185dbb4ffd7f49005ce9ba89c127de5dfc41931078696f6763f208de4db2d28fec3e0d006aa2ae1d4ab92b09d2757a4f32c966609125bd423636c4d4c547d8ef6da446fa48e108ff881dcb78a06b3868ac544df71622c5e2810f2c0b63e866c1bdbb740da83846c1c82e2126d3e5354d589837a369fd547d954925af390981c6fd54083c6e4161147884e948516b777e9c3a5656f17252c104230a54bfa58e33333f16c829d1ba73a8c3df2e6920036f1f834dc0f65846a411cb2997e8f2cbc3c2efb9e03258c52539dbc4b678742465290b271ca321c9d7198cd6269ffbfea5dcfbc7c604a377415ec29ab57b5abdc5fd3050e056d3909f935bee8c8706eb7dd362401acfb3597f20542e462257d6cd9bd76d8c87fb8e5fd1607e0fc96e8f97703e5a175ef7e7813db24d3d866b5c844cb020ee39e291993627f8a7edf1325d7f033f527c937bf3d22e28afc861b75bd94bd8b769ce96236090c0b8d5666eb76\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 313233343030\nresult = invalid\nsig = 6048d8149c4c3744c35b315117e983d47ac0719c8417b41e7d001af0b9dcf465db93631d7ecfd4994086409d39cfbb2b2cb08a30c69bd45ad74d63007e0853f763dd5006d1f1f9b457d5fde60fb86904b669e0f3d5379eef168dd74f0d33989c308a80fcb26b61002a81a1ddd619d5c9bbb4f9fbd7c4f99eb2d4df27e37d0d4984ec2853475cfb533b5cacce9c31d65f06d7fb06613530d942696ff427150e112be4fd06517d643e50c59ee0e5f8fc28ad2f8a220399bdaa66569492dbc1a817bf76dfd07d9d99fcd2c290a6a289e4f5030508ef4d07c77fa1f61084cd14bc3041b20d1672b3948a4de3005e3709e126c46eb1ec1f63dff00785cdb4c16cd02645a7acc1bab969625977d2037a7ad910185c4c8109dd72294d553ef8b73998c12a118c4feeb40c27fa8ff4fac98da8ecb7b5883f22e09487db871351b89d484d113d58dab0dfabe42c06fd46547588c53f5cf11088025d54f61f724623275b18d4c361ec021379f2fa50df7d2bea9efaf028d13aa5f6a024dcd93454b278790844bc42cd39af896c23a46c37f5dbbd7fb791bd8e5378d5df68ef053264710c224fe80a197c9a9338a4433f174be73c37e25af31158c5bffd71fc480514560db478553adedde31fbb65ed5d28201e3bf15750f328834e5a963d0fc2daa4949df041f54a6a196ebcb789f023084e48433820815ed7e5c5359d3a0fffdaae8b34f4\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 313233343030\nresult = invalid\nsig = 81fd5d22e36e8bce36644c47467559bf83c2aae87a22032922f6e0aef582e4c799b2a12ec8534183c982ff1cd97ec7410e7203c3ad426ed6a97efa158261c7d9486effed3640c469a6444a5b1e43ebf7c359b04aa37135bc51de5750519231f682c0ed6fc715d78c34bf52df4e3ccd28edd0cce4828042d3894381fb99429aa306b326bf59f030b752535914d324284ebb5073c14ce3cc1000e0d65ca90f068ddde05e2d7b22ba575b409aefbe37d110f92aeb4afb58d4d03d140f74fe04b6772b52c960bb1120d359b270f0bc926bbc21d0a42d7d8bc56c5756dbddd0b32af7fde1e8930e195874f590001fcf63968caa75bf9acf3067f22a64370ea68302bb36fcfe35b1c39f7e69bc69328ab6af1b5b67fe3f86c06dc823e34f8652a0f5e38f6965f930e3ec4abaea3e9ab3b81132a14b61357aae48bba795f585a4f87a81bcaa612ca564fffe043e663dd8469ccaa4a8f388fbf5dc498bccb23f72cbfda7a8", + "53c9c132c0ff27435a6baf40d77b7a52ad8e8ee7ed6f0d6524cdf060e3e843b538e586facd8a5f5f3dd97712ef426f229d803ac6d6ee6567ebd0ccc467b2301f567c92e1c4731a4134c18edc00c55779d7a34a6c155823320914157fe9d7226907a7750bb78f7b6b61b134c18133de7dd4357a7763f88fd3886d95d47449a6385243cde3bfb975738e96078cf8759d516b31268c0052045635ce50f8805ff0\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30000\n\n# tcId = 229\n# the signature is empty\nmsg = 313233343030\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 313233343030\nresult = invalid\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d2\n\n# tcId = 234\n# the signature has value n+1\nmsg = 313233343030\nresult = invalid\nsig = c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d4\n\n# tcId = ", + "235\n# the signature has value -1\nmsg = 313233343030\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 9e591980e9ec3d62e2edc3163ac8206fc09fe026a2f7e622dc5a6d02976d30ecf141295335008d91a223ee98a143541494ccf7cb06a1aa61de524fb5bb4b379a67ed2ced447c7b395c57a625f835dec6844c3b67a85aaae10e273d3902f5f30539711f98d73f86beccd798b98541a84a03ccb3379e8eff88c19c88aac7b7ea99758194ffa6660153d4f22c1252dd1b7b574e19b3492f28cc097d3ee3f30f6b88576bc6299512f9f8749e0b297295bc275ca59f8056decfca9f3980e6f8d6e07b73e1a8ae8b3847556cd67ab77b96618979ed37744be2d6bc9f2b671615f1d4c4c1b419f05036148182ad4c6375f9e3c7cb37bb75d16c4486e97c0ac5685995cd8e5d76452934b26105be9074b2f8daeb1add13c9b127dca2858e5c80e686791a6f98cd98e540bdf27d21b2dc9fc84e09561df968d73c190b3081293d666be7d991761f4722450ac249a6eb4bcdf190c214630c85243a6c5970184e257c00c5a2a18bcd20195fd041887f001e06d4a6049e210cce62356f99853f3da2522d3d63739fbb2ff315e68ab4a05ba1e29e5b93808df51aeaced52539d7b956db2f229999ac09a6d4c2ef8714ef9d4783f538559f29af9d850bf71b001f231270874fb8dc60f1d1554f60fa69cd657112530e22563fcde26c3c86137e476a2fc1d8ba4a15dda42d4d8a20fbbad7586f472b716d6ea2ee30f1c111bdbb3db8e5e2d933a8\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 23e198d582d048874ce4e6e69f5a81234ca08be1fc9cf0f7be05454997fad87da8f05c2faf7285a7a9ca7aa50f772b8175479b7bec85919162b8a7eb7cd4c1b8f0aaa64a8f371e23ec2c3428d7d83411f24bbd4b80762a75fa0e5de468a71dbe9bac382b4072241e3c7085ed2b9e72ec3779c1f70bbd0f246834f3e81ebffee13312d133e1ddaeb58b84d1ac1b441f311ee1e2c9693e300862cdf5b4a5d820dfde870da22746be0b12dfb943780c0ba928c657c54bea0d84db37fe50f0965ceab905f2ec3ff177421b11c30e846ad93212485e7f6e52d7d51af1c96f31fef174ab38cfb1b1fb5961cfadac518a6a4991ff2d561a7d8dadc5ad430c94b40c04a297012f81e6e84ca02879fd82b73744c4372ec02f141ae6c4ce75595559f3f4cc9e4b7a7a6d93636487e34938082b3fd5f09366a062484d1820586a720a9618ec18d980c969a28d74c81fe4fe7bb61986769a89716c965a7f056aff60e9175527778210eae23e53e244b973b2452f40ab375222621a89e1f5f2abfe5039708f2a659553582f760f0d264f854840d069e8c4db0246738af1697b05980c1f53a1ba4eef8e08583781c13a93d03eb19db75e71bdd0602b91908a885b41f0b8d9588d6e05796c8a6f8d220922ef9bcdb026af9bb328ac7d96d4078205ba1abf00eea45b9c260e3b55da036864bf5bc0cc2d3944fdbcc7e64539a45238bb2061210514\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 4a80cafbe2a6095f8e8663f6289878514d7ee7daba0c1b0a077cefb333cacdf7c116ab89b0a01cab3161c68cac92a08aae7d117c9a3416d67365621da3380a85ff34a7a3b512846048acd1ec5957af942721c241a180a5dc5d8f6f6fe54d4d9fcb3709cde37081e2233b4fffa201d2029241932da170a5bad0d927a803a7f6289fc9f7b1d41cc1a6c94cbf588d5492b363920d0c98404f5da9eb9457648e2a4e9a034b2e2328c7f8c0e794771641a981df765887b5ba19b769156b375535911e1a2da68bb6a37eaa0ef8dded4ce3eac5caff4e8dc357703f0409d00baeedf3fbcbd6895dd3938e1f03dd9f131f9c979e22e4fcbea0c58721bc72d1f4976e93fc1a7649a23745c0310181031ac34b2200dfb4e8fe9bd4cdb52a23c31416745521aa4861eaea7dec4ea2c18ae9f75fa9d36c9b61bdc4185e434f8cb091cd731607b749a3990585cbbea2b1c0e0fff4f589a547d320bc7923b8a6b594c5866095df9c914cca80cd6c0e9aa3d691e2607f9de64322031ccfed04d9c805226cb476d3246d6caa1b04c63372a77668d5edf06365827b80391a6abd66010e8e1b873bd83db4dcc99444e109efa2414c6e5319f30a718eb43a1256b2142afa2382316e37aebde32da5bfec93e89d2adc39f62aca25a2289933a7cd8234d72a9b3c6a001d27560f8c8a2d9a233bac0b519b34f4f79288ea2cb08a87242953ac24ea144143\n\n# tcId = 239\n# RSASSA-PSS signature\nmsg = 313233343030\nresult = invalid\nsig = 727f107d20a02c2a2e530a78fdcc8ee88816badea1204d4c6a3b116776217f86f6fce6612cacb44aa288991146675cc0907094b5f90a06f0e940c886c07b5157605102c670aa9927fd0f2222b737890d1cb905f0fe4b47e67d254e6fef0f2004be64c94ba630839199b3656abe2c6eb59e84584bb652a181a64895d52d46aaebcb46bdd5eca4655eee4c340649a49a5eed60a2d3c95762bf825f622bc48d05fd6813393d39021c0db5b2104186f5cd00b203b43ca839c192755b40a8d946d1db6b0d2d7df6ec6929e5655396d935ce9d45bd7364b1e8e2bbc316918d33caf6a08ff1c8404fb66cc679f03f9ed6c5997f72e52da5df41af58893129bccf2fe3f2ab7173fa227f24c30438e064c0c1e99d3ab9bcc929391893187b9683cc1026546b6d21c02fed28fe1c43bf1eb679faa560375d445af434fdc2794ea44fea6445a8e89ed6c14379f756070227b20cc2c0add3a6709be39680eee5efac9697f45d2122a51ee64f9ae310c6a9b85d0b300528b858581d59e59c7755a0764c59cb81d355396042cf8150c91376660bc737d33144fa7b6d7231fbd43c16a79d06de0fd18a53415acb352065cf169e82abf94a3337e6b525ddc3d25eb6516208e9f832168faf3c3a224612c9791369ba2ab85a701e8332b738bf2942cd20975d2edac2ece8568d101ab8602d58fbdf652580b5008b499aa06062bb99697c41ce8e34bb\n\n", +}; +static const size_t kLen158 = 275879; + +static const char *kData158[] = { + "# Imported from Wycheproof's rsa_signature_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: RSASSA-PKCS1-v1_5\n# Generator version: 0.8r12\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70203010001]\n[keysize = 2048]\n[n = 00bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7]\n[sha = SHA-256]\n\n# tcId = 1\nmsg = \nresult = valid\nsig = 9f420516e9d063e5e2961accd80e3eb0198b10f4d64e749b5bd39a80f7356d2ca0fdbbfe5f5b2bba92da7616a83912b449e69f8ce6e35a27e9e553279d6a9317a1d07d897dddd9a8291321359c6a8a31a4ad7dbb54432bebaffbe8940e40cc875d941ecaa10196e1aa68b83e0db67e34f3937dc1dd11cc0e5b40cdb0b90ecdcad793d7279dc5b5f6cb356b805e6357baa1b3659dbbdfc9a0f042131760fe1b78202f289699e04b5c55f3ec26fa25460ce3de5aeff0b1f5c435e022e1168f9fb86147e7a8b0f11cd988d59c81c3fe74116b350e0396b1cdb2b4e0326b5c90dc384529c7f794c4c2f40958f97ea203d76a75076d5360228e7ddf166842b9165e8e\n\n# tcId = 2\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = b4e0a273bbf6e942cb22ae5ccbfd9d843400ba451c5e086fce9b3b1f90bd892fadc54ac45b61f3b3b37aca67d835fda1b37d5bec427382be2348062716d4592c7eb5c9107cf391e1cec01c74d64dfa5cb7052f2f8e442a09d21c22ef5484cb045c25a05b3057b266335f619ea8dc43b72e9abf38c19b5d71c21b9bf2eb8b63f2fe0fa868f7dbc9deae9745adb1fc26027bf5e2770b2d250c7507faf2fa63fabc67eeada9f2ed8f724dbd99d43294e5ec11d1575101d32af1a308abb56f7f15f544204b533fbd96fd3fe9174db3bc2af67c35401cc4003bbce360a7898dc831011ff0582c0658663a8c2e7c0e7a0df7f3c8ef95175bc136c3b49eb7a65023b08f\n\n# tcId = 3\nmsg = 54657374\nresult = valid\nsig = 9f74957ef2ec67062c5064143d096610d04af16f23189bf010f560d49bd793d619f70125dbef4edb4d4c923f8447e48a744428d8b463745d84a718d3c5592cdf6f611a735c7e04fe3f89920cc61e0113df20b93c719df7cf62013a2db3b497c033704352519dd51975eb156ee733d7bb342093bf494e6d7c8e92537adaf8b9170c0a2f0d76af847f716ecc87e8cd3545151387cafe062d5a2db83c5463b84d13b1ede8656efb3ae9509b449f4676084042b7c9091fb75476c8a866bbdbe57e125d7c64f2f7f1d4f732666bc7ac09c8e767d145f22243dd1f10943aa61b75e85256c52c522426c1dafde98af977c8538f7441ccdbb4eabff1990304c087070b12\n\n# tcId = 4\nmsg = 313233343030\nresult = valid\nsig = 257d5214d02f48bf63a6a1f2604824bef64108af97a6032d9eab48b7964642e104f13c462289fa889109274360dfedaec2ace0f5f190d2e9ba0d2d522dc763dd60fcee52d513bf9ca7c0b29de279ca8b401bc2016c10d837cca56498dd644e4d350315819767e2908c1c33b71acecd0143e2913f9eec1978a900a3326bd8bb7574521c39efa2e987327c9343b9da06b304d1e4688ef80e6c285a6dfb64b57ffbfc786f69a2a1c0948ee6781dae288089a5dcb7fcb1e53a74b828b34867b8d7fb5a0151e43076772bd53a537937f8ad6e44adcf96a18181b460b63e530edc56a773fa3adb252cfc8bb664ca560a054f374c2a03d7532ac8986377b76ad0a4f1d6\n\n# tcId = 5\nmsg = 4d657373616765\nresult = valid\nsig = 339b527aeec23ed9319d5c5ee671e8e92fde09932648734b1ded4eeae420e113a7ff1119686aef90c0bea5248ee1d50f5081515fba7a68a7ac8e2ba9828ebd58237d211c8212267f2a82363ffe790e3ad5282bef3842ead902cd98194d440cd1a53cc34121862034670dffd82aff9bda7f867a3893c2ba2d60cd3d5a3ae1c446c718e99bda195e8b19af734786c62908e1e18b155dbf791283c1bf3e02ce009e08415444d56f5defe78200557d513c8d93414228c4b746a10262cc4dc573da6801f624c5d99c200bd5731142e49d69f9cc9d6d914be18d09bcff4411f62bf028223ea559a41c71a970f5e0010ae487db94461a662d56e124d7b275e8266e55f0\n\n# tcId = 6\nmsg = 61\nresult = valid\nsig = 6ea7297a28c575e4348878b928d6e938a2e3d77dc46a785611a64817fa0e9c8ec71728bc7e8f9eb3268aae0f3bfa23dcb73d503e0147432b4003400167ddf2f9fc8d09464e0b91a44de12c1efc8c38732e1ed87f91cebae036610c43a3b8bcd5bb4beac4f9fb5e39f193cfd4bc00d4c7a3a98d00c4efcd1bd64f260a2a957fc730df6dba68d622441901c51f5788d6c3636299ed3eaf0bc23000650ca97ed62d367a844f23649bdc23efd0349dc8d58cdbcf655aad1f9d3a21afa02930d68a2c2db68e364b0966b005c460b682717035fd43f0cb0e7008a3d841a90c0449de8d154082703313cd9abdcc836e6c1ae5b1887f75d2e4b6387e7971128790a62c00\n\n# tcId = 7\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 5a7186589cda0f9fb081dad864032ffd26a775fb33c7dae0ac080aebdd4ab53bc3ed37cc09f0a1b1edee78f0790ce0d1b656e4a788172db08900bb1474159937ad29a7899d6bbc87c743945c798307e61141ac21542af06bc2f435a47b505b2aad2619800a97396392f141772cfa97d762c42ee8afdef27617dc8056fe75b23ede6c8f4e9abe31c8344edd2c73e5304621283021ae7003cd760c3e34caec5b4b5cc6d291cff1ea80e5b9b68c5b7b045c04714d3dc73e150eb770d3d3ed788a4ed039117881ed5cd03eb3db6e4084679e09078110630aa6895029e7a6dd19d5b77952bbb06de26c2179fb06c64d184caee0079287c7b18f5ae7843e3cd01eae28\n\n# tcId = 8\n# Legacy:missing NULL\nmsg = 54657374\nresult = acceptable\nsig = 38e80b028443d96685ed76d4574b36c43cf9722e5fbcf08bc974385454316dee326a308c935a6e612ed26ef4e470e5f3f19a223e2866a2f1c805f74c804e2184f5620c1e84f894b890be7d46420178a2a5ad97b4bd3d31db24828281587207041a96792d8ee57889c666719c769f759c2175361434b18f188de387c8c13f6fb3a7e96f1abbb6124e94fbb4c6bc1d88caf54136b8f01c9eedfd614bc35375f33277d2e71a4dc5f65254179bbe75634e9dfe05aff9e1f1d792f4e6caf88e4299ed90d212d3d7ac9bfc71a8ac85ffbf2f49f77b41d36a64bccd3fe8948054cbad480451b0ca5f7fe35b0f6c772d64b70346f469808dc0057ba1c25c6ae7ac8450e9\nflags = MissingNull\n\n# tcId = 9\n# long form encoding of length of sequence\nmsg = 54657374\nresult = invalid\nsig = 33a82ebc17f79f56f79073afbe0ff3f984f868684c529ecfffb3bfffaf52a99bfc057b196c3faeae3cf722c386c224ac235f781d9025ff8c9dcf10c4cc7f93c1f1aa5e1db9b166a71ac7350134ae1a1e5537a67f846f8c6970c269c4b91bc59ec783b7710afbd763ae42b1125eb9d0fc28b4045071c72320448a474006eefb256bb403b30a67c253028a2a0af7e4e36e85aa70ea73541ee2694d2bbe1415b37d2210def5ec77ba23c6f5cbe31ee21e072b49313e6e18bc6d6f2ffbd6b28267a5cdda24a62edd2151bff87ea6858db5b863c13a8e2a6445d8d31fd6b3ce8fa5a31060f97545f1e04df6819648a1933b1bcfa2470bb14844963f53175f1b26b612\n\n# tcId = 10\n# long form encoding of length of sequence\nmsg = 54657374\nresult = invalid\nsig = 37c62aaa10e8cb4bcce5fe466ac8688431e8ad2105dc12c6b7a0dfe8657ef3dbd027d04847c7d708c2099d7d38ca2b21aa5146ec0ffc7fd1a44c91c24689fa37475013e5b30c92c3565e3d53afa73fcf269dcf3b2bfc48a2ff026130bc008a724cd29ffc546d1aea5aeefc8cd13779b3b821d78bc7b7664fc7a89ce0273a8eed1e4a683c739005640c2edb756ea95f48d9c91d1ae9f57f24f6ce3193cedbcc52d05eb0dc8a9634a0ca8e12a446e9ac3378cfabc37b498aa4a1a9d1d3a6fb308411566f9c68063c0bc8e78621fed3a22073260aa87c76c5768c3db7f674f84d8826381fc3491f46d417a73ab88587d905d1c090e37913c99cfe29dae491841d31\n\n# tcId = 11\n# length of sequence contains leading 0\nmsg = 54657374\nresult = invalid\nsig = ac3c440334308e0eef1b3c3afb42dd050c77f1bfe9f3c3c83d466a46bf708502f1866f423d52866147554a5c9f86f10c079d2bd47192dce0968e8aefd5f43a2892ad21b0bdb92be45bc380c11565ac7c01be00cb1e294048a1efb4cbb19be44fa4b542e0bbf9a47549d09e456f58ff377adafbd68ef8d86dc2d7d56c5d3be08ec6cf12c0d04bb7c64c13f08f75377ba896bece7f409d50809521b7f6496c992c90ce15a70a8f8096f8f2cbd3e575acb618c87f5632", + "4885cea1a6ded33d2f09d684f8d5a98c78f94853d74b9e6ab503918fea323e5534d3e45d51b3097e082c5da614d03a5ac422e5dcc3b764bbc02aa633a517bbe391d2662d71ab851e4eb3f5\n\n# tcId = 12\n# length of sequence contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 65fa4957fe03c0eb8a6680ede12f009178d3ce357927c8586ae056f209e0ab0c110871fdf0b95a2ff684748beb4e5a6a73ca3c657b23bfa06d362a300f260f4d60d459a066c9f5311d634bf96ac7ee4c80ffec2fca27eca7dbd37025bae76122a1fed1914da70f2bfb6bf2e1bf3a624acf2a6377606fbf06044a21a39ccd55b2cc1f0ff184d9df95bd73942a190f30028e770139d38ef3156f64fc3eec68ed5170c41f09f110f5a0fd195cd42c4dd8e394f32d195c159c7c2b69943ea966039b20c7ca17cec610be60aaf7ecdf3511590a662b74a181fb89135604d84cf9c4d6cb6cc0b4c24f4b5e7e9e9cd969855cdb92e3b399f32cb31319ac81701d056e84\n\n# tcId = 13\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 36f62f546a36d5215548e6a770a14fc6edd4a9353ff8ed6231369cbb6598d25d86018b8cea9f1a87c150fda18c7e89b2c907f0ce485c8c321be467a97febc05dce335db88cabdb99ebc4c187a04fdc8e879487f03c2aeccb6ddaf006f0613d32b197c79b2a8cfae015909e02746fecb9ae9da3f07ee91ba70c0356984dd15d078cd0b93dd9e3c1cc03d6f255c1383e6e949e529ca4408f0f453e7e94c17e9b47f841f73dd62e5be047c44e1d9d7eee0d9f2a56bab13d4397494812793a49e8dc0d237242bf134aaead8f303226e532afd0c2e9748be08d7b7fd74f6f1806cfc4092af39d6eada4e0b6d7aa6f06592f6cd7dd26c1fcc84fdff1bf3086e8e2c81b\n\n# tcId = 14\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 6e18d86059eb2f05c0c1277abcd8d2380ea39ea0c4587ae140d2f709363eaa2b0b7f801a75fbe15aa329129c4abe43ec0fd84f552a3aff7e4de40a5943ef13cc3b2d02a1ad90309e8091d5c2c6fe3b6dc2472c94116cd9adf367e575720906a9fe41068a86c15214e3dae39ac41b84f5fb824dbf5c911c8c640254cd19910e15a6488c2a59179f271dbde468d540cb33dd5add9a864780e27a3e55c87402d9e2c0e12d70c9a41681bda6f9f337e7a26dd2ec06580e6fd9cd4db40a62002feaf5a4c93dfe05dc392b63809d4caebdcdac74a7a240260a6eb8db8dcbf25527d4297e4c6145decb0a888817b4f949fb66ee63e5cb2c2477a9373d1e30b4d71cd7c1\n\n# tcId = 15\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 61a6e5ea6b3c5241d75dbf0cb397da7cd9d5b2c23ffefa183ddd1d34b6cf116b127045f4681877fd58907c1209528a6b45266cfd5bf4e95361b9036c77fd6cc7891cb2417d081ed897ab97588dfcf975992ac9c0239aa9fc19dcf6d6d0f3e4bf72da5ab09cdd4b205b41a27e6b36dff608a638925d13e3ad7143b1ea9a2758c787a2f33790ad423749c1b79b3239d1f96fc4690b19a0b8edbeff446b148fbf39a890ed8e4a18ea09d5e50c25855e1a4a4c28c5437c906d1a9c371569936c858c29bd16e98af749edf2f048933d706068928e81ac7e219fc923f6dee8a411f40ede593468ada31e5c647d4a576ddb68a335bd50cdf7446dc722ee711b5c71ae93\n\n# tcId = 16\n# wrong length of sequence\nmsg = 54657374\nresult = invalid\nsig = 6494a47f97d18199ce0948b2ddf81e408e2d4acd58705059454b728b1be79842ca8b9e197a29347bfc02a6830aa7189ccd84469e696daed24fd3e45a403af6d38a2bf3e5e8005b9535a00a5b1520a9665676aa51a1b274a3c0270a20b86a5168e08000fc4cc60673604564f8620e9a2a2374ae148ec6fdbf7e880fb8be7bd85131a3b2cc08e85ff3270a4b433a6f58583a16e5b18eb2a093e6249e0e5e27c13e1cfc3fb8e078ede70034f52f4540f5fc69dc9124671200c5dc6961aee740d39bb5b6ea9f9325f2dc9eb85be46b998b29ed3dd9c7169d58e33efc212c9cc0b09e356e65463b9becc52e7654cb22a374832ad6d4e219e0fc5eddec8debf779031f\n\n# tcId = 17\n# uint32 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 55d1cee3129381d3c8526661a5f2c9b59bef9972a8d3ecbddd3cd859db06be0971a181d9deb7a7333b3f40eab2e93a67342da7880961fa3b931b3ee94cfa5eb7cc76ca8f6f013bda5b1dff7a7d8ec7afa76fc6acb7809b411e8d77e97fd11f4d13af1033a04b949ce35efdc52e125394759df4f7658fb4c807823f80c01b74c5424744a39193c901a8b7238f77c330f0c37877cdfb493228a600dbb5694ccaf9521b0e2921cf84fb0a778d6616ea76f79d89ddb344834bb34a033f2399289c35ba4b5b70b1aa6d504db3f15cd1be6215678f01f3df03a3a38cd2f6e9d18755c484b4b4ee514c976a7a3edb9d93f475c4fcfa6fec43e6f815095d4dda75a5ec81\n\n# tcId = 18\n# uint32 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 759135e8b8f94d853d92e75bed21033eaa80c88e1cfa202aeaeee96fc9dd8f5430da9baa436062c843e2a6d06801e4397c93a7643b52e4e33c298638f546be9f8b2961c0da08a172ab2a9185eec9b9b859a8b46cb240317e66469882269a53b34c9db60ba080e1831942db3ad65d3779c7205aaa366c00b6372496d71fd5cebc14b885303fb7c9e968f7d4f9f0511bac5f273608c8803db4ce582eddb0c672d579b4d1d67cb5aaa4fcaa14d744acb8124f3715bb82417ca020cb1b2a597f149364f859d5f1dc17dde4181628b96438df017e9b96b87f45d40383badf6b6a89620adf601c9c4fee15b1a868f8bf7ed6f59d1f9a960fcc1d961c8d010002e238f3\n\n# tcId = 19\n# uint64 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = 8fcf0a72c6fd0f9b505effcd2c074051f1d25840f8803a68f1c149dc43af6b94a114efa7ce2b399a91aba823470b9f32a70fb6631dfef593dd312801062c7f64d7c7b8724bcd36b05df16838f9e2ef209c2dfa180717d9d1bb59c10d30bdf6a0c0041ff395d4eee8a1c60af17b8152906a58786ab39840909508f7a8f3a05096e92eb57b31c07e79500091f119698bf31bd14399e122e16c3f0083d0a9a6f6413a8427dd27dd5473a9060450349f51ac265030778dbb04d4a35aa98dd72ea38a548be905717b46a1e31cc0b2c9247b7a64d26c027b7d09fdc5f2c6f3f625ecc3a5e07e37d2623b099aa776c48c66d62764def44896651c6b0ab10f1db7105f8c\n\n# tcId = 20\n# uint64 overflow in length of sequence\nmsg = 54657374\nresult = invalid\nsig = a34534b9e1b82be8c7a70d643c85664cb3919ced9c6b6cbf470f4aa8c62194d3e287077d3dc03e9e49d9069b69a4fc2caa5c9fc0ff1f08cb9b8370d044baa4be1b5918174997d74579c791a4c9d53f0348d33b6dd9151ec11823fa765a04cf03791f9d8f89048bd702f03247e3d9ea4e9882d9c768166e60b2db47a1bd76dd8cde45933dd1e4c3fd2bd46bbb8b2fbd6a2630f9db7e09dc342a3e279927a68f3da34192d0a283e2df7530b06a42ad1680b4a33c8b4bed2a8e799ff39ce4c5853a2f9d016610e58ce819771cd0ca5cc286134fafdcf36eb6c0f198e312e0e2cf722c47487a43cf4630c0703e65f5cc23972d5c16012b0e338aa6bbaa9a6110bb7b\n\n# tcId = 21\n# length of sequence = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 87bff62986cb2cd250de8d56fb4674c65cafd441da9dd4e42b1e7e14231519b63fa59608cd70d3ad761fdba810993ab3da3ba5d182dabefdce2c383e153df2b21c4cd4b58ea94e353d8c02bcfef4d565cda92975610207c9c30754cbe22bfe0f7cebaad0b6fe1d470d9119090adde8587d15cf27965f525d92ccb2c8778261f9d126ffdd8b90bd00acbe648979567a3ecb1fb5ceae06bbfb1df595e2155889ce62b3b47bce372a7527fd59ab5dca37378d0a90f4487690385acadea3766fa407d277ce4e76416daaeeba1591aa31dc601efd0d9e29b50ccc68d1511581b00f75de4c05d145b7ce0f74ccc509748fb1f8c636e1a56c9c412142d5c9a95efd0b8d\n\n# tcId = 22\n# length of sequence = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 2fadb8a429803ec2956ae6012289f15f7ed8d535c07412994204ade72d2e7a5548024390e1356d432b7e68c1a8738382f5aef3cc7739f926b44f9b9905222323a97fe7b303c130eb4147a5a4c69a031bd0c459779f7c3bc00bd5ad616421d14aa90ff3f5f4f700efd19826d89c80c6c4ab4ec81ec05498bb543be74acb3f61e6e1bef48e61646ab962da08502fb092961c5fb324026a52abfd1c47b9ea76187f5134916c5dbfc18668933c2a562a02c102b6efb9ca2df40869e920e84f8e73668a73c1cea83bc8600f7dbadeb5babfa74b99a3d02794b924b01dbf087da3d8d579514647633d8d6922a59a3f5625687a4b1c3b5cc67858e9b78ebbc7adc20aa7\n\n# tcId = 23\n# length of sequence = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 85ec33234ac05061985a24bd9e5e13de3fc8e8c246f75d85abf8021cd993f97c38ec6b73d713c6417effc7a751530feff849a5591ca0c4e6dc5bf6bf97c34bace7faa2e448bbc81e3d8551d4f82f7ed095ecdb19e91498e357909f090fd8c215f830b2741a4a4af518341c312bd6f7fef9c1b563cd4284f785430c538234f6bd3fceb2b49ab872cb481447b2d45a37d45dafad4d6de26246634b99b926e37832a8302d24b35e315f0b971cf52c60ac486460d7678152beff5369441c84ed54f16177f5ae560eacac13d7f94f14764ecd42adeaa0599a1a47e7f500e6b14e0a3b198aaa18fdc6d9141932bb28b20e71f69c173c2b841fa042a3fa0a388e164fd3\n\n# tcId = 24\n# length of sequence = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 4d28f0c7915b1eb63badbd931675ecf29f8d69b4b2e1b1fad776fa5adbccdc17bde98029059d46b197de49e061ec57cce2cb77a63deec3c75c2cc14fc9bb4a2ac29d5f4a05e6b4ff97ecbcc26a0dce39760423740141e675b52878a83aa044f68e84d9abd0ea6bfc5e6fc3acd971af258b7b9a01079010e68e70bd7bd31a9f9bdbb70598758ba274fb8feeb8ff46a4b2331a4da03330cf55910e6ce940c1a95b6bee9adec351354774139e3b213627a6d7e8381656362b4c6f83e97f93630939d22763f0850f1b4d38a8e3ed213d2febeeb125ec03854a4b276fb59087904ffabe83cfa66c1af413af6ecde5efcbc5241d5b958425b66ccd31500ceb9b80d793\n\n# tcId = 25\n# length of sequence = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 02d431509bae6e097fffb5e719b16a296b81fcfc9fc6a64b85b337c88049fed54971ef61e635388c2653554685e652059c769c5947af49858439d9c388a40703a016f73cf231726853f498f94a0a9a98e14e0cf8f0c8284b4d992f00c", + "bb8dde41b07679c7bb7a2b4b7b307f2edda65fe3e002c7235eb85dd2ba41483b26131c997793ed64fe92a9fa9198eead1e8506385db0c3c4dfb93b87e2cfc09d9d3b00937cfc0a35bc211cc8efa4de83745c5eb0bb28ae52a22ae4ec8712be72bcf420476fdada50b618f0e9576e3e7ad8df5a0ebab78b1bfcdcef594cb7ff56a895b5ab5e0a30f82453880d394bad6ddb92231e44aa275f945ba6220d9f226da4d0aaf\n\n# tcId = 26\n# length of sequence = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 665e80a08c78f4c8a2768d1ba374bdd5e5101e61a594300a18a071d7c98c68cdb73acf32831ea077734e2486f1b13f76cd779a80fedbd76716fd022006a6faee19cb9789359e5b7013a59cd671a2a91c8328f4a1697e14a085c897eb45692d0bec074b400ded2820c6a5dbee2feac84cb6a37baece0ce763dfa7ca3b3fd4a82863a0eb35fcff709ca401c0bbb73f27f251b627cc442dd43eea634942bcd8bd72f1e8f192ae8dec1b7275c7739db254ced8b57332407f8a85285a190c94ea7f1c9318b7fcf67369ed23243c2454dd2ffa153ef12074a842878b38695336e8acfebf2d56d3560e43cdb039c27b207ae35f7a527b05baffc73fe76e57813b484f00\n\n# tcId = 27\n# length of sequence = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 58bb9a11f29ec8bc8ec7bba4c056e09087fcc881d8fe8e5dc58fa74d979676a20e00468e16238d8e2a53e40b4952ae47cc857807558b12224b3ab06ae355fbbd35180e555d7d468c23c6466ae74c8003d2b1591fbd529cc479e7469f5645787b8d7baaedb089efacf7f4395cc1382a3068770530ae97729089100960f22a13d73883a3a5ce6867c77a9e833d60f8f3c79fc2f36e63cbde5a02cdb7e226f387588456b9161814abb84c638aafb44f293e19f1bd5093e36d68386e365a5ab076b64275880823bb77502924d26bf443e94e45921866c68edaf5e66b24df38155b6faa25e531eb1af900780413cf5d5d903146a9cfe9350a3a1509beb679d7b75cd6\n\n# tcId = 28\n# length of sequence = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = ab35fb3939affc42b2ac00248105dbd3da37b59db5d489d1ab1962418e6bec3b6fb4dbc03fb47c2a64cd09fee70acd723a50402b47cc2a3411c716a1f380138511d693751e37a0bf23751488293a68382a909202b7d18dc3721521f9c8fa3554dac15b20ce5ff9638edeba6ae89afaa100cfc92f51326b82e8fea27ca216b8b953afe00d0a02c0df5ec76ac494c1ed3398144a2654570d8daebfb27dc698bb5fc3a69e7b3759c1f1c7d5e807f509185a17b642f8b24934b5efef55287dff737fe633f19e0d1af46a0b4675b300583f96a3670b1e50f1c27441b5e601b8c4cee015854d680ab544900e65f4e205e2666ac0087586012d8ae52711a9cda02ee520\n\n# tcId = 29\n# incorrect length of sequence\nmsg = 54657374\nresult = invalid\nsig = 3f9ed26d39ea6b13377ba941923d1c55544c4ef8c9187dc6430eb1e7c8b86292e528fbc74b7876016ff3cf8014da3d85f37e975810c0a7a8996c91533567e40b0c8464de887b18c9adf84571f7703147cee96c81e5eaa61cb3c40840d21cc0a280991173d5fb1cce01514003bec10e28420ba01819ff003d9ca8658f41a6e02c3295a53613adac27ddbe959d90faa58e33c3326c4b5b6a5a015955541531fc62ea216a4dc54878b65e6a12e0fd548046e103d8dd4516bcebf008ae4d5b971e9e2eecc8379356ebf76b69943b6f0d87ccdc19036007f7c79f363ace8e85bb97c40f7b59bbeacba0325decf642cc8cb8e51efb55a7296bb23bb12a3a1b334f5ca8\n\n# tcId = 30\n# incorrect length of sequence\nmsg = 54657374\nresult = invalid\nsig = 748e7f86340f83dfe05a19e73449b7814398c6951a649029509c3072b6ce053e6176453d9046677e4996ea9a490fd602d8a735042b29d2a17f997817c6d9600bea2d5f7d7129a361bac6b7f76df520f4971790d250fbf89df5c22bb9e7a510bb6fcbd18251fcc5b77d61128f27adb3784c9c363eedd2c0acf9fbff65c9b4c67d631c98ec6ad6ce56389420a9f7e78973e3b55c90b3c3a6b37ffaa74ced4889cf306eb75e87d4b34519a349d1b7842f81eb588c3137e80895fbb98d67fda3621c7510815a5d5ae512e6566088dc333107a3a6f4309d6dda5417bfa795c72d4e70253775afeda3940d4bedb9a094502e1bd90084cae6f66c5f0369d3ca6a00d4f0\n\n# tcId = 31\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 672bf0ea5541b809287c9e2b6a584da21271f24d58eb68cf2dca42f604bf3d62fa9d5a52ea20e234002ceda5bd919ee8ff344c8f84e2cf4d8efc511560e03f930b6533cce2ebaf14203401317fa8b0fd17807389b3c5449ba24a8a1f16d143ad06c1dc62c5c40facabe64faf0a9816d51a831b648ae9c99b465535b342085ebb1aa44ad23c08bf4dd9e0838209d4805f48cb16d9bca302d161ec3f6e66ac734f001e232c3133558c4b89c00eba40bd53c37c5b03ff6fb3f323d0b79510592141946a7a7b16abfa78ab81d886d7c4d4090bdcb782efbf0c4a76b47abb18e1fc9259cee098929a1843a04ba52704bc9be25a2b96779a2b647d3ba7c11e2a8dfe48\n\n# tcId = 32\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 94818574cddac115d352d1740c4e5581ce36f1eac658a7cc9c0fa26a1d6f5f43279c9f2af313b3e0df805ac1e24976d58aee16e2a4616cbe421e46f5263ce46e301d8c295cb8a807a9c65610b176c61ae03229fc6601cfcffcf90d53edcfe869a1bc692dcdf88ce84f23b34733f9c8046d1cb7df77f1eb29cddcd4b420dcc8761169f3c7dab4f04e2eccbc046b0b26007406dec7505a38273e3bab522a81a054241afea6b6576cb1fdab2569cfa605c0cfcea0f4665f489273b92d2fcaae21be8f2d37dc40a38d847c56c3df5a2d5cab476753c91bb4e2dfbf2bd9ded2010e202976055c78de4fb2ec3f2a6a44d6816c7cbb829c83646156941418b4f060e196\n\n# tcId = 33\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 5c54c39c0a079e7a842c8b7f5c6bc63f4b90873e1379132fc1a52fb78fe6eb46aece7f5ebeeaf2df8862622442f0a470d2a8ae252c5c5d71702033c6b5e6e983cf44ac0e818d9453b86b91b5d99a1af0fa5ed8aff718d49864c093e4cd5be4db1fd44b6ed38e58df96e70cab32fae1889e091be25eb9f15c07ad2c304e0ccb881cdbb1e45ba993b95e169358a169c70e7d0915ba34955bf20fe1df2c7aae78fb78c893d184c85a56524643dfdfc41e62539da005751409a18fb4e59d2877c6cc45a4b832fbfa8ad2880775d9fe92b6516f8458bb52cd5820710bc16ca32cd7bb3998af0299778a2dab50d62d73415294a857d92bc5bad97248e70cdacd50dd5d\n\n# tcId = 34\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 9b91890eb53272fe7542c2067a4e9295b8c7b8ddf1c9ece6a75fcde79c9af2cbcbcef38d342032b85ccff9d6c82d3cfd68a7b27a38eaa45c78a17741c230391b3df0bd79dcc3447c8717b7207fa1fd04e917b5282e3a7dad48e8f2f6d1360f6c720f9eaf1d1d59f061d71daac1548538c0a06fa65b2ac87abc9e6fed3a6e15f48422bd9c4c681fa98a27c873d7efc5c100e708d58141b60e5a691747df4036162456bb11f92f2a391170233ca1c03e1786a32fe9ab8a94246dc643a884ad59edc40e2eb873713e84816e4a7f7857126da3f063cb9a3dda0547207c426f7cc985b5a3b6374cfff51d0d542ce9f82ffc07ad24c106363ffaed12c97526394a84ff\n\n# tcId = 35\n# indefinite length without termination\nmsg = 54657374\nresult = invalid\nsig = 0f07dc8786a46a7ae2fe2bd534715044f46ad17b836b00370996258aa90bddf563b5f3e7eb1500ed0604f9380491a5a6c6c004b560b0f280a2de30d191928bf5aa0378fd6beda830beb1db8b6b1c8846079b6013cf586e384be0e1163c62b526fbf8e26992afba6ef5e5f15755ec7b5287a149b19e577e79bff6526d72616e28d921661752e8cd0e4b950d7ee9f2414e45b3069a80a2e089e46d0b3da5cc0352c07305f8dfef2e1e928e85bb76c5a0f1516383143184f66f31c69adc0b8219f11809501927744fa37d1c8cc1e2a6712d54ed66dd177714b7cbd005e6a6f83db92041b595dd934b0b19fce5db369e504fb45c9df1e645e81bef62cd4da3497e9d\n\n# tcId = 36\n# removing sequence\nmsg = 54657374\nresult = invalid\nsig = 70f9515388762b320cf84e90eb571b27eee58a43ebd4773573bffbce8b162bf17e6c0317636b211b2bc56aafa99b968ec950466ae5cd7b10d94c993dabace14b94bed501dacc0b40feb8a89586eb1a792e92115ba5430ce1183ffc6f538ca657fed3ea684a1b9d998c0d9ff004e150a0a32d20455176e8db3d96b5063a60106a7bf6c9d0baa8879ddb77d9a3037400348ed1ee4b88f8256e8e632b15b0dc2611da3a9faab929a0bd4881418d7fd8fc7760c523e1ca4cd3f25c8243b8bcdcd51e96a3840de589744bb8d655851b9cdbd8b7f2d47a57144d9c2a7ea07d49c0d141cf918a4eb1507f8a7b11cbaa28c1a35745209a5fad2bd1e66f7929fe0223d505\n\n# tcId = 37\n# removing sequence\nmsg = 54657374\nresult = invalid\nsig = 8804d661bb17ffa73e371d134984ee95e426d7c12af978d9ad00ce746db4a3bad36546709f029d2c9ed13e6d27123cb7a1954f1f65f3fa46eeb56f449ba6b5e0736e5dd2586d642711d98aa19595d9da1c4ec20953009e2711738263170b487072566558de1301e0d0253f8fc14d12c8cfb4644b50aeb3d3a9fe1a26fd3bccd72986cbaff34fc4fa38ce52e65821f169d54b78037b8ddcba141ffc72797023c802564989a20b07b9a2ba6a256647e937b1c16df2081cb61bc6e6a2ec6ca9939db91ec2ae62c4b2d0d7f61a0bf0c693165175c91b100c195f3611c3ecb797c531439655ace9aae18e53a69e66698fb593f48084117ba288a134fd0389ee0f7544\n\n# tcId = 38\n# lonely sequence tag\nmsg = 54657374\nresult = invalid\nsig = 47004cf187bd2a34c6ed89f6f8eb9f67a401a40d66a95c8cddd98fa0faa829bbfc9e62a854788e4d23015a68f098a77cc5daac7e23c6ba56167518753187a8ead68edc686c393940f77255fc8092c4c65a01aa6901c0af96830c05747791e511c8c01da4358feb38bf5507543184fe887c5821c4af048c5082bed56c7934985d86de2402b37e16a6f3e23d5a1e838992bef2a46d4fa87971f0cb01a470e185654a6b174d9bba81117e8df24b19a7be0d1f8e3906d3029b5ad4f0d8c152375dfc4fa490f9fa3a5b52fb929a7d41a84d61bbf60d80162b16334b4958ec879bbc0098962d5d3220169c8ccb338d31c664c23144cc85bc371b2d9da61a69f0b4b658\n\n# tcId = 39\n# lonely sequence tag\nmsg = 54657374\nresult = invalid\nsig = 24bc364503e9aa28177f9fe7ebda884cbe94", + "94a6b589b0db875541174cb1ceb60f514b74838a0df3bfa8e59b06e4ff83e4a4e336b41761da705b5ff9c0fb36e522cd50ead114067f58b100d6868581b69ead695a5c4b15198c5ae35d67e5181335590ec176af6eea69dce2a69e87d9f4a03f351bdad1c0c80dd1d27b75cc7bfb6acc7c25bdd87d0233ae4ab186f1b11ede86139954d9e886b910c3030d372f8900645b8e17b08e61cd64e520b882203b57723f00e96a6698fd65e7d99664351cb797ed2ed67901475169d47cd64fedfcfb6b67df5fa5d7c5ba53d65dd86d26d899df5aa6811c53a3a28fecb72df39e0eef50053d674d521acedbf6cd17ac2108\n\n# tcId = 40\n# appending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = b6a1d94b0ebd824f6b5a95f6697af65995eb388f3ae12c87399accdc639cf5b7e71bcf436feaaf8bac9f3234d0f429ab1b0c081f71340ecd727d9b94c66fad1fa070c4b80350eeb55878ba427e4acc5762597039fe1ef92ce29aa9919607045ed76326744b0e361cefa24a24725af612b40febc4f8293d4ca9faae0d19f1f2dbb5c4f0d27f92eba41457b39f9cb2c75695834992c326d5e39f56adfbdafad08589a5d4aed79f0abd8af3e056558afca803e6d75da2379a0cc52168f88e88a2c14abff048ee8174c0e2f31854d6687b7097d0f3352fea3a02dcfcccbece2819d4b5e1c97f93857151aaef70cde099a7226fa39f89a8c92e08de354fa80744dbae\n\n# tcId = 41\n# appending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 32fdb9a7898c2281cf10104e74adf455a4553ba47e96bcaca5671c9ed13180140cc8556d7a429319079622e352f5f364193ce54528a3d3906628fa8945b9050f1365e99a58dfbe50572dea466cd9dc96d2c773cf35c5f1e51a6d2da23a5631bf4aeff50019e1542cac38e71ad2a1580c24865c8f65217e330415df95f83f1a29a41e4a20f63ee1f06a3ab10ed2f10994291f8d7c80032adca004094dad4b2d33203c09b134dfd5ce9ae577f8b7edc7637046d5c59036362ffc283a7c297641d6d7a36a95843661266289365e021a393d80459e5c63cb71e504661c814d8cdaef3d5cdc0ea2f95be650a0e14af9fd560acee1728fc46f5253557e8eda487e4659\n\n# tcId = 42\n# prepending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 6dde567bbdcef450502b9c76daa040d2ab0cbbbc79533c5576287ceaf79aeaf587c58ce90974d555f4d7bd099abb90d61a25a6c064b58826fad6eafde247457564f8183ce79f7881bb2ceecc830c8891c35704ec66694574838c14287024eec643d7dcca4c4990b616c8fa98b0f97f914230e786a102a4e2ecb926ec89f40c69b39b54ed8890fc08edbe50f338c909b7b6c816a44010addbe65b527734e0502c59aaf8bb7e108999c540a023b60a9227ec052348b01bb1bd5ce7b7580b18f40b5f39b556bcb560ced438c84b2e8e67eeadf4837340d7c913afb7e0ed7fdbb2c58e3d9a71ccc59ebd8a63a80a8049bd9df49b164219fd87f345e1da34a929546c\n\n# tcId = 43\n# prepending 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 97c4a36c30fc317a6c1f712fccbd699f3de5a7420efdabf17edfefd790b90e20afc914d7e0aa34dbabf736db460eb697abc285f029d784b2b394d689e1a383af8a51f153b4bb77e199441ce622e6d146a842244f35d5eb3d410dc78c2c85dc73c570f848063de0445871e7210207b02144f461b7105b3a74ea3caf25412eb92d1058f18e9afac51006e859da988c733293d1e64164b733936d563c4edd8e81f57b4c463934ede932cc93237bd26fa0f86c5745d804722f8b837b19e50d415889d58fbc78bfd4eb35ea5dece233638689c11d212c47a1e1bc0b733eff107ec9dcc90a7a7395e06785e75973e0d4a20dc0c562405886c9603daaa20f6763fb9f7f\n\n# tcId = 44\n# appending unused 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 2fbc69383978c97e1075a9d8f9ad1e01dfc6fdef216b381ae5349f005617c739e086f45ffd2cdb45318321bbe77e5a2d67fb1c6b209c81eaa2388c38b036f66575590447219b7771a92bd6c594d8190339dafaffdf2a5a8b73e0382eddb2b2f95a42fe0235042965bd530584fa9db7fafc8c14a417c84b1421c63419610ebd67d20966e1ce9406c4e938784e967ca37b9499d9df4dded8b74c55b08c6244ea8285b17d55a6c51367562563524e6a45ff7956e656a1bd46229db68398f8a0011ded00f30f6bb46c5599ea3fbffb30746b56d83b17d461b20dde2bab7303f92ad9a322e41ea9962065b9ed683f56e31a58be7177505dc35a10e6703c4628933a01\n\n# tcId = 45\n# appending unused 0's to sequence\nmsg = 54657374\nresult = invalid\nsig = 94087e73e94662f9f925abc756bdac96a520ee6d5c8baba1c8947ff9d7a22fe43aac67e91986890b83eac61de630aca7813578e65a2268d78dd25982b89aa7a9d693bd868acf156c9cbb70779bde1cf7fd304b040c428d7aa48f972f0ff0c24f4d2aa88b622e801a1e2011804f331e80d17b3d15f8410b8cb301c7ef4da7eef69089fbbb4aa05433d16e673171d881357f304cb4ba929a7ccb6690bbd6911f6f5fb7d570345719fc55a5129dc8e870a7083457cbaeb86c3cf51f0c5f605645fe40410055942bbe957d9911d84a1d423978b37ffc91eadba802443cae32f48f7d987eca24719f0e77d568f56726e24e3d85b1a1d13a0bcf0c72f0424650ce50c7\n\n# tcId = 46\n# appending null value to sequence\nmsg = 54657374\nresult = invalid\nsig = 46ebaddd8f38c7acc4f2874a34dbabf6596e42b8f62313d12f9e01d16cca9968d0b73a5407ac15cb3ffb232b925acad2d5b29b7ac1907e294cba0107d9b0fe46f728695f3be72df258e504771ae356ca180cae5bfce3e67b2de72f8d7d13c63772810162132a2d512c041fdfd49b2bed59942ad0aa9c11d192292f945a36f6ff267c5ddba7dbef67645efaa8e8455957dcf6723e4d1df6e5e3fd60a43bff3d1549d0c89906b4ece2a1cda030c7ad644748610182f92ae01b65e2ea9b006af277ae685c4690827091346e1f2169a7dd93a520fe4123612e8960fbfe3367583b50be4f3acaa5f07ad9705a48640e828f797d37e58fccfbc9c39b9989e7b5a5f827\n\n# tcId = 47\n# appending null value to sequence\nmsg = 54657374\nresult = invalid\nsig = a4782205277bafd94e1b611942552b9d6171a15b171f75c3d13459c6d813302941d1ff03536b76508f333ea3736dff38a0ef61dea1e83cd81433c683ad4568365617f603a13e1fcc2813b08915eb681140bf52d4f10ca4e9d95811494ff3f2ce5c27d3a6f43f21375a8bf5b70291b57b24b18a99b38132cc002cfe5396e7d3ce5bcde6fd82ccea835e1ced230effa174a1b8b02544222d9e3ef6ea13433c2f2847bce7c4c55320c849fe9a21f558d3c2205a550b4d04b3bc49f79e4f471c44d4d8a34eb674cbf5762089494ca4d7d8528d61098ddd543bdeb9556247e3821d91954bf493edd6888c1dd23a9d06c44d0faea21f146d0f1a310a8700d66b4093e5\n\n# tcId = 48\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 67fcd94d1573d0712a7da64cb211d9049b3dd043b2b17cd97662f837226379c1c94022bbd5d82d1c67597f510f15959033b63bad63fde6c6f972b60337f52aa45e34f826da9a9040ecc6c268179dd1d10794edbf5690bf834a6a26d07023ad99794e71b675a8c6b202234ae9fcdf43b04dc9c933aed66222154ba7c2fb324b6a6bf9c4eb0535807eff2016b44002a3557564559141a34719b142245fcfb3737166ed7f83227d257f5accc579d20f4fd0debbd2ebf7fe4c8680847aaf17514dea444caf74dd0fc67dd07b9067ec16093d7b21db72a82a35af2b71b0c214136af03ac411b14bdb5a9ab2b3b603becb1fd808dc36a9065c744faae07f18b8d71195\n\n# tcId = 49\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 6895daf9824474538545d9e1c7288bbc938bfa56cd6ebcd639a897f45624ea7f409c2fedb2ad09cc98143c461262f22f9646e26aad9325af0063024e29bf63b2807c41d615ea8902de10357c747b37e8264d55f48bfe8cefdfe19ac93d251634453c4a0c00dd9a0795c3195d047256abcfec964cdeb3ebd663ad29c457c307e0d05bad643a160e343b516da6a015193cbd2b28b7eeebac2f1a2156c2e62d85f4883ddef31011628d680d4d608e5074574459d6dce4bb623d059ffd39e6956f7243382165fda42cf1064a1bbad91ef5d0a0906785cb8c78ee641a3a4c9afc2030ee4188b32ef2dba42dd6ef5c86e43a9e413303c5ae978b41e74f646ae5185c35\n\n# tcId = 50\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = a6a996451e9217ea6c0ea0aa0cb6442620847d85a8c2e9e8464d929e91b5e8fae333cdb81678fb7f90285f8a4e77f6e249ba2c342cf5603df2224df31bd9fd74a244f51b639c5f0ddb85c51eae877426ea611cd8e01082e783604c38c7dfa882d3c5b4c4ae59237a9bdba51f1627dae88e9773ccb94abc6113217163ae11e6590abb26038f651335cc6dacd5db4436b1550a37dda9258919cec2c72b78c9bd4205fb3776e7e785f85518b4d2e0529903b39a49486aed55b6622465d4ca581a71c86c40ec96e2300fcd438ebd5dacaf8c585411d8978ddb8d040f4cedf48969791ed638eb5666cf9a77b0b27e1a572447e3b0005337af99d2e5dbeb96bbe06971\n\n# tcId = 51\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 4e1280bb478bb46f4e9f49a455bfa382b4231eba33ab8d7861d852d2a0aab225f08635b73c3602021c0d5aba603b09b13c4b1ecc53f702d21e225da737e87b5820d628277254ae6d244c02068f2bb0dc532e7ed04e72296340d2241f0cf508f7a96f3683614478dad9923610f9cd285d2bbfa98ba86e2aefe49a52dad162a36fa2a763ca4a09c1afd3ab86de4986ad0e29150f070dc9f5330c62d1da6c2b494f2d8d97caefdb508fd468d121a7ed36ca9c1d7612d386e2974fc12f3f701577cee82b13098410cf65fd9619151f2f69e0cbdac7d3838d94345b5d3059fdda42e527dcc2200193789b347f90a273b06106abd0f6fa79de26086751d0289ce4766d\n\n# tcId = 52\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 09691e7bb6a322e91962d6868e380fe98ced520bf556cd085fb8e8d41efe7ba220a67a13bd72c7fefed3e1d4500e055398b29dec57d0a4eaee6e1016ff7c65b837fee29962fda0d65186bd317dad959dbef96ed34e2c89ac2b5841995b2d78d14945ecf01e632c19325dc77fb879988c7ec2f6924abc8eb0a6933bf091617add696c186aff6bb811042862cabba547ee91b8000e92fcaba7edfdbd1bd03b3d6bf5c2b5d7fc77f2c0adbc398de8995e8bd1c4040a73e5490372bf75a33f111666ce9d69b0f61c9a01cc541b4c0e6a902988ae3f876c0a0029d2f0741523a49c12034d572c6dae9b5d170208f0ffee12be344288a3c53519388dbc20d86066f5f4\n\n# tcId = 53\n# including garb", + "age\nmsg = 54657374\nresult = invalid\nsig = 128bf8c66a90e5267f7aa9c89b8713ce22c118845c5cb9b579d29287ce720c747608b68fbfca40747178e1dda3cdc3921fed5ccbfae5d976d286e9382fbcef3026eb988d537bfc9a67470094f8ae30e4da19fca114e6626811c3b355d104ab1f921c3ed8abff6148e817f5c9f21d270b2ac8983c6acdbf789ad54f32aaf9773f0b2570e810058b0f9f12b523cc763975884d13902580cd4f9981ccfbc84fb18f6a9670876c3a120b6907211b003b035a1846cedcd7a414dee37cd77b16c89ad22035c3754b098049ba72b78259c333bf88609184571955c74974083dfcf5d70d940bfd64a6c575fc52b3b8ed5571519961f2356b7bff6a127128103ba24c5142\n\n# tcId = 54\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 1901af3da39f5eaa20edd6002255b5977d3285f99a2bad2c4d7a57899e8b19d89da3bc5e418b39b744138a0a60dacd84542922f208b0e7fb0e1ab7b47891aa9b95921a46d2de54687cb2a79b3a7f3a640c2b21a139ad7f8a456faa22c16f27308ef95ffc92fa9b70e5feb0e317de4bb5b0a1558af98d177c097dffd7ab42eb8520935fa87512fd6f0172645631cee29187227fe01bd49dd0f6a28d2033276d696e0631ec2da88f7f1128a7a9acffda408ab10c26cfd6a3bfdbe4e9afc93001deea66d443137936d65bf31ca0a940e25c72b2f8c3cb7f3bce957539136cc7af0e6e5a4f9d8dc0b5fc656952d225ac9612072d037c07f9909261c02934caf542b8\n\n# tcId = 55\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 1ba99c4dffe02d72a6a5abc06d7aeeb7478aa057d8752ba59f72165e12e740160931f6419b1cd5a0cce4871ea974453f821cc43a0bbd7f541f4320fded5ed89c1abcf32806c13aabbad83c09173a2f8dd1fc15fdea66e9ecae0f92c376ea6ff1c2ffaaba304f74425e3f2df4a6436b5b1bb15035cc44466c240a2a2fb41d275ea8751136686d69adc53373a0eda516148aded67f8fb22d0985f92b6fcf236e7782687ac95cf5ff0104ee3de37523cf6faa1c5b428489e11a115f502fcf56567ba18e3e39830c6653bd29abf86b3b842bd1f24928277f1b3fca68a525243fe1bfe085307802803378d9854cc0f90318c79b79a4e939de2730a08269077fafe57f\n\n# tcId = 56\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 89476619f367778d5252add21e8a22395c44e2bbcd5a743fcea07655c3ad3a7f4c8c2d4e871a1c0c3787763128fe21d2d270c07c8ef0aa607dc2e9697d9ffb8263b3e0c82851e0a5a884b23fc4842d60ae0eef01670f988bbce5055cd8d7e613ec8294b9ed61459486907e37ed816e7c795bab8dceca60e476d01cad4dbb1c00336003319273f85b57808b6f1c8d8d8d1f119faa4eedccf3c98cbeafff20e54e3b101c094dbed77d33c54f63932ae49f8c584d66ab61373eecb541fcb89e788a5e43f99c67f4921d63bc54a2cfef49cf4ade494d32449db5c8e0960bff24e8ffdcdd5e4a71bafd1e3753786bcf8a8388fc9b9c53f95622763394f1ef88cfee85\n\n# tcId = 57\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 8227c6081b51017a528a59ab9a2d5275ad7769fb418a2514965a9e2acb1acf807685e57fcc438187a01bb5d592bfdfcf68ea2ae3182ce349c5bc5445131e8693bcc63d6abb96881e112b0e0a9b3d85c0ba5a463e6d6035ba18cc395176ade7fdcea30abd725d6ed4ce5c3905e0d12d0cbc7622e44ee8c3d343a3e6ef046c4310ed7d12e7639436176e2a1b7faf54e1bd97d77fcbac40368013c8a2491f2c9e084ad110dff1a2621d704c8f5e8ab1654220e959fb665e6e6770da6c23a66035571d844a1dd2eae68001169bb95253d7e18dcf5c376b5a31e9ccdf7918715d281fbc027d0b2510184f2a4c454805b73aae89370cfd80b345c8ed878ad1c314a7a4\n\n# tcId = 58\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 4360d9bfd89ed3c5c40290142efb667b2afff6fcf53256660409959a06c24d858b3999b2b1fbb8d9c7da7958a5a4ad9c2d9ea617c5f7edecb7ad302b0004957a979d6eba0d56fc378946fb5145429dddb6d12dc2245d4a071fe162947b67546fddd5efb1f277c9e0ffe4281572c3f6ccc9ca5d19c8c1284a5b2816b529a54c02e9acad68fcc71a5d274cad33cee0c2826d0491eadb1e4d0f05776aa02f00fc702b50927d333c2cd9ba753b3e70c26461a0c6d374a20fa6a006ef77a630ffaef2bba01f4bab3314f7f110c4b9c56aac18ce9fac6ffcef3fc140afcc0adda45473e241d592fbae6014f701fc58bbf655b519d2315630c4827e6e16d9f24e9f9407\n\n# tcId = 59\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = b0939c12151b60d2302513c5901647b0800a5fdd45ee42009828610a83b017a32ce042db7257f17f5504b3347c7b482499d3547282cab6d35360b88b88bf57f0b6f7051452f309a324be5792ff00c0057fe3936a9d584ddbf64b8590ee3dbd04961aeb0fc11598a4bdbb92453b3c646e55bfba321d1d21b5ff883a8e7b22afbd66de6a273cd3e4bc5d857af6c55198358f22a54fff26a903e9fbc3af78ee158dbf9a546dee4b5c77c33980619eabf13dfc72007acd263ea2cfa3f4a89f97b48ca684a1be77925e051184387fb0b8d7ac4063aa84d63b8846932d220f5052eb91debde89aeb6533903fcd01a53e12048990b506773239c83e891667dfcfda3076\n\n# tcId = 60\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = 8a439878c5c694fb16b51bf584c67cea27287e51e5b259efcd62e8ef1c7441555e788e66bbaf0f508440370cf04e87b9474cf0aefd15a7150fadb809ab4bd981036d906cd3bd6eafada91632123de1c38aa486c9d6117e6a1b57099a8fbd78848c7ea47be3125c866151a8d46a3bc0d8020b34915ba17f3d835e641bd797b1e55ff44fffef98a4820063434229315035165196377dff2c5f50b7475c835729bdce9b63d120bfe27d5606fb051c7c946a0512092e08ca7e800abc734e0d8234262ab56037ffb2e8ab3099d1fc11a202bdaf4c7e322995ccdd5efc18c234e1b6139d84d0193dd27751e0db9d077aec1bc23f978d2127fde875e1ed7c992a82d051\n\n# tcId = 61\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = b95dd2dafad0610015fcfe7d8b5c83c34a76dcefe627c513011d953cb2238ef20273feb8b8672475fbda75112c85340e7ab08fac809b6e2b4d314110866e61abe8d15d02f64952036525b0069f2cbf61042a39810d37b7860fb6eb1c423aac7311fe7bc98d6880954055a9ba7d7a1bfb4e45255f4cb68babe6bfcee6da47ba18d95b4954c3374176782f841b85fa6e773f58c5d56fa85f85a4d8c7b8c6412ae83e26b3fae582c3090a9fc6d2394d1a02e3864111cee49ada14e5e625da3650608bde5a5bbc0b99a46095fbd7c01d87dd6c83819c13825bff3a62cf893af31d03f44875388a4f8e83b7a7f360227182b26dce8b310b389e2c672016a166f71557\n\n# tcId = 62\n# including garbage\nmsg = 54657374\nresult = invalid\nsig = b4fbe49100d4f15bea29586e58d27cdea5270a035432d89b245e7a323cfc19f77afb4f2652caa2afb3acf712746710e837ee932e9d315ae21732c164835fcd77f8498109ef05704b081df7f0a5566f8c176e5031b184ea6aa7c590b0eddc6037d642f463f41f61c00f4b12d0b4bb7924b9caef831961857854ba53521f2b9da0210cb38132b46892ec7d44bca599c5efa9029eca8f1663ec301fd064df65f9fc35f14ffae2a3794a3e1519ab077cc761368014acd84989e690449b95c5c8c59e4fbfe260c64ff044be245c33b4fdf2f44c87ecc6510b524927a296a1f32cf57024f07a8609ebd164139ebc129b5eabcb0a84f24048673b7c9ecf89e24099121f\n\n# tcId = 63\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 963142f737aa6b8eac11c6e52dc02b3ea881f4a1a29dc672b8392f4eabf487d9296c0cfb3acbc6d56c1b4eb4378b6f118e6e754d2a16ebf20e9b66f7961d7af4e1a8deb9e4d089d540496c0ea89cb2cfff8220bc7c5bc7ffb8a002d549900d773d00a7cfbfb9499523f353a1dfbfdc9e28054bdb69c64d2bce0e172b586f6ba615e1af9c822280324b1b9db915a50fd0658083eff495f1721eab30d3be3ee276d33c3177aec8fd5dbfd9689195e7a944108ec8e734d524a27e9bc67fd8ade717c234627e2fa25279bb216fecf1f79e1d724e65b10614f334c161f2a2cc50db7113f9dc1c73bca1c67c41f6f77f80c3950d4d4e1252b64300264473cc904b0e61\n\n# tcId = 64\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3d1ba856ee722aafa5bb68d8b2901c95dd1ddf22559f05b70aa3e92afdac040e08819db5417cb8f551cfea76e622a2aabde7863c183d41c23f4690da5983c29db4e0d603d349086aced24d33695a788c617348ada9f68baee069c0dcc43d671382158c70f0f91134aa4d2bca45e1e5a106710025240d496d79c3e6bd70e15f5a4d732b37d53f400aeaa0dd49cfb24fb7af9811cfceb185c697d70c61ff454672128a0fefc6dd776befb87ff0c7f248373a17f8d2a08f138aaaa986182c084178103897fa8ad0e921ffaedd7e650637cc0c09a185eec68413e75a6f80c9fa2cba46f328b00d2f3e414f670be8056a77810240eebba03e923c01c096fadef1cfaa\n\n# tcId = 65\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 582b5c38000b069573bec33ebe6d4cdd9e250affdc8b4c17937afa464d107f41bf3ea182b86ec8143c9ce977ba2caa3d5656323d4744556f7bc85ed4054d2ca170d35e8958bbd299aed1bd983a7ceeadb2454bf3f5c19d1e3d98785d644585a1ad3a914cd40401d587f18da2c05bf2a9394902254914ddd4d2ec216bf791d87a8e8cfe6518d9e7520d080376cc35cf5b8cc92995f1e825bd5260f19b0185fa9340f1b15d6c7e0d0533268f8e269295de143449ffe15cf03a0036b17899bd18cc48ac7f18bf270f0949b659dbcea7651634da97e27a2ee1da78b10ca674e5c38475a7ecd654e051161c95fea16c5bd8aca95773bbf18f7f2abff4912bfa46e388\n\n# tcId = 66\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 3ae33c56969f5a2b11e0a29698e60962db13458531739d56a4d30379aca857b0d33d48a111865a010a6a6942a64bfb2df5dc3f859f2134b7ca6a9b48093187f3554047a95d22c5d013ee4f5a65ece677229b6bb830d5e33d8bcd749c63d5ff41c1d48e6de89c4ef43048d8be79ab7b547ce1e5731a4a5fa0f71df485e514978dc34cc297a34215e519b944b59d3762b71a5c885fda79481a886b5b587bff0e604d2cc1a02f506f1e9353d3811b154506586af833bb42192ddaf4c78a1f01f65999ea602f79de8f55e987c5bd63f01f27de24361df86173f3d4a2020b440f32fbded2dc62bafb7f77c5b1bddf4b774a820d45d98076bc456aadab3e6b55a50568\n\n# tcId = 67\n# in", + "cluding undefined tags\nmsg = 54657374\nresult = invalid\nsig = 86cc2f6da999d54a27f1d573b192e01350cee91adec8f9a02b67b1528dfab632160fa962bcba95594dc342840cb4fdccc3698cd4e186c005c68d342432e5e7ea8019469becdb33a76f806504c26e619a17d8de1b79474f669e91e0bd07b31444e53cbb525b0f47ec438391a3587912805c485dd2909e14d8289310312a7616cbd3465c2922a00c5afe88a89d3807c614bac7c5b9697e8902bec0a2fd9e466eeb932b668f6e643a8109292ef8bdfbca19459715dc569f3f12b90faf1f31d7f8506cad98bc4742b47ff0f8f1de840e10e62afb66e93df34d43a2dfeb3346fb3e0e19402235e00c4805bf6f5dc6bb10a1406d8eaaaccdfd118cce8d1a62eaa4a97e\n\n# tcId = 68\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 18d77b56276d2a2960630b730edde16b0a26b6c65b28fa20ad7982b8b48d1de6038a940f8c543d7fb71181ea2feb85592f608b20bb93ac7c06ce725026f39c645c7f964a14d68ea53de398cb64cd0a26262ed6fd5091332f8b437b71e98ec59122abeb7a27259130b203a81da5577fb0590e2d6842e22e943256c0093d143f58c023e719df92454a979bd76d08c550de11dbf7085afce1581c31a2214752548af5913485c00b7466a1cdfc60e7d857a913694fbc2fca13d77fc5b775f7adaa79668a5afe0b743f13bed6078006e6b7b16ee6ec576554aa2e864f77b43e4e61786780085edf3c6e8deebfcdc057a1de8d8d7d8a6b188a8c771e347365d25240f6\n\n# tcId = 69\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = a2066d53103e4d5ed9c08d7dbc8be145d932bac9d6363a146784fbe172ad2e02216cabce279b3599b5f3858e7179561e3c489b87f47f33d266cb019b747ec49d3dc1069cb078419f6dbe7dbf640500cd110a93e54f2bad919e60cda6401f7d88e52b9017b7675f082ac349e4fa4e49b0a0c6006d2821382fdd00fa0b9d4e948db23c1a4d3d658ea857ad829aa7a3474e0f8f86520970edbdb3035ed195f039c807f8613cf333a13a14c22f1a5e4b77ebb0db9c98c35f33b19c914801f4aa4459af043a39ec5e016af1602bb795bf2c3655c9f9e30ee2f49c6e059d0d616eb7bf7c9650581ab0f29d1e2d1fb06b4d78dbd06f0d3155494a6f3d7730f55a03c1a6\n\n# tcId = 70\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = b1f2b2ceac435cb3c650e8214ed70a87ea039da7c6730ea29958c375c85d88459065a8987dcf66b93e732ae5b92af964e7341eceac3c252b93c62b2474b54a9477053491179986eea94820ed6ea58edc7e758177c1d150aca2531651963272231f98daaf1b90e7b61a02c7e61b25f9b7c33d7f57d846284699a924d11c45995c9b85bc3192f349af5e669d893eda953272516c1a86764f46ccc17569880ccee30bcd607a21c306f84abf4b6a5fe6839ba00b73b2df062b1d9d7285c4f3b7412b8ab5f68130000c95761a587818811e4632d209f34c4a8c9e13e78358a37b696cb444ff022bb1508c299a6eddce1f8961bee97c5eaf29267d6ff4f6ef9e30061d\n\n# tcId = 71\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 012e5e56d0e1bc77798b42190ac5a15665cd5f2fc1257c66553d8d00acbe85cd2b42e56f344099da06024c5578851c3463d86d00f7c43c4c959569e2a0657840305b655f4607bde3e44ee1ade5a40162544c9e81a94612d600c069f3073c3e9710cb4006aa5e4a8b9083c4cc4f18fb2fbc3343075c8eb8f7d8b7595532d52301944cc79054512141bdce292d339f85008161af499002dee163d01eb8211e6115e637b7d3ad074507e8492f1a524e39e1a5151802b44b74e1c78dce275825a67d3945e80e73c605ea44328d10a16a99f4960e8f83ca5c01c277beb245f4d0758bbafe969dcb497915d787d760673c86755c1ac38e06e530d24e54b4dc90b67e25\n\n# tcId = 72\n# including undefined tags\nmsg = 54657374\nresult = invalid\nsig = 51f6196459dff03d29f6fd4c7477faaa392cdb0b2541056b94484fb8a266c1490e97d90050843010629f7eb61c3671daf8fb5344eca91dada6c2408d3ae9d6a66fd74c725ded0a4470027d13a09402f0d965a6177ebbf0c24ce66cc463892ad282ae07c0231b394725ba8f14705f4cb860495b2df5bbf143e3e48bebfa3503f6bd2bb56f4b5b589e5be883a0fc2249b6b59d6dca99e13b14868df7aa7fde62b4ef75bc6f2e90c18685922be7335d4d3f55eb629e2873d66305e434180701b805f832be5f5757117543ae00141d49d094d37e66091fa4a0b06c630156f99bf2a42d7f9315b9e4e2bc66883b9a83e1bd83fe9904642f66b19b40ac0c0a9ad27aef\n\n# tcId = 73\n# truncated length of sequence\nmsg = 54657374\nresult = invalid\nsig = 7f8104fe5b383a7745e52b6eb6cd2404abd1d6e5ec4255424fe802ebe76b70594c3f5e8a38959ae9e72076de7ee5a485636cd59e51e9270ad5ee38af4c5b295855d86efebb2678a66b6fd0328479b1b75461b9eac59e71ed9441cf972af074f20320d5c01d93feb037cd212f5c9774ba65754a003f1380ee0c77d3f7fdaf753adc1f7912ecbaf801959d2a70ebb5c24a68ff725ff8f9901a712ec338d3a798294ea0f10fefbce5a99bebfbef2ed91f6668d8e25b676731d9595d679b8a7e8c35c918ff0bc6b080f0f0a187f526b55b450d069bc0d4b47c59f7bbc58ac3af21180ebd6707d7237c967454e459b696842d41841d02b4c34fc964677b0116a22879\n\n# tcId = 74\n# truncated length of sequence\nmsg = 54657374\nresult = invalid\nsig = 9bf8795b877ed9a89e70af142e44cffdc770cd2ddee32ecf32b962840dc26406b1449f03ab16c7c9c72e41e2ab24bbd163d2b7213ff7ea8ccff463cd41ab87a39232383a6405911fc9bf33ea82fa9fee0954912afad0b50d80a70a52cb043f5d8fef8f80249f4d2a8a1f47d524bbfe9678ffd3a3c9d307d9c61a909478cf87d45001d66f5786a7d22d8069884c3248a3e5f223d6988e6c595009cfe24947a564f43964a1ac7d4319a446e7491230a3814bfdb80ab2227a2029a36b13da4a584c7cfccb337bdac86b5f727169596bf6a53467c06eb94b7d168624847df7679f27877f43954c4593cc4e28951dfbaf4727e3728cc9b9a59efa92c3249a4e796f33\n\n# tcId = 75\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 48e200aab82c1d2798b90dc2ddc522ad5d638699b2349b26596a58aaaf7d14f90f52f44a320fc424ae2ef781dbe5ac12de05b85a02866895329f36b1f2e8c78b5a8161ccde69de9c112682331363398659f832544c7848806a3f2076a3127a9b4813e6d5c8ef31bf7a102b136fd5f9b3675c5e8ea7df25bd9b8df6cc46e9134b5aa185c13e40c935add77fbe1c1853ca8dd28fbb53942e7965a44d9694b96dba9ddcd8396d7b191c7b385629e6c391242ec76a916cf038cad4f5239a4c17816a39deefb43ceecd31fae33d3afe50edd8086dd501f6b72ef43f21ea1858dd46ad56ed63402bb92ab06b85a0d17fed8d9028b22f528a9544b8827dced2c778d082\n\n# tcId = 76\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 4323f6998549f0c6d79dd67cbdbea827da1ed45026bc16ee020d42b1d448a66810677b3f0278c20213a3949b204a773b533e5e203f2eb48b936b01ce5b151c32be13f89c1f56b20b44d5987e1d7220c67d07578f8af642b6d504e1fb11bf1657203eef4f9882488f68ef830be437a3ef948def0a6b34715056926504439262cd5e971a91ec5b2948498fcdd5fcb1e4b4f5ba04ee2631546a5454f28304a07c5c14d01a75322bbd764cc452aa9042bb03a466b0c62a8bf945b85c63b6726f378a72555108d27029268706976de496f7098d093a3a542db8fd5aeb805ef3b547267234271124e9e267f27a9525bf224e3f5d33b67a64436d65cdcee729bbf28897\n\n# tcId = 77\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 225c4bec4924b6aec5e2524258edc63007b35b37faf9c735959c9f932f982f5d5434fe0f11deed690f9a023337a20dbedd42921f2a019ad6ff033ffd297e8225269bb6a83bc2fe8e08b7d0b9af492917bd3d0cc7e3c7bc213e0be8401ddd2e4b5c1687ab6da434ca3870f0ed3c2c1b08a00b9f52715d2efe0f4e4097510395a087b5bf389471bbce2e85814a43f10d68d8d77398b3b3fbf196cfc35f6eee8b21117fd6c0d317674a6f89b2f7635c7b5a91301b6e64578fbbfa327fefd9d8e4c992bb88a23f8561298c60a075c4f29fd737387349037c1cc360238dfe4e2c3bb6da805da25feb9466923e00242dacae167b40c4c4d5f4473e22adb0851162f7d4\n\n# tcId = 78\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 1e416fa2194a2297866cd7df7d4db6477bd71e2b2159313204dcdfbfc69ec84f826f01e35e4ce6bbf43c8377f34e7d4bc9c339d20307ba6391c2091698885480a776628addb3ad0f5a7fbcf944ef41fc2ea9ab078ed8ea62ef4ddd1067d8863d61c1b52534d51b2473a11208d260460008da01f8c88540a594b3eb6c2145472efc20770342f2e17bd2a0025fa2b8d820b8d5fb41eb6025ff990b054f741a8f716f354b18064902e208648b9e3eb312f2917782c0db5c8ef49ac0707a82f71182e8a21daa75d36e0d4938cee289742a3463133082faec3fca8979372957486d5410b90de7e232818b839882b513da01b4cb9fc59c0da62b70ac5a4de1ebbee89b\n\n# tcId = 79\n# using composition with indefinite length\nmsg = 54657374\nresult = invalid\nsig = 9801706c663bfa15fe7877c8d09f58d4664d3619471c27d333ca869536a6c4f4e816c905b2596c71a4ab3bcf07b550ccee0e8ffd5f7a9fab3afb5b8bf76f8e118b7d07170ab6f82e7e33db4a81f2f9ef1f86d04a1b2fc141768d9b4e44792ff9ed882032ad5578560d51c7ab2fa96128fd147bc260d05074ef42846db7c8feb7ea71ec6755efc554e46ad4c9dc77c259aa834fea03ccb9b931c7d3c8b0316e30d25346b682df91a6bf68c6266723ffc77576abf8a732ce1a7368b71d740677c28029d2854797fd515278d884f4eb0806f21752207b103de1e19d357e480021d3e28ba9461b6895b777f1b6a9e08bd4cf713cc41f4e9a5bd7071921a614f0c3fb\n\n# tcId = 80\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 71c756c9def03a24fed38e597b1925905783f0b25c974602d982c1e7413e7bd82c78466df5decf09100b924ff254ef01b2bd425b2e0ade75ee4ec58aec4f3da80030eff25601f3ebfec46452e01cf51ecc6c0d2268f754795486f7886b8dc181c96f6fe4dda05a2b54e6fba77869fe347c2eea5b42081d2140cb9fa7a6bf023a6b9f806bef65038aa680fa6ab6263d756d3cc7acdbb93ab3952998b2cb37aab72a50657e276d70dbac6be84526c17c5c", + "1790f0a1eb0dc0644e6c47510d3704fbe9e10c8509419f6c49656e06f7bdc4637891afebd376f1e1be139a87b2eec9063dcd815a17a08f63e2a4e9f9da822cd0cb5539c4623da6d279ffece0b8e58f86\n\n# tcId = 81\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 50d70adc01b502dee439ae57f59ec78608d05820f858a6f0e9271a4372b47042613aef6ec2f36da7dea07dfae4c84f57435980b4982348e2d33c4df6c3384accd7c7e3892184a3778943ef50477b906c2890b5c93322c065315b960be0ead30bfa496960d53a4dcc08c8df158ac5090c10c395d18cb33c8faadb7b8d6bab8fb9997e017d5c12789c1ef0b285761d2e43fbd5b4313726cfc85061f9ae33e3da0addbd86e267fef72b966ad5286220b2da94bc1b667016bece0111dbd2ee4943d9d0fd041b666d93bb3dab53e16995d6b10d1a3b4aa07be08dcae8f0f5cc03c6b9c3419d5ff8268103a850c2f2043842637f54468aed58aea06d6f2dbb965a3208\n\n# tcId = 82\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = b96e8894734529229c0830d77834f5a07060c22186c2cbc7c0fdbaf405b466fb9727694a527acf3ad0a35223254efe854789375311ffb6ea35d1335216d7b8fb215241cd3dbbc90dd569c0ae8979d9c0a2dfede3988c85e18756835734d45974dd50aaf649c1b9635f0c53dae4e44b0d2315897ee248998f6efaaeafe72a41f2f13a1271500bd6f9be8ef84421f443e68488a3eb40604cd4f28f7e9cefb539c8c5e87de966017d9ab0a3f01275fe25677c0049c0fcd7ff5799b4b96cc0490bc4199da554daaed28ae235dbd3104f9f2462468facc932da3bf2e5822a8159d6e8e8d9ea96ac200113a60a57f3253b8e05f3f0e8e040fe3a55b1a8ba749d5d5ef3\n\n# tcId = 83\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 1b640c511649dcb0d23df1fd808a340415cb87bf3b15ff5e19cb6ced922fcfb4ee376d6dee61df8aaca7e108c8a0868c8a2e99db2c0e769c80b7e5adc3bb4cd4da70f7fa68933470aa61d50a793702a49d3dc635670fa77f2dc282e28f4a74aaf5a76c9383b093e529ffde33e3f8f947719c5aa2680b1ed4a4c07a72189e03cc0528a814a6ccc7cbcb4148667c9170c882ecd4bd6cc8dee957b9f334e8e5316fc4041ccd6b422cf658ca6cca6f27972f818ab2f0defdf35ff5e4dd87de52d6a1d2cbda5f7649a13d83f989d208d95b076a1984b548b71232325469d111a8dd0b508e4affeb2f6dd42c90f4cd1e10dfc4e896e483bd9e96c3e951a51519a19486\n\n# tcId = 84\n# using composition with wrong tag\nmsg = 54657374\nresult = invalid\nsig = 8dfc2c2577dc3f36d36430f25f76fc01ffb2af51e1f5aa8fdafe6d42f57a0934a106d88254f834999177b204a5388543a49d638af70d52edde954fc9a6a2a0b99bc3d3e2c148058a72e2a50c1c3774dd83f151e8fecab64e1bbc6095cccafd0d1774b8b4ccd8d4b995af3e1ba9c9430fd8fff39bac43b0c6bfd051c5d20758900c9e79e11c7918af1a38523090454b2c14f01d1aa16b6d3c2d94bf4724a37c471e3bbdd710ad1f268030ad3b3fceb83e808c1cbb1d3b4d3a4de84f0a4f6f1d7765b324ebb81e1bcd08ace01a4713c6b376069114b8f0cd236f7bbbf3bea3bc583412617d97d508a511c54eb32f166dcd7f80d53a5c0c881030de35266a30dae0\n\n# tcId = 85\n# Replacing sequence with NULL\nmsg = 54657374\nresult = invalid\nsig = a43fe7407fbd017415df9e194db645a0a5744bccc05dcc89044e7b978a97090833589251d57ac70f0591ef9a787788360602624dbf50209fdf21f578f0839b9b27c9aab1bd58d2a17ab1da720fb686420fdc17f2756edbd8eed82502a1e66c3b2b90c08dd4150f6f6d0b569cdb14f7cad5f7925d9c8a1fc3f0a6092219ab6902599e018f88247f2e4edebf9050104a387de07db955bad9cd01f2b189d9a6a2ee9369bf1f6ba272449e26d4a67712a3a22947ab67de53b1a416f38e304011dd477eb33c8191d46101b17d9e835d9816f76dbc540a2d6a0ced2562325b9a21ee7c90f010c22fe7723ab4fb16197af8fcd507f61387dad1ce8ecd7a39fc84eb8da0\n\n# tcId = 86\n# Replacing sequence with NULL\nmsg = 54657374\nresult = invalid\nsig = 852f74fc801faff2486afa44197fec789d36c1a40ea41b55d46b6fb6a5c994a9943c6d9b3d46165ab2023124271ed5fb34ea0299b205197e4d8432c1dabb40236a095c05587e885e6f8ed0e08611c2c7573c928c6ba6159541fbe6751c04486ebbe2f20ccbe8410ff39d7db6649eb46c6f0ba552f0dffcd183628e863ce2ef8f44faadf3fd94659f98517a5e8b5969aca73c32ae22c433887315ba8631f4f10cbd7a0c3204e377e7366c136986d505f1e8855f80c5f8f97b9ec76a69e9290734e80906701372e1f9fff6f22d15508e4393539dddfbc78471fd2326e7fbfcb5fde066f437171329905fc90c95eb174e9bcca53ba46b5c42b5f3f47f1e0fa4df04\n\n# tcId = 87\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 6ae97ba33d02719f5e4a809f5b44054331d0ec1b61c34067c6c8996d126c972df2eb48f2decf74623116e4b54401bbfc05023501e00245eb98d86aec6357697e67cdc78e0eb37c53b3ce06cd078af9bbde0206ac5d63e8a842726d4bff489e6695c6539de3bef40a4fbfc500bf932c35db6d8185ed3ae713ef6f7931b8e4a76834a6cb59c4114c230dcdefaf3b4460775650e03d3461deb3a229511bc97636341c0bbb1aad24f477c3a1658155c338d37aca1d6b5ba039f3a486535a2e2dda68e4bf1998b8931a52781e465d32596c6781612af4a6f495974c023b68a0f537fee00a32c3e499da4f8b2e4ee677b68b058f99a104dde579ac31e6ff966679cd47\n\n# tcId = 88\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = b00ec164825f457f144e3208dd887c0b69762a2877f62d8795ac3eca14e49988f898d3c939613caa5094e21ea361c804c8ea0c5f6a0e09e118e183441b5719ae308eb95d705046218e7dab336e53fb30a7c1ddc59cba08785ce9bda385743526e6b7bd15b3cde6bfa10f8ad4f6f20534c388d7f61dd04f34009dc4d6266f7363fcc59853f24e0ea5f9ee100f0004adf75767d95c12b30473594f67bcd5ca63cb76a4b837509901dcf0bbf5f2d109700bf04e2169cdb47ba4de1019fd595665acb114039bc75a62cc07624646fd1ac2bd71625974567a9508c512b0576ecda69a59e950802331002662dfebe08d2548968ea8939364a27e202184380cefc1796d\n\n# tcId = 89\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 1778c178579119618a407ba834a7de8ff244d4da6ed2f979c54684dc459257e70240691ee844f745d72e64633200b800be5da738484c0258405e7319800c8128d023db5227fc2e348c426a026c3f84060a4548f0ddc2dc92be1dd42bf7a819a9e892d318eac58919a01f1ce3da9c17528af6022b2cd088144fe44c3dbba60ccc83970199b758fd49c2226f5b742668d6685dee1a5feee173aa8f4428118a18701ac503600e0704410595e8fd7208e22c161c81e108056b52da131f1f806c3bc118f934cc78b8e047c0b181ee7386d9c283a3dd251ca30a81a9b6f562b3364815ec3d247e5cab8ccdd78e0653e2067c6148b76191bb797e800f0d6e9e282409d9\n\n# tcId = 90\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 13b647d93816de9c2fef162f8dc37956690dd40d2124b0b7b724ddbe5c62b1242369f82851b24cf98b1b462f6f5fa40c248c02d778ed28d3ec8d2eeb1668081c691f6a3939f72345f0eb58fa02737ab0334693c6333b9e4593eacd3dcb71586623d11b5230eb624034561f3c6c7b151c1f18d3311f359a166500d78995d6ede43421058a571c639f228a804e33deb8aa06e646c7aa425a8d0ea245e4b2c2a5d48413c6ada61d195e2302577cd517876eea82b043c6741aba882242d9c97fcf7edf0d0a3ba6cf3723f5d3006790d22dcd8ec6bca701568cecc2420284e140c84d94e4bcc72861bb31d61a9dccd53857060f7f6bde1503580f2d52424afd1c0794\n\n# tcId = 91\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = ac52288eb0ae64f6897a5b383e9e4d734b45685fe3a75e2f5c65ad8235311a6a2fdcb5a8aec47b430a7a84efe10bac9da10786badd033089243526a4d9ea57a9e7103ca9e7dc889a9d1a4e4b86deb34ebd3a5b454d0afa940af71422a4c4dae4e1a5bd1e4270ad32a486e2a1334db7a511f3251834d112b9696979dcb0abf8ca83f304e4e8cc6892c4dc5188e416428570f0e3e56e4b171a3ee741787384f9375019fee5cda1e161d4876e9ebb349fc1f33ded8a733bc5c7b719c0367ee44ca8212c517eaede6689e1caae2b5cfd347378efbeab78114435986f95add85e48d433074288e0cace49de21c0fec2414bed9b01274a8e8f6959fdc29648bfceee70\n\n# tcId = 92\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 6b31d3f3d9c007718c2a7f9bf201ffc003581b3fca2371fc15aeba38214e51d6f72ddc632a7632ba95f79c868230c56851231a8fa178cf6cde67fc25cea8c8a811d33e451844b86fdc11c1a75b03de5084a9642490d5e9b49de50d51c93c765bb36388f1b3506a098a8a9d58f509d48e76477bdeb4ae2fdfe410c17cce011da703b47035fe2041fb82d82a158480fdc25d8e868209aec6f788e575635a7df9fa58a95919356d52a38e678a8268f3baa2af7a6efbe3af72e23eed354bd43472ef7c7a877842efbf3d9f08ef45cd562ca3ed4f903d7d4a571bdda531a00458387135e09d276729ef230297c289d9a0010d6db66c40b96d91929e685742946a4c05\n\n# tcId = 93\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = b72975609463db5cfa161a7f29ca78c1e8ec6083eb055bda72fa7245d71d565af2855f175ed29dbe881e2106f90a84f3abbf7d229db8cb7be2a7d5d29cddfb16468d9f142e07d2e5f4780ab52354504743ef0cb4e32d3cc1c2e612245324afe6604004518d8fad3ea2884104ebac9eaa95e14180e86c54cb801ba9b8510bee1e2df90fc49a005b1a26ade197c63de5f1cdf8ac8a84f6c67768c0adb54ae853388de71d1643e07d8bb083166efd077251cbcea5905fc035f01919bd143fa8d5b600cc9062d8b61eb86d118c0ce9f98a3622f90084236124ed6a5024b0b7a61bf7641cbc7647008099decf493b56c59458a1a9dfa19c13ba96c0e050d3df512491\n\n# tcId = 94\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 6afd7245b1521c942c1d38b8dc0b9a3bbe124833ee97de0b50ea9e537973e3d199376f1de834ec239318389e479a89c97b5df2bb08d3fc565c33903aab595f4005461c833bcbb5c04d90a21aa7c251e1342e2d8db768ca1c23ca47", + "3adc011f40eef9faeb783cca57657b6fc4200fd54694ad457db2942c8a9271b61e3cc1aea81f97052c3c4ce968b5c6b56710d5733615d960e29a636bb959a4fe3644c41f7cb85987b9112df1204f81c69d193f10b5ac2aa9d8f223c77641ade87567469c07b82918d1b44df6d047a0ed9291e489abd7050cf7ba1adb85cc5fd079cde65e8168c2480121ee7145bb094dc846517b6490250648f9b58398130a69dba9ceee10\n\n# tcId = 95\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 582dd05a81d329fb7c4c1bcb5716eddd21334fd2f7763aba0de67eff550838dc7f4284ea5e4b94bfd0ea823aed8bac214e3c9adb0144c7ea34ad98cacb583e8f5e2ceecfaddda67031de748b3edea986dd13906ffe06695b7fbbdc455e350b64a459a8cb260ee87b0004433d5dfcab404da5bd9a116168d8453071dcbc13af9abdfd009704721e65df950984b564b957984108afbfcf1b6f14ff50425a16da4f1d043778a50b91ff340d94e04d9cf9e7e3b35a7482cd2096370b189844542b2976713466cac44b356581411db0bad42a5b0898d05e5b19d062e04d4d22e3170001d46499a20ad125779ae95d3477cf2ec3d39634ad787ce1ed0136bc432cc813\n\n# tcId = 96\n# changing tag value of sequence\nmsg = 54657374\nresult = invalid\nsig = 666430efff090b85acbd66acc054f29a8c05720e140a599c211fd699955c8857ff68dd8ebe56517a1d4b10ec5cc175b17488161d8de9c07c3263e5c3c73a9c649d85e8b4cca02035f6ed9b8ec80e0fb1e102a06ba60e30a2d2d2026b1efa283b6744c1f2a9b5bfb2aa054fc061626bb7c5d18cde129e1a188b62f440abb78ff3eec10943b60c168c2aebddec92191d04c2d06fe1af82e9f6551834f2c6142b7e81bbd4b4b501986056530602489d59a338694b08f56b83089c76ebbd0d2700ab2b1489cdf43913586b426b22574d20bfecfa1efb0a72b72d7374ba235c8708eb68feeefa9dfeb71c94bbf999b952b2bb5d6f47bf3404427f931360e94c8087d1\n\n# tcId = 97\n# dropping value of sequence\nmsg = 54657374\nresult = invalid\nsig = 4f1b6b6f44242c393d6047cc0c52f5f11e53ee6f67cda2ee9995ef5d85846e35bd501adda9e0e274147b3898b56d80a78127569ef977872f46bf6f996ee398a489843d51216b90dac9bf173ee966cde1903c072f3da2551b47930d0d4c8c74836e2027ae33a34056c40a9bb7d811956463dd01aaa305899130d180e61532a604910d0eb25cb14a6e46ebce99914f820e64ca685a33a2409b3df75796cee1e0ea4e907265d4478327cea93d2779d607854d3f327125e4fc641f6f87da99b9138afc90965dcd95f95e54729618cf0785a115a0e7d9534fdf4442646602b9cc305eb48457f692ed6740ce315ab8a6facfddc36077a8bcf0ebd2a4cc41565c71bee8\n\n# tcId = 98\n# dropping value of sequence\nmsg = 54657374\nresult = invalid\nsig = 0ff1386eda5e2e274e20fc68a2f2e04e0b299b99ef4c3c043761992e669da54a51d9ee1c1626674ad35b95e7c9cdd72312616f461bd933bd281f3ed79b532b54a39f1ad84602edd80767ce0e89dafa6841fdc9c4b2339ad0a28aee8ac5859881e23b4ff38e2ffc9648489b5fb61f64c6201c0558858f01ad97ec7fd40965567d7aa98c03ac0b3615c2d17d1c7695df50e03c362506f2a7e0a3c95e1e5be6e382a86bc66c4f1fd4d0972af088a3fa7f9dd439ca4b44cdf40cc84370d087ac198af66e6a99415c3b4954cb6893d1cdef0f7329ba339e01fea4ee4096b94bda9c4d0c74351009678a723402524976dc01e70f81bce36c4d39ace0d12111733ec1bb\n\n# tcId = 99\n# using composition for sequence\nmsg = 54657374\nresult = invalid\nsig = 1a183748037cc7201b866108573e83611953f72b96a56a33eb7052399614834d04daaf3892bcfb194aa1ca19df3a149720a0ea970fe9aae1bdd09c0548071ad50d806d8a6e40a8036fdc5803de61bdc14ac155d26dee61e1c23dde867c16f28cde28dc6a357010ed1714a0d8c6fbc5a1894d1dea159c3a8f4c5251233ac2cb1ee715d42b15360bd045a38be1fae6f5b5c5b5f8eb97cc537e18d71f506790b35e69faeb43b30a80ce6c291dd2ee4b0fdf6dd97dc197df9b125c59809cfec7045698ecb700cf99f3feb6099f7516dbbe17665ed515ab41e7154dab04e568e1fbd1b419d9d261ba35f05512f181f87d23143f0649ff5711cc4c66d4e7b702903fcb\n\n# tcId = 100\n# using composition for sequence\nmsg = 54657374\nresult = invalid\nsig = 3134086af9ed8e92e0dd74f4a83807bf263b3bd5ca32fc975391091016dd632b980c1df91854508164088e61c8af8ab1cf2149a8e8b2fd7d223e67da5d524cd6dfd3052bd307c991761bd8047c2403fc84871430978a0099954bc4befa89c7281ae62b10972a06b5dc8f4cd6d7e1ba42d19b486392fc2f1658ac31fbe9f0bd6d7b7738ed9f7e7f51649989de4817c7e4a613e357e9d4d0cccd5fe365ca4505f99ecdee8b0f9ad3d76deae39de4a815493611128919e344ffef0776b917541aad6709487f4605f1aab878c3a62d881085cb1ff1cb55bd6436bbfc4347c0ebfdfdfc6482581bb1402bcb787e9c6fbd3c96d9dcd16245f1935279116223aaacd83a\n\n# tcId = 101\n# truncated sequence\nmsg = 54657374\nresult = invalid\nsig = 39963c8d72f4b87502bddf258c441e3b7928c0e99f5f4c7c66e45db5cab0aff14102cc66de1555e6053e7285e53cbe1c4645883768d4e3e6bb18dd87eba514f1fce3177854b7f58adc573d2f14ba065f0cc36d62e62988a85ffc4b1ed6e7e7f3f5c18d185495f2ddb1fe32ac0dcf2404cdd3078ea5986e293e2cc28b36f4be1c654f8cf86d0b8fea5be318bceb08d62594255273b420ed9f6aafc9a639fa384259c636132d8297d92cd9bb4e8f2eb77785005683905409978b50b97685c39274299cb9da6098ad02a66971943f0e7c6df90622e39f2e8582770f252fce3f1659ad742e68dbe4dbc6562c065f82f5cf7c85f8967b9de92dacd2b05cc5d1ff0457\n\n# tcId = 102\n# truncated sequence\nmsg = 54657374\nresult = invalid\nsig = 10da62f2d21b08fa1f0a9c6be729d60939340de884ee9ddf15e37944517b9c1e692193029e3aee69bfe92fbdf91bb7018deaf025e75944952b379e85c35d079cbdc1da17f97d844c78b0f0849b7e81e284bda48f0e354daf99fe5ad35f3b782beae791966d2d6cc7d6ec262a86089c385fd56d1e8e21ad69b85d305b43a271fa410c65f2ea088941ece8fd98063d50d6bb07e50119f0c4cd9c27775bcd40803124c85fa7dc2c555bced956e131a473a0e3d357a8287c0aedc6bba5239d3c8e92421918b137c08c08b424040e26a559b8cdee5daca596e7506109515e822d3de3d826284140b935683483185f8ad5684b0ed648a2cbc9e549fc4b0294d7384684\n\n# tcId = 103\n# truncated sequence\nmsg = 54657374\nresult = invalid\nsig = 48751b8bf25b88354852664446a3133204880e38e9bb4e34ee79beef8b464f138c83a45ecab05ea954038ffe6a2fc2f90dfd76f2d2a6c3a2acd36f63c43569999d54aef4b9550fb2406344779d695c773b9605d189d42a825ee489e4b69d5f1538e4853132cb9fc97a56bd9180a0ec32c2fdf6beb855d62ef6b18ea45354d49bfa225145ca639e57e10248a3e947c84d35502f6b40a64c44f813aa34ce502edd4dea72ceb11d453e66d1175d9ccd5d925e087aba6e8e34ee641eb7e76cde594409969752061847630c7d7f8d87d3fd019ffdf5cb3fb0ae5c51a8e66b03fb1f6a8601c1cf79a3596c4ee9c66331e159779f7e7c78bf0462bbaee953c31ab6be6e\n\n# tcId = 104\n# truncated sequence\nmsg = 54657374\nresult = invalid\nsig = 17ce85f7b037ff2f5902e3df389932e95b3814547414bcfef491ca0aa9f6ad8eed3bff73f240352410bd67caa01c77994543af721d1c93beb57a6b5ab348ab51b75d75cc4b5addfab9479ec0f852984b81ad6eb0ac7005b24ddcc43723b37e24f509dce252e5cbc3dd5ba4fa43385f773b9d8a49ab07735db9a7aec91fcdef0fbff7a6c3dd8c8e7ca1710f90ac3ab1594a20e4421491cae9abce372b2bd703808363e26feef7ae93d40c298865de766a4de885f2e9efd2ad0b465d569893b15b194d2d8c9ef66b5557df770ea009d1520b87078b7339a53c84a3dd477c185c2f7e3e0370346df5951dce75d4b9e49092deaf020e0651d409d7ff17a5b5439286\n\n# tcId = 105\n# indefinite length\nmsg = 54657374\nresult = invalid\nsig = 299a19ce5d0226447644ee011e1633135feebb8765072c33c18c7786b93797c6ff66f182a698d291f50f60bb20d244721a3e1304e425e4caf5d893690fe555c45f2eef068fc829d313499c0e2301c127c032caafeecaba6e339a96b5654d8dd61dad1d31e594fb538042a7c14c2953ed843207d628cde26453241edea643a2a50eb6a9446ae1d266550f558a5c8caac34ab4e812a2afc751e0033a16a1bc09eac9118ac7bfd39440926da48867dd1baf0cafe46a2f3d588a01fedefb7e8b0fbb294d9beb78229dc2a1ee2b045517e25b2c521c0b6431dd490376b7e3874da096535ff2cbadcd7507d048c82e550b2da59cdf3435dd6c15d00b81072d0b0cdebb\n\n# tcId = 106\n# indefinite length\nmsg = 54657374\nresult = invalid\nsig = 5047ce51895b102150c34f652bb0e6f683189dc2b4c5baf7787d01438f0b24a4fd3120f6fe958dea1aeb126ea1c93745fe8d0d0f9280d701a00bb4ba9eaf35a4694345b9d38f724f0dfec600e379477999ffad9122980ce111ad4492cb4349ade4aeb85f3de7e71be992a42240a78ec9355d3a2bdc44525a93d66a41cc18a6910f43e11a528d67237901a4196383f64fe6ce5f246ed02ee2b5f5ffa86bf16044a20540d2313384cca1317cf3d18bf9269f3b539b78a6c84cb4df1e9f2cdd4d9a9b53b11f329ff7db8248d23ff3dd53e805242ecb307bcf2cfe23d90de16c68cb3d33a5e461b3a6db28eb1ee25bae53076df190e6f9cd23a4880514264356f02d\n\n# tcId = 107\n# indefinite length with truncated delimiter\nmsg = 54657374\nresult = invalid\nsig = 47e9373136f0034afd98de6e5519770af7ed2bfb4926ede7b6b774cce7d8df94fd56de9b5c8a2d0d3a23c2a49b171e62e9233bfdd88a48d66ef3b1007cf7425b46d5823b3e11a4527716f4cfa9bb4b9ee0fed76c00a6f5e1093ceb2117eee845b1daff24f8da60456d429a94d180ff40600e29088d1c181a60a233dda2c01fc3bd24f248f8d55d12c9b818ce608d8ef9194ec2379ead30addf1d88a4b9879f5217419753d036fe39e88cb0461b5856af8f2cf0b5e6e74ee8c0d052b851029ca7ad23c2eede49a3d916d5ca5a0190a92ff3b2f9cc4e41dac240620afa6efa358a9f1539abcb1073fd7a5fd18552437bc01cf5149506359e822cc405f5b474510a\n\n# tcId = 108\n# indefinite length with truncated delimiter\nmsg = 54657374\nresult = invalid\nsig = 9de821d4fcecd5c3ec6ebe88582c61390c5d471724a7c9aad4d4eac2576aaf133", + "d92e5c53e45d43bd707ad80a5d3bcff1d45599e048ea27899f27a873151392afbdf287aaeeb7020491c835050c7d7fa3a905eb529fe2760e55bcf994bdd25f4bbeaaa26653660802b4131cda45e1a51fda7f6ae42f38ff688c8be59a70b7ad805e30186177e094ea2ead3b1dac4c24a42accb112155abaa12fe452bac975485fd8a40a549b484fda7d078bc6e443ddcc0289aab9f99061b083676fb00492aaca801cae31578247487fbaed775a74fadac298be953e0a108533211088290b3ed8af563186a18976ccc04e24097e4642d0e2d5242a28ec13ba321df4b8705624b\n\n# tcId = 109\n# indefinite length with additional element\nmsg = 54657374\nresult = invalid\nsig = 7c566a9339a3bff1a30d14b7ce5b4f2b1037907657106945a1159ec0daa86d687fc3db4b0f434bf6f5797f3870fc935f0aa1a67cafdd57b3e260a5ca95f17fe9e745a8aae891860e98600b835c0e18d119f41053612bfaffb9c780318d8628a965449b38a508bc2ed5e9ca208f44189ee72ccf5b28208eb27968fb5613bf070686d638e48d8f2dbd3b8ede717f350c41e1d97e9dd4d3a82bd0fa7ba4c49ddb50ebb1d522355f0307297e7d833e11125efd6d4201e6ed7fca9f0db1813c634af35d780769dc08738bfefe32fcef60014d5049ad739aaf7d2b885c2dbe97c726c269333d592d0c35d0a1b448b972346dcf849cbe370854ef33270e49b17c93ce7d\n\n# tcId = 110\n# indefinite length with additional element\nmsg = 54657374\nresult = invalid\nsig = 92996c9f61dc7e216d111ad097ddbee4cc15ae29b37b944ecdb2976b440c5e94ab693d118d2c129f10b327c46ee8225099750df108ec8f412796dfe607c2f0535ef8a4a66394bd3d72e242e8182c3b1f9e8b2e29420aa6f1dc4c6268d982931f1ffd177293223de1e6c8bf65e1593876a6865ac228a898f475510ff938ca9f1568b0a90560cfc79dc4f05734013cc0aa65602aae3015dd83a7566937808b1e7d8d64fc0db46a47e35185ecdb9c086f4b857007ac3649a7e773b04dd8b6775adca21611b819e4b90f9315d4769771cfc674c41c054fe8493149eed9c84747b067e5efdf289a798368298aa12628a4ed8021c0827b0893c3458eae2f8104c12999\n\n# tcId = 111\n# indefinite length with truncated element\nmsg = 54657374\nresult = invalid\nsig = 3abd11508528361765b79ca41cdf3a114305b9c481b11eb71b742694d5f9ba59f3010c066971df5b80f969fe1971449550031ed1348de43ce3bd9fba4d1b93e1f7d1e4e0f79e98466ad37cf0e5ce9fc01b7e08a9a540d458f546bf53fd6f2bc215366cdafb9572600c0b85e9f3bbe0dc287b6630d7fd10114ff692fe2799959f6777daa709fe7b42d70161cfdc86c03a9cc815e51febbce992104020da3f7abb3c800f4c8ad7f7bb56d0c82689a32764a3029210913a1f78ac54c50af92fbd5df563dba505235deabc0a6e6a39c4f8b211747151e3a677eb93026b513f0a121fbcf4b533afa41c13378634536173b1838fb3d436ffab58cedb48bf2562d59554\n\n# tcId = 112\n# indefinite length with truncated element\nmsg = 54657374\nresult = invalid\nsig = 70f8af936746d605b1527960344f07f63c2933c32f43cfb0509f4461b897bf09fc7c37e1828b4f63c55b9be11cc9642c2c1b6d44e388857207676e6914aef480ea49645296f5c0c01c63e1269ebc0c27544042ac036af2dbefa2eaea0be474d534e34995871c4efb9ae6f85b0f0c724ec191b3fe46554094a39d785441dda07713e51f6f9af8116689f65296e40ab21919c7f9a67c33be44dda122771c2fa1c5bce89e07dc739f671754a99ca273e256bd2a6c0812b9f3f3e76c2ff7ed972be9836a8a926cc680df79361dc94b948da882021ea1e1f5cb6848b2ddfa285c5daec97606c029c33c1fa312b409794c8e701a414f3cfe987b08f37b635d1c68ec8d\n\n# tcId = 113\n# indefinite length with garbage\nmsg = 54657374\nresult = invalid\nsig = 53dea4ade112b2919cac494c1bb1bb9027ed7a70685451c21d3618ae862502bc052ed40a0000471085792a636ab95093b73f4eb4505ce6896fad47a27322a245cceb730dd53365659cb4467308bd001773b20cc7a850f48e78a0100eac31052857ca323dee8ae643241dcc33dbd2ac098aa5a6c87624483d7ff51b1d1d2f2409ab2d1d0aafd29002bff4640f8dd0d24375f7e0d5789bf71035ebab7b6ccd23cd0597103ff93882e58c0a5ae2899bbbac9df615331a9142c0d39a46d57a57c94ceaaddba6beb5ec6027b096ef3f8786d498db1baea9bf8e23996c8ccc17d6bd5b8f4a616ac31b0f5ea1181a092fe3e5b960d309497792eb5046c4ded68a460fc3\n\n# tcId = 114\n# indefinite length with garbage\nmsg = 54657374\nresult = invalid\nsig = 97b5788236de2f816fd21cc21cc39b04be38d51c39805d98c59ef4647523a5fba15f08c7a2076fd63b71282ba90d14656c696f312626a17db5d74e0ed8234704238ff0dcb7539a846adb85795d0ecb407457404df35fcc04d41ce92379c08896eef2cd5547158431e71ee1cdeea4e1e42e41abfa6fb13dce3bf2955f8ecda8bc4fc7e413a21988d189794eb5ceecc722203b9154bae7b14c3c6f7e51081d7898eaee4d4cc84665909ebbf31d7c3dfa216e854c305c7ea42e502af50d6045ca3baf89a836c7f11242aef492586d77b4e6d96bbb7f428bd38e583768fa67ce9622a8e0c8d77c6af211eef2e2bc1418141dcb8401f67b8321095d623e00a3d65bde\n\n# tcId = 115\n# indefinite length with nonempty EOC\nmsg = 54657374\nresult = invalid\nsig = 41ea411be09bb58c61d4ef960c124d68e9c2e594c9e2f460b1fc2259b20678418e2d0a7fb556464c3cbb0df01e1eb304c64a9815c992640679559fa3b2652553072575804fdee685121efdf4b49d8174ad1441c9a563ce0d02ee15e0e418ebe86aa1bc75cbb91bf910f8bd7dc1544319d0c1babfdd331fe6de6b6999c31890421a3803a99679f70b9b628c7ddff98f57cf2d4660feecf3deb76c35862e90a3dde6ad0a7e09d38485cbdc6c0a86e68bd913e09478f2bae177d51650f9dc630775f9b91d81c149a1e1db0367fa321488501493a715a8a70b406bfdec8b1a79843a63d6c5db1dcbcc7244f3576556081432930f152f466495612315479a5c2ab3ba\n\n# tcId = 116\n# indefinite length with nonempty EOC\nmsg = 54657374\nresult = invalid\nsig = 4ad9f71529be0829b7a89c58aec8bd34e251f6df8e50aa5c51c57ed1611d72faf1cb114a8ff12dde0ab838583541a2abb38109f82e248ca8522cf7c4b385153badf5140bf84bccebf88f549aab8ce6fc438dad7ddc87eb2797cb8e7cf3d46e7bce4c853edcb7f0ca2e7dbe94444a3fe45d01818197ddcc20803d91793cfc34f34eb07bdae151fb987f164bb27b5cdb7c6867f2340ef14b900af51c335e68185997174534acced5d97db67835c03ec2bea14c3806810155a1ce916ebd80ec112515baf25f600ceababd9e06069176619b4c1bcfe7f9c151fcad91b018dd9c5ca6536ec999a7387519c42bf71f3b088d915f5150d4b388349b310644a5dc834cf7\n\n# tcId = 117\n# prepend empty sequence\nmsg = 54657374\nresult = invalid\nsig = 72ae997b4a0bf2841fc14c64a0c44580607eda384aea73eaab998708b2b79b44815ceb2c907ee4c49c1f083574e3476fe1e3dcd2c581596af38ccff0676c2cb24df91535b22e49e8f0723238555c748675e80e4907261b943b167ece76e9d767b64585a1ff6054f09dd5e22dfc7f743d691704698e778b8c031df4464004f2ba03e642654051165c9bb7fc2a1c5ce3054a8579cfbc710bda13b7b2bb2f23e6eb7221fb51ef2404483e914075cc4a9f8eb91f247a600675a9411a6cdc516e5f8b9b4c9900086a3733ef932255235c4e5b4484f49bf9f5937d3d9e1d0ffad627ec0ff0aabe08a0b0197d430abe67929bc6bb1a96b907c34b2498bad0664b1eeda6\n\n# tcId = 118\n# prepend empty sequence\nmsg = 54657374\nresult = invalid\nsig = 8d6ac89a1e6e7d09e463eff106d8817d50ac80e101df01329d64f6001c7b713ffb4a96159f4cafa5ffa0cea9bc6b1a25dcf6f01572666382e546c0da556da811b5fac121a200825964cc2e90e8147c846ed3a4cb4b25151e1c832e3fab42d140bcab9f17a247d1ef819db5e6decea280f44cb4db5ff24e56515317847b4849acb6e58c16beed80200b65305270859eef3c5bb2677dc318e5841092c21dde882a02b16071a5c951a7edab12e3df75f4c842bbc48f876eed02a7f3b878e13a213c18fb54bea46fe8e9e397817794ad24033188b1268c7ed4255376f7807f9491c6370a3eff6021861840ebeee2bf7dfc8bff45ec9b04db5099a586d44ca71d8876\n\n# tcId = 119\n# append empty sequence\nmsg = 54657374\nresult = invalid\nsig = a613eb54af4df4410229cfd628f646ef26dfb7d610682d1187e9696d35fe5849cd9ec3d48f0b5b239628a08cebfe9c539c6828995beee9788f6aedfba31dae0c7b32221b4220cf5b0d53acf5d8de4d80cfdbd2366203a68b43a72bdfbfae12b96314fef915d1b6fcc645ca935385d23d66418d47d60fd4c7395afccac61c4a02df3b0edd3152c2e398556785e9c982f8bf55e2417e614ef694c17082e556b4a48ff9e7155021747b952011abb053dc09e487450cc7a8a02b7af672b776ea8561504b8b08e2e219919ba8cc7e24e605cd7ef856cf25f3d3391311415ee67dc369b52d676f425c773d72baf572b3f5829fc76925e3386cb770adaada942dc0a4ef\n\n# tcId = 120\n# append empty sequence\nmsg = 54657374\nresult = invalid\nsig = 7104a754fb3341262f603e5695d700b35eee82e4ce5b5f82010f7b8d788cbe44230aa11289d739ab6478b7336772fe869eb5e702a6275a7c385b7488cafff3d7d8f6843229674a53bb6be30c84b3bf58c7591c7374fdfdf1f5fe8c948f7d472007e6c327d9f67f44622af44c55592946243275e5cae5f8ea8590d6efad7820a06181e8180cb2b9f5f0480fbb4e7ca32ae5265e019acc39b46d02e77e0f09426a2b211ca4420a970c805e61fde998d39b14a9ecddfc852efc8d52e669aa80405647330e284f87206e97d4db2e5f798f77a83043dcdbe76a9c876bbe7a14528bff82c35418a6fa6d93beda59bebf2ebc050adf7091df4a20b03ccf9cb335875868\n\n# tcId = 121\n# append garbage with high tag number\nmsg = 54657374\nresult = invalid\nsig = 3a8591323375e715c95eac00397c45ae7728b9a4175f8d065e402c136e6b555c6ec86917f8d5406e620f8a9906fa244e472cdf2118e4667cc43a6b1c34c18347f2e8ff1a1b5c0d8151b3d9d43f973151fa320dd8b9535d4cde39aaa1924bf57cdc7fa5d4244fbf36689f54db18691700dd0be2e5a50e57b1627cd91e59666a60b40abc0cac8e784e361b35a2496b3e5edc88792044e271ad7784e22fdcf7f2e08a6b686eef758ad9c0848a2dfaaa7e7a28a33cdd43405ecc61c013fe6c84192d88798a1499c4a6c370bf8cf297164f4be0c42dea8a0ddb4742773975c6059d7ab59ab13d25c6", + "850d2b55f86568721c777072ceada29685066e4f60e3066fdd6e\n\n# tcId = 122\n# append garbage with high tag number\nmsg = 54657374\nresult = invalid\nsig = 9736632040b7f03af98df385f0288f74a3f9ffe45a390853e3f1d1f413b95be56d5d979189790d954a22759a4c10dc9acc8f4fbcf67031d002bb8877071a579df75d34e5803fb8f084911487ff650d1449eddfb60d66cc1c3a0c8271c32f4b3b3f7e72dde31d52ff876dec63c5051fc89b257084a8830cc7e388deb38cf6de7f04413ceb274068374040d4091e8a72ccfeecef67fca6ea0bd652b273a883ca1d5637bbf25133cc09a3d9c992f5cba12bc132fbd9adb6ad1f89e9ad11178bbc7b08d0dd6d6329319eddc643fec21a5b17595296d69ca6ef8702b62d60b92bfddb7eb01bb23b204ec0fb27ae39794893681796fb16f47249493dcf199c8a2d74f4\n\n# tcId = 123\n# sequence of sequence\nmsg = 54657374\nresult = invalid\nsig = 7c26f8b91b43be4d09cf5ee7490a27ce7bedad4575fff6980a07bcef5cf783eeb57aa1863ade6ede8dc95d07c1a3d0841652b357be04556a549fd8234ede8f5e5083a3d4af273e3023f610029a0b3cf85a8a2f276e4f57251e2a6338d2ca0305a685dcb240f36c966dd0da783176313ef7c93ae6d13008099f846438ad2c9dcc0ec9f8c343cb3377d5d14ad23bb25b11c19a5bc460592591697e92ea088160f87c0418b0903bca2c7567dc76da84da000233c391f93b05e9e8f01b78639bf95bb21f74b7fe1c00b64ebace8458d292bef3acdbff89276702c547171d8aebd56dc24f98d832feaea03cd16e977b99382040f2ecc1ac45885c4f07dfbf9fe61d35\n\n# tcId = 124\n# sequence of sequence\nmsg = 54657374\nresult = invalid\nsig = 4a4b7998d9282ad4b458b6b041da104e98f8252b711bd07b7900d4acd3cbc7b1c90cf78eba718c87b9b6ad94fb35566560d6d6be59e801862505e908ef42c934d085ea82fe47de6ae3efbbe1dfcbaf99005ef250ed6fb74c09095a031a30fd33e52a7e7d0b73736f3f7516ee96a08f61e3df85e174650bae50b4dc632698f6e7f1efd2bbf10464153ed4dba71757d2fc1966d3c80e0c555d252d9e9dcdf59534175feb7db6d9d17f30c82678d6ea680876c2ed71447f127dc3c75852dc0fdf0e1c17fd1bc38bcd25501f07a5c0dfcfe295f0be27cfe18a5c596960407623097cdad148e5043433bd4567951ded89d0bdd8528497b8525212b8affbcc976a50f6\n\n# tcId = 125\n# truncated sequence: removed last 1 elements\nmsg = 54657374\nresult = invalid\nsig = 6fb0241a3961a03138b8473f8bd3ec202979a98f07d325909a2e85a52167fc379ab164c4a03986edba638abf1f8817c1cb89f297387f2d5938e707aaa53eee6bbd6a9a7fe8b70a31373e675f443c902dc1d0dfcdfe4b3ea83cd575bffb04071220f1094b9a3e7cd04fabd70c0b8761231abebd3f4eda11f74f83d77a1a44e28432d05da33998419e5cafba0e81960963209379a51fa9c5c27649ec89f8a528ef0a885f055edf3f66ab1d4baf07a405b87678ed6d170ab890ded0e8ee90ca1ec0e9f6e5ac247e01009d6eb7101da6eded84339ca191bd6194e3b6bd8b094da788c1ae068d8ce7322fc7e22189e6cea7655b1ae690da05a0aae46466800ddd6f26\n\n# tcId = 126\n# repeating element in sequence\nmsg = 54657374\nresult = invalid\nsig = 9300a86600b600330a19b750ceedca9da6c96a99bbf65ab7dda6a5924d22a5fc9a2162e3375172fb38f62aa52a9fec71af1007ebdc5ce29b02163d9c55ead2141959eaea28f13c482be046d676770e02b71268d54d52839ddd929117e4857c9a6a17f92915d0acfef9bca2c40819ef58130eec1bd60359bb8f47ce67f0663086caf2281136b6076b20310203a9ac1b293c511a53e10ff880ffcb7184be60fad58586bc9a11fb51d7dcff71b401e42c1c7e92cacae3c50b62dfbea390c285c5feea91c288fb845401417fb01a09b3b6f0a1621df5c172632d40fb2936a7c2b62e989b848a06c098e69a333759d9ba2d270853f65daee1f7a81bdaf64af2347517\n\n# tcId = 127\n# long form encoding of length of oid\nmsg = 54657374\nresult = invalid\nsig = 875b9204a6603968f50d6e4dc13d3192077a286c3475165b0bd160ff3df39fec5859a512886fc1e06916c2025e01ae2f7ab3b341b6372f819a625a42c22cdafce031d9635f95dd962a8f202b52f9925f07bc0c94434a2091d861729551e37d7c6019e16a47ce87f3f4051b8e9adf62444b522f522918c391d82940418cb3976f0c30634bc5dff2c4c3f36a4489d00c5ae65021b3bcf5abbef9257e3c976e5fd305fb30ccfe13c43fed64c371f8532dddc70a1f411cae257f37b6743da2d9567f9dc3513b267ee26e2da1a6ef005526fd90b6ecdfaed9a8d9e2bbdfae25b0adb81004501ff32fe1e7b7acfa18de5a1ab876705784181b1336288aefdc91186c3e\n\n# tcId = 128\n# length of oid contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 305b0cb38db7ba5dd11c1d82195313b522f57ceb7b4045249dcf5977b99315f6708e9d8eaef6a89da0c11fa6f8dff3aa9050369cd520dd6e957226144fb68c846255b923a49ce896fed8828f8956d0d7aa5193123940ad0a5225e921ca0dc0852aae48507c7e22ca007f403bf0fcb6553d0af0bcce6be17eb53b0e8401349c8d144eb1ddbbf8215fc0e06d6adef096acf52d71978b1bffe95ffd21899256dc944fa9cfd4d7a25e62843f965d55515f6c45b22a825288773e25410582f62b9f1fdc1e0c6d4c941b90de7d8c3b18cd3eaf5319862d7ee160a5edba133cbc67024771817c7eda526c92d146e3b38b801025d01871c3efc2591a32ffaeb7b20e7dbc\n\n# tcId = 129\n# wrong length of oid\nmsg = 54657374\nresult = invalid\nsig = 99647015158993892da3dcecb4fd837d0111d7ac81efac2e1bae2242e6605182ff1ed43e41b81b85448367815c6549e363a635b946ada99ca0118cc35f37872aca53b024aab1d809909d27bd664f32be9501c3d4b7e3539c2ef10bfc340a89c23cd2c25e51425e2e7f989076bb716057078c968632e0d47ec81192f37dd5dc4d8a0ffb5e9b828b08b47b350801bb4d358e91165444e8ce8bf5d59d4dae17202919f67c7ec8b78105e255d1714ead968b9c075c11e69b5478c3595756858a98e39f321957b6ddd63b37c69d34891beadfded732f0ba587fba6ca62b0e932acddb5c5a75ac316974dc3b5a27cefd81d799a8a6244a9a78fcbc403e6fb41e4f157c\n\n# tcId = 130\n# wrong length of oid\nmsg = 54657374\nresult = invalid\nsig = 629e5afc04cc1f4c602f030755deeedb0a5f5c271b3d52556e81c44911296bcdad7f5d223cb6d72cf9740554bdde2936a7e3cbfad72a7704d27343240f68e2f598892911e50340c2c29a41c0d10ebb996c7e92a94fcd23a03507488be345ffd63db338b19e95d47a1095cb6894079865d299ac8101a443e6b5a9557acb9113552932108565d1d3409aa30b6c013c54bc571a08fe9f39c6a3ddaad948656bf77e7407cee8d74a037ca6860a466ad06082c39f9266f7ea16b62b5fc149a7d23093b5f7c48f81673574c8a68b75503c15ae7565775160e16d0e4035489179735c0c9736e52654d4c84c1a785f8b5a9ec2f42aecf88cd925dd274ceeec7e1d31ce4f\n\n# tcId = 131\n# uint32 overflow in length of oid\nmsg = 54657374\nresult = invalid\nsig = 829207379fc900183437b9794d8f7fe9ce67bf4dfb66b04c5e841575ff2ca607766acd6def23b5e22d25be703c0126be641d72f245bcdd60ca0fa8ace694fb8866ded8d5b572852ab899b5ed8808789167ffc699c242c7a6124f6aa6754b2b8c7e654f14aca2446a40f64030b0d836562ea9fd44adb75d235f1b7ea86048b4094aef96f0cd76c31ce25788aa9fae68c1062ae48c9a6b9130652b50be2f98ba64c89a987c0e566ba74bd3616f79567bbdd867f0081e97d0fbc948b6819f46561281061a413b4f3f43d5eb4174052055745d950caa95c320c4c7fc5e02f604071bcc361c20d72dd5509aa496a9bf1d497b61a064893880e052957353b2fab31476\n\n# tcId = 132\n# uint64 overflow in length of oid\nmsg = 54657374\nresult = invalid\nsig = 615fd599966ab4eb5d30e60eb0fd82ceff2eb244b4888442ed7f6a1f32005ec8818cfbe3e6f4ed7bf9d51775635307e281ece422219059736e938931dcb7fa1c0aed81808d39ec396acf70766e918f017fd41209972ccc55c1e31c84eb217a2d82dfd84499c4499cf0362ea60c40439c3d47e8a05128fcb5f445f08f5d92a29df6824d7c8bc735941ce54f464e44f2bcc6eb3619248bb52d04da149a5f9cbd9cf617257dc95a152681656f537a2e2053170cb2114dff07737872703914144acfa7f26b148c59258ef72e2061dea6c035853a6be96063dc05109ec7f2176a4d601c41caa637eebe907b248922c6fda83bb7e9481ea500576144355dbc98779944\n\n# tcId = 133\n# length of oid = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 249c65c65a3334eb4be16dcc3db0732547ded2ce4ae6c10b1e1a0f474298b2ce230c59e7e746ffa173d5dad3b16dd4325e5469daf6ffec2af4ea23db279601b014b54fbcfb3578b078a8ec53121038ad666ac9408d65e8ff4570aa3b5747041f4c3a45a0e9856f2ed04b3c2060925a5c77314f7bfb5c85a71155df5b23f694a9caaac2fb11dc6612bac680d7494ee19bd4945ee82c5d1f5acdf6b5ab46e937a90bc4d6d3f301373026edeee725da4ba5202e1896b716bd8c69ddb95fb364d697fc596709b0ec48bc66041df7127aed311110545c4aafd228ff55986781780455241830397f8fb6764e33d0262aa65814521ec71890700a093f50db4659cc5e2c\n\n# tcId = 134\n# length of oid = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 2c59c0f5bf7fa3b6bda22a75dfc3ba14c26ff3e7ad24c1527ee7ab7c032dbfda6ea5171d88df2de56c1ad6d955dc41bcb8395e83518e40b840c062cfe982c0e42065d7e2a9bcbf91dee53949bb6f67c99d1e1fc44cda982a3df171f9c35424efb2f6c0cc169a44b6e5015df5150796a9c669515aaae57076bb1fbc9480a8ca6954990612eb0314da7efea7d14223081618f2225ce3ce43770d457e84b54a80cb3a35f14c511a2fa2a4d295afa6ed3996d47b5a0c6b1d7c11ab14bbff13af67b7475ac543307626598d69557255bb3a92c07e36c3e9d1530b21284b3d5c2066057035bc753894c01e0f33764b51ca3319ef32d4288d11c7a1767ed7ed89433216\n\n# tcId = 135\n# length of oid = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 31e48e30de0cf259d0273991b633da6228289d540d84c527d5f12a13d2d6fd489b1ee282ff5261eeffb8e1c716572b207eb59c1dcf04bf9d4a9ca92feccf318254aba5fbe1df1dc6e3101f2ccd0cf329d23cfd9fa19c2acfc98c319be1c4d9831e86343513769e4dded967f512d5371ee845e47544c303d52ebeaae15e139eb2606989268b1ab641c44efd8b1ee3a5fea73907cafd4322c00d666", + "d3d0e11ebebae763b0bc4948acb034eeec91ba2b90cb40218f8c8f4653338eef0a4d31e3dbd29a3d90b9a11c8fd8e613ccbec221799fc2d98625215ad28ed9b7c38eff27c44fc5cfd408a6ef1c7af90465cd4b5aa424c48604e2d72bc10d9ddfafc30129a42\n\n# tcId = 136\n# length of oid = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 300282f3e571048e6a298d3b1d979961d17e5f460510227aecd83d7e8b3e21c76a1a304bf464dcbaaaa3e134bc5b25ecb745b78829fe5d7590c1c799bd613ccb8e1e55ed89abc0fc663599e77ea87515c2446091cffa063d6b2df5e3c623da69bcdfd9da5176356f76b05c98413d762cbe0f47ab6d470eaa8dac88dd55890a8c386d5ba195bba8751af133a24d204b7e7077e7a9268cb9dd7021d9348f12dcb46f145a19f0b408e2563d5487281db1c2807908ddd125db751b735adaed2f8e8cb55ea470a45383e2991b80ae0126f93555908a9154c1633c820e8942d4c37c807ac6a94507a3b9e1f95ae5a712cb7740180eb4e56c15d4e1829fbee2bb1e642a\n\n# tcId = 137\n# incorrect length of oid\nmsg = 54657374\nresult = invalid\nsig = 7705d76a011d696708921967a9e86166528d77c656946a5ab0e157a78073f4b2f2785a1feef6efd8d337a22a8ef59c6e710e984844498f0ae0c1f61b5d7057d09e3fed79922d492302e28c0c0401100049ccb68fab95feceff0acc24a913840290b27477b295f942ba232e6ec76d112632c9f02f9d40505323d81f4ff1bea14f42d6743a3c2867df273f80274fefbb20346c3f1cf0c2f87b55e8de277a8b2f4ab8006346dc8ceaaaf0d4af382337952e3c55cadab336da343723bda0ec0272ad6251995d58764679135c1a20098e9c3df54f161bb16bce5a600a075b36022f224ad5b4c7dda09bd94bc7eda7a853d96b5100e5af8fa2dc1a6964e4e1fdceb826\n\n# tcId = 138\n# removing oid\nmsg = 54657374\nresult = invalid\nsig = 1d35c1575269b1ca4e071f2fa19ae31388f4cfbc7875449b2027984d2b363bb2c77c80819725e03ce9f3db97cf939b07895c55b93cfbb204a3b036dcb69470e9e99a5584195ac3dd24214758a82f354338e50c69f3a5de6cc0920b845550fcf104b397ab4b4add6659efd34f64b9b673e73662ef5fced6e7737147e41b48e36410eece6db65f5803b16d33c25cde6bcaeda8930e7635656d9174d179c74f5df33b08d5b90e866624180f0a03fc6a94a8c40731658a5d90a071c6f77e460c6ae1e6d6350869db442219bf3730cdf3e74ee102d6579fab4892e8e410f06bd4cc19d776c47ffe667071fa437c80452950df7e12d909e0d2f7494a8500e1bba86435\n\n# tcId = 139\n# lonely oid tag\nmsg = 54657374\nresult = invalid\nsig = 5cf9db664d1baa241293db08ee7c8d4cb7cfd374d9c4e0a4fe3c81fee279be9f0452e6545a01ad3adace3d0843ccc26826d446c9bbcde6dfce30fcdcdfcae415b6771cce7f1d7505c07969a8abafb200828aff641d0c07cdc4a9621c6d0ac607f950ee0652c138b4b48f724a632c8345b2919abc24fce3d815f82b99026f258a6d2cae1fb767a3d20591aab866640b4fe821e010e19db0d696a513db246ba42603b302c64f17c0296414dbc14a41726254d333f1dfcf29f55fe22a576eb6bdc65c7d0204d22001e858abb48069f65f7c1d8e8e84365429c01c048d4319765de14c48e68a4f7c898598597677b294d71fa2b5278a0a9eb52bb627c118a5bf2163\n\n# tcId = 140\n# appending 0's to oid\nmsg = 54657374\nresult = invalid\nsig = a15fd53bf93274aba318e4f37dfabd414a47c27631f0c779bc8cc1223621730380817ccf1147a18b778481c64c48edad0815988e6942199d0b0599a1e33636f7e83e6addd65d87e53d734357b5d2111231cafd3a4e40845073ae50d4506f37d671b184246ce15a77f36f554607f016e7f7806e5099cb2a69ab4127c893f28cd8fb8989863e787151cdbdfc9e0be0b3235b1057a39e656ea482aae6d7c3aa08bd06fd38bc0f9b21240233624ba5c767b5f3f48c7fe365ea1552c5a9e64934869974ed2555ae81f9d5cd20f48579f238de1e150fdac4b321a05938638b81f0b7292a61e12528b077949f7ab3e6f8e1f78be81da0602fb30b47f569f7290cef3366\n\n# tcId = 141\n# prepending 0's to oid\nmsg = 54657374\nresult = invalid\nsig = 8db939e248a2140b770acfdbe16ea6153d968ef51c56b024dd1ec56cd600ad79172a14f6253d0a9bdffe9ad10b6ebf57eab8528474fa96a06c9284e5fe08c48dad5520730cd182dcf1bac660ce3411c7cb68686b3b91c5a55b8627130f0e31cf340298117b3a0b358a42e9deaba700f8d2dbc934236cf81c0c4d15017602e82545e1eaf9d31e4e8ee51d35054f3b05b7a7cd121854a0661ca19706ae95cdb0582cde723e389d58579d02c679f8d287a2d0ea51f442df0641682458ac6590b3df77230273eb779ae4b827c09075c7163b993eae72ec0596c2adafc8e20201e21eda1f4a13c27dd9ca7b3bdae47707b362912979357aa587ea2d86c9c2c2587ac7\n\n# tcId = 142\n# appending unused 0's to oid\nmsg = 54657374\nresult = invalid\nsig = 0c985f857ac4219bbf98f767f42c7e0ba886889a0a7612a3e7d7c8bad581250aa7ec8a71567490d0c509a6b927b8ad714107e7248ecd5f1ead25828707072c87913e7cb765fce62d175c4335d09d764bc5322648e53a73eea7f55371a9a73a5283500e0d1bea254d217fcccf917d5e0f28b987e9a16d11361dde37d699edc524714122333d897279eefd79274c095c2d6c9683673318e7f3536296c6be23837d69e7222683004d7e52b017e61a27c5ff3c8bd4ccd8622a52de0d24baaff3c43116e4f043ab30cf8549dcccab4905f458ab7761792e7655c6a66eba7668e4b731c62ecfabefbc31a1cc8b3e8f1a69cdf9c8f7825ef266d9c7e34710f6af936670\n\n# tcId = 143\n# appending null value to oid\nmsg = 54657374\nresult = invalid\nsig = 9957846928b38e0fb520a2786df5307373a096bdee5c5605500791321564ab48283a682cac388bebab9212a6429f9e03519f4f830719df9b313d62f2c46b78eb936b3ad13f3e6ce3429181678359ef6392e68bab0aaaf925721c6f991d989fe1a6edac5be9faad908b0ffb9b0b0b5e32cb6080bc9007a5da47fee8e343803bcccd4352f284df0e418bf6c8317b6ffcd7b4d9e82a911d654f0344b28f39f55ba9f1955d7976ca153059d5de7bad54e21d49bcddf8051a53e4ae496759504eda1ea3ca3bca7f6d47821440850bf44b2ac43d4afc1620b150b77f288af03b41c4d32977f726a91c80cb5c37177bddcd5fc5e206c4284537d8eb740f3285ef1a62de\n\n# tcId = 144\n# truncated length of oid\nmsg = 54657374\nresult = invalid\nsig = 2d99760b2853ce20a37f51045006ed11d83b250d54da4122e200179a564a296292479116406d69b858cf15b8575bfe9df9832e484ca8fe4f0a24bf62aa350194ed642c68bb074e70790d7e18209b23dbdef6756f037a3391e6bf841f7b6dc763547565fee7e9416e62504df61cbc00cc2ba5907261e4e39bf9337e7a15594732f08ce136f37752a585e286c001424351f30a9bd585e3c2e2d99a6c91f3ff3081194b24f6bed3864b36b14d1ff3a05b584e06a994df9dceda839ac788d08d608009681db0aa23931d8f4a3aa1b1f93b6851a7899723e858eedeae4d25394bb7954bdffb975a3a1e4d46339a0e25f8e85958b006cc5f0d5b60c9fad1a829e81342\n\n# tcId = 145\n# Replacing oid with NULL\nmsg = 54657374\nresult = invalid\nsig = 3e0270e701eebc757862ec646322ab99511bd27d1351bbc3ab0584e218dbed9952a9074ebb7c5fb8f846a0f5d90dc1040e2c45914c86ae0b722f1fb95f7621b986136d7656a2a4300df494c0235166e51e3c9e9fb98bfb4604d4838adecd5c55300332ae0e141eebb328524f1fd95adfcb9ff7fabd203e89775f94a2e84ecc5efc0d9626920ca8a13154dd0e97f2527d6d518e6d460299cca0db870b0834d5b99e464760c390768e97c091708887244833117afa89baea5c1641b88d45bb9d711bdbd559af73bbc8eb91ef377a0140cd639fb7e8024dd3c48ddad6e37e31ed0a3fbc47a6c28b5fa3df0f38a912a4fa2895c2e25f0cab70bc5e660f725fe22da2\n\n# tcId = 146\n# changing tag value of oid\nmsg = 54657374\nresult = invalid\nsig = a781bb3225276cce1858b9f9316f6dc40abdabda8119931faddc5a871b5ae9c7c68fb1151d9cf477a66e4a13a6c3f114087bbbf219beb524e308a91fa88411d450053605f9f00bf28a146c10b825ac3205174ec57675035c8cc2c9f411fa1df596d1e33a7da0afce271c6b456c665c430cb619c971d60754afcbab103ca02aae079b3803492109ce37c800051ead6d47a4e0c30b8cc147c66d5eac20399249af4082e70c7d5556d2b0d46508e2e1fb805b6ded365c2f0d20f33315a8d49f62896ade6e0ac9187e186a73e5146cf8da9821c2e5fc5ad4ff0b28347322c09da2dbb196120762093ce33fdb53d8a9579c13fef218a62a834d5fabf53e1ca8a751b6\n\n# tcId = 147\n# changing tag value of oid\nmsg = 54657374\nresult = invalid\nsig = 5032da548bf0168a4b3b3f99c144e3e13ce14b7d539e397f37847ffa8db34a0dfc0d73d30e6e3f2a23f0ac92bc5643af1adaddf9dea73c688ea98364c1e610835b62f1ea602589fd44a8a2cc73b00cebc75c212228b508634137c1eed7a942c18bc6ed4bd0ffd39961f54bd4455155c08a304c2e05d78950e42e92275b2f02df29ec2b2523bf97511a0ea3126c1012ce9683e175a45f7ee24a721707b7b7534ba8441633faf9953cf120dd6a13c8d88cce5e0b374ad2a3366f1e96f823128bfe6b830345e94d611e1d923620a57db4ae51e5d17b5d8a0eb4acea8377cac9b35553b7464e40190f40cfabef9bfd393d0f87e6e5bb08775d9d4768e8f2f0cc4a24\n\n# tcId = 148\n# changing tag value of oid\nmsg = 54657374\nresult = invalid\nsig = 489a6107f0052ef49f97222aa666c8025f2a30eb4bda5f47c888d256dc742094b2b03aea0b087d3f27e6df02fda958780626512441910fb83a7e4412a3aaac388933798922f6a4dbd48b851680d1f3f84e39fd30716921f99b87945001d26955ad33ff1047b5771869a6f1519906e461a7a50d8fd08d67a9f9fc272699e7cbc30a12aa8601fbab4884878a371b3c1b00054e9e585df1e2a084ff3f6a3be5f3e32cc6295939c1cdcd9b3aba7e58ec73dedf0caf5d3f5618c6909435823140b29635ccc13f658f1339fb2a3b21e1919be181c15edaf1cb6feb142464e6eb4dd18b9633f55fcf370b6c0643d6710b875df63a6220ce340a97987e577aad0fab4eeb\n\n# tcId = 149\n# changing tag value of oid\nmsg = 54657374\nresult = invalid\nsig = 41858f3edb8f7fde81575c399fd90c01162e6017d0c03b5c68167fcb668790d054b40d4d2438daa0411034ddbea901ab1924248185dfee64d5944486530fb407cf967d171110ba8acf00d1dfcc6c7a330f5f828fea17a9168e083f8e118857d29baa32351dd284a2efa0672ccc3d0e917818663cdd", + "a0e5dac638ae150c308b8737a50cc9f17a595800ae925930319cfbff91c02535d3d35d3256591094a38b3dd10af4f51c2eaee0f8bce27aff7819e22a2191019e419f4e45fba1272d104e0c278654ff6a21b9506ea4317832e7767f46d97c64e0041c767ac1ef88f3ded74fca09bcba82b519fa7716a9f7c4a2b78931f6805b4f914f6e6bd0a3adbde2a88f\n\n# tcId = 150\n# changing tag value of oid\nmsg = 54657374\nresult = invalid\nsig = b1771079fca7ad8ba3698a9cdf7bb5309d55ec40500fc83424f1469c9fb77ed08082b5ad1e66890b51465763d1deeadecfaf9c8efaabadae7f7fec17589271ac920cfd1cb32135fca21ead942ba15f09a38414a796f67a5cb29f877caa6ff8e1c71755fedc58485dd9d4d62455c7a8b2ca2d1906e8045e60f681c39a0a162dfd63a9fdab5954352515a926324dfe252aa1a1e576b4dab1588b08344aa40f406f6352317055a8feb9292b9611c90d417b0bd42fa7e4a4b82c63885423283ae4b2467fba84c34c391339a5a3154d70d9543401cd260e9db236b1f96e705fd9704fe557a53397ff99d74d9d97847247e15ed410aecc0f74bd7bdebded30e34d3412\n\n# tcId = 151\n# dropping value of oid\nmsg = 54657374\nresult = invalid\nsig = 9464a738ad70b16f8621a806e95d4d2cb1866383dd6c0d61ee85bda1ac8b56c3833373257daff4d360b1c366c10938929a8ca0819ff929311346501c67aac447500b2fe5b812d7cbf93db5e5631cbff3c498461fb446eb0f25c881043b2339b13c373012d7546b9b194d45b9aff2283d7074f6119420bb6442af9116236b91ef37f5abca8aa9eab2b0ebd44d3bd302ab51a67e1d9433dedeb1bca87edce75d02ef149dc5784e1772c9ce846c17e4f7ccebbc908c46cd062e0e4bca76a033125a407919f7862a6ecef7f6bdc279fe65ab938be35858c98956c95c396b15d2a17c1c2ac996b5bf0fc345321fff7dfc44fa4b0b858db0f556de1d477a85a19f1856\n\n# tcId = 152\n# using composition for oid\nmsg = 54657374\nresult = invalid\nsig = 06d0a8d9247e6e39a8e09e7f8db128c23225d88e831068cb3187a6cf657d709710c129f688c3b1560448986e1f9e83a56e9053e7e7ec86f61c597d3713ba8326f7ac0098fb51a49ee64e306c249a09533f464a59f2e5ebb3fc85da8be6a60ad076e8091774cdce2742d5f9112d8089fa8e3071283e2bb7b6869f3c44d6dd9803ce6e467bcc8122d1e96832d05033f7ccdbd6bbd0666bbcf41ee1aa077454d0e136b725e7fe0057b2e5bca0d9a645cb50a67ea0b98e7c0c60a91c5b5098638a3027bba417ddf5ef968ab5d1695fe3c2b1fcc664624a783cb5ed2c6261e0627a26f351d8d2eb055098a2b8540791c2e763ef27086b1f7cee54837514790defed29\n\n# tcId = 153\n# modify first byte of oid\nmsg = 54657374\nresult = invalid\nsig = b06563b316ee2d9a41adc5a99748b373538f15a44c3c9227e46ec05f99bcb14f4316110b1d1a82709dfa57e6a81dff1f3f692d27a96ca51f44e7b9fac9d2d87eebadab0a2d4b8d90427af8797ec5819dd451787ea741023f2e208ebe8542dd95f4b24cd86937bba642ce66851a782588fb2bb9e2d8fc9cbcd20b79f758537799740fde8e1a8ac4888abc363feb341758160f0d21498eb754e5189fc556448621a4dc095a47ba5b2759315beb9430ccab5deaee086cc87ade1cb243a8f4d9c63bc80f200dfdbfba9624e6084046e05dbbbb836ef5e4b0a06a8a26578faf21eb155cf0adca6b72817dac6c3c992a80c708137422b015196169bed668cbe78a9792\n\n# tcId = 154\n# modify last byte of oid\nmsg = 54657374\nresult = invalid\nsig = 8848be6a99395116fcb45143dabbf7f8a95b800c269af5a986430190d9834502a37839afb083b66a96713159ec17e66cdee5e4110d0f9c9c17697f38af177b93b17c0fead88ff2dc53a0b5c502f96c4f3d402c623dd81408b06426bf6ff7d602ccc8eb21db91c6c0d614d108703ed32026de99e1a5c411edd7c6a66976faa57cf022a34111d791f0e469080c7eeb84999e0e9040def04df707fcc937095993f1a8bfa889c45127feb9de274bbf08a805d32f4830b4c5078b65a9340bcb9b74b9368c02af63d2b3481da5f57eda94ac2e5255d3b72bd1a19e45edcab46a119736d7e2508111a0838d1e6fd5bba4eb67ef697976f3cce044d29c6d8d76c2d92e1d\n\n# tcId = 155\n# truncated oid\nmsg = 54657374\nresult = invalid\nsig = 0baac664f223ae40e336ad610b804b5997397b46a4a2905de1287481aa43a5bf059271b6a3ec648faec7345823aacf1bcbf09189b9dd349bfdaa979df8fa78fb199fb7c69fe824f83f83d566ff49e2ea28c704de66f187e3a42e90663423bdd0c8b67dad4e92cbba14a1ccc1810a43d116347ee7ec21ff9a8324a4c110e661092426769a443627ddaf25ea4d144427993a2e82e0b15f20936dfc2405da8ab5a6232b9552f175331e220337f22008033910dde7bdfe87b2f7f3b4847e665da5e03dbdb866b05d92c5ba490bf5a75903aaff4f657bf734d284081f52d81e6bfb040dfd6811bae2b73831ca3709b6044134200c700f2946f234f946a69886be2bb3\n\n# tcId = 156\n# truncated oid\nmsg = 54657374\nresult = invalid\nsig = 2394109f99286c6d9cf82b46d1015a086f826e3725998819ef5e1d99e504df76a7dca903360567cc58d6bc327e90d7555d646f42f7c452777071b3e6be8ef1a97c0b33fa50709806d83fb3b8acf656067050708ee080af5a85aa2ca3f871324759d06d9a019b8314c66c15cb0c314d807026515d46e2163a19e89a7808af30a71acea51f92dc5e39d237eabdcfd46abe7cb8af5a47bd352cd5b1d0dda6fbc6fa5dd19b3051ad13ebe75462080bb3b7f23b013085e6f6010819494b5b303c279c2cafd1595831daa558624ef42a46a4621b6374cdb2113ec5d8e8a3661e19814b60b5394d9305c7d02073a7d930ba9bd912cf72efac5feabb8e69f34b74ef7775\n\n# tcId = 157\n# wrong oid\nmsg = 54657374\nresult = invalid\nsig = 4469b8e895fb4340328360414352059a4b701d2c21cc2125d91f5025b7b22ae7ba840123ef45ba9c8c27a8a34a74f010a4fdd6be9474ac270501bd96a602afb05df7becdcaefb29df9be5d090af6869a4311fe94b70bcc0c5633d69169ca038b2fcb2a4abe60c0b542b308527781d184d06966632d7404da5e3494d76bc72e9f87d006950e7a4388334f99e212d5f253c11fa8361179be7bc927d9437ed11b7685529e832162e41a72ba3106b9af7acf5fef70178fd83ce3598683ad61c27cd1d69b437dfdf93ac43a1876d594e0eb8523a0ef8f75ccf1ab079d4538bbb726d04f45ec864b04f57c18cd6984f1a3a08a7c3944c6946c3c3e090f9d833c5d3d81\n\n# tcId = 158\n# longer oid\nmsg = 54657374\nresult = invalid\nsig = 50a22bcb4b87ca221a77a31b676101cdf3ac4fdb41a6c17fcfaf62352e036bc7cc7e19e07f929da6529ba390d4c71d0eb8ae6cb64651156120c4886b34a146a47311897a2544e6ad96feefcd21edd7deaf2ed45ffd433b2704bac651140cec87c9fdce69e1b21ad75288af67e3e82ebfc38f750f68d76f79b4103c897a26d64e2153ad19a3b26d1d726203985de4b685b7987ca9748fdc1394fb57af67f261166cdf9ae2df7a85a7e486f67424db68292de83bfe9823c84e22ed29ff05b56955dd15adf223927f71a9443163facd531c1e9cdfe0e5ca1f13e6ba50f7070f4725e58ec76b53f0fe18d89c6042885b0ac441977158c4fd9d956cf3ed1a39661c45\n\n# tcId = 159\n# oid with modified node\nmsg = 54657374\nresult = invalid\nsig = 6e3aaa1f1d8c661f02cb5ddf2c213dd3dd1781752a11528dca806f23d8652da37aaca30adae3b8baa57abc9f9080c8be53c851c47e0597e04a63b8ea246d83cebfc668ac8b817acf442e2183855d7732fc5a57534c64e4e5eabdf7f3ab347b33930ec815968932a22753b5283bc055bf1e8e4660235879bf907a80ea6e610ddf907f24d4977722a77fb56023046beabfc196863ba3d194a0ad65a84d716acf1ca301365f47f68c81fa70b58d2a581ac2ca7f2093b4d5d5bf328c2c3903261692fab8c537a50644b28363d1d9b295a89d3d5a175c81ea1d94faa9e0b32da62bd6a9727c2399fb5fb4a8be239163e8aa129467870ad54c305780b76f60fe43aa56\n\n# tcId = 160\n# oid with modified node\nmsg = 54657374\nresult = invalid\nsig = 26fa8cf7af569c2822cabe48f61d0a725c677520f049f3bb6545983b0393380c6d797f47bbe586371757b12ad2edf066455b6d669fafbffeca4f8976e01c3635241bb31a091f608df69e7a4fda3919bd38e2b4d2497d7e3ff55563a2c18d39019cb85a5a3ff1113c083cbcfa1fc59c6585ce7e8d40f5b2b79831285f7ac420ac2a9155aa15403f33c10b5a4f9449b1b7e8fbc7fe7d4fb647c19c312273026543b88f6bf6e8712ee5d757f9446f012551f6b9c5d9d20900fb84ff2d19c45e36a2823855e5ba4eec814f8405179606a2c152107eb9f0a655252f28d500fb1a2c60c2ee9bca94a7b121f96caa59e7feb3b4cdf6ff89d8d616f50fb2971ebec970b5\n\n# tcId = 161\n# large integer in oid\nmsg = 54657374\nresult = invalid\nsig = 64ed62db69a8e5d33630cd6006d25bde415234199f7d069dde904949c952fa0a83b49892703b6fa68143e0a7d115cbca5d3aacc0272c1bb54ba657b4d5d7c48cb5f204439cd677f2f3721acd1cb721738a47c5c88536dde522a42f7a4153b36f98583cd3ddd5189f317fc670b19fba8fb785e8522b898fa3c95de60990c5ed3c773ad51f73d9b2ea9e57f99f3009fd6e428ac5e790f06b9a2c14f63b3e7e251a8e4866e9225c1407b66d52753fe7f1a2517d7a4725727ea02241605321d2d6021b3bcc16ecc7abf7b6e74a3ddcd92f943b343eddd77a3b7530f451ffd7e2a112876c20bc250da515157ce5b037b68b7f610983d77c1e042ac9cce0712954a885\n\n# tcId = 162\n# oid with invalid node\nmsg = 54657374\nresult = invalid\nsig = ad31e316059ef9533f8f6a5aee91fc316fd7de2ac1b3670fd5d97af17948aaa934a4f0678ae85f82a74c9ef459675ce352183b4daa3a49462af116509f120fbe02e14c2de7d0f790fd211228e491b8f06f0d0d1978036bd75c573037c43935991cd75c8518825d64bc309014a36a5497abda965ea1b1fb67bfe672f0e0de983bb1e83054d089f3fe5a1f531c497ad89eaa03bcbc7566d2c64d4929e24a3b4227acb540c9065454b842957b8db45e52f4f29292ed7185ad32a1a8ba420ee21987262b83e06d62ff2d3a21c20cfbe629c68ba2f6691181b4200d2f960dada8fd309a7363f1958873d16a87767049bed08e465450ecb234547b9a4e570b7eda81ff\n\n# tcId = 163\n# oid with invalid node\nmsg = 54657374\nresult = invalid\nsig = a38dcc4e8070333703ce26a8b1eaa28d242bd5ff4854fad67959caae66db5e6654aaabf81eaf31441b8c5e7419a3ea5b04efdea91fd1910b5e5c6f02ff77b7cf42b2efc55b03407363069b8dd031c56d6d0ac54838760d7ecf9f3dc03828b27a73b827f394700", + "558f160c196503855c255332efea838098e637cd1c7eea9e687fc552b5422a62f6c6b49fb16ad56509dca5a9148ed9883f1d76453f8d607d9fdb7589f4b07eecdecca950e58ccfb9e7784db9592b6406691a413caef5e994ca06f21fe61f0986644be041878429d721e403ba6ad8dd8629eb78cf4fcac5cc42ec03d51ab64c051cba22b5cd4b160aaef28646b5776a19605cbed694e0d6310c5\n\n# tcId = 164\n# long form encoding of length of null\nmsg = 54657374\nresult = invalid\nsig = 3cba108ad11cc9c6cfb4b849b1533c37557dd1ef2e201a78da42e164458ac54a29f0b11b1931e72f57266264584c13e910267e52bbcf15883e109a45ce14a86ac8e700cb04ea0ccccb55b01ce699275190b98c77981d2734d35d8ad41f94edc6481cc831a44d38a617a32855df03fcc44914e55b88271015c971bbf051d878b3ae7a8f53582ac8e2ab5d10e5023e67599725e9122b8ec42a96b40410edac51b26bec597b727404a6b1b24807e3df2fca8847de8b7517061edb009a40c8b3aa82cb22de080d3f7921c504965d5a23887ddb54100bc81894991c1ace0ee2afd1c38c554fd00ade0240c2067f01977326916d1708af027453f734b0a22331bc9453\n\n# tcId = 165\n# length of null contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 69c99cb5b397c6f9fa0f38b0d311f8b64eca97b578302912208bdae5c04244da7cae594e59a6bc0935b8878b7a55b90acbe73ed2adfabbe561cf104d2a60aae3c4fb58cb69a11ed739dea095c224c98bb0fcbddd44d4e1e4b71a8681730c4605d93a93e40e27e6b1182c57fe5f4332898872add7e2e7c3b39e0b45d07ad7cf3c90ea5bdad70902533ce78130c74ded898cad1d1830414951f33ecc0119ae785722d1d4320781178f393ca1fd11dd96da6f44bc586fb4b5a911fdfbb87b7d88833a9a1e036405e205013e2bea23e663dbb2fa813f1d8420f1c57b25dc5bc09fd7dcf99d0dd4a5b3bba8ff2cfddf2f9aa9ea78b8f4132cf0f373157b97097fdffc\n\n# tcId = 166\n# wrong length of null\nmsg = 54657374\nresult = invalid\nsig = 278b61e00fe4e47bfde76cf6c436bfa0e7fed104493a2457ba41ba5fa430cd417ba2ffd345b27d739f6fe7b414e9498e1e44a0a5af8af2f9091f4b42470da0cf09fd1d3542f8a991f4a3be0ac6fb499290889a0e5ba595ca1ed9d97f4407dee17867ca650a49e42c701e3429a34a8bd8e934aa8d107f1761a6fe774c70a974c4ba30990b55a082c87f39266b526c13c4021918196797336e49de36844c908234def2f66aa82e84715834019cbb906011d8bdb29afcbb31dc7503ede0bc39124ac7fe054536d4d79d99186542454253f94a604559a6e992116230c7c9ce4137308b8a091f31843a87e39e29c4ce1520803beeff3fc668741cf504754bc870908d\n\n# tcId = 167\n# uint32 overflow in length of null\nmsg = 54657374\nresult = invalid\nsig = 8daf99c4f0ddc3b0eaa50d674076e2806d744bda24522938c6e4ee2970a5079586d866f0c1abe824b16d40bfe0239aebbecbf67a9155b2855da4656a15d23fc3f1d3518567deec75587d7ea77d3b510b9dd2b1672c8d4774860535f8690a286ea8da3636a1b65f38689b25e9e9b0ddadfb52a0c60ac90b376af968fc654387b5d712f93cfcad8f571ae550072d42b77e439cf28ab0b5857646b4bf2f7b57af7f0443944943828ad174780e1ac0d182fa92cf992991f8fcf2a9d5fcf72eff4ec1847c30f268092b87825fd5931e5306955fe0457e1b9f7162683218f6a9abe5213442a7f8f6a5f4dfbc6084b1bc01f11558fb314a0f07b86b0c6538cd3c7d2fb9\n\n# tcId = 168\n# uint64 overflow in length of null\nmsg = 54657374\nresult = invalid\nsig = a9648dacee46c926af22555c2d4784f01f3565949f177f5cfd4c31659186645d115d4a24dfbca04b583ce8f0c1e452a953fb081fddfd61b9ad9e59df2d52be9a6ac1ecfb58c211a8182f93093ff4f14f5e729e15dc0690aa612a09dee2ec44ec05f75ddfbc0b5a88e93e098cb8b0f7b74a3dd07ec559f964962f83fdb95ed913f2603ee50b36482e8a379522d12c620af2b0ac7537a95417df11430a72f72c0ab16babd7396e0c348f033026dc7239e2a61fe75b8ad4ba4ed154bf05cbfec5260f1e4f2cc0bf5f39542e12a3cc8e490c20a554d3b9afe73ac65c0a4c22bd9349ac39ee25d0feac57b6d5e065d82a757fd1fea928a4e741aa8ca724269415c1e9\n\n# tcId = 169\n# length of null = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = 7d2652c6ffce45a2fc4d740db90e1e87795e38dd5f58d3905b9fd41a2a49f3b6c3c14db49f8378fac35cb67b3593a0991ed4c2439cb7890ef727b94833e455edb94b11c2b0cd7bf5c11f8a206e62f540928f873fc6c6b0ea4e520e85f01140d21ff2ed65945e602e09d6880c275fb9cb0cb9cf7a85dfec032f29d5bbb4303256c0cd02a99a3433186558b0ee9bbd93e5e2a89c9ac2b8f74b94e0d9b02438d1bb54dde5424893683f5e74d9acd1424456a55f74d0654b20f55d199d17d5b3184930d5f95068f61c6d1ca4b0e75f01d56fddeb13a9fc07e185b514ec05bc657f97e1ed7c25670a1ed4e16172ed2c19c7521914dd3001d23219c8b578c566eb2c1b\n\n# tcId = 170\n# length of null = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 6bbfb1ef162a8cc8c140dbcc73e922e1b25c0a5f29e59b879315e5336697f86dcffa1f26c435ef3f38657a501e1a3dca7dea9226ae179eb6e7b4604c4a984da95421676c0a1d5b5ceeedcb02def8ca2e90f657b257695e7f87aa948c7d54570540657f8b79f3622347d4c3aaeb8c8c72abb45a156b7facb3ec3c4abaaed5491b84263ec9614a08dd4ad2fc81682e11d834c328ab21bf6af4f25cf26b81032ef1aac9edbd1879b64e04a24f36f6bbd1b317a58fbfe6657a4450deb0b07386be1e4c9f692d6e96740e300905fe7ab3f48ffa279b581b98afeed03243779127fe57d97d7313ee6b2ffbb5ec7e2bfe5d1509b9e8a794cc3cf45ef488874c3e494214\n\n# tcId = 171\n# length of null = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 681e2eb5134130900a52086c86aa16e20c7b95e7cfde30607e84e467fc67797d01674240cdb189aee160f8574f773095200c66c96507524f612e0d00adc1b4edf4c5f6c3e499a0bcb892e917c01c2c0ab9bafb6ad219ecf4030f6aac5253cfde1c1e71f1a7c1de03e65f9751d3ecdc09e4b499a96f9fb22da50a8ee8f4d62c9b67281848824d787c40fed31dc0036577e17c2d9a43cf7170c52ae92311725599d51957364da73424464d63c0edb55e79361f7798dd61d0c4068e4d0821ce80e27054459e9ec3fc0f202e9a30f4ad01747c6ee854b1f3615059d4bcce267a857287e7a9cc6058836af04d9f8d9b4adde905bb455901418e2aea9659c65aca0cf8\n\n# tcId = 172\n# length of null = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 2021ef89c0db9b47dde3df73014ec88ad9d33575e64ff6cbd46201b45811b15f197594de8e35c26139be07132600cd48459e0439b93c2fe734337c914fa87c3913887275ab41aae8a70d60c1690ddacab4711ca0f1949fec70a7173c39116992c051c5802d1c1f005cda7f5b1dd61a8ebabb27563313f6d25347654c64437165590e29e78dc0bfd5491d02d6ed45a0f2ad58c46367670876050ab385f7af6e9f9bb06b279e360519d047296ca055429935b0a96d6b1d6ad1e77c130bd99db29531b0bb6a6abf3bbe1156217a94d137a76736cad06e5d53b9671204a49d54bf5371b8a3d7bbaaffe7871dc8c4ae8165c70bf14dc6ffce5ad74450a564f21f59af\n\n# tcId = 173\n# incorrect length of null\nmsg = 54657374\nresult = invalid\nsig = b298cddbcc889842ade9fc8a116492416b2fbb01b3f414e0dacb2a17d386dc26b1c046192f70ebcba7475445c7794e137afbf0c252077272b645a91b9cfd8312a83d75a696c777b762d832272c544ae96be8e28ae5a639e7581b1bb1c395e693c0cbfdb0f2706e2b93134aaeba76de19674c6a0317eed9b06119fd3025a3141e06211047468e9a59fb8932dee92db824b4f3a8a11ef4bd0b3a015d861ebae48f842203a79a66395da42a4b2f943b51c8824eadc11cbbfb34c4a82c553f83341cdffd8256871ee06f160852ec6b0e7a79c1f06aeaa474efe6309f7caeb4a26fb33364737496f233ee6fafa5e13dde525fa414078271cc439fe5ad0a52fa6401ee\n\n# tcId = 174\n# appending 0's to null\nmsg = 54657374\nresult = invalid\nsig = 202c2fa04697b4c4f5b9889e67c90e597c403fc7b97bf43f3b7fd9bf648bc13db56f02aa517cc5b8b79ff90529528304c877a081a634de4007cafd341cdc19152f5d117a422b5e2df3f4368f0aeaeba2e242823422e3a3e896474edbc636b491baf44e032d5f671f45f599761530b18efa0300d56f0f141b22f0ba9a8187dc771b1575ddac950948cbc7d043c1686e4ae22d093ce4650a99d88752a2748285e935d46ea3a69e84338e1afd57fadc2fabc1dded35706759af7ff32b9f75664f50ffe23700dc46eadece6c5ce271208326f9342e7a63c852463a156edfca011df3a1889ce94fe8be66b125c80540de3aade0dc8bc1baa3f33a892cdd6099560562\n\n# tcId = 175\n# appending null value to null\nmsg = 54657374\nresult = invalid\nsig = 49a336a5a98444fb1617e4dbbec502ca47a888aa84ca700c5909da12a4ae44f8831d2e42fe711c5909533885837ef60be1f37acc7a9a2023d63f0f5252473568aca337f672983058c35df36c4880b17ad15b5e2c1b289ca30e9af9566b5844a30685d59430f4f399188a22fbdd9a892415a7c169cedb52ff274b5eeb25a0f1f33e327a077a98342ace7227710a3db891f579315cf772dfaa142612f5bdb612fc31d940cbe338e6fbdee76ee31fb6471215f176d2f3c884bdb5f55444adf0fa6ad4015b25f494fbdb5a2bd7622b2b9f77b84c7e37e5df8ee553db37cd07e1f0c8003184e3f6404efe27341f41ee9c44f5acb09606ea686fd79108c9d6970ff80a\n\n# tcId = 176\n# truncated length of null\nmsg = 54657374\nresult = invalid\nsig = ae3857a0e8604a5e8bf4e70aa110a9973da8d78853525b265e9189e7a495ddd200c9773c2b733a50f2e748224966ea27c2b87d9d15355a9b65ad02cd04539cf92f257030ba50e63269c5586a6103ca8abbc3c30fa9d232737d42af86a598ce4c8c591c70c3af322a29397a17c7dea43fb7354f8bad1c14e63b9e84909dec485e17e4331921d091bfe604d5aaf14b014ccec2ef23ba477cd8cda620d1c44f5d9c2e67f96f0a9920ea866cba0661f75a687e4d08e731a6e7bc52a79e08210bb03a33ff72e2b791c3baaf760dab4abe08c8d2f6775b03a3e7024cad124b5bc77312777bf24633683cfd033b459ca0115503a886c76e0af975f93a553616f3636154\n\n# tcId = 177\n# changing tag value of null\nmsg = 54657374\nresult = invalid\nsig = b9965f3c8202794e341e140f1801c29966c67c758f01caf07c0433821f803f6", + "f3bc932043a5c42d0d1a90c9687908c428c3bdce32b2756652862c647c4884af0ee00d55bddb5a56fb9c06ba0e29a3c4b61febe6eb09df43c607f8138d7d0ad2fd49398e69d6baf9764cae101a6933c430a9b45f981769257fe3e342f8835ae8a1129787069dc008dd40eb039cb0e8e1ce0965a98959b7e69001437567d0f336666cb6c8e5826b12bd5f195a18833428dbbcb1733642d129be808159eee346dae44e3f5468859c34af260d2bae45b92e04ec1b5ddaf950b774333c4b433c797ae1ad53f4d5d4508805d663920c2d9b78517dade0d3eb6fc17bfe08d0b2e314c97\n\n# tcId = 178\n# changing tag value of null\nmsg = 54657374\nresult = invalid\nsig = 4421d6cdcacef33e31663941531d1253765b01cecc92c741fd5a4c254f088b0d95a478f2ac913f408862b107f82c09c11867e3f27e34a0c1ea72010224c199a942383f4f6205884751091c9f4b190fceb7eff09110fa0a1546a857b091b930326a1f774a0185332a57185df89196ad4f56a0f8394fd6a49a635ebde48bc8ff23c925f846100ada2c3bd40f7d1a92fc31c1327af4d40933de0ab0c4a94d0d47c4d53e956716ec96cffdf0669e81bfe9552df8dd72a687f670896d7279b4ea5c9bfc26e93cbe50449776ce78753738cc9de7ab7aa02130efda3599ca0377346ab3b71bc31d56a8eab581ed70967e9e05463e19ff372130c5a1d9c2217f0f5a3f58\n\n# tcId = 179\n# changing tag value of null\nmsg = 54657374\nresult = invalid\nsig = a71e400721490c8e2baae3b0c49e3c3af9bfb341db3626cb22d2137c5989081402e440cc7e0445a447e5371920a9637ea696a482c0ecbd8eb93a16ab1ba991359e5bea0f6ce0c0ecf927bf8dbb543e307dc17840a0ecc17eeb23caae349e1f12f95abe10fb85695da43e8688855bbbfa842b4a73543fa61ea8076ca3a63505430e7723b39f4859e1cee10e558f2e54a671ee2f040f1eac7d5464bb8482dae2690bed114a6e56f4816e7413ad6ad05cc803446f65c5bdb596a6eb63491709789ddefdb51d461abc777a6a0306dd8a83a6a7792c42559fbf426fa881e55d45a4d346b302efba670443570bda58b9963abec39e6e49d2a17ce572c16446564ae339\n\n# tcId = 180\n# changing tag value of null\nmsg = 54657374\nresult = invalid\nsig = 0bfda5d7880717ef40cce0a8437efa8404ac1ead0472a7d4cf54934f8f3432db4db9ed4c8d98cb606229902b383112dfd4fbef54a28e7cac91338b1f591e2de4addc08943596058132b3a75442f44ad4d18b663b1c1be67c00aaab52e92d87759dbd89b386666dbb4b67429267d25c1ec12ce5cf03e4438dedcdd591c442459eeb86d6e74a937bd7c470ef90dcf8cfd497911413c4a817e7dbf826858807059f8426710ac582ca9d7c657d22a07289fc6c1bb37bcbe27ac755dfc50a54232c16eadf3b1694827ce435aca9061d21699029edbcbe05524d6bb35a866c78122f06f45b8a3615ff38c9bad24b9127287e5c46b73b7435a7bec837c4336f61e9fd01\n\n# tcId = 181\n# changing tag value of null\nmsg = 54657374\nresult = invalid\nsig = 05f2928db82cd2f734f233d59897fe873f57714e5f5abf5132b33d924038a9d0616b62aa25b9353e69dfa17528945043da1d38c96bb6161a34c2529bb32d83fad6b65c0d186105afd1f27f92626860ecf18c7c865a02c3bc16a89c38fa9449d6e23cd389b6083e245b894c52507d07adc123c131998e8dd768b72c08a94bb709ba773d0216c9ffaeff15755ce005b8dfb03d1edbe75780cf3c493767d00b679facf4b188394e3218118d39bac152516dc36c4cc5f88ea9066bf3252670a5714fd5021688ac6b94491012666f0a41463ab265ed62939320a7e3c91298c82ab31f84a3afc62fef61ccb03c011c0317a93728b896f6f8da1ff4e6a04df5cdc14097\n\n# tcId = 182\n# composed null\nmsg = 54657374\nresult = invalid\nsig = 1b02fa06a93da1fe5b74c877eba5629fa9469b01e9919016717eb8cd627f05fcbedcbe2fee00cbf2c954fa7f9d6f001312026b96209fe551b736a4c25e9203be7a706ffde8df35dc7db4add2ae9aa3ce76bc055b5fcdb057139d521fd94a241b2571fd8b73d7e07502819291b226f560b01c0aee7210bca486f623b3f7f84b098bc7bfe9a1a46ff2b6d114373ef988cbcf8d87b3eb7b8374b13b85650b9b894183e589d1ae1646c144a3e6054f7387c548632870f14842683830ba1ab80789e3f8b3e65cf86684ef73cef5dada6a93b6dde8b836ffbb79703b39c3e7179055ebe2071d19a49a8b85af694d9d3cdc0a054073a579e054c76c74d851cc08a95a2c\n\n# tcId = 183\n# incorrect null\nmsg = 54657374\nresult = invalid\nsig = 5b7ee2a4176836b60e6445dbed8ee5bf54f1eed2362d7830a1546c057ab9db845d21e05d9a46ac1fb3b7e247688ac4eec604100ca32bcdb1d5c2eaa4fea773fe5a0823817bf1b3e062b2c94b79d872b235e1bb4d6e42fbb3210032d071022074a897204a06d4c3dbc7287864d2c27f622f7e052c2a8ac88c693f503ae34e8e1f08495435e2439a2363dfed31d6276c5ebf2def17380d28a28ef8964abceed94050112734a6d5235316f7519c1df4c377b65e2f8755f4a3f48de8cc1d67dcc5edc05c1493e4099f83b2fcca14e727c9e3aa15a4847548683ee0f188b83b7613ef9ef40966771f2dba53927715327cdcc9cbf9dfe5597b4af4765a9a35445989f4\n\n# tcId = 184\n# long form encoding of length of digest\nmsg = 54657374\nresult = invalid\nsig = 50c6c70b2cf065c62b8b69884ae779e08b376574fe9307e2dc4ad58a50c5b2a8b74c1e8929b190045dec835e5f26c73824ddcf1a4b63f54b9f90c5f80c36f6a0cb616fb8b63926cca91c90761f960b83381cbbed3f8ee83eee92324fd9697b7f2cc0e784c956354b58e9243495800235156ca1698c407dd9b6332281bb5de1ff180dae7bb3393016e6396cbc7a02ca159b5eccee507a36ccb9338623e050d217be8d9826d0683d59c0acbaa190ba91da6b8579b6086d86d32edfa0f6f17ea5a58d3b8bb9e06ac1517eb66a8fb38094ee19e22b3d6d3cf8c1d001635e3c7e18823b69b9026d81975cb209024b8ebbdd88accbd9c5279c7a2fcd824697907223ef\n\n# tcId = 185\n# length of digest contains leading 0\nmsg = 54657374\nresult = invalid\nsig = 29a239412587861ba02da5cbeae093ff6217ca4b1c80eee56baba352290d6cf721260021b3779a009a3050c2e5fbf19e1e717f906a7f62e52d626c4a31e259c8324796e63ac75bd04081cf2d1f22a5687ee9464cd47ce491eb7ccace2b6bda1ad3c99de2b4dae26021d08dc270a2e84d4467f7a6a2cc59888f3b74cb107311c62ccf5f327c75adc5bdc830c2bee5303a1c43cdf80e00374fd3601f122b19ca4b2f36476abbdd0633561eb3f05265282b4d637647a1e8a2be47b4ea40e4248c3e2541950ef2eb98a487569a35d3c8d8fad28d42ba57e3134f828aa1222c4d13b6fba906086cf8f07f5f3ad539cff8c0cefaf42d89a884444e62e408e36236e70c\n\n# tcId = 186\n# wrong length of digest\nmsg = 54657374\nresult = invalid\nsig = b9709d62db65f1584a5f0dad0602cf2d1ad02447289312f59d001fac696d5b52ac9311e0e5266dc04f5a382405259f6568274a8aca4782d5017b97c765742c6a3bec33c8f3cde398d55bf7ee0b2d3fa768b416c0b1a58e70b865c39057bf6ccea37112ba2d277159ccdbaca928fb4fbf5970296462df7b8ea7715f76c14bf1ac7e4a48a6086e7ffe71653e4246aadcf97a9999782596c87ee5098d788a1a82c2c52bda65ff5c417f9583537aa52c5d8151b3dad189dc0f93758c9e3d45a216359f9952388dfa3eb7b5727774815647b17f6feb39d963340aec6b37507a349eca6c677fdec97d9a5d21a87e999573be5c90d71cbb1b58946036f3f4e6c26dcedb\n\n# tcId = 187\n# wrong length of digest\nmsg = 54657374\nresult = invalid\nsig = 7cc584726f5874d041a892993bcac52a34e71ba6fe4c3db4d48960b1abae664549656af526b59b3018fbfe7447c4c6730f0e93cb148c0f0fda55fa0a93aebab07519123805ee1d551f19c4c69c09549ae56455710cf7b5468206b820672a0d7221fc7972e958e241d4ad164ef1f90cbf769a1ccb466081cc60877d28a05c91f90eabe57d9ff8d097a3a1f59fa69761f0f3b356c2ce1fa7af8bfc70a1c4753af9c715387a5b3249cb792532d1cba87be23624836eb33f0074e927122479a9d71f1962ee6e7e7be1ead8a514bfed9abfd4cbe33ac2d3adf438bb86ec47734961292bae4b61224e957e331b794c22066cde9e51847dad897e7c65d35c98803830f0\n\n# tcId = 188\n# uint32 overflow in length of digest\nmsg = 54657374\nresult = invalid\nsig = 0b93779478f1ebd8d0b018e0db874d2f639834d48d2440cf5215c9b914acc3a7eb9111b5f77d605903a40c7020ec8a4be9cced3714df84586d5f9e0fe44fc1c61a0ac529e9fda9863086b77555e68e290ef716b9add9455b2349d9e14d7d2825af2ed0f619636c50599616508c79badc2dc2c47489028c5bd793022d189058f559dc272a01ddffddb8fee9d83c259cabecd93398d48591d7acc2787e1b8598cb0218b007440ee11733100ec3a3a9749ed81b3b62d4b9c32dddde30740c4875e451e3cf89fe5a970bb92f4065aa7d43fc6e08eefa416aba932a7bde5a10df11b433527bafb2854439b463f6a0a13ae66265dfabaeb4d8de6eeeba4de45e0be421\n\n# tcId = 189\n# uint64 overflow in length of digest\nmsg = 54657374\nresult = invalid\nsig = 174cf250f8b41af4e2bcde276dabe55d193d51d80db308ee072cba6d7823e49ea26b32631a18316f48a8c933ff9660352917d5f197d44afbaf89808fdd16853786e3cb3a348009d58056e3ed84388ac73789732105e0c57fef0362b38ad103aa7eaaff599fcb07520ccaf39aae20ee0e1bda9a604e76646c72c9b4156efc0fc4a2fc733a5c080f50d9a5bed24a35ec863bbc7297c2a7ffdee9c7b3fd614da2466b9e77a72af6d2dba40bab35235e14e520278df7260b588528f0b32072aa532d09471f4e1992c8ff3534e6d0723c1664e8c6ec141eee2f7439cd57cf167f1b6dc681aac0a6ddfceeee9a81c53845ab87c145452627547a0961e0fc89b17ef70f\n\n# tcId = 190\n# length of digest = 2**31 - 1\nmsg = 54657374\nresult = invalid\nsig = a47037577d6a1480d07bda7574648d9b4d613a6d112f7027e873cca188cc41ad35cb8c931928d2765b60c21af9756b6f0acbbfe0b44b4eb63abded9d8547fb1a37706ab562b448b47f29a81673e27345c156e0fa29a353b90c3262a8a48b0f002dab41aadcd0edbb016973fd85ca98e53116cc3a3cda5754c76ac8c8e44e31aac06d1e248137ba096237d14119538f55a1cff1c7a93e1095eb40918233e5b33e092741f658962355541af6eef3bf3b84e9b87fac775f53e7bade8581804139b765090051474b08c82555daa5407fbbe998f29fa337d21b24b6917d4cb315d035dd397a84c47b6b806bd1e7812795d653073cf349c57193397c542f3fdd512bcd\n\n# tcId = 19", + "1\n# length of digest = 2**32 - 1\nmsg = 54657374\nresult = invalid\nsig = 790911646b9fc46991a8c1fdd0c7a5a8b45a078305d71eafad2dae2ecfeb5f7122d1ba2c77faecd5bab50b05b355740f93c6cde64c42ddb3be48362a741fe29173d58d950b2c242753ba3db6f4dd576c2240f490f53ccf9b6e781fc610966b80cd9700f41c8bffc87790a01a45f3623a82167ac42e52c5ab5ef539b29f5d19449e9fb0b6749a559010daaaa19d15f3fc53b58b1a912db79a46caf10fdd5ea81256842acb1e06282ee66c0bccbd69131b532b3cf7ef72fb725c910338e24cdf2653d443f209efbd03573b54536f98fb002e57a27f62fbb117cca57d9d6a2ac04cb0211e227682988c64421a5f8ad6dd3916d0d84b441847324c03451a4ba24fd0\n\n# tcId = 192\n# length of digest = 2**40 - 1\nmsg = 54657374\nresult = invalid\nsig = 876fea7a5f814cb533109f000830bf5d8776d57b502a86f1df6e4dc50125a18e08f267edb7abe0afe44a5e75e8f4fd5e11fb2691fb73735617bdc5dc270e2b51adb064f5a560a4557c0b925e6af7852a110ac3f8c33150d3dd1d5253b7fc69d11949a8e80aa2e240cb3eed5a44afd0ed7a651ff6205bb80333cd060a2d2dbe5e37de3fe38c342c1635d553a7bab6be1b6ec1bbe9524944ec967200d35bfea076846b8460333d17cc90be7c6862695fab2cb5d02beebd6b1b86229e48d64f391ae3e506a7d252ecef54b61d4c186ab9fc8f2b32e006d07d9958292b6f4735a4c4d8e63713c212558f73de273647dc37bead249379831979c8062c0768148bcdda\n\n# tcId = 193\n# length of digest = 2**64 - 1\nmsg = 54657374\nresult = invalid\nsig = 4b06f62bb29091d0ae2dc52c2443bac02e9bebc68f84bd0186e0e565483db3fdb2ee8c3bf17e2fc256f7df3810c5c597fd03dd65d9726f4699734a89fb5dd88176ded8f2caba4c1a869ba85ecee2ad4ed782006bb5d1f6e9a8ced64a9a74298a9c512b27cdd93b7f3fb4845bf2d95af41acc95a43fda8784424d3ff5ce18292abb0d43ad644c28ed076011947a317a5543fc48becb1836a8f57a1dbebd5dad249a00e01c102b98a799b05c2a08565c5778e629264727a9cb8fb4ecd71f8f3db26e3ebbe59812462d6c2e042a4f92456df56cb9caf959ce3181aaa1956109a0dfb8524ef802891e80dffcc2132ee1cf380641c7da5d1e3ef1a3b37c8b9a7d4c05\n\n# tcId = 194\n# incorrect length of digest\nmsg = 54657374\nresult = invalid\nsig = 8b15577f817c9f63a94b9633fdd36af378d9f5f471636c7b518d467a37aacb5013a3640d4ad384286c68dec71ac5d6a4ba2578fe2c61d1db0922108bc777703c8f09f251cbec3a6d2a0e26d7e4f271efcc3458e96c710cb8b120eb7d5d8a5a535e823b42d6c3d59f8647bb244eaedea2b91e3b4e3e4fb9f2b0fd4d877d4fc10f135c54ed5f6228a48605016c7348ac4d7c00246be44d9e8660616bfafdaaccda021c33bbc564a5594ec98472b0f559dc45ea57b254a6397685643d1fbc1e074fcbcfcbc5de4f5833a7dcfddef6a1af5bafc6687ac8664d9920f9be8d8bf9e3b404db41b1d3ac1c87e9627a4b69a2b04c0ac751eaced3b7fa618bd7c0dceee17b\n\n# tcId = 195\n# lonely octet string tag\nmsg = 54657374\nresult = invalid\nsig = abddf6c8fceec1026b0fe6799db56b01e0b2eb066f9e5d0821f6a954462b71e1d22ea111f1b69bb86c1e4e77b6cf035573b9f6e0894ca4bc0990f9986ca209ee41bae1a48a764c5c464ca4e5de36c8fbc47dd8865775f9771ad6c6bb82f6b2802bd045c1f2d4a1845798b7dc16ff37866c90a613f1d019e53602fe2c99ec4650360ab69eccefaef07f9156f58a1f5f65fa00bcc2a544feceb70adc74e6710ea01e9ef4829a8165d7ce24647e6a8770eb8247bfa87de15ac560b6dcddcd112c24bf9c694090060bd9f0b5e50a59ff65c135f0bcc527c8793f4c84769b7461e9e2d755f99aa13b4c938f8fb7816e9d9f7f91159779b9d7749489b549aa263d8d92\n\n# tcId = 196\n# appending 0's to digest\nmsg = 54657374\nresult = invalid\nsig = 35446aacce869a91a157aefc5e3d4660a7de0272debbee1ff6253f74e38e8d54637cbba4412c0c211589a477eefd3dd0106cd878c46870cebba6e053a990f3341647736b00b5691d6b83dccb6684ee35063e2da6a6b1e8daeb5739d96291522d7c9fa54aa7d9208b1d73828c9a0f657ff39ebd09c709a8913b04a83c7b610fba815c222db8a2f00b089768cb4ae9ef93441c1463a43a6a691b407b4c1266e0ad4e146b0f8d06ccff215d48b513528f7cdb53a3be1be8031a48d092751e195b09a65b26d63795020c2a887eb4af5f002944b878962cf87a08c676946290164c667a3817fd8ad48e508d4a1e4811ff85b5844ce0af7937eb48fb99e8cf7e154c4e\n\n# tcId = 197\n# prepending 0's to digest\nmsg = 54657374\nresult = invalid\nsig = b0fec4f0f9b06a684c9816bc221f888860c1e5ceb40e67bd440bfb322c6026120b28af4905183d0ada4043b4f4a0df4710b20f37cc5ac9c5ad391e379f12784135cbab2cd7e3770fe1bc68fbf5e0e07c4fa07a5597d5f5c3f682e57cbf047cc5d8de859e3e7f997fa91c4a16026f43bac22a7afebcf56c804f656ad510dd03e6c4cff8be628a9a3fcce0034105152ebdb148100203f17eb37b7165b03661e5526f4fe1bcefea270e74a2bd9afc7fc00e52c9256548f36db3486b7cdf6fa9bea4d558d592fc6ed7869b8a59ce26608d21328a0e5001c273c8d29e3350c9d69d3b4a57d5574f1b18686c66598ac6de82d50af4589d53f1c5fba9e103ec787283d3\n\n# tcId = 198\n# appending null value to digest\nmsg = 54657374\nresult = invalid\nsig = b21fb36d1ba5ac09f4bc9c9bb1c3b08ef4b5e39d5a13bb27de6d949022262723fc6f96e1d0f76bf95e1f90eca04fb20bc65262233f6335d8a0b8211f0e2481819607354700ede1ff85c8e53413685ac5d31db4fa5f807aaf6818b9531baf1555db3e062a3e74ad677e9f378bc6020a73673decc9f6176f4c2dcb02859932b7a7a9d12da602b668a14846eb8acd2abfa0952fe5ec78a67a8f6d751ba3b420464c10cdfde93b96847b9bd05504b1ca49121cc92db8f2b7a33fac17535fefe32028d0c1484f1aee86b4260b668d9dfba6cf27a7faf2bbe0df47267108a84bd5cf595f522f9a2ae52e4c4b7c9c08b39200683bd33043f14b562d37b910dd438f714f\n\n# tcId = 199\n# truncated length of digest\nmsg = 54657374\nresult = invalid\nsig = 1d582d82ca0b3db426ca8adf9465e46531e60d71b2cd7276f0d764e629a767e61171e1667a22c1a1404adf7e87b2617268c56e792d9f9653466666a09bc82d4c1c2c04fb9b8fd6c532f169196009598b6efc8feb2850f4ba8adb75d37705fe07bfc2e67356231f1845556ed8f3f8793f4c7e58572fe849ec0148a840e442968c1df6910152a5a4c0be18e3a7891ce2e16e53414366e8d92c1de75073818da1dde1c3c3f8f5c4d31d13da73bb507947e986915cbf3d9edf92a6bd17775eeadd9d5b363adaf1a33ccabd441267a476b314aeb86a91837b5c9a5d969001259fdc5a2b69982ca41405685379e758c255fcf35267dc2f1075ccb57ba0c339dacd7feb\n\n# tcId = 200\n# Replacing digest with NULL\nmsg = 54657374\nresult = invalid\nsig = 096a7f2148458f37e9c6589c25e4e90626468575849037e8f62534a01e08dbdb34332da17528bcd83683e1d05a6b159a8a629225e9067f20b0c7484bddf978178107128855f63a29c727d2a49ddfb650954e5c9131b98fd188858b595a2be7196921fa872ac945336a47224a4f572c85469ed34303bb23a5822b1fa87f5b5fa0a4bfbcd9927c32c32c349c0689600ab4f616f31dc19ba9b5e6f45ac64bdc8070863358949e10a46f2af51a071db4de3d7ce5a9b2d76ec66eae8d1e106edccf72d27159a113d888d2f3c73cbb738bd096fad53a7bd3ead255f928b7915b137152bda12b3365a1fb7f9c4f53cef8484b5bd59c5c34c692f6ad20e129651a7cab69\n\n# tcId = 201\n# changing tag value of digest\nmsg = 54657374\nresult = invalid\nsig = 5ac9934544425ddb9678fcfd28245b7f5568eb1de108e7d3e99e2d3810ee261b877073d32ae8abce7279f2177d6b11f36234ae2d9d03e4fa51907677a950ca4c644e64399ceed4395b18dd89a152f62a16520ee8ef27867387b3082db40e6462baa7ae6148c9e3e7d069d00431dff74b38556b31f3622b79b3714bfcfb6c662c6e92b3332f7e029debfe21430ea04fbd7cf75e410d1be0712fb5f754a9610f24f34efef2bf4690a589d387001dc652226775fb81b726b3c036fdce3a52ec7131d1fcfbfc2d6bb8434699d9905d9d7992d7977ce0a599309040ff4cffbff2028c9d6ebe7d0f9de0d17876f2da3a497b2a36170618c82e3f169e0ea0708557f1bd\n\n# tcId = 202\n# changing tag value of digest\nmsg = 54657374\nresult = invalid\nsig = 13731f7476ca8813b66d36cd6cdb93a48eb42742cca037b828774ff5971c173bd08e88542f2c39f53ae8700a56be54755b64e1e81a00097cad58ad21b2ebc59518ab6bc345db326572bc0b39572590c90b2b72894b33cb2fcc37fbe549405a7fc656dee567df49bcd93fc4d2c235e2d14c2107952de0e635ee93cfcd167d4dc5e3ea1dd0cf79973bc96cfe43a738be7e1304d4c1e318eb32612cf3d6784e1f842b8780dc5e3a8ec369eb8226ffdf9be69b54867f2461c810c74187d72cefec60a646c4a576d8ab977d4daea3422007454a306e5acbf3f7043d5d3bda70752e4979d1657918fbb863d4eb8eb58ba6f2a372636871b75af84e645a7f49e99eb300\n\n# tcId = 203\n# changing tag value of digest\nmsg = 54657374\nresult = invalid\nsig = 0cbf884a755f8ea52d3da21e3e88fbcbe2562d35440d1fa0f8c3dbd4f27aabb5603e6d1b172af543c6739c8b644a4f438df55be7ad17a82c69a03d08c628c8fdbb7d1ff9202a7fb7bd7d4f4c400fbcaef8aa463f1e0ec72b1df8834e07cd4f465a97f7129fe9221ed3205043d2ea4597b857088fc27e95da84900e87ce9578d8bcb120b23096b1f143ced492cc966e2ef60ffe9055f5d225cad682c12fff248347f234713970565c532cc2302965bc69af16acaa3ac8b59b9f8698261a1a6074e3a3bc2a6e87dd01f2c0f13a628c134aaf65500681f1a002d921725b362d94c5dacaa8726c0a029749f9ebb699028b48e59d22dac2aa27ffdc35648a57c57f70\n\n# tcId = 204\n# changing tag value of digest\nmsg = 54657374\nresult = invalid\nsig = 711f73de0bbe41e3296a1473121f47a735d093a06c9c7be63559987d98f5fc52c6dee6de2a3fa565e9dc6c75308652978350e5dc407560474ddefb45f8bdadc8dc89b5640aa8552117161d8da703b52948b08596b92dfb4d343320aff80af3507d11a27ca6d2db3e2f028cc1d53adde20ae164f602ee146bbadec7a22b36eaf08849e35425a88bc1d6c8f1434a82f31998f980579c287bef989607c0e09977c52932c9d1b1a7437a3c87d09d9ce521c59fc44c51a279d9d3c94c88405ad38c3122e2e99", + "3348360490e1698d4ab126b05066fbf764f259c69fbc7d875eb69a78bcdad95e3ff1eef50183791acec694449e6c944bf2bebc01e5f1cc62d60b83966\n\n# tcId = 205\n# changing tag value of digest\nmsg = 54657374\nresult = invalid\nsig = 3e85dff099a3f6cef0b15f86f749cfd21c5ca4a6d7ecdfb075a9dfce9e11240599be07f5200431771763469e1d13eedb3914c2d991fc49f32769ceca68e3de4ca53c1fee5f27b54c05ccc69d4cf0ad3ba62202bf7f1c6fd5cfebc7a8ed29e489f6350372f439f606d0b1e879438463b400704ccc2a323acc70ac4f46a621f0dcb49dad6d72cc8f4225dcd9e228f0611e28847745d0f24514506a91ab2a85b4f8f0fd02850c37e2e923ec14c2099ba90b9cf72ced38180d94cbe313215e19dbe46923e2d573115443f3e98bdb96305dac90564c4e667cf3430d174cd077c5533ecbf3f8ba08e7ac56c0b03c4d2dd0caa9d13c968f6a4e968418e42ef4f52aaf77\n\n# tcId = 206\n# dropping value of digest\nmsg = 54657374\nresult = invalid\nsig = b9861f3d1a03cdd4f49e90947a21e5da9fc1281a816a9f5b520a7de27740504d43333f5facf65dec5bb06699c37aa1aa911bd4e8acd7aaeeb6dbe50e577731b4babd4587504821be0ec4798b14124e9adcdc2831d8822e7768302338953584147af1e323a9982ad01cc79f46e239c804b6c119a022e1850f4445d98dc27e83f808f33f8c0c81bbe16d5f04ff0128e34d03ff6a65260a7ee6e10dcd08d09d9db7912fbfebe0304b00135ab184e063a884992ccfa5d64953ae98f050c751817629fd5491eabaa52b0e52626bfd025c926dbdc25af5727d92bad2acc5ed59f5f597606c9752579c57ed0e015440ac194228323a71f708fb92d5cf36c841e8a07366\n\n# tcId = 207\n# using composition for digest\nmsg = 54657374\nresult = invalid\nsig = 8729c630297b010164e90d0e99fc65eaaaf2bbbdf309f20bb48037bbd40e59ebd8d6fb7e23911051731b5ba5a8423bb3d0ab44bcaea5eb03f56eb8f3ead1c3fd252197fea478fb4b9b9b4e0649503d4f45922ebb72a4cc1716f914b3e8dd8fb111c9300e946c0eae83a2e6c40093fd1f55c684e4c4b2b0f09ecf03ef71a01449eb0cc2c4a274cfdd55efee7ff136a28626eb86af9d88c25bd0ba012d8a0218d43bb02d9b6b1273d3d2414789aaa076da4dcbde9444a151fba9c25ce225876b63b09e17b16e0e115a7db6860afd08c48ad37aa64a54d8b0230314354f1c943fdcebc1607e66121fdb7390f131ba6bbf8f88375497505d7d3ba4dd9761d842e937\n\n# tcId = 208\n# modify first byte of digest\nmsg = 54657374\nresult = invalid\nsig = 6385c6d4dbca9ee08e1f525a8b7915831a732854c7b26cf42681bc90dd49078873025b62e1830ba193445e129fd419ee12cde859032eefc5758c6c12ffeed3ed049322609d2665b5e1eead21af5f354acf336629e62cfc4a740bf9a51fd66e6b72287ed5558261252f50dc925417c1e48a4552589a7099ab0a3371cdb1c209573f7f5ac9436d298fda9606f9582e8c873420e7c4edbf5ead17e3c93fa3209208b91728c208b3fd10b27045be1cfbf242c5d34cadda97608271326444ad35d309d47f4add6bfc5ad95710db6d65f82a06a04bd7c71e335c2b86cf6a466c311f7e735b8ff8c2912269c3b1f2007f7d1369a55440a5abd98a46a4389756f73782ef\n\n# tcId = 209\n# modify last byte of digest\nmsg = 54657374\nresult = invalid\nsig = 1eff927cfa95030c95547b3f3403636ed63fe85c99e21e64bdd8593f56119329fd7d75f876e13317aafe540b79964cdf62330cf98be66ee41ec92d7ab9ba7988e8bf6eba3dc95ffedffe09b382a9ff566f07c61c06944de3b68dca4c4a3b2076e778286b50c6ece0dc066c29dae7d824969fecc6d5f8bbc2731e875ed9780428d53591d2f2021aa7864baac55d276cbb14098e9af5869e18c29c89d8732503fcf8e65a384454785ed39dbc516eba130e2add655a8e7df260a668ff9214194681033fd8b57202fdf627270fe4f63a49fbaffbce1520562ce53c9ecef6da5e942ad06c8ce3e673524b84c19da4f071d9d0ef9e24d4c8b0dd64627ccae7468372bc\n\n# tcId = 210\n# truncated digest\nmsg = 54657374\nresult = invalid\nsig = ae443b008918b477cc8f80c54afc175ea0935ad53bbb2784fb1948ed4186f0374b760302dd2346c3797e79a080461c802c39cd72bfc9101b408ddf8ac4e449e2f2f0f03cc1fa5dd77e72becd52a36da64150edcd290df30fdff2a4701c7e923756eb4700184af4e06078517385f9f52d650a46eb94393b37761444fa1d3fc925579133c85e63b25a7a7d1587dc43fc500e54a70ead1cf872e47b33f34ce7971331007e5e74aafe18895f4e5b1faf925437af5dd7d5ac520eee778752130ecdba9d33a792e189e9c8d95770a4d5ecfd71647c99470604b269f14921b1fa50ba063b47bc6c490e9926e4065d5602555e51c9cf6669ee53b7cc7cd0da607478a5a0\n\n# tcId = 211\n# truncated digest\nmsg = 54657374\nresult = invalid\nsig = 5189a516b2ff014f527ffde7cfd65cca11f0b907160ff901a51511d4b94317e86f3065600728ad0c43e68a6f1f7017708bb8dbbc84e388f43a9c83acb98eaa6b4532cc68c4c6a44f649989b5d254f89fec6de1fea45e3e5b83e562608a7867f0919a2320a120c871421eb164895ed4bae27d34227b1e8cfb600292d208cd15cd62068aff9d692ae8088c9c08a51202694faec5d6c78e995e5e013f931b8a6cdd726357d0d5c6e9a83dc634810fe383ea1a89adc42c2bc675f075e571ecd3fff8581a0df3f83b1959a5e64b5eb1cb9bfb5c4c4c17d47a24a2ab3da66ba62d54b74624555c19c56ffa94203cf78101d181ffeafe8e8fed9e0897b27a88419aa540\n\n# tcId = 212\n# wrong hash in padding\nmsg = 54657374\nresult = invalid\nsig = 8b009088b814c2e2a306b4cfd72d87db4ca1ebf6ad5f37e7aa29777b77d93c005922168e3634be085c9e4b147194046e38b7d32fe6814652672cc6eb724742a0a22fae278a9953e665e7351281c42e98d4fca8237be482080b9fbc471b9854ee75ece636868c6b3270dfc7dbb32cfd2e28901ff6ac699dd74d8bf096bfe89c22c228522474df25d13e5b7c1148edd5df5fbc06fe165729418221c610a8fbac579955b8625eeaa8e00aea009b42b2456c9316c5c005688bc060e61bf302418740f0be9b5a30df845608a9008804e89d1a5233d34b6fa84c3698451e472fedd9f4aa6ffbc9f4491256df7181334ff181cd66dce7dc66ef9d3c511ae5e6e3c88083\n\n# tcId = 213\n# wrong hash in padding\nmsg = 54657374\nresult = invalid\nsig = 68a90a62da7b0ac09e26ca8786723164c0e6535e82f28839d12c08348aacccdf0218d3470290665e6d6fbb59cafda63c9e50d596442b02f4ec7b55753b13b82b217e32fc5f3818e3fee1a6b89855f5902dcdba3eccffddb7491317961af36dc74f5b6a4477f57aeb28d57658fcb8e77f8e223d2870b730d53ca1aadeafb389d3f934ba609689ce50bf82b08f31dc2578d7f076d26be5b267e87d2ca4df8d57c112831f45c46b9078c3ec13b01f0b5d67e82579243408e4eb29a154314cd5c68cad6b7198a02c522d87aad93e17aaf8fea49d38e39314c12c816e73d997c0fd10cb12d47aa7af0e82fa4b939f1209085c01a88f5cecd533901d5b1ab2866e753f\n\n# tcId = 214\n# wrong hash in padding\nmsg = 54657374\nresult = invalid\nsig = a1060a690b31b1b2feba5f0b8ede1c8f025da644da1f1d66a6cb218226ea6751a7f391ad063d80b63035cdb991e6a549d85c9f569f7677a40becf0326cb93297e23ed49dce7a5c1a4866d788aec24d23cf9c9cf15783ff5692a579db8f11b7e1ee8d28aea15f358b4d01e127dc438f5edf53346744594c3f946492a39aeaa17352a6791a52d4812637c8612323a50af3b7dd4216100020df91b653e5e4772bca49750ab9844c8cf13d651541d2a1aa7c74a673e645971df9acee059fa981ad39e8011b06bb39a86cdbba9fa544b8f2460188ca04354a95effed4e7c5905d5bf25973589809360d5e154e7a3613c27f4c5c920e71996063c2f86c44b7ad12a376\n\n# tcId = 215\n# wrong hash in signature\nmsg = 54657374\nresult = invalid\nsig = 49cea19f5adb723c41e895337a24ced9e685736ec060f2aeef35bbdcf37741056d5f3ace051b0f6099585d82f576591da0c1139a590685b3e35ff9053bc6c3e381cba077700558328fa785128f78f5cfa481e6bf581bc9424f101cd8c2efeb4f8f00684776416c309d217df1dfde8f1e4643aad23207541fafeb5b7d263fb560cfade4792d716f68e7809cf8478cc4dc6a4c14e4e5df4f137d7a05270c6b0ca1f73e77eac07f5e7b60c8574b5c7487db4aa334173fbe03d93805bba291194f02f77ec0eeae2373ec9fc467a621feb77afc7d3757ca98b4f3fedbdc391f99df24663233f7394935b14eb81cf5b24d169cafa7506bcbcc2a4166fcf8fdbd5f7f3e\n\n# tcId = 216\n# wrong hash in signature\nmsg = 54657374\nresult = invalid\nsig = b1e5095d61e4a986fe3425a08401ca726bafcb778dc818254e7ea5d299a9ee3e8c303a51ce19644b60a7f6156850b3325f4ada0958ce9a0a8cfe2a7ca085538b9b9abcfaaaf7413c810d6b2c03b5a3bbf98faef5374053cbff979815e5f1a38980087b291e1cf1683febc32da71b9040bedeb014de01cbc794ee40c12e7d44cbd01336ee92884d60d20bb0c9a5fe4d7dbc93478dab044bb6f04050ee4a3c8d2577c0e8443781f1ba5d8e763ed7f879f0bd970045299d2e2bc00ae47598e822fdf2461343c5c5f2111b099823c35b7ec4f07d337e52729c19e1df28c4bab6e7fbd1abd9cd3052920875e59ad251970e98c7a944ee6ba71787f65eda75e84cd048\n\n# tcId = 217\n# wrong hash in signature\nmsg = 54657374\nresult = invalid\nsig = ba0ac1ff39b108015703583afcea5c777ec70df6ad11f561f23ca84eeacc73b7d93375f5e44c6c84e16273d442f93e36d474c7190184a0766e5b2bfe9896f0f0906a7a0c08dd78f0a9702cf3f706040893885f1e1da9cd01aca80de8c0c8197bb6e5e34562c37ff3256fbc6e99d1e9a7459a2cb1f49eb371a9e3cb1e87a460880664adb76e6bc3f2652010a7a1dde552dd4aadcf30366b0de3964e85d76bf79e20ced2aef87c9d31b4f2756cea23d9cef75ce07cea41204b42260a25ded448df639a0493d24262e1c411b7c294cabb56b95126c44d333385a63dbbf9219f22499812ae99772ba6c30d881c4bfdb3d074cc8f6090810546e64b1dfff6847a21f1\n\n# tcId = 218\n# wrong hash in signature\nmsg = 54657374\nresult = invalid\nsig = 4ab504da964bee491512b40b79fe9befa7e5960b142b619db35569cc9387265cc8fa8d4505b3b7cde5e884853bbea5d47ce7d60aa7e4c81853f0ee3f6b357dda5efe13119fc42f464b0cfb9d3506024c2c884eb57373e16611a6ec1eb803a61300bd248587594d081b501d5a141d2ea38d9ef69a87a3ee9d8d83aba410b8d30765c81f997d71457dc8ff1d9c3ed83f06f0156826105bc0a6fef0260", + "ba6fb24578de5f58e7b0a64d5da1512f525f41e987a27e4d59c7d4917fb60586535341bf1644f6bf6a7e3cfba1c225a66bd65cc90b1eaed3696eaecbbc24a318a2e2ad711af85b02ee730940aa3dcb2d87aa8dadac182b5eefebaa3e729204d04e8ebf09b\n\n# tcId = 219\n# message not hashed\nmsg = 54657374\nresult = invalid\nsig = 81c337ab36822c157502b85c88307bada36c39c4054e1be4b0f9b847e1cfc6d2c7dfe08df6a3a80ef3aaf6ccd0bbd43df5e2329e89378bce30503d3a619acf865df1c43c793776ccfa43f51e6135de762d0cbf05bdb63f664b6730baba492e0ecac1906a5e5200a9af1ffbe2fd57c70b98a608ee05c7ea9660983ebd090b77c7300de733adb5b0405cf4ef5c0131bb2452a0d10762fdb7ab83786ba3b3f70face9dc7477f3444c985bd9f0b0fbb011f855ddf9ac4815624c140bfa0fc898bff63699f4b4c87256c4782cecba69191d03d4feb158887fd7def30286950f352863069001431cef136a23b2ed2d886f2dfa36ec7834d94f690f66713cb49f84c941\n\n# tcId = 220\n# message not hashed\nmsg = 54657374\nresult = invalid\nsig = 50d0f2063c472a07d98a8a9a607c0c1b154b30622839fd571a3c4cb9916df86e9bda0ac79e266428cc3e709d9dc3bbeb0f1993f836fff5ea421d59f2f469a1b4d992e8d0065ac375dd192c1425da17ab9936bd3df49853b2ece3ddd00cfd5cc57c5629276f7ecafadf3e68057e384b2f89cbbe7d053add2ab8b979553e9cdf409fbadff045e6e0a5087566a8036bf430724b14b1b55836311a2670816b0561dee07edfc6ffe8d6167afb1be54fbd3c4f17ecc68efabc1edead2a1bbcca4bd6f9eb839ae45269d8c7554cd71e5ca9823c120ed78492f28b7fa2fa2031b2f61697b0f62e486d16f06051769a55cdbac2d39388d985797ac8a62a67967d3226f98b\n\n# tcId = 221\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 54657374\nresult = invalid\nsig = a5280543fcf9276baba49a297f0803ca4782cc05d35c53a7bd692b0356991d1ef6211efd591ef2eaa5d39b00bc193f3a5f175dd55de90f04396874b799374625a8af5ac162f9af79eb5f3615dac8a33c8d41182c6183db82b9e509ddcf4de0231e419d0e07487fbbb42d84ffc9b4f4c3ecdf6efe2efbfc64f3f665978ab6d210febb690d05a4c9252f97ddca64884df93fbcfc6356954ea7c4f486f2c201e6988400802904f61c02acf066698ff5af6fc8eaba4f81ec93d886a47e4652aad5df2ecf463db049b923a657ca629ba91ac0090be3a1381432ca2c3abccfb85b3c251776b910bd7ec4283d7493e309d251e07404324de24d65a3dfb8e3c5cb8a5a83\n\n# tcId = 222\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 54657374\nresult = invalid\nsig = 4f2688932d7bf6ec48e50c69933006d28b055aa97621fbebf3ca336536b8dc61172c8ad52e453c4ec203dbb2904557012dcf43da92f55d62baa56961701bef821240a5fd2d1735ae14be136ea92ee10adc650eff7ef6b5cb08c3f4a9dc17bcfc66cf50616f305908719f467af5abb45beea1835f95544f53cf2813394767959ff3440da42757bd135806be3ed2698ea3d903e0f2447916c94deacbda484cb1e074114dcf3b41bf60383153b838f018f8b2e35e3af68eefd202a2b3d7ddc1ec134fff746f1ce9548f9e53a3cc41faf2e991ea1b5860c55f5c000bff72f5524bed9cb8f9e8dc34713f3ce443d202c8ed3df13dec385e8c19871508804c3267b67b\n\n# tcId = 223\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 54657374\nresult = invalid\nsig = 89fc7f47e30072d2f485e598ea816be5a407427210fd3ecd491ad1a63bde51f49ffdc1969fbdeabc4b36a440ed4fa01b16cccf32fb87478646570e5f65ab386430ecdec93964ec2a5def2b0b9caec71b39d03be76f54f7eb665af9d675c24f9aeb390dc9276198d289806c0ad114f113f0ad97fffce9e673e793dd19b989b8dd2242be5061c5877698325b2d704f6c67c66b1b17c92ada00ef0ba306a8fb6c4bae61197dec2d7bcb7ac7215ac260d608eb6c7235f407e38776632638c431d5fd546b42003705fc309ac484dc99c46962b789452a595eaff3c0c9b7e661190ca0d5037251b58d0df2dea1209cebb95ced5e87f2088d021fd0ef0aea0e7bf61290\n\n# tcId = 224\n# using PKCS#1 encryption padding: 0002ff...00\nmsg = 54657374\nresult = invalid\nsig = a49994410ec70f260d83d20f5e6f281273dc9df9aba560c8859677a0a756b31fafd7aee913d2301cb66a0b78e0d7aee11ef2ec11757387a32b8ce66b57daed49a75b572e82ad23a26815261af3fb5b4d1d59e7a99483e068ec508a2ab915e7c17722e1d88ab92c0df59daf94da36f611232f40077b373af44179df00e69f3e8ad3e5d9945e586611434f8b7be9fed67f97d004c65b8dfeb91efdfb26bd0a5b3fdb4e4ce6d1accf5a6fe37b085c3694e79a858ce64224beec9f2220338ac5417a2925fa3c72cbcbef630926299f974882d2f3c87d136e90b8c9c0599a3e8d38a9a77e7b0aa9be7deec3bbe962422bfb05377f2f6b3f4e7909776c5bf3db6b4cdd\n\n# tcId = 225\n# invalid PKCS#1 signature padding: 0001ff...ee00\nmsg = 54657374\nresult = invalid\nsig = 412f631c6df4c4402f70528635f4ed69094f33b198499980ff880e8e5fbdd22236c7836cc65ce18c1b3f183b69a47c27f3699fe7477462fa8d17e8a247e6ee9e994037ade036583ecf4497c083f78db36a15bebc291f164568655c27752f2ad27efa13a7fb897e658cd9f6aa1515bd14a4793fedb7722fb148c3a0e48cae63d14ad939a99a90f1dd7a7c09d478c9217e31f083c12dd3395332af68a4231a15069b1f43765584f6aa094645596ecb4923c59430e6ba76ae7ac4aa724b0fa9b5e2df9d9254857df70423f9323bdee97d74d662793ac72a0d089a79038b8b85e4c0d3a6f616fadca300a77bbd53ec69287a1f0f6fab0560ed90a28262bc310c14b1\n\n# tcId = 226\n# PKCS#1 padding too short: 000001ff...\nmsg = 54657374\nresult = invalid\nsig = 77dc98b3302f80235104cb8810d290be782529da8d49c7ed804c59f6435464668dc2d1fc3040ff31d7da3e31a472e218e7f8bf20b626673cecd2a56d7c15af20b42f3b1e155cb5bd3cc0f15c71152a64a6f15fa3e12f6060c2539f6f635c56a0192be82925c277f5f317b6531f1d5618ca95d038b4df9c1a99df4d09e6f5eb8940f8c5919051180822ccccd49c88da70c9c0bc1f206fe8a6d8e5678c02097f821b1d53a26e5542d9287442e9f74780fdb40f10fcd06aef31bc8f14de73eeb437555c4510762fe6bded19a21eb5e94ce51445ca10a6569f2a92bf70caf2e442975611c6f02b3e2875f911260bebfd5131956c98c5932461831313e3cdd9e7ef0c\n\n# tcId = 227\n# CVE-2017-11185: signature=n\nmsg = 54657374\nresult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a7\n\n# tcId = 228\n# the signature is 2 bytes too long\nmsg = 54657374\nresult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a70000\n\n# tcId = 229\n# the signature is empty\nmsg = 54657374\nresult = invalid\nsig = \n\n# tcId = 230\n# the signature has value 0\nmsg = 54657374\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 231\n# the signature has value 1\nmsg = 54657374\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\n\n# tcId = 232\n# the signature has value 2\nmsg = 54657374\nresult = invalid\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002\n\n# tcId = 233\n# the signature has value n-1\nmsg = 54657374\nr", + "esult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a6\n\n# tcId = 234\n# the signature has value n+1\nmsg = 54657374\nresult = invalid\nsig = bb0d4124c20130688b8419fabecc427d946c5096dcf69ecb0eb69fcf5aed15d7e1e5fe4e34fbe26f8b244aa3f088d546a00a531464ba4b8980bcc4d5e54bcc20e1a51afa9044f7fdecbc6edb751b5a5fa7ab403a04e5f77ba7865dd6d211da0afa71262a77a63d9c06e8b00b616ca15f11ea5b4948973864183f570347570553e3878376ca4f7536ad5afac10c0a7b34a5c11f8cf16115fbaeb4b323b1ad6f75c7ec3b954891cab2611cf1768cec983c1717c57f67676d721a955bdbbc216a3345bb31d7d63e06bdac96a6b991ba1e0113d01e48c77ab327d36b426c2f8fe4825a37877425885c927e92423b6977fc304122a2c397cb74845fe9961dba22c1a8\n\n# tcId = 235\n# the signature has value -1\nmsg = 54657374\nresult = invalid\nsig = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n\n# tcId = 236\n# RSASSA-PSS signature\nmsg = 54657374\nresult = invalid\nsig = 73094b0ac0f0ab2aaee54cc43107896080ed245251f290aa87afc0bf5e7d27e08836f8f1219ce138fdeec02fe70c2ef698139f296028947be751e46d2f7282f9585494a7cd9c88d70834f85f995d7ae249d35224dfa04995f2bf697c25571f1282a92fd32d5b0b83ff158c1420c221f477a2bfae9ef8b7fb4add58fcd6844e9b4230e48ae1be1e7719b6bae5b81b1fef2a29b4c5f29ba447cf9870d9bf7be7554958cf86f523fc12f1abfb41b77171a7751e0d0f93e94fb88656f39561e2a7cceb9bfc3215fc1cbc22f5998c40436225f2c31b161c0acea0936d5d70bff12e1c8ea2e302dd5fae16d2490b58b0cbca91324c01f3ceeceb892923edca9239be0b\n\n# tcId = 237\n# RSASSA-PSS signature\nmsg = 54657374\nresult = invalid\nsig = 30723b607da1b977dd09924f74553e35fa7934c5cbb2ccfc3f799fb52ae3fcbabcd469be9fda10a12477f9dc052499f132fe3c42d9d387ed806725a359d1292ffcad82a35ea24c22f0f5d5ec95c1e5002d47fed010083b699cdef90e39a67d37524371312490b2033a2c3a52b1ecc526d287f27a894b9538f106519928f7814fdb21cb9cead15d3d1d615ca1fcd11534238c779ed7daa4f94fad8d354b1ee5dac1fbe270c804ed449dc59fed498ebaf8153d2dbbea44a8394c051fc5f8128d4503237c3475dde2043298af520d81f47589da19f604618b5313de07a7493514f124740f95f20b547bbded3f731a64e6dd832d50634e2c9ae9ed633103494ecd24\n\n# tcId = 238\n# RSASSA-PSS signature\nmsg = 54657374\nresult = invalid\nsig = 759257fa448e399c70b46320cf0678c33fc4be0bd1f9b197c03be6174bf3b3f1f64cb27387736dec92dbc318af3c97134e0334ca49e01de1b10ce797ace008f1f61a2f559e2c51d8030fc54bd999bb6cb9fef02b110f37d659da2267872671132cc454e6ede85dc3bafae81e60645402c59a8c39db3efcc14174eb467cc90d1ad3e248acefb9d6f7e048a4c800389a6d2a49744b2ca0d8de6ea4890d32380300ad8e5bed3783e51095f9fa278ee7aa0f8a14b890e218bd29508eaeaceb366436530b484d61e599df8ec78b1d78110056aefe2604a2e60285373689e482dab077f6a5837e5d4e6fca4e6b45259654900359475cf83a92b9ef97316f2cbba83ea9\n\n[e = 010001]\n[keyAsn = 30818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d90203010001]\n[keysize = 1024]\n[n = 00d0941e63a980fa92fb25ed4c7b3307f827023034ae7f1a7491f0699ca7607285e62ad8e994bac21b8b6e305e334f4874067d28e304230dca7f0e85f7ce595770b6e054c9f844ba86c0696eeba0769d8d4a347e8fe85c724ac1c44994af18a39e719f721f1bc50c46a39e6c075fcd1649f01f22608ce7dc6955502258336987d9]\n[sha = SHA-256]\n\n# tcId = 239\nmsg = \nresult = acceptable\nsig = 132fbab52813cd4404e16812639221c6886bd0122af16b814b331a4ce18146ea9071ad0b298d952900d6fb7e1255cc2d619b207f1fd9a48a3838275fe1bf3400726713175fa92d784778790c214a26491f596481414afee858ebf394da0c18a005f76c56b454a95ff555341a8667848f23ee65ee2814e2d7b673fce167ba5618\nflags = SmallModulus\n\n# tcId = 240\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 54107d4ec803c8cab6a0e74103ca3cea53919e484be4be88e6299aea3245289c6e3e5368137600a15694937b830b8d4739f69fe8d3bf8b8a6b4cac119548528ae69367f42f569bf7e2663745a69191312a2404a183d6a849d9d112f8ce18709386bc5c8cfa823061d37ec0275b5a9e4eb11cb6cc82b12465c1482e0b528bc099\nflags = SmallModulus\n\n# tcId = 241\nmsg = 54657374\nresult = acceptable\nsig = a168c57dff281db4be76f1840bc8b1976f34c6976ce0391be8f7807165ca1b537fdebf00852bc5a7f46b58625148af5b6dd68a4b3e845737655068776ce64d8002cfc914e24178ff9d86268c6b0c97d49853a9cde82d7d8b1fe6215a78905adee1c3a19f01bb3763d504ef3ba11d0003970cec91ff0d608b6535fe3c032fd293\nflags = SmallModulus\n\n# tcId = 242\nmsg = 313233343030\nresult = acceptable\nsig = 89865c4a0e924376ba619c1b0cd28c0d1a5ddf02cea1302cd31e92aa71b7224fd03d5780162a594c2124ecc8f64ddabbdcbe404030636eebe94e63875abd414f1e8dc754dd43869761300569de975adbde0b1ecf9c2b5e1c5e806aac8047ebec99e8e20308ece862d92b40366ecff58fab7a25795a52b6a8d523c640f822bbd0\nflags = SmallModulus\n\n# tcId = 243\nmsg = 4d657373616765\nresult = acceptable\nsig = 8c356d84e4156d2ad565be16b1980b5789e97430fad26ff38aa8533f282b9189ccec1be64fa2d7b516abfdcdc4a3870415af68a1efcb19d676db0704cae192bedbfafd00135958ff920062f57b7f4870ff0cfe7116ccbce9afb0c3bb9c841bb6e6d09c455b36b78ba22f82161f08490ed2cf1f3c0008aeff27fef40c43801b1d\nflags = SmallModulus\n\n# tcId = 244\nmsg = 61\nresult = acceptable\nsig = 4d9654e213734adb2bb5c914e7b24b7f8fa8cb019349bccc331517fdd7c63420f6dda59542bfbbc7b1f251691425c166753792797aa7c16474ec79a0b844a080fb951a27d8b0b9d5000e54b0e928bb3cc3588290016392a802d846c5872107c8c355c962d78f7993e95c25a26bd2d84a868abdca42c7b967a8fe67307c5295ab\nflags = SmallModulus\n\n# tcId = 245\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 8bfbc9545d3c8dd90c3de13107a64494b092c2c9456aa3f2aa5e2bade6a71c4b1df78cd3fbebbec441c01b4640fa8380390692aa2ff90de7e3af89c456ad84403413d05c29b0266175893eb3afb7cd7d691e1ba3e5a54a1a13e5e3fd6578087aebe77c527de65dea0b8801570a3dd2a708f8d0d1edb43e3a4bf60436b9f88466\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 30818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b0203010001]\n[keysize = 1024]\n[n = 00dfbe6f882c8b0c42c3229f29cd858bead25c213b5c0346c3052f844b045ac792c81c1df5ad6a66e9d4f3f7c11096f069f5fc0d1d7da555c6e685cf672ab2a6599f01605f50c93a91d6882f5884e4cf3e9c41a790b0c44247150777f95acf69312b0ed68f3c82693e6b67f0e1ea5927c0eeab3554c2c157181f4634e77bcb088b]\n[sha = SHA-256]\n\n# tcId = 246\nmsg = \nresult = acceptable\nsig = da3e78febfe4c72621259738abf6db041d526db7a942443e94383e21673c9818afeb3a40b28b6dc190e7a3eed97e821de37800d20bf15815a07c9bf6f305bb68df96579f5df1d0396a45a190e425782259ee5673b5aa13f89036f129c03f51f2735037170144acd22b09dcb409b9ca2bd27b53bebf384bb647ffda195beb3a97\nflags = SmallModulus\n\n# tcId = 247\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig", + " = d65f87b5905594493a1d1ada8566d6fef74193b2e66b1d8c72f7dbac2574cb07d07178ea6c0dcbce03a32dbfabe4c9d9009eb54ac9b7c024a4ac85ac5b8986470bb11c39d1b51e953c4ba99bbd91382962e877a8f33ed8168b342552493c41cd3d01f4125459dd4f05d9def1000ed58b5c99c9652d882d4c3ddbf258b3aaf749\nflags = SmallModulus\n\n# tcId = 248\nmsg = 54657374\nresult = acceptable\nsig = 4c8ad93ed06934da7cf3f399c2f62eebc654a4f4952f19d3c6b857ded2fa13a09ed78180167d62c16f0c893ed900a33ff22dfa5f04f571ed23247c58cd247cff7ae8c1d8266ee2e563f3dd53768d51c2c571115c15aa422b39d90ee13ac245b6c866a76edc0ad9b96ca07cded873aa70e26a8537de7372c6d24acb5af466bd46\nflags = SmallModulus\n\n# tcId = 249\nmsg = 313233343030\nresult = acceptable\nsig = ba37f892bb52616d65cff715943dc7d53a5d4a0ffb787bded58cf5ddd2edaaf049de7b80db185e12f25790d157d26a636bd1aed5964a5d887f5d2c5f133dc00014a245f7ab6f28c8281740119e2f822507ff8aba9532f41d1ddeb1d16bc363254673343ed3e587ccfba7b72556685ceb87df3b0a6bad26ca7c7a4f3d84fd3b8e\nflags = SmallModulus\n\n# tcId = 250\nmsg = 4d657373616765\nresult = acceptable\nsig = 0f973bd8aba9171348a1371b82db74b7e584a9243d85b3a07759253f18e9df44bdfe3bae725f0e0153836e94a9f6dcc234c9e80832a80049e29c7a359eeb5281ab092c50c60ad2c9e2656e2f0b34843b6aebadefa3d6c2b0d62a310688fabdbb01416bfefcbf2bb62e778f23abb22c994acf427d41d15373a30d0c64f6223ebb\nflags = SmallModulus\n\n# tcId = 251\nmsg = 61\nresult = acceptable\nsig = a566ee4a974be5e9181a98c09b9c84e0cb717655643fb8326540b22d884e70eff104a8313e0977e5a9efdbfe913c672ce91621dad54bcfb30cb5200f705238c76ea31b062e3364ea855c88c10acf658355c9cd9b598ebb7905e68a3dce23dde6dd77d50c00bd8148160f423c8c563f0c5b52e5aac784850ffaa5a181055d64e8\nflags = SmallModulus\n\n# tcId = 252\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = d821f083507540839086dc8dbe171a119f7605ee6dc81d480a273f725c1d4cd134c143194f615e710baa82e52010ba1716ae0cface42b4d6edf68d9f5c90bd9b7d338bd8af0cf25911ca9169aa5b442c36f854c6c65370db4645ce3552e93487aac3cfa7239a1abd9ec9ca2e965c02f280920e846b4945d74df9a99f81518f4b\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 30818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf0203010001]\n[keysize = 1024]\n[n = 00ac9048a7a4f560af91b4fcaf62a14595cb9ca9ec12000fc845e48572113cab2890adb011a919575a40760d1f23fe92509c8a5810b6d05990b909dd0f4c6014f2b31b6abd805bace99816e2eda41fd7b95405db7c5c8f4cf6babb14f550d5d0dd5179b54951fff6aa9686f30f478db649b7c7044cc202dccad00343468eaacfbf]\n[sha = SHA-256]\n\n# tcId = 253\nmsg = \nresult = acceptable\nsig = a0abd165a5ef8733ba111fa0fa092630222d809d8ae811f24f8bead4968b7533af31019663713ba134e7dd345c38e7166a037025eb34adcd6891c9ec941d2e3eb1e4bded1d269272b602cb9b53568b992ddb5103914e6424c75505701a37996c8318b0b6f8640cb6b6e770ac44314b866a7c683a6903f7bba07b6f197ec554fc\nflags = SmallModulus\n\n# tcId = 254\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 41339884a9b3940e8488d666bb158063c6a2a2717cae7f564834a876fcbf7098ecf3acbfabf37d38a8e6127b1e313744f1f896e165efdaea0b2e7673867842b9e94db0868ed9a92bcdcb370a4e20ff275c82595e4400a8b9e9f12482f014846b48216f321266ae6ae6338dbcdc41b711e483e6e3e728772e7f9f5ef95c30196b\nflags = SmallModulus\n\n# tcId = 255\nmsg = 54657374\nresult = acceptable\nsig = 8883676becdc27878ccdff53dda011e5e2f886e31e1e88d520bb161cd63aa001fded9f0656109c1507bd1ba5d3bb3e725029a236b4c3c0420a1fcfffe348c5277d6aa51bf75d9af26fdc15fc49d637b078a8b0478b5b0a9c428756d260068e5e622f193b9f9a2c1d979e3322d7f3edc32053541c6efa2485e42e99a804f94388\nflags = SmallModulus\n\n# tcId = 256\nmsg = 313233343030\nresult = acceptable\nsig = 9f2e01b92bc9dd32dcf24aee91467797396649a3255bac943dd0e03c9ef416f349c0cbb728704730f3c7a7c244066a94b229a6e86bde7753c8940129626307b542cc7f596583932b4fe6ea9384d5353e08654e966a64b63bd6745503f7e4383dcef74ad4516ac25c8790db6702ac5b8b057a8fae75669b6a9e689e9211a337b9\nflags = SmallModulus\n\n# tcId = 257\nmsg = 4d657373616765\nresult = acceptable\nsig = 3cb9557d9fe49b889319e0d41efc00cba34277caeed2b2c54fc89772c669200dd63f02f340cb6ed579a379a3fd6a568ca9d4bce206655ae4586850638ee6bffaae2bed7c7afe7353d22418d7e4f6b15e198c85b649d3e5a67f00702dd9fefed7dc72136bb4440fac58e64453e4ee63a81de4270446571b192f414116e165efc0\nflags = SmallModulus\n\n# tcId = 258\nmsg = 61\nresult = acceptable\nsig = 06e6fb568e366fa20d48704be40e991a291d47a464296a49c37718c1153b0fea17ac18a01ff97b32a92d07635dfb9143d011d003c9153020f5ef7fd3ef258cfe92a7a2120718fcc85c73acd34cbd50670c2e044dc3b82fca29b1017912b65d8a844515655308367d8797ae5b7fb91042df573f32de69c1842a128ac88937c0e9\nflags = SmallModulus\n\n# tcId = 259\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 327238fd701dc4a829827550aad98f9bcd75e9f3831c3679998c869c1dd8381bc6b74b721e9d3377034e059d6637690ba3a184ffd98af951d43a22105a51838f72cf592d658af01adeedf721cf2eb2bb2c90c68311cb267f0cfacca903c1a2a73f7228badb5d86976f5d3371fe9b00cca048a7a0b0fc4b03da11c5a098045e07\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 30818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keyDer = 30819f300d06092a864886f70d010101050003818d0030818902818100a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed010203010001]\n[keysize = 1024]\n[n = 00a1d3912e65d994e0ba51135f78844d9a3ea5161e5450d16a8cf0173a0a309a1ee94e94385dffc5e27dea6692a1713516af86df2283c8e327e60ee26a7b7cfccb0af3f4b5efec358651996b97d5b25da933b063490cf7b67073d399b04ad55c0a89f8ec36d7f5cae757dbd3d6d0f5b77f7c94e28878397cb45cfd178f3f07ed01]\n[sha = SHA-256]\n\n# tcId = 260\nmsg = \nresult = acceptable\nsig = 0aeda7c92b470df777748f299de6f4b2e9ac2cbe74b5488f15e6e1e38e5a625b292b293d5ac04bf60a51f47f89741f38723fdebcda4943850cfa333bdf9a80689aaac240e23d5f7cd9f3b264eeff491e391a0b8931a705ccb2d9207d5a39edcdbe739fc8c367910070f314e225de55079c5ca963b404bb7ac72358c578e9135d\nflags = SmallModulus\n\n# tcId = 261\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 6d20db04efb28fbe87622aad88b51d9294d33b55e7dea653eca9266caf461ff6aaa344f84671b8e06ae3cff54b315b3d3bdfaf762e168eaeb62b71d11dd371ffe141e9effa0e294f7d663302d1f7b260516682de975bf9bd873a9ae4f6f1562f9a24de696305f2f4127174d762b59692a1b4245169237b6f3899bbb1dc8afddd\nflags = SmallModulus\n\n# tcId = 262\nmsg = 54657374\nresult = acceptable\nsig = 0428bad54ff7c7a35f094d44543a9045da24feb3da97e7fbc600667faa4eec1b28c8ef3b1fed8bc247ce85779c7dec0197c901f7874b3ff0b4d02156346511799d22c5182f0f93b531138e0ac2c5645747670a5e9e2c76dbcd1b961bb6d54a99c1838bf872e28735e778051563e139c278f22ca071a7cec0ed95c29d94d51d1d\nflags = SmallModulus\n\n# tcId = 263\nmsg = 313233343030\nresult = acceptable\nsig = 4bc7a3a501e418fbfb5687425fbb59d02e4197f1de865631ed82e8188ff3d854e25d64e8b770cb40bc8902a80e26349e82b63096705e900d235ac3dc44744d29c0acd1cec3988a04cd341a76dd1aceeaa56b6e02fa53a53a6437d208dda2faeb46f70e4910651b0cf9b31049e1efb20955f223957906df66a48bde48766e6fe4\nflags = SmallModulus\n\n# tcId = 264\nmsg = 4d657373616765\nresult = acceptable\nsig = 6cb2195bbae362faa881a5e3ea3f8921784f81f64ce2d9e578030920234d0ef020a0a22bda4285d74ba416a06bdf1c4d2a4740ffef857958eeb0a5ea32dc52a9b01cf0bce3b5afcaa356bb0258befe8eebceadf0d6123453b195ecdf078f684047abe49c9691bc0ecb81ab466616811378d80271ca3c598ba75484a7b11c8a08\nflags = SmallModulus\n\n# tcId = 265\nmsg = 61\nresult = acceptable\nsig = 6f2d903eaaa24f3c5971551682bbe3e76fc041d418309bb2519de7bc3b78ac9ebc07048a901ab213ffefdcd39eb7bb640e298000665e5be765f886c320b5afbed99564f8e3bf60b", + "ee38ea747105d375e7e8c10f5b932847978bf6fabbc9ea2b253ca2f46a44a50a06a6980dc7a2f653840c777e5c81da1691e521cfaf588b088\nflags = SmallModulus\n\n# tcId = 266\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 57ba5067e97774fb26e7ea9ef0f4dae8afc5ec455d47e6e8a8d4f476d338cf2e697d938282fefa5d1eadba220f3fab2e0ed33d2494663ad0764c05f0acaf28465f5d2fea34bdc46d89a266a5ee36c4c9e9bcf497b5c975ba200f0d8c8549d073bddccd5a1474e409e3c8e4cd211ae1388d9ace40b0384359dc9295cf3e81372c\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 3081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e6110203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e6110203010001]\n[keysize = 1536]\n[n = 00b8be129638e9c805359e6169b263265e2a8ec4b849101f2a321ce523665e399954ac3865ee8c85d14f3d3f24fbd583664bf09394cbc7f7ffc98aadc94eda35ca4b9614fd2d773c782086a1ea9ca23f357cb2cdc465fb85100172845d6b2906dc9315a542d204bcc4dce68d90484198e2350cd682eef9313a13df3607669aa4dd186f563ba0ae3ee054f857a92985f2694a54e1a87ed7327acbfda3e61ecbfecfdd1b7b2d08dd306122fd44268f08463306760f40dfb7634e71d7a72f1224e611]\n[sha = SHA-256]\n\n# tcId = 267\nmsg = \nresult = acceptable\nsig = 39272b0e30fb83671b02d1986e9ea30ce3c7d9dffbf495192235f408e2f28ea8f42aaa25c94bb808b8c9c4c886146136ba1afa92dec2479e46943d8b7c96b0b6983baaff7421a5ba44f8a26c7b2ff8940c647c7068cf521266b9a2b088b6271f3af48d6f4fa6ae94f1c9267947ce625881bfbe886b86625289ade51dfb677a042250797a6ab4f829341bcc2385ea0e2552bb9427f9391647cb23bef53877c69aa0143c8496e9eaf2475ab49746c290c73d484e06ce483df0e60e47b1bb4c66b4\nflags = SmallModulus\n\n# tcId = 268\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 8d0ad645dc973828bf3d7dccf94edea7b31440ea5f5ad27686bbd34293d7fd36b524d20f27956bfbc0aaf947e9d822e5b5a9d26c502c4b1cff5e3cbabdc27c77719abe74027a589b38137ebf435ffda08f846feafac434530b25f9e96b718480c49179d13eba9e20f986ac3314e416e2770d01dab69b2c21ceaa0ebf353a28ab60b2cd3708a37b091ee0cb5e7fc5cc654a8096d5aae1803fb648dbadea2a9481847be11c2fd60c6fdede268b24af4ee8f47b33cfee135b7a7f89d9421b220806\nflags = SmallModulus\n\n# tcId = 269\nmsg = 54657374\nresult = acceptable\nsig = 1b0461cf5fcc7efae2dbd53011bf319389047852324c5637985db3e7d28c0d40a2caf87f4aba79bfc9b9e44719daf1068492f57a27ceaf26bd7a4b16145ec5e7136ba970dc231b5aabbe93244137e5706d8053c94aeee2a022a5eccd25f695dde5d649b6f19456173d39aaf6757fd46527182b0f37964ed49f42e5cb7c02494d38aaa99c8c627a03ad8f054a272cef14be6f6d7b14d37499cf4c928b86a307873d6a71645ef2c49fcb46b01fcd1b7c16536b96f8ef8b0b1dac30aebf352b5ea3\nflags = SmallModulus\n\n# tcId = 270\nmsg = 313233343030\nresult = acceptable\nsig = 57be7f2aa961911f31cb34e9c6c0c65117fc1ba53b60b77bbc60b1ac7607fc299a79d62020bb420ce55ffff7c7b9c07035beaee2d9d2082ee9060ea6481fd8ede27975b66a7b5c66db873540393f703ba32005925ecab11e6241a5c7e8da39b43e238a2446495df902156df3aa23a8394009f501699aaa3400c294b1227ac6dd5ef70e22a6ccfa61119f0e29346f10b659ae8194e262ccfe390c2ddb4738cc945f7b0bc1203b43df76831fea24b1234f193c3d9a9541e72be5b593df2b0dbc7e\nflags = SmallModulus\n\n# tcId = 271\nmsg = 4d657373616765\nresult = acceptable\nsig = 79ff385f6073b2574f21d3b28282b5e822bb3f26d51c5654142b6d5c718a4ca0d7129a142676ec4c833d281b8403253271e1f254f71f0e131352f860fcab9800fedd7f1aecb560950d6b15e1c4beb99287205318b308a12e38ea4e112f8ff45a84c12ccfe11ee6741da9a79d539e697ea9b083bf6bc06aa97d8029093c42d0666f601813a014ecbfa988b44adce9ebccad311b170b446156a91776dd8edbe92578b79edcddf11403aeccba696764ac33b75b70ceec71997085e5d858d01d04b7\nflags = SmallModulus\n\n# tcId = 272\nmsg = 61\nresult = acceptable\nsig = 2ad9a66e8407294555000e5125054c323f93098c33b38fbe7aef4c4350ee76147ff6ccf80ac41d5620ad7b452d5f98d197b277c53db82a1ad757c913a2c4e685fb6e942d1a0c2db092aef8f80e99c76ad02e9d0a2aa82bcba1305d2590db790f8c138143db1545887db744b2c3e2bf5308c1fa1b9948553538801a95a113b282623ef26e19eaab22b8f31126692d650e945b9c195e2e57cc60607fc3136a79816b2d9d5bfa0d8515280d4e1619e81eaa17ab5d9db4625094fb6f6eabb94271d6\nflags = SmallModulus\n\n# tcId = 273\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 13a5d04406300725b9c7ef91961257d094d08d8f40e4133fa182f476a209bfa57082f231e87c87f8286d0ee7158182be811ae5a045295d5955f2e73314476566ddea15e35c02de35abaf83fcf405e913e5f27fac0d288b7959a9612d1f75c81763690f869826352b3d1d6f02b4a8e48347a256a46c71396ae6fcf436bf59cbb83164eda84455d357a046576d58b72a5b4e7d4c9a008bd2d6006d17529b9c4b2b3d20de77805d41718e26865264b80cacb16c577782f1d4eecdc303a03f1f7eb7\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 3081c90281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a2710203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a2710203010001]\n[keysize = 1536]\n[n = 00eb477c90d46bd1896cf4930cf2615140e029a743f0649ae586eb04d51f21ac5241744b5872ccebc87b401487a9c859176c9fc8200b2054875e2c811a56b5d9468e6d3a99c058b1c89547f55a3d7b1d08852f673d3288544aab906e57364cac817728dcea18bc1193e62269e04112c19451702cfaa46fcaf716db14f2e1c9b8d312bdb15dde506945395bdb0865f22ac0553f827a27719c2c703a83c6cbfd949d06d4eb560a8fddff052fd6f0a20f6cdeb2909211b75f8182e58590d069a2a271]\n[sha = SHA-256]\n\n# tcId = 274\nmsg = \nresult = acceptable\nsig = e4f7f0076b4bddb632c470881bbffe95a148573a75c014689eda7acf5e57a546327d4bead01da0b093b2c4eb5b048fd707d27a4baf85d610e4ff8861feca57e1ea88ff0c4b803c4b0d62ae0cb89012b0ff041b438e49a79680f2cb30722a5a2a3aa9b516ff2a02947ebe27186aa9ffdb35e15328c0f49f172af51f764258e909651469ebc6a59cd98c996fa3417008252e3386b9a2d059d3c67983ce62ae2d052733c55732320679eae156d0e4b89da1022bd052340819cfcdd7366c34b65a01\nflags = SmallModulus\n\n# tcId = 275\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 8d2611d4c79f6b2087ae8bc76610905c361b9fe0a6629388197b4293f9e14ecbeb377206e4c1db35cdc0ab163dc5c51e8a7370a059e9ee8014d18ef0937f7936879d7825c792180a4f10a0d46e0a954f093d703b82bd076dcec0b8a66fc3be9bdf79ce4550c453015dc1c7397ec1bfceed040a4d777915546b9cbcf1eeb13eb71ac49c235e69cb07c315d529442f4863d61b7d5caa5ce07820edf649a9342211a26f8280dab9c5dd11af0752168326f8e8d5e834ddba3bce063f011eccc8f46d\nflags = SmallModulus\n\n# tcId = 276\nmsg = 54657374\nresult = acceptable\nsig = e12e3540e7f20fb5533772e91b708151c12d8440ba9bc994791f5916d521726b53969063f9e13114ab89de0b0adf119cfaf19dd74a65b5eee32f39e69ab6776dba721adb2a8dea1495c51d5984b6aa2b5d216eb48459103907442f725410f53ddd5d006762dd3167c2da3bdb19f07d27e3fda712f444c093f4c8126d40ca7c381ab1d3875294df84055239ebac5039490b597366b58c2806e52f1f259c9ed16f829f41851b6ce7e390ea73251395bf940997d47bc323657160ede973f2342b91\nflags = SmallModulus\n\n# tcId = 277\nmsg = 313233343030\nresult = acceptable\nsig = 90ea80b14758fa12319e54c446e70bf5bede38f5d8d8e978531e6c54c567b63a0fb7b870ab963f979c4015c27714dc9292a48123c0a1f13896055f6628687040459488bca149f410cdae4249ef918f10329e902f1344a666fdf96085b7bbfb086ee2f4e5891904f945d867a50289da018c245be31b684bebb8d", + "c367d43d53448865dc005ffd58e2f76f1ae8ac51fa7ad723db9bf3b78b82bc5b0e209ed216575009c27a6d46bfd1d9ba35fd50eaf4a39afd7b3dfdbd2f437d0d97b5b08e1870b\nflags = SmallModulus\n\n# tcId = 278\nmsg = 4d657373616765\nresult = acceptable\nsig = 3ebfdd69af2a561bdf4315d015d397b8af75f6c17a3e6e1c6b52bd6e812bd9112e1920f6cabd82b996b1b48be3aa40e447d29689be7dc64b8548ce5414318c4288a6ccee97f55c523661e629d3cb124b97a042c1e77a9b039a8631815c535c8216912ea47684a7220a63c198ef2b80568882e153be8fe92ae4c786a5fd56a1e64fdb235663f3a242c121e59df3a19c29282e647a5123583378577925f399560f6ad3b2a4c2b18ca2547aab5e3ed4030c6585fd2abd1d65fc720bb30354c966d9\nflags = SmallModulus\n\n# tcId = 279\nmsg = 61\nresult = acceptable\nsig = 7fbb42d2bc1c3e5a0f66fedd581e5ce3e555f6f1c736db24b6e963d2ba72118cc989e2969c21bede87ff3f4209f2b009263b7ca3716a9d3e7115dfe65bad1ea2a1013304696248dd2b1d70764dae248bd1e9d49623826f2c6640247cbe8bcda47d882e298f30bcf3db1f496c26b738848e9876e4b70f0ca8259760e919e5c5c0a2ce3d05b5804a94b67f4c719fdeb3ce23657a26635f867af0271736ba20abb7fff18bda006c48d9c3ed774365d00aa0340a04906fc07f00b18a572c96f986f5\nflags = SmallModulus\n\n# tcId = 280\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = b9b478f6ddabce2b1ffb306e2135132df09585be16eaa5182b8476796c10b0eecaff9b91100882f5872e00e3d1df2df40969ca4d00596b6d6c9c13d3a956dd8d91decbd3a48728aea05b8f7707414a8a5de3bf0becbc20ae0ba852ee7c4f2c177f3d95a4a8375ac50e11fd2be4da1f94608786fc84747117604138d06956387924e5d7baa2c97e25d1b0125122c0a13981559db80ac2d6848f4db163027c4484a51ac5095f5653b12059440dac69970b5680e017a7eb2861c857a607446b9420\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 3081c90281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f0203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f0203010001]\n[keysize = 1536]\n[n = 00d1060fe7c6d185f09c3c1865cf6beaf5dc9306f2f3646bbccf19e47fadf98cfda7716c797d15afe506d573f19163ae2ab0ed9964c7b125dad7841125d38dd9f430b30fe5ea0d24083cb9b09f241b0700821cb5e40dc781e72ed95a2a8cfd33da065c58db8b8166aaec385a5db04f473198fa3b27d4de0a3267b11769af1178d284fb9ca6ac2ffd03b940509dbf2383838d39e0d5c93fe29a6802e12716431e25965f5b7b146663f4e5567ac4c3edf8824913d26ff2dd03830c8a0645adb04d7f]\n[sha = SHA-256]\n\n# tcId = 281\nmsg = \nresult = acceptable\nsig = 6ad0dd65817b10486fe56f76f21a6440359e267eaed42efd149363768eafb8744b23d5041b9b8a38d62ed614217c034dd6021b56bbf6591fef3f3fe94b8459bea1f4de143fe8a8df26ce11e979629ee0b8708253dbb30efb17bf5697874767fa6076147419305e9d2b8fd708fc7d2ca97faeaf7d555dc65337766b1150dd3020391e7901c5b170d3b2311cef2f849f5a6e7a0b513f4f9cadf8be86ca9976772ecec71065660974e923eecdb273408bbb438dd16e92c3a50521d44b146d5a4e9f\nflags = SmallModulus\n\n# tcId = 282\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 3abc0bb585283d073261513c0fd160724f18cb6754d09cee83fd3e2f7f75b5f30219df05302708aab7ccf88457afcedbc0bf822a9aeb81280cad4c3077e352ec05b2146edf2a5e60d4019552d56ad9db03775b7ce532d7a75a5edeaa45193a91984d129e420b4c660bc735204654ed332951ec701cfa6093772608c448caca2362351cfe02178c2e10c1f4889b42c30b807370589d30dba7d0f1fbf19f9379a37377193e59fe18949be88b7fb7454bfdfd70d4431d02455451ab041643349d38\nflags = SmallModulus\n\n# tcId = 283\nmsg = 54657374\nresult = acceptable\nsig = bc3fb8fe3e7a878f63a2773776be6d7ea625036ba977abe44e4734d9d69b34c6d988f02db4de9786e12167c6a8879cd17f960b1cd30241c37c28a6517a44c14c9cf720ae5669bcf00ef562e0e8f7187173d804586d715412e3b96fb6e2a4544521e7a8c88c626d7b9e5a2e860df0e73e1e7aea674d6b24b0738c87636fab9a871ee163e911b7ff6fa056b730c9d6d6b3c22616bd14bdd7440e3958b07f462ce1aff8e0e774964e33e2ac34ec9cc018b6e487dd4258113a2797916e50e80a607f\nflags = SmallModulus\n\n# tcId = 284\nmsg = 313233343030\nresult = acceptable\nsig = 8de0a726953328ca953cf5c947a7c9f8bf1388e8caadf5c3d7dd8aa7ef69ad57fc481f9ae9edcbd2c5d9d5eccea94736cf5be8eaa401588ab14a5e73277525ce3944a4e27172775af0d386b9ea00f7016cae8537b32bfa74d454ad7008db5f82c9986cd9e6312803dc60285fbe38a4cc40a6b9304f75968891a95a9e0b45e589f2a7f20e177f275d5ffa064e629b4df7fbfc9e004dcdc27ae17994a9bfc1db7c6eaa44842fc7916d93182a9b573bb6b70c593c4a77087c2f6ca4ec851f964450\nflags = SmallModulus\n\n# tcId = 285\nmsg = 4d657373616765\nresult = acceptable\nsig = b1f009cf8cbd1cd2466b157f0dd94bf389fc43202fb8d4028d9a22152e9f20bc24d7b5864a1e0ba93f21f153993fe03ea40f208473200f9abe72fae78cbc23866c47937e6133ba36753f5c86f6e98868a45897c9782779b5118b5d15f83c9029b570406d86ba4cb64f4724de0ec073c63b5b7cbd3b551a31f260d70d1b83150d5481298df0be246d055aced5eb952c4f63c10b1c73aeaad9088cb295c2ccf67b85dee5884255caf9d43edb8da9240d0f81a77422edce7ef3de6275cdefcf3e99\nflags = SmallModulus\n\n# tcId = 286\nmsg = 61\nresult = acceptable\nsig = a1c38eda275127dfcc0fff930a922fae94ade9dd62c5a06e7c31cd1744d39432419cf980631f49470b6e252a920a9227ec92ca4c49a922eff890095f9898f11b3ef51e50f1c44db53ad3cfa58d2406377e6f7999f18b2d5f8a0b99531580fa8b83e542e196ef779825d3c1213a6c0400270a34c9ef8de104705c093b8dcc256374ca532db77eecaa5c7c6cdbdade86756a1c771c4176e5e1fbcd59de5cfcb506217d66bf5e7ae5f67955261a4032cebb1fd31bf1a48e6fed6ec287bcbd8244e6\nflags = SmallModulus\n\n# tcId = 287\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 9bcb95b7ac8607d7b468fa68640c9b03fc66e39970b96789b61e2dda56ea42b0c105e75e8fa3bc57e975381a348d6bed64bd3d0ad7d3c4ed608324751a6e4c3b66fe755763c8ae38f00d8558519512ef089284efb144d8cb9f28f597b1ea6f5a270a615ab6575e857dec62d66a398c03284160cc910f6f1c44a6497a9ed7c0d8d99bf3f35dd09b836f5a3c552068eca9b7eda3721cef01b9b861e3eca2fe20341272090004779e5db2da98d61ef1c306e7b7966abccd01fd611ea6931955d226\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 3081c90281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e90203010001]\n[keyDer = 3081df300d06092a864886f70d01010105000381cd003081c90281c100d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e90203010001]\n[keysize = 1536]\n[n = 00d1f33c4d0c3b127cfd4c711aef054e291cb9a9b7b769d6dfcea5ba02d99f0807ffb63f097ed7b5c5e2ad09578c749863a96a2bedc3e72738fe887a4a1fae6ca8c8e722c8dedc065a4df9f5c38e950175a7e0de9008f3a9a67e3413f9891e2f8a70b29f55dd21d2cba16f8e2300ef7c35ed1e42ebfbe70645230ddd8c067dae9069ae5f32937a207e0e7896e87fb399e6c93bc5bf6c2504fbdb3ecfc281f8da29115b2ec41eb9acc4176e311fe8dbcac24b57f8d656600e5fb4095eb4bf90b6e9]\n[sha = SHA-256]\n\n# tcId = 288\nmsg = \nresult = acceptable\nsig = 5d8f4485ca79ed8d487eab377326b138b29948f477d3da0ed934d299e2b06b7d9409f5c312b17321fa20b2c66ae8ef9d084fff2e8cc596d6d417887e04e2ef8a2b73dcb1a04400cdec16af177f8017047c3ae546e03e6fe31ad3bc6d89862d94229baa49f6277392b252d4f715c7a41e41a6200a200f7343b50a72e5d7a3ed0f264c03d381963ccd16777e3d9cb4187e7a5a9886680581c9977299df16d06318f5bb94cd157954792a71976a795da8e6fe088802823b6ba69359f08b9e42b891\nflags = SmallModulus\n\n# tcId = 289\nmsg = 0000000000000000000000000000000000000000\nresult = acceptable\nsig = 4d98f3a8d8bb66578c89245b8a095f043edcc4429b0fea86eb673c5f0da52acf3d16e2af500c18b7b53435a9822", + "2d0f9fe299cf4156651f629b24ec525be4c409bb583f371b2803485cf6ae37849a46ebef52895225e9cb671e6c9055f2f3e3f74cbb6fcc222361822552191026d372892a531f05f3f81884213d093b008c988f01941b9a9208c2ffb325f2028e5dd31710610bb7d48f5d0b34f4dd83e26e9a88d7c030c4df0e031ca99ed46975d0d893515eb84d86cf39249dc90bc0e08a7ba\nflags = SmallModulus\n\n# tcId = 290\nmsg = 54657374\nresult = acceptable\nsig = 03173d361263214f6d72afb3dff674613ae3b9712ba4b3f0fca1193843dae58f38ad514cd5f6a46d0a6ffaec4fdac08897d0cffdf6e20c51a961df24ed1982b426e218fc52ba8919f60fa71c156717a5ed9f3030cd864fd810acc9343ad8b8f441863bd0bf3e80e5bf874200896f0abce8af141ce61f2d5e87db31a0f19baa54e41f75c5df29853e1fe678318657a217649c8fa2337c13b0e514fbb916b5747fccf7b6bacbbf0a4d7771a00d3ad88289bf854d5f9db6fb8954332fea68e8e746\nflags = SmallModulus\n\n# tcId = 291\nmsg = 313233343030\nresult = acceptable\nsig = 8f404e26dd9a51485d1546e9bb7f56f68f0927f2f19b8bc0c4db218f3df28e1c9674650ffcf9645e02d1f44d98404c8ddf54438bee61524e2d69091f76a99dfdf796a83499f8870adc182e55712a642922b8e98ca33ef0cf05903ba51f1be648220a19194dab35082559d5f1c087c6702f102f526fc0de1dc98756b29e817f4792e3d0ff40a931002c077e0eaaa5f63a5a1be90de3b9e6800803cf909fed91059e83f4bcde83c6e528808e20c000009bad95f8030ccba058a21073247c3bc3cc\nflags = SmallModulus\n\n# tcId = 292\nmsg = 4d657373616765\nresult = acceptable\nsig = 3b96356882fa7825599f7d5295d9a367158d4729887827522fbad2f7a741fc031a9fd66f70a9ad398eca4054ecafdd7da2d821b5a940d633d2a7540c18ca311e9cbdef6fa5148bca6bd2ddc1a6b4f9e8665b49042baf99de02fa86d68f0c0f4d8bab3f46c7e65b6f9b7447140cebd230a8aaca90d1f6a5725dd3e85874f10a6564b897f83a7b2b3a07cf758ca6cea8383ecbf907a1479fe8510f22b3614b133bd0bcacca8f8daf4016cee0cd2f9f69b628d4d45ebf5d0cb545349f6f94b0e4bc\nflags = SmallModulus\n\n# tcId = 293\nmsg = 61\nresult = acceptable\nsig = ad5baaebabdc825e48072ef1cb22bf8d697f5a86a2cee89bd0313f7edb02cdab90e31b5d83a33322b8987c0c3dc54b110c9a2f0f56429d39ff96f7cfc7fb2570de2efc918f792fbec177a95bf2362429b936b3c65187b13c04304bb660646638cdd3a9be2e4d47a11b1ececcfaa99fc43359e5e4cf435730ec059203f476a06bf997ea7044a0a8b2f55cfc82d24c9542a0a9df9a584a148386d8a03266b71f8ed8114f3fc0dfb534a3b44778c40d5a3e44d04f76eab464659d53204abf97a8b6\nflags = SmallModulus\n\n# tcId = 294\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = acceptable\nsig = 91e47e671a2e9d0e68ac78a8716e02d68ccbfe350677ae53ba1b0bbe085e71e47090653a7b7d18a3d80a67e4023ce56ff59d9565838f9c0c74503addb3c9787977de5286cb6b602dcfe0721fc7a3998ef018b56d4a4e3d578e8021d08599ccc8895df7a9324e8abd2162e81576fe19ea678bdffc86660fd7a180e96ed872710e6ec96132530b16afc47427f91df4ab95300633c028f433ba0c308638992e61ae8c2b6b83af10e622fb1cb269cb453ffa4a67d211f23029e093d4dcb434361356\nflags = SmallModulus\n\n[e = 010001]\n[keyAsn = 3082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e50203010001]\n[keysize = 2048]\n[n = 00bd31c7a02691d2d9587ef6a946ff788544ccadd4b2988ad62086792a6bf96c8616b4ad13317d2270b901d0fcd1d880cb8f52fb87304a5258c11b38dfeae8df670aeee7ea1d0d9df8e00e80847e41e5989ed402d44e78b30fef17b5671d3adbf8685e4dc204499ecd1863e1d5aff28a7cf66eadf31fec9236c120add13451522c647c9832a672cd64d328c1c322183f4661d09bda60b8dd5f0328da5420821424afdabb1a80c5d12763a1b0238cd89d0742bfc50b6a2fcb701d824218f9826f4f78a23a2b5aa42ace7f175376fb6cbdb2bad293ba583d4d31c6b8f9029e46b13689249855f505756e00e225a6a45a18769bd8d2b3a4acb9f1c23d3e51882561e5]\n[sha = SHA-256]\n\n# tcId = 295\nmsg = \nresult = valid\nsig = 00b19d8a2b9227ab7ab63e9c5dab525e1908635115c5133a2d89f56ceb3c7a846e1aa5422f866554561af81200edd66f349516267c5b42b5566b0c5494c9898855d2a55184ba86e36c1f758fb3f573d2c8902e086c5af308df639107433d862f3054825d229afffd2b6c4d66bb424e1f1917219cbf5e2feb2a15009b211f8135c0fc764dc577113bc0815348b14525d9c766f4537b499080747ef28d9525b27f2a5075b37cef52c38a537b3a384ac85ed2813207b126a048f8c034c06e08e7c9a9a5598b447669ac2b2e8febc5c04baeb5c1b073d379e5f6a636c416746d5c04f7b4a3e5f9489de27b65307bda9c082b24873c75024d4599c6fa3b4ded40389a\n\n# tcId = 296\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 1a6752d24112f3faabde6771f96d63409fc8cde9b47325f97ecc3de0d674a0eed7960b8fdeaba2921ea0ffa17ec341f2656d8c748f7bcbed783b5df1cbc7e7174fcd2a9a2062c206e0892ed1cd6fca9cd1b68599c38282c8976aff6539856e99386cffbbac707f71498fb66355d95aa8d2b0ef622bc89a847c5c6c9973f1fb047b32c88aaa8d0e56c9da2d19136f2f0f4ed215d9f1555fa850a713f1dfdf7c988931200b81691c4ff13010674400e53396098355754f9f26cc9f6347c0242282bceeeb304e95233cb4ed21dec228354d0b80e691ce9ef2122a55862f50e7a6b0ae081bf6097e1c2ed1efe3cb78258af85f0139ad9d5050b3f186776ce5871f21\n\n# tcId = 297\nmsg = 54657374\nresult = valid\nsig = 93248b4218cb8d188d3af7f5ebdc9badbbad3dd5540d01124c36242677905c59d4e61a1906555660a934e61536f3df3c1ba1d7deea33889cdb223d848a14337590bb7df6b6060351bf6ca0d831918dc333f150af7a60649585ce2b4f9402bd1790b7e0bf7c8832ca482fec7b26d3f1c754817dd287055360744eefcec54eb80734e3b226ab54f95a057c74e0d3eda41303984faea940b7040cd3e9303b2e22a3fa2e3a0d13f6c2b81d92be3518f9027bc0fd099268d18e3e686ca2eace1f5c371e34c3a4910d8c661efd7e25255b253d9a14607ed22ae0076b2c7012b6c61f7ddb92559b0111e2eed0ea8d0529007cad3fa6d4919e5a00c3d8ffbd2658c6de7a\n\n# tcId = 298\nmsg = 313233343030\nresult = valid\nsig = 201aa402275f3c75bfd46a1f099c0b5613e862461adf57d3d94a95951d44a81c0cddd86ecdfcbeee7c890ab999d05ea0795f4bcf7a62e2a1807599b33d9548a8bdcc6f1d0e8c06243995e64dfd9b2ecb7175d0062660f14d5da369fc56dae52aa9c07e18cf8314989973d3433e15691c469eeebeb05dd3ad30e8c496819af126572b14f73c173620049a512a789f0caa515b04100d49b43b1044d70d7eda9f68d7fd227586897bddbeab4499faec6417d67108c88f27898633028341426774c3b3c3bca8c4d3e18df8c0b07da56e6c00dbd770f3e848777b273e0d7afa5394ef29a54c3a6451e571ed9933b54c2456212c991fe8c5cab8bfcd77a7c7521419fb\n\n# tcId = 299\nmsg = 4d657373616765\nresult = valid\nsig = 253499849e32ae10395edbdc3e54e1c4ec0ff26b607ba3ab4932ab5627b0f26a8384fa91b3949db51a363512dc9a64f40ae9f27305fe397def3c6a17d5b7899580c002efc960bbc6fc005dd9fff3c7a69177c9ae8ec061b352a8fe4a342c6b3258423b8097b26fb743417227babb537ee08f15c3bbfc538af8c1b02dacdaf18d1c62fc8d120ab50d6dfa0d3b63eb316ac375c8d25bdf0c653ca5bcc6939ac7ecd3c648f6d56404be99565b5f0e1e70dd3b440b3d07a4848182c259b471a7ef2f34fdba259933cb58c7828c70537107198e98be174f45ad0b2da87550ced3639abce8c9df2a5a0e73c403d64e0e0326e5313d0e869c3080685c4437f659b241ef\n\n# tcId = 300\nmsg = 61\nresult = valid\nsig = 6143e8b796bffea36e9d58716e3e16c73a792a60c99649f954b0ca7a3b9922def9a115517a56f0f9ee64230914431ce5c2281829eeb245054530e0780605385b6b0876e5f70691c6041f6fc7f8e282998038a20bf8a2c4f4983dcf4fdd4e10523a6bb799951244f385aa2a753e6a9d89588ed03dcd65d16ea605a06b236197345fd9c25a72c5168bda5454a2c933a71005e881fe7495c82b654836873307664480b4e43e842e1a9c616734881e824afedb59a08214af3e15bb557afb8d73f7574ebe294147d5183eff6a53051567825a96cad82095d830f9486ad85601d4348d5ce92b6afb07adc8efc22041ffc30acddb542381fd584584509d37bf49db7957\n\n# tcId = 301\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 998a9f7b1870c3b05b22f9bfbd70db2ff671ba7c8cd89a86f180ecd992b790cfca1b4e8569104e233ae605fcc741a8ec62268f39372c3323b0ef7ed91ab271308eca524592cd2637a5f2d77d31961e7f44b101b61360466044e208242a7dee9024eecedf22a8402ac971e5297a94fd96506c090dc695b36c5d798049d9f583660bcd0fbd7c296f5e0b57f001", + "8317697b7926c4bf8e25cda19bc52932de6ad9c7f73e18d73e603c090eaca5d256dd06138c3366e89f3cad37807f456af40923251a1b69fea2ef83b2da1da869417a1b5b5675387c1483141697435933d0c2a1ece2e9308f760052ab6d96858f7f6521844ee9f22aa2f12446a2c3e7a559365be2\n\n[e = 010001]\n[keyAsn = 3082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f50203010001]\n[keysize = 2048]\n[n = 00c32cd0e1441fde8a2896ca3a133735be2d1010777cfc739afc77b6daa66f367d4876dccb3021fc22c25450a68d6cfb1191d485cbfba5ec45b49286d7cae2bdae553f47e10b94f867abcc6d0affc733bacc725e5ab4de1aba19a39d748b4c1355d5a6a710a52bd04c0c24e7bc3bdab8f3ce3ae86ecb31c4b45e10b40ddb5fdd40cb2411bcf5b1d392e1eef959cff2709a6e02b20ff3b4343641a6b78599586edc9b673d9f3f5e9d339ceebf96a1a31655876c39fcb00b1c3e571908c9b744765047abb5c23ecc42e551e13755e38cc9a13e1e02bcd5dcec9c301fab75be3e1a8ee9c42981607aba7855f4bbe76c8c160e80468b54bdf9f438b177c33dee30b0f5]\n[sha = SHA-256]\n\n# tcId = 302\nmsg = \nresult = valid\nsig = 6ff210ab793b24026c588295e2e5d1bc475aa24344cf1ef7000a3a24d09f7e16c9b3d8617355d0aae1f233794d7e390dd442eb93c2f8abcd5925698de1347dc5c44ee6744409fd5d4e07e78b477fb3b44506eeb70778efd7397b632a233454abe0559c602173869680ffd7cf0a6b68ffe4b358d8db527649b6bf4e237461459103edd10357379e5312dc10977d631010b23d608c19e1dcc729ac6bcbe3b0c032e38e1036611cc9214c0c2dc9587530eba67b9f6b4ac3b4722efbe62190ed906bcd8f971ac6c072bd30f4b7a93522571a2d427677f052faca80a21aad123e5624f11762b792088ef12c39beee64022ca1911a35882f8e7b5b450b6f2b76bb529e\n\n# tcId = 303\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 0ce0ffadde896697cf5c838393e394eaa6eca678f21a3b048fe1b1713478390ad6295a99bd35c0e9aed5c97382363c1a7bfb587c76fa4acccf4829e7a13dbbdb21811ea6ffe66e23d915c585e655e19b1206d3828b94aad5b58f7c15be783070b381b5f32d42069b55061ed6de7eca89e895422856808798e8479206b3415e597d79a05c93c94db34c5fd4d711768c9a7dd35e18b0e5a23748a97ff6449443c793d674bc94d922d0595514edad1065bdfd39a6954047c5d352f61ea88b266d8c3665e4452a1cb2f5319db49754174230716fc02886b01f795b249e4057aa8b7997af7b26045225384d619b82a57e9ea991c40a902e74948c3e6b8618748d41b7\n\n# tcId = 304\nmsg = 54657374\nresult = valid\nsig = 1ccff85f2458039505056afc45029f153d761e5abf7c46bb8a3646a1007ec218feba50c92b97e1aca8329ee98e0258bc9da0826611d16abe1bfece7dfec2c07e681f0d2480f79164c3306bc3de10b89a9be73cc12b3ab9924a02af9d5932e8ca4abe99c860c6e963db22717da284be6aa6e8a6e2a08ed7b3d9375455bbdf9867d368082a8555d5cf46cd7fb4a10be36a7c683471f499a00d62f9050c6f632ff659535913ae7214c6583e949325a8d7c257caa53752d8561fb1256e19f930d51551ba00fa4c16cba64000c4f67f81883108772696d12a9fb726b883752f23c2493b6c9f9d2f68835c9f787a2eeb98092d526c3d1a8b659e48590dfe42bb52e08d\n\n# tcId = 305\nmsg = 313233343030\nresult = valid\nsig = bac5e1663853e0a4088543eaf4cdf36e8b1ec7b52fef42081d31e3f294dffb31276834807c4719a1cfb8c7ff8db7020b72058d4dc481da66ab60f40db119cb57b66726329194f8a8e2a22499bb53c1346778b9a02f92e015b82b4ef432a13c51f93999fd3bba3723698bb0724b2cc5f91dcda79e29c5eddad80b7d4a08e3c549170952eeb03188dac1c81bf37dde0378f66fb81102aef841a9a69743f4c78a8e31556fadf5af56d81afa825d37d2f6d8516795abb7d5804ebeab2fe2fbafd5ae355dfb9864c996b147bb5f1d8c1b4ccc3040b42876a27c83df2068f1ae264ba557a6f1c5e0436c04fae398ad4200f5d1d5a872f771934d4a22a1c7785d4bf347\n\n# tcId = 306\nmsg = 4d657373616765\nresult = valid\nsig = 5c19e84cd12131e91ef4ad45d57c6a239f127b202bb5703c3c3b410c9738d62e902f637f8a09fa6c6b7380fa4084def5e0c64794892ef6def44f28f448fab60b475f876b55a62ca09e6fd98ced80bbe2f3b697c25c143936609f4af05ecada3fc66c90567606e0d230c3cf7420c4910b41427b721d3213d9509757c855af7cf75a3b96b52054a57ec985ceac719cbda5dc8eada64c5aace659651b4f358f5e2f2c09d75dd0cecd279af7e2367e02c0172a5b8df807d88f75562465c233618039c0c0c109a58e386fd22dfe3259536e37905a5d9f77e4e52ce6d9ac14886d0eb55f52de0d4810ae92583c1eb7fd8d4c42bc03f24de9404697980ee68860044e1c\n\n# tcId = 307\nmsg = 61\nresult = valid\nsig = 51a7039a70e42c6fd2b38e2b0ebd7c28c11c5ed1fdfdf375b18c6f82a7a8865addec5868fc49190d5d92bb1e0a0ba2e5302159e78832e6a4682ad68229eaf6fbbd41897bc38bab84c82d05e0349591d48b8d66831e9951293a45121e0eceb85c29f3a1915abb7480e33c7a7a4f9358d038dbc95b2304bc9e9d1f3bf50d52ceb5d34175c4e14da4ab57e4ad6c670c949b73471c626deb6b726d6ac3e90e6b207805902251fa0f1cd6c9b3d2f42163efca8e15a1ac64beeccb9151df02e244a80ec73b731e7fcaf25eb3812549244292c8a9fc65385225155288e812b9393932a539bb925811196914c86f0be543418d32c187b2ab859afa640e9ecfc05fe9bcef\n\n# tcId = 308\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 9ad84538eae75e7400cecd0975aac5da3d05f4240bc480275a9e503b72edf8bd11748d074802c3bfb61d30a2ae5feda7241f5e0d78ceabb7a0995bca46949b357fd863c1f6ba786140ffbb3da07897e58517809a7296e5b7a4f840a75a58064946638f909e5a388056df1852c35fc9f304a6c224fc75fb32a602fe4576f78e6a56b1da650749a87396fc3f607eed5739a24ec085ff16efef54105e02f0bf895f8bba7839b98d051d737e43b7006723737d4f64b7c7b59739793766fe62a659472e1694b8be22135c734071783958dc6555683761e47f6702ab5f0efb1c4923a9e9da8af724257450fd88b7aa83d5a94e141c6cff9772cd1547ae529fff736e89\n\n[e = 010001]\n[keyAsn = 3082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d50203010001]\n[keysize = 2048]\n[n = 00a2b451a07d0aa5f96e455671513550514a8a5b462ebef717094fa1fee82224e637f9746d3f7cafd31878d80325b6ef5a1700f65903b469429e89d6eac8845097b5ab393189db92512ed8a7711a1253facd20f79c15e8247f3d3e42e46e48c98e254a2fe9765313a03eff8f17e1a029397a1fa26a8dce26f490ed81299615d9814c22da610428e09c7d9658594266f5c021d0fceca08d945a12be82de4d1ece6b4c03145b5d3495d4ed5411eb878daf05fd7afc3e09ada0f1126422f590975a1969816f48698bcbba1b4d9cae79d460d8f9f85e7975005d9bc22c4e5ac0f7c1a45d12569a62807d3b9a02e5a530e773066f453d1f5b4c2e9cf7820283f742b9d5]\n[sha = SHA-256]\n\n# tcId = 309\nmsg = \nresult = valid\nsig = 840f5dac53106dd1f9c57219224cf51289290c42f20466875ba8e830ac5690e541536fcc8ab03b731f82bf66d83f194e7e180b3963ec7a2f3f7904a7ce49aed47da4d4b79421eaf937d301b3e696169297b797c32c076a12be4de0b58e003c5123051a84a10c62f8dac2f42a8640008eb3c7cccd6760ff5b51b689763922582845f048fb8150e5a7a6ca2eccc7bdc85349ad5b26c52137a79fa3fe5c29ab5cd7615013219c1941b6708e9c3c23feff5febaf0c8ebca5750b54e3e6e99a3e876b396f27860b7f3ec4e9191703c6332d944f6f69751167680c79c4f6b57f1cc8755d24", + "b6ec158ccdbacdb23107a33cb6b332516c13274d1f9dccc21dced869e486\n\n# tcId = 310\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 8a1b220cb2ab415dc760eb7f5bb10335a3cca269d7dbbf7d0962ba79f9cf7b43a5fc09c99a1584f07403473d6c189a836897a5b6f8ea9fa22d601e6ba5f7411fe27c638b81b1a22363583a80fce8c7df3e40fb51bd0e60d0a6653f79f3bcb7ec3e9dc14cfb5b31ab1735bca692d50ac03f979dda92747c6430f8045efa3513ba6e0ce3e9e35570e1c30c8ebe589b44192e1344ca83dfa576fc6fdc7bf1cd7cee875b001c8c02ce8d602769e4bd9d241c4857182a0089a8b67644e73eef105c550efa47a40874289395ac0c4e02fd4ba98e130a4c2d1b95521c6af4a002ac3bdc6e52122ae4c08cc3da1c896e059acbddec574ac0432f6103dd97273d8803c102\n\n# tcId = 311\nmsg = 54657374\nresult = valid\nsig = 264491e844c119f14e425c03282139a558dcdaeb82a4628173cd407fd319f9076eaebc0dd87a1c22e4d17839096886d58a9d5b7f7aeb63efec56c45ac7bead4203b6886e1faa90e028ec0ae094d46bf3f97efdd19045cfbc25a1abda2432639f9876405c0d68f8edbf047c12a454f7681d5d5a2b54bd3723d193dbad4338baad753264006e2d08931c4b8bb79aa1c9cad10eb6605f87c5831f6e2b08e002f9c6f21141f5841d92727dd3e1d99c36bc560da3c9067df99fcaf818941f72588be33032bad22caf6704223bb114d575b6d02d9d222b580005d930e8f40cce9f672eebb634a20177d84351627964b83f2053d736a84ab1a005f63bd5ba943de6205c\n\n# tcId = 312\nmsg = 313233343030\nresult = valid\nsig = 1758eb94588e6fc4f50c1be1afcaa41027869f304cad513b1fb12c2f446d63cdc05c4830a7e3e630da7b2da4f7867cc173bf6420f9732277282596de41ded32e21d0cc31441174da8765f57419c7764ea758f55bc17646eb100c435d1ac0eed6fc7ba6de5f832094ee2f479979765e05ac9976788db3c241a9e32a0da864f0019a87646ba623d63f4411af5dee1be9ec488c7e3e1b231479de70b9ac5f78a17b1f4120aece45f26c07e7bb345fdfeb05e14bcaacc614672a465fc523624cb19f66f9c6c3f642b832ca44cb25176d679f0e05606c3fed022cac24c2bf960a406d48818e3eb7ed53b0446032469047dfed95fc18088c92d91d93722c47f88163a8\n\n# tcId = 313\nmsg = 4d657373616765\nresult = valid\nsig = 513a5abde16b5e0ecb8659d3ca0845800adf75cfc4437d42fa34e7aafbbe35fc5984d3560cba938f9a622e932bb6162b7fbb6cd8c1cf8815f28c495995ac18cdbe8fabfdce29c17aa021df192ac02d080d7c5eda6bd4c99154178a9d5e1cf3ff4177106315f4e6d74c991b601069acd60b55b3bb4dbf6316c35096a487d6756181d3394944f1c742a2f4d608ce4f6abbfb72347ad7d342ae15dd6d1049fbd0ff55f4d7c43ab805f81ff1fbe9256b5c78c2de6beb787f4b6d66d290a3d4c4857368aea5f7ebaa1296020c8f9e3670441a08038bb810e853a654e44316a4e52428745123ce2714020d00e55a9eb82f7fb41c73d852a82b003670246c6ca2045fc8\n\n# tcId = 314\nmsg = 61\nresult = valid\nsig = 38c042a00d6f27742a46f1f963a7b2e04f0eac637849631a491b8e4e58fc721c6ce620d5e705dc8e73409c3909c1c68b6bdb2b30f882cf2797e65030b38c4e7daf6fef9d1f115c890086cf54ca3e7c2b21dcbfd1250ed1d925810970f17dbf482d1784f296adee9ace6979075c1e12f5580cfb322e8737db9d127d38e1b99ed87ec49448a18a6fee650d3c27e4a2a86a3d6e3ce4fe64120be60872fa07a3f78a112715c167fb6c900698ba1afd824087a4cf733335c4a6d5120e3b29bc42f3b3d5db79973e4e321e0910a288d18cdba172d060283c4f4c6656e9175a18b756b7d06251e9060bbfcab04978853eec6032850a0e757bc0c61ad38aa4eb6bb6d907\n\n# tcId = 315\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2ae8d95b19cbd64d0e343ff413fffb85d8e6713c06ac8a1ceba7f3924fa740f8d2b3e120fd71f22711e795cd6468c5e263b1a5ba6ac6b8fa9e23d2d6e7243f510592a61d134e68b8ead00612dbf38c5b7302abc3bf33f23e6d4816a6e3ddcea6482566e84f57464f7d56de4cef0b2256ef21874dda4c131a47292ff8ef853f93804483c8e6373d39ca3a22552e75427b812b861de6a310ff4c366f6f6604116efd9770170aa423554c4ebbd2b5c0698950e66bb5b7c5c346285d9f5c35146255736b6e818e8e77983c93b21e7f60b04a7a525598e7fd8049b181000bffc7f3753a504370f6bb70617ac8e914deb05a198a5758a459c9fcd2fce1aede48e8a852\n\n[e = 010001]\n[keyAsn = 3082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f0203010001]\n[keysize = 2048]\n[n = 00cda6fa5ca76bfe0492ec57e0a3bfff7272dc8d1e25ad1fb338aa050f02c104e63133d6b5b7c4985ebbae9ac036a5b9c03074d60aec8e25baf392a0c430ff05b88e948805d3dd74511d8885250a7b574215ada015c559076686e253ccc96c0815b1291ee787cc3363b4f77d930eb998d7c582b24cea9ce21de9722791989863a27ebc80a00de5bd2f9228775e5a4ceb054d58c9be36a054336971a13642dd9510dd696aa268db3aab2299d5d88f8e562434d1427094d3df8e72d1ef69b4ed34d12bac375223b2a25cf227f735f816e85e17239304769a6082154cd15899fc1eaefb69b748a3e5ed24d38372597de3e4e2a27b951d6ac7db182d6809d8ff511b7f]\n[sha = SHA-256]\n\n# tcId = 316\nmsg = \nresult = valid\nsig = 761cf7ff1ecb38e7741b946896985d34ac1f0122ab449afe8b086b2310f730056d7c5107355b2a17736e10824046192490e2bbe239b49d38bcc5f34d0b817c192775a40a57887343ee7558d48ae90876b82b6690435dcd9611126a99a27c020c3c0f914ac33a6a36fd7198dbfae23033a2b2435aa7183568c7af6cd7ce30edaa112e44fb88cb1b61ca555b4d5320997a5bd3ef02d6d049e859646bab7cd46c9dc6f3c7bed342ef74aad8eb4dacacba64628a83431d4954f7c8eb2cff220481242aa04167970a33d3eb65462ef4f4c3ad5fd4c8c312ecfa8a17cf01f5e418c26840f6b9bd3e5335740290e6b8c79998933f22632335aed0c56a980feb823d54f0\n\n# tcId = 317\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = ad686a97bb6564e4ee656f12ca9a0b237caadf6c99b869afc7a6bb97115c97e2456d7672ea7a7072f4921f6cf8f73f00222b36a40e8b5eca409136ccf97013a4b0f07a6406b846f6a548d800ac19a07c1d9164b1b04a8606770c8cee4126d23abfa7ae8f1e4ef9bffb3debdab03a650ea4824be759f849199faffca95a94784157dfbb69a7ccf8cd760cbf9c728d2183d1d410687ca35b8fbdb3b6422271408dba8ed3c419ed0f3661897b0a65409b54f0f6a609d0dc48b9c9282837a02517d86e8c3b48174df2f82e06adb5bc6e86e4b75569137209928ff750e83a4bab7fc071fa7b01aade8df75789ee726ac23d6b324b662daddcb2f27b6f486ef3b7db8f\n\n# tcId = 318\nmsg = 54657374\nresult = valid\nsig = 7f5a839a46d78ed9f4f469a5022358a5e43c855946b3409c66b6b982c07571f68c9f3dc5665a93f66b6ae4fdc05ee416a85b2fda6232a76ff3841d7f99c301b3ae0637d985000cd2a7155e3f2d5aa558af2fcfe30fc83fd4df731a200f0b6ffb26cda6447a777f918c9f9fbff1aafd759f6c605c83401e31ce25c8893f1306aaaaf36a702a1fca1c421f284e12a6f81de723e6eb7b04fdf4895e9ba7c7732fbab82c4072450d612d153d6c362938b50774aef8d3b27bab5f3a3809e0e9104ea91b0ddb9bf9c5ef3cc58122982a7c0c79e9c026b7bddf28af2d671ef3ed6407886cda332335ba1034c6b4efe61635010200e1c7c4f2951ae523e37e9df7c86f35\n\n# tcId = 319\nmsg = 313233343030\nresult = valid\nsig = 521e5af2451d73b61b7af2d81eb427bba3911a3f2e61105bf38e15c74196c8e66d52239936aa1a7823606fdb4d243b32dca2c4a95cb3b302fd34a9c0879711095b4d1e75c59d005836c2b9a05ec1daa63148841b285c10bb70f4683994fb0a598b927415ab2004dbdd6405d57804ea142f21600d5bf5487f3f7419ee2c2790a122199cff03be53847cbda28161f37810f046df1c54ffa9e3070ebd1f8b08b3293c6a160ef6593ab497415c2a086cd5242f3509b375f70e12435b01c21bfee65f2156448831050eec3da4df7ddb04acdfd89a5cbd5f9afa75a8e3871378933c1483c28c1bf405c42625b673bd0de4737ca144285af3981fcaa7302534e8c36e9e\n\n# tcId = 320\nmsg = 4d657373616765\nresult = valid\nsig = b731e0b201119fa34f59d4b32590213fc8838b45ff6b207d0efb69dc27c4a418a01525e05bf32de71ae5022c727efec973bc3ba7cb8777efa41fa1a99b917cf316543c192f389f2d67500200ac54d41f691393f1af58832f01cded931818feacf65d87ac0ff5e5e6fe3178f64a3a710db308f3719fb904a9a6499a0886a9766c3eb51e0e9ba2a00057151dbb8bf7bb23b88e29c55e626ede9ae634b9c133ad443999901891d96f90c9c559e783043cd3c9fdc4aa56f65884f2f4ed29be1da21257b2e42bdd0ef5520aa02ebedb347726ea85897bef9b4a7992fce9075dfe56abf35784ce6a7e9905ae56125642e627b2d330adf071afa04a2466df637b8eb706\n\n# tcId = 321\nmsg = 61\nresult = valid\nsig = 2a64d02e8e4abedc4cfd69f9256e0cf15c3997b0e242dab5", + "83de367b2112832717065bbb2b546ff3347d00b5f90da57eec34a6397ba202072bf8d3d2416420a48f5bbbdc299487f45ef01063d520a63f2528d8bb6b1f17b2f7b85d672908c2718ea7ab8bc7144945bf8947b87754b20ae8f5f252a06b71158af7c49e9eeb5477b4dec4d7811e06dd3026943656c6b99d41eac564c3212360d7f123d2f885631b162c086ae1eb03bddb481afea40af58c6d2d822fed48eacd887192b93895d51814ca7fc1323992494a65da4cc36cbcba56fca8fd1a55220922071b7e0f1bd9ad583dd84ae826ea68b2041a2e931f98908fa1b748f211b543f3766ef6ac5f0efc\n\n# tcId = 322\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 44b58233a3935a1d488c5d2edd0676cb9fa00be0ec9b0dc9464a6b403268d76dc6ce623b2402ef96e14aa6c124bb9bb3220f5ee4df98e834a1b253ed3ecc3eb08799a9b630412ebabbe825ef0a528c6fa5e837211b940b2f92e4fc8374b1ca63f5e4feef95cf7d4d049976096762c659d99317d900ffa8a1b09c10b2109305effeee8acbc7d50201020c77ce8b2f498324f47bae84a2d5ce4899001f4369c4d6520600537908b6f23ba90ed55f6c07cd22d3bc5f1ac66f7b853847f041c7ec999027db00a99188b79d5e1c9d4e5d79cf92267c106a514f18a9e34a6dabbcc572e3f6ef654023c507bc769a8a9685ac2f85dfcfe57bca2fc0f6a5a149388c0556\n\n[e = 010001]\n[keyAsn = 3082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keyDer = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba7490203010001]\n[keysize = 2048]\n[n = 00c2c4a860236d3c9096a076d6ba5107e0f7bd81e1ba916f7375724bd2b0b0b63956813715a3457ab0458b71fb35a45b27f9ef7ac3e579dea45dfbfd07819ed6b7021aa5336c58442aadd96ca9ee9d32473e9d9278562b4d10258ade6a98fb1c7cfdc3b3716ef5dec58cf73b359f389599b4b5865a9863519eb001c324387da755450db341309360e3807c0565b8e2c44fbd5e6e8d04d006d7ee768b8e8436082a90fa0e837f32f46087ab4a0d9be28aa7da1794ceb0172a7f50ed20f6df641efbcbfd2aac89775c761a7310093c671c977fa18b0d6e01fb25f7a432b42c65359784c689205719c1cf6e3a65dae2da434c326dde81bb6ffffbdbf6de5c16bba749]\n[sha = SHA-256]\n\n# tcId = 323\nmsg = \nresult = valid\nsig = 26f2b1e01e80c01766adcf56263d6c01df403e9669e78521274a37de7a006644fc1957fffc0276d2a93b3e9495b2a0e049a95789cec16989bc6178b0aa8825e83db9dae5852b3fd169d205d58f4fc9eaf71f389148f703e53a96b0d99884724bfb9193bae6b4a597ef303c8f6ff1e17511e23a3b3d91a191f22c08d5c1a52516ba6110e6d19577610ac8acf96fbab7006fbbc6dcd7318656e976a6f7e25b8d3257b85260e14473314ce53906b65f43c544d3020287ffe66a4d9ea82e25504b549329590b9ae74d7fb9b836f83b64b212029bd6fe768610f816fece61fb451250fc24d725bd0ad56f512f282603ca72755783ca70280a7294982a1452d89740e8\n\n# tcId = 324\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 58aa35d98f0a0be06186122b803b2b2bdcc485ac634ab1772af47270830492f2e3967201529c32353edb0eab5b98182bae1e2a99f065f54d5ea0d7f1e286cfdfe68635dece589542e04f6eedc425f268a172920a4212668a06668af463e565d016825f16fb2b31d9183a2c9c6820516f48d3a7f85b64381ef4e8676f0cbf51caa8e436a3e9450874794beffa26a050fcb5c48b98df365effd6c715d78dad2f2596955f87725377a52bf3944ebc02f20dc4888c2ba69cf39446d1e4955ba1bf52f60132cab956d9b3a770a75736ea43016b1005a6580814e6c910d4ced592385b80b81a1bddecafef0db7a53df6725481c181f8c42a71408c1ee4651b70d09093\n\n# tcId = 325\nmsg = 54657374\nresult = valid\nsig = 2432bad850926fa58b1cd04c3e6c31373a6d81f15e69ed8c3dc27c904b625a235956e083f6dc51b66893505ae59d3ebe984e358a457bc1e2e1a368163ddca9252fd0c75702eca0e81009696790f56c94ee329b54bd22a79a5b4b565d397ec97536a4c9b88ef2b275a501a32274c0702f33454c06645400e6a3ee683905790bfaa08d053c39573872542db4e1cbaa6a68b7e40ac20d12384d1f72c082c2326bf42a665a56dc72bb853480603f4e7df014841c48f7b7e2b8cb5bff85aeea3cef2a7245bccfb74699e3d8024f29c635e65e6f74f1322c42408edd92e8d0879cd9adb37b416d95428a760d9c6652f0f211576f05c50245f929447e81e9aa5385845b\n\n# tcId = 326\nmsg = 313233343030\nresult = valid\nsig = aec1eca91968d08b4bf15b9c5fddd9e7a6a20be74486502380faade04d84d9a5916a6c0ef2dccfd5ac7397e76a301096732584e8442f20ae80627588961cdf97e344e131d79e6894be6fd51b72122bc2654d00f943683a8db630d35c6874ea56f908eea64902f18c0a548905b3c13114e3526f3d6ed39061724c8e9df498545ac7f455c37d2e05beecd47c15181161873925049bfb4a671e4d1901a75099c7edd6499268229353073a598174fc937f856fe85f950e9059496348d0a1d9f98aa94208d66ff3f58792ab0afe27075b241a636f1b5835f4a4b330c6f9e032a736119a1d8feb99f6c22f3490a82a65710abc3767e81ad70a230ac4b1db9a327ede40\n\n# tcId = 327\nmsg = 4d657373616765\nresult = valid\nsig = 053313327ff30cbfa78b59ebd4de78cf5b74243bf03a30f74e65b2239fe339f989a90609a04bbb6014af40bfbdb33c5f58b077a25d568747de477709bbb59f16cbe3a3ace7698371025c5af106c8714ae3f923d243b6f75218fdc1c442810c2c90db16288335866dba2fbf195c1c54ef944839fa465388411f94e8a0c9265663f92ea2a9d2b17e803768a39828b4aa7eaf6954feda78d90ec94eb1c6bd7bd1dbd54a3e80185018f18746c2d61f980ebaca6375e5d37b37cbd9e213c52d2a00d146f2f3601d42b1d3e41323338257d854827aca44ed28fa5f3fbd46d4aaebd7b4c39b03ea828f3bf7e40d58316e431b6aa1209448347de678ae6e1d860422eaa7\n\n# tcId = 328\nmsg = 61\nresult = valid\nsig = 60c7a8906d8230d206b22d377cbb35ea97d9ee279dafcc7b60050f160868137afb45e357e8c9f5d8fe8bab6ce8952179848cac9dda57f84fa2c0222e629d2ea265df3b3442ef41fcdd1ce0223def4e3987738b8b56b10255fee391f6f1559004046115a8f5c610cabefdcdd5020a41cb4c1d377f90a0852fb4dfaa0ba25463ef997db4442e47a03836640ef4504e377656b130477a7a4356e67fb48b716de4542599c93334c58b8b00b71dd20746f6e3130fe8c5ff803ff261fa6b862134b421f23e3420a2c4ad2aaac1bbef22d32cf67eb126b8c68fdee9e3a162cad68afc9826c0af273c40511022c9aaf6126ef879f3d27bfacf3d6e0add2098cee47d4b96\n\n# tcId = 329\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 2837fabba04e65e8d4f140e2575d557fe41e6ee280cd371bfe3f21b14bcba4c072eb0f156d18f396192a5d4bea5849ce6a4d1a2854395a1b05ce3e7aaab379f65449e080e490dd2a0d17f2e46a5e8c347a4f22abddfeaee4a62127bd0164a16c2319cb5cffb78a34a5d1a6828f25940d11446b689315bbac60a50a372c5b81a755e40306e39ca2f2be403e99d2384fc1d6b761f57a0ea8987a6be50f397082e6446f901add850738e1118ddfc87b0e1af2eeac73d80ea91f68d779f80422ab3716be5fdfad58d935256a7d2a5b7b32ece4e288db9389b3f48bb3956af9a7567aafdf9f8203daf466bc37d62749e36a6b6a3bf1c4bd2db15ccbded7eceb83a4e9\n\n[e = 010001]\n[keyAsn = 3082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c", + "2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b12030203010001]\n[keysize = 3072]\n[n = 00c6fe23792566023c265287c5ac6f71541c0994d11d059ee6403986efa21c24b51bd91d8862f9df79a4e328e3e27c83df260b25a9b43420affc44b51e8d7525b6f29c372a405104732007527a62ed82fac73f4892a80e09682a41a58cd347017f3be7d801334f92d9321aafd53b51bffabfc752cfccae0b1ee03bdaff9e428cc1c117f1ac96b4fe23f8c23e6381186a66fd59289339ae55c4bcdadbff84abdaa532240d4e1d28b2d0481dadd3b246557ca8fe18092817730b39e6ee378ffcc85b19ffdc916a9b991a6b66d4a9c7bab5f5e7a3722101142e7a4108c15d573b15289e07e46eaea07b42c2abcba330e99554b4656165bb4c0db2b6393a07eca575c51a93c4e15bdb0f747909447e3efe34c67ca8954b530e56a20a1b6d84d45ed1bcd3aa58ec06f184ee5857aaa819e1cca9a26f4e28d6b977d33916db9896d252d1afa762e287cb0d384cc75bfe53f4e922d02dd0a481c042e2d306b4b3c189371e575b25e0005a164cf69dd0976e4d5be476806ea6be6084e71ab4f5ac5c1b1203]\n[sha = SHA-256]\n\n# tcId = 330\nmsg = \nresult = valid\nsig = 157ffb942b1363b5989ec4beb93fb0187ef016de4ce055620825d13c3dafd4fff621c71920e884ba28c5e98b328baac29ad4bfc4d2cae2f0ecb9d1b6c9fbdfc385aa565aaf6c5b3150e085e0316e21d7d440a873074e5d2700d961114ed420478647a4769d832691f7a004d934a89dc249c9343341902d5d0c3d1a623001265634216beacd5f756821f21c3b58111790657690918a2eafa9e85ab1ee44edd3d8bb89e892acf411ba9eaaeef88eca37dffbda72751c117364fd1b38c840d7b42318fcd011a4449aeffc2de32836d3a4f704d4c8ad4e078315d0d1758f098f2ea749ccce62aac592ac4041b5e733ba0431b88332a39a2af7f68f9bb1f469a793b280b964f285ce5cd1ff3adcd7dbd464a7c9414ed45791073f08415be2dd9f01dc2fec8c3a26fe97d9778e2b2fccf71a1ea5e9ce017d2d46778d7e37bb832ebd5825b3257a7852db5cb6c132bcf9ba3522a670b0e866585444ed3601fd32a922818ef6611626eee3ea99cfcfeeaa4c370567cc65e0479bd35e091b772d7445cade\n\n# tcId = 331\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 631cb4bed6b79dcd3827879f6d64de3ae17e0fdb022be013e733bbfe0031cf204f0508ab87a2e2bbdfaa16cf24acc96b3fd2e72bc4a224428e515d6f1e0ea6927eba6ed7282a959e5df5e52eb3be9a39cfe139ea2fa45c21eb81b3197eff655b918f7c5fff6abab33945557a922063f9600a372ae7701db686f7e1fe4a6e804a0f624331fbb59536733bed3710dcacd22ec74b1a1386d045372853cac91130703ecafad7f6f42ec1aade5cb865339743c83e882f248b0db0855f487a6d3b55442f67773611a11813ff46a58c762b1bd70b5e870c3095507f23758e90b3c84526f47a825f0ae787acfd3ed349ca6786a2e84ec500c6042a9027a994c328c7a6868e6a81481b294383edda62773fd224af46e782ea3f00468515f6100486d94e818afca1bdb81851e62b3bf4f9236f061afafb3e399b93e6f6a295ae200c9bba5ff5aabcac8361c84f2e69aff8a8a21720b900d52ea4bddcfbaba3a231bb9b0dd48f0a4ef1cdd255b3524ca0633d04907ab672314c5e3173108313ff4a97df3772\n\n# tcId = 332\nmsg = 54657374\nresult = valid\nsig = 5819a699691c01a7f35f0bb1831a1cb65631ef693f7c9ef89f1e8460ee2ec312f6fd38fe382b3bf4db8f5d208146c32c5ed2d3b13105743767a73529bfddb5753c8cc13148d41db97f69ea1dee0ef1e1de990ff565f633bd3cfd315a7dafc70aa7f27d4f6486a2f1e2711e7919c5c73c518069338c0ac984d75f58b00fb0eee0f7da6c9c84d97955137417df8f20c02b7893b5cd929ba37f6b3278a1bd35748e14086c5f7100abf2edebeab5f767bb83d999a61cc27531bb67e44a92004fba9944b9c5f770bc66671d2efc74e01fbbd2885c5175a1fd72b91937c324b8d99d3592bfb73efb9641b87949266de441b61d180e141de510ae0cdefc2160df918c08c53799f050ca4eeb3a8b6b5ed35b8b59d3acd13a600a8a137eb1b8c1abbf55f3e99cf52d7092d1e3acc08583b04aa25a052668bc982abf060ffb17c1782daf76fbd69e7fc9510c5c6a68bd525719be5b81d0f2a8b961f1aeac7dc13aeeeef9986c7a47b34f8b96167d79f7ec458fef7345c1c31bba599d09b3fe33e738bc7da1\n\n# tcId = 333\nmsg = 313233343030\nresult = valid\nsig = 636d31d8d5dfe0fc6ab01ef2ccd4602dfea62d386b002c429e7e846e7a98d0cb1d448d25be039d5158887ab46a9dd49c41537a89036a065fc10329df051e5f2e5c1d4436e84790ff6db4d3f31575e5f0fbdfcaee625722c5492fceaa3fb29d0a865200dec06e117b04753ca9450a7ca7f7d1a1176cc38ecab721864413a0d7a22d8fc1595b6cd0032fbf154fbbb31b56d3bf963761ce8ec9fb38bba3419716d0d39e976857e79b1faefd5f5a2ce0ebd94968da1ec3a387804694d90f37b34033c7f70ccfb26beffaafb7bf56c1b8385d489217458e0a68b5d680f9fa45382fd1c227ff3c11e3ec82426ec648a564f0e886e5b12e695dd2fc8465bd9d08731fb140084c79be64d915bcb4ba10f1edb4c37e35231753be2d9f339d37d7b5f22c91584a68a973f9cc469a23d3b5800157dbd72a8405fef4e444ff01f7fd23efa143c1887504e81773743843d8a73209a1deb66c5f305df539bc30e871332e82330e5b66fa6ea253b2b64b4c9781011d20e80ddd8cb83916834eb8fa696b0a4b6bcd\n\n# tcId = 334\nmsg = 4d657373616765\nresult = valid\nsig = 08e0ae3dc0d16c927c423f12a87313afd1d66fbd5d09f48a4dd1a8b52102bbdd208284cdd692932869803a5c7f041a4492ac2e664bb6dd981c370e0c79ee3f7c5c6dd37018986fc2cc618139fe3eb85c0616f0673403c4afe7cbca49c1eff27bbf6d7e541b285ffff20b80bf61dcebcc4250068e25ef5a8e7c3306e49fcc2a1ee0f500a3ec603b472082f12ce4a6a12a6ac66cd4da8b6efac0796e9dcdc66c095a6282ae9a32ad274efe63f43e725410e6ed4c480828ed876b76b71b1cb8c142d0c7a51dc202af796d7bb55cf544dbde2f564f31994911ec7307015b0da2c51abe265a04a74b9afd0791a68e725cd7d8b473296c5d948157c10bc4682f74d843ce72e9ee8719a7a49d9de2f982c5d4490451eaed62c305eae3d0f9cb3493bff056a0dbca8579b7b41dc8deb1becfd5abb455634569d58c5b5535ff1356ccfaddd14e0f9f7f69a7ae9cb9f4c0c9f661fde349facd21f0021423d3a9ee5031855dd242f27009090ff0c15d1655317383231799b18c01fad231385aa5020990f41e\n\n# tcId = 335\nmsg = 61\nresult = valid\nsig = 9858e2557c6b99fbd84bc7eac3e31283a4efb351ff019343760a1e282368938e29ad902d3eb6cb29b35a036dfbcc7e06d2f1d15548df59ced35326295375bacd7a9d28a01b4e8acfb676d80b6295e19c6b7a259df56456e1df72f6a746e9cd31fed9b79b35d7a30a7aa257e9e8ac60ea886042b9194e7a383d1c9f71c84511faf6c96f7ae0e690112b26bb60cf7bb10f684e4fbe2a3a1b1c0caa9b1bdc79fde23fb758c2ba57880a4de461ecd2bc696689438183e2b9724fa68258f461bb4405425620a4d95c87ddd83e04be381bc743b05d26ede2ceff8a858636baadf56ef1dab54080da0f516307c579833717def053c8906d4f102448ab22693e7f52d5850193a40ccf0d68d1303953771a73924e4bcddd8486e1477d96250bf6b480a5f4b822822183694c52a2edacb331564444f0335d3b17d511ece59889b6d961767a3192d7f081caf7e671addb3757451776d4bd3b03f7b689843dcd59019ae4f292dba54738a88b86cc6ce3b123c61a446f4878b627a7f3585d8ab7bca9b258f10b\n\n# tcId = 336\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 1294490626bdb36a31c93fa7853d93152d920b022f1b473bde3083a99e11aeba8c03218fa07d6c4a5f8b2504d2cb54505c40130fef5a2412f7a5ddfec5e2c8b5058f7cbde7ace0ac01c7ba8a1bd897e8974d991ad2b95c2f03100a34ff408a788c70ab5ec73b5356a4e3c7beb44fcb9e2f3f25d1c974ed962b148167684351dc2a223a174c9744b092071d58dfd39c38364f47d292651e7806ad7962bbedb64739d7ea298f0254244790e3971c15b861c95f00f65532aa1c77fba5c04ad078525128e92ed2b4f1269ae744547e3efd4ebb63e9df844df152a098c47fa492bfe0f1917ec973867c7491f64c172cf3ea1bc3f97b42a397e6ad88d12e150d3dbe360071a3285d6a68ee6e736eb4d7d637c649c2f545259ecd430b25b38a1618d69a4602ca8a2a151066f12c3807f5dc7cbd06bf095711e4483cb0a89c26dd9e4b0b03e05beca349f601c894f9a245aca3204584a9bd844772dd87b83d481c8df18b615307eaf643cbe856488c160e077458e899755301749d2d27bc190d68a5da11\n\n[e = 010001]\n[keyAsn = 3082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e13", + "4c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d17690203010001]\n[keysize = 3072]\n[n = 00a07887f373378196b0b748cdf31c14735ccfa0f117acafdaa21fde4b6e7559390b834e7b92e9e1cc9d49fc0fe6cfb60429652b4bf9a7768f71fc4271ca6fef4e431192ebdc98630bfb94c5baf18b4cf7881d84483e4c44c22db15a9627705a0b42a26d6f3d6009aee0d2a71bedf4d4b0ee6b6fec2f16e1277ecaa3bdedba406473a476d1688df0fad1da795526c7e641981b4812b05b692d60c60b2bfa424c8b620f40dc9dba59e2c710e7ee750b3e134c1f71f43210688aff17aaa41cdb5668753f0006b1cf951bc5951f4d89a31196985ea55c0966c3662bcfe4e4cd34f12e4afd7e5c4a130739b1017d6a583882fd72db1a67418702c8b01353ccf75b7b93faec0e0be36211d5f2bd910e1552323711bbeb73858f899cc1ec063ef67d88e0c699d5a689c52106f06e960f09d2a3cf84f53bbea2a473edf2e6e0176801d3fa1c2d358e1e5a26f646ac93796ec1fadc6991c0ec19c9dd90b25a2dd3bf73d2cf1eea8867f96caa5a2df54973acb2a2da0a1367ec74afbb968f517765238d1769]\n[sha = SHA-256]\n\n# tcId = 337\nmsg = \nresult = valid\nsig = 7fcd504ffe34ea33ae23471cd6cffe52e3a51a36d9d9b8512cb1d2bcf4a6349ec8d19ec319f21eb089511482a2e449dfb093fd67ece3ecb527e0ffe3bc93db2ac96001c1d5afcb137883b0cffb2962b4a2f0a6ecab110d8a636982b685f6302216673431a9f81cdf68b7e759d95e7bccd5d308a6f06f1095eaa1fe89503c085331c06a5a7aa65a8e672161d3e32147011784eb7cd752211c603adf994aa4db668eddcc1f28e96bf86f1a57d1ddf499a93f7d91821eb6d6b74ae813359a03f3f2b77ef47828032b6a57691a502f78595cec29c88dd7ab0ffbe34d96989e43278915b9051119282e1d9ce4f412a3865e0bcdf46020a225d78d636d8def2759330bc44996826db26fe50bf7b9eb4f5be1fd1d983f90c94a42a24af519732a9f2696b2828d4f28bdc8fdbbe71a92a454058d25c8b755f49126ae238ad0396dc4d4417577ce436472ea3fccd55b96cbc1be2e61d98d2904cfadc2b9917095a71bfbd65ed06187f992581e5b57e8308b10980edb791ffc1513b80221068dc3ce1c3d59\n\n# tcId = 338\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 5ed2cd31c2cd198f7d9bb1340818a1f832f734f0962759ddf8fbcbab7565c0905798281c734a53dcaa6e224a8aa825009e4422bc93578691b266bd0ca257816ea08d4641690f104f93908e0a6dd032cf311bcc1086ea5804bcd91f3638a20164681561242277aed421b3417ba93649a96b768c4f2d297da2a433d0723033bb826865b35d459930eebdecd68afa88c9ecc06cd0d699f8ef3085e0a6deb954258cf54cacaaeefbd1cf64fed248c6e45676b796089b115229645e5dd1078f8c64150b9f4d4d439b6a38c0f4d223a84c545712c0b002a8efdec6f8da91ec60b7b2997c6733ab7257ed0bb19c6bb634f1045c6041fdc59885dc9bc2ca885987c40b18ee9315e0ac7d15d3b7d1aa1bd77322d43759b89a279f144a141a18da647f73f8de1b46912f0bc61686e6e05d12c22130be392f2177eba82bcee7e351967208f0b270d1f68298773c30e4ed01dc16e8d0df24510778f0ba0e8d92caac7ab4e3e7b81a09b9648e696c2c2834e8970fe7159052ce51603c92e30b40a1260bc17067\n\n# tcId = 339\nmsg = 54657374\nresult = valid\nsig = 977e97ab0d16233a711b22b6c0f1295dac753e3228e81e4393caf9a6228c05783cf4a8d9785e8968d3adf84cdae4267bc743fac68dfe3b997e9b6dedf19c8dcb4dd7904612ffc6aa56f5227240152ea3736d62ba18f0ecf5f7b5095fd95819262275340022a498095ae82105275c8a5e977927c681f095142d74e1a103a9df38bf51c81becec8e9c624d537a466447c87d8d91920d42ae281348db81f1c241dfd1ccb0d210017459b03bcb6256376158ee51bd17d366c4c61abd0bdfc13bbd0caa00b8f9d57ca27c7de84e5f381c22dca83b6812dfa71a57e8ac0f9f050f29d102f9a580e79b27826c767071eaf9e6d39119e38d22c6c3854367fe819e6aeea71cd278b317163ed910ee1cbdb27ac4e20935ca7a58333bf023b662ecf3ce50a54d4d20e6b690b4bb1e23a5670b454d011dd1d7640c20dcc4a779dd31bc37966bd6ffa4c88bbb8565924708e4ca2e71d78d531d7d1b81988f2897a5f9ba701ab51f2e9cb860d274eee477c0f06bd8923941419a78b7e019fcaafc3d860dd755ee\n\n# tcId = 340\nmsg = 313233343030\nresult = valid\nsig = 56709e7ac1d1b37f162bebb32a9cb9f86c8f9473e5ebeeff4ce5506642688f0256b5f1fb06108b0c3bd89bf7956e07ac22a4154ee4bb2cf5672592852f24d1eb46211f3a9dc55c515fa87db83d5a747aba9a0b8b3e07e1be26bdb462a3dabe7312350e6814cc857a1cac7ec6e1789f69df392d13fefc49acfb3463ca61dc59f619f34d75de7c7532a1c29228a57337a139a08bcb376ebeea36fe92d098107cc57c1ab328226195844a8cbc292dbe31523a842c5e222271d1ff98ca8ef5985bdd7f8c0c6f9f1a582e07ad46fa64306cafd2ee768baea1e2cb5aa42443920a6ec40e168e5de50dd2a94243f717dcebc9b4ee47a5128369b41fbee068f848b8a9069350dce0b83e6d5a9a9ec66521b11b735ce4ea3d8c7b4ecd8695cd87221d1d7484c9a893cddcbcb304fd203e7c2120ea5104c0d3e8fec59a6e0d1c44abec68d98f6409be5da8aa8800a93f457ad6b085cff25f7a51602691f8465391276e71d7068977130668aac2a533444bd6cdf93d8808aa44f3b79c9930e276bceb33dedf\n\n# tcId = 341\nmsg = 4d657373616765\nresult = valid\nsig = 62918c23b5be627ad47921e80c8e17b16ef869f46950d2dde3edc55e09015af3adf54fdffb81be0c7825eb0d34700a2c0864bdec51267beea4bb0db1a36324f296875422661436915695d83807073cb56f911b81ca98da18d50c55dbfbc9da7aa611a8cefdbe45b634682a2beb9edf69fdef5d8fafc0c07da65c0fd0bd1ea5779f7be630b0cf55b4c68ec9e6709234daf933eafa209795146ca3d3e31d338380e91f38d84bdee51c2d678e826e5ff8d3346ec471405996b4541f711c6c4319bf01c8e5d5c79a54144c3963dbc5b4302ba3c813d7234a684afe2ce3d8002346291af1a53f9629d24df957e6fac061b2f68fe71a5a218876445b3669dde2a7ffb327a7f5fb5664ad6830b5faf57ba9be1a0486ed66f6beb3e48d05cb062142379c610b457002fd96d91b949b4f45491c7effb4c224305392720da3a16d3d1bbdc63cd8f923b7a31363b420e150cfe327e34d57729485f8746769656c247318401ec584df70580380f77c5e4d5afe9e9e8f97edaf19f197d3c49b17087e37e06227\n\n# tcId = 342\nmsg = 61\nresult = valid\nsig = 2aa6beaedf46b42ececf75c0fb62fbc0909397e96022d19bf2e5ba0cf0fb932632c46551287354bbadd0db12f5339f5f316908d9526eb61571fb54644ebd2a5cca792a8a0a09da915e14ca140631d7a5367aa9b15f26b7ff21bbf534c24d2370f0fffe966f827d36763b4f562bd2c05d8f0bb77a0afb23bc97c553b7a71782e5f11ae3c4790479bbd5acb6f5b4748d4de6e42e475565688e30471336527497f90007fe3e2d616061702e8f29805d2a948f1763969e1f9ed261edb81338457d3c824818cbbed75ece77a1a8ad153fecc94ab5c551488da042849ec7aae7113e376f9f143a95a7e9ce4dad15c0207da963328bd6de98cbfbc7f36eeacc92c8c321aa0a86db296139f4e53b77f4fc6f2b084f8b317f80fc3ede7f5f2eccf58fa921c874b43fd21143217474a5d4e7c900a534df99a1ea394d793fd0b8172076d8f8dff24fd23451824c2dbe95ba46b0a1165e464698ad016b7b3308ef540d2e2ff4c747376b7802adb7d409ab0bdfc87b407a7f130f1c8a52281d89859e67e0f883\n\n# tcId = 343\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 1e7d1af86754f6434482e5817930d9cabac8903547e184aab1cc156c4c217d9a2b2328577e74df353e0bfc95221dbf18b912adc0587a387ec0aee5b77ff4e1d9d9ff4b0711d37fa21b7866e3aeeb44f7bb4df43aa5cacfcc4be7f2be77f8d2a890e279838455a2cada2fbbb9f6bcff5e39ee1dfd17bdf96bec4f0bb066fe3b529cfa8acf48897c20ae4c622536cdebae92449c761aed868581a17e3d4482d500f25e65ec7cecd77574c86c38dd346ed0887294674d8296315250cb404ca144a10bdccecb0b30fc5c2d5843f350d03a0a99f861b138cf1d754bd7e61d8ee03283c04a74c66b07d8e153a11e8bb47d16710d186704b11b089e5a7cec2fa7b5876fc25df8d58b65b125c3e5ab4088756b4f9c2fe44227c478aaab4db5a17dbbae0a5c548854f0a7801b7d43ffb00940aae99da12b6520b8e53d0c1ded21b209924aec202ec7fc75863203328b66e8ec426f121618e5b5bda0bb9c967321620885c9e1142366d1940389ef9bb1ee57991019b38cb685a5c86f54719d6d5bc9d5a108\n\n[e = 010001]\n[keyAsn = 3082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keyDer = 308201a2300d06092a864886f70d01010105000382018f003082018a0282018100fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec473", + "9afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d52450203010001]\n[keysize = 3072]\n[n = 00fae12363cc51e266de7d74b989085f10fc08f44363fab4ea7fcc56101d116616c43de313b70569cb27de134ecf35fcbcc448a81082678ee1ae427c48f459ab2c42c9085911a3d81c914f047ba46ef1a52a4983eba1113bdf0ee95e85cd23224cf832fe3e916d3bffa6ddcfee0926938b2c51c8904bec4739afc4f07979cbeabd514be5a2b87abec71c7a2b39c736d776442ea9e95e97ddfcad4c4c3b41fe856f81cce539b5057abfc6fb1aa153316ea4f8e76b8dc8804ee10303fc2dc182f7ce5d907e78729679333b3b012574b4c7c613c020ce1388ad37ffc0f6b2330cc5edf7ce9ba80eb984b6da2ac59aabaa3a29172ed2937920f47c17447e6185119b9b38a9935658997b487735a8184caff10a8f555d034552fd57471b293f813f19aa6c2139877992436fd1949ebe2259528c91716414aa72ff90bb5142d2fd5e7ba12d8df1ac995408e7fb645a9ab7b6f695e4050500a9042253833b055182657915246589f8362203b5517b2f7117d2aca015fce3cc41c6b1bcb2e672db142d5245]\n[sha = SHA-256]\n\n# tcId = 344\nmsg = \nresult = valid\nsig = 16b880609d1cfec88b79e4a1eff78c12413d7a79ea9bfaa8b1552a2b05289d8126002e61e1bfe9e1d4434494c4849c716f57040d62398a64db6b4ea3003e3bfeb8427ecdab11673842bdf900b5a1fa005fddf414ee8c5221ed4b4234394c9296ec4139721b7d229a819abe018b6bb200f2a9aa144bb76be44ef095edd1d26610a9590d88c487bb531b2d88dc0b89216f33dd58d42d2ac045a458ddee2569ddb03923585d7bc0c8dbf442ed5d9a54b637712a712ab162bcfe0da0a9b7b58c158683dc8c457877203f1da3fa736d2572bdea649e7bab22cb5afe8dbf27c50e7aad56223492a02a64e1f3f8b598213004a75fc879ab68face2366c4269d9ee0760a43e7f554d2f314981f7b0936e7e347825405a3e2e29f531429e6f9592461dff49b86ec41b0443095268dc0f5f62d0637b8ff220b5cd53bef406e55f1739ed5513a91912a25bc2c55b2409fe7cd4366802eec3d6cf315323c46e0f1db2d1d327e6b25c85cf079a8675f34af60d6629aa3766ca9e4e25bf64faf9f29f772545905\n\n# tcId = 345\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 6ab1816307e42aef80c2438297bdf63b6992212dd870cbc11edd53b7ebaf9ddbd93daf8d62918ef87337982528962d0c758d1ba50a088cda5878c2f270a1eda033519dd83bbd9643ff61d91316f12c7a5c8609afe703a27671dfa32919da6e578935afef082636324b59d73144c944e27b7253fe4fbc74670d196a93e14e619fa4ec0f5b531237c03333471ca968f5d64c2c87a952984e69a75061a322b14c140eda3cf914e62b08f4fe339d5b72ac93a1146b1a70e8ca6b3a4099046a4835c30a6cdad3254e7944bcaa19bd7577ec3fc5969d247421ff67466691f4638e553be628124e5a6f514ab8054456bc70c756c866a7e208fb3f2239db9a0614d30387e2ec7da2cefa2e99f3cf98d8996d7785325b7dc294703cd44c10de12825be3db147c08a3d8cb0b669368c2a82abdf75d5ff749746aeae430a4b6bf4db159f0ed9cce1a618af515ec5f8711838adee43c30d8573efc49413ebffb87e034e57b1ff29f2a9d8cc4e85cf62ef40ce0c822dedf5f7dfe1078b11d0be95b02f93d7cbc\n\n# tcId = 346\nmsg = 54657374\nresult = valid\nsig = 2565180f58745a8530e5003c6a879355d481c142d191d38fbf33e1f1f6dc65cf488f3691c6969444f54a40c37bd9be3f33ba5c65e5ed8421c228cad22e4962837dbef802105fe1ffd5a76b353d9de43763ed31b4258b131b4956973cd43f212fa899ad8cdbe0d3225abeacfa218758306c97bed7d3960aaef0d513a29721c89f1b533981eba50d98672e99923be57bda4e6818eab39e8634dbc38b33a18acf6b8fcb2014154960d79729f26cfe9628bd5c9af4f7751cc72394fb2be947db13fda1fce8c8120bb55ffceb7cb26086c8efbcf072420dd9b594b74e8352ee339b198a16896fb199957a1d89ee56bc13dcbd9d03eb307265c1861626a6447b3d5bff6305def421a7f59882a272434b54d6f33591f59bbd7c852d5b761f3c4fdd8e8721cb99833ac10ef376b7b7914eb7424a6f6fb3ec024ebdaf630eb2951c0a1841067582dad1bef509c0d55eb82b78ddd042dc937e938339c3aaf19dbd342cbb6d56562f1daf96335610fee3f551cb010748b428197d83a7187f5d85441b6728b2\n\n# tcId = 347\nmsg = 313233343030\nresult = valid\nsig = a7ace057a106782b546816f8dcc81cf41216c18e587d8a5753ffa780fc51007196f37a816beac993023b41d192ac88cd30e2e9719309aedc367defd2893d767dae6c6148dbbe6fd4ce3636bed48b746982795dd206d11e603f77fb46fd56ac9e51a88f26c9c9512d3cf851afbfecb061bb6ffe7510bc4a8f4c17b8a6135f9b80557149834d18f4bb23822c1384a48a62ef3e3b723fdbd250d25d25177355ed361d54f372a78798cc111d6374d40062c5d4c5e43e8df75af841cab36bb15c5d4031afef9ae76670059a760e7aa610df8517deedcc6d616366473b8193fea07b3226bb67c3989778a868997371cc4f1242c77e85c2fab1c342ac49131937f16f4f0cb4342874374232ea1aabc7e3681aca47bdf358845f668a8844a7732a48075caaad959354592f5f3ec413cdddf337c64d0263b4096762a7eeb495bc7bf9868c9be5334697f7118c8c1274cdf300937955e36babc895745d02c22f1874159a33abe0cff3da62b76b3921b24573514dff80505c10c530a78b379da653dbc2947b\n\n# tcId = 348\nmsg = 4d657373616765\nresult = valid\nsig = 5abe9417ab18b390a23ce51345cdf60038dcdebbefc81203722b839434292798b9101604a828b160d3109541aa52f5d95f0539b8e0eab6391e59a5385bb4cf123486add3e10f22d92b042dc3be9c9a8c4f93a0976b352e1503321437129c627354261bbe00bb3941683d81b9cbe6ad0ed570df5b23b64ccb9bb5a29545ef48dcf1876b6c614f6e4aaeef1c95849908f49c041c06e11b4458573f2015c92d5549d4e51bba97e1ed6f8bf3f0440790113da9fcc014e962ffdd8b671156dc60dc197a2082204670da07546b49d3af4792818d9b0960038bd0fb274e1358de3851c0f9d3c1bea37fdfd0b3c277e53063906a4e3397e9f21d040b1965d08f1a2928079672060ffdd153b9af60530c2e567cd19963628a9eddeffa390cb66a1ee9f645387082adcf4c5c25a3823906dcab7d0b416bb7b5a934e6f93af02ea71cde8df71a57cdcf69fe8eb29284bdc4604879ed322cf7fd70e011a231f7a54c44cb99ec1b37dd9746e061806dbc7a05dc8651effae59a1bc4402ac4763ab421620d2d44\n\n# tcId = 349\nmsg = 61\nresult = valid\nsig = 5bdd4aba744fd50793c2710f70c7a5ecc6076aad1b7fe1272726de87d981041c2ea1fe58527a39a62fa991fd5614df1accfab3d20f584030197abcbef1f175d9124a3b512f5baed3fc6124b18d4b3501ccd57ae3cb0187409bc12b19fbb89aeca03420c3c78033bd18bbb31738172757cccfd95955feabf1a3eb552c9f3510d9f3a6e9eb908fe56159040aee44b92ea9691dc2bf6ddc5b3ef876eddb3a34045de54991217247c644aca7238794fa63c8c73206477c3bbabbe15602241f59c4fa6101980646dfb42e8eefe8f2c1070324edfd2a6040db7c769f0c996db474d0f68e2c2f498d61d277615df445a0423ed6eef5fc10fb11882287a6e31b2524572ce219b0c7d3045ed5dc04dbafe7f5cdf18038608d553147940273bb86178b4bb4f58b2c05a45aa62ca5e9c6e13e3fd0857f5956a70b646e5ab4af759edddced019d10914f416f2a95969f3ba29b4f041f91d33e5d78c0488c48e7a85581c8d1479e1c06271e232b4e3dfcd7571783e32e6945d9e3429ba9c476474b5a689656dd\n\n# tcId = 350\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = a0eff5758088bfd882cd3202ff2b2ed2feadcf2682cf3d5ced11ed73713e870a4baaf6942d0db6f6f7314c3e084135460040d22c29c10ee8033b9355235705db987206b24817b677a9d5ce452340fa56a53eb4d9caedacbe69aab385af2a5e1a70306461c4b7f4d44efefc6c301dc00d9ab8273c6e13e47232e84e58d66c32cdd80ebb7a44374de73bbb72982144f267717797e83d7a702959fb039f33307a6175a3ec22fbfa95e63b22339813b388ef55c98f2654b94e3dc10a791f0100684b1ba10c0174f531c91b42661011c98638a8c8676600381ff82d4dfc2631cdc9ee9fa6baf81c4a942d4105b87a4c83b837b4f42dcfbf34f8ec2ad704aafc769faff594d2ee4650d8d358a49841e0dae3f2a2e35fff3f1b869f024275c25c08b15f222b0ebb555247907b5215ccc65a7aa7818fb2ffa436ee7825233b1b6b03e4091499263ce08faaf0fff49ec56480dc9e307e861f1f9bb0f9113015e4d2c2bd430253a00d54372db2c5c43b6442aa944f0054c3cca95c4861486069a2d7dc9c98\n\n[e = 010001]\n[keyAsn = 3082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320", + "dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed0203010001]\n[keysize = 4096]\n[n = 00956353ecb7561945dc5544e4602466078c93f28507701ffd39e2a9813c8ac8740e6ad61c955d484e513b3dcea527e001a018ee2c207c1806a96763280236cd3c820dff79837c9b709cb4b522d3ddbc9192242259c43be75ea244d37ccfa8a4c75024a2cf7cc76e842ea69cc7ca1227405b070047387a5068e4976e4b8ed5f9aadd7b4db024fbb8d7bd8a040d8f6610c1c6eb1d4b606dfd182235d0360880304d5a750603af0c424b8c8e6dbc12c3697d2d609c97547e774e2e362ea96d1690dc9432112c535258b3db2c4c32ad510d6c07ad0788357883869efb8b629298724847925cf42b34386be700f02903db5852276bee2370941f397bdc3905e30964a0b5e73602703340960c3ed6078263b611f197955fecce4b9a32e43cd1d2e5e87c4ceb65edc8853a7ee31d28e16e5adffb8ac7b760fbfc63d5f174f4d0936461dbb12c964a6b6d6cee752e5fca1ab4a9fd238dd3e8860a1d763d2019f9e7b99ed7666d4e038710f90e0093bc566987d6c0092f571376e705b342d066c54e6e2578927b92c1f0928de44e9a6e1f49b907c6aa4f605ec9c398d55df81c67373b03cc8110162fb417f96fd321048647dfcbb392455115cd912ea83351853e6a185284648842adcbd25e67174a3b93b8a64ce2ce9de0e8577b8b662ce32e2565782665dd38e5bb5fcc4fe12e4320dab7773b545a09c6d39d9dbad459f21f3e624ee6ed]\n[sha = SHA-256]\n\n# tcId = 351\nmsg = \nresult = valid\nsig = 368105195f0dc82c2cd37e8edc6ddc0c983dc13ddcf6f9db9a24b52921e5280319a1bcf797f774066d643e5c99b811f0ad9df2a3f430f4848a03ddb97e06daa4d01ddd50bf2b638935cd26b19d6ffccba884a4e7cba35830c6cc5ccce38bc0fcc4ea421347e241711a551c67923b3daaf2e9c51635d416cc2393a9a4f108f84f26990c11dbaacea75e39dc6082b539cd2c0c8dda6c78cbad12e14a352b9dd5c92a3702d8538fcce0e92e26489ea83d75c174ab671210fbc6c397be2167864b519b5136d23a4363ef773ebc140e1da4b0a788d7b1f15a300375ee42b27261675fdfc60c29bab7022dc2e624c7d1f31e278ac089c5880e701bec41f63c8f897c0cecc5eff0a801dbc58d7d4df6e860c20e61f31d9ab2d50e8fbec7471070d8ed06c4c9c725cb63afde0cc4475d3dcb7dcad7eabd874ddf7294cd9d2a66b13b6367a14dfe3827da0c6c8b9e734deece80fd79609ce5ce0a16de6610fd04a09b0b2411bae2bc3222ab4c02867838d0c8346c60589e6204b226efb401841fb95da05ff32989ef935425b943d1b5d2f8af5113491a36c60a98c90b6453144f5fe00a0df3de8d02f0f59c7b94ddc7c8895b1dff8d88f69a9a2cfbb55eda0837800950601fc9e230a5514c9674fb576df8391c51ba0febc29c267462ed5337326b6f40d243ad7d81459ecabbd00126b2142e6ba10d9f903a9918d2280c63ee84b47062e1\n\n# tcId = 352\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 46a6c9cd78e38d5567795dbea71872ac16da06725975cee7d8839d2de665ec3b8411277f3e026fd2f9b836d788b48539755858bc8be0804147b59c09354b372713145e5a000ac15744ccd2db5795727e2f4d5f67bcab5e7cb1290824963ae88528aba0e6785989c8adb86084d26dd1faea3ae2a6175739fe978b576eff673832e513419806d206e0984d1ef0e1c8d8981084ee2ee569806b003fb7f08e775998eba1771f1efa070c00a769363c6101d5c5fc6140f102469574cd09746130ed80d14eabcd0a0418a752d5595b5f40ee0fb05f5f9860e600d75fbdd53461f5ea18be5bd807281f9e8fd6cf7eb31985206c9a5033cdea631512bffdd977fee5e692b3153a2ce9c7708a9c7d665d84762740cc9ea374bd32c18c2d76320e4893a2fac374ca7122e01e08011c351bd33725a6adad96becd44e4ec1032fbfb0c8dcf13cae9556eaf419211d0149c574b8d12ffe5bc59468c7c549283be541697258af847e52a9aa8063557dfa40404adbaa95e38ad28eba053aec3c123e98ab1b947bb774841e9040dd5409068a2c8a84c530fc4273897ed845d76dbafbf45af1a8fd2767234fac1e852453d8b7eede02af228d8b5821238a50a321490dab74d687a3400c34f215b85823424c9d966b516cccac38fc7f08769f47d66c57b9b75ea67be82508a513946bcbc809436efc4ee85f139b143c5bc15ff69ad1f3667c3f69bcf\n\n# tcId = 353\nmsg = 54657374\nresult = valid\nsig = 43929c2fb0986fc4570a3ee7f6701b96a78ec9297a997415a142ae539031c0e196add5e4c6ec572de0a2b109cf23a42567ebe98f42cf312d07538e4a32b0f20403b662c652ba9e3d6e38a625d6b5e91cce5c810d7a02262338e144a57db4ac4debfc536e8eaca7fe08022a2f64741d66d25e3010f2fd259d4c6b00582584bbbdcde4266d86eddfd0443ff24b06cf7ade6d733c637a48a398dbb28355ffb9bd21a49de6b345ef635b68d917b5bfcb9016f7c64c444dc0036ecab8f59b0d29098facca02335df44db87d30d02f08553ffd0379b33d13d09a385cae7d63b6db52e9b1eb8fd549e0e1e18210de1d3e9527547e5c72f816eb36288b09d96db772f955ca46fc8cbdb6eea93c841e1075c00c3c45e9442d28095136cc5ce8212ed8c60c9668898ab5d64734d4d0f2311f104cf8a732e6d88fb2064cb57bd54d3cdef7c11c840ecb238466c747289233a317b73785778ff4349949da47c9b4b2dc9f89bd1fe7e98b582500dfc05dba3fa410cca66acd854669940543c22ed1038eac7f0212b9ce4aedba0eb15ea1e75a73c45c1ae03fd241662e9cb89b051939c468db3a0adab822617b5bc669d1e0226cf6b475445d9d5e77ef54ed646cd81f0952b949b7f4f37381ba6427e060966467a76e1d9261a5fe8c68398a89eb5025cc39339885b6c33dde898a159f0af4acc81461fae37f5f4c61de4a888dc4f6b1e2b7336f\n\n# tcId = 354\nmsg = 313233343030\nresult = valid\nsig = 0e207de1295caadb15098f51f5db90f9f000776055b107be58bd24d52a01d4171cb9e47a40790254f86a8a56c8ae38252f909aa3b9bbe7b7e1fed008105690d9afa647067ac122a272d30ac28213d2cd37b45cf81dc48d59e87d9ffaef6e1c9cf6ddf4ea5ff6123523c9cc885344b7e1ef4c8096bb542bc0fa5c47abaabca9a58ca85bcf092924741503a0f3c54c725c48855dc434b09d761f729051fb15af5612bdd387b4cd5019577327bb2e64edb065f713d50ff4285f1d184fe709207f809b9c38d064722897a868f8a09bfe1d33c80be0693e98d7e85600befb643e9f713584c716306731d7f8087dff66be1c4f6dddbc51b6ffe6034845cf0f88749e039ec314887c94648154f7c97235323bf78041ec2c8ee98ea7c553ecfec1f9fe89279c9c91ac6acd12ebe969da4c67fa6534ef9ace4b629c7b1de8c4ce1dc2b0f5bd7d416db6eb512a4dc8eda0322138cb7c65b9a58d712284e4aaf059db80af5785af4d83d391b7d8bdc4071636712410d1dde662478eada1a2f1f35786b78eec77b2788536108e7463d676814a91f81fd5e2084a8c1b1cc33988e73184110c6e6b0ef1de874104602eb33b5276ebbac95d91b943e25de6dfc66b31d8091961c78dcddd358de7f25584d9f74dc6271ff31294bee2cc9b2f97a2583c9b33243600500bc723b05d65839de7442895bd57a1dd508651a20e20f264d8dcb59d485247\n\n# tcId = 355\nmsg = 4d657373616765\nresult = valid\nsig = 0a882c367ff495646c21ef0489ce268d6c4e6cd0176bf9488d4b8edf04e1706f23d121b500b427eb8652099689429a08e73294cfd29694f9b4f33ebc8a7f9d0f9d11f114d0f848114d116ebcab828c7ed4c64d5ddce9958bd0883ae82ee2be0a185d54ae64690accd816971ea5ef80d7d601e72a814b9b61e8d00727a843ac90639f2c83cc7e2a9065ebea3e7aad3b12dd9ed8a1ee03a43e669598571490fd92b699d2941fda3af7271f8864c844f8efcbac20066c7bee682c644da2329db721ff33a7a81869a7bfb7a910fde6008e1bdb4e9ff989ff78fc0a9f43b38399083808fb3f38f0e96d4020bf8a4b329bbf81d59dffb03f5d1ea34276ddcccc2a4319393e1777488c843f9b0aef1fcab7a97e00d50f7f83bbfd30272c8ea4a5b0d7b74e7f7b70a9295d0e942e5b6e627ff8457d0f60c1aac8fe10b7d7ab1b8cd18d3904bfde2a316a83ee2b7633c3dee3141fbd61c8115f88ee7ca4b2b677d1803a1a35361c956c1adcfa8c8e10f0422eb3347b4983eff3c1c79e7da80a2e7c6d55e61f5af74254bd91db0d4bc10c3812513d832bd6a603a6bafd29cd5c062d9e3b74631f873fb3ab47e59791446e5f795d6ef5bbfa267a541d4405dc09e82c8b03f51db4798cc96dda7a7bce7ba9c679d851d5dd2e6b3735aaa2fcff0d558d68959c6af8b283fd383315762767cd0e4ef6e027020148cd3b14833cad4d92c2c9ce15\n\n# tcId = 356\nmsg = 61\nresult = valid\nsig = 374603f5d4728526e6cc7c7bfb6f456bd33bdabf37d942dfa8132a9479f6e4a9c2dfee515d883ace45cf1d660190e442a9ea7590d67aac9bde6951314af90baac21bed537c774148afb7927337d626525e13fa15664cdd78dfa5e3886ee1fe7137ad5f69aadcb098a0d49475b0f76ed1bb86cbd08a0cae9a6ec120eabd55b7e5c4456bfac2b2acc3892110b7f62c0dbe7ec7e491474c5c641453743fd70b15f7a726a0ca44a78bfaf3445a979bd4df362b7f29d4ed9189bfcdee01476cf1b48c2edaf02d226b41f587a8db161bd36e6ea20d64c8773fbe8c0296b9e016ccde333b380161a641d822bc65d3b60417534072263cd461a4f77826cbd0508ea", + "11720081c34b12d80ef0963857624d48c53748f279bf6ad338ba564e35d37d1dea27d19ad5dcb76d6f4aac62e49eededb1121e06b9f78eb285f7d7ee2cd475e791cc04c029cb76e5b33743aca3ac3adf5e317d95aa79a2f0ac3c328e69ea4692661b8107d89eeaaf3be01122544fd9d0c61511e87c6a5507c5701655d35f71586badd55b26363b51f019896c03326c72332de5be8a0f146d630a6e747a906684c7dc59d3bda667c8a92432e879f6a4d91d3cdca89b9840285bd8a22e5e5bebc32011725f64cb5fcbade8a5f5f9ba372a9be7f0a4907e40b4d06feffee3a558fd023514b504308a1d821c41955c305f550ffdf005b9bd5dfce2d16d3d09bf17c156c4a\n\n# tcId = 357\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 401bf4e63be4259b54c5909797b2b01fca18a6f74d76fecf75535f2876079ad9ee56c653dafc3513eb02114f5c96efb4025cf58c2cd576d003f688b11458fe3df1657657ed52b2756a99b48c6722708ef11765c8da2f3b061c779f26a64fe13e4be4602d0ca2553793d36c23f3194705e34a75b9b91ff7f4e554c5907b85ecb561a8d22262aa3669cc7be2fc5c21b9170869ff52dcba46b2b1c688e4c04e7a8f099e3a4196863bd1e828fb5ea5443b64b190327622055d44ff4c9999601338e56c175c716abf8d6c2ce6b9ef17930e846745e751f882ffb3f0b1a20e68ce9083d1466295caacdce85bd4a34615d09f2051839ff83650708888db818aca9229c38ddef86848a2c0c88b86a2f5a1079dcf0e888be62e116850b7e8d06785627fca1899f6d7c02eb60c3bae0d538cde8a05ef7281bba7f35757360ffa79fdd08642b6af5aaf8c71a32aecd0e9f3d9a2ef164da1740a5c2dd7943603bafde05e38f2ba78c15c3eef13a5059f3f242f07af2e6044896d1d6d9810ed3fb8203ca4efc116e95d2f53be8c55fc1ce653f02597c0df7d4a7dd88b41c2a65e40bf5dafbef2a97e4dc3bb49445774cac283ae131c08492c9715712f998241e16eb776915f15b7e9544ccf1dc220a9e139defd63cb2951090808395ce56555a7cdab4564d82151ddc0ba00db24454f2174bf0fe7ffe6e2d9d82a92437890bcae1601dbcea29a\n\n[e = 010001]\n[keyAsn = 3082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed10203010001]\n[keysize = 4096]\n[n = 00e3ae7de5bf44de7d357e238c8dff063ca713470777ab786b495884e7a9ba1dde65de7d2b5be3f2b7d1830cf6ca8ed5c05d3f094aaaeb1dd2e4b2ede08613109a9ba34c7e2bf8450225974374459f16da2c14192c637985febebbef01f0381e78d0fd63b76038f5e3d35dc7d2243963366af5d7685f1bcfc99dcb91e94c93019068353122edd03cc3e615e17c1bf1dd7c43dae86f47a40238fb594041cebdba25f3fe9593a6c329b7f7c476eab7625d17ba7be7886936b733f8dce6e6c937f588da1315c1117abd29c83895d95988d17f9fd7623960d8e433d7c6841507ff2faac36e0e19a41eb2cccdb2a2c0fae966719a99d203c924349bc0eea1374efd3e23099b2d187922016fd014087520a67363687322b90d7a890d8f4464a8c794d2a3f2070ccd3b0ebbca2b42bbf8eba6f2c0bf8008b5616ee7b81629ebff97a93a5b861989daa10da7c8e3bc7b0cdb095f6ce1185cf8fd3dca035eb3e505cbe022d81d93945a144806b9fe0ba07f3ab9c70e72b5fb77ac6e4c7e03aa2dce7c5ef227aba1acd48c1d93e0e26f01e8f1e43aa97880d15d6c924b060d1face21d03a796c86301f4a74339e472b2f96cd0755741cb9df3535077381ada84d1bc0846a6c44c8a8d3cfe1b7a9913d1f3d7af2c5ea4e67ce0a7ed3c0058206fd13ad9ccad5a8212f3ecd788368a6b6148178c7c5ea8d6d385227f2c76a047216e5e206b1ed1]\n[sha = SHA-256]\n\n# tcId = 358\nmsg = \nresult = valid\nsig = 49159682861cdec7040deaaf7ce2184e53545f7475b0c68fe4daa1dff32ce2d6ef37808866e218bb7ae2f7070ace0d0780a7640bc20dde742e25be8ca2a555f18d9cd5e5881e7e1b43544893eb11e3ce3ba8ba832d531712e0d4f4b41e148636cc8e0f7b18e749ff481abadedb3adf6c42553087fd35b13c68eac45bf09713386f3a2c6fdb1f0d824ee85e1580ad3e1b2363a23cef1add8e2f80659e6aa0bff14231d29e06afb4e7d11465545e8b7349754de170043d9513eeb72f5b3a68a6ba2dec118d52b909d4fb3018536a9af8ab9cb2c840211b06fe0492f77fa2d755d43e6266a381d45600ce5e6e16518b6b23e3810562c91f5feb8e6d8ec067e24723503112aac776600eb22f2c63b9151498a215258c65b86d7c70629028cdbd97133979dc65908657ebcd5e12c9ac4c24d9053613af46e2864929d3e9804c538c87b83f73bb9b71fdd5f8f04790761780256fa25ce6671994ed52f41656148b72f56ef9ee76925807cecc0f54e425594ddb320f0a125e1017e1d782fab6358d6d6207d8079ba94f6de24dcc4d6b1376d4f04382cf449e38d544c7687d73ca6c60a92257cfba3d37a503f49402dc873dea9dc3ce37e3bc5df56c01ab82f2bd5a8d14486e3515dce51154c9467e6925caef87c19a17c4836dc37f9f0f6ee265b195bd5da4b3b284e6aac237ee1871982a02cdbfeaf07073606dde766dc0320d6dd4ca\n\n# tcId = 359\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = b2726a742d6a0c27d3fdc54d8460a9837f86a3f56ec678b182dc4a92a94c9a04d8826e7892e50c3cd2c03f725db8de0ca98b3f81c71489820e8da55753bf0e108746dfe7dbe85cfcab9e40d1d297685e454b819081691e6a3e8722f22228c11fc7a4d424d71c401b2fc3586b3384ee694945a4e9a426dfd0834cf2d8bd6868dd28af317e8ec0562dae6ab30cab28de0f1681019e0714e4ac82604a4118e8e99759a45faab189cef0f8a41ff44e8e83991dc08e8fb88cbba3014c894b4a8c00c8f9993ba4cf28fc2812bd2c1e86c3e0e234887dd681eab04dfba6e61db43c21d35787a4f6718f72c456a618176b84f1330a672e3562c2d87b699757819bc2b74e52f5ef331df5f38a32228968eb37665e36e8fbbd80f8060bf469158225cad2a057289d0a2012bce9a2fda9225f87b40b06792913c1b83d699a0db712989fedfae21523c22002d8282b50e6cb6b9c31cc8dc4171a2d21e11a4f177ab57b0a5045649f367e49b674c6304f0d693d40c296397d0333585891dd2d1a29f9eb101036068e6fde8e517b1ae08a35c4c235ea68328eb15ac40adf11fff1b9f452d9026c33568fefc5a2401f662a46f3c72dece50dbf5aa4e52efc29ad4117732041829ce255474402afcfb4a7e0eba18a31bff64ac2ac9a47e0019649a087d0d8f37c2fa5fd48c0ae0b2993225509c5037ffaacc618ba7b0be252a67eafbe0be70b4700\n\n# tcId = 360\nmsg = 54657374\nresult = valid\nsig = d5abe6a99112b6e2abe236a5716bb3fca53ac1fc312c7ada27873b0296c41db962d03ce69ee55bd37f3df24ac8529284520720170e5f4411ae16eaff06a00a0d7c72f12af5e2e59d2ef57209082d3499f3ae50c9fb0d9463973a5ec51e64526426ccb365c5e1ccde2df0fa5d629d8235121d8cebd875c0372aacfba9c92f11b0d66ca3611fc34bd8274a51ffb68962aa4be24689cf535ceb8cd27767786bab3c67d9d1b4159d46d53866a7fa0565a69f60627a6efabccc4e6e5e6cc6c5622de95a334a21882420689841ae4c08c2c6c8f5a6b9cf023119d7e00f1d4e5e19c5f4e186b4723613b19a9d44bd56751a1154dbb06e534f71aa8c6a94adc076ecddca8d48d8c15a4391947bb9edceab04d14e9f9803ae305aeb7ee72e00d5419d87594a5ca5224e838d40c42326b8e18e7b22deaa2018a6c6570015902e6ed14b99912c6925fd0ea6bd760420ac976bf5c0b96bacf9c3193279dbabc2d01c1d504fd3faf69bdac5a33c70f2221c0d5fa0be395a4495cd3b5b8bc715e7f6350def8b2795edd04c3bf3af49e657d78c44e09482e6951ebf9148d8e4f73c83d8706f21c59c8232ca62c4e302e6fc34a85b3dbc81e2c563314a92e7aab1a7b14f26feb6dabd136a866a214441e37e084ee628476848e6274ec79dfb62e9d3973efa71b2510c0c979d4b5073fcf980420817c15042388ee9146683efc93405f9de5576e657\n\n# tcId = 361\nmsg = 313233343030\nresul", + "t = valid\nsig = 05efbba03b90bda7ba280c6aa2bc8af655c884de2401c9ff9dd59e0d82c8502dca3d90879694692ea2b3e77c6dd3fb0e1f180777b237e462bae0a8b35cc21497c36818a1dc89dfa64bca89cb07babc10ddb98538aee10a4e59b4040c366c8413326e79bc015ca2ebe0a53ee6a4c49f5d9a87bac550e4b6a8173fb49188aeefd28457b594420cf2d77bbc044f6f4f6a7d7ba52d657f5dc6b631ad914bb05bcbf2901293e5eb5a17a88dad2326b508624b698b31d1fa08d00a001db8cba4a9f42bebb0eaba07e87235a883bc719513aa217a36ee016832b12cc4ca0d628598212d5da416af6342855da7d77ba153e5435ed7ea5d04b2459d68c721adeba8c071e979bf89c04a3c8219d67eb514a79b3a2f6926650c55e724b62f800b4f9060110479442e4f8b82ead56330e2374cde8b335552dcfdc3d0f940186192fa9fa6daa8156b1e55005896fe74a3b7164520823e7b7f21611421c281242b37da0ded476903f4b44be8ea35b594a2d97cb0c98a7d2a50123be606c3e3c11b4984c5a55ed01b1848fc54b83f681ceec448dbc4d35d15c389283b26de66c713f05a0d31993ad3e6e1b3aaff06b6f046ab075d93a8ca75c3e5558f8f2a445cf10d5eb813bd6f2754c502c93e81b904d845fb55c9e0810ca7259a012840cb0c85056b0a7e141e8d3a7fa5849da50e157c46164c9c02ffc099f42cffb71368f0ac3dac77b2ceb6\n\n# tcId = 362\nmsg = 4d657373616765\nresult = valid\nsig = 268d2edd3cca14c1dd3a768bf95d392228358f1d10bccf617cf507db1df8505e190035b890eabc94c3557e9117f4f3945fba36b1e06f16bc304b8bbf7472fa35375ede40530a05d43e3e88084bbecc931b69f02e83b0ca317d31a5f909dc7174a0b7fa7fb79b52ce3e8ada833e9c6f5d7cd1cc42d96f32a79f9bd2bb7a8de53faff97735e94c57be1be6fa829d9dd8e0dd06688991a5b07a514038c747c54ffcfebe8b3267049cf4ad335f2f6c52a2e1b0125164ea8dc354c2f092cb0b62b60c5c918059e1ae87e9e95b982d106fc3b1d9a6428a8e235a542565e4f1c9658763ed70b2a2bc7a4779bbe4624835bbe6be0bec348aa43823e87f9de89beb1593bed08cc6012ce054221abf67f7f98b01b12de8b700d6636e1c24332ece065c3ebfb087e6e1d8ca7e5488c1923724422f7a99af55fab29401a3b19aa985601da30db5430be4810a274676fc82cdaf0e145aef7adfaccc6a95cb4769e9f787f4c104a4c929014342474a5369757ad2752a9f7dfe7b37eec46831b9d42518a0cbeb99badd4249b16b32a7c371fa9429921e98887fda911413d8b0f5a5f70a23748e86738e90bf3d62322299fb361e7f10db9b48b818a50d2caa6598adbd9f048d0442e4654e38eb29343715343f951b2309b672ad67033e4588ecb80112438b366a2d5400da81e9687836e8a6967bf75585d95e99ec3412a9394c5faf8639be5387ad\n\n# tcId = 363\nmsg = 61\nresult = valid\nsig = 2575098034bfc7c6e635162041f8c9a2466f3f372411629dd9f9422dfc5d298b7f5e7614069272d712c21904a0294ae3610406037d170a1e103f6cb906a96d5a70d54316d3c5078dbdf0a0980e1789537c551ea0b5afba3bbff9c7d27384e7b51e97ad9a3cc0af134067abfff9250e0bf5d7d682bb8032c56646f92b6d57525fac5c9fe706aca60a8ee20e429db971d8e6204a0fcac0c8ea3664b9710b4d49484a4cb49bb802e356c8c3907939d085014ec9d63df47508244a9eb86c9f47bdf72a6c3a47dff909c7b3d40263d866841451e41e163e1b90a9c520e28ac47b34ceab522e731aa934c8c9e3d7541eafe5dee83e940821e5430ced0ed54f52c2a5f79fa1257640a73aa6b4fb6ca7d74ce81fe4bcdfb5009b7cd0df3a618b492b652574aae9142efa1548f94aa8c97ab152377bc8791611af5d63e4a19834a309ade08ab19767bc979f0dcbd2ed343830b38553850c7cf499ba0a58bb7228b16e539e92e3ecfb7cd3390ed85f92a536e49fee88aaa04827e37b02c9e44c5abf68cf4fbb567dfa8251687f51d01c9f779311c07d405a92afb5df5cb6607749fd5dd99eef66e4588b9708ca4ef8e98ef0c987b9d873f3bf43bb1c557adf494f6022021ef9589e79941db266c8896ece404c8cee5e45d84027505b017db71dc6f021fb1db0a583de25190c5d273e77f38a200774972b0bf2ce14352de01fd4f9bfd0e5bc\n\n# tcId = 364\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 1cb417d0ceeac22a7c3c424579176da1b0cd3f348fab09805b73e2fdcc50669c53b63eaab0d256fcbfeb6935bdb6cd1b2b9ec65973c9eb53dde80525df8fe7ef6b5ed54ef005bd7b31e9e9aa0e9f8da5db8aafef60a48b2d3900b7722c24ba48679ddfc11b87582a9fb34af90a0aa4ce57aa1da76b5cf6bda2649ec99b07a87fdc5548f7bf31a5019b97e0fefef7971f96d2551c9b74e164a6f21fc760ca2588b745f5ad51db304b123e6cbada39efc309a65029598d0c559014c6107ea0626b525880fb1eaa00e0a902acc6701df142f18d9ca1b885c92be618888bd7252ec35b1e8e5dd43825a059cd60d5c4edcbd678fe0495971a05aa7fc7bdac584e2a0027068ea4244204a0fa4b66d2ef49860538dddff19f650b54654fd835cfed4d13bb3fde99d866a4ece7cb6dd1c8e02f805f7916e140275248f9d9e7113ebe8b7bcc4e28816eba44df20ebdd08dd7206b8b5d8d9af74dc789651dc172adeb5c6421cb8abf48460ab376845253e62b37026f7e7b9b2cfb6855cb9f3040e4874175fb9cdd6f550c3e0eed89baab7a0b170f334eb9ae56525a0d6c38ea68498137fdd9c2b7b4511fb0a69aafd30f0e4c0b0a0eedbf80bb63e3017539a1cd41e6ff22625e07f0326810e7886d4ac31f621d4b3c1a80c914e79e63b330a7c3c0e5aad840128274b9f34f5653003175962b2f7cddfe11415ade74cee07c61cd2db2022e8\n\n[e = 010001]\n[keyAsn = 3082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keyDer = 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d30203010001]\n[keysize = 4096]\n[n = 00c9a765c2661b4674cff3480e9a5e462ad0ad2fc9bc6fbef62847b3113d20991f653967971c28252753f5fbacce012c2a8ab592914d269efafa724fa4b920e340930c106f7b36f79cebf0e62e88e0e476888e9f0e22186acdb6c4523a232b65b4ff2cc22dc44f8a559527d79d7cd7dcf3773212f7bb9aa133c31165cc663690bf123d73923c838929ccafee59d6c7095b8d4a74baf2d192c9a4e87c4e12bc58013078b28a7789e82e9f31de1f4d6a2aa6e80632be8e4bdf263e8d49b09416fb19c488c07ad8af722ab79182b23028a71e065d02412a9eebc46d7d8f4e03d79238d8c0cb4a97a9a1200ebb6ec64042ebeccad9567526eeef12c17d94c1049c889970b96e94cc353172a268a49c5e8bee13c15b39dec44f2c7a1aa37a7a0b6f72290acada32b1d8af1fc3dc8a89487ba81347cbeb1350925d30f923958106b49959c871e7c1dba55da0772e362cf8621d78610868b894e16e5dfec96874a93a4cf379b47e7e318ce315066d70ee3938140a60148f205085cef8a7700ca3c53d52a5756a63b3b16f153062b61262a68496210c8be4ef3f9029ca0ea0e3b3a0d5d6d226edbbf44daf8f045dc286ded3c4ec4db6b45347079f33eaf98e3c95b4b60e79ef4a3093feec543703422ba74a118511c2193b54fe8b633866ed2c705ccbc6e7d9d3656809ec3d3356e7400a9648ec37505041e3e31af1c02eefe924a67047d3]\n[sha = SHA-256]\n\n# tcId = 365\nmsg = \nresult = valid\nsig = 89789b9b0a97b90c4ed9a414879e809012bd328faf15b723495d1e0aebbde882639097e0dcb5471b1a0be1217cc6c34122595ffb4ada75e26c362d96c7408525d8da4266b8ffecce06c2a077b383d85df196b7075f2776795a95c6b688cac5f7bcb104e75a1a701f60b0a545df5054ad538a4c76c34336ec532e7f6ee7b999a1fc7fc2d1445e247f71a9302d9dc32a59340ebd6feac843467cb4a9a52e3bf0abb7935a3aa148116513114395bba36142848bf5a04f3718407e4b93fba02290b9287023e6d873a8546df91f5f967b49e85102386e59db91c5e51869b50fdb193879bcb01e6d2b05ec6f0c91b64ca8edf9d5aafa7359e554877cdec6eaafac80da15cc47d1a8addbe466ee100bf8a3fee75f495db722e8853b4fd21b16c4b6", + "2b536415077754e851472ef604b777de4e5c82d1c2f68699db340636f748e3433dda9fc62297463fa0c3a875f3694a79ae325b3cf31dc8f426306e47643d119c1039e77b5fc27cd8d9104f9cdd62e5e42f8dc1db02198797a58133198856cf490c7f2b22f1489e7eca21750f97e949982524ef09ee033d838f3e65ed175078f3569d787d599c4a7e7b63e9a25cdf6303ada48acc637ad023d65b901629bd140b51c69770e9e79ec8dfc21bb1debf3c5bdb7a1ed2aea297677033d681ce288da698e22538cfbefd950dc548c8f199a8b5a3f15d07d538734cd9789ed42317e0c5f656\n\n# tcId = 366\nmsg = 0000000000000000000000000000000000000000\nresult = valid\nsig = 3c8cb7e2f9f2f41e36b1df261388179dbb3bb97830b7d74721cf4c4d297fd126abb9a7211344dc52b36964c666ca72194c0f66cff5d2a3961888c26d394677117fec8babf38252be81fcd79380431647c2ad63bffdcb004e9efb8c49b3d775f1b53456581a5c2c130b5bcb47c2c0157fd27bc167f8897a40e72bd4c425a9114cc1195d15a97965aa59c74f0766f46b641c4229a4dbfbb3cbdfe6d20139cb4e587ac916c22959549ca1bb2986d423f701080b1d6c5f287cadd63edf4ee635304730bd5618c6952ec767a97f33c6b9d712dba4da8e3152c2249a47ac656b8dde87a76f0b22b484903b888b0c287728a0558d4961578693745db407b687bbd9a38d5a1597bb7d33a1d0b8927aba09a9d047b5c9cb3433289b95bd1563071feb622111d2c0ecf23accb4c0253c77a461cb7adcdd55d38e7b1232efe997908fa24054a82e62f113c5d6bae2985f7a3166fba70ea998c80ee4f04f5f18cd9e7ac580c44a6f04d671ad5b002359ded0c27edfe54c62ebf94908a408d370e36cd29eff2c89ea4050b256d4cd9aab0db5e7e29f638a4c81c0bc6130dd72242950fccbbc70aaa63422ba328eb39c87f2f84dbdbf365fc11796e686d9eb4a0ba429aea6798e61b1eda6c17458c5e5b48ae5e11baa6c45c34968ace833ea24ebe657978741cdd2308fb6d4548a289059b56e6d89cc318ab1b089ec5980bc938e33aa77ce02dd\n\n# tcId = 367\nmsg = 54657374\nresult = valid\nsig = 8c34f23e4883beb610394628cf4bfc6df148755e51c34a936e37018e9fdafe4bebd87bd9e423d3b0a746e115e99b6891a248412829fdc0e250611e8b785a7635cd1ccdbd4dda56e2cc27ae87c96ca0781943cda269f10b613995a3dce5c3922dabbbe37dfe87a176503886f4766700e377e47295175783dbd33899b7f1b2003c018221efd5542c6d520efce5ae96ee861f03a80cad2a70419fa52537c8ad5c130c5874adbeafd84320aad9f56b4c4f34ce85e9f3b0ecae803cbae83ab151ea66c163cb334f4460f85466f33a699924f415c067d4cdebd51c43e8fac821f138c00111480e3e3ea4b216d8de08fbaed39824a4e4f86fbd0f9b665f9b216b00a5ab92ca4751e3f8b04d000e3eae18a8cf5a9d655a5a2f6816119219081e7ee2b2ff1f57b226aa096248255bea2b58e0b119295b4e4fe1c572ef8783c2b4e5fe4023cc5934264fd900d53404b7185df382ad6bc07b457dd9d3d201f0644b9b6981a4f146209726a2bef1c7e95b24c93b83364439050d4fa78e808f719ede06244fa6e4b7ca5e404156a65f274cef637c62f67a9bbb69e894a6d34ae94a5a602662f8e7c091c6fd3897992dbd6e3985ed042e4c0d8af87b3f1901308efe60cb243c62c7c89b3ec920ad5ef7aea85ca981f434c102def438794fadd8e44862c1a35ef95d3638bf8185dc10dd5a3c2d8d1eb000018f5e77b1d251c02b83f1f6aec62b1e\n\n# tcId = 368\nmsg = 313233343030\nresult = valid\nsig = 8682d5bac51bb32bf283b8cab1172d6e8054dbfc672de6f35f33a9f7b3f0662fe19ec01a74d5cbe6d90351843e2b129d0ce30884fdbdcfc962d2721fec5b3b7f6a9db4a95b13def111c737cfae72d13aef4d0ea9c29181891505a0d28c5c8853ce5c37476654703ea2e7c68ed52591c182bc051b5d837ef3be064901be454967be52f9c7d406b7409e93308b74a826d3d1e6aedd8aba3f5f971824784167df53d042781b7c2d3cac29428c7da1fbc451680cc211517f9175ff1b2c00f819916d6d25581542c8f05479aacfc245e5894763db8e79849d3e2dd8d7178a38cd4cb7b03436c150c467540dfcdd001d6c8994b2f8b332705b2b5ae0c841708c83dadc7d647ae15e547403d689a00a6bd4de8602633443e0b7edf060bb7b529e0afeb1b4171f70a943a14f69c59720b4b5ae59313325685c102d992645fd23af12f3b8f8de79399cc6c80f9a0c006c316ff7a6963a1f8ef58a67d107e5b49fd8d7079bd45f23ef67f6a83127da157f54fef9dc01415a6cf7a957f5ffa15457a1a8bf831273f48f927ba8bde79da623a8a2784e7d8950c5fcbeef5868311acbb793cdfa54c702209073ad8599c4c74b31ce3b662399789febb36d922d77cddf63c1de3a6aba21d6d8ed54a1b48f48955602d0f6a4f5eb5546131561809236f0c71b8374290106b893ab70f6fec1fbc3bb6ef5e6c0263a7c8cd90c289968671744e853d7\n\n# tcId = 369\nmsg = 4d657373616765\nresult = valid\nsig = 3adcc06e29c9f1f08ff6ff93472eaf9140d4b47f86cfe645c507788ac46d6402a01b19483b48b8274237b08fb944f84bcf33567fa8f5e115e17a5019422cade552d14bb78fe007cd63a566fdd258427cac46bebe1d8c171203d75f8c228c11198a2529012a27ad35d311c3e65b422096e4e1c826959deea5958ccc7844ce1038dc26b8124a354e27624ef022a13ab056054c9f736a3e99d37334c362fcd2c394153a0eeba909a8f46127038832e89c19f912aa82724149940a9c835d7ad3e6f9990b00d7eda6e635c4f342a9a91f301dc3ecb1465413675c5df750603b931ef646590d4abe8685a35223443afcbd8b693313e3560af5107bd8faf822f6410188ab47ff0e56aa43175211a88ca339f99444f589534e49c2f8f971d9c5d9dcd77b4b72323fb0a76f90bc1547fa187abd59c96236c639e5019104a6d3a346f9545fc03f616cfd5997b19b10d5ada0e31847e6dfa28ff9ff28efaa4e52d6a0442308240bb70657993a2acfd9d15509f139c7ee263f3359e08bb987697c914365d9c0154a47e797f4d329f8a6d805228df2995f601c8606d03046a4a8bdfd512beffb4db4d631c254906a1aae0b6f32fad34ab555238262e9deb4acc1d571638c25566f96eec072a43875da82f12bb952584905b2eb88bf400452933eb5bc9cb07e7f138f1581df01d0a71015d361902b90b86f45060754f027ff2c108190832dd869\n\n# tcId = 370\nmsg = 61\nresult = valid\nsig = ac5cefb29cb810e32c82f3e71090e2da0e10300acb638ceb24f49a588c54d84256d50584f87790848623239838865395bd3200969b6886ce38fa9761e823c6a5fb7f500636ece098df395eaec9405ee0ad9bfd6aed2f8503fc08a5a81d9c5644bc053868355af6bf01bbd37490dea174f2e0259340a2956ff00968c5ff5659a5f132537972d05acb491ab148be7849384434f50e584b371ff3f8675892ceb3b928e8bc7d49eab9635538817603591b9175e51b6f06768042e100d02f89d45b62401de9c8076b789266d2a40f0f52e527ac501a13e006afb364b7e5fe58f13e309bbd414a2c7fd3b61e5cae5dc14d81e60116c1743b3a20cc9304db044d73aea74ac49faceb321feec4e8ccb04b9d3e26d643a5badcc7ca0a4de4c7d69aefac5311d3915f9dd31a309cb39e4a861d0c9fe93bb7b010396ea1de18fee6c530a5dda73e8f05b7a7454bb5375ef64fafce7fdd5a65d4dc8b9868ef437c71cc5a27eeb09c7f7e7b7f24d6694125bd474fc07b48185975ece10848ce5321dd27b5598bea4718a21c39b5a6148504dd785f382d46733cad2de79aebc4f6481cfbe214d4cadea18cfb0b5379e669609d1bad7b2bfade7674113644568519ae78b0958c4679014f9138b3b4d5f49520a5485d2e1a2897e6cae04051884405ec873f41d6a8feaf42ebf901f404f2bb39408a47f5cab149cb725da17d418d128a9fb0287b1e\n\n# tcId = 371\nmsg = e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff\nresult = valid\nsig = 32b0c4ebbfe2e84043d48caab328e00671e523ae73505832a6b65349501e485731c8372d54c48026ee0b7f41c8a3df6167394c650ae2d74df1aec9559bb55871915fd7d252fccb059ee4b7b566792cf39ced1c133a3481e36e63d79b443f424ec0314d12fa81e4e6d53c7f9270b31a4df07a22e36f6ea5cfc0fca32188d2a2639a2de48e41b10fb5f5bfb900541d6d560d079f1cf94ce247b29445631272f0260761099eabdc0d44643f2e57062d2b2c020bd32c7861e6e632114857d0695be9573e803de0958432c26179d7311b60ae0ed89893566ff45625892e431dbae0eaebfa787611e3ef41baa7dab31bd3af98a508e1fe0f7e3255d980f40ea4e0c77697f726fd5bbdae9ae6f44915d4875db5c81bdf4cf96584b204613e5fd0f4be664955620f73e13a36781d8f2f6303801b4f8e310c6e2a2c2165f5f8a502fbb543a1c044bfa66010bc9aca960470b497fa9da703d046d266a1e14bc6880d8663c289a03c501d439ba0b4225f04602f0a2f67d6618b45e32e3567869a2727aae298148183c09ddea41b15acee6e9af9959f06ca3486c93efa8f539f404e908c30c8299eefd5014674d42fc084ac1fe1edcb12a26f66495d398abb0b4bfdd4c0206f30b229dc059f6fffd351489c52009c898edc484570e6bc1c6275a02eb26a6379456cd47a4654f2f2cd3b1f20c49cafe4b6998c9d2bb91595ba11cf9d54760f48\n\n[e = 03]\n[keyAsn = 3081870281810089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf020103]\n[keyDer = 30819d300d06092a864886f70d010101050003818b003081870281810089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf020103]\n[keysize = 1024]\n[n = 0089863f6993177d65e5f1b6d41e183ebde1fe8c0f23fa8c99893ba0267416b74d93bcf04cb77f7bbc5015f501c001fe81eed5c339fca8d6804c29523668d57b32e2058b20366c4d66c5e1684b925bd7c71959ba4b022a4ce4a04c7e4ff13fa433f81553999ed9e73dc6f4e0cec5b00452391bb7a742f5b932c0a4eccf802120cf]\n[sha = SHA-256]\n\n# tcId = 372\n# short signature\nmsg = 3831\nresult = acceptable\nsig = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c68149efc8a4a913a26c9170590a", + "1ed9064323c12b6ebde15ae8c05a0e5205c91f57f5753815ff39c918\nflags = SmallModulus,SmallPublicKey\n\n[e = 03]\n[keyAsn = 30820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1020103]\n[keysize = 2048]\n[n = 0090a5d7aba2c8dc828e616fc1fc45c7c52130c8589dcbe2913da187572f6c23217b89a5186b6f90cbe053abfb0885a91f141dbe106ce6ad303904a5941df26ced10478cb56a7bd6cf1313c4966d9cf7c4509d9dc63566aa323e110af219f3398c04e79bb486de8703793473136f5c9051af24bd2c0208ea1bf9321a3e8f24af00aaca1216842eab248d58cf46ac786c49fd3ca8557e9b53993a4b9718cdc5c474bf1cfe58c07ad97b2c5acb7d86accc0fc7bed147adb2e77b8697d80150948117714b806ff76f9d88147d84e93987b724bf4870429e85a7a7b51486a78d8a88f1688f60e215d43d06221e2b993b5c12a607b80e9e0122472b29945f76b55737c1]\n[sha = SHA-256]\n\n# tcId = 373\n# short signature\nmsg = 33363730\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000989e7ff72e67e680bd21d5f966e4ad8a48c3592dbacc4a2f035b4ef4d17a2f25f8a9fef7e78eb99d76d68629ed02d67c43c4b7ec8c3badc32e3d0a524c326537739b0fde156723b27c23ae2b09895e470c64d700f5c\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d00308201080282010100f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f020103]\n[keysize = 2048]\n[n = 00f2ed0e93228f37c2ce1c215e00cce4ef00e2c08a004a39c4170dc73e5fbd9b91e7c55e596579ec9c60b9bd341e83029b1934e6493eb60099b6cfbb9804d4179c983099e19102bba49eaa28fa505efacc5a9d5374499c0c5775778317ed370de1919f38aff22d5aee8c8af36a86d036029e761f243dff3c205a11e9bce9ac1d6baf81e79ad4146b119abb13903f8562e8f3e6a918f48223465bc93d5e7d5abe3d08503ec42998fe087a1f935d1b8673c495f005dfa7453daf977e1608a8c276da2a4cd0567e4af4d18cba05fdbedcde74493ccabd9060c27d35a02f35c760b12a4deae1359f649f273fa408626fb789c916434a642d528f41db868ff93b7f889f]\n[sha = SHA-512]\n\n# tcId = 374\n# short signature\nmsg = 38343432\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e7a1269086f0bbc0778ded8d7108ff4edcc2313425088117b2d5c53e9d9971950a5fe8b2b67d2bcd1be74f6b557a3f90650a96d7e4dbd63c05b94f73337eea682417c058d66ce523e4461065ac8ba990c4ecd04932\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d00308201880282018100ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83020103]\n[keysize = 3072]\n[n = 00ab54a4f2560b9f65faa2f83bcf77d41803c080e4e5c3eab3534210982bba8a5d7e513ba50ba1ece33555c5457c41ba58f3f605a04369408f586c26dfda464c7b300a01f1616893264c7606daad4ced14df9a894a1f34586181294297e3ceb9580b0c785c056d5c566467f6f227f3084918d1cd17ed156e7f9fcce4757c5794f92770771ea5cf3101ca0425c846775f56938c1d1cad4401f4df2f5e0d3a3b2770f99e3c1cb4d9d4896c7ca89287b45831218b099add4bdf1dab6e2fb55d2775429386c85dff32c07a6dda504a9627529dd82c943554aaf23c5a5f6cea9c301b4b1f066b86bbef2e4bae9dc5b5e82e1fa03c29ff8bf38556729b356d5ba41d37a069fcc8fc23ac715bbea04c1972a2d50c57cc0159a46b5919fb670fb2a502d5ab66f0aa99e51016b83a406943ce9bdf0ab9b9e946574a5b32ce95d97ac8b1fbb48f0bf7e3c0d4b7a00d131966d009997a166a6630dee4a74c141cde0114aa423351b1dfdd3893a856fc632b6d90dbc79c8a61a9f9e31702ba69fb222860e60a83]\n[sha = SHA-256]\n\n# tcId = 375\n# short signature\nmsg = 34333630\nresult = acceptable\nsig = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011a21abeac8409398319e65c8656f8f72e179dd1e99358c7531fddc037e47c1e688cd70eafd6eea01c823516bc79f89d7e52ee1eb4ffdeaad1d550dc0a47185bc9c42e47fce5503c3370a60510f834b4691152ef668deca633cf3873ce6613951784aa7dafde118f37f1cdf1a687ac236d5c956bced564b73cf202e3bace59667\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 3082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81", + "ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keyDer = 308201a0300d06092a864886f70d01010105000382018d003082018802820181008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01020103]\n[keysize = 3072]\n[n = 008733b9c2bc754216fac899159abb71c5ca84be37153720040f33f291f5f7861bc122cafde3091b5211bc81ee03e280e3c6c2902ec49afb8432c3273536edce7116048513e9b33e2fcfe56f9597c81bc9be81a1b1d46e863ca11db2c33ac1bdebf7c552332067e2e588497e7d9e0738caa57a73dd28157e88fc202b31bbe3b9993548399a0b0df9b72dfeece75ecd78376227e9cd21c8d24ca4aa64fa50a59ee8e7621158e7bac2420fc0d77064d3959afab664ecda0decb8c979eb402795b9a562f2de310aa7fc6864469ac88867788c57ee96f6dc32dbdbe3aa7d3ff47ae4b78e1106e1bc80350b2383dae54140a4605f4130d7e5d3f7818262a27c76a51e4c6db4ab4590b4766b8c50ec1bfed53f0d716b5c7d9dc971399246c75ce27745147151f2e7629039f0b2efed99c7f17cda8f3c3df764dfb40cc0c2ad7bf2b6c72829df93329a4bad6be8635953dd10840888784eea738c763be9f5dc3ba47a9e9d800e21b4ffcc18193e591e8a5283192426e8867331c72bdda06a0eb49367bb01]\n[sha = SHA-512]\n\n# tcId = 376\n# short signature\nmsg = 36313237\nresult = acceptable\nsig = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001bdd0c9e451b5b3e5513a94492dbee1ada9ea87e65a8cd95cceb4d304294ce34bf09a212f14908f5b865c7a34a72e68e389794a2d1c5767ba17829e2044108ac7842b6bfe0a5663b433d656f4e38522c5a5a23c460b898833828d257350e5814291b54cf13089080f84998edcacf0fe5fca0c1f8b176b172c5f9989491a039bef\nflags = SmallPublicKey\n\n[e = 03]\n[keyAsn = 30820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keyDer = 30820120300d06092a864886f70d01010105000382010d0030820108028201010092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d020103]\n[keysize = 2048]\n[n = 0092bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240c11ebf97cd68c2aa19c787b3be21e68c0e397c7f04c6ef98950e27e0e19a40da92a3ea10800fe9252b77026d14c2fa1eb4ac102491e5773279f07d856d446f45169b09bf60b8a2695f5e4864eaaf9590aec8c7c2f86d]\n[sha = SHA-256]\n\n# tcId = 377\n# signature is close to n\nmsg = 32353934\nresult = acceptable\nsig = 92bf17cdbffb42fa9957ce37826bb451708e7cdec8752b809c81a8d16fe5fe4dab6a9db6d11dbb12086645db7546642b322e8331dd7f29eff68bf40b24f80884f5152b1fda9b9f7ae2fce2721cdee0fc48f85a6e8e64f767ed9727fd2dc597967e276a5e2e768528afdd9df4b6ddda4c174300e4da3c19a3c32299e1e7857934c14dd6203d8c2671289bc392711597155364a59046b2b9f1905fe717ca7efebb4c1969b804118effa240b8bf4bb1a6d0616fd5be2f081dc9ef741a9a4ae7274418b791432de470c4556463108388e8e8ed5dcebf3558e4650c2ac97c86fa682176f09b5dd8cfbf15d19c3fe4f961f4607c12cb3dfad9b6a0e59c92faa1fc8622\nflags = SmallPublicKey\n\n", +}; +static const size_t kLen159 = 157296; + +static const char *kData159[] = { + "# Imported from Wycheproof's x25519_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: XDH\n# Generator version: 0.8r12\n\n[curve = curve25519]\n\n# tcId = 1\n# normal case\nprivate = c8a9d5a91091ad851c668b0736c1c9a02936c0d3ad62670858088047ba057475\npublic = 504a36999f489cd2fdbc08baff3d88fa00569ba986cba22548ffde80f9806829\nresult = valid\nshared = 436a2c040cf45fea9b29a0cb81b1f41458f863d0d61b453d0a982720d6d61320\n\n# tcId = 2\n# public key on twist\nprivate = d85d8c061a50804ac488ad774ac716c3f5ba714b2712e048491379a500211958\npublic = 63aa40c6e38346c5caf23a6df0a5e6c80889a08647e551b3563449befcfc9733\nresult = acceptable\nshared = 279df67a7c4611db4708a0e8282b195e5ac0ed6f4b2f292c6fbd0acac30d1332\nflags = Twist\n\n# tcId = 3\n# public key on twist\nprivate = c8b45bfd32e55325d9fd648cb302848039000b390e44d521e58aab3b29a6964b\npublic = 0f83c36fded9d32fadf4efa3ae93a90bb5cfa66893bc412c43fa7287dbb99779\nresult = acceptable\nshared = 4bc7e01e7d83d6cf67632bf90033487a5fc29eba5328890ea7b1026d23b9a45f\nflags = Twist\n\n# tcId = 4\n# public key on twist\nprivate = f876e34bcbe1f47fbc0fddfd7c1e1aa53d57bfe0f66d243067b424bb6210be51\npublic = 0b8211a2b6049097f6871c6c052d3c5fc1ba17da9e32ae458403b05bb283092a\nresult = acceptable\nshared = 119d37ed4b109cbd6418b1f28dea83c836c844715cdf98a3a8c362191debd514\nflags = Twist\n\n# tcId = 5\n# public key on twist\nprivate = 006ac1f3a653a4cdb1d37bba94738f8b957a57beb24d646e994dc29a276aad45\npublic = 343ac20a3b9c6a27b1008176509ad30735856ec1c8d8fcae13912d08d152f46c\nresult = acceptable\nshared = cc4873aed3fcee4b3aaea7f0d20716b4276359081f634b7bea4b705bfc8a4d3e\nflags = Twist\n\n# tcId = 6\n# public key on twist\nprivate = 08da77b26d06dff9d9f7fd4c5b3769f8cdd5b30516a5ab806be324ff3eb69e60\npublic = fa695fc7be8d1be5bf704898f388c452bafdd3b8eae805f8681a8d15c2d4e142\nresult = acceptable\nshared = b6f8e2fcb1affc79e2ff798319b2701139b95ad6dd07f05cbac78bd83edfd92e\nflags = Twist\n\n# tcId = 7\n# public key on twist\nprivate = d03edde9f3e7b799045f9ac3793d4a9277dadeadc41bec0290f81f744f73775f\npublic = 0200000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = b87a1722cc6c1e2feecb54e97abd5a22acc27616f78f6e315fd2b73d9f221e57\nflags = Twist\n\n# tcId = 8\n# public key on twist\nprivate = e09d57a914e3c29036fd9a442ba526b5cdcdf28216153e636c10677acab6bd6a\npublic = 0300000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = a29d8dad28d590cd3017aa97a4761f851bf1d3672b042a4256a45881e2ad9035\nflags = Twist\n\n# tcId = 9\n# public key on twist\nprivate = e0ed78e6ee02f08bec1c15d66fbbe5b83ffc37ea14e1512cc1bd4b2ea6d8066f\npublic = ff00000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = e703bc8aa94b7d87ba34e2678353d12cdaaa1a97b5ca3e1b8c060c4636087f07\nflags = Twist\n\n# tcId = 10\n# public key on twist\nprivate = a8a1a2ec9fa9915ae7aace6a37c68591d39e15995c4ef5ebd3561c02f72dda41\npublic = ffff000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = ff5cf041e924dbe1a64ac9bdba96bdcdfaf7d59d91c7e33e76ed0e4c8c836446\nflags = Twist\n\n# tcId = 11\n# public key on twist\nprivate = a8c9df5820eb399d471dfa3215d96055b3c7d0f4ea49f8ab028d6a6e3194517b\npublic = 0000010000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = a92a96fa029960f9530e6fe37e2429cd113be4d8f3f4431f8546e6c76351475d\nflags = Twist\n\n# tcId = 12\n# public key on twist\nprivate = d0d31c491cbd39271859b4a63a316826507b1db8c701709fd0ffe3eb21c4467c\npublic = ffffff0f00000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 9f8954868158ec62b6b586b8cae1d67d1b9f4c03d5b3ca0393cee71accc9ab65\nflags = Twist\n\n# tcId = 13\n# public key on twist\nprivate = d053e7bf1902619cd61c9c739e09d54c4147f46d190720966f7de1d9cffbbd4e\npublic = ffffffff00000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 6cbf1dc9af97bc148513a18be4a257de1a3b065584df94e8b43c1ab89720b110\nflags = Twist\n\n# tcId = 14\n# public key on twist\nprivate = a021d75009a4596e5a33f12921c10f3670933bc80dde3bba22881b6120582144\npublic = 0000000000001000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 38284b7086095a9406028c1f800c071ea106039ad7a1d7f82fe00906fd90594b\nflags = Twist\n\n# tcId = 15\n# public key on twist\nprivate = a89c6687f99bd569a01fd8bd438236160d15ce2c57c1d71ebaa3f2da88233863\npublic = 0000000000000001000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = c721041df0244071794a8db06b9f7eaeec690c257265343666f4416f4166840f\nflags = Twist\n\n# tcId = 16\n# public key on twist\nprivate = 68964bca51465bf0f5ba524b1482ceff0e960a1ed9f48dcc30f1608d0e501a50\npublic = ffffffffffffffff000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 25ff9a6631b143dbdbdc207b38e38f832ae079a52a618c534322e77345fd9049\nflags = Twist\n\n# tcId = 17\n# public key on twist\nprivate = a8e56bb13a9f2b33b8e6750b4a6e6621dc26ae8c5c624a0992c8f0d5b910f170\npublic = 0000000000000000000000000000000000000000000000000100000000000000\nresult = acceptable\nshared = f294e7922c6cea587aefe72911630d50f2456a2ba7f21207d57f1ecce04f6213\nflags = Twist\n\n# tcId = 18\n# public key on twist\nprivate = e045f55c159451e97814d747050fd7769bd478434a01876a56e553f66384a74c\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000\nresult = acceptable\nshared = ff4715bd8cf847b77c244ce2d9b008b19efaa8e845feb85ce4889b5b2c6a4b4d\nflags = Twist\n\n# tcId = 19\n# public key on twist\nprivate = 105d621e1ef339c3d99245cfb77cd3a5bd0c4427a0e4d8752c3b51f045889b4f\npublic = ffffff030000f8ffff1f0000c0ffffff000000feffff070000f0ffff3f000000\nresult = acceptable\nshared = 61eace52da5f5ecefafa4f199b077ff64f2e3d2a6ece6f8ec0497826b212ef5f\nflags = Twist\n\n# tcId = 20\n# public key on twist\nprivate = d88a441e706f606ae7f630f8b21f3c2554739e3e549f804118c03771f608017b\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000\nresult = acceptable\nshared = ff1b509a0a1a54726086f1e1c0acf040ab463a2a542e5d54e92c6df8126cf636\nflags = Twist\n\n# tcId = 21\n# public key on twist\nprivate = 80bbad168222276200aafd36f7f25fdc025632d8bf9f6354bb762e06fb63e250\npublic = 0000000000000000000000000000000000000000000000000000000000800000\nresult = acceptable\nshared = f134e6267bf93903085117b99932cc0c7ba26f25fca12102a26d7533d9c4272a\nflags = Twist\n\n# tcId = 22\n# public key on twist\nprivate = 68e134092e94e622c8a0cd18aff55be23dabd994ebdee982d90601f6f0f4b369\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1f\nresult = acceptable\nshared = 74bfc15e5597e9f5193f941e10a5c008fc89f051392723886a4a8fe5093a7354\nflags = Twist\n\n# tcId = 23\n# public key on twist\nprivate = e8e43fc1ebac0bbc9b99c8035ee1ac59b90f19a16c42c0b90f96adfcc5fdee78\npublic = 0000000000000000000000000000000000000000000000000000000000000020\nresult = acceptable\nshared = 0d41a5b3af770bf2fcd34ff7972243a0e2cf4d34f2046a144581ae1ec68df03b\nflags = Twist\n\n# tcId = 24\n# public key on twist\nprivate = 18bffb16f92680a9e267473e43c464476d5372ddd1f664f3d0678efe7c98bc79\npublic = 000000fcffff070000e0ffff3f000000ffffff010000f8ffff0f0000c0ffff7f\nresult = acceptable\nshared = 5894e0963583ae14a0b80420894167f4b759c8d2eb9b69cb675543f66510f646\nflags = Twist\n\n# tcId = 25\n# public key on twist\nprivate = 300305eb002bf86c71fe9c0b311993727b9dc618d0ce7251d0dfd8552d17905d\npublic = ffffffffffffff00000000000000ffffffffffffff00000000000000ffffff7f\nresult = acceptable\nshared = f8624d6e35e6c548ac47832f2e5d151a8e53b9290363b28d2ab8d84ab7cb6a72\nflags = Twist\n\n# tcId = 26\n# public key on twist\nprivate = 80da9f02842247d4ade5ddbac51dbce55ea7dca2844e7f97ab8987ce7fd8bc71\npublic = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff7f\nresult = acceptable\nshared = bfe183ba3d4157a7b53ef178613db619e27800f85359c0b39a9fd6e32152c208\nflags = Twist\n\n# tcId = 27\n# public key on twist\nprivate = 806e7f26ca3246de8182946cbed09f52b95da626c823c7b50450001a47b7b252\npublic = edfffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = bca4a0724f5c1feb184078448c898c8620e7caf81f64cca746f557dff2498859\nflags = Twist\n\n# tcId = 28\n# public key on twist\nprivate = 58354fd64bc022cba3a71b2ae64281e4ea7bf6d65fdbaead1440eeb18604fe62\npublic = edfffffffffffffefffffffffffffffffffff", + "fffffffffffffffffffffffff7f\nresult = acceptable\nshared = b3418a52464c15ab0cacbbd43887a1199206d59229ced49202300638d7a40f04\nflags = Twist\n\n# tcId = 29\n# public key on twist\nprivate = f0019cf05159794cc8052b00c2e75b7f46fb6693c4b38c02b12a4fe272e8556a\npublic = edffffffffffefffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = fcde6e0a3d5fd5b63f10c2d3aad4efa05196f26bc0cb26fd6d9d3bd015eaa74f\nflags = Twist\n\n# tcId = 30\n# public key on twist\nprivate = d0fca64cc5f3a0c8e75c824e8b09d1615aa79aeba139bb7302e2bb2fcbe54b40\npublic = edfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 7d62f189444c6231a48afab10a0af2eee4a52e431ea05ff781d616af2114672f\nflags = Twist\n\n# tcId = 31\n# public key on twist\nprivate = d02456e456911d3c6cd054933199807732dfdc958642ad1aebe900c793bef24a\npublic = eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 07ba5fcbda21a9a17845c401492b10e6de0a168d5c94b606694c11bac39bea41\nflags = Twist\n\n# tcId = 32\n# public key = 0\nprivate = 88227494038f2bb811d47805bcdf04a2ac585ada7f2f23389bfd4658f9ddd45e\npublic = 0000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,ZeroSharedSecret\n\n# tcId = 33\n# public key = 1\nprivate = 48232e8972b61c7e61930eb9450b5070eae1c670475685541f0476217e48184f\npublic = 0100000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,ZeroSharedSecret\n\n# tcId = 34\n# edge case public key\nprivate = a8386f7f16c50731d64f82e6a170b142a4e34f31fd7768fcb8902925e7d1e25a\npublic = 0400000000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 34b7e4fa53264420d9f943d15513902342b386b172a0b0b7c8b8f2dd3d669f59\n\n# tcId = 35\n# edge case public key\nprivate = d05abd08bf5e62538cb9a5ed105dbedd6de38d07940085072b4311c2678ed77d\npublic = 0001000000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 3aa227a30781ed746bd4b3365e5f61461b844d09410c70570abd0d75574dfc77\n\n# tcId = 36\n# edge case public key\nprivate = f0b8b0998c8394364d7dcb25a3885e571374f91615275440db0645ee7c0a6f6b\npublic = 0000001000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 97755e7e775789184e176847ffbc2f8ef98799d46a709c6a1c0ffd29081d7039\n\n# tcId = 37\n# edge case public key\nprivate = d00c35dc17460f360bfae7b94647bc4e9a7ad9ce82abeadb50a2f1a0736e2175\npublic = 0000000001000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = c212bfceb91f8588d46cd94684c2c9ee0734087796dc0a9f3404ff534012123d\n\n# tcId = 38\n# edge case public key\nprivate = 385fc8058900a85021dd92425d2fb39a62d4e23aef1d5104c4c2d88712d39e4d\npublic = ffffffffffff0f00000000000000000000000000000000000000000000000000\nresult = valid\nshared = 388faffb4a85d06702ba3e479c6b216a8f33efce0542979bf129d860f93b9f02\n\n# tcId = 39\n# edge case public key\nprivate = e0614b0c408af24d9d24c0a72f9137fbd6b16f02ccc94797ea3971ab16073a7f\npublic = ffffffffffffff00000000000000000000000000000000000000000000000000\nresult = valid\nshared = 877fec0669d8c1a5c866641420eea9f6bd1dfd38d36a5d55a8c0ab2bf3105c68\n\n# tcId = 40\n# edge case public key\nprivate = f004b8fd05d9fffd853cdc6d2266389b737e8dfc296ad00b5a69b2a9dcf72956\npublic = 0000000000000000010000000000000000000000000000000000000000000000\nresult = valid\nshared = 180373ea0f23ea73447e5a90398a97d490b541c69320719d7dd733fb80d5480f\n\n# tcId = 41\n# edge case public key\nprivate = e80bf0e609bf3b035b552f9db7e9ecbc44a04b7910b1493661a524f46c3c2277\npublic = ffffffffffffffffffffffffffff000000000000000000000000000000000000\nresult = valid\nshared = 208142350af938aba52a156dce19d3c27ab1628729683cf4ef2667c3dc60cf38\n\n# tcId = 42\n# edge case public key\nprivate = 48890e95d1b03e603bcb51fdf6f296f1f1d10f5df10e00b8a25c9809f9aa1a54\npublic = 0000000000000000000000000000010000000000000000000000000000000000\nresult = valid\nshared = 1c3263890f7a081cefe50cb92abd496582d90dcc2b9cb858bd286854aa6b0a7e\n\n# tcId = 43\n# edge case public key\nprivate = a806f1e39b742615a7dde3b29415ed827c68f07d4a47a4d9595c40c7fccb9263\npublic = ffffffffffffffffffffffffffffffff00000000000000000000000000000000\nresult = valid\nshared = 56128e78d7c66f48e863e7e6f2caa9c0988fd439deac11d4aac9664083087f7a\n\n# tcId = 44\n# edge case public key\nprivate = 9899d5e265e1fc7c32345227d6699a6d6b5517cf33b43ab156ee20df4878794e\npublic = 0000000000000000000000000000000001000000000000000000000000000000\nresult = valid\nshared = 30eca56f1f1c2e8ff780134e0e9382c5927d305d86b53477e9aeca79fc9ced05\n\n# tcId = 45\n# edge case public key\nprivate = d842316e5476aeaee838204258a06f15de011ba40b9962705e7f6e889fe71f40\npublic = ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000\nresult = valid\nshared = cb21b7aa3f992ecfc92954849154b3af6b96a01f17bf21c612da748db38eb364\n\n# tcId = 46\n# edge case public key\nprivate = a0933ee30512b25ee4e900aaa07f73e507a8ec53b53a44626e0f589af4e0356c\npublic = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\nresult = valid\nshared = c5caf8cabc36f086deaf1ab226434098c222abdf8acd3ce75c75e9debb271524\n\n# tcId = 47\n# edge case public key\nprivate = 38d6403e1377734cdce98285e820f256ad6b769d6b5612bcf42cf2b97945c073\npublic = 0000000000000000000000000000000000000000000000000000000001000000\nresult = valid\nshared = 4d46052c7eabba215df8d91327e0c4610421d2d9129b1486d914c766cf104c27\n\n# tcId = 48\n# edge case public key\nprivate = 182191b7052e9cd630ef08007fc6b43bc7652913be6774e2fd271b71b962a641\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03\nresult = valid\nshared = a0e0315175788362d4ebe05e6ac76d52d40187bd687492af05abc7ba7c70197d\n\n# tcId = 49\n# edge case public key\nprivate = 106221fe5694a710d6e147696c5d5b93d6887d584f24f228182ebe1b1d2db85d\npublic = ffffff0f000000ffffff0f000000ffffff0f000000ffffff0f000000ffffff0f\nresult = valid\nshared = 5e64924b91873b499a5402fa64337c65d4b2ed54beeb3fa5d7347809e43aef1c\n\n# tcId = 50\n# edge case public key\nprivate = d035de9456080d85a912083b2e3c7ddd7971f786f25a96c5e782cf6f4376e362\npublic = 000000fcffff030000e0ffff1f000000ffffff000000f8ffff070000c0ffff3f\nresult = valid\nshared = c052466f9712d9ec4ef40f276bb7e6441c5434a83efd8e41d20ce83f2dbf5952\n\n# tcId = 51\n# edge case public key\nprivate = a8f37318a4c760f3cb2d894822918735683cb1edacf3e666e15694154978fd6d\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nresult = valid\nshared = d151b97cba9c25d48e6d576338b97d53dd8b25e84f65f7a2091a17016317c553\n\n# tcId = 52\n# edge case public key\nprivate = 20d4d624cf732f826f09e8088017742f13f2da98f4dcf4b40519adb790cebf64\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f\nresult = valid\nshared = 5716296baf2b1a6b9cd15b23ba86829743d60b0396569be1d5b40014c06b477d\n\n# tcId = 53\n# edge case public key\nprivate = d806a735d138efb3b404683c9d84485ab4af540d0af253b574323d8913003c66\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fff7f\nresult = valid\nshared = ddbd56d0454b794c1d1d4923f023a51f6f34ef3f4868e3d6659307c683c74126\n\n# tcId = 54\n# edge case public key\nprivate = 184198c6228177f3ef41dc9a341258f8181ae365fe9ec98d93639b0bbee1467d\npublic = fffffffffeffff7ffffffffffeffff7ffffffffffeffff7ffffffffffeffff7f\nresult = valid\nshared = 8039eebed1a4f3b811ea92102a6267d4da412370f3f0d6b70f1faaa2e8d5236d\n\n# tcId = 55\n# edge case public key\nprivate = f0a46a7f4b989fe515edc441109346ba746ec1516896ec5b7e4f4d903064b463\npublic = edfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff7f\nresult = valid\nshared = b69524e3955da23df6ad1a7cd38540047f50860f1c8fded9b1fdfcc9e812a035\n\n# tcId = 56\n# edge case public key\nprivate = 881874fda3a99c0f0216e1172fbd07ab1c7df78602cc6b11264e57aab5f23a49\npublic = edfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffff7f\nresult = valid\nshared = e417bb8854f3b4f70ecea557454c5c4e5f3804ae537960a8097b9f338410d757\n\n# tcId = 57\n# edge case public key\nprivate = b8d0f1ae05a5072831443150e202ac6db00322cdf341f467e9f296588b04db72\npublic = edfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffff7f\nresult = valid\nshared = afca72bb8ef72", + "7b60c530c937a2f7d06bb39c39b903a7f4435b3f5d8fc1ca810\n\n# tcId = 58\n# edge case public key\nprivate = c8619ba988859db7d6f20fbf3ffb8b113418cc278065b4e8bb6d4e5b3e7cb569\npublic = edfffffffffffffffeffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 7e41c2886fed4af04c1641a59af93802f25af0f9cba7a29ae72e2a92f35a1e5a\n\n# tcId = 59\n# edge case public key\nprivate = f8d4ca1f37a30ec9acd6dbe5a6e150e5bc447d22b355d80ba002c5b05c26935d\npublic = edfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = dd3abd4746bf4f2a0d93c02a7d19f76d921c090d07e6ea5abae7f28848355947\n\n# tcId = 60\n# edge case public key\nprivate = 88037ac8e33c72c2c51037c7c8c5288bba9265c82fd8c31796dd7ea5df9aaa4a\npublic = edffffefffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 8c27b3bff8d3c1f6daf2d3b7b3479cf9ad2056e2002be247992a3b29de13a625\n\n# tcId = 61\n# edge case public key\nprivate = 5034ee7bf83a13d9167df86b0640294f3620f4f4d9030e5e293f9190824ae562\npublic = edfffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 8e1d2207b47432f881677448b9d426a30de1a1f3fd38cad6f4b23dbdfe8a2901\n\n# tcId = 62\n# edge case public key\nprivate = 40bd4e1caf39d9def7663823502dad3e7d30eb6eb01e9b89516d4f2f45b7cd7f\npublic = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 2cf6974b0c070e3707bf92e721d3ea9de3db6f61ed810e0a23d72d433365f631\n\n# tcId = 63\n# public key with low order\nprivate = e0f978dfcd3a8f1a5093418de54136a584c20b7b349afdf6c0520886f95b1272\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 64\n# public key with low order\nprivate = 387355d995616090503aafad49da01fb3dc3eda962704eaee6b86f9e20c92579\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 65\n# public key with low order\nprivate = c8fe0df92ae68a03023fc0c9adb9557d31be7feed0d3ab36c558143daf4dbb40\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,Twist,ZeroSharedSecret\n\n# tcId = 66\n# public key with low order\nprivate = c8d74acde5934e64b9895d5ff7afbffd7f704f7dfccff7ac28fa62a1e6410347\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,NonCanonicalPublic,Twist,ZeroSharedSecret\n\n# tcId = 67\n# public key with low order\nprivate = b85649d5120e01e8ccaf7b2fb8d81b62e8ad6f3d5c0553fdde1906cb9d79c050\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,NonCanonicalPublic,Twist,ZeroSharedSecret\n\n# tcId = 68\n# public key with low order\nprivate = 2064b2f4c9dc97ec7cf58932fdfa3265ba6ea4d11f0259b8efc8afb35db88c48\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,NonCanonicalPublic,ZeroSharedSecret\n\n# tcId = 69\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 70\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0100000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 71\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 72\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 73\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 74\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 75\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 76\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0000000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 77\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 0100000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 78\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 79\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f11d7\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 80\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b880\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 81\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 82\n# public key with low order\nprivate = 786a33a4f7af297a20e7642925932bf509e7070fa1bc36986af1eb13f4f50b55\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 83\n# public key =\n# 57896044618658097711785492504343953926634992332820282019728792003956564819949\nprivate = 40ff586e73d61f0960dc2d763ac19e98225f1194f6fe43d5dd97ad55b3d35961\npublic = edfffffffffffffffffffff", + "fffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,ZeroSharedSecret\n\n# tcId = 84\n# public key =\n# 57896044618658097711785492504343953926634992332820282019728792003956564819950\nprivate = 584fceaebae944bfe93b2e0d0a575f706ce5ada1da2b1311c3b421f9186c7a6f\npublic = eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,NonCanonicalPublic,ZeroSharedSecret\n\n# tcId = 85\n# non-canonical public key\nprivate = 0016b62af5cabde8c40938ebf2108e05d27fa0533ed85d70015ad4ad39762d54\npublic = efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = b4d10e832714972f96bd3382e4d082a21a8333a16315b3ffb536061d2482360d\nflags = NonCanonicalPublic,Twist\n\n# tcId = 86\n# non-canonical public key\nprivate = d83650ba7cec115881916255e3fa5fa0d6b8dcf968731bd2c9d2aec3f561f649\npublic = f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 515eac8f1ed0b00c70762322c3ef86716cd2c51fe77cec3d31b6388bc6eea336\nflags = NonCanonicalPublic,Twist\n\n# tcId = 87\n# non-canonical public key\nprivate = 88dd14e2711ebd0b0026c651264ca965e7e3da5082789fbab7e24425e7b4377e\npublic = f1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 6919992d6a591e77b3f2bacbd74caf3aea4be4802b18b2bc07eb09ade3ad6662\nflags = NonCanonicalPublic\n\n# tcId = 88\n# non-canonical public key\nprivate = 98c2b08cbac14e15953154e3b558d42bb1268a365b0ef2f22725129d8ac5cb7f\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 9c034fcd8d3bf69964958c0105161fcb5d1ea5b8f8abb371491e42a7684c2322\nflags = NonCanonicalPublic\n\n# tcId = 89\n# non-canonical public key\nprivate = c0697b6f05e0f3433b44ea352f20508eb0623098a7770853af5ca09727340c4e\npublic = 0200000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = ed18b06da512cab63f22d2d51d77d99facd3c4502e4abf4e97b094c20a9ddf10\nflags = NonCanonicalPublic,Twist\n\n# tcId = 90\n# non-canonical public key\nprivate = 18422b58a18e0f4519b7a887b8cfb649e0bfe4b34d75963350a9944e5b7f5b7e\npublic = 0300000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 448ce410fffc7e6149c5abec0ad5f3607dfde8a34e2ac3243c3009176168b432\nflags = NonCanonicalPublic,Twist\n\n# tcId = 91\n# non-canonical public key\nprivate = 20620d82487707bedf9ee3549e95cb9390d2618f50cf6acba47ffaa103224a6f\npublic = 0400000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 03a633df01480d0d5048d92f51b20dc1d11f73e9515c699429b90a4f6903122a\nflags = NonCanonicalPublic\n\n# tcId = 92\n# non-canonical public key\nprivate = 285a6a7ceeb7122f2c78d99c53b2a902b490892f7dff326f89d12673c3101b53\npublic = daffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 9b01287717d72f4cfb583ec85f8f936849b17d978dbae7b837db56a62f100a68\nflags = NonCanonicalPublic\n\n# tcId = 93\n# non-canonical public key\nprivate = c8e0330ae9dceeff887fba761225879a4bd2e0db08799244136e4721b2c88970\npublic = dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = dfe60831c9f4f96c816e51048804dbdc27795d760eced75ef575cbe3b464054b\nflags = NonCanonicalPublic\n\n# tcId = 94\n# non-canonical public key\nprivate = 10db6210fc1fb13382472fa1787b004b5d11868ab3a79510e0cee30f4a6df26b\npublic = dcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 50bfa826ca77036dd2bbfd092c3f78e2e4a1f980d7c8e78f2f14dca3cce5cc3c\nflags = NonCanonicalPublic,Twist\n\n# tcId = 95\n# non-canonical public key\nprivate = 9041c6e044a277df8466275ca8b5ee0da7bc028648054ade5c592add3057474e\npublic = eaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 13da5695a4c206115409b5277a934782fe985fa050bc902cba5616f9156fe277\nflags = NonCanonicalPublic\n\n# tcId = 96\n# non-canonical public key\nprivate = b8d499041a6713c0f6f876db7406587fdb44582f9542356ae89cfa958a34d266\npublic = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = 63483b5d69236c63cddbed33d8e22baecc2b0ccf886598e863c844d2bf256704\nflags = NonCanonicalPublic\n\n# tcId = 97\n# non-canonical public key\nprivate = c85f08e60c845f82099141a66dc4583d2b1040462c544d33d0453b20b1a6377e\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nresult = acceptable\nshared = e9db74bc88d0d9bf046ddd13f943bccbe6dbb47d49323f8dfeedc4a694991a3c\nflags = NonCanonicalPublic\n\n# tcId = 98\n# public key =\n# 57896044618658097711785492504343953926634992332820282019728792003956564819968\nprivate = 7887889bac4c629a101d3724f2ed8b98d936fde79e1a1f77d86779626bf8f263\npublic = 0000000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,NonCanonicalPublic,ZeroSharedSecret\n\n# tcId = 99\n# public key =\n# 57896044618658097711785492504343953926634992332820282019728792003956564819969\nprivate = e07971ee820e48b0b266d8be3cdbbb5e900a43f59ee8535c6572418615de4962\npublic = 0100000000000000000000000000000000000000000000000000000000000080\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,NonCanonicalPublic,Twist,ZeroSharedSecret\n\n# tcId = 100\n# RFC 7748\nprivate = a046e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449a44\npublic = e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c\nresult = valid\nshared = c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552\n\n# tcId = 101\n# RFC 7748\nprivate = 4866e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba4d\npublic = e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a413\nresult = valid\nshared = 95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957\n\n# tcId = 102\n# RFC 8037, Section A.6\nprivate = 77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a\npublic = de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f\nresult = valid\nshared = 4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742\n\n# tcId = 103\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = b7b6d39c765cb60c0c8542f4f3952ffb51d3002d4aeb9f8ff988b192043e6d0a\nresult = acceptable\nshared = 0200000000000000000000000000000000000000000000000000000000000000\nflags = Twist\n\n# tcId = 104\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 3b18df1e50b899ebd588c3161cbd3bf98ebcc2c1f7df53b811bd0e91b4d5153d\nresult = valid\nshared = 0900000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 105\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = cab6f9e7d8ce00dfcea9bbd8f069ef7fb2ac504abf83b87db601b5ae0a7f7615\nresult = valid\nshared = 1000000000000000000000000000000000000000000000000000000000000000\n\n# tcId = 106\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 4977d0d897e1ba566590f60f2eb0db6f7b24c13d436918ccfd32708dfad7e247\nresult = acceptable\nshared = feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nflags = Twist\n\n# tcId = 107\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 98730bc03e29e8b057fb1d20ef8c0bffc822485d3db7f45f4e3cc2c3c6d1d14c\nresult = valid\nshared = fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\n\n# tcId = 108\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 97b4fff682df7f096cd1756569e252db482d45406a3198a1aff282a5da474c49\nresult = acceptable\nshared = f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nflags = Twist\n\n# tcId = 109\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a", + "073a9767f\npublic = 317781b0163bae74accc06c0d44ef9a911a22b0d37faf7726621591f9343ea2f\nresult = valid\nshared = f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\n\n# tcId = 110\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 7e26f8f24cb590027f9d1bc49b0e1a242c7d8f43624d3e8fab28ee08e02cb45e\nresult = valid\nshared = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03\n\n# tcId = 111\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = e96d2780e5469a74620ab5aa2f62151d140c473320dbe1b028f1a48f8e76f95f\nresult = acceptable\nshared = e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nflags = Twist\n\n# tcId = 112\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 8d612c5831aa64b057300e7e310f3aa332af34066fefcab2b089c9592878f832\nresult = acceptable\nshared = e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nflags = Twist\n\n# tcId = 113\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 8d44108d05d940d3dfe5647ea7a87be24d0d036c9f0a95a2386b839e7b7bf145\nresult = valid\nshared = ddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\n\n# tcId = 114\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 21a35d5db1b6237c739b56345a930aeee373cdcfb4701266782a8ac594913b29\nresult = acceptable\nshared = dbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nflags = Twist\n\n# tcId = 115\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 3e5efb63c352ce942762482bc9337a5d35ba55664743ac5e93d11f957336cb10\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000002\nflags = Twist\n\n# tcId = 116\n# edge case for shared secret\nprivate = 60a3a4f130b98a5be4b1cedb7cb85584a3520e142d474dc9ccb909a073a9767f\npublic = 8e41f05ea3c76572be104ad8788e970863c6e2ca3daae64d1c2f46decfffa571\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000008000\nflags = Twist\n\n# tcId = 117\n# special case public key\nprivate = c8d07c46bbfb827753b92c70e49583ce8bfa44641a7382258ea903d6a832c96b\npublic = 0000000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,ZeroSharedSecret\n\n# tcId = 118\n# special case public key\nprivate = 90b7ef237a055f348dcb4c4364a59d7d31edc7ab78f2ca254e2c810975c3f543\npublic = 0100000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = SmallPublicKey,LowOrderPublic,ZeroSharedSecret\n\n# tcId = 119\n# special case public key\nprivate = e0a8be63315c4f0f0a3fee607f44d30a55be63f09561d9af93e0a1c9cf0ed751\npublic = 0200000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = 0c50ac2bfb6815b47d0734c5981379882a24a2de6166853c735329d978baee4d\nflags = Twist\n\n# tcId = 120\n# special case public key\nprivate = 0840a8af5bc4c48da8850e973d7e14220f45c192cea4020d377eecd25c7c3643\npublic = 1200000000000000000000000000000000000000000000000000000000000000\nresult = valid\nshared = 77557137a2a2a651c49627a9b239ac1f2bf78b8a3e72168ccecc10a51fc5ae66\n\n# tcId = 121\n# special case public key\nprivate = 0092229c753a71284d0853909470ad847ab62f439ea51482fb41d30cc3b44743\npublic = 1400000000000000000000000000000000000000000000000000000000000000\nresult = acceptable\nshared = c88e719ae5c2248b5f90da346a92ae214f44a5d129fd4e9c26cf6a0da1efe077\nflags = Twist\n\n# tcId = 122\n# special case public key\nprivate = b8da2bd2d7cf25a3e54e5f87ee15911effb9ff86baec4076d56c8e953670bf5b\npublic = 0000000000000000000000000080000000000000000000000000000000000000\nresult = valid\nshared = 4bf6789c7ea036f973cde0af02d6fdb9b64a0b957022111439570fad7d7a453f\n\n# tcId = 123\n# special case public key\nprivate = 684cd420af41abb3d10c61e773238cf729c2155f941ac27e15f4c37f49b29576\npublic = ffffffffffffffffffffffffffff000000000000000000000000000000000000\nresult = valid\nshared = bcac235ae15cc7148372e11f9315e3bc76ceb904b3d2a8246bd9d9be2082bb62\n\n# tcId = 124\n# special case public key\nprivate = 38cfacaa4460796b4de434bdd6739f0d043671f97fa829517511e6b47aa93474\npublic = 0100000000000000000000000000010000000000000000000000000000000000\nresult = acceptable\nshared = 5dd7d16fff25cc5fdf9e03c3157cb0a235cea17d618f36e6f13461567edeb943\nflags = Twist\n\n# tcId = 125\n# special case public key\nprivate = 30832e8cb627ac195f77b1105258e4bb18b99a5ed944404bfacb3a039fbdb14b\npublic = 0000000000000000000000000000000000000000000000000000004000000000\nresult = valid\nshared = 2816fd031d51d6750f9225ede950625cca47441ca97e43092650396991afcb6d\n\n# tcId = 126\n# special case public key\nprivate = d818fd6971e546447f361d33d3dbb3eadcf02fb28f246f1d5107b9073a93cd4f\npublic = 0000000000000000000000000000000000000000000000000000008000000000\nresult = acceptable\nshared = 7ed8f2d5424e7ebb3edbdf4abe455447e5a48b658e64abd06c218f33bd151f64\nflags = Twist\n\n# tcId = 127\n# special case public key\nprivate = 1021cd8682bdc3f5da9100adff5b2230b3acd836b3a455db8352a2c27e69d17e\npublic = ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000\nresult = acceptable\nshared = e8620ed5ca89c72c5ea5503e6dcd01131cd5e875c30e13d5dc619ce28ec7d559\nflags = Twist\n\n# tcId = 128\n# special case public key\nprivate = 20e4c9247102292655d6765d7d84c6fce5309b8004045daea6d7d7dcad462871\npublic = 0100000000000000000000000000000000000000000000000000000001000000\nresult = valid\nshared = ceadb264379dcadd6e3bb8ad24dd653d2a609dd703d41da6caf3ad00f001862c\n\n# tcId = 129\n# special case public key\nprivate = 90b150d462de512056d5bd55173074969b496f262fb6916b733f6263a8078971\npublic = a8b9c7372118a53a9de9eaf0868e3b1a3d88e81cb2e407ff7125e9f5c5088715\nresult = acceptable\nshared = f86cc7bf1be49574fc97a074282e9bb5cd238e002bc8e9a7b8552b2d60eccb52\nflags = Twist\n\n# tcId = 130\n# special case public key\nprivate = 9887286b3261c8d857a16f6db21277f75d88d4e861b3ebe7596699047e816668\npublic = aab9c7372118a53a9de9eaf0868e3b1a3d88e81cb2e407ff7125e9f5c5088715\nresult = acceptable\nshared = ccbb8fd9dee165a398b2dbd7c8396f81736c1b3da36b35fbec8f326f38f92767\nflags = Twist\n\n# tcId = 131\n# special case public key\nprivate = 20ca2c85cc8762e96b7047bf15c71c050ffe0ed1616040a953ae32a1297ad871\npublic = 585007a5930d77623cf29756038ca197d3ebfd9e4c80a69585efe0274092c115\nresult = valid\nshared = 46add6f48ffff461777d4f89b6fdf1155aa051a96387d45f3e5e371a236b6e52\n\n# tcId = 132\n# special case public key\nprivate = d027656605b10bf18dea28bc52546f9f1f08cef06cafd200fc84f87dbb4ebe46\npublic = fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1f\nresult = valid\nshared = 1adbe32207e21f71e1af53884d2a2276481e298e557f4dacb3720f2458e3082d\n\n# tcId = 133\n# special case public key\nprivate = 4867a83ee9d01b7510840867db1af6a6049bdbb056b74443f70c358e162c8867\npublic = 0000000000000000000000000000000000000000000000000000000000000020\nresult = acceptable\nshared = e12cc58fbeb70a5e35c861c33710be6516a6a92e52376060211b2487db542b4f\nflags = Twist\n\n# tcId = 134\n# special case public key\nprivate = a015970a8add940fca5b1b5d23875397d547d8d494fcb314f2045a67a2d12c4b\npublic = afa00e4a271beec478e42fad0618432fa7d7fb3d99004d2b0bdfc14f8024832b\nresult = valid\nshared = 421bed1b26da1e9adbeada1f32b91a0fb4ced0f1110e0a4a88e735a19ee4571e\n\n# tcId = 135\n# special case public key\nprivate = 4058cb6b9aaba02a338aaa392dbc10039e26e9e444117e758e24c5d8b232ea5e\npublic = b1a00e4a271beec478e42fad0618432fa7d7fb3d99004d2b0bdfc14f8024832b\nresult = valid\nshared = d7b47463e2f4ca9a1a7deea098da8e74ac3b4a109083d997259b12992e7e7e06\n\n# tcId = 136\n# special case public key\nprivate = b876b05daff0530b139d9e11250563418077178246c5fa7005ba00e9b6647763\npublic = fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2f\nresult = acceptable\nshared = 686eb910a937211b9147c8a051a1197906818fdc626668eb5f5d394afd86d41b\nflags = Twist\n\n# tcId = 137\n# special case public key\nprivate = d87fd6aa5d8deef6dee9619a56846a0829620590f2da40835", + "d8e251597e39078\npublic = 22231c64ef73ad62318b8a87bc38e272e1bb8bf1a60d7c00476d0b059d7b3c35\nresult = valid\nshared = 09559733b35bcc6bb8ac574b5abe3a4d8841deff051c294a07487e3eec3c5558\n\n# tcId = 138\n# special case public key\nprivate = 90036321b63751f7622aa93da34d85e59ce81009ac5b9a068921d83bc4715b57\npublic = f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nresult = valid\nshared = f7d5cbcf39eb722b01ed20c85563ebb81d076511aead4ccc429027866b9fd270\n\n# tcId = 139\n# special case public key\nprivate = a06781fd4c4a0874e00e72ba131b9dd87a83b2904e294de176e8a9af1f695d67\npublic = f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nresult = acceptable\nshared = e995ad6a1ec6c5ab32922cff9d204721704673143c4a11deaa203f3c81989b3f\nflags = Twist\n\n# tcId = 140\n# special case public key\nprivate = b822d72d8b68bdb4fbf67e56a61d672b2c7747e94479fe5ae4072d0accdd6571\npublic = feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f\nresult = acceptable\nshared = 32b6dabe01d13867f3b5b0892fefd80dca666f2edc5afb43cd0baf703c3e6926\nflags = Twist\n\n# tcId = 141\n# special case public key\nprivate = d08ce1237e248d02cdf619d20bea5848ade4f6ffd171b8dee8793fc67c459640\npublic = 0000000000000000000000000000000000000000000000000000000000000040\nresult = valid\nshared = a93d83fc9ea0f6cb0cc8b631da600019b76cbb2ec57222f2e42dd540e3da850b\n\n# tcId = 142\n# special case public key\nprivate = 180ae3c928514cfb9edd06e7dc1d5d066160e967445a5c58e4463b69ed205e6d\npublic = cbdce39b108c529dce74757843c71d8d1e44740e59f283ffb892f4fa6284c34a\nresult = valid\nshared = 017cbfa2b38e9ef3297a339ecce1a917bdcf7e910036086a41d1e22d04241870\n\n# tcId = 143\n# special case public key\nprivate = e881d806a110560cd8fee899d59c0249f1233a4322c41aa369c7a2a99f5b5962\npublic = 3c5ff1b5d8e4113b871bd052f9e7bcd0582804c266ffb2d4f4203eb07fdb7c54\nresult = valid\nshared = 71133905b8a57ea8c38de0ecf213699a75b096c2df21f07f7e9eb03e9fa53f5c\n\n# tcId = 144\n# special case public key\nprivate = 08e410e1d7e8b9411236af4a35d6b62a5d8931478e4c62197cfafb491467b162\npublic = 3e5ff1b5d8e4113b871bd052f9e7bcd0582804c266ffb2d4f4203eb07fdb7c54\nresult = valid\nshared = 3dc7b70e110766b2bf525252ebed98a100b2e532dc69544464da1bbab8625f6d\n\n# tcId = 145\n# special case public key\nprivate = e02fdf7e0ee3d55b4440f01432dd253c949793bc04da44ddece83e54c8c39b40\npublic = f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f\nresult = valid\nshared = e317e5cc438b5f79ead5533ac7c45519a117b31033cc2140b19edf8572011240\n\n# tcId = 146\n# special case public key\nprivate = f05d18f68ef7a5865c14db3a9c255fdf2dabea2aa36581e94f68b727b582867b\npublic = f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f\nresult = valid\nshared = d86810516aeddc18061036f599a9eb84d1c6146b0f543652dd4526743ba42c04\n\n# tcId = 147\n# special case public key\nprivate = 00c103578d5c079d7bcc22c1c31e787c1b15c57fcb493fdafefa20371cfc746b\npublic = 95aff85a6cf2889dc30d68a9fc735e682c140261b37f596a7a101fd8bf6d3e6a\nresult = acceptable\nshared = dfa988a477003be125b95ccbf2223d97729577d25e1d6e89e3da0afabdd0ae71\nflags = Twist\n\n# tcId = 148\n# special case public key\nprivate = 7005bb927485c435642b424a3dde014bcf76345e5be64ae6e9b24db39e1cdb51\npublic = 434638c8dee75ac56216150f7971c4e5c27717e34d1bf8008eda160a3af7786a\nresult = acceptable\nshared = d450af45b8ed5fe140cc5263ffb7b52e66736899a8b872b6e28552129819b25b\nflags = Twist\n\n# tcId = 149\n# special case public key\nprivate = 0822039a5dc13c40fcccf346e2a7769b4fd272052d43260ad626468a50d44162\npublic = 454638c8dee75ac56216150f7971c4e5c27717e34d1bf8008eda160a3af7786a\nresult = valid\nshared = 58002c89bf8bc32ae6fc205b796acd13ef7f8476f6492ae4b2be47f1095e8a4f\n\n# tcId = 150\n# special case public key\nprivate = 40a6349c03f0dc0a42358f6353ca67632af687b14c9dff626c54e211e8fc355a\npublic = ecfffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = 7773aad6e72eb1735b65ad51f7dad258c11d7bfff53094424cb103cd6bfb4368\n\n# tcId = 151\n# special case public key\nprivate = 50696d4d05209971d6ba0676ea274262ba639aac74fa75e5df4570768ad8ae74\npublic = eefffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = c118ddf6462fbea80f14ef1f2972a1ab12cafa511d1323d4d22d0d426d651b5b\n\n# tcId = 152\n# special case public key\nprivate = 68bb680c853f4e4daa47c586dc886cf4568d7b0383770f6df439a53be4a3236d\npublic = edffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = cc0775bfd970a2706b11c7222a4436a3d17160382c83b76f89b66192c81b4408\n\n# tcId = 153\n# special case public key\nprivate = b0f6c28dbdc647068a76d71805ef770f087cf76b82afdc0d26c45b71ace49768\npublic = ebffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = valid\nshared = f0097fa0ba70d019126277ab15c56ecc170ca88180b2bf9d80fcda3d7d74552a\n\n# tcId = 154\n# special case public key\nprivate = 18630f93598637c35da623a74559cf944374a559114c7937811041fc8605564a\npublic = ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,Twist,ZeroSharedSecret\n\n# tcId = 155\n# special case for E in multiplication by 2\nprivate = 581ecbda5a4a228044fefd6e03df234558c3c79152c6e2c5e60b142c4f26a851\npublic = 0000000000000000000008000000000000000000000000000000000000000000\nresult = acceptable\nshared = 59e7b1e6f47065a48bd34913d910176b6792a1372aad22e73cd7df45fcf91a0e\nflags = Twist\n\n# tcId = 156\n# special case for E in multiplication by 2\nprivate = b0561a38000795b7cb537b55e975ea452c2118506295d5eb15fd9c83b67f7a50\npublic = 77af0d3897a715dfe25df5d538cf133bc9ab7ad52df6bd922a2fb75621d59901\nresult = valid\nshared = 179f6b020748acba349133eaa4518f1bd8bab7bfc4fb05fd4c24e7553da1e960\n\n# tcId = 157\n# special case for E in multiplication by 2\nprivate = b00f7df2d47128441c7270b9a87eee45b6056fc64236a57bdf81dbcccf5f5d42\npublic = 4e39866127b6a12a54914e106aab86464af55631f3cb61766d5999aa8d2e070e\nresult = valid\nshared = 43c5ee1451f213ef7624729e595a0fee7c9af7ee5d27eb03278ee9f94c202352\n\n# tcId = 158\n# special case for E in multiplication by 2\nprivate = c8f7a0c0bfb1e9c72576c534f86854fbe4af521d4fa807f67e2440e100ec8852\npublic = adc6799ed8495ed5ab6eb1ef955479b9b50aa9ce0c349e8992a6665572d1f811\nresult = valid\nshared = 2f350bcf0b40784d1d756c9ca3e38ec9dd68ba80faf1f9847de50779c0d4902a\n\n# tcId = 159\n# special case for E in multiplication by 2\nprivate = 58181f581aa37022ff71c56c6e68e6175d967c5c995a249885f66565074ded4d\npublic = 770f4218ef234f5e185466e32442c302bbec21bbb6cd28c979e783fe5013333f\nresult = acceptable\nshared = d5d650dc621072eca952e4344efc7320b2b1459aba48f5e2480db881c50cc650\nflags = Twist\n\n# tcId = 160\n# special case for E in multiplication by 2\nprivate = 301c935cae4357070b0adaf9cd6192830b2c989c153729eed99f589eb45f884b\npublic = 5c6118c4c74cfb842d9a87449f9d8db8b992d46c5a9093ce2fcb7a49b535c451\nresult = acceptable\nshared = 909cc57275d54f20c67b45f9af9484fd67581afb7d887bee1db5461f303ef257\nflags = Twist\n\n# tcId = 161\n# special case for E in multiplication by 2\nprivate = d002292d4359a3d42bc8767f1380009332e7a0df2f3379011ab78f789f6baa54\npublic = 4039866127b6a12a54914e106aab86464af55631f3cb61766d5999aa8d2e076e\nresult = valid\nshared = 4a7e2c5caf1d8180eb1c4f22692f29a14b4cdc9b193bd1d16e2f27438eef1448\n\n# tcId = 162\n# special case for E in multiplication by 2\nprivate = d0c2c49e644ab738270707ff9917065942687e2f12886d961161db46c05b565f\npublic = 078fa523498fb51cba1112d83b20af448b8009d8eea14368564d01b8f9b6086f\nresult = acceptable\nshared = c0ee59d3685fc2c3c803608b5ee39a7f8da30b48e4293ae011f0ea1e5aeb7173\nflags = Twist\n\n# tcId = 163\n# special case for E in multiplication by 2\nprivate = f087d38b274c1dad1bce6eaa36b48e2190b90b9bf8ca59669cc5e00464534342\npublic = 9fc6799ed8495ed5ab6eb1ef955479b9b50aa9ce0c349e8992a6665572d1f871\nresult = valid\nshared = b252bc8eabfaa68c56e54d61b99061a35d11e3a7b9bda417d90f69b1119bcf45\n\n# tcId = 164\n# special case for E in multiplication by 2\nprivate = 48dbcc5a695f1514bbbaa6ad00842b69d9ae5216b1963add07fb2947c97b8447\npublic = 7650f2c76858ea201da2022ac730ecc43654852ad209426dd5d048a9de2a667e\nresult = valid\nshared = fbda33bc930c08df837208e19afdc1cfe3fd0f8f0e3976be34775e58a4a7771f\n\n# tcId = 165\n# D = 0 in multiplication by 2\nprivate = 5891c9272cf9a197735b701e5715268d36d7436b7e351a3e997a0862e4807d4d\npubl", + "ic = e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 166\n# D = 0 in multiplication by 2\nprivate = c0f9c60aea73731d92ab5ed9f4cea122f9a6eb2577bda72f94948fea4d4cc65d\npublic = 5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157\nresult = acceptable\nshared = 0000000000000000000000000000000000000000000000000000000000000000\nflags = LowOrderPublic,ZeroSharedSecret\n\n# tcId = 167\n# special case for DA - CB in multiplication by 2\nprivate = 0066dd7674fe51f9326c1e239b875f8ac0701aae69a804c25fe43595e8660b45\npublic = b0224e7134cf92d40a31515f2f0e89c2a2777e8ac2fe741db0dc39399fdf2702\nresult = acceptable\nshared = 8dacfe7beaaa62b94bf6e50ee5214d99ad7cda5a431ea0c62f2b20a89d73c62e\nflags = Twist\n\n# tcId = 168\n# special case for DA - CB in multiplication by 2\nprivate = 80067f30f40d61318b420c859fce128c9017ab81b47b76028a57bc30d5856846\npublic = 601e3febb848ec3e57fce64588aad82afc9c2af99bbcdffcc4cd58d4b3d15c07\nresult = valid\nshared = 20f1d3fe90e08bc6f152bf5dacc3ed35899785333f1470e6a62c3b8cbe28d260\n\n# tcId = 169\n# special case for DA - CB in multiplication by 2\nprivate = 584577669d21ce0ae3e30b02c9783ffe97709cbfe396889aa31e8ee43352dc52\npublic = 82a3807bbdec2fa9938fb4141e27dc57456606301f78ff7133cf24f3d13ee117\nresult = acceptable\nshared = 2b28cc5140b816add5ad3a77a81b1c073d67bf51bf95bda2064a14eb12d5f766\nflags = Twist\n\n# tcId = 170\n# special case for DA - CB in multiplication by 2\nprivate = 18e597a4e2ccdb5e8052d57c9009938c2d4c43d6d8c9f93c98727b7311035953\npublic = f329ab2376462e5f3128a2682086253c19222ac1e2bca45692f0c3b528f4c428\nresult = valid\nshared = 8392160083b9af9e0ef44fcfce53ba8ff7282ee7a6c71ab66f8843a55d09cd68\n\n# tcId = 171\n# special case for DA in multiplication by 2\nprivate = 88281cc51d5512d8814ea5249b879dcbad0323d38512dafbdc7ba85bba8c8d5d\npublic = 4fce3bb6c8aaf022dbd100e3cde3941b37d543f00401dba7da9bc143dfc55709\nresult = valid\nshared = 42184e22c535530c457bd3b4f1084cbf5e297f502fe136b8d1daecf5334cc96c\n\n# tcId = 172\n# special case for DA in multiplication by 2\nprivate = d0e795450df0a813c6573496ec5793ca02e1bdbad10ed08df83fdaed68b3385f\npublic = 15c68851c1db844b5a1ef3456a659f188854b1a75fbdb2f68f514c9289ce711f\nresult = valid\nshared = f654d78e5945b24bc63e3e6d790e0ae986e53937764068b1bce920e1d79b756f\n\n# tcId = 173\n# special case for DA in multiplication by 2\nprivate = 30b69a1cc1eb2d0b83ea213846e90a2c922088bdf294a6995bf6e6e77c646c41\npublic = 4200a242434337b8914f49345301ed782b13594f9ede089c41fb1e7ea82c9053\nresult = valid\nshared = cd8a09b04795edcc7061867373981aa748651ebdce5ec218a335b878cefe4872\n\n# tcId = 174\n# special case for DA in multiplication by 2\nprivate = 78b30bb63cd8ade71b7a77d426f4419d05f199ffef349e89faa9d9a5f21f6654\npublic = baabf0174aaaea4de48cc83adfb0401461a741903ea6fb130d7d64b7bf03a966\nresult = valid\nshared = c9f8258f237db1c80702c5c4d9048dfba9dfe259da4aeee90dc2945526961275\n\n# tcId = 175\n# special case for x_2 in multiplication by 2\nprivate = c0b386f4ef0d4698686404977e7b60cb6c1f8b6012a22e29d6224c5947439041\npublic = f12f18bd59c126348f6a7a9f4a5fdd9fcaf581345073a851fba098e5d64b4a0c\nresult = valid\nshared = 6600cbe900616a770a126b8b19156d5e27e1174bd538d0944eb3c0be4899c758\n\n# tcId = 176\n# special case for x_2 in multiplication by 2\nprivate = 9886602e719bacafea092bb75b51ae7258abe1a364c176857f3dc188c03e6759\npublic = bee386527b772490aeb96fc4d23b9304037cb4430f64b228f3d8b3b498319f22\nresult = acceptable\nshared = 3fe710d6344ff0cb342e52349e1c5b57b7a271f2a133bb5249bbe40dc86e1b40\nflags = Twist\n\n# tcId = 177\n# special case for x_2 in multiplication by 2\nprivate = b83960f5d0613cdaac6dda690351666e9f277bba6bd406b0e27a1886bb2d3e46\npublic = cf911ac91b0d944049cec66ae5ef0c4549d1e612e107c68e87263a2fbcf8323f\nresult = valid\nshared = 71373ebe67f39a2c230027c7db4b3b74bab80ed212b232679785ee10f47c304e\n\n# tcId = 178\n# special case for x_2 in multiplication by 2\nprivate = d03b75f09ac807dfd2ee352c04a1f25984720f785ffaa0af88bc5db6ff9c3453\npublic = 1e6ee536e4f26bbfb63139951a10f3bab62e19ed1ef8397178d9c5d04307cd40\nresult = valid\nshared = 238eef43c589822e1d3de41c1cc46dcfec7a93febf37c8546b6625e1a123815d\n\n# tcId = 179\n# special case for x_2 in multiplication by 2\nprivate = d036948c0ec223f0ee577e390dbf87222358ed199f2823345ad154bbc4cbcc47\npublic = 2f1c79ad8488db6f5146903b2dc46cfbfc834bbcf09b4dd70c274c4b67ce605d\nresult = valid\nshared = 87a79c9c231d3b9526b49bf3d683bf38c3c319af7c7c5d1456487398da535010\n\n# tcId = 180\n# special case for x_2 in multiplication by 2\nprivate = d054ded613febf2950ac5c927fcb120c387de0ba61b331cd33024c8b6e737048\npublic = fccfe742a63ed9cb70958560b5a02260350a7ecbaf8c57ae045f671a29b4b573\nresult = valid\nshared = d683ca6194452d878c12d7da35f22833f99728bba89931a51274f61210336a5f\n\n# tcId = 181\n# special case for AA in multiplication by 2\nprivate = e82c480631fb153ba2211fe603032b3e71b162dbd3c11bec03208ffcd510655f\npublic = cb3d4a90f86b3011da3369d9988597c7fff1499273b4a04f84d0e26ed1683c0d\nresult = acceptable\nshared = dbf6203516635840cf69a02db87cf0d95dae315da7fc1ec7ce2b29e1f2db6666\nflags = Twist\n\n# tcId = 182\n# special case for AA in multiplication by 2\nprivate = c0c01d28c1cab01f59700aca5f18d2697658b37fdd54a339ff391c0a1a1b1645\npublic = 101e13f7bc0570fa2638caa20a67c6e0c21dab132f4b456191590264c493d018\nresult = acceptable\nshared = 1fe314744390d525278b1f5fbf108101b8ded587081375ed4ac4ac690d92414f\nflags = Twist\n\n# tcId = 183\n# special case for AA in multiplication by 2\nprivate = c82bde72df36479688c485a8bf442f4a34412e429c02db97704f03daf4dfd542\npublic = dce1ec0843fa8f05d9c7355df598391f3de254ecd0b4ba9e6ea6fd9b3b6c2f67\nresult = acceptable\nshared = ad454395ee392be677be7b9cb914038d57d2d87ec56cc98678dd84f19920912b\nflags = Twist\n\n# tcId = 184\n# special case for AA in multiplication by 2\nprivate = 503f697617fb02a7b8ef00ba34e7fc8ce93f9ec3e1cbfe4bf2c05bcee0cb9757\npublic = 21c2b56f0794cfee25cc9626677a6838000eb66d8c4b5fb07b2f1d912e97c372\nresult = valid\nshared = c6d6499255133398f9dd7f32525db977a538118800bfaf3aad8bcd26f02c3863\n\n# tcId = 185\n# special case for BB in multiplication by 2\nprivate = 58cd4ca1e4331188de2b2889419ce20ec5ef88a0e93af092099065551b904e41\npublic = cc3d4a90f86b3011da3369d9988597c7fff1499273b4a04f84d0e26ed1683c0d\nresult = valid\nshared = 0d74214da1344b111d59dfad3713eb56effe7c560c59cbbb99ec313962dbba58\n\n# tcId = 186\n# special case for BB in multiplication by 2\nprivate = 004ea3448b84ca509efec5fcc24c63ee984def63b29deb9037894709709c0957\npublic = 111e13f7bc0570fa2638caa20a67c6e0c21dab132f4b456191590264c493d018\nresult = acceptable\nshared = 7b9dbf8d6c6d65898b518167bf4011d54ddc265d953c0743d7868e22d9909e67\nflags = Twist\n\n# tcId = 187\n# special case for BB in multiplication by 2\nprivate = c8a6eb00a4d74bbdff239522c3c891ed7ce1904be2a329cd0ae0061a253c9542\npublic = dde1ec0843fa8f05d9c7355df598391f3de254ecd0b4ba9e6ea6fd9b3b6c2f67\nresult = valid\nshared = fb0e0209c5b9d51b401183d7e56a59081d37a62ab1e05753a0667eebd377fd39\n\n# tcId = 188\n# special case for BB in multiplication by 2\nprivate = 50322ff0d0dcdd6b14f307c04dfecefe5b7cdeaf92bffb919e9d62ed27079040\npublic = 22c2b56f0794cfee25cc9626677a6838000eb66d8c4b5fb07b2f1d912e97c372\nresult = valid\nshared = dbe7a1fe3b337c9720123e6fcc02cf96953a17dc9b395a2206cb1bf91d41756e\n\n# tcId = 189\n# special case for D in multiplication by 2\nprivate = e0328c7d188d98faf2ac72d728b7d14f2bbbd7a94d0fbd8e8f79abe0b1fe1055\npublic = e58baccede32bcf33b3b6e3d69c02af8284a9631de74b6af3f046a9369df040f\nresult = valid\nshared = 97bd42093e0d48f973f059dd7ab9f97d13d5b0d5eedffdf6da3c3c432872c549\n\n# tcId = 190\n# special case for D in multiplication by 2\nprivate = 5017679a17bd23adf95ad47e310fc6526f4ba9ca3b0839b53bd0d92839eb5b4f\npublic = c6d5c693fc0a4e2df6b290026860566a166b6d7aebe3c98828d492745c8df936\nresult = valid\nshared = 99bcbc7b9aa5e25580f92bf589e95dae874b83e420225d8a93e18e96dac00b63\n\n# tcId = 191\n# special case for D in multiplication by 2\nprivate = 2864aaf61c146df06cc256b065f66b34985cc015da5b1d647a6ed4e2c76bfc43\npublic = d15f4bf2ef5c7bda4ee95196f3c0df710df5d3d206360fc3174ea75c3aa3a743\nresult = valid\nshared = afa2adb52a670aa9c3ec3020d5fda285474ede5c4f4c30e9238b884a77969443\n\n# tcId = 192\n# special case for D in multiplication by 2\nprivate = 184a6cfbabc", + "bd1507a2ea41f52796583dbdb851b88a85781ee8e3c28782c3349\npublic = 6dffb0a25888bf23cf1ac701bfbdede8a18e323b9d4d3d31e516a05fce7ce872\nresult = acceptable\nshared = e6a2fc8ed93ce3530178fef94bb0056f43118e5be3a6eabee7d2ed384a73800c\nflags = Twist\n\n# tcId = 193\n# special case for D in multiplication by 2\nprivate = c85f954b85bc102aca799671793452176538d077862ee45e0b253619767dff42\npublic = 21f86d123c923a92aaf2563df94b5b5c93874f5b7ab9954aaa53e3d72f0ff67e\nresult = acceptable\nshared = 7fc28781631410c5a6f25c9cfd91ec0a848adb7a9eb40bc5b495d0f4753f2260\nflags = Twist\n\n# tcId = 194\n# special case for D in multiplication by 2\nprivate = 50e3e5a9a19be2ee3548b0964672fb5e3134cb0d2f7adf000e4556d0ffa37643\npublic = 587c347c8cb249564ab77383de358cc2a19fe7370a8476d43091123598941c7f\nresult = valid\nshared = 314d8a2b5c76cc7ee1217df2283b7e6724436e273aeb80628dce0600ab478a63\n\n# tcId = 195\n# special case for DA + CB in multiplication by 2\nprivate = 08ece580bb6ddf96559b81d7a97dd4531def6cc78d448a70cebabdd26caab146\npublic = f5c6311a1dd1b9e0f8cfd034ac6d01bf28d9d0f962a1934ae2cb97cb173dd810\nresult = valid\nshared = 2bfd8e5308c34498eb2b4daf9ed51cf623da3beaeb0efd3d687f2b8becbf3101\n\n# tcId = 196\n# special case for DA + CB in multiplication by 2\nprivate = a886033e9dc2b6a913fffbc2bd402e8c11ec34d49c0dc0fa1429329b694a285f\npublic = 9316c06d27b24abc673ffb5105c5b9a89bdfaa79e81cdbb89556074377c70320\nresult = acceptable\nshared = d53c3d6f538c126b9336785d1d4e6935dc8b21f3d7e9c25bc240a03e39023363\nflags = Twist\n\n# tcId = 197\n# special case for DA + CB in multiplication by 2\nprivate = 98b1cc2020a8ec575d5c46c76024cf7c7ad7628eb909730bc4f460aaf0e6da4b\npublic = 8a4179807b07649e04f711bf9473a79993f84293e4a8b9afee44a22ef1000b21\nresult = acceptable\nshared = 4531881ad9cf011693ddf02842fbdab86d71e27680e9b4b3f93b4cf15e737e50\nflags = Twist\n\n# tcId = 198\n# special case for DA + CB in multiplication by 2\nprivate = c8e193de162aa349a3432c7a0c0521d92cbc5e3bf82615e42955dd67ec12345f\npublic = a773277ae1029f854749137b0f3a02b5b3560b9c4ca4dbdeb3125ec896b81841\nresult = acceptable\nshared = 7ba4d3de697aa11addf3911e93c94b7e943beff3e3b1b56b7de4461f9e48be6b\nflags = Twist\n\n# tcId = 199\n# special case for DA + CB in multiplication by 2\nprivate = 88e01237b336014075676082afbde51d595d47e1fa5214b51a351abbf6491442\npublic = 1eceb2b3763231bc3c99dc62266a09ab5d3661c756524cddc5aabcedee92da61\nresult = acceptable\nshared = bcf0884052f912a63bbab8c5c674b91c4989ae051fa07fcf30cb5317fb1f2e72\nflags = Twist\n\n# tcId = 200\n# special case for DA + CB in multiplication by 2\nprivate = e82313e451a198dce4ae95c6832a8281d847fc87b28db00fe43757c16cc49c4a\npublic = 9a2acbb3b5a386a6102e3728be3a97de03981d5c71fd2d954604bee3d3d0ce62\nresult = acceptable\nshared = e5772a92b103ee696a999705cf07110c460f0545682db3fac5d875d69648bc68\nflags = Twist\n\n# tcId = 201\n# special case for DA + CB in multiplication by 2\nprivate = 2828594d16768e586df39601ecc86d3fad6389d872b53fca3edcaf6fb958f653\npublic = 27430e1c2d3089708bca56d7a5ad03792828d47685b6131e023dd0808716b863\nresult = acceptable\nshared = 378c29e3be97a21b9f81afca0d0f5c242fd4f896114f77a77155d06ce5fbfa5e\nflags = Twist\n\n# tcId = 202\n# special case for z_2 in multiplication by 2\nprivate = a84f488e193139f986b0e5b249635b137d385e420342aef1f194fcde1fe5e850\npublic = 4ef367901aac8ba90a50e0cf86ca4e4a3ff164fb121605be346e2e48d04ac912\nresult = valid\nshared = 7eb48a60b14fb9ea5728f6410aef627d1522fad481b934af64e2c483b64d585f\n\n# tcId = 203\n# special case for z_2 in multiplication by 2\nprivate = 30fd2a781e095c34a483907b3dd2d8bd2736e279617bfa6b8b4e0e1cf90fbd46\npublic = d1de303c4ddd05d57c29df92ad172dd8c8f424e63ec93445beaea44f9d124b17\nresult = valid\nshared = b71bdbed78023a06deed1c182e14c98f7cf46bc627a4a2c102ad23c41cf32454\n\n# tcId = 204\n# special case for z_2 in multiplication by 2\nprivate = 28312e17b47dd32d90561168245187963c7469a31c881e4a5c94384262b71959\npublic = 5bccd739fd7517d9344bf6b2b0f19a1e0c38d9349a25ad1f94af4a2cdcf5e837\nresult = valid\nshared = 5bb56877caf2cdac98611b60367fbb74265984614e5e73996e8ea1bd6f749f1a\n\n# tcId = 205\n# special case for z_2 in multiplication by 2\nprivate = a87640cf8237b473c638b3e9df08644e8607e563b5964363ccc42133b2996742\npublic = 8a7a939310df7ea768454df51bcd0dfbd7be4fcbb2ffc98429d913ec6911f337\nresult = acceptable\nshared = b568ed46d04f6291f8c176dca8aff6d221de4c9cce4b404d5401fbe70a324501\nflags = Twist\n\n# tcId = 206\n# special case for z_2 in multiplication by 2\nprivate = 780c5b882720d85e5ddfaf1033e9a1385df9e21689eeda4dcc7444ad28330a50\npublic = fe3590fc382da7a82e28d07fafe40d4afc91183a4536e3e6b550fee84a4b7b4b\nresult = acceptable\nshared = 11fb44e810bce8536a957eaa56e02d04dd866700298f13b04ebeb48e20d93647\nflags = Twist\n\n# tcId = 207\n# special case for z_2 in multiplication by 2\nprivate = 209e5e0ae1994bd859ce8992b62ec3a66df2eb50232bcc3a3d27b6614f6b014d\npublic = fad9ab3e803b49fc81b27ee69db6fc9fdb82e35453b59ef8fab2a3beb5e1134c\nresult = acceptable\nshared = 85d9db8f182bc68db67de3471f786b45b1619aec0f32b108ace30ee7b2624305\nflags = Twist\n\n# tcId = 208\n# special case for z_2 in multiplication by 2\nprivate = 806d1dee5ff6aea84a848916991a89ef3625583e1bd4ae0b3dd25c2524a4ff46\npublic = 98bed955f1516c7a442751ac590046d7d52ca64f76df82be09d32e5d33b49073\nresult = valid\nshared = 61d4ef71cbe7be3128be829ab26ed3463eb4ab25937c309788e876b23412aa7c\n\n# tcId = 209\n# special case for z_2 in multiplication by 2\nprivate = 00f98b02ae0df5274cc899f526eb1b877289e0963440a57dd97e414cdd2f7c51\npublic = e59be4917b3f05b6fc8748c9b90f1b910273c9c6e17ff96ef415ff3d927d987e\nresult = valid\nshared = 5ba4394ed1a664811b01557944becf7585652a8acbdbf806742911207bd79346\n\n# tcId = 210\n# special case for A in multiplication by 2\nprivate = d86c18f2be396b3bb72f22e6ece22e273af6e1506a1c09ad4d01bdd2f439f843\npublic = 8c9885a26cb334054700a270f7a5f4aac06bad8263b651ebf0712eca1ebb6416\nresult = acceptable\nshared = a5952588613eb7a5cd49dd526f1f20a4f0ffe9423e82cea302c2dd90ce559955\nflags = Twist\n\n# tcId = 211\n# special case for A in multiplication by 2\nprivate = f81aadb9053eb698996d0f781d9cda67f82ddefa3987d276ff5a94ffdf5d255f\npublic = f6135fe9741c2c9de7dcf7627ef08832f351cb325dbb3a26f93a2b48620e1727\nresult = acceptable\nshared = cb6fb623084b6197443ec9ba1050c0923332e5e829ae0194269cfaf920a43601\nflags = Twist\n\n# tcId = 212\n# special case for A in multiplication by 2\nprivate = 305b4db4321b4923fc559bf91df677d0e12c3a31b16ec655cb708b759d7c114d\npublic = f6ffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffff3f\nresult = valid\nshared = 9e526079c2fcf12426ae6c2a54b5ffb70f2ec662e29ea5ce0c8385c3b21cd162\n\n# tcId = 213\n# special case for A in multiplication by 2\nprivate = 900638d1979802db9b52e4dd84fa19579f61cd7bef3c0b62fcccaeaa15fa484d\npublic = f6ffffffffffffffffffffffffffff3f00000000000000000000000000000040\nresult = valid\nshared = 6329c7dc2318ec36153ef4f6f91bc6e7d1e008f5293065d9586ab88abb58f241\n\n# tcId = 214\n# special case for A in multiplication by 2\nprivate = 38575cf7c8691ecc79cd5f8d7d4703aa48592ff6e7f64731c2d98a19aeae514f\npublic = f6eba0168be3d3621823089d810f77cd0cae34cda244c5d906c5d4b79df1e858\nresult = valid\nshared = 603f4fc410081f880944e0e13d56fc542a430eec813fad302b7c5ac380576f1c\n\n# tcId = 215\n# special case for A in multiplication by 2\nprivate = e88bd02c7016547a24f428bc2a9dcccad6c6f880c17bffcf66fc68459627af4e\npublic = 60677a5d934ccbfab8ff5d8f085a0b553f94527d9c49ae140f8ed135e1449b69\nresult = acceptable\nshared = 834bbad5470e1498c4b0148782dfe630e8bfadff1997de802ac8ce302a1bda28\nflags = Twist\n\n# tcId = 216\n# special case for B in multiplication by 2\nprivate = 9036ed7d68f7448ac440dc51216b49840dcabd3d5e32e3b4ffc32a5fe9e96742\npublic = 8d9885a26cb334054700a270f7a5f4aac06bad8263b651ebf0712eca1ebb6416\nresult = acceptable\nshared = ec9070ad3491a5ff50d7d0db6c9c844783dde1c6fbd4fe163e9ade1ce9cd041d\nflags = Twist\n\n# tcId = 217\n# special case for B in multiplication by 2\nprivate = 90c55e77aa0fe4afb1287109fd010f526364dea18d88e2fd870ac01b66e3fa4e\npublic = f7135fe9741c2c9de7dcf7627ef08832f351cb325dbb3a26f93a2b48620e1727\nresult = acceptable\nshared = dc6d05b92edcdb5dc334b1fc3dff58fe5b24a5c5f0b2d4311555d0fc945d7759\nflags = Twist\n\n# tcId = 218\n# special case for B in multiplication by 2\nprivate = a021ba2fd4e3ad57bcbf204d6f6c3e8018d8978552633b6dff1b7447bf529459\npublic = f7ffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffff3f\nresult", + " = valid\nshared = 1b174b189981d81bc6887932083e8488df8bbbed57f9214c9cfa59d59b572359\n\n# tcId = 219\n# special case for B in multiplication by 2\nprivate = 3035083e984837587f6b7346af871bf3fc9581c50eb55c83aefabeed68cee349\npublic = f7ffffffffffffffffffffffffffff3f00000000000000000000000000000040\nresult = valid\nshared = 15a052148abaad1b0f2e7481a34edb61403589439b5bd5e5646cecebe2a1be2b\n\n# tcId = 220\n# special case for B in multiplication by 2\nprivate = 30435ce187f2723f9a3bdea0eef892207e152e4cee8985fa72d2db4147bd2a53\npublic = f7eba0168be3d3621823089d810f77cd0cae34cda244c5d906c5d4b79df1e858\nresult = valid\nshared = 1d048cbe2f8df07c233a8f93706f307d17130c2497fb752eeaa31fe3edfc725a\n\n# tcId = 221\n# special case for B in multiplication by 2\nprivate = 580f0a9bba7281a30fb033490e0f429f22e3f267852caeacefa3e5291f0e614e\npublic = 61677a5d934ccbfab8ff5d8f085a0b553f94527d9c49ae140f8ed135e1449b69\nresult = acceptable\nshared = cb92a98b6aa99ac9e3c5750cea6f0846b0181faa5992845b798923d419e82756\nflags = Twist\n\n# tcId = 222\n# special case for C in multiplication by 2\nprivate = 709098feb2e25c67b4bfd3be0a01af409adb6da52b3fbe3d970642dd2c983856\npublic = c8239b710136fe431fb4d98436157e47c9e78a10f09ff92e98baff159926061c\nresult = acceptable\nshared = f1bd12d9d32c6f4c5b2dcb3a5c52d9fd454d52ca704c2c137956ec8ad9aef107\nflags = Twist\n\n# tcId = 223\n# special case for C in multiplication by 2\nprivate = 185ac62e729f88528950926c0de7c481c924bf9cf26a122f443b861e8b6af640\npublic = b7a2f79e0de9b58147691b5546d9ec463da8325e1440e58bb20aa129d1b97327\nresult = valid\nshared = e6f1c494c9e4bd2325c17183e82d31ab0bbee6c847d4b0e4a99c7c6891117c3f\n\n# tcId = 224\n# special case for C in multiplication by 2\nprivate = f03743eead7c2f7719794324f271072817d1a04cbda42b232f3bee43f397cc40\npublic = 2dc624e1663f42a7b9336350f277541b50b8ddc7ee0d86133ad53273aed4e62e\nresult = valid\nshared = aa2a12edf752d279bdb000fb1405a5df8c5f1d41309b4f2bd41aed7ac1ed0149\n\n# tcId = 225\n# special case for C in multiplication by 2\nprivate = a8fbb4f90da45794981405d59ef310621e3c3b6b7760b5e30308c7822c88ae5f\npublic = 0e5eceee9104a64f82c9093b9bf7b4076ee5bc70815af7ee9f942ef015756176\nresult = valid\nshared = 74d5606ba0b6ad1d8ba36ae6f264d6315f479b3984de573e9b001e0555247c32\n\n# tcId = 226\n# special case for CB in multiplication by 2\nprivate = c887886fd07107c7221f6d9dd36c305ec779ceca132ac933ff77dab2beac6345\npublic = 737d45477e2beb77a6c38b98e2a19b05c395df7da998cb91f6dfab5819614f27\nresult = acceptable\nshared = 8cf4538ae5f445cc6d273df4ad300a45d7bb2f6e373a562440f1b37773904e32\nflags = Twist\n\n# tcId = 227\n# special case for CB in multiplication by 2\nprivate = 58096ee29361978f630ad1fb00c1267c5a901f99c502f9569b933ad0dcce0f50\npublic = 873f8b260ea9d9ddac08b7b030727bf0072315ab54075ecc393a37a975882b7e\nresult = valid\nshared = d5766753211d9968de4ac2559998f22ef44e8aa879f3328cbc46aa858dcb433c\n\n# tcId = 228\n# special case for CB in multiplication by 2\nprivate = 0829a49046dce2c07ab28440dbad146453e128960e85dd2e6a69a1512873dd44\npublic = 75e1587c5eefc83715d71020aa6be5347bb9ec9d91ce5b28a9bbb74c92ef407e\nresult = valid\nshared = 761d8cecf13f93b379a772e5fac5b9ffe996cad9af06152580afe87ff9651c71\n\n# tcId = 229\n# special case for x_2 in multiplication by 3\nprivate = 587ac36b9a23594632679adea1a826f2f62d79738220fb487464039f36ca2372\npublic = f85a06065ea2527238fc5ec1b75ead9262e6b1aed61feff83b91230aeb4b7d01\nresult = acceptable\nshared = f12acd36f6299a4d192c03aa4efeea7df51e2d15d763172e68accf7bc6f5c230\nflags = Twist\n\n# tcId = 230\n# special case for x_2 in multiplication by 3\nprivate = a8a442b7c0a99227b4cb5c75fb9e5a72cea25eba8a0bdf07271bb4a93c2b6665\npublic = 6e0f1d00b1099d2a71f7be86655feb8988bba5577b02f964043a49f00c749613\nresult = valid\nshared = b2bbbd173f41d952d329251da973a9500300628177ad0fb79d01e2e263905b38\n\n# tcId = 231\n# special case for x_2 in multiplication by 3\nprivate = d8f7233e9612c00c9dca2c751ec1d3f5f67bad77c2e714a20e71eb3f220a6671\npublic = 696757ced3097fa960c8390a09e8bd6d390dbde8d1fa170261f3422edc192929\nresult = acceptable\nshared = 45ecfa275f1daa25d3fadf33cdf89a152afea25eae37e68e00b30c367789887a\nflags = Twist\n\n# tcId = 232\n# special case for x_2 in multiplication by 3\nprivate = d80c7c7557c9907e1b11e844bf1369cba669bc38e9b7b253e51f239bda322374\npublic = fd84b3f2fbfa16aebf40c27f46e18d77bafa0c7971bedde4909212e771bd3c35\nresult = acceptable\nshared = 595e144e07bbe65b38e0e4163d02ad75a65e422e74067db35c90dfa6e055d456\nflags = Twist\n\n# tcId = 233\n# special case for x_2 in multiplication by 3\nprivate = 8002a85115ad7b41c50f84f35fac750ee8e19734807102830ff6a306beed4464\npublic = 805485703ccfc4a221ef281267f52b61cebc879f0f13b1e5f521c17352a0784f\nresult = acceptable\nshared = 226e16a279ac81e268437eb3e09e07406324cb72a9d4ee58e4cf009147497201\nflags = Twist\n\n# tcId = 234\n# special case for x_2 in multiplication by 3\nprivate = 782db0c8e3e68f106fe0c56415e0bd13d812dea0e94cbd18bdf6761295613a6d\npublic = 80642a3279da6bf5fc13db14a569c7089db014225cfcae7dff5a0d25ecc9235b\nresult = acceptable\nshared = 790d09b1726d210957ce8f65869ca1ec8fa0b2b06b6bcf9483b3eb55e49e9272\nflags = Twist\n\n# tcId = 235\n# special case for z_2 in multiplication by 3\nprivate = 909fb0bdbf53a69a2fe39c8b2497abd4fa57d2d54e046b5f514595e2c0f33d63\npublic = 84e827f78cae0cf063e4340198f788c284e07430b3a94a3873df38b1f872ce02\nresult = valid\nshared = 684cc83af806bcd9cd251e1858f3c10f0166e0a0cd2be154339a886b13e7c76f\n\n# tcId = 236\n# special case for z_2 in multiplication by 3\nprivate = 78a67909757248665f79371eb014825ab6bd4af3571f140389c636e004bcf46b\npublic = d445e1df0083bb6b8e886e6632251807171d4e88c41816fc684373c09d7e5d6e\nresult = valid\nshared = e426e4a3c54d3e77f4f157301e0ac7d9e12337a2b58df16780041cf6d6198c5a\n\n# tcId = 237\n# special case for z_2 in multiplication by 3\nprivate = 286a302d5b076d2aba7c2a4daf9e7cc9d8539b7c0391307db65a2f4220d30f70\npublic = f26aa6151a4b22390176f6233e742f40f2ecd5137166fb2e1ec9b2f2454ac277\nresult = acceptable\nshared = 862df92e25277bd94f9af2e1dda51f905a6e2a3f6068a92fabfc6c53da21ec11\nflags = Twist\n\n# tcId = 238\n# special case for DA - CB in multiplication by 3\nprivate = a838b70d17161cb38222f7bc69a3c8576032d580275b3b7d63fba08908cb4879\npublic = 2b02db3c82477fe21aa7a94d85df379f571c8449b43cbd0605d0acc53c472f05\nresult = valid\nshared = 3f438dbf03947995c99fd4cb366ca7e00e8cfbce64c3039c26d9fad00fa49c70\n\n# tcId = 239\n# special case for DA - CB in multiplication by 3\nprivate = b0733b4203267ab3c94c506acadb949a76cc600486fcd601478fcdef79c29d6c\npublic = d71dd7db122330c9bbaab5da6cf1f6e1c25345ee6a66b17512b1804ace287359\nresult = acceptable\nshared = 95f3f1849b0a070184e6077c92ae36ba3324bf1441168b89bb4b9167edd67308\nflags = Twist\n\n# tcId = 240\n# special case for BB in multiplication by 3\nprivate = d844a36b58aefdb08b981796029a2766101884b348f70eed947c2541064caf6a\npublic = 737bc07de0729bbcfbee3a08e696f97f3770577e4b01ec108f59caf46406d205\nresult = acceptable\nshared = 6a969af6d236aba08fa83160f699e9ed76fb6355f0662f03dbc5915a3c23063e\nflags = Twist\n\n# tcId = 241\n# special case for BB in multiplication by 3\nprivate = a0b7d312d9b832e124d1bc8cb21db545440e3cf14e7473ee9ccbe9b682f2156c\npublic = 9758061a7b3e2c02fb5c20875ae6b55b11fb6795990a0f4fdcd1147be5521607\nresult = valid\nshared = ab39db4aa29ac4017c7446f1ad0c7daa9a37f1b6b4f2e9d2902ccefb84839d28\n\n# tcId = 242\n# special case for BB in multiplication by 3\nprivate = 787f1ddd78cc6473d3e63949409ad3f35bfe0ce0738f255dee682f2bfbc80f7f\npublic = 37cd65d33036205f3449e8655a50d4b0c86fec02100b4f2db7da92dcf5e3aa0a\nresult = acceptable\nshared = 13de41659e3e308d6e26c94282fcc3e0364ddf0809ddee6c8e7abb5091b02b00\nflags = Twist\n\n# tcId = 243\n# special case for BB in multiplication by 3\nprivate = 4080ae60a85c1fa95aad9beabd98b405e7f28141bf08f2c9a4fdbde1c5680265\npublic = a9b6e8081460383adc587c8f91a02c59a7a35576ca62436ccd1b5fef1b92545d\nresult = acceptable\nshared = 69ed8a0a27812ae6741474bd5c6a4e683a126649f7245aa0f91a3a384bcde25a\nflags = Twist\n\n# tcId = 244\n# special case for E in multiplication by 3\nprivate = 08f9f4a4fac4db413315f74a59818b2452fc7b7685592e26556775f9b86d907f\npublic = fd1a2cd17a93f850deb8c45a2d34539232dfd8a558304209781c6cb58229870e\nresult = valid\nshared = 010218bd67b1b92fee3e7fa4578c13617d73195de10279747e53ba01a254525a\n\n# tcId = 245\n# special case for E in multiplication by 3\nprivate = 1888cfae3085867657b09435c42b74cc762457839451a3659db218d4214fd", + "d63\npublic = b88119e5ae6d9e6b912d52524739e612ef19ab7e5dd3d946cb9bc003c378f81f\nresult = valid\nshared = e6b298de9cb6358fbbb00f11890f5714a3858e8f05a2a8d1cf39fe78cc55dd4e\n\n# tcId = 246\n# special case for E in multiplication by 3\nprivate = 789ce13ed007818d7a5181e629eed944a20a058cfe39669c9831bfa5215a1269\npublic = 7b70e29dce0479cde4a36c7f9786582f104bc0788f046b48af495e67bdb88f36\nresult = valid\nshared = 967bbe298494b4a5f95853cfde9dc85970b2a4b5dd2c92782901e853957f5809\n\n# tcId = 247\n# special case for E in multiplication by 3\nprivate = 00022b43775ab2f4b91bc1cb54c97f78026289eaaf02abeed04ca84f736c686c\npublic = 2a209e2ace0e3d6973ffbf7403f9857ff97a5fdcd27f2c7098b444fc3c166738\nresult = acceptable\nshared = 9f66848681d534e52b659946ea2c92d2fabed43fe6e69032c11153db43dca75b\nflags = Twist\n\n# tcId = 248\n# special case for E in multiplication by 3\nprivate = 8097a52fc562e8a516682f5363cc5e7c88e9c78e308df0deef40497b35cc127d\npublic = f50709aca7f314e8d05b5ff97a427e427bd5e85c4e86712125076a771be21448\nresult = valid\nshared = ea7572e27a9120de1f13b85710ba69a3471b7b3f5d12bc430c12c4bbf8aa3957\n\n# tcId = 249\n# special case for E in multiplication by 3\nprivate = 4028802030d8a8221a7160eebbf1846116c1c253abc467d6e43cb850f1459860\npublic = 0f13955978b93d7b9f9a2e70d96df922850a8ffd8412e236fb074aef99d37d54\nresult = valid\nshared = e23d63a46be67c7443c07b9371ff6a06afcd7a5794bf2537926074b88190307a\n\n# tcId = 250\n# special case for E in multiplication by 3\nprivate = d8515d45c7ab2b9529816543150068b8e4bb614cf2b68a8a99363975af503d74\npublic = 18ffe992a729ce70c3b7cdc55bab55f2210d279134b3082a9f682d3a0b131273\nresult = valid\nshared = 33ccaf24e1e26290ed7e462093e9f77607ef52a0626b2cd2511c41cd24c13849\n\n# tcId = 251\n# special case for AA in multiplication by 3\nprivate = d8815bd144518fa526befdd373f5f9cff254d5d3c4660e8a90ef2a22c6876a74\npublic = c3ba28057728d0533965ec34979fe7bd93cf6cb644e8da038baa87997b8dc20e\nresult = acceptable\nshared = 74f95b4700f0185f33c5b5528ed5012a3363f8bbd6f6a840aa1f0f3bdb7c9650\nflags = Twist\n\n# tcId = 252\n# special case for AA in multiplication by 3\nprivate = a82d996093eefdaf283f4049bba4f5af6ecc2e64894f325ee1f9ca1e156d0567\npublic = 4eb095a86d1e781bb182233075ebf1db109d57135bf91d54fdb18eb371427640\nresult = valid\nshared = e9677b854851c41cc489e03981ae78690be6cbf0054ea9834759de3e27bcf03e\n\n# tcId = 253\n# special case for AA in multiplication by 3\nprivate = c02609df3d5436c123dcd7ee11f23f1da321666c09f379d37914203340510861\npublic = 83f67d7c92b11c8fb072484642a01f43deb022b54d94a4015e39849a2e2e9555\nresult = acceptable\nshared = f148716ebe7269a7076f0cf1f22b6978d3c7e3607b0bcc87a8c7a85b9fd20c2f\nflags = Twist\n\n# tcId = 254\n# special case for AA in multiplication by 3\nprivate = a0e3b78c0f3be2a760b2c916f244df219624fdda2e9e31b15328f4a77690296a\npublic = 20cc75d376d8453b9d049c84f58eafcf61126c08a03661e735f0a8be228fd466\nresult = valid\nshared = 1d5c123e88e9dc7a3b16ec90b60578dfca7e11eab9b88c6eca7bc33d91fde83b\n\n# tcId = 255\n# special case for AA in multiplication by 3\nprivate = 701f130a290584cb28c7d6539506a1a054f926a17ef7c568ae43047c05e10f60\npublic = ef31b43d19c0a5434deb56129c16298a394a7032a2e52cb997476bdeca325b73\nresult = valid\nshared = 2fc065ba8f5040a0a659f6f7330554bd1b9d7c893b91e316e0af90c37af4f135\n\n# tcId = 256\n# special case for AA in multiplication by 3\nprivate = d0e67f68183a4c1aed9c56864b36278bb7bb75d57a78321bc7c24ff61636607a\npublic = d8c8e2c6f33a98525df3767d1d04430dab0bda41f1f904c95bc61cc122caca74\nresult = acceptable\nshared = ef7612c156078dae3a81e50ef33951cab661fb07731d8f419bc0105c4d6d6050\nflags = Twist\n\n# tcId = 257\n# special case for AA in multiplication by 3\nprivate = 88eb7775dacc32b045ceb35f261b3616315efa98b780e08c79d544edadb5467d\npublic = 1833619516b80db0c05b225509e6698df028d83b66ed6bac6f0f6308970d2c7d\nresult = acceptable\nshared = a3cf3d81ec56896a68fca0da6335171d0c622568738c0db26fe117033726a049\nflags = Twist\n\n# tcId = 258\n# special case for AA in multiplication by 3\nprivate = 7055b1c0576e7ab6c89fcc1ce49e79c8c371bf9fc2b22b8f8396a9b64c5ae26d\npublic = e2e989aad2397fc34b6cbe2db27d5ab69b28048383c91d9e8226d548253fab7e\nresult = valid\nshared = e7f45823a45b6a46192b37d73e8609b5bda68cd7cfbdccaa49082080993e640f\n\n# tcId = 259\n# special case for D in multiplication by 4\nprivate = 906a9bfcfd71014d18967680d4509eaa41c666424af98bf9ff7ff49eb1baba41\npublic = b9bd793624d6a7e808486110058853edb25e136bd4d6a795d6d2ef53b25e3804\nresult = acceptable\nshared = 7c6148134c9e8b2ba5daeca41e6a1f3a82d8f75d0b292b23c40fe7f5ce0a2b7a\nflags = Twist\n\n# tcId = 260\n# special case for D in multiplication by 4\nprivate = 28392b1b035a8465aa22aabb571061c6effeed40cc2530b628e4fd40395ae04a\npublic = e3f444e208da9043f3f74c20e28d7f404bb687a346709abcd555156f88607820\nresult = acceptable\nshared = ea5e772bac4693ce69ea3ac761011fa7674037653a433c7f05456e7291cd3c4e\nflags = Twist\n\n# tcId = 261\n# special case for D in multiplication by 4\nprivate = 78cbb35204cc88676c14e0ff18171392e998411b23d905d4c4dceab70511f442\npublic = 87b43f90f76d12fb3a469fa8687c27e369d4a82f95cf95e8dc3970de8f86d92b\nresult = acceptable\nshared = 81c395aed5cc5f5e2a206a8a4cacecd501df5b81e49433835ad8a3779edffb30\nflags = Twist\n\n# tcId = 262\n# special case for D in multiplication by 4\nprivate = a8225b49ef7b7330e3de787cbc40479644db7ab126370295c94189673430d745\npublic = 86441ea06c5cd2a34c6b51261e93a2f30ea7db0f74e14c42f0fc443c6735973c\nresult = acceptable\nshared = 513eba5870dc5187e2552fe3ba8292b516d2af9ecb9a9bdc51eac2ce2de40112\nflags = Twist\n\n# tcId = 263\n# special case for D in multiplication by 4\nprivate = 0841e1a5c7420b94b6cc6991316ebdd608626339c09d0f67b24088588b9d0d49\npublic = 4624aa4ae9d12725bf92b85f93e3e8cea16b7bd83fda0eb18fab2dbe0e8bf742\nresult = acceptable\nshared = 983b7e236ffaddb4b759b7353fe87846f59fb6f28a3ed65c256176b6609b7c6e\nflags = Twist\n\n# tcId = 264\n# special case for D in multiplication by 4\nprivate = 08ecf76e31a23039ea8a15ee474b6251a9d725bff1a5751eb5ecde9d7d4e2f49\npublic = a625a5b7a04cea462d123b485c39ea44a8079aa223c59e9ca97abcd30b500e4b\nresult = valid\nshared = c941369b085c7465d50d23ceaf6717ab06e24638f217a7b8055ce8ebd3ca1225\n\n# tcId = 265\n# special case for D in multiplication by 4\nprivate = 6038fb0a830d1001ca8ea74a613ea98f6ab8512644e55e8d45a29071bd4bef45\npublic = 8a5f2063f259f3317ae3e0b459f82c4677666e49a2eb9bf0369aee663631265b\nresult = acceptable\nshared = a3f7e169db44d0d179c242e66347364ab92744dc6ad80e4775aef7f4ff9d5f34\nflags = Twist\n\n# tcId = 266\n# special case for D in multiplication by 4\nprivate = c04cf129f0b33332e2654f8e45225c042d7fa6cbc793c88bd4c731985289b045\npublic = 54cfb6ad0d03e3115acafee12606397f2bb46a8c5f326a255c494118aead3b62\nresult = acceptable\nshared = 401aabfbb73fe6694c446ecfffb43006427a9d4756e049a1ffc79578d62f1660\nflags = Twist\n\n# tcId = 267\n# special case for E in multiplication by 4\nprivate = 3806b036c92d7bc0771998d24dbda2945b601d42449bd3ec4bbf3757d01b894d\npublic = 0ee3bee8cb3a0afcec22fa2233706e8ec29ccf1af212c0a674745ebba34f9d08\nresult = valid\nshared = 20322dd024fb5a40f327cf7c00da203734c2a279b9666a9ff7d8527c927b675e\n\n# tcId = 268\n# special case for E in multiplication by 4\nprivate = 380d9056b5a2f4b3dffb30e6ceb722ac4684245f1befafb5661bc8c7a9ad4c43\npublic = 797ec7512afbf0ad918d0e4947903be95234f3abf36750a8f854888d117b774e\nresult = valid\nshared = 46152d59c2d2f3ecf03ce652d2b6978d401d5ede4570a6c911771bdcfb37cd41\n\n# tcId = 269\n# special case for E in multiplication by 4\nprivate = 384929a42c8d8df146db9508e2f21a4e8cd4d99c1b1338df17a457e88afb0043\npublic = d570c7810f69e502b355253afa7c667bfa5060d90dc86e358ab445f6381e415d\nresult = valid\nshared = 37567f7ec0449c7b823cf7b0e219e9dd880e56a1464d0417a9e67eff42332866\n\n# tcId = 270\n# special case for E in multiplication by 4\nprivate = 48a986825b2680e2f2547ba75a9599b04ed57f8ed18d98e7099c544efbdf284b\npublic = 2c611cb94448f1c7822425a4cf5356236b90a555b1ed4747820ba7f739c8f57d\nresult = valid\nshared = fbf6587ec181116cf1ace7dcd548029d69c130e50fcf6ad5dfcd25c23ee9f939\n\n# tcId = 271\n# special case for B in multiplication by 4\nprivate = 98452ad7df4e26bc4b3d403f9ebf72bb2d7b6b7d5860dbf6fb9a4f78dc02704a\npublic = e559c417da7fd5851352f508b90031d49b5d2d0aac88a9c8b5fb6e80165ac10b\nresult = acceptable\nshared = c7c6f6d7ce1e4f54c727e5900686c34e6a6953254bd470bbbf0c7c18bbddad73\nflags = Twist\n\n# tcId = 272\n# special case for B in multiplication by 4\nprivate = a8dbc9", + "be5034ed7fe7f469264f2135e9c67cd30f525570d2d841e4bdeac52349\npublic = 746d97e7774292a3d703f604e79d8764c99a6a2fe280eaa9811115f5e038f21a\nresult = acceptable\nshared = cf7d2a66ea4dfed94469b2d343533ff302a576f8402ed2187904437038e54665\nflags = Twist\n\n# tcId = 273\n# special case for B in multiplication by 4\nprivate = f8d26878dff25ced02d3b27ce74002695bb879b3c4328930934315ecae842b47\npublic = 1f354aa8ffc4eae2b40dad2ebf830db3feb07e2a1a2da39e55df87c8c613de1d\nresult = valid\nshared = b204d3bbcbdc624f9f1a743fa3daa8f4c8785ed088d37d08cd13c601170a461b\n\n# tcId = 274\n# special case for B in multiplication by 4\nprivate = d0f5e9c43c95b1ffc36f832b943601d5e17647f7d78e2e7710ace63ff274d447\npublic = 9c3f0023e1a4832586af2483bbec64ce9f06f3ea806d4019a5e4abb1b5627029\nresult = acceptable\nshared = b9f21465615f39dddcc37520ce9b956f7de9883ac93a870d74e388b8e1775463\nflags = Twist\n\n# tcId = 275\n# special case for B in multiplication by 4\nprivate = 700679e8c24df828f2e5212a3263d5e93ea61679988298bab3b480f46f961a48\npublic = d05656aa014d476022dfc55e8d3b4884ed0bdf85209be8b55351394d52be684b\nresult = valid\nshared = 20f1fc613874495f20562c10b7a8be47bfc12c168d829d6321aa2de17060e40d\n\n# tcId = 276\n# special case for B in multiplication by 4\nprivate = d0d077c9461f747e5660be85cc620428b4cefe805de0fd254adaa465ea5e784f\npublic = c4a19b8686e18c29359aa548427f06a368d55a8737483d4893523adac6795a4c\nresult = acceptable\nshared = 652b18ffd41cfb7d1f0b6dc79baa3b2a392ef1617f5cf6259b5b4ff065916a16\nflags = Twist\n\n# tcId = 277\n# special case for B in multiplication by 4\nprivate = 00711ac08ef88c3d43a3cbda67b6fe5f34f54723dbe6d725c8a3569070ab9a4e\npublic = 4989de79853ff35be8c9f92fc94674feef38a0e65788471c521f8e259adf015d\nresult = valid\nshared = 679825c259392d86f8edb15328d4faf52300779d979a503a76e27be3d7a85e03\n\n# tcId = 278\n# special case for B in multiplication by 4\nprivate = 989a75b40451139ec36ca6aa043765c61a18be323a5987fcb025c2dad8d4bd40\npublic = a981483cb0ea4385ffbb552826c3dd110d4ae89ff52ed0cd6018f99d3387987b\nresult = valid\nshared = 9cadc14ac153fa383ef66d1833f589100dff90523272e32b06e2c6f1f4424040\n\n# tcId = 279\n# special case for BB in multiplication by 4\nprivate = 90c3cfedd919a2ccd51fb455649e3ad2da1ef0ff619b59a7f9c55a68a8219645\npublic = 1df3dfdab74ff38177dac294b2da2f49a348bc3b3bc6ce9312bea5ef3ecdd30b\nresult = acceptable\nshared = bcc95fb4890ed311f3fb4f44c2b60866cdddec97db820a7f79f475337e16284a\nflags = Twist\n\n# tcId = 280\n# special case for BB in multiplication by 4\nprivate = e8fef5c9b60f84984e8836d535acb372096ba8159824a0b49a17eccda843bd41\npublic = fc6b718ba8b47d24b1cfd6b5d0dd8b20fd920960fabc302dbe4f93bd2a06e933\nresult = valid\nshared = 06f1b495b04a0010845c9d39b13bf2784ade860d9632c8847618c0b34297c249\n\n# tcId = 281\n# special case for BB in multiplication by 4\nprivate = c0e05bde7727db4e352b5e7f035327b4d86a42d513ca116e22d64a4ede56434a\npublic = b279b6c065f95c7040f148bcb4a3d310e34bdb005931a879be469573deedd041\nresult = acceptable\nshared = cce7bb644df94501421db49d15e821c7b0aaabecdf8837ab989b1f23bac08f35\nflags = Twist\n\n# tcId = 282\n# special case for BB in multiplication by 4\nprivate = d87308bf753573f596ac8330b204014b2152dbdfc9881a0d9975058582bdf646\npublic = 98e2cd4c10554e41b0a3e41082c8b6b61b55447d26c0aa97f9a06baeeb54b55b\nresult = valid\nshared = 71fdd3405c30805701ae4dfad98c493aecfcf2e3b563e7068373c1b19137c268\n\n# tcId = 283\n# special case for BB in multiplication by 4\nprivate = d80059a8a387e16f6ded6e7e980e806d1f78b470bb61103d0ca70623ccee8b4f\npublic = 872897f1bd1885da08b9d03e46811044fbb04186ba30c806f38b94ebdc27186a\nresult = acceptable\nshared = bf280aeecb74ab34e1310aa6fe8dc972f94dc40c7f88b72137ccfe34ed343c13\nflags = Twist\n\n# tcId = 284\n# special case for x_2 in multiplication by 4\nprivate = b0a4fe63515169bd82639b515ff7e5c4ac85bba0a53bbaca80477eb3b4250d44\npublic = c08f72760d9cb4a542aad6e2af777920c44563bd90356168c3608c6b9af2ef0f\nresult = acceptable\nshared = 72566a91ccd2bcf38cf639e4a5fcb296f0b67de192c6091242a62fae467fb635\nflags = Twist\n\n# tcId = 285\n# special case for x_2 in multiplication by 4\nprivate = 984256b12ef154ff6c2e1d030826164cba3614e3df7688d82b59e16201c9114d\npublic = 4f03849c24d584534d74302220cfdc90e1bc360bb5e297c0fd0fd5f8d799e416\nresult = valid\nshared = 24acb4afa63919621df795206c3929b599ec9d253693895d51a0555072e89a34\n\n# tcId = 286\n# special case for x_2 in multiplication by 4\nprivate = 6847141d5d4377af96a2a647c642ee81600fe48d3467e3a70f3ee312bb621742\npublic = 4959771a931e242d5713d5cb76f33310c6a283df16645604289553809cda6518\nresult = acceptable\nshared = 5ba2112a41b5bb381f202446fa9f23c54d2de149f9ad233753417263840ea432\nflags = Twist\n\n# tcId = 287\n# special case for x_2 in multiplication by 4\nprivate = e85f1164e2ab6faf62667c74b03ce529b49a0e2041b1ac0fa242e522d2b7694c\npublic = f6fe690cf547049635bb3a7785537b4379c9ee06b46120493b8bdb152e09c81d\nresult = acceptable\nshared = a87c9fdf40c409b9edab481b2cc69687ee1ab92e340c3db0107d40b5de6e7a20\nflags = Twist\n\n# tcId = 288\n# special case for x_2 in multiplication by 4\nprivate = 281e1bbfa711de69921a64c5d2183c338db5504606ce2b6b4ce1cdd54b41e14a\npublic = b468681a1275850c11d37ec736af939a75a7098514e04cfc1c6ca78239a88426\nresult = acceptable\nshared = 3be98798f01e71639f3cb8fd4a17bf273e10c67f8974dd9802eed59d847d4020\nflags = Twist\n\n# tcId = 289\n# special case for x_2 in multiplication by 4\nprivate = 20aacf1902b3cd609d7ee15cc96453cc22e2899d7d17852680f2a728bac6dc4a\npublic = 2d71e8457099e3f445f9e2a14f18b0f5914bb35f482f9c069b64bf63710d4228\nresult = valid\nshared = 338c9917dbf11a0cabe8ad4a65959229bc00f99c211e752b20b8b49b87756d0b\n\n# tcId = 290\n# special case for x_2 in multiplication by 4\nprivate = 009e8e9fa993804dce94cecb96b1de2568245a97059e4d7ae116ecdb1badd141\npublic = fa8f24e944de5d003746d4630350c0f4f6175a3269c19184824105398fbdd329\nresult = acceptable\nshared = 56e2bfc7f6ab7da8fc734afc515e57d0794d002434f9bc8e18bd0b72c0df3c4a\nflags = Twist\n\n# tcId = 291\n# special case for x_2 in multiplication by 4\nprivate = f01574643f231ffac055bd235ee74dd416b94c8e55a2ab2b4d13a8b788d90148\npublic = ae4e37ef53c79e25e8275a60f2fc1dfc277ebc5d3b88428c6432c3f98494212c\nresult = acceptable\nshared = 17fa1276d9fd5025172736449a1c0ae33512e5037014a18db5903e47bb3bc950\nflags = Twist\n\n# tcId = 292\n# special case for x_2 in multiplication by 4\nprivate = 3800a42659954281ca266d7cf1ea9db6d79891a406a70f9e84c3570a6a12d24e\npublic = 95e56a830792478f7c42504043a9cab8e2eebff5fd90983709e29e03c0a41b64\nresult = valid\nshared = 167a3b2fdce9413c89ee892daf9f839a2eea80ea8044924035db1724a5b0217c\n\n# tcId = 293\n# special case for x_2 in multiplication by 4\nprivate = 70a826b186962218dbafca113319daefb5ddf3cf14e15fe3faadc4c0a2e46648\npublic = 5f16aa7ccabf4da6b686bd28c7460e106bb1b97a823792527765c29a9ad8fc71\nresult = acceptable\nshared = 30a4ba793f2dffe1700c61428b4d84b5fcd0aa99a23b903f84a48eca5cc9fb0a\nflags = Twist\n\n# tcId = 294\n# special case for DA + CB in multiplication by 4\nprivate = a85a5eda0a269500b3ab0b58495fc254c2691028ac533494b5f86d44e9dc654c\npublic = 47fb78111805a11982a3d6c5d83e8e189e7fcc462c9abf805d3625be7a6eac11\nresult = valid\nshared = 2bf9ab750bd58ff6f877b783eda45a71a65cc9b7c037fcfef4cb5f4c8842f529\n\n# tcId = 295\n# special case for DA + CB in multiplication by 4\nprivate = 183f28ec867624ef5eca4827ed0714a5525ef21d5e35038b24d307a3391a2846\npublic = 03b8ca5efd1777d6d625a945db52b81f11214daf015d09fdc9df7d47b9850e31\nresult = valid\nshared = 35e9289234bd5e531da65d161a065a14f785076088d741c9a2d886efd7d17921\n\n# tcId = 296\n# special case for DA + CB in multiplication by 4\nprivate = 888c6444ff5eb482b2b10bd4e8a01bdccb65f32934d8026106f16a91349f484c\npublic = 4eca5f8731b0fa0c106acf578b83a350fa8173a290f1eba803956de34eeb7671\nresult = acceptable\nshared = 833afb867054b8b9ac70d6013c163e8b7676fd45ae49a1325f3acb75975d8c13\nflags = Twist\n\n# tcId = 297\n# special case for A in multiplication by 4\nprivate = c8a85d140ba150f5c6a8d3cb363bcbcb75365e51c61640e974a0725b5e9d5940\npublic = a5562b4ba86b464dff4c2cfae85b384be211771efe8a9697e51d84de47f1eb14\nresult = valid\nshared = 8a914760129575c8ab3270d04b0465fc2f327acaf1676463113803bbb2ec8021\n\n# tcId = 298\n# special case for A in multiplication by 4\nprivate = 90a3aeb1417c3d61c1efef1ac052218fb55d3a59c4fe930b5a33cc5183b48547\npublic = 88ae1631cd08ab54c24a31e1fec860391fe29bc50db23eb66709362ec4264929\nresult = acceptable\nshared = c1988b6e1f020151ec913b4fb", + "2695bae2c21cc553d0f91cf0c668623a3e5a43d\nflags = Twist\n\n# tcId = 299\n# special case for A in multiplication by 4\nprivate = b858d7414bd9ab9a3ebea79064ab87bc050e74407f4d4748f62fa4d9d203b640\npublic = cbc4d55d5bfddd0bc5c5edbe3a04836b2c701d25195b26221cbea19311e55a3d\nresult = valid\nshared = bb24817bd9fff423dc0972908e2c03fddf4dbe100016b459f28fe9594adb3714\n\n# tcId = 300\n# special case for A in multiplication by 4\nprivate = f825edf1f79eddd715a72b3ac267d6b2e97e18bb13bcafdac5940370b85ba64b\npublic = d66a2f9f7577e2df4a56cb51962b3056ff5cc0494c60f39511782e79923edd41\nresult = acceptable\nshared = b3b4513f8a3102e1ae782fbc69888177f2c24c569303a5d01ab1c3c5e285524a\nflags = Twist\n\n# tcId = 301\n# special case for DA - CB in multiplication by 4\nprivate = b0a710b470e324bb56a7d8ff8788d05eb327616129b84972482425ea4ad4f34b\npublic = de0fed2fab6e01492675bc75cbe45d7b45b0306cec8dc67611699811c9aaef16\nresult = valid\nshared = 471ba91a99634f9acf34fd7fd58f72682be97ee1c821486d62ba4e448cbc0417\n\n# tcId = 302\n# special case for DA - CB in multiplication by 4\nprivate = b898f0329794747d33269a3989b67e43a7ab5a55fa1210b0e5dba193f4fa094e\npublic = 6418d49fe440a755c9ff1a3582d35dc9b44c818498f15782c95284fe868a914c\nresult = acceptable\nshared = cdb3ca02d5fdb536dbc7395bab12bdcfd55b1ae771a4176dedb55eb4d755c752\nflags = Twist\n\n# tcId = 303\n# special case for DA - CB in multiplication by 4\nprivate = a0528ed9a8ec22ebe9cc2e32fafc3f467500a9a22f5377382df6604edcdf4f44\npublic = a89bcfa236bbccf07c434b59f8655fb085b6cbe5ed6376281df813afba22b752\nresult = valid\nshared = cd3245403fd9edfcf91c9581ebb2eb7c77ad6837fca372479e78de9faf60a34a\n\n# tcId = 304\n# special case for DA - CB in multiplication by 4\nprivate = f06888bde75d689d056874f6436000497d22d8ad9b95a1c67de1dda4ada3164d\npublic = cdb1f95f6eacc24b6d029c6ed976666dc51794db8e4aa966ba850fd7f5048965\nresult = valid\nshared = ab7c47ecb0c0167156f44f66a527264b958fc992c21ce98cef3ae214d66bd82d\n\n# tcId = 305\n# special case for DA - CB in multiplication by 4\nprivate = e034fcaa3ae40603f9b22af159fd67ef009380946de92cb1d83cc489e8b35041\npublic = 9491a82744f1cb6105b76b0442e54e605ac67f47a1b2b3b552d486f75bd98e6a\nresult = valid\nshared = 1bfa264a7c7229147a20dd021211891e61f5d8c76cd83f0be24bc70e466a815b\n\n# tcId = 306\n# special case for C in multiplication by 4\nprivate = 702a7448c0ed58e1f4e0e332d096a36360beca2f6955c815bc120b3a691d7742\npublic = 4d19e156e084fe582a0eb79b2f12b61d0b03f3f229227e798a933eea5a1b6129\nresult = acceptable\nshared = c46057fcf63088b3a80e0be5ce24c8026dfadd341b5d8215b8afcb2a5a02bb2b\nflags = Twist\n\n# tcId = 307\n# special case for C in multiplication by 4\nprivate = 50025cb508ad4faa06fafd0f4a33b747ccf1b3573885d3426500d51b56300144\npublic = cc4729c4eae292e431ec3a5cf5020e19f9bea50ef3218d9a790034526c3ee14a\nresult = acceptable\nshared = d4361e26127adfbe37c2ed8f42cce4ebab8ab74ed9e74f14c3435d612c1a992a\nflags = Twist\n\n# tcId = 308\n# special case for C in multiplication by 4\nprivate = 7082fc53299a4d30e5d0c383c035935b1eeebd9408fe4d04b93eec24be52eb47\npublic = 4a474249af8f771f0cfb1116f24fda4c42f4136d2afb766d1b291c73c6668d5a\nresult = valid\nshared = 80dfae7a28bb13d9e51ff199267cec2a19dfc8b6f4974e3446b2f62fe9b62470\n\n# tcId = 309\n# special case for C in multiplication by 4\nprivate = 98ff7e711d65cc7fd9d0ac12dfe8b894e0a93602ca9e75bf0eabbf0bfe670148\npublic = 0f2a5cbbe503139531ac0529183da8e624d25286f6e35d1407ab1f4d76ebc260\nresult = valid\nshared = 7a5c373065e339b26ee537cff1cf4597cfcb4bf2dc7c4bcfec9884443281c273\n\n# tcId = 310\n# special case for z_2 in multiplication by 4\nprivate = b080f4ac1e758bbfbfa888a78cb8d624d97b8688002b2017e35f52f3d7c79649\npublic = 2fe11d723dba63559e1b96147893cb7ec862711806316daa86cd4da769d4b22d\nresult = valid\nshared = c5edcc5d447071c08dfa8281414ae6a02de753e2f7bb80af5f6253e56db43422\n\n# tcId = 311\n# special case for z_2 in multiplication by 4\nprivate = e815bf9a967e1208af8e74ce9af6d113dab17c01c90f1ae2bc25e3e2f9e3a44a\npublic = 98e1211dcf6651fa9f2d00eb083ae5855869a2a53e835f2e03b30c0a19ba8051\nresult = valid\nshared = 263a38fe538b50e8e988bf07ae86f33d49886b14c7143efd1d2025c840e36a25\n\n# tcId = 312\n# special case for z_2 in multiplication by 4\nprivate = 4051b01cdf90af38f0a96ffb83f8d4133abe4fb035b6fe6f65276447caa7314f\npublic = 2f1b938b81a4c90e1251135ad7fabe835f6a8bc5e22d4b2ab119f6f677877677\nresult = valid\nshared = 340acf2801de71c18f4c79cfea372bc354e4c8a5eb5c2cce8b45d885df162f45\n\n# tcId = 313\n# special case for CB in multiplication by 4\nprivate = 98c092363184e58ad6ce510bd32b309c9d5a46f8d9ee6f64a69d8180bbc6cb45\npublic = 340b9f613550d14e3c6256caf029b31cad3fe6db588294e2d3af37605a68d837\nresult = acceptable\nshared = 9efe5cd71102d899a333a45ea6d2c089604b926db8c2645ce5ff21492f27a314\nflags = Twist\n\n# tcId = 314\n# special case for CB in multiplication by 4\nprivate = 686e51c00116d1c191aa9d5823b96e5956102e8fe75f5cf2376d99989f6f4342\npublic = edfbd6f09aa32435440b0ca8ba436308319613f8f2d501133c526c3ff55c7b3d\nresult = acceptable\nshared = 196182095bcd2ef46b18f64c63607e0ab162a0869e6265ac8ae35e358c3d8a63\nflags = Twist\n\n# tcId = 315\n# special case for CB in multiplication by 4\nprivate = 208af2c9442b36b521fc3a1ecefe342aac308bd6e6296ee091c196dc02e7ae40\npublic = 9b0538cd618b0a4de09e45420f84d54d74514fbb1a31c1a4aa1e93306f20723f\nresult = acceptable\nshared = a3c6b75168211e8e0a49ca815bfe3f469f29864dc8166152b456e7074afa9b5b\nflags = Twist\n\n# tcId = 316\n# special case for CB in multiplication by 4\nprivate = c0d861a6d5ff91f91e3bd05934161ff0ab0f3ce7e4a2b5b4fcb31ae34b46664f\npublic = ae8cf2fcdde710c2c1184524bc32430874dfa08c125f61d6919daf8e66db415a\nresult = valid\nshared = deaae6c9952844a3a1d01688e7105b0bbeadc160763c2002b6d0bcf35c22d123\n\n# tcId = 317\n# special case for AA in multiplication by 4\nprivate = 70785cad160972b711318659b47b574f6941ef6da1ea06508b2650f57ec9e54a\npublic = 2a59f478402d2829cd3b62e9f7cc01445e8e73a42cb11af00b6b9a9f0e44cb3b\nresult = valid\nshared = c204bd15f01a11a2efdabe2e902b7cd0aa079316f60e911b3ee5d46262e98631\n\n# tcId = 318\n# special case for AA in multiplication by 4\nprivate = 60afc8eb1f87df4b55287f3c4698c5f8b997b28a73c573fc273e9c467fb7e44c\npublic = 836c8e45dd890e658c33e69b6f578a5a774c48b435bc3b91ac693df94a055857\nresult = acceptable\nshared = c5457487e90932f57b94af2e8750403e09c9ac727e2bd213590462b6937b0753\nflags = Twist\n\n# tcId = 319\n# special case for AA in multiplication by 4\nprivate = a83c11b2834136b9aaf0152d90e76e3c27177693a2834e8beda0a3571bce6947\npublic = 59519ead7995a6df89bb54c840d61a8481881098b8a4f83c6a2f6ba800338257\nresult = valid\nshared = 4ed6f8d62932541c6bea16e03835f1f758a5c41722b5c9989c9c7cc08e34e37b\n\n# tcId = 320\n# special case for AA in multiplication by 4\nprivate = b80d8795735806579e71759894939d758853592127efe84fc82eb7cdee45014f\npublic = 32f34da84ab4bfca369c4b884691becf54be7fbed16449dc86969da7ea9abf62\nresult = acceptable\nshared = 521a5b8149a132d155e6b4ed113900506cfc2f76d2a3e14196d69eb85db3c952\nflags = Twist\n\n# tcId = 321\n# special case for AA in multiplication by 4\nprivate = e08ffa45efbe1f96584c76254554adb9177b58ed09609a6ce499e5bd22d35c45\npublic = 82ae48dcf59bc5e469f9a11b18a32d4753ac818692dfae27d675411a2272b363\nresult = valid\nshared = e831d6cee95ca1b4c96bb89457562fff36cb4d08b81da89b810b425ecdbafd78\n\n# tcId = 322\n# special case for AA in multiplication by 4\nprivate = 688e1bbb5114f34e8531c278b2d9714ba07c32a7aea6e627135bd1fc65238045\npublic = b33bd3ad14b66896f971cbdf27785fc3aa3cfb39adc6c29257d22ea4df8cbf63\nresult = valid\nshared = 350e3ab9d0dbff78f3f2157428beba189333be274827c10d59673f21c0c48a24\n\n# tcId = 323\n# special case for AA in multiplication by 4\nprivate = 8036a4e2e93e9ed82d99d71a522aac9289bd9905fe41d01d08a499376a258442\npublic = 18e58df6bfbe184b0e3c7c4bf2a051ed055b793501c0d4fc47bc8a95c4deec7c\nresult = acceptable\nshared = ade71d6460287fe808e947560e67a9d6ff2f96eaa1355d2e9fbbe549e883381b\nflags = Twist\n\n# tcId = 324\n# special case for DA in multiplication by 4\nprivate = 901b20f0cda74076c3d4bf4e02653cd406ed480c355159e22ca44b984f10764f\npublic = 772e31e776e8d4f23b7af2037af28a37e68f61e740b3904f4ec4c90157be1478\nresult = valid\nshared = 91a9bec28cf18c7094e2d80d2764df59ada0cb1946be422864bd7ad0e533b663\n\n# tcId = 325\n# special case for z_2 in multiplication by 5\nprivate = d83eb7affd1bcc1ec0b4823cee5cf0b15b5f57085aa2708ed437a2925329b550\npublic = a8d55d5c1137e9bb626557f9d6eea8d3120e9364f8bcd9b67934260b1a09", + "1801\nresult = valid\nshared = 6c1b8e240edfa5db2abb3dc12bcf9e8ac9ca10dd3507083746f6f36dc035d755\n\n# tcId = 326\n# special case for z_2 in multiplication by 5\nprivate = 989eee317b9c254dc023f9e35eff0224bc2e0bc871996b946a96970e7506a85e\npublic = 33c94be58b0f0e6cf363e1b12a2ebfb93040715be91518f21df2953eeab5fb01\nresult = acceptable\nshared = d4c3b3467714f2d105904a84cc7e81d7f291304e908041682d8906a683c12125\nflags = Twist\n\n# tcId = 327\n# special case for z_2 in multiplication by 5\nprivate = b8355455d358f2dd7c5707b2c6973c9c27b99e7d8ac1650c791e5fdbcbea4957\npublic = a218ae9624b07ce05178b9d0cc1b71dee21f27852a2ceb18610b4052b244f00f\nresult = acceptable\nshared = 1ebe6ca711a649ae487b332747e3dc0306340560cab6bc6029e44f6a7e0ee41c\nflags = Twist\n\n# tcId = 328\n# special case for z_2 in multiplication by 5\nprivate = 8065567ef082b16c20853487f54893012ba4762224e5c59f250dfbf82581e85a\npublic = d7067faeafd3e966e57525f930b3317c9e8b9c9a9ae946e76c1e4602a59a7e33\nresult = acceptable\nshared = 03e7a777e648bdc612189f3cd42d34e35736d3e52e6edc8ac873a58e244a6073\nflags = Twist\n\n# tcId = 329\n# special case for z_2 in multiplication by 5\nprivate = 00b51448139a61fe6c5fbf9395877d53d820ef59da3be856458b5eb90985ba53\npublic = 8df9682cbe8802478a8531377e752cdde54738d528d639bea9eaf47702f8bf3b\nresult = acceptable\nshared = 308ef99dae1064a444fa90775b5dd5b1952d7224a0e5ae031df432640f416208\nflags = Twist\n\n# tcId = 330\n# special case for z_2 in multiplication by 5\nprivate = e8eb9f6f62f93dbc325b833aa763a90f13f0acb2c2c4b8b33decd471ce70c45f\npublic = 7d92706868aa09538638d633c255f333b9da03bc74b49b35941c57820cd3fd47\nresult = valid\nshared = f33e2e86443a2c68823b72a2b59d6a028e0a8e283cfe29fea4f7aa22bd1afe72\n\n# tcId = 331\n# special case for E in multiplication by 5\nprivate = 68a1a7ccc50bab4b01e55e18cbd464aff43131fb0741e68d53cdebfc54f33051\npublic = dfb1ffc176aff84db30182d2378f83728f83dd1b33d79856f3da5459cf9df907\nresult = valid\nshared = 7b535fc31c6c2a3803d8bd45410a1781bd90a09205da28c9df120df23a9fa32d\n\n# tcId = 332\n# special case for E in multiplication by 5\nprivate = e075bcfc165a471b2f76c3003fb0172c82f707137de2fa7082e43a87a255935c\npublic = 12e81e838b21eac96dc130432571216d7a9b4a817f1938721d2267dd150ebf20\nresult = valid\nshared = ca23a781da0911e4115a29a9f56447157c23bee187b0c17369c4f7730d781718\n\n# tcId = 333\n# special case for E in multiplication by 5\nprivate = c0e19634dbf6460e1486930c46e8556b3c16d6de959904600549bb3e08603455\npublic = 832a46aec02240d716fe22dea94ad566a3fafbeedcce35c83e41e58076c99749\nresult = acceptable\nshared = cd0686b32ea4cddb8e13ff20a78d380749a5d4f6a3dc55d72f4813d949a0ea57\nflags = Twist\n\n# tcId = 334\n# special case for E in multiplication by 5\nprivate = b84caa18acc3db37225d32cab4f60e6fba4acab1277e20425d30f94cab2e2c55\npublic = 8c8033432bcc12d479f67d6d876b1c8e89f16a234b9b093322effa9dee94554d\nresult = valid\nshared = a950aa57bb2beb9ed5d3228c7ef448dab69552f3d3b1e466accf41bfb6d5b874\n\n# tcId = 335\n# special case for E in multiplication by 5\nprivate = 2896818cddf572521943e9f0c5e845f530b740427588a0f6de2504bd5bf40c53\npublic = 6df799bba6cdf5f46a57ab227f93fba491dad296a2fdb7e491921d610cce8f5e\nresult = acceptable\nshared = 54f5ae57e676d08c8f8a3cf891e36ddaab751093f92f409060c57e745941700e\nflags = Twist\n\n# tcId = 336\n# special case for AA in multiplication by 5\nprivate = a01f0cad98cf2905b812d3530531bb3ac899391abd1eaf4a3ebed96ac6126f58\npublic = 0c8090e1cfe7f761cfdf08d944d4aeb7a509a07a6101645b9a4c7c9e9c3d4609\nresult = valid\nshared = 2d49b09f81f3f6fab2c67e32f1bcead2ad09ac9e0d642b0873becfb64de2ab23\n\n# tcId = 337\n# special case for AA in multiplication by 5\nprivate = 106b36344cc4a5a389d8168137786806ff03cd4a00f8636bb7e758d456151d59\npublic = 08352936c8afd8543ac95f24bce9a07e3e3235763ea512a584298967b83c070a\nresult = valid\nshared = a199368e683c3036a48f4c5f32b32a547dd39f3d1007ca0a0bebcad0a8ac6f5c\n\n# tcId = 338\n# special case for AA in multiplication by 5\nprivate = 88f9a0d2354adfcbab2d12a0e09b3c7719c944384edfbaa27fe0731cb9c6fc5a\npublic = 73bdeef8cc044f5ad8d6a241273e1995e0007dc9e6579046df86aa6cd97f5d2a\nresult = acceptable\nshared = 5aa750de4207869ec7fddab34c639559b1eb27ef244aaf2a702c84963b6d6e7c\nflags = Twist\n\n# tcId = 339\n# special case for AA in multiplication by 5\nprivate = 0811f2e560a205e96e28bc312bcad45fe8befefb7f6da5faa035311eed80b251\npublic = 7fdd399b6ef4a3f5cade62e74113b29c27db15203f9b8e398d2c6f230051cd2b\nresult = valid\nshared = a6947ee089ff28ce3644ea4c6eb33dbb20c7974fb8d853f4e146e2466177502d\n\n# tcId = 340\n# special case for DA - CB in multiplication by 5\nprivate = 40ad984066a69080fb4a315878e736096cc577dae4c42c40d893d8c2173b785a\npublic = f0173a96273c646fb63d13b0c686b89e37676fcc7178faf4a6f4601f3068150d\nresult = valid\nshared = 230b6aa1f24df90a60839179ba5e9de673cff11cab59e8020b20626c22090b0a\n\n# tcId = 341\n# special case for DA - CB in multiplication by 5\nprivate = 48b10cd45639bbbf83a0b28f0dd3ad0b7b00caf48d05534480556a8278116d59\npublic = 255bbe7230cd2bee90d283f418a474ab30146ce5e801a0f5ed60ee8def3e6558\nresult = valid\nshared = 2299e384958bedd2c3d367759155136d1ff76e4434dc1d9e8212cdca52ea8421\n\n# tcId = 342\n# special case for DA - CB in multiplication by 5\nprivate = e8fad77946e0de4cf4236798490b838948b82cfb29f8e7686001b11e8d961657\npublic = 21accf97b7fee173001ccfcab21637c175ef5186ff0002502b3d52fa8c51e766\nresult = valid\nshared = 97fca065acd3b943c654997c0f125767f9abc4b7c9d8b7246942f12be65d9231\n\n# tcId = 343\n# special case for BB in multiplication by 5\nprivate = d07babed90b27c4eacafdc871703bd036b720a82b5c094dceb4749eeaeb81052\npublic = 5b40777e80ff6efe378b5e81959ccdcbb4ca04b9d77edc6b3006deb99926fa22\nresult = valid\nshared = f482531e523d058d6e3fe3a427fc40dbce6dd6f18defbc097bfd7d0cdd2f710d\n\n# tcId = 344\n# special case for BB in multiplication by 5\nprivate = 68a3049aef8c069b906cf743286d3952a888bf2b9b93bc8775fb5adde06e9f53\npublic = 48d952a2924ff167f037707469ec715da72bb65f49aaf4dce7ec5a17039ddb42\nresult = acceptable\nshared = de88af905d37417d8331105345dabaab9fd2d3cb1ee902911c1c8eae2991d911\nflags = Twist\n\n# tcId = 345\n# special case for BB in multiplication by 5\nprivate = 18d8c3d2a4e366185a85c38698d937e13bbbafdbdab1a0a83dbbe89badf70756\npublic = a5ef265ccbc5c54021d34f82364a4624030f5b9d5ff7e63d7a379e533de5e742\nresult = valid\nshared = 075d18ccc984761b70752279e7f6a757208f6c11e29480c32b40aba128a4d52b\n\n# tcId = 346\n# special case for x_2 in multiplication by 5\nprivate = 18efcd5fe345be4985316695391d2c952eee13b0e1ee7584721fbe8b19d4fc5f\npublic = 9051e55a4050ef4dce0b0c40811f16371e8b16932541da37f069406d848ea424\nresult = acceptable\nshared = 212dbf9bc89b6873a60dfc8731a10be11ab2dca4b172142e6c9f06614cd72852\nflags = Twist\n\n# tcId = 347\n# special case for x_2 in multiplication by 5\nprivate = 28ec7c693e222c72ac0815f1fd36661357e0a8da7bc996daeeeafcd21c013451\npublic = 419adb8b1f2f87de016b0c78d1029a210492eb8cadd164b12cd65b1d57bf3634\nresult = valid\nshared = 379f9221abebf3582681a0e857f3da578a1b0121982b96f14b94de5dc8b24528\n\n# tcId = 348\n# special case for x_2 in multiplication by 5\nprivate = 78b35e7ae549308b6414bb610196c04f2af79d4266c86e8a9ce0c02bbdb88d59\npublic = 13e00dae3b1ccc97ccd649088c4a7f32ca9976214d645667bd082039bbd9ab7a\nresult = valid\nshared = cff2596b7afe36f4cab9c70133d7aa0f9914f9abc6c3b9895472e2a5894a8037\n\n# tcId = 349\n# special case for C in multiplication by 6\nprivate = f0de9c5f8a9372f30c41ca47a55743ce697d46e32e7a9ae26d32503fd5222767\npublic = 441c487a48f0a4989d931cd77a6142a0a13d1aabad82623ba8d94b5c374f4f08\nresult = valid\nshared = d47c46b4329bedcbc1986b3c6d2aa9bcd027d6b68925175d35bbb536b3440801\n\n# tcId = 350\n# special case for C in multiplication by 6\nprivate = 686be5a12b310420f9bfb209381fd459a5ccd55c752b88337ebe89e1921ae765\npublic = 0e67ee5c6b65aa802259810b2605f8d7accf9b49bf14cb4a536928e883172915\nresult = acceptable\nshared = 1d730158da880533dbf1e6c64a8e99f9169611660969b0a84fb42dd8dc2efa3d\nflags = Twist\n\n# tcId = 351\n# special case for C in multiplication by 6\nprivate = a0c0337c5bec5ca24dea2f1d701498ae2bad87b8269ac23be113929fe4eb1963\npublic = dc9d7ef1cb49c191e258663a94e731b9c066c11a17d8b5fdea1987f5d9a00568\nresult = valid\nshared = 07732529a628badeb8d74946775ba457c700bf8390f46bc523fb64e471c86a7e\n\n# tcId = 352\n# special case for C in multiplication by 6\nprivate = b8824cfce5550b5e17b12f74e28459cab34eb49895cc36bf645a0cf00e3d2d67\npublic = 556b3ee7cd0d37979056ecc1f56a5", + "677a4935be6e49ce28e394f8bfb73d13b6a\nresult = valid\nshared = 9e3aae35fa1cc80a359878e212180294ff6608dcb4929e91901abbf976f39c16\n\n# tcId = 353\n# special case for C in multiplication by 6\nprivate = e02dba7335af8fb9168de2fcd310c2e2df4a3e25263e0ab9ada87bfb8258a66b\npublic = 1211be5809605b54f5727d233c783a2a199a3db24ed4499d7b48c7603e4ad371\nresult = valid\nshared = 880f6dc73220307a597670f3282fc366aa66f04a0a9ca30d895fdde337afe825\n\n# tcId = 354\n# special case for CB in multiplication by 6\nprivate = 30ce71f856ceb874fe580039ca67e896e6d08207a73cd55db7059127c1342b67\npublic = 505e7851e2352e311ca9536a1fe6c0d95d648197374ce08e4b8a0fbddf62910b\nresult = valid\nshared = ea62b0eda2d7b249a42417675a2b82b1e6c0d69a4e7cef336448844d2f432251\n\n# tcId = 355\n# special case for CB in multiplication by 6\nprivate = e881f46d4141ea69a671649b93b63e97dc67c12521d445862f087b2626fa2b6f\npublic = ddf4e90503dd82610c3a034b925a880b72dbde30c626009202b358c6eb00f418\nresult = valid\nshared = 302c4f83b5c5bf30c1e3afd9f643f65bfe56ca1628ee042b1ab7393bafe36c06\n\n# tcId = 356\n# special case for CB in multiplication by 6\nprivate = e879752683cd73a834251c65749135e06eb9064d3ae35095d88cde14a02ba366\npublic = 0e9c4431999ef1ce177e900d37ec6ae665e387e2d4fa27cba8e7baebc65c6520\nresult = acceptable\nshared = 8ff2ac65c85ee2fe9452fce460f8c87f9570d769cadddc87fe93ef8b7657c726\nflags = Twist\n\n# tcId = 357\n# special case for CB in multiplication by 6\nprivate = 20576ab456da26c18da5fbf06ec4d16564e111bfae2a92b9f6e1927c15770a62\npublic = 5761d6c08624104d4117ff17c75e9211a591c9ca9aecca3a665a7ed844195225\nresult = acceptable\nshared = 97c91a23c3e4f3ff727d188a352b67ad490b62381566fb3e111cb67aa9e3435c\nflags = Twist\n\n# tcId = 358\n# special case for CB in multiplication by 6\nprivate = a8467418b924c2c003c56e1610a35469356360c29d52aa557a2bb30fb8a9a464\npublic = e92d45b3ec56531266303c5113c46310c41650001065b4d87b02b382fc82662e\nresult = valid\nshared = 24346bb133dd9ae3ff02d2f50510b3a92d9030834d60e5af08b0eebbf1d4dd6f\n\n# tcId = 359\n# special case for CB in multiplication by 6\nprivate = f0f5e162923d7c299388bed781199417ade097475515162d9590976a196fb16f\npublic = f38b63459d05e422ad024c2dcea5029a0a7a6b6c4c1d2093ce556aab331e2540\nresult = valid\nshared = b3453c9c82a2d1d956156de2399cb70dd4e1ec53aea967e035753c1cdae13c39\n\n# tcId = 360\n# special case for CB in multiplication by 6\nprivate = 608fcf787fe789644a09bcab958f0737aa81a9e29d505f51035c78e374b9e46b\npublic = a7ded0eea45a400b8f5637154d42974aa98c92962314d822ef88b01383a9da4d\nresult = valid\nshared = ebeb0c7b7a4165cd02a278f3a222c236eed83266b806d13494c1c3f98a2f3425\n\n# tcId = 361\n# special case for CB in multiplication by 6\nprivate = 58a3396d291eb23571b52d98a31549e514e501e8d0958ad9f25fe5a76c503e69\npublic = 7b0ecb4c72ee147789d74813ced3ebe40f45c3da526ed1272952e453e43b796d\nresult = valid\nshared = 9213a53f22ff0cb5eca87b27b193c773bfdf4c01a193a11f37c157474e15cb07\n\n# tcId = 362\n# special case for x_2 in multiplication by 6\nprivate = d805a7014755dd656f98d2b331f2d2d4912725ef3d03752f26f74dc1ad61666a\npublic = a244413ddc3a205d038d64266833eea1efba51ba62c9c6cdcdbe943be52bb00c\nresult = acceptable\nshared = 66484a4120e0eb0c7e0505e1d2c5d15de9b52b72e094c9bac88634200c557267\nflags = Twist\n\n# tcId = 363\n# special case for x_2 in multiplication by 6\nprivate = 40cb1fe06b08f068f7080ba07c695eda91a2bebeadd4db95c97dd7c91af2566d\npublic = ec3c8b0c10b1fa65dbbd17cf1ba5f86381284765709b07c5f0428e3d5bcd3920\nresult = valid\nshared = 384f2221618e71d456b1551651efdb708a161d7f89f5604b27eb872d4aa93276\n\n# tcId = 364\n# special case for x_2 in multiplication by 6\nprivate = 8021464c64c9d6d3c0c852f6972d11969b04c9e066562fa7f0d5fa0d98ebad62\npublic = 6330d3e28a8b6126ace165a9dfccc6e4bd40dbc9768cfb16330cb7f27f906230\nresult = acceptable\nshared = 8daf5f4b84730144ea8a53ce39cc907e39a89ed09f0202e7be0d3bda38da663b\nflags = Twist\n\n# tcId = 365\n# special case for x_2 in multiplication by 6\nprivate = 707a2d710b32f55c6eba34898020a2fb981d61b1e822fca84c47d9321e279268\npublic = 8678aa29cbc06e78b218d22a3e66c38ec0da8fdb0f2570c585c62517c9704f37\nresult = acceptable\nshared = da8b7eba6f72c3f3ef33d8982093492e06be39bb0db29c465d95a8e52ef64341\nflags = Twist\n\n# tcId = 366\n# special case for x_2 in multiplication by 6\nprivate = 204a43dea79d779577581b8c2a51be66e1effce96425b7422b9ca65bdf1a4867\npublic = 303289c2b1079ea59412faccfeba8c113d2299b9dcfedeabc42697b0829c4658\nresult = acceptable\nshared = 0419a71a08d3fdd574cbc932e8f1605933ddcdd9774f5614269b7ed850c8650e\nflags = Twist\n\n# tcId = 367\n# special case for x_2 in multiplication by 6\nprivate = 58e4741735d2589322151947a1ce2f5829908626886941cb1631d25a8a684169\npublic = 3e6e16e02d44ebd94680832e065aeddcbb74af64fbb7c6d8367e7605be13ff5b\nresult = valid\nshared = 9f2fcd0c756288c1716ecd1f2a74864b93a7717bfaf5248858dcb6fdbea12864\n\n# tcId = 368\n# special case for x_2 in multiplication by 6\nprivate = d0af3428ea5205f6bf8d4f1b4e4903cd76f04236a1c0b3ecfdcaf28b21348e63\npublic = a7c1716a41ed23a8870438714ff9745fb0e46f7a5baeb37c9a2d83fe477d146c\nresult = valid\nshared = 261ab6267c35a9755359e957473870522b7f923fe839f2b155408649cc5e8004\n\n# tcId = 369\n# special case for DA - CB in multiplication by 6\nprivate = c0ea97e442e5dc1c8142bfab7089ecb9bb9c5ae372f9907c2825e678defae567\npublic = dad981552c57541c57ef395ed770ce5edc48f8015461b2ba7aa831ec593ceb15\nresult = valid\nshared = 9093bfa3ed3491d0891f02ae466e5e13c980df229db7404c5b9d34e4ed21c653\n\n# tcId = 370\n# special case for DA - CB in multiplication by 6\nprivate = b0333f09ac1eaacd3cd617eb8832e9de488b458b735cb4b5345f517130c25d6b\npublic = c588dfe6e733d90581cbe112079749d8eb30ab8631134ec29abfb98b32e76522\nresult = acceptable\nshared = 6e88bb6bf75596bbe5f1fbe91e365a527a156f4f1b57c13ac1e3e6db93191239\nflags = Twist\n\n# tcId = 371\n# special case for DA - CB in multiplication by 6\nprivate = 10719099dc63bcc282ef525845c108897ac9fae9590b593e0d505d1cf167c061\npublic = 0670116a435e8d9b7a12ffc4322fd6b149d0b1dc799b5c0957d9d6e42546e824\nresult = valid\nshared = e6de74d2c5cea54094d7a70af03c768afe05d52a038bb72d56dcacf0ba502d74\n\n# tcId = 372\n# special case for DA - CB in multiplication by 6\nprivate = 10e20e4fda57084ca90f7ad572a78aa8e6575c659cd01f30c43c58040c20e860\npublic = 8b200dd226c5c0f7e116e5388ba162438caf1dddf4edc3b6ba838c21b5929737\nresult = valid\nshared = 78c9c3aff9416a538ce3ea8fa553244528d1fbecbcf91695a33ca464ef76b85a\n\n# tcId = 373\n# special case for DA - CB in multiplication by 6\nprivate = a8312df473adfec7171e1635f5bad44f0753a88a6b3174ec5ae762703ae25e60\npublic = 419a076b179f79720096eaabaf03477e8f89d61f885c8d7f58f6eaa4fa77df5f\nresult = acceptable\nshared = c1a96ccba08bdd82d0fc12e8cde4cc1f25cfd5276dce7f18e407ed0e4a898466\nflags = Twist\n\n# tcId = 374\n# special case for DA + CB in multiplication by 6\nprivate = 109697f400210f9a92de80a8bed264097199bc240e22767b54d8bb22050b7a61\npublic = aa34d772e9ace43c4d92f4f85596ab9ccd8c36c4f4cbddc819afe2a33cb8b216\nresult = valid\nshared = 2533b845bb83e3d48cffa8dbd1edd5d601778662d5da03759152a5e0a84b357d\n\n# tcId = 375\n# special case for DA + CB in multiplication by 6\nprivate = d036308a53c11bebcb02e83688ad74fec43f8462ef4d806272676637d99b3765\npublic = 1f06cfe464ccc0e27a5ec5f9edd9bc7bc822ad2ff5068ca5c963d20edd1a2d22\nresult = acceptable\nshared = eb40a3974b1b0310b1597d1f1f4101c08dca727455a9d8224cd061a7aa3cb628\nflags = Twist\n\n# tcId = 376\n# special case for DA + CB in multiplication by 6\nprivate = 786e5a5ff37405c769d0d3788c3c1b05a62a8442c385570e4438bc5f2eaacd67\npublic = 9d4b2ed7817132af5830e899627ea97dc39bd3772e82f2d05769a918273dc02e\nresult = valid\nshared = 9509757e289553cfa2cc71313473c3ff1eebce484ee237eae554fda3d3d22f0e\n\n# tcId = 377\n# special case for DA + CB in multiplication by 6\nprivate = c01f66cb094289d728421dd46c6f9718412e1c546dad70e586851be4da58bf67\npublic = 4e056b317a31dd96f8ec14b48474af587d195efcc2a70f01f052ef882d7b3a45\nresult = valid\nshared = bad9f7b27dac64b0fc980a41f1cefa50c5ca40c714296c0c4042095c2db60e11\n\n# tcId = 378\n# special case for DA + CB in multiplication by 6\nprivate = 3877d9ce25cededeb572604f2d123df685690c26e181f777ed33302b82082966\npublic = 72c60535e9c423f302d6a10796d954d778032cd4dbd40ca0f359e204d67b6f4c\nresult = valid\nshared = 51c359768ab0219003af193e2bdb8e5cc9f8e176b8db49e597afca3e7125e370\n\n# tcId = 379\n# special case for DA + CB in multiplication by 6\nprivate = 50b84618d073c4618f9aa69a3b8518da76dbb2127286", + "214fb43a2b44503b9969\npublic = 5856358ed420047cd084f17ae696bad79a4d26c6d5bb79bfb82bbc6332442d51\nresult = valid\nshared = fa9fb0df4cfbacd0fbf3262d3a1bf8d7aacb45f73bf94671775e509c8043df7d\n\n# tcId = 380\n# special case for DA + CB in multiplication by 6\nprivate = 109acfa638e112f6bbec21e352a74e8fc9b7ffe5d9dc28634eeb516e59830a63\npublic = c31e37b04332abca8315f317171566aef38111f622d8bffa29c23c0151cdad6e\nresult = acceptable\nshared = 91ac72b0ed8d7fc4c8846b8a2530d9fb8f0532064880c00dab100c977697db28\nflags = Twist\n\n# tcId = 381\n# special case for z_2 in multiplication by 6\nprivate = 685c0784aa6d194c1b859bda44c4e27cd1dfdf34776e498dd03d09f87ae68a65\npublic = b775e016b32a97f49971121906763f3a0b41689092b9583b6710cf7dee03a61c\nresult = acceptable\nshared = 11393bb548813e04fb54133edbe0626458e80981885e1fe5f3377e8ebe9afa52\nflags = Twist\n\n# tcId = 382\n# special case for z_2 in multiplication by 6\nprivate = 18e9a05a20436cf0dbc3d5b92dac8d996e62ea11fbb3445f29195fc75a8beb69\npublic = f8bd0e7cf6ec6186f205ab03ab72c8f6b3cde8f6ad9b166916a04d43d1d6d546\nresult = acceptable\nshared = 0a83a224fbfcbc5d0f07f6dd8ebb2e9bbee8134f0fab268002ce837f5495d833\nflags = Twist\n\n# tcId = 383\n# special case for z_2 in multiplication by 6\nprivate = 00e099eb23125dab5ec35a419d455d0ba8c01da160f9354e9fb21e6a55d55c64\npublic = 8dfee48ad8b367488ea4dafcf7086e305356a80901f87c720149a5f522337453\nresult = valid\nshared = 45dc39831f3471d7466bbe29c8142b1a6d6b00c47fea021be2ffc452d9046806\n\n# tcId = 384\n# special case for z_2 in multiplication by 6\nprivate = b0ca251e0dbae7324a6ca0c2c8d6a888edd12d1447d400a47bcba004b648716e\npublic = 8f68bfc57d792c322ebb27f44a37c1c93e7eb15c5d5fcedffc1de850487b3372\nresult = valid\nshared = a29005c6b9dbf1707dc2adce4506b55831e8675b7d2d54b0c1037741e3bc611b\n\n# tcId = 385\n# special case for D in multiplication by 6\nprivate = a8b64b8ed397773b8290425ca5c2f7c3e50fac7a4781bd4a54c133781c9a1360\npublic = ff0f15adeab334afeda3916785ddd38d252dce9876c2357b643b5dc2c06a3b1d\nresult = valid\nshared = 9f04e42c1b2f311d87e1470a4708bba25ac6ffd3f7b486f9b6b502ecbb2c004e\n\n# tcId = 386\n# special case for D in multiplication by 6\nprivate = d0cd0db51ff232afa0919d3106fcb3a8ae581ef12d09c877aa6f31ef74eed068\npublic = 1076fdc827f2550ee95ff9a15d044aedfac65b5e9ba809f62438ccea54637a29\nresult = valid\nshared = 688000bd60af375b4eeac4a7d0e0782c0e6188eabdc608b732f49b4d6ccab44f\n\n# tcId = 387\n# special case for D in multiplication by 6\nprivate = 204a3b5652854ff48e25cd385cabe6360f64ce44fea5621db1fa2f6e219f3063\npublic = ed1c82082b74cc2aaebf3dc772ba09557c0fc14139a8814fc5f9370bb8e98858\nresult = acceptable\nshared = e0a82f313046024b3cea93b98e2f8ecf228cbfab8ae10b10292c32feccff1603\nflags = Twist\n\n# tcId = 388\n# special case for D in multiplication by 6\nprivate = 88109b1d0e7bace44d41a15d5bcbcd36968c5b8b47c0a2c606b57c4a68cc5f66\npublic = 12e1589a34094af5f121c9bd3c1119f2b1f05264c573f667a748683c5633a47e\nresult = acceptable\nshared = 1fcc50333eb90706935f25b02f437bfd22b6b16cc375afff8a1aa7432fb86251\nflags = Twist\n\n# tcId = 389\n# special case for DA in multiplication by 6\nprivate = 5082e497c42979cdbfdd1b3b0653cfea6f2ceb7d07639ebf3541866bb60edb62\npublic = 151f54a8a899711757b3b118fc5501779d621d25227af53d0af00b7583ba8824\nresult = valid\nshared = fac30a74f4ca99f6cf233065e9acd826690cab364bf69320b58095783ed76e11\n\n# tcId = 390\n# special case for DA in multiplication by 6\nprivate = f85a8db44f9e56b11729f51682a9769fc504f93597cbe39444616b224532106e\npublic = a819c667ed466bd9a69ea0b38642ee8e53f40a50377b051eb590142dd27e3431\nresult = acceptable\nshared = 17f6543c4727e7f129ee82477655577635c125a20c3dc8ba206ca3cc4854ca6c\nflags = Twist\n\n# tcId = 391\n# special case for DA in multiplication by 6\nprivate = 505a076641fac398fc7d8c629937f42db559db5e12052ad366d46d7b20e95769\npublic = 40b053d056668982a1f550be95e16348e303945f53a3ac64491a9a56d4095b71\nresult = valid\nshared = 889a8d611e0a7da71475e7c93a2d7f6f7228c787a00ee5cf55474adc376ff762\n\n# tcId = 392\n# special case for DA in multiplication by 6\nprivate = e8db2bf1af5b8907420789c56e71414706aef0d9f6ffaed0c249c3b7ab14bf65\npublic = e7dd0549a765bbef34be2e8da18a1bc1b989a8b0614d358ebf38c12a9ca64079\nresult = acceptable\nshared = 37232fb397af27f5fb5ca493284ff1c5d25786b0d716c73b33aca8d42265f318\nflags = Twist\n\n# tcId = 393\n# special case for z_2 in multiplication by 7\nprivate = c006ab1762720882017d106b9a4675fdd47005657155c90ca61d4cbf7cc4f973\npublic = 1ee1b9a74604ac31c3db83280170e3811504fcc78c7626b5b2c07a99d80daa0a\nresult = valid\nshared = a1b30418436ba1908804ffcce1be2cdcf50c61a8e3938d95c790abdb786b8022\n\n# tcId = 394\n# special case for z_2 in multiplication by 7\nprivate = d071807d607953da432d8574d5f3f420676dafdbc6a285a36e1d737624d77c75\npublic = f226c2d6bd7831eda1b51ee5aec29443a507ef9f7a04e2340f349dbf14933844\nresult = acceptable\nshared = a5976fda89954a81e442107f9e416a2b4b481bbd4654ebc0c7b57a78b45b4979\nflags = Twist\n\n# tcId = 395\n# special case for z_2 in multiplication by 7\nprivate = 304b526f6fe994731980c0975529bca4d061017fbec56f6070d42678d3e11177\npublic = c5197312de3a7a3ee11b29873bae3fc8c85109c66784804f89435db210fcc24b\nresult = acceptable\nshared = 55b5b5eb38b127617ffe00056d84d35a5071d18783e3a82b5f4e131b1538b150\nflags = Twist\n\n# tcId = 396\n# special case for z_2 in multiplication by 7\nprivate = 982ddf2c035789379b8a58917d5c3c6c061b503b19a0028e01894c2eb371d079\npublic = 590ed0b879319c38a19962a5d216ff2bfaf33555518877969c20c054cbe43e56\nresult = acceptable\nshared = 0080e5b9985a960a832133812a7ab9951c6b2c75894deb3e35509190a6bdf457\nflags = Twist\n\n# tcId = 397\n# special case for z_2 in multiplication by 7\nprivate = 78cc3ec0687e3e53d9cec56b79d11bf049d173f127f5b40fae122a6d0016cd76\npublic = 7c5f0143a6682f60ccad16f21150c7bb5bc6f807254d08b353fc96ce07bceb6f\nresult = valid\nshared = 5241222226638c4bbbc98792cdbd74882ca2e08aa2edf313070425031009e925\n\n# tcId = 398\n# special case for BB in multiplication by 7\nprivate = c86fc76650cf3b58837aa0f0633560415241c6c4f8f293ba0222b7d6a3875773\npublic = 010850a0974d3e89c029d252b46f739548294c0f9a23183863f9455b9559c211\nresult = valid\nshared = 63788190b10d7451f5fc2b82c421151db4f3e22782e392da6d8d3aba2c344306\n\n# tcId = 399\n# special case for BB in multiplication by 7\nprivate = 888d51c0a2230369e5b65a814b3213dde2e62f2eb95d0971486b733e4f90c174\npublic = ad1dd82c23d6a0d5fe0f2a4561d1c16733a3e1e6afa6d902dd077dc43a961628\nresult = valid\nshared = e4b40974a166ac49ed831715c071c751752744b891465e6c45001855aacdc362\n\n# tcId = 400\n# special case for BB in multiplication by 7\nprivate = 68bed425d534315584d80f79da6eab9b7e6036b51fe62e1ad933e266640b4673\npublic = d0c0d6393c41f4d7e0d5e850b7716f401eda1e028a4ed4a05bea8bf81acfd930\nresult = valid\nshared = 514a4cd0676f1c3101c8c45c17ad416bd33e20a405544fc1a60449abb22fa104\n\n# tcId = 401\n# special case for E in multiplication by 7\nprivate = 98ff2856ef44b4fa14d86782ea793828bdf6f1ef9b669cac1aae338a7bb69376\npublic = 0f460100d88a1d316dff02d1b22ffb2e42d99d0b92474fc3ec7d62567d0cf112\nresult = acceptable\nshared = ed83e810ce5ff0868f8589623bb13478dec1c22326c92765ae5e48c84bbabb24\nflags = Twist\n\n# tcId = 402\n# special case for E in multiplication by 7\nprivate = b0cdbfdd98bd988d7c6a530455c51c57dd33fd2c7aee3961971bd3a31388fc71\npublic = 13756a411ff3ae0c39222dde0810f08c432463162d81ef061071249a48439e15\nresult = valid\nshared = ff94862117d3c6edc9dd5f4852fa8a589452b924ca8a75cb23b3d68dfed88c4b\n\n# tcId = 403\n# special case for E in multiplication by 7\nprivate = e0677644ed4935f01e052e9967302d0fb78ff22bb92fbae0605f3ee54e2f6878\npublic = 8fc1fae969a6185404db22749ef6d225de86773a4d1bf3857eb8fbbd829a1b47\nresult = valid\nshared = 1c94868bc8acb3137498209b2812feb53501389f5aa37fecbfd5cb54e1358e0e\n\n# tcId = 404\n# special case for E in multiplication by 7\nprivate = 887b61553843ca99ad1ca92253a6fe082b82494752513fd53ff6530f54c40572\npublic = 7bab0891ecb9e72a15771f0a4fff90547024206339c340b1a2fdb53bcfb86b59\nresult = valid\nshared = adbf3b439b16dbc653578f53374ed3a86f9c0bf1f736573349773bc3b8d60734\n\n# tcId = 405\n# special case for AA in multiplication by 7\nprivate = 00615e4697014fc12484ef53a1440206410a8df78caa0bfff82161db83fea574\npublic = 102e95eadca7c3c28e5d52336c857bad99ea246f299b06334f401276f49ca814\nresult = acceptable\nshared = 3952efb93573ae9ce2162d10e4b8c46435859f3f2778db89f72bc579e695cb51\nflags = Twist\n\n# tcId = 406\n# special case for AA in multiplicatio", + "n by 7\nprivate = 58175113550faad56458fb375a6cb3f05df2f6ff3c4ee09d4a6ba643e022d17a\npublic = 3548c16bf31afdcd445ad9bef0e60d7bd6195aa591ca8c82813cd7d446226720\nresult = acceptable\nshared = 96128f929fc03c1269d429f609a1a8acac7a758e3446a125ecf4a359a0e37b73\nflags = Twist\n\n# tcId = 407\n# special case for AA in multiplication by 7\nprivate = 009738e1e6efef9e2cad8b416fe90a098eb5cb0199f2df5218166c7b181ea079\npublic = ba74e766d44855ec93bd441aa41058a4c4ad2be63c639a3f9a87bde51eeaba20\nresult = valid\nshared = fec3e94cb5f316625b090c2c820828ce0f3ee431e8d6e12abccc7ef2bd0be81a\n\n# tcId = 408\n# special case for AA in multiplication by 7\nprivate = c82019159be792747a39f388ea48a8c568594e3383273e51100721b376e8ba73\npublic = 9a5a1d37e5010c356aa80afb347c3d613542ddfa0be7abb8e8cdcd6674411449\nresult = valid\nshared = 96903bac9dc60b6178d734890c25db4bed9ea4dbcf6fcbcdc90e6f5694c8b21c\n\n# tcId = 409\n# special case for AA in multiplication by 7\nprivate = 10ac9f8383262ef280faac1e4da15a7de4f2cb74af33b50e0d82dcb85d8bcb70\npublic = 630847e28274dbae5491210303c85a359074ee742957b0fc3c9ff55d9e019a50\nresult = valid\nshared = 50050d0ab1ddd2dd90c460ab8f09e1f80e37cae57d4231adae10c10a4a2b003e\n\n# tcId = 410\n# special case for AA in multiplication by 7\nprivate = b84c098382f6e37d510cc33e62ddc664e02c8bb6ed9ed0e5fa78cc099a26fe73\npublic = 11749b00a45067af2c7e7d50f8d178d5a9fedb8f1b69b239763885bc611b136c\nresult = valid\nshared = 9170c4c628d5fcfd0ec719cf6e1796dab0a69e46d6379fffa247d444a0056041\n\n# tcId = 411\n# special case for AA in multiplication by 7\nprivate = 78cde8930a1d81aef6601f71409728854987578b0f8349588c04adbe2c1f6e74\npublic = df1021d8f95950afde77c86ba5ee2f5876ef778376a7fdc7efb8dff0e4836e7b\nresult = valid\nshared = d7d2a82953f680cee0c81c4d00fe628ac530ce682eb7fb3b0af24f804a58ef5c\n\n# tcId = 412\n# special case for x_2 in multiplication by 7\nprivate = b0fe7b06b9950600b3a7ce1d7bb2a1d984194cc9d6c8964504c364dd5c875b74\npublic = 2743ba408d5f68c65324a485086a004b6bbf784cc9e8b1a7dbeb8c4b9414b018\nresult = acceptable\nshared = a6b97da989dccf730f122d455152328051c8ed9abc1815c19eec6501d6cfc77c\nflags = Twist\n\n# tcId = 413\n# special case for x_2 in multiplication by 7\nprivate = f0c9c3984854d5bd599d3819738a023eb795e93586dc0e5e29b1c870c612d178\npublic = cc275a2cdd9125e52f20ce2abad41f920afa5a643fb7f276ef416f761d689f1e\nresult = valid\nshared = b210e368729501d9f9b6ebefbebae38f195f91eaf2a5a3a49288bb615ff2216c\n\n# tcId = 414\n# special case for x_2 in multiplication by 7\nprivate = 906c2f12be89702db26fa7ee905ce36525d2dee4e96a879ca07da097a6aa5075\npublic = 4929543101ee7ae239059cd134c35d400e50d0821441351d0fa6c3d54efb342e\nresult = valid\nshared = b9e3796c58701ded4237c52994501cee14e18f2fb02b781a8400923484bd4a6c\n\n# tcId = 415\n# special case for x_2 in multiplication by 7\nprivate = f026031ea373e1d16e6e7e0357bc96bc093f4b6bb76a738cbb54fe6cfd2ea271\npublic = 1324e0368597b3181555bb5b2cc7b7ebba46931aeabb6f05ababd4240f0fb933\nresult = acceptable\nshared = 6dcdf8e86903b0caded124d8a7da18e623430ca869aaf267d31029d93de99e66\nflags = Twist\n\n# tcId = 416\n# special case for x_2 in multiplication by 7\nprivate = 703f4ac8667d77f9536045cf748f18d42345e39ccab10c18dde0f5170d307f73\npublic = c7f3842297d6941cac63d6f1bdaea0709437c82dbc9161fc1bae6c79d668eb44\nresult = acceptable\nshared = 385ddbf2505ebf537bf5e976b61a4b69d190ae965b7e4a81ae4e1c16b7148748\nflags = Twist\n\n# tcId = 417\n# special case for x_2 in multiplication by 7\nprivate = c8a96ae4e77271a0680dd24fcb09f9c5d3ee8316536eec7cc2276597e50fe37f\npublic = 1e4660ba865fb8085afd4692885d74237fa3bca5af4b84ba3de400f16a5ac45c\nresult = valid\nshared = 0fbaea73f9518795e026c1fc1079c3738aeb9ee9c8dc9761d65bbf8f94e30154\n\n# tcId = 418\n# special case for x_2 in multiplication by 7\nprivate = d0dde8eda38c3783442864c0cb46a0e9832dcf784c21268a21bed2cace87cd70\npublic = 2488bb6fadb79d46585ff01c160c5b4172799d92bd168edceb65cededc492762\nresult = acceptable\nshared = 510c64151e5d0737fc324bd15fb5d3966908751cd1a06954b556196655ee5540\nflags = Twist\n\n# tcId = 419\n# special case for x_2 in multiplication by 7\nprivate = c09cd47e1ce53604f14e4e13426c8f08962f556bcd81f8d75375b1507c6fda78\npublic = a0c1087811af1491171bc51691b8ca84716af36c4baa764ec536280cc1983d6d\nresult = acceptable\nshared = 23ef825e1c8e6e64428001a7463e32a9701c81cf78203e6ae753740c91570e6b\nflags = Twist\n\n# tcId = 420\n# special case for x_2 in multiplication by 7\nprivate = e09a5f74f318f02303857aa0208d76913d9e240a80549d12013118bad620597f\npublic = cc5c97934607d8b981bce1d6a232bb3aecc3001f698ae1ae84938fbf2861077b\nresult = acceptable\nshared = 0e55a7ec1a2ddbea1ac5981200812232f7f4c3a60ee3c9ab09f2163bd13da329\nflags = Twist\n\n# tcId = 421\n# special case for DA - CB in multiplication by 7\nprivate = 706cee5f9b357c03b2f1913294f6e4f0ca5a190a87d30268327d0cb6bdd5bc79\npublic = 238de7fcc8a3f194c3554c328efb1215d0640ac674b61a98ef934ec004cfd73b\nresult = acceptable\nshared = 0681036a0d27583ba6f2be7630613171a33fb8a6c8991c53b379999f0f15923b\nflags = Twist\n\n# tcId = 422\n# special case for DA - CB in multiplication by 7\nprivate = 40e300cb1ff260574f85b3f04aac478464a86e6203b3d4656418f4305157877b\npublic = ac9fd80a45da109fa2329390e5a951cfc03065d7bb4a7855826ccb22c3bfeb3d\nresult = valid\nshared = 67b88774f19bd1081d6f23656a135803e34ae1cdcae10818124a78569c299f42\n\n# tcId = 423\n# special case for DA - CB in multiplication by 7\nprivate = 882f78b4558b7faa835904c9235e32f300fc8b5ef0a718406a5c8520ca54d071\npublic = a45ab1dc2fa2c50718fb4985d9791401e8d2d34ffe3cd93cffb4e870cce5e855\nresult = valid\nshared = a512e864bd898a5ba6551adcebd836c6a78e7871728e1b8ee528d483af276104\n\n# tcId = 424\n# special case for DA - CB in multiplication by 7\nprivate = d8649b735590a17d0fc4c378fbf4c2f7d6600569b2e84cbe0ff7bcdbac0b5f71\npublic = 1761d3d50ba46b446655aa6a8d9b8b75aa5bb24a7953208d5b69fcc38f18ec7a\nresult = valid\nshared = 518b778cf5e976c60235abcf6211a18bad2a8e693ab261074c7fab43dbb5da27\n\n# tcId = 425\n# special case for D in multiplication by 8\nprivate = a8edec59ae6ba23813ec54d66df152e0626762b97d4b0c20e0dd8a5695d86e47\npublic = dc99ad0031463e4537c01e16629966d1b962c0b4e4872f067ca3c26ccc957001\nresult = acceptable\nshared = 6cfa935f24b031ff261a7cd3526660fd6b396c5c30e299575f6a322281191e03\nflags = Twist\n\n# tcId = 426\n# special case for D in multiplication by 8\nprivate = 1098723ffe567ea6dcc8d04ecc01efafeea0aee44e1c733be8b1e5d97c8b8041\npublic = b32750fd80d2d7c62c6b8e39670654baea5719a3e072e99507fd5bcb23898264\nresult = valid\nshared = c623e2d2083f18110a525f2b66d89ed82d313b6a2dd082f6b7a6e733134f5a06\n\n# tcId = 427\n# special case for D in multiplication by 8\nprivate = a0f20df98b49218ac832f26fa8c218a0d6872eb7aea07c1d43c9ff699b465b47\npublic = e7b3205777b375f1b1515a50a16a6067953ff221e12b4f416d74fb28c1c85865\nresult = acceptable\nshared = 388ea421650a8d837bad8904018195e99ef494c2d170b93ee721a67d2c108729\nflags = Twist\n\n# tcId = 428\n# special case for DA + CB in multiplication by 8\nprivate = 30473a77a98374f67d5bd43df231ce142916aea0d271e72333fa47dc441a0247\npublic = 21cc338d7869e5863349cc739c8a6946cfc797cb82fbf62dcd2154844b106003\nresult = valid\nshared = b9e5728b37435b1d339988f93267d59f3bd1c517851c5a258e74cb64aea73d2d\n\n# tcId = 429\n# special case for DA + CB in multiplication by 8\nprivate = d8657be3a30fc85fb2f3a68e92ace1b31b26e76e6bdb6727aea507cb7c10dc45\npublic = c34217c02072d7e2bca0454525030780cfb60215d7ca82dbec8f4a59034c5f43\nresult = valid\nshared = 20b67b205e22ce87fd44a8e8fd10a6d8890b9270b60e1c6a68b4aa78e6e37961\n\n# tcId = 430\n# special case for DA + CB in multiplication by 8\nprivate = 882f5578ae4a13d8f5af473bdde1709bf2e059df809ee05b505f34de857c3447\npublic = 8abb8cfd60c6f8a4d84d0750d3b40a4f846b30edf2052fef7df84142cd0d9e47\nresult = acceptable\nshared = 5faba645fc21f9421ebd35c69bdb1d85b46f95e3746ff7f4886bc280a9ab2522\nflags = Twist\n\n# tcId = 431\n# special case for DA + CB in multiplication by 8\nprivate = 98294db7cbf4958bfb3ed21d5d5c91e13cc8dc27b3c716c86f7167a4819f8741\npublic = 9fd7b49a08f206688d72db737df8e517aa7b764f5de7c9a2b1c3fcbaa985f64c\nresult = acceptable\nshared = 9cb8a0f4ad86a27b96ca61242eab198db2767d3862dd323e41368fcdcc5fab68\nflags = Twist\n\n# tcId = 432\n# special case for DA + CB in multiplication by 8\nprivate = 789bc4047ad81b9b6656eef298b766e8763a2f8ea64e374a603dc1fdf2eee146\npublic = c4fefac7acd448e8fd4d6ac4f5dd1bc21f2c67d638444060918fb344aa77e757\nresult = acceptable\nshared = 4b42fc", + "f84b51b2b82f1f70b3cf49bd9dc6ab2672920a8de37e81ba7e99acf734\nflags = Twist\n\n# tcId = 433\n# special case for DA + CB in multiplication by 8\nprivate = 801ffe4e0f6eeb8a50c8fe79663ff585f9d6aebcfbf4b7edc676c693900cb141\npublic = a8341deecc0be6db11401ef7f884ac3ade35650cc21f14b5cdb0a5cf0ee6b15a\nresult = valid\nshared = e55fc931669bd02d1c64689eda62648212b1078c43b5caf97cf9763ff87a3455\n\n# tcId = 434\n# special case for DA + CB in multiplication by 8\nprivate = e04e412383a63b338b70e1be5fd75995350321dee428aa4f3ba62a50a3b0de44\npublic = 55a0e6631a52f29fb90a1777ccbc69ff94547459d541f72e8316e4d616535a67\nresult = valid\nshared = 87f7976a17f3e03a7f1eb74e6db950b8c0994f40b7903495599d227725809e01\n\n# tcId = 435\n# special case for DA + CB in multiplication by 8\nprivate = 382dbe9f10158bfbb7d1d79a35a7809214899a6b8572b35b55875d79bd2f1640\npublic = 7976d520f1a2512d564af41c68313f5351b0156d5118be4817f192798ae9777d\nresult = acceptable\nshared = 3bb3e30105a71901b115065e39bdb3e053d387b39027b12c92cdf4c638adf00d\nflags = Twist\n\n# tcId = 436\n# special case for AA in multiplication by 8\nprivate = 60c9af7f4d03136a6034ae52deadfd9d4f274ad8122812eb92a53169c8354141\npublic = a26a722f7ba71ccfc96ed8e108d7c9f842d17f92051ee7d429ea7fa7908ab907\nresult = valid\nshared = f5cb3a1b76185a29a6360b2142feebb11f3d08f4fd8d73df3a5228624a521c02\n\n# tcId = 437\n# special case for AA in multiplication by 8\nprivate = 283fae8bd8b294de2848056449751965abb5c7fa86ba4c2c5cdc3bb524dad140\npublic = ca3a2d96f5dda482b002324cbbdcf1dacc9815eab797c7151c3a88c75cded621\nresult = valid\nshared = b0b47868e70465ee2dd737f1ba5a6399e09cd813d72da7585ab45c946cc28d4d\n\n# tcId = 438\n# special case for AA in multiplication by 8\nprivate = 401539703ca4980db4ba42c59fc29e83b4189f2ddea53ba54ca966c06898a640\npublic = eebd858850b56febb707f27a7aad5ff5ab4b0e0c73b9c86ec4ca0f42e7f38e75\nresult = acceptable\nshared = 581e4b12b0f39a7cc42dee4513ecfdd20b595f905f17ad8c1fbf1b5cb2068b31\nflags = Twist\n\n# tcId = 439\n# special case for z_2 in multiplication by 8\nprivate = c8eb056286e098e6b2c79e42f007ebc6ab3705346cdbdace949b5de1e8c36743\npublic = c800bf799783275eb93312b43dc032ccdfb00a4b77c8b3772cd2fec8db7e4a09\nresult = valid\nshared = 6bf264532fc70a6a7e459f4579eca6b84f8f76ab85c3264b20bca725a6eb6c40\n\n# tcId = 440\n# special case for z_2 in multiplication by 8\nprivate = 487882956c49c69fd0e2d7277a24fb1dbe4b0365b36a13f63440248bca2fbb42\npublic = 7bbc504e04d134eedc13f06dfdfc69c518257a3f374040a49a8d21dac109110c\nresult = valid\nshared = 690305c9e192cd8a513f705b3f101ecdf3db1ea15a09c4a1bce3a8cdc3a1a93f\n\n# tcId = 441\n# special case for z_2 in multiplication by 8\nprivate = 9876010f4d64c77ffc4d7dccd72b9ac82078deb883609650b8cff8a686719d46\npublic = 132533db62aff4fa06e96314383bf58ebdec5183a19f2e4cb17552ae19a3366e\nresult = valid\nshared = c58591b33e490e4766ff7addff570ce4e89a98338015a55df3d2f232aea3fc4f\n\n# tcId = 442\n# special case for B in multiplication by 8\nprivate = a8a5d4f7894a519537babfac736de36054f508dae434b4fe63cd5633846a2647\npublic = ceb90c56508cf330c7f25bab42b05b5612a8310690107ac63a404c0ade788009\nresult = valid\nshared = 3d145851b6ff2b92b5807ed1df21eb50c9f24c4474d4721db3abb7356df7b764\n\n# tcId = 443\n# special case for B in multiplication by 8\nprivate = f83e4647e82c560aa082c59641e13bf366be8f24dc01d14801e67841160bed47\npublic = 66a09767a0d83bb18d404e1200375a745d1f1f749d5dc6f84a205efa6a11bc65\nresult = acceptable\nshared = 1401829aac4e64bcfa297a7effc60477090d3627a64a35b872ae055d2091785f\nflags = Twist\n\n# tcId = 444\n# special case for B in multiplication by 8\nprivate = 58c6b94bce9b15f64946c2aa6a4e383b0b2d4365b7997eb2310ac4eef1803145\npublic = 39d431316307c85747bd2bcf4f9e0f8892ee45df15f7806ce65147d97f503478\nresult = valid\nshared = a0ebe6908c5472f937769b9aeb313224437fc5d73f4f866fe7ef41f30e359e09\n\n# tcId = 445\n# special case for C in multiplication by 8\nprivate = 786a97207adbd4b0d6bfc9f49b18660ad3606c12e325044b8690b4fa07874641\npublic = 84c92d8ecf3d0cb22dde7d721f04140c2d9c179cc813ce6cf8db2dce6168880d\nresult = acceptable\nshared = 07538f1b6583041c4949fafae3349d62f9dd302d3d86857af0dedc0d5ad6741f\nflags = Twist\n\n# tcId = 446\n# special case for C in multiplication by 8\nprivate = 282310210e575a59393cf19bbe6e24752dc247706f1e0031e5d39b2de4fff745\npublic = a9cedb9e942a47221e4296953220d10007db327d2acb68da6ef3a4f877b8ef1e\nresult = acceptable\nshared = 1223505fbb534c1bc6108e6b98b4f0af29e11158c02d333d6559beecd6d3e558\nflags = Twist\n\n# tcId = 447\n# special case for C in multiplication by 8\nprivate = c8bf2fd4c40d00f1465aada682b12fa92dec10343484ab62b8871337de1d3345\npublic = 64e1c0c5f59405bbc6c7db41a3485cc9f91c183b0f2b7e1894a7abd8fbbeeb23\nresult = acceptable\nshared = ee031868165f456f75907bf39742b820e0f8e6df9f9768d757d408e1cc92ff7b\nflags = Twist\n\n# tcId = 448\n# special case for C in multiplication by 8\nprivate = c06a4a4b70f613136f18c0f88e2245086c3d1a52717210a21ac9d63682f2e740\npublic = a68d2f55e60eac7983926310f4fae13f95b2bbf140be5ea91751884d900ab44d\nresult = acceptable\nshared = c954fa7b042c32943e03191e367d54be0085fa8950ef2bec99620df79ecbea4b\nflags = Twist\n\n# tcId = 449\n# special case for x_2 in multiplication by 8\nprivate = 20596e1dc56596823d37698dfa699c79874aaefde797f863ef92135980fb2043\npublic = 6d3cd623f26a7453fa05a01ae758ba84d3c58d93d60ce32735a15e0d053d5b12\nresult = valid\nshared = 7c3219b3c1fae1f95590ac843efd2084a1f4bd3efa2f592f022032db64ebcd77\n\n# tcId = 450\n# special case for x_2 in multiplication by 8\nprivate = 38141518e8e5efa1d031c6c4d95480239f6c30b8ccd8c751a9e04bd3aec17342\npublic = 8f195547346b3d53b7ea4f742b22f1ef7b3cc01a7d3dcd19aa7c5b03f31bd214\nresult = acceptable\nshared = a31f6b249d64a87c4aed329c6c05c3f2240b3ca938ccdc920ba8016c1aeaeb45\nflags = Twist\n\n# tcId = 451\n# special case for x_2 in multiplication by 8\nprivate = 207147f2b68fef1efc10a04f988f0eb18b273b0b5ed17aa7af32c90480e19b43\npublic = ffc4fe2c2127a309c739565651e9812f834a86dbadbb78776977f786ecdb0217\nresult = acceptable\nshared = 4cff9f53ce82064882329a18ea4e4d0bc6d80a631c87c9e6fdc918f9c1bda34a\nflags = Twist\n\n# tcId = 452\n# special case for x_2 in multiplication by 8\nprivate = 488084537b840f9c93ca57b3ee80491418d44221113e03f56355302604d03547\npublic = 8475babeeab9980d426abd5323dfb335b219e129bddae4d6cebcda50754a6825\nresult = acceptable\nshared = 248d3d1a49b7d173eb080ab716ac8fde6bd1c3ed8e7fd5b448af21bcdc2c1616\nflags = Twist\n\n# tcId = 453\n# special case for x_2 in multiplication by 8\nprivate = 28cfc1d03f5c7428ff3e20b137268b33ccc74db03582d2127c566df4ac99f441\npublic = 81f90a2f6633d30c2b72a25795d2a49463a80b6b0edc5aa68bae4bf738185539\nresult = valid\nshared = 66c6e70cf630be90a2c88fcde7f58cff3868660fa96406e8df4ac677dbd85f50\n\n# tcId = 454\n# special case for x_2 in multiplication by 8\nprivate = c8e37d10f3d03db3f43e467bddf98f595cb529ad253c20d491282d1400b9e740\npublic = 41626e33b3c8f48bd19e49ded307f2b63bde705c4f3cdf9d4f92bf37c48cba42\nresult = valid\nshared = 06283fcf69dc83e99d92e5336f499a1d8fa75ed2c819b5ae6ea8094454324b27\n\n# tcId = 455\n# special case for x_2 in multiplication by 8\nprivate = 00237e91406a7b4db61e780c5976fbb926cdace2fbdfdbcfce65e6dbe7782a42\npublic = ebb32f781c0e89b252e611f9d8f79f8567874c966598314b2f16aa44cfc07843\nresult = valid\nshared = 7d2affb43355f5db1294daff55f59b1f17e7d25bca20746f12484d78e5015517\n\n# tcId = 456\n# special case for x_2 in multiplication by 8\nprivate = 489c4184a23a8f5eec68a31b41aa2c0392cd6fb123f10acdb4de75292b4b9a43\npublic = fa75e6f08ca815b4e42af24a8e057c9e00e828e33d12c0e94d1012a758336744\nresult = valid\nshared = ef8e78cab091d667888489fd3a2ec93fb633427d02eb77b328d556f2b2b0e266\n\n# tcId = 457\n# special case for x_2 in multiplication by 8\nprivate = c05957fbc3a0e2c22a2aef627651ca1e99307b82a0c6170f7950a334f3004941\npublic = 4d96320cdb0ca52655e91118c33f93afe4ae69e9e513ff4506750b8ea784ce46\nresult = acceptable\nshared = c8d85bfa74b4b26461297b350c975183fea9d33ba29c3a4934509c2ecda58a79\nflags = Twist\n\n# tcId = 458\n# special case for x_2 in multiplication by 8\nprivate = 60111c6629f73635985be964b845f87a88ae5652d45bb1451ce8cfd2ea45fe41\npublic = c0ef1b7c20237db370501f24274e4eba91998ae4545f937007e1c4a2eab63365\nresult = acceptable\nshared = 22557e0d8741ed2a63afd5e313aa1579fc0c88c7772e23a676c94b60c89df577\nflags = Twist\n\n# tcId = 459\n# special case for x_2 in multiplication by 8\nprivate = 58785889a216d15456582d4e1e3de9e9ca4a432954416d81caf52b2b434c1746\npublic = d534", + "d8ff4d56a73ef7615e94523b17e35edb3d0fb87e98c68536f63f114a8d6c\nresult = valid\nshared = 54d7fc17bad00296ba50b0f3d5bf8fb83f82d571952a5fdb5a494120cc61446b\n\n# tcId = 460\n# special case for x_2 in multiplication by 8\nprivate = 60bef38a3890ec1ed05c299fceb77db5ead4b88d9e931b0f21d664f77df9b544\npublic = 733a711ba01b6e9b64a0be4cdca8c7cf3c66df2435d5248fb4413fec6ee03f70\nresult = valid\nshared = db6851b12585bc11be9362c96a545c6f2ba55f04009792463b96a38cb9b3f07c\n\n# tcId = 461\n# special case for x_2 in multiplication by 8\nprivate = 5854ee566878ef8b7ebaf5a058306f250edf0c84fd52af2d74b7ce3c1edda746\npublic = 35738dd539d60f69cd1a1cffc8a42b6af68fe7de45392d02831e2a77500ea278\nresult = acceptable\nshared = f6d1a664257fa5de3d4d57f04eda2976bf1e35cc3ac513e1ee84d57d2135ed13\nflags = Twist\n\n# tcId = 462\n# special case for x_2 in multiplication by 8\nprivate = 985b551261fce38ddc8ff3add32f5c26811d271b9a1794e249dd76a38df28446\npublic = ce932b5af4be4721f96f7b79ba1c43b20687d4af49c37b58dc894279e04bb578\nresult = acceptable\nshared = f8f7625ac5bde63f753a9bb4aefbfb9c4647207708af9d774ef08ff1b1e5a354\nflags = Twist\n\n# tcId = 463\n# special case for E in multiplication by 8\nprivate = 8815052344dcad97efd1341e9072a808cf999e46e52cf04e0cfbcd9901e18d43\npublic = e3655448339e4850806eb58abba0c89185511ea72c37c49e9583ee6dd235d213\nresult = acceptable\nshared = 5e10dfbff4443efcae2ccc78c289a41460d5a82f79df726b8824ccbef7146d40\nflags = Twist\n\n# tcId = 464\n# special case for E in multiplication by 8\nprivate = b8e032e9e5ffbaa004390f3a0b900bc7cf5d11238b7ec964afc4bda2aa6c3444\npublic = 4d16965b1637e9d7ae8feb499ed0553962a9aa0022d1620c928072f6501bc41b\nresult = acceptable\nshared = 19d7b44c1847c44e8f37a22ab69c180fd9d787f204123013e1b16800b9cd0f57\nflags = Twist\n\n# tcId = 465\n# special case for E in multiplication by 8\nprivate = 7012852211f6536fca79937e7e316c9149b0e20ea03f951e1bb072895ca0e044\npublic = c6b9e6288737ad40452cec1022871d90af1642d10bd0a97792b1a9c8998e2220\nresult = valid\nshared = db990d979f4f22f766e7826d93554e771b361de461274d6c37baadeb8ef7be4e\n\n# tcId = 466\n# special case for E in multiplication by 8\nprivate = d039c1b9ec4763e0ad8a0ef2b0870297d0f8b487e660595a484105d180e14a47\npublic = d566fab505ac4c7a3dc3b9403ef121392cbbe21216e5bcb8eab2dc9408986e34\nresult = acceptable\nshared = 6d7fc5d4a8f534b1bc0fa5e078104234675c02664736957abdb27df6faf07c00\nflags = Twist\n\n# tcId = 467\n# special case for E in multiplication by 8\nprivate = 58efcbc8777c1b54f09c61a216efd427292eb12312dbb3b32bd45254a6683e47\npublic = 468d35ecfb6d9b7272523276cc5e13760519667f0e1e3888da4c56955fe91151\nresult = valid\nshared = 539c8d629ab51c2f3ea7278fd5f1c31b6c150a82fe3f786b93ffa159fd6d9316\n\n# tcId = 468\n# special case for E in multiplication by 8\nprivate = c8d73446026cd0ea795773c2eb7b16348cd5f228e352dbc77328c2d8b9cde240\npublic = 1929538743977dfea20bf4927ddabb2f3bb15cac2461054508849718854b5568\nresult = valid\nshared = dee3fd19c8f296415448b21af44385ec46727bbe67d4839b93efe2f680e76d34\n\n# tcId = 469\n# special case for E in multiplication by 8\nprivate = 98b559523bc778b0418af53c0c32f6ff5cf771ff5df8ae7cbf7c3b72aedb5b43\npublic = 2d7ab4c6f59865355ee8e9de57db19aadf7708b7c1d1a818487c340623badc6d\nresult = acceptable\nshared = 2a0340aaafa05d00529c09057ed0145f34d2de66a3e149cf084ea97168914f39\nflags = Twist\n\n# tcId = 470\n# special case for E in multiplication by 8\nprivate = 589815027caf82714e96c9f91bace66ec4ba3e92df3fa14b9b8fe503556e4543\npublic = 43839f4a6aa206c82c5a73f49d8c9e573826b3ba7235d312987c17aebee62776\nresult = valid\nshared = 00313717d33e3b41a0865986157582e053502a172b88d01bb7b10831a9fc4e6c\n\n# tcId = 471\n# special case for E in multiplication by 8\nprivate = 80715f67270c99789855ceaea99b9957ccda33326f76bb4474ab52ab1ec37041\npublic = 3c321e7f0b9e555bc264a2cea617e6b2b562ebab21fe0c226c3e487b7df9a27d\nresult = valid\nshared = 9b6be9e6f2fdb5d3321842225d3e91d14828cc53ba6654dabe190b0c3edeb309\n\n# tcId = 472\n# special case for DA - CB in multiplication by 8\nprivate = 101b990bd83d684126ff047d930c27d086a588dd19683d2629f0e34f4374ab41\npublic = 42e5a6b8e9654bb4ad624af3f491877977513cc8775c8fb312ad19dbf3903a28\nresult = acceptable\nshared = 223f1eb552308373026d11c954684ce6db870b638b190b9443e50aae219f4e3e\nflags = Twist\n\n# tcId = 473\n# special case for DA - CB in multiplication by 8\nprivate = 200089b712d9a2050597779d463712fcd223e3d67879c0fb7606f8f5f0efee40\npublic = 0a51dd90ab985f6deaf72f16c45014da26df848697f6582d75688f5223342b51\nresult = acceptable\nshared = fb95ce4a3c1f325638b7d47f4216d39a7c6c5da9a01caa297c37b62816555b2a\nflags = Twist\n\n# tcId = 474\n# special case for DA - CB in multiplication by 8\nprivate = f04f87f4e623af4c31ceca0bb87fac2d5b12517b5a7284902ad75838e65f1e41\npublic = 8842317357bde825ef438a1c53906fb8b04ea360f7ef338c78e668586047936a\nresult = valid\nshared = 488b8341c9cb1bbf124510b9f8dae4faf2e0dca9b84e00e952a63b5aa328a860\n\n# tcId = 475\n# special case for DA - CB in multiplication by 8\nprivate = 383cbd5a3dd0901d09a3cac3d3a77a979cecf15e206a553e4ca3f24b90783945\npublic = c71d92d3c92dbfaed755fb32797b667cc86b0e79362498e2aca38c689713b16e\nresult = valid\nshared = 1129eae97bf75f7314f2e1b403b18737ad830c80429e2ba0d4866b362399855f\n\n# tcId = 476\n# special case for DA - CB in multiplication by 8\nprivate = 701df09e57b98aec375745df147b72949a6b2bb2ca3a34881512ee31e790ad42\npublic = 3a21d1cf7b3744d1ad26197335844982c2a0c6a5aa835492bd03c401a4fe6778\nresult = valid\nshared = 072f51d94727f392d59dc7caff1f4460452352ec39c32a1c9f071e388833da56\n\n# tcId = 477\n# special case for CB in multiplication by 8\nprivate = b0ffa5f4922bb117ad75ff43acac62331efaa45536fe88306e4a4cb58db73a47\npublic = d128ea3e13325ed6ebd6533a9fd3045a55f25ad8b67def30912843504c1aab29\nresult = acceptable\nshared = 30512142d3e3a4cad6726d9d35f2e043fca9dfb750884ae22b2547c840f3587b\nflags = Twist\n\n# tcId = 478\n# special case for CB in multiplication by 8\nprivate = 685e3271d2015741756612a930e858b930acf2018145f382c83d8cced2e22044\npublic = e079c8f8423165c7e0a2c48b4abe90aece4e6d903d7a5a1625fad0410cd55b32\nresult = acceptable\nshared = 5b81b3761a66d199e8ef99d2494bd57a0229d4564a7f6d6055f22aa48681bd3a\nflags = Twist\n\n# tcId = 479\n# special case for BB in multiplication by 8\nprivate = f8e161d69297e017d7c51b1b1ff3ba703d4c4cf8fc2b8ff47f74c3ff8c7d3541\npublic = 65922a06e9be4e8a5e8aceb1a4e08fe90f01e10ef2dd27315427cedfcf95ec32\nresult = valid\nshared = 038de7fdb9cc0030f5c11dda00589f0a95f65658815b06ed013553a02b6c5017\n\n# tcId = 480\n# special case for BB in multiplication by 8\nprivate = 105d7589f8abef0acf0940da84a69e8f2f306fa73c9afd27342287c1dba80044\npublic = d36a240e972dc16e9b97a997ada337f02760d05c46d7f8d7b4e9ea9a635c7c64\nresult = valid\nshared = 22b0dea3b3b7ca55eceeaae6443426548c7c15cc7ddf31780318d1c23879c16a\n\n# tcId = 481\n# special case for BB in multiplication by 8\nprivate = 1893d4388b0e90f0b50208aa8f0cc24f576d03641baf1c3eddb2a3efa69c9d40\npublic = 4f5b8b9892b8a46df08d76a4745b1c58d4e7a394905435875688ca11f1e9d86a\nresult = acceptable\nshared = a25e1306684ad7870a31f0404566e8d28f2d83d4b9497822c57f8781b18fec20\nflags = Twist\n\n# tcId = 482\n# special case for BB in multiplication by 8\nprivate = 0065171301bf6b90fb16efa35509161f1bd6b3b93130d490af9fe224dd155f45\npublic = aa2f02628269139a7a8a16fde95c9bad7da7ffbd5439c396a7d77b6c3213e67f\nresult = acceptable\nshared = bb4431bea7a5871c1be27a2674094627eaaa4425c99cd3fa41bd7e13cbd7bf7e\nflags = Twist\n\n# tcId = 483\n# special case for A in multiplication by 8\nprivate = 10c81a4e78d82145b266e1d74b3869bf1c27427803ebb11c92ff8073d1e4cc46\npublic = d995cb287e9a9c5791f3cae3d494a5b516a1e26cbc930f43e73c8b70b69d783b\nresult = valid\nshared = 330f5d0b5bccc90f7694dfdd9c6449a62d93af8840eaf571e3e0610e0198b03f\n\n# tcId = 484\n# special case for A in multiplication by 8\nprivate = 48b98b4a99eadd73012c07fe5c4a0b9590ac55e821353b41d5f665e17188bc41\npublic = 479afb1e73dc77c3743e51e9ec0bcc61ce66ed084dc10bfa2794b4c3e4953769\nresult = acceptable\nshared = bdef00caa514b2f8ab1fb2241e83787a02601ecdff6cf166c4210f8c1ade4211\nflags = Twist\n\n# tcId = 485\n# special case for DA in multiplication by 8\nprivate = 1897678e38222a61fe105dc6643c1eb5940e8dbc73ed6c00f25a34328f43a641\npublic = 378eda41470b0f238a200f80809ad562ca41e62411a61feb7f7e9b752b554642\nresult = acceptable\nshared = bfd5b5acd2d89f213a26caf54062f9a24e6f6fd8ddd0cd2e5e47b7fea4a9c537\nflags = Twist\n\n# tcId = 486\n# special case for DA i", + "n multiplication by 8\nprivate = a898af8138e11ae45bbcefa737182a571885f92d515c32056c7cb0d7deac4741\npublic = 0cad7545ade2fd93fcae007c97648348f26d85829bdb7223a63eccb84e56d475\nresult = valid\nshared = c8085877800c175e949cdd88e196eb9c4841da2ac446dfed9085bda5bbec265d\n\n# tcId = 487\n# special case for AA in multiplication by 9\nprivate = b0bfef6ec095b5a1f93917d32f16a21d0462c1fde17446f5a590232d9c895f4a\npublic = 60f27ed0a27804ced237cf3c1cc776650fb320bae6d5acb564e97b56cba25210\nresult = valid\nshared = 4c300895827382a9d1079028bd6f694a7a12ddac9c76abac6fdf5d29457a3310\n\n# tcId = 488\n# special case for AA in multiplication by 9\nprivate = 60497d4464ed8823c50fbc6b68620826c4f629c1d9193058df6bf857c6aecc4b\npublic = f93a73270ac19194b8e4ffd02be4b1438525f84a76224688ea89a9dd6a1bd623\nresult = acceptable\nshared = 7285fbb3f76340a979ab6e288727a2113332cf933809b018b8739a796a09d00b\nflags = Twist\n\n# tcId = 489\n# special case for AA in multiplication by 9\nprivate = 08c6cbe03792a3829f06e8ad54c55db113236ac0dcc9ab6a9a6b10eed1041b48\npublic = cf80c30fcbfd535666ca1da499e2e99cc537063e2de19458fcf92f5ee34acf47\nresult = acceptable\nshared = dabc3bd49f19cf7071802e43c863ed0b1d93a841588098b98a0c581bf4fe0a11\nflags = Twist\n\n# tcId = 490\n# special case for AA in multiplication by 9\nprivate = 50044da3315dd082e9dfb6a1994aabb331f53e0d1c12633383b2a3c8678cfe4c\npublic = 698effe0ad42e15ee1f46fde6fc5074ffda183bcf1b2db8647f561ddd191dd60\nresult = valid\nshared = a61a3b150b4770532373676298c9a5da28adcc4365b06fe07c959ca80e477a57\n\n# tcId = 491\n# special case for AA in multiplication by 9\nprivate = 285640da7a48252e35ddce60c14addb73097fbc9ac2f87c8d2772ce89aa6be4d\npublic = bd1565b4a3f8515dff577be6dcb414511d3d4ec2de15e0bd45b28e9cc4caef60\nresult = valid\nshared = 916ab4f3bfc8321e1087d9c5444f8f7a43e9ca6d29e7ba98a19dc05fff34ed4c\n\n# tcId = 492\n# special case for AA in multiplication by 9\nprivate = 783271c21199ba2e94ead92cd9dd79f70aab378b59497455d327a5907dafcb4a\npublic = b8649e13843f80cf5702398e4a9a8c378f29da96dfd6579f1eb4f7ea34df6765\nresult = acceptable\nshared = 844a5dd5139554ca7b41cbe6a4796193912e7aa4e201cc68944ce2a55774a10f\nflags = Twist\n\n# tcId = 493\n# special case for AA in multiplication by 9\nprivate = d0676a0b9a046c62d5b2e740d9cc43fa37965dea93c23254f7bf569f2bebaa4a\npublic = c396938737abdf791e09a97eba577c437d9b67c2dae94e13eab7296ec0fc737e\nresult = valid\nshared = 10780333b2a6170136265bb5ebc6c818817f2e48ae372528c8f34433fdd6215a\n\n# tcId = 494\n# special case for DA - CB in multiplication by 9\nprivate = 608c84d2b76fccda579e974db3d3b2ce39a6bc0dad440599db22411b60467849\npublic = 557b825012d98f065bb95a2ab9b2d2d8b83fd2037912508c263f86d7e36c4f24\nresult = acceptable\nshared = 5ce84842dbae8b795b3d545343558045508f271383bfb3dd3943f4101398c864\nflags = Twist\n\n# tcId = 495\n# special case for z_2 in multiplication by 9\nprivate = 80f233936a8821936d39114c84d929e79760b27680779e5009e1709410dd8e4f\npublic = ae98296d4a2fbcbb40b472f4063231608bb1465c226c8a4a2dff29afd915882a\nresult = valid\nshared = 4f11aa0c313195f96f25cadcbf49f06a932d8b051879ea537d1c6dfee7f36d35\n\n# tcId = 496\n# special case for z_2 in multiplication by 9\nprivate = c8d80b1a34f21194f047a6f0328bb947e2e7aff6a043553aa07f2abf99aaf048\npublic = 8b9d249829fbe81333d85050da88998f63fac665679e27dbbe21b745dd14e145\nresult = valid\nshared = 1d619070bf5626064be10025e74e336c81ef3166b743f99c751fb90587c31d7e\n\n# tcId = 497\n# special case for z_2 in multiplication by 9\nprivate = 9021477b452361580059364c6f94f4981ee94ea3f9b7d37439bc82ae45816f4d\npublic = 61896093e2697c78230afdda12639cbe4342827b8d2b093281f148eb60b9034b\nresult = valid\nshared = 532e797861db56b9d5db8825fb72f8629c2422f8abea721ad2d7b9e77a95b576\n\n# tcId = 498\n# special case for z_2 in multiplication by 9\nprivate = 6079dae04c40a59ea4e0c8c17092e4c85ea9133d143307363487836df4e30349\npublic = ccc1dc186229dba9a9360a0f7ff00247a3732625acaacd18ea13a9a8b40fac4f\nresult = acceptable\nshared = 4f678b64fd1f85cbbd5f7e7f3c8ac95ec7500e102e9006d6d42f48fb2473ab02\nflags = Twist\n\n# tcId = 499\n# special case for z_2 in multiplication by 9\nprivate = 281db6a5ac9a47d4a7b2b91a87f6536ce62d4e5129b8d647b97f9c504014894c\npublic = 69e368c0b7e78eb9f3a53bf458f6e79dc4883bf9458f04a8c12c4ddd94d62151\nresult = valid\nshared = e069fd06702f10f33adb8cf0766880634865b510e2da409241fb5f178050514a\n\n# tcId = 500\n# special case for z_2 in multiplication by 9\nprivate = d830f3c4785829a0f945857e0e85e0ae723702b57783b933cd2a2ad05484fe49\npublic = f21f9badd98dd8a103cc2ab5484fac6c2bfdd2671ee6e674134a86b89cee9160\nresult = valid\nshared = fee218eb1f92864486e83c1731f04bb8c7e6d7143e3915bcbf80fe03ff69dc77\n\n# tcId = 501\n# special case for E in multiplication by 9\nprivate = 10230bd0721f4c8c4b921881dd88c603af501ee80e2102f8acc30cf8b2acd349\npublic = e853062b2d6f38d021d645163ea208d0e193a479f11f99971b98e21188fd0b2c\nresult = acceptable\nshared = 64bdfa0207a174ca17eeba8df74d79b25f54510e6174923034a4d6ee0c167e7b\nflags = Twist\n\n# tcId = 502\n# special case for E in multiplication by 9\nprivate = f0a34d6d76896e17cb8f66feda23115ffb96f246b823bb63dec08335787de74c\npublic = 362eb92dab9fb29f7ed0e03843dcc15797928c2b4e51ec260204179c1c12945f\nresult = valid\nshared = d7f4583ee4fe86af3a3f1dfcb295ba3a3e37bced7b9c6f000a95336530318902\n\n# tcId = 503\n# special case for E in multiplication by 9\nprivate = 9073c1d0a173c7ff02dc966a165993d9c4c9357514f7a6bb7aaa4b0827718948\npublic = ff543f1e81996e88631f030ceba7e603b13033efd205e68bd36b28468134aa73\nresult = acceptable\nshared = c1b5e5f4401c98fa14eba8aafae30a641bfd8fb132be03413f3bf29290d49e0b\nflags = Twist\n\n# tcId = 504\n# special case for x_2 in multiplication by 9\nprivate = b0c1822566e016c12ae35ec035edd09af3cb7a48f55c9028e05e1178a8c3824e\npublic = 90ef70844ead1613f69df7d78c057813f866c0d95e6d22caee4a012b9c1c4b33\nresult = valid\nshared = 9369ebb3d2b744341cba77302719a4b2d63aff612872f86d9877a76bc919ca1c\n\n# tcId = 505\n# special case for x_2 in multiplication by 9\nprivate = e06fe64e2117796f997bbcd3bcad3067cf1291640a3a643fb359809a4016834d\npublic = 88c1ae575ad073dda66c6eacb7b7f436e1f8ad72a0db5c04e5660b7b719e4c4b\nresult = acceptable\nshared = 335394be9c154901c0b4063300001804b1cd01b27fa562e44f3302168837166e\nflags = Twist\n\n# tcId = 506\n# special case for x_2 in multiplication by 9\nprivate = 707ee81f113a244c9d87608b12158c50f9ac1f2c8948d170ad16ab0ad866d74b\npublic = dcffc4c1e1fba5fda9d5c98421d99c257afa90921bc212a046d90f6683e8a467\nresult = acceptable\nshared = 7ecdd54c5e15f7b4061be2c30b5a4884a0256581f87df60d579a3345653eb641\nflags = Twist\n\n# tcId = 507\n# special case for BB in multiplication by 9\nprivate = 7089654baacbb65bd00cd8cb9de4680e748075e8842ca69d448fb50fea85e74e\npublic = 6c0044cd10578c5aff1ff4917b041b76c9a9ae23664eb8cf978bd7aa192cf249\nresult = valid\nshared = 0d8c21fa800ee63ce5e473d4c2975495062d8afa655091122cb41799d374594f\n\n# tcId = 508\n# special case for BB in multiplication by 9\nprivate = 8089784c52cd67e4536e568218c7b7033b28413f942fca24ed69e43496efa14b\npublic = d9089de902e143dcd9107e5a3393a3f7fe05d926c357b47e307a236cb590fd64\nresult = valid\nshared = db6fec44bf118316a6bdfbae9af447baede4d82daa16bed596ea6f05d4a51400\n\n# tcId = 509\n# special case for BB in multiplication by 9\nprivate = 00e73e4e013148b9f05273bad626bb126a40ec4558f5425096b48947e0a9de4a\npublic = 8c4a26aa319c2cc4a4158c2bc69a0d5b340b60628a14cf31bb0ae5ddc38ae866\nresult = valid\nshared = ecc1204bc753c4cec4c9059fd7b504944ebf995ab1b1d49f0b3b325353be3a15\n\n# tcId = 510\n# special case for BB in multiplication by 9\nprivate = 78ed4c9bf9f44db8d93388985191ecf59226b9c1205fe7e762c327581c75884e\npublic = ce7295d1227c9062aab9cf02fc5671fb81632e725367f131d4122824a6132d68\nresult = valid\nshared = 3740de297ff0122067951e8985247123440e0f27171da99e263d5b4450f59f3d\n\n# tcId = 511\n# private key == -1 (mod order)\nprivate = a023cdd083ef5bb82f10d62e59e15a6800000000000000000000000000000050\npublic = 6c05871352a451dbe182ed5e6ba554f2034456ffe041a054ff9cc56b8e946376\nresult = valid\nshared = 6c05871352a451dbe182ed5e6ba554f2034456ffe041a054ff9cc56b8e946376\n\n# tcId = 512\n# private key == 1 (mod order) on twist\nprivate = 58083dd261ad91eff952322ec824c682ffffffffffffffffffffffffffffff5f\npublic = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\nresult = acceptable\nshared = 2eae5ec3dd494e9f2d37d258f873a8e6e9d0dbd1e383ef64d98bb91b3e0be035\nflags = Twist\n\n# tcId = 513\n# special cas", + "e private key\nprivate = 4855555555555555555555555555555555555555555555555555555555555555\npublic = 3e3e7708ef72a6dd78d858025089765b1c30a19715ac19e8d917067d208e0666\nresult = valid\nshared = 63ef7d1c586476ec78bb7f747e321e01102166bf967a9ea9ba9741f49d439510\n\n# tcId = 514\n# special case private key\nprivate = 4855555555555555555555555555555555555555555555555555555555555555\npublic = 9f40bb30f68ab67b1c4b8b664982fdab04ff385cd850deac732f7fb705e6013a\nresult = valid\nshared = 8b98ef4d6bf30df7f88e58d51505d37ed6845a969fe598747c033dcd08014065\n\n# tcId = 515\n# special case private key\nprivate = 4855555555555555555555555555555555555555555555555555555555555555\npublic = be3b3edeffaf83c54ae526379b23dd79f1cb41446e3687fef347eb9b5f0dc308\nresult = valid\nshared = cfa83e098829fe82fd4c14355f70829015219942c01e2b85bdd9ac4889ec2921\n\n# tcId = 516\n# special case private key\nprivate = b8aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6a\npublic = 3e3e7708ef72a6dd78d858025089765b1c30a19715ac19e8d917067d208e0666\nresult = valid\nshared = 4782036d6b136ca44a2fd7674d8afb0169943230ac8eab5160a212376c06d778\n\n# tcId = 517\n# special case private key\nprivate = b8aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6a\npublic = 9f40bb30f68ab67b1c4b8b664982fdab04ff385cd850deac732f7fb705e6013a\nresult = valid\nshared = 65fc1e7453a3f8c7ebcd577ade4b8efe1035efc181ab3bdb2fcc7484cbcf1e4e\n\n# tcId = 518\n# special case private key\nprivate = b8aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6a\npublic = be3b3edeffaf83c54ae526379b23dd79f1cb41446e3687fef347eb9b5f0dc308\nresult = valid\nshared = e3c649beae7cc4a0698d519a0a61932ee5493cbb590dbe14db0274cc8611f914\n\n", +}; +static const size_t kLen160 = 129059; + +static const char *kData160[] = { + "# Imported from Wycheproof's xchacha20_poly1305_test.json.\n# This file is generated by convert_wycheproof.go. Do not edit by hand.\n#\n# Algorithm: XCHACHA20-POLY1305\n# Generator version: 0.8r12\n\n[ivSize = 192]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 1\n# draft-arciszewski-xchacha-02\naad = 50515253c0c1c2c3c4c5c6c7\nct = bd6d179d3e83d43b9576579493c0e939572a1700252bfaccbed2902c21396cbb731c7f1b0b4aa6440bf3a82f4eda7e39ae64c6708c54c216cb96b72e1213b4522f8c9ba40db5d945b11b69b982c1bb9e3f3fac2bc369488f76b2383565d3fff921f9664c97637da9768812f615c68b13b52e\niv = 404142434445464748494a4b4c4d4e4f5051525354555657\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4c616469657320616e642047656e746c656d656e206f662074686520636c617373206f66202739393a204966204920636f756c64206f6666657220796f75206f6e6c79206f6e652074697020666f7220746865206675747572652c2073756e73637265656e20776f756c642062652069742e\nresult = valid\ntag = c0875924c1c7987947deafd8780acf49\n\n# tcId = 2\naad = \nct = \niv = 6a5e0c4617e07091b605a4de2c02dde117de2ebd53b23497\nkey = ab1562faea9f47af3ae1c3d6d030e3af230255dff3df583ced6fbbcbf9d606a9\nmsg = \nresult = valid\ntag = e2697ea6877aba39d9555a00e14db041\n\n# tcId = 3\naad = 8780fb400f94c55d\nct = \niv = 3ec3f7c45e687d75a895bf5e71809e7cdac32158bb48ec0d\nkey = d821dce9b890ea37ae1c89e7cb6aeae9371b8179add0d08f5494718322ae0071\nmsg = \nresult = valid\ntag = 966c22d655b9e56326024f028cf887ad\n\n# tcId = 4\naad = \nct = 45\niv = 05188738844ab90a8b11beef38eaec3e100d8f4f85ae7a41\nkey = 303ccb2e1567c3d9f629a5c632dbc62a9a82c525674f67988b31bd1dee990538\nmsg = 62\nresult = valid\ntag = d15734f984d749fa3f0550a70c43dddf\n\n# tcId = 5\naad = 6384f4714ff18c18\nct = b0\niv = cd78f4533c94648feacd5aef0291b00b454ee3dcdb76dcc8\nkey = 697c197c9e0023c8eee42ddf08c12c46718a436561b0c66d998c81879f7cb74c\nmsg = e1\nresult = valid\ntag = e5e35f5332f91bdd2d28e59d68a0b141\n\n# tcId = 6\naad = \nct = 5e03\niv = b60ca1ab736deebe4d9da78bc7cbbab91be14a2f884240b7\nkey = c11213bcff39a88b0e3ecc47b23acf6c3014e4708d80dcca162da7377b316ab3\nmsg = 57f9\nresult = valid\ntag = eed21c2cd3f395538d677602964ed578\n\n# tcId = 7\naad = 322f82a87ee82997\nct = b56a\niv = 4fd76cbf27cb387502a706461564e5a5c14e027d40bc6eef\nkey = b0f51b8227013464943370e926b6ed1c9fb45b5994af829ff3a9f998b77d822c\nmsg = ab8c\nresult = valid\ntag = edcafa2c9032aff695e427fc2a344767\n\n# tcId = 8\naad = \nct = 31a461\niv = 737e3e7699f788c4136938c0f65310684eacbb5f96ecd98d\nkey = 17afb080753f2aa0af0a7f4821f6ab2709a6b2b5b9f2f262910e3b27b82c6c1c\nmsg = 2af96a\nresult = valid\ntag = 2b745098b154bb90903b0240c3bc95e9\n\n# tcId = 9\naad = 9d53316bd2aa3e3d\nct = d41c02\niv = 1436f36466fce5db337a73ec18e269e6e985d91035128183\nkey = b720aea3df85fb3fb00583eddbebc5c545bcdcb7f6f2a94c1087950e16d68278\nmsg = 4799c4\nresult = valid\ntag = 8faa889d7f189cd9473e19200ef03920\n\n# tcId = 10\naad = \nct = a3b405bb\niv = 7c39999d498286d974d266b2f027a26d7fbcd330869d9f93\nkey = d7704e505826124ab02935e7349a4e13391e6dc020fee95cd30654cdc5d5f393\nmsg = c44efab6\nresult = valid\ntag = c50e2ddb97df1ee58561c97a7b746c24\n\n# tcId = 11\naad = 8e0ac97934605052\nct = 9406a621\niv = eb4e36c637d1908db2c2ae9c72cfbae50655cb5f6504c4b6\nkey = c70ef9ee59259019960c918bfc91237ed6786c73f2b62427e4cbd4d8096a1f03\nmsg = 2738c9d0\nresult = valid\ntag = 916b78ee04b20b8cd90f00b81bb8091c\n\n# tcId = 12\naad = \nct = 2a01d08fe2\niv = 49875536d4946af49288f36684e25ff35998d50be6bcfcc2\nkey = 7fac2a879ffddf5e36e04e3edcb8aa6be18a8326b28f76b15623307badc1ece2\nmsg = 2c4c38f435\nresult = valid\ntag = 9cbe5f3e782f57a33a45b1f4aeeeea6e\n\n# tcId = 13\naad = 5cbdd482f3429a27\nct = fb5daf8c6e\niv = 88ccb58d435ea760f19e1fa6172139a071c0c5143959a56c\nkey = 48f1389d9222a80898ca26b5cfef5dc82dfc0af7cf66ea1e01bc5279e7414247\nmsg = 945a1fd040\nresult = valid\ntag = ec1682b61957493c2eb758d7a2b7a179\n\n# tcId = 14\naad = \nct = 856c300cfceb\niv = 89c9806ad153b805f1bf5b50738319011d5fc070bb551ee1\nkey = 737cdaa2ce1e4740e75af4aaf68c0296c1607bde871d2452e628f1456239c753\nmsg = fae858dd3150\nresult = valid\ntag = aaa9875ebd42a11d12cf0aca26021f4a\n\n# tcId = 15\naad = 71b29930f84a572d\nct = 6438fc8f8788\niv = 5cbdc34772b54fb4fba9eca1e2745e0e3704d9d7b5c78fb4\nkey = 9f7cd632bd5eb5f017b898590d645571ef56e521024eda36eff893a6ad04b935\nmsg = 53abb8943ada\nresult = valid\ntag = af05a4def2ad39a195a7b8c222050111\n\n# tcId = 16\naad = \nct = 843f1039531fe1\niv = a020b016d952a5948a3d226bb1b73efc39d46845f3bf0ca5\nkey = ecf60cd2af8c7155c0be848ecdaa5baddad6bd5f254a2d98f47bef83999f60ee\nmsg = ea30907da57d78\nresult = valid\ntag = efd99acdab540690ec91a7ad5697cb33\n\n# tcId = 17\naad = 0c87cc97c49e166a\nct = f99f3fb49ec920\niv = b1f05bb66d29bcddf7412f6a556ff7540aac452457dd69e6\nkey = a9376583c47176728d7b2ed1039f0b12b2c7a97563937f7fe976ce4548f7cb00\nmsg = 4a3d9926dc9757\nresult = valid\ntag = 91c3356ee6601ae7073673d2ef30293b\n\n# tcId = 18\naad = \nct = 5b596bab0890286e\niv = f4f3484cacdce37cf5134a12f57903096acd3553607eb682\nkey = bf9ae8ceceb8d3001da7652c4cec02adda8696294a4ab542b41b5ba86c096a75\nmsg = 6eb5e11b358c0ab1\nresult = valid\ntag = d4474d9520f7178e9811f624209721ea\n\n# tcId = 19\naad = 06947c3afa797e99\nct = 80c8e9ac2cec97ce\niv = cc4781134455e89c836f7433bd0426776f945d82f6358276\nkey = d447796ed4ceb2e43942700e7759e335f67afa8653748db95f924c94488195db\nmsg = 77c46ada19c81849\nresult = valid\ntag = 9b62dcc8076098affcb6e7995aaa99a6\n\n# tcId = 20\naad = \nct = 37d696264f781338c9\niv = 200a30270bc911dd3b8a8ea2a6e6ce75be9cfb0f5431db3d\nkey = 08eb57d7bc113f7fbdda1b32237cdd06cccd52ef4a89a831c5e0564370c885ad\nmsg = 704df23a31893799ee\nresult = valid\ntag = 5fddaf74438159acc3c5667b5e84af13\n\n# tcId = 21\naad = 00fc4f61d9777504\nct = a55cbb308f81e449e9\niv = a613e0b17fafb47c79614d39959b986ba2c97b0215676d41\nkey = 9f093b6bb75f1609ab1e00a4bf4667961d885f01deb6520c5bb16ec21e033766\nmsg = 472578ece9fe828dc6\nresult = valid\ntag = 8174bd595da1be72cc226e74c46a4af5\n\n# tcId = 22\naad = \nct = 8bd51b64fcd244f0b3aa\niv = 21b40036745f64b2aab3e89665cf4dab2b690d88721fe9a3\nkey = e421bb3269130c731d1947e7b5d233c11d195ceed1d08634743db9c252bfefa5\nmsg = 1155c7f0ee3e1faa641e\nresult = valid\ntag = dbdd1558934b83ae4393ade73e9edadb\n\n# tcId = 23\naad = e7c9d1dda90b699e\nct = e5aad5c055dc6df73cf0\niv = 33dfa71a0cb2aca008e4c8e8a72dbda4c407bbadd5d7e1a5\nkey = 8a275c90eb8688c5d9e82b74331cf104a2c8757d6257079b1d8035bb40d6a8d9\nmsg = 3c2da491f244acfbd1dc\nresult = valid\ntag = 96fc30292cc8381c345d5f2964ba5626\n\n# tcId = 24\naad = \nct = 2a41cc14a6a65bbb153758\niv = 5a44801d2baabfe8cbee6da52bb51b5297856065fbf33944\nkey = 2d97a35e4b6617e5f4a0f50dcda7622f321cad936a246d9beada9d75e142ef3d\nmsg = b94df0d444dac848ffcad4\nresult = valid\ntag = 1044cd75f2e61cbecbf3a7a77c13ef01\n\n# tcId = 25\naad = d78dcb5431ef5669\nct = 5b3193405830b6840a4474\niv = 07590877a1e1df3a78fe4d04dd64b6cb79f1df45de17685b\nkey = 70d11ca92903865c6a6d8ba497f5a2d65f23b72198d7fc7fdaeda6c2632f7e46\nmsg = f61bb0dd66e5905f1a7ea1\nresult = valid\ntag = 4b10bef8e8a3c2e6ae87fb8fb2a8bdd5\n\n# tcId = 26\naad = \nct = 528dfb79ea182945f13bafb7\niv = 94f86b0fd8a6ed90d3780eca23a82f4387da82b0894ae317\nkey = 05c7317f07a0e89ce1b5ac41df8064faa9fd569ee1c357cd01a2872076477ac5\nmsg = b63e50c9bcd01406b6f78f86\nresult = valid\ntag = 4fc22f4491449bb4ffe6a1eb266e2a91\n\n# tcId = 27\naad = a67a57310055b193\nct = 2345bfc502f9c62d64ad87f9\niv = 829cb09e40c2cc5f7648adc177e56ef53a58bfa16a859338\nkey = 924aafdb5b8a206b3e49aefe8944918cdcc8ccb5bb4b8c4ee81b847aa6fa52a0\nmsg = 68576b935acaab8b33ab62e3\nresult = valid\ntag = 6736f095a28b887238f80dc562eaa25c\n\n# tcId = 28\naad = \nct = d1f725ace69f7899ef51c11dd3\niv = 016dac89c624a9d425ae377132421c37c4486895bef270f0\nkey = 332b7ec9bf4a983eb02af7efee8ffaf5627b66f29e3e4728f50894fe176788d8\nmsg = 8289397a58921bb3201b29c505\nresult = valid\ntag = 0d2858cc30497107a035929fdf2eb6af\n\n# tcId = 29\naad = 4dc711c827a6f626\nct = 6c0e9d31b8e45591726f4cfc63\niv = e8252b018f9e0c3fbd4a6ad0d06346302b8ed7dcb206c3ad\nkey = b75fd9dd7ecca4f3eab36c36a176530dd3ffc825c202613740311d11cd501804\nmsg = 9800f8b835c4ff490ebd764914\nresult = valid\ntag = 2ce700f1f3dc7d3f60607058ac3b817e\n\n# tcId = 30\naad = \nct = 23a49dbe4b699d481621d9fc2db6\niv = e698d39b3cec2634dbe035a55b8fce3b0041aabe4156f713\nkey = 2bddfb332f74ac31fcf91d652c7b41fbcb26a10f2792ecf8075478e645042f87\nmsg = 813974b924c7618c63070d0247f0\nresult = valid\ntag = ef2cfb8423ae6f9faaec81025e6e274b\n\n# tcId = 31\naad = 0b9df4ffd1c9ccbe\nct = 0596f5709407a62fffce84240346\niv = d025b0", + "188edc9c40a8d6fc807cead97749016c9016d62ea5\nkey = ea029c829c13a580b66aca21133a16933235c11c42905a640104a2ae9bb5cf82\nmsg = a67e672df18cfbe125b212d63ec8\nresult = valid\ntag = 893772def69053b0aaf3bf1c21144ebf\n\n# tcId = 32\naad = \nct = c5aa0caf82b963f1e9b84a789a77d3\niv = 9ce202557c11a57cb14e7e4bd7986f1cf6232196672d25ea\nkey = 1c838d9f68e687fbdddc6dff7f2e44b277bfeb316ae5d11b3e935889b48539d8\nmsg = 37905d98be9839e02923d119a88d56\nresult = valid\ntag = 59c3e2e43cc098ed413ece9d9a6fd47a\n\n# tcId = 33\naad = a2e44e165e7ca5f7\nct = f91d01453f568774115f75b5dad642\niv = ffdca5c51a0852ab18dd484af6664b63ab4097d303450837\nkey = 51a99f0646767fbc01d7736df0340191acfbb5ae0288ed6fff2d34f0ea31470f\nmsg = 93553954f0be4e24185601ce5c3c34\nresult = valid\ntag = 8fc36af6ae5ee3e05b38ed43598bbfcd\n\n# tcId = 34\naad = \nct = 732715c60018fb0ed55c14c1fa9a5273\niv = 25dc279923c1bcdaa7a36e7b884b51f62343abad71986037\nkey = 6a1f808358461e75072a054e2fc4e4c3e7f882c57920dda3278d0c860ca704e3\nmsg = f242209c67698ea32c2152f8785b7d82\nresult = valid\ntag = afe3c4f050bf001e1dfcb2313dd8edd2\n\n# tcId = 35\naad = 8981c7260d514ab6\nct = a7eb11bfaa0d1c2ce457598049399575\niv = c02c8c595064ac303b1be5df6ab43048856e97ae9962fb8f\nkey = 7fb18b56f3f5122585754a3b6c6a4e523036e66793db569c3e8e28032e916eb6\nmsg = 6e8c0bb3361908f5b33e059408651ae3\nresult = valid\ntag = 485a94f61aa5f47a3036e85a57effd2f\n\n# tcId = 36\naad = \nct = 0fd7386b41396e0558495c45cdba029062\niv = 9a61cf35aecbd40a65b35a64b516896f3de7f977b5c9901d\nkey = 3b11469dc670f5dfbe0aad7d15ee4862c92cb07842e5dcc48fa8e5fc817f1749\nmsg = 540731e4ba3e4e2fd623a1a13233736ee7\nresult = valid\ntag = 29f601a11f6a1072342c60b631de6085\n\n# tcId = 37\naad = 23230be73ba2a6fb\nct = 86d0fd1a325d501fe9efe83d3a3f62e346\niv = 6570889af7acab7f555337bdce05499e8eb0d8d3d1a77660\nkey = e6d9fc8a9e3fa6ecadd9faffbb6ff387aa96502e60adadab029a9146ee39de28\nmsg = deec95974eeef6e2b99739bed2f4a74771\nresult = valid\ntag = 1ed9a79616c787a8de2ff5cdac6af0c9\n\n# tcId = 38\naad = \nct = daea40da316b8e78254a737c57063c4ad8b7\niv = f3d84207ab5574e4bc74ae61b17ccaccc7c46eb3471e0e53\nkey = cbaa654cd4ad70ae96d3412680e60522807e9b887ec6dbfcd6e71e917e29ce62\nmsg = f55aaf5a55432c20fb782c552e5ae096eb23\nresult = valid\ntag = e13ff7a7e2c85b1abb5350134dfa7f9b\n\n# tcId = 39\naad = b6bea5c60f288109\nct = eef62d53545698255648a483708c9cc93937\niv = de1e034363b0daec9828159e7996faff33a5f63eb552eb5f\nkey = 5b51ea4943ce173baa53f84a6ef59cb1e25b794768508b8dd8dcbfbc1744c18a\nmsg = 953939dd7601f17071b2bf776e4b1ed629ce\nresult = valid\ntag = 182529b1d07dbcb4bd89b3c5e4c8fac9\n\n# tcId = 40\naad = \nct = 03dfbb3407a55ab0dbc451d0289de44acb5f33\niv = 74533cbe3ff9ec5a66604c88f5dae4d7efe4f604111f79fc\nkey = c5d3917ffb42b0508296cb245d468b04bbaa2c8c8c32e845415a911ea85f95f1\nmsg = 0afab6dbab51f929332d743ccfbb9f34877bc9\nresult = valid\ntag = a050def2e06a9ed3d10be180bafa636d\n\n# tcId = 41\naad = 880ac1004984fb3e\nct = 95a9bd7bf7e9836e5f8a75393c70da0d9b1d97\niv = 562f3b788783bbb72e465c9d04eb555f366c66de32356e7b\nkey = 77cbd62759966c03b4487ce7cb3fca652c30198cdc0de5d447256e979e041c87\nmsg = 0e677082f7dd9c56bd365310c15a18de78df6d\nresult = valid\ntag = f028003066f8902c5d74ca6bc526e346\n\n# tcId = 42\naad = \nct = 4ad85a75f1a975bbf3ee5302b71949036e3a2198\niv = 5fb9a00843c4b192bf6c3bc29451c237f30a607d3c637b85\nkey = 40e231268005ff28c36bd00167ea39131d262f3a591b0d1508c11b00ed04a0b6\nmsg = d34b950a1c4f2ae5c94a1fddd6574c5d9c0ab18f\nresult = valid\ntag = b82c05b09328949aa70bb537e871cd70\n\n# tcId = 43\naad = 043cd9069dbd8cb5\nct = dfca9d845c21093f43348a4f6e72e324e9673129\niv = 7ade1bc01148ac071bfbe9870fe2023a7769b92312f45e0a\nkey = d66e92c86712132b1e3f5ba3a4cd006b9de1fa444246d99ef02e5b190a73089d\nmsg = 1cf9f2a93cb056fa4222c5850872d9989bc8c185\nresult = valid\ntag = 9defc3de90d493be2a1945d11c569095\n\n# tcId = 44\naad = \nct = 74634f111539fac80bb29d76ba656e5af90fd37f8e\niv = 45ccb4a19073c79a4ac1e052d4664d0dd1c730a6a2e87fe8\nkey = 841404f7e07cdebeb48efd25a75444b6de170995cd460e38ff5930dc9cf5eba2\nmsg = 5d583f68421d00cd8d95896a091b9bb10b744c61c4\nresult = valid\ntag = c04ce25d27416ae5f181238acf9508bc\n\n# tcId = 45\naad = 91b46ee1f7a9361b\nct = 0c1afa5419abb32e479b181a6e51cd99eb041bc37d\niv = 89248df60acfa757945d12647a14cc5bc6508bb2b9e4999c\nkey = 77a812cdbce2b7327dbbaecf6f81340b0ac97589676939d1ff0e69c3373326a3\nmsg = 2573f8f0276ce3b2b38fb727575f376a2eeb305758\nresult = valid\ntag = 6c0b51ea2fc63841893216b03eb47be0\n\n# tcId = 46\naad = \nct = 59d9c3f18cbc59a3c04cdc6904cb860aae69a5485147\niv = ec272b052c33c84a611512a483c3fcec40501240eb7a42ee\nkey = f2f9bdba59206e8c31a3338213d6a46a40aee237f631906aff076fe2d29d3b85\nmsg = 408c4cac91b4bd3ce25c8971b1ed8adb20ed667f8393\nresult = valid\ntag = 63e55e220873e295a5b86543334b1715\n\n# tcId = 47\naad = 1bc37fc6729b401d\nct = d5a1f87dae98ab385d5d34626c295cca0ed6931635f4\niv = a131b4b0582be36dcce56beb036ec4fc31147efed7ff4718\nkey = d9aa0213bfac5ee89f9ef2c6f616d8f71c3725dafe7926504e18b141192c33b0\nmsg = 081280932efbce0a5500d76d41c7dd2ddbc3311dc0cd\nresult = valid\ntag = 25f2fa45c86c4cb0f02f99050e9d5ab7\n\n# tcId = 48\naad = \nct = 93034cdc9298d0086b8e8bbf3aea637484454015cf544d\niv = df72b7fe00eb070276ba1b0de6b17a6100fe0d660bf3c6c7\nkey = d7b0b278c5ede48da2db2f6ec6f8b23282d3c940bd1eb59f7102bf69c683298d\nmsg = 0f44c184d297c0a66467d54ac982f922b119d5b4c8b238\nresult = valid\ntag = b1e1dcf03663a995c6c14991b5558159\n\n# tcId = 49\naad = 04e0e991fb5a465e\nct = 83a8bbe26ad18129459f66f6dc771c653a3dbb88a00b11\niv = 0378f12d4891c68477d90f16f2ff59287c81922b73cec608\nkey = bd5040047cd7bd0bd1ca22164058a2901feb383c1ccba5c71c853f186d4e2b9e\nmsg = 29b7080f92c860ca4dd501f18b041c5cbc5c131783a720\nresult = valid\ntag = 791971c0f5ba2c8b7635924267c68f32\n\n# tcId = 50\naad = \nct = 1a0bc208b17fb629200e805da495db70c599ecb3c3b9cc94\niv = c9f5d4dfd5dd2276d68b25c6178d9ef2f38756df4be9d4b3\nkey = 3b96dbe28ee07208cdf703f1488f478134147363da1502249e025e0efe5cb663\nmsg = 8f37fd7e3e2f6563a9883d4adb92b5c37242a56b73a6fb7e\nresult = valid\ntag = 08b9477bc98543019ddaa7ae380f83dd\n\n# tcId = 51\naad = e1b2f309ce5fabe8\nct = e9dd13d48dd7258682311bfec967e1a1ebc562855f224f41\niv = 90b932e3464c8b66d3d2fec2bc9097289f147e05f18a9867\nkey = 53fc679ebe23b70714ab4ce6c8b0de5df656dca27177512654da31f6848dbe6b\nmsg = 8b0b4038c0eebea97fa1f93b7c2f3576898e7cdc9fd702d0\nresult = valid\ntag = d9038207dbfc82a9a9d507fe254d57c2\n\n# tcId = 52\naad = \nct = 666f807a6e5d0253fe1967d45efea42cf1f421789b7f48e0dc\niv = d758776af8d089ef14a075ddf683e6669ed8109fe5681833\nkey = 275ac60ffa734bf86601c951d0bd263b9651181c32f41fce90d59cb8d59da081\nmsg = 1fa3b565515a429f78fb36e93e048425ffb64bc9e9e68336b3\nresult = valid\ntag = 5d423636988dd257e5cbd40ee28ae94e\n\n# tcId = 53\naad = bbcbfa1779f4122c\nct = 369a80f75ad28fd05cb3c944e0a8c8b37ce65bbd1f6d4b355a\niv = 9628e46f25d08b206371449e7321d6bf5d811629e01ef32b\nkey = ec4d4b14860a36fe8afb2861c1376db8004cc2d37eb1ebb609343daf24bc39fb\nmsg = 201ec6c1d0675e818cb7a4e583ea1aa1afde1bbda1f0f549e1\nresult = valid\ntag = 3ca5005eda0b99d6566ac841340ad23a\n\n# tcId = 54\naad = \nct = b6faccf43dabd8965cb231fe96a2bdf2cb51e0b9afb6445c21eb\niv = ec3dae28ec71ceba5b97a933d30b9fb98a40d4c92e6f54ef\nkey = 53f9c2c335c1c5cde744e890f6bd291e4484925aaa036f1e74f0144603322648\nmsg = 00f4f6a8c09ecbff3e6e825ca676a5cb8373d4915ecaf5d317a1\nresult = valid\ntag = ee91b39d01a114f80a7c5e7e1a0b2868\n\n# tcId = 55\naad = a6d7d9034512781c\nct = c97a4ba644788bfdeeb0a5de228948902a57359879c82cf8ead9\niv = a7f4c26140ba7d8a884de794fb23a50c6647627fa85ef9f7\nkey = 9bb8bc991f01fb26df610032e1bf6ed0e2652629a6726aec9c23df4fefbdb594\nmsg = ebcb0777bd1c3385376270e543521e11f4bac00d0f9c0192581e\nresult = valid\ntag = bf51aa205497db895f008d828040150f\n\n# tcId = 56\naad = \nct = 28cf032caf586255ee3f3f70492d33458a7b42473b8e354d983dfd\niv = 7e4c8d0e24ab24f500053964774c92f808bafc42be0f6a34\nkey = 69b8b0846c47226dbb278f83082b75476e89a77444bfa06de69395f16c6eed01\nmsg = 3b406d4c07f2ef751ac701fe944b2392bd59fb0ee4b32e6cbf8958\nresult = valid\ntag = 58896a5d7618837701ed8dda9b18d82c\n\n# tcId = 57\naad = f5fa84749ff438f4\nct = be95d62d6acb3e5344f6b4ddbddfb45fa479c2d1577a42967dc0ad\niv = 26b2165f4b22415df4c052564b87d62c4c2c01df47c82cd8\nkey = aa6d2da8fe7ce3228f15e09ae8c7f3d1b0220679a3e0e13e7523060b5b8d09b6\nmsg = 92763e759a5c0b8c4d40d6398fa9e257900ff4b1f31000dbd9a15e\nresult = valid\ntag = 61ac094fefb1237c9d44ab7f4bbbf5f9\n\n# tcId = 58\naad = \nct = 2248e5332ed42c42fcb6a029e3d8f9f96cbc32d34fa5f302fabf1bf3\niv ", + "= b595d9204461e311915cc17df51a3bbfa55c3a98aafbbaee\nkey = 31b9e848dfd3dd1ec05410975190109f550ee6e5235f040ce6faf6c380fba49d\nmsg = 95272cdea7a15889059b4e1de058c869e1776384159539470b542ed8\nresult = valid\ntag = b777e88479292944c5d6ace1ffd24ac2\n\n# tcId = 59\naad = 96fc6284d7eeb53c\nct = b10f9fbd87f51ebeae1942b9afb59749987b1575babd8008b281a662\niv = bc101b6d01bda7e13d402aa0023f0507ab02aa58758cb6aa\nkey = da132c34b2291a15777d3ebda2ed0078028c215038c2410d822578dcc869ea8d\nmsg = 331f3d53965bfee2edb463c5b21751eb445289287fada2aedae99258\nresult = valid\ntag = 54ad4e664b86333223fca6869c501dc2\n\n# tcId = 60\naad = \nct = ffb587ec97c7d11ca75629f066881f6b2c392fa71b73fc4cb4559a645d\niv = 4adcd5ecf1506fe7a38adf5634b454bf90278c9ebffbac87\nkey = d7e5e9c008af44266c876fa6b02a453854703c1a4fd221573c382c8d512a982d\nmsg = f8b3ae84d6502d353d57c970da5f9bc53de7a5c6262ba7a7b2220d0ee1\nresult = valid\ntag = ec9db510c3bb11831c20684d82e45053\n\n# tcId = 61\naad = cec8c976f2e25979\nct = 5d3ce03a6f43eab32a91b6eb87666af14e5e28d98d23c49c56557497d5\niv = 055776b422138960f6631e3c58f3ba0688082747de4ae5f6\nkey = 1e72be02d7ebf3c78b400efd005f5b6b983ede08443541475808d43e6d30eab8\nmsg = f2654733ca29af4bb29347f7a6508ed87913e0faa885505928ac1ee86e\nresult = valid\ntag = b324b10851d159bd3822705a9d638038\n\n# tcId = 62\naad = \nct = aa6edcb0f49535b2d2fa2e5f0b29343ba0c9c1667c401c78a3a8b8a61ad2\niv = cb52ad5674aff0762ef49fb3bed4722dcef2bcbc4f3c316a\nkey = 98362eff7af1e38d3d77d4a013bb6bf3fb3690568bf897651c578b21572fd37e\nmsg = a40610eaf3a823c06936293473ca36a2952d0eb5e5bbc18be123a07f8bc8\nresult = valid\ntag = 98d5e90a5a64e411c98d7c9e91557f5c\n\n# tcId = 63\naad = f5203e702570c4b1\nct = 3d1add00e51e60b16825272790ff47c0d533bfe65484d105ee7a69896c48\niv = f2f09c3469e2cf73b07620e461d7b1ad999c5f7d54867d21\nkey = 8f0e3dc43b86943ed4b0361fa5aa49999f24bc1e102bf3afb439e44f9ce43504\nmsg = dba4ed2a7938826c43548f6976d8f0ec1838fe71cc535b2a5d56e4d3d5ca\nresult = valid\ntag = a018e2629d5656920f1202e65624b056\n\n# tcId = 64\naad = \nct = 1ca6389e16c2f43e9e89447991d1472c8283a8dd94fdf61c4f5aee746cb537\niv = 17d6ff40ad135ac9df55fa5c0eaf03e5d91cdac63c684e8e\nkey = 16a376d68b3105262a07558e5e448ecdcbe075770cf60e7b7db1420f4fa4e36d\nmsg = bdb5500794edd38a398f18f83de03e16f135ea960d3b8c6578abc541aa1d03\nresult = valid\ntag = 33107bbbc06e563abf48979dbc7c66b6\n\n# tcId = 65\naad = 3fe9ad465d0aa3fa\nct = e8ae311bf2e80d696c543cd272d3e50dc968a0ab47259c461e0dec35f77530\niv = c306b69443bfdbedb5ce9f9bb6088132a88e8a175d3bd769\nkey = 8e1fb8cc57ca60ae091d27e292923272439c37f2dede36b2c2aaee96439d5a31\nmsg = 1d884a83a5f9b00b8951ef81778bd7c991cdc911127eee9dfeff82c48ca937\nresult = valid\ntag = 906de4c31eb2ce283eeb95388b0d83ce\n\n# tcId = 66\naad = \nct = d34c1778d105d0e80d429c86b879d52835cf8aebc5a04a9084cff1f9646e040a\niv = 0140f2791eb81fd4b69edf2d9ba4b2d62eab1d296741583f\nkey = 2ed460a56867ee1a2877a8f3d2d98fb886cfcc8913e31c3d08f42374ba37ebb1\nmsg = 318cc4bf151c3baaee5a783ec091ab618f2ecacf38c962ba9c32c323696cc94c\nresult = valid\ntag = ac8a68605a0567c559442342b764b964\n\n# tcId = 67\naad = 1264b91e71865033\nct = cc24cfa62063d11b2c31cf25ceb7308ca376feb1dd6bc102ed7db8ed46b06759\niv = 97438f178419732feaade58a5d5c21bed14d04c4add50465\nkey = b43328e39cc6f6e94ea601fbebadb4b41cfe6a52c3a4d5eeabaa9853db45ccb1\nmsg = 63cb5c20c9edf36757b795921437d3fd228af1fcdbb329505cbdde12afaf9f84\nresult = valid\ntag = dda7fc160e23f57e8392809f1e3b5ee8\n\n# tcId = 68\naad = \nct = 82be237be008228a8a9ff1a506d5b893cf9dcaa1dd33c0523b13582bcade4629ef\niv = daca1f50a4c0d9b77151c75f2e58ce404847d0aab493086d\nkey = 92b9b40c00480a50ee16a86349a46e37b02d5ba74d2e5a67eaf333e467fa0152\nmsg = c857f3c55da61d72563912a2534e01b6426ba41bf417c15b725086d31a1645c94d\nresult = valid\ntag = 723437af0b684b6e04024352206cbaf9\n\n# tcId = 69\naad = aaefd84240ade0ed\nct = ff98ead89d45d70f09b9e3f31f4ff56ae8b8cad1517294a8af3c962bad24a92efe\niv = ffcaddf85da09293c4352c81cbb5dd82e30b0f9e7623e92a\nkey = 5c271bac09a0454c83d158bcc9ec331ca92e62726903b7bb5799adff47d671ee\nmsg = 7c716a5b6cf0b8b0e1ff825ff9324bb5715b0d40af5338d5337f66de681932d423\nresult = valid\ntag = 4b8a06a1613737d0f8e3fb88184b23e4\n\n# tcId = 70\naad = \nct = d0e84c6450f348d887c49c4b44ac38721d4a1742e72095c330249c7348bade49dc776d449272e0f3dd5422c2a6ab18\niv = 64cc9f3cc334abce364cec9efe8ad54117ff0bbb03e3e8b9\nkey = c28403cce44ff256d055c2cbc84bb2d9773346e0d51bd38e80cebd861b03fa30\nmsg = f9e8f60b70044b03a189c26f1c8fd246239bc23f8adf0f88516f88d73d11c9290882bb6ad49d956b10c9f848180065\nresult = valid\ntag = 28c72dea441cffac2f7811286f8ea5dd\n\n# tcId = 71\naad = 7185f9cbf59d2095\nct = 4093dcbca1555835b78140fe7a3798a77bd97a01b0a7c1f7157fedb27c40d9d16cc3e935f649faf0dcf431636cd539\niv = 7b97c8b1c06b69b99220042ab2ac65b88d8b4294b76b4bd1\nkey = 7c72c748ea0010c90e1dfbde8e91edf6ead2474148cf234e0559dcd881cc3b2b\nmsg = 9a1f6c42a8a0f3032e8dfa36e0f5750479276866c920672a0454c41bfae5dd74fbf0fbcc8e6fbf4843f20d06440837\nresult = valid\ntag = c7c9133ff17a296c987d72885182874d\n\n# tcId = 72\naad = \nct = 764ab84b844b57b0564f63ec70ad12d81dc3a0e65233a9bf06d6b2c653787eb991bc37a885a04509690ab49fd8dedcabe3c346df9036d735de3bf73ab03f5ba7\niv = 8052acef0423bb07a6fbaf8f63039f1eaa2cdefc61b31b18\nkey = 7948151a374363d07dfb12869b7f90502f2de8117d3d72d5133b9b3e3dc78ef7\nmsg = 76e03034be5514561e99c32ab58901eabac0f67b40c366202ac8a08ee3f68c3b283c1adeefee6f5544330d4771e5148c5231ec27b3f3f9d81a3dca52e115e1b5\nresult = valid\ntag = 075248c91d1f246aebaa96c86627d18e\n\n# tcId = 73\naad = dc514d540551b9dc\nct = de03f775aee744e4148e008dfefa7156ce2a23a613d4d9cae99c3164f54a173f895a9466ef046c020179383d70c813e765f207860c79dcf627f17663ea76af20\niv = f357e3b3d3d5e4187e34da08afd4817635adde91b676da1d\nkey = 50a1b2b155150936609d45596e9175f3271be548574405f827593fc5a0578c3a\nmsg = e854b8531ace95c975a5b1497f3dec6d80b29ca673690411abe277bbfd29fa00133ee17570805c1c605452d648581be8db878e782f217b481b1268591593efc0\nresult = valid\ntag = b473a9f1d5312d556bd0b62d84bb0803\n\n# tcId = 74\naad = \nct = 98fc26e0cfd5a75b5bcd9e046e89c6e9dc5aaefdd5e8ea7e4d286dcdaca0fe6ae744d244678f91c9ccf6e294bd5586be671645ae87d3435836a5ab383b253602c25a6cc04353c076725b4fc4aff9b4dc9bd194fe92ef0a920f15d6b8fea9f19065\niv = 6d609141e3e4331f55344c1f5e6fad589b39ec1d12b9fbf0\nkey = 92570a01d2b6123b67055400c8a9b0cb948e32c9b8520758cd1abd73f83c8507\nmsg = e86fc97c194d37a5e1345d139fe82dd669b6350c435cb446fcbdcc90fe5859bb2ef1f69d930e29dc343b57dfd7ff3c382652939bbd1c978a790ed1dbe5ad1fcbe157925ab4335c649c2f80c19d541e9e7eb4feb64e596bc6d7df8aa3476e0a9f7e\nresult = valid\ntag = 03bb49593f116a30a8390f96380a9888\n\n# tcId = 75\naad = e40cb55a18f2885f\nct = 7042beb6e4f08e583752f23048e2f3433e0821423d72a7e531b86684b57b32c5bdcc11164db0b8516d7b463cf7f8b0e3ed8a7d584345934ef184e4f8fee31e126601f08558c725aaa23d38c8017b07adbf1e742128795b03458b581b8cd9100bd9\niv = 1a80def5bd8be8eef5f6643a5c1aed9947c3ee5ca0cb56df\nkey = 4a3bc8f5c4aab87c20772404a291c1d6d68eb12e5f3c82e582564d6300fc28c9\nmsg = 2b0815f7eb0a83b9617e4f0906e9179b600b0c822bfb56c5012103aecb4550a57099dcebae00b6c06f3537fb1550c78b249d00a4007d23b882cb5511fdd53482575554028e9db437b8224368ead730d157a64d5571c706cbd9c0d2b10b3b14c3e2\nresult = valid\ntag = b5e3df83f18cbc0bd99427b9a172bf1b\n\n# tcId = 76\naad = \nct = cf2e17f9d8c6562de6d3e8c8bc30ba2904cf5c3616d15ea77667186ee45f444ea264327dcf210b6735a39005b62529d557480ed0462e49d982cf5962e5ee6d8ccc388d5de102e676a55426ce5a873d2e84a2d841e7b30c7ab19035274886b3c5c979d065bdde9b0b9e466b22559e30a5a5abc4817312e15d2c0dcdd99d867361\niv = 3507ec4cd1a6c2eaf081ec32888e08839481f35b3b0f7872\nkey = 2e89767b15f18b855d04c0b6b47c1f8facc9a058e2194ad2ad901ef940ab54cb\nmsg = eff2e375228756f995b8ab52213177c4b7ca92bc81114f5c23aa64dd7eaff7b86ee2e674984c4b65bf4c5ff402e23902c005e05de25b3c6e8a64323aeafe04ec6cd1f6c851be39e55208d76476d3ed7100042eccb72cf1349ea101253b7a5a4a8677c1d6df5a54e9c24558e2d68c3f50acbd1ebbb4773884b0ff23d95a4ff60d\nresult = valid\ntag = c844d555bb43a83b4aa735b2aa1d566a\n\n# tcId = 77\naad = e2f0d2f16704527e\nct = 4f0e805a2b3f2e1bfe3c06c83f5c77b9c4e562514a78f9f2cbf3206f68f686923656885878087d17da261666e798649d74841753525875f425e82a4795fdf8dfb629a8b1d2faa5594557d62f421f4e6a5dbb9f8336875f2fe2e2a4a1d0084358d9583e6b6662895a07c924c0a7cdba07be8a020e1b8ef3a0b5d007ec47a8e8cf\niv = 0a5914f29abb1cb48dc686159f09480370477f6069018e18\nkey = 6357cd94e2d9503288eaf3abf9604b050d4a483350a828029baaa9cae184f075\nmsg = bb266ddea2f88c2f0fea7f0cf4a1a3336334", + "4fb49672b821f76863a9edaee638d75140d21d848efc475d3814911c8bb34202c4e7ae0de1a57cea6f3af7180be454d7bc6fa5c02a999dc71eba7d5553828c963c1b7c559afa2e30e788ef2d0b479d0da1f24fcda5548773e77abc716f498b08bfe69b1a7e4b6fef27ccc72686d4\nresult = valid\ntag = f130ad7a2b7dad5e8f8715eb5b93e45e\n\n# tcId = 78\naad = f5\nct = fe59e8bf4250dc02843f3be602a7aeaa\niv = 74ef0301cc545539723c78ea9e2d75b851ea8641df1685d5\nkey = 57f37ad4992d336d13c3967c701e60c7842a55195687bbc1f680a33e78e0658a\nmsg = 58fea87518e42b504a9c53035081aabb\nresult = valid\ntag = 012c6e4f5017c78b96247763c8ff5f68\n\n# tcId = 79\naad = b93b\nct = 7b2f702cf01a0007f4bd949230197e78\niv = 4a75dc9936c891cf5385f84e2a6d484c612115b9ce053f86\nkey = aec0407a0cfa59096a489edc29e40cc67843ce71a95afc8deaa409a655aeba3d\nmsg = 8afe8b8b22ed249e21a44247345ede5f\nresult = valid\ntag = 56bddc4fdccf099f128b177b3cc73520\n\n# tcId = 80\naad = d0926a\nct = f95dda4c5457dae8daffdf0ba5439ba7\niv = 91752e5f97bdadb6a9811c2144e27f73baa9458b6c58c9a0\nkey = 9b0400ac1a917c7571430b78eca2c108e1824a078f21eb1995bfeae7fcc51f83\nmsg = 2b512160837e427a04c6bd9105cd2304\nresult = valid\ntag = 3e97e87d976efe3de7d84df933ac980d\n\n# tcId = 81\naad = 6cb8a59b\nct = 9d2527bc8df2e71d20864e7789ce2a84\niv = 95150d436a72c173e502ac22df904f26c0f4edffc29ca98b\nkey = 85b2f31409600b36ba8013f79b6aa84c9509546e218edb75c77d743a781c9bf4\nmsg = 44872f0602c76c1d4d36fd462cc886f0\nresult = valid\ntag = acd61c1b526988ec6105855ebdb7533a\n\n# tcId = 82\naad = 20976ec087\nct = 9d403b239c7497781bfb4468bd930cfe\niv = 383cd40e9aad35c35e3a46021b90acc87d51255be3443a7b\nkey = 76b087aa42ca8bb9a42133eb9279da0d0093b4e5028f4edd1c2183f81e6754b7\nmsg = 671e3615661511a8e668941126908c84\nresult = valid\ntag = 83dc6dfb3ae111ab05ac30116b89d65e\n\n# tcId = 83\naad = 03caf0a03be7\nct = 610417044213e2a64c1b9b2fd1839268\niv = da3fe15576474fe36bc3d2c42fe505617454c23aa1475e80\nkey = 335d796b0dff04636e39bbc408ad6aef0d423fc1772994e61409396c9c1ff1b2\nmsg = f3a55e4591e697a9f1aaac2eda219c59\nresult = valid\ntag = 444c11cdb783c3b432365ebe12378c9a\n\n# tcId = 84\naad = 16317d3050bf51\nct = 25a22c28b26f1712ba56b46e0103c444\niv = c991adee7c6e2bc5aeefd24c11be59a429b3198a3ea372cb\nkey = 0a059d6ed699ffed57c6734b67eed5bd62d508772e0d1edfb5793f805908b035\nmsg = b1ecd5c730695626454e8f89a598ad23\nresult = valid\ntag = ef27336fed160e6bbf257fb0e7770aa8\n\n# tcId = 85\naad = df2f4f832de7a1518e\nct = ceb42438dc40f7a0cc38ca0b9a48091f\niv = b755995c547fdf21a2398d1f4adc6476d1291b1723a331ee\nkey = b992dd885d0499a17268656665fde641be102d2fb642992d97e3107ee9aba20b\nmsg = 5fc0609d86c5bd4e5e9e335cb1954458\nresult = valid\ntag = 7c1045faf49b58415ccdd2a1e2bc4429\n\n# tcId = 86\naad = faa3abe6bc4eeb5316bf\nct = dbb22f3a39c46abe3cee3980c1df88bf\niv = dd62b11c6826d2c53a8be69860f359a703594efaa42411a6\nkey = 58fcfc12acbb234bf13d28b856693a0952245bc0c1d751c52bca708c7a196137\nmsg = 66cc8a0fad0f6b05f0422b53ce8fecb3\nresult = valid\ntag = 81da8bfd8ebbc1eca4870f8196156e3b\n\n# tcId = 87\naad = 9a227709205f1f740ed232\nct = 4905c8641a0ee3ea6687ed7452527903\niv = ca05d9a76be1149bcc4ef529b305854f7990b20aaffec384\nkey = 2765b4d865629fc232d37ca5e240a8532dc9a3e381daa7ca547ff5da5c417e41\nmsg = fe956a36f31adcc13ccd325f7a17f59c\nresult = valid\ntag = 7d574e549b5cd377992de204627de5fa\n\n# tcId = 88\naad = af191751f447cc49efff74f8\nct = 06218a47245edaa15a9f1162ec011d3b\niv = a37403e233f4fed7e00d9bf3a5407eae04fee3d667b65493\nkey = 430878f3ab311fb40d2c9b0f534a4043350f0ff495c80122355ec2b7557cb831\nmsg = 6e775f424e7d9d8e23cdbf14607d3a44\nresult = valid\ntag = 478423cbe48897ce756e3adbd9a1ee9a\n\n# tcId = 89\naad = 455fd94646f6edf9aef71275e0\nct = 27f9bbdc89a079abba54ddc01781f11a\niv = 1ed54a330d347fb9ffcc68cabe540f2ff300cc3ee2691255\nkey = a2c4d1d5ab1dc812200e18ccee9ef797195633d355a873c90f6d051041177cfd\nmsg = cfac1a30be69f203e6efda92a19682c1\nresult = valid\ntag = edce3ba94ea658694368d78878ad9227\n\n# tcId = 90\naad = d5736a239a1e598560a84a81a60b\nct = a712f0a4c9932e6413bf501508693a5c\niv = 6cf744267d87aa512f949e66579c074c6ac371d5228adff3\nkey = 89f5bf87986d39fdfa8debf5a9810d3cf186f277f5fdc3f849ac7dcce6381205\nmsg = 9775a1e1ca33d579075e0a80f2bf1184\nresult = valid\ntag = db8c77d539a6b41b6fc2d32ddd612ba3\n\n# tcId = 91\naad = c3036660fc872e55b0697104be59a2\nct = e2322c9638222677e4b6f7fa474accaa\niv = 7c76e9bd896c75245444f96fcfc419da23cf09b3be3610f8\nkey = 67af73796c9eba6ac7a847825cc56fac92595a8eb17ae2fece4a1f09c9d8c85f\nmsg = 3454b49cf7d10ec416770f76aa73bff7\nresult = valid\ntag = 82712972e906ea74f99dfb642c560db0\n\n# tcId = 92\naad = f15449e7c7810a11609f5da5e33b9085\nct = 7732ee206cd5734558c2f05f5bc1907b\niv = 367a95373b3f2bd4f2bfb03619368639fcc19eccdeccd04f\nkey = 73005bc9d00e9688afcb340ea7cf81113d49e33d628e13b89949920102b1a9c1\nmsg = c47c17dcd3efabfe2de42702f27a840f\nresult = valid\ntag = 4e32369f9ba08950b27b7952c3804fe8\n\n# tcId = 93\naad = 17bc7a713365234f08e703a652816245d6\nct = 8ed2c330b349dac3709bbc8ca2fd6d52\niv = 36213fcb5bff9b54db3c6af8c24a758b29b1143970b44168\nkey = 3a0c554dc2242950ec97b63a7f1de739ce18c247f4ce1f23b539b51feb82bec8\nmsg = c04a2ebfcc30967e691a9ef1c52bcf6b\nresult = valid\ntag = b6c38642002ac48847c715b317b26a86\n\n# tcId = 94\naad = 7f1e1f7fcb831cd7501e9608fda8ccb3c54f537ad601c033fdba7f7dc419\nct = a4fc8309e455d263bc6b4c95e6c79cb4\niv = bd605dba58a18d5a38fcab1f92f6cb406a276d8d0ca7fb30\nkey = 6419d685e6804488ad4f09870db55f2448b82d4715e1d5fefa00ca9e08f21bc8\nmsg = 676d9476348a31c6873016ab196852fe\nresult = valid\ntag = 9a439843444888d056b3e45a718a000d\n\n# tcId = 95\naad = bb044891ccae7f4f9493b8728293b772613c4ef2c088b3922f14466ea32a7a\nct = 1351d5642bfa9eaf78efd34733bc0b5c\niv = 505a1b8d68cc2f77a10ad67cdeea4393a2ea6db590f5be17\nkey = d92d949112061c11471efa77552daeda52b390efcac420c453c5b8499048983d\nmsg = 161dc03e36cee9f246fd3a45481eea46\nresult = valid\ntag = d666424d2d66969944f2b1a9dba68ebc\n\n# tcId = 96\naad = cf8c4a35d879e5051b1cff63ac64580ee80a8d80e9b6c90ff841fab3673aa573\nct = 7454d60539e1738ab6ff8609443a90f5\niv = 972f9e74b0d118734549fe0d237f0c6249c43674ceaa328d\nkey = 2390931b9c99b9ac7e56bbbb86e6794b36ec3175432f731bea2e3a12c83e559b\nmsg = 0a182ff667eeccab0f8054405879dc36\nresult = valid\ntag = dd67f6363f66d20541d0aa24008be6ba\n\n# tcId = 97\naad = c69f4dca85af6c39b5991f9386622f98acdb24f66b785cb3636a212ec13bed601b\nct = bb5efe5a45ea17d63eb75509452daf51\niv = 3654bf38ffe7d4dabab310657322af2da359fcaf79a81044\nkey = f563e70eefbe6cfd7a0b0d167a8b381fd14105ff4426fa326e9c2e4ca059a53e\nmsg = 5133dcb7ed3fa91add15224a4a9d21a9\nresult = valid\ntag = 31502fc74e063f0636bf9799f02c147a\n\n# tcId = 98\naad = 760cd62e1d1123fd7d49b670037adb6dae66e7c8a0ca95ffed67a5965a35ca21c0ad9aa069d4edd48b71d5c93077ad\nct = 5e8d9d12295525439d0a9fde1a585ca4\niv = f2f43b87fbb56938060cc9638d3d61ff2ebf26d037e4564e\nkey = 7c6410343a2938b9cf2d82419ee8c645fc9ed819b3b2ef876af0b1221ac4590a\nmsg = 998c2e5f2900a0ab445b443b14e343e2\nresult = valid\ntag = 5b7be3245ab2cd28d6b8a4b884e7547c\n\n# tcId = 99\naad = 00000000000000000000000000000000\nct = 0000000000000000000000000000000000000000000000000000000000000000\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a8f89adf230daab792c94dfebe766eda542d7c092d97ccb7501486fc6a3\nresult = valid\ntag = 52ca5edfb3c4fca83d5776154188a08d\n\n# tcId = 100\naad = 00000000000000000000000000000000\nct = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a8f89adf230daab792c94dfebe766eda542d7c092d97ccb7501486fc6a31ec9568c72a762296f76685b29a5f903cb0198722ad071bde29b48a62d367f3b\nresult = valid\ntag = a7c21e96322a7f8c453961640791f3e6\n\n# tcId = 101\naad = 00000000000000000000000000000000\nct = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a8f89adf230daab792c94dfebe766eda542d7c092d97ccb7501486fc6a31ec9568c72a762296f76685b29a5f903cb0198722ad071bde29b48a62d367f3b1e90919140f50187df7df42caa37287538c16d", + "481265de62bbf98c235d595c824575acd33c51e271f13844673cb5dafd249dbd394b866c34aecd42c57f2630e5\nresult = valid\ntag = 70b88b3bf88b8f11f7513545b8dbfa63\n\n# tcId = 102\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d757076520dcf255486d36b20141899125abd283f6d2683348afeb790395c\nresult = valid\ntag = c29cd2ef4874d93267c935cd9ffd34f1\n\n# tcId = 103\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d757076520dcf255486d36b20141899125abd283f6d2683348afeb790395ce136a9738d589dd6908997a4d65a06fc34fe678dd52f8e421d64b759d2c980c4\nresult = valid\ntag = 02add84dfa902f0d4a11d3bdc096417e\n\n# tcId = 104\naad = ffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d757076520dcf255486d36b20141899125abd283f6d2683348afeb790395ce136a9738d589dd6908997a4d65a06fc34fe678dd52f8e421d64b759d2c980c4e16f6e6ebf0afe7820820bd355c8d78ac73e92b7ed9a219d440673dca2a6a37dba8a532cc3ae1d8e0ec7bb98c34a2502db6242c6b47993cb5132bd3a80d9cf1a\nresult = valid\ntag = 82a067b3b3e51cd9d139a5222ea70258\n\n# tcId = 105\naad = 00000080000000800000008000000080\nct = 0000008000000080000000800000008000000080000000800000008000000080\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a0f89adf2b0daab79ac94dfeb6766eda5c2d7c092597ccb7581486fc623\nresult = valid\ntag = 2bd279a556e3dde6151e698e0496b3aa\n\n# tcId = 106\naad = 00000080000000800000008000000080\nct = 00000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a0f89adf2b0daab79ac94dfeb6766eda5c2d7c092597ccb7581486fc6231ec9560c72a762a96f7668db29a5f983cb0198f22ad0713de29b48262d367fbb\nresult = valid\ntag = dc37087d3aaa8b97e985152fa9f1ee04\n\n# tcId = 107\naad = 00000080000000800000008000000080\nct = 0000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080000000800000008000000080\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a0f89adf2b0daab79ac94dfeb6766eda5c2d7c092597ccb7581486fc6231ec9560c72a762a96f7668db29a5f983cb0198f22ad0713de29b48262d367fbb1e90911140f50107df7df4acaa3728f538c16dc81265dee2bbf98ca35d595c024575ac533c51e2f1f13844e73cb5da7d249dbdb94b866cb4aecd42457f263065\nresult = valid\ntag = 3b1dbe65bafcd37fdb15b34fafabc07f\n\n# tcId = 108\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d75f076520d4f255486536b20149899125a3d283f6da683348a7eb79039dc\nresult = valid\ntag = e994b729a655f8f48e024354dcef21d4\n\n# tcId = 109\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d75f076520d4f255486536b20149899125a3d283f6da683348a7eb79039dce136a9f38d589d5690899724d65a067c34fe670dd52f8ec21d64b7d9d2c98044\nresult = valid\ntag = cd37ef66f2102302a6c41ef31e364660\n\n# tcId = 110\naad = ffffff7fffffff7fffffff7fffffff7f\nct = ffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7f\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d75f076520d4f255486536b20149899125a3d283f6da683348a7eb79039dce136a9f38d589d5690899724d65a067c34fe670dd52f8ec21d64b7d9d2c98044e16f6eeebf0afef820820b5355c8d70ac73e9237ed9a211d4406735ca2a6a3fdba8a53acc3ae1d0e0ec7bb18c34a2582db624246b479934b5132bdba80d9cf9a\nresult = valid\ntag = b73b3589f174d86aed75271837d73c3c\n\n# tcId = 111\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1f1d7570f6520dcfa55486d3eb20141819125abda83f6d2603348afe3790395c\nresult = valid\ntag = fbf9b30e0b9c1240ee0528ba82e961a8\n\n# tcId = 112\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1f1d7570f6520dcfa55486d3eb20141819125abda83f6d2603348afe3790395c6136a9730d589dd6108997a4565a06fcb4fe678d552f8e429d64b75952c980c4\nresult = valid\ntag = 1ea55841efece2587f6f72c2a2d1e329\n\n# tcId = 113\naad = 7fffffff7fffffff7fffffff7fffffff\nct = 7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff7fffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1f1d7570f6520dcfa55486d3eb20141819125abda83f6d2603348afe3790395c6136a9730d589dd6108997a4565a06fcb4fe678d552f8e429d64b75952c980c4616f6e6e3f0afe78a0820bd3d5c8d78a473e92b76d9a219dc40673dc22a6a37d3a8a532c43ae1d8e8ec7bb98434a25025b6242c6347993cbd132bd3a00d9cf1a\nresult = valid\ntag = 5adef66e4501595bc742d55c126b1896\n\n# tcId = 114\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a8f76520dcfdaab792c6b20141866eda542283f6d267ccb7501b790395c\nresult = valid\ntag = 81682925f4f8a57392d2a9d4157f2c86\n\n# tcId = 115\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a8f76520dcfdaab792c6b20141866eda542283f6d267ccb7501b790395c1ec9568c8d589dd66f76685bd65a06fccb019872d52f8e42e29b48a6d2c980c4\nresult = valid\ntag = 077001742d67566612633a0b3f3f8c99\n\n# tcId = 116\naad = 00000000ffffffff00000000ffffffff\nct = 00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 60e28a8f76520dcfdaab792c6b20141866eda542283f6d267ccb7501b790395c1ec9568c8d589dd66f76685bd65a06fccb019872d52f8e42e29b48a6d2c980c41e909191bf0afe78df7df42c55c8d78a38c16d48ed9a219dbbf98c23a2a6a37d4575acd3c3a", + "e1d8ef1384467c34a2502249dbd39b47993cbaecd42c580d9cf1a\nresult = valid\ntag = 1c0e1d3c611eda884919789540fc27f1\n\n# tcId = 117\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d757089adf230255486d394dfebe799125abdd7c092d983348afe486fc6a3\nresult = valid\ntag = 93fe07aa08403068124e020ecb06a9f8\n\n# tcId = 118\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d757089adf230255486d394dfebe799125abdd7c092d983348afe486fc6a3e136a97372a76229908997a429a5f90334fe678d2ad071bd1d64b7592d367f3b\nresult = valid\ntag = a2fff56fff5358337de7f91689e8a8cb\n\n# tcId = 119\naad = ffffffff00000000ffffffff00000000\nct = ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9f1d757089adf230255486d394dfebe799125abdd7c092d983348afe486fc6a3e136a97372a76229908997a429a5f90334fe678d2ad071bd1d64b7592d367f3be16f6e6e40f5018720820bd3aa372875c73e92b71265de62440673dc5d595c82ba8a532c3c51e2710ec7bb983cb5dafddb6242c64b866c345132bd3a7f2630e5\nresult = valid\ntag = db4ad6b24a53d2617f7262d2a586d5ca\n\n# tcId = 120\n# Flipped bit 0 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0418b3e73e52c3be2eaba76807b784e1\n\n# tcId = 121\n# Flipped bit 1 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0718b3e73e52c3be2eaba76807b784e1\n\n# tcId = 122\n# Flipped bit 7 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 8518b3e73e52c3be2eaba76807b784e1\n\n# tcId = 123\n# Flipped bit 8 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0519b3e73e52c3be2eaba76807b784e1\n\n# tcId = 124\n# Flipped bit 31 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3673e52c3be2eaba76807b784e1\n\n# tcId = 125\n# Flipped bit 32 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73f52c3be2eaba76807b784e1\n\n# tcId = 126\n# Flipped bit 33 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73c52c3be2eaba76807b784e1\n\n# tcId = 127\n# Flipped bit 63 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c33e2eaba76807b784e1\n\n# tcId = 128\n# Flipped bit 64 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2faba76807b784e1\n\n# tcId = 129\n# Flipped bit 77 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2e8ba76807b784e1\n\n# tcId = 130\n# Flipped bit 80 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2eaba66807b784e1\n\n# tcId = 131\n# Flipped bit 96 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2eaba76806b784e1\n\n# tcId = 132\n# Flipped bit 97 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2eaba76805b784e1\n\n# tcId = 133\n# Flipped bit 120 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2eaba76807b784e0\n\n# tcId = 134\n# Flipped bit 121 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2eaba76807b784e3\n\n# tcId = 135\n# Flipped bit 126 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2eaba76807b784a1\n\n# tcId = 136\n# Flipped bit 127 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c3be2eaba76807b78461\n\n# tcId = 137\n# Flipped bit 63 and 127 in tag expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 0518b3e73e52c33e2eaba76807b78461\n\n# tcId = 138\n# Tag changed to all zero expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 139\n# tag change to all 1 expected tag:0518b3e73e52c3be2eaba76807b784e1\naad = 000102\nct = \niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 140\n# Flipped bit 0 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2464a8ce1a360e8352971c8110885031\n\n# tcId = 141\n# Flipped bit 1 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102", + "030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2764a8ce1a360e8352971c8110885031\n\n# tcId = 142\n# Flipped bit 7 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = a564a8ce1a360e8352971c8110885031\n\n# tcId = 143\n# Flipped bit 8 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2565a8ce1a360e8352971c8110885031\n\n# tcId = 144\n# Flipped bit 31 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a84e1a360e8352971c8110885031\n\n# tcId = 145\n# Flipped bit 32 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1b360e8352971c8110885031\n\n# tcId = 146\n# Flipped bit 33 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce18360e8352971c8110885031\n\n# tcId = 147\n# Flipped bit 63 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e0352971c8110885031\n\n# tcId = 148\n# Flipped bit 64 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8353971c8110885031\n\n# tcId = 149\n# Flipped bit 77 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352b71c8110885031\n\n# tcId = 150\n# Flipped bit 80 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352971d8110885031\n\n# tcId = 151\n# Flipped bit 96 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352971c8111885031\n\n# tcId = 152\n# Flipped bit 97 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352971c8112885031\n\n# tcId = 153\n# Flipped bit 120 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352971c8110885030\n\n# tcId = 154\n# Flipped bit 121 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352971c8110885033\n\n# tcId = 155\n# Flipped bit 126 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352971c8110885071\n\n# tcId = 156\n# Flipped bit 127 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e8352971c81108850b1\n\n# tcId = 157\n# Flipped bit 63 and 127 in tag expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 2564a8ce1a360e0352971c81108850b1\n\n# tcId = 158\n# Tag changed to all zero expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 159\n# tag change to all 1 expected tag:2564a8ce1a360e8352971c8110885031\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 160\n# Flipped bit 0 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8161d3df064071df8082a0f813417f05\n\n# tcId = 161\n# Flipped bit 1 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8261d3df064071df8082a0f813417f05\n\n# tcId = 162\n# Flipped bit 7 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 0061d3df064071df8082a0f813417f05\n\n# tcId = 163\n# Flipped bit 8 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8060d3df064071df8082a0f813417f05\n\n# tcId = 164\n# Flipp", + "ed bit 31 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d35f064071df8082a0f813417f05\n\n# tcId = 165\n# Flipped bit 32 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df074071df8082a0f813417f05\n\n# tcId = 166\n# Flipped bit 33 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df044071df8082a0f813417f05\n\n# tcId = 167\n# Flipped bit 63 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df0640715f8082a0f813417f05\n\n# tcId = 168\n# Flipped bit 64 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8182a0f813417f05\n\n# tcId = 169\n# Flipped bit 77 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df80a2a0f813417f05\n\n# tcId = 170\n# Flipped bit 80 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8082a1f813417f05\n\n# tcId = 171\n# Flipped bit 96 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8082a0f812417f05\n\n# tcId = 172\n# Flipped bit 97 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8082a0f811417f05\n\n# tcId = 173\n# Flipped bit 120 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8082a0f813417f04\n\n# tcId = 174\n# Flipped bit 121 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8082a0f813417f07\n\n# tcId = 175\n# Flipped bit 126 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8082a0f813417f45\n\n# tcId = 176\n# Flipped bit 127 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df064071df8082a0f813417f85\n\n# tcId = 177\n# Flipped bit 63 and 127 in tag expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 8061d3df0640715f8082a0f813417f85\n\n# tcId = 178\n# Tag changed to all zero expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = 00000000000000000000000000000000\n\n# tcId = 179\n# tag change to all 1 expected tag:8061d3df064071df8082a0f813417f05\naad = 000102\nct = b70886f2313d015e1fe741365f5e35f1080e0f78ccfb51809417e879689418ef98\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20\nresult = invalid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 180\n# edge case for poly1305\n# key:ffffff3f24ac6f2f6436cec230be9ab31d8434bf94e1042d20952749a99cf641\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f101112133e8775b2\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = 7ee395bd21ada42ed12310d34918a28e596a49ee7a22f623d756b896663f68733e6c71a344f4726ac24e330679f25e492be08603aaa23f1e88c10299047c8e585983332a8b6eadcd9b6061b63fe3b58a2021b38c7cf379fe9a9f6d114f3cfe422f91af78c6fd87d4269af0e3e471abed457ae75c027e134c96cf4d9a4a646288\nresult = valid\ntag = 4921f7c24a2d42f4da7ad9d45e8ec26c\n\n# tcId = 181\n# edge case for poly1305\n# key:bf358f18ffffffbf4b62ed6e1f53790785c4dabdfc72e2a219d377a682c85f38\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "ffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121303e9b9a4\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = af205bda819f7451be0f28667d4b01b59ff2daa8173cab52046c3c9e0d989889c5e021ef7afd06e9ce6cc30e3a6ebab509134ba10d10e570c55587c13eee53e73be54804c8539ffbf23b35922b1ca37b9e9bc24ee204837ca5a294ce05d12600c7eff6aee32270db2feff47dc5a04176169e15850628e6035f78994f9f56035c\nresult = valid\ntag = b86b0a8e9427af3516950efc81d935d5\n\n# tcId = 182\n# edge case for poly1305\n# key:d0b7b3a352a4010ffeffffbfe8cc66dc6e5e7451dc61762c5753174fed88e746\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f101112130700b982\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = 68c67272036fb652a0182eeb4781358e4704a4a702fd731bf3b3ea994717989e7d9104e0ae81732a8c7e9a82b3d31d541761a366b67c3396f1a6c67e293ddb65a59e42541dda144dc6c78388cfca982e23350958ac5b3d54a1722fd64733577862e1879c9e9445ebdec5315d1706db7ebbedd4c779935e72057e5b0ecde0814d\nresult = valid\ntag = 3661dc6ddd1852221050ff5b8d58c13f\n\n# tcId = 183\n# edge case for poly1305\n# key:7bee33931a4157a8cb701becfeffff4fbe7e69f19cd065313bb49a252628dd3d\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = c483b7334ebe2e879b0c3f9db4fcd9f5219062360d6ce44cdae0f94e04c8345ea7e3ae33855118741dcafe0de4ae98c4e43af7b12b04ee8ab175625823ac040e5abac4403f1d45238adcb8c0cf44bd56917f9f5d93974c82b56951986a9c0450bd9047b5a616e814526ad0580e3ecd8189c9fef2cdb979a22ad3a01930fbd15e\nresult = valid\ntag = 02c70e4defe897a47a65063a468db630\n\n# tcId = 184\n# edge case for poly1305\n# key:df39fb3f36d8e58f91abffdff9f5feaf109d0e960edcf2b728446ec175ad4c7b\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f101112133f1a8eb1\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = 85e40e2106db6aba0fb236d3c980a72e58ce538db7aa3b0326a23d52175c7465c454d8206b4d8aedd51d8cc47424f6124d2586370f4eb51153d215e48347abf8791a6d6d3da4871ab2c0fe5718878c3942365fc75887e6ea6e779911f883fe90b6c0e5870769a860cf619f91c7eeaad69212325404ec4de4d3ab5e7aa89537a4\nresult = valid\ntag = ecccb94178b76a769c91c27d921fcc6c\n\n# tcId = 185\n# edge case for poly1305\n# key:00000090e6e328c242cde5c83e3d8262d467f2bcd53d3755c781f3c6a2cb0648\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = eaccaa778935ef249e0900149dd889462d2a061486ba102b8caebe465f3959fb3119ebb5689676ffdd6d851a26739e772b54a2f5f473ea9c7e58ccbc4cfc953e8c420b2175d9dd519265630bb79bd87a601b113231a8b16ce54c331347ec04c2b1c9160f38207aa46e96feb06dee883eb422fa14908df300bb1a1ef758c408f5\nresult = valid\ntag = f00ee0097d7dffbd3e4b216c45da89ef\n\n# tcId = 186\n# edge case for poly1305\n# key:9e98d64e000000505a07183c5c68c63c14c9266dd37ff86aafc22ddbdb355617\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f101112130c807a72\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = a76c330e015060a17e64cb7b6d753f201f75be8759fd7539fb92b22aef54c9d3029dba0c15cbf7c95135888319c6b2e6276da21e0c351fd522b29aabb5883a3291d6f427de773b124390ef6fd96621ffbc42dfbf7a34da272cbc9ccb1a498d078033d1ac3bf7e92715948b06d69d5c5039e9164ba9c3a02219ec5908206b3bd2\nresult = valid\ntag = 8691693787763ec6c7bf957658b51370\n\n# tcId = 187\n# edge case for poly1305\n# key:1048a92e65f5e63102000080d9ae08de4319a7c45fdbe707b9ec1b7e0d635161\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f101112130397a143\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = 228a7e15bcce13051de9145f77f7f4ff7921828b4f99efc4ff55ee0d9344955b69ec2d4798b0517f0273c4456ae5ffc5929cbe74ddb0da51d4f2b4df7578a31240c88ae922c3c5eca7b97d72d497062050a587447c562b343d5c71921944872f9fd06b8f34b3eb5d4341f5ff8a907dd7c2e1676b81252726ba54814da51eab8c\nresult = valid\ntag = 7fc8d4bb91c543b9bf5dbf1e7277d823\n\n# tcId = 188\n# edge case for poly1305\n# key:01517a2ceb89bbfb5741f7d9000000401a65b132ad661072a00ffe7defbb18a5\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121308cb0f3f\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = c7d843188ab193dfef5c4daf583f952cd4b195f240fa2e704d021723023c123371a41e87dfc6e6c3874a42f331cf035988a38c72ba2da854b1208f98bf8cc29948169481ab3a402d5fcc7ff78f9e31925576dc3938074b8c5b27960e3afc750ad686563688b7441787288d5256c1301d563b7744843bd1ab4eff5be6f1653d44\nresult = valid\ntag = 834c91a6580bf514dfcb5e2f456efe3c\n\n# tcId = 189\n# edge case for poly1305\n# key:e73c0100fbd50c408e3c06701c3908209a66d9388dd8e29458376300cb04f56a\naad = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f10111213d580ecf3\nkey = 606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f\nmsg = 56d20c8500203274099502f38d547f3008588f396cb521a2bae1800514f1f797c00386d52c09fd64a28b393431848e13dda47f65536bfc681ca73b55a7fc019a4c8358186e009ad3e22a5f08a59b19ca4b3bf11269fecaa49a9e9aff53a02ce2f235fba061ee95eae6177f1153502a50428122a73c83695f17dff5cfde23fdf9\nresult = valid\ntag = ca3de68e124484e8bb825b069afaa53d\n\n# tcId = 190\n# edge case for tag\naad = abffffffffffffffffffffffffffffff5a20e89e14ed5af85da66b5e4bdbe002\nct = fffffffffffffffffffffffff", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = 660336ffb732a4dcda556c2539d3d2de6cdaed0d7d9104593f8ed69bf0db8aa33c0e746482b7dc53d40b8a5331ca33b874639cdc7a787badd436bcd56e798af3\nresult = valid\ntag = 000102030405060708090a0b0c0d0e0f\n\n# tcId = 191\n# edge case for tag\naad = ffffffffffffffffffffffffffffffff7c85b8e5991711f804915250b99cf7a7\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = 660336ffb732a4dcda556c2539d3d2de6cdaed0d7d9104593f8ed69bf0db8aa33c0e746482b7dc53d40b8a5331ca33b874639cdc7a787badd436bcd56e798af3\nresult = valid\ntag = 00000000000000000000000000000000\n\n# tcId = 192\n# edge case for tag\naad = a8ffffffffffffffffffffffffffffff57599fb21558a903b6a3193419537e06\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = 660336ffb732a4dcda556c2539d3d2de6cdaed0d7d9104593f8ed69bf0db8aa33c0e746482b7dc53d40b8a5331ca33b874639cdc7a787badd436bcd56e798af3\nresult = valid\ntag = ffffffffffffffffffffffffffffffff\n\n# tcId = 193\n# edge case for tag\naad = c1fffffffffffffffffffffffffffffffd71560c5091b863662ffaebc0dd2501\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = 660336ffb732a4dcda556c2539d3d2de6cdaed0d7d9104593f8ed69bf0db8aa33c0e746482b7dc53d40b8a5331ca33b874639cdc7a787badd436bcd56e798af3\nresult = valid\ntag = 00000080000000800000008000000080\n\n# tcId = 194\n# edge case for tag\naad = f9ffffffffffffffffffffffffffffff169a825d7ecbf7e107396a2a3dfb4508\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = 660336ffb732a4dcda556c2539d3d2de6cdaed0d7d9104593f8ed69bf0db8aa33c0e746482b7dc53d40b8a5331ca33b874639cdc7a787badd436bcd56e798af3\nresult = valid\ntag = ffffff7fffffff7fffffff7fffffff7f\n\n# tcId = 195\n# edge case for tag\naad = d9ffffffffffffffffffffffffffffffe344f9752a885ccd1a3fa5a9c4187d04\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = 660336ffb732a4dcda556c2539d3d2de6cdaed0d7d9104593f8ed69bf0db8aa33c0e746482b7dc53d40b8a5331ca33b874639cdc7a787badd436bcd56e798af3\nresult = valid\ntag = 01000000010000000100000001000000\n\n# tcId = 196\n# edge case for tag\naad = d7ffffffffffffffffffffffffffffffa6627ce99c9c49deb89855b0f9e3f407\nct = ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\niv = 000102030405060708090a0b0c0d0e0f1011121314151617\nkey = 404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f\nmsg = 660336ffb732a4dcda556c2539d3d2de6cdaed0d7d9104593f8ed69bf0db8aa33c0e746482b7dc53d40b8a5331ca33b874639cdc7a787badd436bcd56e798af3\nresult = valid\ntag = ffffffff000000000000000000000000\n\n# tcId = 197\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff9bf90b74324f392a4f5bacf25b31b293b4ffffffffffffffffffffffffffffff09b73f897139ab1417163ce2e8377d03b4ffffffffffffffffffffffffffffff09b73f897139ab1417163ce2e8377d03\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b3df302dcb7dc4ea184e7fe455afac170395c7a18e950fff87e6de1fb6247d63c3df6823c0030e4c987ef266c4a26f1de7226805d43221db305501f8bd70d20c019264f8f28a963bf61e76272e736412a650fa30062629ead26c6ff651361dd1\nresult = valid\ntag = eabfdde61ad23c8f2a380280248e58c3\n\n# tcId = 198\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 41634e0cbafbedf788226ca92ca0907373fffffffffffffffffffffffffffffff505e2802a430cc2eeab714688e6800373fffffffffffffffffffffffffffffff505e2802a430cc2eeab714688e68003\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 0d4381de8e79d6e26f93ecb286f0c39beb93332a4325c92a37428d1212ea300f8225755c15bffd71892a7cdfb3bb10e19d6aa8735af47530d8bcc2e5aab850f04068798727366506e74af89e596a1bee\nresult = valid\ntag = 50c4a57ebedcdea7ca65660b209f59a5\n\n# tcId = 199\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ecb82891988284f2dc41fe2ea0d6d2eb92ffffffffffffffffffffffffffffff2e72794a284d14459977796cee26320092ffffffffffffffffffffffffffffff2e72794a284d14459977796cee263200\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = a098e743ac00bfe73bf07e350a8681030a93332a4325c92a37428d1212ea300f5952ee9617b1e5f6fef674f5d57ba2e27c6aa8735af47530d8bcc2e5aab850f09b1fe24d25387d819096f0b43faaa9ed\nresult = valid\ntag = e87f0c943e93cad2aa76933330d178b3\n\n# tcId = 200\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 03a439b72eabc0eb05e9f495b09a25826fffffffffffffffffffffffffffffff39dc0c117f4e3880531dc20078e26e006fffffffffffffffffffffffffffffff39dc0c117f4e3880531dc20078e26e00\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4f84f6651a29fbfee258748e1aca766af793332a4325c92a37428d1212ea300f4efc9bcd40b2c933349ccf9943bffee2816aa8735af47530d8bcc2e5aab850f08cb19716723b51445afc4bd8a96ef5ed\nresult = valid\ntag = 66eaccae5e377108c3cbcb65c4cf1fc5\n\n# tcId = 201\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c5e42462a35a93df82af7d823495ba906affffffffffffffffffffffffffffff636191a673471f49f0d21dc5ebaae4006affffffffffffffffffffffffffffff636191a673471f49f0d21dc5ebaae400\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 89c4ebb097d8a8ca651efd999ec5e978f293332a4325c92a37428d1212ea300f1441067a4cbbeefa9753105cd0f774e2846aa8735af47530d8bcc2e5aab850f0d60c0aa17e32768df933941d3a267fed\nresult = valid\ntag = 7c10f4defe910369bb3131c06800e6e4\n\n# tcId = 202\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = b1ffffffffffffffffffffffffffffff0bf0a2ad4c581e5406c1f59dd8915d0029ffffffffffffffffffffffffffffff4fb0339e2c5180f6c76853298b59e80029ffffffffffffffffffffffffffffff4fb0339e2c5180f6c76853298b59e800\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fddf302dcb7dc4ea184e7fe455afac17939c6e78f0822881ce7c8770358492f05edf6823c0030e4c987ef266c4a26f1da1256412895a0a39e02b6e33de1e470f9c9264f8f28a963bf61e76272e736412e057f6275b4e02080212003d325888d2\nresult = valid\ntag = e269df519b62d7658b8ce3487588f409\n\n# tcId = 203\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 86ffffffffffffffffffffffffffffffedbfcd3f889324dfaeb340cffcd53502981b5e44b2f390a2e219411d38fa53c3981b5e44b2f390a2e219411d38fa53c3\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = cadf302dcb7dc4ea184e7fe455afac1775d301ea3449120a660e322211c0faf2ef3bc9988d0f611185984c8403a7c321768e09c817f81a6dc55a7c076dbdfccc\nresult = valid\ntag = a084fcb71338faabb02bb26c1b7c1a55\n\n# tcId = 204\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 46ffffffffffffffffffffffffffffffd90e7037419d858c864976339c843902f1ffffffffffffffffffffffffffffff99fb0b24d580fd21d48877710fc07a03f1ffffffffffffffffffffffffffffff99fb0b24d580fd21d48877710fc07a03\niv = 000102030405060708090a0b0c0d0e0f10111", + "2130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 0adf302dcb7dc4ea184e7fe455afac174162bce2fd47b3594ef404de7191f6f286df6823c0030e4c987ef266c4a26f1d776e5ca8708b77eef3cb4a6b5a87d50c449264f8f28a963bf61e76272e736412361cce9da29f7fdf11f22465b6c11ad1\nresult = valid\ntag = 8f7f47eb00819694ca25bd8a5cd263cd\n\n# tcId = 205\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 58ffffffffffffffffffffffffffffff2b4a77d883dddbd6bd5d5eac0e03e0018238eae6ed8aa9acdf81582c906797208238eae6ed8aa9acdf81582c90679720\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 14df302dcb7dc4ea184e7fe455afac17b326bb0d3f07ed0375e02c41e3162ff1f5187d3ad276581fb80055b5ab3a07c26cadbd6a48812363f8c26536c520382f\nresult = valid\ntag = 6e29bbb07bacd01dde68f7ceba8dcf6c\n\n# tcId = 206\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 6affffffffffffffffffffffffffffffeccb4900e9540ec1819b5005f396fb006f060b6f93b7f857948b153abd5c3f5f6f060b6f93b7f857948b153abd5c3f5f\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 26df302dcb7dc4ea184e7fe455afac1774a785d5558e3814492622e81e8334f018269cb3ac4b09e4f30a18a38601afbd81935ce336bc7298b3c82820e81b9050\nresult = valid\ntag = dc8de3adc9cf0095ab93f73b92e38f8e\n\n# tcId = 207\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 8effffffffffffffffffffffffffffff834129492142abcda1857721bf8b38035e1487784c0fefe6940dd2bf1a1495e05e1487784c0fefe6940dd2bf1a1495e0\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = c2df302dcb7dc4ea184e7fe455afac171b2de59c9d989d18693805cc529ef7f3293410a473f31e55f38cdf2621490502b081d0f4e9046529b34eefa54f533aef\nresult = valid\ntag = 41da20c0d2480aabf6ec50678325ca55\n\n# tcId = 208\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 4effffffffffffffffffffffffffffff6f90cb40da4b0c7b791bad855e3a3c03faffffffffffffffffffffffffffffffa878e91f0f31b906495504bfe5ff4500faffffffffffffffffffffffffffffffa878e91f0f31b906495504bfe5ff4500\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 02df302dcb7dc4ea184e7fe455afac17f7fc079566913aaeb1a6df68b32ff3f38ddf6823c0030e4c987ef266c4a26f1d46edbe93aa3a33c96e1639a5b0b8ea0f4f9264f8f28a963bf61e76272e736412079f2ca6782e3bf88c2f57ab5cfe25d2\nresult = valid\ntag = 30d56bf3bf91a69310e75b85c47b13ce\n\n# tcId = 209\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = f826d2c3616ecf7100aaf6ae252052155bffffffffffffffffffffffffffffffbff427b51284fa40da0a674db8f436025bffffffffffffffffffffffffffffffbff427b51284fa40da0a674db8f43602\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b4061d1155ecf464e71b76b58f7001fdc393332a4325c92a37428d1212ea300fc8d4b0692d780bf3bd8b6ad483a9a6e0b56aa8735af47530d8bcc2e5aab850f00a99bcb21ff19384d3ebee956978adef\nresult = valid\ntag = cdfe4b827e5558a497f309fb493d209d\n\n# tcId = 210\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 35df3d7533e8a7ce04580b0b188e75d990ffffffffffffffffffffffffffffff5a0dbd4e9c2dd65eea6c0a858470e10190ffffffffffffffffffffffffffffff5a0dbd4e9c2dd65eea6c0a858470e101\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 79fff2a7076a9cdbe3e98b10b2de26310893332a4325c92a37428d1212ea300f2d2d2a92a3d127ed8ded071cbf2d71e37e6aa8735af47530d8bcc2e5aab850f0ef6026499158bf9ae38d835d55fc7aec\nresult = valid\ntag = d168917ea5f3a1aaf11f260b1ad87ba6\n\n# tcId = 211\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff10b5ad7f1c954ceea0921b4ae896afa2f2ffffffffffffffffffffffffffffff3839e7eb64c423936009811dd1b1eb02f2ffffffffffffffffffffffffffffff3839e7eb64c423936009811dd1b1eb02\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b3df302dcb7dc4ea184e7fe455afac1788d961aaa04f7a3b682f69a70583605285df6823c0030e4c987ef266c4a26f1dd6acb067c1cfa95c474abc0784f6440d479264f8f28a963bf61e76272e73641297de225213dba16da573d20968b08bd0\nresult = valid\ntag = 7c9d1f445000923ba0f6712dcef103f8\n\n# tcId = 212\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 3bffffffffffffffffffffffffffffff666b7ecba9ae52c8e786831cff46f0009affffffffffffffffffffffffffffffefc4cbe333cdedf206a5d8d087435f029affffffffffffffffffffffffffffffefc4cbe333cdedf206a5d8d087435f02\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 77df302dcb7dc4ea184e7fe455afac17fe07b21e1574641d2f3bf1f112533ff0eddf6823c0030e4c987ef266c4a26f1d01519c6f96c6673d21e6e5cad204f00d2f9264f8f28a963bf61e76272e73641240230e5a44d26f0cc3df8bc43e423fd0\nresult = valid\ntag = 0eff35568cd1f12e9c87c10f7ac886d9\n\n# tcId = 213\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff9cf90b74324f392a4f5bacf25b31b2935bffffffffffffffffffffffffffffff53163f81066b447a8aaf1d30cf3c31035bffffffffffffffffffffffffffffff53163f81066b447a8aaf1d30cf3c3103\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b3df302dcb7dc4ea184e7fe455afac170495c7a18e950fff87e6de1fb6247d632cdf6823c0030e4c987ef266c4a26f1dbd83680da360ceb5adec202a9a7b9e0cee9264f8f28a963bf61e76272e736412fcf1fa387174c6844fd54e24763d51d1\nresult = valid\ntag = 972e0ccb273da0e432560bb025a3dafd\n\n# tcId = 214\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff9af90b74324f392a4f5bacf25b31b293ffffffffffffffffffffffffffffffff53e827dc9c064b45b437f8203b623635ffffffffffffffffffffffffffffffff53e827dc9c064b45b437f8203b623635\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b3df302dcb7dc4ea184e7fe455afac170295c7a18e950fff87e6de1fb6247d6388df6823c0030e4c987ef266c4a26f1dbd7d7050390dc18a9374c53a6e25993a4a9264f8f28a963bf61e76272e736412fc0fe265eb19c9bb714dab34826356e7\nresult = valid\ntag = 3851af020e67d939221af94f2379d688\n\n# tcId = 215\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 90ffffffffffffffffffffffffffffff5360b535b6b0002afb0316c6e8ed8202afffffffffffffffffffffffffffffff29ada419504d0c9a2e19c785c4736402afffffffffffffffffffffffffffffff29ada419504d0c9a2e19c785c4736402\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = dcdf302dcb7dc4ea184e7fe455afac17cb0c79e00a6a36ff33be642b05f84df2d8df6823c0030e4c987ef266c4a26f1dc738f395f5468655095afa9f9134cb0d1a9264f8f28a963bf61e76272e736412864a61a027528e64eb6394917d7204d0\nresult = valid\ntag = 41c5ffe07dbb3c988a9e3687296007bd\n\n# tcId = 216\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 3cf775eaf6d537622d87c19e0b481fb7ffffffffffffffffffffffffffffffffd3dbec750373eb583eefe5c48ec8935cffffffffffffffffffffffffffffffffd3dbec750373eb583eefe5c48ec8935c\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 70d7ba38c2570c77ca364185a1184c5f6793332a4325c92a37428d1212ea300fa4fb7ba93c8f1aeb596ee85db59503be116aa8735af47530d8bcc2e5aab850f066b677720e06829c370e6c1c5f4408b1\nresult = valid\ntag = a0dcb67a9f930f9d79381e04c38c91a1\n\n# tcId = 217\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = fffffffffffffffffffffffffffffffff69e595ca0b7e269447d052bc354365bffffffffffffffffffffffffffffffff46b3f0de9548e22c936ac526807d56c1ffffffffffffffffffffffffffffffff46b3f0de9548e22c936ac526807d56c1\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b3df302dcb7dc4ea184e7fe455afac176ef295891c6dd4bc8cc077c62e41f9ab88df6823c0030e4c987ef266c4a26f1da826a752304368e3b429f83cd53af9ce4a9264f8f28a963bf61e76272e736412e9543567e25760d256109632397c3613\nresult = valid\ntag = a12b34e8828deb913809858245813ac4\n\n# tcId = 218\n# edge ", + "case intermediate sums in poly1305\naad = ffffffff\nct = 9c089cf4276497377e44c5e193c3143bc23a8489250a4f3ecaa9bd1904b194e5c23a8489250a4f3ecaa9bd1904b194e5\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = d028532613e6ac2299f545fa399347d35a56485c99d079eb0214cff4e9a45b15b51a13551af6be8dad28b0803fec0407\nresult = valid\ntag = 3e5a4dd56980cdc49b3fc7f1a4e5de80\n\n# tcId = 219\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 98ffffffffffffffffffffffffffffff5828dcc5719663b87aff56f81cb9fa022dd0ba2addabf43c9f3122fba03ea5032dd0ba2addabf43c9f3122fba03ea503\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = d4df302dcb7dc4ea184e7fe455afac17c0441010cd4c556db2422415f1ac35f25af02df6e257058ff8b02f629b6335e1c345eda678a07ef3b8721fe1f5790a0c\nresult = valid\ntag = 693df6c4750d80c9c6db9b8290908856\n\n# tcId = 220\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff840efb4d9c26fd3026b4b58b4b6d5ffdd7fffffffffffffffffffffffffffffffe4cacc21a3887d95c70f34d5f7c4003d7fffffffffffffffffffffffffffffffe4cacc21a3887d95c70f34d5f7c4003\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b3df302dcb7dc4ea184e7fe455afac171c62379820fccbe5ee09c766a678900da0df6823c0030e4c987ef266c4a26f1d10d9fb4ebf330d167b33ce570a3bef0c629264f8f28a963bf61e76272e73641251ab697b6d270527990aa059e67d20d1\nresult = valid\ntag = 6c551dccfa2d965912e3c94d908fb1b1\n\n# tcId = 221\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 46ffffffffffffffffffffffffffffff6ac8a4b01e66a9ecf91f6c532a6fc402f5ffffffffffffffffffffffffffffff1d689d91b82f4a673f80067e49897903f5ffffffffffffffffffffffffffffff1d689d91b82f4a673f80067e49897903\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 0adf302dcb7dc4ea184e7fe455afac17f2a46865a2bc9f3931a21ebec77a0bf282df6823c0030e4c987ef266c4a26f1df3fdca1d1d24c0a818c33b641cced60c409264f8f28a963bf61e76272e736412b28f5828cf30c899fafa556af08819d1\nresult = valid\ntag = 041184e17ae48184f2f3f675a0c1d0bf\n\n# tcId = 222\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 59ffffffffffffffffffffffffffffffe3c813237eb6a34838ddcd5141f63d0241ffffffffffffffffffffffffffffff2b3c5a7bdafb518fdb1afd2bdacf640341ffffffffffffffffffffffffffffff2b3c5a7bdafb518fdb1afd2bdacf6403\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 15df302dcb7dc4ea184e7fe455afac177ba4dff6c26c959df060bfbcace3f2f236df6823c0030e4c987ef266c4a26f1dc5a90df77ff0db40fc59c0318f88cb0cf49264f8f28a963bf61e76272e73641284db9fc2ade4d3711e60ae3f63ce04d1\nresult = valid\ntag = 3932ed921c20c30f251e2495cafcee7d\n\n# tcId = 223\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff26f5224c72421352b628e4af3fe63fd6fffffffffffffffffffffffffffffffff853a71e2e53808ce0bcf98ef3c6237ffffffffffffffffffffffffffffffffff853a71e2e53808ce0bcf98ef3c6237f\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = b3df302dcb7dc4ea184e7fe455afac17be99ee99ce9825877e959642d2f3f02688df6823c0030e4c987ef266c4a26f1d16c6f0928b580a43c7ffc494a6818c704a9264f8f28a963bf61e76272e73641257b462a7594c027225c6aa9a4ac743ad\nresult = valid\ntag = 1fe14698bc0d7e1a5d622f9f4ec97681\n\n# tcId = 224\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 56ffffffffffffffffffffffffffffffaf34bc72b023510184ba5e7a8283c30275ffffffffffffffffffffffffffffff7ea17d57b552c6875d4bd24d089bbd0075ffffffffffffffffffffffffffffff7ea17d57b552c6875d4bd24d089bbd00\niv = 000102030405060708090a0b0c0d0e0f101112130bc672c3\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1adf302dcb7dc4ea184e7fe455afac17375870a70cf967d44c072c976f960cf202df6823c0030e4c987ef266c4a26f1d90342adb10594c487a08ef575ddc120fc09264f8f28a963bf61e76272e736412d146b8eec24d447998318159b19addd2\nresult = valid\ntag = 48a52de01229d381e42274737fceeebe\n\n# tcId = 225\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = e2ffffffffffffffffffffffffffffff2e36b18f2fc925af8ca7b8922f3d0402ffffffffffffffffffffffffffffffff730856e81fee6ffa095f96faa3c87deeffffffffffffffffffffffffffffffff730856e81fee6ffa095f96faa3c87dee\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e15491e17fb1ebf66bb0a3ecbc1bc251544d1a6c930b659ca3903632f84c51b676fb4365776d1717fb3f9f45f9888c9764482cfbc35450c0a2a1c8aab04f5ac644871d72e9f20f1fd6a77429527f8b81df97e388864bad33006e671b757b158b\nresult = valid\ntag = 457c13b040b790624a47b6d232c96c2e\n\n# tcId = 226\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c6ffffffffffffffffffffffffffffff2bc9d348d8e6c2a03ac33e23e55e5807f6ffffffffffffffffffffffffffffffe4b6f365c772e1a1e76df14239085f0af6ffffffffffffffffffffffffffffffe4b6f365c772e1a1e76df14239085f0a\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = c55491e17fb1ebf66bb0a3ecbc1bc25151b278ab6424829315f4b083322f0db37ffb4365776d1717fb3f9f45f9888c97f3f689761bc8de9b4c93af122a8f78224d871d72e9f20f1fd6a77429527f8b81482946055ed72368ee5c00a3efbb376f\nresult = valid\ntag = 4c21dabf80184666ee0752d61aee183a\n\n# tcId = 227\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff76233bc3302a7af4ab058503918804680e9f0afd4265e0b0b33071d9a97980b80e9f0afd4265e0b0b33071d9a97980b8\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc2510c5890208ce83ac784320ba346f951dc879bb667caf70858b7f01163af0ef3d019df70ee9edfdf8a18ce2f89bafea790\nresult = valid\ntag = b41fc59d364e1050c2076dfe596ba799\n\n# tcId = 228\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d5ffffffffffffffffffffffffffffffb4d5dc56f6831c4148d183744b10c30afdffffffffffffffffffffffffffffff661e3664a5ae853e51bb9a90b7941d02fdffffffffffffffffffffffffffffff661e3664a5ae853e51bb9a90b7941d02\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = d65491e17fb1ebf66bb0a3ecbc1bc251ceae77b54a415c7267e60dd49c6196be74fb4365776d1717fb3f9f45f9888c97715e4c777914ba04fa45c4c0a4133a2a46871d72e9f20f1fd6a77429527f8b81ca8183043c0b47f7588a6b7161277567\nresult = valid\ntag = 8beed54dc183a687b2cdcbf6423a26a3\n\n# tcId = 229\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = e5ffffffffffffffffffffffffffffff363d1f55d4bfc0ddb11e2dc2c99c8102ffffffffffffffffffffffffffffffff0bbf59b1c3d0b4edeecb4ef0bdd93834ffffffffffffffffffffffffffffffff0bbf59b1c3d0b4edeecb4ef0bdd93834\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e65491e17fb1ebf66bb0a3ecbc1bc2514c46b4b6687d80ee9e29a3621eedd4b676fb4365776d1717fb3f9f45f9888c971cff23a21f6a8bd7453510a0ae5e1f1c44871d72e9f20f1fd6a77429527f8b81a720ecd15a757624e7fabf116b6a5051\nresult = valid\ntag = cabbd1db01ef06a9769345176b86330c\n\n# tcId = 230\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c9ffffffffffffffffffffffffffffff33d0410e7ddd5dcf5f3ab3527fbed507e6ffffffffffffffffffffffffffffffecbd612b6c697cd00ce56572d367dc0ae6ffffffffffffffffffffffffffffffecbd612b6c697cd00ce56572d367dc0a\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ca5491e17fb1ebf66bb0a3ecbc1bc25149abeaedc11f1dfc700d3df2a8cf80b36ffb4365776d1717fb3f9f45f9888c97fbfd1b38b0d343eaa71b3b22c0e0fb225d871d72e9f20f1fd6a77429527f8b814022d44bf5ccbe1905d4949305d4b46f\nresult = valid\ntag = d16098eb4150bcac1a54e11a53abdf17\n\n# tcId = 231\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = bfffffffffffffffffffffffffffffff585e9126822094a6e26e4d6f503a8a07f1ffffffffffffffffffffffffffffffef1d1a356a07ec974fb84a8b0023f506f1ffffffffffffffffffffffffffffffef1d1a356a07ec", + "974fb84a8b0023f506\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = bc5491e17fb1ebf66bb0a3ecbc1bc25122253ac53ee2d495cd59c3cf874bdfb378fb4365776d1717fb3f9f45f9888c97f85d6026b6bdd3ade44614db13a4d22e4a871d72e9f20f1fd6a77429527f8b814382af55f3a22e5e4689bb6ad6909d63\nresult = valid\ntag = 6005e4ae07fba16ee6e7cfd2ee645c26\n\n# tcId = 232\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 852da88f8e833be61c313cf0cca044ee691e206e368668ffa67ac689bd097d2b691e206e368668ffa67ac689bd097d2b\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 8686c6910ecd2fef887e60e38f44794013658b8d8a4428cc894d48296a78289fe01a9cf4be148017a2baa633bb7e0e43\nresult = valid\ntag = 91d0ac28cd0f09a8261194b8df0abc0d\n\n# tcId = 233\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff0cb11bba47bb8eeb7ec6ced3c544f03eaa2cebf359f6eca786f1baa9de356c8faa2cebf359f6eca786f1baa9de356c8f\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc25176cab059fb79ced851f140731235a58a23285769d164044f8231da13d8421fe7bd6c91e0854cd39d2d0fe4f9cdb24ba7\nresult = valid\ntag = 9d652db06f7b08621f02c7f294abbe58\n\n# tcId = 234\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffffee636fad482c4a1dc3c106a9f992dc8c8cdf3ee75a67a0d9caecf27e128458dd8cdf3ee75a67a0d9caecf27e128458dd\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc2519418c44ef4ee0a2eecf688092ee3893805db827dd2f54831ce2c92c414f32bb59b9f44f486dd9fe36112ac2e01037ff5\nresult = valid\ntag = b5893d2129f0408a5480c7fc3fc9de5d\n\n# tcId = 235\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c7ffffffffffffffffffffffffffffffe26398b0b4aea0f7527511c8f9837208f9ffffffffffffffffffffffffffffffcea035c9810c28eaf87afdd70dccc307f9ffffffffffffffffffffffffffffffcea035c9810c28eaf87afdd70dccc307\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = c45491e17fb1ebf66bb0a3ecbc1bc25198183353086ce0c47d429f682ef227bc70fb4365776d1717fb3f9f45f9888c97d9e04fda5db617d05384a3871e4be42f42871d72e9f20f1fd6a77429527f8b81623f80a918a9ea23f14b0c36db7fab62\nresult = valid\ntag = 0b88cfa42284726dad2be1de8a057626\n\n# tcId = 236\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff8ed08c3c58e3b9b12f5b7c298e894a392b4c5c766a1e206e368668ffa67ac6892b4c5c766a1e206e368668ffa67ac689\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc251f4ab27dfe421f982006cf28959f81f8da248e0ece28cc88632460845a00db5e13c0c2665b6a41f549d7836afb5fde1a1\nresult = valid\ntag = 5e97665318961c4c95e928fc11140063\n\n# tcId = 237\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff477f4844e38a8dbabb786d0e618b6f83e4fa177ef6c5f376c3a359e4787cebd3e4fa177ef6c5f376c3a359e4787cebd3\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc2513d04e3a75f48cd89944fe3aeb6fa3a376dfeabe47e571b9ec763395e7e0b98bbf3ba6d6d2a7fcc4c685d07b46bfbccfb\nresult = valid\ntag = ff71ef44bc734132701144f73497756b\n\n# tcId = 238\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c4ffffffffffffffffffffffffffffff9078f44cabe20b269f4d77f7ada54f01f4ffffffffffffffffffffffffffffff6bd4236b28a82d2595ce3f187f6f5500f4ffffffffffffffffffffffffffffff6bd4236b28a82d2595ce3f187f6f5500\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = c75491e17fb1ebf66bb0a3ecbc1bc251ea035faf17204b15b07af9577ad41ab57dfb4365776d1717fb3f9f45f9888c977c945978f412121f3e3061486ce872284f871d72e9f20f1fd6a77429527f8b81c74b960bb10defec9cffcef9a9dc3d65\nresult = valid\ntag = 2ab3cabef2de4268a5313cd59dcd193e\n\n# tcId = 239\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d8ffffffffffffffffffffffffffffffc2492648ea2f93394ecd9d69e7edf202dfffffffffffffffffffffffffffffffb40a3f44d4f1ffdd970813853381ae03dfffffffffffffffffffffffffffffffb40a3f44d4f1ffdd970813853381ae03\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = db5491e17fb1ebf66bb0a3ecbc1bc251b8328dab56edd30a61fa13c9309ca7b656fb4365776d1717fb3f9f45f9888c97a34a4557084bc0e73cf64dd52006892b64871d72e9f20f1fd6a77429527f8b8118958a244d543d149e39e264e532c666\nresult = valid\ntag = 32bcb167c875045b9651816e4bedf51a\n\n# tcId = 240\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c7ffffffffffffffffffffffffffffffe788168bdb551c0cc76cd469aebcd909feffffffffffffffffffffffffffffff8d50f588b8b6bac4016eb3f0d9bc720afeffffffffffffffffffffffffffffff8d50f588b8b6bac4016eb3f0d9bc720a\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = c45491e17fb1ebf66bb0a3ecbc1bc2519df3bd6867975c3fe85b5ac979cd8cbd77fb4365776d1717fb3f9f45f9888c979a108f9b640c85feaa90eda0ca3b552245871d72e9f20f1fd6a77429527f8b8121cf40e82113780d085f42110f0f1a6f\nresult = valid\ntag = 2ec4ac70d29ad094e46ce355eb94d1ea\n\n# tcId = 241\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = e2ffffffffffffffffffffffffffffff2f36b18f2fc925af8ca7b8922f3d0402ffffffffffffffffffffffffffffffff7d591f230ba1a0e665f867b15830b205ffffffffffffffffffffffffffffffff7d591f230ba1a0e665f867b15830b205\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e15491e17fb1ebf66bb0a3ecbc1bc251554d1a6c930b659ca3903632f84c51b676fb4365776d1717fb3f9f45f9888c976a196530d71b9fdcce0639e14bb7952d44871d72e9f20f1fd6a77429527f8b81d1c6aa439204622f6cc996508e83da60\nresult = valid\ntag = 3c2b4a7555046076eeade41b7e613817\n\n# tcId = 242\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = e2ffffffffffffffffffffffffffffff2d36b18f2fc925af8ca7b8922f3d0402cfffffffffffffffffffffffffffffffbea8cba2377741c06ee4f8f06f4c9007cfffffffffffffffffffffffffffffffbea8cba2377741c06ee4f8f06f4c9007\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = e15491e17fb1ebf66bb0a3ecbc1bc251574d1a6c930b659ca3903632f84c51b646fb4365776d1717fb3f9f45f9888c97a9e8b1b1ebcd7efac51aa6a07ccbb72f74871d72e9f20f1fd6a77429527f8b8112377ec2aed2830967d50911b9fff862\nresult = valid\ntag = 4ecddcea2b6ac14ea6e08789e730a145\n\n# tcId = 243\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = fffffffffffffffffffffffffffffffff9df160fd4bfb1c1ed9a07a1aab2dd93faffffffffffffffffffffffffffffffb4ffe770d84307956ddcd88e0d585202faffffffffffffffffffffffffffffffb4ffe770d84307956ddcd88e0d585202\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc25183a4bdec687df1f2c2ad89017dc3882773fb4365776d1717fb3f9f45f9888c97a3bf9d6304f938afc62286de1edf752a41871d72e9f20f1fd6a77429527f8b811860521041e6c55c64ed296fdbeb3a67\nresult = valid\ntag = c21949bfae429c58105372c714964e39\n\n# tcId = 244\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 52cbcefcad6266cbc8ef53e42ba0c88fe3ffffffffffffffffffffffffffffff0dba55789a64e947dbe380db69b16803e3ffffffffffffffffffffffffffffff0dba55789a64e947dbe380db69b16803\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 5160a0e22d2c72c25ca00ff76844f5219984541c433dbfccd0c8715f288eaa4b84bee9e212f601afdf23e0616fc61b6bf4bf85ec2345c0c55401a1afec78d8d7b6c2b7f58c6919a7f2bb0b0dc4311c7d\nresult = valid\ntag = 31827cfd0227dae6020564fe6677828e\n\n# tcId = 245\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = a93062e1009c4449e5f854b1249d6772e0ffffffffffffffffffffffffffffff9b7c4c8d3bfb", + "eace2c056bb4973d0b05e0ffffffffffffffffffffffffffffff9b7c4c8d3bfbeace2c056bb4973d0b05\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = aa9b0cff80d2504071b708a267795adc9a84541c433dbfccd0c8715f288eaa4b1278f017b369022628c50b0e914a786df7bf85ec2345c0c55401a1afec78d8d72004ae002df61a2e055de0623abd7f7b\nresult = valid\ntag = 0f146dfc74edd6e8b92e4efde9568392\n\n# tcId = 246\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d5ffffffffffffffffffffffffffffff4f3f0a1cc1d293cb0dbcfd37623be207c3ffffffffffffffffffffffffffffff980f6f46e41888c0da20f1444d5f5f0ac3ffffffffffffffffffffffffffffff980f6f46e41888c0da20f1444d5f5f0a\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = d65491e17fb1ebf66bb0a3ecbc1bc2513544a1ff7d10d3f8228b7397b54ab7b34afb4365776d1717fb3f9f45f9888c978f4f155538a2b7fa71deaf145ed8782278871d72e9f20f1fd6a77429527f8b813490da267dbd4a09d31100a59bec376f\nresult = valid\ntag = 8fcacbc3d070336717f838d754f7033d\n\n# tcId = 247\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff5db2db84e55898b9e22aedcba64524dcf92dabbef793fe75ea55d9a1bf36a02cf92dabbef793fe75ea55d9a1bf36a02c\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc25127c97067599ad88acd1d636b71347168702917247f01169dee95b91bb941d344ee6dd1ad2b29c14f41ab87f1acb18704\nresult = valid\ntag = ddd96272c682dd45ffb580f4db058e79\n\n# tcId = 248\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ffffffffffffffffffffffffffffffff4be525c9aa5fb99244a4a2503d9503f7f2ffffffffffffffffffffffffffffffde0343075e5f508cdeb918624ae71708f2ffffffffffffffffffffffffffffffde0343075e5f508cdeb918624ae71708\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fc5491e17fb1ebf66bb0a3ecbc1bc251319e8e2a169df9a16b932cf0eae456437bfb4365776d1717fb3f9f45f9888c97c943391482e56fb6754746325960302049871d72e9f20f1fd6a77429527f8b81729cf667c7fa9245d788e9839c547f6d\nresult = valid\ntag = 2243326100d105501684abc0aa1010f4\n\n# tcId = 249\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = fdffffffffffffffffffffffffffffff384855e6c60c3ec1824cce0562405c08c87997005985397642f682d4aae77f41c87997005985397642f682d4aae77f41\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = fe5491e17fb1ebf66bb0a3ecbc1bc2514233fe057ace7ef2ad7b40a5b53109bc417d2b9ad117d19e4636e26eac900c29df39ed13853f064ce908dc84b9605869\nresult = valid\ntag = 8a411d3fb606d039ea83c6e8e98d9e53\n\n# tcId = 250\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = dfffffffffffffffffffffffffffffff3e791946233a67a0c7fe509f14179607deffffffffffffffffffffffffffffff414535660bac916aa675c9eeee5b2608deffffffffffffffffffffffffffffff414535660bac916aa675c9eeee5b2608\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = dc5491e17fb1ebf66bb0a3ecbc1bc2514402b2a59ff82793e8c9de3fc366c3b357fb4365776d1717fb3f9f45f9888c9756054f75d716ae500d8b97befddc012065871d72e9f20f1fd6a77429527f8b81edda8006920953a3af44380f38e84e6d\nresult = valid\ntag = 5ed9e3c1cacff152211b5c57fd628278\n\n# tcId = 251\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c4ffffffffffffffffffffffffffffff346775ef8bf64e8ed1593b2ce2133e01c2ffffffffffffffffffffffffffffff3733910f74687958b0d0b37bbc58ce01c2ffffffffffffffffffffffffffffff3733910f74687958b0d0b37bbc58ce01\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = c75491e17fb1ebf66bb0a3ecbc1bc2514e1cde0c37340ebdfe6eb58c35626bb54bfb4365776d1717fb3f9f45f9888c972073eb1ca8d246621b2eed2bafdfe92979871d72e9f20f1fd6a77429527f8b819bac246fedcdbb91b9e1429a6aeba664\nresult = valid\ntag = 657eaad10a31a756c5dbf75ae5872e84\n\n# tcId = 252\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 5667456206e49afa486a19f0a478a7543a58bd40afe6c713d3b3a38995e1df913a58bd40afe6c713d3b3a38995e1df91\niv = 000102030405060708090a0b0c0d0e0f101112130552a411\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 55cc2b7c86aa8ef3dc2545e3e79c9afa402316a313248720fc842d2942908a25b35c01da27742ffbd773c3339396acf9\nresult = valid\ntag = 25545d0636b19f9319ff5bb0191c89fb\n\n# tcId = 253\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = deffffffffffffffffffffffffffffff0846af843d1c80165bbd914582a77702deffffffffffffffffffffffffffffffd7010c1eb016839cbd95cd5eaad61a03deffffffffffffffffffffffffffffffd7010c1eb016839cbd95cd5eaad61a03\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 690ed780cbde3c9617205cba5e51ca35b6361e9d88e9f262299d7730839f48db3a32d61828f3f54056c1f9113f9b8e180d52a0ddb24c9b3018d53415e705c35e1fa08298547a71b0467c59e48a75cea42a00d0f01b609d7723ec2d39056428f1\nresult = valid\ntag = 92a14f8e928d42edaab17206102c8123\n\n# tcId = 254\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c2ffffffffffffffffffffffffffffffa4c3923709138ea291658f729ecc9607c2ffffffffffffffffffffffffffffffa14efbcfdb92781b6cc7c8881a3e0000c2ffffffffffffffffffffffffffffffa14efbcfdb92781b6cc7c8881a3e0000\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 750ed780cbde3c9617205cba5e51ca351ab3232ebce6fcd6e34569079ff4a9de2632d61828f3f54056c1f9113f9b8e187b1d570cd9c860b7c98731c357edd95d03a08298547a71b0467c59e48a75cea45c4f272170e466f0f2be28efb58c32f2\nresult = valid\ntag = 64d2438f32085bfa32287509bce9ba2b\n\n# tcId = 255\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d1ffffffffffffffffffffffffffffffe181fc89d718a153ed384da8b9486e07ccffffffffffffffffffffffffffffffb03d59234a13a4d94f1189c1e1771108ccffffffffffffffffffffffffffffffb03d59234a13a4d94f1189c1e1771108\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 660ed780cbde3c9617205cba5e51ca355ff14d9062edd3279f18abddb87051de2832d61828f3f54056c1f9113f9b8e186a6ef5e04849bc75ea51708aaca4c8550da08298547a71b0467c59e48a75cea44d3c85cde165ba32d16869a64ec523fa\nresult = valid\ntag = ac951493b2f2bc2e53027f156ce0a14c\n\n# tcId = 256\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c5ffffffffffffffffffffffffffffffe88c558ed19aa983f73d0608452c2b04bbffffffffffffffffffffffffffffffb748b2274495ac095a1642216d5bce04bbffffffffffffffffffffffffffffffb748b2274495ac095a1642216d5bce04\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 720ed780cbde3c9617205cba5e51ca3556fce497646fdbf7851de07d441414dd5f32d61828f3f54056c1f9113f9b8e186d1b1ee446cfb4a5ff56bb6a208817597aa08298547a71b0467c59e48a75cea44a496ec9efe3b2e2c46fa246c2e9fcf6\nresult = valid\ntag = c689d997d2573770fb528b24c894c275\n\n# tcId = 257\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c8ffffffffffffffffffffffffffffff2c5618e59922c5645d167d9deb8bbf00b5fffffffffffffffffffffffffffffffb11757e0c1dc8eabfeeb8b613bb6201b5fffffffffffffffffffffffffffffffb11757e0c1dc8eabfeeb8b613bb6201\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 7f0ed780cbde3c9617205cba5e51ca359226a9fc2cd7b7102f369be8eab380d95132d61828f3f54056c1f9113f9b8e182142d9bd0e47d0461aae41fd5e68bb5c74a08298547a71b0467c59e48a75cea40610a990a76bd601219758d1bc0950f3\nresult = valid\ntag = 28416fa072a713e6c37da13fd43fcabf\n\n# tcId = 258\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = acffffffffffffffffffffffffffffffc8d3fb976519d3f093be7aca07b1de05ffffffffffffffffffffffffffffffff14eb18cf77bdfc3139e6b8adfa8f46b7ffffffffffffffffffffffffffffffff14eb18cf77bdfc3139e6b8adfa8f46b7\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1b0ed780cbde3c9617205cba5e51ca3576a34a8ed0eca", + "184e19e9cbf0689e1dc1b32d61828f3f54056c1f9113f9b8e18ceb8b40c75e7e49d9ca641e6b75c9fea3ea08298547a71b0467c59e48a75cea4e9eac421dccbe2daa79f58ca553d7445\nresult = valid\ntag = fa7163a112222cf34bf4a34280fd03c8\n\n# tcId = 259\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = f4ffffffffffffffffffffffffffffff37ed06bed42b3371a0690348c3a56b07f5ffffffffffffffffffffffffffffffef7b1b4d75f541f662c72654635e0c05f5ffffffffffffffffffffffffffffffef7b1b4d75f541f662c72654635e0c05\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 430ed780cbde3c9617205cba5e51ca35899db7a761de4105d249e53dc29d54de1132d61828f3f54056c1f9113f9b8e183528b78e77af595ac787df1f2e8dd55834a08298547a71b0467c59e48a75cea4127ac7a3de835f1dfcbec633ccec3ef7\nresult = valid\ntag = d79da397c4431ee1c2b58810ece4491e\n\n# tcId = 260\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d9ffffffffffffffffffffffffffffff013af66f00a828f04e9bfe71330d5104d9ffffffffffffffffffffffffffffffb9c80affa071377511f9217ed3c5f101d9ffffffffffffffffffffffffffffffb9c80affa071377511f9217ed3c5f101\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 6e0ed780cbde3c9617205cba5e51ca35bf4a4776b55d5a843cbb180432356edd3d32d61828f3f54056c1f9113f9b8e18639ba63ca22b2fd9b4b9d8359e16285c18a08298547a71b0467c59e48a75cea444c9d6110b07299e8f80c1197c77c3f3\nresult = valid\ntag = a9ce979864be36ee4a2c8b1398a28326\n\n# tcId = 261\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = adffffffffffffffffffffffffffffffd0ee341aa23be6af817dae6a277a5f01b7ffffffffffffffffffffffffffffff24d5434233947c397a23d4937f95ba03b7ffffffffffffffffffffffffffffff24d5434233947c397a23d4937f95ba03\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1a0ed780cbde3c9617205cba5e51ca356e9e850317ce94dbf35d481f264260d85332d61828f3f54056c1f9113f9b8e18fe86ef8131ce6495df632dd83246635e76a08298547a71b0467c59e48a75cea4d9d49fac98e262d2e45a34f4d02788f1\nresult = valid\ntag = d48e13f63365ba66c44270d827d787cf\n\n# tcId = 262\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = ddffffffffffffffffffffffffffffffa53e62ebb171667070059544ebd43401f0ffffffffffffffffffffffffffffff7e4f23a2612890fdfe78a47d73dc4705f0ffffffffffffffffffffffffffffff7e4f23a2612890fdfe78a47d73dc4705\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 6a0ed780cbde3c9617205cba5e51ca351b4ed3f20484140402257331eaec0bd81432d61828f3f54056c1f9113f9b8e18a41c8f61637288515b385d363e0f9e5831a08298547a71b0467c59e48a75cea4834eff4cca5e8e166001441adc6e75f7\nresult = valid\ntag = edaccb5e75b74aed654a70adeb3fc883\n\n# tcId = 263\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 7b045b2795580ba16bdcbb2467be37e706b7b836937221c94c7575bfff2692fe06b7b836937221c94c7575bfff2692fe\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = ccf57358a179c8c883031861c610022db8c7092f268753bd3e5593cafe1ead27e27a91d1447e2b76e54b73513f42e319\nresult = valid\ntag = 6c49f0fd16742ea3fc257e460099469a\n\n# tcId = 264\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 1f2b89bfe0e56bbec08d74fdb2240606a9dde6cedeff81e6a1262e984b8d601da9dde6cedeff81e6a1262e984b8d601d\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = a8daa1c0d4c4a8d72852d7b8138a33cc17ad57d76b0af392d306c8ed4ab55fc44d10cf2909f38b59081828768be911fa\nresult = valid\ntag = 3e7ae4feb6ee46b0849c8049ac5680a2\n\n# tcId = 265\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d6ffffffffffffffffffffffffffffff587d870a45a8fcb52ee4c626300abb03d6fffffffffffffffffffffffffffffff6cccd9d5fbf30391a0ad3420e7f6c06d6fffffffffffffffffffffffffffffff6cccd9d5fbf30391a0ad3420e7f6c06\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 610ed780cbde3c9617205cba5e51ca35e60d3613f05d8ec15cc42053313284da3232d61828f3f54056c1f9113f9b8e182c9f615e5de52895bf4a2a0943acb55b17a08298547a71b0467c59e48a75cea40bcd1173f4c92ed284733325a1cd5ef4\nresult = valid\ntag = c30d6694ea7011f02164a2035ae67221\n\n# tcId = 266\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = aaffffffffffffffffffffffffffffff85039d322c090c408537c64d1f79b801abffffffffffffffffffffffffffffff4ddc21b4197187be7a22934de1bd4303abffffffffffffffffffffffffffffff4ddc21b4197187be7a22934de1bd4303\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1d0ed780cbde3c9617205cba5e51ca353b732c2b99fc7e34f71720381e4187d84f32d61828f3f54056c1f9113f9b8e18978f8d771b2b9f12df626a06ac6e9a5e6aa08298547a71b0467c59e48a75cea4b0ddfd5ab2079955e45b732a4e0f71f1\nresult = valid\ntag = c75333a577a5b1e78f28df1cca585f1a\n\n# tcId = 267\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = edffffffffffffffffffffffffffffff221a96a56623b1d6a401904e2348f607ddffffffffffffffffffffffffffffff2aaf479f960f07c46804e8da4c866903ddffffffffffffffffffffffffffffff2aaf479f960f07c46804e8da4c866903\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 5a0ed780cbde3c9617205cba5e51ca359c6a27bcd3d6c3a2d621763b2270c9de3932d61828f3f54056c1f9113f9b8e18f0fceb5c94551f68cd4411910155b05e1ca08298547a71b0467c59e48a75cea4d7ae9b713d79192ff67d08bde3345bf1\nresult = valid\ntag = 79d53d3dd5457757caef7dc3cef74cac\n\n# tcId = 268\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 85fd65ab462899540ac38c1245647a010fb0c3ba4442bf7cec5b46adddcbd4180fb0c3ba4442bf7cec5b46adddcbd418\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 320c4dd472095a3de21c2f57e4ca4fcbb1c072a3f1b7cd089e7ba0d8dcf3ebc1eb7dea5d934eb5c3456540431dafa5ff\nresult = valid\ntag = e2714a882d47f25b7373b9e68edc1721\n\n# tcId = 269\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = deffffffffffffffffffffffffffffff0946af843d1c80165bbd914582a77702ffffffffffffffffffffffffffffffffb4c9b7e3bb757fcb42cdc3be911b5a17ffffffffffffffffffffffffffffffffb4c9b7e3bb757fcb42cdc3be911b5a17\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 690ed780cbde3c9617205cba5e51ca35b7361e9d88e9f262299d7730839f48db1b32d61828f3f54056c1f9113f9b8e186e9a1b20b92f6767e78d3af5dcc8834a3ea08298547a71b0467c59e48a75cea449c86b0d10036120dcb423d93ea968e5\nresult = valid\ntag = 9f8e29a9e65f1e0e9c322b43fc73d0ff\n\n# tcId = 270\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = deffffffffffffffffffffffffffffff0746af843d1c80165bbd914582a77702baffffffffffffffffffffffffffffff70cc3c5b8427d094d0c1de07c7ca8807baffffffffffffffffffffffffffffff70cc3c5b8427d094d0c1de07c7ca8807\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 690ed780cbde3c9617205cba5e51ca35b9361e9d88e9f262299d7730839f48db5e32d61828f3f54056c1f9113f9b8e18aa9f9098867dc8387581274c8a19515a7ba08298547a71b0467c59e48a75cea48dcde0b52f51ce7f4eb83e606878baf5\nresult = valid\ntag = 80b475733ebb66ccb930bac923e43147\n\n# tcId = 271\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 1520f59fc1962056251eff9bfa09c7b1d8ffffffffffffffffffffffffffffff88d0a9d5fe3a36639d30c6a4ce086700d8ffffffffffffffffffffffffffffff88d0a9d5fe3a36639d30c6a4ce086700\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = a2d1dde0f5b7e33fcdc15cde5ba7f27b668f4ee64a0a8d8b8ddf198afec7c0266c1d803229363cdc340ec04a0e6c16e702ac533cfda5e7535abf06b4b22c26a2498fd4b255bfb82c24b360bfbb82565b\nresult = valid\ntag = 6818e1b9360bcb4c10bb8d7b2c5679f1\n\n# tcId = 272\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = f0ffffffffffffffffffffffffffffffbcb469752d29ed0eedde97729c066401afffffffffffffffffffffffffffffff0e4b7962ddc437d295321d62145e4605affffffffffffff", + "fffffffffffffffff0e4b7962ddc437d295321d62145e4605\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 470ed780cbde3c9617205cba5e51ca3502c4d86c98dc9f7a9ffe71079d3e5bd84b32d61828f3f54056c1f9113f9b8e18d418d5a1df9e2f7e3072e429598d9f586ea08298547a71b0467c59e48a75cea4f34aa58c76b229390b4bfd05bbec74f7\nresult = valid\ntag = 612c9d78f50e3203f04ec9f36c2ceb36\n\n# tcId = 273\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = d7ffffffffffffffffffffffffffffff6f256871f09983b96827d150c970bf03ffffffffffffffffffffffffffffffff373460e4ba4c6d30e7dce9f0a58d4eb9ffffffffffffffffffffffffffffffff373460e4ba4c6d30e7dce9f0a58d4eb9\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 600ed780cbde3c9617205cba5e51ca35d155d968456cf1cd1a073725c84880da1b32d61828f3f54056c1f9113f9b8e18ed67cc27b816759c429c10bbe85e97e43ea08298547a71b0467c59e48a75cea4ca35bc0a113a73db79a509970a3f7c4b\nresult = valid\ntag = c4ad8c8e3aac88f04c4f33077b9b8f25\n\n# tcId = 274\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = bcffffffffffffffffffffffffffffff397257231c1679381759cc7a39d8a40048b0397e9eb0b864aadde6cedeff81e648b0397e9eb0b864aadde6cedeff81e6\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 0b0ed780cbde3c9617205cba5e51ca358702e63aa9e30b4c65792a0f38e09bd9ac7d109949bcb2db03e3e0201e9bf00192e395bd9ceaa0c80f9d1f85932c58bb\nresult = valid\ntag = b744dd541b16fb820525d29042e77b16\n\n# tcId = 275\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 62240a07ec23035a1df6e50c92fdf5edebd66716ea3d1982ff8e9fa72a665005ebd66716ea3d1982ff8e9fa72a665005\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = d5d52278d802c033f52946493353c02755a6d60f5fc86bf68dae79d22b5e6fdc0f1b4ef13d31133d56b09949ea0221e2\nresult = valid\ntag = ead346fd87d575c364f6514fcfc6e9a7\n\n# tcId = 276\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = eaffffffffffffffffffffffffffffff013b5680439a77e650b8d8e5f6c3ba05efffffffffffffffffffffffffffffffd0f6b219b6947a6cb39014ff1ef35d06efffffffffffffffffffffffffffffffd0f6b219b6947a6cb39014ff1ef35d06\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 5d0ed780cbde3c9617205cba5e51ca35bf4be799f66f059222983e90f7fb85dc0b32d61828f3f54056c1f9113f9b8e180aa51edab4ce62c016d0edb45320845b2ea08298547a71b0467c59e48a75cea42df76ef71de264872de9f498b1416ff4\nresult = valid\ntag = 78ad8a897228c8ab026166f7b37760fa\n\n# tcId = 277\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = f9ffffffffffffffffffffffffffffff3ef9bfd211a08a97ac8b961b12409205faffffffffffffffffffffffffffffff0db51c6c849a8d1d0f64d2343a6f3506faffffffffffffffffffffffffffffff0db51c6c849a8d1d0f64d2343a6f3506\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 4e0ed780cbde3c9617205cba5e51ca3580890ecba455f8e3deab706e1378addc1e32d61828f3f54056c1f9113f9b8e18d7e6b0af86c095b1aa242b7f77bcec5b3ba08298547a71b0467c59e48a75cea4f0b4c0822fec93f6911d325395dd07f4\nresult = valid\ntag = c0705b8df2122ae0223b7003646e471b\n\n# tcId = 278\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = c6ffffffffffffffffffffffffffffff9e3c43af626435682efa462b6934e306adffffffffffffffffffffffffffffffade67189c4fdb72fbd23204e70d05802adffffffffffffffffffffffffffffffade67189c4fdb72fbd23204e70d05802\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 710ed780cbde3c9617205cba5e51ca35204cf2b6d791471c5cdaa05e680cdcdf4932d61828f3f54056c1f9113f9b8e1877b5dd4ac6a7af831863d9053d03815f6ca08298547a71b0467c59e48a75cea450e7ad676f8ba9c4235ac029df626af0\nresult = valid\ntag = d477566543e826f3c7f31248fd4452f6\n\n# tcId = 279\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = abffffffffffffffffffffffffffffff688932618ee02ae7dc2b4255d99bc803ffffffffffffffffffffffffffffffff363974d22fc9280ef6660c2df7b76e76ffffffffffffffffffffffffffffffff363974d22fc9280ef6660c2df7b76e76\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 1c0ed780cbde3c9617205cba5e51ca35d6f983783b155893ae0ba420d8a3f7da1b32d61828f3f54056c1f9113f9b8e18ec6ad8112d9330a25326f566ba64b72b3ea08298547a71b0467c59e48a75cea4cb38a83c84bf36e5681fec4a58055c84\nresult = valid\ntag = a6a84a66e3623f00506a154ba9028cfe\n\n# tcId = 280\n# edge case intermediate sums in poly1305\naad = ffffffff\nct = 299d68726335317373895f9688972302c3ffffffffffffffffffffffffffffffb9b4c4ba39eebda9964cece40605f804c3ffffffffffffffffffffffffffffffb9b4c4ba39eebda9964cece40605f804\niv = 000102030405060708090a0b0c0d0e0f10111213019836bb\nkey = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f\nmsg = 9e6c400d5714f21a9b56fcd3293916c87d8f4ee64a0a8d8b8ddf198afec7c0265d79ed5deee2b7163f72ea0ac66189e319ac533cfda5e7535abf06b4b22c26a278ebb9dd926b33e62fcf4aff738fc95f\nresult = valid\ntag = 85b241bbbd0556368ec3fb749e7601ea\n\n[ivSize = 64]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 281\n# invalid nonce size\naad = \nct = \niv = 0001020304050607\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 96]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 282\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 160]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 283\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d0e0f10111213\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n[ivSize = 256]\n[keySize = 256]\n[tagSize = 128]\n\n# tcId = 284\n# invalid nonce size\naad = \nct = \niv = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f\nkey = 202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f\nmsg = \nresult = invalid\ntag = \n\n", }; static std::string AssembleString(const char **data, size_t len) { std::string ret; @@ -3458,240 +4548,465 @@ std::string GetTestData(const char *path) { if (strcmp(path, "crypto/cipher_extra/test/aes_128_gcm_tests.txt") == 0) { return AssembleString(kData7, kLen7); } - if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_192_gcm_tests.txt") == 0) { return AssembleString(kData8, kLen8); } - if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt") == 0) { return AssembleString(kData9, kLen9); } - if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha256_tls_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt") == 0) { return AssembleString(kData10, kLen10); } - if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha384_tls_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha256_tls_tests.txt") == 0) { return AssembleString(kData11, kLen11); } - if (strcmp(path, "crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_256_cbc_sha384_tls_tests.txt") == 0) { return AssembleString(kData12, kLen12); } - if (strcmp(path, "crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt") == 0) { return AssembleString(kData13, kLen13); } - if (strcmp(path, "crypto/cipher_extra/test/aes_256_gcm_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt") == 0) { return AssembleString(kData14, kLen14); } - if (strcmp(path, "crypto/cipher_extra/test/chacha20_poly1305_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/aes_256_gcm_tests.txt") == 0) { return AssembleString(kData15, kLen15); } - if (strcmp(path, "crypto/cipher_extra/test/xchacha20_poly1305_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/chacha20_poly1305_tests.txt") == 0) { return AssembleString(kData16, kLen16); } - if (strcmp(path, "crypto/cipher_extra/test/cipher_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/xchacha20_poly1305_tests.txt") == 0) { return AssembleString(kData17, kLen17); } - if (strcmp(path, "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/cipher_tests.txt") == 0) { return AssembleString(kData18, kLen18); } - if (strcmp(path, "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt") == 0) { return AssembleString(kData19, kLen19); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt") == 0) { return AssembleString(kData20, kLen20); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt") == 0) { return AssembleString(kData21, kLen21); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt") == 0) { return AssembleString(kData22, kLen22); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt") == 0) { return AssembleString(kData23, kLen23); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt") == 0) { return AssembleString(kData24, kLen24); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt") == 0) { return AssembleString(kData25, kLen25); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt") == 0) { return AssembleString(kData26, kLen26); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt") == 0) { return AssembleString(kData27, kLen27); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt") == 0) { return AssembleString(kData28, kLen28); } - if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt") == 0) { return AssembleString(kData29, kLen29); } - if (strcmp(path, "crypto/curve25519/ed25519_tests.txt") == 0) { + if (strcmp(path, "crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt") == 0) { return AssembleString(kData30, kLen30); } - if (strcmp(path, "crypto/cmac/cavp_3des_cmac_tests.txt") == 0) { + if (strcmp(path, "crypto/curve25519/ed25519_tests.txt") == 0) { return AssembleString(kData31, kLen31); } - if (strcmp(path, "crypto/cmac/cavp_aes128_cmac_tests.txt") == 0) { + if (strcmp(path, "crypto/cmac/cavp_3des_cmac_tests.txt") == 0) { return AssembleString(kData32, kLen32); } - if (strcmp(path, "crypto/cmac/cavp_aes192_cmac_tests.txt") == 0) { + if (strcmp(path, "crypto/cmac/cavp_aes128_cmac_tests.txt") == 0) { return AssembleString(kData33, kLen33); } - if (strcmp(path, "crypto/cmac/cavp_aes256_cmac_tests.txt") == 0) { + if (strcmp(path, "crypto/cmac/cavp_aes192_cmac_tests.txt") == 0) { return AssembleString(kData34, kLen34); } - if (strcmp(path, "crypto/ecdh_extra/ecdh_tests.txt") == 0) { + if (strcmp(path, "crypto/cmac/cavp_aes256_cmac_tests.txt") == 0) { return AssembleString(kData35, kLen35); } - if (strcmp(path, "crypto/evp/evp_tests.txt") == 0) { + if (strcmp(path, "crypto/ecdh_extra/ecdh_tests.txt") == 0) { return AssembleString(kData36, kLen36); } - if (strcmp(path, "crypto/evp/scrypt_tests.txt") == 0) { + if (strcmp(path, "crypto/evp/evp_tests.txt") == 0) { return AssembleString(kData37, kLen37); } - if (strcmp(path, "crypto/fipsmodule/aes/aes_tests.txt") == 0) { + if (strcmp(path, "crypto/evp/scrypt_tests.txt") == 0) { return AssembleString(kData38, kLen38); } - if (strcmp(path, "crypto/fipsmodule/bn/bn_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/aes/aes_tests.txt") == 0) { return AssembleString(kData39, kLen39); } - if (strcmp(path, "crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/bn/bn_tests.txt") == 0) { return AssembleString(kData40, kLen40); } - if (strcmp(path, "crypto/fipsmodule/ec/p256-x86_64_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/bn/miller_rabin_tests.txt") == 0) { return AssembleString(kData41, kLen41); } - if (strcmp(path, "crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt") == 0) { return AssembleString(kData42, kLen42); } - if (strcmp(path, "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/ec/p256-x86_64_tests.txt") == 0) { return AssembleString(kData43, kLen43); } - if (strcmp(path, "crypto/fipsmodule/modes/gcm_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt") == 0) { return AssembleString(kData44, kLen44); } - if (strcmp(path, "crypto/fipsmodule/rand/ctrdrbg_vectors.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt") == 0) { return AssembleString(kData45, kLen45); } - if (strcmp(path, "crypto/hmac_extra/hmac_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/modes/gcm_tests.txt") == 0) { return AssembleString(kData46, kLen46); } - if (strcmp(path, "crypto/poly1305/poly1305_tests.txt") == 0) { + if (strcmp(path, "crypto/fipsmodule/rand/ctrdrbg_vectors.txt") == 0) { return AssembleString(kData47, kLen47); } - if (strcmp(path, "crypto/siphash/siphash_tests.txt") == 0) { + if (strcmp(path, "crypto/hmac_extra/hmac_tests.txt") == 0) { return AssembleString(kData48, kLen48); } - if (strcmp(path, "crypto/x509/many_constraints.pem") == 0) { + if (strcmp(path, "crypto/hpke/hpke_test_vectors.txt") == 0) { return AssembleString(kData49, kLen49); } - if (strcmp(path, "crypto/x509/many_names1.pem") == 0) { + if (strcmp(path, "crypto/poly1305/poly1305_tests.txt") == 0) { return AssembleString(kData50, kLen50); } - if (strcmp(path, "crypto/x509/many_names2.pem") == 0) { + if (strcmp(path, "crypto/siphash/siphash_tests.txt") == 0) { return AssembleString(kData51, kLen51); } - if (strcmp(path, "crypto/x509/many_names3.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca.pem") == 0) { return AssembleString(kData52, kLen52); } - if (strcmp(path, "crypto/x509/some_names1.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_0.pem") == 0) { return AssembleString(kData53, kLen53); } - if (strcmp(path, "crypto/x509/some_names2.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_1.pem") == 0) { return AssembleString(kData54, kLen54); } - if (strcmp(path, "crypto/x509/some_names3.pem") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_ca_pathlen_10.pem") == 0) { return AssembleString(kData55, kLen55); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_leaf.pem") == 0) { return AssembleString(kData56, kLen56); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_cmac_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/basic_constraints_none.pem") == 0) { return AssembleString(kData57, kLen57); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_siv_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate.pem") == 0) { return AssembleString(kData58, kLen58); } - if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_authority_key_identifier.pem") == 0) { return AssembleString(kData59, kLen59); } - if (strcmp(path, "third_party/wycheproof_testvectors/chacha20_poly1305_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_basic_constraints.pem") == 0) { return AssembleString(kData60, kLen60); } - if (strcmp(path, "third_party/wycheproof_testvectors/dsa_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_ext_key_usage.pem") == 0) { return AssembleString(kData61, kLen61); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp224r1_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_key_usage.pem") == 0) { return AssembleString(kData62, kLen62); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp256r1_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_name_constraints.pem") == 0) { return AssembleString(kData63, kLen63); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp384r1_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_subject_alt_name.pem") == 0) { return AssembleString(kData64, kLen64); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp521r1_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_intermediate_subject_key_identifier.pem") == 0) { return AssembleString(kData65, kLen65); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf.pem") == 0) { return AssembleString(kData66, kLen66); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_authority_key_identifier.pem") == 0) { return AssembleString(kData67, kLen67); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_basic_constraints.pem") == 0) { return AssembleString(kData68, kLen68); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_ext_key_usage.pem") == 0) { return AssembleString(kData69, kLen69); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_key_usage.pem") == 0) { return AssembleString(kData70, kLen70); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_name_constraints.pem") == 0) { return AssembleString(kData71, kLen71); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_subject_alt_name.pem") == 0) { return AssembleString(kData72, kLen72); } - if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_leaf_subject_key_identifier.pem") == 0) { return AssembleString(kData73, kLen73); } - if (strcmp(path, "third_party/wycheproof_testvectors/eddsa_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root.pem") == 0) { return AssembleString(kData74, kLen74); } - if (strcmp(path, "third_party/wycheproof_testvectors/kwp_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_authority_key_identifier.pem") == 0) { return AssembleString(kData75, kLen75); } - if (strcmp(path, "third_party/wycheproof_testvectors/kw_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_basic_constraints.pem") == 0) { return AssembleString(kData76, kLen76); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_ext_key_usage.pem") == 0) { return AssembleString(kData77, kLen77); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_key_usage.pem") == 0) { return AssembleString(kData78, kLen78); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_name_constraints.pem") == 0) { return AssembleString(kData79, kLen79); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_subject_alt_name.pem") == 0) { return AssembleString(kData80, kLen80); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/invalid_extension_root_subject_key_identifier.pem") == 0) { return AssembleString(kData81, kLen81); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/many_constraints.pem") == 0) { return AssembleString(kData82, kLen82); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_misc_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/many_names1.pem") == 0) { return AssembleString(kData83, kLen83); } - if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/many_names2.pem") == 0) { return AssembleString(kData84, kLen84); } - if (strcmp(path, "third_party/wycheproof_testvectors/x25519_test.txt") == 0) { + if (strcmp(path, "crypto/x509/test/many_names3.pem") == 0) { return AssembleString(kData85, kLen85); } + if (strcmp(path, "crypto/x509/test/some_names1.pem") == 0) { + return AssembleString(kData86, kLen86); + } + if (strcmp(path, "crypto/x509/test/some_names2.pem") == 0) { + return AssembleString(kData87, kLen87); + } + if (strcmp(path, "crypto/x509/test/some_names3.pem") == 0) { + return AssembleString(kData88, kLen88); + } + if (strcmp(path, "third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt") == 0) { + return AssembleString(kData89, kLen89); + } + if (strcmp(path, "third_party/wycheproof_testvectors/aes_cmac_test.txt") == 0) { + return AssembleString(kData90, kLen90); + } + if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_siv_test.txt") == 0) { + return AssembleString(kData91, kLen91); + } + if (strcmp(path, "third_party/wycheproof_testvectors/aes_gcm_test.txt") == 0) { + return AssembleString(kData92, kLen92); + } + if (strcmp(path, "third_party/wycheproof_testvectors/chacha20_poly1305_test.txt") == 0) { + return AssembleString(kData93, kLen93); + } + if (strcmp(path, "third_party/wycheproof_testvectors/dsa_test.txt") == 0) { + return AssembleString(kData94, kLen94); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp224r1_test.txt") == 0) { + return AssembleString(kData95, kLen95); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp256r1_test.txt") == 0) { + return AssembleString(kData96, kLen96); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp384r1_test.txt") == 0) { + return AssembleString(kData97, kLen97); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdh_secp521r1_test.txt") == 0) { + return AssembleString(kData98, kLen98); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt") == 0) { + return AssembleString(kData99, kLen99); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt") == 0) { + return AssembleString(kData100, kLen100); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt") == 0) { + return AssembleString(kData101, kLen101); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt") == 0) { + return AssembleString(kData102, kLen102); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt") == 0) { + return AssembleString(kData103, kLen103); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt") == 0) { + return AssembleString(kData104, kLen104); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt") == 0) { + return AssembleString(kData105, kLen105); + } + if (strcmp(path, "third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt") == 0) { + return AssembleString(kData106, kLen106); + } + if (strcmp(path, "third_party/wycheproof_testvectors/eddsa_test.txt") == 0) { + return AssembleString(kData107, kLen107); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha1_test.txt") == 0) { + return AssembleString(kData108, kLen108); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha256_test.txt") == 0) { + return AssembleString(kData109, kLen109); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha384_test.txt") == 0) { + return AssembleString(kData110, kLen110); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hkdf_sha512_test.txt") == 0) { + return AssembleString(kData111, kLen111); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha1_test.txt") == 0) { + return AssembleString(kData112, kLen112); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha224_test.txt") == 0) { + return AssembleString(kData113, kLen113); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha256_test.txt") == 0) { + return AssembleString(kData114, kLen114); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha384_test.txt") == 0) { + return AssembleString(kData115, kLen115); + } + if (strcmp(path, "third_party/wycheproof_testvectors/hmac_sha512_test.txt") == 0) { + return AssembleString(kData116, kLen116); + } + if (strcmp(path, "third_party/wycheproof_testvectors/kwp_test.txt") == 0) { + return AssembleString(kData117, kLen117); + } + if (strcmp(path, "third_party/wycheproof_testvectors/kw_test.txt") == 0) { + return AssembleString(kData118, kLen118); + } + if (strcmp(path, "third_party/wycheproof_testvectors/primality_test.txt") == 0) { + return AssembleString(kData119, kLen119); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.txt") == 0) { + return AssembleString(kData120, kLen120); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.txt") == 0) { + return AssembleString(kData121, kLen121); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.txt") == 0) { + return AssembleString(kData122, kLen122); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.txt") == 0) { + return AssembleString(kData123, kLen123); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.txt") == 0) { + return AssembleString(kData124, kLen124); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.txt") == 0) { + return AssembleString(kData125, kLen125); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.txt") == 0) { + return AssembleString(kData126, kLen126); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.txt") == 0) { + return AssembleString(kData127, kLen127); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.txt") == 0) { + return AssembleString(kData128, kLen128); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.txt") == 0) { + return AssembleString(kData129, kLen129); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.txt") == 0) { + return AssembleString(kData130, kLen130); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.txt") == 0) { + return AssembleString(kData131, kLen131); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.txt") == 0) { + return AssembleString(kData132, kLen132); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.txt") == 0) { + return AssembleString(kData133, kLen133); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.txt") == 0) { + return AssembleString(kData134, kLen134); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.txt") == 0) { + return AssembleString(kData135, kLen135); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.txt") == 0) { + return AssembleString(kData136, kLen136); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_oaep_misc_test.txt") == 0) { + return AssembleString(kData137, kLen137); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.txt") == 0) { + return AssembleString(kData138, kLen138); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.txt") == 0) { + return AssembleString(kData139, kLen139); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.txt") == 0) { + return AssembleString(kData140, kLen140); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt") == 0) { + return AssembleString(kData141, kLen141); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt") == 0) { + return AssembleString(kData142, kLen142); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt") == 0) { + return AssembleString(kData143, kLen143); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.txt") == 0) { + return AssembleString(kData144, kLen144); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.txt") == 0) { + return AssembleString(kData145, kLen145); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.txt") == 0) { + return AssembleString(kData146, kLen146); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_pss_misc_test.txt") == 0) { + return AssembleString(kData147, kLen147); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.txt") == 0) { + return AssembleString(kData148, kLen148); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.txt") == 0) { + return AssembleString(kData149, kLen149); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.txt") == 0) { + return AssembleString(kData150, kLen150); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.txt") == 0) { + return AssembleString(kData151, kLen151); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.txt") == 0) { + return AssembleString(kData152, kLen152); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.txt") == 0) { + return AssembleString(kData153, kLen153); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.txt") == 0) { + return AssembleString(kData154, kLen154); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.txt") == 0) { + return AssembleString(kData155, kLen155); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.txt") == 0) { + return AssembleString(kData156, kLen156); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.txt") == 0) { + return AssembleString(kData157, kLen157); + } + if (strcmp(path, "third_party/wycheproof_testvectors/rsa_signature_test.txt") == 0) { + return AssembleString(kData158, kLen158); + } + if (strcmp(path, "third_party/wycheproof_testvectors/x25519_test.txt") == 0) { + return AssembleString(kData159, kLen159); + } + if (strcmp(path, "third_party/wycheproof_testvectors/xchacha20_poly1305_test.txt") == 0) { + return AssembleString(kData160, kLen160); + } fprintf(stderr, "File not embedded: %s.\n", path); abort(); } diff --git a/contrib/boringssl-cmake/err_data.c b/contrib/boringssl-cmake/err_data.c index fee7d1da69a..ad0d9f1662c 100644 --- a/contrib/boringssl-cmake/err_data.c +++ b/contrib/boringssl-cmake/err_data.c @@ -50,8 +50,9 @@ OPENSSL_STATIC_ASSERT(ERR_LIB_HMAC == 28, "library value changed"); OPENSSL_STATIC_ASSERT(ERR_LIB_DIGEST == 29, "library value changed"); OPENSSL_STATIC_ASSERT(ERR_LIB_CIPHER == 30, "library value changed"); OPENSSL_STATIC_ASSERT(ERR_LIB_HKDF == 31, "library value changed"); -OPENSSL_STATIC_ASSERT(ERR_LIB_USER == 32, "library value changed"); -OPENSSL_STATIC_ASSERT(ERR_NUM_LIBS == 33, "number of libraries changed"); +OPENSSL_STATIC_ASSERT(ERR_LIB_TRUST_TOKEN == 32, "library value changed"); +OPENSSL_STATIC_ASSERT(ERR_LIB_USER == 33, "library value changed"); +OPENSSL_STATIC_ASSERT(ERR_NUM_LIBS == 34, "number of libraries changed"); const uint32_t kOpenSSLReasonValues[] = { 0xc32083a, @@ -75,54 +76,54 @@ const uint32_t kOpenSSLReasonValues[] = { 0xc3b00ea, 0xc3b88d6, 0x10320847, - 0x10329585, - 0x10331591, - 0x103395aa, - 0x103415bd, + 0x103295a9, + 0x103315b5, + 0x103395ce, + 0x103415e1, 0x10348f27, 0x10350c60, - 0x103595d0, - 0x103615fa, - 0x1036960d, - 0x1037162c, - 0x10379645, - 0x1038165a, - 0x10389678, - 0x10391687, - 0x103996a3, - 0x103a16be, - 0x103a96cd, - 0x103b16e9, - 0x103b9704, - 0x103c172a, + 0x103595f4, + 0x1036161e, + 0x10369631, + 0x10371650, + 0x10379669, + 0x1038167e, + 0x1038969c, + 0x103916ab, + 0x103996c7, + 0x103a16e2, + 0x103a96f1, + 0x103b170d, + 0x103b9728, + 0x103c174e, 0x103c80ea, - 0x103d173b, - 0x103d974f, - 0x103e176e, - 0x103e977d, - 0x103f1794, - 0x103f97a7, + 0x103d175f, + 0x103d9773, + 0x103e1792, + 0x103e97a1, + 0x103f17b8, + 0x103f97cb, 0x10400c24, - 0x104097ba, - 0x104117d8, - 0x104197eb, - 0x10421805, - 0x10429815, - 0x10431829, - 0x1043983f, - 0x10441857, - 0x1044986c, - 0x10451880, - 0x10459892, + 0x104097de, + 0x104117fc, + 0x1041980f, + 0x10421829, + 0x10429839, + 0x1043184d, + 0x10439863, + 0x1044187b, + 0x10449890, + 0x104518a4, + 0x104598b6, 0x104605fd, 0x1046894f, - 0x104718a7, - 0x104798be, - 0x104818d3, - 0x104898e1, + 0x104718cb, + 0x104798e2, + 0x104818f7, + 0x10489905, 0x10490e73, - 0x1049971b, - 0x104a15e5, + 0x1049973f, + 0x104a1609, 0x14320c07, 0x14328c15, 0x14330c24, @@ -135,52 +136,54 @@ const uint32_t kOpenSSLReasonValues[] = { 0x18338f93, 0x18340fa7, 0x183480ea, - 0x18350fbc, - 0x18358fd4, - 0x18360fe9, - 0x18368ffd, - 0x18371021, - 0x18379037, - 0x1838104b, - 0x1838905b, + 0x18350fc6, + 0x18358fde, + 0x18360ff3, + 0x18369007, + 0x1837102b, + 0x18379041, + 0x18381055, + 0x18389065, 0x18390a75, - 0x1839906b, - 0x183a1091, - 0x183a90b7, + 0x18399075, + 0x183a109b, + 0x183a90c1, 0x183b0c7f, - 0x183b90ec, - 0x183c10fe, - 0x183c9109, - 0x183d1119, - 0x183d912a, - 0x183e113b, - 0x183e914d, - 0x183f1176, - 0x183f918f, - 0x184011a7, + 0x183b9110, + 0x183c1122, + 0x183c912d, + 0x183d113d, + 0x183d914e, + 0x183e115f, + 0x183e9171, + 0x183f119a, + 0x183f91b3, + 0x184011cb, 0x184086d5, - 0x184110da, - 0x184190a5, - 0x184210c4, + 0x184110e4, + 0x184190af, + 0x184210ce, 0x18428c6c, - 0x18431080, - 0x203211e1, - 0x203291ce, - 0x243211ed, + 0x1843108a, + 0x184390f6, + 0x18440fbc, + 0x20321205, + 0x203291f2, + 0x24321211, 0x24328995, - 0x243311ff, - 0x2433920c, - 0x24341219, - 0x2434922b, - 0x2435123a, - 0x24359257, - 0x24361264, - 0x24369272, - 0x24371280, - 0x2437928e, - 0x24381297, - 0x243892a4, - 0x243912b7, + 0x24331223, + 0x24339230, + 0x2434123d, + 0x2434924f, + 0x2435125e, + 0x2435927b, + 0x24361288, + 0x24369296, + 0x243712a4, + 0x243792b2, + 0x243812bb, + 0x243892c8, + 0x243912db, 0x28320c54, 0x28328c7f, 0x28330c24, @@ -189,44 +192,47 @@ const uint32_t kOpenSSLReasonValues[] = { 0x283480ac, 0x283500ea, 0x28358c6c, - 0x2c322ed8, - 0x2c3292ce, - 0x2c332ee6, - 0x2c33aef8, - 0x2c342f0c, - 0x2c34af1e, - 0x2c352f39, - 0x2c35af4b, - 0x2c362f5e, + 0x2c3230ce, + 0x2c3292f2, + 0x2c3330dc, + 0x2c33b0ee, + 0x2c343102, + 0x2c34b114, + 0x2c35312f, + 0x2c35b141, + 0x2c363171, 0x2c36832d, - 0x2c372f6b, - 0x2c37af7d, - 0x2c382fa2, - 0x2c38afb9, - 0x2c392fc7, - 0x2c39afd7, - 0x2c3a2fe9, - 0x2c3aaffd, - 0x2c3b300e, - 0x2c3bb02d, - 0x2c3c12e0, - 0x2c3c92f6, - 0x2c3d3041, - 0x2c3d930f, - 0x2c3e305e, - 0x2c3eb06c, - 0x2c3f3084, - 0x2c3fb09c, - 0x2c4030c6, - 0x2c4091e1, - 0x2c4130d7, - 0x2c41b0ea, - 0x2c4211a7, - 0x2c42b0fb, + 0x2c37317e, + 0x2c37b1aa, + 0x2c3831cf, + 0x2c38b1e6, + 0x2c393204, + 0x2c39b214, + 0x2c3a3226, + 0x2c3ab23a, + 0x2c3b324b, + 0x2c3bb26a, + 0x2c3c1304, + 0x2c3c931a, + 0x2c3d327e, + 0x2c3d9333, + 0x2c3e329b, + 0x2c3eb2a9, + 0x2c3f32c1, + 0x2c3fb2d9, + 0x2c403303, + 0x2c409205, + 0x2c413314, + 0x2c41b327, + 0x2c4211cb, + 0x2c42b338, 0x2c430722, - 0x2c43b01f, - 0x2c442f90, - 0x2c44b0a9, + 0x2c43b25c, + 0x2c4431bd, + 0x2c44b2e6, + 0x2c453154, + 0x2c45b190, + 0x2c4631f4, 0x30320000, 0x30328015, 0x3033001f, @@ -361,240 +367,248 @@ const uint32_t kOpenSSLReasonValues[] = { 0x3c418d67, 0x3c420e73, 0x3c428dfd, - 0x40321957, - 0x4032996d, - 0x4033199b, - 0x403399a5, - 0x403419bc, - 0x403499da, - 0x403519ea, - 0x403599fc, - 0x40361a09, - 0x40369a15, - 0x40371a2a, - 0x40379a3c, - 0x40381a47, - 0x40389a59, + 0x40321997, + 0x403299ad, + 0x403319db, + 0x403399e5, + 0x403419fc, + 0x40349a1a, + 0x40351a2a, + 0x40359a3c, + 0x40361a49, + 0x40369a55, + 0x40371a6a, + 0x40379a7c, + 0x40381a87, + 0x40389a99, 0x40390f27, - 0x40399a69, - 0x403a1a7c, - 0x403a9a9d, - 0x403b1aae, - 0x403b9abe, + 0x40399aa9, + 0x403a1abc, + 0x403a9add, + 0x403b1aee, + 0x403b9afe, 0x403c0064, 0x403c8083, - 0x403d1b42, - 0x403d9b58, - 0x403e1b67, - 0x403e9b9f, - 0x403f1bb9, - 0x403f9be1, - 0x40401bf6, - 0x40409c0a, - 0x40411c27, - 0x40419c42, - 0x40421c5b, - 0x40429c6e, - 0x40431c82, - 0x40439c9a, - 0x40441cb1, + 0x403d1b5f, + 0x403d9b75, + 0x403e1b84, + 0x403e9bbc, + 0x403f1bd6, + 0x403f9bfe, + 0x40401c13, + 0x40409c27, + 0x40411c62, + 0x40419c7d, + 0x40421c96, + 0x40429ca9, + 0x40431cbd, + 0x40439cd5, + 0x40441cec, 0x404480ac, - 0x40451cc6, - 0x40459cd8, - 0x40461cfc, - 0x40469d1c, - 0x40471d2a, - 0x40479d51, - 0x40481dc2, - 0x40489df5, - 0x40491e0c, - 0x40499e26, - 0x404a1e3d, - 0x404a9e5b, - 0x404b1e73, - 0x404b9e8a, - 0x404c1ea0, - 0x404c9eb2, - 0x404d1ed3, - 0x404d9f0c, - 0x404e1f20, - 0x404e9f2d, - 0x404f1f5a, - 0x404f9fa0, - 0x40501ff7, - 0x4050a00b, - 0x4051203e, - 0x4052204e, - 0x4052a072, - 0x4053208a, - 0x4053a09d, - 0x405420b2, - 0x4054a0d5, - 0x405520e3, - 0x4055a120, - 0x4056212d, - 0x4056a146, - 0x4057215e, - 0x4057a171, - 0x40582186, - 0x4058a1ad, - 0x405921dc, - 0x4059a209, - 0x405a221d, - 0x405aa22d, - 0x405b2245, - 0x405ba256, - 0x405c2269, - 0x405ca2a8, - 0x405d22b5, - 0x405da2da, - 0x405e2318, + 0x40451d01, + 0x40459d13, + 0x40461d37, + 0x40469d57, + 0x40471d65, + 0x40479d8c, + 0x40481dfd, + 0x40489e30, + 0x40491e47, + 0x40499e61, + 0x404a1e78, + 0x404a9e96, + 0x404b1eae, + 0x404b9edb, + 0x404c1ef1, + 0x404c9f03, + 0x404d1f24, + 0x404d9f5d, + 0x404e1f71, + 0x404e9f7e, + 0x404f1fc5, + 0x404fa00b, + 0x40502062, + 0x4050a076, + 0x405120a9, + 0x405220c6, + 0x4052a0ea, + 0x40532102, + 0x4053a115, + 0x4054212a, + 0x4054a14d, + 0x40552178, + 0x4055a1b5, + 0x405621c2, + 0x4056a1db, + 0x405721f3, + 0x4057a206, + 0x4058221b, + 0x4058a242, + 0x40592271, + 0x4059a29e, + 0x405a22b2, + 0x405aa2c2, + 0x405b22da, + 0x405ba2eb, + 0x405c22fe, + 0x405ca33d, + 0x405d234a, + 0x405da36f, + 0x405e23ad, 0x405e8ab3, - 0x405f2339, - 0x405fa346, - 0x40602354, - 0x4060a376, - 0x406123d7, - 0x4061a40f, - 0x40622426, - 0x4062a437, - 0x4063245c, - 0x4063a471, - 0x40642488, - 0x4064a4b4, - 0x406524cf, - 0x4065a4e6, - 0x406624fe, - 0x4066a528, - 0x40672553, - 0x4067a598, - 0x406825e0, - 0x4068a601, - 0x40692633, - 0x4069a661, - 0x406a2682, - 0x406aa6a2, - 0x406b282a, - 0x406ba84d, - 0x406c2863, - 0x406cab06, - 0x406d2b35, - 0x406dab5d, - 0x406e2b8b, - 0x406eabd8, - 0x406f2c13, - 0x406fac4b, - 0x40702c5e, - 0x4070ac7b, + 0x405f23ce, + 0x405fa3db, + 0x406023e9, + 0x4060a40b, + 0x4061246c, + 0x4061a4a4, + 0x406224bb, + 0x4062a4cc, + 0x40632519, + 0x4063a52e, + 0x40642545, + 0x4064a571, + 0x4065258c, + 0x4065a5a3, + 0x406625bb, + 0x4066a5e5, + 0x40672610, + 0x4067a655, + 0x4068269d, + 0x4068a6be, + 0x406926f0, + 0x4069a71e, + 0x406a273f, + 0x406aa75f, + 0x406b28e7, + 0x406ba90a, + 0x406c2920, + 0x406cac11, + 0x406d2c40, + 0x406dac68, + 0x406e2c96, + 0x406eace3, + 0x406f2d3c, + 0x406fad74, + 0x40702d87, + 0x4070ada4, 0x40710802, - 0x4071ac8d, - 0x40722ca0, - 0x4072acd6, - 0x40732cee, - 0x407394e0, - 0x40742d02, - 0x4074ad1c, - 0x40752d2d, - 0x4075ad41, - 0x40762d4f, - 0x407692a4, - 0x40772d74, - 0x4077ad96, - 0x40782db1, - 0x4078adea, - 0x40792e01, - 0x4079ae17, - 0x407a2e43, - 0x407aae56, - 0x407b2e6b, - 0x407bae7d, - 0x407c2eae, - 0x407caeb7, - 0x407d261c, - 0x407d9fb0, - 0x407e2dc6, - 0x407ea1bd, - 0x407f1d3e, - 0x407f9ae4, - 0x40801f6a, - 0x40809d66, - 0x40812060, - 0x40819f44, - 0x40822b76, - 0x40829aca, - 0x40832198, - 0x4083a499, - 0x40841d7a, - 0x4084a1f5, - 0x4085227a, - 0x4085a39e, - 0x408622fa, - 0x40869fca, - 0x40872bbc, - 0x4087a3ec, - 0x40881b2b, - 0x4088a5ab, - 0x40891b7a, - 0x40899b07, - 0x408a289b, - 0x408a98f8, - 0x408b2e92, - 0x408bac28, - 0x408c228a, - 0x408c9914, - 0x408d1ddb, - 0x408d9dac, - 0x408e1ef5, - 0x408ea100, - 0x408f25bf, - 0x408fa3ba, - 0x40902574, - 0x4090a2cc, - 0x40912883, - 0x4091993a, - 0x40921bc7, - 0x4092abf7, - 0x40932cb9, - 0x40939fdb, - 0x40941d8e, - 0x4094a8b4, - 0x40952448, - 0x4095ae23, - 0x40962ba3, - 0x40969f83, - 0x40972026, - 0x41f42755, - 0x41f927e7, - 0x41fe26da, - 0x41fea8f7, - 0x41ff29e8, - 0x4203276e, - 0x42082790, - 0x4208a7cc, - 0x420926be, - 0x4209a806, - 0x420a2715, - 0x420aa6f5, - 0x420b2735, - 0x420ba7ae, - 0x420c2a04, - 0x420ca8c4, - 0x420d28de, - 0x420da915, - 0x4212292f, - 0x421729cb, - 0x4217a971, - 0x421c2993, - 0x421f294e, - 0x42212a1b, - 0x422629ae, - 0x422b2aea, - 0x422baa98, - 0x422c2ad2, - 0x422caa57, - 0x422d2a36, - 0x422daab7, - 0x422e2a7d, + 0x4071adb6, + 0x40722dc9, + 0x4072adff, + 0x40732e17, + 0x40739504, + 0x40742e2b, + 0x4074ae45, + 0x40752e56, + 0x4075ae6a, + 0x40762e78, + 0x407692c8, + 0x40772e9d, + 0x4077aebf, + 0x40782eda, + 0x4078af13, + 0x40792f2a, + 0x4079af40, + 0x407a2f6c, + 0x407aaf7f, + 0x407b2f94, + 0x407bafa6, + 0x407c2fd7, + 0x407cafe0, + 0x407d26d9, + 0x407da01b, + 0x407e2eef, + 0x407ea252, + 0x407f1d79, + 0x407f9ec5, + 0x40801fd5, + 0x40809da1, + 0x408120d8, + 0x40819faf, + 0x40822c81, + 0x40829b0a, + 0x4083222d, + 0x4083a556, + 0x40841db5, + 0x4084a28a, + 0x4085230f, + 0x4085a433, + 0x4086238f, + 0x4086a035, + 0x40872cc7, + 0x4087a481, + 0x40881b48, + 0x4088a668, + 0x40891b97, + 0x40899b24, + 0x408a2958, + 0x408a991c, + 0x408b2fbb, + 0x408bad51, + 0x408c231f, + 0x408c9954, + 0x408d1e16, + 0x408d9de7, + 0x408e1f46, + 0x408ea195, + 0x408f267c, + 0x408fa44f, + 0x40902631, + 0x4090a361, + 0x40912940, + 0x4091997a, + 0x40921be4, + 0x4092ad02, + 0x40932de2, + 0x4093a046, + 0x40941dc9, + 0x4094a971, + 0x409524dd, + 0x4095af4c, + 0x40962cae, + 0x40969fee, + 0x40972091, + 0x40979f95, + 0x40981c44, + 0x4098a4f1, + 0x40992d1e, + 0x4099a0b9, + 0x409a215b, + 0x409a9938, + 0x41f42812, + 0x41f928a4, + 0x41fe2797, + 0x41feaa4d, + 0x41ff2b62, + 0x4203282b, + 0x4208284d, + 0x4208a889, + 0x4209277b, + 0x4209a8c3, + 0x420a27d2, + 0x420aa7b2, + 0x420b27f2, + 0x420ba86b, + 0x420c2b7e, + 0x420ca981, + 0x420d2a34, + 0x420daa6b, + 0x42122a85, + 0x42172b45, + 0x4217aac7, + 0x421c2ae9, + 0x421f2aa4, + 0x42212bf6, + 0x42262b28, + 0x422b2bd4, + 0x422baa0f, + 0x422c2bb6, + 0x422ca9c2, + 0x422d299b, + 0x422dab95, + 0x422e29ee, + 0x42302b04, 0x4432072d, 0x4432873c, 0x44330748, @@ -612,106 +626,106 @@ const uint32_t kOpenSSLReasonValues[] = { 0x44390802, 0x44398810, 0x443a0823, - 0x483212ce, - 0x483292e0, - 0x483312f6, - 0x4833930f, - 0x4c321334, - 0x4c329344, - 0x4c331357, - 0x4c339377, + 0x483212f2, + 0x48329304, + 0x4833131a, + 0x48339333, + 0x4c321358, + 0x4c329368, + 0x4c33137b, + 0x4c33939b, 0x4c3400ac, 0x4c3480ea, - 0x4c351383, - 0x4c359391, - 0x4c3613ad, - 0x4c3693d3, - 0x4c3713e2, - 0x4c3793f0, - 0x4c381405, - 0x4c389411, - 0x4c391431, - 0x4c39945b, - 0x4c3a1474, - 0x4c3a948d, + 0x4c3513a7, + 0x4c3593b5, + 0x4c3613d1, + 0x4c3693f7, + 0x4c371406, + 0x4c379414, + 0x4c381429, + 0x4c389435, + 0x4c391455, + 0x4c39947f, + 0x4c3a1498, + 0x4c3a94b1, 0x4c3b05fd, - 0x4c3b94a6, - 0x4c3c14b8, - 0x4c3c94c7, - 0x4c3d14e0, + 0x4c3b94ca, + 0x4c3c14dc, + 0x4c3c94eb, + 0x4c3d1504, 0x4c3d8c47, - 0x4c3e154d, - 0x4c3e94ef, - 0x4c3f156f, - 0x4c3f92a4, - 0x4c401505, - 0x4c409320, - 0x4c41153d, - 0x4c4193c0, - 0x4c421529, - 0x5032310d, - 0x5032b11c, - 0x50333127, - 0x5033b137, - 0x50343150, - 0x5034b16a, - 0x50353178, - 0x5035b18e, - 0x503631a0, - 0x5036b1b6, - 0x503731cf, - 0x5037b1e2, - 0x503831fa, - 0x5038b20b, - 0x50393220, - 0x5039b234, - 0x503a3254, - 0x503ab26a, - 0x503b3282, - 0x503bb294, - 0x503c32b0, - 0x503cb2c7, - 0x503d32e0, - 0x503db2f6, - 0x503e3303, - 0x503eb319, - 0x503f332b, + 0x4c3e1571, + 0x4c3e9513, + 0x4c3f1593, + 0x4c3f92c8, + 0x4c401529, + 0x4c409344, + 0x4c411561, + 0x4c4193e4, + 0x4c42154d, + 0x5032334a, + 0x5032b359, + 0x50333364, + 0x5033b374, + 0x5034338d, + 0x5034b3a7, + 0x503533b5, + 0x5035b3cb, + 0x503633dd, + 0x5036b3f3, + 0x5037340c, + 0x5037b41f, + 0x50383437, + 0x5038b448, + 0x5039345d, + 0x5039b471, + 0x503a3491, + 0x503ab4a7, + 0x503b34bf, + 0x503bb4d1, + 0x503c34ed, + 0x503cb504, + 0x503d351d, + 0x503db533, + 0x503e3540, + 0x503eb556, + 0x503f3568, 0x503f837b, - 0x5040333e, - 0x5040b34e, - 0x50413368, - 0x5041b377, - 0x50423391, - 0x5042b3ae, - 0x504333be, - 0x5043b3ce, - 0x504433dd, + 0x5040357b, + 0x5040b58b, + 0x504135a5, + 0x5041b5b4, + 0x504235ce, + 0x5042b5eb, + 0x504335fb, + 0x5043b60b, + 0x5044361a, 0x50448431, - 0x504533f1, - 0x5045b40f, - 0x50463422, - 0x5046b438, - 0x5047344a, - 0x5047b45f, - 0x50483485, - 0x5048b493, - 0x504934a6, - 0x5049b4bb, - 0x504a34d1, - 0x504ab4e1, - 0x504b3501, - 0x504bb514, - 0x504c3537, - 0x504cb565, - 0x504d3577, - 0x504db594, - 0x504e35af, - 0x504eb5cb, - 0x504f35dd, - 0x504fb5f4, - 0x50503603, + 0x5045362e, + 0x5045b64c, + 0x5046365f, + 0x5046b675, + 0x50473687, + 0x5047b69c, + 0x504836c2, + 0x5048b6d0, + 0x504936e3, + 0x5049b6f8, + 0x504a370e, + 0x504ab71e, + 0x504b373e, + 0x504bb751, + 0x504c3774, + 0x504cb7a2, + 0x504d37b4, + 0x504db7d1, + 0x504e37ec, + 0x504eb808, + 0x504f381a, + 0x504fb831, + 0x50503840, 0x505086f1, - 0x50513616, + 0x50513853, 0x58320f65, 0x68320f27, 0x68328c7f, @@ -752,7 +766,22 @@ const uint32_t kOpenSSLReasonValues[] = { 0x783d8b4c, 0x783e0aa2, 0x783e8a54, - 0x7c3211bd, + 0x7c3211e1, + 0x803213f7, + 0x80328083, + 0x8033309d, + 0x803380ac, + 0x803430ac, + 0x8034b014, + 0x80353032, + 0x8035b0c0, + 0x80363074, + 0x8036b023, + 0x80373066, + 0x8037b001, + 0x80383087, + 0x8038b043, + 0x80393058, }; const size_t kOpenSSLReasonValuesLen = sizeof(kOpenSSLReasonValues) / sizeof(kOpenSSLReasonValues[0]); @@ -968,6 +997,7 @@ const char kOpenSSLReasonStringData[] = "COMMAND_NOT_SUPPORTED\0" "DIFFERENT_KEY_TYPES\0" "DIFFERENT_PARAMETERS\0" + "EMPTY_PSK\0" "EXPECTING_AN_EC_KEY_KEY\0" "EXPECTING_AN_RSA_KEY\0" "EXPECTING_A_DSA_KEY\0" @@ -983,6 +1013,7 @@ const char kOpenSSLReasonStringData[] = "KEYS_NOT_SET\0" "MEMORY_LIMIT_EXCEEDED\0" "NOT_A_PRIVATE_KEY\0" + "NOT_XOF_OR_INVALID_LENGTH\0" "NO_DEFAULT_DIGEST\0" "NO_KEY_SET\0" "NO_MDC2_SUPPORT\0" @@ -1084,6 +1115,7 @@ const char kOpenSSLReasonStringData[] = "VALUE_MISSING\0" "WRONG_SIGNATURE_LENGTH\0" "ALPN_MISMATCH_ON_EARLY_DATA\0" + "ALPS_MISMATCH_ON_EARLY_DATA\0" "APPLICATION_DATA_INSTEAD_OF_HANDSHAKE\0" "APPLICATION_DATA_ON_SHUTDOWN\0" "APP_DATA_IN_HANDSHAKE\0" @@ -1106,7 +1138,6 @@ const char kOpenSSLReasonStringData[] = "BAD_WRITE_RETRY\0" "BIO_NOT_SET\0" "BLOCK_CIPHER_PAD_IS_WRONG\0" - "BUFFERED_MESSAGES_ON_CIPHER_CHANGE\0" "CANNOT_HAVE_BOTH_PRIVKEY_AND_METHOD\0" "CANNOT_PARSE_LEAF_CERT\0" "CA_DN_LENGTH_MISMATCH\0" @@ -1119,6 +1150,7 @@ const char kOpenSSLReasonStringData[] = "CERT_LENGTH_MISMATCH\0" "CHANNEL_ID_NOT_P256\0" "CHANNEL_ID_SIGNATURE_INVALID\0" + "CIPHER_MISMATCH_ON_EARLY_DATA\0" "CIPHER_OR_HASH_UNAVAILABLE\0" "CLIENTHELLO_PARSE_FAILED\0" "CLIENTHELLO_TLSEXT\0" @@ -1145,6 +1177,7 @@ const char kOpenSSLReasonStringData[] = "ERROR_IN_RECEIVED_CIPHER_LIST\0" "ERROR_PARSING_EXTENSION\0" "EXCESSIVE_MESSAGE_SIZE\0" + "EXCESS_HANDSHAKE_DATA\0" "EXTRA_DATA_IN_MESSAGE\0" "FRAGMENT_MISMATCH\0" "GOT_NEXT_PROTO_WITHOUT_EXTENSION\0" @@ -1153,6 +1186,7 @@ const char kOpenSSLReasonStringData[] = "HTTPS_PROXY_REQUEST\0" "HTTP_REQUEST\0" "INAPPROPRIATE_FALLBACK\0" + "INCONSISTENT_CLIENT_HELLO\0" "INVALID_ALPN_PROTOCOL\0" "INVALID_COMMAND\0" "INVALID_COMPRESSION_LIST\0" @@ -1165,6 +1199,7 @@ const char kOpenSSLReasonStringData[] = "INVALID_TICKET_KEYS_LENGTH\0" "KEY_USAGE_BIT_INCORRECT\0" "LENGTH_MISMATCH\0" + "MISSING_ALPN\0" "MISSING_EXTENSION\0" "MISSING_KEY_SHARE\0" "MISSING_RSA_CERTIFICATE\0" @@ -1172,6 +1207,7 @@ const char kOpenSSLReasonStringData[] = "MISSING_TMP_ECDH_KEY\0" "MIXED_SPECIAL_OPERATOR_WITH_GROUPS\0" "MTU_TOO_SMALL\0" + "NEGOTIATED_ALPS_WITHOUT_ALPN\0" "NEGOTIATED_BOTH_NPN_AND_ALPN\0" "NEGOTIATED_TB_WITHOUT_EMS_OR_RI\0" "NESTED_GROUP\0" @@ -1211,6 +1247,7 @@ const char kOpenSSLReasonStringData[] = "PSK_NO_CLIENT_CB\0" "PSK_NO_SERVER_CB\0" "QUIC_INTERNAL_ERROR\0" + "QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED\0" "READ_TIMEOUT_EXPIRED\0" "RECORD_LENGTH_MISMATCH\0" "RECORD_TOO_LARGE\0" @@ -1251,6 +1288,10 @@ const char kOpenSSLReasonStringData[] = "TICKET_ENCRYPTION_FAILED\0" "TLS13_DOWNGRADE\0" "TLSV1_ALERT_ACCESS_DENIED\0" + "TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE\0" + "TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE\0" + "TLSV1_ALERT_CERTIFICATE_REQUIRED\0" + "TLSV1_ALERT_CERTIFICATE_UNOBTAINABLE\0" "TLSV1_ALERT_DECODE_ERROR\0" "TLSV1_ALERT_DECRYPTION_FAILED\0" "TLSV1_ALERT_DECRYPT_ERROR\0" @@ -1258,18 +1299,15 @@ const char kOpenSSLReasonStringData[] = "TLSV1_ALERT_INAPPROPRIATE_FALLBACK\0" "TLSV1_ALERT_INSUFFICIENT_SECURITY\0" "TLSV1_ALERT_INTERNAL_ERROR\0" + "TLSV1_ALERT_NO_APPLICATION_PROTOCOL\0" "TLSV1_ALERT_NO_RENEGOTIATION\0" "TLSV1_ALERT_PROTOCOL_VERSION\0" "TLSV1_ALERT_RECORD_OVERFLOW\0" "TLSV1_ALERT_UNKNOWN_CA\0" + "TLSV1_ALERT_UNKNOWN_PSK_IDENTITY\0" + "TLSV1_ALERT_UNRECOGNIZED_NAME\0" + "TLSV1_ALERT_UNSUPPORTED_EXTENSION\0" "TLSV1_ALERT_USER_CANCELLED\0" - "TLSV1_BAD_CERTIFICATE_HASH_VALUE\0" - "TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE\0" - "TLSV1_CERTIFICATE_REQUIRED\0" - "TLSV1_CERTIFICATE_UNOBTAINABLE\0" - "TLSV1_UNKNOWN_PSK_IDENTITY\0" - "TLSV1_UNRECOGNIZED_NAME\0" - "TLSV1_UNSUPPORTED_EXTENSION\0" "TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST\0" "TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG\0" "TOO_MANY_EMPTY_FRAGMENTS\0" @@ -1279,6 +1317,7 @@ const char kOpenSSLReasonStringData[] = "TOO_MUCH_SKIPPED_EARLY_DATA\0" "UNABLE_TO_FIND_ECDH_PARAMETERS\0" "UNCOMPRESSED_CERT_TOO_LARGE\0" + "UNEXPECTED_COMPATIBILITY_MODE\0" "UNEXPECTED_EXTENSION\0" "UNEXPECTED_EXTENSION_ON_EARLY_DATA\0" "UNEXPECTED_MESSAGE\0" @@ -1309,6 +1348,18 @@ const char kOpenSSLReasonStringData[] = "WRONG_VERSION_ON_EARLY_DATA\0" "X509_LIB\0" "X509_VERIFICATION_SETUP_PROBLEMS\0" + "BAD_VALIDITY_CHECK\0" + "DECODE_FAILURE\0" + "INVALID_KEY_ID\0" + "INVALID_METADATA\0" + "INVALID_METADATA_KEY\0" + "INVALID_PROOF\0" + "INVALID_TOKEN\0" + "NO_KEYS_CONFIGURED\0" + "NO_SRR_KEY_CONFIGURED\0" + "OVER_BATCHSIZE\0" + "SRR_SIGNATURE_ERROR\0" + "TOO_MANY_KEYS\0" "AKID_MISMATCH\0" "BAD_X509_FILETYPE\0" "BASE64_DECODE_ERROR\0" @@ -1316,12 +1367,15 @@ const char kOpenSSLReasonStringData[] = "CERT_ALREADY_IN_HASH_TABLE\0" "CRL_ALREADY_DELTA\0" "CRL_VERIFY_FAILURE\0" + "DELTA_CRL_WITHOUT_CRL_NUMBER\0" "IDP_MISMATCH\0" "INVALID_DIRECTORY\0" + "INVALID_FIELD_FOR_VERSION\0" "INVALID_FIELD_NAME\0" "INVALID_PARAMETER\0" "INVALID_PSS_PARAMETERS\0" "INVALID_TRUST\0" + "INVALID_VERSION\0" "ISSUER_MISMATCH\0" "KEY_TYPE_MISMATCH\0" "KEY_VALUES_MISMATCH\0" diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/chacha/chacha-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/chacha/chacha-armv8.S index b14466ddd77..bbf811fed1b 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/chacha/chacha-armv8.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/chacha/chacha-armv8.S @@ -33,6 +33,7 @@ Lone: .align 5 _ChaCha20_ctr32: + AARCH64_VALID_CALL_TARGET cbz x2,Labort #if __has_feature(hwaddress_sanitizer) && __clang_major__ >= 10 adrp x5,:pg_hi21_nc:_OPENSSL_armcap_P @@ -46,6 +47,7 @@ _ChaCha20_ctr32: b.ne ChaCha20_neon Lshort: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -258,6 +260,7 @@ Loop: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER Labort: ret @@ -314,12 +317,14 @@ Loop_tail: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 ChaCha20_neon: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -700,6 +705,7 @@ Loop_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret Ltail_neon: @@ -809,11 +815,13 @@ Ldone_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 ChaCha20_512_neon: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -1977,6 +1985,7 @@ Ldone_512_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret #endif // !OPENSSL_NO_ASM diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/aesv8-armx64.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/aesv8-armx64.S index dc2d6e432c9..76b58032535 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/aesv8-armx64.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/aesv8-armx64.S @@ -32,6 +32,8 @@ Lrcon: .align 5 _aes_hw_set_encrypt_key: Lenc_key: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x3,#-1 @@ -200,6 +202,7 @@ Lenc_key_abort: .align 5 _aes_hw_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 bl Lenc_key @@ -233,6 +236,7 @@ Loop_imc: eor x0,x0,x0 // return value Ldec_key_abort: ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .globl _aes_hw_encrypt @@ -240,6 +244,7 @@ Ldec_key_abort: .align 5 _aes_hw_encrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -270,6 +275,7 @@ Loop_enc: .align 5 _aes_hw_decrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -300,6 +306,8 @@ Loop_dec: .align 5 _aes_hw_cbc_encrypt: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 subs x2,x2,#16 @@ -591,6 +599,8 @@ Lcbc_abort: .align 5 _aes_hw_ctr32_encrypt_blocks: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 ldr w5,[x3,#240] diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/armv8-mont.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/armv8-mont.S index 3d83f4d8d62..2493ae08a65 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/armv8-mont.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/armv8-mont.S @@ -12,6 +12,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .text .globl _bn_mul_mont @@ -19,6 +21,7 @@ .align 5 _bn_mul_mont: + AARCH64_SIGN_LINK_REGISTER tst x5,#7 b.eq __bn_sqr8x_mont tst x5,#3 @@ -216,11 +219,14 @@ Lcond_copy: mov x0,#1 ldp x23,x24,[x29,#48] ldr x29,[sp],#64 + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 __bn_sqr8x_mont: + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_sqr8x_mont is jumped to + // only from bn_mul_mont which has already signed the return address. cmp x1,x2 b.ne __bn_mul4x_mont Lsqr8x_mont: @@ -974,11 +980,16 @@ Lsqr8x_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 + // x30 is popped earlier + AARCH64_VALIDATE_LINK_REGISTER ret .align 5 __bn_mul4x_mont: + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_mul4x_mont is jumped to + // only from bn_mul_mont or __bn_mul8x_mont which have already signed the + // return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1412,6 +1423,8 @@ Lmul4x_done: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 + // x30 is popped earlier + AARCH64_VALIDATE_LINK_REGISTER ret .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S index 60bff310186..5441afc06e2 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S @@ -12,6 +12,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .text .globl _gcm_init_neon @@ -19,6 +21,7 @@ .align 4 _gcm_init_neon: + AARCH64_VALID_CALL_TARGET // This function is adapted from gcm_init_v8. xC2 is t3. ld1 {v17.2d}, [x1] // load H movi v19.16b, #0xe1 @@ -44,6 +47,7 @@ _gcm_init_neon: .align 4 _gcm_gmult_neon: + AARCH64_VALID_CALL_TARGET ld1 {v3.16b}, [x0] // load Xi ld1 {v5.1d}, [x1], #8 // load twisted H ld1 {v6.1d}, [x1] @@ -63,6 +67,7 @@ _gcm_gmult_neon: .align 4 _gcm_ghash_neon: + AARCH64_VALID_CALL_TARGET ld1 {v0.16b}, [x0] // load Xi ld1 {v5.1d}, [x1], #8 // load twisted H ld1 {v6.1d}, [x1] diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S index be0e283c366..566330f1be1 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S @@ -21,6 +21,7 @@ .align 4 _gcm_init_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x1] //load input H movi v19.16b,#0xe1 shl v19.2d,v19.2d,#57 //0xc2.0 @@ -72,6 +73,7 @@ _gcm_init_v8: .align 4 _gcm_gmult_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... @@ -114,6 +116,7 @@ _gcm_gmult_v8: .align 4 _gcm_ghash_v8: + AARCH64_VALID_CALL_TARGET ld1 {v0.2d},[x0] //load [rotated] Xi //"[rotated]" means that //loaded value would have diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha1-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha1-armv8.S index 379107efbf8..16f000ec0ce 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha1-armv8.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha1-armv8.S @@ -22,6 +22,8 @@ .align 6 _sha1_block_data_order: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET #if __has_feature(hwaddress_sanitizer) && __clang_major__ >= 10 adrp x16,:pg_hi21_nc:_OPENSSL_armcap_P #else @@ -1089,6 +1091,8 @@ Loop: .align 6 sha1_block_armv8: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET Lv8_entry: stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha256-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha256-armv8.S index d6fa5a930df..208d9489e97 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha256-armv8.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha256-armv8.S @@ -63,6 +63,7 @@ .align 6 _sha256_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ #if __has_feature(hwaddress_sanitizer) && __clang_major__ >= 10 adrp x16,:pg_hi21_nc:_OPENSSL_armcap_P @@ -73,6 +74,7 @@ _sha256_block_data_order: tst w16,#ARMV8_SHA256 b.ne Lv8_entry #endif + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1033,6 +1035,7 @@ Loop_16_xx: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 + AARCH64_VALIDATE_LINK_REGISTER ret @@ -1067,6 +1070,7 @@ LK256: .align 6 sha256_block_armv8: Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha512-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha512-armv8.S index 29e122b1808..4c0152461fd 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha512-armv8.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/sha512-armv8.S @@ -63,6 +63,7 @@ .align 6 _sha512_block_data_order: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1023,6 +1024,7 @@ Loop_16_xx: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 + AARCH64_VALIDATE_LINK_REGISTER ret diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/vpaes-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/vpaes-armv8.S index 0f5cbeadafd..12422e46723 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/vpaes-armv8.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/fipsmodule/vpaes-armv8.S @@ -12,6 +12,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .section __TEXT,__const @@ -214,6 +216,7 @@ Lenc_entry: .align 4 _vpaes_encrypt: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -223,6 +226,7 @@ _vpaes_encrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret @@ -451,6 +455,7 @@ Ldec_entry: .align 4 _vpaes_decrypt: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -460,6 +465,7 @@ _vpaes_decrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret @@ -629,6 +635,7 @@ _vpaes_key_preheat: .align 4 _vpaes_schedule_core: + AARCH64_SIGN_LINK_REGISTER stp x29, x30, [sp,#-16]! add x29,sp,#0 @@ -798,6 +805,7 @@ Lschedule_mangle_last_dec: eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 ldp x29, x30, [sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret @@ -1011,6 +1019,7 @@ Lschedule_mangle_both: .align 4 _vpaes_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1026,6 +1035,7 @@ _vpaes_set_encrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret @@ -1034,6 +1044,7 @@ _vpaes_set_encrypt_key: .align 4 _vpaes_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1053,6 +1064,7 @@ _vpaes_set_decrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .globl _vpaes_cbc_encrypt @@ -1060,6 +1072,7 @@ _vpaes_set_decrypt_key: .align 4 _vpaes_cbc_encrypt: + AARCH64_SIGN_LINK_REGISTER cbz x2, Lcbc_abort cmp w5, #0 // check direction b.eq vpaes_cbc_decrypt @@ -1086,6 +1099,7 @@ Lcbc_enc_loop: st1 {v0.16b}, [x4] // write ivec ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER Lcbc_abort: ret @@ -1093,6 +1107,8 @@ Lcbc_abort: .align 4 vpaes_cbc_decrypt: + // Not adding AARCH64_SIGN_LINK_REGISTER here because vpaes_cbc_decrypt is jumped to + // only from vpaes_cbc_encrypt which has already signed the return address. stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1134,6 +1150,7 @@ Lcbc_dec_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .globl _vpaes_ctr32_encrypt_blocks @@ -1141,6 +1158,7 @@ Lcbc_dec_done: .align 4 _vpaes_ctr32_encrypt_blocks: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1208,6 +1226,7 @@ Lctr32_done: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret #endif // !OPENSSL_NO_ASM diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/test/trampoline-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/test/trampoline-armv8.S index 438e9298c0a..325da9b100e 100644 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/test/trampoline-armv8.S +++ b/contrib/boringssl-cmake/ios-aarch64/crypto/test/trampoline-armv8.S @@ -12,6 +12,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .text // abi_test_trampoline loads callee-saved registers from |state|, calls |func| @@ -26,6 +28,7 @@ .align 4 _abi_test_trampoline: Labi_test_trampoline_begin: + AARCH64_SIGN_LINK_REGISTER // Stack layout (low to high addresses) // x29,x30 (16 bytes) // d8-d15 (64 bytes) @@ -128,6 +131,7 @@ Lx29_ok: ldp x27, x28, [sp, #144] ldp x29, x30, [sp], #176 + AARCH64_VALIDATE_LINK_REGISTER ret @@ -135,6 +139,7 @@ Lx29_ok: .private_extern _abi_test_clobber_x0 .align 4 _abi_test_clobber_x0: + AARCH64_VALID_CALL_TARGET mov x0, xzr ret @@ -143,6 +148,7 @@ _abi_test_clobber_x0: .private_extern _abi_test_clobber_x1 .align 4 _abi_test_clobber_x1: + AARCH64_VALID_CALL_TARGET mov x1, xzr ret @@ -151,6 +157,7 @@ _abi_test_clobber_x1: .private_extern _abi_test_clobber_x2 .align 4 _abi_test_clobber_x2: + AARCH64_VALID_CALL_TARGET mov x2, xzr ret @@ -159,6 +166,7 @@ _abi_test_clobber_x2: .private_extern _abi_test_clobber_x3 .align 4 _abi_test_clobber_x3: + AARCH64_VALID_CALL_TARGET mov x3, xzr ret @@ -167,6 +175,7 @@ _abi_test_clobber_x3: .private_extern _abi_test_clobber_x4 .align 4 _abi_test_clobber_x4: + AARCH64_VALID_CALL_TARGET mov x4, xzr ret @@ -175,6 +184,7 @@ _abi_test_clobber_x4: .private_extern _abi_test_clobber_x5 .align 4 _abi_test_clobber_x5: + AARCH64_VALID_CALL_TARGET mov x5, xzr ret @@ -183,6 +193,7 @@ _abi_test_clobber_x5: .private_extern _abi_test_clobber_x6 .align 4 _abi_test_clobber_x6: + AARCH64_VALID_CALL_TARGET mov x6, xzr ret @@ -191,6 +202,7 @@ _abi_test_clobber_x6: .private_extern _abi_test_clobber_x7 .align 4 _abi_test_clobber_x7: + AARCH64_VALID_CALL_TARGET mov x7, xzr ret @@ -199,6 +211,7 @@ _abi_test_clobber_x7: .private_extern _abi_test_clobber_x8 .align 4 _abi_test_clobber_x8: + AARCH64_VALID_CALL_TARGET mov x8, xzr ret @@ -207,6 +220,7 @@ _abi_test_clobber_x8: .private_extern _abi_test_clobber_x9 .align 4 _abi_test_clobber_x9: + AARCH64_VALID_CALL_TARGET mov x9, xzr ret @@ -215,6 +229,7 @@ _abi_test_clobber_x9: .private_extern _abi_test_clobber_x10 .align 4 _abi_test_clobber_x10: + AARCH64_VALID_CALL_TARGET mov x10, xzr ret @@ -223,6 +238,7 @@ _abi_test_clobber_x10: .private_extern _abi_test_clobber_x11 .align 4 _abi_test_clobber_x11: + AARCH64_VALID_CALL_TARGET mov x11, xzr ret @@ -231,6 +247,7 @@ _abi_test_clobber_x11: .private_extern _abi_test_clobber_x12 .align 4 _abi_test_clobber_x12: + AARCH64_VALID_CALL_TARGET mov x12, xzr ret @@ -239,6 +256,7 @@ _abi_test_clobber_x12: .private_extern _abi_test_clobber_x13 .align 4 _abi_test_clobber_x13: + AARCH64_VALID_CALL_TARGET mov x13, xzr ret @@ -247,6 +265,7 @@ _abi_test_clobber_x13: .private_extern _abi_test_clobber_x14 .align 4 _abi_test_clobber_x14: + AARCH64_VALID_CALL_TARGET mov x14, xzr ret @@ -255,6 +274,7 @@ _abi_test_clobber_x14: .private_extern _abi_test_clobber_x15 .align 4 _abi_test_clobber_x15: + AARCH64_VALID_CALL_TARGET mov x15, xzr ret @@ -263,6 +283,7 @@ _abi_test_clobber_x15: .private_extern _abi_test_clobber_x16 .align 4 _abi_test_clobber_x16: + AARCH64_VALID_CALL_TARGET mov x16, xzr ret @@ -271,6 +292,7 @@ _abi_test_clobber_x16: .private_extern _abi_test_clobber_x17 .align 4 _abi_test_clobber_x17: + AARCH64_VALID_CALL_TARGET mov x17, xzr ret @@ -279,6 +301,7 @@ _abi_test_clobber_x17: .private_extern _abi_test_clobber_x19 .align 4 _abi_test_clobber_x19: + AARCH64_VALID_CALL_TARGET mov x19, xzr ret @@ -287,6 +310,7 @@ _abi_test_clobber_x19: .private_extern _abi_test_clobber_x20 .align 4 _abi_test_clobber_x20: + AARCH64_VALID_CALL_TARGET mov x20, xzr ret @@ -295,6 +319,7 @@ _abi_test_clobber_x20: .private_extern _abi_test_clobber_x21 .align 4 _abi_test_clobber_x21: + AARCH64_VALID_CALL_TARGET mov x21, xzr ret @@ -303,6 +328,7 @@ _abi_test_clobber_x21: .private_extern _abi_test_clobber_x22 .align 4 _abi_test_clobber_x22: + AARCH64_VALID_CALL_TARGET mov x22, xzr ret @@ -311,6 +337,7 @@ _abi_test_clobber_x22: .private_extern _abi_test_clobber_x23 .align 4 _abi_test_clobber_x23: + AARCH64_VALID_CALL_TARGET mov x23, xzr ret @@ -319,6 +346,7 @@ _abi_test_clobber_x23: .private_extern _abi_test_clobber_x24 .align 4 _abi_test_clobber_x24: + AARCH64_VALID_CALL_TARGET mov x24, xzr ret @@ -327,6 +355,7 @@ _abi_test_clobber_x24: .private_extern _abi_test_clobber_x25 .align 4 _abi_test_clobber_x25: + AARCH64_VALID_CALL_TARGET mov x25, xzr ret @@ -335,6 +364,7 @@ _abi_test_clobber_x25: .private_extern _abi_test_clobber_x26 .align 4 _abi_test_clobber_x26: + AARCH64_VALID_CALL_TARGET mov x26, xzr ret @@ -343,6 +373,7 @@ _abi_test_clobber_x26: .private_extern _abi_test_clobber_x27 .align 4 _abi_test_clobber_x27: + AARCH64_VALID_CALL_TARGET mov x27, xzr ret @@ -351,6 +382,7 @@ _abi_test_clobber_x27: .private_extern _abi_test_clobber_x28 .align 4 _abi_test_clobber_x28: + AARCH64_VALID_CALL_TARGET mov x28, xzr ret @@ -359,6 +391,7 @@ _abi_test_clobber_x28: .private_extern _abi_test_clobber_x29 .align 4 _abi_test_clobber_x29: + AARCH64_VALID_CALL_TARGET mov x29, xzr ret @@ -367,6 +400,7 @@ _abi_test_clobber_x29: .private_extern _abi_test_clobber_d0 .align 4 _abi_test_clobber_d0: + AARCH64_VALID_CALL_TARGET fmov d0, xzr ret @@ -375,6 +409,7 @@ _abi_test_clobber_d0: .private_extern _abi_test_clobber_d1 .align 4 _abi_test_clobber_d1: + AARCH64_VALID_CALL_TARGET fmov d1, xzr ret @@ -383,6 +418,7 @@ _abi_test_clobber_d1: .private_extern _abi_test_clobber_d2 .align 4 _abi_test_clobber_d2: + AARCH64_VALID_CALL_TARGET fmov d2, xzr ret @@ -391,6 +427,7 @@ _abi_test_clobber_d2: .private_extern _abi_test_clobber_d3 .align 4 _abi_test_clobber_d3: + AARCH64_VALID_CALL_TARGET fmov d3, xzr ret @@ -399,6 +436,7 @@ _abi_test_clobber_d3: .private_extern _abi_test_clobber_d4 .align 4 _abi_test_clobber_d4: + AARCH64_VALID_CALL_TARGET fmov d4, xzr ret @@ -407,6 +445,7 @@ _abi_test_clobber_d4: .private_extern _abi_test_clobber_d5 .align 4 _abi_test_clobber_d5: + AARCH64_VALID_CALL_TARGET fmov d5, xzr ret @@ -415,6 +454,7 @@ _abi_test_clobber_d5: .private_extern _abi_test_clobber_d6 .align 4 _abi_test_clobber_d6: + AARCH64_VALID_CALL_TARGET fmov d6, xzr ret @@ -423,6 +463,7 @@ _abi_test_clobber_d6: .private_extern _abi_test_clobber_d7 .align 4 _abi_test_clobber_d7: + AARCH64_VALID_CALL_TARGET fmov d7, xzr ret @@ -431,6 +472,7 @@ _abi_test_clobber_d7: .private_extern _abi_test_clobber_d8 .align 4 _abi_test_clobber_d8: + AARCH64_VALID_CALL_TARGET fmov d8, xzr ret @@ -439,6 +481,7 @@ _abi_test_clobber_d8: .private_extern _abi_test_clobber_d9 .align 4 _abi_test_clobber_d9: + AARCH64_VALID_CALL_TARGET fmov d9, xzr ret @@ -447,6 +490,7 @@ _abi_test_clobber_d9: .private_extern _abi_test_clobber_d10 .align 4 _abi_test_clobber_d10: + AARCH64_VALID_CALL_TARGET fmov d10, xzr ret @@ -455,6 +499,7 @@ _abi_test_clobber_d10: .private_extern _abi_test_clobber_d11 .align 4 _abi_test_clobber_d11: + AARCH64_VALID_CALL_TARGET fmov d11, xzr ret @@ -463,6 +508,7 @@ _abi_test_clobber_d11: .private_extern _abi_test_clobber_d12 .align 4 _abi_test_clobber_d12: + AARCH64_VALID_CALL_TARGET fmov d12, xzr ret @@ -471,6 +517,7 @@ _abi_test_clobber_d12: .private_extern _abi_test_clobber_d13 .align 4 _abi_test_clobber_d13: + AARCH64_VALID_CALL_TARGET fmov d13, xzr ret @@ -479,6 +526,7 @@ _abi_test_clobber_d13: .private_extern _abi_test_clobber_d14 .align 4 _abi_test_clobber_d14: + AARCH64_VALID_CALL_TARGET fmov d14, xzr ret @@ -487,6 +535,7 @@ _abi_test_clobber_d14: .private_extern _abi_test_clobber_d15 .align 4 _abi_test_clobber_d15: + AARCH64_VALID_CALL_TARGET fmov d15, xzr ret @@ -495,6 +544,7 @@ _abi_test_clobber_d15: .private_extern _abi_test_clobber_d16 .align 4 _abi_test_clobber_d16: + AARCH64_VALID_CALL_TARGET fmov d16, xzr ret @@ -503,6 +553,7 @@ _abi_test_clobber_d16: .private_extern _abi_test_clobber_d17 .align 4 _abi_test_clobber_d17: + AARCH64_VALID_CALL_TARGET fmov d17, xzr ret @@ -511,6 +562,7 @@ _abi_test_clobber_d17: .private_extern _abi_test_clobber_d18 .align 4 _abi_test_clobber_d18: + AARCH64_VALID_CALL_TARGET fmov d18, xzr ret @@ -519,6 +571,7 @@ _abi_test_clobber_d18: .private_extern _abi_test_clobber_d19 .align 4 _abi_test_clobber_d19: + AARCH64_VALID_CALL_TARGET fmov d19, xzr ret @@ -527,6 +580,7 @@ _abi_test_clobber_d19: .private_extern _abi_test_clobber_d20 .align 4 _abi_test_clobber_d20: + AARCH64_VALID_CALL_TARGET fmov d20, xzr ret @@ -535,6 +589,7 @@ _abi_test_clobber_d20: .private_extern _abi_test_clobber_d21 .align 4 _abi_test_clobber_d21: + AARCH64_VALID_CALL_TARGET fmov d21, xzr ret @@ -543,6 +598,7 @@ _abi_test_clobber_d21: .private_extern _abi_test_clobber_d22 .align 4 _abi_test_clobber_d22: + AARCH64_VALID_CALL_TARGET fmov d22, xzr ret @@ -551,6 +607,7 @@ _abi_test_clobber_d22: .private_extern _abi_test_clobber_d23 .align 4 _abi_test_clobber_d23: + AARCH64_VALID_CALL_TARGET fmov d23, xzr ret @@ -559,6 +616,7 @@ _abi_test_clobber_d23: .private_extern _abi_test_clobber_d24 .align 4 _abi_test_clobber_d24: + AARCH64_VALID_CALL_TARGET fmov d24, xzr ret @@ -567,6 +625,7 @@ _abi_test_clobber_d24: .private_extern _abi_test_clobber_d25 .align 4 _abi_test_clobber_d25: + AARCH64_VALID_CALL_TARGET fmov d25, xzr ret @@ -575,6 +634,7 @@ _abi_test_clobber_d25: .private_extern _abi_test_clobber_d26 .align 4 _abi_test_clobber_d26: + AARCH64_VALID_CALL_TARGET fmov d26, xzr ret @@ -583,6 +643,7 @@ _abi_test_clobber_d26: .private_extern _abi_test_clobber_d27 .align 4 _abi_test_clobber_d27: + AARCH64_VALID_CALL_TARGET fmov d27, xzr ret @@ -591,6 +652,7 @@ _abi_test_clobber_d27: .private_extern _abi_test_clobber_d28 .align 4 _abi_test_clobber_d28: + AARCH64_VALID_CALL_TARGET fmov d28, xzr ret @@ -599,6 +661,7 @@ _abi_test_clobber_d28: .private_extern _abi_test_clobber_d29 .align 4 _abi_test_clobber_d29: + AARCH64_VALID_CALL_TARGET fmov d29, xzr ret @@ -607,6 +670,7 @@ _abi_test_clobber_d29: .private_extern _abi_test_clobber_d30 .align 4 _abi_test_clobber_d30: + AARCH64_VALID_CALL_TARGET fmov d30, xzr ret @@ -615,6 +679,7 @@ _abi_test_clobber_d30: .private_extern _abi_test_clobber_d31 .align 4 _abi_test_clobber_d31: + AARCH64_VALID_CALL_TARGET fmov d31, xzr ret @@ -623,6 +688,7 @@ _abi_test_clobber_d31: .private_extern _abi_test_clobber_v8_upper .align 4 _abi_test_clobber_v8_upper: + AARCH64_VALID_CALL_TARGET fmov v8.d[1], xzr ret @@ -631,6 +697,7 @@ _abi_test_clobber_v8_upper: .private_extern _abi_test_clobber_v9_upper .align 4 _abi_test_clobber_v9_upper: + AARCH64_VALID_CALL_TARGET fmov v9.d[1], xzr ret @@ -639,6 +706,7 @@ _abi_test_clobber_v9_upper: .private_extern _abi_test_clobber_v10_upper .align 4 _abi_test_clobber_v10_upper: + AARCH64_VALID_CALL_TARGET fmov v10.d[1], xzr ret @@ -647,6 +715,7 @@ _abi_test_clobber_v10_upper: .private_extern _abi_test_clobber_v11_upper .align 4 _abi_test_clobber_v11_upper: + AARCH64_VALID_CALL_TARGET fmov v11.d[1], xzr ret @@ -655,6 +724,7 @@ _abi_test_clobber_v11_upper: .private_extern _abi_test_clobber_v12_upper .align 4 _abi_test_clobber_v12_upper: + AARCH64_VALID_CALL_TARGET fmov v12.d[1], xzr ret @@ -663,6 +733,7 @@ _abi_test_clobber_v12_upper: .private_extern _abi_test_clobber_v13_upper .align 4 _abi_test_clobber_v13_upper: + AARCH64_VALID_CALL_TARGET fmov v13.d[1], xzr ret @@ -671,6 +742,7 @@ _abi_test_clobber_v13_upper: .private_extern _abi_test_clobber_v14_upper .align 4 _abi_test_clobber_v14_upper: + AARCH64_VALID_CALL_TARGET fmov v14.d[1], xzr ret @@ -679,6 +751,7 @@ _abi_test_clobber_v14_upper: .private_extern _abi_test_clobber_v15_upper .align 4 _abi_test_clobber_v15_upper: + AARCH64_VALID_CALL_TARGET fmov v15.d[1], xzr ret diff --git a/contrib/boringssl-cmake/ios-aarch64/crypto/third_party/sike/asm/fp-armv8.S b/contrib/boringssl-cmake/ios-aarch64/crypto/third_party/sike/asm/fp-armv8.S deleted file mode 100644 index c48863f65ff..00000000000 --- a/contrib/boringssl-cmake/ios-aarch64/crypto/third_party/sike/asm/fp-armv8.S +++ /dev/null @@ -1,996 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#if !defined(__has_feature) -#define __has_feature(x) 0 -#endif -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif - -#if !defined(OPENSSL_NO_ASM) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.section __TEXT,__const - -# p434 x 2 -Lp434x2: -.quad 0xFFFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFF -.quad 0xFB82ECF5C5FFFFFF, 0xF78CB8F062B15D47 -.quad 0xD9F8BFAD038A40AC, 0x0004683E4E2EE688 - -# p434 + 1 -Lp434p1: -.quad 0xFDC1767AE3000000, 0x7BC65C783158AEA3 -.quad 0x6CFC5FD681C52056, 0x0002341F27177344 - -.text -.globl _sike_mpmul -.private_extern _sike_mpmul -.align 4 -_sike_mpmul: - stp x29, x30, [sp,#-96]! - add x29, sp, #0 - stp x19, x20, [sp,#16] - stp x21, x22, [sp,#32] - stp x23, x24, [sp,#48] - stp x25, x26, [sp,#64] - stp x27, x28, [sp,#80] - - ldp x3, x4, [x0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x10, x11, [x1,#0] - ldp x12, x13, [x1,#16] - ldp x14, x15, [x1,#32] - ldr x16, [x1,#48] - - // x3-x7 <- AH + AL, x7 <- carry - adds x3, x3, x7 - adcs x4, x4, x8 - adcs x5, x5, x9 - adcs x6, x6, xzr - adc x7, xzr, xzr - - // x10-x13 <- BH + BL, x8 <- carry - adds x10, x10, x14 - adcs x11, x11, x15 - adcs x12, x12, x16 - adcs x13, x13, xzr - adc x8, xzr, xzr - - // x9 <- combined carry - and x9, x7, x8 - // x7-x8 <- mask - sub x7, xzr, x7 - sub x8, xzr, x8 - - // x15-x19 <- masked (BH + BL) - and x14, x10, x7 - and x15, x11, x7 - and x16, x12, x7 - and x17, x13, x7 - - // x20-x23 <- masked (AH + AL) - and x20, x3, x8 - and x21, x4, x8 - and x22, x5, x8 - and x23, x6, x8 - - // x15-x19, x7 <- masked (AH+AL) + masked (BH+BL), step 1 - adds x14, x14, x20 - adcs x15, x15, x21 - adcs x16, x16, x22 - adcs x17, x17, x23 - adc x7, x9, xzr - - // x8-x9,x19,x20-x24 <- (AH+AL) x (BH+BL), low part - stp x3, x4, [x2,#0] - // A0-A1 <- AH + AL, T0 <- mask - adds x3, x3, x5 - adcs x4, x4, x6 - adc x25, xzr, xzr - - // C6, T1 <- BH + BL, C7 <- mask - adds x23, x10, x12 - adcs x26, x11, x13 - adc x24, xzr, xzr - - // C0-C1 <- masked (BH + BL) - sub x19, xzr, x25 - sub x20, xzr, x24 - and x8, x23, x19 - and x9, x26, x19 - - // C4-C5 <- masked (AH + AL), T0 <- combined carry - and x21, x3, x20 - and x22, x4, x20 - mul x19, x3, x23 - mul x20, x3, x26 - and x25, x25, x24 - - // C0-C1, T0 <- (AH+AL) x (BH+BL), part 1 - adds x8, x21, x8 - umulh x21, x3, x26 - adcs x9, x22, x9 - umulh x22, x3, x23 - adc x25, x25, xzr - - // C2-C5 <- (AH+AL) x (BH+BL), low part - mul x3, x4, x23 - umulh x23, x4, x23 - adds x20, x20, x22 - adc x21, x21, xzr - - mul x24, x4, x26 - umulh x26, x4, x26 - adds x20, x20, x3 - adcs x21, x21, x23 - adc x22, xzr, xzr - - adds x21, x21, x24 - adc x22, x22, x26 - - ldp x3, x4, [x2,#0] - - // C2-C5, T0 <- (AH+AL) x (BH+BL), final part - adds x21, x8, x21 - umulh x24, x3, x10 - umulh x26, x3, x11 - adcs x22, x9, x22 - mul x8, x3, x10 - mul x9, x3, x11 - adc x25, x25, xzr - - // C0-C1, T1, C7 <- AL x BL - mul x3, x4, x10 - umulh x10, x4, x10 - adds x9, x9, x24 - adc x26, x26, xzr - - mul x23, x4, x11 - umulh x11, x4, x11 - adds x9, x9, x3 - adcs x26, x26, x10 - adc x24, xzr, xzr - - adds x26, x26, x23 - adc x24, x24, x11 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - mul x3, x5, x12 - umulh x10, x5, x12 - subs x19, x19, x8 - sbcs x20, x20, x9 - sbcs x21, x21, x26 - mul x4, x5, x13 - umulh x23, x5, x13 - sbcs x22, x22, x24 - sbc x25, x25, xzr - - // A0, A1, C6, B0 <- AH x BH - mul x5, x6, x12 - umulh x12, x6, x12 - adds x4, x4, x10 - adc x23, x23, xzr - - mul x11, x6, x13 - umulh x13, x6, x13 - adds x4, x4, x5 - adcs x23, x23, x12 - adc x10, xzr, xzr - - adds x23, x23, x11 - adc x10, x10, x13 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - AHxBH - subs x19, x19, x3 - sbcs x20, x20, x4 - sbcs x21, x21, x23 - sbcs x22, x22, x10 - sbc x25, x25, xzr - - adds x19, x19, x26 - adcs x20, x20, x24 - adcs x21, x21, x3 - adcs x22, x22, x4 - adcs x23, x25, x23 - adc x24, x10, xzr - - - // x15-x19, x7 <- (AH+AL) x (BH+BL), final step - adds x14, x14, x21 - adcs x15, x15, x22 - adcs x16, x16, x23 - adcs x17, x17, x24 - adc x7, x7, xzr - - // Load AL - ldp x3, x4, [x0] - ldp x5, x6, [x0,#16] - // Load BL - ldp x10, x11, [x1,#0] - ldp x12, x13, [x1,#16] - - // Temporarily store x8 in x2 - stp x8, x9, [x2,#0] - // x21-x28 <- AL x BL - // A0-A1 <- AH + AL, T0 <- mask - adds x3, x3, x5 - adcs x4, x4, x6 - adc x8, xzr, xzr - - // C6, T1 <- BH + BL, C7 <- mask - adds x27, x10, x12 - adcs x9, x11, x13 - adc x28, xzr, xzr - - // C0-C1 <- masked (BH + BL) - sub x23, xzr, x8 - sub x24, xzr, x28 - and x21, x27, x23 - and x22, x9, x23 - - // C4-C5 <- masked (AH + AL), T0 <- combined carry - and x25, x3, x24 - and x26, x4, x24 - mul x23, x3, x27 - mul x24, x3, x9 - and x8, x8, x28 - - // C0-C1, T0 <- (AH+AL) x (BH+BL), part 1 - adds x21, x25, x21 - umulh x25, x3, x9 - adcs x22, x26, x22 - umulh x26, x3, x27 - adc x8, x8, xzr - - // C2-C5 <- (AH+AL) x (BH+BL), low part - mul x3, x4, x27 - umulh x27, x4, x27 - adds x24, x24, x26 - adc x25, x25, xzr - - mul x28, x4, x9 - umulh x9, x4, x9 - adds x24, x24, x3 - adcs x25, x25, x27 - adc x26, xzr, xzr - - adds x25, x25, x28 - adc x26, x26, x9 - - ldp x3, x4, [x0,#0] - - // C2-C5, T0 <- (AH+AL) x (BH+BL), final part - adds x25, x21, x25 - umulh x28, x3, x10 - umulh x9, x3, x11 - adcs x26, x22, x26 - mul x21, x3, x10 - mul x22, x3, x11 - adc x8, x8, xzr - - // C0-C1, T1, C7 <- AL x BL - mul x3, x4, x10 - umulh x10, x4, x10 - adds x22, x22, x28 - adc x9, x9, xzr - - mul x27, x4, x11 - umulh x11, x4, x11 - adds x22, x22, x3 - adcs x9, x9, x10 - adc x28, xzr, xzr - - adds x9, x9, x27 - adc x28, x28, x11 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - mul x3, x5, x12 - umulh x10, x5, x12 - subs x23, x23, x21 - sbcs x24, x24, x22 - sbcs x25, x25, x9 - mul x4, x5, x13 - umulh x27, x5, x13 - sbcs x26, x26, x28 - sbc x8, x8, xzr - - // A0, A1, C6, B0 <- AH x BH - mul x5, x6, x12 - umulh x12, x6, x12 - adds x4, x4, x10 - adc x27, x27, xzr - - mul x11, x6, x13 - umulh x13, x6, x13 - adds x4, x4, x5 - adcs x27, x27, x12 - adc x10, xzr, xzr - - adds x27, x27, x11 - adc x10, x10, x13 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - AHxBH - subs x23, x23, x3 - sbcs x24, x24, x4 - sbcs x25, x25, x27 - sbcs x26, x26, x10 - sbc x8, x8, xzr - - adds x23, x23, x9 - adcs x24, x24, x28 - adcs x25, x25, x3 - adcs x26, x26, x4 - adcs x27, x8, x27 - adc x28, x10, xzr - - // Restore x8 - ldp x8, x9, [x2,#0] - - // x8-x10,x20,x15-x17,x19 <- maskd (AH+AL) x (BH+BL) - ALxBL - subs x8, x8, x21 - sbcs x9, x9, x22 - sbcs x19, x19, x23 - sbcs x20, x20, x24 - sbcs x14, x14, x25 - sbcs x15, x15, x26 - sbcs x16, x16, x27 - sbcs x17, x17, x28 - sbc x7, x7, xzr - - // Store ALxBL, low - stp x21, x22, [x2] - stp x23, x24, [x2,#16] - - // Load AH - ldp x3, x4, [x0,#32] - ldr x5, [x0,#48] - // Load BH - ldp x10, x11, [x1,#32] - ldr x12, [x1,#48] - - adds x8, x8, x25 - adcs x9, x9, x26 - adcs x19, x19, x27 - adcs x20, x20, x28 - adc x1, xzr, xzr - - add x0, x0, #32 - // Temporarily store x8,x9 in x2 - stp x8,x9, [x2,#32] - // x21-x28 <- AH x BH - - // A0 * B0 - mul x21, x3, x10 // C0 - umulh x24, x3, x10 - - // A0 * B1 - mul x22, x3, x11 - umulh x23, x3, x11 - - // A1 * B0 - mul x8, x4, x10 - umulh x9, x4, x10 - adds x22, x22, x24 - adc x23, x23, xzr - - // A0 * B2 - mul x27, x3, x12 - umulh x28, x3, x12 - adds x22, x22, x8 // C1 - adcs x23, x23, x9 - adc x24, xzr, xzr - - // A2 * B0 - mul x8, x5, x10 - umulh x25, x5, x10 - adds x23, x23, x27 - adcs x24, x24, x25 - adc x25, xzr, xzr - - // A1 * B1 - mul x27, x4, x11 - umulh x9, x4, x11 - adds x23, x23, x8 - adcs x24, x24, x28 - adc x25, x25, xzr - - // A1 * B2 - mul x8, x4, x12 - umulh x28, x4, x12 - adds x23, x23, x27 // C2 - adcs x24, x24, x9 - adc x25, x25, xzr - - // A2 * B1 - mul x27, x5, x11 - umulh x9, x5, x11 - adds x24, x24, x8 - adcs x25, x25, x28 - adc x26, xzr, xzr - - // A2 * B2 - mul x8, x5, x12 - umulh x28, x5, x12 - adds x24, x24, x27 // C3 - adcs x25, x25, x9 - adc x26, x26, xzr - - adds x25, x25, x8 // C4 - adc x26, x26, x28 // C5 - - // Restore x8,x9 - ldp x8,x9, [x2,#32] - - neg x1, x1 - - // x8-x9,x19,x20,x14-x17 <- (AH+AL) x (BH+BL) - ALxBL - AHxBH - subs x8, x8, x21 - sbcs x9, x9, x22 - sbcs x19, x19, x23 - sbcs x20, x20, x24 - sbcs x14, x14, x25 - sbcs x15, x15, x26 - sbcs x16, x16, xzr - sbcs x17, x17, xzr - sbc x7, x7, xzr - - // Store (AH+AL) x (BH+BL) - ALxBL - AHxBH, low - stp x8, x9, [x2,#32] - stp x19, x20, [x2,#48] - - adds x1, x1, #1 - adcs x14, x14, x21 - adcs x15, x15, x22 - adcs x16, x16, x23 - adcs x17, x17, x24 - adcs x25, x7, x25 - adc x26, x26, xzr - - stp x14, x15, [x2,#64] - stp x16, x17, [x2,#80] - stp x25, x26, [x2,#96] - - ldp x19, x20, [x29,#16] - ldp x21, x22, [x29,#32] - ldp x23, x24, [x29,#48] - ldp x25, x26, [x29,#64] - ldp x27, x28, [x29,#80] - ldp x29, x30, [sp],#96 - ret -.globl _sike_fprdc -.private_extern _sike_fprdc -.align 4 -_sike_fprdc: - stp x29, x30, [sp, #-96]! - add x29, sp, xzr - stp x19, x20, [sp,#16] - stp x21, x22, [sp,#32] - stp x23, x24, [sp,#48] - stp x25, x26, [sp,#64] - stp x27, x28, [sp,#80] - - ldp x2, x3, [x0,#0] // a[0-1] - - // Load the prime constant - adrp x26, Lp434p1@PAGE - add x26, x26, Lp434p1@PAGEOFF - ldp x23, x24, [x26, #0x0] - ldp x25, x26, [x26,#0x10] - - // a[0-1] * p434+1 - mul x4, x2, x23 // C0 - umulh x7, x2, x23 - - mul x5, x2, x24 - umulh x6, x2, x24 - - mul x10, x3, x23 - umulh x11, x3, x23 - adds x5, x5, x7 - adc x6, x6, xzr - - mul x27, x2, x25 - umulh x28, x2, x25 - adds x5, x5, x10 // C1 - adcs x6, x6, x11 - adc x7, xzr, xzr - - mul x10, x3, x24 - umulh x11, x3, x24 - adds x6, x6, x27 - adcs x7, x7, x28 - adc x8, xzr, xzr - - mul x27, x2, x26 - umulh x28, x2, x26 - adds x6, x6, x10 // C2 - adcs x7, x7, x11 - adc x8, x8, xzr - - mul x10, x3, x25 - umulh x11, x3, x25 - adds x7, x7, x27 - adcs x8, x8, x28 - adc x9, xzr, xzr - - mul x27, x3, x26 - umulh x28, x3, x26 - adds x7, x7, x10 // C3 - adcs x8, x8, x11 - adc x9, x9, xzr - adds x8, x8, x27 // C4 - adc x9, x9, x28 // C5 - - - - ldp x10, x11, [x0, #0x18] - ldp x12, x13, [x0, #0x28] - ldp x14, x15, [x0, #0x38] - ldp x16, x17, [x0, #0x48] - ldp x19, x20, [x0, #0x58] - ldr x21, [x0, #0x68] - - adds x10, x10, x4 - adcs x11, x11, x5 - adcs x12, x12, x6 - adcs x13, x13, x7 - adcs x14, x14, x8 - adcs x15, x15, x9 - adcs x22, x16, xzr - adcs x17, x17, xzr - adcs x19, x19, xzr - adcs x20, x20, xzr - adc x21, x21, xzr - - ldr x2, [x0,#0x10] // a[2] - // a[2-3] * p434+1 - mul x4, x2, x23 // C0 - umulh x7, x2, x23 - - mul x5, x2, x24 - umulh x6, x2, x24 - - mul x0, x10, x23 - umulh x3, x10, x23 - adds x5, x5, x7 - adc x6, x6, xzr - - mul x27, x2, x25 - umulh x28, x2, x25 - adds x5, x5, x0 // C1 - adcs x6, x6, x3 - adc x7, xzr, xzr - - mul x0, x10, x24 - umulh x3, x10, x24 - adds x6, x6, x27 - adcs x7, x7, x28 - adc x8, xzr, xzr - - mul x27, x2, x26 - umulh x28, x2, x26 - adds x6, x6, x0 // C2 - adcs x7, x7, x3 - adc x8, x8, xzr - - mul x0, x10, x25 - umulh x3, x10, x25 - adds x7, x7, x27 - adcs x8, x8, x28 - adc x9, xzr, xzr - - mul x27, x10, x26 - umulh x28, x10, x26 - adds x7, x7, x0 // C3 - adcs x8, x8, x3 - adc x9, x9, xzr - adds x8, x8, x27 // C4 - adc x9, x9, x28 // C5 - - - - adds x12, x12, x4 - adcs x13, x13, x5 - adcs x14, x14, x6 - adcs x15, x15, x7 - adcs x16, x22, x8 - adcs x17, x17, x9 - adcs x22, x19, xzr - adcs x20, x20, xzr - adc x21, x21, xzr - - mul x4, x11, x23 // C0 - umulh x7, x11, x23 - - mul x5, x11, x24 - umulh x6, x11, x24 - - mul x10, x12, x23 - umulh x3, x12, x23 - adds x5, x5, x7 - adc x6, x6, xzr - - mul x27, x11, x25 - umulh x28, x11, x25 - adds x5, x5, x10 // C1 - adcs x6, x6, x3 - adc x7, xzr, xzr - - mul x10, x12, x24 - umulh x3, x12, x24 - adds x6, x6, x27 - adcs x7, x7, x28 - adc x8, xzr, xzr - - mul x27, x11, x26 - umulh x28, x11, x26 - adds x6, x6, x10 // C2 - adcs x7, x7, x3 - adc x8, x8, xzr - - mul x10, x12, x25 - umulh x3, x12, x25 - adds x7, x7, x27 - adcs x8, x8, x28 - adc x9, xzr, xzr - - mul x27, x12, x26 - umulh x28, x12, x26 - adds x7, x7, x10 // C3 - adcs x8, x8, x3 - adc x9, x9, xzr - adds x8, x8, x27 // C4 - adc x9, x9, x28 // C5 - - - adds x14, x14, x4 - adcs x15, x15, x5 - adcs x16, x16, x6 - adcs x17, x17, x7 - adcs x19, x22, x8 - adcs x20, x20, x9 - adc x22, x21, xzr - - stp x14, x15, [x1, #0x0] // C0, C1 - - mul x4, x13, x23 // C0 - umulh x10, x13, x23 - - mul x5, x13, x24 - umulh x27, x13, x24 - adds x5, x5, x10 // C1 - adc x10, xzr, xzr - - mul x6, x13, x25 - umulh x28, x13, x25 - adds x27, x10, x27 - adcs x6, x6, x27 // C2 - adc x10, xzr, xzr - - mul x7, x13, x26 - umulh x8, x13, x26 - adds x28, x10, x28 - adcs x7, x7, x28 // C3 - adc x8, x8, xzr // C4 - - adds x16, x16, x4 - adcs x17, x17, x5 - adcs x19, x19, x6 - adcs x20, x20, x7 - adc x21, x22, x8 - - str x16, [x1, #0x10] - stp x17, x19, [x1, #0x18] - stp x20, x21, [x1, #0x28] - - ldp x19, x20, [x29,#16] - ldp x21, x22, [x29,#32] - ldp x23, x24, [x29,#48] - ldp x25, x26, [x29,#64] - ldp x27, x28, [x29,#80] - ldp x29, x30, [sp],#96 - ret -.globl _sike_fpadd -.private_extern _sike_fpadd -.align 4 -_sike_fpadd: - stp x29,x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - ldr x17, [x1,#48] - - // Add a + b - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x13 - adcs x6, x6, x14 - adcs x7, x7, x15 - adcs x8, x8, x16 - adc x9, x9, x17 - - // Subtract 2xp434 - adrp x17, Lp434x2@PAGE - add x17, x17, Lp434x2@PAGEOFF - ldp x11, x12, [x17, #0] - ldp x13, x14, [x17, #16] - ldp x15, x16, [x17, #32] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x12 - sbcs x6, x6, x13 - sbcs x7, x7, x14 - sbcs x8, x8, x15 - sbcs x9, x9, x16 - sbc x0, xzr, xzr // x0 can be reused now - - // Add 2xp434 anded with the mask in x0 - and x11, x11, x0 - and x12, x12, x0 - and x13, x13, x0 - and x14, x14, x0 - and x15, x15, x0 - and x16, x16, x0 - - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x12 - adcs x6, x6, x13 - adcs x7, x7, x14 - adcs x8, x8, x15 - adc x9, x9, x16 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - str x9, [x2,#48] - - ldp x29, x30, [sp],#16 - ret -.globl _sike_fpsub -.private_extern _sike_fpsub -.align 4 -_sike_fpsub: - stp x29, x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - ldr x17, [x1,#48] - - // Subtract a - b - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - sbcs x9, x9, x17 - sbc x0, xzr, xzr - - // Add 2xp434 anded with the mask in x0 - adrp x17, Lp434x2@PAGE - add x17, x17, Lp434x2@PAGEOFF - - // First half - ldp x11, x12, [x17, #0] - ldp x13, x14, [x17, #16] - ldp x15, x16, [x17, #32] - - // Add 2xp434 anded with the mask in x0 - and x11, x11, x0 - and x12, x12, x0 - and x13, x13, x0 - and x14, x14, x0 - and x15, x15, x0 - and x16, x16, x0 - - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x12 - adcs x6, x6, x13 - adcs x7, x7, x14 - adcs x8, x8, x15 - adc x9, x9, x16 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - str x9, [x2,#48] - - ldp x29, x30, [sp],#16 - ret -.globl _sike_mpadd_asm -.private_extern _sike_mpadd_asm -.align 4 -_sike_mpadd_asm: - stp x29, x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - ldr x17, [x1,#48] - - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x13 - adcs x6, x6, x14 - adcs x7, x7, x15 - adcs x8, x8, x16 - adc x9, x9, x17 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - str x9, [x2,#48] - - ldp x29, x30, [sp],#16 - ret -.globl _sike_mpsubx2_asm -.private_extern _sike_mpsubx2_asm -.align 4 -_sike_mpsubx2_asm: - stp x29, x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - ldp x7, x8, [x0,#32] - ldp x9, x10, [x0,#48] - ldp x11, x12, [x1,#32] - ldp x13, x14, [x1,#48] - sbcs x7, x7, x11 - sbcs x8, x8, x12 - sbcs x9, x9, x13 - sbcs x10, x10, x14 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - stp x9, x10, [x2,#48] - - ldp x3, x4, [x0,#64] - ldp x5, x6, [x0,#80] - ldp x11, x12, [x1,#64] - ldp x13, x14, [x1,#80] - sbcs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - ldp x7, x8, [x0,#96] - ldp x11, x12, [x1,#96] - sbcs x7, x7, x11 - sbcs x8, x8, x12 - sbc x0, xzr, xzr - - stp x3, x4, [x2,#64] - stp x5, x6, [x2,#80] - stp x7, x8, [x2,#96] - - ldp x29, x30, [sp],#16 - ret -.globl _sike_mpdblsubx2_asm -.private_extern _sike_mpdblsubx2_asm -.align 4 -_sike_mpdblsubx2_asm: - stp x29, x30, [sp, #-16]! - add x29, sp, #0 - - ldp x3, x4, [x2, #0] - ldp x5, x6, [x2,#16] - ldp x7, x8, [x2,#32] - - ldp x11, x12, [x0, #0] - ldp x13, x14, [x0,#16] - ldp x15, x16, [x0,#32] - - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - - // x9 stores carry - adc x9, xzr, xzr - - ldp x11, x12, [x1, #0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - adc x9, x9, xzr - - stp x3, x4, [x2, #0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - - ldp x3, x4, [x2,#48] - ldp x5, x6, [x2,#64] - ldp x7, x8, [x2,#80] - - ldp x11, x12, [x0,#48] - ldp x13, x14, [x0,#64] - ldp x15, x16, [x0,#80] - - // x9 = 2 - x9 - neg x9, x9 - add x9, x9, #2 - - subs x3, x3, x9 - sbcs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - adc x9, xzr, xzr - - ldp x11, x12, [x1,#48] - ldp x13, x14, [x1,#64] - ldp x15, x16, [x1,#80] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - adc x9, x9, xzr - - stp x3, x4, [x2,#48] - stp x5, x6, [x2,#64] - stp x7, x8, [x2,#80] - - ldp x3, x4, [x2,#96] - ldp x11, x12, [x0,#96] - ldp x13, x14, [x1,#96] - - // x9 = 2 - x9 - neg x9, x9 - add x9, x9, #2 - - subs x3, x3, x9 - sbcs x3, x3, x11 - sbcs x4, x4, x12 - subs x3, x3, x13 - sbc x4, x4, x14 - stp x3, x4, [x2,#96] - - ldp x29, x30, [sp],#16 - ret -#endif // !OPENSSL_NO_ASM diff --git a/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/aes-armv4.S b/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/aes-armv4.S deleted file mode 100644 index 63e2ec71632..00000000000 --- a/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/aes-armv4.S +++ /dev/null @@ -1,1233 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#if !defined(__has_feature) -#define __has_feature(x) 0 -#endif -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif - -#if !defined(OPENSSL_NO_ASM) -#if defined(BORINGSSL_PREFIX) -#include -#endif -@ Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. -@ -@ Licensed under the OpenSSL license (the "License"). You may not use -@ this file except in compliance with the License. You can obtain a copy -@ in the file LICENSE in the source distribution or at -@ https://www.openssl.org/source/license.html - - -@ ==================================================================== -@ Written by Andy Polyakov for the OpenSSL -@ project. The module is, however, dual licensed under OpenSSL and -@ CRYPTOGAMS licenses depending on where you obtain it. For further -@ details see http://www.openssl.org/~appro/cryptogams/. -@ ==================================================================== - -@ AES for ARMv4 - -@ January 2007. -@ -@ Code uses single 1K S-box and is >2 times faster than code generated -@ by gcc-3.4.1. This is thanks to unique feature of ARMv4 ISA, which -@ allows to merge logical or arithmetic operation with shift or rotate -@ in one instruction and emit combined result every cycle. The module -@ is endian-neutral. The performance is ~42 cycles/byte for 128-bit -@ key [on single-issue Xscale PXA250 core]. - -@ May 2007. -@ -@ AES_set_[en|de]crypt_key is added. - -@ July 2010. -@ -@ Rescheduling for dual-issue pipeline resulted in 12% improvement on -@ Cortex A8 core and ~25 cycles per byte processed with 128-bit key. - -@ February 2011. -@ -@ Profiler-assisted and platform-specific optimization resulted in 16% -@ improvement on Cortex A8 core and ~21.5 cycles per byte. - -#ifndef __KERNEL__ -# include -#else -# define __ARM_ARCH__ __LINUX_ARM_ARCH__ -#endif - -@ Silence ARMv8 deprecated IT instruction warnings. This file is used by both -@ ARMv7 and ARMv8 processors and does not use ARMv8 instructions. (ARMv8 AES -@ instructions are in aesv8-armx.pl.) - - -.text -#if defined(__thumb2__) && !defined(__APPLE__) -.syntax unified -.thumb -#else -.code 32 -#undef __thumb2__ -#endif - - -.align 5 -AES_Te: -.word 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d -.word 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554 -.word 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d -.word 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a -.word 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87 -.word 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b -.word 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea -.word 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b -.word 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a -.word 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f -.word 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108 -.word 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f -.word 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e -.word 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5 -.word 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d -.word 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f -.word 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e -.word 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb -.word 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce -.word 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497 -.word 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c -.word 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed -.word 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b -.word 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a -.word 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16 -.word 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594 -.word 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81 -.word 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3 -.word 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a -.word 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504 -.word 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163 -.word 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d -.word 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f -.word 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739 -.word 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47 -.word 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395 -.word 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f -.word 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883 -.word 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c -.word 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76 -.word 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e -.word 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4 -.word 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6 -.word 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b -.word 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7 -.word 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0 -.word 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25 -.word 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818 -.word 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72 -.word 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651 -.word 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21 -.word 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85 -.word 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa -.word 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12 -.word 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0 -.word 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9 -.word 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133 -.word 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7 -.word 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920 -.word 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a -.word 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17 -.word 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8 -.word 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11 -.word 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a -@ Te4[256] -.byte 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5 -.byte 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76 -.byte 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0 -.byte 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0 -.byte 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc -.byte 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15 -.byte 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a -.byte 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75 -.byte 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0 -.byte 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84 -.byte 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b -.byte 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf -.byte 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85 -.byte 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8 -.byte 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5 -.byte 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2 -.byte 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17 -.byte 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73 -.byte 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88 -.byte 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb -.byte 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c -.byte 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79 -.byte 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9 -.byte 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08 -.byte 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6 -.byte 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a -.byte 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e -.byte 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e -.byte 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94 -.byte 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf -.byte 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 -.byte 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 -@ rcon[] -.word 0x01000000, 0x02000000, 0x04000000, 0x08000000 -.word 0x10000000, 0x20000000, 0x40000000, 0x80000000 -.word 0x1B000000, 0x36000000, 0, 0, 0, 0, 0, 0 - - -@ void aes_nohw_encrypt(const unsigned char *in, unsigned char *out, -@ const AES_KEY *key) { -.globl _aes_nohw_encrypt -.private_extern _aes_nohw_encrypt -#ifdef __thumb2__ -.thumb_func _aes_nohw_encrypt -#endif -.align 5 -_aes_nohw_encrypt: -#ifndef __thumb2__ - sub r3,pc,#8 @ _aes_nohw_encrypt -#else - adr r3,. -#endif - stmdb sp!,{r1,r4-r12,lr} -#if defined(__thumb2__) || defined(__APPLE__) - adr r10,AES_Te -#else - sub r10,r3,#_aes_nohw_encrypt-AES_Te @ Te -#endif - mov r12,r0 @ inp - mov r11,r2 -#if __ARM_ARCH__<7 - ldrb r0,[r12,#3] @ load input data in endian-neutral - ldrb r4,[r12,#2] @ manner... - ldrb r5,[r12,#1] - ldrb r6,[r12,#0] - orr r0,r0,r4,lsl#8 - ldrb r1,[r12,#7] - orr r0,r0,r5,lsl#16 - ldrb r4,[r12,#6] - orr r0,r0,r6,lsl#24 - ldrb r5,[r12,#5] - ldrb r6,[r12,#4] - orr r1,r1,r4,lsl#8 - ldrb r2,[r12,#11] - orr r1,r1,r5,lsl#16 - ldrb r4,[r12,#10] - orr r1,r1,r6,lsl#24 - ldrb r5,[r12,#9] - ldrb r6,[r12,#8] - orr r2,r2,r4,lsl#8 - ldrb r3,[r12,#15] - orr r2,r2,r5,lsl#16 - ldrb r4,[r12,#14] - orr r2,r2,r6,lsl#24 - ldrb r5,[r12,#13] - ldrb r6,[r12,#12] - orr r3,r3,r4,lsl#8 - orr r3,r3,r5,lsl#16 - orr r3,r3,r6,lsl#24 -#else - ldr r0,[r12,#0] - ldr r1,[r12,#4] - ldr r2,[r12,#8] - ldr r3,[r12,#12] -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif -#endif - bl _armv4_AES_encrypt - - ldr r12,[sp],#4 @ pop out -#if __ARM_ARCH__>=7 -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif - str r0,[r12,#0] - str r1,[r12,#4] - str r2,[r12,#8] - str r3,[r12,#12] -#else - mov r4,r0,lsr#24 @ write output in endian-neutral - mov r5,r0,lsr#16 @ manner... - mov r6,r0,lsr#8 - strb r4,[r12,#0] - strb r5,[r12,#1] - mov r4,r1,lsr#24 - strb r6,[r12,#2] - mov r5,r1,lsr#16 - strb r0,[r12,#3] - mov r6,r1,lsr#8 - strb r4,[r12,#4] - strb r5,[r12,#5] - mov r4,r2,lsr#24 - strb r6,[r12,#6] - mov r5,r2,lsr#16 - strb r1,[r12,#7] - mov r6,r2,lsr#8 - strb r4,[r12,#8] - strb r5,[r12,#9] - mov r4,r3,lsr#24 - strb r6,[r12,#10] - mov r5,r3,lsr#16 - strb r2,[r12,#11] - mov r6,r3,lsr#8 - strb r4,[r12,#12] - strb r5,[r12,#13] - strb r6,[r12,#14] - strb r3,[r12,#15] -#endif -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif - - -#ifdef __thumb2__ -.thumb_func _armv4_AES_encrypt -#endif -.align 2 -_armv4_AES_encrypt: - str lr,[sp,#-4]! @ push lr - ldmia r11!,{r4,r5,r6,r7} - eor r0,r0,r4 - ldr r12,[r11,#240-16] - eor r1,r1,r5 - eor r2,r2,r6 - eor r3,r3,r7 - sub r12,r12,#1 - mov lr,#255 - - and r7,lr,r0 - and r8,lr,r0,lsr#8 - and r9,lr,r0,lsr#16 - mov r0,r0,lsr#24 -Lenc_loop: - ldr r4,[r10,r7,lsl#2] @ Te3[s0>>0] - and r7,lr,r1,lsr#16 @ i0 - ldr r5,[r10,r8,lsl#2] @ Te2[s0>>8] - and r8,lr,r1 - ldr r6,[r10,r9,lsl#2] @ Te1[s0>>16] - and r9,lr,r1,lsr#8 - ldr r0,[r10,r0,lsl#2] @ Te0[s0>>24] - mov r1,r1,lsr#24 - - ldr r7,[r10,r7,lsl#2] @ Te1[s1>>16] - ldr r8,[r10,r8,lsl#2] @ Te3[s1>>0] - ldr r9,[r10,r9,lsl#2] @ Te2[s1>>8] - eor r0,r0,r7,ror#8 - ldr r1,[r10,r1,lsl#2] @ Te0[s1>>24] - and r7,lr,r2,lsr#8 @ i0 - eor r5,r5,r8,ror#8 - and r8,lr,r2,lsr#16 @ i1 - eor r6,r6,r9,ror#8 - and r9,lr,r2 - ldr r7,[r10,r7,lsl#2] @ Te2[s2>>8] - eor r1,r1,r4,ror#24 - ldr r8,[r10,r8,lsl#2] @ Te1[s2>>16] - mov r2,r2,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Te3[s2>>0] - eor r0,r0,r7,ror#16 - ldr r2,[r10,r2,lsl#2] @ Te0[s2>>24] - and r7,lr,r3 @ i0 - eor r1,r1,r8,ror#8 - and r8,lr,r3,lsr#8 @ i1 - eor r6,r6,r9,ror#16 - and r9,lr,r3,lsr#16 @ i2 - ldr r7,[r10,r7,lsl#2] @ Te3[s3>>0] - eor r2,r2,r5,ror#16 - ldr r8,[r10,r8,lsl#2] @ Te2[s3>>8] - mov r3,r3,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Te1[s3>>16] - eor r0,r0,r7,ror#24 - ldr r7,[r11],#16 - eor r1,r1,r8,ror#16 - ldr r3,[r10,r3,lsl#2] @ Te0[s3>>24] - eor r2,r2,r9,ror#8 - ldr r4,[r11,#-12] - eor r3,r3,r6,ror#8 - - ldr r5,[r11,#-8] - eor r0,r0,r7 - ldr r6,[r11,#-4] - and r7,lr,r0 - eor r1,r1,r4 - and r8,lr,r0,lsr#8 - eor r2,r2,r5 - and r9,lr,r0,lsr#16 - eor r3,r3,r6 - mov r0,r0,lsr#24 - - subs r12,r12,#1 - bne Lenc_loop - - add r10,r10,#2 - - ldrb r4,[r10,r7,lsl#2] @ Te4[s0>>0] - and r7,lr,r1,lsr#16 @ i0 - ldrb r5,[r10,r8,lsl#2] @ Te4[s0>>8] - and r8,lr,r1 - ldrb r6,[r10,r9,lsl#2] @ Te4[s0>>16] - and r9,lr,r1,lsr#8 - ldrb r0,[r10,r0,lsl#2] @ Te4[s0>>24] - mov r1,r1,lsr#24 - - ldrb r7,[r10,r7,lsl#2] @ Te4[s1>>16] - ldrb r8,[r10,r8,lsl#2] @ Te4[s1>>0] - ldrb r9,[r10,r9,lsl#2] @ Te4[s1>>8] - eor r0,r7,r0,lsl#8 - ldrb r1,[r10,r1,lsl#2] @ Te4[s1>>24] - and r7,lr,r2,lsr#8 @ i0 - eor r5,r8,r5,lsl#8 - and r8,lr,r2,lsr#16 @ i1 - eor r6,r9,r6,lsl#8 - and r9,lr,r2 - ldrb r7,[r10,r7,lsl#2] @ Te4[s2>>8] - eor r1,r4,r1,lsl#24 - ldrb r8,[r10,r8,lsl#2] @ Te4[s2>>16] - mov r2,r2,lsr#24 - - ldrb r9,[r10,r9,lsl#2] @ Te4[s2>>0] - eor r0,r7,r0,lsl#8 - ldrb r2,[r10,r2,lsl#2] @ Te4[s2>>24] - and r7,lr,r3 @ i0 - eor r1,r1,r8,lsl#16 - and r8,lr,r3,lsr#8 @ i1 - eor r6,r9,r6,lsl#8 - and r9,lr,r3,lsr#16 @ i2 - ldrb r7,[r10,r7,lsl#2] @ Te4[s3>>0] - eor r2,r5,r2,lsl#24 - ldrb r8,[r10,r8,lsl#2] @ Te4[s3>>8] - mov r3,r3,lsr#24 - - ldrb r9,[r10,r9,lsl#2] @ Te4[s3>>16] - eor r0,r7,r0,lsl#8 - ldr r7,[r11,#0] - ldrb r3,[r10,r3,lsl#2] @ Te4[s3>>24] - eor r1,r1,r8,lsl#8 - ldr r4,[r11,#4] - eor r2,r2,r9,lsl#16 - ldr r5,[r11,#8] - eor r3,r6,r3,lsl#24 - ldr r6,[r11,#12] - - eor r0,r0,r7 - eor r1,r1,r4 - eor r2,r2,r5 - eor r3,r3,r6 - - sub r10,r10,#2 - ldr pc,[sp],#4 @ pop and return - - -.globl _aes_nohw_set_encrypt_key -.private_extern _aes_nohw_set_encrypt_key -#ifdef __thumb2__ -.thumb_func _aes_nohw_set_encrypt_key -#endif -.align 5 -_aes_nohw_set_encrypt_key: -_armv4_AES_set_encrypt_key: -#ifndef __thumb2__ - sub r3,pc,#8 @ _aes_nohw_set_encrypt_key -#else - adr r3,. -#endif - teq r0,#0 -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - moveq r0,#-1 - beq Labrt - teq r2,#0 -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - moveq r0,#-1 - beq Labrt - - teq r1,#128 - beq Lok - teq r1,#192 - beq Lok - teq r1,#256 -#ifdef __thumb2__ - itt ne @ Thumb2 thing, sanity check in ARM -#endif - movne r0,#-1 - bne Labrt - -Lok: stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - mov r12,r0 @ inp - mov lr,r1 @ bits - mov r11,r2 @ key - -#if defined(__thumb2__) || defined(__APPLE__) - adr r10,AES_Te+1024 @ Te4 -#else - sub r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4 -#endif - -#if __ARM_ARCH__<7 - ldrb r0,[r12,#3] @ load input data in endian-neutral - ldrb r4,[r12,#2] @ manner... - ldrb r5,[r12,#1] - ldrb r6,[r12,#0] - orr r0,r0,r4,lsl#8 - ldrb r1,[r12,#7] - orr r0,r0,r5,lsl#16 - ldrb r4,[r12,#6] - orr r0,r0,r6,lsl#24 - ldrb r5,[r12,#5] - ldrb r6,[r12,#4] - orr r1,r1,r4,lsl#8 - ldrb r2,[r12,#11] - orr r1,r1,r5,lsl#16 - ldrb r4,[r12,#10] - orr r1,r1,r6,lsl#24 - ldrb r5,[r12,#9] - ldrb r6,[r12,#8] - orr r2,r2,r4,lsl#8 - ldrb r3,[r12,#15] - orr r2,r2,r5,lsl#16 - ldrb r4,[r12,#14] - orr r2,r2,r6,lsl#24 - ldrb r5,[r12,#13] - ldrb r6,[r12,#12] - orr r3,r3,r4,lsl#8 - str r0,[r11],#16 - orr r3,r3,r5,lsl#16 - str r1,[r11,#-12] - orr r3,r3,r6,lsl#24 - str r2,[r11,#-8] - str r3,[r11,#-4] -#else - ldr r0,[r12,#0] - ldr r1,[r12,#4] - ldr r2,[r12,#8] - ldr r3,[r12,#12] -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif - str r0,[r11],#16 - str r1,[r11,#-12] - str r2,[r11,#-8] - str r3,[r11,#-4] -#endif - - teq lr,#128 - bne Lnot128 - mov r12,#10 - str r12,[r11,#240-16] - add r6,r10,#256 @ rcon - mov lr,#255 - -L128_loop: - and r5,lr,r3,lsr#24 - and r7,lr,r3,lsr#16 - ldrb r5,[r10,r5] - and r8,lr,r3,lsr#8 - ldrb r7,[r10,r7] - and r9,lr,r3 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#24 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r6],#4 @ rcon[i++] - orr r5,r5,r9,lsl#8 - eor r5,r5,r4 - eor r0,r0,r5 @ rk[4]=rk[0]^... - eor r1,r1,r0 @ rk[5]=rk[1]^rk[4] - str r0,[r11],#16 - eor r2,r2,r1 @ rk[6]=rk[2]^rk[5] - str r1,[r11,#-12] - eor r3,r3,r2 @ rk[7]=rk[3]^rk[6] - str r2,[r11,#-8] - subs r12,r12,#1 - str r3,[r11,#-4] - bne L128_loop - sub r2,r11,#176 - b Ldone - -Lnot128: -#if __ARM_ARCH__<7 - ldrb r8,[r12,#19] - ldrb r4,[r12,#18] - ldrb r5,[r12,#17] - ldrb r6,[r12,#16] - orr r8,r8,r4,lsl#8 - ldrb r9,[r12,#23] - orr r8,r8,r5,lsl#16 - ldrb r4,[r12,#22] - orr r8,r8,r6,lsl#24 - ldrb r5,[r12,#21] - ldrb r6,[r12,#20] - orr r9,r9,r4,lsl#8 - orr r9,r9,r5,lsl#16 - str r8,[r11],#8 - orr r9,r9,r6,lsl#24 - str r9,[r11,#-4] -#else - ldr r8,[r12,#16] - ldr r9,[r12,#20] -#ifdef __ARMEL__ - rev r8,r8 - rev r9,r9 -#endif - str r8,[r11],#8 - str r9,[r11,#-4] -#endif - - teq lr,#192 - bne Lnot192 - mov r12,#12 - str r12,[r11,#240-24] - add r6,r10,#256 @ rcon - mov lr,#255 - mov r12,#8 - -L192_loop: - and r5,lr,r9,lsr#24 - and r7,lr,r9,lsr#16 - ldrb r5,[r10,r5] - and r8,lr,r9,lsr#8 - ldrb r7,[r10,r7] - and r9,lr,r9 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#24 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r6],#4 @ rcon[i++] - orr r5,r5,r9,lsl#8 - eor r9,r5,r4 - eor r0,r0,r9 @ rk[6]=rk[0]^... - eor r1,r1,r0 @ rk[7]=rk[1]^rk[6] - str r0,[r11],#24 - eor r2,r2,r1 @ rk[8]=rk[2]^rk[7] - str r1,[r11,#-20] - eor r3,r3,r2 @ rk[9]=rk[3]^rk[8] - str r2,[r11,#-16] - subs r12,r12,#1 - str r3,[r11,#-12] -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - subeq r2,r11,#216 - beq Ldone - - ldr r7,[r11,#-32] - ldr r8,[r11,#-28] - eor r7,r7,r3 @ rk[10]=rk[4]^rk[9] - eor r9,r8,r7 @ rk[11]=rk[5]^rk[10] - str r7,[r11,#-8] - str r9,[r11,#-4] - b L192_loop - -Lnot192: -#if __ARM_ARCH__<7 - ldrb r8,[r12,#27] - ldrb r4,[r12,#26] - ldrb r5,[r12,#25] - ldrb r6,[r12,#24] - orr r8,r8,r4,lsl#8 - ldrb r9,[r12,#31] - orr r8,r8,r5,lsl#16 - ldrb r4,[r12,#30] - orr r8,r8,r6,lsl#24 - ldrb r5,[r12,#29] - ldrb r6,[r12,#28] - orr r9,r9,r4,lsl#8 - orr r9,r9,r5,lsl#16 - str r8,[r11],#8 - orr r9,r9,r6,lsl#24 - str r9,[r11,#-4] -#else - ldr r8,[r12,#24] - ldr r9,[r12,#28] -#ifdef __ARMEL__ - rev r8,r8 - rev r9,r9 -#endif - str r8,[r11],#8 - str r9,[r11,#-4] -#endif - - mov r12,#14 - str r12,[r11,#240-32] - add r6,r10,#256 @ rcon - mov lr,#255 - mov r12,#7 - -L256_loop: - and r5,lr,r9,lsr#24 - and r7,lr,r9,lsr#16 - ldrb r5,[r10,r5] - and r8,lr,r9,lsr#8 - ldrb r7,[r10,r7] - and r9,lr,r9 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#24 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r6],#4 @ rcon[i++] - orr r5,r5,r9,lsl#8 - eor r9,r5,r4 - eor r0,r0,r9 @ rk[8]=rk[0]^... - eor r1,r1,r0 @ rk[9]=rk[1]^rk[8] - str r0,[r11],#32 - eor r2,r2,r1 @ rk[10]=rk[2]^rk[9] - str r1,[r11,#-28] - eor r3,r3,r2 @ rk[11]=rk[3]^rk[10] - str r2,[r11,#-24] - subs r12,r12,#1 - str r3,[r11,#-20] -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - subeq r2,r11,#256 - beq Ldone - - and r5,lr,r3 - and r7,lr,r3,lsr#8 - ldrb r5,[r10,r5] - and r8,lr,r3,lsr#16 - ldrb r7,[r10,r7] - and r9,lr,r3,lsr#24 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#8 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r11,#-48] - orr r5,r5,r9,lsl#24 - - ldr r7,[r11,#-44] - ldr r8,[r11,#-40] - eor r4,r4,r5 @ rk[12]=rk[4]^... - ldr r9,[r11,#-36] - eor r7,r7,r4 @ rk[13]=rk[5]^rk[12] - str r4,[r11,#-16] - eor r8,r8,r7 @ rk[14]=rk[6]^rk[13] - str r7,[r11,#-12] - eor r9,r9,r8 @ rk[15]=rk[7]^rk[14] - str r8,[r11,#-8] - str r9,[r11,#-4] - b L256_loop - -.align 2 -Ldone: mov r0,#0 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} -Labrt: -#if __ARM_ARCH__>=5 - bx lr @ .word 0xe12fff1e -#else - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif - - -.globl _aes_nohw_set_decrypt_key -.private_extern _aes_nohw_set_decrypt_key -#ifdef __thumb2__ -.thumb_func _aes_nohw_set_decrypt_key -#endif -.align 5 -_aes_nohw_set_decrypt_key: - str lr,[sp,#-4]! @ push lr - bl _armv4_AES_set_encrypt_key - teq r0,#0 - ldr lr,[sp],#4 @ pop lr - bne Labrt - - mov r0,r2 @ _aes_nohw_set_encrypt_key preserves r2, - mov r1,r2 @ which is AES_KEY *key - b _armv4_AES_set_enc2dec_key - - -@ void AES_set_enc2dec_key(const AES_KEY *inp,AES_KEY *out) -.globl _AES_set_enc2dec_key -.private_extern _AES_set_enc2dec_key -#ifdef __thumb2__ -.thumb_func _AES_set_enc2dec_key -#endif -.align 5 -_AES_set_enc2dec_key: -_armv4_AES_set_enc2dec_key: - stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - - ldr r12,[r0,#240] - mov r7,r0 @ input - add r8,r0,r12,lsl#4 - mov r11,r1 @ output - add r10,r1,r12,lsl#4 - str r12,[r1,#240] - -Linv: ldr r0,[r7],#16 - ldr r1,[r7,#-12] - ldr r2,[r7,#-8] - ldr r3,[r7,#-4] - ldr r4,[r8],#-16 - ldr r5,[r8,#16+4] - ldr r6,[r8,#16+8] - ldr r9,[r8,#16+12] - str r0,[r10],#-16 - str r1,[r10,#16+4] - str r2,[r10,#16+8] - str r3,[r10,#16+12] - str r4,[r11],#16 - str r5,[r11,#-12] - str r6,[r11,#-8] - str r9,[r11,#-4] - teq r7,r8 - bne Linv - - ldr r0,[r7] - ldr r1,[r7,#4] - ldr r2,[r7,#8] - ldr r3,[r7,#12] - str r0,[r11] - str r1,[r11,#4] - str r2,[r11,#8] - str r3,[r11,#12] - sub r11,r11,r12,lsl#3 - ldr r0,[r11,#16]! @ prefetch tp1 - mov r7,#0x80 - mov r8,#0x1b - orr r7,r7,#0x8000 - orr r8,r8,#0x1b00 - orr r7,r7,r7,lsl#16 - orr r8,r8,r8,lsl#16 - sub r12,r12,#1 - mvn r9,r7 - mov r12,r12,lsl#2 @ (rounds-1)*4 - -Lmix: and r4,r0,r7 - and r1,r0,r9 - sub r4,r4,r4,lsr#7 - and r4,r4,r8 - eor r1,r4,r1,lsl#1 @ tp2 - - and r4,r1,r7 - and r2,r1,r9 - sub r4,r4,r4,lsr#7 - and r4,r4,r8 - eor r2,r4,r2,lsl#1 @ tp4 - - and r4,r2,r7 - and r3,r2,r9 - sub r4,r4,r4,lsr#7 - and r4,r4,r8 - eor r3,r4,r3,lsl#1 @ tp8 - - eor r4,r1,r2 - eor r5,r0,r3 @ tp9 - eor r4,r4,r3 @ tpe - eor r4,r4,r1,ror#24 - eor r4,r4,r5,ror#24 @ ^= ROTATE(tpb=tp9^tp2,8) - eor r4,r4,r2,ror#16 - eor r4,r4,r5,ror#16 @ ^= ROTATE(tpd=tp9^tp4,16) - eor r4,r4,r5,ror#8 @ ^= ROTATE(tp9,24) - - ldr r0,[r11,#4] @ prefetch tp1 - str r4,[r11],#4 - subs r12,r12,#1 - bne Lmix - - mov r0,#0 -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif - - - -.align 5 -AES_Td: -.word 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96 -.word 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393 -.word 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25 -.word 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f -.word 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1 -.word 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6 -.word 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da -.word 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844 -.word 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd -.word 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4 -.word 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45 -.word 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94 -.word 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7 -.word 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a -.word 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5 -.word 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c -.word 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1 -.word 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a -.word 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75 -.word 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051 -.word 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46 -.word 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff -.word 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77 -.word 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb -.word 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000 -.word 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e -.word 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927 -.word 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a -.word 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e -.word 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16 -.word 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d -.word 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8 -.word 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd -.word 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34 -.word 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163 -.word 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120 -.word 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d -.word 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0 -.word 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422 -.word 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef -.word 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36 -.word 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4 -.word 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662 -.word 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5 -.word 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3 -.word 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b -.word 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8 -.word 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6 -.word 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6 -.word 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0 -.word 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815 -.word 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f -.word 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df -.word 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f -.word 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e -.word 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713 -.word 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89 -.word 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c -.word 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf -.word 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86 -.word 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f -.word 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541 -.word 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190 -.word 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742 -@ Td4[256] -.byte 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38 -.byte 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb -.byte 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87 -.byte 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb -.byte 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d -.byte 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e -.byte 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2 -.byte 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 -.byte 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16 -.byte 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92 -.byte 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda -.byte 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 -.byte 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a -.byte 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06 -.byte 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02 -.byte 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b -.byte 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea -.byte 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73 -.byte 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85 -.byte 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e -.byte 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89 -.byte 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b -.byte 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20 -.byte 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4 -.byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31 -.byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f -.byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d -.byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef -.byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 -.byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 -.byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 -.byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d - - -@ void aes_nohw_decrypt(const unsigned char *in, unsigned char *out, -@ const AES_KEY *key) { -.globl _aes_nohw_decrypt -.private_extern _aes_nohw_decrypt -#ifdef __thumb2__ -.thumb_func _aes_nohw_decrypt -#endif -.align 5 -_aes_nohw_decrypt: -#ifndef __thumb2__ - sub r3,pc,#8 @ _aes_nohw_decrypt -#else - adr r3,. -#endif - stmdb sp!,{r1,r4-r12,lr} -#if defined(__thumb2__) || defined(__APPLE__) - adr r10,AES_Td -#else - sub r10,r3,#_aes_nohw_decrypt-AES_Td @ Td -#endif - mov r12,r0 @ inp - mov r11,r2 -#if __ARM_ARCH__<7 - ldrb r0,[r12,#3] @ load input data in endian-neutral - ldrb r4,[r12,#2] @ manner... - ldrb r5,[r12,#1] - ldrb r6,[r12,#0] - orr r0,r0,r4,lsl#8 - ldrb r1,[r12,#7] - orr r0,r0,r5,lsl#16 - ldrb r4,[r12,#6] - orr r0,r0,r6,lsl#24 - ldrb r5,[r12,#5] - ldrb r6,[r12,#4] - orr r1,r1,r4,lsl#8 - ldrb r2,[r12,#11] - orr r1,r1,r5,lsl#16 - ldrb r4,[r12,#10] - orr r1,r1,r6,lsl#24 - ldrb r5,[r12,#9] - ldrb r6,[r12,#8] - orr r2,r2,r4,lsl#8 - ldrb r3,[r12,#15] - orr r2,r2,r5,lsl#16 - ldrb r4,[r12,#14] - orr r2,r2,r6,lsl#24 - ldrb r5,[r12,#13] - ldrb r6,[r12,#12] - orr r3,r3,r4,lsl#8 - orr r3,r3,r5,lsl#16 - orr r3,r3,r6,lsl#24 -#else - ldr r0,[r12,#0] - ldr r1,[r12,#4] - ldr r2,[r12,#8] - ldr r3,[r12,#12] -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif -#endif - bl _armv4_AES_decrypt - - ldr r12,[sp],#4 @ pop out -#if __ARM_ARCH__>=7 -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif - str r0,[r12,#0] - str r1,[r12,#4] - str r2,[r12,#8] - str r3,[r12,#12] -#else - mov r4,r0,lsr#24 @ write output in endian-neutral - mov r5,r0,lsr#16 @ manner... - mov r6,r0,lsr#8 - strb r4,[r12,#0] - strb r5,[r12,#1] - mov r4,r1,lsr#24 - strb r6,[r12,#2] - mov r5,r1,lsr#16 - strb r0,[r12,#3] - mov r6,r1,lsr#8 - strb r4,[r12,#4] - strb r5,[r12,#5] - mov r4,r2,lsr#24 - strb r6,[r12,#6] - mov r5,r2,lsr#16 - strb r1,[r12,#7] - mov r6,r2,lsr#8 - strb r4,[r12,#8] - strb r5,[r12,#9] - mov r4,r3,lsr#24 - strb r6,[r12,#10] - mov r5,r3,lsr#16 - strb r2,[r12,#11] - mov r6,r3,lsr#8 - strb r4,[r12,#12] - strb r5,[r12,#13] - strb r6,[r12,#14] - strb r3,[r12,#15] -#endif -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif - - -#ifdef __thumb2__ -.thumb_func _armv4_AES_decrypt -#endif -.align 2 -_armv4_AES_decrypt: - str lr,[sp,#-4]! @ push lr - ldmia r11!,{r4,r5,r6,r7} - eor r0,r0,r4 - ldr r12,[r11,#240-16] - eor r1,r1,r5 - eor r2,r2,r6 - eor r3,r3,r7 - sub r12,r12,#1 - mov lr,#255 - - and r7,lr,r0,lsr#16 - and r8,lr,r0,lsr#8 - and r9,lr,r0 - mov r0,r0,lsr#24 -Ldec_loop: - ldr r4,[r10,r7,lsl#2] @ Td1[s0>>16] - and r7,lr,r1 @ i0 - ldr r5,[r10,r8,lsl#2] @ Td2[s0>>8] - and r8,lr,r1,lsr#16 - ldr r6,[r10,r9,lsl#2] @ Td3[s0>>0] - and r9,lr,r1,lsr#8 - ldr r0,[r10,r0,lsl#2] @ Td0[s0>>24] - mov r1,r1,lsr#24 - - ldr r7,[r10,r7,lsl#2] @ Td3[s1>>0] - ldr r8,[r10,r8,lsl#2] @ Td1[s1>>16] - ldr r9,[r10,r9,lsl#2] @ Td2[s1>>8] - eor r0,r0,r7,ror#24 - ldr r1,[r10,r1,lsl#2] @ Td0[s1>>24] - and r7,lr,r2,lsr#8 @ i0 - eor r5,r8,r5,ror#8 - and r8,lr,r2 @ i1 - eor r6,r9,r6,ror#8 - and r9,lr,r2,lsr#16 - ldr r7,[r10,r7,lsl#2] @ Td2[s2>>8] - eor r1,r1,r4,ror#8 - ldr r8,[r10,r8,lsl#2] @ Td3[s2>>0] - mov r2,r2,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Td1[s2>>16] - eor r0,r0,r7,ror#16 - ldr r2,[r10,r2,lsl#2] @ Td0[s2>>24] - and r7,lr,r3,lsr#16 @ i0 - eor r1,r1,r8,ror#24 - and r8,lr,r3,lsr#8 @ i1 - eor r6,r9,r6,ror#8 - and r9,lr,r3 @ i2 - ldr r7,[r10,r7,lsl#2] @ Td1[s3>>16] - eor r2,r2,r5,ror#8 - ldr r8,[r10,r8,lsl#2] @ Td2[s3>>8] - mov r3,r3,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Td3[s3>>0] - eor r0,r0,r7,ror#8 - ldr r7,[r11],#16 - eor r1,r1,r8,ror#16 - ldr r3,[r10,r3,lsl#2] @ Td0[s3>>24] - eor r2,r2,r9,ror#24 - - ldr r4,[r11,#-12] - eor r0,r0,r7 - ldr r5,[r11,#-8] - eor r3,r3,r6,ror#8 - ldr r6,[r11,#-4] - and r7,lr,r0,lsr#16 - eor r1,r1,r4 - and r8,lr,r0,lsr#8 - eor r2,r2,r5 - and r9,lr,r0 - eor r3,r3,r6 - mov r0,r0,lsr#24 - - subs r12,r12,#1 - bne Ldec_loop - - add r10,r10,#1024 - - ldr r5,[r10,#0] @ prefetch Td4 - ldr r6,[r10,#32] - ldr r4,[r10,#64] - ldr r5,[r10,#96] - ldr r6,[r10,#128] - ldr r4,[r10,#160] - ldr r5,[r10,#192] - ldr r6,[r10,#224] - - ldrb r0,[r10,r0] @ Td4[s0>>24] - ldrb r4,[r10,r7] @ Td4[s0>>16] - and r7,lr,r1 @ i0 - ldrb r5,[r10,r8] @ Td4[s0>>8] - and r8,lr,r1,lsr#16 - ldrb r6,[r10,r9] @ Td4[s0>>0] - and r9,lr,r1,lsr#8 - - add r1,r10,r1,lsr#24 - ldrb r7,[r10,r7] @ Td4[s1>>0] - ldrb r1,[r1] @ Td4[s1>>24] - ldrb r8,[r10,r8] @ Td4[s1>>16] - eor r0,r7,r0,lsl#24 - ldrb r9,[r10,r9] @ Td4[s1>>8] - eor r1,r4,r1,lsl#8 - and r7,lr,r2,lsr#8 @ i0 - eor r5,r5,r8,lsl#8 - and r8,lr,r2 @ i1 - ldrb r7,[r10,r7] @ Td4[s2>>8] - eor r6,r6,r9,lsl#8 - ldrb r8,[r10,r8] @ Td4[s2>>0] - and r9,lr,r2,lsr#16 - - add r2,r10,r2,lsr#24 - ldrb r2,[r2] @ Td4[s2>>24] - eor r0,r0,r7,lsl#8 - ldrb r9,[r10,r9] @ Td4[s2>>16] - eor r1,r8,r1,lsl#16 - and r7,lr,r3,lsr#16 @ i0 - eor r2,r5,r2,lsl#16 - and r8,lr,r3,lsr#8 @ i1 - ldrb r7,[r10,r7] @ Td4[s3>>16] - eor r6,r6,r9,lsl#16 - ldrb r8,[r10,r8] @ Td4[s3>>8] - and r9,lr,r3 @ i2 - - add r3,r10,r3,lsr#24 - ldrb r9,[r10,r9] @ Td4[s3>>0] - ldrb r3,[r3] @ Td4[s3>>24] - eor r0,r0,r7,lsl#16 - ldr r7,[r11,#0] - eor r1,r1,r8,lsl#8 - ldr r4,[r11,#4] - eor r2,r9,r2,lsl#8 - ldr r5,[r11,#8] - eor r3,r6,r3,lsl#24 - ldr r6,[r11,#12] - - eor r0,r0,r7 - eor r1,r1,r4 - eor r2,r2,r5 - eor r3,r3,r6 - - sub r10,r10,#1024 - ldr pc,[sp],#4 @ pop and return - -.byte 65,69,83,32,102,111,114,32,65,82,77,118,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.align 2 -.align 2 -#endif // !OPENSSL_NO_ASM diff --git a/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/ghash-armv4.S b/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/ghash-armv4.S index fccd57d30e8..36f4ccebdfe 100644 --- a/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/ghash-armv4.S +++ b/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/ghash-armv4.S @@ -30,348 +30,6 @@ #else .code 32 #endif - - -.align 5 -rem_4bit: -.short 0x0000,0x1C20,0x3840,0x2460 -.short 0x7080,0x6CA0,0x48C0,0x54E0 -.short 0xE100,0xFD20,0xD940,0xC560 -.short 0x9180,0x8DA0,0xA9C0,0xB5E0 - - -#ifdef __thumb2__ -.thumb_func rem_4bit_get -#endif -rem_4bit_get: -#if defined(__thumb2__) - adr r2,rem_4bit -#else - sub r2,pc,#8+32 @ &rem_4bit -#endif - b Lrem_4bit_got - nop - nop - - -.globl _gcm_ghash_4bit -.private_extern _gcm_ghash_4bit -#ifdef __thumb2__ -.thumb_func _gcm_ghash_4bit -#endif -.align 4 -_gcm_ghash_4bit: -#if defined(__thumb2__) - adr r12,rem_4bit -#else - sub r12,pc,#8+48 @ &rem_4bit -#endif - add r3,r2,r3 @ r3 to point at the end - stmdb sp!,{r3,r4,r5,r6,r7,r8,r9,r10,r11,lr} @ save r3/end too - - ldmia r12,{r4,r5,r6,r7,r8,r9,r10,r11} @ copy rem_4bit ... - stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11} @ ... to stack - - ldrb r12,[r2,#15] - ldrb r14,[r0,#15] -Louter: - eor r12,r12,r14 - and r14,r12,#0xf0 - and r12,r12,#0x0f - mov r3,#14 - - add r7,r1,r12,lsl#4 - ldmia r7,{r4,r5,r6,r7} @ load Htbl[nlo] - add r11,r1,r14 - ldrb r12,[r2,#14] - - and r14,r4,#0xf @ rem - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - add r14,r14,r14 - eor r4,r8,r4,lsr#4 - ldrh r8,[sp,r14] @ rem_4bit[rem] - eor r4,r4,r5,lsl#28 - ldrb r14,[r0,#14] - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - eor r12,r12,r14 - and r14,r12,#0xf0 - and r12,r12,#0x0f - eor r7,r7,r8,lsl#16 - -Linner: - add r11,r1,r12,lsl#4 - and r12,r4,#0xf @ rem - subs r3,r3,#1 - add r12,r12,r12 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nlo] - eor r4,r8,r4,lsr#4 - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - ldrh r8,[sp,r12] @ rem_4bit[rem] - eor r6,r10,r6,lsr#4 -#ifdef __thumb2__ - it pl -#endif - ldrplb r12,[r2,r3] - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - - add r11,r1,r14 - and r14,r4,#0xf @ rem - eor r7,r7,r8,lsl#16 @ ^= rem_4bit[rem] - add r14,r14,r14 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - eor r4,r8,r4,lsr#4 -#ifdef __thumb2__ - it pl -#endif - ldrplb r8,[r0,r3] - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - ldrh r9,[sp,r14] - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 -#ifdef __thumb2__ - it pl -#endif - eorpl r12,r12,r8 - eor r7,r11,r7,lsr#4 -#ifdef __thumb2__ - itt pl -#endif - andpl r14,r12,#0xf0 - andpl r12,r12,#0x0f - eor r7,r7,r9,lsl#16 @ ^= rem_4bit[rem] - bpl Linner - - ldr r3,[sp,#32] @ re-load r3/end - add r2,r2,#16 - mov r14,r4 -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r4,r4 - str r4,[r0,#12] -#elif defined(__ARMEB__) - str r4,[r0,#12] -#else - mov r9,r4,lsr#8 - strb r4,[r0,#12+3] - mov r10,r4,lsr#16 - strb r9,[r0,#12+2] - mov r11,r4,lsr#24 - strb r10,[r0,#12+1] - strb r11,[r0,#12] -#endif - cmp r2,r3 -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r5,r5 - str r5,[r0,#8] -#elif defined(__ARMEB__) - str r5,[r0,#8] -#else - mov r9,r5,lsr#8 - strb r5,[r0,#8+3] - mov r10,r5,lsr#16 - strb r9,[r0,#8+2] - mov r11,r5,lsr#24 - strb r10,[r0,#8+1] - strb r11,[r0,#8] -#endif - -#ifdef __thumb2__ - it ne -#endif - ldrneb r12,[r2,#15] -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r6,r6 - str r6,[r0,#4] -#elif defined(__ARMEB__) - str r6,[r0,#4] -#else - mov r9,r6,lsr#8 - strb r6,[r0,#4+3] - mov r10,r6,lsr#16 - strb r9,[r0,#4+2] - mov r11,r6,lsr#24 - strb r10,[r0,#4+1] - strb r11,[r0,#4] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r7,r7 - str r7,[r0,#0] -#elif defined(__ARMEB__) - str r7,[r0,#0] -#else - mov r9,r7,lsr#8 - strb r7,[r0,#0+3] - mov r10,r7,lsr#16 - strb r9,[r0,#0+2] - mov r11,r7,lsr#24 - strb r10,[r0,#0+1] - strb r11,[r0,#0] -#endif - - bne Louter - - add sp,sp,#36 -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif - - -.globl _gcm_gmult_4bit -.private_extern _gcm_gmult_4bit -#ifdef __thumb2__ -.thumb_func _gcm_gmult_4bit -#endif -_gcm_gmult_4bit: - stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr} - ldrb r12,[r0,#15] - b rem_4bit_get -Lrem_4bit_got: - and r14,r12,#0xf0 - and r12,r12,#0x0f - mov r3,#14 - - add r7,r1,r12,lsl#4 - ldmia r7,{r4,r5,r6,r7} @ load Htbl[nlo] - ldrb r12,[r0,#14] - - add r11,r1,r14 - and r14,r4,#0xf @ rem - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - add r14,r14,r14 - eor r4,r8,r4,lsr#4 - ldrh r8,[r2,r14] @ rem_4bit[rem] - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - and r14,r12,#0xf0 - eor r7,r7,r8,lsl#16 - and r12,r12,#0x0f - -Loop: - add r11,r1,r12,lsl#4 - and r12,r4,#0xf @ rem - subs r3,r3,#1 - add r12,r12,r12 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nlo] - eor r4,r8,r4,lsr#4 - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - ldrh r8,[r2,r12] @ rem_4bit[rem] - eor r6,r10,r6,lsr#4 -#ifdef __thumb2__ - it pl -#endif - ldrplb r12,[r0,r3] - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - - add r11,r1,r14 - and r14,r4,#0xf @ rem - eor r7,r7,r8,lsl#16 @ ^= rem_4bit[rem] - add r14,r14,r14 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - eor r4,r8,r4,lsr#4 - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - ldrh r8,[r2,r14] @ rem_4bit[rem] - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 -#ifdef __thumb2__ - itt pl -#endif - andpl r14,r12,#0xf0 - andpl r12,r12,#0x0f - eor r7,r7,r8,lsl#16 @ ^= rem_4bit[rem] - bpl Loop -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r4,r4 - str r4,[r0,#12] -#elif defined(__ARMEB__) - str r4,[r0,#12] -#else - mov r9,r4,lsr#8 - strb r4,[r0,#12+3] - mov r10,r4,lsr#16 - strb r9,[r0,#12+2] - mov r11,r4,lsr#24 - strb r10,[r0,#12+1] - strb r11,[r0,#12] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r5,r5 - str r5,[r0,#8] -#elif defined(__ARMEB__) - str r5,[r0,#8] -#else - mov r9,r5,lsr#8 - strb r5,[r0,#8+3] - mov r10,r5,lsr#16 - strb r9,[r0,#8+2] - mov r11,r5,lsr#24 - strb r10,[r0,#8+1] - strb r11,[r0,#8] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r6,r6 - str r6,[r0,#4] -#elif defined(__ARMEB__) - str r6,[r0,#4] -#else - mov r9,r6,lsr#8 - strb r6,[r0,#4+3] - mov r10,r6,lsr#16 - strb r9,[r0,#4+2] - mov r11,r6,lsr#24 - strb r10,[r0,#4+1] - strb r11,[r0,#4] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r7,r7 - str r7,[r0,#0] -#elif defined(__ARMEB__) - str r7,[r0,#0] -#else - mov r9,r7,lsr#8 - strb r7,[r0,#0+3] - mov r10,r7,lsr#16 - strb r9,[r0,#0+2] - mov r11,r7,lsr#24 - strb r10,[r0,#0+1] - strb r11,[r0,#0] -#endif - -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif - #if __ARM_MAX_ARCH__>=7 diff --git a/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/vpaes-armv7.S b/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/vpaes-armv7.S new file mode 100644 index 00000000000..6aead7cac2a --- /dev/null +++ b/contrib/boringssl-cmake/ios-arm/crypto/fipsmodule/vpaes-armv7.S @@ -0,0 +1,1265 @@ +// This file is generated from a similarly-named Perl script in the BoringSSL +// source tree. Do not edit by hand. + +#if !defined(__has_feature) +#define __has_feature(x) 0 +#endif +#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) +#define OPENSSL_NO_ASM +#endif + +#if !defined(OPENSSL_NO_ASM) +#if defined(BORINGSSL_PREFIX) +#include +#endif +.syntax unified + + + + +#if defined(__thumb2__) +.thumb +#else +.code 32 +#endif + +.text + + +.align 7 @ totally strategic alignment +_vpaes_consts: +Lk_mc_forward:@ mc_forward +.quad 0x0407060500030201, 0x0C0F0E0D080B0A09 +.quad 0x080B0A0904070605, 0x000302010C0F0E0D +.quad 0x0C0F0E0D080B0A09, 0x0407060500030201 +.quad 0x000302010C0F0E0D, 0x080B0A0904070605 +Lk_mc_backward:@ mc_backward +.quad 0x0605040702010003, 0x0E0D0C0F0A09080B +.quad 0x020100030E0D0C0F, 0x0A09080B06050407 +.quad 0x0E0D0C0F0A09080B, 0x0605040702010003 +.quad 0x0A09080B06050407, 0x020100030E0D0C0F +Lk_sr:@ sr +.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 +.quad 0x030E09040F0A0500, 0x0B06010C07020D08 +.quad 0x0F060D040B020900, 0x070E050C030A0108 +.quad 0x0B0E0104070A0D00, 0x0306090C0F020508 + +@ +@ "Hot" constants +@ +Lk_inv:@ inv, inva +.quad 0x0E05060F0D080180, 0x040703090A0B0C02 +.quad 0x01040A060F0B0780, 0x030D0E0C02050809 +Lk_ipt:@ input transform (lo, hi) +.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 +.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 +Lk_sbo:@ sbou, sbot +.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 +.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA +Lk_sb1:@ sb1u, sb1t +.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF +.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 +Lk_sb2:@ sb2u, sb2t +.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A +.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD + +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,82,77,118,55,32,78,69,79,78,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 +.align 2 + +.align 6 +@@ +@@ _aes_preheat +@@ +@@ Fills q9-q15 as specified below. +@@ +#ifdef __thumb2__ +.thumb_func _vpaes_preheat +#endif +.align 4 +_vpaes_preheat: + adr r10, Lk_inv + vmov.i8 q9, #0x0f @ Lk_s0F + vld1.64 {q10,q11}, [r10]! @ Lk_inv + add r10, r10, #64 @ Skip Lk_ipt, Lk_sbo + vld1.64 {q12,q13}, [r10]! @ Lk_sb1 + vld1.64 {q14,q15}, [r10] @ Lk_sb2 + bx lr + +@@ +@@ _aes_encrypt_core +@@ +@@ AES-encrypt q0. +@@ +@@ Inputs: +@@ q0 = input +@@ q9-q15 as in _vpaes_preheat +@@ [r2] = scheduled keys +@@ +@@ Output in q0 +@@ Clobbers q1-q5, r8-r11 +@@ Preserves q6-q8 so you get some local vectors +@@ +@@ +#ifdef __thumb2__ +.thumb_func _vpaes_encrypt_core +#endif +.align 4 +_vpaes_encrypt_core: + mov r9, r2 + ldr r8, [r2,#240] @ pull rounds + adr r11, Lk_ipt + @ vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo + @ vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi + vld1.64 {q2, q3}, [r11] + adr r11, Lk_mc_forward+16 + vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5 # round0 key + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 + vtbl.8 d2, {q2}, d2 @ vpshufb %xmm1, %xmm2, %xmm1 + vtbl.8 d3, {q2}, d3 + vtbl.8 d4, {q3}, d0 @ vpshufb %xmm0, %xmm3, %xmm2 + vtbl.8 d5, {q3}, d1 + veor q0, q1, q5 @ vpxor %xmm5, %xmm1, %xmm0 + veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 + + @ .Lenc_entry ends with a bnz instruction which is normally paired with + @ subs in .Lenc_loop. + tst r8, r8 + b Lenc_entry + +.align 4 +Lenc_loop: + @ middle of middle round + add r10, r11, #0x40 + vtbl.8 d8, {q13}, d4 @ vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u + vtbl.8 d9, {q13}, d5 + vld1.64 {q1}, [r11]! @ vmovdqa -0x40(%r11,%r10), %xmm1 # Lk_mc_forward[] + vtbl.8 d0, {q12}, d6 @ vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t + vtbl.8 d1, {q12}, d7 + veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + vtbl.8 d10, {q15}, d4 @ vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u + vtbl.8 d11, {q15}, d5 + veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A + vtbl.8 d4, {q14}, d6 @ vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t + vtbl.8 d5, {q14}, d7 + vld1.64 {q4}, [r10] @ vmovdqa (%r11,%r10), %xmm4 # Lk_mc_backward[] + vtbl.8 d6, {q0}, d2 @ vpshufb %xmm1, %xmm0, %xmm3 # 0 = B + vtbl.8 d7, {q0}, d3 + veor q2, q2, q5 @ vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A + @ Write to q5 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d10, {q0}, d8 @ vpshufb %xmm4, %xmm0, %xmm0 # 3 = D + vtbl.8 d11, {q0}, d9 + veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B + vtbl.8 d8, {q3}, d2 @ vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C + vtbl.8 d9, {q3}, d3 + @ Here we restore the original q0/q5 usage. + veor q0, q5, q3 @ vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D + and r11, r11, #~(1<<6) @ and $0x30, %r11 # ... mod 4 + veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D + subs r8, r8, #1 @ nr-- + +Lenc_entry: + @ top of round + vand q1, q0, q9 @ vpand %xmm0, %xmm9, %xmm1 # 0 = k + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i + vtbl.8 d10, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k + vtbl.8 d11, {q11}, d3 + veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j + vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + vtbl.8 d7, {q10}, d1 + vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + vtbl.8 d9, {q10}, d3 + veor q3, q3, q5 @ vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + vtbl.8 d4, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + vtbl.8 d5, {q10}, d7 + vtbl.8 d6, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + vtbl.8 d7, {q10}, d9 + veor q2, q2, q1 @ vpxor %xmm1, %xmm2, %xmm2 # 2 = io + veor q3, q3, q0 @ vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5 + bne Lenc_loop + + @ middle of last round + add r10, r11, #0x80 + + adr r11, Lk_sbo + @ Read to q1 instead of q4, so the vtbl.8 instruction below does not + @ overlap table and destination registers. + vld1.64 {q1}, [r11]! @ vmovdqa -0x60(%r10), %xmm4 # 3 : sbou + vld1.64 {q0}, [r11] @ vmovdqa -0x50(%r10), %xmm0 # 0 : sbot Lk_sbo+16 + vtbl.8 d8, {q1}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + vtbl.8 d9, {q1}, d5 + vld1.64 {q1}, [r10] @ vmovdqa 0x40(%r11,%r10), %xmm1 # Lk_sr[] + @ Write to q2 instead of q0 below, to avoid overlapping table and + @ destination registers. + vtbl.8 d4, {q0}, d6 @ vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t + vtbl.8 d5, {q0}, d7 + veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + veor q2, q2, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A + @ Here we restore the original q0/q2 usage. + vtbl.8 d0, {q2}, d2 @ vpshufb %xmm1, %xmm0, %xmm0 + vtbl.8 d1, {q2}, d3 + bx lr + + +.globl _vpaes_encrypt +.private_extern _vpaes_encrypt +#ifdef __thumb2__ +.thumb_func _vpaes_encrypt +#endif +.align 4 +_vpaes_encrypt: + @ _vpaes_encrypt_core uses r8-r11. Round up to r7-r11 to maintain stack + @ alignment. + stmdb sp!, {r7,r8,r9,r10,r11,lr} + @ _vpaes_encrypt_core uses q4-q5 (d8-d11), which are callee-saved. + vstmdb sp!, {d8,d9,d10,d11} + + vld1.64 {q0}, [r0] + bl _vpaes_preheat + bl _vpaes_encrypt_core + vst1.64 {q0}, [r1] + + vldmia sp!, {d8,d9,d10,d11} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return + + +@ +@ Decryption stuff +@ + +.align 4 +_vpaes_decrypt_consts: +Lk_dipt:@ decryption input transform +.quad 0x0F505B040B545F00, 0x154A411E114E451A +.quad 0x86E383E660056500, 0x12771772F491F194 +Lk_dsbo:@ decryption sbox final output +.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D +.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C +Lk_dsb9:@ decryption sbox output *9*u, *9*t +.quad 0x851C03539A86D600, 0xCAD51F504F994CC9 +.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565 +Lk_dsbd:@ decryption sbox output *D*u, *D*t +.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439 +.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3 +Lk_dsbb:@ decryption sbox output *B*u, *B*t +.quad 0xD022649296B44200, 0x602646F6B0F2D404 +.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B +Lk_dsbe:@ decryption sbox output *E*u, *E*t +.quad 0x46F2929626D4D000, 0x2242600464B4F6B0 +.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32 + + +@@ +@@ Decryption core +@@ +@@ Same API as encryption core, except it clobbers q12-q15 rather than using +@@ the values from _vpaes_preheat. q9-q11 must still be set from +@@ _vpaes_preheat. +@@ +#ifdef __thumb2__ +.thumb_func _vpaes_decrypt_core +#endif +.align 4 +_vpaes_decrypt_core: + mov r9, r2 + ldr r8, [r2,#240] @ pull rounds + + @ This function performs shuffles with various constants. The x86_64 + @ version loads them on-demand into %xmm0-%xmm5. This does not work well + @ for ARMv7 because those registers are shuffle destinations. The ARMv8 + @ version preloads those constants into registers, but ARMv7 has half + @ the registers to work with. Instead, we load them on-demand into + @ q12-q15, registers normally use for preloaded constants. This is fine + @ because decryption doesn't use those constants. The values are + @ constant, so this does not interfere with potential 2x optimizations. + adr r7, Lk_dipt + + vld1.64 {q12,q13}, [r7] @ vmovdqa Lk_dipt(%rip), %xmm2 # iptlo + lsl r11, r8, #4 @ mov %rax, %r11; shl $4, %r11 + eor r11, r11, #0x30 @ xor $0x30, %r11 + adr r10, Lk_sr + and r11, r11, #0x30 @ and $0x30, %r11 + add r11, r11, r10 + adr r10, Lk_mc_forward+48 + + vld1.64 {q4}, [r9]! @ vmovdqu (%r9), %xmm4 # round0 key + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 + vtbl.8 d4, {q12}, d2 @ vpshufb %xmm1, %xmm2, %xmm2 + vtbl.8 d5, {q12}, d3 + vld1.64 {q5}, [r10] @ vmovdqa Lk_mc_forward+48(%rip), %xmm5 + @ vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi + vtbl.8 d0, {q13}, d0 @ vpshufb %xmm0, %xmm1, %xmm0 + vtbl.8 d1, {q13}, d1 + veor q2, q2, q4 @ vpxor %xmm4, %xmm2, %xmm2 + veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 + + @ .Ldec_entry ends with a bnz instruction which is normally paired with + @ subs in .Ldec_loop. + tst r8, r8 + b Ldec_entry + +.align 4 +Ldec_loop: +@ +@ Inverse mix columns +@ + + @ We load .Lk_dsb* into q12-q15 on-demand. See the comment at the top of + @ the function. + adr r10, Lk_dsb9 + vld1.64 {q12,q13}, [r10]! @ vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u + @ vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t + @ Load sbd* ahead of time. + vld1.64 {q14,q15}, [r10]! @ vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu + @ vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt + vtbl.8 d8, {q12}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u + vtbl.8 d9, {q12}, d5 + vtbl.8 d2, {q13}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t + vtbl.8 d3, {q13}, d7 + veor q0, q4, q0 @ vpxor %xmm4, %xmm0, %xmm0 + + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + + @ Load sbb* ahead of time. + vld1.64 {q12,q13}, [r10]! @ vmovdqa 0x20(%r10),%xmm4 # 4 : sbbu + @ vmovdqa 0x30(%r10),%xmm1 # 0 : sbbt + + vtbl.8 d8, {q14}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu + vtbl.8 d9, {q14}, d5 + @ Write to q1 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch + vtbl.8 d3, {q0}, d11 + @ Here we restore the original q0/q1 usage. This instruction is + @ reordered from the ARMv8 version so we do not clobber the vtbl.8 + @ below. + veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + vtbl.8 d2, {q15}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt + vtbl.8 d3, {q15}, d7 + @ vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + @ vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt + + @ Load sbd* ahead of time. + vld1.64 {q14,q15}, [r10]! @ vmovdqa 0x40(%r10),%xmm4 # 4 : sbeu + @ vmovdqa 0x50(%r10),%xmm1 # 0 : sbet + + vtbl.8 d8, {q12}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu + vtbl.8 d9, {q12}, d5 + @ Write to q1 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch + vtbl.8 d3, {q0}, d11 + @ Here we restore the original q0/q1 usage. This instruction is + @ reordered from the ARMv8 version so we do not clobber the vtbl.8 + @ below. + veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + vtbl.8 d2, {q13}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt + vtbl.8 d3, {q13}, d7 + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + + vtbl.8 d8, {q14}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu + vtbl.8 d9, {q14}, d5 + @ Write to q1 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch + vtbl.8 d3, {q0}, d11 + @ Here we restore the original q0/q1 usage. This instruction is + @ reordered from the ARMv8 version so we do not clobber the vtbl.8 + @ below. + veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + vtbl.8 d2, {q15}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet + vtbl.8 d3, {q15}, d7 + vext.8 q5, q5, q5, #12 @ vpalignr $12, %xmm5, %xmm5, %xmm5 + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + subs r8, r8, #1 @ sub $1,%rax # nr-- + +Ldec_entry: + @ top of round + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 # 0 = k + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i + vtbl.8 d4, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + vtbl.8 d5, {q11}, d3 + veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j + vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + vtbl.8 d7, {q10}, d1 + vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + vtbl.8 d9, {q10}, d3 + veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + veor q4, q4, q2 @ vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + vtbl.8 d4, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + vtbl.8 d5, {q10}, d7 + vtbl.8 d6, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + vtbl.8 d7, {q10}, d9 + veor q2, q2, q1 @ vpxor %xmm1, %xmm2, %xmm2 # 2 = io + veor q3, q3, q0 @ vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + vld1.64 {q0}, [r9]! @ vmovdqu (%r9), %xmm0 + bne Ldec_loop + + @ middle of last round + + adr r10, Lk_dsbo + + @ Write to q1 rather than q4 to avoid overlapping table and destination. + vld1.64 {q1}, [r10]! @ vmovdqa 0x60(%r10), %xmm4 # 3 : sbou + vtbl.8 d8, {q1}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + vtbl.8 d9, {q1}, d5 + @ Write to q2 rather than q1 to avoid overlapping table and destination. + vld1.64 {q2}, [r10] @ vmovdqa 0x70(%r10), %xmm1 # 0 : sbot + vtbl.8 d2, {q2}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t + vtbl.8 d3, {q2}, d7 + vld1.64 {q2}, [r11] @ vmovdqa -0x160(%r11), %xmm2 # Lk_sr-Lk_dsbd=-0x160 + veor q4, q4, q0 @ vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k + @ Write to q1 rather than q0 so the table and destination registers + @ below do not overlap. + veor q1, q1, q4 @ vpxor %xmm4, %xmm1, %xmm0 # 0 = A + vtbl.8 d0, {q1}, d4 @ vpshufb %xmm2, %xmm0, %xmm0 + vtbl.8 d1, {q1}, d5 + bx lr + + +.globl _vpaes_decrypt +.private_extern _vpaes_decrypt +#ifdef __thumb2__ +.thumb_func _vpaes_decrypt +#endif +.align 4 +_vpaes_decrypt: + @ _vpaes_decrypt_core uses r7-r11. + stmdb sp!, {r7,r8,r9,r10,r11,lr} + @ _vpaes_decrypt_core uses q4-q5 (d8-d11), which are callee-saved. + vstmdb sp!, {d8,d9,d10,d11} + + vld1.64 {q0}, [r0] + bl _vpaes_preheat + bl _vpaes_decrypt_core + vst1.64 {q0}, [r1] + + vldmia sp!, {d8,d9,d10,d11} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@ @@ +@@ AES key schedule @@ +@@ @@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +@ This function diverges from both x86_64 and armv7 in which constants are +@ pinned. x86_64 has a common preheat function for all operations. aarch64 +@ separates them because it has enough registers to pin nearly all constants. +@ armv7 does not have enough registers, but needing explicit loads and stores +@ also complicates using x86_64's register allocation directly. +@ +@ We pin some constants for convenience and leave q14 and q15 free to load +@ others on demand. + +@ +@ Key schedule constants +@ + +.align 4 +_vpaes_key_consts: +Lk_dksd:@ decryption key schedule: invskew x*D +.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9 +.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E +Lk_dksb:@ decryption key schedule: invskew x*B +.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99 +.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8 +Lk_dkse:@ decryption key schedule: invskew x*E + 0x63 +.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086 +.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487 +Lk_dks9:@ decryption key schedule: invskew x*9 +.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC +.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE + +Lk_rcon:@ rcon +.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 + +Lk_opt:@ output transform +.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 +.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 +Lk_deskew:@ deskew tables: inverts the sbox's "skew" +.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A +.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 + + +#ifdef __thumb2__ +.thumb_func _vpaes_key_preheat +#endif +.align 4 +_vpaes_key_preheat: + adr r11, Lk_rcon + vmov.i8 q12, #0x5b @ Lk_s63 + adr r10, Lk_inv @ Must be aligned to 8 mod 16. + vmov.i8 q9, #0x0f @ Lk_s0F + vld1.64 {q10,q11}, [r10] @ Lk_inv + vld1.64 {q8}, [r11] @ Lk_rcon + bx lr + + +#ifdef __thumb2__ +.thumb_func _vpaes_schedule_core +#endif +.align 4 +_vpaes_schedule_core: + @ We only need to save lr, but ARM requires an 8-byte stack alignment, + @ so save an extra register. + stmdb sp!, {r3,lr} + + bl _vpaes_key_preheat @ load the tables + + adr r11, Lk_ipt @ Must be aligned to 8 mod 16. + vld1.64 {q0}, [r0]! @ vmovdqu (%rdi), %xmm0 # load key (unaligned) + + @ input transform + @ Use q4 here rather than q3 so .Lschedule_am_decrypting does not + @ overlap table and destination. + vmov q4, q0 @ vmovdqa %xmm0, %xmm3 + bl _vpaes_schedule_transform + adr r10, Lk_sr @ Must be aligned to 8 mod 16. + vmov q7, q0 @ vmovdqa %xmm0, %xmm7 + + add r8, r8, r10 + tst r3, r3 + bne Lschedule_am_decrypting + + @ encrypting, output zeroth round key after transform + vst1.64 {q0}, [r2] @ vmovdqu %xmm0, (%rdx) + b Lschedule_go + +Lschedule_am_decrypting: + @ decrypting, output zeroth round key after shiftrows + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1 + vtbl.8 d6, {q4}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q4}, d3 + vst1.64 {q3}, [r2] @ vmovdqu %xmm3, (%rdx) + eor r8, r8, #0x30 @ xor $0x30, %r8 + +Lschedule_go: + cmp r1, #192 @ cmp $192, %esi + bhi Lschedule_256 + beq Lschedule_192 + @ 128: fall though + +@@ +@@ .schedule_128 +@@ +@@ 128-bit specific part of key schedule. +@@ +@@ This schedule is really simple, because all its parts +@@ are accomplished by the subroutines. +@@ +Lschedule_128: + mov r0, #10 @ mov $10, %esi + +Loop_schedule_128: + bl _vpaes_schedule_round + subs r0, r0, #1 @ dec %esi + beq Lschedule_mangle_last + bl _vpaes_schedule_mangle @ write output + b Loop_schedule_128 + +@@ +@@ .aes_schedule_192 +@@ +@@ 192-bit specific part of key schedule. +@@ +@@ The main body of this schedule is the same as the 128-bit +@@ schedule, but with more smearing. The long, high side is +@@ stored in q7 as before, and the short, low side is in +@@ the high bits of q6. +@@ +@@ This schedule is somewhat nastier, however, because each +@@ round produces 192 bits of key material, or 1.5 round keys. +@@ Therefore, on each cycle we do 2 rounds and produce 3 round +@@ keys. +@@ +.align 4 +Lschedule_192: + sub r0, r0, #8 + vld1.64 {q0}, [r0] @ vmovdqu 8(%rdi),%xmm0 # load key part 2 (very unaligned) + bl _vpaes_schedule_transform @ input transform + vmov q6, q0 @ vmovdqa %xmm0, %xmm6 # save short part + vmov.i8 d12, #0 @ vpxor %xmm4, %xmm4, %xmm4 # clear 4 + @ vmovhlps %xmm4, %xmm6, %xmm6 # clobber low side with zeros + mov r0, #4 @ mov $4, %esi + +Loop_schedule_192: + bl _vpaes_schedule_round + vext.8 q0, q6, q0, #8 @ vpalignr $8,%xmm6,%xmm0,%xmm0 + bl _vpaes_schedule_mangle @ save key n + bl _vpaes_schedule_192_smear + bl _vpaes_schedule_mangle @ save key n+1 + bl _vpaes_schedule_round + subs r0, r0, #1 @ dec %esi + beq Lschedule_mangle_last + bl _vpaes_schedule_mangle @ save key n+2 + bl _vpaes_schedule_192_smear + b Loop_schedule_192 + +@@ +@@ .aes_schedule_256 +@@ +@@ 256-bit specific part of key schedule. +@@ +@@ The structure here is very similar to the 128-bit +@@ schedule, but with an additional "low side" in +@@ q6. The low side's rounds are the same as the +@@ high side's, except no rcon and no rotation. +@@ +.align 4 +Lschedule_256: + vld1.64 {q0}, [r0] @ vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned) + bl _vpaes_schedule_transform @ input transform + mov r0, #7 @ mov $7, %esi + +Loop_schedule_256: + bl _vpaes_schedule_mangle @ output low result + vmov q6, q0 @ vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6 + + @ high round + bl _vpaes_schedule_round + subs r0, r0, #1 @ dec %esi + beq Lschedule_mangle_last + bl _vpaes_schedule_mangle + + @ low round. swap xmm7 and xmm6 + vdup.32 q0, d1[1] @ vpshufd $0xFF, %xmm0, %xmm0 + vmov.i8 q4, #0 + vmov q5, q7 @ vmovdqa %xmm7, %xmm5 + vmov q7, q6 @ vmovdqa %xmm6, %xmm7 + bl _vpaes_schedule_low_round + vmov q7, q5 @ vmovdqa %xmm5, %xmm7 + + b Loop_schedule_256 + +@@ +@@ .aes_schedule_mangle_last +@@ +@@ Mangler for last round of key schedule +@@ Mangles q0 +@@ when encrypting, outputs out(q0) ^ 63 +@@ when decrypting, outputs unskew(q0) +@@ +@@ Always called right before return... jumps to cleanup and exits +@@ +.align 4 +Lschedule_mangle_last: + @ schedule last round key from xmm0 + adr r11, Lk_deskew @ lea Lk_deskew(%rip),%r11 # prepare to deskew + tst r3, r3 + bne Lschedule_mangle_last_dec + + @ encrypting + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10),%xmm1 + adr r11, Lk_opt @ lea Lk_opt(%rip), %r11 # prepare to output transform + add r2, r2, #32 @ add $32, %rdx + vmov q2, q0 + vtbl.8 d0, {q2}, d2 @ vpshufb %xmm1, %xmm0, %xmm0 # output permute + vtbl.8 d1, {q2}, d3 + +Lschedule_mangle_last_dec: + sub r2, r2, #16 @ add $-16, %rdx + veor q0, q0, q12 @ vpxor Lk_s63(%rip), %xmm0, %xmm0 + bl _vpaes_schedule_transform @ output transform + vst1.64 {q0}, [r2] @ vmovdqu %xmm0, (%rdx) # save last key + + @ cleanup + veor q0, q0, q0 @ vpxor %xmm0, %xmm0, %xmm0 + veor q1, q1, q1 @ vpxor %xmm1, %xmm1, %xmm1 + veor q2, q2, q2 @ vpxor %xmm2, %xmm2, %xmm2 + veor q3, q3, q3 @ vpxor %xmm3, %xmm3, %xmm3 + veor q4, q4, q4 @ vpxor %xmm4, %xmm4, %xmm4 + veor q5, q5, q5 @ vpxor %xmm5, %xmm5, %xmm5 + veor q6, q6, q6 @ vpxor %xmm6, %xmm6, %xmm6 + veor q7, q7, q7 @ vpxor %xmm7, %xmm7, %xmm7 + ldmia sp!, {r3,pc} @ return + + +@@ +@@ .aes_schedule_192_smear +@@ +@@ Smear the short, low side in the 192-bit key schedule. +@@ +@@ Inputs: +@@ q7: high side, b a x y +@@ q6: low side, d c 0 0 +@@ +@@ Outputs: +@@ q6: b+c+d b+c 0 0 +@@ q0: b+c+d b+c b a +@@ +#ifdef __thumb2__ +.thumb_func _vpaes_schedule_192_smear +#endif +.align 4 +_vpaes_schedule_192_smear: + vmov.i8 q1, #0 + vdup.32 q0, d15[1] + vshl.i64 q1, q6, #32 @ vpshufd $0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0 + vmov d0, d15 @ vpshufd $0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a + veor q6, q6, q1 @ vpxor %xmm1, %xmm6, %xmm6 # -> c+d c 0 0 + veor q1, q1, q1 @ vpxor %xmm1, %xmm1, %xmm1 + veor q6, q6, q0 @ vpxor %xmm0, %xmm6, %xmm6 # -> b+c+d b+c b a + vmov q0, q6 @ vmovdqa %xmm6, %xmm0 + vmov d12, d2 @ vmovhlps %xmm1, %xmm6, %xmm6 # clobber low side with zeros + bx lr + + +@@ +@@ .aes_schedule_round +@@ +@@ Runs one main round of the key schedule on q0, q7 +@@ +@@ Specifically, runs subbytes on the high dword of q0 +@@ then rotates it by one byte and xors into the low dword of +@@ q7. +@@ +@@ Adds rcon from low byte of q8, then rotates q8 for +@@ next rcon. +@@ +@@ Smears the dwords of q7 by xoring the low into the +@@ second low, result into third, result into highest. +@@ +@@ Returns results in q7 = q0. +@@ Clobbers q1-q4, r11. +@@ +#ifdef __thumb2__ +.thumb_func _vpaes_schedule_round +#endif +.align 4 +_vpaes_schedule_round: + @ extract rcon from xmm8 + vmov.i8 q4, #0 @ vpxor %xmm4, %xmm4, %xmm4 + vext.8 q1, q8, q4, #15 @ vpalignr $15, %xmm8, %xmm4, %xmm1 + vext.8 q8, q8, q8, #15 @ vpalignr $15, %xmm8, %xmm8, %xmm8 + veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7 + + @ rotate + vdup.32 q0, d1[1] @ vpshufd $0xFF, %xmm0, %xmm0 + vext.8 q0, q0, q0, #1 @ vpalignr $1, %xmm0, %xmm0, %xmm0 + + @ fall through... + + @ low round: same as high round, but no rotation and no rcon. +_vpaes_schedule_low_round: + @ The x86_64 version pins .Lk_sb1 in %xmm13 and .Lk_sb1+16 in %xmm12. + @ We pin other values in _vpaes_key_preheat, so load them now. + adr r11, Lk_sb1 + vld1.64 {q14,q15}, [r11] + + @ smear xmm7 + vext.8 q1, q4, q7, #12 @ vpslldq $4, %xmm7, %xmm1 + veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7 + vext.8 q4, q4, q7, #8 @ vpslldq $8, %xmm7, %xmm4 + + @ subbytes + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 # 0 = k + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i + veor q7, q7, q4 @ vpxor %xmm4, %xmm7, %xmm7 + vtbl.8 d4, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + vtbl.8 d5, {q11}, d3 + veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j + vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + vtbl.8 d7, {q10}, d1 + veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + vtbl.8 d9, {q10}, d3 + veor q7, q7, q12 @ vpxor Lk_s63(%rip), %xmm7, %xmm7 + vtbl.8 d6, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak + vtbl.8 d7, {q10}, d7 + veor q4, q4, q2 @ vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + vtbl.8 d4, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak + vtbl.8 d5, {q10}, d9 + veor q3, q3, q1 @ vpxor %xmm1, %xmm3, %xmm3 # 2 = io + veor q2, q2, q0 @ vpxor %xmm0, %xmm2, %xmm2 # 3 = jo + vtbl.8 d8, {q15}, d6 @ vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou + vtbl.8 d9, {q15}, d7 + vtbl.8 d2, {q14}, d4 @ vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t + vtbl.8 d3, {q14}, d5 + veor q1, q1, q4 @ vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output + + @ add in smeared stuff + veor q0, q1, q7 @ vpxor %xmm7, %xmm1, %xmm0 + veor q7, q1, q7 @ vmovdqa %xmm0, %xmm7 + bx lr + + +@@ +@@ .aes_schedule_transform +@@ +@@ Linear-transform q0 according to tables at [r11] +@@ +@@ Requires that q9 = 0x0F0F... as in preheat +@@ Output in q0 +@@ Clobbers q1, q2, q14, q15 +@@ +#ifdef __thumb2__ +.thumb_func _vpaes_schedule_transform +#endif +.align 4 +_vpaes_schedule_transform: + vld1.64 {q14,q15}, [r11] @ vmovdqa (%r11), %xmm2 # lo + @ vmovdqa 16(%r11), %xmm1 # hi + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 + vtbl.8 d4, {q14}, d2 @ vpshufb %xmm1, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d3 + vtbl.8 d0, {q15}, d0 @ vpshufb %xmm0, %xmm1, %xmm0 + vtbl.8 d1, {q15}, d1 + veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 + bx lr + + +@@ +@@ .aes_schedule_mangle +@@ +@@ Mangles q0 from (basis-transformed) standard version +@@ to our version. +@@ +@@ On encrypt, +@@ xor with 0x63 +@@ multiply by circulant 0,1,1,1 +@@ apply shiftrows transform +@@ +@@ On decrypt, +@@ xor with 0x63 +@@ multiply by "inverse mixcolumns" circulant E,B,D,9 +@@ deskew +@@ apply shiftrows transform +@@ +@@ +@@ Writes out to [r2], and increments or decrements it +@@ Keeps track of round number mod 4 in r8 +@@ Preserves q0 +@@ Clobbers q1-q5 +@@ +#ifdef __thumb2__ +.thumb_func _vpaes_schedule_mangle +#endif +.align 4 +_vpaes_schedule_mangle: + tst r3, r3 + vmov q4, q0 @ vmovdqa %xmm0, %xmm4 # save xmm0 for later + adr r11, Lk_mc_forward @ Must be aligned to 8 mod 16. + vld1.64 {q5}, [r11] @ vmovdqa Lk_mc_forward(%rip),%xmm5 + bne Lschedule_mangle_dec + + @ encrypting + @ Write to q2 so we do not overlap table and destination below. + veor q2, q0, q12 @ vpxor Lk_s63(%rip), %xmm0, %xmm4 + add r2, r2, #16 @ add $16, %rdx + vtbl.8 d8, {q2}, d10 @ vpshufb %xmm5, %xmm4, %xmm4 + vtbl.8 d9, {q2}, d11 + vtbl.8 d2, {q4}, d10 @ vpshufb %xmm5, %xmm4, %xmm1 + vtbl.8 d3, {q4}, d11 + vtbl.8 d6, {q1}, d10 @ vpshufb %xmm5, %xmm1, %xmm3 + vtbl.8 d7, {q1}, d11 + veor q4, q4, q1 @ vpxor %xmm1, %xmm4, %xmm4 + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1 + veor q3, q3, q4 @ vpxor %xmm4, %xmm3, %xmm3 + + b Lschedule_mangle_both +.align 4 +Lschedule_mangle_dec: + @ inverse mix columns + adr r11, Lk_dksd @ lea Lk_dksd(%rip),%r11 + vshr.u8 q1, q4, #4 @ vpsrlb $4, %xmm4, %xmm1 # 1 = hi + vand q4, q4, q9 @ vpand %xmm9, %xmm4, %xmm4 # 4 = lo + + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x00(%r11), %xmm2 + @ vmovdqa 0x10(%r11), %xmm3 + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q15}, d3 + @ Load .Lk_dksb ahead of time. + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x20(%r11), %xmm2 + @ vmovdqa 0x30(%r11), %xmm3 + @ Write to q13 so we do not overlap table and destination. + veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 + vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3 + vtbl.8 d7, {q13}, d11 + + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2 + vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q15}, d3 + @ Load .Lk_dkse ahead of time. + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x40(%r11), %xmm2 + @ vmovdqa 0x50(%r11), %xmm3 + @ Write to q13 so we do not overlap table and destination. + veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 + vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3 + vtbl.8 d7, {q13}, d11 + + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2 + vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q15}, d3 + @ Load .Lk_dkse ahead of time. + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x60(%r11), %xmm2 + @ vmovdqa 0x70(%r11), %xmm4 + @ Write to q13 so we do not overlap table and destination. + veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 + + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3 + vtbl.8 d7, {q13}, d11 + vtbl.8 d8, {q15}, d2 @ vpshufb %xmm1, %xmm4, %xmm4 + vtbl.8 d9, {q15}, d3 + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1 + veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2 + veor q3, q4, q2 @ vpxor %xmm2, %xmm4, %xmm3 + + sub r2, r2, #16 @ add $-16, %rdx + +Lschedule_mangle_both: + @ Write to q2 so table and destination do not overlap. + vtbl.8 d4, {q3}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d5, {q3}, d3 + add r8, r8, #64-16 @ add $-16, %r8 + and r8, r8, #~(1<<6) @ and $0x30, %r8 + vst1.64 {q2}, [r2] @ vmovdqu %xmm3, (%rdx) + bx lr + + +.globl _vpaes_set_encrypt_key +.private_extern _vpaes_set_encrypt_key +#ifdef __thumb2__ +.thumb_func _vpaes_set_encrypt_key +#endif +.align 4 +_vpaes_set_encrypt_key: + stmdb sp!, {r7,r8,r9,r10,r11, lr} + vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + + lsr r9, r1, #5 @ shr $5,%eax + add r9, r9, #5 @ $5,%eax + str r9, [r2,#240] @ mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + + mov r3, #0 @ mov $0,%ecx + mov r8, #0x30 @ mov $0x30,%r8d + bl _vpaes_schedule_core + eor r0, r0, r0 + + vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return + + +.globl _vpaes_set_decrypt_key +.private_extern _vpaes_set_decrypt_key +#ifdef __thumb2__ +.thumb_func _vpaes_set_decrypt_key +#endif +.align 4 +_vpaes_set_decrypt_key: + stmdb sp!, {r7,r8,r9,r10,r11, lr} + vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + + lsr r9, r1, #5 @ shr $5,%eax + add r9, r9, #5 @ $5,%eax + str r9, [r2,#240] @ mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + lsl r9, r9, #4 @ shl $4,%eax + add r2, r2, #16 @ lea 16(%rdx,%rax),%rdx + add r2, r2, r9 + + mov r3, #1 @ mov $1,%ecx + lsr r8, r1, #1 @ shr $1,%r8d + and r8, r8, #32 @ and $32,%r8d + eor r8, r8, #32 @ xor $32,%r8d # nbits==192?0:32 + bl _vpaes_schedule_core + + vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return + + +@ Additional constants for converting to bsaes. + +.align 4 +_vpaes_convert_consts: +@ .Lk_opt_then_skew applies skew(opt(x)) XOR 0x63, where skew is the linear +@ transform in the AES S-box. 0x63 is incorporated into the low half of the +@ table. This was computed with the following script: +@ +@ def u64s_to_u128(x, y): +@ return x | (y << 64) +@ def u128_to_u64s(w): +@ return w & ((1<<64)-1), w >> 64 +@ def get_byte(w, i): +@ return (w >> (i*8)) & 0xff +@ def apply_table(table, b): +@ lo = b & 0xf +@ hi = b >> 4 +@ return get_byte(table[0], lo) ^ get_byte(table[1], hi) +@ def opt(b): +@ table = [ +@ u64s_to_u128(0xFF9F4929D6B66000, 0xF7974121DEBE6808), +@ u64s_to_u128(0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0), +@ ] +@ return apply_table(table, b) +@ def rot_byte(b, n): +@ return 0xff & ((b << n) | (b >> (8-n))) +@ def skew(x): +@ return (x ^ rot_byte(x, 1) ^ rot_byte(x, 2) ^ rot_byte(x, 3) ^ +@ rot_byte(x, 4)) +@ table = [0, 0] +@ for i in range(16): +@ table[0] |= (skew(opt(i)) ^ 0x63) << (i*8) +@ table[1] |= skew(opt(i<<4)) << (i*8) +@ print(" .quad 0x%016x, 0x%016x" % u128_to_u64s(table[0])) +@ print(" .quad 0x%016x, 0x%016x" % u128_to_u64s(table[1])) +Lk_opt_then_skew: +.quad 0x9cb8436798bc4763, 0x6440bb9f6044bf9b +.quad 0x1f30062936192f00, 0xb49bad829db284ab + +@ .Lk_decrypt_transform is a permutation which performs an 8-bit left-rotation +@ followed by a byte-swap on each 32-bit word of a vector. E.g., 0x11223344 +@ becomes 0x22334411 and then 0x11443322. +Lk_decrypt_transform: +.quad 0x0704050603000102, 0x0f0c0d0e0b08090a + + +@ void vpaes_encrypt_key_to_bsaes(AES_KEY *bsaes, const AES_KEY *vpaes); +.globl _vpaes_encrypt_key_to_bsaes +.private_extern _vpaes_encrypt_key_to_bsaes +#ifdef __thumb2__ +.thumb_func _vpaes_encrypt_key_to_bsaes +#endif +.align 4 +_vpaes_encrypt_key_to_bsaes: + stmdb sp!, {r11, lr} + + @ See _vpaes_schedule_core for the key schedule logic. In particular, + @ _vpaes_schedule_transform(.Lk_ipt) (section 2.2 of the paper), + @ _vpaes_schedule_mangle (section 4.3), and .Lschedule_mangle_last + @ contain the transformations not in the bsaes representation. This + @ function inverts those transforms. + @ + @ Note also that bsaes-armv7.pl expects aes-armv4.pl's key + @ representation, which does not match the other aes_nohw_* + @ implementations. The ARM aes_nohw_* stores each 32-bit word + @ byteswapped, as a convenience for (unsupported) big-endian ARM, at the + @ cost of extra REV and VREV32 operations in little-endian ARM. + + vmov.i8 q9, #0x0f @ Required by _vpaes_schedule_transform + adr r2, Lk_mc_forward @ Must be aligned to 8 mod 16. + add r3, r2, 0x90 @ Lk_sr+0x10-Lk_mc_forward = 0x90 (Apple's toolchain doesn't support the expression) + + vld1.64 {q12}, [r2] + vmov.i8 q10, #0x5b @ Lk_s63 from vpaes-x86_64 + adr r11, Lk_opt @ Must be aligned to 8 mod 16. + vmov.i8 q11, #0x63 @ LK_s63 without Lk_ipt applied + + @ vpaes stores one fewer round count than bsaes, but the number of keys + @ is the same. + ldr r2, [r1,#240] + add r2, r2, #1 + str r2, [r0,#240] + + @ The first key is transformed with _vpaes_schedule_transform(.Lk_ipt). + @ Invert this with .Lk_opt. + vld1.64 {q0}, [r1]! + bl _vpaes_schedule_transform + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + + @ The middle keys have _vpaes_schedule_transform(.Lk_ipt) applied, + @ followed by _vpaes_schedule_mangle. _vpaes_schedule_mangle XORs 0x63, + @ multiplies by the circulant 0,1,1,1, then applies ShiftRows. +Loop_enc_key_to_bsaes: + vld1.64 {q0}, [r1]! + + @ Invert the ShiftRows step (see .Lschedule_mangle_both). Note we cycle + @ r3 in the opposite direction and start at .Lk_sr+0x10 instead of 0x30. + @ We use r3 rather than r8 to avoid a callee-saved register. + vld1.64 {q1}, [r3] + vtbl.8 d4, {q0}, d2 + vtbl.8 d5, {q0}, d3 + add r3, r3, #16 + and r3, r3, #~(1<<6) + vmov q0, q2 + + @ Handle the last key differently. + subs r2, r2, #1 + beq Loop_enc_key_to_bsaes_last + + @ Multiply by the circulant. This is its own inverse. + vtbl.8 d2, {q0}, d24 + vtbl.8 d3, {q0}, d25 + vmov q0, q1 + vtbl.8 d4, {q1}, d24 + vtbl.8 d5, {q1}, d25 + veor q0, q0, q2 + vtbl.8 d2, {q2}, d24 + vtbl.8 d3, {q2}, d25 + veor q0, q0, q1 + + @ XOR and finish. + veor q0, q0, q10 + bl _vpaes_schedule_transform + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + b Loop_enc_key_to_bsaes + +Loop_enc_key_to_bsaes_last: + @ The final key does not have a basis transform (note + @ .Lschedule_mangle_last inverts the original transform). It only XORs + @ 0x63 and applies ShiftRows. The latter was already inverted in the + @ loop. Note that, because we act on the original representation, we use + @ q11, not q10. + veor q0, q0, q11 + vrev32.8 q0, q0 + vst1.64 {q0}, [r0] + + @ Wipe registers which contained key material. + veor q0, q0, q0 + veor q1, q1, q1 + veor q2, q2, q2 + + ldmia sp!, {r11, pc} @ return + + +@ void vpaes_decrypt_key_to_bsaes(AES_KEY *vpaes, const AES_KEY *bsaes); +.globl _vpaes_decrypt_key_to_bsaes +.private_extern _vpaes_decrypt_key_to_bsaes +#ifdef __thumb2__ +.thumb_func _vpaes_decrypt_key_to_bsaes +#endif +.align 4 +_vpaes_decrypt_key_to_bsaes: + stmdb sp!, {r11, lr} + + @ See _vpaes_schedule_core for the key schedule logic. Note vpaes + @ computes the decryption key schedule in reverse. Additionally, + @ aes-x86_64.pl shares some transformations, so we must only partially + @ invert vpaes's transformations. In general, vpaes computes in a + @ different basis (.Lk_ipt and .Lk_opt) and applies the inverses of + @ MixColumns, ShiftRows, and the affine part of the AES S-box (which is + @ split into a linear skew and XOR of 0x63). We undo all but MixColumns. + @ + @ Note also that bsaes-armv7.pl expects aes-armv4.pl's key + @ representation, which does not match the other aes_nohw_* + @ implementations. The ARM aes_nohw_* stores each 32-bit word + @ byteswapped, as a convenience for (unsupported) big-endian ARM, at the + @ cost of extra REV and VREV32 operations in little-endian ARM. + + adr r2, Lk_decrypt_transform + adr r3, Lk_sr+0x30 + adr r11, Lk_opt_then_skew @ Input to _vpaes_schedule_transform. + vld1.64 {q12}, [r2] @ Reuse q12 from encryption. + vmov.i8 q9, #0x0f @ Required by _vpaes_schedule_transform + + @ vpaes stores one fewer round count than bsaes, but the number of keys + @ is the same. + ldr r2, [r1,#240] + add r2, r2, #1 + str r2, [r0,#240] + + @ Undo the basis change and reapply the S-box affine transform. See + @ .Lschedule_mangle_last. + vld1.64 {q0}, [r1]! + bl _vpaes_schedule_transform + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + + @ See _vpaes_schedule_mangle for the transform on the middle keys. Note + @ it simultaneously inverts MixColumns and the S-box affine transform. + @ See .Lk_dksd through .Lk_dks9. +Loop_dec_key_to_bsaes: + vld1.64 {q0}, [r1]! + + @ Invert the ShiftRows step (see .Lschedule_mangle_both). Note going + @ forwards cancels inverting for which direction we cycle r3. We use r3 + @ rather than r8 to avoid a callee-saved register. + vld1.64 {q1}, [r3] + vtbl.8 d4, {q0}, d2 + vtbl.8 d5, {q0}, d3 + add r3, r3, #64-16 + and r3, r3, #~(1<<6) + vmov q0, q2 + + @ Handle the last key differently. + subs r2, r2, #1 + beq Loop_dec_key_to_bsaes_last + + @ Undo the basis change and reapply the S-box affine transform. + bl _vpaes_schedule_transform + + @ Rotate each word by 8 bytes (cycle the rows) and then byte-swap. We + @ combine the two operations in .Lk_decrypt_transform. + @ + @ TODO(davidben): Where does the rotation come from? + vtbl.8 d2, {q0}, d24 + vtbl.8 d3, {q0}, d25 + + vst1.64 {q1}, [r0]! + b Loop_dec_key_to_bsaes + +Loop_dec_key_to_bsaes_last: + @ The final key only inverts ShiftRows (already done in the loop). See + @ .Lschedule_am_decrypting. Its basis is not transformed. + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + + @ Wipe registers which contained key material. + veor q0, q0, q0 + veor q1, q1, q1 + veor q2, q2, q2 + + ldmia sp!, {r11, pc} @ return + +.globl _vpaes_ctr32_encrypt_blocks +.private_extern _vpaes_ctr32_encrypt_blocks +#ifdef __thumb2__ +.thumb_func _vpaes_ctr32_encrypt_blocks +#endif +.align 4 +_vpaes_ctr32_encrypt_blocks: + mov ip, sp + stmdb sp!, {r7,r8,r9,r10,r11, lr} + @ This function uses q4-q7 (d8-d15), which are callee-saved. + vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + + cmp r2, #0 + @ r8 is passed on the stack. + ldr r8, [ip] + beq Lctr32_done + + @ _vpaes_encrypt_core expects the key in r2, so swap r2 and r3. + mov r9, r3 + mov r3, r2 + mov r2, r9 + + @ Load the IV and counter portion. + ldr r7, [r8, #12] + vld1.8 {q7}, [r8] + + bl _vpaes_preheat + rev r7, r7 @ The counter is big-endian. + +Lctr32_loop: + vmov q0, q7 + vld1.8 {q6}, [r0]! @ Load input ahead of time + bl _vpaes_encrypt_core + veor q0, q0, q6 @ XOR input and result + vst1.8 {q0}, [r1]! + subs r3, r3, #1 + @ Update the counter. + add r7, r7, #1 + rev r9, r7 + vmov.32 d15[1], r9 + bne Lctr32_loop + +Lctr32_done: + vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return + +#endif // !OPENSSL_NO_ASM diff --git a/contrib/boringssl-cmake/ios-arm/crypto/test/trampoline-armv4.S b/contrib/boringssl-cmake/ios-arm/crypto/test/trampoline-armv4.S index 51ac249ef55..9d74f553adf 100644 --- a/contrib/boringssl-cmake/ios-arm/crypto/test/trampoline-armv4.S +++ b/contrib/boringssl-cmake/ios-arm/crypto/test/trampoline-armv4.S @@ -30,7 +30,6 @@ .private_extern _abi_test_trampoline .align 4 _abi_test_trampoline: -Labi_test_trampoline_begin: @ Save parameters and all callee-saved registers. For convenience, we @ save r9 on iOS even though it's volatile. vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/chacha/chacha-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/chacha/chacha-armv8.S index e05a265f9c5..80f7eaa4098 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/chacha/chacha-armv8.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/chacha/chacha-armv8.S @@ -34,6 +34,7 @@ .type ChaCha20_ctr32,%function .align 5 ChaCha20_ctr32: + AARCH64_VALID_CALL_TARGET cbz x2,.Labort #if __has_feature(hwaddress_sanitizer) && __clang_major__ >= 10 adrp x5,:pg_hi21_nc:OPENSSL_armcap_P @@ -47,6 +48,7 @@ ChaCha20_ctr32: b.ne ChaCha20_neon .Lshort: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -259,6 +261,7 @@ ChaCha20_ctr32: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER .Labort: ret @@ -315,12 +318,14 @@ ChaCha20_ctr32: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret .size ChaCha20_ctr32,.-ChaCha20_ctr32 .type ChaCha20_neon,%function .align 5 ChaCha20_neon: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -701,6 +706,7 @@ ChaCha20_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret .Ltail_neon: @@ -810,11 +816,13 @@ ChaCha20_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret .size ChaCha20_neon,.-ChaCha20_neon .type ChaCha20_512_neon,%function .align 5 ChaCha20_512_neon: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -1978,7 +1986,9 @@ ChaCha20_512_neon: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + AARCH64_VALIDATE_LINK_REGISTER ret .size ChaCha20_512_neon,.-ChaCha20_512_neon #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S index 1680444e099..24af2da5462 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/aesv8-armx64.S @@ -33,6 +33,8 @@ .align 5 aes_hw_set_encrypt_key: .Lenc_key: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x3,#-1 @@ -201,6 +203,7 @@ aes_hw_set_encrypt_key: .type aes_hw_set_decrypt_key,%function .align 5 aes_hw_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 bl .Lenc_key @@ -234,6 +237,7 @@ aes_hw_set_decrypt_key: eor x0,x0,x0 // return value .Ldec_key_abort: ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size aes_hw_set_decrypt_key,.-aes_hw_set_decrypt_key .globl aes_hw_encrypt @@ -241,6 +245,7 @@ aes_hw_set_decrypt_key: .type aes_hw_encrypt,%function .align 5 aes_hw_encrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -271,6 +276,7 @@ aes_hw_encrypt: .type aes_hw_decrypt,%function .align 5 aes_hw_decrypt: + AARCH64_VALID_CALL_TARGET ldr w3,[x2,#240] ld1 {v0.4s},[x2],#16 ld1 {v2.16b},[x0] @@ -301,6 +307,8 @@ aes_hw_decrypt: .type aes_hw_cbc_encrypt,%function .align 5 aes_hw_cbc_encrypt: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 subs x2,x2,#16 @@ -592,6 +600,8 @@ aes_hw_cbc_encrypt: .type aes_hw_ctr32_encrypt_blocks,%function .align 5 aes_hw_ctr32_encrypt_blocks: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! add x29,sp,#0 ldr w5,[x3,#240] @@ -772,3 +782,4 @@ aes_hw_ctr32_encrypt_blocks: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/armv8-mont.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/armv8-mont.S index 1ea05ba9f6f..db89859a36a 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/armv8-mont.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/armv8-mont.S @@ -13,6 +13,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .text .globl bn_mul_mont @@ -20,6 +22,7 @@ .type bn_mul_mont,%function .align 5 bn_mul_mont: + AARCH64_SIGN_LINK_REGISTER tst x5,#7 b.eq __bn_sqr8x_mont tst x5,#3 @@ -217,11 +220,14 @@ bn_mul_mont: mov x0,#1 ldp x23,x24,[x29,#48] ldr x29,[sp],#64 + AARCH64_VALIDATE_LINK_REGISTER ret .size bn_mul_mont,.-bn_mul_mont .type __bn_sqr8x_mont,%function .align 5 __bn_sqr8x_mont: + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_sqr8x_mont is jumped to + // only from bn_mul_mont which has already signed the return address. cmp x1,x2 b.ne __bn_mul4x_mont .Lsqr8x_mont: @@ -975,11 +981,16 @@ __bn_sqr8x_mont: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 + // x30 is popped earlier + AARCH64_VALIDATE_LINK_REGISTER ret .size __bn_sqr8x_mont,.-__bn_sqr8x_mont .type __bn_mul4x_mont,%function .align 5 __bn_mul4x_mont: + // Not adding AARCH64_SIGN_LINK_REGISTER here because __bn_mul4x_mont is jumped to + // only from bn_mul_mont or __bn_mul8x_mont which have already signed the + // return address. stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1413,6 +1424,8 @@ __bn_mul4x_mont: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 + // x30 is popped earlier + AARCH64_VALIDATE_LINK_REGISTER ret .size __bn_mul4x_mont,.-__bn_mul4x_mont .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 @@ -1420,3 +1433,4 @@ __bn_mul4x_mont: .align 4 #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S index 356768307dc..098967b5de8 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S @@ -13,6 +13,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .text .globl gcm_init_neon @@ -20,6 +22,7 @@ .type gcm_init_neon,%function .align 4 gcm_init_neon: + AARCH64_VALID_CALL_TARGET // This function is adapted from gcm_init_v8. xC2 is t3. ld1 {v17.2d}, [x1] // load H movi v19.16b, #0xe1 @@ -45,6 +48,7 @@ gcm_init_neon: .type gcm_gmult_neon,%function .align 4 gcm_gmult_neon: + AARCH64_VALID_CALL_TARGET ld1 {v3.16b}, [x0] // load Xi ld1 {v5.1d}, [x1], #8 // load twisted H ld1 {v6.1d}, [x1] @@ -64,6 +68,7 @@ gcm_gmult_neon: .type gcm_ghash_neon,%function .align 4 gcm_ghash_neon: + AARCH64_VALID_CALL_TARGET ld1 {v0.16b}, [x0] // load Xi ld1 {v5.1d}, [x1], #8 // load twisted H ld1 {v6.1d}, [x1] @@ -338,3 +343,4 @@ gcm_ghash_neon: .align 2 #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S index 1267937bbf2..62e588428e6 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S @@ -22,6 +22,7 @@ .type gcm_init_v8,%function .align 4 gcm_init_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x1] //load input H movi v19.16b,#0xe1 shl v19.2d,v19.2d,#57 //0xc2.0 @@ -73,6 +74,7 @@ gcm_init_v8: .type gcm_gmult_v8,%function .align 4 gcm_gmult_v8: + AARCH64_VALID_CALL_TARGET ld1 {v17.2d},[x0] //load Xi movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... @@ -115,6 +117,7 @@ gcm_gmult_v8: .type gcm_ghash_v8,%function .align 4 gcm_ghash_v8: + AARCH64_VALID_CALL_TARGET ld1 {v0.2d},[x0] //load [rotated] Xi //"[rotated]" means that //loaded value would have @@ -246,3 +249,4 @@ gcm_ghash_v8: .align 2 #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha1-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha1-armv8.S index ecb48859e70..2f8b60c55b5 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha1-armv8.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha1-armv8.S @@ -23,6 +23,8 @@ .type sha1_block_data_order,%function .align 6 sha1_block_data_order: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET #if __has_feature(hwaddress_sanitizer) && __clang_major__ >= 10 adrp x16,:pg_hi21_nc:OPENSSL_armcap_P #else @@ -1090,6 +1092,8 @@ sha1_block_data_order: .type sha1_block_armv8,%function .align 6 sha1_block_armv8: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. + AARCH64_VALID_CALL_TARGET .Lv8_entry: stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1232,3 +1236,4 @@ sha1_block_armv8: .hidden OPENSSL_armcap_P #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha256-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha256-armv8.S index b3196882e5f..65b2410e5c2 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha256-armv8.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha256-armv8.S @@ -64,6 +64,7 @@ .type sha256_block_data_order,%function .align 6 sha256_block_data_order: + AARCH64_VALID_CALL_TARGET #ifndef __KERNEL__ #if __has_feature(hwaddress_sanitizer) && __clang_major__ >= 10 adrp x16,:pg_hi21_nc:OPENSSL_armcap_P @@ -74,6 +75,7 @@ sha256_block_data_order: tst w16,#ARMV8_SHA256 b.ne .Lv8_entry #endif + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1034,6 +1036,7 @@ sha256_block_data_order: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 + AARCH64_VALIDATE_LINK_REGISTER ret .size sha256_block_data_order,.-sha256_block_data_order @@ -1068,6 +1071,7 @@ sha256_block_data_order: .align 6 sha256_block_armv8: .Lv8_entry: + // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1210,3 +1214,4 @@ sha256_block_armv8: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha512-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha512-armv8.S index 37e00d79f4b..d214d47065c 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha512-armv8.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/sha512-armv8.S @@ -64,6 +64,7 @@ .type sha512_block_data_order,%function .align 6 sha512_block_data_order: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -1024,6 +1025,7 @@ sha512_block_data_order: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 + AARCH64_VALIDATE_LINK_REGISTER ret .size sha512_block_data_order,.-sha512_block_data_order @@ -1082,3 +1084,4 @@ sha512_block_data_order: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S index 3a34209d150..c3a2bcb810b 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S @@ -13,6 +13,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .section .rodata .type _vpaes_consts,%object @@ -215,6 +217,7 @@ _vpaes_encrypt_core: .type vpaes_encrypt,%function .align 4 vpaes_encrypt: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -224,6 +227,7 @@ vpaes_encrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_encrypt,.-vpaes_encrypt @@ -452,6 +456,7 @@ _vpaes_decrypt_core: .type vpaes_decrypt,%function .align 4 vpaes_decrypt: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -461,6 +466,7 @@ vpaes_decrypt: st1 {v0.16b}, [x1] ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_decrypt,.-vpaes_decrypt @@ -630,6 +636,7 @@ _vpaes_key_preheat: .type _vpaes_schedule_core,%function .align 4 _vpaes_schedule_core: + AARCH64_SIGN_LINK_REGISTER stp x29, x30, [sp,#-16]! add x29,sp,#0 @@ -799,6 +806,7 @@ _vpaes_schedule_core: eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 ldp x29, x30, [sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size _vpaes_schedule_core,.-_vpaes_schedule_core @@ -1012,6 +1020,7 @@ _vpaes_schedule_mangle: .type vpaes_set_encrypt_key,%function .align 4 vpaes_set_encrypt_key: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1027,6 +1036,7 @@ vpaes_set_encrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key @@ -1035,6 +1045,7 @@ vpaes_set_encrypt_key: .type vpaes_set_decrypt_key,%function .align 4 vpaes_set_decrypt_key: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1054,6 +1065,7 @@ vpaes_set_decrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key .globl vpaes_cbc_encrypt @@ -1061,6 +1073,7 @@ vpaes_set_decrypt_key: .type vpaes_cbc_encrypt,%function .align 4 vpaes_cbc_encrypt: + AARCH64_SIGN_LINK_REGISTER cbz x2, .Lcbc_abort cmp w5, #0 // check direction b.eq vpaes_cbc_decrypt @@ -1087,6 +1100,7 @@ vpaes_cbc_encrypt: st1 {v0.16b}, [x4] // write ivec ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER .Lcbc_abort: ret .size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt @@ -1094,6 +1108,8 @@ vpaes_cbc_encrypt: .type vpaes_cbc_decrypt,%function .align 4 vpaes_cbc_decrypt: + // Not adding AARCH64_SIGN_LINK_REGISTER here because vpaes_cbc_decrypt is jumped to + // only from vpaes_cbc_encrypt which has already signed the return address. stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1135,6 +1151,7 @@ vpaes_cbc_decrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_cbc_decrypt,.-vpaes_cbc_decrypt .globl vpaes_ctr32_encrypt_blocks @@ -1142,6 +1159,7 @@ vpaes_cbc_decrypt: .type vpaes_ctr32_encrypt_blocks,%function .align 4 vpaes_ctr32_encrypt_blocks: + AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1209,7 +1227,9 @@ vpaes_ctr32_encrypt_blocks: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + AARCH64_VALIDATE_LINK_REGISTER ret .size vpaes_ctr32_encrypt_blocks,.-vpaes_ctr32_encrypt_blocks #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/test/trampoline-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/test/trampoline-armv8.S index f5296f685eb..8928d7f54ed 100644 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/test/trampoline-armv8.S +++ b/contrib/boringssl-cmake/linux-aarch64/crypto/test/trampoline-armv8.S @@ -13,6 +13,8 @@ #if defined(BORINGSSL_PREFIX) #include #endif +#include + .text // abi_test_trampoline loads callee-saved registers from |state|, calls |func| @@ -27,6 +29,7 @@ .align 4 abi_test_trampoline: .Labi_test_trampoline_begin: + AARCH64_SIGN_LINK_REGISTER // Stack layout (low to high addresses) // x29,x30 (16 bytes) // d8-d15 (64 bytes) @@ -129,6 +132,7 @@ abi_test_trampoline: ldp x27, x28, [sp, #144] ldp x29, x30, [sp], #176 + AARCH64_VALIDATE_LINK_REGISTER ret .size abi_test_trampoline,.-abi_test_trampoline .type abi_test_clobber_x0, %function @@ -136,6 +140,7 @@ abi_test_trampoline: .hidden abi_test_clobber_x0 .align 4 abi_test_clobber_x0: + AARCH64_VALID_CALL_TARGET mov x0, xzr ret .size abi_test_clobber_x0,.-abi_test_clobber_x0 @@ -144,6 +149,7 @@ abi_test_clobber_x0: .hidden abi_test_clobber_x1 .align 4 abi_test_clobber_x1: + AARCH64_VALID_CALL_TARGET mov x1, xzr ret .size abi_test_clobber_x1,.-abi_test_clobber_x1 @@ -152,6 +158,7 @@ abi_test_clobber_x1: .hidden abi_test_clobber_x2 .align 4 abi_test_clobber_x2: + AARCH64_VALID_CALL_TARGET mov x2, xzr ret .size abi_test_clobber_x2,.-abi_test_clobber_x2 @@ -160,6 +167,7 @@ abi_test_clobber_x2: .hidden abi_test_clobber_x3 .align 4 abi_test_clobber_x3: + AARCH64_VALID_CALL_TARGET mov x3, xzr ret .size abi_test_clobber_x3,.-abi_test_clobber_x3 @@ -168,6 +176,7 @@ abi_test_clobber_x3: .hidden abi_test_clobber_x4 .align 4 abi_test_clobber_x4: + AARCH64_VALID_CALL_TARGET mov x4, xzr ret .size abi_test_clobber_x4,.-abi_test_clobber_x4 @@ -176,6 +185,7 @@ abi_test_clobber_x4: .hidden abi_test_clobber_x5 .align 4 abi_test_clobber_x5: + AARCH64_VALID_CALL_TARGET mov x5, xzr ret .size abi_test_clobber_x5,.-abi_test_clobber_x5 @@ -184,6 +194,7 @@ abi_test_clobber_x5: .hidden abi_test_clobber_x6 .align 4 abi_test_clobber_x6: + AARCH64_VALID_CALL_TARGET mov x6, xzr ret .size abi_test_clobber_x6,.-abi_test_clobber_x6 @@ -192,6 +203,7 @@ abi_test_clobber_x6: .hidden abi_test_clobber_x7 .align 4 abi_test_clobber_x7: + AARCH64_VALID_CALL_TARGET mov x7, xzr ret .size abi_test_clobber_x7,.-abi_test_clobber_x7 @@ -200,6 +212,7 @@ abi_test_clobber_x7: .hidden abi_test_clobber_x8 .align 4 abi_test_clobber_x8: + AARCH64_VALID_CALL_TARGET mov x8, xzr ret .size abi_test_clobber_x8,.-abi_test_clobber_x8 @@ -208,6 +221,7 @@ abi_test_clobber_x8: .hidden abi_test_clobber_x9 .align 4 abi_test_clobber_x9: + AARCH64_VALID_CALL_TARGET mov x9, xzr ret .size abi_test_clobber_x9,.-abi_test_clobber_x9 @@ -216,6 +230,7 @@ abi_test_clobber_x9: .hidden abi_test_clobber_x10 .align 4 abi_test_clobber_x10: + AARCH64_VALID_CALL_TARGET mov x10, xzr ret .size abi_test_clobber_x10,.-abi_test_clobber_x10 @@ -224,6 +239,7 @@ abi_test_clobber_x10: .hidden abi_test_clobber_x11 .align 4 abi_test_clobber_x11: + AARCH64_VALID_CALL_TARGET mov x11, xzr ret .size abi_test_clobber_x11,.-abi_test_clobber_x11 @@ -232,6 +248,7 @@ abi_test_clobber_x11: .hidden abi_test_clobber_x12 .align 4 abi_test_clobber_x12: + AARCH64_VALID_CALL_TARGET mov x12, xzr ret .size abi_test_clobber_x12,.-abi_test_clobber_x12 @@ -240,6 +257,7 @@ abi_test_clobber_x12: .hidden abi_test_clobber_x13 .align 4 abi_test_clobber_x13: + AARCH64_VALID_CALL_TARGET mov x13, xzr ret .size abi_test_clobber_x13,.-abi_test_clobber_x13 @@ -248,6 +266,7 @@ abi_test_clobber_x13: .hidden abi_test_clobber_x14 .align 4 abi_test_clobber_x14: + AARCH64_VALID_CALL_TARGET mov x14, xzr ret .size abi_test_clobber_x14,.-abi_test_clobber_x14 @@ -256,6 +275,7 @@ abi_test_clobber_x14: .hidden abi_test_clobber_x15 .align 4 abi_test_clobber_x15: + AARCH64_VALID_CALL_TARGET mov x15, xzr ret .size abi_test_clobber_x15,.-abi_test_clobber_x15 @@ -264,6 +284,7 @@ abi_test_clobber_x15: .hidden abi_test_clobber_x16 .align 4 abi_test_clobber_x16: + AARCH64_VALID_CALL_TARGET mov x16, xzr ret .size abi_test_clobber_x16,.-abi_test_clobber_x16 @@ -272,6 +293,7 @@ abi_test_clobber_x16: .hidden abi_test_clobber_x17 .align 4 abi_test_clobber_x17: + AARCH64_VALID_CALL_TARGET mov x17, xzr ret .size abi_test_clobber_x17,.-abi_test_clobber_x17 @@ -280,6 +302,7 @@ abi_test_clobber_x17: .hidden abi_test_clobber_x19 .align 4 abi_test_clobber_x19: + AARCH64_VALID_CALL_TARGET mov x19, xzr ret .size abi_test_clobber_x19,.-abi_test_clobber_x19 @@ -288,6 +311,7 @@ abi_test_clobber_x19: .hidden abi_test_clobber_x20 .align 4 abi_test_clobber_x20: + AARCH64_VALID_CALL_TARGET mov x20, xzr ret .size abi_test_clobber_x20,.-abi_test_clobber_x20 @@ -296,6 +320,7 @@ abi_test_clobber_x20: .hidden abi_test_clobber_x21 .align 4 abi_test_clobber_x21: + AARCH64_VALID_CALL_TARGET mov x21, xzr ret .size abi_test_clobber_x21,.-abi_test_clobber_x21 @@ -304,6 +329,7 @@ abi_test_clobber_x21: .hidden abi_test_clobber_x22 .align 4 abi_test_clobber_x22: + AARCH64_VALID_CALL_TARGET mov x22, xzr ret .size abi_test_clobber_x22,.-abi_test_clobber_x22 @@ -312,6 +338,7 @@ abi_test_clobber_x22: .hidden abi_test_clobber_x23 .align 4 abi_test_clobber_x23: + AARCH64_VALID_CALL_TARGET mov x23, xzr ret .size abi_test_clobber_x23,.-abi_test_clobber_x23 @@ -320,6 +347,7 @@ abi_test_clobber_x23: .hidden abi_test_clobber_x24 .align 4 abi_test_clobber_x24: + AARCH64_VALID_CALL_TARGET mov x24, xzr ret .size abi_test_clobber_x24,.-abi_test_clobber_x24 @@ -328,6 +356,7 @@ abi_test_clobber_x24: .hidden abi_test_clobber_x25 .align 4 abi_test_clobber_x25: + AARCH64_VALID_CALL_TARGET mov x25, xzr ret .size abi_test_clobber_x25,.-abi_test_clobber_x25 @@ -336,6 +365,7 @@ abi_test_clobber_x25: .hidden abi_test_clobber_x26 .align 4 abi_test_clobber_x26: + AARCH64_VALID_CALL_TARGET mov x26, xzr ret .size abi_test_clobber_x26,.-abi_test_clobber_x26 @@ -344,6 +374,7 @@ abi_test_clobber_x26: .hidden abi_test_clobber_x27 .align 4 abi_test_clobber_x27: + AARCH64_VALID_CALL_TARGET mov x27, xzr ret .size abi_test_clobber_x27,.-abi_test_clobber_x27 @@ -352,6 +383,7 @@ abi_test_clobber_x27: .hidden abi_test_clobber_x28 .align 4 abi_test_clobber_x28: + AARCH64_VALID_CALL_TARGET mov x28, xzr ret .size abi_test_clobber_x28,.-abi_test_clobber_x28 @@ -360,6 +392,7 @@ abi_test_clobber_x28: .hidden abi_test_clobber_x29 .align 4 abi_test_clobber_x29: + AARCH64_VALID_CALL_TARGET mov x29, xzr ret .size abi_test_clobber_x29,.-abi_test_clobber_x29 @@ -368,6 +401,7 @@ abi_test_clobber_x29: .hidden abi_test_clobber_d0 .align 4 abi_test_clobber_d0: + AARCH64_VALID_CALL_TARGET fmov d0, xzr ret .size abi_test_clobber_d0,.-abi_test_clobber_d0 @@ -376,6 +410,7 @@ abi_test_clobber_d0: .hidden abi_test_clobber_d1 .align 4 abi_test_clobber_d1: + AARCH64_VALID_CALL_TARGET fmov d1, xzr ret .size abi_test_clobber_d1,.-abi_test_clobber_d1 @@ -384,6 +419,7 @@ abi_test_clobber_d1: .hidden abi_test_clobber_d2 .align 4 abi_test_clobber_d2: + AARCH64_VALID_CALL_TARGET fmov d2, xzr ret .size abi_test_clobber_d2,.-abi_test_clobber_d2 @@ -392,6 +428,7 @@ abi_test_clobber_d2: .hidden abi_test_clobber_d3 .align 4 abi_test_clobber_d3: + AARCH64_VALID_CALL_TARGET fmov d3, xzr ret .size abi_test_clobber_d3,.-abi_test_clobber_d3 @@ -400,6 +437,7 @@ abi_test_clobber_d3: .hidden abi_test_clobber_d4 .align 4 abi_test_clobber_d4: + AARCH64_VALID_CALL_TARGET fmov d4, xzr ret .size abi_test_clobber_d4,.-abi_test_clobber_d4 @@ -408,6 +446,7 @@ abi_test_clobber_d4: .hidden abi_test_clobber_d5 .align 4 abi_test_clobber_d5: + AARCH64_VALID_CALL_TARGET fmov d5, xzr ret .size abi_test_clobber_d5,.-abi_test_clobber_d5 @@ -416,6 +455,7 @@ abi_test_clobber_d5: .hidden abi_test_clobber_d6 .align 4 abi_test_clobber_d6: + AARCH64_VALID_CALL_TARGET fmov d6, xzr ret .size abi_test_clobber_d6,.-abi_test_clobber_d6 @@ -424,6 +464,7 @@ abi_test_clobber_d6: .hidden abi_test_clobber_d7 .align 4 abi_test_clobber_d7: + AARCH64_VALID_CALL_TARGET fmov d7, xzr ret .size abi_test_clobber_d7,.-abi_test_clobber_d7 @@ -432,6 +473,7 @@ abi_test_clobber_d7: .hidden abi_test_clobber_d8 .align 4 abi_test_clobber_d8: + AARCH64_VALID_CALL_TARGET fmov d8, xzr ret .size abi_test_clobber_d8,.-abi_test_clobber_d8 @@ -440,6 +482,7 @@ abi_test_clobber_d8: .hidden abi_test_clobber_d9 .align 4 abi_test_clobber_d9: + AARCH64_VALID_CALL_TARGET fmov d9, xzr ret .size abi_test_clobber_d9,.-abi_test_clobber_d9 @@ -448,6 +491,7 @@ abi_test_clobber_d9: .hidden abi_test_clobber_d10 .align 4 abi_test_clobber_d10: + AARCH64_VALID_CALL_TARGET fmov d10, xzr ret .size abi_test_clobber_d10,.-abi_test_clobber_d10 @@ -456,6 +500,7 @@ abi_test_clobber_d10: .hidden abi_test_clobber_d11 .align 4 abi_test_clobber_d11: + AARCH64_VALID_CALL_TARGET fmov d11, xzr ret .size abi_test_clobber_d11,.-abi_test_clobber_d11 @@ -464,6 +509,7 @@ abi_test_clobber_d11: .hidden abi_test_clobber_d12 .align 4 abi_test_clobber_d12: + AARCH64_VALID_CALL_TARGET fmov d12, xzr ret .size abi_test_clobber_d12,.-abi_test_clobber_d12 @@ -472,6 +518,7 @@ abi_test_clobber_d12: .hidden abi_test_clobber_d13 .align 4 abi_test_clobber_d13: + AARCH64_VALID_CALL_TARGET fmov d13, xzr ret .size abi_test_clobber_d13,.-abi_test_clobber_d13 @@ -480,6 +527,7 @@ abi_test_clobber_d13: .hidden abi_test_clobber_d14 .align 4 abi_test_clobber_d14: + AARCH64_VALID_CALL_TARGET fmov d14, xzr ret .size abi_test_clobber_d14,.-abi_test_clobber_d14 @@ -488,6 +536,7 @@ abi_test_clobber_d14: .hidden abi_test_clobber_d15 .align 4 abi_test_clobber_d15: + AARCH64_VALID_CALL_TARGET fmov d15, xzr ret .size abi_test_clobber_d15,.-abi_test_clobber_d15 @@ -496,6 +545,7 @@ abi_test_clobber_d15: .hidden abi_test_clobber_d16 .align 4 abi_test_clobber_d16: + AARCH64_VALID_CALL_TARGET fmov d16, xzr ret .size abi_test_clobber_d16,.-abi_test_clobber_d16 @@ -504,6 +554,7 @@ abi_test_clobber_d16: .hidden abi_test_clobber_d17 .align 4 abi_test_clobber_d17: + AARCH64_VALID_CALL_TARGET fmov d17, xzr ret .size abi_test_clobber_d17,.-abi_test_clobber_d17 @@ -512,6 +563,7 @@ abi_test_clobber_d17: .hidden abi_test_clobber_d18 .align 4 abi_test_clobber_d18: + AARCH64_VALID_CALL_TARGET fmov d18, xzr ret .size abi_test_clobber_d18,.-abi_test_clobber_d18 @@ -520,6 +572,7 @@ abi_test_clobber_d18: .hidden abi_test_clobber_d19 .align 4 abi_test_clobber_d19: + AARCH64_VALID_CALL_TARGET fmov d19, xzr ret .size abi_test_clobber_d19,.-abi_test_clobber_d19 @@ -528,6 +581,7 @@ abi_test_clobber_d19: .hidden abi_test_clobber_d20 .align 4 abi_test_clobber_d20: + AARCH64_VALID_CALL_TARGET fmov d20, xzr ret .size abi_test_clobber_d20,.-abi_test_clobber_d20 @@ -536,6 +590,7 @@ abi_test_clobber_d20: .hidden abi_test_clobber_d21 .align 4 abi_test_clobber_d21: + AARCH64_VALID_CALL_TARGET fmov d21, xzr ret .size abi_test_clobber_d21,.-abi_test_clobber_d21 @@ -544,6 +599,7 @@ abi_test_clobber_d21: .hidden abi_test_clobber_d22 .align 4 abi_test_clobber_d22: + AARCH64_VALID_CALL_TARGET fmov d22, xzr ret .size abi_test_clobber_d22,.-abi_test_clobber_d22 @@ -552,6 +608,7 @@ abi_test_clobber_d22: .hidden abi_test_clobber_d23 .align 4 abi_test_clobber_d23: + AARCH64_VALID_CALL_TARGET fmov d23, xzr ret .size abi_test_clobber_d23,.-abi_test_clobber_d23 @@ -560,6 +617,7 @@ abi_test_clobber_d23: .hidden abi_test_clobber_d24 .align 4 abi_test_clobber_d24: + AARCH64_VALID_CALL_TARGET fmov d24, xzr ret .size abi_test_clobber_d24,.-abi_test_clobber_d24 @@ -568,6 +626,7 @@ abi_test_clobber_d24: .hidden abi_test_clobber_d25 .align 4 abi_test_clobber_d25: + AARCH64_VALID_CALL_TARGET fmov d25, xzr ret .size abi_test_clobber_d25,.-abi_test_clobber_d25 @@ -576,6 +635,7 @@ abi_test_clobber_d25: .hidden abi_test_clobber_d26 .align 4 abi_test_clobber_d26: + AARCH64_VALID_CALL_TARGET fmov d26, xzr ret .size abi_test_clobber_d26,.-abi_test_clobber_d26 @@ -584,6 +644,7 @@ abi_test_clobber_d26: .hidden abi_test_clobber_d27 .align 4 abi_test_clobber_d27: + AARCH64_VALID_CALL_TARGET fmov d27, xzr ret .size abi_test_clobber_d27,.-abi_test_clobber_d27 @@ -592,6 +653,7 @@ abi_test_clobber_d27: .hidden abi_test_clobber_d28 .align 4 abi_test_clobber_d28: + AARCH64_VALID_CALL_TARGET fmov d28, xzr ret .size abi_test_clobber_d28,.-abi_test_clobber_d28 @@ -600,6 +662,7 @@ abi_test_clobber_d28: .hidden abi_test_clobber_d29 .align 4 abi_test_clobber_d29: + AARCH64_VALID_CALL_TARGET fmov d29, xzr ret .size abi_test_clobber_d29,.-abi_test_clobber_d29 @@ -608,6 +671,7 @@ abi_test_clobber_d29: .hidden abi_test_clobber_d30 .align 4 abi_test_clobber_d30: + AARCH64_VALID_CALL_TARGET fmov d30, xzr ret .size abi_test_clobber_d30,.-abi_test_clobber_d30 @@ -616,6 +680,7 @@ abi_test_clobber_d30: .hidden abi_test_clobber_d31 .align 4 abi_test_clobber_d31: + AARCH64_VALID_CALL_TARGET fmov d31, xzr ret .size abi_test_clobber_d31,.-abi_test_clobber_d31 @@ -624,6 +689,7 @@ abi_test_clobber_d31: .hidden abi_test_clobber_v8_upper .align 4 abi_test_clobber_v8_upper: + AARCH64_VALID_CALL_TARGET fmov v8.d[1], xzr ret .size abi_test_clobber_v8_upper,.-abi_test_clobber_v8_upper @@ -632,6 +698,7 @@ abi_test_clobber_v8_upper: .hidden abi_test_clobber_v9_upper .align 4 abi_test_clobber_v9_upper: + AARCH64_VALID_CALL_TARGET fmov v9.d[1], xzr ret .size abi_test_clobber_v9_upper,.-abi_test_clobber_v9_upper @@ -640,6 +707,7 @@ abi_test_clobber_v9_upper: .hidden abi_test_clobber_v10_upper .align 4 abi_test_clobber_v10_upper: + AARCH64_VALID_CALL_TARGET fmov v10.d[1], xzr ret .size abi_test_clobber_v10_upper,.-abi_test_clobber_v10_upper @@ -648,6 +716,7 @@ abi_test_clobber_v10_upper: .hidden abi_test_clobber_v11_upper .align 4 abi_test_clobber_v11_upper: + AARCH64_VALID_CALL_TARGET fmov v11.d[1], xzr ret .size abi_test_clobber_v11_upper,.-abi_test_clobber_v11_upper @@ -656,6 +725,7 @@ abi_test_clobber_v11_upper: .hidden abi_test_clobber_v12_upper .align 4 abi_test_clobber_v12_upper: + AARCH64_VALID_CALL_TARGET fmov v12.d[1], xzr ret .size abi_test_clobber_v12_upper,.-abi_test_clobber_v12_upper @@ -664,6 +734,7 @@ abi_test_clobber_v12_upper: .hidden abi_test_clobber_v13_upper .align 4 abi_test_clobber_v13_upper: + AARCH64_VALID_CALL_TARGET fmov v13.d[1], xzr ret .size abi_test_clobber_v13_upper,.-abi_test_clobber_v13_upper @@ -672,6 +743,7 @@ abi_test_clobber_v13_upper: .hidden abi_test_clobber_v14_upper .align 4 abi_test_clobber_v14_upper: + AARCH64_VALID_CALL_TARGET fmov v14.d[1], xzr ret .size abi_test_clobber_v14_upper,.-abi_test_clobber_v14_upper @@ -680,8 +752,10 @@ abi_test_clobber_v14_upper: .hidden abi_test_clobber_v15_upper .align 4 abi_test_clobber_v15_upper: + AARCH64_VALID_CALL_TARGET fmov v15.d[1], xzr ret .size abi_test_clobber_v15_upper,.-abi_test_clobber_v15_upper #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S b/contrib/boringssl-cmake/linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S deleted file mode 100644 index da49a401334..00000000000 --- a/contrib/boringssl-cmake/linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S +++ /dev/null @@ -1,998 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#if !defined(__has_feature) -#define __has_feature(x) 0 -#endif -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif - -#if !defined(OPENSSL_NO_ASM) -#if defined(__aarch64__) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.section .rodata - -# p434 x 2 -.Lp434x2: -.quad 0xFFFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFF -.quad 0xFB82ECF5C5FFFFFF, 0xF78CB8F062B15D47 -.quad 0xD9F8BFAD038A40AC, 0x0004683E4E2EE688 - -# p434 + 1 -.Lp434p1: -.quad 0xFDC1767AE3000000, 0x7BC65C783158AEA3 -.quad 0x6CFC5FD681C52056, 0x0002341F27177344 - -.text -.globl sike_mpmul -.hidden sike_mpmul -.align 4 -sike_mpmul: - stp x29, x30, [sp,#-96]! - add x29, sp, #0 - stp x19, x20, [sp,#16] - stp x21, x22, [sp,#32] - stp x23, x24, [sp,#48] - stp x25, x26, [sp,#64] - stp x27, x28, [sp,#80] - - ldp x3, x4, [x0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x10, x11, [x1,#0] - ldp x12, x13, [x1,#16] - ldp x14, x15, [x1,#32] - ldr x16, [x1,#48] - - // x3-x7 <- AH + AL, x7 <- carry - adds x3, x3, x7 - adcs x4, x4, x8 - adcs x5, x5, x9 - adcs x6, x6, xzr - adc x7, xzr, xzr - - // x10-x13 <- BH + BL, x8 <- carry - adds x10, x10, x14 - adcs x11, x11, x15 - adcs x12, x12, x16 - adcs x13, x13, xzr - adc x8, xzr, xzr - - // x9 <- combined carry - and x9, x7, x8 - // x7-x8 <- mask - sub x7, xzr, x7 - sub x8, xzr, x8 - - // x15-x19 <- masked (BH + BL) - and x14, x10, x7 - and x15, x11, x7 - and x16, x12, x7 - and x17, x13, x7 - - // x20-x23 <- masked (AH + AL) - and x20, x3, x8 - and x21, x4, x8 - and x22, x5, x8 - and x23, x6, x8 - - // x15-x19, x7 <- masked (AH+AL) + masked (BH+BL), step 1 - adds x14, x14, x20 - adcs x15, x15, x21 - adcs x16, x16, x22 - adcs x17, x17, x23 - adc x7, x9, xzr - - // x8-x9,x19,x20-x24 <- (AH+AL) x (BH+BL), low part - stp x3, x4, [x2,#0] - // A0-A1 <- AH + AL, T0 <- mask - adds x3, x3, x5 - adcs x4, x4, x6 - adc x25, xzr, xzr - - // C6, T1 <- BH + BL, C7 <- mask - adds x23, x10, x12 - adcs x26, x11, x13 - adc x24, xzr, xzr - - // C0-C1 <- masked (BH + BL) - sub x19, xzr, x25 - sub x20, xzr, x24 - and x8, x23, x19 - and x9, x26, x19 - - // C4-C5 <- masked (AH + AL), T0 <- combined carry - and x21, x3, x20 - and x22, x4, x20 - mul x19, x3, x23 - mul x20, x3, x26 - and x25, x25, x24 - - // C0-C1, T0 <- (AH+AL) x (BH+BL), part 1 - adds x8, x21, x8 - umulh x21, x3, x26 - adcs x9, x22, x9 - umulh x22, x3, x23 - adc x25, x25, xzr - - // C2-C5 <- (AH+AL) x (BH+BL), low part - mul x3, x4, x23 - umulh x23, x4, x23 - adds x20, x20, x22 - adc x21, x21, xzr - - mul x24, x4, x26 - umulh x26, x4, x26 - adds x20, x20, x3 - adcs x21, x21, x23 - adc x22, xzr, xzr - - adds x21, x21, x24 - adc x22, x22, x26 - - ldp x3, x4, [x2,#0] - - // C2-C5, T0 <- (AH+AL) x (BH+BL), final part - adds x21, x8, x21 - umulh x24, x3, x10 - umulh x26, x3, x11 - adcs x22, x9, x22 - mul x8, x3, x10 - mul x9, x3, x11 - adc x25, x25, xzr - - // C0-C1, T1, C7 <- AL x BL - mul x3, x4, x10 - umulh x10, x4, x10 - adds x9, x9, x24 - adc x26, x26, xzr - - mul x23, x4, x11 - umulh x11, x4, x11 - adds x9, x9, x3 - adcs x26, x26, x10 - adc x24, xzr, xzr - - adds x26, x26, x23 - adc x24, x24, x11 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - mul x3, x5, x12 - umulh x10, x5, x12 - subs x19, x19, x8 - sbcs x20, x20, x9 - sbcs x21, x21, x26 - mul x4, x5, x13 - umulh x23, x5, x13 - sbcs x22, x22, x24 - sbc x25, x25, xzr - - // A0, A1, C6, B0 <- AH x BH - mul x5, x6, x12 - umulh x12, x6, x12 - adds x4, x4, x10 - adc x23, x23, xzr - - mul x11, x6, x13 - umulh x13, x6, x13 - adds x4, x4, x5 - adcs x23, x23, x12 - adc x10, xzr, xzr - - adds x23, x23, x11 - adc x10, x10, x13 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - AHxBH - subs x19, x19, x3 - sbcs x20, x20, x4 - sbcs x21, x21, x23 - sbcs x22, x22, x10 - sbc x25, x25, xzr - - adds x19, x19, x26 - adcs x20, x20, x24 - adcs x21, x21, x3 - adcs x22, x22, x4 - adcs x23, x25, x23 - adc x24, x10, xzr - - - // x15-x19, x7 <- (AH+AL) x (BH+BL), final step - adds x14, x14, x21 - adcs x15, x15, x22 - adcs x16, x16, x23 - adcs x17, x17, x24 - adc x7, x7, xzr - - // Load AL - ldp x3, x4, [x0] - ldp x5, x6, [x0,#16] - // Load BL - ldp x10, x11, [x1,#0] - ldp x12, x13, [x1,#16] - - // Temporarily store x8 in x2 - stp x8, x9, [x2,#0] - // x21-x28 <- AL x BL - // A0-A1 <- AH + AL, T0 <- mask - adds x3, x3, x5 - adcs x4, x4, x6 - adc x8, xzr, xzr - - // C6, T1 <- BH + BL, C7 <- mask - adds x27, x10, x12 - adcs x9, x11, x13 - adc x28, xzr, xzr - - // C0-C1 <- masked (BH + BL) - sub x23, xzr, x8 - sub x24, xzr, x28 - and x21, x27, x23 - and x22, x9, x23 - - // C4-C5 <- masked (AH + AL), T0 <- combined carry - and x25, x3, x24 - and x26, x4, x24 - mul x23, x3, x27 - mul x24, x3, x9 - and x8, x8, x28 - - // C0-C1, T0 <- (AH+AL) x (BH+BL), part 1 - adds x21, x25, x21 - umulh x25, x3, x9 - adcs x22, x26, x22 - umulh x26, x3, x27 - adc x8, x8, xzr - - // C2-C5 <- (AH+AL) x (BH+BL), low part - mul x3, x4, x27 - umulh x27, x4, x27 - adds x24, x24, x26 - adc x25, x25, xzr - - mul x28, x4, x9 - umulh x9, x4, x9 - adds x24, x24, x3 - adcs x25, x25, x27 - adc x26, xzr, xzr - - adds x25, x25, x28 - adc x26, x26, x9 - - ldp x3, x4, [x0,#0] - - // C2-C5, T0 <- (AH+AL) x (BH+BL), final part - adds x25, x21, x25 - umulh x28, x3, x10 - umulh x9, x3, x11 - adcs x26, x22, x26 - mul x21, x3, x10 - mul x22, x3, x11 - adc x8, x8, xzr - - // C0-C1, T1, C7 <- AL x BL - mul x3, x4, x10 - umulh x10, x4, x10 - adds x22, x22, x28 - adc x9, x9, xzr - - mul x27, x4, x11 - umulh x11, x4, x11 - adds x22, x22, x3 - adcs x9, x9, x10 - adc x28, xzr, xzr - - adds x9, x9, x27 - adc x28, x28, x11 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - mul x3, x5, x12 - umulh x10, x5, x12 - subs x23, x23, x21 - sbcs x24, x24, x22 - sbcs x25, x25, x9 - mul x4, x5, x13 - umulh x27, x5, x13 - sbcs x26, x26, x28 - sbc x8, x8, xzr - - // A0, A1, C6, B0 <- AH x BH - mul x5, x6, x12 - umulh x12, x6, x12 - adds x4, x4, x10 - adc x27, x27, xzr - - mul x11, x6, x13 - umulh x13, x6, x13 - adds x4, x4, x5 - adcs x27, x27, x12 - adc x10, xzr, xzr - - adds x27, x27, x11 - adc x10, x10, x13 - - - // C2-C5, T0 <- (AH+AL) x (BH+BL) - ALxBL - AHxBH - subs x23, x23, x3 - sbcs x24, x24, x4 - sbcs x25, x25, x27 - sbcs x26, x26, x10 - sbc x8, x8, xzr - - adds x23, x23, x9 - adcs x24, x24, x28 - adcs x25, x25, x3 - adcs x26, x26, x4 - adcs x27, x8, x27 - adc x28, x10, xzr - - // Restore x8 - ldp x8, x9, [x2,#0] - - // x8-x10,x20,x15-x17,x19 <- maskd (AH+AL) x (BH+BL) - ALxBL - subs x8, x8, x21 - sbcs x9, x9, x22 - sbcs x19, x19, x23 - sbcs x20, x20, x24 - sbcs x14, x14, x25 - sbcs x15, x15, x26 - sbcs x16, x16, x27 - sbcs x17, x17, x28 - sbc x7, x7, xzr - - // Store ALxBL, low - stp x21, x22, [x2] - stp x23, x24, [x2,#16] - - // Load AH - ldp x3, x4, [x0,#32] - ldr x5, [x0,#48] - // Load BH - ldp x10, x11, [x1,#32] - ldr x12, [x1,#48] - - adds x8, x8, x25 - adcs x9, x9, x26 - adcs x19, x19, x27 - adcs x20, x20, x28 - adc x1, xzr, xzr - - add x0, x0, #32 - // Temporarily store x8,x9 in x2 - stp x8,x9, [x2,#32] - // x21-x28 <- AH x BH - - // A0 * B0 - mul x21, x3, x10 // C0 - umulh x24, x3, x10 - - // A0 * B1 - mul x22, x3, x11 - umulh x23, x3, x11 - - // A1 * B0 - mul x8, x4, x10 - umulh x9, x4, x10 - adds x22, x22, x24 - adc x23, x23, xzr - - // A0 * B2 - mul x27, x3, x12 - umulh x28, x3, x12 - adds x22, x22, x8 // C1 - adcs x23, x23, x9 - adc x24, xzr, xzr - - // A2 * B0 - mul x8, x5, x10 - umulh x25, x5, x10 - adds x23, x23, x27 - adcs x24, x24, x25 - adc x25, xzr, xzr - - // A1 * B1 - mul x27, x4, x11 - umulh x9, x4, x11 - adds x23, x23, x8 - adcs x24, x24, x28 - adc x25, x25, xzr - - // A1 * B2 - mul x8, x4, x12 - umulh x28, x4, x12 - adds x23, x23, x27 // C2 - adcs x24, x24, x9 - adc x25, x25, xzr - - // A2 * B1 - mul x27, x5, x11 - umulh x9, x5, x11 - adds x24, x24, x8 - adcs x25, x25, x28 - adc x26, xzr, xzr - - // A2 * B2 - mul x8, x5, x12 - umulh x28, x5, x12 - adds x24, x24, x27 // C3 - adcs x25, x25, x9 - adc x26, x26, xzr - - adds x25, x25, x8 // C4 - adc x26, x26, x28 // C5 - - // Restore x8,x9 - ldp x8,x9, [x2,#32] - - neg x1, x1 - - // x8-x9,x19,x20,x14-x17 <- (AH+AL) x (BH+BL) - ALxBL - AHxBH - subs x8, x8, x21 - sbcs x9, x9, x22 - sbcs x19, x19, x23 - sbcs x20, x20, x24 - sbcs x14, x14, x25 - sbcs x15, x15, x26 - sbcs x16, x16, xzr - sbcs x17, x17, xzr - sbc x7, x7, xzr - - // Store (AH+AL) x (BH+BL) - ALxBL - AHxBH, low - stp x8, x9, [x2,#32] - stp x19, x20, [x2,#48] - - adds x1, x1, #1 - adcs x14, x14, x21 - adcs x15, x15, x22 - adcs x16, x16, x23 - adcs x17, x17, x24 - adcs x25, x7, x25 - adc x26, x26, xzr - - stp x14, x15, [x2,#64] - stp x16, x17, [x2,#80] - stp x25, x26, [x2,#96] - - ldp x19, x20, [x29,#16] - ldp x21, x22, [x29,#32] - ldp x23, x24, [x29,#48] - ldp x25, x26, [x29,#64] - ldp x27, x28, [x29,#80] - ldp x29, x30, [sp],#96 - ret -.globl sike_fprdc -.hidden sike_fprdc -.align 4 -sike_fprdc: - stp x29, x30, [sp, #-96]! - add x29, sp, xzr - stp x19, x20, [sp,#16] - stp x21, x22, [sp,#32] - stp x23, x24, [sp,#48] - stp x25, x26, [sp,#64] - stp x27, x28, [sp,#80] - - ldp x2, x3, [x0,#0] // a[0-1] - - // Load the prime constant - adrp x26, .Lp434p1 - add x26, x26, :lo12:.Lp434p1 - ldp x23, x24, [x26, #0x0] - ldp x25, x26, [x26,#0x10] - - // a[0-1] * p434+1 - mul x4, x2, x23 // C0 - umulh x7, x2, x23 - - mul x5, x2, x24 - umulh x6, x2, x24 - - mul x10, x3, x23 - umulh x11, x3, x23 - adds x5, x5, x7 - adc x6, x6, xzr - - mul x27, x2, x25 - umulh x28, x2, x25 - adds x5, x5, x10 // C1 - adcs x6, x6, x11 - adc x7, xzr, xzr - - mul x10, x3, x24 - umulh x11, x3, x24 - adds x6, x6, x27 - adcs x7, x7, x28 - adc x8, xzr, xzr - - mul x27, x2, x26 - umulh x28, x2, x26 - adds x6, x6, x10 // C2 - adcs x7, x7, x11 - adc x8, x8, xzr - - mul x10, x3, x25 - umulh x11, x3, x25 - adds x7, x7, x27 - adcs x8, x8, x28 - adc x9, xzr, xzr - - mul x27, x3, x26 - umulh x28, x3, x26 - adds x7, x7, x10 // C3 - adcs x8, x8, x11 - adc x9, x9, xzr - adds x8, x8, x27 // C4 - adc x9, x9, x28 // C5 - - - - ldp x10, x11, [x0, #0x18] - ldp x12, x13, [x0, #0x28] - ldp x14, x15, [x0, #0x38] - ldp x16, x17, [x0, #0x48] - ldp x19, x20, [x0, #0x58] - ldr x21, [x0, #0x68] - - adds x10, x10, x4 - adcs x11, x11, x5 - adcs x12, x12, x6 - adcs x13, x13, x7 - adcs x14, x14, x8 - adcs x15, x15, x9 - adcs x22, x16, xzr - adcs x17, x17, xzr - adcs x19, x19, xzr - adcs x20, x20, xzr - adc x21, x21, xzr - - ldr x2, [x0,#0x10] // a[2] - // a[2-3] * p434+1 - mul x4, x2, x23 // C0 - umulh x7, x2, x23 - - mul x5, x2, x24 - umulh x6, x2, x24 - - mul x0, x10, x23 - umulh x3, x10, x23 - adds x5, x5, x7 - adc x6, x6, xzr - - mul x27, x2, x25 - umulh x28, x2, x25 - adds x5, x5, x0 // C1 - adcs x6, x6, x3 - adc x7, xzr, xzr - - mul x0, x10, x24 - umulh x3, x10, x24 - adds x6, x6, x27 - adcs x7, x7, x28 - adc x8, xzr, xzr - - mul x27, x2, x26 - umulh x28, x2, x26 - adds x6, x6, x0 // C2 - adcs x7, x7, x3 - adc x8, x8, xzr - - mul x0, x10, x25 - umulh x3, x10, x25 - adds x7, x7, x27 - adcs x8, x8, x28 - adc x9, xzr, xzr - - mul x27, x10, x26 - umulh x28, x10, x26 - adds x7, x7, x0 // C3 - adcs x8, x8, x3 - adc x9, x9, xzr - adds x8, x8, x27 // C4 - adc x9, x9, x28 // C5 - - - - adds x12, x12, x4 - adcs x13, x13, x5 - adcs x14, x14, x6 - adcs x15, x15, x7 - adcs x16, x22, x8 - adcs x17, x17, x9 - adcs x22, x19, xzr - adcs x20, x20, xzr - adc x21, x21, xzr - - mul x4, x11, x23 // C0 - umulh x7, x11, x23 - - mul x5, x11, x24 - umulh x6, x11, x24 - - mul x10, x12, x23 - umulh x3, x12, x23 - adds x5, x5, x7 - adc x6, x6, xzr - - mul x27, x11, x25 - umulh x28, x11, x25 - adds x5, x5, x10 // C1 - adcs x6, x6, x3 - adc x7, xzr, xzr - - mul x10, x12, x24 - umulh x3, x12, x24 - adds x6, x6, x27 - adcs x7, x7, x28 - adc x8, xzr, xzr - - mul x27, x11, x26 - umulh x28, x11, x26 - adds x6, x6, x10 // C2 - adcs x7, x7, x3 - adc x8, x8, xzr - - mul x10, x12, x25 - umulh x3, x12, x25 - adds x7, x7, x27 - adcs x8, x8, x28 - adc x9, xzr, xzr - - mul x27, x12, x26 - umulh x28, x12, x26 - adds x7, x7, x10 // C3 - adcs x8, x8, x3 - adc x9, x9, xzr - adds x8, x8, x27 // C4 - adc x9, x9, x28 // C5 - - - adds x14, x14, x4 - adcs x15, x15, x5 - adcs x16, x16, x6 - adcs x17, x17, x7 - adcs x19, x22, x8 - adcs x20, x20, x9 - adc x22, x21, xzr - - stp x14, x15, [x1, #0x0] // C0, C1 - - mul x4, x13, x23 // C0 - umulh x10, x13, x23 - - mul x5, x13, x24 - umulh x27, x13, x24 - adds x5, x5, x10 // C1 - adc x10, xzr, xzr - - mul x6, x13, x25 - umulh x28, x13, x25 - adds x27, x10, x27 - adcs x6, x6, x27 // C2 - adc x10, xzr, xzr - - mul x7, x13, x26 - umulh x8, x13, x26 - adds x28, x10, x28 - adcs x7, x7, x28 // C3 - adc x8, x8, xzr // C4 - - adds x16, x16, x4 - adcs x17, x17, x5 - adcs x19, x19, x6 - adcs x20, x20, x7 - adc x21, x22, x8 - - str x16, [x1, #0x10] - stp x17, x19, [x1, #0x18] - stp x20, x21, [x1, #0x28] - - ldp x19, x20, [x29,#16] - ldp x21, x22, [x29,#32] - ldp x23, x24, [x29,#48] - ldp x25, x26, [x29,#64] - ldp x27, x28, [x29,#80] - ldp x29, x30, [sp],#96 - ret -.globl sike_fpadd -.hidden sike_fpadd -.align 4 -sike_fpadd: - stp x29,x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - ldr x17, [x1,#48] - - // Add a + b - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x13 - adcs x6, x6, x14 - adcs x7, x7, x15 - adcs x8, x8, x16 - adc x9, x9, x17 - - // Subtract 2xp434 - adrp x17, .Lp434x2 - add x17, x17, :lo12:.Lp434x2 - ldp x11, x12, [x17, #0] - ldp x13, x14, [x17, #16] - ldp x15, x16, [x17, #32] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x12 - sbcs x6, x6, x13 - sbcs x7, x7, x14 - sbcs x8, x8, x15 - sbcs x9, x9, x16 - sbc x0, xzr, xzr // x0 can be reused now - - // Add 2xp434 anded with the mask in x0 - and x11, x11, x0 - and x12, x12, x0 - and x13, x13, x0 - and x14, x14, x0 - and x15, x15, x0 - and x16, x16, x0 - - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x12 - adcs x6, x6, x13 - adcs x7, x7, x14 - adcs x8, x8, x15 - adc x9, x9, x16 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - str x9, [x2,#48] - - ldp x29, x30, [sp],#16 - ret -.globl sike_fpsub -.hidden sike_fpsub -.align 4 -sike_fpsub: - stp x29, x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - ldr x17, [x1,#48] - - // Subtract a - b - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - sbcs x9, x9, x17 - sbc x0, xzr, xzr - - // Add 2xp434 anded with the mask in x0 - adrp x17, .Lp434x2 - add x17, x17, :lo12:.Lp434x2 - - // First half - ldp x11, x12, [x17, #0] - ldp x13, x14, [x17, #16] - ldp x15, x16, [x17, #32] - - // Add 2xp434 anded with the mask in x0 - and x11, x11, x0 - and x12, x12, x0 - and x13, x13, x0 - and x14, x14, x0 - and x15, x15, x0 - and x16, x16, x0 - - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x12 - adcs x6, x6, x13 - adcs x7, x7, x14 - adcs x8, x8, x15 - adc x9, x9, x16 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - str x9, [x2,#48] - - ldp x29, x30, [sp],#16 - ret -.globl sike_mpadd_asm -.hidden sike_mpadd_asm -.align 4 -sike_mpadd_asm: - stp x29, x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x7, x8, [x0,#32] - ldr x9, [x0,#48] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - ldr x17, [x1,#48] - - adds x3, x3, x11 - adcs x4, x4, x12 - adcs x5, x5, x13 - adcs x6, x6, x14 - adcs x7, x7, x15 - adcs x8, x8, x16 - adc x9, x9, x17 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - str x9, [x2,#48] - - ldp x29, x30, [sp],#16 - ret -.globl sike_mpsubx2_asm -.hidden sike_mpsubx2_asm -.align 4 -sike_mpsubx2_asm: - stp x29, x30, [sp,#-16]! - add x29, sp, #0 - - ldp x3, x4, [x0,#0] - ldp x5, x6, [x0,#16] - ldp x11, x12, [x1,#0] - ldp x13, x14, [x1,#16] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - ldp x7, x8, [x0,#32] - ldp x9, x10, [x0,#48] - ldp x11, x12, [x1,#32] - ldp x13, x14, [x1,#48] - sbcs x7, x7, x11 - sbcs x8, x8, x12 - sbcs x9, x9, x13 - sbcs x10, x10, x14 - - stp x3, x4, [x2,#0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - stp x9, x10, [x2,#48] - - ldp x3, x4, [x0,#64] - ldp x5, x6, [x0,#80] - ldp x11, x12, [x1,#64] - ldp x13, x14, [x1,#80] - sbcs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - ldp x7, x8, [x0,#96] - ldp x11, x12, [x1,#96] - sbcs x7, x7, x11 - sbcs x8, x8, x12 - sbc x0, xzr, xzr - - stp x3, x4, [x2,#64] - stp x5, x6, [x2,#80] - stp x7, x8, [x2,#96] - - ldp x29, x30, [sp],#16 - ret -.globl sike_mpdblsubx2_asm -.hidden sike_mpdblsubx2_asm -.align 4 -sike_mpdblsubx2_asm: - stp x29, x30, [sp, #-16]! - add x29, sp, #0 - - ldp x3, x4, [x2, #0] - ldp x5, x6, [x2,#16] - ldp x7, x8, [x2,#32] - - ldp x11, x12, [x0, #0] - ldp x13, x14, [x0,#16] - ldp x15, x16, [x0,#32] - - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - - // x9 stores carry - adc x9, xzr, xzr - - ldp x11, x12, [x1, #0] - ldp x13, x14, [x1,#16] - ldp x15, x16, [x1,#32] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - adc x9, x9, xzr - - stp x3, x4, [x2, #0] - stp x5, x6, [x2,#16] - stp x7, x8, [x2,#32] - - ldp x3, x4, [x2,#48] - ldp x5, x6, [x2,#64] - ldp x7, x8, [x2,#80] - - ldp x11, x12, [x0,#48] - ldp x13, x14, [x0,#64] - ldp x15, x16, [x0,#80] - - // x9 = 2 - x9 - neg x9, x9 - add x9, x9, #2 - - subs x3, x3, x9 - sbcs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - adc x9, xzr, xzr - - ldp x11, x12, [x1,#48] - ldp x13, x14, [x1,#64] - ldp x15, x16, [x1,#80] - subs x3, x3, x11 - sbcs x4, x4, x12 - sbcs x5, x5, x13 - sbcs x6, x6, x14 - sbcs x7, x7, x15 - sbcs x8, x8, x16 - adc x9, x9, xzr - - stp x3, x4, [x2,#48] - stp x5, x6, [x2,#64] - stp x7, x8, [x2,#80] - - ldp x3, x4, [x2,#96] - ldp x11, x12, [x0,#96] - ldp x13, x14, [x1,#96] - - // x9 = 2 - x9 - neg x9, x9 - add x9, x9, #2 - - subs x3, x3, x9 - sbcs x3, x3, x11 - sbcs x4, x4, x12 - subs x3, x3, x13 - sbc x4, x4, x14 - stp x3, x4, [x2,#96] - - ldp x29, x30, [sp],#16 - ret -#endif -#endif // !OPENSSL_NO_ASM diff --git a/contrib/boringssl-cmake/linux-arm/crypto/chacha/chacha-armv4.S b/contrib/boringssl-cmake/linux-arm/crypto/chacha/chacha-armv4.S index aed7ca644b7..363aeee5f50 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/chacha/chacha-armv4.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/chacha/chacha-armv4.S @@ -1490,3 +1490,4 @@ ChaCha20_neon: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aes-armv4.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aes-armv4.S deleted file mode 100644 index b2966b4abdc..00000000000 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aes-armv4.S +++ /dev/null @@ -1,1221 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#if !defined(__has_feature) -#define __has_feature(x) 0 -#endif -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif - -#if !defined(OPENSSL_NO_ASM) -#if defined(__arm__) -#if defined(BORINGSSL_PREFIX) -#include -#endif -@ Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. -@ -@ Licensed under the OpenSSL license (the "License"). You may not use -@ this file except in compliance with the License. You can obtain a copy -@ in the file LICENSE in the source distribution or at -@ https://www.openssl.org/source/license.html - - -@ ==================================================================== -@ Written by Andy Polyakov for the OpenSSL -@ project. The module is, however, dual licensed under OpenSSL and -@ CRYPTOGAMS licenses depending on where you obtain it. For further -@ details see http://www.openssl.org/~appro/cryptogams/. -@ ==================================================================== - -@ AES for ARMv4 - -@ January 2007. -@ -@ Code uses single 1K S-box and is >2 times faster than code generated -@ by gcc-3.4.1. This is thanks to unique feature of ARMv4 ISA, which -@ allows to merge logical or arithmetic operation with shift or rotate -@ in one instruction and emit combined result every cycle. The module -@ is endian-neutral. The performance is ~42 cycles/byte for 128-bit -@ key [on single-issue Xscale PXA250 core]. - -@ May 2007. -@ -@ AES_set_[en|de]crypt_key is added. - -@ July 2010. -@ -@ Rescheduling for dual-issue pipeline resulted in 12% improvement on -@ Cortex A8 core and ~25 cycles per byte processed with 128-bit key. - -@ February 2011. -@ -@ Profiler-assisted and platform-specific optimization resulted in 16% -@ improvement on Cortex A8 core and ~21.5 cycles per byte. - -#ifndef __KERNEL__ -# include -#else -# define __ARM_ARCH__ __LINUX_ARM_ARCH__ -#endif - -@ Silence ARMv8 deprecated IT instruction warnings. This file is used by both -@ ARMv7 and ARMv8 processors and does not use ARMv8 instructions. (ARMv8 AES -@ instructions are in aesv8-armx.pl.) -.arch armv7-a - -.text -#if defined(__thumb2__) && !defined(__APPLE__) -.syntax unified -.thumb -#else -.code 32 -#undef __thumb2__ -#endif - -.type AES_Te,%object -.align 5 -AES_Te: -.word 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d -.word 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554 -.word 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d -.word 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a -.word 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87 -.word 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b -.word 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea -.word 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b -.word 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a -.word 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f -.word 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108 -.word 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f -.word 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e -.word 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5 -.word 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d -.word 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f -.word 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e -.word 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb -.word 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce -.word 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497 -.word 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c -.word 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed -.word 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b -.word 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a -.word 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16 -.word 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594 -.word 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81 -.word 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3 -.word 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a -.word 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504 -.word 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163 -.word 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d -.word 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f -.word 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739 -.word 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47 -.word 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395 -.word 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f -.word 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883 -.word 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c -.word 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76 -.word 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e -.word 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4 -.word 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6 -.word 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b -.word 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7 -.word 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0 -.word 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25 -.word 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818 -.word 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72 -.word 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651 -.word 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21 -.word 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85 -.word 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa -.word 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12 -.word 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0 -.word 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9 -.word 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133 -.word 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7 -.word 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920 -.word 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a -.word 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17 -.word 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8 -.word 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11 -.word 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a -@ Te4[256] -.byte 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5 -.byte 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76 -.byte 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0 -.byte 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0 -.byte 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc -.byte 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15 -.byte 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a -.byte 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75 -.byte 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0 -.byte 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84 -.byte 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b -.byte 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf -.byte 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85 -.byte 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8 -.byte 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5 -.byte 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2 -.byte 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17 -.byte 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73 -.byte 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88 -.byte 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb -.byte 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c -.byte 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79 -.byte 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9 -.byte 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08 -.byte 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6 -.byte 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a -.byte 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e -.byte 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e -.byte 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94 -.byte 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf -.byte 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 -.byte 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 -@ rcon[] -.word 0x01000000, 0x02000000, 0x04000000, 0x08000000 -.word 0x10000000, 0x20000000, 0x40000000, 0x80000000 -.word 0x1B000000, 0x36000000, 0, 0, 0, 0, 0, 0 -.size AES_Te,.-AES_Te - -@ void aes_nohw_encrypt(const unsigned char *in, unsigned char *out, -@ const AES_KEY *key) { -.globl aes_nohw_encrypt -.hidden aes_nohw_encrypt -.type aes_nohw_encrypt,%function -.align 5 -aes_nohw_encrypt: -#ifndef __thumb2__ - sub r3,pc,#8 @ aes_nohw_encrypt -#else - adr r3,. -#endif - stmdb sp!,{r1,r4-r12,lr} -#if defined(__thumb2__) || defined(__APPLE__) - adr r10,AES_Te -#else - sub r10,r3,#aes_nohw_encrypt-AES_Te @ Te -#endif - mov r12,r0 @ inp - mov r11,r2 -#if __ARM_ARCH__<7 - ldrb r0,[r12,#3] @ load input data in endian-neutral - ldrb r4,[r12,#2] @ manner... - ldrb r5,[r12,#1] - ldrb r6,[r12,#0] - orr r0,r0,r4,lsl#8 - ldrb r1,[r12,#7] - orr r0,r0,r5,lsl#16 - ldrb r4,[r12,#6] - orr r0,r0,r6,lsl#24 - ldrb r5,[r12,#5] - ldrb r6,[r12,#4] - orr r1,r1,r4,lsl#8 - ldrb r2,[r12,#11] - orr r1,r1,r5,lsl#16 - ldrb r4,[r12,#10] - orr r1,r1,r6,lsl#24 - ldrb r5,[r12,#9] - ldrb r6,[r12,#8] - orr r2,r2,r4,lsl#8 - ldrb r3,[r12,#15] - orr r2,r2,r5,lsl#16 - ldrb r4,[r12,#14] - orr r2,r2,r6,lsl#24 - ldrb r5,[r12,#13] - ldrb r6,[r12,#12] - orr r3,r3,r4,lsl#8 - orr r3,r3,r5,lsl#16 - orr r3,r3,r6,lsl#24 -#else - ldr r0,[r12,#0] - ldr r1,[r12,#4] - ldr r2,[r12,#8] - ldr r3,[r12,#12] -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif -#endif - bl _armv4_AES_encrypt - - ldr r12,[sp],#4 @ pop out -#if __ARM_ARCH__>=7 -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif - str r0,[r12,#0] - str r1,[r12,#4] - str r2,[r12,#8] - str r3,[r12,#12] -#else - mov r4,r0,lsr#24 @ write output in endian-neutral - mov r5,r0,lsr#16 @ manner... - mov r6,r0,lsr#8 - strb r4,[r12,#0] - strb r5,[r12,#1] - mov r4,r1,lsr#24 - strb r6,[r12,#2] - mov r5,r1,lsr#16 - strb r0,[r12,#3] - mov r6,r1,lsr#8 - strb r4,[r12,#4] - strb r5,[r12,#5] - mov r4,r2,lsr#24 - strb r6,[r12,#6] - mov r5,r2,lsr#16 - strb r1,[r12,#7] - mov r6,r2,lsr#8 - strb r4,[r12,#8] - strb r5,[r12,#9] - mov r4,r3,lsr#24 - strb r6,[r12,#10] - mov r5,r3,lsr#16 - strb r2,[r12,#11] - mov r6,r3,lsr#8 - strb r4,[r12,#12] - strb r5,[r12,#13] - strb r6,[r12,#14] - strb r3,[r12,#15] -#endif -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif -.size aes_nohw_encrypt,.-aes_nohw_encrypt - -.type _armv4_AES_encrypt,%function -.align 2 -_armv4_AES_encrypt: - str lr,[sp,#-4]! @ push lr - ldmia r11!,{r4,r5,r6,r7} - eor r0,r0,r4 - ldr r12,[r11,#240-16] - eor r1,r1,r5 - eor r2,r2,r6 - eor r3,r3,r7 - sub r12,r12,#1 - mov lr,#255 - - and r7,lr,r0 - and r8,lr,r0,lsr#8 - and r9,lr,r0,lsr#16 - mov r0,r0,lsr#24 -.Lenc_loop: - ldr r4,[r10,r7,lsl#2] @ Te3[s0>>0] - and r7,lr,r1,lsr#16 @ i0 - ldr r5,[r10,r8,lsl#2] @ Te2[s0>>8] - and r8,lr,r1 - ldr r6,[r10,r9,lsl#2] @ Te1[s0>>16] - and r9,lr,r1,lsr#8 - ldr r0,[r10,r0,lsl#2] @ Te0[s0>>24] - mov r1,r1,lsr#24 - - ldr r7,[r10,r7,lsl#2] @ Te1[s1>>16] - ldr r8,[r10,r8,lsl#2] @ Te3[s1>>0] - ldr r9,[r10,r9,lsl#2] @ Te2[s1>>8] - eor r0,r0,r7,ror#8 - ldr r1,[r10,r1,lsl#2] @ Te0[s1>>24] - and r7,lr,r2,lsr#8 @ i0 - eor r5,r5,r8,ror#8 - and r8,lr,r2,lsr#16 @ i1 - eor r6,r6,r9,ror#8 - and r9,lr,r2 - ldr r7,[r10,r7,lsl#2] @ Te2[s2>>8] - eor r1,r1,r4,ror#24 - ldr r8,[r10,r8,lsl#2] @ Te1[s2>>16] - mov r2,r2,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Te3[s2>>0] - eor r0,r0,r7,ror#16 - ldr r2,[r10,r2,lsl#2] @ Te0[s2>>24] - and r7,lr,r3 @ i0 - eor r1,r1,r8,ror#8 - and r8,lr,r3,lsr#8 @ i1 - eor r6,r6,r9,ror#16 - and r9,lr,r3,lsr#16 @ i2 - ldr r7,[r10,r7,lsl#2] @ Te3[s3>>0] - eor r2,r2,r5,ror#16 - ldr r8,[r10,r8,lsl#2] @ Te2[s3>>8] - mov r3,r3,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Te1[s3>>16] - eor r0,r0,r7,ror#24 - ldr r7,[r11],#16 - eor r1,r1,r8,ror#16 - ldr r3,[r10,r3,lsl#2] @ Te0[s3>>24] - eor r2,r2,r9,ror#8 - ldr r4,[r11,#-12] - eor r3,r3,r6,ror#8 - - ldr r5,[r11,#-8] - eor r0,r0,r7 - ldr r6,[r11,#-4] - and r7,lr,r0 - eor r1,r1,r4 - and r8,lr,r0,lsr#8 - eor r2,r2,r5 - and r9,lr,r0,lsr#16 - eor r3,r3,r6 - mov r0,r0,lsr#24 - - subs r12,r12,#1 - bne .Lenc_loop - - add r10,r10,#2 - - ldrb r4,[r10,r7,lsl#2] @ Te4[s0>>0] - and r7,lr,r1,lsr#16 @ i0 - ldrb r5,[r10,r8,lsl#2] @ Te4[s0>>8] - and r8,lr,r1 - ldrb r6,[r10,r9,lsl#2] @ Te4[s0>>16] - and r9,lr,r1,lsr#8 - ldrb r0,[r10,r0,lsl#2] @ Te4[s0>>24] - mov r1,r1,lsr#24 - - ldrb r7,[r10,r7,lsl#2] @ Te4[s1>>16] - ldrb r8,[r10,r8,lsl#2] @ Te4[s1>>0] - ldrb r9,[r10,r9,lsl#2] @ Te4[s1>>8] - eor r0,r7,r0,lsl#8 - ldrb r1,[r10,r1,lsl#2] @ Te4[s1>>24] - and r7,lr,r2,lsr#8 @ i0 - eor r5,r8,r5,lsl#8 - and r8,lr,r2,lsr#16 @ i1 - eor r6,r9,r6,lsl#8 - and r9,lr,r2 - ldrb r7,[r10,r7,lsl#2] @ Te4[s2>>8] - eor r1,r4,r1,lsl#24 - ldrb r8,[r10,r8,lsl#2] @ Te4[s2>>16] - mov r2,r2,lsr#24 - - ldrb r9,[r10,r9,lsl#2] @ Te4[s2>>0] - eor r0,r7,r0,lsl#8 - ldrb r2,[r10,r2,lsl#2] @ Te4[s2>>24] - and r7,lr,r3 @ i0 - eor r1,r1,r8,lsl#16 - and r8,lr,r3,lsr#8 @ i1 - eor r6,r9,r6,lsl#8 - and r9,lr,r3,lsr#16 @ i2 - ldrb r7,[r10,r7,lsl#2] @ Te4[s3>>0] - eor r2,r5,r2,lsl#24 - ldrb r8,[r10,r8,lsl#2] @ Te4[s3>>8] - mov r3,r3,lsr#24 - - ldrb r9,[r10,r9,lsl#2] @ Te4[s3>>16] - eor r0,r7,r0,lsl#8 - ldr r7,[r11,#0] - ldrb r3,[r10,r3,lsl#2] @ Te4[s3>>24] - eor r1,r1,r8,lsl#8 - ldr r4,[r11,#4] - eor r2,r2,r9,lsl#16 - ldr r5,[r11,#8] - eor r3,r6,r3,lsl#24 - ldr r6,[r11,#12] - - eor r0,r0,r7 - eor r1,r1,r4 - eor r2,r2,r5 - eor r3,r3,r6 - - sub r10,r10,#2 - ldr pc,[sp],#4 @ pop and return -.size _armv4_AES_encrypt,.-_armv4_AES_encrypt - -.globl aes_nohw_set_encrypt_key -.hidden aes_nohw_set_encrypt_key -.type aes_nohw_set_encrypt_key,%function -.align 5 -aes_nohw_set_encrypt_key: -_armv4_AES_set_encrypt_key: -#ifndef __thumb2__ - sub r3,pc,#8 @ aes_nohw_set_encrypt_key -#else - adr r3,. -#endif - teq r0,#0 -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - moveq r0,#-1 - beq .Labrt - teq r2,#0 -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - moveq r0,#-1 - beq .Labrt - - teq r1,#128 - beq .Lok - teq r1,#192 - beq .Lok - teq r1,#256 -#ifdef __thumb2__ - itt ne @ Thumb2 thing, sanity check in ARM -#endif - movne r0,#-1 - bne .Labrt - -.Lok: stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - mov r12,r0 @ inp - mov lr,r1 @ bits - mov r11,r2 @ key - -#if defined(__thumb2__) || defined(__APPLE__) - adr r10,AES_Te+1024 @ Te4 -#else - sub r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4 -#endif - -#if __ARM_ARCH__<7 - ldrb r0,[r12,#3] @ load input data in endian-neutral - ldrb r4,[r12,#2] @ manner... - ldrb r5,[r12,#1] - ldrb r6,[r12,#0] - orr r0,r0,r4,lsl#8 - ldrb r1,[r12,#7] - orr r0,r0,r5,lsl#16 - ldrb r4,[r12,#6] - orr r0,r0,r6,lsl#24 - ldrb r5,[r12,#5] - ldrb r6,[r12,#4] - orr r1,r1,r4,lsl#8 - ldrb r2,[r12,#11] - orr r1,r1,r5,lsl#16 - ldrb r4,[r12,#10] - orr r1,r1,r6,lsl#24 - ldrb r5,[r12,#9] - ldrb r6,[r12,#8] - orr r2,r2,r4,lsl#8 - ldrb r3,[r12,#15] - orr r2,r2,r5,lsl#16 - ldrb r4,[r12,#14] - orr r2,r2,r6,lsl#24 - ldrb r5,[r12,#13] - ldrb r6,[r12,#12] - orr r3,r3,r4,lsl#8 - str r0,[r11],#16 - orr r3,r3,r5,lsl#16 - str r1,[r11,#-12] - orr r3,r3,r6,lsl#24 - str r2,[r11,#-8] - str r3,[r11,#-4] -#else - ldr r0,[r12,#0] - ldr r1,[r12,#4] - ldr r2,[r12,#8] - ldr r3,[r12,#12] -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif - str r0,[r11],#16 - str r1,[r11,#-12] - str r2,[r11,#-8] - str r3,[r11,#-4] -#endif - - teq lr,#128 - bne .Lnot128 - mov r12,#10 - str r12,[r11,#240-16] - add r6,r10,#256 @ rcon - mov lr,#255 - -.L128_loop: - and r5,lr,r3,lsr#24 - and r7,lr,r3,lsr#16 - ldrb r5,[r10,r5] - and r8,lr,r3,lsr#8 - ldrb r7,[r10,r7] - and r9,lr,r3 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#24 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r6],#4 @ rcon[i++] - orr r5,r5,r9,lsl#8 - eor r5,r5,r4 - eor r0,r0,r5 @ rk[4]=rk[0]^... - eor r1,r1,r0 @ rk[5]=rk[1]^rk[4] - str r0,[r11],#16 - eor r2,r2,r1 @ rk[6]=rk[2]^rk[5] - str r1,[r11,#-12] - eor r3,r3,r2 @ rk[7]=rk[3]^rk[6] - str r2,[r11,#-8] - subs r12,r12,#1 - str r3,[r11,#-4] - bne .L128_loop - sub r2,r11,#176 - b .Ldone - -.Lnot128: -#if __ARM_ARCH__<7 - ldrb r8,[r12,#19] - ldrb r4,[r12,#18] - ldrb r5,[r12,#17] - ldrb r6,[r12,#16] - orr r8,r8,r4,lsl#8 - ldrb r9,[r12,#23] - orr r8,r8,r5,lsl#16 - ldrb r4,[r12,#22] - orr r8,r8,r6,lsl#24 - ldrb r5,[r12,#21] - ldrb r6,[r12,#20] - orr r9,r9,r4,lsl#8 - orr r9,r9,r5,lsl#16 - str r8,[r11],#8 - orr r9,r9,r6,lsl#24 - str r9,[r11,#-4] -#else - ldr r8,[r12,#16] - ldr r9,[r12,#20] -#ifdef __ARMEL__ - rev r8,r8 - rev r9,r9 -#endif - str r8,[r11],#8 - str r9,[r11,#-4] -#endif - - teq lr,#192 - bne .Lnot192 - mov r12,#12 - str r12,[r11,#240-24] - add r6,r10,#256 @ rcon - mov lr,#255 - mov r12,#8 - -.L192_loop: - and r5,lr,r9,lsr#24 - and r7,lr,r9,lsr#16 - ldrb r5,[r10,r5] - and r8,lr,r9,lsr#8 - ldrb r7,[r10,r7] - and r9,lr,r9 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#24 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r6],#4 @ rcon[i++] - orr r5,r5,r9,lsl#8 - eor r9,r5,r4 - eor r0,r0,r9 @ rk[6]=rk[0]^... - eor r1,r1,r0 @ rk[7]=rk[1]^rk[6] - str r0,[r11],#24 - eor r2,r2,r1 @ rk[8]=rk[2]^rk[7] - str r1,[r11,#-20] - eor r3,r3,r2 @ rk[9]=rk[3]^rk[8] - str r2,[r11,#-16] - subs r12,r12,#1 - str r3,[r11,#-12] -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - subeq r2,r11,#216 - beq .Ldone - - ldr r7,[r11,#-32] - ldr r8,[r11,#-28] - eor r7,r7,r3 @ rk[10]=rk[4]^rk[9] - eor r9,r8,r7 @ rk[11]=rk[5]^rk[10] - str r7,[r11,#-8] - str r9,[r11,#-4] - b .L192_loop - -.Lnot192: -#if __ARM_ARCH__<7 - ldrb r8,[r12,#27] - ldrb r4,[r12,#26] - ldrb r5,[r12,#25] - ldrb r6,[r12,#24] - orr r8,r8,r4,lsl#8 - ldrb r9,[r12,#31] - orr r8,r8,r5,lsl#16 - ldrb r4,[r12,#30] - orr r8,r8,r6,lsl#24 - ldrb r5,[r12,#29] - ldrb r6,[r12,#28] - orr r9,r9,r4,lsl#8 - orr r9,r9,r5,lsl#16 - str r8,[r11],#8 - orr r9,r9,r6,lsl#24 - str r9,[r11,#-4] -#else - ldr r8,[r12,#24] - ldr r9,[r12,#28] -#ifdef __ARMEL__ - rev r8,r8 - rev r9,r9 -#endif - str r8,[r11],#8 - str r9,[r11,#-4] -#endif - - mov r12,#14 - str r12,[r11,#240-32] - add r6,r10,#256 @ rcon - mov lr,#255 - mov r12,#7 - -.L256_loop: - and r5,lr,r9,lsr#24 - and r7,lr,r9,lsr#16 - ldrb r5,[r10,r5] - and r8,lr,r9,lsr#8 - ldrb r7,[r10,r7] - and r9,lr,r9 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#24 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r6],#4 @ rcon[i++] - orr r5,r5,r9,lsl#8 - eor r9,r5,r4 - eor r0,r0,r9 @ rk[8]=rk[0]^... - eor r1,r1,r0 @ rk[9]=rk[1]^rk[8] - str r0,[r11],#32 - eor r2,r2,r1 @ rk[10]=rk[2]^rk[9] - str r1,[r11,#-28] - eor r3,r3,r2 @ rk[11]=rk[3]^rk[10] - str r2,[r11,#-24] - subs r12,r12,#1 - str r3,[r11,#-20] -#ifdef __thumb2__ - itt eq @ Thumb2 thing, sanity check in ARM -#endif - subeq r2,r11,#256 - beq .Ldone - - and r5,lr,r3 - and r7,lr,r3,lsr#8 - ldrb r5,[r10,r5] - and r8,lr,r3,lsr#16 - ldrb r7,[r10,r7] - and r9,lr,r3,lsr#24 - ldrb r8,[r10,r8] - orr r5,r5,r7,lsl#8 - ldrb r9,[r10,r9] - orr r5,r5,r8,lsl#16 - ldr r4,[r11,#-48] - orr r5,r5,r9,lsl#24 - - ldr r7,[r11,#-44] - ldr r8,[r11,#-40] - eor r4,r4,r5 @ rk[12]=rk[4]^... - ldr r9,[r11,#-36] - eor r7,r7,r4 @ rk[13]=rk[5]^rk[12] - str r4,[r11,#-16] - eor r8,r8,r7 @ rk[14]=rk[6]^rk[13] - str r7,[r11,#-12] - eor r9,r9,r8 @ rk[15]=rk[7]^rk[14] - str r8,[r11,#-8] - str r9,[r11,#-4] - b .L256_loop - -.align 2 -.Ldone: mov r0,#0 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} -.Labrt: -#if __ARM_ARCH__>=5 - bx lr @ .word 0xe12fff1e -#else - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif -.size aes_nohw_set_encrypt_key,.-aes_nohw_set_encrypt_key - -.globl aes_nohw_set_decrypt_key -.hidden aes_nohw_set_decrypt_key -.type aes_nohw_set_decrypt_key,%function -.align 5 -aes_nohw_set_decrypt_key: - str lr,[sp,#-4]! @ push lr - bl _armv4_AES_set_encrypt_key - teq r0,#0 - ldr lr,[sp],#4 @ pop lr - bne .Labrt - - mov r0,r2 @ aes_nohw_set_encrypt_key preserves r2, - mov r1,r2 @ which is AES_KEY *key - b _armv4_AES_set_enc2dec_key -.size aes_nohw_set_decrypt_key,.-aes_nohw_set_decrypt_key - -@ void AES_set_enc2dec_key(const AES_KEY *inp,AES_KEY *out) -.globl AES_set_enc2dec_key -.hidden AES_set_enc2dec_key -.type AES_set_enc2dec_key,%function -.align 5 -AES_set_enc2dec_key: -_armv4_AES_set_enc2dec_key: - stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - - ldr r12,[r0,#240] - mov r7,r0 @ input - add r8,r0,r12,lsl#4 - mov r11,r1 @ output - add r10,r1,r12,lsl#4 - str r12,[r1,#240] - -.Linv: ldr r0,[r7],#16 - ldr r1,[r7,#-12] - ldr r2,[r7,#-8] - ldr r3,[r7,#-4] - ldr r4,[r8],#-16 - ldr r5,[r8,#16+4] - ldr r6,[r8,#16+8] - ldr r9,[r8,#16+12] - str r0,[r10],#-16 - str r1,[r10,#16+4] - str r2,[r10,#16+8] - str r3,[r10,#16+12] - str r4,[r11],#16 - str r5,[r11,#-12] - str r6,[r11,#-8] - str r9,[r11,#-4] - teq r7,r8 - bne .Linv - - ldr r0,[r7] - ldr r1,[r7,#4] - ldr r2,[r7,#8] - ldr r3,[r7,#12] - str r0,[r11] - str r1,[r11,#4] - str r2,[r11,#8] - str r3,[r11,#12] - sub r11,r11,r12,lsl#3 - ldr r0,[r11,#16]! @ prefetch tp1 - mov r7,#0x80 - mov r8,#0x1b - orr r7,r7,#0x8000 - orr r8,r8,#0x1b00 - orr r7,r7,r7,lsl#16 - orr r8,r8,r8,lsl#16 - sub r12,r12,#1 - mvn r9,r7 - mov r12,r12,lsl#2 @ (rounds-1)*4 - -.Lmix: and r4,r0,r7 - and r1,r0,r9 - sub r4,r4,r4,lsr#7 - and r4,r4,r8 - eor r1,r4,r1,lsl#1 @ tp2 - - and r4,r1,r7 - and r2,r1,r9 - sub r4,r4,r4,lsr#7 - and r4,r4,r8 - eor r2,r4,r2,lsl#1 @ tp4 - - and r4,r2,r7 - and r3,r2,r9 - sub r4,r4,r4,lsr#7 - and r4,r4,r8 - eor r3,r4,r3,lsl#1 @ tp8 - - eor r4,r1,r2 - eor r5,r0,r3 @ tp9 - eor r4,r4,r3 @ tpe - eor r4,r4,r1,ror#24 - eor r4,r4,r5,ror#24 @ ^= ROTATE(tpb=tp9^tp2,8) - eor r4,r4,r2,ror#16 - eor r4,r4,r5,ror#16 @ ^= ROTATE(tpd=tp9^tp4,16) - eor r4,r4,r5,ror#8 @ ^= ROTATE(tp9,24) - - ldr r0,[r11,#4] @ prefetch tp1 - str r4,[r11],#4 - subs r12,r12,#1 - bne .Lmix - - mov r0,#0 -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif -.size AES_set_enc2dec_key,.-AES_set_enc2dec_key - -.type AES_Td,%object -.align 5 -AES_Td: -.word 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96 -.word 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393 -.word 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25 -.word 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f -.word 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1 -.word 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6 -.word 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da -.word 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844 -.word 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd -.word 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4 -.word 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45 -.word 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94 -.word 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7 -.word 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a -.word 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5 -.word 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c -.word 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1 -.word 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a -.word 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75 -.word 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051 -.word 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46 -.word 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff -.word 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77 -.word 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb -.word 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000 -.word 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e -.word 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927 -.word 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a -.word 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e -.word 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16 -.word 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d -.word 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8 -.word 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd -.word 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34 -.word 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163 -.word 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120 -.word 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d -.word 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0 -.word 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422 -.word 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef -.word 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36 -.word 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4 -.word 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662 -.word 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5 -.word 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3 -.word 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b -.word 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8 -.word 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6 -.word 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6 -.word 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0 -.word 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815 -.word 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f -.word 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df -.word 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f -.word 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e -.word 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713 -.word 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89 -.word 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c -.word 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf -.word 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86 -.word 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f -.word 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541 -.word 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190 -.word 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742 -@ Td4[256] -.byte 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38 -.byte 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb -.byte 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87 -.byte 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb -.byte 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d -.byte 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e -.byte 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2 -.byte 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 -.byte 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16 -.byte 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92 -.byte 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda -.byte 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 -.byte 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a -.byte 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06 -.byte 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02 -.byte 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b -.byte 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea -.byte 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73 -.byte 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85 -.byte 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e -.byte 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89 -.byte 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b -.byte 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20 -.byte 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4 -.byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31 -.byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f -.byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d -.byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef -.byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 -.byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 -.byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 -.byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d -.size AES_Td,.-AES_Td - -@ void aes_nohw_decrypt(const unsigned char *in, unsigned char *out, -@ const AES_KEY *key) { -.globl aes_nohw_decrypt -.hidden aes_nohw_decrypt -.type aes_nohw_decrypt,%function -.align 5 -aes_nohw_decrypt: -#ifndef __thumb2__ - sub r3,pc,#8 @ aes_nohw_decrypt -#else - adr r3,. -#endif - stmdb sp!,{r1,r4-r12,lr} -#if defined(__thumb2__) || defined(__APPLE__) - adr r10,AES_Td -#else - sub r10,r3,#aes_nohw_decrypt-AES_Td @ Td -#endif - mov r12,r0 @ inp - mov r11,r2 -#if __ARM_ARCH__<7 - ldrb r0,[r12,#3] @ load input data in endian-neutral - ldrb r4,[r12,#2] @ manner... - ldrb r5,[r12,#1] - ldrb r6,[r12,#0] - orr r0,r0,r4,lsl#8 - ldrb r1,[r12,#7] - orr r0,r0,r5,lsl#16 - ldrb r4,[r12,#6] - orr r0,r0,r6,lsl#24 - ldrb r5,[r12,#5] - ldrb r6,[r12,#4] - orr r1,r1,r4,lsl#8 - ldrb r2,[r12,#11] - orr r1,r1,r5,lsl#16 - ldrb r4,[r12,#10] - orr r1,r1,r6,lsl#24 - ldrb r5,[r12,#9] - ldrb r6,[r12,#8] - orr r2,r2,r4,lsl#8 - ldrb r3,[r12,#15] - orr r2,r2,r5,lsl#16 - ldrb r4,[r12,#14] - orr r2,r2,r6,lsl#24 - ldrb r5,[r12,#13] - ldrb r6,[r12,#12] - orr r3,r3,r4,lsl#8 - orr r3,r3,r5,lsl#16 - orr r3,r3,r6,lsl#24 -#else - ldr r0,[r12,#0] - ldr r1,[r12,#4] - ldr r2,[r12,#8] - ldr r3,[r12,#12] -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif -#endif - bl _armv4_AES_decrypt - - ldr r12,[sp],#4 @ pop out -#if __ARM_ARCH__>=7 -#ifdef __ARMEL__ - rev r0,r0 - rev r1,r1 - rev r2,r2 - rev r3,r3 -#endif - str r0,[r12,#0] - str r1,[r12,#4] - str r2,[r12,#8] - str r3,[r12,#12] -#else - mov r4,r0,lsr#24 @ write output in endian-neutral - mov r5,r0,lsr#16 @ manner... - mov r6,r0,lsr#8 - strb r4,[r12,#0] - strb r5,[r12,#1] - mov r4,r1,lsr#24 - strb r6,[r12,#2] - mov r5,r1,lsr#16 - strb r0,[r12,#3] - mov r6,r1,lsr#8 - strb r4,[r12,#4] - strb r5,[r12,#5] - mov r4,r2,lsr#24 - strb r6,[r12,#6] - mov r5,r2,lsr#16 - strb r1,[r12,#7] - mov r6,r2,lsr#8 - strb r4,[r12,#8] - strb r5,[r12,#9] - mov r4,r3,lsr#24 - strb r6,[r12,#10] - mov r5,r3,lsr#16 - strb r2,[r12,#11] - mov r6,r3,lsr#8 - strb r4,[r12,#12] - strb r5,[r12,#13] - strb r6,[r12,#14] - strb r3,[r12,#15] -#endif -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif -.size aes_nohw_decrypt,.-aes_nohw_decrypt - -.type _armv4_AES_decrypt,%function -.align 2 -_armv4_AES_decrypt: - str lr,[sp,#-4]! @ push lr - ldmia r11!,{r4,r5,r6,r7} - eor r0,r0,r4 - ldr r12,[r11,#240-16] - eor r1,r1,r5 - eor r2,r2,r6 - eor r3,r3,r7 - sub r12,r12,#1 - mov lr,#255 - - and r7,lr,r0,lsr#16 - and r8,lr,r0,lsr#8 - and r9,lr,r0 - mov r0,r0,lsr#24 -.Ldec_loop: - ldr r4,[r10,r7,lsl#2] @ Td1[s0>>16] - and r7,lr,r1 @ i0 - ldr r5,[r10,r8,lsl#2] @ Td2[s0>>8] - and r8,lr,r1,lsr#16 - ldr r6,[r10,r9,lsl#2] @ Td3[s0>>0] - and r9,lr,r1,lsr#8 - ldr r0,[r10,r0,lsl#2] @ Td0[s0>>24] - mov r1,r1,lsr#24 - - ldr r7,[r10,r7,lsl#2] @ Td3[s1>>0] - ldr r8,[r10,r8,lsl#2] @ Td1[s1>>16] - ldr r9,[r10,r9,lsl#2] @ Td2[s1>>8] - eor r0,r0,r7,ror#24 - ldr r1,[r10,r1,lsl#2] @ Td0[s1>>24] - and r7,lr,r2,lsr#8 @ i0 - eor r5,r8,r5,ror#8 - and r8,lr,r2 @ i1 - eor r6,r9,r6,ror#8 - and r9,lr,r2,lsr#16 - ldr r7,[r10,r7,lsl#2] @ Td2[s2>>8] - eor r1,r1,r4,ror#8 - ldr r8,[r10,r8,lsl#2] @ Td3[s2>>0] - mov r2,r2,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Td1[s2>>16] - eor r0,r0,r7,ror#16 - ldr r2,[r10,r2,lsl#2] @ Td0[s2>>24] - and r7,lr,r3,lsr#16 @ i0 - eor r1,r1,r8,ror#24 - and r8,lr,r3,lsr#8 @ i1 - eor r6,r9,r6,ror#8 - and r9,lr,r3 @ i2 - ldr r7,[r10,r7,lsl#2] @ Td1[s3>>16] - eor r2,r2,r5,ror#8 - ldr r8,[r10,r8,lsl#2] @ Td2[s3>>8] - mov r3,r3,lsr#24 - - ldr r9,[r10,r9,lsl#2] @ Td3[s3>>0] - eor r0,r0,r7,ror#8 - ldr r7,[r11],#16 - eor r1,r1,r8,ror#16 - ldr r3,[r10,r3,lsl#2] @ Td0[s3>>24] - eor r2,r2,r9,ror#24 - - ldr r4,[r11,#-12] - eor r0,r0,r7 - ldr r5,[r11,#-8] - eor r3,r3,r6,ror#8 - ldr r6,[r11,#-4] - and r7,lr,r0,lsr#16 - eor r1,r1,r4 - and r8,lr,r0,lsr#8 - eor r2,r2,r5 - and r9,lr,r0 - eor r3,r3,r6 - mov r0,r0,lsr#24 - - subs r12,r12,#1 - bne .Ldec_loop - - add r10,r10,#1024 - - ldr r5,[r10,#0] @ prefetch Td4 - ldr r6,[r10,#32] - ldr r4,[r10,#64] - ldr r5,[r10,#96] - ldr r6,[r10,#128] - ldr r4,[r10,#160] - ldr r5,[r10,#192] - ldr r6,[r10,#224] - - ldrb r0,[r10,r0] @ Td4[s0>>24] - ldrb r4,[r10,r7] @ Td4[s0>>16] - and r7,lr,r1 @ i0 - ldrb r5,[r10,r8] @ Td4[s0>>8] - and r8,lr,r1,lsr#16 - ldrb r6,[r10,r9] @ Td4[s0>>0] - and r9,lr,r1,lsr#8 - - add r1,r10,r1,lsr#24 - ldrb r7,[r10,r7] @ Td4[s1>>0] - ldrb r1,[r1] @ Td4[s1>>24] - ldrb r8,[r10,r8] @ Td4[s1>>16] - eor r0,r7,r0,lsl#24 - ldrb r9,[r10,r9] @ Td4[s1>>8] - eor r1,r4,r1,lsl#8 - and r7,lr,r2,lsr#8 @ i0 - eor r5,r5,r8,lsl#8 - and r8,lr,r2 @ i1 - ldrb r7,[r10,r7] @ Td4[s2>>8] - eor r6,r6,r9,lsl#8 - ldrb r8,[r10,r8] @ Td4[s2>>0] - and r9,lr,r2,lsr#16 - - add r2,r10,r2,lsr#24 - ldrb r2,[r2] @ Td4[s2>>24] - eor r0,r0,r7,lsl#8 - ldrb r9,[r10,r9] @ Td4[s2>>16] - eor r1,r8,r1,lsl#16 - and r7,lr,r3,lsr#16 @ i0 - eor r2,r5,r2,lsl#16 - and r8,lr,r3,lsr#8 @ i1 - ldrb r7,[r10,r7] @ Td4[s3>>16] - eor r6,r6,r9,lsl#16 - ldrb r8,[r10,r8] @ Td4[s3>>8] - and r9,lr,r3 @ i2 - - add r3,r10,r3,lsr#24 - ldrb r9,[r10,r9] @ Td4[s3>>0] - ldrb r3,[r3] @ Td4[s3>>24] - eor r0,r0,r7,lsl#16 - ldr r7,[r11,#0] - eor r1,r1,r8,lsl#8 - ldr r4,[r11,#4] - eor r2,r9,r2,lsl#8 - ldr r5,[r11,#8] - eor r3,r6,r3,lsl#24 - ldr r6,[r11,#12] - - eor r0,r0,r7 - eor r1,r1,r4 - eor r2,r2,r5 - eor r3,r3,r6 - - sub r10,r10,#1024 - ldr pc,[sp],#4 @ pop and return -.size _armv4_AES_decrypt,.-_armv4_AES_decrypt -.byte 65,69,83,32,102,111,114,32,65,82,77,118,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.align 2 -.align 2 -#endif -#endif // !OPENSSL_NO_ASM diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aesv8-armx32.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aesv8-armx32.S index 3a2d2e43e09..5d6e22d029d 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aesv8-armx32.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/aesv8-armx32.S @@ -778,3 +778,4 @@ aes_hw_ctr32_encrypt_blocks: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/armv4-mont.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/armv4-mont.S index 12ebe40c779..029689475b1 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/armv4-mont.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/armv4-mont.S @@ -974,3 +974,4 @@ bn_mul8x_mont_neon: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/bsaes-armv7.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/bsaes-armv7.S index f6cec3dbd69..69a8fcacd0a 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/bsaes-armv7.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/bsaes-armv7.S @@ -1526,3 +1526,4 @@ bsaes_ctr32_encrypt_blocks: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghash-armv4.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghash-armv4.S index a0fa53c6c41..0532695a625 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghash-armv4.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghash-armv4.S @@ -31,342 +31,6 @@ #else .code 32 #endif - -.type rem_4bit,%object -.align 5 -rem_4bit: -.short 0x0000,0x1C20,0x3840,0x2460 -.short 0x7080,0x6CA0,0x48C0,0x54E0 -.short 0xE100,0xFD20,0xD940,0xC560 -.short 0x9180,0x8DA0,0xA9C0,0xB5E0 -.size rem_4bit,.-rem_4bit - -.type rem_4bit_get,%function -rem_4bit_get: -#if defined(__thumb2__) - adr r2,rem_4bit -#else - sub r2,pc,#8+32 @ &rem_4bit -#endif - b .Lrem_4bit_got - nop - nop -.size rem_4bit_get,.-rem_4bit_get - -.globl gcm_ghash_4bit -.hidden gcm_ghash_4bit -.type gcm_ghash_4bit,%function -.align 4 -gcm_ghash_4bit: -#if defined(__thumb2__) - adr r12,rem_4bit -#else - sub r12,pc,#8+48 @ &rem_4bit -#endif - add r3,r2,r3 @ r3 to point at the end - stmdb sp!,{r3,r4,r5,r6,r7,r8,r9,r10,r11,lr} @ save r3/end too - - ldmia r12,{r4,r5,r6,r7,r8,r9,r10,r11} @ copy rem_4bit ... - stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11} @ ... to stack - - ldrb r12,[r2,#15] - ldrb r14,[r0,#15] -.Louter: - eor r12,r12,r14 - and r14,r12,#0xf0 - and r12,r12,#0x0f - mov r3,#14 - - add r7,r1,r12,lsl#4 - ldmia r7,{r4,r5,r6,r7} @ load Htbl[nlo] - add r11,r1,r14 - ldrb r12,[r2,#14] - - and r14,r4,#0xf @ rem - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - add r14,r14,r14 - eor r4,r8,r4,lsr#4 - ldrh r8,[sp,r14] @ rem_4bit[rem] - eor r4,r4,r5,lsl#28 - ldrb r14,[r0,#14] - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - eor r12,r12,r14 - and r14,r12,#0xf0 - and r12,r12,#0x0f - eor r7,r7,r8,lsl#16 - -.Linner: - add r11,r1,r12,lsl#4 - and r12,r4,#0xf @ rem - subs r3,r3,#1 - add r12,r12,r12 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nlo] - eor r4,r8,r4,lsr#4 - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - ldrh r8,[sp,r12] @ rem_4bit[rem] - eor r6,r10,r6,lsr#4 -#ifdef __thumb2__ - it pl -#endif - ldrplb r12,[r2,r3] - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - - add r11,r1,r14 - and r14,r4,#0xf @ rem - eor r7,r7,r8,lsl#16 @ ^= rem_4bit[rem] - add r14,r14,r14 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - eor r4,r8,r4,lsr#4 -#ifdef __thumb2__ - it pl -#endif - ldrplb r8,[r0,r3] - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - ldrh r9,[sp,r14] - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 -#ifdef __thumb2__ - it pl -#endif - eorpl r12,r12,r8 - eor r7,r11,r7,lsr#4 -#ifdef __thumb2__ - itt pl -#endif - andpl r14,r12,#0xf0 - andpl r12,r12,#0x0f - eor r7,r7,r9,lsl#16 @ ^= rem_4bit[rem] - bpl .Linner - - ldr r3,[sp,#32] @ re-load r3/end - add r2,r2,#16 - mov r14,r4 -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r4,r4 - str r4,[r0,#12] -#elif defined(__ARMEB__) - str r4,[r0,#12] -#else - mov r9,r4,lsr#8 - strb r4,[r0,#12+3] - mov r10,r4,lsr#16 - strb r9,[r0,#12+2] - mov r11,r4,lsr#24 - strb r10,[r0,#12+1] - strb r11,[r0,#12] -#endif - cmp r2,r3 -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r5,r5 - str r5,[r0,#8] -#elif defined(__ARMEB__) - str r5,[r0,#8] -#else - mov r9,r5,lsr#8 - strb r5,[r0,#8+3] - mov r10,r5,lsr#16 - strb r9,[r0,#8+2] - mov r11,r5,lsr#24 - strb r10,[r0,#8+1] - strb r11,[r0,#8] -#endif - -#ifdef __thumb2__ - it ne -#endif - ldrneb r12,[r2,#15] -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r6,r6 - str r6,[r0,#4] -#elif defined(__ARMEB__) - str r6,[r0,#4] -#else - mov r9,r6,lsr#8 - strb r6,[r0,#4+3] - mov r10,r6,lsr#16 - strb r9,[r0,#4+2] - mov r11,r6,lsr#24 - strb r10,[r0,#4+1] - strb r11,[r0,#4] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r7,r7 - str r7,[r0,#0] -#elif defined(__ARMEB__) - str r7,[r0,#0] -#else - mov r9,r7,lsr#8 - strb r7,[r0,#0+3] - mov r10,r7,lsr#16 - strb r9,[r0,#0+2] - mov r11,r7,lsr#24 - strb r10,[r0,#0+1] - strb r11,[r0,#0] -#endif - - bne .Louter - - add sp,sp,#36 -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif -.size gcm_ghash_4bit,.-gcm_ghash_4bit - -.globl gcm_gmult_4bit -.hidden gcm_gmult_4bit -.type gcm_gmult_4bit,%function -gcm_gmult_4bit: - stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr} - ldrb r12,[r0,#15] - b rem_4bit_get -.Lrem_4bit_got: - and r14,r12,#0xf0 - and r12,r12,#0x0f - mov r3,#14 - - add r7,r1,r12,lsl#4 - ldmia r7,{r4,r5,r6,r7} @ load Htbl[nlo] - ldrb r12,[r0,#14] - - add r11,r1,r14 - and r14,r4,#0xf @ rem - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - add r14,r14,r14 - eor r4,r8,r4,lsr#4 - ldrh r8,[r2,r14] @ rem_4bit[rem] - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - and r14,r12,#0xf0 - eor r7,r7,r8,lsl#16 - and r12,r12,#0x0f - -.Loop: - add r11,r1,r12,lsl#4 - and r12,r4,#0xf @ rem - subs r3,r3,#1 - add r12,r12,r12 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nlo] - eor r4,r8,r4,lsr#4 - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - eor r5,r5,r6,lsl#28 - ldrh r8,[r2,r12] @ rem_4bit[rem] - eor r6,r10,r6,lsr#4 -#ifdef __thumb2__ - it pl -#endif - ldrplb r12,[r0,r3] - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 - - add r11,r1,r14 - and r14,r4,#0xf @ rem - eor r7,r7,r8,lsl#16 @ ^= rem_4bit[rem] - add r14,r14,r14 - ldmia r11,{r8,r9,r10,r11} @ load Htbl[nhi] - eor r4,r8,r4,lsr#4 - eor r4,r4,r5,lsl#28 - eor r5,r9,r5,lsr#4 - ldrh r8,[r2,r14] @ rem_4bit[rem] - eor r5,r5,r6,lsl#28 - eor r6,r10,r6,lsr#4 - eor r6,r6,r7,lsl#28 - eor r7,r11,r7,lsr#4 -#ifdef __thumb2__ - itt pl -#endif - andpl r14,r12,#0xf0 - andpl r12,r12,#0x0f - eor r7,r7,r8,lsl#16 @ ^= rem_4bit[rem] - bpl .Loop -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r4,r4 - str r4,[r0,#12] -#elif defined(__ARMEB__) - str r4,[r0,#12] -#else - mov r9,r4,lsr#8 - strb r4,[r0,#12+3] - mov r10,r4,lsr#16 - strb r9,[r0,#12+2] - mov r11,r4,lsr#24 - strb r10,[r0,#12+1] - strb r11,[r0,#12] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r5,r5 - str r5,[r0,#8] -#elif defined(__ARMEB__) - str r5,[r0,#8] -#else - mov r9,r5,lsr#8 - strb r5,[r0,#8+3] - mov r10,r5,lsr#16 - strb r9,[r0,#8+2] - mov r11,r5,lsr#24 - strb r10,[r0,#8+1] - strb r11,[r0,#8] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r6,r6 - str r6,[r0,#4] -#elif defined(__ARMEB__) - str r6,[r0,#4] -#else - mov r9,r6,lsr#8 - strb r6,[r0,#4+3] - mov r10,r6,lsr#16 - strb r9,[r0,#4+2] - mov r11,r6,lsr#24 - strb r10,[r0,#4+1] - strb r11,[r0,#4] -#endif - -#if __ARM_ARCH__>=7 && defined(__ARMEL__) - rev r7,r7 - str r7,[r0,#0] -#elif defined(__ARMEB__) - str r7,[r0,#0] -#else - mov r9,r7,lsr#8 - strb r7,[r0,#0+3] - mov r10,r7,lsr#16 - strb r9,[r0,#0+2] - mov r11,r7,lsr#24 - strb r10,[r0,#0+1] - strb r11,[r0,#0] -#endif - -#if __ARM_ARCH__>=5 - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc} -#else - ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr} - tst lr,#1 - moveq pc,lr @ be binary compatible with V4, yet -.word 0xe12fff1e @ interoperable with Thumb ISA:-) -#endif -.size gcm_gmult_4bit,.-gcm_gmult_4bit #if __ARM_MAX_ARCH__>=7 .arch armv7-a .fpu neon @@ -588,3 +252,4 @@ gcm_ghash_neon: .align 2 #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghashv8-armx32.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghashv8-armx32.S index 65c9f22a989..d6842945f00 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghashv8-armx32.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/ghashv8-armx32.S @@ -250,3 +250,4 @@ gcm_ghash_v8: .align 2 #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha1-armv4-large.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha1-armv4-large.S index 2b70a32515d..61deddf8e7d 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha1-armv4-large.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha1-armv4-large.S @@ -1508,3 +1508,4 @@ sha1_block_data_order_armv8: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha256-armv4.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha256-armv4.S index 1928075349e..aee04785c0a 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha256-armv4.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha256-armv4.S @@ -2836,3 +2836,4 @@ sha256_block_data_order_armv8: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha512-armv4.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha512-armv4.S index c44fcc6c778..a06d41fee56 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha512-armv4.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/sha512-armv4.S @@ -1891,3 +1891,4 @@ sha512_block_data_order_neon: #endif #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/vpaes-armv7.S b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/vpaes-armv7.S new file mode 100644 index 00000000000..e5ad6ed99b9 --- /dev/null +++ b/contrib/boringssl-cmake/linux-arm/crypto/fipsmodule/vpaes-armv7.S @@ -0,0 +1,1236 @@ +// This file is generated from a similarly-named Perl script in the BoringSSL +// source tree. Do not edit by hand. + +#if !defined(__has_feature) +#define __has_feature(x) 0 +#endif +#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) +#define OPENSSL_NO_ASM +#endif + +#if !defined(OPENSSL_NO_ASM) +#if defined(__arm__) +#if defined(BORINGSSL_PREFIX) +#include +#endif +.syntax unified + +.arch armv7-a +.fpu neon + +#if defined(__thumb2__) +.thumb +#else +.code 32 +#endif + +.text + +.type _vpaes_consts,%object +.align 7 @ totally strategic alignment +_vpaes_consts: +.Lk_mc_forward:@ mc_forward +.quad 0x0407060500030201, 0x0C0F0E0D080B0A09 +.quad 0x080B0A0904070605, 0x000302010C0F0E0D +.quad 0x0C0F0E0D080B0A09, 0x0407060500030201 +.quad 0x000302010C0F0E0D, 0x080B0A0904070605 +.Lk_mc_backward:@ mc_backward +.quad 0x0605040702010003, 0x0E0D0C0F0A09080B +.quad 0x020100030E0D0C0F, 0x0A09080B06050407 +.quad 0x0E0D0C0F0A09080B, 0x0605040702010003 +.quad 0x0A09080B06050407, 0x020100030E0D0C0F +.Lk_sr:@ sr +.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 +.quad 0x030E09040F0A0500, 0x0B06010C07020D08 +.quad 0x0F060D040B020900, 0x070E050C030A0108 +.quad 0x0B0E0104070A0D00, 0x0306090C0F020508 + +@ +@ "Hot" constants +@ +.Lk_inv:@ inv, inva +.quad 0x0E05060F0D080180, 0x040703090A0B0C02 +.quad 0x01040A060F0B0780, 0x030D0E0C02050809 +.Lk_ipt:@ input transform (lo, hi) +.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 +.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 +.Lk_sbo:@ sbou, sbot +.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 +.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA +.Lk_sb1:@ sb1u, sb1t +.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF +.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 +.Lk_sb2:@ sb2u, sb2t +.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A +.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD + +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,82,77,118,55,32,78,69,79,78,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 +.align 2 +.size _vpaes_consts,.-_vpaes_consts +.align 6 +@@ +@@ _aes_preheat +@@ +@@ Fills q9-q15 as specified below. +@@ +.type _vpaes_preheat,%function +.align 4 +_vpaes_preheat: + adr r10, .Lk_inv + vmov.i8 q9, #0x0f @ .Lk_s0F + vld1.64 {q10,q11}, [r10]! @ .Lk_inv + add r10, r10, #64 @ Skip .Lk_ipt, .Lk_sbo + vld1.64 {q12,q13}, [r10]! @ .Lk_sb1 + vld1.64 {q14,q15}, [r10] @ .Lk_sb2 + bx lr + +@@ +@@ _aes_encrypt_core +@@ +@@ AES-encrypt q0. +@@ +@@ Inputs: +@@ q0 = input +@@ q9-q15 as in _vpaes_preheat +@@ [r2] = scheduled keys +@@ +@@ Output in q0 +@@ Clobbers q1-q5, r8-r11 +@@ Preserves q6-q8 so you get some local vectors +@@ +@@ +.type _vpaes_encrypt_core,%function +.align 4 +_vpaes_encrypt_core: + mov r9, r2 + ldr r8, [r2,#240] @ pull rounds + adr r11, .Lk_ipt + @ vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo + @ vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi + vld1.64 {q2, q3}, [r11] + adr r11, .Lk_mc_forward+16 + vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5 # round0 key + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 + vtbl.8 d2, {q2}, d2 @ vpshufb %xmm1, %xmm2, %xmm1 + vtbl.8 d3, {q2}, d3 + vtbl.8 d4, {q3}, d0 @ vpshufb %xmm0, %xmm3, %xmm2 + vtbl.8 d5, {q3}, d1 + veor q0, q1, q5 @ vpxor %xmm5, %xmm1, %xmm0 + veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 + + @ .Lenc_entry ends with a bnz instruction which is normally paired with + @ subs in .Lenc_loop. + tst r8, r8 + b .Lenc_entry + +.align 4 +.Lenc_loop: + @ middle of middle round + add r10, r11, #0x40 + vtbl.8 d8, {q13}, d4 @ vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u + vtbl.8 d9, {q13}, d5 + vld1.64 {q1}, [r11]! @ vmovdqa -0x40(%r11,%r10), %xmm1 # .Lk_mc_forward[] + vtbl.8 d0, {q12}, d6 @ vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t + vtbl.8 d1, {q12}, d7 + veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + vtbl.8 d10, {q15}, d4 @ vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u + vtbl.8 d11, {q15}, d5 + veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A + vtbl.8 d4, {q14}, d6 @ vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t + vtbl.8 d5, {q14}, d7 + vld1.64 {q4}, [r10] @ vmovdqa (%r11,%r10), %xmm4 # .Lk_mc_backward[] + vtbl.8 d6, {q0}, d2 @ vpshufb %xmm1, %xmm0, %xmm3 # 0 = B + vtbl.8 d7, {q0}, d3 + veor q2, q2, q5 @ vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A + @ Write to q5 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d10, {q0}, d8 @ vpshufb %xmm4, %xmm0, %xmm0 # 3 = D + vtbl.8 d11, {q0}, d9 + veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B + vtbl.8 d8, {q3}, d2 @ vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C + vtbl.8 d9, {q3}, d3 + @ Here we restore the original q0/q5 usage. + veor q0, q5, q3 @ vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D + and r11, r11, #~(1<<6) @ and $0x30, %r11 # ... mod 4 + veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D + subs r8, r8, #1 @ nr-- + +.Lenc_entry: + @ top of round + vand q1, q0, q9 @ vpand %xmm0, %xmm9, %xmm1 # 0 = k + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i + vtbl.8 d10, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k + vtbl.8 d11, {q11}, d3 + veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j + vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + vtbl.8 d7, {q10}, d1 + vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + vtbl.8 d9, {q10}, d3 + veor q3, q3, q5 @ vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + vtbl.8 d4, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + vtbl.8 d5, {q10}, d7 + vtbl.8 d6, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + vtbl.8 d7, {q10}, d9 + veor q2, q2, q1 @ vpxor %xmm1, %xmm2, %xmm2 # 2 = io + veor q3, q3, q0 @ vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5 + bne .Lenc_loop + + @ middle of last round + add r10, r11, #0x80 + + adr r11, .Lk_sbo + @ Read to q1 instead of q4, so the vtbl.8 instruction below does not + @ overlap table and destination registers. + vld1.64 {q1}, [r11]! @ vmovdqa -0x60(%r10), %xmm4 # 3 : sbou + vld1.64 {q0}, [r11] @ vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 + vtbl.8 d8, {q1}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + vtbl.8 d9, {q1}, d5 + vld1.64 {q1}, [r10] @ vmovdqa 0x40(%r11,%r10), %xmm1 # .Lk_sr[] + @ Write to q2 instead of q0 below, to avoid overlapping table and + @ destination registers. + vtbl.8 d4, {q0}, d6 @ vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t + vtbl.8 d5, {q0}, d7 + veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + veor q2, q2, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A + @ Here we restore the original q0/q2 usage. + vtbl.8 d0, {q2}, d2 @ vpshufb %xmm1, %xmm0, %xmm0 + vtbl.8 d1, {q2}, d3 + bx lr +.size _vpaes_encrypt_core,.-_vpaes_encrypt_core + +.globl vpaes_encrypt +.hidden vpaes_encrypt +.type vpaes_encrypt,%function +.align 4 +vpaes_encrypt: + @ _vpaes_encrypt_core uses r8-r11. Round up to r7-r11 to maintain stack + @ alignment. + stmdb sp!, {r7,r8,r9,r10,r11,lr} + @ _vpaes_encrypt_core uses q4-q5 (d8-d11), which are callee-saved. + vstmdb sp!, {d8,d9,d10,d11} + + vld1.64 {q0}, [r0] + bl _vpaes_preheat + bl _vpaes_encrypt_core + vst1.64 {q0}, [r1] + + vldmia sp!, {d8,d9,d10,d11} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return +.size vpaes_encrypt,.-vpaes_encrypt + +@ +@ Decryption stuff +@ +.type _vpaes_decrypt_consts,%object +.align 4 +_vpaes_decrypt_consts: +.Lk_dipt:@ decryption input transform +.quad 0x0F505B040B545F00, 0x154A411E114E451A +.quad 0x86E383E660056500, 0x12771772F491F194 +.Lk_dsbo:@ decryption sbox final output +.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D +.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C +.Lk_dsb9:@ decryption sbox output *9*u, *9*t +.quad 0x851C03539A86D600, 0xCAD51F504F994CC9 +.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565 +.Lk_dsbd:@ decryption sbox output *D*u, *D*t +.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439 +.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3 +.Lk_dsbb:@ decryption sbox output *B*u, *B*t +.quad 0xD022649296B44200, 0x602646F6B0F2D404 +.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B +.Lk_dsbe:@ decryption sbox output *E*u, *E*t +.quad 0x46F2929626D4D000, 0x2242600464B4F6B0 +.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32 +.size _vpaes_decrypt_consts,.-_vpaes_decrypt_consts + +@@ +@@ Decryption core +@@ +@@ Same API as encryption core, except it clobbers q12-q15 rather than using +@@ the values from _vpaes_preheat. q9-q11 must still be set from +@@ _vpaes_preheat. +@@ +.type _vpaes_decrypt_core,%function +.align 4 +_vpaes_decrypt_core: + mov r9, r2 + ldr r8, [r2,#240] @ pull rounds + + @ This function performs shuffles with various constants. The x86_64 + @ version loads them on-demand into %xmm0-%xmm5. This does not work well + @ for ARMv7 because those registers are shuffle destinations. The ARMv8 + @ version preloads those constants into registers, but ARMv7 has half + @ the registers to work with. Instead, we load them on-demand into + @ q12-q15, registers normally use for preloaded constants. This is fine + @ because decryption doesn't use those constants. The values are + @ constant, so this does not interfere with potential 2x optimizations. + adr r7, .Lk_dipt + + vld1.64 {q12,q13}, [r7] @ vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo + lsl r11, r8, #4 @ mov %rax, %r11; shl $4, %r11 + eor r11, r11, #0x30 @ xor $0x30, %r11 + adr r10, .Lk_sr + and r11, r11, #0x30 @ and $0x30, %r11 + add r11, r11, r10 + adr r10, .Lk_mc_forward+48 + + vld1.64 {q4}, [r9]! @ vmovdqu (%r9), %xmm4 # round0 key + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 + vtbl.8 d4, {q12}, d2 @ vpshufb %xmm1, %xmm2, %xmm2 + vtbl.8 d5, {q12}, d3 + vld1.64 {q5}, [r10] @ vmovdqa .Lk_mc_forward+48(%rip), %xmm5 + @ vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi + vtbl.8 d0, {q13}, d0 @ vpshufb %xmm0, %xmm1, %xmm0 + vtbl.8 d1, {q13}, d1 + veor q2, q2, q4 @ vpxor %xmm4, %xmm2, %xmm2 + veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 + + @ .Ldec_entry ends with a bnz instruction which is normally paired with + @ subs in .Ldec_loop. + tst r8, r8 + b .Ldec_entry + +.align 4 +.Ldec_loop: +@ +@ Inverse mix columns +@ + + @ We load .Lk_dsb* into q12-q15 on-demand. See the comment at the top of + @ the function. + adr r10, .Lk_dsb9 + vld1.64 {q12,q13}, [r10]! @ vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u + @ vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t + @ Load sbd* ahead of time. + vld1.64 {q14,q15}, [r10]! @ vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu + @ vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt + vtbl.8 d8, {q12}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u + vtbl.8 d9, {q12}, d5 + vtbl.8 d2, {q13}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t + vtbl.8 d3, {q13}, d7 + veor q0, q4, q0 @ vpxor %xmm4, %xmm0, %xmm0 + + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + + @ Load sbb* ahead of time. + vld1.64 {q12,q13}, [r10]! @ vmovdqa 0x20(%r10),%xmm4 # 4 : sbbu + @ vmovdqa 0x30(%r10),%xmm1 # 0 : sbbt + + vtbl.8 d8, {q14}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu + vtbl.8 d9, {q14}, d5 + @ Write to q1 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch + vtbl.8 d3, {q0}, d11 + @ Here we restore the original q0/q1 usage. This instruction is + @ reordered from the ARMv8 version so we do not clobber the vtbl.8 + @ below. + veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + vtbl.8 d2, {q15}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt + vtbl.8 d3, {q15}, d7 + @ vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + @ vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt + + @ Load sbd* ahead of time. + vld1.64 {q14,q15}, [r10]! @ vmovdqa 0x40(%r10),%xmm4 # 4 : sbeu + @ vmovdqa 0x50(%r10),%xmm1 # 0 : sbet + + vtbl.8 d8, {q12}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu + vtbl.8 d9, {q12}, d5 + @ Write to q1 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch + vtbl.8 d3, {q0}, d11 + @ Here we restore the original q0/q1 usage. This instruction is + @ reordered from the ARMv8 version so we do not clobber the vtbl.8 + @ below. + veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + vtbl.8 d2, {q13}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt + vtbl.8 d3, {q13}, d7 + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + + vtbl.8 d8, {q14}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu + vtbl.8 d9, {q14}, d5 + @ Write to q1 instead of q0, so the table and destination registers do + @ not overlap. + vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch + vtbl.8 d3, {q0}, d11 + @ Here we restore the original q0/q1 usage. This instruction is + @ reordered from the ARMv8 version so we do not clobber the vtbl.8 + @ below. + veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + vtbl.8 d2, {q15}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet + vtbl.8 d3, {q15}, d7 + vext.8 q5, q5, q5, #12 @ vpalignr $12, %xmm5, %xmm5, %xmm5 + veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + subs r8, r8, #1 @ sub $1,%rax # nr-- + +.Ldec_entry: + @ top of round + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 # 0 = k + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i + vtbl.8 d4, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + vtbl.8 d5, {q11}, d3 + veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j + vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + vtbl.8 d7, {q10}, d1 + vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + vtbl.8 d9, {q10}, d3 + veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + veor q4, q4, q2 @ vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + vtbl.8 d4, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + vtbl.8 d5, {q10}, d7 + vtbl.8 d6, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + vtbl.8 d7, {q10}, d9 + veor q2, q2, q1 @ vpxor %xmm1, %xmm2, %xmm2 # 2 = io + veor q3, q3, q0 @ vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + vld1.64 {q0}, [r9]! @ vmovdqu (%r9), %xmm0 + bne .Ldec_loop + + @ middle of last round + + adr r10, .Lk_dsbo + + @ Write to q1 rather than q4 to avoid overlapping table and destination. + vld1.64 {q1}, [r10]! @ vmovdqa 0x60(%r10), %xmm4 # 3 : sbou + vtbl.8 d8, {q1}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + vtbl.8 d9, {q1}, d5 + @ Write to q2 rather than q1 to avoid overlapping table and destination. + vld1.64 {q2}, [r10] @ vmovdqa 0x70(%r10), %xmm1 # 0 : sbot + vtbl.8 d2, {q2}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t + vtbl.8 d3, {q2}, d7 + vld1.64 {q2}, [r11] @ vmovdqa -0x160(%r11), %xmm2 # .Lk_sr-.Lk_dsbd=-0x160 + veor q4, q4, q0 @ vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k + @ Write to q1 rather than q0 so the table and destination registers + @ below do not overlap. + veor q1, q1, q4 @ vpxor %xmm4, %xmm1, %xmm0 # 0 = A + vtbl.8 d0, {q1}, d4 @ vpshufb %xmm2, %xmm0, %xmm0 + vtbl.8 d1, {q1}, d5 + bx lr +.size _vpaes_decrypt_core,.-_vpaes_decrypt_core + +.globl vpaes_decrypt +.hidden vpaes_decrypt +.type vpaes_decrypt,%function +.align 4 +vpaes_decrypt: + @ _vpaes_decrypt_core uses r7-r11. + stmdb sp!, {r7,r8,r9,r10,r11,lr} + @ _vpaes_decrypt_core uses q4-q5 (d8-d11), which are callee-saved. + vstmdb sp!, {d8,d9,d10,d11} + + vld1.64 {q0}, [r0] + bl _vpaes_preheat + bl _vpaes_decrypt_core + vst1.64 {q0}, [r1] + + vldmia sp!, {d8,d9,d10,d11} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return +.size vpaes_decrypt,.-vpaes_decrypt +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@ @@ +@@ AES key schedule @@ +@@ @@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +@ This function diverges from both x86_64 and armv7 in which constants are +@ pinned. x86_64 has a common preheat function for all operations. aarch64 +@ separates them because it has enough registers to pin nearly all constants. +@ armv7 does not have enough registers, but needing explicit loads and stores +@ also complicates using x86_64's register allocation directly. +@ +@ We pin some constants for convenience and leave q14 and q15 free to load +@ others on demand. + +@ +@ Key schedule constants +@ +.type _vpaes_key_consts,%object +.align 4 +_vpaes_key_consts: +.Lk_dksd:@ decryption key schedule: invskew x*D +.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9 +.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E +.Lk_dksb:@ decryption key schedule: invskew x*B +.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99 +.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8 +.Lk_dkse:@ decryption key schedule: invskew x*E + 0x63 +.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086 +.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487 +.Lk_dks9:@ decryption key schedule: invskew x*9 +.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC +.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE + +.Lk_rcon:@ rcon +.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 + +.Lk_opt:@ output transform +.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 +.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 +.Lk_deskew:@ deskew tables: inverts the sbox's "skew" +.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A +.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 +.size _vpaes_key_consts,.-_vpaes_key_consts + +.type _vpaes_key_preheat,%function +.align 4 +_vpaes_key_preheat: + adr r11, .Lk_rcon + vmov.i8 q12, #0x5b @ .Lk_s63 + adr r10, .Lk_inv @ Must be aligned to 8 mod 16. + vmov.i8 q9, #0x0f @ .Lk_s0F + vld1.64 {q10,q11}, [r10] @ .Lk_inv + vld1.64 {q8}, [r11] @ .Lk_rcon + bx lr +.size _vpaes_key_preheat,.-_vpaes_key_preheat + +.type _vpaes_schedule_core,%function +.align 4 +_vpaes_schedule_core: + @ We only need to save lr, but ARM requires an 8-byte stack alignment, + @ so save an extra register. + stmdb sp!, {r3,lr} + + bl _vpaes_key_preheat @ load the tables + + adr r11, .Lk_ipt @ Must be aligned to 8 mod 16. + vld1.64 {q0}, [r0]! @ vmovdqu (%rdi), %xmm0 # load key (unaligned) + + @ input transform + @ Use q4 here rather than q3 so .Lschedule_am_decrypting does not + @ overlap table and destination. + vmov q4, q0 @ vmovdqa %xmm0, %xmm3 + bl _vpaes_schedule_transform + adr r10, .Lk_sr @ Must be aligned to 8 mod 16. + vmov q7, q0 @ vmovdqa %xmm0, %xmm7 + + add r8, r8, r10 + tst r3, r3 + bne .Lschedule_am_decrypting + + @ encrypting, output zeroth round key after transform + vst1.64 {q0}, [r2] @ vmovdqu %xmm0, (%rdx) + b .Lschedule_go + +.Lschedule_am_decrypting: + @ decrypting, output zeroth round key after shiftrows + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1 + vtbl.8 d6, {q4}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q4}, d3 + vst1.64 {q3}, [r2] @ vmovdqu %xmm3, (%rdx) + eor r8, r8, #0x30 @ xor $0x30, %r8 + +.Lschedule_go: + cmp r1, #192 @ cmp $192, %esi + bhi .Lschedule_256 + beq .Lschedule_192 + @ 128: fall though + +@@ +@@ .schedule_128 +@@ +@@ 128-bit specific part of key schedule. +@@ +@@ This schedule is really simple, because all its parts +@@ are accomplished by the subroutines. +@@ +.Lschedule_128: + mov r0, #10 @ mov $10, %esi + +.Loop_schedule_128: + bl _vpaes_schedule_round + subs r0, r0, #1 @ dec %esi + beq .Lschedule_mangle_last + bl _vpaes_schedule_mangle @ write output + b .Loop_schedule_128 + +@@ +@@ .aes_schedule_192 +@@ +@@ 192-bit specific part of key schedule. +@@ +@@ The main body of this schedule is the same as the 128-bit +@@ schedule, but with more smearing. The long, high side is +@@ stored in q7 as before, and the short, low side is in +@@ the high bits of q6. +@@ +@@ This schedule is somewhat nastier, however, because each +@@ round produces 192 bits of key material, or 1.5 round keys. +@@ Therefore, on each cycle we do 2 rounds and produce 3 round +@@ keys. +@@ +.align 4 +.Lschedule_192: + sub r0, r0, #8 + vld1.64 {q0}, [r0] @ vmovdqu 8(%rdi),%xmm0 # load key part 2 (very unaligned) + bl _vpaes_schedule_transform @ input transform + vmov q6, q0 @ vmovdqa %xmm0, %xmm6 # save short part + vmov.i8 d12, #0 @ vpxor %xmm4, %xmm4, %xmm4 # clear 4 + @ vmovhlps %xmm4, %xmm6, %xmm6 # clobber low side with zeros + mov r0, #4 @ mov $4, %esi + +.Loop_schedule_192: + bl _vpaes_schedule_round + vext.8 q0, q6, q0, #8 @ vpalignr $8,%xmm6,%xmm0,%xmm0 + bl _vpaes_schedule_mangle @ save key n + bl _vpaes_schedule_192_smear + bl _vpaes_schedule_mangle @ save key n+1 + bl _vpaes_schedule_round + subs r0, r0, #1 @ dec %esi + beq .Lschedule_mangle_last + bl _vpaes_schedule_mangle @ save key n+2 + bl _vpaes_schedule_192_smear + b .Loop_schedule_192 + +@@ +@@ .aes_schedule_256 +@@ +@@ 256-bit specific part of key schedule. +@@ +@@ The structure here is very similar to the 128-bit +@@ schedule, but with an additional "low side" in +@@ q6. The low side's rounds are the same as the +@@ high side's, except no rcon and no rotation. +@@ +.align 4 +.Lschedule_256: + vld1.64 {q0}, [r0] @ vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned) + bl _vpaes_schedule_transform @ input transform + mov r0, #7 @ mov $7, %esi + +.Loop_schedule_256: + bl _vpaes_schedule_mangle @ output low result + vmov q6, q0 @ vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6 + + @ high round + bl _vpaes_schedule_round + subs r0, r0, #1 @ dec %esi + beq .Lschedule_mangle_last + bl _vpaes_schedule_mangle + + @ low round. swap xmm7 and xmm6 + vdup.32 q0, d1[1] @ vpshufd $0xFF, %xmm0, %xmm0 + vmov.i8 q4, #0 + vmov q5, q7 @ vmovdqa %xmm7, %xmm5 + vmov q7, q6 @ vmovdqa %xmm6, %xmm7 + bl _vpaes_schedule_low_round + vmov q7, q5 @ vmovdqa %xmm5, %xmm7 + + b .Loop_schedule_256 + +@@ +@@ .aes_schedule_mangle_last +@@ +@@ Mangler for last round of key schedule +@@ Mangles q0 +@@ when encrypting, outputs out(q0) ^ 63 +@@ when decrypting, outputs unskew(q0) +@@ +@@ Always called right before return... jumps to cleanup and exits +@@ +.align 4 +.Lschedule_mangle_last: + @ schedule last round key from xmm0 + adr r11, .Lk_deskew @ lea .Lk_deskew(%rip),%r11 # prepare to deskew + tst r3, r3 + bne .Lschedule_mangle_last_dec + + @ encrypting + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10),%xmm1 + adr r11, .Lk_opt @ lea .Lk_opt(%rip), %r11 # prepare to output transform + add r2, r2, #32 @ add $32, %rdx + vmov q2, q0 + vtbl.8 d0, {q2}, d2 @ vpshufb %xmm1, %xmm0, %xmm0 # output permute + vtbl.8 d1, {q2}, d3 + +.Lschedule_mangle_last_dec: + sub r2, r2, #16 @ add $-16, %rdx + veor q0, q0, q12 @ vpxor .Lk_s63(%rip), %xmm0, %xmm0 + bl _vpaes_schedule_transform @ output transform + vst1.64 {q0}, [r2] @ vmovdqu %xmm0, (%rdx) # save last key + + @ cleanup + veor q0, q0, q0 @ vpxor %xmm0, %xmm0, %xmm0 + veor q1, q1, q1 @ vpxor %xmm1, %xmm1, %xmm1 + veor q2, q2, q2 @ vpxor %xmm2, %xmm2, %xmm2 + veor q3, q3, q3 @ vpxor %xmm3, %xmm3, %xmm3 + veor q4, q4, q4 @ vpxor %xmm4, %xmm4, %xmm4 + veor q5, q5, q5 @ vpxor %xmm5, %xmm5, %xmm5 + veor q6, q6, q6 @ vpxor %xmm6, %xmm6, %xmm6 + veor q7, q7, q7 @ vpxor %xmm7, %xmm7, %xmm7 + ldmia sp!, {r3,pc} @ return +.size _vpaes_schedule_core,.-_vpaes_schedule_core + +@@ +@@ .aes_schedule_192_smear +@@ +@@ Smear the short, low side in the 192-bit key schedule. +@@ +@@ Inputs: +@@ q7: high side, b a x y +@@ q6: low side, d c 0 0 +@@ +@@ Outputs: +@@ q6: b+c+d b+c 0 0 +@@ q0: b+c+d b+c b a +@@ +.type _vpaes_schedule_192_smear,%function +.align 4 +_vpaes_schedule_192_smear: + vmov.i8 q1, #0 + vdup.32 q0, d15[1] + vshl.i64 q1, q6, #32 @ vpshufd $0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0 + vmov d0, d15 @ vpshufd $0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a + veor q6, q6, q1 @ vpxor %xmm1, %xmm6, %xmm6 # -> c+d c 0 0 + veor q1, q1, q1 @ vpxor %xmm1, %xmm1, %xmm1 + veor q6, q6, q0 @ vpxor %xmm0, %xmm6, %xmm6 # -> b+c+d b+c b a + vmov q0, q6 @ vmovdqa %xmm6, %xmm0 + vmov d12, d2 @ vmovhlps %xmm1, %xmm6, %xmm6 # clobber low side with zeros + bx lr +.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear + +@@ +@@ .aes_schedule_round +@@ +@@ Runs one main round of the key schedule on q0, q7 +@@ +@@ Specifically, runs subbytes on the high dword of q0 +@@ then rotates it by one byte and xors into the low dword of +@@ q7. +@@ +@@ Adds rcon from low byte of q8, then rotates q8 for +@@ next rcon. +@@ +@@ Smears the dwords of q7 by xoring the low into the +@@ second low, result into third, result into highest. +@@ +@@ Returns results in q7 = q0. +@@ Clobbers q1-q4, r11. +@@ +.type _vpaes_schedule_round,%function +.align 4 +_vpaes_schedule_round: + @ extract rcon from xmm8 + vmov.i8 q4, #0 @ vpxor %xmm4, %xmm4, %xmm4 + vext.8 q1, q8, q4, #15 @ vpalignr $15, %xmm8, %xmm4, %xmm1 + vext.8 q8, q8, q8, #15 @ vpalignr $15, %xmm8, %xmm8, %xmm8 + veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7 + + @ rotate + vdup.32 q0, d1[1] @ vpshufd $0xFF, %xmm0, %xmm0 + vext.8 q0, q0, q0, #1 @ vpalignr $1, %xmm0, %xmm0, %xmm0 + + @ fall through... + + @ low round: same as high round, but no rotation and no rcon. +_vpaes_schedule_low_round: + @ The x86_64 version pins .Lk_sb1 in %xmm13 and .Lk_sb1+16 in %xmm12. + @ We pin other values in _vpaes_key_preheat, so load them now. + adr r11, .Lk_sb1 + vld1.64 {q14,q15}, [r11] + + @ smear xmm7 + vext.8 q1, q4, q7, #12 @ vpslldq $4, %xmm7, %xmm1 + veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7 + vext.8 q4, q4, q7, #8 @ vpslldq $8, %xmm7, %xmm4 + + @ subbytes + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 # 0 = k + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i + veor q7, q7, q4 @ vpxor %xmm4, %xmm7, %xmm7 + vtbl.8 d4, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + vtbl.8 d5, {q11}, d3 + veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j + vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + vtbl.8 d7, {q10}, d1 + veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + vtbl.8 d9, {q10}, d3 + veor q7, q7, q12 @ vpxor .Lk_s63(%rip), %xmm7, %xmm7 + vtbl.8 d6, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak + vtbl.8 d7, {q10}, d7 + veor q4, q4, q2 @ vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + vtbl.8 d4, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak + vtbl.8 d5, {q10}, d9 + veor q3, q3, q1 @ vpxor %xmm1, %xmm3, %xmm3 # 2 = io + veor q2, q2, q0 @ vpxor %xmm0, %xmm2, %xmm2 # 3 = jo + vtbl.8 d8, {q15}, d6 @ vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou + vtbl.8 d9, {q15}, d7 + vtbl.8 d2, {q14}, d4 @ vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t + vtbl.8 d3, {q14}, d5 + veor q1, q1, q4 @ vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output + + @ add in smeared stuff + veor q0, q1, q7 @ vpxor %xmm7, %xmm1, %xmm0 + veor q7, q1, q7 @ vmovdqa %xmm0, %xmm7 + bx lr +.size _vpaes_schedule_round,.-_vpaes_schedule_round + +@@ +@@ .aes_schedule_transform +@@ +@@ Linear-transform q0 according to tables at [r11] +@@ +@@ Requires that q9 = 0x0F0F... as in preheat +@@ Output in q0 +@@ Clobbers q1, q2, q14, q15 +@@ +.type _vpaes_schedule_transform,%function +.align 4 +_vpaes_schedule_transform: + vld1.64 {q14,q15}, [r11] @ vmovdqa (%r11), %xmm2 # lo + @ vmovdqa 16(%r11), %xmm1 # hi + vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 + vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 + vtbl.8 d4, {q14}, d2 @ vpshufb %xmm1, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d3 + vtbl.8 d0, {q15}, d0 @ vpshufb %xmm0, %xmm1, %xmm0 + vtbl.8 d1, {q15}, d1 + veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0 + bx lr +.size _vpaes_schedule_transform,.-_vpaes_schedule_transform + +@@ +@@ .aes_schedule_mangle +@@ +@@ Mangles q0 from (basis-transformed) standard version +@@ to our version. +@@ +@@ On encrypt, +@@ xor with 0x63 +@@ multiply by circulant 0,1,1,1 +@@ apply shiftrows transform +@@ +@@ On decrypt, +@@ xor with 0x63 +@@ multiply by "inverse mixcolumns" circulant E,B,D,9 +@@ deskew +@@ apply shiftrows transform +@@ +@@ +@@ Writes out to [r2], and increments or decrements it +@@ Keeps track of round number mod 4 in r8 +@@ Preserves q0 +@@ Clobbers q1-q5 +@@ +.type _vpaes_schedule_mangle,%function +.align 4 +_vpaes_schedule_mangle: + tst r3, r3 + vmov q4, q0 @ vmovdqa %xmm0, %xmm4 # save xmm0 for later + adr r11, .Lk_mc_forward @ Must be aligned to 8 mod 16. + vld1.64 {q5}, [r11] @ vmovdqa .Lk_mc_forward(%rip),%xmm5 + bne .Lschedule_mangle_dec + + @ encrypting + @ Write to q2 so we do not overlap table and destination below. + veor q2, q0, q12 @ vpxor .Lk_s63(%rip), %xmm0, %xmm4 + add r2, r2, #16 @ add $16, %rdx + vtbl.8 d8, {q2}, d10 @ vpshufb %xmm5, %xmm4, %xmm4 + vtbl.8 d9, {q2}, d11 + vtbl.8 d2, {q4}, d10 @ vpshufb %xmm5, %xmm4, %xmm1 + vtbl.8 d3, {q4}, d11 + vtbl.8 d6, {q1}, d10 @ vpshufb %xmm5, %xmm1, %xmm3 + vtbl.8 d7, {q1}, d11 + veor q4, q4, q1 @ vpxor %xmm1, %xmm4, %xmm4 + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1 + veor q3, q3, q4 @ vpxor %xmm4, %xmm3, %xmm3 + + b .Lschedule_mangle_both +.align 4 +.Lschedule_mangle_dec: + @ inverse mix columns + adr r11, .Lk_dksd @ lea .Lk_dksd(%rip),%r11 + vshr.u8 q1, q4, #4 @ vpsrlb $4, %xmm4, %xmm1 # 1 = hi + vand q4, q4, q9 @ vpand %xmm9, %xmm4, %xmm4 # 4 = lo + + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x00(%r11), %xmm2 + @ vmovdqa 0x10(%r11), %xmm3 + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q15}, d3 + @ Load .Lk_dksb ahead of time. + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x20(%r11), %xmm2 + @ vmovdqa 0x30(%r11), %xmm3 + @ Write to q13 so we do not overlap table and destination. + veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 + vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3 + vtbl.8 d7, {q13}, d11 + + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2 + vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q15}, d3 + @ Load .Lk_dkse ahead of time. + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x40(%r11), %xmm2 + @ vmovdqa 0x50(%r11), %xmm3 + @ Write to q13 so we do not overlap table and destination. + veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 + vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3 + vtbl.8 d7, {q13}, d11 + + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2 + vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d7, {q15}, d3 + @ Load .Lk_dkse ahead of time. + vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x60(%r11), %xmm2 + @ vmovdqa 0x70(%r11), %xmm4 + @ Write to q13 so we do not overlap table and destination. + veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 + + vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2 + vtbl.8 d5, {q14}, d9 + vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3 + vtbl.8 d7, {q13}, d11 + vtbl.8 d8, {q15}, d2 @ vpshufb %xmm1, %xmm4, %xmm4 + vtbl.8 d9, {q15}, d3 + vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1 + veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2 + veor q3, q4, q2 @ vpxor %xmm2, %xmm4, %xmm3 + + sub r2, r2, #16 @ add $-16, %rdx + +.Lschedule_mangle_both: + @ Write to q2 so table and destination do not overlap. + vtbl.8 d4, {q3}, d2 @ vpshufb %xmm1, %xmm3, %xmm3 + vtbl.8 d5, {q3}, d3 + add r8, r8, #64-16 @ add $-16, %r8 + and r8, r8, #~(1<<6) @ and $0x30, %r8 + vst1.64 {q2}, [r2] @ vmovdqu %xmm3, (%rdx) + bx lr +.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle + +.globl vpaes_set_encrypt_key +.hidden vpaes_set_encrypt_key +.type vpaes_set_encrypt_key,%function +.align 4 +vpaes_set_encrypt_key: + stmdb sp!, {r7,r8,r9,r10,r11, lr} + vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + + lsr r9, r1, #5 @ shr $5,%eax + add r9, r9, #5 @ $5,%eax + str r9, [r2,#240] @ mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + + mov r3, #0 @ mov $0,%ecx + mov r8, #0x30 @ mov $0x30,%r8d + bl _vpaes_schedule_core + eor r0, r0, r0 + + vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return +.size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key + +.globl vpaes_set_decrypt_key +.hidden vpaes_set_decrypt_key +.type vpaes_set_decrypt_key,%function +.align 4 +vpaes_set_decrypt_key: + stmdb sp!, {r7,r8,r9,r10,r11, lr} + vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + + lsr r9, r1, #5 @ shr $5,%eax + add r9, r9, #5 @ $5,%eax + str r9, [r2,#240] @ mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + lsl r9, r9, #4 @ shl $4,%eax + add r2, r2, #16 @ lea 16(%rdx,%rax),%rdx + add r2, r2, r9 + + mov r3, #1 @ mov $1,%ecx + lsr r8, r1, #1 @ shr $1,%r8d + and r8, r8, #32 @ and $32,%r8d + eor r8, r8, #32 @ xor $32,%r8d # nbits==192?0:32 + bl _vpaes_schedule_core + + vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return +.size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key + +@ Additional constants for converting to bsaes. +.type _vpaes_convert_consts,%object +.align 4 +_vpaes_convert_consts: +@ .Lk_opt_then_skew applies skew(opt(x)) XOR 0x63, where skew is the linear +@ transform in the AES S-box. 0x63 is incorporated into the low half of the +@ table. This was computed with the following script: +@ +@ def u64s_to_u128(x, y): +@ return x | (y << 64) +@ def u128_to_u64s(w): +@ return w & ((1<<64)-1), w >> 64 +@ def get_byte(w, i): +@ return (w >> (i*8)) & 0xff +@ def apply_table(table, b): +@ lo = b & 0xf +@ hi = b >> 4 +@ return get_byte(table[0], lo) ^ get_byte(table[1], hi) +@ def opt(b): +@ table = [ +@ u64s_to_u128(0xFF9F4929D6B66000, 0xF7974121DEBE6808), +@ u64s_to_u128(0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0), +@ ] +@ return apply_table(table, b) +@ def rot_byte(b, n): +@ return 0xff & ((b << n) | (b >> (8-n))) +@ def skew(x): +@ return (x ^ rot_byte(x, 1) ^ rot_byte(x, 2) ^ rot_byte(x, 3) ^ +@ rot_byte(x, 4)) +@ table = [0, 0] +@ for i in range(16): +@ table[0] |= (skew(opt(i)) ^ 0x63) << (i*8) +@ table[1] |= skew(opt(i<<4)) << (i*8) +@ print(" .quad 0x%016x, 0x%016x" % u128_to_u64s(table[0])) +@ print(" .quad 0x%016x, 0x%016x" % u128_to_u64s(table[1])) +.Lk_opt_then_skew: +.quad 0x9cb8436798bc4763, 0x6440bb9f6044bf9b +.quad 0x1f30062936192f00, 0xb49bad829db284ab + +@ .Lk_decrypt_transform is a permutation which performs an 8-bit left-rotation +@ followed by a byte-swap on each 32-bit word of a vector. E.g., 0x11223344 +@ becomes 0x22334411 and then 0x11443322. +.Lk_decrypt_transform: +.quad 0x0704050603000102, 0x0f0c0d0e0b08090a +.size _vpaes_convert_consts,.-_vpaes_convert_consts + +@ void vpaes_encrypt_key_to_bsaes(AES_KEY *bsaes, const AES_KEY *vpaes); +.globl vpaes_encrypt_key_to_bsaes +.hidden vpaes_encrypt_key_to_bsaes +.type vpaes_encrypt_key_to_bsaes,%function +.align 4 +vpaes_encrypt_key_to_bsaes: + stmdb sp!, {r11, lr} + + @ See _vpaes_schedule_core for the key schedule logic. In particular, + @ _vpaes_schedule_transform(.Lk_ipt) (section 2.2 of the paper), + @ _vpaes_schedule_mangle (section 4.3), and .Lschedule_mangle_last + @ contain the transformations not in the bsaes representation. This + @ function inverts those transforms. + @ + @ Note also that bsaes-armv7.pl expects aes-armv4.pl's key + @ representation, which does not match the other aes_nohw_* + @ implementations. The ARM aes_nohw_* stores each 32-bit word + @ byteswapped, as a convenience for (unsupported) big-endian ARM, at the + @ cost of extra REV and VREV32 operations in little-endian ARM. + + vmov.i8 q9, #0x0f @ Required by _vpaes_schedule_transform + adr r2, .Lk_mc_forward @ Must be aligned to 8 mod 16. + add r3, r2, 0x90 @ .Lk_sr+0x10-.Lk_mc_forward = 0x90 (Apple's toolchain doesn't support the expression) + + vld1.64 {q12}, [r2] + vmov.i8 q10, #0x5b @ .Lk_s63 from vpaes-x86_64 + adr r11, .Lk_opt @ Must be aligned to 8 mod 16. + vmov.i8 q11, #0x63 @ .LK_s63 without .Lk_ipt applied + + @ vpaes stores one fewer round count than bsaes, but the number of keys + @ is the same. + ldr r2, [r1,#240] + add r2, r2, #1 + str r2, [r0,#240] + + @ The first key is transformed with _vpaes_schedule_transform(.Lk_ipt). + @ Invert this with .Lk_opt. + vld1.64 {q0}, [r1]! + bl _vpaes_schedule_transform + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + + @ The middle keys have _vpaes_schedule_transform(.Lk_ipt) applied, + @ followed by _vpaes_schedule_mangle. _vpaes_schedule_mangle XORs 0x63, + @ multiplies by the circulant 0,1,1,1, then applies ShiftRows. +.Loop_enc_key_to_bsaes: + vld1.64 {q0}, [r1]! + + @ Invert the ShiftRows step (see .Lschedule_mangle_both). Note we cycle + @ r3 in the opposite direction and start at .Lk_sr+0x10 instead of 0x30. + @ We use r3 rather than r8 to avoid a callee-saved register. + vld1.64 {q1}, [r3] + vtbl.8 d4, {q0}, d2 + vtbl.8 d5, {q0}, d3 + add r3, r3, #16 + and r3, r3, #~(1<<6) + vmov q0, q2 + + @ Handle the last key differently. + subs r2, r2, #1 + beq .Loop_enc_key_to_bsaes_last + + @ Multiply by the circulant. This is its own inverse. + vtbl.8 d2, {q0}, d24 + vtbl.8 d3, {q0}, d25 + vmov q0, q1 + vtbl.8 d4, {q1}, d24 + vtbl.8 d5, {q1}, d25 + veor q0, q0, q2 + vtbl.8 d2, {q2}, d24 + vtbl.8 d3, {q2}, d25 + veor q0, q0, q1 + + @ XOR and finish. + veor q0, q0, q10 + bl _vpaes_schedule_transform + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + b .Loop_enc_key_to_bsaes + +.Loop_enc_key_to_bsaes_last: + @ The final key does not have a basis transform (note + @ .Lschedule_mangle_last inverts the original transform). It only XORs + @ 0x63 and applies ShiftRows. The latter was already inverted in the + @ loop. Note that, because we act on the original representation, we use + @ q11, not q10. + veor q0, q0, q11 + vrev32.8 q0, q0 + vst1.64 {q0}, [r0] + + @ Wipe registers which contained key material. + veor q0, q0, q0 + veor q1, q1, q1 + veor q2, q2, q2 + + ldmia sp!, {r11, pc} @ return +.size vpaes_encrypt_key_to_bsaes,.-vpaes_encrypt_key_to_bsaes + +@ void vpaes_decrypt_key_to_bsaes(AES_KEY *vpaes, const AES_KEY *bsaes); +.globl vpaes_decrypt_key_to_bsaes +.hidden vpaes_decrypt_key_to_bsaes +.type vpaes_decrypt_key_to_bsaes,%function +.align 4 +vpaes_decrypt_key_to_bsaes: + stmdb sp!, {r11, lr} + + @ See _vpaes_schedule_core for the key schedule logic. Note vpaes + @ computes the decryption key schedule in reverse. Additionally, + @ aes-x86_64.pl shares some transformations, so we must only partially + @ invert vpaes's transformations. In general, vpaes computes in a + @ different basis (.Lk_ipt and .Lk_opt) and applies the inverses of + @ MixColumns, ShiftRows, and the affine part of the AES S-box (which is + @ split into a linear skew and XOR of 0x63). We undo all but MixColumns. + @ + @ Note also that bsaes-armv7.pl expects aes-armv4.pl's key + @ representation, which does not match the other aes_nohw_* + @ implementations. The ARM aes_nohw_* stores each 32-bit word + @ byteswapped, as a convenience for (unsupported) big-endian ARM, at the + @ cost of extra REV and VREV32 operations in little-endian ARM. + + adr r2, .Lk_decrypt_transform + adr r3, .Lk_sr+0x30 + adr r11, .Lk_opt_then_skew @ Input to _vpaes_schedule_transform. + vld1.64 {q12}, [r2] @ Reuse q12 from encryption. + vmov.i8 q9, #0x0f @ Required by _vpaes_schedule_transform + + @ vpaes stores one fewer round count than bsaes, but the number of keys + @ is the same. + ldr r2, [r1,#240] + add r2, r2, #1 + str r2, [r0,#240] + + @ Undo the basis change and reapply the S-box affine transform. See + @ .Lschedule_mangle_last. + vld1.64 {q0}, [r1]! + bl _vpaes_schedule_transform + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + + @ See _vpaes_schedule_mangle for the transform on the middle keys. Note + @ it simultaneously inverts MixColumns and the S-box affine transform. + @ See .Lk_dksd through .Lk_dks9. +.Loop_dec_key_to_bsaes: + vld1.64 {q0}, [r1]! + + @ Invert the ShiftRows step (see .Lschedule_mangle_both). Note going + @ forwards cancels inverting for which direction we cycle r3. We use r3 + @ rather than r8 to avoid a callee-saved register. + vld1.64 {q1}, [r3] + vtbl.8 d4, {q0}, d2 + vtbl.8 d5, {q0}, d3 + add r3, r3, #64-16 + and r3, r3, #~(1<<6) + vmov q0, q2 + + @ Handle the last key differently. + subs r2, r2, #1 + beq .Loop_dec_key_to_bsaes_last + + @ Undo the basis change and reapply the S-box affine transform. + bl _vpaes_schedule_transform + + @ Rotate each word by 8 bytes (cycle the rows) and then byte-swap. We + @ combine the two operations in .Lk_decrypt_transform. + @ + @ TODO(davidben): Where does the rotation come from? + vtbl.8 d2, {q0}, d24 + vtbl.8 d3, {q0}, d25 + + vst1.64 {q1}, [r0]! + b .Loop_dec_key_to_bsaes + +.Loop_dec_key_to_bsaes_last: + @ The final key only inverts ShiftRows (already done in the loop). See + @ .Lschedule_am_decrypting. Its basis is not transformed. + vrev32.8 q0, q0 + vst1.64 {q0}, [r0]! + + @ Wipe registers which contained key material. + veor q0, q0, q0 + veor q1, q1, q1 + veor q2, q2, q2 + + ldmia sp!, {r11, pc} @ return +.size vpaes_decrypt_key_to_bsaes,.-vpaes_decrypt_key_to_bsaes +.globl vpaes_ctr32_encrypt_blocks +.hidden vpaes_ctr32_encrypt_blocks +.type vpaes_ctr32_encrypt_blocks,%function +.align 4 +vpaes_ctr32_encrypt_blocks: + mov ip, sp + stmdb sp!, {r7,r8,r9,r10,r11, lr} + @ This function uses q4-q7 (d8-d15), which are callee-saved. + vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + + cmp r2, #0 + @ r8 is passed on the stack. + ldr r8, [ip] + beq .Lctr32_done + + @ _vpaes_encrypt_core expects the key in r2, so swap r2 and r3. + mov r9, r3 + mov r3, r2 + mov r2, r9 + + @ Load the IV and counter portion. + ldr r7, [r8, #12] + vld1.8 {q7}, [r8] + + bl _vpaes_preheat + rev r7, r7 @ The counter is big-endian. + +.Lctr32_loop: + vmov q0, q7 + vld1.8 {q6}, [r0]! @ .Load input ahead of time + bl _vpaes_encrypt_core + veor q0, q0, q6 @ XOR input and result + vst1.8 {q0}, [r1]! + subs r3, r3, #1 + @ Update the counter. + add r7, r7, #1 + rev r9, r7 + vmov.32 d15[1], r9 + bne .Lctr32_loop + +.Lctr32_done: + vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15} + ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return +.size vpaes_ctr32_encrypt_blocks,.-vpaes_ctr32_encrypt_blocks +#endif +#endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-arm/crypto/test/trampoline-armv4.S b/contrib/boringssl-cmake/linux-arm/crypto/test/trampoline-armv4.S index e526e993144..9a73ba826a1 100644 --- a/contrib/boringssl-cmake/linux-arm/crypto/test/trampoline-armv4.S +++ b/contrib/boringssl-cmake/linux-arm/crypto/test/trampoline-armv4.S @@ -31,7 +31,6 @@ .hidden abi_test_trampoline .align 4 abi_test_trampoline: -.Labi_test_trampoline_begin: @ Save parameters and all callee-saved registers. For convenience, we @ save r9 on iOS even though it's volatile. vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15} @@ -377,3 +376,4 @@ abi_test_clobber_d15: .size abi_test_clobber_d15,.-abi_test_clobber_d15 #endif #endif // !OPENSSL_NO_ASM +.section .note.GNU-stack,"",%progbits diff --git a/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S b/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S index 911d6383acd..86b06fc2ef0 100644 --- a/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S +++ b/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S @@ -3667,3 +3667,4 @@ _aesp8_xts_dec5x: .long 0 .byte 0,12,0x14,0,0,0,0,0 #endif // !OPENSSL_NO_ASM && __powerpc64__ +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S b/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S index 88a8a254c11..5b909a38d3e 100644 --- a/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S +++ b/contrib/boringssl-cmake/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S @@ -584,3 +584,4 @@ gcm_ghash_p8: .align 2 .align 2 #endif // !OPENSSL_NO_ASM && __powerpc64__ +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-ppc64le/crypto/test/trampoline-ppc.S b/contrib/boringssl-cmake/linux-ppc64le/crypto/test/trampoline-ppc.S new file mode 100644 index 00000000000..7271090cab0 --- /dev/null +++ b/contrib/boringssl-cmake/linux-ppc64le/crypto/test/trampoline-ppc.S @@ -0,0 +1,1410 @@ +# This file is generated from a similarly-named Perl script in the BoringSSL +# source tree. Do not edit by hand. + +#if defined(__has_feature) +#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) +#define OPENSSL_NO_ASM +#endif +#endif + +#if !defined(OPENSSL_NO_ASM) && defined(__powerpc64__) +.machine "any" +.abiversion 2 +.text + + + + + + + +.globl abi_test_trampoline +.type abi_test_trampoline,@function +.align 5 +abi_test_trampoline: +.localentry abi_test_trampoline,0 + + + mflr 0 + std 0, 16(1) + + + + + + + + + + + + + + + + + + + + stdu 1, -528(1) + + mfcr 0 + std 0, 8(1) + std 2, 24(1) + std 4, 32(1) + li 11, 48 + stvx 20, 11, 1 + li 11, 64 + stvx 21, 11, 1 + li 11, 80 + stvx 22, 11, 1 + li 11, 96 + stvx 23, 11, 1 + li 11, 112 + stvx 24, 11, 1 + li 11, 128 + stvx 25, 11, 1 + li 11, 144 + stvx 26, 11, 1 + li 11, 160 + stvx 27, 11, 1 + li 11, 176 + stvx 28, 11, 1 + li 11, 192 + stvx 29, 11, 1 + li 11, 208 + stvx 30, 11, 1 + li 11, 224 + stvx 31, 11, 1 + std 14, 240(1) + std 15, 248(1) + std 16, 256(1) + std 17, 264(1) + std 18, 272(1) + std 19, 280(1) + std 20, 288(1) + std 21, 296(1) + std 22, 304(1) + std 23, 312(1) + std 24, 320(1) + std 25, 328(1) + std 26, 336(1) + std 27, 344(1) + std 28, 352(1) + std 29, 360(1) + std 30, 368(1) + std 31, 376(1) + stfd 14, 384(1) + stfd 15, 392(1) + stfd 16, 400(1) + stfd 17, 408(1) + stfd 18, 416(1) + stfd 19, 424(1) + stfd 20, 432(1) + stfd 21, 440(1) + stfd 22, 448(1) + stfd 23, 456(1) + stfd 24, 464(1) + stfd 25, 472(1) + stfd 26, 480(1) + stfd 27, 488(1) + stfd 28, 496(1) + stfd 29, 504(1) + stfd 30, 512(1) + stfd 31, 520(1) + li 11, 0 + lvx 20, 11, 4 + li 11, 16 + lvx 21, 11, 4 + li 11, 32 + lvx 22, 11, 4 + li 11, 48 + lvx 23, 11, 4 + li 11, 64 + lvx 24, 11, 4 + li 11, 80 + lvx 25, 11, 4 + li 11, 96 + lvx 26, 11, 4 + li 11, 112 + lvx 27, 11, 4 + li 11, 128 + lvx 28, 11, 4 + li 11, 144 + lvx 29, 11, 4 + li 11, 160 + lvx 30, 11, 4 + li 11, 176 + lvx 31, 11, 4 + ld 14, 192(4) + ld 15, 200(4) + ld 16, 208(4) + ld 17, 216(4) + ld 18, 224(4) + ld 19, 232(4) + ld 20, 240(4) + ld 21, 248(4) + ld 22, 256(4) + ld 23, 264(4) + ld 24, 272(4) + ld 25, 280(4) + ld 26, 288(4) + ld 27, 296(4) + ld 28, 304(4) + ld 29, 312(4) + ld 30, 320(4) + ld 31, 328(4) + lfd 14, 336(4) + lfd 15, 344(4) + lfd 16, 352(4) + lfd 17, 360(4) + lfd 18, 368(4) + lfd 19, 376(4) + lfd 20, 384(4) + lfd 21, 392(4) + lfd 22, 400(4) + lfd 23, 408(4) + lfd 24, 416(4) + lfd 25, 424(4) + lfd 26, 432(4) + lfd 27, 440(4) + lfd 28, 448(4) + lfd 29, 456(4) + lfd 30, 464(4) + lfd 31, 472(4) + + ld 0, 480(4) + mtcr 0 + + + addi 11, 5, -8 + mr 12, 3 + + + cmpdi 6, 0 + beq .Largs_done + mtctr 6 + ldu 3, 8(11) + bdz .Largs_done + ldu 4, 8(11) + bdz .Largs_done + ldu 5, 8(11) + bdz .Largs_done + ldu 6, 8(11) + bdz .Largs_done + ldu 7, 8(11) + bdz .Largs_done + ldu 8, 8(11) + bdz .Largs_done + ldu 9, 8(11) + bdz .Largs_done + ldu 10, 8(11) + +.Largs_done: + li 2, 0 + mtctr 12 + bctrl + ld 2, 24(1) + + ld 4, 32(1) + li 11, 0 + stvx 20, 11, 4 + li 11, 16 + stvx 21, 11, 4 + li 11, 32 + stvx 22, 11, 4 + li 11, 48 + stvx 23, 11, 4 + li 11, 64 + stvx 24, 11, 4 + li 11, 80 + stvx 25, 11, 4 + li 11, 96 + stvx 26, 11, 4 + li 11, 112 + stvx 27, 11, 4 + li 11, 128 + stvx 28, 11, 4 + li 11, 144 + stvx 29, 11, 4 + li 11, 160 + stvx 30, 11, 4 + li 11, 176 + stvx 31, 11, 4 + std 14, 192(4) + std 15, 200(4) + std 16, 208(4) + std 17, 216(4) + std 18, 224(4) + std 19, 232(4) + std 20, 240(4) + std 21, 248(4) + std 22, 256(4) + std 23, 264(4) + std 24, 272(4) + std 25, 280(4) + std 26, 288(4) + std 27, 296(4) + std 28, 304(4) + std 29, 312(4) + std 30, 320(4) + std 31, 328(4) + stfd 14, 336(4) + stfd 15, 344(4) + stfd 16, 352(4) + stfd 17, 360(4) + stfd 18, 368(4) + stfd 19, 376(4) + stfd 20, 384(4) + stfd 21, 392(4) + stfd 22, 400(4) + stfd 23, 408(4) + stfd 24, 416(4) + stfd 25, 424(4) + stfd 26, 432(4) + stfd 27, 440(4) + stfd 28, 448(4) + stfd 29, 456(4) + stfd 30, 464(4) + stfd 31, 472(4) + li 11, 48 + lvx 20, 11, 1 + li 11, 64 + lvx 21, 11, 1 + li 11, 80 + lvx 22, 11, 1 + li 11, 96 + lvx 23, 11, 1 + li 11, 112 + lvx 24, 11, 1 + li 11, 128 + lvx 25, 11, 1 + li 11, 144 + lvx 26, 11, 1 + li 11, 160 + lvx 27, 11, 1 + li 11, 176 + lvx 28, 11, 1 + li 11, 192 + lvx 29, 11, 1 + li 11, 208 + lvx 30, 11, 1 + li 11, 224 + lvx 31, 11, 1 + ld 14, 240(1) + ld 15, 248(1) + ld 16, 256(1) + ld 17, 264(1) + ld 18, 272(1) + ld 19, 280(1) + ld 20, 288(1) + ld 21, 296(1) + ld 22, 304(1) + ld 23, 312(1) + ld 24, 320(1) + ld 25, 328(1) + ld 26, 336(1) + ld 27, 344(1) + ld 28, 352(1) + ld 29, 360(1) + ld 30, 368(1) + ld 31, 376(1) + lfd 14, 384(1) + lfd 15, 392(1) + lfd 16, 400(1) + lfd 17, 408(1) + lfd 18, 416(1) + lfd 19, 424(1) + lfd 20, 432(1) + lfd 21, 440(1) + lfd 22, 448(1) + lfd 23, 456(1) + lfd 24, 464(1) + lfd 25, 472(1) + lfd 26, 480(1) + lfd 27, 488(1) + lfd 28, 496(1) + lfd 29, 504(1) + lfd 30, 512(1) + lfd 31, 520(1) + mfcr 0 + std 0, 480(4) + ld 0, 8(1) + mtcrf 0b00111000, 0 + addi 1, 1, 528 + ld 0, 16(1) + mtlr 0 + blr +.size abi_test_trampoline,.-abi_test_trampoline +.globl abi_test_clobber_r0 +.type abi_test_clobber_r0,@function +.align 5 +abi_test_clobber_r0: +.localentry abi_test_clobber_r0,0 + + li 0, 0 + blr +.size abi_test_clobber_r0,.-abi_test_clobber_r0 +.globl abi_test_clobber_r2 +.type abi_test_clobber_r2,@function +.align 5 +abi_test_clobber_r2: +.localentry abi_test_clobber_r2,0 + + li 2, 0 + blr +.size abi_test_clobber_r2,.-abi_test_clobber_r2 +.globl abi_test_clobber_r3 +.type abi_test_clobber_r3,@function +.align 5 +abi_test_clobber_r3: +.localentry abi_test_clobber_r3,0 + + li 3, 0 + blr +.size abi_test_clobber_r3,.-abi_test_clobber_r3 +.globl abi_test_clobber_r4 +.type abi_test_clobber_r4,@function +.align 5 +abi_test_clobber_r4: +.localentry abi_test_clobber_r4,0 + + li 4, 0 + blr +.size abi_test_clobber_r4,.-abi_test_clobber_r4 +.globl abi_test_clobber_r5 +.type abi_test_clobber_r5,@function +.align 5 +abi_test_clobber_r5: +.localentry abi_test_clobber_r5,0 + + li 5, 0 + blr +.size abi_test_clobber_r5,.-abi_test_clobber_r5 +.globl abi_test_clobber_r6 +.type abi_test_clobber_r6,@function +.align 5 +abi_test_clobber_r6: +.localentry abi_test_clobber_r6,0 + + li 6, 0 + blr +.size abi_test_clobber_r6,.-abi_test_clobber_r6 +.globl abi_test_clobber_r7 +.type abi_test_clobber_r7,@function +.align 5 +abi_test_clobber_r7: +.localentry abi_test_clobber_r7,0 + + li 7, 0 + blr +.size abi_test_clobber_r7,.-abi_test_clobber_r7 +.globl abi_test_clobber_r8 +.type abi_test_clobber_r8,@function +.align 5 +abi_test_clobber_r8: +.localentry abi_test_clobber_r8,0 + + li 8, 0 + blr +.size abi_test_clobber_r8,.-abi_test_clobber_r8 +.globl abi_test_clobber_r9 +.type abi_test_clobber_r9,@function +.align 5 +abi_test_clobber_r9: +.localentry abi_test_clobber_r9,0 + + li 9, 0 + blr +.size abi_test_clobber_r9,.-abi_test_clobber_r9 +.globl abi_test_clobber_r10 +.type abi_test_clobber_r10,@function +.align 5 +abi_test_clobber_r10: +.localentry abi_test_clobber_r10,0 + + li 10, 0 + blr +.size abi_test_clobber_r10,.-abi_test_clobber_r10 +.globl abi_test_clobber_r11 +.type abi_test_clobber_r11,@function +.align 5 +abi_test_clobber_r11: +.localentry abi_test_clobber_r11,0 + + li 11, 0 + blr +.size abi_test_clobber_r11,.-abi_test_clobber_r11 +.globl abi_test_clobber_r12 +.type abi_test_clobber_r12,@function +.align 5 +abi_test_clobber_r12: +.localentry abi_test_clobber_r12,0 + + li 12, 0 + blr +.size abi_test_clobber_r12,.-abi_test_clobber_r12 +.globl abi_test_clobber_r14 +.type abi_test_clobber_r14,@function +.align 5 +abi_test_clobber_r14: +.localentry abi_test_clobber_r14,0 + + li 14, 0 + blr +.size abi_test_clobber_r14,.-abi_test_clobber_r14 +.globl abi_test_clobber_r15 +.type abi_test_clobber_r15,@function +.align 5 +abi_test_clobber_r15: +.localentry abi_test_clobber_r15,0 + + li 15, 0 + blr +.size abi_test_clobber_r15,.-abi_test_clobber_r15 +.globl abi_test_clobber_r16 +.type abi_test_clobber_r16,@function +.align 5 +abi_test_clobber_r16: +.localentry abi_test_clobber_r16,0 + + li 16, 0 + blr +.size abi_test_clobber_r16,.-abi_test_clobber_r16 +.globl abi_test_clobber_r17 +.type abi_test_clobber_r17,@function +.align 5 +abi_test_clobber_r17: +.localentry abi_test_clobber_r17,0 + + li 17, 0 + blr +.size abi_test_clobber_r17,.-abi_test_clobber_r17 +.globl abi_test_clobber_r18 +.type abi_test_clobber_r18,@function +.align 5 +abi_test_clobber_r18: +.localentry abi_test_clobber_r18,0 + + li 18, 0 + blr +.size abi_test_clobber_r18,.-abi_test_clobber_r18 +.globl abi_test_clobber_r19 +.type abi_test_clobber_r19,@function +.align 5 +abi_test_clobber_r19: +.localentry abi_test_clobber_r19,0 + + li 19, 0 + blr +.size abi_test_clobber_r19,.-abi_test_clobber_r19 +.globl abi_test_clobber_r20 +.type abi_test_clobber_r20,@function +.align 5 +abi_test_clobber_r20: +.localentry abi_test_clobber_r20,0 + + li 20, 0 + blr +.size abi_test_clobber_r20,.-abi_test_clobber_r20 +.globl abi_test_clobber_r21 +.type abi_test_clobber_r21,@function +.align 5 +abi_test_clobber_r21: +.localentry abi_test_clobber_r21,0 + + li 21, 0 + blr +.size abi_test_clobber_r21,.-abi_test_clobber_r21 +.globl abi_test_clobber_r22 +.type abi_test_clobber_r22,@function +.align 5 +abi_test_clobber_r22: +.localentry abi_test_clobber_r22,0 + + li 22, 0 + blr +.size abi_test_clobber_r22,.-abi_test_clobber_r22 +.globl abi_test_clobber_r23 +.type abi_test_clobber_r23,@function +.align 5 +abi_test_clobber_r23: +.localentry abi_test_clobber_r23,0 + + li 23, 0 + blr +.size abi_test_clobber_r23,.-abi_test_clobber_r23 +.globl abi_test_clobber_r24 +.type abi_test_clobber_r24,@function +.align 5 +abi_test_clobber_r24: +.localentry abi_test_clobber_r24,0 + + li 24, 0 + blr +.size abi_test_clobber_r24,.-abi_test_clobber_r24 +.globl abi_test_clobber_r25 +.type abi_test_clobber_r25,@function +.align 5 +abi_test_clobber_r25: +.localentry abi_test_clobber_r25,0 + + li 25, 0 + blr +.size abi_test_clobber_r25,.-abi_test_clobber_r25 +.globl abi_test_clobber_r26 +.type abi_test_clobber_r26,@function +.align 5 +abi_test_clobber_r26: +.localentry abi_test_clobber_r26,0 + + li 26, 0 + blr +.size abi_test_clobber_r26,.-abi_test_clobber_r26 +.globl abi_test_clobber_r27 +.type abi_test_clobber_r27,@function +.align 5 +abi_test_clobber_r27: +.localentry abi_test_clobber_r27,0 + + li 27, 0 + blr +.size abi_test_clobber_r27,.-abi_test_clobber_r27 +.globl abi_test_clobber_r28 +.type abi_test_clobber_r28,@function +.align 5 +abi_test_clobber_r28: +.localentry abi_test_clobber_r28,0 + + li 28, 0 + blr +.size abi_test_clobber_r28,.-abi_test_clobber_r28 +.globl abi_test_clobber_r29 +.type abi_test_clobber_r29,@function +.align 5 +abi_test_clobber_r29: +.localentry abi_test_clobber_r29,0 + + li 29, 0 + blr +.size abi_test_clobber_r29,.-abi_test_clobber_r29 +.globl abi_test_clobber_r30 +.type abi_test_clobber_r30,@function +.align 5 +abi_test_clobber_r30: +.localentry abi_test_clobber_r30,0 + + li 30, 0 + blr +.size abi_test_clobber_r30,.-abi_test_clobber_r30 +.globl abi_test_clobber_r31 +.type abi_test_clobber_r31,@function +.align 5 +abi_test_clobber_r31: +.localentry abi_test_clobber_r31,0 + + li 31, 0 + blr +.size abi_test_clobber_r31,.-abi_test_clobber_r31 +.globl abi_test_clobber_f0 +.type abi_test_clobber_f0,@function +.align 4 +abi_test_clobber_f0: +.localentry abi_test_clobber_f0,0 + + li 0, 0 + + std 0, -8(1) + lfd 0, -8(1) + blr +.size abi_test_clobber_f0,.-abi_test_clobber_f0 +.globl abi_test_clobber_f1 +.type abi_test_clobber_f1,@function +.align 4 +abi_test_clobber_f1: +.localentry abi_test_clobber_f1,0 + + li 0, 0 + + std 0, -8(1) + lfd 1, -8(1) + blr +.size abi_test_clobber_f1,.-abi_test_clobber_f1 +.globl abi_test_clobber_f2 +.type abi_test_clobber_f2,@function +.align 4 +abi_test_clobber_f2: +.localentry abi_test_clobber_f2,0 + + li 0, 0 + + std 0, -8(1) + lfd 2, -8(1) + blr +.size abi_test_clobber_f2,.-abi_test_clobber_f2 +.globl abi_test_clobber_f3 +.type abi_test_clobber_f3,@function +.align 4 +abi_test_clobber_f3: +.localentry abi_test_clobber_f3,0 + + li 0, 0 + + std 0, -8(1) + lfd 3, -8(1) + blr +.size abi_test_clobber_f3,.-abi_test_clobber_f3 +.globl abi_test_clobber_f4 +.type abi_test_clobber_f4,@function +.align 4 +abi_test_clobber_f4: +.localentry abi_test_clobber_f4,0 + + li 0, 0 + + std 0, -8(1) + lfd 4, -8(1) + blr +.size abi_test_clobber_f4,.-abi_test_clobber_f4 +.globl abi_test_clobber_f5 +.type abi_test_clobber_f5,@function +.align 4 +abi_test_clobber_f5: +.localentry abi_test_clobber_f5,0 + + li 0, 0 + + std 0, -8(1) + lfd 5, -8(1) + blr +.size abi_test_clobber_f5,.-abi_test_clobber_f5 +.globl abi_test_clobber_f6 +.type abi_test_clobber_f6,@function +.align 4 +abi_test_clobber_f6: +.localentry abi_test_clobber_f6,0 + + li 0, 0 + + std 0, -8(1) + lfd 6, -8(1) + blr +.size abi_test_clobber_f6,.-abi_test_clobber_f6 +.globl abi_test_clobber_f7 +.type abi_test_clobber_f7,@function +.align 4 +abi_test_clobber_f7: +.localentry abi_test_clobber_f7,0 + + li 0, 0 + + std 0, -8(1) + lfd 7, -8(1) + blr +.size abi_test_clobber_f7,.-abi_test_clobber_f7 +.globl abi_test_clobber_f8 +.type abi_test_clobber_f8,@function +.align 4 +abi_test_clobber_f8: +.localentry abi_test_clobber_f8,0 + + li 0, 0 + + std 0, -8(1) + lfd 8, -8(1) + blr +.size abi_test_clobber_f8,.-abi_test_clobber_f8 +.globl abi_test_clobber_f9 +.type abi_test_clobber_f9,@function +.align 4 +abi_test_clobber_f9: +.localentry abi_test_clobber_f9,0 + + li 0, 0 + + std 0, -8(1) + lfd 9, -8(1) + blr +.size abi_test_clobber_f9,.-abi_test_clobber_f9 +.globl abi_test_clobber_f10 +.type abi_test_clobber_f10,@function +.align 4 +abi_test_clobber_f10: +.localentry abi_test_clobber_f10,0 + + li 0, 0 + + std 0, -8(1) + lfd 10, -8(1) + blr +.size abi_test_clobber_f10,.-abi_test_clobber_f10 +.globl abi_test_clobber_f11 +.type abi_test_clobber_f11,@function +.align 4 +abi_test_clobber_f11: +.localentry abi_test_clobber_f11,0 + + li 0, 0 + + std 0, -8(1) + lfd 11, -8(1) + blr +.size abi_test_clobber_f11,.-abi_test_clobber_f11 +.globl abi_test_clobber_f12 +.type abi_test_clobber_f12,@function +.align 4 +abi_test_clobber_f12: +.localentry abi_test_clobber_f12,0 + + li 0, 0 + + std 0, -8(1) + lfd 12, -8(1) + blr +.size abi_test_clobber_f12,.-abi_test_clobber_f12 +.globl abi_test_clobber_f13 +.type abi_test_clobber_f13,@function +.align 4 +abi_test_clobber_f13: +.localentry abi_test_clobber_f13,0 + + li 0, 0 + + std 0, -8(1) + lfd 13, -8(1) + blr +.size abi_test_clobber_f13,.-abi_test_clobber_f13 +.globl abi_test_clobber_f14 +.type abi_test_clobber_f14,@function +.align 4 +abi_test_clobber_f14: +.localentry abi_test_clobber_f14,0 + + li 0, 0 + + std 0, -8(1) + lfd 14, -8(1) + blr +.size abi_test_clobber_f14,.-abi_test_clobber_f14 +.globl abi_test_clobber_f15 +.type abi_test_clobber_f15,@function +.align 4 +abi_test_clobber_f15: +.localentry abi_test_clobber_f15,0 + + li 0, 0 + + std 0, -8(1) + lfd 15, -8(1) + blr +.size abi_test_clobber_f15,.-abi_test_clobber_f15 +.globl abi_test_clobber_f16 +.type abi_test_clobber_f16,@function +.align 4 +abi_test_clobber_f16: +.localentry abi_test_clobber_f16,0 + + li 0, 0 + + std 0, -8(1) + lfd 16, -8(1) + blr +.size abi_test_clobber_f16,.-abi_test_clobber_f16 +.globl abi_test_clobber_f17 +.type abi_test_clobber_f17,@function +.align 4 +abi_test_clobber_f17: +.localentry abi_test_clobber_f17,0 + + li 0, 0 + + std 0, -8(1) + lfd 17, -8(1) + blr +.size abi_test_clobber_f17,.-abi_test_clobber_f17 +.globl abi_test_clobber_f18 +.type abi_test_clobber_f18,@function +.align 4 +abi_test_clobber_f18: +.localentry abi_test_clobber_f18,0 + + li 0, 0 + + std 0, -8(1) + lfd 18, -8(1) + blr +.size abi_test_clobber_f18,.-abi_test_clobber_f18 +.globl abi_test_clobber_f19 +.type abi_test_clobber_f19,@function +.align 4 +abi_test_clobber_f19: +.localentry abi_test_clobber_f19,0 + + li 0, 0 + + std 0, -8(1) + lfd 19, -8(1) + blr +.size abi_test_clobber_f19,.-abi_test_clobber_f19 +.globl abi_test_clobber_f20 +.type abi_test_clobber_f20,@function +.align 4 +abi_test_clobber_f20: +.localentry abi_test_clobber_f20,0 + + li 0, 0 + + std 0, -8(1) + lfd 20, -8(1) + blr +.size abi_test_clobber_f20,.-abi_test_clobber_f20 +.globl abi_test_clobber_f21 +.type abi_test_clobber_f21,@function +.align 4 +abi_test_clobber_f21: +.localentry abi_test_clobber_f21,0 + + li 0, 0 + + std 0, -8(1) + lfd 21, -8(1) + blr +.size abi_test_clobber_f21,.-abi_test_clobber_f21 +.globl abi_test_clobber_f22 +.type abi_test_clobber_f22,@function +.align 4 +abi_test_clobber_f22: +.localentry abi_test_clobber_f22,0 + + li 0, 0 + + std 0, -8(1) + lfd 22, -8(1) + blr +.size abi_test_clobber_f22,.-abi_test_clobber_f22 +.globl abi_test_clobber_f23 +.type abi_test_clobber_f23,@function +.align 4 +abi_test_clobber_f23: +.localentry abi_test_clobber_f23,0 + + li 0, 0 + + std 0, -8(1) + lfd 23, -8(1) + blr +.size abi_test_clobber_f23,.-abi_test_clobber_f23 +.globl abi_test_clobber_f24 +.type abi_test_clobber_f24,@function +.align 4 +abi_test_clobber_f24: +.localentry abi_test_clobber_f24,0 + + li 0, 0 + + std 0, -8(1) + lfd 24, -8(1) + blr +.size abi_test_clobber_f24,.-abi_test_clobber_f24 +.globl abi_test_clobber_f25 +.type abi_test_clobber_f25,@function +.align 4 +abi_test_clobber_f25: +.localentry abi_test_clobber_f25,0 + + li 0, 0 + + std 0, -8(1) + lfd 25, -8(1) + blr +.size abi_test_clobber_f25,.-abi_test_clobber_f25 +.globl abi_test_clobber_f26 +.type abi_test_clobber_f26,@function +.align 4 +abi_test_clobber_f26: +.localentry abi_test_clobber_f26,0 + + li 0, 0 + + std 0, -8(1) + lfd 26, -8(1) + blr +.size abi_test_clobber_f26,.-abi_test_clobber_f26 +.globl abi_test_clobber_f27 +.type abi_test_clobber_f27,@function +.align 4 +abi_test_clobber_f27: +.localentry abi_test_clobber_f27,0 + + li 0, 0 + + std 0, -8(1) + lfd 27, -8(1) + blr +.size abi_test_clobber_f27,.-abi_test_clobber_f27 +.globl abi_test_clobber_f28 +.type abi_test_clobber_f28,@function +.align 4 +abi_test_clobber_f28: +.localentry abi_test_clobber_f28,0 + + li 0, 0 + + std 0, -8(1) + lfd 28, -8(1) + blr +.size abi_test_clobber_f28,.-abi_test_clobber_f28 +.globl abi_test_clobber_f29 +.type abi_test_clobber_f29,@function +.align 4 +abi_test_clobber_f29: +.localentry abi_test_clobber_f29,0 + + li 0, 0 + + std 0, -8(1) + lfd 29, -8(1) + blr +.size abi_test_clobber_f29,.-abi_test_clobber_f29 +.globl abi_test_clobber_f30 +.type abi_test_clobber_f30,@function +.align 4 +abi_test_clobber_f30: +.localentry abi_test_clobber_f30,0 + + li 0, 0 + + std 0, -8(1) + lfd 30, -8(1) + blr +.size abi_test_clobber_f30,.-abi_test_clobber_f30 +.globl abi_test_clobber_f31 +.type abi_test_clobber_f31,@function +.align 4 +abi_test_clobber_f31: +.localentry abi_test_clobber_f31,0 + + li 0, 0 + + std 0, -8(1) + lfd 31, -8(1) + blr +.size abi_test_clobber_f31,.-abi_test_clobber_f31 +.globl abi_test_clobber_v0 +.type abi_test_clobber_v0,@function +.align 4 +abi_test_clobber_v0: +.localentry abi_test_clobber_v0,0 + + vxor 0, 0, 0 + blr +.size abi_test_clobber_v0,.-abi_test_clobber_v0 +.globl abi_test_clobber_v1 +.type abi_test_clobber_v1,@function +.align 4 +abi_test_clobber_v1: +.localentry abi_test_clobber_v1,0 + + vxor 1, 1, 1 + blr +.size abi_test_clobber_v1,.-abi_test_clobber_v1 +.globl abi_test_clobber_v2 +.type abi_test_clobber_v2,@function +.align 4 +abi_test_clobber_v2: +.localentry abi_test_clobber_v2,0 + + vxor 2, 2, 2 + blr +.size abi_test_clobber_v2,.-abi_test_clobber_v2 +.globl abi_test_clobber_v3 +.type abi_test_clobber_v3,@function +.align 4 +abi_test_clobber_v3: +.localentry abi_test_clobber_v3,0 + + vxor 3, 3, 3 + blr +.size abi_test_clobber_v3,.-abi_test_clobber_v3 +.globl abi_test_clobber_v4 +.type abi_test_clobber_v4,@function +.align 4 +abi_test_clobber_v4: +.localentry abi_test_clobber_v4,0 + + vxor 4, 4, 4 + blr +.size abi_test_clobber_v4,.-abi_test_clobber_v4 +.globl abi_test_clobber_v5 +.type abi_test_clobber_v5,@function +.align 4 +abi_test_clobber_v5: +.localentry abi_test_clobber_v5,0 + + vxor 5, 5, 5 + blr +.size abi_test_clobber_v5,.-abi_test_clobber_v5 +.globl abi_test_clobber_v6 +.type abi_test_clobber_v6,@function +.align 4 +abi_test_clobber_v6: +.localentry abi_test_clobber_v6,0 + + vxor 6, 6, 6 + blr +.size abi_test_clobber_v6,.-abi_test_clobber_v6 +.globl abi_test_clobber_v7 +.type abi_test_clobber_v7,@function +.align 4 +abi_test_clobber_v7: +.localentry abi_test_clobber_v7,0 + + vxor 7, 7, 7 + blr +.size abi_test_clobber_v7,.-abi_test_clobber_v7 +.globl abi_test_clobber_v8 +.type abi_test_clobber_v8,@function +.align 4 +abi_test_clobber_v8: +.localentry abi_test_clobber_v8,0 + + vxor 8, 8, 8 + blr +.size abi_test_clobber_v8,.-abi_test_clobber_v8 +.globl abi_test_clobber_v9 +.type abi_test_clobber_v9,@function +.align 4 +abi_test_clobber_v9: +.localentry abi_test_clobber_v9,0 + + vxor 9, 9, 9 + blr +.size abi_test_clobber_v9,.-abi_test_clobber_v9 +.globl abi_test_clobber_v10 +.type abi_test_clobber_v10,@function +.align 4 +abi_test_clobber_v10: +.localentry abi_test_clobber_v10,0 + + vxor 10, 10, 10 + blr +.size abi_test_clobber_v10,.-abi_test_clobber_v10 +.globl abi_test_clobber_v11 +.type abi_test_clobber_v11,@function +.align 4 +abi_test_clobber_v11: +.localentry abi_test_clobber_v11,0 + + vxor 11, 11, 11 + blr +.size abi_test_clobber_v11,.-abi_test_clobber_v11 +.globl abi_test_clobber_v12 +.type abi_test_clobber_v12,@function +.align 4 +abi_test_clobber_v12: +.localentry abi_test_clobber_v12,0 + + vxor 12, 12, 12 + blr +.size abi_test_clobber_v12,.-abi_test_clobber_v12 +.globl abi_test_clobber_v13 +.type abi_test_clobber_v13,@function +.align 4 +abi_test_clobber_v13: +.localentry abi_test_clobber_v13,0 + + vxor 13, 13, 13 + blr +.size abi_test_clobber_v13,.-abi_test_clobber_v13 +.globl abi_test_clobber_v14 +.type abi_test_clobber_v14,@function +.align 4 +abi_test_clobber_v14: +.localentry abi_test_clobber_v14,0 + + vxor 14, 14, 14 + blr +.size abi_test_clobber_v14,.-abi_test_clobber_v14 +.globl abi_test_clobber_v15 +.type abi_test_clobber_v15,@function +.align 4 +abi_test_clobber_v15: +.localentry abi_test_clobber_v15,0 + + vxor 15, 15, 15 + blr +.size abi_test_clobber_v15,.-abi_test_clobber_v15 +.globl abi_test_clobber_v16 +.type abi_test_clobber_v16,@function +.align 4 +abi_test_clobber_v16: +.localentry abi_test_clobber_v16,0 + + vxor 16, 16, 16 + blr +.size abi_test_clobber_v16,.-abi_test_clobber_v16 +.globl abi_test_clobber_v17 +.type abi_test_clobber_v17,@function +.align 4 +abi_test_clobber_v17: +.localentry abi_test_clobber_v17,0 + + vxor 17, 17, 17 + blr +.size abi_test_clobber_v17,.-abi_test_clobber_v17 +.globl abi_test_clobber_v18 +.type abi_test_clobber_v18,@function +.align 4 +abi_test_clobber_v18: +.localentry abi_test_clobber_v18,0 + + vxor 18, 18, 18 + blr +.size abi_test_clobber_v18,.-abi_test_clobber_v18 +.globl abi_test_clobber_v19 +.type abi_test_clobber_v19,@function +.align 4 +abi_test_clobber_v19: +.localentry abi_test_clobber_v19,0 + + vxor 19, 19, 19 + blr +.size abi_test_clobber_v19,.-abi_test_clobber_v19 +.globl abi_test_clobber_v20 +.type abi_test_clobber_v20,@function +.align 4 +abi_test_clobber_v20: +.localentry abi_test_clobber_v20,0 + + vxor 20, 20, 20 + blr +.size abi_test_clobber_v20,.-abi_test_clobber_v20 +.globl abi_test_clobber_v21 +.type abi_test_clobber_v21,@function +.align 4 +abi_test_clobber_v21: +.localentry abi_test_clobber_v21,0 + + vxor 21, 21, 21 + blr +.size abi_test_clobber_v21,.-abi_test_clobber_v21 +.globl abi_test_clobber_v22 +.type abi_test_clobber_v22,@function +.align 4 +abi_test_clobber_v22: +.localentry abi_test_clobber_v22,0 + + vxor 22, 22, 22 + blr +.size abi_test_clobber_v22,.-abi_test_clobber_v22 +.globl abi_test_clobber_v23 +.type abi_test_clobber_v23,@function +.align 4 +abi_test_clobber_v23: +.localentry abi_test_clobber_v23,0 + + vxor 23, 23, 23 + blr +.size abi_test_clobber_v23,.-abi_test_clobber_v23 +.globl abi_test_clobber_v24 +.type abi_test_clobber_v24,@function +.align 4 +abi_test_clobber_v24: +.localentry abi_test_clobber_v24,0 + + vxor 24, 24, 24 + blr +.size abi_test_clobber_v24,.-abi_test_clobber_v24 +.globl abi_test_clobber_v25 +.type abi_test_clobber_v25,@function +.align 4 +abi_test_clobber_v25: +.localentry abi_test_clobber_v25,0 + + vxor 25, 25, 25 + blr +.size abi_test_clobber_v25,.-abi_test_clobber_v25 +.globl abi_test_clobber_v26 +.type abi_test_clobber_v26,@function +.align 4 +abi_test_clobber_v26: +.localentry abi_test_clobber_v26,0 + + vxor 26, 26, 26 + blr +.size abi_test_clobber_v26,.-abi_test_clobber_v26 +.globl abi_test_clobber_v27 +.type abi_test_clobber_v27,@function +.align 4 +abi_test_clobber_v27: +.localentry abi_test_clobber_v27,0 + + vxor 27, 27, 27 + blr +.size abi_test_clobber_v27,.-abi_test_clobber_v27 +.globl abi_test_clobber_v28 +.type abi_test_clobber_v28,@function +.align 4 +abi_test_clobber_v28: +.localentry abi_test_clobber_v28,0 + + vxor 28, 28, 28 + blr +.size abi_test_clobber_v28,.-abi_test_clobber_v28 +.globl abi_test_clobber_v29 +.type abi_test_clobber_v29,@function +.align 4 +abi_test_clobber_v29: +.localentry abi_test_clobber_v29,0 + + vxor 29, 29, 29 + blr +.size abi_test_clobber_v29,.-abi_test_clobber_v29 +.globl abi_test_clobber_v30 +.type abi_test_clobber_v30,@function +.align 4 +abi_test_clobber_v30: +.localentry abi_test_clobber_v30,0 + + vxor 30, 30, 30 + blr +.size abi_test_clobber_v30,.-abi_test_clobber_v30 +.globl abi_test_clobber_v31 +.type abi_test_clobber_v31,@function +.align 4 +abi_test_clobber_v31: +.localentry abi_test_clobber_v31,0 + + vxor 31, 31, 31 + blr +.size abi_test_clobber_v31,.-abi_test_clobber_v31 +.globl abi_test_clobber_cr0 +.type abi_test_clobber_cr0,@function +.align 4 +abi_test_clobber_cr0: +.localentry abi_test_clobber_cr0,0 + + + + mfcr 0 + not 0, 0 + mtcrf 128, 0 + blr +.size abi_test_clobber_cr0,.-abi_test_clobber_cr0 +.globl abi_test_clobber_cr1 +.type abi_test_clobber_cr1,@function +.align 4 +abi_test_clobber_cr1: +.localentry abi_test_clobber_cr1,0 + + + + mfcr 0 + not 0, 0 + mtcrf 64, 0 + blr +.size abi_test_clobber_cr1,.-abi_test_clobber_cr1 +.globl abi_test_clobber_cr2 +.type abi_test_clobber_cr2,@function +.align 4 +abi_test_clobber_cr2: +.localentry abi_test_clobber_cr2,0 + + + + mfcr 0 + not 0, 0 + mtcrf 32, 0 + blr +.size abi_test_clobber_cr2,.-abi_test_clobber_cr2 +.globl abi_test_clobber_cr3 +.type abi_test_clobber_cr3,@function +.align 4 +abi_test_clobber_cr3: +.localentry abi_test_clobber_cr3,0 + + + + mfcr 0 + not 0, 0 + mtcrf 16, 0 + blr +.size abi_test_clobber_cr3,.-abi_test_clobber_cr3 +.globl abi_test_clobber_cr4 +.type abi_test_clobber_cr4,@function +.align 4 +abi_test_clobber_cr4: +.localentry abi_test_clobber_cr4,0 + + + + mfcr 0 + not 0, 0 + mtcrf 8, 0 + blr +.size abi_test_clobber_cr4,.-abi_test_clobber_cr4 +.globl abi_test_clobber_cr5 +.type abi_test_clobber_cr5,@function +.align 4 +abi_test_clobber_cr5: +.localentry abi_test_clobber_cr5,0 + + + + mfcr 0 + not 0, 0 + mtcrf 4, 0 + blr +.size abi_test_clobber_cr5,.-abi_test_clobber_cr5 +.globl abi_test_clobber_cr6 +.type abi_test_clobber_cr6,@function +.align 4 +abi_test_clobber_cr6: +.localentry abi_test_clobber_cr6,0 + + + + mfcr 0 + not 0, 0 + mtcrf 2, 0 + blr +.size abi_test_clobber_cr6,.-abi_test_clobber_cr6 +.globl abi_test_clobber_cr7 +.type abi_test_clobber_cr7,@function +.align 4 +abi_test_clobber_cr7: +.localentry abi_test_clobber_cr7,0 + + + + mfcr 0 + not 0, 0 + mtcrf 1, 0 + blr +.size abi_test_clobber_cr7,.-abi_test_clobber_cr7 +.globl abi_test_clobber_ctr +.type abi_test_clobber_ctr,@function +.align 4 +abi_test_clobber_ctr: +.localentry abi_test_clobber_ctr,0 + + li 0, 0 + mtctr 0 + blr +.size abi_test_clobber_ctr,.-abi_test_clobber_ctr + +.globl abi_test_clobber_lr +.type abi_test_clobber_lr,@function +.align 4 +abi_test_clobber_lr: +.localentry abi_test_clobber_lr,0 + + mflr 0 + mtctr 0 + li 0, 0 + mtlr 0 + bctr +.size abi_test_clobber_lr,.-abi_test_clobber_lr + +#endif // !OPENSSL_NO_ASM && __powerpc64__ +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/chacha/chacha-x86.S b/contrib/boringssl-cmake/linux-x86/crypto/chacha/chacha-x86.S index 287b62a5157..feceb5d9f81 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/chacha/chacha-x86.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/chacha/chacha-x86.S @@ -972,3 +972,4 @@ ChaCha20_ssse3: .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 .byte 114,103,62,0 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aes-586.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aes-586.S deleted file mode 100644 index c8eeee53701..00000000000 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aes-586.S +++ /dev/null @@ -1,3262 +0,0 @@ -# This file is generated from a similarly-named Perl script in the BoringSSL -# source tree. Do not edit by hand. - -#if defined(__i386__) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.text -.hidden _x86_AES_encrypt_compact -.type _x86_AES_encrypt_compact,@function -.align 16 -_x86_AES_encrypt_compact: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl -128(%ebp),%edi - movl -96(%ebp),%esi - movl -64(%ebp),%edi - movl -32(%ebp),%esi - movl (%ebp),%edi - movl 32(%ebp),%esi - movl 64(%ebp),%edi - movl 96(%ebp),%esi -.align 16 -.L000loop: - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movzbl -128(%ebp,%esi,1),%esi - movzbl %ch,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ah,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $8,%eax - xorl %eax,%edx - movl 4(%esp),%eax - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - movzbl -128(%ebp,%ecx,1),%ecx - shll $24,%ecx - xorl %ecx,%edx - movl %esi,%ecx - - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %ecx,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %ecx,%edi - xorl %esi,%ecx - rorl $24,%edi - xorl %ebp,%esi - roll $24,%ecx - xorl %edi,%esi - movl $2155905152,%ebp - xorl %esi,%ecx - andl %edx,%ebp - leal (%edx,%edx,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %edx,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %edx,%edi - xorl %esi,%edx - rorl $24,%edi - xorl %ebp,%esi - roll $24,%edx - xorl %edi,%esi - movl $2155905152,%ebp - xorl %esi,%edx - andl %eax,%ebp - leal (%eax,%eax,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %eax,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %eax,%edi - xorl %esi,%eax - rorl $24,%edi - xorl %ebp,%esi - roll $24,%eax - xorl %edi,%esi - movl $2155905152,%ebp - xorl %esi,%eax - andl %ebx,%ebp - leal (%ebx,%ebx,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %ebx,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %ebx,%edi - xorl %esi,%ebx - rorl $24,%edi - xorl %ebp,%esi - roll $24,%ebx - xorl %edi,%esi - xorl %esi,%ebx - movl 20(%esp),%edi - movl 28(%esp),%ebp - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb .L000loop - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movzbl -128(%ebp,%esi,1),%esi - movzbl %ch,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - - movl 20(%esp),%edi - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ah,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $8,%eax - xorl %eax,%edx - movl 4(%esp),%eax - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - movzbl -128(%ebp,%ecx,1),%ecx - shll $24,%ecx - xorl %ecx,%edx - movl %esi,%ecx - - xorl 16(%edi),%eax - xorl 20(%edi),%ebx - xorl 24(%edi),%ecx - xorl 28(%edi),%edx - ret -.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact -.hidden _sse_AES_encrypt_compact -.type _sse_AES_encrypt_compact,@function -.align 16 -_sse_AES_encrypt_compact: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl $454761243,%eax - movl %eax,8(%esp) - movl %eax,12(%esp) - movl -128(%ebp),%eax - movl -96(%ebp),%ebx - movl -64(%ebp),%ecx - movl -32(%ebp),%edx - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%edx -.align 16 -.L001loop: - pshufw $8,%mm0,%mm1 - pshufw $13,%mm4,%mm5 - movd %mm1,%eax - movd %mm5,%ebx - movl %edi,20(%esp) - movzbl %al,%esi - movzbl %ah,%edx - pshufw $13,%mm0,%mm2 - movzbl -128(%ebp,%esi,1),%ecx - movzbl %bl,%edi - movzbl -128(%ebp,%edx,1),%edx - shrl $16,%eax - shll $8,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $16,%esi - pshufw $8,%mm4,%mm6 - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %ah,%edi - shll $24,%esi - shrl $16,%ebx - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $8,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shll $24,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - movd %mm2,%eax - movd %ecx,%mm0 - movzbl -128(%ebp,%edi,1),%ecx - movzbl %ah,%edi - shll $16,%ecx - movd %mm6,%ebx - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $24,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - shll $8,%esi - shrl $16,%ebx - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shrl $16,%eax - movd %ecx,%mm1 - movzbl -128(%ebp,%edi,1),%ecx - movzbl %ah,%edi - shll $16,%ecx - andl $255,%eax - orl %esi,%ecx - punpckldq %mm1,%mm0 - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $24,%esi - andl $255,%ebx - movzbl -128(%ebp,%eax,1),%eax - orl %esi,%ecx - shll $16,%eax - movzbl -128(%ebp,%edi,1),%esi - orl %eax,%edx - shll $8,%esi - movzbl -128(%ebp,%ebx,1),%ebx - orl %esi,%ecx - orl %ebx,%edx - movl 20(%esp),%edi - movd %ecx,%mm4 - movd %edx,%mm5 - punpckldq %mm5,%mm4 - addl $16,%edi - cmpl 24(%esp),%edi - ja .L002out - movq 8(%esp),%mm2 - pxor %mm3,%mm3 - pxor %mm7,%mm7 - movq %mm0,%mm1 - movq %mm4,%mm5 - pcmpgtb %mm0,%mm3 - pcmpgtb %mm4,%mm7 - pand %mm2,%mm3 - pand %mm2,%mm7 - pshufw $177,%mm0,%mm2 - pshufw $177,%mm4,%mm6 - paddb %mm0,%mm0 - paddb %mm4,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pshufw $177,%mm2,%mm3 - pshufw $177,%mm6,%mm7 - pxor %mm0,%mm1 - pxor %mm4,%mm5 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - movq %mm3,%mm2 - movq %mm7,%mm6 - pslld $8,%mm3 - pslld $8,%mm7 - psrld $24,%mm2 - psrld $24,%mm6 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - movq %mm1,%mm3 - movq %mm5,%mm7 - movq (%edi),%mm2 - movq 8(%edi),%mm6 - psrld $8,%mm1 - psrld $8,%mm5 - movl -128(%ebp),%eax - pslld $24,%mm3 - pslld $24,%mm7 - movl -64(%ebp),%ebx - pxor %mm1,%mm0 - pxor %mm5,%mm4 - movl (%ebp),%ecx - pxor %mm3,%mm0 - pxor %mm7,%mm4 - movl 64(%ebp),%edx - pxor %mm2,%mm0 - pxor %mm6,%mm4 - jmp .L001loop -.align 16 -.L002out: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - ret -.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact -.hidden _x86_AES_encrypt -.type _x86_AES_encrypt,@function -.align 16 -_x86_AES_encrypt: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) -.align 16 -.L003loop: - movl %eax,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %bh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,4(%esp) - - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movl (%ebp,%esi,8),%esi - movzbl %ch,%edi - xorl 3(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %eax,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,8(%esp) - - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movl (%ebp,%esi,8),%esi - movzbl %dh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movzbl %bh,%edi - xorl 1(%ebp,%edi,8),%esi - - movl 20(%esp),%edi - movl (%ebp,%edx,8),%edx - movzbl %ah,%eax - xorl 3(%ebp,%eax,8),%edx - movl 4(%esp),%eax - andl $255,%ebx - xorl 2(%ebp,%ebx,8),%edx - movl 8(%esp),%ebx - xorl 1(%ebp,%ecx,8),%edx - movl %esi,%ecx - - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb .L003loop - movl %eax,%esi - andl $255,%esi - movl 2(%ebp,%esi,8),%esi - andl $255,%esi - movzbl %bh,%edi - movl (%ebp,%edi,8),%edi - andl $65280,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movl (%ebp,%edi,8),%edi - andl $16711680,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movl 2(%ebp,%edi,8),%edi - andl $4278190080,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movl 2(%ebp,%esi,8),%esi - andl $255,%esi - movzbl %ch,%edi - movl (%ebp,%edi,8),%edi - andl $65280,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movl (%ebp,%edi,8),%edi - andl $16711680,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $24,%edi - movl 2(%ebp,%edi,8),%edi - andl $4278190080,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movl 2(%ebp,%esi,8),%esi - andl $255,%esi - movzbl %dh,%edi - movl (%ebp,%edi,8),%edi - andl $65280,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - movl (%ebp,%edi,8),%edi - andl $16711680,%edi - xorl %edi,%esi - movzbl %bh,%edi - movl 2(%ebp,%edi,8),%edi - andl $4278190080,%edi - xorl %edi,%esi - movl 20(%esp),%edi - andl $255,%edx - movl 2(%ebp,%edx,8),%edx - andl $255,%edx - movzbl %ah,%eax - movl (%ebp,%eax,8),%eax - andl $65280,%eax - xorl %eax,%edx - movl 4(%esp),%eax - andl $255,%ebx - movl (%ebp,%ebx,8),%ebx - andl $16711680,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - movl 2(%ebp,%ecx,8),%ecx - andl $4278190080,%ecx - xorl %ecx,%edx - movl %esi,%ecx - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - ret -.align 64 -.LAES_Te: -.long 2774754246,2774754246 -.long 2222750968,2222750968 -.long 2574743534,2574743534 -.long 2373680118,2373680118 -.long 234025727,234025727 -.long 3177933782,3177933782 -.long 2976870366,2976870366 -.long 1422247313,1422247313 -.long 1345335392,1345335392 -.long 50397442,50397442 -.long 2842126286,2842126286 -.long 2099981142,2099981142 -.long 436141799,436141799 -.long 1658312629,1658312629 -.long 3870010189,3870010189 -.long 2591454956,2591454956 -.long 1170918031,1170918031 -.long 2642575903,2642575903 -.long 1086966153,1086966153 -.long 2273148410,2273148410 -.long 368769775,368769775 -.long 3948501426,3948501426 -.long 3376891790,3376891790 -.long 200339707,200339707 -.long 3970805057,3970805057 -.long 1742001331,1742001331 -.long 4255294047,4255294047 -.long 3937382213,3937382213 -.long 3214711843,3214711843 -.long 4154762323,4154762323 -.long 2524082916,2524082916 -.long 1539358875,1539358875 -.long 3266819957,3266819957 -.long 486407649,486407649 -.long 2928907069,2928907069 -.long 1780885068,1780885068 -.long 1513502316,1513502316 -.long 1094664062,1094664062 -.long 49805301,49805301 -.long 1338821763,1338821763 -.long 1546925160,1546925160 -.long 4104496465,4104496465 -.long 887481809,887481809 -.long 150073849,150073849 -.long 2473685474,2473685474 -.long 1943591083,1943591083 -.long 1395732834,1395732834 -.long 1058346282,1058346282 -.long 201589768,201589768 -.long 1388824469,1388824469 -.long 1696801606,1696801606 -.long 1589887901,1589887901 -.long 672667696,672667696 -.long 2711000631,2711000631 -.long 251987210,251987210 -.long 3046808111,3046808111 -.long 151455502,151455502 -.long 907153956,907153956 -.long 2608889883,2608889883 -.long 1038279391,1038279391 -.long 652995533,652995533 -.long 1764173646,1764173646 -.long 3451040383,3451040383 -.long 2675275242,2675275242 -.long 453576978,453576978 -.long 2659418909,2659418909 -.long 1949051992,1949051992 -.long 773462580,773462580 -.long 756751158,756751158 -.long 2993581788,2993581788 -.long 3998898868,3998898868 -.long 4221608027,4221608027 -.long 4132590244,4132590244 -.long 1295727478,1295727478 -.long 1641469623,1641469623 -.long 3467883389,3467883389 -.long 2066295122,2066295122 -.long 1055122397,1055122397 -.long 1898917726,1898917726 -.long 2542044179,2542044179 -.long 4115878822,4115878822 -.long 1758581177,1758581177 -.long 0,0 -.long 753790401,753790401 -.long 1612718144,1612718144 -.long 536673507,536673507 -.long 3367088505,3367088505 -.long 3982187446,3982187446 -.long 3194645204,3194645204 -.long 1187761037,1187761037 -.long 3653156455,3653156455 -.long 1262041458,1262041458 -.long 3729410708,3729410708 -.long 3561770136,3561770136 -.long 3898103984,3898103984 -.long 1255133061,1255133061 -.long 1808847035,1808847035 -.long 720367557,720367557 -.long 3853167183,3853167183 -.long 385612781,385612781 -.long 3309519750,3309519750 -.long 3612167578,3612167578 -.long 1429418854,1429418854 -.long 2491778321,2491778321 -.long 3477423498,3477423498 -.long 284817897,284817897 -.long 100794884,100794884 -.long 2172616702,2172616702 -.long 4031795360,4031795360 -.long 1144798328,1144798328 -.long 3131023141,3131023141 -.long 3819481163,3819481163 -.long 4082192802,4082192802 -.long 4272137053,4272137053 -.long 3225436288,3225436288 -.long 2324664069,2324664069 -.long 2912064063,2912064063 -.long 3164445985,3164445985 -.long 1211644016,1211644016 -.long 83228145,83228145 -.long 3753688163,3753688163 -.long 3249976951,3249976951 -.long 1977277103,1977277103 -.long 1663115586,1663115586 -.long 806359072,806359072 -.long 452984805,452984805 -.long 250868733,250868733 -.long 1842533055,1842533055 -.long 1288555905,1288555905 -.long 336333848,336333848 -.long 890442534,890442534 -.long 804056259,804056259 -.long 3781124030,3781124030 -.long 2727843637,2727843637 -.long 3427026056,3427026056 -.long 957814574,957814574 -.long 1472513171,1472513171 -.long 4071073621,4071073621 -.long 2189328124,2189328124 -.long 1195195770,1195195770 -.long 2892260552,2892260552 -.long 3881655738,3881655738 -.long 723065138,723065138 -.long 2507371494,2507371494 -.long 2690670784,2690670784 -.long 2558624025,2558624025 -.long 3511635870,3511635870 -.long 2145180835,2145180835 -.long 1713513028,1713513028 -.long 2116692564,2116692564 -.long 2878378043,2878378043 -.long 2206763019,2206763019 -.long 3393603212,3393603212 -.long 703524551,703524551 -.long 3552098411,3552098411 -.long 1007948840,1007948840 -.long 2044649127,2044649127 -.long 3797835452,3797835452 -.long 487262998,487262998 -.long 1994120109,1994120109 -.long 1004593371,1004593371 -.long 1446130276,1446130276 -.long 1312438900,1312438900 -.long 503974420,503974420 -.long 3679013266,3679013266 -.long 168166924,168166924 -.long 1814307912,1814307912 -.long 3831258296,3831258296 -.long 1573044895,1573044895 -.long 1859376061,1859376061 -.long 4021070915,4021070915 -.long 2791465668,2791465668 -.long 2828112185,2828112185 -.long 2761266481,2761266481 -.long 937747667,937747667 -.long 2339994098,2339994098 -.long 854058965,854058965 -.long 1137232011,1137232011 -.long 1496790894,1496790894 -.long 3077402074,3077402074 -.long 2358086913,2358086913 -.long 1691735473,1691735473 -.long 3528347292,3528347292 -.long 3769215305,3769215305 -.long 3027004632,3027004632 -.long 4199962284,4199962284 -.long 133494003,133494003 -.long 636152527,636152527 -.long 2942657994,2942657994 -.long 2390391540,2390391540 -.long 3920539207,3920539207 -.long 403179536,403179536 -.long 3585784431,3585784431 -.long 2289596656,2289596656 -.long 1864705354,1864705354 -.long 1915629148,1915629148 -.long 605822008,605822008 -.long 4054230615,4054230615 -.long 3350508659,3350508659 -.long 1371981463,1371981463 -.long 602466507,602466507 -.long 2094914977,2094914977 -.long 2624877800,2624877800 -.long 555687742,555687742 -.long 3712699286,3712699286 -.long 3703422305,3703422305 -.long 2257292045,2257292045 -.long 2240449039,2240449039 -.long 2423288032,2423288032 -.long 1111375484,1111375484 -.long 3300242801,3300242801 -.long 2858837708,2858837708 -.long 3628615824,3628615824 -.long 84083462,84083462 -.long 32962295,32962295 -.long 302911004,302911004 -.long 2741068226,2741068226 -.long 1597322602,1597322602 -.long 4183250862,4183250862 -.long 3501832553,3501832553 -.long 2441512471,2441512471 -.long 1489093017,1489093017 -.long 656219450,656219450 -.long 3114180135,3114180135 -.long 954327513,954327513 -.long 335083755,335083755 -.long 3013122091,3013122091 -.long 856756514,856756514 -.long 3144247762,3144247762 -.long 1893325225,1893325225 -.long 2307821063,2307821063 -.long 2811532339,2811532339 -.long 3063651117,3063651117 -.long 572399164,572399164 -.long 2458355477,2458355477 -.long 552200649,552200649 -.long 1238290055,1238290055 -.long 4283782570,4283782570 -.long 2015897680,2015897680 -.long 2061492133,2061492133 -.long 2408352771,2408352771 -.long 4171342169,4171342169 -.long 2156497161,2156497161 -.long 386731290,386731290 -.long 3669999461,3669999461 -.long 837215959,837215959 -.long 3326231172,3326231172 -.long 3093850320,3093850320 -.long 3275833730,3275833730 -.long 2962856233,2962856233 -.long 1999449434,1999449434 -.long 286199582,286199582 -.long 3417354363,3417354363 -.long 4233385128,4233385128 -.long 3602627437,3602627437 -.long 974525996,974525996 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.long 1,2,4,8 -.long 16,32,64,128 -.long 27,54,0,0 -.long 0,0,0,0 -.size _x86_AES_encrypt,.-_x86_AES_encrypt -.globl aes_nohw_encrypt -.hidden aes_nohw_encrypt -.type aes_nohw_encrypt,@function -.align 16 -aes_nohw_encrypt: -.L_aes_nohw_encrypt_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%esi - movl 28(%esp),%edi - movl %esp,%eax - subl $36,%esp - andl $-64,%esp - leal -127(%edi),%ebx - subl %esp,%ebx - negl %ebx - andl $960,%ebx - subl %ebx,%esp - addl $4,%esp - movl %eax,28(%esp) - call .L004pic_point -.L004pic_point: - popl %ebp - leal OPENSSL_ia32cap_P-.L004pic_point(%ebp),%eax - leal .LAES_Te-.L004pic_point(%ebp),%ebp - leal 764(%esp),%ebx - subl %ebp,%ebx - andl $768,%ebx - leal 2176(%ebp,%ebx,1),%ebp - btl $25,(%eax) - jnc .L005x86 - movq (%esi),%mm0 - movq 8(%esi),%mm4 - call _sse_AES_encrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movq %mm0,(%esi) - movq %mm4,8(%esi) - emms - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.align 16 -.L005x86: - movl %ebp,24(%esp) - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - call _x86_AES_encrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size aes_nohw_encrypt,.-.L_aes_nohw_encrypt_begin -.hidden _x86_AES_decrypt_compact -.type _x86_AES_decrypt_compact,@function -.align 16 -_x86_AES_decrypt_compact: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl -128(%ebp),%edi - movl -96(%ebp),%esi - movl -64(%ebp),%edi - movl -32(%ebp),%esi - movl (%ebp),%edi - movl 32(%ebp),%esi - movl 64(%ebp),%edi - movl 96(%ebp),%esi -.align 16 -.L006loop: - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ebx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %ah,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ch,%ecx - movzbl -128(%ebp,%ecx,1),%ecx - shll $8,%ecx - xorl %ecx,%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - shrl $24,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $24,%eax - xorl %eax,%edx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%eax - subl %edi,%esi - andl $4278124286,%eax - andl $454761243,%esi - xorl %esi,%eax - movl $2155905152,%edi - andl %eax,%edi - movl %edi,%esi - shrl $7,%edi - leal (%eax,%eax,1),%ebx - subl %edi,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %ecx,%eax - xorl %esi,%ebx - movl $2155905152,%edi - andl %ebx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ebx,%ebx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %ecx,%ebx - roll $8,%ecx - xorl %esi,%ebp - xorl %eax,%ecx - xorl %ebp,%eax - xorl %ebx,%ecx - xorl %ebp,%ebx - roll $24,%eax - xorl %ebp,%ecx - roll $16,%ebx - xorl %eax,%ecx - roll $8,%ebp - xorl %ebx,%ecx - movl 4(%esp),%eax - xorl %ebp,%ecx - movl %ecx,12(%esp) - movl $2155905152,%edi - andl %edx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%edx,%edx,1),%ebx - subl %edi,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %esi,%ebx - movl $2155905152,%edi - andl %ebx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ebx,%ebx,1),%ecx - subl %edi,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %edx,%ebx - xorl %esi,%ecx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %edx,%ecx - roll $8,%edx - xorl %esi,%ebp - xorl %ebx,%edx - xorl %ebp,%ebx - xorl %ecx,%edx - xorl %ebp,%ecx - roll $24,%ebx - xorl %ebp,%edx - roll $16,%ecx - xorl %ebx,%edx - roll $8,%ebp - xorl %ecx,%edx - movl 8(%esp),%ebx - xorl %ebp,%edx - movl %edx,16(%esp) - movl $2155905152,%edi - andl %eax,%edi - movl %edi,%esi - shrl $7,%edi - leal (%eax,%eax,1),%ecx - subl %edi,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %esi,%ecx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%edx - subl %edi,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %eax,%ecx - xorl %esi,%edx - movl $2155905152,%edi - andl %edx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%edx,%edx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %eax,%edx - roll $8,%eax - xorl %esi,%ebp - xorl %ecx,%eax - xorl %ebp,%ecx - xorl %edx,%eax - xorl %ebp,%edx - roll $24,%ecx - xorl %ebp,%eax - roll $16,%edx - xorl %ecx,%eax - roll $8,%ebp - xorl %edx,%eax - xorl %ebp,%eax - movl $2155905152,%edi - andl %ebx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ebx,%ebx,1),%ecx - subl %edi,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %esi,%ecx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%edx - subl %edi,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %ebx,%ecx - xorl %esi,%edx - movl $2155905152,%edi - andl %edx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%edx,%edx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %ebx,%edx - roll $8,%ebx - xorl %esi,%ebp - xorl %ecx,%ebx - xorl %ebp,%ecx - xorl %edx,%ebx - xorl %ebp,%edx - roll $24,%ecx - xorl %ebp,%ebx - roll $16,%edx - xorl %ecx,%ebx - roll $8,%ebp - xorl %edx,%ebx - movl 12(%esp),%ecx - xorl %ebp,%ebx - movl 16(%esp),%edx - movl 20(%esp),%edi - movl 28(%esp),%ebp - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb .L006loop - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ebx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %ah,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl 20(%esp),%edi - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ch,%ecx - movzbl -128(%ebp,%ecx,1),%ecx - shll $8,%ecx - xorl %ecx,%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - shrl $24,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $24,%eax - xorl %eax,%edx - movl 4(%esp),%eax - xorl 16(%edi),%eax - xorl 20(%edi),%ebx - xorl 24(%edi),%ecx - xorl 28(%edi),%edx - ret -.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact -.hidden _sse_AES_decrypt_compact -.type _sse_AES_decrypt_compact,@function -.align 16 -_sse_AES_decrypt_compact: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl $454761243,%eax - movl %eax,8(%esp) - movl %eax,12(%esp) - movl -128(%ebp),%eax - movl -96(%ebp),%ebx - movl -64(%ebp),%ecx - movl -32(%ebp),%edx - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%edx -.align 16 -.L007loop: - pshufw $12,%mm0,%mm1 - pshufw $9,%mm4,%mm5 - movd %mm1,%eax - movd %mm5,%ebx - movl %edi,20(%esp) - movzbl %al,%esi - movzbl %ah,%edx - pshufw $6,%mm0,%mm2 - movzbl -128(%ebp,%esi,1),%ecx - movzbl %bl,%edi - movzbl -128(%ebp,%edx,1),%edx - shrl $16,%eax - shll $8,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $16,%esi - pshufw $3,%mm4,%mm6 - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %ah,%edi - shll $24,%esi - shrl $16,%ebx - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $24,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shll $8,%esi - movd %mm2,%eax - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - shll $16,%esi - movd %mm6,%ebx - movd %ecx,%mm0 - movzbl -128(%ebp,%edi,1),%ecx - movzbl %al,%edi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %ah,%edi - shll $16,%esi - shrl $16,%eax - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shrl $16,%ebx - shll $8,%esi - movd %edx,%mm1 - movzbl -128(%ebp,%edi,1),%edx - movzbl %bh,%edi - shll $24,%edx - andl $255,%ebx - orl %esi,%edx - punpckldq %mm1,%mm0 - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shll $8,%esi - movzbl %ah,%eax - movzbl -128(%ebp,%ebx,1),%ebx - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - orl %ebx,%edx - shll $16,%esi - movzbl -128(%ebp,%eax,1),%eax - orl %esi,%edx - shll $24,%eax - orl %eax,%ecx - movl 20(%esp),%edi - movd %edx,%mm4 - movd %ecx,%mm5 - punpckldq %mm5,%mm4 - addl $16,%edi - cmpl 24(%esp),%edi - ja .L008out - movq %mm0,%mm3 - movq %mm4,%mm7 - pshufw $228,%mm0,%mm2 - pshufw $228,%mm4,%mm6 - movq %mm0,%mm1 - movq %mm4,%mm5 - pshufw $177,%mm0,%mm0 - pshufw $177,%mm4,%mm4 - pslld $8,%mm2 - pslld $8,%mm6 - psrld $8,%mm3 - psrld $8,%mm7 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pslld $16,%mm2 - pslld $16,%mm6 - psrld $16,%mm3 - psrld $16,%mm7 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - movq 8(%esp),%mm3 - pxor %mm2,%mm2 - pxor %mm6,%mm6 - pcmpgtb %mm1,%mm2 - pcmpgtb %mm5,%mm6 - pand %mm3,%mm2 - pand %mm3,%mm6 - paddb %mm1,%mm1 - paddb %mm5,%mm5 - pxor %mm2,%mm1 - pxor %mm6,%mm5 - movq %mm1,%mm3 - movq %mm5,%mm7 - movq %mm1,%mm2 - movq %mm5,%mm6 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - pslld $24,%mm3 - pslld $24,%mm7 - psrld $8,%mm2 - psrld $8,%mm6 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - movq 8(%esp),%mm2 - pxor %mm3,%mm3 - pxor %mm7,%mm7 - pcmpgtb %mm1,%mm3 - pcmpgtb %mm5,%mm7 - pand %mm2,%mm3 - pand %mm2,%mm7 - paddb %mm1,%mm1 - paddb %mm5,%mm5 - pxor %mm3,%mm1 - pxor %mm7,%mm5 - pshufw $177,%mm1,%mm3 - pshufw $177,%mm5,%mm7 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm3,%mm3 - pxor %mm7,%mm7 - pcmpgtb %mm1,%mm3 - pcmpgtb %mm5,%mm7 - pand %mm2,%mm3 - pand %mm2,%mm7 - paddb %mm1,%mm1 - paddb %mm5,%mm5 - pxor %mm3,%mm1 - pxor %mm7,%mm5 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - movq %mm1,%mm3 - movq %mm5,%mm7 - pshufw $177,%mm1,%mm2 - pshufw $177,%mm5,%mm6 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - pslld $8,%mm1 - pslld $8,%mm5 - psrld $8,%mm3 - psrld $8,%mm7 - movq (%edi),%mm2 - movq 8(%edi),%mm6 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - movl -128(%ebp),%eax - pslld $16,%mm1 - pslld $16,%mm5 - movl -64(%ebp),%ebx - psrld $16,%mm3 - psrld $16,%mm7 - movl (%ebp),%ecx - pxor %mm1,%mm0 - pxor %mm5,%mm4 - movl 64(%ebp),%edx - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - jmp .L007loop -.align 16 -.L008out: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - ret -.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact -.hidden _x86_AES_decrypt -.type _x86_AES_decrypt,@function -.align 16 -_x86_AES_decrypt: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) -.align 16 -.L009loop: - movl %eax,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %dh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %ebx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,4(%esp) - - movl %ebx,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %ah,%edi - xorl 3(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %ecx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,8(%esp) - - movl %ecx,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %bh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - - movl 20(%esp),%edi - andl $255,%edx - movl (%ebp,%edx,8),%edx - movzbl %ch,%ecx - xorl 3(%ebp,%ecx,8),%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - xorl 2(%ebp,%ebx,8),%edx - movl 8(%esp),%ebx - shrl $24,%eax - xorl 1(%ebp,%eax,8),%edx - movl 4(%esp),%eax - - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb .L009loop - leal 2176(%ebp),%ebp - movl -128(%ebp),%edi - movl -96(%ebp),%esi - movl -64(%ebp),%edi - movl -32(%ebp),%esi - movl (%ebp),%edi - movl 32(%ebp),%esi - movl 64(%ebp),%edi - movl 96(%ebp),%esi - leal -128(%ebp),%ebp - movl %eax,%esi - andl $255,%esi - movzbl (%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl (%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl (%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ebx,%edi - shrl $24,%edi - movzbl (%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - movzbl (%ebp,%esi,1),%esi - movzbl %ah,%edi - movzbl (%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl (%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $24,%edi - movzbl (%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - movzbl (%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl (%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - movzbl (%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl (%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl 20(%esp),%edi - andl $255,%edx - movzbl (%ebp,%edx,1),%edx - movzbl %ch,%ecx - movzbl (%ebp,%ecx,1),%ecx - shll $8,%ecx - xorl %ecx,%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - movzbl (%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - shrl $24,%eax - movzbl (%ebp,%eax,1),%eax - shll $24,%eax - xorl %eax,%edx - movl 4(%esp),%eax - leal -2048(%ebp),%ebp - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - ret -.align 64 -.LAES_Td: -.long 1353184337,1353184337 -.long 1399144830,1399144830 -.long 3282310938,3282310938 -.long 2522752826,2522752826 -.long 3412831035,3412831035 -.long 4047871263,4047871263 -.long 2874735276,2874735276 -.long 2466505547,2466505547 -.long 1442459680,1442459680 -.long 4134368941,4134368941 -.long 2440481928,2440481928 -.long 625738485,625738485 -.long 4242007375,4242007375 -.long 3620416197,3620416197 -.long 2151953702,2151953702 -.long 2409849525,2409849525 -.long 1230680542,1230680542 -.long 1729870373,1729870373 -.long 2551114309,2551114309 -.long 3787521629,3787521629 -.long 41234371,41234371 -.long 317738113,317738113 -.long 2744600205,2744600205 -.long 3338261355,3338261355 -.long 3881799427,3881799427 -.long 2510066197,2510066197 -.long 3950669247,3950669247 -.long 3663286933,3663286933 -.long 763608788,763608788 -.long 3542185048,3542185048 -.long 694804553,694804553 -.long 1154009486,1154009486 -.long 1787413109,1787413109 -.long 2021232372,2021232372 -.long 1799248025,1799248025 -.long 3715217703,3715217703 -.long 3058688446,3058688446 -.long 397248752,397248752 -.long 1722556617,1722556617 -.long 3023752829,3023752829 -.long 407560035,407560035 -.long 2184256229,2184256229 -.long 1613975959,1613975959 -.long 1165972322,1165972322 -.long 3765920945,3765920945 -.long 2226023355,2226023355 -.long 480281086,480281086 -.long 2485848313,2485848313 -.long 1483229296,1483229296 -.long 436028815,436028815 -.long 2272059028,2272059028 -.long 3086515026,3086515026 -.long 601060267,601060267 -.long 3791801202,3791801202 -.long 1468997603,1468997603 -.long 715871590,715871590 -.long 120122290,120122290 -.long 63092015,63092015 -.long 2591802758,2591802758 -.long 2768779219,2768779219 -.long 4068943920,4068943920 -.long 2997206819,2997206819 -.long 3127509762,3127509762 -.long 1552029421,1552029421 -.long 723308426,723308426 -.long 2461301159,2461301159 -.long 4042393587,4042393587 -.long 2715969870,2715969870 -.long 3455375973,3455375973 -.long 3586000134,3586000134 -.long 526529745,526529745 -.long 2331944644,2331944644 -.long 2639474228,2639474228 -.long 2689987490,2689987490 -.long 853641733,853641733 -.long 1978398372,1978398372 -.long 971801355,971801355 -.long 2867814464,2867814464 -.long 111112542,111112542 -.long 1360031421,1360031421 -.long 4186579262,4186579262 -.long 1023860118,1023860118 -.long 2919579357,2919579357 -.long 1186850381,1186850381 -.long 3045938321,3045938321 -.long 90031217,90031217 -.long 1876166148,1876166148 -.long 4279586912,4279586912 -.long 620468249,620468249 -.long 2548678102,2548678102 -.long 3426959497,3426959497 -.long 2006899047,2006899047 -.long 3175278768,3175278768 -.long 2290845959,2290845959 -.long 945494503,945494503 -.long 3689859193,3689859193 -.long 1191869601,1191869601 -.long 3910091388,3910091388 -.long 3374220536,3374220536 -.long 0,0 -.long 2206629897,2206629897 -.long 1223502642,1223502642 -.long 2893025566,2893025566 -.long 1316117100,1316117100 -.long 4227796733,4227796733 -.long 1446544655,1446544655 -.long 517320253,517320253 -.long 658058550,658058550 -.long 1691946762,1691946762 -.long 564550760,564550760 -.long 3511966619,3511966619 -.long 976107044,976107044 -.long 2976320012,2976320012 -.long 266819475,266819475 -.long 3533106868,3533106868 -.long 2660342555,2660342555 -.long 1338359936,1338359936 -.long 2720062561,2720062561 -.long 1766553434,1766553434 -.long 370807324,370807324 -.long 179999714,179999714 -.long 3844776128,3844776128 -.long 1138762300,1138762300 -.long 488053522,488053522 -.long 185403662,185403662 -.long 2915535858,2915535858 -.long 3114841645,3114841645 -.long 3366526484,3366526484 -.long 2233069911,2233069911 -.long 1275557295,1275557295 -.long 3151862254,3151862254 -.long 4250959779,4250959779 -.long 2670068215,2670068215 -.long 3170202204,3170202204 -.long 3309004356,3309004356 -.long 880737115,880737115 -.long 1982415755,1982415755 -.long 3703972811,3703972811 -.long 1761406390,1761406390 -.long 1676797112,1676797112 -.long 3403428311,3403428311 -.long 277177154,277177154 -.long 1076008723,1076008723 -.long 538035844,538035844 -.long 2099530373,2099530373 -.long 4164795346,4164795346 -.long 288553390,288553390 -.long 1839278535,1839278535 -.long 1261411869,1261411869 -.long 4080055004,4080055004 -.long 3964831245,3964831245 -.long 3504587127,3504587127 -.long 1813426987,1813426987 -.long 2579067049,2579067049 -.long 4199060497,4199060497 -.long 577038663,577038663 -.long 3297574056,3297574056 -.long 440397984,440397984 -.long 3626794326,3626794326 -.long 4019204898,4019204898 -.long 3343796615,3343796615 -.long 3251714265,3251714265 -.long 4272081548,4272081548 -.long 906744984,906744984 -.long 3481400742,3481400742 -.long 685669029,685669029 -.long 646887386,646887386 -.long 2764025151,2764025151 -.long 3835509292,3835509292 -.long 227702864,227702864 -.long 2613862250,2613862250 -.long 1648787028,1648787028 -.long 3256061430,3256061430 -.long 3904428176,3904428176 -.long 1593260334,1593260334 -.long 4121936770,4121936770 -.long 3196083615,3196083615 -.long 2090061929,2090061929 -.long 2838353263,2838353263 -.long 3004310991,3004310991 -.long 999926984,999926984 -.long 2809993232,2809993232 -.long 1852021992,1852021992 -.long 2075868123,2075868123 -.long 158869197,158869197 -.long 4095236462,4095236462 -.long 28809964,28809964 -.long 2828685187,2828685187 -.long 1701746150,1701746150 -.long 2129067946,2129067946 -.long 147831841,147831841 -.long 3873969647,3873969647 -.long 3650873274,3650873274 -.long 3459673930,3459673930 -.long 3557400554,3557400554 -.long 3598495785,3598495785 -.long 2947720241,2947720241 -.long 824393514,824393514 -.long 815048134,815048134 -.long 3227951669,3227951669 -.long 935087732,935087732 -.long 2798289660,2798289660 -.long 2966458592,2966458592 -.long 366520115,366520115 -.long 1251476721,1251476721 -.long 4158319681,4158319681 -.long 240176511,240176511 -.long 804688151,804688151 -.long 2379631990,2379631990 -.long 1303441219,1303441219 -.long 1414376140,1414376140 -.long 3741619940,3741619940 -.long 3820343710,3820343710 -.long 461924940,461924940 -.long 3089050817,3089050817 -.long 2136040774,2136040774 -.long 82468509,82468509 -.long 1563790337,1563790337 -.long 1937016826,1937016826 -.long 776014843,776014843 -.long 1511876531,1511876531 -.long 1389550482,1389550482 -.long 861278441,861278441 -.long 323475053,323475053 -.long 2355222426,2355222426 -.long 2047648055,2047648055 -.long 2383738969,2383738969 -.long 2302415851,2302415851 -.long 3995576782,3995576782 -.long 902390199,902390199 -.long 3991215329,3991215329 -.long 1018251130,1018251130 -.long 1507840668,1507840668 -.long 1064563285,1064563285 -.long 2043548696,2043548696 -.long 3208103795,3208103795 -.long 3939366739,3939366739 -.long 1537932639,1537932639 -.long 342834655,342834655 -.long 2262516856,2262516856 -.long 2180231114,2180231114 -.long 1053059257,1053059257 -.long 741614648,741614648 -.long 1598071746,1598071746 -.long 1925389590,1925389590 -.long 203809468,203809468 -.long 2336832552,2336832552 -.long 1100287487,1100287487 -.long 1895934009,1895934009 -.long 3736275976,3736275976 -.long 2632234200,2632234200 -.long 2428589668,2428589668 -.long 1636092795,1636092795 -.long 1890988757,1890988757 -.long 1952214088,1952214088 -.long 1113045200,1113045200 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.size _x86_AES_decrypt,.-_x86_AES_decrypt -.globl aes_nohw_decrypt -.hidden aes_nohw_decrypt -.type aes_nohw_decrypt,@function -.align 16 -aes_nohw_decrypt: -.L_aes_nohw_decrypt_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%esi - movl 28(%esp),%edi - movl %esp,%eax - subl $36,%esp - andl $-64,%esp - leal -127(%edi),%ebx - subl %esp,%ebx - negl %ebx - andl $960,%ebx - subl %ebx,%esp - addl $4,%esp - movl %eax,28(%esp) - call .L010pic_point -.L010pic_point: - popl %ebp - leal OPENSSL_ia32cap_P-.L010pic_point(%ebp),%eax - leal .LAES_Td-.L010pic_point(%ebp),%ebp - leal 764(%esp),%ebx - subl %ebp,%ebx - andl $768,%ebx - leal 2176(%ebp,%ebx,1),%ebp - btl $25,(%eax) - jnc .L011x86 - movq (%esi),%mm0 - movq 8(%esi),%mm4 - call _sse_AES_decrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movq %mm0,(%esi) - movq %mm4,8(%esi) - emms - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.align 16 -.L011x86: - movl %ebp,24(%esp) - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - call _x86_AES_decrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size aes_nohw_decrypt,.-.L_aes_nohw_decrypt_begin -.globl aes_nohw_cbc_encrypt -.hidden aes_nohw_cbc_encrypt -.type aes_nohw_cbc_encrypt,@function -.align 16 -aes_nohw_cbc_encrypt: -.L_aes_nohw_cbc_encrypt_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 28(%esp),%ecx - cmpl $0,%ecx - je .L012drop_out - call .L013pic_point -.L013pic_point: - popl %ebp - leal OPENSSL_ia32cap_P-.L013pic_point(%ebp),%eax - cmpl $0,40(%esp) - leal .LAES_Te-.L013pic_point(%ebp),%ebp - jne .L014picked_te - leal .LAES_Td-.LAES_Te(%ebp),%ebp -.L014picked_te: - pushfl - cld - cmpl $512,%ecx - jb .L015slow_way - testl $15,%ecx - jnz .L015slow_way - btl $28,(%eax) - jc .L015slow_way - leal -324(%esp),%esi - andl $-64,%esi - movl %ebp,%eax - leal 2304(%ebp),%ebx - movl %esi,%edx - andl $4095,%eax - andl $4095,%ebx - andl $4095,%edx - cmpl %ebx,%edx - jb .L016tbl_break_out - subl %ebx,%edx - subl %edx,%esi - jmp .L017tbl_ok -.align 4 -.L016tbl_break_out: - subl %eax,%edx - andl $4095,%edx - addl $384,%edx - subl %edx,%esi -.align 4 -.L017tbl_ok: - leal 24(%esp),%edx - xchgl %esi,%esp - addl $4,%esp - movl %ebp,24(%esp) - movl %esi,28(%esp) - movl (%edx),%eax - movl 4(%edx),%ebx - movl 12(%edx),%edi - movl 16(%edx),%esi - movl 20(%edx),%edx - movl %eax,32(%esp) - movl %ebx,36(%esp) - movl %ecx,40(%esp) - movl %edi,44(%esp) - movl %esi,48(%esp) - movl $0,316(%esp) - movl %edi,%ebx - movl $61,%ecx - subl %ebp,%ebx - movl %edi,%esi - andl $4095,%ebx - leal 76(%esp),%edi - cmpl $2304,%ebx - jb .L018do_copy - cmpl $3852,%ebx - jb .L019skip_copy -.align 4 -.L018do_copy: - movl %edi,44(%esp) -.long 2784229001 -.L019skip_copy: - movl $16,%edi -.align 4 -.L020prefetch_tbl: - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%esi - leal 128(%ebp),%ebp - subl $1,%edi - jnz .L020prefetch_tbl - subl $2048,%ebp - movl 32(%esp),%esi - movl 48(%esp),%edi - cmpl $0,%edx - je .L021fast_decrypt - movl (%edi),%eax - movl 4(%edi),%ebx -.align 16 -.L022fast_enc_loop: - movl 8(%edi),%ecx - movl 12(%edi),%edx - xorl (%esi),%eax - xorl 4(%esi),%ebx - xorl 8(%esi),%ecx - xorl 12(%esi),%edx - movl 44(%esp),%edi - call _x86_AES_encrypt - movl 32(%esp),%esi - movl 36(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - leal 16(%esi),%esi - movl 40(%esp),%ecx - movl %esi,32(%esp) - leal 16(%edi),%edx - movl %edx,36(%esp) - subl $16,%ecx - movl %ecx,40(%esp) - jnz .L022fast_enc_loop - movl 48(%esp),%esi - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - cmpl $0,316(%esp) - movl 44(%esp),%edi - je .L023skip_ezero - movl $60,%ecx - xorl %eax,%eax -.align 4 -.long 2884892297 -.L023skip_ezero: - movl 28(%esp),%esp - popfl -.L012drop_out: - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 16 -.L021fast_decrypt: - cmpl 36(%esp),%esi - je .L024fast_dec_in_place - movl %edi,52(%esp) -.align 4 -.align 16 -.L025fast_dec_loop: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl 44(%esp),%edi - call _x86_AES_decrypt - movl 52(%esp),%edi - movl 40(%esp),%esi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 36(%esp),%edi - movl 32(%esp),%esi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 40(%esp),%ecx - movl %esi,52(%esp) - leal 16(%esi),%esi - movl %esi,32(%esp) - leal 16(%edi),%edi - movl %edi,36(%esp) - subl $16,%ecx - movl %ecx,40(%esp) - jnz .L025fast_dec_loop - movl 52(%esp),%edi - movl 48(%esp),%esi - movl (%edi),%eax - movl 4(%edi),%ebx - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - jmp .L026fast_dec_out -.align 16 -.L024fast_dec_in_place: -.L027fast_dec_in_place_loop: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - leal 60(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 44(%esp),%edi - call _x86_AES_decrypt - movl 48(%esp),%edi - movl 36(%esp),%esi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - leal 16(%esi),%esi - movl %esi,36(%esp) - leal 60(%esp),%esi - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 32(%esp),%esi - movl 40(%esp),%ecx - leal 16(%esi),%esi - movl %esi,32(%esp) - subl $16,%ecx - movl %ecx,40(%esp) - jnz .L027fast_dec_in_place_loop -.align 4 -.L026fast_dec_out: - cmpl $0,316(%esp) - movl 44(%esp),%edi - je .L028skip_dzero - movl $60,%ecx - xorl %eax,%eax -.align 4 -.long 2884892297 -.L028skip_dzero: - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 16 -.L015slow_way: - movl (%eax),%eax - movl 36(%esp),%edi - leal -80(%esp),%esi - andl $-64,%esi - leal -143(%edi),%ebx - subl %esi,%ebx - negl %ebx - andl $960,%ebx - subl %ebx,%esi - leal 768(%esi),%ebx - subl %ebp,%ebx - andl $768,%ebx - leal 2176(%ebp,%ebx,1),%ebp - leal 24(%esp),%edx - xchgl %esi,%esp - addl $4,%esp - movl %ebp,24(%esp) - movl %esi,28(%esp) - movl %eax,52(%esp) - movl (%edx),%eax - movl 4(%edx),%ebx - movl 16(%edx),%esi - movl 20(%edx),%edx - movl %eax,32(%esp) - movl %ebx,36(%esp) - movl %ecx,40(%esp) - movl %edi,44(%esp) - movl %esi,48(%esp) - movl %esi,%edi - movl %eax,%esi - cmpl $0,%edx - je .L029slow_decrypt - cmpl $16,%ecx - movl %ebx,%edx - jb .L030slow_enc_tail - btl $25,52(%esp) - jnc .L031slow_enc_x86 - movq (%edi),%mm0 - movq 8(%edi),%mm4 -.align 16 -.L032slow_enc_loop_sse: - pxor (%esi),%mm0 - pxor 8(%esi),%mm4 - movl 44(%esp),%edi - call _sse_AES_encrypt_compact - movl 32(%esp),%esi - movl 36(%esp),%edi - movl 40(%esp),%ecx - movq %mm0,(%edi) - movq %mm4,8(%edi) - leal 16(%esi),%esi - movl %esi,32(%esp) - leal 16(%edi),%edx - movl %edx,36(%esp) - subl $16,%ecx - cmpl $16,%ecx - movl %ecx,40(%esp) - jae .L032slow_enc_loop_sse - testl $15,%ecx - jnz .L030slow_enc_tail - movl 48(%esp),%esi - movq %mm0,(%esi) - movq %mm4,8(%esi) - emms - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 16 -.L031slow_enc_x86: - movl (%edi),%eax - movl 4(%edi),%ebx -.align 4 -.L033slow_enc_loop_x86: - movl 8(%edi),%ecx - movl 12(%edi),%edx - xorl (%esi),%eax - xorl 4(%esi),%ebx - xorl 8(%esi),%ecx - xorl 12(%esi),%edx - movl 44(%esp),%edi - call _x86_AES_encrypt_compact - movl 32(%esp),%esi - movl 36(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 40(%esp),%ecx - leal 16(%esi),%esi - movl %esi,32(%esp) - leal 16(%edi),%edx - movl %edx,36(%esp) - subl $16,%ecx - cmpl $16,%ecx - movl %ecx,40(%esp) - jae .L033slow_enc_loop_x86 - testl $15,%ecx - jnz .L030slow_enc_tail - movl 48(%esp),%esi - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 16 -.L030slow_enc_tail: - emms - movl %edx,%edi - movl $16,%ebx - subl %ecx,%ebx - cmpl %esi,%edi - je .L034enc_in_place -.align 4 -.long 2767451785 - jmp .L035enc_skip_in_place -.L034enc_in_place: - leal (%edi,%ecx,1),%edi -.L035enc_skip_in_place: - movl %ebx,%ecx - xorl %eax,%eax -.align 4 -.long 2868115081 - movl 48(%esp),%edi - movl %edx,%esi - movl (%edi),%eax - movl 4(%edi),%ebx - movl $16,40(%esp) - jmp .L033slow_enc_loop_x86 -.align 16 -.L029slow_decrypt: - btl $25,52(%esp) - jnc .L036slow_dec_loop_x86 -.align 4 -.L037slow_dec_loop_sse: - movq (%esi),%mm0 - movq 8(%esi),%mm4 - movl 44(%esp),%edi - call _sse_AES_decrypt_compact - movl 32(%esp),%esi - leal 60(%esp),%eax - movl 36(%esp),%ebx - movl 40(%esp),%ecx - movl 48(%esp),%edi - movq (%esi),%mm1 - movq 8(%esi),%mm5 - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - movq %mm1,(%edi) - movq %mm5,8(%edi) - subl $16,%ecx - jc .L038slow_dec_partial_sse - movq %mm0,(%ebx) - movq %mm4,8(%ebx) - leal 16(%ebx),%ebx - movl %ebx,36(%esp) - leal 16(%esi),%esi - movl %esi,32(%esp) - movl %ecx,40(%esp) - jnz .L037slow_dec_loop_sse - emms - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 16 -.L038slow_dec_partial_sse: - movq %mm0,(%eax) - movq %mm4,8(%eax) - emms - addl $16,%ecx - movl %ebx,%edi - movl %eax,%esi -.align 4 -.long 2767451785 - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 16 -.L036slow_dec_loop_x86: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - leal 60(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 44(%esp),%edi - call _x86_AES_decrypt_compact - movl 48(%esp),%edi - movl 40(%esp),%esi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - subl $16,%esi - jc .L039slow_dec_partial_x86 - movl %esi,40(%esp) - movl 36(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - leal 16(%esi),%esi - movl %esi,36(%esp) - leal 60(%esp),%esi - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 32(%esp),%esi - leal 16(%esi),%esi - movl %esi,32(%esp) - jnz .L036slow_dec_loop_x86 - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 16 -.L039slow_dec_partial_x86: - leal 60(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - movl 32(%esp),%esi - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 40(%esp),%ecx - movl 36(%esp),%edi - leal 60(%esp),%esi -.align 4 -.long 2767451785 - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size aes_nohw_cbc_encrypt,.-.L_aes_nohw_cbc_encrypt_begin -.hidden _x86_AES_set_encrypt_key -.type _x86_AES_set_encrypt_key,@function -.align 16 -_x86_AES_set_encrypt_key: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 24(%esp),%esi - movl 32(%esp),%edi - testl $-1,%esi - jz .L040badpointer - testl $-1,%edi - jz .L040badpointer - call .L041pic_point -.L041pic_point: - popl %ebp - leal .LAES_Te-.L041pic_point(%ebp),%ebp - leal 2176(%ebp),%ebp - movl -128(%ebp),%eax - movl -96(%ebp),%ebx - movl -64(%ebp),%ecx - movl -32(%ebp),%edx - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%edx - movl 28(%esp),%ecx - cmpl $128,%ecx - je .L04210rounds - cmpl $192,%ecx - je .L04312rounds - cmpl $256,%ecx - je .L04414rounds - movl $-2,%eax - jmp .L045exit -.L04210rounds: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - xorl %ecx,%ecx - jmp .L04610shortcut -.align 4 -.L04710loop: - movl (%edi),%eax - movl 12(%edi),%edx -.L04610shortcut: - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - xorl 896(%ebp,%ecx,4),%eax - movl %eax,16(%edi) - xorl 4(%edi),%eax - movl %eax,20(%edi) - xorl 8(%edi),%eax - movl %eax,24(%edi) - xorl 12(%edi),%eax - movl %eax,28(%edi) - incl %ecx - addl $16,%edi - cmpl $10,%ecx - jl .L04710loop - movl $10,80(%edi) - xorl %eax,%eax - jmp .L045exit -.L04312rounds: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 16(%esi),%ecx - movl 20(%esi),%edx - movl %ecx,16(%edi) - movl %edx,20(%edi) - xorl %ecx,%ecx - jmp .L04812shortcut -.align 4 -.L04912loop: - movl (%edi),%eax - movl 20(%edi),%edx -.L04812shortcut: - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - xorl 896(%ebp,%ecx,4),%eax - movl %eax,24(%edi) - xorl 4(%edi),%eax - movl %eax,28(%edi) - xorl 8(%edi),%eax - movl %eax,32(%edi) - xorl 12(%edi),%eax - movl %eax,36(%edi) - cmpl $7,%ecx - je .L05012break - incl %ecx - xorl 16(%edi),%eax - movl %eax,40(%edi) - xorl 20(%edi),%eax - movl %eax,44(%edi) - addl $24,%edi - jmp .L04912loop -.L05012break: - movl $12,72(%edi) - xorl %eax,%eax - jmp .L045exit -.L04414rounds: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 16(%esi),%eax - movl 20(%esi),%ebx - movl 24(%esi),%ecx - movl 28(%esi),%edx - movl %eax,16(%edi) - movl %ebx,20(%edi) - movl %ecx,24(%edi) - movl %edx,28(%edi) - xorl %ecx,%ecx - jmp .L05114shortcut -.align 4 -.L05214loop: - movl 28(%edi),%edx -.L05114shortcut: - movl (%edi),%eax - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - xorl 896(%ebp,%ecx,4),%eax - movl %eax,32(%edi) - xorl 4(%edi),%eax - movl %eax,36(%edi) - xorl 8(%edi),%eax - movl %eax,40(%edi) - xorl 12(%edi),%eax - movl %eax,44(%edi) - cmpl $6,%ecx - je .L05314break - incl %ecx - movl %eax,%edx - movl 16(%edi),%eax - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - shll $8,%ebx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $16,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $24,%ebx - xorl %ebx,%eax - movl %eax,48(%edi) - xorl 20(%edi),%eax - movl %eax,52(%edi) - xorl 24(%edi),%eax - movl %eax,56(%edi) - xorl 28(%edi),%eax - movl %eax,60(%edi) - addl $32,%edi - jmp .L05214loop -.L05314break: - movl $14,48(%edi) - xorl %eax,%eax - jmp .L045exit -.L040badpointer: - movl $-1,%eax -.L045exit: - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key -.globl aes_nohw_set_encrypt_key -.hidden aes_nohw_set_encrypt_key -.type aes_nohw_set_encrypt_key,@function -.align 16 -aes_nohw_set_encrypt_key: -.L_aes_nohw_set_encrypt_key_begin: - call _x86_AES_set_encrypt_key - ret -.size aes_nohw_set_encrypt_key,.-.L_aes_nohw_set_encrypt_key_begin -.globl aes_nohw_set_decrypt_key -.hidden aes_nohw_set_decrypt_key -.type aes_nohw_set_decrypt_key,@function -.align 16 -aes_nohw_set_decrypt_key: -.L_aes_nohw_set_decrypt_key_begin: - call _x86_AES_set_encrypt_key - cmpl $0,%eax - je .L054proceed - ret -.L054proceed: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 28(%esp),%esi - movl 240(%esi),%ecx - leal (,%ecx,4),%ecx - leal (%esi,%ecx,4),%edi -.align 4 -.L055invert: - movl (%esi),%eax - movl 4(%esi),%ebx - movl (%edi),%ecx - movl 4(%edi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,(%esi) - movl %edx,4(%esi) - movl 8(%esi),%eax - movl 12(%esi),%ebx - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,8(%edi) - movl %ebx,12(%edi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - addl $16,%esi - subl $16,%edi - cmpl %edi,%esi - jne .L055invert - movl 28(%esp),%edi - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,28(%esp) - movl 16(%edi),%eax -.align 4 -.L056permute: - addl $16,%edi - movl $2155905152,%ebp - andl %eax,%ebp - leal (%eax,%eax,1),%ebx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %esi,%ebx - movl $2155905152,%ebp - andl %ebx,%ebp - leal (%ebx,%ebx,1),%ecx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %eax,%ebx - xorl %esi,%ecx - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edx - movl %ebp,%esi - shrl $7,%ebp - xorl %eax,%ecx - subl %ebp,%esi - andl $4278124286,%edx - andl $454761243,%esi - roll $8,%eax - xorl %esi,%edx - movl 4(%edi),%ebp - xorl %ebx,%eax - xorl %edx,%ebx - xorl %ecx,%eax - roll $24,%ebx - xorl %edx,%ecx - xorl %edx,%eax - roll $16,%ecx - xorl %ebx,%eax - roll $8,%edx - xorl %ecx,%eax - movl %ebp,%ebx - xorl %edx,%eax - movl %eax,(%edi) - movl $2155905152,%ebp - andl %ebx,%ebp - leal (%ebx,%ebx,1),%ecx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %esi,%ecx - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %ebx,%ecx - xorl %esi,%edx - movl $2155905152,%ebp - andl %edx,%ebp - leal (%edx,%edx,1),%eax - movl %ebp,%esi - shrl $7,%ebp - xorl %ebx,%edx - subl %ebp,%esi - andl $4278124286,%eax - andl $454761243,%esi - roll $8,%ebx - xorl %esi,%eax - movl 8(%edi),%ebp - xorl %ecx,%ebx - xorl %eax,%ecx - xorl %edx,%ebx - roll $24,%ecx - xorl %eax,%edx - xorl %eax,%ebx - roll $16,%edx - xorl %ecx,%ebx - roll $8,%eax - xorl %edx,%ebx - movl %ebp,%ecx - xorl %eax,%ebx - movl %ebx,4(%edi) - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %esi,%edx - movl $2155905152,%ebp - andl %edx,%ebp - leal (%edx,%edx,1),%eax - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%eax - andl $454761243,%esi - xorl %ecx,%edx - xorl %esi,%eax - movl $2155905152,%ebp - andl %eax,%ebp - leal (%eax,%eax,1),%ebx - movl %ebp,%esi - shrl $7,%ebp - xorl %ecx,%eax - subl %ebp,%esi - andl $4278124286,%ebx - andl $454761243,%esi - roll $8,%ecx - xorl %esi,%ebx - movl 12(%edi),%ebp - xorl %edx,%ecx - xorl %ebx,%edx - xorl %eax,%ecx - roll $24,%edx - xorl %ebx,%eax - xorl %ebx,%ecx - roll $16,%eax - xorl %edx,%ecx - roll $8,%ebx - xorl %eax,%ecx - movl %ebp,%edx - xorl %ebx,%ecx - movl %ecx,8(%edi) - movl $2155905152,%ebp - andl %edx,%ebp - leal (%edx,%edx,1),%eax - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%eax - andl $454761243,%esi - xorl %esi,%eax - movl $2155905152,%ebp - andl %eax,%ebp - leal (%eax,%eax,1),%ebx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %edx,%eax - xorl %esi,%ebx - movl $2155905152,%ebp - andl %ebx,%ebp - leal (%ebx,%ebx,1),%ecx - movl %ebp,%esi - shrl $7,%ebp - xorl %edx,%ebx - subl %ebp,%esi - andl $4278124286,%ecx - andl $454761243,%esi - roll $8,%edx - xorl %esi,%ecx - movl 16(%edi),%ebp - xorl %eax,%edx - xorl %ecx,%eax - xorl %ebx,%edx - roll $24,%eax - xorl %ecx,%ebx - xorl %ecx,%edx - roll $16,%ebx - xorl %eax,%edx - roll $8,%ecx - xorl %ebx,%edx - movl %ebp,%eax - xorl %ecx,%edx - movl %edx,12(%edi) - cmpl 28(%esp),%edi - jb .L056permute - xorl %eax,%eax - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size aes_nohw_set_decrypt_key,.-.L_aes_nohw_set_decrypt_key_begin -.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 -.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 -.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -#endif diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aesni-x86.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aesni-x86.S index bd0f2715a52..a418869701d 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aesni-x86.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/aesni-x86.S @@ -6,7 +6,7 @@ #include #endif .text -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST #endif .globl aes_hw_encrypt .hidden aes_hw_encrypt @@ -14,7 +14,7 @@ .align 16 aes_hw_encrypt: .L_aes_hw_encrypt_begin: -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call .L000pic @@ -845,7 +845,7 @@ aes_hw_ctr32_encrypt_blocks: pushl %ebx pushl %esi pushl %edi -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call .L038pic @@ -2440,7 +2440,7 @@ _aesni_set_encrypt_key: .align 16 aes_hw_set_encrypt_key: .L_aes_hw_set_encrypt_key_begin: -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call .L116pic @@ -2510,3 +2510,4 @@ aes_hw_set_decrypt_key: .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 .byte 115,108,46,111,114,103,62,0 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/bn-586.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/bn-586.S index 64e36cece60..a765ad800f1 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/bn-586.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/bn-586.S @@ -993,551 +993,5 @@ bn_sub_words: popl %ebp ret .size bn_sub_words,.-.L_bn_sub_words_begin -.globl bn_sub_part_words -.hidden bn_sub_part_words -.type bn_sub_part_words,@function -.align 16 -bn_sub_part_words: -.L_bn_sub_part_words_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - movl 20(%esp),%ebx - movl 24(%esp),%esi - movl 28(%esp),%edi - movl 32(%esp),%ebp - xorl %eax,%eax - andl $4294967288,%ebp - jz .L029aw_finish -.L030aw_loop: - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - - movl 4(%esi),%ecx - movl 4(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,4(%ebx) - - movl 8(%esi),%ecx - movl 8(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,8(%ebx) - - movl 12(%esi),%ecx - movl 12(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,12(%ebx) - - movl 16(%esi),%ecx - movl 16(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,16(%ebx) - - movl 20(%esi),%ecx - movl 20(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,20(%ebx) - - movl 24(%esi),%ecx - movl 24(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,24(%ebx) - - movl 28(%esi),%ecx - movl 28(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,28(%ebx) - - addl $32,%esi - addl $32,%edi - addl $32,%ebx - subl $8,%ebp - jnz .L030aw_loop -.L029aw_finish: - movl 32(%esp),%ebp - andl $7,%ebp - jz .L031aw_end - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz .L031aw_end - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz .L031aw_end - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz .L031aw_end - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz .L031aw_end - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz .L031aw_end - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz .L031aw_end - - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx -.L031aw_end: - cmpl $0,36(%esp) - je .L032pw_end - movl 36(%esp),%ebp - cmpl $0,%ebp - je .L032pw_end - jge .L033pw_pos - - movl $0,%edx - subl %ebp,%edx - movl %edx,%ebp - andl $4294967288,%ebp - jz .L034pw_neg_finish -.L035pw_neg_loop: - - movl $0,%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - - movl $0,%ecx - movl 4(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,4(%ebx) - - movl $0,%ecx - movl 8(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,8(%ebx) - - movl $0,%ecx - movl 12(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,12(%ebx) - - movl $0,%ecx - movl 16(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,16(%ebx) - - movl $0,%ecx - movl 20(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,20(%ebx) - - movl $0,%ecx - movl 24(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,24(%ebx) - - movl $0,%ecx - movl 28(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,28(%ebx) - - addl $32,%edi - addl $32,%ebx - subl $8,%ebp - jnz .L035pw_neg_loop -.L034pw_neg_finish: - movl 36(%esp),%edx - movl $0,%ebp - subl %edx,%ebp - andl $7,%ebp - jz .L032pw_end - - movl $0,%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,(%ebx) - jz .L032pw_end - - movl $0,%ecx - movl 4(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,4(%ebx) - jz .L032pw_end - - movl $0,%ecx - movl 8(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,8(%ebx) - jz .L032pw_end - - movl $0,%ecx - movl 12(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,12(%ebx) - jz .L032pw_end - - movl $0,%ecx - movl 16(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,16(%ebx) - jz .L032pw_end - - movl $0,%ecx - movl 20(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,20(%ebx) - jz .L032pw_end - - movl $0,%ecx - movl 24(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,24(%ebx) - jmp .L032pw_end -.L033pw_pos: - andl $4294967288,%ebp - jz .L036pw_pos_finish -.L037pw_pos_loop: - - movl (%esi),%ecx - subl %eax,%ecx - movl %ecx,(%ebx) - jnc .L038pw_nc0 - - movl 4(%esi),%ecx - subl %eax,%ecx - movl %ecx,4(%ebx) - jnc .L039pw_nc1 - - movl 8(%esi),%ecx - subl %eax,%ecx - movl %ecx,8(%ebx) - jnc .L040pw_nc2 - - movl 12(%esi),%ecx - subl %eax,%ecx - movl %ecx,12(%ebx) - jnc .L041pw_nc3 - - movl 16(%esi),%ecx - subl %eax,%ecx - movl %ecx,16(%ebx) - jnc .L042pw_nc4 - - movl 20(%esi),%ecx - subl %eax,%ecx - movl %ecx,20(%ebx) - jnc .L043pw_nc5 - - movl 24(%esi),%ecx - subl %eax,%ecx - movl %ecx,24(%ebx) - jnc .L044pw_nc6 - - movl 28(%esi),%ecx - subl %eax,%ecx - movl %ecx,28(%ebx) - jnc .L045pw_nc7 - - addl $32,%esi - addl $32,%ebx - subl $8,%ebp - jnz .L037pw_pos_loop -.L036pw_pos_finish: - movl 36(%esp),%ebp - andl $7,%ebp - jz .L032pw_end - - movl (%esi),%ecx - subl %eax,%ecx - movl %ecx,(%ebx) - jnc .L046pw_tail_nc0 - decl %ebp - jz .L032pw_end - - movl 4(%esi),%ecx - subl %eax,%ecx - movl %ecx,4(%ebx) - jnc .L047pw_tail_nc1 - decl %ebp - jz .L032pw_end - - movl 8(%esi),%ecx - subl %eax,%ecx - movl %ecx,8(%ebx) - jnc .L048pw_tail_nc2 - decl %ebp - jz .L032pw_end - - movl 12(%esi),%ecx - subl %eax,%ecx - movl %ecx,12(%ebx) - jnc .L049pw_tail_nc3 - decl %ebp - jz .L032pw_end - - movl 16(%esi),%ecx - subl %eax,%ecx - movl %ecx,16(%ebx) - jnc .L050pw_tail_nc4 - decl %ebp - jz .L032pw_end - - movl 20(%esi),%ecx - subl %eax,%ecx - movl %ecx,20(%ebx) - jnc .L051pw_tail_nc5 - decl %ebp - jz .L032pw_end - - movl 24(%esi),%ecx - subl %eax,%ecx - movl %ecx,24(%ebx) - jnc .L052pw_tail_nc6 - movl $1,%eax - jmp .L032pw_end -.L053pw_nc_loop: - movl (%esi),%ecx - movl %ecx,(%ebx) -.L038pw_nc0: - movl 4(%esi),%ecx - movl %ecx,4(%ebx) -.L039pw_nc1: - movl 8(%esi),%ecx - movl %ecx,8(%ebx) -.L040pw_nc2: - movl 12(%esi),%ecx - movl %ecx,12(%ebx) -.L041pw_nc3: - movl 16(%esi),%ecx - movl %ecx,16(%ebx) -.L042pw_nc4: - movl 20(%esi),%ecx - movl %ecx,20(%ebx) -.L043pw_nc5: - movl 24(%esi),%ecx - movl %ecx,24(%ebx) -.L044pw_nc6: - movl 28(%esi),%ecx - movl %ecx,28(%ebx) -.L045pw_nc7: - - addl $32,%esi - addl $32,%ebx - subl $8,%ebp - jnz .L053pw_nc_loop - movl 36(%esp),%ebp - andl $7,%ebp - jz .L054pw_nc_end - movl (%esi),%ecx - movl %ecx,(%ebx) -.L046pw_tail_nc0: - decl %ebp - jz .L054pw_nc_end - movl 4(%esi),%ecx - movl %ecx,4(%ebx) -.L047pw_tail_nc1: - decl %ebp - jz .L054pw_nc_end - movl 8(%esi),%ecx - movl %ecx,8(%ebx) -.L048pw_tail_nc2: - decl %ebp - jz .L054pw_nc_end - movl 12(%esi),%ecx - movl %ecx,12(%ebx) -.L049pw_tail_nc3: - decl %ebp - jz .L054pw_nc_end - movl 16(%esi),%ecx - movl %ecx,16(%ebx) -.L050pw_tail_nc4: - decl %ebp - jz .L054pw_nc_end - movl 20(%esi),%ecx - movl %ecx,20(%ebx) -.L051pw_tail_nc5: - decl %ebp - jz .L054pw_nc_end - movl 24(%esi),%ecx - movl %ecx,24(%ebx) -.L052pw_tail_nc6: -.L054pw_nc_end: - movl $0,%eax -.L032pw_end: - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size bn_sub_part_words,.-.L_bn_sub_part_words_begin #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/co-586.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/co-586.S index b617d81a2c4..837b0cb5c71 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/co-586.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/co-586.S @@ -1263,3 +1263,4 @@ bn_sqr_comba4: ret .size bn_sqr_comba4,.-.L_bn_sqr_comba4_begin #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S index 7aa0ea5211f..3e5f2d7e547 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S @@ -291,3 +291,4 @@ gcm_ghash_ssse3: .Llow4_mask: .long 252645135,252645135,252645135,252645135 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-x86.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-x86.S index e1830784b0a..b9e7428d7e5 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-x86.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/ghash-x86.S @@ -6,711 +6,6 @@ #include #endif .text -.globl gcm_gmult_4bit_mmx -.hidden gcm_gmult_4bit_mmx -.type gcm_gmult_4bit_mmx,@function -.align 16 -gcm_gmult_4bit_mmx: -.L_gcm_gmult_4bit_mmx_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%edi - movl 24(%esp),%esi - call .L000pic_point -.L000pic_point: - popl %eax - leal .Lrem_4bit-.L000pic_point(%eax),%eax - movzbl 15(%edi),%ebx - xorl %ecx,%ecx - movl %ebx,%edx - movb %dl,%cl - movl $14,%ebp - shlb $4,%cl - andl $240,%edx - movq 8(%esi,%ecx,1),%mm0 - movq (%esi,%ecx,1),%mm1 - movd %mm0,%ebx - jmp .L001mmx_loop -.align 16 -.L001mmx_loop: - psrlq $4,%mm0 - andl $15,%ebx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%edx,1),%mm0 - movb (%edi,%ebp,1),%cl - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - decl %ebp - movd %mm0,%ebx - pxor (%esi,%edx,1),%mm1 - movl %ecx,%edx - pxor %mm2,%mm0 - js .L002mmx_break - shlb $4,%cl - andl $15,%ebx - psrlq $4,%mm0 - andl $240,%edx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%ecx,1),%mm0 - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - movd %mm0,%ebx - pxor (%esi,%ecx,1),%mm1 - pxor %mm2,%mm0 - jmp .L001mmx_loop -.align 16 -.L002mmx_break: - shlb $4,%cl - andl $15,%ebx - psrlq $4,%mm0 - andl $240,%edx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%ecx,1),%mm0 - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - movd %mm0,%ebx - pxor (%esi,%ecx,1),%mm1 - pxor %mm2,%mm0 - psrlq $4,%mm0 - andl $15,%ebx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%edx,1),%mm0 - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - movd %mm0,%ebx - pxor (%esi,%edx,1),%mm1 - pxor %mm2,%mm0 - psrlq $32,%mm0 - movd %mm1,%edx - psrlq $32,%mm1 - movd %mm0,%ecx - movd %mm1,%ebp - bswap %ebx - bswap %edx - bswap %ecx - bswap %ebp - emms - movl %ebx,12(%edi) - movl %edx,4(%edi) - movl %ecx,8(%edi) - movl %ebp,(%edi) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin -.globl gcm_ghash_4bit_mmx -.hidden gcm_ghash_4bit_mmx -.type gcm_ghash_4bit_mmx,@function -.align 16 -gcm_ghash_4bit_mmx: -.L_gcm_ghash_4bit_mmx_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%eax - movl 24(%esp),%ebx - movl 28(%esp),%ecx - movl 32(%esp),%edx - movl %esp,%ebp - call .L003pic_point -.L003pic_point: - popl %esi - leal .Lrem_8bit-.L003pic_point(%esi),%esi - subl $544,%esp - andl $-64,%esp - subl $16,%esp - addl %ecx,%edx - movl %eax,544(%esp) - movl %edx,552(%esp) - movl %ebp,556(%esp) - addl $128,%ebx - leal 144(%esp),%edi - leal 400(%esp),%ebp - movl -120(%ebx),%edx - movq -120(%ebx),%mm0 - movq -128(%ebx),%mm3 - shll $4,%edx - movb %dl,(%esp) - movl -104(%ebx),%edx - movq -104(%ebx),%mm2 - movq -112(%ebx),%mm5 - movq %mm0,-128(%edi) - psrlq $4,%mm0 - movq %mm3,(%edi) - movq %mm3,%mm7 - psrlq $4,%mm3 - shll $4,%edx - movb %dl,1(%esp) - movl -88(%ebx),%edx - movq -88(%ebx),%mm1 - psllq $60,%mm7 - movq -96(%ebx),%mm4 - por %mm7,%mm0 - movq %mm2,-120(%edi) - psrlq $4,%mm2 - movq %mm5,8(%edi) - movq %mm5,%mm6 - movq %mm0,-128(%ebp) - psrlq $4,%mm5 - movq %mm3,(%ebp) - shll $4,%edx - movb %dl,2(%esp) - movl -72(%ebx),%edx - movq -72(%ebx),%mm0 - psllq $60,%mm6 - movq -80(%ebx),%mm3 - por %mm6,%mm2 - movq %mm1,-112(%edi) - psrlq $4,%mm1 - movq %mm4,16(%edi) - movq %mm4,%mm7 - movq %mm2,-120(%ebp) - psrlq $4,%mm4 - movq %mm5,8(%ebp) - shll $4,%edx - movb %dl,3(%esp) - movl -56(%ebx),%edx - movq -56(%ebx),%mm2 - psllq $60,%mm7 - movq -64(%ebx),%mm5 - por %mm7,%mm1 - movq %mm0,-104(%edi) - psrlq $4,%mm0 - movq %mm3,24(%edi) - movq %mm3,%mm6 - movq %mm1,-112(%ebp) - psrlq $4,%mm3 - movq %mm4,16(%ebp) - shll $4,%edx - movb %dl,4(%esp) - movl -40(%ebx),%edx - movq -40(%ebx),%mm1 - psllq $60,%mm6 - movq -48(%ebx),%mm4 - por %mm6,%mm0 - movq %mm2,-96(%edi) - psrlq $4,%mm2 - movq %mm5,32(%edi) - movq %mm5,%mm7 - movq %mm0,-104(%ebp) - psrlq $4,%mm5 - movq %mm3,24(%ebp) - shll $4,%edx - movb %dl,5(%esp) - movl -24(%ebx),%edx - movq -24(%ebx),%mm0 - psllq $60,%mm7 - movq -32(%ebx),%mm3 - por %mm7,%mm2 - movq %mm1,-88(%edi) - psrlq $4,%mm1 - movq %mm4,40(%edi) - movq %mm4,%mm6 - movq %mm2,-96(%ebp) - psrlq $4,%mm4 - movq %mm5,32(%ebp) - shll $4,%edx - movb %dl,6(%esp) - movl -8(%ebx),%edx - movq -8(%ebx),%mm2 - psllq $60,%mm6 - movq -16(%ebx),%mm5 - por %mm6,%mm1 - movq %mm0,-80(%edi) - psrlq $4,%mm0 - movq %mm3,48(%edi) - movq %mm3,%mm7 - movq %mm1,-88(%ebp) - psrlq $4,%mm3 - movq %mm4,40(%ebp) - shll $4,%edx - movb %dl,7(%esp) - movl 8(%ebx),%edx - movq 8(%ebx),%mm1 - psllq $60,%mm7 - movq (%ebx),%mm4 - por %mm7,%mm0 - movq %mm2,-72(%edi) - psrlq $4,%mm2 - movq %mm5,56(%edi) - movq %mm5,%mm6 - movq %mm0,-80(%ebp) - psrlq $4,%mm5 - movq %mm3,48(%ebp) - shll $4,%edx - movb %dl,8(%esp) - movl 24(%ebx),%edx - movq 24(%ebx),%mm0 - psllq $60,%mm6 - movq 16(%ebx),%mm3 - por %mm6,%mm2 - movq %mm1,-64(%edi) - psrlq $4,%mm1 - movq %mm4,64(%edi) - movq %mm4,%mm7 - movq %mm2,-72(%ebp) - psrlq $4,%mm4 - movq %mm5,56(%ebp) - shll $4,%edx - movb %dl,9(%esp) - movl 40(%ebx),%edx - movq 40(%ebx),%mm2 - psllq $60,%mm7 - movq 32(%ebx),%mm5 - por %mm7,%mm1 - movq %mm0,-56(%edi) - psrlq $4,%mm0 - movq %mm3,72(%edi) - movq %mm3,%mm6 - movq %mm1,-64(%ebp) - psrlq $4,%mm3 - movq %mm4,64(%ebp) - shll $4,%edx - movb %dl,10(%esp) - movl 56(%ebx),%edx - movq 56(%ebx),%mm1 - psllq $60,%mm6 - movq 48(%ebx),%mm4 - por %mm6,%mm0 - movq %mm2,-48(%edi) - psrlq $4,%mm2 - movq %mm5,80(%edi) - movq %mm5,%mm7 - movq %mm0,-56(%ebp) - psrlq $4,%mm5 - movq %mm3,72(%ebp) - shll $4,%edx - movb %dl,11(%esp) - movl 72(%ebx),%edx - movq 72(%ebx),%mm0 - psllq $60,%mm7 - movq 64(%ebx),%mm3 - por %mm7,%mm2 - movq %mm1,-40(%edi) - psrlq $4,%mm1 - movq %mm4,88(%edi) - movq %mm4,%mm6 - movq %mm2,-48(%ebp) - psrlq $4,%mm4 - movq %mm5,80(%ebp) - shll $4,%edx - movb %dl,12(%esp) - movl 88(%ebx),%edx - movq 88(%ebx),%mm2 - psllq $60,%mm6 - movq 80(%ebx),%mm5 - por %mm6,%mm1 - movq %mm0,-32(%edi) - psrlq $4,%mm0 - movq %mm3,96(%edi) - movq %mm3,%mm7 - movq %mm1,-40(%ebp) - psrlq $4,%mm3 - movq %mm4,88(%ebp) - shll $4,%edx - movb %dl,13(%esp) - movl 104(%ebx),%edx - movq 104(%ebx),%mm1 - psllq $60,%mm7 - movq 96(%ebx),%mm4 - por %mm7,%mm0 - movq %mm2,-24(%edi) - psrlq $4,%mm2 - movq %mm5,104(%edi) - movq %mm5,%mm6 - movq %mm0,-32(%ebp) - psrlq $4,%mm5 - movq %mm3,96(%ebp) - shll $4,%edx - movb %dl,14(%esp) - movl 120(%ebx),%edx - movq 120(%ebx),%mm0 - psllq $60,%mm6 - movq 112(%ebx),%mm3 - por %mm6,%mm2 - movq %mm1,-16(%edi) - psrlq $4,%mm1 - movq %mm4,112(%edi) - movq %mm4,%mm7 - movq %mm2,-24(%ebp) - psrlq $4,%mm4 - movq %mm5,104(%ebp) - shll $4,%edx - movb %dl,15(%esp) - psllq $60,%mm7 - por %mm7,%mm1 - movq %mm0,-8(%edi) - psrlq $4,%mm0 - movq %mm3,120(%edi) - movq %mm3,%mm6 - movq %mm1,-16(%ebp) - psrlq $4,%mm3 - movq %mm4,112(%ebp) - psllq $60,%mm6 - por %mm6,%mm0 - movq %mm0,-8(%ebp) - movq %mm3,120(%ebp) - movq (%eax),%mm6 - movl 8(%eax),%ebx - movl 12(%eax),%edx -.align 16 -.L004outer: - xorl 12(%ecx),%edx - xorl 8(%ecx),%ebx - pxor (%ecx),%mm6 - leal 16(%ecx),%ecx - movl %ebx,536(%esp) - movq %mm6,528(%esp) - movl %ecx,548(%esp) - xorl %eax,%eax - roll $8,%edx - movb %dl,%al - movl %eax,%ebp - andb $15,%al - shrl $4,%ebp - pxor %mm0,%mm0 - roll $8,%edx - pxor %mm1,%mm1 - pxor %mm2,%mm2 - movq 16(%esp,%eax,8),%mm7 - movq 144(%esp,%eax,8),%mm6 - movb %dl,%al - movd %mm7,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - shrl $4,%edi - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 536(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 532(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 528(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 524(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - pxor 144(%esp,%eax,8),%mm6 - xorb (%esp,%ebp,1),%bl - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - movzbl %bl,%ebx - pxor %mm2,%mm2 - psllq $4,%mm1 - movd %mm7,%ecx - psrlq $4,%mm7 - movq %mm6,%mm3 - psrlq $4,%mm6 - shll $4,%ecx - pxor 16(%esp,%edi,8),%mm7 - psllq $60,%mm3 - movzbl %cl,%ecx - pxor %mm3,%mm7 - pxor 144(%esp,%edi,8),%mm6 - pinsrw $2,(%esi,%ebx,2),%mm0 - pxor %mm1,%mm6 - movd %mm7,%edx - pinsrw $3,(%esi,%ecx,2),%mm2 - psllq $12,%mm0 - pxor %mm0,%mm6 - psrlq $32,%mm7 - pxor %mm2,%mm6 - movl 548(%esp),%ecx - movd %mm7,%ebx - movq %mm6,%mm3 - psllw $8,%mm6 - psrlw $8,%mm3 - por %mm3,%mm6 - bswap %edx - pshufw $27,%mm6,%mm6 - bswap %ebx - cmpl 552(%esp),%ecx - jne .L004outer - movl 544(%esp),%eax - movl %edx,12(%eax) - movl %ebx,8(%eax) - movq %mm6,(%eax) - movl 556(%esp),%esp - emms - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin .globl gcm_init_clmul .hidden gcm_init_clmul .type gcm_init_clmul,@function @@ -719,10 +14,10 @@ gcm_init_clmul: .L_gcm_init_clmul_begin: movl 4(%esp),%edx movl 8(%esp),%eax - call .L005pic -.L005pic: + call .L000pic +.L000pic: popl %ecx - leal .Lbswap-.L005pic(%ecx),%ecx + leal .Lbswap-.L000pic(%ecx),%ecx movdqu (%eax),%xmm2 pshufd $78,%xmm2,%xmm2 pshufd $255,%xmm2,%xmm4 @@ -789,10 +84,10 @@ gcm_gmult_clmul: .L_gcm_gmult_clmul_begin: movl 4(%esp),%eax movl 8(%esp),%edx - call .L006pic -.L006pic: + call .L001pic +.L001pic: popl %ecx - leal .Lbswap-.L006pic(%ecx),%ecx + leal .Lbswap-.L001pic(%ecx),%ecx movdqu (%eax),%xmm0 movdqa (%ecx),%xmm5 movups (%edx),%xmm2 @@ -849,16 +144,16 @@ gcm_ghash_clmul: movl 24(%esp),%edx movl 28(%esp),%esi movl 32(%esp),%ebx - call .L007pic -.L007pic: + call .L002pic +.L002pic: popl %ecx - leal .Lbswap-.L007pic(%ecx),%ecx + leal .Lbswap-.L002pic(%ecx),%ecx movdqu (%eax),%xmm0 movdqa (%ecx),%xmm5 movdqu (%edx),%xmm2 .byte 102,15,56,0,197 subl $16,%ebx - jz .L008odd_tail + jz .L003odd_tail movdqu (%esi),%xmm3 movdqu 16(%esi),%xmm6 .byte 102,15,56,0,221 @@ -875,10 +170,10 @@ gcm_ghash_clmul: movups 16(%edx),%xmm2 nop subl $32,%ebx - jbe .L009even_tail - jmp .L010mod_loop + jbe .L004even_tail + jmp .L005mod_loop .align 32 -.L010mod_loop: +.L005mod_loop: pshufd $78,%xmm0,%xmm4 movdqa %xmm0,%xmm1 pxor %xmm0,%xmm4 @@ -933,8 +228,8 @@ gcm_ghash_clmul: .byte 102,15,58,68,221,0 leal 32(%esi),%esi subl $32,%ebx - ja .L010mod_loop -.L009even_tail: + ja .L005mod_loop +.L004even_tail: pshufd $78,%xmm0,%xmm4 movdqa %xmm0,%xmm1 pxor %xmm0,%xmm4 @@ -973,9 +268,9 @@ gcm_ghash_clmul: psrlq $1,%xmm0 pxor %xmm1,%xmm0 testl %ebx,%ebx - jnz .L011done + jnz .L006done movups (%edx),%xmm2 -.L008odd_tail: +.L003odd_tail: movdqu (%esi),%xmm3 .byte 102,15,56,0,221 pxor %xmm3,%xmm0 @@ -1014,7 +309,7 @@ gcm_ghash_clmul: pxor %xmm4,%xmm0 psrlq $1,%xmm0 pxor %xmm1,%xmm0 -.L011done: +.L006done: .byte 102,15,56,0,197 movdqu %xmm0,(%eax) popl %edi @@ -1027,48 +322,9 @@ gcm_ghash_clmul: .Lbswap: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194 -.align 64 -.Lrem_8bit: -.value 0,450,900,582,1800,1738,1164,1358 -.value 3600,4050,3476,3158,2328,2266,2716,2910 -.value 7200,7650,8100,7782,6952,6890,6316,6510 -.value 4656,5106,4532,4214,5432,5370,5820,6014 -.value 14400,14722,15300,14854,16200,16010,15564,15630 -.value 13904,14226,13780,13334,12632,12442,13020,13086 -.value 9312,9634,10212,9766,9064,8874,8428,8494 -.value 10864,11186,10740,10294,11640,11450,12028,12094 -.value 28800,28994,29444,29382,30600,30282,29708,30158 -.value 32400,32594,32020,31958,31128,30810,31260,31710 -.value 27808,28002,28452,28390,27560,27242,26668,27118 -.value 25264,25458,24884,24822,26040,25722,26172,26622 -.value 18624,18690,19268,19078,20424,19978,19532,19854 -.value 18128,18194,17748,17558,16856,16410,16988,17310 -.value 21728,21794,22372,22182,21480,21034,20588,20910 -.value 23280,23346,22900,22710,24056,23610,24188,24510 -.value 57600,57538,57988,58182,58888,59338,58764,58446 -.value 61200,61138,60564,60758,59416,59866,60316,59998 -.value 64800,64738,65188,65382,64040,64490,63916,63598 -.value 62256,62194,61620,61814,62520,62970,63420,63102 -.value 55616,55426,56004,56070,56904,57226,56780,56334 -.value 55120,54930,54484,54550,53336,53658,54236,53790 -.value 50528,50338,50916,50982,49768,50090,49644,49198 -.value 52080,51890,51444,51510,52344,52666,53244,52798 -.value 37248,36930,37380,37830,38536,38730,38156,38094 -.value 40848,40530,39956,40406,39064,39258,39708,39646 -.value 36256,35938,36388,36838,35496,35690,35116,35054 -.value 33712,33394,32820,33270,33976,34170,34620,34558 -.value 43456,43010,43588,43910,44744,44810,44364,44174 -.value 42960,42514,42068,42390,41176,41242,41820,41630 -.value 46560,46114,46692,47014,45800,45866,45420,45230 -.value 48112,47666,47220,47542,48376,48442,49020,48830 -.align 64 -.Lrem_4bit: -.long 0,0,0,471859200,0,943718400,0,610271232 -.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 -.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 -.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 .byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 .byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 .byte 0 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/md5-586.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/md5-586.S index cc0dcd8361d..6de8ff886af 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/md5-586.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/md5-586.S @@ -685,3 +685,4 @@ md5_block_asm_data_order: ret .size md5_block_asm_data_order,.-.L_md5_block_asm_data_order_begin #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha1-586.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha1-586.S index 4df4d061c55..4449e38f72a 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha1-586.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha1-586.S @@ -3805,3 +3805,4 @@ _sha1_block_data_order_avx: .byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 .byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha256-586.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha256-586.S index 39d57786233..f61fa3df72a 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha256-586.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha256-586.S @@ -5564,3 +5564,4 @@ sha256_block_data_order: ret .size sha256_block_data_order,.-.L_sha256_block_data_order_begin #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha512-586.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha512-586.S index c8dd6770dae..89fb50b4ca8 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha512-586.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/sha512-586.S @@ -2834,3 +2834,4 @@ sha512_block_data_order: .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 .byte 62,0 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/vpaes-x86.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/vpaes-x86.S index 4ea92ed08b2..8807116950b 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/vpaes-x86.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/vpaes-x86.S @@ -6,7 +6,7 @@ #include #endif .text -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST #endif .align 64 .L_vpaes_consts: @@ -485,7 +485,7 @@ vpaes_set_encrypt_key: pushl %ebx pushl %esi pushl %edi -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call .L016pic @@ -570,7 +570,7 @@ vpaes_encrypt: pushl %ebx pushl %esi pushl %edi -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call .L019pic @@ -705,3 +705,4 @@ vpaes_cbc_encrypt: ret .size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/x86-mont.S b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/x86-mont.S index 9924c02820f..f2c6fde7c66 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/x86-mont.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/fipsmodule/x86-mont.S @@ -481,3 +481,4 @@ bn_mul_mont: .byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 .byte 111,114,103,62,0 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86/crypto/test/trampoline-x86.S b/contrib/boringssl-cmake/linux-x86/crypto/test/trampoline-x86.S index 2222347aaee..13eb677c973 100644 --- a/contrib/boringssl-cmake/linux-x86/crypto/test/trampoline-x86.S +++ b/contrib/boringssl-cmake/linux-x86/crypto/test/trampoline-x86.S @@ -203,3 +203,4 @@ abi_test_clobber_xmm7: ret .size abi_test_clobber_xmm7,.-.L_abi_test_clobber_xmm7_begin #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/chacha/chacha-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/chacha/chacha-x86_64.S index 4e2267bb234..b76713398d8 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/chacha/chacha-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/chacha/chacha-x86_64.S @@ -1630,3 +1630,4 @@ ChaCha20_8x: .cfi_endproc .size ChaCha20_8x,.-ChaCha20_8x #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S index 3eb1688c439..a22bee8fcf2 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S @@ -3076,3 +3076,4 @@ aes256gcmsiv_kdf: .cfi_endproc .size aes256gcmsiv_kdf, .-aes256gcmsiv_kdf #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S index 677335b9633..aefa5432d87 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S @@ -3935,7 +3935,7 @@ do_length_block: popq %rbp .cfi_adjust_cfa_offset -8 .byte 0xf3,0xc3 -.cfi_adjust_cfa_offset (8 * 6) + 288 + 32 +.cfi_adjust_cfa_offset (8 * 7) + 288 + 32 seal_sse_128: movdqu .chacha20_consts(%rip),%xmm0 @@ -8984,3 +8984,4 @@ seal_avx2_short_tail: jmp seal_sse_tail_16 .cfi_endproc #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aes-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aes-x86_64.S deleted file mode 100644 index f45e010e281..00000000000 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aes-x86_64.S +++ /dev/null @@ -1,2664 +0,0 @@ -# This file is generated from a similarly-named Perl script in the BoringSSL -# source tree. Do not edit by hand. - -#if defined(__has_feature) -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif -#endif - -#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.text -.type _x86_64_AES_encrypt,@function -.align 16 -_x86_64_AES_encrypt: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - - movl 240(%r15),%r13d - subl $1,%r13d - jmp .Lenc_loop -.align 16 -.Lenc_loop: - - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movl 0(%r14,%rsi,8),%r10d - movl 0(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r12d - - movzbl %bh,%esi - movzbl %ch,%edi - movzbl %dl,%ebp - xorl 3(%r14,%rsi,8),%r10d - xorl 3(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r8d - - movzbl %dh,%esi - shrl $16,%ecx - movzbl %ah,%ebp - xorl 3(%r14,%rsi,8),%r12d - shrl $16,%edx - xorl 3(%r14,%rbp,8),%r8d - - shrl $16,%ebx - leaq 16(%r15),%r15 - shrl $16,%eax - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - xorl 2(%r14,%rsi,8),%r10d - xorl 2(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r12d - - movzbl %dh,%esi - movzbl %ah,%edi - movzbl %bl,%ebp - xorl 1(%r14,%rsi,8),%r10d - xorl 1(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r8d - - movl 12(%r15),%edx - movzbl %bh,%edi - movzbl %ch,%ebp - movl 0(%r15),%eax - xorl 1(%r14,%rdi,8),%r12d - xorl 1(%r14,%rbp,8),%r8d - - movl 4(%r15),%ebx - movl 8(%r15),%ecx - xorl %r10d,%eax - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx - subl $1,%r13d - jnz .Lenc_loop - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movzbl 2(%r14,%rsi,8),%r10d - movzbl 2(%r14,%rdi,8),%r11d - movzbl 2(%r14,%rbp,8),%r12d - - movzbl %dl,%esi - movzbl %bh,%edi - movzbl %ch,%ebp - movzbl 2(%r14,%rsi,8),%r8d - movl 0(%r14,%rdi,8),%edi - movl 0(%r14,%rbp,8),%ebp - - andl $0x0000ff00,%edi - andl $0x0000ff00,%ebp - - xorl %edi,%r10d - xorl %ebp,%r11d - shrl $16,%ecx - - movzbl %dh,%esi - movzbl %ah,%edi - shrl $16,%edx - movl 0(%r14,%rsi,8),%esi - movl 0(%r14,%rdi,8),%edi - - andl $0x0000ff00,%esi - andl $0x0000ff00,%edi - shrl $16,%ebx - xorl %esi,%r12d - xorl %edi,%r8d - shrl $16,%eax - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - movl 0(%r14,%rsi,8),%esi - movl 0(%r14,%rdi,8),%edi - movl 0(%r14,%rbp,8),%ebp - - andl $0x00ff0000,%esi - andl $0x00ff0000,%edi - andl $0x00ff0000,%ebp - - xorl %esi,%r10d - xorl %edi,%r11d - xorl %ebp,%r12d - - movzbl %bl,%esi - movzbl %dh,%edi - movzbl %ah,%ebp - movl 0(%r14,%rsi,8),%esi - movl 2(%r14,%rdi,8),%edi - movl 2(%r14,%rbp,8),%ebp - - andl $0x00ff0000,%esi - andl $0xff000000,%edi - andl $0xff000000,%ebp - - xorl %esi,%r8d - xorl %edi,%r10d - xorl %ebp,%r11d - - movzbl %bh,%esi - movzbl %ch,%edi - movl 16+12(%r15),%edx - movl 2(%r14,%rsi,8),%esi - movl 2(%r14,%rdi,8),%edi - movl 16+0(%r15),%eax - - andl $0xff000000,%esi - andl $0xff000000,%edi - - xorl %esi,%r12d - xorl %edi,%r8d - - movl 16+4(%r15),%ebx - movl 16+8(%r15),%ecx - xorl %r10d,%eax - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx -.byte 0xf3,0xc3 -.size _x86_64_AES_encrypt,.-_x86_64_AES_encrypt -.type _x86_64_AES_encrypt_compact,@function -.align 16 -_x86_64_AES_encrypt_compact: -.cfi_startproc - leaq 128(%r14),%r8 - movl 0-128(%r8),%edi - movl 32-128(%r8),%ebp - movl 64-128(%r8),%r10d - movl 96-128(%r8),%r11d - movl 128-128(%r8),%edi - movl 160-128(%r8),%ebp - movl 192-128(%r8),%r10d - movl 224-128(%r8),%r11d - jmp .Lenc_loop_compact -.align 16 -.Lenc_loop_compact: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - leaq 16(%r15),%r15 - movzbl %al,%r10d - movzbl %bl,%r11d - movzbl %cl,%r12d - movzbl %dl,%r8d - movzbl %bh,%esi - movzbl %ch,%edi - shrl $16,%ecx - movzbl %dh,%ebp - movzbl (%r14,%r10,1),%r10d - movzbl (%r14,%r11,1),%r11d - movzbl (%r14,%r12,1),%r12d - movzbl (%r14,%r8,1),%r8d - - movzbl (%r14,%rsi,1),%r9d - movzbl %ah,%esi - movzbl (%r14,%rdi,1),%r13d - movzbl %cl,%edi - movzbl (%r14,%rbp,1),%ebp - movzbl (%r14,%rsi,1),%esi - - shll $8,%r9d - shrl $16,%edx - shll $8,%r13d - xorl %r9d,%r10d - shrl $16,%eax - movzbl %dl,%r9d - shrl $16,%ebx - xorl %r13d,%r11d - shll $8,%ebp - movzbl %al,%r13d - movzbl (%r14,%rdi,1),%edi - xorl %ebp,%r12d - - shll $8,%esi - movzbl %bl,%ebp - shll $16,%edi - xorl %esi,%r8d - movzbl (%r14,%r9,1),%r9d - movzbl %dh,%esi - movzbl (%r14,%r13,1),%r13d - xorl %edi,%r10d - - shrl $8,%ecx - movzbl %ah,%edi - shll $16,%r9d - shrl $8,%ebx - shll $16,%r13d - xorl %r9d,%r11d - movzbl (%r14,%rbp,1),%ebp - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rcx,1),%edx - movzbl (%r14,%rbx,1),%ecx - - shll $16,%ebp - xorl %r13d,%r12d - shll $24,%esi - xorl %ebp,%r8d - shll $24,%edi - xorl %esi,%r10d - shll $24,%edx - xorl %edi,%r11d - shll $24,%ecx - movl %r10d,%eax - movl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx - cmpq 16(%rsp),%r15 - je .Lenc_compact_done - movl $0x80808080,%r10d - movl $0x80808080,%r11d - andl %eax,%r10d - andl %ebx,%r11d - movl %r10d,%esi - movl %r11d,%edi - shrl $7,%r10d - leal (%rax,%rax,1),%r8d - shrl $7,%r11d - leal (%rbx,%rbx,1),%r9d - subl %r10d,%esi - subl %r11d,%edi - andl $0xfefefefe,%r8d - andl $0xfefefefe,%r9d - andl $0x1b1b1b1b,%esi - andl $0x1b1b1b1b,%edi - movl %eax,%r10d - movl %ebx,%r11d - xorl %esi,%r8d - xorl %edi,%r9d - - xorl %r8d,%eax - xorl %r9d,%ebx - movl $0x80808080,%r12d - roll $24,%eax - movl $0x80808080,%ebp - roll $24,%ebx - andl %ecx,%r12d - andl %edx,%ebp - xorl %r8d,%eax - xorl %r9d,%ebx - movl %r12d,%esi - rorl $16,%r10d - movl %ebp,%edi - rorl $16,%r11d - leal (%rcx,%rcx,1),%r8d - shrl $7,%r12d - xorl %r10d,%eax - shrl $7,%ebp - xorl %r11d,%ebx - rorl $8,%r10d - leal (%rdx,%rdx,1),%r9d - rorl $8,%r11d - subl %r12d,%esi - subl %ebp,%edi - xorl %r10d,%eax - xorl %r11d,%ebx - - andl $0xfefefefe,%r8d - andl $0xfefefefe,%r9d - andl $0x1b1b1b1b,%esi - andl $0x1b1b1b1b,%edi - movl %ecx,%r12d - movl %edx,%ebp - xorl %esi,%r8d - xorl %edi,%r9d - - rorl $16,%r12d - xorl %r8d,%ecx - rorl $16,%ebp - xorl %r9d,%edx - roll $24,%ecx - movl 0(%r14),%esi - roll $24,%edx - xorl %r8d,%ecx - movl 64(%r14),%edi - xorl %r9d,%edx - movl 128(%r14),%r8d - xorl %r12d,%ecx - rorl $8,%r12d - xorl %ebp,%edx - rorl $8,%ebp - xorl %r12d,%ecx - movl 192(%r14),%r9d - xorl %ebp,%edx - jmp .Lenc_loop_compact -.align 16 -.Lenc_compact_done: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx -.byte 0xf3,0xc3 -.cfi_endproc -.size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact -.align 16 -.globl aes_nohw_encrypt -.hidden aes_nohw_encrypt -.type aes_nohw_encrypt,@function -.hidden aes_nohw_encrypt -aes_nohw_encrypt: -.cfi_startproc - movq %rsp,%rax -.cfi_def_cfa_register %rax - pushq %rbx -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_offset %r15,-56 - - - leaq -63(%rdx),%rcx - andq $-64,%rsp - subq %rsp,%rcx - negq %rcx - andq $0x3c0,%rcx - subq %rcx,%rsp - subq $32,%rsp - - movq %rsi,16(%rsp) - movq %rax,24(%rsp) -.cfi_escape 0x0f,0x05,0x77,0x18,0x06,0x23,0x08 -.Lenc_prologue: - - movq %rdx,%r15 - movl 240(%r15),%r13d - - movl 0(%rdi),%eax - movl 4(%rdi),%ebx - movl 8(%rdi),%ecx - movl 12(%rdi),%edx - - shll $4,%r13d - leaq (%r15,%r13,1),%rbp - movq %r15,(%rsp) - movq %rbp,8(%rsp) - - - leaq .LAES_Te+2048(%rip),%r14 - leaq 768(%rsp),%rbp - subq %r14,%rbp - andq $0x300,%rbp - leaq (%r14,%rbp,1),%r14 - - call _x86_64_AES_encrypt_compact - - movq 16(%rsp),%r9 - movq 24(%rsp),%rsi -.cfi_def_cfa %rsi,8 - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - movq -48(%rsi),%r15 -.cfi_restore %r15 - movq -40(%rsi),%r14 -.cfi_restore %r14 - movq -32(%rsi),%r13 -.cfi_restore %r13 - movq -24(%rsi),%r12 -.cfi_restore %r12 - movq -16(%rsi),%rbp -.cfi_restore %rbp - movq -8(%rsi),%rbx -.cfi_restore %rbx - leaq (%rsi),%rsp -.cfi_def_cfa_register %rsp -.Lenc_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size aes_nohw_encrypt,.-aes_nohw_encrypt -.type _x86_64_AES_decrypt,@function -.align 16 -_x86_64_AES_decrypt: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - - movl 240(%r15),%r13d - subl $1,%r13d - jmp .Ldec_loop -.align 16 -.Ldec_loop: - - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movl 0(%r14,%rsi,8),%r10d - movl 0(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r12d - - movzbl %dh,%esi - movzbl %ah,%edi - movzbl %dl,%ebp - xorl 3(%r14,%rsi,8),%r10d - xorl 3(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r8d - - movzbl %bh,%esi - shrl $16,%eax - movzbl %ch,%ebp - xorl 3(%r14,%rsi,8),%r12d - shrl $16,%edx - xorl 3(%r14,%rbp,8),%r8d - - shrl $16,%ebx - leaq 16(%r15),%r15 - shrl $16,%ecx - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - xorl 2(%r14,%rsi,8),%r10d - xorl 2(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r12d - - movzbl %bh,%esi - movzbl %ch,%edi - movzbl %bl,%ebp - xorl 1(%r14,%rsi,8),%r10d - xorl 1(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r8d - - movzbl %dh,%esi - movl 12(%r15),%edx - movzbl %ah,%ebp - xorl 1(%r14,%rsi,8),%r12d - movl 0(%r15),%eax - xorl 1(%r14,%rbp,8),%r8d - - xorl %r10d,%eax - movl 4(%r15),%ebx - movl 8(%r15),%ecx - xorl %r12d,%ecx - xorl %r11d,%ebx - xorl %r8d,%edx - subl $1,%r13d - jnz .Ldec_loop - leaq 2048(%r14),%r14 - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movzbl (%r14,%rsi,1),%r10d - movzbl (%r14,%rdi,1),%r11d - movzbl (%r14,%rbp,1),%r12d - - movzbl %dl,%esi - movzbl %dh,%edi - movzbl %ah,%ebp - movzbl (%r14,%rsi,1),%r8d - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rbp,1),%ebp - - shll $8,%edi - shll $8,%ebp - - xorl %edi,%r10d - xorl %ebp,%r11d - shrl $16,%edx - - movzbl %bh,%esi - movzbl %ch,%edi - shrl $16,%eax - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - - shll $8,%esi - shll $8,%edi - shrl $16,%ebx - xorl %esi,%r12d - xorl %edi,%r8d - shrl $16,%ecx - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rbp,1),%ebp - - shll $16,%esi - shll $16,%edi - shll $16,%ebp - - xorl %esi,%r10d - xorl %edi,%r11d - xorl %ebp,%r12d - - movzbl %bl,%esi - movzbl %bh,%edi - movzbl %ch,%ebp - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rbp,1),%ebp - - shll $16,%esi - shll $24,%edi - shll $24,%ebp - - xorl %esi,%r8d - xorl %edi,%r10d - xorl %ebp,%r11d - - movzbl %dh,%esi - movzbl %ah,%edi - movl 16+12(%r15),%edx - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movl 16+0(%r15),%eax - - shll $24,%esi - shll $24,%edi - - xorl %esi,%r12d - xorl %edi,%r8d - - movl 16+4(%r15),%ebx - movl 16+8(%r15),%ecx - leaq -2048(%r14),%r14 - xorl %r10d,%eax - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx -.byte 0xf3,0xc3 -.size _x86_64_AES_decrypt,.-_x86_64_AES_decrypt -.type _x86_64_AES_decrypt_compact,@function -.align 16 -_x86_64_AES_decrypt_compact: -.cfi_startproc - leaq 128(%r14),%r8 - movl 0-128(%r8),%edi - movl 32-128(%r8),%ebp - movl 64-128(%r8),%r10d - movl 96-128(%r8),%r11d - movl 128-128(%r8),%edi - movl 160-128(%r8),%ebp - movl 192-128(%r8),%r10d - movl 224-128(%r8),%r11d - jmp .Ldec_loop_compact - -.align 16 -.Ldec_loop_compact: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - leaq 16(%r15),%r15 - movzbl %al,%r10d - movzbl %bl,%r11d - movzbl %cl,%r12d - movzbl %dl,%r8d - movzbl %dh,%esi - movzbl %ah,%edi - shrl $16,%edx - movzbl %bh,%ebp - movzbl (%r14,%r10,1),%r10d - movzbl (%r14,%r11,1),%r11d - movzbl (%r14,%r12,1),%r12d - movzbl (%r14,%r8,1),%r8d - - movzbl (%r14,%rsi,1),%r9d - movzbl %ch,%esi - movzbl (%r14,%rdi,1),%r13d - movzbl (%r14,%rbp,1),%ebp - movzbl (%r14,%rsi,1),%esi - - shrl $16,%ecx - shll $8,%r13d - shll $8,%r9d - movzbl %cl,%edi - shrl $16,%eax - xorl %r9d,%r10d - shrl $16,%ebx - movzbl %dl,%r9d - - shll $8,%ebp - xorl %r13d,%r11d - shll $8,%esi - movzbl %al,%r13d - movzbl (%r14,%rdi,1),%edi - xorl %ebp,%r12d - movzbl %bl,%ebp - - shll $16,%edi - xorl %esi,%r8d - movzbl (%r14,%r9,1),%r9d - movzbl %bh,%esi - movzbl (%r14,%rbp,1),%ebp - xorl %edi,%r10d - movzbl (%r14,%r13,1),%r13d - movzbl %ch,%edi - - shll $16,%ebp - shll $16,%r9d - shll $16,%r13d - xorl %ebp,%r8d - movzbl %dh,%ebp - xorl %r9d,%r11d - shrl $8,%eax - xorl %r13d,%r12d - - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%ebx - movzbl (%r14,%rbp,1),%ecx - movzbl (%r14,%rax,1),%edx - - movl %r10d,%eax - shll $24,%esi - shll $24,%ebx - shll $24,%ecx - xorl %esi,%eax - shll $24,%edx - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx - cmpq 16(%rsp),%r15 - je .Ldec_compact_done - - movq 256+0(%r14),%rsi - shlq $32,%rbx - shlq $32,%rdx - movq 256+8(%r14),%rdi - orq %rbx,%rax - orq %rdx,%rcx - movq 256+16(%r14),%rbp - movq %rsi,%r9 - movq %rsi,%r12 - andq %rax,%r9 - andq %rcx,%r12 - movq %r9,%rbx - movq %r12,%rdx - shrq $7,%r9 - leaq (%rax,%rax,1),%r8 - shrq $7,%r12 - leaq (%rcx,%rcx,1),%r11 - subq %r9,%rbx - subq %r12,%rdx - andq %rdi,%r8 - andq %rdi,%r11 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r8 - xorq %rdx,%r11 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r8,%r10 - andq %r11,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - leaq (%r8,%r8,1),%r9 - shrq $7,%r13 - leaq (%r11,%r11,1),%r12 - subq %r10,%rbx - subq %r13,%rdx - andq %rdi,%r9 - andq %rdi,%r12 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r9 - xorq %rdx,%r12 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r9,%r10 - andq %r12,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - xorq %rax,%r8 - shrq $7,%r13 - xorq %rcx,%r11 - subq %r10,%rbx - subq %r13,%rdx - leaq (%r9,%r9,1),%r10 - leaq (%r12,%r12,1),%r13 - xorq %rax,%r9 - xorq %rcx,%r12 - andq %rdi,%r10 - andq %rdi,%r13 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r10 - xorq %rdx,%r13 - - xorq %r10,%rax - xorq %r13,%rcx - xorq %r10,%r8 - xorq %r13,%r11 - movq %rax,%rbx - movq %rcx,%rdx - xorq %r10,%r9 - shrq $32,%rbx - xorq %r13,%r12 - shrq $32,%rdx - xorq %r8,%r10 - roll $8,%eax - xorq %r11,%r13 - roll $8,%ecx - xorq %r9,%r10 - roll $8,%ebx - xorq %r12,%r13 - - roll $8,%edx - xorl %r10d,%eax - shrq $32,%r10 - xorl %r13d,%ecx - shrq $32,%r13 - xorl %r10d,%ebx - xorl %r13d,%edx - - movq %r8,%r10 - roll $24,%r8d - movq %r11,%r13 - roll $24,%r11d - shrq $32,%r10 - xorl %r8d,%eax - shrq $32,%r13 - xorl %r11d,%ecx - roll $24,%r10d - movq %r9,%r8 - roll $24,%r13d - movq %r12,%r11 - shrq $32,%r8 - xorl %r10d,%ebx - shrq $32,%r11 - xorl %r13d,%edx - - movq 0(%r14),%rsi - roll $16,%r9d - movq 64(%r14),%rdi - roll $16,%r12d - movq 128(%r14),%rbp - roll $16,%r8d - movq 192(%r14),%r10 - xorl %r9d,%eax - roll $16,%r11d - xorl %r12d,%ecx - movq 256(%r14),%r13 - xorl %r8d,%ebx - xorl %r11d,%edx - jmp .Ldec_loop_compact -.align 16 -.Ldec_compact_done: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx -.byte 0xf3,0xc3 -.cfi_endproc -.size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact -.align 16 -.globl aes_nohw_decrypt -.hidden aes_nohw_decrypt -.type aes_nohw_decrypt,@function -.hidden aes_nohw_decrypt -aes_nohw_decrypt: -.cfi_startproc - movq %rsp,%rax -.cfi_def_cfa_register %rax - pushq %rbx -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_offset %r15,-56 - - - leaq -63(%rdx),%rcx - andq $-64,%rsp - subq %rsp,%rcx - negq %rcx - andq $0x3c0,%rcx - subq %rcx,%rsp - subq $32,%rsp - - movq %rsi,16(%rsp) - movq %rax,24(%rsp) -.cfi_escape 0x0f,0x05,0x77,0x18,0x06,0x23,0x08 -.Ldec_prologue: - - movq %rdx,%r15 - movl 240(%r15),%r13d - - movl 0(%rdi),%eax - movl 4(%rdi),%ebx - movl 8(%rdi),%ecx - movl 12(%rdi),%edx - - shll $4,%r13d - leaq (%r15,%r13,1),%rbp - movq %r15,(%rsp) - movq %rbp,8(%rsp) - - - leaq .LAES_Td+2048(%rip),%r14 - leaq 768(%rsp),%rbp - subq %r14,%rbp - andq $0x300,%rbp - leaq (%r14,%rbp,1),%r14 - shrq $3,%rbp - addq %rbp,%r14 - - call _x86_64_AES_decrypt_compact - - movq 16(%rsp),%r9 - movq 24(%rsp),%rsi -.cfi_def_cfa %rsi,8 - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - movq -48(%rsi),%r15 -.cfi_restore %r15 - movq -40(%rsi),%r14 -.cfi_restore %r14 - movq -32(%rsi),%r13 -.cfi_restore %r13 - movq -24(%rsi),%r12 -.cfi_restore %r12 - movq -16(%rsi),%rbp -.cfi_restore %rbp - movq -8(%rsi),%rbx -.cfi_restore %rbx - leaq (%rsi),%rsp -.cfi_def_cfa_register %rsp -.Ldec_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size aes_nohw_decrypt,.-aes_nohw_decrypt -.align 16 -.globl aes_nohw_set_encrypt_key -.hidden aes_nohw_set_encrypt_key -.type aes_nohw_set_encrypt_key,@function -aes_nohw_set_encrypt_key: -.cfi_startproc - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 - subq $8,%rsp -.cfi_adjust_cfa_offset 8 -.Lenc_key_prologue: - - call _x86_64_AES_set_encrypt_key - - movq 40(%rsp),%rbp -.cfi_restore %rbp - movq 48(%rsp),%rbx -.cfi_restore %rbx - addq $56,%rsp -.cfi_adjust_cfa_offset -56 -.Lenc_key_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size aes_nohw_set_encrypt_key,.-aes_nohw_set_encrypt_key - -.type _x86_64_AES_set_encrypt_key,@function -.align 16 -_x86_64_AES_set_encrypt_key: -.cfi_startproc - movl %esi,%ecx - movq %rdi,%rsi - movq %rdx,%rdi - - testq $-1,%rsi - jz .Lbadpointer - testq $-1,%rdi - jz .Lbadpointer - - leaq .LAES_Te(%rip),%rbp - leaq 2048+128(%rbp),%rbp - - - movl 0-128(%rbp),%eax - movl 32-128(%rbp),%ebx - movl 64-128(%rbp),%r8d - movl 96-128(%rbp),%edx - movl 128-128(%rbp),%eax - movl 160-128(%rbp),%ebx - movl 192-128(%rbp),%r8d - movl 224-128(%rbp),%edx - - cmpl $128,%ecx - je .L10rounds - cmpl $192,%ecx - je .L12rounds - cmpl $256,%ecx - je .L14rounds - movq $-2,%rax - jmp .Lexit - -.L10rounds: - movq 0(%rsi),%rax - movq 8(%rsi),%rdx - movq %rax,0(%rdi) - movq %rdx,8(%rdi) - - shrq $32,%rdx - xorl %ecx,%ecx - jmp .L10shortcut -.align 4 -.L10loop: - movl 0(%rdi),%eax - movl 12(%rdi),%edx -.L10shortcut: - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - - xorl 1024-128(%rbp,%rcx,4),%eax - movl %eax,16(%rdi) - xorl 4(%rdi),%eax - movl %eax,20(%rdi) - xorl 8(%rdi),%eax - movl %eax,24(%rdi) - xorl 12(%rdi),%eax - movl %eax,28(%rdi) - addl $1,%ecx - leaq 16(%rdi),%rdi - cmpl $10,%ecx - jl .L10loop - - movl $10,80(%rdi) - xorq %rax,%rax - jmp .Lexit - -.L12rounds: - movq 0(%rsi),%rax - movq 8(%rsi),%rbx - movq 16(%rsi),%rdx - movq %rax,0(%rdi) - movq %rbx,8(%rdi) - movq %rdx,16(%rdi) - - shrq $32,%rdx - xorl %ecx,%ecx - jmp .L12shortcut -.align 4 -.L12loop: - movl 0(%rdi),%eax - movl 20(%rdi),%edx -.L12shortcut: - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - - xorl 1024-128(%rbp,%rcx,4),%eax - movl %eax,24(%rdi) - xorl 4(%rdi),%eax - movl %eax,28(%rdi) - xorl 8(%rdi),%eax - movl %eax,32(%rdi) - xorl 12(%rdi),%eax - movl %eax,36(%rdi) - - cmpl $7,%ecx - je .L12break - addl $1,%ecx - - xorl 16(%rdi),%eax - movl %eax,40(%rdi) - xorl 20(%rdi),%eax - movl %eax,44(%rdi) - - leaq 24(%rdi),%rdi - jmp .L12loop -.L12break: - movl $12,72(%rdi) - xorq %rax,%rax - jmp .Lexit - -.L14rounds: - movq 0(%rsi),%rax - movq 8(%rsi),%rbx - movq 16(%rsi),%rcx - movq 24(%rsi),%rdx - movq %rax,0(%rdi) - movq %rbx,8(%rdi) - movq %rcx,16(%rdi) - movq %rdx,24(%rdi) - - shrq $32,%rdx - xorl %ecx,%ecx - jmp .L14shortcut -.align 4 -.L14loop: - movl 0(%rdi),%eax - movl 28(%rdi),%edx -.L14shortcut: - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - - xorl 1024-128(%rbp,%rcx,4),%eax - movl %eax,32(%rdi) - xorl 4(%rdi),%eax - movl %eax,36(%rdi) - xorl 8(%rdi),%eax - movl %eax,40(%rdi) - xorl 12(%rdi),%eax - movl %eax,44(%rdi) - - cmpl $6,%ecx - je .L14break - addl $1,%ecx - - movl %eax,%edx - movl 16(%rdi),%eax - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - shll $8,%ebx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $16,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $24,%ebx - xorl %ebx,%eax - - movl %eax,48(%rdi) - xorl 20(%rdi),%eax - movl %eax,52(%rdi) - xorl 24(%rdi),%eax - movl %eax,56(%rdi) - xorl 28(%rdi),%eax - movl %eax,60(%rdi) - - leaq 32(%rdi),%rdi - jmp .L14loop -.L14break: - movl $14,48(%rdi) - xorq %rax,%rax - jmp .Lexit - -.Lbadpointer: - movq $-1,%rax -.Lexit: -.byte 0xf3,0xc3 -.cfi_endproc -.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key -.align 16 -.globl aes_nohw_set_decrypt_key -.hidden aes_nohw_set_decrypt_key -.type aes_nohw_set_decrypt_key,@function -aes_nohw_set_decrypt_key: -.cfi_startproc - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 - pushq %rdx -.cfi_adjust_cfa_offset 8 -.Ldec_key_prologue: - - call _x86_64_AES_set_encrypt_key - movq (%rsp),%r8 - cmpl $0,%eax - jne .Labort - - movl 240(%r8),%r14d - xorq %rdi,%rdi - leaq (%rdi,%r14,4),%rcx - movq %r8,%rsi - leaq (%r8,%rcx,4),%rdi -.align 4 -.Linvert: - movq 0(%rsi),%rax - movq 8(%rsi),%rbx - movq 0(%rdi),%rcx - movq 8(%rdi),%rdx - movq %rax,0(%rdi) - movq %rbx,8(%rdi) - movq %rcx,0(%rsi) - movq %rdx,8(%rsi) - leaq 16(%rsi),%rsi - leaq -16(%rdi),%rdi - cmpq %rsi,%rdi - jne .Linvert - - leaq .LAES_Te+2048+1024(%rip),%rax - - movq 40(%rax),%rsi - movq 48(%rax),%rdi - movq 56(%rax),%rbp - - movq %r8,%r15 - subl $1,%r14d -.align 4 -.Lpermute: - leaq 16(%r15),%r15 - movq 0(%r15),%rax - movq 8(%r15),%rcx - movq %rsi,%r9 - movq %rsi,%r12 - andq %rax,%r9 - andq %rcx,%r12 - movq %r9,%rbx - movq %r12,%rdx - shrq $7,%r9 - leaq (%rax,%rax,1),%r8 - shrq $7,%r12 - leaq (%rcx,%rcx,1),%r11 - subq %r9,%rbx - subq %r12,%rdx - andq %rdi,%r8 - andq %rdi,%r11 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r8 - xorq %rdx,%r11 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r8,%r10 - andq %r11,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - leaq (%r8,%r8,1),%r9 - shrq $7,%r13 - leaq (%r11,%r11,1),%r12 - subq %r10,%rbx - subq %r13,%rdx - andq %rdi,%r9 - andq %rdi,%r12 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r9 - xorq %rdx,%r12 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r9,%r10 - andq %r12,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - xorq %rax,%r8 - shrq $7,%r13 - xorq %rcx,%r11 - subq %r10,%rbx - subq %r13,%rdx - leaq (%r9,%r9,1),%r10 - leaq (%r12,%r12,1),%r13 - xorq %rax,%r9 - xorq %rcx,%r12 - andq %rdi,%r10 - andq %rdi,%r13 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r10 - xorq %rdx,%r13 - - xorq %r10,%rax - xorq %r13,%rcx - xorq %r10,%r8 - xorq %r13,%r11 - movq %rax,%rbx - movq %rcx,%rdx - xorq %r10,%r9 - shrq $32,%rbx - xorq %r13,%r12 - shrq $32,%rdx - xorq %r8,%r10 - roll $8,%eax - xorq %r11,%r13 - roll $8,%ecx - xorq %r9,%r10 - roll $8,%ebx - xorq %r12,%r13 - - roll $8,%edx - xorl %r10d,%eax - shrq $32,%r10 - xorl %r13d,%ecx - shrq $32,%r13 - xorl %r10d,%ebx - xorl %r13d,%edx - - movq %r8,%r10 - roll $24,%r8d - movq %r11,%r13 - roll $24,%r11d - shrq $32,%r10 - xorl %r8d,%eax - shrq $32,%r13 - xorl %r11d,%ecx - roll $24,%r10d - movq %r9,%r8 - roll $24,%r13d - movq %r12,%r11 - shrq $32,%r8 - xorl %r10d,%ebx - shrq $32,%r11 - xorl %r13d,%edx - - - roll $16,%r9d - - roll $16,%r12d - - roll $16,%r8d - - xorl %r9d,%eax - roll $16,%r11d - xorl %r12d,%ecx - - xorl %r8d,%ebx - xorl %r11d,%edx - movl %eax,0(%r15) - movl %ebx,4(%r15) - movl %ecx,8(%r15) - movl %edx,12(%r15) - subl $1,%r14d - jnz .Lpermute - - xorq %rax,%rax -.Labort: - movq 8(%rsp),%r15 -.cfi_restore %r15 - movq 16(%rsp),%r14 -.cfi_restore %r14 - movq 24(%rsp),%r13 -.cfi_restore %r13 - movq 32(%rsp),%r12 -.cfi_restore %r12 - movq 40(%rsp),%rbp -.cfi_restore %rbp - movq 48(%rsp),%rbx -.cfi_restore %rbx - addq $56,%rsp -.cfi_adjust_cfa_offset -56 -.Ldec_key_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size aes_nohw_set_decrypt_key,.-aes_nohw_set_decrypt_key -.align 16 -.globl aes_nohw_cbc_encrypt -.hidden aes_nohw_cbc_encrypt -.type aes_nohw_cbc_encrypt,@function -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P -.hidden aes_nohw_cbc_encrypt -aes_nohw_cbc_encrypt: -.cfi_startproc - cmpq $0,%rdx - je .Lcbc_epilogue - pushfq - - -.cfi_adjust_cfa_offset 8 - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-24 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-32 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-40 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-48 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-56 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-64 -.Lcbc_prologue: - - cld - movl %r9d,%r9d - - leaq .LAES_Te(%rip),%r14 - leaq .LAES_Td(%rip),%r10 - cmpq $0,%r9 - cmoveq %r10,%r14 - -.cfi_remember_state - leaq OPENSSL_ia32cap_P(%rip),%r10 - movl (%r10),%r10d - cmpq $512,%rdx - jb .Lcbc_slow_prologue - testq $15,%rdx - jnz .Lcbc_slow_prologue - btl $28,%r10d - jc .Lcbc_slow_prologue - - - leaq -88-248(%rsp),%r15 - andq $-64,%r15 - - - movq %r14,%r10 - leaq 2304(%r14),%r11 - movq %r15,%r12 - andq $0xFFF,%r10 - andq $0xFFF,%r11 - andq $0xFFF,%r12 - - cmpq %r11,%r12 - jb .Lcbc_te_break_out - subq %r11,%r12 - subq %r12,%r15 - jmp .Lcbc_te_ok -.Lcbc_te_break_out: - subq %r10,%r12 - andq $0xFFF,%r12 - addq $320,%r12 - subq %r12,%r15 -.align 4 -.Lcbc_te_ok: - - xchgq %rsp,%r15 -.cfi_def_cfa_register %r15 - - movq %r15,16(%rsp) -.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x40 -.Lcbc_fast_body: - movq %rdi,24(%rsp) - movq %rsi,32(%rsp) - movq %rdx,40(%rsp) - movq %rcx,48(%rsp) - movq %r8,56(%rsp) - movl $0,80+240(%rsp) - movq %r8,%rbp - movq %r9,%rbx - movq %rsi,%r9 - movq %rdi,%r8 - movq %rcx,%r15 - - movl 240(%r15),%eax - - movq %r15,%r10 - subq %r14,%r10 - andq $0xfff,%r10 - cmpq $2304,%r10 - jb .Lcbc_do_ecopy - cmpq $4096-248,%r10 - jb .Lcbc_skip_ecopy -.align 4 -.Lcbc_do_ecopy: - movq %r15,%rsi - leaq 80(%rsp),%rdi - leaq 80(%rsp),%r15 - movl $30,%ecx -.long 0x90A548F3 - movl %eax,(%rdi) -.Lcbc_skip_ecopy: - movq %r15,0(%rsp) - - movl $18,%ecx -.align 4 -.Lcbc_prefetch_te: - movq 0(%r14),%r10 - movq 32(%r14),%r11 - movq 64(%r14),%r12 - movq 96(%r14),%r13 - leaq 128(%r14),%r14 - subl $1,%ecx - jnz .Lcbc_prefetch_te - leaq -2304(%r14),%r14 - - cmpq $0,%rbx - je .LFAST_DECRYPT - - - movl 0(%rbp),%eax - movl 4(%rbp),%ebx - movl 8(%rbp),%ecx - movl 12(%rbp),%edx - -.align 4 -.Lcbc_fast_enc_loop: - xorl 0(%r8),%eax - xorl 4(%r8),%ebx - xorl 8(%r8),%ecx - xorl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - - call _x86_64_AES_encrypt - - movq 24(%rsp),%r8 - movq 40(%rsp),%r10 - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - subq $16,%r10 - testq $-16,%r10 - movq %r10,40(%rsp) - jnz .Lcbc_fast_enc_loop - movq 56(%rsp),%rbp - movl %eax,0(%rbp) - movl %ebx,4(%rbp) - movl %ecx,8(%rbp) - movl %edx,12(%rbp) - - jmp .Lcbc_fast_cleanup - - -.align 16 -.LFAST_DECRYPT: - cmpq %r8,%r9 - je .Lcbc_fast_dec_in_place - - movq %rbp,64(%rsp) -.align 4 -.Lcbc_fast_dec_loop: - movl 0(%r8),%eax - movl 4(%r8),%ebx - movl 8(%r8),%ecx - movl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - - call _x86_64_AES_decrypt - - movq 64(%rsp),%rbp - movq 24(%rsp),%r8 - movq 40(%rsp),%r10 - xorl 0(%rbp),%eax - xorl 4(%rbp),%ebx - xorl 8(%rbp),%ecx - xorl 12(%rbp),%edx - movq %r8,%rbp - - subq $16,%r10 - movq %r10,40(%rsp) - movq %rbp,64(%rsp) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - jnz .Lcbc_fast_dec_loop - movq 56(%rsp),%r12 - movq 0(%rbp),%r10 - movq 8(%rbp),%r11 - movq %r10,0(%r12) - movq %r11,8(%r12) - jmp .Lcbc_fast_cleanup - -.align 16 -.Lcbc_fast_dec_in_place: - movq 0(%rbp),%r10 - movq 8(%rbp),%r11 - movq %r10,0+64(%rsp) - movq %r11,8+64(%rsp) -.align 4 -.Lcbc_fast_dec_in_place_loop: - movl 0(%r8),%eax - movl 4(%r8),%ebx - movl 8(%r8),%ecx - movl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - - call _x86_64_AES_decrypt - - movq 24(%rsp),%r8 - movq 40(%rsp),%r10 - xorl 0+64(%rsp),%eax - xorl 4+64(%rsp),%ebx - xorl 8+64(%rsp),%ecx - xorl 12+64(%rsp),%edx - - movq 0(%r8),%r11 - movq 8(%r8),%r12 - subq $16,%r10 - jz .Lcbc_fast_dec_in_place_done - - movq %r11,0+64(%rsp) - movq %r12,8+64(%rsp) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - movq %r10,40(%rsp) - jmp .Lcbc_fast_dec_in_place_loop -.Lcbc_fast_dec_in_place_done: - movq 56(%rsp),%rdi - movq %r11,0(%rdi) - movq %r12,8(%rdi) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - -.align 4 -.Lcbc_fast_cleanup: - cmpl $0,80+240(%rsp) - leaq 80(%rsp),%rdi - je .Lcbc_exit - movl $30,%ecx - xorq %rax,%rax -.long 0x90AB48F3 - - jmp .Lcbc_exit - - -.align 16 -.Lcbc_slow_prologue: -.cfi_restore_state - - leaq -88(%rsp),%rbp - andq $-64,%rbp - - leaq -88-63(%rcx),%r10 - subq %rbp,%r10 - negq %r10 - andq $0x3c0,%r10 - subq %r10,%rbp - - xchgq %rsp,%rbp -.cfi_def_cfa_register %rbp - - movq %rbp,16(%rsp) -.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x40 -.Lcbc_slow_body: - - - - - movq %r8,56(%rsp) - movq %r8,%rbp - movq %r9,%rbx - movq %rsi,%r9 - movq %rdi,%r8 - movq %rcx,%r15 - movq %rdx,%r10 - - movl 240(%r15),%eax - movq %r15,0(%rsp) - shll $4,%eax - leaq (%r15,%rax,1),%rax - movq %rax,8(%rsp) - - - leaq 2048(%r14),%r14 - leaq 768-8(%rsp),%rax - subq %r14,%rax - andq $0x300,%rax - leaq (%r14,%rax,1),%r14 - - cmpq $0,%rbx - je .LSLOW_DECRYPT - - - testq $-16,%r10 - movl 0(%rbp),%eax - movl 4(%rbp),%ebx - movl 8(%rbp),%ecx - movl 12(%rbp),%edx - jz .Lcbc_slow_enc_tail - -.align 4 -.Lcbc_slow_enc_loop: - xorl 0(%r8),%eax - xorl 4(%r8),%ebx - xorl 8(%r8),%ecx - xorl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - movq %r9,32(%rsp) - movq %r10,40(%rsp) - - call _x86_64_AES_encrypt_compact - - movq 24(%rsp),%r8 - movq 32(%rsp),%r9 - movq 40(%rsp),%r10 - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - subq $16,%r10 - testq $-16,%r10 - jnz .Lcbc_slow_enc_loop - testq $15,%r10 - jnz .Lcbc_slow_enc_tail - movq 56(%rsp),%rbp - movl %eax,0(%rbp) - movl %ebx,4(%rbp) - movl %ecx,8(%rbp) - movl %edx,12(%rbp) - - jmp .Lcbc_exit - -.align 4 -.Lcbc_slow_enc_tail: - movq %rax,%r11 - movq %rcx,%r12 - movq %r10,%rcx - movq %r8,%rsi - movq %r9,%rdi -.long 0x9066A4F3 - movq $16,%rcx - subq %r10,%rcx - xorq %rax,%rax -.long 0x9066AAF3 - movq %r9,%r8 - movq $16,%r10 - movq %r11,%rax - movq %r12,%rcx - jmp .Lcbc_slow_enc_loop - -.align 16 -.LSLOW_DECRYPT: - shrq $3,%rax - addq %rax,%r14 - - movq 0(%rbp),%r11 - movq 8(%rbp),%r12 - movq %r11,0+64(%rsp) - movq %r12,8+64(%rsp) - -.align 4 -.Lcbc_slow_dec_loop: - movl 0(%r8),%eax - movl 4(%r8),%ebx - movl 8(%r8),%ecx - movl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - movq %r9,32(%rsp) - movq %r10,40(%rsp) - - call _x86_64_AES_decrypt_compact - - movq 24(%rsp),%r8 - movq 32(%rsp),%r9 - movq 40(%rsp),%r10 - xorl 0+64(%rsp),%eax - xorl 4+64(%rsp),%ebx - xorl 8+64(%rsp),%ecx - xorl 12+64(%rsp),%edx - - movq 0(%r8),%r11 - movq 8(%r8),%r12 - subq $16,%r10 - jc .Lcbc_slow_dec_partial - jz .Lcbc_slow_dec_done - - movq %r11,0+64(%rsp) - movq %r12,8+64(%rsp) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - jmp .Lcbc_slow_dec_loop -.Lcbc_slow_dec_done: - movq 56(%rsp),%rdi - movq %r11,0(%rdi) - movq %r12,8(%rdi) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - jmp .Lcbc_exit - -.align 4 -.Lcbc_slow_dec_partial: - movq 56(%rsp),%rdi - movq %r11,0(%rdi) - movq %r12,8(%rdi) - - movl %eax,0+64(%rsp) - movl %ebx,4+64(%rsp) - movl %ecx,8+64(%rsp) - movl %edx,12+64(%rsp) - - movq %r9,%rdi - leaq 64(%rsp),%rsi - leaq 16(%r10),%rcx -.long 0x9066A4F3 - jmp .Lcbc_exit - -.align 16 -.Lcbc_exit: - movq 16(%rsp),%rsi -.cfi_def_cfa %rsi,64 - movq (%rsi),%r15 -.cfi_restore %r15 - movq 8(%rsi),%r14 -.cfi_restore %r14 - movq 16(%rsi),%r13 -.cfi_restore %r13 - movq 24(%rsi),%r12 -.cfi_restore %r12 - movq 32(%rsi),%rbp -.cfi_restore %rbp - movq 40(%rsi),%rbx -.cfi_restore %rbx - leaq 48(%rsi),%rsp -.cfi_def_cfa %rsp,16 -.Lcbc_popfq: - popfq - - -.cfi_adjust_cfa_offset -8 -.Lcbc_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size aes_nohw_cbc_encrypt,.-aes_nohw_cbc_encrypt -.align 64 -.LAES_Te: -.long 0xa56363c6,0xa56363c6 -.long 0x847c7cf8,0x847c7cf8 -.long 0x997777ee,0x997777ee -.long 0x8d7b7bf6,0x8d7b7bf6 -.long 0x0df2f2ff,0x0df2f2ff -.long 0xbd6b6bd6,0xbd6b6bd6 -.long 0xb16f6fde,0xb16f6fde -.long 0x54c5c591,0x54c5c591 -.long 0x50303060,0x50303060 -.long 0x03010102,0x03010102 -.long 0xa96767ce,0xa96767ce -.long 0x7d2b2b56,0x7d2b2b56 -.long 0x19fefee7,0x19fefee7 -.long 0x62d7d7b5,0x62d7d7b5 -.long 0xe6abab4d,0xe6abab4d -.long 0x9a7676ec,0x9a7676ec -.long 0x45caca8f,0x45caca8f -.long 0x9d82821f,0x9d82821f -.long 0x40c9c989,0x40c9c989 -.long 0x877d7dfa,0x877d7dfa -.long 0x15fafaef,0x15fafaef -.long 0xeb5959b2,0xeb5959b2 -.long 0xc947478e,0xc947478e -.long 0x0bf0f0fb,0x0bf0f0fb -.long 0xecadad41,0xecadad41 -.long 0x67d4d4b3,0x67d4d4b3 -.long 0xfda2a25f,0xfda2a25f -.long 0xeaafaf45,0xeaafaf45 -.long 0xbf9c9c23,0xbf9c9c23 -.long 0xf7a4a453,0xf7a4a453 -.long 0x967272e4,0x967272e4 -.long 0x5bc0c09b,0x5bc0c09b -.long 0xc2b7b775,0xc2b7b775 -.long 0x1cfdfde1,0x1cfdfde1 -.long 0xae93933d,0xae93933d -.long 0x6a26264c,0x6a26264c -.long 0x5a36366c,0x5a36366c -.long 0x413f3f7e,0x413f3f7e -.long 0x02f7f7f5,0x02f7f7f5 -.long 0x4fcccc83,0x4fcccc83 -.long 0x5c343468,0x5c343468 -.long 0xf4a5a551,0xf4a5a551 -.long 0x34e5e5d1,0x34e5e5d1 -.long 0x08f1f1f9,0x08f1f1f9 -.long 0x937171e2,0x937171e2 -.long 0x73d8d8ab,0x73d8d8ab -.long 0x53313162,0x53313162 -.long 0x3f15152a,0x3f15152a -.long 0x0c040408,0x0c040408 -.long 0x52c7c795,0x52c7c795 -.long 0x65232346,0x65232346 -.long 0x5ec3c39d,0x5ec3c39d -.long 0x28181830,0x28181830 -.long 0xa1969637,0xa1969637 -.long 0x0f05050a,0x0f05050a -.long 0xb59a9a2f,0xb59a9a2f -.long 0x0907070e,0x0907070e -.long 0x36121224,0x36121224 -.long 0x9b80801b,0x9b80801b -.long 0x3de2e2df,0x3de2e2df -.long 0x26ebebcd,0x26ebebcd -.long 0x6927274e,0x6927274e -.long 0xcdb2b27f,0xcdb2b27f -.long 0x9f7575ea,0x9f7575ea -.long 0x1b090912,0x1b090912 -.long 0x9e83831d,0x9e83831d -.long 0x742c2c58,0x742c2c58 -.long 0x2e1a1a34,0x2e1a1a34 -.long 0x2d1b1b36,0x2d1b1b36 -.long 0xb26e6edc,0xb26e6edc -.long 0xee5a5ab4,0xee5a5ab4 -.long 0xfba0a05b,0xfba0a05b -.long 0xf65252a4,0xf65252a4 -.long 0x4d3b3b76,0x4d3b3b76 -.long 0x61d6d6b7,0x61d6d6b7 -.long 0xceb3b37d,0xceb3b37d -.long 0x7b292952,0x7b292952 -.long 0x3ee3e3dd,0x3ee3e3dd -.long 0x712f2f5e,0x712f2f5e -.long 0x97848413,0x97848413 -.long 0xf55353a6,0xf55353a6 -.long 0x68d1d1b9,0x68d1d1b9 -.long 0x00000000,0x00000000 -.long 0x2cededc1,0x2cededc1 -.long 0x60202040,0x60202040 -.long 0x1ffcfce3,0x1ffcfce3 -.long 0xc8b1b179,0xc8b1b179 -.long 0xed5b5bb6,0xed5b5bb6 -.long 0xbe6a6ad4,0xbe6a6ad4 -.long 0x46cbcb8d,0x46cbcb8d -.long 0xd9bebe67,0xd9bebe67 -.long 0x4b393972,0x4b393972 -.long 0xde4a4a94,0xde4a4a94 -.long 0xd44c4c98,0xd44c4c98 -.long 0xe85858b0,0xe85858b0 -.long 0x4acfcf85,0x4acfcf85 -.long 0x6bd0d0bb,0x6bd0d0bb -.long 0x2aefefc5,0x2aefefc5 -.long 0xe5aaaa4f,0xe5aaaa4f -.long 0x16fbfbed,0x16fbfbed -.long 0xc5434386,0xc5434386 -.long 0xd74d4d9a,0xd74d4d9a -.long 0x55333366,0x55333366 -.long 0x94858511,0x94858511 -.long 0xcf45458a,0xcf45458a -.long 0x10f9f9e9,0x10f9f9e9 -.long 0x06020204,0x06020204 -.long 0x817f7ffe,0x817f7ffe -.long 0xf05050a0,0xf05050a0 -.long 0x443c3c78,0x443c3c78 -.long 0xba9f9f25,0xba9f9f25 -.long 0xe3a8a84b,0xe3a8a84b -.long 0xf35151a2,0xf35151a2 -.long 0xfea3a35d,0xfea3a35d -.long 0xc0404080,0xc0404080 -.long 0x8a8f8f05,0x8a8f8f05 -.long 0xad92923f,0xad92923f -.long 0xbc9d9d21,0xbc9d9d21 -.long 0x48383870,0x48383870 -.long 0x04f5f5f1,0x04f5f5f1 -.long 0xdfbcbc63,0xdfbcbc63 -.long 0xc1b6b677,0xc1b6b677 -.long 0x75dadaaf,0x75dadaaf -.long 0x63212142,0x63212142 -.long 0x30101020,0x30101020 -.long 0x1affffe5,0x1affffe5 -.long 0x0ef3f3fd,0x0ef3f3fd -.long 0x6dd2d2bf,0x6dd2d2bf -.long 0x4ccdcd81,0x4ccdcd81 -.long 0x140c0c18,0x140c0c18 -.long 0x35131326,0x35131326 -.long 0x2fececc3,0x2fececc3 -.long 0xe15f5fbe,0xe15f5fbe -.long 0xa2979735,0xa2979735 -.long 0xcc444488,0xcc444488 -.long 0x3917172e,0x3917172e -.long 0x57c4c493,0x57c4c493 -.long 0xf2a7a755,0xf2a7a755 -.long 0x827e7efc,0x827e7efc -.long 0x473d3d7a,0x473d3d7a -.long 0xac6464c8,0xac6464c8 -.long 0xe75d5dba,0xe75d5dba -.long 0x2b191932,0x2b191932 -.long 0x957373e6,0x957373e6 -.long 0xa06060c0,0xa06060c0 -.long 0x98818119,0x98818119 -.long 0xd14f4f9e,0xd14f4f9e -.long 0x7fdcdca3,0x7fdcdca3 -.long 0x66222244,0x66222244 -.long 0x7e2a2a54,0x7e2a2a54 -.long 0xab90903b,0xab90903b -.long 0x8388880b,0x8388880b -.long 0xca46468c,0xca46468c -.long 0x29eeeec7,0x29eeeec7 -.long 0xd3b8b86b,0xd3b8b86b -.long 0x3c141428,0x3c141428 -.long 0x79dedea7,0x79dedea7 -.long 0xe25e5ebc,0xe25e5ebc -.long 0x1d0b0b16,0x1d0b0b16 -.long 0x76dbdbad,0x76dbdbad -.long 0x3be0e0db,0x3be0e0db -.long 0x56323264,0x56323264 -.long 0x4e3a3a74,0x4e3a3a74 -.long 0x1e0a0a14,0x1e0a0a14 -.long 0xdb494992,0xdb494992 -.long 0x0a06060c,0x0a06060c -.long 0x6c242448,0x6c242448 -.long 0xe45c5cb8,0xe45c5cb8 -.long 0x5dc2c29f,0x5dc2c29f -.long 0x6ed3d3bd,0x6ed3d3bd -.long 0xefacac43,0xefacac43 -.long 0xa66262c4,0xa66262c4 -.long 0xa8919139,0xa8919139 -.long 0xa4959531,0xa4959531 -.long 0x37e4e4d3,0x37e4e4d3 -.long 0x8b7979f2,0x8b7979f2 -.long 0x32e7e7d5,0x32e7e7d5 -.long 0x43c8c88b,0x43c8c88b -.long 0x5937376e,0x5937376e -.long 0xb76d6dda,0xb76d6dda -.long 0x8c8d8d01,0x8c8d8d01 -.long 0x64d5d5b1,0x64d5d5b1 -.long 0xd24e4e9c,0xd24e4e9c -.long 0xe0a9a949,0xe0a9a949 -.long 0xb46c6cd8,0xb46c6cd8 -.long 0xfa5656ac,0xfa5656ac -.long 0x07f4f4f3,0x07f4f4f3 -.long 0x25eaeacf,0x25eaeacf -.long 0xaf6565ca,0xaf6565ca -.long 0x8e7a7af4,0x8e7a7af4 -.long 0xe9aeae47,0xe9aeae47 -.long 0x18080810,0x18080810 -.long 0xd5baba6f,0xd5baba6f -.long 0x887878f0,0x887878f0 -.long 0x6f25254a,0x6f25254a -.long 0x722e2e5c,0x722e2e5c -.long 0x241c1c38,0x241c1c38 -.long 0xf1a6a657,0xf1a6a657 -.long 0xc7b4b473,0xc7b4b473 -.long 0x51c6c697,0x51c6c697 -.long 0x23e8e8cb,0x23e8e8cb -.long 0x7cdddda1,0x7cdddda1 -.long 0x9c7474e8,0x9c7474e8 -.long 0x211f1f3e,0x211f1f3e -.long 0xdd4b4b96,0xdd4b4b96 -.long 0xdcbdbd61,0xdcbdbd61 -.long 0x868b8b0d,0x868b8b0d -.long 0x858a8a0f,0x858a8a0f -.long 0x907070e0,0x907070e0 -.long 0x423e3e7c,0x423e3e7c -.long 0xc4b5b571,0xc4b5b571 -.long 0xaa6666cc,0xaa6666cc -.long 0xd8484890,0xd8484890 -.long 0x05030306,0x05030306 -.long 0x01f6f6f7,0x01f6f6f7 -.long 0x120e0e1c,0x120e0e1c -.long 0xa36161c2,0xa36161c2 -.long 0x5f35356a,0x5f35356a -.long 0xf95757ae,0xf95757ae -.long 0xd0b9b969,0xd0b9b969 -.long 0x91868617,0x91868617 -.long 0x58c1c199,0x58c1c199 -.long 0x271d1d3a,0x271d1d3a -.long 0xb99e9e27,0xb99e9e27 -.long 0x38e1e1d9,0x38e1e1d9 -.long 0x13f8f8eb,0x13f8f8eb -.long 0xb398982b,0xb398982b -.long 0x33111122,0x33111122 -.long 0xbb6969d2,0xbb6969d2 -.long 0x70d9d9a9,0x70d9d9a9 -.long 0x898e8e07,0x898e8e07 -.long 0xa7949433,0xa7949433 -.long 0xb69b9b2d,0xb69b9b2d -.long 0x221e1e3c,0x221e1e3c -.long 0x92878715,0x92878715 -.long 0x20e9e9c9,0x20e9e9c9 -.long 0x49cece87,0x49cece87 -.long 0xff5555aa,0xff5555aa -.long 0x78282850,0x78282850 -.long 0x7adfdfa5,0x7adfdfa5 -.long 0x8f8c8c03,0x8f8c8c03 -.long 0xf8a1a159,0xf8a1a159 -.long 0x80898909,0x80898909 -.long 0x170d0d1a,0x170d0d1a -.long 0xdabfbf65,0xdabfbf65 -.long 0x31e6e6d7,0x31e6e6d7 -.long 0xc6424284,0xc6424284 -.long 0xb86868d0,0xb86868d0 -.long 0xc3414182,0xc3414182 -.long 0xb0999929,0xb0999929 -.long 0x772d2d5a,0x772d2d5a -.long 0x110f0f1e,0x110f0f1e -.long 0xcbb0b07b,0xcbb0b07b -.long 0xfc5454a8,0xfc5454a8 -.long 0xd6bbbb6d,0xd6bbbb6d -.long 0x3a16162c,0x3a16162c -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.long 0x00000001, 0x00000002, 0x00000004, 0x00000008 -.long 0x00000010, 0x00000020, 0x00000040, 0x00000080 -.long 0x0000001b, 0x00000036, 0x80808080, 0x80808080 -.long 0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b -.align 64 -.LAES_Td: -.long 0x50a7f451,0x50a7f451 -.long 0x5365417e,0x5365417e -.long 0xc3a4171a,0xc3a4171a -.long 0x965e273a,0x965e273a -.long 0xcb6bab3b,0xcb6bab3b -.long 0xf1459d1f,0xf1459d1f -.long 0xab58faac,0xab58faac -.long 0x9303e34b,0x9303e34b -.long 0x55fa3020,0x55fa3020 -.long 0xf66d76ad,0xf66d76ad -.long 0x9176cc88,0x9176cc88 -.long 0x254c02f5,0x254c02f5 -.long 0xfcd7e54f,0xfcd7e54f -.long 0xd7cb2ac5,0xd7cb2ac5 -.long 0x80443526,0x80443526 -.long 0x8fa362b5,0x8fa362b5 -.long 0x495ab1de,0x495ab1de -.long 0x671bba25,0x671bba25 -.long 0x980eea45,0x980eea45 -.long 0xe1c0fe5d,0xe1c0fe5d -.long 0x02752fc3,0x02752fc3 -.long 0x12f04c81,0x12f04c81 -.long 0xa397468d,0xa397468d -.long 0xc6f9d36b,0xc6f9d36b -.long 0xe75f8f03,0xe75f8f03 -.long 0x959c9215,0x959c9215 -.long 0xeb7a6dbf,0xeb7a6dbf -.long 0xda595295,0xda595295 -.long 0x2d83bed4,0x2d83bed4 -.long 0xd3217458,0xd3217458 -.long 0x2969e049,0x2969e049 -.long 0x44c8c98e,0x44c8c98e -.long 0x6a89c275,0x6a89c275 -.long 0x78798ef4,0x78798ef4 -.long 0x6b3e5899,0x6b3e5899 -.long 0xdd71b927,0xdd71b927 -.long 0xb64fe1be,0xb64fe1be -.long 0x17ad88f0,0x17ad88f0 -.long 0x66ac20c9,0x66ac20c9 -.long 0xb43ace7d,0xb43ace7d -.long 0x184adf63,0x184adf63 -.long 0x82311ae5,0x82311ae5 -.long 0x60335197,0x60335197 -.long 0x457f5362,0x457f5362 -.long 0xe07764b1,0xe07764b1 -.long 0x84ae6bbb,0x84ae6bbb -.long 0x1ca081fe,0x1ca081fe -.long 0x942b08f9,0x942b08f9 -.long 0x58684870,0x58684870 -.long 0x19fd458f,0x19fd458f -.long 0x876cde94,0x876cde94 -.long 0xb7f87b52,0xb7f87b52 -.long 0x23d373ab,0x23d373ab -.long 0xe2024b72,0xe2024b72 -.long 0x578f1fe3,0x578f1fe3 -.long 0x2aab5566,0x2aab5566 -.long 0x0728ebb2,0x0728ebb2 -.long 0x03c2b52f,0x03c2b52f -.long 0x9a7bc586,0x9a7bc586 -.long 0xa50837d3,0xa50837d3 -.long 0xf2872830,0xf2872830 -.long 0xb2a5bf23,0xb2a5bf23 -.long 0xba6a0302,0xba6a0302 -.long 0x5c8216ed,0x5c8216ed -.long 0x2b1ccf8a,0x2b1ccf8a -.long 0x92b479a7,0x92b479a7 -.long 0xf0f207f3,0xf0f207f3 -.long 0xa1e2694e,0xa1e2694e -.long 0xcdf4da65,0xcdf4da65 -.long 0xd5be0506,0xd5be0506 -.long 0x1f6234d1,0x1f6234d1 -.long 0x8afea6c4,0x8afea6c4 -.long 0x9d532e34,0x9d532e34 -.long 0xa055f3a2,0xa055f3a2 -.long 0x32e18a05,0x32e18a05 -.long 0x75ebf6a4,0x75ebf6a4 -.long 0x39ec830b,0x39ec830b -.long 0xaaef6040,0xaaef6040 -.long 0x069f715e,0x069f715e -.long 0x51106ebd,0x51106ebd -.long 0xf98a213e,0xf98a213e -.long 0x3d06dd96,0x3d06dd96 -.long 0xae053edd,0xae053edd -.long 0x46bde64d,0x46bde64d -.long 0xb58d5491,0xb58d5491 -.long 0x055dc471,0x055dc471 -.long 0x6fd40604,0x6fd40604 -.long 0xff155060,0xff155060 -.long 0x24fb9819,0x24fb9819 -.long 0x97e9bdd6,0x97e9bdd6 -.long 0xcc434089,0xcc434089 -.long 0x779ed967,0x779ed967 -.long 0xbd42e8b0,0xbd42e8b0 -.long 0x888b8907,0x888b8907 -.long 0x385b19e7,0x385b19e7 -.long 0xdbeec879,0xdbeec879 -.long 0x470a7ca1,0x470a7ca1 -.long 0xe90f427c,0xe90f427c -.long 0xc91e84f8,0xc91e84f8 -.long 0x00000000,0x00000000 -.long 0x83868009,0x83868009 -.long 0x48ed2b32,0x48ed2b32 -.long 0xac70111e,0xac70111e -.long 0x4e725a6c,0x4e725a6c -.long 0xfbff0efd,0xfbff0efd -.long 0x5638850f,0x5638850f -.long 0x1ed5ae3d,0x1ed5ae3d -.long 0x27392d36,0x27392d36 -.long 0x64d90f0a,0x64d90f0a -.long 0x21a65c68,0x21a65c68 -.long 0xd1545b9b,0xd1545b9b -.long 0x3a2e3624,0x3a2e3624 -.long 0xb1670a0c,0xb1670a0c -.long 0x0fe75793,0x0fe75793 -.long 0xd296eeb4,0xd296eeb4 -.long 0x9e919b1b,0x9e919b1b -.long 0x4fc5c080,0x4fc5c080 -.long 0xa220dc61,0xa220dc61 -.long 0x694b775a,0x694b775a -.long 0x161a121c,0x161a121c -.long 0x0aba93e2,0x0aba93e2 -.long 0xe52aa0c0,0xe52aa0c0 -.long 0x43e0223c,0x43e0223c -.long 0x1d171b12,0x1d171b12 -.long 0x0b0d090e,0x0b0d090e -.long 0xadc78bf2,0xadc78bf2 -.long 0xb9a8b62d,0xb9a8b62d -.long 0xc8a91e14,0xc8a91e14 -.long 0x8519f157,0x8519f157 -.long 0x4c0775af,0x4c0775af -.long 0xbbdd99ee,0xbbdd99ee -.long 0xfd607fa3,0xfd607fa3 -.long 0x9f2601f7,0x9f2601f7 -.long 0xbcf5725c,0xbcf5725c -.long 0xc53b6644,0xc53b6644 -.long 0x347efb5b,0x347efb5b -.long 0x7629438b,0x7629438b -.long 0xdcc623cb,0xdcc623cb -.long 0x68fcedb6,0x68fcedb6 -.long 0x63f1e4b8,0x63f1e4b8 -.long 0xcadc31d7,0xcadc31d7 -.long 0x10856342,0x10856342 -.long 0x40229713,0x40229713 -.long 0x2011c684,0x2011c684 -.long 0x7d244a85,0x7d244a85 -.long 0xf83dbbd2,0xf83dbbd2 -.long 0x1132f9ae,0x1132f9ae -.long 0x6da129c7,0x6da129c7 -.long 0x4b2f9e1d,0x4b2f9e1d -.long 0xf330b2dc,0xf330b2dc -.long 0xec52860d,0xec52860d -.long 0xd0e3c177,0xd0e3c177 -.long 0x6c16b32b,0x6c16b32b -.long 0x99b970a9,0x99b970a9 -.long 0xfa489411,0xfa489411 -.long 0x2264e947,0x2264e947 -.long 0xc48cfca8,0xc48cfca8 -.long 0x1a3ff0a0,0x1a3ff0a0 -.long 0xd82c7d56,0xd82c7d56 -.long 0xef903322,0xef903322 -.long 0xc74e4987,0xc74e4987 -.long 0xc1d138d9,0xc1d138d9 -.long 0xfea2ca8c,0xfea2ca8c -.long 0x360bd498,0x360bd498 -.long 0xcf81f5a6,0xcf81f5a6 -.long 0x28de7aa5,0x28de7aa5 -.long 0x268eb7da,0x268eb7da -.long 0xa4bfad3f,0xa4bfad3f -.long 0xe49d3a2c,0xe49d3a2c -.long 0x0d927850,0x0d927850 -.long 0x9bcc5f6a,0x9bcc5f6a -.long 0x62467e54,0x62467e54 -.long 0xc2138df6,0xc2138df6 -.long 0xe8b8d890,0xe8b8d890 -.long 0x5ef7392e,0x5ef7392e -.long 0xf5afc382,0xf5afc382 -.long 0xbe805d9f,0xbe805d9f -.long 0x7c93d069,0x7c93d069 -.long 0xa92dd56f,0xa92dd56f -.long 0xb31225cf,0xb31225cf -.long 0x3b99acc8,0x3b99acc8 -.long 0xa77d1810,0xa77d1810 -.long 0x6e639ce8,0x6e639ce8 -.long 0x7bbb3bdb,0x7bbb3bdb -.long 0x097826cd,0x097826cd -.long 0xf418596e,0xf418596e -.long 0x01b79aec,0x01b79aec -.long 0xa89a4f83,0xa89a4f83 -.long 0x656e95e6,0x656e95e6 -.long 0x7ee6ffaa,0x7ee6ffaa -.long 0x08cfbc21,0x08cfbc21 -.long 0xe6e815ef,0xe6e815ef -.long 0xd99be7ba,0xd99be7ba -.long 0xce366f4a,0xce366f4a -.long 0xd4099fea,0xd4099fea -.long 0xd67cb029,0xd67cb029 -.long 0xafb2a431,0xafb2a431 -.long 0x31233f2a,0x31233f2a -.long 0x3094a5c6,0x3094a5c6 -.long 0xc066a235,0xc066a235 -.long 0x37bc4e74,0x37bc4e74 -.long 0xa6ca82fc,0xa6ca82fc -.long 0xb0d090e0,0xb0d090e0 -.long 0x15d8a733,0x15d8a733 -.long 0x4a9804f1,0x4a9804f1 -.long 0xf7daec41,0xf7daec41 -.long 0x0e50cd7f,0x0e50cd7f -.long 0x2ff69117,0x2ff69117 -.long 0x8dd64d76,0x8dd64d76 -.long 0x4db0ef43,0x4db0ef43 -.long 0x544daacc,0x544daacc -.long 0xdf0496e4,0xdf0496e4 -.long 0xe3b5d19e,0xe3b5d19e -.long 0x1b886a4c,0x1b886a4c -.long 0xb81f2cc1,0xb81f2cc1 -.long 0x7f516546,0x7f516546 -.long 0x04ea5e9d,0x04ea5e9d -.long 0x5d358c01,0x5d358c01 -.long 0x737487fa,0x737487fa -.long 0x2e410bfb,0x2e410bfb -.long 0x5a1d67b3,0x5a1d67b3 -.long 0x52d2db92,0x52d2db92 -.long 0x335610e9,0x335610e9 -.long 0x1347d66d,0x1347d66d -.long 0x8c61d79a,0x8c61d79a -.long 0x7a0ca137,0x7a0ca137 -.long 0x8e14f859,0x8e14f859 -.long 0x893c13eb,0x893c13eb -.long 0xee27a9ce,0xee27a9ce -.long 0x35c961b7,0x35c961b7 -.long 0xede51ce1,0xede51ce1 -.long 0x3cb1477a,0x3cb1477a -.long 0x59dfd29c,0x59dfd29c -.long 0x3f73f255,0x3f73f255 -.long 0x79ce1418,0x79ce1418 -.long 0xbf37c773,0xbf37c773 -.long 0xeacdf753,0xeacdf753 -.long 0x5baafd5f,0x5baafd5f -.long 0x146f3ddf,0x146f3ddf -.long 0x86db4478,0x86db4478 -.long 0x81f3afca,0x81f3afca -.long 0x3ec468b9,0x3ec468b9 -.long 0x2c342438,0x2c342438 -.long 0x5f40a3c2,0x5f40a3c2 -.long 0x72c31d16,0x72c31d16 -.long 0x0c25e2bc,0x0c25e2bc -.long 0x8b493c28,0x8b493c28 -.long 0x41950dff,0x41950dff -.long 0x7101a839,0x7101a839 -.long 0xdeb30c08,0xdeb30c08 -.long 0x9ce4b4d8,0x9ce4b4d8 -.long 0x90c15664,0x90c15664 -.long 0x6184cb7b,0x6184cb7b -.long 0x70b632d5,0x70b632d5 -.long 0x745c6c48,0x745c6c48 -.long 0x4257b8d0,0x4257b8d0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.align 64 -#endif diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S index 240cb5d4730..65ab5c78fe2 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S @@ -556,12 +556,10 @@ _aesni_ctr32_6x: .align 32 aesni_gcm_encrypt: .cfi_startproc -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit movb $1,BORINGSSL_function_hit+2(%rip) -#endif #endif xorq %r10,%r10 @@ -851,3 +849,4 @@ aesni_gcm_encrypt: .byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S index 42e55307ff2..b98107f3694 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S @@ -20,12 +20,10 @@ .align 16 aes_hw_encrypt: .cfi_startproc -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit movb $1,BORINGSSL_function_hit+1(%rip) -#endif #endif movups (%rdi),%xmm2 movl 240(%rdx),%eax @@ -887,10 +885,8 @@ aes_hw_ecb_encrypt: .align 16 aes_hw_ctr32_encrypt_blocks: .cfi_startproc -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,BORINGSSL_function_hit(%rip) -#endif #endif cmpq $1,%rdx jne .Lctr32_bulk @@ -2111,11 +2107,9 @@ aes_hw_set_decrypt_key: aes_hw_set_encrypt_key: __aesni_set_encrypt_key: .cfi_startproc -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,BORINGSSL_function_hit+3(%rip) #endif -#endif .byte 0x48,0x83,0xEC,0x08 .cfi_adjust_cfa_offset 8 movq $-1,%rax @@ -2509,3 +2503,4 @@ __aesni_set_encrypt_key: .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S index ecf5b66ffff..a44790b169f 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S @@ -424,3 +424,4 @@ gcm_ghash_ssse3: .Llow4_mask: .quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S index 0b36afac943..3eb1af43553 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S @@ -14,709 +14,6 @@ .text .extern OPENSSL_ia32cap_P .hidden OPENSSL_ia32cap_P - -.globl gcm_gmult_4bit -.hidden gcm_gmult_4bit -.type gcm_gmult_4bit,@function -.align 16 -gcm_gmult_4bit: -.cfi_startproc - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 - subq $280,%rsp -.cfi_adjust_cfa_offset 280 -.Lgmult_prologue: - - movzbq 15(%rdi),%r8 - leaq .Lrem_4bit(%rip),%r11 - xorq %rax,%rax - xorq %rbx,%rbx - movb %r8b,%al - movb %r8b,%bl - shlb $4,%al - movq $14,%rcx - movq 8(%rsi,%rax,1),%r8 - movq (%rsi,%rax,1),%r9 - andb $0xf0,%bl - movq %r8,%rdx - jmp .Loop1 - -.align 16 -.Loop1: - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - movb (%rdi,%rcx,1),%al - shrq $4,%r9 - xorq 8(%rsi,%rbx,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rbx,1),%r9 - movb %al,%bl - xorq (%r11,%rdx,8),%r9 - movq %r8,%rdx - shlb $4,%al - xorq %r10,%r8 - decq %rcx - js .Lbreak1 - - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - shrq $4,%r9 - xorq 8(%rsi,%rax,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rax,1),%r9 - andb $0xf0,%bl - xorq (%r11,%rdx,8),%r9 - movq %r8,%rdx - xorq %r10,%r8 - jmp .Loop1 - -.align 16 -.Lbreak1: - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - shrq $4,%r9 - xorq 8(%rsi,%rax,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rax,1),%r9 - andb $0xf0,%bl - xorq (%r11,%rdx,8),%r9 - movq %r8,%rdx - xorq %r10,%r8 - - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - shrq $4,%r9 - xorq 8(%rsi,%rbx,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rbx,1),%r9 - xorq %r10,%r8 - xorq (%r11,%rdx,8),%r9 - - bswapq %r8 - bswapq %r9 - movq %r8,8(%rdi) - movq %r9,(%rdi) - - leaq 280+48(%rsp),%rsi -.cfi_def_cfa %rsi,8 - movq -8(%rsi),%rbx -.cfi_restore %rbx - leaq (%rsi),%rsp -.cfi_def_cfa_register %rsp -.Lgmult_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size gcm_gmult_4bit,.-gcm_gmult_4bit -.globl gcm_ghash_4bit -.hidden gcm_ghash_4bit -.type gcm_ghash_4bit,@function -.align 16 -gcm_ghash_4bit: -.cfi_startproc - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbx,-16 - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset %rbp,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r12,-32 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r13,-40 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r14,-48 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset %r15,-56 - subq $280,%rsp -.cfi_adjust_cfa_offset 280 -.Lghash_prologue: - movq %rdx,%r14 - movq %rcx,%r15 - subq $-128,%rsi - leaq 16+128(%rsp),%rbp - xorl %edx,%edx - movq 0+0-128(%rsi),%r8 - movq 0+8-128(%rsi),%rax - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq 16+0-128(%rsi),%r9 - shlb $4,%dl - movq 16+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,0(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,0(%rbp) - movq 32+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,0-128(%rbp) - movq 32+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,1(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,8(%rbp) - movq 48+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,8-128(%rbp) - movq 48+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,2(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,16(%rbp) - movq 64+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,16-128(%rbp) - movq 64+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,3(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,24(%rbp) - movq 80+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,24-128(%rbp) - movq 80+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,4(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,32(%rbp) - movq 96+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,32-128(%rbp) - movq 96+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,5(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,40(%rbp) - movq 112+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,40-128(%rbp) - movq 112+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,6(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,48(%rbp) - movq 128+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,48-128(%rbp) - movq 128+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,7(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,56(%rbp) - movq 144+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,56-128(%rbp) - movq 144+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,8(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,64(%rbp) - movq 160+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,64-128(%rbp) - movq 160+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,9(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,72(%rbp) - movq 176+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,72-128(%rbp) - movq 176+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,10(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,80(%rbp) - movq 192+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,80-128(%rbp) - movq 192+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,11(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,88(%rbp) - movq 208+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,88-128(%rbp) - movq 208+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,12(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,96(%rbp) - movq 224+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,96-128(%rbp) - movq 224+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,13(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,104(%rbp) - movq 240+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,104-128(%rbp) - movq 240+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,14(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,112(%rbp) - shlb $4,%dl - movq %rax,112-128(%rbp) - shlq $60,%r10 - movb %dl,15(%rsp) - orq %r10,%rbx - movq %r9,120(%rbp) - movq %rbx,120-128(%rbp) - addq $-128,%rsi - movq 8(%rdi),%r8 - movq 0(%rdi),%r9 - addq %r14,%r15 - leaq .Lrem_8bit(%rip),%r11 - jmp .Louter_loop -.align 16 -.Louter_loop: - xorq (%r14),%r9 - movq 8(%r14),%rdx - leaq 16(%r14),%r14 - xorq %r8,%rdx - movq %r9,(%rdi) - movq %rdx,8(%rdi) - shrq $32,%rdx - xorq %rax,%rax - roll $8,%edx - movb %dl,%al - movzbl %dl,%ebx - shlb $4,%al - shrl $4,%ebx - roll $8,%edx - movq 8(%rsi,%rax,1),%r8 - movq (%rsi,%rax,1),%r9 - movb %dl,%al - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - xorq %r8,%r12 - movq %r9,%r10 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl 8(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl 4(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl 0(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - andl $240,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl -4(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - movzwq (%r11,%r12,2),%r12 - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - shlq $48,%r12 - xorq %r10,%r8 - xorq %r12,%r9 - movzbq %r8b,%r13 - shrq $4,%r8 - movq %r9,%r10 - shlb $4,%r13b - shrq $4,%r9 - xorq 8(%rsi,%rcx,1),%r8 - movzwq (%r11,%r13,2),%r13 - shlq $60,%r10 - xorq (%rsi,%rcx,1),%r9 - xorq %r10,%r8 - shlq $48,%r13 - bswapq %r8 - xorq %r13,%r9 - bswapq %r9 - cmpq %r15,%r14 - jb .Louter_loop - movq %r8,8(%rdi) - movq %r9,(%rdi) - - leaq 280+48(%rsp),%rsi -.cfi_def_cfa %rsi,8 - movq -48(%rsi),%r15 -.cfi_restore %r15 - movq -40(%rsi),%r14 -.cfi_restore %r14 - movq -32(%rsi),%r13 -.cfi_restore %r13 - movq -24(%rsi),%r12 -.cfi_restore %r12 - movq -16(%rsi),%rbp -.cfi_restore %rbp - movq -8(%rsi),%rbx -.cfi_restore %rbx - leaq 0(%rsi),%rsp -.cfi_def_cfa_register %rsp -.Lghash_epilogue: - .byte 0xf3,0xc3 -.cfi_endproc -.size gcm_ghash_4bit,.-gcm_ghash_4bit .globl gcm_init_clmul .hidden gcm_init_clmul .type gcm_init_clmul,@function @@ -1822,50 +1119,9 @@ gcm_ghash_avx: .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 .L7_mask: .long 7,0,7,0 -.L7_mask_poly: -.long 7,0,450,0 .align 64 -.type .Lrem_4bit,@object -.Lrem_4bit: -.long 0,0,0,471859200,0,943718400,0,610271232 -.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 -.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 -.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 -.type .Lrem_8bit,@object -.Lrem_8bit: -.value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E -.value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E -.value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E -.value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E -.value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E -.value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E -.value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E -.value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E -.value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE -.value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE -.value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE -.value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE -.value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E -.value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E -.value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE -.value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE -.value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E -.value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E -.value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E -.value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E -.value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E -.value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E -.value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E -.value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E -.value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE -.value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE -.value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE -.value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE -.value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E -.value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E -.value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE -.value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/md5-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/md5-x86_64.S index 18e2e9282a8..04aaf057e60 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/md5-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/md5-x86_64.S @@ -699,3 +699,4 @@ md5_block_asm_data_order: .cfi_endproc .size md5_block_asm_data_order,.-md5_block_asm_data_order #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S index 067575ec751..85f48990128 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S @@ -4540,3 +4540,4 @@ ecp_nistz256_point_add_affinex: .cfi_endproc .size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S index 5dfecc85ebf..d072a83479b 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S @@ -340,3 +340,4 @@ beeu_mod_inverse_vartime: .size beeu_mod_inverse_vartime, .-beeu_mod_inverse_vartime #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S index fefccd6fdf2..18d66f6f7f7 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S @@ -60,3 +60,4 @@ CRYPTO_rdrand_multiple8_buf: .cfi_endproc .size CRYPTO_rdrand_multiple8_buf,.-CRYPTO_rdrand_multiple8_buf #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S index 579c7055565..faccd484b00 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S @@ -1746,3 +1746,4 @@ rsaz_1024_gather5_avx2: .long 4,4,4,4, 4,4,4,4 .align 64 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S index 044f36f0ca6..964687dc756 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S @@ -27,6 +27,11 @@ sha1_block_data_order: movl 8(%r10),%r10d testl $512,%r8d jz .Lialu + testl $536870912,%r10d + jnz _shaext_shortcut + andl $296,%r10d + cmpl $296,%r10d + je _avx2_shortcut andl $268435456,%r8d andl $1073741824,%r9d orl %r9d,%r8d @@ -1266,6 +1271,175 @@ sha1_block_data_order: .byte 0xf3,0xc3 .cfi_endproc .size sha1_block_data_order,.-sha1_block_data_order +.type sha1_block_data_order_shaext,@function +.align 32 +sha1_block_data_order_shaext: +_shaext_shortcut: +.cfi_startproc + movdqu (%rdi),%xmm0 + movd 16(%rdi),%xmm1 + movdqa K_XX_XX+160(%rip),%xmm3 + + movdqu (%rsi),%xmm4 + pshufd $27,%xmm0,%xmm0 + movdqu 16(%rsi),%xmm5 + pshufd $27,%xmm1,%xmm1 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,227 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,235 +.byte 102,15,56,0,243 + movdqa %xmm1,%xmm9 +.byte 102,15,56,0,251 + jmp .Loop_shaext + +.align 16 +.Loop_shaext: + decq %rdx + leaq 64(%rsi),%r8 + paddd %xmm4,%xmm1 + cmovneq %r8,%rsi + movdqa %xmm0,%xmm8 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 + movdqu (%rsi),%xmm4 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,213 + movdqu 16(%rsi),%xmm5 +.byte 102,15,56,0,227 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,206 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,235 + + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,215 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,243 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 65,15,56,200,201 +.byte 102,15,56,0,251 + + paddd %xmm8,%xmm0 + movdqa %xmm1,%xmm9 + + jnz .Loop_shaext + + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm1,%xmm1 + movdqu %xmm0,(%rdi) + movd %xmm1,16(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_block_data_order_shaext,.-sha1_block_data_order_shaext .type sha1_block_data_order_ssse3,@function .align 16 sha1_block_data_order_ssse3: @@ -3582,6 +3756,1699 @@ _avx_shortcut: .byte 0xf3,0xc3 .cfi_endproc .size sha1_block_data_order_avx,.-sha1_block_data_order_avx +.type sha1_block_data_order_avx2,@function +.align 16 +sha1_block_data_order_avx2: +_avx2_shortcut: +.cfi_startproc + movq %rsp,%r11 +.cfi_def_cfa_register %r11 + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + vzeroupper + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + leaq -640(%rsp),%rsp + shlq $6,%r10 + leaq 64(%r9),%r13 + andq $-128,%rsp + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + cmpq %r10,%r13 + cmovaeq %r9,%r13 + movl 4(%r8),%ebp + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl 16(%r8),%esi + vmovdqu 64(%r14),%ymm6 + + vmovdqu (%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + leaq 64(%r9),%r9 + vinserti128 $1,(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vpshufb %ymm6,%ymm0,%ymm0 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vpshufb %ymm6,%ymm1,%ymm1 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + vpshufb %ymm6,%ymm2,%ymm2 + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm3,%ymm3 + + vpaddd %ymm11,%ymm0,%ymm4 + vpaddd %ymm11,%ymm1,%ymm5 + vmovdqu %ymm4,0(%rsp) + vpaddd %ymm11,%ymm2,%ymm6 + vmovdqu %ymm5,32(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + vmovdqu %ymm6,64(%rsp) + vmovdqu %ymm7,96(%rsp) + vpalignr $8,%ymm0,%ymm1,%ymm4 + vpsrldq $4,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + vpxor %ymm8,%ymm4,%ymm4 + vpsrld $31,%ymm4,%ymm8 + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + vpxor %ymm10,%ymm4,%ymm4 + vpaddd %ymm11,%ymm4,%ymm9 + vmovdqu %ymm9,128(%rsp) + vpalignr $8,%ymm1,%ymm2,%ymm5 + vpsrldq $4,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + vpxor %ymm8,%ymm5,%ymm5 + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + vpxor %ymm10,%ymm5,%ymm5 + vpaddd %ymm11,%ymm5,%ymm9 + vmovdqu %ymm9,160(%rsp) + vpalignr $8,%ymm2,%ymm3,%ymm6 + vpsrldq $4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + vpxor %ymm8,%ymm6,%ymm6 + vpsrld $31,%ymm6,%ymm8 + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + vpxor %ymm10,%ymm6,%ymm6 + vpaddd %ymm11,%ymm6,%ymm9 + vmovdqu %ymm9,192(%rsp) + vpalignr $8,%ymm3,%ymm4,%ymm7 + vpsrldq $4,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + vpxor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm7,%ymm8 + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + vpxor %ymm10,%ymm7,%ymm7 + vpaddd %ymm11,%ymm7,%ymm9 + vmovdqu %ymm9,224(%rsp) + leaq 128(%rsp),%r13 + jmp .Loop_avx2 +.align 32 +.Loop_avx2: + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + jmp .Lalign32_1 +.align 32 +.Lalign32_1: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + vpxor %ymm1,%ymm0,%ymm0 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpxor %ymm8,%ymm0,%ymm0 + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vpor %ymm8,%ymm0,%ymm0 + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + vpaddd %ymm11,%ymm0,%ymm9 + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + vmovdqu %ymm9,256(%rsp) + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + vpxor %ymm2,%ymm1,%ymm1 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpxor %ymm8,%ymm1,%ymm1 + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vpor %ymm8,%ymm1,%ymm1 + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + vpaddd %ymm11,%ymm1,%ymm9 + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vmovdqu %ymm9,288(%rsp) + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + vpxor %ymm3,%ymm2,%ymm2 + vmovdqu 0(%r14),%ymm11 + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpxor %ymm8,%ymm2,%ymm2 + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vpor %ymm8,%ymm2,%ymm2 + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + vpaddd %ymm11,%ymm2,%ymm9 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vmovdqu %ymm9,320(%rsp) + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + vpxor %ymm4,%ymm3,%ymm3 + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpxor %ymm8,%ymm3,%ymm3 + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + vpor %ymm8,%ymm3,%ymm3 + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + vpaddd %ymm11,%ymm3,%ymm9 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vmovdqu %ymm9,352(%rsp) + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpalignr $8,%ymm2,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpxor %ymm5,%ymm4,%ymm4 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpxor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + vpsrld $30,%ymm4,%ymm8 + vpslld $2,%ymm4,%ymm4 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpor %ymm8,%ymm4,%ymm4 + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpaddd %ymm11,%ymm4,%ymm9 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + vmovdqu %ymm9,384(%rsp) + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpalignr $8,%ymm3,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm6,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpxor %ymm8,%ymm5,%ymm5 + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + vpsrld $30,%ymm5,%ymm8 + vpslld $2,%ymm5,%ymm5 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vpor %ymm8,%ymm5,%ymm5 + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + vmovdqu %ymm9,416(%rsp) + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm7,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + vpxor %ymm8,%ymm6,%ymm6 + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + vpsrld $30,%ymm6,%ymm8 + vpslld $2,%ymm6,%ymm6 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpor %ymm8,%ymm6,%ymm6 + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + vmovdqu %ymm9,448(%rsp) + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm5,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm0,%ymm7,%ymm7 + vmovdqu 32(%r14),%ymm11 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpxor %ymm8,%ymm7,%ymm7 + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + vpsrld $30,%ymm7,%ymm8 + vpslld $2,%ymm7,%ymm7 + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpor %ymm8,%ymm7,%ymm7 + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + vmovdqu %ymm9,480(%rsp) + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + jmp .Lalign32_2 +.align 32 +.Lalign32_2: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -64(%r13),%ebp + xorl %esi,%ecx + vpxor %ymm1,%ymm0,%ymm0 + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + vpxor %ymm8,%ymm0,%ymm0 + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + vpor %ymm8,%ymm0,%ymm0 + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpaddd %ymm11,%ymm0,%ymm9 + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + vmovdqu %ymm9,512(%rsp) + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -28(%r13),%ebx + xorl %eax,%edx + vpxor %ymm2,%ymm1,%ymm1 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpxor %ymm8,%ymm1,%ymm1 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + vpor %ymm8,%ymm1,%ymm1 + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpaddd %ymm11,%ymm1,%ymm9 + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + vmovdqu %ymm9,544(%rsp) + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl 8(%r13),%ecx + xorl %ebp,%esi + vpxor %ymm3,%ymm2,%ymm2 + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + vpxor %ymm8,%ymm2,%ymm2 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + vpor %ymm8,%ymm2,%ymm2 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpaddd %ymm11,%ymm2,%ymm9 + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + vmovdqu %ymm9,576(%rsp) + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl 44(%r13),%edx + xorl %ebx,%eax + vpxor %ymm4,%ymm3,%ymm3 + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm3,%ymm3 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl %r12d,%edx + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + vpor %ymm8,%ymm3,%ymm3 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpaddd %ymm11,%ymm3,%ymm9 + addl %r12d,%ecx + andl %edi,%edx + addl 68(%r13),%ebx + xorl %eax,%edx + vmovdqu %ymm9,608(%rsp) + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -96(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -60(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%r9),%r13 + leaq 128(%r9),%rdi + cmpq %r10,%r13 + cmovaeq %r9,%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + je .Ldone_avx2 + vmovdqu 64(%r14),%ymm6 + cmpq %r10,%rdi + ja .Last_avx2 + + vmovdqu -64(%rdi),%xmm0 + vmovdqu -48(%rdi),%xmm1 + vmovdqu -32(%rdi),%xmm2 + vmovdqu -16(%rdi),%xmm3 + vinserti128 $1,0(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + jmp .Last_avx2 + +.align 32 +.Last_avx2: + leaq 128+16(%rsp),%r13 + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + subq $-128,%r9 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm0,%ymm0 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpshufb %ymm6,%ymm1,%ymm1 + vpaddd %ymm11,%ymm0,%ymm8 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vmovdqu %ymm8,0(%rsp) + vpshufb %ymm6,%ymm2,%ymm2 + vpaddd %ymm11,%ymm1,%ymm9 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + vmovdqu %ymm9,32(%rsp) + vpshufb %ymm6,%ymm3,%ymm3 + vpaddd %ymm11,%ymm2,%ymm6 + addl -64(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + jmp .Lalign32_3 +.align 32 +.Lalign32_3: + vmovdqu %ymm6,64(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + addl -28(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vmovdqu %ymm7,96(%rsp) + addl 8(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm0,%ymm1,%ymm4 + addl 44(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + vpsrldq $4,%ymm3,%ymm8 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + xorl %ebp,%esi + addl %r12d,%edx + vpxor %ymm8,%ymm4,%ymm4 + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + vpsrld $31,%ymm4,%ymm8 + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + andl %edi,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + addl 68(%r13),%ebx + xorl %eax,%edx + vpxor %ymm10,%ymm4,%ymm4 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpaddd %ymm11,%ymm4,%ymm9 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vmovdqu %ymm9,128(%rsp) + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm1,%ymm2,%ymm5 + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrldq $4,%ymm4,%ymm8 + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + xorl %eax,%edx + addl %r12d,%ecx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + vpxor %ymm10,%ymm5,%ymm5 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vmovdqu %ymm9,160(%rsp) + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm2,%ymm3,%ymm6 + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpsrldq $4,%ymm5,%ymm8 + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm8,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + vpsrld $31,%ymm6,%ymm8 + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + xorl %ebp,%esi + addl %r12d,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + xorl %ebx,%esi + addl -96(%r13),%ecx + vpxor %ymm10,%ymm6,%ymm6 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vmovdqu %ymm9,192(%rsp) + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpalignr $8,%ymm3,%ymm4,%ymm7 + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpsrldq $4,%ymm6,%ymm8 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm8,%ymm7,%ymm7 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + vpsrld $31,%ymm7,%ymm8 + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + xorl %ebx,%eax + addl %r12d,%esi + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + xorl %ecx,%eax + addl -60(%r13),%edx + vpxor %ymm10,%ymm7,%ymm7 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vmovdqu %ymm9,224(%rsp) + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%rsp),%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + jbe .Loop_avx2 + +.Ldone_avx2: + vzeroupper + movq -40(%r11),%r14 +.cfi_restore %r14 + movq -32(%r11),%r13 +.cfi_restore %r13 + movq -24(%r11),%r12 +.cfi_restore %r12 + movq -16(%r11),%rbp +.cfi_restore %rbp + movq -8(%r11),%rbx +.cfi_restore %rbx + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx2: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2 .align 64 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -3598,3 +5465,4 @@ K_XX_XX: .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 64 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S index 55b540f161c..0bacd6a4a82 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S @@ -3970,3 +3970,4 @@ sha256_block_data_order_avx: .cfi_endproc .size sha256_block_data_order_avx,.-sha256_block_data_order_avx #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S index 509e144ed8d..afc47f139be 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S @@ -2989,3 +2989,4 @@ sha512_block_data_order_avx: .cfi_endproc .size sha512_block_data_order_avx,.-sha512_block_data_order_avx #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S index 0fc93f9a267..27a34617a31 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S @@ -812,12 +812,10 @@ _vpaes_schedule_mangle: .align 16 vpaes_set_encrypt_key: .cfi_startproc -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit movb $1,BORINGSSL_function_hit+5(%rip) -#endif #endif movl %esi,%eax @@ -863,12 +861,10 @@ vpaes_set_decrypt_key: .align 16 vpaes_encrypt: .cfi_startproc -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST .extern BORINGSSL_function_hit .hidden BORINGSSL_function_hit movb $1,BORINGSSL_function_hit+4(%rip) -#endif #endif movdqu (%rdi),%xmm0 call _vpaes_preheat @@ -1134,3 +1130,4 @@ _vpaes_consts: .align 64 .size _vpaes_consts,.-_vpaes_consts #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont.S index f3637f01aa8..bdb44542122 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont.S @@ -1257,3 +1257,4 @@ bn_mulx4x_mont: .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 16 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S index b12393e2010..c86b3b0a594 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S @@ -3787,3 +3787,4 @@ bn_gather5: .long 2,2, 2,2 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/test/trampoline-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/test/trampoline-x86_64.S index 91a13f3eed2..9f7c0d817c9 100644 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/test/trampoline-x86_64.S +++ b/contrib/boringssl-cmake/linux-x86_64/crypto/test/trampoline-x86_64.S @@ -515,3 +515,4 @@ abi_test_set_direction_flag: .byte 0xf3,0xc3 .size abi_test_set_direction_flag,.-abi_test_set_direction_flag #endif +.section .note.GNU-stack,"",@progbits diff --git a/contrib/boringssl-cmake/linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S b/contrib/boringssl-cmake/linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S deleted file mode 100644 index 4b3c925467f..00000000000 --- a/contrib/boringssl-cmake/linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S +++ /dev/null @@ -1,1870 +0,0 @@ -# This file is generated from a similarly-named Perl script in the BoringSSL -# source tree. Do not edit by hand. - -#if defined(__has_feature) -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif -#endif - -#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.text - - -.Lp434x2: -.quad 0xFFFFFFFFFFFFFFFE -.quad 0xFFFFFFFFFFFFFFFF -.quad 0xFB82ECF5C5FFFFFF -.quad 0xF78CB8F062B15D47 -.quad 0xD9F8BFAD038A40AC -.quad 0x0004683E4E2EE688 - - -.Lp434p1: -.quad 0xFDC1767AE3000000 -.quad 0x7BC65C783158AEA3 -.quad 0x6CFC5FD681C52056 -.quad 0x0002341F27177344 - -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P -.globl sike_fpadd -.hidden sike_fpadd -.type sike_fpadd,@function -sike_fpadd: -.cfi_startproc - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset r12, -16 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset r13, -24 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset r14, -32 - - xorq %rax,%rax - - movq 0(%rdi),%r8 - addq 0(%rsi),%r8 - movq 8(%rdi),%r9 - adcq 8(%rsi),%r9 - movq 16(%rdi),%r10 - adcq 16(%rsi),%r10 - movq 24(%rdi),%r11 - adcq 24(%rsi),%r11 - movq 32(%rdi),%r12 - adcq 32(%rsi),%r12 - movq 40(%rdi),%r13 - adcq 40(%rsi),%r13 - movq 48(%rdi),%r14 - adcq 48(%rsi),%r14 - - movq .Lp434x2(%rip),%rcx - subq %rcx,%r8 - movq 8+.Lp434x2(%rip),%rcx - sbbq %rcx,%r9 - sbbq %rcx,%r10 - movq 16+.Lp434x2(%rip),%rcx - sbbq %rcx,%r11 - movq 24+.Lp434x2(%rip),%rcx - sbbq %rcx,%r12 - movq 32+.Lp434x2(%rip),%rcx - sbbq %rcx,%r13 - movq 40+.Lp434x2(%rip),%rcx - sbbq %rcx,%r14 - - sbbq $0,%rax - - movq .Lp434x2(%rip),%rdi - andq %rax,%rdi - movq 8+.Lp434x2(%rip),%rsi - andq %rax,%rsi - movq 16+.Lp434x2(%rip),%rcx - andq %rax,%rcx - - addq %rdi,%r8 - movq %r8,0(%rdx) - adcq %rsi,%r9 - movq %r9,8(%rdx) - adcq %rsi,%r10 - movq %r10,16(%rdx) - adcq %rcx,%r11 - movq %r11,24(%rdx) - - setc %cl - movq 24+.Lp434x2(%rip),%r8 - andq %rax,%r8 - movq 32+.Lp434x2(%rip),%r9 - andq %rax,%r9 - movq 40+.Lp434x2(%rip),%r10 - andq %rax,%r10 - btq $0,%rcx - - adcq %r8,%r12 - movq %r12,32(%rdx) - adcq %r9,%r13 - movq %r13,40(%rdx) - adcq %r10,%r14 - movq %r14,48(%rdx) - - popq %r14 -.cfi_adjust_cfa_offset -8 - popq %r13 -.cfi_adjust_cfa_offset -8 - popq %r12 -.cfi_adjust_cfa_offset -8 - .byte 0xf3,0xc3 -.cfi_endproc -.globl sike_cswap_asm -.hidden sike_cswap_asm -.type sike_cswap_asm,@function -sike_cswap_asm: - - - movq %rdx,%xmm3 - - - - - - pshufd $68,%xmm3,%xmm3 - - movdqu 0(%rdi),%xmm0 - movdqu 0(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,0(%rdi) - movdqu %xmm1,0(%rsi) - - movdqu 16(%rdi),%xmm0 - movdqu 16(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,16(%rdi) - movdqu %xmm1,16(%rsi) - - movdqu 32(%rdi),%xmm0 - movdqu 32(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,32(%rdi) - movdqu %xmm1,32(%rsi) - - movdqu 48(%rdi),%xmm0 - movdqu 48(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,48(%rdi) - movdqu %xmm1,48(%rsi) - - movdqu 64(%rdi),%xmm0 - movdqu 64(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,64(%rdi) - movdqu %xmm1,64(%rsi) - - movdqu 80(%rdi),%xmm0 - movdqu 80(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,80(%rdi) - movdqu %xmm1,80(%rsi) - - movdqu 96(%rdi),%xmm0 - movdqu 96(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,96(%rdi) - movdqu %xmm1,96(%rsi) - - movdqu 112(%rdi),%xmm0 - movdqu 112(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,112(%rdi) - movdqu %xmm1,112(%rsi) - - movdqu 128(%rdi),%xmm0 - movdqu 128(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,128(%rdi) - movdqu %xmm1,128(%rsi) - - movdqu 144(%rdi),%xmm0 - movdqu 144(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,144(%rdi) - movdqu %xmm1,144(%rsi) - - movdqu 160(%rdi),%xmm0 - movdqu 160(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,160(%rdi) - movdqu %xmm1,160(%rsi) - - movdqu 176(%rdi),%xmm0 - movdqu 176(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,176(%rdi) - movdqu %xmm1,176(%rsi) - - movdqu 192(%rdi),%xmm0 - movdqu 192(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,192(%rdi) - movdqu %xmm1,192(%rsi) - - movdqu 208(%rdi),%xmm0 - movdqu 208(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,208(%rdi) - movdqu %xmm1,208(%rsi) - - .byte 0xf3,0xc3 -.globl sike_fpsub -.hidden sike_fpsub -.type sike_fpsub,@function -sike_fpsub: -.cfi_startproc - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset r12, -16 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset r13, -24 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset r14, -32 - - xorq %rax,%rax - - movq 0(%rdi),%r8 - subq 0(%rsi),%r8 - movq 8(%rdi),%r9 - sbbq 8(%rsi),%r9 - movq 16(%rdi),%r10 - sbbq 16(%rsi),%r10 - movq 24(%rdi),%r11 - sbbq 24(%rsi),%r11 - movq 32(%rdi),%r12 - sbbq 32(%rsi),%r12 - movq 40(%rdi),%r13 - sbbq 40(%rsi),%r13 - movq 48(%rdi),%r14 - sbbq 48(%rsi),%r14 - - sbbq $0x0,%rax - - movq .Lp434x2(%rip),%rdi - andq %rax,%rdi - movq 8+.Lp434x2(%rip),%rsi - andq %rax,%rsi - movq 16+.Lp434x2(%rip),%rcx - andq %rax,%rcx - - addq %rdi,%r8 - movq %r8,0(%rdx) - adcq %rsi,%r9 - movq %r9,8(%rdx) - adcq %rsi,%r10 - movq %r10,16(%rdx) - adcq %rcx,%r11 - movq %r11,24(%rdx) - - setc %cl - movq 24+.Lp434x2(%rip),%r8 - andq %rax,%r8 - movq 32+.Lp434x2(%rip),%r9 - andq %rax,%r9 - movq 40+.Lp434x2(%rip),%r10 - andq %rax,%r10 - btq $0x0,%rcx - - adcq %r8,%r12 - adcq %r9,%r13 - adcq %r10,%r14 - movq %r12,32(%rdx) - movq %r13,40(%rdx) - movq %r14,48(%rdx) - - popq %r14 -.cfi_adjust_cfa_offset -8 - popq %r13 -.cfi_adjust_cfa_offset -8 - popq %r12 -.cfi_adjust_cfa_offset -8 - .byte 0xf3,0xc3 -.cfi_endproc -.globl sike_mpadd_asm -.hidden sike_mpadd_asm -.type sike_mpadd_asm,@function -sike_mpadd_asm: -.cfi_startproc - movq 0(%rdi),%r8; - movq 8(%rdi),%r9 - movq 16(%rdi),%r10 - movq 24(%rdi),%r11 - movq 32(%rdi),%rcx - addq 0(%rsi),%r8 - adcq 8(%rsi),%r9 - adcq 16(%rsi),%r10 - adcq 24(%rsi),%r11 - adcq 32(%rsi),%rcx - movq %r8,0(%rdx) - movq %r9,8(%rdx) - movq %r10,16(%rdx) - movq %r11,24(%rdx) - movq %rcx,32(%rdx) - - movq 40(%rdi),%r8 - movq 48(%rdi),%r9 - adcq 40(%rsi),%r8 - adcq 48(%rsi),%r9 - movq %r8,40(%rdx) - movq %r9,48(%rdx) - .byte 0xf3,0xc3 -.cfi_endproc -.globl sike_mpsubx2_asm -.hidden sike_mpsubx2_asm -.type sike_mpsubx2_asm,@function -sike_mpsubx2_asm: -.cfi_startproc - xorq %rax,%rax - - movq 0(%rdi),%r8 - movq 8(%rdi),%r9 - movq 16(%rdi),%r10 - movq 24(%rdi),%r11 - movq 32(%rdi),%rcx - subq 0(%rsi),%r8 - sbbq 8(%rsi),%r9 - sbbq 16(%rsi),%r10 - sbbq 24(%rsi),%r11 - sbbq 32(%rsi),%rcx - movq %r8,0(%rdx) - movq %r9,8(%rdx) - movq %r10,16(%rdx) - movq %r11,24(%rdx) - movq %rcx,32(%rdx) - - movq 40(%rdi),%r8 - movq 48(%rdi),%r9 - movq 56(%rdi),%r10 - movq 64(%rdi),%r11 - movq 72(%rdi),%rcx - sbbq 40(%rsi),%r8 - sbbq 48(%rsi),%r9 - sbbq 56(%rsi),%r10 - sbbq 64(%rsi),%r11 - sbbq 72(%rsi),%rcx - movq %r8,40(%rdx) - movq %r9,48(%rdx) - movq %r10,56(%rdx) - movq %r11,64(%rdx) - movq %rcx,72(%rdx) - - movq 80(%rdi),%r8 - movq 88(%rdi),%r9 - movq 96(%rdi),%r10 - movq 104(%rdi),%r11 - sbbq 80(%rsi),%r8 - sbbq 88(%rsi),%r9 - sbbq 96(%rsi),%r10 - sbbq 104(%rsi),%r11 - sbbq $0x0,%rax - movq %r8,80(%rdx) - movq %r9,88(%rdx) - movq %r10,96(%rdx) - movq %r11,104(%rdx) - .byte 0xf3,0xc3 -.cfi_endproc -.globl sike_mpdblsubx2_asm -.hidden sike_mpdblsubx2_asm -.type sike_mpdblsubx2_asm,@function -sike_mpdblsubx2_asm: -.cfi_startproc - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset r12, -16 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset r13, -24 - - xorq %rax,%rax - - - movq 0(%rdx),%r8 - movq 8(%rdx),%r9 - movq 16(%rdx),%r10 - movq 24(%rdx),%r11 - movq 32(%rdx),%r12 - movq 40(%rdx),%r13 - movq 48(%rdx),%rcx - subq 0(%rdi),%r8 - sbbq 8(%rdi),%r9 - sbbq 16(%rdi),%r10 - sbbq 24(%rdi),%r11 - sbbq 32(%rdi),%r12 - sbbq 40(%rdi),%r13 - sbbq 48(%rdi),%rcx - adcq $0x0,%rax - - - subq 0(%rsi),%r8 - sbbq 8(%rsi),%r9 - sbbq 16(%rsi),%r10 - sbbq 24(%rsi),%r11 - sbbq 32(%rsi),%r12 - sbbq 40(%rsi),%r13 - sbbq 48(%rsi),%rcx - adcq $0x0,%rax - - - movq %r8,0(%rdx) - movq %r9,8(%rdx) - movq %r10,16(%rdx) - movq %r11,24(%rdx) - movq %r12,32(%rdx) - movq %r13,40(%rdx) - movq %rcx,48(%rdx) - - - movq 56(%rdx),%r8 - movq 64(%rdx),%r9 - movq 72(%rdx),%r10 - movq 80(%rdx),%r11 - movq 88(%rdx),%r12 - movq 96(%rdx),%r13 - movq 104(%rdx),%rcx - - subq %rax,%r8 - sbbq 56(%rdi),%r8 - sbbq 64(%rdi),%r9 - sbbq 72(%rdi),%r10 - sbbq 80(%rdi),%r11 - sbbq 88(%rdi),%r12 - sbbq 96(%rdi),%r13 - sbbq 104(%rdi),%rcx - - - subq 56(%rsi),%r8 - sbbq 64(%rsi),%r9 - sbbq 72(%rsi),%r10 - sbbq 80(%rsi),%r11 - sbbq 88(%rsi),%r12 - sbbq 96(%rsi),%r13 - sbbq 104(%rsi),%rcx - - - movq %r8,56(%rdx) - movq %r9,64(%rdx) - movq %r10,72(%rdx) - movq %r11,80(%rdx) - movq %r12,88(%rdx) - movq %r13,96(%rdx) - movq %rcx,104(%rdx) - - popq %r13 -.cfi_adjust_cfa_offset -8 - popq %r12 -.cfi_adjust_cfa_offset -8 - .byte 0xf3,0xc3 -.cfi_endproc - -.Lrdc_bdw: -.cfi_startproc - -.cfi_adjust_cfa_offset 32 -.cfi_offset r12, -16 -.cfi_offset r13, -24 -.cfi_offset r14, -32 -.cfi_offset r15, -40 - - xorq %rax,%rax - movq 0+0(%rdi),%rdx - mulxq 0+.Lp434p1(%rip),%r8,%r9 - mulxq 8+.Lp434p1(%rip),%r12,%r10 - mulxq 16+.Lp434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+.Lp434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - xorq %rax,%rax - movq 0+8(%rdi),%rdx - mulxq 0+.Lp434p1(%rip),%r13,%rcx - adcxq %r13,%r9 - adcxq %rcx,%r10 - - mulxq 8+.Lp434p1(%rip),%rcx,%r13 - adcxq %r13,%r11 - adoxq %rcx,%r10 - - mulxq 16+.Lp434p1(%rip),%rcx,%r13 - adcxq %r13,%r12 - adoxq %rcx,%r11 - - mulxq 24+.Lp434p1(%rip),%rcx,%r13 - adcxq %rax,%r13 - adoxq %rcx,%r12 - adoxq %rax,%r13 - - xorq %rcx,%rcx - addq 24(%rdi),%r8 - adcq 32(%rdi),%r9 - adcq 40(%rdi),%r10 - adcq 48(%rdi),%r11 - adcq 56(%rdi),%r12 - adcq 64(%rdi),%r13 - adcq 72(%rdi),%rcx - movq %r8,24(%rdi) - movq %r9,32(%rdi) - movq %r10,40(%rdi) - movq %r11,48(%rdi) - movq %r12,56(%rdi) - movq %r13,64(%rdi) - movq %rcx,72(%rdi) - movq 80(%rdi),%r8 - movq 88(%rdi),%r9 - movq 96(%rdi),%r10 - movq 104(%rdi),%r11 - adcq $0x0,%r8 - adcq $0x0,%r9 - adcq $0x0,%r10 - adcq $0x0,%r11 - movq %r8,80(%rdi) - movq %r9,88(%rdi) - movq %r10,96(%rdi) - movq %r11,104(%rdi) - - xorq %rax,%rax - movq 16+0(%rdi),%rdx - mulxq 0+.Lp434p1(%rip),%r8,%r9 - mulxq 8+.Lp434p1(%rip),%r12,%r10 - mulxq 16+.Lp434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+.Lp434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - xorq %rax,%rax - movq 16+8(%rdi),%rdx - mulxq 0+.Lp434p1(%rip),%r13,%rcx - adcxq %r13,%r9 - adcxq %rcx,%r10 - - mulxq 8+.Lp434p1(%rip),%rcx,%r13 - adcxq %r13,%r11 - adoxq %rcx,%r10 - - mulxq 16+.Lp434p1(%rip),%rcx,%r13 - adcxq %r13,%r12 - adoxq %rcx,%r11 - - mulxq 24+.Lp434p1(%rip),%rcx,%r13 - adcxq %rax,%r13 - adoxq %rcx,%r12 - adoxq %rax,%r13 - - xorq %rcx,%rcx - addq 40(%rdi),%r8 - adcq 48(%rdi),%r9 - adcq 56(%rdi),%r10 - adcq 64(%rdi),%r11 - adcq 72(%rdi),%r12 - adcq 80(%rdi),%r13 - adcq 88(%rdi),%rcx - movq %r8,40(%rdi) - movq %r9,48(%rdi) - movq %r10,56(%rdi) - movq %r11,64(%rdi) - movq %r12,72(%rdi) - movq %r13,80(%rdi) - movq %rcx,88(%rdi) - movq 96(%rdi),%r8 - movq 104(%rdi),%r9 - adcq $0x0,%r8 - adcq $0x0,%r9 - movq %r8,96(%rdi) - movq %r9,104(%rdi) - - xorq %rax,%rax - movq 32+0(%rdi),%rdx - mulxq 0+.Lp434p1(%rip),%r8,%r9 - mulxq 8+.Lp434p1(%rip),%r12,%r10 - mulxq 16+.Lp434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+.Lp434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - xorq %rax,%rax - movq 32+8(%rdi),%rdx - mulxq 0+.Lp434p1(%rip),%r13,%rcx - adcxq %r13,%r9 - adcxq %rcx,%r10 - - mulxq 8+.Lp434p1(%rip),%rcx,%r13 - adcxq %r13,%r11 - adoxq %rcx,%r10 - - mulxq 16+.Lp434p1(%rip),%rcx,%r13 - adcxq %r13,%r12 - adoxq %rcx,%r11 - - mulxq 24+.Lp434p1(%rip),%rcx,%r13 - adcxq %rax,%r13 - adoxq %rcx,%r12 - adoxq %rax,%r13 - - xorq %rcx,%rcx - addq 56(%rdi),%r8 - adcq 64(%rdi),%r9 - adcq 72(%rdi),%r10 - adcq 80(%rdi),%r11 - adcq 88(%rdi),%r12 - adcq 96(%rdi),%r13 - adcq 104(%rdi),%rcx - movq %r8,0(%rsi) - movq %r9,8(%rsi) - movq %r10,72(%rdi) - movq %r11,80(%rdi) - movq %r12,88(%rdi) - movq %r13,96(%rdi) - movq %rcx,104(%rdi) - - xorq %rax,%rax - movq 48(%rdi),%rdx - mulxq 0+.Lp434p1(%rip),%r8,%r9 - mulxq 8+.Lp434p1(%rip),%r12,%r10 - mulxq 16+.Lp434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+.Lp434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - addq 72(%rdi),%r8 - adcq 80(%rdi),%r9 - adcq 88(%rdi),%r10 - adcq 96(%rdi),%r11 - adcq 104(%rdi),%r12 - movq %r8,16(%rsi) - movq %r9,24(%rsi) - movq %r10,32(%rsi) - movq %r11,40(%rsi) - movq %r12,48(%rsi) - - - popq %r15 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r15 - popq %r14 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r14 - popq %r13 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r13 - popq %r12 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r12 - .byte 0xf3,0xc3 -.cfi_endproc -.globl sike_fprdc -.hidden sike_fprdc -.type sike_fprdc,@function -sike_fprdc: -.cfi_startproc - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset r12, -16 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset r13, -24 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset r14, -32 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset r15, -40 - - - - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je .Lrdc_bdw - - - - - movq 0+0(%rdi),%r14 - movq 0+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r10,%r10 - movq %rax,%r8 - movq %rdx,%r9 - - - movq 8+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r11,%r11 - addq %rax,%r9 - adcq %rdx,%r10 - - - movq 0+8(%rdi),%rcx - movq 0+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - - xorq %r12,%r12 - movq 16+.Lp434p1(%rip),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 8+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 24+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r13,%r13 - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 16+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 24+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r12 - adcq %rdx,%r13 - - - xorq %rcx,%rcx - addq 24(%rdi),%r8 - adcq 32(%rdi),%r9 - adcq 40(%rdi),%r10 - adcq 48(%rdi),%r11 - adcq 56(%rdi),%r12 - adcq 64(%rdi),%r13 - adcq 72(%rdi),%rcx - movq %r8,24(%rdi) - movq %r9,32(%rdi) - movq %r10,40(%rdi) - movq %r11,48(%rdi) - movq %r12,56(%rdi) - movq %r13,64(%rdi) - movq %rcx,72(%rdi) - movq 80(%rdi),%r8 - movq 88(%rdi),%r9 - movq 96(%rdi),%r10 - movq 104(%rdi),%r11 - adcq $0x0,%r8 - adcq $0x0,%r9 - adcq $0x0,%r10 - adcq $0x0,%r11 - movq %r8,80(%rdi) - movq %r9,88(%rdi) - movq %r10,96(%rdi) - movq %r11,104(%rdi) - - - movq 16+0(%rdi),%r14 - movq 0+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r10,%r10 - movq %rax,%r8 - movq %rdx,%r9 - - - movq 8+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r11,%r11 - addq %rax,%r9 - adcq %rdx,%r10 - - - movq 16+8(%rdi),%rcx - movq 0+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - - xorq %r12,%r12 - movq 16+.Lp434p1(%rip),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 8+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 24+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r13,%r13 - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 16+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 24+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r12 - adcq %rdx,%r13 - - - xorq %rcx,%rcx - addq 40(%rdi),%r8 - adcq 48(%rdi),%r9 - adcq 56(%rdi),%r10 - adcq 64(%rdi),%r11 - adcq 72(%rdi),%r12 - adcq 80(%rdi),%r13 - adcq 88(%rdi),%rcx - movq %r8,40(%rdi) - movq %r9,48(%rdi) - movq %r10,56(%rdi) - movq %r11,64(%rdi) - movq %r12,72(%rdi) - movq %r13,80(%rdi) - movq %rcx,88(%rdi) - movq 96(%rdi),%r8 - movq 104(%rdi),%r9 - adcq $0x0,%r8 - adcq $0x0,%r9 - movq %r8,96(%rdi) - movq %r9,104(%rdi) - - - movq 32+0(%rdi),%r14 - movq 0+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r10,%r10 - movq %rax,%r8 - movq %rdx,%r9 - - - movq 8+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r11,%r11 - addq %rax,%r9 - adcq %rdx,%r10 - - - movq 32+8(%rdi),%rcx - movq 0+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - - xorq %r12,%r12 - movq 16+.Lp434p1(%rip),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 8+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 24+.Lp434p1(%rip),%rax - mulq %r14 - xorq %r13,%r13 - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 16+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 24+.Lp434p1(%rip),%rax - mulq %rcx - addq %rax,%r12 - adcq %rdx,%r13 - - - xorq %rcx,%rcx - addq 56(%rdi),%r8 - adcq 64(%rdi),%r9 - adcq 72(%rdi),%r10 - adcq 80(%rdi),%r11 - adcq 88(%rdi),%r12 - adcq 96(%rdi),%r13 - adcq 104(%rdi),%rcx - movq %r8,0(%rsi) - movq %r9,8(%rsi) - movq %r10,72(%rdi) - movq %r11,80(%rdi) - movq %r12,88(%rdi) - movq %r13,96(%rdi) - movq %rcx,104(%rdi) - - movq 48(%rdi),%r13 - - xorq %r10,%r10 - movq 0+.Lp434p1(%rip),%rax - mulq %r13 - movq %rax,%r8 - movq %rdx,%r9 - - xorq %r11,%r11 - movq 8+.Lp434p1(%rip),%rax - mulq %r13 - addq %rax,%r9 - adcq %rdx,%r10 - - xorq %r12,%r12 - movq 16+.Lp434p1(%rip),%rax - mulq %r13 - addq %rax,%r10 - adcq %rdx,%r11 - - movq 24+.Lp434p1(%rip),%rax - mulq %r13 - addq %rax,%r11 - adcq %rdx,%r12 - - addq 72(%rdi),%r8 - adcq 80(%rdi),%r9 - adcq 88(%rdi),%r10 - adcq 96(%rdi),%r11 - adcq 104(%rdi),%r12 - movq %r8,16(%rsi) - movq %r9,24(%rsi) - movq %r10,32(%rsi) - movq %r11,40(%rsi) - movq %r12,48(%rsi) - - - popq %r15 -.cfi_adjust_cfa_offset -8 - popq %r14 -.cfi_adjust_cfa_offset -8 - popq %r13 -.cfi_adjust_cfa_offset -8 - popq %r12 -.cfi_adjust_cfa_offset -8 - .byte 0xf3,0xc3 -.cfi_endproc -.Lmul_bdw: -.cfi_startproc - -.cfi_adjust_cfa_offset 32 -.cfi_offset r12, -16 -.cfi_offset r13, -24 -.cfi_offset r14, -32 -.cfi_offset r15, -40 - - - movq %rdx,%rcx - xorq %rax,%rax - - - movq 0(%rdi),%r8 - movq 8(%rdi),%r9 - movq 16(%rdi),%r10 - movq 24(%rdi),%r11 - - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset rbx, -48 - pushq %rbp -.cfi_offset rbp, -56 -.cfi_adjust_cfa_offset 8 - subq $96,%rsp -.cfi_adjust_cfa_offset 96 - - addq 32(%rdi),%r8 - adcq 40(%rdi),%r9 - adcq 48(%rdi),%r10 - adcq $0x0,%r11 - sbbq $0x0,%rax - movq %r8,0(%rsp) - movq %r9,8(%rsp) - movq %r10,16(%rsp) - movq %r11,24(%rsp) - - - xorq %rbx,%rbx - movq 0(%rsi),%r12 - movq 8(%rsi),%r13 - movq 16(%rsi),%r14 - movq 24(%rsi),%r15 - addq 32(%rsi),%r12 - adcq 40(%rsi),%r13 - adcq 48(%rsi),%r14 - adcq $0x0,%r15 - sbbq $0x0,%rbx - movq %r12,32(%rsp) - movq %r13,40(%rsp) - movq %r14,48(%rsp) - movq %r15,56(%rsp) - - - andq %rax,%r12 - andq %rax,%r13 - andq %rax,%r14 - andq %rax,%r15 - - - andq %rbx,%r8 - andq %rbx,%r9 - andq %rbx,%r10 - andq %rbx,%r11 - - - addq %r12,%r8 - adcq %r13,%r9 - adcq %r14,%r10 - adcq %r15,%r11 - movq %r8,64(%rsp) - movq %r9,72(%rsp) - movq %r10,80(%rsp) - movq %r11,88(%rsp) - - - movq 0+0(%rsp),%rdx - mulxq 32+0(%rsp),%r9,%r8 - movq %r9,0+0(%rsp) - mulxq 32+8(%rsp),%r10,%r9 - xorq %rax,%rax - adoxq %r10,%r8 - mulxq 32+16(%rsp),%r11,%r10 - adoxq %r11,%r9 - mulxq 32+24(%rsp),%r12,%r11 - adoxq %r12,%r10 - - movq 0+8(%rsp),%rdx - mulxq 32+0(%rsp),%r12,%r13 - adoxq %rax,%r11 - xorq %rax,%rax - mulxq 32+8(%rsp),%r15,%r14 - adoxq %r8,%r12 - movq %r12,0+8(%rsp) - adcxq %r15,%r13 - mulxq 32+16(%rsp),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r9,%r13 - mulxq 32+24(%rsp),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r10,%r14 - - movq 0+16(%rsp),%rdx - mulxq 32+0(%rsp),%r8,%r9 - adoxq %r11,%r15 - adoxq %rax,%rbx - xorq %rax,%rax - mulxq 32+8(%rsp),%r11,%r10 - adoxq %r13,%r8 - movq %r8,0+16(%rsp) - adcxq %r11,%r9 - mulxq 32+16(%rsp),%r12,%r11 - adcxq %r12,%r10 - adoxq %r14,%r9 - mulxq 32+24(%rsp),%rbp,%r12 - adcxq %rbp,%r11 - adcxq %rax,%r12 - - adoxq %r15,%r10 - adoxq %rbx,%r11 - adoxq %rax,%r12 - - movq 0+24(%rsp),%rdx - mulxq 32+0(%rsp),%r8,%r13 - xorq %rax,%rax - mulxq 32+8(%rsp),%r15,%r14 - adcxq %r15,%r13 - adoxq %r8,%r9 - mulxq 32+16(%rsp),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r13,%r10 - mulxq 32+24(%rsp),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r14,%r11 - adoxq %r15,%r12 - adoxq %rax,%rbx - movq %r9,0+24(%rsp) - movq %r10,0+32(%rsp) - movq %r11,0+40(%rsp) - movq %r12,0+48(%rsp) - movq %rbx,0+56(%rsp) - - - - movq 0+0(%rdi),%rdx - mulxq 0+0(%rsi),%r9,%r8 - movq %r9,0+0(%rcx) - mulxq 0+8(%rsi),%r10,%r9 - xorq %rax,%rax - adoxq %r10,%r8 - mulxq 0+16(%rsi),%r11,%r10 - adoxq %r11,%r9 - mulxq 0+24(%rsi),%r12,%r11 - adoxq %r12,%r10 - - movq 0+8(%rdi),%rdx - mulxq 0+0(%rsi),%r12,%r13 - adoxq %rax,%r11 - xorq %rax,%rax - mulxq 0+8(%rsi),%r15,%r14 - adoxq %r8,%r12 - movq %r12,0+8(%rcx) - adcxq %r15,%r13 - mulxq 0+16(%rsi),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r9,%r13 - mulxq 0+24(%rsi),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r10,%r14 - - movq 0+16(%rdi),%rdx - mulxq 0+0(%rsi),%r8,%r9 - adoxq %r11,%r15 - adoxq %rax,%rbx - xorq %rax,%rax - mulxq 0+8(%rsi),%r11,%r10 - adoxq %r13,%r8 - movq %r8,0+16(%rcx) - adcxq %r11,%r9 - mulxq 0+16(%rsi),%r12,%r11 - adcxq %r12,%r10 - adoxq %r14,%r9 - mulxq 0+24(%rsi),%rbp,%r12 - adcxq %rbp,%r11 - adcxq %rax,%r12 - - adoxq %r15,%r10 - adoxq %rbx,%r11 - adoxq %rax,%r12 - - movq 0+24(%rdi),%rdx - mulxq 0+0(%rsi),%r8,%r13 - xorq %rax,%rax - mulxq 0+8(%rsi),%r15,%r14 - adcxq %r15,%r13 - adoxq %r8,%r9 - mulxq 0+16(%rsi),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r13,%r10 - mulxq 0+24(%rsi),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r14,%r11 - adoxq %r15,%r12 - adoxq %rax,%rbx - movq %r9,0+24(%rcx) - movq %r10,0+32(%rcx) - movq %r11,0+40(%rcx) - movq %r12,0+48(%rcx) - movq %rbx,0+56(%rcx) - - - - movq 32+0(%rdi),%rdx - mulxq 32+0(%rsi),%r9,%r8 - movq %r9,64+0(%rcx) - mulxq 32+8(%rsi),%r10,%r9 - xorq %rax,%rax - adoxq %r10,%r8 - mulxq 32+16(%rsi),%r11,%r10 - adoxq %r11,%r9 - - movq 32+8(%rdi),%rdx - mulxq 32+0(%rsi),%r12,%r11 - adoxq %rax,%r10 - xorq %rax,%rax - - mulxq 32+8(%rsi),%r14,%r13 - adoxq %r8,%r12 - movq %r12,64+8(%rcx) - adcxq %r14,%r11 - - mulxq 32+16(%rsi),%r8,%r14 - adoxq %r9,%r11 - adcxq %r8,%r13 - adcxq %rax,%r14 - adoxq %r10,%r13 - - movq 32+16(%rdi),%rdx - mulxq 32+0(%rsi),%r8,%r9 - adoxq %rax,%r14 - xorq %rax,%rax - - mulxq 32+8(%rsi),%r10,%r12 - adoxq %r11,%r8 - movq %r8,64+16(%rcx) - adcxq %r13,%r9 - - mulxq 32+16(%rsi),%r11,%r8 - adcxq %r14,%r12 - adcxq %rax,%r8 - adoxq %r10,%r9 - adoxq %r12,%r11 - adoxq %rax,%r8 - movq %r9,64+24(%rcx) - movq %r11,64+32(%rcx) - movq %r8,64+40(%rcx) - - - - - movq 64(%rsp),%r8 - movq 72(%rsp),%r9 - movq 80(%rsp),%r10 - movq 88(%rsp),%r11 - - movq 32(%rsp),%rax - addq %rax,%r8 - movq 40(%rsp),%rax - adcq %rax,%r9 - movq 48(%rsp),%rax - adcq %rax,%r10 - movq 56(%rsp),%rax - adcq %rax,%r11 - - - movq 0(%rsp),%r12 - movq 8(%rsp),%r13 - movq 16(%rsp),%r14 - movq 24(%rsp),%r15 - subq 0(%rcx),%r12 - sbbq 8(%rcx),%r13 - sbbq 16(%rcx),%r14 - sbbq 24(%rcx),%r15 - sbbq 32(%rcx),%r8 - sbbq 40(%rcx),%r9 - sbbq 48(%rcx),%r10 - sbbq 56(%rcx),%r11 - - - subq 64(%rcx),%r12 - sbbq 72(%rcx),%r13 - sbbq 80(%rcx),%r14 - sbbq 88(%rcx),%r15 - sbbq 96(%rcx),%r8 - sbbq 104(%rcx),%r9 - sbbq $0x0,%r10 - sbbq $0x0,%r11 - - addq 32(%rcx),%r12 - movq %r12,32(%rcx) - adcq 40(%rcx),%r13 - movq %r13,40(%rcx) - adcq 48(%rcx),%r14 - movq %r14,48(%rcx) - adcq 56(%rcx),%r15 - movq %r15,56(%rcx) - adcq 64(%rcx),%r8 - movq %r8,64(%rcx) - adcq 72(%rcx),%r9 - movq %r9,72(%rcx) - adcq 80(%rcx),%r10 - movq %r10,80(%rcx) - adcq 88(%rcx),%r11 - movq %r11,88(%rcx) - movq 96(%rcx),%r12 - adcq $0x0,%r12 - movq %r12,96(%rcx) - movq 104(%rcx),%r13 - adcq $0x0,%r13 - movq %r13,104(%rcx) - - addq $96,%rsp -.cfi_adjust_cfa_offset -96 - popq %rbp -.cfi_adjust_cfa_offset -8 -.cfi_same_value rbp - popq %rbx -.cfi_adjust_cfa_offset -8 -.cfi_same_value rbx - - - popq %r15 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r15 - popq %r14 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r14 - popq %r13 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r13 - popq %r12 -.cfi_adjust_cfa_offset -8 -.cfi_same_value r12 - .byte 0xf3,0xc3 -.cfi_endproc - -.globl sike_mpmul -.hidden sike_mpmul -.type sike_mpmul,@function -sike_mpmul: -.cfi_startproc - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset r12, -16 - pushq %r13 -.cfi_adjust_cfa_offset 8 -.cfi_offset r13, -24 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset r14, -32 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset r15, -40 - - - - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je .Lmul_bdw - - - - movq %rdx,%rcx - - subq $112,%rsp -.cfi_adjust_cfa_offset 112 - - - xorq %rax,%rax - movq 32(%rdi),%r8 - movq 40(%rdi),%r9 - movq 48(%rdi),%r10 - xorq %r11,%r11 - addq 0(%rdi),%r8 - adcq 8(%rdi),%r9 - adcq 16(%rdi),%r10 - adcq 24(%rdi),%r11 - - sbbq $0,%rax - movq %rax,64(%rsp) - - movq %r8,0(%rcx) - movq %r9,8(%rcx) - movq %r10,16(%rcx) - movq %r11,24(%rcx) - - - xorq %rdx,%rdx - movq 32(%rsi),%r12 - movq 40(%rsi),%r13 - movq 48(%rsi),%r14 - xorq %r15,%r15 - addq 0(%rsi),%r12 - adcq 8(%rsi),%r13 - adcq 16(%rsi),%r14 - adcq 24(%rsi),%r15 - sbbq $0x0,%rdx - - movq %rdx,72(%rsp) - - - movq (%rcx),%rax - mulq %r12 - movq %rax,(%rsp) - movq %rdx,%r8 - - xorq %r9,%r9 - movq (%rcx),%rax - mulq %r13 - addq %rax,%r8 - adcq %rdx,%r9 - - xorq %r10,%r10 - movq 8(%rcx),%rax - mulq %r12 - addq %rax,%r8 - movq %r8,8(%rsp) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq (%rcx),%rax - mulq %r14 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 16(%rcx),%rax - mulq %r12 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 8(%rcx),%rax - mulq %r13 - addq %rax,%r9 - movq %r9,16(%rsp) - adcq %rdx,%r10 - adcq $0x0,%r8 - - xorq %r9,%r9 - movq (%rcx),%rax - mulq %r15 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 24(%rcx),%rax - mulq %r12 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 8(%rcx),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 16(%rcx),%rax - mulq %r13 - addq %rax,%r10 - movq %r10,24(%rsp) - adcq %rdx,%r8 - adcq $0x0,%r9 - - xorq %r10,%r10 - movq 8(%rcx),%rax - mulq %r15 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 24(%rcx),%rax - mulq %r13 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 16(%rcx),%rax - mulq %r14 - addq %rax,%r8 - movq %r8,32(%rsp) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r11,%r11 - movq 16(%rcx),%rax - mulq %r15 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - movq 24(%rcx),%rax - mulq %r14 - addq %rax,%r9 - movq %r9,40(%rsp) - adcq %rdx,%r10 - adcq $0x0,%r11 - - movq 24(%rcx),%rax - mulq %r15 - addq %rax,%r10 - movq %r10,48(%rsp) - adcq %rdx,%r11 - movq %r11,56(%rsp) - - - movq 64(%rsp),%rax - andq %rax,%r12 - andq %rax,%r13 - andq %rax,%r14 - andq %rax,%r15 - - - movq 72(%rsp),%rax - movq 0(%rcx),%r8 - andq %rax,%r8 - movq 8(%rcx),%r9 - andq %rax,%r9 - movq 16(%rcx),%r10 - andq %rax,%r10 - movq 24(%rcx),%r11 - andq %rax,%r11 - - - addq %r8,%r12 - adcq %r9,%r13 - adcq %r10,%r14 - adcq %r11,%r15 - - - movq 32(%rsp),%rax - addq %rax,%r12 - movq 40(%rsp),%rax - adcq %rax,%r13 - movq 48(%rsp),%rax - adcq %rax,%r14 - movq 56(%rsp),%rax - adcq %rax,%r15 - movq %r12,80(%rsp) - movq %r13,88(%rsp) - movq %r14,96(%rsp) - movq %r15,104(%rsp) - - - movq (%rdi),%r11 - movq (%rsi),%rax - mulq %r11 - xorq %r9,%r9 - movq %rax,(%rcx) - movq %rdx,%r8 - - movq 16(%rdi),%r14 - movq 8(%rsi),%rax - mulq %r11 - xorq %r10,%r10 - addq %rax,%r8 - adcq %rdx,%r9 - - movq 8(%rdi),%r12 - movq (%rsi),%rax - mulq %r12 - addq %rax,%r8 - movq %r8,8(%rcx) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq 16(%rsi),%rax - mulq %r11 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq (%rsi),%r13 - movq %r14,%rax - mulq %r13 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 8(%rsi),%rax - mulq %r12 - addq %rax,%r9 - movq %r9,16(%rcx) - adcq %rdx,%r10 - adcq $0x0,%r8 - - xorq %r9,%r9 - movq 24(%rsi),%rax - mulq %r11 - movq 24(%rdi),%r15 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq %r15,%rax - mulq %r13 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 16(%rsi),%rax - mulq %r12 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 8(%rsi),%rax - mulq %r14 - addq %rax,%r10 - movq %r10,24(%rcx) - adcq %rdx,%r8 - adcq $0x0,%r9 - - xorq %r10,%r10 - movq 24(%rsi),%rax - mulq %r12 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 8(%rsi),%rax - mulq %r15 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 16(%rsi),%rax - mulq %r14 - addq %rax,%r8 - movq %r8,32(%rcx) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq 24(%rsi),%rax - mulq %r14 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 16(%rsi),%rax - mulq %r15 - addq %rax,%r9 - movq %r9,40(%rcx) - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 24(%rsi),%rax - mulq %r15 - addq %rax,%r10 - movq %r10,48(%rcx) - adcq %rdx,%r8 - movq %r8,56(%rcx) - - - - movq 32(%rdi),%r11 - movq 32(%rsi),%rax - mulq %r11 - xorq %r9,%r9 - movq %rax,64(%rcx) - movq %rdx,%r8 - - movq 48(%rdi),%r14 - movq 40(%rsi),%rax - mulq %r11 - xorq %r10,%r10 - addq %rax,%r8 - adcq %rdx,%r9 - - movq 40(%rdi),%r12 - movq 32(%rsi),%rax - mulq %r12 - addq %rax,%r8 - movq %r8,72(%rcx) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq 48(%rsi),%rax - mulq %r11 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 32(%rsi),%r13 - movq %r14,%rax - mulq %r13 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 40(%rsi),%rax - mulq %r12 - addq %rax,%r9 - movq %r9,80(%rcx) - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 48(%rsi),%rax - mulq %r12 - xorq %r12,%r12 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r12 - - movq 40(%rsi),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r12 - movq %r10,88(%rcx) - - movq 48(%rsi),%rax - mulq %r14 - addq %rax,%r8 - adcq $0x0,%r12 - movq %r8,96(%rcx) - - addq %r12,%rdx - - - movq 0(%rsp),%r8 - subq 0(%rcx),%r8 - movq 8(%rsp),%r9 - sbbq 8(%rcx),%r9 - movq 16(%rsp),%r10 - sbbq 16(%rcx),%r10 - movq 24(%rsp),%r11 - sbbq 24(%rcx),%r11 - movq 80(%rsp),%r12 - sbbq 32(%rcx),%r12 - movq 88(%rsp),%r13 - sbbq 40(%rcx),%r13 - movq 96(%rsp),%r14 - sbbq 48(%rcx),%r14 - movq 104(%rsp),%r15 - sbbq 56(%rcx),%r15 - - - movq 64(%rcx),%rax - subq %rax,%r8 - movq 72(%rcx),%rax - sbbq %rax,%r9 - movq 80(%rcx),%rax - sbbq %rax,%r10 - movq 88(%rcx),%rax - sbbq %rax,%r11 - movq 96(%rcx),%rax - sbbq %rax,%r12 - sbbq %rdx,%r13 - sbbq $0x0,%r14 - sbbq $0x0,%r15 - - - addq 32(%rcx),%r8 - movq %r8,32(%rcx) - adcq 40(%rcx),%r9 - movq %r9,40(%rcx) - adcq 48(%rcx),%r10 - movq %r10,48(%rcx) - adcq 56(%rcx),%r11 - movq %r11,56(%rcx) - adcq 64(%rcx),%r12 - movq %r12,64(%rcx) - adcq 72(%rcx),%r13 - movq %r13,72(%rcx) - adcq 80(%rcx),%r14 - movq %r14,80(%rcx) - adcq 88(%rcx),%r15 - movq %r15,88(%rcx) - movq 96(%rcx),%r12 - adcq $0x0,%r12 - movq %r12,96(%rcx) - adcq $0x0,%rdx - movq %rdx,104(%rcx) - - addq $112,%rsp -.cfi_adjust_cfa_offset -112 - - - popq %r15 -.cfi_adjust_cfa_offset -8 - popq %r14 -.cfi_adjust_cfa_offset -8 - popq %r13 -.cfi_adjust_cfa_offset -8 - popq %r12 -.cfi_adjust_cfa_offset -8 - .byte 0xf3,0xc3 -.cfi_endproc -#endif diff --git a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aes-586.S b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aes-586.S deleted file mode 100644 index 3634f64d11b..00000000000 --- a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aes-586.S +++ /dev/null @@ -1,3226 +0,0 @@ -# This file is generated from a similarly-named Perl script in the BoringSSL -# source tree. Do not edit by hand. - -#if defined(__i386__) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.text -.private_extern __x86_AES_encrypt_compact -.align 4 -__x86_AES_encrypt_compact: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl -128(%ebp),%edi - movl -96(%ebp),%esi - movl -64(%ebp),%edi - movl -32(%ebp),%esi - movl (%ebp),%edi - movl 32(%ebp),%esi - movl 64(%ebp),%edi - movl 96(%ebp),%esi -.align 4,0x90 -L000loop: - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movzbl -128(%ebp,%esi,1),%esi - movzbl %ch,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ah,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $8,%eax - xorl %eax,%edx - movl 4(%esp),%eax - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - movzbl -128(%ebp,%ecx,1),%ecx - shll $24,%ecx - xorl %ecx,%edx - movl %esi,%ecx - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %ecx,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %ecx,%edi - xorl %esi,%ecx - rorl $24,%edi - xorl %ebp,%esi - roll $24,%ecx - xorl %edi,%esi - movl $2155905152,%ebp - xorl %esi,%ecx - andl %edx,%ebp - leal (%edx,%edx,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %edx,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %edx,%edi - xorl %esi,%edx - rorl $24,%edi - xorl %ebp,%esi - roll $24,%edx - xorl %edi,%esi - movl $2155905152,%ebp - xorl %esi,%edx - andl %eax,%ebp - leal (%eax,%eax,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %eax,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %eax,%edi - xorl %esi,%eax - rorl $24,%edi - xorl %ebp,%esi - roll $24,%eax - xorl %edi,%esi - movl $2155905152,%ebp - xorl %esi,%eax - andl %ebx,%ebp - leal (%ebx,%ebx,1),%edi - movl %ebp,%esi - shrl $7,%ebp - andl $4278124286,%edi - subl %ebp,%esi - movl %ebx,%ebp - andl $454761243,%esi - rorl $16,%ebp - xorl %edi,%esi - movl %ebx,%edi - xorl %esi,%ebx - rorl $24,%edi - xorl %ebp,%esi - roll $24,%ebx - xorl %edi,%esi - xorl %esi,%ebx - movl 20(%esp),%edi - movl 28(%esp),%ebp - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb L000loop - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movzbl -128(%ebp,%esi,1),%esi - movzbl %ch,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl 20(%esp),%edi - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ah,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $8,%eax - xorl %eax,%edx - movl 4(%esp),%eax - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - movzbl -128(%ebp,%ecx,1),%ecx - shll $24,%ecx - xorl %ecx,%edx - movl %esi,%ecx - xorl 16(%edi),%eax - xorl 20(%edi),%ebx - xorl 24(%edi),%ecx - xorl 28(%edi),%edx - ret -.private_extern __sse_AES_encrypt_compact -.align 4 -__sse_AES_encrypt_compact: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl $454761243,%eax - movl %eax,8(%esp) - movl %eax,12(%esp) - movl -128(%ebp),%eax - movl -96(%ebp),%ebx - movl -64(%ebp),%ecx - movl -32(%ebp),%edx - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%edx -.align 4,0x90 -L001loop: - pshufw $8,%mm0,%mm1 - pshufw $13,%mm4,%mm5 - movd %mm1,%eax - movd %mm5,%ebx - movl %edi,20(%esp) - movzbl %al,%esi - movzbl %ah,%edx - pshufw $13,%mm0,%mm2 - movzbl -128(%ebp,%esi,1),%ecx - movzbl %bl,%edi - movzbl -128(%ebp,%edx,1),%edx - shrl $16,%eax - shll $8,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $16,%esi - pshufw $8,%mm4,%mm6 - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %ah,%edi - shll $24,%esi - shrl $16,%ebx - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $8,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shll $24,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - movd %mm2,%eax - movd %ecx,%mm0 - movzbl -128(%ebp,%edi,1),%ecx - movzbl %ah,%edi - shll $16,%ecx - movd %mm6,%ebx - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $24,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - shll $8,%esi - shrl $16,%ebx - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shrl $16,%eax - movd %ecx,%mm1 - movzbl -128(%ebp,%edi,1),%ecx - movzbl %ah,%edi - shll $16,%ecx - andl $255,%eax - orl %esi,%ecx - punpckldq %mm1,%mm0 - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $24,%esi - andl $255,%ebx - movzbl -128(%ebp,%eax,1),%eax - orl %esi,%ecx - shll $16,%eax - movzbl -128(%ebp,%edi,1),%esi - orl %eax,%edx - shll $8,%esi - movzbl -128(%ebp,%ebx,1),%ebx - orl %esi,%ecx - orl %ebx,%edx - movl 20(%esp),%edi - movd %ecx,%mm4 - movd %edx,%mm5 - punpckldq %mm5,%mm4 - addl $16,%edi - cmpl 24(%esp),%edi - ja L002out - movq 8(%esp),%mm2 - pxor %mm3,%mm3 - pxor %mm7,%mm7 - movq %mm0,%mm1 - movq %mm4,%mm5 - pcmpgtb %mm0,%mm3 - pcmpgtb %mm4,%mm7 - pand %mm2,%mm3 - pand %mm2,%mm7 - pshufw $177,%mm0,%mm2 - pshufw $177,%mm4,%mm6 - paddb %mm0,%mm0 - paddb %mm4,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pshufw $177,%mm2,%mm3 - pshufw $177,%mm6,%mm7 - pxor %mm0,%mm1 - pxor %mm4,%mm5 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - movq %mm3,%mm2 - movq %mm7,%mm6 - pslld $8,%mm3 - pslld $8,%mm7 - psrld $24,%mm2 - psrld $24,%mm6 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - movq %mm1,%mm3 - movq %mm5,%mm7 - movq (%edi),%mm2 - movq 8(%edi),%mm6 - psrld $8,%mm1 - psrld $8,%mm5 - movl -128(%ebp),%eax - pslld $24,%mm3 - pslld $24,%mm7 - movl -64(%ebp),%ebx - pxor %mm1,%mm0 - pxor %mm5,%mm4 - movl (%ebp),%ecx - pxor %mm3,%mm0 - pxor %mm7,%mm4 - movl 64(%ebp),%edx - pxor %mm2,%mm0 - pxor %mm6,%mm4 - jmp L001loop -.align 4,0x90 -L002out: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - ret -.private_extern __x86_AES_encrypt -.align 4 -__x86_AES_encrypt: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) -.align 4,0x90 -L003loop: - movl %eax,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %bh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movl (%ebp,%esi,8),%esi - movzbl %ch,%edi - xorl 3(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %eax,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movl (%ebp,%esi,8),%esi - movzbl %dh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movzbl %bh,%edi - xorl 1(%ebp,%edi,8),%esi - movl 20(%esp),%edi - movl (%ebp,%edx,8),%edx - movzbl %ah,%eax - xorl 3(%ebp,%eax,8),%edx - movl 4(%esp),%eax - andl $255,%ebx - xorl 2(%ebp,%ebx,8),%edx - movl 8(%esp),%ebx - xorl 1(%ebp,%ecx,8),%edx - movl %esi,%ecx - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb L003loop - movl %eax,%esi - andl $255,%esi - movl 2(%ebp,%esi,8),%esi - andl $255,%esi - movzbl %bh,%edi - movl (%ebp,%edi,8),%edi - andl $65280,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movl (%ebp,%edi,8),%edi - andl $16711680,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movl 2(%ebp,%edi,8),%edi - andl $4278190080,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - shrl $16,%ebx - movl 2(%ebp,%esi,8),%esi - andl $255,%esi - movzbl %ch,%edi - movl (%ebp,%edi,8),%edi - andl $65280,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movl (%ebp,%edi,8),%edi - andl $16711680,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $24,%edi - movl 2(%ebp,%edi,8),%edi - andl $4278190080,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - shrl $24,%ecx - movl 2(%ebp,%esi,8),%esi - andl $255,%esi - movzbl %dh,%edi - movl (%ebp,%edi,8),%edi - andl $65280,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edx - andl $255,%edi - movl (%ebp,%edi,8),%edi - andl $16711680,%edi - xorl %edi,%esi - movzbl %bh,%edi - movl 2(%ebp,%edi,8),%edi - andl $4278190080,%edi - xorl %edi,%esi - movl 20(%esp),%edi - andl $255,%edx - movl 2(%ebp,%edx,8),%edx - andl $255,%edx - movzbl %ah,%eax - movl (%ebp,%eax,8),%eax - andl $65280,%eax - xorl %eax,%edx - movl 4(%esp),%eax - andl $255,%ebx - movl (%ebp,%ebx,8),%ebx - andl $16711680,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - movl 2(%ebp,%ecx,8),%ecx - andl $4278190080,%ecx - xorl %ecx,%edx - movl %esi,%ecx - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - ret -.align 6,0x90 -LAES_Te: -.long 2774754246,2774754246 -.long 2222750968,2222750968 -.long 2574743534,2574743534 -.long 2373680118,2373680118 -.long 234025727,234025727 -.long 3177933782,3177933782 -.long 2976870366,2976870366 -.long 1422247313,1422247313 -.long 1345335392,1345335392 -.long 50397442,50397442 -.long 2842126286,2842126286 -.long 2099981142,2099981142 -.long 436141799,436141799 -.long 1658312629,1658312629 -.long 3870010189,3870010189 -.long 2591454956,2591454956 -.long 1170918031,1170918031 -.long 2642575903,2642575903 -.long 1086966153,1086966153 -.long 2273148410,2273148410 -.long 368769775,368769775 -.long 3948501426,3948501426 -.long 3376891790,3376891790 -.long 200339707,200339707 -.long 3970805057,3970805057 -.long 1742001331,1742001331 -.long 4255294047,4255294047 -.long 3937382213,3937382213 -.long 3214711843,3214711843 -.long 4154762323,4154762323 -.long 2524082916,2524082916 -.long 1539358875,1539358875 -.long 3266819957,3266819957 -.long 486407649,486407649 -.long 2928907069,2928907069 -.long 1780885068,1780885068 -.long 1513502316,1513502316 -.long 1094664062,1094664062 -.long 49805301,49805301 -.long 1338821763,1338821763 -.long 1546925160,1546925160 -.long 4104496465,4104496465 -.long 887481809,887481809 -.long 150073849,150073849 -.long 2473685474,2473685474 -.long 1943591083,1943591083 -.long 1395732834,1395732834 -.long 1058346282,1058346282 -.long 201589768,201589768 -.long 1388824469,1388824469 -.long 1696801606,1696801606 -.long 1589887901,1589887901 -.long 672667696,672667696 -.long 2711000631,2711000631 -.long 251987210,251987210 -.long 3046808111,3046808111 -.long 151455502,151455502 -.long 907153956,907153956 -.long 2608889883,2608889883 -.long 1038279391,1038279391 -.long 652995533,652995533 -.long 1764173646,1764173646 -.long 3451040383,3451040383 -.long 2675275242,2675275242 -.long 453576978,453576978 -.long 2659418909,2659418909 -.long 1949051992,1949051992 -.long 773462580,773462580 -.long 756751158,756751158 -.long 2993581788,2993581788 -.long 3998898868,3998898868 -.long 4221608027,4221608027 -.long 4132590244,4132590244 -.long 1295727478,1295727478 -.long 1641469623,1641469623 -.long 3467883389,3467883389 -.long 2066295122,2066295122 -.long 1055122397,1055122397 -.long 1898917726,1898917726 -.long 2542044179,2542044179 -.long 4115878822,4115878822 -.long 1758581177,1758581177 -.long 0,0 -.long 753790401,753790401 -.long 1612718144,1612718144 -.long 536673507,536673507 -.long 3367088505,3367088505 -.long 3982187446,3982187446 -.long 3194645204,3194645204 -.long 1187761037,1187761037 -.long 3653156455,3653156455 -.long 1262041458,1262041458 -.long 3729410708,3729410708 -.long 3561770136,3561770136 -.long 3898103984,3898103984 -.long 1255133061,1255133061 -.long 1808847035,1808847035 -.long 720367557,720367557 -.long 3853167183,3853167183 -.long 385612781,385612781 -.long 3309519750,3309519750 -.long 3612167578,3612167578 -.long 1429418854,1429418854 -.long 2491778321,2491778321 -.long 3477423498,3477423498 -.long 284817897,284817897 -.long 100794884,100794884 -.long 2172616702,2172616702 -.long 4031795360,4031795360 -.long 1144798328,1144798328 -.long 3131023141,3131023141 -.long 3819481163,3819481163 -.long 4082192802,4082192802 -.long 4272137053,4272137053 -.long 3225436288,3225436288 -.long 2324664069,2324664069 -.long 2912064063,2912064063 -.long 3164445985,3164445985 -.long 1211644016,1211644016 -.long 83228145,83228145 -.long 3753688163,3753688163 -.long 3249976951,3249976951 -.long 1977277103,1977277103 -.long 1663115586,1663115586 -.long 806359072,806359072 -.long 452984805,452984805 -.long 250868733,250868733 -.long 1842533055,1842533055 -.long 1288555905,1288555905 -.long 336333848,336333848 -.long 890442534,890442534 -.long 804056259,804056259 -.long 3781124030,3781124030 -.long 2727843637,2727843637 -.long 3427026056,3427026056 -.long 957814574,957814574 -.long 1472513171,1472513171 -.long 4071073621,4071073621 -.long 2189328124,2189328124 -.long 1195195770,1195195770 -.long 2892260552,2892260552 -.long 3881655738,3881655738 -.long 723065138,723065138 -.long 2507371494,2507371494 -.long 2690670784,2690670784 -.long 2558624025,2558624025 -.long 3511635870,3511635870 -.long 2145180835,2145180835 -.long 1713513028,1713513028 -.long 2116692564,2116692564 -.long 2878378043,2878378043 -.long 2206763019,2206763019 -.long 3393603212,3393603212 -.long 703524551,703524551 -.long 3552098411,3552098411 -.long 1007948840,1007948840 -.long 2044649127,2044649127 -.long 3797835452,3797835452 -.long 487262998,487262998 -.long 1994120109,1994120109 -.long 1004593371,1004593371 -.long 1446130276,1446130276 -.long 1312438900,1312438900 -.long 503974420,503974420 -.long 3679013266,3679013266 -.long 168166924,168166924 -.long 1814307912,1814307912 -.long 3831258296,3831258296 -.long 1573044895,1573044895 -.long 1859376061,1859376061 -.long 4021070915,4021070915 -.long 2791465668,2791465668 -.long 2828112185,2828112185 -.long 2761266481,2761266481 -.long 937747667,937747667 -.long 2339994098,2339994098 -.long 854058965,854058965 -.long 1137232011,1137232011 -.long 1496790894,1496790894 -.long 3077402074,3077402074 -.long 2358086913,2358086913 -.long 1691735473,1691735473 -.long 3528347292,3528347292 -.long 3769215305,3769215305 -.long 3027004632,3027004632 -.long 4199962284,4199962284 -.long 133494003,133494003 -.long 636152527,636152527 -.long 2942657994,2942657994 -.long 2390391540,2390391540 -.long 3920539207,3920539207 -.long 403179536,403179536 -.long 3585784431,3585784431 -.long 2289596656,2289596656 -.long 1864705354,1864705354 -.long 1915629148,1915629148 -.long 605822008,605822008 -.long 4054230615,4054230615 -.long 3350508659,3350508659 -.long 1371981463,1371981463 -.long 602466507,602466507 -.long 2094914977,2094914977 -.long 2624877800,2624877800 -.long 555687742,555687742 -.long 3712699286,3712699286 -.long 3703422305,3703422305 -.long 2257292045,2257292045 -.long 2240449039,2240449039 -.long 2423288032,2423288032 -.long 1111375484,1111375484 -.long 3300242801,3300242801 -.long 2858837708,2858837708 -.long 3628615824,3628615824 -.long 84083462,84083462 -.long 32962295,32962295 -.long 302911004,302911004 -.long 2741068226,2741068226 -.long 1597322602,1597322602 -.long 4183250862,4183250862 -.long 3501832553,3501832553 -.long 2441512471,2441512471 -.long 1489093017,1489093017 -.long 656219450,656219450 -.long 3114180135,3114180135 -.long 954327513,954327513 -.long 335083755,335083755 -.long 3013122091,3013122091 -.long 856756514,856756514 -.long 3144247762,3144247762 -.long 1893325225,1893325225 -.long 2307821063,2307821063 -.long 2811532339,2811532339 -.long 3063651117,3063651117 -.long 572399164,572399164 -.long 2458355477,2458355477 -.long 552200649,552200649 -.long 1238290055,1238290055 -.long 4283782570,4283782570 -.long 2015897680,2015897680 -.long 2061492133,2061492133 -.long 2408352771,2408352771 -.long 4171342169,4171342169 -.long 2156497161,2156497161 -.long 386731290,386731290 -.long 3669999461,3669999461 -.long 837215959,837215959 -.long 3326231172,3326231172 -.long 3093850320,3093850320 -.long 3275833730,3275833730 -.long 2962856233,2962856233 -.long 1999449434,1999449434 -.long 286199582,286199582 -.long 3417354363,3417354363 -.long 4233385128,4233385128 -.long 3602627437,3602627437 -.long 974525996,974525996 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.byte 99,124,119,123,242,107,111,197 -.byte 48,1,103,43,254,215,171,118 -.byte 202,130,201,125,250,89,71,240 -.byte 173,212,162,175,156,164,114,192 -.byte 183,253,147,38,54,63,247,204 -.byte 52,165,229,241,113,216,49,21 -.byte 4,199,35,195,24,150,5,154 -.byte 7,18,128,226,235,39,178,117 -.byte 9,131,44,26,27,110,90,160 -.byte 82,59,214,179,41,227,47,132 -.byte 83,209,0,237,32,252,177,91 -.byte 106,203,190,57,74,76,88,207 -.byte 208,239,170,251,67,77,51,133 -.byte 69,249,2,127,80,60,159,168 -.byte 81,163,64,143,146,157,56,245 -.byte 188,182,218,33,16,255,243,210 -.byte 205,12,19,236,95,151,68,23 -.byte 196,167,126,61,100,93,25,115 -.byte 96,129,79,220,34,42,144,136 -.byte 70,238,184,20,222,94,11,219 -.byte 224,50,58,10,73,6,36,92 -.byte 194,211,172,98,145,149,228,121 -.byte 231,200,55,109,141,213,78,169 -.byte 108,86,244,234,101,122,174,8 -.byte 186,120,37,46,28,166,180,198 -.byte 232,221,116,31,75,189,139,138 -.byte 112,62,181,102,72,3,246,14 -.byte 97,53,87,185,134,193,29,158 -.byte 225,248,152,17,105,217,142,148 -.byte 155,30,135,233,206,85,40,223 -.byte 140,161,137,13,191,230,66,104 -.byte 65,153,45,15,176,84,187,22 -.long 1,2,4,8 -.long 16,32,64,128 -.long 27,54,0,0 -.long 0,0,0,0 -.globl _aes_nohw_encrypt -.private_extern _aes_nohw_encrypt -.align 4 -_aes_nohw_encrypt: -L_aes_nohw_encrypt_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%esi - movl 28(%esp),%edi - movl %esp,%eax - subl $36,%esp - andl $-64,%esp - leal -127(%edi),%ebx - subl %esp,%ebx - negl %ebx - andl $960,%ebx - subl %ebx,%esp - addl $4,%esp - movl %eax,28(%esp) - call L004pic_point -L004pic_point: - popl %ebp - movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004pic_point(%ebp),%eax - leal LAES_Te-L004pic_point(%ebp),%ebp - leal 764(%esp),%ebx - subl %ebp,%ebx - andl $768,%ebx - leal 2176(%ebp,%ebx,1),%ebp - btl $25,(%eax) - jnc L005x86 - movq (%esi),%mm0 - movq 8(%esi),%mm4 - call __sse_AES_encrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movq %mm0,(%esi) - movq %mm4,8(%esi) - emms - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.align 4,0x90 -L005x86: - movl %ebp,24(%esp) - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - call __x86_AES_encrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.private_extern __x86_AES_decrypt_compact -.align 4 -__x86_AES_decrypt_compact: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl -128(%ebp),%edi - movl -96(%ebp),%esi - movl -64(%ebp),%edi - movl -32(%ebp),%esi - movl (%ebp),%edi - movl 32(%ebp),%esi - movl 64(%ebp),%edi - movl 96(%ebp),%esi -.align 4,0x90 -L006loop: - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ebx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %ah,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ch,%ecx - movzbl -128(%ebp,%ecx,1),%ecx - shll $8,%ecx - xorl %ecx,%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - shrl $24,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $24,%eax - xorl %eax,%edx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%eax - subl %edi,%esi - andl $4278124286,%eax - andl $454761243,%esi - xorl %esi,%eax - movl $2155905152,%edi - andl %eax,%edi - movl %edi,%esi - shrl $7,%edi - leal (%eax,%eax,1),%ebx - subl %edi,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %ecx,%eax - xorl %esi,%ebx - movl $2155905152,%edi - andl %ebx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ebx,%ebx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %ecx,%ebx - roll $8,%ecx - xorl %esi,%ebp - xorl %eax,%ecx - xorl %ebp,%eax - xorl %ebx,%ecx - xorl %ebp,%ebx - roll $24,%eax - xorl %ebp,%ecx - roll $16,%ebx - xorl %eax,%ecx - roll $8,%ebp - xorl %ebx,%ecx - movl 4(%esp),%eax - xorl %ebp,%ecx - movl %ecx,12(%esp) - movl $2155905152,%edi - andl %edx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%edx,%edx,1),%ebx - subl %edi,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %esi,%ebx - movl $2155905152,%edi - andl %ebx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ebx,%ebx,1),%ecx - subl %edi,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %edx,%ebx - xorl %esi,%ecx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %edx,%ecx - roll $8,%edx - xorl %esi,%ebp - xorl %ebx,%edx - xorl %ebp,%ebx - xorl %ecx,%edx - xorl %ebp,%ecx - roll $24,%ebx - xorl %ebp,%edx - roll $16,%ecx - xorl %ebx,%edx - roll $8,%ebp - xorl %ecx,%edx - movl 8(%esp),%ebx - xorl %ebp,%edx - movl %edx,16(%esp) - movl $2155905152,%edi - andl %eax,%edi - movl %edi,%esi - shrl $7,%edi - leal (%eax,%eax,1),%ecx - subl %edi,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %esi,%ecx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%edx - subl %edi,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %eax,%ecx - xorl %esi,%edx - movl $2155905152,%edi - andl %edx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%edx,%edx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %eax,%edx - roll $8,%eax - xorl %esi,%ebp - xorl %ecx,%eax - xorl %ebp,%ecx - xorl %edx,%eax - xorl %ebp,%edx - roll $24,%ecx - xorl %ebp,%eax - roll $16,%edx - xorl %ecx,%eax - roll $8,%ebp - xorl %edx,%eax - xorl %ebp,%eax - movl $2155905152,%edi - andl %ebx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ebx,%ebx,1),%ecx - subl %edi,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %esi,%ecx - movl $2155905152,%edi - andl %ecx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%ecx,%ecx,1),%edx - subl %edi,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %ebx,%ecx - xorl %esi,%edx - movl $2155905152,%edi - andl %edx,%edi - movl %edi,%esi - shrl $7,%edi - leal (%edx,%edx,1),%ebp - subl %edi,%esi - andl $4278124286,%ebp - andl $454761243,%esi - xorl %ebx,%edx - roll $8,%ebx - xorl %esi,%ebp - xorl %ecx,%ebx - xorl %ebp,%ecx - xorl %edx,%ebx - xorl %ebp,%edx - roll $24,%ecx - xorl %ebp,%ebx - roll $16,%edx - xorl %ecx,%ebx - roll $8,%ebp - xorl %edx,%ebx - movl 12(%esp),%ecx - xorl %ebp,%ebx - movl 16(%esp),%edx - movl 20(%esp),%edi - movl 28(%esp),%ebp - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb L006loop - movl %eax,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ebx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %ah,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - movzbl -128(%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl -128(%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl 20(%esp),%edi - andl $255,%edx - movzbl -128(%ebp,%edx,1),%edx - movzbl %ch,%ecx - movzbl -128(%ebp,%ecx,1),%ecx - shll $8,%ecx - xorl %ecx,%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - movzbl -128(%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - shrl $24,%eax - movzbl -128(%ebp,%eax,1),%eax - shll $24,%eax - xorl %eax,%edx - movl 4(%esp),%eax - xorl 16(%edi),%eax - xorl 20(%edi),%ebx - xorl 24(%edi),%ecx - xorl 28(%edi),%edx - ret -.private_extern __sse_AES_decrypt_compact -.align 4 -__sse_AES_decrypt_compact: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) - movl $454761243,%eax - movl %eax,8(%esp) - movl %eax,12(%esp) - movl -128(%ebp),%eax - movl -96(%ebp),%ebx - movl -64(%ebp),%ecx - movl -32(%ebp),%edx - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%edx -.align 4,0x90 -L007loop: - pshufw $12,%mm0,%mm1 - pshufw $9,%mm4,%mm5 - movd %mm1,%eax - movd %mm5,%ebx - movl %edi,20(%esp) - movzbl %al,%esi - movzbl %ah,%edx - pshufw $6,%mm0,%mm2 - movzbl -128(%ebp,%esi,1),%ecx - movzbl %bl,%edi - movzbl -128(%ebp,%edx,1),%edx - shrl $16,%eax - shll $8,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $16,%esi - pshufw $3,%mm4,%mm6 - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %ah,%edi - shll $24,%esi - shrl $16,%ebx - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shll $24,%esi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shll $8,%esi - movd %mm2,%eax - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - shll $16,%esi - movd %mm6,%ebx - movd %ecx,%mm0 - movzbl -128(%ebp,%edi,1),%ecx - movzbl %al,%edi - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bl,%edi - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %ah,%edi - shll $16,%esi - shrl $16,%eax - orl %esi,%edx - movzbl -128(%ebp,%edi,1),%esi - movzbl %bh,%edi - shrl $16,%ebx - shll $8,%esi - movd %edx,%mm1 - movzbl -128(%ebp,%edi,1),%edx - movzbl %bh,%edi - shll $24,%edx - andl $255,%ebx - orl %esi,%edx - punpckldq %mm1,%mm0 - movzbl -128(%ebp,%edi,1),%esi - movzbl %al,%edi - shll $8,%esi - movzbl %ah,%eax - movzbl -128(%ebp,%ebx,1),%ebx - orl %esi,%ecx - movzbl -128(%ebp,%edi,1),%esi - orl %ebx,%edx - shll $16,%esi - movzbl -128(%ebp,%eax,1),%eax - orl %esi,%edx - shll $24,%eax - orl %eax,%ecx - movl 20(%esp),%edi - movd %edx,%mm4 - movd %ecx,%mm5 - punpckldq %mm5,%mm4 - addl $16,%edi - cmpl 24(%esp),%edi - ja L008out - movq %mm0,%mm3 - movq %mm4,%mm7 - pshufw $228,%mm0,%mm2 - pshufw $228,%mm4,%mm6 - movq %mm0,%mm1 - movq %mm4,%mm5 - pshufw $177,%mm0,%mm0 - pshufw $177,%mm4,%mm4 - pslld $8,%mm2 - pslld $8,%mm6 - psrld $8,%mm3 - psrld $8,%mm7 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pslld $16,%mm2 - pslld $16,%mm6 - psrld $16,%mm3 - psrld $16,%mm7 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - movq 8(%esp),%mm3 - pxor %mm2,%mm2 - pxor %mm6,%mm6 - pcmpgtb %mm1,%mm2 - pcmpgtb %mm5,%mm6 - pand %mm3,%mm2 - pand %mm3,%mm6 - paddb %mm1,%mm1 - paddb %mm5,%mm5 - pxor %mm2,%mm1 - pxor %mm6,%mm5 - movq %mm1,%mm3 - movq %mm5,%mm7 - movq %mm1,%mm2 - movq %mm5,%mm6 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - pslld $24,%mm3 - pslld $24,%mm7 - psrld $8,%mm2 - psrld $8,%mm6 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - movq 8(%esp),%mm2 - pxor %mm3,%mm3 - pxor %mm7,%mm7 - pcmpgtb %mm1,%mm3 - pcmpgtb %mm5,%mm7 - pand %mm2,%mm3 - pand %mm2,%mm7 - paddb %mm1,%mm1 - paddb %mm5,%mm5 - pxor %mm3,%mm1 - pxor %mm7,%mm5 - pshufw $177,%mm1,%mm3 - pshufw $177,%mm5,%mm7 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm3,%mm3 - pxor %mm7,%mm7 - pcmpgtb %mm1,%mm3 - pcmpgtb %mm5,%mm7 - pand %mm2,%mm3 - pand %mm2,%mm7 - paddb %mm1,%mm1 - paddb %mm5,%mm5 - pxor %mm3,%mm1 - pxor %mm7,%mm5 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - movq %mm1,%mm3 - movq %mm5,%mm7 - pshufw $177,%mm1,%mm2 - pshufw $177,%mm5,%mm6 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - pslld $8,%mm1 - pslld $8,%mm5 - psrld $8,%mm3 - psrld $8,%mm7 - movq (%edi),%mm2 - movq 8(%edi),%mm6 - pxor %mm1,%mm0 - pxor %mm5,%mm4 - pxor %mm3,%mm0 - pxor %mm7,%mm4 - movl -128(%ebp),%eax - pslld $16,%mm1 - pslld $16,%mm5 - movl -64(%ebp),%ebx - psrld $16,%mm3 - psrld $16,%mm7 - movl (%ebp),%ecx - pxor %mm1,%mm0 - pxor %mm5,%mm4 - movl 64(%ebp),%edx - pxor %mm3,%mm0 - pxor %mm7,%mm4 - pxor %mm2,%mm0 - pxor %mm6,%mm4 - jmp L007loop -.align 4,0x90 -L008out: - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - ret -.private_extern __x86_AES_decrypt -.align 4 -__x86_AES_decrypt: - movl %edi,20(%esp) - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,24(%esp) -.align 4,0x90 -L009loop: - movl %eax,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %dh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %ebx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %ah,%edi - xorl 3(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %ecx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - movl (%ebp,%esi,8),%esi - movzbl %bh,%edi - xorl 3(%ebp,%edi,8),%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - xorl 2(%ebp,%edi,8),%esi - movl %edx,%edi - shrl $24,%edi - xorl 1(%ebp,%edi,8),%esi - movl 20(%esp),%edi - andl $255,%edx - movl (%ebp,%edx,8),%edx - movzbl %ch,%ecx - xorl 3(%ebp,%ecx,8),%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - xorl 2(%ebp,%ebx,8),%edx - movl 8(%esp),%ebx - shrl $24,%eax - xorl 1(%ebp,%eax,8),%edx - movl 4(%esp),%eax - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - cmpl 24(%esp),%edi - movl %edi,20(%esp) - jb L009loop - leal 2176(%ebp),%ebp - movl -128(%ebp),%edi - movl -96(%ebp),%esi - movl -64(%ebp),%edi - movl -32(%ebp),%esi - movl (%ebp),%edi - movl 32(%ebp),%esi - movl 64(%ebp),%edi - movl 96(%ebp),%esi - leal -128(%ebp),%ebp - movl %eax,%esi - andl $255,%esi - movzbl (%ebp,%esi,1),%esi - movzbl %dh,%edi - movzbl (%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $16,%edi - andl $255,%edi - movzbl (%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ebx,%edi - shrl $24,%edi - movzbl (%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,4(%esp) - movl %ebx,%esi - andl $255,%esi - movzbl (%ebp,%esi,1),%esi - movzbl %ah,%edi - movzbl (%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $16,%edi - andl $255,%edi - movzbl (%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %ecx,%edi - shrl $24,%edi - movzbl (%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl %esi,8(%esp) - movl %ecx,%esi - andl $255,%esi - movzbl (%ebp,%esi,1),%esi - movzbl %bh,%edi - movzbl (%ebp,%edi,1),%edi - shll $8,%edi - xorl %edi,%esi - movl %eax,%edi - shrl $16,%edi - andl $255,%edi - movzbl (%ebp,%edi,1),%edi - shll $16,%edi - xorl %edi,%esi - movl %edx,%edi - shrl $24,%edi - movzbl (%ebp,%edi,1),%edi - shll $24,%edi - xorl %edi,%esi - movl 20(%esp),%edi - andl $255,%edx - movzbl (%ebp,%edx,1),%edx - movzbl %ch,%ecx - movzbl (%ebp,%ecx,1),%ecx - shll $8,%ecx - xorl %ecx,%edx - movl %esi,%ecx - shrl $16,%ebx - andl $255,%ebx - movzbl (%ebp,%ebx,1),%ebx - shll $16,%ebx - xorl %ebx,%edx - movl 8(%esp),%ebx - shrl $24,%eax - movzbl (%ebp,%eax,1),%eax - shll $24,%eax - xorl %eax,%edx - movl 4(%esp),%eax - leal -2048(%ebp),%ebp - addl $16,%edi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - ret -.align 6,0x90 -LAES_Td: -.long 1353184337,1353184337 -.long 1399144830,1399144830 -.long 3282310938,3282310938 -.long 2522752826,2522752826 -.long 3412831035,3412831035 -.long 4047871263,4047871263 -.long 2874735276,2874735276 -.long 2466505547,2466505547 -.long 1442459680,1442459680 -.long 4134368941,4134368941 -.long 2440481928,2440481928 -.long 625738485,625738485 -.long 4242007375,4242007375 -.long 3620416197,3620416197 -.long 2151953702,2151953702 -.long 2409849525,2409849525 -.long 1230680542,1230680542 -.long 1729870373,1729870373 -.long 2551114309,2551114309 -.long 3787521629,3787521629 -.long 41234371,41234371 -.long 317738113,317738113 -.long 2744600205,2744600205 -.long 3338261355,3338261355 -.long 3881799427,3881799427 -.long 2510066197,2510066197 -.long 3950669247,3950669247 -.long 3663286933,3663286933 -.long 763608788,763608788 -.long 3542185048,3542185048 -.long 694804553,694804553 -.long 1154009486,1154009486 -.long 1787413109,1787413109 -.long 2021232372,2021232372 -.long 1799248025,1799248025 -.long 3715217703,3715217703 -.long 3058688446,3058688446 -.long 397248752,397248752 -.long 1722556617,1722556617 -.long 3023752829,3023752829 -.long 407560035,407560035 -.long 2184256229,2184256229 -.long 1613975959,1613975959 -.long 1165972322,1165972322 -.long 3765920945,3765920945 -.long 2226023355,2226023355 -.long 480281086,480281086 -.long 2485848313,2485848313 -.long 1483229296,1483229296 -.long 436028815,436028815 -.long 2272059028,2272059028 -.long 3086515026,3086515026 -.long 601060267,601060267 -.long 3791801202,3791801202 -.long 1468997603,1468997603 -.long 715871590,715871590 -.long 120122290,120122290 -.long 63092015,63092015 -.long 2591802758,2591802758 -.long 2768779219,2768779219 -.long 4068943920,4068943920 -.long 2997206819,2997206819 -.long 3127509762,3127509762 -.long 1552029421,1552029421 -.long 723308426,723308426 -.long 2461301159,2461301159 -.long 4042393587,4042393587 -.long 2715969870,2715969870 -.long 3455375973,3455375973 -.long 3586000134,3586000134 -.long 526529745,526529745 -.long 2331944644,2331944644 -.long 2639474228,2639474228 -.long 2689987490,2689987490 -.long 853641733,853641733 -.long 1978398372,1978398372 -.long 971801355,971801355 -.long 2867814464,2867814464 -.long 111112542,111112542 -.long 1360031421,1360031421 -.long 4186579262,4186579262 -.long 1023860118,1023860118 -.long 2919579357,2919579357 -.long 1186850381,1186850381 -.long 3045938321,3045938321 -.long 90031217,90031217 -.long 1876166148,1876166148 -.long 4279586912,4279586912 -.long 620468249,620468249 -.long 2548678102,2548678102 -.long 3426959497,3426959497 -.long 2006899047,2006899047 -.long 3175278768,3175278768 -.long 2290845959,2290845959 -.long 945494503,945494503 -.long 3689859193,3689859193 -.long 1191869601,1191869601 -.long 3910091388,3910091388 -.long 3374220536,3374220536 -.long 0,0 -.long 2206629897,2206629897 -.long 1223502642,1223502642 -.long 2893025566,2893025566 -.long 1316117100,1316117100 -.long 4227796733,4227796733 -.long 1446544655,1446544655 -.long 517320253,517320253 -.long 658058550,658058550 -.long 1691946762,1691946762 -.long 564550760,564550760 -.long 3511966619,3511966619 -.long 976107044,976107044 -.long 2976320012,2976320012 -.long 266819475,266819475 -.long 3533106868,3533106868 -.long 2660342555,2660342555 -.long 1338359936,1338359936 -.long 2720062561,2720062561 -.long 1766553434,1766553434 -.long 370807324,370807324 -.long 179999714,179999714 -.long 3844776128,3844776128 -.long 1138762300,1138762300 -.long 488053522,488053522 -.long 185403662,185403662 -.long 2915535858,2915535858 -.long 3114841645,3114841645 -.long 3366526484,3366526484 -.long 2233069911,2233069911 -.long 1275557295,1275557295 -.long 3151862254,3151862254 -.long 4250959779,4250959779 -.long 2670068215,2670068215 -.long 3170202204,3170202204 -.long 3309004356,3309004356 -.long 880737115,880737115 -.long 1982415755,1982415755 -.long 3703972811,3703972811 -.long 1761406390,1761406390 -.long 1676797112,1676797112 -.long 3403428311,3403428311 -.long 277177154,277177154 -.long 1076008723,1076008723 -.long 538035844,538035844 -.long 2099530373,2099530373 -.long 4164795346,4164795346 -.long 288553390,288553390 -.long 1839278535,1839278535 -.long 1261411869,1261411869 -.long 4080055004,4080055004 -.long 3964831245,3964831245 -.long 3504587127,3504587127 -.long 1813426987,1813426987 -.long 2579067049,2579067049 -.long 4199060497,4199060497 -.long 577038663,577038663 -.long 3297574056,3297574056 -.long 440397984,440397984 -.long 3626794326,3626794326 -.long 4019204898,4019204898 -.long 3343796615,3343796615 -.long 3251714265,3251714265 -.long 4272081548,4272081548 -.long 906744984,906744984 -.long 3481400742,3481400742 -.long 685669029,685669029 -.long 646887386,646887386 -.long 2764025151,2764025151 -.long 3835509292,3835509292 -.long 227702864,227702864 -.long 2613862250,2613862250 -.long 1648787028,1648787028 -.long 3256061430,3256061430 -.long 3904428176,3904428176 -.long 1593260334,1593260334 -.long 4121936770,4121936770 -.long 3196083615,3196083615 -.long 2090061929,2090061929 -.long 2838353263,2838353263 -.long 3004310991,3004310991 -.long 999926984,999926984 -.long 2809993232,2809993232 -.long 1852021992,1852021992 -.long 2075868123,2075868123 -.long 158869197,158869197 -.long 4095236462,4095236462 -.long 28809964,28809964 -.long 2828685187,2828685187 -.long 1701746150,1701746150 -.long 2129067946,2129067946 -.long 147831841,147831841 -.long 3873969647,3873969647 -.long 3650873274,3650873274 -.long 3459673930,3459673930 -.long 3557400554,3557400554 -.long 3598495785,3598495785 -.long 2947720241,2947720241 -.long 824393514,824393514 -.long 815048134,815048134 -.long 3227951669,3227951669 -.long 935087732,935087732 -.long 2798289660,2798289660 -.long 2966458592,2966458592 -.long 366520115,366520115 -.long 1251476721,1251476721 -.long 4158319681,4158319681 -.long 240176511,240176511 -.long 804688151,804688151 -.long 2379631990,2379631990 -.long 1303441219,1303441219 -.long 1414376140,1414376140 -.long 3741619940,3741619940 -.long 3820343710,3820343710 -.long 461924940,461924940 -.long 3089050817,3089050817 -.long 2136040774,2136040774 -.long 82468509,82468509 -.long 1563790337,1563790337 -.long 1937016826,1937016826 -.long 776014843,776014843 -.long 1511876531,1511876531 -.long 1389550482,1389550482 -.long 861278441,861278441 -.long 323475053,323475053 -.long 2355222426,2355222426 -.long 2047648055,2047648055 -.long 2383738969,2383738969 -.long 2302415851,2302415851 -.long 3995576782,3995576782 -.long 902390199,902390199 -.long 3991215329,3991215329 -.long 1018251130,1018251130 -.long 1507840668,1507840668 -.long 1064563285,1064563285 -.long 2043548696,2043548696 -.long 3208103795,3208103795 -.long 3939366739,3939366739 -.long 1537932639,1537932639 -.long 342834655,342834655 -.long 2262516856,2262516856 -.long 2180231114,2180231114 -.long 1053059257,1053059257 -.long 741614648,741614648 -.long 1598071746,1598071746 -.long 1925389590,1925389590 -.long 203809468,203809468 -.long 2336832552,2336832552 -.long 1100287487,1100287487 -.long 1895934009,1895934009 -.long 3736275976,3736275976 -.long 2632234200,2632234200 -.long 2428589668,2428589668 -.long 1636092795,1636092795 -.long 1890988757,1890988757 -.long 1952214088,1952214088 -.long 1113045200,1113045200 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.byte 82,9,106,213,48,54,165,56 -.byte 191,64,163,158,129,243,215,251 -.byte 124,227,57,130,155,47,255,135 -.byte 52,142,67,68,196,222,233,203 -.byte 84,123,148,50,166,194,35,61 -.byte 238,76,149,11,66,250,195,78 -.byte 8,46,161,102,40,217,36,178 -.byte 118,91,162,73,109,139,209,37 -.byte 114,248,246,100,134,104,152,22 -.byte 212,164,92,204,93,101,182,146 -.byte 108,112,72,80,253,237,185,218 -.byte 94,21,70,87,167,141,157,132 -.byte 144,216,171,0,140,188,211,10 -.byte 247,228,88,5,184,179,69,6 -.byte 208,44,30,143,202,63,15,2 -.byte 193,175,189,3,1,19,138,107 -.byte 58,145,17,65,79,103,220,234 -.byte 151,242,207,206,240,180,230,115 -.byte 150,172,116,34,231,173,53,133 -.byte 226,249,55,232,28,117,223,110 -.byte 71,241,26,113,29,41,197,137 -.byte 111,183,98,14,170,24,190,27 -.byte 252,86,62,75,198,210,121,32 -.byte 154,219,192,254,120,205,90,244 -.byte 31,221,168,51,136,7,199,49 -.byte 177,18,16,89,39,128,236,95 -.byte 96,81,127,169,25,181,74,13 -.byte 45,229,122,159,147,201,156,239 -.byte 160,224,59,77,174,42,245,176 -.byte 200,235,187,60,131,83,153,97 -.byte 23,43,4,126,186,119,214,38 -.byte 225,105,20,99,85,33,12,125 -.globl _aes_nohw_decrypt -.private_extern _aes_nohw_decrypt -.align 4 -_aes_nohw_decrypt: -L_aes_nohw_decrypt_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%esi - movl 28(%esp),%edi - movl %esp,%eax - subl $36,%esp - andl $-64,%esp - leal -127(%edi),%ebx - subl %esp,%ebx - negl %ebx - andl $960,%ebx - subl %ebx,%esp - addl $4,%esp - movl %eax,28(%esp) - call L010pic_point -L010pic_point: - popl %ebp - movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010pic_point(%ebp),%eax - leal LAES_Td-L010pic_point(%ebp),%ebp - leal 764(%esp),%ebx - subl %ebp,%ebx - andl $768,%ebx - leal 2176(%ebp,%ebx,1),%ebp - btl $25,(%eax) - jnc L011x86 - movq (%esi),%mm0 - movq 8(%esi),%mm4 - call __sse_AES_decrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movq %mm0,(%esi) - movq %mm4,8(%esi) - emms - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.align 4,0x90 -L011x86: - movl %ebp,24(%esp) - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - call __x86_AES_decrypt_compact - movl 28(%esp),%esp - movl 24(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.globl _aes_nohw_cbc_encrypt -.private_extern _aes_nohw_cbc_encrypt -.align 4 -_aes_nohw_cbc_encrypt: -L_aes_nohw_cbc_encrypt_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 28(%esp),%ecx - cmpl $0,%ecx - je L012drop_out - call L013pic_point -L013pic_point: - popl %ebp - movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L013pic_point(%ebp),%eax - cmpl $0,40(%esp) - leal LAES_Te-L013pic_point(%ebp),%ebp - jne L014picked_te - leal LAES_Td-LAES_Te(%ebp),%ebp -L014picked_te: - pushfl - cld - cmpl $512,%ecx - jb L015slow_way - testl $15,%ecx - jnz L015slow_way - btl $28,(%eax) - jc L015slow_way - leal -324(%esp),%esi - andl $-64,%esi - movl %ebp,%eax - leal 2304(%ebp),%ebx - movl %esi,%edx - andl $4095,%eax - andl $4095,%ebx - andl $4095,%edx - cmpl %ebx,%edx - jb L016tbl_break_out - subl %ebx,%edx - subl %edx,%esi - jmp L017tbl_ok -.align 2,0x90 -L016tbl_break_out: - subl %eax,%edx - andl $4095,%edx - addl $384,%edx - subl %edx,%esi -.align 2,0x90 -L017tbl_ok: - leal 24(%esp),%edx - xchgl %esi,%esp - addl $4,%esp - movl %ebp,24(%esp) - movl %esi,28(%esp) - movl (%edx),%eax - movl 4(%edx),%ebx - movl 12(%edx),%edi - movl 16(%edx),%esi - movl 20(%edx),%edx - movl %eax,32(%esp) - movl %ebx,36(%esp) - movl %ecx,40(%esp) - movl %edi,44(%esp) - movl %esi,48(%esp) - movl $0,316(%esp) - movl %edi,%ebx - movl $61,%ecx - subl %ebp,%ebx - movl %edi,%esi - andl $4095,%ebx - leal 76(%esp),%edi - cmpl $2304,%ebx - jb L018do_copy - cmpl $3852,%ebx - jb L019skip_copy -.align 2,0x90 -L018do_copy: - movl %edi,44(%esp) -.long 2784229001 -L019skip_copy: - movl $16,%edi -.align 2,0x90 -L020prefetch_tbl: - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%esi - leal 128(%ebp),%ebp - subl $1,%edi - jnz L020prefetch_tbl - subl $2048,%ebp - movl 32(%esp),%esi - movl 48(%esp),%edi - cmpl $0,%edx - je L021fast_decrypt - movl (%edi),%eax - movl 4(%edi),%ebx -.align 4,0x90 -L022fast_enc_loop: - movl 8(%edi),%ecx - movl 12(%edi),%edx - xorl (%esi),%eax - xorl 4(%esi),%ebx - xorl 8(%esi),%ecx - xorl 12(%esi),%edx - movl 44(%esp),%edi - call __x86_AES_encrypt - movl 32(%esp),%esi - movl 36(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - leal 16(%esi),%esi - movl 40(%esp),%ecx - movl %esi,32(%esp) - leal 16(%edi),%edx - movl %edx,36(%esp) - subl $16,%ecx - movl %ecx,40(%esp) - jnz L022fast_enc_loop - movl 48(%esp),%esi - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - cmpl $0,316(%esp) - movl 44(%esp),%edi - je L023skip_ezero - movl $60,%ecx - xorl %eax,%eax -.align 2,0x90 -.long 2884892297 -L023skip_ezero: - movl 28(%esp),%esp - popfl -L012drop_out: - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 4,0x90 -L021fast_decrypt: - cmpl 36(%esp),%esi - je L024fast_dec_in_place - movl %edi,52(%esp) -.align 2,0x90 -.align 4,0x90 -L025fast_dec_loop: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl 44(%esp),%edi - call __x86_AES_decrypt - movl 52(%esp),%edi - movl 40(%esp),%esi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl 36(%esp),%edi - movl 32(%esp),%esi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 40(%esp),%ecx - movl %esi,52(%esp) - leal 16(%esi),%esi - movl %esi,32(%esp) - leal 16(%edi),%edi - movl %edi,36(%esp) - subl $16,%ecx - movl %ecx,40(%esp) - jnz L025fast_dec_loop - movl 52(%esp),%edi - movl 48(%esp),%esi - movl (%edi),%eax - movl 4(%edi),%ebx - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - jmp L026fast_dec_out -.align 4,0x90 -L024fast_dec_in_place: -L027fast_dec_in_place_loop: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - leal 60(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 44(%esp),%edi - call __x86_AES_decrypt - movl 48(%esp),%edi - movl 36(%esp),%esi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - leal 16(%esi),%esi - movl %esi,36(%esp) - leal 60(%esp),%esi - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 32(%esp),%esi - movl 40(%esp),%ecx - leal 16(%esi),%esi - movl %esi,32(%esp) - subl $16,%ecx - movl %ecx,40(%esp) - jnz L027fast_dec_in_place_loop -.align 2,0x90 -L026fast_dec_out: - cmpl $0,316(%esp) - movl 44(%esp),%edi - je L028skip_dzero - movl $60,%ecx - xorl %eax,%eax -.align 2,0x90 -.long 2884892297 -L028skip_dzero: - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 4,0x90 -L015slow_way: - movl (%eax),%eax - movl 36(%esp),%edi - leal -80(%esp),%esi - andl $-64,%esi - leal -143(%edi),%ebx - subl %esi,%ebx - negl %ebx - andl $960,%ebx - subl %ebx,%esi - leal 768(%esi),%ebx - subl %ebp,%ebx - andl $768,%ebx - leal 2176(%ebp,%ebx,1),%ebp - leal 24(%esp),%edx - xchgl %esi,%esp - addl $4,%esp - movl %ebp,24(%esp) - movl %esi,28(%esp) - movl %eax,52(%esp) - movl (%edx),%eax - movl 4(%edx),%ebx - movl 16(%edx),%esi - movl 20(%edx),%edx - movl %eax,32(%esp) - movl %ebx,36(%esp) - movl %ecx,40(%esp) - movl %edi,44(%esp) - movl %esi,48(%esp) - movl %esi,%edi - movl %eax,%esi - cmpl $0,%edx - je L029slow_decrypt - cmpl $16,%ecx - movl %ebx,%edx - jb L030slow_enc_tail - btl $25,52(%esp) - jnc L031slow_enc_x86 - movq (%edi),%mm0 - movq 8(%edi),%mm4 -.align 4,0x90 -L032slow_enc_loop_sse: - pxor (%esi),%mm0 - pxor 8(%esi),%mm4 - movl 44(%esp),%edi - call __sse_AES_encrypt_compact - movl 32(%esp),%esi - movl 36(%esp),%edi - movl 40(%esp),%ecx - movq %mm0,(%edi) - movq %mm4,8(%edi) - leal 16(%esi),%esi - movl %esi,32(%esp) - leal 16(%edi),%edx - movl %edx,36(%esp) - subl $16,%ecx - cmpl $16,%ecx - movl %ecx,40(%esp) - jae L032slow_enc_loop_sse - testl $15,%ecx - jnz L030slow_enc_tail - movl 48(%esp),%esi - movq %mm0,(%esi) - movq %mm4,8(%esi) - emms - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 4,0x90 -L031slow_enc_x86: - movl (%edi),%eax - movl 4(%edi),%ebx -.align 2,0x90 -L033slow_enc_loop_x86: - movl 8(%edi),%ecx - movl 12(%edi),%edx - xorl (%esi),%eax - xorl 4(%esi),%ebx - xorl 8(%esi),%ecx - xorl 12(%esi),%edx - movl 44(%esp),%edi - call __x86_AES_encrypt_compact - movl 32(%esp),%esi - movl 36(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 40(%esp),%ecx - leal 16(%esi),%esi - movl %esi,32(%esp) - leal 16(%edi),%edx - movl %edx,36(%esp) - subl $16,%ecx - cmpl $16,%ecx - movl %ecx,40(%esp) - jae L033slow_enc_loop_x86 - testl $15,%ecx - jnz L030slow_enc_tail - movl 48(%esp),%esi - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 4,0x90 -L030slow_enc_tail: - emms - movl %edx,%edi - movl $16,%ebx - subl %ecx,%ebx - cmpl %esi,%edi - je L034enc_in_place -.align 2,0x90 -.long 2767451785 - jmp L035enc_skip_in_place -L034enc_in_place: - leal (%edi,%ecx,1),%edi -L035enc_skip_in_place: - movl %ebx,%ecx - xorl %eax,%eax -.align 2,0x90 -.long 2868115081 - movl 48(%esp),%edi - movl %edx,%esi - movl (%edi),%eax - movl 4(%edi),%ebx - movl $16,40(%esp) - jmp L033slow_enc_loop_x86 -.align 4,0x90 -L029slow_decrypt: - btl $25,52(%esp) - jnc L036slow_dec_loop_x86 -.align 2,0x90 -L037slow_dec_loop_sse: - movq (%esi),%mm0 - movq 8(%esi),%mm4 - movl 44(%esp),%edi - call __sse_AES_decrypt_compact - movl 32(%esp),%esi - leal 60(%esp),%eax - movl 36(%esp),%ebx - movl 40(%esp),%ecx - movl 48(%esp),%edi - movq (%esi),%mm1 - movq 8(%esi),%mm5 - pxor (%edi),%mm0 - pxor 8(%edi),%mm4 - movq %mm1,(%edi) - movq %mm5,8(%edi) - subl $16,%ecx - jc L038slow_dec_partial_sse - movq %mm0,(%ebx) - movq %mm4,8(%ebx) - leal 16(%ebx),%ebx - movl %ebx,36(%esp) - leal 16(%esi),%esi - movl %esi,32(%esp) - movl %ecx,40(%esp) - jnz L037slow_dec_loop_sse - emms - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 4,0x90 -L038slow_dec_partial_sse: - movq %mm0,(%eax) - movq %mm4,8(%eax) - emms - addl $16,%ecx - movl %ebx,%edi - movl %eax,%esi -.align 2,0x90 -.long 2767451785 - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 4,0x90 -L036slow_dec_loop_x86: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - leal 60(%esp),%edi - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 44(%esp),%edi - call __x86_AES_decrypt_compact - movl 48(%esp),%edi - movl 40(%esp),%esi - xorl (%edi),%eax - xorl 4(%edi),%ebx - xorl 8(%edi),%ecx - xorl 12(%edi),%edx - subl $16,%esi - jc L039slow_dec_partial_x86 - movl %esi,40(%esp) - movl 36(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - leal 16(%esi),%esi - movl %esi,36(%esp) - leal 60(%esp),%esi - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 32(%esp),%esi - leal 16(%esi),%esi - movl %esi,32(%esp) - jnz L036slow_dec_loop_x86 - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - pushfl -.align 4,0x90 -L039slow_dec_partial_x86: - leal 60(%esp),%esi - movl %eax,(%esi) - movl %ebx,4(%esi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - movl 32(%esp),%esi - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 40(%esp),%ecx - movl 36(%esp),%edi - leal 60(%esp),%esi -.align 2,0x90 -.long 2767451785 - movl 28(%esp),%esp - popfl - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.private_extern __x86_AES_set_encrypt_key -.align 4 -__x86_AES_set_encrypt_key: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 24(%esp),%esi - movl 32(%esp),%edi - testl $-1,%esi - jz L040badpointer - testl $-1,%edi - jz L040badpointer - call L041pic_point -L041pic_point: - popl %ebp - leal LAES_Te-L041pic_point(%ebp),%ebp - leal 2176(%ebp),%ebp - movl -128(%ebp),%eax - movl -96(%ebp),%ebx - movl -64(%ebp),%ecx - movl -32(%ebp),%edx - movl (%ebp),%eax - movl 32(%ebp),%ebx - movl 64(%ebp),%ecx - movl 96(%ebp),%edx - movl 28(%esp),%ecx - cmpl $128,%ecx - je L04210rounds - cmpl $192,%ecx - je L04312rounds - cmpl $256,%ecx - je L04414rounds - movl $-2,%eax - jmp L045exit -L04210rounds: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - xorl %ecx,%ecx - jmp L04610shortcut -.align 2,0x90 -L04710loop: - movl (%edi),%eax - movl 12(%edi),%edx -L04610shortcut: - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - xorl 896(%ebp,%ecx,4),%eax - movl %eax,16(%edi) - xorl 4(%edi),%eax - movl %eax,20(%edi) - xorl 8(%edi),%eax - movl %eax,24(%edi) - xorl 12(%edi),%eax - movl %eax,28(%edi) - incl %ecx - addl $16,%edi - cmpl $10,%ecx - jl L04710loop - movl $10,80(%edi) - xorl %eax,%eax - jmp L045exit -L04312rounds: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 16(%esi),%ecx - movl 20(%esi),%edx - movl %ecx,16(%edi) - movl %edx,20(%edi) - xorl %ecx,%ecx - jmp L04812shortcut -.align 2,0x90 -L04912loop: - movl (%edi),%eax - movl 20(%edi),%edx -L04812shortcut: - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - xorl 896(%ebp,%ecx,4),%eax - movl %eax,24(%edi) - xorl 4(%edi),%eax - movl %eax,28(%edi) - xorl 8(%edi),%eax - movl %eax,32(%edi) - xorl 12(%edi),%eax - movl %eax,36(%edi) - cmpl $7,%ecx - je L05012break - incl %ecx - xorl 16(%edi),%eax - movl %eax,40(%edi) - xorl 20(%edi),%eax - movl %eax,44(%edi) - addl $24,%edi - jmp L04912loop -L05012break: - movl $12,72(%edi) - xorl %eax,%eax - jmp L045exit -L04414rounds: - movl (%esi),%eax - movl 4(%esi),%ebx - movl 8(%esi),%ecx - movl 12(%esi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,8(%edi) - movl %edx,12(%edi) - movl 16(%esi),%eax - movl 20(%esi),%ebx - movl 24(%esi),%ecx - movl 28(%esi),%edx - movl %eax,16(%edi) - movl %ebx,20(%edi) - movl %ecx,24(%edi) - movl %edx,28(%edi) - xorl %ecx,%ecx - jmp L05114shortcut -.align 2,0x90 -L05214loop: - movl 28(%edi),%edx -L05114shortcut: - movl (%edi),%eax - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - xorl 896(%ebp,%ecx,4),%eax - movl %eax,32(%edi) - xorl 4(%edi),%eax - movl %eax,36(%edi) - xorl 8(%edi),%eax - movl %eax,40(%edi) - xorl 12(%edi),%eax - movl %eax,44(%edi) - cmpl $6,%ecx - je L05314break - incl %ecx - movl %eax,%edx - movl 16(%edi),%eax - movzbl %dl,%esi - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shrl $16,%edx - shll $8,%ebx - movzbl %dl,%esi - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - movzbl %dh,%esi - shll $16,%ebx - xorl %ebx,%eax - movzbl -128(%ebp,%esi,1),%ebx - shll $24,%ebx - xorl %ebx,%eax - movl %eax,48(%edi) - xorl 20(%edi),%eax - movl %eax,52(%edi) - xorl 24(%edi),%eax - movl %eax,56(%edi) - xorl 28(%edi),%eax - movl %eax,60(%edi) - addl $32,%edi - jmp L05214loop -L05314break: - movl $14,48(%edi) - xorl %eax,%eax - jmp L045exit -L040badpointer: - movl $-1,%eax -L045exit: - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.globl _aes_nohw_set_encrypt_key -.private_extern _aes_nohw_set_encrypt_key -.align 4 -_aes_nohw_set_encrypt_key: -L_aes_nohw_set_encrypt_key_begin: - call __x86_AES_set_encrypt_key - ret -.globl _aes_nohw_set_decrypt_key -.private_extern _aes_nohw_set_decrypt_key -.align 4 -_aes_nohw_set_decrypt_key: -L_aes_nohw_set_decrypt_key_begin: - call __x86_AES_set_encrypt_key - cmpl $0,%eax - je L054proceed - ret -L054proceed: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 28(%esp),%esi - movl 240(%esi),%ecx - leal (,%ecx,4),%ecx - leal (%esi,%ecx,4),%edi -.align 2,0x90 -L055invert: - movl (%esi),%eax - movl 4(%esi),%ebx - movl (%edi),%ecx - movl 4(%edi),%edx - movl %eax,(%edi) - movl %ebx,4(%edi) - movl %ecx,(%esi) - movl %edx,4(%esi) - movl 8(%esi),%eax - movl 12(%esi),%ebx - movl 8(%edi),%ecx - movl 12(%edi),%edx - movl %eax,8(%edi) - movl %ebx,12(%edi) - movl %ecx,8(%esi) - movl %edx,12(%esi) - addl $16,%esi - subl $16,%edi - cmpl %edi,%esi - jne L055invert - movl 28(%esp),%edi - movl 240(%edi),%esi - leal -2(%esi,%esi,1),%esi - leal (%edi,%esi,8),%esi - movl %esi,28(%esp) - movl 16(%edi),%eax -.align 2,0x90 -L056permute: - addl $16,%edi - movl $2155905152,%ebp - andl %eax,%ebp - leal (%eax,%eax,1),%ebx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %esi,%ebx - movl $2155905152,%ebp - andl %ebx,%ebp - leal (%ebx,%ebx,1),%ecx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %eax,%ebx - xorl %esi,%ecx - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edx - movl %ebp,%esi - shrl $7,%ebp - xorl %eax,%ecx - subl %ebp,%esi - andl $4278124286,%edx - andl $454761243,%esi - roll $8,%eax - xorl %esi,%edx - movl 4(%edi),%ebp - xorl %ebx,%eax - xorl %edx,%ebx - xorl %ecx,%eax - roll $24,%ebx - xorl %edx,%ecx - xorl %edx,%eax - roll $16,%ecx - xorl %ebx,%eax - roll $8,%edx - xorl %ecx,%eax - movl %ebp,%ebx - xorl %edx,%eax - movl %eax,(%edi) - movl $2155905152,%ebp - andl %ebx,%ebp - leal (%ebx,%ebx,1),%ecx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ecx - andl $454761243,%esi - xorl %esi,%ecx - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %ebx,%ecx - xorl %esi,%edx - movl $2155905152,%ebp - andl %edx,%ebp - leal (%edx,%edx,1),%eax - movl %ebp,%esi - shrl $7,%ebp - xorl %ebx,%edx - subl %ebp,%esi - andl $4278124286,%eax - andl $454761243,%esi - roll $8,%ebx - xorl %esi,%eax - movl 8(%edi),%ebp - xorl %ecx,%ebx - xorl %eax,%ecx - xorl %edx,%ebx - roll $24,%ecx - xorl %eax,%edx - xorl %eax,%ebx - roll $16,%edx - xorl %ecx,%ebx - roll $8,%eax - xorl %edx,%ebx - movl %ebp,%ecx - xorl %eax,%ebx - movl %ebx,4(%edi) - movl $2155905152,%ebp - andl %ecx,%ebp - leal (%ecx,%ecx,1),%edx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%edx - andl $454761243,%esi - xorl %esi,%edx - movl $2155905152,%ebp - andl %edx,%ebp - leal (%edx,%edx,1),%eax - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%eax - andl $454761243,%esi - xorl %ecx,%edx - xorl %esi,%eax - movl $2155905152,%ebp - andl %eax,%ebp - leal (%eax,%eax,1),%ebx - movl %ebp,%esi - shrl $7,%ebp - xorl %ecx,%eax - subl %ebp,%esi - andl $4278124286,%ebx - andl $454761243,%esi - roll $8,%ecx - xorl %esi,%ebx - movl 12(%edi),%ebp - xorl %edx,%ecx - xorl %ebx,%edx - xorl %eax,%ecx - roll $24,%edx - xorl %ebx,%eax - xorl %ebx,%ecx - roll $16,%eax - xorl %edx,%ecx - roll $8,%ebx - xorl %eax,%ecx - movl %ebp,%edx - xorl %ebx,%ecx - movl %ecx,8(%edi) - movl $2155905152,%ebp - andl %edx,%ebp - leal (%edx,%edx,1),%eax - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%eax - andl $454761243,%esi - xorl %esi,%eax - movl $2155905152,%ebp - andl %eax,%ebp - leal (%eax,%eax,1),%ebx - movl %ebp,%esi - shrl $7,%ebp - subl %ebp,%esi - andl $4278124286,%ebx - andl $454761243,%esi - xorl %edx,%eax - xorl %esi,%ebx - movl $2155905152,%ebp - andl %ebx,%ebp - leal (%ebx,%ebx,1),%ecx - movl %ebp,%esi - shrl $7,%ebp - xorl %edx,%ebx - subl %ebp,%esi - andl $4278124286,%ecx - andl $454761243,%esi - roll $8,%edx - xorl %esi,%ecx - movl 16(%edi),%ebp - xorl %eax,%edx - xorl %ecx,%eax - xorl %ebx,%edx - roll $24,%eax - xorl %ecx,%ebx - xorl %ecx,%edx - roll $16,%ebx - xorl %eax,%edx - roll $8,%ecx - xorl %ebx,%edx - movl %ebp,%eax - xorl %ecx,%edx - movl %edx,12(%edi) - cmpl 28(%esp),%edi - jb L056permute - xorl %eax,%eax - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 -.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 -.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.section __IMPORT,__pointers,non_lazy_symbol_pointers -L_OPENSSL_ia32cap_P$non_lazy_ptr: -.indirect_symbol _OPENSSL_ia32cap_P -.long 0 -#endif diff --git a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aesni-x86.S b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aesni-x86.S index 17eeaeac5ab..db7efffdf8f 100644 --- a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aesni-x86.S +++ b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/aesni-x86.S @@ -6,14 +6,14 @@ #include #endif .text -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST #endif .globl _aes_hw_encrypt .private_extern _aes_hw_encrypt .align 4 _aes_hw_encrypt: L_aes_hw_encrypt_begin: -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call L000pic @@ -818,7 +818,7 @@ L_aes_hw_ctr32_encrypt_blocks_begin: pushl %ebx pushl %esi pushl %edi -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call L038pic @@ -2403,7 +2403,7 @@ L097bad_keybits: .align 4 _aes_hw_set_encrypt_key: L_aes_hw_set_encrypt_key_begin: -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call L116pic diff --git a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/bn-586.S b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/bn-586.S index 7d0462b51f5..c06945161f9 100644 --- a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/bn-586.S +++ b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/bn-586.S @@ -981,551 +981,6 @@ L028aw_end: popl %ebx popl %ebp ret -.globl _bn_sub_part_words -.private_extern _bn_sub_part_words -.align 4 -_bn_sub_part_words: -L_bn_sub_part_words_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - - movl 20(%esp),%ebx - movl 24(%esp),%esi - movl 28(%esp),%edi - movl 32(%esp),%ebp - xorl %eax,%eax - andl $4294967288,%ebp - jz L029aw_finish -L030aw_loop: - # Round 0 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - # Round 1 - movl 4(%esi),%ecx - movl 4(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,4(%ebx) - # Round 2 - movl 8(%esi),%ecx - movl 8(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,8(%ebx) - # Round 3 - movl 12(%esi),%ecx - movl 12(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,12(%ebx) - # Round 4 - movl 16(%esi),%ecx - movl 16(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,16(%ebx) - # Round 5 - movl 20(%esi),%ecx - movl 20(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,20(%ebx) - # Round 6 - movl 24(%esi),%ecx - movl 24(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,24(%ebx) - # Round 7 - movl 28(%esi),%ecx - movl 28(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,28(%ebx) - - addl $32,%esi - addl $32,%edi - addl $32,%ebx - subl $8,%ebp - jnz L030aw_loop -L029aw_finish: - movl 32(%esp),%ebp - andl $7,%ebp - jz L031aw_end - # Tail Round 0 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz L031aw_end - # Tail Round 1 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz L031aw_end - # Tail Round 2 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz L031aw_end - # Tail Round 3 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz L031aw_end - # Tail Round 4 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz L031aw_end - # Tail Round 5 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx - decl %ebp - jz L031aw_end - # Tail Round 6 - movl (%esi),%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - addl $4,%esi - addl $4,%edi - addl $4,%ebx -L031aw_end: - cmpl $0,36(%esp) - je L032pw_end - movl 36(%esp),%ebp - cmpl $0,%ebp - je L032pw_end - jge L033pw_pos - # pw_neg - movl $0,%edx - subl %ebp,%edx - movl %edx,%ebp - andl $4294967288,%ebp - jz L034pw_neg_finish -L035pw_neg_loop: - # dl<0 Round 0 - movl $0,%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,(%ebx) - # dl<0 Round 1 - movl $0,%ecx - movl 4(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,4(%ebx) - # dl<0 Round 2 - movl $0,%ecx - movl 8(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,8(%ebx) - # dl<0 Round 3 - movl $0,%ecx - movl 12(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,12(%ebx) - # dl<0 Round 4 - movl $0,%ecx - movl 16(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,16(%ebx) - # dl<0 Round 5 - movl $0,%ecx - movl 20(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,20(%ebx) - # dl<0 Round 6 - movl $0,%ecx - movl 24(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,24(%ebx) - # dl<0 Round 7 - movl $0,%ecx - movl 28(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,28(%ebx) - - addl $32,%edi - addl $32,%ebx - subl $8,%ebp - jnz L035pw_neg_loop -L034pw_neg_finish: - movl 36(%esp),%edx - movl $0,%ebp - subl %edx,%ebp - andl $7,%ebp - jz L032pw_end - # dl<0 Tail Round 0 - movl $0,%ecx - movl (%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,(%ebx) - jz L032pw_end - # dl<0 Tail Round 1 - movl $0,%ecx - movl 4(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,4(%ebx) - jz L032pw_end - # dl<0 Tail Round 2 - movl $0,%ecx - movl 8(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,8(%ebx) - jz L032pw_end - # dl<0 Tail Round 3 - movl $0,%ecx - movl 12(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,12(%ebx) - jz L032pw_end - # dl<0 Tail Round 4 - movl $0,%ecx - movl 16(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,16(%ebx) - jz L032pw_end - # dl<0 Tail Round 5 - movl $0,%ecx - movl 20(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - decl %ebp - movl %ecx,20(%ebx) - jz L032pw_end - # dl<0 Tail Round 6 - movl $0,%ecx - movl 24(%edi),%edx - subl %eax,%ecx - movl $0,%eax - adcl %eax,%eax - subl %edx,%ecx - adcl $0,%eax - movl %ecx,24(%ebx) - jmp L032pw_end -L033pw_pos: - andl $4294967288,%ebp - jz L036pw_pos_finish -L037pw_pos_loop: - # dl>0 Round 0 - movl (%esi),%ecx - subl %eax,%ecx - movl %ecx,(%ebx) - jnc L038pw_nc0 - # dl>0 Round 1 - movl 4(%esi),%ecx - subl %eax,%ecx - movl %ecx,4(%ebx) - jnc L039pw_nc1 - # dl>0 Round 2 - movl 8(%esi),%ecx - subl %eax,%ecx - movl %ecx,8(%ebx) - jnc L040pw_nc2 - # dl>0 Round 3 - movl 12(%esi),%ecx - subl %eax,%ecx - movl %ecx,12(%ebx) - jnc L041pw_nc3 - # dl>0 Round 4 - movl 16(%esi),%ecx - subl %eax,%ecx - movl %ecx,16(%ebx) - jnc L042pw_nc4 - # dl>0 Round 5 - movl 20(%esi),%ecx - subl %eax,%ecx - movl %ecx,20(%ebx) - jnc L043pw_nc5 - # dl>0 Round 6 - movl 24(%esi),%ecx - subl %eax,%ecx - movl %ecx,24(%ebx) - jnc L044pw_nc6 - # dl>0 Round 7 - movl 28(%esi),%ecx - subl %eax,%ecx - movl %ecx,28(%ebx) - jnc L045pw_nc7 - - addl $32,%esi - addl $32,%ebx - subl $8,%ebp - jnz L037pw_pos_loop -L036pw_pos_finish: - movl 36(%esp),%ebp - andl $7,%ebp - jz L032pw_end - # dl>0 Tail Round 0 - movl (%esi),%ecx - subl %eax,%ecx - movl %ecx,(%ebx) - jnc L046pw_tail_nc0 - decl %ebp - jz L032pw_end - # dl>0 Tail Round 1 - movl 4(%esi),%ecx - subl %eax,%ecx - movl %ecx,4(%ebx) - jnc L047pw_tail_nc1 - decl %ebp - jz L032pw_end - # dl>0 Tail Round 2 - movl 8(%esi),%ecx - subl %eax,%ecx - movl %ecx,8(%ebx) - jnc L048pw_tail_nc2 - decl %ebp - jz L032pw_end - # dl>0 Tail Round 3 - movl 12(%esi),%ecx - subl %eax,%ecx - movl %ecx,12(%ebx) - jnc L049pw_tail_nc3 - decl %ebp - jz L032pw_end - # dl>0 Tail Round 4 - movl 16(%esi),%ecx - subl %eax,%ecx - movl %ecx,16(%ebx) - jnc L050pw_tail_nc4 - decl %ebp - jz L032pw_end - # dl>0 Tail Round 5 - movl 20(%esi),%ecx - subl %eax,%ecx - movl %ecx,20(%ebx) - jnc L051pw_tail_nc5 - decl %ebp - jz L032pw_end - # dl>0 Tail Round 6 - movl 24(%esi),%ecx - subl %eax,%ecx - movl %ecx,24(%ebx) - jnc L052pw_tail_nc6 - movl $1,%eax - jmp L032pw_end -L053pw_nc_loop: - movl (%esi),%ecx - movl %ecx,(%ebx) -L038pw_nc0: - movl 4(%esi),%ecx - movl %ecx,4(%ebx) -L039pw_nc1: - movl 8(%esi),%ecx - movl %ecx,8(%ebx) -L040pw_nc2: - movl 12(%esi),%ecx - movl %ecx,12(%ebx) -L041pw_nc3: - movl 16(%esi),%ecx - movl %ecx,16(%ebx) -L042pw_nc4: - movl 20(%esi),%ecx - movl %ecx,20(%ebx) -L043pw_nc5: - movl 24(%esi),%ecx - movl %ecx,24(%ebx) -L044pw_nc6: - movl 28(%esi),%ecx - movl %ecx,28(%ebx) -L045pw_nc7: - - addl $32,%esi - addl $32,%ebx - subl $8,%ebp - jnz L053pw_nc_loop - movl 36(%esp),%ebp - andl $7,%ebp - jz L054pw_nc_end - movl (%esi),%ecx - movl %ecx,(%ebx) -L046pw_tail_nc0: - decl %ebp - jz L054pw_nc_end - movl 4(%esi),%ecx - movl %ecx,4(%ebx) -L047pw_tail_nc1: - decl %ebp - jz L054pw_nc_end - movl 8(%esi),%ecx - movl %ecx,8(%ebx) -L048pw_tail_nc2: - decl %ebp - jz L054pw_nc_end - movl 12(%esi),%ecx - movl %ecx,12(%ebx) -L049pw_tail_nc3: - decl %ebp - jz L054pw_nc_end - movl 16(%esi),%ecx - movl %ecx,16(%ebx) -L050pw_tail_nc4: - decl %ebp - jz L054pw_nc_end - movl 20(%esi),%ecx - movl %ecx,20(%ebx) -L051pw_tail_nc5: - decl %ebp - jz L054pw_nc_end - movl 24(%esi),%ecx - movl %ecx,24(%ebx) -L052pw_tail_nc6: -L054pw_nc_end: - movl $0,%eax -L032pw_end: - popl %edi - popl %esi - popl %ebx - popl %ebp - ret .section __IMPORT,__pointers,non_lazy_symbol_pointers L_OPENSSL_ia32cap_P$non_lazy_ptr: .indirect_symbol _OPENSSL_ia32cap_P diff --git a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/ghash-x86.S b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/ghash-x86.S index e13bf3e858e..da2fb99df1d 100644 --- a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/ghash-x86.S +++ b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/ghash-x86.S @@ -6,707 +6,6 @@ #include #endif .text -.globl _gcm_gmult_4bit_mmx -.private_extern _gcm_gmult_4bit_mmx -.align 4 -_gcm_gmult_4bit_mmx: -L_gcm_gmult_4bit_mmx_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%edi - movl 24(%esp),%esi - call L000pic_point -L000pic_point: - popl %eax - leal Lrem_4bit-L000pic_point(%eax),%eax - movzbl 15(%edi),%ebx - xorl %ecx,%ecx - movl %ebx,%edx - movb %dl,%cl - movl $14,%ebp - shlb $4,%cl - andl $240,%edx - movq 8(%esi,%ecx,1),%mm0 - movq (%esi,%ecx,1),%mm1 - movd %mm0,%ebx - jmp L001mmx_loop -.align 4,0x90 -L001mmx_loop: - psrlq $4,%mm0 - andl $15,%ebx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%edx,1),%mm0 - movb (%edi,%ebp,1),%cl - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - decl %ebp - movd %mm0,%ebx - pxor (%esi,%edx,1),%mm1 - movl %ecx,%edx - pxor %mm2,%mm0 - js L002mmx_break - shlb $4,%cl - andl $15,%ebx - psrlq $4,%mm0 - andl $240,%edx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%ecx,1),%mm0 - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - movd %mm0,%ebx - pxor (%esi,%ecx,1),%mm1 - pxor %mm2,%mm0 - jmp L001mmx_loop -.align 4,0x90 -L002mmx_break: - shlb $4,%cl - andl $15,%ebx - psrlq $4,%mm0 - andl $240,%edx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%ecx,1),%mm0 - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - movd %mm0,%ebx - pxor (%esi,%ecx,1),%mm1 - pxor %mm2,%mm0 - psrlq $4,%mm0 - andl $15,%ebx - movq %mm1,%mm2 - psrlq $4,%mm1 - pxor 8(%esi,%edx,1),%mm0 - psllq $60,%mm2 - pxor (%eax,%ebx,8),%mm1 - movd %mm0,%ebx - pxor (%esi,%edx,1),%mm1 - pxor %mm2,%mm0 - psrlq $32,%mm0 - movd %mm1,%edx - psrlq $32,%mm1 - movd %mm0,%ecx - movd %mm1,%ebp - bswap %ebx - bswap %edx - bswap %ecx - bswap %ebp - emms - movl %ebx,12(%edi) - movl %edx,4(%edi) - movl %ecx,8(%edi) - movl %ebp,(%edi) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret -.globl _gcm_ghash_4bit_mmx -.private_extern _gcm_ghash_4bit_mmx -.align 4 -_gcm_ghash_4bit_mmx: -L_gcm_ghash_4bit_mmx_begin: - pushl %ebp - pushl %ebx - pushl %esi - pushl %edi - movl 20(%esp),%eax - movl 24(%esp),%ebx - movl 28(%esp),%ecx - movl 32(%esp),%edx - movl %esp,%ebp - call L003pic_point -L003pic_point: - popl %esi - leal Lrem_8bit-L003pic_point(%esi),%esi - subl $544,%esp - andl $-64,%esp - subl $16,%esp - addl %ecx,%edx - movl %eax,544(%esp) - movl %edx,552(%esp) - movl %ebp,556(%esp) - addl $128,%ebx - leal 144(%esp),%edi - leal 400(%esp),%ebp - movl -120(%ebx),%edx - movq -120(%ebx),%mm0 - movq -128(%ebx),%mm3 - shll $4,%edx - movb %dl,(%esp) - movl -104(%ebx),%edx - movq -104(%ebx),%mm2 - movq -112(%ebx),%mm5 - movq %mm0,-128(%edi) - psrlq $4,%mm0 - movq %mm3,(%edi) - movq %mm3,%mm7 - psrlq $4,%mm3 - shll $4,%edx - movb %dl,1(%esp) - movl -88(%ebx),%edx - movq -88(%ebx),%mm1 - psllq $60,%mm7 - movq -96(%ebx),%mm4 - por %mm7,%mm0 - movq %mm2,-120(%edi) - psrlq $4,%mm2 - movq %mm5,8(%edi) - movq %mm5,%mm6 - movq %mm0,-128(%ebp) - psrlq $4,%mm5 - movq %mm3,(%ebp) - shll $4,%edx - movb %dl,2(%esp) - movl -72(%ebx),%edx - movq -72(%ebx),%mm0 - psllq $60,%mm6 - movq -80(%ebx),%mm3 - por %mm6,%mm2 - movq %mm1,-112(%edi) - psrlq $4,%mm1 - movq %mm4,16(%edi) - movq %mm4,%mm7 - movq %mm2,-120(%ebp) - psrlq $4,%mm4 - movq %mm5,8(%ebp) - shll $4,%edx - movb %dl,3(%esp) - movl -56(%ebx),%edx - movq -56(%ebx),%mm2 - psllq $60,%mm7 - movq -64(%ebx),%mm5 - por %mm7,%mm1 - movq %mm0,-104(%edi) - psrlq $4,%mm0 - movq %mm3,24(%edi) - movq %mm3,%mm6 - movq %mm1,-112(%ebp) - psrlq $4,%mm3 - movq %mm4,16(%ebp) - shll $4,%edx - movb %dl,4(%esp) - movl -40(%ebx),%edx - movq -40(%ebx),%mm1 - psllq $60,%mm6 - movq -48(%ebx),%mm4 - por %mm6,%mm0 - movq %mm2,-96(%edi) - psrlq $4,%mm2 - movq %mm5,32(%edi) - movq %mm5,%mm7 - movq %mm0,-104(%ebp) - psrlq $4,%mm5 - movq %mm3,24(%ebp) - shll $4,%edx - movb %dl,5(%esp) - movl -24(%ebx),%edx - movq -24(%ebx),%mm0 - psllq $60,%mm7 - movq -32(%ebx),%mm3 - por %mm7,%mm2 - movq %mm1,-88(%edi) - psrlq $4,%mm1 - movq %mm4,40(%edi) - movq %mm4,%mm6 - movq %mm2,-96(%ebp) - psrlq $4,%mm4 - movq %mm5,32(%ebp) - shll $4,%edx - movb %dl,6(%esp) - movl -8(%ebx),%edx - movq -8(%ebx),%mm2 - psllq $60,%mm6 - movq -16(%ebx),%mm5 - por %mm6,%mm1 - movq %mm0,-80(%edi) - psrlq $4,%mm0 - movq %mm3,48(%edi) - movq %mm3,%mm7 - movq %mm1,-88(%ebp) - psrlq $4,%mm3 - movq %mm4,40(%ebp) - shll $4,%edx - movb %dl,7(%esp) - movl 8(%ebx),%edx - movq 8(%ebx),%mm1 - psllq $60,%mm7 - movq (%ebx),%mm4 - por %mm7,%mm0 - movq %mm2,-72(%edi) - psrlq $4,%mm2 - movq %mm5,56(%edi) - movq %mm5,%mm6 - movq %mm0,-80(%ebp) - psrlq $4,%mm5 - movq %mm3,48(%ebp) - shll $4,%edx - movb %dl,8(%esp) - movl 24(%ebx),%edx - movq 24(%ebx),%mm0 - psllq $60,%mm6 - movq 16(%ebx),%mm3 - por %mm6,%mm2 - movq %mm1,-64(%edi) - psrlq $4,%mm1 - movq %mm4,64(%edi) - movq %mm4,%mm7 - movq %mm2,-72(%ebp) - psrlq $4,%mm4 - movq %mm5,56(%ebp) - shll $4,%edx - movb %dl,9(%esp) - movl 40(%ebx),%edx - movq 40(%ebx),%mm2 - psllq $60,%mm7 - movq 32(%ebx),%mm5 - por %mm7,%mm1 - movq %mm0,-56(%edi) - psrlq $4,%mm0 - movq %mm3,72(%edi) - movq %mm3,%mm6 - movq %mm1,-64(%ebp) - psrlq $4,%mm3 - movq %mm4,64(%ebp) - shll $4,%edx - movb %dl,10(%esp) - movl 56(%ebx),%edx - movq 56(%ebx),%mm1 - psllq $60,%mm6 - movq 48(%ebx),%mm4 - por %mm6,%mm0 - movq %mm2,-48(%edi) - psrlq $4,%mm2 - movq %mm5,80(%edi) - movq %mm5,%mm7 - movq %mm0,-56(%ebp) - psrlq $4,%mm5 - movq %mm3,72(%ebp) - shll $4,%edx - movb %dl,11(%esp) - movl 72(%ebx),%edx - movq 72(%ebx),%mm0 - psllq $60,%mm7 - movq 64(%ebx),%mm3 - por %mm7,%mm2 - movq %mm1,-40(%edi) - psrlq $4,%mm1 - movq %mm4,88(%edi) - movq %mm4,%mm6 - movq %mm2,-48(%ebp) - psrlq $4,%mm4 - movq %mm5,80(%ebp) - shll $4,%edx - movb %dl,12(%esp) - movl 88(%ebx),%edx - movq 88(%ebx),%mm2 - psllq $60,%mm6 - movq 80(%ebx),%mm5 - por %mm6,%mm1 - movq %mm0,-32(%edi) - psrlq $4,%mm0 - movq %mm3,96(%edi) - movq %mm3,%mm7 - movq %mm1,-40(%ebp) - psrlq $4,%mm3 - movq %mm4,88(%ebp) - shll $4,%edx - movb %dl,13(%esp) - movl 104(%ebx),%edx - movq 104(%ebx),%mm1 - psllq $60,%mm7 - movq 96(%ebx),%mm4 - por %mm7,%mm0 - movq %mm2,-24(%edi) - psrlq $4,%mm2 - movq %mm5,104(%edi) - movq %mm5,%mm6 - movq %mm0,-32(%ebp) - psrlq $4,%mm5 - movq %mm3,96(%ebp) - shll $4,%edx - movb %dl,14(%esp) - movl 120(%ebx),%edx - movq 120(%ebx),%mm0 - psllq $60,%mm6 - movq 112(%ebx),%mm3 - por %mm6,%mm2 - movq %mm1,-16(%edi) - psrlq $4,%mm1 - movq %mm4,112(%edi) - movq %mm4,%mm7 - movq %mm2,-24(%ebp) - psrlq $4,%mm4 - movq %mm5,104(%ebp) - shll $4,%edx - movb %dl,15(%esp) - psllq $60,%mm7 - por %mm7,%mm1 - movq %mm0,-8(%edi) - psrlq $4,%mm0 - movq %mm3,120(%edi) - movq %mm3,%mm6 - movq %mm1,-16(%ebp) - psrlq $4,%mm3 - movq %mm4,112(%ebp) - psllq $60,%mm6 - por %mm6,%mm0 - movq %mm0,-8(%ebp) - movq %mm3,120(%ebp) - movq (%eax),%mm6 - movl 8(%eax),%ebx - movl 12(%eax),%edx -.align 4,0x90 -L004outer: - xorl 12(%ecx),%edx - xorl 8(%ecx),%ebx - pxor (%ecx),%mm6 - leal 16(%ecx),%ecx - movl %ebx,536(%esp) - movq %mm6,528(%esp) - movl %ecx,548(%esp) - xorl %eax,%eax - roll $8,%edx - movb %dl,%al - movl %eax,%ebp - andb $15,%al - shrl $4,%ebp - pxor %mm0,%mm0 - roll $8,%edx - pxor %mm1,%mm1 - pxor %mm2,%mm2 - movq 16(%esp,%eax,8),%mm7 - movq 144(%esp,%eax,8),%mm6 - movb %dl,%al - movd %mm7,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - shrl $4,%edi - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 536(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 532(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 528(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm1,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm0 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - xorb (%esp,%ebp,1),%bl - movb %dl,%al - movd %mm7,%ecx - movzbl %bl,%ebx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%ebp - psrlq $8,%mm6 - pxor 272(%esp,%edi,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm0,%mm6 - shrl $4,%ebp - pinsrw $2,(%esi,%ebx,2),%mm2 - pxor 16(%esp,%eax,8),%mm7 - roll $8,%edx - pxor 144(%esp,%eax,8),%mm6 - pxor %mm3,%mm7 - pxor 400(%esp,%edi,8),%mm6 - xorb (%esp,%edi,1),%cl - movb %dl,%al - movl 524(%esp),%edx - movd %mm7,%ebx - movzbl %cl,%ecx - psrlq $8,%mm7 - movq %mm6,%mm3 - movl %eax,%edi - psrlq $8,%mm6 - pxor 272(%esp,%ebp,8),%mm7 - andb $15,%al - psllq $56,%mm3 - pxor %mm2,%mm6 - shrl $4,%edi - pinsrw $2,(%esi,%ecx,2),%mm1 - pxor 16(%esp,%eax,8),%mm7 - pxor 144(%esp,%eax,8),%mm6 - xorb (%esp,%ebp,1),%bl - pxor %mm3,%mm7 - pxor 400(%esp,%ebp,8),%mm6 - movzbl %bl,%ebx - pxor %mm2,%mm2 - psllq $4,%mm1 - movd %mm7,%ecx - psrlq $4,%mm7 - movq %mm6,%mm3 - psrlq $4,%mm6 - shll $4,%ecx - pxor 16(%esp,%edi,8),%mm7 - psllq $60,%mm3 - movzbl %cl,%ecx - pxor %mm3,%mm7 - pxor 144(%esp,%edi,8),%mm6 - pinsrw $2,(%esi,%ebx,2),%mm0 - pxor %mm1,%mm6 - movd %mm7,%edx - pinsrw $3,(%esi,%ecx,2),%mm2 - psllq $12,%mm0 - pxor %mm0,%mm6 - psrlq $32,%mm7 - pxor %mm2,%mm6 - movl 548(%esp),%ecx - movd %mm7,%ebx - movq %mm6,%mm3 - psllw $8,%mm6 - psrlw $8,%mm3 - por %mm3,%mm6 - bswap %edx - pshufw $27,%mm6,%mm6 - bswap %ebx - cmpl 552(%esp),%ecx - jne L004outer - movl 544(%esp),%eax - movl %edx,12(%eax) - movl %ebx,8(%eax) - movq %mm6,(%eax) - movl 556(%esp),%esp - emms - popl %edi - popl %esi - popl %ebx - popl %ebp - ret .globl _gcm_init_clmul .private_extern _gcm_init_clmul .align 4 @@ -714,10 +13,10 @@ _gcm_init_clmul: L_gcm_init_clmul_begin: movl 4(%esp),%edx movl 8(%esp),%eax - call L005pic -L005pic: + call L000pic +L000pic: popl %ecx - leal Lbswap-L005pic(%ecx),%ecx + leal Lbswap-L000pic(%ecx),%ecx movdqu (%eax),%xmm2 pshufd $78,%xmm2,%xmm2 pshufd $255,%xmm2,%xmm4 @@ -782,10 +81,10 @@ _gcm_gmult_clmul: L_gcm_gmult_clmul_begin: movl 4(%esp),%eax movl 8(%esp),%edx - call L006pic -L006pic: + call L001pic +L001pic: popl %ecx - leal Lbswap-L006pic(%ecx),%ecx + leal Lbswap-L001pic(%ecx),%ecx movdqu (%eax),%xmm0 movdqa (%ecx),%xmm5 movups (%edx),%xmm2 @@ -840,16 +139,16 @@ L_gcm_ghash_clmul_begin: movl 24(%esp),%edx movl 28(%esp),%esi movl 32(%esp),%ebx - call L007pic -L007pic: + call L002pic +L002pic: popl %ecx - leal Lbswap-L007pic(%ecx),%ecx + leal Lbswap-L002pic(%ecx),%ecx movdqu (%eax),%xmm0 movdqa (%ecx),%xmm5 movdqu (%edx),%xmm2 .byte 102,15,56,0,197 subl $16,%ebx - jz L008odd_tail + jz L003odd_tail movdqu (%esi),%xmm3 movdqu 16(%esi),%xmm6 .byte 102,15,56,0,221 @@ -866,10 +165,10 @@ L007pic: movups 16(%edx),%xmm2 nop subl $32,%ebx - jbe L009even_tail - jmp L010mod_loop + jbe L004even_tail + jmp L005mod_loop .align 5,0x90 -L010mod_loop: +L005mod_loop: pshufd $78,%xmm0,%xmm4 movdqa %xmm0,%xmm1 pxor %xmm0,%xmm4 @@ -924,8 +223,8 @@ L010mod_loop: .byte 102,15,58,68,221,0 leal 32(%esi),%esi subl $32,%ebx - ja L010mod_loop -L009even_tail: + ja L005mod_loop +L004even_tail: pshufd $78,%xmm0,%xmm4 movdqa %xmm0,%xmm1 pxor %xmm0,%xmm4 @@ -964,9 +263,9 @@ L009even_tail: psrlq $1,%xmm0 pxor %xmm1,%xmm0 testl %ebx,%ebx - jnz L011done + jnz L006done movups (%edx),%xmm2 -L008odd_tail: +L003odd_tail: movdqu (%esi),%xmm3 .byte 102,15,56,0,221 pxor %xmm3,%xmm0 @@ -1005,7 +304,7 @@ L008odd_tail: pxor %xmm4,%xmm0 psrlq $1,%xmm0 pxor %xmm1,%xmm0 -L011done: +L006done: .byte 102,15,56,0,197 movdqu %xmm0,(%eax) popl %edi @@ -1017,46 +316,6 @@ L011done: Lbswap: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194 -.align 6,0x90 -Lrem_8bit: -.value 0,450,900,582,1800,1738,1164,1358 -.value 3600,4050,3476,3158,2328,2266,2716,2910 -.value 7200,7650,8100,7782,6952,6890,6316,6510 -.value 4656,5106,4532,4214,5432,5370,5820,6014 -.value 14400,14722,15300,14854,16200,16010,15564,15630 -.value 13904,14226,13780,13334,12632,12442,13020,13086 -.value 9312,9634,10212,9766,9064,8874,8428,8494 -.value 10864,11186,10740,10294,11640,11450,12028,12094 -.value 28800,28994,29444,29382,30600,30282,29708,30158 -.value 32400,32594,32020,31958,31128,30810,31260,31710 -.value 27808,28002,28452,28390,27560,27242,26668,27118 -.value 25264,25458,24884,24822,26040,25722,26172,26622 -.value 18624,18690,19268,19078,20424,19978,19532,19854 -.value 18128,18194,17748,17558,16856,16410,16988,17310 -.value 21728,21794,22372,22182,21480,21034,20588,20910 -.value 23280,23346,22900,22710,24056,23610,24188,24510 -.value 57600,57538,57988,58182,58888,59338,58764,58446 -.value 61200,61138,60564,60758,59416,59866,60316,59998 -.value 64800,64738,65188,65382,64040,64490,63916,63598 -.value 62256,62194,61620,61814,62520,62970,63420,63102 -.value 55616,55426,56004,56070,56904,57226,56780,56334 -.value 55120,54930,54484,54550,53336,53658,54236,53790 -.value 50528,50338,50916,50982,49768,50090,49644,49198 -.value 52080,51890,51444,51510,52344,52666,53244,52798 -.value 37248,36930,37380,37830,38536,38730,38156,38094 -.value 40848,40530,39956,40406,39064,39258,39708,39646 -.value 36256,35938,36388,36838,35496,35690,35116,35054 -.value 33712,33394,32820,33270,33976,34170,34620,34558 -.value 43456,43010,43588,43910,44744,44810,44364,44174 -.value 42960,42514,42068,42390,41176,41242,41820,41630 -.value 46560,46114,46692,47014,45800,45866,45420,45230 -.value 48112,47666,47220,47542,48376,48442,49020,48830 -.align 6,0x90 -Lrem_4bit: -.long 0,0,0,471859200,0,943718400,0,610271232 -.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 -.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 -.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 .byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 .byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 diff --git a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/vpaes-x86.S b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/vpaes-x86.S index 22043e2ac76..6b5a88b304f 100644 --- a/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/vpaes-x86.S +++ b/contrib/boringssl-cmake/mac-x86/crypto/fipsmodule/vpaes-x86.S @@ -6,7 +6,7 @@ #include #endif .text -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST #endif .align 6,0x90 L_vpaes_consts: @@ -468,7 +468,7 @@ L_vpaes_set_encrypt_key_begin: pushl %ebx pushl %esi pushl %edi -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call L016pic @@ -549,7 +549,7 @@ L_vpaes_encrypt_begin: pushl %ebx pushl %esi pushl %edi -#ifndef NDEBUG +#ifdef BORINGSSL_DISPATCH_TEST pushl %ebx pushl %edx call L019pic diff --git a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aes-x86_64.S b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aes-x86_64.S deleted file mode 100644 index 8875d0abbbd..00000000000 --- a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aes-x86_64.S +++ /dev/null @@ -1,2645 +0,0 @@ -# This file is generated from a similarly-named Perl script in the BoringSSL -# source tree. Do not edit by hand. - -#if defined(__has_feature) -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif -#endif - -#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.text - -.p2align 4 -_x86_64_AES_encrypt: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - - movl 240(%r15),%r13d - subl $1,%r13d - jmp L$enc_loop -.p2align 4 -L$enc_loop: - - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movl 0(%r14,%rsi,8),%r10d - movl 0(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r12d - - movzbl %bh,%esi - movzbl %ch,%edi - movzbl %dl,%ebp - xorl 3(%r14,%rsi,8),%r10d - xorl 3(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r8d - - movzbl %dh,%esi - shrl $16,%ecx - movzbl %ah,%ebp - xorl 3(%r14,%rsi,8),%r12d - shrl $16,%edx - xorl 3(%r14,%rbp,8),%r8d - - shrl $16,%ebx - leaq 16(%r15),%r15 - shrl $16,%eax - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - xorl 2(%r14,%rsi,8),%r10d - xorl 2(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r12d - - movzbl %dh,%esi - movzbl %ah,%edi - movzbl %bl,%ebp - xorl 1(%r14,%rsi,8),%r10d - xorl 1(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r8d - - movl 12(%r15),%edx - movzbl %bh,%edi - movzbl %ch,%ebp - movl 0(%r15),%eax - xorl 1(%r14,%rdi,8),%r12d - xorl 1(%r14,%rbp,8),%r8d - - movl 4(%r15),%ebx - movl 8(%r15),%ecx - xorl %r10d,%eax - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx - subl $1,%r13d - jnz L$enc_loop - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movzbl 2(%r14,%rsi,8),%r10d - movzbl 2(%r14,%rdi,8),%r11d - movzbl 2(%r14,%rbp,8),%r12d - - movzbl %dl,%esi - movzbl %bh,%edi - movzbl %ch,%ebp - movzbl 2(%r14,%rsi,8),%r8d - movl 0(%r14,%rdi,8),%edi - movl 0(%r14,%rbp,8),%ebp - - andl $0x0000ff00,%edi - andl $0x0000ff00,%ebp - - xorl %edi,%r10d - xorl %ebp,%r11d - shrl $16,%ecx - - movzbl %dh,%esi - movzbl %ah,%edi - shrl $16,%edx - movl 0(%r14,%rsi,8),%esi - movl 0(%r14,%rdi,8),%edi - - andl $0x0000ff00,%esi - andl $0x0000ff00,%edi - shrl $16,%ebx - xorl %esi,%r12d - xorl %edi,%r8d - shrl $16,%eax - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - movl 0(%r14,%rsi,8),%esi - movl 0(%r14,%rdi,8),%edi - movl 0(%r14,%rbp,8),%ebp - - andl $0x00ff0000,%esi - andl $0x00ff0000,%edi - andl $0x00ff0000,%ebp - - xorl %esi,%r10d - xorl %edi,%r11d - xorl %ebp,%r12d - - movzbl %bl,%esi - movzbl %dh,%edi - movzbl %ah,%ebp - movl 0(%r14,%rsi,8),%esi - movl 2(%r14,%rdi,8),%edi - movl 2(%r14,%rbp,8),%ebp - - andl $0x00ff0000,%esi - andl $0xff000000,%edi - andl $0xff000000,%ebp - - xorl %esi,%r8d - xorl %edi,%r10d - xorl %ebp,%r11d - - movzbl %bh,%esi - movzbl %ch,%edi - movl 16+12(%r15),%edx - movl 2(%r14,%rsi,8),%esi - movl 2(%r14,%rdi,8),%edi - movl 16+0(%r15),%eax - - andl $0xff000000,%esi - andl $0xff000000,%edi - - xorl %esi,%r12d - xorl %edi,%r8d - - movl 16+4(%r15),%ebx - movl 16+8(%r15),%ecx - xorl %r10d,%eax - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx -.byte 0xf3,0xc3 - - -.p2align 4 -_x86_64_AES_encrypt_compact: - - leaq 128(%r14),%r8 - movl 0-128(%r8),%edi - movl 32-128(%r8),%ebp - movl 64-128(%r8),%r10d - movl 96-128(%r8),%r11d - movl 128-128(%r8),%edi - movl 160-128(%r8),%ebp - movl 192-128(%r8),%r10d - movl 224-128(%r8),%r11d - jmp L$enc_loop_compact -.p2align 4 -L$enc_loop_compact: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - leaq 16(%r15),%r15 - movzbl %al,%r10d - movzbl %bl,%r11d - movzbl %cl,%r12d - movzbl %dl,%r8d - movzbl %bh,%esi - movzbl %ch,%edi - shrl $16,%ecx - movzbl %dh,%ebp - movzbl (%r14,%r10,1),%r10d - movzbl (%r14,%r11,1),%r11d - movzbl (%r14,%r12,1),%r12d - movzbl (%r14,%r8,1),%r8d - - movzbl (%r14,%rsi,1),%r9d - movzbl %ah,%esi - movzbl (%r14,%rdi,1),%r13d - movzbl %cl,%edi - movzbl (%r14,%rbp,1),%ebp - movzbl (%r14,%rsi,1),%esi - - shll $8,%r9d - shrl $16,%edx - shll $8,%r13d - xorl %r9d,%r10d - shrl $16,%eax - movzbl %dl,%r9d - shrl $16,%ebx - xorl %r13d,%r11d - shll $8,%ebp - movzbl %al,%r13d - movzbl (%r14,%rdi,1),%edi - xorl %ebp,%r12d - - shll $8,%esi - movzbl %bl,%ebp - shll $16,%edi - xorl %esi,%r8d - movzbl (%r14,%r9,1),%r9d - movzbl %dh,%esi - movzbl (%r14,%r13,1),%r13d - xorl %edi,%r10d - - shrl $8,%ecx - movzbl %ah,%edi - shll $16,%r9d - shrl $8,%ebx - shll $16,%r13d - xorl %r9d,%r11d - movzbl (%r14,%rbp,1),%ebp - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rcx,1),%edx - movzbl (%r14,%rbx,1),%ecx - - shll $16,%ebp - xorl %r13d,%r12d - shll $24,%esi - xorl %ebp,%r8d - shll $24,%edi - xorl %esi,%r10d - shll $24,%edx - xorl %edi,%r11d - shll $24,%ecx - movl %r10d,%eax - movl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx - cmpq 16(%rsp),%r15 - je L$enc_compact_done - movl $0x80808080,%r10d - movl $0x80808080,%r11d - andl %eax,%r10d - andl %ebx,%r11d - movl %r10d,%esi - movl %r11d,%edi - shrl $7,%r10d - leal (%rax,%rax,1),%r8d - shrl $7,%r11d - leal (%rbx,%rbx,1),%r9d - subl %r10d,%esi - subl %r11d,%edi - andl $0xfefefefe,%r8d - andl $0xfefefefe,%r9d - andl $0x1b1b1b1b,%esi - andl $0x1b1b1b1b,%edi - movl %eax,%r10d - movl %ebx,%r11d - xorl %esi,%r8d - xorl %edi,%r9d - - xorl %r8d,%eax - xorl %r9d,%ebx - movl $0x80808080,%r12d - roll $24,%eax - movl $0x80808080,%ebp - roll $24,%ebx - andl %ecx,%r12d - andl %edx,%ebp - xorl %r8d,%eax - xorl %r9d,%ebx - movl %r12d,%esi - rorl $16,%r10d - movl %ebp,%edi - rorl $16,%r11d - leal (%rcx,%rcx,1),%r8d - shrl $7,%r12d - xorl %r10d,%eax - shrl $7,%ebp - xorl %r11d,%ebx - rorl $8,%r10d - leal (%rdx,%rdx,1),%r9d - rorl $8,%r11d - subl %r12d,%esi - subl %ebp,%edi - xorl %r10d,%eax - xorl %r11d,%ebx - - andl $0xfefefefe,%r8d - andl $0xfefefefe,%r9d - andl $0x1b1b1b1b,%esi - andl $0x1b1b1b1b,%edi - movl %ecx,%r12d - movl %edx,%ebp - xorl %esi,%r8d - xorl %edi,%r9d - - rorl $16,%r12d - xorl %r8d,%ecx - rorl $16,%ebp - xorl %r9d,%edx - roll $24,%ecx - movl 0(%r14),%esi - roll $24,%edx - xorl %r8d,%ecx - movl 64(%r14),%edi - xorl %r9d,%edx - movl 128(%r14),%r8d - xorl %r12d,%ecx - rorl $8,%r12d - xorl %ebp,%edx - rorl $8,%ebp - xorl %r12d,%ecx - movl 192(%r14),%r9d - xorl %ebp,%edx - jmp L$enc_loop_compact -.p2align 4 -L$enc_compact_done: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx -.byte 0xf3,0xc3 - - -.p2align 4 -.globl _aes_nohw_encrypt -.private_extern _aes_nohw_encrypt - -.private_extern _aes_nohw_encrypt -_aes_nohw_encrypt: - - movq %rsp,%rax - - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - - - - leaq -63(%rdx),%rcx - andq $-64,%rsp - subq %rsp,%rcx - negq %rcx - andq $0x3c0,%rcx - subq %rcx,%rsp - subq $32,%rsp - - movq %rsi,16(%rsp) - movq %rax,24(%rsp) - -L$enc_prologue: - - movq %rdx,%r15 - movl 240(%r15),%r13d - - movl 0(%rdi),%eax - movl 4(%rdi),%ebx - movl 8(%rdi),%ecx - movl 12(%rdi),%edx - - shll $4,%r13d - leaq (%r15,%r13,1),%rbp - movq %r15,(%rsp) - movq %rbp,8(%rsp) - - - leaq L$AES_Te+2048(%rip),%r14 - leaq 768(%rsp),%rbp - subq %r14,%rbp - andq $0x300,%rbp - leaq (%r14,%rbp,1),%r14 - - call _x86_64_AES_encrypt_compact - - movq 16(%rsp),%r9 - movq 24(%rsp),%rsi - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - movq -48(%rsi),%r15 - - movq -40(%rsi),%r14 - - movq -32(%rsi),%r13 - - movq -24(%rsi),%r12 - - movq -16(%rsi),%rbp - - movq -8(%rsi),%rbx - - leaq (%rsi),%rsp - -L$enc_epilogue: - .byte 0xf3,0xc3 - - - -.p2align 4 -_x86_64_AES_decrypt: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - - movl 240(%r15),%r13d - subl $1,%r13d - jmp L$dec_loop -.p2align 4 -L$dec_loop: - - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movl 0(%r14,%rsi,8),%r10d - movl 0(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r12d - - movzbl %dh,%esi - movzbl %ah,%edi - movzbl %dl,%ebp - xorl 3(%r14,%rsi,8),%r10d - xorl 3(%r14,%rdi,8),%r11d - movl 0(%r14,%rbp,8),%r8d - - movzbl %bh,%esi - shrl $16,%eax - movzbl %ch,%ebp - xorl 3(%r14,%rsi,8),%r12d - shrl $16,%edx - xorl 3(%r14,%rbp,8),%r8d - - shrl $16,%ebx - leaq 16(%r15),%r15 - shrl $16,%ecx - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - xorl 2(%r14,%rsi,8),%r10d - xorl 2(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r12d - - movzbl %bh,%esi - movzbl %ch,%edi - movzbl %bl,%ebp - xorl 1(%r14,%rsi,8),%r10d - xorl 1(%r14,%rdi,8),%r11d - xorl 2(%r14,%rbp,8),%r8d - - movzbl %dh,%esi - movl 12(%r15),%edx - movzbl %ah,%ebp - xorl 1(%r14,%rsi,8),%r12d - movl 0(%r15),%eax - xorl 1(%r14,%rbp,8),%r8d - - xorl %r10d,%eax - movl 4(%r15),%ebx - movl 8(%r15),%ecx - xorl %r12d,%ecx - xorl %r11d,%ebx - xorl %r8d,%edx - subl $1,%r13d - jnz L$dec_loop - leaq 2048(%r14),%r14 - movzbl %al,%esi - movzbl %bl,%edi - movzbl %cl,%ebp - movzbl (%r14,%rsi,1),%r10d - movzbl (%r14,%rdi,1),%r11d - movzbl (%r14,%rbp,1),%r12d - - movzbl %dl,%esi - movzbl %dh,%edi - movzbl %ah,%ebp - movzbl (%r14,%rsi,1),%r8d - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rbp,1),%ebp - - shll $8,%edi - shll $8,%ebp - - xorl %edi,%r10d - xorl %ebp,%r11d - shrl $16,%edx - - movzbl %bh,%esi - movzbl %ch,%edi - shrl $16,%eax - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - - shll $8,%esi - shll $8,%edi - shrl $16,%ebx - xorl %esi,%r12d - xorl %edi,%r8d - shrl $16,%ecx - - movzbl %cl,%esi - movzbl %dl,%edi - movzbl %al,%ebp - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rbp,1),%ebp - - shll $16,%esi - shll $16,%edi - shll $16,%ebp - - xorl %esi,%r10d - xorl %edi,%r11d - xorl %ebp,%r12d - - movzbl %bl,%esi - movzbl %bh,%edi - movzbl %ch,%ebp - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movzbl (%r14,%rbp,1),%ebp - - shll $16,%esi - shll $24,%edi - shll $24,%ebp - - xorl %esi,%r8d - xorl %edi,%r10d - xorl %ebp,%r11d - - movzbl %dh,%esi - movzbl %ah,%edi - movl 16+12(%r15),%edx - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%edi - movl 16+0(%r15),%eax - - shll $24,%esi - shll $24,%edi - - xorl %esi,%r12d - xorl %edi,%r8d - - movl 16+4(%r15),%ebx - movl 16+8(%r15),%ecx - leaq -2048(%r14),%r14 - xorl %r10d,%eax - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx -.byte 0xf3,0xc3 - - -.p2align 4 -_x86_64_AES_decrypt_compact: - - leaq 128(%r14),%r8 - movl 0-128(%r8),%edi - movl 32-128(%r8),%ebp - movl 64-128(%r8),%r10d - movl 96-128(%r8),%r11d - movl 128-128(%r8),%edi - movl 160-128(%r8),%ebp - movl 192-128(%r8),%r10d - movl 224-128(%r8),%r11d - jmp L$dec_loop_compact - -.p2align 4 -L$dec_loop_compact: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx - leaq 16(%r15),%r15 - movzbl %al,%r10d - movzbl %bl,%r11d - movzbl %cl,%r12d - movzbl %dl,%r8d - movzbl %dh,%esi - movzbl %ah,%edi - shrl $16,%edx - movzbl %bh,%ebp - movzbl (%r14,%r10,1),%r10d - movzbl (%r14,%r11,1),%r11d - movzbl (%r14,%r12,1),%r12d - movzbl (%r14,%r8,1),%r8d - - movzbl (%r14,%rsi,1),%r9d - movzbl %ch,%esi - movzbl (%r14,%rdi,1),%r13d - movzbl (%r14,%rbp,1),%ebp - movzbl (%r14,%rsi,1),%esi - - shrl $16,%ecx - shll $8,%r13d - shll $8,%r9d - movzbl %cl,%edi - shrl $16,%eax - xorl %r9d,%r10d - shrl $16,%ebx - movzbl %dl,%r9d - - shll $8,%ebp - xorl %r13d,%r11d - shll $8,%esi - movzbl %al,%r13d - movzbl (%r14,%rdi,1),%edi - xorl %ebp,%r12d - movzbl %bl,%ebp - - shll $16,%edi - xorl %esi,%r8d - movzbl (%r14,%r9,1),%r9d - movzbl %bh,%esi - movzbl (%r14,%rbp,1),%ebp - xorl %edi,%r10d - movzbl (%r14,%r13,1),%r13d - movzbl %ch,%edi - - shll $16,%ebp - shll $16,%r9d - shll $16,%r13d - xorl %ebp,%r8d - movzbl %dh,%ebp - xorl %r9d,%r11d - shrl $8,%eax - xorl %r13d,%r12d - - movzbl (%r14,%rsi,1),%esi - movzbl (%r14,%rdi,1),%ebx - movzbl (%r14,%rbp,1),%ecx - movzbl (%r14,%rax,1),%edx - - movl %r10d,%eax - shll $24,%esi - shll $24,%ebx - shll $24,%ecx - xorl %esi,%eax - shll $24,%edx - xorl %r11d,%ebx - xorl %r12d,%ecx - xorl %r8d,%edx - cmpq 16(%rsp),%r15 - je L$dec_compact_done - - movq 256+0(%r14),%rsi - shlq $32,%rbx - shlq $32,%rdx - movq 256+8(%r14),%rdi - orq %rbx,%rax - orq %rdx,%rcx - movq 256+16(%r14),%rbp - movq %rsi,%r9 - movq %rsi,%r12 - andq %rax,%r9 - andq %rcx,%r12 - movq %r9,%rbx - movq %r12,%rdx - shrq $7,%r9 - leaq (%rax,%rax,1),%r8 - shrq $7,%r12 - leaq (%rcx,%rcx,1),%r11 - subq %r9,%rbx - subq %r12,%rdx - andq %rdi,%r8 - andq %rdi,%r11 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r8 - xorq %rdx,%r11 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r8,%r10 - andq %r11,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - leaq (%r8,%r8,1),%r9 - shrq $7,%r13 - leaq (%r11,%r11,1),%r12 - subq %r10,%rbx - subq %r13,%rdx - andq %rdi,%r9 - andq %rdi,%r12 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r9 - xorq %rdx,%r12 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r9,%r10 - andq %r12,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - xorq %rax,%r8 - shrq $7,%r13 - xorq %rcx,%r11 - subq %r10,%rbx - subq %r13,%rdx - leaq (%r9,%r9,1),%r10 - leaq (%r12,%r12,1),%r13 - xorq %rax,%r9 - xorq %rcx,%r12 - andq %rdi,%r10 - andq %rdi,%r13 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r10 - xorq %rdx,%r13 - - xorq %r10,%rax - xorq %r13,%rcx - xorq %r10,%r8 - xorq %r13,%r11 - movq %rax,%rbx - movq %rcx,%rdx - xorq %r10,%r9 - shrq $32,%rbx - xorq %r13,%r12 - shrq $32,%rdx - xorq %r8,%r10 - roll $8,%eax - xorq %r11,%r13 - roll $8,%ecx - xorq %r9,%r10 - roll $8,%ebx - xorq %r12,%r13 - - roll $8,%edx - xorl %r10d,%eax - shrq $32,%r10 - xorl %r13d,%ecx - shrq $32,%r13 - xorl %r10d,%ebx - xorl %r13d,%edx - - movq %r8,%r10 - roll $24,%r8d - movq %r11,%r13 - roll $24,%r11d - shrq $32,%r10 - xorl %r8d,%eax - shrq $32,%r13 - xorl %r11d,%ecx - roll $24,%r10d - movq %r9,%r8 - roll $24,%r13d - movq %r12,%r11 - shrq $32,%r8 - xorl %r10d,%ebx - shrq $32,%r11 - xorl %r13d,%edx - - movq 0(%r14),%rsi - roll $16,%r9d - movq 64(%r14),%rdi - roll $16,%r12d - movq 128(%r14),%rbp - roll $16,%r8d - movq 192(%r14),%r10 - xorl %r9d,%eax - roll $16,%r11d - xorl %r12d,%ecx - movq 256(%r14),%r13 - xorl %r8d,%ebx - xorl %r11d,%edx - jmp L$dec_loop_compact -.p2align 4 -L$dec_compact_done: - xorl 0(%r15),%eax - xorl 4(%r15),%ebx - xorl 8(%r15),%ecx - xorl 12(%r15),%edx -.byte 0xf3,0xc3 - - -.p2align 4 -.globl _aes_nohw_decrypt -.private_extern _aes_nohw_decrypt - -.private_extern _aes_nohw_decrypt -_aes_nohw_decrypt: - - movq %rsp,%rax - - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - - - - leaq -63(%rdx),%rcx - andq $-64,%rsp - subq %rsp,%rcx - negq %rcx - andq $0x3c0,%rcx - subq %rcx,%rsp - subq $32,%rsp - - movq %rsi,16(%rsp) - movq %rax,24(%rsp) - -L$dec_prologue: - - movq %rdx,%r15 - movl 240(%r15),%r13d - - movl 0(%rdi),%eax - movl 4(%rdi),%ebx - movl 8(%rdi),%ecx - movl 12(%rdi),%edx - - shll $4,%r13d - leaq (%r15,%r13,1),%rbp - movq %r15,(%rsp) - movq %rbp,8(%rsp) - - - leaq L$AES_Td+2048(%rip),%r14 - leaq 768(%rsp),%rbp - subq %r14,%rbp - andq $0x300,%rbp - leaq (%r14,%rbp,1),%r14 - shrq $3,%rbp - addq %rbp,%r14 - - call _x86_64_AES_decrypt_compact - - movq 16(%rsp),%r9 - movq 24(%rsp),%rsi - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - movq -48(%rsi),%r15 - - movq -40(%rsi),%r14 - - movq -32(%rsi),%r13 - - movq -24(%rsi),%r12 - - movq -16(%rsi),%rbp - - movq -8(%rsi),%rbx - - leaq (%rsi),%rsp - -L$dec_epilogue: - .byte 0xf3,0xc3 - - -.p2align 4 -.globl _aes_nohw_set_encrypt_key -.private_extern _aes_nohw_set_encrypt_key - -_aes_nohw_set_encrypt_key: - - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - - subq $8,%rsp - -L$enc_key_prologue: - - call _x86_64_AES_set_encrypt_key - - movq 40(%rsp),%rbp - - movq 48(%rsp),%rbx - - addq $56,%rsp - -L$enc_key_epilogue: - .byte 0xf3,0xc3 - - - - -.p2align 4 -_x86_64_AES_set_encrypt_key: - - movl %esi,%ecx - movq %rdi,%rsi - movq %rdx,%rdi - - testq $-1,%rsi - jz L$badpointer - testq $-1,%rdi - jz L$badpointer - - leaq L$AES_Te(%rip),%rbp - leaq 2048+128(%rbp),%rbp - - - movl 0-128(%rbp),%eax - movl 32-128(%rbp),%ebx - movl 64-128(%rbp),%r8d - movl 96-128(%rbp),%edx - movl 128-128(%rbp),%eax - movl 160-128(%rbp),%ebx - movl 192-128(%rbp),%r8d - movl 224-128(%rbp),%edx - - cmpl $128,%ecx - je L$10rounds - cmpl $192,%ecx - je L$12rounds - cmpl $256,%ecx - je L$14rounds - movq $-2,%rax - jmp L$exit - -L$10rounds: - movq 0(%rsi),%rax - movq 8(%rsi),%rdx - movq %rax,0(%rdi) - movq %rdx,8(%rdi) - - shrq $32,%rdx - xorl %ecx,%ecx - jmp L$10shortcut -.p2align 2 -L$10loop: - movl 0(%rdi),%eax - movl 12(%rdi),%edx -L$10shortcut: - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - - xorl 1024-128(%rbp,%rcx,4),%eax - movl %eax,16(%rdi) - xorl 4(%rdi),%eax - movl %eax,20(%rdi) - xorl 8(%rdi),%eax - movl %eax,24(%rdi) - xorl 12(%rdi),%eax - movl %eax,28(%rdi) - addl $1,%ecx - leaq 16(%rdi),%rdi - cmpl $10,%ecx - jl L$10loop - - movl $10,80(%rdi) - xorq %rax,%rax - jmp L$exit - -L$12rounds: - movq 0(%rsi),%rax - movq 8(%rsi),%rbx - movq 16(%rsi),%rdx - movq %rax,0(%rdi) - movq %rbx,8(%rdi) - movq %rdx,16(%rdi) - - shrq $32,%rdx - xorl %ecx,%ecx - jmp L$12shortcut -.p2align 2 -L$12loop: - movl 0(%rdi),%eax - movl 20(%rdi),%edx -L$12shortcut: - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - - xorl 1024-128(%rbp,%rcx,4),%eax - movl %eax,24(%rdi) - xorl 4(%rdi),%eax - movl %eax,28(%rdi) - xorl 8(%rdi),%eax - movl %eax,32(%rdi) - xorl 12(%rdi),%eax - movl %eax,36(%rdi) - - cmpl $7,%ecx - je L$12break - addl $1,%ecx - - xorl 16(%rdi),%eax - movl %eax,40(%rdi) - xorl 20(%rdi),%eax - movl %eax,44(%rdi) - - leaq 24(%rdi),%rdi - jmp L$12loop -L$12break: - movl $12,72(%rdi) - xorq %rax,%rax - jmp L$exit - -L$14rounds: - movq 0(%rsi),%rax - movq 8(%rsi),%rbx - movq 16(%rsi),%rcx - movq 24(%rsi),%rdx - movq %rax,0(%rdi) - movq %rbx,8(%rdi) - movq %rcx,16(%rdi) - movq %rdx,24(%rdi) - - shrq $32,%rdx - xorl %ecx,%ecx - jmp L$14shortcut -.p2align 2 -L$14loop: - movl 0(%rdi),%eax - movl 28(%rdi),%edx -L$14shortcut: - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $24,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $8,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $16,%ebx - xorl %ebx,%eax - - xorl 1024-128(%rbp,%rcx,4),%eax - movl %eax,32(%rdi) - xorl 4(%rdi),%eax - movl %eax,36(%rdi) - xorl 8(%rdi),%eax - movl %eax,40(%rdi) - xorl 12(%rdi),%eax - movl %eax,44(%rdi) - - cmpl $6,%ecx - je L$14break - addl $1,%ecx - - movl %eax,%edx - movl 16(%rdi),%eax - movzbl %dl,%esi - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shrl $16,%edx - shll $8,%ebx - movzbl %dl,%esi - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - movzbl %dh,%esi - shll $16,%ebx - xorl %ebx,%eax - - movzbl -128(%rbp,%rsi,1),%ebx - shll $24,%ebx - xorl %ebx,%eax - - movl %eax,48(%rdi) - xorl 20(%rdi),%eax - movl %eax,52(%rdi) - xorl 24(%rdi),%eax - movl %eax,56(%rdi) - xorl 28(%rdi),%eax - movl %eax,60(%rdi) - - leaq 32(%rdi),%rdi - jmp L$14loop -L$14break: - movl $14,48(%rdi) - xorq %rax,%rax - jmp L$exit - -L$badpointer: - movq $-1,%rax -L$exit: -.byte 0xf3,0xc3 - - -.p2align 4 -.globl _aes_nohw_set_decrypt_key -.private_extern _aes_nohw_set_decrypt_key - -_aes_nohw_set_decrypt_key: - - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - - pushq %rdx - -L$dec_key_prologue: - - call _x86_64_AES_set_encrypt_key - movq (%rsp),%r8 - cmpl $0,%eax - jne L$abort - - movl 240(%r8),%r14d - xorq %rdi,%rdi - leaq (%rdi,%r14,4),%rcx - movq %r8,%rsi - leaq (%r8,%rcx,4),%rdi -.p2align 2 -L$invert: - movq 0(%rsi),%rax - movq 8(%rsi),%rbx - movq 0(%rdi),%rcx - movq 8(%rdi),%rdx - movq %rax,0(%rdi) - movq %rbx,8(%rdi) - movq %rcx,0(%rsi) - movq %rdx,8(%rsi) - leaq 16(%rsi),%rsi - leaq -16(%rdi),%rdi - cmpq %rsi,%rdi - jne L$invert - - leaq L$AES_Te+2048+1024(%rip),%rax - - movq 40(%rax),%rsi - movq 48(%rax),%rdi - movq 56(%rax),%rbp - - movq %r8,%r15 - subl $1,%r14d -.p2align 2 -L$permute: - leaq 16(%r15),%r15 - movq 0(%r15),%rax - movq 8(%r15),%rcx - movq %rsi,%r9 - movq %rsi,%r12 - andq %rax,%r9 - andq %rcx,%r12 - movq %r9,%rbx - movq %r12,%rdx - shrq $7,%r9 - leaq (%rax,%rax,1),%r8 - shrq $7,%r12 - leaq (%rcx,%rcx,1),%r11 - subq %r9,%rbx - subq %r12,%rdx - andq %rdi,%r8 - andq %rdi,%r11 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r8 - xorq %rdx,%r11 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r8,%r10 - andq %r11,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - leaq (%r8,%r8,1),%r9 - shrq $7,%r13 - leaq (%r11,%r11,1),%r12 - subq %r10,%rbx - subq %r13,%rdx - andq %rdi,%r9 - andq %rdi,%r12 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r9 - xorq %rdx,%r12 - movq %rsi,%r10 - movq %rsi,%r13 - - andq %r9,%r10 - andq %r12,%r13 - movq %r10,%rbx - movq %r13,%rdx - shrq $7,%r10 - xorq %rax,%r8 - shrq $7,%r13 - xorq %rcx,%r11 - subq %r10,%rbx - subq %r13,%rdx - leaq (%r9,%r9,1),%r10 - leaq (%r12,%r12,1),%r13 - xorq %rax,%r9 - xorq %rcx,%r12 - andq %rdi,%r10 - andq %rdi,%r13 - andq %rbp,%rbx - andq %rbp,%rdx - xorq %rbx,%r10 - xorq %rdx,%r13 - - xorq %r10,%rax - xorq %r13,%rcx - xorq %r10,%r8 - xorq %r13,%r11 - movq %rax,%rbx - movq %rcx,%rdx - xorq %r10,%r9 - shrq $32,%rbx - xorq %r13,%r12 - shrq $32,%rdx - xorq %r8,%r10 - roll $8,%eax - xorq %r11,%r13 - roll $8,%ecx - xorq %r9,%r10 - roll $8,%ebx - xorq %r12,%r13 - - roll $8,%edx - xorl %r10d,%eax - shrq $32,%r10 - xorl %r13d,%ecx - shrq $32,%r13 - xorl %r10d,%ebx - xorl %r13d,%edx - - movq %r8,%r10 - roll $24,%r8d - movq %r11,%r13 - roll $24,%r11d - shrq $32,%r10 - xorl %r8d,%eax - shrq $32,%r13 - xorl %r11d,%ecx - roll $24,%r10d - movq %r9,%r8 - roll $24,%r13d - movq %r12,%r11 - shrq $32,%r8 - xorl %r10d,%ebx - shrq $32,%r11 - xorl %r13d,%edx - - - roll $16,%r9d - - roll $16,%r12d - - roll $16,%r8d - - xorl %r9d,%eax - roll $16,%r11d - xorl %r12d,%ecx - - xorl %r8d,%ebx - xorl %r11d,%edx - movl %eax,0(%r15) - movl %ebx,4(%r15) - movl %ecx,8(%r15) - movl %edx,12(%r15) - subl $1,%r14d - jnz L$permute - - xorq %rax,%rax -L$abort: - movq 8(%rsp),%r15 - - movq 16(%rsp),%r14 - - movq 24(%rsp),%r13 - - movq 32(%rsp),%r12 - - movq 40(%rsp),%rbp - - movq 48(%rsp),%rbx - - addq $56,%rsp - -L$dec_key_epilogue: - .byte 0xf3,0xc3 - - -.p2align 4 -.globl _aes_nohw_cbc_encrypt -.private_extern _aes_nohw_cbc_encrypt - - -.private_extern _aes_nohw_cbc_encrypt -_aes_nohw_cbc_encrypt: - - cmpq $0,%rdx - je L$cbc_epilogue - pushfq - - - - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - -L$cbc_prologue: - - cld - movl %r9d,%r9d - - leaq L$AES_Te(%rip),%r14 - leaq L$AES_Td(%rip),%r10 - cmpq $0,%r9 - cmoveq %r10,%r14 - - - leaq _OPENSSL_ia32cap_P(%rip),%r10 - movl (%r10),%r10d - cmpq $512,%rdx - jb L$cbc_slow_prologue - testq $15,%rdx - jnz L$cbc_slow_prologue - btl $28,%r10d - jc L$cbc_slow_prologue - - - leaq -88-248(%rsp),%r15 - andq $-64,%r15 - - - movq %r14,%r10 - leaq 2304(%r14),%r11 - movq %r15,%r12 - andq $0xFFF,%r10 - andq $0xFFF,%r11 - andq $0xFFF,%r12 - - cmpq %r11,%r12 - jb L$cbc_te_break_out - subq %r11,%r12 - subq %r12,%r15 - jmp L$cbc_te_ok -L$cbc_te_break_out: - subq %r10,%r12 - andq $0xFFF,%r12 - addq $320,%r12 - subq %r12,%r15 -.p2align 2 -L$cbc_te_ok: - - xchgq %rsp,%r15 - - - movq %r15,16(%rsp) - -L$cbc_fast_body: - movq %rdi,24(%rsp) - movq %rsi,32(%rsp) - movq %rdx,40(%rsp) - movq %rcx,48(%rsp) - movq %r8,56(%rsp) - movl $0,80+240(%rsp) - movq %r8,%rbp - movq %r9,%rbx - movq %rsi,%r9 - movq %rdi,%r8 - movq %rcx,%r15 - - movl 240(%r15),%eax - - movq %r15,%r10 - subq %r14,%r10 - andq $0xfff,%r10 - cmpq $2304,%r10 - jb L$cbc_do_ecopy - cmpq $4096-248,%r10 - jb L$cbc_skip_ecopy -.p2align 2 -L$cbc_do_ecopy: - movq %r15,%rsi - leaq 80(%rsp),%rdi - leaq 80(%rsp),%r15 - movl $30,%ecx -.long 0x90A548F3 - movl %eax,(%rdi) -L$cbc_skip_ecopy: - movq %r15,0(%rsp) - - movl $18,%ecx -.p2align 2 -L$cbc_prefetch_te: - movq 0(%r14),%r10 - movq 32(%r14),%r11 - movq 64(%r14),%r12 - movq 96(%r14),%r13 - leaq 128(%r14),%r14 - subl $1,%ecx - jnz L$cbc_prefetch_te - leaq -2304(%r14),%r14 - - cmpq $0,%rbx - je L$FAST_DECRYPT - - - movl 0(%rbp),%eax - movl 4(%rbp),%ebx - movl 8(%rbp),%ecx - movl 12(%rbp),%edx - -.p2align 2 -L$cbc_fast_enc_loop: - xorl 0(%r8),%eax - xorl 4(%r8),%ebx - xorl 8(%r8),%ecx - xorl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - - call _x86_64_AES_encrypt - - movq 24(%rsp),%r8 - movq 40(%rsp),%r10 - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - subq $16,%r10 - testq $-16,%r10 - movq %r10,40(%rsp) - jnz L$cbc_fast_enc_loop - movq 56(%rsp),%rbp - movl %eax,0(%rbp) - movl %ebx,4(%rbp) - movl %ecx,8(%rbp) - movl %edx,12(%rbp) - - jmp L$cbc_fast_cleanup - - -.p2align 4 -L$FAST_DECRYPT: - cmpq %r8,%r9 - je L$cbc_fast_dec_in_place - - movq %rbp,64(%rsp) -.p2align 2 -L$cbc_fast_dec_loop: - movl 0(%r8),%eax - movl 4(%r8),%ebx - movl 8(%r8),%ecx - movl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - - call _x86_64_AES_decrypt - - movq 64(%rsp),%rbp - movq 24(%rsp),%r8 - movq 40(%rsp),%r10 - xorl 0(%rbp),%eax - xorl 4(%rbp),%ebx - xorl 8(%rbp),%ecx - xorl 12(%rbp),%edx - movq %r8,%rbp - - subq $16,%r10 - movq %r10,40(%rsp) - movq %rbp,64(%rsp) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - jnz L$cbc_fast_dec_loop - movq 56(%rsp),%r12 - movq 0(%rbp),%r10 - movq 8(%rbp),%r11 - movq %r10,0(%r12) - movq %r11,8(%r12) - jmp L$cbc_fast_cleanup - -.p2align 4 -L$cbc_fast_dec_in_place: - movq 0(%rbp),%r10 - movq 8(%rbp),%r11 - movq %r10,0+64(%rsp) - movq %r11,8+64(%rsp) -.p2align 2 -L$cbc_fast_dec_in_place_loop: - movl 0(%r8),%eax - movl 4(%r8),%ebx - movl 8(%r8),%ecx - movl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - - call _x86_64_AES_decrypt - - movq 24(%rsp),%r8 - movq 40(%rsp),%r10 - xorl 0+64(%rsp),%eax - xorl 4+64(%rsp),%ebx - xorl 8+64(%rsp),%ecx - xorl 12+64(%rsp),%edx - - movq 0(%r8),%r11 - movq 8(%r8),%r12 - subq $16,%r10 - jz L$cbc_fast_dec_in_place_done - - movq %r11,0+64(%rsp) - movq %r12,8+64(%rsp) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - movq %r10,40(%rsp) - jmp L$cbc_fast_dec_in_place_loop -L$cbc_fast_dec_in_place_done: - movq 56(%rsp),%rdi - movq %r11,0(%rdi) - movq %r12,8(%rdi) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - -.p2align 2 -L$cbc_fast_cleanup: - cmpl $0,80+240(%rsp) - leaq 80(%rsp),%rdi - je L$cbc_exit - movl $30,%ecx - xorq %rax,%rax -.long 0x90AB48F3 - - jmp L$cbc_exit - - -.p2align 4 -L$cbc_slow_prologue: - - - leaq -88(%rsp),%rbp - andq $-64,%rbp - - leaq -88-63(%rcx),%r10 - subq %rbp,%r10 - negq %r10 - andq $0x3c0,%r10 - subq %r10,%rbp - - xchgq %rsp,%rbp - - - movq %rbp,16(%rsp) - -L$cbc_slow_body: - - - - - movq %r8,56(%rsp) - movq %r8,%rbp - movq %r9,%rbx - movq %rsi,%r9 - movq %rdi,%r8 - movq %rcx,%r15 - movq %rdx,%r10 - - movl 240(%r15),%eax - movq %r15,0(%rsp) - shll $4,%eax - leaq (%r15,%rax,1),%rax - movq %rax,8(%rsp) - - - leaq 2048(%r14),%r14 - leaq 768-8(%rsp),%rax - subq %r14,%rax - andq $0x300,%rax - leaq (%r14,%rax,1),%r14 - - cmpq $0,%rbx - je L$SLOW_DECRYPT - - - testq $-16,%r10 - movl 0(%rbp),%eax - movl 4(%rbp),%ebx - movl 8(%rbp),%ecx - movl 12(%rbp),%edx - jz L$cbc_slow_enc_tail - -.p2align 2 -L$cbc_slow_enc_loop: - xorl 0(%r8),%eax - xorl 4(%r8),%ebx - xorl 8(%r8),%ecx - xorl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - movq %r9,32(%rsp) - movq %r10,40(%rsp) - - call _x86_64_AES_encrypt_compact - - movq 24(%rsp),%r8 - movq 32(%rsp),%r9 - movq 40(%rsp),%r10 - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - subq $16,%r10 - testq $-16,%r10 - jnz L$cbc_slow_enc_loop - testq $15,%r10 - jnz L$cbc_slow_enc_tail - movq 56(%rsp),%rbp - movl %eax,0(%rbp) - movl %ebx,4(%rbp) - movl %ecx,8(%rbp) - movl %edx,12(%rbp) - - jmp L$cbc_exit - -.p2align 2 -L$cbc_slow_enc_tail: - movq %rax,%r11 - movq %rcx,%r12 - movq %r10,%rcx - movq %r8,%rsi - movq %r9,%rdi -.long 0x9066A4F3 - movq $16,%rcx - subq %r10,%rcx - xorq %rax,%rax -.long 0x9066AAF3 - movq %r9,%r8 - movq $16,%r10 - movq %r11,%rax - movq %r12,%rcx - jmp L$cbc_slow_enc_loop - -.p2align 4 -L$SLOW_DECRYPT: - shrq $3,%rax - addq %rax,%r14 - - movq 0(%rbp),%r11 - movq 8(%rbp),%r12 - movq %r11,0+64(%rsp) - movq %r12,8+64(%rsp) - -.p2align 2 -L$cbc_slow_dec_loop: - movl 0(%r8),%eax - movl 4(%r8),%ebx - movl 8(%r8),%ecx - movl 12(%r8),%edx - movq 0(%rsp),%r15 - movq %r8,24(%rsp) - movq %r9,32(%rsp) - movq %r10,40(%rsp) - - call _x86_64_AES_decrypt_compact - - movq 24(%rsp),%r8 - movq 32(%rsp),%r9 - movq 40(%rsp),%r10 - xorl 0+64(%rsp),%eax - xorl 4+64(%rsp),%ebx - xorl 8+64(%rsp),%ecx - xorl 12+64(%rsp),%edx - - movq 0(%r8),%r11 - movq 8(%r8),%r12 - subq $16,%r10 - jc L$cbc_slow_dec_partial - jz L$cbc_slow_dec_done - - movq %r11,0+64(%rsp) - movq %r12,8+64(%rsp) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - leaq 16(%r8),%r8 - leaq 16(%r9),%r9 - jmp L$cbc_slow_dec_loop -L$cbc_slow_dec_done: - movq 56(%rsp),%rdi - movq %r11,0(%rdi) - movq %r12,8(%rdi) - - movl %eax,0(%r9) - movl %ebx,4(%r9) - movl %ecx,8(%r9) - movl %edx,12(%r9) - - jmp L$cbc_exit - -.p2align 2 -L$cbc_slow_dec_partial: - movq 56(%rsp),%rdi - movq %r11,0(%rdi) - movq %r12,8(%rdi) - - movl %eax,0+64(%rsp) - movl %ebx,4+64(%rsp) - movl %ecx,8+64(%rsp) - movl %edx,12+64(%rsp) - - movq %r9,%rdi - leaq 64(%rsp),%rsi - leaq 16(%r10),%rcx -.long 0x9066A4F3 - jmp L$cbc_exit - -.p2align 4 -L$cbc_exit: - movq 16(%rsp),%rsi - - movq (%rsi),%r15 - - movq 8(%rsi),%r14 - - movq 16(%rsi),%r13 - - movq 24(%rsi),%r12 - - movq 32(%rsi),%rbp - - movq 40(%rsi),%rbx - - leaq 48(%rsi),%rsp - -L$cbc_popfq: - popfq - - - -L$cbc_epilogue: - .byte 0xf3,0xc3 - - -.p2align 6 -L$AES_Te: -.long 0xa56363c6,0xa56363c6 -.long 0x847c7cf8,0x847c7cf8 -.long 0x997777ee,0x997777ee -.long 0x8d7b7bf6,0x8d7b7bf6 -.long 0x0df2f2ff,0x0df2f2ff -.long 0xbd6b6bd6,0xbd6b6bd6 -.long 0xb16f6fde,0xb16f6fde -.long 0x54c5c591,0x54c5c591 -.long 0x50303060,0x50303060 -.long 0x03010102,0x03010102 -.long 0xa96767ce,0xa96767ce -.long 0x7d2b2b56,0x7d2b2b56 -.long 0x19fefee7,0x19fefee7 -.long 0x62d7d7b5,0x62d7d7b5 -.long 0xe6abab4d,0xe6abab4d -.long 0x9a7676ec,0x9a7676ec -.long 0x45caca8f,0x45caca8f -.long 0x9d82821f,0x9d82821f -.long 0x40c9c989,0x40c9c989 -.long 0x877d7dfa,0x877d7dfa -.long 0x15fafaef,0x15fafaef -.long 0xeb5959b2,0xeb5959b2 -.long 0xc947478e,0xc947478e -.long 0x0bf0f0fb,0x0bf0f0fb -.long 0xecadad41,0xecadad41 -.long 0x67d4d4b3,0x67d4d4b3 -.long 0xfda2a25f,0xfda2a25f -.long 0xeaafaf45,0xeaafaf45 -.long 0xbf9c9c23,0xbf9c9c23 -.long 0xf7a4a453,0xf7a4a453 -.long 0x967272e4,0x967272e4 -.long 0x5bc0c09b,0x5bc0c09b -.long 0xc2b7b775,0xc2b7b775 -.long 0x1cfdfde1,0x1cfdfde1 -.long 0xae93933d,0xae93933d -.long 0x6a26264c,0x6a26264c -.long 0x5a36366c,0x5a36366c -.long 0x413f3f7e,0x413f3f7e -.long 0x02f7f7f5,0x02f7f7f5 -.long 0x4fcccc83,0x4fcccc83 -.long 0x5c343468,0x5c343468 -.long 0xf4a5a551,0xf4a5a551 -.long 0x34e5e5d1,0x34e5e5d1 -.long 0x08f1f1f9,0x08f1f1f9 -.long 0x937171e2,0x937171e2 -.long 0x73d8d8ab,0x73d8d8ab -.long 0x53313162,0x53313162 -.long 0x3f15152a,0x3f15152a -.long 0x0c040408,0x0c040408 -.long 0x52c7c795,0x52c7c795 -.long 0x65232346,0x65232346 -.long 0x5ec3c39d,0x5ec3c39d -.long 0x28181830,0x28181830 -.long 0xa1969637,0xa1969637 -.long 0x0f05050a,0x0f05050a -.long 0xb59a9a2f,0xb59a9a2f -.long 0x0907070e,0x0907070e -.long 0x36121224,0x36121224 -.long 0x9b80801b,0x9b80801b -.long 0x3de2e2df,0x3de2e2df -.long 0x26ebebcd,0x26ebebcd -.long 0x6927274e,0x6927274e -.long 0xcdb2b27f,0xcdb2b27f -.long 0x9f7575ea,0x9f7575ea -.long 0x1b090912,0x1b090912 -.long 0x9e83831d,0x9e83831d -.long 0x742c2c58,0x742c2c58 -.long 0x2e1a1a34,0x2e1a1a34 -.long 0x2d1b1b36,0x2d1b1b36 -.long 0xb26e6edc,0xb26e6edc -.long 0xee5a5ab4,0xee5a5ab4 -.long 0xfba0a05b,0xfba0a05b -.long 0xf65252a4,0xf65252a4 -.long 0x4d3b3b76,0x4d3b3b76 -.long 0x61d6d6b7,0x61d6d6b7 -.long 0xceb3b37d,0xceb3b37d -.long 0x7b292952,0x7b292952 -.long 0x3ee3e3dd,0x3ee3e3dd -.long 0x712f2f5e,0x712f2f5e -.long 0x97848413,0x97848413 -.long 0xf55353a6,0xf55353a6 -.long 0x68d1d1b9,0x68d1d1b9 -.long 0x00000000,0x00000000 -.long 0x2cededc1,0x2cededc1 -.long 0x60202040,0x60202040 -.long 0x1ffcfce3,0x1ffcfce3 -.long 0xc8b1b179,0xc8b1b179 -.long 0xed5b5bb6,0xed5b5bb6 -.long 0xbe6a6ad4,0xbe6a6ad4 -.long 0x46cbcb8d,0x46cbcb8d -.long 0xd9bebe67,0xd9bebe67 -.long 0x4b393972,0x4b393972 -.long 0xde4a4a94,0xde4a4a94 -.long 0xd44c4c98,0xd44c4c98 -.long 0xe85858b0,0xe85858b0 -.long 0x4acfcf85,0x4acfcf85 -.long 0x6bd0d0bb,0x6bd0d0bb -.long 0x2aefefc5,0x2aefefc5 -.long 0xe5aaaa4f,0xe5aaaa4f -.long 0x16fbfbed,0x16fbfbed -.long 0xc5434386,0xc5434386 -.long 0xd74d4d9a,0xd74d4d9a -.long 0x55333366,0x55333366 -.long 0x94858511,0x94858511 -.long 0xcf45458a,0xcf45458a -.long 0x10f9f9e9,0x10f9f9e9 -.long 0x06020204,0x06020204 -.long 0x817f7ffe,0x817f7ffe -.long 0xf05050a0,0xf05050a0 -.long 0x443c3c78,0x443c3c78 -.long 0xba9f9f25,0xba9f9f25 -.long 0xe3a8a84b,0xe3a8a84b -.long 0xf35151a2,0xf35151a2 -.long 0xfea3a35d,0xfea3a35d -.long 0xc0404080,0xc0404080 -.long 0x8a8f8f05,0x8a8f8f05 -.long 0xad92923f,0xad92923f -.long 0xbc9d9d21,0xbc9d9d21 -.long 0x48383870,0x48383870 -.long 0x04f5f5f1,0x04f5f5f1 -.long 0xdfbcbc63,0xdfbcbc63 -.long 0xc1b6b677,0xc1b6b677 -.long 0x75dadaaf,0x75dadaaf -.long 0x63212142,0x63212142 -.long 0x30101020,0x30101020 -.long 0x1affffe5,0x1affffe5 -.long 0x0ef3f3fd,0x0ef3f3fd -.long 0x6dd2d2bf,0x6dd2d2bf -.long 0x4ccdcd81,0x4ccdcd81 -.long 0x140c0c18,0x140c0c18 -.long 0x35131326,0x35131326 -.long 0x2fececc3,0x2fececc3 -.long 0xe15f5fbe,0xe15f5fbe -.long 0xa2979735,0xa2979735 -.long 0xcc444488,0xcc444488 -.long 0x3917172e,0x3917172e -.long 0x57c4c493,0x57c4c493 -.long 0xf2a7a755,0xf2a7a755 -.long 0x827e7efc,0x827e7efc -.long 0x473d3d7a,0x473d3d7a -.long 0xac6464c8,0xac6464c8 -.long 0xe75d5dba,0xe75d5dba -.long 0x2b191932,0x2b191932 -.long 0x957373e6,0x957373e6 -.long 0xa06060c0,0xa06060c0 -.long 0x98818119,0x98818119 -.long 0xd14f4f9e,0xd14f4f9e -.long 0x7fdcdca3,0x7fdcdca3 -.long 0x66222244,0x66222244 -.long 0x7e2a2a54,0x7e2a2a54 -.long 0xab90903b,0xab90903b -.long 0x8388880b,0x8388880b -.long 0xca46468c,0xca46468c -.long 0x29eeeec7,0x29eeeec7 -.long 0xd3b8b86b,0xd3b8b86b -.long 0x3c141428,0x3c141428 -.long 0x79dedea7,0x79dedea7 -.long 0xe25e5ebc,0xe25e5ebc -.long 0x1d0b0b16,0x1d0b0b16 -.long 0x76dbdbad,0x76dbdbad -.long 0x3be0e0db,0x3be0e0db -.long 0x56323264,0x56323264 -.long 0x4e3a3a74,0x4e3a3a74 -.long 0x1e0a0a14,0x1e0a0a14 -.long 0xdb494992,0xdb494992 -.long 0x0a06060c,0x0a06060c -.long 0x6c242448,0x6c242448 -.long 0xe45c5cb8,0xe45c5cb8 -.long 0x5dc2c29f,0x5dc2c29f -.long 0x6ed3d3bd,0x6ed3d3bd -.long 0xefacac43,0xefacac43 -.long 0xa66262c4,0xa66262c4 -.long 0xa8919139,0xa8919139 -.long 0xa4959531,0xa4959531 -.long 0x37e4e4d3,0x37e4e4d3 -.long 0x8b7979f2,0x8b7979f2 -.long 0x32e7e7d5,0x32e7e7d5 -.long 0x43c8c88b,0x43c8c88b -.long 0x5937376e,0x5937376e -.long 0xb76d6dda,0xb76d6dda -.long 0x8c8d8d01,0x8c8d8d01 -.long 0x64d5d5b1,0x64d5d5b1 -.long 0xd24e4e9c,0xd24e4e9c -.long 0xe0a9a949,0xe0a9a949 -.long 0xb46c6cd8,0xb46c6cd8 -.long 0xfa5656ac,0xfa5656ac -.long 0x07f4f4f3,0x07f4f4f3 -.long 0x25eaeacf,0x25eaeacf -.long 0xaf6565ca,0xaf6565ca -.long 0x8e7a7af4,0x8e7a7af4 -.long 0xe9aeae47,0xe9aeae47 -.long 0x18080810,0x18080810 -.long 0xd5baba6f,0xd5baba6f -.long 0x887878f0,0x887878f0 -.long 0x6f25254a,0x6f25254a -.long 0x722e2e5c,0x722e2e5c -.long 0x241c1c38,0x241c1c38 -.long 0xf1a6a657,0xf1a6a657 -.long 0xc7b4b473,0xc7b4b473 -.long 0x51c6c697,0x51c6c697 -.long 0x23e8e8cb,0x23e8e8cb -.long 0x7cdddda1,0x7cdddda1 -.long 0x9c7474e8,0x9c7474e8 -.long 0x211f1f3e,0x211f1f3e -.long 0xdd4b4b96,0xdd4b4b96 -.long 0xdcbdbd61,0xdcbdbd61 -.long 0x868b8b0d,0x868b8b0d -.long 0x858a8a0f,0x858a8a0f -.long 0x907070e0,0x907070e0 -.long 0x423e3e7c,0x423e3e7c -.long 0xc4b5b571,0xc4b5b571 -.long 0xaa6666cc,0xaa6666cc -.long 0xd8484890,0xd8484890 -.long 0x05030306,0x05030306 -.long 0x01f6f6f7,0x01f6f6f7 -.long 0x120e0e1c,0x120e0e1c -.long 0xa36161c2,0xa36161c2 -.long 0x5f35356a,0x5f35356a -.long 0xf95757ae,0xf95757ae -.long 0xd0b9b969,0xd0b9b969 -.long 0x91868617,0x91868617 -.long 0x58c1c199,0x58c1c199 -.long 0x271d1d3a,0x271d1d3a -.long 0xb99e9e27,0xb99e9e27 -.long 0x38e1e1d9,0x38e1e1d9 -.long 0x13f8f8eb,0x13f8f8eb -.long 0xb398982b,0xb398982b -.long 0x33111122,0x33111122 -.long 0xbb6969d2,0xbb6969d2 -.long 0x70d9d9a9,0x70d9d9a9 -.long 0x898e8e07,0x898e8e07 -.long 0xa7949433,0xa7949433 -.long 0xb69b9b2d,0xb69b9b2d -.long 0x221e1e3c,0x221e1e3c -.long 0x92878715,0x92878715 -.long 0x20e9e9c9,0x20e9e9c9 -.long 0x49cece87,0x49cece87 -.long 0xff5555aa,0xff5555aa -.long 0x78282850,0x78282850 -.long 0x7adfdfa5,0x7adfdfa5 -.long 0x8f8c8c03,0x8f8c8c03 -.long 0xf8a1a159,0xf8a1a159 -.long 0x80898909,0x80898909 -.long 0x170d0d1a,0x170d0d1a -.long 0xdabfbf65,0xdabfbf65 -.long 0x31e6e6d7,0x31e6e6d7 -.long 0xc6424284,0xc6424284 -.long 0xb86868d0,0xb86868d0 -.long 0xc3414182,0xc3414182 -.long 0xb0999929,0xb0999929 -.long 0x772d2d5a,0x772d2d5a -.long 0x110f0f1e,0x110f0f1e -.long 0xcbb0b07b,0xcbb0b07b -.long 0xfc5454a8,0xfc5454a8 -.long 0xd6bbbb6d,0xd6bbbb6d -.long 0x3a16162c,0x3a16162c -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.byte 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -.byte 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -.byte 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -.byte 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -.byte 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -.byte 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -.byte 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -.byte 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -.byte 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -.byte 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -.byte 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -.byte 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -.byte 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -.byte 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -.byte 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -.byte 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -.byte 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -.byte 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -.byte 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -.byte 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -.byte 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -.byte 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -.byte 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -.byte 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -.byte 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -.byte 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -.byte 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -.byte 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -.byte 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -.byte 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -.byte 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -.byte 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -.long 0x00000001, 0x00000002, 0x00000004, 0x00000008 -.long 0x00000010, 0x00000020, 0x00000040, 0x00000080 -.long 0x0000001b, 0x00000036, 0x80808080, 0x80808080 -.long 0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b -.p2align 6 -L$AES_Td: -.long 0x50a7f451,0x50a7f451 -.long 0x5365417e,0x5365417e -.long 0xc3a4171a,0xc3a4171a -.long 0x965e273a,0x965e273a -.long 0xcb6bab3b,0xcb6bab3b -.long 0xf1459d1f,0xf1459d1f -.long 0xab58faac,0xab58faac -.long 0x9303e34b,0x9303e34b -.long 0x55fa3020,0x55fa3020 -.long 0xf66d76ad,0xf66d76ad -.long 0x9176cc88,0x9176cc88 -.long 0x254c02f5,0x254c02f5 -.long 0xfcd7e54f,0xfcd7e54f -.long 0xd7cb2ac5,0xd7cb2ac5 -.long 0x80443526,0x80443526 -.long 0x8fa362b5,0x8fa362b5 -.long 0x495ab1de,0x495ab1de -.long 0x671bba25,0x671bba25 -.long 0x980eea45,0x980eea45 -.long 0xe1c0fe5d,0xe1c0fe5d -.long 0x02752fc3,0x02752fc3 -.long 0x12f04c81,0x12f04c81 -.long 0xa397468d,0xa397468d -.long 0xc6f9d36b,0xc6f9d36b -.long 0xe75f8f03,0xe75f8f03 -.long 0x959c9215,0x959c9215 -.long 0xeb7a6dbf,0xeb7a6dbf -.long 0xda595295,0xda595295 -.long 0x2d83bed4,0x2d83bed4 -.long 0xd3217458,0xd3217458 -.long 0x2969e049,0x2969e049 -.long 0x44c8c98e,0x44c8c98e -.long 0x6a89c275,0x6a89c275 -.long 0x78798ef4,0x78798ef4 -.long 0x6b3e5899,0x6b3e5899 -.long 0xdd71b927,0xdd71b927 -.long 0xb64fe1be,0xb64fe1be -.long 0x17ad88f0,0x17ad88f0 -.long 0x66ac20c9,0x66ac20c9 -.long 0xb43ace7d,0xb43ace7d -.long 0x184adf63,0x184adf63 -.long 0x82311ae5,0x82311ae5 -.long 0x60335197,0x60335197 -.long 0x457f5362,0x457f5362 -.long 0xe07764b1,0xe07764b1 -.long 0x84ae6bbb,0x84ae6bbb -.long 0x1ca081fe,0x1ca081fe -.long 0x942b08f9,0x942b08f9 -.long 0x58684870,0x58684870 -.long 0x19fd458f,0x19fd458f -.long 0x876cde94,0x876cde94 -.long 0xb7f87b52,0xb7f87b52 -.long 0x23d373ab,0x23d373ab -.long 0xe2024b72,0xe2024b72 -.long 0x578f1fe3,0x578f1fe3 -.long 0x2aab5566,0x2aab5566 -.long 0x0728ebb2,0x0728ebb2 -.long 0x03c2b52f,0x03c2b52f -.long 0x9a7bc586,0x9a7bc586 -.long 0xa50837d3,0xa50837d3 -.long 0xf2872830,0xf2872830 -.long 0xb2a5bf23,0xb2a5bf23 -.long 0xba6a0302,0xba6a0302 -.long 0x5c8216ed,0x5c8216ed -.long 0x2b1ccf8a,0x2b1ccf8a -.long 0x92b479a7,0x92b479a7 -.long 0xf0f207f3,0xf0f207f3 -.long 0xa1e2694e,0xa1e2694e -.long 0xcdf4da65,0xcdf4da65 -.long 0xd5be0506,0xd5be0506 -.long 0x1f6234d1,0x1f6234d1 -.long 0x8afea6c4,0x8afea6c4 -.long 0x9d532e34,0x9d532e34 -.long 0xa055f3a2,0xa055f3a2 -.long 0x32e18a05,0x32e18a05 -.long 0x75ebf6a4,0x75ebf6a4 -.long 0x39ec830b,0x39ec830b -.long 0xaaef6040,0xaaef6040 -.long 0x069f715e,0x069f715e -.long 0x51106ebd,0x51106ebd -.long 0xf98a213e,0xf98a213e -.long 0x3d06dd96,0x3d06dd96 -.long 0xae053edd,0xae053edd -.long 0x46bde64d,0x46bde64d -.long 0xb58d5491,0xb58d5491 -.long 0x055dc471,0x055dc471 -.long 0x6fd40604,0x6fd40604 -.long 0xff155060,0xff155060 -.long 0x24fb9819,0x24fb9819 -.long 0x97e9bdd6,0x97e9bdd6 -.long 0xcc434089,0xcc434089 -.long 0x779ed967,0x779ed967 -.long 0xbd42e8b0,0xbd42e8b0 -.long 0x888b8907,0x888b8907 -.long 0x385b19e7,0x385b19e7 -.long 0xdbeec879,0xdbeec879 -.long 0x470a7ca1,0x470a7ca1 -.long 0xe90f427c,0xe90f427c -.long 0xc91e84f8,0xc91e84f8 -.long 0x00000000,0x00000000 -.long 0x83868009,0x83868009 -.long 0x48ed2b32,0x48ed2b32 -.long 0xac70111e,0xac70111e -.long 0x4e725a6c,0x4e725a6c -.long 0xfbff0efd,0xfbff0efd -.long 0x5638850f,0x5638850f -.long 0x1ed5ae3d,0x1ed5ae3d -.long 0x27392d36,0x27392d36 -.long 0x64d90f0a,0x64d90f0a -.long 0x21a65c68,0x21a65c68 -.long 0xd1545b9b,0xd1545b9b -.long 0x3a2e3624,0x3a2e3624 -.long 0xb1670a0c,0xb1670a0c -.long 0x0fe75793,0x0fe75793 -.long 0xd296eeb4,0xd296eeb4 -.long 0x9e919b1b,0x9e919b1b -.long 0x4fc5c080,0x4fc5c080 -.long 0xa220dc61,0xa220dc61 -.long 0x694b775a,0x694b775a -.long 0x161a121c,0x161a121c -.long 0x0aba93e2,0x0aba93e2 -.long 0xe52aa0c0,0xe52aa0c0 -.long 0x43e0223c,0x43e0223c -.long 0x1d171b12,0x1d171b12 -.long 0x0b0d090e,0x0b0d090e -.long 0xadc78bf2,0xadc78bf2 -.long 0xb9a8b62d,0xb9a8b62d -.long 0xc8a91e14,0xc8a91e14 -.long 0x8519f157,0x8519f157 -.long 0x4c0775af,0x4c0775af -.long 0xbbdd99ee,0xbbdd99ee -.long 0xfd607fa3,0xfd607fa3 -.long 0x9f2601f7,0x9f2601f7 -.long 0xbcf5725c,0xbcf5725c -.long 0xc53b6644,0xc53b6644 -.long 0x347efb5b,0x347efb5b -.long 0x7629438b,0x7629438b -.long 0xdcc623cb,0xdcc623cb -.long 0x68fcedb6,0x68fcedb6 -.long 0x63f1e4b8,0x63f1e4b8 -.long 0xcadc31d7,0xcadc31d7 -.long 0x10856342,0x10856342 -.long 0x40229713,0x40229713 -.long 0x2011c684,0x2011c684 -.long 0x7d244a85,0x7d244a85 -.long 0xf83dbbd2,0xf83dbbd2 -.long 0x1132f9ae,0x1132f9ae -.long 0x6da129c7,0x6da129c7 -.long 0x4b2f9e1d,0x4b2f9e1d -.long 0xf330b2dc,0xf330b2dc -.long 0xec52860d,0xec52860d -.long 0xd0e3c177,0xd0e3c177 -.long 0x6c16b32b,0x6c16b32b -.long 0x99b970a9,0x99b970a9 -.long 0xfa489411,0xfa489411 -.long 0x2264e947,0x2264e947 -.long 0xc48cfca8,0xc48cfca8 -.long 0x1a3ff0a0,0x1a3ff0a0 -.long 0xd82c7d56,0xd82c7d56 -.long 0xef903322,0xef903322 -.long 0xc74e4987,0xc74e4987 -.long 0xc1d138d9,0xc1d138d9 -.long 0xfea2ca8c,0xfea2ca8c -.long 0x360bd498,0x360bd498 -.long 0xcf81f5a6,0xcf81f5a6 -.long 0x28de7aa5,0x28de7aa5 -.long 0x268eb7da,0x268eb7da -.long 0xa4bfad3f,0xa4bfad3f -.long 0xe49d3a2c,0xe49d3a2c -.long 0x0d927850,0x0d927850 -.long 0x9bcc5f6a,0x9bcc5f6a -.long 0x62467e54,0x62467e54 -.long 0xc2138df6,0xc2138df6 -.long 0xe8b8d890,0xe8b8d890 -.long 0x5ef7392e,0x5ef7392e -.long 0xf5afc382,0xf5afc382 -.long 0xbe805d9f,0xbe805d9f -.long 0x7c93d069,0x7c93d069 -.long 0xa92dd56f,0xa92dd56f -.long 0xb31225cf,0xb31225cf -.long 0x3b99acc8,0x3b99acc8 -.long 0xa77d1810,0xa77d1810 -.long 0x6e639ce8,0x6e639ce8 -.long 0x7bbb3bdb,0x7bbb3bdb -.long 0x097826cd,0x097826cd -.long 0xf418596e,0xf418596e -.long 0x01b79aec,0x01b79aec -.long 0xa89a4f83,0xa89a4f83 -.long 0x656e95e6,0x656e95e6 -.long 0x7ee6ffaa,0x7ee6ffaa -.long 0x08cfbc21,0x08cfbc21 -.long 0xe6e815ef,0xe6e815ef -.long 0xd99be7ba,0xd99be7ba -.long 0xce366f4a,0xce366f4a -.long 0xd4099fea,0xd4099fea -.long 0xd67cb029,0xd67cb029 -.long 0xafb2a431,0xafb2a431 -.long 0x31233f2a,0x31233f2a -.long 0x3094a5c6,0x3094a5c6 -.long 0xc066a235,0xc066a235 -.long 0x37bc4e74,0x37bc4e74 -.long 0xa6ca82fc,0xa6ca82fc -.long 0xb0d090e0,0xb0d090e0 -.long 0x15d8a733,0x15d8a733 -.long 0x4a9804f1,0x4a9804f1 -.long 0xf7daec41,0xf7daec41 -.long 0x0e50cd7f,0x0e50cd7f -.long 0x2ff69117,0x2ff69117 -.long 0x8dd64d76,0x8dd64d76 -.long 0x4db0ef43,0x4db0ef43 -.long 0x544daacc,0x544daacc -.long 0xdf0496e4,0xdf0496e4 -.long 0xe3b5d19e,0xe3b5d19e -.long 0x1b886a4c,0x1b886a4c -.long 0xb81f2cc1,0xb81f2cc1 -.long 0x7f516546,0x7f516546 -.long 0x04ea5e9d,0x04ea5e9d -.long 0x5d358c01,0x5d358c01 -.long 0x737487fa,0x737487fa -.long 0x2e410bfb,0x2e410bfb -.long 0x5a1d67b3,0x5a1d67b3 -.long 0x52d2db92,0x52d2db92 -.long 0x335610e9,0x335610e9 -.long 0x1347d66d,0x1347d66d -.long 0x8c61d79a,0x8c61d79a -.long 0x7a0ca137,0x7a0ca137 -.long 0x8e14f859,0x8e14f859 -.long 0x893c13eb,0x893c13eb -.long 0xee27a9ce,0xee27a9ce -.long 0x35c961b7,0x35c961b7 -.long 0xede51ce1,0xede51ce1 -.long 0x3cb1477a,0x3cb1477a -.long 0x59dfd29c,0x59dfd29c -.long 0x3f73f255,0x3f73f255 -.long 0x79ce1418,0x79ce1418 -.long 0xbf37c773,0xbf37c773 -.long 0xeacdf753,0xeacdf753 -.long 0x5baafd5f,0x5baafd5f -.long 0x146f3ddf,0x146f3ddf -.long 0x86db4478,0x86db4478 -.long 0x81f3afca,0x81f3afca -.long 0x3ec468b9,0x3ec468b9 -.long 0x2c342438,0x2c342438 -.long 0x5f40a3c2,0x5f40a3c2 -.long 0x72c31d16,0x72c31d16 -.long 0x0c25e2bc,0x0c25e2bc -.long 0x8b493c28,0x8b493c28 -.long 0x41950dff,0x41950dff -.long 0x7101a839,0x7101a839 -.long 0xdeb30c08,0xdeb30c08 -.long 0x9ce4b4d8,0x9ce4b4d8 -.long 0x90c15664,0x90c15664 -.long 0x6184cb7b,0x6184cb7b -.long 0x70b632d5,0x70b632d5 -.long 0x745c6c48,0x745c6c48 -.long 0x4257b8d0,0x4257b8d0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -.byte 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -.byte 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -.byte 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -.byte 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -.byte 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -.byte 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -.byte 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -.byte 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -.byte 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -.byte 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -.byte 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -.byte 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -.byte 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -.byte 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -.byte 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -.byte 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -.byte 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -.byte 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -.byte 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -.byte 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -.byte 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -.byte 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -.byte 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -.byte 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -.byte 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -.byte 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -.byte 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -.byte 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -.byte 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -.byte 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -.byte 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d -.long 0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe -.long 0x1b1b1b1b, 0x1b1b1b1b, 0, 0 -.byte 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -.p2align 6 -#endif diff --git a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S index 9fb4bef1e68..b08a2fbbf9c 100644 --- a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +++ b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S @@ -556,11 +556,9 @@ L$handle_ctr32_2: .p2align 5 _aesni_gcm_encrypt: -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+2(%rip) -#endif #endif xorq %r10,%r10 diff --git a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S index 5e12596731a..58e072ee1b6 100644 --- a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S +++ b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S @@ -19,11 +19,9 @@ .p2align 4 _aes_hw_encrypt: -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+1(%rip) -#endif #endif movups (%rdi),%xmm2 movl 240(%rdx),%eax @@ -885,10 +883,8 @@ L$ecb_ret: .p2align 4 _aes_hw_ctr32_encrypt_blocks: -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit(%rip) -#endif #endif cmpq $1,%rdx jne L$ctr32_bulk @@ -2109,11 +2105,9 @@ L$SEH_end_set_decrypt_key: _aes_hw_set_encrypt_key: __aesni_set_encrypt_key: -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+3(%rip) #endif -#endif .byte 0x48,0x83,0xEC,0x08 movq $-1,%rax diff --git a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S index d7dcf5d61fd..6fab4dbf8ed 100644 --- a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S +++ b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S @@ -13,697 +13,6 @@ #endif .text - -.globl _gcm_gmult_4bit -.private_extern _gcm_gmult_4bit - -.p2align 4 -_gcm_gmult_4bit: - - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - - subq $280,%rsp - -L$gmult_prologue: - - movzbq 15(%rdi),%r8 - leaq L$rem_4bit(%rip),%r11 - xorq %rax,%rax - xorq %rbx,%rbx - movb %r8b,%al - movb %r8b,%bl - shlb $4,%al - movq $14,%rcx - movq 8(%rsi,%rax,1),%r8 - movq (%rsi,%rax,1),%r9 - andb $0xf0,%bl - movq %r8,%rdx - jmp L$oop1 - -.p2align 4 -L$oop1: - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - movb (%rdi,%rcx,1),%al - shrq $4,%r9 - xorq 8(%rsi,%rbx,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rbx,1),%r9 - movb %al,%bl - xorq (%r11,%rdx,8),%r9 - movq %r8,%rdx - shlb $4,%al - xorq %r10,%r8 - decq %rcx - js L$break1 - - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - shrq $4,%r9 - xorq 8(%rsi,%rax,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rax,1),%r9 - andb $0xf0,%bl - xorq (%r11,%rdx,8),%r9 - movq %r8,%rdx - xorq %r10,%r8 - jmp L$oop1 - -.p2align 4 -L$break1: - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - shrq $4,%r9 - xorq 8(%rsi,%rax,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rax,1),%r9 - andb $0xf0,%bl - xorq (%r11,%rdx,8),%r9 - movq %r8,%rdx - xorq %r10,%r8 - - shrq $4,%r8 - andq $0xf,%rdx - movq %r9,%r10 - shrq $4,%r9 - xorq 8(%rsi,%rbx,1),%r8 - shlq $60,%r10 - xorq (%rsi,%rbx,1),%r9 - xorq %r10,%r8 - xorq (%r11,%rdx,8),%r9 - - bswapq %r8 - bswapq %r9 - movq %r8,8(%rdi) - movq %r9,(%rdi) - - leaq 280+48(%rsp),%rsi - - movq -8(%rsi),%rbx - - leaq (%rsi),%rsp - -L$gmult_epilogue: - .byte 0xf3,0xc3 - - -.globl _gcm_ghash_4bit -.private_extern _gcm_ghash_4bit - -.p2align 4 -_gcm_ghash_4bit: - - pushq %rbx - - pushq %rbp - - pushq %r12 - - pushq %r13 - - pushq %r14 - - pushq %r15 - - subq $280,%rsp - -L$ghash_prologue: - movq %rdx,%r14 - movq %rcx,%r15 - subq $-128,%rsi - leaq 16+128(%rsp),%rbp - xorl %edx,%edx - movq 0+0-128(%rsi),%r8 - movq 0+8-128(%rsi),%rax - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq 16+0-128(%rsi),%r9 - shlb $4,%dl - movq 16+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,0(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,0(%rbp) - movq 32+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,0-128(%rbp) - movq 32+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,1(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,8(%rbp) - movq 48+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,8-128(%rbp) - movq 48+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,2(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,16(%rbp) - movq 64+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,16-128(%rbp) - movq 64+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,3(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,24(%rbp) - movq 80+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,24-128(%rbp) - movq 80+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,4(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,32(%rbp) - movq 96+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,32-128(%rbp) - movq 96+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,5(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,40(%rbp) - movq 112+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,40-128(%rbp) - movq 112+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,6(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,48(%rbp) - movq 128+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,48-128(%rbp) - movq 128+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,7(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,56(%rbp) - movq 144+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,56-128(%rbp) - movq 144+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,8(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,64(%rbp) - movq 160+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,64-128(%rbp) - movq 160+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,9(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,72(%rbp) - movq 176+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,72-128(%rbp) - movq 176+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,10(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,80(%rbp) - movq 192+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,80-128(%rbp) - movq 192+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,11(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,88(%rbp) - movq 208+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,88-128(%rbp) - movq 208+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,12(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,96(%rbp) - movq 224+0-128(%rsi),%r8 - shlb $4,%dl - movq %rax,96-128(%rbp) - movq 224+8-128(%rsi),%rax - shlq $60,%r10 - movb %dl,13(%rsp) - orq %r10,%rbx - movb %al,%dl - shrq $4,%rax - movq %r8,%r10 - shrq $4,%r8 - movq %r9,104(%rbp) - movq 240+0-128(%rsi),%r9 - shlb $4,%dl - movq %rbx,104-128(%rbp) - movq 240+8-128(%rsi),%rbx - shlq $60,%r10 - movb %dl,14(%rsp) - orq %r10,%rax - movb %bl,%dl - shrq $4,%rbx - movq %r9,%r10 - shrq $4,%r9 - movq %r8,112(%rbp) - shlb $4,%dl - movq %rax,112-128(%rbp) - shlq $60,%r10 - movb %dl,15(%rsp) - orq %r10,%rbx - movq %r9,120(%rbp) - movq %rbx,120-128(%rbp) - addq $-128,%rsi - movq 8(%rdi),%r8 - movq 0(%rdi),%r9 - addq %r14,%r15 - leaq L$rem_8bit(%rip),%r11 - jmp L$outer_loop -.p2align 4 -L$outer_loop: - xorq (%r14),%r9 - movq 8(%r14),%rdx - leaq 16(%r14),%r14 - xorq %r8,%rdx - movq %r9,(%rdi) - movq %rdx,8(%rdi) - shrq $32,%rdx - xorq %rax,%rax - roll $8,%edx - movb %dl,%al - movzbl %dl,%ebx - shlb $4,%al - shrl $4,%ebx - roll $8,%edx - movq 8(%rsi,%rax,1),%r8 - movq (%rsi,%rax,1),%r9 - movb %dl,%al - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - xorq %r8,%r12 - movq %r9,%r10 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl 8(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl 4(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl 0(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - shrl $4,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r12,2),%r12 - movzbl %dl,%ebx - shlb $4,%al - movzbq (%rsp,%rcx,1),%r13 - shrl $4,%ebx - shlq $48,%r12 - xorq %r8,%r13 - movq %r9,%r10 - xorq %r12,%r9 - shrq $8,%r8 - movzbq %r13b,%r13 - shrq $8,%r9 - xorq -128(%rbp,%rcx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rcx,8),%r9 - roll $8,%edx - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - movb %dl,%al - xorq %r10,%r8 - movzwq (%r11,%r13,2),%r13 - movzbl %dl,%ecx - shlb $4,%al - movzbq (%rsp,%rbx,1),%r12 - andl $240,%ecx - shlq $48,%r13 - xorq %r8,%r12 - movq %r9,%r10 - xorq %r13,%r9 - shrq $8,%r8 - movzbq %r12b,%r12 - movl -4(%rdi),%edx - shrq $8,%r9 - xorq -128(%rbp,%rbx,8),%r8 - shlq $56,%r10 - xorq (%rbp,%rbx,8),%r9 - movzwq (%r11,%r12,2),%r12 - xorq 8(%rsi,%rax,1),%r8 - xorq (%rsi,%rax,1),%r9 - shlq $48,%r12 - xorq %r10,%r8 - xorq %r12,%r9 - movzbq %r8b,%r13 - shrq $4,%r8 - movq %r9,%r10 - shlb $4,%r13b - shrq $4,%r9 - xorq 8(%rsi,%rcx,1),%r8 - movzwq (%r11,%r13,2),%r13 - shlq $60,%r10 - xorq (%rsi,%rcx,1),%r9 - xorq %r10,%r8 - shlq $48,%r13 - bswapq %r8 - xorq %r13,%r9 - bswapq %r9 - cmpq %r15,%r14 - jb L$outer_loop - movq %r8,8(%rdi) - movq %r9,(%rdi) - - leaq 280+48(%rsp),%rsi - - movq -48(%rsi),%r15 - - movq -40(%rsi),%r14 - - movq -32(%rsi),%r13 - - movq -24(%rsi),%r12 - - movq -16(%rsi),%rbp - - movq -8(%rsi),%rbx - - leaq 0(%rsi),%rsp - -L$ghash_epilogue: - .byte 0xf3,0xc3 - - .globl _gcm_init_clmul .private_extern _gcm_init_clmul @@ -1809,50 +1118,8 @@ L$0x1c2_polynomial: .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 L$7_mask: .long 7,0,7,0 -L$7_mask_poly: -.long 7,0,450,0 .p2align 6 -L$rem_4bit: -.long 0,0,0,471859200,0,943718400,0,610271232 -.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 -.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 -.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 - -L$rem_8bit: -.value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E -.value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E -.value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E -.value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E -.value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E -.value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E -.value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E -.value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E -.value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE -.value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE -.value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE -.value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE -.value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E -.value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E -.value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE -.value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE -.value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E -.value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E -.value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E -.value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E -.value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E -.value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E -.value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E -.value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E -.value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE -.value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE -.value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE -.value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE -.value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E -.value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E -.value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE -.value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE - .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .p2align 6 #endif diff --git a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S index ace121e3596..87ca5e9eb64 100644 --- a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S +++ b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S @@ -26,6 +26,11 @@ _sha1_block_data_order: movl 8(%r10),%r10d testl $512,%r8d jz L$ialu + testl $536870912,%r10d + jnz _shaext_shortcut + andl $296,%r10d + cmpl $296,%r10d + je _avx2_shortcut andl $268435456,%r8d andl $1073741824,%r9d orl %r9d,%r8d @@ -1266,6 +1271,175 @@ L$epilogue: +.p2align 5 +sha1_block_data_order_shaext: +_shaext_shortcut: + + movdqu (%rdi),%xmm0 + movd 16(%rdi),%xmm1 + movdqa K_XX_XX+160(%rip),%xmm3 + + movdqu (%rsi),%xmm4 + pshufd $27,%xmm0,%xmm0 + movdqu 16(%rsi),%xmm5 + pshufd $27,%xmm1,%xmm1 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,227 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,235 +.byte 102,15,56,0,243 + movdqa %xmm1,%xmm9 +.byte 102,15,56,0,251 + jmp L$oop_shaext + +.p2align 4 +L$oop_shaext: + decq %rdx + leaq 64(%rsi),%r8 + paddd %xmm4,%xmm1 + cmovneq %r8,%rsi + movdqa %xmm0,%xmm8 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 + movdqu (%rsi),%xmm4 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,213 + movdqu 16(%rsi),%xmm5 +.byte 102,15,56,0,227 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,206 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,235 + + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,215 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,243 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 65,15,56,200,201 +.byte 102,15,56,0,251 + + paddd %xmm8,%xmm0 + movdqa %xmm1,%xmm9 + + jnz L$oop_shaext + + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm1,%xmm1 + movdqu %xmm0,(%rdi) + movd %xmm1,16(%rdi) + .byte 0xf3,0xc3 + + + .p2align 4 sha1_block_data_order_ssse3: _ssse3_shortcut: @@ -3581,6 +3755,1699 @@ L$epilogue_avx: .byte 0xf3,0xc3 + +.p2align 4 +sha1_block_data_order_avx2: +_avx2_shortcut: + + movq %rsp,%r11 + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + vzeroupper + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + leaq -640(%rsp),%rsp + shlq $6,%r10 + leaq 64(%r9),%r13 + andq $-128,%rsp + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + cmpq %r10,%r13 + cmovaeq %r9,%r13 + movl 4(%r8),%ebp + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl 16(%r8),%esi + vmovdqu 64(%r14),%ymm6 + + vmovdqu (%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + leaq 64(%r9),%r9 + vinserti128 $1,(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vpshufb %ymm6,%ymm0,%ymm0 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vpshufb %ymm6,%ymm1,%ymm1 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + vpshufb %ymm6,%ymm2,%ymm2 + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm3,%ymm3 + + vpaddd %ymm11,%ymm0,%ymm4 + vpaddd %ymm11,%ymm1,%ymm5 + vmovdqu %ymm4,0(%rsp) + vpaddd %ymm11,%ymm2,%ymm6 + vmovdqu %ymm5,32(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + vmovdqu %ymm6,64(%rsp) + vmovdqu %ymm7,96(%rsp) + vpalignr $8,%ymm0,%ymm1,%ymm4 + vpsrldq $4,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + vpxor %ymm8,%ymm4,%ymm4 + vpsrld $31,%ymm4,%ymm8 + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + vpxor %ymm10,%ymm4,%ymm4 + vpaddd %ymm11,%ymm4,%ymm9 + vmovdqu %ymm9,128(%rsp) + vpalignr $8,%ymm1,%ymm2,%ymm5 + vpsrldq $4,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + vpxor %ymm8,%ymm5,%ymm5 + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + vpxor %ymm10,%ymm5,%ymm5 + vpaddd %ymm11,%ymm5,%ymm9 + vmovdqu %ymm9,160(%rsp) + vpalignr $8,%ymm2,%ymm3,%ymm6 + vpsrldq $4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + vpxor %ymm8,%ymm6,%ymm6 + vpsrld $31,%ymm6,%ymm8 + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + vpxor %ymm10,%ymm6,%ymm6 + vpaddd %ymm11,%ymm6,%ymm9 + vmovdqu %ymm9,192(%rsp) + vpalignr $8,%ymm3,%ymm4,%ymm7 + vpsrldq $4,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + vpxor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm7,%ymm8 + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + vpxor %ymm10,%ymm7,%ymm7 + vpaddd %ymm11,%ymm7,%ymm9 + vmovdqu %ymm9,224(%rsp) + leaq 128(%rsp),%r13 + jmp L$oop_avx2 +.p2align 5 +L$oop_avx2: + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + jmp L$align32_1 +.p2align 5 +L$align32_1: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + vpxor %ymm1,%ymm0,%ymm0 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpxor %ymm8,%ymm0,%ymm0 + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vpor %ymm8,%ymm0,%ymm0 + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + vpaddd %ymm11,%ymm0,%ymm9 + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + vmovdqu %ymm9,256(%rsp) + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + vpxor %ymm2,%ymm1,%ymm1 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpxor %ymm8,%ymm1,%ymm1 + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vpor %ymm8,%ymm1,%ymm1 + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + vpaddd %ymm11,%ymm1,%ymm9 + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vmovdqu %ymm9,288(%rsp) + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + vpxor %ymm3,%ymm2,%ymm2 + vmovdqu 0(%r14),%ymm11 + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpxor %ymm8,%ymm2,%ymm2 + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vpor %ymm8,%ymm2,%ymm2 + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + vpaddd %ymm11,%ymm2,%ymm9 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vmovdqu %ymm9,320(%rsp) + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + vpxor %ymm4,%ymm3,%ymm3 + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpxor %ymm8,%ymm3,%ymm3 + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + vpor %ymm8,%ymm3,%ymm3 + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + vpaddd %ymm11,%ymm3,%ymm9 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vmovdqu %ymm9,352(%rsp) + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpalignr $8,%ymm2,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpxor %ymm5,%ymm4,%ymm4 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpxor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + vpsrld $30,%ymm4,%ymm8 + vpslld $2,%ymm4,%ymm4 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpor %ymm8,%ymm4,%ymm4 + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpaddd %ymm11,%ymm4,%ymm9 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + vmovdqu %ymm9,384(%rsp) + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpalignr $8,%ymm3,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm6,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpxor %ymm8,%ymm5,%ymm5 + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + vpsrld $30,%ymm5,%ymm8 + vpslld $2,%ymm5,%ymm5 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vpor %ymm8,%ymm5,%ymm5 + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + vmovdqu %ymm9,416(%rsp) + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm7,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + vpxor %ymm8,%ymm6,%ymm6 + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + vpsrld $30,%ymm6,%ymm8 + vpslld $2,%ymm6,%ymm6 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpor %ymm8,%ymm6,%ymm6 + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + vmovdqu %ymm9,448(%rsp) + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm5,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm0,%ymm7,%ymm7 + vmovdqu 32(%r14),%ymm11 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpxor %ymm8,%ymm7,%ymm7 + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + vpsrld $30,%ymm7,%ymm8 + vpslld $2,%ymm7,%ymm7 + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpor %ymm8,%ymm7,%ymm7 + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + vmovdqu %ymm9,480(%rsp) + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + jmp L$align32_2 +.p2align 5 +L$align32_2: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -64(%r13),%ebp + xorl %esi,%ecx + vpxor %ymm1,%ymm0,%ymm0 + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + vpxor %ymm8,%ymm0,%ymm0 + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + vpor %ymm8,%ymm0,%ymm0 + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpaddd %ymm11,%ymm0,%ymm9 + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + vmovdqu %ymm9,512(%rsp) + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -28(%r13),%ebx + xorl %eax,%edx + vpxor %ymm2,%ymm1,%ymm1 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpxor %ymm8,%ymm1,%ymm1 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + vpor %ymm8,%ymm1,%ymm1 + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpaddd %ymm11,%ymm1,%ymm9 + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + vmovdqu %ymm9,544(%rsp) + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl 8(%r13),%ecx + xorl %ebp,%esi + vpxor %ymm3,%ymm2,%ymm2 + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + vpxor %ymm8,%ymm2,%ymm2 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + vpor %ymm8,%ymm2,%ymm2 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpaddd %ymm11,%ymm2,%ymm9 + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + vmovdqu %ymm9,576(%rsp) + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl 44(%r13),%edx + xorl %ebx,%eax + vpxor %ymm4,%ymm3,%ymm3 + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm3,%ymm3 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl %r12d,%edx + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + vpor %ymm8,%ymm3,%ymm3 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpaddd %ymm11,%ymm3,%ymm9 + addl %r12d,%ecx + andl %edi,%edx + addl 68(%r13),%ebx + xorl %eax,%edx + vmovdqu %ymm9,608(%rsp) + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -96(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -60(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%r9),%r13 + leaq 128(%r9),%rdi + cmpq %r10,%r13 + cmovaeq %r9,%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + je L$done_avx2 + vmovdqu 64(%r14),%ymm6 + cmpq %r10,%rdi + ja L$ast_avx2 + + vmovdqu -64(%rdi),%xmm0 + vmovdqu -48(%rdi),%xmm1 + vmovdqu -32(%rdi),%xmm2 + vmovdqu -16(%rdi),%xmm3 + vinserti128 $1,0(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + jmp L$ast_avx2 + +.p2align 5 +L$ast_avx2: + leaq 128+16(%rsp),%r13 + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + subq $-128,%r9 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm0,%ymm0 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpshufb %ymm6,%ymm1,%ymm1 + vpaddd %ymm11,%ymm0,%ymm8 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vmovdqu %ymm8,0(%rsp) + vpshufb %ymm6,%ymm2,%ymm2 + vpaddd %ymm11,%ymm1,%ymm9 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + vmovdqu %ymm9,32(%rsp) + vpshufb %ymm6,%ymm3,%ymm3 + vpaddd %ymm11,%ymm2,%ymm6 + addl -64(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + jmp L$align32_3 +.p2align 5 +L$align32_3: + vmovdqu %ymm6,64(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + addl -28(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vmovdqu %ymm7,96(%rsp) + addl 8(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm0,%ymm1,%ymm4 + addl 44(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + vpsrldq $4,%ymm3,%ymm8 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + xorl %ebp,%esi + addl %r12d,%edx + vpxor %ymm8,%ymm4,%ymm4 + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + vpsrld $31,%ymm4,%ymm8 + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + andl %edi,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + addl 68(%r13),%ebx + xorl %eax,%edx + vpxor %ymm10,%ymm4,%ymm4 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpaddd %ymm11,%ymm4,%ymm9 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vmovdqu %ymm9,128(%rsp) + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm1,%ymm2,%ymm5 + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrldq $4,%ymm4,%ymm8 + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + xorl %eax,%edx + addl %r12d,%ecx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + vpxor %ymm10,%ymm5,%ymm5 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vmovdqu %ymm9,160(%rsp) + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm2,%ymm3,%ymm6 + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpsrldq $4,%ymm5,%ymm8 + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm8,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + vpsrld $31,%ymm6,%ymm8 + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + xorl %ebp,%esi + addl %r12d,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + xorl %ebx,%esi + addl -96(%r13),%ecx + vpxor %ymm10,%ymm6,%ymm6 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vmovdqu %ymm9,192(%rsp) + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpalignr $8,%ymm3,%ymm4,%ymm7 + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpsrldq $4,%ymm6,%ymm8 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm8,%ymm7,%ymm7 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + vpsrld $31,%ymm7,%ymm8 + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + xorl %ebx,%eax + addl %r12d,%esi + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + xorl %ecx,%eax + addl -60(%r13),%edx + vpxor %ymm10,%ymm7,%ymm7 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vmovdqu %ymm9,224(%rsp) + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%rsp),%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + jbe L$oop_avx2 + +L$done_avx2: + vzeroupper + movq -40(%r11),%r14 + + movq -32(%r11),%r13 + + movq -24(%r11),%r12 + + movq -16(%r11),%rbp + + movq -8(%r11),%rbx + + leaq (%r11),%rsp + +L$epilogue_avx2: + .byte 0xf3,0xc3 + + .p2align 6 K_XX_XX: .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 diff --git a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S index 2f60a22c807..cd52d67e606 100644 --- a/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S +++ b/contrib/boringssl-cmake/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S @@ -812,11 +812,9 @@ L$schedule_mangle_both: .p2align 4 _vpaes_set_encrypt_key: -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+5(%rip) -#endif #endif movl %esi,%eax @@ -862,11 +860,9 @@ _vpaes_set_decrypt_key: .p2align 4 _vpaes_encrypt: -#ifndef NDEBUG -#ifndef BORINGSSL_FIPS +#ifdef BORINGSSL_DISPATCH_TEST movb $1,_BORINGSSL_function_hit+4(%rip) -#endif #endif movdqu (%rdi),%xmm0 call _vpaes_preheat diff --git a/contrib/boringssl-cmake/mac-x86_64/crypto/third_party/sike/asm/fp-x86_64.S b/contrib/boringssl-cmake/mac-x86_64/crypto/third_party/sike/asm/fp-x86_64.S deleted file mode 100644 index f1e7ea4f63e..00000000000 --- a/contrib/boringssl-cmake/mac-x86_64/crypto/third_party/sike/asm/fp-x86_64.S +++ /dev/null @@ -1,1869 +0,0 @@ -# This file is generated from a similarly-named Perl script in the BoringSSL -# source tree. Do not edit by hand. - -#if defined(__has_feature) -#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) -#define OPENSSL_NO_ASM -#endif -#endif - -#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) -#if defined(BORINGSSL_PREFIX) -#include -#endif -.text - - -L$p434x2: -.quad 0xFFFFFFFFFFFFFFFE -.quad 0xFFFFFFFFFFFFFFFF -.quad 0xFB82ECF5C5FFFFFF -.quad 0xF78CB8F062B15D47 -.quad 0xD9F8BFAD038A40AC -.quad 0x0004683E4E2EE688 - - -L$p434p1: -.quad 0xFDC1767AE3000000 -.quad 0x7BC65C783158AEA3 -.quad 0x6CFC5FD681C52056 -.quad 0x0002341F27177344 - - -.private_extern _OPENSSL_ia32cap_P -.globl _sike_fpadd -.private_extern _sike_fpadd - -_sike_fpadd: - - pushq %r12 - - - pushq %r13 - - - pushq %r14 - - - - xorq %rax,%rax - - movq 0(%rdi),%r8 - addq 0(%rsi),%r8 - movq 8(%rdi),%r9 - adcq 8(%rsi),%r9 - movq 16(%rdi),%r10 - adcq 16(%rsi),%r10 - movq 24(%rdi),%r11 - adcq 24(%rsi),%r11 - movq 32(%rdi),%r12 - adcq 32(%rsi),%r12 - movq 40(%rdi),%r13 - adcq 40(%rsi),%r13 - movq 48(%rdi),%r14 - adcq 48(%rsi),%r14 - - movq L$p434x2(%rip),%rcx - subq %rcx,%r8 - movq 8+L$p434x2(%rip),%rcx - sbbq %rcx,%r9 - sbbq %rcx,%r10 - movq 16+L$p434x2(%rip),%rcx - sbbq %rcx,%r11 - movq 24+L$p434x2(%rip),%rcx - sbbq %rcx,%r12 - movq 32+L$p434x2(%rip),%rcx - sbbq %rcx,%r13 - movq 40+L$p434x2(%rip),%rcx - sbbq %rcx,%r14 - - sbbq $0,%rax - - movq L$p434x2(%rip),%rdi - andq %rax,%rdi - movq 8+L$p434x2(%rip),%rsi - andq %rax,%rsi - movq 16+L$p434x2(%rip),%rcx - andq %rax,%rcx - - addq %rdi,%r8 - movq %r8,0(%rdx) - adcq %rsi,%r9 - movq %r9,8(%rdx) - adcq %rsi,%r10 - movq %r10,16(%rdx) - adcq %rcx,%r11 - movq %r11,24(%rdx) - - setc %cl - movq 24+L$p434x2(%rip),%r8 - andq %rax,%r8 - movq 32+L$p434x2(%rip),%r9 - andq %rax,%r9 - movq 40+L$p434x2(%rip),%r10 - andq %rax,%r10 - btq $0,%rcx - - adcq %r8,%r12 - movq %r12,32(%rdx) - adcq %r9,%r13 - movq %r13,40(%rdx) - adcq %r10,%r14 - movq %r14,48(%rdx) - - popq %r14 - - popq %r13 - - popq %r12 - - .byte 0xf3,0xc3 - -.globl _sike_cswap_asm -.private_extern _sike_cswap_asm - -_sike_cswap_asm: - - - movq %rdx,%xmm3 - - - - - - pshufd $68,%xmm3,%xmm3 - - movdqu 0(%rdi),%xmm0 - movdqu 0(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,0(%rdi) - movdqu %xmm1,0(%rsi) - - movdqu 16(%rdi),%xmm0 - movdqu 16(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,16(%rdi) - movdqu %xmm1,16(%rsi) - - movdqu 32(%rdi),%xmm0 - movdqu 32(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,32(%rdi) - movdqu %xmm1,32(%rsi) - - movdqu 48(%rdi),%xmm0 - movdqu 48(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,48(%rdi) - movdqu %xmm1,48(%rsi) - - movdqu 64(%rdi),%xmm0 - movdqu 64(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,64(%rdi) - movdqu %xmm1,64(%rsi) - - movdqu 80(%rdi),%xmm0 - movdqu 80(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,80(%rdi) - movdqu %xmm1,80(%rsi) - - movdqu 96(%rdi),%xmm0 - movdqu 96(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,96(%rdi) - movdqu %xmm1,96(%rsi) - - movdqu 112(%rdi),%xmm0 - movdqu 112(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,112(%rdi) - movdqu %xmm1,112(%rsi) - - movdqu 128(%rdi),%xmm0 - movdqu 128(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,128(%rdi) - movdqu %xmm1,128(%rsi) - - movdqu 144(%rdi),%xmm0 - movdqu 144(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,144(%rdi) - movdqu %xmm1,144(%rsi) - - movdqu 160(%rdi),%xmm0 - movdqu 160(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,160(%rdi) - movdqu %xmm1,160(%rsi) - - movdqu 176(%rdi),%xmm0 - movdqu 176(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,176(%rdi) - movdqu %xmm1,176(%rsi) - - movdqu 192(%rdi),%xmm0 - movdqu 192(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,192(%rdi) - movdqu %xmm1,192(%rsi) - - movdqu 208(%rdi),%xmm0 - movdqu 208(%rsi),%xmm1 - movdqa %xmm1,%xmm2 - pxor %xmm0,%xmm2 - pand %xmm3,%xmm2 - pxor %xmm2,%xmm0 - pxor %xmm2,%xmm1 - movdqu %xmm0,208(%rdi) - movdqu %xmm1,208(%rsi) - - .byte 0xf3,0xc3 -.globl _sike_fpsub -.private_extern _sike_fpsub - -_sike_fpsub: - - pushq %r12 - - - pushq %r13 - - - pushq %r14 - - - - xorq %rax,%rax - - movq 0(%rdi),%r8 - subq 0(%rsi),%r8 - movq 8(%rdi),%r9 - sbbq 8(%rsi),%r9 - movq 16(%rdi),%r10 - sbbq 16(%rsi),%r10 - movq 24(%rdi),%r11 - sbbq 24(%rsi),%r11 - movq 32(%rdi),%r12 - sbbq 32(%rsi),%r12 - movq 40(%rdi),%r13 - sbbq 40(%rsi),%r13 - movq 48(%rdi),%r14 - sbbq 48(%rsi),%r14 - - sbbq $0x0,%rax - - movq L$p434x2(%rip),%rdi - andq %rax,%rdi - movq 8+L$p434x2(%rip),%rsi - andq %rax,%rsi - movq 16+L$p434x2(%rip),%rcx - andq %rax,%rcx - - addq %rdi,%r8 - movq %r8,0(%rdx) - adcq %rsi,%r9 - movq %r9,8(%rdx) - adcq %rsi,%r10 - movq %r10,16(%rdx) - adcq %rcx,%r11 - movq %r11,24(%rdx) - - setc %cl - movq 24+L$p434x2(%rip),%r8 - andq %rax,%r8 - movq 32+L$p434x2(%rip),%r9 - andq %rax,%r9 - movq 40+L$p434x2(%rip),%r10 - andq %rax,%r10 - btq $0x0,%rcx - - adcq %r8,%r12 - adcq %r9,%r13 - adcq %r10,%r14 - movq %r12,32(%rdx) - movq %r13,40(%rdx) - movq %r14,48(%rdx) - - popq %r14 - - popq %r13 - - popq %r12 - - .byte 0xf3,0xc3 - -.globl _sike_mpadd_asm -.private_extern _sike_mpadd_asm - -_sike_mpadd_asm: - - movq 0(%rdi),%r8; - movq 8(%rdi),%r9 - movq 16(%rdi),%r10 - movq 24(%rdi),%r11 - movq 32(%rdi),%rcx - addq 0(%rsi),%r8 - adcq 8(%rsi),%r9 - adcq 16(%rsi),%r10 - adcq 24(%rsi),%r11 - adcq 32(%rsi),%rcx - movq %r8,0(%rdx) - movq %r9,8(%rdx) - movq %r10,16(%rdx) - movq %r11,24(%rdx) - movq %rcx,32(%rdx) - - movq 40(%rdi),%r8 - movq 48(%rdi),%r9 - adcq 40(%rsi),%r8 - adcq 48(%rsi),%r9 - movq %r8,40(%rdx) - movq %r9,48(%rdx) - .byte 0xf3,0xc3 - -.globl _sike_mpsubx2_asm -.private_extern _sike_mpsubx2_asm - -_sike_mpsubx2_asm: - - xorq %rax,%rax - - movq 0(%rdi),%r8 - movq 8(%rdi),%r9 - movq 16(%rdi),%r10 - movq 24(%rdi),%r11 - movq 32(%rdi),%rcx - subq 0(%rsi),%r8 - sbbq 8(%rsi),%r9 - sbbq 16(%rsi),%r10 - sbbq 24(%rsi),%r11 - sbbq 32(%rsi),%rcx - movq %r8,0(%rdx) - movq %r9,8(%rdx) - movq %r10,16(%rdx) - movq %r11,24(%rdx) - movq %rcx,32(%rdx) - - movq 40(%rdi),%r8 - movq 48(%rdi),%r9 - movq 56(%rdi),%r10 - movq 64(%rdi),%r11 - movq 72(%rdi),%rcx - sbbq 40(%rsi),%r8 - sbbq 48(%rsi),%r9 - sbbq 56(%rsi),%r10 - sbbq 64(%rsi),%r11 - sbbq 72(%rsi),%rcx - movq %r8,40(%rdx) - movq %r9,48(%rdx) - movq %r10,56(%rdx) - movq %r11,64(%rdx) - movq %rcx,72(%rdx) - - movq 80(%rdi),%r8 - movq 88(%rdi),%r9 - movq 96(%rdi),%r10 - movq 104(%rdi),%r11 - sbbq 80(%rsi),%r8 - sbbq 88(%rsi),%r9 - sbbq 96(%rsi),%r10 - sbbq 104(%rsi),%r11 - sbbq $0x0,%rax - movq %r8,80(%rdx) - movq %r9,88(%rdx) - movq %r10,96(%rdx) - movq %r11,104(%rdx) - .byte 0xf3,0xc3 - -.globl _sike_mpdblsubx2_asm -.private_extern _sike_mpdblsubx2_asm - -_sike_mpdblsubx2_asm: - - pushq %r12 - - - pushq %r13 - - - - xorq %rax,%rax - - - movq 0(%rdx),%r8 - movq 8(%rdx),%r9 - movq 16(%rdx),%r10 - movq 24(%rdx),%r11 - movq 32(%rdx),%r12 - movq 40(%rdx),%r13 - movq 48(%rdx),%rcx - subq 0(%rdi),%r8 - sbbq 8(%rdi),%r9 - sbbq 16(%rdi),%r10 - sbbq 24(%rdi),%r11 - sbbq 32(%rdi),%r12 - sbbq 40(%rdi),%r13 - sbbq 48(%rdi),%rcx - adcq $0x0,%rax - - - subq 0(%rsi),%r8 - sbbq 8(%rsi),%r9 - sbbq 16(%rsi),%r10 - sbbq 24(%rsi),%r11 - sbbq 32(%rsi),%r12 - sbbq 40(%rsi),%r13 - sbbq 48(%rsi),%rcx - adcq $0x0,%rax - - - movq %r8,0(%rdx) - movq %r9,8(%rdx) - movq %r10,16(%rdx) - movq %r11,24(%rdx) - movq %r12,32(%rdx) - movq %r13,40(%rdx) - movq %rcx,48(%rdx) - - - movq 56(%rdx),%r8 - movq 64(%rdx),%r9 - movq 72(%rdx),%r10 - movq 80(%rdx),%r11 - movq 88(%rdx),%r12 - movq 96(%rdx),%r13 - movq 104(%rdx),%rcx - - subq %rax,%r8 - sbbq 56(%rdi),%r8 - sbbq 64(%rdi),%r9 - sbbq 72(%rdi),%r10 - sbbq 80(%rdi),%r11 - sbbq 88(%rdi),%r12 - sbbq 96(%rdi),%r13 - sbbq 104(%rdi),%rcx - - - subq 56(%rsi),%r8 - sbbq 64(%rsi),%r9 - sbbq 72(%rsi),%r10 - sbbq 80(%rsi),%r11 - sbbq 88(%rsi),%r12 - sbbq 96(%rsi),%r13 - sbbq 104(%rsi),%rcx - - - movq %r8,56(%rdx) - movq %r9,64(%rdx) - movq %r10,72(%rdx) - movq %r11,80(%rdx) - movq %r12,88(%rdx) - movq %r13,96(%rdx) - movq %rcx,104(%rdx) - - popq %r13 - - popq %r12 - - .byte 0xf3,0xc3 - - -L$rdc_bdw: - - - - - - - - - xorq %rax,%rax - movq 0+0(%rdi),%rdx - mulxq 0+L$p434p1(%rip),%r8,%r9 - mulxq 8+L$p434p1(%rip),%r12,%r10 - mulxq 16+L$p434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+L$p434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - xorq %rax,%rax - movq 0+8(%rdi),%rdx - mulxq 0+L$p434p1(%rip),%r13,%rcx - adcxq %r13,%r9 - adcxq %rcx,%r10 - - mulxq 8+L$p434p1(%rip),%rcx,%r13 - adcxq %r13,%r11 - adoxq %rcx,%r10 - - mulxq 16+L$p434p1(%rip),%rcx,%r13 - adcxq %r13,%r12 - adoxq %rcx,%r11 - - mulxq 24+L$p434p1(%rip),%rcx,%r13 - adcxq %rax,%r13 - adoxq %rcx,%r12 - adoxq %rax,%r13 - - xorq %rcx,%rcx - addq 24(%rdi),%r8 - adcq 32(%rdi),%r9 - adcq 40(%rdi),%r10 - adcq 48(%rdi),%r11 - adcq 56(%rdi),%r12 - adcq 64(%rdi),%r13 - adcq 72(%rdi),%rcx - movq %r8,24(%rdi) - movq %r9,32(%rdi) - movq %r10,40(%rdi) - movq %r11,48(%rdi) - movq %r12,56(%rdi) - movq %r13,64(%rdi) - movq %rcx,72(%rdi) - movq 80(%rdi),%r8 - movq 88(%rdi),%r9 - movq 96(%rdi),%r10 - movq 104(%rdi),%r11 - adcq $0x0,%r8 - adcq $0x0,%r9 - adcq $0x0,%r10 - adcq $0x0,%r11 - movq %r8,80(%rdi) - movq %r9,88(%rdi) - movq %r10,96(%rdi) - movq %r11,104(%rdi) - - xorq %rax,%rax - movq 16+0(%rdi),%rdx - mulxq 0+L$p434p1(%rip),%r8,%r9 - mulxq 8+L$p434p1(%rip),%r12,%r10 - mulxq 16+L$p434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+L$p434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - xorq %rax,%rax - movq 16+8(%rdi),%rdx - mulxq 0+L$p434p1(%rip),%r13,%rcx - adcxq %r13,%r9 - adcxq %rcx,%r10 - - mulxq 8+L$p434p1(%rip),%rcx,%r13 - adcxq %r13,%r11 - adoxq %rcx,%r10 - - mulxq 16+L$p434p1(%rip),%rcx,%r13 - adcxq %r13,%r12 - adoxq %rcx,%r11 - - mulxq 24+L$p434p1(%rip),%rcx,%r13 - adcxq %rax,%r13 - adoxq %rcx,%r12 - adoxq %rax,%r13 - - xorq %rcx,%rcx - addq 40(%rdi),%r8 - adcq 48(%rdi),%r9 - adcq 56(%rdi),%r10 - adcq 64(%rdi),%r11 - adcq 72(%rdi),%r12 - adcq 80(%rdi),%r13 - adcq 88(%rdi),%rcx - movq %r8,40(%rdi) - movq %r9,48(%rdi) - movq %r10,56(%rdi) - movq %r11,64(%rdi) - movq %r12,72(%rdi) - movq %r13,80(%rdi) - movq %rcx,88(%rdi) - movq 96(%rdi),%r8 - movq 104(%rdi),%r9 - adcq $0x0,%r8 - adcq $0x0,%r9 - movq %r8,96(%rdi) - movq %r9,104(%rdi) - - xorq %rax,%rax - movq 32+0(%rdi),%rdx - mulxq 0+L$p434p1(%rip),%r8,%r9 - mulxq 8+L$p434p1(%rip),%r12,%r10 - mulxq 16+L$p434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+L$p434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - xorq %rax,%rax - movq 32+8(%rdi),%rdx - mulxq 0+L$p434p1(%rip),%r13,%rcx - adcxq %r13,%r9 - adcxq %rcx,%r10 - - mulxq 8+L$p434p1(%rip),%rcx,%r13 - adcxq %r13,%r11 - adoxq %rcx,%r10 - - mulxq 16+L$p434p1(%rip),%rcx,%r13 - adcxq %r13,%r12 - adoxq %rcx,%r11 - - mulxq 24+L$p434p1(%rip),%rcx,%r13 - adcxq %rax,%r13 - adoxq %rcx,%r12 - adoxq %rax,%r13 - - xorq %rcx,%rcx - addq 56(%rdi),%r8 - adcq 64(%rdi),%r9 - adcq 72(%rdi),%r10 - adcq 80(%rdi),%r11 - adcq 88(%rdi),%r12 - adcq 96(%rdi),%r13 - adcq 104(%rdi),%rcx - movq %r8,0(%rsi) - movq %r9,8(%rsi) - movq %r10,72(%rdi) - movq %r11,80(%rdi) - movq %r12,88(%rdi) - movq %r13,96(%rdi) - movq %rcx,104(%rdi) - - xorq %rax,%rax - movq 48(%rdi),%rdx - mulxq 0+L$p434p1(%rip),%r8,%r9 - mulxq 8+L$p434p1(%rip),%r12,%r10 - mulxq 16+L$p434p1(%rip),%r13,%r11 - - adoxq %r12,%r9 - adoxq %r13,%r10 - - mulxq 24+L$p434p1(%rip),%r13,%r12 - adoxq %r13,%r11 - adoxq %rax,%r12 - - addq 72(%rdi),%r8 - adcq 80(%rdi),%r9 - adcq 88(%rdi),%r10 - adcq 96(%rdi),%r11 - adcq 104(%rdi),%r12 - movq %r8,16(%rsi) - movq %r9,24(%rsi) - movq %r10,32(%rsi) - movq %r11,40(%rsi) - movq %r12,48(%rsi) - - - popq %r15 - - - popq %r14 - - - popq %r13 - - - popq %r12 - - - .byte 0xf3,0xc3 - -.globl _sike_fprdc -.private_extern _sike_fprdc - -_sike_fprdc: - - pushq %r12 - - - pushq %r13 - - - pushq %r14 - - - pushq %r15 - - - - - - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je L$rdc_bdw - - - - - movq 0+0(%rdi),%r14 - movq 0+L$p434p1(%rip),%rax - mulq %r14 - xorq %r10,%r10 - movq %rax,%r8 - movq %rdx,%r9 - - - movq 8+L$p434p1(%rip),%rax - mulq %r14 - xorq %r11,%r11 - addq %rax,%r9 - adcq %rdx,%r10 - - - movq 0+8(%rdi),%rcx - movq 0+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - - xorq %r12,%r12 - movq 16+L$p434p1(%rip),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 8+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 24+L$p434p1(%rip),%rax - mulq %r14 - xorq %r13,%r13 - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 16+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 24+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r12 - adcq %rdx,%r13 - - - xorq %rcx,%rcx - addq 24(%rdi),%r8 - adcq 32(%rdi),%r9 - adcq 40(%rdi),%r10 - adcq 48(%rdi),%r11 - adcq 56(%rdi),%r12 - adcq 64(%rdi),%r13 - adcq 72(%rdi),%rcx - movq %r8,24(%rdi) - movq %r9,32(%rdi) - movq %r10,40(%rdi) - movq %r11,48(%rdi) - movq %r12,56(%rdi) - movq %r13,64(%rdi) - movq %rcx,72(%rdi) - movq 80(%rdi),%r8 - movq 88(%rdi),%r9 - movq 96(%rdi),%r10 - movq 104(%rdi),%r11 - adcq $0x0,%r8 - adcq $0x0,%r9 - adcq $0x0,%r10 - adcq $0x0,%r11 - movq %r8,80(%rdi) - movq %r9,88(%rdi) - movq %r10,96(%rdi) - movq %r11,104(%rdi) - - - movq 16+0(%rdi),%r14 - movq 0+L$p434p1(%rip),%rax - mulq %r14 - xorq %r10,%r10 - movq %rax,%r8 - movq %rdx,%r9 - - - movq 8+L$p434p1(%rip),%rax - mulq %r14 - xorq %r11,%r11 - addq %rax,%r9 - adcq %rdx,%r10 - - - movq 16+8(%rdi),%rcx - movq 0+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - - xorq %r12,%r12 - movq 16+L$p434p1(%rip),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 8+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 24+L$p434p1(%rip),%rax - mulq %r14 - xorq %r13,%r13 - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 16+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 24+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r12 - adcq %rdx,%r13 - - - xorq %rcx,%rcx - addq 40(%rdi),%r8 - adcq 48(%rdi),%r9 - adcq 56(%rdi),%r10 - adcq 64(%rdi),%r11 - adcq 72(%rdi),%r12 - adcq 80(%rdi),%r13 - adcq 88(%rdi),%rcx - movq %r8,40(%rdi) - movq %r9,48(%rdi) - movq %r10,56(%rdi) - movq %r11,64(%rdi) - movq %r12,72(%rdi) - movq %r13,80(%rdi) - movq %rcx,88(%rdi) - movq 96(%rdi),%r8 - movq 104(%rdi),%r9 - adcq $0x0,%r8 - adcq $0x0,%r9 - movq %r8,96(%rdi) - movq %r9,104(%rdi) - - - movq 32+0(%rdi),%r14 - movq 0+L$p434p1(%rip),%rax - mulq %r14 - xorq %r10,%r10 - movq %rax,%r8 - movq %rdx,%r9 - - - movq 8+L$p434p1(%rip),%rax - mulq %r14 - xorq %r11,%r11 - addq %rax,%r9 - adcq %rdx,%r10 - - - movq 32+8(%rdi),%rcx - movq 0+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - - xorq %r12,%r12 - movq 16+L$p434p1(%rip),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 8+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r10 - adcq %rdx,%r11 - adcq $0x0,%r12 - - - movq 24+L$p434p1(%rip),%rax - mulq %r14 - xorq %r13,%r13 - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 16+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r11 - adcq %rdx,%r12 - adcq $0x0,%r13 - - - movq 24+L$p434p1(%rip),%rax - mulq %rcx - addq %rax,%r12 - adcq %rdx,%r13 - - - xorq %rcx,%rcx - addq 56(%rdi),%r8 - adcq 64(%rdi),%r9 - adcq 72(%rdi),%r10 - adcq 80(%rdi),%r11 - adcq 88(%rdi),%r12 - adcq 96(%rdi),%r13 - adcq 104(%rdi),%rcx - movq %r8,0(%rsi) - movq %r9,8(%rsi) - movq %r10,72(%rdi) - movq %r11,80(%rdi) - movq %r12,88(%rdi) - movq %r13,96(%rdi) - movq %rcx,104(%rdi) - - movq 48(%rdi),%r13 - - xorq %r10,%r10 - movq 0+L$p434p1(%rip),%rax - mulq %r13 - movq %rax,%r8 - movq %rdx,%r9 - - xorq %r11,%r11 - movq 8+L$p434p1(%rip),%rax - mulq %r13 - addq %rax,%r9 - adcq %rdx,%r10 - - xorq %r12,%r12 - movq 16+L$p434p1(%rip),%rax - mulq %r13 - addq %rax,%r10 - adcq %rdx,%r11 - - movq 24+L$p434p1(%rip),%rax - mulq %r13 - addq %rax,%r11 - adcq %rdx,%r12 - - addq 72(%rdi),%r8 - adcq 80(%rdi),%r9 - adcq 88(%rdi),%r10 - adcq 96(%rdi),%r11 - adcq 104(%rdi),%r12 - movq %r8,16(%rsi) - movq %r9,24(%rsi) - movq %r10,32(%rsi) - movq %r11,40(%rsi) - movq %r12,48(%rsi) - - - popq %r15 - - popq %r14 - - popq %r13 - - popq %r12 - - .byte 0xf3,0xc3 - -L$mul_bdw: - - - - - - - - - - movq %rdx,%rcx - xorq %rax,%rax - - - movq 0(%rdi),%r8 - movq 8(%rdi),%r9 - movq 16(%rdi),%r10 - movq 24(%rdi),%r11 - - pushq %rbx - - - pushq %rbp - - - subq $96,%rsp - - - addq 32(%rdi),%r8 - adcq 40(%rdi),%r9 - adcq 48(%rdi),%r10 - adcq $0x0,%r11 - sbbq $0x0,%rax - movq %r8,0(%rsp) - movq %r9,8(%rsp) - movq %r10,16(%rsp) - movq %r11,24(%rsp) - - - xorq %rbx,%rbx - movq 0(%rsi),%r12 - movq 8(%rsi),%r13 - movq 16(%rsi),%r14 - movq 24(%rsi),%r15 - addq 32(%rsi),%r12 - adcq 40(%rsi),%r13 - adcq 48(%rsi),%r14 - adcq $0x0,%r15 - sbbq $0x0,%rbx - movq %r12,32(%rsp) - movq %r13,40(%rsp) - movq %r14,48(%rsp) - movq %r15,56(%rsp) - - - andq %rax,%r12 - andq %rax,%r13 - andq %rax,%r14 - andq %rax,%r15 - - - andq %rbx,%r8 - andq %rbx,%r9 - andq %rbx,%r10 - andq %rbx,%r11 - - - addq %r12,%r8 - adcq %r13,%r9 - adcq %r14,%r10 - adcq %r15,%r11 - movq %r8,64(%rsp) - movq %r9,72(%rsp) - movq %r10,80(%rsp) - movq %r11,88(%rsp) - - - movq 0+0(%rsp),%rdx - mulxq 32+0(%rsp),%r9,%r8 - movq %r9,0+0(%rsp) - mulxq 32+8(%rsp),%r10,%r9 - xorq %rax,%rax - adoxq %r10,%r8 - mulxq 32+16(%rsp),%r11,%r10 - adoxq %r11,%r9 - mulxq 32+24(%rsp),%r12,%r11 - adoxq %r12,%r10 - - movq 0+8(%rsp),%rdx - mulxq 32+0(%rsp),%r12,%r13 - adoxq %rax,%r11 - xorq %rax,%rax - mulxq 32+8(%rsp),%r15,%r14 - adoxq %r8,%r12 - movq %r12,0+8(%rsp) - adcxq %r15,%r13 - mulxq 32+16(%rsp),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r9,%r13 - mulxq 32+24(%rsp),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r10,%r14 - - movq 0+16(%rsp),%rdx - mulxq 32+0(%rsp),%r8,%r9 - adoxq %r11,%r15 - adoxq %rax,%rbx - xorq %rax,%rax - mulxq 32+8(%rsp),%r11,%r10 - adoxq %r13,%r8 - movq %r8,0+16(%rsp) - adcxq %r11,%r9 - mulxq 32+16(%rsp),%r12,%r11 - adcxq %r12,%r10 - adoxq %r14,%r9 - mulxq 32+24(%rsp),%rbp,%r12 - adcxq %rbp,%r11 - adcxq %rax,%r12 - - adoxq %r15,%r10 - adoxq %rbx,%r11 - adoxq %rax,%r12 - - movq 0+24(%rsp),%rdx - mulxq 32+0(%rsp),%r8,%r13 - xorq %rax,%rax - mulxq 32+8(%rsp),%r15,%r14 - adcxq %r15,%r13 - adoxq %r8,%r9 - mulxq 32+16(%rsp),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r13,%r10 - mulxq 32+24(%rsp),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r14,%r11 - adoxq %r15,%r12 - adoxq %rax,%rbx - movq %r9,0+24(%rsp) - movq %r10,0+32(%rsp) - movq %r11,0+40(%rsp) - movq %r12,0+48(%rsp) - movq %rbx,0+56(%rsp) - - - - movq 0+0(%rdi),%rdx - mulxq 0+0(%rsi),%r9,%r8 - movq %r9,0+0(%rcx) - mulxq 0+8(%rsi),%r10,%r9 - xorq %rax,%rax - adoxq %r10,%r8 - mulxq 0+16(%rsi),%r11,%r10 - adoxq %r11,%r9 - mulxq 0+24(%rsi),%r12,%r11 - adoxq %r12,%r10 - - movq 0+8(%rdi),%rdx - mulxq 0+0(%rsi),%r12,%r13 - adoxq %rax,%r11 - xorq %rax,%rax - mulxq 0+8(%rsi),%r15,%r14 - adoxq %r8,%r12 - movq %r12,0+8(%rcx) - adcxq %r15,%r13 - mulxq 0+16(%rsi),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r9,%r13 - mulxq 0+24(%rsi),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r10,%r14 - - movq 0+16(%rdi),%rdx - mulxq 0+0(%rsi),%r8,%r9 - adoxq %r11,%r15 - adoxq %rax,%rbx - xorq %rax,%rax - mulxq 0+8(%rsi),%r11,%r10 - adoxq %r13,%r8 - movq %r8,0+16(%rcx) - adcxq %r11,%r9 - mulxq 0+16(%rsi),%r12,%r11 - adcxq %r12,%r10 - adoxq %r14,%r9 - mulxq 0+24(%rsi),%rbp,%r12 - adcxq %rbp,%r11 - adcxq %rax,%r12 - - adoxq %r15,%r10 - adoxq %rbx,%r11 - adoxq %rax,%r12 - - movq 0+24(%rdi),%rdx - mulxq 0+0(%rsi),%r8,%r13 - xorq %rax,%rax - mulxq 0+8(%rsi),%r15,%r14 - adcxq %r15,%r13 - adoxq %r8,%r9 - mulxq 0+16(%rsi),%rbx,%r15 - adcxq %rbx,%r14 - adoxq %r13,%r10 - mulxq 0+24(%rsi),%rbp,%rbx - adcxq %rbp,%r15 - adcxq %rax,%rbx - adoxq %r14,%r11 - adoxq %r15,%r12 - adoxq %rax,%rbx - movq %r9,0+24(%rcx) - movq %r10,0+32(%rcx) - movq %r11,0+40(%rcx) - movq %r12,0+48(%rcx) - movq %rbx,0+56(%rcx) - - - - movq 32+0(%rdi),%rdx - mulxq 32+0(%rsi),%r9,%r8 - movq %r9,64+0(%rcx) - mulxq 32+8(%rsi),%r10,%r9 - xorq %rax,%rax - adoxq %r10,%r8 - mulxq 32+16(%rsi),%r11,%r10 - adoxq %r11,%r9 - - movq 32+8(%rdi),%rdx - mulxq 32+0(%rsi),%r12,%r11 - adoxq %rax,%r10 - xorq %rax,%rax - - mulxq 32+8(%rsi),%r14,%r13 - adoxq %r8,%r12 - movq %r12,64+8(%rcx) - adcxq %r14,%r11 - - mulxq 32+16(%rsi),%r8,%r14 - adoxq %r9,%r11 - adcxq %r8,%r13 - adcxq %rax,%r14 - adoxq %r10,%r13 - - movq 32+16(%rdi),%rdx - mulxq 32+0(%rsi),%r8,%r9 - adoxq %rax,%r14 - xorq %rax,%rax - - mulxq 32+8(%rsi),%r10,%r12 - adoxq %r11,%r8 - movq %r8,64+16(%rcx) - adcxq %r13,%r9 - - mulxq 32+16(%rsi),%r11,%r8 - adcxq %r14,%r12 - adcxq %rax,%r8 - adoxq %r10,%r9 - adoxq %r12,%r11 - adoxq %rax,%r8 - movq %r9,64+24(%rcx) - movq %r11,64+32(%rcx) - movq %r8,64+40(%rcx) - - - - - movq 64(%rsp),%r8 - movq 72(%rsp),%r9 - movq 80(%rsp),%r10 - movq 88(%rsp),%r11 - - movq 32(%rsp),%rax - addq %rax,%r8 - movq 40(%rsp),%rax - adcq %rax,%r9 - movq 48(%rsp),%rax - adcq %rax,%r10 - movq 56(%rsp),%rax - adcq %rax,%r11 - - - movq 0(%rsp),%r12 - movq 8(%rsp),%r13 - movq 16(%rsp),%r14 - movq 24(%rsp),%r15 - subq 0(%rcx),%r12 - sbbq 8(%rcx),%r13 - sbbq 16(%rcx),%r14 - sbbq 24(%rcx),%r15 - sbbq 32(%rcx),%r8 - sbbq 40(%rcx),%r9 - sbbq 48(%rcx),%r10 - sbbq 56(%rcx),%r11 - - - subq 64(%rcx),%r12 - sbbq 72(%rcx),%r13 - sbbq 80(%rcx),%r14 - sbbq 88(%rcx),%r15 - sbbq 96(%rcx),%r8 - sbbq 104(%rcx),%r9 - sbbq $0x0,%r10 - sbbq $0x0,%r11 - - addq 32(%rcx),%r12 - movq %r12,32(%rcx) - adcq 40(%rcx),%r13 - movq %r13,40(%rcx) - adcq 48(%rcx),%r14 - movq %r14,48(%rcx) - adcq 56(%rcx),%r15 - movq %r15,56(%rcx) - adcq 64(%rcx),%r8 - movq %r8,64(%rcx) - adcq 72(%rcx),%r9 - movq %r9,72(%rcx) - adcq 80(%rcx),%r10 - movq %r10,80(%rcx) - adcq 88(%rcx),%r11 - movq %r11,88(%rcx) - movq 96(%rcx),%r12 - adcq $0x0,%r12 - movq %r12,96(%rcx) - movq 104(%rcx),%r13 - adcq $0x0,%r13 - movq %r13,104(%rcx) - - addq $96,%rsp - - popq %rbp - - - popq %rbx - - - - - popq %r15 - - - popq %r14 - - - popq %r13 - - - popq %r12 - - - .byte 0xf3,0xc3 - - -.globl _sike_mpmul -.private_extern _sike_mpmul - -_sike_mpmul: - - pushq %r12 - - - pushq %r13 - - - pushq %r14 - - - pushq %r15 - - - - - - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je L$mul_bdw - - - - movq %rdx,%rcx - - subq $112,%rsp - - - - xorq %rax,%rax - movq 32(%rdi),%r8 - movq 40(%rdi),%r9 - movq 48(%rdi),%r10 - xorq %r11,%r11 - addq 0(%rdi),%r8 - adcq 8(%rdi),%r9 - adcq 16(%rdi),%r10 - adcq 24(%rdi),%r11 - - sbbq $0,%rax - movq %rax,64(%rsp) - - movq %r8,0(%rcx) - movq %r9,8(%rcx) - movq %r10,16(%rcx) - movq %r11,24(%rcx) - - - xorq %rdx,%rdx - movq 32(%rsi),%r12 - movq 40(%rsi),%r13 - movq 48(%rsi),%r14 - xorq %r15,%r15 - addq 0(%rsi),%r12 - adcq 8(%rsi),%r13 - adcq 16(%rsi),%r14 - adcq 24(%rsi),%r15 - sbbq $0x0,%rdx - - movq %rdx,72(%rsp) - - - movq (%rcx),%rax - mulq %r12 - movq %rax,(%rsp) - movq %rdx,%r8 - - xorq %r9,%r9 - movq (%rcx),%rax - mulq %r13 - addq %rax,%r8 - adcq %rdx,%r9 - - xorq %r10,%r10 - movq 8(%rcx),%rax - mulq %r12 - addq %rax,%r8 - movq %r8,8(%rsp) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq (%rcx),%rax - mulq %r14 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 16(%rcx),%rax - mulq %r12 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 8(%rcx),%rax - mulq %r13 - addq %rax,%r9 - movq %r9,16(%rsp) - adcq %rdx,%r10 - adcq $0x0,%r8 - - xorq %r9,%r9 - movq (%rcx),%rax - mulq %r15 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 24(%rcx),%rax - mulq %r12 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 8(%rcx),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 16(%rcx),%rax - mulq %r13 - addq %rax,%r10 - movq %r10,24(%rsp) - adcq %rdx,%r8 - adcq $0x0,%r9 - - xorq %r10,%r10 - movq 8(%rcx),%rax - mulq %r15 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 24(%rcx),%rax - mulq %r13 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 16(%rcx),%rax - mulq %r14 - addq %rax,%r8 - movq %r8,32(%rsp) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r11,%r11 - movq 16(%rcx),%rax - mulq %r15 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r11 - - movq 24(%rcx),%rax - mulq %r14 - addq %rax,%r9 - movq %r9,40(%rsp) - adcq %rdx,%r10 - adcq $0x0,%r11 - - movq 24(%rcx),%rax - mulq %r15 - addq %rax,%r10 - movq %r10,48(%rsp) - adcq %rdx,%r11 - movq %r11,56(%rsp) - - - movq 64(%rsp),%rax - andq %rax,%r12 - andq %rax,%r13 - andq %rax,%r14 - andq %rax,%r15 - - - movq 72(%rsp),%rax - movq 0(%rcx),%r8 - andq %rax,%r8 - movq 8(%rcx),%r9 - andq %rax,%r9 - movq 16(%rcx),%r10 - andq %rax,%r10 - movq 24(%rcx),%r11 - andq %rax,%r11 - - - addq %r8,%r12 - adcq %r9,%r13 - adcq %r10,%r14 - adcq %r11,%r15 - - - movq 32(%rsp),%rax - addq %rax,%r12 - movq 40(%rsp),%rax - adcq %rax,%r13 - movq 48(%rsp),%rax - adcq %rax,%r14 - movq 56(%rsp),%rax - adcq %rax,%r15 - movq %r12,80(%rsp) - movq %r13,88(%rsp) - movq %r14,96(%rsp) - movq %r15,104(%rsp) - - - movq (%rdi),%r11 - movq (%rsi),%rax - mulq %r11 - xorq %r9,%r9 - movq %rax,(%rcx) - movq %rdx,%r8 - - movq 16(%rdi),%r14 - movq 8(%rsi),%rax - mulq %r11 - xorq %r10,%r10 - addq %rax,%r8 - adcq %rdx,%r9 - - movq 8(%rdi),%r12 - movq (%rsi),%rax - mulq %r12 - addq %rax,%r8 - movq %r8,8(%rcx) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq 16(%rsi),%rax - mulq %r11 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq (%rsi),%r13 - movq %r14,%rax - mulq %r13 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 8(%rsi),%rax - mulq %r12 - addq %rax,%r9 - movq %r9,16(%rcx) - adcq %rdx,%r10 - adcq $0x0,%r8 - - xorq %r9,%r9 - movq 24(%rsi),%rax - mulq %r11 - movq 24(%rdi),%r15 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq %r15,%rax - mulq %r13 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 16(%rsi),%rax - mulq %r12 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r9 - - movq 8(%rsi),%rax - mulq %r14 - addq %rax,%r10 - movq %r10,24(%rcx) - adcq %rdx,%r8 - adcq $0x0,%r9 - - xorq %r10,%r10 - movq 24(%rsi),%rax - mulq %r12 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 8(%rsi),%rax - mulq %r15 - addq %rax,%r8 - adcq %rdx,%r9 - adcq $0x0,%r10 - - movq 16(%rsi),%rax - mulq %r14 - addq %rax,%r8 - movq %r8,32(%rcx) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq 24(%rsi),%rax - mulq %r14 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 16(%rsi),%rax - mulq %r15 - addq %rax,%r9 - movq %r9,40(%rcx) - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 24(%rsi),%rax - mulq %r15 - addq %rax,%r10 - movq %r10,48(%rcx) - adcq %rdx,%r8 - movq %r8,56(%rcx) - - - - movq 32(%rdi),%r11 - movq 32(%rsi),%rax - mulq %r11 - xorq %r9,%r9 - movq %rax,64(%rcx) - movq %rdx,%r8 - - movq 48(%rdi),%r14 - movq 40(%rsi),%rax - mulq %r11 - xorq %r10,%r10 - addq %rax,%r8 - adcq %rdx,%r9 - - movq 40(%rdi),%r12 - movq 32(%rsi),%rax - mulq %r12 - addq %rax,%r8 - movq %r8,72(%rcx) - adcq %rdx,%r9 - adcq $0x0,%r10 - - xorq %r8,%r8 - movq 48(%rsi),%rax - mulq %r11 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 32(%rsi),%r13 - movq %r14,%rax - mulq %r13 - addq %rax,%r9 - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 40(%rsi),%rax - mulq %r12 - addq %rax,%r9 - movq %r9,80(%rcx) - adcq %rdx,%r10 - adcq $0x0,%r8 - - movq 48(%rsi),%rax - mulq %r12 - xorq %r12,%r12 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r12 - - movq 40(%rsi),%rax - mulq %r14 - addq %rax,%r10 - adcq %rdx,%r8 - adcq $0x0,%r12 - movq %r10,88(%rcx) - - movq 48(%rsi),%rax - mulq %r14 - addq %rax,%r8 - adcq $0x0,%r12 - movq %r8,96(%rcx) - - addq %r12,%rdx - - - movq 0(%rsp),%r8 - subq 0(%rcx),%r8 - movq 8(%rsp),%r9 - sbbq 8(%rcx),%r9 - movq 16(%rsp),%r10 - sbbq 16(%rcx),%r10 - movq 24(%rsp),%r11 - sbbq 24(%rcx),%r11 - movq 80(%rsp),%r12 - sbbq 32(%rcx),%r12 - movq 88(%rsp),%r13 - sbbq 40(%rcx),%r13 - movq 96(%rsp),%r14 - sbbq 48(%rcx),%r14 - movq 104(%rsp),%r15 - sbbq 56(%rcx),%r15 - - - movq 64(%rcx),%rax - subq %rax,%r8 - movq 72(%rcx),%rax - sbbq %rax,%r9 - movq 80(%rcx),%rax - sbbq %rax,%r10 - movq 88(%rcx),%rax - sbbq %rax,%r11 - movq 96(%rcx),%rax - sbbq %rax,%r12 - sbbq %rdx,%r13 - sbbq $0x0,%r14 - sbbq $0x0,%r15 - - - addq 32(%rcx),%r8 - movq %r8,32(%rcx) - adcq 40(%rcx),%r9 - movq %r9,40(%rcx) - adcq 48(%rcx),%r10 - movq %r10,48(%rcx) - adcq 56(%rcx),%r11 - movq %r11,56(%rcx) - adcq 64(%rcx),%r12 - movq %r12,64(%rcx) - adcq 72(%rcx),%r13 - movq %r13,72(%rcx) - adcq 80(%rcx),%r14 - movq %r14,80(%rcx) - adcq 88(%rcx),%r15 - movq %r15,88(%rcx) - movq 96(%rcx),%r12 - adcq $0x0,%r12 - movq %r12,96(%rcx) - adcq $0x0,%rdx - movq %rdx,104(%rcx) - - addq $112,%rsp - - - - popq %r15 - - popq %r14 - - popq %r13 - - popq %r12 - - .byte 0xf3,0xc3 - -#endif diff --git a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aes-586.asm b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aes-586.asm deleted file mode 100644 index c3a47d88f23..00000000000 --- a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aes-586.asm +++ /dev/null @@ -1,3225 +0,0 @@ -; This file is generated from a similarly-named Perl script in the BoringSSL -; source tree. Do not edit by hand. - -%ifdef BORINGSSL_PREFIX -%include "boringssl_prefix_symbols_nasm.inc" -%endif -%ifidn __OUTPUT_FORMAT__,obj -section code use32 class=code align=64 -%elifidn __OUTPUT_FORMAT__,win32 -%ifdef __YASM_VERSION_ID__ -%if __YASM_VERSION_ID__ < 01010000h -%error yasm version 1.1.0 or later needed. -%endif -; Yasm automatically includes .00 and complains about redefining it. -; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html -%else -$@feat.00 equ 1 -%endif -section .text code align=64 -%else -section .text code -%endif -align 16 -__x86_AES_encrypt_compact: - mov DWORD [20+esp],edi - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - mov esi,DWORD [240+edi] - lea esi,[esi*1+esi-2] - lea esi,[esi*8+edi] - mov DWORD [24+esp],esi - mov edi,DWORD [ebp-128] - mov esi,DWORD [ebp-96] - mov edi,DWORD [ebp-64] - mov esi,DWORD [ebp-32] - mov edi,DWORD [ebp] - mov esi,DWORD [32+ebp] - mov edi,DWORD [64+ebp] - mov esi,DWORD [96+ebp] -align 16 -L$000loop: - mov esi,eax - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,bh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,ecx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,edx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - shr ebx,16 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,ch - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,edx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,eax - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - shr ecx,24 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,dh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,eax - shr edi,16 - and edx,255 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - movzx edi,bh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - and edx,255 - movzx edx,BYTE [edx*1+ebp-128] - movzx eax,ah - movzx eax,BYTE [eax*1+ebp-128] - shl eax,8 - xor edx,eax - mov eax,DWORD [4+esp] - and ebx,255 - movzx ebx,BYTE [ebx*1+ebp-128] - shl ebx,16 - xor edx,ebx - mov ebx,DWORD [8+esp] - movzx ecx,BYTE [ecx*1+ebp-128] - shl ecx,24 - xor edx,ecx - mov ecx,esi - mov ebp,2155905152 - and ebp,ecx - lea edi,[ecx*1+ecx] - mov esi,ebp - shr ebp,7 - and edi,4278124286 - sub esi,ebp - mov ebp,ecx - and esi,454761243 - ror ebp,16 - xor esi,edi - mov edi,ecx - xor ecx,esi - ror edi,24 - xor esi,ebp - rol ecx,24 - xor esi,edi - mov ebp,2155905152 - xor ecx,esi - and ebp,edx - lea edi,[edx*1+edx] - mov esi,ebp - shr ebp,7 - and edi,4278124286 - sub esi,ebp - mov ebp,edx - and esi,454761243 - ror ebp,16 - xor esi,edi - mov edi,edx - xor edx,esi - ror edi,24 - xor esi,ebp - rol edx,24 - xor esi,edi - mov ebp,2155905152 - xor edx,esi - and ebp,eax - lea edi,[eax*1+eax] - mov esi,ebp - shr ebp,7 - and edi,4278124286 - sub esi,ebp - mov ebp,eax - and esi,454761243 - ror ebp,16 - xor esi,edi - mov edi,eax - xor eax,esi - ror edi,24 - xor esi,ebp - rol eax,24 - xor esi,edi - mov ebp,2155905152 - xor eax,esi - and ebp,ebx - lea edi,[ebx*1+ebx] - mov esi,ebp - shr ebp,7 - and edi,4278124286 - sub esi,ebp - mov ebp,ebx - and esi,454761243 - ror ebp,16 - xor esi,edi - mov edi,ebx - xor ebx,esi - ror edi,24 - xor esi,ebp - rol ebx,24 - xor esi,edi - xor ebx,esi - mov edi,DWORD [20+esp] - mov ebp,DWORD [28+esp] - add edi,16 - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - cmp edi,DWORD [24+esp] - mov DWORD [20+esp],edi - jb NEAR L$000loop - mov esi,eax - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,bh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,ecx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,edx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - shr ebx,16 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,ch - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,edx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,eax - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - shr ecx,24 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,dh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,eax - shr edi,16 - and edx,255 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - movzx edi,bh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov edi,DWORD [20+esp] - and edx,255 - movzx edx,BYTE [edx*1+ebp-128] - movzx eax,ah - movzx eax,BYTE [eax*1+ebp-128] - shl eax,8 - xor edx,eax - mov eax,DWORD [4+esp] - and ebx,255 - movzx ebx,BYTE [ebx*1+ebp-128] - shl ebx,16 - xor edx,ebx - mov ebx,DWORD [8+esp] - movzx ecx,BYTE [ecx*1+ebp-128] - shl ecx,24 - xor edx,ecx - mov ecx,esi - xor eax,DWORD [16+edi] - xor ebx,DWORD [20+edi] - xor ecx,DWORD [24+edi] - xor edx,DWORD [28+edi] - ret -align 16 -__sse_AES_encrypt_compact: - pxor mm0,[edi] - pxor mm4,[8+edi] - mov esi,DWORD [240+edi] - lea esi,[esi*1+esi-2] - lea esi,[esi*8+edi] - mov DWORD [24+esp],esi - mov eax,454761243 - mov DWORD [8+esp],eax - mov DWORD [12+esp],eax - mov eax,DWORD [ebp-128] - mov ebx,DWORD [ebp-96] - mov ecx,DWORD [ebp-64] - mov edx,DWORD [ebp-32] - mov eax,DWORD [ebp] - mov ebx,DWORD [32+ebp] - mov ecx,DWORD [64+ebp] - mov edx,DWORD [96+ebp] -align 16 -L$001loop: - pshufw mm1,mm0,8 - pshufw mm5,mm4,13 - movd eax,mm1 - movd ebx,mm5 - mov DWORD [20+esp],edi - movzx esi,al - movzx edx,ah - pshufw mm2,mm0,13 - movzx ecx,BYTE [esi*1+ebp-128] - movzx edi,bl - movzx edx,BYTE [edx*1+ebp-128] - shr eax,16 - shl edx,8 - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bh - shl esi,16 - pshufw mm6,mm4,8 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,ah - shl esi,24 - shr ebx,16 - or edx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bh - shl esi,8 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,al - shl esi,24 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bl - movd eax,mm2 - movd mm0,ecx - movzx ecx,BYTE [edi*1+ebp-128] - movzx edi,ah - shl ecx,16 - movd ebx,mm6 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bh - shl esi,24 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bl - shl esi,8 - shr ebx,16 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,al - shr eax,16 - movd mm1,ecx - movzx ecx,BYTE [edi*1+ebp-128] - movzx edi,ah - shl ecx,16 - and eax,255 - or ecx,esi - punpckldq mm0,mm1 - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bh - shl esi,24 - and ebx,255 - movzx eax,BYTE [eax*1+ebp-128] - or ecx,esi - shl eax,16 - movzx esi,BYTE [edi*1+ebp-128] - or edx,eax - shl esi,8 - movzx ebx,BYTE [ebx*1+ebp-128] - or ecx,esi - or edx,ebx - mov edi,DWORD [20+esp] - movd mm4,ecx - movd mm5,edx - punpckldq mm4,mm5 - add edi,16 - cmp edi,DWORD [24+esp] - ja NEAR L$002out - movq mm2,[8+esp] - pxor mm3,mm3 - pxor mm7,mm7 - movq mm1,mm0 - movq mm5,mm4 - pcmpgtb mm3,mm0 - pcmpgtb mm7,mm4 - pand mm3,mm2 - pand mm7,mm2 - pshufw mm2,mm0,177 - pshufw mm6,mm4,177 - paddb mm0,mm0 - paddb mm4,mm4 - pxor mm0,mm3 - pxor mm4,mm7 - pshufw mm3,mm2,177 - pshufw mm7,mm6,177 - pxor mm1,mm0 - pxor mm5,mm4 - pxor mm0,mm2 - pxor mm4,mm6 - movq mm2,mm3 - movq mm6,mm7 - pslld mm3,8 - pslld mm7,8 - psrld mm2,24 - psrld mm6,24 - pxor mm0,mm3 - pxor mm4,mm7 - pxor mm0,mm2 - pxor mm4,mm6 - movq mm3,mm1 - movq mm7,mm5 - movq mm2,[edi] - movq mm6,[8+edi] - psrld mm1,8 - psrld mm5,8 - mov eax,DWORD [ebp-128] - pslld mm3,24 - pslld mm7,24 - mov ebx,DWORD [ebp-64] - pxor mm0,mm1 - pxor mm4,mm5 - mov ecx,DWORD [ebp] - pxor mm0,mm3 - pxor mm4,mm7 - mov edx,DWORD [64+ebp] - pxor mm0,mm2 - pxor mm4,mm6 - jmp NEAR L$001loop -align 16 -L$002out: - pxor mm0,[edi] - pxor mm4,[8+edi] - ret -align 16 -__x86_AES_encrypt: - mov DWORD [20+esp],edi - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - mov esi,DWORD [240+edi] - lea esi,[esi*1+esi-2] - lea esi,[esi*8+edi] - mov DWORD [24+esp],esi -align 16 -L$003loop: - mov esi,eax - and esi,255 - mov esi,DWORD [esi*8+ebp] - movzx edi,bh - xor esi,DWORD [3+edi*8+ebp] - mov edi,ecx - shr edi,16 - and edi,255 - xor esi,DWORD [2+edi*8+ebp] - mov edi,edx - shr edi,24 - xor esi,DWORD [1+edi*8+ebp] - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - shr ebx,16 - mov esi,DWORD [esi*8+ebp] - movzx edi,ch - xor esi,DWORD [3+edi*8+ebp] - mov edi,edx - shr edi,16 - and edi,255 - xor esi,DWORD [2+edi*8+ebp] - mov edi,eax - shr edi,24 - xor esi,DWORD [1+edi*8+ebp] - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - shr ecx,24 - mov esi,DWORD [esi*8+ebp] - movzx edi,dh - xor esi,DWORD [3+edi*8+ebp] - mov edi,eax - shr edi,16 - and edx,255 - and edi,255 - xor esi,DWORD [2+edi*8+ebp] - movzx edi,bh - xor esi,DWORD [1+edi*8+ebp] - mov edi,DWORD [20+esp] - mov edx,DWORD [edx*8+ebp] - movzx eax,ah - xor edx,DWORD [3+eax*8+ebp] - mov eax,DWORD [4+esp] - and ebx,255 - xor edx,DWORD [2+ebx*8+ebp] - mov ebx,DWORD [8+esp] - xor edx,DWORD [1+ecx*8+ebp] - mov ecx,esi - add edi,16 - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - cmp edi,DWORD [24+esp] - mov DWORD [20+esp],edi - jb NEAR L$003loop - mov esi,eax - and esi,255 - mov esi,DWORD [2+esi*8+ebp] - and esi,255 - movzx edi,bh - mov edi,DWORD [edi*8+ebp] - and edi,65280 - xor esi,edi - mov edi,ecx - shr edi,16 - and edi,255 - mov edi,DWORD [edi*8+ebp] - and edi,16711680 - xor esi,edi - mov edi,edx - shr edi,24 - mov edi,DWORD [2+edi*8+ebp] - and edi,4278190080 - xor esi,edi - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - shr ebx,16 - mov esi,DWORD [2+esi*8+ebp] - and esi,255 - movzx edi,ch - mov edi,DWORD [edi*8+ebp] - and edi,65280 - xor esi,edi - mov edi,edx - shr edi,16 - and edi,255 - mov edi,DWORD [edi*8+ebp] - and edi,16711680 - xor esi,edi - mov edi,eax - shr edi,24 - mov edi,DWORD [2+edi*8+ebp] - and edi,4278190080 - xor esi,edi - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - shr ecx,24 - mov esi,DWORD [2+esi*8+ebp] - and esi,255 - movzx edi,dh - mov edi,DWORD [edi*8+ebp] - and edi,65280 - xor esi,edi - mov edi,eax - shr edi,16 - and edx,255 - and edi,255 - mov edi,DWORD [edi*8+ebp] - and edi,16711680 - xor esi,edi - movzx edi,bh - mov edi,DWORD [2+edi*8+ebp] - and edi,4278190080 - xor esi,edi - mov edi,DWORD [20+esp] - and edx,255 - mov edx,DWORD [2+edx*8+ebp] - and edx,255 - movzx eax,ah - mov eax,DWORD [eax*8+ebp] - and eax,65280 - xor edx,eax - mov eax,DWORD [4+esp] - and ebx,255 - mov ebx,DWORD [ebx*8+ebp] - and ebx,16711680 - xor edx,ebx - mov ebx,DWORD [8+esp] - mov ecx,DWORD [2+ecx*8+ebp] - and ecx,4278190080 - xor edx,ecx - mov ecx,esi - add edi,16 - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - ret -align 64 -L$AES_Te: -dd 2774754246,2774754246 -dd 2222750968,2222750968 -dd 2574743534,2574743534 -dd 2373680118,2373680118 -dd 234025727,234025727 -dd 3177933782,3177933782 -dd 2976870366,2976870366 -dd 1422247313,1422247313 -dd 1345335392,1345335392 -dd 50397442,50397442 -dd 2842126286,2842126286 -dd 2099981142,2099981142 -dd 436141799,436141799 -dd 1658312629,1658312629 -dd 3870010189,3870010189 -dd 2591454956,2591454956 -dd 1170918031,1170918031 -dd 2642575903,2642575903 -dd 1086966153,1086966153 -dd 2273148410,2273148410 -dd 368769775,368769775 -dd 3948501426,3948501426 -dd 3376891790,3376891790 -dd 200339707,200339707 -dd 3970805057,3970805057 -dd 1742001331,1742001331 -dd 4255294047,4255294047 -dd 3937382213,3937382213 -dd 3214711843,3214711843 -dd 4154762323,4154762323 -dd 2524082916,2524082916 -dd 1539358875,1539358875 -dd 3266819957,3266819957 -dd 486407649,486407649 -dd 2928907069,2928907069 -dd 1780885068,1780885068 -dd 1513502316,1513502316 -dd 1094664062,1094664062 -dd 49805301,49805301 -dd 1338821763,1338821763 -dd 1546925160,1546925160 -dd 4104496465,4104496465 -dd 887481809,887481809 -dd 150073849,150073849 -dd 2473685474,2473685474 -dd 1943591083,1943591083 -dd 1395732834,1395732834 -dd 1058346282,1058346282 -dd 201589768,201589768 -dd 1388824469,1388824469 -dd 1696801606,1696801606 -dd 1589887901,1589887901 -dd 672667696,672667696 -dd 2711000631,2711000631 -dd 251987210,251987210 -dd 3046808111,3046808111 -dd 151455502,151455502 -dd 907153956,907153956 -dd 2608889883,2608889883 -dd 1038279391,1038279391 -dd 652995533,652995533 -dd 1764173646,1764173646 -dd 3451040383,3451040383 -dd 2675275242,2675275242 -dd 453576978,453576978 -dd 2659418909,2659418909 -dd 1949051992,1949051992 -dd 773462580,773462580 -dd 756751158,756751158 -dd 2993581788,2993581788 -dd 3998898868,3998898868 -dd 4221608027,4221608027 -dd 4132590244,4132590244 -dd 1295727478,1295727478 -dd 1641469623,1641469623 -dd 3467883389,3467883389 -dd 2066295122,2066295122 -dd 1055122397,1055122397 -dd 1898917726,1898917726 -dd 2542044179,2542044179 -dd 4115878822,4115878822 -dd 1758581177,1758581177 -dd 0,0 -dd 753790401,753790401 -dd 1612718144,1612718144 -dd 536673507,536673507 -dd 3367088505,3367088505 -dd 3982187446,3982187446 -dd 3194645204,3194645204 -dd 1187761037,1187761037 -dd 3653156455,3653156455 -dd 1262041458,1262041458 -dd 3729410708,3729410708 -dd 3561770136,3561770136 -dd 3898103984,3898103984 -dd 1255133061,1255133061 -dd 1808847035,1808847035 -dd 720367557,720367557 -dd 3853167183,3853167183 -dd 385612781,385612781 -dd 3309519750,3309519750 -dd 3612167578,3612167578 -dd 1429418854,1429418854 -dd 2491778321,2491778321 -dd 3477423498,3477423498 -dd 284817897,284817897 -dd 100794884,100794884 -dd 2172616702,2172616702 -dd 4031795360,4031795360 -dd 1144798328,1144798328 -dd 3131023141,3131023141 -dd 3819481163,3819481163 -dd 4082192802,4082192802 -dd 4272137053,4272137053 -dd 3225436288,3225436288 -dd 2324664069,2324664069 -dd 2912064063,2912064063 -dd 3164445985,3164445985 -dd 1211644016,1211644016 -dd 83228145,83228145 -dd 3753688163,3753688163 -dd 3249976951,3249976951 -dd 1977277103,1977277103 -dd 1663115586,1663115586 -dd 806359072,806359072 -dd 452984805,452984805 -dd 250868733,250868733 -dd 1842533055,1842533055 -dd 1288555905,1288555905 -dd 336333848,336333848 -dd 890442534,890442534 -dd 804056259,804056259 -dd 3781124030,3781124030 -dd 2727843637,2727843637 -dd 3427026056,3427026056 -dd 957814574,957814574 -dd 1472513171,1472513171 -dd 4071073621,4071073621 -dd 2189328124,2189328124 -dd 1195195770,1195195770 -dd 2892260552,2892260552 -dd 3881655738,3881655738 -dd 723065138,723065138 -dd 2507371494,2507371494 -dd 2690670784,2690670784 -dd 2558624025,2558624025 -dd 3511635870,3511635870 -dd 2145180835,2145180835 -dd 1713513028,1713513028 -dd 2116692564,2116692564 -dd 2878378043,2878378043 -dd 2206763019,2206763019 -dd 3393603212,3393603212 -dd 703524551,703524551 -dd 3552098411,3552098411 -dd 1007948840,1007948840 -dd 2044649127,2044649127 -dd 3797835452,3797835452 -dd 487262998,487262998 -dd 1994120109,1994120109 -dd 1004593371,1004593371 -dd 1446130276,1446130276 -dd 1312438900,1312438900 -dd 503974420,503974420 -dd 3679013266,3679013266 -dd 168166924,168166924 -dd 1814307912,1814307912 -dd 3831258296,3831258296 -dd 1573044895,1573044895 -dd 1859376061,1859376061 -dd 4021070915,4021070915 -dd 2791465668,2791465668 -dd 2828112185,2828112185 -dd 2761266481,2761266481 -dd 937747667,937747667 -dd 2339994098,2339994098 -dd 854058965,854058965 -dd 1137232011,1137232011 -dd 1496790894,1496790894 -dd 3077402074,3077402074 -dd 2358086913,2358086913 -dd 1691735473,1691735473 -dd 3528347292,3528347292 -dd 3769215305,3769215305 -dd 3027004632,3027004632 -dd 4199962284,4199962284 -dd 133494003,133494003 -dd 636152527,636152527 -dd 2942657994,2942657994 -dd 2390391540,2390391540 -dd 3920539207,3920539207 -dd 403179536,403179536 -dd 3585784431,3585784431 -dd 2289596656,2289596656 -dd 1864705354,1864705354 -dd 1915629148,1915629148 -dd 605822008,605822008 -dd 4054230615,4054230615 -dd 3350508659,3350508659 -dd 1371981463,1371981463 -dd 602466507,602466507 -dd 2094914977,2094914977 -dd 2624877800,2624877800 -dd 555687742,555687742 -dd 3712699286,3712699286 -dd 3703422305,3703422305 -dd 2257292045,2257292045 -dd 2240449039,2240449039 -dd 2423288032,2423288032 -dd 1111375484,1111375484 -dd 3300242801,3300242801 -dd 2858837708,2858837708 -dd 3628615824,3628615824 -dd 84083462,84083462 -dd 32962295,32962295 -dd 302911004,302911004 -dd 2741068226,2741068226 -dd 1597322602,1597322602 -dd 4183250862,4183250862 -dd 3501832553,3501832553 -dd 2441512471,2441512471 -dd 1489093017,1489093017 -dd 656219450,656219450 -dd 3114180135,3114180135 -dd 954327513,954327513 -dd 335083755,335083755 -dd 3013122091,3013122091 -dd 856756514,856756514 -dd 3144247762,3144247762 -dd 1893325225,1893325225 -dd 2307821063,2307821063 -dd 2811532339,2811532339 -dd 3063651117,3063651117 -dd 572399164,572399164 -dd 2458355477,2458355477 -dd 552200649,552200649 -dd 1238290055,1238290055 -dd 4283782570,4283782570 -dd 2015897680,2015897680 -dd 2061492133,2061492133 -dd 2408352771,2408352771 -dd 4171342169,4171342169 -dd 2156497161,2156497161 -dd 386731290,386731290 -dd 3669999461,3669999461 -dd 837215959,837215959 -dd 3326231172,3326231172 -dd 3093850320,3093850320 -dd 3275833730,3275833730 -dd 2962856233,2962856233 -dd 1999449434,1999449434 -dd 286199582,286199582 -dd 3417354363,3417354363 -dd 4233385128,4233385128 -dd 3602627437,3602627437 -dd 974525996,974525996 -db 99,124,119,123,242,107,111,197 -db 48,1,103,43,254,215,171,118 -db 202,130,201,125,250,89,71,240 -db 173,212,162,175,156,164,114,192 -db 183,253,147,38,54,63,247,204 -db 52,165,229,241,113,216,49,21 -db 4,199,35,195,24,150,5,154 -db 7,18,128,226,235,39,178,117 -db 9,131,44,26,27,110,90,160 -db 82,59,214,179,41,227,47,132 -db 83,209,0,237,32,252,177,91 -db 106,203,190,57,74,76,88,207 -db 208,239,170,251,67,77,51,133 -db 69,249,2,127,80,60,159,168 -db 81,163,64,143,146,157,56,245 -db 188,182,218,33,16,255,243,210 -db 205,12,19,236,95,151,68,23 -db 196,167,126,61,100,93,25,115 -db 96,129,79,220,34,42,144,136 -db 70,238,184,20,222,94,11,219 -db 224,50,58,10,73,6,36,92 -db 194,211,172,98,145,149,228,121 -db 231,200,55,109,141,213,78,169 -db 108,86,244,234,101,122,174,8 -db 186,120,37,46,28,166,180,198 -db 232,221,116,31,75,189,139,138 -db 112,62,181,102,72,3,246,14 -db 97,53,87,185,134,193,29,158 -db 225,248,152,17,105,217,142,148 -db 155,30,135,233,206,85,40,223 -db 140,161,137,13,191,230,66,104 -db 65,153,45,15,176,84,187,22 -db 99,124,119,123,242,107,111,197 -db 48,1,103,43,254,215,171,118 -db 202,130,201,125,250,89,71,240 -db 173,212,162,175,156,164,114,192 -db 183,253,147,38,54,63,247,204 -db 52,165,229,241,113,216,49,21 -db 4,199,35,195,24,150,5,154 -db 7,18,128,226,235,39,178,117 -db 9,131,44,26,27,110,90,160 -db 82,59,214,179,41,227,47,132 -db 83,209,0,237,32,252,177,91 -db 106,203,190,57,74,76,88,207 -db 208,239,170,251,67,77,51,133 -db 69,249,2,127,80,60,159,168 -db 81,163,64,143,146,157,56,245 -db 188,182,218,33,16,255,243,210 -db 205,12,19,236,95,151,68,23 -db 196,167,126,61,100,93,25,115 -db 96,129,79,220,34,42,144,136 -db 70,238,184,20,222,94,11,219 -db 224,50,58,10,73,6,36,92 -db 194,211,172,98,145,149,228,121 -db 231,200,55,109,141,213,78,169 -db 108,86,244,234,101,122,174,8 -db 186,120,37,46,28,166,180,198 -db 232,221,116,31,75,189,139,138 -db 112,62,181,102,72,3,246,14 -db 97,53,87,185,134,193,29,158 -db 225,248,152,17,105,217,142,148 -db 155,30,135,233,206,85,40,223 -db 140,161,137,13,191,230,66,104 -db 65,153,45,15,176,84,187,22 -db 99,124,119,123,242,107,111,197 -db 48,1,103,43,254,215,171,118 -db 202,130,201,125,250,89,71,240 -db 173,212,162,175,156,164,114,192 -db 183,253,147,38,54,63,247,204 -db 52,165,229,241,113,216,49,21 -db 4,199,35,195,24,150,5,154 -db 7,18,128,226,235,39,178,117 -db 9,131,44,26,27,110,90,160 -db 82,59,214,179,41,227,47,132 -db 83,209,0,237,32,252,177,91 -db 106,203,190,57,74,76,88,207 -db 208,239,170,251,67,77,51,133 -db 69,249,2,127,80,60,159,168 -db 81,163,64,143,146,157,56,245 -db 188,182,218,33,16,255,243,210 -db 205,12,19,236,95,151,68,23 -db 196,167,126,61,100,93,25,115 -db 96,129,79,220,34,42,144,136 -db 70,238,184,20,222,94,11,219 -db 224,50,58,10,73,6,36,92 -db 194,211,172,98,145,149,228,121 -db 231,200,55,109,141,213,78,169 -db 108,86,244,234,101,122,174,8 -db 186,120,37,46,28,166,180,198 -db 232,221,116,31,75,189,139,138 -db 112,62,181,102,72,3,246,14 -db 97,53,87,185,134,193,29,158 -db 225,248,152,17,105,217,142,148 -db 155,30,135,233,206,85,40,223 -db 140,161,137,13,191,230,66,104 -db 65,153,45,15,176,84,187,22 -db 99,124,119,123,242,107,111,197 -db 48,1,103,43,254,215,171,118 -db 202,130,201,125,250,89,71,240 -db 173,212,162,175,156,164,114,192 -db 183,253,147,38,54,63,247,204 -db 52,165,229,241,113,216,49,21 -db 4,199,35,195,24,150,5,154 -db 7,18,128,226,235,39,178,117 -db 9,131,44,26,27,110,90,160 -db 82,59,214,179,41,227,47,132 -db 83,209,0,237,32,252,177,91 -db 106,203,190,57,74,76,88,207 -db 208,239,170,251,67,77,51,133 -db 69,249,2,127,80,60,159,168 -db 81,163,64,143,146,157,56,245 -db 188,182,218,33,16,255,243,210 -db 205,12,19,236,95,151,68,23 -db 196,167,126,61,100,93,25,115 -db 96,129,79,220,34,42,144,136 -db 70,238,184,20,222,94,11,219 -db 224,50,58,10,73,6,36,92 -db 194,211,172,98,145,149,228,121 -db 231,200,55,109,141,213,78,169 -db 108,86,244,234,101,122,174,8 -db 186,120,37,46,28,166,180,198 -db 232,221,116,31,75,189,139,138 -db 112,62,181,102,72,3,246,14 -db 97,53,87,185,134,193,29,158 -db 225,248,152,17,105,217,142,148 -db 155,30,135,233,206,85,40,223 -db 140,161,137,13,191,230,66,104 -db 65,153,45,15,176,84,187,22 -dd 1,2,4,8 -dd 16,32,64,128 -dd 27,54,0,0 -dd 0,0,0,0 -global _aes_nohw_encrypt -align 16 -_aes_nohw_encrypt: -L$_aes_nohw_encrypt_begin: - push ebp - push ebx - push esi - push edi - mov esi,DWORD [20+esp] - mov edi,DWORD [28+esp] - mov eax,esp - sub esp,36 - and esp,-64 - lea ebx,[edi-127] - sub ebx,esp - neg ebx - and ebx,960 - sub esp,ebx - add esp,4 - mov DWORD [28+esp],eax - call L$004pic_point -L$004pic_point: - pop ebp - lea eax,[_OPENSSL_ia32cap_P] - lea ebp,[(L$AES_Te-L$004pic_point)+ebp] - lea ebx,[764+esp] - sub ebx,ebp - and ebx,768 - lea ebp,[2176+ebx*1+ebp] - bt DWORD [eax],25 - jnc NEAR L$005x86 - movq mm0,[esi] - movq mm4,[8+esi] - call __sse_AES_encrypt_compact - mov esp,DWORD [28+esp] - mov esi,DWORD [24+esp] - movq [esi],mm0 - movq [8+esi],mm4 - emms - pop edi - pop esi - pop ebx - pop ebp - ret -align 16 -L$005x86: - mov DWORD [24+esp],ebp - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - call __x86_AES_encrypt_compact - mov esp,DWORD [28+esp] - mov esi,DWORD [24+esp] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - pop edi - pop esi - pop ebx - pop ebp - ret -align 16 -__x86_AES_decrypt_compact: - mov DWORD [20+esp],edi - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - mov esi,DWORD [240+edi] - lea esi,[esi*1+esi-2] - lea esi,[esi*8+edi] - mov DWORD [24+esp],esi - mov edi,DWORD [ebp-128] - mov esi,DWORD [ebp-96] - mov edi,DWORD [ebp-64] - mov esi,DWORD [ebp-32] - mov edi,DWORD [ebp] - mov esi,DWORD [32+ebp] - mov edi,DWORD [64+ebp] - mov esi,DWORD [96+ebp] -align 16 -L$006loop: - mov esi,eax - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,dh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,ecx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,ebx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,ah - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,edx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,ecx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,bh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,eax - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,edx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - and edx,255 - movzx edx,BYTE [edx*1+ebp-128] - movzx ecx,ch - movzx ecx,BYTE [ecx*1+ebp-128] - shl ecx,8 - xor edx,ecx - mov ecx,esi - shr ebx,16 - and ebx,255 - movzx ebx,BYTE [ebx*1+ebp-128] - shl ebx,16 - xor edx,ebx - shr eax,24 - movzx eax,BYTE [eax*1+ebp-128] - shl eax,24 - xor edx,eax - mov edi,2155905152 - and edi,ecx - mov esi,edi - shr edi,7 - lea eax,[ecx*1+ecx] - sub esi,edi - and eax,4278124286 - and esi,454761243 - xor eax,esi - mov edi,2155905152 - and edi,eax - mov esi,edi - shr edi,7 - lea ebx,[eax*1+eax] - sub esi,edi - and ebx,4278124286 - and esi,454761243 - xor eax,ecx - xor ebx,esi - mov edi,2155905152 - and edi,ebx - mov esi,edi - shr edi,7 - lea ebp,[ebx*1+ebx] - sub esi,edi - and ebp,4278124286 - and esi,454761243 - xor ebx,ecx - rol ecx,8 - xor ebp,esi - xor ecx,eax - xor eax,ebp - xor ecx,ebx - xor ebx,ebp - rol eax,24 - xor ecx,ebp - rol ebx,16 - xor ecx,eax - rol ebp,8 - xor ecx,ebx - mov eax,DWORD [4+esp] - xor ecx,ebp - mov DWORD [12+esp],ecx - mov edi,2155905152 - and edi,edx - mov esi,edi - shr edi,7 - lea ebx,[edx*1+edx] - sub esi,edi - and ebx,4278124286 - and esi,454761243 - xor ebx,esi - mov edi,2155905152 - and edi,ebx - mov esi,edi - shr edi,7 - lea ecx,[ebx*1+ebx] - sub esi,edi - and ecx,4278124286 - and esi,454761243 - xor ebx,edx - xor ecx,esi - mov edi,2155905152 - and edi,ecx - mov esi,edi - shr edi,7 - lea ebp,[ecx*1+ecx] - sub esi,edi - and ebp,4278124286 - and esi,454761243 - xor ecx,edx - rol edx,8 - xor ebp,esi - xor edx,ebx - xor ebx,ebp - xor edx,ecx - xor ecx,ebp - rol ebx,24 - xor edx,ebp - rol ecx,16 - xor edx,ebx - rol ebp,8 - xor edx,ecx - mov ebx,DWORD [8+esp] - xor edx,ebp - mov DWORD [16+esp],edx - mov edi,2155905152 - and edi,eax - mov esi,edi - shr edi,7 - lea ecx,[eax*1+eax] - sub esi,edi - and ecx,4278124286 - and esi,454761243 - xor ecx,esi - mov edi,2155905152 - and edi,ecx - mov esi,edi - shr edi,7 - lea edx,[ecx*1+ecx] - sub esi,edi - and edx,4278124286 - and esi,454761243 - xor ecx,eax - xor edx,esi - mov edi,2155905152 - and edi,edx - mov esi,edi - shr edi,7 - lea ebp,[edx*1+edx] - sub esi,edi - and ebp,4278124286 - and esi,454761243 - xor edx,eax - rol eax,8 - xor ebp,esi - xor eax,ecx - xor ecx,ebp - xor eax,edx - xor edx,ebp - rol ecx,24 - xor eax,ebp - rol edx,16 - xor eax,ecx - rol ebp,8 - xor eax,edx - xor eax,ebp - mov edi,2155905152 - and edi,ebx - mov esi,edi - shr edi,7 - lea ecx,[ebx*1+ebx] - sub esi,edi - and ecx,4278124286 - and esi,454761243 - xor ecx,esi - mov edi,2155905152 - and edi,ecx - mov esi,edi - shr edi,7 - lea edx,[ecx*1+ecx] - sub esi,edi - and edx,4278124286 - and esi,454761243 - xor ecx,ebx - xor edx,esi - mov edi,2155905152 - and edi,edx - mov esi,edi - shr edi,7 - lea ebp,[edx*1+edx] - sub esi,edi - and ebp,4278124286 - and esi,454761243 - xor edx,ebx - rol ebx,8 - xor ebp,esi - xor ebx,ecx - xor ecx,ebp - xor ebx,edx - xor edx,ebp - rol ecx,24 - xor ebx,ebp - rol edx,16 - xor ebx,ecx - rol ebp,8 - xor ebx,edx - mov ecx,DWORD [12+esp] - xor ebx,ebp - mov edx,DWORD [16+esp] - mov edi,DWORD [20+esp] - mov ebp,DWORD [28+esp] - add edi,16 - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - cmp edi,DWORD [24+esp] - mov DWORD [20+esp],edi - jb NEAR L$006loop - mov esi,eax - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,dh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,ecx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,ebx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,ah - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,edx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,ecx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - movzx esi,BYTE [esi*1+ebp-128] - movzx edi,bh - movzx edi,BYTE [edi*1+ebp-128] - shl edi,8 - xor esi,edi - mov edi,eax - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,16 - xor esi,edi - mov edi,edx - shr edi,24 - movzx edi,BYTE [edi*1+ebp-128] - shl edi,24 - xor esi,edi - mov edi,DWORD [20+esp] - and edx,255 - movzx edx,BYTE [edx*1+ebp-128] - movzx ecx,ch - movzx ecx,BYTE [ecx*1+ebp-128] - shl ecx,8 - xor edx,ecx - mov ecx,esi - shr ebx,16 - and ebx,255 - movzx ebx,BYTE [ebx*1+ebp-128] - shl ebx,16 - xor edx,ebx - mov ebx,DWORD [8+esp] - shr eax,24 - movzx eax,BYTE [eax*1+ebp-128] - shl eax,24 - xor edx,eax - mov eax,DWORD [4+esp] - xor eax,DWORD [16+edi] - xor ebx,DWORD [20+edi] - xor ecx,DWORD [24+edi] - xor edx,DWORD [28+edi] - ret -align 16 -__sse_AES_decrypt_compact: - pxor mm0,[edi] - pxor mm4,[8+edi] - mov esi,DWORD [240+edi] - lea esi,[esi*1+esi-2] - lea esi,[esi*8+edi] - mov DWORD [24+esp],esi - mov eax,454761243 - mov DWORD [8+esp],eax - mov DWORD [12+esp],eax - mov eax,DWORD [ebp-128] - mov ebx,DWORD [ebp-96] - mov ecx,DWORD [ebp-64] - mov edx,DWORD [ebp-32] - mov eax,DWORD [ebp] - mov ebx,DWORD [32+ebp] - mov ecx,DWORD [64+ebp] - mov edx,DWORD [96+ebp] -align 16 -L$007loop: - pshufw mm1,mm0,12 - pshufw mm5,mm4,9 - movd eax,mm1 - movd ebx,mm5 - mov DWORD [20+esp],edi - movzx esi,al - movzx edx,ah - pshufw mm2,mm0,6 - movzx ecx,BYTE [esi*1+ebp-128] - movzx edi,bl - movzx edx,BYTE [edx*1+ebp-128] - shr eax,16 - shl edx,8 - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bh - shl esi,16 - pshufw mm6,mm4,3 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,ah - shl esi,24 - shr ebx,16 - or edx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bh - shl esi,24 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,al - shl esi,8 - movd eax,mm2 - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bl - shl esi,16 - movd ebx,mm6 - movd mm0,ecx - movzx ecx,BYTE [edi*1+ebp-128] - movzx edi,al - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bl - or edx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,ah - shl esi,16 - shr eax,16 - or edx,esi - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,bh - shr ebx,16 - shl esi,8 - movd mm1,edx - movzx edx,BYTE [edi*1+ebp-128] - movzx edi,bh - shl edx,24 - and ebx,255 - or edx,esi - punpckldq mm0,mm1 - movzx esi,BYTE [edi*1+ebp-128] - movzx edi,al - shl esi,8 - movzx eax,ah - movzx ebx,BYTE [ebx*1+ebp-128] - or ecx,esi - movzx esi,BYTE [edi*1+ebp-128] - or edx,ebx - shl esi,16 - movzx eax,BYTE [eax*1+ebp-128] - or edx,esi - shl eax,24 - or ecx,eax - mov edi,DWORD [20+esp] - movd mm4,edx - movd mm5,ecx - punpckldq mm4,mm5 - add edi,16 - cmp edi,DWORD [24+esp] - ja NEAR L$008out - movq mm3,mm0 - movq mm7,mm4 - pshufw mm2,mm0,228 - pshufw mm6,mm4,228 - movq mm1,mm0 - movq mm5,mm4 - pshufw mm0,mm0,177 - pshufw mm4,mm4,177 - pslld mm2,8 - pslld mm6,8 - psrld mm3,8 - psrld mm7,8 - pxor mm0,mm2 - pxor mm4,mm6 - pxor mm0,mm3 - pxor mm4,mm7 - pslld mm2,16 - pslld mm6,16 - psrld mm3,16 - psrld mm7,16 - pxor mm0,mm2 - pxor mm4,mm6 - pxor mm0,mm3 - pxor mm4,mm7 - movq mm3,[8+esp] - pxor mm2,mm2 - pxor mm6,mm6 - pcmpgtb mm2,mm1 - pcmpgtb mm6,mm5 - pand mm2,mm3 - pand mm6,mm3 - paddb mm1,mm1 - paddb mm5,mm5 - pxor mm1,mm2 - pxor mm5,mm6 - movq mm3,mm1 - movq mm7,mm5 - movq mm2,mm1 - movq mm6,mm5 - pxor mm0,mm1 - pxor mm4,mm5 - pslld mm3,24 - pslld mm7,24 - psrld mm2,8 - psrld mm6,8 - pxor mm0,mm3 - pxor mm4,mm7 - pxor mm0,mm2 - pxor mm4,mm6 - movq mm2,[8+esp] - pxor mm3,mm3 - pxor mm7,mm7 - pcmpgtb mm3,mm1 - pcmpgtb mm7,mm5 - pand mm3,mm2 - pand mm7,mm2 - paddb mm1,mm1 - paddb mm5,mm5 - pxor mm1,mm3 - pxor mm5,mm7 - pshufw mm3,mm1,177 - pshufw mm7,mm5,177 - pxor mm0,mm1 - pxor mm4,mm5 - pxor mm0,mm3 - pxor mm4,mm7 - pxor mm3,mm3 - pxor mm7,mm7 - pcmpgtb mm3,mm1 - pcmpgtb mm7,mm5 - pand mm3,mm2 - pand mm7,mm2 - paddb mm1,mm1 - paddb mm5,mm5 - pxor mm1,mm3 - pxor mm5,mm7 - pxor mm0,mm1 - pxor mm4,mm5 - movq mm3,mm1 - movq mm7,mm5 - pshufw mm2,mm1,177 - pshufw mm6,mm5,177 - pxor mm0,mm2 - pxor mm4,mm6 - pslld mm1,8 - pslld mm5,8 - psrld mm3,8 - psrld mm7,8 - movq mm2,[edi] - movq mm6,[8+edi] - pxor mm0,mm1 - pxor mm4,mm5 - pxor mm0,mm3 - pxor mm4,mm7 - mov eax,DWORD [ebp-128] - pslld mm1,16 - pslld mm5,16 - mov ebx,DWORD [ebp-64] - psrld mm3,16 - psrld mm7,16 - mov ecx,DWORD [ebp] - pxor mm0,mm1 - pxor mm4,mm5 - mov edx,DWORD [64+ebp] - pxor mm0,mm3 - pxor mm4,mm7 - pxor mm0,mm2 - pxor mm4,mm6 - jmp NEAR L$007loop -align 16 -L$008out: - pxor mm0,[edi] - pxor mm4,[8+edi] - ret -align 16 -__x86_AES_decrypt: - mov DWORD [20+esp],edi - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - mov esi,DWORD [240+edi] - lea esi,[esi*1+esi-2] - lea esi,[esi*8+edi] - mov DWORD [24+esp],esi -align 16 -L$009loop: - mov esi,eax - and esi,255 - mov esi,DWORD [esi*8+ebp] - movzx edi,dh - xor esi,DWORD [3+edi*8+ebp] - mov edi,ecx - shr edi,16 - and edi,255 - xor esi,DWORD [2+edi*8+ebp] - mov edi,ebx - shr edi,24 - xor esi,DWORD [1+edi*8+ebp] - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - mov esi,DWORD [esi*8+ebp] - movzx edi,ah - xor esi,DWORD [3+edi*8+ebp] - mov edi,edx - shr edi,16 - and edi,255 - xor esi,DWORD [2+edi*8+ebp] - mov edi,ecx - shr edi,24 - xor esi,DWORD [1+edi*8+ebp] - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - mov esi,DWORD [esi*8+ebp] - movzx edi,bh - xor esi,DWORD [3+edi*8+ebp] - mov edi,eax - shr edi,16 - and edi,255 - xor esi,DWORD [2+edi*8+ebp] - mov edi,edx - shr edi,24 - xor esi,DWORD [1+edi*8+ebp] - mov edi,DWORD [20+esp] - and edx,255 - mov edx,DWORD [edx*8+ebp] - movzx ecx,ch - xor edx,DWORD [3+ecx*8+ebp] - mov ecx,esi - shr ebx,16 - and ebx,255 - xor edx,DWORD [2+ebx*8+ebp] - mov ebx,DWORD [8+esp] - shr eax,24 - xor edx,DWORD [1+eax*8+ebp] - mov eax,DWORD [4+esp] - add edi,16 - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - cmp edi,DWORD [24+esp] - mov DWORD [20+esp],edi - jb NEAR L$009loop - lea ebp,[2176+ebp] - mov edi,DWORD [ebp-128] - mov esi,DWORD [ebp-96] - mov edi,DWORD [ebp-64] - mov esi,DWORD [ebp-32] - mov edi,DWORD [ebp] - mov esi,DWORD [32+ebp] - mov edi,DWORD [64+ebp] - mov esi,DWORD [96+ebp] - lea ebp,[ebp-128] - mov esi,eax - and esi,255 - movzx esi,BYTE [esi*1+ebp] - movzx edi,dh - movzx edi,BYTE [edi*1+ebp] - shl edi,8 - xor esi,edi - mov edi,ecx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp] - shl edi,16 - xor esi,edi - mov edi,ebx - shr edi,24 - movzx edi,BYTE [edi*1+ebp] - shl edi,24 - xor esi,edi - mov DWORD [4+esp],esi - mov esi,ebx - and esi,255 - movzx esi,BYTE [esi*1+ebp] - movzx edi,ah - movzx edi,BYTE [edi*1+ebp] - shl edi,8 - xor esi,edi - mov edi,edx - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp] - shl edi,16 - xor esi,edi - mov edi,ecx - shr edi,24 - movzx edi,BYTE [edi*1+ebp] - shl edi,24 - xor esi,edi - mov DWORD [8+esp],esi - mov esi,ecx - and esi,255 - movzx esi,BYTE [esi*1+ebp] - movzx edi,bh - movzx edi,BYTE [edi*1+ebp] - shl edi,8 - xor esi,edi - mov edi,eax - shr edi,16 - and edi,255 - movzx edi,BYTE [edi*1+ebp] - shl edi,16 - xor esi,edi - mov edi,edx - shr edi,24 - movzx edi,BYTE [edi*1+ebp] - shl edi,24 - xor esi,edi - mov edi,DWORD [20+esp] - and edx,255 - movzx edx,BYTE [edx*1+ebp] - movzx ecx,ch - movzx ecx,BYTE [ecx*1+ebp] - shl ecx,8 - xor edx,ecx - mov ecx,esi - shr ebx,16 - and ebx,255 - movzx ebx,BYTE [ebx*1+ebp] - shl ebx,16 - xor edx,ebx - mov ebx,DWORD [8+esp] - shr eax,24 - movzx eax,BYTE [eax*1+ebp] - shl eax,24 - xor edx,eax - mov eax,DWORD [4+esp] - lea ebp,[ebp-2048] - add edi,16 - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - ret -align 64 -L$AES_Td: -dd 1353184337,1353184337 -dd 1399144830,1399144830 -dd 3282310938,3282310938 -dd 2522752826,2522752826 -dd 3412831035,3412831035 -dd 4047871263,4047871263 -dd 2874735276,2874735276 -dd 2466505547,2466505547 -dd 1442459680,1442459680 -dd 4134368941,4134368941 -dd 2440481928,2440481928 -dd 625738485,625738485 -dd 4242007375,4242007375 -dd 3620416197,3620416197 -dd 2151953702,2151953702 -dd 2409849525,2409849525 -dd 1230680542,1230680542 -dd 1729870373,1729870373 -dd 2551114309,2551114309 -dd 3787521629,3787521629 -dd 41234371,41234371 -dd 317738113,317738113 -dd 2744600205,2744600205 -dd 3338261355,3338261355 -dd 3881799427,3881799427 -dd 2510066197,2510066197 -dd 3950669247,3950669247 -dd 3663286933,3663286933 -dd 763608788,763608788 -dd 3542185048,3542185048 -dd 694804553,694804553 -dd 1154009486,1154009486 -dd 1787413109,1787413109 -dd 2021232372,2021232372 -dd 1799248025,1799248025 -dd 3715217703,3715217703 -dd 3058688446,3058688446 -dd 397248752,397248752 -dd 1722556617,1722556617 -dd 3023752829,3023752829 -dd 407560035,407560035 -dd 2184256229,2184256229 -dd 1613975959,1613975959 -dd 1165972322,1165972322 -dd 3765920945,3765920945 -dd 2226023355,2226023355 -dd 480281086,480281086 -dd 2485848313,2485848313 -dd 1483229296,1483229296 -dd 436028815,436028815 -dd 2272059028,2272059028 -dd 3086515026,3086515026 -dd 601060267,601060267 -dd 3791801202,3791801202 -dd 1468997603,1468997603 -dd 715871590,715871590 -dd 120122290,120122290 -dd 63092015,63092015 -dd 2591802758,2591802758 -dd 2768779219,2768779219 -dd 4068943920,4068943920 -dd 2997206819,2997206819 -dd 3127509762,3127509762 -dd 1552029421,1552029421 -dd 723308426,723308426 -dd 2461301159,2461301159 -dd 4042393587,4042393587 -dd 2715969870,2715969870 -dd 3455375973,3455375973 -dd 3586000134,3586000134 -dd 526529745,526529745 -dd 2331944644,2331944644 -dd 2639474228,2639474228 -dd 2689987490,2689987490 -dd 853641733,853641733 -dd 1978398372,1978398372 -dd 971801355,971801355 -dd 2867814464,2867814464 -dd 111112542,111112542 -dd 1360031421,1360031421 -dd 4186579262,4186579262 -dd 1023860118,1023860118 -dd 2919579357,2919579357 -dd 1186850381,1186850381 -dd 3045938321,3045938321 -dd 90031217,90031217 -dd 1876166148,1876166148 -dd 4279586912,4279586912 -dd 620468249,620468249 -dd 2548678102,2548678102 -dd 3426959497,3426959497 -dd 2006899047,2006899047 -dd 3175278768,3175278768 -dd 2290845959,2290845959 -dd 945494503,945494503 -dd 3689859193,3689859193 -dd 1191869601,1191869601 -dd 3910091388,3910091388 -dd 3374220536,3374220536 -dd 0,0 -dd 2206629897,2206629897 -dd 1223502642,1223502642 -dd 2893025566,2893025566 -dd 1316117100,1316117100 -dd 4227796733,4227796733 -dd 1446544655,1446544655 -dd 517320253,517320253 -dd 658058550,658058550 -dd 1691946762,1691946762 -dd 564550760,564550760 -dd 3511966619,3511966619 -dd 976107044,976107044 -dd 2976320012,2976320012 -dd 266819475,266819475 -dd 3533106868,3533106868 -dd 2660342555,2660342555 -dd 1338359936,1338359936 -dd 2720062561,2720062561 -dd 1766553434,1766553434 -dd 370807324,370807324 -dd 179999714,179999714 -dd 3844776128,3844776128 -dd 1138762300,1138762300 -dd 488053522,488053522 -dd 185403662,185403662 -dd 2915535858,2915535858 -dd 3114841645,3114841645 -dd 3366526484,3366526484 -dd 2233069911,2233069911 -dd 1275557295,1275557295 -dd 3151862254,3151862254 -dd 4250959779,4250959779 -dd 2670068215,2670068215 -dd 3170202204,3170202204 -dd 3309004356,3309004356 -dd 880737115,880737115 -dd 1982415755,1982415755 -dd 3703972811,3703972811 -dd 1761406390,1761406390 -dd 1676797112,1676797112 -dd 3403428311,3403428311 -dd 277177154,277177154 -dd 1076008723,1076008723 -dd 538035844,538035844 -dd 2099530373,2099530373 -dd 4164795346,4164795346 -dd 288553390,288553390 -dd 1839278535,1839278535 -dd 1261411869,1261411869 -dd 4080055004,4080055004 -dd 3964831245,3964831245 -dd 3504587127,3504587127 -dd 1813426987,1813426987 -dd 2579067049,2579067049 -dd 4199060497,4199060497 -dd 577038663,577038663 -dd 3297574056,3297574056 -dd 440397984,440397984 -dd 3626794326,3626794326 -dd 4019204898,4019204898 -dd 3343796615,3343796615 -dd 3251714265,3251714265 -dd 4272081548,4272081548 -dd 906744984,906744984 -dd 3481400742,3481400742 -dd 685669029,685669029 -dd 646887386,646887386 -dd 2764025151,2764025151 -dd 3835509292,3835509292 -dd 227702864,227702864 -dd 2613862250,2613862250 -dd 1648787028,1648787028 -dd 3256061430,3256061430 -dd 3904428176,3904428176 -dd 1593260334,1593260334 -dd 4121936770,4121936770 -dd 3196083615,3196083615 -dd 2090061929,2090061929 -dd 2838353263,2838353263 -dd 3004310991,3004310991 -dd 999926984,999926984 -dd 2809993232,2809993232 -dd 1852021992,1852021992 -dd 2075868123,2075868123 -dd 158869197,158869197 -dd 4095236462,4095236462 -dd 28809964,28809964 -dd 2828685187,2828685187 -dd 1701746150,1701746150 -dd 2129067946,2129067946 -dd 147831841,147831841 -dd 3873969647,3873969647 -dd 3650873274,3650873274 -dd 3459673930,3459673930 -dd 3557400554,3557400554 -dd 3598495785,3598495785 -dd 2947720241,2947720241 -dd 824393514,824393514 -dd 815048134,815048134 -dd 3227951669,3227951669 -dd 935087732,935087732 -dd 2798289660,2798289660 -dd 2966458592,2966458592 -dd 366520115,366520115 -dd 1251476721,1251476721 -dd 4158319681,4158319681 -dd 240176511,240176511 -dd 804688151,804688151 -dd 2379631990,2379631990 -dd 1303441219,1303441219 -dd 1414376140,1414376140 -dd 3741619940,3741619940 -dd 3820343710,3820343710 -dd 461924940,461924940 -dd 3089050817,3089050817 -dd 2136040774,2136040774 -dd 82468509,82468509 -dd 1563790337,1563790337 -dd 1937016826,1937016826 -dd 776014843,776014843 -dd 1511876531,1511876531 -dd 1389550482,1389550482 -dd 861278441,861278441 -dd 323475053,323475053 -dd 2355222426,2355222426 -dd 2047648055,2047648055 -dd 2383738969,2383738969 -dd 2302415851,2302415851 -dd 3995576782,3995576782 -dd 902390199,902390199 -dd 3991215329,3991215329 -dd 1018251130,1018251130 -dd 1507840668,1507840668 -dd 1064563285,1064563285 -dd 2043548696,2043548696 -dd 3208103795,3208103795 -dd 3939366739,3939366739 -dd 1537932639,1537932639 -dd 342834655,342834655 -dd 2262516856,2262516856 -dd 2180231114,2180231114 -dd 1053059257,1053059257 -dd 741614648,741614648 -dd 1598071746,1598071746 -dd 1925389590,1925389590 -dd 203809468,203809468 -dd 2336832552,2336832552 -dd 1100287487,1100287487 -dd 1895934009,1895934009 -dd 3736275976,3736275976 -dd 2632234200,2632234200 -dd 2428589668,2428589668 -dd 1636092795,1636092795 -dd 1890988757,1890988757 -dd 1952214088,1952214088 -dd 1113045200,1113045200 -db 82,9,106,213,48,54,165,56 -db 191,64,163,158,129,243,215,251 -db 124,227,57,130,155,47,255,135 -db 52,142,67,68,196,222,233,203 -db 84,123,148,50,166,194,35,61 -db 238,76,149,11,66,250,195,78 -db 8,46,161,102,40,217,36,178 -db 118,91,162,73,109,139,209,37 -db 114,248,246,100,134,104,152,22 -db 212,164,92,204,93,101,182,146 -db 108,112,72,80,253,237,185,218 -db 94,21,70,87,167,141,157,132 -db 144,216,171,0,140,188,211,10 -db 247,228,88,5,184,179,69,6 -db 208,44,30,143,202,63,15,2 -db 193,175,189,3,1,19,138,107 -db 58,145,17,65,79,103,220,234 -db 151,242,207,206,240,180,230,115 -db 150,172,116,34,231,173,53,133 -db 226,249,55,232,28,117,223,110 -db 71,241,26,113,29,41,197,137 -db 111,183,98,14,170,24,190,27 -db 252,86,62,75,198,210,121,32 -db 154,219,192,254,120,205,90,244 -db 31,221,168,51,136,7,199,49 -db 177,18,16,89,39,128,236,95 -db 96,81,127,169,25,181,74,13 -db 45,229,122,159,147,201,156,239 -db 160,224,59,77,174,42,245,176 -db 200,235,187,60,131,83,153,97 -db 23,43,4,126,186,119,214,38 -db 225,105,20,99,85,33,12,125 -db 82,9,106,213,48,54,165,56 -db 191,64,163,158,129,243,215,251 -db 124,227,57,130,155,47,255,135 -db 52,142,67,68,196,222,233,203 -db 84,123,148,50,166,194,35,61 -db 238,76,149,11,66,250,195,78 -db 8,46,161,102,40,217,36,178 -db 118,91,162,73,109,139,209,37 -db 114,248,246,100,134,104,152,22 -db 212,164,92,204,93,101,182,146 -db 108,112,72,80,253,237,185,218 -db 94,21,70,87,167,141,157,132 -db 144,216,171,0,140,188,211,10 -db 247,228,88,5,184,179,69,6 -db 208,44,30,143,202,63,15,2 -db 193,175,189,3,1,19,138,107 -db 58,145,17,65,79,103,220,234 -db 151,242,207,206,240,180,230,115 -db 150,172,116,34,231,173,53,133 -db 226,249,55,232,28,117,223,110 -db 71,241,26,113,29,41,197,137 -db 111,183,98,14,170,24,190,27 -db 252,86,62,75,198,210,121,32 -db 154,219,192,254,120,205,90,244 -db 31,221,168,51,136,7,199,49 -db 177,18,16,89,39,128,236,95 -db 96,81,127,169,25,181,74,13 -db 45,229,122,159,147,201,156,239 -db 160,224,59,77,174,42,245,176 -db 200,235,187,60,131,83,153,97 -db 23,43,4,126,186,119,214,38 -db 225,105,20,99,85,33,12,125 -db 82,9,106,213,48,54,165,56 -db 191,64,163,158,129,243,215,251 -db 124,227,57,130,155,47,255,135 -db 52,142,67,68,196,222,233,203 -db 84,123,148,50,166,194,35,61 -db 238,76,149,11,66,250,195,78 -db 8,46,161,102,40,217,36,178 -db 118,91,162,73,109,139,209,37 -db 114,248,246,100,134,104,152,22 -db 212,164,92,204,93,101,182,146 -db 108,112,72,80,253,237,185,218 -db 94,21,70,87,167,141,157,132 -db 144,216,171,0,140,188,211,10 -db 247,228,88,5,184,179,69,6 -db 208,44,30,143,202,63,15,2 -db 193,175,189,3,1,19,138,107 -db 58,145,17,65,79,103,220,234 -db 151,242,207,206,240,180,230,115 -db 150,172,116,34,231,173,53,133 -db 226,249,55,232,28,117,223,110 -db 71,241,26,113,29,41,197,137 -db 111,183,98,14,170,24,190,27 -db 252,86,62,75,198,210,121,32 -db 154,219,192,254,120,205,90,244 -db 31,221,168,51,136,7,199,49 -db 177,18,16,89,39,128,236,95 -db 96,81,127,169,25,181,74,13 -db 45,229,122,159,147,201,156,239 -db 160,224,59,77,174,42,245,176 -db 200,235,187,60,131,83,153,97 -db 23,43,4,126,186,119,214,38 -db 225,105,20,99,85,33,12,125 -db 82,9,106,213,48,54,165,56 -db 191,64,163,158,129,243,215,251 -db 124,227,57,130,155,47,255,135 -db 52,142,67,68,196,222,233,203 -db 84,123,148,50,166,194,35,61 -db 238,76,149,11,66,250,195,78 -db 8,46,161,102,40,217,36,178 -db 118,91,162,73,109,139,209,37 -db 114,248,246,100,134,104,152,22 -db 212,164,92,204,93,101,182,146 -db 108,112,72,80,253,237,185,218 -db 94,21,70,87,167,141,157,132 -db 144,216,171,0,140,188,211,10 -db 247,228,88,5,184,179,69,6 -db 208,44,30,143,202,63,15,2 -db 193,175,189,3,1,19,138,107 -db 58,145,17,65,79,103,220,234 -db 151,242,207,206,240,180,230,115 -db 150,172,116,34,231,173,53,133 -db 226,249,55,232,28,117,223,110 -db 71,241,26,113,29,41,197,137 -db 111,183,98,14,170,24,190,27 -db 252,86,62,75,198,210,121,32 -db 154,219,192,254,120,205,90,244 -db 31,221,168,51,136,7,199,49 -db 177,18,16,89,39,128,236,95 -db 96,81,127,169,25,181,74,13 -db 45,229,122,159,147,201,156,239 -db 160,224,59,77,174,42,245,176 -db 200,235,187,60,131,83,153,97 -db 23,43,4,126,186,119,214,38 -db 225,105,20,99,85,33,12,125 -global _aes_nohw_decrypt -align 16 -_aes_nohw_decrypt: -L$_aes_nohw_decrypt_begin: - push ebp - push ebx - push esi - push edi - mov esi,DWORD [20+esp] - mov edi,DWORD [28+esp] - mov eax,esp - sub esp,36 - and esp,-64 - lea ebx,[edi-127] - sub ebx,esp - neg ebx - and ebx,960 - sub esp,ebx - add esp,4 - mov DWORD [28+esp],eax - call L$010pic_point -L$010pic_point: - pop ebp - lea eax,[_OPENSSL_ia32cap_P] - lea ebp,[(L$AES_Td-L$010pic_point)+ebp] - lea ebx,[764+esp] - sub ebx,ebp - and ebx,768 - lea ebp,[2176+ebx*1+ebp] - bt DWORD [eax],25 - jnc NEAR L$011x86 - movq mm0,[esi] - movq mm4,[8+esi] - call __sse_AES_decrypt_compact - mov esp,DWORD [28+esp] - mov esi,DWORD [24+esp] - movq [esi],mm0 - movq [8+esi],mm4 - emms - pop edi - pop esi - pop ebx - pop ebp - ret -align 16 -L$011x86: - mov DWORD [24+esp],ebp - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - call __x86_AES_decrypt_compact - mov esp,DWORD [28+esp] - mov esi,DWORD [24+esp] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - pop edi - pop esi - pop ebx - pop ebp - ret -global _aes_nohw_cbc_encrypt -align 16 -_aes_nohw_cbc_encrypt: -L$_aes_nohw_cbc_encrypt_begin: - push ebp - push ebx - push esi - push edi - mov ecx,DWORD [28+esp] - cmp ecx,0 - je NEAR L$012drop_out - call L$013pic_point -L$013pic_point: - pop ebp - lea eax,[_OPENSSL_ia32cap_P] - cmp DWORD [40+esp],0 - lea ebp,[(L$AES_Te-L$013pic_point)+ebp] - jne NEAR L$014picked_te - lea ebp,[(L$AES_Td-L$AES_Te)+ebp] -L$014picked_te: - pushfd - cld - cmp ecx,512 - jb NEAR L$015slow_way - test ecx,15 - jnz NEAR L$015slow_way - bt DWORD [eax],28 - jc NEAR L$015slow_way - lea esi,[esp-324] - and esi,-64 - mov eax,ebp - lea ebx,[2304+ebp] - mov edx,esi - and eax,4095 - and ebx,4095 - and edx,4095 - cmp edx,ebx - jb NEAR L$016tbl_break_out - sub edx,ebx - sub esi,edx - jmp NEAR L$017tbl_ok -align 4 -L$016tbl_break_out: - sub edx,eax - and edx,4095 - add edx,384 - sub esi,edx -align 4 -L$017tbl_ok: - lea edx,[24+esp] - xchg esp,esi - add esp,4 - mov DWORD [24+esp],ebp - mov DWORD [28+esp],esi - mov eax,DWORD [edx] - mov ebx,DWORD [4+edx] - mov edi,DWORD [12+edx] - mov esi,DWORD [16+edx] - mov edx,DWORD [20+edx] - mov DWORD [32+esp],eax - mov DWORD [36+esp],ebx - mov DWORD [40+esp],ecx - mov DWORD [44+esp],edi - mov DWORD [48+esp],esi - mov DWORD [316+esp],0 - mov ebx,edi - mov ecx,61 - sub ebx,ebp - mov esi,edi - and ebx,4095 - lea edi,[76+esp] - cmp ebx,2304 - jb NEAR L$018do_copy - cmp ebx,3852 - jb NEAR L$019skip_copy -align 4 -L$018do_copy: - mov DWORD [44+esp],edi -dd 2784229001 -L$019skip_copy: - mov edi,16 -align 4 -L$020prefetch_tbl: - mov eax,DWORD [ebp] - mov ebx,DWORD [32+ebp] - mov ecx,DWORD [64+ebp] - mov esi,DWORD [96+ebp] - lea ebp,[128+ebp] - sub edi,1 - jnz NEAR L$020prefetch_tbl - sub ebp,2048 - mov esi,DWORD [32+esp] - mov edi,DWORD [48+esp] - cmp edx,0 - je NEAR L$021fast_decrypt - mov eax,DWORD [edi] - mov ebx,DWORD [4+edi] -align 16 -L$022fast_enc_loop: - mov ecx,DWORD [8+edi] - mov edx,DWORD [12+edi] - xor eax,DWORD [esi] - xor ebx,DWORD [4+esi] - xor ecx,DWORD [8+esi] - xor edx,DWORD [12+esi] - mov edi,DWORD [44+esp] - call __x86_AES_encrypt - mov esi,DWORD [32+esp] - mov edi,DWORD [36+esp] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - lea esi,[16+esi] - mov ecx,DWORD [40+esp] - mov DWORD [32+esp],esi - lea edx,[16+edi] - mov DWORD [36+esp],edx - sub ecx,16 - mov DWORD [40+esp],ecx - jnz NEAR L$022fast_enc_loop - mov esi,DWORD [48+esp] - mov ecx,DWORD [8+edi] - mov edx,DWORD [12+edi] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - cmp DWORD [316+esp],0 - mov edi,DWORD [44+esp] - je NEAR L$023skip_ezero - mov ecx,60 - xor eax,eax -align 4 -dd 2884892297 -L$023skip_ezero: - mov esp,DWORD [28+esp] - popfd -L$012drop_out: - pop edi - pop esi - pop ebx - pop ebp - ret - pushfd -align 16 -L$021fast_decrypt: - cmp esi,DWORD [36+esp] - je NEAR L$024fast_dec_in_place - mov DWORD [52+esp],edi -align 4 -align 16 -L$025fast_dec_loop: - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - mov edi,DWORD [44+esp] - call __x86_AES_decrypt - mov edi,DWORD [52+esp] - mov esi,DWORD [40+esp] - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - mov edi,DWORD [36+esp] - mov esi,DWORD [32+esp] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov ecx,DWORD [40+esp] - mov DWORD [52+esp],esi - lea esi,[16+esi] - mov DWORD [32+esp],esi - lea edi,[16+edi] - mov DWORD [36+esp],edi - sub ecx,16 - mov DWORD [40+esp],ecx - jnz NEAR L$025fast_dec_loop - mov edi,DWORD [52+esp] - mov esi,DWORD [48+esp] - mov eax,DWORD [edi] - mov ebx,DWORD [4+edi] - mov ecx,DWORD [8+edi] - mov edx,DWORD [12+edi] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - jmp NEAR L$026fast_dec_out -align 16 -L$024fast_dec_in_place: -L$027fast_dec_in_place_loop: - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - lea edi,[60+esp] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov edi,DWORD [44+esp] - call __x86_AES_decrypt - mov edi,DWORD [48+esp] - mov esi,DWORD [36+esp] - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - lea esi,[16+esi] - mov DWORD [36+esp],esi - lea esi,[60+esp] - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov esi,DWORD [32+esp] - mov ecx,DWORD [40+esp] - lea esi,[16+esi] - mov DWORD [32+esp],esi - sub ecx,16 - mov DWORD [40+esp],ecx - jnz NEAR L$027fast_dec_in_place_loop -align 4 -L$026fast_dec_out: - cmp DWORD [316+esp],0 - mov edi,DWORD [44+esp] - je NEAR L$028skip_dzero - mov ecx,60 - xor eax,eax -align 4 -dd 2884892297 -L$028skip_dzero: - mov esp,DWORD [28+esp] - popfd - pop edi - pop esi - pop ebx - pop ebp - ret - pushfd -align 16 -L$015slow_way: - mov eax,DWORD [eax] - mov edi,DWORD [36+esp] - lea esi,[esp-80] - and esi,-64 - lea ebx,[edi-143] - sub ebx,esi - neg ebx - and ebx,960 - sub esi,ebx - lea ebx,[768+esi] - sub ebx,ebp - and ebx,768 - lea ebp,[2176+ebx*1+ebp] - lea edx,[24+esp] - xchg esp,esi - add esp,4 - mov DWORD [24+esp],ebp - mov DWORD [28+esp],esi - mov DWORD [52+esp],eax - mov eax,DWORD [edx] - mov ebx,DWORD [4+edx] - mov esi,DWORD [16+edx] - mov edx,DWORD [20+edx] - mov DWORD [32+esp],eax - mov DWORD [36+esp],ebx - mov DWORD [40+esp],ecx - mov DWORD [44+esp],edi - mov DWORD [48+esp],esi - mov edi,esi - mov esi,eax - cmp edx,0 - je NEAR L$029slow_decrypt - cmp ecx,16 - mov edx,ebx - jb NEAR L$030slow_enc_tail - bt DWORD [52+esp],25 - jnc NEAR L$031slow_enc_x86 - movq mm0,[edi] - movq mm4,[8+edi] -align 16 -L$032slow_enc_loop_sse: - pxor mm0,[esi] - pxor mm4,[8+esi] - mov edi,DWORD [44+esp] - call __sse_AES_encrypt_compact - mov esi,DWORD [32+esp] - mov edi,DWORD [36+esp] - mov ecx,DWORD [40+esp] - movq [edi],mm0 - movq [8+edi],mm4 - lea esi,[16+esi] - mov DWORD [32+esp],esi - lea edx,[16+edi] - mov DWORD [36+esp],edx - sub ecx,16 - cmp ecx,16 - mov DWORD [40+esp],ecx - jae NEAR L$032slow_enc_loop_sse - test ecx,15 - jnz NEAR L$030slow_enc_tail - mov esi,DWORD [48+esp] - movq [esi],mm0 - movq [8+esi],mm4 - emms - mov esp,DWORD [28+esp] - popfd - pop edi - pop esi - pop ebx - pop ebp - ret - pushfd -align 16 -L$031slow_enc_x86: - mov eax,DWORD [edi] - mov ebx,DWORD [4+edi] -align 4 -L$033slow_enc_loop_x86: - mov ecx,DWORD [8+edi] - mov edx,DWORD [12+edi] - xor eax,DWORD [esi] - xor ebx,DWORD [4+esi] - xor ecx,DWORD [8+esi] - xor edx,DWORD [12+esi] - mov edi,DWORD [44+esp] - call __x86_AES_encrypt_compact - mov esi,DWORD [32+esp] - mov edi,DWORD [36+esp] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov ecx,DWORD [40+esp] - lea esi,[16+esi] - mov DWORD [32+esp],esi - lea edx,[16+edi] - mov DWORD [36+esp],edx - sub ecx,16 - cmp ecx,16 - mov DWORD [40+esp],ecx - jae NEAR L$033slow_enc_loop_x86 - test ecx,15 - jnz NEAR L$030slow_enc_tail - mov esi,DWORD [48+esp] - mov ecx,DWORD [8+edi] - mov edx,DWORD [12+edi] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - mov esp,DWORD [28+esp] - popfd - pop edi - pop esi - pop ebx - pop ebp - ret - pushfd -align 16 -L$030slow_enc_tail: - emms - mov edi,edx - mov ebx,16 - sub ebx,ecx - cmp edi,esi - je NEAR L$034enc_in_place -align 4 -dd 2767451785 - jmp NEAR L$035enc_skip_in_place -L$034enc_in_place: - lea edi,[ecx*1+edi] -L$035enc_skip_in_place: - mov ecx,ebx - xor eax,eax -align 4 -dd 2868115081 - mov edi,DWORD [48+esp] - mov esi,edx - mov eax,DWORD [edi] - mov ebx,DWORD [4+edi] - mov DWORD [40+esp],16 - jmp NEAR L$033slow_enc_loop_x86 -align 16 -L$029slow_decrypt: - bt DWORD [52+esp],25 - jnc NEAR L$036slow_dec_loop_x86 -align 4 -L$037slow_dec_loop_sse: - movq mm0,[esi] - movq mm4,[8+esi] - mov edi,DWORD [44+esp] - call __sse_AES_decrypt_compact - mov esi,DWORD [32+esp] - lea eax,[60+esp] - mov ebx,DWORD [36+esp] - mov ecx,DWORD [40+esp] - mov edi,DWORD [48+esp] - movq mm1,[esi] - movq mm5,[8+esi] - pxor mm0,[edi] - pxor mm4,[8+edi] - movq [edi],mm1 - movq [8+edi],mm5 - sub ecx,16 - jc NEAR L$038slow_dec_partial_sse - movq [ebx],mm0 - movq [8+ebx],mm4 - lea ebx,[16+ebx] - mov DWORD [36+esp],ebx - lea esi,[16+esi] - mov DWORD [32+esp],esi - mov DWORD [40+esp],ecx - jnz NEAR L$037slow_dec_loop_sse - emms - mov esp,DWORD [28+esp] - popfd - pop edi - pop esi - pop ebx - pop ebp - ret - pushfd -align 16 -L$038slow_dec_partial_sse: - movq [eax],mm0 - movq [8+eax],mm4 - emms - add ecx,16 - mov edi,ebx - mov esi,eax -align 4 -dd 2767451785 - mov esp,DWORD [28+esp] - popfd - pop edi - pop esi - pop ebx - pop ebp - ret - pushfd -align 16 -L$036slow_dec_loop_x86: - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - lea edi,[60+esp] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov edi,DWORD [44+esp] - call __x86_AES_decrypt_compact - mov edi,DWORD [48+esp] - mov esi,DWORD [40+esp] - xor eax,DWORD [edi] - xor ebx,DWORD [4+edi] - xor ecx,DWORD [8+edi] - xor edx,DWORD [12+edi] - sub esi,16 - jc NEAR L$039slow_dec_partial_x86 - mov DWORD [40+esp],esi - mov esi,DWORD [36+esp] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - lea esi,[16+esi] - mov DWORD [36+esp],esi - lea esi,[60+esp] - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov esi,DWORD [32+esp] - lea esi,[16+esi] - mov DWORD [32+esp],esi - jnz NEAR L$036slow_dec_loop_x86 - mov esp,DWORD [28+esp] - popfd - pop edi - pop esi - pop ebx - pop ebp - ret - pushfd -align 16 -L$039slow_dec_partial_x86: - lea esi,[60+esp] - mov DWORD [esi],eax - mov DWORD [4+esi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - mov esi,DWORD [32+esp] - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov ecx,DWORD [40+esp] - mov edi,DWORD [36+esp] - lea esi,[60+esp] -align 4 -dd 2767451785 - mov esp,DWORD [28+esp] - popfd - pop edi - pop esi - pop ebx - pop ebp - ret -align 16 -__x86_AES_set_encrypt_key: - push ebp - push ebx - push esi - push edi - mov esi,DWORD [24+esp] - mov edi,DWORD [32+esp] - test esi,-1 - jz NEAR L$040badpointer - test edi,-1 - jz NEAR L$040badpointer - call L$041pic_point -L$041pic_point: - pop ebp - lea ebp,[(L$AES_Te-L$041pic_point)+ebp] - lea ebp,[2176+ebp] - mov eax,DWORD [ebp-128] - mov ebx,DWORD [ebp-96] - mov ecx,DWORD [ebp-64] - mov edx,DWORD [ebp-32] - mov eax,DWORD [ebp] - mov ebx,DWORD [32+ebp] - mov ecx,DWORD [64+ebp] - mov edx,DWORD [96+ebp] - mov ecx,DWORD [28+esp] - cmp ecx,128 - je NEAR L$04210rounds - cmp ecx,192 - je NEAR L$04312rounds - cmp ecx,256 - je NEAR L$04414rounds - mov eax,-2 - jmp NEAR L$045exit -L$04210rounds: - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - xor ecx,ecx - jmp NEAR L$04610shortcut -align 4 -L$04710loop: - mov eax,DWORD [edi] - mov edx,DWORD [12+edi] -L$04610shortcut: - movzx esi,dl - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - shl ebx,24 - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shr edx,16 - movzx esi,dl - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - shl ebx,8 - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shl ebx,16 - xor eax,ebx - xor eax,DWORD [896+ecx*4+ebp] - mov DWORD [16+edi],eax - xor eax,DWORD [4+edi] - mov DWORD [20+edi],eax - xor eax,DWORD [8+edi] - mov DWORD [24+edi],eax - xor eax,DWORD [12+edi] - mov DWORD [28+edi],eax - inc ecx - add edi,16 - cmp ecx,10 - jl NEAR L$04710loop - mov DWORD [80+edi],10 - xor eax,eax - jmp NEAR L$045exit -L$04312rounds: - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov ecx,DWORD [16+esi] - mov edx,DWORD [20+esi] - mov DWORD [16+edi],ecx - mov DWORD [20+edi],edx - xor ecx,ecx - jmp NEAR L$04812shortcut -align 4 -L$04912loop: - mov eax,DWORD [edi] - mov edx,DWORD [20+edi] -L$04812shortcut: - movzx esi,dl - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - shl ebx,24 - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shr edx,16 - movzx esi,dl - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - shl ebx,8 - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shl ebx,16 - xor eax,ebx - xor eax,DWORD [896+ecx*4+ebp] - mov DWORD [24+edi],eax - xor eax,DWORD [4+edi] - mov DWORD [28+edi],eax - xor eax,DWORD [8+edi] - mov DWORD [32+edi],eax - xor eax,DWORD [12+edi] - mov DWORD [36+edi],eax - cmp ecx,7 - je NEAR L$05012break - inc ecx - xor eax,DWORD [16+edi] - mov DWORD [40+edi],eax - xor eax,DWORD [20+edi] - mov DWORD [44+edi],eax - add edi,24 - jmp NEAR L$04912loop -L$05012break: - mov DWORD [72+edi],12 - xor eax,eax - jmp NEAR L$045exit -L$04414rounds: - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [8+esi] - mov edx,DWORD [12+esi] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [8+edi],ecx - mov DWORD [12+edi],edx - mov eax,DWORD [16+esi] - mov ebx,DWORD [20+esi] - mov ecx,DWORD [24+esi] - mov edx,DWORD [28+esi] - mov DWORD [16+edi],eax - mov DWORD [20+edi],ebx - mov DWORD [24+edi],ecx - mov DWORD [28+edi],edx - xor ecx,ecx - jmp NEAR L$05114shortcut -align 4 -L$05214loop: - mov edx,DWORD [28+edi] -L$05114shortcut: - mov eax,DWORD [edi] - movzx esi,dl - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - shl ebx,24 - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shr edx,16 - movzx esi,dl - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - shl ebx,8 - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shl ebx,16 - xor eax,ebx - xor eax,DWORD [896+ecx*4+ebp] - mov DWORD [32+edi],eax - xor eax,DWORD [4+edi] - mov DWORD [36+edi],eax - xor eax,DWORD [8+edi] - mov DWORD [40+edi],eax - xor eax,DWORD [12+edi] - mov DWORD [44+edi],eax - cmp ecx,6 - je NEAR L$05314break - inc ecx - mov edx,eax - mov eax,DWORD [16+edi] - movzx esi,dl - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shr edx,16 - shl ebx,8 - movzx esi,dl - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - movzx esi,dh - shl ebx,16 - xor eax,ebx - movzx ebx,BYTE [esi*1+ebp-128] - shl ebx,24 - xor eax,ebx - mov DWORD [48+edi],eax - xor eax,DWORD [20+edi] - mov DWORD [52+edi],eax - xor eax,DWORD [24+edi] - mov DWORD [56+edi],eax - xor eax,DWORD [28+edi] - mov DWORD [60+edi],eax - add edi,32 - jmp NEAR L$05214loop -L$05314break: - mov DWORD [48+edi],14 - xor eax,eax - jmp NEAR L$045exit -L$040badpointer: - mov eax,-1 -L$045exit: - pop edi - pop esi - pop ebx - pop ebp - ret -global _aes_nohw_set_encrypt_key -align 16 -_aes_nohw_set_encrypt_key: -L$_aes_nohw_set_encrypt_key_begin: - call __x86_AES_set_encrypt_key - ret -global _aes_nohw_set_decrypt_key -align 16 -_aes_nohw_set_decrypt_key: -L$_aes_nohw_set_decrypt_key_begin: - call __x86_AES_set_encrypt_key - cmp eax,0 - je NEAR L$054proceed - ret -L$054proceed: - push ebp - push ebx - push esi - push edi - mov esi,DWORD [28+esp] - mov ecx,DWORD [240+esi] - lea ecx,[ecx*4] - lea edi,[ecx*4+esi] -align 4 -L$055invert: - mov eax,DWORD [esi] - mov ebx,DWORD [4+esi] - mov ecx,DWORD [edi] - mov edx,DWORD [4+edi] - mov DWORD [edi],eax - mov DWORD [4+edi],ebx - mov DWORD [esi],ecx - mov DWORD [4+esi],edx - mov eax,DWORD [8+esi] - mov ebx,DWORD [12+esi] - mov ecx,DWORD [8+edi] - mov edx,DWORD [12+edi] - mov DWORD [8+edi],eax - mov DWORD [12+edi],ebx - mov DWORD [8+esi],ecx - mov DWORD [12+esi],edx - add esi,16 - sub edi,16 - cmp esi,edi - jne NEAR L$055invert - mov edi,DWORD [28+esp] - mov esi,DWORD [240+edi] - lea esi,[esi*1+esi-2] - lea esi,[esi*8+edi] - mov DWORD [28+esp],esi - mov eax,DWORD [16+edi] -align 4 -L$056permute: - add edi,16 - mov ebp,2155905152 - and ebp,eax - lea ebx,[eax*1+eax] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and ebx,4278124286 - and esi,454761243 - xor ebx,esi - mov ebp,2155905152 - and ebp,ebx - lea ecx,[ebx*1+ebx] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and ecx,4278124286 - and esi,454761243 - xor ebx,eax - xor ecx,esi - mov ebp,2155905152 - and ebp,ecx - lea edx,[ecx*1+ecx] - mov esi,ebp - shr ebp,7 - xor ecx,eax - sub esi,ebp - and edx,4278124286 - and esi,454761243 - rol eax,8 - xor edx,esi - mov ebp,DWORD [4+edi] - xor eax,ebx - xor ebx,edx - xor eax,ecx - rol ebx,24 - xor ecx,edx - xor eax,edx - rol ecx,16 - xor eax,ebx - rol edx,8 - xor eax,ecx - mov ebx,ebp - xor eax,edx - mov DWORD [edi],eax - mov ebp,2155905152 - and ebp,ebx - lea ecx,[ebx*1+ebx] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and ecx,4278124286 - and esi,454761243 - xor ecx,esi - mov ebp,2155905152 - and ebp,ecx - lea edx,[ecx*1+ecx] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and edx,4278124286 - and esi,454761243 - xor ecx,ebx - xor edx,esi - mov ebp,2155905152 - and ebp,edx - lea eax,[edx*1+edx] - mov esi,ebp - shr ebp,7 - xor edx,ebx - sub esi,ebp - and eax,4278124286 - and esi,454761243 - rol ebx,8 - xor eax,esi - mov ebp,DWORD [8+edi] - xor ebx,ecx - xor ecx,eax - xor ebx,edx - rol ecx,24 - xor edx,eax - xor ebx,eax - rol edx,16 - xor ebx,ecx - rol eax,8 - xor ebx,edx - mov ecx,ebp - xor ebx,eax - mov DWORD [4+edi],ebx - mov ebp,2155905152 - and ebp,ecx - lea edx,[ecx*1+ecx] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and edx,4278124286 - and esi,454761243 - xor edx,esi - mov ebp,2155905152 - and ebp,edx - lea eax,[edx*1+edx] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and eax,4278124286 - and esi,454761243 - xor edx,ecx - xor eax,esi - mov ebp,2155905152 - and ebp,eax - lea ebx,[eax*1+eax] - mov esi,ebp - shr ebp,7 - xor eax,ecx - sub esi,ebp - and ebx,4278124286 - and esi,454761243 - rol ecx,8 - xor ebx,esi - mov ebp,DWORD [12+edi] - xor ecx,edx - xor edx,ebx - xor ecx,eax - rol edx,24 - xor eax,ebx - xor ecx,ebx - rol eax,16 - xor ecx,edx - rol ebx,8 - xor ecx,eax - mov edx,ebp - xor ecx,ebx - mov DWORD [8+edi],ecx - mov ebp,2155905152 - and ebp,edx - lea eax,[edx*1+edx] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and eax,4278124286 - and esi,454761243 - xor eax,esi - mov ebp,2155905152 - and ebp,eax - lea ebx,[eax*1+eax] - mov esi,ebp - shr ebp,7 - sub esi,ebp - and ebx,4278124286 - and esi,454761243 - xor eax,edx - xor ebx,esi - mov ebp,2155905152 - and ebp,ebx - lea ecx,[ebx*1+ebx] - mov esi,ebp - shr ebp,7 - xor ebx,edx - sub esi,ebp - and ecx,4278124286 - and esi,454761243 - rol edx,8 - xor ecx,esi - mov ebp,DWORD [16+edi] - xor edx,eax - xor eax,ecx - xor edx,ebx - rol eax,24 - xor ebx,ecx - xor edx,ecx - rol ebx,16 - xor edx,eax - rol ecx,8 - xor edx,ebx - mov eax,ebp - xor edx,ecx - mov DWORD [12+edi],edx - cmp edi,DWORD [28+esp] - jb NEAR L$056permute - xor eax,eax - pop edi - pop esi - pop ebx - pop ebp - ret -db 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 -db 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 -db 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 -segment .bss -common _OPENSSL_ia32cap_P 16 diff --git a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aesni-x86.asm b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aesni-x86.asm index 47309503d29..0272fce460f 100644 --- a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aesni-x86.asm +++ b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/aesni-x86.asm @@ -21,14 +21,14 @@ section .text code align=64 section .text code %endif ;extern _OPENSSL_ia32cap_P -%ifndef NDEBUG +%ifdef BORINGSSL_DISPATCH_TEST extern _BORINGSSL_function_hit %endif global _aes_hw_encrypt align 16 _aes_hw_encrypt: L$_aes_hw_encrypt_begin: -%ifndef NDEBUG +%ifdef BORINGSSL_DISPATCH_TEST push ebx push edx call L$000pic @@ -820,7 +820,7 @@ L$_aes_hw_ctr32_encrypt_blocks_begin: push ebx push esi push edi -%ifndef NDEBUG +%ifdef BORINGSSL_DISPATCH_TEST push ebx push edx call L$038pic @@ -2400,7 +2400,7 @@ global _aes_hw_set_encrypt_key align 16 _aes_hw_set_encrypt_key: L$_aes_hw_set_encrypt_key_begin: -%ifndef NDEBUG +%ifdef BORINGSSL_DISPATCH_TEST push ebx push edx call L$116pic diff --git a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/bn-586.asm b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/bn-586.asm index a87f86d12f5..368c3f3b6f7 100644 --- a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/bn-586.asm +++ b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/bn-586.asm @@ -981,549 +981,5 @@ L$025aw_end: pop ebx pop ebp ret -global _bn_sub_part_words -align 16 -_bn_sub_part_words: -L$_bn_sub_part_words_begin: - push ebp - push ebx - push esi - push edi - ; - mov ebx,DWORD [20+esp] - mov esi,DWORD [24+esp] - mov edi,DWORD [28+esp] - mov ebp,DWORD [32+esp] - xor eax,eax - and ebp,4294967288 - jz NEAR L$026aw_finish -L$027aw_loop: - ; Round 0 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - ; Round 1 - mov ecx,DWORD [4+esi] - mov edx,DWORD [4+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [4+ebx],ecx - ; Round 2 - mov ecx,DWORD [8+esi] - mov edx,DWORD [8+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [8+ebx],ecx - ; Round 3 - mov ecx,DWORD [12+esi] - mov edx,DWORD [12+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [12+ebx],ecx - ; Round 4 - mov ecx,DWORD [16+esi] - mov edx,DWORD [16+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [16+ebx],ecx - ; Round 5 - mov ecx,DWORD [20+esi] - mov edx,DWORD [20+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [20+ebx],ecx - ; Round 6 - mov ecx,DWORD [24+esi] - mov edx,DWORD [24+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [24+ebx],ecx - ; Round 7 - mov ecx,DWORD [28+esi] - mov edx,DWORD [28+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [28+ebx],ecx - ; - add esi,32 - add edi,32 - add ebx,32 - sub ebp,8 - jnz NEAR L$027aw_loop -L$026aw_finish: - mov ebp,DWORD [32+esp] - and ebp,7 - jz NEAR L$028aw_end - ; Tail Round 0 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - add esi,4 - add edi,4 - add ebx,4 - dec ebp - jz NEAR L$028aw_end - ; Tail Round 1 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - add esi,4 - add edi,4 - add ebx,4 - dec ebp - jz NEAR L$028aw_end - ; Tail Round 2 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - add esi,4 - add edi,4 - add ebx,4 - dec ebp - jz NEAR L$028aw_end - ; Tail Round 3 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - add esi,4 - add edi,4 - add ebx,4 - dec ebp - jz NEAR L$028aw_end - ; Tail Round 4 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - add esi,4 - add edi,4 - add ebx,4 - dec ebp - jz NEAR L$028aw_end - ; Tail Round 5 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - add esi,4 - add edi,4 - add ebx,4 - dec ebp - jz NEAR L$028aw_end - ; Tail Round 6 - mov ecx,DWORD [esi] - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - add esi,4 - add edi,4 - add ebx,4 -L$028aw_end: - cmp DWORD [36+esp],0 - je NEAR L$029pw_end - mov ebp,DWORD [36+esp] - cmp ebp,0 - je NEAR L$029pw_end - jge NEAR L$030pw_pos - ; pw_neg - mov edx,0 - sub edx,ebp - mov ebp,edx - and ebp,4294967288 - jz NEAR L$031pw_neg_finish -L$032pw_neg_loop: - ; dl<0 Round 0 - mov ecx,0 - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [ebx],ecx - ; dl<0 Round 1 - mov ecx,0 - mov edx,DWORD [4+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [4+ebx],ecx - ; dl<0 Round 2 - mov ecx,0 - mov edx,DWORD [8+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [8+ebx],ecx - ; dl<0 Round 3 - mov ecx,0 - mov edx,DWORD [12+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [12+ebx],ecx - ; dl<0 Round 4 - mov ecx,0 - mov edx,DWORD [16+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [16+ebx],ecx - ; dl<0 Round 5 - mov ecx,0 - mov edx,DWORD [20+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [20+ebx],ecx - ; dl<0 Round 6 - mov ecx,0 - mov edx,DWORD [24+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [24+ebx],ecx - ; dl<0 Round 7 - mov ecx,0 - mov edx,DWORD [28+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [28+ebx],ecx - ; - add edi,32 - add ebx,32 - sub ebp,8 - jnz NEAR L$032pw_neg_loop -L$031pw_neg_finish: - mov edx,DWORD [36+esp] - mov ebp,0 - sub ebp,edx - and ebp,7 - jz NEAR L$029pw_end - ; dl<0 Tail Round 0 - mov ecx,0 - mov edx,DWORD [edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - dec ebp - mov DWORD [ebx],ecx - jz NEAR L$029pw_end - ; dl<0 Tail Round 1 - mov ecx,0 - mov edx,DWORD [4+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - dec ebp - mov DWORD [4+ebx],ecx - jz NEAR L$029pw_end - ; dl<0 Tail Round 2 - mov ecx,0 - mov edx,DWORD [8+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - dec ebp - mov DWORD [8+ebx],ecx - jz NEAR L$029pw_end - ; dl<0 Tail Round 3 - mov ecx,0 - mov edx,DWORD [12+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - dec ebp - mov DWORD [12+ebx],ecx - jz NEAR L$029pw_end - ; dl<0 Tail Round 4 - mov ecx,0 - mov edx,DWORD [16+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - dec ebp - mov DWORD [16+ebx],ecx - jz NEAR L$029pw_end - ; dl<0 Tail Round 5 - mov ecx,0 - mov edx,DWORD [20+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - dec ebp - mov DWORD [20+ebx],ecx - jz NEAR L$029pw_end - ; dl<0 Tail Round 6 - mov ecx,0 - mov edx,DWORD [24+edi] - sub ecx,eax - mov eax,0 - adc eax,eax - sub ecx,edx - adc eax,0 - mov DWORD [24+ebx],ecx - jmp NEAR L$029pw_end -L$030pw_pos: - and ebp,4294967288 - jz NEAR L$033pw_pos_finish -L$034pw_pos_loop: - ; dl>0 Round 0 - mov ecx,DWORD [esi] - sub ecx,eax - mov DWORD [ebx],ecx - jnc NEAR L$035pw_nc0 - ; dl>0 Round 1 - mov ecx,DWORD [4+esi] - sub ecx,eax - mov DWORD [4+ebx],ecx - jnc NEAR L$036pw_nc1 - ; dl>0 Round 2 - mov ecx,DWORD [8+esi] - sub ecx,eax - mov DWORD [8+ebx],ecx - jnc NEAR L$037pw_nc2 - ; dl>0 Round 3 - mov ecx,DWORD [12+esi] - sub ecx,eax - mov DWORD [12+ebx],ecx - jnc NEAR L$038pw_nc3 - ; dl>0 Round 4 - mov ecx,DWORD [16+esi] - sub ecx,eax - mov DWORD [16+ebx],ecx - jnc NEAR L$039pw_nc4 - ; dl>0 Round 5 - mov ecx,DWORD [20+esi] - sub ecx,eax - mov DWORD [20+ebx],ecx - jnc NEAR L$040pw_nc5 - ; dl>0 Round 6 - mov ecx,DWORD [24+esi] - sub ecx,eax - mov DWORD [24+ebx],ecx - jnc NEAR L$041pw_nc6 - ; dl>0 Round 7 - mov ecx,DWORD [28+esi] - sub ecx,eax - mov DWORD [28+ebx],ecx - jnc NEAR L$042pw_nc7 - ; - add esi,32 - add ebx,32 - sub ebp,8 - jnz NEAR L$034pw_pos_loop -L$033pw_pos_finish: - mov ebp,DWORD [36+esp] - and ebp,7 - jz NEAR L$029pw_end - ; dl>0 Tail Round 0 - mov ecx,DWORD [esi] - sub ecx,eax - mov DWORD [ebx],ecx - jnc NEAR L$043pw_tail_nc0 - dec ebp - jz NEAR L$029pw_end - ; dl>0 Tail Round 1 - mov ecx,DWORD [4+esi] - sub ecx,eax - mov DWORD [4+ebx],ecx - jnc NEAR L$044pw_tail_nc1 - dec ebp - jz NEAR L$029pw_end - ; dl>0 Tail Round 2 - mov ecx,DWORD [8+esi] - sub ecx,eax - mov DWORD [8+ebx],ecx - jnc NEAR L$045pw_tail_nc2 - dec ebp - jz NEAR L$029pw_end - ; dl>0 Tail Round 3 - mov ecx,DWORD [12+esi] - sub ecx,eax - mov DWORD [12+ebx],ecx - jnc NEAR L$046pw_tail_nc3 - dec ebp - jz NEAR L$029pw_end - ; dl>0 Tail Round 4 - mov ecx,DWORD [16+esi] - sub ecx,eax - mov DWORD [16+ebx],ecx - jnc NEAR L$047pw_tail_nc4 - dec ebp - jz NEAR L$029pw_end - ; dl>0 Tail Round 5 - mov ecx,DWORD [20+esi] - sub ecx,eax - mov DWORD [20+ebx],ecx - jnc NEAR L$048pw_tail_nc5 - dec ebp - jz NEAR L$029pw_end - ; dl>0 Tail Round 6 - mov ecx,DWORD [24+esi] - sub ecx,eax - mov DWORD [24+ebx],ecx - jnc NEAR L$049pw_tail_nc6 - mov eax,1 - jmp NEAR L$029pw_end -L$050pw_nc_loop: - mov ecx,DWORD [esi] - mov DWORD [ebx],ecx -L$035pw_nc0: - mov ecx,DWORD [4+esi] - mov DWORD [4+ebx],ecx -L$036pw_nc1: - mov ecx,DWORD [8+esi] - mov DWORD [8+ebx],ecx -L$037pw_nc2: - mov ecx,DWORD [12+esi] - mov DWORD [12+ebx],ecx -L$038pw_nc3: - mov ecx,DWORD [16+esi] - mov DWORD [16+ebx],ecx -L$039pw_nc4: - mov ecx,DWORD [20+esi] - mov DWORD [20+ebx],ecx -L$040pw_nc5: - mov ecx,DWORD [24+esi] - mov DWORD [24+ebx],ecx -L$041pw_nc6: - mov ecx,DWORD [28+esi] - mov DWORD [28+ebx],ecx -L$042pw_nc7: - ; - add esi,32 - add ebx,32 - sub ebp,8 - jnz NEAR L$050pw_nc_loop - mov ebp,DWORD [36+esp] - and ebp,7 - jz NEAR L$051pw_nc_end - mov ecx,DWORD [esi] - mov DWORD [ebx],ecx -L$043pw_tail_nc0: - dec ebp - jz NEAR L$051pw_nc_end - mov ecx,DWORD [4+esi] - mov DWORD [4+ebx],ecx -L$044pw_tail_nc1: - dec ebp - jz NEAR L$051pw_nc_end - mov ecx,DWORD [8+esi] - mov DWORD [8+ebx],ecx -L$045pw_tail_nc2: - dec ebp - jz NEAR L$051pw_nc_end - mov ecx,DWORD [12+esi] - mov DWORD [12+ebx],ecx -L$046pw_tail_nc3: - dec ebp - jz NEAR L$051pw_nc_end - mov ecx,DWORD [16+esi] - mov DWORD [16+ebx],ecx -L$047pw_tail_nc4: - dec ebp - jz NEAR L$051pw_nc_end - mov ecx,DWORD [20+esi] - mov DWORD [20+ebx],ecx -L$048pw_tail_nc5: - dec ebp - jz NEAR L$051pw_nc_end - mov ecx,DWORD [24+esi] - mov DWORD [24+ebx],ecx -L$049pw_tail_nc6: -L$051pw_nc_end: - mov eax,0 -L$029pw_end: - pop edi - pop esi - pop ebx - pop ebp - ret segment .bss common _OPENSSL_ia32cap_P 16 diff --git a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/ghash-x86.asm b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/ghash-x86.asm index 753c472f04d..59eefd50825 100644 --- a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/ghash-x86.asm +++ b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/ghash-x86.asm @@ -20,715 +20,16 @@ section .text code align=64 %else section .text code %endif -global _gcm_gmult_4bit_mmx -align 16 -_gcm_gmult_4bit_mmx: -L$_gcm_gmult_4bit_mmx_begin: - push ebp - push ebx - push esi - push edi - mov edi,DWORD [20+esp] - mov esi,DWORD [24+esp] - call L$000pic_point -L$000pic_point: - pop eax - lea eax,[(L$rem_4bit-L$000pic_point)+eax] - movzx ebx,BYTE [15+edi] - xor ecx,ecx - mov edx,ebx - mov cl,dl - mov ebp,14 - shl cl,4 - and edx,240 - movq mm0,[8+ecx*1+esi] - movq mm1,[ecx*1+esi] - movd ebx,mm0 - jmp NEAR L$001mmx_loop -align 16 -L$001mmx_loop: - psrlq mm0,4 - and ebx,15 - movq mm2,mm1 - psrlq mm1,4 - pxor mm0,[8+edx*1+esi] - mov cl,BYTE [ebp*1+edi] - psllq mm2,60 - pxor mm1,[ebx*8+eax] - dec ebp - movd ebx,mm0 - pxor mm1,[edx*1+esi] - mov edx,ecx - pxor mm0,mm2 - js NEAR L$002mmx_break - shl cl,4 - and ebx,15 - psrlq mm0,4 - and edx,240 - movq mm2,mm1 - psrlq mm1,4 - pxor mm0,[8+ecx*1+esi] - psllq mm2,60 - pxor mm1,[ebx*8+eax] - movd ebx,mm0 - pxor mm1,[ecx*1+esi] - pxor mm0,mm2 - jmp NEAR L$001mmx_loop -align 16 -L$002mmx_break: - shl cl,4 - and ebx,15 - psrlq mm0,4 - and edx,240 - movq mm2,mm1 - psrlq mm1,4 - pxor mm0,[8+ecx*1+esi] - psllq mm2,60 - pxor mm1,[ebx*8+eax] - movd ebx,mm0 - pxor mm1,[ecx*1+esi] - pxor mm0,mm2 - psrlq mm0,4 - and ebx,15 - movq mm2,mm1 - psrlq mm1,4 - pxor mm0,[8+edx*1+esi] - psllq mm2,60 - pxor mm1,[ebx*8+eax] - movd ebx,mm0 - pxor mm1,[edx*1+esi] - pxor mm0,mm2 - psrlq mm0,32 - movd edx,mm1 - psrlq mm1,32 - movd ecx,mm0 - movd ebp,mm1 - bswap ebx - bswap edx - bswap ecx - bswap ebp - emms - mov DWORD [12+edi],ebx - mov DWORD [4+edi],edx - mov DWORD [8+edi],ecx - mov DWORD [edi],ebp - pop edi - pop esi - pop ebx - pop ebp - ret -global _gcm_ghash_4bit_mmx -align 16 -_gcm_ghash_4bit_mmx: -L$_gcm_ghash_4bit_mmx_begin: - push ebp - push ebx - push esi - push edi - mov eax,DWORD [20+esp] - mov ebx,DWORD [24+esp] - mov ecx,DWORD [28+esp] - mov edx,DWORD [32+esp] - mov ebp,esp - call L$003pic_point -L$003pic_point: - pop esi - lea esi,[(L$rem_8bit-L$003pic_point)+esi] - sub esp,544 - and esp,-64 - sub esp,16 - add edx,ecx - mov DWORD [544+esp],eax - mov DWORD [552+esp],edx - mov DWORD [556+esp],ebp - add ebx,128 - lea edi,[144+esp] - lea ebp,[400+esp] - mov edx,DWORD [ebx-120] - movq mm0,[ebx-120] - movq mm3,[ebx-128] - shl edx,4 - mov BYTE [esp],dl - mov edx,DWORD [ebx-104] - movq mm2,[ebx-104] - movq mm5,[ebx-112] - movq [edi-128],mm0 - psrlq mm0,4 - movq [edi],mm3 - movq mm7,mm3 - psrlq mm3,4 - shl edx,4 - mov BYTE [1+esp],dl - mov edx,DWORD [ebx-88] - movq mm1,[ebx-88] - psllq mm7,60 - movq mm4,[ebx-96] - por mm0,mm7 - movq [edi-120],mm2 - psrlq mm2,4 - movq [8+edi],mm5 - movq mm6,mm5 - movq [ebp-128],mm0 - psrlq mm5,4 - movq [ebp],mm3 - shl edx,4 - mov BYTE [2+esp],dl - mov edx,DWORD [ebx-72] - movq mm0,[ebx-72] - psllq mm6,60 - movq mm3,[ebx-80] - por mm2,mm6 - movq [edi-112],mm1 - psrlq mm1,4 - movq [16+edi],mm4 - movq mm7,mm4 - movq [ebp-120],mm2 - psrlq mm4,4 - movq [8+ebp],mm5 - shl edx,4 - mov BYTE [3+esp],dl - mov edx,DWORD [ebx-56] - movq mm2,[ebx-56] - psllq mm7,60 - movq mm5,[ebx-64] - por mm1,mm7 - movq [edi-104],mm0 - psrlq mm0,4 - movq [24+edi],mm3 - movq mm6,mm3 - movq [ebp-112],mm1 - psrlq mm3,4 - movq [16+ebp],mm4 - shl edx,4 - mov BYTE [4+esp],dl - mov edx,DWORD [ebx-40] - movq mm1,[ebx-40] - psllq mm6,60 - movq mm4,[ebx-48] - por mm0,mm6 - movq [edi-96],mm2 - psrlq mm2,4 - movq [32+edi],mm5 - movq mm7,mm5 - movq [ebp-104],mm0 - psrlq mm5,4 - movq [24+ebp],mm3 - shl edx,4 - mov BYTE [5+esp],dl - mov edx,DWORD [ebx-24] - movq mm0,[ebx-24] - psllq mm7,60 - movq mm3,[ebx-32] - por mm2,mm7 - movq [edi-88],mm1 - psrlq mm1,4 - movq [40+edi],mm4 - movq mm6,mm4 - movq [ebp-96],mm2 - psrlq mm4,4 - movq [32+ebp],mm5 - shl edx,4 - mov BYTE [6+esp],dl - mov edx,DWORD [ebx-8] - movq mm2,[ebx-8] - psllq mm6,60 - movq mm5,[ebx-16] - por mm1,mm6 - movq [edi-80],mm0 - psrlq mm0,4 - movq [48+edi],mm3 - movq mm7,mm3 - movq [ebp-88],mm1 - psrlq mm3,4 - movq [40+ebp],mm4 - shl edx,4 - mov BYTE [7+esp],dl - mov edx,DWORD [8+ebx] - movq mm1,[8+ebx] - psllq mm7,60 - movq mm4,[ebx] - por mm0,mm7 - movq [edi-72],mm2 - psrlq mm2,4 - movq [56+edi],mm5 - movq mm6,mm5 - movq [ebp-80],mm0 - psrlq mm5,4 - movq [48+ebp],mm3 - shl edx,4 - mov BYTE [8+esp],dl - mov edx,DWORD [24+ebx] - movq mm0,[24+ebx] - psllq mm6,60 - movq mm3,[16+ebx] - por mm2,mm6 - movq [edi-64],mm1 - psrlq mm1,4 - movq [64+edi],mm4 - movq mm7,mm4 - movq [ebp-72],mm2 - psrlq mm4,4 - movq [56+ebp],mm5 - shl edx,4 - mov BYTE [9+esp],dl - mov edx,DWORD [40+ebx] - movq mm2,[40+ebx] - psllq mm7,60 - movq mm5,[32+ebx] - por mm1,mm7 - movq [edi-56],mm0 - psrlq mm0,4 - movq [72+edi],mm3 - movq mm6,mm3 - movq [ebp-64],mm1 - psrlq mm3,4 - movq [64+ebp],mm4 - shl edx,4 - mov BYTE [10+esp],dl - mov edx,DWORD [56+ebx] - movq mm1,[56+ebx] - psllq mm6,60 - movq mm4,[48+ebx] - por mm0,mm6 - movq [edi-48],mm2 - psrlq mm2,4 - movq [80+edi],mm5 - movq mm7,mm5 - movq [ebp-56],mm0 - psrlq mm5,4 - movq [72+ebp],mm3 - shl edx,4 - mov BYTE [11+esp],dl - mov edx,DWORD [72+ebx] - movq mm0,[72+ebx] - psllq mm7,60 - movq mm3,[64+ebx] - por mm2,mm7 - movq [edi-40],mm1 - psrlq mm1,4 - movq [88+edi],mm4 - movq mm6,mm4 - movq [ebp-48],mm2 - psrlq mm4,4 - movq [80+ebp],mm5 - shl edx,4 - mov BYTE [12+esp],dl - mov edx,DWORD [88+ebx] - movq mm2,[88+ebx] - psllq mm6,60 - movq mm5,[80+ebx] - por mm1,mm6 - movq [edi-32],mm0 - psrlq mm0,4 - movq [96+edi],mm3 - movq mm7,mm3 - movq [ebp-40],mm1 - psrlq mm3,4 - movq [88+ebp],mm4 - shl edx,4 - mov BYTE [13+esp],dl - mov edx,DWORD [104+ebx] - movq mm1,[104+ebx] - psllq mm7,60 - movq mm4,[96+ebx] - por mm0,mm7 - movq [edi-24],mm2 - psrlq mm2,4 - movq [104+edi],mm5 - movq mm6,mm5 - movq [ebp-32],mm0 - psrlq mm5,4 - movq [96+ebp],mm3 - shl edx,4 - mov BYTE [14+esp],dl - mov edx,DWORD [120+ebx] - movq mm0,[120+ebx] - psllq mm6,60 - movq mm3,[112+ebx] - por mm2,mm6 - movq [edi-16],mm1 - psrlq mm1,4 - movq [112+edi],mm4 - movq mm7,mm4 - movq [ebp-24],mm2 - psrlq mm4,4 - movq [104+ebp],mm5 - shl edx,4 - mov BYTE [15+esp],dl - psllq mm7,60 - por mm1,mm7 - movq [edi-8],mm0 - psrlq mm0,4 - movq [120+edi],mm3 - movq mm6,mm3 - movq [ebp-16],mm1 - psrlq mm3,4 - movq [112+ebp],mm4 - psllq mm6,60 - por mm0,mm6 - movq [ebp-8],mm0 - movq [120+ebp],mm3 - movq mm6,[eax] - mov ebx,DWORD [8+eax] - mov edx,DWORD [12+eax] -align 16 -L$004outer: - xor edx,DWORD [12+ecx] - xor ebx,DWORD [8+ecx] - pxor mm6,[ecx] - lea ecx,[16+ecx] - mov DWORD [536+esp],ebx - movq [528+esp],mm6 - mov DWORD [548+esp],ecx - xor eax,eax - rol edx,8 - mov al,dl - mov ebp,eax - and al,15 - shr ebp,4 - pxor mm0,mm0 - rol edx,8 - pxor mm1,mm1 - pxor mm2,mm2 - movq mm7,[16+eax*8+esp] - movq mm6,[144+eax*8+esp] - mov al,dl - movd ebx,mm7 - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - shr edi,4 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - xor bl,BYTE [ebp*1+esp] - mov al,dl - movd ecx,mm7 - movzx ebx,bl - psrlq mm7,8 - movq mm3,mm6 - mov ebp,eax - psrlq mm6,8 - pxor mm7,[272+edi*8+esp] - and al,15 - psllq mm3,56 - shr ebp,4 - pinsrw mm2,WORD [ebx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+edi*8+esp] - xor cl,BYTE [edi*1+esp] - mov al,dl - mov edx,DWORD [536+esp] - movd ebx,mm7 - movzx ecx,cl - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm2 - shr edi,4 - pinsrw mm1,WORD [ecx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - xor bl,BYTE [ebp*1+esp] - mov al,dl - movd ecx,mm7 - movzx ebx,bl - psrlq mm7,8 - movq mm3,mm6 - mov ebp,eax - psrlq mm6,8 - pxor mm7,[272+edi*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm1 - shr ebp,4 - pinsrw mm0,WORD [ebx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+edi*8+esp] - xor cl,BYTE [edi*1+esp] - mov al,dl - movd ebx,mm7 - movzx ecx,cl - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm0 - shr edi,4 - pinsrw mm2,WORD [ecx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - xor bl,BYTE [ebp*1+esp] - mov al,dl - movd ecx,mm7 - movzx ebx,bl - psrlq mm7,8 - movq mm3,mm6 - mov ebp,eax - psrlq mm6,8 - pxor mm7,[272+edi*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm2 - shr ebp,4 - pinsrw mm1,WORD [ebx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+edi*8+esp] - xor cl,BYTE [edi*1+esp] - mov al,dl - mov edx,DWORD [532+esp] - movd ebx,mm7 - movzx ecx,cl - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm1 - shr edi,4 - pinsrw mm0,WORD [ecx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - xor bl,BYTE [ebp*1+esp] - mov al,dl - movd ecx,mm7 - movzx ebx,bl - psrlq mm7,8 - movq mm3,mm6 - mov ebp,eax - psrlq mm6,8 - pxor mm7,[272+edi*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm0 - shr ebp,4 - pinsrw mm2,WORD [ebx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+edi*8+esp] - xor cl,BYTE [edi*1+esp] - mov al,dl - movd ebx,mm7 - movzx ecx,cl - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm2 - shr edi,4 - pinsrw mm1,WORD [ecx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - xor bl,BYTE [ebp*1+esp] - mov al,dl - movd ecx,mm7 - movzx ebx,bl - psrlq mm7,8 - movq mm3,mm6 - mov ebp,eax - psrlq mm6,8 - pxor mm7,[272+edi*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm1 - shr ebp,4 - pinsrw mm0,WORD [ebx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+edi*8+esp] - xor cl,BYTE [edi*1+esp] - mov al,dl - mov edx,DWORD [528+esp] - movd ebx,mm7 - movzx ecx,cl - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm0 - shr edi,4 - pinsrw mm2,WORD [ecx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - xor bl,BYTE [ebp*1+esp] - mov al,dl - movd ecx,mm7 - movzx ebx,bl - psrlq mm7,8 - movq mm3,mm6 - mov ebp,eax - psrlq mm6,8 - pxor mm7,[272+edi*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm2 - shr ebp,4 - pinsrw mm1,WORD [ebx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+edi*8+esp] - xor cl,BYTE [edi*1+esp] - mov al,dl - movd ebx,mm7 - movzx ecx,cl - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm1 - shr edi,4 - pinsrw mm0,WORD [ecx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - xor bl,BYTE [ebp*1+esp] - mov al,dl - movd ecx,mm7 - movzx ebx,bl - psrlq mm7,8 - movq mm3,mm6 - mov ebp,eax - psrlq mm6,8 - pxor mm7,[272+edi*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm0 - shr ebp,4 - pinsrw mm2,WORD [ebx*2+esi],2 - pxor mm7,[16+eax*8+esp] - rol edx,8 - pxor mm6,[144+eax*8+esp] - pxor mm7,mm3 - pxor mm6,[400+edi*8+esp] - xor cl,BYTE [edi*1+esp] - mov al,dl - mov edx,DWORD [524+esp] - movd ebx,mm7 - movzx ecx,cl - psrlq mm7,8 - movq mm3,mm6 - mov edi,eax - psrlq mm6,8 - pxor mm7,[272+ebp*8+esp] - and al,15 - psllq mm3,56 - pxor mm6,mm2 - shr edi,4 - pinsrw mm1,WORD [ecx*2+esi],2 - pxor mm7,[16+eax*8+esp] - pxor mm6,[144+eax*8+esp] - xor bl,BYTE [ebp*1+esp] - pxor mm7,mm3 - pxor mm6,[400+ebp*8+esp] - movzx ebx,bl - pxor mm2,mm2 - psllq mm1,4 - movd ecx,mm7 - psrlq mm7,4 - movq mm3,mm6 - psrlq mm6,4 - shl ecx,4 - pxor mm7,[16+edi*8+esp] - psllq mm3,60 - movzx ecx,cl - pxor mm7,mm3 - pxor mm6,[144+edi*8+esp] - pinsrw mm0,WORD [ebx*2+esi],2 - pxor mm6,mm1 - movd edx,mm7 - pinsrw mm2,WORD [ecx*2+esi],3 - psllq mm0,12 - pxor mm6,mm0 - psrlq mm7,32 - pxor mm6,mm2 - mov ecx,DWORD [548+esp] - movd ebx,mm7 - movq mm3,mm6 - psllw mm6,8 - psrlw mm3,8 - por mm6,mm3 - bswap edx - pshufw mm6,mm6,27 - bswap ebx - cmp ecx,DWORD [552+esp] - jne NEAR L$004outer - mov eax,DWORD [544+esp] - mov DWORD [12+eax],edx - mov DWORD [8+eax],ebx - movq [eax],mm6 - mov esp,DWORD [556+esp] - emms - pop edi - pop esi - pop ebx - pop ebp - ret global _gcm_init_clmul align 16 _gcm_init_clmul: L$_gcm_init_clmul_begin: mov edx,DWORD [4+esp] mov eax,DWORD [8+esp] - call L$005pic -L$005pic: + call L$000pic +L$000pic: pop ecx - lea ecx,[(L$bswap-L$005pic)+ecx] + lea ecx,[(L$bswap-L$000pic)+ecx] movdqu xmm2,[eax] pshufd xmm2,xmm2,78 pshufd xmm4,xmm2,255 @@ -792,10 +93,10 @@ _gcm_gmult_clmul: L$_gcm_gmult_clmul_begin: mov eax,DWORD [4+esp] mov edx,DWORD [8+esp] - call L$006pic -L$006pic: + call L$001pic +L$001pic: pop ecx - lea ecx,[(L$bswap-L$006pic)+ecx] + lea ecx,[(L$bswap-L$001pic)+ecx] movdqu xmm0,[eax] movdqa xmm5,[ecx] movups xmm2,[edx] @@ -849,16 +150,16 @@ L$_gcm_ghash_clmul_begin: mov edx,DWORD [24+esp] mov esi,DWORD [28+esp] mov ebx,DWORD [32+esp] - call L$007pic -L$007pic: + call L$002pic +L$002pic: pop ecx - lea ecx,[(L$bswap-L$007pic)+ecx] + lea ecx,[(L$bswap-L$002pic)+ecx] movdqu xmm0,[eax] movdqa xmm5,[ecx] movdqu xmm2,[edx] db 102,15,56,0,197 sub ebx,16 - jz NEAR L$008odd_tail + jz NEAR L$003odd_tail movdqu xmm3,[esi] movdqu xmm6,[16+esi] db 102,15,56,0,221 @@ -875,10 +176,10 @@ db 102,15,58,68,221,0 movups xmm2,[16+edx] nop sub ebx,32 - jbe NEAR L$009even_tail - jmp NEAR L$010mod_loop + jbe NEAR L$004even_tail + jmp NEAR L$005mod_loop align 32 -L$010mod_loop: +L$005mod_loop: pshufd xmm4,xmm0,78 movdqa xmm1,xmm0 pxor xmm4,xmm0 @@ -933,8 +234,8 @@ db 102,15,58,68,250,17 db 102,15,58,68,221,0 lea esi,[32+esi] sub ebx,32 - ja NEAR L$010mod_loop -L$009even_tail: + ja NEAR L$005mod_loop +L$004even_tail: pshufd xmm4,xmm0,78 movdqa xmm1,xmm0 pxor xmm4,xmm0 @@ -973,9 +274,9 @@ db 102,15,58,68,229,16 psrlq xmm0,1 pxor xmm0,xmm1 test ebx,ebx - jnz NEAR L$011done + jnz NEAR L$006done movups xmm2,[edx] -L$008odd_tail: +L$003odd_tail: movdqu xmm3,[esi] db 102,15,56,0,221 pxor xmm0,xmm3 @@ -1014,7 +315,7 @@ db 102,15,58,68,220,0 pxor xmm0,xmm4 psrlq xmm0,1 pxor xmm0,xmm1 -L$011done: +L$006done: db 102,15,56,0,197 movdqu [eax],xmm0 pop edi @@ -1026,46 +327,6 @@ align 64 L$bswap: db 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 db 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194 -align 64 -L$rem_8bit: -dw 0,450,900,582,1800,1738,1164,1358 -dw 3600,4050,3476,3158,2328,2266,2716,2910 -dw 7200,7650,8100,7782,6952,6890,6316,6510 -dw 4656,5106,4532,4214,5432,5370,5820,6014 -dw 14400,14722,15300,14854,16200,16010,15564,15630 -dw 13904,14226,13780,13334,12632,12442,13020,13086 -dw 9312,9634,10212,9766,9064,8874,8428,8494 -dw 10864,11186,10740,10294,11640,11450,12028,12094 -dw 28800,28994,29444,29382,30600,30282,29708,30158 -dw 32400,32594,32020,31958,31128,30810,31260,31710 -dw 27808,28002,28452,28390,27560,27242,26668,27118 -dw 25264,25458,24884,24822,26040,25722,26172,26622 -dw 18624,18690,19268,19078,20424,19978,19532,19854 -dw 18128,18194,17748,17558,16856,16410,16988,17310 -dw 21728,21794,22372,22182,21480,21034,20588,20910 -dw 23280,23346,22900,22710,24056,23610,24188,24510 -dw 57600,57538,57988,58182,58888,59338,58764,58446 -dw 61200,61138,60564,60758,59416,59866,60316,59998 -dw 64800,64738,65188,65382,64040,64490,63916,63598 -dw 62256,62194,61620,61814,62520,62970,63420,63102 -dw 55616,55426,56004,56070,56904,57226,56780,56334 -dw 55120,54930,54484,54550,53336,53658,54236,53790 -dw 50528,50338,50916,50982,49768,50090,49644,49198 -dw 52080,51890,51444,51510,52344,52666,53244,52798 -dw 37248,36930,37380,37830,38536,38730,38156,38094 -dw 40848,40530,39956,40406,39064,39258,39708,39646 -dw 36256,35938,36388,36838,35496,35690,35116,35054 -dw 33712,33394,32820,33270,33976,34170,34620,34558 -dw 43456,43010,43588,43910,44744,44810,44364,44174 -dw 42960,42514,42068,42390,41176,41242,41820,41630 -dw 46560,46114,46692,47014,45800,45866,45420,45230 -dw 48112,47666,47220,47542,48376,48442,49020,48830 -align 64 -L$rem_4bit: -dd 0,0,0,471859200,0,943718400,0,610271232 -dd 0,1887436800,0,1822425088,0,1220542464,0,1423966208 -dd 0,3774873600,0,4246732800,0,3644850176,0,3311403008 -dd 0,2441084928,0,2376073216,0,2847932416,0,3051356160 db 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 db 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 db 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 diff --git a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/vpaes-x86.asm b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/vpaes-x86.asm index 3201b8d8334..81b8b8330fd 100644 --- a/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/vpaes-x86.asm +++ b/contrib/boringssl-cmake/win-x86/crypto/fipsmodule/vpaes-x86.asm @@ -20,7 +20,7 @@ section .text code align=64 %else section .text code %endif -%ifndef NDEBUG +%ifdef BORINGSSL_DISPATCH_TEST extern _BORINGSSL_function_hit %endif align 64 @@ -474,7 +474,7 @@ L$_vpaes_set_encrypt_key_begin: push ebx push esi push edi -%ifndef NDEBUG +%ifdef BORINGSSL_DISPATCH_TEST push ebx push edx call L$016pic @@ -553,7 +553,7 @@ L$_vpaes_encrypt_begin: push ebx push esi push edi -%ifndef NDEBUG +%ifdef BORINGSSL_DISPATCH_TEST push ebx push edx call L$019pic diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm index 9b226ed45c3..b1159ae0982 100644 --- a/contrib/boringssl-cmake/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm +++ b/contrib/boringssl-cmake/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm @@ -9,6 +9,8 @@ default rel %ifdef BORINGSSL_PREFIX %include "boringssl_prefix_symbols_nasm.inc" %endif +section .text code align=64 + global dummy_chacha20_poly1305_asm dummy_chacha20_poly1305_asm: diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aes-x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aes-x86_64.asm deleted file mode 100644 index 329185ee670..00000000000 --- a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aes-x86_64.asm +++ /dev/null @@ -1,2962 +0,0 @@ -; This file is generated from a similarly-named Perl script in the BoringSSL -; source tree. Do not edit by hand. - -default rel -%define XMMWORD -%define YMMWORD -%define ZMMWORD - -%ifdef BORINGSSL_PREFIX -%include "boringssl_prefix_symbols_nasm.inc" -%endif -section .text code align=64 - - -ALIGN 16 -_x86_64_AES_encrypt: - xor eax,DWORD[r15] - xor ebx,DWORD[4+r15] - xor ecx,DWORD[8+r15] - xor edx,DWORD[12+r15] - - mov r13d,DWORD[240+r15] - sub r13d,1 - jmp NEAR $L$enc_loop -ALIGN 16 -$L$enc_loop: - - movzx esi,al - movzx edi,bl - movzx ebp,cl - mov r10d,DWORD[rsi*8+r14] - mov r11d,DWORD[rdi*8+r14] - mov r12d,DWORD[rbp*8+r14] - - movzx esi,bh - movzx edi,ch - movzx ebp,dl - xor r10d,DWORD[3+rsi*8+r14] - xor r11d,DWORD[3+rdi*8+r14] - mov r8d,DWORD[rbp*8+r14] - - movzx esi,dh - shr ecx,16 - movzx ebp,ah - xor r12d,DWORD[3+rsi*8+r14] - shr edx,16 - xor r8d,DWORD[3+rbp*8+r14] - - shr ebx,16 - lea r15,[16+r15] - shr eax,16 - - movzx esi,cl - movzx edi,dl - movzx ebp,al - xor r10d,DWORD[2+rsi*8+r14] - xor r11d,DWORD[2+rdi*8+r14] - xor r12d,DWORD[2+rbp*8+r14] - - movzx esi,dh - movzx edi,ah - movzx ebp,bl - xor r10d,DWORD[1+rsi*8+r14] - xor r11d,DWORD[1+rdi*8+r14] - xor r8d,DWORD[2+rbp*8+r14] - - mov edx,DWORD[12+r15] - movzx edi,bh - movzx ebp,ch - mov eax,DWORD[r15] - xor r12d,DWORD[1+rdi*8+r14] - xor r8d,DWORD[1+rbp*8+r14] - - mov ebx,DWORD[4+r15] - mov ecx,DWORD[8+r15] - xor eax,r10d - xor ebx,r11d - xor ecx,r12d - xor edx,r8d - sub r13d,1 - jnz NEAR $L$enc_loop - movzx esi,al - movzx edi,bl - movzx ebp,cl - movzx r10d,BYTE[2+rsi*8+r14] - movzx r11d,BYTE[2+rdi*8+r14] - movzx r12d,BYTE[2+rbp*8+r14] - - movzx esi,dl - movzx edi,bh - movzx ebp,ch - movzx r8d,BYTE[2+rsi*8+r14] - mov edi,DWORD[rdi*8+r14] - mov ebp,DWORD[rbp*8+r14] - - and edi,0x0000ff00 - and ebp,0x0000ff00 - - xor r10d,edi - xor r11d,ebp - shr ecx,16 - - movzx esi,dh - movzx edi,ah - shr edx,16 - mov esi,DWORD[rsi*8+r14] - mov edi,DWORD[rdi*8+r14] - - and esi,0x0000ff00 - and edi,0x0000ff00 - shr ebx,16 - xor r12d,esi - xor r8d,edi - shr eax,16 - - movzx esi,cl - movzx edi,dl - movzx ebp,al - mov esi,DWORD[rsi*8+r14] - mov edi,DWORD[rdi*8+r14] - mov ebp,DWORD[rbp*8+r14] - - and esi,0x00ff0000 - and edi,0x00ff0000 - and ebp,0x00ff0000 - - xor r10d,esi - xor r11d,edi - xor r12d,ebp - - movzx esi,bl - movzx edi,dh - movzx ebp,ah - mov esi,DWORD[rsi*8+r14] - mov edi,DWORD[2+rdi*8+r14] - mov ebp,DWORD[2+rbp*8+r14] - - and esi,0x00ff0000 - and edi,0xff000000 - and ebp,0xff000000 - - xor r8d,esi - xor r10d,edi - xor r11d,ebp - - movzx esi,bh - movzx edi,ch - mov edx,DWORD[((16+12))+r15] - mov esi,DWORD[2+rsi*8+r14] - mov edi,DWORD[2+rdi*8+r14] - mov eax,DWORD[((16+0))+r15] - - and esi,0xff000000 - and edi,0xff000000 - - xor r12d,esi - xor r8d,edi - - mov ebx,DWORD[((16+4))+r15] - mov ecx,DWORD[((16+8))+r15] - xor eax,r10d - xor ebx,r11d - xor ecx,r12d - xor edx,r8d -DB 0xf3,0xc3 - - -ALIGN 16 -_x86_64_AES_encrypt_compact: - - lea r8,[128+r14] - mov edi,DWORD[((0-128))+r8] - mov ebp,DWORD[((32-128))+r8] - mov r10d,DWORD[((64-128))+r8] - mov r11d,DWORD[((96-128))+r8] - mov edi,DWORD[((128-128))+r8] - mov ebp,DWORD[((160-128))+r8] - mov r10d,DWORD[((192-128))+r8] - mov r11d,DWORD[((224-128))+r8] - jmp NEAR $L$enc_loop_compact -ALIGN 16 -$L$enc_loop_compact: - xor eax,DWORD[r15] - xor ebx,DWORD[4+r15] - xor ecx,DWORD[8+r15] - xor edx,DWORD[12+r15] - lea r15,[16+r15] - movzx r10d,al - movzx r11d,bl - movzx r12d,cl - movzx r8d,dl - movzx esi,bh - movzx edi,ch - shr ecx,16 - movzx ebp,dh - movzx r10d,BYTE[r10*1+r14] - movzx r11d,BYTE[r11*1+r14] - movzx r12d,BYTE[r12*1+r14] - movzx r8d,BYTE[r8*1+r14] - - movzx r9d,BYTE[rsi*1+r14] - movzx esi,ah - movzx r13d,BYTE[rdi*1+r14] - movzx edi,cl - movzx ebp,BYTE[rbp*1+r14] - movzx esi,BYTE[rsi*1+r14] - - shl r9d,8 - shr edx,16 - shl r13d,8 - xor r10d,r9d - shr eax,16 - movzx r9d,dl - shr ebx,16 - xor r11d,r13d - shl ebp,8 - movzx r13d,al - movzx edi,BYTE[rdi*1+r14] - xor r12d,ebp - - shl esi,8 - movzx ebp,bl - shl edi,16 - xor r8d,esi - movzx r9d,BYTE[r9*1+r14] - movzx esi,dh - movzx r13d,BYTE[r13*1+r14] - xor r10d,edi - - shr ecx,8 - movzx edi,ah - shl r9d,16 - shr ebx,8 - shl r13d,16 - xor r11d,r9d - movzx ebp,BYTE[rbp*1+r14] - movzx esi,BYTE[rsi*1+r14] - movzx edi,BYTE[rdi*1+r14] - movzx edx,BYTE[rcx*1+r14] - movzx ecx,BYTE[rbx*1+r14] - - shl ebp,16 - xor r12d,r13d - shl esi,24 - xor r8d,ebp - shl edi,24 - xor r10d,esi - shl edx,24 - xor r11d,edi - shl ecx,24 - mov eax,r10d - mov ebx,r11d - xor ecx,r12d - xor edx,r8d - cmp r15,QWORD[16+rsp] - je NEAR $L$enc_compact_done - mov r10d,0x80808080 - mov r11d,0x80808080 - and r10d,eax - and r11d,ebx - mov esi,r10d - mov edi,r11d - shr r10d,7 - lea r8d,[rax*1+rax] - shr r11d,7 - lea r9d,[rbx*1+rbx] - sub esi,r10d - sub edi,r11d - and r8d,0xfefefefe - and r9d,0xfefefefe - and esi,0x1b1b1b1b - and edi,0x1b1b1b1b - mov r10d,eax - mov r11d,ebx - xor r8d,esi - xor r9d,edi - - xor eax,r8d - xor ebx,r9d - mov r12d,0x80808080 - rol eax,24 - mov ebp,0x80808080 - rol ebx,24 - and r12d,ecx - and ebp,edx - xor eax,r8d - xor ebx,r9d - mov esi,r12d - ror r10d,16 - mov edi,ebp - ror r11d,16 - lea r8d,[rcx*1+rcx] - shr r12d,7 - xor eax,r10d - shr ebp,7 - xor ebx,r11d - ror r10d,8 - lea r9d,[rdx*1+rdx] - ror r11d,8 - sub esi,r12d - sub edi,ebp - xor eax,r10d - xor ebx,r11d - - and r8d,0xfefefefe - and r9d,0xfefefefe - and esi,0x1b1b1b1b - and edi,0x1b1b1b1b - mov r12d,ecx - mov ebp,edx - xor r8d,esi - xor r9d,edi - - ror r12d,16 - xor ecx,r8d - ror ebp,16 - xor edx,r9d - rol ecx,24 - mov esi,DWORD[r14] - rol edx,24 - xor ecx,r8d - mov edi,DWORD[64+r14] - xor edx,r9d - mov r8d,DWORD[128+r14] - xor ecx,r12d - ror r12d,8 - xor edx,ebp - ror ebp,8 - xor ecx,r12d - mov r9d,DWORD[192+r14] - xor edx,ebp - jmp NEAR $L$enc_loop_compact -ALIGN 16 -$L$enc_compact_done: - xor eax,DWORD[r15] - xor ebx,DWORD[4+r15] - xor ecx,DWORD[8+r15] - xor edx,DWORD[12+r15] -DB 0xf3,0xc3 - - -ALIGN 16 -global aes_nohw_encrypt - - -aes_nohw_encrypt: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_aes_nohw_encrypt: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - mov rax,rsp - - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - - - - lea rcx,[((-63))+rdx] - and rsp,-64 - sub rcx,rsp - neg rcx - and rcx,0x3c0 - sub rsp,rcx - sub rsp,32 - - mov QWORD[16+rsp],rsi - mov QWORD[24+rsp],rax - -$L$enc_prologue: - - mov r15,rdx - mov r13d,DWORD[240+r15] - - mov eax,DWORD[rdi] - mov ebx,DWORD[4+rdi] - mov ecx,DWORD[8+rdi] - mov edx,DWORD[12+rdi] - - shl r13d,4 - lea rbp,[r13*1+r15] - mov QWORD[rsp],r15 - mov QWORD[8+rsp],rbp - - - lea r14,[(($L$AES_Te+2048))] - lea rbp,[768+rsp] - sub rbp,r14 - and rbp,0x300 - lea r14,[rbp*1+r14] - - call _x86_64_AES_encrypt_compact - - mov r9,QWORD[16+rsp] - mov rsi,QWORD[24+rsp] - - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - mov r15,QWORD[((-48))+rsi] - - mov r14,QWORD[((-40))+rsi] - - mov r13,QWORD[((-32))+rsi] - - mov r12,QWORD[((-24))+rsi] - - mov rbp,QWORD[((-16))+rsi] - - mov rbx,QWORD[((-8))+rsi] - - lea rsp,[rsi] - -$L$enc_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_aes_nohw_encrypt: - -ALIGN 16 -_x86_64_AES_decrypt: - xor eax,DWORD[r15] - xor ebx,DWORD[4+r15] - xor ecx,DWORD[8+r15] - xor edx,DWORD[12+r15] - - mov r13d,DWORD[240+r15] - sub r13d,1 - jmp NEAR $L$dec_loop -ALIGN 16 -$L$dec_loop: - - movzx esi,al - movzx edi,bl - movzx ebp,cl - mov r10d,DWORD[rsi*8+r14] - mov r11d,DWORD[rdi*8+r14] - mov r12d,DWORD[rbp*8+r14] - - movzx esi,dh - movzx edi,ah - movzx ebp,dl - xor r10d,DWORD[3+rsi*8+r14] - xor r11d,DWORD[3+rdi*8+r14] - mov r8d,DWORD[rbp*8+r14] - - movzx esi,bh - shr eax,16 - movzx ebp,ch - xor r12d,DWORD[3+rsi*8+r14] - shr edx,16 - xor r8d,DWORD[3+rbp*8+r14] - - shr ebx,16 - lea r15,[16+r15] - shr ecx,16 - - movzx esi,cl - movzx edi,dl - movzx ebp,al - xor r10d,DWORD[2+rsi*8+r14] - xor r11d,DWORD[2+rdi*8+r14] - xor r12d,DWORD[2+rbp*8+r14] - - movzx esi,bh - movzx edi,ch - movzx ebp,bl - xor r10d,DWORD[1+rsi*8+r14] - xor r11d,DWORD[1+rdi*8+r14] - xor r8d,DWORD[2+rbp*8+r14] - - movzx esi,dh - mov edx,DWORD[12+r15] - movzx ebp,ah - xor r12d,DWORD[1+rsi*8+r14] - mov eax,DWORD[r15] - xor r8d,DWORD[1+rbp*8+r14] - - xor eax,r10d - mov ebx,DWORD[4+r15] - mov ecx,DWORD[8+r15] - xor ecx,r12d - xor ebx,r11d - xor edx,r8d - sub r13d,1 - jnz NEAR $L$dec_loop - lea r14,[2048+r14] - movzx esi,al - movzx edi,bl - movzx ebp,cl - movzx r10d,BYTE[rsi*1+r14] - movzx r11d,BYTE[rdi*1+r14] - movzx r12d,BYTE[rbp*1+r14] - - movzx esi,dl - movzx edi,dh - movzx ebp,ah - movzx r8d,BYTE[rsi*1+r14] - movzx edi,BYTE[rdi*1+r14] - movzx ebp,BYTE[rbp*1+r14] - - shl edi,8 - shl ebp,8 - - xor r10d,edi - xor r11d,ebp - shr edx,16 - - movzx esi,bh - movzx edi,ch - shr eax,16 - movzx esi,BYTE[rsi*1+r14] - movzx edi,BYTE[rdi*1+r14] - - shl esi,8 - shl edi,8 - shr ebx,16 - xor r12d,esi - xor r8d,edi - shr ecx,16 - - movzx esi,cl - movzx edi,dl - movzx ebp,al - movzx esi,BYTE[rsi*1+r14] - movzx edi,BYTE[rdi*1+r14] - movzx ebp,BYTE[rbp*1+r14] - - shl esi,16 - shl edi,16 - shl ebp,16 - - xor r10d,esi - xor r11d,edi - xor r12d,ebp - - movzx esi,bl - movzx edi,bh - movzx ebp,ch - movzx esi,BYTE[rsi*1+r14] - movzx edi,BYTE[rdi*1+r14] - movzx ebp,BYTE[rbp*1+r14] - - shl esi,16 - shl edi,24 - shl ebp,24 - - xor r8d,esi - xor r10d,edi - xor r11d,ebp - - movzx esi,dh - movzx edi,ah - mov edx,DWORD[((16+12))+r15] - movzx esi,BYTE[rsi*1+r14] - movzx edi,BYTE[rdi*1+r14] - mov eax,DWORD[((16+0))+r15] - - shl esi,24 - shl edi,24 - - xor r12d,esi - xor r8d,edi - - mov ebx,DWORD[((16+4))+r15] - mov ecx,DWORD[((16+8))+r15] - lea r14,[((-2048))+r14] - xor eax,r10d - xor ebx,r11d - xor ecx,r12d - xor edx,r8d -DB 0xf3,0xc3 - - -ALIGN 16 -_x86_64_AES_decrypt_compact: - - lea r8,[128+r14] - mov edi,DWORD[((0-128))+r8] - mov ebp,DWORD[((32-128))+r8] - mov r10d,DWORD[((64-128))+r8] - mov r11d,DWORD[((96-128))+r8] - mov edi,DWORD[((128-128))+r8] - mov ebp,DWORD[((160-128))+r8] - mov r10d,DWORD[((192-128))+r8] - mov r11d,DWORD[((224-128))+r8] - jmp NEAR $L$dec_loop_compact - -ALIGN 16 -$L$dec_loop_compact: - xor eax,DWORD[r15] - xor ebx,DWORD[4+r15] - xor ecx,DWORD[8+r15] - xor edx,DWORD[12+r15] - lea r15,[16+r15] - movzx r10d,al - movzx r11d,bl - movzx r12d,cl - movzx r8d,dl - movzx esi,dh - movzx edi,ah - shr edx,16 - movzx ebp,bh - movzx r10d,BYTE[r10*1+r14] - movzx r11d,BYTE[r11*1+r14] - movzx r12d,BYTE[r12*1+r14] - movzx r8d,BYTE[r8*1+r14] - - movzx r9d,BYTE[rsi*1+r14] - movzx esi,ch - movzx r13d,BYTE[rdi*1+r14] - movzx ebp,BYTE[rbp*1+r14] - movzx esi,BYTE[rsi*1+r14] - - shr ecx,16 - shl r13d,8 - shl r9d,8 - movzx edi,cl - shr eax,16 - xor r10d,r9d - shr ebx,16 - movzx r9d,dl - - shl ebp,8 - xor r11d,r13d - shl esi,8 - movzx r13d,al - movzx edi,BYTE[rdi*1+r14] - xor r12d,ebp - movzx ebp,bl - - shl edi,16 - xor r8d,esi - movzx r9d,BYTE[r9*1+r14] - movzx esi,bh - movzx ebp,BYTE[rbp*1+r14] - xor r10d,edi - movzx r13d,BYTE[r13*1+r14] - movzx edi,ch - - shl ebp,16 - shl r9d,16 - shl r13d,16 - xor r8d,ebp - movzx ebp,dh - xor r11d,r9d - shr eax,8 - xor r12d,r13d - - movzx esi,BYTE[rsi*1+r14] - movzx ebx,BYTE[rdi*1+r14] - movzx ecx,BYTE[rbp*1+r14] - movzx edx,BYTE[rax*1+r14] - - mov eax,r10d - shl esi,24 - shl ebx,24 - shl ecx,24 - xor eax,esi - shl edx,24 - xor ebx,r11d - xor ecx,r12d - xor edx,r8d - cmp r15,QWORD[16+rsp] - je NEAR $L$dec_compact_done - - mov rsi,QWORD[((256+0))+r14] - shl rbx,32 - shl rdx,32 - mov rdi,QWORD[((256+8))+r14] - or rax,rbx - or rcx,rdx - mov rbp,QWORD[((256+16))+r14] - mov r9,rsi - mov r12,rsi - and r9,rax - and r12,rcx - mov rbx,r9 - mov rdx,r12 - shr r9,7 - lea r8,[rax*1+rax] - shr r12,7 - lea r11,[rcx*1+rcx] - sub rbx,r9 - sub rdx,r12 - and r8,rdi - and r11,rdi - and rbx,rbp - and rdx,rbp - xor r8,rbx - xor r11,rdx - mov r10,rsi - mov r13,rsi - - and r10,r8 - and r13,r11 - mov rbx,r10 - mov rdx,r13 - shr r10,7 - lea r9,[r8*1+r8] - shr r13,7 - lea r12,[r11*1+r11] - sub rbx,r10 - sub rdx,r13 - and r9,rdi - and r12,rdi - and rbx,rbp - and rdx,rbp - xor r9,rbx - xor r12,rdx - mov r10,rsi - mov r13,rsi - - and r10,r9 - and r13,r12 - mov rbx,r10 - mov rdx,r13 - shr r10,7 - xor r8,rax - shr r13,7 - xor r11,rcx - sub rbx,r10 - sub rdx,r13 - lea r10,[r9*1+r9] - lea r13,[r12*1+r12] - xor r9,rax - xor r12,rcx - and r10,rdi - and r13,rdi - and rbx,rbp - and rdx,rbp - xor r10,rbx - xor r13,rdx - - xor rax,r10 - xor rcx,r13 - xor r8,r10 - xor r11,r13 - mov rbx,rax - mov rdx,rcx - xor r9,r10 - shr rbx,32 - xor r12,r13 - shr rdx,32 - xor r10,r8 - rol eax,8 - xor r13,r11 - rol ecx,8 - xor r10,r9 - rol ebx,8 - xor r13,r12 - - rol edx,8 - xor eax,r10d - shr r10,32 - xor ecx,r13d - shr r13,32 - xor ebx,r10d - xor edx,r13d - - mov r10,r8 - rol r8d,24 - mov r13,r11 - rol r11d,24 - shr r10,32 - xor eax,r8d - shr r13,32 - xor ecx,r11d - rol r10d,24 - mov r8,r9 - rol r13d,24 - mov r11,r12 - shr r8,32 - xor ebx,r10d - shr r11,32 - xor edx,r13d - - mov rsi,QWORD[r14] - rol r9d,16 - mov rdi,QWORD[64+r14] - rol r12d,16 - mov rbp,QWORD[128+r14] - rol r8d,16 - mov r10,QWORD[192+r14] - xor eax,r9d - rol r11d,16 - xor ecx,r12d - mov r13,QWORD[256+r14] - xor ebx,r8d - xor edx,r11d - jmp NEAR $L$dec_loop_compact -ALIGN 16 -$L$dec_compact_done: - xor eax,DWORD[r15] - xor ebx,DWORD[4+r15] - xor ecx,DWORD[8+r15] - xor edx,DWORD[12+r15] -DB 0xf3,0xc3 - - -ALIGN 16 -global aes_nohw_decrypt - - -aes_nohw_decrypt: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_aes_nohw_decrypt: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - mov rax,rsp - - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - - - - lea rcx,[((-63))+rdx] - and rsp,-64 - sub rcx,rsp - neg rcx - and rcx,0x3c0 - sub rsp,rcx - sub rsp,32 - - mov QWORD[16+rsp],rsi - mov QWORD[24+rsp],rax - -$L$dec_prologue: - - mov r15,rdx - mov r13d,DWORD[240+r15] - - mov eax,DWORD[rdi] - mov ebx,DWORD[4+rdi] - mov ecx,DWORD[8+rdi] - mov edx,DWORD[12+rdi] - - shl r13d,4 - lea rbp,[r13*1+r15] - mov QWORD[rsp],r15 - mov QWORD[8+rsp],rbp - - - lea r14,[(($L$AES_Td+2048))] - lea rbp,[768+rsp] - sub rbp,r14 - and rbp,0x300 - lea r14,[rbp*1+r14] - shr rbp,3 - add r14,rbp - - call _x86_64_AES_decrypt_compact - - mov r9,QWORD[16+rsp] - mov rsi,QWORD[24+rsp] - - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - mov r15,QWORD[((-48))+rsi] - - mov r14,QWORD[((-40))+rsi] - - mov r13,QWORD[((-32))+rsi] - - mov r12,QWORD[((-24))+rsi] - - mov rbp,QWORD[((-16))+rsi] - - mov rbx,QWORD[((-8))+rsi] - - lea rsp,[rsi] - -$L$dec_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_aes_nohw_decrypt: -ALIGN 16 -global aes_nohw_set_encrypt_key - -aes_nohw_set_encrypt_key: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_aes_nohw_set_encrypt_key: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - - sub rsp,8 - -$L$enc_key_prologue: - - call _x86_64_AES_set_encrypt_key - - mov rbp,QWORD[40+rsp] - - mov rbx,QWORD[48+rsp] - - add rsp,56 - -$L$enc_key_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_aes_nohw_set_encrypt_key: - - -ALIGN 16 -_x86_64_AES_set_encrypt_key: - - mov ecx,esi - mov rsi,rdi - mov rdi,rdx - - test rsi,-1 - jz NEAR $L$badpointer - test rdi,-1 - jz NEAR $L$badpointer - - lea rbp,[$L$AES_Te] - lea rbp,[((2048+128))+rbp] - - - mov eax,DWORD[((0-128))+rbp] - mov ebx,DWORD[((32-128))+rbp] - mov r8d,DWORD[((64-128))+rbp] - mov edx,DWORD[((96-128))+rbp] - mov eax,DWORD[((128-128))+rbp] - mov ebx,DWORD[((160-128))+rbp] - mov r8d,DWORD[((192-128))+rbp] - mov edx,DWORD[((224-128))+rbp] - - cmp ecx,128 - je NEAR $L$10rounds - cmp ecx,192 - je NEAR $L$12rounds - cmp ecx,256 - je NEAR $L$14rounds - mov rax,-2 - jmp NEAR $L$exit - -$L$10rounds: - mov rax,QWORD[rsi] - mov rdx,QWORD[8+rsi] - mov QWORD[rdi],rax - mov QWORD[8+rdi],rdx - - shr rdx,32 - xor ecx,ecx - jmp NEAR $L$10shortcut -ALIGN 4 -$L$10loop: - mov eax,DWORD[rdi] - mov edx,DWORD[12+rdi] -$L$10shortcut: - movzx esi,dl - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - shl ebx,24 - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shr edx,16 - movzx esi,dl - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - shl ebx,8 - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shl ebx,16 - xor eax,ebx - - xor eax,DWORD[((1024-128))+rcx*4+rbp] - mov DWORD[16+rdi],eax - xor eax,DWORD[4+rdi] - mov DWORD[20+rdi],eax - xor eax,DWORD[8+rdi] - mov DWORD[24+rdi],eax - xor eax,DWORD[12+rdi] - mov DWORD[28+rdi],eax - add ecx,1 - lea rdi,[16+rdi] - cmp ecx,10 - jl NEAR $L$10loop - - mov DWORD[80+rdi],10 - xor rax,rax - jmp NEAR $L$exit - -$L$12rounds: - mov rax,QWORD[rsi] - mov rbx,QWORD[8+rsi] - mov rdx,QWORD[16+rsi] - mov QWORD[rdi],rax - mov QWORD[8+rdi],rbx - mov QWORD[16+rdi],rdx - - shr rdx,32 - xor ecx,ecx - jmp NEAR $L$12shortcut -ALIGN 4 -$L$12loop: - mov eax,DWORD[rdi] - mov edx,DWORD[20+rdi] -$L$12shortcut: - movzx esi,dl - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - shl ebx,24 - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shr edx,16 - movzx esi,dl - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - shl ebx,8 - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shl ebx,16 - xor eax,ebx - - xor eax,DWORD[((1024-128))+rcx*4+rbp] - mov DWORD[24+rdi],eax - xor eax,DWORD[4+rdi] - mov DWORD[28+rdi],eax - xor eax,DWORD[8+rdi] - mov DWORD[32+rdi],eax - xor eax,DWORD[12+rdi] - mov DWORD[36+rdi],eax - - cmp ecx,7 - je NEAR $L$12break - add ecx,1 - - xor eax,DWORD[16+rdi] - mov DWORD[40+rdi],eax - xor eax,DWORD[20+rdi] - mov DWORD[44+rdi],eax - - lea rdi,[24+rdi] - jmp NEAR $L$12loop -$L$12break: - mov DWORD[72+rdi],12 - xor rax,rax - jmp NEAR $L$exit - -$L$14rounds: - mov rax,QWORD[rsi] - mov rbx,QWORD[8+rsi] - mov rcx,QWORD[16+rsi] - mov rdx,QWORD[24+rsi] - mov QWORD[rdi],rax - mov QWORD[8+rdi],rbx - mov QWORD[16+rdi],rcx - mov QWORD[24+rdi],rdx - - shr rdx,32 - xor ecx,ecx - jmp NEAR $L$14shortcut -ALIGN 4 -$L$14loop: - mov eax,DWORD[rdi] - mov edx,DWORD[28+rdi] -$L$14shortcut: - movzx esi,dl - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - shl ebx,24 - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shr edx,16 - movzx esi,dl - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - shl ebx,8 - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shl ebx,16 - xor eax,ebx - - xor eax,DWORD[((1024-128))+rcx*4+rbp] - mov DWORD[32+rdi],eax - xor eax,DWORD[4+rdi] - mov DWORD[36+rdi],eax - xor eax,DWORD[8+rdi] - mov DWORD[40+rdi],eax - xor eax,DWORD[12+rdi] - mov DWORD[44+rdi],eax - - cmp ecx,6 - je NEAR $L$14break - add ecx,1 - - mov edx,eax - mov eax,DWORD[16+rdi] - movzx esi,dl - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shr edx,16 - shl ebx,8 - movzx esi,dl - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - movzx esi,dh - shl ebx,16 - xor eax,ebx - - movzx ebx,BYTE[((-128))+rsi*1+rbp] - shl ebx,24 - xor eax,ebx - - mov DWORD[48+rdi],eax - xor eax,DWORD[20+rdi] - mov DWORD[52+rdi],eax - xor eax,DWORD[24+rdi] - mov DWORD[56+rdi],eax - xor eax,DWORD[28+rdi] - mov DWORD[60+rdi],eax - - lea rdi,[32+rdi] - jmp NEAR $L$14loop -$L$14break: - mov DWORD[48+rdi],14 - xor rax,rax - jmp NEAR $L$exit - -$L$badpointer: - mov rax,-1 -$L$exit: -DB 0xf3,0xc3 - - -ALIGN 16 -global aes_nohw_set_decrypt_key - -aes_nohw_set_decrypt_key: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_aes_nohw_set_decrypt_key: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - - push rdx - -$L$dec_key_prologue: - - call _x86_64_AES_set_encrypt_key - mov r8,QWORD[rsp] - cmp eax,0 - jne NEAR $L$abort - - mov r14d,DWORD[240+r8] - xor rdi,rdi - lea rcx,[r14*4+rdi] - mov rsi,r8 - lea rdi,[rcx*4+r8] -ALIGN 4 -$L$invert: - mov rax,QWORD[rsi] - mov rbx,QWORD[8+rsi] - mov rcx,QWORD[rdi] - mov rdx,QWORD[8+rdi] - mov QWORD[rdi],rax - mov QWORD[8+rdi],rbx - mov QWORD[rsi],rcx - mov QWORD[8+rsi],rdx - lea rsi,[16+rsi] - lea rdi,[((-16))+rdi] - cmp rdi,rsi - jne NEAR $L$invert - - lea rax,[(($L$AES_Te+2048+1024))] - - mov rsi,QWORD[40+rax] - mov rdi,QWORD[48+rax] - mov rbp,QWORD[56+rax] - - mov r15,r8 - sub r14d,1 -ALIGN 4 -$L$permute: - lea r15,[16+r15] - mov rax,QWORD[r15] - mov rcx,QWORD[8+r15] - mov r9,rsi - mov r12,rsi - and r9,rax - and r12,rcx - mov rbx,r9 - mov rdx,r12 - shr r9,7 - lea r8,[rax*1+rax] - shr r12,7 - lea r11,[rcx*1+rcx] - sub rbx,r9 - sub rdx,r12 - and r8,rdi - and r11,rdi - and rbx,rbp - and rdx,rbp - xor r8,rbx - xor r11,rdx - mov r10,rsi - mov r13,rsi - - and r10,r8 - and r13,r11 - mov rbx,r10 - mov rdx,r13 - shr r10,7 - lea r9,[r8*1+r8] - shr r13,7 - lea r12,[r11*1+r11] - sub rbx,r10 - sub rdx,r13 - and r9,rdi - and r12,rdi - and rbx,rbp - and rdx,rbp - xor r9,rbx - xor r12,rdx - mov r10,rsi - mov r13,rsi - - and r10,r9 - and r13,r12 - mov rbx,r10 - mov rdx,r13 - shr r10,7 - xor r8,rax - shr r13,7 - xor r11,rcx - sub rbx,r10 - sub rdx,r13 - lea r10,[r9*1+r9] - lea r13,[r12*1+r12] - xor r9,rax - xor r12,rcx - and r10,rdi - and r13,rdi - and rbx,rbp - and rdx,rbp - xor r10,rbx - xor r13,rdx - - xor rax,r10 - xor rcx,r13 - xor r8,r10 - xor r11,r13 - mov rbx,rax - mov rdx,rcx - xor r9,r10 - shr rbx,32 - xor r12,r13 - shr rdx,32 - xor r10,r8 - rol eax,8 - xor r13,r11 - rol ecx,8 - xor r10,r9 - rol ebx,8 - xor r13,r12 - - rol edx,8 - xor eax,r10d - shr r10,32 - xor ecx,r13d - shr r13,32 - xor ebx,r10d - xor edx,r13d - - mov r10,r8 - rol r8d,24 - mov r13,r11 - rol r11d,24 - shr r10,32 - xor eax,r8d - shr r13,32 - xor ecx,r11d - rol r10d,24 - mov r8,r9 - rol r13d,24 - mov r11,r12 - shr r8,32 - xor ebx,r10d - shr r11,32 - xor edx,r13d - - - rol r9d,16 - - rol r12d,16 - - rol r8d,16 - - xor eax,r9d - rol r11d,16 - xor ecx,r12d - - xor ebx,r8d - xor edx,r11d - mov DWORD[r15],eax - mov DWORD[4+r15],ebx - mov DWORD[8+r15],ecx - mov DWORD[12+r15],edx - sub r14d,1 - jnz NEAR $L$permute - - xor rax,rax -$L$abort: - mov r15,QWORD[8+rsp] - - mov r14,QWORD[16+rsp] - - mov r13,QWORD[24+rsp] - - mov r12,QWORD[32+rsp] - - mov rbp,QWORD[40+rsp] - - mov rbx,QWORD[48+rsp] - - add rsp,56 - -$L$dec_key_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_aes_nohw_set_decrypt_key: -ALIGN 16 -global aes_nohw_cbc_encrypt - -EXTERN OPENSSL_ia32cap_P - -aes_nohw_cbc_encrypt: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_aes_nohw_cbc_encrypt: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - mov r8,QWORD[40+rsp] - mov r9,QWORD[48+rsp] - - - - cmp rdx,0 - je NEAR $L$cbc_epilogue - pushfq - - - - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - -$L$cbc_prologue: - - cld - mov r9d,r9d - - lea r14,[$L$AES_Te] - lea r10,[$L$AES_Td] - cmp r9,0 - cmove r14,r10 - - - lea r10,[OPENSSL_ia32cap_P] - mov r10d,DWORD[r10] - cmp rdx,512 - jb NEAR $L$cbc_slow_prologue - test rdx,15 - jnz NEAR $L$cbc_slow_prologue - bt r10d,28 - jc NEAR $L$cbc_slow_prologue - - - lea r15,[((-88-248))+rsp] - and r15,-64 - - - mov r10,r14 - lea r11,[2304+r14] - mov r12,r15 - and r10,0xFFF - and r11,0xFFF - and r12,0xFFF - - cmp r12,r11 - jb NEAR $L$cbc_te_break_out - sub r12,r11 - sub r15,r12 - jmp NEAR $L$cbc_te_ok -$L$cbc_te_break_out: - sub r12,r10 - and r12,0xFFF - add r12,320 - sub r15,r12 -ALIGN 4 -$L$cbc_te_ok: - - xchg r15,rsp - - - mov QWORD[16+rsp],r15 - -$L$cbc_fast_body: - mov QWORD[24+rsp],rdi - mov QWORD[32+rsp],rsi - mov QWORD[40+rsp],rdx - mov QWORD[48+rsp],rcx - mov QWORD[56+rsp],r8 - mov DWORD[((80+240))+rsp],0 - mov rbp,r8 - mov rbx,r9 - mov r9,rsi - mov r8,rdi - mov r15,rcx - - mov eax,DWORD[240+r15] - - mov r10,r15 - sub r10,r14 - and r10,0xfff - cmp r10,2304 - jb NEAR $L$cbc_do_ecopy - cmp r10,4096-248 - jb NEAR $L$cbc_skip_ecopy -ALIGN 4 -$L$cbc_do_ecopy: - mov rsi,r15 - lea rdi,[80+rsp] - lea r15,[80+rsp] - mov ecx,240/8 - DD 0x90A548F3 - mov DWORD[rdi],eax -$L$cbc_skip_ecopy: - mov QWORD[rsp],r15 - - mov ecx,18 -ALIGN 4 -$L$cbc_prefetch_te: - mov r10,QWORD[r14] - mov r11,QWORD[32+r14] - mov r12,QWORD[64+r14] - mov r13,QWORD[96+r14] - lea r14,[128+r14] - sub ecx,1 - jnz NEAR $L$cbc_prefetch_te - lea r14,[((-2304))+r14] - - cmp rbx,0 - je NEAR $L$FAST_DECRYPT - - - mov eax,DWORD[rbp] - mov ebx,DWORD[4+rbp] - mov ecx,DWORD[8+rbp] - mov edx,DWORD[12+rbp] - -ALIGN 4 -$L$cbc_fast_enc_loop: - xor eax,DWORD[r8] - xor ebx,DWORD[4+r8] - xor ecx,DWORD[8+r8] - xor edx,DWORD[12+r8] - mov r15,QWORD[rsp] - mov QWORD[24+rsp],r8 - - call _x86_64_AES_encrypt - - mov r8,QWORD[24+rsp] - mov r10,QWORD[40+rsp] - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - lea r8,[16+r8] - lea r9,[16+r9] - sub r10,16 - test r10,-16 - mov QWORD[40+rsp],r10 - jnz NEAR $L$cbc_fast_enc_loop - mov rbp,QWORD[56+rsp] - mov DWORD[rbp],eax - mov DWORD[4+rbp],ebx - mov DWORD[8+rbp],ecx - mov DWORD[12+rbp],edx - - jmp NEAR $L$cbc_fast_cleanup - - -ALIGN 16 -$L$FAST_DECRYPT: - cmp r9,r8 - je NEAR $L$cbc_fast_dec_in_place - - mov QWORD[64+rsp],rbp -ALIGN 4 -$L$cbc_fast_dec_loop: - mov eax,DWORD[r8] - mov ebx,DWORD[4+r8] - mov ecx,DWORD[8+r8] - mov edx,DWORD[12+r8] - mov r15,QWORD[rsp] - mov QWORD[24+rsp],r8 - - call _x86_64_AES_decrypt - - mov rbp,QWORD[64+rsp] - mov r8,QWORD[24+rsp] - mov r10,QWORD[40+rsp] - xor eax,DWORD[rbp] - xor ebx,DWORD[4+rbp] - xor ecx,DWORD[8+rbp] - xor edx,DWORD[12+rbp] - mov rbp,r8 - - sub r10,16 - mov QWORD[40+rsp],r10 - mov QWORD[64+rsp],rbp - - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - lea r8,[16+r8] - lea r9,[16+r9] - jnz NEAR $L$cbc_fast_dec_loop - mov r12,QWORD[56+rsp] - mov r10,QWORD[rbp] - mov r11,QWORD[8+rbp] - mov QWORD[r12],r10 - mov QWORD[8+r12],r11 - jmp NEAR $L$cbc_fast_cleanup - -ALIGN 16 -$L$cbc_fast_dec_in_place: - mov r10,QWORD[rbp] - mov r11,QWORD[8+rbp] - mov QWORD[((0+64))+rsp],r10 - mov QWORD[((8+64))+rsp],r11 -ALIGN 4 -$L$cbc_fast_dec_in_place_loop: - mov eax,DWORD[r8] - mov ebx,DWORD[4+r8] - mov ecx,DWORD[8+r8] - mov edx,DWORD[12+r8] - mov r15,QWORD[rsp] - mov QWORD[24+rsp],r8 - - call _x86_64_AES_decrypt - - mov r8,QWORD[24+rsp] - mov r10,QWORD[40+rsp] - xor eax,DWORD[((0+64))+rsp] - xor ebx,DWORD[((4+64))+rsp] - xor ecx,DWORD[((8+64))+rsp] - xor edx,DWORD[((12+64))+rsp] - - mov r11,QWORD[r8] - mov r12,QWORD[8+r8] - sub r10,16 - jz NEAR $L$cbc_fast_dec_in_place_done - - mov QWORD[((0+64))+rsp],r11 - mov QWORD[((8+64))+rsp],r12 - - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - lea r8,[16+r8] - lea r9,[16+r9] - mov QWORD[40+rsp],r10 - jmp NEAR $L$cbc_fast_dec_in_place_loop -$L$cbc_fast_dec_in_place_done: - mov rdi,QWORD[56+rsp] - mov QWORD[rdi],r11 - mov QWORD[8+rdi],r12 - - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - -ALIGN 4 -$L$cbc_fast_cleanup: - cmp DWORD[((80+240))+rsp],0 - lea rdi,[80+rsp] - je NEAR $L$cbc_exit - mov ecx,240/8 - xor rax,rax - DD 0x90AB48F3 - - jmp NEAR $L$cbc_exit - - -ALIGN 16 -$L$cbc_slow_prologue: - - - lea rbp,[((-88))+rsp] - and rbp,-64 - - lea r10,[((-88-63))+rcx] - sub r10,rbp - neg r10 - and r10,0x3c0 - sub rbp,r10 - - xchg rbp,rsp - - - mov QWORD[16+rsp],rbp - -$L$cbc_slow_body: - - - - - mov QWORD[56+rsp],r8 - mov rbp,r8 - mov rbx,r9 - mov r9,rsi - mov r8,rdi - mov r15,rcx - mov r10,rdx - - mov eax,DWORD[240+r15] - mov QWORD[rsp],r15 - shl eax,4 - lea rax,[rax*1+r15] - mov QWORD[8+rsp],rax - - - lea r14,[2048+r14] - lea rax,[((768-8))+rsp] - sub rax,r14 - and rax,0x300 - lea r14,[rax*1+r14] - - cmp rbx,0 - je NEAR $L$SLOW_DECRYPT - - - test r10,-16 - mov eax,DWORD[rbp] - mov ebx,DWORD[4+rbp] - mov ecx,DWORD[8+rbp] - mov edx,DWORD[12+rbp] - jz NEAR $L$cbc_slow_enc_tail - -ALIGN 4 -$L$cbc_slow_enc_loop: - xor eax,DWORD[r8] - xor ebx,DWORD[4+r8] - xor ecx,DWORD[8+r8] - xor edx,DWORD[12+r8] - mov r15,QWORD[rsp] - mov QWORD[24+rsp],r8 - mov QWORD[32+rsp],r9 - mov QWORD[40+rsp],r10 - - call _x86_64_AES_encrypt_compact - - mov r8,QWORD[24+rsp] - mov r9,QWORD[32+rsp] - mov r10,QWORD[40+rsp] - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - lea r8,[16+r8] - lea r9,[16+r9] - sub r10,16 - test r10,-16 - jnz NEAR $L$cbc_slow_enc_loop - test r10,15 - jnz NEAR $L$cbc_slow_enc_tail - mov rbp,QWORD[56+rsp] - mov DWORD[rbp],eax - mov DWORD[4+rbp],ebx - mov DWORD[8+rbp],ecx - mov DWORD[12+rbp],edx - - jmp NEAR $L$cbc_exit - -ALIGN 4 -$L$cbc_slow_enc_tail: - mov r11,rax - mov r12,rcx - mov rcx,r10 - mov rsi,r8 - mov rdi,r9 - DD 0x9066A4F3 - mov rcx,16 - sub rcx,r10 - xor rax,rax - DD 0x9066AAF3 - mov r8,r9 - mov r10,16 - mov rax,r11 - mov rcx,r12 - jmp NEAR $L$cbc_slow_enc_loop - -ALIGN 16 -$L$SLOW_DECRYPT: - shr rax,3 - add r14,rax - - mov r11,QWORD[rbp] - mov r12,QWORD[8+rbp] - mov QWORD[((0+64))+rsp],r11 - mov QWORD[((8+64))+rsp],r12 - -ALIGN 4 -$L$cbc_slow_dec_loop: - mov eax,DWORD[r8] - mov ebx,DWORD[4+r8] - mov ecx,DWORD[8+r8] - mov edx,DWORD[12+r8] - mov r15,QWORD[rsp] - mov QWORD[24+rsp],r8 - mov QWORD[32+rsp],r9 - mov QWORD[40+rsp],r10 - - call _x86_64_AES_decrypt_compact - - mov r8,QWORD[24+rsp] - mov r9,QWORD[32+rsp] - mov r10,QWORD[40+rsp] - xor eax,DWORD[((0+64))+rsp] - xor ebx,DWORD[((4+64))+rsp] - xor ecx,DWORD[((8+64))+rsp] - xor edx,DWORD[((12+64))+rsp] - - mov r11,QWORD[r8] - mov r12,QWORD[8+r8] - sub r10,16 - jc NEAR $L$cbc_slow_dec_partial - jz NEAR $L$cbc_slow_dec_done - - mov QWORD[((0+64))+rsp],r11 - mov QWORD[((8+64))+rsp],r12 - - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - lea r8,[16+r8] - lea r9,[16+r9] - jmp NEAR $L$cbc_slow_dec_loop -$L$cbc_slow_dec_done: - mov rdi,QWORD[56+rsp] - mov QWORD[rdi],r11 - mov QWORD[8+rdi],r12 - - mov DWORD[r9],eax - mov DWORD[4+r9],ebx - mov DWORD[8+r9],ecx - mov DWORD[12+r9],edx - - jmp NEAR $L$cbc_exit - -ALIGN 4 -$L$cbc_slow_dec_partial: - mov rdi,QWORD[56+rsp] - mov QWORD[rdi],r11 - mov QWORD[8+rdi],r12 - - mov DWORD[((0+64))+rsp],eax - mov DWORD[((4+64))+rsp],ebx - mov DWORD[((8+64))+rsp],ecx - mov DWORD[((12+64))+rsp],edx - - mov rdi,r9 - lea rsi,[64+rsp] - lea rcx,[16+r10] - DD 0x9066A4F3 - jmp NEAR $L$cbc_exit - -ALIGN 16 -$L$cbc_exit: - mov rsi,QWORD[16+rsp] - - mov r15,QWORD[rsi] - - mov r14,QWORD[8+rsi] - - mov r13,QWORD[16+rsi] - - mov r12,QWORD[24+rsi] - - mov rbp,QWORD[32+rsi] - - mov rbx,QWORD[40+rsi] - - lea rsp,[48+rsi] - -$L$cbc_popfq: - popfq - - - -$L$cbc_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_aes_nohw_cbc_encrypt: -ALIGN 64 -$L$AES_Te: - DD 0xa56363c6,0xa56363c6 - DD 0x847c7cf8,0x847c7cf8 - DD 0x997777ee,0x997777ee - DD 0x8d7b7bf6,0x8d7b7bf6 - DD 0x0df2f2ff,0x0df2f2ff - DD 0xbd6b6bd6,0xbd6b6bd6 - DD 0xb16f6fde,0xb16f6fde - DD 0x54c5c591,0x54c5c591 - DD 0x50303060,0x50303060 - DD 0x03010102,0x03010102 - DD 0xa96767ce,0xa96767ce - DD 0x7d2b2b56,0x7d2b2b56 - DD 0x19fefee7,0x19fefee7 - DD 0x62d7d7b5,0x62d7d7b5 - DD 0xe6abab4d,0xe6abab4d - DD 0x9a7676ec,0x9a7676ec - DD 0x45caca8f,0x45caca8f - DD 0x9d82821f,0x9d82821f - DD 0x40c9c989,0x40c9c989 - DD 0x877d7dfa,0x877d7dfa - DD 0x15fafaef,0x15fafaef - DD 0xeb5959b2,0xeb5959b2 - DD 0xc947478e,0xc947478e - DD 0x0bf0f0fb,0x0bf0f0fb - DD 0xecadad41,0xecadad41 - DD 0x67d4d4b3,0x67d4d4b3 - DD 0xfda2a25f,0xfda2a25f - DD 0xeaafaf45,0xeaafaf45 - DD 0xbf9c9c23,0xbf9c9c23 - DD 0xf7a4a453,0xf7a4a453 - DD 0x967272e4,0x967272e4 - DD 0x5bc0c09b,0x5bc0c09b - DD 0xc2b7b775,0xc2b7b775 - DD 0x1cfdfde1,0x1cfdfde1 - DD 0xae93933d,0xae93933d - DD 0x6a26264c,0x6a26264c - DD 0x5a36366c,0x5a36366c - DD 0x413f3f7e,0x413f3f7e - DD 0x02f7f7f5,0x02f7f7f5 - DD 0x4fcccc83,0x4fcccc83 - DD 0x5c343468,0x5c343468 - DD 0xf4a5a551,0xf4a5a551 - DD 0x34e5e5d1,0x34e5e5d1 - DD 0x08f1f1f9,0x08f1f1f9 - DD 0x937171e2,0x937171e2 - DD 0x73d8d8ab,0x73d8d8ab - DD 0x53313162,0x53313162 - DD 0x3f15152a,0x3f15152a - DD 0x0c040408,0x0c040408 - DD 0x52c7c795,0x52c7c795 - DD 0x65232346,0x65232346 - DD 0x5ec3c39d,0x5ec3c39d - DD 0x28181830,0x28181830 - DD 0xa1969637,0xa1969637 - DD 0x0f05050a,0x0f05050a - DD 0xb59a9a2f,0xb59a9a2f - DD 0x0907070e,0x0907070e - DD 0x36121224,0x36121224 - DD 0x9b80801b,0x9b80801b - DD 0x3de2e2df,0x3de2e2df - DD 0x26ebebcd,0x26ebebcd - DD 0x6927274e,0x6927274e - DD 0xcdb2b27f,0xcdb2b27f - DD 0x9f7575ea,0x9f7575ea - DD 0x1b090912,0x1b090912 - DD 0x9e83831d,0x9e83831d - DD 0x742c2c58,0x742c2c58 - DD 0x2e1a1a34,0x2e1a1a34 - DD 0x2d1b1b36,0x2d1b1b36 - DD 0xb26e6edc,0xb26e6edc - DD 0xee5a5ab4,0xee5a5ab4 - DD 0xfba0a05b,0xfba0a05b - DD 0xf65252a4,0xf65252a4 - DD 0x4d3b3b76,0x4d3b3b76 - DD 0x61d6d6b7,0x61d6d6b7 - DD 0xceb3b37d,0xceb3b37d - DD 0x7b292952,0x7b292952 - DD 0x3ee3e3dd,0x3ee3e3dd - DD 0x712f2f5e,0x712f2f5e - DD 0x97848413,0x97848413 - DD 0xf55353a6,0xf55353a6 - DD 0x68d1d1b9,0x68d1d1b9 - DD 0x00000000,0x00000000 - DD 0x2cededc1,0x2cededc1 - DD 0x60202040,0x60202040 - DD 0x1ffcfce3,0x1ffcfce3 - DD 0xc8b1b179,0xc8b1b179 - DD 0xed5b5bb6,0xed5b5bb6 - DD 0xbe6a6ad4,0xbe6a6ad4 - DD 0x46cbcb8d,0x46cbcb8d - DD 0xd9bebe67,0xd9bebe67 - DD 0x4b393972,0x4b393972 - DD 0xde4a4a94,0xde4a4a94 - DD 0xd44c4c98,0xd44c4c98 - DD 0xe85858b0,0xe85858b0 - DD 0x4acfcf85,0x4acfcf85 - DD 0x6bd0d0bb,0x6bd0d0bb - DD 0x2aefefc5,0x2aefefc5 - DD 0xe5aaaa4f,0xe5aaaa4f - DD 0x16fbfbed,0x16fbfbed - DD 0xc5434386,0xc5434386 - DD 0xd74d4d9a,0xd74d4d9a - DD 0x55333366,0x55333366 - DD 0x94858511,0x94858511 - DD 0xcf45458a,0xcf45458a - DD 0x10f9f9e9,0x10f9f9e9 - DD 0x06020204,0x06020204 - DD 0x817f7ffe,0x817f7ffe - DD 0xf05050a0,0xf05050a0 - DD 0x443c3c78,0x443c3c78 - DD 0xba9f9f25,0xba9f9f25 - DD 0xe3a8a84b,0xe3a8a84b - DD 0xf35151a2,0xf35151a2 - DD 0xfea3a35d,0xfea3a35d - DD 0xc0404080,0xc0404080 - DD 0x8a8f8f05,0x8a8f8f05 - DD 0xad92923f,0xad92923f - DD 0xbc9d9d21,0xbc9d9d21 - DD 0x48383870,0x48383870 - DD 0x04f5f5f1,0x04f5f5f1 - DD 0xdfbcbc63,0xdfbcbc63 - DD 0xc1b6b677,0xc1b6b677 - DD 0x75dadaaf,0x75dadaaf - DD 0x63212142,0x63212142 - DD 0x30101020,0x30101020 - DD 0x1affffe5,0x1affffe5 - DD 0x0ef3f3fd,0x0ef3f3fd - DD 0x6dd2d2bf,0x6dd2d2bf - DD 0x4ccdcd81,0x4ccdcd81 - DD 0x140c0c18,0x140c0c18 - DD 0x35131326,0x35131326 - DD 0x2fececc3,0x2fececc3 - DD 0xe15f5fbe,0xe15f5fbe - DD 0xa2979735,0xa2979735 - DD 0xcc444488,0xcc444488 - DD 0x3917172e,0x3917172e - DD 0x57c4c493,0x57c4c493 - DD 0xf2a7a755,0xf2a7a755 - DD 0x827e7efc,0x827e7efc - DD 0x473d3d7a,0x473d3d7a - DD 0xac6464c8,0xac6464c8 - DD 0xe75d5dba,0xe75d5dba - DD 0x2b191932,0x2b191932 - DD 0x957373e6,0x957373e6 - DD 0xa06060c0,0xa06060c0 - DD 0x98818119,0x98818119 - DD 0xd14f4f9e,0xd14f4f9e - DD 0x7fdcdca3,0x7fdcdca3 - DD 0x66222244,0x66222244 - DD 0x7e2a2a54,0x7e2a2a54 - DD 0xab90903b,0xab90903b - DD 0x8388880b,0x8388880b - DD 0xca46468c,0xca46468c - DD 0x29eeeec7,0x29eeeec7 - DD 0xd3b8b86b,0xd3b8b86b - DD 0x3c141428,0x3c141428 - DD 0x79dedea7,0x79dedea7 - DD 0xe25e5ebc,0xe25e5ebc - DD 0x1d0b0b16,0x1d0b0b16 - DD 0x76dbdbad,0x76dbdbad - DD 0x3be0e0db,0x3be0e0db - DD 0x56323264,0x56323264 - DD 0x4e3a3a74,0x4e3a3a74 - DD 0x1e0a0a14,0x1e0a0a14 - DD 0xdb494992,0xdb494992 - DD 0x0a06060c,0x0a06060c - DD 0x6c242448,0x6c242448 - DD 0xe45c5cb8,0xe45c5cb8 - DD 0x5dc2c29f,0x5dc2c29f - DD 0x6ed3d3bd,0x6ed3d3bd - DD 0xefacac43,0xefacac43 - DD 0xa66262c4,0xa66262c4 - DD 0xa8919139,0xa8919139 - DD 0xa4959531,0xa4959531 - DD 0x37e4e4d3,0x37e4e4d3 - DD 0x8b7979f2,0x8b7979f2 - DD 0x32e7e7d5,0x32e7e7d5 - DD 0x43c8c88b,0x43c8c88b - DD 0x5937376e,0x5937376e - DD 0xb76d6dda,0xb76d6dda - DD 0x8c8d8d01,0x8c8d8d01 - DD 0x64d5d5b1,0x64d5d5b1 - DD 0xd24e4e9c,0xd24e4e9c - DD 0xe0a9a949,0xe0a9a949 - DD 0xb46c6cd8,0xb46c6cd8 - DD 0xfa5656ac,0xfa5656ac - DD 0x07f4f4f3,0x07f4f4f3 - DD 0x25eaeacf,0x25eaeacf - DD 0xaf6565ca,0xaf6565ca - DD 0x8e7a7af4,0x8e7a7af4 - DD 0xe9aeae47,0xe9aeae47 - DD 0x18080810,0x18080810 - DD 0xd5baba6f,0xd5baba6f - DD 0x887878f0,0x887878f0 - DD 0x6f25254a,0x6f25254a - DD 0x722e2e5c,0x722e2e5c - DD 0x241c1c38,0x241c1c38 - DD 0xf1a6a657,0xf1a6a657 - DD 0xc7b4b473,0xc7b4b473 - DD 0x51c6c697,0x51c6c697 - DD 0x23e8e8cb,0x23e8e8cb - DD 0x7cdddda1,0x7cdddda1 - DD 0x9c7474e8,0x9c7474e8 - DD 0x211f1f3e,0x211f1f3e - DD 0xdd4b4b96,0xdd4b4b96 - DD 0xdcbdbd61,0xdcbdbd61 - DD 0x868b8b0d,0x868b8b0d - DD 0x858a8a0f,0x858a8a0f - DD 0x907070e0,0x907070e0 - DD 0x423e3e7c,0x423e3e7c - DD 0xc4b5b571,0xc4b5b571 - DD 0xaa6666cc,0xaa6666cc - DD 0xd8484890,0xd8484890 - DD 0x05030306,0x05030306 - DD 0x01f6f6f7,0x01f6f6f7 - DD 0x120e0e1c,0x120e0e1c - DD 0xa36161c2,0xa36161c2 - DD 0x5f35356a,0x5f35356a - DD 0xf95757ae,0xf95757ae - DD 0xd0b9b969,0xd0b9b969 - DD 0x91868617,0x91868617 - DD 0x58c1c199,0x58c1c199 - DD 0x271d1d3a,0x271d1d3a - DD 0xb99e9e27,0xb99e9e27 - DD 0x38e1e1d9,0x38e1e1d9 - DD 0x13f8f8eb,0x13f8f8eb - DD 0xb398982b,0xb398982b - DD 0x33111122,0x33111122 - DD 0xbb6969d2,0xbb6969d2 - DD 0x70d9d9a9,0x70d9d9a9 - DD 0x898e8e07,0x898e8e07 - DD 0xa7949433,0xa7949433 - DD 0xb69b9b2d,0xb69b9b2d - DD 0x221e1e3c,0x221e1e3c - DD 0x92878715,0x92878715 - DD 0x20e9e9c9,0x20e9e9c9 - DD 0x49cece87,0x49cece87 - DD 0xff5555aa,0xff5555aa - DD 0x78282850,0x78282850 - DD 0x7adfdfa5,0x7adfdfa5 - DD 0x8f8c8c03,0x8f8c8c03 - DD 0xf8a1a159,0xf8a1a159 - DD 0x80898909,0x80898909 - DD 0x170d0d1a,0x170d0d1a - DD 0xdabfbf65,0xdabfbf65 - DD 0x31e6e6d7,0x31e6e6d7 - DD 0xc6424284,0xc6424284 - DD 0xb86868d0,0xb86868d0 - DD 0xc3414182,0xc3414182 - DD 0xb0999929,0xb0999929 - DD 0x772d2d5a,0x772d2d5a - DD 0x110f0f1e,0x110f0f1e - DD 0xcbb0b07b,0xcbb0b07b - DD 0xfc5454a8,0xfc5454a8 - DD 0xd6bbbb6d,0xd6bbbb6d - DD 0x3a16162c,0x3a16162c -DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 -DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5 -DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76 -DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0 -DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0 -DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc -DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15 -DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a -DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75 -DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0 -DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84 -DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b -DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf -DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85 -DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8 -DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5 -DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2 -DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17 -DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73 -DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88 -DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb -DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c -DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79 -DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9 -DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08 -DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6 -DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a -DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e -DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e -DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94 -DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf -DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68 -DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 - DD 0x00000001,0x00000002,0x00000004,0x00000008 - DD 0x00000010,0x00000020,0x00000040,0x00000080 - DD 0x0000001b,0x00000036,0x80808080,0x80808080 - DD 0xfefefefe,0xfefefefe,0x1b1b1b1b,0x1b1b1b1b -ALIGN 64 -$L$AES_Td: - DD 0x50a7f451,0x50a7f451 - DD 0x5365417e,0x5365417e - DD 0xc3a4171a,0xc3a4171a - DD 0x965e273a,0x965e273a - DD 0xcb6bab3b,0xcb6bab3b - DD 0xf1459d1f,0xf1459d1f - DD 0xab58faac,0xab58faac - DD 0x9303e34b,0x9303e34b - DD 0x55fa3020,0x55fa3020 - DD 0xf66d76ad,0xf66d76ad - DD 0x9176cc88,0x9176cc88 - DD 0x254c02f5,0x254c02f5 - DD 0xfcd7e54f,0xfcd7e54f - DD 0xd7cb2ac5,0xd7cb2ac5 - DD 0x80443526,0x80443526 - DD 0x8fa362b5,0x8fa362b5 - DD 0x495ab1de,0x495ab1de - DD 0x671bba25,0x671bba25 - DD 0x980eea45,0x980eea45 - DD 0xe1c0fe5d,0xe1c0fe5d - DD 0x02752fc3,0x02752fc3 - DD 0x12f04c81,0x12f04c81 - DD 0xa397468d,0xa397468d - DD 0xc6f9d36b,0xc6f9d36b - DD 0xe75f8f03,0xe75f8f03 - DD 0x959c9215,0x959c9215 - DD 0xeb7a6dbf,0xeb7a6dbf - DD 0xda595295,0xda595295 - DD 0x2d83bed4,0x2d83bed4 - DD 0xd3217458,0xd3217458 - DD 0x2969e049,0x2969e049 - DD 0x44c8c98e,0x44c8c98e - DD 0x6a89c275,0x6a89c275 - DD 0x78798ef4,0x78798ef4 - DD 0x6b3e5899,0x6b3e5899 - DD 0xdd71b927,0xdd71b927 - DD 0xb64fe1be,0xb64fe1be - DD 0x17ad88f0,0x17ad88f0 - DD 0x66ac20c9,0x66ac20c9 - DD 0xb43ace7d,0xb43ace7d - DD 0x184adf63,0x184adf63 - DD 0x82311ae5,0x82311ae5 - DD 0x60335197,0x60335197 - DD 0x457f5362,0x457f5362 - DD 0xe07764b1,0xe07764b1 - DD 0x84ae6bbb,0x84ae6bbb - DD 0x1ca081fe,0x1ca081fe - DD 0x942b08f9,0x942b08f9 - DD 0x58684870,0x58684870 - DD 0x19fd458f,0x19fd458f - DD 0x876cde94,0x876cde94 - DD 0xb7f87b52,0xb7f87b52 - DD 0x23d373ab,0x23d373ab - DD 0xe2024b72,0xe2024b72 - DD 0x578f1fe3,0x578f1fe3 - DD 0x2aab5566,0x2aab5566 - DD 0x0728ebb2,0x0728ebb2 - DD 0x03c2b52f,0x03c2b52f - DD 0x9a7bc586,0x9a7bc586 - DD 0xa50837d3,0xa50837d3 - DD 0xf2872830,0xf2872830 - DD 0xb2a5bf23,0xb2a5bf23 - DD 0xba6a0302,0xba6a0302 - DD 0x5c8216ed,0x5c8216ed - DD 0x2b1ccf8a,0x2b1ccf8a - DD 0x92b479a7,0x92b479a7 - DD 0xf0f207f3,0xf0f207f3 - DD 0xa1e2694e,0xa1e2694e - DD 0xcdf4da65,0xcdf4da65 - DD 0xd5be0506,0xd5be0506 - DD 0x1f6234d1,0x1f6234d1 - DD 0x8afea6c4,0x8afea6c4 - DD 0x9d532e34,0x9d532e34 - DD 0xa055f3a2,0xa055f3a2 - DD 0x32e18a05,0x32e18a05 - DD 0x75ebf6a4,0x75ebf6a4 - DD 0x39ec830b,0x39ec830b - DD 0xaaef6040,0xaaef6040 - DD 0x069f715e,0x069f715e - DD 0x51106ebd,0x51106ebd - DD 0xf98a213e,0xf98a213e - DD 0x3d06dd96,0x3d06dd96 - DD 0xae053edd,0xae053edd - DD 0x46bde64d,0x46bde64d - DD 0xb58d5491,0xb58d5491 - DD 0x055dc471,0x055dc471 - DD 0x6fd40604,0x6fd40604 - DD 0xff155060,0xff155060 - DD 0x24fb9819,0x24fb9819 - DD 0x97e9bdd6,0x97e9bdd6 - DD 0xcc434089,0xcc434089 - DD 0x779ed967,0x779ed967 - DD 0xbd42e8b0,0xbd42e8b0 - DD 0x888b8907,0x888b8907 - DD 0x385b19e7,0x385b19e7 - DD 0xdbeec879,0xdbeec879 - DD 0x470a7ca1,0x470a7ca1 - DD 0xe90f427c,0xe90f427c - DD 0xc91e84f8,0xc91e84f8 - DD 0x00000000,0x00000000 - DD 0x83868009,0x83868009 - DD 0x48ed2b32,0x48ed2b32 - DD 0xac70111e,0xac70111e - DD 0x4e725a6c,0x4e725a6c - DD 0xfbff0efd,0xfbff0efd - DD 0x5638850f,0x5638850f - DD 0x1ed5ae3d,0x1ed5ae3d - DD 0x27392d36,0x27392d36 - DD 0x64d90f0a,0x64d90f0a - DD 0x21a65c68,0x21a65c68 - DD 0xd1545b9b,0xd1545b9b - DD 0x3a2e3624,0x3a2e3624 - DD 0xb1670a0c,0xb1670a0c - DD 0x0fe75793,0x0fe75793 - DD 0xd296eeb4,0xd296eeb4 - DD 0x9e919b1b,0x9e919b1b - DD 0x4fc5c080,0x4fc5c080 - DD 0xa220dc61,0xa220dc61 - DD 0x694b775a,0x694b775a - DD 0x161a121c,0x161a121c - DD 0x0aba93e2,0x0aba93e2 - DD 0xe52aa0c0,0xe52aa0c0 - DD 0x43e0223c,0x43e0223c - DD 0x1d171b12,0x1d171b12 - DD 0x0b0d090e,0x0b0d090e - DD 0xadc78bf2,0xadc78bf2 - DD 0xb9a8b62d,0xb9a8b62d - DD 0xc8a91e14,0xc8a91e14 - DD 0x8519f157,0x8519f157 - DD 0x4c0775af,0x4c0775af - DD 0xbbdd99ee,0xbbdd99ee - DD 0xfd607fa3,0xfd607fa3 - DD 0x9f2601f7,0x9f2601f7 - DD 0xbcf5725c,0xbcf5725c - DD 0xc53b6644,0xc53b6644 - DD 0x347efb5b,0x347efb5b - DD 0x7629438b,0x7629438b - DD 0xdcc623cb,0xdcc623cb - DD 0x68fcedb6,0x68fcedb6 - DD 0x63f1e4b8,0x63f1e4b8 - DD 0xcadc31d7,0xcadc31d7 - DD 0x10856342,0x10856342 - DD 0x40229713,0x40229713 - DD 0x2011c684,0x2011c684 - DD 0x7d244a85,0x7d244a85 - DD 0xf83dbbd2,0xf83dbbd2 - DD 0x1132f9ae,0x1132f9ae - DD 0x6da129c7,0x6da129c7 - DD 0x4b2f9e1d,0x4b2f9e1d - DD 0xf330b2dc,0xf330b2dc - DD 0xec52860d,0xec52860d - DD 0xd0e3c177,0xd0e3c177 - DD 0x6c16b32b,0x6c16b32b - DD 0x99b970a9,0x99b970a9 - DD 0xfa489411,0xfa489411 - DD 0x2264e947,0x2264e947 - DD 0xc48cfca8,0xc48cfca8 - DD 0x1a3ff0a0,0x1a3ff0a0 - DD 0xd82c7d56,0xd82c7d56 - DD 0xef903322,0xef903322 - DD 0xc74e4987,0xc74e4987 - DD 0xc1d138d9,0xc1d138d9 - DD 0xfea2ca8c,0xfea2ca8c - DD 0x360bd498,0x360bd498 - DD 0xcf81f5a6,0xcf81f5a6 - DD 0x28de7aa5,0x28de7aa5 - DD 0x268eb7da,0x268eb7da - DD 0xa4bfad3f,0xa4bfad3f - DD 0xe49d3a2c,0xe49d3a2c - DD 0x0d927850,0x0d927850 - DD 0x9bcc5f6a,0x9bcc5f6a - DD 0x62467e54,0x62467e54 - DD 0xc2138df6,0xc2138df6 - DD 0xe8b8d890,0xe8b8d890 - DD 0x5ef7392e,0x5ef7392e - DD 0xf5afc382,0xf5afc382 - DD 0xbe805d9f,0xbe805d9f - DD 0x7c93d069,0x7c93d069 - DD 0xa92dd56f,0xa92dd56f - DD 0xb31225cf,0xb31225cf - DD 0x3b99acc8,0x3b99acc8 - DD 0xa77d1810,0xa77d1810 - DD 0x6e639ce8,0x6e639ce8 - DD 0x7bbb3bdb,0x7bbb3bdb - DD 0x097826cd,0x097826cd - DD 0xf418596e,0xf418596e - DD 0x01b79aec,0x01b79aec - DD 0xa89a4f83,0xa89a4f83 - DD 0x656e95e6,0x656e95e6 - DD 0x7ee6ffaa,0x7ee6ffaa - DD 0x08cfbc21,0x08cfbc21 - DD 0xe6e815ef,0xe6e815ef - DD 0xd99be7ba,0xd99be7ba - DD 0xce366f4a,0xce366f4a - DD 0xd4099fea,0xd4099fea - DD 0xd67cb029,0xd67cb029 - DD 0xafb2a431,0xafb2a431 - DD 0x31233f2a,0x31233f2a - DD 0x3094a5c6,0x3094a5c6 - DD 0xc066a235,0xc066a235 - DD 0x37bc4e74,0x37bc4e74 - DD 0xa6ca82fc,0xa6ca82fc - DD 0xb0d090e0,0xb0d090e0 - DD 0x15d8a733,0x15d8a733 - DD 0x4a9804f1,0x4a9804f1 - DD 0xf7daec41,0xf7daec41 - DD 0x0e50cd7f,0x0e50cd7f - DD 0x2ff69117,0x2ff69117 - DD 0x8dd64d76,0x8dd64d76 - DD 0x4db0ef43,0x4db0ef43 - DD 0x544daacc,0x544daacc - DD 0xdf0496e4,0xdf0496e4 - DD 0xe3b5d19e,0xe3b5d19e - DD 0x1b886a4c,0x1b886a4c - DD 0xb81f2cc1,0xb81f2cc1 - DD 0x7f516546,0x7f516546 - DD 0x04ea5e9d,0x04ea5e9d - DD 0x5d358c01,0x5d358c01 - DD 0x737487fa,0x737487fa - DD 0x2e410bfb,0x2e410bfb - DD 0x5a1d67b3,0x5a1d67b3 - DD 0x52d2db92,0x52d2db92 - DD 0x335610e9,0x335610e9 - DD 0x1347d66d,0x1347d66d - DD 0x8c61d79a,0x8c61d79a - DD 0x7a0ca137,0x7a0ca137 - DD 0x8e14f859,0x8e14f859 - DD 0x893c13eb,0x893c13eb - DD 0xee27a9ce,0xee27a9ce - DD 0x35c961b7,0x35c961b7 - DD 0xede51ce1,0xede51ce1 - DD 0x3cb1477a,0x3cb1477a - DD 0x59dfd29c,0x59dfd29c - DD 0x3f73f255,0x3f73f255 - DD 0x79ce1418,0x79ce1418 - DD 0xbf37c773,0xbf37c773 - DD 0xeacdf753,0xeacdf753 - DD 0x5baafd5f,0x5baafd5f - DD 0x146f3ddf,0x146f3ddf - DD 0x86db4478,0x86db4478 - DD 0x81f3afca,0x81f3afca - DD 0x3ec468b9,0x3ec468b9 - DD 0x2c342438,0x2c342438 - DD 0x5f40a3c2,0x5f40a3c2 - DD 0x72c31d16,0x72c31d16 - DD 0x0c25e2bc,0x0c25e2bc - DD 0x8b493c28,0x8b493c28 - DD 0x41950dff,0x41950dff - DD 0x7101a839,0x7101a839 - DD 0xdeb30c08,0xdeb30c08 - DD 0x9ce4b4d8,0x9ce4b4d8 - DD 0x90c15664,0x90c15664 - DD 0x6184cb7b,0x6184cb7b - DD 0x70b632d5,0x70b632d5 - DD 0x745c6c48,0x745c6c48 - DD 0x4257b8d0,0x4257b8d0 -DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d - DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe - DD 0x1b1b1b1b,0x1b1b1b1b,0,0 -DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d - DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe - DD 0x1b1b1b1b,0x1b1b1b1b,0,0 -DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d - DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe - DD 0x1b1b1b1b,0x1b1b1b1b,0,0 -DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38 -DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb -DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87 -DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb -DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d -DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e -DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2 -DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25 -DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16 -DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92 -DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda -DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84 -DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a -DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06 -DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02 -DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b -DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea -DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73 -DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85 -DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e -DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89 -DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b -DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20 -DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4 -DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31 -DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f -DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d -DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef -DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0 -DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61 -DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26 -DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d - DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe - DD 0x1b1b1b1b,0x1b1b1b1b,0,0 -DB 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32 -DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 -DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 -DB 62,0 -ALIGN 64 -EXTERN __imp_RtlVirtualUnwind - -ALIGN 16 -block_se_handler: - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - - mov rax,QWORD[120+r8] - mov rbx,QWORD[248+r8] - - mov rsi,QWORD[8+r9] - mov r11,QWORD[56+r9] - - mov r10d,DWORD[r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jb NEAR $L$in_block_prologue - - mov rax,QWORD[152+r8] - - mov r10d,DWORD[4+r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jae NEAR $L$in_block_prologue - - mov rax,QWORD[24+rax] - - mov rbx,QWORD[((-8))+rax] - mov rbp,QWORD[((-16))+rax] - mov r12,QWORD[((-24))+rax] - mov r13,QWORD[((-32))+rax] - mov r14,QWORD[((-40))+rax] - mov r15,QWORD[((-48))+rax] - mov QWORD[144+r8],rbx - mov QWORD[160+r8],rbp - mov QWORD[216+r8],r12 - mov QWORD[224+r8],r13 - mov QWORD[232+r8],r14 - mov QWORD[240+r8],r15 - -$L$in_block_prologue: - mov rdi,QWORD[8+rax] - mov rsi,QWORD[16+rax] - mov QWORD[152+r8],rax - mov QWORD[168+r8],rsi - mov QWORD[176+r8],rdi - - jmp NEAR $L$common_seh_exit - - - -ALIGN 16 -key_se_handler: - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - - mov rax,QWORD[120+r8] - mov rbx,QWORD[248+r8] - - mov rsi,QWORD[8+r9] - mov r11,QWORD[56+r9] - - mov r10d,DWORD[r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jb NEAR $L$in_key_prologue - - mov rax,QWORD[152+r8] - - mov r10d,DWORD[4+r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jae NEAR $L$in_key_prologue - - lea rax,[56+rax] - - mov rbx,QWORD[((-8))+rax] - mov rbp,QWORD[((-16))+rax] - mov r12,QWORD[((-24))+rax] - mov r13,QWORD[((-32))+rax] - mov r14,QWORD[((-40))+rax] - mov r15,QWORD[((-48))+rax] - mov QWORD[144+r8],rbx - mov QWORD[160+r8],rbp - mov QWORD[216+r8],r12 - mov QWORD[224+r8],r13 - mov QWORD[232+r8],r14 - mov QWORD[240+r8],r15 - -$L$in_key_prologue: - mov rdi,QWORD[8+rax] - mov rsi,QWORD[16+rax] - mov QWORD[152+r8],rax - mov QWORD[168+r8],rsi - mov QWORD[176+r8],rdi - - jmp NEAR $L$common_seh_exit - - - -ALIGN 16 -cbc_se_handler: - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - - mov rax,QWORD[120+r8] - mov rbx,QWORD[248+r8] - - lea r10,[$L$cbc_prologue] - cmp rbx,r10 - jb NEAR $L$in_cbc_prologue - - lea r10,[$L$cbc_fast_body] - cmp rbx,r10 - jb NEAR $L$in_cbc_frame_setup - - lea r10,[$L$cbc_slow_prologue] - cmp rbx,r10 - jb NEAR $L$in_cbc_body - - lea r10,[$L$cbc_slow_body] - cmp rbx,r10 - jb NEAR $L$in_cbc_frame_setup - -$L$in_cbc_body: - mov rax,QWORD[152+r8] - - lea r10,[$L$cbc_epilogue] - cmp rbx,r10 - jae NEAR $L$in_cbc_prologue - - lea rax,[8+rax] - - lea r10,[$L$cbc_popfq] - cmp rbx,r10 - jae NEAR $L$in_cbc_prologue - - mov rax,QWORD[8+rax] - lea rax,[56+rax] - -$L$in_cbc_frame_setup: - mov rbx,QWORD[((-16))+rax] - mov rbp,QWORD[((-24))+rax] - mov r12,QWORD[((-32))+rax] - mov r13,QWORD[((-40))+rax] - mov r14,QWORD[((-48))+rax] - mov r15,QWORD[((-56))+rax] - mov QWORD[144+r8],rbx - mov QWORD[160+r8],rbp - mov QWORD[216+r8],r12 - mov QWORD[224+r8],r13 - mov QWORD[232+r8],r14 - mov QWORD[240+r8],r15 - -$L$in_cbc_prologue: - mov rdi,QWORD[8+rax] - mov rsi,QWORD[16+rax] - mov QWORD[152+r8],rax - mov QWORD[168+r8],rsi - mov QWORD[176+r8],rdi - -$L$common_seh_exit: - - mov rdi,QWORD[40+r9] - mov rsi,r8 - mov ecx,154 - DD 0xa548f3fc - - mov rsi,r9 - xor rcx,rcx - mov rdx,QWORD[8+rsi] - mov r8,QWORD[rsi] - mov r9,QWORD[16+rsi] - mov r10,QWORD[40+rsi] - lea r11,[56+rsi] - lea r12,[24+rsi] - mov QWORD[32+rsp],r10 - mov QWORD[40+rsp],r11 - mov QWORD[48+rsp],r12 - mov QWORD[56+rsp],rcx - call QWORD[__imp_RtlVirtualUnwind] - - mov eax,1 - add rsp,64 - popfq - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx - pop rdi - pop rsi - DB 0F3h,0C3h ;repret - - -section .pdata rdata align=4 -ALIGN 4 - DD $L$SEH_begin_aes_nohw_encrypt wrt ..imagebase - DD $L$SEH_end_aes_nohw_encrypt wrt ..imagebase - DD $L$SEH_info_aes_nohw_encrypt wrt ..imagebase - - DD $L$SEH_begin_aes_nohw_decrypt wrt ..imagebase - DD $L$SEH_end_aes_nohw_decrypt wrt ..imagebase - DD $L$SEH_info_aes_nohw_decrypt wrt ..imagebase - - DD $L$SEH_begin_aes_nohw_set_encrypt_key wrt ..imagebase - DD $L$SEH_end_aes_nohw_set_encrypt_key wrt ..imagebase - DD $L$SEH_info_aes_nohw_set_encrypt_key wrt ..imagebase - - DD $L$SEH_begin_aes_nohw_set_decrypt_key wrt ..imagebase - DD $L$SEH_end_aes_nohw_set_decrypt_key wrt ..imagebase - DD $L$SEH_info_aes_nohw_set_decrypt_key wrt ..imagebase - - DD $L$SEH_begin_aes_nohw_cbc_encrypt wrt ..imagebase - DD $L$SEH_end_aes_nohw_cbc_encrypt wrt ..imagebase - DD $L$SEH_info_aes_nohw_cbc_encrypt wrt ..imagebase - -section .xdata rdata align=8 -ALIGN 8 -$L$SEH_info_aes_nohw_encrypt: -DB 9,0,0,0 - DD block_se_handler wrt ..imagebase - DD $L$enc_prologue wrt ..imagebase,$L$enc_epilogue wrt ..imagebase -$L$SEH_info_aes_nohw_decrypt: -DB 9,0,0,0 - DD block_se_handler wrt ..imagebase - DD $L$dec_prologue wrt ..imagebase,$L$dec_epilogue wrt ..imagebase -$L$SEH_info_aes_nohw_set_encrypt_key: -DB 9,0,0,0 - DD key_se_handler wrt ..imagebase - DD $L$enc_key_prologue wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase -$L$SEH_info_aes_nohw_set_decrypt_key: -DB 9,0,0,0 - DD key_se_handler wrt ..imagebase - DD $L$dec_key_prologue wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase -$L$SEH_info_aes_nohw_cbc_encrypt: -DB 9,0,0,0 - DD cbc_se_handler wrt ..imagebase diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm index b512516a05d..2b51a26849e 100644 --- a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm +++ b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm @@ -601,11 +601,9 @@ $L$SEH_begin_aesni_gcm_encrypt: -%ifndef NDEBUG -%ifndef BORINGSSL_FIPS +%ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+2))],1 -%endif %endif xor r10,r10 diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm index 874596d7ea4..342c1523eea 100644 --- a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm +++ b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/aesni-x86_64.asm @@ -17,11 +17,9 @@ global aes_hw_encrypt ALIGN 16 aes_hw_encrypt: -%ifndef NDEBUG -%ifndef BORINGSSL_FIPS +%ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+1))],1 -%endif %endif movups xmm2,XMMWORD[rcx] mov eax,DWORD[240+r8] @@ -920,10 +918,8 @@ $L$SEH_begin_aes_hw_ctr32_encrypt_blocks: -%ifndef NDEBUG -%ifndef BORINGSSL_FIPS +%ifdef BORINGSSL_DISPATCH_TEST mov BYTE[BORINGSSL_function_hit],1 -%endif %endif cmp rdx,1 jne NEAR $L$ctr32_bulk @@ -2205,11 +2201,9 @@ ALIGN 16 aes_hw_set_encrypt_key: __aesni_set_encrypt_key: -%ifndef NDEBUG -%ifndef BORINGSSL_FIPS +%ifdef BORINGSSL_DISPATCH_TEST mov BYTE[((BORINGSSL_function_hit+3))],1 %endif -%endif DB 0x48,0x83,0xEC,0x08 mov rax,-1 diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm index fdf914f2842..194ea8df89b 100644 --- a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm +++ b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/ghash-x86_64.asm @@ -12,717 +12,6 @@ default rel section .text code align=64 EXTERN OPENSSL_ia32cap_P - -global gcm_gmult_4bit - -ALIGN 16 -gcm_gmult_4bit: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_gcm_gmult_4bit: - mov rdi,rcx - mov rsi,rdx - - - - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - - sub rsp,280 - -$L$gmult_prologue: - - movzx r8,BYTE[15+rdi] - lea r11,[$L$rem_4bit] - xor rax,rax - xor rbx,rbx - mov al,r8b - mov bl,r8b - shl al,4 - mov rcx,14 - mov r8,QWORD[8+rax*1+rsi] - mov r9,QWORD[rax*1+rsi] - and bl,0xf0 - mov rdx,r8 - jmp NEAR $L$oop1 - -ALIGN 16 -$L$oop1: - shr r8,4 - and rdx,0xf - mov r10,r9 - mov al,BYTE[rcx*1+rdi] - shr r9,4 - xor r8,QWORD[8+rbx*1+rsi] - shl r10,60 - xor r9,QWORD[rbx*1+rsi] - mov bl,al - xor r9,QWORD[rdx*8+r11] - mov rdx,r8 - shl al,4 - xor r8,r10 - dec rcx - js NEAR $L$break1 - - shr r8,4 - and rdx,0xf - mov r10,r9 - shr r9,4 - xor r8,QWORD[8+rax*1+rsi] - shl r10,60 - xor r9,QWORD[rax*1+rsi] - and bl,0xf0 - xor r9,QWORD[rdx*8+r11] - mov rdx,r8 - xor r8,r10 - jmp NEAR $L$oop1 - -ALIGN 16 -$L$break1: - shr r8,4 - and rdx,0xf - mov r10,r9 - shr r9,4 - xor r8,QWORD[8+rax*1+rsi] - shl r10,60 - xor r9,QWORD[rax*1+rsi] - and bl,0xf0 - xor r9,QWORD[rdx*8+r11] - mov rdx,r8 - xor r8,r10 - - shr r8,4 - and rdx,0xf - mov r10,r9 - shr r9,4 - xor r8,QWORD[8+rbx*1+rsi] - shl r10,60 - xor r9,QWORD[rbx*1+rsi] - xor r8,r10 - xor r9,QWORD[rdx*8+r11] - - bswap r8 - bswap r9 - mov QWORD[8+rdi],r8 - mov QWORD[rdi],r9 - - lea rsi,[((280+48))+rsp] - - mov rbx,QWORD[((-8))+rsi] - - lea rsp,[rsi] - -$L$gmult_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_gcm_gmult_4bit: -global gcm_ghash_4bit - -ALIGN 16 -gcm_ghash_4bit: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_gcm_ghash_4bit: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - - push rbx - - push rbp - - push r12 - - push r13 - - push r14 - - push r15 - - sub rsp,280 - -$L$ghash_prologue: - mov r14,rdx - mov r15,rcx - sub rsi,-128 - lea rbp,[((16+128))+rsp] - xor edx,edx - mov r8,QWORD[((0+0-128))+rsi] - mov rax,QWORD[((0+8-128))+rsi] - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov r9,QWORD[((16+0-128))+rsi] - shl dl,4 - mov rbx,QWORD[((16+8-128))+rsi] - shl r10,60 - mov BYTE[rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[rbp],r8 - mov r8,QWORD[((32+0-128))+rsi] - shl dl,4 - mov QWORD[((0-128))+rbp],rax - mov rax,QWORD[((32+8-128))+rsi] - shl r10,60 - mov BYTE[1+rsp],dl - or rbx,r10 - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov QWORD[8+rbp],r9 - mov r9,QWORD[((48+0-128))+rsi] - shl dl,4 - mov QWORD[((8-128))+rbp],rbx - mov rbx,QWORD[((48+8-128))+rsi] - shl r10,60 - mov BYTE[2+rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[16+rbp],r8 - mov r8,QWORD[((64+0-128))+rsi] - shl dl,4 - mov QWORD[((16-128))+rbp],rax - mov rax,QWORD[((64+8-128))+rsi] - shl r10,60 - mov BYTE[3+rsp],dl - or rbx,r10 - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov QWORD[24+rbp],r9 - mov r9,QWORD[((80+0-128))+rsi] - shl dl,4 - mov QWORD[((24-128))+rbp],rbx - mov rbx,QWORD[((80+8-128))+rsi] - shl r10,60 - mov BYTE[4+rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[32+rbp],r8 - mov r8,QWORD[((96+0-128))+rsi] - shl dl,4 - mov QWORD[((32-128))+rbp],rax - mov rax,QWORD[((96+8-128))+rsi] - shl r10,60 - mov BYTE[5+rsp],dl - or rbx,r10 - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov QWORD[40+rbp],r9 - mov r9,QWORD[((112+0-128))+rsi] - shl dl,4 - mov QWORD[((40-128))+rbp],rbx - mov rbx,QWORD[((112+8-128))+rsi] - shl r10,60 - mov BYTE[6+rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[48+rbp],r8 - mov r8,QWORD[((128+0-128))+rsi] - shl dl,4 - mov QWORD[((48-128))+rbp],rax - mov rax,QWORD[((128+8-128))+rsi] - shl r10,60 - mov BYTE[7+rsp],dl - or rbx,r10 - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov QWORD[56+rbp],r9 - mov r9,QWORD[((144+0-128))+rsi] - shl dl,4 - mov QWORD[((56-128))+rbp],rbx - mov rbx,QWORD[((144+8-128))+rsi] - shl r10,60 - mov BYTE[8+rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[64+rbp],r8 - mov r8,QWORD[((160+0-128))+rsi] - shl dl,4 - mov QWORD[((64-128))+rbp],rax - mov rax,QWORD[((160+8-128))+rsi] - shl r10,60 - mov BYTE[9+rsp],dl - or rbx,r10 - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov QWORD[72+rbp],r9 - mov r9,QWORD[((176+0-128))+rsi] - shl dl,4 - mov QWORD[((72-128))+rbp],rbx - mov rbx,QWORD[((176+8-128))+rsi] - shl r10,60 - mov BYTE[10+rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[80+rbp],r8 - mov r8,QWORD[((192+0-128))+rsi] - shl dl,4 - mov QWORD[((80-128))+rbp],rax - mov rax,QWORD[((192+8-128))+rsi] - shl r10,60 - mov BYTE[11+rsp],dl - or rbx,r10 - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov QWORD[88+rbp],r9 - mov r9,QWORD[((208+0-128))+rsi] - shl dl,4 - mov QWORD[((88-128))+rbp],rbx - mov rbx,QWORD[((208+8-128))+rsi] - shl r10,60 - mov BYTE[12+rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[96+rbp],r8 - mov r8,QWORD[((224+0-128))+rsi] - shl dl,4 - mov QWORD[((96-128))+rbp],rax - mov rax,QWORD[((224+8-128))+rsi] - shl r10,60 - mov BYTE[13+rsp],dl - or rbx,r10 - mov dl,al - shr rax,4 - mov r10,r8 - shr r8,4 - mov QWORD[104+rbp],r9 - mov r9,QWORD[((240+0-128))+rsi] - shl dl,4 - mov QWORD[((104-128))+rbp],rbx - mov rbx,QWORD[((240+8-128))+rsi] - shl r10,60 - mov BYTE[14+rsp],dl - or rax,r10 - mov dl,bl - shr rbx,4 - mov r10,r9 - shr r9,4 - mov QWORD[112+rbp],r8 - shl dl,4 - mov QWORD[((112-128))+rbp],rax - shl r10,60 - mov BYTE[15+rsp],dl - or rbx,r10 - mov QWORD[120+rbp],r9 - mov QWORD[((120-128))+rbp],rbx - add rsi,-128 - mov r8,QWORD[8+rdi] - mov r9,QWORD[rdi] - add r15,r14 - lea r11,[$L$rem_8bit] - jmp NEAR $L$outer_loop -ALIGN 16 -$L$outer_loop: - xor r9,QWORD[r14] - mov rdx,QWORD[8+r14] - lea r14,[16+r14] - xor rdx,r8 - mov QWORD[rdi],r9 - mov QWORD[8+rdi],rdx - shr rdx,32 - xor rax,rax - rol edx,8 - mov al,dl - movzx ebx,dl - shl al,4 - shr ebx,4 - rol edx,8 - mov r8,QWORD[8+rax*1+rsi] - mov r9,QWORD[rax*1+rsi] - mov al,dl - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - shr ecx,4 - xor r12,r8 - mov r10,r9 - shr r8,8 - movzx r12,r12b - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r12,WORD[r12*2+r11] - movzx ebx,dl - shl al,4 - movzx r13,BYTE[rcx*1+rsp] - shr ebx,4 - shl r12,48 - xor r13,r8 - mov r10,r9 - xor r9,r12 - shr r8,8 - movzx r13,r13b - shr r9,8 - xor r8,QWORD[((-128))+rcx*8+rbp] - shl r10,56 - xor r9,QWORD[rcx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r13,WORD[r13*2+r11] - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - shr ecx,4 - shl r13,48 - xor r12,r8 - mov r10,r9 - xor r9,r13 - shr r8,8 - movzx r12,r12b - mov edx,DWORD[8+rdi] - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r12,WORD[r12*2+r11] - movzx ebx,dl - shl al,4 - movzx r13,BYTE[rcx*1+rsp] - shr ebx,4 - shl r12,48 - xor r13,r8 - mov r10,r9 - xor r9,r12 - shr r8,8 - movzx r13,r13b - shr r9,8 - xor r8,QWORD[((-128))+rcx*8+rbp] - shl r10,56 - xor r9,QWORD[rcx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r13,WORD[r13*2+r11] - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - shr ecx,4 - shl r13,48 - xor r12,r8 - mov r10,r9 - xor r9,r13 - shr r8,8 - movzx r12,r12b - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r12,WORD[r12*2+r11] - movzx ebx,dl - shl al,4 - movzx r13,BYTE[rcx*1+rsp] - shr ebx,4 - shl r12,48 - xor r13,r8 - mov r10,r9 - xor r9,r12 - shr r8,8 - movzx r13,r13b - shr r9,8 - xor r8,QWORD[((-128))+rcx*8+rbp] - shl r10,56 - xor r9,QWORD[rcx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r13,WORD[r13*2+r11] - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - shr ecx,4 - shl r13,48 - xor r12,r8 - mov r10,r9 - xor r9,r13 - shr r8,8 - movzx r12,r12b - mov edx,DWORD[4+rdi] - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r12,WORD[r12*2+r11] - movzx ebx,dl - shl al,4 - movzx r13,BYTE[rcx*1+rsp] - shr ebx,4 - shl r12,48 - xor r13,r8 - mov r10,r9 - xor r9,r12 - shr r8,8 - movzx r13,r13b - shr r9,8 - xor r8,QWORD[((-128))+rcx*8+rbp] - shl r10,56 - xor r9,QWORD[rcx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r13,WORD[r13*2+r11] - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - shr ecx,4 - shl r13,48 - xor r12,r8 - mov r10,r9 - xor r9,r13 - shr r8,8 - movzx r12,r12b - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r12,WORD[r12*2+r11] - movzx ebx,dl - shl al,4 - movzx r13,BYTE[rcx*1+rsp] - shr ebx,4 - shl r12,48 - xor r13,r8 - mov r10,r9 - xor r9,r12 - shr r8,8 - movzx r13,r13b - shr r9,8 - xor r8,QWORD[((-128))+rcx*8+rbp] - shl r10,56 - xor r9,QWORD[rcx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r13,WORD[r13*2+r11] - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - shr ecx,4 - shl r13,48 - xor r12,r8 - mov r10,r9 - xor r9,r13 - shr r8,8 - movzx r12,r12b - mov edx,DWORD[rdi] - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r12,WORD[r12*2+r11] - movzx ebx,dl - shl al,4 - movzx r13,BYTE[rcx*1+rsp] - shr ebx,4 - shl r12,48 - xor r13,r8 - mov r10,r9 - xor r9,r12 - shr r8,8 - movzx r13,r13b - shr r9,8 - xor r8,QWORD[((-128))+rcx*8+rbp] - shl r10,56 - xor r9,QWORD[rcx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r13,WORD[r13*2+r11] - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - shr ecx,4 - shl r13,48 - xor r12,r8 - mov r10,r9 - xor r9,r13 - shr r8,8 - movzx r12,r12b - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r12,WORD[r12*2+r11] - movzx ebx,dl - shl al,4 - movzx r13,BYTE[rcx*1+rsp] - shr ebx,4 - shl r12,48 - xor r13,r8 - mov r10,r9 - xor r9,r12 - shr r8,8 - movzx r13,r13b - shr r9,8 - xor r8,QWORD[((-128))+rcx*8+rbp] - shl r10,56 - xor r9,QWORD[rcx*8+rbp] - rol edx,8 - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - mov al,dl - xor r8,r10 - movzx r13,WORD[r13*2+r11] - movzx ecx,dl - shl al,4 - movzx r12,BYTE[rbx*1+rsp] - and ecx,240 - shl r13,48 - xor r12,r8 - mov r10,r9 - xor r9,r13 - shr r8,8 - movzx r12,r12b - mov edx,DWORD[((-4))+rdi] - shr r9,8 - xor r8,QWORD[((-128))+rbx*8+rbp] - shl r10,56 - xor r9,QWORD[rbx*8+rbp] - movzx r12,WORD[r12*2+r11] - xor r8,QWORD[8+rax*1+rsi] - xor r9,QWORD[rax*1+rsi] - shl r12,48 - xor r8,r10 - xor r9,r12 - movzx r13,r8b - shr r8,4 - mov r10,r9 - shl r13b,4 - shr r9,4 - xor r8,QWORD[8+rcx*1+rsi] - movzx r13,WORD[r13*2+r11] - shl r10,60 - xor r9,QWORD[rcx*1+rsi] - xor r8,r10 - shl r13,48 - bswap r8 - xor r9,r13 - bswap r9 - cmp r14,r15 - jb NEAR $L$outer_loop - mov QWORD[8+rdi],r8 - mov QWORD[rdi],r9 - - lea rsi,[((280+48))+rsp] - - mov r15,QWORD[((-48))+rsi] - - mov r14,QWORD[((-40))+rsi] - - mov r13,QWORD[((-32))+rsi] - - mov r12,QWORD[((-24))+rsi] - - mov rbp,QWORD[((-16))+rsi] - - mov rbx,QWORD[((-8))+rsi] - - lea rsp,[rsi] - -$L$ghash_epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_gcm_ghash_4bit: global gcm_init_clmul ALIGN 16 @@ -1888,153 +1177,15 @@ $L$0x1c2_polynomial: DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 $L$7_mask: DD 7,0,7,0 -$L$7_mask_poly: - DD 7,0,450,0 ALIGN 64 -$L$rem_4bit: - DD 0,0,0,471859200,0,943718400,0,610271232 - DD 0,1887436800,0,1822425088,0,1220542464,0,1423966208 - DD 0,3774873600,0,4246732800,0,3644850176,0,3311403008 - DD 0,2441084928,0,2376073216,0,2847932416,0,3051356160 - -$L$rem_8bit: - DW 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E - DW 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E - DW 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E - DW 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E - DW 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E - DW 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E - DW 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E - DW 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E - DW 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE - DW 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE - DW 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE - DW 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE - DW 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E - DW 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E - DW 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE - DW 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE - DW 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E - DW 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E - DW 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E - DW 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E - DW 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E - DW 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E - DW 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E - DW 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E - DW 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE - DW 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE - DW 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE - DW 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE - DW 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E - DW 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E - DW 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE - DW 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE - DB 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52 DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 DB 114,103,62,0 ALIGN 64 -EXTERN __imp_RtlVirtualUnwind - -ALIGN 16 -se_handler: - push rsi - push rdi - push rbx - push rbp - push r12 - push r13 - push r14 - push r15 - pushfq - sub rsp,64 - - mov rax,QWORD[120+r8] - mov rbx,QWORD[248+r8] - - mov rsi,QWORD[8+r9] - mov r11,QWORD[56+r9] - - mov r10d,DWORD[r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jb NEAR $L$in_prologue - - mov rax,QWORD[152+r8] - - mov r10d,DWORD[4+r11] - lea r10,[r10*1+rsi] - cmp rbx,r10 - jae NEAR $L$in_prologue - - lea rax,[((48+280))+rax] - - mov rbx,QWORD[((-8))+rax] - mov rbp,QWORD[((-16))+rax] - mov r12,QWORD[((-24))+rax] - mov r13,QWORD[((-32))+rax] - mov r14,QWORD[((-40))+rax] - mov r15,QWORD[((-48))+rax] - mov QWORD[144+r8],rbx - mov QWORD[160+r8],rbp - mov QWORD[216+r8],r12 - mov QWORD[224+r8],r13 - mov QWORD[232+r8],r14 - mov QWORD[240+r8],r15 - -$L$in_prologue: - mov rdi,QWORD[8+rax] - mov rsi,QWORD[16+rax] - mov QWORD[152+r8],rax - mov QWORD[168+r8],rsi - mov QWORD[176+r8],rdi - - mov rdi,QWORD[40+r9] - mov rsi,r8 - mov ecx,154 - DD 0xa548f3fc - - mov rsi,r9 - xor rcx,rcx - mov rdx,QWORD[8+rsi] - mov r8,QWORD[rsi] - mov r9,QWORD[16+rsi] - mov r10,QWORD[40+rsi] - lea r11,[56+rsi] - lea r12,[24+rsi] - mov QWORD[32+rsp],r10 - mov QWORD[40+rsp],r11 - mov QWORD[48+rsp],r12 - mov QWORD[56+rsp],rcx - call QWORD[__imp_RtlVirtualUnwind] - - mov eax,1 - add rsp,64 - popfq - pop r15 - pop r14 - pop r13 - pop r12 - pop rbp - pop rbx - pop rdi - pop rsi - DB 0F3h,0C3h ;repret - - section .pdata rdata align=4 ALIGN 4 - DD $L$SEH_begin_gcm_gmult_4bit wrt ..imagebase - DD $L$SEH_end_gcm_gmult_4bit wrt ..imagebase - DD $L$SEH_info_gcm_gmult_4bit wrt ..imagebase - - DD $L$SEH_begin_gcm_ghash_4bit wrt ..imagebase - DD $L$SEH_end_gcm_ghash_4bit wrt ..imagebase - DD $L$SEH_info_gcm_ghash_4bit wrt ..imagebase - DD $L$SEH_begin_gcm_init_clmul wrt ..imagebase DD $L$SEH_end_gcm_init_clmul wrt ..imagebase DD $L$SEH_info_gcm_init_clmul wrt ..imagebase @@ -2051,14 +1202,6 @@ ALIGN 4 DD $L$SEH_info_gcm_ghash_clmul wrt ..imagebase section .xdata rdata align=8 ALIGN 8 -$L$SEH_info_gcm_gmult_4bit: -DB 9,0,0,0 - DD se_handler wrt ..imagebase - DD $L$gmult_prologue wrt ..imagebase,$L$gmult_epilogue wrt ..imagebase -$L$SEH_info_gcm_ghash_4bit: -DB 9,0,0,0 - DD se_handler wrt ..imagebase - DD $L$ghash_prologue wrt ..imagebase,$L$ghash_epilogue wrt ..imagebase $L$SEH_info_gcm_init_clmul: DB 0x01,0x08,0x03,0x00 DB 0x08,0x68,0x00,0x00 diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm index 62dcc62c255..1654df1d369 100644 --- a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm +++ b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/sha1-x86_64.asm @@ -33,6 +33,11 @@ $L$SEH_begin_sha1_block_data_order: mov r10d,DWORD[8+r10] test r8d,512 jz NEAR $L$ialu + test r10d,536870912 + jnz NEAR _shaext_shortcut + and r10d,296 + cmp r10d,296 + je NEAR _avx2_shortcut and r8d,268435456 and r9d,1073741824 or r8d,r9d @@ -1275,6 +1280,198 @@ $L$epilogue: $L$SEH_end_sha1_block_data_order: +ALIGN 32 +sha1_block_data_order_shaext: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_sha1_block_data_order_shaext: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + +_shaext_shortcut: + + lea rsp,[((-72))+rsp] + movaps XMMWORD[(-8-64)+rax],xmm6 + movaps XMMWORD[(-8-48)+rax],xmm7 + movaps XMMWORD[(-8-32)+rax],xmm8 + movaps XMMWORD[(-8-16)+rax],xmm9 +$L$prologue_shaext: + movdqu xmm0,XMMWORD[rdi] + movd xmm1,DWORD[16+rdi] + movdqa xmm3,XMMWORD[((K_XX_XX+160))] + + movdqu xmm4,XMMWORD[rsi] + pshufd xmm0,xmm0,27 + movdqu xmm5,XMMWORD[16+rsi] + pshufd xmm1,xmm1,27 + movdqu xmm6,XMMWORD[32+rsi] +DB 102,15,56,0,227 + movdqu xmm7,XMMWORD[48+rsi] +DB 102,15,56,0,235 +DB 102,15,56,0,243 + movdqa xmm9,xmm1 +DB 102,15,56,0,251 + jmp NEAR $L$oop_shaext + +ALIGN 16 +$L$oop_shaext: + dec rdx + lea r8,[64+rsi] + paddd xmm1,xmm4 + cmovne rsi,r8 + movdqa xmm8,xmm0 +DB 15,56,201,229 + movdqa xmm2,xmm0 +DB 15,58,204,193,0 +DB 15,56,200,213 + pxor xmm4,xmm6 +DB 15,56,201,238 +DB 15,56,202,231 + + movdqa xmm1,xmm0 +DB 15,58,204,194,0 +DB 15,56,200,206 + pxor xmm5,xmm7 +DB 15,56,202,236 +DB 15,56,201,247 + movdqa xmm2,xmm0 +DB 15,58,204,193,0 +DB 15,56,200,215 + pxor xmm6,xmm4 +DB 15,56,201,252 +DB 15,56,202,245 + + movdqa xmm1,xmm0 +DB 15,58,204,194,0 +DB 15,56,200,204 + pxor xmm7,xmm5 +DB 15,56,202,254 +DB 15,56,201,229 + movdqa xmm2,xmm0 +DB 15,58,204,193,0 +DB 15,56,200,213 + pxor xmm4,xmm6 +DB 15,56,201,238 +DB 15,56,202,231 + + movdqa xmm1,xmm0 +DB 15,58,204,194,1 +DB 15,56,200,206 + pxor xmm5,xmm7 +DB 15,56,202,236 +DB 15,56,201,247 + movdqa xmm2,xmm0 +DB 15,58,204,193,1 +DB 15,56,200,215 + pxor xmm6,xmm4 +DB 15,56,201,252 +DB 15,56,202,245 + + movdqa xmm1,xmm0 +DB 15,58,204,194,1 +DB 15,56,200,204 + pxor xmm7,xmm5 +DB 15,56,202,254 +DB 15,56,201,229 + movdqa xmm2,xmm0 +DB 15,58,204,193,1 +DB 15,56,200,213 + pxor xmm4,xmm6 +DB 15,56,201,238 +DB 15,56,202,231 + + movdqa xmm1,xmm0 +DB 15,58,204,194,1 +DB 15,56,200,206 + pxor xmm5,xmm7 +DB 15,56,202,236 +DB 15,56,201,247 + movdqa xmm2,xmm0 +DB 15,58,204,193,2 +DB 15,56,200,215 + pxor xmm6,xmm4 +DB 15,56,201,252 +DB 15,56,202,245 + + movdqa xmm1,xmm0 +DB 15,58,204,194,2 +DB 15,56,200,204 + pxor xmm7,xmm5 +DB 15,56,202,254 +DB 15,56,201,229 + movdqa xmm2,xmm0 +DB 15,58,204,193,2 +DB 15,56,200,213 + pxor xmm4,xmm6 +DB 15,56,201,238 +DB 15,56,202,231 + + movdqa xmm1,xmm0 +DB 15,58,204,194,2 +DB 15,56,200,206 + pxor xmm5,xmm7 +DB 15,56,202,236 +DB 15,56,201,247 + movdqa xmm2,xmm0 +DB 15,58,204,193,2 +DB 15,56,200,215 + pxor xmm6,xmm4 +DB 15,56,201,252 +DB 15,56,202,245 + + movdqa xmm1,xmm0 +DB 15,58,204,194,3 +DB 15,56,200,204 + pxor xmm7,xmm5 +DB 15,56,202,254 + movdqu xmm4,XMMWORD[rsi] + movdqa xmm2,xmm0 +DB 15,58,204,193,3 +DB 15,56,200,213 + movdqu xmm5,XMMWORD[16+rsi] +DB 102,15,56,0,227 + + movdqa xmm1,xmm0 +DB 15,58,204,194,3 +DB 15,56,200,206 + movdqu xmm6,XMMWORD[32+rsi] +DB 102,15,56,0,235 + + movdqa xmm2,xmm0 +DB 15,58,204,193,3 +DB 15,56,200,215 + movdqu xmm7,XMMWORD[48+rsi] +DB 102,15,56,0,243 + + movdqa xmm1,xmm0 +DB 15,58,204,194,3 +DB 65,15,56,200,201 +DB 102,15,56,0,251 + + paddd xmm0,xmm8 + movdqa xmm9,xmm1 + + jnz NEAR $L$oop_shaext + + pshufd xmm0,xmm0,27 + pshufd xmm1,xmm1,27 + movdqu XMMWORD[rdi],xmm0 + movd DWORD[16+rdi],xmm1 + movaps xmm6,XMMWORD[((-8-64))+rax] + movaps xmm7,XMMWORD[((-8-48))+rax] + movaps xmm8,XMMWORD[((-8-32))+rax] + movaps xmm9,XMMWORD[((-8-16))+rax] + mov rsp,rax +$L$epilogue_shaext: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_sha1_block_data_order_shaext: + ALIGN 16 sha1_block_data_order_ssse3: mov QWORD[8+rsp],rdi ;WIN64 prologue @@ -3638,6 +3835,1724 @@ $L$epilogue_avx: DB 0F3h,0C3h ;repret $L$SEH_end_sha1_block_data_order_avx: + +ALIGN 16 +sha1_block_data_order_avx2: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_sha1_block_data_order_avx2: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + +_avx2_shortcut: + + mov r11,rsp + + push rbx + + push rbp + + push r12 + + push r13 + + push r14 + + vzeroupper + lea rsp,[((-96))+rsp] + vmovaps XMMWORD[(-40-96)+r11],xmm6 + vmovaps XMMWORD[(-40-80)+r11],xmm7 + vmovaps XMMWORD[(-40-64)+r11],xmm8 + vmovaps XMMWORD[(-40-48)+r11],xmm9 + vmovaps XMMWORD[(-40-32)+r11],xmm10 + vmovaps XMMWORD[(-40-16)+r11],xmm11 +$L$prologue_avx2: + mov r8,rdi + mov r9,rsi + mov r10,rdx + + lea rsp,[((-640))+rsp] + shl r10,6 + lea r13,[64+r9] + and rsp,-128 + add r10,r9 + lea r14,[((K_XX_XX+64))] + + mov eax,DWORD[r8] + cmp r13,r10 + cmovae r13,r9 + mov ebp,DWORD[4+r8] + mov ecx,DWORD[8+r8] + mov edx,DWORD[12+r8] + mov esi,DWORD[16+r8] + vmovdqu ymm6,YMMWORD[64+r14] + + vmovdqu xmm0,XMMWORD[r9] + vmovdqu xmm1,XMMWORD[16+r9] + vmovdqu xmm2,XMMWORD[32+r9] + vmovdqu xmm3,XMMWORD[48+r9] + lea r9,[64+r9] + vinserti128 ymm0,ymm0,XMMWORD[r13],1 + vinserti128 ymm1,ymm1,XMMWORD[16+r13],1 + vpshufb ymm0,ymm0,ymm6 + vinserti128 ymm2,ymm2,XMMWORD[32+r13],1 + vpshufb ymm1,ymm1,ymm6 + vinserti128 ymm3,ymm3,XMMWORD[48+r13],1 + vpshufb ymm2,ymm2,ymm6 + vmovdqu ymm11,YMMWORD[((-64))+r14] + vpshufb ymm3,ymm3,ymm6 + + vpaddd ymm4,ymm0,ymm11 + vpaddd ymm5,ymm1,ymm11 + vmovdqu YMMWORD[rsp],ymm4 + vpaddd ymm6,ymm2,ymm11 + vmovdqu YMMWORD[32+rsp],ymm5 + vpaddd ymm7,ymm3,ymm11 + vmovdqu YMMWORD[64+rsp],ymm6 + vmovdqu YMMWORD[96+rsp],ymm7 + vpalignr ymm4,ymm1,ymm0,8 + vpsrldq ymm8,ymm3,4 + vpxor ymm4,ymm4,ymm0 + vpxor ymm8,ymm8,ymm2 + vpxor ymm4,ymm4,ymm8 + vpsrld ymm8,ymm4,31 + vpslldq ymm10,ymm4,12 + vpaddd ymm4,ymm4,ymm4 + vpsrld ymm9,ymm10,30 + vpor ymm4,ymm4,ymm8 + vpslld ymm10,ymm10,2 + vpxor ymm4,ymm4,ymm9 + vpxor ymm4,ymm4,ymm10 + vpaddd ymm9,ymm4,ymm11 + vmovdqu YMMWORD[128+rsp],ymm9 + vpalignr ymm5,ymm2,ymm1,8 + vpsrldq ymm8,ymm4,4 + vpxor ymm5,ymm5,ymm1 + vpxor ymm8,ymm8,ymm3 + vpxor ymm5,ymm5,ymm8 + vpsrld ymm8,ymm5,31 + vmovdqu ymm11,YMMWORD[((-32))+r14] + vpslldq ymm10,ymm5,12 + vpaddd ymm5,ymm5,ymm5 + vpsrld ymm9,ymm10,30 + vpor ymm5,ymm5,ymm8 + vpslld ymm10,ymm10,2 + vpxor ymm5,ymm5,ymm9 + vpxor ymm5,ymm5,ymm10 + vpaddd ymm9,ymm5,ymm11 + vmovdqu YMMWORD[160+rsp],ymm9 + vpalignr ymm6,ymm3,ymm2,8 + vpsrldq ymm8,ymm5,4 + vpxor ymm6,ymm6,ymm2 + vpxor ymm8,ymm8,ymm4 + vpxor ymm6,ymm6,ymm8 + vpsrld ymm8,ymm6,31 + vpslldq ymm10,ymm6,12 + vpaddd ymm6,ymm6,ymm6 + vpsrld ymm9,ymm10,30 + vpor ymm6,ymm6,ymm8 + vpslld ymm10,ymm10,2 + vpxor ymm6,ymm6,ymm9 + vpxor ymm6,ymm6,ymm10 + vpaddd ymm9,ymm6,ymm11 + vmovdqu YMMWORD[192+rsp],ymm9 + vpalignr ymm7,ymm4,ymm3,8 + vpsrldq ymm8,ymm6,4 + vpxor ymm7,ymm7,ymm3 + vpxor ymm8,ymm8,ymm5 + vpxor ymm7,ymm7,ymm8 + vpsrld ymm8,ymm7,31 + vpslldq ymm10,ymm7,12 + vpaddd ymm7,ymm7,ymm7 + vpsrld ymm9,ymm10,30 + vpor ymm7,ymm7,ymm8 + vpslld ymm10,ymm10,2 + vpxor ymm7,ymm7,ymm9 + vpxor ymm7,ymm7,ymm10 + vpaddd ymm9,ymm7,ymm11 + vmovdqu YMMWORD[224+rsp],ymm9 + lea r13,[128+rsp] + jmp NEAR $L$oop_avx2 +ALIGN 32 +$L$oop_avx2: + rorx ebx,ebp,2 + andn edi,ebp,edx + and ebp,ecx + xor ebp,edi + jmp NEAR $L$align32_1 +ALIGN 32 +$L$align32_1: + vpalignr ymm8,ymm7,ymm6,8 + vpxor ymm0,ymm0,ymm4 + add esi,DWORD[((-128))+r13] + andn edi,eax,ecx + vpxor ymm0,ymm0,ymm1 + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + vpxor ymm0,ymm0,ymm8 + and eax,ebx + add esi,r12d + xor eax,edi + vpsrld ymm8,ymm0,30 + vpslld ymm0,ymm0,2 + add edx,DWORD[((-124))+r13] + andn edi,esi,ebx + add edx,eax + rorx r12d,esi,27 + rorx eax,esi,2 + and esi,ebp + vpor ymm0,ymm0,ymm8 + add edx,r12d + xor esi,edi + add ecx,DWORD[((-120))+r13] + andn edi,edx,ebp + vpaddd ymm9,ymm0,ymm11 + add ecx,esi + rorx r12d,edx,27 + rorx esi,edx,2 + and edx,eax + vmovdqu YMMWORD[256+rsp],ymm9 + add ecx,r12d + xor edx,edi + add ebx,DWORD[((-116))+r13] + andn edi,ecx,eax + add ebx,edx + rorx r12d,ecx,27 + rorx edx,ecx,2 + and ecx,esi + add ebx,r12d + xor ecx,edi + add ebp,DWORD[((-96))+r13] + andn edi,ebx,esi + add ebp,ecx + rorx r12d,ebx,27 + rorx ecx,ebx,2 + and ebx,edx + add ebp,r12d + xor ebx,edi + vpalignr ymm8,ymm0,ymm7,8 + vpxor ymm1,ymm1,ymm5 + add eax,DWORD[((-92))+r13] + andn edi,ebp,edx + vpxor ymm1,ymm1,ymm2 + add eax,ebx + rorx r12d,ebp,27 + rorx ebx,ebp,2 + vpxor ymm1,ymm1,ymm8 + and ebp,ecx + add eax,r12d + xor ebp,edi + vpsrld ymm8,ymm1,30 + vpslld ymm1,ymm1,2 + add esi,DWORD[((-88))+r13] + andn edi,eax,ecx + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + and eax,ebx + vpor ymm1,ymm1,ymm8 + add esi,r12d + xor eax,edi + add edx,DWORD[((-84))+r13] + andn edi,esi,ebx + vpaddd ymm9,ymm1,ymm11 + add edx,eax + rorx r12d,esi,27 + rorx eax,esi,2 + and esi,ebp + vmovdqu YMMWORD[288+rsp],ymm9 + add edx,r12d + xor esi,edi + add ecx,DWORD[((-64))+r13] + andn edi,edx,ebp + add ecx,esi + rorx r12d,edx,27 + rorx esi,edx,2 + and edx,eax + add ecx,r12d + xor edx,edi + add ebx,DWORD[((-60))+r13] + andn edi,ecx,eax + add ebx,edx + rorx r12d,ecx,27 + rorx edx,ecx,2 + and ecx,esi + add ebx,r12d + xor ecx,edi + vpalignr ymm8,ymm1,ymm0,8 + vpxor ymm2,ymm2,ymm6 + add ebp,DWORD[((-56))+r13] + andn edi,ebx,esi + vpxor ymm2,ymm2,ymm3 + vmovdqu ymm11,YMMWORD[r14] + add ebp,ecx + rorx r12d,ebx,27 + rorx ecx,ebx,2 + vpxor ymm2,ymm2,ymm8 + and ebx,edx + add ebp,r12d + xor ebx,edi + vpsrld ymm8,ymm2,30 + vpslld ymm2,ymm2,2 + add eax,DWORD[((-52))+r13] + andn edi,ebp,edx + add eax,ebx + rorx r12d,ebp,27 + rorx ebx,ebp,2 + and ebp,ecx + vpor ymm2,ymm2,ymm8 + add eax,r12d + xor ebp,edi + add esi,DWORD[((-32))+r13] + andn edi,eax,ecx + vpaddd ymm9,ymm2,ymm11 + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + and eax,ebx + vmovdqu YMMWORD[320+rsp],ymm9 + add esi,r12d + xor eax,edi + add edx,DWORD[((-28))+r13] + andn edi,esi,ebx + add edx,eax + rorx r12d,esi,27 + rorx eax,esi,2 + and esi,ebp + add edx,r12d + xor esi,edi + add ecx,DWORD[((-24))+r13] + andn edi,edx,ebp + add ecx,esi + rorx r12d,edx,27 + rorx esi,edx,2 + and edx,eax + add ecx,r12d + xor edx,edi + vpalignr ymm8,ymm2,ymm1,8 + vpxor ymm3,ymm3,ymm7 + add ebx,DWORD[((-20))+r13] + andn edi,ecx,eax + vpxor ymm3,ymm3,ymm4 + add ebx,edx + rorx r12d,ecx,27 + rorx edx,ecx,2 + vpxor ymm3,ymm3,ymm8 + and ecx,esi + add ebx,r12d + xor ecx,edi + vpsrld ymm8,ymm3,30 + vpslld ymm3,ymm3,2 + add ebp,DWORD[r13] + andn edi,ebx,esi + add ebp,ecx + rorx r12d,ebx,27 + rorx ecx,ebx,2 + and ebx,edx + vpor ymm3,ymm3,ymm8 + add ebp,r12d + xor ebx,edi + add eax,DWORD[4+r13] + andn edi,ebp,edx + vpaddd ymm9,ymm3,ymm11 + add eax,ebx + rorx r12d,ebp,27 + rorx ebx,ebp,2 + and ebp,ecx + vmovdqu YMMWORD[352+rsp],ymm9 + add eax,r12d + xor ebp,edi + add esi,DWORD[8+r13] + andn edi,eax,ecx + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + and eax,ebx + add esi,r12d + xor eax,edi + add edx,DWORD[12+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + vpalignr ymm8,ymm3,ymm2,8 + vpxor ymm4,ymm4,ymm0 + add ecx,DWORD[32+r13] + lea ecx,[rsi*1+rcx] + vpxor ymm4,ymm4,ymm5 + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + vpxor ymm4,ymm4,ymm8 + add ecx,r12d + xor edx,ebp + add ebx,DWORD[36+r13] + vpsrld ymm8,ymm4,30 + vpslld ymm4,ymm4,2 + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + vpor ymm4,ymm4,ymm8 + add ebp,DWORD[40+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + vpaddd ymm9,ymm4,ymm11 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[44+r13] + vmovdqu YMMWORD[384+rsp],ymm9 + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[64+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + vpalignr ymm8,ymm4,ymm3,8 + vpxor ymm5,ymm5,ymm1 + add edx,DWORD[68+r13] + lea edx,[rax*1+rdx] + vpxor ymm5,ymm5,ymm6 + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + vpxor ymm5,ymm5,ymm8 + add edx,r12d + xor esi,ebx + add ecx,DWORD[72+r13] + vpsrld ymm8,ymm5,30 + vpslld ymm5,ymm5,2 + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + vpor ymm5,ymm5,ymm8 + add ebx,DWORD[76+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + vpaddd ymm9,ymm5,ymm11 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[96+r13] + vmovdqu YMMWORD[416+rsp],ymm9 + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[100+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + vpalignr ymm8,ymm5,ymm4,8 + vpxor ymm6,ymm6,ymm2 + add esi,DWORD[104+r13] + lea esi,[rbp*1+rsi] + vpxor ymm6,ymm6,ymm7 + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + vpxor ymm6,ymm6,ymm8 + add esi,r12d + xor eax,ecx + add edx,DWORD[108+r13] + lea r13,[256+r13] + vpsrld ymm8,ymm6,30 + vpslld ymm6,ymm6,2 + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + vpor ymm6,ymm6,ymm8 + add ecx,DWORD[((-128))+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + vpaddd ymm9,ymm6,ymm11 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[((-124))+r13] + vmovdqu YMMWORD[448+rsp],ymm9 + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[((-120))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + vpalignr ymm8,ymm6,ymm5,8 + vpxor ymm7,ymm7,ymm3 + add eax,DWORD[((-116))+r13] + lea eax,[rbx*1+rax] + vpxor ymm7,ymm7,ymm0 + vmovdqu ymm11,YMMWORD[32+r14] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + vpxor ymm7,ymm7,ymm8 + add eax,r12d + xor ebp,edx + add esi,DWORD[((-96))+r13] + vpsrld ymm8,ymm7,30 + vpslld ymm7,ymm7,2 + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + vpor ymm7,ymm7,ymm8 + add edx,DWORD[((-92))+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + vpaddd ymm9,ymm7,ymm11 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[((-88))+r13] + vmovdqu YMMWORD[480+rsp],ymm9 + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[((-84))+r13] + mov edi,esi + xor edi,eax + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + and ecx,edi + jmp NEAR $L$align32_2 +ALIGN 32 +$L$align32_2: + vpalignr ymm8,ymm7,ymm6,8 + vpxor ymm0,ymm0,ymm4 + add ebp,DWORD[((-64))+r13] + xor ecx,esi + vpxor ymm0,ymm0,ymm1 + mov edi,edx + xor edi,esi + lea ebp,[rbp*1+rcx] + vpxor ymm0,ymm0,ymm8 + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + vpsrld ymm8,ymm0,30 + vpslld ymm0,ymm0,2 + add ebp,r12d + and ebx,edi + add eax,DWORD[((-60))+r13] + xor ebx,edx + mov edi,ecx + xor edi,edx + vpor ymm0,ymm0,ymm8 + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + vpaddd ymm9,ymm0,ymm11 + add eax,r12d + and ebp,edi + add esi,DWORD[((-56))+r13] + xor ebp,ecx + vmovdqu YMMWORD[512+rsp],ymm9 + mov edi,ebx + xor edi,ecx + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + and eax,edi + add edx,DWORD[((-52))+r13] + xor eax,ebx + mov edi,ebp + xor edi,ebx + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + and esi,edi + add ecx,DWORD[((-32))+r13] + xor esi,ebp + mov edi,eax + xor edi,ebp + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + and edx,edi + vpalignr ymm8,ymm0,ymm7,8 + vpxor ymm1,ymm1,ymm5 + add ebx,DWORD[((-28))+r13] + xor edx,eax + vpxor ymm1,ymm1,ymm2 + mov edi,esi + xor edi,eax + lea ebx,[rdx*1+rbx] + vpxor ymm1,ymm1,ymm8 + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + vpsrld ymm8,ymm1,30 + vpslld ymm1,ymm1,2 + add ebx,r12d + and ecx,edi + add ebp,DWORD[((-24))+r13] + xor ecx,esi + mov edi,edx + xor edi,esi + vpor ymm1,ymm1,ymm8 + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + vpaddd ymm9,ymm1,ymm11 + add ebp,r12d + and ebx,edi + add eax,DWORD[((-20))+r13] + xor ebx,edx + vmovdqu YMMWORD[544+rsp],ymm9 + mov edi,ecx + xor edi,edx + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + and ebp,edi + add esi,DWORD[r13] + xor ebp,ecx + mov edi,ebx + xor edi,ecx + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + and eax,edi + add edx,DWORD[4+r13] + xor eax,ebx + mov edi,ebp + xor edi,ebx + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + and esi,edi + vpalignr ymm8,ymm1,ymm0,8 + vpxor ymm2,ymm2,ymm6 + add ecx,DWORD[8+r13] + xor esi,ebp + vpxor ymm2,ymm2,ymm3 + mov edi,eax + xor edi,ebp + lea ecx,[rsi*1+rcx] + vpxor ymm2,ymm2,ymm8 + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + vpsrld ymm8,ymm2,30 + vpslld ymm2,ymm2,2 + add ecx,r12d + and edx,edi + add ebx,DWORD[12+r13] + xor edx,eax + mov edi,esi + xor edi,eax + vpor ymm2,ymm2,ymm8 + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + vpaddd ymm9,ymm2,ymm11 + add ebx,r12d + and ecx,edi + add ebp,DWORD[32+r13] + xor ecx,esi + vmovdqu YMMWORD[576+rsp],ymm9 + mov edi,edx + xor edi,esi + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + and ebx,edi + add eax,DWORD[36+r13] + xor ebx,edx + mov edi,ecx + xor edi,edx + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + and ebp,edi + add esi,DWORD[40+r13] + xor ebp,ecx + mov edi,ebx + xor edi,ecx + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + and eax,edi + vpalignr ymm8,ymm2,ymm1,8 + vpxor ymm3,ymm3,ymm7 + add edx,DWORD[44+r13] + xor eax,ebx + vpxor ymm3,ymm3,ymm4 + mov edi,ebp + xor edi,ebx + lea edx,[rax*1+rdx] + vpxor ymm3,ymm3,ymm8 + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + vpsrld ymm8,ymm3,30 + vpslld ymm3,ymm3,2 + add edx,r12d + and esi,edi + add ecx,DWORD[64+r13] + xor esi,ebp + mov edi,eax + xor edi,ebp + vpor ymm3,ymm3,ymm8 + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + vpaddd ymm9,ymm3,ymm11 + add ecx,r12d + and edx,edi + add ebx,DWORD[68+r13] + xor edx,eax + vmovdqu YMMWORD[608+rsp],ymm9 + mov edi,esi + xor edi,eax + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + and ecx,edi + add ebp,DWORD[72+r13] + xor ecx,esi + mov edi,edx + xor edi,esi + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + and ebx,edi + add eax,DWORD[76+r13] + xor ebx,edx + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[96+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + add edx,DWORD[100+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[104+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[108+r13] + lea r13,[256+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[((-128))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[((-124))+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[((-120))+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + add edx,DWORD[((-116))+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[((-96))+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[((-92))+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[((-88))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[((-84))+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[((-64))+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + add edx,DWORD[((-60))+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[((-56))+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[((-52))+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[((-32))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[((-28))+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[((-24))+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + add edx,DWORD[((-20))+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + add edx,r12d + lea r13,[128+r9] + lea rdi,[128+r9] + cmp r13,r10 + cmovae r13,r9 + + + add edx,DWORD[r8] + add esi,DWORD[4+r8] + add ebp,DWORD[8+r8] + mov DWORD[r8],edx + add ebx,DWORD[12+r8] + mov DWORD[4+r8],esi + mov eax,edx + add ecx,DWORD[16+r8] + mov r12d,ebp + mov DWORD[8+r8],ebp + mov edx,ebx + + mov DWORD[12+r8],ebx + mov ebp,esi + mov DWORD[16+r8],ecx + + mov esi,ecx + mov ecx,r12d + + + cmp r9,r10 + je NEAR $L$done_avx2 + vmovdqu ymm6,YMMWORD[64+r14] + cmp rdi,r10 + ja NEAR $L$ast_avx2 + + vmovdqu xmm0,XMMWORD[((-64))+rdi] + vmovdqu xmm1,XMMWORD[((-48))+rdi] + vmovdqu xmm2,XMMWORD[((-32))+rdi] + vmovdqu xmm3,XMMWORD[((-16))+rdi] + vinserti128 ymm0,ymm0,XMMWORD[r13],1 + vinserti128 ymm1,ymm1,XMMWORD[16+r13],1 + vinserti128 ymm2,ymm2,XMMWORD[32+r13],1 + vinserti128 ymm3,ymm3,XMMWORD[48+r13],1 + jmp NEAR $L$ast_avx2 + +ALIGN 32 +$L$ast_avx2: + lea r13,[((128+16))+rsp] + rorx ebx,ebp,2 + andn edi,ebp,edx + and ebp,ecx + xor ebp,edi + sub r9,-128 + add esi,DWORD[((-128))+r13] + andn edi,eax,ecx + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + and eax,ebx + add esi,r12d + xor eax,edi + add edx,DWORD[((-124))+r13] + andn edi,esi,ebx + add edx,eax + rorx r12d,esi,27 + rorx eax,esi,2 + and esi,ebp + add edx,r12d + xor esi,edi + add ecx,DWORD[((-120))+r13] + andn edi,edx,ebp + add ecx,esi + rorx r12d,edx,27 + rorx esi,edx,2 + and edx,eax + add ecx,r12d + xor edx,edi + add ebx,DWORD[((-116))+r13] + andn edi,ecx,eax + add ebx,edx + rorx r12d,ecx,27 + rorx edx,ecx,2 + and ecx,esi + add ebx,r12d + xor ecx,edi + add ebp,DWORD[((-96))+r13] + andn edi,ebx,esi + add ebp,ecx + rorx r12d,ebx,27 + rorx ecx,ebx,2 + and ebx,edx + add ebp,r12d + xor ebx,edi + add eax,DWORD[((-92))+r13] + andn edi,ebp,edx + add eax,ebx + rorx r12d,ebp,27 + rorx ebx,ebp,2 + and ebp,ecx + add eax,r12d + xor ebp,edi + add esi,DWORD[((-88))+r13] + andn edi,eax,ecx + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + and eax,ebx + add esi,r12d + xor eax,edi + add edx,DWORD[((-84))+r13] + andn edi,esi,ebx + add edx,eax + rorx r12d,esi,27 + rorx eax,esi,2 + and esi,ebp + add edx,r12d + xor esi,edi + add ecx,DWORD[((-64))+r13] + andn edi,edx,ebp + add ecx,esi + rorx r12d,edx,27 + rorx esi,edx,2 + and edx,eax + add ecx,r12d + xor edx,edi + add ebx,DWORD[((-60))+r13] + andn edi,ecx,eax + add ebx,edx + rorx r12d,ecx,27 + rorx edx,ecx,2 + and ecx,esi + add ebx,r12d + xor ecx,edi + add ebp,DWORD[((-56))+r13] + andn edi,ebx,esi + add ebp,ecx + rorx r12d,ebx,27 + rorx ecx,ebx,2 + and ebx,edx + add ebp,r12d + xor ebx,edi + add eax,DWORD[((-52))+r13] + andn edi,ebp,edx + add eax,ebx + rorx r12d,ebp,27 + rorx ebx,ebp,2 + and ebp,ecx + add eax,r12d + xor ebp,edi + add esi,DWORD[((-32))+r13] + andn edi,eax,ecx + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + and eax,ebx + add esi,r12d + xor eax,edi + add edx,DWORD[((-28))+r13] + andn edi,esi,ebx + add edx,eax + rorx r12d,esi,27 + rorx eax,esi,2 + and esi,ebp + add edx,r12d + xor esi,edi + add ecx,DWORD[((-24))+r13] + andn edi,edx,ebp + add ecx,esi + rorx r12d,edx,27 + rorx esi,edx,2 + and edx,eax + add ecx,r12d + xor edx,edi + add ebx,DWORD[((-20))+r13] + andn edi,ecx,eax + add ebx,edx + rorx r12d,ecx,27 + rorx edx,ecx,2 + and ecx,esi + add ebx,r12d + xor ecx,edi + add ebp,DWORD[r13] + andn edi,ebx,esi + add ebp,ecx + rorx r12d,ebx,27 + rorx ecx,ebx,2 + and ebx,edx + add ebp,r12d + xor ebx,edi + add eax,DWORD[4+r13] + andn edi,ebp,edx + add eax,ebx + rorx r12d,ebp,27 + rorx ebx,ebp,2 + and ebp,ecx + add eax,r12d + xor ebp,edi + add esi,DWORD[8+r13] + andn edi,eax,ecx + add esi,ebp + rorx r12d,eax,27 + rorx ebp,eax,2 + and eax,ebx + add esi,r12d + xor eax,edi + add edx,DWORD[12+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[32+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[36+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[40+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[44+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[64+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + vmovdqu ymm11,YMMWORD[((-64))+r14] + vpshufb ymm0,ymm0,ymm6 + add edx,DWORD[68+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[72+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[76+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[96+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[100+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + vpshufb ymm1,ymm1,ymm6 + vpaddd ymm8,ymm0,ymm11 + add esi,DWORD[104+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + add edx,DWORD[108+r13] + lea r13,[256+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[((-128))+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[((-124))+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[((-120))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + vmovdqu YMMWORD[rsp],ymm8 + vpshufb ymm2,ymm2,ymm6 + vpaddd ymm9,ymm1,ymm11 + add eax,DWORD[((-116))+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[((-96))+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + add edx,DWORD[((-92))+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + xor esi,ebx + add ecx,DWORD[((-88))+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[((-84))+r13] + mov edi,esi + xor edi,eax + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + and ecx,edi + vmovdqu YMMWORD[32+rsp],ymm9 + vpshufb ymm3,ymm3,ymm6 + vpaddd ymm6,ymm2,ymm11 + add ebp,DWORD[((-64))+r13] + xor ecx,esi + mov edi,edx + xor edi,esi + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + and ebx,edi + add eax,DWORD[((-60))+r13] + xor ebx,edx + mov edi,ecx + xor edi,edx + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + and ebp,edi + add esi,DWORD[((-56))+r13] + xor ebp,ecx + mov edi,ebx + xor edi,ecx + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + and eax,edi + add edx,DWORD[((-52))+r13] + xor eax,ebx + mov edi,ebp + xor edi,ebx + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + and esi,edi + add ecx,DWORD[((-32))+r13] + xor esi,ebp + mov edi,eax + xor edi,ebp + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + and edx,edi + jmp NEAR $L$align32_3 +ALIGN 32 +$L$align32_3: + vmovdqu YMMWORD[64+rsp],ymm6 + vpaddd ymm7,ymm3,ymm11 + add ebx,DWORD[((-28))+r13] + xor edx,eax + mov edi,esi + xor edi,eax + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + and ecx,edi + add ebp,DWORD[((-24))+r13] + xor ecx,esi + mov edi,edx + xor edi,esi + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + and ebx,edi + add eax,DWORD[((-20))+r13] + xor ebx,edx + mov edi,ecx + xor edi,edx + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + and ebp,edi + add esi,DWORD[r13] + xor ebp,ecx + mov edi,ebx + xor edi,ecx + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + and eax,edi + add edx,DWORD[4+r13] + xor eax,ebx + mov edi,ebp + xor edi,ebx + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + and esi,edi + vmovdqu YMMWORD[96+rsp],ymm7 + add ecx,DWORD[8+r13] + xor esi,ebp + mov edi,eax + xor edi,ebp + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + and edx,edi + add ebx,DWORD[12+r13] + xor edx,eax + mov edi,esi + xor edi,eax + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + and ecx,edi + add ebp,DWORD[32+r13] + xor ecx,esi + mov edi,edx + xor edi,esi + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + and ebx,edi + add eax,DWORD[36+r13] + xor ebx,edx + mov edi,ecx + xor edi,edx + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + and ebp,edi + add esi,DWORD[40+r13] + xor ebp,ecx + mov edi,ebx + xor edi,ecx + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + and eax,edi + vpalignr ymm4,ymm1,ymm0,8 + add edx,DWORD[44+r13] + xor eax,ebx + mov edi,ebp + xor edi,ebx + vpsrldq ymm8,ymm3,4 + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + vpxor ymm4,ymm4,ymm0 + vpxor ymm8,ymm8,ymm2 + xor esi,ebp + add edx,r12d + vpxor ymm4,ymm4,ymm8 + and esi,edi + add ecx,DWORD[64+r13] + xor esi,ebp + mov edi,eax + vpsrld ymm8,ymm4,31 + xor edi,ebp + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + vpslldq ymm10,ymm4,12 + vpaddd ymm4,ymm4,ymm4 + rorx esi,edx,2 + xor edx,eax + vpsrld ymm9,ymm10,30 + vpor ymm4,ymm4,ymm8 + add ecx,r12d + and edx,edi + vpslld ymm10,ymm10,2 + vpxor ymm4,ymm4,ymm9 + add ebx,DWORD[68+r13] + xor edx,eax + vpxor ymm4,ymm4,ymm10 + mov edi,esi + xor edi,eax + lea ebx,[rdx*1+rbx] + vpaddd ymm9,ymm4,ymm11 + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + vmovdqu YMMWORD[128+rsp],ymm9 + add ebx,r12d + and ecx,edi + add ebp,DWORD[72+r13] + xor ecx,esi + mov edi,edx + xor edi,esi + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + and ebx,edi + add eax,DWORD[76+r13] + xor ebx,edx + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + vpalignr ymm5,ymm2,ymm1,8 + add esi,DWORD[96+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + vpsrldq ymm8,ymm4,4 + xor eax,ebx + add esi,r12d + xor eax,ecx + vpxor ymm5,ymm5,ymm1 + vpxor ymm8,ymm8,ymm3 + add edx,DWORD[100+r13] + lea edx,[rax*1+rdx] + vpxor ymm5,ymm5,ymm8 + rorx r12d,esi,27 + rorx eax,esi,2 + xor esi,ebp + add edx,r12d + vpsrld ymm8,ymm5,31 + vmovdqu ymm11,YMMWORD[((-32))+r14] + xor esi,ebx + add ecx,DWORD[104+r13] + lea ecx,[rsi*1+rcx] + vpslldq ymm10,ymm5,12 + vpaddd ymm5,ymm5,ymm5 + rorx r12d,edx,27 + rorx esi,edx,2 + vpsrld ymm9,ymm10,30 + vpor ymm5,ymm5,ymm8 + xor edx,eax + add ecx,r12d + vpslld ymm10,ymm10,2 + vpxor ymm5,ymm5,ymm9 + xor edx,ebp + add ebx,DWORD[108+r13] + lea r13,[256+r13] + vpxor ymm5,ymm5,ymm10 + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + vpaddd ymm9,ymm5,ymm11 + xor ecx,esi + add ebx,r12d + xor ecx,eax + vmovdqu YMMWORD[160+rsp],ymm9 + add ebp,DWORD[((-128))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + vpalignr ymm6,ymm3,ymm2,8 + add eax,DWORD[((-124))+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + vpsrldq ymm8,ymm5,4 + xor ebp,ecx + add eax,r12d + xor ebp,edx + vpxor ymm6,ymm6,ymm2 + vpxor ymm8,ymm8,ymm4 + add esi,DWORD[((-120))+r13] + lea esi,[rbp*1+rsi] + vpxor ymm6,ymm6,ymm8 + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + vpsrld ymm8,ymm6,31 + xor eax,ecx + add edx,DWORD[((-116))+r13] + lea edx,[rax*1+rdx] + vpslldq ymm10,ymm6,12 + vpaddd ymm6,ymm6,ymm6 + rorx r12d,esi,27 + rorx eax,esi,2 + vpsrld ymm9,ymm10,30 + vpor ymm6,ymm6,ymm8 + xor esi,ebp + add edx,r12d + vpslld ymm10,ymm10,2 + vpxor ymm6,ymm6,ymm9 + xor esi,ebx + add ecx,DWORD[((-96))+r13] + vpxor ymm6,ymm6,ymm10 + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + vpaddd ymm9,ymm6,ymm11 + xor edx,eax + add ecx,r12d + xor edx,ebp + vmovdqu YMMWORD[192+rsp],ymm9 + add ebx,DWORD[((-92))+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + vpalignr ymm7,ymm4,ymm3,8 + add ebp,DWORD[((-88))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + vpsrldq ymm8,ymm6,4 + xor ebx,edx + add ebp,r12d + xor ebx,esi + vpxor ymm7,ymm7,ymm3 + vpxor ymm8,ymm8,ymm5 + add eax,DWORD[((-84))+r13] + lea eax,[rbx*1+rax] + vpxor ymm7,ymm7,ymm8 + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + vpsrld ymm8,ymm7,31 + xor ebp,edx + add esi,DWORD[((-64))+r13] + lea esi,[rbp*1+rsi] + vpslldq ymm10,ymm7,12 + vpaddd ymm7,ymm7,ymm7 + rorx r12d,eax,27 + rorx ebp,eax,2 + vpsrld ymm9,ymm10,30 + vpor ymm7,ymm7,ymm8 + xor eax,ebx + add esi,r12d + vpslld ymm10,ymm10,2 + vpxor ymm7,ymm7,ymm9 + xor eax,ecx + add edx,DWORD[((-60))+r13] + vpxor ymm7,ymm7,ymm10 + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + rorx eax,esi,2 + vpaddd ymm9,ymm7,ymm11 + xor esi,ebp + add edx,r12d + xor esi,ebx + vmovdqu YMMWORD[224+rsp],ymm9 + add ecx,DWORD[((-56))+r13] + lea ecx,[rsi*1+rcx] + rorx r12d,edx,27 + rorx esi,edx,2 + xor edx,eax + add ecx,r12d + xor edx,ebp + add ebx,DWORD[((-52))+r13] + lea ebx,[rdx*1+rbx] + rorx r12d,ecx,27 + rorx edx,ecx,2 + xor ecx,esi + add ebx,r12d + xor ecx,eax + add ebp,DWORD[((-32))+r13] + lea ebp,[rbp*1+rcx] + rorx r12d,ebx,27 + rorx ecx,ebx,2 + xor ebx,edx + add ebp,r12d + xor ebx,esi + add eax,DWORD[((-28))+r13] + lea eax,[rbx*1+rax] + rorx r12d,ebp,27 + rorx ebx,ebp,2 + xor ebp,ecx + add eax,r12d + xor ebp,edx + add esi,DWORD[((-24))+r13] + lea esi,[rbp*1+rsi] + rorx r12d,eax,27 + rorx ebp,eax,2 + xor eax,ebx + add esi,r12d + xor eax,ecx + add edx,DWORD[((-20))+r13] + lea edx,[rax*1+rdx] + rorx r12d,esi,27 + add edx,r12d + lea r13,[128+rsp] + + + add edx,DWORD[r8] + add esi,DWORD[4+r8] + add ebp,DWORD[8+r8] + mov DWORD[r8],edx + add ebx,DWORD[12+r8] + mov DWORD[4+r8],esi + mov eax,edx + add ecx,DWORD[16+r8] + mov r12d,ebp + mov DWORD[8+r8],ebp + mov edx,ebx + + mov DWORD[12+r8],ebx + mov ebp,esi + mov DWORD[16+r8],ecx + + mov esi,ecx + mov ecx,r12d + + + cmp r9,r10 + jbe NEAR $L$oop_avx2 + +$L$done_avx2: + vzeroupper + movaps xmm6,XMMWORD[((-40-96))+r11] + movaps xmm7,XMMWORD[((-40-80))+r11] + movaps xmm8,XMMWORD[((-40-64))+r11] + movaps xmm9,XMMWORD[((-40-48))+r11] + movaps xmm10,XMMWORD[((-40-32))+r11] + movaps xmm11,XMMWORD[((-40-16))+r11] + mov r14,QWORD[((-40))+r11] + + mov r13,QWORD[((-32))+r11] + + mov r12,QWORD[((-24))+r11] + + mov rbp,QWORD[((-16))+r11] + + mov rbx,QWORD[((-8))+r11] + + lea rsp,[r11] + +$L$epilogue_avx2: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + DB 0F3h,0C3h ;repret + +$L$SEH_end_sha1_block_data_order_avx2: ALIGN 64 K_XX_XX: DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 @@ -3701,6 +5616,38 @@ se_handler: jmp NEAR $L$common_seh_tail +ALIGN 16 +shaext_handler: + push rsi + push rdi + push rbx + push rbp + push r12 + push r13 + push r14 + push r15 + pushfq + sub rsp,64 + + mov rax,QWORD[120+r8] + mov rbx,QWORD[248+r8] + + lea r10,[$L$prologue_shaext] + cmp rbx,r10 + jb NEAR $L$common_seh_tail + + lea r10,[$L$epilogue_shaext] + cmp rbx,r10 + jae NEAR $L$common_seh_tail + + lea rsi,[((-8-64))+rax] + lea rdi,[512+r8] + mov ecx,8 + DD 0xa548f3fc + + jmp NEAR $L$common_seh_tail + + ALIGN 16 ssse3_handler: push rsi @@ -3793,17 +5740,26 @@ ALIGN 4 DD $L$SEH_begin_sha1_block_data_order wrt ..imagebase DD $L$SEH_end_sha1_block_data_order wrt ..imagebase DD $L$SEH_info_sha1_block_data_order wrt ..imagebase + DD $L$SEH_begin_sha1_block_data_order_shaext wrt ..imagebase + DD $L$SEH_end_sha1_block_data_order_shaext wrt ..imagebase + DD $L$SEH_info_sha1_block_data_order_shaext wrt ..imagebase DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase DD $L$SEH_begin_sha1_block_data_order_avx wrt ..imagebase DD $L$SEH_end_sha1_block_data_order_avx wrt ..imagebase DD $L$SEH_info_sha1_block_data_order_avx wrt ..imagebase + DD $L$SEH_begin_sha1_block_data_order_avx2 wrt ..imagebase + DD $L$SEH_end_sha1_block_data_order_avx2 wrt ..imagebase + DD $L$SEH_info_sha1_block_data_order_avx2 wrt ..imagebase section .xdata rdata align=8 ALIGN 8 $L$SEH_info_sha1_block_data_order: DB 9,0,0,0 DD se_handler wrt ..imagebase +$L$SEH_info_sha1_block_data_order_shaext: +DB 9,0,0,0 + DD shaext_handler wrt ..imagebase $L$SEH_info_sha1_block_data_order_ssse3: DB 9,0,0,0 DD ssse3_handler wrt ..imagebase @@ -3812,3 +5768,7 @@ $L$SEH_info_sha1_block_data_order_avx: DB 9,0,0,0 DD ssse3_handler wrt ..imagebase DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase +$L$SEH_info_sha1_block_data_order_avx2: +DB 9,0,0,0 + DD ssse3_handler wrt ..imagebase + DD $L$prologue_avx2 wrt ..imagebase,$L$epilogue_avx2 wrt ..imagebase diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm index 10092c8a183..ccfc870a66a 100644 --- a/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm +++ b/contrib/boringssl-cmake/win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm @@ -819,11 +819,9 @@ $L$SEH_begin_vpaes_set_encrypt_key: -%ifndef NDEBUG -%ifndef BORINGSSL_FIPS +%ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+5))],1 -%endif %endif lea rsp,[((-184))+rsp] @@ -937,11 +935,9 @@ $L$SEH_begin_vpaes_encrypt: -%ifndef NDEBUG -%ifndef BORINGSSL_FIPS +%ifdef BORINGSSL_DISPATCH_TEST EXTERN BORINGSSL_function_hit mov BYTE[((BORINGSSL_function_hit+4))],1 -%endif %endif lea rsp,[((-184))+rsp] movaps XMMWORD[16+rsp],xmm6 diff --git a/contrib/boringssl-cmake/win-x86_64/crypto/third_party/sike/asm/fp-x86_64.asm b/contrib/boringssl-cmake/win-x86_64/crypto/third_party/sike/asm/fp-x86_64.asm deleted file mode 100644 index fbfef1be13e..00000000000 --- a/contrib/boringssl-cmake/win-x86_64/crypto/third_party/sike/asm/fp-x86_64.asm +++ /dev/null @@ -1,1951 +0,0 @@ -; This file is generated from a similarly-named Perl script in the BoringSSL -; source tree. Do not edit by hand. - -default rel -%define XMMWORD -%define YMMWORD -%define ZMMWORD - -%ifdef BORINGSSL_PREFIX -%include "boringssl_prefix_symbols_nasm.inc" -%endif -section .text code align=64 - - - -$L$p434x2: - DQ 0xFFFFFFFFFFFFFFFE - DQ 0xFFFFFFFFFFFFFFFF - DQ 0xFB82ECF5C5FFFFFF - DQ 0xF78CB8F062B15D47 - DQ 0xD9F8BFAD038A40AC - DQ 0x0004683E4E2EE688 - - -$L$p434p1: - DQ 0xFDC1767AE3000000 - DQ 0x7BC65C783158AEA3 - DQ 0x6CFC5FD681C52056 - DQ 0x0002341F27177344 - -EXTERN OPENSSL_ia32cap_P - -global sike_fpadd - -sike_fpadd: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_fpadd: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push r12 - - - push r13 - - - push r14 - - - - xor rax,rax - - mov r8,QWORD[rdi] - add r8,QWORD[rsi] - mov r9,QWORD[8+rdi] - adc r9,QWORD[8+rsi] - mov r10,QWORD[16+rdi] - adc r10,QWORD[16+rsi] - mov r11,QWORD[24+rdi] - adc r11,QWORD[24+rsi] - mov r12,QWORD[32+rdi] - adc r12,QWORD[32+rsi] - mov r13,QWORD[40+rdi] - adc r13,QWORD[40+rsi] - mov r14,QWORD[48+rdi] - adc r14,QWORD[48+rsi] - - mov rcx,QWORD[$L$p434x2] - sub r8,rcx - mov rcx,QWORD[((8+$L$p434x2))] - sbb r9,rcx - sbb r10,rcx - mov rcx,QWORD[((16+$L$p434x2))] - sbb r11,rcx - mov rcx,QWORD[((24+$L$p434x2))] - sbb r12,rcx - mov rcx,QWORD[((32+$L$p434x2))] - sbb r13,rcx - mov rcx,QWORD[((40+$L$p434x2))] - sbb r14,rcx - - sbb rax,0 - - mov rdi,QWORD[$L$p434x2] - and rdi,rax - mov rsi,QWORD[((8+$L$p434x2))] - and rsi,rax - mov rcx,QWORD[((16+$L$p434x2))] - and rcx,rax - - add r8,rdi - mov QWORD[rdx],r8 - adc r9,rsi - mov QWORD[8+rdx],r9 - adc r10,rsi - mov QWORD[16+rdx],r10 - adc r11,rcx - mov QWORD[24+rdx],r11 - - setc cl - mov r8,QWORD[((24+$L$p434x2))] - and r8,rax - mov r9,QWORD[((32+$L$p434x2))] - and r9,rax - mov r10,QWORD[((40+$L$p434x2))] - and r10,rax - bt rcx,0 - - adc r12,r8 - mov QWORD[32+rdx],r12 - adc r13,r9 - mov QWORD[40+rdx],r13 - adc r14,r10 - mov QWORD[48+rdx],r14 - - pop r14 - - pop r13 - - pop r12 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -global sike_cswap_asm - -sike_cswap_asm: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_cswap_asm: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - - movq xmm3,rdx - - - - - - pshufd xmm3,xmm3,68 - - movdqu xmm0,XMMWORD[rdi] - movdqu xmm1,XMMWORD[rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[rdi],xmm0 - movdqu XMMWORD[rsi],xmm1 - - movdqu xmm0,XMMWORD[16+rdi] - movdqu xmm1,XMMWORD[16+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[16+rdi],xmm0 - movdqu XMMWORD[16+rsi],xmm1 - - movdqu xmm0,XMMWORD[32+rdi] - movdqu xmm1,XMMWORD[32+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[32+rdi],xmm0 - movdqu XMMWORD[32+rsi],xmm1 - - movdqu xmm0,XMMWORD[48+rdi] - movdqu xmm1,XMMWORD[48+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[48+rdi],xmm0 - movdqu XMMWORD[48+rsi],xmm1 - - movdqu xmm0,XMMWORD[64+rdi] - movdqu xmm1,XMMWORD[64+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[64+rdi],xmm0 - movdqu XMMWORD[64+rsi],xmm1 - - movdqu xmm0,XMMWORD[80+rdi] - movdqu xmm1,XMMWORD[80+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[80+rdi],xmm0 - movdqu XMMWORD[80+rsi],xmm1 - - movdqu xmm0,XMMWORD[96+rdi] - movdqu xmm1,XMMWORD[96+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[96+rdi],xmm0 - movdqu XMMWORD[96+rsi],xmm1 - - movdqu xmm0,XMMWORD[112+rdi] - movdqu xmm1,XMMWORD[112+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[112+rdi],xmm0 - movdqu XMMWORD[112+rsi],xmm1 - - movdqu xmm0,XMMWORD[128+rdi] - movdqu xmm1,XMMWORD[128+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[128+rdi],xmm0 - movdqu XMMWORD[128+rsi],xmm1 - - movdqu xmm0,XMMWORD[144+rdi] - movdqu xmm1,XMMWORD[144+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[144+rdi],xmm0 - movdqu XMMWORD[144+rsi],xmm1 - - movdqu xmm0,XMMWORD[160+rdi] - movdqu xmm1,XMMWORD[160+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[160+rdi],xmm0 - movdqu XMMWORD[160+rsi],xmm1 - - movdqu xmm0,XMMWORD[176+rdi] - movdqu xmm1,XMMWORD[176+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[176+rdi],xmm0 - movdqu XMMWORD[176+rsi],xmm1 - - movdqu xmm0,XMMWORD[192+rdi] - movdqu xmm1,XMMWORD[192+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[192+rdi],xmm0 - movdqu XMMWORD[192+rsi],xmm1 - - movdqu xmm0,XMMWORD[208+rdi] - movdqu xmm1,XMMWORD[208+rsi] - movdqa xmm2,xmm1 - pxor xmm2,xmm0 - pand xmm2,xmm3 - pxor xmm0,xmm2 - pxor xmm1,xmm2 - movdqu XMMWORD[208+rdi],xmm0 - movdqu XMMWORD[208+rsi],xmm1 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret -global sike_fpsub - -sike_fpsub: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_fpsub: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push r12 - - - push r13 - - - push r14 - - - - xor rax,rax - - mov r8,QWORD[rdi] - sub r8,QWORD[rsi] - mov r9,QWORD[8+rdi] - sbb r9,QWORD[8+rsi] - mov r10,QWORD[16+rdi] - sbb r10,QWORD[16+rsi] - mov r11,QWORD[24+rdi] - sbb r11,QWORD[24+rsi] - mov r12,QWORD[32+rdi] - sbb r12,QWORD[32+rsi] - mov r13,QWORD[40+rdi] - sbb r13,QWORD[40+rsi] - mov r14,QWORD[48+rdi] - sbb r14,QWORD[48+rsi] - - sbb rax,0x0 - - mov rdi,QWORD[$L$p434x2] - and rdi,rax - mov rsi,QWORD[((8+$L$p434x2))] - and rsi,rax - mov rcx,QWORD[((16+$L$p434x2))] - and rcx,rax - - add r8,rdi - mov QWORD[rdx],r8 - adc r9,rsi - mov QWORD[8+rdx],r9 - adc r10,rsi - mov QWORD[16+rdx],r10 - adc r11,rcx - mov QWORD[24+rdx],r11 - - setc cl - mov r8,QWORD[((24+$L$p434x2))] - and r8,rax - mov r9,QWORD[((32+$L$p434x2))] - and r9,rax - mov r10,QWORD[((40+$L$p434x2))] - and r10,rax - bt rcx,0x0 - - adc r12,r8 - adc r13,r9 - adc r14,r10 - mov QWORD[32+rdx],r12 - mov QWORD[40+rdx],r13 - mov QWORD[48+rdx],r14 - - pop r14 - - pop r13 - - pop r12 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -global sike_mpadd_asm - -sike_mpadd_asm: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_mpadd_asm: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - mov r8,QWORD[rdi]; - mov r9,QWORD[8+rdi] - mov r10,QWORD[16+rdi] - mov r11,QWORD[24+rdi] - mov rcx,QWORD[32+rdi] - add r8,QWORD[rsi] - adc r9,QWORD[8+rsi] - adc r10,QWORD[16+rsi] - adc r11,QWORD[24+rsi] - adc rcx,QWORD[32+rsi] - mov QWORD[rdx],r8 - mov QWORD[8+rdx],r9 - mov QWORD[16+rdx],r10 - mov QWORD[24+rdx],r11 - mov QWORD[32+rdx],rcx - - mov r8,QWORD[40+rdi] - mov r9,QWORD[48+rdi] - adc r8,QWORD[40+rsi] - adc r9,QWORD[48+rsi] - mov QWORD[40+rdx],r8 - mov QWORD[48+rdx],r9 - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -global sike_mpsubx2_asm - -sike_mpsubx2_asm: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_mpsubx2_asm: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - xor rax,rax - - mov r8,QWORD[rdi] - mov r9,QWORD[8+rdi] - mov r10,QWORD[16+rdi] - mov r11,QWORD[24+rdi] - mov rcx,QWORD[32+rdi] - sub r8,QWORD[rsi] - sbb r9,QWORD[8+rsi] - sbb r10,QWORD[16+rsi] - sbb r11,QWORD[24+rsi] - sbb rcx,QWORD[32+rsi] - mov QWORD[rdx],r8 - mov QWORD[8+rdx],r9 - mov QWORD[16+rdx],r10 - mov QWORD[24+rdx],r11 - mov QWORD[32+rdx],rcx - - mov r8,QWORD[40+rdi] - mov r9,QWORD[48+rdi] - mov r10,QWORD[56+rdi] - mov r11,QWORD[64+rdi] - mov rcx,QWORD[72+rdi] - sbb r8,QWORD[40+rsi] - sbb r9,QWORD[48+rsi] - sbb r10,QWORD[56+rsi] - sbb r11,QWORD[64+rsi] - sbb rcx,QWORD[72+rsi] - mov QWORD[40+rdx],r8 - mov QWORD[48+rdx],r9 - mov QWORD[56+rdx],r10 - mov QWORD[64+rdx],r11 - mov QWORD[72+rdx],rcx - - mov r8,QWORD[80+rdi] - mov r9,QWORD[88+rdi] - mov r10,QWORD[96+rdi] - mov r11,QWORD[104+rdi] - sbb r8,QWORD[80+rsi] - sbb r9,QWORD[88+rsi] - sbb r10,QWORD[96+rsi] - sbb r11,QWORD[104+rsi] - sbb rax,0x0 - mov QWORD[80+rdx],r8 - mov QWORD[88+rdx],r9 - mov QWORD[96+rdx],r10 - mov QWORD[104+rdx],r11 - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -global sike_mpdblsubx2_asm - -sike_mpdblsubx2_asm: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_mpdblsubx2_asm: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push r12 - - - push r13 - - - - xor rax,rax - - - mov r8,QWORD[rdx] - mov r9,QWORD[8+rdx] - mov r10,QWORD[16+rdx] - mov r11,QWORD[24+rdx] - mov r12,QWORD[32+rdx] - mov r13,QWORD[40+rdx] - mov rcx,QWORD[48+rdx] - sub r8,QWORD[rdi] - sbb r9,QWORD[8+rdi] - sbb r10,QWORD[16+rdi] - sbb r11,QWORD[24+rdi] - sbb r12,QWORD[32+rdi] - sbb r13,QWORD[40+rdi] - sbb rcx,QWORD[48+rdi] - adc rax,0x0 - - - sub r8,QWORD[rsi] - sbb r9,QWORD[8+rsi] - sbb r10,QWORD[16+rsi] - sbb r11,QWORD[24+rsi] - sbb r12,QWORD[32+rsi] - sbb r13,QWORD[40+rsi] - sbb rcx,QWORD[48+rsi] - adc rax,0x0 - - - mov QWORD[rdx],r8 - mov QWORD[8+rdx],r9 - mov QWORD[16+rdx],r10 - mov QWORD[24+rdx],r11 - mov QWORD[32+rdx],r12 - mov QWORD[40+rdx],r13 - mov QWORD[48+rdx],rcx - - - mov r8,QWORD[56+rdx] - mov r9,QWORD[64+rdx] - mov r10,QWORD[72+rdx] - mov r11,QWORD[80+rdx] - mov r12,QWORD[88+rdx] - mov r13,QWORD[96+rdx] - mov rcx,QWORD[104+rdx] - - sub r8,rax - sbb r8,QWORD[56+rdi] - sbb r9,QWORD[64+rdi] - sbb r10,QWORD[72+rdi] - sbb r11,QWORD[80+rdi] - sbb r12,QWORD[88+rdi] - sbb r13,QWORD[96+rdi] - sbb rcx,QWORD[104+rdi] - - - sub r8,QWORD[56+rsi] - sbb r9,QWORD[64+rsi] - sbb r10,QWORD[72+rsi] - sbb r11,QWORD[80+rsi] - sbb r12,QWORD[88+rsi] - sbb r13,QWORD[96+rsi] - sbb rcx,QWORD[104+rsi] - - - mov QWORD[56+rdx],r8 - mov QWORD[64+rdx],r9 - mov QWORD[72+rdx],r10 - mov QWORD[80+rdx],r11 - mov QWORD[88+rdx],r12 - mov QWORD[96+rdx],r13 - mov QWORD[104+rdx],rcx - - pop r13 - - pop r12 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - - -$L$rdc_bdw: - - - - - - - - - xor rax,rax - mov rdx,QWORD[((0+0))+rdi] - mulx r9,r8,QWORD[((0+$L$p434p1))] - mulx r10,r12,QWORD[((8+$L$p434p1))] - mulx r11,r13,QWORD[((16+$L$p434p1))] - - adox r9,r12 - adox r10,r13 - - mulx r12,r13,QWORD[((24+$L$p434p1))] - adox r11,r13 - adox r12,rax - - xor rax,rax - mov rdx,QWORD[((0+8))+rdi] - mulx rcx,r13,QWORD[((0+$L$p434p1))] - adcx r9,r13 - adcx r10,rcx - - mulx r13,rcx,QWORD[((8+$L$p434p1))] - adcx r11,r13 - adox r10,rcx - - mulx r13,rcx,QWORD[((16+$L$p434p1))] - adcx r12,r13 - adox r11,rcx - - mulx r13,rcx,QWORD[((24+$L$p434p1))] - adcx r13,rax - adox r12,rcx - adox r13,rax - - xor rcx,rcx - add r8,QWORD[24+rdi] - adc r9,QWORD[32+rdi] - adc r10,QWORD[40+rdi] - adc r11,QWORD[48+rdi] - adc r12,QWORD[56+rdi] - adc r13,QWORD[64+rdi] - adc rcx,QWORD[72+rdi] - mov QWORD[24+rdi],r8 - mov QWORD[32+rdi],r9 - mov QWORD[40+rdi],r10 - mov QWORD[48+rdi],r11 - mov QWORD[56+rdi],r12 - mov QWORD[64+rdi],r13 - mov QWORD[72+rdi],rcx - mov r8,QWORD[80+rdi] - mov r9,QWORD[88+rdi] - mov r10,QWORD[96+rdi] - mov r11,QWORD[104+rdi] - adc r8,0x0 - adc r9,0x0 - adc r10,0x0 - adc r11,0x0 - mov QWORD[80+rdi],r8 - mov QWORD[88+rdi],r9 - mov QWORD[96+rdi],r10 - mov QWORD[104+rdi],r11 - - xor rax,rax - mov rdx,QWORD[((16+0))+rdi] - mulx r9,r8,QWORD[((0+$L$p434p1))] - mulx r10,r12,QWORD[((8+$L$p434p1))] - mulx r11,r13,QWORD[((16+$L$p434p1))] - - adox r9,r12 - adox r10,r13 - - mulx r12,r13,QWORD[((24+$L$p434p1))] - adox r11,r13 - adox r12,rax - - xor rax,rax - mov rdx,QWORD[((16+8))+rdi] - mulx rcx,r13,QWORD[((0+$L$p434p1))] - adcx r9,r13 - adcx r10,rcx - - mulx r13,rcx,QWORD[((8+$L$p434p1))] - adcx r11,r13 - adox r10,rcx - - mulx r13,rcx,QWORD[((16+$L$p434p1))] - adcx r12,r13 - adox r11,rcx - - mulx r13,rcx,QWORD[((24+$L$p434p1))] - adcx r13,rax - adox r12,rcx - adox r13,rax - - xor rcx,rcx - add r8,QWORD[40+rdi] - adc r9,QWORD[48+rdi] - adc r10,QWORD[56+rdi] - adc r11,QWORD[64+rdi] - adc r12,QWORD[72+rdi] - adc r13,QWORD[80+rdi] - adc rcx,QWORD[88+rdi] - mov QWORD[40+rdi],r8 - mov QWORD[48+rdi],r9 - mov QWORD[56+rdi],r10 - mov QWORD[64+rdi],r11 - mov QWORD[72+rdi],r12 - mov QWORD[80+rdi],r13 - mov QWORD[88+rdi],rcx - mov r8,QWORD[96+rdi] - mov r9,QWORD[104+rdi] - adc r8,0x0 - adc r9,0x0 - mov QWORD[96+rdi],r8 - mov QWORD[104+rdi],r9 - - xor rax,rax - mov rdx,QWORD[((32+0))+rdi] - mulx r9,r8,QWORD[((0+$L$p434p1))] - mulx r10,r12,QWORD[((8+$L$p434p1))] - mulx r11,r13,QWORD[((16+$L$p434p1))] - - adox r9,r12 - adox r10,r13 - - mulx r12,r13,QWORD[((24+$L$p434p1))] - adox r11,r13 - adox r12,rax - - xor rax,rax - mov rdx,QWORD[((32+8))+rdi] - mulx rcx,r13,QWORD[((0+$L$p434p1))] - adcx r9,r13 - adcx r10,rcx - - mulx r13,rcx,QWORD[((8+$L$p434p1))] - adcx r11,r13 - adox r10,rcx - - mulx r13,rcx,QWORD[((16+$L$p434p1))] - adcx r12,r13 - adox r11,rcx - - mulx r13,rcx,QWORD[((24+$L$p434p1))] - adcx r13,rax - adox r12,rcx - adox r13,rax - - xor rcx,rcx - add r8,QWORD[56+rdi] - adc r9,QWORD[64+rdi] - adc r10,QWORD[72+rdi] - adc r11,QWORD[80+rdi] - adc r12,QWORD[88+rdi] - adc r13,QWORD[96+rdi] - adc rcx,QWORD[104+rdi] - mov QWORD[rsi],r8 - mov QWORD[8+rsi],r9 - mov QWORD[72+rdi],r10 - mov QWORD[80+rdi],r11 - mov QWORD[88+rdi],r12 - mov QWORD[96+rdi],r13 - mov QWORD[104+rdi],rcx - - xor rax,rax - mov rdx,QWORD[48+rdi] - mulx r9,r8,QWORD[((0+$L$p434p1))] - mulx r10,r12,QWORD[((8+$L$p434p1))] - mulx r11,r13,QWORD[((16+$L$p434p1))] - - adox r9,r12 - adox r10,r13 - - mulx r12,r13,QWORD[((24+$L$p434p1))] - adox r11,r13 - adox r12,rax - - add r8,QWORD[72+rdi] - adc r9,QWORD[80+rdi] - adc r10,QWORD[88+rdi] - adc r11,QWORD[96+rdi] - adc r12,QWORD[104+rdi] - mov QWORD[16+rsi],r8 - mov QWORD[24+rsi],r9 - mov QWORD[32+rsi],r10 - mov QWORD[40+rsi],r11 - mov QWORD[48+rsi],r12 - - - pop r15 - - - pop r14 - - - pop r13 - - - pop r12 - - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -global sike_fprdc - -sike_fprdc: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_fprdc: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push r12 - - - push r13 - - - push r14 - - - push r15 - - - - - - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 - cmp ecx,0x80100 - je NEAR $L$rdc_bdw - - - - - mov r14,QWORD[((0+0))+rdi] - mov rax,QWORD[((0+$L$p434p1))] - mul r14 - xor r10,r10 - mov r8,rax - mov r9,rdx - - - mov rax,QWORD[((8+$L$p434p1))] - mul r14 - xor r11,r11 - add r9,rax - adc r10,rdx - - - mov rcx,QWORD[((0+8))+rdi] - mov rax,QWORD[((0+$L$p434p1))] - mul rcx - add r9,rax - adc r10,rdx - adc r11,0x0 - - - xor r12,r12 - mov rax,QWORD[((16+$L$p434p1))] - mul r14 - add r10,rax - adc r11,rdx - adc r12,0x0 - - - mov rax,QWORD[((8+$L$p434p1))] - mul rcx - add r10,rax - adc r11,rdx - adc r12,0x0 - - - mov rax,QWORD[((24+$L$p434p1))] - mul r14 - xor r13,r13 - add r11,rax - adc r12,rdx - adc r13,0x0 - - - mov rax,QWORD[((16+$L$p434p1))] - mul rcx - add r11,rax - adc r12,rdx - adc r13,0x0 - - - mov rax,QWORD[((24+$L$p434p1))] - mul rcx - add r12,rax - adc r13,rdx - - - xor rcx,rcx - add r8,QWORD[24+rdi] - adc r9,QWORD[32+rdi] - adc r10,QWORD[40+rdi] - adc r11,QWORD[48+rdi] - adc r12,QWORD[56+rdi] - adc r13,QWORD[64+rdi] - adc rcx,QWORD[72+rdi] - mov QWORD[24+rdi],r8 - mov QWORD[32+rdi],r9 - mov QWORD[40+rdi],r10 - mov QWORD[48+rdi],r11 - mov QWORD[56+rdi],r12 - mov QWORD[64+rdi],r13 - mov QWORD[72+rdi],rcx - mov r8,QWORD[80+rdi] - mov r9,QWORD[88+rdi] - mov r10,QWORD[96+rdi] - mov r11,QWORD[104+rdi] - adc r8,0x0 - adc r9,0x0 - adc r10,0x0 - adc r11,0x0 - mov QWORD[80+rdi],r8 - mov QWORD[88+rdi],r9 - mov QWORD[96+rdi],r10 - mov QWORD[104+rdi],r11 - - - mov r14,QWORD[((16+0))+rdi] - mov rax,QWORD[((0+$L$p434p1))] - mul r14 - xor r10,r10 - mov r8,rax - mov r9,rdx - - - mov rax,QWORD[((8+$L$p434p1))] - mul r14 - xor r11,r11 - add r9,rax - adc r10,rdx - - - mov rcx,QWORD[((16+8))+rdi] - mov rax,QWORD[((0+$L$p434p1))] - mul rcx - add r9,rax - adc r10,rdx - adc r11,0x0 - - - xor r12,r12 - mov rax,QWORD[((16+$L$p434p1))] - mul r14 - add r10,rax - adc r11,rdx - adc r12,0x0 - - - mov rax,QWORD[((8+$L$p434p1))] - mul rcx - add r10,rax - adc r11,rdx - adc r12,0x0 - - - mov rax,QWORD[((24+$L$p434p1))] - mul r14 - xor r13,r13 - add r11,rax - adc r12,rdx - adc r13,0x0 - - - mov rax,QWORD[((16+$L$p434p1))] - mul rcx - add r11,rax - adc r12,rdx - adc r13,0x0 - - - mov rax,QWORD[((24+$L$p434p1))] - mul rcx - add r12,rax - adc r13,rdx - - - xor rcx,rcx - add r8,QWORD[40+rdi] - adc r9,QWORD[48+rdi] - adc r10,QWORD[56+rdi] - adc r11,QWORD[64+rdi] - adc r12,QWORD[72+rdi] - adc r13,QWORD[80+rdi] - adc rcx,QWORD[88+rdi] - mov QWORD[40+rdi],r8 - mov QWORD[48+rdi],r9 - mov QWORD[56+rdi],r10 - mov QWORD[64+rdi],r11 - mov QWORD[72+rdi],r12 - mov QWORD[80+rdi],r13 - mov QWORD[88+rdi],rcx - mov r8,QWORD[96+rdi] - mov r9,QWORD[104+rdi] - adc r8,0x0 - adc r9,0x0 - mov QWORD[96+rdi],r8 - mov QWORD[104+rdi],r9 - - - mov r14,QWORD[((32+0))+rdi] - mov rax,QWORD[((0+$L$p434p1))] - mul r14 - xor r10,r10 - mov r8,rax - mov r9,rdx - - - mov rax,QWORD[((8+$L$p434p1))] - mul r14 - xor r11,r11 - add r9,rax - adc r10,rdx - - - mov rcx,QWORD[((32+8))+rdi] - mov rax,QWORD[((0+$L$p434p1))] - mul rcx - add r9,rax - adc r10,rdx - adc r11,0x0 - - - xor r12,r12 - mov rax,QWORD[((16+$L$p434p1))] - mul r14 - add r10,rax - adc r11,rdx - adc r12,0x0 - - - mov rax,QWORD[((8+$L$p434p1))] - mul rcx - add r10,rax - adc r11,rdx - adc r12,0x0 - - - mov rax,QWORD[((24+$L$p434p1))] - mul r14 - xor r13,r13 - add r11,rax - adc r12,rdx - adc r13,0x0 - - - mov rax,QWORD[((16+$L$p434p1))] - mul rcx - add r11,rax - adc r12,rdx - adc r13,0x0 - - - mov rax,QWORD[((24+$L$p434p1))] - mul rcx - add r12,rax - adc r13,rdx - - - xor rcx,rcx - add r8,QWORD[56+rdi] - adc r9,QWORD[64+rdi] - adc r10,QWORD[72+rdi] - adc r11,QWORD[80+rdi] - adc r12,QWORD[88+rdi] - adc r13,QWORD[96+rdi] - adc rcx,QWORD[104+rdi] - mov QWORD[rsi],r8 - mov QWORD[8+rsi],r9 - mov QWORD[72+rdi],r10 - mov QWORD[80+rdi],r11 - mov QWORD[88+rdi],r12 - mov QWORD[96+rdi],r13 - mov QWORD[104+rdi],rcx - - mov r13,QWORD[48+rdi] - - xor r10,r10 - mov rax,QWORD[((0+$L$p434p1))] - mul r13 - mov r8,rax - mov r9,rdx - - xor r11,r11 - mov rax,QWORD[((8+$L$p434p1))] - mul r13 - add r9,rax - adc r10,rdx - - xor r12,r12 - mov rax,QWORD[((16+$L$p434p1))] - mul r13 - add r10,rax - adc r11,rdx - - mov rax,QWORD[((24+$L$p434p1))] - mul r13 - add r11,rax - adc r12,rdx - - add r8,QWORD[72+rdi] - adc r9,QWORD[80+rdi] - adc r10,QWORD[88+rdi] - adc r11,QWORD[96+rdi] - adc r12,QWORD[104+rdi] - mov QWORD[16+rsi],r8 - mov QWORD[24+rsi],r9 - mov QWORD[32+rsi],r10 - mov QWORD[40+rsi],r11 - mov QWORD[48+rsi],r12 - - - pop r15 - - pop r14 - - pop r13 - - pop r12 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$mul_bdw: - - - - - - - - - - mov rcx,rdx - xor rax,rax - - - mov r8,QWORD[rdi] - mov r9,QWORD[8+rdi] - mov r10,QWORD[16+rdi] - mov r11,QWORD[24+rdi] - - push rbx - - - push rbp - - - sub rsp,96 - - - add r8,QWORD[32+rdi] - adc r9,QWORD[40+rdi] - adc r10,QWORD[48+rdi] - adc r11,0x0 - sbb rax,0x0 - mov QWORD[rsp],r8 - mov QWORD[8+rsp],r9 - mov QWORD[16+rsp],r10 - mov QWORD[24+rsp],r11 - - - xor rbx,rbx - mov r12,QWORD[rsi] - mov r13,QWORD[8+rsi] - mov r14,QWORD[16+rsi] - mov r15,QWORD[24+rsi] - add r12,QWORD[32+rsi] - adc r13,QWORD[40+rsi] - adc r14,QWORD[48+rsi] - adc r15,0x0 - sbb rbx,0x0 - mov QWORD[32+rsp],r12 - mov QWORD[40+rsp],r13 - mov QWORD[48+rsp],r14 - mov QWORD[56+rsp],r15 - - - and r12,rax - and r13,rax - and r14,rax - and r15,rax - - - and r8,rbx - and r9,rbx - and r10,rbx - and r11,rbx - - - add r8,r12 - adc r9,r13 - adc r10,r14 - adc r11,r15 - mov QWORD[64+rsp],r8 - mov QWORD[72+rsp],r9 - mov QWORD[80+rsp],r10 - mov QWORD[88+rsp],r11 - - - mov rdx,QWORD[((0+0))+rsp] - mulx r8,r9,QWORD[((32+0))+rsp] - mov QWORD[((0+0))+rsp],r9 - mulx r9,r10,QWORD[((32+8))+rsp] - xor rax,rax - adox r8,r10 - mulx r10,r11,QWORD[((32+16))+rsp] - adox r9,r11 - mulx r11,r12,QWORD[((32+24))+rsp] - adox r10,r12 - - mov rdx,QWORD[((0+8))+rsp] - mulx r13,r12,QWORD[((32+0))+rsp] - adox r11,rax - xor rax,rax - mulx r14,r15,QWORD[((32+8))+rsp] - adox r12,r8 - mov QWORD[((0+8))+rsp],r12 - adcx r13,r15 - mulx r15,rbx,QWORD[((32+16))+rsp] - adcx r14,rbx - adox r13,r9 - mulx rbx,rbp,QWORD[((32+24))+rsp] - adcx r15,rbp - adcx rbx,rax - adox r14,r10 - - mov rdx,QWORD[((0+16))+rsp] - mulx r9,r8,QWORD[((32+0))+rsp] - adox r15,r11 - adox rbx,rax - xor rax,rax - mulx r10,r11,QWORD[((32+8))+rsp] - adox r8,r13 - mov QWORD[((0+16))+rsp],r8 - adcx r9,r11 - mulx r11,r12,QWORD[((32+16))+rsp] - adcx r10,r12 - adox r9,r14 - mulx r12,rbp,QWORD[((32+24))+rsp] - adcx r11,rbp - adcx r12,rax - - adox r10,r15 - adox r11,rbx - adox r12,rax - - mov rdx,QWORD[((0+24))+rsp] - mulx r13,r8,QWORD[((32+0))+rsp] - xor rax,rax - mulx r14,r15,QWORD[((32+8))+rsp] - adcx r13,r15 - adox r9,r8 - mulx r15,rbx,QWORD[((32+16))+rsp] - adcx r14,rbx - adox r10,r13 - mulx rbx,rbp,QWORD[((32+24))+rsp] - adcx r15,rbp - adcx rbx,rax - adox r11,r14 - adox r12,r15 - adox rbx,rax - mov QWORD[((0+24))+rsp],r9 - mov QWORD[((0+32))+rsp],r10 - mov QWORD[((0+40))+rsp],r11 - mov QWORD[((0+48))+rsp],r12 - mov QWORD[((0+56))+rsp],rbx - - - - mov rdx,QWORD[((0+0))+rdi] - mulx r8,r9,QWORD[((0+0))+rsi] - mov QWORD[((0+0))+rcx],r9 - mulx r9,r10,QWORD[((0+8))+rsi] - xor rax,rax - adox r8,r10 - mulx r10,r11,QWORD[((0+16))+rsi] - adox r9,r11 - mulx r11,r12,QWORD[((0+24))+rsi] - adox r10,r12 - - mov rdx,QWORD[((0+8))+rdi] - mulx r13,r12,QWORD[((0+0))+rsi] - adox r11,rax - xor rax,rax - mulx r14,r15,QWORD[((0+8))+rsi] - adox r12,r8 - mov QWORD[((0+8))+rcx],r12 - adcx r13,r15 - mulx r15,rbx,QWORD[((0+16))+rsi] - adcx r14,rbx - adox r13,r9 - mulx rbx,rbp,QWORD[((0+24))+rsi] - adcx r15,rbp - adcx rbx,rax - adox r14,r10 - - mov rdx,QWORD[((0+16))+rdi] - mulx r9,r8,QWORD[((0+0))+rsi] - adox r15,r11 - adox rbx,rax - xor rax,rax - mulx r10,r11,QWORD[((0+8))+rsi] - adox r8,r13 - mov QWORD[((0+16))+rcx],r8 - adcx r9,r11 - mulx r11,r12,QWORD[((0+16))+rsi] - adcx r10,r12 - adox r9,r14 - mulx r12,rbp,QWORD[((0+24))+rsi] - adcx r11,rbp - adcx r12,rax - - adox r10,r15 - adox r11,rbx - adox r12,rax - - mov rdx,QWORD[((0+24))+rdi] - mulx r13,r8,QWORD[((0+0))+rsi] - xor rax,rax - mulx r14,r15,QWORD[((0+8))+rsi] - adcx r13,r15 - adox r9,r8 - mulx r15,rbx,QWORD[((0+16))+rsi] - adcx r14,rbx - adox r10,r13 - mulx rbx,rbp,QWORD[((0+24))+rsi] - adcx r15,rbp - adcx rbx,rax - adox r11,r14 - adox r12,r15 - adox rbx,rax - mov QWORD[((0+24))+rcx],r9 - mov QWORD[((0+32))+rcx],r10 - mov QWORD[((0+40))+rcx],r11 - mov QWORD[((0+48))+rcx],r12 - mov QWORD[((0+56))+rcx],rbx - - - - mov rdx,QWORD[((32+0))+rdi] - mulx r8,r9,QWORD[((32+0))+rsi] - mov QWORD[((64+0))+rcx],r9 - mulx r9,r10,QWORD[((32+8))+rsi] - xor rax,rax - adox r8,r10 - mulx r10,r11,QWORD[((32+16))+rsi] - adox r9,r11 - - mov rdx,QWORD[((32+8))+rdi] - mulx r11,r12,QWORD[((32+0))+rsi] - adox r10,rax - xor rax,rax - - mulx r13,r14,QWORD[((32+8))+rsi] - adox r12,r8 - mov QWORD[((64+8))+rcx],r12 - adcx r11,r14 - - mulx r14,r8,QWORD[((32+16))+rsi] - adox r11,r9 - adcx r13,r8 - adcx r14,rax - adox r13,r10 - - mov rdx,QWORD[((32+16))+rdi] - mulx r9,r8,QWORD[((32+0))+rsi] - adox r14,rax - xor rax,rax - - mulx r12,r10,QWORD[((32+8))+rsi] - adox r8,r11 - mov QWORD[((64+16))+rcx],r8 - adcx r9,r13 - - mulx r8,r11,QWORD[((32+16))+rsi] - adcx r12,r14 - adcx r8,rax - adox r9,r10 - adox r11,r12 - adox r8,rax - mov QWORD[((64+24))+rcx],r9 - mov QWORD[((64+32))+rcx],r11 - mov QWORD[((64+40))+rcx],r8 - - - - - mov r8,QWORD[64+rsp] - mov r9,QWORD[72+rsp] - mov r10,QWORD[80+rsp] - mov r11,QWORD[88+rsp] - - mov rax,QWORD[32+rsp] - add r8,rax - mov rax,QWORD[40+rsp] - adc r9,rax - mov rax,QWORD[48+rsp] - adc r10,rax - mov rax,QWORD[56+rsp] - adc r11,rax - - - mov r12,QWORD[rsp] - mov r13,QWORD[8+rsp] - mov r14,QWORD[16+rsp] - mov r15,QWORD[24+rsp] - sub r12,QWORD[rcx] - sbb r13,QWORD[8+rcx] - sbb r14,QWORD[16+rcx] - sbb r15,QWORD[24+rcx] - sbb r8,QWORD[32+rcx] - sbb r9,QWORD[40+rcx] - sbb r10,QWORD[48+rcx] - sbb r11,QWORD[56+rcx] - - - sub r12,QWORD[64+rcx] - sbb r13,QWORD[72+rcx] - sbb r14,QWORD[80+rcx] - sbb r15,QWORD[88+rcx] - sbb r8,QWORD[96+rcx] - sbb r9,QWORD[104+rcx] - sbb r10,0x0 - sbb r11,0x0 - - add r12,QWORD[32+rcx] - mov QWORD[32+rcx],r12 - adc r13,QWORD[40+rcx] - mov QWORD[40+rcx],r13 - adc r14,QWORD[48+rcx] - mov QWORD[48+rcx],r14 - adc r15,QWORD[56+rcx] - mov QWORD[56+rcx],r15 - adc r8,QWORD[64+rcx] - mov QWORD[64+rcx],r8 - adc r9,QWORD[72+rcx] - mov QWORD[72+rcx],r9 - adc r10,QWORD[80+rcx] - mov QWORD[80+rcx],r10 - adc r11,QWORD[88+rcx] - mov QWORD[88+rcx],r11 - mov r12,QWORD[96+rcx] - adc r12,0x0 - mov QWORD[96+rcx],r12 - mov r13,QWORD[104+rcx] - adc r13,0x0 - mov QWORD[104+rcx],r13 - - add rsp,96 - - pop rbp - - - pop rbx - - - - - pop r15 - - - pop r14 - - - pop r13 - - - pop r12 - - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - - -global sike_mpmul - -sike_mpmul: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_sike_mpmul: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - push r12 - - - push r13 - - - push r14 - - - push r15 - - - - - - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 - cmp ecx,0x80100 - je NEAR $L$mul_bdw - - - - mov rcx,rdx - - sub rsp,112 - - - - xor rax,rax - mov r8,QWORD[32+rdi] - mov r9,QWORD[40+rdi] - mov r10,QWORD[48+rdi] - xor r11,r11 - add r8,QWORD[rdi] - adc r9,QWORD[8+rdi] - adc r10,QWORD[16+rdi] - adc r11,QWORD[24+rdi] - - sbb rax,0 - mov QWORD[64+rsp],rax - - mov QWORD[rcx],r8 - mov QWORD[8+rcx],r9 - mov QWORD[16+rcx],r10 - mov QWORD[24+rcx],r11 - - - xor rdx,rdx - mov r12,QWORD[32+rsi] - mov r13,QWORD[40+rsi] - mov r14,QWORD[48+rsi] - xor r15,r15 - add r12,QWORD[rsi] - adc r13,QWORD[8+rsi] - adc r14,QWORD[16+rsi] - adc r15,QWORD[24+rsi] - sbb rdx,0x0 - - mov QWORD[72+rsp],rdx - - - mov rax,QWORD[rcx] - mul r12 - mov QWORD[rsp],rax - mov r8,rdx - - xor r9,r9 - mov rax,QWORD[rcx] - mul r13 - add r8,rax - adc r9,rdx - - xor r10,r10 - mov rax,QWORD[8+rcx] - mul r12 - add r8,rax - mov QWORD[8+rsp],r8 - adc r9,rdx - adc r10,0x0 - - xor r8,r8 - mov rax,QWORD[rcx] - mul r14 - add r9,rax - adc r10,rdx - adc r8,0x0 - - mov rax,QWORD[16+rcx] - mul r12 - add r9,rax - adc r10,rdx - adc r8,0x0 - - mov rax,QWORD[8+rcx] - mul r13 - add r9,rax - mov QWORD[16+rsp],r9 - adc r10,rdx - adc r8,0x0 - - xor r9,r9 - mov rax,QWORD[rcx] - mul r15 - add r10,rax - adc r8,rdx - adc r9,0x0 - - mov rax,QWORD[24+rcx] - mul r12 - add r10,rax - adc r8,rdx - adc r9,0x0 - - mov rax,QWORD[8+rcx] - mul r14 - add r10,rax - adc r8,rdx - adc r9,0x0 - - mov rax,QWORD[16+rcx] - mul r13 - add r10,rax - mov QWORD[24+rsp],r10 - adc r8,rdx - adc r9,0x0 - - xor r10,r10 - mov rax,QWORD[8+rcx] - mul r15 - add r8,rax - adc r9,rdx - adc r10,0x0 - - mov rax,QWORD[24+rcx] - mul r13 - add r8,rax - adc r9,rdx - adc r10,0x0 - - mov rax,QWORD[16+rcx] - mul r14 - add r8,rax - mov QWORD[32+rsp],r8 - adc r9,rdx - adc r10,0x0 - - xor r11,r11 - mov rax,QWORD[16+rcx] - mul r15 - add r9,rax - adc r10,rdx - adc r11,0x0 - - mov rax,QWORD[24+rcx] - mul r14 - add r9,rax - mov QWORD[40+rsp],r9 - adc r10,rdx - adc r11,0x0 - - mov rax,QWORD[24+rcx] - mul r15 - add r10,rax - mov QWORD[48+rsp],r10 - adc r11,rdx - mov QWORD[56+rsp],r11 - - - mov rax,QWORD[64+rsp] - and r12,rax - and r13,rax - and r14,rax - and r15,rax - - - mov rax,QWORD[72+rsp] - mov r8,QWORD[rcx] - and r8,rax - mov r9,QWORD[8+rcx] - and r9,rax - mov r10,QWORD[16+rcx] - and r10,rax - mov r11,QWORD[24+rcx] - and r11,rax - - - add r12,r8 - adc r13,r9 - adc r14,r10 - adc r15,r11 - - - mov rax,QWORD[32+rsp] - add r12,rax - mov rax,QWORD[40+rsp] - adc r13,rax - mov rax,QWORD[48+rsp] - adc r14,rax - mov rax,QWORD[56+rsp] - adc r15,rax - mov QWORD[80+rsp],r12 - mov QWORD[88+rsp],r13 - mov QWORD[96+rsp],r14 - mov QWORD[104+rsp],r15 - - - mov r11,QWORD[rdi] - mov rax,QWORD[rsi] - mul r11 - xor r9,r9 - mov QWORD[rcx],rax - mov r8,rdx - - mov r14,QWORD[16+rdi] - mov rax,QWORD[8+rsi] - mul r11 - xor r10,r10 - add r8,rax - adc r9,rdx - - mov r12,QWORD[8+rdi] - mov rax,QWORD[rsi] - mul r12 - add r8,rax - mov QWORD[8+rcx],r8 - adc r9,rdx - adc r10,0x0 - - xor r8,r8 - mov rax,QWORD[16+rsi] - mul r11 - add r9,rax - adc r10,rdx - adc r8,0x0 - - mov r13,QWORD[rsi] - mov rax,r14 - mul r13 - add r9,rax - adc r10,rdx - adc r8,0x0 - - mov rax,QWORD[8+rsi] - mul r12 - add r9,rax - mov QWORD[16+rcx],r9 - adc r10,rdx - adc r8,0x0 - - xor r9,r9 - mov rax,QWORD[24+rsi] - mul r11 - mov r15,QWORD[24+rdi] - add r10,rax - adc r8,rdx - adc r9,0x0 - - mov rax,r15 - mul r13 - add r10,rax - adc r8,rdx - adc r9,0x0 - - mov rax,QWORD[16+rsi] - mul r12 - add r10,rax - adc r8,rdx - adc r9,0x0 - - mov rax,QWORD[8+rsi] - mul r14 - add r10,rax - mov QWORD[24+rcx],r10 - adc r8,rdx - adc r9,0x0 - - xor r10,r10 - mov rax,QWORD[24+rsi] - mul r12 - add r8,rax - adc r9,rdx - adc r10,0x0 - - mov rax,QWORD[8+rsi] - mul r15 - add r8,rax - adc r9,rdx - adc r10,0x0 - - mov rax,QWORD[16+rsi] - mul r14 - add r8,rax - mov QWORD[32+rcx],r8 - adc r9,rdx - adc r10,0x0 - - xor r8,r8 - mov rax,QWORD[24+rsi] - mul r14 - add r9,rax - adc r10,rdx - adc r8,0x0 - - mov rax,QWORD[16+rsi] - mul r15 - add r9,rax - mov QWORD[40+rcx],r9 - adc r10,rdx - adc r8,0x0 - - mov rax,QWORD[24+rsi] - mul r15 - add r10,rax - mov QWORD[48+rcx],r10 - adc r8,rdx - mov QWORD[56+rcx],r8 - - - - mov r11,QWORD[32+rdi] - mov rax,QWORD[32+rsi] - mul r11 - xor r9,r9 - mov QWORD[64+rcx],rax - mov r8,rdx - - mov r14,QWORD[48+rdi] - mov rax,QWORD[40+rsi] - mul r11 - xor r10,r10 - add r8,rax - adc r9,rdx - - mov r12,QWORD[40+rdi] - mov rax,QWORD[32+rsi] - mul r12 - add r8,rax - mov QWORD[72+rcx],r8 - adc r9,rdx - adc r10,0x0 - - xor r8,r8 - mov rax,QWORD[48+rsi] - mul r11 - add r9,rax - adc r10,rdx - adc r8,0x0 - - mov r13,QWORD[32+rsi] - mov rax,r14 - mul r13 - add r9,rax - adc r10,rdx - adc r8,0x0 - - mov rax,QWORD[40+rsi] - mul r12 - add r9,rax - mov QWORD[80+rcx],r9 - adc r10,rdx - adc r8,0x0 - - mov rax,QWORD[48+rsi] - mul r12 - xor r12,r12 - add r10,rax - adc r8,rdx - adc r12,0x0 - - mov rax,QWORD[40+rsi] - mul r14 - add r10,rax - adc r8,rdx - adc r12,0x0 - mov QWORD[88+rcx],r10 - - mov rax,QWORD[48+rsi] - mul r14 - add r8,rax - adc r12,0x0 - mov QWORD[96+rcx],r8 - - add rdx,r12 - - - mov r8,QWORD[rsp] - sub r8,QWORD[rcx] - mov r9,QWORD[8+rsp] - sbb r9,QWORD[8+rcx] - mov r10,QWORD[16+rsp] - sbb r10,QWORD[16+rcx] - mov r11,QWORD[24+rsp] - sbb r11,QWORD[24+rcx] - mov r12,QWORD[80+rsp] - sbb r12,QWORD[32+rcx] - mov r13,QWORD[88+rsp] - sbb r13,QWORD[40+rcx] - mov r14,QWORD[96+rsp] - sbb r14,QWORD[48+rcx] - mov r15,QWORD[104+rsp] - sbb r15,QWORD[56+rcx] - - - mov rax,QWORD[64+rcx] - sub r8,rax - mov rax,QWORD[72+rcx] - sbb r9,rax - mov rax,QWORD[80+rcx] - sbb r10,rax - mov rax,QWORD[88+rcx] - sbb r11,rax - mov rax,QWORD[96+rcx] - sbb r12,rax - sbb r13,rdx - sbb r14,0x0 - sbb r15,0x0 - - - add r8,QWORD[32+rcx] - mov QWORD[32+rcx],r8 - adc r9,QWORD[40+rcx] - mov QWORD[40+rcx],r9 - adc r10,QWORD[48+rcx] - mov QWORD[48+rcx],r10 - adc r11,QWORD[56+rcx] - mov QWORD[56+rcx],r11 - adc r12,QWORD[64+rcx] - mov QWORD[64+rcx],r12 - adc r13,QWORD[72+rcx] - mov QWORD[72+rcx],r13 - adc r14,QWORD[80+rcx] - mov QWORD[80+rcx],r14 - adc r15,QWORD[88+rcx] - mov QWORD[88+rcx],r15 - mov r12,QWORD[96+rcx] - adc r12,0x0 - mov QWORD[96+rcx],r12 - adc rdx,0x0 - mov QWORD[104+rcx],rdx - - add rsp,112 - - - - pop r15 - - pop r14 - - pop r13 - - pop r12 - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - diff --git a/src/Functions/FunctionsAES.cpp b/src/Functions/FunctionsAES.cpp index 6a4777c4dd4..1588006eed8 100644 --- a/src/Functions/FunctionsAES.cpp +++ b/src/Functions/FunctionsAES.cpp @@ -46,6 +46,10 @@ const EVP_CIPHER * getCipherByName(const StringRef & cipher_name) // For some reasons following ciphers can't be found by name. if (cipher_name == "aes-128-cfb128") evp_cipher = EVP_aes_128_cfb128(); + else if (cipher_name == "aes-192-cfb128") + evp_cipher = EVP_aes_192_cfb128(); + else if (cipher_name == "aes-256-cfb128") + evp_cipher = EVP_aes_256_cfb128(); } // NOTE: cipher obtained not via EVP_CIPHER_fetch() would cause extra work on each context reset diff --git a/tests/performance/encrypt_decrypt.xml b/tests/performance/encrypt_decrypt.xml index 2d0a9361039..c2398a83b8f 100644 --- a/tests/performance/encrypt_decrypt.xml +++ b/tests/performance/encrypt_decrypt.xml @@ -15,12 +15,14 @@ encrypt('aes-128-gcm', materialize(plaintext), key16, iv12, 'aadaadaadaad') encrypt('aes-192-cbc', materialize(plaintext), key24, iv16) + encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16) encrypt('aes-192-ctr', materialize(plaintext), key24, iv16) encrypt('aes-192-ecb', materialize(plaintext), key24) encrypt('aes-192-ofb', materialize(plaintext), key24, iv16) encrypt('aes-192-gcm', materialize(plaintext), key24, iv12, 'aadaadaadaad') encrypt('aes-256-cbc', materialize(plaintext), key32, iv16) + encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16) encrypt('aes-256-ctr', materialize(plaintext), key32, iv16) encrypt('aes-256-ecb', materialize(plaintext), key32) encrypt('aes-256-ofb', materialize(plaintext), key32, iv16) @@ -35,12 +37,14 @@ decrypt('aes-128-gcm', encrypt('aes-128-gcm', materialize(plaintext), key16, iv12, 'aadaadaadaad'), key16, iv12, 'aadaadaadaad') decrypt('aes-192-cbc', encrypt('aes-192-cbc', materialize(plaintext), key24, iv16), key24, iv16) + decrypt('aes-192-cfb128', encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ctr', encrypt('aes-192-ctr', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ecb', encrypt('aes-192-ecb', materialize(plaintext), key24), key24) decrypt('aes-192-ofb', encrypt('aes-192-ofb', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-gcm', encrypt('aes-192-gcm', materialize(plaintext), key24, iv12, 'aadaadaadaad'), key24, iv12, 'aadaadaadaad') decrypt('aes-256-cbc', encrypt('aes-256-cbc', materialize(plaintext), key32, iv16), key32, iv16) + decrypt('aes-256-cfb128', encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ctr', encrypt('aes-256-ctr', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ecb', encrypt('aes-256-ecb', materialize(plaintext), key32), key32) decrypt('aes-256-ofb', encrypt('aes-256-ofb', materialize(plaintext), key32, iv16), key32, iv16) diff --git a/tests/performance/encrypt_decrypt_empty_string.xml b/tests/performance/encrypt_decrypt_empty_string.xml index 0be74c42f70..c5f3ccc123b 100644 --- a/tests/performance/encrypt_decrypt_empty_string.xml +++ b/tests/performance/encrypt_decrypt_empty_string.xml @@ -11,9 +11,11 @@ encrypt('aes-128-ctr', materialize(plaintext), key16, iv16) encrypt('aes-128-ofb', materialize(plaintext), key16, iv16) + encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16) encrypt('aes-192-ctr', materialize(plaintext), key24, iv16) encrypt('aes-192-ofb', materialize(plaintext), key24, iv16) + encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16) encrypt('aes-256-ctr', materialize(plaintext), key32, iv16) encrypt('aes-256-ofb', materialize(plaintext), key32, iv16) @@ -22,9 +24,11 @@ decrypt('aes-128-ctr', encrypt('aes-128-ctr', materialize(plaintext), key16, iv16), key16, iv16) decrypt('aes-128-ofb', encrypt('aes-128-ofb', materialize(plaintext), key16, iv16), key16, iv16) + decrypt('aes-192-cfb128', encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ctr', encrypt('aes-192-ctr', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ofb', encrypt('aes-192-ofb', materialize(plaintext), key24, iv16), key24, iv16) + decrypt('aes-256-cfb128', encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ctr', encrypt('aes-256-ctr', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ofb', encrypt('aes-256-ofb', materialize(plaintext), key32, iv16), key32, iv16) diff --git a/tests/queries/0_stateless/01318_decrypt.reference b/tests/queries/0_stateless/01318_decrypt.reference index 4d8a6a643a8..871f1af29d2 100644 --- a/tests/queries/0_stateless/01318_decrypt.reference +++ b/tests/queries/0_stateless/01318_decrypt.reference @@ -14,6 +14,12 @@ aes-256-cbc 1 aes-128-cfb128 1 aes-128-cfb128 1 aes-128-cfb128 1 +aes-192-cfb128 1 +aes-192-cfb128 1 +aes-192-cfb128 1 +aes-256-cfb128 1 +aes-256-cfb128 1 +aes-256-cfb128 1 aes-128-ecb 1 aes-128-ecb 1 aes-128-ecb 1 @@ -45,6 +51,12 @@ aes-256-cbc 1 aes-128-cfb128 1 aes-128-cfb128 1 aes-128-cfb128 1 +aes-192-cfb128 1 +aes-192-cfb128 1 +aes-192-cfb128 1 +aes-256-cfb128 1 +aes-256-cfb128 1 +aes-256-cfb128 1 aes-128-ctr 1 aes-128-ctr 1 aes-128-ctr 1 diff --git a/tests/queries/0_stateless/01318_decrypt.sql b/tests/queries/0_stateless/01318_decrypt.sql index f439ca614e3..fb0b934d7bf 100644 --- a/tests/queries/0_stateless/01318_decrypt.sql +++ b/tests/queries/0_stateless/01318_decrypt.sql @@ -82,6 +82,8 @@ SELECT 'aes-192-cbc' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, in SELECT 'aes-256-cbc' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; SELECT 'aes-128-cfb128' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; +SELECT 'aes-192-cfb128' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; +SELECT 'aes-256-cfb128' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; SELECT 'aes-128-ecb' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; SELECT 'aes-192-ecb' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; @@ -97,6 +99,8 @@ SELECT 'aes-192-cbc' as mode, decrypt(mode, encrypt(mode, input, key24, iv), key SELECT 'aes-256-cbc' as mode, decrypt(mode, encrypt(mode, input, key32, iv), key32, iv) == input FROM encryption_test; SELECT 'aes-128-cfb128' as mode, decrypt(mode, encrypt(mode, input, key16, iv), key16, iv) == input FROM encryption_test; +SELECT 'aes-192-cfb128' as mode, decrypt(mode, encrypt(mode, input, key24, iv), key24, iv) == input FROM encryption_test; +SELECT 'aes-256-cfb128' as mode, decrypt(mode, encrypt(mode, input, key32, iv), key32, iv) == input FROM encryption_test; SELECT 'aes-128-ctr' as mode, decrypt(mode, encrypt(mode, input, key16, iv), key16, iv) == input FROM encryption_test; SELECT 'aes-192-ctr' as mode, decrypt(mode, encrypt(mode, input, key24, iv), key24, iv) == input FROM encryption_test; diff --git a/tests/queries/0_stateless/01318_encrypt.reference b/tests/queries/0_stateless/01318_encrypt.reference index 87f67c8f720..e423bcf24fb 100644 --- a/tests/queries/0_stateless/01318_encrypt.reference +++ b/tests/queries/0_stateless/01318_encrypt.reference @@ -11,6 +11,12 @@ aes-256-cbc A398D86A880BA4DE1FBA1ABBD38B9DA3B038B198134E798A4CF134029DB18B0A53F9 aes-128-cfb128 aes-128-cfb128 0EAAFAF5 aes-128-cfb128 2DA7E3F5CD13148BED988533A2560F52959044EC2FF38A1D1A66DB2B20635FC8800060DA0062E0399CFE059E5E687F4BBA5E7182A4D79F18317B970708F079A59771C231EBA359741565B903BA820EE3EA07249777E745387B9774EE495940A50121A617B20768AA3A1A78AC9D49983E7BD43CD7BD21504640EAB23F57AB9E5B6260D875B665A63359 +aes-192-cfb128 +aes-192-cfb128 053E029A +aes-192-cfb128 26331B9AEF235360655730F3D8905479AEACC18B2FFCC7FF355DBA918A2B09C5FEEE817C929400A3E412A7528EB6D79846B687858E250AD54A9913CB81009AC55E391163ECCEF6DA0095C4C57B2C913D70B82C0B14ADD59DD559A039B48A47C86142D15922E86FE2586707F689DFD962D2B96E3571151D642A8E8CC2F2CC09D17F009592B0963AD2AB +aes-256-cfb128 +aes-256-cfb128 7FB039F7 +aes-256-cfb128 5CBD20F7ABD3AC41FCAA1A5C0E119E2BB5174FDACA4353FFA5D1BC2928CE015E08C7D813C51A9493902FD4BF6A864FA6F26B220C8FD21B846C90453241F369B170B6DAAF5B7E10AF025EA6EBF3852BCDA6AA92DA086B13162E3CCCC859FE3A6A8782395247785951D5095305BE97196C4A8C7607CFC0191A4DEB72F085ECF759F5AA5CBD3BE60A7FF5 aes-128-ecb FEA8CFDE6EE2C6E7A2CC6ADDC9F62C83 aes-128-ecb 78B16CD4BE107660156124C5FEE6454A aes-128-ecb 67C0B119D96F18E2823968D42871B3D126D5DDD35074303974946BE81A246757C3ACAEBFE0590EC98C4F51469E9FE27A8F8A98749E4DCAEF02F2076AC4CEB317062C0531F5FD2A505FE62413D8B0900ECAB5B8E1909A4A38FF922E3302857A16CE8E6804ACBA36C5E00EF5054288922517E59A47D0A26451905DE9E391D683ABB5852B5611886A2EF662AC8A1E156D85 @@ -42,6 +48,12 @@ aes-256-cbc A398D86A880BA4DE1FBA1ABBD38B9DA3B038B198134E798A4CF134029DB18B0A53F9 aes-128-cfb128 aes-128-cfb128 519F7556 aes-128-cfb128 72926C569BC409EA1646E840082C18F28531DE0AEFA2F980ADCEA64A8BC57798CD549092928F115E702F325DA709A7DB445B6BE9C510452ABB78966B4D8EB622303113EB1BB955FB507A11B1092FEA78C5A05F71D8A9E553591AC6E72B833F1BECE8A5E1816742270C12495BD436C93C5DD1EC017A2EEFE5C5966A01D2BA0EED477D46234DFF333F02 +aes-192-cfb128 +aes-192-cfb128 F978FB28 +aes-192-cfb128 DA75E22875FB05DDE0145038A775E5BD6397D4DC5839CCF84C1F2D0983E87E06A7B1DB1E25FF9A3C0C7BE9FAF61AAC2DE08AAD9C08694F7E35F8E144967C0C798365AB4BA5DF2308014862C80617AF0BC6857B15806412A0E5CAB5B017196A3AFFB73DB33E3D3954FA1F8839501CD117003ED139231E15B28B5E73FBF84E3CC047A2DA0ADA74C25DE8 +aes-256-cfb128 +aes-256-cfb128 7FB039F7 +aes-256-cfb128 5CBD20F7ABD3AC41FCAA1A5C0E119E2BB5174FDACA4353FFA5D1BC2928CE015E08C7D813C51A9493902FD4BF6A864FA6F26B220C8FD21B846C90453241F369B170B6DAAF5B7E10AF025EA6EBF3852BCDA6AA92DA086B13162E3CCCC859FE3A6A8782395247785951D5095305BE97196C4A8C7607CFC0191A4DEB72F085ECF759F5AA5CBD3BE60A7FF5 aes-128-ctr aes-128-ctr 519F7556 aes-128-ctr 72926C569BC409EA1646E840082C18F24A5A4A7A178EBCBAC0F170479253ACD2A18968DEAB5148C9C2E878B8F4B7C82B6601A0CD5470AA74EA7A2AAD15107950FC50786C3DC483B8BCA6DF1E5CDD64332C2289641EF66271DFEF9D07B392D4762AEE8FD65E0E8E8CB4FBE26D9D94A207352046380BB44AF32EDB900F6796EA87FC4C52A092CEB229C7 diff --git a/tests/queries/0_stateless/01318_encrypt.sql b/tests/queries/0_stateless/01318_encrypt.sql index 86d904d405a..9a5e6fd0ed1 100644 --- a/tests/queries/0_stateless/01318_encrypt.sql +++ b/tests/queries/0_stateless/01318_encrypt.sql @@ -74,6 +74,8 @@ SELECT 'aes-192-cbc' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FRO SELECT 'aes-256-cbc' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-128-cfb128' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; +SELECT 'aes-192-cfb128' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; +SELECT 'aes-256-cfb128' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-128-ecb' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-192-ecb' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; @@ -90,6 +92,8 @@ SELECT 'aes-192-cbc' as mode, hex(encrypt(mode, input, key24, iv)) FROM encrypti SELECT 'aes-256-cbc' as mode, hex(encrypt(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-128-cfb128' as mode, hex(encrypt(mode, input, key16, iv)) FROM encryption_test; +SELECT 'aes-192-cfb128' as mode, hex(encrypt(mode, input, key24, iv)) FROM encryption_test; +SELECT 'aes-256-cfb128' as mode, hex(encrypt(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-128-ctr' as mode, hex(encrypt(mode, input, key16, iv)) FROM encryption_test; SELECT 'aes-192-ctr' as mode, hex(encrypt(mode, input, key24, iv)) FROM encryption_test; From 832fd6e0a938c7a50247a6b233b7ee681dccaf14 Mon Sep 17 00:00:00 2001 From: zvonand Date: Sun, 19 Jun 2022 23:10:28 +0500 Subject: [PATCH 068/525] Added tests + minor updates --- .gitmodules | 4 +- contrib/CMakeLists.txt | 2 +- .../CMakeLists.txt | 10 +- contrib/base-x/.gitignore | 4 + contrib/base-x/.travis.yml | 36 + contrib/base-x/LICENSE | 21 + contrib/base-x/README.md | 97 + contrib/base-x/base_x.hh | 614 ++++ contrib/base-x/tests/test.cc | 30 + contrib/base-x/tests/testcases/tests.cc | 359 +++ contrib/base-x/uinteger_t.hh | 2546 +++++++++++++++++ contrib/base58 | 1 - src/Functions/CMakeLists.txt | 4 +- src/Functions/FunctionBase58Conversion.h | 46 +- src/Functions/configure_config.cmake | 2 +- .../0_stateless/02337_base58.reference | 48 + tests/queries/0_stateless/02337_base58.sql | 17 + 17 files changed, 3809 insertions(+), 32 deletions(-) rename contrib/{base58-cmake => base-x-cmake}/CMakeLists.txt (65%) create mode 100644 contrib/base-x/.gitignore create mode 100755 contrib/base-x/.travis.yml create mode 100644 contrib/base-x/LICENSE create mode 100644 contrib/base-x/README.md create mode 100644 contrib/base-x/base_x.hh create mode 100644 contrib/base-x/tests/test.cc create mode 100644 contrib/base-x/tests/testcases/tests.cc create mode 100644 contrib/base-x/uinteger_t.hh delete mode 160000 contrib/base58 create mode 100644 tests/queries/0_stateless/02337_base58.reference create mode 100644 tests/queries/0_stateless/02337_base58.sql diff --git a/.gitmodules b/.gitmodules index 568dab1eb26..e1960d2144b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -268,6 +268,6 @@ [submodule "contrib/hashidsxx"] path = contrib/hashidsxx url = https://github.com/schoentoon/hashidsxx.git -[submodule "contrib/base58"] - path = contrib/base58 +[submodule "contrib/base-x"] + path = contrib/base-x url = https://github.com/Kronuz/base-x.git diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index a356ade7eb8..2ade6c139f6 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -153,7 +153,7 @@ endif() add_contrib (sqlite-cmake sqlite-amalgamation) add_contrib (s2geometry-cmake s2geometry) -add_contrib (base58-cmake base58) +add_contrib (base-x-cmake base-x) # Put all targets defined here and in subdirectories under "contrib/" folders in GUI-based IDEs. # Some of third-party projects may override CMAKE_FOLDER or FOLDER property of their targets, so they would not appear diff --git a/contrib/base58-cmake/CMakeLists.txt b/contrib/base-x-cmake/CMakeLists.txt similarity index 65% rename from contrib/base58-cmake/CMakeLists.txt rename to contrib/base-x-cmake/CMakeLists.txt index 26783e0177d..48cb54d307f 100644 --- a/contrib/base58-cmake/CMakeLists.txt +++ b/contrib/base-x-cmake/CMakeLists.txt @@ -1,13 +1,13 @@ -set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/base58") +set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/base-x") set (SRCS ${LIBRARY_DIR}/base_x.hh ${LIBRARY_DIR}/uinteger_t.hh ) -add_library(_base58 ${SRCS}) +add_library(_base-x ${SRCS}) -target_include_directories(_base58 SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}) +target_include_directories(_base-x SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}) if (XCODE OR XCODE_VERSION) # https://gitlab.kitware.com/cmake/cmake/issues/17457 @@ -16,7 +16,7 @@ if (XCODE OR XCODE_VERSION) if (NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/dummy.c") file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.c" "") endif () - target_sources(_base58 PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/dummy.c") + target_sources(_base-x PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/dummy.c") endif () -add_library(ch_contrib::base58 ALIAS _base58) \ No newline at end of file +add_library(ch_contrib::base-x ALIAS _base-x) \ No newline at end of file diff --git a/contrib/base-x/.gitignore b/contrib/base-x/.gitignore new file mode 100644 index 00000000000..b63b40c8b71 --- /dev/null +++ b/contrib/base-x/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +test +*.o +*.dSYM \ No newline at end of file diff --git a/contrib/base-x/.travis.yml b/contrib/base-x/.travis.yml new file mode 100755 index 00000000000..f55132e614f --- /dev/null +++ b/contrib/base-x/.travis.yml @@ -0,0 +1,36 @@ +sudo: false + +language: cpp + +compiler: + - clang + - gcc + +addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.8 + packages: + - g++-6 + - clang-3.8 + +install: + - if [ "$CXX" = "g++" ]; then export CXX="g++-6"; fi + - if [ "$CXX" == "clang++" ]; then export CXX="clang++-3.8"; fi + - sudo apt-get install -qq git cmake + +before_script: + # not much better than git submodules, but there was never a need/want for the repo in this repo + - cd .. + - git clone https://github.com/google/googletest.git + - cd googletest + - git reset --hard d62d6c6556d96dda924382547c54a4b3afedb22c + - cmake CMakeLists.txt + - make + + - cd ../base-x/tests + - make + +script: + - make run diff --git a/contrib/base-x/LICENSE b/contrib/base-x/LICENSE new file mode 100644 index 00000000000..f7b3408abac --- /dev/null +++ b/contrib/base-x/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/contrib/base-x/README.md b/contrib/base-x/README.md new file mode 100644 index 00000000000..5dc4a068043 --- /dev/null +++ b/contrib/base-x/README.md @@ -0,0 +1,97 @@ +# base-x [![License][license-img]][license-url] [![GitHub Stars][stars-img]][stars-url] [![GitHub Forks][forks-img]][forks-url] [![GitHub Watchers][watchers-img]][watchers-url] [![Tweet][tweet-img]][tweet-url] + +[![Build Status](https://travis-ci.org/Kronuz/base-x.svg?branch=master)](https://travis-ci.org/Kronuz/base-x) + + +### BaseX encoder / decoder for C++ + +This is a fast base encoder / decoder of any given alphabet. + + +#### Example + +``` cpp +// example.cc +// g++ -std=c++14 -o example example.cc + +#include +#include "base_x.hh" + +int main() { + auto encoded = Base58::base58().encode("Hello world!"); + + std::cout << encoded << std::endl; + // => 1LDlk6QWOejX6rPrJ + + return 0; +} +``` + + +#### Compilation + +* g++ and clang++ are supported. +* C++14 is required. + + +### Alphabets + +See below for a list of commonly recognized alphabets, and their respective base. + +Base | Factory | Alphabet +-----|---------------------|------------- + 2 | base2::base2() | `01` + 2 | base8::base8() | `01234567` + 11 | bas11::bas11() | `0123456789a` + 16 | base16::base16() | `0123456789abcdef` + 32 | base32::base32() | `0123456789ABCDEFGHJKMNPQRSTVWXYZ` + 36 | base36::base36() | `0123456789abcdefghijklmnopqrstuvwxyz` + 58 | base58::base58() | `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz` + 58 | base58::bitcoin() | `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz` + 58 | base58::gmp() | `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv` + 58 | base58::ripple() | `rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz` + 58 | base58::flickr() | `123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ` + 62 | base62::base62() | `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz` + 62 | base62::inverted() | `0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ` + 64 | base64::base64() | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/` + 64 | base64::urlsafe() | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_` + 66 | base66::base66() | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~` + + +### How it works + +It encodes octet arrays by doing long divisions on all significant digits in the +array, creating a representation of that number in the new base. + +**If you need standard hex encoding, or base64 encoding, this module is NOT +appropriate.** + + +## Author +[**German Mendez Bravo (Kronuz)**](https://kronuz.io/) + +[![Follow on GitHub][github-follow-img]][github-follow-url] +[![Follow on Twitter][twitter-follow-img]][twitter-follow-url] + + +## License + +MIT License. See [LICENSE](LICENSE) for details. + +Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com + + +[license-url]: https://github.com/Kronuz/base-x/blob/master/LICENSE +[license-img]: https://img.shields.io/github/license/Kronuz/base-x.svg +[stars-url]: https://github.com/Kronuz/base-x/stargazers +[stars-img]: https://img.shields.io/github/stars/Kronuz/base-x.svg?style=social&label=Stars +[forks-url]: https://github.com/Kronuz/base-x/network/members +[forks-img]: https://img.shields.io/github/forks/Kronuz/base-x.svg?style=social&label=Forks +[watchers-url]: https://github.com/Kronuz/base-x/watchers +[watchers-img]: https://img.shields.io/github/watchers/Kronuz/base-x.svg?style=social&label=Watchers +[tweet-img]: https://img.shields.io/twitter/url/https/github.com/Kronuz/base-x.svg?style=social +[tweet-url]: https://twitter.com/intent/tweet?text=Base-X+encoding%2Fdecoding+for+modern+C%2B%2B+by+%40germbravo:&url=https%3A%2F%2Fgithub.com%2FKronuz%2Fbase-x +[github-follow-url]: https://github.com/Kronuz +[github-follow-img]: https://img.shields.io/github/followers/Kronuz.svg?style=social&label=Follow +[twitter-follow-url]: https://twitter.com/intent/follow?screen_name=germbravo +[twitter-follow-img]: https://img.shields.io/twitter/follow/germbravo.svg?style=social&label=Follow diff --git a/contrib/base-x/base_x.hh b/contrib/base-x/base_x.hh new file mode 100644 index 00000000000..fdc06fead2f --- /dev/null +++ b/contrib/base-x/base_x.hh @@ -0,0 +1,614 @@ +/* +base_x.hh +BaseX encoder / decoder for C++ + +Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#ifndef __BASE_X__H_ +#define __BASE_X__H_ + +#include // for std::find_if, std::reverse +#include // for std::invalid_argument +#include // for std::string +#include // for std::enable_if_t + +#include "uinteger_t.hh" + + +class BaseX { + char _chr[256]; + int _ord[256]; + + const int size; + const int alphabet_base; + const unsigned base_size; + const unsigned alphabet_base_bits; + const unsigned block_size; + const uinteger_t::digit alphabet_base_mask; + const unsigned padding_size; + const char padding; + const int flags; + + constexpr char chr(unsigned char ord) const { + return _chr[ord]; + } + + constexpr int ord(unsigned char chr) const { + return _ord[chr]; + } + +public: + static constexpr int ignore_case = (1 << 0); + static constexpr int with_checksum = (1 << 1); + static constexpr int with_check = (1 << 2); + static constexpr int block_padding = (1 << 3); + + template + constexpr BaseX(int flgs, const char (&alphabet)[alphabet_size1], const char (&extended)[extended_size1], const char (&padding_string)[padding_size1], const char (&translate)[translate_size1]) : + _chr(), + _ord(), + size(alphabet_size1 - 1 + extended_size1 - 1), + alphabet_base(alphabet_size1 - 1), + base_size(uinteger_t::base_size(alphabet_base)), + alphabet_base_bits(uinteger_t::base_bits(alphabet_base)), + block_size((flgs & BaseX::block_padding) ? alphabet_base_bits : 0), + alphabet_base_mask(alphabet_base - 1), + padding_size(padding_size1 - 1), + padding(padding_size ? padding_string[0] : '\0'), + flags(flgs) + { + for (int c = 0; c < 256; ++c) { + _chr[c] = 0; + _ord[c] = alphabet_base; + } + for (int cp = 0; cp < alphabet_base; ++cp) { + auto ch = alphabet[cp]; + _chr[cp] = ch; + ASSERT(_ord[(unsigned char)ch] == alphabet_base); // Duplicate character in the alphabet + _ord[(unsigned char)ch] = cp; + if (flags & BaseX::ignore_case) { + if (ch >= 'A' && ch <='Z') { + _ord[(unsigned char)ch - 'A' + 'a'] = cp; + } else if (ch >= 'a' && ch <='z') { + _ord[(unsigned char)ch - 'a' + 'A'] = cp; + } + } + } + for (std::size_t i = 0; i < extended_size1 - 1; ++i) { + auto ch = extended[i]; + auto cp = alphabet_base + i; + _chr[cp] = ch; + ASSERT(_ord[(unsigned char)ch] == alphabet_base); // Duplicate character in the extended alphabet + _ord[(unsigned char)ch] = cp; + if (flags & BaseX::ignore_case) { + if (ch >= 'A' && ch <='Z') { + _ord[(unsigned char)ch - 'A' + 'a'] = cp; + } else if (ch >= 'a' && ch <='z') { + _ord[(unsigned char)ch - 'a' + 'A'] = cp; + } + } + } + int cp = -1; + for (std::size_t i = 0; i < translate_size1 - 1; ++i) { + auto ch = translate[i]; + auto ncp = _ord[(unsigned char)ch]; + if (ncp >= alphabet_base) { + ASSERT(_ord[(unsigned char)ch] == alphabet_base); // Invalid translation character + _ord[(unsigned char)ch] = cp; + if (flags & BaseX::ignore_case) { + if (ch >= 'A' && ch <='Z') { + _ord[(unsigned char)ch - 'A' + 'a'] = cp; + } else if (ch >= 'a' && ch <='z') { + _ord[(unsigned char)ch - 'a' + 'A'] = cp; + } + } + } else { + cp = ncp; + } + } + } + + // Get string representation of value + template ::value>> + void encode(Result& result, const uinteger_t& input) const { + std::size_t bp = 0; + uinteger_t quotient; + if (block_size) { + bp = ((input.bits() + 7) & 0xf8) % block_size; + bp = bp ? (block_size - bp) % block_size : 0; + if (bp) { + quotient = input << bp; + } + } + const uinteger_t& num = bp ? quotient : input; + auto num_sz = num.size(); + if (num_sz) { + int sum = 0; + result.reserve(num_sz * base_size); + if (alphabet_base_bits) { + std::size_t shift = 0; + auto ptr = reinterpret_cast(num.data()); + uinteger_t::digit v = *ptr++; + v <<= uinteger_t::half_digit_bits; + for (auto i = num_sz * 2 - 1; i; --i) { + v >>= uinteger_t::half_digit_bits; + v |= (static_cast(*ptr++) << uinteger_t::half_digit_bits); + do { + auto d = static_cast((v >> shift) & alphabet_base_mask); + result.push_back(chr(d)); + shift += alphabet_base_bits; + sum += d; + } while (shift <= uinteger_t::half_digit_bits); + shift -= uinteger_t::half_digit_bits; + } + v >>= (shift + uinteger_t::half_digit_bits); + while (v) { + auto d = static_cast(v & alphabet_base_mask); + result.push_back(chr(d)); + v >>= alphabet_base_bits; + sum += d; + } + auto s = chr(0); + auto rit_f = std::find_if(result.rbegin(), result.rend(), [s](const char& c) { return c != s; }); + result.resize(result.rend() - rit_f); // shrink + } else { + uinteger_t uint_base = alphabet_base; + if (!bp) { + quotient = num; + } + do { + auto r = quotient.divmod(uint_base); + auto d = static_cast(r.second); + result.push_back(chr(d)); + quotient = std::move(r.first); + sum += d; + } while (quotient); + } + std::reverse(result.begin(), result.end()); + if (padding_size) { + Result p; + p.resize((padding_size - (result.size() % padding_size)) % padding_size, padding); + result.append(p); + } + if (flags & BaseX::with_check) { + auto chk = static_cast(num % size); + result.push_back(chr(chk)); + sum += chk; + } + if (flags & BaseX::with_checksum) { + auto sz = result.size(); + sz = (sz + sz / size) % size; + sum += sz; + sum = (size - sum % size) % size; + result.push_back(chr(sum)); + } + } else { + result.push_back(chr(0)); + } + } + + template ::value>> + Result encode(const uinteger_t& num) const { + Result result; + encode(result, num); + return result; + } + + template ::value>> + void encode(Result& result, const unsigned char* decoded, std::size_t decoded_size) const { + encode(result, uinteger_t(decoded, decoded_size, 256)); + } + + template ::value>> + Result encode(const unsigned char* decoded, std::size_t decoded_size) const { + Result result; + encode(result, uinteger_t(decoded, decoded_size, 256)); + return result; + } + + template ::value>> + void encode(Result& result, const char* decoded, std::size_t decoded_size) const { + encode(result, uinteger_t(decoded, decoded_size, 256)); + } + + template ::value>> + Result encode(const char* decoded, std::size_t decoded_size) const { + Result result; + encode(result, uinteger_t(decoded, decoded_size, 256)); + return result; + } + + template ::value>> + void encode(Result& result, T (&s)[N]) const { + encode(result, s, N - 1); + } + + template ::value>> + Result encode(T (&s)[N]) const { + Result result; + encode(result, s, N - 1); + return result; + } + + template ::value>> + void encode(Result& result, const std::string& binary) const { + return encode(result, binary.data(), binary.size()); + } + + template ::value>> + Result encode(const std::string& binary) const { + Result result; + encode(result, binary.data(), binary.size()); + return result; + } + + void decode(uinteger_t& result, const char* encoded, std::size_t encoded_size) const { + result = 0; + int sum = 0; + int sumsz = 0; + int direction = 1; + + auto sz = encoded_size; + if (flags & BaseX::with_checksum) --sz; + if (flags & BaseX::with_check) --sz; + + int bp = 0; + + if (alphabet_base_bits) { + for (; sz; --sz, encoded += direction) { + auto c = *encoded; + if (c == padding) break; + auto d = ord(static_cast(c)); + if (d < 0) continue; // ignored character + if (d >= alphabet_base) { + throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); + } + sum += d; + ++sumsz; + result = (result << alphabet_base_bits) | d; + bp += block_size; + } + } else { + uinteger_t uint_base = alphabet_base; + for (; sz; --sz, encoded += direction) { + auto c = *encoded; + if (c == padding) break; + auto d = ord(static_cast(c)); + if (d < 0) continue; // ignored character + if (d >= alphabet_base) { + throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); + } + sum += d; + ++sumsz; + result = (result * uint_base) + d; + bp += block_size; + } + } + + for (; sz && *encoded == padding; --sz, ++encoded); + + result >>= (bp & 7); + + if (flags & BaseX::with_check) { + auto c = *encoded; + auto d = ord(static_cast(c)); + if (d < 0 || d >= size) { + throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); + } + auto chk = static_cast(result % size); + if (d != chk) { + throw std::invalid_argument("Error: Invalid check"); + } + sum += chk; + ++sumsz; + ++encoded; + } + + if (flags & BaseX::with_checksum) { + auto c = *encoded; + auto d = ord(static_cast(c)); + if (d < 0 || d >= size) { + throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); + } + sum += d; + sum += (sumsz + sumsz / size) % size; + if (sum % size) { + throw std::invalid_argument("Error: Invalid checksum"); + } + } + } + + template ::value>> + void decode(Result& result, const char* encoded, std::size_t encoded_size) const { + uinteger_t num; + decode(num, encoded, encoded_size); + result = num.template str(256); + } + + template ::value or std::is_integral::value>> + Result decode(const char* encoded, std::size_t encoded_size) const { + Result result; + decode(result, encoded, encoded_size); + return result; + } + + template ::value or std::is_integral::value>> + void decode(Result& result, T (&s)[N]) const { + decode(result, s, N - 1); + } + + template ::value or std::is_integral::value>> + Result decode(T (&s)[N]) const { + Result result; + decode(result, s, N - 1); + return result; + } + + template ::value or std::is_integral::value>> + void decode(Result& result, const std::string& encoded) const { + decode(result, encoded.data(), encoded.size()); + } + + template ::value or std::is_integral::value>> + Result decode(const std::string& encoded) const { + Result result; + decode(result, encoded.data(), encoded.size()); + return result; + } + + bool is_valid(const char* encoded, std::size_t encoded_size) const { + int sum = 0; + int sumsz = 0; + if (flags & BaseX::with_checksum) --sumsz; + for (; encoded_size; --encoded_size, ++encoded) { + auto d = ord(static_cast(*encoded)); + if (d < 0) continue; // ignored character + if (d >= alphabet_base) { + return false; + } + sum += d; + ++sumsz; + } + if (flags & BaseX::with_checksum) { + sum += (sumsz + sumsz / size) % size; + if (sum % size) { + return false; + } + } + return true; + } + + template + bool is_valid(T (&s)[N]) const { + return is_valid(s, N - 1); + } + + bool is_valid(const std::string& encoded) const { + return is_valid(encoded.data(), encoded.size()); + } +}; + +// base2 +struct Base2 { + static const BaseX& base2() { + static constexpr BaseX encoder(0, "01", "", "", ""); + return encoder; + } + static const BaseX& base2chk() { + static constexpr BaseX encoder(BaseX::with_checksum, "01", "", "", ""); + return encoder; + } +}; + +// base8 +struct Base8 { + static const BaseX& base8() { + static constexpr BaseX encoder(0, "01234567", "", "", ""); + return encoder; + } + static const BaseX& base8chk() { + static constexpr BaseX encoder(BaseX::with_checksum, "01234567", "", "", ""); + return encoder; + } +}; + +// base11 +struct Base11 { + static const BaseX& base11() { + static constexpr BaseX encoder(BaseX::ignore_case, "0123456789a", "", "", ""); + return encoder; + } + static const BaseX& base11chk() { + static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789a", "", "", ""); + return encoder; + } +}; + +// base16 +struct Base16 { + static const BaseX& base16() { + static constexpr BaseX encoder(BaseX::ignore_case, "0123456789abcdef", "", "", ""); + return encoder; + } + static const BaseX& base16chk() { + static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789abcdef", "", "", ""); + return encoder; + } + static const BaseX& rfc4648() { + static constexpr BaseX encoder(0, "0123456789ABCDEF", "", "", ""); + return encoder; + } +}; + +// base32 +struct Base32 { + static const BaseX& base32() { + static constexpr BaseX encoder(BaseX::ignore_case, "0123456789abcdefghijklmnopqrstuv", "", "", ""); + return encoder; + } + static const BaseX& base32chk() { + static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789abcdefghijklmnopqrstuv", "", "", ""); + return encoder; + } + static const BaseX& crockford() { + static constexpr BaseX encoder(BaseX::ignore_case, "0123456789ABCDEFGHJKMNPQRSTVWXYZ", "", "", "-0O1IL"); + return encoder; + } + static const BaseX& crockfordchk() { + static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_check, "0123456789ABCDEFGHJKMNPQRSTVWXYZ", "*~$=U", "", "-0O1IL"); + return encoder; + } + static const BaseX& rfc4648() { + static constexpr BaseX encoder(BaseX::block_padding, "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", "", "========", "\n\r"); + return encoder; + } + static const BaseX& rfc4648hex() { + static constexpr BaseX encoder(BaseX::block_padding, "0123456789ABCDEFGHIJKLMNOPQRSTUV", "", "========", "\n\r"); + return encoder; + } +}; + +// base36 +struct Base36 { + static const BaseX& base36() { + static constexpr BaseX encoder(BaseX::ignore_case, "0123456789abcdefghijklmnopqrstuvwxyz", "", "", ""); + return encoder; + } + static const BaseX& base36chk() { + static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789abcdefghijklmnopqrstuvwxyz", "", "", ""); + return encoder; + } +}; + +// base58 +struct Base58 { + static const BaseX& base58() { + static constexpr BaseX encoder(0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv", "", "", ""); + return encoder; + } + static const BaseX& base58chk() { + static constexpr BaseX encoder(BaseX::with_checksum, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv", "", "", ""); + return encoder; + } + static const BaseX& bitcoin() { + static constexpr BaseX encoder(0, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", "", "", ""); + return encoder; + } + static const BaseX& bitcoinchk() { + static constexpr BaseX encoder(BaseX::with_checksum, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", "", "", ""); + return encoder; + } + static const BaseX& ripple() { + static constexpr BaseX encoder(0, "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", "", "", ""); + return encoder; + } + static const BaseX& ripplechk() { + static constexpr BaseX encoder(BaseX::with_checksum, "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", "", "", ""); + return encoder; + } + static const BaseX& flickr() { + static constexpr BaseX encoder(0, "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ", "", "", ""); + return encoder; + } + static const BaseX& flickrchk() { + static constexpr BaseX encoder(BaseX::with_checksum, "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ", "", "", ""); + return encoder; + } +}; + +// base59 +struct Base59 { + static const BaseX& base59() { + static constexpr BaseX encoder(0, "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ", "", "", "l1IO0"); + return encoder; + } + static const BaseX& base59chk() { + static constexpr BaseX encoder(BaseX::with_checksum, "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ", "", "", "l1IO0"); + return encoder; + } + static const BaseX& dubaluchk() { + static constexpr BaseX encoder(BaseX::with_checksum, "zy9MalDxwpKLdvW2AtmscgbYUq6jhP7E53TiXenZRkVCrouBH4GSQf8FNJO", "", "", "-l1IO0"); + return encoder; + } +}; + +// base62 +struct Base62 { + static const BaseX& base62() { + static constexpr BaseX encoder(0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "", "", ""); + return encoder; + } + static const BaseX& base62chk() { + static constexpr BaseX encoder(BaseX::with_checksum, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "", "", ""); + return encoder; + } + static const BaseX& inverted() { + static constexpr BaseX encoder(0, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "", ""); + return encoder; + } + static const BaseX& invertedchk() { + static constexpr BaseX encoder(BaseX::with_checksum, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "", ""); + return encoder; + } +}; + +// base64 +struct Base64 { + static const BaseX& base64() { + static constexpr BaseX encoder(0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "", "", ""); + return encoder; + } + static const BaseX& base64chk() { + static constexpr BaseX encoder(BaseX::with_checksum, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "", "", ""); + return encoder; + } + static const BaseX& url() { + static constexpr BaseX encoder(0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "", "", ""); + return encoder; + } + static const BaseX& urlchk() { + static constexpr BaseX encoder(BaseX::with_checksum, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "", "", ""); + return encoder; + } + static const BaseX& rfc4648() { + static constexpr BaseX encoder(BaseX::block_padding, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "", "====", "\n\r"); + return encoder; + } + static const BaseX& rfc4648url() { + static constexpr BaseX encoder(BaseX::block_padding, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "", "====", "\n\r"); + return encoder; + } +}; + +// base66 +struct Base66 { + static const BaseX& base66() { + static constexpr BaseX encoder(0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~", "", "", ""); + return encoder; + } + static const BaseX& base66chk() { + static constexpr BaseX encoder(BaseX::with_checksum, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~", "", "", ""); + return encoder; + } +}; + +#endif diff --git a/contrib/base-x/tests/test.cc b/contrib/base-x/tests/test.cc new file mode 100644 index 00000000000..d47d211173e --- /dev/null +++ b/contrib/base-x/tests/test.cc @@ -0,0 +1,30 @@ +/* +The MIT License (MIT) + +Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#include + +int main(int argc, char * argv[]){ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/contrib/base-x/tests/testcases/tests.cc b/contrib/base-x/tests/testcases/tests.cc new file mode 100644 index 00000000000..c5bebfc8288 --- /dev/null +++ b/contrib/base-x/tests/testcases/tests.cc @@ -0,0 +1,359 @@ +/* +The MIT License (MIT) + +Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#include + +#include "base_x.hh" + + +static constexpr BaseX test_base2(0, "01", "", "", ""); +static constexpr BaseX test_base16(0, "0123456789abcdef", "", "", ""); +static constexpr BaseX test_base58(0, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", "", "", ""); + + +TEST(UUID, Encode) { + EXPECT_EQ(Base62::base62().encode("\330\105\140\310\23\117\21\346\241\342\64\66\73\322\155\256"), "6a630O1jrtMjCrQDyG3D3O"); + EXPECT_EQ(Base58::bitcoin().encode("\330\105\140\310\23\117\21\346\241\342\64\66\73\322\155\256"), "ThxCy1Ek2q6UhWQhj9CK1o"); + EXPECT_EQ(Base58::base58().encode("\330\105\140\310\23\117\21\346\241\342\64\66\73\322\155\256"), "QetBu0Dh1m5ReTNeg8BI0k"); +} + +TEST(BaseX, checksums) { + EXPECT_EQ(Base64::base64().encode("Hello world!"), "SGVsbG8gd29ybGQh"); + EXPECT_EQ(Base64::base64chk().encode("Hello world!"), "SGVsbG8gd29ybGQhG"); + + EXPECT_EQ(Base64::base64().decode("SGVsbG8gd29ybGQh"), "Hello world!"); + EXPECT_EQ(Base64::base64chk().decode("SGVsbG8gd29ybGQhG"), "Hello world!"); + + EXPECT_EQ(Base62::base62().encode("Hello world!"), "T8dgcjRGuYUueWht"); + EXPECT_EQ(Base62::base62chk().encode("Hello world!"), "T8dgcjRGuYUueWhtE"); + + EXPECT_EQ(Base62::base62().decode("T8dgcjRGuYUueWht"), "Hello world!"); + EXPECT_EQ(Base62::base62chk().decode("T8dgcjRGuYUueWhtE"), "Hello world!"); + + EXPECT_EQ(Base62::base62chk().is_valid("T8dgcjRGuYUueWhtE"), true); + EXPECT_EQ(Base62::base62chk().is_valid("Some random text!"), false); +} + +TEST(base16, Encoder) { + EXPECT_EQ(Base16::base16().encode("A"), "41"); + EXPECT_EQ(Base16::base16().encode("AB"), "4142"); + EXPECT_EQ(Base16::base16().encode("ABC"), "414243"); + EXPECT_EQ(Base16::base16().encode("ABCD"), "41424344"); + EXPECT_EQ(Base16::base16().encode("ABCDE"), "4142434445"); + EXPECT_EQ(Base16::base16().encode("ABCDEF"), "414243444546"); + + EXPECT_EQ(Base16::rfc4648().encode("A"), "41"); + EXPECT_EQ(Base16::rfc4648().encode("AB"), "4142"); + EXPECT_EQ(Base16::rfc4648().encode("ABC"), "414243"); + EXPECT_EQ(Base16::rfc4648().encode("ABCD"), "41424344"); + EXPECT_EQ(Base16::rfc4648().encode("ABCDE"), "4142434445"); + EXPECT_EQ(Base16::rfc4648().encode("ABCDEF"), "414243444546"); +} + +TEST(base16, Decoder) { + EXPECT_EQ(Base16::base16().decode("41"), "A"); + EXPECT_EQ(Base16::base16().decode("4142"), "AB"); + EXPECT_EQ(Base16::base16().decode("414243"), "ABC"); + EXPECT_EQ(Base16::base16().decode("41424344"), "ABCD"); + EXPECT_EQ(Base16::base16().decode("4142434445"), "ABCDE"); + EXPECT_EQ(Base16::base16().decode("414243444546"), "ABCDEF"); + + EXPECT_EQ(Base16::rfc4648().decode("41"), "A"); + EXPECT_EQ(Base16::rfc4648().decode("4142"), "AB"); + EXPECT_EQ(Base16::rfc4648().decode("414243"), "ABC"); + EXPECT_EQ(Base16::rfc4648().decode("41424344"), "ABCD"); + EXPECT_EQ(Base16::rfc4648().decode("4142434445"), "ABCDE"); + EXPECT_EQ(Base16::rfc4648().decode("414243444546"), "ABCDEF"); +} + +TEST(base32, Encoder) { + // Note base64() encoding is NOT the same as the standard (rfc4648) + EXPECT_EQ(Base32::base32().encode("A"), "21"); + EXPECT_EQ(Base32::base32().encode("AB"), "ga2"); + EXPECT_EQ(Base32::base32().encode("ABC"), "42gi3"); + EXPECT_EQ(Base32::base32().encode("ABCD"), "10k4gq4"); + EXPECT_EQ(Base32::base32().encode("ABCDE"), "85146h25"); + EXPECT_EQ(Base32::base32().encode("ABCDEF"), "21891k8ha6"); + EXPECT_EQ(Base32::base32().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "21891k8ha68t44iiib9h6ksjqga5956l2lapblgmaq"); + + EXPECT_EQ(Base32::rfc4648().encode("A"), "IE======"); + EXPECT_EQ(Base32::rfc4648().encode("AB"), "IFBA===="); + EXPECT_EQ(Base32::rfc4648().encode("ABC"), "IFBEG==="); + EXPECT_EQ(Base32::rfc4648().encode("ABCD"), "IFBEGRA="); + EXPECT_EQ(Base32::rfc4648().encode("ABCDE"), "IFBEGRCF"); + EXPECT_EQ(Base32::rfc4648().encode("ABCDEF"), "IFBEGRCFIY======"); + EXPECT_EQ(Base32::rfc4648().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "IFBEGRCFIZDUQSKKJNGE2TSPKBIVEU2UKVLFOWCZLI======"); + + EXPECT_EQ(Base32::crockford().encode(519571), "FVCK"); + EXPECT_EQ(Base32::crockfordchk().encode(1234), "16JD"); + EXPECT_EQ(Base32::crockfordchk().encode("Hello World"), "28CNP6RVS0AXQQ4V348"); +} + +TEST(base32, Decoder) { + // Note base64() encoding is NOT the same as the standard (rfc4648) + EXPECT_EQ(Base32::base32().decode("21"), "A"); + EXPECT_EQ(Base32::base32().decode("ga2"), "AB"); + EXPECT_EQ(Base32::base32().decode("42gi3"), "ABC"); + EXPECT_EQ(Base32::base32().decode("10k4gq4"), "ABCD"); + EXPECT_EQ(Base32::base32().decode("85146h25"), "ABCDE"); + EXPECT_EQ(Base32::base32().decode("21891k8ha6"), "ABCDEF"); + EXPECT_EQ(Base32::base32().decode("21891k8ha68t44iiib9h6ksjqga5956l2lapblgmaq"), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + + EXPECT_EQ(Base32::rfc4648().decode("IE======"), "A"); + EXPECT_EQ(Base32::rfc4648().decode("IFBA===="), "AB"); + EXPECT_EQ(Base32::rfc4648().decode("IFBEG==="), "ABC"); + EXPECT_EQ(Base32::rfc4648().decode("IFBEGRA="), "ABCD"); + EXPECT_EQ(Base32::rfc4648().decode("IFBEGRCF"), "ABCDE"); + EXPECT_EQ(Base32::rfc4648().decode("IFBEGRCFIY======"), "ABCDEF"); + EXPECT_EQ(Base32::rfc4648().decode("IFBEGRCFIZDUQSKKJNGE2TSPKBIVEU2UKVLFOWCZLI======"), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + + EXPECT_EQ(Base32::crockford().decode("FVCK"), 519571); + EXPECT_EQ(Base32::crockfordchk().is_valid("16JD"), true); + EXPECT_EQ(Base32::crockfordchk().decode("16JD"), 1234); + + EXPECT_EQ(Base32::crockfordchk().decode("2-8cn-p6r-vso-axq-q4v-348"), "Hello World"); +} + +TEST(base58, Encoder) { + EXPECT_EQ(Base58::base58().decode("1TFvCj"), 987654321); + EXPECT_EQ(Base58::base58().encode(987654321), "1TFvCj"); + EXPECT_EQ(Base58::base58().encode("Hello world!"), "1LDlk6QWOejX6rPrJ"); + EXPECT_EQ(Base58::bitcoin().encode("Hello world!"), "2NEpo7TZRhna7vSvL"); +} + +TEST(base62, Encoder) { + EXPECT_EQ(Base62::base62().decode("14q60P"), 987654321); + EXPECT_EQ(Base62::base62().encode(987654321), "14q60P"); + EXPECT_EQ(Base62::base62().encode("Hello world!"), "T8dgcjRGuYUueWht"); + EXPECT_EQ(Base62::inverted().encode("Hello world!"), "t8DGCJrgUyuUEwHT"); +} + +TEST(base64, Encoder) { + // Note Base64 encoding is NOT the same as the standard (rfc4648) + EXPECT_EQ(Base64::base64().encode("A"), "BB"); + EXPECT_EQ(Base64::base64().encode("AB"), "EFC"); + EXPECT_EQ(Base64::base64().encode("ABC"), "QUJD"); + EXPECT_EQ(Base64::base64().encode("ABCD"), "BBQkNE"); + EXPECT_EQ(Base64::base64().encode("ABCDE"), "EFCQ0RF"); + EXPECT_EQ(Base64::base64().encode("ABCDEF"), "QUJDREVG"); + EXPECT_EQ(Base64::base64().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "EFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla"); + + EXPECT_EQ(Base64::rfc4648().encode("A"), "QQ=="); + EXPECT_EQ(Base64::rfc4648().encode("AB"), "QUI="); + EXPECT_EQ(Base64::rfc4648().encode("ABC"), "QUJD"); + EXPECT_EQ(Base64::rfc4648().encode("ABCD"), "QUJDRA=="); + EXPECT_EQ(Base64::rfc4648().encode("ABCDE"), "QUJDREU="); + EXPECT_EQ(Base64::rfc4648().encode("ABCDEF"), "QUJDREVG"); + EXPECT_EQ(Base64::rfc4648().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo="); +} + +TEST(base64, Decoder) { + // Note Base64 encoding is NOT the same as the standard (rfc4648) + EXPECT_EQ(Base64::base64().decode("BB"), "A"); + EXPECT_EQ(Base64::base64().decode("EFC"), "AB"); + EXPECT_EQ(Base64::base64().decode("QUJD"), "ABC"); + EXPECT_EQ(Base64::base64().decode("BBQkNE"), "ABCD"); + EXPECT_EQ(Base64::base64().decode("EFCQ0RF"), "ABCDE"); + EXPECT_EQ(Base64::base64().decode("QUJDREVG"), "ABCDEF"); + EXPECT_EQ(Base64::base64().decode("EFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla"), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + + EXPECT_EQ(Base64::rfc4648().decode("QQ=="), "A"); + EXPECT_EQ(Base64::rfc4648().decode("QUI="), "AB"); + EXPECT_EQ(Base64::rfc4648().decode("QUJD"), "ABC"); + EXPECT_EQ(Base64::rfc4648().decode("QUJDRA=="), "ABCD"); + EXPECT_EQ(Base64::rfc4648().decode("QUJDREU="), "ABCDE"); + EXPECT_EQ(Base64::rfc4648().decode("QUJDREVG"), "ABCDEF"); + EXPECT_EQ(Base64::rfc4648().decode("QUJDREVG\nR0hJSktM\nTU5PUFFS\nU1RVVldY\nWVo="), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); +} + +TEST(base58, ShouldEncodeAndDecodeIntegers) { + auto data = 987654321; + + auto gmpEncoded = Base58::base58().encode(data); + auto bitcoinEncoded = Base58::bitcoin().encode(data); + auto rippleEncoded = Base58::ripple().encode(data); + auto flickrEncoded = Base58::flickr().encode(data); + + EXPECT_EQ(gmpEncoded, "1TFvCj"); + EXPECT_EQ(bitcoinEncoded, "2WGzDn"); + EXPECT_EQ(rippleEncoded, "pWGzD8"); + EXPECT_EQ(flickrEncoded, "2vgZdM"); + + auto gmpDecoded = Base58::base58().decode(gmpEncoded); + auto bitcoinDecoded = Base58::bitcoin().decode(bitcoinEncoded); + auto rippleDecoded = Base58::ripple().decode(rippleEncoded); + auto flickrDecoded = Base58::flickr().decode(flickrEncoded); + + EXPECT_EQ(gmpDecoded, data); + EXPECT_EQ(bitcoinDecoded, data); + EXPECT_EQ(rippleDecoded, data); + EXPECT_EQ(flickrDecoded, data); + + auto encoded = Base58::base58().encode(data); + auto decoded = Base58::base58().decode(encoded); + + EXPECT_EQ(decoded, data); +} + +TEST(base58, LongText) { + auto data = "Lorem ipsum dolor consectetur."; + + auto gmpEncoded = Base58::base58().encode(data); + auto bitcoinEncoded = Base58::bitcoin().encode(data); + auto rippleEncoded = Base58::ripple().encode(data); + auto flickrEncoded = Base58::flickr().encode(data); + + EXPECT_EQ(gmpEncoded, "FIHZQEpJ739QdqChX1PkgTBqP1FaDgJWQiGvY92YA"); + EXPECT_EQ(bitcoinEncoded, "GKJcTFtL84ATguDka2SojWCuS2GdEjLZTmHzbA3bB"); + EXPECT_EQ(rippleEncoded, "GKJcTEtL3hwTguDk2pSojWUuSpGdNjLZTmHzbwsbB"); + EXPECT_EQ(flickrEncoded, "gjiBsfTk84asFUdKz2rNJvcUr2gCeJkysLhZAa3Ab"); + + auto gmpDecoded = Base58::base58().decode(gmpEncoded); + auto bitcoinDecoded = Base58::bitcoin().decode(bitcoinEncoded); + auto rippleDecoded = Base58::ripple().decode(rippleEncoded); + auto flickrDecoded = Base58::flickr().decode(flickrEncoded); + + EXPECT_EQ(gmpDecoded, data); + EXPECT_EQ(bitcoinDecoded, data); + EXPECT_EQ(rippleDecoded, data); + EXPECT_EQ(flickrDecoded, data); +} + +TEST(base58, Tests) { + EXPECT_EQ(test_base2.encode(uinteger_t("000f", 16)), "1111"); + // EXPECT_EQ(test_base2.encode(uinteger_t("00ff", 16)), "011111111"); // ->> + EXPECT_EQ(test_base2.encode(uinteger_t("00ff", 16)), "11111111"); + EXPECT_EQ(test_base2.encode(uinteger_t("0fff", 16)), "111111111111"); + EXPECT_EQ(test_base2.encode(uinteger_t("ff00ff00", 16)), "11111111000000001111111100000000"); + // EXPECT_EQ(test_base16.encode(uinteger_t("0000000f", 16)), "000f"); // ->> + EXPECT_EQ(test_base16.encode(uinteger_t("0000000f", 16)), "f"); + // EXPECT_EQ(test_base16.encode(uinteger_t("000fff", 16)), "0fff"); // ->> + EXPECT_EQ(test_base16.encode(uinteger_t("000fff", 16)), "fff"); + EXPECT_EQ(test_base16.encode(uinteger_t("ffff", 16)), "ffff"); + // EXPECT_EQ(test_base58.encode(uinteger_t("", 16)), ""); // ->> + EXPECT_EQ(test_base58.encode(uinteger_t("", 16)), "1"); + EXPECT_EQ(test_base58.encode(uinteger_t("61", 16)), "2g"); + EXPECT_EQ(test_base58.encode(uinteger_t("626262", 16)), "a3gV"); + EXPECT_EQ(test_base58.encode(uinteger_t("636363", 16)), "aPEr"); + EXPECT_EQ(test_base58.encode(uinteger_t("73696d706c792061206c6f6e6720737472696e67", 16)), "2cFupjhnEsSn59qHXstmK2ffpLv2"); + // EXPECT_EQ(test_base58.encode(uinteger_t("00eb15231dfceb60925886b67d065299925915aeb172c06647", 16)), "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L"); // ->> + EXPECT_EQ(test_base58.encode(uinteger_t("00eb15231dfceb60925886b67d065299925915aeb172c06647", 16)), "NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L"); + EXPECT_EQ(test_base58.encode(uinteger_t("516b6fcd0f", 16)), "ABnLTmg"); + EXPECT_EQ(test_base58.encode(uinteger_t("bf4f89001e670274dd", 16)), "3SEo3LWLoPntC"); + EXPECT_EQ(test_base58.encode(uinteger_t("572e4794", 16)), "3EFU7m"); + EXPECT_EQ(test_base58.encode(uinteger_t("ecac89cad93923c02321", 16)), "EJDM8drfXA6uyA"); + EXPECT_EQ(test_base58.encode(uinteger_t("10c8511e", 16)), "Rt5zm"); + // EXPECT_EQ(test_base58.encode(uinteger_t("00000000000000000000", 16)), "1111111111"); // ->> + EXPECT_EQ(test_base58.encode(uinteger_t("00000000000000000000", 16)), "1"); + EXPECT_EQ(test_base58.encode(uinteger_t("801184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd206ec97e", 16)), "5Hx15HFGyep2CfPxsJKe2fXJsCVn5DEiyoeGGF6JZjGbTRnqfiD"); + // EXPECT_EQ(test_base58.encode(uinteger_t("003c176e659bea0f29a3e9bf7880c112b1b31b4dc826268187", 16)), "16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS"); // ->> + EXPECT_EQ(test_base58.encode(uinteger_t("003c176e659bea0f29a3e9bf7880c112b1b31b4dc826268187", 16)), "6UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS"); + EXPECT_EQ(test_base58.encode(uinteger_t("ffffffffffffffffffff", 16)), "FPBt6CHo3fovdL"); + EXPECT_EQ(test_base58.encode(uinteger_t("ffffffffffffffffffffffffff", 16)), "NKioeUVktgzXLJ1B3t"); + EXPECT_EQ(test_base58.encode(uinteger_t("ffffffffffffffffffffffffffffffff", 16)), "YcVfxkQb6JRzqk5kF2tNLv"); + EXPECT_EQ(test_base2.encode(uinteger_t("fb6f9ac3", 16)), "11111011011011111001101011000011"); + EXPECT_EQ(test_base2.encode(uinteger_t("179eea7a", 16)), "10111100111101110101001111010"); + EXPECT_EQ(test_base2.encode(uinteger_t("6db825db", 16)), "1101101101110000010010111011011"); + EXPECT_EQ(test_base2.encode(uinteger_t("93976aa7", 16)), "10010011100101110110101010100111"); + EXPECT_EQ(test_base58.encode(uinteger_t("ef41b9ce7e830af7", 16)), "h26E62FyLQN"); + EXPECT_EQ(test_base58.encode(uinteger_t("606cbc791036d2e9", 16)), "H8Sa62HVULG"); + EXPECT_EQ(test_base58.encode(uinteger_t("bdcb0ea69c2c8ec8", 16)), "YkESUPpnfoD"); + EXPECT_EQ(test_base58.encode(uinteger_t("1a2358ba67fb71d5", 16)), "5NaBN89ajtQ"); + EXPECT_EQ(test_base58.encode(uinteger_t("e6173f0f4d5fb5d7", 16)), "fVAoezT1ZkS"); + EXPECT_EQ(test_base58.encode(uinteger_t("91c81cbfdd58bbd2", 16)), "RPGNSU3bqTX"); + EXPECT_EQ(test_base58.encode(uinteger_t("329e0bf0e388dbfe", 16)), "9U41ZkwwysT"); + EXPECT_EQ(test_base58.encode(uinteger_t("30b10393210fa65b", 16)), "99NMW3WHjjY"); + EXPECT_EQ(test_base58.encode(uinteger_t("ab3bdd18e3623654", 16)), "VeBbqBb4rCT"); + EXPECT_EQ(test_base58.encode(uinteger_t("fe29d1751ec4af8a", 16)), "jWhmYLN9dUm"); + EXPECT_EQ(test_base58.encode(uinteger_t("c1273ab5488769807d", 16)), "3Tbh4kL3WKW6g"); + EXPECT_EQ(test_base58.encode(uinteger_t("6c7907904de934f852", 16)), "2P5jNYhfpTJxy"); + EXPECT_EQ(test_base58.encode(uinteger_t("05f0be055db47a0dc9", 16)), "5PN768Kr5oEp"); + EXPECT_EQ(test_base58.encode(uinteger_t("3511e6206829b35b12", 16)), "gBREojGaJ6DF"); + EXPECT_EQ(test_base58.encode(uinteger_t("d1c7c2ddc4a459d503", 16)), "3fsekq5Esq2KC"); + EXPECT_EQ(test_base58.encode(uinteger_t("1f88efd17ab073e9a1", 16)), "QHJbmW9ZY7jn"); + EXPECT_EQ(test_base58.encode(uinteger_t("0f45dadf4e64c5d5c2", 16)), "CGyVUMmCKLRf"); + EXPECT_EQ(test_base58.encode(uinteger_t("de1e5c5f718bb7fafa", 16)), "3pyy8U7w3KUa5"); + EXPECT_EQ(test_base58.encode(uinteger_t("123190b93e9a49a46c", 16)), "ES3DeFrG1zbd"); + EXPECT_EQ(test_base58.encode(uinteger_t("8bee94a543e7242e5a", 16)), "2nJnuWyLpGf6y"); + EXPECT_EQ(test_base58.encode(uinteger_t("9fd5f2285362f5cfd834", 16)), "9yqFhqeewcW3pF"); + EXPECT_EQ(test_base58.encode(uinteger_t("6987bac63ad23828bb31", 16)), "6vskE5Y1LhS3U4"); + EXPECT_EQ(test_base58.encode(uinteger_t("19d4a0f9d459cc2a08b0", 16)), "2TAsHPuaLhh5Aw"); + EXPECT_EQ(test_base58.encode(uinteger_t("a1e47ffdbea5a807ab26", 16)), "A6XzPgSUJDf1W5"); + EXPECT_EQ(test_base58.encode(uinteger_t("35c231e5b3a86a9b83db", 16)), "42B8reRwPAAoAa"); + EXPECT_EQ(test_base58.encode(uinteger_t("b2351012a48b8347c351", 16)), "B1hPyomGx4Vhqa"); + EXPECT_EQ(test_base58.encode(uinteger_t("71d402694dd9517ea653", 16)), "7Pv2SyAQx2Upu8"); + EXPECT_EQ(test_base58.encode(uinteger_t("55227c0ec7955c2bd6e8", 16)), "5nR64BkskyjHMq"); + EXPECT_EQ(test_base58.encode(uinteger_t("17b3d8ee7907c1be34df", 16)), "2LEg7TxosoxTGS"); + EXPECT_EQ(test_base58.encode(uinteger_t("7e7bba7b68bb8e95827f", 16)), "879o2ATGnmYyAW"); + EXPECT_EQ(test_base58.encode(uinteger_t("db9c13f5ba7654b01407fb", 16)), "wTYfxjDVbiks874"); + EXPECT_EQ(test_base58.encode(uinteger_t("6186449d20f5fd1e6c4393", 16)), "RBeiWhzZNL6VtMG"); + EXPECT_EQ(test_base58.encode(uinteger_t("5248751cebf4ad1c1a83c3", 16)), "MQSVNnc8ehFCqtW"); + EXPECT_EQ(test_base58.encode(uinteger_t("32090ef18cd479fc376a74", 16)), "DQdu351ExDaeYeX"); + EXPECT_EQ(test_base58.encode(uinteger_t("7cfa5d6ed1e467d986c426", 16)), "XzW67T5qfEnFcaZ"); + EXPECT_EQ(test_base58.encode(uinteger_t("9d8707723c7ede51103b6d", 16)), "g4eTCg6QJnB1UU4"); + EXPECT_EQ(test_base58.encode(uinteger_t("6f4d1e392d6a9b4ed8b223", 16)), "Ubo7kZY5aDpAJp2"); + EXPECT_EQ(test_base58.encode(uinteger_t("38057d98797cd39f80a0c9", 16)), "EtjQ2feamJvuqse"); + EXPECT_EQ(test_base58.encode(uinteger_t("de7e59903177e20880e915", 16)), "xB2N7yRBnDYEoT2"); + EXPECT_EQ(test_base58.encode(uinteger_t("b2ea24a28bc4a60b5c4b8d", 16)), "mNFMpJ2P3TGYqhv"); + EXPECT_EQ(test_base58.encode(uinteger_t("cf84938958589b6ffba6114d", 16)), "4v8ZbsGh2ePz5sipt"); + EXPECT_EQ(test_base58.encode(uinteger_t("dee13be7b8d8a08c94a3c02a", 16)), "5CwmE9jQqwtHkTF45"); + EXPECT_EQ(test_base58.encode(uinteger_t("14cb9c6b3f8cd2e02710f569", 16)), "Pm85JHVAAdeUdxtp"); + EXPECT_EQ(test_base58.encode(uinteger_t("ca3f2d558266bdcc44c79cb5", 16)), "4pMwomBAQHuUnoLUC"); + EXPECT_EQ(test_base58.encode(uinteger_t("c031215be44cbad745f38982", 16)), "4dMeTrcxiVw9RWvj3"); + EXPECT_EQ(test_base58.encode(uinteger_t("1435ab1dbc403111946270a5", 16)), "P7wX3sCWNrbqhBEC"); + EXPECT_EQ(test_base58.encode(uinteger_t("d8c6e4d775e7a66a0d0f9f41", 16)), "56GLoRDGWGuGJJwPN"); + EXPECT_EQ(test_base58.encode(uinteger_t("dcee35e74f0fd74176fce2f4", 16)), "5Ap1zyuYiJJFwWcMR"); + EXPECT_EQ(test_base58.encode(uinteger_t("bfcc0ca4b4855d1cf8993fc0", 16)), "4cvafQW4PEhARKv9D"); + EXPECT_EQ(test_base58.encode(uinteger_t("e02a3ac25ece7b54584b670a", 16)), "5EMM28xkpxZ1kkVUM"); + EXPECT_EQ(test_base58.encode(uinteger_t("fe4d938fc3719f064cabb4bfff", 16)), "NBXKkbHwrAsiWTLAk6"); + EXPECT_EQ(test_base58.encode(uinteger_t("9289cb4f6b15c57e6086b87ea5", 16)), "DCvDpjEXEbHjZqskKv"); + EXPECT_EQ(test_base58.encode(uinteger_t("fc266f35626b3612bfe978537b", 16)), "N186PVoBWrNre35BGE"); + EXPECT_EQ(test_base58.encode(uinteger_t("33ff08c06d92502bf258c07166", 16)), "5LC4SoW6jmTtbkbePw"); + EXPECT_EQ(test_base58.encode(uinteger_t("6a81cac1f3666bc59dc67b1c3c", 16)), "9sXgUySUzwiqDU5WHy"); + EXPECT_EQ(test_base58.encode(uinteger_t("9dfb8e7e744c544c0f323ea729", 16)), "EACsmGmkgcwsrPFzLg"); + EXPECT_EQ(test_base58.encode(uinteger_t("1e7a1e284f70838b38442b682b", 16)), "3YEVk9bE7rw5qExMkv"); + EXPECT_EQ(test_base58.encode(uinteger_t("2a862ad57901a8235f5dc74eaf", 16)), "4YS259nuTLfeXa5Wuc"); + EXPECT_EQ(test_base58.encode(uinteger_t("74c82096baef21f9d3089e5462", 16)), "AjAcKEhUfrqm8smvM7"); + EXPECT_EQ(test_base58.encode(uinteger_t("7a3edbc23d7b600263920261cc", 16)), "BBZXyRgey5S5DDZkcK"); + EXPECT_EQ(test_base58.encode(uinteger_t("20435664c357d25a9c8df751cf4f", 16)), "CrwNL6Fbv4pbRx1zd9g"); + EXPECT_EQ(test_base58.encode(uinteger_t("51a7aa87cf5cb1c12d045ec3422d", 16)), "X27NHGgKXmGzzQvDtpC"); + EXPECT_EQ(test_base58.encode(uinteger_t("344d2e116aa26f1062a2cb6ebbef", 16)), "LEDLDvL1Hg4qt1efVXt"); + EXPECT_EQ(test_base58.encode(uinteger_t("6941add7be4c0b5c7163e4928f8e", 16)), "fhMyN6gwoxE3uYraVzV"); + EXPECT_EQ(test_base58.encode(uinteger_t("10938fcbb7c4ab991649734a14bf", 16)), "76TPrSDxzGQfSzMu974"); + EXPECT_EQ(test_base58.encode(uinteger_t("eafe04d944ba504e9af9117b07de", 16)), "2VPgov563ryfe4L2Bj6M"); + EXPECT_EQ(test_base58.encode(uinteger_t("58d0aeed4d35da20b6f052127edf", 16)), "ZenZhXF9YwP8nQvNtNz"); + EXPECT_EQ(test_base58.encode(uinteger_t("d734984e2f5aecf25f7a3e353f8a", 16)), "2N7n3jFsTdyN49Faoq6h"); + EXPECT_EQ(test_base58.encode(uinteger_t("57d873fdb405b7daf4bafa62068a", 16)), "ZJ7NwoP4wHvwyZg3Wjs"); + EXPECT_EQ(test_base58.encode(uinteger_t("bda4ec7b40d0d65ca95dec4c4d3b", 16)), "2CijxjsNyvqTwPCfDcpA"); + EXPECT_EQ(test_base58.encode(uinteger_t("826c4abdceb1b91f0d4ad665f86d2e", 16)), "4edfvuDQu9KzVxLuXHfMo"); + EXPECT_EQ(test_base58.encode(uinteger_t("e7ecb35d07e65b960cb10574a4f51a", 16)), "7VLRYdB4cToipp2J2p3v9"); + EXPECT_EQ(test_base58.encode(uinteger_t("4f2d72ead87b31d6869fba39eac6dc", 16)), "3DUjqJRcfdWhpsrLrGcQs"); + EXPECT_EQ(test_base58.encode(uinteger_t("8b4f5788d60030950d5dfbf94c585d", 16)), "4u44JSRH5jP5X39YhPsmE"); + EXPECT_EQ(test_base58.encode(uinteger_t("ee4c0a0025d1a74ace9fe349355cc5", 16)), "7fgACjABRQUGUEpN6VBBA"); + EXPECT_EQ(test_base58.encode(uinteger_t("58ac05b9a0b4b66083ff1d489b8d84", 16)), "3UtJPyTwGXapcxHx8Rom5"); + EXPECT_EQ(test_base58.encode(uinteger_t("1aa35c05e1132e8e049aafaef035d8", 16)), "kE2eSU7gM2619pT82iGP"); + EXPECT_EQ(test_base58.encode(uinteger_t("771b0c28608484562a292e5d5d2b30", 16)), "4LGYeWhyfrjUByibUqdVR"); + EXPECT_EQ(test_base58.encode(uinteger_t("78ff9a0e56f9e88dc1cd654b40d019", 16)), "4PLggs66qAdbmZgkaPihe"); + EXPECT_EQ(test_base58.encode(uinteger_t("6d691bdd736346aa5a0a95b373b2ab", 16)), "44Y6qTgSvRMkdqpQ5ufkN"); +} diff --git a/contrib/base-x/uinteger_t.hh b/contrib/base-x/uinteger_t.hh new file mode 100644 index 00000000000..901460f75c4 --- /dev/null +++ b/contrib/base-x/uinteger_t.hh @@ -0,0 +1,2546 @@ +/* +uinteger_t.hh +An arbitrary precision unsigned integer type for C++ + +Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com +Copyright (c) 2013 - 2017 Jason Lee @ calccrypto at gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +With much help from Auston Sterling + +Thanks to Stefan Deigmüller for finding +a bug in operator*. + +Thanks to François Dessenne for convincing me +to do a general rewrite of this class. + +Germán Mández Bravo (Kronuz) converted Jason Lee's uint128_t +to header-only and extended to arbitrary bit length. +*/ + +#ifndef __uint_t__ +#define __uint_t__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ASSERT assert + +// Compatibility inlines +#ifndef __has_builtin // Optional of course +#define __has_builtin(x) 0 // Compatibility with non-clang compilers +#endif + +#if defined _MSC_VER +# define HAVE___ADDCARRY_U64 +# define HAVE___SUBBORROW_U64 +# define HAVE___ADDCARRY_U32 +# define HAVE___SUBBORROW_U32 +# define HAVE___ADDCARRY_U16 +# define HAVE___SUBBORROW_U16 +# define HAVE___UMUL128 +# define HAVE___UMUL64 +# define HAVE___UMUL32 +# include +#endif + +#if (defined(__clang__) && __has_builtin(__builtin_clzll)) || (defined(__GNUC__ ) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))) +# define HAVE____BUILTIN_CLZLL +#endif +#if (defined(__clang__) && __has_builtin(__builtin_clzl)) || (defined(__GNUC__ ) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))) +# define HAVE____BUILTIN_CLZL +#endif +#if (defined(__clang__) && __has_builtin(__builtin_clz)) || (defined(__GNUC__ ) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))) +# define HAVE____BUILTIN_CLZ +#endif +#if (defined(__clang__) && __has_builtin(__builtin_addcll)) +# define HAVE____BUILTIN_ADDCLL +#endif +#if (defined(__clang__) && __has_builtin(__builtin_addcl)) +# define HAVE____BUILTIN_ADDCL +#endif +#if (defined(__clang__) && __has_builtin(__builtin_addc)) +# define HAVE____BUILTIN_ADDC +#endif +#if (defined(__clang__) && __has_builtin(__builtin_subcll)) +# define HAVE____BUILTIN_SUBCLL +#endif +#if (defined(__clang__) && __has_builtin(__builtin_subcl)) +# define HAVE____BUILTIN_SUBCL +#endif +#if (defined(__clang__) && __has_builtin(__builtin_subc)) +# define HAVE____BUILTIN_SUBC +#endif + +#if defined __SIZEOF_INT128__ +#define HAVE____INT128_T +#endif + + +#ifndef DIGIT_T +#define DIGIT_T std::uint64_t +#endif + +#ifndef HALF_DIGIT_T +#define HALF_DIGIT_T std::uint32_t +#endif + +class uinteger_t; + +namespace std { // This is probably not a good idea + // Give uinteger_t type traits + template <> struct is_arithmetic : std::true_type {}; + template <> struct is_integral : std::true_type {}; + template <> struct is_unsigned : std::true_type {}; +} + +class uinteger_t { +public: + using digit = DIGIT_T; + using half_digit = HALF_DIGIT_T; + + static constexpr std::size_t digit_octets = sizeof(digit); // number of octets per digit + static constexpr std::size_t digit_bits = digit_octets * 8; // number of bits per digit + static constexpr std::size_t half_digit_octets = sizeof(half_digit); // number of octets per half_digit + static constexpr std::size_t half_digit_bits = half_digit_octets * 8; // number of bits per half_digit + + using container = std::vector; + + template + struct is_result { + static const bool value = false; + }; + + template + struct is_result> { + static const bool value = true; + }; + + template + struct is_result> { + static const bool value = true; + }; + +private: + static_assert(digit_octets == half_digit_octets * 2, "half_digit must be exactly half the size of digit"); + + static constexpr std::size_t karatsuba_cutoff = 1024 / digit_bits; + static constexpr double growth_factor = 1.5; + + std::size_t _begin; + std::size_t _end; + container _value_instance; + container& _value; + bool _carry; + +public: + // Window to vector (uses _begin and _end) + + void reserve(std::size_t sz) { + _value.reserve(sz + _begin); + } + + std::size_t grow(std::size_t n) { + // expands the vector using a growth factor + // and returns the new capacity. + auto cc = _value.capacity(); + if (n >= cc) { + cc = n * growth_factor; + _value.reserve(cc); + } + return cc; + } + + void resize(std::size_t sz) { + grow(sz + _begin); + _value.resize(sz + _begin); + } + + void resize(std::size_t sz, const digit& c) { + grow(sz + _begin); + _value.resize(sz + _begin, c); + } + + void clear() { + _value.clear(); + _begin = 0; + _end = 0; + _carry = false; + } + + digit* data() noexcept { + return _value.data() + _begin; + } + + const digit* data() const noexcept { + return _value.data() + _begin; + } + + std::size_t size() const noexcept { + return _end ? _end - _begin : _value.size() - _begin; + } + + void prepend(std::size_t sz, const digit& c) { + // Efficiently prepend by growing backwards by growth factor + auto min = std::min(_begin, sz); + if (min) { + // If there is some space before `_begin`, we try using it first: + _begin -= min; + std::fill_n(_value.begin() + _begin, min, c); + sz -= min; + } + if (sz) { + ASSERT(_begin == 0); // _begin should be 0 in here + // If there's still more room needed, we grow the vector: + // Ex.: grow using prepend(3, y) + // sz = 3 + // _begin = 0 (B) + // _end = 1 (E) + // initially (capacity == 12): + // |xxxxxxxxxx- | + // B E + // after reclaiming space after `_end` (same capacity == 12): + // |xxxxxxxxxx | + // B + // _end = 0 + // csz = 10 + // grow returns the new capacity (22) + // isz = 12 (22 - 10) + // _begin = 9 (12 - 3) + // after (capacity == (12 + 3) * 1.5 == 22): + // |---------yyyxxxxxxxxxx| + // B + if (_end) { + // reclaim space after `_end` + _value.resize(_end); + _end = 0; + } + auto csz = _value.size(); + auto isz = grow(csz + sz) - csz; + _value.insert(_value.begin(), isz, c); + _begin = isz - sz; + } + } + + void prepend(const digit& c) { + prepend(1, c); + } + + void prepend(const uinteger_t& num) { + prepend(num.size(), 0); + std::copy(num.begin(), num.end(), begin()); + } + + void append(std::size_t sz, const digit& c) { + // Efficiently append by growing by growth factor + if (_end) { + // reclaim space after `_end` + _value.resize(_end); + _end = 0; + } + auto nsz = _value.size() + sz; + grow(nsz); + _value.resize(nsz, c); + } + + void append(const digit& c) { + append(1, c); + } + + void append(const uinteger_t& num) { + auto sz = num.size(); + append(sz, 0); + std::copy(num.begin(), num.end(), end() - sz); + } + + container::iterator begin() noexcept { + return _value.begin() + _begin; + } + + container::const_iterator begin() const noexcept { + return _value.cbegin() + _begin; + } + + container::iterator end() noexcept { + return _end ? _value.begin() + _end : _value.end(); + } + + container::const_iterator end() const noexcept { + return _end ? _value.cbegin() + _end : _value.cend(); + } + + container::reverse_iterator rbegin() noexcept { + return _end ? container::reverse_iterator(_value.begin() + _end) : _value.rbegin(); + } + + container::const_reverse_iterator rbegin() const noexcept { + return _end ? container::const_reverse_iterator(_value.cbegin() + _end) : _value.crbegin(); + } + + container::reverse_iterator rend() noexcept { + return container::reverse_iterator(_value.begin() + _begin); + } + + container::const_reverse_iterator rend() const noexcept { + return container::const_reverse_iterator(_value.cbegin() + _begin); + } + + container::reference front() { + return *begin(); + } + + container::const_reference front() const { + return *begin(); + } + + container::reference back() { + return *rbegin(); + } + + container::const_reference back() const { + return *rbegin(); + } + +private: + // Optimized primitives for operations + + static digit _bits(digit x) { + #if defined HAVE____BUILTIN_CLZLL + if (digit_octets == sizeof(unsigned long long)) { + return x ? digit_bits - __builtin_clzll(x) : 1; + } + #endif + #if defined HAVE____BUILTIN_CLZL + if (digit_octets == sizeof(unsigned long)) { + return x ? digit_bits - __builtin_clzl(x) : 1; + } + #endif + #if defined HAVE____BUILTIN_CLZ + if (digit_octets == sizeof(unsigned)) { + return x ? digit_bits - __builtin_clz(x) : 1; + } + #endif + { + digit c = x ? 0 : 1; + while (x) { + x >>= 1; + ++c; + } + return c; + } + } + + static digit _mult(digit x, digit y, digit* lo) { + #if defined HAVE___UMUL128 + if (digit_bits == 64) { + digit h; + digit l = _umul128(x, y, &h); // _umul128(x, y, *hi) -> lo + return h; + } + #endif + #if defined HAVE___UMUL64 + if (digit_bits == 32) { + digit h; + digit l = _umul64(x, y, &h); // _umul64(x, y, *hi) -> lo + return h; + } + #endif + #if defined HAVE___UMUL32 + if (digit_bits == 16) { + digit h; + digit l = _umul32(x, y, &h); // _umul32(x, y, *hi) -> lo + return h; + } + #endif + #if defined HAVE____INT128_T + if (digit_bits == 64) { + auto r = static_cast<__uint128_t>(x) * static_cast<__uint128_t>(y); + *lo = r; + return r >> digit_bits; + } + #endif + if (digit_bits == 64) { + digit x0 = x & 0xffffffffUL; + digit x1 = x >> 32; + digit y0 = y & 0xffffffffUL; + digit y1 = y >> 32; + + digit u = (x0 * y0); + digit v = (x1 * y0) + (u >> 32); + digit w = (x0 * y1) + (v & 0xffffffffUL); + + *lo = (w << 32) + (u & 0xffffffffUL); // low + return (x1 * y1) + (v >> 32) + (w >> 32); // high + } if (digit_bits == 32) { + auto r = static_cast(x) * static_cast(y); + *lo = r; + return r >> 32; + } if (digit_bits == 16) { + auto r = static_cast(x) * static_cast(y); + *lo = r; + return r >> 16; + } if (digit_bits == 8) { + auto r = static_cast(x) * static_cast(y); + *lo = r; + return r >> 8; + } + } + + static digit _multadd(digit x, digit y, digit a, digit c, digit* lo) { + #if defined HAVE___UMUL128 && defined HAVE___ADDCARRY_U64 + if (digit_bits == 64) { + digit h; + digit l = _umul128(x, y, &h); // _umul128(x, y, *hi) -> lo + return h + _addcarry_u64(c, l, a, lo); // _addcarry_u64(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE___UMUL64 && defined HAVE___ADDCARRY_U32 + if (digit_bits == 32) { + digit h; + digit l = _umul64(x, y, &h); // _umul64(x, y, *hi) -> lo + return h + _addcarry_u32(c, l, a, lo); // _addcarry_u32(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE___UMUL32 && defined HAVE___ADDCARRY_U16 + if (digit_bits == 16) { + digit h; + digit l = _umul32(x, y, &h); // _umul32(x, y, *hi) -> lo + return h + _addcarry_u16(c, l, a, lo); // _addcarry_u16(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE____INT128_T + if (digit_bits == 64) { + auto r = static_cast<__uint128_t>(x) * static_cast<__uint128_t>(y) + static_cast<__uint128_t>(a) + static_cast<__uint128_t>(c); + *lo = r; + return r >> digit_bits; + } + #endif + if (digit_bits == 64) { + digit x0 = x & 0xffffffffUL; + digit x1 = x >> 32; + digit y0 = y & 0xffffffffUL; + digit y1 = y >> 32; + + digit u = (x0 * y0) + (a & 0xffffffffUL) + (c & 0xffffffffUL); + digit v = (x1 * y0) + (u >> 32) + (a >> 32) + (c >> 32); + digit w = (x0 * y1) + (v & 0xffffffffUL); + + *lo = (w << 32) + (u & 0xffffffffUL); // low + return (x1 * y1) + (v >> 32) + (w >> 32); // high + } + if (digit_bits == 32) { + auto r = static_cast(x) * static_cast(y) + static_cast(a) + static_cast(c); + *lo = r; + return r >> 32; + } + if (digit_bits == 16) { + auto r = static_cast(x) * static_cast(y) + static_cast(a) + static_cast(c); + *lo = r; + return r >> 16; + } + if (digit_bits == 8) { + auto r = static_cast(x) * static_cast(y) + static_cast(a) + static_cast(c); + *lo = r; + return r >> 8; + } + } + + static digit _divmod(digit x_hi, digit x_lo, digit y, digit* result) { + #if defined HAVE____INT128_T + if (digit_bits == 64) { + auto x = static_cast<__uint128_t>(x_hi) << digit_bits | static_cast<__uint128_t>(x_lo); + digit q = x / y; + digit r = x % y; + + *result = q; + return r; + } + #endif + if (digit_bits == 64) { + // quotient + digit q = x_lo << 1; + + // remainder + digit r = x_hi; + + digit carry = x_lo >> 63; + int i; + + for (i = 0; i < 64; i++) { + auto tmp = r >> 63; + r <<= 1; + r |= carry; + carry = tmp; + + if (carry == 0) { + if (r >= y) { + carry = 1; + } else { + tmp = q >> 63; + q <<= 1; + q |= carry; + carry = tmp; + continue; + } + } + + r -= y; + r -= (1 - carry); + carry = 1; + tmp = q >> 63; + q <<= 1; + q |= carry; + carry = tmp; + } + + *result = q; + return r; + } + if (digit_bits == 32) { + auto x = static_cast(x_hi) << 32 | static_cast(x_lo); + digit q = x / y; + digit r = x % y; + + *result = q; + return r; + } + if (digit_bits == 16) { + auto x = static_cast(x_hi) << 16 | static_cast(x_lo); + digit q = x / y; + digit r = x % y; + + *result = q; + return r; + } + if (digit_bits == 8) { + auto x = static_cast(x_hi) << 8 | static_cast(x_lo); + digit q = x / y; + digit r = x % y; + + *result = q; + return r; + } + } + + static digit _addcarry(digit x, digit y, digit c, digit* result) { + #if defined HAVE___ADDCARRY_U64 + if (digit_bits == 64) { + return _addcarry_u64(c, x, y, result); // _addcarry_u64(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE___ADDCARRY_U32 + if (digit_bits == 32) { + return _addcarry_u32(c, x, y, result); // _addcarry_u32(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE___ADDCARRY_U16 + if (digit_bits == 16) { + return _addcarry_u16(c, x, y, result); // _addcarry_u16(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE____BUILTIN_ADDCLL + if (digit_octets == sizeof(unsigned long long)) { + unsigned long long carryout; + *result = __builtin_addcll(x, y, c, &carryout); // __builtin_addcll(x, y, carryin, *carryout) -> sum + return carryout; + } + #endif + #if defined HAVE____BUILTIN_ADDCL + if (digit_octets == sizeof(unsigned long)) { + unsigned long carryout; + *result = __builtin_addcl(x, y, c, &carryout); // __builtin_addcl(x, y, carryin, *carryout) -> sum + return carryout; + } + #endif + #if defined HAVE____BUILTIN_ADDC + if (digit_octets == sizeof(unsigned)) { + unsigned carryout; + *result = __builtin_addc(x, y, c, &carryout); // __builtin_addc(x, y, carryin, *carryout) -> sum + return carryout; + } + #endif + #if defined HAVE____INT128_T + if (digit_bits == 64) { + auto r = static_cast<__uint128_t>(x) + static_cast<__uint128_t>(y) + static_cast<__uint128_t>(c); + *result = r; + return static_cast(r >> digit_bits); + } + #endif + if (digit_bits == 64) { + digit x0 = x & 0xffffffffUL; + digit x1 = x >> 32; + digit y0 = y & 0xffffffffUL; + digit y1 = y >> 32; + + auto u = x0 + y0 + c; + auto v = x1 + y1 + static_cast(u >> 32); + *result = (v << 32) + (u & 0xffffffffUL); + return static_cast(v >> 32); + } + if (digit_bits == 32) { + auto r = static_cast(x) + static_cast(y) + static_cast(c); + *result = r; + return static_cast(r >> 32); + } + if (digit_bits == 16) { + auto r = static_cast(x) + static_cast(y) + static_cast(c); + *result = r; + return static_cast(r >> 16); + } + if (digit_bits == 8) { + auto r = static_cast(x) + static_cast(y) + static_cast(c); + *result = r; + return static_cast(r >> 8); + } + } + + static digit _subborrow(digit x, digit y, digit c, digit* result) { + #if defined HAVE___SUBBORROW_U64 + if (digit_bits == 64) { + return _subborrow_u64(c, x, y, result); // _subborrow_u64(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE___SUBBORROW_U32 + if (digit_bits == 64) { + return _subborrow_u32(c, x, y, result); // _subborrow_u32(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE___SUBBORROW_U16 + if (digit_bits == 64) { + return _subborrow_u16(c, x, y, result); // _subborrow_u16(carryin, x, y, *sum) -> carryout + } + #endif + #if defined HAVE____BUILTIN_SUBCLL + if (digit_octets == sizeof(unsigned long long)) { + unsigned long long carryout; + *result = __builtin_subcll(x, y, c, &carryout); // __builtin_subcll(x, y, carryin, *carryout) -> sum + return carryout; + } + #endif + #if defined HAVE____BUILTIN_SUBCL + if (digit_octets == sizeof(unsigned long)) { + unsigned long carryout; + *result = __builtin_subcl(x, y, c, &carryout); // __builtin_subcl(x, y, carryin, *carryout) -> sum + return carryout; + } + #endif + #if defined HAVE____BUILTIN_SUBC + if (digit_octets == sizeof(unsigned)) { + unsigned carryout; + *result = __builtin_subc(x, y, c, &carryout); // __builtin_subc(x, y, carryin, *carryout) -> sum + return carryout; + } + #endif + #if defined HAVE____INT128_T + if (digit_bits == 64) { + auto r = static_cast<__uint128_t>(x) - static_cast<__uint128_t>(y) - static_cast<__uint128_t>(c); + *result = r; + return static_cast(r >> 64); + } + #endif + if (digit_bits == 64) { + digit x0 = x & 0xffffffffUL; + digit x1 = x >> 32; + digit y0 = y & 0xffffffffUL; + digit y1 = y >> 32; + + auto u = x0 - y0 - c; + auto v = x1 - y1 - static_cast(u >> 32); + *result = (v << 32) + (u & 0xffffffffUL); + return static_cast(v >> 32); + } + if (digit_bits == 32) { + auto r = static_cast(x) - static_cast(y) - static_cast(c); + *result = r; + return static_cast(r >> 32); + } + if (digit_bits == 16) { + auto r = static_cast(x) - static_cast(y) - static_cast(c); + *result = r; + return static_cast(r >> 16); + } + if (digit_bits == 8) { + auto r = static_cast(x) - static_cast(y) - static_cast(c); + *result = r; + return static_cast(r >> 8); + } + } + + // Helper functions + + void trim(digit mask = 0) { + auto rit = rbegin(); + auto rit_e = rend(); + + // Masks the last value of internal vector + mask &= (digit_bits - 1); + if (mask && rit != rit_e) { + *rit &= (static_cast(1) << mask) - 1; + } + + // Removes all unused zeros from the internal vector + auto rit_f = std::find_if(rit, rit_e, [](const digit& c) { return c; }); + resize(rit_e - rit_f); // shrink + } + + static constexpr char chr(int ord) { + constexpr const char _[256] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', + 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + }; + return _[ord]; + } + + static constexpr int ord(int chr) { + constexpr const int _[256] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + }; + return _[chr]; + } + +public: + static constexpr unsigned base_bits(int base) { + constexpr const unsigned _[256] = { + 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + }; + return _[base - 1]; + } + + static constexpr unsigned base_size(int base) { + constexpr const unsigned _[256] = { + 0, 64, 41, 32, 28, 25, 23, 22, 21, 20, 19, 18, 18, 17, 17, 16, + 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, + + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, + }; + return _[base - 1]; + } + + static const uinteger_t uint_0() { + static uinteger_t uint_0(0); + return uint_0; + } + + static const uinteger_t uint_1() { + static uinteger_t uint_1(1); + return uint_1; + } + +private: + // Public Implementation +#ifdef UINT_T_PUBLIC_IMPLEMENTATION +public: +#endif + static uinteger_t& bitwise_and(uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz > rhs_sz) { + lhs.resize(rhs_sz); // shrink + } + + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs.end(); + + auto rhs_it = rhs.begin(); + + for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it) { + *lhs_it &= *rhs_it; + } + + // Finish up + lhs.trim(); + return lhs; + } + + static uinteger_t& bitwise_and(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + auto result_sz = std::max(lhs_sz, rhs_sz); + result.resize(result_sz); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs_it + rhs_sz; + + auto it = result.begin(); + + if (lhs_sz < rhs_sz) { + for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { + *it = *lhs_it & *rhs_it; + } + for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { + *it = 0; + } + } else { + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { + *it = *lhs_it & *rhs_it; + } + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + *it = 0; + } + } + + // Finish up + result.trim(); + return result; + } + + static uinteger_t bitwise_and(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + bitwise_and(result, lhs, rhs); + return result; + } + + static uinteger_t& bitwise_or(uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz < rhs_sz) { + lhs.resize(rhs_sz, 0); // grow + } + + auto lhs_it = lhs.begin(); + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs.end(); + + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { + *lhs_it |= *rhs_it; + } + + // Finish up + lhs.trim(); + return lhs; + } + + static uinteger_t& bitwise_or(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + auto result_sz = std::max(lhs_sz, rhs_sz); + result.resize(result_sz); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs_it + rhs_sz; + + auto it = result.begin(); + + if (lhs_sz < rhs_sz) { + for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { + *it = *lhs_it | *rhs_it; + } + for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { + *it = *rhs_it; + } + } else { + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { + *it = *lhs_it | *rhs_it; + } + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + *it = *lhs_it; + } + } + + // Finish up + result.trim(); + return result; + } + static uinteger_t bitwise_or(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + bitwise_or(result, lhs, rhs); + return result; + } + + static uinteger_t& bitwise_xor(uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz < rhs_sz) { + lhs.resize(rhs_sz, 0); // grow + } + + auto lhs_it = lhs.begin(); + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs.end(); + + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { + *lhs_it ^= *rhs_it; + } + + // Finish up + lhs.trim(); + return lhs; + } + + static uinteger_t& bitwise_xor(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + auto result_sz = std::max(lhs_sz, rhs_sz); + result.resize(result_sz); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs_it + rhs_sz; + + auto it = result.begin(); + + if (lhs_sz < rhs_sz) { + for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { + *it = *lhs_it ^ *rhs_it; + } + for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { + *it = *rhs_it; + } + } else { + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { + *it = *lhs_it ^ *rhs_it; + } + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + *it = *lhs_it; + } + } + + // Finish up + result.trim(); + return result; + } + + static uinteger_t bitwise_xor(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + bitwise_xor(result, lhs, rhs); + return result; + } + + static uinteger_t& bitwise_inv(uinteger_t& lhs) { + auto lhs_sz = lhs.size(); + + auto b = lhs.bits(); + + if (!lhs_sz) { + lhs.append(0); + } + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` if `result` is also `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + for (; lhs_it != lhs_it_e; ++lhs_it) { + *lhs_it = ~*lhs_it; + } + + // Finish up + lhs.trim(b ? b : 1); + return lhs; + } + + static uinteger_t& bitwise_inv(uinteger_t& result, const uinteger_t& lhs) { + auto lhs_sz = lhs.size(); + + auto b = lhs.bits(); + + auto result_sz = lhs_sz ? lhs_sz : 1; + result.resize(result_sz); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` if `result` is also `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto it = result.begin(); + auto it_e = it + result_sz; + + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + *it = ~*lhs_it; + } + for (; it != it_e; ++it) { + *it = ~static_cast(0); + } + + // Finish up + result.trim(b ? b : 1); + return result; + } + + static uinteger_t bitwise_inv(const uinteger_t& lhs) { + uinteger_t result; + bitwise_inv(result, lhs); + return result; + } + + static uinteger_t& bitwise_lshift(uinteger_t& lhs, const uinteger_t& rhs) { + if (!rhs) { + return lhs; + } + + uinteger_t shifts_q; + uinteger_t shifts_r; + auto _digit_bits = digit_bits; + auto uint_digit_bits = uinteger_t(_digit_bits); + divmod(shifts_q, shifts_r, rhs, uint_digit_bits); + std::size_t shifts = static_cast(shifts_q); + std::size_t shift = static_cast(shifts_r); + + if (shifts) { + lhs.prepend(shifts, 0); + } + if (shift) { + digit shifted = 0; + auto lhs_it = lhs.begin() + shifts; + auto lhs_it_e = lhs.end(); + for (; lhs_it != lhs_it_e; ++lhs_it) { + auto v = (*lhs_it << shift) | shifted; + shifted = *lhs_it >> (_digit_bits - shift); + *lhs_it = v; + } + if (shifted) { + lhs.append(shifted); + } + } + + // Finish up + lhs.trim(); + return lhs; + } + + static uinteger_t& bitwise_lshift(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + if (&result._value == &lhs._value) { + bitwise_lshift(result, rhs); + return result; + } + if (!rhs) { + result = lhs; + return result; + } + + auto lhs_sz = lhs.size(); + + uinteger_t shifts_q; + uinteger_t shifts_r; + auto _digit_bits = digit_bits; + auto uint_digit_bits = uinteger_t(_digit_bits); + divmod(shifts_q, shifts_r, rhs, uint_digit_bits); + std::size_t shifts = static_cast(shifts_q); + std::size_t shift = static_cast(shifts_r); + + auto result_sz = lhs_sz + shifts; + result.grow(result_sz + 1); + result.resize(shifts, 0); + result.resize(result_sz); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` if `result` is also `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto it = result.begin() + shifts; + + if (shift) { + digit shifted = 0; + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + auto v = (*lhs_it << shift) | shifted; + shifted = *lhs_it >> (_digit_bits - shift); + *it = v; + } + if (shifted) { + result.append(shifted); + } + } else { + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + *it = *lhs_it; + } + } + + // Finish up + result.trim(); + return result; + } + + static uinteger_t bitwise_lshift(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + bitwise_lshift(result, lhs, rhs); + return result; + } + + static uinteger_t& bitwise_rshift(uinteger_t& lhs, const uinteger_t& rhs) { + if (!rhs) { + return lhs; + } + + auto lhs_sz = lhs.size(); + + auto _digit_bits = digit_bits; + if (compare(rhs, uinteger_t(lhs_sz * _digit_bits)) >= 0) { + lhs = uint_0(); + return lhs; + } + + uinteger_t shifts_q; + uinteger_t shifts_r; + auto uint_digit_bits = uinteger_t(_digit_bits); + divmod(shifts_q, shifts_r, rhs, uint_digit_bits); + std::size_t shifts = static_cast(shifts_q); + std::size_t shift = static_cast(shifts_r); + + if (shifts) { + lhs._begin += shifts; + } + if (shift) { + digit shifted = 0; + auto lhs_rit = lhs.rbegin(); + auto lhs_rit_e = lhs.rend(); + for (; lhs_rit != lhs_rit_e; ++lhs_rit) { + auto v = (*lhs_rit >> shift) | shifted; + shifted = *lhs_rit << (_digit_bits - shift); + *lhs_rit = v; + } + lhs.trim(); + } + + return lhs; + } + + static uinteger_t& bitwise_rshift(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + if (&result._value == &lhs._value) { + bitwise_lshift(result, rhs); + return result; + } + if (!rhs) { + result = lhs; + return result; + } + + auto lhs_sz = lhs.size(); + + auto _digit_bits = digit_bits; + if (compare(rhs, uinteger_t(lhs_sz * _digit_bits)) >= 0) { + result = uint_0(); + return result; + } + + uinteger_t shifts_q; + uinteger_t shifts_r; + auto uint_digit_bits = uinteger_t(_digit_bits); + divmod(shifts_q, shifts_r, rhs, uint_digit_bits); + std::size_t shifts = static_cast(shifts_q); + std::size_t shift = static_cast(shifts_r); + + auto result_sz = lhs_sz - shifts; + result.resize(result_sz); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` if `result` is also `lhs`. + auto lhs_rit = lhs.rbegin(); + auto lhs_rit_e = lhs_rit + lhs_sz - shifts; + + auto rit = result.rbegin(); + auto rit_e = rit + result_sz; + + if (shift) { + digit shifted = 0; + for (; lhs_rit != lhs_rit_e; ++lhs_rit, ++rit) { + ASSERT(rit != rit_e); (void)(rit_e); + auto v = (*lhs_rit >> shift) | shifted; + shifted = *lhs_rit << (_digit_bits - shift); + *rit = v; + } + } else { + for (; lhs_rit != lhs_rit_e; ++lhs_rit, ++rit) { + ASSERT(rit != rit_e); (void)(rit_e); + *rit = *lhs_rit; + } + } + + // Finish up + result.trim(); + return result; + } + + static uinteger_t bitwise_rshift(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + bitwise_rshift(result, lhs, rhs); + return result; + } + + static int compare(const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz > rhs_sz) return 1; + if (lhs_sz < rhs_sz) return -1; + + auto lhs_rit = lhs.rbegin(); + auto lhs_rit_e = lhs.rend(); + + auto rhs_rit = rhs.rbegin(); + + for (; lhs_rit != lhs_rit_e && *lhs_rit == *rhs_rit; ++lhs_rit, ++rhs_rit); + + if (lhs_rit != lhs_rit_e) { + if (*lhs_rit > *rhs_rit) return 1; + if (*lhs_rit < *rhs_rit) return -1; + } + + return 0; + } + + static uinteger_t& long_add(uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz < rhs_sz) { + lhs.reserve(rhs_sz + 1); + lhs.resize(rhs_sz, 0); // grow + } + + // not using `end()` because resize of `lhs.resize()` could have + // resized `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs_it + rhs_sz; + + digit carry = 0; + if (lhs_sz < rhs_sz) { + for (; lhs_it != lhs_it_e; ++rhs_it, ++lhs_it) { + carry = _addcarry(*lhs_it, *rhs_it, carry, &*lhs_it); + } + for (; carry && rhs_it != rhs_it_e; ++rhs_it, ++lhs_it) { + carry = _addcarry(0, *rhs_it, carry, &*lhs_it); + } + for (; rhs_it != rhs_it_e; ++rhs_it, ++lhs_it) { + *lhs_it = *rhs_it; + } + } else { + for (; rhs_it != rhs_it_e; ++rhs_it, ++lhs_it) { + carry = _addcarry(*lhs_it, *rhs_it, carry, &*lhs_it); + } + for (; carry && lhs_it != lhs_it_e; ++lhs_it) { + carry = _addcarry(*lhs_it, 0, carry, &*lhs_it); + } + } + + if (carry) { + lhs.append(1); + } + + lhs._carry = false; + + // Finish up + lhs.trim(); + return lhs; + } + + static uinteger_t& long_add(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + auto result_sz = std::max(lhs_sz, rhs_sz); + result.reserve(result_sz + 1); + result.resize(result_sz, 0); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs_it + rhs_sz; + + auto it = result.begin(); + + digit carry = 0; + if (lhs_sz < rhs_sz) { + for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { + carry = _addcarry(*lhs_it, *rhs_it, carry, &*it); + } + for (; carry && rhs_it != rhs_it_e; ++rhs_it, ++it) { + carry = _addcarry(0, *rhs_it, carry, &*it); + } + for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { + *it = *rhs_it; + } + } else { + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { + carry = _addcarry(*lhs_it, *rhs_it, carry, &*it); + } + for (; carry && lhs_it != lhs_it_e; ++lhs_it, ++it) { + carry = _addcarry(*lhs_it, 0, carry, &*it); + } + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + *it = *lhs_it; + } + } + + if (carry) { + result.append(1); + } + result._carry = false; + + // Finish up + result.trim(); + return result; + } + + static uinteger_t& add(uinteger_t& lhs, const uinteger_t& rhs) { + // First try saving some calculations: + if (!rhs) { + return lhs; + } + if (!lhs) { + lhs = rhs; + return lhs; + } + + return long_add(lhs, rhs); + } + + static uinteger_t& add(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + // First try saving some calculations: + if (!rhs) { + result = lhs; + return result; + } + if (!lhs) { + result = rhs; + return result; + } + + return long_add(result, lhs, rhs); + } + + static uinteger_t add(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + add(result, lhs, rhs); + return result; + } + + static uinteger_t& long_sub(uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz < rhs_sz) { + lhs.resize(rhs_sz, 0); // grow + } + + // not using `end()` because resize of `lhs.resize()` could have + // resized `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs_it + rhs_sz; + + digit borrow = 0; + if (lhs_sz < rhs_sz) { + for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it) { + borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*lhs_it); + } + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { + borrow = _subborrow(0, *rhs_it, borrow, &*lhs_it); + } + } else { + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { + borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*lhs_it); + } + for (; borrow && lhs_it != lhs_it_e; ++lhs_it) { + borrow = _subborrow(*lhs_it, 0, borrow, &*lhs_it); + } + } + + lhs._carry = borrow; + + // Finish up + lhs.trim(); + return lhs; + } + + static uinteger_t& long_sub(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + auto result_sz = std::max(lhs_sz, rhs_sz); + result.resize(result_sz, 0); + + // not using `end()` because resize of `result.resize()` could have + // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. + auto lhs_it = lhs.begin(); + auto lhs_it_e = lhs_it + lhs_sz; + + auto rhs_it = rhs.begin(); + auto rhs_it_e = rhs_it + rhs_sz; + + auto it = result.begin(); + + digit borrow = 0; + if (lhs_sz < rhs_sz) { + for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { + borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*it); + } + for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { + borrow = _subborrow(0, *rhs_it, borrow, &*it); + } + } else { + for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { + borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*it); + } + for (; borrow && lhs_it != lhs_it_e; ++lhs_it, ++it) { + borrow = _subborrow(*lhs_it, 0, borrow, &*it); + } + for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { + *it = *lhs_it; + } + } + + result._carry = borrow; + + // Finish up + result.trim(); + return result; + } + + static uinteger_t& sub(uinteger_t& lhs, const uinteger_t& rhs) { + // First try saving some calculations: + if (!rhs) { + return lhs; + } + + return long_sub(lhs, rhs); + } + + static uinteger_t& sub(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + // First try saving some calculations: + if (!rhs) { + result = lhs; + return result; + } + + return long_sub(result, lhs, rhs); + } + + static uinteger_t sub(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + sub(result, lhs, rhs); + return result; + } + + // Single word long multiplication + // Fastests, but ONLY for single sized rhs + static uinteger_t& single_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + ASSERT(rhs_sz == 1); (void)(rhs_sz); + auto n = rhs.front(); + + uinteger_t tmp; + tmp.resize(lhs_sz + 1, 0); + + auto it_lhs = lhs.begin(); + auto it_lhs_e = lhs.end(); + + auto it_result = tmp.begin(); + + digit carry = 0; + for (; it_lhs != it_lhs_e; ++it_lhs, ++it_result) { + carry = _multadd(*it_lhs, n, 0, carry, &*it_result); + } + if (carry) { + *it_result = carry; + } + + result = std::move(tmp); + + // Finish up + result.trim(); + return result; + } + + static uinteger_t& long_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz > rhs_sz) { + // rhs should be the largest: + return long_mult(result, rhs, lhs); + } + + if (lhs_sz == 1) { + return single_mult(result, rhs, lhs); + } + + uinteger_t tmp; + tmp.resize(lhs_sz + rhs_sz, 0); + + auto it_lhs = lhs.begin(); + auto it_lhs_e = lhs.end(); + + auto it_rhs = rhs.begin(); + auto it_rhs_e = rhs.end(); + + auto it_result = tmp.begin(); + auto it_result_s = it_result; + auto it_result_l = it_result; + + for (; it_lhs != it_lhs_e; ++it_lhs, ++it_result) { + if (auto lhs_it_val = *it_lhs) { + auto _it_rhs = it_rhs; + auto _it_result = it_result; + digit carry = 0; + for (; _it_rhs != it_rhs_e; ++_it_rhs, ++_it_result) { + carry = _multadd(*_it_rhs, lhs_it_val, *_it_result, carry, &*_it_result); + } + if (carry) { + *_it_result++ = carry; + } + if (it_result_l < _it_result) { + it_result_l = _it_result; + } + } + } + + tmp.resize(it_result_l - it_result_s); // shrink + + result = std::move(tmp); + + // Finish up + result.trim(); + return result; + } + + // A helper for Karatsuba multiplication to split a number in two, at n. + static std::pair karatsuba_mult_split(const uinteger_t& num, std::size_t n) { + const uinteger_t a(num, num._begin, num._begin + n); + const uinteger_t b(num, num._begin + n, num._end); + return std::make_pair(std::move(a), std::move(b)); + } + + // If rhs has at least twice the digits of lhs, and lhs is big enough that + // Karatsuba would pay off *if* the inputs had balanced sizes. + // View rhs as a sequence of slices, each with lhs.size() digits, + // and multiply the slices by lhs, one at a time. + static uinteger_t& karatsuba_lopsided_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs, std::size_t cutoff) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + ASSERT(lhs_sz > cutoff); + ASSERT(2 * lhs_sz <= rhs_sz); + + auto rhs_begin = rhs._begin; + std::size_t shift = 0; + + uinteger_t r; + while (rhs_sz > 0) { + // Multiply the next slice of rhs by lhs and add into result: + auto slice_size = std::min(lhs_sz, rhs_sz); + const uinteger_t rhs_slice(rhs, rhs_begin, rhs_begin + slice_size); + uinteger_t p; + karatsuba_mult(p, lhs, rhs_slice, cutoff); + uinteger_t rs(r, shift, 0); + add(rs, rs, p); + shift += slice_size; + rhs_sz -= slice_size; + rhs_begin += slice_size; + } + + result = std::move(r); + return result; + } + + // Karatsuba multiplication + static uinteger_t& karatsuba_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs, std::size_t cutoff = 1) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + if (lhs_sz > rhs_sz) { + // rhs should be the largest: + return karatsuba_mult(result, rhs, lhs, cutoff); + } + + if (lhs_sz <= cutoff) { + return long_mult(result, lhs, rhs); + } + + // If a is too small compared to b, splitting on b gives a degenerate case + // in which Karatsuba may be (even much) less efficient than long multiplication. + if (2 * lhs_sz <= rhs_sz) { + return karatsuba_lopsided_mult(result, lhs, rhs, cutoff); + } + + // Karatsuba: + // + // A B + // x C D + // --------------------- + // AD BD + // AC BC + // --------------------- + // AC AD + BC BD + // + // AD + BC = + // AC + AD + BC + BD - AC - BD + // (A + B) (C + D) - AC - BD + + // Calculate the split point near the middle of the largest (rhs). + auto shift = rhs_sz >> 1; + + // Split to get A and B: + const auto lhs_pair = karatsuba_mult_split(lhs, shift); + const auto& A = lhs_pair.second; // hi + const auto& B = lhs_pair.first; // lo + + // Split to get C and D: + const auto rhs_pair = karatsuba_mult_split(rhs, shift); + const auto& C = rhs_pair.second; // hi + const auto& D = rhs_pair.first; // lo + + // Get the pieces: + uinteger_t AC; + karatsuba_mult(AC, A, C, cutoff); + + uinteger_t BD; + karatsuba_mult(BD, B, D, cutoff); + uinteger_t AD_BC, AB, CD; + karatsuba_mult(AD_BC, A + B, C + D, cutoff); + AD_BC -= AC; + AD_BC -= BD; + + // Join the pieces, AC and BD (can't overlap) into BD: + BD.reserve(shift * 2 + AC.size()); + BD.resize(shift * 2, 0); + BD.append(AC); + + // And add AD_BC to the middle: (AC BD) + ( AD + BC ): + uinteger_t BDs(BD, shift, 0); + add(BDs, BDs, AD_BC); + + result = std::move(BD); + + // Finish up + result.trim(); + return result; + } + + static uinteger_t& mult(uinteger_t& lhs, const uinteger_t& rhs) { + // Hard to see how this could have a further optimized implementation. + return mult(lhs, lhs, rhs); + } + + static uinteger_t& mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { + // First try saving some calculations: + if (!lhs || !rhs) { + result = uint_0(); + return result; + } + if (compare(lhs, uint_1()) == 0) { + result = rhs; + return result; + } + if (compare(rhs, uint_1()) == 0) { + result = lhs; + return result; + } + + return karatsuba_mult(result, lhs, rhs, karatsuba_cutoff); + } + + static uinteger_t mult(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t result; + mult(result, lhs, rhs); + return result; + } + + // Single word long division + // Fastests, but ONLY for single sized rhs + static std::pair, std::reference_wrapper> single_divmod(uinteger_t& quotient, uinteger_t& remainder, const uinteger_t& lhs, const uinteger_t& rhs) { + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + + ASSERT(rhs_sz == 1); (void)(rhs_sz); + auto n = rhs.front(); + + auto rit_lhs = lhs.rbegin(); + auto rit_lhs_e = lhs.rend(); + + auto q = uint_0(); + q.resize(lhs_sz, 0); + auto rit_q = q.rbegin(); + + digit r = 0; + for (; rit_lhs != rit_lhs_e; ++rit_lhs, ++rit_q) { + r = _divmod(r, *rit_lhs, n, &*rit_q); + } + + q.trim(); + + quotient = std::move(q); + remainder = r; + return std::make_pair(std::ref(quotient), std::ref(remainder)); + } + + // Implementation of Knuth's Algorithm D + static std::pair, std::reference_wrapper> knuth_divmod(uinteger_t& quotient, uinteger_t& remainder, const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t v(lhs); + uinteger_t w(rhs); + + auto v_size = v.size(); + auto w_size = w.size(); + ASSERT(v_size >= w_size && w_size >= 2); + + // D1. normalize: shift rhs left so that its top digit is >= 63 bits. + // shift lhs left by the same amount. Results go into w and v. + auto d = uinteger_t(digit_bits - _bits(w.back())); + v <<= d; + w <<= d; + + if (*v.rbegin() >= *w.rbegin()) { + v.append(0); + } + v_size = v.size(); + v.append(0); + + // Now *v.rbegin() < *w.rbegin() so quotient has at most + // (and usually exactly) k = v.size() - w.size() digits. + auto k = v_size - w_size; + auto q = uint_0(); + q.resize(k + 1, 0); + + auto rit_q = q.rend() - (k + 1); + + auto it_v_b = v.begin(); + auto it_v_k = it_v_b + k; + + auto it_w = w.begin(); + auto it_w_e = w.end(); + + auto rit_w = w.rbegin(); + auto wm1 = *rit_w++; + auto wm2 = *rit_w; + + // D2. inner loop: divide v[k+0..k+n] by w[0..n] + for (; it_v_k >= it_v_b; --it_v_k, ++rit_q) { + // D3. Compute estimate quotient digit q; may overestimate by 1 (rare) + digit _q; + auto _r = _divmod(*(it_v_k + w_size), *(it_v_k + w_size - 1), wm1, &_q); + digit mullo = 0; + auto mulhi = _mult(_q, wm2, &mullo); + auto rlo = *(it_v_k + w_size - 2); + while (mulhi > _r || (mulhi == _r && mullo > rlo)) { + --_q; + if (_addcarry(_r, wm1, 0, &_r)) { + break; + } + mulhi = _mult(_q, wm2, &mullo); + } + + // D4. Multiply and subtract _q * w0[0:size_w] from vk[0:size_w+1] + auto _it_v = it_v_k; + auto _it_w = it_w; + mulhi = 0; + digit carry = 0; + for (; _it_w != it_w_e; ++_it_v, ++_it_w) { + mullo = 0; + mulhi = _multadd(*_it_w, _q, 0, mulhi, &mullo); + carry = _subborrow(*_it_v, mullo, carry, &*_it_v); + } + carry = _subborrow(*_it_v, 0, carry, &*_it_v); + + if (carry) { + // D6. Add w back if q was too large (this branch taken rarely) + --_q; + + _it_v = it_v_k; + _it_w = it_w; + carry = 0; + for (; _it_w != it_w_e; ++_it_v, ++_it_w) { + carry = _addcarry(*_it_v, *_it_w, carry, &*_it_v); + } + carry = _addcarry(*_it_v, 0, carry, &*_it_v); + } + + /* store quotient digit */ + *rit_q = _q; + } + + // D8. unnormalize: unshift remainder. + v.resize(w_size); + v >>= d; + + q.trim(); + v.trim(); + + quotient = std::move(q); + remainder = std::move(v); + return std::make_pair(std::ref(quotient), std::ref(remainder)); + } + + static std::pair, std::reference_wrapper> divmod(uinteger_t& quotient, uinteger_t& remainder, const uinteger_t& lhs, const uinteger_t& rhs) { + // First try saving some calculations: + if (!rhs) { + throw std::domain_error("Error: division or modulus by 0"); + } + auto lhs_sz = lhs.size(); + auto rhs_sz = rhs.size(); + if (lhs_sz == 1 && rhs_sz == 1) { + // Fast division and modulo for single value + auto a = *lhs.begin(); + auto b = *rhs.begin(); + quotient = a / b; + remainder = a % b; + return std::make_pair(std::ref(quotient), std::ref(remainder)); + } + if (compare(rhs, uint_1()) == 0) { + quotient = lhs; + remainder = uint_0(); + return std::make_pair(std::ref(quotient), std::ref(remainder)); + } + auto compared = compare(lhs, rhs); + if (compared == 0) { + quotient = uint_1(); + remainder = uint_0(); + return std::make_pair(std::ref(quotient), std::ref(remainder)); + } + if (!lhs || compared < 0) { + quotient = uint_0(); + remainder = lhs; + return std::make_pair(std::ref(quotient), std::ref(remainder)); + } + if (rhs_sz == 1) { + return single_divmod(quotient, remainder, lhs, rhs); + } + + return knuth_divmod(quotient, remainder, lhs, rhs); + } + + static std::pair divmod(const uinteger_t& lhs, const uinteger_t& rhs) { + uinteger_t quotient; + uinteger_t remainder; + divmod(quotient, remainder, lhs, rhs); + return std::make_pair(std::move(quotient), std::move(remainder)); + } + +private: + // Constructors + + template ::value and not std::is_same>::value>> + void _uint_t(const T& value) { + append(static_cast(value)); + } + + template ::value and not std::is_same>::value>> + void _uint_t(const T& value, Args... args) { + _uint_t(args...); + append(static_cast(value)); + } + + // This constructor creates a window view of the _value + uinteger_t(const uinteger_t& o, std::size_t begin, std::size_t end) : + _begin(begin), + _end(end), + _value(o._value), + _carry(o._carry) { } + +public: + uinteger_t() : + _begin(0), + _end(0), + _value(_value_instance), + _carry(false) { } + + uinteger_t(const uinteger_t& o) : + _begin(0), + _end(0), + _value_instance(o.begin(), o.end()), + _value(_value_instance), + _carry(o._carry) { } + + uinteger_t(uinteger_t&& o) : + _begin(std::move(o._begin)), + _end(std::move(o._end)), + _value_instance(std::move(o._value_instance)), + _value(_value_instance), + _carry(std::move(o._carry)) { } + + template ::value and not std::is_same>::value>> + uinteger_t(const T& value) : + _begin(0), + _end(0), + _value(_value_instance), + _carry(false) { + if (value) { + append(static_cast(value)); + } + } + + template ::value and not std::is_same>::value>> + uinteger_t(const T& value, Args... args) : + _begin(0), + _end(0), + _value(_value_instance), + _carry(false) { + _uint_t(args...); + append(static_cast(value)); + trim(); + } + + template ::value and not std::is_same>::value>> + uinteger_t(std::initializer_list list) : + _begin(0), + _end(0), + _value(_value_instance), + _carry(false) { + reserve(list.size()); + for (const auto& value : list) { + append(static_cast(value)); + } + trim(); + } + + template + explicit uinteger_t(T (&s)[N], int base=10) : + uinteger_t(s, N - 1, base) { } + + explicit uinteger_t(const unsigned char* bytes, std::size_t sz, int base) : + uinteger_t(strtouint(bytes, sz, base)) { } + + explicit uinteger_t(const char* bytes, std::size_t sz, int base) : + uinteger_t(strtouint(bytes, sz, base)) { } + + template + explicit uinteger_t(const std::vector& bytes, int base=10) : + uinteger_t(bytes.data(), bytes.size(), base) { } + + explicit uinteger_t(const std::string& bytes, int base=10) : + uinteger_t(bytes.data(), bytes.size(), base) { } + + // Assignment Operator + uinteger_t& operator=(const uinteger_t& o) { + _begin = 0; + _end = 0; + _value = container(o.begin(), o.end()); + _carry = o._carry; + return *this; + } + uinteger_t& operator=(uinteger_t&& o) { + _begin = std::move(o._begin); + _end = std::move(o._end); + _value_instance = std::move(o._value_instance); + _carry = std::move(o._carry); + return *this; + } + + // Typecast Operators + explicit operator bool() const { + return static_cast(size()); + } + explicit operator unsigned char() const { + return static_cast(size() ? front() : 0); + } + explicit operator unsigned short() const { + return static_cast(size() ? front() : 0); + } + explicit operator unsigned int() const { + return static_cast(size() ? front() : 0); + } + explicit operator unsigned long() const { + return static_cast(size() ? front() : 0); + } + explicit operator unsigned long long() const { + return static_cast(size() ? front() : 0); + } + explicit operator char() const { + return static_cast(size() ? front() : 0); + } + explicit operator short() const { + return static_cast(size() ? front() : 0); + } + explicit operator int() const { + return static_cast(size() ? front() : 0); + } + explicit operator long() const { + return static_cast(size() ? front() : 0); + } + explicit operator long long() const { + return static_cast(size() ? front() : 0); + } + + // Bitwise Operators + uinteger_t operator&(const uinteger_t& rhs) const { + return bitwise_and(*this, rhs); + } + + uinteger_t& operator&=(const uinteger_t& rhs) { + return bitwise_and(*this, rhs); + } + + uinteger_t operator|(const uinteger_t& rhs) const { + return bitwise_or(*this, rhs); + } + + uinteger_t& operator|=(const uinteger_t& rhs) { + return bitwise_or(*this, rhs); + } + + uinteger_t operator^(const uinteger_t& rhs) const { + return bitwise_xor(*this, rhs); + } + + uinteger_t& operator^=(const uinteger_t& rhs) { + return bitwise_xor(*this, rhs); + } + + uinteger_t operator~() const { + return bitwise_inv(*this); + } + + uinteger_t inv() { + return bitwise_inv(*this); + } + + // Bit Shift Operators + uinteger_t operator<<(const uinteger_t& rhs) const { + return bitwise_lshift(*this, rhs); + } + + uinteger_t& operator<<=(const uinteger_t& rhs) { + return bitwise_lshift(*this, rhs); + } + + uinteger_t operator>>(const uinteger_t& rhs) const { + return bitwise_rshift(*this, rhs); + } + + uinteger_t& operator>>=(const uinteger_t& rhs) { + return bitwise_rshift(*this, rhs); + } + + // Logical Operators + bool operator!() const { + return !static_cast(*this); + } + + bool operator&&(const uinteger_t& rhs) const { + return static_cast(*this) && rhs; + } + + bool operator||(const uinteger_t& rhs) const { + return static_cast(*this) || rhs; + } + + // Comparison Operators + bool operator==(const uinteger_t& rhs) const { + return compare(*this, rhs) == 0; + } + + bool operator!=(const uinteger_t& rhs) const { + return compare(*this, rhs) != 0; + } + + bool operator>(const uinteger_t& rhs) const { + return compare(*this, rhs) > 0; + } + + bool operator<(const uinteger_t& rhs) const { + return compare(*this, rhs) < 0; + } + + bool operator>=(const uinteger_t& rhs) const { + return compare(*this, rhs) >= 0; + } + + bool operator<=(const uinteger_t& rhs) const { + return compare(*this, rhs) <= 0; + } + + // Arithmetic Operators + uinteger_t operator+(const uinteger_t& rhs) const { + return add(*this, rhs); + } + + uinteger_t& operator+=(const uinteger_t& rhs) { + return add(*this, rhs); + } + + uinteger_t operator-(const uinteger_t& rhs) const { + return sub(*this, rhs); + } + + uinteger_t& operator-=(const uinteger_t& rhs) { + return sub(*this, rhs); + } + + uinteger_t operator*(const uinteger_t& rhs) const { + return mult(*this, rhs); + } + + uinteger_t& operator*=(const uinteger_t& rhs) { + return mult(*this, rhs); + } + + std::pair divmod(const uinteger_t& rhs) const { + return divmod(*this, rhs); + } + + uinteger_t operator/(const uinteger_t& rhs) const { + return divmod(*this, rhs).first; + } + + uinteger_t& operator/=(const uinteger_t& rhs) { + uinteger_t quotient; + uinteger_t remainder; + divmod(quotient, remainder, *this, rhs); + *this = std::move(quotient); + return *this; + } + + uinteger_t operator%(const uinteger_t& rhs) const { + return divmod(*this, rhs).second; + } + + uinteger_t& operator%=(const uinteger_t& rhs) { + uinteger_t quotient; + uinteger_t remainder; + divmod(quotient, remainder, *this, rhs); + *this = std::move(remainder); + return *this; + } + + // Increment Operator + uinteger_t& operator++() { + return *this += uint_1(); + } + uinteger_t operator++(int) { + uinteger_t temp(*this); + ++*this; + return temp; + } + + // Decrement Operator + uinteger_t& operator--() { + return *this -= uint_1(); + } + uinteger_t operator--(int) { + uinteger_t temp(*this); + --*this; + return temp; + } + + // Nothing done since promotion doesn't work here + uinteger_t operator+() const { + return *this; + } + + // two's complement + uinteger_t operator-() const { + return uint_0() - *this; + } + + // Get private value at index + const digit& value(std::size_t idx) const { + static const digit zero = 0; + return idx < size() ? *(begin() + idx) : zero; + } + + // Get value of bit N + bool operator[](std::size_t n) const { + auto nd = n / digit_bits; + auto nm = n % digit_bits; + return nd < size() ? (*(begin() + nd) >> nm) & 1 : 0; + } + + // Get bitsize of value + std::size_t bits() const { + auto sz = size(); + if (sz) { + return _bits(back()) + (sz - 1) * digit_bits; + } + return 0; + } + + // Get string representation of value + template ::value>> + Result str(int alphabet_base = 10) const { + auto num_sz = size(); + if (alphabet_base >= 2 && alphabet_base <= 36) { + Result result; + if (num_sz) { + auto alphabet_base_bits = base_bits(alphabet_base); + result.reserve(num_sz * base_size(alphabet_base)); + if (alphabet_base_bits) { + digit alphabet_base_mask = alphabet_base - 1; + std::size_t shift = 0; + auto ptr = reinterpret_cast(data()); + digit v = *ptr++; + v <<= half_digit_bits; + for (auto i = num_sz * 2 - 1; i; --i) { + v >>= half_digit_bits; + v |= (static_cast(*ptr++) << half_digit_bits); + do { + auto d = static_cast((v >> shift) & alphabet_base_mask); + result.push_back(chr(d)); + shift += alphabet_base_bits; + } while (shift <= half_digit_bits); + shift -= half_digit_bits; + } + v >>= (shift + half_digit_bits); + while (v) { + auto d = static_cast(v & alphabet_base_mask); + result.push_back(chr(d)); + v >>= alphabet_base_bits; + } + auto s = chr(0); + auto rit_f = std::find_if(result.rbegin(), result.rend(), [s](const char& c) { return c != s; }); + result.resize(result.rend() - rit_f); // shrink + } else { + uinteger_t uint_base = alphabet_base; + uinteger_t quotient = *this; + do { + auto r = quotient.divmod(uint_base); + auto d = static_cast(r.second); + result.push_back(chr(d)); + quotient = std::move(r.first); + } while (quotient); + } + std::reverse(result.begin(), result.end()); + } else { + result.push_back(chr(0)); + } + return result; + } else if (alphabet_base == 256) { + if (num_sz) { + auto ptr = reinterpret_cast(data()); + Result result(ptr, ptr + num_sz * digit_octets); + auto rit_f = std::find_if(result.rbegin(), result.rend(), [](const char& c) { return c; }); + result.resize(result.rend() - rit_f); // shrink + std::reverse(result.begin(), result.end()); + return result; + } else { + Result result; + result.push_back('\x00'); + return result; + } + } else { + throw std::invalid_argument("Base must be in the range [2, 36]"); + } + } + + static uinteger_t strtouint(const void* encoded, std::size_t encoded_size, int alphabet_base) { + const char* data = (const char *)encoded; + uinteger_t result; + + if (alphabet_base >= 2 && alphabet_base <= 36) { + uinteger_t alphabet_base_bits = base_bits(alphabet_base); + uinteger_t uint_base = alphabet_base; + if (alphabet_base_bits) { + for (; encoded_size; --encoded_size, ++data) { + auto d = ord(static_cast(*data)); + if (d < 0) { + throw std::invalid_argument("Error: Not a digit in base " + std::to_string(alphabet_base) + ": '" + std::string(1, *data) + "' at " + std::to_string(encoded_size)); + } + result = (result << alphabet_base_bits) | d; + } + } else { + for (; encoded_size; --encoded_size, ++data) { + auto d = ord(static_cast(*data)); + if (d < 0) { + throw std::invalid_argument("Error: Not a digit in base " + std::to_string(alphabet_base) + ": '" + std::string(1, *data) + "' at " + std::to_string(encoded_size)); + } + result = (result * uint_base) + d; + } + } + } else if (encoded_size && alphabet_base == 256) { + auto value_size = encoded_size / digit_octets; + auto value_padding = encoded_size % digit_octets; + if (value_padding) { + value_padding = digit_octets - value_padding; + ++value_size; + } + result.resize(value_size); // grow (no initialization) + *result.begin() = 0; // initialize value + auto ptr = reinterpret_cast(result.data()); + std::copy(data, data + encoded_size, ptr + value_padding); + std::reverse(ptr, ptr + value_size * digit_octets); + } else { + throw std::invalid_argument("Error: Cannot convert from base " + std::to_string(alphabet_base)); + } + + return result; + } + + template ::value>> + Result bin() const { + return str(2); + } + + template ::value>> + Result oct() const { + return str(8); + } + + template ::value>> + Result hex() const { + return str(16); + } + + template ::value>> + Result raw() const { + return str(256); + } +}; + +namespace std { // This is probably not a good idea + // Make it work with std::string() + inline std::string to_string(uinteger_t& num) { + return num.str(); + } + inline const std::string to_string(const uinteger_t& num) { + return num.str(); + } +} + +// lhs type T as first arguemnt +// If the output is not a bool, casts to type T + +// Bitwise Operators +template ::value and not std::is_same>::value>> +uinteger_t operator&(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) & rhs; +} + +template ::value and not std::is_same>::value>> +T& operator&=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(rhs & lhs); +} + +template ::value and not std::is_same>::value>> +uinteger_t operator|(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) | rhs; +} + +template ::value and not std::is_same>::value>> +T& operator|=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(rhs | lhs); +} + +template ::value and not std::is_same>::value>> +uinteger_t operator^(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) ^ rhs; +} + +template ::value and not std::is_same>::value>> +T& operator^=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(rhs ^ lhs); +} + +// Bitshift operators +template ::value and not std::is_same>::value>> +inline uinteger_t operator<<(T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) << rhs; +} + +template ::value and not std::is_same>::value>> +T& operator<<=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(lhs << rhs); +} + +template ::value and not std::is_same>::value>> +inline uinteger_t operator>>(T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) >> rhs; +} + +template ::value and not std::is_same>::value>> +T& operator>>=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(lhs >> rhs); +} + +// Comparison Operators +template ::value and not std::is_same>::value>> +bool operator==(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) == rhs; +} + +template ::value and not std::is_same>::value>> +bool operator!=(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) != rhs; +} + +template ::value and not std::is_same>::value>> +bool operator>(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) > rhs; +} + +template ::value and not std::is_same>::value>> +bool operator<(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) < rhs; +} + +template ::value and not std::is_same>::value>> +bool operator>=(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) >= rhs; +} + +template ::value and not std::is_same>::value>> +bool operator<=(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) <= rhs; +} + +// Arithmetic Operators +template ::value and not std::is_same>::value>> +uinteger_t operator+(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) + rhs; +} + +template ::value and not std::is_same>::value>> +T& operator+=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(rhs + lhs); +} + +template ::value and not std::is_same>::value>> +uinteger_t operator-(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) - rhs; +} + +template ::value and not std::is_same>::value>> +T& operator-=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(lhs - rhs); +} + +template ::value and not std::is_same>::value>> +uinteger_t operator*(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) * rhs; +} + +template ::value and not std::is_same>::value>> +T& operator*=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(rhs * lhs); +} + +template ::value and not std::is_same>::value>> +uinteger_t operator/(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) / rhs; +} + +template ::value and not std::is_same>::value>> +T& operator/=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(lhs / rhs); +} + +template ::value and not std::is_same>::value>> +uinteger_t operator%(const T& lhs, const uinteger_t& rhs) { + return uinteger_t(lhs) % rhs; +} + +template ::value and not std::is_same>::value>> +T& operator%=(T& lhs, const uinteger_t& rhs) { + return lhs = static_cast(lhs % rhs); +} + +// IO Operator +inline std::ostream& operator<<(std::ostream& stream, const uinteger_t& rhs) { + if (stream.flags() & stream.oct) { + stream << rhs.str(8); + } else if (stream.flags() & stream.dec) { + stream << rhs.str(10); + } else if (stream.flags() & stream.hex) { + stream << rhs.str(16); + } + return stream; +} + +#endif diff --git a/contrib/base58 b/contrib/base58 deleted file mode 160000 index a85f98fb4ed..00000000000 --- a/contrib/base58 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a85f98fb4ed52c2f4029a4b6ac1ef0bafdfc56f5 diff --git a/src/Functions/CMakeLists.txt b/src/Functions/CMakeLists.txt index bf72795aae0..32f7952961c 100644 --- a/src/Functions/CMakeLists.txt +++ b/src/Functions/CMakeLists.txt @@ -72,8 +72,8 @@ if (TARGET ch_contrib::llvm) target_link_libraries(clickhouse_functions PRIVATE ch_contrib::llvm) endif () -if (TARGET ch_contrib::base58) - target_link_libraries(clickhouse_functions PRIVATE ch_contrib::base58) +if (TARGET ch_contrib::base-x) + target_link_libraries(clickhouse_functions PRIVATE ch_contrib::base-x) endif() if (TARGET ch_contrib::base64) diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h index a0431ca47df..c0c54fd0ba9 100644 --- a/src/Functions/FunctionBase58Conversion.h +++ b/src/Functions/FunctionBase58Conversion.h @@ -26,19 +26,19 @@ struct Base58Encode { static constexpr auto name = "base58Encode"; - static void process(const ColumnString * input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) + static void process(const ColumnString& input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) { auto & dst_data = dst_column->getChars(); auto & dst_offsets = dst_column->getOffsets(); - size_t current_allocated_size = input->getChars().size(); + size_t current_allocated_size = input.getChars().size(); dst_data.resize(current_allocated_size); dst_offsets.resize(input_rows_count); - const ColumnString::Offsets & src_offsets = input->getOffsets(); + const ColumnString::Offsets & src_offsets = input.getOffsets(); - const auto * source = input->getChars().raw_data(); + const auto * source = input.getChars().raw_data(); auto * dst = dst_data.data(); auto * dst_pos = dst; @@ -48,8 +48,9 @@ struct Base58Encode const auto& encoder = (alphabet == "bitcoin") ? Base58::bitcoin() : ((alphabet == "flickr") ? Base58::flickr() : ((alphabet == "ripple") ? Base58::ripple() : - Base58::base58())); + Base58::base58())); //GMP + std::string encoded; for (size_t row = 0; row < input_rows_count; ++row) { size_t srclen = src_offsets[row] - src_offset_prev - 1; @@ -57,7 +58,7 @@ struct Base58Encode /// We don't know the size of the result string beforehand (it's not byte-to-byte encoding), /// so we may need to do many resizes (the worst case -- we'll do it for each row) /// This way we do exponential resizes and one final resize after whole operation is complete - std::string encoded; + encoded.clear(); if (srclen) encoder.encode(encoded, source, srclen); size_t outlen = encoded.size(); @@ -66,14 +67,15 @@ struct Base58Encode { current_allocated_size += current_allocated_size; dst_data.resize(current_allocated_size); + auto processed_offset = dst_pos - dst; + dst = dst_data.data(); + dst_pos = dst; + dst_pos += processed_offset; } - if (srclen) - std::strcpy(reinterpret_cast(dst_pos), encoded.c_str()); + std::memcpy(dst_pos, encoded.c_str(), ++outlen); source += srclen + 1; dst_pos += outlen; - *dst_pos = '\0'; - dst_pos += 1; dst_offsets[row] = dst_pos - dst; src_offset_prev = src_offsets[row]; @@ -88,19 +90,19 @@ struct Base58Decode { static constexpr auto name = "base58Decode"; - static void process(const ColumnString * input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) + static void process(const ColumnString& input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) { auto & dst_data = dst_column->getChars(); auto & dst_offsets = dst_column->getOffsets(); - size_t current_allocated_size = input->getChars().size(); + size_t current_allocated_size = input.getChars().size(); dst_data.resize(current_allocated_size); dst_offsets.resize(input_rows_count); - const ColumnString::Offsets & src_offsets = input->getOffsets(); + const ColumnString::Offsets & src_offsets = input.getOffsets(); - const auto * source = input->getChars().raw_data(); + const auto * source = input.getChars().raw_data(); auto * dst = dst_data.data(); auto * dst_pos = dst; @@ -112,6 +114,7 @@ struct Base58Decode ((alphabet == "ripple") ? Base58::ripple() : Base58::base58())); + std::string decoded; for (size_t row = 0; row < input_rows_count; ++row) { size_t srclen = src_offsets[row] - src_offset_prev - 1; @@ -119,21 +122,24 @@ struct Base58Decode /// We don't know the size of the result string beforehand (it's not byte-to-byte encoding), /// so we may need to do many resizes (the worst case -- we'll do it for each row) /// This way we do exponential resizes and one final resize after whole operation is complete - std::string decoded; - decoder.decode(decoded, source, srclen); + decoded.clear(); + if (srclen) + decoder.decode(decoded, source, srclen); size_t outlen = decoded.size(); if (processed_size + outlen >= current_allocated_size) { current_allocated_size += current_allocated_size; dst_data.resize(current_allocated_size); + auto processed_offset = dst_pos - dst; + dst = dst_data.data(); + dst_pos = dst; + dst_pos += processed_offset; } - std::strcpy(reinterpret_cast(dst_pos), decoded.c_str()); + std::memcpy(dst_pos, decoded.c_str(), ++outlen); source += srclen + 1; dst_pos += outlen; - *dst_pos = '\0'; - dst_pos += 1; dst_offsets[row] = dst_pos - dst; src_offset_prev = src_offsets[row]; @@ -216,7 +222,7 @@ public: auto dst_column = ColumnString::create(); - Func::process(input, dst_column, alphabet, input_rows_count); + Func::process(*input, dst_column, alphabet, input_rows_count); return dst_column; } diff --git a/src/Functions/configure_config.cmake b/src/Functions/configure_config.cmake index 776996d7e17..856d9a5682a 100644 --- a/src/Functions/configure_config.cmake +++ b/src/Functions/configure_config.cmake @@ -1,7 +1,7 @@ if (TARGET ch_contrib::fastops) set(USE_FASTOPS 1) endif() -if (TARGET ch_contrib::base58) +if (TARGET ch_contrib::base-x) set(USE_BASE58 1) endif() if (TARGET ch_contrib::base64) diff --git a/tests/queries/0_stateless/02337_base58.reference b/tests/queries/0_stateless/02337_base58.reference new file mode 100644 index 00000000000..718dfeb4a34 --- /dev/null +++ b/tests/queries/0_stateless/02337_base58.reference @@ -0,0 +1,48 @@ +32YCBjgZhV4AdCWHaCDNu + +f +fo +foo +foob +fooba +foobar +Hello world! + +f +fo +foo +foob +fooba +foobar +Hello world! + +f +fo +foo +foob +fooba +foobar +Hello world! + +f +fo +foo +foob +fooba +foobar +Hello world! + +2m +8o8 +bQbp +3csAg9 +CZJRhmz +t1Zv2yaZ + +f +fo +foo +foob +fooba +foobar +1 1 diff --git a/tests/queries/0_stateless/02337_base58.sql b/tests/queries/0_stateless/02337_base58.sql new file mode 100644 index 00000000000..b67993d2cc9 --- /dev/null +++ b/tests/queries/0_stateless/02337_base58.sql @@ -0,0 +1,17 @@ +-- Tags: no-fasttest + +SET send_logs_level = 'fatal'; + +SELECT base58Encode('Hold my beer...'); + +SELECT base58Decode(encoded, 'gmp') FROM (SELECT base58Encode(val, 'gmp') as encoded FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar', 'Hello world!']) val)); +SELECT base58Decode(encoded, 'ripple') FROM (SELECT base58Encode(val, 'ripple') as encoded FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar', 'Hello world!']) val)); +SELECT base58Decode(encoded, 'flickr') FROM (SELECT base58Encode(val, 'flickr') as encoded FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar', 'Hello world!']) val)); +SELECT base58Decode(encoded, 'bitcoin') FROM (SELECT base58Encode(val, 'bitcoin') as encoded FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar', 'Hello world!']) val)); + +SELECT base58Encode(val) FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar']) val); +SELECT base58Decode(val) FROM (select arrayJoin(['', '2m', '8o8', 'bQbp', '3csAg9', 'CZJRhmz', 't1Zv2yaZ']) val); + +SELECT base58Decode(base58Encode('foo')) = 'foo', base58Encode(base58Decode('bQbp')) == 'bQbp'; + +SELECT base58Decode('Why_not?'); -- { serverError 1001 } \ No newline at end of file From c13bf03fe066950a48d85625d55d7d0552fad636 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Mon, 20 Jun 2022 09:56:21 +0800 Subject: [PATCH 069/525] fixed code style --- src/DataTypes/NestedUtils.cpp | 4 ++-- tests/integration/test_hive_query/test.py | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/DataTypes/NestedUtils.cpp b/src/DataTypes/NestedUtils.cpp index 0df664ad408..2e429bcff10 100644 --- a/src/DataTypes/NestedUtils.cpp +++ b/src/DataTypes/NestedUtils.cpp @@ -311,7 +311,7 @@ std::optional NestedColumnExtractHelper::extractColumn( column.name = original_column_name; return {column}; } - else + else { return {}; } @@ -325,7 +325,7 @@ std::optional NestedColumnExtractHelper::extractColumn( ColumnsWithTypeAndName columns = {nested_table->getByName(new_column_name_prefix, case_insentive)}; Block sub_block(columns); nested_tables[new_column_name_prefix] = std::make_shared(Nested::flatten(sub_block)); - return extractColumn(original_column_name, new_column_name_prefix, nested_names.second); + return extractColumn(original_column_name, new_column_name_prefix, nested_names.second); } } diff --git a/tests/integration/test_hive_query/test.py b/tests/integration/test_hive_query/test.py index 4bac09320ce..538c99d1a65 100644 --- a/tests/integration/test_hive_query/test.py +++ b/tests/integration/test_hive_query/test.py @@ -401,6 +401,7 @@ def test_cache_dir_use(started_cluster): ) assert result0 != "0" and result1 != "0" + def test_cache_dir_use(started_cluster): node = started_cluster.instances["h0_0_0"] result0 = node.exec_in_container( @@ -411,6 +412,7 @@ def test_cache_dir_use(started_cluster): ) assert result0 != "0" and result1 != "0" + def test_hive_struct_type(started_cluster): node = started_cluster.instances["h0_0_0"] result = node.query( @@ -419,17 +421,17 @@ def test_hive_struct_type(started_cluster): """ ) result = node.query( - """ + """ SELECT * FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 - """ + """ ) - expected_result = """1 2 3 4 5 6.11 7.22 8 2022-02-20 14:47:04 2022-02-20 hello world hello world hello world true [1,2,3] ['hello world','hello world'] [1.1,1.2] {'a':100,'b':200,'c':300} {'a':'aa','b':'bb','c':'cc'} {'a':111.1,'b':222.2,'c':333.3} ('aaa',200,333.3,(10,'xyz')) 2022-02-20""" + expected_result = """1 2 3 4 5 6.11 7.22 8 2022-02-20 14:47:04 2022-02-20 hello world hello world hello world true [1,2,3] ['hello world','hello world'] [1.1,1.2] {'a':100,'b':200,'c':300} {'a':'aa','b':'bb','c':'cc'} {'a':111.1,'b':222.2,'c':333.3} ('aaa',200,333.3,(10,'xyz')) 2022-02-20""" assert result.strip() == expected_result result = node.query( - """ + """ SELECT day, f_struct.a FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 - """ + """ ) expected_result = """2022-02-20 aaa 10""" assert result.strip() == expected_result From 6ac68e8303c0208979089ba6d8083c329d72f8f1 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Mon, 30 May 2022 22:17:46 +0000 Subject: [PATCH 070/525] DISTINCT in order optimization + optimization for DISTINCT containing primary key columns --- src/Core/Settings.h | 1 + src/Interpreters/ExpressionAnalyzer.cpp | 2 + src/Interpreters/ExpressionAnalyzer.h | 1 + src/Interpreters/InterpreterSelectQuery.cpp | 24 +- src/Interpreters/InterpreterSelectQuery.h | 2 +- .../InterpreterSelectWithUnionQuery.cpp | 2 +- src/Processors/QueryPlan/DistinctStep.cpp | 31 ++- src/Processors/QueryPlan/DistinctStep.h | 13 +- .../DistinctPrimaryKeyTransform.cpp | 214 ++++++++++++++++++ .../Transforms/DistinctPrimaryKeyTransform.h | 63 ++++++ src/Storages/ReadInOrderOptimizer.cpp | 33 ++- src/Storages/ReadInOrderOptimizer.h | 10 + src/Storages/SelectQueryInfo.h | 12 +- ...7_distinct_in_order_optimization.reference | 83 +++++++ .../02317_distinct_in_order_optimization.sql | 47 ++++ 15 files changed, 512 insertions(+), 26 deletions(-) create mode 100644 src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp create mode 100644 src/Processors/Transforms/DistinctPrimaryKeyTransform.h create mode 100644 tests/queries/0_stateless/02317_distinct_in_order_optimization.reference create mode 100644 tests/queries/0_stateless/02317_distinct_in_order_optimization.sql diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 756e6eb651e..27902b8f2df 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -603,6 +603,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Bool, throw_if_no_data_to_insert, true, "Enables or disables empty INSERTs, enabled by default", 0) \ M(Bool, compatibility_ignore_auto_increment_in_create_table, false, "Ignore AUTO_INCREMENT keyword in column declaration if true, otherwise return error. It simplifies migration from MySQL", 0) \ M(Bool, multiple_joins_try_to_keep_original_names, false, "Do not add aliases to top level expression list on multiple joins rewrite", 0) \ + M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization for primary key (prefix) columns in MergeTree family table engines.", 0) \ // End of COMMON_SETTINGS // Please add settings related to formats into the FORMAT_FACTORY_SETTINGS and move obsolete settings to OBSOLETE_SETTINGS. diff --git a/src/Interpreters/ExpressionAnalyzer.cpp b/src/Interpreters/ExpressionAnalyzer.cpp index 00333503db1..f05cada7929 100644 --- a/src/Interpreters/ExpressionAnalyzer.cpp +++ b/src/Interpreters/ExpressionAnalyzer.cpp @@ -1859,6 +1859,8 @@ ExpressionAnalysisResult::ExpressionAnalysisResult( && !query.final() && join_allow_read_in_order; + optimize_distinct_in_order = settings.optimize_distinct_in_order && storage && query.distinct; + /// If there is aggregation, we execute expressions in SELECT and ORDER BY on the initiating server, otherwise on the source servers. query_analyzer.appendSelect(chain, only_types || (need_aggregate ? !second_stage : !first_stage)); diff --git a/src/Interpreters/ExpressionAnalyzer.h b/src/Interpreters/ExpressionAnalyzer.h index 80c664832e5..79d2c16efff 100644 --- a/src/Interpreters/ExpressionAnalyzer.h +++ b/src/Interpreters/ExpressionAnalyzer.h @@ -232,6 +232,7 @@ struct ExpressionAnalysisResult bool remove_where_filter = false; bool optimize_read_in_order = false; bool optimize_aggregation_in_order = false; + bool optimize_distinct_in_order = false; bool join_has_delayed_stream = false; bool use_grouping_set_key = false; diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index ec7c3878b06..ed6fd7ec7fd 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1243,7 +1243,7 @@ void InterpreterSelectQuery::executeImpl(QueryPlan & query_plan, std::optional

getInputOrder(metadata_snapshot, context, limit); } + if (!analysis_result.optimize_aggregation_in_order && analysis_result.optimize_distinct_in_order) + { + query_info.distinct_optimizer = std::make_shared(analysis_result.selected_columns); + query_info.distinct_order_info = query_info.distinct_optimizer->getInputOrder(metadata_snapshot); + } query_info.storage_limits = std::make_shared(storage_limits); @@ -2554,7 +2559,7 @@ void InterpreterSelectQuery::executeProjection(QueryPlan & query_plan, const Act } -void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct) +void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct, InputOrderInfoPtr distinct_info) { auto & query = getSelectQuery(); if (query.distinct) @@ -2571,8 +2576,11 @@ void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - auto distinct_step - = std::make_unique(query_plan.getCurrentDataStream(), limits, limit_for_distinct, columns, pre_distinct); + if (distinct_info && !settings.optimize_distinct_in_order) + distinct_info = nullptr; + + auto distinct_step = std::make_unique( + query_plan.getCurrentDataStream(), limits, limit_for_distinct, columns, pre_distinct, distinct_info); if (pre_distinct) distinct_step->setStepDescription("Preliminary DISTINCT"); diff --git a/src/Interpreters/InterpreterSelectQuery.h b/src/Interpreters/InterpreterSelectQuery.h index 40afaaaeed0..f441c3774a4 100644 --- a/src/Interpreters/InterpreterSelectQuery.h +++ b/src/Interpreters/InterpreterSelectQuery.h @@ -180,7 +180,7 @@ private: void executeLimit(QueryPlan & query_plan); void executeOffset(QueryPlan & query_plan); static void executeProjection(QueryPlan & query_plan, const ActionsDAGPtr & expression); - void executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct); + void executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct, InputOrderInfoPtr distinct_info); void executeExtremes(QueryPlan & query_plan); void executeSubqueriesInSetsAndJoins(QueryPlan & query_plan, std::unordered_map & subqueries_for_sets); void diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index f0150fe663f..a1d8431d626 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -319,7 +319,7 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); auto distinct_step - = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); + = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false, nullptr); query_plan.addStep(std::move(distinct_step)); } diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index 16670c53fd5..6d8f1cc4f92 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -43,7 +44,8 @@ DistinctStep::DistinctStep( const SizeLimits & set_size_limits_, UInt64 limit_hint_, const Names & columns_, - bool pre_distinct_) + bool pre_distinct_, + const InputOrderInfoPtr & distinct_info_) : ITransformingStep( input_stream_, input_stream_.header, @@ -51,6 +53,7 @@ DistinctStep::DistinctStep( , set_size_limits(set_size_limits_) , limit_hint(limit_hint_) , columns(columns_) + , distinct_info(distinct_info_) , pre_distinct(pre_distinct_) { if (!output_stream->distinct_columns.empty() /// Columns already distinct, do nothing @@ -71,13 +74,29 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil if (!pre_distinct) pipeline.resize(1); - pipeline.addSimpleTransform([&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + if (pre_distinct && distinct_info) { - if (stream_type != QueryPipelineBuilder::StreamType::Main) - return nullptr; + pipeline.addSimpleTransform( + [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + { + if (stream_type != QueryPipelineBuilder::StreamType::Main) + return nullptr; - return std::make_shared(header, set_size_limits, limit_hint, columns); - }); + return std::make_shared( + header, set_size_limits, limit_hint, distinct_info->order_key_prefix_descr, columns); + }); + } + else + { + pipeline.addSimpleTransform( + [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + { + if (stream_type != QueryPipelineBuilder::StreamType::Main) + return nullptr; + + return std::make_shared(header, set_size_limits, limit_hint, columns); + }); + } } void DistinctStep::describeActions(FormatSettings & settings) const diff --git a/src/Processors/QueryPlan/DistinctStep.h b/src/Processors/QueryPlan/DistinctStep.h index a48a779425d..c64b9f6ccb5 100644 --- a/src/Processors/QueryPlan/DistinctStep.h +++ b/src/Processors/QueryPlan/DistinctStep.h @@ -1,6 +1,7 @@ #pragma once #include #include +#include namespace DB { @@ -10,11 +11,12 @@ class DistinctStep : public ITransformingStep { public: DistinctStep( - const DataStream & input_stream_, - const SizeLimits & set_size_limits_, - UInt64 limit_hint_, - const Names & columns_, - bool pre_distinct_); /// If is enabled, execute distinct for separate streams. Otherwise, merge streams. + const DataStream & input_stream_, + const SizeLimits & set_size_limits_, + UInt64 limit_hint_, + const Names & columns_, + bool pre_distinct_, /// If is enabled, execute distinct for separate streams. Otherwise, merge streams. + const InputOrderInfoPtr & distinct_info_); String getName() const override { return "Distinct"; } @@ -27,6 +29,7 @@ private: SizeLimits set_size_limits; UInt64 limit_hint; Names columns; + InputOrderInfoPtr distinct_info; bool pre_distinct; }; diff --git a/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp b/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp new file mode 100644 index 00000000000..ba3a72f1285 --- /dev/null +++ b/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp @@ -0,0 +1,214 @@ +#include + +namespace DB +{ + +namespace ErrorCodes +{ + extern const int SET_SIZE_LIMIT_EXCEEDED; +} + +DistinctPrimaryKeyTransform::DistinctPrimaryKeyTransform( + const Block & header_, + const SizeLimits & output_size_limits_, + UInt64 limit_hint_, + const SortDescription & sorted_columns_descr_, + const Names & source_columns) + : ISimpleTransform(header_, header_, true) + , limit_hint(limit_hint_) + , output_size_limits(output_size_limits_) + , sorted_columns_descr(sorted_columns_descr_) +{ + /// calculate sorted columns positions + sorted_columns_pos.reserve(sorted_columns_descr.size()); + for (auto const & descr : sorted_columns_descr) + { + size_t pos = header_.getPositionByName(descr.column_name); + sorted_columns_pos.emplace_back(pos); + } + + /// calculate not-sorted columns positions + other_columns_pos.reserve(source_columns.size()); + for (const auto & source_column : source_columns) + { + size_t pos = header_.getPositionByName(source_column); + if (std::find(sorted_columns_pos.begin(), sorted_columns_pos.end(), pos) != sorted_columns_pos.end()) + continue; + + const auto & col = header_.getByPosition(pos).column; + if (col && !isColumnConst(*col)) + other_columns_pos.emplace_back(pos); + } + + /// reserve space in auxiliary column vectors for processing + sorted_columns.reserve(sorted_columns_pos.size()); + other_columns.reserve(other_columns_pos.size()); + current_key.reserve(sorted_columns.size()); +} + +void DistinctPrimaryKeyTransform::initChunkProcessing(const Columns & input_columns) +{ + sorted_columns.clear(); + for (size_t pos : sorted_columns_pos) + sorted_columns.emplace_back(input_columns[pos].get()); + + other_columns.clear(); + for (size_t pos : other_columns_pos) + other_columns.emplace_back(input_columns[pos].get()); + + if (!other_columns.empty() && data.type == ClearableSetVariants::Type::EMPTY) + data.init(ClearableSetVariants::chooseMethod(other_columns, other_columns_sizes)); +} + +size_t DistinctPrimaryKeyTransform::ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end) +{ + size_t count = 0; + switch (data.type) + { + case ClearableSetVariants::Type::EMPTY: + break; + // clang-format off +#define M(NAME) \ + case ClearableSetVariants::Type::NAME: \ + count = buildFilterForRange(*data.NAME, filter, range_begin, range_end, data); \ + break; + + APPLY_FOR_SET_VARIANTS(M) +#undef M + // clang-format on + } + return count; +} + +template +size_t DistinctPrimaryKeyTransform::buildFilterForRange( + Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants) +{ + typename Method::State state(other_columns, other_columns_sizes, nullptr); + method.data.clear(); + + size_t count = 0; + for (size_t i = range_begin; i < range_end; ++i) + { + auto emplace_result = state.emplaceKey(method.data, i, variants.string_pool); + + /// emit the record if there is no such key in the current set, skip otherwise + filter[i] = emplace_result.isInserted(); + if (filter[i]) + ++count; + } + return count; +} + +void DistinctPrimaryKeyTransform::setCurrentKey(const size_t row_pos) +{ + current_key.clear(); + for (auto const & col : sorted_columns) + { + current_key.emplace_back(col->cloneEmpty()); + current_key.back()->insertFrom(*col, row_pos); + } +} + +bool DistinctPrimaryKeyTransform::isCurrentKey(const size_t row_pos) +{ + for (size_t i = 0; i < sorted_columns.size(); ++i) + { + const auto & sort_col_desc = sorted_columns_descr[i]; + int res = sort_col_desc.direction * current_key[i]->compareAt(0, row_pos, *sorted_columns[i], sort_col_desc.nulls_direction); + if (res != 0) + return false; + } + return true; +} + +size_t DistinctPrimaryKeyTransform::getRangeEnd(size_t range_begin, size_t range_end) +{ + size_t low = range_begin; + size_t high = range_end-1; + while (low <= high) + { + size_t mid = low + (high - low) / 2; + if (isCurrentKey(mid)) + low = mid + 1; + else + { + high = mid - 1; + range_end = mid; + } + } + return range_end; +} + +size_t DistinctPrimaryKeyTransform::getStartPosition(const size_t chunk_rows) +{ + if (!current_key.empty()) // current_key is empty on very first transform() call + { + if (other_columns.empty() && isCurrentKey(0)) + return getRangeEnd(0, chunk_rows); + } + return 0; +} + +void DistinctPrimaryKeyTransform::transform(Chunk & chunk) +{ + const size_t chunk_rows = chunk.getNumRows(); + size_t output_rows = 0; + Columns input_columns = chunk.detachColumns(); + + /// split input columns into sorted and other("non-sorted") columns + initChunkProcessing(input_columns); + + /// build filter: + /// (1) find range with the same values in sorted columns -> [range_begin, range_end) + /// (2) for found range + /// if there is no "non-sorted" columns: filter out all rows in range except first one + /// otherwise: apply ordinary distinct + /// (3) repeat until chunk is processed + IColumn::Filter filter(chunk_rows); + size_t range_begin = getStartPosition(chunk_rows); + if (range_begin > 0) + std::fill(filter.begin(), filter.begin() + range_begin, 0); /// skip rows already included in distinct on previous transform() + + size_t range_end = range_begin; + while (range_end != chunk_rows) + { + // set current key to find range + setCurrentKey(range_begin); + + // find new range [range_begin, range_end) + range_end = getRangeEnd(range_begin, chunk_rows); + + // update filter for range + if (other_columns.empty()) + { + filter[range_begin] = 1; + std::fill(filter.begin() + range_begin + 1, filter.begin() + range_end, 0); + ++output_rows; + } + else + { + // ordinary distinct in range if there are "non-sorted" columns + output_rows += ordinaryDistinctOnRange(filter, range_begin, range_end); + } + + // set where next range start + range_begin = range_end; + } + + /// apply the built filter + for (auto & input_column : input_columns) + input_column = input_column->filter(filter, output_rows); + + chunk.setColumns(std::move(input_columns), output_rows); + + /// Update total output rows and check limits + total_output_rows += output_rows; + if ((limit_hint && total_output_rows >= limit_hint) + || !output_size_limits.check(total_output_rows, data.getTotalByteCount(), "DISTINCT", ErrorCodes::SET_SIZE_LIMIT_EXCEEDED)) + { + stopReading(); + } +} + +} diff --git a/src/Processors/Transforms/DistinctPrimaryKeyTransform.h b/src/Processors/Transforms/DistinctPrimaryKeyTransform.h new file mode 100644 index 00000000000..d862e4a28ce --- /dev/null +++ b/src/Processors/Transforms/DistinctPrimaryKeyTransform.h @@ -0,0 +1,63 @@ +#pragma once + +#include +#include +#include +#include +#include + +namespace DB +{ + +/// +/// DISTINCT optimization for MergeTree family engines +/// Applied in case of DISTINCT is done over primary key(prefix) columns +/// It leverages their sorting property +/// +class DistinctPrimaryKeyTransform : public ISimpleTransform +{ +public: + DistinctPrimaryKeyTransform( + const Block & header_, + const SizeLimits & output_size_limits_, + UInt64 limit_hint_, + const SortDescription & sorted_columns_descr_, + const Names & source_columns_); + + String getName() const override { return "DistinctPrimaryKeyTransform"; } + +protected: + void transform(Chunk & chunk) override; + +private: + void initChunkProcessing(const Columns & input_columns); + size_t getStartPosition(size_t chunk_rows); + size_t ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end); + inline void setCurrentKey(size_t row_pos); + inline bool isCurrentKey(size_t row_pos); + inline size_t getRangeEnd(size_t range_begin, size_t range_end); + + template + size_t + buildFilterForRange(Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants); + + + ClearableSetVariants data; + const size_t limit_hint; + size_t total_output_rows = 0; + + /// Restrictions on the maximum size of the output data. + const SizeLimits output_size_limits; + + const SortDescription sorted_columns_descr; + ColumnNumbers sorted_columns_pos; + ColumnRawPtrs sorted_columns; // used during processing + + ColumnNumbers other_columns_pos; + Sizes other_columns_sizes; + ColumnRawPtrs other_columns; // used during processing + + MutableColumns current_key; +}; + +} diff --git a/src/Storages/ReadInOrderOptimizer.cpp b/src/Storages/ReadInOrderOptimizer.cpp index 3ff4baa0b11..36c4c39c6b1 100644 --- a/src/Storages/ReadInOrderOptimizer.cpp +++ b/src/Storages/ReadInOrderOptimizer.cpp @@ -1,13 +1,15 @@ #include +#include +#include #include #include +#include #include #include -#include -#include -#include #include +#include +#include namespace DB { @@ -260,4 +262,29 @@ InputOrderInfoPtr ReadInOrderOptimizer::getInputOrder( return getInputOrderImpl(metadata_snapshot, required_sort_description, elements_actions, limit); } + +ReadInOrderOptimizerForDistinct::ReadInOrderOptimizerForDistinct(const Names & source_columns_) + : source_columns(source_columns_.begin(), source_columns_.end()) +{ +} + +InputOrderInfoPtr ReadInOrderOptimizerForDistinct::getInputOrder(const StorageMetadataPtr & metadata_snapshot) const +{ + Names sorting_key_columns = metadata_snapshot->getSortingKeyColumns(); + if (sorting_key_columns.empty()) + return {}; + + SortDescription order_key_prefix_descr; + for (const auto & sorting_key_column : sorting_key_columns) + { + if (source_columns.find(sorting_key_column) == source_columns.end()) + break; + order_key_prefix_descr.emplace_back(sorting_key_column, 1, 1); + } + if (order_key_prefix_descr.empty()) + return {}; + + // todo: InputOrderInfo contains more info then needed for distinct, probably it makes sense to replace it + return std::make_shared(SortDescription{}, std::move(order_key_prefix_descr), 1, 0); +} } diff --git a/src/Storages/ReadInOrderOptimizer.h b/src/Storages/ReadInOrderOptimizer.h index fd8c9187ddb..fe24541f750 100644 --- a/src/Storages/ReadInOrderOptimizer.h +++ b/src/Storages/ReadInOrderOptimizer.h @@ -39,4 +39,14 @@ private: SortDescription required_sort_description; const ASTSelectQuery & query; }; + +class ReadInOrderOptimizerForDistinct +{ +public: + explicit ReadInOrderOptimizerForDistinct(const Names & source_columns_); + InputOrderInfoPtr getInputOrder(const StorageMetadataPtr & metadata_snapshot) const; + +private: + NameSet source_columns; +}; } diff --git a/src/Storages/SelectQueryInfo.h b/src/Storages/SelectQueryInfo.h index bdb4c392c48..f0523415e79 100644 --- a/src/Storages/SelectQueryInfo.h +++ b/src/Storages/SelectQueryInfo.h @@ -38,6 +38,9 @@ using TreeRewriterResultPtr = std::shared_ptr; class ReadInOrderOptimizer; using ReadInOrderOptimizerPtr = std::shared_ptr; +class ReadInOrderOptimizerForDistinct; +using ReadInOrderOptimizerForDistinctPtr = std::shared_ptr; + class Cluster; using ClusterPtr = std::shared_ptr; @@ -95,10 +98,12 @@ struct InputOrderInfo InputOrderInfo( const SortDescription & order_key_fixed_prefix_descr_, const SortDescription & order_key_prefix_descr_, - int direction_, UInt64 limit_) + int direction_, + UInt64 limit_) : order_key_fixed_prefix_descr(order_key_fixed_prefix_descr_) , order_key_prefix_descr(order_key_prefix_descr_) - , direction(direction_), limit(limit_) + , direction(direction_) + , limit(limit_) { } @@ -160,6 +165,9 @@ struct SelectQueryInfoBase /// Can be modified while reading from storage InputOrderInfoPtr input_order_info; + ReadInOrderOptimizerForDistinctPtr distinct_optimizer; + InputOrderInfoPtr distinct_order_info; + /// Prepared sets are used for indices by storage engine. /// Example: x IN (1, 2, 3) PreparedSets sets; diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference new file mode 100644 index 00000000000..87063502bb8 --- /dev/null +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference @@ -0,0 +1,83 @@ +disable optimize_distinct_in_order +pipeline does _not_ contain the optimization +(Expression) +ExpressionTransform + (Distinct) + DistinctTransform + (Distinct) + DistinctTransform + (Expression) + ExpressionTransform + (ReadFromPreparedSource) + NullSource 0 → 1 +enable optimize_distinct_in_order +distinct with primary key prefix -> pipeline contains the optimization +(Expression) +ExpressionTransform + (Distinct) + DistinctTransform + (Distinct) + DistinctPrimaryKeyTransform + (Expression) + ExpressionTransform + (ReadFromPreparedSource) + NullSource 0 → 1 +distinct with non-primary key prefix -> pipeline does _not_ contain the optimization +(Expression) +ExpressionTransform + (Distinct) + DistinctTransform + (Distinct) + DistinctTransform + (Expression) + ExpressionTransform + (ReadFromPreparedSource) + NullSource 0 → 1 +the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one +single-threaded distinct +0 +multi-threaded distinct +0 +skip part of chunk since it contians values from previous one +single-threaded distinct +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +multi-threaded distinct +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +table with not only primary key columns +distinct with key-prefix only +0 +distinct with full key, 2 columns +0 0 +0 1 +0 2 +0 3 +0 4 +0 5 +0 6 +0 7 +0 8 +0 9 +distinct with key prefix and non-sorted column +0 0 +0 1 +0 2 +0 3 +0 4 diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql new file mode 100644 index 00000000000..93bf520b3f4 --- /dev/null +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql @@ -0,0 +1,47 @@ + +drop table if exists distinct_in_order sync; +create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by (a, b, c); + +select 'disable optimize_distinct_in_order'; +set optimize_distinct_in_order=0; +select 'pipeline does _not_ contain the optimization'; +explain pipeline select distinct * from distinct_in_order settings max_threads=1; + +select 'enable optimize_distinct_in_order'; +set optimize_distinct_in_order=1; +select 'distinct with primary key prefix -> pipeline contains the optimization'; +explain pipeline select distinct a, c from distinct_in_order settings max_threads=1; +select 'distinct with non-primary key prefix -> pipeline does _not_ contain the optimization'; +explain pipeline select distinct b, c from distinct_in_order settings max_threads=1; + +select 'the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one'; +drop table if exists distinct_in_order sync; +create table distinct_in_order (a int) engine=MergeTree() order by a settings index_granularity=10; +insert into distinct_in_order (a) select * from zeros(30); +select 'single-threaded distinct'; +select distinct * from distinct_in_order settings max_block_size=10, max_threads=1; +select 'multi-threaded distinct'; +select distinct * from distinct_in_order settings max_block_size=10; + +select 'skip part of chunk since it contians values from previous one'; +drop table if exists distinct_in_order sync; +create table distinct_in_order (a int) engine=MergeTree() order by a settings index_granularity=10; +insert into distinct_in_order (a) select * from zeros(10); +insert into distinct_in_order select * from numbers(10); +select 'single-threaded distinct'; +select distinct a from distinct_in_order settings max_block_size=10, max_threads=1; +select 'multi-threaded distinct'; +select distinct a from distinct_in_order settings max_block_size=10; + +select 'table with not only primary key columns'; +drop table if exists distinct_in_order sync; +create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by (a, b); +insert into distinct_in_order select number % number, number % 10, number % 5 from numbers(1,1000000); +select 'distinct with key-prefix only'; +select distinct a from distinct_in_order; +select 'distinct with full key, 2 columns'; +select distinct a,b from distinct_in_order order by b; +select 'distinct with key prefix and non-sorted column'; +select distinct a,c from distinct_in_order order by c; + +-- drop table if exists distinct_in_order sync; From 78d55d6f46ab3aee8cfdce1bb17e131dba54f6eb Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 20 Jun 2022 19:30:54 +0500 Subject: [PATCH 071/525] small fixes --- .gitmodules | 2 +- src/Functions/FunctionBase58Conversion.h | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.gitmodules b/.gitmodules index e1960d2144b..a0ad0b69822 100644 --- a/.gitmodules +++ b/.gitmodules @@ -270,4 +270,4 @@ url = https://github.com/schoentoon/hashidsxx.git [submodule "contrib/base-x"] path = contrib/base-x - url = https://github.com/Kronuz/base-x.git + url = https://github.com/ClickHouse/base-x.git diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h index c0c54fd0ba9..e472e997c32 100644 --- a/src/Functions/FunctionBase58Conversion.h +++ b/src/Functions/FunctionBase58Conversion.h @@ -26,12 +26,13 @@ struct Base58Encode { static constexpr auto name = "base58Encode"; - static void process(const ColumnString& input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) + static void process(const ColumnString & input, ColumnString::MutablePtr & dst_column, const std::string & alphabet, size_t input_rows_count) { auto & dst_data = dst_column->getChars(); auto & dst_offsets = dst_column->getOffsets(); - size_t current_allocated_size = input.getChars().size(); + /// Wikipedia states Base58 has efficiency of 73%, and we take 1.5 scale to avoid reallocation in most cases + size_t current_allocated_size = ceil(1.5 * input.getChars().size()); dst_data.resize(current_allocated_size); dst_offsets.resize(input_rows_count); @@ -90,11 +91,12 @@ struct Base58Decode { static constexpr auto name = "base58Decode"; - static void process(const ColumnString& input, ColumnString::MutablePtr& dst_column, std::string& alphabet, size_t input_rows_count) + static void process(const ColumnString & input, ColumnString::MutablePtr & dst_column, const std::string & alphabet, size_t input_rows_count) { auto & dst_data = dst_column->getChars(); auto & dst_offsets = dst_column->getOffsets(); + /// We allocate probably even more then needed to avoid many resizes size_t current_allocated_size = input.getChars().size(); dst_data.resize(current_allocated_size); @@ -202,7 +204,7 @@ public: const ColumnString * input = checkAndGetColumn(column_string.get()); if (!input) throw Exception( - "Illegal column " + arguments[0].column->getName() + " of first argument of function " + getName(), + "Illegal column " + arguments[0].column->getName() + " of first argument of function " + getName() + ", must be String", ErrorCodes::ILLEGAL_COLUMN); std::string alphabet = "bitcoin"; @@ -214,8 +216,8 @@ public: if (!alphabet_column) throw Exception("Second argument for function " + getName() + " must be constant String", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - if (alphabet = alphabet_column->getValue(); - alphabet != "bitcoin" && alphabet != "ripple" && alphabet != "flickr" && alphabet != "gmp") + alphabet = alphabet_column->getValue(); + if (alphabet != "bitcoin" && alphabet != "ripple" && alphabet != "flickr" && alphabet != "gmp") throw Exception("Second argument for function " + getName() + " must be 'bitcoin', 'ripple', 'gmp' or 'flickr'", ErrorCodes::ILLEGAL_COLUMN); } From 9c6b2b9ba075d61a022f02e5b49cf59cfa03450d Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 20 Jun 2022 20:10:28 +0500 Subject: [PATCH 072/525] added docs --- docs/en/development/contrib.md | 1 + .../functions/encoding-functions.md | 43 ++++++++++++++++++ docs/ru/development/contrib.md | 1 + .../functions/encoding-functions.md | 44 +++++++++++++++++++ 4 files changed, 89 insertions(+) diff --git a/docs/en/development/contrib.md b/docs/en/development/contrib.md index 7713c397e46..831923dc43a 100644 --- a/docs/en/development/contrib.md +++ b/docs/en/development/contrib.md @@ -18,6 +18,7 @@ The list of third-party libraries: | aws-c-common | [Apache](https://github.com/ClickHouse-Extras/aws-c-common/blob/736a82d1697c108b04a277e66438a7f4e19b6857/LICENSE) | | aws-c-event-stream | [Apache](https://github.com/ClickHouse-Extras/aws-c-event-stream/blob/3bc33662f9ccff4f4cbcf9509cc78c26e022fde0/LICENSE) | | aws-checksums | [Apache](https://github.com/ClickHouse-Extras/aws-checksums/blob/519d6d9093819b6cf89ffff589a27ef8f83d0f65/LICENSE) | +| base58 | [MIT](https://github.com/ClickHouse/base-x/blob/3e58874643c087f57e82b0ff03825c933fab945a/LICENSE) | | base64 | [BSD 2-clause](https://github.com/ClickHouse-Extras/Turbo-Base64/blob/af9b331f2b4f30b41c70f3a571ff904a8251c1d3/LICENSE) | | boost | [Boost](https://github.com/ClickHouse-Extras/boost/blob/9cf09dbfd55a5c6202dedbdf40781a51b02c2675/LICENSE_1_0.txt) | | boringssl | [BSD](https://github.com/ClickHouse-Extras/boringssl/blob/a6a2e2ab3e44d97ce98e51c558e989f211de7eb3/LICENSE) | diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 4ee71267a09..42a6d75952c 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -440,3 +440,46 @@ Result: │ [0,1,2,3,4,5,6,7] │ └───────────────────┘ ``` + +## Base58Encode(plaintext[, alphabet_name]) +## Base58Decode(plaintext[, alphabet_name]) + +Accepts a String and encodes/decodes it using [Base58](https://tools.ietf.org/id/draft-msporny-base58-01.html) encoding scheme using specified alphabet. + +**Syntax** + +```sql +base58Encode(decoded[, alphabet_name]) +base58Decode(encoded[, alphabet_name]) +``` + +**Arguments** + +- `decoded` — [String](../../sql-reference/data-types/string.md) column or constant. +- `encoded` — [String](../../sql-reference/data-types/string.md) column or constant. If the string is not a valid base58-encoded value, `1001 Exception` will be thrown. +- `alphabet_name` — String constant. Specifies alphabet used for encoding. Possible values: `gmp`, `bitcoin`, `ripple`, `flickr`. Default: `gmp`. + +**Returned value** + +- A string containing encoded/decoded value of 1st argument. + +Type: [String](../../sql-reference/data-types/string.md). + +**Example** + +Query: + +``` sql +SELECT base58Encode('encode', 'flickr'); +SELECT base58Decode('izCFiDUY', 'ripple'); +``` + +Result: +```text +┌─base58Encode('encode', 'flickr')─┐ +│ SvyTHb1D │ +└──────────────────────────────────┘ +┌─base58Decode('izCFiDUY', 'ripple')─┐ +│ decode │ +└────────────────────────────────────┘ +``` diff --git a/docs/ru/development/contrib.md b/docs/ru/development/contrib.md index 1b99ec97553..0f4d22e90ce 100644 --- a/docs/ru/development/contrib.md +++ b/docs/ru/development/contrib.md @@ -18,6 +18,7 @@ sidebar_label: "Используемые сторонние библиотеки | aws-c-common | [Apache](https://github.com/ClickHouse-Extras/aws-c-common/blob/736a82d1697c108b04a277e66438a7f4e19b6857/LICENSE) | | aws-c-event-stream | [Apache](https://github.com/ClickHouse-Extras/aws-c-event-stream/blob/3bc33662f9ccff4f4cbcf9509cc78c26e022fde0/LICENSE) | | aws-checksums | [Apache](https://github.com/ClickHouse-Extras/aws-checksums/blob/519d6d9093819b6cf89ffff589a27ef8f83d0f65/LICENSE) | +| base58 | [MIT](https://github.com/ClickHouse/base-x/blob/3e58874643c087f57e82b0ff03825c933fab945a/LICENSE) | | base64 | [BSD 2-clause](https://github.com/ClickHouse-Extras/Turbo-Base64/blob/af9b331f2b4f30b41c70f3a571ff904a8251c1d3/LICENSE) | | boost | [Boost](https://github.com/ClickHouse-Extras/boost/blob/9cf09dbfd55a5c6202dedbdf40781a51b02c2675/LICENSE_1_0.txt) | | boringssl | [BSD](https://github.com/ClickHouse-Extras/boringssl/blob/a6a2e2ab3e44d97ce98e51c558e989f211de7eb3/LICENSE) | diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 65d2b0e6538..255985fcc92 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -404,3 +404,47 @@ SELECT bitPositionsToArray(toInt8(-1)) AS bit_positions; │ [0,1,2,3,4,5,6,7] │ └───────────────────┘ ``` + +## Base58Encode(plaintext[, alphabet_name]) +## Base58Decode(plaintext[, alphabet_name]) + +Принимает на вход строку или колонку строк и кодирует/раскодирует их с помощью схемы кодирования [Base58](https://tools.ietf.org/id/draft-msporny-base58-01.html) с использованием указанного алфавита. + +**Синтаксис** + +```sql +base58Encode(decoded[, alphabet_name]) +base58Decode(encoded[, alphabet_name]) +``` + +**Аргументы** + +- `decoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). +- `encoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). Если входная строка не является корректным кодом для какой-либо другой строки, возникнет исключение `1001`. +- `alphabet_name` — Строковая константа. Указывает алфавит, для которого необходимо получить код. Может принимать одно из следующих значений: `gmp`, `bitcoin`, `ripple`, `flickr`. По умолчанию: `gmp`. + +**Возвращаемое значение** + +- Строка, содержащая раскодированный/закодированный первый аргумент. + +Тип: [String](../../sql-reference/data-types/string.md). + +**Пример:** + +Запрос: + +``` sql +SELECT base58Encode('encode', 'flickr'); +SELECT base58Decode('izCFiDUY', 'ripple'); +``` + +Результат: +```text +┌─base58Encode('encode', 'flickr')─┐ +│ SvyTHb1D │ +└──────────────────────────────────┘ +┌─base58Decode('izCFiDUY', 'ripple')─┐ +│ decode │ +└────────────────────────────────────┘ +``` + From d4e5686b997660b7943d0e6760b6f11baf91acf9 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 20 Jun 2022 20:13:09 +0500 Subject: [PATCH 073/525] minor: fix message for base64 --- src/Functions/FunctionBase64Conversion.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Functions/FunctionBase64Conversion.h b/src/Functions/FunctionBase64Conversion.h index a1d6b966660..87a3309f7ef 100644 --- a/src/Functions/FunctionBase64Conversion.h +++ b/src/Functions/FunctionBase64Conversion.h @@ -85,7 +85,7 @@ public: { if (!WhichDataType(arguments[0].type).isString()) throw Exception( - "Illegal type " + arguments[0].type->getName() + " of 1 argument of function " + getName() + ". Must be String.", + "Illegal type " + arguments[0].type->getName() + " of 1st argument of function " + getName() + ". Must be String.", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); return std::make_shared(); @@ -98,7 +98,7 @@ public: if (!input) throw Exception( - "Illegal column " + arguments[0].column->getName() + " of first argument of function " + getName(), + "Illegal column " + arguments[0].column->getName() + " of first argument of function " + getName() + ", must be of type String", ErrorCodes::ILLEGAL_COLUMN); auto dst_column = ColumnString::create(); From 53d656d89f9f1dafd89c21d32e3f73ed741f72db Mon Sep 17 00:00:00 2001 From: Dmitry Novik Date: Mon, 20 Jun 2022 17:35:24 +0000 Subject: [PATCH 074/525] Fix deadlock in OvercommitTracker logging --- src/Common/MemoryTracker.cpp | 7 +-- src/Common/OvercommitTracker.cpp | 31 ++++++++---- src/Interpreters/InternalTextLogsQueue.cpp | 1 - src/Interpreters/InternalTextLogsQueue.h | 56 ---------------------- 4 files changed, 23 insertions(+), 72 deletions(-) diff --git a/src/Common/MemoryTracker.cpp b/src/Common/MemoryTracker.cpp index 51f4c83dc23..a9aef7d8465 100644 --- a/src/Common/MemoryTracker.cpp +++ b/src/Common/MemoryTracker.cpp @@ -338,11 +338,8 @@ void MemoryTracker::free(Int64 size) accounted_size += new_amount; } } - if (!OvercommitTrackerBlockerInThread::isBlocked()) - { - if (auto * overcommit_tracker_ptr = overcommit_tracker.load(std::memory_order_relaxed); overcommit_tracker_ptr) - overcommit_tracker_ptr->tryContinueQueryExecutionAfterFree(accounted_size); - } + if (auto * overcommit_tracker_ptr = overcommit_tracker.load(std::memory_order_relaxed)) + overcommit_tracker_ptr->tryContinueQueryExecutionAfterFree(accounted_size); if (auto * loaded_next = parent.load(std::memory_order_relaxed)) loaded_next->free(size); diff --git a/src/Common/OvercommitTracker.cpp b/src/Common/OvercommitTracker.cpp index 3cef72eb8b4..097b6637569 100644 --- a/src/Common/OvercommitTracker.cpp +++ b/src/Common/OvercommitTracker.cpp @@ -23,8 +23,16 @@ OvercommitTracker::OvercommitTracker(std::mutex & global_mutex_) , allow_release(true) {} +#define LOG_DEBUG_SAFE(...) \ + { \ + OvercommitTrackerBlockerInThread blocker; \ + LOG_DEBUG(__VA_ARGS__); \ + } + OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int64 amount) { + if (OvercommitTrackerBlockerInThread::isBlocked()) + return OvercommitResult::NONE; // NOTE: Do not change the order of locks // // global_mutex must be acquired before overcommit_m, because @@ -73,7 +81,7 @@ OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int }); auto wait_end_time = std::chrono::system_clock::now(); ProfileEvents::increment(ProfileEvents::MemoryOvercommitWaitTimeMicroseconds, (wait_end_time - wait_start_time) / 1us); - LOG_DEBUG(getLogger(), "Memory was{} freed within timeout", (timeout ? " not" : "")); + LOG_DEBUG_SAFE(getLogger(), "Memory was{} freed within timeout", (timeout ? " not" : "")) required_memory -= amount; Int64 still_need = required_per_thread[tracker]; // If enough memory is freed it will be 0 @@ -98,6 +106,9 @@ OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int void OvercommitTracker::tryContinueQueryExecutionAfterFree(Int64 amount) { + if (OvercommitTrackerBlockerInThread::isBlocked()) + return; + std::lock_guard guard(overcommit_m); if (cancellation_state != QueryCancellationState::NONE) { @@ -112,7 +123,7 @@ void OvercommitTracker::onQueryStop(MemoryTracker * tracker) std::unique_lock lk(overcommit_m); if (picked_tracker == tracker) { - LOG_DEBUG(getLogger(), "Picked query stopped"); + LOG_DEBUG_SAFE(getLogger(), "Picked query stopped") reset(); cv.notify_all(); @@ -140,7 +151,7 @@ void UserOvercommitTracker::pickQueryToExcludeImpl() // At this moment query list must be read only. // This is guaranteed by locking global_mutex in OvercommitTracker::needToStopQuery. auto & queries = user_process_list->queries; - LOG_DEBUG(logger, "Trying to choose query to stop from {} queries", queries.size()); + LOG_DEBUG_SAFE(logger, "Trying to choose query to stop from {} queries", queries.size()) for (auto const & query : queries) { if (query.second->isKilled()) @@ -151,15 +162,15 @@ void UserOvercommitTracker::pickQueryToExcludeImpl() continue; auto ratio = memory_tracker->getOvercommitRatio(); - LOG_DEBUG(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit); + LOG_DEBUG_SAFE(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit) if (ratio.soft_limit != 0 && current_ratio < ratio) { query_tracker = memory_tracker; current_ratio = ratio; } } - LOG_DEBUG(logger, "Selected to stop query with overcommit ratio {}/{}", - current_ratio.committed, current_ratio.soft_limit); + LOG_DEBUG_SAFE(logger, "Selected to stop query with overcommit ratio {}/{}", + current_ratio.committed, current_ratio.soft_limit) picked_tracker = query_tracker; } @@ -174,7 +185,7 @@ void GlobalOvercommitTracker::pickQueryToExcludeImpl() OvercommitRatio current_ratio{0, 0}; // At this moment query list must be read only. // This is guaranteed by locking global_mutex in OvercommitTracker::needToStopQuery. - LOG_DEBUG(logger, "Trying to choose query to stop from {} queries", process_list->size()); + LOG_DEBUG_SAFE(logger, "Trying to choose query to stop from {} queries", process_list->size()) for (auto const & query : process_list->processes) { if (query.isKilled()) @@ -190,15 +201,15 @@ void GlobalOvercommitTracker::pickQueryToExcludeImpl() if (!memory_tracker) continue; auto ratio = memory_tracker->getOvercommitRatio(user_soft_limit); - LOG_DEBUG(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit); + LOG_DEBUG_SAFE(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit) if (current_ratio < ratio) { query_tracker = memory_tracker; current_ratio = ratio; } } - LOG_DEBUG(logger, "Selected to stop query with overcommit ratio {}/{}", - current_ratio.committed, current_ratio.soft_limit); + LOG_DEBUG_SAFE(logger, "Selected to stop query with overcommit ratio {}/{}", + current_ratio.committed, current_ratio.soft_limit) picked_tracker = query_tracker; } diff --git a/src/Interpreters/InternalTextLogsQueue.cpp b/src/Interpreters/InternalTextLogsQueue.cpp index 6176e3cc865..2172a6f4261 100644 --- a/src/Interpreters/InternalTextLogsQueue.cpp +++ b/src/Interpreters/InternalTextLogsQueue.cpp @@ -38,7 +38,6 @@ MutableColumns InternalTextLogsQueue::getSampleColumns() void InternalTextLogsQueue::pushBlock(Block && log_block) { - OvercommitTrackerBlockerInThread blocker; static Block sample_block = getSampleBlock(); if (blocksHaveEqualStructure(sample_block, log_block)) diff --git a/src/Interpreters/InternalTextLogsQueue.h b/src/Interpreters/InternalTextLogsQueue.h index a7193a55178..53710fa3bd2 100644 --- a/src/Interpreters/InternalTextLogsQueue.h +++ b/src/Interpreters/InternalTextLogsQueue.h @@ -18,62 +18,6 @@ public: static Block getSampleBlock(); static MutableColumns getSampleColumns(); - template - bool push(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::push(std::forward(args)...); - } - - template - bool emplace(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::emplace(std::forward(args)...); - } - - template - bool pop(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::pop(std::forward(args)...); - } - - template - bool tryPush(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::tryPush(std::forward(args)...); - } - - template - bool tryEmplace(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::tryEmplace(std::forward(args)...); - } - - template - bool tryPop(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::tryPop(std::forward(args)...); - } - - template - void clear(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::clear(std::forward(args)...); - } - - template - void clearAndFinish(Args &&... args) - { - OvercommitTrackerBlockerInThread blocker; - return ConcurrentBoundedQueue::clearAndFinish(std::forward(args)...); - } - /// Is used to pass block from remote server to the client void pushBlock(Block && log_block); From ad2b9cc4e4dcb740f42976e0e0ceffbc8eaf45b6 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 20 Jun 2022 23:38:45 +0500 Subject: [PATCH 075/525] upd tests --- tests/queries/0_stateless/02337_base58.reference | 1 - tests/queries/0_stateless/02337_base58.sql | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/queries/0_stateless/02337_base58.reference b/tests/queries/0_stateless/02337_base58.reference index 718dfeb4a34..f4a2c95304b 100644 --- a/tests/queries/0_stateless/02337_base58.reference +++ b/tests/queries/0_stateless/02337_base58.reference @@ -45,4 +45,3 @@ foo foob fooba foobar -1 1 diff --git a/tests/queries/0_stateless/02337_base58.sql b/tests/queries/0_stateless/02337_base58.sql index b67993d2cc9..68dac97a20b 100644 --- a/tests/queries/0_stateless/02337_base58.sql +++ b/tests/queries/0_stateless/02337_base58.sql @@ -3,6 +3,8 @@ SET send_logs_level = 'fatal'; SELECT base58Encode('Hold my beer...'); +SELECT base58Encode('Hold my beer...', ''); -- { serverError 44 } +SELECT base58Encode('Hold my beer...', 'gmp', 'third'); -- { serverError 36 } SELECT base58Decode(encoded, 'gmp') FROM (SELECT base58Encode(val, 'gmp') as encoded FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar', 'Hello world!']) val)); SELECT base58Decode(encoded, 'ripple') FROM (SELECT base58Encode(val, 'ripple') as encoded FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar', 'Hello world!']) val)); @@ -12,6 +14,4 @@ SELECT base58Decode(encoded, 'bitcoin') FROM (SELECT base58Encode(val, 'bitcoin' SELECT base58Encode(val) FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar']) val); SELECT base58Decode(val) FROM (select arrayJoin(['', '2m', '8o8', 'bQbp', '3csAg9', 'CZJRhmz', 't1Zv2yaZ']) val); -SELECT base58Decode(base58Encode('foo')) = 'foo', base58Encode(base58Decode('bQbp')) == 'bQbp'; - -SELECT base58Decode('Why_not?'); -- { serverError 1001 } \ No newline at end of file +SELECT base58Decode('Why_not?'); -- { serverError 1001 } From 22af00b757f14b30c3912c57ad7ccbe1ea25e6c9 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 20 Jun 2022 23:53:47 +0500 Subject: [PATCH 076/525] rename variable + fix handling of ENABLE_LIBRARIES --- contrib/base-x-cmake/CMakeLists.txt | 7 +++++++ src/Functions/FunctionBase58Conversion.h | 2 +- src/Functions/FunctionsBase58.cpp | 3 +-- src/Functions/config_functions.h.in | 2 +- src/Functions/configure_config.cmake | 2 +- src/Functions/registerFunctionsString.cpp | 4 ++-- src/configure_config.cmake | 4 ++-- 7 files changed, 15 insertions(+), 9 deletions(-) diff --git a/contrib/base-x-cmake/CMakeLists.txt b/contrib/base-x-cmake/CMakeLists.txt index 48cb54d307f..ab5696c9fb6 100644 --- a/contrib/base-x-cmake/CMakeLists.txt +++ b/contrib/base-x-cmake/CMakeLists.txt @@ -1,3 +1,10 @@ +option (ENABLE_BASEX "Enable base-x" ${ENABLE_LIBRARIES}) + +if (NOT ENABLE_BASEX) + message(STATUS "Not using base-x") + return() +endif() + set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/base-x") set (SRCS diff --git a/src/Functions/FunctionBase58Conversion.h b/src/Functions/FunctionBase58Conversion.h index e472e997c32..ed4667aa63b 100644 --- a/src/Functions/FunctionBase58Conversion.h +++ b/src/Functions/FunctionBase58Conversion.h @@ -1,7 +1,7 @@ #pragma once #include "config_functions.h" -#if USE_BASE58 +#if USE_BASEX # include # include # include diff --git a/src/Functions/FunctionsBase58.cpp b/src/Functions/FunctionsBase58.cpp index 3ccb4d790ce..dc325ff8cfc 100644 --- a/src/Functions/FunctionsBase58.cpp +++ b/src/Functions/FunctionsBase58.cpp @@ -1,7 +1,6 @@ #include -#if USE_BASE58 +#if USE_BASEX #include -#include namespace DB { diff --git a/src/Functions/config_functions.h.in b/src/Functions/config_functions.h.in index 001712d5cef..0bfea78922b 100644 --- a/src/Functions/config_functions.h.in +++ b/src/Functions/config_functions.h.in @@ -2,7 +2,7 @@ // .h autogenerated by cmake! -#cmakedefine01 USE_BASE58 +#cmakedefine01 USE_BASEX #cmakedefine01 USE_BASE64 #cmakedefine01 USE_SIMDJSON #cmakedefine01 USE_RAPIDJSON diff --git a/src/Functions/configure_config.cmake b/src/Functions/configure_config.cmake index 856d9a5682a..1038c09e53f 100644 --- a/src/Functions/configure_config.cmake +++ b/src/Functions/configure_config.cmake @@ -2,7 +2,7 @@ if (TARGET ch_contrib::fastops) set(USE_FASTOPS 1) endif() if (TARGET ch_contrib::base-x) - set(USE_BASE58 1) + set(USE_BASEX 1) endif() if (TARGET ch_contrib::base64) set(USE_BASE64 1) diff --git a/src/Functions/registerFunctionsString.cpp b/src/Functions/registerFunctionsString.cpp index 43035ef51e7..248b6391b4f 100644 --- a/src/Functions/registerFunctionsString.cpp +++ b/src/Functions/registerFunctionsString.cpp @@ -49,7 +49,7 @@ void registerFunctionBase64Decode(FunctionFactory &); void registerFunctionTryBase64Decode(FunctionFactory &); #endif -#if USE_BASE58 +#if USE_BASEX void registerFunctionBase58Encode(FunctionFactory &); void registerFunctionBase58Decode(FunctionFactory &); #endif @@ -110,7 +110,7 @@ void registerFunctionsString(FunctionFactory & factory) registerFunctionTryBase64Decode(factory); #endif -#if USE_BASE58 +#if USE_BASEX registerFunctionBase58Encode(factory); registerFunctionBase58Decode(factory); #endif diff --git a/src/configure_config.cmake b/src/configure_config.cmake index fc2a858e75a..45e45b505d4 100644 --- a/src/configure_config.cmake +++ b/src/configure_config.cmake @@ -55,8 +55,8 @@ endif() if (TARGET ch_contrib::base64) set(USE_BASE64 1) endif() -if (TARGET ch_contrib::base58) - set(USE_BASE58 1) +if (TARGET ch_contrib::base-x) + set(USE_BASEX 1) endif() if (TARGET ch_contrib::yaml_cpp) set(USE_YAML_CPP 1) From 9ca368ac20a35e6e49f3162f00f06a6206b9e6dd Mon Sep 17 00:00:00 2001 From: Dmitry Novik Date: Mon, 20 Jun 2022 23:10:40 +0000 Subject: [PATCH 077/525] Use do while(false) in macro --- src/Common/OvercommitTracker.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Common/OvercommitTracker.cpp b/src/Common/OvercommitTracker.cpp index 097b6637569..1e36c99b41c 100644 --- a/src/Common/OvercommitTracker.cpp +++ b/src/Common/OvercommitTracker.cpp @@ -24,10 +24,10 @@ OvercommitTracker::OvercommitTracker(std::mutex & global_mutex_) {} #define LOG_DEBUG_SAFE(...) \ - { \ + do { \ OvercommitTrackerBlockerInThread blocker; \ LOG_DEBUG(__VA_ARGS__); \ - } + } while (false) OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int64 amount) { @@ -81,7 +81,7 @@ OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int }); auto wait_end_time = std::chrono::system_clock::now(); ProfileEvents::increment(ProfileEvents::MemoryOvercommitWaitTimeMicroseconds, (wait_end_time - wait_start_time) / 1us); - LOG_DEBUG_SAFE(getLogger(), "Memory was{} freed within timeout", (timeout ? " not" : "")) + LOG_DEBUG_SAFE(getLogger(), "Memory was{} freed within timeout", (timeout ? " not" : "")); required_memory -= amount; Int64 still_need = required_per_thread[tracker]; // If enough memory is freed it will be 0 @@ -123,7 +123,7 @@ void OvercommitTracker::onQueryStop(MemoryTracker * tracker) std::unique_lock lk(overcommit_m); if (picked_tracker == tracker) { - LOG_DEBUG_SAFE(getLogger(), "Picked query stopped") + LOG_DEBUG_SAFE(getLogger(), "Picked query stopped"); reset(); cv.notify_all(); @@ -151,7 +151,7 @@ void UserOvercommitTracker::pickQueryToExcludeImpl() // At this moment query list must be read only. // This is guaranteed by locking global_mutex in OvercommitTracker::needToStopQuery. auto & queries = user_process_list->queries; - LOG_DEBUG_SAFE(logger, "Trying to choose query to stop from {} queries", queries.size()) + LOG_DEBUG_SAFE(logger, "Trying to choose query to stop from {} queries", queries.size()); for (auto const & query : queries) { if (query.second->isKilled()) @@ -162,7 +162,7 @@ void UserOvercommitTracker::pickQueryToExcludeImpl() continue; auto ratio = memory_tracker->getOvercommitRatio(); - LOG_DEBUG_SAFE(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit) + LOG_DEBUG_SAFE(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit); if (ratio.soft_limit != 0 && current_ratio < ratio) { query_tracker = memory_tracker; @@ -170,7 +170,7 @@ void UserOvercommitTracker::pickQueryToExcludeImpl() } } LOG_DEBUG_SAFE(logger, "Selected to stop query with overcommit ratio {}/{}", - current_ratio.committed, current_ratio.soft_limit) + current_ratio.committed, current_ratio.soft_limit); picked_tracker = query_tracker; } @@ -185,7 +185,7 @@ void GlobalOvercommitTracker::pickQueryToExcludeImpl() OvercommitRatio current_ratio{0, 0}; // At this moment query list must be read only. // This is guaranteed by locking global_mutex in OvercommitTracker::needToStopQuery. - LOG_DEBUG_SAFE(logger, "Trying to choose query to stop from {} queries", process_list->size()) + LOG_DEBUG_SAFE(logger, "Trying to choose query to stop from {} queries", process_list->size()); for (auto const & query : process_list->processes) { if (query.isKilled()) @@ -201,7 +201,7 @@ void GlobalOvercommitTracker::pickQueryToExcludeImpl() if (!memory_tracker) continue; auto ratio = memory_tracker->getOvercommitRatio(user_soft_limit); - LOG_DEBUG_SAFE(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit) + LOG_DEBUG_SAFE(logger, "Query has ratio {}/{}", ratio.committed, ratio.soft_limit); if (current_ratio < ratio) { query_tracker = memory_tracker; @@ -209,7 +209,7 @@ void GlobalOvercommitTracker::pickQueryToExcludeImpl() } } LOG_DEBUG_SAFE(logger, "Selected to stop query with overcommit ratio {}/{}", - current_ratio.committed, current_ratio.soft_limit) + current_ratio.committed, current_ratio.soft_limit); picked_tracker = query_tracker; } From bbd73ba7271ebca7e6c4d829740041c28c9b9399 Mon Sep 17 00:00:00 2001 From: Larry Luo Date: Mon, 20 Jun 2022 21:27:33 -0400 Subject: [PATCH 078/525] use utility methods to access x509 struct fields. --- src/Functions/FunctionShowCertificate.h | 6 +++--- src/Storages/System/StorageSystemCertificates.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Functions/FunctionShowCertificate.h b/src/Functions/FunctionShowCertificate.h index bb3c0fd8299..0724158f66b 100644 --- a/src/Functions/FunctionShowCertificate.h +++ b/src/Functions/FunctionShowCertificate.h @@ -74,7 +74,7 @@ public: { char buf[1024] = {0}; - const ASN1_INTEGER * sn = cert->cert_info->serialNumber; + const ASN1_INTEGER * sn = X509_get0_serialNumber(cert); BIGNUM * bnsn = ASN1_INTEGER_to_BN(sn, nullptr); SCOPE_EXIT( { @@ -101,7 +101,7 @@ public: } } - char * issuer = X509_NAME_oneline(cert->cert_info->issuer, nullptr, 0); + char * issuer = X509_NAME_oneline(X509_get_issuer_name(cert), nullptr, 0); if (issuer) { SCOPE_EXIT( @@ -130,7 +130,7 @@ public: } } - char * subject = X509_NAME_oneline(cert->cert_info->subject, nullptr, 0); + char * subject = X509_NAME_oneline(X509_get_subject_name(cert), nullptr, 0); if (subject) { SCOPE_EXIT( diff --git a/src/Storages/System/StorageSystemCertificates.cpp b/src/Storages/System/StorageSystemCertificates.cpp index 6e37046e2b4..4ad3d4df29c 100644 --- a/src/Storages/System/StorageSystemCertificates.cpp +++ b/src/Storages/System/StorageSystemCertificates.cpp @@ -55,7 +55,7 @@ static void populateTable(const X509 * cert, MutableColumns & res_columns, const { char buf[1024] = {0}; - const ASN1_INTEGER * sn = cert->cert_info->serialNumber; + const ASN1_INTEGER * sn = X509_get0_serialNumber(cert); BIGNUM * bnsn = ASN1_INTEGER_to_BN(sn, nullptr); SCOPE_EXIT( { @@ -83,7 +83,7 @@ static void populateTable(const X509 * cert, MutableColumns & res_columns, const } ++col; - char * issuer = X509_NAME_oneline(cert->cert_info->issuer, nullptr, 0); + char * issuer = X509_NAME_oneline(X509_get_issuer_name(cert), nullptr, 0); if (issuer) { SCOPE_EXIT( @@ -114,7 +114,7 @@ static void populateTable(const X509 * cert, MutableColumns & res_columns, const } ++col; - char * subject = X509_NAME_oneline(cert->cert_info->subject, nullptr, 0); + char * subject = X509_NAME_oneline(X509_get_subject_name(cert), nullptr, 0); if (subject) { SCOPE_EXIT( From fc641d9ce49bbd0e256ddb45d01cee02405f2f2d Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Tue, 21 Jun 2022 11:29:55 +0800 Subject: [PATCH 079/525] some changes --- src/DataTypes/NestedUtils.cpp | 9 +++++++-- src/DataTypes/NestedUtils.h | 8 ++++++-- src/Storages/Hive/StorageHive.cpp | 6 +++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/DataTypes/NestedUtils.cpp b/src/DataTypes/NestedUtils.cpp index 2e429bcff10..9cab49a509d 100644 --- a/src/DataTypes/NestedUtils.cpp +++ b/src/DataTypes/NestedUtils.cpp @@ -4,6 +4,7 @@ #include #include #include +#include "Columns/IColumn.h" #include #include @@ -119,7 +120,11 @@ Block flatten(const Block & block) { const DataTypes & element_types = type_tuple->getElements(); const Strings & names = type_tuple->getElementNames(); - const ColumnTuple * column_tuple = typeid_cast(elem.column.get()); + const ColumnTuple * column_tuple; + if(isColumnConst(*elem.column)) + column_tuple = typeid_cast(&assert_cast(*elem.column).getDataColumn()); + else + column_tuple = typeid_cast(elem.column.get()); size_t tuple_size = column_tuple->tupleSize(); for (size_t i = 0; i < tuple_size; ++i) { @@ -306,7 +311,7 @@ std::optional NestedColumnExtractHelper::extractColumn( { if (nested_table->has(new_column_name_prefix, case_insentive)) { - ColumnWithTypeAndName column = nested_table->getByName(new_column_name_prefix, case_insentive); + ColumnWithTypeAndName column = *nested_table->findByName(new_column_name_prefix, case_insentive); if (case_insentive) column.name = original_column_name; return {column}; diff --git a/src/DataTypes/NestedUtils.h b/src/DataTypes/NestedUtils.h index 39f73b65100..9473d30497a 100644 --- a/src/DataTypes/NestedUtils.h +++ b/src/DataTypes/NestedUtils.h @@ -18,8 +18,9 @@ namespace Nested /// Returns the prefix of the name to the first '.'. Or the name is unchanged if there is no dot. std::string extractTableName(const std::string & nested_name); - /// Replace Array(Tuple(...)) columns to a multiple of Array columns in a form of `column_name.element_name`. - /// only for named tuples that actually represent Nested structures. + /// Flat a column of nested type into columns + /// 1) For named tuples,t Tuple(x .., y ..., ...), replace it with t.x ..., t.y ... , ... + /// 2) For an Array with named Tuple element column, a Array(Tuple(x ..., y ..., ...)), replace it with multiple Array Columns, a.x ..., a.y ..., ... Block flatten(const Block & block); /// Collect Array columns in a form of `column_name.element_name` to single Array(Tuple(...)) column. @@ -35,6 +36,9 @@ namespace Nested std::unordered_set getAllTableNames(const Block & block, bool to_lower_case = false); } +/// Use this class to extract element columns from columns of nested type in a block, e.g. named Tuple. +/// It can extract a column from a multiple nested type column, e.g. named Tuple in named Tuple +/// Keeps some intermediate datas to avoid rebuild them multi-times. class NestedColumnExtractHelper { public: diff --git a/src/Storages/Hive/StorageHive.cpp b/src/Storages/Hive/StorageHive.cpp index 60936f6a3f4..6d298c0033c 100644 --- a/src/Storages/Hive/StorageHive.cpp +++ b/src/Storages/Hive/StorageHive.cpp @@ -565,8 +565,8 @@ HiveFiles StorageHive::collectHiveFilesFromPartition( const ContextPtr & context_, PruneLevel prune_level) const { - //LOG_DEBUG( - // log, "Collect hive files from partition {}, prune_level:{}", boost::join(partition.values, ","), pruneLevelToString(prune_level)); + LOG_DEBUG( + log, "Collect hive files from partition {}, prune_level:{}", boost::join(partition.values, ","), pruneLevelToString(prune_level)); /// Skip partition "__HIVE_DEFAULT_PARTITION__" bool has_default_partition = false; @@ -794,7 +794,7 @@ Pipe StorageHive::read( auto subset_column = nested_columns_extractor.extractColumn(column); if (subset_column) { - sample_block.insert(*subset_column); + sample_block.insert(std::move(*subset_column)); continue; } } From 3f755a250518e5b0f37d59528fb8f2af738fa38e Mon Sep 17 00:00:00 2001 From: Saulius Valatka Date: Tue, 5 Apr 2022 16:47:59 +0300 Subject: [PATCH 080/525] add liburing to build --- .gitmodules | 3 + contrib/CMakeLists.txt | 1 + contrib/liburing | 1 + contrib/liburing-cmake/CMakeLists.txt | 99 +++++++++++++++++++++++++++ contrib/liburing-cmake/compat.h.in | 40 +++++++++++ src/CMakeLists.txt | 5 ++ 6 files changed, 149 insertions(+) create mode 160000 contrib/liburing create mode 100644 contrib/liburing-cmake/CMakeLists.txt create mode 100644 contrib/liburing-cmake/compat.h.in diff --git a/.gitmodules b/.gitmodules index 55fd684fddb..b102267c7aa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -268,3 +268,6 @@ [submodule "contrib/hashidsxx"] path = contrib/hashidsxx url = https://github.com/schoentoon/hashidsxx.git +[submodule "contrib/liburing"] + path = contrib/liburing + url = https://github.com/axboe/liburing.git diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 943e0e0ebc1..05862a246e7 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -118,6 +118,7 @@ add_contrib (simdjson-cmake simdjson) add_contrib (rapidjson-cmake rapidjson) add_contrib (fastops-cmake fastops) add_contrib (libuv-cmake libuv) +add_contrib (liburing-cmake liburing) add_contrib (amqpcpp-cmake AMQP-CPP) # requires: libuv add_contrib (cassandra-cmake cassandra) # requires: libuv diff --git a/contrib/liburing b/contrib/liburing new file mode 160000 index 00000000000..ecf66cc2a49 --- /dev/null +++ b/contrib/liburing @@ -0,0 +1 @@ +Subproject commit ecf66cc2a49c69e9c9d224ef54b95082844a7b7a diff --git a/contrib/liburing-cmake/CMakeLists.txt b/contrib/liburing-cmake/CMakeLists.txt new file mode 100644 index 00000000000..c7254be65fd --- /dev/null +++ b/contrib/liburing-cmake/CMakeLists.txt @@ -0,0 +1,99 @@ +set (ENABLE_LIBURING_DEFAULT ${ENABLE_LIBRARIES}) + +if (NOT OS_LINUX) + set (ENABLE_LIBURING_DEFAULT OFF) +endif () + +option (ENABLE_LIBURING "Enable liburing" ${ENABLE_LIBURING_DEFAULT}) + +if (NOT ENABLE_LIBURING) + message(STATUS "Not using liburing") + return() +endif() + +set (LIBURING_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/liburing/src/include") +set (LIBURING_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/liburing/src") + +set (SRCS + "${LIBURING_SOURCE_DIR}/queue.c" + "${LIBURING_SOURCE_DIR}/register.c" + "${LIBURING_SOURCE_DIR}/setup.c" + "${LIBURING_SOURCE_DIR}/syscall.c" +) + +set (LIBURING_COMPAT_INCLUDE_DIR "${ClickHouse_BINARY_DIR}/contrib/liburing/src/include-compat") +set (LIBURING_COMPAT_HEADER "${LIBURING_COMPAT_INCLUDE_DIR}/liburing/compat.h") + +include(CheckCSourceCompiles) + +# The below checks should run against the bundled contrib/libc-headers +set (CMAKE_REQUIRED_INCLUDES ${CMAKE_C_STANDARD_INCLUDE_DIRECTORIES}) + +check_c_source_compiles (" +#include +int main(int argc, char **argv) +{ + __kernel_rwf_t x; + x = 0; + return x; +}" LIBURING_CONFIG_HAS_KERNEL_RWF_T) + +check_c_source_compiles (" +#include +#include +int main(int argc, char **argv) +{ + struct __kernel_timespec ts; + ts.tv_sec = 0; + ts.tv_nsec = 1; + return 0; +}" LIBURING_CONFIG_HAS_KERNEL_TIMESPEC) + +check_c_source_compiles (" +#include +#include +#include +#include +int main(int argc, char **argv) +{ + struct open_how how; + how.flags = 0; + how.mode = 0; + how.resolve = 0; + return 0; +}" LIBURING_CONFIG_HAS_OPEN_HOW) + +check_c_source_compiles (" +#include +#include +#include +#include +#include +#include +int main(int argc, char **argv) +{ + struct statx x; + return memset(&x, 0, sizeof(x)) != NULL; +}" LIBURING_CONFIG_HAS_STATX) + +check_c_source_compiles (" +#include +#include +#include +#include +#include +int main(int argc, char **argv) +{ + struct statx x; + return memset(&x, 0, sizeof(x)) != NULL; +}" LIBURING_CONFIG_HAS_GLIBC_STATX) + +unset (CMAKE_REQUIRED_INCLUDES) + +add_compile_definitions(LIBURING_INTERNAL) +configure_file (compat.h.in ${LIBURING_COMPAT_HEADER}) + +add_library (_liburing ${SRCS}) +add_library (ch_contrib::liburing ALIAS _liburing) + +target_include_directories (_liburing PUBLIC ${LIBURING_COMPAT_INCLUDE_DIR} "${LIBURING_SOURCE_DIR}/include") diff --git a/contrib/liburing-cmake/compat.h.in b/contrib/liburing-cmake/compat.h.in new file mode 100644 index 00000000000..ae35f84a885 --- /dev/null +++ b/contrib/liburing-cmake/compat.h.in @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: MIT */ +#ifndef LIBURING_COMPAT_H +#define LIBURING_COMPAT_H + +# cmakedefine LIBURING_CONFIG_HAS_KERNEL_RWF_T +# cmakedefine LIBURING_CONFIG_HAS_KERNEL_TIMESPEC +# cmakedefine LIBURING_CONFIG_HAS_OPEN_HOW +# cmakedefine LIBURING_CONFIG_HAS_GLIBC_STATX +# cmakedefine LIBURING_CONFIG_HAS_STATX + +#if !defined(LIBURING_CONFIG_HAS_KERNEL_RWF_T) +typedef int __kernel_rwf_t; +#endif + +#if !defined(LIBURING_CONFIG_HAS_KERNEL_TIMESPEC) +#include + +struct __kernel_timespec { + int64_t tv_sec; + long long tv_nsec; +}; +#else +#include +#endif + +#if !defined(LIBURING_CONFIG_HAS_OPEN_HOW) +#include + +struct open_how { + uint64_t flags; + uint64_t mode; + uint64_t resolve; +}; +#endif + +#if !defined(LIBURING_CONFIG_HAS_GLIBC_STATX) && defined(LIBURING_CONFIG_HAS_STATX) +#include +#endif + +#endif diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 10bdc464ac6..4ceb821ac69 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -498,6 +498,11 @@ if (TARGET ch_contrib::msgpack) target_link_libraries (clickhouse_common_io PUBLIC ch_contrib::msgpack) endif() +if (TARGET ch_contrib::liburing) + target_link_libraries (clickhouse_common_io PUBLIC ch_contrib::liburing) + target_include_directories (clickhouse_common_io SYSTEM BEFORE PUBLIC ${LIBURING_COMPAT_INCLUDE_DIR} ${LIBURING_INCLUDE_DIR}) +endif() + target_link_libraries (clickhouse_common_io PUBLIC ch_contrib::fast_float) if (USE_ORC) From 0dc7854af1328175dce1e464f7b7e99ae595bd42 Mon Sep 17 00:00:00 2001 From: Saulius Valatka Date: Thu, 7 Apr 2022 23:28:31 +0300 Subject: [PATCH 081/525] add initial io_uring support --- src/Common/CurrentMetrics.cpp | 1 + src/Common/ErrorCodes.cpp | 3 + src/Common/ProfileEvents.cpp | 7 +- src/Core/Settings.h | 2 +- src/Disks/IO/IOUringReader.cpp | 239 ++++++++++++++++++ src/Disks/IO/IOUringReader.h | 77 ++++++ src/Disks/IO/createReadBufferFromFileBase.cpp | 11 + src/IO/ReadSettings.h | 7 + .../02051_read_settings.reference.j2 | 2 +- .../0_stateless/02051_read_settings.sql.j2 | 2 +- 10 files changed, 347 insertions(+), 4 deletions(-) create mode 100644 src/Disks/IO/IOUringReader.cpp create mode 100644 src/Disks/IO/IOUringReader.h diff --git a/src/Common/CurrentMetrics.cpp b/src/Common/CurrentMetrics.cpp index fa9c60c6f79..46b4147e205 100644 --- a/src/Common/CurrentMetrics.cpp +++ b/src/Common/CurrentMetrics.cpp @@ -93,6 +93,7 @@ M(CacheFileSegments, "Number of existing cache file segments") \ M(CacheDetachedFileSegments, "Number of existing detached cache file segments") \ M(S3Requests, "S3 requests") \ + M(IOUringEnqueuedEvents, "Number of io_uring SQEs in flight.") \ namespace CurrentMetrics { diff --git a/src/Common/ErrorCodes.cpp b/src/Common/ErrorCodes.cpp index 6f2ac41cc08..37f6ebfd65c 100644 --- a/src/Common/ErrorCodes.cpp +++ b/src/Common/ErrorCodes.cpp @@ -633,6 +633,9 @@ M(662, FS_METADATA_ERROR) \ M(663, CANNOT_COLLECT_OBJECTS_FOR_BACKUP) \ M(664, ACCESS_STORAGE_DOESNT_ALLOW_BACKUP) \ + M(665, IO_URING_INIT_FAILED) \ + M(666, IO_URING_QUEUE_FULL) \ + M(667, IO_URING_WAIT_ERROR) \ \ M(999, KEEPER_EXCEPTION) \ M(1000, POCO_EXCEPTION) \ diff --git a/src/Common/ProfileEvents.cpp b/src/Common/ProfileEvents.cpp index b8e552f6023..8750cf035ca 100644 --- a/src/Common/ProfileEvents.cpp +++ b/src/Common/ProfileEvents.cpp @@ -343,7 +343,12 @@ \ M(ScalarSubqueriesGlobalCacheHit, "Number of times a read from a scalar subquery was done using the global cache") \ M(ScalarSubqueriesLocalCacheHit, "Number of times a read from a scalar subquery was done using the local cache") \ - M(ScalarSubqueriesCacheMiss, "Number of times a read from a scalar subquery was not cached and had to be calculated completely") + M(ScalarSubqueriesCacheMiss, "Number of times a read from a scalar subquery was not cached and had to be calculated completely") \ + \ + M(IOUringSQEQueueFullRetries, "Total number of retries to get an SQE due to the io_uring queue being full") \ + M(IOUringSQEsSubmitted, "Total number of io_uring SQEs submitted") \ + M(IOUringSQEsResubmits, "Total number of io_uring SQE resubmits performed") \ + M(IOUringShortReads, "Total number of short (partial) reads returned by io_uring") \ namespace ProfileEvents { diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 91395253af1..0198d8d6d85 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -553,7 +553,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(UInt64, function_range_max_elements_in_block, 500000000, "Maximum number of values generated by function 'range' per block of data (sum of array sizes for every row in a block, see also 'max_block_size' and 'min_insert_block_size_rows'). It is a safety threshold.", 0) \ M(ShortCircuitFunctionEvaluation, short_circuit_function_evaluation, ShortCircuitFunctionEvaluation::ENABLE, "Setting for short-circuit function evaluation configuration. Possible values: 'enable' - use short-circuit function evaluation for functions that are suitable for it, 'disable' - disable short-circuit function evaluation, 'force_enable' - use short-circuit function evaluation for all functions.", 0) \ \ - M(String, local_filesystem_read_method, "pread_threadpool", "Method of reading data from local filesystem, one of: read, pread, mmap, pread_threadpool.", 0) \ + M(String, local_filesystem_read_method, "pread_threadpool", "Method of reading data from local filesystem, one of: read, pread, mmap, io_uring, pread_threadpool.", 0) \ M(String, remote_filesystem_read_method, "threadpool", "Method of reading data from remote filesystem, one of: read, threadpool.", 0) \ M(Bool, local_filesystem_read_prefetch, false, "Should use prefetching when reading data from local filesystem.", 0) \ M(Bool, remote_filesystem_read_prefetch, true, "Should use prefetching when reading data from remote filesystem.", 0) \ diff --git a/src/Disks/IO/IOUringReader.cpp b/src/Disks/IO/IOUringReader.cpp new file mode 100644 index 00000000000..7d68a7ec21f --- /dev/null +++ b/src/Disks/IO/IOUringReader.cpp @@ -0,0 +1,239 @@ +#include "IOUringReader.h" +#include +#include +#include +#include +#include +#include +#include +#include + +namespace ProfileEvents +{ + extern const Event ReadBufferFromFileDescriptorRead; + extern const Event ReadBufferFromFileDescriptorReadFailed; + extern const Event ReadBufferFromFileDescriptorReadBytes; + + extern const Event IOUringSQEQueueFullRetries; + extern const Event IOUringSQEsSubmitted; + extern const Event IOUringSQEsResubmits; + extern const Event IOUringShortReads; +} + +namespace CurrentMetrics +{ + extern const Metric IOUringEnqueuedEvents; + extern const Metric Read; +} + +namespace DB +{ + +namespace ErrorCodes +{ + extern const int LOGICAL_ERROR; + extern const int CANNOT_READ_FROM_FILE_DESCRIPTOR; + extern const int IO_URING_INIT_FAILED; + extern const int IO_URING_QUEUE_FULL; + extern const int IO_URING_WAIT_ERROR; +} + +IOUringReader::IOUringReader(size_t queue_size_) +{ + struct io_uring_probe * probe = io_uring_get_probe(); + if (!probe) + { + is_supported = false; + return; + } + + is_supported = io_uring_opcode_supported(probe, IORING_OP_READ); + io_uring_free_probe(probe); + + if (!is_supported) + return; + + int ret = io_uring_queue_init(queue_size_, &ring, 0); + if (ret < 0) + throwFromErrno(fmt::format("Failed initializing io_uring of size {}", queue_size_), ErrorCodes::IO_URING_INIT_FAILED); + + ring_completion_monitor = ThreadFromGlobalPool([this] { monitorRing(); }); +} + +std::future IOUringReader::submit(Request request) +{ + assert(request.size); + + // take lock here because we're modifying an std::map and submitting to the ring, + // the monitor thread can also modify the map and re-submit events + std::unique_lock lock{mutex}; + + // use the requested read destination address as the request id, the assumption + // here is that we won't get asked to fill in the same address more than once in parallel + auto request_id = reinterpret_cast(request.buf); + + const auto [kv, is_newly_inserted] = enqueued_requests.emplace(request_id, EnqueuedRequest{ + .promise = std::promise{}, + .request = request, + .bytes_read = 0 + }); + + if (!is_newly_inserted) + return makeFailedResult(ErrorCodes::LOGICAL_ERROR, "Tried enqueuing read request for %lu that is already submitted", request_id); + + EnqueuedRequest & enqueued = kv->second; + trySubmitRequest(request_id, enqueued, false); + + return enqueued.promise.get_future(); +} + +bool IOUringReader::trySubmitRequest(UInt64 request_id, EnqueuedRequest & enqueued, bool resubmitting) +{ + auto request = enqueued.request; + int fd = assert_cast(*request.descriptor).fd; + + struct io_uring_sqe * sqe = nullptr; + for (int i = 0; i < 1000; ++i) // try a few times in case the queue is full. + { + sqe = io_uring_get_sqe(&ring); + if (sqe) break; + + ProfileEvents::increment(ProfileEvents::IOUringSQEQueueFullRetries); + } + + int submitted = 0; + if (sqe) + { + io_uring_sqe_set_data(sqe, reinterpret_cast(request_id)); + io_uring_prep_read(sqe, fd, request.buf, request.size - enqueued.bytes_read, request.offset + enqueued.bytes_read); + submitted = io_uring_submit(&ring); + } + + if (submitted == 0) + { + failPromise(enqueued.promise, ErrorCodes::IO_URING_QUEUE_FULL, "Submission queue is full, failed to get an SQE"); + if (resubmitting) // an existing request failed, decrement counters + { + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); + CurrentMetrics::sub(CurrentMetrics::IOUringEnqueuedEvents); + CurrentMetrics::sub(CurrentMetrics::Read); + } + + return false; + } + + if (!resubmitting) // new request, increment counters + { + ProfileEvents::increment(ProfileEvents::IOUringSQEsSubmitted); + CurrentMetrics::add(CurrentMetrics::IOUringEnqueuedEvents); + CurrentMetrics::add(CurrentMetrics::Read); + } + + return true; +} + +void IOUringReader::monitorRing() +{ + setThreadName("IOUringMonitor"); + + while (!cancelled.load(std::memory_order_relaxed)) + { + // we can't use wait_cqe_* variants with timeouts as they can + // submit timeout events in older kernels that do not support IORING_FEAT_EXT_ARG + // and it is not safe to mix submission and consumption event threads. + struct io_uring_cqe * cqe; + int ret = io_uring_wait_cqe(&ring, &cqe); + + if (ret < 0) + throwFromErrno(fmt::format("Failed waiting for io_uring CQEs: ", ret), ErrorCodes::IO_URING_WAIT_ERROR); + + // user_data zero means a noop event sent from the destructor meant to interrupt the thread + if (cancelled.load(std::memory_order_relaxed) || cqe->user_data == 0) + break; + + // it is safe to re-submit events once we take the lock here + std::unique_lock lock{mutex}; + + auto request_id = cqe->user_data; + const auto it = enqueued_requests.find(request_id); + if (it == enqueued_requests.end()) + throwFromErrno( + fmt::format("Got a completion event for a request %lu that was not submitted", request_id), + ErrorCodes::LOGICAL_ERROR); + + auto & enqueued = it->second; + + if (cqe->res < 0) + { + if (cqe->res == -EAGAIN) + { + ProfileEvents::increment(ProfileEvents::IOUringSQEsResubmits); + + trySubmitRequest(request_id, enqueued, true); + io_uring_cqe_seen(&ring, cqe); + + continue; + } + + int fd = assert_cast(*enqueued.request.descriptor).fd; + + failPromise(enqueued.promise, ErrorCodes::CANNOT_READ_FROM_FILE_DESCRIPTOR, "Cannot read from file {}", fd); + enqueued_requests.erase(it); + + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); + CurrentMetrics::sub(CurrentMetrics::IOUringEnqueuedEvents); + CurrentMetrics::sub(CurrentMetrics::Read); + + io_uring_cqe_seen(&ring, cqe); + continue; + } + + size_t bytes_read = cqe->res; + size_t total_bytes_read = enqueued.bytes_read + bytes_read; + + if (bytes_read > 0) + { + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorRead); + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadBytes, bytes_read); + if (enqueued.bytes_read > 0) ProfileEvents::increment(ProfileEvents::IOUringShortReads); + } + + if (bytes_read > 0 && total_bytes_read < enqueued.request.size) + { + // potential short read, re-submit + enqueued.bytes_read += bytes_read; + trySubmitRequest(request_id, enqueued, true); + } + else + { + enqueued.promise.set_value(Result{ .size = total_bytes_read, .offset = enqueued.request.ignore }); + enqueued_requests.erase(it); + + CurrentMetrics::sub(CurrentMetrics::IOUringEnqueuedEvents); + CurrentMetrics::sub(CurrentMetrics::Read); + } + + io_uring_cqe_seen(&ring, cqe); + } +} + +IOUringReader::~IOUringReader() +{ + cancelled.store(true, std::memory_order_relaxed); + + // interrupt the monitor thread by sending a noop event + { + std::unique_lock lock{mutex}; + + struct io_uring_sqe * sqe = io_uring_get_sqe(&ring); + io_uring_prep_nop(sqe); + io_uring_sqe_set_data(sqe, nullptr); + io_uring_submit(&ring); + } + + ring_completion_monitor.join(); + + io_uring_queue_exit(&ring); +} + +} diff --git a/src/Disks/IO/IOUringReader.h b/src/Disks/IO/IOUringReader.h new file mode 100644 index 00000000000..13bdabd8fde --- /dev/null +++ b/src/Disks/IO/IOUringReader.h @@ -0,0 +1,77 @@ +#pragma once + +#include +#include +#include + +#if defined(__clang__) +#pragma clang diagnostic push + +#pragma clang diagnostic ignored "-Wold-style-cast" +#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" + +#ifdef HAS_RESERVED_IDENTIFIER +#pragma clang diagnostic ignored "-Wreserved-identifier" +#endif + +#endif + +#include + +#if defined(__clang__) +#pragma clang diagnostic pop +#endif + +namespace DB +{ + +/** Perform reads using the io_uring Linux subsystem. + * + * The class sets up a single io_uring that clients submit read requests to, they are + * placed in a map using the read buffer address as the key and the original request + * with a promise as the value. A monitor thread continuously polls the completion queue, + * looks up the completed request and completes the matching promise. + */ +class IOUringReader final : public IAsynchronousReader +{ +private: + std::mutex mutex; + struct io_uring ring; + + std::atomic cancelled{false}; + ThreadFromGlobalPool ring_completion_monitor; + + struct EnqueuedRequest + { + std::promise promise; + Request request; + size_t bytes_read; // keep track of bytes already read in case short reads happen + }; + + std::unordered_map enqueued_requests; + + bool trySubmitRequest(UInt64 request_id, EnqueuedRequest & enqueued, bool resubmitting); + void monitorRing(); + + template inline void failPromise( + std::promise & promise, int code, fmt::format_string fmt, Args &&... args) + { + promise.set_exception(std::make_exception_ptr(Exception(code, fmt, std::forward(args)...))); + } + + template inline std::future makeFailedResult( + int code, fmt::format_string fmt, Args &&... args) + { + auto promise = std::promise{}; + failPromise(promise, code, fmt, std::forward(args)...); + return promise.get_future(); + } + +public: + IOUringReader(size_t queue_size_); + std::future submit(Request request) override; + + virtual ~IOUringReader() override; +}; + +} diff --git a/src/Disks/IO/createReadBufferFromFileBase.cpp b/src/Disks/IO/createReadBufferFromFileBase.cpp index 345d0019aa7..3260a750abd 100644 --- a/src/Disks/IO/createReadBufferFromFileBase.cpp +++ b/src/Disks/IO/createReadBufferFromFileBase.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -75,6 +76,16 @@ std::unique_ptr createReadBufferFromFileBase( { res = std::make_unique(filename, buffer_size, actual_flags, existing_memory, alignment, file_size); } + else if (settings.local_fs_method == LocalFSReadMethod::io_uring) + { +#if defined(OS_LINUX) + static std::shared_ptr reader = std::make_shared(4096); + if (!reader->isSupported()) + throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "io_uring is not supported by this system"); + + res = std::make_unique( + reader, settings.priority, filename, buffer_size, actual_flags, existing_memory, alignment, file_size); + } else if (settings.local_fs_method == LocalFSReadMethod::pread_fake_async) { static AsynchronousReaderPtr reader = std::make_shared(); diff --git a/src/IO/ReadSettings.h b/src/IO/ReadSettings.h index 78d5d6f3d65..0df936b193d 100644 --- a/src/IO/ReadSettings.h +++ b/src/IO/ReadSettings.h @@ -30,6 +30,13 @@ enum class LocalFSReadMethod */ mmap, + /** + * Use the io_uring Linux subsystem for asynchronous reads. + * Can use direct IO after specified size. + * Can do prefetch with double buffering. + */ + io_uring, + /** * Checks if data is in page cache with 'preadv2' on modern Linux kernels. * If data is in page cache, read from the same thread. diff --git a/tests/queries/0_stateless/02051_read_settings.reference.j2 b/tests/queries/0_stateless/02051_read_settings.reference.j2 index 391cf3adf35..ee6c4bdd918 100644 --- a/tests/queries/0_stateless/02051_read_settings.reference.j2 +++ b/tests/queries/0_stateless/02051_read_settings.reference.j2 @@ -1,5 +1,5 @@ {% for index_granularity_bytes in [0, 10 * 1024 * 1024] -%} -{% for read_method in ['read', 'mmap', 'pread_threadpool', 'pread_fake_async'] -%} +{% for read_method in ['read', 'mmap', 'io_uring', 'pread_threadpool', 'pread_fake_async'] -%} {% for direct_io in [0, 1] -%} {% for prefetch in [0, 1] -%} {% for priority in [0, 1] -%} diff --git a/tests/queries/0_stateless/02051_read_settings.sql.j2 b/tests/queries/0_stateless/02051_read_settings.sql.j2 index 69dd3c264ba..1f121b0c268 100644 --- a/tests/queries/0_stateless/02051_read_settings.sql.j2 +++ b/tests/queries/0_stateless/02051_read_settings.sql.j2 @@ -19,7 +19,7 @@ settings as select number, repeat(toString(number), 5) from numbers(1e6); {# check each local_filesystem_read_method #} -{% for read_method in ['read', 'mmap', 'pread_threadpool', 'pread_fake_async'] %} +{% for read_method in ['read', 'mmap', 'io_uring', 'pread_threadpool', 'pread_fake_async'] %} {# check w/ O_DIRECT and w/o (min_bytes_to_use_direct_io) #} {% for direct_io in [0, 1] %} {# check local_filesystem_read_prefetch (just a smoke test) #} From 68eef98128f3a41d61b4a1d7c078e0981128e6c6 Mon Sep 17 00:00:00 2001 From: Saulius Valatka Date: Fri, 8 Apr 2022 11:24:01 +0300 Subject: [PATCH 082/525] check for io_uring support, fail if not supported --- src/Disks/IO/IOUringReader.cpp | 3 +++ src/Disks/IO/IOUringReader.h | 6 ++++++ src/Disks/IO/createReadBufferFromFileBase.cpp | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/src/Disks/IO/IOUringReader.cpp b/src/Disks/IO/IOUringReader.cpp index 7d68a7ec21f..0d7e1045603 100644 --- a/src/Disks/IO/IOUringReader.cpp +++ b/src/Disks/IO/IOUringReader.cpp @@ -1,3 +1,5 @@ +#if defined(OS_LINUX) + #include "IOUringReader.h" #include #include @@ -237,3 +239,4 @@ IOUringReader::~IOUringReader() } } +#endif diff --git a/src/Disks/IO/IOUringReader.h b/src/Disks/IO/IOUringReader.h index 13bdabd8fde..fdb373fe312 100644 --- a/src/Disks/IO/IOUringReader.h +++ b/src/Disks/IO/IOUringReader.h @@ -1,4 +1,5 @@ #pragma once +#if defined(OS_LINUX) #include #include @@ -35,6 +36,8 @@ namespace DB class IOUringReader final : public IAsynchronousReader { private: + bool is_supported; + std::mutex mutex; struct io_uring ring; @@ -69,9 +72,12 @@ private: public: IOUringReader(size_t queue_size_); + + inline bool isSupported() { return is_supported; } std::future submit(Request request) override; virtual ~IOUringReader() override; }; } +#endif diff --git a/src/Disks/IO/createReadBufferFromFileBase.cpp b/src/Disks/IO/createReadBufferFromFileBase.cpp index 3260a750abd..977af883611 100644 --- a/src/Disks/IO/createReadBufferFromFileBase.cpp +++ b/src/Disks/IO/createReadBufferFromFileBase.cpp @@ -24,6 +24,7 @@ namespace DB namespace ErrorCodes { extern const int LOGICAL_ERROR; + extern const int UNSUPPORTED_METHOD; } @@ -85,6 +86,9 @@ std::unique_ptr createReadBufferFromFileBase( res = std::make_unique( reader, settings.priority, filename, buffer_size, actual_flags, existing_memory, alignment, file_size); +#else + throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "Read method io_uring is only supported in Linux"); +#endif } else if (settings.local_fs_method == LocalFSReadMethod::pread_fake_async) { From 6bbabf59d9014de38370ba691be50846a229f782 Mon Sep 17 00:00:00 2001 From: Saulius Valatka Date: Mon, 11 Apr 2022 14:11:55 +0300 Subject: [PATCH 083/525] simplify build, add read method randomized tests, fix typos --- contrib/liburing-cmake/CMakeLists.txt | 72 +++------------------------ docker/test/fasttest/run.sh | 2 + src/Disks/IO/IOUringReader.cpp | 6 +-- src/Disks/IO/IOUringReader.h | 17 ------- tests/clickhouse-test | 1 + 5 files changed, 12 insertions(+), 86 deletions(-) diff --git a/contrib/liburing-cmake/CMakeLists.txt b/contrib/liburing-cmake/CMakeLists.txt index c7254be65fd..26504ccb2d6 100644 --- a/contrib/liburing-cmake/CMakeLists.txt +++ b/contrib/liburing-cmake/CMakeLists.txt @@ -24,71 +24,11 @@ set (SRCS set (LIBURING_COMPAT_INCLUDE_DIR "${ClickHouse_BINARY_DIR}/contrib/liburing/src/include-compat") set (LIBURING_COMPAT_HEADER "${LIBURING_COMPAT_INCLUDE_DIR}/liburing/compat.h") -include(CheckCSourceCompiles) - -# The below checks should run against the bundled contrib/libc-headers -set (CMAKE_REQUIRED_INCLUDES ${CMAKE_C_STANDARD_INCLUDE_DIRECTORIES}) - -check_c_source_compiles (" -#include -int main(int argc, char **argv) -{ - __kernel_rwf_t x; - x = 0; - return x; -}" LIBURING_CONFIG_HAS_KERNEL_RWF_T) - -check_c_source_compiles (" -#include -#include -int main(int argc, char **argv) -{ - struct __kernel_timespec ts; - ts.tv_sec = 0; - ts.tv_nsec = 1; - return 0; -}" LIBURING_CONFIG_HAS_KERNEL_TIMESPEC) - -check_c_source_compiles (" -#include -#include -#include -#include -int main(int argc, char **argv) -{ - struct open_how how; - how.flags = 0; - how.mode = 0; - how.resolve = 0; - return 0; -}" LIBURING_CONFIG_HAS_OPEN_HOW) - -check_c_source_compiles (" -#include -#include -#include -#include -#include -#include -int main(int argc, char **argv) -{ - struct statx x; - return memset(&x, 0, sizeof(x)) != NULL; -}" LIBURING_CONFIG_HAS_STATX) - -check_c_source_compiles (" -#include -#include -#include -#include -#include -int main(int argc, char **argv) -{ - struct statx x; - return memset(&x, 0, sizeof(x)) != NULL; -}" LIBURING_CONFIG_HAS_GLIBC_STATX) - -unset (CMAKE_REQUIRED_INCLUDES) +set (LIBURING_CONFIG_HAS_KERNEL_RWF_T, "yes") +set (LIBURING_CONFIG_HAS_KERNEL_TIMESPEC, "no") +set (LIBURING_CONFIG_HAS_OPEN_HOW, "no") +set (LIBURING_CONFIG_HAS_STATX, "no") +set (LIBURING_CONFIG_HAS_GLIBC_STATX, "no") add_compile_definitions(LIBURING_INTERNAL) configure_file (compat.h.in ${LIBURING_COMPAT_HEADER}) @@ -96,4 +36,4 @@ configure_file (compat.h.in ${LIBURING_COMPAT_HEADER}) add_library (_liburing ${SRCS}) add_library (ch_contrib::liburing ALIAS _liburing) -target_include_directories (_liburing PUBLIC ${LIBURING_COMPAT_INCLUDE_DIR} "${LIBURING_SOURCE_DIR}/include") +target_include_directories (_liburing SYSTEM PUBLIC ${LIBURING_COMPAT_INCLUDE_DIR} "${LIBURING_SOURCE_DIR}/include") diff --git a/docker/test/fasttest/run.sh b/docker/test/fasttest/run.sh index 2bbdd978e5e..537a96e2c4f 100755 --- a/docker/test/fasttest/run.sh +++ b/docker/test/fasttest/run.sh @@ -135,6 +135,7 @@ function clone_submodules contrib/replxx contrib/wyhash contrib/hashidsxx + contrib/liburing ) git submodule sync @@ -157,6 +158,7 @@ function run_cmake "-DENABLE_NURAFT=1" "-DENABLE_JEMALLOC=1" "-DENABLE_REPLXX=1" + "-DENABLE_LIBURING=1" ) # TODO remove this? we don't use ccache anyway. An option would be to download it diff --git a/src/Disks/IO/IOUringReader.cpp b/src/Disks/IO/IOUringReader.cpp index 0d7e1045603..0b1a51edc7a 100644 --- a/src/Disks/IO/IOUringReader.cpp +++ b/src/Disks/IO/IOUringReader.cpp @@ -81,7 +81,7 @@ std::future IOUringReader::submit(Request request) }); if (!is_newly_inserted) - return makeFailedResult(ErrorCodes::LOGICAL_ERROR, "Tried enqueuing read request for %lu that is already submitted", request_id); + return makeFailedResult(ErrorCodes::LOGICAL_ERROR, "Tried enqueuing read request for {} that is already submitted", request_id); EnqueuedRequest & enqueued = kv->second; trySubmitRequest(request_id, enqueued, false); @@ -147,7 +147,7 @@ void IOUringReader::monitorRing() int ret = io_uring_wait_cqe(&ring, &cqe); if (ret < 0) - throwFromErrno(fmt::format("Failed waiting for io_uring CQEs: ", ret), ErrorCodes::IO_URING_WAIT_ERROR); + throwFromErrno(fmt::format("Failed waiting for io_uring CQEs: {}", ret), ErrorCodes::IO_URING_WAIT_ERROR); // user_data zero means a noop event sent from the destructor meant to interrupt the thread if (cancelled.load(std::memory_order_relaxed) || cqe->user_data == 0) @@ -160,7 +160,7 @@ void IOUringReader::monitorRing() const auto it = enqueued_requests.find(request_id); if (it == enqueued_requests.end()) throwFromErrno( - fmt::format("Got a completion event for a request %lu that was not submitted", request_id), + fmt::format("Got a completion event for a request {} that was not submitted", request_id), ErrorCodes::LOGICAL_ERROR); auto & enqueued = it->second; diff --git a/src/Disks/IO/IOUringReader.h b/src/Disks/IO/IOUringReader.h index fdb373fe312..a304b9dccf6 100644 --- a/src/Disks/IO/IOUringReader.h +++ b/src/Disks/IO/IOUringReader.h @@ -4,25 +4,8 @@ #include #include #include - -#if defined(__clang__) -#pragma clang diagnostic push - -#pragma clang diagnostic ignored "-Wold-style-cast" -#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" - -#ifdef HAS_RESERVED_IDENTIFIER -#pragma clang diagnostic ignored "-Wreserved-identifier" -#endif - -#endif - #include -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - namespace DB { diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 3e0d4e822b4..d3d1f8e6673 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -425,6 +425,7 @@ class SettingsRandomizer: "read_in_order_two_level_merge_threshold": lambda: random.randint(0, 100), "optimize_aggregation_in_order": lambda: random.randint(0, 1), "aggregation_in_order_max_block_bytes": lambda: random.randint(0, 50000000), + "local_filesystem_read_method": lambda: random.choice(['pread', 'pread_threadpool', 'io_uring']), } @staticmethod From e10f079bd35c377170abb2a1b984e83f1ce7c0a3 Mon Sep 17 00:00:00 2001 From: Dmitry Novik Date: Tue, 21 Jun 2022 10:15:33 +0000 Subject: [PATCH 084/525] Get rid of allocations in OvercommitTracker --- src/Common/OvercommitTracker.cpp | 19 ++++++++++--------- src/Common/OvercommitTracker.h | 10 ++++++++-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/Common/OvercommitTracker.cpp b/src/Common/OvercommitTracker.cpp index 1e36c99b41c..6f688ca28ff 100644 --- a/src/Common/OvercommitTracker.cpp +++ b/src/Common/OvercommitTracker.cpp @@ -20,6 +20,8 @@ OvercommitTracker::OvercommitTracker(std::mutex & global_mutex_) , global_mutex(global_mutex_) , freed_memory(0) , required_memory(0) + , next_id(0) + , id_to_release(0) , allow_release(true) {} @@ -42,6 +44,8 @@ OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int std::unique_lock global_lock(global_mutex); std::unique_lock lk(overcommit_m); + size_t id = next_id++; + auto max_wait_time = tracker->getOvercommitWaitingTime(); if (max_wait_time == ZERO_MICROSEC) @@ -73,23 +77,21 @@ OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int allow_release = true; required_memory += amount; - required_per_thread[tracker] = amount; auto wait_start_time = std::chrono::system_clock::now(); - bool timeout = !cv.wait_for(lk, max_wait_time, [this, tracker]() + bool timeout = !cv.wait_for(lk, max_wait_time, [this, id]() { - return required_per_thread[tracker] == 0 || cancellation_state == QueryCancellationState::NONE; + return id < id_to_release || cancellation_state == QueryCancellationState::NONE; }); auto wait_end_time = std::chrono::system_clock::now(); ProfileEvents::increment(ProfileEvents::MemoryOvercommitWaitTimeMicroseconds, (wait_end_time - wait_start_time) / 1us); LOG_DEBUG_SAFE(getLogger(), "Memory was{} freed within timeout", (timeout ? " not" : "")); required_memory -= amount; - Int64 still_need = required_per_thread[tracker]; // If enough memory is freed it will be 0 - required_per_thread.erase(tracker); + bool still_need = !(id < id_to_release); // True if thread wasn't released // If threads where not released since last call of this method, // we can release them now. - if (allow_release && required_memory <= freed_memory && still_need != 0) + if (allow_release && required_memory <= freed_memory && still_need) releaseThreads(); // All required amount of memory is free now and selected query to stop doesn't know about it. @@ -98,7 +100,7 @@ OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int reset(); if (timeout) return OvercommitResult::TIMEOUTED; - if (still_need != 0) + if (still_need) return OvercommitResult::NOT_ENOUGH_FREED; else return OvercommitResult::MEMORY_FREED; @@ -132,8 +134,7 @@ void OvercommitTracker::onQueryStop(MemoryTracker * tracker) void OvercommitTracker::releaseThreads() { - for (auto & required : required_per_thread) - required.second = 0; + id_to_release = next_id; freed_memory = 0; allow_release = false; // To avoid repeating call of this method in OvercommitTracker::needToStopQuery cv.notify_all(); diff --git a/src/Common/OvercommitTracker.h b/src/Common/OvercommitTracker.h index 80aaed68e37..6a03c679422 100644 --- a/src/Common/OvercommitTracker.h +++ b/src/Common/OvercommitTracker.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -104,6 +105,10 @@ private: picked_tracker = nullptr; cancellation_state = QueryCancellationState::NONE; freed_memory = 0; + + next_id = 0; + id_to_release = 0; + allow_release = true; } @@ -111,8 +116,6 @@ private: QueryCancellationState cancellation_state; - std::unordered_map required_per_thread; - // Global mutex which is used in ProcessList to synchronize // insertion and deletion of queries. // OvercommitTracker::pickQueryToExcludeImpl() implementations @@ -122,6 +125,9 @@ private: Int64 freed_memory; Int64 required_memory; + size_t next_id; // Id provided to the next thread to come in OvercommitTracker + size_t id_to_release; // We can release all threads with id smaller than this + bool allow_release; }; From 7b5e13a9ebe811ad05cbd72463c8456a4e91fb15 Mon Sep 17 00:00:00 2001 From: Saulius Valatka Date: Tue, 12 Apr 2022 23:20:46 +0300 Subject: [PATCH 085/525] implement pending request queue to prevent CQ overflows, more error checking, reduce size of io_uring --- contrib/liburing | 2 +- src/Common/CurrentMetrics.cpp | 3 +- src/Common/ErrorCodes.cpp | 2 +- src/Common/ProfileEvents.cpp | 1 - src/Disks/IO/IOUringReader.cpp | 211 +++++++++++------- src/Disks/IO/IOUringReader.h | 16 +- src/Disks/IO/createReadBufferFromFileBase.cpp | 2 +- 7 files changed, 148 insertions(+), 89 deletions(-) diff --git a/contrib/liburing b/contrib/liburing index ecf66cc2a49..b1735ffa9c5 160000 --- a/contrib/liburing +++ b/contrib/liburing @@ -1 +1 @@ -Subproject commit ecf66cc2a49c69e9c9d224ef54b95082844a7b7a +Subproject commit b1735ffa9c5dc5ec18c8fbc121b7b0bc417cdc89 diff --git a/src/Common/CurrentMetrics.cpp b/src/Common/CurrentMetrics.cpp index 46b4147e205..216b8af974f 100644 --- a/src/Common/CurrentMetrics.cpp +++ b/src/Common/CurrentMetrics.cpp @@ -93,7 +93,8 @@ M(CacheFileSegments, "Number of existing cache file segments") \ M(CacheDetachedFileSegments, "Number of existing detached cache file segments") \ M(S3Requests, "S3 requests") \ - M(IOUringEnqueuedEvents, "Number of io_uring SQEs in flight.") \ + M(IOUringPendingEvents, "Number of io_uring SQEs waiting to be submitted") \ + M(IOUringInFlightEvents, "Number of io_uring SQEs in flight") \ namespace CurrentMetrics { diff --git a/src/Common/ErrorCodes.cpp b/src/Common/ErrorCodes.cpp index 37f6ebfd65c..ca2257e4cd9 100644 --- a/src/Common/ErrorCodes.cpp +++ b/src/Common/ErrorCodes.cpp @@ -634,7 +634,7 @@ M(663, CANNOT_COLLECT_OBJECTS_FOR_BACKUP) \ M(664, ACCESS_STORAGE_DOESNT_ALLOW_BACKUP) \ M(665, IO_URING_INIT_FAILED) \ - M(666, IO_URING_QUEUE_FULL) \ + M(666, IO_URING_SUBMIT_ERROR) \ M(667, IO_URING_WAIT_ERROR) \ \ M(999, KEEPER_EXCEPTION) \ diff --git a/src/Common/ProfileEvents.cpp b/src/Common/ProfileEvents.cpp index 8750cf035ca..093ffb0efbe 100644 --- a/src/Common/ProfileEvents.cpp +++ b/src/Common/ProfileEvents.cpp @@ -345,7 +345,6 @@ M(ScalarSubqueriesLocalCacheHit, "Number of times a read from a scalar subquery was done using the local cache") \ M(ScalarSubqueriesCacheMiss, "Number of times a read from a scalar subquery was not cached and had to be calculated completely") \ \ - M(IOUringSQEQueueFullRetries, "Total number of retries to get an SQE due to the io_uring queue being full") \ M(IOUringSQEsSubmitted, "Total number of io_uring SQEs submitted") \ M(IOUringSQEsResubmits, "Total number of io_uring SQE resubmits performed") \ M(IOUringShortReads, "Total number of short (partial) reads returned by io_uring") \ diff --git a/src/Disks/IO/IOUringReader.cpp b/src/Disks/IO/IOUringReader.cpp index 0b1a51edc7a..aedc73f42be 100644 --- a/src/Disks/IO/IOUringReader.cpp +++ b/src/Disks/IO/IOUringReader.cpp @@ -1,13 +1,13 @@ #if defined(OS_LINUX) #include "IOUringReader.h" +#include #include #include #include #include #include #include -#include #include namespace ProfileEvents @@ -16,7 +16,6 @@ namespace ProfileEvents extern const Event ReadBufferFromFileDescriptorReadFailed; extern const Event ReadBufferFromFileDescriptorReadBytes; - extern const Event IOUringSQEQueueFullRetries; extern const Event IOUringSQEsSubmitted; extern const Event IOUringSQEsResubmits; extern const Event IOUringShortReads; @@ -24,7 +23,8 @@ namespace ProfileEvents namespace CurrentMetrics { - extern const Metric IOUringEnqueuedEvents; + extern const Metric IOUringPendingEvents; + extern const Metric IOUringInFlightEvents; extern const Metric Read; } @@ -36,11 +36,11 @@ namespace ErrorCodes extern const int LOGICAL_ERROR; extern const int CANNOT_READ_FROM_FILE_DESCRIPTOR; extern const int IO_URING_INIT_FAILED; - extern const int IO_URING_QUEUE_FULL; + extern const int IO_URING_SUBMIT_ERROR; extern const int IO_URING_WAIT_ERROR; } -IOUringReader::IOUringReader(size_t queue_size_) +IOUringReader::IOUringReader(uint32_t entries_) { struct io_uring_probe * probe = io_uring_get_probe(); if (!probe) @@ -55,10 +55,17 @@ IOUringReader::IOUringReader(size_t queue_size_) if (!is_supported) return; - int ret = io_uring_queue_init(queue_size_, &ring, 0); - if (ret < 0) - throwFromErrno(fmt::format("Failed initializing io_uring of size {}", queue_size_), ErrorCodes::IO_URING_INIT_FAILED); + struct io_uring_params params = + { + .cq_entries = 0, // filled by the kernel, initializing to silence warning + .flags = 0, + }; + int ret = io_uring_queue_init_params(entries_, &ring, ¶ms); + if (ret < 0) + throwFromErrno("Failed initializing io_uring", ErrorCodes::IO_URING_INIT_FAILED, -ret); + + cq_entries = params.cq_entries; ring_completion_monitor = ThreadFromGlobalPool([this] { monitorRing(); }); } @@ -66,74 +73,120 @@ std::future IOUringReader::submit(Request request) { assert(request.size); - // take lock here because we're modifying an std::map and submitting to the ring, - // the monitor thread can also modify the map and re-submit events + // take lock here because we're modifying containers and submitting to the ring, + // the monitor thread can also do the same std::unique_lock lock{mutex}; // use the requested read destination address as the request id, the assumption // here is that we won't get asked to fill in the same address more than once in parallel auto request_id = reinterpret_cast(request.buf); - const auto [kv, is_newly_inserted] = enqueued_requests.emplace(request_id, EnqueuedRequest{ - .promise = std::promise{}, + std::promise promise; + auto enqueued_request = EnqueuedRequest + { + .promise = std::move(promise), .request = request, + .resubmitting = false, .bytes_read = 0 - }); + }; - if (!is_newly_inserted) - return makeFailedResult(ErrorCodes::LOGICAL_ERROR, "Tried enqueuing read request for {} that is already submitted", request_id); - - EnqueuedRequest & enqueued = kv->second; - trySubmitRequest(request_id, enqueued, false); - - return enqueued.promise.get_future(); -} - -bool IOUringReader::trySubmitRequest(UInt64 request_id, EnqueuedRequest & enqueued, bool resubmitting) -{ - auto request = enqueued.request; - int fd = assert_cast(*request.descriptor).fd; - - struct io_uring_sqe * sqe = nullptr; - for (int i = 0; i < 1000; ++i) // try a few times in case the queue is full. + // if there's room in the completion queue submit the request to the ring immediately, + // otherwise push it to the back of the pending queue + if (in_flight_requests.size() < cq_entries) { - sqe = io_uring_get_sqe(&ring); - if (sqe) break; - - ProfileEvents::increment(ProfileEvents::IOUringSQEQueueFullRetries); - } - - int submitted = 0; - if (sqe) - { - io_uring_sqe_set_data(sqe, reinterpret_cast(request_id)); - io_uring_prep_read(sqe, fd, request.buf, request.size - enqueued.bytes_read, request.offset + enqueued.bytes_read); - submitted = io_uring_submit(&ring); - } - - if (submitted == 0) - { - failPromise(enqueued.promise, ErrorCodes::IO_URING_QUEUE_FULL, "Submission queue is full, failed to get an SQE"); - if (resubmitting) // an existing request failed, decrement counters + if (submitToRing(enqueued_request)) + { + const auto [kv, success] = in_flight_requests.emplace(request_id, std::move(enqueued_request)); + if (!success) + { + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); + return makeFailedResult(ErrorCodes::LOGICAL_ERROR, "Tried enqueuing read request for {} that is already submitted", request_id); + } + return (kv->second).promise.get_future(); + } + else { ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); - CurrentMetrics::sub(CurrentMetrics::IOUringEnqueuedEvents); - CurrentMetrics::sub(CurrentMetrics::Read); + return makeFailedResult(ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed submitting SQE"); } - - return false; } + else + { + CurrentMetrics::add(CurrentMetrics::IOUringPendingEvents); + pending_requests.push_back(std::move(enqueued_request)); + return pending_requests.back().promise.get_future(); + } +} - if (!resubmitting) // new request, increment counters +bool IOUringReader::submitToRing(EnqueuedRequest & enqueued) +{ + struct io_uring_sqe * sqe = io_uring_get_sqe(&ring); + if (!sqe) + return false; + + auto request = enqueued.request; + auto request_id = reinterpret_cast(request.buf); + int fd = assert_cast(*request.descriptor).fd; + + io_uring_sqe_set_data64(sqe, request_id); + io_uring_prep_read(sqe, fd, request.buf, request.size - enqueued.bytes_read, request.offset + enqueued.bytes_read); + int submitted = io_uring_submit(&ring); + + if (submitted <= 0) + return false; + + if (!enqueued.resubmitting) { ProfileEvents::increment(ProfileEvents::IOUringSQEsSubmitted); - CurrentMetrics::add(CurrentMetrics::IOUringEnqueuedEvents); + CurrentMetrics::add(CurrentMetrics::IOUringInFlightEvents); CurrentMetrics::add(CurrentMetrics::Read); } return true; } +void IOUringReader::failRequest(const EnqueuedIterator & requestIt, int code, const std::string & message) +{ + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); + (requestIt->second).promise.set_exception(std::make_exception_ptr(Exception(code, message))); + + finalizeRequest(requestIt); +} + +void IOUringReader::finalizeRequest(const EnqueuedIterator & requestIt) +{ + in_flight_requests.erase(requestIt); + + CurrentMetrics::sub(CurrentMetrics::IOUringInFlightEvents); + CurrentMetrics::sub(CurrentMetrics::Read); + + // since we just finalized a request there's now room in the completion queue, + // see if there are any pending requests and submit one from the front of the queue + if (!pending_requests.empty()) + { + auto pending_request = std::move(pending_requests.front()); + pending_requests.pop_front(); + + if (submitToRing(pending_request)) + { + auto request_id = reinterpret_cast(pending_request.request.buf); + if (!in_flight_requests.contains(request_id)) + in_flight_requests.emplace(request_id, std::move(pending_request)); + else + failPromise(pending_request.promise, + ErrorCodes::LOGICAL_ERROR, + "Tried enqueuing pending read request for {} that is already submitted", request_id); + } + else + { + failPromise(pending_request.promise, ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed submitting SQE for pending request"); + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); + } + + CurrentMetrics::sub(CurrentMetrics::IOUringPendingEvents); + } +} + void IOUringReader::monitorRing() { setThreadName("IOUringMonitor"); @@ -146,8 +199,11 @@ void IOUringReader::monitorRing() struct io_uring_cqe * cqe; int ret = io_uring_wait_cqe(&ring, &cqe); + if (ret == -EAGAIN) + continue; + if (ret < 0) - throwFromErrno(fmt::format("Failed waiting for io_uring CQEs: {}", ret), ErrorCodes::IO_URING_WAIT_ERROR); + throwFromErrno("Failed waiting for io_uring CQEs", ErrorCodes::IO_URING_WAIT_ERROR, -ret); // user_data zero means a noop event sent from the destructor meant to interrupt the thread if (cancelled.load(std::memory_order_relaxed) || cqe->user_data == 0) @@ -157,34 +213,28 @@ void IOUringReader::monitorRing() std::unique_lock lock{mutex}; auto request_id = cqe->user_data; - const auto it = enqueued_requests.find(request_id); - if (it == enqueued_requests.end()) - throwFromErrno( - fmt::format("Got a completion event for a request {} that was not submitted", request_id), - ErrorCodes::LOGICAL_ERROR); + const auto it = in_flight_requests.find(request_id); + if (it == in_flight_requests.end()) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Got a completion event for a request {} that was not submitted", request_id); auto & enqueued = it->second; + if (cqe->res == -EAGAIN) + { + enqueued.resubmitting = true; + ProfileEvents::increment(ProfileEvents::IOUringSQEsResubmits); + + if (!submitToRing(enqueued)) + failRequest(it, ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed re-submitting SQE"); + + io_uring_cqe_seen(&ring, cqe); + continue; + } + if (cqe->res < 0) { - if (cqe->res == -EAGAIN) - { - ProfileEvents::increment(ProfileEvents::IOUringSQEsResubmits); - - trySubmitRequest(request_id, enqueued, true); - io_uring_cqe_seen(&ring, cqe); - - continue; - } - int fd = assert_cast(*enqueued.request.descriptor).fd; - - failPromise(enqueued.promise, ErrorCodes::CANNOT_READ_FROM_FILE_DESCRIPTOR, "Cannot read from file {}", fd); - enqueued_requests.erase(it); - - ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); - CurrentMetrics::sub(CurrentMetrics::IOUringEnqueuedEvents); - CurrentMetrics::sub(CurrentMetrics::Read); + failRequest(it, ErrorCodes::CANNOT_READ_FROM_FILE_DESCRIPTOR, fmt::format("Cannot read from file {}", fd)); io_uring_cqe_seen(&ring, cqe); continue; @@ -203,16 +253,15 @@ void IOUringReader::monitorRing() if (bytes_read > 0 && total_bytes_read < enqueued.request.size) { // potential short read, re-submit + enqueued.resubmitting = true; enqueued.bytes_read += bytes_read; - trySubmitRequest(request_id, enqueued, true); + if (!submitToRing(enqueued)) + failRequest(it, ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed re-submitting SQE for short read"); } else { enqueued.promise.set_value(Result{ .size = total_bytes_read, .offset = enqueued.request.ignore }); - enqueued_requests.erase(it); - - CurrentMetrics::sub(CurrentMetrics::IOUringEnqueuedEvents); - CurrentMetrics::sub(CurrentMetrics::Read); + finalizeRequest(it); } io_uring_cqe_seen(&ring, cqe); diff --git a/src/Disks/IO/IOUringReader.h b/src/Disks/IO/IOUringReader.h index a304b9dccf6..b796fd09d3d 100644 --- a/src/Disks/IO/IOUringReader.h +++ b/src/Disks/IO/IOUringReader.h @@ -3,6 +3,7 @@ #include #include +#include #include #include @@ -23,6 +24,7 @@ private: std::mutex mutex; struct io_uring ring; + uint32_t cq_entries; std::atomic cancelled{false}; ThreadFromGlobalPool ring_completion_monitor; @@ -31,12 +33,20 @@ private: { std::promise promise; Request request; + bool resubmitting; // resubmits can happen due to short reads or when io_uring returns -EAGAIN size_t bytes_read; // keep track of bytes already read in case short reads happen }; - std::unordered_map enqueued_requests; + std::deque pending_requests; + std::unordered_map in_flight_requests; + + bool submitToRing(EnqueuedRequest & enqueued); + + using EnqueuedIterator = std::unordered_map::iterator; + + void failRequest(const EnqueuedIterator & requestIt, int code, const std::string & message); + void finalizeRequest(const EnqueuedIterator & requestIt); - bool trySubmitRequest(UInt64 request_id, EnqueuedRequest & enqueued, bool resubmitting); void monitorRing(); template inline void failPromise( @@ -54,7 +64,7 @@ private: } public: - IOUringReader(size_t queue_size_); + IOUringReader(uint32_t entries_); inline bool isSupported() { return is_supported; } std::future submit(Request request) override; diff --git a/src/Disks/IO/createReadBufferFromFileBase.cpp b/src/Disks/IO/createReadBufferFromFileBase.cpp index 977af883611..9f4cddae12e 100644 --- a/src/Disks/IO/createReadBufferFromFileBase.cpp +++ b/src/Disks/IO/createReadBufferFromFileBase.cpp @@ -80,7 +80,7 @@ std::unique_ptr createReadBufferFromFileBase( else if (settings.local_fs_method == LocalFSReadMethod::io_uring) { #if defined(OS_LINUX) - static std::shared_ptr reader = std::make_shared(4096); + static std::shared_ptr reader = std::make_shared(512); if (!reader->isSupported()) throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "io_uring is not supported by this system"); From 160c95a6b8f727153cb7a33960ee410bca401302 Mon Sep 17 00:00:00 2001 From: Saulius Valatka Date: Mon, 20 Jun 2022 15:41:42 +0300 Subject: [PATCH 086/525] unpoisson memory read by io_uring, handle interrupted syscalls, do not throw from monitor thread --- src/Common/ProfileEvents.cpp | 1 - src/Disks/IO/IOUringReader.cpp | 22 +++++++++++++++++----- src/Disks/IO/IOUringReader.h | 2 ++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Common/ProfileEvents.cpp b/src/Common/ProfileEvents.cpp index 093ffb0efbe..740e3a60f19 100644 --- a/src/Common/ProfileEvents.cpp +++ b/src/Common/ProfileEvents.cpp @@ -347,7 +347,6 @@ \ M(IOUringSQEsSubmitted, "Total number of io_uring SQEs submitted") \ M(IOUringSQEsResubmits, "Total number of io_uring SQE resubmits performed") \ - M(IOUringShortReads, "Total number of short (partial) reads returned by io_uring") \ namespace ProfileEvents { diff --git a/src/Disks/IO/IOUringReader.cpp b/src/Disks/IO/IOUringReader.cpp index aedc73f42be..fa7a4ea2bdb 100644 --- a/src/Disks/IO/IOUringReader.cpp +++ b/src/Disks/IO/IOUringReader.cpp @@ -4,10 +4,12 @@ #include #include #include +#include #include #include #include #include +#include #include namespace ProfileEvents @@ -18,7 +20,6 @@ namespace ProfileEvents extern const Event IOUringSQEsSubmitted; extern const Event IOUringSQEsResubmits; - extern const Event IOUringShortReads; } namespace CurrentMetrics @@ -41,6 +42,7 @@ namespace ErrorCodes } IOUringReader::IOUringReader(uint32_t entries_) + : log(&Poco::Logger::get("IOUringReader")) { struct io_uring_probe * probe = io_uring_get_probe(); if (!probe) @@ -199,15 +201,21 @@ void IOUringReader::monitorRing() struct io_uring_cqe * cqe; int ret = io_uring_wait_cqe(&ring, &cqe); - if (ret == -EAGAIN) + if (ret == -EAGAIN || ret == -EINTR) continue; if (ret < 0) - throwFromErrno("Failed waiting for io_uring CQEs", ErrorCodes::IO_URING_WAIT_ERROR, -ret); + { + LOG_ERROR(log, "Failed waiting for io_uring CQEs: {}", errnoToString(ErrorCodes::IO_URING_WAIT_ERROR, -ret)); + continue; + } // user_data zero means a noop event sent from the destructor meant to interrupt the thread if (cancelled.load(std::memory_order_relaxed) || cqe->user_data == 0) + { + LOG_DEBUG(log, "Stopping IOUringMonitor thread"); break; + } // it is safe to re-submit events once we take the lock here std::unique_lock lock{mutex}; @@ -215,7 +223,10 @@ void IOUringReader::monitorRing() auto request_id = cqe->user_data; const auto it = in_flight_requests.find(request_id); if (it == in_flight_requests.end()) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Got a completion event for a request {} that was not submitted", request_id); + { + LOG_ERROR(log, "Got a completion event for a request {} that was not submitted", request_id); + continue; + } auto & enqueued = it->second; @@ -245,9 +256,10 @@ void IOUringReader::monitorRing() if (bytes_read > 0) { + __msan_unpoison(enqueued.request.buf + enqueued.bytes_read, bytes_read); + ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorRead); ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadBytes, bytes_read); - if (enqueued.bytes_read > 0) ProfileEvents::increment(ProfileEvents::IOUringShortReads); } if (bytes_read > 0 && total_bytes_read < enqueued.request.size) diff --git a/src/Disks/IO/IOUringReader.h b/src/Disks/IO/IOUringReader.h index b796fd09d3d..74de9761cbe 100644 --- a/src/Disks/IO/IOUringReader.h +++ b/src/Disks/IO/IOUringReader.h @@ -63,6 +63,8 @@ private: return promise.get_future(); } + const Poco::Logger * log; + public: IOUringReader(uint32_t entries_); From a7152fe5ec7ab1cf5aeaeddeab9eccf7e2f3d131 Mon Sep 17 00:00:00 2001 From: Saulius Valatka Date: Tue, 21 Jun 2022 10:31:02 +0300 Subject: [PATCH 087/525] bump liburing --- contrib/liburing-cmake/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/liburing-cmake/CMakeLists.txt b/contrib/liburing-cmake/CMakeLists.txt index 26504ccb2d6..f40690980da 100644 --- a/contrib/liburing-cmake/CMakeLists.txt +++ b/contrib/liburing-cmake/CMakeLists.txt @@ -30,7 +30,9 @@ set (LIBURING_CONFIG_HAS_OPEN_HOW, "no") set (LIBURING_CONFIG_HAS_STATX, "no") set (LIBURING_CONFIG_HAS_GLIBC_STATX, "no") +add_compile_definitions(_GNU_SOURCE) add_compile_definitions(LIBURING_INTERNAL) + configure_file (compat.h.in ${LIBURING_COMPAT_HEADER}) add_library (_liburing ${SRCS}) From ba0fcec993953fc129f4305f890f1cdca4e4b8e1 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 21 Jun 2022 12:35:47 +0200 Subject: [PATCH 088/525] add background cleanup of store/ subdirs --- src/Access/DiskAccessStorage.cpp | 10 +- src/Common/filesystemHelpers.cpp | 2 - src/Databases/DatabaseOrdinary.cpp | 6 +- src/IO/ReadHelpers.h | 2 + src/Interpreters/DatabaseCatalog.cpp | 149 +++++++++++++- src/Interpreters/DatabaseCatalog.h | 15 ++ src/Interpreters/InterpreterCreateQuery.cpp | 8 + tests/config/config.d/database_atomic.xml | 5 + .../configs/store_cleanup.xml | 11 ++ .../test.py | 183 +++++++++++++++++- 10 files changed, 371 insertions(+), 20 deletions(-) create mode 100644 tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml diff --git a/src/Access/DiskAccessStorage.cpp b/src/Access/DiskAccessStorage.cpp index a9b7a6a265b..231e325196d 100644 --- a/src/Access/DiskAccessStorage.cpp +++ b/src/Access/DiskAccessStorage.cpp @@ -153,15 +153,7 @@ namespace bool tryParseUUID(const String & str, UUID & id) { - try - { - id = parseFromString(str); - return true; - } - catch (...) - { - return false; - } + return tryParse(id, str); } } diff --git a/src/Common/filesystemHelpers.cpp b/src/Common/filesystemHelpers.cpp index 7c10b24eb9c..32ae3219d9f 100644 --- a/src/Common/filesystemHelpers.cpp +++ b/src/Common/filesystemHelpers.cpp @@ -1,12 +1,10 @@ #include "filesystemHelpers.h" #if defined(OS_LINUX) -# include # include # include #endif #include -#include #include #include #include diff --git a/src/Databases/DatabaseOrdinary.cpp b/src/Databases/DatabaseOrdinary.cpp index ada9030905d..2e4ee785a94 100644 --- a/src/Databases/DatabaseOrdinary.cpp +++ b/src/Databases/DatabaseOrdinary.cpp @@ -172,9 +172,9 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables if (fs::exists(full_path.string() + detached_suffix)) { - /// FIXME: even if we don't load the table we can still mark the uuid of it as taken. - /// if (create_query->uuid != UUIDHelpers::Nil) - /// DatabaseCatalog::instance().addUUIDMapping(create_query->uuid); + /// Even if we don't load the table we can still mark the uuid of it as taken. + if (create_query->uuid != UUIDHelpers::Nil) + DatabaseCatalog::instance().addUUIDMapping(create_query->uuid); const std::string table_name = unescapeForFileName(file_name.substr(0, file_name.size() - 4)); LOG_DEBUG(log, "Skipping permanently detached table {}.", backQuote(table_name)); diff --git a/src/IO/ReadHelpers.h b/src/IO/ReadHelpers.h index 8fe8e2aa23e..4cd07dddf25 100644 --- a/src/IO/ReadHelpers.h +++ b/src/IO/ReadHelpers.h @@ -1065,6 +1065,8 @@ inline bool tryReadText(is_integer auto & x, ReadBuffer & buf) return tryReadIntText(x, buf); } +inline bool tryReadText(UUID & x, ReadBuffer & buf) { return tryReadUUIDText(x, buf); } + inline void readText(is_floating_point auto & x, ReadBuffer & buf) { readFloatText(x, buf); } inline void readText(String & x, ReadBuffer & buf) { readEscapedString(x, buf); } diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index fa9444a7e66..623e4ed0845 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -16,9 +16,11 @@ #include #include #include -#include #include +#include +#include + #include "config_core.h" #if USE_MYSQL @@ -27,12 +29,11 @@ #endif #if USE_LIBPQXX -# include +# include # include +# include #endif -namespace fs = std::filesystem; - namespace CurrentMetrics { extern const Metric TablesToDropQueueSize; @@ -143,6 +144,9 @@ StoragePtr TemporaryTableHolder::getTable() const void DatabaseCatalog::initializeAndLoadTemporaryDatabase() { drop_delay_sec = getContext()->getConfigRef().getInt("database_atomic_delay_before_drop_table_sec", default_drop_delay_sec); + unused_dir_hide_timeout_sec = getContext()->getConfigRef().getInt("database_catalog_unused_dir_hide_timeout_sec", unused_dir_hide_timeout_sec); + unused_dir_rm_timeout_sec = getContext()->getConfigRef().getInt("database_catalog_unused_dir_rm_timeout_sec", unused_dir_rm_timeout_sec); + unused_dir_cleanup_period_sec = getContext()->getConfigRef().getInt("database_catalog_unused_dir_cleanup_period_sec", unused_dir_cleanup_period_sec); auto db_for_temporary_and_external_tables = std::make_shared(TEMPORARY_DATABASE, getContext()); attachDatabase(TEMPORARY_DATABASE, db_for_temporary_and_external_tables); @@ -150,6 +154,12 @@ void DatabaseCatalog::initializeAndLoadTemporaryDatabase() void DatabaseCatalog::loadDatabases() { + auto cleanup_task_holder = getContext()->getSchedulePool().createTask("DatabaseCatalog", [this](){ this->cleanupStoreDirectoryTask(); }); + cleanup_task = std::make_unique(std::move(cleanup_task_holder)); + (*cleanup_task)->activate(); + /// Do not start task immediately on server startup, it's not urgent. + (*cleanup_task)->scheduleAfter(unused_dir_hide_timeout_sec * 1000); + auto task_holder = getContext()->getSchedulePool().createTask("DatabaseCatalog", [this](){ this->dropTableDataTask(); }); drop_task = std::make_unique(std::move(task_holder)); (*drop_task)->activate(); @@ -166,6 +176,9 @@ void DatabaseCatalog::shutdownImpl() { TemporaryLiveViewCleaner::shutdown(); + if (cleanup_task) + (*cleanup_task)->deactivate(); + if (drop_task) (*drop_task)->deactivate(); @@ -372,6 +385,10 @@ DatabasePtr DatabaseCatalog::detachDatabase(ContextPtr local_context, const Stri if (drop) { + UUID db_uuid = db->getUUID(); + if (db_uuid != UUIDHelpers::Nil) + removeUUIDMappingFinally(db_uuid); + /// Delete the database. db->drop(local_context); @@ -560,6 +577,15 @@ void DatabaseCatalog::updateUUIDMapping(const UUID & uuid, DatabasePtr database, prev_table = std::move(table); } +bool DatabaseCatalog::hasUUIDMapping(const UUID & uuid) +{ + assert(uuid != UUIDHelpers::Nil && getFirstLevelIdx(uuid) < uuid_map.size()); + UUIDToStorageMapPart & map_part = uuid_map[getFirstLevelIdx(uuid)]; + std::lock_guard lock{map_part.mutex}; + auto it = map_part.map.find(uuid); + return it != map_part.map.end(); +} + std::unique_ptr DatabaseCatalog::database_catalog; DatabaseCatalog::DatabaseCatalog(ContextMutablePtr global_context_) @@ -1072,6 +1098,121 @@ void DatabaseCatalog::updateLoadingDependencies(const StorageID & table_id, Tabl old_dependencies = std::move(new_dependencies); } +void DatabaseCatalog::cleanupStoreDirectoryTask() +{ + fs::path store_path = fs::path(getContext()->getPath()) / "store"; + size_t affected_dirs = 0; + for (const auto & prefix_dir : fs::directory_iterator{store_path}) + { + String prefix = prefix_dir.path().filename(); + bool expected_prefix_dir = prefix_dir.is_directory() && + prefix.size() == 3 && + isHexDigit(prefix[0]) && + isHexDigit(prefix[1]) && + isHexDigit(prefix[2]); + + if (!expected_prefix_dir) + { + LOG_WARNING(log, "Found invalid directory {}, will try to remove it", prefix_dir.path().string()); + maybeRemoveDirectory(prefix_dir.path()); + continue; + } + + for (const auto & uuid_dir : fs::directory_iterator{prefix_dir.path()}) + { + String uuid_str = uuid_dir.path().filename(); + UUID uuid; + bool parsed = tryParse(uuid, uuid_str); + + bool expected_dir = uuid_dir.is_directory() && + parsed && + uuid != UUIDHelpers::Nil && + uuid_str.starts_with(prefix); + + if (!expected_dir) + { + LOG_WARNING(log, "Found invalid directory {}, will try to remove it", uuid_dir.path().string()); + maybeRemoveDirectory(uuid_dir.path()); + continue; + } + + if (!hasUUIDMapping(uuid)) + { + /// We load uuids even for detached and permanently detached tables, + /// so it looks safe enough to remove directory if we don't have uuid mapping for it. + /// No table or database using this directory should concurrently appear, + /// because creation of new table would fail with "directory already exists". + affected_dirs += maybeRemoveDirectory(uuid_dir.path()); + } + } + } + + if (affected_dirs) + LOG_INFO(log, "Cleaned up {} directories from store/", affected_dirs); + + (*cleanup_task)->scheduleAfter(unused_dir_cleanup_period_sec * 1000); +} + +bool DatabaseCatalog::maybeRemoveDirectory(const fs::path & unused_dir) +{ + /// "Safe" automatic removal of some directory. + /// At first we do not remove anything and only revoke all access right. + /// And remove only if nobody noticed it after, for example, one month. + + struct stat st; + if (stat(unused_dir.string().c_str(), &st)) + { + LOG_ERROR(log, "Failed to stat {}, errno: {}", unused_dir.string(), errno); + return false; + } + + if (st.st_uid != geteuid()) + { + /// Directory is not owned by clickhouse, it's weird, let's ignore it (chmod will likely fail anyway). + LOG_WARNING(log, "Found directory {} with unexpected owner (uid={})", unused_dir.string(), st.st_uid); + return false; + } + + time_t max_modification_time = std::max(st.st_atime, std::max(st.st_mtime, st.st_ctime)); + time_t current_time = time(nullptr); + if (st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO)) + { + if (current_time <= max_modification_time + unused_dir_hide_timeout_sec) + return false; + + LOG_INFO(log, "Removing access rights for unused directory {} (will remove it when timeout exceed)", unused_dir.string()); + + /// Explicitly update modification time just in case + + struct utimbuf tb; + tb.actime = current_time; + tb.modtime = current_time; + if (utime(unused_dir.string().c_str(), &tb) != 0) + LOG_ERROR(log, "Failed to utime {}, errno: {}", unused_dir.string(), errno); + + /// Remove all access right + if (chmod(unused_dir.string().c_str(), 0)) + LOG_ERROR(log, "Failed to chmod {}, errno: {}", unused_dir.string(), errno); + + return true; + } + else + { + if (current_time <= max_modification_time + unused_dir_rm_timeout_sec) + return false; + + LOG_INFO(log, "Removing unused directory {}", unused_dir.string()); + + /// We have to set these access rights to make recursive removal work + if (chmod(unused_dir.string().c_str(), S_IRWXU)) + LOG_ERROR(log, "Failed to chmod {}, errno: {}", unused_dir.string(), errno); + + fs::remove_all(unused_dir); + + return true; + } +} + DDLGuard::DDLGuard(Map & map_, std::shared_mutex & db_mutex_, std::unique_lock guards_lock_, const String & elem, const String & database_name) : map(map_), db_mutex(db_mutex_), guards_lock(std::move(guards_lock_)) diff --git a/src/Interpreters/DatabaseCatalog.h b/src/Interpreters/DatabaseCatalog.h index 79ba4052038..9ca0bb276d6 100644 --- a/src/Interpreters/DatabaseCatalog.h +++ b/src/Interpreters/DatabaseCatalog.h @@ -20,7 +20,9 @@ #include #include #include +#include +namespace fs = std::filesystem; namespace DB { @@ -203,6 +205,8 @@ public: /// this method will throw an exception. void addUUIDMapping(const UUID & uuid); + bool hasUUIDMapping(const UUID & uuid); + static String getPathForUUID(const UUID & uuid); DatabaseAndTable tryGetByUUID(const UUID & uuid) const; @@ -261,6 +265,9 @@ private: void dropTableDataTask(); void dropTableFinally(const TableMarkedAsDropped & table); + void cleanupStoreDirectoryTask(); + bool maybeRemoveDirectory(const fs::path & unused_dir); + static constexpr size_t reschedule_time_ms = 100; static constexpr time_t drop_error_cooldown_sec = 5; @@ -298,6 +305,14 @@ private: static constexpr time_t default_drop_delay_sec = 8 * 60; time_t drop_delay_sec = default_drop_delay_sec; std::condition_variable wait_table_finally_dropped; + + std::unique_ptr cleanup_task; + static constexpr time_t default_unused_dir_hide_timeout_sec = 60 * 60; /// 1 hour + time_t unused_dir_hide_timeout_sec = default_unused_dir_hide_timeout_sec; + static constexpr time_t default_unused_dir_rm_timeout_sec = 30 * 24 * 60 * 60; /// 30 days + time_t unused_dir_rm_timeout_sec = default_unused_dir_rm_timeout_sec; + static constexpr time_t default_unused_dir_cleanup_period_sec = 24 * 60 * 60; /// 1 day + time_t unused_dir_cleanup_period_sec = default_unused_dir_cleanup_period_sec; }; } diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index 304cfa2f3f4..9e745ffcabe 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -255,6 +255,7 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) create.setDatabase(TABLE_WITH_UUID_NAME_PLACEHOLDER); bool need_write_metadata = !create.attach || !fs::exists(metadata_file_path); + bool need_lock_uuid = internal || !create.attach; if (need_write_metadata) { @@ -279,6 +280,13 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) /// We attach database before loading it's tables, so do not allow concurrent DDL queries auto db_guard = DatabaseCatalog::instance().getExclusiveDDLGuardForDatabase(database_name); + if (create.uuid != UUIDHelpers::Nil && need_lock_uuid) + { + /// Lock uuid, so we will known it's already in use. + /// We do it when attaching databases on server startup (internal) and on CREATE query (!create.attach); + DatabaseCatalog::instance().addUUIDMapping(create.uuid); + } + bool added = false; bool renamed = false; try diff --git a/tests/config/config.d/database_atomic.xml b/tests/config/config.d/database_atomic.xml index b3f51d51a79..a551e710ca3 100644 --- a/tests/config/config.d/database_atomic.xml +++ b/tests/config/config.d/database_atomic.xml @@ -1,3 +1,8 @@ 60 + + + 0 + 5 + 10 diff --git a/tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml b/tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml new file mode 100644 index 00000000000..3b0260dd07a --- /dev/null +++ b/tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml @@ -0,0 +1,11 @@ + + 0 + 15 + 1 + + + + testkeeper + + \ No newline at end of file diff --git a/tests/integration/test_broken_detached_part_clean_up/test.py b/tests/integration/test_broken_detached_part_clean_up/test.py index 3d9134bdc54..dd6744b4228 100644 --- a/tests/integration/test_broken_detached_part_clean_up/test.py +++ b/tests/integration/test_broken_detached_part_clean_up/test.py @@ -1,14 +1,15 @@ import pytest from helpers.cluster import ClickHouseCluster -from multiprocessing.dummy import Pool from helpers.corrupt_part_data_on_disk import corrupt_part_data_on_disk from helpers.corrupt_part_data_on_disk import break_part import time cluster = ClickHouseCluster(__file__) -node1 = cluster.add_instance("node1", stay_alive=True, with_zookeeper=True) +node1 = cluster.add_instance( + "node1", stay_alive=True, main_configs=["configs/store_cleanup.xml"] +) path_to_data = "/var/lib/clickhouse/" @@ -147,3 +148,181 @@ def test_remove_broken_detached_part_replicated_merge_tree(started_cluster): ) remove_broken_detached_part_impl("replicated_mt", node1, "broken") + + +def test_store_cleanup(started_cluster): + node1.query("CREATE DATABASE db UUID '10000000-1000-4000-8000-000000000001'") + node1.query( + "CREATE TABLE db.log UUID '10000000-1000-4000-8000-000000000002' ENGINE=Log AS SELECT 1" + ) + node1.query( + "CREATE TABLE db.mt UUID '10000000-1000-4000-8000-000000000003' ENGINE=MergeTree ORDER BY tuple() AS SELECT 1" + ) + node1.query( + "CREATE TABLE db.mem UUID '10000000-1000-4000-8000-000000000004' ENGINE=Memory AS SELECT 1" + ) + + node1.query("CREATE DATABASE db2 UUID '20000000-1000-4000-8000-000000000001'") + node1.query( + "CREATE TABLE db2.log UUID '20000000-1000-4000-8000-000000000002' ENGINE=Log AS SELECT 1" + ) + node1.query("DETACH DATABASE db2") + + node1.query("CREATE DATABASE db3 UUID '30000000-1000-4000-8000-000000000001'") + node1.query( + "CREATE TABLE db3.log UUID '30000000-1000-4000-8000-000000000002' ENGINE=Log AS SELECT 1" + ) + node1.query( + "CREATE TABLE db3.log2 UUID '30000000-1000-4000-8000-000000000003' ENGINE=Log AS SELECT 1" + ) + node1.query("DETACH TABLE db3.log") + node1.query("DETACH TABLE db3.log2 PERMANENTLY") + + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store"] + ) + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/100"] + ) + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/200"] + ) + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/300"] + ) + + node1.stop_clickhouse(kill=True) + # All dirs related to `db` will be removed + node1.exec_in_container(["rm", f"{path_to_data}/metadata/db.sql"]) + + node1.exec_in_container(["mkdir", f"{path_to_data}/store/kek"]) + node1.exec_in_container(["touch", f"{path_to_data}/store/12"]) + node1.exec_in_container(["mkdir", f"{path_to_data}/store/456"]) + node1.exec_in_container(["mkdir", f"{path_to_data}/store/456/testgarbage"]) + node1.exec_in_container( + ["mkdir", f"{path_to_data}/store/456/30000000-1000-4000-8000-000000000003"] + ) + node1.exec_in_container( + ["touch", f"{path_to_data}/store/456/45600000-1000-4000-8000-000000000003"] + ) + node1.exec_in_container( + ["mkdir", f"{path_to_data}/store/456/45600000-1000-4000-8000-000000000004"] + ) + + node1.start_clickhouse() + node1.query("DETACH DATABASE db2") + node1.query("DETACH TABLE db3.log") + + node1.wait_for_log_line("Removing access rights for unused directory") + time.sleep(1) + node1.wait_for_log_line("testgarbage") + node1.wait_for_log_line("directories from store") + + store = node1.exec_in_container(["ls", f"{path_to_data}/store"]) + assert "100" in store + assert "200" in store + assert "300" in store + assert "456" in store + assert "kek" in store + assert "12" in store + assert "d---------" in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store"] + ) + assert "d---------" in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/456"] + ) + + # Metadata is removed, so store/100 contains garbage + store100 = node1.exec_in_container(["ls", f"{path_to_data}/store/100"]) + assert "10000000-1000-4000-8000-000000000001" in store100 + assert "10000000-1000-4000-8000-000000000002" in store100 + assert "10000000-1000-4000-8000-000000000003" in store100 + assert "d---------" in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/100"] + ) + + # Database is detached, nothing to clean up + store200 = node1.exec_in_container(["ls", f"{path_to_data}/store/200"]) + assert "20000000-1000-4000-8000-000000000001" in store200 + assert "20000000-1000-4000-8000-000000000002" in store200 + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/200"] + ) + + # Tables are detached, nothing to clean up + store300 = node1.exec_in_container(["ls", f"{path_to_data}/store/300"]) + assert "30000000-1000-4000-8000-000000000001" in store300 + assert "30000000-1000-4000-8000-000000000002" in store300 + assert "30000000-1000-4000-8000-000000000003" in store300 + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/300"] + ) + + # Manually created garbage + store456 = node1.exec_in_container(["ls", f"{path_to_data}/store/456"]) + assert "30000000-1000-4000-8000-000000000003" in store456 + assert "45600000-1000-4000-8000-000000000003" in store456 + assert "45600000-1000-4000-8000-000000000004" in store456 + assert "testgarbage" in store456 + assert "----------" in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/456"] + ) + + node1.wait_for_log_line("Removing unused directory") + time.sleep(1) + node1.wait_for_log_line("directories from store") + + store = node1.exec_in_container(["ls", f"{path_to_data}/store"]) + assert "100" in store + assert "200" in store + assert "300" in store + assert "456" in store + assert "kek" not in store # changed + assert "12" not in store # changed + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store"] + ) # changed + + # Metadata is removed, so store/100 contains garbage + store100 = node1.exec_in_container(["ls", f"{path_to_data}/store/100"]) # changed + assert "10000000-1000-4000-8000-000000000001" not in store100 # changed + assert "10000000-1000-4000-8000-000000000002" not in store100 # changed + assert "10000000-1000-4000-8000-000000000003" not in store100 # changed + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/100"] + ) # changed + + # Database is detached, nothing to clean up + store200 = node1.exec_in_container(["ls", f"{path_to_data}/store/200"]) + assert "20000000-1000-4000-8000-000000000001" in store200 + assert "20000000-1000-4000-8000-000000000002" in store200 + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/200"] + ) + + # Tables are detached, nothing to clean up + store300 = node1.exec_in_container(["ls", f"{path_to_data}/store/300"]) + assert "30000000-1000-4000-8000-000000000001" in store300 + assert "30000000-1000-4000-8000-000000000002" in store300 + assert "30000000-1000-4000-8000-000000000003" in store300 + assert "d---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/300"] + ) + + # Manually created garbage + store456 = node1.exec_in_container(["ls", f"{path_to_data}/store/456"]) + assert "30000000-1000-4000-8000-000000000003" not in store456 # changed + assert "45600000-1000-4000-8000-000000000003" not in store456 # changed + assert "45600000-1000-4000-8000-000000000004" not in store456 # changed + assert "testgarbage" not in store456 # changed + assert "---------" not in node1.exec_in_container( + ["ls", "-l", f"{path_to_data}/store/456"] + ) # changed + + node1.query("ATTACH TABLE db3.log2") + node1.query("ATTACH DATABASE db2") + node1.query("ATTACH TABLE db3.log") + + assert "1\n" == node1.query("SELECT * FROM db3.log") + assert "1\n" == node1.query("SELECT * FROM db3.log2") + assert "1\n" == node1.query("SELECT * FROM db2.log") From 099055c1833224bf9212897a7a283a7cf529c803 Mon Sep 17 00:00:00 2001 From: Dmitry Novik Date: Tue, 21 Jun 2022 12:26:13 +0000 Subject: [PATCH 089/525] Explicitly forbid allocations in OvercommitTracker --- src/Common/OvercommitTracker.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Common/OvercommitTracker.cpp b/src/Common/OvercommitTracker.cpp index 6f688ca28ff..74235748345 100644 --- a/src/Common/OvercommitTracker.cpp +++ b/src/Common/OvercommitTracker.cpp @@ -25,14 +25,24 @@ OvercommitTracker::OvercommitTracker(std::mutex & global_mutex_) , allow_release(true) {} -#define LOG_DEBUG_SAFE(...) \ - do { \ - OvercommitTrackerBlockerInThread blocker; \ - LOG_DEBUG(__VA_ARGS__); \ +#define LOG_DEBUG_SAFE(...) \ + do { \ + OvercommitTrackerBlockerInThread blocker; \ + try \ + { \ + ALLOW_ALLOCATIONS_IN_SCOPE; \ + LOG_DEBUG(__VA_ARGS__); \ + } \ + catch (std::bad_alloc const &) \ + { \ + fprintf(stderr, "Allocation failed during writing to log in OvercommitTracker\n"); \ + } \ } while (false) OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int64 amount) { + DENY_ALLOCATIONS_IN_SCOPE; + if (OvercommitTrackerBlockerInThread::isBlocked()) return OvercommitResult::NONE; // NOTE: Do not change the order of locks @@ -108,6 +118,8 @@ OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int void OvercommitTracker::tryContinueQueryExecutionAfterFree(Int64 amount) { + DENY_ALLOCATIONS_IN_SCOPE; + if (OvercommitTrackerBlockerInThread::isBlocked()) return; @@ -122,6 +134,8 @@ void OvercommitTracker::tryContinueQueryExecutionAfterFree(Int64 amount) void OvercommitTracker::onQueryStop(MemoryTracker * tracker) { + DENY_ALLOCATIONS_IN_SCOPE; + std::unique_lock lk(overcommit_m); if (picked_tracker == tracker) { From 13e3d40db43bf0a257f608ddab344ee22d0fa3f1 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 21 Jun 2022 15:11:03 +0200 Subject: [PATCH 090/525] fix --- src/Interpreters/DatabaseCatalog.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 623e4ed0845..dc0d346be92 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -20,6 +20,7 @@ #include #include +#include #include "config_core.h" From 481644939a91189163059c64bdca5e6801b18a13 Mon Sep 17 00:00:00 2001 From: kssenii Date: Tue, 21 Jun 2022 15:42:36 +0200 Subject: [PATCH 091/525] Add describe cache command --- src/Common/FileCacheFactory.cpp | 33 ++++++++--- src/Common/FileCacheFactory.h | 19 +++--- .../DiskObjectStorageCommon.cpp | 2 +- .../InterpreterDescribeCacheQuery.cpp | 58 +++++++++++++++++++ .../InterpreterDescribeCacheQuery.h | 22 +++++++ src/Interpreters/InterpreterFactory.cpp | 6 ++ src/Parsers/ASTDescribeCacheQuery.h | 27 +++++++++ src/Parsers/ParserDescribeCacheQuery.cpp | 34 +++++++++++ src/Parsers/ParserDescribeCacheQuery.h | 20 +++++++ src/Parsers/ParserQueryWithOutput.cpp | 3 + 10 files changed, 209 insertions(+), 15 deletions(-) create mode 100644 src/Interpreters/InterpreterDescribeCacheQuery.cpp create mode 100644 src/Interpreters/InterpreterDescribeCacheQuery.h create mode 100644 src/Parsers/ASTDescribeCacheQuery.h create mode 100644 src/Parsers/ParserDescribeCacheQuery.cpp create mode 100644 src/Parsers/ParserDescribeCacheQuery.h diff --git a/src/Common/FileCacheFactory.cpp b/src/Common/FileCacheFactory.cpp index e126ac014f2..b2dc2739d8a 100644 --- a/src/Common/FileCacheFactory.cpp +++ b/src/Common/FileCacheFactory.cpp @@ -1,5 +1,4 @@ #include "FileCacheFactory.h" -#include "IFileCache.h" #include "LRUFileCache.h" namespace DB @@ -19,7 +18,7 @@ FileCacheFactory & FileCacheFactory::instance() FileCacheFactory::CacheByBasePath FileCacheFactory::getAll() { std::lock_guard lock(mutex); - return caches; + return caches_by_path; } const FileCacheSettings & FileCacheFactory::getSettings(const std::string & cache_base_path) @@ -33,10 +32,10 @@ const FileCacheSettings & FileCacheFactory::getSettings(const std::string & cach throw Exception(ErrorCodes::BAD_ARGUMENTS, "No cache found by path: {}", cache_base_path); } -FileCacheFactory::CacheData * FileCacheFactory::getImpl(const std::string & cache_base_path, std::lock_guard &) +FileCacheFactory::FileCacheData * FileCacheFactory::getImpl(const std::string & cache_base_path, std::lock_guard &) { - auto it = caches.find(cache_base_path); - if (it == caches.end()) + auto it = caches_by_path.find(cache_base_path); + if (it == caches_by_path.end()) return nullptr; return &it->second; } @@ -53,17 +52,37 @@ FileCachePtr FileCacheFactory::get(const std::string & cache_base_path) } FileCachePtr FileCacheFactory::getOrCreate( - const std::string & cache_base_path, const FileCacheSettings & file_cache_settings) + const std::string & cache_base_path, const FileCacheSettings & file_cache_settings, const std::string & name) { std::lock_guard lock(mutex); auto * cache_data = getImpl(cache_base_path, lock); if (cache_data) + { + registerCacheByName(name, *cache_data); return cache_data->cache; + } auto cache = std::make_shared(cache_base_path, file_cache_settings); - caches.emplace(cache_base_path, CacheData(cache, file_cache_settings)); + FileCacheData result{cache, file_cache_settings}; + + registerCacheByName(name, result); + caches_by_path.emplace(cache_base_path, result); + return cache; } +FileCacheFactory::FileCacheData FileCacheFactory::getByName(const std::string & name) +{ + auto it = caches_by_name.find(name); + if (it == caches_by_name.end()) + throw Exception(ErrorCodes::BAD_ARGUMENTS, "No cache found by name: {}", name); + return it->second; +} + +void FileCacheFactory::registerCacheByName(const std::string & name, const FileCacheData & cache_data) +{ + caches_by_name.emplace(std::make_pair(name, cache_data)); +} + } diff --git a/src/Common/FileCacheFactory.h b/src/Common/FileCacheFactory.h index 3518f487b6d..007d77643b6 100644 --- a/src/Common/FileCacheFactory.h +++ b/src/Common/FileCacheFactory.h @@ -15,20 +15,21 @@ namespace DB */ class FileCacheFactory final : private boost::noncopyable { - struct CacheData +public: + struct FileCacheData { FileCachePtr cache; FileCacheSettings settings; - CacheData(FileCachePtr cache_, const FileCacheSettings & settings_) : cache(cache_), settings(settings_) {} + FileCacheData(FileCachePtr cache_, const FileCacheSettings & settings_) : cache(cache_), settings(settings_) {} }; - using CacheByBasePath = std::unordered_map; + using CacheByBasePath = std::unordered_map; + using CacheByName = std::unordered_map; -public: static FileCacheFactory & instance(); - FileCachePtr getOrCreate(const std::string & cache_base_path, const FileCacheSettings & file_cache_settings); + FileCachePtr getOrCreate(const std::string & cache_base_path, const FileCacheSettings & file_cache_settings, const std::string & name); FileCachePtr get(const std::string & cache_base_path); @@ -36,11 +37,15 @@ public: const FileCacheSettings & getSettings(const std::string & cache_base_path); + FileCacheData getByName(const std::string & name); + private: - CacheData * getImpl(const std::string & cache_base_path, std::lock_guard &); + FileCacheData * getImpl(const std::string & cache_base_path, std::lock_guard &); + void registerCacheByName(const std::string & name, const FileCacheData & cache_data); std::mutex mutex; - CacheByBasePath caches; + CacheByBasePath caches_by_path; + CacheByName caches_by_name; }; } diff --git a/src/Disks/ObjectStorages/DiskObjectStorageCommon.cpp b/src/Disks/ObjectStorages/DiskObjectStorageCommon.cpp index 9311cb2c12a..99606a18517 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageCommon.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageCommon.cpp @@ -73,7 +73,7 @@ FileCachePtr getCachePtrForDisk( FileCacheSettings file_cache_settings; file_cache_settings.loadFromConfig(config, config_prefix); - auto cache = FileCacheFactory::instance().getOrCreate(cache_base_path, file_cache_settings); + auto cache = FileCacheFactory::instance().getOrCreate(cache_base_path, file_cache_settings, name); cache->initialize(); auto * log = &Poco::Logger::get("Disk(" + name + ")"); diff --git a/src/Interpreters/InterpreterDescribeCacheQuery.cpp b/src/Interpreters/InterpreterDescribeCacheQuery.cpp new file mode 100644 index 00000000000..554153922b5 --- /dev/null +++ b/src/Interpreters/InterpreterDescribeCacheQuery.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace DB +{ + +static Block getSampleBlock() +{ + ColumnsWithTypeAndName columns{ + ColumnWithTypeAndName{std::make_shared(), "max_size"}, + ColumnWithTypeAndName{std::make_shared(), "max_elements"}, + ColumnWithTypeAndName{std::make_shared(), "max_file_segment_size"}, + ColumnWithTypeAndName{std::make_shared>(), "cache_on_write_operations"}, + ColumnWithTypeAndName{std::make_shared>(), "enable_cache_hits_threshold"}, + ColumnWithTypeAndName{std::make_shared(), "current_size"}, + ColumnWithTypeAndName{std::make_shared(), "current_elements"}, + ColumnWithTypeAndName{std::make_shared(), "path"} + }; + return Block(columns); +} + +BlockIO InterpreterDescribeCacheQuery::execute() +{ + ColumnsDescription columns; + + const auto & ast = query_ptr->as(); + Block sample_block = getSampleBlock(); + MutableColumns res_columns = sample_block.cloneEmptyColumns(); + + auto cache_data = FileCacheFactory::instance().getByName(ast.cache_name); + const auto & settings = cache_data.settings; + const auto & cache = cache_data.cache; + + res_columns[0]->insert(settings.max_size); + res_columns[1]->insert(settings.max_elements); + res_columns[2]->insert(settings.max_file_segment_size); + res_columns[3]->insert(settings.cache_on_write_operations); + res_columns[4]->insert(settings.enable_cache_hits_threshold); + res_columns[5]->insert(cache->getUsedCacheSize()); + res_columns[6]->insert(cache->getFileSegmentsNum()); + res_columns[7]->insert(cache->getBasePath()); + + BlockIO res; + size_t num_rows = res_columns[0]->size(); + auto source = std::make_shared(sample_block, Chunk(std::move(res_columns), num_rows)); + res.pipeline = QueryPipeline(std::move(source)); + + return res; +} + +} diff --git a/src/Interpreters/InterpreterDescribeCacheQuery.h b/src/Interpreters/InterpreterDescribeCacheQuery.h new file mode 100644 index 00000000000..31b77f7d064 --- /dev/null +++ b/src/Interpreters/InterpreterDescribeCacheQuery.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include + + +namespace DB +{ + +class InterpreterDescribeCacheQuery : public IInterpreter, WithContext +{ +public: + InterpreterDescribeCacheQuery(const ASTPtr & query_ptr_, ContextPtr context_) : WithContext(context_), query_ptr(query_ptr_) {} + + BlockIO execute() override; + +private: + ASTPtr query_ptr; +}; + + +} diff --git a/src/Interpreters/InterpreterFactory.cpp b/src/Interpreters/InterpreterFactory.cpp index 5dcee1eae05..c212eb50b97 100644 --- a/src/Interpreters/InterpreterFactory.cpp +++ b/src/Interpreters/InterpreterFactory.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -43,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -200,6 +202,10 @@ std::unique_ptr InterpreterFactory::get(ASTPtr & query, ContextMut { return std::make_unique(query, context); } + else if (query->as()) + { + return std::make_unique(query, context); + } else if (query->as()) { return std::make_unique(query, context); diff --git a/src/Parsers/ASTDescribeCacheQuery.h b/src/Parsers/ASTDescribeCacheQuery.h new file mode 100644 index 00000000000..31e883ff500 --- /dev/null +++ b/src/Parsers/ASTDescribeCacheQuery.h @@ -0,0 +1,27 @@ +#include + +namespace DB +{ + +class ASTDescribeCacheQuery : public ASTQueryWithOutput +{ +public: + String cache_name; + + String getID(char) const override { return "DescribeCacheQuery"; } + + ASTPtr clone() const override + { + auto res = std::make_shared(*this); + cloneOutputOptions(*res); + return res; + } + +protected: + void formatQueryImpl(const FormatSettings & settings, FormatState &, FormatStateStacked) const override + { + settings.ostr << (settings.hilite ? hilite_keyword : "") << "DESCRIBE CACHE" << (settings.hilite ? hilite_none : "") << " " << cache_name; + } +}; + +} diff --git a/src/Parsers/ParserDescribeCacheQuery.cpp b/src/Parsers/ParserDescribeCacheQuery.cpp new file mode 100644 index 00000000000..e64c1a850f2 --- /dev/null +++ b/src/Parsers/ParserDescribeCacheQuery.cpp @@ -0,0 +1,34 @@ +#include +#include +#include +#include + +namespace DB +{ + + +bool ParserDescribeCacheQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) +{ + ParserKeyword p_describe("DESCRIBE"); + ParserKeyword p_desc("DESC"); + ParserKeyword p_cache("CACHE"); + ParserLiteral p_cache_name; + + if ((!p_describe.ignore(pos, expected) && !p_desc.ignore(pos, expected)) + || !p_cache.ignore(pos, expected)) + return false; + + auto query = std::make_shared(); + + ASTPtr ast; + if (!p_cache_name.parse(pos, ast, expected)) + return false; + + query->cache_name = ast->as()->value.safeGet(); + node = query; + + return true; +} + + +} diff --git a/src/Parsers/ParserDescribeCacheQuery.h b/src/Parsers/ParserDescribeCacheQuery.h new file mode 100644 index 00000000000..ae717875678 --- /dev/null +++ b/src/Parsers/ParserDescribeCacheQuery.h @@ -0,0 +1,20 @@ +#pragma once + + +#include +#include + + +namespace DB +{ + +/** Query (DESCRIBE | DESC) CACHE 'cache_name' + */ +class ParserDescribeCacheQuery : public IParserBase +{ +protected: + const char * getName() const override { return "DESCRIBE CACHE query"; } + bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; +}; + +} diff --git a/src/Parsers/ParserQueryWithOutput.cpp b/src/Parsers/ParserQueryWithOutput.cpp index 6041f986a49..a6af19fc670 100644 --- a/src/Parsers/ParserQueryWithOutput.cpp +++ b/src/Parsers/ParserQueryWithOutput.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -35,6 +36,7 @@ bool ParserQueryWithOutput::parseImpl(Pos & pos, ASTPtr & node, Expected & expec ParserSelectWithUnionQuery select_p; ParserTablePropertiesQuery table_p; ParserDescribeTableQuery describe_table_p; + ParserDescribeCacheQuery describe_cache_p; ParserShowProcesslistQuery show_processlist_p; ParserCreateQuery create_p; ParserAlterQuery alter_p; @@ -59,6 +61,7 @@ bool ParserQueryWithOutput::parseImpl(Pos & pos, ASTPtr & node, Expected & expec || show_create_access_entity_p.parse(pos, query, expected) /// should be before `show_tables_p` || show_tables_p.parse(pos, query, expected) || table_p.parse(pos, query, expected) + || describe_cache_p.parse(pos, query, expected) || describe_table_p.parse(pos, query, expected) || show_processlist_p.parse(pos, query, expected) || create_p.parse(pos, query, expected) From 7fb5217384210a478fb46b329c4aefc93dfe83e7 Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Tue, 21 Jun 2022 16:18:18 +0200 Subject: [PATCH 092/525] Update ASTDescribeCacheQuery.h --- src/Parsers/ASTDescribeCacheQuery.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Parsers/ASTDescribeCacheQuery.h b/src/Parsers/ASTDescribeCacheQuery.h index 31e883ff500..17ec697d565 100644 --- a/src/Parsers/ASTDescribeCacheQuery.h +++ b/src/Parsers/ASTDescribeCacheQuery.h @@ -1,3 +1,4 @@ +#pragma once #include namespace DB From 1d6eea6cfa8068284ab06f2c7d5f8dfc8e091783 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Tue, 21 Jun 2022 18:55:17 +0300 Subject: [PATCH 093/525] Replace LOG_DEBUG by LOG_TRACE in KerberosInit; Correct exception message; Prohibit making a copy of KerberosInit --- src/Access/KerberosInit.cpp | 40 ++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 8d4e2339bbf..e78830bdaa5 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #if USE_KRB5 #include #include @@ -27,7 +28,10 @@ struct k5_data krb5_boolean switch_to_cache; }; -class KerberosInit +/** + * This class implements programmatic implementation of kinit. + */ +class KerberosInit : boost::noncopyable { public: int init(const String & keytab_file, const String & principal, const String & cache_name = ""); @@ -44,7 +48,7 @@ private: int KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) { auto log = &Poco::Logger::get("KerberosInit"); - LOG_DEBUG(log,"Trying to authenticate to Kerberos v5"); + LOG_TRACE(log,"Trying to authenticate to Kerberos v5"); krb5_error_code ret; @@ -52,7 +56,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con int flags = 0; if (!std::filesystem::exists(keytab_file)) - throw Exception("Error keytab file does not exist", ErrorCodes::KERBEROS_ERROR); + throw Exception("Keytab file does not exist", ErrorCodes::KERBEROS_ERROR); memset(&k5, 0, sizeof(k5)); ret = krb5_init_context(&k5.ctx); @@ -64,7 +68,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con ret = krb5_cc_resolve(k5.ctx, cache_name.c_str(), &k5.out_cc); if (ret) throw Exception("Error in resolving cache", ErrorCodes::KERBEROS_ERROR); - LOG_DEBUG(log,"Resolved cache"); + LOG_TRACE(log,"Resolved cache"); } else { @@ -72,7 +76,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con ret = krb5_cc_default(k5.ctx, &defcache); if (ret) throw Exception("Error while getting default cache", ErrorCodes::KERBEROS_ERROR); - LOG_DEBUG(log,"Resolved default cache"); + LOG_TRACE(log,"Resolved default cache"); deftype = krb5_cc_get_type(k5.ctx, defcache); if (krb5_cc_get_principal(k5.ctx, defcache, &defcache_princ) != 0) defcache_princ = nullptr; @@ -92,7 +96,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con throw Exception("Error while searching for cache for " + principal, ErrorCodes::KERBEROS_ERROR); if (!ret) { - LOG_DEBUG(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); + LOG_TRACE(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); k5.switch_to_cache = 1; } else if (defcache_princ != nullptr) @@ -101,7 +105,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con ret = krb5_cc_new_unique(k5.ctx, deftype, nullptr, &k5.out_cc); if (ret) throw Exception("Error while generating new cache", ErrorCodes::KERBEROS_ERROR); - LOG_DEBUG(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); + LOG_TRACE(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); k5.switch_to_cache = 1; } } @@ -111,13 +115,13 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con { k5.out_cc = defcache; defcache = nullptr; - LOG_DEBUG(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); + LOG_TRACE(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); } ret = krb5_unparse_name(k5.ctx, k5.me, &k5.name); if (ret) throw Exception("Error when unparsing name", ErrorCodes::KERBEROS_ERROR); - LOG_DEBUG(log,"Using principal: {}", k5.name); + LOG_TRACE(log,"Using principal: {}", k5.name); memset(&my_creds, 0, sizeof(my_creds)); ret = krb5_get_init_creds_opt_alloc(k5.ctx, &options); @@ -128,7 +132,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con ret = krb5_kt_resolve(k5.ctx, keytab_file.c_str(), &keytab); if (ret) throw Exception("Error in resolving keytab "+keytab_file, ErrorCodes::KERBEROS_ERROR); - LOG_DEBUG(log,"Using keytab: {}", keytab_file); + LOG_TRACE(log,"Using keytab: {}", keytab_file); if (k5.in_cc) { @@ -141,28 +145,28 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con throw Exception("Error in setting output credential cache", ErrorCodes::KERBEROS_ERROR); // Action: init or renew - LOG_DEBUG(log,"Trying to renew credentials"); + LOG_TRACE(log,"Trying to renew credentials"); ret = krb5_get_renewed_creds(k5.ctx, &my_creds, k5.me, k5.out_cc, nullptr); if (ret) { - LOG_DEBUG(log,"Renew failed ({}). Trying to get initial credentials", ret); + LOG_TRACE(log,"Renew failed ({}). Trying to get initial credentials", ret); ret = krb5_get_init_creds_keytab(k5.ctx, &my_creds, k5.me, keytab, 0, nullptr, options); if (ret) throw Exception("Error in getting initial credentials", ErrorCodes::KERBEROS_ERROR); else - LOG_DEBUG(log,"Got initial credentials"); + LOG_TRACE(log,"Got initial credentials"); } else { - LOG_DEBUG(log,"Successful renewal"); + LOG_TRACE(log,"Successful renewal"); ret = krb5_cc_initialize(k5.ctx, k5.out_cc, k5.me); if (ret) throw Exception("Error when initializing cache", ErrorCodes::KERBEROS_ERROR); - LOG_DEBUG(log,"Initialized cache"); + LOG_TRACE(log,"Initialized cache"); ret = krb5_cc_store_cred(k5.ctx, k5.out_cc, &my_creds); if (ret) - LOG_DEBUG(log,"Error while storing credentials"); - LOG_DEBUG(log,"Stored credentials"); + LOG_TRACE(log,"Error while storing credentials"); + LOG_TRACE(log,"Stored credentials"); } if (k5.switch_to_cache) @@ -172,7 +176,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con throw Exception("Error while switching to new cache", ErrorCodes::KERBEROS_ERROR); } - LOG_DEBUG(log,"Authenticated to Kerberos v5"); + LOG_TRACE(log,"Authenticated to Kerberos v5"); return 0; } From 8288b9fe609485804c5c41f387d8ec3322e5c9be Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 21 Jun 2022 18:47:55 +0200 Subject: [PATCH 094/525] fixes --- src/Databases/DatabaseOrdinary.cpp | 15 ++++++++++++++- tests/queries/0_stateless/replication.lib | 4 ++-- tests/queries/shell_config.sh | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Databases/DatabaseOrdinary.cpp b/src/Databases/DatabaseOrdinary.cpp index 2e4ee785a94..ff5628ecf0f 100644 --- a/src/Databases/DatabaseOrdinary.cpp +++ b/src/Databases/DatabaseOrdinary.cpp @@ -174,7 +174,20 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables { /// Even if we don't load the table we can still mark the uuid of it as taken. if (create_query->uuid != UUIDHelpers::Nil) - DatabaseCatalog::instance().addUUIDMapping(create_query->uuid); + { + /// A bit tricky way to distinguish ATTACH DATABASE and server startup. + if (getContext()->isServerCompletelyStarted()) + { + /// It's ATTACH DATABASE. UUID for permanently detached table must be already locked. + if (!DatabaseCatalog::instance().hasUUIDMapping(create_query->uuid)) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create_query->uuid); + } + else + { + /// Server is starting up. Lock UUID used by permanently detached table. + DatabaseCatalog::instance().addUUIDMapping(create_query->uuid); + } + } const std::string table_name = unescapeForFileName(file_name.substr(0, file_name.size() - 4)); LOG_DEBUG(log, "Skipping permanently detached table {}.", backQuote(table_name)); diff --git a/tests/queries/0_stateless/replication.lib b/tests/queries/0_stateless/replication.lib index 6bf3c35f344..fd32fa28ba0 100755 --- a/tests/queries/0_stateless/replication.lib +++ b/tests/queries/0_stateless/replication.lib @@ -45,8 +45,8 @@ function check_replication_consistency() while [[ $($CLICKHOUSE_CLIENT -q "SELECT count() FROM system.processes WHERE current_database=currentDatabase() AND query LIKE '%$table_name_prefix%'") -ne 1 ]]; do sleep 0.5; num_tries=$((num_tries+1)) - if [ $num_tries -eq 100 ]; then - $CLICKHOUSE_CLIENT -q "SELECT count() FROM system.processes WHERE current_database=currentDatabase() AND query LIKE '%$table_name_prefix%' FORMAT Vertical" + if [ $num_tries -eq 200 ]; then + $CLICKHOUSE_CLIENT -q "SELECT * FROM system.processes WHERE current_database=currentDatabase() AND query LIKE '%$table_name_prefix%' FORMAT Vertical" break fi done diff --git a/tests/queries/shell_config.sh b/tests/queries/shell_config.sh index 8e9b9c2ac20..e3ab454f356 100644 --- a/tests/queries/shell_config.sh +++ b/tests/queries/shell_config.sh @@ -138,7 +138,7 @@ function wait_for_queries_to_finish() sleep 0.5; num_tries=$((num_tries+1)) if [ $num_tries -eq 20 ]; then - $CLICKHOUSE_CLIENT -q "SELECT count() FROM system.processes WHERE current_database=currentDatabase() AND query NOT LIKE '%system.processes%' FORMAT Vertical" + $CLICKHOUSE_CLIENT -q "SELECT * FROM system.processes WHERE current_database=currentDatabase() AND query NOT LIKE '%system.processes%' FORMAT Vertical" break fi done From b0a98bd875b99827380d4381008c57147d19ec28 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Tue, 21 Jun 2022 15:06:47 +0000 Subject: [PATCH 095/525] DISTINCT in order optimization + use SortDescription from input data stream in DistinctStep to decide if the optimization is applicable --- src/Core/Settings.h | 2 +- src/Interpreters/ExpressionAnalyzer.cpp | 2 - src/Interpreters/ExpressionAnalyzer.h | 1 - src/Interpreters/InterpreterSelectQuery.cpp | 22 +++---- src/Interpreters/InterpreterSelectQuery.h | 2 +- .../InterpreterSelectWithUnionQuery.cpp | 4 +- src/Processors/QueryPlan/DistinctStep.cpp | 58 ++++++++++++------- src/Processors/QueryPlan/DistinctStep.h | 4 +- .../QueryPlan/ReadFromMergeTree.cpp | 9 +++ src/Processors/QueryPlan/ReadFromMergeTree.h | 2 +- .../DistinctPrimaryKeyTransform.cpp | 5 +- src/Storages/ReadInOrderOptimizer.cpp | 25 -------- src/Storages/ReadInOrderOptimizer.h | 10 ---- src/Storages/SelectQueryInfo.h | 6 -- ...7_distinct_in_order_optimization.reference | 45 +++++++++++--- .../02317_distinct_in_order_optimization.sql | 20 +++++-- 16 files changed, 113 insertions(+), 104 deletions(-) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 27902b8f2df..0c7bee9d57d 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -603,7 +603,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Bool, throw_if_no_data_to_insert, true, "Enables or disables empty INSERTs, enabled by default", 0) \ M(Bool, compatibility_ignore_auto_increment_in_create_table, false, "Ignore AUTO_INCREMENT keyword in column declaration if true, otherwise return error. It simplifies migration from MySQL", 0) \ M(Bool, multiple_joins_try_to_keep_original_names, false, "Do not add aliases to top level expression list on multiple joins rewrite", 0) \ - M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization for primary key (prefix) columns in MergeTree family table engines.", 0) \ + M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization if columns in DISTINCT are sorted", 1) \ // End of COMMON_SETTINGS // Please add settings related to formats into the FORMAT_FACTORY_SETTINGS and move obsolete settings to OBSOLETE_SETTINGS. diff --git a/src/Interpreters/ExpressionAnalyzer.cpp b/src/Interpreters/ExpressionAnalyzer.cpp index f05cada7929..00333503db1 100644 --- a/src/Interpreters/ExpressionAnalyzer.cpp +++ b/src/Interpreters/ExpressionAnalyzer.cpp @@ -1859,8 +1859,6 @@ ExpressionAnalysisResult::ExpressionAnalysisResult( && !query.final() && join_allow_read_in_order; - optimize_distinct_in_order = settings.optimize_distinct_in_order && storage && query.distinct; - /// If there is aggregation, we execute expressions in SELECT and ORDER BY on the initiating server, otherwise on the source servers. query_analyzer.appendSelect(chain, only_types || (need_aggregate ? !second_stage : !first_stage)); diff --git a/src/Interpreters/ExpressionAnalyzer.h b/src/Interpreters/ExpressionAnalyzer.h index 79d2c16efff..80c664832e5 100644 --- a/src/Interpreters/ExpressionAnalyzer.h +++ b/src/Interpreters/ExpressionAnalyzer.h @@ -232,7 +232,6 @@ struct ExpressionAnalysisResult bool remove_where_filter = false; bool optimize_read_in_order = false; bool optimize_aggregation_in_order = false; - bool optimize_distinct_in_order = false; bool join_has_delayed_stream = false; bool use_grouping_set_key = false; diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index ed6fd7ec7fd..ec93dfcde17 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1243,7 +1243,7 @@ void InterpreterSelectQuery::executeImpl(QueryPlan & query_plan, std::optional

getInputOrder(metadata_snapshot, context, limit); } - if (!analysis_result.optimize_aggregation_in_order && analysis_result.optimize_distinct_in_order) - { - query_info.distinct_optimizer = std::make_shared(analysis_result.selected_columns); - query_info.distinct_order_info = query_info.distinct_optimizer->getInputOrder(metadata_snapshot); - } query_info.storage_limits = std::make_shared(storage_limits); @@ -2559,7 +2554,7 @@ void InterpreterSelectQuery::executeProjection(QueryPlan & query_plan, const Act } -void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct, InputOrderInfoPtr distinct_info) +void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct) { auto & query = getSelectQuery(); if (query.distinct) @@ -2576,11 +2571,8 @@ void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - if (distinct_info && !settings.optimize_distinct_in_order) - distinct_info = nullptr; - auto distinct_step = std::make_unique( - query_plan.getCurrentDataStream(), limits, limit_for_distinct, columns, pre_distinct, distinct_info); + query_plan.getCurrentDataStream(), limits, limit_for_distinct, columns, pre_distinct, settings.optimize_distinct_in_order); if (pre_distinct) distinct_step->setStepDescription("Preliminary DISTINCT"); diff --git a/src/Interpreters/InterpreterSelectQuery.h b/src/Interpreters/InterpreterSelectQuery.h index f441c3774a4..40afaaaeed0 100644 --- a/src/Interpreters/InterpreterSelectQuery.h +++ b/src/Interpreters/InterpreterSelectQuery.h @@ -180,7 +180,7 @@ private: void executeLimit(QueryPlan & query_plan); void executeOffset(QueryPlan & query_plan); static void executeProjection(QueryPlan & query_plan, const ActionsDAGPtr & expression); - void executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct, InputOrderInfoPtr distinct_info); + void executeDistinct(QueryPlan & query_plan, bool before_order, Names columns, bool pre_distinct); void executeExtremes(QueryPlan & query_plan); void executeSubqueriesInSetsAndJoins(QueryPlan & query_plan, std::unordered_map & subqueries_for_sets); void diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index a1d8431d626..c9ba5bcd653 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -318,8 +318,8 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) /// Add distinct transform SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - auto distinct_step - = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false, nullptr); + auto distinct_step = std::make_unique( + query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false, settings.optimize_distinct_in_order); query_plan.addStep(std::move(distinct_step)); } diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index 6d8f1cc4f92..9e8eabc53c8 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace DB { @@ -38,6 +39,18 @@ static ITransformingStep::Traits getTraits(bool pre_distinct, bool already_disti }; } +static SortDescription getSortDescription(const SortDescription & input_sort_desc, const Names& columns) +{ + SortDescription distinct_sort_desc; + for (const auto & sort_column_desc : input_sort_desc) + { + if (std::find(begin(columns), end(columns), sort_column_desc.column_name) == columns.end()) + break; + distinct_sort_desc.emplace_back(sort_column_desc); + } + return distinct_sort_desc; +} + DistinctStep::DistinctStep( const DataStream & input_stream_, @@ -45,7 +58,7 @@ DistinctStep::DistinctStep( UInt64 limit_hint_, const Names & columns_, bool pre_distinct_, - const InputOrderInfoPtr & distinct_info_) + bool optimize_distinct_in_order_) : ITransformingStep( input_stream_, input_stream_.header, @@ -53,8 +66,8 @@ DistinctStep::DistinctStep( , set_size_limits(set_size_limits_) , limit_hint(limit_hint_) , columns(columns_) - , distinct_info(distinct_info_) , pre_distinct(pre_distinct_) + , optimize_distinct_in_order(optimize_distinct_in_order_) { if (!output_stream->distinct_columns.empty() /// Columns already distinct, do nothing && (!pre_distinct /// Main distinct @@ -74,29 +87,32 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil if (!pre_distinct) pipeline.resize(1); - if (pre_distinct && distinct_info) + if (pre_distinct && optimize_distinct_in_order) { - pipeline.addSimpleTransform( - [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr - { - if (stream_type != QueryPipelineBuilder::StreamType::Main) - return nullptr; + if (SortDescription distinct_sort_desc = getSortDescription(input_streams.front().sort_description, columns); + !distinct_sort_desc.empty()) + { + pipeline.addSimpleTransform( + [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + { + if (stream_type != QueryPipelineBuilder::StreamType::Main) + return nullptr; - return std::make_shared( - header, set_size_limits, limit_hint, distinct_info->order_key_prefix_descr, columns); - }); + return std::make_shared( + header, set_size_limits, limit_hint, distinct_sort_desc, columns); + }); + return; + } } - else - { - pipeline.addSimpleTransform( - [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr - { - if (stream_type != QueryPipelineBuilder::StreamType::Main) - return nullptr; - return std::make_shared(header, set_size_limits, limit_hint, columns); - }); - } + pipeline.addSimpleTransform( + [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + { + if (stream_type != QueryPipelineBuilder::StreamType::Main) + return nullptr; + + return std::make_shared(header, set_size_limits, limit_hint, columns); + }); } void DistinctStep::describeActions(FormatSettings & settings) const diff --git a/src/Processors/QueryPlan/DistinctStep.h b/src/Processors/QueryPlan/DistinctStep.h index c64b9f6ccb5..7009739e3ad 100644 --- a/src/Processors/QueryPlan/DistinctStep.h +++ b/src/Processors/QueryPlan/DistinctStep.h @@ -16,7 +16,7 @@ public: UInt64 limit_hint_, const Names & columns_, bool pre_distinct_, /// If is enabled, execute distinct for separate streams. Otherwise, merge streams. - const InputOrderInfoPtr & distinct_info_); + bool optimize_distinct_in_order_); String getName() const override { return "Distinct"; } @@ -29,8 +29,8 @@ private: SizeLimits set_size_limits; UInt64 limit_hint; Names columns; - InputOrderInfoPtr distinct_info; bool pre_distinct; + bool optimize_distinct_in_order; }; } diff --git a/src/Processors/QueryPlan/ReadFromMergeTree.cpp b/src/Processors/QueryPlan/ReadFromMergeTree.cpp index 8adaf2f1027..05a311ee268 100644 --- a/src/Processors/QueryPlan/ReadFromMergeTree.cpp +++ b/src/Processors/QueryPlan/ReadFromMergeTree.cpp @@ -117,6 +117,15 @@ ReadFromMergeTree::ReadFromMergeTree( /// Add explicit description. setStepDescription(data.getStorageID().getFullNameNotQuoted()); + + Names sorting_key_columns = storage_snapshot->getMetadataForQuery()->getSortingKeyColumns(); + + SortDescription sort_description; + for (const auto & column : sorting_key_columns) + { + sort_description.emplace_back(column, 1); + } + output_stream->sort_description = std::move(sort_description); } Pipe ReadFromMergeTree::readFromPool( diff --git a/src/Processors/QueryPlan/ReadFromMergeTree.h b/src/Processors/QueryPlan/ReadFromMergeTree.h index 6846506f260..a5f212a8c8a 100644 --- a/src/Processors/QueryPlan/ReadFromMergeTree.h +++ b/src/Processors/QueryPlan/ReadFromMergeTree.h @@ -111,7 +111,7 @@ public: void describeActions(JSONBuilder::JSONMap & map) const override; void describeIndexes(JSONBuilder::JSONMap & map) const override; - const StorageID getStorageID() const { return data.getStorageID(); } + StorageID getStorageID() const { return data.getStorageID(); } UInt64 getSelectedParts() const { return selected_parts; } UInt64 getSelectedRows() const { return selected_rows; } UInt64 getSelectedMarks() const { return selected_marks; } diff --git a/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp b/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp index ba3a72f1285..b3e3e15d963 100644 --- a/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp +++ b/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp @@ -114,8 +114,7 @@ bool DistinctPrimaryKeyTransform::isCurrentKey(const size_t row_pos) { for (size_t i = 0; i < sorted_columns.size(); ++i) { - const auto & sort_col_desc = sorted_columns_descr[i]; - int res = sort_col_desc.direction * current_key[i]->compareAt(0, row_pos, *sorted_columns[i], sort_col_desc.nulls_direction); + int res = current_key[i]->compareAt(0, row_pos, *sorted_columns[i], sorted_columns_descr[i].nulls_direction); if (res != 0) return false; } @@ -125,7 +124,7 @@ bool DistinctPrimaryKeyTransform::isCurrentKey(const size_t row_pos) size_t DistinctPrimaryKeyTransform::getRangeEnd(size_t range_begin, size_t range_end) { size_t low = range_begin; - size_t high = range_end-1; + size_t high = range_end - 1; while (low <= high) { size_t mid = low + (high - low) / 2; diff --git a/src/Storages/ReadInOrderOptimizer.cpp b/src/Storages/ReadInOrderOptimizer.cpp index 36c4c39c6b1..e3f1c79719f 100644 --- a/src/Storages/ReadInOrderOptimizer.cpp +++ b/src/Storages/ReadInOrderOptimizer.cpp @@ -262,29 +262,4 @@ InputOrderInfoPtr ReadInOrderOptimizer::getInputOrder( return getInputOrderImpl(metadata_snapshot, required_sort_description, elements_actions, limit); } - -ReadInOrderOptimizerForDistinct::ReadInOrderOptimizerForDistinct(const Names & source_columns_) - : source_columns(source_columns_.begin(), source_columns_.end()) -{ -} - -InputOrderInfoPtr ReadInOrderOptimizerForDistinct::getInputOrder(const StorageMetadataPtr & metadata_snapshot) const -{ - Names sorting_key_columns = metadata_snapshot->getSortingKeyColumns(); - if (sorting_key_columns.empty()) - return {}; - - SortDescription order_key_prefix_descr; - for (const auto & sorting_key_column : sorting_key_columns) - { - if (source_columns.find(sorting_key_column) == source_columns.end()) - break; - order_key_prefix_descr.emplace_back(sorting_key_column, 1, 1); - } - if (order_key_prefix_descr.empty()) - return {}; - - // todo: InputOrderInfo contains more info then needed for distinct, probably it makes sense to replace it - return std::make_shared(SortDescription{}, std::move(order_key_prefix_descr), 1, 0); -} } diff --git a/src/Storages/ReadInOrderOptimizer.h b/src/Storages/ReadInOrderOptimizer.h index fe24541f750..fd8c9187ddb 100644 --- a/src/Storages/ReadInOrderOptimizer.h +++ b/src/Storages/ReadInOrderOptimizer.h @@ -39,14 +39,4 @@ private: SortDescription required_sort_description; const ASTSelectQuery & query; }; - -class ReadInOrderOptimizerForDistinct -{ -public: - explicit ReadInOrderOptimizerForDistinct(const Names & source_columns_); - InputOrderInfoPtr getInputOrder(const StorageMetadataPtr & metadata_snapshot) const; - -private: - NameSet source_columns; -}; } diff --git a/src/Storages/SelectQueryInfo.h b/src/Storages/SelectQueryInfo.h index f0523415e79..339e7b609d8 100644 --- a/src/Storages/SelectQueryInfo.h +++ b/src/Storages/SelectQueryInfo.h @@ -38,9 +38,6 @@ using TreeRewriterResultPtr = std::shared_ptr; class ReadInOrderOptimizer; using ReadInOrderOptimizerPtr = std::shared_ptr; -class ReadInOrderOptimizerForDistinct; -using ReadInOrderOptimizerForDistinctPtr = std::shared_ptr; - class Cluster; using ClusterPtr = std::shared_ptr; @@ -165,9 +162,6 @@ struct SelectQueryInfoBase /// Can be modified while reading from storage InputOrderInfoPtr input_order_info; - ReadInOrderOptimizerForDistinctPtr distinct_optimizer; - InputOrderInfoPtr distinct_order_info; - /// Prepared sets are used for indices by storage engine. /// Example: x IN (1, 2, 3) PreparedSets sets; diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference index 87063502bb8..24c2edca708 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference @@ -1,3 +1,16 @@ +enable optimize_distinct_in_order +distinct pipeline on empty table -> no optimization, source is ReadFromPreparedSource instead of ReadFromMergeTree +(Expression) +ExpressionTransform + (Distinct) + DistinctTransform + (Distinct) + DistinctTransform + (Expression) + ExpressionTransform + (ReadFromPreparedSource) + NullSource 0 → 1 +insert into table to use ReadFromMergeTree source disable optimize_distinct_in_order pipeline does _not_ contain the optimization (Expression) @@ -8,10 +21,10 @@ ExpressionTransform DistinctTransform (Expression) ExpressionTransform - (ReadFromPreparedSource) - NullSource 0 → 1 + (ReadFromMergeTree) + MergeTreeInOrder 0 → 1 enable optimize_distinct_in_order -distinct with primary key prefix -> pipeline contains the optimization +distinct with all primary key columns -> optimization applied (Expression) ExpressionTransform (Distinct) @@ -20,9 +33,22 @@ ExpressionTransform DistinctPrimaryKeyTransform (Expression) ExpressionTransform - (ReadFromPreparedSource) - NullSource 0 → 1 -distinct with non-primary key prefix -> pipeline does _not_ contain the optimization + (ReadFromMergeTree) + Concat 2 → 1 + MergeTreeInOrder × 2 0 → 1 +distinct with primary key prefix -> optimization applied +(Expression) +ExpressionTransform + (Distinct) + DistinctTransform + (Distinct) + DistinctPrimaryKeyTransform + (Expression) + ExpressionTransform + (ReadFromMergeTree) + Concat 2 → 1 + MergeTreeInOrder × 2 0 → 1 +distinct with non-primary key prefix -> no optimization (Expression) ExpressionTransform (Distinct) @@ -31,8 +57,9 @@ ExpressionTransform DistinctTransform (Expression) ExpressionTransform - (ReadFromPreparedSource) - NullSource 0 → 1 + (ReadFromMergeTree) + Concat 2 → 1 + MergeTreeInOrder × 2 0 → 1 the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one single-threaded distinct 0 @@ -64,7 +91,7 @@ multi-threaded distinct table with not only primary key columns distinct with key-prefix only 0 -distinct with full key, 2 columns +distinct with full key 0 0 0 1 0 2 diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql index 93bf520b3f4..f718986ae70 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql @@ -1,7 +1,14 @@ - drop table if exists distinct_in_order sync; create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by (a, b, c); +select 'enable optimize_distinct_in_order'; +set optimize_distinct_in_order=1; +select 'distinct pipeline on empty table -> no optimization, source is ReadFromPreparedSource instead of ReadFromMergeTree'; +explain pipeline select distinct * from distinct_in_order settings max_threads=1; + +select 'insert into table to use ReadFromMergeTree source'; +insert into distinct_in_order select number % number, number % 10, number % 5 from numbers(1,10); + select 'disable optimize_distinct_in_order'; set optimize_distinct_in_order=0; select 'pipeline does _not_ contain the optimization'; @@ -9,9 +16,12 @@ explain pipeline select distinct * from distinct_in_order settings max_threads=1 select 'enable optimize_distinct_in_order'; set optimize_distinct_in_order=1; -select 'distinct with primary key prefix -> pipeline contains the optimization'; +select 'distinct with all primary key columns -> optimization applied'; +insert into distinct_in_order select number % number, number % 10, number % 5 from numbers(1,10); +explain pipeline select distinct * from distinct_in_order settings max_threads=1; +select 'distinct with primary key prefix -> optimization applied'; explain pipeline select distinct a, c from distinct_in_order settings max_threads=1; -select 'distinct with non-primary key prefix -> pipeline does _not_ contain the optimization'; +select 'distinct with non-primary key prefix -> no optimization'; explain pipeline select distinct b, c from distinct_in_order settings max_threads=1; select 'the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one'; @@ -39,9 +49,9 @@ create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by insert into distinct_in_order select number % number, number % 10, number % 5 from numbers(1,1000000); select 'distinct with key-prefix only'; select distinct a from distinct_in_order; -select 'distinct with full key, 2 columns'; +select 'distinct with full key'; select distinct a,b from distinct_in_order order by b; select 'distinct with key prefix and non-sorted column'; select distinct a,c from distinct_in_order order by c; --- drop table if exists distinct_in_order sync; +drop table if exists distinct_in_order sync; From dc1f5963265d08f027592ae96fd3976e4c112c6b Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Wed, 22 Jun 2022 00:50:16 +0200 Subject: [PATCH 096/525] fix --- src/Databases/DatabaseOrdinary.cpp | 25 +++++---- src/Databases/DatabaseOrdinary.h | 2 +- src/Databases/IDatabase.h | 2 +- src/Databases/TablesLoader.cpp | 2 +- src/Interpreters/DatabaseCatalog.cpp | 57 ++++++++++++++++----- src/Interpreters/DatabaseCatalog.h | 16 ++++++ src/Interpreters/InterpreterCreateQuery.cpp | 2 + 7 files changed, 81 insertions(+), 25 deletions(-) diff --git a/src/Databases/DatabaseOrdinary.cpp b/src/Databases/DatabaseOrdinary.cpp index ff5628ecf0f..e44f5e5e628 100644 --- a/src/Databases/DatabaseOrdinary.cpp +++ b/src/Databases/DatabaseOrdinary.cpp @@ -29,6 +29,12 @@ namespace fs = std::filesystem; namespace DB { + +namespace ErrorCodes +{ + extern const int LOGICAL_ERROR; +} + static constexpr size_t METADATA_FILE_BUFFER_SIZE = 32768; namespace @@ -83,7 +89,7 @@ void DatabaseOrdinary::loadStoredObjects( */ ParsedTablesMetadata metadata; - loadTablesMetadata(local_context, metadata); + loadTablesMetadata(local_context, metadata, force_attach); size_t total_tables = metadata.parsed_tables.size() - metadata.total_dictionaries; @@ -151,12 +157,12 @@ void DatabaseOrdinary::loadStoredObjects( } } -void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTablesMetadata & metadata) +void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTablesMetadata & metadata, bool is_startup) { size_t prev_tables_count = metadata.parsed_tables.size(); size_t prev_total_dictionaries = metadata.total_dictionaries; - auto process_metadata = [&metadata, this](const String & file_name) + auto process_metadata = [&metadata, is_startup, this](const String & file_name) { fs::path path(getMetadataPath()); fs::path file_path(file_name); @@ -176,17 +182,16 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables if (create_query->uuid != UUIDHelpers::Nil) { /// A bit tricky way to distinguish ATTACH DATABASE and server startup. - if (getContext()->isServerCompletelyStarted()) - { - /// It's ATTACH DATABASE. UUID for permanently detached table must be already locked. - if (!DatabaseCatalog::instance().hasUUIDMapping(create_query->uuid)) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create_query->uuid); - } - else + if (is_startup) { /// Server is starting up. Lock UUID used by permanently detached table. DatabaseCatalog::instance().addUUIDMapping(create_query->uuid); } + else if (!DatabaseCatalog::instance().hasUUIDMapping(create_query->uuid)) + { + /// It's ATTACH DATABASE. UUID for permanently detached table must be already locked. + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create_query->uuid); + } } const std::string table_name = unescapeForFileName(file_name.substr(0, file_name.size() - 4)); diff --git a/src/Databases/DatabaseOrdinary.h b/src/Databases/DatabaseOrdinary.h index 982be2024ce..6e524ae18b0 100644 --- a/src/Databases/DatabaseOrdinary.h +++ b/src/Databases/DatabaseOrdinary.h @@ -25,7 +25,7 @@ public: bool supportsLoadingInTopologicalOrder() const override { return true; } - void loadTablesMetadata(ContextPtr context, ParsedTablesMetadata & metadata) override; + void loadTablesMetadata(ContextPtr context, ParsedTablesMetadata & metadata, bool is_startup) override; void loadTableFromMetadata(ContextMutablePtr local_context, const String & file_path, const QualifiedTableName & name, const ASTPtr & ast, bool force_restore) override; diff --git a/src/Databases/IDatabase.h b/src/Databases/IDatabase.h index 38c85cf3d05..a81df0a389a 100644 --- a/src/Databases/IDatabase.h +++ b/src/Databases/IDatabase.h @@ -148,7 +148,7 @@ public: { } - virtual void loadTablesMetadata(ContextPtr /*local_context*/, ParsedTablesMetadata & /*metadata*/) + virtual void loadTablesMetadata(ContextPtr /*local_context*/, ParsedTablesMetadata & /*metadata*/, bool /*is_startup*/) { throw Exception(ErrorCodes::LOGICAL_ERROR, "Not implemented"); } diff --git a/src/Databases/TablesLoader.cpp b/src/Databases/TablesLoader.cpp index 898376f8e0f..e973c9211be 100644 --- a/src/Databases/TablesLoader.cpp +++ b/src/Databases/TablesLoader.cpp @@ -93,7 +93,7 @@ void TablesLoader::loadTables() for (auto & database_name : databases_to_load) { databases[database_name]->beforeLoadingMetadata(global_context, force_restore, force_attach); - databases[database_name]->loadTablesMetadata(global_context, metadata); + databases[database_name]->loadTablesMetadata(global_context, metadata, force_attach); } LOG_INFO(log, "Parsed metadata of {} tables in {} databases in {} sec", diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index dc0d346be92..116cc8aa359 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -155,11 +155,15 @@ void DatabaseCatalog::initializeAndLoadTemporaryDatabase() void DatabaseCatalog::loadDatabases() { - auto cleanup_task_holder = getContext()->getSchedulePool().createTask("DatabaseCatalog", [this](){ this->cleanupStoreDirectoryTask(); }); - cleanup_task = std::make_unique(std::move(cleanup_task_holder)); - (*cleanup_task)->activate(); - /// Do not start task immediately on server startup, it's not urgent. - (*cleanup_task)->scheduleAfter(unused_dir_hide_timeout_sec * 1000); + if (Context::getGlobalContextInstance()->getApplicationType() == Context::ApplicationType::SERVER) + { + auto cleanup_task_holder + = getContext()->getSchedulePool().createTask("DatabaseCatalog", [this]() { this->cleanupStoreDirectoryTask(); }); + cleanup_task = std::make_unique(std::move(cleanup_task_holder)); + (*cleanup_task)->activate(); + /// Do not start task immediately on server startup, it's not urgent. + (*cleanup_task)->scheduleAfter(unused_dir_hide_timeout_sec * 1000); + } auto task_holder = getContext()->getSchedulePool().createTask("DatabaseCatalog", [this](){ this->dropTableDataTask(); }); drop_task = std::make_unique(std::move(task_holder)); @@ -387,8 +391,6 @@ DatabasePtr DatabaseCatalog::detachDatabase(ContextPtr local_context, const Stri if (drop) { UUID db_uuid = db->getUUID(); - if (db_uuid != UUIDHelpers::Nil) - removeUUIDMappingFinally(db_uuid); /// Delete the database. db->drop(local_context); @@ -399,6 +401,9 @@ DatabasePtr DatabaseCatalog::detachDatabase(ContextPtr local_context, const Stri fs::remove(database_metadata_dir); fs::path database_metadata_file = fs::path(getContext()->getPath()) / "metadata" / (escapeForFileName(database_name) + ".sql"); fs::remove(database_metadata_file); + + if (db_uuid != UUIDHelpers::Nil) + removeUUIDMappingFinally(db_uuid); } return db; @@ -583,8 +588,7 @@ bool DatabaseCatalog::hasUUIDMapping(const UUID & uuid) assert(uuid != UUIDHelpers::Nil && getFirstLevelIdx(uuid) < uuid_map.size()); UUIDToStorageMapPart & map_part = uuid_map[getFirstLevelIdx(uuid)]; std::lock_guard lock{map_part.mutex}; - auto it = map_part.map.find(uuid); - return it != map_part.map.end(); + return map_part.map.contains(uuid); } std::unique_ptr DatabaseCatalog::database_catalog; @@ -1115,7 +1119,7 @@ void DatabaseCatalog::cleanupStoreDirectoryTask() if (!expected_prefix_dir) { LOG_WARNING(log, "Found invalid directory {}, will try to remove it", prefix_dir.path().string()); - maybeRemoveDirectory(prefix_dir.path()); + affected_dirs += maybeRemoveDirectory(prefix_dir.path()); continue; } @@ -1133,11 +1137,12 @@ void DatabaseCatalog::cleanupStoreDirectoryTask() if (!expected_dir) { LOG_WARNING(log, "Found invalid directory {}, will try to remove it", uuid_dir.path().string()); - maybeRemoveDirectory(uuid_dir.path()); + affected_dirs += maybeRemoveDirectory(uuid_dir.path()); continue; } - if (!hasUUIDMapping(uuid)) + /// Order is important + if (!isProtectedUUIDDir(uuid) && !hasUUIDMapping(uuid)) { /// We load uuids even for detached and permanently detached tables, /// so it looks safe enough to remove directory if we don't have uuid mapping for it. @@ -1214,6 +1219,34 @@ bool DatabaseCatalog::maybeRemoveDirectory(const fs::path & unused_dir) } } +void DatabaseCatalog::addProtectedUUIDDir(const UUID & uuid) +{ + if (uuid == UUIDHelpers::Nil) + return; + std::lock_guard lock{protected_uuid_dirs_mutex}; + bool inserted = protected_uuid_dirs.insert(uuid).second; + if (inserted) + return; + + throw Exception(ErrorCodes::TABLE_ALREADY_EXISTS, "Mapping for table with UUID={} already exists. It happened due to UUID collision, " + "most likely because some not random UUIDs were manually specified in CREATE queries.", toString(uuid)); +} + +void DatabaseCatalog::removeProtectedUUIDDir(const UUID & uuid) +{ + if (uuid == UUIDHelpers::Nil) + return; + std::lock_guard lock{protected_uuid_dirs_mutex}; + chassert(protected_uuid_dirs.contains(uuid)); + protected_uuid_dirs.erase(uuid); +} + +bool DatabaseCatalog::isProtectedUUIDDir(const UUID & uuid) +{ + std::lock_guard lock{protected_uuid_dirs_mutex}; + return protected_uuid_dirs.contains(uuid); +} + DDLGuard::DDLGuard(Map & map_, std::shared_mutex & db_mutex_, std::unique_lock guards_lock_, const String & elem, const String & database_name) : map(map_), db_mutex(db_mutex_), guards_lock(std::move(guards_lock_)) diff --git a/src/Interpreters/DatabaseCatalog.h b/src/Interpreters/DatabaseCatalog.h index 9ca0bb276d6..7dde0643dd9 100644 --- a/src/Interpreters/DatabaseCatalog.h +++ b/src/Interpreters/DatabaseCatalog.h @@ -207,6 +207,10 @@ public: bool hasUUIDMapping(const UUID & uuid); + void addProtectedUUIDDir(const UUID & uuid); + void removeProtectedUUIDDir(const UUID & uuid); + bool isProtectedUUIDDir(const UUID & uuid); + static String getPathForUUID(const UUID & uuid); DatabaseAndTable tryGetByUUID(const UUID & uuid) const; @@ -301,6 +305,9 @@ private: std::unordered_set tables_marked_dropped_ids; mutable std::mutex tables_marked_dropped_mutex; + std::unordered_set protected_uuid_dirs; + mutable std::mutex protected_uuid_dirs_mutex; + std::unique_ptr drop_task; static constexpr time_t default_drop_delay_sec = 8 * 60; time_t drop_delay_sec = default_drop_delay_sec; @@ -315,4 +322,13 @@ private: time_t unused_dir_cleanup_period_sec = default_unused_dir_cleanup_period_sec; }; + +class UUIDDirectoryProtector : private boost::noncopyable +{ + UUID uuid; +public: + UUIDDirectoryProtector(UUID uuid_) : uuid(uuid_) { DatabaseCatalog::instance().addProtectedUUIDDir(uuid); } + ~UUIDDirectoryProtector() { DatabaseCatalog::instance().removeProtectedUUIDDir(uuid); } +}; + } diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index 9e745ffcabe..20ebf96e617 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -249,6 +249,7 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) "Enable allow_experimental_database_materialized_postgresql to use it.", ErrorCodes::UNKNOWN_DATABASE_ENGINE); } + UUIDDirectoryProtector uuid_lock{create.uuid}; DatabasePtr database = DatabaseFactory::get(create, metadata_path / "", getContext()); if (create.uuid != UUIDHelpers::Nil) @@ -1269,6 +1270,7 @@ bool InterpreterCreateQuery::doCreateTable(ASTCreateQuery & create, database->checkDetachedTableNotInUse(create.uuid); } + UUIDDirectoryProtector uuid_lock{create.uuid}; StoragePtr res; /// NOTE: CREATE query may be rewritten by Storage creator or table function if (create.as_table_function) From 5855668514a0bc92e0d05b56c8f328749aae4b79 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Wed, 22 Jun 2022 06:23:35 +0200 Subject: [PATCH 097/525] Remove trash --- docs/en/interfaces/cli.md | 1 - .../functions/encryption-functions.md | 3 --- .../operations/utilities/clickhouse-local.md | 1 - .../functions/encryption-functions.md | 2 -- src/Functions/FunctionsAES.cpp | 14 +------------ tests/performance/encrypt_decrypt.xml | 6 ------ .../encrypt_decrypt_empty_string.xml | 6 ------ .../0_stateless/01318_decrypt.reference | 18 ----------------- tests/queries/0_stateless/01318_decrypt.sql | 10 +--------- .../0_stateless/01318_encrypt.reference | 20 +------------------ tests/queries/0_stateless/01318_encrypt.sql | 10 +--------- 11 files changed, 4 insertions(+), 87 deletions(-) diff --git a/docs/en/interfaces/cli.md b/docs/en/interfaces/cli.md index c8c430c4e03..6722854e9fe 100644 --- a/docs/en/interfaces/cli.md +++ b/docs/en/interfaces/cli.md @@ -183,4 +183,3 @@ If the configuration above is applied, the ID of a query is shown in the followi ``` text speedscope:http://speedscope-host/#profileURL=qp%3Fid%3Dc8ecc783-e753-4b38-97f1-42cddfb98b7d ``` - diff --git a/docs/en/sql-reference/functions/encryption-functions.md b/docs/en/sql-reference/functions/encryption-functions.md index 58a1d9d56f8..5b3fe2201e6 100644 --- a/docs/en/sql-reference/functions/encryption-functions.md +++ b/docs/en/sql-reference/functions/encryption-functions.md @@ -19,7 +19,6 @@ This function encrypts data using these modes: - aes-128-ecb, aes-192-ecb, aes-256-ecb - aes-128-cbc, aes-192-cbc, aes-256-cbc -- aes-128-cfb128 - aes-128-ofb, aes-192-ofb, aes-256-ofb - aes-128-gcm, aes-192-gcm, aes-256-gcm - aes-128-ctr, aes-192-ctr, aes-256-ctr @@ -115,7 +114,6 @@ Supported encryption modes: - aes-128-ecb, aes-192-ecb, aes-256-ecb - aes-128-cbc, aes-192-cbc, aes-256-cbc -- aes-128-cfb128 - aes-128-ofb, aes-192-ofb, aes-256-ofb **Syntax** @@ -221,7 +219,6 @@ This function decrypts ciphertext into a plaintext using these modes: - aes-128-ecb, aes-192-ecb, aes-256-ecb - aes-128-cbc, aes-192-cbc, aes-256-cbc -- aes-128-cfb128 - aes-128-ofb, aes-192-ofb, aes-256-ofb - aes-128-gcm, aes-192-gcm, aes-256-gcm - aes-128-ctr, aes-192-ctr, aes-256-ctr diff --git a/docs/ru/operations/utilities/clickhouse-local.md b/docs/ru/operations/utilities/clickhouse-local.md index 65a6ee08aef..766bf6aeb96 100644 --- a/docs/ru/operations/utilities/clickhouse-local.md +++ b/docs/ru/operations/utilities/clickhouse-local.md @@ -109,4 +109,3 @@ Read 186 rows, 4.15 KiB in 0.035 sec., 5302 rows/sec., 118.34 KiB/sec. ├──────────┼──────────┤ ... ``` - diff --git a/docs/ru/sql-reference/functions/encryption-functions.md b/docs/ru/sql-reference/functions/encryption-functions.md index fdb2831c5c3..d85affe7b68 100644 --- a/docs/ru/sql-reference/functions/encryption-functions.md +++ b/docs/ru/sql-reference/functions/encryption-functions.md @@ -19,7 +19,6 @@ sidebar_label: "Функции для шифрования" - aes-128-ecb, aes-192-ecb, aes-256-ecb - aes-128-cbc, aes-192-cbc, aes-256-cbc -- aes-128-cfb128 - aes-128-ofb, aes-192-ofb, aes-256-ofb - aes-128-gcm, aes-192-gcm, aes-256-gcm - aes-128-ctr, aes-192-ctr, aes-256-ctr @@ -115,7 +114,6 @@ SELECT comment, hex(secret) FROM encryption_test WHERE comment LIKE '%gcm%'; - aes-128-ecb, aes-192-ecb, aes-256-ecb - aes-128-cbc, aes-192-cbc, aes-256-cbc -- aes-128-cfb128 - aes-128-ofb, aes-192-ofb, aes-256-ofb **Синтаксис** diff --git a/src/Functions/FunctionsAES.cpp b/src/Functions/FunctionsAES.cpp index 1588006eed8..a2dc7e40489 100644 --- a/src/Functions/FunctionsAES.cpp +++ b/src/Functions/FunctionsAES.cpp @@ -40,22 +40,10 @@ StringRef foldEncryptionKeyInMySQLCompatitableMode(size_t cipher_key_size, const const EVP_CIPHER * getCipherByName(const StringRef & cipher_name) { - const auto * evp_cipher = EVP_get_cipherbyname(cipher_name.data); - if (evp_cipher == nullptr) - { - // For some reasons following ciphers can't be found by name. - if (cipher_name == "aes-128-cfb128") - evp_cipher = EVP_aes_128_cfb128(); - else if (cipher_name == "aes-192-cfb128") - evp_cipher = EVP_aes_192_cfb128(); - else if (cipher_name == "aes-256-cfb128") - evp_cipher = EVP_aes_256_cfb128(); - } - // NOTE: cipher obtained not via EVP_CIPHER_fetch() would cause extra work on each context reset // with EVP_CIPHER_CTX_reset() or EVP_EncryptInit_ex(), but using EVP_CIPHER_fetch() // causes data race, so we stick to the slower but safer alternative here. - return evp_cipher; + return EVP_get_cipherbyname(cipher_name.data); } } diff --git a/tests/performance/encrypt_decrypt.xml b/tests/performance/encrypt_decrypt.xml index c2398a83b8f..209be78f8b4 100644 --- a/tests/performance/encrypt_decrypt.xml +++ b/tests/performance/encrypt_decrypt.xml @@ -8,21 +8,18 @@ encrypt('aes-128-cbc', materialize(plaintext), key16, iv16) - encrypt('aes-128-cfb128', materialize(plaintext), key16, iv16) encrypt('aes-128-ctr', materialize(plaintext), key16, iv16) encrypt('aes-128-ecb', materialize(plaintext), key16) encrypt('aes-128-ofb', materialize(plaintext), key16, iv16) encrypt('aes-128-gcm', materialize(plaintext), key16, iv12, 'aadaadaadaad') encrypt('aes-192-cbc', materialize(plaintext), key24, iv16) - encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16) encrypt('aes-192-ctr', materialize(plaintext), key24, iv16) encrypt('aes-192-ecb', materialize(plaintext), key24) encrypt('aes-192-ofb', materialize(plaintext), key24, iv16) encrypt('aes-192-gcm', materialize(plaintext), key24, iv12, 'aadaadaadaad') encrypt('aes-256-cbc', materialize(plaintext), key32, iv16) - encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16) encrypt('aes-256-ctr', materialize(plaintext), key32, iv16) encrypt('aes-256-ecb', materialize(plaintext), key32) encrypt('aes-256-ofb', materialize(plaintext), key32, iv16) @@ -30,21 +27,18 @@ decrypt('aes-128-cbc', encrypt('aes-128-cbc', materialize(plaintext), key16, iv16), key16, iv16) - decrypt('aes-128-cfb128', encrypt('aes-128-cfb128', materialize(plaintext), key16, iv16), key16, iv16) decrypt('aes-128-ctr', encrypt('aes-128-ctr', materialize(plaintext), key16, iv16), key16, iv16) decrypt('aes-128-ecb', encrypt('aes-128-ecb', materialize(plaintext), key16), key16) decrypt('aes-128-ofb', encrypt('aes-128-ofb', materialize(plaintext), key16, iv16), key16, iv16) decrypt('aes-128-gcm', encrypt('aes-128-gcm', materialize(plaintext), key16, iv12, 'aadaadaadaad'), key16, iv12, 'aadaadaadaad') decrypt('aes-192-cbc', encrypt('aes-192-cbc', materialize(plaintext), key24, iv16), key24, iv16) - decrypt('aes-192-cfb128', encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ctr', encrypt('aes-192-ctr', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ecb', encrypt('aes-192-ecb', materialize(plaintext), key24), key24) decrypt('aes-192-ofb', encrypt('aes-192-ofb', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-gcm', encrypt('aes-192-gcm', materialize(plaintext), key24, iv12, 'aadaadaadaad'), key24, iv12, 'aadaadaadaad') decrypt('aes-256-cbc', encrypt('aes-256-cbc', materialize(plaintext), key32, iv16), key32, iv16) - decrypt('aes-256-cfb128', encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ctr', encrypt('aes-256-ctr', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ecb', encrypt('aes-256-ecb', materialize(plaintext), key32), key32) decrypt('aes-256-ofb', encrypt('aes-256-ofb', materialize(plaintext), key32, iv16), key32, iv16) diff --git a/tests/performance/encrypt_decrypt_empty_string.xml b/tests/performance/encrypt_decrypt_empty_string.xml index c5f3ccc123b..02bf7aac05e 100644 --- a/tests/performance/encrypt_decrypt_empty_string.xml +++ b/tests/performance/encrypt_decrypt_empty_string.xml @@ -7,28 +7,22 @@ func - encrypt('aes-128-cfb128', materialize(plaintext), key16, iv16) encrypt('aes-128-ctr', materialize(plaintext), key16, iv16) encrypt('aes-128-ofb', materialize(plaintext), key16, iv16) - encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16) encrypt('aes-192-ctr', materialize(plaintext), key24, iv16) encrypt('aes-192-ofb', materialize(plaintext), key24, iv16) - encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16) encrypt('aes-256-ctr', materialize(plaintext), key32, iv16) encrypt('aes-256-ofb', materialize(plaintext), key32, iv16) - decrypt('aes-128-cfb128', encrypt('aes-128-cfb128', materialize(plaintext), key16, iv16), key16, iv16) decrypt('aes-128-ctr', encrypt('aes-128-ctr', materialize(plaintext), key16, iv16), key16, iv16) decrypt('aes-128-ofb', encrypt('aes-128-ofb', materialize(plaintext), key16, iv16), key16, iv16) - decrypt('aes-192-cfb128', encrypt('aes-192-cfb128', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ctr', encrypt('aes-192-ctr', materialize(plaintext), key24, iv16), key24, iv16) decrypt('aes-192-ofb', encrypt('aes-192-ofb', materialize(plaintext), key24, iv16), key24, iv16) - decrypt('aes-256-cfb128', encrypt('aes-256-cfb128', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ctr', encrypt('aes-256-ctr', materialize(plaintext), key32, iv16), key32, iv16) decrypt('aes-256-ofb', encrypt('aes-256-ofb', materialize(plaintext), key32, iv16), key32, iv16) diff --git a/tests/queries/0_stateless/01318_decrypt.reference b/tests/queries/0_stateless/01318_decrypt.reference index 871f1af29d2..cabb7bb9b83 100644 --- a/tests/queries/0_stateless/01318_decrypt.reference +++ b/tests/queries/0_stateless/01318_decrypt.reference @@ -11,15 +11,6 @@ aes-192-cbc 1 aes-256-cbc 1 aes-256-cbc 1 aes-256-cbc 1 -aes-128-cfb128 1 -aes-128-cfb128 1 -aes-128-cfb128 1 -aes-192-cfb128 1 -aes-192-cfb128 1 -aes-192-cfb128 1 -aes-256-cfb128 1 -aes-256-cfb128 1 -aes-256-cfb128 1 aes-128-ecb 1 aes-128-ecb 1 aes-128-ecb 1 @@ -48,15 +39,6 @@ aes-192-cbc 1 aes-256-cbc 1 aes-256-cbc 1 aes-256-cbc 1 -aes-128-cfb128 1 -aes-128-cfb128 1 -aes-128-cfb128 1 -aes-192-cfb128 1 -aes-192-cfb128 1 -aes-192-cfb128 1 -aes-256-cfb128 1 -aes-256-cfb128 1 -aes-256-cfb128 1 aes-128-ctr 1 aes-128-ctr 1 aes-128-ctr 1 diff --git a/tests/queries/0_stateless/01318_decrypt.sql b/tests/queries/0_stateless/01318_decrypt.sql index fb0b934d7bf..565fbd02e0a 100644 --- a/tests/queries/0_stateless/01318_decrypt.sql +++ b/tests/queries/0_stateless/01318_decrypt.sql @@ -2,7 +2,7 @@ -- Tag no-fasttest: Depends on OpenSSL --- aes_decrypt_mysql(string, key, block_mode[, init_vector, AAD]) --- The MySQL-compatitable encryption, only ecb, cbc, cfb128 and ofb modes are supported, +-- The MySQL-compatitable encryption, only ecb, cbc and ofb modes are supported, -- just like for MySQL -- https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_aes-encrypt -- https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_block_encryption_mode @@ -81,10 +81,6 @@ SELECT 'aes-128-cbc' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, in SELECT 'aes-192-cbc' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; SELECT 'aes-256-cbc' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; -SELECT 'aes-128-cfb128' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; -SELECT 'aes-192-cfb128' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; -SELECT 'aes-256-cfb128' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; - SELECT 'aes-128-ecb' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; SELECT 'aes-192-ecb' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; SELECT 'aes-256-ecb' as mode, aes_decrypt_mysql(mode, aes_encrypt_mysql(mode, input, key, iv), key, iv) == input FROM encryption_test; @@ -98,10 +94,6 @@ SELECT 'aes-128-cbc' as mode, decrypt(mode, encrypt(mode, input, key16, iv), key SELECT 'aes-192-cbc' as mode, decrypt(mode, encrypt(mode, input, key24, iv), key24, iv) == input FROM encryption_test; SELECT 'aes-256-cbc' as mode, decrypt(mode, encrypt(mode, input, key32, iv), key32, iv) == input FROM encryption_test; -SELECT 'aes-128-cfb128' as mode, decrypt(mode, encrypt(mode, input, key16, iv), key16, iv) == input FROM encryption_test; -SELECT 'aes-192-cfb128' as mode, decrypt(mode, encrypt(mode, input, key24, iv), key24, iv) == input FROM encryption_test; -SELECT 'aes-256-cfb128' as mode, decrypt(mode, encrypt(mode, input, key32, iv), key32, iv) == input FROM encryption_test; - SELECT 'aes-128-ctr' as mode, decrypt(mode, encrypt(mode, input, key16, iv), key16, iv) == input FROM encryption_test; SELECT 'aes-192-ctr' as mode, decrypt(mode, encrypt(mode, input, key24, iv), key24, iv) == input FROM encryption_test; SELECT 'aes-256-ctr' as mode, decrypt(mode, encrypt(mode, input, key32, iv), key32, iv) == input FROM encryption_test; diff --git a/tests/queries/0_stateless/01318_encrypt.reference b/tests/queries/0_stateless/01318_encrypt.reference index e423bcf24fb..b3b5fc9167a 100644 --- a/tests/queries/0_stateless/01318_encrypt.reference +++ b/tests/queries/0_stateless/01318_encrypt.reference @@ -8,15 +8,6 @@ aes-192-cbc BBFE507F31FF227F74EFA831CCE338443947492DD8141840B0C3D006404836574040 aes-256-cbc 8C0F6D5F2B0E751EC2033C5CA08E99F7 aes-256-cbc D907F72499D48DB36850AF2C038CEF62 aes-256-cbc A398D86A880BA4DE1FBA1ABBD38B9DA3B038B198134E798A4CF134029DB18B0A53F9A7177DAA5270EAD7448C56EB96351745A779A56B42A848FE265BFAB85BF349580A9E1751E627AEE80A8B0FC9046F18B8CF575358E21F5E353F115B2BF87984DB199744D4A83E58AD4764B6DFA92F933E0E1AA1F2AA95E4A9662C9BD8F1AC8D79BF531E77EDDB1A25CCD52D4E994D -aes-128-cfb128 -aes-128-cfb128 0EAAFAF5 -aes-128-cfb128 2DA7E3F5CD13148BED988533A2560F52959044EC2FF38A1D1A66DB2B20635FC8800060DA0062E0399CFE059E5E687F4BBA5E7182A4D79F18317B970708F079A59771C231EBA359741565B903BA820EE3EA07249777E745387B9774EE495940A50121A617B20768AA3A1A78AC9D49983E7BD43CD7BD21504640EAB23F57AB9E5B6260D875B665A63359 -aes-192-cfb128 -aes-192-cfb128 053E029A -aes-192-cfb128 26331B9AEF235360655730F3D8905479AEACC18B2FFCC7FF355DBA918A2B09C5FEEE817C929400A3E412A7528EB6D79846B687858E250AD54A9913CB81009AC55E391163ECCEF6DA0095C4C57B2C913D70B82C0B14ADD59DD559A039B48A47C86142D15922E86FE2586707F689DFD962D2B96E3571151D642A8E8CC2F2CC09D17F009592B0963AD2AB -aes-256-cfb128 -aes-256-cfb128 7FB039F7 -aes-256-cfb128 5CBD20F7ABD3AC41FCAA1A5C0E119E2BB5174FDACA4353FFA5D1BC2928CE015E08C7D813C51A9493902FD4BF6A864FA6F26B220C8FD21B846C90453241F369B170B6DAAF5B7E10AF025EA6EBF3852BCDA6AA92DA086B13162E3CCCC859FE3A6A8782395247785951D5095305BE97196C4A8C7607CFC0191A4DEB72F085ECF759F5AA5CBD3BE60A7FF5 aes-128-ecb FEA8CFDE6EE2C6E7A2CC6ADDC9F62C83 aes-128-ecb 78B16CD4BE107660156124C5FEE6454A aes-128-ecb 67C0B119D96F18E2823968D42871B3D126D5DDD35074303974946BE81A246757C3ACAEBFE0590EC98C4F51469E9FE27A8F8A98749E4DCAEF02F2076AC4CEB317062C0531F5FD2A505FE62413D8B0900ECAB5B8E1909A4A38FF922E3302857A16CE8E6804ACBA36C5E00EF5054288922517E59A47D0A26451905DE9E391D683ABB5852B5611886A2EF662AC8A1E156D85 @@ -45,16 +36,7 @@ aes-192-cbc C6390AAB7AB3B7E6A15E8CA4907AE2B5B0D767B30B0BFFF87D76FF025C384669E1DB aes-256-cbc 8C0F6D5F2B0E751EC2033C5CA08E99F7 aes-256-cbc D907F72499D48DB36850AF2C038CEF62 aes-256-cbc A398D86A880BA4DE1FBA1ABBD38B9DA3B038B198134E798A4CF134029DB18B0A53F9A7177DAA5270EAD7448C56EB96351745A779A56B42A848FE265BFAB85BF349580A9E1751E627AEE80A8B0FC9046F18B8CF575358E21F5E353F115B2BF87984DB199744D4A83E58AD4764B6DFA92F933E0E1AA1F2AA95E4A9662C9BD8F1AC8D79BF531E77EDDB1A25CCD52D4E994D -aes-128-cfb128 -aes-128-cfb128 519F7556 -aes-128-cfb128 72926C569BC409EA1646E840082C18F28531DE0AEFA2F980ADCEA64A8BC57798CD549092928F115E702F325DA709A7DB445B6BE9C510452ABB78966B4D8EB622303113EB1BB955FB507A11B1092FEA78C5A05F71D8A9E553591AC6E72B833F1BECE8A5E1816742270C12495BD436C93C5DD1EC017A2EEFE5C5966A01D2BA0EED477D46234DFF333F02 -aes-192-cfb128 -aes-192-cfb128 F978FB28 -aes-192-cfb128 DA75E22875FB05DDE0145038A775E5BD6397D4DC5839CCF84C1F2D0983E87E06A7B1DB1E25FF9A3C0C7BE9FAF61AAC2DE08AAD9C08694F7E35F8E144967C0C798365AB4BA5DF2308014862C80617AF0BC6857B15806412A0E5CAB5B017196A3AFFB73DB33E3D3954FA1F8839501CD117003ED139231E15B28B5E73FBF84E3CC047A2DA0ADA74C25DE8 -aes-256-cfb128 -aes-256-cfb128 7FB039F7 -aes-256-cfb128 5CBD20F7ABD3AC41FCAA1A5C0E119E2BB5174FDACA4353FFA5D1BC2928CE015E08C7D813C51A9493902FD4BF6A864FA6F26B220C8FD21B846C90453241F369B170B6DAAF5B7E10AF025EA6EBF3852BCDA6AA92DA086B13162E3CCCC859FE3A6A8782395247785951D5095305BE97196C4A8C7607CFC0191A4DEB72F085ECF759F5AA5CBD3BE60A7FF5 -aes-128-ctr +aes-128-ctr aes-128-ctr 519F7556 aes-128-ctr 72926C569BC409EA1646E840082C18F24A5A4A7A178EBCBAC0F170479253ACD2A18968DEAB5148C9C2E878B8F4B7C82B6601A0CD5470AA74EA7A2AAD15107950FC50786C3DC483B8BCA6DF1E5CDD64332C2289641EF66271DFEF9D07B392D4762AEE8FD65E0E8E8CB4FBE26D9D94A207352046380BB44AF32EDB900F6796EA87FC4C52A092CEB229C7 aes-192-ctr diff --git a/tests/queries/0_stateless/01318_encrypt.sql b/tests/queries/0_stateless/01318_encrypt.sql index 9a5e6fd0ed1..2bcbfc187b6 100644 --- a/tests/queries/0_stateless/01318_encrypt.sql +++ b/tests/queries/0_stateless/01318_encrypt.sql @@ -2,7 +2,7 @@ -- Tag no-fasttest: Depends on OpenSSL --- aes_encrypt_mysql(string, key, block_mode[, init_vector, AAD]) --- The MySQL-compatitable encryption, only ecb, cbc, cfb128 and ofb modes are supported, +-- The MySQL-compatitable encryption, only ecb, cbc and ofb modes are supported, -- just like for MySQL -- https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_aes-encrypt -- https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_block_encryption_mode @@ -73,10 +73,6 @@ SELECT 'aes-128-cbc' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FRO SELECT 'aes-192-cbc' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-256-cbc' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; -SELECT 'aes-128-cfb128' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; -SELECT 'aes-192-cfb128' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; -SELECT 'aes-256-cfb128' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; - SELECT 'aes-128-ecb' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-192-ecb' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; SELECT 'aes-256-ecb' as mode, hex(aes_encrypt_mysql(mode, input, key32, iv)) FROM encryption_test; @@ -91,10 +87,6 @@ SELECT 'aes-128-cbc' as mode, hex(encrypt(mode, input, key16, iv)) FROM encrypti SELECT 'aes-192-cbc' as mode, hex(encrypt(mode, input, key24, iv)) FROM encryption_test; SELECT 'aes-256-cbc' as mode, hex(encrypt(mode, input, key32, iv)) FROM encryption_test; -SELECT 'aes-128-cfb128' as mode, hex(encrypt(mode, input, key16, iv)) FROM encryption_test; -SELECT 'aes-192-cfb128' as mode, hex(encrypt(mode, input, key24, iv)) FROM encryption_test; -SELECT 'aes-256-cfb128' as mode, hex(encrypt(mode, input, key32, iv)) FROM encryption_test; - SELECT 'aes-128-ctr' as mode, hex(encrypt(mode, input, key16, iv)) FROM encryption_test; SELECT 'aes-192-ctr' as mode, hex(encrypt(mode, input, key24, iv)) FROM encryption_test; SELECT 'aes-256-ctr' as mode, hex(encrypt(mode, input, key32, iv)) FROM encryption_test; From f2811995887893e800bea3d0fe87cbd89d187d27 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 22 Jun 2022 11:28:00 +0300 Subject: [PATCH 098/525] Fix code style in KerberosInit; Add anonymous namespace; Add comment about using kerberos_init --- src/Access/KerberosInit.cpp | 9 ++++++--- src/Access/examples/kerberos_init.cpp | 7 +++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index e78830bdaa5..435a8126b05 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -19,7 +19,9 @@ namespace ErrorCodes } } -struct k5_data +namespace +{ +struct K5Data { krb5_context ctx; krb5_ccache in_cc, out_cc; @@ -37,17 +39,18 @@ public: int init(const String & keytab_file, const String & principal, const String & cache_name = ""); ~KerberosInit(); private: - struct k5_data k5; + struct K5Data k5; krb5_ccache defcache = nullptr; krb5_get_init_creds_opt * options = nullptr; krb5_creds my_creds; krb5_keytab keytab = nullptr; krb5_principal defcache_princ = nullptr; }; +} int KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) { - auto log = &Poco::Logger::get("KerberosInit"); + auto * log = &Poco::Logger::get("KerberosInit"); LOG_TRACE(log,"Trying to authenticate to Kerberos v5"); krb5_error_code ret; diff --git a/src/Access/examples/kerberos_init.cpp b/src/Access/examples/kerberos_init.cpp index 4868182fba2..5dbe92a5b57 100644 --- a/src/Access/examples/kerberos_init.cpp +++ b/src/Access/examples/kerberos_init.cpp @@ -5,6 +5,13 @@ #include #include +/** The example demonstrates using of kerberosInit function to obtain and cache Kerberos ticket-granting ticket. + * The first argument specifies keytab file. The second argument specifies principal name. + * The third argument is optional. It specifies credentials cache location. + * After successful run of kerberos_init it is useful to call klist command to list cached Kerberos tickets. + * It is also useful to run kdestroy to destroy Kerberos tickets if needed. + */ + using namespace DB; int main(int argc, char ** argv) From a7ff956c83fc9c955d8d3b17a18e1a270db3b8f4 Mon Sep 17 00:00:00 2001 From: zvonand Date: Wed, 22 Jun 2022 14:56:37 +0500 Subject: [PATCH 099/525] updated docs --- .../functions/string-functions.md | 42 ++++++++++++++++++ .../functions/encoding-functions.md | 44 ------------------- .../functions/string-functions.md | 42 ++++++++++++++++++ 3 files changed, 84 insertions(+), 44 deletions(-) diff --git a/docs/en/sql-reference/functions/string-functions.md b/docs/en/sql-reference/functions/string-functions.md index 66e9aa98e67..7c6ae903acf 100644 --- a/docs/en/sql-reference/functions/string-functions.md +++ b/docs/en/sql-reference/functions/string-functions.md @@ -494,6 +494,48 @@ If the ‘s’ string is non-empty and does not contain the ‘c’ character at Returns the string ‘s’ that was converted from the encoding in ‘from’ to the encoding in ‘to’. +## Base58Encode(plaintext[, alphabet_name]), Base58Decode(encoded_text[, alphabet_name]) + +Accepts a String and encodes/decodes it using [Base58](https://tools.ietf.org/id/draft-msporny-base58-01.html) encoding scheme using specified alphabet. + +**Syntax** + +```sql +base58Encode(decoded[, alphabet_name]) +base58Decode(encoded[, alphabet_name]) +``` + +**Arguments** + +- `decoded` — [String](../../sql-reference/data-types/string.md) column or constant. +- `encoded` — [String](../../sql-reference/data-types/string.md) column or constant. If the string is not a valid base58-encoded value, an exception is thrown. +- `alphabet_name` — String constant. Specifies alphabet used for encoding. Possible values: `gmp`, `bitcoin`, `ripple`, `flickr`. Default: `gmp`. + +**Returned value** + +- A string containing encoded/decoded value of 1st argument. + +Type: [String](../../sql-reference/data-types/string.md). + +**Example** + +Query: + +``` sql +SELECT base58Encode('encode', 'flickr'); +SELECT base58Decode('izCFiDUY', 'ripple'); +``` + +Result: +```text +┌─base58Encode('encode', 'flickr')─┐ +│ SvyTHb1D │ +└──────────────────────────────────┘ +┌─base58Decode('izCFiDUY', 'ripple')─┐ +│ decode │ +└────────────────────────────────────┘ +``` + ## base64Encode(s) Encodes ‘s’ string into base64 diff --git a/docs/ru/sql-reference/functions/encoding-functions.md b/docs/ru/sql-reference/functions/encoding-functions.md index 255985fcc92..65d2b0e6538 100644 --- a/docs/ru/sql-reference/functions/encoding-functions.md +++ b/docs/ru/sql-reference/functions/encoding-functions.md @@ -404,47 +404,3 @@ SELECT bitPositionsToArray(toInt8(-1)) AS bit_positions; │ [0,1,2,3,4,5,6,7] │ └───────────────────┘ ``` - -## Base58Encode(plaintext[, alphabet_name]) -## Base58Decode(plaintext[, alphabet_name]) - -Принимает на вход строку или колонку строк и кодирует/раскодирует их с помощью схемы кодирования [Base58](https://tools.ietf.org/id/draft-msporny-base58-01.html) с использованием указанного алфавита. - -**Синтаксис** - -```sql -base58Encode(decoded[, alphabet_name]) -base58Decode(encoded[, alphabet_name]) -``` - -**Аргументы** - -- `decoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). -- `encoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). Если входная строка не является корректным кодом для какой-либо другой строки, возникнет исключение `1001`. -- `alphabet_name` — Строковая константа. Указывает алфавит, для которого необходимо получить код. Может принимать одно из следующих значений: `gmp`, `bitcoin`, `ripple`, `flickr`. По умолчанию: `gmp`. - -**Возвращаемое значение** - -- Строка, содержащая раскодированный/закодированный первый аргумент. - -Тип: [String](../../sql-reference/data-types/string.md). - -**Пример:** - -Запрос: - -``` sql -SELECT base58Encode('encode', 'flickr'); -SELECT base58Decode('izCFiDUY', 'ripple'); -``` - -Результат: -```text -┌─base58Encode('encode', 'flickr')─┐ -│ SvyTHb1D │ -└──────────────────────────────────┘ -┌─base58Decode('izCFiDUY', 'ripple')─┐ -│ decode │ -└────────────────────────────────────┘ -``` - diff --git a/docs/ru/sql-reference/functions/string-functions.md b/docs/ru/sql-reference/functions/string-functions.md index 6cd4cea403e..e85a97e0099 100644 --- a/docs/ru/sql-reference/functions/string-functions.md +++ b/docs/ru/sql-reference/functions/string-functions.md @@ -490,6 +490,48 @@ SELECT concat(key1, key2), sum(value) FROM key_val GROUP BY (key1, key2); Возвращает сконвертированную из кодировки from в кодировку to строку s. +## Base58Encode(plaintext[, alphabet_name]), Base58Decode(plaintext[, alphabet_name]) {#base58} + +Принимает на вход строку или колонку строк и кодирует/раскодирует их с помощью схемы кодирования [Base58](https://tools.ietf.org/id/draft-msporny-base58-01.html) с использованием указанного алфавита. + +**Синтаксис** + +```sql +base58Encode(decoded[, alphabet_name]) +base58Decode(encoded[, alphabet_name]) +``` + +**Аргументы** + +- `decoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). +- `encoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). Если входная строка не является корректным кодом для какой-либо другой строки, возникнет исключение `1001`. +- `alphabet_name` — Строковая константа. Указывает алфавит, для которого необходимо получить код. Может принимать одно из следующих значений: `gmp`, `bitcoin`, `ripple`, `flickr`. По умолчанию: `gmp`. + +**Возвращаемое значение** + +- Строка, содержащая раскодированный/закодированный первый аргумент. + +Тип: [String](../../sql-reference/data-types/string.md). + +**Пример:** + +Запрос: + +``` sql +SELECT base58Encode('encode', 'flickr'); +SELECT base58Decode('izCFiDUY', 'ripple'); +``` + +Результат: +```text +┌─base58Encode('encode', 'flickr')─┐ +│ SvyTHb1D │ +└──────────────────────────────────┘ +┌─base58Decode('izCFiDUY', 'ripple')─┐ +│ decode │ +└────────────────────────────────────┘ +``` + ## base64Encode(s) {#base64encode} Производит кодирование строки s в base64-представление. From 7ae7b1e421d26ccdd491fb9b8379eb0df7610afe Mon Sep 17 00:00:00 2001 From: zvonand Date: Wed, 22 Jun 2022 14:58:39 +0500 Subject: [PATCH 100/525] fix wrong docs location --- .../functions/encoding-functions.md | 43 ------------------- 1 file changed, 43 deletions(-) diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 42a6d75952c..4ee71267a09 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -440,46 +440,3 @@ Result: │ [0,1,2,3,4,5,6,7] │ └───────────────────┘ ``` - -## Base58Encode(plaintext[, alphabet_name]) -## Base58Decode(plaintext[, alphabet_name]) - -Accepts a String and encodes/decodes it using [Base58](https://tools.ietf.org/id/draft-msporny-base58-01.html) encoding scheme using specified alphabet. - -**Syntax** - -```sql -base58Encode(decoded[, alphabet_name]) -base58Decode(encoded[, alphabet_name]) -``` - -**Arguments** - -- `decoded` — [String](../../sql-reference/data-types/string.md) column or constant. -- `encoded` — [String](../../sql-reference/data-types/string.md) column or constant. If the string is not a valid base58-encoded value, `1001 Exception` will be thrown. -- `alphabet_name` — String constant. Specifies alphabet used for encoding. Possible values: `gmp`, `bitcoin`, `ripple`, `flickr`. Default: `gmp`. - -**Returned value** - -- A string containing encoded/decoded value of 1st argument. - -Type: [String](../../sql-reference/data-types/string.md). - -**Example** - -Query: - -``` sql -SELECT base58Encode('encode', 'flickr'); -SELECT base58Decode('izCFiDUY', 'ripple'); -``` - -Result: -```text -┌─base58Encode('encode', 'flickr')─┐ -│ SvyTHb1D │ -└──────────────────────────────────┘ -┌─base58Decode('izCFiDUY', 'ripple')─┐ -│ decode │ -└────────────────────────────────────┘ -``` From 7bd65c8c24b444d23514758a27269b614560a96c Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Wed, 22 Jun 2022 16:31:48 +0300 Subject: [PATCH 101/525] Add comments to KerberosInit; Remove input cache and flags from KerberosInit --- src/Access/KerberosInit.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 435a8126b05..d3be559cba7 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -24,7 +24,7 @@ namespace struct K5Data { krb5_context ctx; - krb5_ccache in_cc, out_cc; + krb5_ccache out_cc; krb5_principal me; char * name; krb5_boolean switch_to_cache; @@ -42,6 +42,7 @@ private: struct K5Data k5; krb5_ccache defcache = nullptr; krb5_get_init_creds_opt * options = nullptr; + // Credentials structure including ticket, session key, and lifetime info. krb5_creds my_creds; krb5_keytab keytab = nullptr; krb5_principal defcache_princ = nullptr; @@ -56,7 +57,6 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con krb5_error_code ret; const char *deftype = nullptr; - int flags = 0; if (!std::filesystem::exists(keytab_file)) throw Exception("Keytab file does not exist", ErrorCodes::KERBEROS_ERROR); @@ -86,7 +86,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con } // Use the specified principal name. - ret = krb5_parse_name_flags(k5.ctx, principal.c_str(), flags, &k5.me); + ret = krb5_parse_name_flags(k5.ctx, principal.c_str(), 0, &k5.me); if (ret) throw Exception("Error when parsing principal name " + principal, ErrorCodes::KERBEROS_ERROR); @@ -126,7 +126,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con throw Exception("Error when unparsing name", ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Using principal: {}", k5.name); - memset(&my_creds, 0, sizeof(my_creds)); + // Allocate a new initial credential options structure. ret = krb5_get_init_creds_opt_alloc(k5.ctx, &options); if (ret) throw Exception("Error in options allocation", ErrorCodes::KERBEROS_ERROR); @@ -137,22 +137,20 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con throw Exception("Error in resolving keytab "+keytab_file, ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Using keytab: {}", keytab_file); - if (k5.in_cc) - { - ret = krb5_get_init_creds_opt_set_in_ccache(k5.ctx, options, k5.in_cc); - if (ret) - throw Exception("Error in setting input credential cache", ErrorCodes::KERBEROS_ERROR); - } + // Set an output credential cache in initial credential options. ret = krb5_get_init_creds_opt_set_out_ccache(k5.ctx, options, k5.out_cc); if (ret) throw Exception("Error in setting output credential cache", ErrorCodes::KERBEROS_ERROR); // Action: init or renew LOG_TRACE(log,"Trying to renew credentials"); + memset(&my_creds, 0, sizeof(my_creds)); + // Get renewed credential from KDC using an existing credential from output cache. ret = krb5_get_renewed_creds(k5.ctx, &my_creds, k5.me, k5.out_cc, nullptr); if (ret) { LOG_TRACE(log,"Renew failed ({}). Trying to get initial credentials", ret); + // Request KDC for an initial credentials using keytab. ret = krb5_get_init_creds_keytab(k5.ctx, &my_creds, k5.me, keytab, 0, nullptr, options); if (ret) throw Exception("Error in getting initial credentials", ErrorCodes::KERBEROS_ERROR); @@ -162,10 +160,12 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con else { LOG_TRACE(log,"Successful renewal"); + // Initialize a credential cache. Destroy any existing contents of cache and initialize it for the default principal. ret = krb5_cc_initialize(k5.ctx, k5.out_cc, k5.me); if (ret) throw Exception("Error when initializing cache", ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Initialized cache"); + // Store credentials in a credential cache. ret = krb5_cc_store_cred(k5.ctx, k5.out_cc, &my_creds); if (ret) LOG_TRACE(log,"Error while storing credentials"); @@ -174,6 +174,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con if (k5.switch_to_cache) { + // Make a credential cache the primary cache for its collection. ret = krb5_cc_switch(k5.ctx, k5.out_cc); if (ret) throw Exception("Error while switching to new cache", ErrorCodes::KERBEROS_ERROR); @@ -201,8 +202,6 @@ KerberosInit::~KerberosInit() krb5_free_unparsed_name(k5.ctx, k5.name); krb5_free_principal(k5.ctx, k5.me); - if (k5.in_cc != nullptr) - krb5_cc_close(k5.ctx, k5.in_cc); if (k5.out_cc != nullptr) krb5_cc_close(k5.ctx, k5.out_cc); krb5_free_context(k5.ctx); From 3544fbe5c49b13f81e5a1870b75b3950ab5f2647 Mon Sep 17 00:00:00 2001 From: Dmitry Novik Date: Wed, 22 Jun 2022 14:05:20 +0000 Subject: [PATCH 102/525] cleanup --- src/Common/OvercommitTracker.cpp | 25 +++++++++++++------------ src/Common/OvercommitTracker.h | 1 - 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Common/OvercommitTracker.cpp b/src/Common/OvercommitTracker.cpp index 74235748345..4faed833428 100644 --- a/src/Common/OvercommitTracker.cpp +++ b/src/Common/OvercommitTracker.cpp @@ -25,18 +25,19 @@ OvercommitTracker::OvercommitTracker(std::mutex & global_mutex_) , allow_release(true) {} -#define LOG_DEBUG_SAFE(...) \ - do { \ - OvercommitTrackerBlockerInThread blocker; \ - try \ - { \ - ALLOW_ALLOCATIONS_IN_SCOPE; \ - LOG_DEBUG(__VA_ARGS__); \ - } \ - catch (std::bad_alloc const &) \ - { \ - fprintf(stderr, "Allocation failed during writing to log in OvercommitTracker\n"); \ - } \ +#define LOG_DEBUG_SAFE(...) \ + do { \ + OvercommitTrackerBlockerInThread blocker; \ + try \ + { \ + ALLOW_ALLOCATIONS_IN_SCOPE; \ + LOG_DEBUG(__VA_ARGS__); \ + } \ + catch (...) \ + { \ + if (fprintf(stderr, "Allocation failed during writing to log in OvercommitTracker\n") != -1) \ + ; \ + } \ } while (false) OvercommitResult OvercommitTracker::needToStopQuery(MemoryTracker * tracker, Int64 amount) diff --git a/src/Common/OvercommitTracker.h b/src/Common/OvercommitTracker.h index 6a03c679422..6f6788493a9 100644 --- a/src/Common/OvercommitTracker.h +++ b/src/Common/OvercommitTracker.h @@ -7,7 +7,6 @@ #include #include #include -#include #include #include From 64a2f3734b1a552147b342a31d848b278041d906 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Fri, 6 May 2022 15:06:56 +0200 Subject: [PATCH 103/525] Protect ReadResult internals from MergeTreeRangeReader clients --- src/Storages/MergeTree/IMergeTreeReader.h | 2 -- .../MergeTree/MergeTreeRangeReader.cpp | 4 ++-- src/Storages/MergeTree/MergeTreeRangeReader.h | 24 ++++++++++++------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/Storages/MergeTree/IMergeTreeReader.h b/src/Storages/MergeTree/IMergeTreeReader.h index 7c5977b5cb2..b13db9c3255 100644 --- a/src/Storages/MergeTree/IMergeTreeReader.h +++ b/src/Storages/MergeTree/IMergeTreeReader.h @@ -89,8 +89,6 @@ protected: using ColumnPosition = std::optional; ColumnPosition findColumnForOffsets(const String & column_name) const; - friend class MergeTreeRangeReader::DelayedStream; - private: /// Alter conversions, which must be applied on fly if required MergeTreeData::AlterConversions alter_conversions; diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index d71dddc938c..c89ba8cf165 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -64,7 +64,7 @@ static void filterColumns(Columns & columns, const ColumnPtr & filter) } -static size_t getLastMark(const MergeTreeRangeReader::ReadResult::RangesInfo & ranges) +size_t MergeTreeRangeReader::ReadResult::getLastMark(const MergeTreeRangeReader::ReadResult::RangesInfo & ranges) { size_t current_task_last_mark = 0; for (const auto & mark_range : ranges) @@ -1001,7 +1001,7 @@ Columns MergeTreeRangeReader::continueReadingChain(ReadResult & result, size_t & const auto & rows_per_granule = result.rowsPerGranule(); const auto & started_ranges = result.startedRanges(); - size_t current_task_last_mark = getLastMark(started_ranges); + size_t current_task_last_mark = ReadResult::getLastMark(started_ranges); size_t next_range_to_start = 0; auto size = rows_per_granule.size(); diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.h b/src/Storages/MergeTree/MergeTreeRangeReader.h index 21ed35e6a78..9d03b987419 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.h +++ b/src/Storages/MergeTree/MergeTreeRangeReader.h @@ -57,6 +57,7 @@ public: bool isCurrentRangeFinished() const; bool isInitialized() const { return is_initialized; } +private: /// Accumulates sequential read() requests to perform a large read instead of multiple small reads class DelayedStream { @@ -144,10 +145,23 @@ public: size_t ceilRowsToCompleteGranules(size_t rows_num) const; }; +public: /// Statistics after next reading step. class ReadResult { public: + Columns columns; + size_t num_rows = 0; + + /// The number of rows were added to block as a result of reading chain. + size_t numReadRows() const { return num_read_rows; } + /// The number of bytes read from disk. + size_t numBytesRead() const { return num_bytes_read; } + + private: + /// Only MergeTreeRangeReader is supposed to access ReadResult internals. + friend class MergeTreeRangeReader; + using NumRows = std::vector; struct RangeInfo @@ -161,13 +175,11 @@ public: const RangesInfo & startedRanges() const { return started_ranges; } const NumRows & rowsPerGranule() const { return rows_per_granule; } + static size_t getLastMark(const MergeTreeRangeReader::ReadResult::RangesInfo & ranges); + /// The number of rows were read at LAST iteration in chain. <= num_added_rows + num_filtered_rows. size_t totalRowsPerGranule() const { return total_rows_per_granule; } - /// The number of rows were added to block as a result of reading chain. - size_t numReadRows() const { return num_read_rows; } size_t numRowsToSkipInLastGranule() const { return num_rows_to_skip_in_last_granule; } - /// The number of bytes read from disk. - size_t numBytesRead() const { return num_bytes_read; } /// Filter you need to apply to newly-read columns in order to add them to block. const ColumnUInt8 * getFilterOriginal() const { return filter_original ? filter_original : filter; } const ColumnUInt8 * getFilter() const { return filter; } @@ -195,13 +207,10 @@ public: size_t countBytesInResultFilter(const IColumn::Filter & filter); - Columns columns; - size_t num_rows = 0; bool need_filter = false; Block block_before_prewhere; - private: RangesInfo started_ranges; /// The number of rows read from each granule. /// Granule here is not number of rows between two marks @@ -234,7 +243,6 @@ public: const Block & getSampleBlock() const { return sample_block; } private: - ReadResult startReadingChain(size_t max_rows, MarkRanges & ranges); Columns continueReadingChain(ReadResult & result, size_t & num_rows); void executePrewhereActionsAndFilterColumns(ReadResult & result); From 538c8c96fc63cf9663a86cd1b6b66a9da76c3215 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Mon, 9 May 2022 16:34:44 +0200 Subject: [PATCH 104/525] Dump row_level_filter as a part of prewhere_info --- src/Storages/IStorage.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Storages/IStorage.cpp b/src/Storages/IStorage.cpp index cd6c49d6e3b..0fcf48b9afc 100644 --- a/src/Storages/IStorage.cpp +++ b/src/Storages/IStorage.cpp @@ -297,6 +297,11 @@ std::string PrewhereInfo::dump() const WriteBufferFromOwnString ss; ss << "PrewhereDagInfo\n"; + if (row_level_filter) + { + ss << "row_level_filter " << row_level_filter->dumpDAG() << "\n"; + } + if (prewhere_actions) { ss << "prewhere_actions " << prewhere_actions->dumpDAG() << "\n"; From 159ab765fb3ddead9457923ed136eb368e69a3d0 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Fri, 13 May 2022 21:00:44 +0200 Subject: [PATCH 105/525] Moved estimateNumRows from lambda to function --- .../MergeTreeBaseSelectProcessor.cpp | 79 ++++++++++--------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp index ca5e7393666..fbe5daed196 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp @@ -228,6 +228,46 @@ void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & cu } } +static UInt64 estimateNumRows(const MergeTreeReadTask & current_task, UInt64 current_preferred_block_size_bytes, + UInt64 current_max_block_size_rows, UInt64 current_preferred_max_column_in_block_size_bytes, double min_filtration_ratio) + //, const MergeTreeRangeReader & current_reader) +{ + const MergeTreeRangeReader & current_reader = current_task.range_reader; + + if (!current_task.size_predictor) + return static_cast(current_max_block_size_rows); + + /// Calculates number of rows will be read using preferred_block_size_bytes. + /// Can't be less than avg_index_granularity. + size_t rows_to_read = current_task.size_predictor->estimateNumRows(current_preferred_block_size_bytes); + if (!rows_to_read) + return rows_to_read; + auto total_row_in_current_granule = current_reader.numRowsInCurrentGranule(); + rows_to_read = std::max(total_row_in_current_granule, rows_to_read); + + if (current_preferred_max_column_in_block_size_bytes) + { + /// Calculates number of rows will be read using preferred_max_column_in_block_size_bytes. + auto rows_to_read_for_max_size_column + = current_task.size_predictor->estimateNumRowsForMaxSizeColumn(current_preferred_max_column_in_block_size_bytes); + double filtration_ratio = std::max(min_filtration_ratio, 1.0 - current_task.size_predictor->filtered_rows_ratio); + auto rows_to_read_for_max_size_column_with_filtration + = static_cast(rows_to_read_for_max_size_column / filtration_ratio); + + /// If preferred_max_column_in_block_size_bytes is used, number of rows to read can be less than current_index_granularity. + rows_to_read = std::min(rows_to_read, rows_to_read_for_max_size_column_with_filtration); + } + + auto unread_rows_in_current_granule = current_reader.numPendingRowsInCurrentGranule(); + if (unread_rows_in_current_granule >= rows_to_read) + return rows_to_read; + + const MergeTreeIndexGranularity & index_granularity = current_task.data_part->index_granularity; + + return index_granularity.countMarksForRows(current_reader.currentMark(), rows_to_read, current_reader.numReadRowsInCurrentGranule()); +} + + Chunk MergeTreeBaseSelectProcessor::readFromPartImpl() { @@ -237,45 +277,10 @@ Chunk MergeTreeBaseSelectProcessor::readFromPartImpl() const UInt64 current_max_block_size_rows = max_block_size_rows; const UInt64 current_preferred_block_size_bytes = preferred_block_size_bytes; const UInt64 current_preferred_max_column_in_block_size_bytes = preferred_max_column_in_block_size_bytes; - const MergeTreeIndexGranularity & index_granularity = task->data_part->index_granularity; const double min_filtration_ratio = 0.00001; - auto estimate_num_rows = [current_preferred_block_size_bytes, current_max_block_size_rows, - &index_granularity, current_preferred_max_column_in_block_size_bytes, min_filtration_ratio]( - MergeTreeReadTask & current_task, MergeTreeRangeReader & current_reader) - { - if (!current_task.size_predictor) - return static_cast(current_max_block_size_rows); - - /// Calculates number of rows will be read using preferred_block_size_bytes. - /// Can't be less than avg_index_granularity. - size_t rows_to_read = current_task.size_predictor->estimateNumRows(current_preferred_block_size_bytes); - if (!rows_to_read) - return rows_to_read; - auto total_row_in_current_granule = current_reader.numRowsInCurrentGranule(); - rows_to_read = std::max(total_row_in_current_granule, rows_to_read); - - if (current_preferred_max_column_in_block_size_bytes) - { - /// Calculates number of rows will be read using preferred_max_column_in_block_size_bytes. - auto rows_to_read_for_max_size_column - = current_task.size_predictor->estimateNumRowsForMaxSizeColumn(current_preferred_max_column_in_block_size_bytes); - double filtration_ratio = std::max(min_filtration_ratio, 1.0 - current_task.size_predictor->filtered_rows_ratio); - auto rows_to_read_for_max_size_column_with_filtration - = static_cast(rows_to_read_for_max_size_column / filtration_ratio); - - /// If preferred_max_column_in_block_size_bytes is used, number of rows to read can be less than current_index_granularity. - rows_to_read = std::min(rows_to_read, rows_to_read_for_max_size_column_with_filtration); - } - - auto unread_rows_in_current_granule = current_reader.numPendingRowsInCurrentGranule(); - if (unread_rows_in_current_granule >= rows_to_read) - return rows_to_read; - - return index_granularity.countMarksForRows(current_reader.currentMark(), rows_to_read, current_reader.numReadRowsInCurrentGranule()); - }; - - UInt64 recommended_rows = estimate_num_rows(*task, task->range_reader); + UInt64 recommended_rows = estimateNumRows(*task, current_preferred_block_size_bytes, + current_max_block_size_rows, current_preferred_max_column_in_block_size_bytes, min_filtration_ratio);//, task->range_reader); UInt64 rows_to_read = std::max(static_cast(1), std::min(current_max_block_size_rows, recommended_rows)); auto read_result = task->range_reader.read(rows_to_read, task->mark_ranges); From 87b669f43968499e2c4270fe7d9cefb68f839b37 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Wed, 18 May 2022 20:22:42 +0200 Subject: [PATCH 106/525] Intermediate changes --- src/Storages/MergeTree/MergeTreeRangeReader.cpp | 8 ++++++++ src/Storages/MergeTree/MergeTreeRangeReader.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index c89ba8cf165..779ac3a5ce4 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -358,6 +358,7 @@ void MergeTreeRangeReader::ReadResult::setFilterConstFalse() num_rows = 0; } +/// void MergeTreeRangeReader::ReadResult::optimize(bool can_read_incomplete_granules, bool allow_filter_columns) { if (total_rows_per_granule == 0 || filter == nullptr) @@ -415,6 +416,7 @@ void MergeTreeRangeReader::ReadResult::optimize(bool can_read_incomplete_granule need_filter = true; } +/// For each read granule size_t MergeTreeRangeReader::ReadResult::countZeroTails(const IColumn::Filter & filter_vec, NumRows & zero_tails, bool can_read_incomplete_granules) const { zero_tails.resize(0); @@ -594,6 +596,7 @@ size_t MergeTreeRangeReader::ReadResult::numZerosInTail(const UInt8 * begin, con return count; } +/// Filter size must match total_rows_per_granule void MergeTreeRangeReader::ReadResult::setFilter(const ColumnPtr & new_filter) { if (!new_filter && filter) @@ -1023,6 +1026,9 @@ Columns MergeTreeRangeReader::continueReadingChain(ReadResult & result, size_t & stream.skip(result.numRowsToSkipInLastGranule()); num_rows += stream.finalize(columns); + + // TODO: here we can verify that stream and prev_reader->stream are at exactly same offset + /// added_rows may be zero if all columns were read in prewhere and it's ok. if (num_rows && num_rows != result.totalRowsPerGranule()) throw Exception("RangeReader read " + toString(num_rows) + " rows, but " @@ -1039,6 +1045,8 @@ static void checkCombinedFiltersSize(size_t bytes_in_first_filter, size_t second "does not match second filter size ({})", bytes_in_first_filter, second_filter_size); } +/// Second filter size must be equal to number of 1s in the first filter. +/// The result size is equal to first filter size. static ColumnPtr combineFilters(ColumnPtr first, ColumnPtr second) { ConstantFilterDescription first_const_descr(*first); diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.h b/src/Storages/MergeTree/MergeTreeRangeReader.h index 9d03b987419..5dc52a7c0b8 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.h +++ b/src/Storages/MergeTree/MergeTreeRangeReader.h @@ -207,7 +207,7 @@ public: size_t countBytesInResultFilter(const IColumn::Filter & filter); - bool need_filter = false; + bool need_filter = false; /// TODO: what exactly does it mean? Block block_before_prewhere; From 4360fd9798338f655e7a77eb49d671421bc2bd8c Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Thu, 2 Jun 2022 19:58:25 +0200 Subject: [PATCH 107/525] Vector of structs instead of multiple vectors --- .../MergeTreeBaseSelectProcessor.cpp | 1 - src/Storages/MergeTree/MergeTreeReadPool.cpp | 21 ++++++++++--------- src/Storages/MergeTree/MergeTreeReadPool.h | 15 ++++++++----- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp index fbe5daed196..085b16ff4d2 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp @@ -268,7 +268,6 @@ static UInt64 estimateNumRows(const MergeTreeReadTask & current_task, UInt64 cur } - Chunk MergeTreeBaseSelectProcessor::readFromPartImpl() { if (task->size_predictor) diff --git a/src/Storages/MergeTree/MergeTreeReadPool.cpp b/src/Storages/MergeTree/MergeTreeReadPool.cpp index d9a1f742609..89e021497ac 100644 --- a/src/Storages/MergeTree/MergeTreeReadPool.cpp +++ b/src/Storages/MergeTree/MergeTreeReadPool.cpp @@ -135,13 +135,15 @@ MergeTreeReadTaskPtr MergeTreeReadPool::getTask(size_t min_marks_to_read, size_t } } - auto curr_task_size_predictor = !per_part_size_predictor[part_idx] ? nullptr - : std::make_unique(*per_part_size_predictor[part_idx]); /// make a copy + const auto & per_part = per_part_params[part_idx]; + + auto curr_task_size_predictor = !per_part.size_predictor ? nullptr + : std::make_unique(*per_part.size_predictor); /// make a copy return std::make_unique( part.data_part, ranges_to_get_from_part, part.part_index_in_query, ordered_names, - per_part_column_name_set[part_idx], per_part_columns[part_idx], per_part_pre_columns[part_idx], - prewhere_info && prewhere_info->remove_prewhere_column, per_part_should_reorder[part_idx], std::move(curr_task_size_predictor)); + per_part.column_name_set, per_part.task_columns.columns, per_part.task_columns.pre_columns, + prewhere_info && prewhere_info->remove_prewhere_column, per_part.task_columns.should_reorder, std::move(curr_task_size_predictor)); } Block MergeTreeReadPool::getHeader() const @@ -216,15 +218,14 @@ std::vector MergeTreeReadPool::fillPerPartInfo(const RangesInDataParts & auto size_predictor = !predict_block_size_bytes ? nullptr : MergeTreeBaseSelectProcessor::getSizePredictor(part.data_part, task_columns, sample_block); - per_part_size_predictor.emplace_back(std::move(size_predictor)); + auto & per_part = per_part_params.emplace_back(); + + per_part.size_predictor = std::move(size_predictor); /// will be used to distinguish between PREWHERE and WHERE columns when applying filter const auto & required_column_names = task_columns.columns.getNames(); - per_part_column_name_set.emplace_back(required_column_names.begin(), required_column_names.end()); - - per_part_pre_columns.push_back(std::move(task_columns.pre_columns)); - per_part_columns.push_back(std::move(task_columns.columns)); - per_part_should_reorder.push_back(task_columns.should_reorder); + per_part.column_name_set = {required_column_names.begin(), required_column_names.end()}; + per_part.task_columns = std::move(task_columns); parts_with_idx.push_back({ part.data_part, part.part_index_in_query }); } diff --git a/src/Storages/MergeTree/MergeTreeReadPool.h b/src/Storages/MergeTree/MergeTreeReadPool.h index b9db1254e08..d882c0d761f 100644 --- a/src/Storages/MergeTree/MergeTreeReadPool.h +++ b/src/Storages/MergeTree/MergeTreeReadPool.h @@ -99,11 +99,16 @@ private: const Names column_names; bool do_not_steal_tasks; bool predict_block_size_bytes; - std::vector per_part_column_name_set; - std::vector per_part_columns; - std::vector per_part_pre_columns; - std::vector per_part_should_reorder; - std::vector per_part_size_predictor; + + struct PerPartParams + { + MergeTreeReadTaskColumns task_columns; + NameSet column_name_set; + MergeTreeBlockSizePredictorPtr size_predictor; + }; + + std::vector per_part_params; + PrewhereInfoPtr prewhere_info; struct Part From 6a26325fabed3e5e07c6038320bc4a5ea52c7336 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Tue, 7 Jun 2022 09:03:11 +0200 Subject: [PATCH 108/525] Test dirty hacks for multiple PREWHERE steps --- src/Interpreters/InterpreterSelectQuery.cpp | 2 +- .../MergeTreeBaseSelectProcessor.cpp | 74 +++++++++++-- .../MergeTree/MergeTreeBaseSelectProcessor.h | 2 +- .../MergeTree/MergeTreeBlockReadUtils.cpp | 56 ++++++---- .../MergeTree/MergeTreeBlockReadUtils.h | 41 +++---- .../MergeTreeInOrderSelectProcessor.cpp | 6 +- .../MergeTree/MergeTreeRangeReader.cpp | 101 ++++++++++++------ src/Storages/MergeTree/MergeTreeRangeReader.h | 36 ++++++- src/Storages/MergeTree/MergeTreeReadPool.cpp | 4 +- .../MergeTreeReverseSelectProcessor.cpp | 4 +- .../MergeTree/MergeTreeSelectProcessor.cpp | 12 ++- .../MergeTreeThreadSelectProcessor.cpp | 28 +++-- src/Storages/SelectQueryInfo.h | 37 +++++++ 13 files changed, 301 insertions(+), 102 deletions(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 1bf188596d7..98a06af88c9 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1176,7 +1176,7 @@ void InterpreterSelectQuery::executeImpl(QueryPlan & query_plan, std::optional

row_level_filter, expressions.prewhere_info->row_level_column_name, - false); + true);//false); row_level_filter_step->setStepDescription("Row-level security filter (PREWHERE)"); query_plan.addStep(std::move(row_level_filter_step)); diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp index 085b16ff4d2..bdfda6f3d5f 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp @@ -74,14 +74,36 @@ MergeTreeBaseSelectProcessor::MergeTreeBaseSelectProcessor( prewhere_actions = std::make_unique(); if (prewhere_info->row_level_filter) - prewhere_actions->row_level_filter = std::make_shared(prewhere_info->row_level_filter, actions_settings); + { + PrewhereExprStep row_level_filter_step + { + .actions = std::make_shared(prewhere_info->row_level_filter, actions_settings), + .column_name = prewhere_info->row_level_column_name, + .remove_column = true, + .need_filter = true //prewhere_info->need_filter // ???? + }; - prewhere_actions->prewhere_actions = std::make_shared(prewhere_info->prewhere_actions, actions_settings); + prewhere_actions->steps.emplace_back(std::move(row_level_filter_step)); + +// prewhere_actions->row_level_filter = std::make_shared(prewhere_info->row_level_filter, actions_settings); + } +// prewhere_actions->row_level_column_name = prewhere_info->row_level_column_name; + +// prewhere_actions->prewhere_actions = std::make_shared(prewhere_info->prewhere_actions, actions_settings); +// prewhere_actions->prewhere_column_name = prewhere_info->prewhere_column_name; +// prewhere_actions->remove_prewhere_column = prewhere_info->remove_prewhere_column; +// prewhere_actions->need_filter = prewhere_info->need_filter; + + PrewhereExprStep prewhere_step + { + .actions = std::make_shared(prewhere_info->prewhere_actions, actions_settings), + .column_name = prewhere_info->prewhere_column_name, + .remove_column = prewhere_info->remove_prewhere_column, + .need_filter = prewhere_info->need_filter + }; + + prewhere_actions->steps.emplace_back(std::move(prewhere_step)); - prewhere_actions->row_level_column_name = prewhere_info->row_level_column_name; - prewhere_actions->prewhere_column_name = prewhere_info->prewhere_column_name; - prewhere_actions->remove_prewhere_column = prewhere_info->remove_prewhere_column; - prewhere_actions->need_filter = prewhere_info->need_filter; } } @@ -204,6 +226,38 @@ Chunk MergeTreeBaseSelectProcessor::generate() void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & current_task) { + MergeTreeRangeReader* prev_reader = nullptr; + bool last_reader = false; + + if (prewhere_info) + { + assert(prewhere_actions->steps.size() == pre_reader_for_step.size()); + + for (size_t i = 0; i < prewhere_actions->steps.size(); ++i) + { + last_reader = reader->getColumns().empty() && (i + 1 == prewhere_actions->steps.size()); + current_task.pre_range_reader.push_back( + MergeTreeRangeReader(pre_reader_for_step[i].get(), prev_reader, &prewhere_actions->steps[i], last_reader, non_const_virtual_column_names)); + + + prev_reader = ¤t_task.pre_range_reader.back(); + } + + } + + if (!last_reader) + { + current_task.range_reader = MergeTreeRangeReader(reader.get(), prev_reader, nullptr, true, non_const_virtual_column_names); + } + else + { + // HACK!! + // If all columns are read by pre_range_readers than move last pre_range_reader into range_reader + current_task.range_reader = std::move(current_task.pre_range_reader.back()); + current_task.pre_range_reader.pop_back(); + } + +/* if (prewhere_info) { if (reader->getColumns().empty()) @@ -226,6 +280,7 @@ void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & cu { current_task.range_reader = MergeTreeRangeReader(reader.get(), nullptr, nullptr, true, non_const_virtual_column_names); } +//*/ } static UInt64 estimateNumRows(const MergeTreeReadTask & current_task, UInt64 current_preferred_block_size_bytes, @@ -606,9 +661,12 @@ std::unique_ptr MergeTreeBaseSelectProcessor::getSi const Block & sample_block) { const auto & required_column_names = task_columns.columns.getNames(); - const auto & required_pre_column_names = task_columns.pre_columns.getNames(); NameSet complete_column_names(required_column_names.begin(), required_column_names.end()); - complete_column_names.insert(required_pre_column_names.begin(), required_pre_column_names.end()); + for (const auto & pre_columns_per_step : task_columns.pre_columns) + { + const auto & required_pre_column_names = pre_columns_per_step.getNames(); + complete_column_names.insert(required_pre_column_names.begin(), required_pre_column_names.end()); + } return std::make_unique( data_part, Names(complete_column_names.begin(), complete_column_names.end()), sample_block); diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.h b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.h index ac01221ff26..368dce7deaa 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.h +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.h @@ -115,7 +115,7 @@ protected: using MergeTreeReaderPtr = std::unique_ptr; MergeTreeReaderPtr reader; - MergeTreeReaderPtr pre_reader; + std::vector pre_reader_for_step; MergeTreeReadTaskPtr task; diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp index f74823eaec2..fd0f9c20d3f 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp @@ -131,12 +131,12 @@ NameSet injectRequiredColumns( MergeTreeReadTask::MergeTreeReadTask( const MergeTreeData::DataPartPtr & data_part_, const MarkRanges & mark_ranges_, size_t part_index_in_query_, - const Names & ordered_names_, const NameSet & column_name_set_, const NamesAndTypesList & columns_, - const NamesAndTypesList & pre_columns_, bool remove_prewhere_column_, bool should_reorder_, + const Names & ordered_names_, const NameSet & column_name_set_, const MergeTreeReadTaskColumns & task_columns_, + bool remove_prewhere_column_, MergeTreeBlockSizePredictorPtr && size_predictor_) : data_part{data_part_}, mark_ranges{mark_ranges_}, part_index_in_query{part_index_in_query_}, - ordered_names{ordered_names_}, column_name_set{column_name_set_}, columns{columns_}, pre_columns{pre_columns_}, - remove_prewhere_column{remove_prewhere_column_}, should_reorder{should_reorder_}, size_predictor{std::move(size_predictor_)} + ordered_names{ordered_names_}, column_name_set{column_name_set_}, task_columns{task_columns_}, + remove_prewhere_column{remove_prewhere_column_}, size_predictor{std::move(size_predictor_)} { } @@ -279,19 +279,40 @@ MergeTreeReadTaskColumns getReadTaskColumns( bool should_reorder = !injectRequiredColumns( storage, storage_snapshot, data_part, with_subcolumns, column_names).empty(); + MergeTreeReadTaskColumns result; + auto options = GetColumnsOptions(GetColumnsOptions::All).withExtendedObjects(); + if (with_subcolumns) + options.withSubcolumns(); + +// NameSet all_pre_columns; + if (prewhere_info) { - pre_column_names = prewhere_info->prewhere_actions->getRequiredColumnsNames(); + NameSet pre_name_set; +// TODO: for each prewhere step + + /// 1. Columns for row level filter if (prewhere_info->row_level_filter) { - NameSet names(pre_column_names.begin(), pre_column_names.end()); + pre_column_names = prewhere_info->row_level_filter->getRequiredColumnsNames(); - for (auto & name : prewhere_info->row_level_filter->getRequiredColumnsNames()) - { - if (!names.contains(name)) - pre_column_names.push_back(name); - } +////// HACK!!! + result.pre_columns.push_back(storage_snapshot->getColumnsByNames(options, pre_column_names)); +////////////// + + pre_name_set.insert(pre_column_names.begin(), pre_column_names.end()); + +// all_pre_columns.insert(pre_column_names.begin(), pre_column_names.end()); + } + + /// 2. Columns for prewhere + pre_column_names.clear(); + for (const auto & name : prewhere_info->prewhere_actions->getRequiredColumnsNames()) + { + if (pre_name_set.contains(name)) + continue; + pre_column_names.push_back(name); } if (pre_column_names.empty()) @@ -303,7 +324,6 @@ MergeTreeReadTaskColumns getReadTaskColumns( if (!injected_pre_columns.empty()) should_reorder = true; - const NameSet pre_name_set(pre_column_names.begin(), pre_column_names.end()); Names post_column_names; for (const auto & name : column_names) @@ -313,14 +333,14 @@ MergeTreeReadTaskColumns getReadTaskColumns( column_names = post_column_names; } - MergeTreeReadTaskColumns result; - NamesAndTypesList all_columns; +// NamesAndTypesList all_columns; - auto options = GetColumnsOptions(GetColumnsOptions::All).withExtendedObjects(); - if (with_subcolumns) - options.withSubcolumns(); - result.pre_columns = storage_snapshot->getColumnsByNames(options, pre_column_names); +////// HACK!!! + result.pre_columns.push_back(storage_snapshot->getColumnsByNames(options, pre_column_names)); +////////////// + + /// 3. Rest of the requested columns result.columns = storage_snapshot->getColumnsByNames(options, column_names); result.should_reorder = should_reorder; return result; diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h index 1c347970558..eea8c227e14 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h @@ -30,6 +30,16 @@ NameSet injectRequiredColumns( Names & columns); +struct MergeTreeReadTaskColumns +{ + /// column names to read during WHERE + NamesAndTypesList columns; + /// column names to read during each PREWHERE step + std::vector pre_columns; + /// resulting block may require reordering in accordance with `ordered_names` + bool should_reorder = false; +}; + /// A batch of work for MergeTreeThreadSelectProcessor struct MergeTreeReadTask { @@ -43,39 +53,32 @@ struct MergeTreeReadTask const Names & ordered_names; /// used to determine whether column should be filtered during PREWHERE or WHERE const NameSet & column_name_set; - /// column names to read during WHERE - const NamesAndTypesList & columns; - /// column names to read during PREWHERE - const NamesAndTypesList & pre_columns; + + const MergeTreeReadTaskColumns& task_columns; + +// /// column names to read during WHERE +// const NamesAndTypesList & columns; +// /// column names to read during PREWHERE +// const NamesAndTypesList & pre_columns; /// should PREWHERE column be returned to requesting side? const bool remove_prewhere_column; - /// resulting block may require reordering in accordance with `ordered_names` - const bool should_reorder; +// /// resulting block may require reordering in accordance with `ordered_names` +// const bool should_reorder; /// Used to satistfy preferred_block_size_bytes limitation MergeTreeBlockSizePredictorPtr size_predictor; /// Used to save current range processing status MergeTreeRangeReader range_reader; - MergeTreeRangeReader pre_range_reader; + std::deque pre_range_reader; bool isFinished() const { return mark_ranges.empty() && range_reader.isCurrentRangeFinished(); } MergeTreeReadTask( const MergeTreeData::DataPartPtr & data_part_, const MarkRanges & mark_ranges_, size_t part_index_in_query_, - const Names & ordered_names_, const NameSet & column_name_set_, const NamesAndTypesList & columns_, - const NamesAndTypesList & pre_columns_, bool remove_prewhere_column_, bool should_reorder_, + const Names & ordered_names_, const NameSet & column_name_set_, const MergeTreeReadTaskColumns & task_columns_, + bool remove_prewhere_column_, MergeTreeBlockSizePredictorPtr && size_predictor_); }; -struct MergeTreeReadTaskColumns -{ - /// column names to read during WHERE - NamesAndTypesList columns; - /// column names to read during PREWHERE - NamesAndTypesList pre_columns; - /// resulting block may require reordering in accordance with `ordered_names` - bool should_reorder = false; -}; - MergeTreeReadTaskColumns getReadTaskColumns( const MergeTreeData & storage, const StorageSnapshotPtr & storage_snapshot, diff --git a/src/Storages/MergeTree/MergeTreeInOrderSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeInOrderSelectProcessor.cpp index 961106af51b..280ce82cfce 100644 --- a/src/Storages/MergeTree/MergeTreeInOrderSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeInOrderSelectProcessor.cpp @@ -34,9 +34,9 @@ try : getSizePredictor(data_part, task_columns, sample_block); task = std::make_unique( - data_part, mark_ranges_for_task, part_index_in_query, ordered_names, column_name_set, task_columns.columns, - task_columns.pre_columns, prewhere_info && prewhere_info->remove_prewhere_column, - task_columns.should_reorder, std::move(size_predictor)); + data_part, mark_ranges_for_task, part_index_in_query, ordered_names, column_name_set, task_columns, + prewhere_info && prewhere_info->remove_prewhere_column, + std::move(size_predictor)); return true; } diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index 779ac3a5ce4..a51afed86cf 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -43,7 +43,7 @@ static void filterColumns(Columns & columns, const IColumn::Filter & filter) } } } - +/* static void filterColumns(Columns & columns, const ColumnPtr & filter) { ConstantFilterDescription const_descr(*filter); @@ -62,7 +62,7 @@ static void filterColumns(Columns & columns, const ColumnPtr & filter) FilterDescription descr(*filter); filterColumns(columns, *descr.data); } - +*/ size_t MergeTreeRangeReader::ReadResult::getLastMark(const MergeTreeRangeReader::ReadResult::RangesInfo & ranges) { @@ -647,7 +647,7 @@ size_t MergeTreeRangeReader::ReadResult::countBytesInResultFilter(const IColumn: MergeTreeRangeReader::MergeTreeRangeReader( IMergeTreeReader * merge_tree_reader_, MergeTreeRangeReader * prev_reader_, - const PrewhereExprInfo * prewhere_info_, + const PrewhereExprStep * prewhere_info_, bool last_reader_in_chain_, const Names & non_const_virtual_column_names_) : merge_tree_reader(merge_tree_reader_) @@ -675,7 +675,17 @@ MergeTreeRangeReader::MergeTreeRangeReader( if (prewhere_info) { - if (prewhere_info->row_level_filter) +// for (const auto & step : prewhere_info->steps) + const auto & step = *prewhere_info; + { + if (step.actions) + step.actions->execute(sample_block, true); + + if (step.remove_column) + sample_block.erase(step.column_name); + } + +/* if (prewhere_info->row_level_filter) { prewhere_info->row_level_filter->execute(sample_block, true); sample_block.erase(prewhere_info->row_level_column_name); @@ -686,6 +696,7 @@ MergeTreeRangeReader::MergeTreeRangeReader( if (prewhere_info->remove_prewhere_column) sample_block.erase(prewhere_info->prewhere_column_name); +*/ } } @@ -1107,13 +1118,15 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r const auto & header = merge_tree_reader->getColumns(); size_t num_columns = header.size(); - if (result.columns.size() != (num_columns + non_const_virtual_column_names.size())) + // TODO: properly check that we have columns from previous steps and newly read required columns + if (result.columns.size() < num_columns + non_const_virtual_column_names.size()) throw Exception("Invalid number of columns passed to MergeTreeRangeReader. " "Expected " + toString(num_columns) + ", " "got " + toString(result.columns.size()), ErrorCodes::LOGICAL_ERROR); + ColumnPtr current_filter; ColumnPtr filter; - ColumnPtr row_level_filter; +// ColumnPtr row_level_filter; size_t prewhere_column_pos; { @@ -1130,8 +1143,12 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r } } - for (auto name_and_type = header.begin(); pos < num_columns; ++pos, ++name_and_type) - block.insert({result.columns[pos], name_and_type->type, name_and_type->name}); +// for (auto name_and_type = header.begin(); pos < num_columns; ++pos, ++name_and_type) +// block.insert({result.columns[pos], name_and_type->type, name_and_type->name}); + for (const auto & name_and_type : header) { + block.insert({result.columns[pos], name_and_type.type, name_and_type.name}); + ++pos; + } for (const auto & column_name : non_const_virtual_column_names) { @@ -1145,7 +1162,7 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r /// Columns might be projected out. We need to store them here so that default columns can be evaluated later. result.block_before_prewhere = block; - if (prewhere_info->row_level_filter) +/* if (prewhere_info->row_level_filter) { prewhere_info->row_level_filter->execute(block); auto row_level_filter_pos = block.getPositionByName(prewhere_info->row_level_column_name); @@ -1159,44 +1176,50 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r else block.setColumns(columns); } +*/ + prewhere_info->actions->execute(block); - prewhere_info->prewhere_actions->execute(block); - - prewhere_column_pos = block.getPositionByName(prewhere_info->prewhere_column_name); + prewhere_column_pos = block.getPositionByName(prewhere_info->column_name); result.columns.clear(); result.columns.reserve(block.columns()); for (auto & col : block) result.columns.emplace_back(std::move(col.column)); - filter.swap(result.columns[prewhere_column_pos]); + current_filter.swap(result.columns[prewhere_column_pos]); + filter = current_filter; + + } if (result.getFilter()) { - /// TODO: implement for prewhere chain. - /// In order to do it we need combine filter and result.filter, where filter filters only '1' in result.filter. - throw Exception("MergeTreeRangeReader chain with several prewhere actions in not implemented.", - ErrorCodes::LOGICAL_ERROR); + ColumnPtr prev_filter = result.getFilterHolder(); + filter = combineFilters(prev_filter, std::move(filter)); + +// /// TODO: implement for prewhere chain. +// /// In order to do it we need combine filter and result.filter, where filter filters only '1' in result.filter. +// throw Exception("MergeTreeRangeReader chain with several prewhere actions in not implemented.", +// ErrorCodes::LOGICAL_ERROR); } - if (filter && row_level_filter) - { - row_level_filter = combineFilters(std::move(row_level_filter), filter); - result.setFilter(row_level_filter); - } - else +// if (filter && row_level_filter) +// { +// row_level_filter = combineFilters(std::move(row_level_filter), filter); +// result.setFilter(row_level_filter); +// } +// else result.setFilter(filter); /// If there is a WHERE, we filter in there, and only optimize IO and shrink columns here if (!last_reader_in_chain) - result.optimize(merge_tree_reader->canReadIncompleteGranules(), prewhere_info->row_level_filter == nullptr); + result.optimize(merge_tree_reader->canReadIncompleteGranules(), true); // TODO: prewhere_info->row_level_filter == nullptr); /// If we read nothing or filter gets optimized to nothing if (result.totalRowsPerGranule() == 0) result.setFilterConstFalse(); /// If we need to filter in PREWHERE - else if (prewhere_info->need_filter || result.need_filter || prewhere_info->row_level_filter) + else if (prewhere_info->need_filter || result.need_filter)// || prewhere_info->row_level_filter) { /// If there is a filter and without optimized if (result.getFilter() && last_reader_in_chain) @@ -1216,10 +1239,22 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r /// filter might be shrunk while columns not const auto * result_filter = result.getFilterOriginal(); - if (row_level_filter) - filterColumns(result.columns, filter); - else - filterColumns(result.columns, result_filter->getData()); +// if (row_level_filter) +// filterColumns(result.columns, filter); +// else + // filterColumns(result.columns, result_filter->getData()); + + + { + FilterDescription current_filter_descr(*current_filter); + // TODO: need to filter by current filter column that has num_rows size, not the original size + + // TODO: properly handle const true and const false cases + if (current_filter_descr.countBytesInFilter() == 0) + result.columns.clear(); + else if (current_filter_descr.data) + filterColumns(result.columns, *current_filter_descr.data); + } result.need_filter = true; @@ -1242,22 +1277,22 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r /// Check if the PREWHERE column is needed if (!result.columns.empty()) { - if (prewhere_info->remove_prewhere_column) + if (prewhere_info->remove_column) result.columns.erase(result.columns.begin() + prewhere_column_pos); else result.columns[prewhere_column_pos] = - getSampleBlock().getByName(prewhere_info->prewhere_column_name).type-> + getSampleBlock().getByName(prewhere_info->column_name).type-> createColumnConst(result.num_rows, 1u)->convertToFullColumnIfConst(); } } /// Filter in WHERE instead else { - if (prewhere_info->remove_prewhere_column) + if (prewhere_info->remove_column) result.columns.erase(result.columns.begin() + prewhere_column_pos); else { - auto type = getSampleBlock().getByName(prewhere_info->prewhere_column_name).type; + auto type = getSampleBlock().getByName(prewhere_info->column_name).type; ColumnWithTypeAndName col(result.getFilterHolder()->convertToFullColumnIfConst(), std::make_shared(), ""); result.columns[prewhere_column_pos] = castColumn(col, type); result.clearFilter(); // Acting as a flag to not filter in PREWHERE diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.h b/src/Storages/MergeTree/MergeTreeRangeReader.h index 5dc52a7c0b8..057469746c6 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.h +++ b/src/Storages/MergeTree/MergeTreeRangeReader.h @@ -18,6 +18,37 @@ using PrewhereInfoPtr = std::shared_ptr; class ExpressionActions; using ExpressionActionsPtr = std::shared_ptr; +//* +struct PrewhereExprStep +{ + ExpressionActionsPtr actions; + String column_name; + bool remove_column = false; + bool need_filter = false; +}; + +/// The same as PrewhereInfo, but with ExpressionActions instead of ActionsDAG +struct PrewhereExprInfo +{ +// /// Actions for row level security filter. Applied separately before prewhere_actions. +// /// This actions are separate because prewhere condition should not be executed over filtered rows. +// ExpressionActionsPtr row_level_filter; +// /// Actions which are executed on block in order to get filter column for prewhere step. +// ExpressionActionsPtr prewhere_actions; +// String row_level_column_name; +// String prewhere_column_name; +// bool remove_prewhere_column = false; +// bool need_filter = false; + + std::vector steps; + +///// PrewhereExprStep deleted_row_filter; +///// PrewhereExprStep row_level_filter; +///// PrewhereExprStep prewhere; +}; + +/*/ + /// The same as PrewhereInfo, but with ExpressionActions instead of ActionsDAG struct PrewhereExprInfo { @@ -31,6 +62,7 @@ struct PrewhereExprInfo bool remove_prewhere_column = false; bool need_filter = false; }; +//*/ /// MergeTreeReader iterator which allows sequential reading for arbitrary number of rows between pairs of marks in the same part. /// Stores reading state, which can be inside granule. Can skip rows in current granule and start reading from next mark. @@ -41,7 +73,7 @@ public: MergeTreeRangeReader( IMergeTreeReader * merge_tree_reader_, MergeTreeRangeReader * prev_reader_, - const PrewhereExprInfo * prewhere_info_, + const PrewhereExprStep * prewhere_info_, bool last_reader_in_chain_, const Names & non_const_virtual_column_names); @@ -251,7 +283,7 @@ private: IMergeTreeReader * merge_tree_reader = nullptr; const MergeTreeIndexGranularity * index_granularity = nullptr; MergeTreeRangeReader * prev_reader = nullptr; /// If not nullptr, read from prev_reader firstly. - const PrewhereExprInfo * prewhere_info; + const PrewhereExprStep * prewhere_info; Stream stream; diff --git a/src/Storages/MergeTree/MergeTreeReadPool.cpp b/src/Storages/MergeTree/MergeTreeReadPool.cpp index 89e021497ac..d44d250149e 100644 --- a/src/Storages/MergeTree/MergeTreeReadPool.cpp +++ b/src/Storages/MergeTree/MergeTreeReadPool.cpp @@ -142,8 +142,8 @@ MergeTreeReadTaskPtr MergeTreeReadPool::getTask(size_t min_marks_to_read, size_t return std::make_unique( part.data_part, ranges_to_get_from_part, part.part_index_in_query, ordered_names, - per_part.column_name_set, per_part.task_columns.columns, per_part.task_columns.pre_columns, - prewhere_info && prewhere_info->remove_prewhere_column, per_part.task_columns.should_reorder, std::move(curr_task_size_predictor)); + per_part.column_name_set, per_part.task_columns, + prewhere_info && prewhere_info->remove_prewhere_column, std::move(curr_task_size_predictor)); } Block MergeTreeReadPool::getHeader() const diff --git a/src/Storages/MergeTree/MergeTreeReverseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeReverseSelectProcessor.cpp index 1a2ab8bff5b..84548d357b7 100644 --- a/src/Storages/MergeTree/MergeTreeReverseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeReverseSelectProcessor.cpp @@ -31,8 +31,8 @@ try task = std::make_unique( data_part, mark_ranges_for_task, part_index_in_query, ordered_names, column_name_set, - task_columns.columns, task_columns.pre_columns, prewhere_info && prewhere_info->remove_prewhere_column, - task_columns.should_reorder, std::move(size_predictor)); + task_columns, prewhere_info && prewhere_info->remove_prewhere_column, + std::move(size_predictor)); return true; } diff --git a/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp index 1d41c2c254d..e9539a5cf59 100644 --- a/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp @@ -67,9 +67,13 @@ void MergeTreeSelectProcessor::initializeReaders() all_mark_ranges, owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, {}, {}); if (prewhere_info) - pre_reader = data_part->getReader(task_columns.pre_columns, storage_snapshot->getMetadataForQuery(), - all_mark_ranges, owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, {}, {}); - + { + for (const auto & pre_columns_for_step : task_columns.pre_columns) + { + pre_reader_for_step.push_back(data_part->getReader(pre_columns_for_step, storage_snapshot->getMetadataForQuery(), + all_mark_ranges, owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, {}, {})); + } + } } @@ -80,7 +84,7 @@ void MergeTreeSelectProcessor::finish() * buffers don't waste memory. */ reader.reset(); - pre_reader.reset(); + pre_reader_for_step.clear(); data_part.reset(); } diff --git a/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp index 063f018b1a4..0c1bd239076 100644 --- a/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp @@ -111,14 +111,19 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() owned_uncompressed_cache = storage.getContext()->getUncompressedCache(); owned_mark_cache = storage.getContext()->getMarkCache(); - reader = task->data_part->getReader(task->columns, metadata_snapshot, task->mark_ranges, + reader = task->data_part->getReader(task->task_columns.columns, metadata_snapshot, task->mark_ranges, owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, IMergeTreeReader::ValueSizeMap{}, profile_callback); if (prewhere_info) - pre_reader = task->data_part->getReader(task->pre_columns, metadata_snapshot, task->mark_ranges, - owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, - IMergeTreeReader::ValueSizeMap{}, profile_callback); + { + for (const auto & pre_columns_per_step : task->task_columns.pre_columns) + { + pre_reader_for_step.push_back(task->data_part->getReader(pre_columns_per_step, metadata_snapshot, task->mark_ranges, + owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, + IMergeTreeReader::ValueSizeMap{}, profile_callback)); + } + } } else { @@ -126,14 +131,19 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() if (part_name != last_readed_part_name) { /// retain avg_value_size_hints - reader = task->data_part->getReader(task->columns, metadata_snapshot, task->mark_ranges, + reader = task->data_part->getReader(task->task_columns.columns, metadata_snapshot, task->mark_ranges, owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, reader->getAvgValueSizeHints(), profile_callback); if (prewhere_info) - pre_reader = task->data_part->getReader(task->pre_columns, metadata_snapshot, task->mark_ranges, - owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, - reader->getAvgValueSizeHints(), profile_callback); + { + for (const auto & pre_columns_per_step : task->task_columns.pre_columns) + { + pre_reader_for_step.push_back(task->data_part->getReader(pre_columns_per_step, metadata_snapshot, task->mark_ranges, + owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, + reader->getAvgValueSizeHints(), profile_callback)); + } + } } } @@ -144,7 +154,7 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() void MergeTreeThreadSelectProcessor::finish() { reader.reset(); - pre_reader.reset(); + pre_reader_for_step.clear(); } diff --git a/src/Storages/SelectQueryInfo.h b/src/Storages/SelectQueryInfo.h index bdb4c392c48..23b592ce7ac 100644 --- a/src/Storages/SelectQueryInfo.h +++ b/src/Storages/SelectQueryInfo.h @@ -47,6 +47,42 @@ using MergeTreeDataSelectAnalysisResultPtr = std::shared_ptr; +/* +struct PrewhereStep +{ + ActionsDAGPtr prewhere_actions; + String prewhere_column_name; + bool remove_prewhere_column = false; + bool need_filter = false; + + explicit PrewhereStep(ActionsDAGPtr prewhere_actions_, String prewhere_column_name_) + : prewhere_actions(std::move(prewhere_actions_)), prewhere_column_name(std::move(prewhere_column_name_)) {} + + std::string dump() const; +}; + +struct PrewhereInfo +{ +// /// Actions for row level security filter. Applied separately before prewhere_actions. +// /// This actions are separate because prewhere condition should not be executed over filtered rows. +// ActionsDAGPtr row_level_filter; +// /// Actions which are executed on block in order to get filter column for prewhere step. +// ActionsDAGPtr prewhere_actions; +// String row_level_column_name; +// String prewhere_column_name; +// bool remove_prewhere_column = false; +// bool need_filter = false; + + std::vector steps; + + PrewhereInfo() = default; +// explicit PrewhereInfo(ActionsDAGPtr prewhere_actions_, String prewhere_column_name_) +// : prewhere_actions(std::move(prewhere_actions_)), prewhere_column_name(std::move(prewhere_column_name_)) {} + + std::string dump() const; +}; +/*/ + struct PrewhereInfo { /// Actions for row level security filter. Applied separately before prewhere_actions. @@ -65,6 +101,7 @@ struct PrewhereInfo std::string dump() const; }; +//*/ /// Helper struct to store all the information about the filter expression. struct FilterInfo From 4e426c63cc53165dfd735176e7f1b2a0098d5094 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Tue, 7 Jun 2022 23:00:34 +0200 Subject: [PATCH 109/525] Debuging test failures --- .../MergeTree/MergeTreeBaseSelectProcessor.cpp | 5 +++++ .../MergeTree/MergeTreeBlockReadUtils.h | 11 +++++++++++ src/Storages/MergeTree/MergeTreeRangeReader.cpp | 17 +++++++++++++++++ src/Storages/MergeTree/MergeTreeRangeReader.h | 2 ++ .../MergeTree/MergeTreeSelectProcessor.cpp | 3 +++ .../MergeTreeThreadSelectProcessor.cpp | 7 +++++++ 6 files changed, 45 insertions(+) diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp index bdfda6f3d5f..7a5ed63fa0d 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp @@ -104,6 +104,11 @@ MergeTreeBaseSelectProcessor::MergeTreeBaseSelectProcessor( prewhere_actions->steps.emplace_back(std::move(prewhere_step)); + +// std::cerr +// << "PREWHERE ========================\n" +// << prewhere_actions->dump() +// << "========================\n\n"; } } diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h index eea8c227e14..a3e754f83c3 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h @@ -38,6 +38,17 @@ struct MergeTreeReadTaskColumns std::vector pre_columns; /// resulting block may require reordering in accordance with `ordered_names` bool should_reorder = false; + + std::string dump() const + { + std::ostringstream s; + for (size_t i = 0; i < pre_columns.size(); ++i) + { + s << "STEP " << i << ": " << pre_columns[i].toString() << "\n"; + } + s << "COLUMNS: " << columns.toString() << "\n"; + return s.str(); + } }; /// A batch of work for MergeTreeThreadSelectProcessor diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index a51afed86cf..a20414d9616 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -1300,4 +1301,20 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r } } +std::string PrewhereExprInfo::dump() const +{ + std::ostringstream s; + + for (size_t i = 0; i < steps.size(); ++i) + { + s << "STEP " << i << ":\n" + << " ACTIONS: " << steps[i].actions->dumpActions() << "\n" + << " COLUMN: " << steps[i].column_name << "\n" + << " REMOVE_COLUMN: " << steps[i].remove_column << "\n" + << " NEED_FILTER: " << steps[i].need_filter << "\n"; + } + + return s.str(); +} + } diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.h b/src/Storages/MergeTree/MergeTreeRangeReader.h index 057469746c6..15712a77797 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.h +++ b/src/Storages/MergeTree/MergeTreeRangeReader.h @@ -45,6 +45,8 @@ struct PrewhereExprInfo ///// PrewhereExprStep deleted_row_filter; ///// PrewhereExprStep row_level_filter; ///// PrewhereExprStep prewhere; + + std::string dump() const; }; /*/ diff --git a/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp index e9539a5cf59..eb4746cbf04 100644 --- a/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp @@ -50,6 +50,9 @@ MergeTreeSelectProcessor::MergeTreeSelectProcessor( void MergeTreeSelectProcessor::initializeReaders() { +pre_reader_for_step.clear(); // is it being reused??? + + task_columns = getReadTaskColumns( storage, storage_snapshot, data_part, required_columns, prewhere_info, /*with_subcolumns=*/ true); diff --git a/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp index 0c1bd239076..47615ae6e3b 100644 --- a/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp @@ -105,6 +105,9 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() auto profile_callback = [this](ReadBufferFromFileBase::ProfileInfo info_) { pool->profileFeedback(info_); }; const auto & metadata_snapshot = storage_snapshot->metadata; +//std::cerr << "==============TASK:==============\n" << task->task_columns.dump() << "\n"; +//std::cerr << "pre_reader_for_step.size() " << pre_reader_for_step.size() << "\n\n"; + if (!reader) { if (use_uncompressed_cache) @@ -115,6 +118,8 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, IMergeTreeReader::ValueSizeMap{}, profile_callback); +pre_reader_for_step.clear(); // is it being reused??? + if (prewhere_info) { for (const auto & pre_columns_per_step : task->task_columns.pre_columns) @@ -135,6 +140,8 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, reader->getAvgValueSizeHints(), profile_callback); +pre_reader_for_step.clear(); // is it being reused??? + if (prewhere_info) { for (const auto & pre_columns_per_step : task->task_columns.pre_columns) From a9e3b8d29ee1ab89f6ea4da5a92ef2bda73b226f Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Thu, 9 Jun 2022 00:00:36 +0200 Subject: [PATCH 110/525] Don't read the same columns again --- .../MergeTree/MergeTreeBlockReadUtils.cpp | 30 ++++++++++--------- .../MergeTree/MergeTreeRangeReader.cpp | 6 ++++ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp index fd0f9c20d3f..ed6d5afaf09 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp @@ -295,35 +295,37 @@ MergeTreeReadTaskColumns getReadTaskColumns( /// 1. Columns for row level filter if (prewhere_info->row_level_filter) { - pre_column_names = prewhere_info->row_level_filter->getRequiredColumnsNames(); + Names row_filter_column_names = prewhere_info->row_level_filter->getRequiredColumnsNames(); ////// HACK!!! - result.pre_columns.push_back(storage_snapshot->getColumnsByNames(options, pre_column_names)); + result.pre_columns.push_back(storage_snapshot->getColumnsByNames(options, row_filter_column_names)); ////////////// - pre_name_set.insert(pre_column_names.begin(), pre_column_names.end()); + pre_name_set.insert(row_filter_column_names.begin(), row_filter_column_names.end()); // all_pre_columns.insert(pre_column_names.begin(), pre_column_names.end()); } /// 2. Columns for prewhere - pre_column_names.clear(); - for (const auto & name : prewhere_info->prewhere_actions->getRequiredColumnsNames()) + Names all_pre_column_names = prewhere_info->prewhere_actions->getRequiredColumnsNames(); + +// if (pre_column_names.empty()) +// pre_column_names.push_back(column_names[0]); + + const auto injected_pre_columns = injectRequiredColumns( + storage, storage_snapshot, data_part, with_subcolumns, all_pre_column_names); + + if (!injected_pre_columns.empty()) + should_reorder = true; + + for (const auto & name : all_pre_column_names) { if (pre_name_set.contains(name)) continue; pre_column_names.push_back(name); + pre_name_set.insert(name); } - if (pre_column_names.empty()) - pre_column_names.push_back(column_names[0]); - - const auto injected_pre_columns = injectRequiredColumns( - storage, storage_snapshot, data_part, with_subcolumns, pre_column_names); - - if (!injected_pre_columns.empty()) - should_reorder = true; - Names post_column_names; for (const auto & name : column_names) diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index a20414d9616..f78e105010d 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -1003,6 +1003,12 @@ Columns MergeTreeRangeReader::continueReadingChain(ReadResult & result, size_t & Columns columns; num_rows = 0; +/////////////// +// HACK!!: no columns need to be read at this step? (only more filtering) + if (merge_tree_reader->getColumns().empty()) + return columns; +/////////////// + if (result.rowsPerGranule().empty()) { /// If zero rows were read on prev step, than there is no more rows to read. From 935c9e454fd55be0dd7cf8c8495da4b9b9a51607 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Thu, 9 Jun 2022 16:04:38 +0200 Subject: [PATCH 111/525] Test case for no columns read in row level filter --- ...9_no_columns_in_row_level_filter.reference | 8 +++++ .../02319_no_columns_in_row_level_filter.sql | 31 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference create mode 100644 tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql diff --git a/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference new file mode 100644 index 00000000000..55d013f68b4 --- /dev/null +++ b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference @@ -0,0 +1,8 @@ +1000000 +0 +0 +0 +400000 +195431 +195431 +5923 diff --git a/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql new file mode 100644 index 00000000000..4aa62ec8b8d --- /dev/null +++ b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql @@ -0,0 +1,31 @@ +DROP ROW POLICY IF EXISTS test_filter_policy ON test_table; +DROP ROW POLICY IF EXISTS test_filter_policy_2 ON test_table; +DROP TABLE IF EXISTS test_table; + +CREATE TABLE test_table (`n` UInt64, `s` String) +ENGINE = MergeTree +PRIMARY KEY n ORDER BY n; + +INSERT INTO test_table SELECT number, concat('some string ', CAST(number, 'String')) FROM numbers(1000000); + +-- Create row policy that doesn't use any column +CREATE ROW POLICY test_filter_policy ON test_table USING False TO ALL; + +-- Run query under default user so that always false row_level_filter is added that doesn't require any columns +SELECT count(1) FROM test_table; +SELECT count(1) FROM test_table PREWHERE (n % 8192) < 4000; +SELECT count(1) FROM test_table WHERE (n % 8192) < 4000; +SELECT count(1) FROM test_table PREWHERE (n % 8192) < 4000 WHERE (n % 33) == 0; + +-- Add policy for default user that will read a column +CREATE ROW POLICY test_filter_policy_2 ON test_table USING (n % 5) >= 3 TO default; + +-- Run query under default user that needs the same column as PREWHERE and WHERE +SELECT count(1) FROM test_table; +SELECT count(1) FROM test_table PREWHERE (n % 8192) < 4000; +SELECT count(1) FROM test_table WHERE (n % 8192) < 4000; +SELECT count(1) FROM test_table PREWHERE (n % 8192) < 4000 WHERE (n % 33) == 0; + +DROP TABLE test_table; +DROP ROW POLICY test_filter_policy ON test_table; +DROP ROW POLICY test_filter_policy_2 ON test_table; From e5c0ebc7b5f574c678576b798ba3dcdec1f0adb3 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Fri, 10 Jun 2022 11:44:53 +0200 Subject: [PATCH 112/525] Handle read from wide part when no columns are requested --- src/Storages/MergeTree/MergeTreeReaderWide.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Storages/MergeTree/MergeTreeReaderWide.cpp b/src/Storages/MergeTree/MergeTreeReaderWide.cpp index 93c1e23884a..7517463e8a8 100644 --- a/src/Storages/MergeTree/MergeTreeReaderWide.cpp +++ b/src/Storages/MergeTree/MergeTreeReaderWide.cpp @@ -67,9 +67,13 @@ size_t MergeTreeReaderWide::readRows( size_t read_rows = 0; try { - size_t num_columns = columns.size(); + size_t num_columns = res_columns.size(); checkNumberOfColumns(num_columns); + /// TODO: is this ok to request no columns? + if (num_columns == 0) + return max_rows_to_read; + std::unordered_map caches; std::unordered_set prefetched_streams; From ba89c3954cd9c009ed275a89806849558b7f0eb6 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Fri, 10 Jun 2022 18:32:37 +0200 Subject: [PATCH 113/525] Do not add the same vitrual if it has been added by prev_reader --- src/Storages/MergeTree/MergeTreeRangeReader.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index f78e105010d..a9f96355c22 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -1159,6 +1159,9 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r for (const auto & column_name : non_const_virtual_column_names) { + if (block.has(column_name)) + continue; + if (column_name == "_part_offset") block.insert({result.columns[pos], std::make_shared(), column_name}); else From b3922461b3fd16ea2289d81e0bd9b903e3b68867 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Fri, 10 Jun 2022 18:33:43 +0200 Subject: [PATCH 114/525] Properly handle empty actions --- src/Storages/MergeTree/MergeTreeRangeReader.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index a9f96355c22..81df11b2545 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -1187,7 +1187,8 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r block.setColumns(columns); } */ - prewhere_info->actions->execute(block); + if (prewhere_info->actions) + prewhere_info->actions->execute(block); prewhere_column_pos = block.getPositionByName(prewhere_info->column_name); @@ -1317,7 +1318,7 @@ std::string PrewhereExprInfo::dump() const for (size_t i = 0; i < steps.size(); ++i) { s << "STEP " << i << ":\n" - << " ACTIONS: " << steps[i].actions->dumpActions() << "\n" + << " ACTIONS: " << (steps[i].actions ? steps[i].actions->dumpActions() : "nullptr") << "\n" << " COLUMN: " << steps[i].column_name << "\n" << " REMOVE_COLUMN: " << steps[i].remove_column << "\n" << " NEED_FILTER: " << steps[i].need_filter << "\n"; From a5b3f83181c96afa7130b3dbe4a53dfa7f274947 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Mon, 13 Jun 2022 11:57:55 +0200 Subject: [PATCH 115/525] Always remove row filter column --- src/Interpreters/InterpreterSelectQuery.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 98a06af88c9..77ed83446b1 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1176,7 +1176,7 @@ void InterpreterSelectQuery::executeImpl(QueryPlan & query_plan, std::optional

row_level_filter, expressions.prewhere_info->row_level_column_name, - true);//false); + true); row_level_filter_step->setStepDescription("Row-level security filter (PREWHERE)"); query_plan.addStep(std::move(row_level_filter_step)); From 5427d5c51b7679f9f86426e1a41c8705a0866c99 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Mon, 13 Jun 2022 11:59:00 +0200 Subject: [PATCH 116/525] Apply filter at row level security step --- src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp index 7a5ed63fa0d..26ea86001d4 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp @@ -80,7 +80,7 @@ MergeTreeBaseSelectProcessor::MergeTreeBaseSelectProcessor( .actions = std::make_shared(prewhere_info->row_level_filter, actions_settings), .column_name = prewhere_info->row_level_column_name, .remove_column = true, - .need_filter = true //prewhere_info->need_filter // ???? + .need_filter = true }; prewhere_actions->steps.emplace_back(std::move(row_level_filter_step)); From aea5bc7527fceb6f791527d8e440f15f4d568314 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Mon, 13 Jun 2022 12:06:28 +0200 Subject: [PATCH 117/525] Removed unused should_reorder flag --- src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp | 10 +++------- src/Storages/MergeTree/MergeTreeBlockReadUtils.h | 4 ---- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp index ed6d5afaf09..aa6ef1a35f1 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp @@ -276,8 +276,8 @@ MergeTreeReadTaskColumns getReadTaskColumns( Names pre_column_names; /// inject columns required for defaults evaluation - bool should_reorder = !injectRequiredColumns( - storage, storage_snapshot, data_part, with_subcolumns, column_names).empty(); + injectRequiredColumns( + storage, storage_snapshot, data_part, with_subcolumns, column_names); MergeTreeReadTaskColumns result; auto options = GetColumnsOptions(GetColumnsOptions::All).withExtendedObjects(); @@ -315,9 +315,6 @@ MergeTreeReadTaskColumns getReadTaskColumns( const auto injected_pre_columns = injectRequiredColumns( storage, storage_snapshot, data_part, with_subcolumns, all_pre_column_names); - if (!injected_pre_columns.empty()) - should_reorder = true; - for (const auto & name : all_pre_column_names) { if (pre_name_set.contains(name)) @@ -342,9 +339,8 @@ MergeTreeReadTaskColumns getReadTaskColumns( result.pre_columns.push_back(storage_snapshot->getColumnsByNames(options, pre_column_names)); ////////////// - /// 3. Rest of the requested columns + /// 3. Rest of the requested columns result.columns = storage_snapshot->getColumnsByNames(options, column_names); - result.should_reorder = should_reorder; return result; } diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h index a3e754f83c3..d0cdedb09c0 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h @@ -36,8 +36,6 @@ struct MergeTreeReadTaskColumns NamesAndTypesList columns; /// column names to read during each PREWHERE step std::vector pre_columns; - /// resulting block may require reordering in accordance with `ordered_names` - bool should_reorder = false; std::string dump() const { @@ -73,8 +71,6 @@ struct MergeTreeReadTask // const NamesAndTypesList & pre_columns; /// should PREWHERE column be returned to requesting side? const bool remove_prewhere_column; -// /// resulting block may require reordering in accordance with `ordered_names` -// const bool should_reorder; /// Used to satistfy preferred_block_size_bytes limitation MergeTreeBlockSizePredictorPtr size_predictor; /// Used to save current range processing status From b629833ef9aa71d091892d0284f7c773d6ea88e1 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Mon, 13 Jun 2022 12:32:24 +0200 Subject: [PATCH 118/525] Test cases to check that row level filter is applied before prewhere actions are executed --- .../02319_no_columns_in_row_level_filter.reference | 3 +++ .../0_stateless/02319_no_columns_in_row_level_filter.sql | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference index 55d013f68b4..c0911ffc598 100644 --- a/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference +++ b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.reference @@ -6,3 +6,6 @@ 195431 195431 5923 +200000 +200000 +6061 diff --git a/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql index 4aa62ec8b8d..e6bc475b081 100644 --- a/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql +++ b/tests/queries/0_stateless/02319_no_columns_in_row_level_filter.sql @@ -26,6 +26,11 @@ SELECT count(1) FROM test_table PREWHERE (n % 8192) < 4000; SELECT count(1) FROM test_table WHERE (n % 8192) < 4000; SELECT count(1) FROM test_table PREWHERE (n % 8192) < 4000 WHERE (n % 33) == 0; +-- Run queries that have division by zero if row level filter isn't applied before prewhere +SELECT count(1) FROM test_table PREWHERE 7 / (n % 5) > 2; +SELECT count(1) FROM test_table WHERE 7 / (n % 5) > 2; +SELECT count(1) FROM test_table PREWHERE 7 / (n % 5) > 2 WHERE (n % 33) == 0; + DROP TABLE test_table; DROP ROW POLICY test_filter_policy ON test_table; DROP ROW POLICY test_filter_policy_2 ON test_table; From dbc6d1a159aded07ed95904b38c005e9d916e2a5 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Mon, 13 Jun 2022 15:00:26 +0200 Subject: [PATCH 119/525] Cleanups --- .../MergeTreeBaseSelectProcessor.cpp | 54 ++----- .../MergeTree/MergeTreeBlockReadUtils.cpp | 35 +++-- .../MergeTree/MergeTreeBlockReadUtils.h | 20 +-- .../MergeTree/MergeTreeRangeReader.cpp | 136 ++++++------------ src/Storages/MergeTree/MergeTreeRangeReader.h | 36 +---- .../MergeTree/MergeTreeReaderWide.cpp | 1 - .../MergeTree/MergeTreeSelectProcessor.cpp | 5 +- .../MergeTreeThreadSelectProcessor.cpp | 9 +- src/Storages/SelectQueryInfo.h | 37 ----- 9 files changed, 74 insertions(+), 259 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp index 26ea86001d4..0d440ea7a8a 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp @@ -84,15 +84,7 @@ MergeTreeBaseSelectProcessor::MergeTreeBaseSelectProcessor( }; prewhere_actions->steps.emplace_back(std::move(row_level_filter_step)); - -// prewhere_actions->row_level_filter = std::make_shared(prewhere_info->row_level_filter, actions_settings); } -// prewhere_actions->row_level_column_name = prewhere_info->row_level_column_name; - -// prewhere_actions->prewhere_actions = std::make_shared(prewhere_info->prewhere_actions, actions_settings); -// prewhere_actions->prewhere_column_name = prewhere_info->prewhere_column_name; -// prewhere_actions->remove_prewhere_column = prewhere_info->remove_prewhere_column; -// prewhere_actions->need_filter = prewhere_info->need_filter; PrewhereExprStep prewhere_step { @@ -103,12 +95,6 @@ MergeTreeBaseSelectProcessor::MergeTreeBaseSelectProcessor( }; prewhere_actions->steps.emplace_back(std::move(prewhere_step)); - - -// std::cerr -// << "PREWHERE ========================\n" -// << prewhere_actions->dump() -// << "========================\n\n"; } } @@ -236,7 +222,11 @@ void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & cu if (prewhere_info) { - assert(prewhere_actions->steps.size() == pre_reader_for_step.size()); + if (prewhere_actions->steps.size() != pre_reader_for_step.size()) + throw Exception(ErrorCodes::LOGICAL_ERROR, + "PREWHERE steps count mismatch, actions: {}, readers: {}", + prewhere_actions->steps.size(), pre_reader_for_step.size()); + for (size_t i = 0; i < prewhere_actions->steps.size(); ++i) { @@ -244,7 +234,6 @@ void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & cu current_task.pre_range_reader.push_back( MergeTreeRangeReader(pre_reader_for_step[i].get(), prev_reader, &prewhere_actions->steps[i], last_reader, non_const_virtual_column_names)); - prev_reader = ¤t_task.pre_range_reader.back(); } @@ -256,41 +245,14 @@ void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & cu } else { - // HACK!! - // If all columns are read by pre_range_readers than move last pre_range_reader into range_reader + /// If all columns are read by pre_range_readers than move last pre_range_reader into range_reader current_task.range_reader = std::move(current_task.pre_range_reader.back()); current_task.pre_range_reader.pop_back(); } - -/* - if (prewhere_info) - { - if (reader->getColumns().empty()) - { - current_task.range_reader = MergeTreeRangeReader(pre_reader.get(), nullptr, prewhere_actions.get(), true, non_const_virtual_column_names); - } - else - { - MergeTreeRangeReader * pre_reader_ptr = nullptr; - if (pre_reader != nullptr) - { - current_task.pre_range_reader = MergeTreeRangeReader(pre_reader.get(), nullptr, prewhere_actions.get(), false, non_const_virtual_column_names); - pre_reader_ptr = ¤t_task.pre_range_reader; - } - - current_task.range_reader = MergeTreeRangeReader(reader.get(), pre_reader_ptr, nullptr, true, non_const_virtual_column_names); - } - } - else - { - current_task.range_reader = MergeTreeRangeReader(reader.get(), nullptr, nullptr, true, non_const_virtual_column_names); - } -//*/ } static UInt64 estimateNumRows(const MergeTreeReadTask & current_task, UInt64 current_preferred_block_size_bytes, - UInt64 current_max_block_size_rows, UInt64 current_preferred_max_column_in_block_size_bytes, double min_filtration_ratio) - //, const MergeTreeRangeReader & current_reader) + UInt64 current_max_block_size_rows, UInt64 current_preferred_max_column_in_block_size_bytes, double min_filtration_ratio) { const MergeTreeRangeReader & current_reader = current_task.range_reader; @@ -339,7 +301,7 @@ Chunk MergeTreeBaseSelectProcessor::readFromPartImpl() const double min_filtration_ratio = 0.00001; UInt64 recommended_rows = estimateNumRows(*task, current_preferred_block_size_bytes, - current_max_block_size_rows, current_preferred_max_column_in_block_size_bytes, min_filtration_ratio);//, task->range_reader); + current_max_block_size_rows, current_preferred_max_column_in_block_size_bytes, min_filtration_ratio); UInt64 rows_to_read = std::max(static_cast(1), std::min(current_max_block_size_rows, recommended_rows)); auto read_result = task->range_reader.read(rows_to_read, task->mark_ranges); diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp index aa6ef1a35f1..50f4c34f004 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.cpp @@ -5,6 +5,9 @@ #include #include #include +#include +#include + #include @@ -284,34 +287,22 @@ MergeTreeReadTaskColumns getReadTaskColumns( if (with_subcolumns) options.withSubcolumns(); -// NameSet all_pre_columns; - if (prewhere_info) { NameSet pre_name_set; -// TODO: for each prewhere step - + /// Add column reading steps: /// 1. Columns for row level filter if (prewhere_info->row_level_filter) { Names row_filter_column_names = prewhere_info->row_level_filter->getRequiredColumnsNames(); - -////// HACK!!! result.pre_columns.push_back(storage_snapshot->getColumnsByNames(options, row_filter_column_names)); -////////////// - pre_name_set.insert(row_filter_column_names.begin(), row_filter_column_names.end()); - -// all_pre_columns.insert(pre_column_names.begin(), pre_column_names.end()); } /// 2. Columns for prewhere Names all_pre_column_names = prewhere_info->prewhere_actions->getRequiredColumnsNames(); -// if (pre_column_names.empty()) -// pre_column_names.push_back(column_names[0]); - const auto injected_pre_columns = injectRequiredColumns( storage, storage_snapshot, data_part, with_subcolumns, all_pre_column_names); @@ -323,7 +314,6 @@ MergeTreeReadTaskColumns getReadTaskColumns( pre_name_set.insert(name); } - Names post_column_names; for (const auto & name : column_names) if (!pre_name_set.contains(name)) @@ -332,16 +322,23 @@ MergeTreeReadTaskColumns getReadTaskColumns( column_names = post_column_names; } -// NamesAndTypesList all_columns; - - -////// HACK!!! result.pre_columns.push_back(storage_snapshot->getColumnsByNames(options, pre_column_names)); -////////////// /// 3. Rest of the requested columns result.columns = storage_snapshot->getColumnsByNames(options, column_names); return result; } + +std::string MergeTreeReadTaskColumns::dump() const +{ + WriteBufferFromOwnString s; + for (size_t i = 0; i < pre_columns.size(); ++i) + { + s << "STEP " << i << ": " << pre_columns[i].toString() << "\n"; + } + s << "COLUMNS: " << columns.toString() << "\n"; + return s.str(); +} + } diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h index d0cdedb09c0..0a9a307fec5 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h @@ -37,16 +37,7 @@ struct MergeTreeReadTaskColumns /// column names to read during each PREWHERE step std::vector pre_columns; - std::string dump() const - { - std::ostringstream s; - for (size_t i = 0; i < pre_columns.size(); ++i) - { - s << "STEP " << i << ": " << pre_columns[i].toString() << "\n"; - } - s << "COLUMNS: " << columns.toString() << "\n"; - return s.str(); - } + std::string dump() const; }; /// A batch of work for MergeTreeThreadSelectProcessor @@ -62,13 +53,8 @@ struct MergeTreeReadTask const Names & ordered_names; /// used to determine whether column should be filtered during PREWHERE or WHERE const NameSet & column_name_set; - - const MergeTreeReadTaskColumns& task_columns; - -// /// column names to read during WHERE -// const NamesAndTypesList & columns; -// /// column names to read during PREWHERE -// const NamesAndTypesList & pre_columns; + /// column names to read during PREWHERE and WHERE + const MergeTreeReadTaskColumns & task_columns; /// should PREWHERE column be returned to requesting side? const bool remove_prewhere_column; /// Used to satistfy preferred_block_size_bytes limitation diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index 81df11b2545..eaecac06118 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -1,9 +1,10 @@ -#include #include #include #include #include #include +#include "IO/WriteBufferFromString.h" +#include "IO/Operators.h" #include #include #include @@ -44,7 +45,7 @@ static void filterColumns(Columns & columns, const IColumn::Filter & filter) } } } -/* + static void filterColumns(Columns & columns, const ColumnPtr & filter) { ConstantFilterDescription const_descr(*filter); @@ -63,7 +64,7 @@ static void filterColumns(Columns & columns, const ColumnPtr & filter) FilterDescription descr(*filter); filterColumns(columns, *descr.data); } -*/ + size_t MergeTreeRangeReader::ReadResult::getLastMark(const MergeTreeRangeReader::ReadResult::RangesInfo & ranges) { @@ -359,7 +360,6 @@ void MergeTreeRangeReader::ReadResult::setFilterConstFalse() num_rows = 0; } -/// void MergeTreeRangeReader::ReadResult::optimize(bool can_read_incomplete_granules, bool allow_filter_columns) { if (total_rows_per_granule == 0 || filter == nullptr) @@ -417,7 +417,6 @@ void MergeTreeRangeReader::ReadResult::optimize(bool can_read_incomplete_granule need_filter = true; } -/// For each read granule size_t MergeTreeRangeReader::ReadResult::countZeroTails(const IColumn::Filter & filter_vec, NumRows & zero_tails, bool can_read_incomplete_granules) const { zero_tails.resize(0); @@ -676,28 +675,12 @@ MergeTreeRangeReader::MergeTreeRangeReader( if (prewhere_info) { -// for (const auto & step : prewhere_info->steps) const auto & step = *prewhere_info; - { - if (step.actions) - step.actions->execute(sample_block, true); + if (step.actions) + step.actions->execute(sample_block, true); - if (step.remove_column) - sample_block.erase(step.column_name); - } - -/* if (prewhere_info->row_level_filter) - { - prewhere_info->row_level_filter->execute(sample_block, true); - sample_block.erase(prewhere_info->row_level_column_name); - } - - if (prewhere_info->prewhere_actions) - prewhere_info->prewhere_actions->execute(sample_block, true); - - if (prewhere_info->remove_prewhere_column) - sample_block.erase(prewhere_info->prewhere_column_name); -*/ + if (step.remove_column) + sample_block.erase(step.column_name); } } @@ -998,16 +981,14 @@ void MergeTreeRangeReader::fillPartOffsetColumn(ReadResult & result, UInt64 lead result.columns.emplace_back(std::move(column)); } -Columns MergeTreeRangeReader::continueReadingChain(ReadResult & result, size_t & num_rows) +Columns MergeTreeRangeReader::continueReadingChain(const ReadResult & result, size_t & num_rows) { Columns columns; num_rows = 0; -/////////////// -// HACK!!: no columns need to be read at this step? (only more filtering) + /// No columns need to be read at this step? (only more filtering) if (merge_tree_reader->getColumns().empty()) return columns; -/////////////// if (result.rowsPerGranule().empty()) { @@ -1044,8 +1025,11 @@ Columns MergeTreeRangeReader::continueReadingChain(ReadResult & result, size_t & stream.skip(result.numRowsToSkipInLastGranule()); num_rows += stream.finalize(columns); - - // TODO: here we can verify that stream and prev_reader->stream are at exactly same offset + /// verify that stream and prev_reader->stream are at exactly same offset + if (stream.currentPartOffset() != prev_reader->stream.currentPartOffset()) + throw Exception(ErrorCodes::LOGICAL_ERROR, + "Current step stream read position {} doesn't match previous step read read position {}", + stream.currentPartOffset(), prev_reader->stream.currentPartOffset()); /// added_rows may be zero if all columns were read in prewhere and it's ok. if (num_rows && num_rows != result.totalRowsPerGranule()) @@ -1125,15 +1109,17 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r const auto & header = merge_tree_reader->getColumns(); size_t num_columns = header.size(); - // TODO: properly check that we have columns from previous steps and newly read required columns + /// Check that we have columns from previous steps and newly read required columns if (result.columns.size() < num_columns + non_const_virtual_column_names.size()) - throw Exception("Invalid number of columns passed to MergeTreeRangeReader. " - "Expected " + toString(num_columns) + ", " - "got " + toString(result.columns.size()), ErrorCodes::LOGICAL_ERROR); + throw Exception(ErrorCodes::LOGICAL_ERROR, + "Invalid number of columns passed to MergeTreeRangeReader. Expected {}, got {}", + num_columns, result.columns.size()); - ColumnPtr current_filter; - ColumnPtr filter; -// ColumnPtr row_level_filter; + /// This filter has the size of total_rows_per granule. It is applied after reading contiguous chunks from + /// the start of each granule. + ColumnPtr combined_filter; + /// Filter computed at the current step. Its size is equal to num_rows which is <= total_rows_per_granule + ColumnPtr current_step_filter; size_t prewhere_column_pos; { @@ -1150,12 +1136,8 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r } } -// for (auto name_and_type = header.begin(); pos < num_columns; ++pos, ++name_and_type) -// block.insert({result.columns[pos], name_and_type->type, name_and_type->name}); - for (const auto & name_and_type : header) { - block.insert({result.columns[pos], name_and_type.type, name_and_type.name}); - ++pos; - } + for (auto name_and_type = header.begin(); name_and_type != header.end() && pos < result.columns.size(); ++pos, ++name_and_type) + block.insert({result.columns[pos], name_and_type->type, name_and_type->name}); for (const auto & column_name : non_const_virtual_column_names) { @@ -1163,7 +1145,14 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r continue; if (column_name == "_part_offset") + { + if (pos >= result.columns.size()) + throw Exception(ErrorCodes::LOGICAL_ERROR, + "Invalid number of columns passed to MergeTreeRangeReader. Expected {}, got {}", + num_columns, result.columns.size()); + block.insert({result.columns[pos], std::make_shared(), column_name}); + } else throw Exception("Unexpected non-const virtual column: " + column_name, ErrorCodes::LOGICAL_ERROR); ++pos; @@ -1172,21 +1161,6 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r /// Columns might be projected out. We need to store them here so that default columns can be evaluated later. result.block_before_prewhere = block; -/* if (prewhere_info->row_level_filter) - { - prewhere_info->row_level_filter->execute(block); - auto row_level_filter_pos = block.getPositionByName(prewhere_info->row_level_column_name); - row_level_filter = block.getByPosition(row_level_filter_pos).column; - block.erase(row_level_filter_pos); - - auto columns = block.getColumns(); - filterColumns(columns, row_level_filter); - if (columns.empty()) - block = block.cloneEmpty(); - else - block.setColumns(columns); - } -*/ if (prewhere_info->actions) prewhere_info->actions->execute(block); @@ -1197,40 +1171,27 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r for (auto & col : block) result.columns.emplace_back(std::move(col.column)); - current_filter.swap(result.columns[prewhere_column_pos]); - filter = current_filter; - - + current_step_filter.swap(result.columns[prewhere_column_pos]); + combined_filter = current_step_filter; } if (result.getFilter()) { ColumnPtr prev_filter = result.getFilterHolder(); - filter = combineFilters(prev_filter, std::move(filter)); - -// /// TODO: implement for prewhere chain. -// /// In order to do it we need combine filter and result.filter, where filter filters only '1' in result.filter. -// throw Exception("MergeTreeRangeReader chain with several prewhere actions in not implemented.", -// ErrorCodes::LOGICAL_ERROR); + combined_filter = combineFilters(prev_filter, std::move(combined_filter)); } -// if (filter && row_level_filter) -// { -// row_level_filter = combineFilters(std::move(row_level_filter), filter); -// result.setFilter(row_level_filter); -// } -// else - result.setFilter(filter); + result.setFilter(combined_filter); /// If there is a WHERE, we filter in there, and only optimize IO and shrink columns here if (!last_reader_in_chain) - result.optimize(merge_tree_reader->canReadIncompleteGranules(), true); // TODO: prewhere_info->row_level_filter == nullptr); + result.optimize(merge_tree_reader->canReadIncompleteGranules(), true); /// If we read nothing or filter gets optimized to nothing if (result.totalRowsPerGranule() == 0) result.setFilterConstFalse(); /// If we need to filter in PREWHERE - else if (prewhere_info->need_filter || result.need_filter)// || prewhere_info->row_level_filter) + else if (prewhere_info->need_filter || result.need_filter) { /// If there is a filter and without optimized if (result.getFilter() && last_reader_in_chain) @@ -1250,22 +1211,7 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r /// filter might be shrunk while columns not const auto * result_filter = result.getFilterOriginal(); -// if (row_level_filter) -// filterColumns(result.columns, filter); -// else - // filterColumns(result.columns, result_filter->getData()); - - - { - FilterDescription current_filter_descr(*current_filter); - // TODO: need to filter by current filter column that has num_rows size, not the original size - - // TODO: properly handle const true and const false cases - if (current_filter_descr.countBytesInFilter() == 0) - result.columns.clear(); - else if (current_filter_descr.data) - filterColumns(result.columns, *current_filter_descr.data); - } + filterColumns(result.columns, current_step_filter); result.need_filter = true; @@ -1313,7 +1259,7 @@ void MergeTreeRangeReader::executePrewhereActionsAndFilterColumns(ReadResult & r std::string PrewhereExprInfo::dump() const { - std::ostringstream s; + WriteBufferFromOwnString s; for (size_t i = 0; i < steps.size(); ++i) { diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.h b/src/Storages/MergeTree/MergeTreeRangeReader.h index 15712a77797..667e8175089 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.h +++ b/src/Storages/MergeTree/MergeTreeRangeReader.h @@ -18,8 +18,7 @@ using PrewhereInfoPtr = std::shared_ptr; class ExpressionActions; using ExpressionActionsPtr = std::shared_ptr; -//* -struct PrewhereExprStep +struct PrewhereExprStep { ExpressionActionsPtr actions; String column_name; @@ -30,42 +29,11 @@ struct PrewhereExprStep /// The same as PrewhereInfo, but with ExpressionActions instead of ActionsDAG struct PrewhereExprInfo { -// /// Actions for row level security filter. Applied separately before prewhere_actions. -// /// This actions are separate because prewhere condition should not be executed over filtered rows. -// ExpressionActionsPtr row_level_filter; -// /// Actions which are executed on block in order to get filter column for prewhere step. -// ExpressionActionsPtr prewhere_actions; -// String row_level_column_name; -// String prewhere_column_name; -// bool remove_prewhere_column = false; -// bool need_filter = false; - std::vector steps; -///// PrewhereExprStep deleted_row_filter; -///// PrewhereExprStep row_level_filter; -///// PrewhereExprStep prewhere; - std::string dump() const; }; -/*/ - -/// The same as PrewhereInfo, but with ExpressionActions instead of ActionsDAG -struct PrewhereExprInfo -{ - /// Actions for row level security filter. Applied separately before prewhere_actions. - /// This actions are separate because prewhere condition should not be executed over filtered rows. - ExpressionActionsPtr row_level_filter; - /// Actions which are executed on block in order to get filter column for prewhere step. - ExpressionActionsPtr prewhere_actions; - String row_level_column_name; - String prewhere_column_name; - bool remove_prewhere_column = false; - bool need_filter = false; -}; -//*/ - /// MergeTreeReader iterator which allows sequential reading for arbitrary number of rows between pairs of marks in the same part. /// Stores reading state, which can be inside granule. Can skip rows in current granule and start reading from next mark. /// Used generally for reading number of rows less than index granularity to decrease cache misses for fat blocks. @@ -278,7 +246,7 @@ public: private: ReadResult startReadingChain(size_t max_rows, MarkRanges & ranges); - Columns continueReadingChain(ReadResult & result, size_t & num_rows); + Columns continueReadingChain(const ReadResult & result, size_t & num_rows); void executePrewhereActionsAndFilterColumns(ReadResult & result); void fillPartOffsetColumn(ReadResult & result, UInt64 leading_begin_part_offset, UInt64 leading_end_part_offset); diff --git a/src/Storages/MergeTree/MergeTreeReaderWide.cpp b/src/Storages/MergeTree/MergeTreeReaderWide.cpp index 7517463e8a8..07fe187332e 100644 --- a/src/Storages/MergeTree/MergeTreeReaderWide.cpp +++ b/src/Storages/MergeTree/MergeTreeReaderWide.cpp @@ -70,7 +70,6 @@ size_t MergeTreeReaderWide::readRows( size_t num_columns = res_columns.size(); checkNumberOfColumns(num_columns); - /// TODO: is this ok to request no columns? if (num_columns == 0) return max_rows_to_read; diff --git a/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp index eb4746cbf04..aa6c457f412 100644 --- a/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeSelectProcessor.cpp @@ -50,9 +50,6 @@ MergeTreeSelectProcessor::MergeTreeSelectProcessor( void MergeTreeSelectProcessor::initializeReaders() { -pre_reader_for_step.clear(); // is it being reused??? - - task_columns = getReadTaskColumns( storage, storage_snapshot, data_part, required_columns, prewhere_info, /*with_subcolumns=*/ true); @@ -69,6 +66,8 @@ pre_reader_for_step.clear(); // is it being reused??? reader = data_part->getReader(task_columns.columns, storage_snapshot->getMetadataForQuery(), all_mark_ranges, owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, {}, {}); + pre_reader_for_step.clear(); + if (prewhere_info) { for (const auto & pre_columns_for_step : task_columns.pre_columns) diff --git a/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp index 47615ae6e3b..574ce4479f2 100644 --- a/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeThreadSelectProcessor.cpp @@ -105,9 +105,6 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() auto profile_callback = [this](ReadBufferFromFileBase::ProfileInfo info_) { pool->profileFeedback(info_); }; const auto & metadata_snapshot = storage_snapshot->metadata; -//std::cerr << "==============TASK:==============\n" << task->task_columns.dump() << "\n"; -//std::cerr << "pre_reader_for_step.size() " << pre_reader_for_step.size() << "\n\n"; - if (!reader) { if (use_uncompressed_cache) @@ -118,8 +115,7 @@ void MergeTreeThreadSelectProcessor::finalizeNewTask() owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, IMergeTreeReader::ValueSizeMap{}, profile_callback); -pre_reader_for_step.clear(); // is it being reused??? - + pre_reader_for_step.clear(); if (prewhere_info) { for (const auto & pre_columns_per_step : task->task_columns.pre_columns) @@ -140,8 +136,7 @@ pre_reader_for_step.clear(); // is it being reused??? owned_uncompressed_cache.get(), owned_mark_cache.get(), reader_settings, reader->getAvgValueSizeHints(), profile_callback); -pre_reader_for_step.clear(); // is it being reused??? - + pre_reader_for_step.clear(); if (prewhere_info) { for (const auto & pre_columns_per_step : task->task_columns.pre_columns) diff --git a/src/Storages/SelectQueryInfo.h b/src/Storages/SelectQueryInfo.h index 23b592ce7ac..bdb4c392c48 100644 --- a/src/Storages/SelectQueryInfo.h +++ b/src/Storages/SelectQueryInfo.h @@ -47,42 +47,6 @@ using MergeTreeDataSelectAnalysisResultPtr = std::shared_ptr; -/* -struct PrewhereStep -{ - ActionsDAGPtr prewhere_actions; - String prewhere_column_name; - bool remove_prewhere_column = false; - bool need_filter = false; - - explicit PrewhereStep(ActionsDAGPtr prewhere_actions_, String prewhere_column_name_) - : prewhere_actions(std::move(prewhere_actions_)), prewhere_column_name(std::move(prewhere_column_name_)) {} - - std::string dump() const; -}; - -struct PrewhereInfo -{ -// /// Actions for row level security filter. Applied separately before prewhere_actions. -// /// This actions are separate because prewhere condition should not be executed over filtered rows. -// ActionsDAGPtr row_level_filter; -// /// Actions which are executed on block in order to get filter column for prewhere step. -// ActionsDAGPtr prewhere_actions; -// String row_level_column_name; -// String prewhere_column_name; -// bool remove_prewhere_column = false; -// bool need_filter = false; - - std::vector steps; - - PrewhereInfo() = default; -// explicit PrewhereInfo(ActionsDAGPtr prewhere_actions_, String prewhere_column_name_) -// : prewhere_actions(std::move(prewhere_actions_)), prewhere_column_name(std::move(prewhere_column_name_)) {} - - std::string dump() const; -}; -/*/ - struct PrewhereInfo { /// Actions for row level security filter. Applied separately before prewhere_actions. @@ -101,7 +65,6 @@ struct PrewhereInfo std::string dump() const; }; -//*/ /// Helper struct to store all the information about the filter expression. struct FilterInfo From e5b55b965bc5fd9d241b05cd0f817727ea3ad28f Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:03:30 +0200 Subject: [PATCH 120/525] Removed incorrect check --- src/Storages/MergeTree/MergeTreeRangeReader.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index eaecac06118..b6bc3102c06 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -1025,12 +1025,6 @@ Columns MergeTreeRangeReader::continueReadingChain(const ReadResult & result, si stream.skip(result.numRowsToSkipInLastGranule()); num_rows += stream.finalize(columns); - /// verify that stream and prev_reader->stream are at exactly same offset - if (stream.currentPartOffset() != prev_reader->stream.currentPartOffset()) - throw Exception(ErrorCodes::LOGICAL_ERROR, - "Current step stream read position {} doesn't match previous step read read position {}", - stream.currentPartOffset(), prev_reader->stream.currentPartOffset()); - /// added_rows may be zero if all columns were read in prewhere and it's ok. if (num_rows && num_rows != result.totalRowsPerGranule()) throw Exception("RangeReader read " + toString(num_rows) + " rows, but " From d553b30f808d2adb0ec58242769d1ac3e79d6128 Mon Sep 17 00:00:00 2001 From: Laurie Li Date: Wed, 22 Jun 2022 23:28:25 +0800 Subject: [PATCH 121/525] Update replication.md of zh docs docs/zh/engines/table-engines/mergetree-family/replication.md Signed-off-by: Laurie Li --- .../mergetree-family/replication.md | 100 ++++++++++++++++-- 1 file changed, 89 insertions(+), 11 deletions(-) diff --git a/docs/zh/engines/table-engines/mergetree-family/replication.md b/docs/zh/engines/table-engines/mergetree-family/replication.md index c3be3a382cb..568484c6256 100644 --- a/docs/zh/engines/table-engines/mergetree-family/replication.md +++ b/docs/zh/engines/table-engines/mergetree-family/replication.md @@ -18,11 +18,19 @@ 而 `CREATE`,`DROP`,`ATTACH`,`DETACH` 和 `RENAME` 语句只会在单个服务器上执行,不会被复制。 -- `The CREATE TABLE` 在运行此语句的服务器上创建一个新的可复制表。如果此表已存在其他服务器上,则给该表添加新副本。 -- `The DROP TABLE` 删除运行此查询的服务器上的副本。 -- `The RENAME` 重命名一个副本。换句话说,可复制表不同的副本可以有不同的名称。 +- `CREATE TABLE` 在运行此语句的服务器上创建一个新的可复制表。如果此表已存在其他服务器上,则给该表添加新副本。 +- `DROP TABLE` 删除运行此查询的服务器上的副本。 +- `RENAME` 重命名一个副本。换句话说,可复制表不同的副本可以有不同的名称。 -要使用副本,需在配置文件中设置 ZooKeeper 集群的地址。例如: +ClickHouse 使用 [Apache ZooKeeper](https://zookeeper.apache.org) 存储副本的元信息。请使用 ZooKeeper 3.4.5 或更高版本。 + +要使用副本,需在 [Zookeeper](../../../operations/server-configuration-parameters/settings.md#server-settings_zookeeper) 服务器的配置部分设置相应参数。 + +:::warning +不要忽视安全设置。 ClickHouse 支持 ZooKeeper 安全子系统中的 `digest` [ACL 方案](https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#sc_ZooKeeperAccessControl) 。 +::: + +Zookeeper 集群地址的设置样例如下: ``` xml @@ -41,7 +49,41 @@ ``` -需要 ZooKeeper 3.4.5 或更高版本。 +通过以引擎参数的形式提供 ZooKeeper 集群的名称和路径,ClickHouse 同样支持将副本的元信息存储在备用 ZooKeeper 集群上。也就是说,支持将不同数据表的元数据存储在不同的 ZooKeeper 集群上。 + +设置备用 ZooKeeper 集群地址的样例如下: + +``` xml + + + + example_2_1 + 2181 + + + example_2_2 + 2181 + + + example_2_3 + 2181 + + + + + example_3_1 + 2181 + + + +``` + +为了将数据表的元数据存储到备用 ZooKeeper 集群而非默认 ZooKeeper 集群,我们可以通过如下 SQL 的方式创建使用 +ReplicatedMergeTree 引擎的数据表: + +``` +CREATE TABLE table_name ( ... ) ENGINE = ReplicatedMergeTree('zookeeper_name_configured_in_auxiliary_zookeepers:path', 'replica_name') ... +``` 你可以配置任何现有的 ZooKeeper 集群,系统会使用里面的目录来存取元数据(该目录在创建可复制表时指定)。 @@ -53,7 +95,9 @@ 对于非常大的集群,你可以把不同的 ZooKeeper 集群用于不同的分片。然而,即使 Yandex.Metrica 集群(大约300台服务器)也证明还不需要这么做。 -复制是多主异步。 `INSERT` 语句(以及 `ALTER` )可以发给任意可用的服务器。数据会先插入到执行该语句的服务器上,然后被复制到其他服务器。由于它是异步的,在其他副本上最近插入的数据会有一些延迟。如果部分副本不可用,则数据在其可用时再写入。副本可用的情况下,则延迟时长是通过网络传输压缩数据块所需的时间。 +复制是多主异步。 `INSERT` 语句(以及 `ALTER` )可以发给任意可用的服务器。数据会先插入到执行该语句的服务器上,然后被复制到其他服务器。由于它是异步的,在其他副本上最近插入的数据会有一些延迟。如果部分副本不可用,则数据在其可用时再写入。副本可用的情况下,则延迟时长是通过网络传输压缩数据块所需的时间。为复制表执行后台任务的线程数量,可以通过 [background_schedule_pool_size](../../../operations/settings/settings.md#background_schedule_pool_size) 进行设置。 + +`ReplicatedMergeTree` 引擎采用一个独立的线程池进行复制拉取。线程池的大小通过 [background_fetches_pool_size](../../../operations/settings/settings.md#background_fetches_pool_size) 进行限定,它可以在重启服务器时进行调整。 默认情况下,INSERT 语句仅等待一个副本写入成功后返回。如果数据只成功写入一个副本后该副本所在的服务器不再存在,则存储的数据会丢失。要启用数据写入多个副本才确认返回,使用 `insert_quorum` 选项。 @@ -75,6 +119,7 @@ - `zoo_path` — ZooKeeper 中该表的路径。 - `replica_name` — ZooKeeper 中的该表的副本名称。 +- `other_parameters` — 关于引擎的一系列参数,这个引擎即是用来创建复制的引擎,例如,`ReplacingMergeTree` 。 示例: @@ -90,7 +135,9 @@ ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) ``` -已弃用的建表语法示例: +

+ +已弃用的建表语法示例: ``` sql CREATE TABLE table_name @@ -101,17 +148,19 @@ CREATE TABLE table_name ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/table_name', '{replica}', EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID), EventTime), 8192) ``` +
+ 如上例所示,这些参数可以包含宏替换的占位符,即大括号的部分。它们会被替换为配置文件里 ‘macros’ 那部分配置的值。示例: ``` xml 05 02 - example05-02-1.yandex.ru + example05-02-1 ``` -«ZooKeeper 中该表的路径»对每个可复制表都要是唯一的。不同分片上的表要有不同的路径。 +ZooKeeper 中该表的路径对每个可复制表都要是唯一的。不同分片上的表要有不同的路径。 这种情况下,路径包含下面这些部分: `/clickhouse/tables/` 是公共前缀,我们推荐使用这个。 @@ -119,7 +168,11 @@ CREATE TABLE table_name `{layer}-{shard}` 是分片标识部分。在此示例中,由于 Yandex.Metrica 集群使用了两级分片,所以它是由两部分组成的。但对于大多数情况来说,你只需保留 {shard} 占位符即可,它会替换展开为分片标识。 `table_name` 是该表在 ZooKeeper 中的名称。使其与 ClickHouse 中的表名相同比较好。 这里它被明确定义,跟 ClickHouse 表名不一样,它并不会被 RENAME 语句修改。 -*HINT*:你可以在前面添加一个数据库名称 `table_name` 也是 例如。 `db_name.table_name` +*HINT*:你也可以在 `table_name` 前面添加一个数据库名称。例如: `db_name.table_name` 。 + +两个内置的占位符 `{database}` 和 `{table}` 也可使用,它们可以展开成数据表名称和数据库名称(只有当这些宏指令在 `macros` 部分已经定义时才可以)。因此 ZooKeeper 路径可以指定为 `'/clickhouse/tables/{layer}-{shard}/{database}/{table}'` 。 + +当使用这些内置占位符时,请当心数据表重命名。 ZooKeeper 中的路径无法变更,而当数据表被重命名时,宏命令将展开为另一个路径,数据表将指向一个 ZooKeeper 上并不存在的路径,并因此转变为只读模式。 副本名称用于标识同一个表分片的不同副本。你可以使用服务器名称,如上例所示。同个分片中不同副本的副本名称要唯一。 @@ -127,6 +180,31 @@ CREATE TABLE table_name 使用大型集群时,我们建议使用宏替换,因为它可以降低出错的可能性。 +你可以在服务器的配置文件中指定 `Replicated` 数据表引擎的默认参数。例如: + +```xml +/clickhouse/tables/{shard}/{database}/{table} +{replica} +``` + +这样,你可以在建表时省略参数: + +``` sql +CREATE TABLE table_name ( + x UInt32 +) ENGINE = ReplicatedMergeTree +ORDER BY x; +``` + +它等价于: + +``` sql +CREATE TABLE table_name ( + x UInt32 +) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/{database}/table_name', '{replica}') +ORDER BY x; +``` + 在每个副本服务器上运行 `CREATE TABLE` 查询。将创建新的复制表,或给现有表添加新副本。 如果其他副本上已包含了某些数据,在表上添加新副本,则在运行语句后,数据会从其他副本复制到新副本。换句话说,新副本会与其他副本同步。 @@ -164,7 +242,7 @@ sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data 1. 在服务器上安装 ClickHouse。在包含分片标识符和副本的配置文件中正确定义宏配置,如果有用到的话, 2. 如果服务器上有非复制表则必须手动复制,可以从副本服务器上(在 `/var/lib/clickhouse/data/db_name/table_name/` 目录中)复制它们的数据。 3. 从副本服务器上中复制位于 `/var/lib/clickhouse/metadata/` 中的表定义信息。如果在表定义信息中显式指定了分片或副本标识符,请更正它以使其对应于该副本。(另外,启动服务器,然后会在 `/var/lib/clickhouse/metadata/` 中的.sql文件中生成所有的 `ATTACH TABLE` 语句。) - 4.要开始恢复,ZooKeeper 中创建节点 `/path_to_table/replica_name/flags/force_restore_data`,节点内容不限,或运行命令来恢复所有复制的表:`sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data` +4. 要开始恢复,ZooKeeper 中创建节点 `/path_to_table/replica_name/flags/force_restore_data`,节点内容不限,或运行命令来恢复所有复制的表:`sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data` 然后启动服务器(如果它已运行则重启)。数据会从副本中下载。 From dce1c76270f29298e2fe7c088b42ac6c772f7e59 Mon Sep 17 00:00:00 2001 From: kssenii Date: Wed, 22 Jun 2022 18:00:15 +0200 Subject: [PATCH 122/525] Fix --- src/Access/Common/AccessType.h | 1 + src/Interpreters/InterpreterSystemQuery.cpp | 1 + ...337_drop_filesystem_cache_access.reference | 0 .../02337_drop_filesystem_cache_access.sh | 23 +++++++++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 tests/queries/0_stateless/02337_drop_filesystem_cache_access.reference create mode 100755 tests/queries/0_stateless/02337_drop_filesystem_cache_access.sh diff --git a/src/Access/Common/AccessType.h b/src/Access/Common/AccessType.h index 41739406de4..5b7361e565d 100644 --- a/src/Access/Common/AccessType.h +++ b/src/Access/Common/AccessType.h @@ -138,6 +138,7 @@ enum class AccessType M(SYSTEM_DROP_UNCOMPRESSED_CACHE, "SYSTEM DROP UNCOMPRESSED, DROP UNCOMPRESSED CACHE, DROP UNCOMPRESSED", GLOBAL, SYSTEM_DROP_CACHE) \ M(SYSTEM_DROP_MMAP_CACHE, "SYSTEM DROP MMAP, DROP MMAP CACHE, DROP MMAP", GLOBAL, SYSTEM_DROP_CACHE) \ M(SYSTEM_DROP_COMPILED_EXPRESSION_CACHE, "SYSTEM DROP COMPILED EXPRESSION, DROP COMPILED EXPRESSION CACHE, DROP COMPILED EXPRESSIONS", GLOBAL, SYSTEM_DROP_CACHE) \ + M(SYSTEM_DROP_FILESYSTEM_CACHE, "SYSTEM DROP FILESYSTEM CACHE, DROP FILESYSTEM CACHE", GLOBAL, SYSTEM_DROP_CACHE) \ M(SYSTEM_DROP_CACHE, "DROP CACHE", GROUP, SYSTEM) \ M(SYSTEM_RELOAD_CONFIG, "RELOAD CONFIG", GLOBAL, SYSTEM_RELOAD) \ M(SYSTEM_RELOAD_SYMBOLS, "RELOAD SYMBOLS", GLOBAL, SYSTEM_RELOAD) \ diff --git a/src/Interpreters/InterpreterSystemQuery.cpp b/src/Interpreters/InterpreterSystemQuery.cpp index 9196a5222a2..0fc6753b6df 100644 --- a/src/Interpreters/InterpreterSystemQuery.cpp +++ b/src/Interpreters/InterpreterSystemQuery.cpp @@ -312,6 +312,7 @@ BlockIO InterpreterSystemQuery::execute() #endif case Type::DROP_FILESYSTEM_CACHE: { + getContext()->checkAccess(AccessType::SYSTEM_DROP_FILESYSTEM_CACHE); if (query.filesystem_cache_path.empty()) { auto caches = FileCacheFactory::instance().getAll(); diff --git a/tests/queries/0_stateless/02337_drop_filesystem_cache_access.reference b/tests/queries/0_stateless/02337_drop_filesystem_cache_access.reference new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/0_stateless/02337_drop_filesystem_cache_access.sh b/tests/queries/0_stateless/02337_drop_filesystem_cache_access.sh new file mode 100755 index 00000000000..7f2103e6ddb --- /dev/null +++ b/tests/queries/0_stateless/02337_drop_filesystem_cache_access.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# Tags: no-parallel + +CLICKHOUSE_CLIENT_SERVER_LOGS_LEVEL=none + +CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +# shellcheck source=../shell_config.sh +. "$CURDIR"/../shell_config.sh + +${CLICKHOUSE_CLIENT} --multiline --multiquery -q """ +DROP USER IF EXISTS user_test_02337; +CREATE USER user_test_02337 IDENTIFIED WITH plaintext_password BY 'user_test_02337'; +REVOKE ALL ON *.* FROM user_test_02337; +""" +${CLICKHOUSE_CLIENT} --multiline --multiquery --user user_test_02337 --password user_test_02337 -q """ +SYSTEM DROP FILESYSTEM CACHE; -- { serverError 497 } +""" +${CLICKHOUSE_CLIENT} --multiline --multiquery -q """ +GRANT SYSTEM DROP FILESYSTEM CACHE ON *.* TO user_test_02337 WITH GRANT OPTION; +""" +${CLICKHOUSE_CLIENT} --multiline --multiquery --user user_test_02337 --password user_test_02337 -q """ +SYSTEM DROP FILESYSTEM CACHE; +""" From ed8341025b49b31a674a27e58b1837a50bb0ba59 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Wed, 22 Jun 2022 18:31:42 +0200 Subject: [PATCH 123/525] make code less bad --- src/Databases/DatabaseAtomic.cpp | 7 +- src/Databases/DatabaseOnDisk.cpp | 12 ++ src/Databases/DatabaseOrdinary.cpp | 32 ++-- src/Interpreters/DatabaseCatalog.cpp | 97 ++++++++---- src/Interpreters/DatabaseCatalog.h | 30 ++-- src/Interpreters/InterpreterCreateQuery.cpp | 156 ++++++++++--------- src/Storages/System/attachSystemTablesImpl.h | 1 + 7 files changed, 188 insertions(+), 147 deletions(-) diff --git a/src/Databases/DatabaseAtomic.cpp b/src/Databases/DatabaseAtomic.cpp index ea887c84111..a4fa1fa267b 100644 --- a/src/Databases/DatabaseAtomic.cpp +++ b/src/Databases/DatabaseAtomic.cpp @@ -292,7 +292,6 @@ void DatabaseAtomic::commitCreateTable(const ASTCreateQuery & query, const Stora { DetachedTables not_in_use; auto table_data_path = getTableDataPath(query); - bool locked_uuid = false; try { std::unique_lock lock{mutex}; @@ -302,9 +301,7 @@ void DatabaseAtomic::commitCreateTable(const ASTCreateQuery & query, const Stora /// Do some checks before renaming file from .tmp to .sql not_in_use = cleanupDetachedTables(); assertDetachedTableNotInUse(query.uuid); - /// We will get en exception if some table with the same UUID exists (even if it's detached table or table from another database) - DatabaseCatalog::instance().addUUIDMapping(query.uuid); - locked_uuid = true; + chassert(DatabaseCatalog::instance().hasUUIDMapping(query.uuid)); auto txn = query_context->getZooKeeperMetadataTransaction(); if (txn && !query_context->isInternalSubquery()) @@ -321,8 +318,6 @@ void DatabaseAtomic::commitCreateTable(const ASTCreateQuery & query, const Stora catch (...) { fs::remove(table_metadata_tmp_path); - if (locked_uuid) - DatabaseCatalog::instance().removeUUIDMappingFinally(query.uuid); throw; } if (table->storesDataOnDisk()) diff --git a/src/Databases/DatabaseOnDisk.cpp b/src/Databases/DatabaseOnDisk.cpp index 9484da8ec2d..64bc9a4a094 100644 --- a/src/Databases/DatabaseOnDisk.cpp +++ b/src/Databases/DatabaseOnDisk.cpp @@ -395,6 +395,18 @@ void DatabaseOnDisk::renameTable( if (auto * target_db = dynamic_cast(&to_database)) target_db->checkMetadataFilenameAvailability(to_table_name); + /// This place is actually quite dangerous. Since data directory is moved to store/ + /// DatabaseCatalog may try to clean it up as unused. We add UUID mapping to avoid this. + /// However, we may fail after data directory move, but before metadata file creation in the destination db. + /// In this case nothing will protect data directory (except 30-days timeout). + /// But this situation (when table in Ordinary database is partially renamed) require manual intervention anyway. + if (from_ordinary_to_atomic) + { + DatabaseCatalog::instance().addUUIDMapping(create.uuid); + if (table->storesDataOnDisk()) + LOG_INFO(log, "Moving table from {} to {}", table_data_relative_path, to_database.getTableDataPath(create)); + } + /// Notify the table that it is renamed. It will move data to new path (if it stores data on disk) and update StorageID table->rename(to_database.getTableDataPath(create), StorageID(create)); } diff --git a/src/Databases/DatabaseOrdinary.cpp b/src/Databases/DatabaseOrdinary.cpp index e44f5e5e628..0bdabf7ef79 100644 --- a/src/Databases/DatabaseOrdinary.cpp +++ b/src/Databases/DatabaseOrdinary.cpp @@ -176,24 +176,24 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables auto * create_query = ast->as(); create_query->setDatabase(database_name); + /// Even if we don't load the table we can still mark the uuid of it as taken. + if (create_query->uuid != UUIDHelpers::Nil) + { + /// A bit tricky way to distinguish ATTACH DATABASE and server startup (actually it's "force_attach" flag). + if (is_startup) + { + /// Server is starting up. Lock UUID used by permanently detached table. + DatabaseCatalog::instance().addUUIDMapping(create_query->uuid); + } + else if (!DatabaseCatalog::instance().hasUUIDMapping(create_query->uuid)) + { + /// It's ATTACH DATABASE. UUID for permanently detached table must be already locked. + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create_query->uuid); + } + } + if (fs::exists(full_path.string() + detached_suffix)) { - /// Even if we don't load the table we can still mark the uuid of it as taken. - if (create_query->uuid != UUIDHelpers::Nil) - { - /// A bit tricky way to distinguish ATTACH DATABASE and server startup. - if (is_startup) - { - /// Server is starting up. Lock UUID used by permanently detached table. - DatabaseCatalog::instance().addUUIDMapping(create_query->uuid); - } - else if (!DatabaseCatalog::instance().hasUUIDMapping(create_query->uuid)) - { - /// It's ATTACH DATABASE. UUID for permanently detached table must be already locked. - throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create_query->uuid); - } - } - const std::string table_name = unescapeForFileName(file_name.substr(0, file_name.size() - 4)); LOG_DEBUG(log, "Skipping permanently detached table {}.", backQuote(table_name)); return; diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 116cc8aa359..159003138c2 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -79,6 +80,7 @@ TemporaryTableHolder::TemporaryTableHolder(ContextPtr context_, const TemporaryT } auto table_id = StorageID(DatabaseCatalog::TEMPORARY_DATABASE, global_name, id); auto table = creator(table_id); + DatabaseCatalog::instance().addUUIDMapping(id); temporary_tables->createTable(getContext(), global_name, table, original_create); table->startup(); } @@ -207,19 +209,25 @@ void DatabaseCatalog::shutdownImpl() tables_marked_dropped.clear(); std::lock_guard lock(databases_mutex); + for (const auto & db : databases) + { + UUID db_uuid = db.second->getUUID(); + if (db_uuid != UUIDHelpers::Nil) + removeUUIDMapping(db_uuid); + } assert(std::find_if(uuid_map.begin(), uuid_map.end(), [](const auto & elem) { /// Ensure that all UUID mappings are empty (i.e. all mappings contain nullptr instead of a pointer to storage) const auto & not_empty_mapping = [] (const auto & mapping) { + auto & db = mapping.second.first; auto & table = mapping.second.second; - return table; + return db || table; }; auto it = std::find_if(elem.map.begin(), elem.map.end(), not_empty_mapping); return it != elem.map.end(); }) == uuid_map.end()); databases.clear(); - db_uuid_map.clear(); view_dependencies.clear(); } @@ -349,9 +357,10 @@ void DatabaseCatalog::attachDatabase(const String & database_name, const Databas std::lock_guard lock{databases_mutex}; assertDatabaseDoesntExistUnlocked(database_name); databases.emplace(database_name, database); + NOEXCEPT_SCOPE; UUID db_uuid = database->getUUID(); if (db_uuid != UUIDHelpers::Nil) - db_uuid_map.emplace(db_uuid, database); + addUUIDMapping(db_uuid, database, nullptr); } @@ -365,7 +374,9 @@ DatabasePtr DatabaseCatalog::detachDatabase(ContextPtr local_context, const Stri std::lock_guard lock{databases_mutex}; assertDatabaseExistsUnlocked(database_name); db = databases.find(database_name)->second; - db_uuid_map.erase(db->getUUID()); + UUID db_uuid = db->getUUID(); + if (db_uuid != UUIDHelpers::Nil) + removeUUIDMapping(db_uuid); databases.erase(database_name); } @@ -450,21 +461,19 @@ DatabasePtr DatabaseCatalog::tryGetDatabase(const String & database_name) const DatabasePtr DatabaseCatalog::getDatabase(const UUID & uuid) const { - std::lock_guard lock{databases_mutex}; - auto it = db_uuid_map.find(uuid); - if (it == db_uuid_map.end()) + auto db_and_table = tryGetByUUID(uuid); + if (!db_and_table.first || db_and_table.second) throw Exception(ErrorCodes::UNKNOWN_DATABASE, "Database UUID {} does not exist", toString(uuid)); - return it->second; + return db_and_table.first; } DatabasePtr DatabaseCatalog::tryGetDatabase(const UUID & uuid) const { assert(uuid != UUIDHelpers::Nil); - std::lock_guard lock{databases_mutex}; - auto it = db_uuid_map.find(uuid); - if (it == db_uuid_map.end()) + auto db_and_table = tryGetByUUID(uuid); + if (!db_and_table.first || db_and_table.second) return {}; - return it->second; + return db_and_table.first; } bool DatabaseCatalog::isDatabaseExist(const String & database_name) const @@ -519,18 +528,22 @@ void DatabaseCatalog::addUUIDMapping(const UUID & uuid) void DatabaseCatalog::addUUIDMapping(const UUID & uuid, const DatabasePtr & database, const StoragePtr & table) { assert(uuid != UUIDHelpers::Nil && getFirstLevelIdx(uuid) < uuid_map.size()); - assert((database && table) || (!database && !table)); + assert(database || !table); UUIDToStorageMapPart & map_part = uuid_map[getFirstLevelIdx(uuid)]; std::lock_guard lock{map_part.mutex}; auto [it, inserted] = map_part.map.try_emplace(uuid, database, table); if (inserted) + { + /// Mapping must be locked before actually inserting something + chassert((!database && !table)); return; + } auto & prev_database = it->second.first; auto & prev_table = it->second.second; - assert((prev_database && prev_table) || (!prev_database && !prev_table)); + assert(prev_database || !prev_table); - if (!prev_table && table) + if (!prev_database && database) { /// It's empty mapping, it was created to "lock" UUID and prevent collision. Just update it. prev_database = database; @@ -538,8 +551,8 @@ void DatabaseCatalog::addUUIDMapping(const UUID & uuid, const DatabasePtr & data return; } - /// We are trying to replace existing mapping (prev_table != nullptr), it's logical error - if (table) + /// We are trying to replace existing mapping (prev_database != nullptr), it's logical error + if (database || table) throw Exception(ErrorCodes::LOGICAL_ERROR, "Mapping for table with UUID={} already exists", toString(uuid)); /// Normally this should never happen, but it's possible when the same UUIDs are explicitly specified in different CREATE queries, /// so it's not LOGICAL_ERROR @@ -732,6 +745,8 @@ DatabaseAndTable DatabaseCatalog::tryGetDatabaseAndTable(const StorageID & table void DatabaseCatalog::loadMarkedAsDroppedTables() { + assert(!cleanup_task); + /// /clickhouse_root/metadata_dropped/ contains files with metadata of tables, /// which where marked as dropped by Atomic databases. /// Data directories of such tables still exists in store/ @@ -811,6 +826,7 @@ void DatabaseCatalog::enqueueDroppedTableCleanup(StorageID table_id, StoragePtr time_t drop_time; if (table) { + chassert(hasUUIDMapping(table_id.uuid)); drop_time = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); table->is_dropped = true; } @@ -1142,7 +1158,7 @@ void DatabaseCatalog::cleanupStoreDirectoryTask() } /// Order is important - if (!isProtectedUUIDDir(uuid) && !hasUUIDMapping(uuid)) + if (!hasUUIDMapping(uuid)) { /// We load uuids even for detached and permanently detached tables, /// so it looks safe enough to remove directory if we don't have uuid mapping for it. @@ -1219,32 +1235,45 @@ bool DatabaseCatalog::maybeRemoveDirectory(const fs::path & unused_dir) } } -void DatabaseCatalog::addProtectedUUIDDir(const UUID & uuid) +static void maybeUnlockUUID(UUID uuid) { if (uuid == UUIDHelpers::Nil) return; - std::lock_guard lock{protected_uuid_dirs_mutex}; - bool inserted = protected_uuid_dirs.insert(uuid).second; - if (inserted) - return; - throw Exception(ErrorCodes::TABLE_ALREADY_EXISTS, "Mapping for table with UUID={} already exists. It happened due to UUID collision, " - "most likely because some not random UUIDs were manually specified in CREATE queries.", toString(uuid)); + chassert(DatabaseCatalog::instance().hasUUIDMapping(uuid)); + auto db_and_table = DatabaseCatalog::instance().tryGetByUUID(uuid); + if (!db_and_table.first && !db_and_table.second) + { + DatabaseCatalog::instance().removeUUIDMappingFinally(uuid); + return; + } + chassert(db_and_table.first || !db_and_table.second); } -void DatabaseCatalog::removeProtectedUUIDDir(const UUID & uuid) +TemporaryLockForUUIDDirectory::TemporaryLockForUUIDDirectory(UUID uuid_) + : uuid(uuid_) { - if (uuid == UUIDHelpers::Nil) - return; - std::lock_guard lock{protected_uuid_dirs_mutex}; - chassert(protected_uuid_dirs.contains(uuid)); - protected_uuid_dirs.erase(uuid); + if (uuid != UUIDHelpers::Nil) + DatabaseCatalog::instance().addUUIDMapping(uuid); } -bool DatabaseCatalog::isProtectedUUIDDir(const UUID & uuid) +TemporaryLockForUUIDDirectory::~TemporaryLockForUUIDDirectory() { - std::lock_guard lock{protected_uuid_dirs_mutex}; - return protected_uuid_dirs.contains(uuid); + maybeUnlockUUID(uuid); +} + +TemporaryLockForUUIDDirectory::TemporaryLockForUUIDDirectory(TemporaryLockForUUIDDirectory && rhs) noexcept + : uuid(rhs.uuid) +{ + rhs.uuid = UUIDHelpers::Nil; +} + +TemporaryLockForUUIDDirectory & TemporaryLockForUUIDDirectory::operator = (TemporaryLockForUUIDDirectory && rhs) noexcept +{ + maybeUnlockUUID(uuid); + uuid = rhs.uuid; + rhs.uuid = UUIDHelpers::Nil; + return *this; } diff --git a/src/Interpreters/DatabaseCatalog.h b/src/Interpreters/DatabaseCatalog.h index 7dde0643dd9..d82a0594c9a 100644 --- a/src/Interpreters/DatabaseCatalog.h +++ b/src/Interpreters/DatabaseCatalog.h @@ -207,10 +207,6 @@ public: bool hasUUIDMapping(const UUID & uuid); - void addProtectedUUIDDir(const UUID & uuid); - void removeProtectedUUIDDir(const UUID & uuid); - bool isProtectedUUIDDir(const UUID & uuid); - static String getPathForUUID(const UUID & uuid); DatabaseAndTable tryGetByUUID(const UUID & uuid) const; @@ -275,14 +271,11 @@ private: static constexpr size_t reschedule_time_ms = 100; static constexpr time_t drop_error_cooldown_sec = 5; - using UUIDToDatabaseMap = std::unordered_map; - mutable std::mutex databases_mutex; ViewDependencies view_dependencies; Databases databases; - UUIDToDatabaseMap db_uuid_map; UUIDToStorageMap uuid_map; DependenciesInfos loading_dependencies; @@ -305,9 +298,6 @@ private: std::unordered_set tables_marked_dropped_ids; mutable std::mutex tables_marked_dropped_mutex; - std::unordered_set protected_uuid_dirs; - mutable std::mutex protected_uuid_dirs_mutex; - std::unique_ptr drop_task; static constexpr time_t default_drop_delay_sec = 8 * 60; time_t drop_delay_sec = default_drop_delay_sec; @@ -322,13 +312,23 @@ private: time_t unused_dir_cleanup_period_sec = default_unused_dir_cleanup_period_sec; }; - -class UUIDDirectoryProtector : private boost::noncopyable +/// This class is useful when creating a table or database. +/// Usually we create IStorage/IDatabase object first and then add it to IDatabase/DatabaseCatalog. +/// But such object may start using a directory in store/ since its creation. +/// To avoid race with cleanupStoreDirectoryTask() we have to mark UUID as used first. +/// Then we can either add DatabasePtr/StoragePtr to the created UUID mapping +/// or remove the lock if creation failed. +/// See also addUUIDMapping(...) +class TemporaryLockForUUIDDirectory : private boost::noncopyable { - UUID uuid; + UUID uuid = UUIDHelpers::Nil; public: - UUIDDirectoryProtector(UUID uuid_) : uuid(uuid_) { DatabaseCatalog::instance().addProtectedUUIDDir(uuid); } - ~UUIDDirectoryProtector() { DatabaseCatalog::instance().removeProtectedUUIDDir(uuid); } + TemporaryLockForUUIDDirectory() = default; + TemporaryLockForUUIDDirectory(UUID uuid_); + ~TemporaryLockForUUIDDirectory(); + + TemporaryLockForUUIDDirectory(TemporaryLockForUUIDDirectory && rhs) noexcept; + TemporaryLockForUUIDDirectory & operator = (TemporaryLockForUUIDDirectory && rhs) noexcept; }; } diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index 20ebf96e617..00597e0e3cd 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -249,15 +249,22 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) "Enable allow_experimental_database_materialized_postgresql to use it.", ErrorCodes::UNKNOWN_DATABASE_ENGINE); } - UUIDDirectoryProtector uuid_lock{create.uuid}; + bool need_write_metadata = !create.attach || !fs::exists(metadata_file_path); + bool need_lock_uuid = internal || need_write_metadata; + + /// Lock uuid, so we will known it's already in use. + /// We do it when attaching databases on server startup (internal) and on CREATE query (!create.attach); + TemporaryLockForUUIDDirectory uuid_lock; + if (need_lock_uuid) + uuid_lock = TemporaryLockForUUIDDirectory{create.uuid}; + else if (create.uuid != UUIDHelpers::Nil && !DatabaseCatalog::instance().hasUUIDMapping(create.uuid)) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create.uuid); + DatabasePtr database = DatabaseFactory::get(create, metadata_path / "", getContext()); if (create.uuid != UUIDHelpers::Nil) create.setDatabase(TABLE_WITH_UUID_NAME_PLACEHOLDER); - bool need_write_metadata = !create.attach || !fs::exists(metadata_file_path); - bool need_lock_uuid = internal || !create.attach; - if (need_write_metadata) { create.attach = true; @@ -281,13 +288,6 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) /// We attach database before loading it's tables, so do not allow concurrent DDL queries auto db_guard = DatabaseCatalog::instance().getExclusiveDDLGuardForDatabase(database_name); - if (create.uuid != UUIDHelpers::Nil && need_lock_uuid) - { - /// Lock uuid, so we will known it's already in use. - /// We do it when attaching databases on server startup (internal) and on CREATE query (!create.attach); - DatabaseCatalog::instance().addUUIDMapping(create.uuid); - } - bool added = false; bool renamed = false; try @@ -1172,70 +1172,7 @@ BlockIO InterpreterCreateQuery::createTable(ASTCreateQuery & create) bool InterpreterCreateQuery::doCreateTable(ASTCreateQuery & create, const InterpreterCreateQuery::TableProperties & properties) { - std::unique_ptr guard; - - String data_path; - DatabasePtr database; - - bool need_add_to_database = !create.temporary; - if (need_add_to_database) - { - /** If the request specifies IF NOT EXISTS, we allow concurrent CREATE queries (which do nothing). - * If table doesn't exist, one thread is creating table, while others wait in DDLGuard. - */ - guard = DatabaseCatalog::instance().getDDLGuard(create.getDatabase(), create.getTable()); - - database = DatabaseCatalog::instance().getDatabase(create.getDatabase()); - assertOrSetUUID(create, database); - - String storage_name = create.is_dictionary ? "Dictionary" : "Table"; - auto storage_already_exists_error_code = create.is_dictionary ? ErrorCodes::DICTIONARY_ALREADY_EXISTS : ErrorCodes::TABLE_ALREADY_EXISTS; - - /// Table can be created before or it can be created concurrently in another thread, while we were waiting in DDLGuard. - if (database->isTableExist(create.getTable(), getContext())) - { - /// TODO Check structure of table - if (create.if_not_exists) - return false; - else if (create.replace_view) - { - /// when executing CREATE OR REPLACE VIEW, drop current existing view - auto drop_ast = std::make_shared(); - drop_ast->setDatabase(create.getDatabase()); - drop_ast->setTable(create.getTable()); - drop_ast->no_ddl_lock = true; - - auto drop_context = Context::createCopy(context); - InterpreterDropQuery interpreter(drop_ast, drop_context); - interpreter.execute(); - } - else - throw Exception(storage_already_exists_error_code, - "{} {}.{} already exists", storage_name, backQuoteIfNeed(create.getDatabase()), backQuoteIfNeed(create.getTable())); - } - else if (!create.attach) - { - /// Checking that table may exists in detached/detached permanently state - try - { - database->checkMetadataFilenameAvailability(create.getTable()); - } - catch (const Exception &) - { - if (create.if_not_exists) - return false; - throw; - } - } - - - data_path = database->getTableDataPath(create); - - if (!create.attach && !data_path.empty() && fs::exists(fs::path{getContext()->getPath()} / data_path)) - throw Exception(storage_already_exists_error_code, - "Directory for {} data {} already exists", Poco::toLower(storage_name), String(data_path)); - } - else + if (create.temporary) { if (create.if_not_exists && getContext()->tryResolveStorageID({"", create.getTable()}, Context::ResolveExternal)) return false; @@ -1246,6 +1183,65 @@ bool InterpreterCreateQuery::doCreateTable(ASTCreateQuery & create, return true; } + std::unique_ptr guard; + + String data_path; + DatabasePtr database; + + /** If the request specifies IF NOT EXISTS, we allow concurrent CREATE queries (which do nothing). + * If table doesn't exist, one thread is creating table, while others wait in DDLGuard. + */ + guard = DatabaseCatalog::instance().getDDLGuard(create.getDatabase(), create.getTable()); + + database = DatabaseCatalog::instance().getDatabase(create.getDatabase()); + assertOrSetUUID(create, database); + + String storage_name = create.is_dictionary ? "Dictionary" : "Table"; + auto storage_already_exists_error_code = create.is_dictionary ? ErrorCodes::DICTIONARY_ALREADY_EXISTS : ErrorCodes::TABLE_ALREADY_EXISTS; + + /// Table can be created before or it can be created concurrently in another thread, while we were waiting in DDLGuard. + if (database->isTableExist(create.getTable(), getContext())) + { + /// TODO Check structure of table + if (create.if_not_exists) + return false; + else if (create.replace_view) + { + /// when executing CREATE OR REPLACE VIEW, drop current existing view + auto drop_ast = std::make_shared(); + drop_ast->setDatabase(create.getDatabase()); + drop_ast->setTable(create.getTable()); + drop_ast->no_ddl_lock = true; + + auto drop_context = Context::createCopy(context); + InterpreterDropQuery interpreter(drop_ast, drop_context); + interpreter.execute(); + } + else + throw Exception(storage_already_exists_error_code, + "{} {}.{} already exists", storage_name, backQuoteIfNeed(create.getDatabase()), backQuoteIfNeed(create.getTable())); + } + else if (!create.attach) + { + /// Checking that table may exists in detached/detached permanently state + try + { + database->checkMetadataFilenameAvailability(create.getTable()); + } + catch (const Exception &) + { + if (create.if_not_exists) + return false; + throw; + } + } + + data_path = database->getTableDataPath(create); + + if (!create.attach && !data_path.empty() && fs::exists(fs::path{getContext()->getPath()} / data_path)) + throw Exception(storage_already_exists_error_code, + "Directory for {} data {} already exists", Poco::toLower(storage_name), String(data_path)); + bool from_path = create.attach_from_path.has_value(); String actual_data_path = data_path; if (from_path) @@ -1270,7 +1266,15 @@ bool InterpreterCreateQuery::doCreateTable(ASTCreateQuery & create, database->checkDetachedTableNotInUse(create.uuid); } - UUIDDirectoryProtector uuid_lock{create.uuid}; + /// We should lock UUID on CREATE query (because for ATTACH it must be already locked previously). + /// But ATTACH without create.attach_short_syntax flag works like CREATE actually, that's why we check it. + bool need_lock_uuid = !create.attach_short_syntax; + TemporaryLockForUUIDDirectory uuid_lock; + if (need_lock_uuid) + uuid_lock = TemporaryLockForUUIDDirectory{create.uuid}; + else if (create.uuid != UUIDHelpers::Nil && !DatabaseCatalog::instance().hasUUIDMapping(create.uuid)) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create.uuid); + StoragePtr res; /// NOTE: CREATE query may be rewritten by Storage creator or table function if (create.as_table_function) diff --git a/src/Storages/System/attachSystemTablesImpl.h b/src/Storages/System/attachSystemTablesImpl.h index fcc1ab43a64..a1fae985d92 100644 --- a/src/Storages/System/attachSystemTablesImpl.h +++ b/src/Storages/System/attachSystemTablesImpl.h @@ -22,6 +22,7 @@ void attach(ContextPtr context, IDatabase & system_database, const String & tabl /// NOTE: UUIDs are not persistent, but it's ok since no data are stored on disk for these storages /// and path is actually not used auto table_id = StorageID(DatabaseCatalog::SYSTEM_DATABASE, table_name, UUIDHelpers::generateV4()); + DatabaseCatalog::instance().addUUIDMapping(table_id.uuid); String path = "store/" + DatabaseCatalog::getPathForUUID(table_id.uuid); system_database.attachTable(context, table_name, std::make_shared(table_id, std::forward(args)...), path); } From 8138a3a36e138e423333abc650f757cad9d05d0f Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Wed, 22 Jun 2022 17:17:25 +0200 Subject: [PATCH 124/525] Cleanups based on review comments --- src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp | 8 ++++---- src/Storages/MergeTree/MergeTreeBlockReadUtils.h | 4 +++- src/Storages/MergeTree/MergeTreeRangeReader.h | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp index 0d440ea7a8a..31ca533a9ec 100644 --- a/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp +++ b/src/Storages/MergeTree/MergeTreeBaseSelectProcessor.cpp @@ -231,10 +231,10 @@ void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & cu for (size_t i = 0; i < prewhere_actions->steps.size(); ++i) { last_reader = reader->getColumns().empty() && (i + 1 == prewhere_actions->steps.size()); - current_task.pre_range_reader.push_back( + current_task.pre_range_readers.push_back( MergeTreeRangeReader(pre_reader_for_step[i].get(), prev_reader, &prewhere_actions->steps[i], last_reader, non_const_virtual_column_names)); - prev_reader = ¤t_task.pre_range_reader.back(); + prev_reader = ¤t_task.pre_range_readers.back(); } } @@ -246,8 +246,8 @@ void MergeTreeBaseSelectProcessor::initializeRangeReaders(MergeTreeReadTask & cu else { /// If all columns are read by pre_range_readers than move last pre_range_reader into range_reader - current_task.range_reader = std::move(current_task.pre_range_reader.back()); - current_task.pre_range_reader.pop_back(); + current_task.range_reader = std::move(current_task.pre_range_readers.back()); + current_task.pre_range_readers.pop_back(); } } diff --git a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h index 0a9a307fec5..f9f82dbd1f2 100644 --- a/src/Storages/MergeTree/MergeTreeBlockReadUtils.h +++ b/src/Storages/MergeTree/MergeTreeBlockReadUtils.h @@ -61,7 +61,9 @@ struct MergeTreeReadTask MergeTreeBlockSizePredictorPtr size_predictor; /// Used to save current range processing status MergeTreeRangeReader range_reader; - std::deque pre_range_reader; + /// Range readers for multiple filtering steps: row level security, PREWHERE etc. + /// NOTE: we take references to elements and push_back new elements, that's why it is a deque but noit a vector + std::deque pre_range_readers; bool isFinished() const { return mark_ranges.empty() && range_reader.isCurrentRangeFinished(); } diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.h b/src/Storages/MergeTree/MergeTreeRangeReader.h index 667e8175089..b4fb8913122 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.h +++ b/src/Storages/MergeTree/MergeTreeRangeReader.h @@ -209,7 +209,9 @@ public: size_t countBytesInResultFilter(const IColumn::Filter & filter); - bool need_filter = false; /// TODO: what exactly does it mean? + /// If this flag is false than filtering form PREWHERE can be delayed and done in WHERE + /// to reduce memory copies and applying heavy filters multiple times + bool need_filter = false; Block block_before_prewhere; From 0ee47363d4e1e78ca5595f2975c28209e827638f Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Wed, 22 Jun 2022 18:13:46 +0200 Subject: [PATCH 125/525] Fixed includes --- src/Storages/MergeTree/MergeTreeRangeReader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeRangeReader.cpp b/src/Storages/MergeTree/MergeTreeRangeReader.cpp index b6bc3102c06..6e14e9c7aa9 100644 --- a/src/Storages/MergeTree/MergeTreeRangeReader.cpp +++ b/src/Storages/MergeTree/MergeTreeRangeReader.cpp @@ -3,8 +3,8 @@ #include #include #include -#include "IO/WriteBufferFromString.h" -#include "IO/Operators.h" +#include +#include #include #include #include From 52db1b35a10f744839311f18b2927221bc0118d6 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Wed, 22 Jun 2022 16:25:57 +0000 Subject: [PATCH 126/525] improve performace of insertion to columns of type JSON --- src/AggregateFunctions/Helpers.h | 28 --- src/Columns/ColumnObject.cpp | 30 +-- src/Columns/ColumnObject.h | 2 + src/DataTypes/FieldToDataType.cpp | 79 ++++--- src/DataTypes/FieldToDataType.h | 10 +- src/DataTypes/IDataType.h | 27 +++ src/DataTypes/ObjectUtils.cpp | 2 +- .../Serializations/SerializationObject.cpp | 16 +- src/DataTypes/getLeastSupertype.cpp | 201 +++++++++--------- src/DataTypes/getLeastSupertype.h | 29 ++- src/Interpreters/RowRefs.cpp | 1 - src/Storages/MergeTree/KeyCondition.cpp | 2 +- tests/performance/json_type.xml | 17 ++ .../01825_type_json_parallel_insert.reference | 2 +- .../01825_type_json_parallel_insert.sql | 4 +- 15 files changed, 251 insertions(+), 199 deletions(-) create mode 100644 tests/performance/json_type.xml diff --git a/src/AggregateFunctions/Helpers.h b/src/AggregateFunctions/Helpers.h index 77660c54d32..6e140f4b9cf 100644 --- a/src/AggregateFunctions/Helpers.h +++ b/src/AggregateFunctions/Helpers.h @@ -3,34 +3,6 @@ #include #include -#define FOR_BASIC_NUMERIC_TYPES(M) \ - M(UInt8) \ - M(UInt16) \ - M(UInt32) \ - M(UInt64) \ - M(Int8) \ - M(Int16) \ - M(Int32) \ - M(Int64) \ - M(Float32) \ - M(Float64) - -#define FOR_NUMERIC_TYPES(M) \ - M(UInt8) \ - M(UInt16) \ - M(UInt32) \ - M(UInt64) \ - M(UInt128) \ - M(UInt256) \ - M(Int8) \ - M(Int16) \ - M(Int32) \ - M(Int64) \ - M(Int128) \ - M(Int256) \ - M(Float32) \ - M(Float64) - namespace DB { struct Settings; diff --git a/src/Columns/ColumnObject.cpp b/src/Columns/ColumnObject.cpp index d3e68273d03..b52a5aab256 100644 --- a/src/Columns/ColumnObject.cpp +++ b/src/Columns/ColumnObject.cpp @@ -138,7 +138,7 @@ public: type_indexes.insert(TypeToTypeIndex>); } - DataTypePtr getScalarType() const { return getLeastSupertype(type_indexes, true); } + DataTypePtr getScalarType() const { return getLeastSupertypeOrString(type_indexes); } bool haveNulls() const { return have_nulls; } bool needConvertField() const { return field_types.size() > 1; } @@ -167,6 +167,7 @@ FieldInfo getFieldInfo(const Field & field) ColumnObject::Subcolumn::Subcolumn(MutableColumnPtr && data_, bool is_nullable_) : least_common_type(getDataTypeByColumn(*data_)) , is_nullable(is_nullable_) + , num_rows(data_->size()) { data.push_back(std::move(data_)); } @@ -176,15 +177,13 @@ ColumnObject::Subcolumn::Subcolumn( : least_common_type(std::make_shared()) , is_nullable(is_nullable_) , num_of_defaults_in_prefix(size_) + , num_rows(size_) { } size_t ColumnObject::Subcolumn::size() const { - size_t res = num_of_defaults_in_prefix; - for (const auto & part : data) - res += part->size(); - return res; + return num_rows; } size_t ColumnObject::Subcolumn::byteSize() const @@ -321,7 +320,7 @@ void ColumnObject::Subcolumn::insert(Field field, FieldInfo info) { if (isConversionRequiredBetweenIntegers(*base_type, *least_common_base_type)) { - base_type = getLeastSupertype(DataTypes{std::move(base_type), least_common_base_type}, true); + base_type = getLeastSupertypeOrString(DataTypes{std::move(base_type), least_common_base_type}); type_changed = true; if (!least_common_base_type->equals(*base_type)) addNewColumnPart(createArrayOfType(std::move(base_type), value_dim)); @@ -332,12 +331,14 @@ void ColumnObject::Subcolumn::insert(Field field, FieldInfo info) field = convertFieldToTypeOrThrow(field, *least_common_type.get()); data.back()->insert(field); + ++num_rows; } void ColumnObject::Subcolumn::insertRangeFrom(const Subcolumn & src, size_t start, size_t length) { assert(start + length <= src.size()); size_t end = start + length; + num_rows += length; if (data.empty()) { @@ -345,7 +346,7 @@ void ColumnObject::Subcolumn::insertRangeFrom(const Subcolumn & src, size_t star } else if (!least_common_type.get()->equals(*src.getLeastCommonType())) { - auto new_least_common_type = getLeastSupertype(DataTypes{least_common_type.get(), src.getLeastCommonType()}, true); + auto new_least_common_type = getLeastSupertypeOrString(DataTypes{least_common_type.get(), src.getLeastCommonType()}); if (!new_least_common_type->equals(*least_common_type.get())) addNewColumnPart(std::move(new_least_common_type)); } @@ -487,6 +488,8 @@ void ColumnObject::Subcolumn::insertDefault() ++num_of_defaults_in_prefix; else data.back()->insertDefault(); + + ++num_rows; } void ColumnObject::Subcolumn::insertManyDefaults(size_t length) @@ -495,12 +498,15 @@ void ColumnObject::Subcolumn::insertManyDefaults(size_t length) num_of_defaults_in_prefix += length; else data.back()->insertManyDefaults(length); + + num_rows += length; } void ColumnObject::Subcolumn::popBack(size_t n) { assert(n <= size()); + num_rows -= n; size_t num_removed = 0; for (auto it = data.rbegin(); it != data.rend(); ++it) { @@ -559,15 +565,11 @@ ColumnObject::Subcolumn ColumnObject::Subcolumn::recreateWithDefaultValues(const if (is_nullable) scalar_type = makeNullable(scalar_type); - Subcolumn new_subcolumn; + Subcolumn new_subcolumn(*this); new_subcolumn.least_common_type = LeastCommonType{createArrayOfType(scalar_type, field_info.num_dimensions)}; - new_subcolumn.is_nullable = is_nullable; - new_subcolumn.num_of_defaults_in_prefix = num_of_defaults_in_prefix; - new_subcolumn.data.reserve(data.size()); - for (const auto & part : data) - new_subcolumn.data.push_back(recreateColumnWithDefaultValues( - part, scalar_type, field_info.num_dimensions)); + for (auto & part : new_subcolumn.data) + part = recreateColumnWithDefaultValues(part, scalar_type, field_info.num_dimensions); return new_subcolumn; } diff --git a/src/Columns/ColumnObject.h b/src/Columns/ColumnObject.h index 89e42183ea0..4dc5bb5ce24 100644 --- a/src/Columns/ColumnObject.h +++ b/src/Columns/ColumnObject.h @@ -146,6 +146,8 @@ public: /// least common type and we count number of defaults in prefix, /// which will be converted to the default type of final common type. size_t num_of_defaults_in_prefix = 0; + + size_t num_rows = 0; }; using Subcolumns = SubcolumnsTree; diff --git a/src/DataTypes/FieldToDataType.cpp b/src/DataTypes/FieldToDataType.cpp index 283d1b1e41a..00b4665af94 100644 --- a/src/DataTypes/FieldToDataType.cpp +++ b/src/DataTypes/FieldToDataType.cpp @@ -22,13 +22,14 @@ namespace ErrorCodes extern const int EMPTY_DATA_PASSED; } - -DataTypePtr FieldToDataType::operator() (const Null &) const +template +DataTypePtr FieldToDataType::operator() (const Null &) const { return std::make_shared(std::make_shared()); } -DataTypePtr FieldToDataType::operator() (const UInt64 & x) const +template +DataTypePtr FieldToDataType::operator() (const UInt64 & x) const { if (x <= std::numeric_limits::max()) return std::make_shared(); if (x <= std::numeric_limits::max()) return std::make_shared(); @@ -36,7 +37,8 @@ DataTypePtr FieldToDataType::operator() (const UInt64 & x) const return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const Int64 & x) const +template +DataTypePtr FieldToDataType::operator() (const Int64 & x) const { if (x <= std::numeric_limits::max() && x >= std::numeric_limits::min()) return std::make_shared(); if (x <= std::numeric_limits::max() && x >= std::numeric_limits::min()) return std::make_shared(); @@ -44,77 +46,90 @@ DataTypePtr FieldToDataType::operator() (const Int64 & x) const return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const Float64 &) const +template +DataTypePtr FieldToDataType::operator() (const Float64 &) const { return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const UInt128 &) const +template +DataTypePtr FieldToDataType::operator() (const UInt128 &) const { return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const Int128 &) const +template +DataTypePtr FieldToDataType::operator() (const Int128 &) const { return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const UInt256 &) const +template +DataTypePtr FieldToDataType::operator() (const UInt256 &) const { return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const Int256 &) const +template +DataTypePtr FieldToDataType::operator() (const Int256 &) const { return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const UUID &) const +template +DataTypePtr FieldToDataType::operator() (const UUID &) const { return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const String &) const +template +DataTypePtr FieldToDataType::operator() (const String &) const { return std::make_shared(); } -DataTypePtr FieldToDataType::operator() (const DecimalField & x) const +template +DataTypePtr FieldToDataType::operator() (const DecimalField & x) const { using Type = DataTypeDecimal; return std::make_shared(Type::maxPrecision(), x.getScale()); } -DataTypePtr FieldToDataType::operator() (const DecimalField & x) const +template +DataTypePtr FieldToDataType::operator() (const DecimalField & x) const { using Type = DataTypeDecimal; return std::make_shared(Type::maxPrecision(), x.getScale()); } -DataTypePtr FieldToDataType::operator() (const DecimalField & x) const +template +DataTypePtr FieldToDataType::operator() (const DecimalField & x) const { using Type = DataTypeDecimal; return std::make_shared(Type::maxPrecision(), x.getScale()); } -DataTypePtr FieldToDataType::operator() (const DecimalField & x) const +template +DataTypePtr FieldToDataType::operator() (const DecimalField & x) const { using Type = DataTypeDecimal; return std::make_shared(Type::maxPrecision(), x.getScale()); } -DataTypePtr FieldToDataType::operator() (const Array & x) const +template +DataTypePtr FieldToDataType::operator() (const Array & x) const { DataTypes element_types; element_types.reserve(x.size()); for (const Field & elem : x) - element_types.emplace_back(applyVisitor(FieldToDataType(allow_convertion_to_string), elem)); + element_types.emplace_back(applyVisitor(*this, elem)); - return std::make_shared(getLeastSupertype(element_types, allow_convertion_to_string)); + return std::make_shared(getLeastSupertype(element_types)); } -DataTypePtr FieldToDataType::operator() (const Tuple & tuple) const +template +DataTypePtr FieldToDataType::operator() (const Tuple & tuple) const { if (tuple.empty()) throw Exception("Cannot infer type of an empty tuple", ErrorCodes::EMPTY_DATA_PASSED); @@ -123,12 +138,13 @@ DataTypePtr FieldToDataType::operator() (const Tuple & tuple) const element_types.reserve(tuple.size()); for (const auto & element : tuple) - element_types.push_back(applyVisitor(FieldToDataType(allow_convertion_to_string), element)); + element_types.push_back(applyVisitor(*this, element)); return std::make_shared(element_types); } -DataTypePtr FieldToDataType::operator() (const Map & map) const +template +DataTypePtr FieldToDataType::operator() (const Map & map) const { DataTypes key_types; DataTypes value_types; @@ -139,30 +155,37 @@ DataTypePtr FieldToDataType::operator() (const Map & map) const { const auto & tuple = elem.safeGet(); assert(tuple.size() == 2); - key_types.push_back(applyVisitor(FieldToDataType(allow_convertion_to_string), tuple[0])); - value_types.push_back(applyVisitor(FieldToDataType(allow_convertion_to_string), tuple[1])); + key_types.push_back(applyVisitor(*this, tuple[0])); + value_types.push_back(applyVisitor(*this, tuple[1])); } return std::make_shared( - getLeastSupertype(key_types, allow_convertion_to_string), - getLeastSupertype(value_types, allow_convertion_to_string)); + getLeastSupertype(key_types), + getLeastSupertype(value_types)); } -DataTypePtr FieldToDataType::operator() (const Object &) const +template +DataTypePtr FieldToDataType::operator() (const Object &) const { /// TODO: Do we need different parameters for type Object? return std::make_shared("json", false); } -DataTypePtr FieldToDataType::operator() (const AggregateFunctionStateData & x) const +template +DataTypePtr FieldToDataType::operator() (const AggregateFunctionStateData & x) const { const auto & name = static_cast(x).name; return DataTypeFactory::instance().get(name); } -DataTypePtr FieldToDataType::operator()(const bool &) const +template +DataTypePtr FieldToDataType::operator()(const bool &) const { return DataTypeFactory::instance().get("Bool"); } +template class FieldToDataType; +template class FieldToDataType; +template class FieldToDataType; + } diff --git a/src/DataTypes/FieldToDataType.h b/src/DataTypes/FieldToDataType.h index 1922ac8b746..5e66fe420ad 100644 --- a/src/DataTypes/FieldToDataType.h +++ b/src/DataTypes/FieldToDataType.h @@ -4,6 +4,7 @@ #include #include #include +#include namespace DB @@ -17,14 +18,10 @@ using DataTypePtr = std::shared_ptr; * Note that you still have to convert Field to corresponding data type before inserting to columns * (for example, this is necessary to convert elements of Array to common type). */ +template class FieldToDataType : public StaticVisitor { public: - FieldToDataType(bool allow_convertion_to_string_ = false) - : allow_convertion_to_string(allow_convertion_to_string_) - { - } - DataTypePtr operator() (const Null & x) const; DataTypePtr operator() (const UInt64 & x) const; DataTypePtr operator() (const UInt128 & x) const; @@ -45,9 +42,6 @@ public: DataTypePtr operator() (const UInt256 & x) const; DataTypePtr operator() (const Int256 & x) const; DataTypePtr operator() (const bool & x) const; - -private: - bool allow_convertion_to_string; }; } diff --git a/src/DataTypes/IDataType.h b/src/DataTypes/IDataType.h index 420ef61a13f..fce8906abe5 100644 --- a/src/DataTypes/IDataType.h +++ b/src/DataTypes/IDataType.h @@ -565,4 +565,31 @@ class DataTypeEnum; template inline constexpr bool IsDataTypeEnum> = true; +#define FOR_BASIC_NUMERIC_TYPES(M) \ + M(UInt8) \ + M(UInt16) \ + M(UInt32) \ + M(UInt64) \ + M(Int8) \ + M(Int16) \ + M(Int32) \ + M(Int64) \ + M(Float32) \ + M(Float64) + +#define FOR_NUMERIC_TYPES(M) \ + M(UInt8) \ + M(UInt16) \ + M(UInt32) \ + M(UInt64) \ + M(UInt128) \ + M(UInt256) \ + M(Int8) \ + M(Int16) \ + M(Int32) \ + M(Int64) \ + M(Int128) \ + M(Int256) \ + M(Float32) \ + M(Float64) } diff --git a/src/DataTypes/ObjectUtils.cpp b/src/DataTypes/ObjectUtils.cpp index df639ae7aab..b81c8c7a033 100644 --- a/src/DataTypes/ObjectUtils.cpp +++ b/src/DataTypes/ObjectUtils.cpp @@ -261,7 +261,7 @@ DataTypePtr getLeastCommonTypeForObject(const DataTypes & types, bool check_ambi key.getPath(), subtypes[0]->getName(), subtypes[i]->getName()); tuple_paths.emplace_back(key); - tuple_types.emplace_back(getLeastSupertype(subtypes, /*allow_conversion_to_string=*/ true)); + tuple_types.emplace_back(getLeastSupertypeOrString(subtypes)); } if (tuple_paths.empty()) diff --git a/src/DataTypes/Serializations/SerializationObject.cpp b/src/DataTypes/Serializations/SerializationObject.cpp index 85831df271a..cf49fa8798d 100644 --- a/src/DataTypes/Serializations/SerializationObject.cpp +++ b/src/DataTypes/Serializations/SerializationObject.cpp @@ -61,29 +61,23 @@ void SerializationObject::deserializeTextImpl(IColumn & column, Reader & auto & [paths, values] = *result; assert(paths.size() == values.size()); - HashSet paths_set; - size_t column_size = column_object.size(); - + size_t old_column_size = column_object.size(); for (size_t i = 0; i < paths.size(); ++i) { auto field_info = getFieldInfo(values[i]); if (isNothing(field_info.scalar_type)) continue; - if (!paths_set.insert(paths[i].getPath()).second) - throw Exception(ErrorCodes::INCORRECT_DATA, - "Object has ambiguous path: {}", paths[i].getPath()); - if (!column_object.hasSubcolumn(paths[i])) { if (paths[i].hasNested()) - column_object.addNestedSubcolumn(paths[i], field_info, column_size); + column_object.addNestedSubcolumn(paths[i], field_info, old_column_size); else - column_object.addSubcolumn(paths[i], column_size); + column_object.addSubcolumn(paths[i], old_column_size); } auto & subcolumn = column_object.getSubcolumn(paths[i]); - assert(subcolumn.size() == column_size); + assert(subcolumn.size() == old_column_size); subcolumn.insert(std::move(values[i]), std::move(field_info)); } @@ -92,7 +86,7 @@ void SerializationObject::deserializeTextImpl(IColumn & column, Reader & const auto & subcolumns = column_object.getSubcolumns(); for (const auto & entry : subcolumns) { - if (!paths_set.has(entry->path.getPath())) + if (entry->data.size() == old_column_size) { bool inserted = column_object.tryInsertDefaultFromNested(entry); if (!inserted) diff --git a/src/DataTypes/getLeastSupertype.cpp b/src/DataTypes/getLeastSupertype.cpp index 14cfafb1ef3..8c6dba5a339 100644 --- a/src/DataTypes/getLeastSupertype.cpp +++ b/src/DataTypes/getLeastSupertype.cpp @@ -55,16 +55,24 @@ String getExceptionMessagePrefix(const DataTypes & types) return res.str(); } -DataTypePtr getNumericType(const TypeIndexSet & types, bool allow_conversion_to_string) +template +DataTypePtr throwOrReturn(const DataTypes & types, std::string_view message_suffix, int error_code) { - auto throw_or_return = [&](std::string_view message, int error_code) - { - if (allow_conversion_to_string) - return std::make_shared(); + if constexpr (on_error == LeastSupertypeOnError::String) + return std::make_shared(); - throw Exception(String(message), error_code); - }; + if constexpr (on_error == LeastSupertypeOnError::Null) + return nullptr; + if (message_suffix.empty()) + throw Exception(error_code, getExceptionMessagePrefix(types)); + + throw Exception(error_code, "{} {}", getExceptionMessagePrefix(types), message_suffix); +} + +template +DataTypePtr getNumericType(const TypeIndexSet & types) +{ bool all_numbers = true; size_t max_bits_of_signed_integer = 0; @@ -107,14 +115,14 @@ DataTypePtr getNumericType(const TypeIndexSet & types, bool allow_conversion_to_ maximize(max_mantissa_bits_of_floating, 24); else if (type == TypeIndex::Float64) maximize(max_mantissa_bits_of_floating, 53); - else + else if (type != TypeIndex::Nothing) all_numbers = false; } if (max_bits_of_signed_integer || max_bits_of_unsigned_integer || max_mantissa_bits_of_floating) { if (!all_numbers) - return throw_or_return(getExceptionMessagePrefix(types) + " because some of them are numbers and some of them are not", ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "because some of them are numbers and some of them are not", ErrorCodes::NO_COMMON_TYPE); /// If there are signed and unsigned types of same bit-width, the result must be signed number with at least one more bit. /// Example, common of Int32, UInt32 = Int64. @@ -129,10 +137,9 @@ DataTypePtr getNumericType(const TypeIndexSet & types, bool allow_conversion_to_ if (min_bit_width_of_integer != 64) ++min_bit_width_of_integer; else - return throw_or_return( - getExceptionMessagePrefix(types) - + " because some of them are signed integers and some are unsigned integers," - " but there is no signed integer type, that can exactly represent all required unsigned integer values", + return throwOrReturn(types, + "because some of them are signed integers and some are unsigned integers," + " but there is no signed integer type, that can exactly represent all required unsigned integer values", ErrorCodes::NO_COMMON_TYPE); } @@ -145,8 +152,8 @@ DataTypePtr getNumericType(const TypeIndexSet & types, bool allow_conversion_to_ else if (min_mantissa_bits <= 53) return std::make_shared(); else - return throw_or_return(getExceptionMessagePrefix(types) - + " because some of them are integers and some are floating point," + return throwOrReturn(types, + " because some of them are integers and some are floating point," " but there is no floating point type, that can exactly represent all required integers", ErrorCodes::NO_COMMON_TYPE); } @@ -166,8 +173,8 @@ DataTypePtr getNumericType(const TypeIndexSet & types, bool allow_conversion_to_ else if (min_bit_width_of_integer <= 256) return std::make_shared(); else - return throw_or_return(getExceptionMessagePrefix(types) - + " because some of them are signed integers and some are unsigned integers," + throwOrReturn(types, + " because some of them are signed integers and some are unsigned integers," " but there is no signed integer type, that can exactly represent all required unsigned integer values", ErrorCodes::NO_COMMON_TYPE); } @@ -186,9 +193,8 @@ DataTypePtr getNumericType(const TypeIndexSet & types, bool allow_conversion_to_ else if (min_bit_width_of_integer <= 256) return std::make_shared(); else - return throw_or_return("Logical error: " + getExceptionMessagePrefix(types) - + " but as all data types are unsigned integers, we must have found maximum unsigned integer type", ErrorCodes::NO_COMMON_TYPE); - + throwOrReturn(types, + " but as all data types are unsigned integers, we must have found maximum unsigned integer type", ErrorCodes::NO_COMMON_TYPE); } } @@ -197,16 +203,9 @@ DataTypePtr getNumericType(const TypeIndexSet & types, bool allow_conversion_to_ } -DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_string) +template +DataTypePtr getLeastSupertype(const DataTypes & types) { - auto throw_or_return = [&](std::string_view message, int error_code) - { - if (allow_conversion_to_string) - return std::make_shared(); - - throw Exception(String(message), error_code); - }; - /// Trivial cases if (types.empty()) @@ -243,7 +242,7 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ non_nothing_types.emplace_back(type); if (non_nothing_types.size() < types.size()) - return getLeastSupertype(non_nothing_types, allow_conversion_to_string); + return getLeastSupertype(non_nothing_types); } /// For Arrays @@ -268,9 +267,9 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ if (have_array) { if (!all_arrays) - return throw_or_return(getExceptionMessagePrefix(types) + " because some of them are Array and some of them are not", ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "because some of them are Array and some of them are not", ErrorCodes::NO_COMMON_TYPE); - return std::make_shared(getLeastSupertype(nested_types, allow_conversion_to_string)); + return std::make_shared(getLeastSupertype(nested_types)); } } @@ -294,7 +293,7 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ nested_types[elem_idx].reserve(types.size()); } else if (tuple_size != type_tuple->getElements().size()) - return throw_or_return(getExceptionMessagePrefix(types) + " because Tuples have different sizes", ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "because Tuples have different sizes", ErrorCodes::NO_COMMON_TYPE); have_tuple = true; @@ -308,11 +307,11 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ if (have_tuple) { if (!all_tuples) - return throw_or_return(getExceptionMessagePrefix(types) + " because some of them are Tuple and some of them are not", ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "because some of them are Tuple and some of them are not", ErrorCodes::NO_COMMON_TYPE); DataTypes common_tuple_types(tuple_size); for (size_t elem_idx = 0; elem_idx < tuple_size; ++elem_idx) - common_tuple_types[elem_idx] = getLeastSupertype(nested_types[elem_idx], allow_conversion_to_string); + common_tuple_types[elem_idx] = getLeastSupertype(nested_types[elem_idx]); return std::make_shared(common_tuple_types); } @@ -342,11 +341,11 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ if (have_maps) { if (!all_maps) - return throw_or_return(getExceptionMessagePrefix(types) + " because some of them are Maps and some of them are not", ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "because some of them are Maps and some of them are not", ErrorCodes::NO_COMMON_TYPE); return std::make_shared( - getLeastSupertype(key_types, allow_conversion_to_string), - getLeastSupertype(value_types, allow_conversion_to_string)); + getLeastSupertype(key_types), + getLeastSupertype(value_types)); } } @@ -377,9 +376,9 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ if (have_low_cardinality) { if (have_not_low_cardinality) - return getLeastSupertype(nested_types, allow_conversion_to_string); + return getLeastSupertype(nested_types); else - return std::make_shared(getLeastSupertype(nested_types, allow_conversion_to_string)); + return std::make_shared(getLeastSupertype(nested_types)); } } @@ -405,7 +404,7 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ if (have_nullable) { - return std::make_shared(getLeastSupertype(nested_types, allow_conversion_to_string)); + return std::make_shared(getLeastSupertype(nested_types)); } } @@ -425,7 +424,7 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ { bool all_strings = type_ids.size() == (have_string + have_fixed_string); if (!all_strings) - return throw_or_return(getExceptionMessagePrefix(types) + " because some of them are String/FixedString and some of them are not", ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "because some of them are String/FixedString and some of them are not", ErrorCodes::NO_COMMON_TYPE); return std::make_shared(); } @@ -442,8 +441,8 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ { bool all_date_or_datetime = type_ids.size() == (have_date + have_date32 + have_datetime + have_datetime64); if (!all_date_or_datetime) - return throw_or_return(getExceptionMessagePrefix(types) - + " because some of them are Date/Date32/DateTime/DateTime64 and some of them are not", + return throwOrReturn(types, + "because some of them are Date/Date32/DateTime/DateTime64 and some of them are not", ErrorCodes::NO_COMMON_TYPE); if (have_datetime64 == 0 && have_date32 == 0) @@ -520,8 +519,7 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ } if (num_supported != type_ids.size()) - return throw_or_return(getExceptionMessagePrefix(types) + " because some of them have no lossless conversion to Decimal", - ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "because some of them have no lossless conversion to Decimal", ErrorCodes::NO_COMMON_TYPE); UInt32 max_scale = 0; for (const auto & type : types) @@ -543,7 +541,7 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ } if (min_precision > DataTypeDecimal::maxPrecision()) - return throw_or_return(getExceptionMessagePrefix(types) + " because the least supertype is Decimal(" + return throwOrReturn(types, "because the least supertype is Decimal(" + toString(min_precision) + ',' + toString(max_scale) + ')', ErrorCodes::NO_COMMON_TYPE); @@ -557,68 +555,77 @@ DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_ /// For numeric types, the most complicated part. { - auto numeric_type = getNumericType(type_ids, allow_conversion_to_string); + auto numeric_type = getNumericType(type_ids); if (numeric_type) return numeric_type; } /// All other data types (UUID, AggregateFunction, Enum...) are compatible only if they are the same (checked in trivial cases). - return throw_or_return(getExceptionMessagePrefix(types), ErrorCodes::NO_COMMON_TYPE); + return throwOrReturn(types, "", ErrorCodes::NO_COMMON_TYPE); } -DataTypePtr getLeastSupertype(const TypeIndexSet & types, bool allow_conversion_to_string) +DataTypePtr getLeastSupertypeOrString(const DataTypes & types) { - auto throw_or_return = [&](std::string_view message, int error_code) - { - if (allow_conversion_to_string) - return std::make_shared(); - - throw Exception(String(message), error_code); - }; - - TypeIndexSet types_set; - for (const auto & type : types) - { - if (WhichDataType(type).isNothing()) - continue; - - if (!WhichDataType(type).isSimple()) - throw Exception(ErrorCodes::NO_COMMON_TYPE, - "Cannot get common type by type ids with parametric type {}", typeToString(type)); - - types_set.insert(type); - } - - if (types_set.empty()) - return std::make_shared(); - - if (types.contains(TypeIndex::String)) - { - if (types.size() != 1) - return throw_or_return(getExceptionMessagePrefix(types) + " because some of them are String and some of them are not", ErrorCodes::NO_COMMON_TYPE); - - return std::make_shared(); - } - - /// For numeric types, the most complicated part. - auto numeric_type = getNumericType(types, allow_conversion_to_string); - if (numeric_type) - return numeric_type; - - /// All other data types (UUID, AggregateFunction, Enum...) are compatible only if they are the same (checked in trivial cases). - return throw_or_return(getExceptionMessagePrefix(types), ErrorCodes::NO_COMMON_TYPE); + return getLeastSupertype(types); } DataTypePtr tryGetLeastSupertype(const DataTypes & types) { - try - { - return getLeastSupertype(types); - } - catch (...) - { - return nullptr; - } + return getLeastSupertype(types); } +template +DataTypePtr getLeastSupertype(const TypeIndexSet & types) +{ + if (types.empty()) + return std::make_shared(); + + if (types.size() == 1) + { + WhichDataType which(*types.begin()); + if (which.isNothing()) + return std::make_shared(); + + #define DISPATCH(TYPE) \ + if (which.idx == TypeIndex::TYPE) \ + return std::make_shared>(); + + FOR_NUMERIC_TYPES(DISPATCH) + #undef DISPATCH + + if (which.isString()) + return std::make_shared(); + + throwOrReturn(types, "because cannot get common type by type indexes with non-simple types", ErrorCodes::NO_COMMON_TYPE); + } + + if (types.contains(TypeIndex::String)) + { + bool only_string = types.size() == 2 && types.contains(TypeIndex::Nothing); + if (!only_string) + return throwOrReturn(types, "because some of them are String and some of them are not", ErrorCodes::NO_COMMON_TYPE); + + return std::make_shared(); + } + + auto numeric_type = getNumericType(types); + if (numeric_type) + return numeric_type; + + return throwOrReturn(types, "", ErrorCodes::NO_COMMON_TYPE); +} + +DataTypePtr getLeastSupertypeOrString(const TypeIndexSet & types) +{ + return getLeastSupertype(types); +} + +DataTypePtr tryGetLeastSupertype(const TypeIndexSet & types) +{ + return getLeastSupertype(types); +} + +template DataTypePtr getLeastSupertype(const DataTypes & types); +template DataTypePtr getLeastSupertype(const TypeIndexSet & types); + } diff --git a/src/DataTypes/getLeastSupertype.h b/src/DataTypes/getLeastSupertype.h index 5444bb34d06..2ef4a0e6850 100644 --- a/src/DataTypes/getLeastSupertype.h +++ b/src/DataTypes/getLeastSupertype.h @@ -1,24 +1,39 @@ #pragma once - #include - namespace DB { +enum class LeastSupertypeOnError +{ + Throw, + String, + Null, +}; + /** Get data type that covers all possible values of passed data types. - * If there is no such data type, throws an exception - * or if 'allow_conversion_to_string' is true returns String as common type. + * If there is no such data type, throws an exception. * * Examples: least common supertype for UInt8, Int8 - Int16. * Examples: there is no least common supertype for Array(UInt8), Int8. */ -DataTypePtr getLeastSupertype(const DataTypes & types, bool allow_conversion_to_string = false); +template +DataTypePtr getLeastSupertype(const DataTypes & types); -using TypeIndexSet = std::unordered_set; -DataTypePtr getLeastSupertype(const TypeIndexSet & types, bool allow_conversion_to_string = false); +/// Same as above but return String type instead of throwing exception. +/// All types can be casted to String, because they can be serialized to String. +DataTypePtr getLeastSupertypeOrString(const DataTypes & types); /// Same as above but return nullptr instead of throwing exception. DataTypePtr tryGetLeastSupertype(const DataTypes & types); +using TypeIndexSet = std::unordered_set; + +template +DataTypePtr getLeastSupertype(const TypeIndexSet & types); + +DataTypePtr getLeastSupertypeOrString(const TypeIndexSet & types); + +DataTypePtr tryGetLeastSupertype(const TypeIndexSet & types); + } diff --git a/src/Interpreters/RowRefs.cpp b/src/Interpreters/RowRefs.cpp index 97feed54c08..2a18c2c700a 100644 --- a/src/Interpreters/RowRefs.cpp +++ b/src/Interpreters/RowRefs.cpp @@ -1,7 +1,6 @@ #include #include -#include #include #include #include diff --git a/src/Storages/MergeTree/KeyCondition.cpp b/src/Storages/MergeTree/KeyCondition.cpp index f6baae723c9..40f23fe5294 100644 --- a/src/Storages/MergeTree/KeyCondition.cpp +++ b/src/Storages/MergeTree/KeyCondition.cpp @@ -1300,7 +1300,7 @@ bool KeyCondition::tryParseAtomFromAST(const ASTPtr & node, ContextPtr context, } else { - DataTypePtr common_type = tryGetLeastSupertype({key_expr_type_not_null, const_type}); + DataTypePtr common_type = tryGetLeastSupertype(DataTypes{key_expr_type_not_null, const_type}); if (!common_type) return false; diff --git a/tests/performance/json_type.xml b/tests/performance/json_type.xml new file mode 100644 index 00000000000..29e52f1e53f --- /dev/null +++ b/tests/performance/json_type.xml @@ -0,0 +1,17 @@ + + + 1 + + + CREATE TABLE t_json_1(data JSON) ENGINE = MergeTree ORDER BY tuple() + CREATE TABLE t_json_2(data JSON) ENGINE = MergeTree ORDER BY tuple() + CREATE TABLE t_json_3(data JSON) ENGINE = MergeTree ORDER BY tuple() + + INSERT INTO t_json_1 SELECT materialize('{"k1":1, "k2": "some"}') FROM numbers(200000) + INSERT INTO t_json_2 SELECT '{"col' || toString(number % 100) || '":' || toString(number) || '}' FROM numbers(100000) + INSERT INTO t_json_3 SELECT materialize('{"k1":[{"k2":"aaa","k3":[{"k4":"bbb"},{"k4":"ccc"}]},{"k2":"ddd","k3":[{"k4":"eee"},{"k4":"fff"}]}]}') FROM numbers_mt(100000) + + DROP TABLE IF EXISTS t_json_1 + DROP TABLE IF EXISTS t_json_2 + DROP TABLE IF EXISTS t_json_3 + diff --git a/tests/queries/0_stateless/01825_type_json_parallel_insert.reference b/tests/queries/0_stateless/01825_type_json_parallel_insert.reference index ac512064a43..158d61d46f7 100644 --- a/tests/queries/0_stateless/01825_type_json_parallel_insert.reference +++ b/tests/queries/0_stateless/01825_type_json_parallel_insert.reference @@ -1 +1 @@ -Tuple(k1 Int8, k2 String) 3000000 +Tuple(k1 Int8, k2 String) 500000 diff --git a/tests/queries/0_stateless/01825_type_json_parallel_insert.sql b/tests/queries/0_stateless/01825_type_json_parallel_insert.sql index 93d1eecfbd7..e443c9455d5 100644 --- a/tests/queries/0_stateless/01825_type_json_parallel_insert.sql +++ b/tests/queries/0_stateless/01825_type_json_parallel_insert.sql @@ -1,10 +1,10 @@ -- Tags: long, no-backward-compatibility-check:22.3.2.1 DROP TABLE IF EXISTS t_json_parallel; -SET allow_experimental_object_type = 1, max_insert_threads = 20, max_threads = 20; +SET allow_experimental_object_type = 1, max_insert_threads = 20, max_threads = 20, min_insert_block_size_rows = 65536; CREATE TABLE t_json_parallel (data JSON) ENGINE = MergeTree ORDER BY tuple(); -INSERT INTO t_json_parallel SELECT materialize('{"k1":1, "k2": "some"}') FROM numbers_mt(3000000); +INSERT INTO t_json_parallel SELECT materialize('{"k1":1, "k2": "some"}') FROM numbers_mt(500000); SELECT any(toTypeName(data)), count() FROM t_json_parallel; DROP TABLE t_json_parallel; From d8fd490fe98732df94feed28adbfe4bae9fef662 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Wed, 22 Jun 2022 20:32:47 +0200 Subject: [PATCH 127/525] Update test reference --- tests/queries/0_stateless/01318_encrypt.reference | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/01318_encrypt.reference b/tests/queries/0_stateless/01318_encrypt.reference index b3b5fc9167a..536315a97ec 100644 --- a/tests/queries/0_stateless/01318_encrypt.reference +++ b/tests/queries/0_stateless/01318_encrypt.reference @@ -36,7 +36,7 @@ aes-192-cbc C6390AAB7AB3B7E6A15E8CA4907AE2B5B0D767B30B0BFFF87D76FF025C384669E1DB aes-256-cbc 8C0F6D5F2B0E751EC2033C5CA08E99F7 aes-256-cbc D907F72499D48DB36850AF2C038CEF62 aes-256-cbc A398D86A880BA4DE1FBA1ABBD38B9DA3B038B198134E798A4CF134029DB18B0A53F9A7177DAA5270EAD7448C56EB96351745A779A56B42A848FE265BFAB85BF349580A9E1751E627AEE80A8B0FC9046F18B8CF575358E21F5E353F115B2BF87984DB199744D4A83E58AD4764B6DFA92F933E0E1AA1F2AA95E4A9662C9BD8F1AC8D79BF531E77EDDB1A25CCD52D4E994D -aes-128-ctr +aes-128-ctr aes-128-ctr 519F7556 aes-128-ctr 72926C569BC409EA1646E840082C18F24A5A4A7A178EBCBAC0F170479253ACD2A18968DEAB5148C9C2E878B8F4B7C82B6601A0CD5470AA74EA7A2AAD15107950FC50786C3DC483B8BCA6DF1E5CDD64332C2289641EF66271DFEF9D07B392D4762AEE8FD65E0E8E8CB4FBE26D9D94A207352046380BB44AF32EDB900F6796EA87FC4C52A092CEB229C7 aes-192-ctr From 9db64952c0630bcd09d416499b0c88e38057337c Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Wed, 22 Jun 2022 21:10:21 +0300 Subject: [PATCH 128/525] Fix SIGSEGV in optimization in PartialSortingTransform Fixes: #37992 (cc @kitaisreal) Signed-off-by: Azat Khuzhin --- src/Processors/Transforms/PartialSortingTransform.cpp | 2 +- ...02345_partial_sort_transform_optimization.reference | 10 ++++++++++ .../02345_partial_sort_transform_optimization.sql | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference create mode 100644 tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql diff --git a/src/Processors/Transforms/PartialSortingTransform.cpp b/src/Processors/Transforms/PartialSortingTransform.cpp index 131bf4f8e7c..b0f866cb3fd 100644 --- a/src/Processors/Transforms/PartialSortingTransform.cpp +++ b/src/Processors/Transforms/PartialSortingTransform.cpp @@ -71,7 +71,7 @@ bool compareWithThreshold(const ColumnRawPtrs & raw_block_columns, size_t min_bl size_t raw_block_columns_size = raw_block_columns.size(); for (size_t i = 0; i < raw_block_columns_size; ++i) { - int res = sort_description[i].direction * raw_block_columns[i]->compareAt(min_block_index, 0, *threshold_columns[0], sort_description[i].nulls_direction); + int res = sort_description[i].direction * raw_block_columns[i]->compareAt(min_block_index, 0, *threshold_columns[i], sort_description[i].nulls_direction); if (res < 0) return true; diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference new file mode 100644 index 00000000000..e6c99ff9291 --- /dev/null +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference @@ -0,0 +1,10 @@ +0 999999 999999 +0 999998 999998 +0 999997 999997 +0 999996 999996 +0 999995 999995 +0 999994 999994 +0 999993 999993 +0 999992 999992 +0 999991 999991 +0 999990 999990 diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql new file mode 100644 index 00000000000..e7855c47474 --- /dev/null +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql @@ -0,0 +1,3 @@ +-- Regression for PartialSortingTransform optimization +-- that requires at least 1500 rows. +select * from (select * from (select 0 a, toNullable(number) b, toString(number) c from numbers(1e6)) order by a desc, b desc, c limit 1500) limit 10; From ffab75baa7ec4242ef1d689095a3f64d6c0d4da3 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Wed, 22 Jun 2022 23:33:20 +0200 Subject: [PATCH 129/525] Checkout full repositories for performance tests --- .github/workflows/backport_branches.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/backport_branches.yml b/.github/workflows/backport_branches.yml index b93c1b61ffd..e88a121b5d3 100644 --- a/.github/workflows/backport_branches.yml +++ b/.github/workflows/backport_branches.yml @@ -143,6 +143,8 @@ jobs: sudo rm -fr "$GITHUB_WORKSPACE" && mkdir "$GITHUB_WORKSPACE" - name: Check out repository code uses: actions/checkout@v2 + with: + fetch-depth: 0 # For a proper version and performance artifacts - name: Build run: | git -C "$GITHUB_WORKSPACE" submodule sync --recursive @@ -188,6 +190,8 @@ jobs: sudo rm -fr "$GITHUB_WORKSPACE" && mkdir "$GITHUB_WORKSPACE" - name: Check out repository code uses: actions/checkout@v2 + with: + fetch-depth: 0 # For a proper version and performance artifacts - name: Build run: | git -C "$GITHUB_WORKSPACE" submodule sync --recursive From 3ab58fd14f20522de8cc3b1079e9388adaf6b477 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 20 Jun 2022 17:16:01 +0200 Subject: [PATCH 130/525] Add docusaurus header to generated changelogs --- utils/changelog/changelog.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/utils/changelog/changelog.py b/utils/changelog/changelog.py index c20c6cfd072..4e6bc7f4a6a 100755 --- a/utils/changelog/changelog.py +++ b/utils/changelog/changelog.py @@ -14,6 +14,7 @@ from typing import Dict, List, Optional, TextIO from fuzzywuzzy.fuzz import ratio # type: ignore from github import Github +from github.GithubException import UnknownObjectException from github.NamedUser import NamedUser from github.Issue import Issue from github.PullRequest import PullRequest @@ -66,7 +67,10 @@ class Description: r"\1[#\2](https://github.com/ClickHouse/ClickHouse/issues/\2)", entry, ) - user_name = self.user.name if self.user.name else self.user.login + try: + user_name = self.user.name if self.user.name else self.user.login + except UnknownObjectException: + user_name = self.user.login return ( f"* {entry} [#{self.number}]({self.html_url}) " f"([{user_name}]({self.user.html_url}))." @@ -306,7 +310,11 @@ def generate_description(item: PullRequest, repo: Repository) -> Optional[Descri def write_changelog(fd: TextIO, descriptions: Dict[str, List[Description]]): - fd.write(f"### ClickHouse release {TO_REF} FIXME as compared to {FROM_REF}\n\n") + year = date.today().year + fd.write( + f"---\nsidebar_position: 1\nsidebar_label: {year}\n---\n\n# {year} Changelog\n\n" + f"### ClickHouse release {TO_REF} FIXME as compared to {FROM_REF}\n\n" + ) seen_categories = [] # type: List[str] for category in categories_preferred_order: From 61d3e94d06668340e9fb06ae1aceb14a026172a3 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 20 Jun 2022 17:16:29 +0200 Subject: [PATCH 131/525] Regenerate v22.* changelogs --- docs/changelogs/v22.1.1.2542-prestable.md | 7 +++++++ docs/changelogs/v22.1.2.2-stable.md | 7 +++++++ docs/changelogs/v22.1.3.7-stable.md | 7 +++++++ docs/changelogs/v22.1.4.30-stable.md | 7 +++++++ docs/changelogs/v22.2.1.2139-prestable.md | 7 +++++++ docs/changelogs/v22.2.2.1-stable.md | 7 +++++++ docs/changelogs/v22.2.3.5-stable.md | 7 +++++++ docs/changelogs/v22.3.1.1262-prestable.md | 9 ++++++++- docs/changelogs/v22.3.2.2-lts.md | 7 +++++++ docs/changelogs/v22.3.3.44-lts.md | 7 +++++++ docs/changelogs/v22.3.4.20-lts.md | 7 +++++++ docs/changelogs/v22.3.5.5-lts.md | 7 +++++++ docs/changelogs/v22.3.6.5-lts.md | 7 +++++++ docs/changelogs/v22.4.1.2305-prestable.md | 7 +++++++ docs/changelogs/v22.4.2.1-stable.md | 7 +++++++ docs/changelogs/v22.4.3.3-stable.md | 7 +++++++ docs/changelogs/v22.4.4.7-stable.md | 7 +++++++ docs/changelogs/v22.4.5.9-stable.md | 7 +++++++ docs/changelogs/v22.5.1.2079-stable.md | 7 +++++++ docs/changelogs/v22.6.1.1985-stable.md | 7 +++++++ 20 files changed, 141 insertions(+), 1 deletion(-) diff --git a/docs/changelogs/v22.1.1.2542-prestable.md b/docs/changelogs/v22.1.1.2542-prestable.md index c9071422949..cbe8e781d3c 100644 --- a/docs/changelogs/v22.1.1.2542-prestable.md +++ b/docs/changelogs/v22.1.1.2542-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.1.1.2542-prestable FIXME as compared to v21.12.1.9017-prestable #### Backward Incompatible Change diff --git a/docs/changelogs/v22.1.2.2-stable.md b/docs/changelogs/v22.1.2.2-stable.md index 450c640bc5e..de2dc6e3cee 100644 --- a/docs/changelogs/v22.1.2.2-stable.md +++ b/docs/changelogs/v22.1.2.2-stable.md @@ -1,2 +1,9 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.1.2.2-stable FIXME as compared to v22.1.1.2542-prestable diff --git a/docs/changelogs/v22.1.3.7-stable.md b/docs/changelogs/v22.1.3.7-stable.md index f8bb8821031..72c7a9cc5da 100644 --- a/docs/changelogs/v22.1.3.7-stable.md +++ b/docs/changelogs/v22.1.3.7-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.1.3.7-stable FIXME as compared to v22.1.2.2-stable #### Improvement diff --git a/docs/changelogs/v22.1.4.30-stable.md b/docs/changelogs/v22.1.4.30-stable.md index 1ea56131481..7fa295cdcb0 100644 --- a/docs/changelogs/v22.1.4.30-stable.md +++ b/docs/changelogs/v22.1.4.30-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.1.4.30-stable FIXME as compared to v22.1.3.7-stable #### Build/Testing/Packaging Improvement diff --git a/docs/changelogs/v22.2.1.2139-prestable.md b/docs/changelogs/v22.2.1.2139-prestable.md index 26ac24a7778..f93a3a690c4 100644 --- a/docs/changelogs/v22.2.1.2139-prestable.md +++ b/docs/changelogs/v22.2.1.2139-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.2.1.2139-prestable FIXME as compared to v22.1.1.2542-prestable #### New Feature diff --git a/docs/changelogs/v22.2.2.1-stable.md b/docs/changelogs/v22.2.2.1-stable.md index c9158290753..0ea5be33c94 100644 --- a/docs/changelogs/v22.2.2.1-stable.md +++ b/docs/changelogs/v22.2.2.1-stable.md @@ -1,2 +1,9 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.2.2.1-stable FIXME as compared to v22.2.1.2139-prestable diff --git a/docs/changelogs/v22.2.3.5-stable.md b/docs/changelogs/v22.2.3.5-stable.md index 90c0d22d570..24b535a7f91 100644 --- a/docs/changelogs/v22.2.3.5-stable.md +++ b/docs/changelogs/v22.2.3.5-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.2.3.5-stable FIXME as compared to v22.2.2.1-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v22.3.1.1262-prestable.md b/docs/changelogs/v22.3.1.1262-prestable.md index 03e81bd1808..d2f976f4517 100644 --- a/docs/changelogs/v22.3.1.1262-prestable.md +++ b/docs/changelogs/v22.3.1.1262-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.3.1.1262-prestable FIXME as compared to v22.2.1.2139-prestable #### Backward Incompatible Change @@ -65,7 +72,7 @@ * Add setting to lower column case when reading parquet/ORC file. [#35145](https://github.com/ClickHouse/ClickHouse/pull/35145) ([shuchaome](https://github.com/shuchaome)). * Do not retry non-rertiable errors. Closes [#35161](https://github.com/ClickHouse/ClickHouse/issues/35161). [#35172](https://github.com/ClickHouse/ClickHouse/pull/35172) ([Kseniia Sumarokova](https://github.com/kssenii)). * Added disk_name to system.part_log. [#35178](https://github.com/ClickHouse/ClickHouse/pull/35178) ([Artyom Yurkov](https://github.com/Varinara)). -* Currently,ClickHouse validates hosts defined under for URL and Remote Table functions. This PR extends the RemoteHostFilter to Mysql and PostgreSQL table functions. [#35191](https://github.com/ClickHouse/ClickHouse/pull/35191) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Currently, ClickHouse validates hosts defined under for URL and Remote Table functions. This PR extends the RemoteHostFilter to Mysql and PostgreSQL table functions. [#35191](https://github.com/ClickHouse/ClickHouse/pull/35191) ([Heena Bansal](https://github.com/HeenaBansal2009)). * Sometimes it is not enough for us to distinguish queries hierachy only by is_initial_query in system.query_log and system.processes. So distributed_depth is needed. [#35207](https://github.com/ClickHouse/ClickHouse/pull/35207) ([李扬](https://github.com/taiyang-li)). * Support test mode for clickhouse-local. [#35264](https://github.com/ClickHouse/ClickHouse/pull/35264) ([Kseniia Sumarokova](https://github.com/kssenii)). * Return const for function getMacro if not in distributed query. Close [#34727](https://github.com/ClickHouse/ClickHouse/issues/34727). [#35289](https://github.com/ClickHouse/ClickHouse/pull/35289) ([李扬](https://github.com/taiyang-li)). diff --git a/docs/changelogs/v22.3.2.2-lts.md b/docs/changelogs/v22.3.2.2-lts.md index ef45265c7bd..b755db300c8 100644 --- a/docs/changelogs/v22.3.2.2-lts.md +++ b/docs/changelogs/v22.3.2.2-lts.md @@ -1,2 +1,9 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.3.2.2-lts FIXME as compared to v22.3.1.1262-prestable diff --git a/docs/changelogs/v22.3.3.44-lts.md b/docs/changelogs/v22.3.3.44-lts.md index 4214512c533..4fa98940290 100644 --- a/docs/changelogs/v22.3.3.44-lts.md +++ b/docs/changelogs/v22.3.3.44-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.3.3.44-lts FIXME as compared to v22.3.2.2-lts #### Bug Fix diff --git a/docs/changelogs/v22.3.4.20-lts.md b/docs/changelogs/v22.3.4.20-lts.md index 4bb4f1bf0f4..d820adbdbec 100644 --- a/docs/changelogs/v22.3.4.20-lts.md +++ b/docs/changelogs/v22.3.4.20-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.3.4.20-lts FIXME as compared to v22.3.3.44-lts #### Build/Testing/Packaging Improvement diff --git a/docs/changelogs/v22.3.5.5-lts.md b/docs/changelogs/v22.3.5.5-lts.md index d1c42807f41..7deff1be416 100644 --- a/docs/changelogs/v22.3.5.5-lts.md +++ b/docs/changelogs/v22.3.5.5-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.3.5.5-lts FIXME as compared to v22.3.4.20-lts #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v22.3.6.5-lts.md b/docs/changelogs/v22.3.6.5-lts.md index 16cf390c703..9d86d9e786c 100644 --- a/docs/changelogs/v22.3.6.5-lts.md +++ b/docs/changelogs/v22.3.6.5-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.3.6.5-lts FIXME as compared to v22.3.5.5-lts #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v22.4.1.2305-prestable.md b/docs/changelogs/v22.4.1.2305-prestable.md index eb1ed6decd3..5c6948251b3 100644 --- a/docs/changelogs/v22.4.1.2305-prestable.md +++ b/docs/changelogs/v22.4.1.2305-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.4.1.2305-prestable FIXME as compared to v22.3.1.1262-prestable #### Backward Incompatible Change diff --git a/docs/changelogs/v22.4.2.1-stable.md b/docs/changelogs/v22.4.2.1-stable.md index cd7ee75997c..fb77d3fee9b 100644 --- a/docs/changelogs/v22.4.2.1-stable.md +++ b/docs/changelogs/v22.4.2.1-stable.md @@ -1,2 +1,9 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.4.2.1-stable FIXME as compared to v22.4.1.2305-prestable diff --git a/docs/changelogs/v22.4.3.3-stable.md b/docs/changelogs/v22.4.3.3-stable.md index 5ab7872f880..4baa63672ab 100644 --- a/docs/changelogs/v22.4.3.3-stable.md +++ b/docs/changelogs/v22.4.3.3-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.4.3.3-stable FIXME as compared to v22.4.2.1-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v22.4.4.7-stable.md b/docs/changelogs/v22.4.4.7-stable.md index 9004ce2f6bc..525c0de1341 100644 --- a/docs/changelogs/v22.4.4.7-stable.md +++ b/docs/changelogs/v22.4.4.7-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.4.4.7-stable FIXME as compared to v22.4.3.3-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v22.4.5.9-stable.md b/docs/changelogs/v22.4.5.9-stable.md index ab43bf3eade..b5fffa56494 100644 --- a/docs/changelogs/v22.4.5.9-stable.md +++ b/docs/changelogs/v22.4.5.9-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.4.5.9-stable FIXME as compared to v22.4.4.7-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v22.5.1.2079-stable.md b/docs/changelogs/v22.5.1.2079-stable.md index aab8266c115..7614d678a2a 100644 --- a/docs/changelogs/v22.5.1.2079-stable.md +++ b/docs/changelogs/v22.5.1.2079-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.5.1.2079-stable FIXME as compared to v22.4.1.2305-prestable #### Backward Incompatible Change diff --git a/docs/changelogs/v22.6.1.1985-stable.md b/docs/changelogs/v22.6.1.1985-stable.md index 583ffddf279..9c7ecc1dae3 100644 --- a/docs/changelogs/v22.6.1.1985-stable.md +++ b/docs/changelogs/v22.6.1.1985-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v22.6.1.1985-stable FIXME as compared to v22.5.1.2079-stable #### Backward Incompatible Change From f06c533eaf6d573aff18b1f4bfc053b5352b8a46 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 20 Jun 2022 17:17:07 +0200 Subject: [PATCH 132/525] Add changelog for fresh v22.3.7.28-lts --- docs/changelogs/v22.3.7.28-lts.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 docs/changelogs/v22.3.7.28-lts.md diff --git a/docs/changelogs/v22.3.7.28-lts.md b/docs/changelogs/v22.3.7.28-lts.md new file mode 100644 index 00000000000..ecfd0ce2cf6 --- /dev/null +++ b/docs/changelogs/v22.3.7.28-lts.md @@ -0,0 +1,24 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + +### ClickHouse release v22.3.7.28-lts FIXME as compared to v22.3.6.5-lts + +#### Bug Fix (user-visible misbehavior in official stable or prestable release) + +* Backported in [#37715](https://github.com/ClickHouse/ClickHouse/issues/37715): Fix unexpected errors with a clash of constant strings in aggregate function, prewhere and join. Close [#36891](https://github.com/ClickHouse/ClickHouse/issues/36891). [#37336](https://github.com/ClickHouse/ClickHouse/pull/37336) ([Vladimir C](https://github.com/vdimir)). +* Backported in [#37511](https://github.com/ClickHouse/ClickHouse/issues/37511): Fix logical error in normalizeUTF8 functions. Closes [#37298](https://github.com/ClickHouse/ClickHouse/issues/37298). [#37443](https://github.com/ClickHouse/ClickHouse/pull/37443) ([Maksim Kita](https://github.com/kitaisreal)). +* Backported in [#37843](https://github.com/ClickHouse/ClickHouse/issues/37843): Fix segmentation fault in `show create table` from mysql database when it is configured with named collections. Closes [#37683](https://github.com/ClickHouse/ClickHouse/issues/37683). [#37690](https://github.com/ClickHouse/ClickHouse/pull/37690) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Backported in [#37940](https://github.com/ClickHouse/ClickHouse/issues/37940): Fix setting cast_ipv4_ipv6_default_on_conversion_error for internal cast function. Closes [#35156](https://github.com/ClickHouse/ClickHouse/issues/35156). [#37761](https://github.com/ClickHouse/ClickHouse/pull/37761) ([Maksim Kita](https://github.com/kitaisreal)). + +#### Bug Fix (user-visible misbehaviour in official stable or prestable release) + +* Backported in [#37926](https://github.com/ClickHouse/ClickHouse/issues/37926): Fix check asof join key nullability, close [#35565](https://github.com/ClickHouse/ClickHouse/issues/35565). [#35674](https://github.com/ClickHouse/ClickHouse/pull/35674) ([Vladimir C](https://github.com/vdimir)). +* Backported in [#37172](https://github.com/ClickHouse/ClickHouse/issues/37172): Fix bug in indexes of not presented columns in -WithNames formats that led to error `INCORRECT_NUMBER_OF_COLUMNS ` when the number of columns is more than 256. Closes [#35793](https://github.com/ClickHouse/ClickHouse/issues/35793). [#35803](https://github.com/ClickHouse/ClickHouse/pull/35803) ([Kruglov Pavel](https://github.com/Avogar)). +* Backported in [#37457](https://github.com/ClickHouse/ClickHouse/issues/37457): Server might fail to start if it cannot resolve hostname of external ClickHouse dictionary. It's fixed. Fixes [#36451](https://github.com/ClickHouse/ClickHouse/issues/36451). [#36463](https://github.com/ClickHouse/ClickHouse/pull/36463) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Backported in [#36925](https://github.com/ClickHouse/ClickHouse/issues/36925): Fix bug in clickhouse-keeper which can lead to corrupted compressed log files in case of small load and restarts. [#36910](https://github.com/ClickHouse/ClickHouse/pull/36910) ([alesapin](https://github.com/alesapin)). +* Backported in [#37364](https://github.com/ClickHouse/ClickHouse/issues/37364): Fixed problem with infs in `quantileTDigest`. Fixes [#32107](https://github.com/ClickHouse/ClickHouse/issues/32107). [#37021](https://github.com/ClickHouse/ClickHouse/pull/37021) ([Vladimir Chebotarev](https://github.com/excitoon)). + From 779b83262f770ba448852f9fcebfadbd3eda225e Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Wed, 22 Jun 2022 19:52:43 +0200 Subject: [PATCH 133/525] Add `not for changelog` category with titles as entries --- utils/changelog/changelog.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/utils/changelog/changelog.py b/utils/changelog/changelog.py index 4e6bc7f4a6a..e1797fb5dd3 100755 --- a/utils/changelog/changelog.py +++ b/utils/changelog/changelog.py @@ -284,7 +284,15 @@ def generate_description(item: PullRequest, repo: Repository) -> Optional[Descri # Filter out the PR categories that are not for changelog. if re.match( - r"(?i)doc|((non|in|not|un)[-\s]*significant)|(not[ ]*for[ ]*changelog)", + r"(?i)((non|in|not|un)[-\s]*significant)|(not[ ]*for[ ]*changelog)", + category, + ): + category = "NOT FOR CHANGELOG / INSIGNIFICANT" + return Description(item.number, item.user, item.html_url, item.title, category) + + # Filter out documentations changelog + if re.match( + r"(?i)doc", category, ): return None From 81becebfe3fbbfe9ae071739ac2f22147d63473d Mon Sep 17 00:00:00 2001 From: Laurie Li Date: Thu, 23 Jun 2022 09:29:46 +0800 Subject: [PATCH 134/525] Add "See Also" Signed-off-by: Laurie Li --- .../table-engines/mergetree-family/replication.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/zh/engines/table-engines/mergetree-family/replication.md b/docs/zh/engines/table-engines/mergetree-family/replication.md index 568484c6256..69d1cd9d942 100644 --- a/docs/zh/engines/table-engines/mergetree-family/replication.md +++ b/docs/zh/engines/table-engines/mergetree-family/replication.md @@ -277,4 +277,12 @@ sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data 如果 ZooKeeper 中的数据丢失或损坏,如上所述,你可以通过将数据转移到非复制表来保存数据。 -[来源文章](https://clickhouse.com/docs/en/operations/table_engines/replication/) +**参考** + +- [background_schedule_pool_size](../../../operations/settings/settings.md#background_schedule_pool_size) +- [background_fetches_pool_size](../../../operations/settings/settings.md#background_fetches_pool_size) +- [execute_merges_on_single_replica_time_threshold](../../../operations/settings/settings.md#execute-merges-on-single-replica-time-threshold) +- [max_replicated_fetches_network_bandwidth](../../../operations/settings/merge-tree-settings.md#max_replicated_fetches_network_bandwidth) +- [max_replicated_sends_network_bandwidth](../../../operations/settings/merge-tree-settings.md#max_replicated_sends_network_bandwidth) + +[原始文章](https://clickhouse.com/docs/en/operations/table_engines/replication/) From 29bd0360134dc3bd366043256cdc9d69f1348924 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Wed, 22 Jun 2022 21:58:43 -0400 Subject: [PATCH 135/525] separated queries, specified UNION DISTINCT --- .../example-datasets/brown-benchmark.md | 83 +++++++++++++------ 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/docs/en/getting-started/example-datasets/brown-benchmark.md b/docs/en/getting-started/example-datasets/brown-benchmark.md index b8e6140c60f..7b995cd8345 100644 --- a/docs/en/getting-started/example-datasets/brown-benchmark.md +++ b/docs/en/getting-started/example-datasets/brown-benchmark.md @@ -17,11 +17,12 @@ Unpack the data: xz -v -d mgbench{1..3}.csv.xz ``` -Create tables: -``` +Create the database and tables: +```sql CREATE DATABASE mgbench; +``` - +```sql CREATE TABLE mgbench.logs1 ( log_time DateTime, machine_name LowCardinality(String), @@ -47,8 +48,10 @@ CREATE TABLE mgbench.logs1 ( ) ENGINE = MergeTree() ORDER BY (machine_group, machine_name, log_time); +``` +```sql CREATE TABLE mgbench.logs2 ( log_time DateTime, client_ip IPv4, @@ -58,8 +61,10 @@ CREATE TABLE mgbench.logs2 ( ) ENGINE = MergeTree() ORDER BY log_time; +``` +```sql CREATE TABLE mgbench.logs3 ( log_time DateTime64, device_id FixedString(15), @@ -83,7 +88,7 @@ clickhouse-client --query "INSERT INTO mgbench.logs3 FORMAT CSVWithNames" < mgbe ``` Run benchmark queries: -``` +```sql -- Q1.1: What is the CPU/network utilization for each web server since midnight? SELECT machine_name, @@ -101,26 +106,29 @@ FROM ( COALESCE(cpu_user, 0.0) AS cpu, COALESCE(bytes_in, 0.0) AS net_in, COALESCE(bytes_out, 0.0) AS net_out - FROM logs1 + FROM mgbench.logs1 WHERE machine_name IN ('anansi','aragog','urd') AND log_time >= TIMESTAMP '2017-01-11 00:00:00' ) AS r GROUP BY machine_name; +``` +```sql -- Q1.2: Which computer lab machines have been offline in the past day? SELECT machine_name, log_time -FROM logs1 +FROM mgbench.logs1 WHERE (machine_name LIKE 'cslab%' OR machine_name LIKE 'mslab%') AND load_one IS NULL AND log_time >= TIMESTAMP '2017-01-10 00:00:00' ORDER BY machine_name, log_time; +``` - +```sql -- Q1.3: What are the hourly average metrics during the past 10 days for a specific workstation? SELECT dt, @@ -138,7 +146,7 @@ FROM ( load_one, mem_free, swap_free - FROM logs1 + FROM mgbench.logs1 WHERE machine_name = 'babbage' AND load_fifteen IS NOT NULL AND load_five IS NOT NULL @@ -151,13 +159,14 @@ GROUP BY dt, hr ORDER BY dt, hr; +``` - +```sql -- Q1.4: Over 1 month, how often was each server blocked on disk I/O? SELECT machine_name, COUNT(*) AS spikes -FROM logs1 +FROM mgbench.logs1 WHERE machine_group = 'Servers' AND cpu_wio > 0.99 AND log_time >= TIMESTAMP '2016-12-01 00:00:00' @@ -165,8 +174,9 @@ WHERE machine_group = 'Servers' GROUP BY machine_name ORDER BY spikes DESC LIMIT 10; +``` - +```sql -- Q1.5: Which externally reachable VMs have run low on memory? SELECT machine_name, @@ -176,7 +186,7 @@ FROM ( SELECT machine_name, CAST(log_time AS DATE) AS dt, mem_free - FROM logs1 + FROM mgbench.logs1 WHERE machine_group = 'DMZ' AND mem_free IS NOT NULL ) AS r @@ -185,8 +195,9 @@ GROUP BY machine_name, HAVING MIN(mem_free) < 10000 ORDER BY machine_name, dt; +``` - +```sql -- Q1.6: What is the total hourly network traffic across all file servers? SELECT dt, @@ -199,7 +210,7 @@ FROM ( EXTRACT(HOUR FROM log_time) AS hr, COALESCE(bytes_in, 0.0) / 1000000000.0 AS net_in, COALESCE(bytes_out, 0.0) / 1000000000.0 AS net_out - FROM logs1 + FROM mgbench.logs1 WHERE machine_name IN ('allsorts','andes','bigred','blackjack','bonbon', 'cadbury','chiclets','cotton','crows','dove','fireball','hearts','huey', 'lindt','milkduds','milkyway','mnm','necco','nerds','orbit','peeps', @@ -210,28 +221,32 @@ GROUP BY dt, hr ORDER BY both_sum DESC LIMIT 10; +``` - +```sql -- Q2.1: Which requests have caused server errors within the past 2 weeks? SELECT * -FROM logs2 +FROM mgbench.logs2 WHERE status_code >= 500 AND log_time >= TIMESTAMP '2012-12-18 00:00:00' ORDER BY log_time; +``` - +```sql -- Q2.2: During a specific 2-week period, was the user password file leaked? SELECT * -FROM logs2 +FROM mgbench.logs2 WHERE status_code >= 200 AND status_code < 300 AND request LIKE '%/etc/passwd%' AND log_time >= TIMESTAMP '2012-05-06 00:00:00' AND log_time < TIMESTAMP '2012-05-20 00:00:00'; +``` +```sql -- Q2.3: What was the average path depth for top-level requests in the past month? SELECT top_level, @@ -242,7 +257,7 @@ FROM ( FROM ( SELECT POSITION(SUBSTRING(request FROM 2), '/') AS len, request - FROM logs2 + FROM mgbench.logs2 WHERE status_code >= 200 AND status_code < 300 AND log_time >= TIMESTAMP '2012-12-01 00:00:00' @@ -254,19 +269,23 @@ WHERE top_level IN ('/about','/courses','/degrees','/events', '/publications','/research','/teaching','/ugrad') GROUP BY top_level ORDER BY top_level; +``` +```sql -- Q2.4: During the last 3 months, which clients have made an excessive number of requests? SELECT client_ip, COUNT(*) AS num_requests -FROM logs2 +FROM mgbench.logs2 WHERE log_time >= TIMESTAMP '2012-10-01 00:00:00' GROUP BY client_ip HAVING COUNT(*) >= 100000 ORDER BY num_requests DESC; +``` +```sql -- Q2.5: What are the daily unique visitors? SELECT dt, @@ -274,12 +293,14 @@ SELECT dt, FROM ( SELECT CAST(log_time AS DATE) AS dt, client_ip - FROM logs2 + FROM mgbench.logs2 ) AS r GROUP BY dt ORDER BY dt; +``` +```sql -- Q2.6: What are the average and maximum data transfer rates (Gbps)? SELECT AVG(transfer) / 125000000.0 AS transfer_avg, @@ -287,33 +308,39 @@ SELECT AVG(transfer) / 125000000.0 AS transfer_avg, FROM ( SELECT log_time, SUM(object_size) AS transfer - FROM logs2 + FROM mgbench.logs2 GROUP BY log_time ) AS r; +``` +```sql -- Q3.1: Did the indoor temperature reach freezing over the weekend? SELECT * -FROM logs3 +FROM mgbench.logs3 WHERE event_type = 'temperature' AND event_value <= 32.0 AND log_time >= '2019-11-29 17:00:00.000'; +``` +```sql -- Q3.4: Over the past 6 months, how frequently were each door opened? SELECT device_name, device_floor, COUNT(*) AS ct -FROM logs3 +FROM mgbench.logs3 WHERE event_type = 'door_open' AND log_time >= '2019-06-01 00:00:00.000' GROUP BY device_name, device_floor ORDER BY ct DESC; +``` +```sql -- Q3.5: Where in the building do large temperature variations occur in winter and summer? WITH temperature AS ( @@ -335,7 +362,7 @@ WITH temperature AS ( device_type, device_floor, event_value - FROM logs3 + FROM mgbench.logs3 WHERE event_type = 'temperature' ) AS r GROUP BY dt, @@ -357,7 +384,7 @@ SELECT DISTINCT device_name, FROM temperature WHERE dt >= DATE '2018-12-01' AND dt < DATE '2019-03-01' -UNION +UNION DISTINCT SELECT DISTINCT device_name, device_type, device_floor, @@ -365,8 +392,10 @@ SELECT DISTINCT device_name, FROM temperature WHERE dt >= DATE '2019-06-01' AND dt < DATE '2019-09-01'; +``` +```sql -- Q3.6: For each device category, what are the monthly power consumption metrics? SELECT yr, @@ -397,7 +426,7 @@ FROM ( CASE WHEN device_name LIKE 'printer%' THEN event_value END AS printer, CASE WHEN device_name LIKE 'projector%' THEN event_value END AS projector, CASE WHEN device_name LIKE 'vending%' THEN event_value END AS vending - FROM logs3 + FROM mgbench.logs3 WHERE device_type = 'meter' ) AS r GROUP BY dt, From e2cdaa795bcc2724deabeafb9301d6e93ae6934f Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Thu, 23 Jun 2022 09:55:00 +0300 Subject: [PATCH 136/525] Fixes comments. --- src/Disks/ObjectStorages/S3/S3Capabilities.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Disks/ObjectStorages/S3/S3Capabilities.h b/src/Disks/ObjectStorages/S3/S3Capabilities.h index 46e647da89e..b8b7d77cd72 100644 --- a/src/Disks/ObjectStorages/S3/S3Capabilities.h +++ b/src/Disks/ObjectStorages/S3/S3Capabilities.h @@ -14,8 +14,6 @@ struct S3Capabilities /// TODO: possibly we have to use Google SDK https://github.com/googleapis/google-cloud-cpp/tree/main/google/cloud/storage /// because looks like it miss a lot of features like: /// 1) batch delete - /// 2) list_v2 - /// 3) multipart upload works differently bool support_batch_delete{true}; /// Y.Cloud S3 implementation support proxy for connection From 4bf1fc47188c7c158f6661352c608370d779909e Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Thu, 23 Jun 2022 10:28:31 +0300 Subject: [PATCH 137/525] Add error code and message displaying in exceptions of KerberosInit; Correct code style in KerberosInit --- src/Access/KerberosInit.cpp | 54 ++++++++++++++++++++++--------------- src/Access/KerberosInit.h | 2 +- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index d3be559cba7..9ca45b12531 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #if USE_KRB5 #include #include @@ -36,23 +37,34 @@ struct K5Data class KerberosInit : boost::noncopyable { public: - int init(const String & keytab_file, const String & principal, const String & cache_name = ""); + void init(const String & keytab_file, const String & principal, const String & cache_name = ""); ~KerberosInit(); private: - struct K5Data k5; + struct K5Data k5 {}; krb5_ccache defcache = nullptr; krb5_get_init_creds_opt * options = nullptr; // Credentials structure including ticket, session key, and lifetime info. krb5_creds my_creds; krb5_keytab keytab = nullptr; krb5_principal defcache_princ = nullptr; + String fmtError(krb5_error_code code); }; } -int KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) + +String KerberosInit::fmtError(krb5_error_code code) +{ + const char *msg; + msg = krb5_get_error_message(k5.ctx, code); + String fmt_error = fmt::format(" ({}, {})", code, msg); + krb5_free_error_message(k5.ctx, msg); + return fmt_error; +} + +void KerberosInit::init(const String & keytab_file, const String & principal, const String & cache_name) { auto * log = &Poco::Logger::get("KerberosInit"); - LOG_TRACE(log,"Trying to authenticate to Kerberos v5"); + LOG_TRACE(log,"Trying to authenticate with Kerberos v5"); krb5_error_code ret; @@ -61,16 +73,15 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con if (!std::filesystem::exists(keytab_file)) throw Exception("Keytab file does not exist", ErrorCodes::KERBEROS_ERROR); - memset(&k5, 0, sizeof(k5)); ret = krb5_init_context(&k5.ctx); if (ret) - throw Exception("Error while initializing Kerberos 5 library", ErrorCodes::KERBEROS_ERROR); + throw Exception(fmt::format("Error while initializing Kerberos 5 library ({})", ret), ErrorCodes::KERBEROS_ERROR); if (!cache_name.empty()) { ret = krb5_cc_resolve(k5.ctx, cache_name.c_str(), &k5.out_cc); if (ret) - throw Exception("Error in resolving cache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error in resolving cache" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Resolved cache"); } else @@ -78,7 +89,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Resolve the default cache and get its type and default principal (if it is initialized). ret = krb5_cc_default(k5.ctx, &defcache); if (ret) - throw Exception("Error while getting default cache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error while getting default cache" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Resolved default cache"); deftype = krb5_cc_get_type(k5.ctx, defcache); if (krb5_cc_get_principal(k5.ctx, defcache, &defcache_princ) != 0) @@ -88,7 +99,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Use the specified principal name. ret = krb5_parse_name_flags(k5.ctx, principal.c_str(), 0, &k5.me); if (ret) - throw Exception("Error when parsing principal name " + principal, ErrorCodes::KERBEROS_ERROR); + throw Exception("Error when parsing principal name " + principal + fmtError(ret), ErrorCodes::KERBEROS_ERROR); // Cache related commands if (k5.out_cc == nullptr && krb5_cc_support_switch(k5.ctx, deftype)) @@ -96,8 +107,8 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Use an existing cache for the client principal if we can. ret = krb5_cc_cache_match(k5.ctx, k5.me, &k5.out_cc); if (ret && ret != KRB5_CC_NOTFOUND) - throw Exception("Error while searching for cache for " + principal, ErrorCodes::KERBEROS_ERROR); - if (!ret) + throw Exception("Error while searching for cache for " + principal + fmtError(ret), ErrorCodes::KERBEROS_ERROR); + if (0 == ret) { LOG_TRACE(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); k5.switch_to_cache = 1; @@ -107,7 +118,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Create a new cache to avoid overwriting the initialized default cache. ret = krb5_cc_new_unique(k5.ctx, deftype, nullptr, &k5.out_cc); if (ret) - throw Exception("Error while generating new cache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error while generating new cache" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Using default cache: {}", krb5_cc_get_name(k5.ctx, k5.out_cc)); k5.switch_to_cache = 1; } @@ -123,24 +134,24 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con ret = krb5_unparse_name(k5.ctx, k5.me, &k5.name); if (ret) - throw Exception("Error when unparsing name", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error when unparsing name" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Using principal: {}", k5.name); // Allocate a new initial credential options structure. ret = krb5_get_init_creds_opt_alloc(k5.ctx, &options); if (ret) - throw Exception("Error in options allocation", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error in options allocation" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); // Resolve keytab ret = krb5_kt_resolve(k5.ctx, keytab_file.c_str(), &keytab); if (ret) - throw Exception("Error in resolving keytab "+keytab_file, ErrorCodes::KERBEROS_ERROR); + throw Exception("Error in resolving keytab "+keytab_file + fmtError(ret), ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Using keytab: {}", keytab_file); // Set an output credential cache in initial credential options. ret = krb5_get_init_creds_opt_set_out_ccache(k5.ctx, options, k5.out_cc); if (ret) - throw Exception("Error in setting output credential cache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error in setting output credential cache" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); // Action: init or renew LOG_TRACE(log,"Trying to renew credentials"); @@ -153,7 +164,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Request KDC for an initial credentials using keytab. ret = krb5_get_init_creds_keytab(k5.ctx, &my_creds, k5.me, keytab, 0, nullptr, options); if (ret) - throw Exception("Error in getting initial credentials", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error in getting initial credentials" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); else LOG_TRACE(log,"Got initial credentials"); } @@ -163,7 +174,7 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Initialize a credential cache. Destroy any existing contents of cache and initialize it for the default principal. ret = krb5_cc_initialize(k5.ctx, k5.out_cc, k5.me); if (ret) - throw Exception("Error when initializing cache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error when initializing cache" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); LOG_TRACE(log,"Initialized cache"); // Store credentials in a credential cache. ret = krb5_cc_store_cred(k5.ctx, k5.out_cc, &my_creds); @@ -177,11 +188,10 @@ int KerberosInit::init(const String & keytab_file, const String & principal, con // Make a credential cache the primary cache for its collection. ret = krb5_cc_switch(k5.ctx, k5.out_cc); if (ret) - throw Exception("Error while switching to new cache", ErrorCodes::KERBEROS_ERROR); + throw Exception("Error while switching to new cache" + fmtError(ret), ErrorCodes::KERBEROS_ERROR); } LOG_TRACE(log,"Authenticated to Kerberos v5"); - return 0; } KerberosInit::~KerberosInit() @@ -208,12 +218,12 @@ KerberosInit::~KerberosInit() } } -int kerberosInit(const String & keytab_file, const String & principal, const String & cache_name) +void kerberosInit(const String & keytab_file, const String & principal, const String & cache_name) { // Using mutex to prevent cache file corruptions static std::mutex kinit_mtx; std::unique_lock lck(kinit_mtx); KerberosInit k_init; - return k_init.init(keytab_file, principal, cache_name); + k_init.init(keytab_file, principal, cache_name); } #endif // USE_KRB5 diff --git a/src/Access/KerberosInit.h b/src/Access/KerberosInit.h index 4731baf706f..5a11a275529 100644 --- a/src/Access/KerberosInit.h +++ b/src/Access/KerberosInit.h @@ -6,6 +6,6 @@ #if USE_KRB5 -int kerberosInit(const String & keytab_file, const String & principal, const String & cache_name = ""); +void kerberosInit(const String & keytab_file, const String & principal, const String & cache_name = ""); #endif // USE_KRB5 From 31bf1203d337e3127a319671d704fb324b6cfb01 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 23 Jun 2022 15:57:19 +0800 Subject: [PATCH 138/525] update codes --- src/DataTypes/NestedUtils.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/DataTypes/NestedUtils.cpp b/src/DataTypes/NestedUtils.cpp index 9cab49a509d..dbdba39fa84 100644 --- a/src/DataTypes/NestedUtils.cpp +++ b/src/DataTypes/NestedUtils.cpp @@ -121,7 +121,7 @@ Block flatten(const Block & block) const DataTypes & element_types = type_tuple->getElements(); const Strings & names = type_tuple->getElementNames(); const ColumnTuple * column_tuple; - if(isColumnConst(*elem.column)) + if (isColumnConst(*elem.column)) column_tuple = typeid_cast(&assert_cast(*elem.column).getDataColumn()); else column_tuple = typeid_cast(elem.column.get()); @@ -309,12 +309,12 @@ std::optional NestedColumnExtractHelper::extractColumn( auto new_column_name_prefix = Nested::concatenateName(column_name_prefix, nested_names.first); if (nested_names.second.empty()) { - if (nested_table->has(new_column_name_prefix, case_insentive)) + if (auto * column_ref = nested_table->findByName(new_column_name_prefix, case_insentive)) { - ColumnWithTypeAndName column = *nested_table->findByName(new_column_name_prefix, case_insentive); + ColumnWithTypeAndName column = *column_ref; if (case_insentive) column.name = original_column_name; - return {column}; + return {std::move(column)}; } else { From 96e6f9a2d02ba6cf560703f73d6acc971b3dd445 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 23 Jun 2022 16:10:01 +0800 Subject: [PATCH 139/525] fixed code style --- src/DataTypes/NestedUtils.h | 4 ++-- src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/DataTypes/NestedUtils.h b/src/DataTypes/NestedUtils.h index 9473d30497a..e7cda541f47 100644 --- a/src/DataTypes/NestedUtils.h +++ b/src/DataTypes/NestedUtils.h @@ -36,9 +36,9 @@ namespace Nested std::unordered_set getAllTableNames(const Block & block, bool to_lower_case = false); } -/// Use this class to extract element columns from columns of nested type in a block, e.g. named Tuple. +/// Use this class to extract element columns from columns of nested type in a block, e.g. named Tuple. /// It can extract a column from a multiple nested type column, e.g. named Tuple in named Tuple -/// Keeps some intermediate datas to avoid rebuild them multi-times. +/// Keeps some intermediate data to avoid rebuild them multi-times. class NestedColumnExtractHelper { public: diff --git a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp index 305009a070f..eefe4231b89 100644 --- a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp +++ b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp @@ -1,4 +1,3 @@ -#include "ArrowColumnToCHColumn.h" #include #include @@ -704,7 +703,7 @@ std::vector ArrowColumnToCHColumn::getMissingColumns(const arrow::Schema { if (!allow_missing_columns) throw Exception{ErrorCodes::THERE_IS_NO_COLUMN, "Column '{}' is not presented in input data.", header_column.name}; - missing_columns.push_back(i); + missing_columns.push_back(i); } } } From 2c5a88fabaefb7b865e8cf6d08ad8609c4342b64 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 23 Jun 2022 09:59:13 +0200 Subject: [PATCH 140/525] deprecate Ordinary database --- docker/test/stateful/run.sh | 4 ++++ docker/test/stateless/run.sh | 4 ++++ src/Core/Settings.h | 3 ++- src/Databases/DatabaseAtomic.cpp | 6 +++--- src/Databases/DatabaseAtomic.h | 2 +- src/Databases/DatabaseFactory.cpp | 7 ++++++- src/Databases/DatabaseLazy.cpp | 4 ++-- src/Databases/DatabaseLazy.h | 2 +- src/Databases/DatabaseMemory.cpp | 2 +- src/Databases/DatabaseMemory.h | 2 +- src/Databases/DatabaseOnDisk.cpp | 2 +- src/Databases/DatabaseOnDisk.h | 2 +- src/Databases/DatabaseReplicated.cpp | 4 ++-- src/Databases/DatabaseReplicated.h | 2 +- src/Databases/IDatabase.h | 2 +- .../MySQL/DatabaseMaterializedMySQL.cpp | 4 ++-- .../MySQL/DatabaseMaterializedMySQL.h | 2 +- src/Databases/MySQL/DatabaseMySQL.cpp | 2 +- src/Databases/MySQL/DatabaseMySQL.h | 2 +- .../DatabaseMaterializedPostgreSQL.cpp | 4 ++-- .../DatabaseMaterializedPostgreSQL.h | 2 +- .../PostgreSQL/DatabasePostgreSQL.cpp | 2 +- src/Databases/PostgreSQL/DatabasePostgreSQL.h | 2 +- src/Interpreters/AsynchronousInsertQueue.h | 1 - src/Interpreters/HashJoin.h | 6 +++--- src/Interpreters/InterpreterCreateQuery.cpp | 6 ++---- src/Interpreters/InterpreterDropQuery.cpp | 18 +++++++++--------- src/Interpreters/InterpreterDropQuery.h | 2 +- src/Interpreters/loadMetadata.cpp | 7 ------- src/Parsers/ASTDropQuery.cpp | 4 ++-- src/Parsers/ASTDropQuery.h | 2 +- src/Parsers/ParserDropQuery.cpp | 6 +++--- src/Storages/IStorage.h | 2 +- .../StorageMaterializedPostgreSQL.cpp | 4 ++-- .../PostgreSQL/StorageMaterializedPostgreSQL.h | 2 +- src/Storages/StorageMaterializedView.cpp | 4 ++-- src/Storages/StorageMaterializedView.h | 2 +- src/Storages/WindowView/StorageWindowView.cpp | 6 +++--- src/Storages/WindowView/StorageWindowView.h | 2 +- tests/clickhouse-test | 4 ++-- tests/config/users.d/database_ordinary.xml | 2 +- .../configs/users.xml | 1 - .../configs/users_disable_bytes_settings.xml | 1 - .../configs/users_disable_rows_settings.xml | 1 - .../01047_window_view_parser_inner_table.sql | 1 + .../0_stateless/01048_window_view_parser.sql | 1 + .../01053_drop_database_mat_view.sql | 1 + .../0_stateless/01085_window_view_attach.sql | 1 + .../0_stateless/01086_window_view_cleanup.sh | 2 +- .../0_stateless/01109_exchange_tables.sql | 4 +--- .../0_stateless/01114_database_atomic.sh | 4 ++-- .../01148_zookeeper_path_macros_unfolding.sql | 1 + .../01155_rename_move_materialized_view.sql | 2 ++ .../0_stateless/01162_strange_mutations.sh | 10 +++++----- .../0_stateless/01190_full_attach_syntax.sql | 1 + .../01192_rename_database_zookeeper.sh | 8 ++++---- .../01224_no_superfluous_dict_reload.sql | 1 + ...01225_show_create_table_from_dictionary.sql | 1 + .../01249_bad_arguments_for_bloom_filter.sql | 1 + ...320_create_sync_race_condition_zookeeper.sh | 2 +- .../01516_create_table_primary_key.sql | 1 + .../01517_drop_mv_with_inner_table.sql | 1 + .../0_stateless/01600_detach_permanently.sh | 2 +- .../0_stateless/01601_detach_permanently.sql | 1 + .../0_stateless/01603_rename_overwrite_bug.sql | 1 + .../01810_max_part_removal_threads_long.sh | 2 +- .../0_stateless/02096_rename_atomic_hang.sql | 1 + 67 files changed, 108 insertions(+), 93 deletions(-) diff --git a/docker/test/stateful/run.sh b/docker/test/stateful/run.sh index 5f55bb9fa21..d77978c904b 100755 --- a/docker/test/stateful/run.sh +++ b/docker/test/stateful/run.sh @@ -120,6 +120,10 @@ function run_tests() ADDITIONAL_OPTIONS+=('--replicated-database') fi + if [[ -n "$USE_DATABASE_ORDINARY" ]] && [[ "$USE_DATABASE_ORDINARY" -eq 1 ]]; then + ADDITIONAL_OPTIONS+=('--db-engine=Ordinary') + fi + set +e clickhouse-test -j 2 --testname --shard --zookeeper --check-zookeeper-session --no-stateless --hung-check --print-time \ --skip 00168_parallel_processing_on_replicas "${ADDITIONAL_OPTIONS[@]}" \ diff --git a/docker/test/stateless/run.sh b/docker/test/stateless/run.sh index 52bf8a60669..075f588cae3 100755 --- a/docker/test/stateless/run.sh +++ b/docker/test/stateless/run.sh @@ -115,6 +115,10 @@ function run_tests() ADDITIONAL_OPTIONS+=("$RUN_BY_HASH_TOTAL") fi + if [[ -n "$USE_DATABASE_ORDINARY" ]] && [[ "$USE_DATABASE_ORDINARY" -eq 1 ]]; then + ADDITIONAL_OPTIONS+=('--db-engine=Ordinary') + fi + set +e clickhouse-test --testname --shard --zookeeper --check-zookeeper-session --hung-check --print-time \ --test-runs "$NUM_TRIES" "${ADDITIONAL_OPTIONS[@]}" 2>&1 \ diff --git a/src/Core/Settings.h b/src/Core/Settings.h index f1fd9d20f00..883281c94f3 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -445,7 +445,6 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Seconds, wait_for_window_view_fire_signal_timeout, 10, "Timeout for waiting for window view fire signal in event time processing", 0) \ M(UInt64, min_free_disk_space_for_temporary_data, 0, "The minimum disk space to keep while writing temporary data used in external sorting and aggregation.", 0) \ \ - M(DefaultDatabaseEngine, default_database_engine, DefaultDatabaseEngine::Atomic, "Default database engine.", 0) \ M(DefaultTableEngine, default_table_engine, DefaultTableEngine::None, "Default table engine used when ENGINE is not set in CREATE statement.",0) \ M(Bool, show_table_uuid_in_table_create_query_if_not_nil, false, "For tables in databases with Engine=Atomic show UUID of the table in its CREATE query.", 0) \ M(Bool, database_atomic_wait_for_drop_and_detach_synchronously, false, "When executing DROP or DETACH TABLE in Atomic database, wait for table data to be finally dropped or detached.", 0) \ @@ -591,6 +590,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Bool, use_local_cache_for_remote_storage, true, "Use local cache for remote storage like HDFS or S3, it's used for remote table engine only", 0) \ \ M(Bool, allow_unrestricted_reads_from_keeper, false, "Allow unrestricted (without condition on path) reads from system.zookeeper table, can be handy, but is not safe for zookeeper", 0) \ + M(Bool, allow_deprecated_database_ordinary, false, "Allow to create databases with deprecated Ordinary engine", 0) \ \ /** Experimental functions */ \ M(Bool, allow_experimental_funnel_functions, false, "Enable experimental functions for funnel analysis.", 0) \ @@ -637,6 +637,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) MAKE_OBSOLETE(M, UInt64, background_schedule_pool_size, 128) \ MAKE_OBSOLETE(M, UInt64, background_message_broker_schedule_pool_size, 16) \ MAKE_OBSOLETE(M, UInt64, background_distributed_schedule_pool_size, 16) \ + MAKE_OBSOLETE(M, DefaultDatabaseEngine, default_database_engine, DefaultDatabaseEngine::Atomic) \ /** The section above is for obsolete settings. Do not add anything there. */ diff --git a/src/Databases/DatabaseAtomic.cpp b/src/Databases/DatabaseAtomic.cpp index ea887c84111..9e7d29d89b1 100644 --- a/src/Databases/DatabaseAtomic.cpp +++ b/src/Databases/DatabaseAtomic.cpp @@ -109,13 +109,13 @@ StoragePtr DatabaseAtomic::detachTable(ContextPtr /* context */, const String & return table; } -void DatabaseAtomic::dropTable(ContextPtr local_context, const String & table_name, bool no_delay) +void DatabaseAtomic::dropTable(ContextPtr local_context, const String & table_name, bool sync) { auto table = tryGetTable(table_name, local_context); /// Remove the inner table (if any) to avoid deadlock /// (due to attempt to execute DROP from the worker thread) if (table) - table->dropInnerTableIfAny(no_delay, local_context); + table->dropInnerTableIfAny(sync, local_context); else throw Exception(ErrorCodes::UNKNOWN_TABLE, "Table {}.{} doesn't exist", backQuote(database_name), backQuote(table_name)); @@ -145,7 +145,7 @@ void DatabaseAtomic::dropTable(ContextPtr local_context, const String & table_na /// Notify DatabaseCatalog that table was dropped. It will remove table data in background. /// Cleanup is performed outside of database to allow easily DROP DATABASE without waiting for cleanup to complete. - DatabaseCatalog::instance().enqueueDroppedTableCleanup(table->getStorageID(), table, table_metadata_path_drop, no_delay); + DatabaseCatalog::instance().enqueueDroppedTableCleanup(table->getStorageID(), table, table_metadata_path_drop, sync); } void DatabaseAtomic::renameTable(ContextPtr local_context, const String & table_name, IDatabase & to_database, diff --git a/src/Databases/DatabaseAtomic.h b/src/Databases/DatabaseAtomic.h index b748e53244d..cba9593a601 100644 --- a/src/Databases/DatabaseAtomic.h +++ b/src/Databases/DatabaseAtomic.h @@ -35,7 +35,7 @@ public: bool exchange, bool dictionary) override; - void dropTable(ContextPtr context, const String & table_name, bool no_delay) override; + void dropTable(ContextPtr context, const String & table_name, bool sync) override; void attachTable(ContextPtr context, const String & name, const StoragePtr & table, const String & relative_table_path) override; StoragePtr detachTable(ContextPtr context, const String & name) override; diff --git a/src/Databases/DatabaseFactory.cpp b/src/Databases/DatabaseFactory.cpp index 5cc334eaad4..182d9fe686b 100644 --- a/src/Databases/DatabaseFactory.cpp +++ b/src/Databases/DatabaseFactory.cpp @@ -138,8 +138,13 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String throw Exception(ErrorCodes::BAD_ARGUMENTS, "Database engine `{}` cannot have table overrides", engine_name); if (engine_name == "Ordinary") + { + if (!create.attach && !context->getSettingsRef().allow_deprecated_database_ordinary) + throw Exception(ErrorCodes::UNKNOWN_DATABASE_ENGINE, "Ordinary database engine is deprecated"); return std::make_shared(database_name, metadata_path, context); - else if (engine_name == "Atomic") + } + + if (engine_name == "Atomic") return std::make_shared(database_name, metadata_path, uuid, context); else if (engine_name == "Memory") return std::make_shared(database_name, context); diff --git a/src/Databases/DatabaseLazy.cpp b/src/Databases/DatabaseLazy.cpp index b024c73d578..84e1a132669 100644 --- a/src/Databases/DatabaseLazy.cpp +++ b/src/Databases/DatabaseLazy.cpp @@ -77,10 +77,10 @@ void DatabaseLazy::createTable( void DatabaseLazy::dropTable( ContextPtr local_context, const String & table_name, - bool no_delay) + bool sync) { SCOPE_EXIT_MEMORY_SAFE({ clearExpiredTables(); }); - DatabaseOnDisk::dropTable(local_context, table_name, no_delay); + DatabaseOnDisk::dropTable(local_context, table_name, sync); } void DatabaseLazy::renameTable( diff --git a/src/Databases/DatabaseLazy.h b/src/Databases/DatabaseLazy.h index 3a7d7b14be1..8d4799945fb 100644 --- a/src/Databases/DatabaseLazy.h +++ b/src/Databases/DatabaseLazy.h @@ -37,7 +37,7 @@ public: void dropTable( ContextPtr context, const String & table_name, - bool no_delay) override; + bool sync) override; void renameTable( ContextPtr context, diff --git a/src/Databases/DatabaseMemory.cpp b/src/Databases/DatabaseMemory.cpp index 6df5b70c827..664bb015925 100644 --- a/src/Databases/DatabaseMemory.cpp +++ b/src/Databases/DatabaseMemory.cpp @@ -52,7 +52,7 @@ void DatabaseMemory::createTable( void DatabaseMemory::dropTable( ContextPtr /*context*/, const String & table_name, - bool /*no_delay*/) + bool /*sync*/) { std::unique_lock lock{mutex}; auto table = detachTableUnlocked(table_name, lock); diff --git a/src/Databases/DatabaseMemory.h b/src/Databases/DatabaseMemory.h index b854d9be1f3..6b22b5a4ec2 100644 --- a/src/Databases/DatabaseMemory.h +++ b/src/Databases/DatabaseMemory.h @@ -32,7 +32,7 @@ public: void dropTable( ContextPtr context, const String & table_name, - bool no_delay) override; + bool sync) override; ASTPtr getCreateTableQueryImpl(const String & name, ContextPtr context, bool throw_on_error) const override; ASTPtr getCreateDatabaseQuery() const override; diff --git a/src/Databases/DatabaseOnDisk.cpp b/src/Databases/DatabaseOnDisk.cpp index 9484da8ec2d..67aa712d557 100644 --- a/src/Databases/DatabaseOnDisk.cpp +++ b/src/Databases/DatabaseOnDisk.cpp @@ -281,7 +281,7 @@ void DatabaseOnDisk::detachTablePermanently(ContextPtr query_context, const Stri } } -void DatabaseOnDisk::dropTable(ContextPtr local_context, const String & table_name, bool /*no_delay*/) +void DatabaseOnDisk::dropTable(ContextPtr local_context, const String & table_name, bool /*sync*/) { String table_metadata_path = getObjectMetadataPath(table_name); String table_metadata_path_drop = table_metadata_path + drop_suffix; diff --git a/src/Databases/DatabaseOnDisk.h b/src/Databases/DatabaseOnDisk.h index a118c8da678..462b602a8b8 100644 --- a/src/Databases/DatabaseOnDisk.h +++ b/src/Databases/DatabaseOnDisk.h @@ -43,7 +43,7 @@ public: void dropTable( ContextPtr context, const String & table_name, - bool no_delay) override; + bool sync) override; void renameTable( ContextPtr context, diff --git a/src/Databases/DatabaseReplicated.cpp b/src/Databases/DatabaseReplicated.cpp index 5c701c8d90c..0d20dfb2770 100644 --- a/src/Databases/DatabaseReplicated.cpp +++ b/src/Databases/DatabaseReplicated.cpp @@ -811,7 +811,7 @@ void DatabaseReplicated::shutdown() } -void DatabaseReplicated::dropTable(ContextPtr local_context, const String & table_name, bool no_delay) +void DatabaseReplicated::dropTable(ContextPtr local_context, const String & table_name, bool sync) { auto txn = local_context->getZooKeeperMetadataTransaction(); assert(!ddl_worker->isCurrentlyActive() || txn || startsWith(table_name, ".inner_id.")); @@ -820,7 +820,7 @@ void DatabaseReplicated::dropTable(ContextPtr local_context, const String & tabl String metadata_zk_path = zookeeper_path + "/metadata/" + escapeForFileName(table_name); txn->addOp(zkutil::makeRemoveRequest(metadata_zk_path, -1)); } - DatabaseAtomic::dropTable(local_context, table_name, no_delay); + DatabaseAtomic::dropTable(local_context, table_name, sync); } void DatabaseReplicated::renameTable(ContextPtr local_context, const String & table_name, IDatabase & to_database, diff --git a/src/Databases/DatabaseReplicated.h b/src/Databases/DatabaseReplicated.h index 45a9d12981c..3aa2aa378b7 100644 --- a/src/Databases/DatabaseReplicated.h +++ b/src/Databases/DatabaseReplicated.h @@ -30,7 +30,7 @@ public: String getEngineName() const override { return "Replicated"; } /// If current query is initial, then the following methods add metadata updating ZooKeeper operations to current ZooKeeperMetadataTransaction. - void dropTable(ContextPtr, const String & table_name, bool no_delay) override; + void dropTable(ContextPtr, const String & table_name, bool sync) override; void renameTable(ContextPtr context, const String & table_name, IDatabase & to_database, const String & to_table_name, bool exchange, bool dictionary) override; void commitCreateTable(const ASTCreateQuery & query, const StoragePtr & table, diff --git a/src/Databases/IDatabase.h b/src/Databases/IDatabase.h index 38c85cf3d05..4de64a2b24f 100644 --- a/src/Databases/IDatabase.h +++ b/src/Databases/IDatabase.h @@ -198,7 +198,7 @@ public: virtual void dropTable( /// NOLINT ContextPtr /*context*/, const String & /*name*/, - [[maybe_unused]] bool no_delay = false) + [[maybe_unused]] bool sync = false) { throw Exception("There is no DROP TABLE query for Database" + getEngineName(), ErrorCodes::NOT_IMPLEMENTED); } diff --git a/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp b/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp index 13f55eab9e2..a81e07f0173 100644 --- a/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp +++ b/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp @@ -80,10 +80,10 @@ void DatabaseMaterializedMySQL::createTable(ContextPtr context_, const String & DatabaseAtomic::createTable(context_, name, table, query); } -void DatabaseMaterializedMySQL::dropTable(ContextPtr context_, const String & name, bool no_delay) +void DatabaseMaterializedMySQL::dropTable(ContextPtr context_, const String & name, bool sync) { checkIsInternalQuery(context_, "DROP TABLE"); - DatabaseAtomic::dropTable(context_, name, no_delay); + DatabaseAtomic::dropTable(context_, name, sync); } void DatabaseMaterializedMySQL::attachTable(ContextPtr context_, const String & name, const StoragePtr & table, const String & relative_table_path) diff --git a/src/Databases/MySQL/DatabaseMaterializedMySQL.h b/src/Databases/MySQL/DatabaseMaterializedMySQL.h index 32686784f2a..a6810f29d87 100644 --- a/src/Databases/MySQL/DatabaseMaterializedMySQL.h +++ b/src/Databases/MySQL/DatabaseMaterializedMySQL.h @@ -52,7 +52,7 @@ public: void createTable(ContextPtr context_, const String & name, const StoragePtr & table, const ASTPtr & query) override; - void dropTable(ContextPtr context_, const String & name, bool no_delay) override; + void dropTable(ContextPtr context_, const String & name, bool sync) override; void attachTable(ContextPtr context_, const String & name, const StoragePtr & table, const String & relative_table_path) override; diff --git a/src/Databases/MySQL/DatabaseMySQL.cpp b/src/Databases/MySQL/DatabaseMySQL.cpp index 58be682bd73..95098ba9cbd 100644 --- a/src/Databases/MySQL/DatabaseMySQL.cpp +++ b/src/Databases/MySQL/DatabaseMySQL.cpp @@ -447,7 +447,7 @@ void DatabaseMySQL::detachTablePermanently(ContextPtr, const String & table_name table_iter->second.second->is_dropped = true; } -void DatabaseMySQL::dropTable(ContextPtr local_context, const String & table_name, bool /*no_delay*/) +void DatabaseMySQL::dropTable(ContextPtr local_context, const String & table_name, bool /*sync*/) { detachTablePermanently(local_context, table_name); } diff --git a/src/Databases/MySQL/DatabaseMySQL.h b/src/Databases/MySQL/DatabaseMySQL.h index 1ee090ecd52..6a5105e2dba 100644 --- a/src/Databases/MySQL/DatabaseMySQL.h +++ b/src/Databases/MySQL/DatabaseMySQL.h @@ -82,7 +82,7 @@ public: void detachTablePermanently(ContextPtr context, const String & table_name) override; - void dropTable(ContextPtr context, const String & table_name, bool no_delay) override; + void dropTable(ContextPtr context, const String & table_name, bool sync) override; void attachTable(ContextPtr context, const String & table_name, const StoragePtr & storage, const String & relative_table_path) override; diff --git a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp index 60d2fa0d2c8..8c4be49ef5c 100644 --- a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp +++ b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp @@ -389,10 +389,10 @@ void DatabaseMaterializedPostgreSQL::stopReplication() } -void DatabaseMaterializedPostgreSQL::dropTable(ContextPtr local_context, const String & table_name, bool no_delay) +void DatabaseMaterializedPostgreSQL::dropTable(ContextPtr local_context, const String & table_name, bool sync) { /// Modify context into nested_context and pass query to Atomic database. - DatabaseAtomic::dropTable(StorageMaterializedPostgreSQL::makeNestedTableContext(local_context), table_name, no_delay); + DatabaseAtomic::dropTable(StorageMaterializedPostgreSQL::makeNestedTableContext(local_context), table_name, sync); } diff --git a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.h b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.h index 08420f4ba5e..ac2bcedca60 100644 --- a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.h +++ b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.h @@ -55,7 +55,7 @@ public: StoragePtr detachTable(ContextPtr context, const String & table_name) override; - void dropTable(ContextPtr local_context, const String & name, bool no_delay) override; + void dropTable(ContextPtr local_context, const String & name, bool sync) override; void drop(ContextPtr local_context) override; diff --git a/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp b/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp index 1bcc203beb9..fed4d1ee64d 100644 --- a/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp +++ b/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp @@ -264,7 +264,7 @@ void DatabasePostgreSQL::createTable(ContextPtr local_context, const String & ta } -void DatabasePostgreSQL::dropTable(ContextPtr, const String & table_name, bool /* no_delay */) +void DatabasePostgreSQL::dropTable(ContextPtr, const String & table_name, bool /* sync */) { std::lock_guard lock{mutex}; diff --git a/src/Databases/PostgreSQL/DatabasePostgreSQL.h b/src/Databases/PostgreSQL/DatabasePostgreSQL.h index 3397dcc8076..3d5e7bd444e 100644 --- a/src/Databases/PostgreSQL/DatabasePostgreSQL.h +++ b/src/Databases/PostgreSQL/DatabasePostgreSQL.h @@ -53,7 +53,7 @@ public: StoragePtr tryGetTable(const String & name, ContextPtr context) const override; void createTable(ContextPtr, const String & table_name, const StoragePtr & storage, const ASTPtr & create_query) override; - void dropTable(ContextPtr, const String & table_name, bool no_delay) override; + void dropTable(ContextPtr, const String & table_name, bool sync) override; void attachTable(ContextPtr context, const String & table_name, const StoragePtr & storage, const String & relative_table_path) override; StoragePtr detachTable(ContextPtr context, const String & table_name) override; diff --git a/src/Interpreters/AsynchronousInsertQueue.h b/src/Interpreters/AsynchronousInsertQueue.h index db3cb3049fd..8a4e8dad8dd 100644 --- a/src/Interpreters/AsynchronousInsertQueue.h +++ b/src/Interpreters/AsynchronousInsertQueue.h @@ -1,7 +1,6 @@ #pragma once #include -#include #include #include #include diff --git a/src/Interpreters/HashJoin.h b/src/Interpreters/HashJoin.h index b2a7aedaa5a..17d09b25ea1 100644 --- a/src/Interpreters/HashJoin.h +++ b/src/Interpreters/HashJoin.h @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include @@ -339,7 +339,7 @@ public: /// We keep correspondence between used_flags and hash table internal buffer. /// Hash table cannot be modified during HashJoin lifetime and must be protected with lock. - void setLock(RWLockImpl::LockHolder rwlock_holder) + void setLock(TableLockHolder rwlock_holder) { storage_join_lock = rwlock_holder; } @@ -394,7 +394,7 @@ private: /// Should be set via setLock to protect hash table from modification from StorageJoin /// If set HashJoin instance is not available for modification (addJoinedBlock) - RWLockImpl::LockHolder storage_join_lock = nullptr; + TableLockHolder storage_join_lock = nullptr; void dataMapInit(MapsVariant &); diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index b29f7372d38..7c5c6e15638 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -150,10 +150,9 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) /// When attaching old-style database during server startup, we must always use Ordinary engine if (create.attach) throw Exception("Database engine must be specified for ATTACH DATABASE query", ErrorCodes::UNKNOWN_DATABASE_ENGINE); - bool old_style_database = getContext()->getSettingsRef().default_database_engine.value == DefaultDatabaseEngine::Ordinary; auto engine = std::make_shared(); auto storage = std::make_shared(); - engine->name = old_style_database ? "Ordinary" : "Atomic"; + engine->name = "Atomic"; engine->no_empty_args = true; storage->set(storage->engine, engine); create.set(create.storage, storage); @@ -196,8 +195,7 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) if (create_from_user) { - const auto & default_engine = getContext()->getSettingsRef().default_database_engine.value; - if (create.uuid == UUIDHelpers::Nil && default_engine == DefaultDatabaseEngine::Atomic) + if (create.uuid == UUIDHelpers::Nil) create.uuid = UUIDHelpers::generateV4(); /// Will enable Atomic engine for nested database } else if (attach_from_user && create.uuid == UUIDHelpers::Nil) diff --git a/src/Interpreters/InterpreterDropQuery.cpp b/src/Interpreters/InterpreterDropQuery.cpp index 41b65e73efa..ac731ec6f4b 100644 --- a/src/Interpreters/InterpreterDropQuery.cpp +++ b/src/Interpreters/InterpreterDropQuery.cpp @@ -62,7 +62,7 @@ BlockIO InterpreterDropQuery::execute() } if (getContext()->getSettingsRef().database_atomic_wait_for_drop_and_detach_synchronously) - drop.no_delay = true; + drop.sync = true; if (drop.table) return executeToTable(drop); @@ -89,7 +89,7 @@ BlockIO InterpreterDropQuery::executeToTable(ASTDropQuery & query) DatabasePtr database; UUID table_to_wait_on = UUIDHelpers::Nil; auto res = executeToTableImpl(getContext(), query, database, table_to_wait_on); - if (query.no_delay) + if (query.sync) waitForTableToBeActuallyDroppedOrDetached(query, database, table_to_wait_on); return res; } @@ -244,7 +244,7 @@ BlockIO InterpreterDropQuery::executeToTableImpl(ContextPtr context_, ASTDropQue DatabaseCatalog::instance().tryRemoveLoadingDependencies(table_id, getContext()->getSettingsRef().check_table_dependencies, is_drop_or_detach_database); - database->dropTable(context_, table_id.table_name, query.no_delay); + database->dropTable(context_, table_id.table_name, query.sync); } db = database; @@ -300,7 +300,7 @@ BlockIO InterpreterDropQuery::executeToDatabase(const ASTDropQuery & query) } catch (...) { - if (query.no_delay) + if (query.sync) { for (const auto & table_uuid : tables_to_wait) waitForTableToBeActuallyDroppedOrDetached(query, database, table_uuid); @@ -308,7 +308,7 @@ BlockIO InterpreterDropQuery::executeToDatabase(const ASTDropQuery & query) throw; } - if (query.no_delay) + if (query.sync) { for (const auto & table_uuid : tables_to_wait) waitForTableToBeActuallyDroppedOrDetached(query, database, table_uuid); @@ -345,7 +345,7 @@ BlockIO InterpreterDropQuery::executeToDatabaseImpl(const ASTDropQuery & query, query_for_table.kind = query.kind; query_for_table.if_exists = true; query_for_table.setDatabase(database_name); - query_for_table.no_delay = query.no_delay; + query_for_table.sync = query.sync; /// Flush should not be done if shouldBeEmptyOnDetach() == false, /// since in this case getTablesIterator() may do some additional work, @@ -368,7 +368,7 @@ BlockIO InterpreterDropQuery::executeToDatabaseImpl(const ASTDropQuery & query, } } - if (!drop && query.no_delay) + if (!drop && query.sync) { /// Avoid "some tables are still in use" when sync mode is enabled for (const auto & table_uuid : uuids_to_wait) @@ -428,7 +428,7 @@ void InterpreterDropQuery::extendQueryLogElemImpl(QueryLogElement & elem, const elem.query_kind = "Drop"; } -void InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind kind, ContextPtr global_context, ContextPtr current_context, const StorageID & target_table_id, bool no_delay) +void InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind kind, ContextPtr global_context, ContextPtr current_context, const StorageID & target_table_id, bool sync) { if (DatabaseCatalog::instance().tryGetTable(target_table_id, current_context)) { @@ -437,7 +437,7 @@ void InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind kind, ContextPtr drop_query->setDatabase(target_table_id.database_name); drop_query->setTable(target_table_id.table_name); drop_query->kind = kind; - drop_query->no_delay = no_delay; + drop_query->sync = sync; drop_query->if_exists = true; ASTPtr ast_drop_query = drop_query; /// FIXME We have to use global context to execute DROP query for inner table diff --git a/src/Interpreters/InterpreterDropQuery.h b/src/Interpreters/InterpreterDropQuery.h index 1a38abcdff9..2b65039954b 100644 --- a/src/Interpreters/InterpreterDropQuery.h +++ b/src/Interpreters/InterpreterDropQuery.h @@ -26,7 +26,7 @@ public: void extendQueryLogElemImpl(QueryLogElement & elem, const ASTPtr &, ContextPtr) const override; - static void executeDropQuery(ASTDropQuery::Kind kind, ContextPtr global_context, ContextPtr current_context, const StorageID & target_table_id, bool no_delay); + static void executeDropQuery(ASTDropQuery::Kind kind, ContextPtr global_context, ContextPtr current_context, const StorageID & target_table_id, bool sync); private: AccessRightsElements getRequiredAccessForDDLOnCluster() const; diff --git a/src/Interpreters/loadMetadata.cpp b/src/Interpreters/loadMetadata.cpp index de920eaddbf..f6cfbe452c6 100644 --- a/src/Interpreters/loadMetadata.cpp +++ b/src/Interpreters/loadMetadata.cpp @@ -18,7 +18,6 @@ #include #include -#include #include #include @@ -71,12 +70,6 @@ static void loadDatabase( ReadBufferFromFile in(database_metadata_file, 1024); readStringUntilEOF(database_attach_query, in); } - else if (fs::exists(fs::path(database_path))) - { - /// TODO Remove this code (it's required for compatibility with versions older than 20.7) - /// Database exists, but .sql file is absent. It's old-style Ordinary database (e.g. system or default) - database_attach_query = "ATTACH DATABASE " + backQuoteIfNeed(database) + " ENGINE = Ordinary"; - } else { /// It's first server run and we need create default and system databases. diff --git a/src/Parsers/ASTDropQuery.cpp b/src/Parsers/ASTDropQuery.cpp index 9e815ee75de..11c1dd4c47a 100644 --- a/src/Parsers/ASTDropQuery.cpp +++ b/src/Parsers/ASTDropQuery.cpp @@ -72,8 +72,8 @@ void ASTDropQuery::formatQueryImpl(const FormatSettings & settings, FormatState if (permanently) settings.ostr << " PERMANENTLY"; - if (no_delay) - settings.ostr << (settings.hilite ? hilite_keyword : "") << " NO DELAY" << (settings.hilite ? hilite_none : ""); + if (sync) + settings.ostr << (settings.hilite ? hilite_keyword : "") << " SYNC" << (settings.hilite ? hilite_none : ""); } } diff --git a/src/Parsers/ASTDropQuery.h b/src/Parsers/ASTDropQuery.h index ef2b609fbac..b4c96353a09 100644 --- a/src/Parsers/ASTDropQuery.h +++ b/src/Parsers/ASTDropQuery.h @@ -31,7 +31,7 @@ public: /// Same as above bool is_view{false}; - bool no_delay{false}; + bool sync{false}; // We detach the object permanently, so it will not be reattached back during server restart. bool permanently{false}; diff --git a/src/Parsers/ParserDropQuery.cpp b/src/Parsers/ParserDropQuery.cpp index e7263aa47f5..f40a39e6b2f 100644 --- a/src/Parsers/ParserDropQuery.cpp +++ b/src/Parsers/ParserDropQuery.cpp @@ -31,7 +31,7 @@ bool parseDropQuery(IParser::Pos & pos, ASTPtr & node, Expected & expected, cons bool temporary = false; bool is_dictionary = false; bool is_view = false; - bool no_delay = false; + bool sync = false; bool permanently = false; if (s_database.ignore(pos, expected)) @@ -83,7 +83,7 @@ bool parseDropQuery(IParser::Pos & pos, ASTPtr & node, Expected & expected, cons /// actually for TRUNCATE NO DELAY / SYNC means nothing if (s_no_delay.ignore(pos, expected) || s_sync.ignore(pos, expected)) - no_delay = true; + sync = true; auto query = std::make_shared(); node = query; @@ -93,7 +93,7 @@ bool parseDropQuery(IParser::Pos & pos, ASTPtr & node, Expected & expected, cons query->temporary = temporary; query->is_dictionary = is_dictionary; query->is_view = is_view; - query->no_delay = no_delay; + query->sync = sync; query->permanently = permanently; query->database = database; query->table = table; diff --git a/src/Storages/IStorage.h b/src/Storages/IStorage.h index a655da4473b..6dd329db02b 100644 --- a/src/Storages/IStorage.h +++ b/src/Storages/IStorage.h @@ -396,7 +396,7 @@ public: */ virtual void drop() {} - virtual void dropInnerTableIfAny(bool /* no_delay */, ContextPtr /* context */) {} + virtual void dropInnerTableIfAny(bool /* sync */, ContextPtr /* context */) {} /** Clear the table data and leave it empty. * Must be called under exclusive lock (lockExclusively). diff --git a/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.cpp b/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.cpp index 190ffabe2c1..cc80d567d1d 100644 --- a/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.cpp +++ b/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.cpp @@ -240,7 +240,7 @@ void StorageMaterializedPostgreSQL::shutdown() } -void StorageMaterializedPostgreSQL::dropInnerTableIfAny(bool no_delay, ContextPtr local_context) +void StorageMaterializedPostgreSQL::dropInnerTableIfAny(bool sync, ContextPtr local_context) { /// If it is a table with database engine MaterializedPostgreSQL - return, because delition of /// internal tables is managed there. @@ -252,7 +252,7 @@ void StorageMaterializedPostgreSQL::dropInnerTableIfAny(bool no_delay, ContextPt auto nested_table = tryGetNested() != nullptr; if (nested_table) - InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind::Drop, getContext(), local_context, getNestedStorageID(), no_delay); + InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind::Drop, getContext(), local_context, getNestedStorageID(), sync); } diff --git a/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.h b/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.h index bb3836a8853..f1eea33d4b0 100644 --- a/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.h +++ b/src/Storages/PostgreSQL/StorageMaterializedPostgreSQL.h @@ -84,7 +84,7 @@ public: void shutdown() override; /// Used only for single MaterializedPostgreSQL storage. - void dropInnerTableIfAny(bool no_delay, ContextPtr local_context) override; + void dropInnerTableIfAny(bool sync, ContextPtr local_context) override; NamesAndTypesList getVirtuals() const override; diff --git a/src/Storages/StorageMaterializedView.cpp b/src/Storages/StorageMaterializedView.cpp index d0685c263f8..2ece0af3359 100644 --- a/src/Storages/StorageMaterializedView.cpp +++ b/src/Storages/StorageMaterializedView.cpp @@ -215,10 +215,10 @@ void StorageMaterializedView::drop() dropInnerTableIfAny(true, getContext()); } -void StorageMaterializedView::dropInnerTableIfAny(bool no_delay, ContextPtr local_context) +void StorageMaterializedView::dropInnerTableIfAny(bool sync, ContextPtr local_context) { if (has_inner_table && tryGetTargetTable()) - InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind::Drop, getContext(), local_context, target_table_id, no_delay); + InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind::Drop, getContext(), local_context, target_table_id, sync); } void StorageMaterializedView::truncate(const ASTPtr &, const StorageMetadataPtr &, ContextPtr local_context, TableExclusiveLockHolder &) diff --git a/src/Storages/StorageMaterializedView.h b/src/Storages/StorageMaterializedView.h index 8aec0313ecb..0adf394876c 100644 --- a/src/Storages/StorageMaterializedView.h +++ b/src/Storages/StorageMaterializedView.h @@ -42,7 +42,7 @@ public: SinkToStoragePtr write(const ASTPtr & query, const StorageMetadataPtr & /*metadata_snapshot*/, ContextPtr context) override; void drop() override; - void dropInnerTableIfAny(bool no_delay, ContextPtr local_context) override; + void dropInnerTableIfAny(bool sync, ContextPtr local_context) override; void truncate(const ASTPtr &, const StorageMetadataPtr &, ContextPtr, TableExclusiveLockHolder &) override; diff --git a/src/Storages/WindowView/StorageWindowView.cpp b/src/Storages/WindowView/StorageWindowView.cpp index cfb19869074..d9780eb8446 100644 --- a/src/Storages/WindowView/StorageWindowView.cpp +++ b/src/Storages/WindowView/StorageWindowView.cpp @@ -1606,7 +1606,7 @@ void StorageWindowView::drop() dropInnerTableIfAny(true, getContext()); } -void StorageWindowView::dropInnerTableIfAny(bool no_delay, ContextPtr local_context) +void StorageWindowView::dropInnerTableIfAny(bool sync, ContextPtr local_context) { if (!std::exchange(has_inner_table, false)) return; @@ -1614,10 +1614,10 @@ void StorageWindowView::dropInnerTableIfAny(bool no_delay, ContextPtr local_cont try { InterpreterDropQuery::executeDropQuery( - ASTDropQuery::Kind::Drop, getContext(), local_context, inner_table_id, no_delay); + ASTDropQuery::Kind::Drop, getContext(), local_context, inner_table_id, sync); if (has_inner_target_table) - InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind::Drop, getContext(), local_context, target_table_id, no_delay); + InterpreterDropQuery::executeDropQuery(ASTDropQuery::Kind::Drop, getContext(), local_context, target_table_id, sync); } catch (...) { diff --git a/src/Storages/WindowView/StorageWindowView.h b/src/Storages/WindowView/StorageWindowView.h index 86cc80ee8ea..96c034b9590 100644 --- a/src/Storages/WindowView/StorageWindowView.h +++ b/src/Storages/WindowView/StorageWindowView.h @@ -120,7 +120,7 @@ public: void checkTableCanBeDropped() const override; - void dropInnerTableIfAny(bool no_delay, ContextPtr context) override; + void dropInnerTableIfAny(bool sync, ContextPtr context) override; void drop() override; diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 3e0d4e822b4..189bb1e687f 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -1489,9 +1489,9 @@ def collect_build_flags(args): result.append(BuildFlags.RELEASE) value = clickhouse_execute( - args, "SELECT value FROM system.settings WHERE name = 'default_database_engine'" + args, "SELECT value FROM system.settings WHERE name = 'allow_deprecated_database_ordinary'" ) - if value == b"Ordinary": + if value == b"1": result.append(BuildFlags.ORDINARY_DATABASE) value = int( diff --git a/tests/config/users.d/database_ordinary.xml b/tests/config/users.d/database_ordinary.xml index b3b81ee25ff..8ffd2f27a62 100644 --- a/tests/config/users.d/database_ordinary.xml +++ b/tests/config/users.d/database_ordinary.xml @@ -1,7 +1,7 @@ - Ordinary + 1 diff --git a/tests/integration/test_materialized_mysql_database/configs/users.xml b/tests/integration/test_materialized_mysql_database/configs/users.xml index 4b7f5a1b109..0e116f115fe 100644 --- a/tests/integration/test_materialized_mysql_database/configs/users.xml +++ b/tests/integration/test_materialized_mysql_database/configs/users.xml @@ -3,7 +3,6 @@ 1 - Atomic 1 0 diff --git a/tests/integration/test_materialized_mysql_database/configs/users_disable_bytes_settings.xml b/tests/integration/test_materialized_mysql_database/configs/users_disable_bytes_settings.xml index f590ebff6b4..a00b6ca6b9a 100644 --- a/tests/integration/test_materialized_mysql_database/configs/users_disable_bytes_settings.xml +++ b/tests/integration/test_materialized_mysql_database/configs/users_disable_bytes_settings.xml @@ -3,7 +3,6 @@ 1 - Atomic 1 0 diff --git a/tests/integration/test_materialized_mysql_database/configs/users_disable_rows_settings.xml b/tests/integration/test_materialized_mysql_database/configs/users_disable_rows_settings.xml index e0fa0a9097b..3a7cc2537e5 100644 --- a/tests/integration/test_materialized_mysql_database/configs/users_disable_rows_settings.xml +++ b/tests/integration/test_materialized_mysql_database/configs/users_disable_rows_settings.xml @@ -3,7 +3,6 @@ 1 - Atomic 0 1 diff --git a/tests/queries/0_stateless/01047_window_view_parser_inner_table.sql b/tests/queries/0_stateless/01047_window_view_parser_inner_table.sql index 8b978e6094c..2d9911287a3 100644 --- a/tests/queries/0_stateless/01047_window_view_parser_inner_table.sql +++ b/tests/queries/0_stateless/01047_window_view_parser_inner_table.sql @@ -2,6 +2,7 @@ SET allow_experimental_window_view = 1; DROP DATABASE IF EXISTS test_01047; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test_01047 ENGINE=Ordinary; DROP TABLE IF EXISTS test_01047.mt; diff --git a/tests/queries/0_stateless/01048_window_view_parser.sql b/tests/queries/0_stateless/01048_window_view_parser.sql index 95190ddafa1..4c329f99f6e 100644 --- a/tests/queries/0_stateless/01048_window_view_parser.sql +++ b/tests/queries/0_stateless/01048_window_view_parser.sql @@ -2,6 +2,7 @@ SET allow_experimental_window_view = 1; DROP DATABASE IF EXISTS test_01048; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test_01048 ENGINE=Ordinary; DROP TABLE IF EXISTS test_01048.mt; diff --git a/tests/queries/0_stateless/01053_drop_database_mat_view.sql b/tests/queries/0_stateless/01053_drop_database_mat_view.sql index 67a488f7245..e9936d7d3b2 100644 --- a/tests/queries/0_stateless/01053_drop_database_mat_view.sql +++ b/tests/queries/0_stateless/01053_drop_database_mat_view.sql @@ -1,6 +1,7 @@ -- Tags: no-parallel DROP DATABASE IF EXISTS some_tests; +set allow_deprecated_database_ordinary=1; CREATE DATABASE some_tests ENGINE=Ordinary; -- Different inner table name with Atomic create table some_tests.my_table ENGINE = MergeTree(day, (day), 8192) as select today() as day, 'mystring' as str; diff --git a/tests/queries/0_stateless/01085_window_view_attach.sql b/tests/queries/0_stateless/01085_window_view_attach.sql index 604bf5dd198..bb47e0dc6b9 100644 --- a/tests/queries/0_stateless/01085_window_view_attach.sql +++ b/tests/queries/0_stateless/01085_window_view_attach.sql @@ -3,6 +3,7 @@ SET allow_experimental_window_view = 1; DROP DATABASE IF EXISTS test_01085; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test_01085 ENGINE=Ordinary; DROP TABLE IF EXISTS test_01085.mt; diff --git a/tests/queries/0_stateless/01086_window_view_cleanup.sh b/tests/queries/0_stateless/01086_window_view_cleanup.sh index a7b976bf4e0..c85455616e1 100755 --- a/tests/queries/0_stateless/01086_window_view_cleanup.sh +++ b/tests/queries/0_stateless/01086_window_view_cleanup.sh @@ -5,7 +5,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CURDIR"/../shell_config.sh -$CLICKHOUSE_CLIENT --multiquery <&1| grep -Ev "Removing leftovers from table|removed by another replica" $CLICKHOUSE_CLIENT -q "select count(), sum(n), sum(test) from test" if [[ $engine == *"ReplicatedMergeTree"* ]]; then - $CLICKHOUSE_CLIENT --enable_positional_arguments 0 -q "ALTER TABLE test - UPDATE test = (SELECT groupArray(id) FROM t1)[n - 99] WHERE 1" 2>&1| grep -Fa "DB::Exception: " | grep -Fv "statement with subquery may be nondeterministic" - $CLICKHOUSE_CLIENT --enable_positional_arguments 0 --allow_nondeterministic_mutations=1 --mutations_sync=1 -q "ALTER TABLE test + $CLICKHOUSE_CLIENT 0 -q "ALTER TABLE test + UPDATE test = (SELECT groupArray(id) FROM t1 GROUP BY 'dummy')[n - 99] WHERE 1" 2>&1| grep -Fa "DB::Exception: " | grep -Fv "statement with subquery may be nondeterministic" + $CLICKHOUSE_CLIENT --allow_nondeterministic_mutations=1 --mutations_sync=1 -q "ALTER TABLE test UPDATE test = (SELECT groupArray(id) FROM t1)[n - 99] WHERE 1" elif [[ $engine == *"Join"* ]]; then - $CLICKHOUSE_CLIENT --enable_positional_arguments 0 -q "ALTER TABLE test + $CLICKHOUSE_CLIENT -q "ALTER TABLE test UPDATE test = (SELECT groupArray(id) FROM t1)[n - 99] WHERE 1" 2>&1| grep -Fa "DB::Exception: " | grep -Fv "Table engine Join supports only DELETE mutations" else - $CLICKHOUSE_CLIENT --enable_positional_arguments 0 --mutations_sync=1 -q "ALTER TABLE test + $CLICKHOUSE_CLIENT --mutations_sync=1 -q "ALTER TABLE test UPDATE test = (SELECT groupArray(id) FROM t1)[n - 99] WHERE 1" fi $CLICKHOUSE_CLIENT -q "select count(), sum(n), sum(test) from test" diff --git a/tests/queries/0_stateless/01190_full_attach_syntax.sql b/tests/queries/0_stateless/01190_full_attach_syntax.sql index ed05950ff98..e0ffe7ede66 100644 --- a/tests/queries/0_stateless/01190_full_attach_syntax.sql +++ b/tests/queries/0_stateless/01190_full_attach_syntax.sql @@ -1,6 +1,7 @@ -- Tags: no-parallel DROP DATABASE IF EXISTS test_01190; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test_01190 ENGINE=Ordinary; -- Full ATTACH requires UUID with Atomic USE test_01190; diff --git a/tests/queries/0_stateless/01192_rename_database_zookeeper.sh b/tests/queries/0_stateless/01192_rename_database_zookeeper.sh index c6686bde672..641e26870d4 100755 --- a/tests/queries/0_stateless/01192_rename_database_zookeeper.sh +++ b/tests/queries/0_stateless/01192_rename_database_zookeeper.sh @@ -11,8 +11,8 @@ $CLICKHOUSE_CLIENT --check_table_dependencies=0 -q "DROP DATABASE IF EXISTS test $CLICKHOUSE_CLIENT --check_table_dependencies=0 -q "DROP DATABASE IF EXISTS test_01192_renamed" $CLICKHOUSE_CLIENT --check_table_dependencies=0 -q "DROP DATABASE IF EXISTS test_01192_atomic" -$CLICKHOUSE_CLIENT --default_database_engine=Ordinary -q "CREATE DATABASE test_01192 UUID '00001192-0000-4000-8000-000000000001'" 2>&1| grep -F "does not support" > /dev/null && echo "ok" -$CLICKHOUSE_CLIENT --default_database_engine=Atomic -q "CREATE DATABASE test_01192 UUID '00001192-0000-4000-8000-000000000001'" +$CLICKHOUSE_CLIENT --allow_deprecated_database_ordinary=1 -q "CREATE DATABASE test_01192 UUID '00001192-0000-4000-8000-000000000001' ENGINE=Ordinary" 2>&1| grep -F "does not support" > /dev/null && echo "ok" +$CLICKHOUSE_CLIENT -q "CREATE DATABASE test_01192 UUID '00001192-0000-4000-8000-000000000001'" # 2. check metadata $CLICKHOUSE_CLIENT --show_table_uuid_in_table_create_query_if_not_nil=1 -q "SHOW CREATE DATABASE test_01192" @@ -35,14 +35,14 @@ $CLICKHOUSE_CLIENT -q "SHOW CREATE DATABASE test_01192_renamed" $CLICKHOUSE_CLIENT -q "SELECT count(n), sum(n) FROM test_01192_renamed.mt" # 5. check moving tables from Ordinary to Atomic (can be used to "alter" database engine) -$CLICKHOUSE_CLIENT --default_database_engine=Ordinary -q "CREATE DATABASE test_01192" +$CLICKHOUSE_CLIENT --allow_deprecated_database_ordinary=1 -q "CREATE DATABASE test_01192 ENGINE=Ordinary" $CLICKHOUSE_CLIENT -q "CREATE TABLE test_01192.mt AS test_01192_renamed.mt ENGINE=MergeTree ORDER BY n" $CLICKHOUSE_CLIENT -q "CREATE TABLE test_01192.rmt AS test_01192_renamed.mt ENGINE=ReplicatedMergeTree('/test/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/', '1') ORDER BY n" $CLICKHOUSE_CLIENT -q "CREATE MATERIALIZED VIEW test_01192.mv TO test_01192.rmt AS SELECT * FROM test_01192.mt" $CLICKHOUSE_CLIENT -q "INSERT INTO test_01192.mt SELECT number FROM numbers(10)" && echo "inserted" -$CLICKHOUSE_CLIENT --default_database_engine=Atomic -q "CREATE DATABASE test_01192_atomic" +$CLICKHOUSE_CLIENT -q "CREATE DATABASE test_01192_atomic" $CLICKHOUSE_CLIENT -q "DROP DATABASE test_01192_renamed" # it's blocking $CLICKHOUSE_CLIENT -q "RENAME TABLE test_01192.mt TO test_01192_atomic.mt, test_01192.rmt TO test_01192_atomic.rmt, test_01192.mv TO test_01192_atomic.mv" && echo "renamed" diff --git a/tests/queries/0_stateless/01224_no_superfluous_dict_reload.sql b/tests/queries/0_stateless/01224_no_superfluous_dict_reload.sql index 6f5deb91ee4..5db92e70650 100644 --- a/tests/queries/0_stateless/01224_no_superfluous_dict_reload.sql +++ b/tests/queries/0_stateless/01224_no_superfluous_dict_reload.sql @@ -2,6 +2,7 @@ DROP DATABASE IF EXISTS dict_db_01224; DROP DATABASE IF EXISTS dict_db_01224_dictionary; +set allow_deprecated_database_ordinary=1; CREATE DATABASE dict_db_01224 ENGINE=Ordinary; -- Different internal dictionary name with Atomic CREATE DATABASE dict_db_01224_dictionary Engine=Dictionary; diff --git a/tests/queries/0_stateless/01225_show_create_table_from_dictionary.sql b/tests/queries/0_stateless/01225_show_create_table_from_dictionary.sql index 006ff952ee9..09cde642ed2 100644 --- a/tests/queries/0_stateless/01225_show_create_table_from_dictionary.sql +++ b/tests/queries/0_stateless/01225_show_create_table_from_dictionary.sql @@ -2,6 +2,7 @@ DROP DATABASE IF EXISTS dict_db_01225; DROP DATABASE IF EXISTS dict_db_01225_dictionary; +set allow_deprecated_database_ordinary=1; CREATE DATABASE dict_db_01225 ENGINE=Ordinary; -- Different internal dictionary name with Atomic CREATE DATABASE dict_db_01225_dictionary Engine=Dictionary; diff --git a/tests/queries/0_stateless/01249_bad_arguments_for_bloom_filter.sql b/tests/queries/0_stateless/01249_bad_arguments_for_bloom_filter.sql index c2be4d04e5f..d187a2e4d4e 100644 --- a/tests/queries/0_stateless/01249_bad_arguments_for_bloom_filter.sql +++ b/tests/queries/0_stateless/01249_bad_arguments_for_bloom_filter.sql @@ -1,6 +1,7 @@ -- Tags: no-parallel DROP DATABASE IF EXISTS test_01249; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test_01249 ENGINE=Ordinary; -- Full ATTACH requires UUID with Atomic USE test_01249; diff --git a/tests/queries/0_stateless/01320_create_sync_race_condition_zookeeper.sh b/tests/queries/0_stateless/01320_create_sync_race_condition_zookeeper.sh index 758ec4825e0..ef45e8e63bc 100755 --- a/tests/queries/0_stateless/01320_create_sync_race_condition_zookeeper.sh +++ b/tests/queries/0_stateless/01320_create_sync_race_condition_zookeeper.sh @@ -8,7 +8,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) set -e $CLICKHOUSE_CLIENT --query "DROP DATABASE IF EXISTS test_01320" -$CLICKHOUSE_CLIENT --query "CREATE DATABASE test_01320 ENGINE=Ordinary" # Different bahaviour of DROP with Atomic +$CLICKHOUSE_CLIENT --allow_deprecated_database_ordinary=1 --query "CREATE DATABASE test_01320 ENGINE=Ordinary" # Different bahaviour of DROP with Atomic function thread1() { diff --git a/tests/queries/0_stateless/01516_create_table_primary_key.sql b/tests/queries/0_stateless/01516_create_table_primary_key.sql index b3c4acd50ff..b2b9f288eab 100644 --- a/tests/queries/0_stateless/01516_create_table_primary_key.sql +++ b/tests/queries/0_stateless/01516_create_table_primary_key.sql @@ -1,6 +1,7 @@ -- Tags: no-parallel DROP DATABASE IF EXISTS test_01516; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test_01516 ENGINE=Ordinary; -- Full ATTACH requires UUID with Atomic USE test_01516; diff --git a/tests/queries/0_stateless/01517_drop_mv_with_inner_table.sql b/tests/queries/0_stateless/01517_drop_mv_with_inner_table.sql index 5e31faa70da..67a2009b913 100644 --- a/tests/queries/0_stateless/01517_drop_mv_with_inner_table.sql +++ b/tests/queries/0_stateless/01517_drop_mv_with_inner_table.sql @@ -32,6 +32,7 @@ show tables from db_01517_atomic_sync; -- Ordinary --- drop database if exists db_01517_ordinary; +set allow_deprecated_database_ordinary=1; create database db_01517_ordinary Engine=Ordinary; create table db_01517_ordinary.source (key Int) engine=Null; diff --git a/tests/queries/0_stateless/01600_detach_permanently.sh b/tests/queries/0_stateless/01600_detach_permanently.sh index 949fe0e6ea2..c32a255448e 100755 --- a/tests/queries/0_stateless/01600_detach_permanently.sh +++ b/tests/queries/0_stateless/01600_detach_permanently.sh @@ -15,7 +15,7 @@ mkdir -p "${WORKING_FOLDER_01600}" clickhouse_local() { local query="$1" shift - ${CLICKHOUSE_LOCAL} --query "$query" "$@" --path="${WORKING_FOLDER_01600}" + ${CLICKHOUSE_LOCAL} --allow_deprecated_database_ordinary=1 --query "$query" "$@" --path="${WORKING_FOLDER_01600}" } test_detach_attach_sequence() { diff --git a/tests/queries/0_stateless/01601_detach_permanently.sql b/tests/queries/0_stateless/01601_detach_permanently.sql index 97797a59af5..95c80e77213 100644 --- a/tests/queries/0_stateless/01601_detach_permanently.sql +++ b/tests/queries/0_stateless/01601_detach_permanently.sql @@ -72,6 +72,7 @@ SELECT '-----------------------'; SELECT 'database ordinary tests'; DROP DATABASE IF EXISTS test1601_detach_permanently_ordinary; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test1601_detach_permanently_ordinary Engine=Ordinary; create table test1601_detach_permanently_ordinary.test_name_reuse (number UInt64) engine=MergeTree order by tuple(); diff --git a/tests/queries/0_stateless/01603_rename_overwrite_bug.sql b/tests/queries/0_stateless/01603_rename_overwrite_bug.sql index 82f9996991f..acf9f520709 100644 --- a/tests/queries/0_stateless/01603_rename_overwrite_bug.sql +++ b/tests/queries/0_stateless/01603_rename_overwrite_bug.sql @@ -1,6 +1,7 @@ -- Tags: no-parallel DROP database IF EXISTS test_1603_rename_bug_ordinary; +set allow_deprecated_database_ordinary=1; create database test_1603_rename_bug_ordinary engine=Ordinary; create table test_1603_rename_bug_ordinary.foo engine=Memory as select * from numbers(100); create table test_1603_rename_bug_ordinary.bar engine=Log as select * from numbers(200); diff --git a/tests/queries/0_stateless/01810_max_part_removal_threads_long.sh b/tests/queries/0_stateless/01810_max_part_removal_threads_long.sh index f5ab71d8d34..b1f30a41924 100755 --- a/tests/queries/0_stateless/01810_max_part_removal_threads_long.sh +++ b/tests/queries/0_stateless/01810_max_part_removal_threads_long.sh @@ -10,7 +10,7 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CUR_DIR"/../shell_config.sh -$CLICKHOUSE_CLIENT -nm -q "create database ordinary_$CLICKHOUSE_DATABASE engine=Ordinary" +$CLICKHOUSE_CLIENT --allow_deprecated_database_ordinary=1 -nm -q "create database ordinary_$CLICKHOUSE_DATABASE engine=Ordinary" # MergeTree $CLICKHOUSE_CLIENT -nm -q """ diff --git a/tests/queries/0_stateless/02096_rename_atomic_hang.sql b/tests/queries/0_stateless/02096_rename_atomic_hang.sql index 96261bfe127..dec5f3f9506 100644 --- a/tests/queries/0_stateless/02096_rename_atomic_hang.sql +++ b/tests/queries/0_stateless/02096_rename_atomic_hang.sql @@ -2,6 +2,7 @@ drop database if exists db_hang; drop database if exists db_hang_temp; +set allow_deprecated_database_ordinary=1; create database db_hang engine=Ordinary; use db_hang; create table db_hang.test(A Int64) Engine=MergeTree order by A; From f00e6b5a7a50bc0dc616b5df81034e6cd27e03d2 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 23 Jun 2022 10:37:52 +0200 Subject: [PATCH 141/525] deprecate old MergeTree syntax --- src/Core/Settings.h | 1 + .../MergeTree/registerStorageMergeTree.cpp | 5 ++++ .../test_cluster_copier/configs/users.xml | 1 + .../configs_three_nodes/users.xml | 1 + .../configs_two_nodes/users.xml | 1 + .../configs/config_allow_databases.xml | 5 ++++ .../test_cross_replication/test.py | 2 +- .../test_delayed_replica_failover/test.py | 2 +- .../configs/users.d/query_log.xml | 1 + .../configs_secure/users.d/query_log.xml | 1 + .../test_extreme_deduplication/test.py | 4 ++-- .../test_https_replication/test.py | 2 +- .../test_insert_into_distributed/test.py | 24 +++++++++---------- .../test.py | 2 +- .../enable_distributed_inserts_batching.xml | 1 + .../test_merge_tree_empty_parts/test.py | 4 ++-- .../test_mutations_with_merge_tree/test.py | 2 +- tests/integration/test_random_inserts/test.py | 2 +- .../test_replace_partition/test.py | 6 ++--- .../test_replicated_database/test.py | 4 ++-- .../test_replication_credentials/test.py | 2 +- .../test.py | 4 ++-- tests/integration/test_union_header/test.py | 2 +- .../integration/test_zookeeper_config/test.py | 4 ++-- .../test_zookeeper_config/test_password.py | 4 ++-- tests/performance/parallel_final.xml | 1 + tests/performance/scalar2.xml | 4 ++++ .../queries/0_stateless/00030_alter_table.sql | 1 + .../0_stateless/00043_summing_empty_part.sql | 1 + .../00046_stored_aggregates_simple.sql | 1 + .../00047_stored_aggregates_complex.sql | 1 + .../00048_a_stored_aggregates_merge.sql | 1 + .../00048_b_stored_aggregates_merge.sql | 1 + .../0_stateless/00061_merge_tree_alter.sql | 1 + ...icated_merge_tree_alter_zookeeper_long.sql | 1 + .../0_stateless/00079_defaulted_columns.sql | 1 + .../0_stateless/00084_summing_merge_tree.sql | 1 + .../0_stateless/00098_shard_i_union_all.sql | 1 + ...s_and_insert_without_explicit_database.sql | 1 + .../00121_drop_column_zookeeper.sql | 1 + ...4_shard_distributed_with_many_replicas.sql | 1 + .../00140_prewhere_column_order.sql | 1 + .../00141_parse_timestamp_as_datetime.sql | 1 + .../00146_summing_merge_tree_nested_map.sql | 1 + .../00147_alter_nested_default.sql | 1 + ..._summing_merge_tree_aggregate_function.sql | 1 + ..._merge_tree_nested_map_multiple_values.sql | 1 + .../queries/0_stateless/00155_long_merges.sh | 4 ++-- .../0_stateless/00168_buffer_defaults.sql | 1 + ...00191_aggregating_merge_tree_and_final.sql | 1 + .../0_stateless/00193_parallel_replicas.sql | 1 + ...ated_drop_on_non_leader_zookeeper_long.sql | 1 + .../00253_insert_recursive_defaults.sql | 1 + .../00278_insert_already_sorted.sql | 1 + tests/queries/0_stateless/00282_merging.sql | 1 + .../00345_index_accurate_comparison.sql | 1 + ..._column_aggregate_function_insert_from.sql | 1 + .../00394_new_nested_column_keeps_offsets.sql | 1 + .../00394_replaceall_vector_fixed.sql | 1 + tests/queries/0_stateless/00395_nullable.sql | 1 + .../0_stateless/00427_alter_primary_key.sh | 1 + .../0_stateless/00440_nulls_merge_tree.sql | 1 + ...olumn_in_partition_concurrent_zookeeper.sh | 2 +- tests/queries/0_stateless/00453_cast_enum.sql | 1 + .../00495_reading_const_zero_column.sql | 1 + .../0_stateless/00504_mergetree_arrays_rw.sql | 1 + .../0_stateless/00506_union_distributed.sql | 1 + ...rd_desc_table_functions_and_subqueries.sql | 1 + ...ication_after_drop_partition_zookeeper.sql | 1 + .../00531_aggregate_over_nullable.sql | 1 + .../0_stateless/00543_null_and_prewhere.sql | 2 ++ .../0_stateless/00561_storage_join.sql | 1 + .../00563_complex_in_expression.sql | 1 + ..._column_values_with_default_expression.sql | 1 + ...t_database_when_create_materializ_view.sql | 1 + ...column_exception_when_drop_depen_column.sh | 2 +- ...75_merge_and_index_with_function_in_in.sql | 1 + .../0_stateless/00584_view_union_all.sql | 1 + .../00594_alias_in_distributed.sql | 1 + .../00597_push_down_predicate_long.sql | 1 + .../0_stateless/00609_mv_index_in_in.sql | 1 + ...iew_forward_alter_partition_statements.sql | 1 + ...l_and_remote_node_in_distributed_query.sql | 1 + .../00615_nullable_alter_optimize.sql | 1 + .../00621_regression_for_in_operator.sql | 1 + .../0_stateless/00623_in_partition_key.sql | 1 + ...plicated_truncate_table_zookeeper_long.sql | 1 + ...0648_replacing_empty_set_from_prewhere.sql | 1 + .../0_stateless/00652_mergetree_mutations.sh | 2 +- .../00652_replicated_mutations_zookeeper.sh | 4 ++-- .../0_stateless/00678_shard_funnel_window.sql | 1 + .../00712_prewhere_with_alias_bug_2.sql | 1 + .../0_stateless/00712_prewhere_with_final.sql | 1 + ...00712_prewhere_with_sampling_and_alias.sql | 1 + .../00717_merge_and_distributed.sql | 1 + .../0_stateless/00729_prewhere_array_join.sql | 1 + ...731_long_merge_tree_select_opened_files.sh | 2 +- .../00732_decimal_summing_merge_tree.sql | 1 + .../00748_insert_array_with_null.sql | 1 + .../00752_low_cardinality_mv_2.sql | 1 + ..._system_columns_and_system_tables_long.sql | 1 + .../00754_alter_modify_order_by.sql | 1 + ...ify_order_by_replicated_zookeeper_long.sql | 1 + ...materialized_view_with_column_defaults.sql | 1 + ...800_low_cardinality_distributed_insert.sql | 1 + .../0_stateless/00806_alter_update.sql | 1 + .../0_stateless/00829_bitmap_function.sql | 1 + .../00834_hints_for_type_function_typos.sh | 4 ++-- ...crash_when_distributed_modify_order_by.sql | 1 + ...plicated_merge_tree_optimize_final_long.sh | 4 ++-- ...o_distributed_with_materialized_column.sql | 1 + .../00981_in_subquery_with_tuple.sh | 2 +- ...1008_materialized_view_henyihanwobushi.sql | 1 + .../01053_drop_database_mat_view.sql | 1 + ...1062_alter_on_mutataion_zookeeper_long.sql | 1 + ...ndary_index_with_old_format_merge_tree.sql | 1 + .../01076_predicate_optimizer_with_view.sql | 1 + .../01089_alter_settings_old_format.sql | 1 + .../01101_prewhere_after_alter.sql | 1 + .../01125_generate_random_qoega.sql | 1 + ...126_month_partitioning_consistent_code.sql | 1 + ..._month_partitioning_consistency_select.sql | 1 + ...ery_in_aggregate_function_JustStranger.sql | 1 + .../01355_alter_column_with_order.sql | 1 + .../01387_clear_column_default_depends.sql | 1 + .../01417_freeze_partition_verbose.sh | 2 +- .../01430_modify_sample_by_zookeeper_long.sql | 1 + ...1455_shard_leaf_max_rows_bytes_to_read.sql | 1 + .../01648_mutations_and_escaping.sql | 1 + .../01713_table_ttl_old_syntax_zookeeper.sql | 1 + ...778_test_LowCardinality_FixedString_pk.sql | 1 + .../0_stateless/01798_uniq_theta_sketch.sql | 1 + .../01925_broken_partition_id_zookeeper.sql | 1 + .../0_stateless/02250_hints_for_columns.sh | 2 +- .../00040_aggregating_materialized_view.sql | 1 + .../00041_aggregating_materialized_view.sql | 1 + .../00054_merge_tree_partitions.sql | 1 + .../00071_merge_tree_optimize_aio.sql | 1 + 138 files changed, 173 insertions(+), 50 deletions(-) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 883281c94f3..1ee46ed4caa 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -591,6 +591,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) \ M(Bool, allow_unrestricted_reads_from_keeper, false, "Allow unrestricted (without condition on path) reads from system.zookeeper table, can be handy, but is not safe for zookeeper", 0) \ M(Bool, allow_deprecated_database_ordinary, false, "Allow to create databases with deprecated Ordinary engine", 0) \ + M(Bool, allow_deprecated_syntax_for_merge_tree, false, "Allow to create *MergeTree tables with deprecated engine definition syntax", 0) \ \ /** Experimental functions */ \ M(Bool, allow_experimental_funnel_functions, false, "Enable experimental functions for funnel analysis.", 0) \ diff --git a/src/Storages/MergeTree/registerStorageMergeTree.cpp b/src/Storages/MergeTree/registerStorageMergeTree.cpp index 43e1af21eac..5ad39aa826a 100644 --- a/src/Storages/MergeTree/registerStorageMergeTree.cpp +++ b/src/Storages/MergeTree/registerStorageMergeTree.cpp @@ -303,6 +303,11 @@ static StoragePtr create(const StorageFactory::Arguments & args) arg_idx, e.message(), getMergeTreeVerboseHelp(is_extended_storage_def)); } } + else if (!args.attach && !args.local_context.lock()->getSettingsRef().allow_deprecated_syntax_for_merge_tree) + { + throw Exception(ErrorCodes::BAD_ARGUMENTS, "This syntax for *MergeTree engine is deprecated. " + "Use extended storage definition syntax with ORDER BY/PRIMARY KEY clause."); + } /// For Replicated. String zookeeper_path; diff --git a/tests/integration/test_cluster_copier/configs/users.xml b/tests/integration/test_cluster_copier/configs/users.xml index 492cf4d7ee6..2542642f6df 100644 --- a/tests/integration/test_cluster_copier/configs/users.xml +++ b/tests/integration/test_cluster_copier/configs/users.xml @@ -5,6 +5,7 @@ 1 5 + 1 diff --git a/tests/integration/test_cluster_copier/configs_three_nodes/users.xml b/tests/integration/test_cluster_copier/configs_three_nodes/users.xml index ce3538a31b8..f017daff974 100644 --- a/tests/integration/test_cluster_copier/configs_three_nodes/users.xml +++ b/tests/integration/test_cluster_copier/configs_three_nodes/users.xml @@ -3,6 +3,7 @@ 1 + 1 diff --git a/tests/integration/test_cluster_copier/configs_two_nodes/users.xml b/tests/integration/test_cluster_copier/configs_two_nodes/users.xml index ce3538a31b8..f017daff974 100644 --- a/tests/integration/test_cluster_copier/configs_two_nodes/users.xml +++ b/tests/integration/test_cluster_copier/configs_two_nodes/users.xml @@ -3,6 +3,7 @@ 1 + 1 diff --git a/tests/integration/test_config_substitutions/configs/config_allow_databases.xml b/tests/integration/test_config_substitutions/configs/config_allow_databases.xml index 98008306787..be727360dcf 100644 --- a/tests/integration/test_config_substitutions/configs/config_allow_databases.xml +++ b/tests/integration/test_config_substitutions/configs/config_allow_databases.xml @@ -1,4 +1,9 @@ + + + 1 + + diff --git a/tests/integration/test_cross_replication/test.py b/tests/integration/test_cross_replication/test.py index 143b8823bf2..2a73acadafd 100644 --- a/tests/integration/test_cross_replication/test.py +++ b/tests/integration/test_cross_replication/test.py @@ -37,7 +37,7 @@ def started_cluster(): CREATE DATABASE shard_{shard}; CREATE TABLE shard_{shard}.replicated(date Date, id UInt32, shard_id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/replicated', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/replicated', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( shard=shard, replica=node.name ) diff --git a/tests/integration/test_delayed_replica_failover/test.py b/tests/integration/test_delayed_replica_failover/test.py index 387d6a12f48..a480ee3f278 100644 --- a/tests/integration/test_delayed_replica_failover/test.py +++ b/tests/integration/test_delayed_replica_failover/test.py @@ -32,7 +32,7 @@ def started_cluster(): node.query( """ CREATE TABLE replicated (d Date, x UInt32) ENGINE = - ReplicatedMergeTree('/clickhouse/tables/{shard}/replicated', '{instance}', d, d, 8192)""".format( + ReplicatedMergeTree('/clickhouse/tables/{shard}/replicated', '{instance}') PARTITION BY toYYYYMM(d) ORDER BY d""".format( shard=shard, instance=node.name ) ) diff --git a/tests/integration/test_distributed_ddl/configs/users.d/query_log.xml b/tests/integration/test_distributed_ddl/configs/users.d/query_log.xml index 26db7f54514..ef8abbd9174 100644 --- a/tests/integration/test_distributed_ddl/configs/users.d/query_log.xml +++ b/tests/integration/test_distributed_ddl/configs/users.d/query_log.xml @@ -3,6 +3,7 @@ 1 + 1 diff --git a/tests/integration/test_distributed_ddl/configs_secure/users.d/query_log.xml b/tests/integration/test_distributed_ddl/configs_secure/users.d/query_log.xml index 26db7f54514..ef8abbd9174 100644 --- a/tests/integration/test_distributed_ddl/configs_secure/users.d/query_log.xml +++ b/tests/integration/test_distributed_ddl/configs_secure/users.d/query_log.xml @@ -3,6 +3,7 @@ 1 + 1 diff --git a/tests/integration/test_extreme_deduplication/test.py b/tests/integration/test_extreme_deduplication/test.py index 2c8772aad4e..71f783d37c9 100644 --- a/tests/integration/test_extreme_deduplication/test.py +++ b/tests/integration/test_extreme_deduplication/test.py @@ -40,7 +40,7 @@ def test_deduplication_window_in_seconds(started_cluster): node1.query( """ CREATE TABLE simple ON CLUSTER test_cluster (date Date, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/simple', '{replica}', date, id, 8192)""" + ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/simple', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id""" ) node.query("INSERT INTO simple VALUES (0, 0)") @@ -77,7 +77,7 @@ def test_deduplication_works_in_case_of_intensive_inserts(started_cluster): node1.query( """ CREATE TABLE simple ON CLUSTER test_cluster (date Date, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/simple', '{replica}', date, id, 8192)""" + ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/simple', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id""" ) node1.query("INSERT INTO simple VALUES (0, 0)") diff --git a/tests/integration/test_https_replication/test.py b/tests/integration/test_https_replication/test.py index 4cf9f19b870..301487aa6cf 100644 --- a/tests/integration/test_https_replication/test.py +++ b/tests/integration/test_https_replication/test.py @@ -19,7 +19,7 @@ def _fill_nodes(nodes, shard): CREATE DATABASE test; CREATE TABLE test_table(date Date, id UInt32, dummy UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test{shard}/replicated', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test{shard}/replicated', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( shard=shard, replica=node.name ) diff --git a/tests/integration/test_insert_into_distributed/test.py b/tests/integration/test_insert_into_distributed/test.py index b8d94d2a043..aff31ec365c 100644 --- a/tests/integration/test_insert_into_distributed/test.py +++ b/tests/integration/test_insert_into_distributed/test.py @@ -52,7 +52,7 @@ CREATE TABLE distributed (x UInt32) ENGINE = Distributed('test_cluster', 'defaul ) remote.query( - "CREATE TABLE local2 (d Date, x UInt32, s String) ENGINE = MergeTree(d, x, 8192)" + "CREATE TABLE local2 (d Date, x UInt32, s String) ENGINE = MergeTree PARTITION BY toYYYYMM(d) ORDER BY x" ) instance_test_inserts_batching.query( """ @@ -61,7 +61,7 @@ CREATE TABLE distributed (d Date, x UInt32) ENGINE = Distributed('test_cluster', ) instance_test_inserts_local_cluster.query( - "CREATE TABLE local (d Date, x UInt32) ENGINE = MergeTree(d, x, 8192)" + "CREATE TABLE local (d Date, x UInt32) ENGINE = MergeTree PARTITION BY toYYYYMM(d) ORDER BY x" ) instance_test_inserts_local_cluster.query( """ @@ -71,12 +71,12 @@ CREATE TABLE distributed_on_local (d Date, x UInt32) ENGINE = Distributed('test_ node1.query( """ -CREATE TABLE replicated(date Date, id UInt32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/replicated', 'node1', date, id, 8192) +CREATE TABLE replicated(date Date, id UInt32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/replicated', 'node1') PARTITION BY toYYYYMM(date) ORDER BY id """ ) node2.query( """ -CREATE TABLE replicated(date Date, id UInt32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/replicated', 'node2', date, id, 8192) +CREATE TABLE replicated(date Date, id UInt32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/replicated', 'node2') PARTITION BY toYYYYMM(date) ORDER BY id """ ) @@ -94,12 +94,12 @@ CREATE TABLE distributed (date Date, id UInt32) ENGINE = Distributed('shard_with shard1.query( """ -CREATE TABLE low_cardinality (d Date, x UInt32, s LowCardinality(String)) ENGINE = MergeTree(d, x, 8192)""" +CREATE TABLE low_cardinality (d Date, x UInt32, s LowCardinality(String)) ENGINE = MergeTree PARTITION BY toYYYYMM(d) ORDER BY x""" ) shard2.query( """ -CREATE TABLE low_cardinality (d Date, x UInt32, s LowCardinality(String)) ENGINE = MergeTree(d, x, 8192)""" +CREATE TABLE low_cardinality (d Date, x UInt32, s LowCardinality(String)) ENGINE = MergeTree PARTITION BY toYYYYMM(d) ORDER BY x""" ) shard1.query( @@ -143,7 +143,7 @@ CREATE TABLE distributed_one_replica_no_internal_replication (date Date, id UInt node2.query( """ -CREATE TABLE single_replicated(date Date, id UInt32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/single_replicated', 'node2', date, id, 8192) +CREATE TABLE single_replicated(date Date, id UInt32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/single_replicated', 'node2') PARTITION BY toYYYYMM(date) ORDER BY id """ ) @@ -228,11 +228,11 @@ def test_inserts_batching(started_cluster): # 4. Full batch of inserts after ALTER (that have different block structure). # 5. What was left to insert with the column structure before ALTER. expected = """\ -20000101_20000101_1_1_0\t[1] -20000101_20000101_2_2_0\t[2,3,4] -20000101_20000101_3_3_0\t[5,6,7] -20000101_20000101_4_4_0\t[10,11,12] -20000101_20000101_5_5_0\t[8,9] +20000101__1_1_0\t[1] +20000101__2_2_0\t[2,3,4] +20000101__3_3_0\t[5,6,7] +20000101__4_4_0\t[10,11,12] +20000101__5_5_0\t[8,9] """ assert TSV(result) == TSV(expected) diff --git a/tests/integration/test_insert_into_distributed_sync_async/test.py b/tests/integration/test_insert_into_distributed_sync_async/test.py index e0c454feee6..12423cc4747 100755 --- a/tests/integration/test_insert_into_distributed_sync_async/test.py +++ b/tests/integration/test_insert_into_distributed_sync_async/test.py @@ -23,7 +23,7 @@ def started_cluster(): for node in (node1, node2): node.query( """ -CREATE TABLE local_table(date Date, val UInt64) ENGINE = MergeTree(date, (date, val), 8192); +CREATE TABLE local_table(date Date, val UInt64) ENGINE = MergeTree() PARTITION BY toYYYYMM(date) ORDER BY (date, val); """ ) diff --git a/tests/integration/test_insert_into_distributed_through_materialized_view/configs/enable_distributed_inserts_batching.xml b/tests/integration/test_insert_into_distributed_through_materialized_view/configs/enable_distributed_inserts_batching.xml index de0c930b8ab..295d1c8d3cc 100644 --- a/tests/integration/test_insert_into_distributed_through_materialized_view/configs/enable_distributed_inserts_batching.xml +++ b/tests/integration/test_insert_into_distributed_through_materialized_view/configs/enable_distributed_inserts_batching.xml @@ -3,6 +3,7 @@ 1 3 + 1 diff --git a/tests/integration/test_merge_tree_empty_parts/test.py b/tests/integration/test_merge_tree_empty_parts/test.py index 7ca275e96de..57bf49e6803 100644 --- a/tests/integration/test_merge_tree_empty_parts/test.py +++ b/tests/integration/test_merge_tree_empty_parts/test.py @@ -25,7 +25,7 @@ def started_cluster(): def test_empty_parts_alter_delete(started_cluster): node1.query( "CREATE TABLE empty_parts_delete (d Date, key UInt64, value String) \ - ENGINE = ReplicatedMergeTree('/clickhouse/tables/empty_parts_delete', 'r1', d, key, 8192)" + ENGINE = ReplicatedMergeTree('/clickhouse/tables/empty_parts_delete', 'r1') PARTITION BY toYYYYMM(d) ORDER BY key" ) node1.query("INSERT INTO empty_parts_delete VALUES (toDate('2020-10-10'), 1, 'a')") @@ -44,7 +44,7 @@ def test_empty_parts_alter_delete(started_cluster): def test_empty_parts_summing(started_cluster): node1.query( "CREATE TABLE empty_parts_summing (d Date, key UInt64, value Int64) \ - ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/empty_parts_summing', 'r1', d, key, 8192)" + ENGINE = ReplicatedSummingMergeTree('/clickhouse/tables/empty_parts_summing', 'r1') PARTITION BY toYYYYMM(d) ORDER BY key" ) node1.query("INSERT INTO empty_parts_summing VALUES (toDate('2020-10-10'), 1, 1)") diff --git a/tests/integration/test_mutations_with_merge_tree/test.py b/tests/integration/test_mutations_with_merge_tree/test.py index d1843017b9f..7831cde7dea 100644 --- a/tests/integration/test_mutations_with_merge_tree/test.py +++ b/tests/integration/test_mutations_with_merge_tree/test.py @@ -17,7 +17,7 @@ def started_cluster(): try: cluster.start() instance_test_mutations.query( - """CREATE TABLE test_mutations_with_ast_elements(date Date, a UInt64, b String) ENGINE = MergeTree(date, (a, date), 8192)""" + """CREATE TABLE test_mutations_with_ast_elements(date Date, a UInt64, b String) ENGINE = MergeTree PARTITION BY toYYYYMM(date) ORDER BY (a, date)""" ) instance_test_mutations.query( """INSERT INTO test_mutations_with_ast_elements SELECT '2019-07-29' AS date, 1, toString(number) FROM numbers(1) SETTINGS force_index_by_date = 0, force_primary_key = 0""" diff --git a/tests/integration/test_random_inserts/test.py b/tests/integration/test_random_inserts/test.py index 4d6aaa9276d..9ac0c5b024c 100644 --- a/tests/integration/test_random_inserts/test.py +++ b/tests/integration/test_random_inserts/test.py @@ -44,7 +44,7 @@ def test_random_inserts(started_cluster): node1.query( """ CREATE TABLE simple ON CLUSTER test_cluster (date Date, i UInt32, s String) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/simple', '{replica}', date, i, 8192)""" + ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/simple', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY i""" ) with PartitionManager() as pm_random_drops: diff --git a/tests/integration/test_replace_partition/test.py b/tests/integration/test_replace_partition/test.py index 7ce79d9aca8..579b22286b9 100644 --- a/tests/integration/test_replace_partition/test.py +++ b/tests/integration/test_replace_partition/test.py @@ -20,13 +20,13 @@ def _fill_nodes(nodes, shard): CREATE DATABASE test; CREATE TABLE real_table(date Date, id UInt32, dummy UInt32) - ENGINE = MergeTree(date, id, 8192); + ENGINE = MergeTree PARTITION BY toYYYYMM(date) ORDER BY id; CREATE TABLE other_table(date Date, id UInt32, dummy UInt32) - ENGINE = MergeTree(date, id, 8192); + ENGINE = MergeTree PARTITION BY toYYYYMM(date) ORDER BY id; CREATE TABLE test_table(date Date, id UInt32, dummy UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test{shard}/replicated', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test{shard}/replicated', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( shard=shard, replica=node.name ) diff --git a/tests/integration/test_replicated_database/test.py b/tests/integration/test_replicated_database/test.py index 92c109974e1..99fb5bc1e89 100644 --- a/tests/integration/test_replicated_database/test.py +++ b/tests/integration/test_replicated_database/test.py @@ -393,7 +393,7 @@ def test_alters_from_different_replicas(started_cluster): main_node.query( "CREATE TABLE testdb.concurrent_test " "(CounterID UInt32, StartDate Date, UserID UInt32, VisitID UInt32, NestedColumn Nested(A UInt8, S String), ToDrop UInt32) " - "ENGINE = MergeTree(StartDate, intHash32(UserID), (CounterID, StartDate, intHash32(UserID), VisitID), 8192);" + "ENGINE = MergeTree PARTITION BY toYYYYMM(StartDate) ORDER BY (CounterID, StartDate, intHash32(UserID), VisitID);" ) main_node.query( @@ -443,7 +443,7 @@ def test_alters_from_different_replicas(started_cluster): " `Added0` UInt32,\\n `Added1` UInt32,\\n `Added2` UInt32,\\n `AddedNested1.A` Array(UInt32),\\n" " `AddedNested1.B` Array(UInt64),\\n `AddedNested1.C` Array(String),\\n `AddedNested2.A` Array(UInt32),\\n" " `AddedNested2.B` Array(UInt64)\\n)\\n" - "ENGINE = MergeTree(StartDate, intHash32(UserID), (CounterID, StartDate, intHash32(UserID), VisitID), 8192)" + "ENGINE = MergeTree\\nPARTITION BY toYYYYMM(StartDate)\\nORDER BY (CounterID, StartDate, intHash32(UserID), VisitID)\\nSETTINGS index_granularity = 8192" ) assert_create_query([main_node, competing_node], "testdb.concurrent_test", expected) diff --git a/tests/integration/test_replication_credentials/test.py b/tests/integration/test_replication_credentials/test.py index e5313cb6bd4..79588fcd38b 100644 --- a/tests/integration/test_replication_credentials/test.py +++ b/tests/integration/test_replication_credentials/test.py @@ -10,7 +10,7 @@ def _fill_nodes(nodes, shard): """ CREATE DATABASE test; CREATE TABLE test_table(date Date, id UInt32, dummy UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test{shard}/replicated', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test{shard}/replicated', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( shard=shard, replica=node.name ) diff --git a/tests/integration/test_send_request_to_leader_replica/test.py b/tests/integration/test_send_request_to_leader_replica/test.py index 60df18bf7d3..b56e1315672 100644 --- a/tests/integration/test_send_request_to_leader_replica/test.py +++ b/tests/integration/test_send_request_to_leader_replica/test.py @@ -40,7 +40,7 @@ def started_cluster(): node.query( """ CREATE TABLE sometable(date Date, id UInt32, value Int32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/sometable', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/sometable', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( replica=node.name ), @@ -51,7 +51,7 @@ def started_cluster(): node.query( """ CREATE TABLE someothertable(date Date, id UInt32, value Int32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/someothertable', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/someothertable', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( replica=node.name ), diff --git a/tests/integration/test_union_header/test.py b/tests/integration/test_union_header/test.py index f883057c1d8..2e7f6cb399a 100644 --- a/tests/integration/test_union_header/test.py +++ b/tests/integration/test_union_header/test.py @@ -27,7 +27,7 @@ def started_cluster(): log_type UInt32, account_id String ) - ENGINE = MergeTree(event_date, (event_time, account_id), 8192); + ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_time, account_id); """ ) diff --git a/tests/integration/test_zookeeper_config/test.py b/tests/integration/test_zookeeper_config/test.py index d3d90ca0d4f..65f82c2286b 100644 --- a/tests/integration/test_zookeeper_config/test.py +++ b/tests/integration/test_zookeeper_config/test.py @@ -48,7 +48,7 @@ def test_chroot_with_same_root(started_cluster): node.query( """ CREATE TABLE simple (date Date, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( replica=node.name ) @@ -68,7 +68,7 @@ def test_chroot_with_different_root(started_cluster): node.query( """ CREATE TABLE simple_different (date Date, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple_different', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple_different', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( replica=node.name ) diff --git a/tests/integration/test_zookeeper_config/test_password.py b/tests/integration/test_zookeeper_config/test_password.py index 580b426db6f..71f059b3277 100644 --- a/tests/integration/test_zookeeper_config/test_password.py +++ b/tests/integration/test_zookeeper_config/test_password.py @@ -35,7 +35,7 @@ def test_identity(started_cluster): node1.query( """ CREATE TABLE simple (date Date, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple', '{replica}', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple', '{replica}') PARTITION BY toYYYYMM(date) ORDER BY id; """.format( replica=node1.name ) @@ -45,6 +45,6 @@ def test_identity(started_cluster): node2.query( """ CREATE TABLE simple (date Date, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple', '1', date, id, 8192); + ENGINE = ReplicatedMergeTree('/clickhouse/tables/0/simple', '1') PARTITION BY toYYYYMM(date) ORDER BY id; """ ) diff --git a/tests/performance/parallel_final.xml b/tests/performance/parallel_final.xml index ca84ed52a04..d7ea0240105 100644 --- a/tests/performance/parallel_final.xml +++ b/tests/performance/parallel_final.xml @@ -4,6 +4,7 @@ 1024 1 20G + 1 diff --git a/tests/performance/scalar2.xml b/tests/performance/scalar2.xml index eb427536646..7a122dbec95 100644 --- a/tests/performance/scalar2.xml +++ b/tests/performance/scalar2.xml @@ -1,4 +1,8 @@ + + 1 + + CREATE TABLE tbl0 (`ds` Date, `x1` String, `x2` UInt32, `x3` UInt32, `x4` UInt32, `bm` AggregateFunction(groupBitmap, UInt32)) ENGINE = MergeTree PARTITION BY (ds, x1) ORDER BY (x2, x3, x4) SETTINGS index_granularity = 1 CREATE TABLE tbl (`ds` Date, `y1` UInt32, `x4` UInt32, `y2` UInt32, `y3` UInt32, `bm` AggregateFunction(groupBitmap, UInt32), `y4` UInt32 DEFAULT 0) ENGINE = MergeTree PARTITION BY (ds) ORDER BY (x4, y2, y3) SETTINGS index_granularity = 8192, max_parts_in_total = 10000000 diff --git a/tests/queries/0_stateless/00030_alter_table.sql b/tests/queries/0_stateless/00030_alter_table.sql index 5fc45575a4a..fb9b3de4067 100644 --- a/tests/queries/0_stateless/00030_alter_table.sql +++ b/tests/queries/0_stateless/00030_alter_table.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS alter_test; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alter_test (CounterID UInt32, StartDate Date, UserID UInt32, VisitID UInt32, NestedColumn Nested(A UInt8, S String), ToDrop UInt32) ENGINE = MergeTree(StartDate, intHash32(UserID), (CounterID, StartDate, intHash32(UserID), VisitID), 8192); INSERT INTO alter_test VALUES (1, '2014-01-01', 2, 3, [1,2,3], ['a','b','c'], 4); diff --git a/tests/queries/0_stateless/00043_summing_empty_part.sql b/tests/queries/0_stateless/00043_summing_empty_part.sql index 68fc4b5b1c4..40cecabf378 100644 --- a/tests/queries/0_stateless/00043_summing_empty_part.sql +++ b/tests/queries/0_stateless/00043_summing_empty_part.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS empty_summing; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE empty_summing (d Date, k UInt64, v Int8) ENGINE=SummingMergeTree(d, k, 8192); INSERT INTO empty_summing VALUES ('2015-01-01', 1, 10); diff --git a/tests/queries/0_stateless/00046_stored_aggregates_simple.sql b/tests/queries/0_stateless/00046_stored_aggregates_simple.sql index 8b1ef5ba48d..2a4ee9fa5d3 100644 --- a/tests/queries/0_stateless/00046_stored_aggregates_simple.sql +++ b/tests/queries/0_stateless/00046_stored_aggregates_simple.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS stored_aggregates; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE stored_aggregates ( d Date, diff --git a/tests/queries/0_stateless/00047_stored_aggregates_complex.sql b/tests/queries/0_stateless/00047_stored_aggregates_complex.sql index 63728f131b0..2e416f91d5d 100644 --- a/tests/queries/0_stateless/00047_stored_aggregates_complex.sql +++ b/tests/queries/0_stateless/00047_stored_aggregates_complex.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS stored_aggregates; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE stored_aggregates ( d Date, diff --git a/tests/queries/0_stateless/00048_a_stored_aggregates_merge.sql b/tests/queries/0_stateless/00048_a_stored_aggregates_merge.sql index 0138a75c19a..0213ebf46d6 100644 --- a/tests/queries/0_stateless/00048_a_stored_aggregates_merge.sql +++ b/tests/queries/0_stateless/00048_a_stored_aggregates_merge.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS stored_aggregates; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE stored_aggregates ( d Date, diff --git a/tests/queries/0_stateless/00048_b_stored_aggregates_merge.sql b/tests/queries/0_stateless/00048_b_stored_aggregates_merge.sql index 79617692ebd..708794eabff 100644 --- a/tests/queries/0_stateless/00048_b_stored_aggregates_merge.sql +++ b/tests/queries/0_stateless/00048_b_stored_aggregates_merge.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS stored_aggregates; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE stored_aggregates ( d Date, diff --git a/tests/queries/0_stateless/00061_merge_tree_alter.sql b/tests/queries/0_stateless/00061_merge_tree_alter.sql index 822386baa47..ee5694518d9 100644 --- a/tests/queries/0_stateless/00061_merge_tree_alter.sql +++ b/tests/queries/0_stateless/00061_merge_tree_alter.sql @@ -1,6 +1,7 @@ -- Tags: no-backward-compatibility-check DROP TABLE IF EXISTS alter_00061; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alter_00061 (d Date, k UInt64, i32 Int32) ENGINE=MergeTree(d, k, 8192); INSERT INTO alter_00061 VALUES ('2015-01-01', 10, 42); diff --git a/tests/queries/0_stateless/00062_replicated_merge_tree_alter_zookeeper_long.sql b/tests/queries/0_stateless/00062_replicated_merge_tree_alter_zookeeper_long.sql index e8d1a713c21..4475421d36f 100644 --- a/tests/queries/0_stateless/00062_replicated_merge_tree_alter_zookeeper_long.sql +++ b/tests/queries/0_stateless/00062_replicated_merge_tree_alter_zookeeper_long.sql @@ -6,6 +6,7 @@ DROP TABLE IF EXISTS replicated_alter2; SET replication_alter_partitions_sync = 2; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE replicated_alter1 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/{database}/test_00062/alter', 'r1', d, k, 8192); CREATE TABLE replicated_alter2 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/{database}/test_00062/alter', 'r2', d, k, 8192); diff --git a/tests/queries/0_stateless/00079_defaulted_columns.sql b/tests/queries/0_stateless/00079_defaulted_columns.sql index 617dc2435c4..04dfb7057d2 100644 --- a/tests/queries/0_stateless/00079_defaulted_columns.sql +++ b/tests/queries/0_stateless/00079_defaulted_columns.sql @@ -13,6 +13,7 @@ drop table defaulted; create table defaulted (col1 Int8, col2 UInt64 default (SELECT dummy+99 from system.one)) engine=Memory; --{serverError 116} +set allow_deprecated_syntax_for_merge_tree=1; create table defaulted (payload String, date materialized today(), key materialized 0 * rand()) engine=MergeTree(date, key, 8192); desc table defaulted; insert into defaulted (payload) values ('hello clickhouse'); diff --git a/tests/queries/0_stateless/00084_summing_merge_tree.sql b/tests/queries/0_stateless/00084_summing_merge_tree.sql index 5be1371fbcc..429fde5c2b5 100644 --- a/tests/queries/0_stateless/00084_summing_merge_tree.sql +++ b/tests/queries/0_stateless/00084_summing_merge_tree.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS summing_merge_tree; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE summing_merge_tree (d Date, a String, x UInt32, y UInt64, z Float64) ENGINE = SummingMergeTree(d, a, 8192); INSERT INTO summing_merge_tree VALUES ('2000-01-01', 'Hello', 1, 2, 3); diff --git a/tests/queries/0_stateless/00098_shard_i_union_all.sql b/tests/queries/0_stateless/00098_shard_i_union_all.sql index 5151f9ad0e5..58db30a8f9a 100644 --- a/tests/queries/0_stateless/00098_shard_i_union_all.sql +++ b/tests/queries/0_stateless/00098_shard_i_union_all.sql @@ -3,6 +3,7 @@ DROP TABLE IF EXISTS report1; DROP TABLE IF EXISTS report2; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE report1(id UInt32, event_date Date, priority UInt32, description String) ENGINE = MergeTree(event_date, intHash32(id), (id, event_date, intHash32(id)), 8192); CREATE TABLE report2(id UInt32, event_date Date, priority UInt32, description String) ENGINE = MergeTree(event_date, intHash32(id), (id, event_date, intHash32(id)), 8192); diff --git a/tests/queries/0_stateless/00101_materialized_views_and_insert_without_explicit_database.sql b/tests/queries/0_stateless/00101_materialized_views_and_insert_without_explicit_database.sql index b05b49ba33a..95d46032601 100644 --- a/tests/queries/0_stateless/00101_materialized_views_and_insert_without_explicit_database.sql +++ b/tests/queries/0_stateless/00101_materialized_views_and_insert_without_explicit_database.sql @@ -8,6 +8,7 @@ DROP TABLE IF EXISTS test_table; DROP TABLE IF EXISTS test_view; DROP TABLE IF EXISTS test_view_filtered; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_table (EventDate Date, CounterID UInt32, UserID UInt64, EventTime DateTime('America/Los_Angeles'), UTCEventTime DateTime('UTC')) ENGINE = MergeTree(EventDate, CounterID, 8192); CREATE MATERIALIZED VIEW test_view (Rows UInt64, MaxHitTime DateTime('America/Los_Angeles')) ENGINE = Memory AS SELECT count() AS Rows, max(UTCEventTime) AS MaxHitTime FROM test_table; CREATE MATERIALIZED VIEW test_view_filtered (EventDate Date, CounterID UInt32) ENGINE = Memory POPULATE AS SELECT CounterID, EventDate FROM test_table WHERE EventDate < '2013-01-01'; diff --git a/tests/queries/0_stateless/00121_drop_column_zookeeper.sql b/tests/queries/0_stateless/00121_drop_column_zookeeper.sql index fd32f3d32d2..f62f11c60fd 100644 --- a/tests/queries/0_stateless/00121_drop_column_zookeeper.sql +++ b/tests/queries/0_stateless/00121_drop_column_zookeeper.sql @@ -2,6 +2,7 @@ -- Tag no-replicated-database: Old syntax is not allowed DROP TABLE IF EXISTS alter_00121; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alter_00121 (d Date, x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/test/alter_00121/t1', 'r1', d, (d), 8192); INSERT INTO alter_00121 VALUES ('2014-01-01', 1); diff --git a/tests/queries/0_stateless/00124_shard_distributed_with_many_replicas.sql b/tests/queries/0_stateless/00124_shard_distributed_with_many_replicas.sql index e29a166c1ee..901b818cbc0 100644 --- a/tests/queries/0_stateless/00124_shard_distributed_with_many_replicas.sql +++ b/tests/queries/0_stateless/00124_shard_distributed_with_many_replicas.sql @@ -4,6 +4,7 @@ SET allow_experimental_parallel_reading_from_replicas = 0; SET max_parallel_replicas = 2; DROP TABLE IF EXISTS report; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE report(id UInt32, event_date Date, priority UInt32, description String) ENGINE = MergeTree(event_date, intHash32(id), (id, event_date, intHash32(id)), 8192); INSERT INTO report(id,event_date,priority,description) VALUES (1, '2015-01-01', 1, 'foo')(2, '2015-02-01', 2, 'bar')(3, '2015-03-01', 3, 'foo')(4, '2015-04-01', 4, 'bar')(5, '2015-05-01', 5, 'foo'); diff --git a/tests/queries/0_stateless/00140_prewhere_column_order.sql b/tests/queries/0_stateless/00140_prewhere_column_order.sql index d949b6f780b..61c2fbcf39c 100644 --- a/tests/queries/0_stateless/00140_prewhere_column_order.sql +++ b/tests/queries/0_stateless/00140_prewhere_column_order.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS prewhere; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE prewhere (d Date, a String, b String) ENGINE = MergeTree(d, d, 8192); INSERT INTO prewhere VALUES ('2015-01-01', 'hello', 'world'); diff --git a/tests/queries/0_stateless/00141_parse_timestamp_as_datetime.sql b/tests/queries/0_stateless/00141_parse_timestamp_as_datetime.sql index 4780884ca02..dbd251f878c 100644 --- a/tests/queries/0_stateless/00141_parse_timestamp_as_datetime.sql +++ b/tests/queries/0_stateless/00141_parse_timestamp_as_datetime.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS default; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE default (d Date DEFAULT toDate(t), t DateTime) ENGINE = MergeTree(d, t, 8192); INSERT INTO default (t) VALUES ('1234567890'); SELECT toStartOfMonth(d), toUInt32(t) FROM default; diff --git a/tests/queries/0_stateless/00146_summing_merge_tree_nested_map.sql b/tests/queries/0_stateless/00146_summing_merge_tree_nested_map.sql index ab9e8c9b177..e759fbd85d4 100644 --- a/tests/queries/0_stateless/00146_summing_merge_tree_nested_map.sql +++ b/tests/queries/0_stateless/00146_summing_merge_tree_nested_map.sql @@ -1,5 +1,6 @@ drop table if exists nested_map; +set allow_deprecated_syntax_for_merge_tree=1; create table nested_map (d default today(), k UInt64, payload default rand(), SomeMap Nested(ID UInt32, Num Int64)) engine=SummingMergeTree(d, k, 8192); insert into nested_map (k, `SomeMap.ID`, `SomeMap.Num`) values (0,[1],[100]),(1,[1],[100]),(2,[1],[100]),(3,[1,2],[100,150]); diff --git a/tests/queries/0_stateless/00147_alter_nested_default.sql b/tests/queries/0_stateless/00147_alter_nested_default.sql index 54c99545364..070204aef65 100644 --- a/tests/queries/0_stateless/00147_alter_nested_default.sql +++ b/tests/queries/0_stateless/00147_alter_nested_default.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS alter_00147; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alter_00147 (d Date DEFAULT toDate('2015-01-01'), n Nested(x String)) ENGINE = MergeTree(d, d, 8192); INSERT INTO alter_00147 (`n.x`) VALUES (['Hello', 'World']); diff --git a/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql b/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql index eab6b9da465..04edf709bde 100644 --- a/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql +++ b/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql @@ -29,6 +29,7 @@ select count() from summing_merge_tree_aggregate_function; drop table summing_merge_tree_aggregate_function; ---- sum + uniq + uniqExact +set allow_deprecated_syntax_for_merge_tree=1; create table summing_merge_tree_aggregate_function ( d materialized today(), k UInt64, diff --git a/tests/queries/0_stateless/00148_summing_merge_tree_nested_map_multiple_values.sql b/tests/queries/0_stateless/00148_summing_merge_tree_nested_map_multiple_values.sql index 68c27cd726f..7c5757cd526 100644 --- a/tests/queries/0_stateless/00148_summing_merge_tree_nested_map_multiple_values.sql +++ b/tests/queries/0_stateless/00148_summing_merge_tree_nested_map_multiple_values.sql @@ -1,5 +1,6 @@ drop table if exists nested_map_multiple_values; +set allow_deprecated_syntax_for_merge_tree=1; create table nested_map_multiple_values (d materialized today(), k UInt64, payload materialized rand(), SomeMap Nested(ID UInt32, Num1 Int64, Num2 Float64)) engine=SummingMergeTree(d, k, 8192); insert into nested_map_multiple_values values (0,[1],[100],[1.0]),(1,[1],[100],[1.0]),(2,[1],[100],[1.0]),(3,[1,2],[100,150],[1.0,1.5]); diff --git a/tests/queries/0_stateless/00155_long_merges.sh b/tests/queries/0_stateless/00155_long_merges.sh index 15ad0892a42..88f9daf6798 100755 --- a/tests/queries/0_stateless/00155_long_merges.sh +++ b/tests/queries/0_stateless/00155_long_merges.sh @@ -11,9 +11,9 @@ function create { $CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS aggregating_00155" $CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS replacing_00155" - $CLICKHOUSE_CLIENT --query="CREATE TABLE summing_00155 (d Date DEFAULT today(), x UInt64, s UInt64 DEFAULT 1) ENGINE = SummingMergeTree(d, x, 8192)" + $CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 --query="CREATE TABLE summing_00155 (d Date DEFAULT today(), x UInt64, s UInt64 DEFAULT 1) ENGINE = SummingMergeTree(d, x, 8192)" $CLICKHOUSE_CLIENT --query="CREATE TABLE collapsing_00155 (d Date DEFAULT today(), x UInt64, s Int8 DEFAULT 1) ENGINE = CollapsingMergeTree(d, x, 8192, s)" - $CLICKHOUSE_CLIENT --query="CREATE TABLE aggregating_00155 (d Date DEFAULT today(), x UInt64, s AggregateFunction(sum, UInt64)) ENGINE = AggregatingMergeTree(d, x, 8192)" + $CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 --query="CREATE TABLE aggregating_00155 (d Date DEFAULT today(), x UInt64, s AggregateFunction(sum, UInt64)) ENGINE = AggregatingMergeTree(d, x, 8192)" $CLICKHOUSE_CLIENT --query="CREATE TABLE replacing_00155 (d Date DEFAULT today(), x UInt64, s Int8 DEFAULT 1, v UInt64) ENGINE = ReplacingMergeTree(d, (x), 8192, v)" } diff --git a/tests/queries/0_stateless/00168_buffer_defaults.sql b/tests/queries/0_stateless/00168_buffer_defaults.sql index 8e0008adf4d..ce1dea8aaa8 100644 --- a/tests/queries/0_stateless/00168_buffer_defaults.sql +++ b/tests/queries/0_stateless/00168_buffer_defaults.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS mt_00168; DROP TABLE IF EXISTS mt_00168_buffer; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE mt_00168 (EventDate Date, UTCEventTime DateTime, MoscowEventDate Date DEFAULT toDate(UTCEventTime)) ENGINE = MergeTree(EventDate, UTCEventTime, 8192); CREATE TABLE mt_00168_buffer AS mt_00168 ENGINE = Buffer(currentDatabase(), mt_00168, 16, 10, 100, 10000, 1000000, 10000000, 100000000); DESC TABLE mt_00168; diff --git a/tests/queries/0_stateless/00191_aggregating_merge_tree_and_final.sql b/tests/queries/0_stateless/00191_aggregating_merge_tree_and_final.sql index 776edeeb43c..8160d4dee9e 100644 --- a/tests/queries/0_stateless/00191_aggregating_merge_tree_and_final.sql +++ b/tests/queries/0_stateless/00191_aggregating_merge_tree_and_final.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS aggregating_00191; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE aggregating_00191 (d Date DEFAULT '2000-01-01', k UInt64, u AggregateFunction(uniq, UInt64)) ENGINE = AggregatingMergeTree(d, k, 8192); INSERT INTO aggregating_00191 (k, u) SELECT intDiv(number, 100) AS k, uniqState(toUInt64(number % 100)) AS u FROM (SELECT * FROM system.numbers LIMIT 1000) GROUP BY k; diff --git a/tests/queries/0_stateless/00193_parallel_replicas.sql b/tests/queries/0_stateless/00193_parallel_replicas.sql index 6c5b50972cc..2549ada2a78 100644 --- a/tests/queries/0_stateless/00193_parallel_replicas.sql +++ b/tests/queries/0_stateless/00193_parallel_replicas.sql @@ -3,6 +3,7 @@ DROP TABLE IF EXISTS parallel_replicas; DROP TABLE IF EXISTS parallel_replicas_backup; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE parallel_replicas (d Date DEFAULT today(), x UInt32, u UInt64, s String) ENGINE = MergeTree(d, cityHash64(u, s), (x, d, cityHash64(u, s)), 8192); INSERT INTO parallel_replicas (x, u, s) VALUES (1, 2, 'A'),(3, 4, 'B'),(5, 6, 'C'),(7, 8, 'D'),(9,10,'E'); INSERT INTO parallel_replicas (x, u, s) VALUES (11, 12, 'F'),(13, 14, 'G'),(15, 16, 'H'),(17, 18, 'I'),(19,20,'J'); diff --git a/tests/queries/0_stateless/00236_replicated_drop_on_non_leader_zookeeper_long.sql b/tests/queries/0_stateless/00236_replicated_drop_on_non_leader_zookeeper_long.sql index f6eb4b2f8c1..78319c3edd4 100644 --- a/tests/queries/0_stateless/00236_replicated_drop_on_non_leader_zookeeper_long.sql +++ b/tests/queries/0_stateless/00236_replicated_drop_on_non_leader_zookeeper_long.sql @@ -6,6 +6,7 @@ SET replication_alter_partitions_sync = 2; DROP TABLE IF EXISTS attach_r1; DROP TABLE IF EXISTS attach_r2; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE attach_r1 (d Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/test_00236/01/attach', 'r1', d, d, 8192); CREATE TABLE attach_r2 (d Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/test_00236/01/attach', 'r2', d, d, 8192); diff --git a/tests/queries/0_stateless/00253_insert_recursive_defaults.sql b/tests/queries/0_stateless/00253_insert_recursive_defaults.sql index 37bfe0aa188..c0edc447125 100644 --- a/tests/queries/0_stateless/00253_insert_recursive_defaults.sql +++ b/tests/queries/0_stateless/00253_insert_recursive_defaults.sql @@ -5,6 +5,7 @@ SELECT * FROM defaults; DROP TABLE defaults; DROP TABLE IF EXISTS elog_cut; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE elog_cut ( date Date DEFAULT toDate(uts), diff --git a/tests/queries/0_stateless/00278_insert_already_sorted.sql b/tests/queries/0_stateless/00278_insert_already_sorted.sql index 735b46d22dd..b3de48dc155 100644 --- a/tests/queries/0_stateless/00278_insert_already_sorted.sql +++ b/tests/queries/0_stateless/00278_insert_already_sorted.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS sorted; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE sorted (d Date DEFAULT '2000-01-01', x UInt64) ENGINE = MergeTree(d, x, 8192); INSERT INTO sorted (x) SELECT intDiv(number, 100000) AS x FROM system.numbers LIMIT 1000000; diff --git a/tests/queries/0_stateless/00282_merging.sql b/tests/queries/0_stateless/00282_merging.sql index 30aec1bc439..a49cde87134 100644 --- a/tests/queries/0_stateless/00282_merging.sql +++ b/tests/queries/0_stateless/00282_merging.sql @@ -73,6 +73,7 @@ SELECT * FROM merge ORDER BY _part_index, x; DROP TABLE merge; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE IF NOT EXISTS merge (d Date DEFAULT '2000-01-01', x UInt64) ENGINE = MergeTree(d, x, 8192); SET min_insert_block_size_rows = 0, min_insert_block_size_bytes = 0; diff --git a/tests/queries/0_stateless/00345_index_accurate_comparison.sql b/tests/queries/0_stateless/00345_index_accurate_comparison.sql index 138a93990cf..aafe2a0ae69 100644 --- a/tests/queries/0_stateless/00345_index_accurate_comparison.sql +++ b/tests/queries/0_stateless/00345_index_accurate_comparison.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS index; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE index ( key Int32, diff --git a/tests/queries/0_stateless/00384_column_aggregate_function_insert_from.sql b/tests/queries/0_stateless/00384_column_aggregate_function_insert_from.sql index 0c614602866..a723bc9b59c 100644 --- a/tests/queries/0_stateless/00384_column_aggregate_function_insert_from.sql +++ b/tests/queries/0_stateless/00384_column_aggregate_function_insert_from.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS aggregates; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE aggregates (d Date, s AggregateFunction(uniq, UInt64)) ENGINE = MergeTree(d, d, 8192); INSERT INTO aggregates diff --git a/tests/queries/0_stateless/00394_new_nested_column_keeps_offsets.sql b/tests/queries/0_stateless/00394_new_nested_column_keeps_offsets.sql index 7c377529416..f058a852e91 100644 --- a/tests/queries/0_stateless/00394_new_nested_column_keeps_offsets.sql +++ b/tests/queries/0_stateless/00394_new_nested_column_keeps_offsets.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS alter_00394; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alter_00394 (d Date, k UInt64, i32 Int32, n Nested(ui8 UInt8, s String)) ENGINE=MergeTree(d, k, 8192); INSERT INTO alter_00394 VALUES ('2015-01-01', 3, 30, [1,2,3], ['1','12','123']); diff --git a/tests/queries/0_stateless/00394_replaceall_vector_fixed.sql b/tests/queries/0_stateless/00394_replaceall_vector_fixed.sql index 47ab3fe4a1c..ada48add403 100644 --- a/tests/queries/0_stateless/00394_replaceall_vector_fixed.sql +++ b/tests/queries/0_stateless/00394_replaceall_vector_fixed.sql @@ -14,6 +14,7 @@ ORDER BY str ASC; DROP TABLE replaceall; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE replaceall (date Date DEFAULT today(), fs FixedString(16)) ENGINE = MergeTree(date, (date, fs), 8192); INSERT INTO replaceall (fs) VALUES ('54db0d43009d\0\0\0\0'), ('fe2b58224766cf10'), ('54db0d43009d\0\0\0\0'), ('fe2b58224766cf10'); diff --git a/tests/queries/0_stateless/00395_nullable.sql b/tests/queries/0_stateless/00395_nullable.sql index 71dc045ad09..83d27830f4e 100644 --- a/tests/queries/0_stateless/00395_nullable.sql +++ b/tests/queries/0_stateless/00395_nullable.sql @@ -8,6 +8,7 @@ SELECT NULL + NULL; SELECT '----- MergeTree engine -----'; DROP TABLE IF EXISTS test1_00395; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test1_00395( col1 UInt64, col2 Nullable(UInt64), col3 String, col4 Nullable(String), diff --git a/tests/queries/0_stateless/00427_alter_primary_key.sh b/tests/queries/0_stateless/00427_alter_primary_key.sh index 4ad1166bfa4..1269e2ad6e3 100755 --- a/tests/queries/0_stateless/00427_alter_primary_key.sh +++ b/tests/queries/0_stateless/00427_alter_primary_key.sh @@ -8,6 +8,7 @@ function perform() { local query=$1 TZ=UTC $CLICKHOUSE_CLIENT \ + --allow_deprecated_syntax_for_merge_tree=1 \ --use_client_time_zone=1 \ --input_format_values_interpret_expressions=0 \ --query "$query" 2>/dev/null diff --git a/tests/queries/0_stateless/00440_nulls_merge_tree.sql b/tests/queries/0_stateless/00440_nulls_merge_tree.sql index 7281f960509..dd9473027b4 100644 --- a/tests/queries/0_stateless/00440_nulls_merge_tree.sql +++ b/tests/queries/0_stateless/00440_nulls_merge_tree.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS nulls; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE nulls (d Date, x Nullable(UInt64)) ENGINE = MergeTree(d, d, 8192); INSERT INTO nulls SELECT toDate('2000-01-01'), number % 10 != 0 ? number : NULL FROM system.numbers LIMIT 10000; SELECT count() FROM nulls WHERE x IS NULL; diff --git a/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh b/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh index a441c9a6761..2f79365f756 100755 --- a/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh +++ b/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh @@ -6,7 +6,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CURDIR"/../shell_config.sh -ch="$CLICKHOUSE_CLIENT --stacktrace -q" +ch="$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 --stacktrace -q" $ch "DROP TABLE IF EXISTS clear_column1" $ch "DROP TABLE IF EXISTS clear_column2" diff --git a/tests/queries/0_stateless/00453_cast_enum.sql b/tests/queries/0_stateless/00453_cast_enum.sql index 70b7e2b1d6d..384db50c7c4 100644 --- a/tests/queries/0_stateless/00453_cast_enum.sql +++ b/tests/queries/0_stateless/00453_cast_enum.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS cast_enums; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE cast_enums ( type Enum8('session' = 1, 'pageview' = 2, 'click' = 3), diff --git a/tests/queries/0_stateless/00495_reading_const_zero_column.sql b/tests/queries/0_stateless/00495_reading_const_zero_column.sql index da529c5b9b7..0af201b66e9 100644 --- a/tests/queries/0_stateless/00495_reading_const_zero_column.sql +++ b/tests/queries/0_stateless/00495_reading_const_zero_column.sql @@ -1,4 +1,5 @@ drop table if exists one_table; +set allow_deprecated_syntax_for_merge_tree=1; create table one_table (date Date, one UInt64) engine = MergeTree(date, (date, one), 8192); insert into one_table select today(), toUInt64(1) from system.numbers limit 100000; SET preferred_block_size_bytes = 8192; diff --git a/tests/queries/0_stateless/00504_mergetree_arrays_rw.sql b/tests/queries/0_stateless/00504_mergetree_arrays_rw.sql index 766f9dfb368..7c939d060ea 100644 --- a/tests/queries/0_stateless/00504_mergetree_arrays_rw.sql +++ b/tests/queries/0_stateless/00504_mergetree_arrays_rw.sql @@ -1,4 +1,5 @@ +set allow_deprecated_syntax_for_merge_tree=1; drop table if exists test_ins_arr; create table test_ins_arr (date Date, val Array(UInt64)) engine = MergeTree(date, (date), 8192); insert into test_ins_arr select toDate('2017-10-02'), [number, 42] from system.numbers limit 10000; diff --git a/tests/queries/0_stateless/00506_union_distributed.sql b/tests/queries/0_stateless/00506_union_distributed.sql index 08282d94d8b..8a5dba00c27 100644 --- a/tests/queries/0_stateless/00506_union_distributed.sql +++ b/tests/queries/0_stateless/00506_union_distributed.sql @@ -8,6 +8,7 @@ DROP TABLE IF EXISTS union1; DROP TABLE IF EXISTS union2; DROP TABLE IF EXISTS union3; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE union1 ( date Date, a Int32, b Int32, c Int32, d Int32) ENGINE = MergeTree(date, (a, date), 8192); CREATE TABLE union2 ( date Date, a Int32, b Int32, c Int32, d Int32) ENGINE = Distributed(test_shard_localhost, currentDatabase(), 'union1'); CREATE TABLE union3 ( date Date, a Int32, b Int32, c Int32, d Int32) ENGINE = Distributed(test_shard_localhost, currentDatabase(), 'union2'); diff --git a/tests/queries/0_stateless/00515_shard_desc_table_functions_and_subqueries.sql b/tests/queries/0_stateless/00515_shard_desc_table_functions_and_subqueries.sql index 64ceb394b17..e358072248a 100644 --- a/tests/queries/0_stateless/00515_shard_desc_table_functions_and_subqueries.sql +++ b/tests/queries/0_stateless/00515_shard_desc_table_functions_and_subqueries.sql @@ -1,6 +1,7 @@ -- Tags: shard drop table if exists tab; +set allow_deprecated_syntax_for_merge_tree=1; create table tab (date Date, val UInt64, val2 UInt8 default 42, val3 UInt8 default val2 + 1, val4 UInt64 alias val) engine = MergeTree(date, (date, val), 8192); desc tab; select '-'; diff --git a/tests/queries/0_stateless/00516_deduplication_after_drop_partition_zookeeper.sql b/tests/queries/0_stateless/00516_deduplication_after_drop_partition_zookeeper.sql index 6c76adb86d0..08dccac9d25 100644 --- a/tests/queries/0_stateless/00516_deduplication_after_drop_partition_zookeeper.sql +++ b/tests/queries/0_stateless/00516_deduplication_after_drop_partition_zookeeper.sql @@ -2,6 +2,7 @@ -- Tag no-replicated-database: Old syntax is not allowed DROP TABLE IF EXISTS deduplication_by_partition; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE deduplication_by_partition(d Date, x UInt32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/test_00516/deduplication_by_partition', 'r1', d, x, 8192); diff --git a/tests/queries/0_stateless/00531_aggregate_over_nullable.sql b/tests/queries/0_stateless/00531_aggregate_over_nullable.sql index ff485b4251a..1680bb90bb1 100644 --- a/tests/queries/0_stateless/00531_aggregate_over_nullable.sql +++ b/tests/queries/0_stateless/00531_aggregate_over_nullable.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS agg_over_nullable; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE agg_over_nullable ( partition Date, timestamp DateTime, diff --git a/tests/queries/0_stateless/00543_null_and_prewhere.sql b/tests/queries/0_stateless/00543_null_and_prewhere.sql index 793d65925a1..5f50397862a 100644 --- a/tests/queries/0_stateless/00543_null_and_prewhere.sql +++ b/tests/queries/0_stateless/00543_null_and_prewhere.sql @@ -1,3 +1,5 @@ + +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test ( dt Date, diff --git a/tests/queries/0_stateless/00561_storage_join.sql b/tests/queries/0_stateless/00561_storage_join.sql index 913ecec6f4a..9927592465a 100644 --- a/tests/queries/0_stateless/00561_storage_join.sql +++ b/tests/queries/0_stateless/00561_storage_join.sql @@ -1,5 +1,6 @@ drop table IF EXISTS joinbug; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE joinbug ( event_date Date MATERIALIZED toDate(created, 'Asia/Istanbul'), id UInt64, diff --git a/tests/queries/0_stateless/00563_complex_in_expression.sql b/tests/queries/0_stateless/00563_complex_in_expression.sql index cd80b9c3a7a..bd053e0d020 100644 --- a/tests/queries/0_stateless/00563_complex_in_expression.sql +++ b/tests/queries/0_stateless/00563_complex_in_expression.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS test_00563; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_00563 ( dt Date, site_id Int32, site_key String ) ENGINE = MergeTree(dt, (site_id, site_key, dt), 8192); INSERT INTO test_00563 (dt,site_id, site_key) VALUES ('2018-1-29', 100, 'key'); SELECT * FROM test_00563 WHERE toInt32(site_id) IN (100); diff --git a/tests/queries/0_stateless/00564_initial_column_values_with_default_expression.sql b/tests/queries/0_stateless/00564_initial_column_values_with_default_expression.sql index d26621dce7a..3fff20a1fe1 100644 --- a/tests/queries/0_stateless/00564_initial_column_values_with_default_expression.sql +++ b/tests/queries/0_stateless/00564_initial_column_values_with_default_expression.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS test; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE IF NOT EXISTS test( id UInt32, track UInt8, codec String, content String, rdate Date DEFAULT '2018-02-03', track_id String DEFAULT concat(concat(concat(toString(track), '-'), codec), content) ) ENGINE=MergeTree(rdate, (id, track_id), 8192); INSERT INTO test(id, track, codec) VALUES(1, 0, 'h264'); diff --git a/tests/queries/0_stateless/00571_non_exist_database_when_create_materializ_view.sql b/tests/queries/0_stateless/00571_non_exist_database_when_create_materializ_view.sql index c384ef37fc7..46fc0dd586d 100644 --- a/tests/queries/0_stateless/00571_non_exist_database_when_create_materializ_view.sql +++ b/tests/queries/0_stateless/00571_non_exist_database_when_create_materializ_view.sql @@ -8,6 +8,7 @@ DROP DATABASE IF EXISTS none; DROP TABLE IF EXISTS test_00571; DROP TABLE IF EXISTS test_materialized_00571; +set allow_deprecated_syntax_for_merge_tree=1; CREATE DATABASE none; CREATE TABLE test_00571 ( date Date, platform Enum8('a' = 0, 'b' = 1, 'c' = 2), app Enum8('a' = 0, 'b' = 1) ) ENGINE = MergeTree(date, (platform, app), 8192); CREATE MATERIALIZED VIEW test_materialized_00571 ENGINE = MergeTree(date, (platform, app), 8192) POPULATE AS SELECT date, platform, app FROM (SELECT * FROM test_00571); diff --git a/tests/queries/0_stateless/00575_illegal_column_exception_when_drop_depen_column.sh b/tests/queries/0_stateless/00575_illegal_column_exception_when_drop_depen_column.sh index 42bf37cbda5..706c0819125 100755 --- a/tests/queries/0_stateless/00575_illegal_column_exception_when_drop_depen_column.sh +++ b/tests/queries/0_stateless/00575_illegal_column_exception_when_drop_depen_column.sh @@ -9,7 +9,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) exception_pattern="Code: 44.*Cannot drop column \`id\`, because column \`id2\` depends on it" ${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_00575;" -${CLICKHOUSE_CLIENT} --query "CREATE TABLE test_00575 (dt Date DEFAULT now(), id UInt32, id2 UInt32 DEFAULT id + 1) ENGINE = MergeTree(dt, dt, 8192);" +${CLICKHOUSE_CLIENT} --allow_deprecated_syntax_for_merge_tree=1 --query "CREATE TABLE test_00575 (dt Date DEFAULT now(), id UInt32, id2 UInt32 DEFAULT id + 1) ENGINE = MergeTree(dt, dt, 8192);" ${CLICKHOUSE_CLIENT} --query "INSERT INTO test_00575(dt,id) VALUES ('2018-02-22',3), ('2018-02-22',4), ('2018-02-22',5);" ${CLICKHOUSE_CLIENT} --query "SELECT * FROM test_00575 ORDER BY id;" echo "$(${CLICKHOUSE_CLIENT} --query "ALTER TABLE test_00575 DROP COLUMN id;" --server_logs_file=/dev/null 2>&1 | grep -c "$exception_pattern")" diff --git a/tests/queries/0_stateless/00575_merge_and_index_with_function_in_in.sql b/tests/queries/0_stateless/00575_merge_and_index_with_function_in_in.sql index e491ef37ada..6f0ddd9fae3 100644 --- a/tests/queries/0_stateless/00575_merge_and_index_with_function_in_in.sql +++ b/tests/queries/0_stateless/00575_merge_and_index_with_function_in_in.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS t_00575; +set allow_deprecated_syntax_for_merge_tree=1; create table t_00575(d Date) engine MergeTree(d, d, 8192); insert into t_00575 values ('2018-02-20'); diff --git a/tests/queries/0_stateless/00584_view_union_all.sql b/tests/queries/0_stateless/00584_view_union_all.sql index 2e4d7ea66db..a86dfaec6c8 100644 --- a/tests/queries/0_stateless/00584_view_union_all.sql +++ b/tests/queries/0_stateless/00584_view_union_all.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS Test_00584; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE Test_00584 ( createdDate Date, str String, diff --git a/tests/queries/0_stateless/00594_alias_in_distributed.sql b/tests/queries/0_stateless/00594_alias_in_distributed.sql index b75dfdf7967..250ede2bb10 100644 --- a/tests/queries/0_stateless/00594_alias_in_distributed.sql +++ b/tests/queries/0_stateless/00594_alias_in_distributed.sql @@ -3,6 +3,7 @@ DROP TABLE IF EXISTS alias_local10; DROP TABLE IF EXISTS alias10; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alias_local10 ( Id Int8, EventDate Date DEFAULT '2000-01-01', diff --git a/tests/queries/0_stateless/00597_push_down_predicate_long.sql b/tests/queries/0_stateless/00597_push_down_predicate_long.sql index 40ea8b48caa..a77f3730ac2 100644 --- a/tests/queries/0_stateless/00597_push_down_predicate_long.sql +++ b/tests/queries/0_stateless/00597_push_down_predicate_long.sql @@ -7,6 +7,7 @@ SET joined_subquery_requires_alias = 0; DROP TABLE IF EXISTS test_00597; DROP TABLE IF EXISTS test_view_00597; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_00597(date Date, id Int8, name String, value Int64) ENGINE = MergeTree(date, (id, date), 8192); CREATE VIEW test_view_00597 AS SELECT * FROM test_00597; diff --git a/tests/queries/0_stateless/00609_mv_index_in_in.sql b/tests/queries/0_stateless/00609_mv_index_in_in.sql index 002c94dd576..bd9f35350c1 100644 --- a/tests/queries/0_stateless/00609_mv_index_in_in.sql +++ b/tests/queries/0_stateless/00609_mv_index_in_in.sql @@ -6,6 +6,7 @@ DROP TABLE IF EXISTS test_mv_00609; create table test_00609 (a Int8) engine=Memory; insert into test_00609 values (1); +set allow_deprecated_syntax_for_merge_tree=1; create materialized view test_mv_00609 uuid '00000609-1000-4000-8000-000000000001' Engine=MergeTree(date, (a), 8192) populate as select a, toDate('2000-01-01') date from test_00609; select * from test_mv_00609; -- OK diff --git a/tests/queries/0_stateless/00610_materialized_view_forward_alter_partition_statements.sql b/tests/queries/0_stateless/00610_materialized_view_forward_alter_partition_statements.sql index 6f5ba07e5db..8830204ecb5 100644 --- a/tests/queries/0_stateless/00610_materialized_view_forward_alter_partition_statements.sql +++ b/tests/queries/0_stateless/00610_materialized_view_forward_alter_partition_statements.sql @@ -1,6 +1,7 @@ DROP TABLE IF EXISTS tab_00610; DROP TABLE IF EXISTS mv_00610; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE tab_00610(d Date, x UInt32) ENGINE MergeTree(d, x, 8192); CREATE MATERIALIZED VIEW mv_00610(d Date, y UInt64) ENGINE MergeTree(d, y, 8192) AS SELECT d, x + 1 AS y FROM tab_00610; diff --git a/tests/queries/0_stateless/00614_shard_same_header_for_local_and_remote_node_in_distributed_query.sql b/tests/queries/0_stateless/00614_shard_same_header_for_local_and_remote_node_in_distributed_query.sql index 5d373927714..17cc76670b3 100644 --- a/tests/queries/0_stateless/00614_shard_same_header_for_local_and_remote_node_in_distributed_query.sql +++ b/tests/queries/0_stateless/00614_shard_same_header_for_local_and_remote_node_in_distributed_query.sql @@ -1,6 +1,7 @@ -- Tags: distributed drop table if exists tab; +set allow_deprecated_syntax_for_merge_tree=1; create table tab (date Date, time DateTime, data String) ENGINE = MergeTree(date, (time, data), 8192); insert into tab values ('2018-01-21','2018-01-21 15:12:13','test'); select time FROM remote('127.0.0.{1,2}', currentDatabase(), tab) WHERE date = '2018-01-21' limit 2; diff --git a/tests/queries/0_stateless/00615_nullable_alter_optimize.sql b/tests/queries/0_stateless/00615_nullable_alter_optimize.sql index 5c0a192e826..26ff3b78d5e 100644 --- a/tests/queries/0_stateless/00615_nullable_alter_optimize.sql +++ b/tests/queries/0_stateless/00615_nullable_alter_optimize.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS test_00615; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_00615 ( dt Date, diff --git a/tests/queries/0_stateless/00621_regression_for_in_operator.sql b/tests/queries/0_stateless/00621_regression_for_in_operator.sql index 84355a04df4..273f930a90f 100644 --- a/tests/queries/0_stateless/00621_regression_for_in_operator.sql +++ b/tests/queries/0_stateless/00621_regression_for_in_operator.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS regression_for_in_operator_view; DROP TABLE IF EXISTS regression_for_in_operator; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE regression_for_in_operator (d Date, v UInt32, g String) ENGINE=MergeTree(d, d, 8192); CREATE MATERIALIZED VIEW regression_for_in_operator_view ENGINE=AggregatingMergeTree(d, (d,g), 8192) AS SELECT d, g, maxState(v) FROM regression_for_in_operator GROUP BY d, g; diff --git a/tests/queries/0_stateless/00623_in_partition_key.sql b/tests/queries/0_stateless/00623_in_partition_key.sql index 0141151e369..6cb33f96f13 100644 --- a/tests/queries/0_stateless/00623_in_partition_key.sql +++ b/tests/queries/0_stateless/00623_in_partition_key.sql @@ -1,4 +1,5 @@ drop table if exists test54378; +set allow_deprecated_syntax_for_merge_tree=1; create table test54378 (part_date Date, pk_date Date, date Date) Engine=MergeTree(part_date, pk_date, 8192); insert into test54378 values ('2018-04-19', '2018-04-19', '2018-04-19'); diff --git a/tests/queries/0_stateless/00623_replicated_truncate_table_zookeeper_long.sql b/tests/queries/0_stateless/00623_replicated_truncate_table_zookeeper_long.sql index 4a3640e2dd7..44a7d8ca60f 100644 --- a/tests/queries/0_stateless/00623_replicated_truncate_table_zookeeper_long.sql +++ b/tests/queries/0_stateless/00623_replicated_truncate_table_zookeeper_long.sql @@ -4,6 +4,7 @@ DROP TABLE IF EXISTS replicated_truncate1; DROP TABLE IF EXISTS replicated_truncate2; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE replicated_truncate1 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/{database}/test_00623/truncate', 'r1', d, k, 8192); CREATE TABLE replicated_truncate2 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/{database}/test_00623/truncate', 'r2', d, k, 8192); diff --git a/tests/queries/0_stateless/00648_replacing_empty_set_from_prewhere.sql b/tests/queries/0_stateless/00648_replacing_empty_set_from_prewhere.sql index 1f873c94b18..bbeb4dd3148 100644 --- a/tests/queries/0_stateless/00648_replacing_empty_set_from_prewhere.sql +++ b/tests/queries/0_stateless/00648_replacing_empty_set_from_prewhere.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS final_test; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE final_test (id String, version Date) ENGINE = ReplacingMergeTree(version, id, 8192); INSERT INTO final_test (id, version) VALUES ('2018-01-01', '2018-01-01'); SELECT * FROM final_test FINAL PREWHERE id == '2018-01-02'; diff --git a/tests/queries/0_stateless/00652_mergetree_mutations.sh b/tests/queries/0_stateless/00652_mergetree_mutations.sh index 0cba8b94040..535cbe99dfe 100755 --- a/tests/queries/0_stateless/00652_mergetree_mutations.sh +++ b/tests/queries/0_stateless/00652_mergetree_mutations.sh @@ -10,7 +10,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS mutations" -${CLICKHOUSE_CLIENT} --query="CREATE TABLE mutations(d Date, x UInt32, s String, a UInt32 ALIAS x + 1, m MATERIALIZED x + 2) ENGINE MergeTree(d, intDiv(x, 10), 8192)" +${CLICKHOUSE_CLIENT} --allow_deprecated_syntax_for_merge_tree=1 --query="CREATE TABLE mutations(d Date, x UInt32, s String, a UInt32 ALIAS x + 1, m MATERIALIZED x + 2) ENGINE MergeTree(d, intDiv(x, 10), 8192)" # Test a mutation on empty table ${CLICKHOUSE_CLIENT} --query="ALTER TABLE mutations DELETE WHERE x = 1" diff --git a/tests/queries/0_stateless/00652_replicated_mutations_zookeeper.sh b/tests/queries/0_stateless/00652_replicated_mutations_zookeeper.sh index f070e34f2a1..7a6c7609660 100755 --- a/tests/queries/0_stateless/00652_replicated_mutations_zookeeper.sh +++ b/tests/queries/0_stateless/00652_replicated_mutations_zookeeper.sh @@ -12,8 +12,8 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS mutations_r1" ${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS mutations_r2" -${CLICKHOUSE_CLIENT} --query="CREATE TABLE mutations_r1(d Date, x UInt32, s String, m MATERIALIZED x + 2) ENGINE ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/mutations', 'r1', d, intDiv(x, 10), 8192)" -${CLICKHOUSE_CLIENT} --query="CREATE TABLE mutations_r2(d Date, x UInt32, s String, m MATERIALIZED x + 2) ENGINE ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/mutations', 'r2', d, intDiv(x, 10), 8192)" +${CLICKHOUSE_CLIENT} --allow_deprecated_syntax_for_merge_tree=1 --query="CREATE TABLE mutations_r1(d Date, x UInt32, s String, m MATERIALIZED x + 2) ENGINE ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/mutations', 'r1', d, intDiv(x, 10), 8192)" +${CLICKHOUSE_CLIENT} --allow_deprecated_syntax_for_merge_tree=1 --query="CREATE TABLE mutations_r2(d Date, x UInt32, s String, m MATERIALIZED x + 2) ENGINE ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/mutations', 'r2', d, intDiv(x, 10), 8192)" # Test a mutation on empty table ${CLICKHOUSE_CLIENT} --query="ALTER TABLE mutations_r1 DELETE WHERE x = 1 SETTINGS mutations_sync = 2" diff --git a/tests/queries/0_stateless/00678_shard_funnel_window.sql b/tests/queries/0_stateless/00678_shard_funnel_window.sql index 8ea07a1c4ba..73e48923283 100644 --- a/tests/queries/0_stateless/00678_shard_funnel_window.sql +++ b/tests/queries/0_stateless/00678_shard_funnel_window.sql @@ -1,6 +1,7 @@ -- Tags: shard DROP TABLE IF EXISTS remote_test; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE remote_test(uid String, its UInt32, action_code String, day Date) ENGINE = MergeTree(day, (uid, its), 8192); INSERT INTO remote_test SELECT toString(number) AS uid, number % 3 AS its, toString(number % 3) AS action_code, '2000-01-01' FROM system.numbers LIMIT 10000; SELECT level, COUNT() FROM (SELECT uid, windowFunnel(3600)(toUInt32(its), action_code != '', action_code = '2') AS level FROM remote('127.0.0.{2,3}', currentDatabase(), remote_test) GROUP BY uid) GROUP BY level; diff --git a/tests/queries/0_stateless/00712_prewhere_with_alias_bug_2.sql b/tests/queries/0_stateless/00712_prewhere_with_alias_bug_2.sql index 97d5e33633a..beb986adebc 100644 --- a/tests/queries/0_stateless/00712_prewhere_with_alias_bug_2.sql +++ b/tests/queries/0_stateless/00712_prewhere_with_alias_bug_2.sql @@ -1,5 +1,6 @@ drop table if exists table; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE table (a UInt32, date Date, b UInt64, c UInt64, str String, d Int8, arr Array(UInt64), arr_alias Array(UInt64) ALIAS arr) ENGINE = MergeTree(date, intHash32(c), (a, date, intHash32(c), b), 8192); SELECT alias2 AS alias3 diff --git a/tests/queries/0_stateless/00712_prewhere_with_final.sql b/tests/queries/0_stateless/00712_prewhere_with_final.sql index 4528d4f61f0..6b49e523f70 100644 --- a/tests/queries/0_stateless/00712_prewhere_with_final.sql +++ b/tests/queries/0_stateless/00712_prewhere_with_final.sql @@ -1,4 +1,5 @@ drop table if exists trepl; +set allow_deprecated_syntax_for_merge_tree=1; create table trepl(d Date,a Int32, b Int32) engine = ReplacingMergeTree(d, (a,b), 8192); insert into trepl values ('2018-09-19', 1, 1); select b from trepl FINAL prewhere a < 1000; diff --git a/tests/queries/0_stateless/00712_prewhere_with_sampling_and_alias.sql b/tests/queries/0_stateless/00712_prewhere_with_sampling_and_alias.sql index d011e1b368d..7c8ae4eed7c 100644 --- a/tests/queries/0_stateless/00712_prewhere_with_sampling_and_alias.sql +++ b/tests/queries/0_stateless/00712_prewhere_with_sampling_and_alias.sql @@ -1,4 +1,5 @@ drop table if exists t_00712_2; +set allow_deprecated_syntax_for_merge_tree=1; create table t_00712_2 (date Date, counter UInt64, sampler UInt64, alias_col alias date + 1) engine = MergeTree(date, intHash32(sampler), (counter, date, intHash32(sampler)), 8192); insert into t_00712_2 values ('2018-01-01', 1, 1); select alias_col from t_00712_2 sample 1 / 2 where date = '2018-01-01' and counter = 1 and sampler = 1; diff --git a/tests/queries/0_stateless/00717_merge_and_distributed.sql b/tests/queries/0_stateless/00717_merge_and_distributed.sql index f7b4a2b24d3..f27f6a75688 100644 --- a/tests/queries/0_stateless/00717_merge_and_distributed.sql +++ b/tests/queries/0_stateless/00717_merge_and_distributed.sql @@ -7,6 +7,7 @@ DROP TABLE IF EXISTS test_local_2; DROP TABLE IF EXISTS test_distributed_1; DROP TABLE IF EXISTS test_distributed_2; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_local_1 (date Date, value UInt32) ENGINE = MergeTree(date, date, 8192); CREATE TABLE test_local_2 (date Date, value UInt32) ENGINE = MergeTree(date, date, 8192); CREATE TABLE test_distributed_1 AS test_local_1 ENGINE = Distributed('test_shard_localhost', currentDatabase(), test_local_1, rand()); diff --git a/tests/queries/0_stateless/00729_prewhere_array_join.sql b/tests/queries/0_stateless/00729_prewhere_array_join.sql index ba10dd38bd2..5ac79c150c6 100644 --- a/tests/queries/0_stateless/00729_prewhere_array_join.sql +++ b/tests/queries/0_stateless/00729_prewhere_array_join.sql @@ -1,6 +1,7 @@ SET send_logs_level = 'fatal'; drop table if exists t1_00729; +set allow_deprecated_syntax_for_merge_tree=1; create table t1_00729 (id UInt64, val Array(String),nid UInt64, eDate Date)ENGINE = MergeTree(eDate, (id, eDate), 8192); insert into t1_00729 (id,val,nid,eDate) values (1,['background','foreground','heading','image'],1,'2018-09-27'); diff --git a/tests/queries/0_stateless/00731_long_merge_tree_select_opened_files.sh b/tests/queries/0_stateless/00731_long_merge_tree_select_opened_files.sh index d9a3631a7dd..2510517a740 100755 --- a/tests/queries/0_stateless/00731_long_merge_tree_select_opened_files.sh +++ b/tests/queries/0_stateless/00731_long_merge_tree_select_opened_files.sh @@ -7,7 +7,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CURDIR"/../shell_config.sh -settings="--log_queries=1 --log_query_threads=1 --log_profile_events=1 --log_query_settings=1" +settings="--log_queries=1 --log_query_threads=1 --log_profile_events=1 --log_query_settings=1 --allow_deprecated_syntax_for_merge_tree=1" # Test insert logging on each block and checkPacket() method diff --git a/tests/queries/0_stateless/00732_decimal_summing_merge_tree.sql b/tests/queries/0_stateless/00732_decimal_summing_merge_tree.sql index 1524776c16e..96e16a1300e 100644 --- a/tests/queries/0_stateless/00732_decimal_summing_merge_tree.sql +++ b/tests/queries/0_stateless/00732_decimal_summing_merge_tree.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS decimal_sum; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE decimal_sum ( date Date, diff --git a/tests/queries/0_stateless/00748_insert_array_with_null.sql b/tests/queries/0_stateless/00748_insert_array_with_null.sql index 78c564abad3..ca36352c2cf 100644 --- a/tests/queries/0_stateless/00748_insert_array_with_null.sql +++ b/tests/queries/0_stateless/00748_insert_array_with_null.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS arraytest; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE arraytest ( created_date Date DEFAULT toDate(created_at), created_at DateTime DEFAULT now(), strings Array(String) DEFAULT emptyArrayString()) ENGINE = MergeTree(created_date, cityHash64(created_at), (created_date, cityHash64(created_at)), 8192); INSERT INTO arraytest (created_at, strings) VALUES (now(), ['aaaaa', 'bbbbb', 'ccccc']); diff --git a/tests/queries/0_stateless/00752_low_cardinality_mv_2.sql b/tests/queries/0_stateless/00752_low_cardinality_mv_2.sql index 71950469a47..83c6b1c1a6b 100644 --- a/tests/queries/0_stateless/00752_low_cardinality_mv_2.sql +++ b/tests/queries/0_stateless/00752_low_cardinality_mv_2.sql @@ -1,6 +1,7 @@ drop table if exists radacct; drop table if exists mv_traffic_by_tadig15min; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE radacct ( radacctid UInt64, f3gppchargingid Nullable(String), f3gppggsnaddress Nullable(String), f3gppggsnmccmnc Nullable(String), f3gppgprsqos Nullable(String), f3gppimeisv Nullable(String), f3gppimsi Nullable(UInt64), f3gppimsimccmnc Nullable(String), f3gpploci Nullable(String), f3gppnsapi Nullable(String), f3gpprattype Nullable(String), f3gppsgsnaddress Nullable(String), f3gppsgsnmccmnc Nullable(String), acctdelaytime Nullable(UInt32), acctinputoctets Nullable(UInt64), acctinputpackets Nullable(UInt64), acctoutputoctets Nullable(UInt64), acctoutputpackets Nullable(UInt64), acctsessionid String, acctstatustype Nullable(String), acctuniqueid String, calledstationid Nullable(String), callingstationid Nullable(String), framedipaddress Nullable(String), nasidentifier Nullable(String), nasipaddress Nullable(String), acctstarttime Nullable(DateTime), acctstoptime Nullable(DateTime), acctsessiontime Nullable(UInt32), acctterminatecause Nullable(String), acctstartdelay Nullable(UInt32), acctstopdelay Nullable(UInt32), connectinfo_start Nullable(String), connectinfo_stop Nullable(String), timestamp DateTime, username Nullable(String), realm Nullable(String), f3gppimsi_int UInt64, f3gppsgsnaddress_int Nullable(UInt32), timestamp_date Date, tac Nullable(String), mnc Nullable(String), tadig LowCardinality(String), country LowCardinality(String), tadig_op_ip Nullable(String) DEFAULT CAST('TADIG NOT FOUND', 'Nullable(String)'), mcc Nullable(UInt16) MATERIALIZED toUInt16OrNull(substring(f3gppsgsnmccmnc, 1, 6))) ENGINE = MergeTree(timestamp_date, (timestamp, radacctid, acctuniqueid), 8192); insert into radacct values (1, 'a', 'b', 'c', 'd', 'e', 2, 'a', 'b', 'c', 'd', 'e', 'f', 3, 4, 5, 6, 7, 'a', 'Stop', 'c', 'd', 'e', 'f', 'g', 'h', '2018-10-10 15:54:21', '2018-10-10 15:54:21', 8, 'a', 9, 10, 'a', 'b', '2018-10-10 15:54:21', 'a', 'b', 11, 12, '2018-10-10', 'a', 'b', 'c', 'd', 'e'); diff --git a/tests/queries/0_stateless/00753_system_columns_and_system_tables_long.sql b/tests/queries/0_stateless/00753_system_columns_and_system_tables_long.sql index a2d19c22500..e1392d299dc 100644 --- a/tests/queries/0_stateless/00753_system_columns_and_system_tables_long.sql +++ b/tests/queries/0_stateless/00753_system_columns_and_system_tables_long.sql @@ -49,6 +49,7 @@ FORMAT PrettyCompactNoEscapes; DROP TABLE IF EXISTS check_system_tables; -- Check MergeTree declaration in old format +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE check_system_tables ( Event Date, diff --git a/tests/queries/0_stateless/00754_alter_modify_order_by.sql b/tests/queries/0_stateless/00754_alter_modify_order_by.sql index cb81f868e7b..234bd61902b 100644 --- a/tests/queries/0_stateless/00754_alter_modify_order_by.sql +++ b/tests/queries/0_stateless/00754_alter_modify_order_by.sql @@ -2,6 +2,7 @@ SET send_logs_level = 'fatal'; SET optimize_on_insert = 0; DROP TABLE IF EXISTS old_style; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE old_style(d Date, x UInt32) ENGINE MergeTree(d, x, 8192); ALTER TABLE old_style ADD COLUMN y UInt32, MODIFY ORDER BY (x, y); -- { serverError 36} DROP TABLE old_style; diff --git a/tests/queries/0_stateless/00754_alter_modify_order_by_replicated_zookeeper_long.sql b/tests/queries/0_stateless/00754_alter_modify_order_by_replicated_zookeeper_long.sql index c859c7b9921..29d0ef79b91 100644 --- a/tests/queries/0_stateless/00754_alter_modify_order_by_replicated_zookeeper_long.sql +++ b/tests/queries/0_stateless/00754_alter_modify_order_by_replicated_zookeeper_long.sql @@ -6,6 +6,7 @@ SET optimize_on_insert = 0; SET send_logs_level = 'fatal'; DROP TABLE IF EXISTS old_style; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE old_style(d Date, x UInt32) ENGINE ReplicatedMergeTree('/clickhouse/tables/{database}/test_00754/old_style', 'r1', d, x, 8192); ALTER TABLE old_style ADD COLUMN y UInt32, MODIFY ORDER BY (x, y); -- { serverError 36 } DROP TABLE old_style; diff --git a/tests/queries/0_stateless/00794_materialized_view_with_column_defaults.sql b/tests/queries/0_stateless/00794_materialized_view_with_column_defaults.sql index a756f5c3537..43dcb322f1c 100644 --- a/tests/queries/0_stateless/00794_materialized_view_with_column_defaults.sql +++ b/tests/queries/0_stateless/00794_materialized_view_with_column_defaults.sql @@ -1,6 +1,7 @@ DROP TABLE IF EXISTS table_view; DROP TABLE IF EXISTS source_table; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE source_table ( date Date, datetime DateTime, diff --git a/tests/queries/0_stateless/00800_low_cardinality_distributed_insert.sql b/tests/queries/0_stateless/00800_low_cardinality_distributed_insert.sql index 600793853ca..7ddf1caa85f 100644 --- a/tests/queries/0_stateless/00800_low_cardinality_distributed_insert.sql +++ b/tests/queries/0_stateless/00800_low_cardinality_distributed_insert.sql @@ -5,6 +5,7 @@ SET insert_distributed_sync = 1; DROP TABLE IF EXISTS low_cardinality; DROP TABLE IF EXISTS low_cardinality_all; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE low_cardinality (d Date, x UInt32, s LowCardinality(String)) ENGINE = MergeTree(d, x, 8192); CREATE TABLE low_cardinality_all (d Date, x UInt32, s LowCardinality(String)) ENGINE = Distributed(test_shard_localhost, currentDatabase(), low_cardinality, sipHash64(s)); diff --git a/tests/queries/0_stateless/00806_alter_update.sql b/tests/queries/0_stateless/00806_alter_update.sql index c4fe3969df3..c9b1bfb2d9d 100644 --- a/tests/queries/0_stateless/00806_alter_update.sql +++ b/tests/queries/0_stateless/00806_alter_update.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS alter_update_00806; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alter_update_00806 (d Date, e Enum8('foo'=1, 'bar'=2)) Engine = MergeTree(d, (d), 8192); INSERT INTO alter_update_00806 (d, e) VALUES ('2018-01-01', 'foo'); INSERT INTO alter_update_00806 (d, e) VALUES ('2018-01-02', 'bar'); diff --git a/tests/queries/0_stateless/00829_bitmap_function.sql b/tests/queries/0_stateless/00829_bitmap_function.sql index fde0176de5b..6a21f5caf0f 100644 --- a/tests/queries/0_stateless/00829_bitmap_function.sql +++ b/tests/queries/0_stateless/00829_bitmap_function.sql @@ -71,6 +71,7 @@ SELECT bitmapToArray(bitmapAnd(groupBitmapState(uid), bitmapBuild(CAST([1, 2, 3] -- bitmap state test DROP TABLE IF EXISTS bitmap_state_test; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE bitmap_state_test ( pickup_date Date, diff --git a/tests/queries/0_stateless/00834_hints_for_type_function_typos.sh b/tests/queries/0_stateless/00834_hints_for_type_function_typos.sh index 6640e0003cd..41a35d908d1 100755 --- a/tests/queries/0_stateless/00834_hints_for_type_function_typos.sh +++ b/tests/queries/0_stateless/00834_hints_for_type_function_typos.sh @@ -26,5 +26,5 @@ $CLICKHOUSE_CLIENT -q "select * FROM numberss(10);" 2>&1 | grep "Maybe you meant $CLICKHOUSE_CLIENT -q "select * FROM anothernumbers(10);" 2>&1 | grep -v "Maybe you meant: \['numbers'\,'numbers_mt'\]." &>/dev/null $CLICKHOUSE_CLIENT -q "select * FROM mynumbers(10);" 2>&1 | grep "Maybe you meant: \['numbers'\]." &>/dev/null -$CLICKHOUSE_CLIENT -q "CREATE TABLE stored_aggregates (d Date, Uniq AggregateFunction(uniq, UInt64)) ENGINE = MergeTre(d, d, 8192);" 2>&1 | grep "Maybe you meant: \['MergeTree'\]." &>/dev/null -$CLICKHOUSE_CLIENT -q "CREATE TABLE stored_aggregates (d Date, Uniq AgregateFunction(uniq, UInt64)) ENGINE = MergeTree(d, d, 8192);" 2>&1 | grep "Maybe you meant: \['AggregateFunction'\]." &>/dev/null +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE stored_aggregates (d Date, Uniq AggregateFunction(uniq, UInt64)) ENGINE = MergeTre(d, d, 8192);" 2>&1 | grep "Maybe you meant: \['MergeTree'\]." &>/dev/null +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE stored_aggregates (d Date, Uniq AgregateFunction(uniq, UInt64)) ENGINE = MergeTree(d, d, 8192);" 2>&1 | grep "Maybe you meant: \['AggregateFunction'\]." &>/dev/null diff --git a/tests/queries/0_stateless/00910_crash_when_distributed_modify_order_by.sql b/tests/queries/0_stateless/00910_crash_when_distributed_modify_order_by.sql index 6dea97d1f27..00811d8ab89 100644 --- a/tests/queries/0_stateless/00910_crash_when_distributed_modify_order_by.sql +++ b/tests/queries/0_stateless/00910_crash_when_distributed_modify_order_by.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS union1; DROP TABLE IF EXISTS union2; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE union1 ( date Date, a Int32, b Int32, c Int32, d Int32) ENGINE = MergeTree(date, (a, date), 8192); CREATE TABLE union2 ( date Date, a Int32, b Int32, c Int32, d Int32) ENGINE = Distributed(test_shard_localhost, currentDatabase(), 'union1'); ALTER TABLE union2 MODIFY ORDER BY a; -- { serverError 48 } diff --git a/tests/queries/0_stateless/00925_zookeeper_empty_replicated_merge_tree_optimize_final_long.sh b/tests/queries/0_stateless/00925_zookeeper_empty_replicated_merge_tree_optimize_final_long.sh index b0757829424..9e82cb4d30b 100755 --- a/tests/queries/0_stateless/00925_zookeeper_empty_replicated_merge_tree_optimize_final_long.sh +++ b/tests/queries/0_stateless/00925_zookeeper_empty_replicated_merge_tree_optimize_final_long.sh @@ -8,8 +8,8 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS replicated_optimize1;" $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS replicated_optimize2;" -$CLICKHOUSE_CLIENT -q "CREATE TABLE replicated_optimize1 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/test_00925/optimize', 'r1', d, k, 8192);" -$CLICKHOUSE_CLIENT -q "CREATE TABLE replicated_optimize2 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/test_00925/optimize', 'r2', d, k, 8192);" +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE replicated_optimize1 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/test_00925/optimize', 'r1', d, k, 8192);" +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE replicated_optimize2 (d Date, k UInt64, i32 Int32) ENGINE=ReplicatedMergeTree('/clickhouse/tables/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/test_00925/optimize', 'r2', d, k, 8192);" num_tries=0 while [[ $($CLICKHOUSE_CLIENT -q "SELECT is_leader FROM system.replicas WHERE database=currentDatabase() AND table='replicated_optimize1'") -ne 1 ]]; do diff --git a/tests/queries/0_stateless/00952_insert_into_distributed_with_materialized_column.sql b/tests/queries/0_stateless/00952_insert_into_distributed_with_materialized_column.sql index 3a9a9154abe..05382b855b1 100644 --- a/tests/queries/0_stateless/00952_insert_into_distributed_with_materialized_column.sql +++ b/tests/queries/0_stateless/00952_insert_into_distributed_with_materialized_column.sql @@ -15,6 +15,7 @@ SET insert_allow_materialized_columns=0; SELECT 'insert_distributed_sync=0'; SET insert_distributed_sync=0; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE local_00952 (date Date, value Date MATERIALIZED toDate('2017-08-01')) ENGINE = MergeTree(date, date, 8192); CREATE TABLE distributed_00952 AS local_00952 ENGINE = Distributed('test_cluster_two_shards', currentDatabase(), local_00952, rand()); diff --git a/tests/queries/0_stateless/00981_in_subquery_with_tuple.sh b/tests/queries/0_stateless/00981_in_subquery_with_tuple.sh index 99173062595..a899886e463 100755 --- a/tests/queries/0_stateless/00981_in_subquery_with_tuple.sh +++ b/tests/queries/0_stateless/00981_in_subquery_with_tuple.sh @@ -5,7 +5,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) . "$CURDIR"/../shell_config.sh $CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS bug"; -$CLICKHOUSE_CLIENT --query="CREATE TABLE bug (d Date, s String) ENGINE = MergeTree(d, s, 8192)"; +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 --query="CREATE TABLE bug (d Date, s String) ENGINE = MergeTree(d, s, 8192)"; $CLICKHOUSE_CLIENT --query="INSERT INTO bug VALUES ('2019-08-09', 'hello'), ('2019-08-10', 'world'), ('2019-08-11', 'world'), ('2019-08-12', 'hello')"; #SET force_primary_key = 1; diff --git a/tests/queries/0_stateless/01008_materialized_view_henyihanwobushi.sql b/tests/queries/0_stateless/01008_materialized_view_henyihanwobushi.sql index 8def546cd2e..1e91f6daf65 100644 --- a/tests/queries/0_stateless/01008_materialized_view_henyihanwobushi.sql +++ b/tests/queries/0_stateless/01008_materialized_view_henyihanwobushi.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS foo; DROP TABLE IF EXISTS bar; DROP TABLE IF EXISTS view_foo_bar; +set allow_deprecated_syntax_for_merge_tree=1; create table foo (ddate Date, id Int64, n String) ENGINE = ReplacingMergeTree(ddate, (id), 8192); create table bar (ddate Date, id Int64, n String, foo_id Int64) ENGINE = ReplacingMergeTree(ddate, (id), 8192); insert into bar (id, n, foo_id) values (1, 'bar_n_1', 1); diff --git a/tests/queries/0_stateless/01053_drop_database_mat_view.sql b/tests/queries/0_stateless/01053_drop_database_mat_view.sql index e9936d7d3b2..7651ac4885c 100644 --- a/tests/queries/0_stateless/01053_drop_database_mat_view.sql +++ b/tests/queries/0_stateless/01053_drop_database_mat_view.sql @@ -4,6 +4,7 @@ DROP DATABASE IF EXISTS some_tests; set allow_deprecated_database_ordinary=1; CREATE DATABASE some_tests ENGINE=Ordinary; -- Different inner table name with Atomic +set allow_deprecated_syntax_for_merge_tree=1; create table some_tests.my_table ENGINE = MergeTree(day, (day), 8192) as select today() as day, 'mystring' as str; show tables from some_tests; create materialized view some_tests.my_materialized_view ENGINE = MergeTree(day, (day), 8192) as select * from some_tests.my_table; diff --git a/tests/queries/0_stateless/01062_alter_on_mutataion_zookeeper_long.sql b/tests/queries/0_stateless/01062_alter_on_mutataion_zookeeper_long.sql index aba84f43033..3777ebb1af3 100644 --- a/tests/queries/0_stateless/01062_alter_on_mutataion_zookeeper_long.sql +++ b/tests/queries/0_stateless/01062_alter_on_mutataion_zookeeper_long.sql @@ -61,6 +61,7 @@ DROP TABLE IF EXISTS test_alter_on_mutation; DROP TABLE IF EXISTS nested_alter; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE nested_alter (`d` Date, `k` UInt64, `i32` Int32, `dt` DateTime, `n.ui8` Array(UInt8), `n.s` Array(String), `n.d` Array(Date), `s` String DEFAULT '0') ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/test_01062/nested_alter', 'r2', d, k, 8192); INSERT INTO nested_alter VALUES ('2015-01-01', 6,38,'2014-07-15 13:26:50',[10,20,30],['asd','qwe','qwe'],['2000-01-01','2000-01-01','2000-01-03'],'100500'); diff --git a/tests/queries/0_stateless/01071_prohibition_secondary_index_with_old_format_merge_tree.sql b/tests/queries/0_stateless/01071_prohibition_secondary_index_with_old_format_merge_tree.sql index bbb607fe89f..992973c97e8 100644 --- a/tests/queries/0_stateless/01071_prohibition_secondary_index_with_old_format_merge_tree.sql +++ b/tests/queries/0_stateless/01071_prohibition_secondary_index_with_old_format_merge_tree.sql @@ -1,5 +1,6 @@ -- Tags: no-parallel +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE old_syntax_01071_test (date Date, id UInt8) ENGINE = MergeTree(date, id, 8192); ALTER TABLE old_syntax_01071_test ADD INDEX id_minmax id TYPE minmax GRANULARITY 1; -- { serverError 36 } CREATE TABLE new_syntax_01071_test (date Date, id UInt8) ENGINE = MergeTree() ORDER BY id; diff --git a/tests/queries/0_stateless/01076_predicate_optimizer_with_view.sql b/tests/queries/0_stateless/01076_predicate_optimizer_with_view.sql index d652cbeea5d..cfa25179d05 100644 --- a/tests/queries/0_stateless/01076_predicate_optimizer_with_view.sql +++ b/tests/queries/0_stateless/01076_predicate_optimizer_with_view.sql @@ -1,6 +1,7 @@ DROP TABLE IF EXISTS test; DROP TABLE IF EXISTS test_view; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test(date Date, id Int8, name String, value Int64) ENGINE = MergeTree(date, (id, date), 8192); CREATE VIEW test_view AS SELECT * FROM test; diff --git a/tests/queries/0_stateless/01089_alter_settings_old_format.sql b/tests/queries/0_stateless/01089_alter_settings_old_format.sql index 15d3ac508cb..7e7674f4d43 100644 --- a/tests/queries/0_stateless/01089_alter_settings_old_format.sql +++ b/tests/queries/0_stateless/01089_alter_settings_old_format.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS old_format_mt; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE old_format_mt ( event_date Date, key UInt64, diff --git a/tests/queries/0_stateless/01101_prewhere_after_alter.sql b/tests/queries/0_stateless/01101_prewhere_after_alter.sql index 11ebac7448d..976eb586a9a 100644 --- a/tests/queries/0_stateless/01101_prewhere_after_alter.sql +++ b/tests/queries/0_stateless/01101_prewhere_after_alter.sql @@ -1,6 +1,7 @@ DROP TABLE IF EXISTS test_a; DROP TABLE IF EXISTS test_b; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_a ( OldColumn String DEFAULT '', diff --git a/tests/queries/0_stateless/01125_generate_random_qoega.sql b/tests/queries/0_stateless/01125_generate_random_qoega.sql index 7fb586ad2b5..9088e411a80 100644 --- a/tests/queries/0_stateless/01125_generate_random_qoega.sql +++ b/tests/queries/0_stateless/01125_generate_random_qoega.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS mass_table_117; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE mass_table_117 (`dt` Date, `site_id` Int32, `site_key` String) ENGINE = MergeTree(dt, (site_id, site_key, dt), 8192); INSERT INTO mass_table_117 SELECT * FROM generateRandom('`dt` Date,`site_id` Int32,`site_key` String', 1, 10, 2) LIMIT 100; SELECT count(), sum(cityHash64(*)) FROM mass_table_117; diff --git a/tests/queries/0_stateless/01126_month_partitioning_consistent_code.sql b/tests/queries/0_stateless/01126_month_partitioning_consistent_code.sql index c9bfbbe5111..f5f04178d5e 100644 --- a/tests/queries/0_stateless/01126_month_partitioning_consistent_code.sql +++ b/tests/queries/0_stateless/01126_month_partitioning_consistent_code.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS mt; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE mt (d Date, x UInt8) ENGINE = MergeTree(d, x, 8192); INSERT INTO mt VALUES (52392, 1), (62677, 2); DROP TABLE mt; diff --git a/tests/queries/0_stateless/01127_month_partitioning_consistency_select.sql b/tests/queries/0_stateless/01127_month_partitioning_consistency_select.sql index eb5ea091ca3..2a1d04e6074 100644 --- a/tests/queries/0_stateless/01127_month_partitioning_consistency_select.sql +++ b/tests/queries/0_stateless/01127_month_partitioning_consistency_select.sql @@ -1,6 +1,7 @@ -- Tags: no-parallel DROP TABLE IF EXISTS mt; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE mt (d Date, x String) ENGINE = MergeTree(d, x, 8192); INSERT INTO mt VALUES ('2106-02-07', 'Hello'), ('1970-01-01', 'World'); diff --git a/tests/queries/0_stateless/01253_subquery_in_aggregate_function_JustStranger.sql b/tests/queries/0_stateless/01253_subquery_in_aggregate_function_JustStranger.sql index 9659db7973d..97b0182f06f 100644 --- a/tests/queries/0_stateless/01253_subquery_in_aggregate_function_JustStranger.sql +++ b/tests/queries/0_stateless/01253_subquery_in_aggregate_function_JustStranger.sql @@ -1,6 +1,7 @@ DROP TABLE IF EXISTS test_table; DROP TABLE IF EXISTS test_table_sharded; +set allow_deprecated_syntax_for_merge_tree=1; create table test_table_sharded( date Date, diff --git a/tests/queries/0_stateless/01355_alter_column_with_order.sql b/tests/queries/0_stateless/01355_alter_column_with_order.sql index c0c85e389ea..0b1b4c42cce 100644 --- a/tests/queries/0_stateless/01355_alter_column_with_order.sql +++ b/tests/queries/0_stateless/01355_alter_column_with_order.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS alter_test; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE alter_test (CounterID UInt32, StartDate Date, UserID UInt32, VisitID UInt32, NestedColumn Nested(A UInt8, S String), ToDrop UInt32) ENGINE = MergeTree(StartDate, intHash32(UserID), (CounterID, StartDate, intHash32(UserID), VisitID), 8192); ALTER TABLE alter_test ADD COLUMN Added1 UInt32 FIRST; diff --git a/tests/queries/0_stateless/01387_clear_column_default_depends.sql b/tests/queries/0_stateless/01387_clear_column_default_depends.sql index 21a41f09df6..733daafa91c 100644 --- a/tests/queries/0_stateless/01387_clear_column_default_depends.sql +++ b/tests/queries/0_stateless/01387_clear_column_default_depends.sql @@ -31,6 +31,7 @@ DROP TABLE test; -- The original report from Mikhail Petrov DROP TABLE IF EXISTS Test; +set allow_deprecated_syntax_for_merge_tree=1; create table Test (impression_id String,impression_id_compressed FixedString(16) DEFAULT UUIDStringToNum(substring(impression_id, 1, 36)), impression_id_hashed UInt16 DEFAULT reinterpretAsUInt16(impression_id_compressed), event_date Date ) ENGINE = MergeTree(event_date, impression_id_hashed, (event_date, impression_id_hashed), 8192); alter table Test clear column impression_id in partition '202001'; DROP TABLE Test; diff --git a/tests/queries/0_stateless/01417_freeze_partition_verbose.sh b/tests/queries/0_stateless/01417_freeze_partition_verbose.sh index 1f67100a4b6..12f104b5337 100755 --- a/tests/queries/0_stateless/01417_freeze_partition_verbose.sh +++ b/tests/queries/0_stateless/01417_freeze_partition_verbose.sh @@ -17,7 +17,7 @@ ${CLICKHOUSE_CLIENT} --query "INSERT INTO table_for_freeze SELECT number, toStri # also for old syntax ${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS table_for_freeze_old_syntax;" -${CLICKHOUSE_CLIENT} --query "CREATE TABLE table_for_freeze_old_syntax (dt Date, value String) ENGINE = MergeTree(dt, (value), 8192);" +${CLICKHOUSE_CLIENT} --allow_deprecated_syntax_for_merge_tree=1 --query "CREATE TABLE table_for_freeze_old_syntax (dt Date, value String) ENGINE = MergeTree(dt, (value), 8192);" ${CLICKHOUSE_CLIENT} --query "INSERT INTO table_for_freeze_old_syntax SELECT toDate('2021-03-01'), toString(number) from numbers(10);" ${CLICKHOUSE_CLIENT} --query "ALTER TABLE table_for_freeze FREEZE WITH NAME 'test_01417' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \ diff --git a/tests/queries/0_stateless/01430_modify_sample_by_zookeeper_long.sql b/tests/queries/0_stateless/01430_modify_sample_by_zookeeper_long.sql index 223c27804df..752bc6b377f 100644 --- a/tests/queries/0_stateless/01430_modify_sample_by_zookeeper_long.sql +++ b/tests/queries/0_stateless/01430_modify_sample_by_zookeeper_long.sql @@ -37,6 +37,7 @@ ATTACH TABLE modify_sample_replicated; SELECT count(), min(y), max(y), sum(y), uniqExact(y) FROM modify_sample_replicated SAMPLE 0.1; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE modify_sample_old (d Date DEFAULT '2000-01-01', x UInt8, y UInt64) ENGINE = MergeTree(d, (x, y), 8192); ALTER TABLE modify_sample_old MODIFY SAMPLE BY x; -- { serverError 36 } diff --git a/tests/queries/0_stateless/01455_shard_leaf_max_rows_bytes_to_read.sql b/tests/queries/0_stateless/01455_shard_leaf_max_rows_bytes_to_read.sql index a271295a0cd..620daeb9f35 100644 --- a/tests/queries/0_stateless/01455_shard_leaf_max_rows_bytes_to_read.sql +++ b/tests/queries/0_stateless/01455_shard_leaf_max_rows_bytes_to_read.sql @@ -20,6 +20,7 @@ SELECT count() FROM (SELECT * FROM remote('127.0.0.2', system.numbers) LIMIT 100 DROP TABLE IF EXISTS test_local; DROP TABLE IF EXISTS test_distributed; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_local (date Date, value UInt32) ENGINE = MergeTree(date, date, 8192); CREATE TABLE test_distributed AS test_local ENGINE = Distributed(test_cluster_two_shards, currentDatabase(), test_local, rand()); diff --git a/tests/queries/0_stateless/01648_mutations_and_escaping.sql b/tests/queries/0_stateless/01648_mutations_and_escaping.sql index 689da842f16..18bd0b8ee3b 100644 --- a/tests/queries/0_stateless/01648_mutations_and_escaping.sql +++ b/tests/queries/0_stateless/01648_mutations_and_escaping.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS mutations_and_escaping_1648; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE mutations_and_escaping_1648 (d Date, e Enum8('foo'=1, 'bar'=2)) Engine = MergeTree(d, (d), 8192); INSERT INTO mutations_and_escaping_1648 (d, e) VALUES ('2018-01-01', 'foo'); INSERT INTO mutations_and_escaping_1648 (d, e) VALUES ('2018-01-02', 'bar'); diff --git a/tests/queries/0_stateless/01713_table_ttl_old_syntax_zookeeper.sql b/tests/queries/0_stateless/01713_table_ttl_old_syntax_zookeeper.sql index 1709a2d412a..11346a812f2 100644 --- a/tests/queries/0_stateless/01713_table_ttl_old_syntax_zookeeper.sql +++ b/tests/queries/0_stateless/01713_table_ttl_old_syntax_zookeeper.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS ttl_table; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE ttl_table ( date Date, diff --git a/tests/queries/0_stateless/01778_test_LowCardinality_FixedString_pk.sql b/tests/queries/0_stateless/01778_test_LowCardinality_FixedString_pk.sql index 1a0a1d35f76..78a9b35a40e 100644 --- a/tests/queries/0_stateless/01778_test_LowCardinality_FixedString_pk.sql +++ b/tests/queries/0_stateless/01778_test_LowCardinality_FixedString_pk.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS test_01778; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_01778 ( `key` LowCardinality(FixedString(3)), diff --git a/tests/queries/0_stateless/01798_uniq_theta_sketch.sql b/tests/queries/0_stateless/01798_uniq_theta_sketch.sql index eace83d5cfa..59d5888c0a1 100644 --- a/tests/queries/0_stateless/01798_uniq_theta_sketch.sql +++ b/tests/queries/0_stateless/01798_uniq_theta_sketch.sql @@ -107,6 +107,7 @@ EXPLAIN SYNTAX select uniqTheta(-bitNot(-x)) from (select number % 2 as x from n DROP TABLE IF EXISTS stored_aggregates; -- simple +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE stored_aggregates ( d Date, diff --git a/tests/queries/0_stateless/01925_broken_partition_id_zookeeper.sql b/tests/queries/0_stateless/01925_broken_partition_id_zookeeper.sql index 7d151f063e1..9c6aa3146ee 100644 --- a/tests/queries/0_stateless/01925_broken_partition_id_zookeeper.sql +++ b/tests/queries/0_stateless/01925_broken_partition_id_zookeeper.sql @@ -19,6 +19,7 @@ DROP TABLE IF EXISTS broken_partition; DROP TABLE IF EXISTS old_partition_key; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE old_partition_key (sd Date, dh UInt64, ak UInt32, ed Date) ENGINE=MergeTree(sd, dh, (ak, ed, dh), 8192); ALTER TABLE old_partition_key DROP PARTITION ID '20210325_0_13241_6_12747'; --{serverError 248} diff --git a/tests/queries/0_stateless/02250_hints_for_columns.sh b/tests/queries/0_stateless/02250_hints_for_columns.sh index 45fd2f238b1..ea08d8c5535 100755 --- a/tests/queries/0_stateless/02250_hints_for_columns.sh +++ b/tests/queries/0_stateless/02250_hints_for_columns.sh @@ -6,7 +6,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) $CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS t" -$CLICKHOUSE_CLIENT --query="CREATE TABLE t (CounterID UInt32, StartDate Date, UserID UInt32, VisitID UInt32, NestedColumn Nested(A UInt8, S String), ToDrop UInt32) ENGINE = MergeTree(StartDate, intHash32(UserID), (CounterID, StartDate, intHash32(UserID), VisitID), 8192)" +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 --query="CREATE TABLE t (CounterID UInt32, StartDate Date, UserID UInt32, VisitID UInt32, NestedColumn Nested(A UInt8, S String), ToDrop UInt32) ENGINE = MergeTree(StartDate, intHash32(UserID), (CounterID, StartDate, intHash32(UserID), VisitID), 8192)" $CLICKHOUSE_CLIENT --query="ALTER TABLE t DROP COLUMN ToDro" 2>&1 | grep -q "Maybe you meant: \['ToDrop'\]" && echo 'OK' || echo 'FAIL' diff --git a/tests/queries/1_stateful/00040_aggregating_materialized_view.sql b/tests/queries/1_stateful/00040_aggregating_materialized_view.sql index 555a8b64d75..99fed62683f 100644 --- a/tests/queries/1_stateful/00040_aggregating_materialized_view.sql +++ b/tests/queries/1_stateful/00040_aggregating_materialized_view.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS test.basic_00040; +set allow_deprecated_syntax_for_merge_tree=1; CREATE MATERIALIZED VIEW test.basic_00040 ENGINE = AggregatingMergeTree(StartDate, (CounterID, StartDate), 8192) POPULATE AS diff --git a/tests/queries/1_stateful/00041_aggregating_materialized_view.sql b/tests/queries/1_stateful/00041_aggregating_materialized_view.sql index 0e59d2a88a9..ea99b78902c 100644 --- a/tests/queries/1_stateful/00041_aggregating_materialized_view.sql +++ b/tests/queries/1_stateful/00041_aggregating_materialized_view.sql @@ -9,6 +9,7 @@ CREATE TABLE test.visits_null UserID UInt64 ) ENGINE = Null; +set allow_deprecated_syntax_for_merge_tree=1; CREATE MATERIALIZED VIEW test.basic ENGINE = AggregatingMergeTree(StartDate, (CounterID, StartDate), 8192) AS SELECT diff --git a/tests/queries/1_stateful/00054_merge_tree_partitions.sql b/tests/queries/1_stateful/00054_merge_tree_partitions.sql index 73020952977..33f7e4e8666 100644 --- a/tests/queries/1_stateful/00054_merge_tree_partitions.sql +++ b/tests/queries/1_stateful/00054_merge_tree_partitions.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS test.partitions; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test.partitions (EventDate Date, CounterID UInt32) ENGINE = MergeTree(EventDate, CounterID, 8192); INSERT INTO test.partitions SELECT EventDate + UserID % 365 AS EventDate, CounterID FROM test.hits WHERE CounterID = 1704509; diff --git a/tests/queries/1_stateful/00071_merge_tree_optimize_aio.sql b/tests/queries/1_stateful/00071_merge_tree_optimize_aio.sql index 16c0097bf21..e0575122644 100644 --- a/tests/queries/1_stateful/00071_merge_tree_optimize_aio.sql +++ b/tests/queries/1_stateful/00071_merge_tree_optimize_aio.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS test.hits_snippet; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test.hits_snippet(EventTime DateTime('Asia/Dubai'), EventDate Date, CounterID UInt32, UserID UInt64, URL String, Referer String) ENGINE = MergeTree(EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID), EventTime), 8192); SET min_insert_block_size_rows = 0, min_insert_block_size_bytes = 0; From cd8e5c7c49d4246014ce4cf423d087278745cfd3 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Thu, 23 Jun 2022 17:43:54 +0800 Subject: [PATCH 142/525] update headers --- src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp | 3 +-- src/Storages/Hive/StorageHive.cpp | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp index eefe4231b89..f922ff048b2 100644 --- a/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp +++ b/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp @@ -1,5 +1,4 @@ -#include -#include +#include "ArrowColumnToCHColumn.h" #if USE_ARROW || USE_ORC || USE_PARQUET diff --git a/src/Storages/Hive/StorageHive.cpp b/src/Storages/Hive/StorageHive.cpp index 6d298c0033c..b717d373598 100644 --- a/src/Storages/Hive/StorageHive.cpp +++ b/src/Storages/Hive/StorageHive.cpp @@ -1,4 +1,3 @@ -#include #include #if USE_HIVE From bc4fd4c044fa3d8db78b36b096b4c2531320c4d0 Mon Sep 17 00:00:00 2001 From: kssenii Date: Thu, 23 Jun 2022 11:44:36 +0200 Subject: [PATCH 143/525] Support ON CLUSTER --- src/Parsers/ParserSystemQuery.cpp | 1 + .../queries/0_stateless/02286_drop_filesystem_cache.reference | 1 + tests/queries/0_stateless/02286_drop_filesystem_cache.sql | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Parsers/ParserSystemQuery.cpp b/src/Parsers/ParserSystemQuery.cpp index 34279bdd300..7854f7a2400 100644 --- a/src/Parsers/ParserSystemQuery.cpp +++ b/src/Parsers/ParserSystemQuery.cpp @@ -360,6 +360,7 @@ bool ParserSystemQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expected & ASTPtr ast; if (path_parser.parse(pos, ast, expected)) res->filesystem_cache_path = ast->as()->value.safeGet(); + parseQueryWithOnCluster(res, pos, expected); break; } diff --git a/tests/queries/0_stateless/02286_drop_filesystem_cache.reference b/tests/queries/0_stateless/02286_drop_filesystem_cache.reference index 30026f943a1..3b2b31c8744 100644 --- a/tests/queries/0_stateless/02286_drop_filesystem_cache.reference +++ b/tests/queries/0_stateless/02286_drop_filesystem_cache.reference @@ -28,3 +28,4 @@ SELECT count() FROM system.filesystem_cache; SYSTEM DROP FILESYSTEM CACHE './s3_cache/'; SELECT count() FROM system.filesystem_cache; 2 +SYSTEM DROP FILESYSTEM CACHE ON CLUSTER; diff --git a/tests/queries/0_stateless/02286_drop_filesystem_cache.sql b/tests/queries/0_stateless/02286_drop_filesystem_cache.sql index 85bfb6ca1c7..8610299d08a 100644 --- a/tests/queries/0_stateless/02286_drop_filesystem_cache.sql +++ b/tests/queries/0_stateless/02286_drop_filesystem_cache.sql @@ -31,4 +31,6 @@ SELECT * FROM test2 FORMAT Null; SELECT count() FROM system.filesystem_cache; SYSTEM DROP FILESYSTEM CACHE './s3_cache/'; -SELECT count() FROM system.filesystem_cache; \ No newline at end of file +SELECT count() FROM system.filesystem_cache; + +SYSTEM DROP FILESYSTEM CACHE ON CLUSTER; From 944c247345da5014e22c72fe6e388eb7a3668669 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Wed, 22 Jun 2022 19:23:22 +0000 Subject: [PATCH 144/525] DISTINCT in order optimization + try use the optimization for final distinct in case of sorted stream (sorting inside and among chunks) + sorting description contains only columns from sorting key which are in header as well --- src/Processors/QueryPlan/DistinctStep.cpp | 45 +++++++++++++------ src/Processors/QueryPlan/DistinctStep.h | 1 - .../QueryPlan/ReadFromMergeTree.cpp | 12 +++-- ...m.cpp => DistinctSortedChunkTransform.cpp} | 20 ++++----- ...sform.h => DistinctSortedChunkTransform.h} | 10 ++--- src/Storages/ReadInOrderOptimizer.cpp | 8 ++-- src/Storages/SelectQueryInfo.h | 6 +-- ...7_distinct_in_order_optimization.reference | 6 +-- .../02317_distinct_in_order_optimization.sql | 4 +- 9 files changed, 64 insertions(+), 48 deletions(-) rename src/Processors/Transforms/{DistinctPrimaryKeyTransform.cpp => DistinctSortedChunkTransform.cpp} (88%) rename src/Processors/Transforms/{DistinctPrimaryKeyTransform.h => DistinctSortedChunkTransform.h} (82%) diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index 9e8eabc53c8..c5e478eca8c 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -1,5 +1,6 @@ #include -#include +#include +#include #include #include #include @@ -87,21 +88,39 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil if (!pre_distinct) pipeline.resize(1); - if (pre_distinct && optimize_distinct_in_order) + if (optimize_distinct_in_order) { - if (SortDescription distinct_sort_desc = getSortDescription(input_streams.front().sort_description, columns); - !distinct_sort_desc.empty()) + const auto & input_stream = input_streams.back(); + SortDescription distinct_sort_desc = getSortDescription(input_stream.sort_description, columns); + if (!distinct_sort_desc.empty()) { - pipeline.addSimpleTransform( - [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr - { - if (stream_type != QueryPipelineBuilder::StreamType::Main) - return nullptr; + /// pre-distinct for sorted chunks + if (pre_distinct) + { + pipeline.addSimpleTransform( + [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + { + if (stream_type != QueryPipelineBuilder::StreamType::Main) + return nullptr; - return std::make_shared( - header, set_size_limits, limit_hint, distinct_sort_desc, columns); - }); - return; + return std::make_shared( + header, set_size_limits, limit_hint, distinct_sort_desc, columns); + }); + return; + } + /// final distinct for sorted stream (sorting inside and among chunks) + if (input_stream.has_single_port) + { + pipeline.addSimpleTransform( + [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + { + if (stream_type != QueryPipelineBuilder::StreamType::Main) + return nullptr; + + return std::make_shared(header, distinct_sort_desc, set_size_limits, limit_hint, columns); + }); + return; + } } } diff --git a/src/Processors/QueryPlan/DistinctStep.h b/src/Processors/QueryPlan/DistinctStep.h index 7009739e3ad..7c34aa01dd9 100644 --- a/src/Processors/QueryPlan/DistinctStep.h +++ b/src/Processors/QueryPlan/DistinctStep.h @@ -1,7 +1,6 @@ #pragma once #include #include -#include namespace DB { diff --git a/src/Processors/QueryPlan/ReadFromMergeTree.cpp b/src/Processors/QueryPlan/ReadFromMergeTree.cpp index d6425929d08..e20585ef64d 100644 --- a/src/Processors/QueryPlan/ReadFromMergeTree.cpp +++ b/src/Processors/QueryPlan/ReadFromMergeTree.cpp @@ -118,12 +118,16 @@ ReadFromMergeTree::ReadFromMergeTree( /// Add explicit description. setStepDescription(data.getStorageID().getFullNameNotQuoted()); - Names sorting_key_columns = storage_snapshot->getMetadataForQuery()->getSortingKeyColumns(); - + /// build sort description for output stream SortDescription sort_description; - for (const auto & column : sorting_key_columns) + const Names sorting_key_columns = storage_snapshot->getMetadataForQuery()->getSortingKeyColumns(); + Block const & header = output_stream->header; + for (const auto & column_name : sorting_key_columns) { - sort_description.emplace_back(column, 1); + if (std::find_if(header.begin(), header.end(), [&](ColumnWithTypeAndName const & col) { return col.name == column_name; }) + == header.end()) + break; + sort_description.emplace_back(column_name, 1); } output_stream->sort_description = std::move(sort_description); } diff --git a/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp similarity index 88% rename from src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp rename to src/Processors/Transforms/DistinctSortedChunkTransform.cpp index b3e3e15d963..213fcd6264a 100644 --- a/src/Processors/Transforms/DistinctPrimaryKeyTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -1,4 +1,4 @@ -#include +#include namespace DB { @@ -8,7 +8,7 @@ namespace ErrorCodes extern const int SET_SIZE_LIMIT_EXCEEDED; } -DistinctPrimaryKeyTransform::DistinctPrimaryKeyTransform( +DistinctSortedChunkTransform::DistinctSortedChunkTransform( const Block & header_, const SizeLimits & output_size_limits_, UInt64 limit_hint_, @@ -46,7 +46,7 @@ DistinctPrimaryKeyTransform::DistinctPrimaryKeyTransform( current_key.reserve(sorted_columns.size()); } -void DistinctPrimaryKeyTransform::initChunkProcessing(const Columns & input_columns) +void DistinctSortedChunkTransform::initChunkProcessing(const Columns & input_columns) { sorted_columns.clear(); for (size_t pos : sorted_columns_pos) @@ -60,7 +60,7 @@ void DistinctPrimaryKeyTransform::initChunkProcessing(const Columns & input_colu data.init(ClearableSetVariants::chooseMethod(other_columns, other_columns_sizes)); } -size_t DistinctPrimaryKeyTransform::ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end) +size_t DistinctSortedChunkTransform::ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end) { size_t count = 0; switch (data.type) @@ -81,7 +81,7 @@ size_t DistinctPrimaryKeyTransform::ordinaryDistinctOnRange(IColumn::Filter & fi } template -size_t DistinctPrimaryKeyTransform::buildFilterForRange( +size_t DistinctSortedChunkTransform::buildFilterForRange( Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants) { typename Method::State state(other_columns, other_columns_sizes, nullptr); @@ -100,7 +100,7 @@ size_t DistinctPrimaryKeyTransform::buildFilterForRange( return count; } -void DistinctPrimaryKeyTransform::setCurrentKey(const size_t row_pos) +void DistinctSortedChunkTransform::setCurrentKey(const size_t row_pos) { current_key.clear(); for (auto const & col : sorted_columns) @@ -110,7 +110,7 @@ void DistinctPrimaryKeyTransform::setCurrentKey(const size_t row_pos) } } -bool DistinctPrimaryKeyTransform::isCurrentKey(const size_t row_pos) +bool DistinctSortedChunkTransform::isCurrentKey(const size_t row_pos) { for (size_t i = 0; i < sorted_columns.size(); ++i) { @@ -121,7 +121,7 @@ bool DistinctPrimaryKeyTransform::isCurrentKey(const size_t row_pos) return true; } -size_t DistinctPrimaryKeyTransform::getRangeEnd(size_t range_begin, size_t range_end) +size_t DistinctSortedChunkTransform::getRangeEnd(size_t range_begin, size_t range_end) { size_t low = range_begin; size_t high = range_end - 1; @@ -139,7 +139,7 @@ size_t DistinctPrimaryKeyTransform::getRangeEnd(size_t range_begin, size_t range return range_end; } -size_t DistinctPrimaryKeyTransform::getStartPosition(const size_t chunk_rows) +size_t DistinctSortedChunkTransform::getStartPosition(const size_t chunk_rows) { if (!current_key.empty()) // current_key is empty on very first transform() call { @@ -149,7 +149,7 @@ size_t DistinctPrimaryKeyTransform::getStartPosition(const size_t chunk_rows) return 0; } -void DistinctPrimaryKeyTransform::transform(Chunk & chunk) +void DistinctSortedChunkTransform::transform(Chunk & chunk) { const size_t chunk_rows = chunk.getNumRows(); size_t output_rows = 0; diff --git a/src/Processors/Transforms/DistinctPrimaryKeyTransform.h b/src/Processors/Transforms/DistinctSortedChunkTransform.h similarity index 82% rename from src/Processors/Transforms/DistinctPrimaryKeyTransform.h rename to src/Processors/Transforms/DistinctSortedChunkTransform.h index d862e4a28ce..3a6f46d699e 100644 --- a/src/Processors/Transforms/DistinctPrimaryKeyTransform.h +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.h @@ -10,21 +10,19 @@ namespace DB { /// -/// DISTINCT optimization for MergeTree family engines -/// Applied in case of DISTINCT is done over primary key(prefix) columns -/// It leverages their sorting property +/// DISTINCT optimization for sorted chunks /// -class DistinctPrimaryKeyTransform : public ISimpleTransform +class DistinctSortedChunkTransform : public ISimpleTransform { public: - DistinctPrimaryKeyTransform( + DistinctSortedChunkTransform( const Block & header_, const SizeLimits & output_size_limits_, UInt64 limit_hint_, const SortDescription & sorted_columns_descr_, const Names & source_columns_); - String getName() const override { return "DistinctPrimaryKeyTransform"; } + String getName() const override { return "DistinctSortedChunkTransform"; } protected: void transform(Chunk & chunk) override; diff --git a/src/Storages/ReadInOrderOptimizer.cpp b/src/Storages/ReadInOrderOptimizer.cpp index e3f1c79719f..3ff4baa0b11 100644 --- a/src/Storages/ReadInOrderOptimizer.cpp +++ b/src/Storages/ReadInOrderOptimizer.cpp @@ -1,15 +1,13 @@ #include -#include -#include #include #include -#include #include #include -#include +#include +#include #include -#include +#include namespace DB { diff --git a/src/Storages/SelectQueryInfo.h b/src/Storages/SelectQueryInfo.h index 339e7b609d8..bdb4c392c48 100644 --- a/src/Storages/SelectQueryInfo.h +++ b/src/Storages/SelectQueryInfo.h @@ -95,12 +95,10 @@ struct InputOrderInfo InputOrderInfo( const SortDescription & order_key_fixed_prefix_descr_, const SortDescription & order_key_prefix_descr_, - int direction_, - UInt64 limit_) + int direction_, UInt64 limit_) : order_key_fixed_prefix_descr(order_key_fixed_prefix_descr_) , order_key_prefix_descr(order_key_prefix_descr_) - , direction(direction_) - , limit(limit_) + , direction(direction_), limit(limit_) { } diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference index 24c2edca708..8ab6966665a 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference @@ -30,7 +30,7 @@ ExpressionTransform (Distinct) DistinctTransform (Distinct) - DistinctPrimaryKeyTransform + DistinctSortedChunkTransform (Expression) ExpressionTransform (ReadFromMergeTree) @@ -42,7 +42,7 @@ ExpressionTransform (Distinct) DistinctTransform (Distinct) - DistinctPrimaryKeyTransform + DistinctSortedChunkTransform (Expression) ExpressionTransform (ReadFromMergeTree) @@ -65,7 +65,7 @@ single-threaded distinct 0 multi-threaded distinct 0 -skip part of chunk since it contians values from previous one +skip part of chunk since it contains values from previous one single-threaded distinct 0 1 diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql index f718986ae70..519b511dddb 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql @@ -33,7 +33,7 @@ select distinct * from distinct_in_order settings max_block_size=10, max_threads select 'multi-threaded distinct'; select distinct * from distinct_in_order settings max_block_size=10; -select 'skip part of chunk since it contians values from previous one'; +select 'skip part of chunk since it contains values from previous one'; drop table if exists distinct_in_order sync; create table distinct_in_order (a int) engine=MergeTree() order by a settings index_granularity=10; insert into distinct_in_order (a) select * from zeros(10); @@ -54,4 +54,4 @@ select distinct a,b from distinct_in_order order by b; select 'distinct with key prefix and non-sorted column'; select distinct a,c from distinct_in_order order by c; -drop table if exists distinct_in_order sync; +-- drop table if exists distinct_in_order sync; From d2f3c5b83643674c0bd6f9ae51b8fb48cfca94af Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Wed, 22 Jun 2022 23:45:54 +0200 Subject: [PATCH 145/525] Add sleeping after received `second rate limit exceeded` --- utils/changelog/changelog.py | 41 +++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/utils/changelog/changelog.py b/utils/changelog/changelog.py index e1797fb5dd3..9d1dabbabe1 100755 --- a/utils/changelog/changelog.py +++ b/utils/changelog/changelog.py @@ -10,11 +10,12 @@ from datetime import date, datetime, timedelta from queue import Empty, Queue from subprocess import CalledProcessError, DEVNULL from threading import Thread +from time import sleep from typing import Dict, List, Optional, TextIO from fuzzywuzzy.fuzz import ratio # type: ignore from github import Github -from github.GithubException import UnknownObjectException +from github.GithubException import RateLimitExceededException, UnknownObjectException from github.NamedUser import NamedUser from github.Issue import Issue from github.PullRequest import PullRequest @@ -67,10 +68,17 @@ class Description: r"\1[#\2](https://github.com/ClickHouse/ClickHouse/issues/\2)", entry, ) - try: - user_name = self.user.name if self.user.name else self.user.login - except UnknownObjectException: - user_name = self.user.login + # It's possible that we face a secondary rate limit. + # In this case we should sleep until we get it + while True: + try: + user_name = self.user.name if self.user.name else self.user.login + break + except UnknownObjectException: + user_name = self.user.login + break + except RateLimitExceededException: + sleep_on_rate_limit() return ( f"* {entry} [#{self.number}]({self.html_url}) " f"([{user_name}]({self.user.html_url}))." @@ -118,6 +126,11 @@ class Worker(Thread): self.queue.task_done() +def sleep_on_rate_limit(time: int = 20): + logging.warning("Faced rate limit, sleeping %s", time) + sleep(time) + + def get_pull_cached( repo: Repository, number: int, updated_at: Optional[datetime] = None ) -> PullRequest: @@ -130,7 +143,12 @@ def get_pull_cached( if cache_updated > updated_at: with open(pr_cache_file, "rb") as prfd: return GitHub.load(prfd) # type: ignore - pr = repo.get_pull(number) + while True: + try: + pr = repo.get_pull(number) + break + except RateLimitExceededException: + sleep_on_rate_limit() with open(pr_cache_file, "wb") as prfd: GitHub.dump(pr, prfd) # type: ignore return pr @@ -414,9 +432,16 @@ def main(): api_prs = GitHub.search_issues(query=query, sort="created") logging.info("Found %s PRs for the query: '%s'", api_prs.totalCount, query) - pr_numbers = list(api_prs) + issues = [] # type: List[Issue] + while True: + try: + for issue in api_prs: + issues.append(issue) + break + except RateLimitExceededException: + sleep_on_rate_limit() - descriptions = get_descriptions(repo, pr_numbers, args.jobs) + descriptions = get_descriptions(repo, issues, args.jobs) write_changelog(args.output, descriptions) From 0b871a20500f2c6ccab132a5196583479fd51bd6 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Wed, 22 Jun 2022 23:47:26 +0200 Subject: [PATCH 146/525] Regenerate v22.* with `not for changelog` category --- docs/changelogs/v22.1.1.2542-prestable.md | 248 ++++++++++++++++++++++ docs/changelogs/v22.2.1.2139-prestable.md | 161 ++++++++++++++ docs/changelogs/v22.2.3.5-stable.md | 4 + docs/changelogs/v22.3.1.1262-prestable.md | 121 +++++++++++ docs/changelogs/v22.3.3.44-lts.md | 8 + docs/changelogs/v22.3.6.5-lts.md | 4 + docs/changelogs/v22.3.7.28-lts.md | 7 + docs/changelogs/v22.4.1.2305-prestable.md | 205 ++++++++++++++++++ docs/changelogs/v22.4.4.7-stable.md | 4 + docs/changelogs/v22.4.5.9-stable.md | 4 + docs/changelogs/v22.5.1.2079-stable.md | 201 ++++++++++++++++++ docs/changelogs/v22.6.1.1985-stable.md | 161 ++++++++++++++ 12 files changed, 1128 insertions(+) diff --git a/docs/changelogs/v22.1.1.2542-prestable.md b/docs/changelogs/v22.1.1.2542-prestable.md index cbe8e781d3c..a0c6f61d5a6 100644 --- a/docs/changelogs/v22.1.1.2542-prestable.md +++ b/docs/changelogs/v22.1.1.2542-prestable.md @@ -218,6 +218,254 @@ sidebar_label: 2022 * NO CL ENTRY: 'Added Superwall to adopters list'. [#33573](https://github.com/ClickHouse/ClickHouse/pull/33573) ([Justin Hilliard](https://github.com/jahilliard)). * NO CL ENTRY: 'Revert "Ignore parse failure of opentelemetry header"'. [#33594](https://github.com/ClickHouse/ClickHouse/pull/33594) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Merging [#26074](https://github.com/ClickHouse/ClickHouse/issues/26074) [#26559](https://github.com/ClickHouse/ClickHouse/pull/26559) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix data race in ProtobufSchemas [#27822](https://github.com/ClickHouse/ClickHouse/pull/27822) ([filimonov](https://github.com/filimonov)). +* Add performance tests to new CI [#31467](https://github.com/ClickHouse/ClickHouse/pull/31467) ([alesapin](https://github.com/alesapin)). +* refactor CI tests [#31882](https://github.com/ClickHouse/ClickHouse/pull/31882) ([Constantine Peresypkin](https://github.com/pkit)). +* Add ability to drain connections synchronously [#31965](https://github.com/ClickHouse/ClickHouse/pull/31965) ([Azat Khuzhin](https://github.com/azat)). +* Add docker container for AWS lambda [#32205](https://github.com/ClickHouse/ClickHouse/pull/32205) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* test for [#28280](https://github.com/ClickHouse/ClickHouse/issues/28280) [#32235](https://github.com/ClickHouse/ClickHouse/pull/32235) ([Denny Crane](https://github.com/den-crane)). +* Rename window functions in WindowView [#32324](https://github.com/ClickHouse/ClickHouse/pull/32324) ([vxider](https://github.com/Vxider)). +* Follow-up to [#32140](https://github.com/ClickHouse/ClickHouse/issues/32140) [#32389](https://github.com/ClickHouse/ClickHouse/pull/32389) ([Alexander Tokmakov](https://github.com/tavplubix)). +* clickhouse-local: fix CREATE DATABASE with Atomic engine [#32417](https://github.com/ClickHouse/ClickHouse/pull/32417) ([Azat Khuzhin](https://github.com/azat)). +* Add a test [#16171](https://github.com/ClickHouse/ClickHouse/issues/16171) [#32421](https://github.com/ClickHouse/ClickHouse/pull/32421) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix images names in integration tests [#32438](https://github.com/ClickHouse/ClickHouse/pull/32438) ([alesapin](https://github.com/alesapin)). +* Fix build check empty report [#32440](https://github.com/ClickHouse/ClickHouse/pull/32440) ([alesapin](https://github.com/alesapin)). +* Fix ASTFuzzer [#32447](https://github.com/ClickHouse/ClickHouse/pull/32447) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Try fix attaching gdb in tests [#32448](https://github.com/ClickHouse/ClickHouse/pull/32448) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix arraySlice with null args. [#32456](https://github.com/ClickHouse/ClickHouse/pull/32456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix unit tests (ubsan) on master [#32459](https://github.com/ClickHouse/ClickHouse/pull/32459) ([alesapin](https://github.com/alesapin)). +* Remove dependency between integration and functional tests [#32461](https://github.com/ClickHouse/ClickHouse/pull/32461) ([alesapin](https://github.com/alesapin)). +* Add automatic workflow rerun [#32462](https://github.com/ClickHouse/ClickHouse/pull/32462) ([alesapin](https://github.com/alesapin)). +* Fix crash in case of MATERIALIZE COLUMN with no default expression. [#32464](https://github.com/ClickHouse/ClickHouse/pull/32464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Update odbc-bridge.md [#32475](https://github.com/ClickHouse/ClickHouse/pull/32475) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix test_prometheus_endpoint [#32476](https://github.com/ClickHouse/ClickHouse/pull/32476) ([Vladimir C](https://github.com/vdimir)). +* 02122_parallel_formatting: Address grep binary warnings [#32477](https://github.com/ClickHouse/ClickHouse/pull/32477) ([Raúl Marín](https://github.com/Algunenano)). +* 01950_kill_large_group_by_query: Increase timeout [#32479](https://github.com/ClickHouse/ClickHouse/pull/32479) ([Raúl Marín](https://github.com/Algunenano)). +* Fix backport workflow [#32485](https://github.com/ClickHouse/ClickHouse/pull/32485) ([alesapin](https://github.com/alesapin)). +* Make 01675_distributed_bytes_to_delay_insert less flaky (use http over client) [#32492](https://github.com/ClickHouse/ClickHouse/pull/32492) ([Azat Khuzhin](https://github.com/azat)). +* Fix 02050_client_profile_events flakiness [#32493](https://github.com/ClickHouse/ClickHouse/pull/32493) ([Azat Khuzhin](https://github.com/azat)). +* Fix integration tests docker images path [#32494](https://github.com/ClickHouse/ClickHouse/pull/32494) ([alesapin](https://github.com/alesapin)). +* Split long tests into multiple checks [#32496](https://github.com/ClickHouse/ClickHouse/pull/32496) ([alesapin](https://github.com/alesapin)). +* Add test for clickhouse-client history navigation [#32497](https://github.com/ClickHouse/ClickHouse/pull/32497) ([Amos Bird](https://github.com/amosbird)). +* Rename window-view function to time window function [#32498](https://github.com/ClickHouse/ClickHouse/pull/32498) ([vxider](https://github.com/Vxider)). +* Disable flaky tests with Window View [#32500](https://github.com/ClickHouse/ClickHouse/pull/32500) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix flaky window view tests [#32503](https://github.com/ClickHouse/ClickHouse/pull/32503) ([vxider](https://github.com/Vxider)). +* Fix queries with hasColumnInTable constant condition and non existing column [#32506](https://github.com/ClickHouse/ClickHouse/pull/32506) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Try to fix attaching gdb 2 [#32511](https://github.com/ClickHouse/ClickHouse/pull/32511) ([Alexander Tokmakov](https://github.com/tavplubix)). +* clickhouse-test: use basename of the test for *.sh tests [#32533](https://github.com/ClickHouse/ClickHouse/pull/32533) ([Azat Khuzhin](https://github.com/azat)). +* Fix processing initial table (--table/stdin) in clickhouse-local [#32534](https://github.com/ClickHouse/ClickHouse/pull/32534) ([Azat Khuzhin](https://github.com/azat)). +* Suppress UBSan errors for avg() function [#32535](https://github.com/ClickHouse/ClickHouse/pull/32535) ([Azat Khuzhin](https://github.com/azat)). +* Fix LOGICAL_ERROR for MATERIALIZED VIEW over table functions (i.e. numbers()) [#32571](https://github.com/ClickHouse/ClickHouse/pull/32571) ([Azat Khuzhin](https://github.com/azat)). +* Improve quota's end-of-interval calculations. [#32575](https://github.com/ClickHouse/ClickHouse/pull/32575) ([Vitaly Baranov](https://github.com/vitlibar)). +* remove unused headers in test [#32578](https://github.com/ClickHouse/ClickHouse/pull/32578) ([Bharat Nallan](https://github.com/bharatnc)). +* Remove arcadia build support [#32580](https://github.com/ClickHouse/ClickHouse/pull/32580) ([Azat Khuzhin](https://github.com/azat)). +* Cleanup perf test runner [#32582](https://github.com/ClickHouse/ClickHouse/pull/32582) ([Azat Khuzhin](https://github.com/azat)). +* [RFC] perf: do not fail in case of slow queries (to avoid hiding possible issues) [#32583](https://github.com/ClickHouse/ClickHouse/pull/32583) ([Azat Khuzhin](https://github.com/azat)). +* Add test for issue 28316 [#32585](https://github.com/ClickHouse/ClickHouse/pull/32585) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix bad test [#32571](https://github.com/ClickHouse/ClickHouse/issues/32571) [#32588](https://github.com/ClickHouse/ClickHouse/pull/32588) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix perf test `reinterpret_as` [#32589](https://github.com/ClickHouse/ClickHouse/pull/32589) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix indecent error message [#32591](https://github.com/ClickHouse/ClickHouse/pull/32591) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix strange code in TCPHandler [#32592](https://github.com/ClickHouse/ClickHouse/pull/32592) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* CI: upload logs if task failed [#32618](https://github.com/ClickHouse/ClickHouse/pull/32618) ([Alexander Tokmakov](https://github.com/tavplubix)). +* clickhouse-test: avoid failing with UNKNOWN status in some cases [#32625](https://github.com/ClickHouse/ClickHouse/pull/32625) ([Azat Khuzhin](https://github.com/azat)). +* avoid inconsistent state in Block [#32641](https://github.com/ClickHouse/ClickHouse/pull/32641) ([gulige](https://github.com/gulige)). +* Rerun workflows more times [#32642](https://github.com/ClickHouse/ClickHouse/pull/32642) ([alesapin](https://github.com/alesapin)). +* Remove flaky check from master and split asan test [#32645](https://github.com/ClickHouse/ClickHouse/pull/32645) ([alesapin](https://github.com/alesapin)). +* Split database replicated [#32650](https://github.com/ClickHouse/ClickHouse/pull/32650) ([alesapin](https://github.com/alesapin)). +* Improve exceptions usage in access control [#32662](https://github.com/ClickHouse/ClickHouse/pull/32662) ([Vitaly Baranov](https://github.com/vitlibar)). +* Follow-up to [#32140](https://github.com/ClickHouse/ClickHouse/issues/32140) [#32667](https://github.com/ClickHouse/ClickHouse/pull/32667) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add test_s3_zero_copy_concurrent_merge [#32694](https://github.com/ClickHouse/ClickHouse/pull/32694) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Check trusted contributors in lowercase [#32696](https://github.com/ClickHouse/ClickHouse/pull/32696) ([Vladimir C](https://github.com/vdimir)). +* Mention ClickHouse CLA in CONTRIBUTING.md [#32697](https://github.com/ClickHouse/ClickHouse/pull/32697) ([Ivan Blinkov](https://github.com/blinkov)). +* Rerun release workflows [#32701](https://github.com/ClickHouse/ClickHouse/pull/32701) ([alesapin](https://github.com/alesapin)). +* plausible analytic blog post [#32719](https://github.com/ClickHouse/ClickHouse/pull/32719) ([Tom Risse](https://github.com/flickerbox-tom)). +* Update backport.py [#32720](https://github.com/ClickHouse/ClickHouse/pull/32720) ([Kruglov Pavel](https://github.com/Avogar)). +* Pass -no-pie to the linker call to disable it [#32731](https://github.com/ClickHouse/ClickHouse/pull/32731) ([Raúl Marín](https://github.com/Algunenano)). +* Add severity table to support case form [#32736](https://github.com/ClickHouse/ClickHouse/pull/32736) ([Cody Baker](https://github.com/codyrobert)). +* tests/integration: fix wait_start()/start_clickhouse() [#32739](https://github.com/ClickHouse/ClickHouse/pull/32739) ([Azat Khuzhin](https://github.com/azat)). +* tests/integration: fix waiting of mysql client container [#32740](https://github.com/ClickHouse/ClickHouse/pull/32740) ([Azat Khuzhin](https://github.com/azat)). +* Better control build artifacts [#32745](https://github.com/ClickHouse/ClickHouse/pull/32745) ([alesapin](https://github.com/alesapin)). +* Fix race in skipping index of type `hypothesis` [#32756](https://github.com/ClickHouse/ClickHouse/pull/32756) ([Anton Popov](https://github.com/CurtizJ)). +* Fix build performance [#32766](https://github.com/ClickHouse/ClickHouse/pull/32766) ([alesapin](https://github.com/alesapin)). +* Add test for issue 26912 [#32771](https://github.com/ClickHouse/ClickHouse/pull/32771) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add a test for CAST to named tuple just in case. [#32776](https://github.com/ClickHouse/ClickHouse/pull/32776) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix performance build [#32796](https://github.com/ClickHouse/ClickHouse/pull/32796) ([alesapin](https://github.com/alesapin)). +* Trying another stress servers [#32798](https://github.com/ClickHouse/ClickHouse/pull/32798) ([alesapin](https://github.com/alesapin)). +* More diagnostics in gdb script [#32801](https://github.com/ClickHouse/ClickHouse/pull/32801) ([Alexander Tokmakov](https://github.com/tavplubix)). +* CacheDictionary dictionary source access race fix [#32805](https://github.com/ClickHouse/ClickHouse/pull/32805) ([Maksim Kita](https://github.com/kitaisreal)). +* Update NuRaft [#32808](https://github.com/ClickHouse/ClickHouse/pull/32808) ([alesapin](https://github.com/alesapin)). +* Add retries to curl in performance tests. [#32809](https://github.com/ClickHouse/ClickHouse/pull/32809) ([alesapin](https://github.com/alesapin)). +* Made Azure blob storage to obey ENABLE_LIBRARIES flag [#32815](https://github.com/ClickHouse/ClickHouse/pull/32815) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Remove recursive submodules [#32820](https://github.com/ClickHouse/ClickHouse/pull/32820) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* test for summap nullable(0) [#32822](https://github.com/ClickHouse/ClickHouse/pull/32822) ([Denny Crane](https://github.com/den-crane)). +* Update CHANGELOG.md [#32823](https://github.com/ClickHouse/ClickHouse/pull/32823) ([Denny Crane](https://github.com/den-crane)). +* Make `test_storage_s3` less flaky [#32825](https://github.com/ClickHouse/ClickHouse/pull/32825) ([Azat Khuzhin](https://github.com/azat)). +* Fix error message for reading from url [#32826](https://github.com/ClickHouse/ClickHouse/pull/32826) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Revert docs release [#32827](https://github.com/ClickHouse/ClickHouse/pull/32827) ([alesapin](https://github.com/alesapin)). +* Fix docs release one more time [#32828](https://github.com/ClickHouse/ClickHouse/pull/32828) ([alesapin](https://github.com/alesapin)). +* Trigger also for workflows changes [#32830](https://github.com/ClickHouse/ClickHouse/pull/32830) ([alesapin](https://github.com/alesapin)). +* Fix docs release one more time [#32831](https://github.com/ClickHouse/ClickHouse/pull/32831) ([alesapin](https://github.com/alesapin)). +* Add dispatch event to docs release [#32832](https://github.com/ClickHouse/ClickHouse/pull/32832) ([alesapin](https://github.com/alesapin)). +* Remove repository before checkout [#32834](https://github.com/ClickHouse/ClickHouse/pull/32834) ([alesapin](https://github.com/alesapin)). +* Fix release branches filter [#32837](https://github.com/ClickHouse/ClickHouse/pull/32837) ([alesapin](https://github.com/alesapin)). +* StorageLiveView fix function style [#32838](https://github.com/ClickHouse/ClickHouse/pull/32838) ([Maksim Kita](https://github.com/kitaisreal)). +* Try fix flaky test: order for test_s3_zero_copy_replication [#32846](https://github.com/ClickHouse/ClickHouse/pull/32846) ([Vladimir C](https://github.com/vdimir)). +* Update TRUSTED_CONTIBUTORS [#32850](https://github.com/ClickHouse/ClickHouse/pull/32850) ([Vladimir C](https://github.com/vdimir)). +* Followup docs check workflow [#32857](https://github.com/ClickHouse/ClickHouse/pull/32857) ([alesapin](https://github.com/alesapin)). +* Always apply const-condition-if optimization. [#32858](https://github.com/ClickHouse/ClickHouse/pull/32858) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Use a proper syntax for multiline env in GITHUB_ENV [#32864](https://github.com/ClickHouse/ClickHouse/pull/32864) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix multiline SSH_KEY in GITHUB_ENV file [#32865](https://github.com/ClickHouse/ClickHouse/pull/32865) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* warm up for test_kafka_json_as_string_no_kdc [#32885](https://github.com/ClickHouse/ClickHouse/pull/32885) ([Ilya Golshtein](https://github.com/ilejn)). +* Rename files and code from BlobStorage to AzureBlobStorage [#32886](https://github.com/ClickHouse/ClickHouse/pull/32886) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add dockerhub proxy to CI [#32905](https://github.com/ClickHouse/ClickHouse/pull/32905) ([alesapin](https://github.com/alesapin)). +* Update 01069_window_view_proc_tumble_watch.py [#32908](https://github.com/ClickHouse/ClickHouse/pull/32908) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update test azure_blob_storage::test_table_manipulations [#32909](https://github.com/ClickHouse/ClickHouse/pull/32909) ([Kseniia Sumarokova](https://github.com/kssenii)). +* More retries in perf tests. [#32910](https://github.com/ClickHouse/ClickHouse/pull/32910) ([alesapin](https://github.com/alesapin)). +* fix wrong testcase in gtest_Parser [#32912](https://github.com/ClickHouse/ClickHouse/pull/32912) ([SuperDJY](https://github.com/cmsxbc)). +* Disable percpu arena in jemalloc in case of non deterministic CPU count [#32916](https://github.com/ClickHouse/ClickHouse/pull/32916) ([Azat Khuzhin](https://github.com/azat)). +* [RFC] Add replxx/jemalloc into fasttest build of clickhouse [#32923](https://github.com/ClickHouse/ClickHouse/pull/32923) ([Azat Khuzhin](https://github.com/azat)). +* tests/integration/cleanup_environment: fix obtaining PYTEST_CLEANUP_CONTAINERS [#32931](https://github.com/ClickHouse/ClickHouse/pull/32931) ([Azat Khuzhin](https://github.com/azat)). +* fix typo [#32936](https://github.com/ClickHouse/ClickHouse/pull/32936) ([Denny Crane](https://github.com/den-crane)). +* Fix build issue related to azure blob storage [another try] [#32948](https://github.com/ClickHouse/ClickHouse/pull/32948) ([Amos Bird](https://github.com/amosbird)). +* test for base64encode_trailing_bytes [#31797](https://github.com/ClickHouse/ClickHouse/issues/31797) [#32954](https://github.com/ClickHouse/ClickHouse/pull/32954) ([Denny Crane](https://github.com/den-crane)). +* simplify looping in S2 functions [#32960](https://github.com/ClickHouse/ClickHouse/pull/32960) ([Bharat Nallan](https://github.com/bharatnc)). +* Sync release CI branches in master [#32967](https://github.com/ClickHouse/ClickHouse/pull/32967) ([alesapin](https://github.com/alesapin)). +* Loops remove postfix increment [#32970](https://github.com/ClickHouse/ClickHouse/pull/32970) ([Maksim Kita](https://github.com/kitaisreal)). +* Containers iteration fix erase [#32972](https://github.com/ClickHouse/ClickHouse/pull/32972) ([Maksim Kita](https://github.com/kitaisreal)). +* Merging [#32400](https://github.com/ClickHouse/ClickHouse/issues/32400) [#32974](https://github.com/ClickHouse/ClickHouse/pull/32974) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Decrease log level for some s3 messages. [#32979](https://github.com/ClickHouse/ClickHouse/pull/32979) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Trying to add woboq to new CI [#32983](https://github.com/ClickHouse/ClickHouse/pull/32983) ([alesapin](https://github.com/alesapin)). +* RabbitMQ tests fix [#32985](https://github.com/ClickHouse/ClickHouse/pull/32985) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix clang-tidy [#32987](https://github.com/ClickHouse/ClickHouse/pull/32987) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix typo [#32992](https://github.com/ClickHouse/ClickHouse/pull/32992) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix weird permission on log directories [#32994](https://github.com/ClickHouse/ClickHouse/pull/32994) ([Håvard Kvålen](https://github.com/havardk)). +* Add Keeper Jepsen check to new CI [#32998](https://github.com/ClickHouse/ClickHouse/pull/32998) ([alesapin](https://github.com/alesapin)). +* Add backport workflow rerun [#33005](https://github.com/ClickHouse/ClickHouse/pull/33005) ([alesapin](https://github.com/alesapin)). +* Remove the possibility of adding columns with table overrides [#33017](https://github.com/ClickHouse/ClickHouse/pull/33017) ([Stig Bakken](https://github.com/stigsb)). +* Merge [#33023](https://github.com/ClickHouse/ClickHouse/issues/33023) [#33027](https://github.com/ClickHouse/ClickHouse/pull/33027) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix cron expression [#33035](https://github.com/ClickHouse/ClickHouse/pull/33035) ([alesapin](https://github.com/alesapin)). +* Make `can be tested` great again [#33036](https://github.com/ClickHouse/ClickHouse/pull/33036) ([alesapin](https://github.com/alesapin)). +* Fix exception in azure write buffer desctructor [#33039](https://github.com/ClickHouse/ClickHouse/pull/33039) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add manual run for woboq [#33042](https://github.com/ClickHouse/ClickHouse/pull/33042) ([alesapin](https://github.com/alesapin)). +* Update Cassandra driver [#33043](https://github.com/ClickHouse/ClickHouse/pull/33043) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Decrease default timeout for integration test [#33044](https://github.com/ClickHouse/ClickHouse/pull/33044) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix merge [#33021](https://github.com/ClickHouse/ClickHouse/issues/33021) [#33049](https://github.com/ClickHouse/ClickHouse/pull/33049) ([Nikolay Degterinsky](https://github.com/evillique)). +* Update banner for january 20 release webinar [#33052](https://github.com/ClickHouse/ClickHouse/pull/33052) ([Cody Baker](https://github.com/codyrobert)). +* Update harmful library [#33058](https://github.com/ClickHouse/ClickHouse/pull/33058) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33024](https://github.com/ClickHouse/ClickHouse/issues/33024) [#33061](https://github.com/ClickHouse/ClickHouse/pull/33061) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33022](https://github.com/ClickHouse/ClickHouse/issues/33022) [#33062](https://github.com/ClickHouse/ClickHouse/pull/33062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33025](https://github.com/ClickHouse/ClickHouse/issues/33025) [#33063](https://github.com/ClickHouse/ClickHouse/pull/33063) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33050](https://github.com/ClickHouse/ClickHouse/issues/33050) [#33065](https://github.com/ClickHouse/ClickHouse/pull/33065) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add alternative LRUCache version [#33098](https://github.com/ClickHouse/ClickHouse/pull/33098) ([lgbo](https://github.com/lgbo-ustc)). +* Fix test that was dependent on time zone [#33122](https://github.com/ClickHouse/ClickHouse/pull/33122) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix clang tidy [#33131](https://github.com/ClickHouse/ClickHouse/pull/33131) ([alesapin](https://github.com/alesapin)). +* Fix PVS check [#33135](https://github.com/ClickHouse/ClickHouse/pull/33135) ([alesapin](https://github.com/alesapin)). +* Upload build artifact in case of build failures [#33136](https://github.com/ClickHouse/ClickHouse/pull/33136) ([alesapin](https://github.com/alesapin)). +* Fix woboq codebrowser [#33137](https://github.com/ClickHouse/ClickHouse/pull/33137) ([alesapin](https://github.com/alesapin)). +* Longer timeout for server start in fuzzer [#33138](https://github.com/ClickHouse/ClickHouse/pull/33138) ([alesapin](https://github.com/alesapin)). +* Fix azure blob storage tests failures [#33140](https://github.com/ClickHouse/ClickHouse/pull/33140) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix functions with sparse arguments in case when result type doesn't support sparse serialization [#33146](https://github.com/ClickHouse/ClickHouse/pull/33146) ([Anton Popov](https://github.com/CurtizJ)). +* Add pretty print unknow event [#33148](https://github.com/ClickHouse/ClickHouse/pull/33148) ([alesapin](https://github.com/alesapin)). +* Better pr info for unknown events [#33149](https://github.com/ClickHouse/ClickHouse/pull/33149) ([alesapin](https://github.com/alesapin)). +* Better jepsen [#33150](https://github.com/ClickHouse/ClickHouse/pull/33150) ([alesapin](https://github.com/alesapin)). +* Debugging PR info [#33151](https://github.com/ClickHouse/ClickHouse/pull/33151) ([alesapin](https://github.com/alesapin)). +* Fix shared hermetic builds on Arch linux [#33153](https://github.com/ClickHouse/ClickHouse/pull/33153) ([Azat Khuzhin](https://github.com/azat)). +* Fix ccache with ENABLE_CHECK_HEAVY_BUILDS (ccache 4.0 and 4.1 only affected) [#33154](https://github.com/ClickHouse/ClickHouse/pull/33154) ([Azat Khuzhin](https://github.com/azat)). +* Cleanup trash from Kafka, HDFS and Azure [#33160](https://github.com/ClickHouse/ClickHouse/pull/33160) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix Date32 test [#33161](https://github.com/ClickHouse/ClickHouse/pull/33161) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Make test_input_format_parallel_parsing_memory_tracking less flaky [#33163](https://github.com/ClickHouse/ClickHouse/pull/33163) ([Azat Khuzhin](https://github.com/azat)). +* Fix test_async_drain_connection flakiness [#33164](https://github.com/ClickHouse/ClickHouse/pull/33164) ([Azat Khuzhin](https://github.com/azat)). +* Fix clang-tidy [#33168](https://github.com/ClickHouse/ClickHouse/pull/33168) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky test 01622_defaults_for_url_engine [#33169](https://github.com/ClickHouse/ClickHouse/pull/33169) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* materialized postgresql better startup [#33177](https://github.com/ClickHouse/ClickHouse/pull/33177) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix possible uncaught exception in clickhouse-local [#33189](https://github.com/ClickHouse/ClickHouse/pull/33189) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix tests with event_time/event_date = today(), and add a style check [#33198](https://github.com/ClickHouse/ClickHouse/pull/33198) ([Azat Khuzhin](https://github.com/azat)). +* Fix 01370_client_autocomplete_word_break_characters test logic [#33202](https://github.com/ClickHouse/ClickHouse/pull/33202) ([Azat Khuzhin](https://github.com/azat)). +* More debug in jepsen test [#33207](https://github.com/ClickHouse/ClickHouse/pull/33207) ([alesapin](https://github.com/alesapin)). +* Fix some flaky integration tests [#33215](https://github.com/ClickHouse/ClickHouse/pull/33215) ([alesapin](https://github.com/alesapin)). +* Remove old trash [#33217](https://github.com/ClickHouse/ClickHouse/pull/33217) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix cancel lambda [#33222](https://github.com/ClickHouse/ClickHouse/pull/33222) ([alesapin](https://github.com/alesapin)). +* Fix keeper log messages [#33224](https://github.com/ClickHouse/ClickHouse/pull/33224) ([alesapin](https://github.com/alesapin)). +* Fix clang tidy [#33235](https://github.com/ClickHouse/ClickHouse/pull/33235) ([alesapin](https://github.com/alesapin)). +* Fix flaky test 01650 [#33250](https://github.com/ClickHouse/ClickHouse/pull/33250) ([alesapin](https://github.com/alesapin)). +* Add retries for github api [#33252](https://github.com/ClickHouse/ClickHouse/pull/33252) ([alesapin](https://github.com/alesapin)). +* Add retries to AST fuzzer download and fix flaky test. [#33256](https://github.com/ClickHouse/ClickHouse/pull/33256) ([alesapin](https://github.com/alesapin)). +* Do not ignore eof in expect tests [#33263](https://github.com/ClickHouse/ClickHouse/pull/33263) ([Azat Khuzhin](https://github.com/azat)). +* Fix parsing symbols from resources (for shared builds) [#33264](https://github.com/ClickHouse/ClickHouse/pull/33264) ([Azat Khuzhin](https://github.com/azat)). +* test for [#24410](https://github.com/ClickHouse/ClickHouse/issues/24410) [#33265](https://github.com/ClickHouse/ClickHouse/pull/33265) ([Denny Crane](https://github.com/den-crane)). +* Wait for RabbitMQ container to actually start when it was restarted in test on purpose [#33266](https://github.com/ClickHouse/ClickHouse/pull/33266) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Mark max_alter_threads as obsolete [#33268](https://github.com/ClickHouse/ClickHouse/pull/33268) ([Denny Crane](https://github.com/den-crane)). +* Fix azure tests flackyness because of azure server closing connection [#33269](https://github.com/ClickHouse/ClickHouse/pull/33269) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Test for [#26920](https://github.com/ClickHouse/ClickHouse/issues/26920) [#33272](https://github.com/ClickHouse/ClickHouse/pull/33272) ([Denny Crane](https://github.com/den-crane)). +* Fix test_storage_kafka failures by adjusting retention.ms [#33278](https://github.com/ClickHouse/ClickHouse/pull/33278) ([Azat Khuzhin](https://github.com/azat)). +* Disable FunctionConvertFromString::canBeExecutedOnDefaultArguments [#33286](https://github.com/ClickHouse/ClickHouse/pull/33286) ([Vladimir C](https://github.com/vdimir)). +* Add IAST::QueryKind enum and use it in query limiter [#33294](https://github.com/ClickHouse/ClickHouse/pull/33294) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix clang tidy 3 [#33296](https://github.com/ClickHouse/ClickHouse/pull/33296) ([alesapin](https://github.com/alesapin)). +* Fix jepsen check [#33304](https://github.com/ClickHouse/ClickHouse/pull/33304) ([alesapin](https://github.com/alesapin)). +* Add test for broken connection [#33305](https://github.com/ClickHouse/ClickHouse/pull/33305) ([nvartolomei](https://github.com/nvartolomei)). +* Fix launcher not being defined for ccache < 4.0 and slightly cleanup [#33306](https://github.com/ClickHouse/ClickHouse/pull/33306) ([nvartolomei](https://github.com/nvartolomei)). +* Return early if azure blob storage is not used, otherwise it might with fail with irrelevant errors [#33307](https://github.com/ClickHouse/ClickHouse/pull/33307) ([nvartolomei](https://github.com/nvartolomei)). +* Minor refactor of read buffers with compression [#33318](https://github.com/ClickHouse/ClickHouse/pull/33318) ([Nikolay Degterinsky](https://github.com/evillique)). +* Rename Committed data part state to Active [#33327](https://github.com/ClickHouse/ClickHouse/pull/33327) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Tiny follow-up to pr 33098 [#33334](https://github.com/ClickHouse/ClickHouse/pull/33334) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix inner table parser in window view [#33340](https://github.com/ClickHouse/ClickHouse/pull/33340) ([vxider](https://github.com/Vxider)). +* Cover CustomSeparated/Template formats for Kafka [#33343](https://github.com/ClickHouse/ClickHouse/pull/33343) ([Azat Khuzhin](https://github.com/azat)). +* update copyright in docs [#33353](https://github.com/ClickHouse/ClickHouse/pull/33353) ([Bharat Nallan](https://github.com/bharatnc)). +* UserDefinedExecutableFunction fix exception [#33362](https://github.com/ClickHouse/ClickHouse/pull/33362) ([Maksim Kita](https://github.com/kitaisreal)). +* Trying to merge [#23230](https://github.com/ClickHouse/ClickHouse/issues/23230) [#33368](https://github.com/ClickHouse/ClickHouse/pull/33368) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Print alter command names in EXPLAIN AST [#33383](https://github.com/ClickHouse/ClickHouse/pull/33383) ([Stig Bakken](https://github.com/stigsb)). +* DictionaryStructure fixes [#33388](https://github.com/ClickHouse/ClickHouse/pull/33388) ([Maksim Kita](https://github.com/kitaisreal)). +* tests/stress: add core dumps into artifacts [#33389](https://github.com/ClickHouse/ClickHouse/pull/33389) ([Azat Khuzhin](https://github.com/azat)). +* Update success.html [#33397](https://github.com/ClickHouse/ClickHouse/pull/33397) ([Adri Fernandez](https://github.com/iladriano)). +* Remove obsolete and unsupported Docker Builder [#33345](https://github.com/ClickHouse/ClickHouse/issues/33345) [#33399](https://github.com/ClickHouse/ClickHouse/pull/33399) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Maybe improve robustness of the "query profiler" test [#33422](https://github.com/ClickHouse/ClickHouse/pull/33422) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* fix misleading log message in StorageWindowView [#33432](https://github.com/ClickHouse/ClickHouse/pull/33432) ([flynn](https://github.com/ucasfl)). +* Preparation for [#33167](https://github.com/ClickHouse/ClickHouse/issues/33167). [#33444](https://github.com/ClickHouse/ClickHouse/pull/33444) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Rerun docs release check as well [#33447](https://github.com/ClickHouse/ClickHouse/pull/33447) ([alesapin](https://github.com/alesapin)). +* Update AsynchronousReadIndirectBufferFromRemoteFS.h [#33452](https://github.com/ClickHouse/ClickHouse/pull/33452) ([xiedeyantu](https://github.com/xiedeyantu)). +* Tests visualizer better [#33453](https://github.com/ClickHouse/ClickHouse/pull/33453) ([Dmitry Khorkin](https://github.com/DimaAmega)). +* Function monthName small fix [#33464](https://github.com/ClickHouse/ClickHouse/pull/33464) ([Maksim Kita](https://github.com/kitaisreal)). +* Add a test for operator priorities in SQL [#33487](https://github.com/ClickHouse/ClickHouse/pull/33487) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add new team members to company page [#33506](https://github.com/ClickHouse/ClickHouse/pull/33506) ([Cody Baker](https://github.com/codyrobert)). +* fix variable name in h3 misc funcs [#33510](https://github.com/ClickHouse/ClickHouse/pull/33510) ([Bharat Nallan](https://github.com/bharatnc)). +* H3 functions bad arguments possible crash fix [#33512](https://github.com/ClickHouse/ClickHouse/pull/33512) ([Maksim Kita](https://github.com/kitaisreal)). +* Build with ENABLE_TESTS fix [#33513](https://github.com/ClickHouse/ClickHouse/pull/33513) ([Maksim Kita](https://github.com/kitaisreal)). +* IAST QueryKind style fix [#33514](https://github.com/ClickHouse/ClickHouse/pull/33514) ([Maksim Kita](https://github.com/kitaisreal)). +* Don't print exception twice in client in case of exception in parallel parsing [#33524](https://github.com/ClickHouse/ClickHouse/pull/33524) ([Kruglov Pavel](https://github.com/Avogar)). +* HashTable constant fix [#33525](https://github.com/ClickHouse/ClickHouse/pull/33525) ([Maksim Kita](https://github.com/kitaisreal)). +* Add admixer blog post [#33528](https://github.com/ClickHouse/ClickHouse/pull/33528) ([Cody Baker](https://github.com/codyrobert)). +* Fix clickhouse local interactive exception case [#33535](https://github.com/ClickHouse/ClickHouse/pull/33535) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix parsing queries with FROM INFILE statement again [#33556](https://github.com/ClickHouse/ClickHouse/pull/33556) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix logic for upload upload_master_static_binaries [#33560](https://github.com/ClickHouse/ClickHouse/pull/33560) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Don't upload splitted binaries to builds.clickhouse.com [#33562](https://github.com/ClickHouse/ClickHouse/pull/33562) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix minor bug in TTL and flaky test [#33564](https://github.com/ClickHouse/ClickHouse/pull/33564) ([Alexander Tokmakov](https://github.com/tavplubix)). +* skip MySQLCreateRewritten unit testsuite when enable_mysql is off [#33577](https://github.com/ClickHouse/ClickHouse/pull/33577) ([Suzy Wang](https://github.com/SuzyWangIBMer)). +* Fix test `02156_storage_merge_prewhere` [#33580](https://github.com/ClickHouse/ClickHouse/pull/33580) ([Anton Popov](https://github.com/CurtizJ)). +* Update mongodb.md [#33585](https://github.com/ClickHouse/ClickHouse/pull/33585) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Restore existing static builds links [#33597](https://github.com/ClickHouse/ClickHouse/pull/33597) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix pylint for run_check.py [#33600](https://github.com/ClickHouse/ClickHouse/pull/33600) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix flacky test_dictionaries_postgresql/ [#33601](https://github.com/ClickHouse/ClickHouse/pull/33601) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Make ZooKeeper client better interpret keeper server connection reject [#33602](https://github.com/ClickHouse/ClickHouse/pull/33602) ([alesapin](https://github.com/alesapin)). +* Fix broken workflow dependencies [#33608](https://github.com/ClickHouse/ClickHouse/pull/33608) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Force rebuild images in CI [#33609](https://github.com/ClickHouse/ClickHouse/pull/33609) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* YetAnother workflow fix [#33610](https://github.com/ClickHouse/ClickHouse/pull/33610) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Metrics lambda: fix deletion [#33616](https://github.com/ClickHouse/ClickHouse/pull/33616) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add an exception message example [#33623](https://github.com/ClickHouse/ClickHouse/pull/33623) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix two flaky integration tests [#33625](https://github.com/ClickHouse/ClickHouse/pull/33625) ([alesapin](https://github.com/alesapin)). +* Update version to 22.1 not 21.13 [#33626](https://github.com/ClickHouse/ClickHouse/pull/33626) ([alesapin](https://github.com/alesapin)). +* do not construct std::string if there is no error [#33628](https://github.com/ClickHouse/ClickHouse/pull/33628) ([Sergei Trifonov](https://github.com/serxa)). +* Fix test 00900_long_parquet_load [#33629](https://github.com/ClickHouse/ClickHouse/pull/33629) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix error codes order [#33633](https://github.com/ClickHouse/ClickHouse/pull/33633) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix s3 integration tests [#33641](https://github.com/ClickHouse/ClickHouse/pull/33641) ([Kruglov Pavel](https://github.com/Avogar)). +* test for [#33592](https://github.com/ClickHouse/ClickHouse/issues/33592) [#33658](https://github.com/ClickHouse/ClickHouse/pull/33658) ([Denny Crane](https://github.com/den-crane)). +* Update "gosu" version [#33660](https://github.com/ClickHouse/ClickHouse/pull/33660) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix 01814_distributed_push_down_limit flakiness [#33662](https://github.com/ClickHouse/ClickHouse/pull/33662) ([Azat Khuzhin](https://github.com/azat)). +* Add amosbird to trusted user. [#33663](https://github.com/ClickHouse/ClickHouse/pull/33663) ([Amos Bird](https://github.com/amosbird)). +* Fix pr ci restart [#33667](https://github.com/ClickHouse/ClickHouse/pull/33667) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). + #### New Feature / New Tool * Tool for collecting diagnostics data. [#33175](https://github.com/ClickHouse/ClickHouse/pull/33175) ([Alexander Burmak](https://github.com/Alex-Burmak)). diff --git a/docs/changelogs/v22.2.1.2139-prestable.md b/docs/changelogs/v22.2.1.2139-prestable.md index f93a3a690c4..379fb8988c8 100644 --- a/docs/changelogs/v22.2.1.2139-prestable.md +++ b/docs/changelogs/v22.2.1.2139-prestable.md @@ -215,3 +215,164 @@ sidebar_label: 2022 * NO CL ENTRY: 'Add support agreement page and snippets.'. [#34512](https://github.com/ClickHouse/ClickHouse/pull/34512) ([Tom Risse](https://github.com/flickerbox-tom)). * NO CL ENTRY: 'Add Gigasheet to adopters'. [#34589](https://github.com/ClickHouse/ClickHouse/pull/34589) ([Brian Hunter](https://github.com/bjhunter)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix status of SKIPPED integration tests (was incorrectly marked as ERROR) [#33162](https://github.com/ClickHouse/ClickHouse/pull/33162) ([Azat Khuzhin](https://github.com/azat)). +* Client interactive suggest (extract info from CREATE queries) [#33201](https://github.com/ClickHouse/ClickHouse/pull/33201) ([Azat Khuzhin](https://github.com/azat)). +* Fix flushing of in-memory parts [#33234](https://github.com/ClickHouse/ClickHouse/pull/33234) ([Anton Popov](https://github.com/CurtizJ)). +* improvements to tests for h3kRing and h3ToChildren funcs [#33311](https://github.com/ClickHouse/ClickHouse/pull/33311) ([Bharat Nallan](https://github.com/bharatnc)). +* Simplify different block structure (i.e. after ALTER) support for Buffer [#33324](https://github.com/ClickHouse/ClickHouse/pull/33324) ([Azat Khuzhin](https://github.com/azat)). +* Dictionary rename fix [#33526](https://github.com/ClickHouse/ClickHouse/pull/33526) ([Maksim Kita](https://github.com/kitaisreal)). +* RFC: Split headers, move SystemLog into module, more forward declarations [#33534](https://github.com/ClickHouse/ClickHouse/pull/33534) ([Azat Khuzhin](https://github.com/azat)). +* add check for h3 empty column arguments [#33552](https://github.com/ClickHouse/ClickHouse/pull/33552) ([Bharat Nallan](https://github.com/bharatnc)). +* Fix testflows tests [#33575](https://github.com/ClickHouse/ClickHouse/pull/33575) ([Vitaly Baranov](https://github.com/vitlibar)). +* Ignore parse failure of opentelemetry header. Another try. [#33595](https://github.com/ClickHouse/ClickHouse/pull/33595) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix mongo no_auth compose [#33634](https://github.com/ClickHouse/ClickHouse/pull/33634) ([Ilya Yatsishin](https://github.com/qoega)). +* AsynchronousMetrics: Ignore inaccessible sensors [#33639](https://github.com/ClickHouse/ClickHouse/pull/33639) ([Raúl Marín](https://github.com/Algunenano)). +* Slightly reduce memory usage for parsing collections (by using move ctor) [#33665](https://github.com/ClickHouse/ClickHouse/pull/33665) ([Azat Khuzhin](https://github.com/azat)). +* Merge [#33563](https://github.com/ClickHouse/ClickHouse/issues/33563) [#33669](https://github.com/ClickHouse/ClickHouse/pull/33669) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update version after release 22.1 [#33673](https://github.com/ClickHouse/ClickHouse/pull/33673) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix sumIf rewrite [#33677](https://github.com/ClickHouse/ClickHouse/pull/33677) ([flynn](https://github.com/ucasfl)). +* DictionarySourceCoordinator update interface [#33682](https://github.com/ClickHouse/ClickHouse/pull/33682) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix LDAP and Kerberos config handling [#33689](https://github.com/ClickHouse/ClickHouse/pull/33689) ([Denis Glazachev](https://github.com/traceon)). +* Add some helping comments for API endpoints [#33700](https://github.com/ClickHouse/ClickHouse/pull/33700) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix hive tests [#33703](https://github.com/ClickHouse/ClickHouse/pull/33703) ([Kseniia Sumarokova](https://github.com/kssenii)). +* H3 remove functions degsToRads, radsToDegs [#33707](https://github.com/ClickHouse/ClickHouse/pull/33707) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove unused variable [#33731](https://github.com/ClickHouse/ClickHouse/pull/33731) ([vxider](https://github.com/Vxider)). +* Add test issue_31009 [#33739](https://github.com/ClickHouse/ClickHouse/pull/33739) ([Vladimir C](https://github.com/vdimir)). +* Cleanup build: .gitignore more debian directories, libpqxx-cmake without configure_file [#33742](https://github.com/ClickHouse/ClickHouse/pull/33742) ([Ilya Yatsishin](https://github.com/qoega)). +* Better exception text on suspicious broken parts [#33743](https://github.com/ClickHouse/ClickHouse/pull/33743) ([alesapin](https://github.com/alesapin)). +* Fix release_branches workflow for some cases [#33744](https://github.com/ClickHouse/ClickHouse/pull/33744) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add new team members to company page [#33755](https://github.com/ClickHouse/ClickHouse/pull/33755) ([Cody Baker](https://github.com/codyrobert)). +* Remove duplicated header [#33760](https://github.com/ClickHouse/ClickHouse/pull/33760) ([vxider](https://github.com/Vxider)). +* Hotfix of missing header [#33765](https://github.com/ClickHouse/ClickHouse/pull/33765) ([Amos Bird](https://github.com/amosbird)). +* rewrite bitHammingDistance with FunctionBinaryArithmetic [#33772](https://github.com/ClickHouse/ClickHouse/pull/33772) ([flynn](https://github.com/ucasfl)). +* Use tb64senc for base64Decode on aarch64 [#33779](https://github.com/ClickHouse/ClickHouse/pull/33779) ([Vladimir C](https://github.com/vdimir)). +* Support USE_* build flags in tests' tags [#33780](https://github.com/ClickHouse/ClickHouse/pull/33780) ([Vladimir C](https://github.com/vdimir)). +* Use workflow names in approve lambda [#33789](https://github.com/ClickHouse/ClickHouse/pull/33789) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Dictionaries remove unnecessary copy of keys during read [#33791](https://github.com/ClickHouse/ClickHouse/pull/33791) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove debug logging from TableFunctionFile [#33796](https://github.com/ClickHouse/ClickHouse/pull/33796) ([Kruglov Pavel](https://github.com/Avogar)). +* RangeHashedDictionary handle invalid intervals [#33827](https://github.com/ClickHouse/ClickHouse/pull/33827) ([Maksim Kita](https://github.com/kitaisreal)). +* Dictionaries added Date32 type support [#33831](https://github.com/ClickHouse/ClickHouse/pull/33831) ([Maksim Kita](https://github.com/kitaisreal)). +* TypeId better naming [#33832](https://github.com/ClickHouse/ClickHouse/pull/33832) ([Maksim Kita](https://github.com/kitaisreal)). +* FunctionsConversion fix typo [#33841](https://github.com/ClickHouse/ClickHouse/pull/33841) ([Maksim Kita](https://github.com/kitaisreal)). +* More cmake external modules cleanups [#33842](https://github.com/ClickHouse/ClickHouse/pull/33842) ([Azat Khuzhin](https://github.com/azat)). +* Remove harmful code and check what will happen [#33844](https://github.com/ClickHouse/ClickHouse/pull/33844) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix DESCRIBE TABLE query formatting [#33846](https://github.com/ClickHouse/ClickHouse/pull/33846) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix build with ENABLE_EXAMPLES [#33848](https://github.com/ClickHouse/ClickHouse/pull/33848) ([Maksim Kita](https://github.com/kitaisreal)). +* Add Trademark Policy Page [#33851](https://github.com/ClickHouse/ClickHouse/pull/33851) ([Cody Baker](https://github.com/codyrobert)). +* updates to min2 and max2 funcs [#33852](https://github.com/ClickHouse/ClickHouse/pull/33852) ([Bharat Nallan](https://github.com/bharatnc)). +* Use correct logging level [#33857](https://github.com/ClickHouse/ClickHouse/pull/33857) ([李扬](https://github.com/taiyang-li)). +* Fix zookeeper library dependency from interpreters (by marking library STATIC) [#33860](https://github.com/ClickHouse/ClickHouse/pull/33860) ([Azat Khuzhin](https://github.com/azat)). +* FunctionBase64Conversion warning fix [#33863](https://github.com/ClickHouse/ClickHouse/pull/33863) ([Maksim Kita](https://github.com/kitaisreal)). +* Dictionary ATTACH, DETACH added test [#33870](https://github.com/ClickHouse/ClickHouse/pull/33870) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix perf comparison rerun [#33872](https://github.com/ClickHouse/ClickHouse/pull/33872) ([alesapin](https://github.com/alesapin)). +* Improve postgresql integration test [#33880](https://github.com/ClickHouse/ClickHouse/pull/33880) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix cmake for mac. [#33882](https://github.com/ClickHouse/ClickHouse/pull/33882) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* SQLUserDefinedFunctions invalid lambda additional fixes [#33889](https://github.com/ClickHouse/ClickHouse/pull/33889) ([Maksim Kita](https://github.com/kitaisreal)). +* Update upcoming and past webinar links on homepage [#33890](https://github.com/ClickHouse/ClickHouse/pull/33890) ([Cody Baker](https://github.com/codyrobert)). +* disable animation on docs menu [#33903](https://github.com/ClickHouse/ClickHouse/pull/33903) ([SuperDJY](https://github.com/cmsxbc)). +* Add more retries in CI for AWS "spot" instances [#33907](https://github.com/ClickHouse/ClickHouse/pull/33907) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* FunctionMathUnary remove macro usage [#33916](https://github.com/ClickHouse/ClickHouse/pull/33916) ([Maksim Kita](https://github.com/kitaisreal)). +* explicitly checkAndGetColumn for remaining H3 funcs [#33921](https://github.com/ClickHouse/ClickHouse/pull/33921) ([Bharat Nallan](https://github.com/bharatnc)). +* SQLUserDefinedFunctions invalid lambda additional cases [#33924](https://github.com/ClickHouse/ClickHouse/pull/33924) ([Maksim Kita](https://github.com/kitaisreal)). +* when not DEBUG set USE_DEBUG_HELPERS OFF [#33925](https://github.com/ClickHouse/ClickHouse/pull/33925) ([Ben](https://github.com/benbiti)). +* Fix test_replica_is_active flaky test [#33926](https://github.com/ClickHouse/ClickHouse/pull/33926) ([alesapin](https://github.com/alesapin)). +* Fix bug in keeper which can lead to inconsistent snapshots [#33941](https://github.com/ClickHouse/ClickHouse/pull/33941) ([alesapin](https://github.com/alesapin)). +* Fix keeper data dumper build [#33942](https://github.com/ClickHouse/ClickHouse/pull/33942) ([alesapin](https://github.com/alesapin)). +* Remove MAKE_STATIC_LIBRARIES (in favor of USE_STATIC_LIBRARIES) [#33946](https://github.com/ClickHouse/ClickHouse/pull/33946) ([Azat Khuzhin](https://github.com/azat)). +* Revert glibc compatibility (via .symver) in favor of hermetic build (bundled libc) [#33950](https://github.com/ClickHouse/ClickHouse/pull/33950) ([Azat Khuzhin](https://github.com/azat)). +* add c++expr script for C++ one-liners [#33962](https://github.com/ClickHouse/ClickHouse/pull/33962) ([Sergei Trifonov](https://github.com/serxa)). +* docker: fix root squashed data dirs [#33963](https://github.com/ClickHouse/ClickHouse/pull/33963) ([Constantine Peresypkin](https://github.com/pkit)). +* Disable parallel run for 00985_merge_stack_overflow [#33976](https://github.com/ClickHouse/ClickHouse/pull/33976) ([Azat Khuzhin](https://github.com/azat)). +* Cancel lambda [#33990](https://github.com/ClickHouse/ClickHouse/pull/33990) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* reduce signal_pipe_buf_size [#33996](https://github.com/ClickHouse/ClickHouse/pull/33996) ([save-my-heart](https://github.com/save-my-heart)). +* make systemd to use EnvironmentFile [#34024](https://github.com/ClickHouse/ClickHouse/pull/34024) ([Denny Crane](https://github.com/den-crane)). +* CurrentlyExecuting: Require mutex usage explicitly [#34034](https://github.com/ClickHouse/ClickHouse/pull/34034) ([Raúl Marín](https://github.com/Algunenano)). +* Add symlinks to keeper [#34042](https://github.com/ClickHouse/ClickHouse/pull/34042) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove DecimalPaddedPODArray [#34052](https://github.com/ClickHouse/ClickHouse/pull/34052) ([Maksim Kita](https://github.com/kitaisreal)). +* Less flaky test_inconsistent_parts_if_drop_while_replica_not_active [#34057](https://github.com/ClickHouse/ClickHouse/pull/34057) ([Raúl Marín](https://github.com/Algunenano)). +* Small test for `FINAL` [#34058](https://github.com/ClickHouse/ClickHouse/pull/34058) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Slightly optimize ColumnArray::get()/operator[] (by using reserve over resize) [#34074](https://github.com/ClickHouse/ClickHouse/pull/34074) ([Azat Khuzhin](https://github.com/azat)). +* Tiny cleanup of AggregateFunctionSimpleState/AggregateFunctionState [#34075](https://github.com/ClickHouse/ClickHouse/pull/34075) ([Azat Khuzhin](https://github.com/azat)). +* Fix builds [#34090](https://github.com/ClickHouse/ClickHouse/pull/34090) ([Alexander Tokmakov](https://github.com/tavplubix)). +* add c++expr script examples [#34112](https://github.com/ClickHouse/ClickHouse/pull/34112) ([Sergei Trifonov](https://github.com/serxa)). +* Make clickhouse-diagnostics also work for altinity release [#34116](https://github.com/ClickHouse/ClickHouse/pull/34116) ([Ramazan Polat](https://github.com/ramazanpolat)). +* Small improvement in schema inference from stdin in local [#34117](https://github.com/ClickHouse/ClickHouse/pull/34117) ([Kruglov Pavel](https://github.com/Avogar)). +* Slightly optimize Array/Tuple/Map [#34126](https://github.com/ClickHouse/ClickHouse/pull/34126) ([Azat Khuzhin](https://github.com/azat)). +* Sort block refactoring [#34143](https://github.com/ClickHouse/ClickHouse/pull/34143) ([Maksim Kita](https://github.com/kitaisreal)). +* pdqsort performance check [#34145](https://github.com/ClickHouse/ClickHouse/pull/34145) ([Maksim Kita](https://github.com/kitaisreal)). +* Revert [#33957](https://github.com/ClickHouse/ClickHouse/issues/33957) [#34146](https://github.com/ClickHouse/ClickHouse/pull/34146) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add func tests run with s3 [#34153](https://github.com/ClickHouse/ClickHouse/pull/34153) ([alesapin](https://github.com/alesapin)). +* Close [#10197](https://github.com/ClickHouse/ClickHouse/issues/10197) [#34159](https://github.com/ClickHouse/ClickHouse/pull/34159) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Cmake leftovers cleanup [#34167](https://github.com/ClickHouse/ClickHouse/pull/34167) ([Azat Khuzhin](https://github.com/azat)). +* bitsetsort peformance check [#34175](https://github.com/ClickHouse/ClickHouse/pull/34175) ([Maksim Kita](https://github.com/kitaisreal)). +* Add authorisation for dockerhub proxy container [#34183](https://github.com/ClickHouse/ClickHouse/pull/34183) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Additionally check remote_fs_execute_merges_on_single_replica_time_threshold inside ReplicatedMergeTreeQueue [#34189](https://github.com/ClickHouse/ClickHouse/pull/34189) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix some perf tests [#34191](https://github.com/ClickHouse/ClickHouse/pull/34191) ([Kruglov Pavel](https://github.com/Avogar)). +* Clean up: insert_deduplication_token setting for INSERT statement [#34192](https://github.com/ClickHouse/ClickHouse/pull/34192) ([Igor Nikonov](https://github.com/devcrafter)). +* Add func tests run with s3 and fix several bugs [#34215](https://github.com/ClickHouse/ClickHouse/pull/34215) ([alesapin](https://github.com/alesapin)). +* Revert "Revert "Add pool to WriteBufferFromS3"" [#34219](https://github.com/ClickHouse/ClickHouse/pull/34219) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Revert "Revert "Additionally check remote_fs_execute_merges_on_single_replica_time_threshold inside ReplicatedMergeTreeQueue"" [#34221](https://github.com/ClickHouse/ClickHouse/pull/34221) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add const to make clang-tidy happy [#34222](https://github.com/ClickHouse/ClickHouse/pull/34222) ([Vitaly Baranov](https://github.com/vitlibar)). +* Bump fmtlib from 7.0.0 to 8.1.1 [#34223](https://github.com/ClickHouse/ClickHouse/pull/34223) ([Azat Khuzhin](https://github.com/azat)). +* Add submodule minizip [#34226](https://github.com/ClickHouse/ClickHouse/pull/34226) ([Vitaly Baranov](https://github.com/vitlibar)). +* Update list-versions.sh, update version_date.tsv [#34240](https://github.com/ClickHouse/ClickHouse/pull/34240) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add missing fmt::runtime() in MergeTreeBackgroundExecutor (fixes the build) [#34245](https://github.com/ClickHouse/ClickHouse/pull/34245) ([Azat Khuzhin](https://github.com/azat)). +* Update clickhouse-keeper.md [#34264](https://github.com/ClickHouse/ClickHouse/pull/34264) ([Andrew](https://github.com/andycol)). +* print query id when using `--interactive` with `--queries-file` in client/local [#34265](https://github.com/ClickHouse/ClickHouse/pull/34265) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update and add new team members [#34268](https://github.com/ClickHouse/ClickHouse/pull/34268) ([Cody Baker](https://github.com/codyrobert)). +* Add a test for shebang [#34274](https://github.com/ClickHouse/ClickHouse/pull/34274) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix fractional_progress_bar test [#34282](https://github.com/ClickHouse/ClickHouse/pull/34282) ([Maksim Kita](https://github.com/kitaisreal)). +* Minor fixes for [#34267](https://github.com/ClickHouse/ClickHouse/issues/34267) [#34284](https://github.com/ClickHouse/ClickHouse/pull/34284) ([Anton Popov](https://github.com/CurtizJ)). +* Add support policy page content. [#34309](https://github.com/ClickHouse/ClickHouse/pull/34309) ([Tom Risse](https://github.com/flickerbox-tom)). +* Probably fix data race in WriteBufferFromS3 destructor. [#34316](https://github.com/ClickHouse/ClickHouse/pull/34316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Decrease severity for "Reading ... ranges ..." log message to Trace [#34319](https://github.com/ClickHouse/ClickHouse/pull/34319) ([Azat Khuzhin](https://github.com/azat)). +* use LowCardinality type for _file and _path in some Storages, continue of [#34317](https://github.com/ClickHouse/ClickHouse/issues/34317) [#34333](https://github.com/ClickHouse/ClickHouse/pull/34333) ([flynn](https://github.com/ucasfl)). +* Function mapPopulateSeries added additional performance test [#34339](https://github.com/ClickHouse/ClickHouse/pull/34339) ([Maksim Kita](https://github.com/kitaisreal)). +* Add test for propagating OpenTelemetry context via gRPC protocol [#34341](https://github.com/ClickHouse/ClickHouse/pull/34341) ([Vitaly Baranov](https://github.com/vitlibar)). +* explicitly check and get columns for s2 funcs [#34344](https://github.com/ClickHouse/ClickHouse/pull/34344) ([Bharat Nallan](https://github.com/bharatnc)). +* Small improvements [#34351](https://github.com/ClickHouse/ClickHouse/pull/34351) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix USE database for clickhouse-local [#34357](https://github.com/ClickHouse/ClickHouse/pull/34357) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix clang-tidy issue [#34365](https://github.com/ClickHouse/ClickHouse/pull/34365) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Delete empty file DateOrDateTimeFunctionsConvertion.cpp [#34371](https://github.com/ClickHouse/ClickHouse/pull/34371) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix consecutive backward seeks in seekable read buffers [#34376](https://github.com/ClickHouse/ClickHouse/pull/34376) ([Anton Popov](https://github.com/CurtizJ)). +* Enable one more check for clang-tidy [#34388](https://github.com/ClickHouse/ClickHouse/pull/34388) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Method called on already moved [#34398](https://github.com/ClickHouse/ClickHouse/pull/34398) ([Rajkumar Varada](https://github.com/varadarajkumar)). +* Fix wrong destruction order in CreatingSetsTransform. [#34406](https://github.com/ClickHouse/ClickHouse/pull/34406) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Split and rename compression fields in gRPC [#34408](https://github.com/ClickHouse/ClickHouse/pull/34408) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fixing test_storage_postgresql [#34410](https://github.com/ClickHouse/ClickHouse/pull/34410) ([Kseniia Sumarokova](https://github.com/kssenii)). +* asynchronous_inserts engine AsynchronousInserts -> SystemAsynchronousInserts [#34429](https://github.com/ClickHouse/ClickHouse/pull/34429) ([filimonov](https://github.com/filimonov)). +* clang-tidy move fix build [#34431](https://github.com/ClickHouse/ClickHouse/pull/34431) ([Maksim Kita](https://github.com/kitaisreal)). +* `static-files-disk-uploader`: add a mode to create symlinks [#34432](https://github.com/ClickHouse/ClickHouse/pull/34432) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix bug in URL engine [#34448](https://github.com/ClickHouse/ClickHouse/pull/34448) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix style [#34450](https://github.com/ClickHouse/ClickHouse/pull/34450) ([alesapin](https://github.com/alesapin)). +* Added test 33734 [#34454](https://github.com/ClickHouse/ClickHouse/pull/34454) ([Maksim Kita](https://github.com/kitaisreal)). +* Update http_max_tries setting default [#34457](https://github.com/ClickHouse/ClickHouse/pull/34457) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Use `cpp_bin_float_double` in `set_multiplier` for `wide_integer_from_builtin` for aarch64 [#34463](https://github.com/ClickHouse/ClickHouse/pull/34463) ([Vladimir C](https://github.com/vdimir)). +* test for [#13907](https://github.com/ClickHouse/ClickHouse/issues/13907) toColumnTypeName_toLowCardinality_const [#34471](https://github.com/ClickHouse/ClickHouse/pull/34471) ([Denny Crane](https://github.com/den-crane)). +* Remove invalid IOS setting for RocksDB CMAKE to fix Apple M1 build [#34472](https://github.com/ClickHouse/ClickHouse/pull/34472) ([Geoff Genz](https://github.com/genzgd)). +* clang-tidy reported potential chance for divide by zero exception [#34473](https://github.com/ClickHouse/ClickHouse/pull/34473) ([Rajkumar Varada](https://github.com/varadarajkumar)). +* accessing nested_column after already moved to data [#34475](https://github.com/ClickHouse/ClickHouse/pull/34475) ([Rajkumar Varada](https://github.com/varadarajkumar)). +* Avoid unnecessary copying of `Settings` [#34476](https://github.com/ClickHouse/ClickHouse/pull/34476) ([Anton Popov](https://github.com/CurtizJ)). +* Update buildPushingToViewsChain.h [#34515](https://github.com/ClickHouse/ClickHouse/pull/34515) ([William.Walliams.Wong](https://github.com/wangzhen11aaa)). +* More gdb introspection on CI [#34517](https://github.com/ClickHouse/ClickHouse/pull/34517) ([Azat Khuzhin](https://github.com/azat)). +* add BeforeLambdaBody to .clang-format [#34533](https://github.com/ClickHouse/ClickHouse/pull/34533) ([Vladimir C](https://github.com/vdimir)). +* Remove very old cruft [#34547](https://github.com/ClickHouse/ClickHouse/pull/34547) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Tiny fixes for client/local suggestions [#34550](https://github.com/ClickHouse/ClickHouse/pull/34550) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix gtest_archive_reader_and_writer in case of !USE_MINIZIP [#34554](https://github.com/ClickHouse/ClickHouse/pull/34554) ([Azat Khuzhin](https://github.com/azat)). +* TableFunctionFile added performance test [#34555](https://github.com/ClickHouse/ClickHouse/pull/34555) ([Maksim Kita](https://github.com/kitaisreal)). +* check and get columns in geoToH3 func [#34557](https://github.com/ClickHouse/ClickHouse/pull/34557) ([Bharat Nallan](https://github.com/bharatnc)). +* try fix data race in StorageLog [#34558](https://github.com/ClickHouse/ClickHouse/pull/34558) ([flynn](https://github.com/ucasfl)). +* Postpone a bit nightly builds to the least loaded time [#34569](https://github.com/ClickHouse/ClickHouse/pull/34569) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Always remove unused actions from addMissingDefaults [#34577](https://github.com/ClickHouse/ClickHouse/pull/34577) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix indentation in ARRAY JOIN formatting [#34578](https://github.com/ClickHouse/ClickHouse/pull/34578) ([Azat Khuzhin](https://github.com/azat)). +* Fix deadlock in OvercommitTracker [#34591](https://github.com/ClickHouse/ClickHouse/pull/34591) ([Dmitry Novik](https://github.com/novikd)). +* ASTCreateQuery: Remove usused `tables` member [#34610](https://github.com/ClickHouse/ClickHouse/pull/34610) ([Raúl Marín](https://github.com/Algunenano)). +* Add test for [#19222](https://github.com/ClickHouse/ClickHouse/issues/19222) [#34615](https://github.com/ClickHouse/ClickHouse/pull/34615) ([Raúl Marín](https://github.com/Algunenano)). +* Attempt to fix freeBSD build [#34617](https://github.com/ClickHouse/ClickHouse/pull/34617) ([Raúl Marín](https://github.com/Algunenano)). +* Fix quadratic complexity while adding subcolumns [#34623](https://github.com/ClickHouse/ClickHouse/pull/34623) ([Anton Popov](https://github.com/CurtizJ)). +* Fix typo in welchttest.md [#34634](https://github.com/ClickHouse/ClickHouse/pull/34634) ([achimbab](https://github.com/achimbab)). +* Improve the release.py script [#34659](https://github.com/ClickHouse/ClickHouse/pull/34659) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Disable memory overcommit if timeout is not set [#34663](https://github.com/ClickHouse/ClickHouse/pull/34663) ([Dmitry Novik](https://github.com/novikd)). + diff --git a/docs/changelogs/v22.2.3.5-stable.md b/docs/changelogs/v22.2.3.5-stable.md index 24b535a7f91..2eb8a6b63cc 100644 --- a/docs/changelogs/v22.2.3.5-stable.md +++ b/docs/changelogs/v22.2.3.5-stable.md @@ -11,3 +11,7 @@ sidebar_label: 2022 * Backported in [#34848](https://github.com/ClickHouse/ClickHouse/issues/34848): Fix possible failures in S2 functions when queries contain const columns. [#34745](https://github.com/ClickHouse/ClickHouse/pull/34745) ([Bharat Nallan](https://github.com/bharatnc)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix using host/port from config for client [#34791](https://github.com/ClickHouse/ClickHouse/pull/34791) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v22.3.1.1262-prestable.md b/docs/changelogs/v22.3.1.1262-prestable.md index d2f976f4517..0058396d634 100644 --- a/docs/changelogs/v22.3.1.1262-prestable.md +++ b/docs/changelogs/v22.3.1.1262-prestable.md @@ -151,3 +151,124 @@ sidebar_label: 2022 * NO CL ENTRY: 'Revert "Change timezone in Docker"'. [#35243](https://github.com/ClickHouse/ClickHouse/pull/35243) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * NO CL ENTRY: 'Revert "Fix 00900_long_parquet_load"'. [#35301](https://github.com/ClickHouse/ClickHouse/pull/35301) ([Vladimir C](https://github.com/vdimir)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* [RFC] Update jemalloc to 5.3RC [#33057](https://github.com/ClickHouse/ClickHouse/pull/33057) ([Azat Khuzhin](https://github.com/azat)). +* Remove useless setting experimental_query_deduplication_send_all_part_uuids [#34387](https://github.com/ClickHouse/ClickHouse/pull/34387) ([nvartolomei](https://github.com/nvartolomei)). +* Apply join_use_nulls on types before join [#34529](https://github.com/ClickHouse/ClickHouse/pull/34529) ([Vladimir C](https://github.com/vdimir)). +* Adjust 01681_arg_min_max_if_fix [#34612](https://github.com/ClickHouse/ClickHouse/pull/34612) ([Vladimir C](https://github.com/vdimir)). +* Check overflow in addSeconds/Minues/etc functions [#34619](https://github.com/ClickHouse/ClickHouse/pull/34619) ([Vladimir C](https://github.com/vdimir)). +* Update version after release [#34677](https://github.com/ClickHouse/ClickHouse/pull/34677) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix `positionUTF8` on aarch64 [#34683](https://github.com/ClickHouse/ClickHouse/pull/34683) ([Vladimir C](https://github.com/vdimir)). +* Update version_date.tsv after v22.2.2.1-stable [#34685](https://github.com/ClickHouse/ClickHouse/pull/34685) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Fix ZooKepper paths in zero_copy_schema_converter.py [#34686](https://github.com/ClickHouse/ClickHouse/pull/34686) ([ianton-ru](https://github.com/ianton-ru)). +* Changelog for version 22.2 [#34687](https://github.com/ClickHouse/ClickHouse/pull/34687) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Follow up to PR [#33698](https://github.com/ClickHouse/ClickHouse/issues/33698) [#34689](https://github.com/ClickHouse/ClickHouse/pull/34689) ([Vladimir C](https://github.com/vdimir)). +* Always update ProfileEvents (even on exceptions) [#34690](https://github.com/ClickHouse/ClickHouse/pull/34690) ([nvartolomei](https://github.com/nvartolomei)). +* Function encodeURLComponent minor fixes [#34695](https://github.com/ClickHouse/ClickHouse/pull/34695) ([Maksim Kita](https://github.com/kitaisreal)). +* CMake llvm add status message if not used [#34698](https://github.com/ClickHouse/ClickHouse/pull/34698) ([Maksim Kita](https://github.com/kitaisreal)). +* Adding noexcept for move constructor SharedContextHolder [#34699](https://github.com/ClickHouse/ClickHouse/pull/34699) ([Rajkumar Varada](https://github.com/varadarajkumar)). +* Add new team members to company page [#34701](https://github.com/ClickHouse/ClickHouse/pull/34701) ([Cody Baker](https://github.com/codyrobert)). +* Fix flaky 00502_custom_partitioning_local [#34714](https://github.com/ClickHouse/ClickHouse/pull/34714) ([Azat Khuzhin](https://github.com/azat)). +* Workaround for a bug in NuRaft library [#34715](https://github.com/ClickHouse/ClickHouse/pull/34715) ([Azat Khuzhin](https://github.com/azat)). +* Fix possible memory_tracker use-after-free (for async s3 writes) for merges/mutations [#34717](https://github.com/ClickHouse/ClickHouse/pull/34717) ([Azat Khuzhin](https://github.com/azat)). +* Add taiyang-li to trusted contributors [#34729](https://github.com/ClickHouse/ClickHouse/pull/34729) ([Vladimir C](https://github.com/vdimir)). +* rename name in ci check [#34730](https://github.com/ClickHouse/ClickHouse/pull/34730) ([flynn](https://github.com/ucasfl)). +* Performance tests fix H3 [#34731](https://github.com/ClickHouse/ClickHouse/pull/34731) ([Maksim Kita](https://github.com/kitaisreal)). +* Enable async writes to S3. [#34734](https://github.com/ClickHouse/ClickHouse/pull/34734) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add a patch release for stable/lts packages to release.py [#34740](https://github.com/ClickHouse/ClickHouse/pull/34740) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Print only total profile events for --profile-events-delay-ms=-1 [#34749](https://github.com/ClickHouse/ClickHouse/pull/34749) ([Azat Khuzhin](https://github.com/azat)). +* Fix `parallel_reading_from_replicas` with `clickhouse-bechmark` [#34751](https://github.com/ClickHouse/ClickHouse/pull/34751) ([Azat Khuzhin](https://github.com/azat)). +* Submodules are mandatory [#34753](https://github.com/ClickHouse/ClickHouse/pull/34753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Changelog for version 22.2 [#34758](https://github.com/ClickHouse/ClickHouse/pull/34758) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Sort additional_html_urls in test report in CI [#34770](https://github.com/ClickHouse/ClickHouse/pull/34770) ([Vladimir C](https://github.com/vdimir)). +* Fix undefined __pthread_mutex_lock/unlock for glibc 2.34+/DISABLE_HERMETIC_BUILD [#34771](https://github.com/ClickHouse/ClickHouse/pull/34771) ([Azat Khuzhin](https://github.com/azat)). +* jemalloc: fix includes order to avoid overlaps [#34783](https://github.com/ClickHouse/ClickHouse/pull/34783) ([Azat Khuzhin](https://github.com/azat)). +* Fix using host/port from config for client [#34791](https://github.com/ClickHouse/ClickHouse/pull/34791) ([Vladimir C](https://github.com/vdimir)). +* Update links for 22.2 and 22.3 release webinars [#34814](https://github.com/ClickHouse/ClickHouse/pull/34814) ([Cody Baker](https://github.com/codyrobert)). +* Add opensee blog post [#34817](https://github.com/ClickHouse/ClickHouse/pull/34817) ([Cody Baker](https://github.com/codyrobert)). +* Try remove trash from StorageFileLog [#34819](https://github.com/ClickHouse/ClickHouse/pull/34819) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix generating system.build_options [#34823](https://github.com/ClickHouse/ClickHouse/pull/34823) ([Azat Khuzhin](https://github.com/azat)). +* Comment output header for team keys [#34828](https://github.com/ClickHouse/ClickHouse/pull/34828) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix untuple condition in IN function [#34836](https://github.com/ClickHouse/ClickHouse/pull/34836) ([Vladimir C](https://github.com/vdimir)). +* Improve certificate reloader [#34887](https://github.com/ClickHouse/ClickHouse/pull/34887) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Update DiskS3.cpp [#34889](https://github.com/ClickHouse/ClickHouse/pull/34889) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Clang tidy improvements [#34893](https://github.com/ClickHouse/ClickHouse/pull/34893) ([Maksim Kita](https://github.com/kitaisreal)). +* Update version_date.tsv after v22.2.3.5-stable [#34898](https://github.com/ClickHouse/ClickHouse/pull/34898) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Add check_prerequisites to release.py [#34901](https://github.com/ClickHouse/ClickHouse/pull/34901) ([Vladimir C](https://github.com/vdimir)). +* Fix filelog storage data paths [#34912](https://github.com/ClickHouse/ClickHouse/pull/34912) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update version_date.tsv after v22.1.4.30-stable [#34913](https://github.com/ClickHouse/ClickHouse/pull/34913) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Fix alignment for aligned_alloc() to fix build for glibc2.35+ [#34919](https://github.com/ClickHouse/ClickHouse/pull/34919) ([Azat Khuzhin](https://github.com/azat)). +* Stop processing multiqueries in clickhouse-client/local on SIGINT [#34923](https://github.com/ClickHouse/ClickHouse/pull/34923) ([Azat Khuzhin](https://github.com/azat)). +* Fix some code comments style [#34935](https://github.com/ClickHouse/ClickHouse/pull/34935) ([hongbin](https://github.com/xlwh)). +* Adjust couple of tests for aarch64 [#34951](https://github.com/ClickHouse/ClickHouse/pull/34951) ([Vladimir C](https://github.com/vdimir)). +* Add benchmarks [#34960](https://github.com/ClickHouse/ClickHouse/pull/34960) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Catch exception in ~WriteBufferFromS3 [#34963](https://github.com/ClickHouse/ClickHouse/pull/34963) ([Vladimir C](https://github.com/vdimir)). +* Disable memory checking test with thread sanitizer [#34964](https://github.com/ClickHouse/ClickHouse/pull/34964) ([alesapin](https://github.com/alesapin)). +* Print number of available logical cores in configuration [#34972](https://github.com/ClickHouse/ClickHouse/pull/34972) ([Robert Schulze](https://github.com/rschu1ze)). +* Fix possible "nmalloc >= ndalloc" jemalloc assertion [#34973](https://github.com/ClickHouse/ClickHouse/pull/34973) ([Azat Khuzhin](https://github.com/azat)). +* Add some benchmarks [#34974](https://github.com/ClickHouse/ClickHouse/pull/34974) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Fix typo [#34975](https://github.com/ClickHouse/ClickHouse/pull/34975) ([Nikita Evsyukov](https://github.com/NikitaEvs)). +* Fix signal-unsafe TSan report in client [#34988](https://github.com/ClickHouse/ClickHouse/pull/34988) ([Azat Khuzhin](https://github.com/azat)). +* Fix non-MergeTree engines for system.*_log [#34989](https://github.com/ClickHouse/ClickHouse/pull/34989) ([Azat Khuzhin](https://github.com/azat)). +* Fix test_storage_postgresql::test_concurrent_queries [#34991](https://github.com/ClickHouse/ClickHouse/pull/34991) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix race between INSERT async_insert=1 and system.asynchronous_inserts [#34992](https://github.com/ClickHouse/ClickHouse/pull/34992) ([Azat Khuzhin](https://github.com/azat)). +* Add option to clickhouse-test to skip aarch64 build [#34995](https://github.com/ClickHouse/ClickHouse/pull/34995) ([Vladimir C](https://github.com/vdimir)). +* clickhouse obfuscator aarch64 fix [#35005](https://github.com/ClickHouse/ClickHouse/pull/35005) ([Vladimir C](https://github.com/vdimir)). +* Fix tutorial link [#35014](https://github.com/ClickHouse/ClickHouse/pull/35014) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* ExecutableUDF function deterministic in scope of query fix [#35018](https://github.com/ClickHouse/ClickHouse/pull/35018) ([Maksim Kita](https://github.com/kitaisreal)). +* fasttest: add timings for "Test time" column in the results table [#35019](https://github.com/ClickHouse/ClickHouse/pull/35019) ([Azat Khuzhin](https://github.com/azat)). +* Always write preprocessed config in XML format [#35020](https://github.com/ClickHouse/ClickHouse/pull/35020) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix read old records from logs [#35021](https://github.com/ClickHouse/ClickHouse/pull/35021) ([alesapin](https://github.com/alesapin)). +* Fix trim function [#35046](https://github.com/ClickHouse/ClickHouse/pull/35046) ([Vladimir C](https://github.com/vdimir)). +* Skip 01086_odbc_roundtrip for aarch, disable force_tests [#35058](https://github.com/ClickHouse/ClickHouse/pull/35058) ([Vladimir C](https://github.com/vdimir)). +* Remove useless define [#35066](https://github.com/ClickHouse/ClickHouse/pull/35066) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Take flush_time into account for scheduling background flush of the Buffer [#35071](https://github.com/ClickHouse/ClickHouse/pull/35071) ([Azat Khuzhin](https://github.com/azat)). +* Try to fix failed tests [#35073](https://github.com/ClickHouse/ClickHouse/pull/35073) ([Kruglov Pavel](https://github.com/Avogar)). +* Do not hide exceptions during mutations [#35080](https://github.com/ClickHouse/ClickHouse/pull/35080) ([Azat Khuzhin](https://github.com/azat)). +* Put downloaded artifacts to a temorary path [#35088](https://github.com/ClickHouse/ClickHouse/pull/35088) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Get rid of duplicate query planing. [#35094](https://github.com/ClickHouse/ClickHouse/pull/35094) ([Amos Bird](https://github.com/amosbird)). +* Temporary supress move partition long for storage S3 [#35097](https://github.com/ClickHouse/ClickHouse/pull/35097) ([alesapin](https://github.com/alesapin)). +* Fix inconsistency in DiskLocal [#35099](https://github.com/ClickHouse/ClickHouse/pull/35099) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Try to build llvm for Aarch64 [#35103](https://github.com/ClickHouse/ClickHouse/pull/35103) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* fix build fail with gcc [#35123](https://github.com/ClickHouse/ClickHouse/pull/35123) ([zhanghuajie](https://github.com/zhanghuajieHIT)). +* Fix hardcoded page size [#35129](https://github.com/ClickHouse/ClickHouse/pull/35129) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Delete nodes with attributes `remove` or `replace` if they didn't merge [#35141](https://github.com/ClickHouse/ClickHouse/pull/35141) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Upgrade icu to icu-release-70-1 [#35142](https://github.com/ClickHouse/ClickHouse/pull/35142) ([Yong Wang](https://github.com/kashwy)). +* Merging [#33398](https://github.com/ClickHouse/ClickHouse/issues/33398) [#35157](https://github.com/ClickHouse/ClickHouse/pull/35157) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* fix typos [#35174](https://github.com/ClickHouse/ClickHouse/pull/35174) ([Zhang Yifan](https://github.com/zhangyifan27)). +* Adjust max_memory_usage in external_aggregation.sql [#35194](https://github.com/ClickHouse/ClickHouse/pull/35194) ([Vladimir C](https://github.com/vdimir)). +* MaterializedMySQL protocol example fix [#35198](https://github.com/ClickHouse/ClickHouse/pull/35198) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove useless files [#35199](https://github.com/ClickHouse/ClickHouse/pull/35199) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless file [#35200](https://github.com/ClickHouse/ClickHouse/pull/35200) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add Segment script to of docs pages [#35203](https://github.com/ClickHouse/ClickHouse/pull/35203) ([Rich Raposa](https://github.com/rfraposa)). +* Cache fix [#35209](https://github.com/ClickHouse/ClickHouse/pull/35209) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Use C++14 aliases for some type traits [#35212](https://github.com/ClickHouse/ClickHouse/pull/35212) ([Robert Schulze](https://github.com/rschu1ze)). +* Remove redundant configs for TestFlows [#35223](https://github.com/ClickHouse/ClickHouse/pull/35223) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Correct some integration tests [#35224](https://github.com/ClickHouse/ClickHouse/pull/35224) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Change timezone in Docker [#35225](https://github.com/ClickHouse/ClickHouse/pull/35225) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Change timezone example in server config [#35226](https://github.com/ClickHouse/ClickHouse/pull/35226) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Adjust timezone in performance tests [#35227](https://github.com/ClickHouse/ClickHouse/pull/35227) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove "bugs" that do not exist anymore [#35228](https://github.com/ClickHouse/ClickHouse/pull/35228) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Change timezone in stateful tests. [#35229](https://github.com/ClickHouse/ClickHouse/pull/35229) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Moved submodules from ClickHouse-Extras to ClickHouse [#35232](https://github.com/ClickHouse/ClickHouse/pull/35232) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove "bugs" that do not exist anymore [#35242](https://github.com/ClickHouse/ClickHouse/pull/35242) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update CachedReadBufferFromRemoteFS.cpp [#35245](https://github.com/ClickHouse/ClickHouse/pull/35245) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add a test for [#34682](https://github.com/ClickHouse/ClickHouse/issues/34682) [#35247](https://github.com/ClickHouse/ClickHouse/pull/35247) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Enable clang tidy for header files [#35248](https://github.com/ClickHouse/ClickHouse/pull/35248) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix possible 01506_buffer_table_alter_block_structure_2 flakiness [#35249](https://github.com/ClickHouse/ClickHouse/pull/35249) ([Azat Khuzhin](https://github.com/azat)). +* Mark build action as failed if it was retried and there was no succeeded builds [#35260](https://github.com/ClickHouse/ClickHouse/pull/35260) ([Azat Khuzhin](https://github.com/azat)). +* Fix flaky test [#35261](https://github.com/ClickHouse/ClickHouse/pull/35261) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix logical error in remote fs cache [#35275](https://github.com/ClickHouse/ClickHouse/pull/35275) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix code style and other minor corrections after implementing allow_no_password. [#35276](https://github.com/ClickHouse/ClickHouse/pull/35276) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add remote fs cache optimization [#35278](https://github.com/ClickHouse/ClickHouse/pull/35278) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove utils/github-hook/hook.py [#35280](https://github.com/ClickHouse/ClickHouse/pull/35280) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix test [#35282](https://github.com/ClickHouse/ClickHouse/pull/35282) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix 00284_external_aggregation.sql [#35293](https://github.com/ClickHouse/ClickHouse/pull/35293) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix 00900_long_parquet_load [#35299](https://github.com/ClickHouse/ClickHouse/pull/35299) ([Vladimir C](https://github.com/vdimir)). +* Maybe fix use-after-free inside S3 upload thread [#35305](https://github.com/ClickHouse/ClickHouse/pull/35305) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Modified python packages [#35306](https://github.com/ClickHouse/ClickHouse/pull/35306) ([Lalit Srikant](https://github.com/LAL2211)). +* Fix disappeared host and port from client help message [#35309](https://github.com/ClickHouse/ClickHouse/pull/35309) ([Kruglov Pavel](https://github.com/Avogar)). +* Changelog 22.3 [#35344](https://github.com/ClickHouse/ClickHouse/pull/35344) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Replace a few uses of enable_if for SFINAE by concepts [#35347](https://github.com/ClickHouse/ClickHouse/pull/35347) ([Robert Schulze](https://github.com/rschu1ze)). + diff --git a/docs/changelogs/v22.3.3.44-lts.md b/docs/changelogs/v22.3.3.44-lts.md index 4fa98940290..4cd48eefa5a 100644 --- a/docs/changelogs/v22.3.3.44-lts.md +++ b/docs/changelogs/v22.3.3.44-lts.md @@ -19,3 +19,11 @@ sidebar_label: 2022 * Backported in [#35856](https://github.com/ClickHouse/ClickHouse/issues/35856): Respect only quota & period from groups, ignore shares (which are not really limit the number of the cores which can be used). [#35815](https://github.com/ClickHouse/ClickHouse/pull/35815) ([filimonov](https://github.com/filimonov)). * Backported in [#35938](https://github.com/ClickHouse/ClickHouse/issues/35938): Avoid processing per-column TTL multiple times. [#35820](https://github.com/ClickHouse/ClickHouse/pull/35820) ([Azat Khuzhin](https://github.com/azat)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Slightly better performance of inserts to `Object` type [#35388](https://github.com/ClickHouse/ClickHouse/pull/35388) ([Anton Popov](https://github.com/CurtizJ)). +* Fix race in data type `Object` [#35409](https://github.com/ClickHouse/ClickHouse/pull/35409) ([Anton Popov](https://github.com/CurtizJ)). +* Fix crash with enabled `optimize_functions_to_subcolumns` [#35512](https://github.com/ClickHouse/ClickHouse/pull/35512) ([Anton Popov](https://github.com/CurtizJ)). +* Fix enable LLVM for JIT compilation in CMake [#35770](https://github.com/ClickHouse/ClickHouse/pull/35770) ([Maksim Kita](https://github.com/kitaisreal)). +* Backport release to 22.3 [#35909](https://github.com/ClickHouse/ClickHouse/pull/35909) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). + diff --git a/docs/changelogs/v22.3.6.5-lts.md b/docs/changelogs/v22.3.6.5-lts.md index 9d86d9e786c..4b4772c611a 100644 --- a/docs/changelogs/v22.3.6.5-lts.md +++ b/docs/changelogs/v22.3.6.5-lts.md @@ -11,3 +11,7 @@ sidebar_label: 2022 * Backported in [#36795](https://github.com/ClickHouse/ClickHouse/issues/36795): Fix vertical merges in wide parts. Previously an exception `There is no column` can be thrown during merge. [#36707](https://github.com/ClickHouse/ClickHouse/pull/36707) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add passphrase for certificates [#36487](https://github.com/ClickHouse/ClickHouse/pull/36487) ([Filatenkov Artur](https://github.com/FArthur-cmd)). + diff --git a/docs/changelogs/v22.3.7.28-lts.md b/docs/changelogs/v22.3.7.28-lts.md index ecfd0ce2cf6..14cb8628f09 100644 --- a/docs/changelogs/v22.3.7.28-lts.md +++ b/docs/changelogs/v22.3.7.28-lts.md @@ -22,3 +22,10 @@ sidebar_label: 2022 * Backported in [#36925](https://github.com/ClickHouse/ClickHouse/issues/36925): Fix bug in clickhouse-keeper which can lead to corrupted compressed log files in case of small load and restarts. [#36910](https://github.com/ClickHouse/ClickHouse/pull/36910) ([alesapin](https://github.com/alesapin)). * Backported in [#37364](https://github.com/ClickHouse/ClickHouse/issues/37364): Fixed problem with infs in `quantileTDigest`. Fixes [#32107](https://github.com/ClickHouse/ClickHouse/issues/32107). [#37021](https://github.com/ClickHouse/ClickHouse/pull/37021) ([Vladimir Chebotarev](https://github.com/excitoon)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix mongodb test with new cert [#36161](https://github.com/ClickHouse/ClickHouse/pull/36161) ([alesapin](https://github.com/alesapin)). +* Integration tests [#36866](https://github.com/ClickHouse/ClickHouse/pull/36866) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Update protobuf files for kafka and rabbitmq [fix integration tests] [#37884](https://github.com/ClickHouse/ClickHouse/pull/37884) ([Nikita Taranov](https://github.com/nickitat)). +* Try fix `test_grpc_protocol/test.py::test_progress` [#37908](https://github.com/ClickHouse/ClickHouse/pull/37908) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v22.4.1.2305-prestable.md b/docs/changelogs/v22.4.1.2305-prestable.md index 5c6948251b3..c202b0b9331 100644 --- a/docs/changelogs/v22.4.1.2305-prestable.md +++ b/docs/changelogs/v22.4.1.2305-prestable.md @@ -243,3 +243,208 @@ sidebar_label: 2022 * NO CL ENTRY: 'Revert "clang-tidy report issues with Medium priority"'. [#35941](https://github.com/ClickHouse/ClickHouse/pull/35941) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * NO CL ENTRY: 'Revert "Fix crash in ParallelReadBuffer"'. [#36210](https://github.com/ClickHouse/ClickHouse/pull/36210) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Improve backup and restore (experimental) [#33985](https://github.com/ClickHouse/ClickHouse/pull/33985) ([Vitaly Baranov](https://github.com/vitlibar)). +* Do not leave any queries after test finish (and add a check into clickhouse-test) [#34924](https://github.com/ClickHouse/ClickHouse/pull/34924) ([Azat Khuzhin](https://github.com/azat)). +* libxml2 package under contrib directory is upgraded to 2.9.13 [#35034](https://github.com/ClickHouse/ClickHouse/pull/35034) ([Rajkumar Varada](https://github.com/varadarajkumar)). +* Add bugfix validate check [#35124](https://github.com/ClickHouse/ClickHouse/pull/35124) ([Vladimir C](https://github.com/vdimir)). +* curl package upgraded to 7.81.0 [#35130](https://github.com/ClickHouse/ClickHouse/pull/35130) ([Deleted user](https://github.com/ghost)). +* Add test for [#26965](https://github.com/ClickHouse/ClickHouse/issues/26965) [#35159](https://github.com/ClickHouse/ClickHouse/pull/35159) ([palegre-tiny](https://github.com/palegre-tiny)). +* clang-tidy report issues with Medium priority [#35184](https://github.com/ClickHouse/ClickHouse/pull/35184) ([Rajkumar Varada](https://github.com/varadarajkumar)). +* Add build with GCC [#35204](https://github.com/ClickHouse/ClickHouse/pull/35204) ([Azat Khuzhin](https://github.com/azat)). +* Fix-Clang-Tidy-Errors [#35297](https://github.com/ClickHouse/ClickHouse/pull/35297) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Other fix for 00900_long_parquet_load [#35302](https://github.com/ClickHouse/ClickHouse/pull/35302) ([Vladimir C](https://github.com/vdimir)). +* Add more checks with remoteHostsFilter [#35355](https://github.com/ClickHouse/ClickHouse/pull/35355) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix clang-tidy [#35356](https://github.com/ClickHouse/ClickHouse/pull/35356) ([Anton Popov](https://github.com/CurtizJ)). +* Function h3GetRes0Indexes crash fix [#35358](https://github.com/ClickHouse/ClickHouse/pull/35358) ([Maksim Kita](https://github.com/kitaisreal)). +* Function proporationsZTest formatting fix [#35369](https://github.com/ClickHouse/ClickHouse/pull/35369) ([Maksim Kita](https://github.com/kitaisreal)). +* Update version after release [#35374](https://github.com/ClickHouse/ClickHouse/pull/35374) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Update SECURITY.md [#35375](https://github.com/ClickHouse/ClickHouse/pull/35375) ([Ivan Blinkov](https://github.com/blinkov)). +* Update version_date.tsv after v22.3.2.2-lts [#35377](https://github.com/ClickHouse/ClickHouse/pull/35377) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Function proportionsZTest fix style check [#35380](https://github.com/ClickHouse/ClickHouse/pull/35380) ([Maksim Kita](https://github.com/kitaisreal)). +* Replace more uses of std::enable_if for SFINAE by concepts [#35383](https://github.com/ClickHouse/ClickHouse/pull/35383) ([Robert Schulze](https://github.com/rschu1ze)). +* Slightly better performance of inserts to `Object` type [#35388](https://github.com/ClickHouse/ClickHouse/pull/35388) ([Anton Popov](https://github.com/CurtizJ)). +* Validate some thoughts over making sets [#35395](https://github.com/ClickHouse/ClickHouse/pull/35395) ([Amos Bird](https://github.com/amosbird)). +* Fix race in data type `Object` [#35409](https://github.com/ClickHouse/ClickHouse/pull/35409) ([Anton Popov](https://github.com/CurtizJ)). +* Rename some variables in keeper [#35431](https://github.com/ClickHouse/ClickHouse/pull/35431) ([alesapin](https://github.com/alesapin)). +* fix 02177_issue_31009_pt2.sql [#35445](https://github.com/ClickHouse/ClickHouse/pull/35445) ([Vladimir C](https://github.com/vdimir)). +* mysqlxx PoolWithFailover style fix [#35462](https://github.com/ClickHouse/ClickHouse/pull/35462) ([Maksim Kita](https://github.com/kitaisreal)). +* Resubmit [#21474](https://github.com/ClickHouse/ClickHouse/issues/21474) [#35467](https://github.com/ClickHouse/ClickHouse/pull/35467) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Explicitly set allow_introspection_functions to 0 [#35470](https://github.com/ClickHouse/ClickHouse/pull/35470) ([Nikita Taranov](https://github.com/nickitat)). +* Merging [#30325](https://github.com/ClickHouse/ClickHouse/issues/30325) [#35478](https://github.com/ClickHouse/ClickHouse/pull/35478) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix show create for information_schema [#35480](https://github.com/ClickHouse/ClickHouse/pull/35480) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add retries in backward compatibility check [#35482](https://github.com/ClickHouse/ClickHouse/pull/35482) ([Kruglov Pavel](https://github.com/Avogar)). +* Improve backward compatibility check and stress tests [#35499](https://github.com/ClickHouse/ClickHouse/pull/35499) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix too strict assertion in DDLWorker [#35503](https://github.com/ClickHouse/ClickHouse/pull/35503) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add more validations in mask operations [#35507](https://github.com/ClickHouse/ClickHouse/pull/35507) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix crash with enabled `optimize_functions_to_subcolumns` [#35512](https://github.com/ClickHouse/ClickHouse/pull/35512) ([Anton Popov](https://github.com/CurtizJ)). +* Don't put red cross if jepsen check couldn't wait for build [#35522](https://github.com/ClickHouse/ClickHouse/pull/35522) ([alesapin](https://github.com/alesapin)). +* Fix ClickHouse name typo in caches.md [#35526](https://github.com/ClickHouse/ClickHouse/pull/35526) ([erikbaan](https://github.com/erikbaan)). +* Simplify strip for new packages [#35533](https://github.com/ClickHouse/ClickHouse/pull/35533) ([alesapin](https://github.com/alesapin)). +* Add workflow dispatch [#35535](https://github.com/ClickHouse/ClickHouse/pull/35535) ([alesapin](https://github.com/alesapin)). +* fix clang tidy warning, add nullptr check [#35540](https://github.com/ClickHouse/ClickHouse/pull/35540) ([Suzy Wang](https://github.com/SuzyWangIBMer)). +* Slightly better integration tests: test_backup_with_other_granularity test_azure_blob_storage_zero_copy_replication [#35543](https://github.com/ClickHouse/ClickHouse/pull/35543) ([Ilya Yatsishin](https://github.com/qoega)). +* ExternalModelsLoader refactoring [#35546](https://github.com/ClickHouse/ClickHouse/pull/35546) ([Maksim Kita](https://github.com/kitaisreal)). +* Fixed style check [#35550](https://github.com/ClickHouse/ClickHouse/pull/35550) ([Maksim Kita](https://github.com/kitaisreal)). +* Cleanup test data [#35555](https://github.com/ClickHouse/ClickHouse/pull/35555) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Revert "Decrease data_type_max_parse_depth a little to avoid stack overflow in coroutines" [#35556](https://github.com/ClickHouse/ClickHouse/pull/35556) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix test `test_s3_zero_copy_replication` [#35574](https://github.com/ClickHouse/ClickHouse/pull/35574) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix logging in `test_distributed_respect_user_timeouts` [#35575](https://github.com/ClickHouse/ClickHouse/pull/35575) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Increase fiber stack size a bit in attempt to fix stack overflow in tests with address sanitizer [#35578](https://github.com/ClickHouse/ClickHouse/pull/35578) ([Kruglov Pavel](https://github.com/Avogar)). +* Don't run 01318_long_unsuccessful_mutation_zookeeper test in backward compatibility check [#35580](https://github.com/ClickHouse/ClickHouse/pull/35580) ([Kruglov Pavel](https://github.com/Avogar)). +* Make some tests more stable [#35599](https://github.com/ClickHouse/ClickHouse/pull/35599) ([Kruglov Pavel](https://github.com/Avogar)). +* Check all logs for crashes, logical errors, etc in backward compatibility check [#35613](https://github.com/ClickHouse/ClickHouse/pull/35613) ([Kruglov Pavel](https://github.com/Avogar)). +* Update comment about mismatching checksums [#35621](https://github.com/ClickHouse/ClickHouse/pull/35621) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Push only to the new CI DB [#35622](https://github.com/ClickHouse/ClickHouse/pull/35622) ([alesapin](https://github.com/alesapin)). +* Fix optin.cplusplus.UninitializedObject issue [#35626](https://github.com/ClickHouse/ClickHouse/pull/35626) ([larryluogit](https://github.com/larryluogit)). +* test for partition_by using ignore() [#35636](https://github.com/ClickHouse/ClickHouse/pull/35636) ([Denny Crane](https://github.com/den-crane)). +* test for crash _join_with_nullable_lowcardinality [#35551](https://github.com/ClickHouse/ClickHouse/issues/35551) [#35638](https://github.com/ClickHouse/ClickHouse/pull/35638) ([Denny Crane](https://github.com/den-crane)). +* Use compile-time check for `Exception` messages [#35655](https://github.com/ClickHouse/ClickHouse/pull/35655) ([Antonio Andelic](https://github.com/antonio2368)). +* Fix flaky test `01532_primary_key_without_order_by_zookeeper` [#35657](https://github.com/ClickHouse/ClickHouse/pull/35657) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix multiple flaky tests [#35659](https://github.com/ClickHouse/ClickHouse/pull/35659) ([alesapin](https://github.com/alesapin)). +* Fix flaky test `01091_num_threads` [#35663](https://github.com/ClickHouse/ClickHouse/pull/35663) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Improve black check: show diff in the output [#35665](https://github.com/ClickHouse/ClickHouse/pull/35665) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Use float devision for avg after optimize_fuse_sum_count_avg [#35666](https://github.com/ClickHouse/ClickHouse/pull/35666) ([Vladimir C](https://github.com/vdimir)). +* Disable random settings in Fast Test [#35669](https://github.com/ClickHouse/ClickHouse/pull/35669) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix randomization of max_read_buffer_size [#35675](https://github.com/ClickHouse/ClickHouse/pull/35675) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove outdated links from CI [#35676](https://github.com/ClickHouse/ClickHouse/pull/35676) ([alesapin](https://github.com/alesapin)). +* Fix flaky tests 02149_read_in_order_fixed_prefix and 02177_issue_31009 [#35679](https://github.com/ClickHouse/ClickHouse/pull/35679) ([Kruglov Pavel](https://github.com/Avogar)). +* Rerun failed jobs only for failed workflowa [#35685](https://github.com/ClickHouse/ClickHouse/pull/35685) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix flaky 01037_polygon_dicts_correctness_fast [#35688](https://github.com/ClickHouse/ClickHouse/pull/35688) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fail CI checks in case of errors in checks (not failed tests) [#35718](https://github.com/ClickHouse/ClickHouse/pull/35718) ([alesapin](https://github.com/alesapin)). +* Try to fix test_global_overcommit_tracker flakyness [#35719](https://github.com/ClickHouse/ClickHouse/pull/35719) ([Dmitry Novik](https://github.com/novikd)). +* Try to run stateful tests in parallel [#35720](https://github.com/ClickHouse/ClickHouse/pull/35720) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Format `test_allowed_url_from_config/test.py` with black [#35721](https://github.com/ClickHouse/ClickHouse/pull/35721) ([Antonio Andelic](https://github.com/antonio2368)). +* Resurrect automatic labelling [#35722](https://github.com/ClickHouse/ClickHouse/pull/35722) ([alesapin](https://github.com/alesapin)). +* Revert "Fix enable LLVM for JIT compilation in CMake" [#35725](https://github.com/ClickHouse/ClickHouse/pull/35725) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Do not require writable source directory for generating krb5 error tables [#35734](https://github.com/ClickHouse/ClickHouse/pull/35734) ([Azat Khuzhin](https://github.com/azat)). +* Update ci checks server. [#35737](https://github.com/ClickHouse/ClickHouse/pull/35737) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Tests fixes [#35745](https://github.com/ClickHouse/ClickHouse/pull/35745) ([Azat Khuzhin](https://github.com/azat)). +* Use common IOThreadPool for S3 and URL [#35746](https://github.com/ClickHouse/ClickHouse/pull/35746) ([Antonio Andelic](https://github.com/antonio2368)). +* Fix stylecheck [#35754](https://github.com/ClickHouse/ClickHouse/pull/35754) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* extended a description of clickhouse-client compression parameter [#35758](https://github.com/ClickHouse/ClickHouse/pull/35758) ([Denny Crane](https://github.com/den-crane)). +* Resurrect build hash [#35766](https://github.com/ClickHouse/ClickHouse/pull/35766) ([alesapin](https://github.com/alesapin)). +* Fix 00484_preferred_max_column_in_block_size_bytes [#35768](https://github.com/ClickHouse/ClickHouse/pull/35768) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix enable LLVM for JIT compilation in CMake [#35770](https://github.com/ClickHouse/ClickHouse/pull/35770) ([Maksim Kita](https://github.com/kitaisreal)). +* clickhouse-keeper: correctly handle closed client connection [#35772](https://github.com/ClickHouse/ClickHouse/pull/35772) ([Azat Khuzhin](https://github.com/azat)). +* ci: replace directory system log tables artifacts with tsv [#35773](https://github.com/ClickHouse/ClickHouse/pull/35773) ([Azat Khuzhin](https://github.com/azat)). +* One more try to resurrect build hash [#35774](https://github.com/ClickHouse/ClickHouse/pull/35774) ([alesapin](https://github.com/alesapin)). +* Refactoring QueryPipeline [#35789](https://github.com/ClickHouse/ClickHouse/pull/35789) ([Amos Bird](https://github.com/amosbird)). +* Delete duplicate code [#35798](https://github.com/ClickHouse/ClickHouse/pull/35798) ([xiedeyantu](https://github.com/xiedeyantu)). +* remove unused variable [#35800](https://github.com/ClickHouse/ClickHouse/pull/35800) ([flynn](https://github.com/ucasfl)). +* Make `SortDescription::column_name` always non-empty [#35805](https://github.com/ClickHouse/ClickHouse/pull/35805) ([Nikita Taranov](https://github.com/nickitat)). +* Fix latest_error referenced before assignment [#35807](https://github.com/ClickHouse/ClickHouse/pull/35807) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Try to fix some integration tests [#35808](https://github.com/ClickHouse/ClickHouse/pull/35808) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Better error message for incorrect *MergeTree arguments [#35814](https://github.com/ClickHouse/ClickHouse/pull/35814) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix missing `noexcept(false)` flag on destructor which causes builds to fail [#35817](https://github.com/ClickHouse/ClickHouse/pull/35817) ([tcoyvwac](https://github.com/tcoyvwac)). +* Try remove unneed variable [#35833](https://github.com/ClickHouse/ClickHouse/pull/35833) ([flynn](https://github.com/ucasfl)). +* Refactoring of hints for column descriptor [#35852](https://github.com/ClickHouse/ClickHouse/pull/35852) ([Antonio Andelic](https://github.com/antonio2368)). +* Fix automatic bucket prefix for master [#35854](https://github.com/ClickHouse/ClickHouse/pull/35854) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Format changes for new docs [#35858](https://github.com/ClickHouse/ClickHouse/pull/35858) ([Rich Raposa](https://github.com/rfraposa)). +* Properly cancel the query after client format error [#35867](https://github.com/ClickHouse/ClickHouse/pull/35867) ([Azat Khuzhin](https://github.com/azat)). +* Drop modernize-replace-auto-ptr from .clang-tidy [#35868](https://github.com/ClickHouse/ClickHouse/pull/35868) ([Robert Schulze](https://github.com/rschu1ze)). +* fix service start with systemd [#35869](https://github.com/ClickHouse/ClickHouse/pull/35869) ([Denny Crane](https://github.com/den-crane)). +* fix postgres test [#35885](https://github.com/ClickHouse/ClickHouse/pull/35885) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update poco: Fix polling of socket with negative timeout (when poll() interrupted by EINTR) [#35899](https://github.com/ClickHouse/ClickHouse/pull/35899) ([Azat Khuzhin](https://github.com/azat)). +* More logs on unsuccessful part removal [#35904](https://github.com/ClickHouse/ClickHouse/pull/35904) ([alesapin](https://github.com/alesapin)). +* Executable user defined functions prevent executing during analysis [#35917](https://github.com/ClickHouse/ClickHouse/pull/35917) ([Maksim Kita](https://github.com/kitaisreal)). +* JIT ProfileEvents added test [#35918](https://github.com/ClickHouse/ClickHouse/pull/35918) ([Maksim Kita](https://github.com/kitaisreal)). +* Clang tidy issues [#35919](https://github.com/ClickHouse/ClickHouse/pull/35919) ([Deleted user](https://github.com/ghost)). +* Fix race in cached buffer [#35922](https://github.com/ClickHouse/ClickHouse/pull/35922) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix building ubuntu image from deb-repo [#35931](https://github.com/ClickHouse/ClickHouse/pull/35931) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Move credentials for integration tests into a separate file [#35936](https://github.com/ClickHouse/ClickHouse/pull/35936) ([Lalit Srikant](https://github.com/LAL2211)). +* [Snyk] Security upgrade node from 8 to 16.14.2 [#35942](https://github.com/ClickHouse/ClickHouse/pull/35942) ([Snyk bot](https://github.com/snyk-bot)). +* Fix keeper image for `arm64` [#35945](https://github.com/ClickHouse/ClickHouse/pull/35945) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Make some replicated DDL queries faster [#35946](https://github.com/ClickHouse/ClickHouse/pull/35946) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Update Contentsquare company case [#35964](https://github.com/ClickHouse/ClickHouse/pull/35964) ([François Violette](https://github.com/fviolette)). +* Small code changes in ZooKeeper client/Keeper code [#35967](https://github.com/ClickHouse/ClickHouse/pull/35967) ([Antonio Andelic](https://github.com/antonio2368)). +* parallel reading files for FileLog Engine [#35980](https://github.com/ClickHouse/ClickHouse/pull/35980) ([flynn](https://github.com/ucasfl)). +* Fix data race in StorageURL [#35984](https://github.com/ClickHouse/ClickHouse/pull/35984) ([Antonio Andelic](https://github.com/antonio2368)). +* Improve logs analysis in stress test checks [#35985](https://github.com/ClickHouse/ClickHouse/pull/35985) ([Azat Khuzhin](https://github.com/azat)). +* Print labels to log in run_check.py [#35991](https://github.com/ClickHouse/ClickHouse/pull/35991) ([Vladimir C](https://github.com/vdimir)). +* Set `ENABLE_BUILD_PATH_MAPPING` to `OFF` by default, if `CMAKE_BUILD_TYPE` is set to `Debug` [#35998](https://github.com/ClickHouse/ClickHouse/pull/35998) ([Denis Glazachev](https://github.com/traceon)). +* Make test 00159_parallel_formatting_tsv_and_friends.sh more stable [#36001](https://github.com/ClickHouse/ClickHouse/pull/36001) ([Kruglov Pavel](https://github.com/Avogar)). +* Update version_date.tsv after v22.3.3.44-lts [#36002](https://github.com/ClickHouse/ClickHouse/pull/36002) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Fix flaky test `test_system_merges/test.py::test_merge_simple` [#36004](https://github.com/ClickHouse/ClickHouse/pull/36004) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Another fix for settings randomization [#36005](https://github.com/ClickHouse/ClickHouse/pull/36005) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove some TestFlows that are irrelevant. [#36006](https://github.com/ClickHouse/ClickHouse/pull/36006) ([Lalit Srikant](https://github.com/LAL2211)). +* Fix 02248_nullable_custom_types_to_string [#36008](https://github.com/ClickHouse/ClickHouse/pull/36008) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix flaky test 00155_long_merges [#36009](https://github.com/ClickHouse/ClickHouse/pull/36009) ([Kruglov Pavel](https://github.com/Avogar)). +* Remove unused code from TestFlows [#36010](https://github.com/ClickHouse/ClickHouse/pull/36010) ([Lalit Srikant](https://github.com/LAL2211)). +* Fix data race in StorgeFileLog [#36015](https://github.com/ClickHouse/ClickHouse/pull/36015) ([flynn](https://github.com/ucasfl)). +* Fix Backward comapatibility check [#36026](https://github.com/ClickHouse/ClickHouse/pull/36026) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Use storage_snapshot for projection analysis [#36034](https://github.com/ClickHouse/ClickHouse/pull/36034) ([Amos Bird](https://github.com/amosbird)). +* Nightly coverity [#36044](https://github.com/ClickHouse/ClickHouse/pull/36044) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix typo [#36047](https://github.com/ClickHouse/ClickHouse/pull/36047) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky test [#36054](https://github.com/ClickHouse/ClickHouse/pull/36054) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove trailing whitespace in default client_name [#36056](https://github.com/ClickHouse/ClickHouse/pull/36056) ([Azat Khuzhin](https://github.com/azat)). +* clickhouse-client: fix query cancellation if any result was not received yet [#36057](https://github.com/ClickHouse/ClickHouse/pull/36057) ([Azat Khuzhin](https://github.com/azat)). +* Add debug and fix cancel_rerun lambda [#36064](https://github.com/ClickHouse/ClickHouse/pull/36064) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix style in run_check.py [#36065](https://github.com/ClickHouse/ClickHouse/pull/36065) ([Vladimir C](https://github.com/vdimir)). +* Try to turn off always green backward compatibility checks [#36067](https://github.com/ClickHouse/ClickHouse/pull/36067) ([Kruglov Pavel](https://github.com/Avogar)). +* Less dependencies from disks in buffers [#36070](https://github.com/ClickHouse/ClickHouse/pull/36070) ([alesapin](https://github.com/alesapin)). +* Backups: improve arguments handling and file removing [#36072](https://github.com/ClickHouse/ClickHouse/pull/36072) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add tonickkozlov to trusted users for auto ci run [#36080](https://github.com/ClickHouse/ClickHouse/pull/36080) ([nvartolomei](https://github.com/nvartolomei)). +* Try to avoid timeoutes in parallel parsing tests [#36083](https://github.com/ClickHouse/ClickHouse/pull/36083) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix BUILD_NAME issue in build jobs [#36085](https://github.com/ClickHouse/ClickHouse/pull/36085) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Remove incorrect assertion [#36086](https://github.com/ClickHouse/ClickHouse/pull/36086) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Get rid of fs paths keeper [#36106](https://github.com/ClickHouse/ClickHouse/pull/36106) ([alesapin](https://github.com/alesapin)). +* fix typo [#36110](https://github.com/ClickHouse/ClickHouse/pull/36110) ([Denny Crane](https://github.com/den-crane)). +* Fix scan report filename [#36112](https://github.com/ClickHouse/ClickHouse/pull/36112) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add new/delete overloads with align [#36125](https://github.com/ClickHouse/ClickHouse/pull/36125) ([Antonio Andelic](https://github.com/antonio2368)). +* Fix code style in registerBackupEnginesFileAndDisk.cpp [#36127](https://github.com/ClickHouse/ClickHouse/pull/36127) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix flaky tests 00971 and 01003 [#36128](https://github.com/ClickHouse/ClickHouse/pull/36128) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Update 01171_mv_select_insert_isolation_long.sh [#36131](https://github.com/ClickHouse/ClickHouse/pull/36131) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Build report [#36132](https://github.com/ClickHouse/ClickHouse/pull/36132) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix after [#35475](https://github.com/ClickHouse/ClickHouse/issues/35475) [#36135](https://github.com/ClickHouse/ClickHouse/pull/36135) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Minor fix for transactions [#36136](https://github.com/ClickHouse/ClickHouse/pull/36136) ([Alexander Tokmakov](https://github.com/tavplubix)). +* ProfileEvents fixes [#36137](https://github.com/ClickHouse/ClickHouse/pull/36137) ([Azat Khuzhin](https://github.com/azat)). +* Minor improvement for hung check [#36138](https://github.com/ClickHouse/ClickHouse/pull/36138) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Upload ccache for the first run in PR [#36139](https://github.com/ClickHouse/ClickHouse/pull/36139) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix test 02241_remote_filesystem_cache_on_insert for database Ordinary [#36150](https://github.com/ClickHouse/ClickHouse/pull/36150) ([Kseniia Sumarokova](https://github.com/kssenii)). +* remove unused array in h3Res0Indexes func [#36154](https://github.com/ClickHouse/ClickHouse/pull/36154) ([Bharat Nallan](https://github.com/bharatnc)). +* fix typo in cmake message [#36155](https://github.com/ClickHouse/ClickHouse/pull/36155) ([Bharat Nallan](https://github.com/bharatnc)). +* Fix UT error sometimes [#36157](https://github.com/ClickHouse/ClickHouse/pull/36157) ([zhanglistar](https://github.com/zhanglistar)). +* Fix a logical error left after debugging [#36159](https://github.com/ClickHouse/ClickHouse/pull/36159) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix mongodb test with new cert [#36161](https://github.com/ClickHouse/ClickHouse/pull/36161) ([alesapin](https://github.com/alesapin)). +* Some fixes for ReplicatedMergeTree [#36163](https://github.com/ClickHouse/ClickHouse/pull/36163) ([Alexander Tokmakov](https://github.com/tavplubix)). +* clickhouse-client: properly cancel query in case of error during formatting data [#36164](https://github.com/ClickHouse/ClickHouse/pull/36164) ([Azat Khuzhin](https://github.com/azat)). +* Fix flacky test 01161_all_system_tables under s3 storage [#36175](https://github.com/ClickHouse/ClickHouse/pull/36175) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Revert "Fix possible mutation stuck due to race with DROP_RANGE" [#36190](https://github.com/ClickHouse/ClickHouse/pull/36190) ([Azat Khuzhin](https://github.com/azat)). +* Use atomic instead of mutex + condvar in ParallelReadBuffer [#36192](https://github.com/ClickHouse/ClickHouse/pull/36192) ([Kruglov Pavel](https://github.com/Avogar)). +* Follow-up to [#36138](https://github.com/ClickHouse/ClickHouse/issues/36138) [#36194](https://github.com/ClickHouse/ClickHouse/pull/36194) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Revert reverting "Fix crash in ParallelReadBuffer" [#36212](https://github.com/ClickHouse/ClickHouse/pull/36212) ([Kruglov Pavel](https://github.com/Avogar)). +* Make stateless tests with s3 always green [#36214](https://github.com/ClickHouse/ClickHouse/pull/36214) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add Tyler Hannan to contributors [#36216](https://github.com/ClickHouse/ClickHouse/pull/36216) ([Tyler Hannan](https://github.com/tylerhannan)). +* Fix the repeated call of func to get the table when drop table [#36248](https://github.com/ClickHouse/ClickHouse/pull/36248) ([xiedeyantu](https://github.com/xiedeyantu)). +* Split test 01675_data_type_coroutine into 2 tests to prevent possible timeouts [#36250](https://github.com/ClickHouse/ClickHouse/pull/36250) ([Kruglov Pavel](https://github.com/Avogar)). +* Merge TRUSTED_CONTRIBUTORS in lambda and import in check [#36252](https://github.com/ClickHouse/ClickHouse/pull/36252) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix exception "File segment can be completed only by downloader" in tests [#36253](https://github.com/ClickHouse/ClickHouse/pull/36253) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix integration tests report parser [#36257](https://github.com/ClickHouse/ClickHouse/pull/36257) ([alesapin](https://github.com/alesapin)). +* fix crash when you use clickhouse-git-import with invalid parameter [#36262](https://github.com/ClickHouse/ClickHouse/pull/36262) ([zhanghuajie](https://github.com/zhanghuajieHIT)). +* Fix cancel-lambda for closed PRs [#36269](https://github.com/ClickHouse/ClickHouse/pull/36269) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Place new logic of schema inference in insert select from table function under setting [#36275](https://github.com/ClickHouse/ClickHouse/pull/36275) ([Kruglov Pavel](https://github.com/Avogar)). +* Remove trash from CPUID [#36310](https://github.com/ClickHouse/ClickHouse/pull/36310) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove remaining parts of Arcadia [#36312](https://github.com/ClickHouse/ClickHouse/pull/36312) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix clang-tidy-14 (part 1) [#36320](https://github.com/ClickHouse/ClickHouse/pull/36320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add dispatch trigger for debug CI [#36329](https://github.com/ClickHouse/ClickHouse/pull/36329) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Revert "support UNSIGNED modifier with unused parameters of INT" [#36337](https://github.com/ClickHouse/ClickHouse/pull/36337) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Simplify perf scripts by using schema inference [#36346](https://github.com/ClickHouse/ClickHouse/pull/36346) ([Azat Khuzhin](https://github.com/azat)). +* Do not randomize "priority" setting [#36358](https://github.com/ClickHouse/ClickHouse/pull/36358) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix integration tests [#36361](https://github.com/ClickHouse/ClickHouse/pull/36361) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove abbreviation [#36362](https://github.com/ClickHouse/ClickHouse/pull/36362) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix slow test [#36363](https://github.com/ClickHouse/ClickHouse/pull/36363) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix error in sanity checks [#36365](https://github.com/ClickHouse/ClickHouse/pull/36365) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add nodiscard attribute to immutable methods of `IColumn` to avoid errors [#36368](https://github.com/ClickHouse/ClickHouse/pull/36368) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix strange trash in Keeper [#36369](https://github.com/ClickHouse/ClickHouse/pull/36369) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* fix typo [#36374](https://github.com/ClickHouse/ClickHouse/pull/36374) ([flynn](https://github.com/ucasfl)). +* Fix test 01161_all_system_tables under s3 storage [#36388](https://github.com/ClickHouse/ClickHouse/pull/36388) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Minor refactor to prefer C++ Standard Algorithms [#36393](https://github.com/ClickHouse/ClickHouse/pull/36393) ([tcoyvwac](https://github.com/tcoyvwac)). +* jemalloc: enable logging in debug build [#36398](https://github.com/ClickHouse/ClickHouse/pull/36398) ([Azat Khuzhin](https://github.com/azat)). +* Respect library type for contrib libraries [#36399](https://github.com/ClickHouse/ClickHouse/pull/36399) ([Azat Khuzhin](https://github.com/azat)). +* Add more harmful variables for OSX [#36400](https://github.com/ClickHouse/ClickHouse/pull/36400) ([Azat Khuzhin](https://github.com/azat)). +* Activate clang-tidy warning "readability-container-contains" [#36402](https://github.com/ClickHouse/ClickHouse/pull/36402) ([Robert Schulze](https://github.com/rschu1ze)). +* Move down data_range construction in filterMarksUsingIndex and filterMarksUsingMergedIndex [#36410](https://github.com/ClickHouse/ClickHouse/pull/36410) ([Tian Xinhui](https://github.com/xinhuitian)). +* Fix stress test [#36450](https://github.com/ClickHouse/ClickHouse/pull/36450) ([Kruglov Pavel](https://github.com/Avogar)). + diff --git a/docs/changelogs/v22.4.4.7-stable.md b/docs/changelogs/v22.4.4.7-stable.md index 525c0de1341..71e077ac071 100644 --- a/docs/changelogs/v22.4.4.7-stable.md +++ b/docs/changelogs/v22.4.4.7-stable.md @@ -12,3 +12,7 @@ sidebar_label: 2022 * Backported in [#36524](https://github.com/ClickHouse/ClickHouse/issues/36524): Queries with aliases inside special operators returned parsing error (was broken in 22.1). Example: `SELECT substring('test' AS t, 1, 1)`. [#36167](https://github.com/ClickHouse/ClickHouse/pull/36167) ([Maksim Kita](https://github.com/kitaisreal)). * Backported in [#36673](https://github.com/ClickHouse/ClickHouse/issues/36673): Fix merges of wide parts with type `Object`. [#36637](https://github.com/ClickHouse/ClickHouse/pull/36637) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add passphrase for certificates [#36487](https://github.com/ClickHouse/ClickHouse/pull/36487) ([Filatenkov Artur](https://github.com/FArthur-cmd)). + diff --git a/docs/changelogs/v22.4.5.9-stable.md b/docs/changelogs/v22.4.5.9-stable.md index b5fffa56494..636ad2ed3ac 100644 --- a/docs/changelogs/v22.4.5.9-stable.md +++ b/docs/changelogs/v22.4.5.9-stable.md @@ -13,3 +13,7 @@ sidebar_label: 2022 * Backported in [#36794](https://github.com/ClickHouse/ClickHouse/issues/36794): Fix vertical merges in wide parts. Previously an exception `There is no column` can be thrown during merge. [#36707](https://github.com/ClickHouse/ClickHouse/pull/36707) ([Anton Popov](https://github.com/CurtizJ)). * Backported in [#36926](https://github.com/ClickHouse/ClickHouse/issues/36926): Fix bug in clickhouse-keeper which can lead to corrupted compressed log files in case of small load and restarts. [#36910](https://github.com/ClickHouse/ClickHouse/pull/36910) ([alesapin](https://github.com/alesapin)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Some fixes for replicated merge tree [#36909](https://github.com/ClickHouse/ClickHouse/pull/36909) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v22.5.1.2079-stable.md b/docs/changelogs/v22.5.1.2079-stable.md index 7614d678a2a..dfdcad64561 100644 --- a/docs/changelogs/v22.5.1.2079-stable.md +++ b/docs/changelogs/v22.5.1.2079-stable.md @@ -187,3 +187,204 @@ sidebar_label: 2022 * NO CL ENTRY: 'Revert "BLAKE3 hash function documentation"'. [#37092](https://github.com/ClickHouse/ClickHouse/pull/37092) ([Rich Raposa](https://github.com/rfraposa)). * NO CL ENTRY: 'Revert "Remove height restrictions from the query div in play web tool."'. [#37261](https://github.com/ClickHouse/ClickHouse/pull/37261) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Cleanup GROUPING SETS formating [#32999](https://github.com/ClickHouse/ClickHouse/pull/32999) ([Dmitry Novik](https://github.com/novikd)). +* Minor renames [#35272](https://github.com/ClickHouse/ClickHouse/pull/35272) ([Anton Popov](https://github.com/CurtizJ)). +* clickhouse-test: fix left-queries-check, to fix test log parser [#35865](https://github.com/ClickHouse/ClickHouse/pull/35865) ([Azat Khuzhin](https://github.com/azat)). +* Regression test for CHECKSUM_DOESNT_MATCH error because of per-column TTL bug [#35971](https://github.com/ClickHouse/ClickHouse/pull/35971) ([Azat Khuzhin](https://github.com/azat)). +* Fix performance tests [#35976](https://github.com/ClickHouse/ClickHouse/pull/35976) ([Maksim Kita](https://github.com/kitaisreal)). +* Backup for replicated tables and other improvements [#36198](https://github.com/ClickHouse/ClickHouse/pull/36198) ([Vitaly Baranov](https://github.com/vitlibar)). +* Trying to fix some trash in zero copy replication [#36299](https://github.com/ClickHouse/ClickHouse/pull/36299) ([alesapin](https://github.com/alesapin)). +* Speed up build a little [#36319](https://github.com/ClickHouse/ClickHouse/pull/36319) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Replace remove-erase idiom by C++20 erase()/erase_if() [#36348](https://github.com/ClickHouse/ClickHouse/pull/36348) ([Robert Schulze](https://github.com/rschu1ze)). +* Strict taskstats parser [#36351](https://github.com/ClickHouse/ClickHouse/pull/36351) ([Azat Khuzhin](https://github.com/azat)). +* Draft changelog for version 22.4 [#36397](https://github.com/ClickHouse/ClickHouse/pull/36397) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update int-uint.md [#36404](https://github.com/ClickHouse/ClickHouse/pull/36404) ([hardstep33](https://github.com/hardstep33)). +* Return back [#36126](https://github.com/ClickHouse/ClickHouse/issues/36126) [#36423](https://github.com/ClickHouse/ClickHouse/pull/36423) ([Anton Popov](https://github.com/CurtizJ)). +* Fixed warnings of clang-tidy check "bugprone-branch-clone" [#36431](https://github.com/ClickHouse/ClickHouse/pull/36431) ([Robert Schulze](https://github.com/rschu1ze)). +* Clang tidy fixes [#36444](https://github.com/ClickHouse/ClickHouse/pull/36444) ([Robert Schulze](https://github.com/rschu1ze)). +* fixed /common/example cow_compositions.cpp clone the inner column when there is no need [#36453](https://github.com/ClickHouse/ClickHouse/pull/36453) ([zombee0](https://github.com/zombee0)). +* Refactoring dependency for ParserAttachAccessEntity [#36468](https://github.com/ClickHouse/ClickHouse/pull/36468) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* more specific warning text about low disk space [#36472](https://github.com/ClickHouse/ClickHouse/pull/36472) ([Sergei Trifonov](https://github.com/serxa)). +* Fixed missing enum values for ClientInfo::Interface [#36482](https://github.com/ClickHouse/ClickHouse/pull/36482) ([Vasily Nemkov](https://github.com/Enmk)). +* Add passphrase for certificates [#36487](https://github.com/ClickHouse/ClickHouse/pull/36487) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Update version after release [#36502](https://github.com/ClickHouse/ClickHouse/pull/36502) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Followup on [#36172](https://github.com/ClickHouse/ClickHouse/issues/36172) password hash salt feature [#36510](https://github.com/ClickHouse/ClickHouse/pull/36510) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Update version_date.tsv after v22.4.2.1-stable [#36533](https://github.com/ClickHouse/ClickHouse/pull/36533) ([github-actions[bot]](https://github.com/apps/github-actions)). +* fix log should print 'from' path [#36535](https://github.com/ClickHouse/ClickHouse/pull/36535) ([xiedeyantu](https://github.com/xiedeyantu)). +* Add function bin tests for Int/UInt128/UInt256 [#36537](https://github.com/ClickHouse/ClickHouse/pull/36537) ([Memo](https://github.com/Joeywzr)). +* Fix 01161_all_system_tables [#36539](https://github.com/ClickHouse/ClickHouse/pull/36539) ([Antonio Andelic](https://github.com/antonio2368)). +* Update PULL_REQUEST_TEMPLATE.md [#36543](https://github.com/ClickHouse/ClickHouse/pull/36543) ([Ivan Blinkov](https://github.com/blinkov)). +* Fixed integer overflow in toStartOfInterval [#36546](https://github.com/ClickHouse/ClickHouse/pull/36546) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix issue with broken git ownership [#36548](https://github.com/ClickHouse/ClickHouse/pull/36548) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix version autodetection for docker_server.py [#36552](https://github.com/ClickHouse/ClickHouse/pull/36552) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Snyk fixes [#36554](https://github.com/ClickHouse/ClickHouse/pull/36554) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Use just index to split performance tests by group [#36559](https://github.com/ClickHouse/ClickHouse/pull/36559) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Update quantiledeterministic.md [#36560](https://github.com/ClickHouse/ClickHouse/pull/36560) ([ifinik](https://github.com/ifinik)). +* CodeQL Experiment - Exclude contrib Dependencies [#36561](https://github.com/ClickHouse/ClickHouse/pull/36561) ([Julio Jimenez](https://github.com/juliojimenez)). +* Small refactoring of Processors and QueryPipeline [#36579](https://github.com/ClickHouse/ClickHouse/pull/36579) ([Amos Bird](https://github.com/amosbird)). +* Simplify 01834_alias_columns_laziness_filimonov test [#36585](https://github.com/ClickHouse/ClickHouse/pull/36585) ([Azat Khuzhin](https://github.com/azat)). +* bash-completion: add completion for send_logs_level [#36586](https://github.com/ClickHouse/ClickHouse/pull/36586) ([Azat Khuzhin](https://github.com/azat)). +* client: add a message on reconnect (under warning log level) [#36587](https://github.com/ClickHouse/ClickHouse/pull/36587) ([Azat Khuzhin](https://github.com/azat)). +* Fix strange whitespace (or I do not know YAML) [#36590](https://github.com/ClickHouse/ClickHouse/pull/36590) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Strict taskstats parser (resubmit) [#36602](https://github.com/ClickHouse/ClickHouse/pull/36602) ([Azat Khuzhin](https://github.com/azat)). +* Exclude test `02271_fix_column_matcher_and_column_transformer` from bc check [#36607](https://github.com/ClickHouse/ClickHouse/pull/36607) ([alesapin](https://github.com/alesapin)). +* Ancient cmake version cleanup [#36612](https://github.com/ClickHouse/ClickHouse/pull/36612) ([Robert Schulze](https://github.com/rschu1ze)). +* Cleanup clang-tidy integration. [#36613](https://github.com/ClickHouse/ClickHouse/pull/36613) ([Robert Schulze](https://github.com/rschu1ze)). +* ParallelReadBuffer small improvements [#36619](https://github.com/ClickHouse/ClickHouse/pull/36619) ([Antonio Andelic](https://github.com/antonio2368)). +* Lambda cancel sync [#36622](https://github.com/ClickHouse/ClickHouse/pull/36622) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Version history benchmarks [#36628](https://github.com/ClickHouse/ClickHouse/pull/36628) ([Ilya Yatsishin](https://github.com/qoega)). +* fix typo [#36629](https://github.com/ClickHouse/ClickHouse/pull/36629) ([Sergei Trifonov](https://github.com/serxa)). +* Tiny Mutator code cleanup [#36630](https://github.com/ClickHouse/ClickHouse/pull/36630) ([Azat Khuzhin](https://github.com/azat)). +* Disble test postgresql replica with asan [#36631](https://github.com/ClickHouse/ClickHouse/pull/36631) ([alesapin](https://github.com/alesapin)). +* Minor Coverity defects fixes [#36632](https://github.com/ClickHouse/ClickHouse/pull/36632) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Properly wait for queries in 01502_long_log_tinylog_deadlock_race test [#36634](https://github.com/ClickHouse/ClickHouse/pull/36634) ([Azat Khuzhin](https://github.com/azat)). +* remove unneeded if statement [#36636](https://github.com/ClickHouse/ClickHouse/pull/36636) ([flynn](https://github.com/ucasfl)). +* Fix SortingStep::updateOutputStream() [#36638](https://github.com/ClickHouse/ClickHouse/pull/36638) ([Nikita Taranov](https://github.com/nickitat)). +* CodeQL - Run Daily Analysis [#36640](https://github.com/ClickHouse/ClickHouse/pull/36640) ([Julio Jimenez](https://github.com/juliojimenez)). +* Simplify check_branch, prefetch target branches [#36641](https://github.com/ClickHouse/ClickHouse/pull/36641) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Make backward compatible integration tests runner [#36643](https://github.com/ClickHouse/ClickHouse/pull/36643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix some flaky tests [#36644](https://github.com/ClickHouse/ClickHouse/pull/36644) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Update version_date.tsv after v22.4.3.3-stable [#36651](https://github.com/ClickHouse/ClickHouse/pull/36651) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Fix flaky test [#36652](https://github.com/ClickHouse/ClickHouse/pull/36652) ([Amos Bird](https://github.com/amosbird)). +* add missing pandas package [#36653](https://github.com/ClickHouse/ClickHouse/pull/36653) ([Ramazan Polat](https://github.com/ramazanpolat)). +* Fix style issue reported by black formatter [#36655](https://github.com/ClickHouse/ClickHouse/pull/36655) ([Alexander Gololobov](https://github.com/davenger)). +* Fix formatting in drop cache system query [#36658](https://github.com/ClickHouse/ClickHouse/pull/36658) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix stress test after 36639 [#36660](https://github.com/ClickHouse/ClickHouse/pull/36660) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update version_date.tsv after v22.3.4.20-lts [#36668](https://github.com/ClickHouse/ClickHouse/pull/36668) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Update 00170_s3_cache.sql [#36669](https://github.com/ClickHouse/ClickHouse/pull/36669) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Better version of SeekableReadBufferWithSize [#36676](https://github.com/ClickHouse/ClickHouse/pull/36676) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Better logs for virtual parts [#36680](https://github.com/ClickHouse/ClickHouse/pull/36680) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Check socket is connected in HTTPSession [#36683](https://github.com/ClickHouse/ClickHouse/pull/36683) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* fix typo [#36684](https://github.com/ClickHouse/ClickHouse/pull/36684) ([flynn](https://github.com/ucasfl)). +* Remove excessive logging from S3 [#36689](https://github.com/ClickHouse/ClickHouse/pull/36689) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Tests report [#36701](https://github.com/ClickHouse/ClickHouse/pull/36701) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Use correct nodes in test_keeper_znode_time [#36711](https://github.com/ClickHouse/ClickHouse/pull/36711) ([Antonio Andelic](https://github.com/antonio2368)). +* Reorganize source files so that base won't depend on Common [#36715](https://github.com/ClickHouse/ClickHouse/pull/36715) ([Amos Bird](https://github.com/amosbird)). +* tests: fix 02015_async_inserts_stress_long flakiness [#36731](https://github.com/ClickHouse/ClickHouse/pull/36731) ([Azat Khuzhin](https://github.com/azat)). +* Add an extra check for RAFT config change [#36736](https://github.com/ClickHouse/ClickHouse/pull/36736) ([Antonio Andelic](https://github.com/antonio2368)). +* Update 00170_s3_cache.sql [#36743](https://github.com/ClickHouse/ClickHouse/pull/36743) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ClickHouseDictionarySource context copy [#36744](https://github.com/ClickHouse/ClickHouse/pull/36744) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix build SeekableReadBufferWithSize -> SeekableReadBuffer [#36745](https://github.com/ClickHouse/ClickHouse/pull/36745) ([Vladimir C](https://github.com/vdimir)). +* Better error message from NuRaft in case of CRC mismatch [#36746](https://github.com/ClickHouse/ClickHouse/pull/36746) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix certs (finishing pr [#36457](https://github.com/ClickHouse/ClickHouse/issues/36457)) [#36747](https://github.com/ClickHouse/ClickHouse/pull/36747) ([Nikita Taranov](https://github.com/nickitat)). +* Another fix for Hung Check [#36752](https://github.com/ClickHouse/ClickHouse/pull/36752) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Deduce `UInt8` type for bools from json instead of `UInt64` [#36756](https://github.com/ClickHouse/ClickHouse/pull/36756) ([Anton Popov](https://github.com/CurtizJ)). +* Add small script for keeper check [#36758](https://github.com/ClickHouse/ClickHouse/pull/36758) ([alesapin](https://github.com/alesapin)). +* Fix ungrammatical error message [#36760](https://github.com/ClickHouse/ClickHouse/pull/36760) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix flaky test `test_ddl_worker_non_leader` [#36765](https://github.com/ClickHouse/ClickHouse/pull/36765) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix evaluateConstantExpression for subqueries [#36766](https://github.com/ClickHouse/ClickHouse/pull/36766) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix clickhouse-test for server without `is_all_data_sent` in system.processes [#36767](https://github.com/ClickHouse/ClickHouse/pull/36767) ([Azat Khuzhin](https://github.com/azat)). +* Init thread pools for clickhouse-local [#36778](https://github.com/ClickHouse/ClickHouse/pull/36778) ([Antonio Andelic](https://github.com/antonio2368)). +* Fix performance test [#36779](https://github.com/ClickHouse/ClickHouse/pull/36779) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Better exception messages while socket timeouts [#36781](https://github.com/ClickHouse/ClickHouse/pull/36781) ([Kruglov Pavel](https://github.com/Avogar)). +* Improve docs_check to be used in clickhouse-docs [#36796](https://github.com/ClickHouse/ClickHouse/pull/36796) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* pull poco #58 [#36798](https://github.com/ClickHouse/ClickHouse/pull/36798) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Tiny cleanup [#36799](https://github.com/ClickHouse/ClickHouse/pull/36799) ([Azat Khuzhin](https://github.com/azat)). +* Use mutex per worker in ParallelReadBuffer [#36801](https://github.com/ClickHouse/ClickHouse/pull/36801) ([Antonio Andelic](https://github.com/antonio2368)). +* Update version_date.tsv after v22.3.5.5-lts [#36805](https://github.com/ClickHouse/ClickHouse/pull/36805) ([github-actions[bot]](https://github.com/apps/github-actions)). +* play.html: add button to transpose table [#36811](https://github.com/ClickHouse/ClickHouse/pull/36811) ([Vladimir C](https://github.com/vdimir)). +* Fix style error in DocsCheck [#36813](https://github.com/ClickHouse/ClickHouse/pull/36813) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Set is_all_data_sent on exceptions too [#36816](https://github.com/ClickHouse/ClickHouse/pull/36816) ([Azat Khuzhin](https://github.com/azat)). +* Clang -Tidy Fixes [#36817](https://github.com/ClickHouse/ClickHouse/pull/36817) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Protection from incorrect build [#36819](https://github.com/ClickHouse/ClickHouse/pull/36819) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Avoid recreation of system.asynchronous_metric_log (due to difference in codec) [#36820](https://github.com/ClickHouse/ClickHouse/pull/36820) ([Azat Khuzhin](https://github.com/azat)). +* Removed forceful drop cache command, fix detached status state [#36825](https://github.com/ClickHouse/ClickHouse/pull/36825) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Log hash table's cache messages with TRACE level [#36830](https://github.com/ClickHouse/ClickHouse/pull/36830) ([Nikita Taranov](https://github.com/nickitat)). +* Cleanup: Remove switches for obsolete GCC version [#36831](https://github.com/ClickHouse/ClickHouse/pull/36831) ([Robert Schulze](https://github.com/rschu1ze)). +* Add functions from CREATE FUNCTION to completion [#36834](https://github.com/ClickHouse/ClickHouse/pull/36834) ([Azat Khuzhin](https://github.com/azat)). +* Validate that function had been passed in CREATE FUNCTION [#36835](https://github.com/ClickHouse/ClickHouse/pull/36835) ([Azat Khuzhin](https://github.com/azat)). +* [RFC] Remove unimplemented RAID1 support [#36836](https://github.com/ClickHouse/ClickHouse/pull/36836) ([Azat Khuzhin](https://github.com/azat)). +* Disable `merge_tree_metadata_cache` by default [#36838](https://github.com/ClickHouse/ClickHouse/pull/36838) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Replace uses of SFINAE by C++20 concepts [#36839](https://github.com/ClickHouse/ClickHouse/pull/36839) ([Robert Schulze](https://github.com/rschu1ze)). +* Fix performance test (4) [#36840](https://github.com/ClickHouse/ClickHouse/pull/36840) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove "preconditions" from performance tests (overengineering, unneeded feature) [#36841](https://github.com/ClickHouse/ClickHouse/pull/36841) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove inherited create() method + disallow copying of storages [#36844](https://github.com/ClickHouse/ClickHouse/pull/36844) ([Robert Schulze](https://github.com/rschu1ze)). +* tests: disable 02260_alter_compact_part_drop_nested_column for <=22.4 [#36845](https://github.com/ClickHouse/ClickHouse/pull/36845) ([Azat Khuzhin](https://github.com/azat)). +* Fix check black [#36850](https://github.com/ClickHouse/ClickHouse/pull/36850) ([Kruglov Pavel](https://github.com/Avogar)). +* Aggregator JIT compilation lock fix [#36852](https://github.com/ClickHouse/ClickHouse/pull/36852) ([Maksim Kita](https://github.com/kitaisreal)). +* Add Other Query Time Microseconds Profile Event [#36853](https://github.com/ClickHouse/ClickHouse/pull/36853) ([Ilya Yatsishin](https://github.com/qoega)). +* Reproduce and a little bit better fix for LC dict right offset. [#36856](https://github.com/ClickHouse/ClickHouse/pull/36856) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Terminate if S3 buffer is not finalized [#36857](https://github.com/ClickHouse/ClickHouse/pull/36857) ([alesapin](https://github.com/alesapin)). +* Activated a bunch of LLVM 12/13/14 clang-tidy warnings [#36862](https://github.com/ClickHouse/ClickHouse/pull/36862) ([Robert Schulze](https://github.com/rschu1ze)). +* Replace `Timeout` with `Tests not finished` [#36863](https://github.com/ClickHouse/ClickHouse/pull/36863) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Backup improvements [#36864](https://github.com/ClickHouse/ClickHouse/pull/36864) ([Vitaly Baranov](https://github.com/vitlibar)). +* Integration tests [#36866](https://github.com/ClickHouse/ClickHouse/pull/36866) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Relax cmake check for CFLAGS/CXXFLAGS/LDFLAGS [#36869](https://github.com/ClickHouse/ClickHouse/pull/36869) ([Azat Khuzhin](https://github.com/azat)). +* Fix insertion of complex JSONs with nested arrays [2] [#36873](https://github.com/ClickHouse/ClickHouse/pull/36873) ([Anton Popov](https://github.com/CurtizJ)). +* Add column to system.filesystem_cache_log [#36874](https://github.com/ClickHouse/ClickHouse/pull/36874) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Log into filesystem_cache_log when cache not even attempted [#36876](https://github.com/ClickHouse/ClickHouse/pull/36876) ([Kseniia Sumarokova](https://github.com/kssenii)). +* fix typo in comment [#36880](https://github.com/ClickHouse/ClickHouse/pull/36880) ([Sergei Trifonov](https://github.com/serxa)). +* Add some CurrentMetrics for fs cache [#36882](https://github.com/ClickHouse/ClickHouse/pull/36882) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add some asynchronous metrics for fs cache [#36883](https://github.com/ClickHouse/ClickHouse/pull/36883) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Save system logs in functionsl tests if server crashed [#36885](https://github.com/ClickHouse/ClickHouse/pull/36885) ([Alexander Tokmakov](https://github.com/tavplubix)). +* quick tmp fix for stress test [#36900](https://github.com/ClickHouse/ClickHouse/pull/36900) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Some fixes for replicated merge tree [#36909](https://github.com/ClickHouse/ClickHouse/pull/36909) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Invert .clang-tidy [#36911](https://github.com/ClickHouse/ClickHouse/pull/36911) ([Robert Schulze](https://github.com/rschu1ze)). +* Replace make_pair()/make_tuple() by pair()/tuple() [#36913](https://github.com/ClickHouse/ClickHouse/pull/36913) ([Robert Schulze](https://github.com/rschu1ze)). +* Remove log message on client reconnects (reverts [#36587](https://github.com/ClickHouse/ClickHouse/issues/36587)) [#36915](https://github.com/ClickHouse/ClickHouse/pull/36915) ([Azat Khuzhin](https://github.com/azat)). +* Fix profile events in fs cached buffer [#36916](https://github.com/ClickHouse/ClickHouse/pull/36916) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Benchmark was not loaded properly [#36918](https://github.com/ClickHouse/ClickHouse/pull/36918) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Force keeper snapshot equality on different replicas [#36947](https://github.com/ClickHouse/ClickHouse/pull/36947) ([alesapin](https://github.com/alesapin)). +* Remove strange code [#36951](https://github.com/ClickHouse/ClickHouse/pull/36951) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove nested exception [#36952](https://github.com/ClickHouse/ClickHouse/pull/36952) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Enable clangtidies [#36960](https://github.com/ClickHouse/ClickHouse/pull/36960) ([Robert Schulze](https://github.com/rschu1ze)). +* Improve stress tests report a little bit [#36961](https://github.com/ClickHouse/ClickHouse/pull/36961) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Follow up for ConcurrentHashJoin [#36970](https://github.com/ClickHouse/ClickHouse/pull/36970) ([Vladimir C](https://github.com/vdimir)). +* Fix formats docs [#36972](https://github.com/ClickHouse/ClickHouse/pull/36972) ([Kruglov Pavel](https://github.com/Avogar)). +* Support secure connection in clickhouse-test [#36977](https://github.com/ClickHouse/ClickHouse/pull/36977) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix installation_id filter, minimize docker images diff [#36978](https://github.com/ClickHouse/ClickHouse/pull/36978) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Update version_date.tsv after v22.3.6.5-lts [#36985](https://github.com/ClickHouse/ClickHouse/pull/36985) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Update version_date.tsv after v22.4.5.9-stable [#36986](https://github.com/ClickHouse/ClickHouse/pull/36986) ([github-actions[bot]](https://github.com/apps/github-actions)). +* Removing ReplacingWindowColumnTransform in WindowView [#36998](https://github.com/ClickHouse/ClickHouse/pull/36998) ([vxider](https://github.com/Vxider)). +* Merging [#34765](https://github.com/ClickHouse/ClickHouse/issues/34765) [#37002](https://github.com/ClickHouse/ClickHouse/pull/37002) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove CodeQL [#37006](https://github.com/ClickHouse/ClickHouse/pull/37006) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove obsolete code [#37009](https://github.com/ClickHouse/ClickHouse/pull/37009) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Try fix flaky test [#37010](https://github.com/ClickHouse/ClickHouse/pull/37010) ([Nikita Taranov](https://github.com/nickitat)). +* fix output error in LabelsCheck [#37016](https://github.com/ClickHouse/ClickHouse/pull/37016) ([wuxiaobai24](https://github.com/wuxiaobai24)). +* remove useless code [#37020](https://github.com/ClickHouse/ClickHouse/pull/37020) ([flynn](https://github.com/ucasfl)). +* Merging [#34932](https://github.com/ClickHouse/ClickHouse/issues/34932). [#37023](https://github.com/ClickHouse/ClickHouse/pull/37023) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix benchmark build code [#37025](https://github.com/ClickHouse/ClickHouse/pull/37025) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add benchmark script for testing clouds [#37027](https://github.com/ClickHouse/ClickHouse/pull/37027) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky integration mongodb test [#37035](https://github.com/ClickHouse/ClickHouse/pull/37035) ([Kruglov Pavel](https://github.com/Avogar)). +* Print stacks if we cannot terminate server in stress tests [#37052](https://github.com/ClickHouse/ClickHouse/pull/37052) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove last mentions of data streams [#37053](https://github.com/ClickHouse/ClickHouse/pull/37053) ([Anton Popov](https://github.com/CurtizJ)). +* Changelog script [#37057](https://github.com/ClickHouse/ClickHouse/pull/37057) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* This evening I started using Grammarly. [#37058](https://github.com/ClickHouse/ClickHouse/pull/37058) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* update sanity checks warning message text [#37063](https://github.com/ClickHouse/ClickHouse/pull/37063) ([Sergei Trifonov](https://github.com/serxa)). +* Continue fixing [#36199](https://github.com/ClickHouse/ClickHouse/issues/36199). [#37071](https://github.com/ClickHouse/ClickHouse/pull/37071) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* just fix a number [#37072](https://github.com/ClickHouse/ClickHouse/pull/37072) ([jiahui-97](https://github.com/jiahui-97)). +* Disable thread fuzzer after server restart [#37079](https://github.com/ClickHouse/ClickHouse/pull/37079) ([alesapin](https://github.com/alesapin)). +* Option to force cross_to_inner_join_rewrite [#37085](https://github.com/ClickHouse/ClickHouse/pull/37085) ([Vladimir C](https://github.com/vdimir)). +* fix wrong argument in proxy resolver of DiskS3 [#37100](https://github.com/ClickHouse/ClickHouse/pull/37100) ([flynn](https://github.com/ucasfl)). +* tests: fix 01119_optimize_trivial_insert_select (due to max_threads randomization) [#37101](https://github.com/ClickHouse/ClickHouse/pull/37101) ([Azat Khuzhin](https://github.com/azat)). +* Support SELECT query in WindowView [#37105](https://github.com/ClickHouse/ClickHouse/pull/37105) ([vxider](https://github.com/Vxider)). +* Fix workflow style check [#37113](https://github.com/ClickHouse/ClickHouse/pull/37113) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add check for columns size in Block::cloneWithColumns [#37124](https://github.com/ClickHouse/ClickHouse/pull/37124) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update documentation and defaults for memory overcommit [#37129](https://github.com/ClickHouse/ClickHouse/pull/37129) ([Dmitry Novik](https://github.com/novikd)). +* Update default remote fs read method in ReadSettings [#37130](https://github.com/ClickHouse/ClickHouse/pull/37130) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update Exception Message for allowed auth types [#37132](https://github.com/ClickHouse/ClickHouse/pull/37132) ([Marcelo Rodriguez](https://github.com/e-mars)). +* tests/integration: fix possible race for iptables user rules inside containers [#37138](https://github.com/ClickHouse/ClickHouse/pull/37138) ([Azat Khuzhin](https://github.com/azat)). +* Fix fasttest ccache permissions [#37143](https://github.com/ClickHouse/ClickHouse/pull/37143) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add const qualifier for few methods from Context [#37154](https://github.com/ClickHouse/ClickHouse/pull/37154) ([Azat Khuzhin](https://github.com/azat)). +* Reload listen_reuse_port/listen_backlog from config [#37156](https://github.com/ClickHouse/ClickHouse/pull/37156) ([Azat Khuzhin](https://github.com/azat)). +* Enable DNS cache for HTTPSClientSession. [#37157](https://github.com/ClickHouse/ClickHouse/pull/37157) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* fix async reads from remote fs internal setting not being always turned on [#37164](https://github.com/ClickHouse/ClickHouse/pull/37164) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Backups Improvements 5 [#37168](https://github.com/ClickHouse/ClickHouse/pull/37168) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add S3Requests metric [#37200](https://github.com/ClickHouse/ClickHouse/pull/37200) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix coverity build problem with LD_PRELOAD [#37203](https://github.com/ClickHouse/ClickHouse/pull/37203) ([Boris Kuschel](https://github.com/bkuschel)). +* Relax log level for some checks in check thread [#37208](https://github.com/ClickHouse/ClickHouse/pull/37208) ([alesapin](https://github.com/alesapin)). +* update poco [#37209](https://github.com/ClickHouse/ClickHouse/pull/37209) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Ignore harmful env variables in clickhouse binaries (reexec w/o them) [#37211](https://github.com/ClickHouse/ClickHouse/pull/37211) ([Azat Khuzhin](https://github.com/azat)). +* Fix wrong comment in IVolume.h [#37218](https://github.com/ClickHouse/ClickHouse/pull/37218) ([Sergei Trifonov](https://github.com/serxa)). +* Cmake cleanup pt2 [#37222](https://github.com/ClickHouse/ClickHouse/pull/37222) ([Robert Schulze](https://github.com/rschu1ze)). +* Temporarily fix flaky test `01825_type_json_insert_select.sql` [#37245](https://github.com/ClickHouse/ClickHouse/pull/37245) ([Anton Popov](https://github.com/CurtizJ)). +* Pass need_filter, has_null_map to joinRightColumns [#37256](https://github.com/ClickHouse/ClickHouse/pull/37256) ([Vladimir C](https://github.com/vdimir)). +* Activate more clangtidies [#37259](https://github.com/ClickHouse/ClickHouse/pull/37259) ([Robert Schulze](https://github.com/rschu1ze)). +* Fix docker cleaner in workflows [#37271](https://github.com/ClickHouse/ClickHouse/pull/37271) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* tidy build fix [#37291](https://github.com/ClickHouse/ClickHouse/pull/37291) ([Alexander Gololobov](https://github.com/davenger)). +* Update run-check.py to match PR template, add comments [#37301](https://github.com/ClickHouse/ClickHouse/pull/37301) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Release without prestable [#37306](https://github.com/ClickHouse/ClickHouse/pull/37306) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fixed typos [#37322](https://github.com/ClickHouse/ClickHouse/pull/37322) ([Alexander Gololobov](https://github.com/davenger)). + diff --git a/docs/changelogs/v22.6.1.1985-stable.md b/docs/changelogs/v22.6.1.1985-stable.md index 9c7ecc1dae3..eeb4078eb04 100644 --- a/docs/changelogs/v22.6.1.1985-stable.md +++ b/docs/changelogs/v22.6.1.1985-stable.md @@ -197,3 +197,164 @@ sidebar_label: 2022 * NO CL ENTRY: 'Revert "More parallel execution for queries with `FINAL`"'. [#38094](https://github.com/ClickHouse/ClickHouse/pull/38094) ([Alexander Tokmakov](https://github.com/tavplubix)). * NO CL ENTRY: 'Revert "Revert "add d3js based trace visualizer as gantt chart""'. [#38129](https://github.com/ClickHouse/ClickHouse/pull/38129) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix collision of S3 operation log revision [#34915](https://github.com/ClickHouse/ClickHouse/pull/34915) ([ianton-ru](https://github.com/ianton-ru)). +* Change timezone in stateless tests [#35231](https://github.com/ClickHouse/ClickHouse/pull/35231) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless code in ReplicatedMergeTreeRestartingThread [#36113](https://github.com/ClickHouse/ClickHouse/pull/36113) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge release and performance builds [#36538](https://github.com/ClickHouse/ClickHouse/pull/36538) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add support for preprocessing ZooKeeper operations in `clickhouse-keeper` [#37036](https://github.com/ClickHouse/ClickHouse/pull/37036) ([Antonio Andelic](https://github.com/antonio2368)). +* Fix jemalloc compatibility with LLVM libunwind [#37078](https://github.com/ClickHouse/ClickHouse/pull/37078) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Separate object storage operations from disks [#37139](https://github.com/ClickHouse/ClickHouse/pull/37139) ([alesapin](https://github.com/alesapin)). +* Add test for WATCH LIMIT query in WindowView [#37219](https://github.com/ClickHouse/ClickHouse/pull/37219) ([vxider](https://github.com/Vxider)). +* Improve changelog script [#37249](https://github.com/ClickHouse/ClickHouse/pull/37249) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Rework AccessControl's notifications. [#37269](https://github.com/ClickHouse/ClickHouse/pull/37269) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add ability to pass QueryKind via clickhouse-client/local (useful for debugging) [#37290](https://github.com/ClickHouse/ClickHouse/pull/37290) ([Azat Khuzhin](https://github.com/azat)). +* Various cmake cleanups [#37300](https://github.com/ClickHouse/ClickHouse/pull/37300) ([Robert Schulze](https://github.com/rschu1ze)). +* Try to fix some trash [#37303](https://github.com/ClickHouse/ClickHouse/pull/37303) ([Alexander Tokmakov](https://github.com/tavplubix)). +* [bug-fix] root_dir is not set in copyThroughBuffers [#37319](https://github.com/ClickHouse/ClickHouse/pull/37319) ([lingo-xp](https://github.com/lingo-xp)). +* Speed up test 00157_cache_dictionary [#37320](https://github.com/ClickHouse/ClickHouse/pull/37320) ([Kruglov Pavel](https://github.com/Avogar)). +* Add changelog for 22.5 [#37339](https://github.com/ClickHouse/ClickHouse/pull/37339) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update version after release [#37346](https://github.com/ClickHouse/ClickHouse/pull/37346) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Disable clang-tidy readability-identifier-length [#37347](https://github.com/ClickHouse/ClickHouse/pull/37347) ([Robert Schulze](https://github.com/rschu1ze)). +* Tags and release [#37348](https://github.com/ClickHouse/ClickHouse/pull/37348) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* New stable tag [#37349](https://github.com/ClickHouse/ClickHouse/pull/37349) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fixes for eigen library build [#37369](https://github.com/ClickHouse/ClickHouse/pull/37369) ([Alexander Gololobov](https://github.com/davenger)). +* Do not fail CI if events clickhouse is down [#37371](https://github.com/ClickHouse/ClickHouse/pull/37371) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Ugly hacks for performance.tgz artifacts [#37373](https://github.com/ClickHouse/ClickHouse/pull/37373) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix docker server images building [#37374](https://github.com/ClickHouse/ClickHouse/pull/37374) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix debug symbols in packages [#37379](https://github.com/ClickHouse/ClickHouse/pull/37379) ([Azat Khuzhin](https://github.com/azat)). +* Enable -Wc++98-compat-extra-semi [#37382](https://github.com/ClickHouse/ClickHouse/pull/37382) ([Robert Schulze](https://github.com/rschu1ze)). +* Mark all `operator bool()` as explicit [#37388](https://github.com/ClickHouse/ClickHouse/pull/37388) ([Anton Popov](https://github.com/CurtizJ)). +* Fixes for transactions [#37398](https://github.com/ClickHouse/ClickHouse/pull/37398) ([Alexander Tokmakov](https://github.com/tavplubix)). +* WindowTransform::moveRowNumber fix [#37400](https://github.com/ClickHouse/ClickHouse/pull/37400) ([Nikolay](https://github.com/ndchikin)). +* Fix possible memory leaks in system.certificates implementation [#37407](https://github.com/ClickHouse/ClickHouse/pull/37407) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Remove unused code in WindowView [#37426](https://github.com/ClickHouse/ClickHouse/pull/37426) ([vxider](https://github.com/Vxider)). +* Add join_algorithm='parallel_hash' to stress test [#37436](https://github.com/ClickHouse/ClickHouse/pull/37436) ([Vladimir C](https://github.com/vdimir)). +* Perf test for Norm and Distance functions for arrays and tuples [#37437](https://github.com/ClickHouse/ClickHouse/pull/37437) ([Alexander Gololobov](https://github.com/davenger)). +* FunctionBinaryRepresentation style fixes [#37438](https://github.com/ClickHouse/ClickHouse/pull/37438) ([Maksim Kita](https://github.com/kitaisreal)). +* CompressedWriteBuffer added comment [#37442](https://github.com/ClickHouse/ClickHouse/pull/37442) ([Maksim Kita](https://github.com/kitaisreal)). +* BinaryFunctionVectorized remove macro [#37447](https://github.com/ClickHouse/ClickHouse/pull/37447) ([Maksim Kita](https://github.com/kitaisreal)). +* RangeHashedDictionary added test [#37449](https://github.com/ClickHouse/ClickHouse/pull/37449) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix failed thread stateless tests [#37455](https://github.com/ClickHouse/ClickHouse/pull/37455) ([Kruglov Pavel](https://github.com/Avogar)). +* tests: fix table in 01710_projection_aggregation_in_order [#37468](https://github.com/ClickHouse/ClickHouse/pull/37468) ([Azat Khuzhin](https://github.com/azat)). +* Sync workflows paths for PR and DocsCheck [#37477](https://github.com/ClickHouse/ClickHouse/pull/37477) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Set compiler flags for ASM same as for C/CXX [#37479](https://github.com/ClickHouse/ClickHouse/pull/37479) ([Azat Khuzhin](https://github.com/azat)). +* Dynamic dispatch infrastructure style fixes [#37480](https://github.com/ClickHouse/ClickHouse/pull/37480) ([Maksim Kita](https://github.com/kitaisreal)). +* Refactorings of LIKE/MATCH code [#37491](https://github.com/ClickHouse/ClickHouse/pull/37491) ([Robert Schulze](https://github.com/rschu1ze)). +* Improve changelog.py script, get changelogs for 2021 [#37496](https://github.com/ClickHouse/ClickHouse/pull/37496) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Try to run aarch64 performance tests [#37497](https://github.com/ClickHouse/ClickHouse/pull/37497) ([Ilya Yatsishin](https://github.com/qoega)). +* Renamed arrayXXNorm/arrayXXDistance functions to XXNorm/XXDistance and fixed some overflow cases [#37502](https://github.com/ClickHouse/ClickHouse/pull/37502) ([Alexander Gololobov](https://github.com/davenger)). +* Bump cctz to 2022-05-15 [#37518](https://github.com/ClickHouse/ClickHouse/pull/37518) ([Robert Schulze](https://github.com/rschu1ze)). +* Add failed builds to the build report [#37527](https://github.com/ClickHouse/ClickHouse/pull/37527) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Functions normalizeUTF8 unstable performance tests fix [#37528](https://github.com/ClickHouse/ClickHouse/pull/37528) ([Maksim Kita](https://github.com/kitaisreal)). +* Use a separate mutex for query_factories_info in Context. [#37532](https://github.com/ClickHouse/ClickHouse/pull/37532) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Update SECURITY.md [#37541](https://github.com/ClickHouse/ClickHouse/pull/37541) ([Ivan Blinkov](https://github.com/blinkov)). +* Refactor read metrics and callbacks [#37543](https://github.com/ClickHouse/ClickHouse/pull/37543) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Follow-up to [#37398](https://github.com/ClickHouse/ClickHouse/issues/37398) [#37547](https://github.com/ClickHouse/ClickHouse/pull/37547) ([Alexander Tokmakov](https://github.com/tavplubix)). +* fix root CMakeLists.txt search [#37552](https://github.com/ClickHouse/ClickHouse/pull/37552) ([Sergei Trifonov](https://github.com/serxa)). +* Cleanup StorageHDFS (unused variables prevent build with clang 12) [#37554](https://github.com/ClickHouse/ClickHouse/pull/37554) ([Michail Safronov](https://github.com/msaf1980)). +* Fix failed assertion in cache [#37566](https://github.com/ClickHouse/ClickHouse/pull/37566) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Slightly better jepsen tests [#37568](https://github.com/ClickHouse/ClickHouse/pull/37568) ([alesapin](https://github.com/alesapin)). +* Remove unused MergeTreeDataMergerMutator::chooseMergeAlgorithm() [#37574](https://github.com/ClickHouse/ClickHouse/pull/37574) ([Azat Khuzhin](https://github.com/azat)). +* Remove useless files [#37579](https://github.com/ClickHouse/ClickHouse/pull/37579) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Flush and shutdown temporary table before drop [#37585](https://github.com/ClickHouse/ClickHouse/pull/37585) ([vxider](https://github.com/Vxider)). +* tests: fix 01317_no_password_in_command_line flakiness (and make it race free) [#37597](https://github.com/ClickHouse/ClickHouse/pull/37597) ([Azat Khuzhin](https://github.com/azat)). +* Use Jepsen worklow directly in PR workflow [#37599](https://github.com/ClickHouse/ClickHouse/pull/37599) ([Antonio Andelic](https://github.com/antonio2368)). +* Added LpNorm and LpDistance functions for arrays [#37601](https://github.com/ClickHouse/ClickHouse/pull/37601) ([Alexander Gololobov](https://github.com/davenger)). +* Turn on s3 tests to red mode [#37604](https://github.com/ClickHouse/ClickHouse/pull/37604) ([alesapin](https://github.com/alesapin)). +* Update FileCache.cpp [#37606](https://github.com/ClickHouse/ClickHouse/pull/37606) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix Clang-Tidy: remove std::move() from trivially-copyable object [#37609](https://github.com/ClickHouse/ClickHouse/pull/37609) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Fix clang-tidy-14, part 1 [#37612](https://github.com/ClickHouse/ClickHouse/pull/37612) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove margin in test reports and change the font [#37614](https://github.com/ClickHouse/ClickHouse/pull/37614) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix bugs in WindowView when using table identifier [#37619](https://github.com/ClickHouse/ClickHouse/pull/37619) ([vxider](https://github.com/Vxider)). +* Try fix tests [#37622](https://github.com/ClickHouse/ClickHouse/pull/37622) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix refactoring issue [#37629](https://github.com/ClickHouse/ClickHouse/pull/37629) ([alesapin](https://github.com/alesapin)). +* fix typo [#37637](https://github.com/ClickHouse/ClickHouse/pull/37637) ([flynn](https://github.com/ucasfl)). +* Fix excessive LIST requests to coordinator for transactions [#37640](https://github.com/ClickHouse/ClickHouse/pull/37640) ([Azat Khuzhin](https://github.com/azat)). +* Less flaky jbod rebalancer test [#37642](https://github.com/ClickHouse/ClickHouse/pull/37642) ([Amos Bird](https://github.com/amosbird)). +* Avoid useless context copy when building query interpreters [#37643](https://github.com/ClickHouse/ClickHouse/pull/37643) ([Amos Bird](https://github.com/amosbird)). +* Disable amqp-cpp and cassandra build if libuv is disabled [#37644](https://github.com/ClickHouse/ClickHouse/pull/37644) ([Robert Schulze](https://github.com/rschu1ze)). +* Fix errors of CheckTriviallyCopyableMove type [#37647](https://github.com/ClickHouse/ClickHouse/pull/37647) ([Heena Bansal](https://github.com/HeenaBansal2009)). +* Fix hung check [#37655](https://github.com/ClickHouse/ClickHouse/pull/37655) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix flaky test test_row_policy [#37658](https://github.com/ClickHouse/ClickHouse/pull/37658) ([Vitaly Baranov](https://github.com/vitlibar)). +* Trying to remove prewhere_info.alias_actions as they seem to always be included in prewhere_actions [#37661](https://github.com/ClickHouse/ClickHouse/pull/37661) ([Alexander Gololobov](https://github.com/davenger)). +* test for [#36995](https://github.com/ClickHouse/ClickHouse/issues/36995) [#37668](https://github.com/ClickHouse/ClickHouse/pull/37668) ([Denny Crane](https://github.com/den-crane)). +* Cleanup unused file [#37674](https://github.com/ClickHouse/ClickHouse/pull/37674) ([hongbin](https://github.com/xlwh)). +* more verbose sanity checks [#37676](https://github.com/ClickHouse/ClickHouse/pull/37676) ([Sergei Trifonov](https://github.com/serxa)). +* Fix `test_keeper_force_recovery*` tests [#37679](https://github.com/ClickHouse/ClickHouse/pull/37679) ([Antonio Andelic](https://github.com/antonio2368)). +* Display entires for failed tests at the top of report by default [#37704](https://github.com/ClickHouse/ClickHouse/pull/37704) ([Vladimir C](https://github.com/vdimir)). +* Make GROUPING function skip constant folding [#37710](https://github.com/ClickHouse/ClickHouse/pull/37710) ([Dmitry Novik](https://github.com/novikd)). +* Get rid of duplicate download_previous_release [#37712](https://github.com/ClickHouse/ClickHouse/pull/37712) ([Vladimir C](https://github.com/vdimir)). +* Fix possible flaky 00814_replicated_minimalistic_part_header_zookeeper [#37714](https://github.com/ClickHouse/ClickHouse/pull/37714) ([Vladimir C](https://github.com/vdimir)). +* Fix build with -DENABLE_LIBRARIES=0 [#37719](https://github.com/ClickHouse/ClickHouse/pull/37719) ([Robert Schulze](https://github.com/rschu1ze)). +* Update grpc submodule to PR 9 [#37721](https://github.com/ClickHouse/ClickHouse/pull/37721) ([Harry Lee](https://github.com/HarryLeeIBM)). +* Initialize `ParallelReadBuffer` after construction [#37726](https://github.com/ClickHouse/ClickHouse/pull/37726) ([Antonio Andelic](https://github.com/antonio2368)). +* Some fixes for tests [#37740](https://github.com/ClickHouse/ClickHouse/pull/37740) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add test 02315_pmj_union_ubsan_35857 [#37744](https://github.com/ClickHouse/ClickHouse/pull/37744) ([Vladimir C](https://github.com/vdimir)). +* Upgrade libxml2 to 2.9.14 [#37745](https://github.com/ClickHouse/ClickHouse/pull/37745) ([Suzy Wang](https://github.com/SuzyWangIBMer)). +* Implement new submodule sync to fix nightly scan [#37750](https://github.com/ClickHouse/ClickHouse/pull/37750) ([Boris Kuschel](https://github.com/bkuschel)). +* Return back [#37266](https://github.com/ClickHouse/ClickHouse/issues/37266) [#37755](https://github.com/ClickHouse/ClickHouse/pull/37755) ([Anton Popov](https://github.com/CurtizJ)). +* Fix flaky 01154_move_partition_long [#37763](https://github.com/ClickHouse/ClickHouse/pull/37763) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Moved `ClientConfigurationPerRequest` to ClickHouse [#37767](https://github.com/ClickHouse/ClickHouse/pull/37767) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Got rid of `S3AuthSigner` [#37769](https://github.com/ClickHouse/ClickHouse/pull/37769) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Fix empty target table id in WindowView [#37770](https://github.com/ClickHouse/ClickHouse/pull/37770) ([vxider](https://github.com/Vxider)). +* Typos [#37773](https://github.com/ClickHouse/ClickHouse/pull/37773) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Use multitarget framework for numZerosInTail implementation [#37777](https://github.com/ClickHouse/ClickHouse/pull/37777) ([Alexander Gololobov](https://github.com/davenger)). +* Dictionaries improve exception messages [#37778](https://github.com/ClickHouse/ClickHouse/pull/37778) ([Maksim Kita](https://github.com/kitaisreal)). +* Ignore PART_IS_TEMPORARILY_LOCKED error in BC check [#37788](https://github.com/ClickHouse/ClickHouse/pull/37788) ([Kruglov Pavel](https://github.com/Avogar)). +* Use clang compiler by default and cleanup cmake preload [#37796](https://github.com/ClickHouse/ClickHouse/pull/37796) ([Azat Khuzhin](https://github.com/azat)). +* Fix reading of empty S3 files [#37801](https://github.com/ClickHouse/ClickHouse/pull/37801) ([Azat Khuzhin](https://github.com/azat)). +* Metadata storage abstraction for Disks [#37804](https://github.com/ClickHouse/ClickHouse/pull/37804) ([alesapin](https://github.com/alesapin)). +* Minor follow-up to cache table: std::{vector-->array} [#37806](https://github.com/ClickHouse/ClickHouse/pull/37806) ([Robert Schulze](https://github.com/rschu1ze)). +* Delay schedule of the cleaning task in WindowView [#37807](https://github.com/ClickHouse/ClickHouse/pull/37807) ([vxider](https://github.com/Vxider)). +* Fix submodule changed label condition [#37825](https://github.com/ClickHouse/ClickHouse/pull/37825) ([Vladimir C](https://github.com/vdimir)). +* Fix build (packager) [#37829](https://github.com/ClickHouse/ClickHouse/pull/37829) ([Nikita Taranov](https://github.com/nickitat)). +* Executable task forward job callback [#37830](https://github.com/ClickHouse/ClickHouse/pull/37830) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix docs check (remove git clean for yarn.lock) [#37836](https://github.com/ClickHouse/ClickHouse/pull/37836) ([Vladimir C](https://github.com/vdimir)). +* Opentracing minimal changes for processors [#37837](https://github.com/ClickHouse/ClickHouse/pull/37837) ([Ilya Yatsishin](https://github.com/qoega)). +* Do not count covered unexpected parts on sanity check [#37839](https://github.com/ClickHouse/ClickHouse/pull/37839) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Print query in one line on fatal errors [#37840](https://github.com/ClickHouse/ClickHouse/pull/37840) ([Azat Khuzhin](https://github.com/azat)). +* Hotfix for minio in functional tests [#37845](https://github.com/ClickHouse/ClickHouse/pull/37845) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Hotfix for minio in functional tests 2 [#37846](https://github.com/ClickHouse/ClickHouse/pull/37846) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fire and clean windows in WindowView only when data is inserted [#37853](https://github.com/ClickHouse/ClickHouse/pull/37853) ([vxider](https://github.com/Vxider)). +* Don't try to kill empty list of containers in `integration/runner` [#37854](https://github.com/ClickHouse/ClickHouse/pull/37854) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Minor cleanup [#37866](https://github.com/ClickHouse/ClickHouse/pull/37866) ([Igor Nikonov](https://github.com/devcrafter)). +* Update protobuf files for kafka and rabbitmq [fix integration tests] [#37884](https://github.com/ClickHouse/ClickHouse/pull/37884) ([Nikita Taranov](https://github.com/nickitat)). +* Fix keeper converter test [#37890](https://github.com/ClickHouse/ClickHouse/pull/37890) ([alesapin](https://github.com/alesapin)). +* Fix stress hung because of attached MV with sleep() [#37892](https://github.com/ClickHouse/ClickHouse/pull/37892) ([Azat Khuzhin](https://github.com/azat)). +* Fix build [#37903](https://github.com/ClickHouse/ClickHouse/pull/37903) ([Nikita Taranov](https://github.com/nickitat)). +* Try fix `test_grpc_protocol/test.py::test_progress` [#37908](https://github.com/ClickHouse/ClickHouse/pull/37908) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Disable flaky tests with MaterializedPostgreSQL [#37924](https://github.com/ClickHouse/ClickHouse/pull/37924) ([Alexander Tokmakov](https://github.com/tavplubix)). +* ProcfsMetricsProvider fix typo [#37927](https://github.com/ClickHouse/ClickHouse/pull/37927) ([Maksim Kita](https://github.com/kitaisreal)). +* Function dictGet check arguments size [#37930](https://github.com/ClickHouse/ClickHouse/pull/37930) ([Maksim Kita](https://github.com/kitaisreal)). +* Hierarchical dictionaries performance test fix [#37953](https://github.com/ClickHouse/ClickHouse/pull/37953) ([Maksim Kita](https://github.com/kitaisreal)). +* Normalize UTF8 performance test fix [#37954](https://github.com/ClickHouse/ClickHouse/pull/37954) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix flaky `test_parts_delete_zookeeper` [#37957](https://github.com/ClickHouse/ClickHouse/pull/37957) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Better parsing of `versionId` in `S3::URI::URI` [#37964](https://github.com/ClickHouse/ClickHouse/pull/37964) ([Vladimir Chebotarev](https://github.com/excitoon)). +* More consistent use of platform macros [#37969](https://github.com/ClickHouse/ClickHouse/pull/37969) ([Robert Schulze](https://github.com/rschu1ze)). +* Always disable --color-diagnostics for LLVM [#37970](https://github.com/ClickHouse/ClickHouse/pull/37970) ([Robert Schulze](https://github.com/rschu1ze)). +* Try fix `test_consistent_parts_after_clone_replica` [#37976](https://github.com/ClickHouse/ClickHouse/pull/37976) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Generalize setup_minio.sh [#37979](https://github.com/ClickHouse/ClickHouse/pull/37979) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add checks for numChildren in Keeper [#37980](https://github.com/ClickHouse/ClickHouse/pull/37980) ([alesapin](https://github.com/alesapin)). +* PartialSortingTransform refactoring [#37992](https://github.com/ClickHouse/ClickHouse/pull/37992) ([Maksim Kita](https://github.com/kitaisreal)). +* Follow up on self-extracting-executable [#38011](https://github.com/ClickHouse/ClickHouse/pull/38011) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). +* Update docker run client command in docs [#38015](https://github.com/ClickHouse/ClickHouse/pull/38015) ([Vladimir C](https://github.com/vdimir)). +* Add another useful `docker exec` option [#38016](https://github.com/ClickHouse/ClickHouse/pull/38016) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Add release commit hash to image labels [#38020](https://github.com/ClickHouse/ClickHouse/pull/38020) ([Pavel Novitskiy](https://github.com/pnovitskiy)). +* Use correct version in `DiskObjectStorageMetadata` [#38021](https://github.com/ClickHouse/ClickHouse/pull/38021) ([Antonio Andelic](https://github.com/antonio2368)). +* Examples coroutines build fix [#38023](https://github.com/ClickHouse/ClickHouse/pull/38023) ([Maksim Kita](https://github.com/kitaisreal)). +* Use pdqsort instead of standard sort [#38025](https://github.com/ClickHouse/ClickHouse/pull/38025) ([Maksim Kita](https://github.com/kitaisreal)). +* Decimal: noexcept move constructor/assignment operator [#38026](https://github.com/ClickHouse/ClickHouse/pull/38026) ([Igor Nikonov](https://github.com/devcrafter)). +* tests: avoid "_csv.Error: field larger than field limit (131072)" error [#38030](https://github.com/ClickHouse/ClickHouse/pull/38030) ([Azat Khuzhin](https://github.com/azat)). +* More consts for disks [#38033](https://github.com/ClickHouse/ClickHouse/pull/38033) ([alesapin](https://github.com/alesapin)). +* Remove link to past event [#38045](https://github.com/ClickHouse/ClickHouse/pull/38045) ([Ivan Blinkov](https://github.com/blinkov)). +* Use workflow URL as "link" ref [#38057](https://github.com/ClickHouse/ClickHouse/pull/38057) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix a compile errors in self-extracting-executable (de)compressor [#38087](https://github.com/ClickHouse/ClickHouse/pull/38087) ([Robert Schulze](https://github.com/rschu1ze)). +* Small follow-up for FPC codec [#38089](https://github.com/ClickHouse/ClickHouse/pull/38089) ([Robert Schulze](https://github.com/rschu1ze)). +* Add dispatch to CherryPick action [#38095](https://github.com/ClickHouse/ClickHouse/pull/38095) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Fix: build error [#38098](https://github.com/ClickHouse/ClickHouse/pull/38098) ([Igor Nikonov](https://github.com/devcrafter)). +* Try random container name in integration tests runner [#38107](https://github.com/ClickHouse/ClickHouse/pull/38107) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Try to fix fpc codec [#38117](https://github.com/ClickHouse/ClickHouse/pull/38117) ([Anton Popov](https://github.com/CurtizJ)). +* Remove unused class member [#38120](https://github.com/ClickHouse/ClickHouse/pull/38120) ([Daohui Wang](https://github.com/wangdh15)). + From 45e3b9c2f3dab75c2a11bbe8d1f3882d967da253 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 23 Jun 2022 12:12:54 +0200 Subject: [PATCH 147/525] Regenerate v21.* changelogs with headers and `not for changelog` --- docs/changelogs/v21.1.1.5646-prestable.md | 204 +++++++++++++++ docs/changelogs/v21.1.2.15-stable.md | 7 + docs/changelogs/v21.1.3.32-stable.md | 11 + docs/changelogs/v21.1.4.46-stable.md | 12 + docs/changelogs/v21.1.5.4-stable.md | 7 + docs/changelogs/v21.1.6.13-stable.md | 7 + docs/changelogs/v21.1.7.1-stable.md | 7 + docs/changelogs/v21.1.8.30-stable.md | 12 + docs/changelogs/v21.1.9.41-stable.md | 12 + docs/changelogs/v21.10.1.8013-prestable.md | 130 ++++++++++ docs/changelogs/v21.10.2.15-stable.md | 21 ++ docs/changelogs/v21.10.3.9-stable.md | 17 ++ docs/changelogs/v21.10.4.26-stable.md | 11 + docs/changelogs/v21.10.5.3-stable.md | 7 + docs/changelogs/v21.10.6.2-stable.md | 17 ++ docs/changelogs/v21.11.1.8636-prestable.md | 282 ++++++++++++++++++++- docs/changelogs/v21.11.10.1-stable.md | 7 + docs/changelogs/v21.11.11.1-stable.md | 7 + docs/changelogs/v21.11.2.2-stable.md | 11 + docs/changelogs/v21.11.3.6-stable.md | 7 + docs/changelogs/v21.11.4.14-stable.md | 13 + docs/changelogs/v21.11.5.33-stable.md | 11 + docs/changelogs/v21.11.6.7-stable.md | 12 + docs/changelogs/v21.11.7.9-stable.md | 13 + docs/changelogs/v21.11.8.4-stable.md | 12 + docs/changelogs/v21.11.9.1-stable.md | 13 + docs/changelogs/v21.12.1.9017-prestable.md | 224 +++++++++++++++- docs/changelogs/v21.12.2.17-stable.md | 15 ++ docs/changelogs/v21.12.3.32-stable.md | 16 ++ docs/changelogs/v21.12.4.1-stable.md | 7 + docs/changelogs/v21.2.1.5869-prestable.md | 120 +++++++++ docs/changelogs/v21.2.10.48-stable.md | 11 + docs/changelogs/v21.2.2.8-stable.md | 123 ++++++++- docs/changelogs/v21.2.3.15-stable.md | 11 + docs/changelogs/v21.2.4.6-stable.md | 7 + docs/changelogs/v21.2.5.5-stable.md | 7 + docs/changelogs/v21.2.6.1-stable.md | 7 + docs/changelogs/v21.2.7.11-stable.md | 11 + docs/changelogs/v21.2.8.31-stable.md | 11 + docs/changelogs/v21.2.9.41-stable.md | 12 + docs/changelogs/v21.3.1.6185-prestable.md | 166 ++++++++++++ docs/changelogs/v21.3.10.1-lts.md | 11 + docs/changelogs/v21.3.11.5-lts.md | 7 + docs/changelogs/v21.3.12.2-lts.md | 13 + docs/changelogs/v21.3.13.9-lts.md | 12 + docs/changelogs/v21.3.14.1-lts.md | 11 + docs/changelogs/v21.3.15.4-stable.md | 11 + docs/changelogs/v21.3.16.5-lts.md | 19 ++ docs/changelogs/v21.3.17.2-lts.md | 7 + docs/changelogs/v21.3.18.4-lts.md | 14 + docs/changelogs/v21.3.19.1-lts.md | 12 + docs/changelogs/v21.3.2.5-lts.md | 168 ++++++++++++ docs/changelogs/v21.3.20.1-lts.md | 17 ++ docs/changelogs/v21.3.3.14-lts.md | 11 + docs/changelogs/v21.3.4.25-lts.md | 12 + docs/changelogs/v21.3.5.42-lts.md | 11 + docs/changelogs/v21.3.6.55-lts.md | 11 + docs/changelogs/v21.3.7.62-stable.md | 11 + docs/changelogs/v21.3.8.76-lts.md | 11 + docs/changelogs/v21.3.9.83-lts.md | 7 + docs/changelogs/v21.4.1.6422-prestable.md | 118 +++++++++ docs/changelogs/v21.4.2.10-prestable.md | 115 +++++++++ docs/changelogs/v21.4.3.21-stable.md | 11 + docs/changelogs/v21.4.4.30-stable.md | 7 + docs/changelogs/v21.4.5.46-stable.md | 13 + docs/changelogs/v21.4.6.55-stable.md | 7 + docs/changelogs/v21.4.7.3-stable.md | 11 + docs/changelogs/v21.5.1.6601-prestable.md | 102 +++++++- docs/changelogs/v21.5.2.25-prestable.md | 14 + docs/changelogs/v21.5.3.1-prestable.md | 11 + docs/changelogs/v21.5.4.6-prestable.md | 7 + docs/changelogs/v21.5.5.12-stable.md | 7 + docs/changelogs/v21.5.6.6-stable.md | 13 + docs/changelogs/v21.5.7.9-stable.md | 13 + docs/changelogs/v21.5.8.21-stable.md | 12 + docs/changelogs/v21.5.9.4-stable.md | 12 + docs/changelogs/v21.6.1.6891-prestable.md | 170 +++++++++++++ docs/changelogs/v21.6.2.7-prestable.md | 13 + docs/changelogs/v21.6.3.14-stable.md | 7 + docs/changelogs/v21.6.4.26-stable.md | 12 + docs/changelogs/v21.6.5.37-stable.md | 12 + docs/changelogs/v21.6.6.51-stable.md | 11 + docs/changelogs/v21.6.7.57-stable.md | 11 + docs/changelogs/v21.6.8.62-stable.md | 11 + docs/changelogs/v21.6.9.7-stable.md | 23 ++ docs/changelogs/v21.7.1.7283-prestable.md | 237 +++++++++++++++++ docs/changelogs/v21.7.10.4-stable.md | 15 ++ docs/changelogs/v21.7.11.3-stable.md | 13 + docs/changelogs/v21.7.2.7-stable.md | 12 + docs/changelogs/v21.7.3.14-stable.md | 11 + docs/changelogs/v21.7.4.18-stable.md | 7 + docs/changelogs/v21.7.5.29-stable.md | 14 + docs/changelogs/v21.7.6.39-stable.md | 11 + docs/changelogs/v21.7.7.47-stable.md | 16 ++ docs/changelogs/v21.7.8.58-stable.md | 12 + docs/changelogs/v21.7.9.7-stable.md | 19 ++ docs/changelogs/v21.8.1.7409-prestable.md | 66 +++++ docs/changelogs/v21.8.10.19-lts.md | 11 + docs/changelogs/v21.8.11.4-lts.md | 14 + docs/changelogs/v21.8.12.29-lts.md | 11 + docs/changelogs/v21.8.13.6-lts.md | 19 ++ docs/changelogs/v21.8.14.5-lts.md | 7 + docs/changelogs/v21.8.15.7-lts.md | 7 + docs/changelogs/v21.8.2.19-prestable.md | 14 + docs/changelogs/v21.8.3.44-lts.md | 21 ++ docs/changelogs/v21.8.4.51-lts.md | 7 + docs/changelogs/v21.8.5.7-lts.md | 20 ++ docs/changelogs/v21.8.6.15-lts.md | 16 ++ docs/changelogs/v21.8.7.22-lts.md | 13 + docs/changelogs/v21.8.8.29-lts.md | 7 + docs/changelogs/v21.8.9.13-lts.md | 13 + docs/changelogs/v21.9.1.8000-prestable.md | 213 ++++++++++++++++ docs/changelogs/v21.9.2.17-stable.md | 19 ++ docs/changelogs/v21.9.3.30-stable.md | 14 + docs/changelogs/v21.9.4.35-stable.md | 13 + docs/changelogs/v21.9.5.16-stable.md | 13 + docs/changelogs/v21.9.6.24-stable.md | 14 + 117 files changed, 3631 insertions(+), 5 deletions(-) diff --git a/docs/changelogs/v21.1.1.5646-prestable.md b/docs/changelogs/v21.1.1.5646-prestable.md index ec8abc8a05b..97b645c45f9 100644 --- a/docs/changelogs/v21.1.1.5646-prestable.md +++ b/docs/changelogs/v21.1.1.5646-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.1.5646-prestable FIXME as compared to v20.12.1.5236-prestable #### Backward Incompatible Change @@ -257,3 +264,200 @@ * NO CL ENTRY: 'Revert "Add metrics for part number in MergeTree in ClickHouse"'. [#18834](https://github.com/ClickHouse/ClickHouse/pull/18834) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * NO CL ENTRY: 'Fixed typo in metrics.md'. [#18920](https://github.com/ClickHouse/ClickHouse/pull/18920) ([Mark Frost](https://github.com/frostmark)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Minor change in query profiler [#16899](https://github.com/ClickHouse/ClickHouse/pull/16899) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove escaping from toString(std::string) [#17206](https://github.com/ClickHouse/ClickHouse/pull/17206) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix libunwind build for cmake 3.19+ [#17271](https://github.com/ClickHouse/ClickHouse/pull/17271) ([Azat Khuzhin](https://github.com/azat)). +* Fix AST formatting in log messages [#17274](https://github.com/ClickHouse/ClickHouse/pull/17274) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Tiny cleanup [#17275](https://github.com/ClickHouse/ClickHouse/pull/17275) ([Azat Khuzhin](https://github.com/azat)). +* Add a test for [#13990](https://github.com/ClickHouse/ClickHouse/issues/13990) [#17298](https://github.com/ClickHouse/ClickHouse/pull/17298) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fixed flaky test_storage_s3::test_custom_auth_headers [#17299](https://github.com/ClickHouse/ClickHouse/pull/17299) ([Pavel Kovalenko](https://github.com/Jokser)). +* Minor changes for ODBC storage [#17301](https://github.com/ClickHouse/ClickHouse/pull/17301) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merging [#16309](https://github.com/ClickHouse/ClickHouse/issues/16309) [#17309](https://github.com/ClickHouse/ClickHouse/pull/17309) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix some flaky tests [#17311](https://github.com/ClickHouse/ClickHouse/pull/17311) ([alesapin](https://github.com/alesapin)). +* Remove outdated test [#17361](https://github.com/ClickHouse/ClickHouse/pull/17361) ([Anton Popov](https://github.com/CurtizJ)). +* Added a test for what was always working [#17375](https://github.com/ClickHouse/ClickHouse/pull/17375) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test for mutation with empty partition [#17410](https://github.com/ClickHouse/ClickHouse/pull/17410) ([alesapin](https://github.com/alesapin)). +* Implement GRPC protocol (corrections) [#17435](https://github.com/ClickHouse/ClickHouse/pull/17435) ([Vitaly Baranov](https://github.com/vitlibar)). +* Drop include of the removed libbtrie in cmake rules [#17454](https://github.com/ClickHouse/ClickHouse/pull/17454) ([Azat Khuzhin](https://github.com/azat)). +* Merge expressions [#17458](https://github.com/ClickHouse/ClickHouse/pull/17458) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fail queries on unknown settings in perf tests [#17460](https://github.com/ClickHouse/ClickHouse/pull/17460) ([Azat Khuzhin](https://github.com/azat)). +* Adjust perf test thresholds [#17485](https://github.com/ClickHouse/ClickHouse/pull/17485) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix more flaky integration tests [#17486](https://github.com/ClickHouse/ClickHouse/pull/17486) ([alesapin](https://github.com/alesapin)). +* Fix data race on global BlockStreamProfileInfo in PullingAsyncPipelineExecutor [#17498](https://github.com/ClickHouse/ClickHouse/pull/17498) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix CMake generation and build for native Xcode and AppleClang [#17501](https://github.com/ClickHouse/ClickHouse/pull/17501) ([Denis Glazachev](https://github.com/traceon)). +* Fix bad test 01317_no_password_in_command_line.sh [#17506](https://github.com/ClickHouse/ClickHouse/pull/17506) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* fix spelling errors [#17527](https://github.com/ClickHouse/ClickHouse/pull/17527) ([flynn](https://github.com/ucasfl)). +* Fix toUnixTimestamp(Date()) error (use type name not column type name) [#17536](https://github.com/ClickHouse/ClickHouse/pull/17536) ([Azat Khuzhin](https://github.com/azat)). +* Add a test for StorageJoin and UUID [#17541](https://github.com/ClickHouse/ClickHouse/pull/17541) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update Cassandra for BoringSSL [#17544](https://github.com/ClickHouse/ClickHouse/pull/17544) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update Kafka for BoringSSL [#17545](https://github.com/ClickHouse/ClickHouse/pull/17545) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update MariaDB for BoringSSL [#17546](https://github.com/ClickHouse/ClickHouse/pull/17546) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update OpenLDAP for BoringSSL [#17547](https://github.com/ClickHouse/ClickHouse/pull/17547) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update AMQP for BoringSSL [#17548](https://github.com/ClickHouse/ClickHouse/pull/17548) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* getMemoryAmount: make code worse [#17556](https://github.com/ClickHouse/ClickHouse/pull/17556) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#12297](https://github.com/ClickHouse/ClickHouse/issues/12297) [#17557](https://github.com/ClickHouse/ClickHouse/pull/17557) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#9490](https://github.com/ClickHouse/ClickHouse/issues/9490) [#17561](https://github.com/ClickHouse/ClickHouse/pull/17561) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#11803](https://github.com/ClickHouse/ClickHouse/issues/11803) [#17562](https://github.com/ClickHouse/ClickHouse/pull/17562) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix mixed statements in 01018_ip_dictionary.sql [#17570](https://github.com/ClickHouse/ClickHouse/pull/17570) ([Vladimir C](https://github.com/vdimir)). +* Fix GRPC tests [#17597](https://github.com/ClickHouse/ClickHouse/pull/17597) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Port ClickHouse code to BoringSSL [#17606](https://github.com/ClickHouse/ClickHouse/pull/17606) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix the OpenTelemetry test [#17621](https://github.com/ClickHouse/ClickHouse/pull/17621) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Try to fix Yandex Synchronization check [#17634](https://github.com/ClickHouse/ClickHouse/pull/17634) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Use feature testing macro to test if char8_t is supported [#17645](https://github.com/ClickHouse/ClickHouse/pull/17645) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Make LockExceptionInThread/BlockerInThread nested [#17658](https://github.com/ClickHouse/ClickHouse/pull/17658) ([Azat Khuzhin](https://github.com/azat)). +* Mark grpc protocol's tests as flaky. [#17662](https://github.com/ClickHouse/ClickHouse/pull/17662) ([Vitaly Baranov](https://github.com/vitlibar)). +* Use feature testing macro once more [#17685](https://github.com/ClickHouse/ClickHouse/pull/17685) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Fix sequential number in TestKeeper [#17700](https://github.com/ClickHouse/ClickHouse/pull/17700) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Try fix arcadia build [#17720](https://github.com/ClickHouse/ClickHouse/pull/17720) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix arcadian build [#17781](https://github.com/ClickHouse/ClickHouse/pull/17781) ([Ivan](https://github.com/abyss7)). +* Fix a typo [#17791](https://github.com/ClickHouse/ClickHouse/pull/17791) ([achimbab](https://github.com/achimbab)). +* Attempt to use IOStream in AWS SDK [#17794](https://github.com/ClickHouse/ClickHouse/pull/17794) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Update StorageReplicatedMergeTree::waitForAllReplicasToProcessLogEntry to support waiting on foreign shards / tables [#17800](https://github.com/ClickHouse/ClickHouse/pull/17800) ([nvartolomei](https://github.com/nvartolomei)). +* Fix flaky test_ttl_move [#17805](https://github.com/ClickHouse/ClickHouse/pull/17805) ([Azat Khuzhin](https://github.com/azat)). +* Merging data type Map [#15806](https://github.com/ClickHouse/ClickHouse/issues/15806) [#17829](https://github.com/ClickHouse/ClickHouse/pull/17829) ([Anton Popov](https://github.com/CurtizJ)). +* Kill network container with retries in integration tests [#17856](https://github.com/ClickHouse/ClickHouse/pull/17856) ([alesapin](https://github.com/alesapin)). +* Merging [#17750](https://github.com/ClickHouse/ClickHouse/issues/17750) [#17874](https://github.com/ClickHouse/ClickHouse/pull/17874) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix bad code [#17878](https://github.com/ClickHouse/ClickHouse/pull/17878) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Retrieve logs from grpc [#17888](https://github.com/ClickHouse/ClickHouse/pull/17888) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fixed typo in log message format [#17900](https://github.com/ClickHouse/ClickHouse/pull/17900) ([Alexander Kazakov](https://github.com/Akazz)). +* Perf tests fixes [#17907](https://github.com/ClickHouse/ClickHouse/pull/17907) ([Azat Khuzhin](https://github.com/azat)). +* Better exception message for MaterializeMySQL [#17915](https://github.com/ClickHouse/ClickHouse/pull/17915) ([Winter Zhang](https://github.com/zhang2014)). +* Add additional columns size check for MergeTree in debug mode [#17919](https://github.com/ClickHouse/ClickHouse/pull/17919) ([alesapin](https://github.com/alesapin)). +* Small simplification of MergeTreeDataWriter [#17943](https://github.com/ClickHouse/ClickHouse/pull/17943) ([alesapin](https://github.com/alesapin)). +* Use ryu instead of dragonbox in Arcadia [#17963](https://github.com/ClickHouse/ClickHouse/pull/17963) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Tiny build changes [#17982](https://github.com/ClickHouse/ClickHouse/pull/17982) ([Azat Khuzhin](https://github.com/azat)). +* Fix arcadia [#17984](https://github.com/ClickHouse/ClickHouse/pull/17984) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* More forward declaration for generic headers [#17986](https://github.com/ClickHouse/ClickHouse/pull/17986) ([Azat Khuzhin](https://github.com/azat)). +* Remove some redundant includes to speed up build [#17988](https://github.com/ClickHouse/ClickHouse/pull/17988) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix flappy test_log_family_s3 [#18027](https://github.com/ClickHouse/ClickHouse/pull/18027) ([Pavel Kovalenko](https://github.com/Jokser)). +* encodeXMLComponent: rename files after [#17659](https://github.com/ClickHouse/ClickHouse/issues/17659) [#18033](https://github.com/ClickHouse/ClickHouse/pull/18033) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* HashTable erase added tests [#18047](https://github.com/ClickHouse/ClickHouse/pull/18047) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove obsolete settings [#18054](https://github.com/ClickHouse/ClickHouse/pull/18054) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix 01600_remerge_sort_lowered_memory_bytes_ratio flap [#18057](https://github.com/ClickHouse/ClickHouse/pull/18057) ([Azat Khuzhin](https://github.com/azat)). +* Remove test_keeper_server in perf tests [#18058](https://github.com/ClickHouse/ClickHouse/pull/18058) ([Azat Khuzhin](https://github.com/azat)). +* Add changelog for 20.12 [#18062](https://github.com/ClickHouse/ClickHouse/pull/18062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fixed unsafe ast rewrite in InterpreterSelectWithUnionQuery [#18064](https://github.com/ClickHouse/ClickHouse/pull/18064) ([Alexander Kazakov](https://github.com/Akazz)). +* Build utils in CI, at least in split build [#18066](https://github.com/ClickHouse/ClickHouse/pull/18066) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Do not pass -fsanitize-blacklist for gcc (it does not support it) for UBSAN [#18081](https://github.com/ClickHouse/ClickHouse/pull/18081) ([Azat Khuzhin](https://github.com/azat)). +* Try to fix Arcadia [#18084](https://github.com/ClickHouse/ClickHouse/pull/18084) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix dependencies for docker stateful_with_coverage [#18105](https://github.com/ClickHouse/ClickHouse/pull/18105) ([alesapin](https://github.com/alesapin)). +* Avoid using symlinks for top_level_domains [#18113](https://github.com/ClickHouse/ClickHouse/pull/18113) ([Azat Khuzhin](https://github.com/azat)). +* gcc10 sanitizers support [#18114](https://github.com/ClickHouse/ClickHouse/pull/18114) ([Azat Khuzhin](https://github.com/azat)). +* Port Kerberos to BoringSSL [#18128](https://github.com/ClickHouse/ClickHouse/pull/18128) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Try fix integration tests. [#18132](https://github.com/ClickHouse/ClickHouse/pull/18132) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Trying to fix 00620_optimize_on_nonleader_test [#18140](https://github.com/ClickHouse/ClickHouse/pull/18140) ([alesapin](https://github.com/alesapin)). +* Suppress error in 00993_system_parts_race_condition_drop_zookeeper [#18148](https://github.com/ClickHouse/ClickHouse/pull/18148) ([alesapin](https://github.com/alesapin)). +* Better exception message for unknown function [#18168](https://github.com/ClickHouse/ClickHouse/pull/18168) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Test watches for in-memory zookeeper [#18191](https://github.com/ClickHouse/ClickHouse/pull/18191) ([alesapin](https://github.com/alesapin)). +* Add support for LTS branches in backport automation [#18195](https://github.com/ClickHouse/ClickHouse/pull/18195) ([Ivan](https://github.com/abyss7)). +* Enable optimize_on_insert for MaterializeMySQL [#18198](https://github.com/ClickHouse/ClickHouse/pull/18198) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add one more case in zk test util [#18199](https://github.com/ClickHouse/ClickHouse/pull/18199) ([alesapin](https://github.com/alesapin)). +* More logs during quorum insert [#18200](https://github.com/ClickHouse/ClickHouse/pull/18200) ([alesapin](https://github.com/alesapin)). +* Update libc headers [#18202](https://github.com/ClickHouse/ClickHouse/pull/18202) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix watches processing in TestKeeper [#18217](https://github.com/ClickHouse/ClickHouse/pull/18217) ([alesapin](https://github.com/alesapin)). +* Add test for fixed bug with skip indices [#18219](https://github.com/ClickHouse/ClickHouse/pull/18219) ([Anton Popov](https://github.com/CurtizJ)). +* [wip] a prototype for window functions [#18222](https://github.com/ClickHouse/ClickHouse/pull/18222) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Return clickhouse-git-import [#18234](https://github.com/ClickHouse/ClickHouse/pull/18234) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* MADV_DONTNEED check in runtime for qemu (via patching jemalloc) [#18238](https://github.com/ClickHouse/ClickHouse/pull/18238) ([Azat Khuzhin](https://github.com/azat)). +* New Year preparations [#18274](https://github.com/ClickHouse/ClickHouse/pull/18274) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add powf and powl to glibc-compatibility [#18279](https://github.com/ClickHouse/ClickHouse/pull/18279) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless code [#18286](https://github.com/ClickHouse/ClickHouse/pull/18286) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky 01076_parallel_alter test [#18293](https://github.com/ClickHouse/ClickHouse/pull/18293) ([alesapin](https://github.com/alesapin)). +* Make single image for building coverage report [#18312](https://github.com/ClickHouse/ClickHouse/pull/18312) ([alesapin](https://github.com/alesapin)). +* Fixed flaky test [#18313](https://github.com/ClickHouse/ClickHouse/pull/18313) ([Vasily Nemkov](https://github.com/Enmk)). +* Perf test for ColumnMap [#18317](https://github.com/ClickHouse/ClickHouse/pull/18317) ([Vasily Nemkov](https://github.com/Enmk)). +* Add more tests to skip-list [#18318](https://github.com/ClickHouse/ClickHouse/pull/18318) ([Ivan](https://github.com/abyss7)). +* Add support for ANTLR inside clickhouse-test [#18319](https://github.com/ClickHouse/ClickHouse/pull/18319) ([Ivan](https://github.com/abyss7)). +* Fix clickhouse-test [#18330](https://github.com/ClickHouse/ClickHouse/pull/18330) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Provide extra constructor for Async metrics [#18331](https://github.com/ClickHouse/ClickHouse/pull/18331) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* tests: remove unused configs/scripts [#18334](https://github.com/ClickHouse/ClickHouse/pull/18334) ([Azat Khuzhin](https://github.com/azat)). +* Fix log message for memory tracking drift [#18335](https://github.com/ClickHouse/ClickHouse/pull/18335) ([Azat Khuzhin](https://github.com/azat)). +* try to pass ninja flags in deb package [#18348](https://github.com/ClickHouse/ClickHouse/pull/18348) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Remove useless code [#18350](https://github.com/ClickHouse/ClickHouse/pull/18350) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove unused code [#18366](https://github.com/ClickHouse/ClickHouse/pull/18366) ([Anton Popov](https://github.com/CurtizJ)). +* Return back some configs, that are used in Arcadia [#18370](https://github.com/ClickHouse/ClickHouse/pull/18370) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Return clickhouse-test-server for Arcadia needs [#18372](https://github.com/ClickHouse/ClickHouse/pull/18372) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Drop libnsl dependency (because of gRPC -> c-ares) [#18375](https://github.com/ClickHouse/ClickHouse/pull/18375) ([Azat Khuzhin](https://github.com/azat)). +* bump compatibility level to 10 for debian manifests [#18376](https://github.com/ClickHouse/ClickHouse/pull/18376) ([Azat Khuzhin](https://github.com/azat)). +* Do not override RULE_LAUNCH_COMPILE/RULE_LAUNCH_LINK in rocksdb [#18378](https://github.com/ClickHouse/ClickHouse/pull/18378) ([Azat Khuzhin](https://github.com/azat)). +* Make some perf tests faster on slower machines [#18386](https://github.com/ClickHouse/ClickHouse/pull/18386) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix exception text from Pipe.cpp [#18396](https://github.com/ClickHouse/ClickHouse/pull/18396) ([filimonov](https://github.com/filimonov)). +* Add test for already working code [#18405](https://github.com/ClickHouse/ClickHouse/pull/18405) ([alesapin](https://github.com/alesapin)). +* Try fix ya.make [#18409](https://github.com/ClickHouse/ClickHouse/pull/18409) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Use Port::Data instead of Chunk in LazyOutputFormat. [#18411](https://github.com/ClickHouse/ClickHouse/pull/18411) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Do not use watchdog when server is run from tty [#18433](https://github.com/ClickHouse/ClickHouse/pull/18433) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Raise an error if more than one key is provided to ip_dictionary [#18435](https://github.com/ClickHouse/ClickHouse/pull/18435) ([Vladimir C](https://github.com/vdimir)). +* Remove unused code [#18436](https://github.com/ClickHouse/ClickHouse/pull/18436) ([Anton Popov](https://github.com/CurtizJ)). +* Ignore SOURCE_DATE_EPOCH for newer ccache (4+) [#18441](https://github.com/ClickHouse/ClickHouse/pull/18441) ([Azat Khuzhin](https://github.com/azat)). +* Poco build fixes [#18443](https://github.com/ClickHouse/ClickHouse/pull/18443) ([Azat Khuzhin](https://github.com/azat)). +* [wip] some window function fixes [#18455](https://github.com/ClickHouse/ClickHouse/pull/18455) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Merging [#17858](https://github.com/ClickHouse/ClickHouse/issues/17858) [#18475](https://github.com/ClickHouse/ClickHouse/pull/18475) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Allow AppleClang builds [#18488](https://github.com/ClickHouse/ClickHouse/pull/18488) ([Denis Glazachev](https://github.com/traceon)). +* Build job pool tiny fixes [#18489](https://github.com/ClickHouse/ClickHouse/pull/18489) ([Azat Khuzhin](https://github.com/azat)). +* Add NuRaft to contrib [#18491](https://github.com/ClickHouse/ClickHouse/pull/18491) ([alesapin](https://github.com/alesapin)). +* Fix flaky test 01584_distributed_buffer_cannot_find_column [#18493](https://github.com/ClickHouse/ClickHouse/pull/18493) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* More correct error code on incorrect interserver protocol [#18515](https://github.com/ClickHouse/ClickHouse/pull/18515) ([alesapin](https://github.com/alesapin)). +* Merging [#18188](https://github.com/ClickHouse/ClickHouse/issues/18188) [#18516](https://github.com/ClickHouse/ClickHouse/pull/18516) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix usage of concurrent bounded queue in test keeper storage [#18522](https://github.com/ClickHouse/ClickHouse/pull/18522) ([alesapin](https://github.com/alesapin)). +* Fix cast to map from tuple of arrays with unequal sizes [#18523](https://github.com/ClickHouse/ClickHouse/pull/18523) ([Anton Popov](https://github.com/CurtizJ)). +* Sim/Min Hash fixes [#18524](https://github.com/ClickHouse/ClickHouse/pull/18524) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Use RLIMIT_DATA/RLIMIT_AS over RLIMIT_RSS for ENABLE_CHECK_HEAVY_BUILDS [#18537](https://github.com/ClickHouse/ClickHouse/pull/18537) ([Azat Khuzhin](https://github.com/azat)). +* Do not throw logical error from IPAddressDictionary ctor [#18548](https://github.com/ClickHouse/ClickHouse/pull/18548) ([Vladimir C](https://github.com/vdimir)). +* Check for CLICKHOUSE_CLIENT_OPT env before setting it [#18574](https://github.com/ClickHouse/ClickHouse/pull/18574) ([Ivan](https://github.com/abyss7)). +* Minor fixes for min/sim hash [#18595](https://github.com/ClickHouse/ClickHouse/pull/18595) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Change union_default_mode to throw exception [#18615](https://github.com/ClickHouse/ClickHouse/pull/18615) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fixed exit code of watchdog [#18616](https://github.com/ClickHouse/ClickHouse/pull/18616) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Small utils improvements (check-marks and compressor) [#18619](https://github.com/ClickHouse/ClickHouse/pull/18619) ([Azat Khuzhin](https://github.com/azat)). +* Fix too long perf test [#18634](https://github.com/ClickHouse/ClickHouse/pull/18634) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* More correct words about parser [#18646](https://github.com/ClickHouse/ClickHouse/pull/18646) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless support for symbolic port names [#18647](https://github.com/ClickHouse/ClickHouse/pull/18647) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Send fatal logs in all tests [#18648](https://github.com/ClickHouse/ClickHouse/pull/18648) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix AppleClang compilation - Remove auto in function parameters [#18674](https://github.com/ClickHouse/ClickHouse/pull/18674) ([Denis Glazachev](https://github.com/traceon)). +* compressor: remove extra check for seeking of input [#18675](https://github.com/ClickHouse/ClickHouse/pull/18675) ([Azat Khuzhin](https://github.com/azat)). +* Better linker name matcher [#18678](https://github.com/ClickHouse/ClickHouse/pull/18678) ([Amos Bird](https://github.com/amosbird)). +* Remove "harmful" function from mariadbclient [#18682](https://github.com/ClickHouse/ClickHouse/pull/18682) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix performance comparison [#18686](https://github.com/ClickHouse/ClickHouse/pull/18686) ([Azat Khuzhin](https://github.com/azat)). +* Simplify code of function "bar" [#18687](https://github.com/ClickHouse/ClickHouse/pull/18687) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge byteSize function [#18688](https://github.com/ClickHouse/ClickHouse/pull/18688) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Allow Replicated tables in Arcadia [#18697](https://github.com/ClickHouse/ClickHouse/pull/18697) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Bump replxx to fix loading of multi-line entries from the history [#18700](https://github.com/ClickHouse/ClickHouse/pull/18700) ([Azat Khuzhin](https://github.com/azat)). +* Add a test for already fixed issue [#18702](https://github.com/ClickHouse/ClickHouse/pull/18702) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report: applying non-zero offset to nullptr [#18703](https://github.com/ClickHouse/ClickHouse/pull/18703) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Enable more tests and see what will happen [#18704](https://github.com/ClickHouse/ClickHouse/pull/18704) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Added a test for [#13477](https://github.com/ClickHouse/ClickHouse/issues/13477) [#18708](https://github.com/ClickHouse/ClickHouse/pull/18708) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix fuzz errors in sumMap [#18710](https://github.com/ClickHouse/ClickHouse/pull/18710) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Use relaxed for flag in RemoteQueryExecutorReadContext. [#18715](https://github.com/ClickHouse/ClickHouse/pull/18715) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Do not throw from Parser [#18745](https://github.com/ClickHouse/ClickHouse/pull/18745) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove pink screen with confusing questions about Kerberos [#18748](https://github.com/ClickHouse/ClickHouse/pull/18748) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Don't allow conversion between UUID and numeric types [#18749](https://github.com/ClickHouse/ClickHouse/pull/18749) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove bad code in HashJoin [#18750](https://github.com/ClickHouse/ClickHouse/pull/18750) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* More robust stateful test [#18751](https://github.com/ClickHouse/ClickHouse/pull/18751) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test from [#15641](https://github.com/ClickHouse/ClickHouse/issues/15641) [#18753](https://github.com/ClickHouse/ClickHouse/pull/18753) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Mark some TestFlows as flaky [#18757](https://github.com/ClickHouse/ClickHouse/pull/18757) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove some headers [#18758](https://github.com/ClickHouse/ClickHouse/pull/18758) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a regression test for marks corruption [#18763](https://github.com/ClickHouse/ClickHouse/pull/18763) ([Azat Khuzhin](https://github.com/azat)). +* Use sigdescr_np() over sys_siglist (fixes glibc 2.32+ unbundled build) [#18764](https://github.com/ClickHouse/ClickHouse/pull/18764) ([Azat Khuzhin](https://github.com/azat)). +* Do not materialize block for FetchColumns header. [#18768](https://github.com/ClickHouse/ClickHouse/pull/18768) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Query Fuzzer: fix some cultural issues [#18770](https://github.com/ClickHouse/ClickHouse/pull/18770) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* more tests for simple aggregate functions in summingMT aggregatingMT try2 [#18771](https://github.com/ClickHouse/ClickHouse/pull/18771) ([Denny Crane](https://github.com/den-crane)). +* Check if XCODE_IDE is true and avoid enforcing ninja in that case [#18773](https://github.com/ClickHouse/ClickHouse/pull/18773) ([Denis Glazachev](https://github.com/traceon)). +* Respect memory tracker blocker level during deallocations [#18774](https://github.com/ClickHouse/ClickHouse/pull/18774) ([Azat Khuzhin](https://github.com/azat)). +* Do not allow Fuzzer to enable LLVM [#18777](https://github.com/ClickHouse/ClickHouse/pull/18777) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add sanity checks for Sim/Min hash arguments [#18803](https://github.com/ClickHouse/ClickHouse/pull/18803) ([Azat Khuzhin](https://github.com/azat)). +* Respect MINSIGSTKSZ for alternative stack to fix under aarch64 [#18832](https://github.com/ClickHouse/ClickHouse/pull/18832) ([Azat Khuzhin](https://github.com/azat)). +* Do not check bit flips for big buffers (since the size can be corrupted) [#18852](https://github.com/ClickHouse/ClickHouse/pull/18852) ([Azat Khuzhin](https://github.com/azat)). +* Correctly override default settings remotely [#18857](https://github.com/ClickHouse/ClickHouse/pull/18857) ([Amos Bird](https://github.com/amosbird)). +* Import strsignal from Musl [#18858](https://github.com/ClickHouse/ClickHouse/pull/18858) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Storage features improvements [#18870](https://github.com/ClickHouse/ClickHouse/pull/18870) ([Azat Khuzhin](https://github.com/azat)). +* Fix integrity check [#18871](https://github.com/ClickHouse/ClickHouse/pull/18871) ([Azat Khuzhin](https://github.com/azat)). +* Minor fix in backport script [#18873](https://github.com/ClickHouse/ClickHouse/pull/18873) ([Ivan](https://github.com/abyss7)). +* Query Fuzzer: return fail fast semantics [#18880](https://github.com/ClickHouse/ClickHouse/pull/18880) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless headers [#18881](https://github.com/ClickHouse/ClickHouse/pull/18881) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Use time_macros over unset SOURCE_DATE_EPOCH in ccache 4.2 (unreleased) [#18885](https://github.com/ClickHouse/ClickHouse/pull/18885) ([Azat Khuzhin](https://github.com/azat)). +* Remove useless code [#18886](https://github.com/ClickHouse/ClickHouse/pull/18886) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove TestFlows due to timeouts [#18888](https://github.com/ClickHouse/ClickHouse/pull/18888) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless headers [#18892](https://github.com/ClickHouse/ClickHouse/pull/18892) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Drop RESTART REPLICAS from stateless tests to avoid locking lots of mutexes [#18897](https://github.com/ClickHouse/ClickHouse/pull/18897) ([Azat Khuzhin](https://github.com/azat)). + diff --git a/docs/changelogs/v21.1.2.15-stable.md b/docs/changelogs/v21.1.2.15-stable.md index 205794b94c2..ac76c79ea4b 100644 --- a/docs/changelogs/v21.1.2.15-stable.md +++ b/docs/changelogs/v21.1.2.15-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.2.15-stable FIXME as compared to v21.1.1.5646-prestable #### Improvement diff --git a/docs/changelogs/v21.1.3.32-stable.md b/docs/changelogs/v21.1.3.32-stable.md index ea4c9fd0fe6..85e7162a509 100644 --- a/docs/changelogs/v21.1.3.32-stable.md +++ b/docs/changelogs/v21.1.3.32-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.3.32-stable FIXME as compared to v21.1.2.15-stable #### Bug Fix @@ -29,3 +36,7 @@ * Backported in [#19938](https://github.com/ClickHouse/ClickHouse/issues/19938): Deadlock was possible if system.text_log is enabled. This fixes [#19874](https://github.com/ClickHouse/ClickHouse/issues/19874). [#19875](https://github.com/ClickHouse/ClickHouse/pull/19875) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Backported in [#19934](https://github.com/ClickHouse/ClickHouse/issues/19934): BloomFilter index crash fix. Fixes [#19757](https://github.com/ClickHouse/ClickHouse/issues/19757). [#19884](https://github.com/ClickHouse/ClickHouse/pull/19884) ([Maksim Kita](https://github.com/kitaisreal)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Update Dragonbox [#19218](https://github.com/ClickHouse/ClickHouse/pull/19218) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + diff --git a/docs/changelogs/v21.1.4.46-stable.md b/docs/changelogs/v21.1.4.46-stable.md index 3033c5edd21..cc9010880e4 100644 --- a/docs/changelogs/v21.1.4.46-stable.md +++ b/docs/changelogs/v21.1.4.46-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.4.46-stable FIXME as compared to v21.1.3.32-stable #### Bug Fix @@ -20,3 +27,8 @@ * NO CL ENTRY: 'Revert "Backport [#20224](https://github.com/ClickHouse/ClickHouse/issues/20224) to 21.1: Fix access control manager destruction order"'. [#20395](https://github.com/ClickHouse/ClickHouse/pull/20395) ([alesapin](https://github.com/alesapin)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Use fixed version of confluent-kafka library in integration tests [#20124](https://github.com/ClickHouse/ClickHouse/pull/20124) ([alesapin](https://github.com/alesapin)). +* Handle syntax error for ARRAY JOIN with no args [#20223](https://github.com/ClickHouse/ClickHouse/pull/20223) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v21.1.5.4-stable.md b/docs/changelogs/v21.1.5.4-stable.md index c67724a4512..277814b74be 100644 --- a/docs/changelogs/v21.1.5.4-stable.md +++ b/docs/changelogs/v21.1.5.4-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.5.4-stable FIXME as compared to v21.1.4.46-stable #### Bug Fix diff --git a/docs/changelogs/v21.1.6.13-stable.md b/docs/changelogs/v21.1.6.13-stable.md index 547cd38a06f..5308dc43dea 100644 --- a/docs/changelogs/v21.1.6.13-stable.md +++ b/docs/changelogs/v21.1.6.13-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.6.13-stable FIXME as compared to v21.1.5.4-stable #### Bug Fix diff --git a/docs/changelogs/v21.1.7.1-stable.md b/docs/changelogs/v21.1.7.1-stable.md index 371efb8d5df..0e66e1bc623 100644 --- a/docs/changelogs/v21.1.7.1-stable.md +++ b/docs/changelogs/v21.1.7.1-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.7.1-stable FIXME as compared to v21.1.6.13-stable #### Bug Fix diff --git a/docs/changelogs/v21.1.8.30-stable.md b/docs/changelogs/v21.1.8.30-stable.md index 0859cc8ccbd..f9776ce4810 100644 --- a/docs/changelogs/v21.1.8.30-stable.md +++ b/docs/changelogs/v21.1.8.30-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.8.30-stable FIXME as compared to v21.1.7.1-stable #### Bug Fix @@ -27,3 +34,8 @@ * Backported in [#22700](https://github.com/ClickHouse/ClickHouse/issues/22700): Fix wait for mutations on several replicas for ReplicatedMergeTree table engines. Previously, mutation/alter query may finish before mutation actually executed on other replicas. [#22669](https://github.com/ClickHouse/ClickHouse/pull/22669) ([alesapin](https://github.com/alesapin)). * Backported in [#22739](https://github.com/ClickHouse/ClickHouse/issues/22739): Fix possible hangs in zk requests in case of OOM exception. Fixes [#22438](https://github.com/ClickHouse/ClickHouse/issues/22438). [#22684](https://github.com/ClickHouse/ClickHouse/pull/22684) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* LRUCache fix exception unsafe element insertion [#21891](https://github.com/ClickHouse/ClickHouse/pull/21891) ([Maksim Kita](https://github.com/kitaisreal)). +* Mannual backport of [#21429](https://github.com/ClickHouse/ClickHouse/issues/21429) in 21.1 [#22506](https://github.com/ClickHouse/ClickHouse/pull/22506) ([Kruglov Pavel](https://github.com/Avogar)). + diff --git a/docs/changelogs/v21.1.9.41-stable.md b/docs/changelogs/v21.1.9.41-stable.md index 2a94073b810..bef4385e2cb 100644 --- a/docs/changelogs/v21.1.9.41-stable.md +++ b/docs/changelogs/v21.1.9.41-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.1.9.41-stable FIXME as compared to v21.1.8.30-stable #### Improvement @@ -15,3 +22,8 @@ #### Build/Testing/Packaging Improvement * Backported in [#22813](https://github.com/ClickHouse/ClickHouse/issues/22813): Allow to start up with modified binary under gdb. In previous version if you set up breakpoint in gdb before start, server will refuse to start up due to failed integrity check. [#21258](https://github.com/ClickHouse/ClickHouse/pull/21258) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Check for EINTR in epoll_wait [#20958](https://github.com/ClickHouse/ClickHouse/pull/20958) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* FileDictionarySource fix absolute file path [#22822](https://github.com/ClickHouse/ClickHouse/pull/22822) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.10.1.8013-prestable.md b/docs/changelogs/v21.10.1.8013-prestable.md index d3e06c056cf..506f3642287 100644 --- a/docs/changelogs/v21.10.1.8013-prestable.md +++ b/docs/changelogs/v21.10.1.8013-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.10.1.8013-prestable FIXME as compared to v21.9.1.7770-prestable #### Backward Incompatible Change @@ -136,3 +143,126 @@ * NO CL ENTRY: 'Revert "Add test for [#13398](https://github.com/ClickHouse/ClickHouse/issues/13398)"'. [#28274](https://github.com/ClickHouse/ClickHouse/pull/28274) ([Alexander Tokmakov](https://github.com/tavplubix)). * NO CL ENTRY: 'fix minor typo'. [#28629](https://github.com/ClickHouse/ClickHouse/pull/28629) ([flynn](https://github.com/ucasfl)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Experiment with asynchronous readers [#26791](https://github.com/ClickHouse/ClickHouse/pull/26791) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Introduce sessions [#26864](https://github.com/ClickHouse/ClickHouse/pull/26864) ([Vitaly Baranov](https://github.com/vitlibar)). +* FILTER clause for aggregate functions [#27036](https://github.com/ClickHouse/ClickHouse/pull/27036) ([Nikita Taranov](https://github.com/nickitat)). +* Add test for parsing maps with integer keys [#27146](https://github.com/ClickHouse/ClickHouse/pull/27146) ([Anton Popov](https://github.com/CurtizJ)). +* S3 disk unstable reads test [#27176](https://github.com/ClickHouse/ClickHouse/pull/27176) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Refactor NotJoined [#27299](https://github.com/ClickHouse/ClickHouse/pull/27299) ([Vladimir C](https://github.com/vdimir)). +* Accept error code by error name in client test hints [#27430](https://github.com/ClickHouse/ClickHouse/pull/27430) ([Azat Khuzhin](https://github.com/azat)). +* Break some tests [#27529](https://github.com/ClickHouse/ClickHouse/pull/27529) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove the remains of ANTLR in the tests [#27637](https://github.com/ClickHouse/ClickHouse/pull/27637) ([Raúl Marín](https://github.com/Algunenano)). +* Disable memory tracking for roaring bitmaps on Mac OS [#27681](https://github.com/ClickHouse/ClickHouse/pull/27681) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Use only SSE2 in "unbundled" build [#27683](https://github.com/ClickHouse/ClickHouse/pull/27683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove trash [#27685](https://github.com/ClickHouse/ClickHouse/pull/27685) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix stress test in `~CompressedWriteBuffer` [#27686](https://github.com/ClickHouse/ClickHouse/pull/27686) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Mark tests for `DatabaseReplicated` as green [#27688](https://github.com/ClickHouse/ClickHouse/pull/27688) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Removed DenseHashMap, DenseHashSet [#27690](https://github.com/ClickHouse/ClickHouse/pull/27690) ([Maksim Kita](https://github.com/kitaisreal)). +* Map data type parsing tests [#27692](https://github.com/ClickHouse/ClickHouse/pull/27692) ([Maksim Kita](https://github.com/kitaisreal)). +* Refactor arrayJoin check on partition expressions [#27733](https://github.com/ClickHouse/ClickHouse/pull/27733) ([Raúl Marín](https://github.com/Algunenano)). +* Fix test 01014_lazy_database_concurrent_recreate_reattach_and_show_tables [#27734](https://github.com/ClickHouse/ClickHouse/pull/27734) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Better code around decompression [2] [#27743](https://github.com/ClickHouse/ClickHouse/pull/27743) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Disable jemalloc under OSX [#27751](https://github.com/ClickHouse/ClickHouse/pull/27751) ([Raúl Marín](https://github.com/Algunenano)). +* try to collect some core dumps in perf tests [#27752](https://github.com/ClickHouse/ClickHouse/pull/27752) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix jemalloc under osx (zone_register() had been optimized out again) [#27753](https://github.com/ClickHouse/ClickHouse/pull/27753) ([Azat Khuzhin](https://github.com/azat)). +* Merging [#20089](https://github.com/ClickHouse/ClickHouse/issues/20089) [#27755](https://github.com/ClickHouse/ClickHouse/pull/27755) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix intersect/except with limit [#27757](https://github.com/ClickHouse/ClickHouse/pull/27757) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add HTTP string parsing test [#27762](https://github.com/ClickHouse/ClickHouse/pull/27762) ([Nikolay Degterinsky](https://github.com/evillique)). +* Fix some tests [#27785](https://github.com/ClickHouse/ClickHouse/pull/27785) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Set function divide as suitable for short-circuit in case of Nullable(Decimal) [#27788](https://github.com/ClickHouse/ClickHouse/pull/27788) ([Kruglov Pavel](https://github.com/Avogar)). +* Remove unnecessary files [#27789](https://github.com/ClickHouse/ClickHouse/pull/27789) ([Kruglov Pavel](https://github.com/Avogar)). +* Revert "Mark tests for `DatabaseReplicated` as green" [#27791](https://github.com/ClickHouse/ClickHouse/pull/27791) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove hardening for watches in DDLWorker [#27792](https://github.com/ClickHouse/ClickHouse/pull/27792) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Stateless test: Cleanup leftovers [#27793](https://github.com/ClickHouse/ClickHouse/pull/27793) ([Raúl Marín](https://github.com/Algunenano)). +* Dictionaries key types refactoring [#27795](https://github.com/ClickHouse/ClickHouse/pull/27795) ([Maksim Kita](https://github.com/kitaisreal)). +* Update 01822_short_circuit.reference (after merging [#27680](https://github.com/ClickHouse/ClickHouse/issues/27680)) [#27802](https://github.com/ClickHouse/ClickHouse/pull/27802) ([Azat Khuzhin](https://github.com/azat)). +* Proper shutdown global context [#27804](https://github.com/ClickHouse/ClickHouse/pull/27804) ([Amos Bird](https://github.com/amosbird)). +* 01766_todatetime64_no_timezone_arg: Use a date without timezone changes [#27810](https://github.com/ClickHouse/ClickHouse/pull/27810) ([Raúl Marín](https://github.com/Algunenano)). +* Use sessions more [#27817](https://github.com/ClickHouse/ClickHouse/pull/27817) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add test for clickhouse-keeper start after conversion [#27818](https://github.com/ClickHouse/ClickHouse/pull/27818) ([alesapin](https://github.com/alesapin)). +* Fix setting name "allow_experimental_database_materialized_postgresql" in the error message [#27824](https://github.com/ClickHouse/ClickHouse/pull/27824) ([Denny Crane](https://github.com/den-crane)). +* Fix bug in short-circuit found by fuzzer [#27826](https://github.com/ClickHouse/ClickHouse/pull/27826) ([Kruglov Pavel](https://github.com/Avogar)). +* Add more checks for LC in native protocol. [#27827](https://github.com/ClickHouse/ClickHouse/pull/27827) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix test 00443_preferred_block_size_bytes.sh [#27846](https://github.com/ClickHouse/ClickHouse/pull/27846) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Mute some integration tests until failures are fixed [#27862](https://github.com/ClickHouse/ClickHouse/pull/27862) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix bad cast in insertPostgreSQLValue [#27869](https://github.com/ClickHouse/ClickHouse/pull/27869) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add fuzzers for codecs [#27872](https://github.com/ClickHouse/ClickHouse/pull/27872) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Remove tmp folders from tests [#27878](https://github.com/ClickHouse/ClickHouse/pull/27878) ([Kruglov Pavel](https://github.com/Avogar)). +* blog article about perf tests [#27879](https://github.com/ClickHouse/ClickHouse/pull/27879) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* make the sql-standard window functions case insensitive [#27880](https://github.com/ClickHouse/ClickHouse/pull/27880) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Bump librdkafka (fixes use of an invalid/destroyed mutex) [#27883](https://github.com/ClickHouse/ClickHouse/pull/27883) ([Azat Khuzhin](https://github.com/azat)). +* fix decimal formatting settings in perf test [#27884](https://github.com/ClickHouse/ClickHouse/pull/27884) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Add separate constants for interfaces LOCAL and TCP_INTERSERVER. [#27886](https://github.com/ClickHouse/ClickHouse/pull/27886) ([Vitaly Baranov](https://github.com/vitlibar)). +* Build fuzzers with clang-tidy [#27895](https://github.com/ClickHouse/ClickHouse/pull/27895) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Allow implicit cast bool to Field [#27921](https://github.com/ClickHouse/ClickHouse/pull/27921) ([Vitaly Baranov](https://github.com/vitlibar)). +* Improve server logs checking in integration tests [#27934](https://github.com/ClickHouse/ClickHouse/pull/27934) ([Azat Khuzhin](https://github.com/azat)). +* Get rid of mutable value in FunctionGetSetting. [#27982](https://github.com/ClickHouse/ClickHouse/pull/27982) ([Vitaly Baranov](https://github.com/vitlibar)). +* Disable fuzzers build with clang-tidy [#27985](https://github.com/ClickHouse/ClickHouse/pull/27985) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Build fuzzers in CI [#27990](https://github.com/ClickHouse/ClickHouse/pull/27990) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix file progress for local [#27991](https://github.com/ClickHouse/ClickHouse/pull/27991) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update libunwind [#27993](https://github.com/ClickHouse/ClickHouse/pull/27993) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix style typos [#28020](https://github.com/ClickHouse/ClickHouse/pull/28020) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix throw without exception in MySQL source. [#28027](https://github.com/ClickHouse/ClickHouse/pull/28027) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix race between REPLACE PARTITION and MOVE PARTITION [#28035](https://github.com/ClickHouse/ClickHouse/pull/28035) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Follow-up to [#28016](https://github.com/ClickHouse/ClickHouse/issues/28016) [#28036](https://github.com/ClickHouse/ClickHouse/pull/28036) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Bump replxx [#28039](https://github.com/ClickHouse/ClickHouse/pull/28039) ([Azat Khuzhin](https://github.com/azat)). +* Add test for [#13398](https://github.com/ClickHouse/ClickHouse/issues/13398) [#28054](https://github.com/ClickHouse/ClickHouse/pull/28054) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Set version of tzlocal to 2.1 [#28063](https://github.com/ClickHouse/ClickHouse/pull/28063) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix zookeeper secure client test [#28066](https://github.com/ClickHouse/ClickHouse/pull/28066) ([alesapin](https://github.com/alesapin)). +* Fix typo in docs [#28077](https://github.com/ClickHouse/ClickHouse/pull/28077) ([Kruglov Pavel](https://github.com/Avogar)). +* Fixed a typo in comments to `SinkToStorage` [#28078](https://github.com/ClickHouse/ClickHouse/pull/28078) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Use jinja template tests in fuzzer [#28079](https://github.com/ClickHouse/ClickHouse/pull/28079) ([Vladimir C](https://github.com/vdimir)). +* Clickhouse-keeper: renames and comments [#28080](https://github.com/ClickHouse/ClickHouse/pull/28080) ([alesapin](https://github.com/alesapin)). +* Update nanodbc [#28084](https://github.com/ClickHouse/ClickHouse/pull/28084) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Improve 01730_distributed_group_by_no_merge_order_by_long [#28123](https://github.com/ClickHouse/ClickHouse/pull/28123) ([Azat Khuzhin](https://github.com/azat)). +* Get rid of useless projection columns during merge [#28135](https://github.com/ClickHouse/ClickHouse/pull/28135) ([Amos Bird](https://github.com/amosbird)). +* Fix style [#28140](https://github.com/ClickHouse/ClickHouse/pull/28140) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Fix clickhouse keeper jepsen tests [#28143](https://github.com/ClickHouse/ClickHouse/pull/28143) ([alesapin](https://github.com/alesapin)). +* Updated ya.make files [#28157](https://github.com/ClickHouse/ClickHouse/pull/28157) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Better detection of the default interface in replicated fetches tests [#28184](https://github.com/ClickHouse/ClickHouse/pull/28184) ([alesapin](https://github.com/alesapin)). +* Reserve protocol number for ALTER PRIMARY KEY. [#28193](https://github.com/ClickHouse/ClickHouse/pull/28193) ([Amos Bird](https://github.com/amosbird)). +* Maybe fix livelock in ZooKeeper client [#28195](https://github.com/ClickHouse/ClickHouse/pull/28195) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Guard UDF container with a lock [#28211](https://github.com/ClickHouse/ClickHouse/pull/28211) ([Azat Khuzhin](https://github.com/azat)). +* Fix error codes [#28234](https://github.com/ClickHouse/ClickHouse/pull/28234) ([Kseniia Sumarokova](https://github.com/kssenii)). +* CHJIT custom memory manager [#28236](https://github.com/ClickHouse/ClickHouse/pull/28236) ([Maksim Kita](https://github.com/kitaisreal)). +* Dictionaries small fixes [#28249](https://github.com/ClickHouse/ClickHouse/pull/28249) ([Maksim Kita](https://github.com/kitaisreal)). +* Better nullable primary key implementation [#28269](https://github.com/ClickHouse/ClickHouse/pull/28269) ([Amos Bird](https://github.com/amosbird)). +* ODBC connection holder fix dangling reference [#28298](https://github.com/ClickHouse/ClickHouse/pull/28298) ([Maksim Kita](https://github.com/kitaisreal)). +* test/stress: fix patterns for filtering out Raft messages [#28303](https://github.com/ClickHouse/ClickHouse/pull/28303) ([Azat Khuzhin](https://github.com/azat)). +* Rename system.views columns [#28319](https://github.com/ClickHouse/ClickHouse/pull/28319) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Try to fix arcadia build (generate ya.make) [#28326](https://github.com/ClickHouse/ClickHouse/pull/28326) ([DimasKovas](https://github.com/DimasKovas)). +* Try to fix arcadia build [#28333](https://github.com/ClickHouse/ClickHouse/pull/28333) ([DimasKovas](https://github.com/DimasKovas)). +* Fix test_storage_s3/test_put_get_with_globs (cleanup after test) [#28336](https://github.com/ClickHouse/ClickHouse/pull/28336) ([ianton-ru](https://github.com/ianton-ru)). +* Fix sed argument in test/fuzzer/run-fuzzer.sh [#28350](https://github.com/ClickHouse/ClickHouse/pull/28350) ([Vladimir C](https://github.com/vdimir)). +* Another try to fix BackgroundPoolTask decrement. [#28353](https://github.com/ClickHouse/ClickHouse/pull/28353) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Rework kafka topic creation. [#28354](https://github.com/ClickHouse/ClickHouse/pull/28354) ([Ilya Yatsishin](https://github.com/qoega)). +* Add compat between SinkToStorage and BlockOutputStream [#28361](https://github.com/ClickHouse/ClickHouse/pull/28361) ([DimasKovas](https://github.com/DimasKovas)). +* Try to fix arcadia build (generate ya.make) [#28382](https://github.com/ClickHouse/ClickHouse/pull/28382) ([DimasKovas](https://github.com/DimasKovas)). +* Add a test for a friend [#28396](https://github.com/ClickHouse/ClickHouse/pull/28396) ([alesapin](https://github.com/alesapin)). +* Update ya.make [#28403](https://github.com/ClickHouse/ClickHouse/pull/28403) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix disk with static files a little [#28411](https://github.com/ClickHouse/ClickHouse/pull/28411) ([Kseniia Sumarokova](https://github.com/kssenii)). +* More accurate check that zk root exists. [#28412](https://github.com/ClickHouse/ClickHouse/pull/28412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merging [#27980](https://github.com/ClickHouse/ClickHouse/issues/27980) [#28413](https://github.com/ClickHouse/ClickHouse/pull/28413) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix 01457_create_as_table_function_structure [#28428](https://github.com/ClickHouse/ClickHouse/pull/28428) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove some rename tests [#28437](https://github.com/ClickHouse/ClickHouse/pull/28437) ([alesapin](https://github.com/alesapin)). +* Fix race in UDF (follow up) [#28438](https://github.com/ClickHouse/ClickHouse/pull/28438) ([Azat Khuzhin](https://github.com/azat)). +* Executable multiple pipes added test [#28503](https://github.com/ClickHouse/ClickHouse/pull/28503) ([Maksim Kita](https://github.com/kitaisreal)). +* UserDefinedFunctionFactory added comments [#28516](https://github.com/ClickHouse/ClickHouse/pull/28516) ([Maksim Kita](https://github.com/kitaisreal)). +* BorrowedObjectPool fix style [#28523](https://github.com/ClickHouse/ClickHouse/pull/28523) ([Maksim Kita](https://github.com/kitaisreal)). +* Add test for keeper 2 node configuration [#28526](https://github.com/ClickHouse/ClickHouse/pull/28526) ([alesapin](https://github.com/alesapin)). +* Function dictGet default implementation for nulls [#28530](https://github.com/ClickHouse/ClickHouse/pull/28530) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix race in zlib [#28534](https://github.com/ClickHouse/ClickHouse/pull/28534) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Bump poco to remove getpid() calls [#28537](https://github.com/ClickHouse/ClickHouse/pull/28537) ([Azat Khuzhin](https://github.com/azat)). +* Fix broken kafka test [#28542](https://github.com/ClickHouse/ClickHouse/pull/28542) ([alesapin](https://github.com/alesapin)). +* Fix format names in docs [#28557](https://github.com/ClickHouse/ClickHouse/pull/28557) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix wrong header of minmax_count projection [#28560](https://github.com/ClickHouse/ClickHouse/pull/28560) ([Amos Bird](https://github.com/amosbird)). +* remove recursion in ZstdInflatingReadBuffer [#28561](https://github.com/ClickHouse/ClickHouse/pull/28561) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Improve [C|T]SV errors [#28579](https://github.com/ClickHouse/ClickHouse/pull/28579) ([Raúl Marín](https://github.com/Algunenano)). +* Function dictGet small fix [#28615](https://github.com/ClickHouse/ClickHouse/pull/28615) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix arcadia build [#28640](https://github.com/ClickHouse/ClickHouse/pull/28640) ([DimasKovas](https://github.com/DimasKovas)). +* Add missed log level into TextLog [#28648](https://github.com/ClickHouse/ClickHouse/pull/28648) ([alesapin](https://github.com/alesapin)). +* Revert [#28082](https://github.com/ClickHouse/ClickHouse/issues/28082) [#28665](https://github.com/ClickHouse/ClickHouse/pull/28665) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Revert [#28397](https://github.com/ClickHouse/ClickHouse/issues/28397) [#28667](https://github.com/ClickHouse/ClickHouse/pull/28667) ([Kseniia Sumarokova](https://github.com/kssenii)). + diff --git a/docs/changelogs/v21.10.2.15-stable.md b/docs/changelogs/v21.10.2.15-stable.md index 05e278f03ae..d23ff95307c 100644 --- a/docs/changelogs/v21.10.2.15-stable.md +++ b/docs/changelogs/v21.10.2.15-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.10.2.15-stable FIXME as compared to v21.10.1.8013-prestable #### Improvement @@ -63,3 +70,17 @@ * Avoid deadlocks when reading and writting on JOIN Engine tables at the same time. [#30182](https://github.com/ClickHouse/ClickHouse/pull/30182) ([Raúl Marín](https://github.com/Algunenano)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix usage of nested columns with non-array columns with the same prefix [2] [#28762](https://github.com/ClickHouse/ClickHouse/pull/28762) ([Anton Popov](https://github.com/CurtizJ)). +* Lower compiled_expression_cache_size to 128MB [#28816](https://github.com/ClickHouse/ClickHouse/pull/28816) ([Maksim Kita](https://github.com/kitaisreal)). +* Column default dictGet identifier fix [#28863](https://github.com/ClickHouse/ClickHouse/pull/28863) ([Maksim Kita](https://github.com/kitaisreal)). +* Don not add const group by key for query with only having. [#28975](https://github.com/ClickHouse/ClickHouse/pull/28975) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merging [#27963](https://github.com/ClickHouse/ClickHouse/issues/27963) [#29063](https://github.com/ClickHouse/ClickHouse/pull/29063) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix terminate on uncaught exception [#29216](https://github.com/ClickHouse/ClickHouse/pull/29216) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix arcadia (pre)stable 21.10 build [#29250](https://github.com/ClickHouse/ClickHouse/pull/29250) ([DimasKovas](https://github.com/DimasKovas)). +* May be fix s3 tests [#29762](https://github.com/ClickHouse/ClickHouse/pull/29762) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove unnecessary PEERDIR to libcxx-filesystem [#29798](https://github.com/ClickHouse/ClickHouse/pull/29798) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Update BoringSSL [#29998](https://github.com/ClickHouse/ClickHouse/pull/29998) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* SQL user defined functions fix alias [#30075](https://github.com/ClickHouse/ClickHouse/pull/30075) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.10.3.9-stable.md b/docs/changelogs/v21.10.3.9-stable.md index 78240367d55..8cccd01e77a 100644 --- a/docs/changelogs/v21.10.3.9-stable.md +++ b/docs/changelogs/v21.10.3.9-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.10.3.9-stable FIXME as compared to v21.10.2.15-stable #### New Feature @@ -43,3 +50,13 @@ * Backported in [#31255](https://github.com/ClickHouse/ClickHouse/issues/31255): Fix bug in Keeper which can lead to inability to start when some coordination logs was lost and we have more fresh snapshot than our latest log. [#31150](https://github.com/ClickHouse/ClickHouse/pull/31150) ([alesapin](https://github.com/alesapin)). * Backported in [#31436](https://github.com/ClickHouse/ClickHouse/issues/31436): Fix bug with group by and positional arguments. Closes [#31280](https://github.com/ClickHouse/ClickHouse/issues/31280)#issuecomment-968696186. [#31420](https://github.com/ClickHouse/ClickHouse/pull/31420) ([Kseniia Sumarokova](https://github.com/kssenii)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* AddDefaultDatabaseVisitor support dictGet [#29650](https://github.com/ClickHouse/ClickHouse/pull/29650) ([Maksim Kita](https://github.com/kitaisreal)). +* StorageExecutable fix small issues [#30352](https://github.com/ClickHouse/ClickHouse/pull/30352) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix ca-bundle.crt in kerberized_hadoop/Dockerfile [#30358](https://github.com/ClickHouse/ClickHouse/pull/30358) ([Vladimir C](https://github.com/vdimir)). +* SQLUserDefinedFunctions composition fix [#30483](https://github.com/ClickHouse/ClickHouse/pull/30483) ([Maksim Kita](https://github.com/kitaisreal)). +* StorageDictionary fix potential configuration race [#30502](https://github.com/ClickHouse/ClickHouse/pull/30502) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix typo in USE_MYSQL check [#31226](https://github.com/ClickHouse/ClickHouse/pull/31226) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* BloomFilter index check fix [#31334](https://github.com/ClickHouse/ClickHouse/pull/31334) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.10.4.26-stable.md b/docs/changelogs/v21.10.4.26-stable.md index b2089fad0c4..06eab149e6c 100644 --- a/docs/changelogs/v21.10.4.26-stable.md +++ b/docs/changelogs/v21.10.4.26-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.10.4.26-stable FIXME as compared to v21.10.3.9-stable #### Performance Improvement @@ -23,3 +30,7 @@ * Backported in [#31939](https://github.com/ClickHouse/ClickHouse/issues/31939): - Change configuration path from `keeper_server.session_timeout_ms` to `keeper_server.coordination_settings.session_timeout_ms` when constructing a `KeeperTCPHandler` - Same with `operation_timeout`. [#31859](https://github.com/ClickHouse/ClickHouse/pull/31859) ([JackyWoo](https://github.com/JackyWoo)). * Backported in [#31909](https://github.com/ClickHouse/ClickHouse/issues/31909): Fix functions `empty` and `notEmpty` with arguments of `UUID` type. Fixes [#31819](https://github.com/ClickHouse/ClickHouse/issues/31819). [#31883](https://github.com/ClickHouse/ClickHouse/pull/31883) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Support toUInt8/toInt8 for if constant condition optimization. [#31866](https://github.com/ClickHouse/ClickHouse/pull/31866) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.10.5.3-stable.md b/docs/changelogs/v21.10.5.3-stable.md index a591c4a07a8..7a87b349324 100644 --- a/docs/changelogs/v21.10.5.3-stable.md +++ b/docs/changelogs/v21.10.5.3-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.10.5.3-stable FIXME as compared to v21.10.4.26-stable #### Bug Fix diff --git a/docs/changelogs/v21.10.6.2-stable.md b/docs/changelogs/v21.10.6.2-stable.md index da146ee364d..c9afcfae75e 100644 --- a/docs/changelogs/v21.10.6.2-stable.md +++ b/docs/changelogs/v21.10.6.2-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.10.6.2-stable FIXME as compared to v21.10.5.3-stable #### Bug Fix @@ -20,3 +27,13 @@ * Backported in [#32657](https://github.com/ClickHouse/ClickHouse/issues/32657): Fix possible crash (or incorrect result) in case of `LowCardinality` arguments of window function. Fixes [#31114](https://github.com/ClickHouse/ClickHouse/issues/31114). [#31888](https://github.com/ClickHouse/ClickHouse/pull/31888) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix data race in ProtobufSchemas [#27822](https://github.com/ClickHouse/ClickHouse/pull/27822) ([filimonov](https://github.com/filimonov)). +* Fix possible Pipeline stuck in case of StrictResize processor. [#32270](https://github.com/ClickHouse/ClickHouse/pull/32270) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix arraySlice with null args. [#32456](https://github.com/ClickHouse/ClickHouse/pull/32456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix crash in case of MATERIALIZE COLUMN with no default expression. [#32464](https://github.com/ClickHouse/ClickHouse/pull/32464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix queries with hasColumnInTable constant condition and non existing column [#32506](https://github.com/ClickHouse/ClickHouse/pull/32506) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merge [#33024](https://github.com/ClickHouse/ClickHouse/issues/33024) [#33061](https://github.com/ClickHouse/ClickHouse/pull/33061) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33022](https://github.com/ClickHouse/ClickHouse/issues/33022) [#33062](https://github.com/ClickHouse/ClickHouse/pull/33062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + diff --git a/docs/changelogs/v21.11.1.8636-prestable.md b/docs/changelogs/v21.11.1.8636-prestable.md index 2aab0293223..95c982a2a2e 100644 --- a/docs/changelogs/v21.11.1.8636-prestable.md +++ b/docs/changelogs/v21.11.1.8636-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.1.8636-prestable FIXME as compared to v21.10.1.8013-prestable #### Backward Incompatible Change @@ -13,7 +20,7 @@ * Users now can set comments to database in `CREATE DATABASE` statement ... [#29429](https://github.com/ClickHouse/ClickHouse/pull/29429) ([Vasily Nemkov](https://github.com/Enmk)). * New function` mapContainsKeyLike` to get the map that key matches a simple regular expression. [#29471](https://github.com/ClickHouse/ClickHouse/pull/29471) ([凌涛](https://github.com/lingtaolf)). * Huawei OBS Storage support. Closes [#24294](https://github.com/ClickHouse/ClickHouse/issues/24294). [#29511](https://github.com/ClickHouse/ClickHouse/pull/29511) ([kevin wan](https://github.com/MaxWk)). -* ClickHouse HTTP Server can enable HSTS by set `hsts_max_age` in config.xml with a positive number. [#29516](https://github.com/ClickHouse/ClickHouse/pull/29516) ([凌涛](https://github.com/lingtaolf)). +* Clickhouse HTTP Server can enable HSTS by set `hsts_max_age` in config.xml with a positive number. [#29516](https://github.com/ClickHouse/ClickHouse/pull/29516) ([凌涛](https://github.com/lingtaolf)). * - Added MD4 and SHA384 functions. [#29602](https://github.com/ClickHouse/ClickHouse/pull/29602) ([Nikita Tikhomirov](https://github.com/NSTikhomirov)). * Support EXISTS(subquery). Closes [#6852](https://github.com/ClickHouse/ClickHouse/issues/6852). [#29731](https://github.com/ClickHouse/ClickHouse/pull/29731) ([Kseniia Sumarokova](https://github.com/kssenii)). * Added function `ngram`. Closes [#29699](https://github.com/ClickHouse/ClickHouse/issues/29699). [#29738](https://github.com/ClickHouse/ClickHouse/pull/29738) ([Maksim Kita](https://github.com/kitaisreal)). @@ -190,6 +197,279 @@ * NO CL ENTRY: 'Revert "Revert "Improve usability of `remote_url_allow_hosts`""'. [#30708](https://github.com/ClickHouse/ClickHouse/pull/30708) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * NO CL ENTRY: 'remove some unneeded header files'. [#30722](https://github.com/ClickHouse/ClickHouse/pull/30722) ([flynn](https://github.com/ucasfl)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix race in StorageSystemRocksDB [#29289](https://github.com/ClickHouse/ClickHouse/pull/29289) ([Vladimir C](https://github.com/vdimir)). +* Fixed logging level for message in `S3Common.cpp` [#29308](https://github.com/ClickHouse/ClickHouse/pull/29308) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Revert parse number binary literal [#29309](https://github.com/ClickHouse/ClickHouse/pull/29309) ([Maksim Kita](https://github.com/kitaisreal)). +* Parser number binary literal update [#29310](https://github.com/ClickHouse/ClickHouse/pull/29310) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix assertion in DDLDependencyVisitor [#29323](https://github.com/ClickHouse/ClickHouse/pull/29323) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Function h3GetFaces optimization [#29335](https://github.com/ClickHouse/ClickHouse/pull/29335) ([Maksim Kita](https://github.com/kitaisreal)). +* Less sleeps in integration tests. [#29338](https://github.com/ClickHouse/ClickHouse/pull/29338) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix trivial mistake in DiskWebServer [#29340](https://github.com/ClickHouse/ClickHouse/pull/29340) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix integration test for RocksDB [#29341](https://github.com/ClickHouse/ClickHouse/pull/29341) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix typo in comment [#29342](https://github.com/ClickHouse/ClickHouse/pull/29342) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add lld into Build-Depends for debian package [#29343](https://github.com/ClickHouse/ClickHouse/pull/29343) ([Azat Khuzhin](https://github.com/azat)). +* Apply a patch from Azat [#29344](https://github.com/ClickHouse/ClickHouse/pull/29344) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update libhdfs3 [#29345](https://github.com/ClickHouse/ClickHouse/pull/29345) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove ya.make [#29346](https://github.com/ClickHouse/ClickHouse/pull/29346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix assert in table function `merge` with database regexp [#29355](https://github.com/ClickHouse/ClickHouse/pull/29355) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless files related to pytest [#29361](https://github.com/ClickHouse/ClickHouse/pull/29361) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove obsolete non-automated tests [#29362](https://github.com/ClickHouse/ClickHouse/pull/29362) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix integration test [#29365](https://github.com/ClickHouse/ClickHouse/pull/29365) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix H3 function name (h3ResIsClassIII to h3IsResClassIII) [#29368](https://github.com/ClickHouse/ClickHouse/pull/29368) ([Bharat Nallan](https://github.com/bharatnc)). +* RFC: tests: purge unused configs [#29375](https://github.com/ClickHouse/ClickHouse/pull/29375) ([Azat Khuzhin](https://github.com/azat)). +* Fix ugly typo [#29379](https://github.com/ClickHouse/ClickHouse/pull/29379) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix comments in AggregateFunctionFactory [#29380](https://github.com/ClickHouse/ClickHouse/pull/29380) ([Bharat Nallan](https://github.com/bharatnc)). +* Add GraphCDN in adopter list [#29387](https://github.com/ClickHouse/ClickHouse/pull/29387) ([Mohamad Fadhil](https://github.com/sdil)). +* Fix 02015_async_inserts_2 flakiness [#29390](https://github.com/ClickHouse/ClickHouse/pull/29390) ([Azat Khuzhin](https://github.com/azat)). +* test for [#23634](https://github.com/ClickHouse/ClickHouse/issues/23634) ( nullable PK and negate cond ) [#29392](https://github.com/ClickHouse/ClickHouse/pull/29392) ([Denny Crane](https://github.com/den-crane)). +* Merge EmbeddedRocksDBBlockInputStream and EmbeddedRocksDBSource [#29428](https://github.com/ClickHouse/ClickHouse/pull/29428) ([Vladimir C](https://github.com/vdimir)). +* Map bloom filter index mapValues equals function support [#29431](https://github.com/ClickHouse/ClickHouse/pull/29431) ([Maksim Kita](https://github.com/kitaisreal)). +* Dictionary Array nested Map added test [#29432](https://github.com/ClickHouse/ClickHouse/pull/29432) ([Maksim Kita](https://github.com/kitaisreal)). +* Dictionary view different database added test [#29443](https://github.com/ClickHouse/ClickHouse/pull/29443) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix deadlock in concurrent async inserts and truncates [#29444](https://github.com/ClickHouse/ClickHouse/pull/29444) ([Anton Popov](https://github.com/CurtizJ)). +* Fix flaky test 01158_zookeeper_log_long [#29445](https://github.com/ClickHouse/ClickHouse/pull/29445) ([Alexander Tokmakov](https://github.com/tavplubix)). +* clickhouse-test: fix long tag check for flaky check (--test-runs > 1) [#29449](https://github.com/ClickHouse/ClickHouse/pull/29449) ([Azat Khuzhin](https://github.com/azat)). +* clickhouse-test: fix shared list object (by fixing manager lifetime) [#29452](https://github.com/ClickHouse/ClickHouse/pull/29452) ([Azat Khuzhin](https://github.com/azat)). +* Enable memory profiler on CI [#29453](https://github.com/ClickHouse/ClickHouse/pull/29453) ([Azat Khuzhin](https://github.com/azat)). +* test for [#23634](https://github.com/ClickHouse/ClickHouse/issues/23634) added tests for tuples [#29460](https://github.com/ClickHouse/ClickHouse/pull/29460) ([Denny Crane](https://github.com/den-crane)). +* Fix 2024_merge_regexp_assert [#29461](https://github.com/ClickHouse/ClickHouse/pull/29461) ([Azat Khuzhin](https://github.com/azat)). +* Add std::cerr/std::cout style check [#29464](https://github.com/ClickHouse/ClickHouse/pull/29464) ([Azat Khuzhin](https://github.com/azat)). +* [github] we're switching to CLA based on Apache CLA [#29466](https://github.com/ClickHouse/ClickHouse/pull/29466) ([ClickHouse Admin](https://github.com/clickhouse-admin)). +* Bloom filter indexes updated tests [#29474](https://github.com/ClickHouse/ClickHouse/pull/29474) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove more data streams [#29491](https://github.com/ClickHouse/ClickHouse/pull/29491) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix possible hang in PushingAsyncPipelineExecutor. [#29494](https://github.com/ClickHouse/ClickHouse/pull/29494) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Use `max_parse_depth` in fuzzers [#29497](https://github.com/ClickHouse/ClickHouse/pull/29497) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Introducing Fn concept for function signature checking, simplifying SimpleCache [#29500](https://github.com/ClickHouse/ClickHouse/pull/29500) ([Mike Kot](https://github.com/myrrc)). +* Fix LOGICAL_ERROR for INSERT with concurrent ALTER [#29502](https://github.com/ClickHouse/ClickHouse/pull/29502) ([Azat Khuzhin](https://github.com/azat)). +* Log queries to external databases (since they may be rewritten) [#29503](https://github.com/ClickHouse/ClickHouse/pull/29503) ([Azat Khuzhin](https://github.com/azat)). +* Fix server pid (hence exit code and attaching with gdb) in fuzzer tests [#29513](https://github.com/ClickHouse/ClickHouse/pull/29513) ([Azat Khuzhin](https://github.com/azat)). +* Bump cmake minimum required version to 3.14 [#29515](https://github.com/ClickHouse/ClickHouse/pull/29515) ([Azat Khuzhin](https://github.com/azat)). +* Changelog heredoc added backward incompatible change [#29530](https://github.com/ClickHouse/ClickHouse/pull/29530) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix test names [#29539](https://github.com/ClickHouse/ClickHouse/pull/29539) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Making Monotonicity an aggregate to use with designated initializers [#29540](https://github.com/ClickHouse/ClickHouse/pull/29540) ([Mike Kot](https://github.com/myrrc)). +* Generalize code in IColumn::permute [#29545](https://github.com/ClickHouse/ClickHouse/pull/29545) ([Anton Popov](https://github.com/CurtizJ)). +* Add error for multiple keys without current_key_id [#29546](https://github.com/ClickHouse/ClickHouse/pull/29546) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* support conversion between date32 and datetime64 [#29552](https://github.com/ClickHouse/ClickHouse/pull/29552) ([kevin wan](https://github.com/MaxWk)). +* Fixed test with dictGet without database name as column default value [#29568](https://github.com/ClickHouse/ClickHouse/pull/29568) ([Maksim Kita](https://github.com/kitaisreal)). +* Add FAIL message to test_results.tsv [#29583](https://github.com/ClickHouse/ClickHouse/pull/29583) ([Dmitry Novik](https://github.com/novikd)). +* Generalize code in `IColumn::updatePermutation` [#29595](https://github.com/ClickHouse/ClickHouse/pull/29595) ([Anton Popov](https://github.com/CurtizJ)). +* Add fuzzer for `executeQuery` function [#29596](https://github.com/ClickHouse/ClickHouse/pull/29596) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix docker/test/util declaration [#29597](https://github.com/ClickHouse/ClickHouse/pull/29597) ([Dmitry Novik](https://github.com/novikd)). +* Skip test for executable table function under MSan [#29600](https://github.com/ClickHouse/ClickHouse/pull/29600) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Improve some more integration tests [#29603](https://github.com/ClickHouse/ClickHouse/pull/29603) ([Ilya Yatsishin](https://github.com/qoega)). +* Improve CompressedReadBuffer [#29605](https://github.com/ClickHouse/ClickHouse/pull/29605) ([Ilya Yatsishin](https://github.com/qoega)). +* Do not send many signals at server restart (integration tests). [#29608](https://github.com/ClickHouse/ClickHouse/pull/29608) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix race between MergeTask and storage destruction [#29614](https://github.com/ClickHouse/ClickHouse/pull/29614) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* BloomFilter indexes map data type support fix unsafe identifier cast [#29623](https://github.com/ClickHouse/ClickHouse/pull/29623) ([Maksim Kita](https://github.com/kitaisreal)). +* Follow-up for [#26231](https://github.com/ClickHouse/ClickHouse/issues/26231) [#29626](https://github.com/ClickHouse/ClickHouse/pull/29626) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Map get non const key added test [#29636](https://github.com/ClickHouse/ClickHouse/pull/29636) ([Maksim Kita](https://github.com/kitaisreal)). +* Add columns in columns.sql for INFORMATION_SCHEMA [#29637](https://github.com/ClickHouse/ClickHouse/pull/29637) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Merging [#29376](https://github.com/ClickHouse/ClickHouse/issues/29376) [#29649](https://github.com/ClickHouse/ClickHouse/pull/29649) ([Anton Popov](https://github.com/CurtizJ)). +* AddDefaultDatabaseVisitor support dictGet [#29650](https://github.com/ClickHouse/ClickHouse/pull/29650) ([Maksim Kita](https://github.com/kitaisreal)). +* Do not try to fuzz `USE`/`SET` queries and print stacktrace [#29660](https://github.com/ClickHouse/ClickHouse/pull/29660) ([Azat Khuzhin](https://github.com/azat)). +* Rename `common` to `base` [#29661](https://github.com/ClickHouse/ClickHouse/pull/29661) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Move modelEvaluate function to its own file [#29662](https://github.com/ClickHouse/ClickHouse/pull/29662) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Perf fixes [#29663](https://github.com/ClickHouse/ClickHouse/pull/29663) ([Azat Khuzhin](https://github.com/azat)). +* UserDefinedExecutableFunctions added implicit cast [#29666](https://github.com/ClickHouse/ClickHouse/pull/29666) ([Maksim Kita](https://github.com/kitaisreal)). +* Cleanup common defines [#29680](https://github.com/ClickHouse/ClickHouse/pull/29680) ([Azat Khuzhin](https://github.com/azat)). +* Fix Xcode 13 build [#29682](https://github.com/ClickHouse/ClickHouse/pull/29682) ([Denis Glazachev](https://github.com/traceon)). +* Non-recursive implementation for type list and its functions [#29683](https://github.com/ClickHouse/ClickHouse/pull/29683) ([Mike Kot](https://github.com/myrrc)). +* Reorganize contrib/ IDE folders [#29684](https://github.com/ClickHouse/ClickHouse/pull/29684) ([Denis Glazachev](https://github.com/traceon)). +* Cleanup unbundled image [#29689](https://github.com/ClickHouse/ClickHouse/pull/29689) ([Azat Khuzhin](https://github.com/azat)). +* Fix memory tracking for merges and mutations [#29691](https://github.com/ClickHouse/ClickHouse/pull/29691) ([Azat Khuzhin](https://github.com/azat)). +* Fix data-race in WriteIndirectBuffer (used in DiskMemory) [#29692](https://github.com/ClickHouse/ClickHouse/pull/29692) ([Azat Khuzhin](https://github.com/azat)). +* Fix flacky test [#29706](https://github.com/ClickHouse/ClickHouse/pull/29706) ([Kseniia Sumarokova](https://github.com/kssenii)). +* BorrowedObjectPool condition variable notify fix [#29722](https://github.com/ClickHouse/ClickHouse/pull/29722) ([Maksim Kita](https://github.com/kitaisreal)). +* Better exception message for local interactive [#29737](https://github.com/ClickHouse/ClickHouse/pull/29737) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix --stage for clickhouse-local [#29745](https://github.com/ClickHouse/ClickHouse/pull/29745) ([Azat Khuzhin](https://github.com/azat)). +* Forbid Nullable for JSONExtract* (JSONExtract() still supports Nullable), leads to SIGSEGV before [#29746](https://github.com/ClickHouse/ClickHouse/pull/29746) ([Azat Khuzhin](https://github.com/azat)). +* TableFunctionDictionary fix comment [#29747](https://github.com/ClickHouse/ClickHouse/pull/29747) ([Maksim Kita](https://github.com/kitaisreal)). +* May be fix s3 tests [#29762](https://github.com/ClickHouse/ClickHouse/pull/29762) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove some merging streams [#29768](https://github.com/ClickHouse/ClickHouse/pull/29768) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Parse query from metadata exception throw fix [#29779](https://github.com/ClickHouse/ClickHouse/pull/29779) ([Maksim Kita](https://github.com/kitaisreal)). +* Simplify obtaining of server pid in fuzzer tests [#29781](https://github.com/ClickHouse/ClickHouse/pull/29781) ([Azat Khuzhin](https://github.com/azat)). +* Fix data-race between fatal error handler and progress packets [#29783](https://github.com/ClickHouse/ClickHouse/pull/29783) ([Azat Khuzhin](https://github.com/azat)). +* Fix parallel_view_processing [#29786](https://github.com/ClickHouse/ClickHouse/pull/29786) ([Azat Khuzhin](https://github.com/azat)). +* Function reinterpretAs improve readability [#29796](https://github.com/ClickHouse/ClickHouse/pull/29796) ([Maksim Kita](https://github.com/kitaisreal)). +* Refactor ConcurrentBoundedQueue [#29801](https://github.com/ClickHouse/ClickHouse/pull/29801) ([Maksim Kita](https://github.com/kitaisreal)). +* Improve usability of error messages when error is caused by sophisticated interventions [#29803](https://github.com/ClickHouse/ClickHouse/pull/29803) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Improvement for [#28373](https://github.com/ClickHouse/ClickHouse/issues/28373) [#29804](https://github.com/ClickHouse/ClickHouse/pull/29804) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Better diagnostic for OPTIMIZE [#29812](https://github.com/ClickHouse/ClickHouse/pull/29812) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add listen_backlog to documentation [#29813](https://github.com/ClickHouse/ClickHouse/pull/29813) ([Azat Khuzhin](https://github.com/azat)). +* Dictionary attributes updated documentation [#29816](https://github.com/ClickHouse/ClickHouse/pull/29816) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix compilation with glibc 2.34 (MINSIGSTKSZ defined as sysconf(_SC_SIGSTKSZ)) [#29820](https://github.com/ClickHouse/ClickHouse/pull/29820) ([Azat Khuzhin](https://github.com/azat)). +* Make memory_profiler_step API cleaner [#29825](https://github.com/ClickHouse/ClickHouse/pull/29825) ([Azat Khuzhin](https://github.com/azat)). +* Add coroutines example. [#29827](https://github.com/ClickHouse/ClickHouse/pull/29827) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add coroutines example. [#29841](https://github.com/ClickHouse/ClickHouse/pull/29841) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Update changelog to include caveats about Nullable types in data skipping indexes [#29855](https://github.com/ClickHouse/ClickHouse/pull/29855) ([Azat Khuzhin](https://github.com/azat)). +* Rewrite clickhouse-test to use python clickhouse_driver [#29856](https://github.com/ClickHouse/ClickHouse/pull/29856) ([Azat Khuzhin](https://github.com/azat)). +* Fix client [#29864](https://github.com/ClickHouse/ClickHouse/pull/29864) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove some more streams. [#29898](https://github.com/ClickHouse/ClickHouse/pull/29898) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add logging in ZooKeeper client [#29901](https://github.com/ClickHouse/ClickHouse/pull/29901) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix some flacky tests [#29902](https://github.com/ClickHouse/ClickHouse/pull/29902) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Grep server log even if it contains binary data [#29903](https://github.com/ClickHouse/ClickHouse/pull/29903) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Cosmetic refactoring of server constants. [#29913](https://github.com/ClickHouse/ClickHouse/pull/29913) ([Amos Bird](https://github.com/amosbird)). +* Format improvement of AlterQuery [#29916](https://github.com/ClickHouse/ClickHouse/pull/29916) ([flynn](https://github.com/ucasfl)). +* Fix flaky integration tests (test_backup_restore/test_input_format_parallel_parsing_memory_tracking) [#29919](https://github.com/ClickHouse/ClickHouse/pull/29919) ([Azat Khuzhin](https://github.com/azat)). +* Fix some flaky tests [#29923](https://github.com/ClickHouse/ClickHouse/pull/29923) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix build due to conflicts in serverConstants [#29931](https://github.com/ClickHouse/ClickHouse/pull/29931) ([Azat Khuzhin](https://github.com/azat)). +* Minor changes [#29932](https://github.com/ClickHouse/ClickHouse/pull/29932) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove trash from SentryWriter [#29933](https://github.com/ClickHouse/ClickHouse/pull/29933) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove `printf` function usage. [#29935](https://github.com/ClickHouse/ClickHouse/pull/29935) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Stateless flaky tests fixes [#29947](https://github.com/ClickHouse/ClickHouse/pull/29947) ([Azat Khuzhin](https://github.com/azat)). +* Fix filtering by tuple (some conditions was lost during analyzing) [#29956](https://github.com/ClickHouse/ClickHouse/pull/29956) ([Azat Khuzhin](https://github.com/azat)). +* Allow memory profiler under sanitizers (ASan/UBsan/MSan only) [#29979](https://github.com/ClickHouse/ClickHouse/pull/29979) ([Azat Khuzhin](https://github.com/azat)). +* Tests naming fix [#29982](https://github.com/ClickHouse/ClickHouse/pull/29982) ([Maksim Kita](https://github.com/kitaisreal)). +* More timeouts in test scripts [#29992](https://github.com/ClickHouse/ClickHouse/pull/29992) ([alesapin](https://github.com/alesapin)). +* Update BoringSSL [#29998](https://github.com/ClickHouse/ClickHouse/pull/29998) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Remove streams from formats. [#30001](https://github.com/ClickHouse/ClickHouse/pull/30001) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Follow-up to [#29901](https://github.com/ClickHouse/ClickHouse/issues/29901) [#30003](https://github.com/ClickHouse/ClickHouse/pull/30003) ([Alexander Tokmakov](https://github.com/tavplubix)). +* More strict check for intersecting parts [#30005](https://github.com/ClickHouse/ClickHouse/pull/30005) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Ignore parallel removing warning in 00992_system_parts_race_condition_zookeeper_long [#30007](https://github.com/ClickHouse/ClickHouse/pull/30007) ([Azat Khuzhin](https://github.com/azat)). +* Try remove excessive logging [#30008](https://github.com/ClickHouse/ClickHouse/pull/30008) ([Alexander Tokmakov](https://github.com/tavplubix)). +* remove redundant dot in exception message [#30017](https://github.com/ClickHouse/ClickHouse/pull/30017) ([flynn](https://github.com/ucasfl)). +* Fix build [#30028](https://github.com/ClickHouse/ClickHouse/pull/30028) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Attach trace_log to stateless tests report as is [#30030](https://github.com/ClickHouse/ClickHouse/pull/30030) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove unused headers and handle exception 'unrecognised option' in clickhouse-local [#30053](https://github.com/ClickHouse/ClickHouse/pull/30053) ([Kruglov Pavel](https://github.com/Avogar)). +* clickhouse-test: replace clickhouse-driver with http interface (via http.client) [#30065](https://github.com/ClickHouse/ClickHouse/pull/30065) ([Azat Khuzhin](https://github.com/azat)). +* Fix hardware utilization info printing in client [#30072](https://github.com/ClickHouse/ClickHouse/pull/30072) ([Dmitry Novik](https://github.com/novikd)). +* cmake generator: unlink before creating a link [#30073](https://github.com/ClickHouse/ClickHouse/pull/30073) ([lehasm](https://github.com/lehasm)). +* SQL user defined functions fix alias [#30075](https://github.com/ClickHouse/ClickHouse/pull/30075) ([Maksim Kita](https://github.com/kitaisreal)). +* Add Greenhouse careers page to website [#30077](https://github.com/ClickHouse/ClickHouse/pull/30077) ([Cody Baker](https://github.com/codyrobert)). +* Update team photos on website [#30078](https://github.com/ClickHouse/ClickHouse/pull/30078) ([Cody Baker](https://github.com/codyrobert)). +* Add webinar signup promo to website homepage [#30079](https://github.com/ClickHouse/ClickHouse/pull/30079) ([Cody Baker](https://github.com/codyrobert)). +* test for rename atomic hanging [#30080](https://github.com/ClickHouse/ClickHouse/pull/30080) ([Denny Crane](https://github.com/den-crane)). +* Modify ConnectionPoolWithFailover get_priority ROUND_ROBIN comments [#30092](https://github.com/ClickHouse/ClickHouse/pull/30092) ([小路](https://github.com/nicelulu)). +* Fix flaky test 01939_network_send_bytes_metrics [#30134](https://github.com/ClickHouse/ClickHouse/pull/30134) ([Dmitry Novik](https://github.com/novikd)). +* System data skipping indices size fix test names [#30141](https://github.com/ClickHouse/ClickHouse/pull/30141) ([Maksim Kita](https://github.com/kitaisreal)). +* FunctionsJSON avoid copying object element during iteration [#30145](https://github.com/ClickHouse/ClickHouse/pull/30145) ([Maksim Kita](https://github.com/kitaisreal)). +* Disable fsync_metadata on CI [#30149](https://github.com/ClickHouse/ClickHouse/pull/30149) ([Azat Khuzhin](https://github.com/azat)). +* Make test_MemoryTracking::test_http not flaky [#30150](https://github.com/ClickHouse/ClickHouse/pull/30150) ([Azat Khuzhin](https://github.com/azat)). +* Add careers menu item to navigation [#30151](https://github.com/ClickHouse/ClickHouse/pull/30151) ([Cody Baker](https://github.com/codyrobert)). +* Update yandex logo on homepage [#30152](https://github.com/ClickHouse/ClickHouse/pull/30152) ([Cody Baker](https://github.com/codyrobert)). +* Remove stream interfaces [#30171](https://github.com/ClickHouse/ClickHouse/pull/30171) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Better interfaces for `IDataType` and `ISerialization` [#30174](https://github.com/ClickHouse/ClickHouse/pull/30174) ([Anton Popov](https://github.com/CurtizJ)). +* Add blog post for v21.10 release [#30186](https://github.com/ClickHouse/ClickHouse/pull/30186) ([Cody Baker](https://github.com/codyrobert)). +* Smaller smoothing window in throttler. [#30193](https://github.com/ClickHouse/ClickHouse/pull/30193) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix clang-tidy warnings in FunctionsJSON code [#30217](https://github.com/ClickHouse/ClickHouse/pull/30217) ([Azat Khuzhin](https://github.com/azat)). +* Fix --hung-check in clickhouse-test [#30218](https://github.com/ClickHouse/ClickHouse/pull/30218) ([Azat Khuzhin](https://github.com/azat)). +* FunctionsJSON updated [#30228](https://github.com/ClickHouse/ClickHouse/pull/30228) ([Maksim Kita](https://github.com/kitaisreal)). +* PolygonDictionary fix bytes_allocated [#30239](https://github.com/ClickHouse/ClickHouse/pull/30239) ([Maksim Kita](https://github.com/kitaisreal)). +* ComplexKeyHashedDictionary fix keys copy [#30241](https://github.com/ClickHouse/ClickHouse/pull/30241) ([Maksim Kita](https://github.com/kitaisreal)). +* Removing data streams folder [#30247](https://github.com/ClickHouse/ClickHouse/pull/30247) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* --stage for clickhouse-local [#30275](https://github.com/ClickHouse/ClickHouse/pull/30275) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Use forward declaration for Buffer<> in generic headers [#30276](https://github.com/ClickHouse/ClickHouse/pull/30276) ([Azat Khuzhin](https://github.com/azat)). +* Less threads in clickhouse-local, fix Ok. printing [#30282](https://github.com/ClickHouse/ClickHouse/pull/30282) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Adjust resource heavy tests [#30284](https://github.com/ClickHouse/ClickHouse/pull/30284) ([Raúl Marín](https://github.com/Algunenano)). +* Fix printing stacktraces for clickhouse-local [#30285](https://github.com/ClickHouse/ClickHouse/pull/30285) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix throwing syntax exception in clickhouse-local [#30288](https://github.com/ClickHouse/ClickHouse/pull/30288) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Various fixes to install procedure [#30295](https://github.com/ClickHouse/ClickHouse/pull/30295) ([Denis Glazachev](https://github.com/traceon)). +* Fix clickhouse-local break on timeout [#30297](https://github.com/ClickHouse/ClickHouse/pull/30297) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add RISC-V build [#30298](https://github.com/ClickHouse/ClickHouse/pull/30298) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Move SquashingTransform to Interpreters (to fix split build) [#30318](https://github.com/ClickHouse/ClickHouse/pull/30318) ([Azat Khuzhin](https://github.com/azat)). +* Increase default wait of the server start in clickhouse-test [#30320](https://github.com/ClickHouse/ClickHouse/pull/30320) ([Azat Khuzhin](https://github.com/azat)). +* Update memory optimisation for MergingSorted. [#30322](https://github.com/ClickHouse/ClickHouse/pull/30322) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Single sorting step [#30335](https://github.com/ClickHouse/ClickHouse/pull/30335) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Send table columns in clickhouse-local [#30336](https://github.com/ClickHouse/ClickHouse/pull/30336) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix consumed memory indication in clickhouse-client [#30337](https://github.com/ClickHouse/ClickHouse/pull/30337) ([Dmitry Novik](https://github.com/novikd)). +* Fix fuzzer build [#30344](https://github.com/ClickHouse/ClickHouse/pull/30344) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* ExecutablePool dictionary source fix borrow timeout milliseconds [#30345](https://github.com/ClickHouse/ClickHouse/pull/30345) ([Maksim Kita](https://github.com/kitaisreal)). +* StorageExecutable fix small issues [#30352](https://github.com/ClickHouse/ClickHouse/pull/30352) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix ca-bundle.crt in kerberized_hadoop/Dockerfile [#30358](https://github.com/ClickHouse/ClickHouse/pull/30358) ([Vladimir C](https://github.com/vdimir)). +* Update obsolete comments. [#30359](https://github.com/ClickHouse/ClickHouse/pull/30359) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Rename readWkt* functions to readWKT*, added an alias SVG for svg function [#30361](https://github.com/ClickHouse/ClickHouse/pull/30361) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix crash when minmax_count projection is used with primary key in partition expr [#30384](https://github.com/ClickHouse/ClickHouse/pull/30384) ([Amos Bird](https://github.com/amosbird)). +* Follow-up for [#30282](https://github.com/ClickHouse/ClickHouse/issues/30282) [#30412](https://github.com/ClickHouse/ClickHouse/pull/30412) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ExecutableUDF example [#30436](https://github.com/ClickHouse/ClickHouse/pull/30436) ([Maksim Kita](https://github.com/kitaisreal)). +* Use robot token in actions for statuses [#30439](https://github.com/ClickHouse/ClickHouse/pull/30439) ([alesapin](https://github.com/alesapin)). +* Remove statuses from actions [#30444](https://github.com/ClickHouse/ClickHouse/pull/30444) ([alesapin](https://github.com/alesapin)). +* Fix s3 for github actions [#30447](https://github.com/ClickHouse/ClickHouse/pull/30447) ([alesapin](https://github.com/alesapin)). +* ExecutableUDF example fix style check [#30451](https://github.com/ClickHouse/ClickHouse/pull/30451) ([Maksim Kita](https://github.com/kitaisreal)). +* Support VALUES format in async inserts [#30456](https://github.com/ClickHouse/ClickHouse/pull/30456) ([Anton Popov](https://github.com/CurtizJ)). +* Update release date and add training link [#30475](https://github.com/ClickHouse/ClickHouse/pull/30475) ([Cody Baker](https://github.com/codyrobert)). +* Fix horizontal scroll bar [#30476](https://github.com/ClickHouse/ClickHouse/pull/30476) ([Cody Baker](https://github.com/codyrobert)). +* SQLUserDefinedFunctions composition fix [#30483](https://github.com/ClickHouse/ClickHouse/pull/30483) ([Maksim Kita](https://github.com/kitaisreal)). +* Trying builds on github actions [#30493](https://github.com/ClickHouse/ClickHouse/pull/30493) ([alesapin](https://github.com/alesapin)). +* HashedArrayDictionary optimize read multiple attributes [#30501](https://github.com/ClickHouse/ClickHouse/pull/30501) ([Maksim Kita](https://github.com/kitaisreal)). +* StorageDictionary fix potential configuration race [#30502](https://github.com/ClickHouse/ClickHouse/pull/30502) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix style regressions on benchmark page [#30506](https://github.com/ClickHouse/ClickHouse/pull/30506) ([Cody Baker](https://github.com/codyrobert)). +* Change link in nav from community -> learn [#30508](https://github.com/ClickHouse/ClickHouse/pull/30508) ([Cody Baker](https://github.com/codyrobert)). +* Add placeholder to play.html inputs [#30509](https://github.com/ClickHouse/ClickHouse/pull/30509) ([Vitaly Orlov](https://github.com/orloffv)). +* Add bytes to stats and human readable rows to play.html [#30511](https://github.com/ClickHouse/ClickHouse/pull/30511) ([Vitaly Orlov](https://github.com/orloffv)). +* clickhouse-local: fix block lost in interactive mode [#30521](https://github.com/ClickHouse/ClickHouse/pull/30521) ([Azat Khuzhin](https://github.com/azat)). +* Remove check_columns argument from MergeTree code (false was never passed) [#30522](https://github.com/ClickHouse/ClickHouse/pull/30522) ([Azat Khuzhin](https://github.com/azat)). +* Fix typo and update NuRaft [#30550](https://github.com/ClickHouse/ClickHouse/pull/30550) ([alesapin](https://github.com/alesapin)). +* Refactoring in codec encrypted [#30564](https://github.com/ClickHouse/ClickHouse/pull/30564) ([Filatenkov Artur](https://github.com/FArthur-cmd)). +* Try to fix [#30397](https://github.com/ClickHouse/ClickHouse/issues/30397) [#30565](https://github.com/ClickHouse/ClickHouse/pull/30565) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Support Nullable(String) type in arrayStringConcat [#30566](https://github.com/ClickHouse/ClickHouse/pull/30566) ([Nikita Taranov](https://github.com/nickitat)). +* Function ngrams fixed tests [#30567](https://github.com/ClickHouse/ClickHouse/pull/30567) ([Maksim Kita](https://github.com/kitaisreal)). +* Test clickhouse local columns description fix number [#30568](https://github.com/ClickHouse/ClickHouse/pull/30568) ([Maksim Kita](https://github.com/kitaisreal)). +* Update documentation for distributed_push_down_limit [#30577](https://github.com/ClickHouse/ClickHouse/pull/30577) ([Azat Khuzhin](https://github.com/azat)). +* Fix tests that relies on checking stack size under TSan [#30579](https://github.com/ClickHouse/ClickHouse/pull/30579) ([Azat Khuzhin](https://github.com/azat)). +* Add metadata for *_log into tests artifacts [#30589](https://github.com/ClickHouse/ClickHouse/pull/30589) ([Azat Khuzhin](https://github.com/azat)). +* Fix LOGICAL_ERROR on connection draining in case of ECONNRESET [#30594](https://github.com/ClickHouse/ClickHouse/pull/30594) ([Azat Khuzhin](https://github.com/azat)). +* Adjust perf test for simdjson [#30596](https://github.com/ClickHouse/ClickHouse/pull/30596) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update minimum allowed compiler versions [#30597](https://github.com/ClickHouse/ClickHouse/pull/30597) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Replace estimated_size with optional for readFile/createReadBufferFromFileBase [#30611](https://github.com/ClickHouse/ClickHouse/pull/30611) ([Azat Khuzhin](https://github.com/azat)). +* RFC: Relax minimal clang version (set it to 12, was 13) [#30613](https://github.com/ClickHouse/ClickHouse/pull/30613) ([Azat Khuzhin](https://github.com/azat)). +* clickhouse-test: increase delay for initial SELECT 1 check [#30619](https://github.com/ClickHouse/ClickHouse/pull/30619) ([Azat Khuzhin](https://github.com/azat)). +* Update Client.cpp [#30636](https://github.com/ClickHouse/ClickHouse/pull/30636) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update LocalServer.cpp [#30637](https://github.com/ClickHouse/ClickHouse/pull/30637) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Typo fix in play.html [#30638](https://github.com/ClickHouse/ClickHouse/pull/30638) ([Vitaly Orlov](https://github.com/orloffv)). +* Fix argument types for now and now64 [#30639](https://github.com/ClickHouse/ClickHouse/pull/30639) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix intersecting parts in `parts_to_do` [#30651](https://github.com/ClickHouse/ClickHouse/pull/30651) ([Alexander Tokmakov](https://github.com/tavplubix)). +* HashedDictionaries added read performance tests [#30653](https://github.com/ClickHouse/ClickHouse/pull/30653) ([Maksim Kita](https://github.com/kitaisreal)). +* Change `alter_lock` from `RWLock` to `std::timed_mutex` [#30658](https://github.com/ClickHouse/ClickHouse/pull/30658) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Initialize custom TLDs in clickhouse-local [#30660](https://github.com/ClickHouse/ClickHouse/pull/30660) ([Azat Khuzhin](https://github.com/azat)). +* Add QueryProfilerRuns profile event [#30661](https://github.com/ClickHouse/ClickHouse/pull/30661) ([Azat Khuzhin](https://github.com/azat)). +* Switch everything left from `` to `` [#30662](https://github.com/ClickHouse/ClickHouse/pull/30662) ([Azat Khuzhin](https://github.com/azat)). +* Improve usability of `remote_url_allow_hosts` [#30673](https://github.com/ClickHouse/ClickHouse/pull/30673) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix indecency [#30337](https://github.com/ClickHouse/ClickHouse/issues/30337) [#30674](https://github.com/ClickHouse/ClickHouse/pull/30674) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Better wait for server start in integration tests [#30677](https://github.com/ClickHouse/ClickHouse/pull/30677) ([alesapin](https://github.com/alesapin)). +* Fix keeper zookeeper converter test [#30678](https://github.com/ClickHouse/ClickHouse/pull/30678) ([alesapin](https://github.com/alesapin)). +* Don't run build checks for documentation [#30681](https://github.com/ClickHouse/ClickHouse/pull/30681) ([alesapin](https://github.com/alesapin)). +* Refactoring of Log family [#30689](https://github.com/ClickHouse/ClickHouse/pull/30689) ([Vitaly Baranov](https://github.com/vitlibar)). +* Update hardware page colors [#30719](https://github.com/ClickHouse/ClickHouse/pull/30719) ([Cody Baker](https://github.com/codyrobert)). +* Fix test_part_uuid::test_part_uuid_wal [#30723](https://github.com/ClickHouse/ClickHouse/pull/30723) ([Azat Khuzhin](https://github.com/azat)). +* Fix gtest_disk_encrypted (for new readFile/createReadBufferFromFileBase() interfaces) [#30725](https://github.com/ClickHouse/ClickHouse/pull/30725) ([Azat Khuzhin](https://github.com/azat)). +* tests/ci/docker_images_check: add missing time import [#30727](https://github.com/ClickHouse/ClickHouse/pull/30727) ([Azat Khuzhin](https://github.com/azat)). +* Add functional tests to github actions [#30729](https://github.com/ClickHouse/ClickHouse/pull/30729) ([alesapin](https://github.com/alesapin)). +* Run pylint over python scripts for github actions [#30733](https://github.com/ClickHouse/ClickHouse/pull/30733) ([Azat Khuzhin](https://github.com/azat)). +* DictionarySource unknown column name in dictionary fix [#30736](https://github.com/ClickHouse/ClickHouse/pull/30736) ([Maksim Kita](https://github.com/kitaisreal)). +* Update 01083_expressions_in_engine_arguments.sql [#30741](https://github.com/ClickHouse/ClickHouse/pull/30741) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Performance tests tuning [#30773](https://github.com/ClickHouse/ClickHouse/pull/30773) ([Azat Khuzhin](https://github.com/azat)). +* Remove cruft [#30780](https://github.com/ClickHouse/ClickHouse/pull/30780) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix test 02022 [#30786](https://github.com/ClickHouse/ClickHouse/pull/30786) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Trying to make fuzzer check less hardcoded [#30795](https://github.com/ClickHouse/ClickHouse/pull/30795) ([alesapin](https://github.com/alesapin)). +* DictionarySource unknown column name fix [#30800](https://github.com/ClickHouse/ClickHouse/pull/30800) ([Maksim Kita](https://github.com/kitaisreal)). +* Add funding press release [#30806](https://github.com/ClickHouse/ClickHouse/pull/30806) ([Cody Baker](https://github.com/codyrobert)). +* Update installation success message [#30672](https://github.com/ClickHouse/ClickHouse/issues/30672) [#30830](https://github.com/ClickHouse/ClickHouse/pull/30830) ([Teja](https://github.com/tejasrivastav)). +* filelog engine tests improve [#30832](https://github.com/ClickHouse/ClickHouse/pull/30832) ([flynn](https://github.com/ucasfl)). +* Remove redundant from http buffer [#30837](https://github.com/ClickHouse/ClickHouse/pull/30837) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Docs check on github actions [#30839](https://github.com/ClickHouse/ClickHouse/pull/30839) ([alesapin](https://github.com/alesapin)). +* Fix fuzzer on master [#30841](https://github.com/ClickHouse/ClickHouse/pull/30841) ([alesapin](https://github.com/alesapin)). +* Disable check for ZooKeeper session uptime by default [#30847](https://github.com/ClickHouse/ClickHouse/pull/30847) ([Alexander Tokmakov](https://github.com/tavplubix)). +* enable modify table comment of rest table engine [#30852](https://github.com/ClickHouse/ClickHouse/pull/30852) ([flynn](https://github.com/ucasfl)). +* Fix typo [#30853](https://github.com/ClickHouse/ClickHouse/pull/30853) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fixed `--disable-net-host` in `runner` [#30863](https://github.com/ClickHouse/ClickHouse/pull/30863) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Fix protocol revision. [#30864](https://github.com/ClickHouse/ClickHouse/pull/30864) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add docker cleanup after actions [#30868](https://github.com/ClickHouse/ClickHouse/pull/30868) ([alesapin](https://github.com/alesapin)). +* Fix error message in Keeper handler [#30880](https://github.com/ClickHouse/ClickHouse/pull/30880) ([alesapin](https://github.com/alesapin)). +* Better handling of `xtables.lock` in `runner` [#30892](https://github.com/ClickHouse/ClickHouse/pull/30892) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Reimplement [#28639](https://github.com/ClickHouse/ClickHouse/issues/28639) [#30903](https://github.com/ClickHouse/ClickHouse/pull/30903) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Miscellaneous [#30917](https://github.com/ClickHouse/ClickHouse/pull/30917) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix yml in docs release [#30928](https://github.com/ClickHouse/ClickHouse/pull/30928) ([alesapin](https://github.com/alesapin)). +* Debug github event [#30929](https://github.com/ClickHouse/ClickHouse/pull/30929) ([alesapin](https://github.com/alesapin)). +* Fix docs release [#30933](https://github.com/ClickHouse/ClickHouse/pull/30933) ([alesapin](https://github.com/alesapin)). +* Fix style check [#30937](https://github.com/ClickHouse/ClickHouse/pull/30937) ([alesapin](https://github.com/alesapin)). +* Fix file progress for clickhouse-local [#30938](https://github.com/ClickHouse/ClickHouse/pull/30938) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix flacky test [#30940](https://github.com/ClickHouse/ClickHouse/pull/30940) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix reading from TinyLog [#30941](https://github.com/ClickHouse/ClickHouse/pull/30941) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add github to known hosts in docs release [#30947](https://github.com/ClickHouse/ClickHouse/pull/30947) ([alesapin](https://github.com/alesapin)). +* Parse json from response in ci checks [#30948](https://github.com/ClickHouse/ClickHouse/pull/30948) ([alesapin](https://github.com/alesapin)). + #### Testing Improvement * Implemented structure-aware fuzzing approach in ClickHouse for select statement parser. [#30012](https://github.com/ClickHouse/ClickHouse/pull/30012) ([Paul](https://github.com/PaulCher)). diff --git a/docs/changelogs/v21.11.10.1-stable.md b/docs/changelogs/v21.11.10.1-stable.md index f07eccd30c5..c180918bb07 100644 --- a/docs/changelogs/v21.11.10.1-stable.md +++ b/docs/changelogs/v21.11.10.1-stable.md @@ -1,2 +1,9 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.10.1-stable FIXME as compared to v21.11.9.1-stable diff --git a/docs/changelogs/v21.11.11.1-stable.md b/docs/changelogs/v21.11.11.1-stable.md index e46f43c53e0..922245d031e 100644 --- a/docs/changelogs/v21.11.11.1-stable.md +++ b/docs/changelogs/v21.11.11.1-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.11.1-stable FIXME as compared to v21.11.10.1-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v21.11.2.2-stable.md b/docs/changelogs/v21.11.2.2-stable.md index f48f91a9b13..9a11dfd03c5 100644 --- a/docs/changelogs/v21.11.2.2-stable.md +++ b/docs/changelogs/v21.11.2.2-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.2.2-stable FIXME as compared to v21.11.1.8636-prestable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) @@ -6,3 +13,7 @@ * Backported in [#31027](https://github.com/ClickHouse/ClickHouse/issues/31027): Using `formatRow` function with not row formats led to segfault. Don't allow to use this function with such formats (because it doesn't make sense). [#31001](https://github.com/ClickHouse/ClickHouse/pull/31001) ([Kruglov Pavel](https://github.com/Avogar)). * Backported in [#31026](https://github.com/ClickHouse/ClickHouse/issues/31026): Fix JSONValue/Query with quoted identifiers. This allows to have spaces in json path. Closes [#30971](https://github.com/ClickHouse/ClickHouse/issues/30971). [#31003](https://github.com/ClickHouse/ClickHouse/pull/31003) ([Kseniia Sumarokova](https://github.com/kssenii)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Return back accidentally removed code [#30996](https://github.com/ClickHouse/ClickHouse/pull/30996) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + diff --git a/docs/changelogs/v21.11.3.6-stable.md b/docs/changelogs/v21.11.3.6-stable.md index bf46ecec590..5db65d42c6d 100644 --- a/docs/changelogs/v21.11.3.6-stable.md +++ b/docs/changelogs/v21.11.3.6-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.3.6-stable FIXME as compared to v21.11.2.2-stable #### Bug Fix diff --git a/docs/changelogs/v21.11.4.14-stable.md b/docs/changelogs/v21.11.4.14-stable.md index b3d44b8c193..be661ad244d 100644 --- a/docs/changelogs/v21.11.4.14-stable.md +++ b/docs/changelogs/v21.11.4.14-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.4.14-stable FIXME as compared to v21.11.3.6-stable #### Bug Fix @@ -15,3 +22,9 @@ * Backported in [#31283](https://github.com/ClickHouse/ClickHouse/issues/31283): Rename setting value `read_threadpool` to `threadpool` for setting `remote_filesystem_read_method`. [#31224](https://github.com/ClickHouse/ClickHouse/pull/31224) ([Kseniia Sumarokova](https://github.com/kssenii)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix threadpool read for remote disks [#31112](https://github.com/ClickHouse/ClickHouse/pull/31112) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix check in async buffer [#31325](https://github.com/ClickHouse/ClickHouse/pull/31325) ([Kseniia Sumarokova](https://github.com/kssenii)). +* BloomFilter index check fix [#31334](https://github.com/ClickHouse/ClickHouse/pull/31334) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.11.5.33-stable.md b/docs/changelogs/v21.11.5.33-stable.md index 973c443d9f8..2895505715f 100644 --- a/docs/changelogs/v21.11.5.33-stable.md +++ b/docs/changelogs/v21.11.5.33-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.5.33-stable FIXME as compared to v21.11.4.14-stable #### Performance Improvement @@ -31,3 +38,7 @@ * Backported in [#32091](https://github.com/ClickHouse/ClickHouse/issues/32091): Some `GET_PART` entry might hang in replication queue if part is lost on all replicas and there are no other parts in the same partition. It's fixed in cases when partition key contains only columns of integer types or `Date[Time]`. Fixes [#31485](https://github.com/ClickHouse/ClickHouse/issues/31485). [#31887](https://github.com/ClickHouse/ClickHouse/pull/31887) ([Alexander Tokmakov](https://github.com/tavplubix)). * Backported in [#32020](https://github.com/ClickHouse/ClickHouse/issues/32020): Fix FileLog engine unnesessary create meta data directory when create table failed. Fix [#31962](https://github.com/ClickHouse/ClickHouse/issues/31962). [#31967](https://github.com/ClickHouse/ClickHouse/pull/31967) ([flynn](https://github.com/ucasfl)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Support toUInt8/toInt8 for if constant condition optimization. [#31866](https://github.com/ClickHouse/ClickHouse/pull/31866) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.11.6.7-stable.md b/docs/changelogs/v21.11.6.7-stable.md index 1f3df589466..c3127723a68 100644 --- a/docs/changelogs/v21.11.6.7-stable.md +++ b/docs/changelogs/v21.11.6.7-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.6.7-stable FIXME as compared to v21.11.5.33-stable #### Bug Fix @@ -22,3 +29,8 @@ * NO CL ENTRY: 'Manual backport of [#31766](https://github.com/ClickHouse/ClickHouse/issues/31766) into 21.11'. [#32202](https://github.com/ClickHouse/ClickHouse/pull/32202) ([Raúl Marín](https://github.com/Algunenano)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix data race in `removePartAndEnqueueFetch(...)` [#32119](https://github.com/ClickHouse/ClickHouse/pull/32119) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix possible Pipeline stuck in case of StrictResize processor. [#32270](https://github.com/ClickHouse/ClickHouse/pull/32270) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.11.7.9-stable.md b/docs/changelogs/v21.11.7.9-stable.md index 1d907ad0ce1..5595e7bc0a9 100644 --- a/docs/changelogs/v21.11.7.9-stable.md +++ b/docs/changelogs/v21.11.7.9-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.7.9-stable FIXME as compared to v21.11.6.7-stable #### Bug Fix @@ -13,3 +20,9 @@ * Backported in [#32617](https://github.com/ClickHouse/ClickHouse/issues/32617): Fix possible crash (or incorrect result) in case of `LowCardinality` arguments of window function. Fixes [#31114](https://github.com/ClickHouse/ClickHouse/issues/31114). [#31888](https://github.com/ClickHouse/ClickHouse/pull/31888) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix arraySlice with null args. [#32456](https://github.com/ClickHouse/ClickHouse/pull/32456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix crash in case of MATERIALIZE COLUMN with no default expression. [#32464](https://github.com/ClickHouse/ClickHouse/pull/32464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix queries with hasColumnInTable constant condition and non existing column [#32506](https://github.com/ClickHouse/ClickHouse/pull/32506) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.11.8.4-stable.md b/docs/changelogs/v21.11.8.4-stable.md index 0826b473758..c670180a52e 100644 --- a/docs/changelogs/v21.11.8.4-stable.md +++ b/docs/changelogs/v21.11.8.4-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.8.4-stable FIXME as compared to v21.11.7.9-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) @@ -10,3 +17,8 @@ * Backported in [#32891](https://github.com/ClickHouse/ClickHouse/issues/32891): Fix LOGICAL_ERROR when the target of a materialized view is a JOIN or a SET table. [#32669](https://github.com/ClickHouse/ClickHouse/pull/32669) ([Raúl Marín](https://github.com/Algunenano)). * Backported in [#32792](https://github.com/ClickHouse/ClickHouse/issues/32792): fix crash when used fuzzBits with multiply same FixedString, Close [#32737](https://github.com/ClickHouse/ClickHouse/issues/32737). [#32755](https://github.com/ClickHouse/ClickHouse/pull/32755) ([SuperDJY](https://github.com/cmsxbc)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix data race in ProtobufSchemas [#27822](https://github.com/ClickHouse/ClickHouse/pull/27822) ([filimonov](https://github.com/filimonov)). +* Always apply const-condition-if optimization. [#32858](https://github.com/ClickHouse/ClickHouse/pull/32858) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.11.9.1-stable.md b/docs/changelogs/v21.11.9.1-stable.md index c1754614c3c..bca99350b47 100644 --- a/docs/changelogs/v21.11.9.1-stable.md +++ b/docs/changelogs/v21.11.9.1-stable.md @@ -1,6 +1,19 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.11.9.1-stable FIXME as compared to v21.11.8.4-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) * Backported in [#33181](https://github.com/ClickHouse/ClickHouse/issues/33181): Server might fail to start if database with `MySQL` engine cannot connect to MySQL server, it's fixed. Fixes [#14441](https://github.com/ClickHouse/ClickHouse/issues/14441). [#32802](https://github.com/ClickHouse/ClickHouse/pull/32802) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Merge [#33024](https://github.com/ClickHouse/ClickHouse/issues/33024) [#33061](https://github.com/ClickHouse/ClickHouse/pull/33061) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33022](https://github.com/ClickHouse/ClickHouse/issues/33022) [#33062](https://github.com/ClickHouse/ClickHouse/pull/33062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33050](https://github.com/ClickHouse/ClickHouse/issues/33050) [#33065](https://github.com/ClickHouse/ClickHouse/pull/33065) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + diff --git a/docs/changelogs/v21.12.1.9017-prestable.md b/docs/changelogs/v21.12.1.9017-prestable.md index f5e036c9c52..7ca0cbc3605 100644 --- a/docs/changelogs/v21.12.1.9017-prestable.md +++ b/docs/changelogs/v21.12.1.9017-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.12.1.9017-prestable FIXME as compared to v21.11.1.8636-prestable #### Backward Incompatible Change @@ -21,7 +28,7 @@ * Exposes all GlobalThreadPool configurations to the configuration files. [#31285](https://github.com/ClickHouse/ClickHouse/pull/31285) ([Tomáš Hromada](https://github.com/gyfis)). * Aliyun OSS Storage support. [#31286](https://github.com/ClickHouse/ClickHouse/pull/31286) ([cfcz48](https://github.com/cfcz48)). * Allow to print/parse names and types of colums in CustomSeparated input/output format. Add formats CustomSeparatedWithNames/WithNamesAndTypes similar to TSVWithNames/WithNamesAndTypes. [#31434](https://github.com/ClickHouse/ClickHouse/pull/31434) ([Kruglov Pavel](https://github.com/Avogar)). -* - Basic access authentication for http/url functions. [#31648](https://github.com/ClickHouse/ClickHouse/pull/31648) ([michael1589](https://github.com/michael1589)). +* - Basic access authentication for http/url functions. [#31648](https://github.com/ClickHouse/ClickHouse/pull/31648) ([Peng Liu](https://github.com/michael1589)). #### Performance Improvement * ... Allow to split GraphiteMergeTree rollup rules for plain/tagged metrics (optional rule_type field). [#25122](https://github.com/ClickHouse/ClickHouse/pull/25122) ([Michail Safronov](https://github.com/msaf1980)). @@ -54,7 +61,7 @@ * Add settings `merge_tree_min_rows_for_concurrent_read_for_remote_filesystem` and `merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem`. [#30970](https://github.com/ClickHouse/ClickHouse/pull/30970) ([Kseniia Sumarokova](https://github.com/kssenii)). * Do not allow to drop a table or dictionary if some tables or dictionaries depend on it. [#30977](https://github.com/ClickHouse/ClickHouse/pull/30977) ([Alexander Tokmakov](https://github.com/tavplubix)). * Only grab AlterLock when we do alter command. Let's see if the assumption is correct. [#31010](https://github.com/ClickHouse/ClickHouse/pull/31010) ([Amos Bird](https://github.com/amosbird)). -* The local session inside a ClickHouse dictionary source won't send its events to the session log anymore. This fixes a possible deadlock (tsan alert) on shutdown. Also this PR fixes flaky `test_dictionaries_dependency_xml/`. [#31013](https://github.com/ClickHouse/ClickHouse/pull/31013) ([Vitaly Baranov](https://github.com/vitlibar)). +* The local session inside a Clickhouse dictionary source won't send its events to the session log anymore. This fixes a possible deadlock (tsan alert) on shutdown. Also this PR fixes flaky `test_dictionaries_dependency_xml/`. [#31013](https://github.com/ClickHouse/ClickHouse/pull/31013) ([Vitaly Baranov](https://github.com/vitlibar)). * Cancel vertical merges when partition is dropped. This is a follow-up of https://github.com/ClickHouse/ClickHouse/pull/25684 and https://github.com/ClickHouse/ClickHouse/pull/30996. [#31057](https://github.com/ClickHouse/ClickHouse/pull/31057) ([Amos Bird](https://github.com/amosbird)). * Support `IF EXISTS` modifier for `RENAME DATABASE`/`TABLE`/`DICTIONARY` query, If this directive is used, one will not get an error if the DATABASE/TABLE/DICTIONARY to be renamed doesn't exist. [#31081](https://github.com/ClickHouse/ClickHouse/pull/31081) ([victorgao](https://github.com/kafka1991)). * Function name normalization for ALTER queries. This helps avoid metadata mismatch between creating table with indices/projections and adding indices/projections via alter commands. This is a follow-up PR of https://github.com/ClickHouse/ClickHouse/pull/20174. Mark as improvements as there are no bug reports and the senario is somehow rare. [#31095](https://github.com/ClickHouse/ClickHouse/pull/31095) ([Amos Bird](https://github.com/amosbird)). @@ -204,3 +211,216 @@ * NO CL ENTRY: 'Revert "Add a test with 20000 mutations in one query"'. [#32326](https://github.com/ClickHouse/ClickHouse/pull/32326) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * NO CL ENTRY: 'Revert "Revert "Add a test with 20000 mutations in one query""'. [#32327](https://github.com/ClickHouse/ClickHouse/pull/32327) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Refactor pipeline executor [#19587](https://github.com/ClickHouse/ClickHouse/pull/19587) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Support NULLS FIRST in KeyCondition [#29528](https://github.com/ClickHouse/ClickHouse/pull/29528) ([DimasKovas](https://github.com/DimasKovas)). +* Integration test improvements [#29806](https://github.com/ClickHouse/ClickHouse/pull/29806) ([Ilya Yatsishin](https://github.com/qoega)). +* Do not allow zero-length reads [#30190](https://github.com/ClickHouse/ClickHouse/pull/30190) ([Azat Khuzhin](https://github.com/azat)). +* Fix test_backward_compatibility [#30950](https://github.com/ClickHouse/ClickHouse/pull/30950) ([Ilya Yatsishin](https://github.com/qoega)). +* Add stress test to github actions [#30952](https://github.com/ClickHouse/ClickHouse/pull/30952) ([alesapin](https://github.com/alesapin)). +* Try smaller blacklist of non parallel integration tests [#30963](https://github.com/ClickHouse/ClickHouse/pull/30963) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix flacky test [#30967](https://github.com/ClickHouse/ClickHouse/pull/30967) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Move access-rights source code [#30973](https://github.com/ClickHouse/ClickHouse/pull/30973) ([Vitaly Baranov](https://github.com/vitlibar)). +* Set output_format_avro_rows_in_file default to 1 [#30990](https://github.com/ClickHouse/ClickHouse/pull/30990) ([Kruglov Pavel](https://github.com/Avogar)). +* Remove remaining usages of Y_IGNORE [#30993](https://github.com/ClickHouse/ClickHouse/pull/30993) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Return back accidentally removed code [#30996](https://github.com/ClickHouse/ClickHouse/pull/30996) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Rename AccessControlManager [#30998](https://github.com/ClickHouse/ClickHouse/pull/30998) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add fuzzer check to actions [#31002](https://github.com/ClickHouse/ClickHouse/pull/31002) ([alesapin](https://github.com/alesapin)). +* Small refactoring in formats [#31004](https://github.com/ClickHouse/ClickHouse/pull/31004) ([Kruglov Pavel](https://github.com/Avogar)). +* Changelog for version 21.11 [#31014](https://github.com/ClickHouse/ClickHouse/pull/31014) ([Rich Raposa](https://github.com/rfraposa)). +* perf: add missing DROP TABLE queries [#31028](https://github.com/ClickHouse/ClickHouse/pull/31028) ([Azat Khuzhin](https://github.com/azat)). +* Tune perf tests configs/scripts [#31029](https://github.com/ClickHouse/ClickHouse/pull/31029) ([Azat Khuzhin](https://github.com/azat)). +* Remove metric_log/part_log overrides in tests (enabled by default) [#31030](https://github.com/ClickHouse/ClickHouse/pull/31030) ([Azat Khuzhin](https://github.com/azat)). +* improve error message while using OFFSET FETCH clause without ORDER BY [#31031](https://github.com/ClickHouse/ClickHouse/pull/31031) ([SuperDJY](https://github.com/cmsxbc)). +* Log size of remapped memory (remap_executable) [#31033](https://github.com/ClickHouse/ClickHouse/pull/31033) ([Azat Khuzhin](https://github.com/azat)). +* Separate option for enabling fuse syntax for sum, avg, count [#31035](https://github.com/ClickHouse/ClickHouse/pull/31035) ([Vladimir C](https://github.com/vdimir)). +* Add integration test on top of github actions [#31045](https://github.com/ClickHouse/ClickHouse/pull/31045) ([alesapin](https://github.com/alesapin)). +* Fix intersecting parts in `parts_to_do` 2 [#31060](https://github.com/ClickHouse/ClickHouse/pull/31060) ([Alexander Tokmakov](https://github.com/tavplubix)). +* perf: switch *_log tables to Memory engine (attempt to reduce cache misses) [#31063](https://github.com/ClickHouse/ClickHouse/pull/31063) ([Azat Khuzhin](https://github.com/azat)). +* Add new employee photos to team [#31084](https://github.com/ClickHouse/ClickHouse/pull/31084) ([Cody Baker](https://github.com/codyrobert)). +* Update button widths for responsive sizing [#31085](https://github.com/ClickHouse/ClickHouse/pull/31085) ([Cody Baker](https://github.com/codyrobert)). +* Add overflow to benchmark tables [#31086](https://github.com/ClickHouse/ClickHouse/pull/31086) ([Cody Baker](https://github.com/codyrobert)). +* Remove padding below greenhouse iframe [#31087](https://github.com/ClickHouse/ClickHouse/pull/31087) ([Cody Baker](https://github.com/codyrobert)). +* Crb update case study cards [#31088](https://github.com/ClickHouse/ClickHouse/pull/31088) ([Cody Baker](https://github.com/codyrobert)). +* Fix threadpool read for remote disks [#31112](https://github.com/ClickHouse/ClickHouse/pull/31112) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Doc build: remove single.md [#31118](https://github.com/ClickHouse/ClickHouse/pull/31118) ([lehasm](https://github.com/lehasm)). +* remove unnecessary assert in StorageFileLog [#31119](https://github.com/ClickHouse/ClickHouse/pull/31119) ([nauta](https://github.com/nautaa)). +* Add lambda for approve [#31139](https://github.com/ClickHouse/ClickHouse/pull/31139) ([alesapin](https://github.com/alesapin)). +* Do not include unnecessary experimental/type_traits [#31147](https://github.com/ClickHouse/ClickHouse/pull/31147) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Disable optimize_syntax_fuse_functions by default [#31149](https://github.com/ClickHouse/ClickHouse/pull/31149) ([Vladimir C](https://github.com/vdimir)). +* Add pvs studio to actions [#31156](https://github.com/ClickHouse/ClickHouse/pull/31156) ([alesapin](https://github.com/alesapin)). +* Add cherry-pick on github actions [#31158](https://github.com/ClickHouse/ClickHouse/pull/31158) ([alesapin](https://github.com/alesapin)). +* correct disk space calculations [#31159](https://github.com/ClickHouse/ClickHouse/pull/31159) ([Alexandre Snarskii](https://github.com/snar)). +* Fix typo [#31164](https://github.com/ClickHouse/ClickHouse/pull/31164) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update text on thank you page [#31166](https://github.com/ClickHouse/ClickHouse/pull/31166) ([Cody Baker](https://github.com/codyrobert)). +* Add unit tests to CI [#31175](https://github.com/ClickHouse/ClickHouse/pull/31175) ([alesapin](https://github.com/alesapin)). +* Debug cherry-pick CI [#31177](https://github.com/ClickHouse/ClickHouse/pull/31177) ([alesapin](https://github.com/alesapin)). +* Update docker_compose_postgres.yml [#31179](https://github.com/ClickHouse/ClickHouse/pull/31179) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix integration tests [#31223](https://github.com/ClickHouse/ClickHouse/pull/31223) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Relax test 02026_storage_filelog_largefile.sh [#31225](https://github.com/ClickHouse/ClickHouse/pull/31225) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix typo in USE_MYSQL check [#31226](https://github.com/ClickHouse/ClickHouse/pull/31226) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Download ccache if not exists in builds [#31227](https://github.com/ClickHouse/ClickHouse/pull/31227) ([alesapin](https://github.com/alesapin)). +* Disable fuzzer builds in CI [#31244](https://github.com/ClickHouse/ClickHouse/pull/31244) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Add flaky check to new CI [#31248](https://github.com/ClickHouse/ClickHouse/pull/31248) ([alesapin](https://github.com/alesapin)). +* Fix test [#31250](https://github.com/ClickHouse/ClickHouse/pull/31250) ([Kseniia Sumarokova](https://github.com/kssenii)). +* move InputCreatorFunc to InputCreator [#31258](https://github.com/ClickHouse/ClickHouse/pull/31258) ([Alex Cao](https://github.com/cccgp)). +* Print warning during old directories cleanup in MergeTree only if it is old [#31259](https://github.com/ClickHouse/ClickHouse/pull/31259) ([Azat Khuzhin](https://github.com/azat)). +* Cleanup extern ProfileEvents/CurrentMetrics and add a style check [#31260](https://github.com/ClickHouse/ClickHouse/pull/31260) ([Azat Khuzhin](https://github.com/azat)). +* Fix and refactor WriteBiffer-s a little [#31265](https://github.com/ClickHouse/ClickHouse/pull/31265) ([Kruglov Pavel](https://github.com/Avogar)). +* Followup to ccache build [#31287](https://github.com/ClickHouse/ClickHouse/pull/31287) ([alesapin](https://github.com/alesapin)). +* Add compatibility check [#31294](https://github.com/ClickHouse/ClickHouse/pull/31294) ([alesapin](https://github.com/alesapin)). +* Add assertions to ZooKeeperLock [#31295](https://github.com/ClickHouse/ClickHouse/pull/31295) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add split build check [#31299](https://github.com/ClickHouse/ClickHouse/pull/31299) ([alesapin](https://github.com/alesapin)). +* Remove strange code from mutations [#31300](https://github.com/ClickHouse/ClickHouse/pull/31300) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Disable integration tests in new CI [#31301](https://github.com/ClickHouse/ClickHouse/pull/31301) ([alesapin](https://github.com/alesapin)). +* Merging [#31081](https://github.com/ClickHouse/ClickHouse/issues/31081) [#31305](https://github.com/ClickHouse/ClickHouse/pull/31305) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Debug rabbitmq tests [#31316](https://github.com/ClickHouse/ClickHouse/pull/31316) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix possible data-race in case of query cancellation with async_socket_for_remote [#31317](https://github.com/ClickHouse/ClickHouse/pull/31317) ([Azat Khuzhin](https://github.com/azat)). +* Improve fuzzer report in case of fuzzer killed [#31324](https://github.com/ClickHouse/ClickHouse/pull/31324) ([Azat Khuzhin](https://github.com/azat)). +* Fix check in async buffer [#31325](https://github.com/ClickHouse/ClickHouse/pull/31325) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add Blog Post for 21.11 Release Update [#31326](https://github.com/ClickHouse/ClickHouse/pull/31326) ([Cody Baker](https://github.com/codyrobert)). +* Add blog post for Moscow meetup [#31327](https://github.com/ClickHouse/ClickHouse/pull/31327) ([Cody Baker](https://github.com/codyrobert)). +* Do not try to resolve temporary tables from global context [#31333](https://github.com/ClickHouse/ClickHouse/pull/31333) ([Azat Khuzhin](https://github.com/azat)). +* BloomFilter index check fix [#31334](https://github.com/ClickHouse/ClickHouse/pull/31334) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove some copypaste from CI [#31340](https://github.com/ClickHouse/ClickHouse/pull/31340) ([alesapin](https://github.com/alesapin)). +* Fix test_kafka_insert_avro by pinning avro version [#31387](https://github.com/ClickHouse/ClickHouse/pull/31387) ([Azat Khuzhin](https://github.com/azat)). +* Fix QueryScope in MaterializedMySQLSyncThread [#31392](https://github.com/ClickHouse/ClickHouse/pull/31392) ([Azat Khuzhin](https://github.com/azat)). +* Check stderr is writable before reopining it (to avoid losing errors) [#31393](https://github.com/ClickHouse/ClickHouse/pull/31393) ([Azat Khuzhin](https://github.com/azat)). +* Remove thread_local std::string [#31400](https://github.com/ClickHouse/ClickHouse/pull/31400) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix client [#31403](https://github.com/ClickHouse/ClickHouse/pull/31403) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove excessive debug info from the log message in DDLWorker [#31406](https://github.com/ClickHouse/ClickHouse/pull/31406) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Turn on more CI checks [#31413](https://github.com/ClickHouse/ClickHouse/pull/31413) ([alesapin](https://github.com/alesapin)). +* Update description for webinar calendar links [#31433](https://github.com/ClickHouse/ClickHouse/pull/31433) ([Cody Baker](https://github.com/codyrobert)). +* Trying to debug integration tests [#31443](https://github.com/ClickHouse/ClickHouse/pull/31443) ([alesapin](https://github.com/alesapin)). +* Try increase `snapshot_distance` for functional tests [#31448](https://github.com/ClickHouse/ClickHouse/pull/31448) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Minor improvement for test_replicated_fetches_bandwidth [#31451](https://github.com/ClickHouse/ClickHouse/pull/31451) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Merging [#18787](https://github.com/ClickHouse/ClickHouse/issues/18787) (Constraints) [#31476](https://github.com/ClickHouse/ClickHouse/pull/31476) ([Anton Popov](https://github.com/CurtizJ)). +* Crb support page [#31490](https://github.com/ClickHouse/ClickHouse/pull/31490) ([Cody Baker](https://github.com/codyrobert)). +* Add new team members to company page [#31491](https://github.com/ClickHouse/ClickHouse/pull/31491) ([Cody Baker](https://github.com/codyrobert)). +* [ci] whitelist codyrobert [#31492](https://github.com/ClickHouse/ClickHouse/pull/31492) ([Ivan Blinkov](https://github.com/blinkov)). +* Reapply style changes to hardware page [#31506](https://github.com/ClickHouse/ClickHouse/pull/31506) ([Cody Baker](https://github.com/codyrobert)). +* Split row policy and quota headers [#31509](https://github.com/ClickHouse/ClickHouse/pull/31509) ([Vitaly Baranov](https://github.com/vitlibar)). +* Do not clean iptables rules in session-scope fixture [#31527](https://github.com/ClickHouse/ClickHouse/pull/31527) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Push tests results to CI database [#31540](https://github.com/ClickHouse/ClickHouse/pull/31540) ([alesapin](https://github.com/alesapin)). +* Remove strange multimap for mutations in StorageMergeTree [#31542](https://github.com/ClickHouse/ClickHouse/pull/31542) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove duplicated not compressed logs from CI (actions) [#31544](https://github.com/ClickHouse/ClickHouse/pull/31544) ([Azat Khuzhin](https://github.com/azat)). +* Fix 02010_lc_native flakiness (Query with id = 123456 is already running) [#31556](https://github.com/ClickHouse/ClickHouse/pull/31556) ([Azat Khuzhin](https://github.com/azat)). +* Make 01114_database_atomic more stable in debug builds [#31564](https://github.com/ClickHouse/ClickHouse/pull/31564) ([Azat Khuzhin](https://github.com/azat)). +* Fix MySQLWire format (this will also fix performance tests) [#31565](https://github.com/ClickHouse/ClickHouse/pull/31565) ([Azat Khuzhin](https://github.com/azat)). +* get Build ID via Section headers first [#31566](https://github.com/ClickHouse/ClickHouse/pull/31566) ([Ilya Golshtein](https://github.com/ilejn)). +* Try to debug expired sessions [#31584](https://github.com/ClickHouse/ClickHouse/pull/31584) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix cleanup in integration tests [#31605](https://github.com/ClickHouse/ClickHouse/pull/31605) ([Vitaly Baranov](https://github.com/vitlibar)). +* Stop all periodic reloading of all the configuration files on shutdown earlier [#31607](https://github.com/ClickHouse/ClickHouse/pull/31607) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix build requirements for unit tests [#31617](https://github.com/ClickHouse/ClickHouse/pull/31617) ([alesapin](https://github.com/alesapin)). +* Add workflow run for release branches [#31618](https://github.com/ClickHouse/ClickHouse/pull/31618) ([alesapin](https://github.com/alesapin)). +* Other event for release PR [#31619](https://github.com/ClickHouse/ClickHouse/pull/31619) ([alesapin](https://github.com/alesapin)). +* Trying push event again [#31623](https://github.com/ClickHouse/ClickHouse/pull/31623) ([alesapin](https://github.com/alesapin)). +* Add github actions for master [#31629](https://github.com/ClickHouse/ClickHouse/pull/31629) ([alesapin](https://github.com/alesapin)). +* Fix master yml [#31630](https://github.com/ClickHouse/ClickHouse/pull/31630) ([alesapin](https://github.com/alesapin)). +* fix kerberized_hadoop image [#31637](https://github.com/ClickHouse/ClickHouse/pull/31637) ([Constantine Peresypkin](https://github.com/pkit)). +* [ci] add flickerbox-tom to whitelist [#31651](https://github.com/ClickHouse/ClickHouse/pull/31651) ([Ivan Blinkov](https://github.com/blinkov)). +* Try to fix possible data race in RemoteQueryExecutorReadContext [#31652](https://github.com/ClickHouse/ClickHouse/pull/31652) ([Kruglov Pavel](https://github.com/Avogar)). +* Integration tests flaky check and small fixes [#31654](https://github.com/ClickHouse/ClickHouse/pull/31654) ([alesapin](https://github.com/alesapin)). +* Update base64 library [#31677](https://github.com/ClickHouse/ClickHouse/pull/31677) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* fix typo [#31678](https://github.com/ClickHouse/ClickHouse/pull/31678) ([flynn](https://github.com/ucasfl)). +* Try fix OOMs with TSAN [#31685](https://github.com/ClickHouse/ClickHouse/pull/31685) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix workflow in master [#31688](https://github.com/ClickHouse/ClickHouse/pull/31688) ([alesapin](https://github.com/alesapin)). +* Add perf test for writing valid UTF8 [#31695](https://github.com/ClickHouse/ClickHouse/pull/31695) ([Kruglov Pavel](https://github.com/Avogar)). +* hdfs disable stderr logging [#31703](https://github.com/ClickHouse/ClickHouse/pull/31703) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix possible Logical error: Cannot write to finalized buffer [#31712](https://github.com/ClickHouse/ClickHouse/pull/31712) ([Kruglov Pavel](https://github.com/Avogar)). +* 02050: Use CLICKHOUSE_TMP and delete files when finished [#31713](https://github.com/ClickHouse/ClickHouse/pull/31713) ([Raúl Marín](https://github.com/Algunenano)). +* Make 02112_with_fill_interval independent of the server timezone [#31714](https://github.com/ClickHouse/ClickHouse/pull/31714) ([Raúl Marín](https://github.com/Algunenano)). +* 02010_lc_native: Generate a new id for each query [#31720](https://github.com/ClickHouse/ClickHouse/pull/31720) ([Raúl Marín](https://github.com/Algunenano)). +* 00623_replicated_truncate_table_zookeeper_long: Wait for truncate in replicas [#31721](https://github.com/ClickHouse/ClickHouse/pull/31721) ([Raúl Marín](https://github.com/Algunenano)). +* Try to push data into another ci database. [#31724](https://github.com/ClickHouse/ClickHouse/pull/31724) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Remove OpenCL completely [#31744](https://github.com/ClickHouse/ClickHouse/pull/31744) ([Timur Magomedov](https://github.com/tmagomedov)). +* Fix diff for backports. [#31765](https://github.com/ClickHouse/ClickHouse/pull/31765) ([alesapin](https://github.com/alesapin)). +* Fail fasttest, builds and functional checks if some tests was not successful [#31767](https://github.com/ClickHouse/ClickHouse/pull/31767) ([alesapin](https://github.com/alesapin)). +* Improve how queries are output in the performance dashboard [#31780](https://github.com/ClickHouse/ClickHouse/pull/31780) ([Raúl Marín](https://github.com/Algunenano)). +* Use version from git describe in builds [#31782](https://github.com/ClickHouse/ClickHouse/pull/31782) ([alesapin](https://github.com/alesapin)). +* Fix stylecheck for tests/ci/push_to_artifactory.py [#31798](https://github.com/ClickHouse/ClickHouse/pull/31798) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Shorter stress and fuzzer tests [#31803](https://github.com/ClickHouse/ClickHouse/pull/31803) ([alesapin](https://github.com/alesapin)). +* Fix oss-fuzz build [#31818](https://github.com/ClickHouse/ClickHouse/pull/31818) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix check in approve lambda [#31821](https://github.com/ClickHouse/ClickHouse/pull/31821) ([alesapin](https://github.com/alesapin)). +* Cover query_views_log [#31825](https://github.com/ClickHouse/ClickHouse/pull/31825) ([Azat Khuzhin](https://github.com/azat)). +* Forbid files that differ only by character case [#31834](https://github.com/ClickHouse/ClickHouse/pull/31834) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Added ubsan suppression for libprotobuf-mutator [#31835](https://github.com/ClickHouse/ClickHouse/pull/31835) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Update 01155_rename_move_materialized_view.sql [#31849](https://github.com/ClickHouse/ClickHouse/pull/31849) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix style. [#31850](https://github.com/ClickHouse/ClickHouse/pull/31850) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Minor improvements to DUMP macro [#31858](https://github.com/ClickHouse/ClickHouse/pull/31858) ([Vasily Nemkov](https://github.com/Enmk)). +* Get rid of build numbers and simplify builds paths in S3 [#31861](https://github.com/ClickHouse/ClickHouse/pull/31861) ([alesapin](https://github.com/alesapin)). +* Support toUInt8/toInt8 for if constant condition optimization. [#31866](https://github.com/ClickHouse/ClickHouse/pull/31866) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Added -no-sanitize=unsigned-integer-overflow build flag [#31881](https://github.com/ClickHouse/ClickHouse/pull/31881) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix typos [#31886](https://github.com/ClickHouse/ClickHouse/pull/31886) ([Anton Popov](https://github.com/CurtizJ)). +* Try to fix flacky test. [#31889](https://github.com/ClickHouse/ClickHouse/pull/31889) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Reduce the files that depend on parser headers [#31896](https://github.com/ClickHouse/ClickHouse/pull/31896) ([Raúl Marín](https://github.com/Algunenano)). +* Fix magic_enum for debug helpers (fixes build w/ USE_DEBUG_HELPERS) [#31922](https://github.com/ClickHouse/ClickHouse/pull/31922) ([Azat Khuzhin](https://github.com/azat)). +* Remove some trash from build [#31923](https://github.com/ClickHouse/ClickHouse/pull/31923) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add json type to changes in documentation [#31926](https://github.com/ClickHouse/ClickHouse/pull/31926) ([alesapin](https://github.com/alesapin)). +* fix some broken links [#31948](https://github.com/ClickHouse/ClickHouse/pull/31948) ([Ramazan Polat](https://github.com/ramazanpolat)). +* Kill container in integration tests if it's already running [#31950](https://github.com/ClickHouse/ClickHouse/pull/31950) ([alesapin](https://github.com/alesapin)). +* Drop libc-headers [#31951](https://github.com/ClickHouse/ClickHouse/pull/31951) ([Raúl Marín](https://github.com/Algunenano)). +* Give some love to macOS platform [#31957](https://github.com/ClickHouse/ClickHouse/pull/31957) ([Denis Glazachev](https://github.com/traceon)). +* Fix segfault in MaterializedMySQL [#31960](https://github.com/ClickHouse/ClickHouse/pull/31960) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix docs check [#31980](https://github.com/ClickHouse/ClickHouse/pull/31980) ([alesapin](https://github.com/alesapin)). +* Make stress tests slightly more stable [#31985](https://github.com/ClickHouse/ClickHouse/pull/31985) ([alesapin](https://github.com/alesapin)). +* Add rest functional tests to CI [#31987](https://github.com/ClickHouse/ClickHouse/pull/31987) ([alesapin](https://github.com/alesapin)). +* Add special builds to CI [#31991](https://github.com/ClickHouse/ClickHouse/pull/31991) ([alesapin](https://github.com/alesapin)). +* Run less tests for backport branches [#31992](https://github.com/ClickHouse/ClickHouse/pull/31992) ([alesapin](https://github.com/alesapin)). +* Fix race in ParallelFormattingOutputFormat constructor [#32004](https://github.com/ClickHouse/ClickHouse/pull/32004) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix build on master [#32009](https://github.com/ClickHouse/ClickHouse/pull/32009) ([alesapin](https://github.com/alesapin)). +* Fix style-check for ProfileEvents checking [#32033](https://github.com/ClickHouse/ClickHouse/pull/32033) ([Azat Khuzhin](https://github.com/azat)). +* Provide clickhouse binary w/o debug symbols (stripped) in fasttest [#32036](https://github.com/ClickHouse/ClickHouse/pull/32036) ([Azat Khuzhin](https://github.com/azat)). +* Minor fixes for `StorageMergeTree` [#32037](https://github.com/ClickHouse/ClickHouse/pull/32037) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Remove most of old checks [#32041](https://github.com/ClickHouse/ClickHouse/pull/32041) ([alesapin](https://github.com/alesapin)). +* Remove fast test from master [#32042](https://github.com/ClickHouse/ClickHouse/pull/32042) ([alesapin](https://github.com/alesapin)). +* Better scripts for runners [#32043](https://github.com/ClickHouse/ClickHouse/pull/32043) ([alesapin](https://github.com/alesapin)). +* Fix force tests label [#32044](https://github.com/ClickHouse/ClickHouse/pull/32044) ([alesapin](https://github.com/alesapin)). +* Don't run checks for label event [#32046](https://github.com/ClickHouse/ClickHouse/pull/32046) ([alesapin](https://github.com/alesapin)). +* Fix flaky test 00925 [#32050](https://github.com/ClickHouse/ClickHouse/pull/32050) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Cancel redundant checks with lambda [#32051](https://github.com/ClickHouse/ClickHouse/pull/32051) ([alesapin](https://github.com/alesapin)). +* Fix flaky integration test for MaterializedMySQL CREATE TABLE LIKE [#32052](https://github.com/ClickHouse/ClickHouse/pull/32052) ([Stig Bakken](https://github.com/stigsb)). +* Use functional test group for tests with thread sanitizer [#32062](https://github.com/ClickHouse/ClickHouse/pull/32062) ([alesapin](https://github.com/alesapin)). +* Add ability for lightweight checks rerun [#32064](https://github.com/ClickHouse/ClickHouse/pull/32064) ([alesapin](https://github.com/alesapin)). +* Increase length of random database in clickhouse-test [#32094](https://github.com/ClickHouse/ClickHouse/pull/32094) ([Azat Khuzhin](https://github.com/azat)). +* make looping in H3 funcs uniform [#32110](https://github.com/ClickHouse/ClickHouse/pull/32110) ([Bharat Nallan](https://github.com/bharatnc)). +* Remove PVS check from master [#32114](https://github.com/ClickHouse/ClickHouse/pull/32114) ([alesapin](https://github.com/alesapin)). +* Fix flaky keeper whitelist test [#32115](https://github.com/ClickHouse/ClickHouse/pull/32115) ([alesapin](https://github.com/alesapin)). +* Fix flacky test test_executable_storage_input [#32118](https://github.com/ClickHouse/ClickHouse/pull/32118) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix data race in `removePartAndEnqueueFetch(...)` [#32119](https://github.com/ClickHouse/ClickHouse/pull/32119) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Move fuzzers and unit tests to another group [#32120](https://github.com/ClickHouse/ClickHouse/pull/32120) ([alesapin](https://github.com/alesapin)). +* Add a test with 20000 mutations in one query [#32122](https://github.com/ClickHouse/ClickHouse/pull/32122) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Change test 02117_custom_separated_with_names_and_types [#32123](https://github.com/ClickHouse/ClickHouse/pull/32123) ([Kruglov Pavel](https://github.com/Avogar)). +* Use seq_cst semantic for MergeTreeBackgroundExecutor mertic. [#32125](https://github.com/ClickHouse/ClickHouse/pull/32125) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Remove 02116_global_in_time_limit. [#32126](https://github.com/ClickHouse/ClickHouse/pull/32126) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* fixing postgres tests [#32129](https://github.com/ClickHouse/ClickHouse/pull/32129) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Small improvements in lambda code [#32155](https://github.com/ClickHouse/ClickHouse/pull/32155) ([alesapin](https://github.com/alesapin)). +* Update featured image for 21.11 release blog post [#32156](https://github.com/ClickHouse/ClickHouse/pull/32156) ([Cody Baker](https://github.com/codyrobert)). +* Fix CI [#32159](https://github.com/ClickHouse/ClickHouse/pull/32159) ([alesapin](https://github.com/alesapin)). +* tests/ci: do not compress logs twice [#32162](https://github.com/ClickHouse/ClickHouse/pull/32162) ([Azat Khuzhin](https://github.com/azat)). +* clickhouse-test: do not use random generator with shared state [#32163](https://github.com/ClickHouse/ClickHouse/pull/32163) ([Azat Khuzhin](https://github.com/azat)). +* Fix stress tests [#32164](https://github.com/ClickHouse/ClickHouse/pull/32164) ([Azat Khuzhin](https://github.com/azat)). +* Fix QueryProfiler (query_profiler_{cpu,real}_time_period_ns) reset [#32165](https://github.com/ClickHouse/ClickHouse/pull/32165) ([Azat Khuzhin](https://github.com/azat)). +* MaterializedMySQL support VARBINARY type [#32173](https://github.com/ClickHouse/ClickHouse/pull/32173) ([zzsmdfj](https://github.com/zzsmdfj)). +* perf: fix waiting of the server after running tests [#32174](https://github.com/ClickHouse/ClickHouse/pull/32174) ([Azat Khuzhin](https://github.com/azat)). +* Better output for some actions [#32175](https://github.com/ClickHouse/ClickHouse/pull/32175) ([alesapin](https://github.com/alesapin)). +* Use ccache in fast test [#32177](https://github.com/ClickHouse/ClickHouse/pull/32177) ([alesapin](https://github.com/alesapin)). +* Fix window view tests [#32178](https://github.com/ClickHouse/ClickHouse/pull/32178) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Function accurateCastOrDefault remove separate branch [#32184](https://github.com/ClickHouse/ClickHouse/pull/32184) ([Maksim Kita](https://github.com/kitaisreal)). +* Add test for [#32186](https://github.com/ClickHouse/ClickHouse/issues/32186) [#32203](https://github.com/ClickHouse/ClickHouse/pull/32203) ([Raúl Marín](https://github.com/Algunenano)). +* Fix uncaught exception in DatabaseLazy [#32206](https://github.com/ClickHouse/ClickHouse/pull/32206) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Update ASTCreateQuery.cpp [#32208](https://github.com/ClickHouse/ClickHouse/pull/32208) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix flacky fileLog test (probably) [#32209](https://github.com/ClickHouse/ClickHouse/pull/32209) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix jemalloc under osx [#32219](https://github.com/ClickHouse/ClickHouse/pull/32219) ([Azat Khuzhin](https://github.com/azat)). +* Add missing timezones to some tests [#32222](https://github.com/ClickHouse/ClickHouse/pull/32222) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix versioning of aggregate functions (fixes performance tests) [#32236](https://github.com/ClickHouse/ClickHouse/pull/32236) ([Azat Khuzhin](https://github.com/azat)). +* Disable window view tests temporarily because still flacky [#32257](https://github.com/ClickHouse/ClickHouse/pull/32257) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix typo in tupleToNameValuePairs doc [#32262](https://github.com/ClickHouse/ClickHouse/pull/32262) ([Vladimir C](https://github.com/vdimir)). +* Fix possible Pipeline stuck in case of StrictResize processor. [#32270](https://github.com/ClickHouse/ClickHouse/pull/32270) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix possible crash in DataTypeAggregateFunction [#32287](https://github.com/ClickHouse/ClickHouse/pull/32287) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Update backport.py [#32323](https://github.com/ClickHouse/ClickHouse/pull/32323) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix graphite-bench build [#32351](https://github.com/ClickHouse/ClickHouse/pull/32351) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Revert "graphite: split tagged/plain rollup rules (for merges perfoma… [#32376](https://github.com/ClickHouse/ClickHouse/pull/32376) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Another attempt to fix unit test Executor::RemoveTasksStress [#32390](https://github.com/ClickHouse/ClickHouse/pull/32390) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + diff --git a/docs/changelogs/v21.12.2.17-stable.md b/docs/changelogs/v21.12.2.17-stable.md index 909bc7917c7..a35006d9c57 100644 --- a/docs/changelogs/v21.12.2.17-stable.md +++ b/docs/changelogs/v21.12.2.17-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.12.2.17-stable FIXME as compared to v21.12.1.9017-prestable #### Bug Fix @@ -20,3 +27,11 @@ * Backported in [#32616](https://github.com/ClickHouse/ClickHouse/issues/32616): Fix possible crash (or incorrect result) in case of `LowCardinality` arguments of window function. Fixes [#31114](https://github.com/ClickHouse/ClickHouse/issues/31114). [#31888](https://github.com/ClickHouse/ClickHouse/pull/31888) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix data race in ProtobufSchemas [#27822](https://github.com/ClickHouse/ClickHouse/pull/27822) ([filimonov](https://github.com/filimonov)). +* Follow-up to [#32140](https://github.com/ClickHouse/ClickHouse/issues/32140) [#32389](https://github.com/ClickHouse/ClickHouse/pull/32389) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix arraySlice with null args. [#32456](https://github.com/ClickHouse/ClickHouse/pull/32456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix crash in case of MATERIALIZE COLUMN with no default expression. [#32464](https://github.com/ClickHouse/ClickHouse/pull/32464) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix queries with hasColumnInTable constant condition and non existing column [#32506](https://github.com/ClickHouse/ClickHouse/pull/32506) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.12.3.32-stable.md b/docs/changelogs/v21.12.3.32-stable.md index b650f62dd34..f14057981a2 100644 --- a/docs/changelogs/v21.12.3.32-stable.md +++ b/docs/changelogs/v21.12.3.32-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.12.3.32-stable FIXME as compared to v21.12.2.17-stable #### Bug Fix @@ -15,3 +22,12 @@ * Backported in [#33100](https://github.com/ClickHouse/ClickHouse/issues/33100): Fix Context leak in case of cancel_http_readonly_queries_on_client_close (i.e. leaking of external tables that had been uploaded the the server and other resources). [#32982](https://github.com/ClickHouse/ClickHouse/pull/32982) ([Azat Khuzhin](https://github.com/azat)). * Backported in [#33123](https://github.com/ClickHouse/ClickHouse/issues/33123): Fix error `Invalid version for SerializationLowCardinality key column` in case of reading from `LowCardinality` column with `local_filesystem_read_prefetch` or `remote_filesystem_read_prefetch` enabled. [#33046](https://github.com/ClickHouse/ClickHouse/pull/33046) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Improve quota's end-of-interval calculations. [#32575](https://github.com/ClickHouse/ClickHouse/pull/32575) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix race in skipping index of type `hypothesis` [#32756](https://github.com/ClickHouse/ClickHouse/pull/32756) ([Anton Popov](https://github.com/CurtizJ)). +* Always apply const-condition-if optimization. [#32858](https://github.com/ClickHouse/ClickHouse/pull/32858) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merge [#33024](https://github.com/ClickHouse/ClickHouse/issues/33024) [#33061](https://github.com/ClickHouse/ClickHouse/pull/33061) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33022](https://github.com/ClickHouse/ClickHouse/issues/33022) [#33062](https://github.com/ClickHouse/ClickHouse/pull/33062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33050](https://github.com/ClickHouse/ClickHouse/issues/33050) [#33065](https://github.com/ClickHouse/ClickHouse/pull/33065) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + diff --git a/docs/changelogs/v21.12.4.1-stable.md b/docs/changelogs/v21.12.4.1-stable.md index 7c028592876..d08997378af 100644 --- a/docs/changelogs/v21.12.4.1-stable.md +++ b/docs/changelogs/v21.12.4.1-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.12.4.1-stable FIXME as compared to v21.12.3.32-stable #### Improvement diff --git a/docs/changelogs/v21.2.1.5869-prestable.md b/docs/changelogs/v21.2.1.5869-prestable.md index 43703bc13b9..ae5efdcf14f 100644 --- a/docs/changelogs/v21.2.1.5869-prestable.md +++ b/docs/changelogs/v21.2.1.5869-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.1.5869-prestable FIXME as compared to v21.1.1.5646-prestable #### Backward Incompatible Change @@ -154,3 +161,116 @@ * NO CL ENTRY: 'Remove useless codes'. [#19293](https://github.com/ClickHouse/ClickHouse/pull/19293) ([sundyli](https://github.com/sundy-li)). * NO CL ENTRY: 'Merging [#19387](https://github.com/ClickHouse/ClickHouse/issues/19387)'. [#19683](https://github.com/ClickHouse/ClickHouse/pull/19683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add ANTLR tests check [#18624](https://github.com/ClickHouse/ClickHouse/pull/18624) ([Ivan](https://github.com/abyss7)). +* Add more debug info to PollingQueue exception. [#18922](https://github.com/ClickHouse/ClickHouse/pull/18922) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* More checks in merge tree writer wide [#18928](https://github.com/ClickHouse/ClickHouse/pull/18928) ([alesapin](https://github.com/alesapin)). +* Try to remove ActionsDAG::removeColumn [#18953](https://github.com/ClickHouse/ClickHouse/pull/18953) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix rarely flaky test 01459_manual_write_to_replicas_quorum [#18970](https://github.com/ClickHouse/ClickHouse/pull/18970) ([alesapin](https://github.com/alesapin)). +* fix some wrong words in comment [#18998](https://github.com/ClickHouse/ClickHouse/pull/18998) ([flynn](https://github.com/ucasfl)). +* Add tests from [#15889](https://github.com/ClickHouse/ClickHouse/issues/15889) [#19007](https://github.com/ClickHouse/ClickHouse/pull/19007) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix manipulators for common string types [#19011](https://github.com/ClickHouse/ClickHouse/pull/19011) ([alesapin](https://github.com/alesapin)). +* Fix misleading error message while inserting in a table function [#19013](https://github.com/ClickHouse/ClickHouse/pull/19013) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix duplicate UUIDs of LiveView on server startup [#19020](https://github.com/ClickHouse/ClickHouse/pull/19020) ([Alexander Tokmakov](https://github.com/tavplubix)). +* [wip] WINDOW clause [#19022](https://github.com/ClickHouse/ClickHouse/pull/19022) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Avoid redundant exception while dropping part [#19040](https://github.com/ClickHouse/ClickHouse/pull/19040) ([alesapin](https://github.com/alesapin)). +* More debug for stateless tests writer [#19055](https://github.com/ClickHouse/ClickHouse/pull/19055) ([alesapin](https://github.com/alesapin)). +* Update test containers [#19058](https://github.com/ClickHouse/ClickHouse/pull/19058) ([filimonov](https://github.com/filimonov)). +* Support operations with views in ANTLR parser [#19063](https://github.com/ClickHouse/ClickHouse/pull/19063) ([Anton Popov](https://github.com/CurtizJ)). +* Run more tests in SQLancer [#19077](https://github.com/ClickHouse/ClickHouse/pull/19077) ([Ilya Yatsishin](https://github.com/qoega)). +* Update Cassandra driver library [#19091](https://github.com/ClickHouse/ClickHouse/pull/19091) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add metrics for part number in MergeTree in ClickHouse [#19122](https://github.com/ClickHouse/ClickHouse/pull/19122) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless code [#19136](https://github.com/ClickHouse/ClickHouse/pull/19136) ([Amos Bird](https://github.com/amosbird)). +* [ANTLR] Print errors through LOG_ERROR [#19137](https://github.com/ClickHouse/ClickHouse/pull/19137) ([Ivan](https://github.com/abyss7)). +* MemoryTracker: Do not ignore server memory limits during blocking by default [#19146](https://github.com/ClickHouse/ClickHouse/pull/19146) ([Azat Khuzhin](https://github.com/azat)). +* speed up some perf tests (for other machines) [#19154](https://github.com/ClickHouse/ClickHouse/pull/19154) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Cover distributed send with different headers [#19155](https://github.com/ClickHouse/ClickHouse/pull/19155) ([Azat Khuzhin](https://github.com/azat)). +* Add missing type check in dictHas for COMPLEX_KEY_SSD_CACHE layout [#19164](https://github.com/ClickHouse/ClickHouse/pull/19164) ([Azat Khuzhin](https://github.com/azat)). +* test for [#18839](https://github.com/ClickHouse/ClickHouse/issues/18839) Expand_macros_for_fetchPartition [#19200](https://github.com/ClickHouse/ClickHouse/pull/19200) ([Denny Crane](https://github.com/den-crane)). +* add MySQL Var check [#19205](https://github.com/ClickHouse/ClickHouse/pull/19205) ([TCeason](https://github.com/TCeason)). +* Tiny changes in DistributedBlockOutputStream [#19206](https://github.com/ClickHouse/ClickHouse/pull/19206) ([Azat Khuzhin](https://github.com/azat)). +* curl dependency tiny fixes [#19210](https://github.com/ClickHouse/ClickHouse/pull/19210) ([Azat Khuzhin](https://github.com/azat)). +* Fix MSan error in rocksdb [#19213](https://github.com/ClickHouse/ClickHouse/issues/19213) [#19214](https://github.com/ClickHouse/ClickHouse/pull/19214) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix MSan report in Kerberos library [#19215](https://github.com/ClickHouse/ClickHouse/pull/19215) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update Dragonbox [#19218](https://github.com/ClickHouse/ClickHouse/pull/19218) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Make symbolizers available in fuzzer Docker image [#19220](https://github.com/ClickHouse/ClickHouse/pull/19220) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add redundant test for Yandex banner system [#19235](https://github.com/ClickHouse/ClickHouse/pull/19235) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Make `-- { echo }` hint preserve leading comments [#19236](https://github.com/ClickHouse/ClickHouse/pull/19236) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Disable msan for epoll array in libuv [#19244](https://github.com/ClickHouse/ClickHouse/pull/19244) ([alesapin](https://github.com/alesapin)). +* Remove tsan supression [#19250](https://github.com/ClickHouse/ClickHouse/pull/19250) ([alesapin](https://github.com/alesapin)). +* Consolidate the test hint handling [#19254](https://github.com/ClickHouse/ClickHouse/pull/19254) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Support 'keys' and 'values' subcolumns in type Map [#19273](https://github.com/ClickHouse/ClickHouse/pull/19273) ([Anton Popov](https://github.com/CurtizJ)). +* Split TestKeeperStorage and processing thread [#19284](https://github.com/ClickHouse/ClickHouse/pull/19284) ([alesapin](https://github.com/alesapin)). +* move ctr from private to delete [#19285](https://github.com/ClickHouse/ClickHouse/pull/19285) ([flynn](https://github.com/ucasfl)). +* Avoid mixing output from parallel test runs [#19298](https://github.com/ClickHouse/ClickHouse/pull/19298) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fixed race between copy-constructor and addQueryAccessInfo [#19313](https://github.com/ClickHouse/ClickHouse/pull/19313) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Add Sanitizer report issue template [#19318](https://github.com/ClickHouse/ClickHouse/pull/19318) ([Ilya Yatsishin](https://github.com/qoega)). +* fix sleep with infinite input [#19343](https://github.com/ClickHouse/ClickHouse/pull/19343) ([flynn](https://github.com/ucasfl)). +* ISSUES-18684 fix MaterializeMySQL integration test failure [#19344](https://github.com/ClickHouse/ClickHouse/pull/19344) ([Winter Zhang](https://github.com/zhang2014)). +* Fix race condition in TestKeeperHandler on session finish [#19355](https://github.com/ClickHouse/ClickHouse/pull/19355) ([alesapin](https://github.com/alesapin)). +* Fix several cases, while reading subcolumns [#19358](https://github.com/ClickHouse/ClickHouse/pull/19358) ([Anton Popov](https://github.com/CurtizJ)). +* Reconnect after client errors [#19361](https://github.com/ClickHouse/ClickHouse/pull/19361) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* SQLancer binary changed its name [#19363](https://github.com/ClickHouse/ClickHouse/pull/19363) ([Ilya Yatsishin](https://github.com/qoega)). +* Better logging in MySQLHandler [#19365](https://github.com/ClickHouse/ClickHouse/pull/19365) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix IDisk::open parameters to match posix open [#19372](https://github.com/ClickHouse/ClickHouse/pull/19372) ([Alexander Gololobov](https://github.com/davenger)). +* MacOS fixed build issues [#19377](https://github.com/ClickHouse/ClickHouse/pull/19377) ([Maksim Kita](https://github.com/kitaisreal)). +* Add log message with elapsed time while pushing to view [#19378](https://github.com/ClickHouse/ClickHouse/pull/19378) ([Azat Khuzhin](https://github.com/azat)). +* Avoid UBSan report in aggregate function sum [#19385](https://github.com/ClickHouse/ClickHouse/pull/19385) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fail fast in incorrect usage of extractAllGroups [#19393](https://github.com/ClickHouse/ClickHouse/pull/19393) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in quantileExactWeighted [#19394](https://github.com/ClickHouse/ClickHouse/pull/19394) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Limit max memory usage in fuzz testing [#19396](https://github.com/ClickHouse/ClickHouse/pull/19396) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Check literal types in RewriteSumIfFunctionMatcher [#19406](https://github.com/ClickHouse/ClickHouse/pull/19406) ([Vladimir C](https://github.com/vdimir)). +* mirror changes in code and comment [#19410](https://github.com/ClickHouse/ClickHouse/pull/19410) ([flynn](https://github.com/ucasfl)). +* Fix one more race in TestKeeper [#19412](https://github.com/ClickHouse/ClickHouse/pull/19412) ([alesapin](https://github.com/alesapin)). +* Continue fix for Block structure mismatch in PipelineExecuting stream [#19414](https://github.com/ClickHouse/ClickHouse/pull/19414) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Integration tests: print stderr of failed subprocess [#19431](https://github.com/ClickHouse/ClickHouse/pull/19431) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Don't dwell on the past in query fuzzer [#19442](https://github.com/ClickHouse/ClickHouse/pull/19442) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Remove outdated suppressions [#19444](https://github.com/ClickHouse/ClickHouse/pull/19444) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix build with unbundled poco [#19450](https://github.com/ClickHouse/ClickHouse/pull/19450) ([Azat Khuzhin](https://github.com/azat)). +* Fix UBSan report in arraySlice and substring [#19459](https://github.com/ClickHouse/ClickHouse/pull/19459) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in runningDifference [#19460](https://github.com/ClickHouse/ClickHouse/pull/19460) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Avoid UBSan report in greatCircleDistance [#19461](https://github.com/ClickHouse/ClickHouse/pull/19461) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* UBsan report fixes (arraySlice, addMinutes/addHours/addWeeks/addDays, sumWithOverflow(Decimal)) [#19466](https://github.com/ClickHouse/ClickHouse/pull/19466) ([Azat Khuzhin](https://github.com/azat)). +* Remove complications from FunctionsAES [#19467](https://github.com/ClickHouse/ClickHouse/pull/19467) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix insufficient args check in AES functions [#19474](https://github.com/ClickHouse/ClickHouse/pull/19474) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in avgWeighted [#19475](https://github.com/ClickHouse/ClickHouse/pull/19475) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* remove part of misleading exception message [#19487](https://github.com/ClickHouse/ClickHouse/pull/19487) ([flynn](https://github.com/ucasfl)). +* Bug fix : support const column processing in mapContains, mapKeys, mapValues functions [#19515](https://github.com/ClickHouse/ClickHouse/pull/19515) ([hexiaoting](https://github.com/hexiaoting)). +* More diagnostics in fuzzer [#19524](https://github.com/ClickHouse/ClickHouse/pull/19524) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix 01459_manual_write_to_replicas flaky test [#19551](https://github.com/ClickHouse/ClickHouse/pull/19551) ([alesapin](https://github.com/alesapin)). +* Check for hung queries or server hung in fast test [#19558](https://github.com/ClickHouse/ClickHouse/pull/19558) ([alesapin](https://github.com/alesapin)). +* DateLUTImpl::addYears(...): suppress UBSan [#19566](https://github.com/ClickHouse/ClickHouse/pull/19566) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Merging [#18549](https://github.com/ClickHouse/ClickHouse/issues/18549) [#19583](https://github.com/ClickHouse/ClickHouse/pull/19583) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update Cassandra submodule with patch by @leshikus [#19590](https://github.com/ClickHouse/ClickHouse/pull/19590) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove unused include header [#19598](https://github.com/ClickHouse/ClickHouse/pull/19598) ([BohuTANG](https://github.com/BohuTANG)). +* Fix merge join constants [#19648](https://github.com/ClickHouse/ClickHouse/pull/19648) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Better abstractions in disk interface [#19660](https://github.com/ClickHouse/ClickHouse/pull/19660) ([Anton Popov](https://github.com/CurtizJ)). +* Fix deadlock in testkeeper [#19661](https://github.com/ClickHouse/ClickHouse/pull/19661) ([alesapin](https://github.com/alesapin)). +* fix special build on clang11 [#19663](https://github.com/ClickHouse/ClickHouse/pull/19663) ([flynn](https://github.com/ucasfl)). +* Require current_database filter for tests with query_log/query_thread_log [#19675](https://github.com/ClickHouse/ClickHouse/pull/19675) ([Azat Khuzhin](https://github.com/azat)). +* clickhouse-test tiny cleanup [#19676](https://github.com/ClickHouse/ClickHouse/pull/19676) ([Azat Khuzhin](https://github.com/azat)). +* Fix crash after merging ActionsDAG. [#19704](https://github.com/ClickHouse/ClickHouse/pull/19704) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix flaky test concat_nary_const_with_nonconst_segfault [#19711](https://github.com/ClickHouse/ClickHouse/pull/19711) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Run tests in parallel in flaky check [#19715](https://github.com/ClickHouse/ClickHouse/pull/19715) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix 01115_join_with_dictionary flakiness [#19723](https://github.com/ClickHouse/ClickHouse/pull/19723) ([Azat Khuzhin](https://github.com/azat)). +* add empty line after error messages in client [#19724](https://github.com/ClickHouse/ClickHouse/pull/19724) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Update QueryPlan tree optimization traverse. [#19725](https://github.com/ClickHouse/ClickHouse/pull/19725) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add missing lsof for fasttest docker image [#19751](https://github.com/ClickHouse/ClickHouse/pull/19751) ([Azat Khuzhin](https://github.com/azat)). +* Make Fuzzer more reliable [#19752](https://github.com/ClickHouse/ClickHouse/pull/19752) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Minor code improvement in JOIN [#19758](https://github.com/ClickHouse/ClickHouse/pull/19758) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Make integration odbc tests idempotent [#19759](https://github.com/ClickHouse/ClickHouse/pull/19759) ([alesapin](https://github.com/alesapin)). +* Small fixes for fasttest [#19760](https://github.com/ClickHouse/ClickHouse/pull/19760) ([alesapin](https://github.com/alesapin)). +* LowCardinality UUID fix [#19767](https://github.com/ClickHouse/ClickHouse/pull/19767) ([Maksim Kita](https://github.com/kitaisreal)). +* Add log comment when running .sh tests [#19774](https://github.com/ClickHouse/ClickHouse/pull/19774) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in "round" [#19786](https://github.com/ClickHouse/ClickHouse/pull/19786) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test script for [#19794](https://github.com/ClickHouse/ClickHouse/issues/19794) [#19798](https://github.com/ClickHouse/ClickHouse/pull/19798) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix dependency on ODBC for Yandex internal build [#19804](https://github.com/ClickHouse/ClickHouse/pull/19804) ([Alexander Gololobov](https://github.com/davenger)). +* Don't run all stateless tests in parallel [#19806](https://github.com/ClickHouse/ClickHouse/pull/19806) ([alesapin](https://github.com/alesapin)). +* Avoid losing exception messages in logs under high memory pressure [#19824](https://github.com/ClickHouse/ClickHouse/pull/19824) ([Azat Khuzhin](https://github.com/azat)). +* Try to make test_dir.tar smaller [#19833](https://github.com/ClickHouse/ClickHouse/pull/19833) ([filimonov](https://github.com/filimonov)). +* style-check tiny fixes [#19834](https://github.com/ClickHouse/ClickHouse/pull/19834) ([Azat Khuzhin](https://github.com/azat)). +* Fix UBSan report in DateTimeAddInterval [#19859](https://github.com/ClickHouse/ClickHouse/pull/19859) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix debug assertion in Hyperscan [#19860](https://github.com/ClickHouse/ClickHouse/pull/19860) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in GatherUtils [#19862](https://github.com/ClickHouse/ClickHouse/pull/19862) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + diff --git a/docs/changelogs/v21.2.10.48-stable.md b/docs/changelogs/v21.2.10.48-stable.md index 11eea960931..f9d29374e91 100644 --- a/docs/changelogs/v21.2.10.48-stable.md +++ b/docs/changelogs/v21.2.10.48-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.10.48-stable FIXME as compared to v21.2.9.41-stable #### Improvement @@ -9,3 +16,7 @@ * Backported in [#23032](https://github.com/ClickHouse/ClickHouse/issues/23032): Fix error `Cannot find column in ActionsDAG result` which may happen if subquery uses `untuple`. Fixes [#22290](https://github.com/ClickHouse/ClickHouse/issues/22290). [#22991](https://github.com/ClickHouse/ClickHouse/pull/22991) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#23171](https://github.com/ClickHouse/ClickHouse/issues/23171): Some values were formatted with alignment in center in table cells in `Markdown` format. Not anymore. [#23096](https://github.com/ClickHouse/ClickHouse/pull/23096) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* LibraryDictionarySource fix possible leak [#21686](https://github.com/ClickHouse/ClickHouse/pull/21686) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.2.2.8-stable.md b/docs/changelogs/v21.2.2.8-stable.md index 73baea91547..d3b1f43bcc3 100644 --- a/docs/changelogs/v21.2.2.8-stable.md +++ b/docs/changelogs/v21.2.2.8-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.2.8-stable FIXME as compared to v21.1.1.5646-prestable #### Backward Incompatible Change @@ -68,7 +75,7 @@ * Add separate pool for message brokers (RabbitMQ and Kafka). [#19722](https://github.com/ClickHouse/ClickHouse/pull/19722) ([Azat Khuzhin](https://github.com/azat)). * In distributed queries if the setting `async_socket_for_remote` is enabled, it was possible to get stack overflow at least in debug build configuration if very deeply nested data type is used in table (e.g. `Array(Array(Array(...more...)))`). This fixes [#19108](https://github.com/ClickHouse/ClickHouse/issues/19108). This change introduces minor backward incompatibility: excessive parenthesis in type definitions no longer supported, example: `Array((UInt8))`. [#19736](https://github.com/ClickHouse/ClickHouse/pull/19736) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Table function `S3` will use global region if the region can't be determined exactly. This closes [#10998](https://github.com/ClickHouse/ClickHouse/issues/10998). [#19750](https://github.com/ClickHouse/ClickHouse/pull/19750) ([Vladimir Chebotarev](https://github.com/excitoon)). -* ClickHouse client query param CTE added test. [#19762](https://github.com/ClickHouse/ClickHouse/pull/19762) ([Maksim Kita](https://github.com/kitaisreal)). +* Clickhouse client query param CTE added test. [#19762](https://github.com/ClickHouse/ClickHouse/pull/19762) ([Maksim Kita](https://github.com/kitaisreal)). * Correctly output infinite arguments for `formatReadableTimeDelta` function. In previous versions, there was implicit conversion to implementation specific integer value. [#19791](https://github.com/ClickHouse/ClickHouse/pull/19791) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * `S3` table function now supports `auto` compression mode (autodetect). This closes [#18754](https://github.com/ClickHouse/ClickHouse/issues/18754). [#19793](https://github.com/ClickHouse/ClickHouse/pull/19793) ([Vladimir Chebotarev](https://github.com/excitoon)). * Set charset to utf8mb4 when interacting with remote MySQL servers. Fixes [#19795](https://github.com/ClickHouse/ClickHouse/issues/19795). [#19800](https://github.com/ClickHouse/ClickHouse/pull/19800) ([Alexey Milovidov](https://github.com/alexey-milovidov)). @@ -164,3 +171,117 @@ * NO CL ENTRY: 'Remove useless codes'. [#19293](https://github.com/ClickHouse/ClickHouse/pull/19293) ([sundyli](https://github.com/sundy-li)). * NO CL ENTRY: 'Merging [#19387](https://github.com/ClickHouse/ClickHouse/issues/19387)'. [#19683](https://github.com/ClickHouse/ClickHouse/pull/19683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add ANTLR tests check [#18624](https://github.com/ClickHouse/ClickHouse/pull/18624) ([Ivan](https://github.com/abyss7)). +* Add more debug info to PollingQueue exception. [#18922](https://github.com/ClickHouse/ClickHouse/pull/18922) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* More checks in merge tree writer wide [#18928](https://github.com/ClickHouse/ClickHouse/pull/18928) ([alesapin](https://github.com/alesapin)). +* Try to remove ActionsDAG::removeColumn [#18953](https://github.com/ClickHouse/ClickHouse/pull/18953) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix rarely flaky test 01459_manual_write_to_replicas_quorum [#18970](https://github.com/ClickHouse/ClickHouse/pull/18970) ([alesapin](https://github.com/alesapin)). +* fix some wrong words in comment [#18998](https://github.com/ClickHouse/ClickHouse/pull/18998) ([flynn](https://github.com/ucasfl)). +* Add tests from [#15889](https://github.com/ClickHouse/ClickHouse/issues/15889) [#19007](https://github.com/ClickHouse/ClickHouse/pull/19007) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix manipulators for common string types [#19011](https://github.com/ClickHouse/ClickHouse/pull/19011) ([alesapin](https://github.com/alesapin)). +* Fix misleading error message while inserting in a table function [#19013](https://github.com/ClickHouse/ClickHouse/pull/19013) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix duplicate UUIDs of LiveView on server startup [#19020](https://github.com/ClickHouse/ClickHouse/pull/19020) ([Alexander Tokmakov](https://github.com/tavplubix)). +* [wip] WINDOW clause [#19022](https://github.com/ClickHouse/ClickHouse/pull/19022) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Avoid redundant exception while dropping part [#19040](https://github.com/ClickHouse/ClickHouse/pull/19040) ([alesapin](https://github.com/alesapin)). +* More debug for stateless tests writer [#19055](https://github.com/ClickHouse/ClickHouse/pull/19055) ([alesapin](https://github.com/alesapin)). +* Update test containers [#19058](https://github.com/ClickHouse/ClickHouse/pull/19058) ([filimonov](https://github.com/filimonov)). +* Support operations with views in ANTLR parser [#19063](https://github.com/ClickHouse/ClickHouse/pull/19063) ([Anton Popov](https://github.com/CurtizJ)). +* Run more tests in SQLancer [#19077](https://github.com/ClickHouse/ClickHouse/pull/19077) ([Ilya Yatsishin](https://github.com/qoega)). +* Update Cassandra driver library [#19091](https://github.com/ClickHouse/ClickHouse/pull/19091) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add metrics for part number in MergeTree in ClickHouse [#19122](https://github.com/ClickHouse/ClickHouse/pull/19122) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless code [#19136](https://github.com/ClickHouse/ClickHouse/pull/19136) ([Amos Bird](https://github.com/amosbird)). +* [ANTLR] Print errors through LOG_ERROR [#19137](https://github.com/ClickHouse/ClickHouse/pull/19137) ([Ivan](https://github.com/abyss7)). +* MemoryTracker: Do not ignore server memory limits during blocking by default [#19146](https://github.com/ClickHouse/ClickHouse/pull/19146) ([Azat Khuzhin](https://github.com/azat)). +* speed up some perf tests (for other machines) [#19154](https://github.com/ClickHouse/ClickHouse/pull/19154) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Cover distributed send with different headers [#19155](https://github.com/ClickHouse/ClickHouse/pull/19155) ([Azat Khuzhin](https://github.com/azat)). +* Add missing type check in dictHas for COMPLEX_KEY_SSD_CACHE layout [#19164](https://github.com/ClickHouse/ClickHouse/pull/19164) ([Azat Khuzhin](https://github.com/azat)). +* test for [#18839](https://github.com/ClickHouse/ClickHouse/issues/18839) Expand_macros_for_fetchPartition [#19200](https://github.com/ClickHouse/ClickHouse/pull/19200) ([Denny Crane](https://github.com/den-crane)). +* add MySQL Var check [#19205](https://github.com/ClickHouse/ClickHouse/pull/19205) ([TCeason](https://github.com/TCeason)). +* Tiny changes in DistributedBlockOutputStream [#19206](https://github.com/ClickHouse/ClickHouse/pull/19206) ([Azat Khuzhin](https://github.com/azat)). +* curl dependency tiny fixes [#19210](https://github.com/ClickHouse/ClickHouse/pull/19210) ([Azat Khuzhin](https://github.com/azat)). +* Fix MSan error in rocksdb [#19213](https://github.com/ClickHouse/ClickHouse/issues/19213) [#19214](https://github.com/ClickHouse/ClickHouse/pull/19214) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix MSan report in Kerberos library [#19215](https://github.com/ClickHouse/ClickHouse/pull/19215) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update Dragonbox [#19218](https://github.com/ClickHouse/ClickHouse/pull/19218) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Make symbolizers available in fuzzer Docker image [#19220](https://github.com/ClickHouse/ClickHouse/pull/19220) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add redundant test for Yandex banner system [#19235](https://github.com/ClickHouse/ClickHouse/pull/19235) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Make `-- { echo }` hint preserve leading comments [#19236](https://github.com/ClickHouse/ClickHouse/pull/19236) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Disable msan for epoll array in libuv [#19244](https://github.com/ClickHouse/ClickHouse/pull/19244) ([alesapin](https://github.com/alesapin)). +* Remove tsan supression [#19250](https://github.com/ClickHouse/ClickHouse/pull/19250) ([alesapin](https://github.com/alesapin)). +* Consolidate the test hint handling [#19254](https://github.com/ClickHouse/ClickHouse/pull/19254) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Support 'keys' and 'values' subcolumns in type Map [#19273](https://github.com/ClickHouse/ClickHouse/pull/19273) ([Anton Popov](https://github.com/CurtizJ)). +* Split TestKeeperStorage and processing thread [#19284](https://github.com/ClickHouse/ClickHouse/pull/19284) ([alesapin](https://github.com/alesapin)). +* move ctr from private to delete [#19285](https://github.com/ClickHouse/ClickHouse/pull/19285) ([flynn](https://github.com/ucasfl)). +* Avoid mixing output from parallel test runs [#19298](https://github.com/ClickHouse/ClickHouse/pull/19298) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fixed race between copy-constructor and addQueryAccessInfo [#19313](https://github.com/ClickHouse/ClickHouse/pull/19313) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Add Sanitizer report issue template [#19318](https://github.com/ClickHouse/ClickHouse/pull/19318) ([Ilya Yatsishin](https://github.com/qoega)). +* fix sleep with infinite input [#19343](https://github.com/ClickHouse/ClickHouse/pull/19343) ([flynn](https://github.com/ucasfl)). +* ISSUES-18684 fix MaterializeMySQL integration test failure [#19344](https://github.com/ClickHouse/ClickHouse/pull/19344) ([Winter Zhang](https://github.com/zhang2014)). +* Fix race condition in TestKeeperHandler on session finish [#19355](https://github.com/ClickHouse/ClickHouse/pull/19355) ([alesapin](https://github.com/alesapin)). +* Fix several cases, while reading subcolumns [#19358](https://github.com/ClickHouse/ClickHouse/pull/19358) ([Anton Popov](https://github.com/CurtizJ)). +* Reconnect after client errors [#19361](https://github.com/ClickHouse/ClickHouse/pull/19361) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* SQLancer binary changed its name [#19363](https://github.com/ClickHouse/ClickHouse/pull/19363) ([Ilya Yatsishin](https://github.com/qoega)). +* Better logging in MySQLHandler [#19365](https://github.com/ClickHouse/ClickHouse/pull/19365) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix IDisk::open parameters to match posix open [#19372](https://github.com/ClickHouse/ClickHouse/pull/19372) ([Alexander Gololobov](https://github.com/davenger)). +* MacOS fixed build issues [#19377](https://github.com/ClickHouse/ClickHouse/pull/19377) ([Maksim Kita](https://github.com/kitaisreal)). +* Add log message with elapsed time while pushing to view [#19378](https://github.com/ClickHouse/ClickHouse/pull/19378) ([Azat Khuzhin](https://github.com/azat)). +* Avoid UBSan report in aggregate function sum [#19385](https://github.com/ClickHouse/ClickHouse/pull/19385) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fail fast in incorrect usage of extractAllGroups [#19393](https://github.com/ClickHouse/ClickHouse/pull/19393) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in quantileExactWeighted [#19394](https://github.com/ClickHouse/ClickHouse/pull/19394) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Limit max memory usage in fuzz testing [#19396](https://github.com/ClickHouse/ClickHouse/pull/19396) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Check literal types in RewriteSumIfFunctionMatcher [#19406](https://github.com/ClickHouse/ClickHouse/pull/19406) ([Vladimir C](https://github.com/vdimir)). +* mirror changes in code and comment [#19410](https://github.com/ClickHouse/ClickHouse/pull/19410) ([flynn](https://github.com/ucasfl)). +* Fix one more race in TestKeeper [#19412](https://github.com/ClickHouse/ClickHouse/pull/19412) ([alesapin](https://github.com/alesapin)). +* Continue fix for Block structure mismatch in PipelineExecuting stream [#19414](https://github.com/ClickHouse/ClickHouse/pull/19414) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Integration tests: print stderr of failed subprocess [#19431](https://github.com/ClickHouse/ClickHouse/pull/19431) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Don't dwell on the past in query fuzzer [#19442](https://github.com/ClickHouse/ClickHouse/pull/19442) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Remove outdated suppressions [#19444](https://github.com/ClickHouse/ClickHouse/pull/19444) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix build with unbundled poco [#19450](https://github.com/ClickHouse/ClickHouse/pull/19450) ([Azat Khuzhin](https://github.com/azat)). +* Fix UBSan report in arraySlice and substring [#19459](https://github.com/ClickHouse/ClickHouse/pull/19459) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in runningDifference [#19460](https://github.com/ClickHouse/ClickHouse/pull/19460) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Avoid UBSan report in greatCircleDistance [#19461](https://github.com/ClickHouse/ClickHouse/pull/19461) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* UBsan report fixes (arraySlice, addMinutes/addHours/addWeeks/addDays, sumWithOverflow(Decimal)) [#19466](https://github.com/ClickHouse/ClickHouse/pull/19466) ([Azat Khuzhin](https://github.com/azat)). +* Remove complications from FunctionsAES [#19467](https://github.com/ClickHouse/ClickHouse/pull/19467) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix insufficient args check in AES functions [#19474](https://github.com/ClickHouse/ClickHouse/pull/19474) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in avgWeighted [#19475](https://github.com/ClickHouse/ClickHouse/pull/19475) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* remove part of misleading exception message [#19487](https://github.com/ClickHouse/ClickHouse/pull/19487) ([flynn](https://github.com/ucasfl)). +* Bug fix : support const column processing in mapContains, mapKeys, mapValues functions [#19515](https://github.com/ClickHouse/ClickHouse/pull/19515) ([hexiaoting](https://github.com/hexiaoting)). +* More diagnostics in fuzzer [#19524](https://github.com/ClickHouse/ClickHouse/pull/19524) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix 01459_manual_write_to_replicas flaky test [#19551](https://github.com/ClickHouse/ClickHouse/pull/19551) ([alesapin](https://github.com/alesapin)). +* Check for hung queries or server hung in fast test [#19558](https://github.com/ClickHouse/ClickHouse/pull/19558) ([alesapin](https://github.com/alesapin)). +* DateLUTImpl::addYears(...): suppress UBSan [#19566](https://github.com/ClickHouse/ClickHouse/pull/19566) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Merging [#18549](https://github.com/ClickHouse/ClickHouse/issues/18549) [#19583](https://github.com/ClickHouse/ClickHouse/pull/19583) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update Cassandra submodule with patch by @leshikus [#19590](https://github.com/ClickHouse/ClickHouse/pull/19590) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove unused include header [#19598](https://github.com/ClickHouse/ClickHouse/pull/19598) ([BohuTANG](https://github.com/BohuTANG)). +* Fix merge join constants [#19648](https://github.com/ClickHouse/ClickHouse/pull/19648) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Better abstractions in disk interface [#19660](https://github.com/ClickHouse/ClickHouse/pull/19660) ([Anton Popov](https://github.com/CurtizJ)). +* Fix deadlock in testkeeper [#19661](https://github.com/ClickHouse/ClickHouse/pull/19661) ([alesapin](https://github.com/alesapin)). +* fix special build on clang11 [#19663](https://github.com/ClickHouse/ClickHouse/pull/19663) ([flynn](https://github.com/ucasfl)). +* Require current_database filter for tests with query_log/query_thread_log [#19675](https://github.com/ClickHouse/ClickHouse/pull/19675) ([Azat Khuzhin](https://github.com/azat)). +* clickhouse-test tiny cleanup [#19676](https://github.com/ClickHouse/ClickHouse/pull/19676) ([Azat Khuzhin](https://github.com/azat)). +* Fix crash after merging ActionsDAG. [#19704](https://github.com/ClickHouse/ClickHouse/pull/19704) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix flaky test concat_nary_const_with_nonconst_segfault [#19711](https://github.com/ClickHouse/ClickHouse/pull/19711) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Run tests in parallel in flaky check [#19715](https://github.com/ClickHouse/ClickHouse/pull/19715) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix 01115_join_with_dictionary flakiness [#19723](https://github.com/ClickHouse/ClickHouse/pull/19723) ([Azat Khuzhin](https://github.com/azat)). +* add empty line after error messages in client [#19724](https://github.com/ClickHouse/ClickHouse/pull/19724) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Update QueryPlan tree optimization traverse. [#19725](https://github.com/ClickHouse/ClickHouse/pull/19725) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add missing lsof for fasttest docker image [#19751](https://github.com/ClickHouse/ClickHouse/pull/19751) ([Azat Khuzhin](https://github.com/azat)). +* Make Fuzzer more reliable [#19752](https://github.com/ClickHouse/ClickHouse/pull/19752) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Minor code improvement in JOIN [#19758](https://github.com/ClickHouse/ClickHouse/pull/19758) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Make integration odbc tests idempotent [#19759](https://github.com/ClickHouse/ClickHouse/pull/19759) ([alesapin](https://github.com/alesapin)). +* Small fixes for fasttest [#19760](https://github.com/ClickHouse/ClickHouse/pull/19760) ([alesapin](https://github.com/alesapin)). +* LowCardinality UUID fix [#19767](https://github.com/ClickHouse/ClickHouse/pull/19767) ([Maksim Kita](https://github.com/kitaisreal)). +* Add log comment when running .sh tests [#19774](https://github.com/ClickHouse/ClickHouse/pull/19774) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in "round" [#19786](https://github.com/ClickHouse/ClickHouse/pull/19786) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test script for [#19794](https://github.com/ClickHouse/ClickHouse/issues/19794) [#19798](https://github.com/ClickHouse/ClickHouse/pull/19798) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix dependency on ODBC for Yandex internal build [#19804](https://github.com/ClickHouse/ClickHouse/pull/19804) ([Alexander Gololobov](https://github.com/davenger)). +* Don't run all stateless tests in parallel [#19806](https://github.com/ClickHouse/ClickHouse/pull/19806) ([alesapin](https://github.com/alesapin)). +* Avoid losing exception messages in logs under high memory pressure [#19824](https://github.com/ClickHouse/ClickHouse/pull/19824) ([Azat Khuzhin](https://github.com/azat)). +* Try to make test_dir.tar smaller [#19833](https://github.com/ClickHouse/ClickHouse/pull/19833) ([filimonov](https://github.com/filimonov)). +* style-check tiny fixes [#19834](https://github.com/ClickHouse/ClickHouse/pull/19834) ([Azat Khuzhin](https://github.com/azat)). +* Fix UBSan report in DateTimeAddInterval [#19859](https://github.com/ClickHouse/ClickHouse/pull/19859) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix debug assertion in Hyperscan [#19860](https://github.com/ClickHouse/ClickHouse/pull/19860) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in GatherUtils [#19862](https://github.com/ClickHouse/ClickHouse/pull/19862) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Use fixed version of confluent-kafka library in integration tests [#20124](https://github.com/ClickHouse/ClickHouse/pull/20124) ([alesapin](https://github.com/alesapin)). + diff --git a/docs/changelogs/v21.2.3.15-stable.md b/docs/changelogs/v21.2.3.15-stable.md index 26653e780bb..0471c499748 100644 --- a/docs/changelogs/v21.2.3.15-stable.md +++ b/docs/changelogs/v21.2.3.15-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.3.15-stable FIXME as compared to v21.2.2.8-stable #### Bug Fix @@ -17,3 +24,7 @@ * NO CL ENTRY: 'Revert "Backport [#20224](https://github.com/ClickHouse/ClickHouse/issues/20224) to 21.2: Fix access control manager destruction order"'. [#20397](https://github.com/ClickHouse/ClickHouse/pull/20397) ([alesapin](https://github.com/alesapin)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Handle syntax error for ARRAY JOIN with no args [#20223](https://github.com/ClickHouse/ClickHouse/pull/20223) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v21.2.4.6-stable.md b/docs/changelogs/v21.2.4.6-stable.md index 1605186701d..709abbcf730 100644 --- a/docs/changelogs/v21.2.4.6-stable.md +++ b/docs/changelogs/v21.2.4.6-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.4.6-stable FIXME as compared to v21.2.3.15-stable #### Bug Fix diff --git a/docs/changelogs/v21.2.5.5-stable.md b/docs/changelogs/v21.2.5.5-stable.md index b5275e89519..c4b16d8123e 100644 --- a/docs/changelogs/v21.2.5.5-stable.md +++ b/docs/changelogs/v21.2.5.5-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.5.5-stable FIXME as compared to v21.2.4.6-stable #### Bug Fix diff --git a/docs/changelogs/v21.2.6.1-stable.md b/docs/changelogs/v21.2.6.1-stable.md index 1f28c14c485..ef7b13e260e 100644 --- a/docs/changelogs/v21.2.6.1-stable.md +++ b/docs/changelogs/v21.2.6.1-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.6.1-stable FIXME as compared to v21.2.5.5-stable #### Bug Fix diff --git a/docs/changelogs/v21.2.7.11-stable.md b/docs/changelogs/v21.2.7.11-stable.md index 1f0f94ee0bf..277ddb9fcb3 100644 --- a/docs/changelogs/v21.2.7.11-stable.md +++ b/docs/changelogs/v21.2.7.11-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.7.11-stable FIXME as compared to v21.2.6.1-stable #### Bug Fix @@ -10,3 +17,7 @@ * Backported in [#21979](https://github.com/ClickHouse/ClickHouse/issues/21979): Reverted [#15454](https://github.com/ClickHouse/ClickHouse/issues/15454) that may cause significant increase in memory usage while loading external dictionaries of hashed type. This closes [#21935](https://github.com/ClickHouse/ClickHouse/issues/21935). [#21948](https://github.com/ClickHouse/ClickHouse/pull/21948) ([Maksim Kita](https://github.com/kitaisreal)). * Backported in [#22140](https://github.com/ClickHouse/ClickHouse/issues/22140): The function `decrypt` was lacking a check for the minimal size of data encrypted in AEAD mode. This closes [#21897](https://github.com/ClickHouse/ClickHouse/issues/21897). [#22064](https://github.com/ClickHouse/ClickHouse/pull/22064) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* LRUCache fix exception unsafe element insertion [#21891](https://github.com/ClickHouse/ClickHouse/pull/21891) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.2.8.31-stable.md b/docs/changelogs/v21.2.8.31-stable.md index 884dcb5a649..d7f7e5a7099 100644 --- a/docs/changelogs/v21.2.8.31-stable.md +++ b/docs/changelogs/v21.2.8.31-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.8.31-stable FIXME as compared to v21.2.7.11-stable #### Bug Fix @@ -28,3 +35,7 @@ * Backported in [#22699](https://github.com/ClickHouse/ClickHouse/issues/22699): Fix wait for mutations on several replicas for ReplicatedMergeTree table engines. Previously, mutation/alter query may finish before mutation actually executed on other replicas. [#22669](https://github.com/ClickHouse/ClickHouse/pull/22669) ([alesapin](https://github.com/alesapin)). * Backported in [#22740](https://github.com/ClickHouse/ClickHouse/issues/22740): Fix possible hangs in zk requests in case of OOM exception. Fixes [#22438](https://github.com/ClickHouse/ClickHouse/issues/22438). [#22684](https://github.com/ClickHouse/ClickHouse/pull/22684) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Mannual backport of [#21429](https://github.com/ClickHouse/ClickHouse/issues/21429) in 21.2 [#22505](https://github.com/ClickHouse/ClickHouse/pull/22505) ([Kruglov Pavel](https://github.com/Avogar)). + diff --git a/docs/changelogs/v21.2.9.41-stable.md b/docs/changelogs/v21.2.9.41-stable.md index ab4303aaa2a..d3a8644a879 100644 --- a/docs/changelogs/v21.2.9.41-stable.md +++ b/docs/changelogs/v21.2.9.41-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.2.9.41-stable FIXME as compared to v21.2.8.31-stable #### Improvement @@ -15,3 +22,8 @@ #### Build/Testing/Packaging Improvement * Backported in [#22814](https://github.com/ClickHouse/ClickHouse/issues/22814): Allow to start up with modified binary under gdb. In previous version if you set up breakpoint in gdb before start, server will refuse to start up due to failed integrity check. [#21258](https://github.com/ClickHouse/ClickHouse/pull/21258) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Check for EINTR in epoll_wait [#20958](https://github.com/ClickHouse/ClickHouse/pull/20958) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* FileDictionarySource fix absolute file path [#22822](https://github.com/ClickHouse/ClickHouse/pull/22822) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.3.1.6185-prestable.md b/docs/changelogs/v21.3.1.6185-prestable.md index dabfe3cfeb3..8d2a222f8aa 100644 --- a/docs/changelogs/v21.3.1.6185-prestable.md +++ b/docs/changelogs/v21.3.1.6185-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.1.6185-prestable FIXME as compared to v21.2.1.5869-prestable #### Backward Incompatible Change @@ -157,3 +164,162 @@ * NO CL ENTRY: 'Revert "Fix access control manager destruction order"'. [#20394](https://github.com/ClickHouse/ClickHouse/pull/20394) ([alesapin](https://github.com/alesapin)). * NO CL ENTRY: 'Update argmax.md '. [#20625](https://github.com/ClickHouse/ClickHouse/pull/20625) ([Marvin Taschenberger](https://github.com/Taschenbergerm)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Update Pytest check [#18972](https://github.com/ClickHouse/ClickHouse/pull/18972) ([Ivan](https://github.com/abyss7)). +* [wip] support RANGE frame for window functions [#19299](https://github.com/ClickHouse/ClickHouse/pull/19299) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* In memory coordination inside ClickHouse [#19580](https://github.com/ClickHouse/ClickHouse/pull/19580) ([alesapin](https://github.com/alesapin)). +* client: more suggestions [#19584](https://github.com/ClickHouse/ClickHouse/pull/19584) ([Azat Khuzhin](https://github.com/azat)). +* Allow to run all style checks in one file [#19726](https://github.com/ClickHouse/ClickHouse/pull/19726) ([Anton Popov](https://github.com/CurtizJ)). +* Fix [#19371](https://github.com/ClickHouse/ClickHouse/issues/19371) [#19765](https://github.com/ClickHouse/ClickHouse/pull/19765) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Minor code improvements around ThreadStatus [#19771](https://github.com/ClickHouse/ClickHouse/pull/19771) ([Alexander Tokmakov](https://github.com/tavplubix)). +* continue of [#19487](https://github.com/ClickHouse/ClickHouse/issues/19487) [#19801](https://github.com/ClickHouse/ClickHouse/pull/19801) ([flynn](https://github.com/ucasfl)). +* Fix UBSan report in intDiv [#19876](https://github.com/ClickHouse/ClickHouse/pull/19876) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Allow writing partial buffer [#19886](https://github.com/ClickHouse/ClickHouse/pull/19886) ([Azat Khuzhin](https://github.com/azat)). +* Remove an always-false condition from query parser [#19919](https://github.com/ClickHouse/ClickHouse/pull/19919) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* UNBOUNDED FOLLOWING frame end [#19921](https://github.com/ClickHouse/ClickHouse/pull/19921) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix logical error in INSERT VALUES [#19925](https://github.com/ClickHouse/ClickHouse/pull/19925) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix test keeper integration tests [#19942](https://github.com/ClickHouse/ClickHouse/pull/19942) ([alesapin](https://github.com/alesapin)). +* Fix build [#19948](https://github.com/ClickHouse/ClickHouse/pull/19948) ([Kruglov Pavel](https://github.com/Avogar)). +* CURRENT ROW and offset for start of ROWS frame [#19951](https://github.com/ClickHouse/ClickHouse/pull/19951) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix UBSan report in geoHashesInBox [#19956](https://github.com/ClickHouse/ClickHouse/pull/19956) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add MSan annotation for system.stack_trace [#19957](https://github.com/ClickHouse/ClickHouse/pull/19957) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky integration tests [#19971](https://github.com/ClickHouse/ClickHouse/pull/19971) ([Azat Khuzhin](https://github.com/azat)). +* Do not use inputs which values are known constants in ActionsDAG. [#19991](https://github.com/ClickHouse/ClickHouse/pull/19991) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* update perf tests [#20000](https://github.com/ClickHouse/ClickHouse/pull/20000) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* UBsan fixes [#20011](https://github.com/ClickHouse/ClickHouse/pull/20011) ([Azat Khuzhin](https://github.com/azat)). +* Remove useless code [#20029](https://github.com/ClickHouse/ClickHouse/pull/20029) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* update changelog [#20033](https://github.com/ClickHouse/ClickHouse/pull/20033) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Close input ports in DelayedPortsProcessor as soon as all outputs are finished [#20035](https://github.com/ClickHouse/ClickHouse/pull/20035) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* ReadBuffer: check for unread data on next() [#20037](https://github.com/ClickHouse/ClickHouse/pull/20037) ([Ivan](https://github.com/abyss7)). +* ReadBuffer: check that buffer position is not set beyond end [#20039](https://github.com/ClickHouse/ClickHouse/pull/20039) ([Ivan](https://github.com/abyss7)). +* CURRENT ROW frame start for RANGE frame [#20041](https://github.com/ClickHouse/ClickHouse/pull/20041) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix log message with elapsed time while pushing to views [#20047](https://github.com/ClickHouse/ClickHouse/pull/20047) ([Azat Khuzhin](https://github.com/azat)). +* Avoid UBSan report in pointInPolygon [#20049](https://github.com/ClickHouse/ClickHouse/pull/20049) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix tests *.reference files [#20050](https://github.com/ClickHouse/ClickHouse/pull/20050) ([Azat Khuzhin](https://github.com/azat)). +* ROWS OFFSET frame end [#20060](https://github.com/ClickHouse/ClickHouse/pull/20060) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Add more tests for modulo of division of negative number [#20063](https://github.com/ClickHouse/ClickHouse/pull/20063) ([hexiaoting](https://github.com/hexiaoting)). +* detect unmarked long tests in flaky check [#20068](https://github.com/ClickHouse/ClickHouse/pull/20068) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix removing of filter column when split filter actions. [#20073](https://github.com/ClickHouse/ClickHouse/pull/20073) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Remove AddingConstColumn step and transform. [#20077](https://github.com/ClickHouse/ClickHouse/pull/20077) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* LimitReadBuffer: check that position always advances [#20078](https://github.com/ClickHouse/ClickHouse/pull/20078) ([Ivan](https://github.com/abyss7)). +* Add fuzzer for ColumnsDescription [#20094](https://github.com/ClickHouse/ClickHouse/pull/20094) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Build actions dag to evaluate missing defaults. [#20097](https://github.com/ClickHouse/ClickHouse/pull/20097) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Remove never existing insert_in_memory_parts_timeout [#20099](https://github.com/ClickHouse/ClickHouse/pull/20099) ([Azat Khuzhin](https://github.com/azat)). +* RANGE OFFSET window frame [#20111](https://github.com/ClickHouse/ClickHouse/pull/20111) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Allow to drop readonly tables [#20114](https://github.com/ClickHouse/ClickHouse/pull/20114) ([nvartolomei](https://github.com/nvartolomei)). +* Add logging if Poco cannot allocate thread in tcp server [#20120](https://github.com/ClickHouse/ClickHouse/pull/20120) ([alesapin](https://github.com/alesapin)). +* Use fixed version of confluent-kafka library in integration tests [#20124](https://github.com/ClickHouse/ClickHouse/pull/20124) ([alesapin](https://github.com/alesapin)). +* Useless changes [#20150](https://github.com/ClickHouse/ClickHouse/pull/20150) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* remove some useless code [#20152](https://github.com/ClickHouse/ClickHouse/pull/20152) ([flynn](https://github.com/ucasfl)). +* Allow using MergeTreeWhereOptimizer not only with MergeTree-based storages [#20153](https://github.com/ClickHouse/ClickHouse/pull/20153) ([Max Akhmedov](https://github.com/zlobober)). +* Fix build of utils [#20155](https://github.com/ClickHouse/ClickHouse/pull/20155) ([Ivan](https://github.com/abyss7)). +* Fix UBSan report in arrayCumSum [#20160](https://github.com/ClickHouse/ClickHouse/pull/20160) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add changelog for 21.2 [#20185](https://github.com/ClickHouse/ClickHouse/pull/20185) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix ubsan error [#20204](https://github.com/ClickHouse/ClickHouse/pull/20204) ([Amos Bird](https://github.com/amosbird)). +* Suppress signed overflow in AggregateFunctionGroupArrayMoving [#20206](https://github.com/ClickHouse/ClickHouse/pull/20206) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove dead code [#20212](https://github.com/ClickHouse/ClickHouse/pull/20212) ([nvartolomei](https://github.com/nvartolomei)). +* Handle syntax error for ARRAY JOIN with no args [#20223](https://github.com/ClickHouse/ClickHouse/pull/20223) ([Vladimir C](https://github.com/vdimir)). +* Fix benign race in system.parts [#20226](https://github.com/ClickHouse/ClickHouse/pull/20226) ([alesapin](https://github.com/alesapin)). +* Add final to some classes [#20228](https://github.com/ClickHouse/ClickHouse/pull/20228) ([alesapin](https://github.com/alesapin)). +* refine code in MergeTreeData::loadDataParts to avoid parsing WAL file as data part [#20231](https://github.com/ClickHouse/ClickHouse/pull/20231) ([Fuwang Hu](https://github.com/fuwhu)). +* fix a problem in ArithmeticOperationsInAgrFuncOptimize [#20246](https://github.com/ClickHouse/ClickHouse/pull/20246) ([flynn](https://github.com/ucasfl)). +* Add retries to test_access_control_on_cluster [#20247](https://github.com/ClickHouse/ClickHouse/pull/20247) ([Ilya Yatsishin](https://github.com/qoega)). +* Stable sort for test cases in test_dictionaries_all_layouts_separate_sources [#20248](https://github.com/ClickHouse/ClickHouse/pull/20248) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix not closed ports in DelayedPortsProcessor [#20251](https://github.com/ClickHouse/ClickHouse/pull/20251) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* print changed settings in fuzzer when the server dies [#20281](https://github.com/ClickHouse/ClickHouse/pull/20281) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Put windows in such an order that we can sort less [#20284](https://github.com/ClickHouse/ClickHouse/pull/20284) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Aggregate function deltaSum use restrict keyword [#20287](https://github.com/ClickHouse/ClickHouse/pull/20287) ([Maksim Kita](https://github.com/kitaisreal)). +* make window functions faster [#20293](https://github.com/ClickHouse/ClickHouse/pull/20293) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Accept arbitrary numeric types for numbers() arguments (for scientific notation) [#20301](https://github.com/ClickHouse/ClickHouse/pull/20301) ([Azat Khuzhin](https://github.com/azat)). +* Fix 00738_lock_for_inner_table flakiness [#20305](https://github.com/ClickHouse/ClickHouse/pull/20305) ([Azat Khuzhin](https://github.com/azat)). +* Filter push down [#20341](https://github.com/ClickHouse/ClickHouse/pull/20341) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Common types template instantiations [#20348](https://github.com/ClickHouse/ClickHouse/pull/20348) ([Maksim Kita](https://github.com/kitaisreal)). +* Add test for sign column drop [#20398](https://github.com/ClickHouse/ClickHouse/pull/20398) ([alesapin](https://github.com/alesapin)). +* Merging [#19204](https://github.com/ClickHouse/ClickHouse/issues/19204) [#20399](https://github.com/ClickHouse/ClickHouse/pull/20399) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix 01700_system_zookeeper_path_in [#20449](https://github.com/ClickHouse/ClickHouse/pull/20449) ([alesapin](https://github.com/alesapin)). +* Print stack trace on SIGTRAP [#20453](https://github.com/ClickHouse/ClickHouse/pull/20453) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in arrayDifference [#20458](https://github.com/ClickHouse/ClickHouse/pull/20458) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Suppress UBSan report in Decimal comparison [#20459](https://github.com/ClickHouse/ClickHouse/pull/20459) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Improve backtrace catching on server failures in CI for stress tests [#20462](https://github.com/ClickHouse/ClickHouse/pull/20462) ([Azat Khuzhin](https://github.com/azat)). +* Fix abnormal server terminations due to write failures [#20465](https://github.com/ClickHouse/ClickHouse/pull/20465) ([Azat Khuzhin](https://github.com/azat)). +* Improve logging during reading from MergeTree [#20466](https://github.com/ClickHouse/ClickHouse/pull/20466) ([Azat Khuzhin](https://github.com/azat)). +* Fix UBSan report in intDiv [#20475](https://github.com/ClickHouse/ClickHouse/pull/20475) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* (unrealistic case, never possible in prod) HashTable fix potential bug during resize with nonstandard grower [#20489](https://github.com/ClickHouse/ClickHouse/pull/20489) ([Maksim Kita](https://github.com/kitaisreal)). +* Add a test for [#8654](https://github.com/ClickHouse/ClickHouse/issues/8654) [#20492](https://github.com/ClickHouse/ClickHouse/pull/20492) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#10893](https://github.com/ClickHouse/ClickHouse/issues/10893) [#20493](https://github.com/ClickHouse/ClickHouse/pull/20493) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Disable testkeeper snapshots for tests [#20496](https://github.com/ClickHouse/ClickHouse/pull/20496) ([alesapin](https://github.com/alesapin)). +* Fix non-zero session reconnect in integration test [#20501](https://github.com/ClickHouse/ClickHouse/pull/20501) ([alesapin](https://github.com/alesapin)). +* Reduce test scale [#20511](https://github.com/ClickHouse/ClickHouse/pull/20511) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Quick build fix [#20513](https://github.com/ClickHouse/ClickHouse/pull/20513) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Replace null fields in tuple during parsing with default values [#20541](https://github.com/ClickHouse/ClickHouse/pull/20541) ([Maksim Kita](https://github.com/kitaisreal)). +* rabbitmq: add missing format factory settings [#20545](https://github.com/ClickHouse/ClickHouse/pull/20545) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Persistent coordination log storage [#20585](https://github.com/ClickHouse/ClickHouse/pull/20585) ([alesapin](https://github.com/alesapin)). +* Add hung check to stress test [#20588](https://github.com/ClickHouse/ClickHouse/pull/20588) ([Alexander Tokmakov](https://github.com/tavplubix)). +* ignore data store files [#20598](https://github.com/ClickHouse/ClickHouse/pull/20598) ([tison](https://github.com/tisonkun)). +* Dictionary create source with functions crash fix [#20623](https://github.com/ClickHouse/ClickHouse/pull/20623) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix fasttest retry for failed tests [#20627](https://github.com/ClickHouse/ClickHouse/pull/20627) ([alesapin](https://github.com/alesapin)). +* Don't backport base commit of branch in the same branch [#20628](https://github.com/ClickHouse/ClickHouse/pull/20628) ([Ivan](https://github.com/abyss7)). +* Add test for already fixed odbc Postgres date type conversion [#20712](https://github.com/ClickHouse/ClickHouse/pull/20712) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Improve backtrace catching on server failures in CI for fast-tests [#20864](https://github.com/ClickHouse/ClickHouse/pull/20864) ([Azat Khuzhin](https://github.com/azat)). +* Better postgres db engine numeric conversion [#20874](https://github.com/ClickHouse/ClickHouse/pull/20874) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix undefined-behavior in ReservoirSamplerDeterministic.h [#20879](https://github.com/ClickHouse/ClickHouse/pull/20879) ([Vitaly Baranov](https://github.com/vitlibar)). +* ccache 4.2+ does not requires any quirks for SOURCE_DATE_EPOCH [#20883](https://github.com/ClickHouse/ClickHouse/pull/20883) ([Azat Khuzhin](https://github.com/azat)). +* Check for EINTR in epoll_wait [#20958](https://github.com/ClickHouse/ClickHouse/pull/20958) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix push to dockerhub [#20960](https://github.com/ClickHouse/ClickHouse/pull/20960) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Better tests for protobuf format. [#20968](https://github.com/ClickHouse/ClickHouse/pull/20968) ([Vitaly Baranov](https://github.com/vitlibar)). +* Function sumMap decimal fix [#20970](https://github.com/ClickHouse/ClickHouse/pull/20970) ([Maksim Kita](https://github.com/kitaisreal)). +* test for decimal ( p , s) in dictionaries [#20980](https://github.com/ClickHouse/ClickHouse/pull/20980) ([Denny Crane](https://github.com/den-crane)). +* Fix uncaught exception when HTTP client goes away [#20981](https://github.com/ClickHouse/ClickHouse/pull/20981) ([Azat Khuzhin](https://github.com/azat)). +* Increase buffer for uncaught exception / std::terminate [#20989](https://github.com/ClickHouse/ClickHouse/pull/20989) ([Azat Khuzhin](https://github.com/azat)). +* Constraints complex types support [#20990](https://github.com/ClickHouse/ClickHouse/pull/20990) ([Maksim Kita](https://github.com/kitaisreal)). +* Suppress signed overflow in AggregateFunctionGroupArrayMoving 2 [#20995](https://github.com/ClickHouse/ClickHouse/pull/20995) ([Amos Bird](https://github.com/amosbird)). +* Add log message when stacktrace cannot be obtained for thread [#20996](https://github.com/ClickHouse/ClickHouse/pull/20996) ([Azat Khuzhin](https://github.com/azat)). +* Preserve mysql logs in test_materialize_mysql_database [#21016](https://github.com/ClickHouse/ClickHouse/pull/21016) ([Azat Khuzhin](https://github.com/azat)). +* Minor changes in Decimal [#21017](https://github.com/ClickHouse/ClickHouse/pull/21017) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* yamllint style check [#21019](https://github.com/ClickHouse/ClickHouse/pull/21019) ([Azat Khuzhin](https://github.com/azat)). +* Fix buffer size for trace collection [#21020](https://github.com/ClickHouse/ClickHouse/pull/21020) ([Azat Khuzhin](https://github.com/azat)). +* Try fix MaterializeMySQL integration test [#21021](https://github.com/ClickHouse/ClickHouse/pull/21021) ([Winter Zhang](https://github.com/zhang2014)). +* Fix performance tests (by avoid sharing status file for right and left server) [#21022](https://github.com/ClickHouse/ClickHouse/pull/21022) ([Azat Khuzhin](https://github.com/azat)). +* Revert "optimize aggfunc column data copy ([#19407](https://github.com/ClickHouse/ClickHouse/issues/19407))" [#21024](https://github.com/ClickHouse/ClickHouse/pull/21024) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in Decimal arithmetic [#21025](https://github.com/ClickHouse/ClickHouse/pull/21025) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update lowcardinality.md [#21033](https://github.com/ClickHouse/ClickHouse/pull/21033) ([Michael Monashev](https://github.com/MichaelMonashev)). +* Fix DateTime64 from Float [#21050](https://github.com/ClickHouse/ClickHouse/pull/21050) ([Azat Khuzhin](https://github.com/azat)). +* Add test for [#19376](https://github.com/ClickHouse/ClickHouse/issues/19376) [#21051](https://github.com/ClickHouse/ClickHouse/pull/21051) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merging [#20620](https://github.com/ClickHouse/ClickHouse/issues/20620) [#21052](https://github.com/ClickHouse/ClickHouse/pull/21052) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#9781](https://github.com/ClickHouse/ClickHouse/issues/9781) [#21074](https://github.com/ClickHouse/ClickHouse/pull/21074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix various issues in DDLWorker (SIGSEGV and others) [#21079](https://github.com/ClickHouse/ClickHouse/pull/21079) ([Azat Khuzhin](https://github.com/azat)). +* Documentation low cardinality fix [#21086](https://github.com/ClickHouse/ClickHouse/pull/21086) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix __has_feature macros under gcc [#21088](https://github.com/ClickHouse/ClickHouse/pull/21088) ([Azat Khuzhin](https://github.com/azat)). +* test for window functions [#21094](https://github.com/ClickHouse/ClickHouse/pull/21094) ([Denny Crane](https://github.com/den-crane)). +* Fix replace[All] functions so that they don't generate garbage to stderr [#21098](https://github.com/ClickHouse/ClickHouse/pull/21098) ([Amos Bird](https://github.com/amosbird)). +* Better tests for protobuf format #2. [#21148](https://github.com/ClickHouse/ClickHouse/pull/21148) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix ccache 4.2+ usage (RULE_LAUNCH_COMPILE/RULE_LAUNCH_LINK was not set) [#21158](https://github.com/ClickHouse/ClickHouse/pull/21158) ([Azat Khuzhin](https://github.com/azat)). +* Bump zookeeper version to 3.6.2 in tests [#21171](https://github.com/ClickHouse/ClickHouse/pull/21171) ([Azat Khuzhin](https://github.com/azat)). +* StorageRabbitMQ added UVLoop [#21193](https://github.com/ClickHouse/ClickHouse/pull/21193) ([Maksim Kita](https://github.com/kitaisreal)). +* Trying to make nukeeper better in single server mode [#21207](https://github.com/ClickHouse/ClickHouse/pull/21207) ([alesapin](https://github.com/alesapin)). +* A followup correction to [#19998](https://github.com/ClickHouse/ClickHouse/issues/19998) [#21221](https://github.com/ClickHouse/ClickHouse/pull/21221) ([Alexander Kazakov](https://github.com/Akazz)). +* Add tests for zstd and zlib http compression [#21279](https://github.com/ClickHouse/ClickHouse/pull/21279) ([Kseniia Sumarokova](https://github.com/kssenii)). +* CheckConstraintsBlockOutputStream optimize nullable column case [#21285](https://github.com/ClickHouse/ClickHouse/pull/21285) ([Maksim Kita](https://github.com/kitaisreal)). +* Rewrite extractTextFromHTML function [#21292](https://github.com/ClickHouse/ClickHouse/pull/21292) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix abnormal server termination for nested writers [#21305](https://github.com/ClickHouse/ClickHouse/pull/21305) ([Azat Khuzhin](https://github.com/azat)). +* [RFC] Remove unused writers [#21306](https://github.com/ClickHouse/ClickHouse/pull/21306) ([Azat Khuzhin](https://github.com/azat)). +* remove unused code in MergeTreeWriteAheadLog::restore [#21308](https://github.com/ClickHouse/ClickHouse/pull/21308) ([Fuwang Hu](https://github.com/fuwhu)). +* IColunm::hasEqualValues() [#21327](https://github.com/ClickHouse/ClickHouse/pull/21327) ([Amos Bird](https://github.com/amosbird)). +* AggregateFunctionSumMap better comment message [#21353](https://github.com/ClickHouse/ClickHouse/pull/21353) ([Maksim Kita](https://github.com/kitaisreal)). +* clickhouse stop: wait for the server to be killed (process exited) [#21365](https://github.com/ClickHouse/ClickHouse/pull/21365) ([Azat Khuzhin](https://github.com/azat)). +* [ClickHouse][LOG]correct shutdown timeout log [#21366](https://github.com/ClickHouse/ClickHouse/pull/21366) ([jasong](https://github.com/songenjie)). +* fix a rare false negative in perf tests [#21381](https://github.com/ClickHouse/ClickHouse/pull/21381) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* test for issue[#21369](https://github.com/ClickHouse/ClickHouse/issues/21369) [#21387](https://github.com/ClickHouse/ClickHouse/pull/21387) ([Denny Crane](https://github.com/den-crane)). +* Add a test for [#14740](https://github.com/ClickHouse/ClickHouse/issues/14740) [#21392](https://github.com/ClickHouse/ClickHouse/pull/21392) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#15469](https://github.com/ClickHouse/ClickHouse/issues/15469) [#21393](https://github.com/ClickHouse/ClickHouse/pull/21393) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix typo in setting name [#21418](https://github.com/ClickHouse/ClickHouse/pull/21418) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix flaky tests with distributed queries [#21432](https://github.com/ClickHouse/ClickHouse/pull/21432) ([Azat Khuzhin](https://github.com/azat)). +* Fix ParsingException::displayText() [#21433](https://github.com/ClickHouse/ClickHouse/pull/21433) ([Azat Khuzhin](https://github.com/azat)). +* Use path as default prefix for coordination logs [#21439](https://github.com/ClickHouse/ClickHouse/pull/21439) ([alesapin](https://github.com/alesapin)). +* Try fix perftests. [#21447](https://github.com/ClickHouse/ClickHouse/pull/21447) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* avoid race in librdkafka [#21452](https://github.com/ClickHouse/ClickHouse/pull/21452) ([filimonov](https://github.com/filimonov)). +* test for [#21413](https://github.com/ClickHouse/ClickHouse/issues/21413) [#21455](https://github.com/ClickHouse/ClickHouse/pull/21455) ([Denny Crane](https://github.com/den-crane)). +* Tiny fix [#21458](https://github.com/ClickHouse/ClickHouse/pull/21458) ([Amos Bird](https://github.com/amosbird)). +* Just another fix for DDLWorker [#21461](https://github.com/ClickHouse/ClickHouse/pull/21461) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v21.3.10.1-lts.md b/docs/changelogs/v21.3.10.1-lts.md index 49ece009ad1..d43237428e2 100644 --- a/docs/changelogs/v21.3.10.1-lts.md +++ b/docs/changelogs/v21.3.10.1-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.10.1-lts FIXME as compared to v21.3.9.83-lts #### Bug Fix @@ -6,3 +13,7 @@ * Backported in [#23817](https://github.com/ClickHouse/ClickHouse/issues/23817): Fix crash when `PREWHERE` and row policy filter are both in effect with empty result. [#23763](https://github.com/ClickHouse/ClickHouse/pull/23763) ([Amos Bird](https://github.com/amosbird)). * Backported in [#23814](https://github.com/ClickHouse/ClickHouse/issues/23814): Fix `CLEAR COLUMN` does not work when it is referenced by materialized view. Close [#23764](https://github.com/ClickHouse/ClickHouse/issues/23764). [#23781](https://github.com/ClickHouse/ClickHouse/pull/23781) ([flynn](https://github.com/ucasfl)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Flat, Hashed dictionary include update field bytes into bytes_allocated [#23825](https://github.com/ClickHouse/ClickHouse/pull/23825) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.3.11.5-lts.md b/docs/changelogs/v21.3.11.5-lts.md index 61aa8a54688..2918ab860a6 100644 --- a/docs/changelogs/v21.3.11.5-lts.md +++ b/docs/changelogs/v21.3.11.5-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.11.5-lts FIXME as compared to v21.3.10.1-lts #### Improvement diff --git a/docs/changelogs/v21.3.12.2-lts.md b/docs/changelogs/v21.3.12.2-lts.md index cfddf8c9cdd..02c649284cc 100644 --- a/docs/changelogs/v21.3.12.2-lts.md +++ b/docs/changelogs/v21.3.12.2-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.12.2-lts FIXME as compared to v21.3.11.5-lts #### Bug Fix @@ -10,3 +17,9 @@ * Backported in [#24241](https://github.com/ClickHouse/ClickHouse/issues/24241): Fix wrong typo at StorageMemory, this bug was introduced at [#15127](https://github.com/ClickHouse/ClickHouse/issues/15127), now fixed, Closes [#24192](https://github.com/ClickHouse/ClickHouse/issues/24192). [#24193](https://github.com/ClickHouse/ClickHouse/pull/24193) ([张中南](https://github.com/plugine)). * Backported in [#24353](https://github.com/ClickHouse/ClickHouse/issues/24353): Fixed a bug in moving Materialized View from Ordinary to Atomic database (`RENAME TABLE` query). Now inner table is moved to new database together with Materialized View. Fixes [#23926](https://github.com/ClickHouse/ClickHouse/issues/23926). [#24309](https://github.com/ClickHouse/ClickHouse/pull/24309) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix segfault in TSan on _exit [#23616](https://github.com/ClickHouse/ClickHouse/pull/23616) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Use memmove in PODArray::insert to handle memory overlapping. [#24271](https://github.com/ClickHouse/ClickHouse/pull/24271) ([Fu Zhe](https://github.com/fuzhe1989)). +* Fix cli argument in clickhouse-server.init [#24449](https://github.com/ClickHouse/ClickHouse/pull/24449) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v21.3.13.9-lts.md b/docs/changelogs/v21.3.13.9-lts.md index dccb9c53162..f78725e4408 100644 --- a/docs/changelogs/v21.3.13.9-lts.md +++ b/docs/changelogs/v21.3.13.9-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.13.9-lts FIXME as compared to v21.3.12.2-lts #### Improvement @@ -41,3 +48,8 @@ * NO CL ENTRY: 'Revert "Backport [#24721](https://github.com/ClickHouse/ClickHouse/issues/24721) to 21.3: Remove endless `wait` from ZooKeeper client"'. [#24799](https://github.com/ClickHouse/ClickHouse/pull/24799) ([alesapin](https://github.com/alesapin)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Try fix `test_consistent_parts_after_clone_replica` [#24968](https://github.com/ClickHouse/ClickHouse/pull/24968) ([Alexander Tokmakov](https://github.com/tavplubix)). +* DictionaryLoader unnecessary dictionary configuration creation fix [#25001](https://github.com/ClickHouse/ClickHouse/pull/25001) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.3.14.1-lts.md b/docs/changelogs/v21.3.14.1-lts.md index b2408471ccd..eb2ce73b01f 100644 --- a/docs/changelogs/v21.3.14.1-lts.md +++ b/docs/changelogs/v21.3.14.1-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.14.1-lts FIXME as compared to v21.3.13.9-lts #### Bug Fix @@ -8,3 +15,7 @@ * Backported in [#25716](https://github.com/ClickHouse/ClickHouse/issues/25716): `REPLACE PARTITION` might be ignored in rare cases if the source partition was empty. It's fixed. Fixes [#24869](https://github.com/ClickHouse/ClickHouse/issues/24869). [#25665](https://github.com/ClickHouse/ClickHouse/pull/25665) ([Alexander Tokmakov](https://github.com/tavplubix)). * Backported in [#25712](https://github.com/ClickHouse/ClickHouse/issues/25712): Fixed `No such file or directory` error on moving `Distributed` table between databases. Fixes [#24971](https://github.com/ClickHouse/ClickHouse/issues/24971). [#25667](https://github.com/ClickHouse/ClickHouse/pull/25667) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Backport unrelated changes, which fixes aliases bug [#25681](https://github.com/ClickHouse/ClickHouse/pull/25681) ([alesapin](https://github.com/alesapin)). + diff --git a/docs/changelogs/v21.3.15.4-stable.md b/docs/changelogs/v21.3.15.4-stable.md index c6b7a15aa4d..ca5a25850a1 100644 --- a/docs/changelogs/v21.3.15.4-stable.md +++ b/docs/changelogs/v21.3.15.4-stable.md @@ -1,6 +1,17 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.15.4-stable FIXME as compared to v21.3.14.1-lts #### Bug Fix * Backported in [#25956](https://github.com/ClickHouse/ClickHouse/issues/25956): Fix extremely long backoff for background tasks when the background pool is full. Fixes [#25836](https://github.com/ClickHouse/ClickHouse/issues/25836). [#25893](https://github.com/ClickHouse/ClickHouse/pull/25893) ([alesapin](https://github.com/alesapin)). * Backported in [#26141](https://github.com/ClickHouse/ClickHouse/issues/26141): Fix possible crash in `pointInPolygon` if the setting `validate_polygons` is turned off. [#26113](https://github.com/ClickHouse/ClickHouse/pull/26113) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* 21.3 Docker unbundled fix [#26153](https://github.com/ClickHouse/ClickHouse/pull/26153) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.3.16.5-lts.md b/docs/changelogs/v21.3.16.5-lts.md index b5b31b64488..a1e73b7c019 100644 --- a/docs/changelogs/v21.3.16.5-lts.md +++ b/docs/changelogs/v21.3.16.5-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.16.5-lts FIXME as compared to v21.3.15.4-stable #### Bug Fix @@ -23,3 +30,15 @@ * Backported in [#28181](https://github.com/ClickHouse/ClickHouse/issues/28181): Fixed possible excessive number of conditions moved from `WHERE` to `PREWHERE` (optimization controlled by settings `optimize_move_to_prewhere`). [#28139](https://github.com/ClickHouse/ClickHouse/pull/28139) ([lthaooo](https://github.com/lthaooo)). * Backported in [#28293](https://github.com/ClickHouse/ClickHouse/issues/28293): Fix inconsistent result in queries with `ORDER BY` and `Merge` tables with enabled setting `optimize_read_in_order`. [#28266](https://github.com/ClickHouse/ClickHouse/pull/28266) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix prometheus metric name [#26140](https://github.com/ClickHouse/ClickHouse/pull/26140) ([Vladimir C](https://github.com/vdimir)). +* Fix mysql_kill_sync_thread_restore_test [#26673](https://github.com/ClickHouse/ClickHouse/pull/26673) ([Vladimir C](https://github.com/vdimir)). +* Try fix rabbitmq tests [#26826](https://github.com/ClickHouse/ClickHouse/pull/26826) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update PVS checksum [#27317](https://github.com/ClickHouse/ClickHouse/pull/27317) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix race between REPLACE PARTITION and MOVE PARTITION [#28035](https://github.com/ClickHouse/ClickHouse/pull/28035) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Follow-up to [#28016](https://github.com/ClickHouse/ClickHouse/issues/28016) [#28036](https://github.com/ClickHouse/ClickHouse/pull/28036) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Set version of tzlocal to 2.1 [#28063](https://github.com/ClickHouse/ClickHouse/pull/28063) ([Vitaly Baranov](https://github.com/vitlibar)). +* Another try to fix BackgroundPoolTask decrement. [#28353](https://github.com/ClickHouse/ClickHouse/pull/28353) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* More accurate check that zk root exists. [#28412](https://github.com/ClickHouse/ClickHouse/pull/28412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.3.17.2-lts.md b/docs/changelogs/v21.3.17.2-lts.md index b6b48ddab61..41007a45634 100644 --- a/docs/changelogs/v21.3.17.2-lts.md +++ b/docs/changelogs/v21.3.17.2-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.17.2-lts FIXME as compared to v21.3.16.5-lts #### Bug Fix diff --git a/docs/changelogs/v21.3.18.4-lts.md b/docs/changelogs/v21.3.18.4-lts.md index 612b3660e3b..5bb29b08df8 100644 --- a/docs/changelogs/v21.3.18.4-lts.md +++ b/docs/changelogs/v21.3.18.4-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.18.4-lts FIXME as compared to v21.3.17.2-lts #### Improvement @@ -20,3 +27,10 @@ * Backported in [#30332](https://github.com/ClickHouse/ClickHouse/issues/30332): * Allow identifiers staring with numbers in multiple joins. [#30230](https://github.com/ClickHouse/ClickHouse/pull/30230) ([Vladimir C](https://github.com/vdimir)). * Backported in [#30379](https://github.com/ClickHouse/ClickHouse/issues/30379): fix replaceRegexpAll bug. [#30292](https://github.com/ClickHouse/ClickHouse/pull/30292) ([Memo](https://github.com/Joeywzr)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Don not add const group by key for query with only having. [#28975](https://github.com/ClickHouse/ClickHouse/pull/28975) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merging [#27963](https://github.com/ClickHouse/ClickHouse/issues/27963) [#29063](https://github.com/ClickHouse/ClickHouse/pull/29063) ([Maksim Kita](https://github.com/kitaisreal)). +* May be fix s3 tests [#29762](https://github.com/ClickHouse/ClickHouse/pull/29762) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix ca-bundle.crt in kerberized_hadoop/Dockerfile [#30358](https://github.com/ClickHouse/ClickHouse/pull/30358) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v21.3.19.1-lts.md b/docs/changelogs/v21.3.19.1-lts.md index 6a2be8d6dcb..fa8e94fa7a1 100644 --- a/docs/changelogs/v21.3.19.1-lts.md +++ b/docs/changelogs/v21.3.19.1-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.19.1-lts FIXME as compared to v21.3.18.4-lts #### Performance Improvement @@ -24,3 +31,8 @@ * Backported in [#31894](https://github.com/ClickHouse/ClickHouse/issues/31894): Fix possible assertion `../src/IO/ReadBuffer.h:58: bool DB::ReadBuffer::next(): Assertion '!hasPendingData()' failed.` in TSKV format. [#31804](https://github.com/ClickHouse/ClickHouse/pull/31804) ([Kruglov Pavel](https://github.com/Avogar)). * Backported in [#32214](https://github.com/ClickHouse/ClickHouse/issues/32214): Number of active replicas might be determined incorrectly when inserting with quorum if setting `replicated_can_become_leader` is disabled on some replicas. It's fixed. [#32157](https://github.com/ClickHouse/ClickHouse/pull/32157) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* BloomFilter index check fix [#31334](https://github.com/ClickHouse/ClickHouse/pull/31334) ([Maksim Kita](https://github.com/kitaisreal)). +* Support toUInt8/toInt8 for if constant condition optimization. [#31866](https://github.com/ClickHouse/ClickHouse/pull/31866) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.3.2.5-lts.md b/docs/changelogs/v21.3.2.5-lts.md index 5135f909b7f..0eb32439c6b 100644 --- a/docs/changelogs/v21.3.2.5-lts.md +++ b/docs/changelogs/v21.3.2.5-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.2.5-lts FIXME as compared to v21.2.1.5869-prestable #### Backward Incompatible Change @@ -159,3 +166,164 @@ * NO CL ENTRY: 'Revert "Fix access control manager destruction order"'. [#20394](https://github.com/ClickHouse/ClickHouse/pull/20394) ([alesapin](https://github.com/alesapin)). * NO CL ENTRY: 'Update argmax.md '. [#20625](https://github.com/ClickHouse/ClickHouse/pull/20625) ([Marvin Taschenberger](https://github.com/Taschenbergerm)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Update Pytest check [#18972](https://github.com/ClickHouse/ClickHouse/pull/18972) ([Ivan](https://github.com/abyss7)). +* [wip] support RANGE frame for window functions [#19299](https://github.com/ClickHouse/ClickHouse/pull/19299) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* In memory coordination inside ClickHouse [#19580](https://github.com/ClickHouse/ClickHouse/pull/19580) ([alesapin](https://github.com/alesapin)). +* client: more suggestions [#19584](https://github.com/ClickHouse/ClickHouse/pull/19584) ([Azat Khuzhin](https://github.com/azat)). +* Allow to run all style checks in one file [#19726](https://github.com/ClickHouse/ClickHouse/pull/19726) ([Anton Popov](https://github.com/CurtizJ)). +* Fix [#19371](https://github.com/ClickHouse/ClickHouse/issues/19371) [#19765](https://github.com/ClickHouse/ClickHouse/pull/19765) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Minor code improvements around ThreadStatus [#19771](https://github.com/ClickHouse/ClickHouse/pull/19771) ([Alexander Tokmakov](https://github.com/tavplubix)). +* continue of [#19487](https://github.com/ClickHouse/ClickHouse/issues/19487) [#19801](https://github.com/ClickHouse/ClickHouse/pull/19801) ([flynn](https://github.com/ucasfl)). +* Fix UBSan report in intDiv [#19876](https://github.com/ClickHouse/ClickHouse/pull/19876) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Allow writing partial buffer [#19886](https://github.com/ClickHouse/ClickHouse/pull/19886) ([Azat Khuzhin](https://github.com/azat)). +* Remove an always-false condition from query parser [#19919](https://github.com/ClickHouse/ClickHouse/pull/19919) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* UNBOUNDED FOLLOWING frame end [#19921](https://github.com/ClickHouse/ClickHouse/pull/19921) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix logical error in INSERT VALUES [#19925](https://github.com/ClickHouse/ClickHouse/pull/19925) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix test keeper integration tests [#19942](https://github.com/ClickHouse/ClickHouse/pull/19942) ([alesapin](https://github.com/alesapin)). +* Fix build [#19948](https://github.com/ClickHouse/ClickHouse/pull/19948) ([Kruglov Pavel](https://github.com/Avogar)). +* CURRENT ROW and offset for start of ROWS frame [#19951](https://github.com/ClickHouse/ClickHouse/pull/19951) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix UBSan report in geoHashesInBox [#19956](https://github.com/ClickHouse/ClickHouse/pull/19956) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add MSan annotation for system.stack_trace [#19957](https://github.com/ClickHouse/ClickHouse/pull/19957) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky integration tests [#19971](https://github.com/ClickHouse/ClickHouse/pull/19971) ([Azat Khuzhin](https://github.com/azat)). +* Do not use inputs which values are known constants in ActionsDAG. [#19991](https://github.com/ClickHouse/ClickHouse/pull/19991) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* update perf tests [#20000](https://github.com/ClickHouse/ClickHouse/pull/20000) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* UBsan fixes [#20011](https://github.com/ClickHouse/ClickHouse/pull/20011) ([Azat Khuzhin](https://github.com/azat)). +* Remove useless code [#20029](https://github.com/ClickHouse/ClickHouse/pull/20029) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* update changelog [#20033](https://github.com/ClickHouse/ClickHouse/pull/20033) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Close input ports in DelayedPortsProcessor as soon as all outputs are finished [#20035](https://github.com/ClickHouse/ClickHouse/pull/20035) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* ReadBuffer: check for unread data on next() [#20037](https://github.com/ClickHouse/ClickHouse/pull/20037) ([Ivan](https://github.com/abyss7)). +* ReadBuffer: check that buffer position is not set beyond end [#20039](https://github.com/ClickHouse/ClickHouse/pull/20039) ([Ivan](https://github.com/abyss7)). +* CURRENT ROW frame start for RANGE frame [#20041](https://github.com/ClickHouse/ClickHouse/pull/20041) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix log message with elapsed time while pushing to views [#20047](https://github.com/ClickHouse/ClickHouse/pull/20047) ([Azat Khuzhin](https://github.com/azat)). +* Avoid UBSan report in pointInPolygon [#20049](https://github.com/ClickHouse/ClickHouse/pull/20049) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix tests *.reference files [#20050](https://github.com/ClickHouse/ClickHouse/pull/20050) ([Azat Khuzhin](https://github.com/azat)). +* ROWS OFFSET frame end [#20060](https://github.com/ClickHouse/ClickHouse/pull/20060) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Add more tests for modulo of division of negative number [#20063](https://github.com/ClickHouse/ClickHouse/pull/20063) ([hexiaoting](https://github.com/hexiaoting)). +* detect unmarked long tests in flaky check [#20068](https://github.com/ClickHouse/ClickHouse/pull/20068) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix removing of filter column when split filter actions. [#20073](https://github.com/ClickHouse/ClickHouse/pull/20073) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Remove AddingConstColumn step and transform. [#20077](https://github.com/ClickHouse/ClickHouse/pull/20077) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* LimitReadBuffer: check that position always advances [#20078](https://github.com/ClickHouse/ClickHouse/pull/20078) ([Ivan](https://github.com/abyss7)). +* Add fuzzer for ColumnsDescription [#20094](https://github.com/ClickHouse/ClickHouse/pull/20094) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Build actions dag to evaluate missing defaults. [#20097](https://github.com/ClickHouse/ClickHouse/pull/20097) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Remove never existing insert_in_memory_parts_timeout [#20099](https://github.com/ClickHouse/ClickHouse/pull/20099) ([Azat Khuzhin](https://github.com/azat)). +* RANGE OFFSET window frame [#20111](https://github.com/ClickHouse/ClickHouse/pull/20111) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Allow to drop readonly tables [#20114](https://github.com/ClickHouse/ClickHouse/pull/20114) ([nvartolomei](https://github.com/nvartolomei)). +* Add logging if Poco cannot allocate thread in tcp server [#20120](https://github.com/ClickHouse/ClickHouse/pull/20120) ([alesapin](https://github.com/alesapin)). +* Use fixed version of confluent-kafka library in integration tests [#20124](https://github.com/ClickHouse/ClickHouse/pull/20124) ([alesapin](https://github.com/alesapin)). +* Useless changes [#20150](https://github.com/ClickHouse/ClickHouse/pull/20150) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* remove some useless code [#20152](https://github.com/ClickHouse/ClickHouse/pull/20152) ([flynn](https://github.com/ucasfl)). +* Allow using MergeTreeWhereOptimizer not only with MergeTree-based storages [#20153](https://github.com/ClickHouse/ClickHouse/pull/20153) ([Max Akhmedov](https://github.com/zlobober)). +* Fix build of utils [#20155](https://github.com/ClickHouse/ClickHouse/pull/20155) ([Ivan](https://github.com/abyss7)). +* Fix UBSan report in arrayCumSum [#20160](https://github.com/ClickHouse/ClickHouse/pull/20160) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add changelog for 21.2 [#20185](https://github.com/ClickHouse/ClickHouse/pull/20185) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix ubsan error [#20204](https://github.com/ClickHouse/ClickHouse/pull/20204) ([Amos Bird](https://github.com/amosbird)). +* Suppress signed overflow in AggregateFunctionGroupArrayMoving [#20206](https://github.com/ClickHouse/ClickHouse/pull/20206) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove dead code [#20212](https://github.com/ClickHouse/ClickHouse/pull/20212) ([nvartolomei](https://github.com/nvartolomei)). +* Handle syntax error for ARRAY JOIN with no args [#20223](https://github.com/ClickHouse/ClickHouse/pull/20223) ([Vladimir C](https://github.com/vdimir)). +* Fix benign race in system.parts [#20226](https://github.com/ClickHouse/ClickHouse/pull/20226) ([alesapin](https://github.com/alesapin)). +* Add final to some classes [#20228](https://github.com/ClickHouse/ClickHouse/pull/20228) ([alesapin](https://github.com/alesapin)). +* refine code in MergeTreeData::loadDataParts to avoid parsing WAL file as data part [#20231](https://github.com/ClickHouse/ClickHouse/pull/20231) ([Fuwang Hu](https://github.com/fuwhu)). +* fix a problem in ArithmeticOperationsInAgrFuncOptimize [#20246](https://github.com/ClickHouse/ClickHouse/pull/20246) ([flynn](https://github.com/ucasfl)). +* Add retries to test_access_control_on_cluster [#20247](https://github.com/ClickHouse/ClickHouse/pull/20247) ([Ilya Yatsishin](https://github.com/qoega)). +* Stable sort for test cases in test_dictionaries_all_layouts_separate_sources [#20248](https://github.com/ClickHouse/ClickHouse/pull/20248) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix not closed ports in DelayedPortsProcessor [#20251](https://github.com/ClickHouse/ClickHouse/pull/20251) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* print changed settings in fuzzer when the server dies [#20281](https://github.com/ClickHouse/ClickHouse/pull/20281) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Put windows in such an order that we can sort less [#20284](https://github.com/ClickHouse/ClickHouse/pull/20284) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Aggregate function deltaSum use restrict keyword [#20287](https://github.com/ClickHouse/ClickHouse/pull/20287) ([Maksim Kita](https://github.com/kitaisreal)). +* make window functions faster [#20293](https://github.com/ClickHouse/ClickHouse/pull/20293) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Accept arbitrary numeric types for numbers() arguments (for scientific notation) [#20301](https://github.com/ClickHouse/ClickHouse/pull/20301) ([Azat Khuzhin](https://github.com/azat)). +* Fix 00738_lock_for_inner_table flakiness [#20305](https://github.com/ClickHouse/ClickHouse/pull/20305) ([Azat Khuzhin](https://github.com/azat)). +* Filter push down [#20341](https://github.com/ClickHouse/ClickHouse/pull/20341) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Common types template instantiations [#20348](https://github.com/ClickHouse/ClickHouse/pull/20348) ([Maksim Kita](https://github.com/kitaisreal)). +* Add test for sign column drop [#20398](https://github.com/ClickHouse/ClickHouse/pull/20398) ([alesapin](https://github.com/alesapin)). +* Merging [#19204](https://github.com/ClickHouse/ClickHouse/issues/19204) [#20399](https://github.com/ClickHouse/ClickHouse/pull/20399) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix 01700_system_zookeeper_path_in [#20449](https://github.com/ClickHouse/ClickHouse/pull/20449) ([alesapin](https://github.com/alesapin)). +* Print stack trace on SIGTRAP [#20453](https://github.com/ClickHouse/ClickHouse/pull/20453) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in arrayDifference [#20458](https://github.com/ClickHouse/ClickHouse/pull/20458) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Suppress UBSan report in Decimal comparison [#20459](https://github.com/ClickHouse/ClickHouse/pull/20459) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Improve backtrace catching on server failures in CI for stress tests [#20462](https://github.com/ClickHouse/ClickHouse/pull/20462) ([Azat Khuzhin](https://github.com/azat)). +* Fix abnormal server terminations due to write failures [#20465](https://github.com/ClickHouse/ClickHouse/pull/20465) ([Azat Khuzhin](https://github.com/azat)). +* Improve logging during reading from MergeTree [#20466](https://github.com/ClickHouse/ClickHouse/pull/20466) ([Azat Khuzhin](https://github.com/azat)). +* Fix UBSan report in intDiv [#20475](https://github.com/ClickHouse/ClickHouse/pull/20475) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* (unrealistic case, never possible in prod) HashTable fix potential bug during resize with nonstandard grower [#20489](https://github.com/ClickHouse/ClickHouse/pull/20489) ([Maksim Kita](https://github.com/kitaisreal)). +* Add a test for [#8654](https://github.com/ClickHouse/ClickHouse/issues/8654) [#20492](https://github.com/ClickHouse/ClickHouse/pull/20492) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#10893](https://github.com/ClickHouse/ClickHouse/issues/10893) [#20493](https://github.com/ClickHouse/ClickHouse/pull/20493) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Disable testkeeper snapshots for tests [#20496](https://github.com/ClickHouse/ClickHouse/pull/20496) ([alesapin](https://github.com/alesapin)). +* Fix non-zero session reconnect in integration test [#20501](https://github.com/ClickHouse/ClickHouse/pull/20501) ([alesapin](https://github.com/alesapin)). +* Reduce test scale [#20511](https://github.com/ClickHouse/ClickHouse/pull/20511) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Quick build fix [#20513](https://github.com/ClickHouse/ClickHouse/pull/20513) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Replace null fields in tuple during parsing with default values [#20541](https://github.com/ClickHouse/ClickHouse/pull/20541) ([Maksim Kita](https://github.com/kitaisreal)). +* rabbitmq: add missing format factory settings [#20545](https://github.com/ClickHouse/ClickHouse/pull/20545) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Persistent coordination log storage [#20585](https://github.com/ClickHouse/ClickHouse/pull/20585) ([alesapin](https://github.com/alesapin)). +* Add hung check to stress test [#20588](https://github.com/ClickHouse/ClickHouse/pull/20588) ([Alexander Tokmakov](https://github.com/tavplubix)). +* ignore data store files [#20598](https://github.com/ClickHouse/ClickHouse/pull/20598) ([tison](https://github.com/tisonkun)). +* Dictionary create source with functions crash fix [#20623](https://github.com/ClickHouse/ClickHouse/pull/20623) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix fasttest retry for failed tests [#20627](https://github.com/ClickHouse/ClickHouse/pull/20627) ([alesapin](https://github.com/alesapin)). +* Don't backport base commit of branch in the same branch [#20628](https://github.com/ClickHouse/ClickHouse/pull/20628) ([Ivan](https://github.com/abyss7)). +* Add test for already fixed odbc Postgres date type conversion [#20712](https://github.com/ClickHouse/ClickHouse/pull/20712) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Improve backtrace catching on server failures in CI for fast-tests [#20864](https://github.com/ClickHouse/ClickHouse/pull/20864) ([Azat Khuzhin](https://github.com/azat)). +* Better postgres db engine numeric conversion [#20874](https://github.com/ClickHouse/ClickHouse/pull/20874) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix undefined-behavior in ReservoirSamplerDeterministic.h [#20879](https://github.com/ClickHouse/ClickHouse/pull/20879) ([Vitaly Baranov](https://github.com/vitlibar)). +* ccache 4.2+ does not requires any quirks for SOURCE_DATE_EPOCH [#20883](https://github.com/ClickHouse/ClickHouse/pull/20883) ([Azat Khuzhin](https://github.com/azat)). +* Check for EINTR in epoll_wait [#20958](https://github.com/ClickHouse/ClickHouse/pull/20958) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix push to dockerhub [#20960](https://github.com/ClickHouse/ClickHouse/pull/20960) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Better tests for protobuf format. [#20968](https://github.com/ClickHouse/ClickHouse/pull/20968) ([Vitaly Baranov](https://github.com/vitlibar)). +* Function sumMap decimal fix [#20970](https://github.com/ClickHouse/ClickHouse/pull/20970) ([Maksim Kita](https://github.com/kitaisreal)). +* test for decimal ( p , s) in dictionaries [#20980](https://github.com/ClickHouse/ClickHouse/pull/20980) ([Denny Crane](https://github.com/den-crane)). +* Fix uncaught exception when HTTP client goes away [#20981](https://github.com/ClickHouse/ClickHouse/pull/20981) ([Azat Khuzhin](https://github.com/azat)). +* Increase buffer for uncaught exception / std::terminate [#20989](https://github.com/ClickHouse/ClickHouse/pull/20989) ([Azat Khuzhin](https://github.com/azat)). +* Constraints complex types support [#20990](https://github.com/ClickHouse/ClickHouse/pull/20990) ([Maksim Kita](https://github.com/kitaisreal)). +* Suppress signed overflow in AggregateFunctionGroupArrayMoving 2 [#20995](https://github.com/ClickHouse/ClickHouse/pull/20995) ([Amos Bird](https://github.com/amosbird)). +* Add log message when stacktrace cannot be obtained for thread [#20996](https://github.com/ClickHouse/ClickHouse/pull/20996) ([Azat Khuzhin](https://github.com/azat)). +* Preserve mysql logs in test_materialize_mysql_database [#21016](https://github.com/ClickHouse/ClickHouse/pull/21016) ([Azat Khuzhin](https://github.com/azat)). +* Minor changes in Decimal [#21017](https://github.com/ClickHouse/ClickHouse/pull/21017) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* yamllint style check [#21019](https://github.com/ClickHouse/ClickHouse/pull/21019) ([Azat Khuzhin](https://github.com/azat)). +* Fix buffer size for trace collection [#21020](https://github.com/ClickHouse/ClickHouse/pull/21020) ([Azat Khuzhin](https://github.com/azat)). +* Try fix MaterializeMySQL integration test [#21021](https://github.com/ClickHouse/ClickHouse/pull/21021) ([Winter Zhang](https://github.com/zhang2014)). +* Fix performance tests (by avoid sharing status file for right and left server) [#21022](https://github.com/ClickHouse/ClickHouse/pull/21022) ([Azat Khuzhin](https://github.com/azat)). +* Revert "optimize aggfunc column data copy ([#19407](https://github.com/ClickHouse/ClickHouse/issues/19407))" [#21024](https://github.com/ClickHouse/ClickHouse/pull/21024) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in Decimal arithmetic [#21025](https://github.com/ClickHouse/ClickHouse/pull/21025) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update lowcardinality.md [#21033](https://github.com/ClickHouse/ClickHouse/pull/21033) ([Michael Monashev](https://github.com/MichaelMonashev)). +* Fix DateTime64 from Float [#21050](https://github.com/ClickHouse/ClickHouse/pull/21050) ([Azat Khuzhin](https://github.com/azat)). +* Add test for [#19376](https://github.com/ClickHouse/ClickHouse/issues/19376) [#21051](https://github.com/ClickHouse/ClickHouse/pull/21051) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merging [#20620](https://github.com/ClickHouse/ClickHouse/issues/20620) [#21052](https://github.com/ClickHouse/ClickHouse/pull/21052) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#9781](https://github.com/ClickHouse/ClickHouse/issues/9781) [#21074](https://github.com/ClickHouse/ClickHouse/pull/21074) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix various issues in DDLWorker (SIGSEGV and others) [#21079](https://github.com/ClickHouse/ClickHouse/pull/21079) ([Azat Khuzhin](https://github.com/azat)). +* Documentation low cardinality fix [#21086](https://github.com/ClickHouse/ClickHouse/pull/21086) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix __has_feature macros under gcc [#21088](https://github.com/ClickHouse/ClickHouse/pull/21088) ([Azat Khuzhin](https://github.com/azat)). +* test for window functions [#21094](https://github.com/ClickHouse/ClickHouse/pull/21094) ([Denny Crane](https://github.com/den-crane)). +* Fix replace[All] functions so that they don't generate garbage to stderr [#21098](https://github.com/ClickHouse/ClickHouse/pull/21098) ([Amos Bird](https://github.com/amosbird)). +* Better tests for protobuf format #2. [#21148](https://github.com/ClickHouse/ClickHouse/pull/21148) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix ccache 4.2+ usage (RULE_LAUNCH_COMPILE/RULE_LAUNCH_LINK was not set) [#21158](https://github.com/ClickHouse/ClickHouse/pull/21158) ([Azat Khuzhin](https://github.com/azat)). +* Bump zookeeper version to 3.6.2 in tests [#21171](https://github.com/ClickHouse/ClickHouse/pull/21171) ([Azat Khuzhin](https://github.com/azat)). +* StorageRabbitMQ added UVLoop [#21193](https://github.com/ClickHouse/ClickHouse/pull/21193) ([Maksim Kita](https://github.com/kitaisreal)). +* Trying to make nukeeper better in single server mode [#21207](https://github.com/ClickHouse/ClickHouse/pull/21207) ([alesapin](https://github.com/alesapin)). +* A followup correction to [#19998](https://github.com/ClickHouse/ClickHouse/issues/19998) [#21221](https://github.com/ClickHouse/ClickHouse/pull/21221) ([Alexander Kazakov](https://github.com/Akazz)). +* Add tests for zstd and zlib http compression [#21279](https://github.com/ClickHouse/ClickHouse/pull/21279) ([Kseniia Sumarokova](https://github.com/kssenii)). +* CheckConstraintsBlockOutputStream optimize nullable column case [#21285](https://github.com/ClickHouse/ClickHouse/pull/21285) ([Maksim Kita](https://github.com/kitaisreal)). +* Rewrite extractTextFromHTML function [#21292](https://github.com/ClickHouse/ClickHouse/pull/21292) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix abnormal server termination for nested writers [#21305](https://github.com/ClickHouse/ClickHouse/pull/21305) ([Azat Khuzhin](https://github.com/azat)). +* [RFC] Remove unused writers [#21306](https://github.com/ClickHouse/ClickHouse/pull/21306) ([Azat Khuzhin](https://github.com/azat)). +* remove unused code in MergeTreeWriteAheadLog::restore [#21308](https://github.com/ClickHouse/ClickHouse/pull/21308) ([Fuwang Hu](https://github.com/fuwhu)). +* IColunm::hasEqualValues() [#21327](https://github.com/ClickHouse/ClickHouse/pull/21327) ([Amos Bird](https://github.com/amosbird)). +* AggregateFunctionSumMap better comment message [#21353](https://github.com/ClickHouse/ClickHouse/pull/21353) ([Maksim Kita](https://github.com/kitaisreal)). +* clickhouse stop: wait for the server to be killed (process exited) [#21365](https://github.com/ClickHouse/ClickHouse/pull/21365) ([Azat Khuzhin](https://github.com/azat)). +* [ClickHouse][LOG]correct shutdown timeout log [#21366](https://github.com/ClickHouse/ClickHouse/pull/21366) ([jasong](https://github.com/songenjie)). +* fix a rare false negative in perf tests [#21381](https://github.com/ClickHouse/ClickHouse/pull/21381) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* test for issue[#21369](https://github.com/ClickHouse/ClickHouse/issues/21369) [#21387](https://github.com/ClickHouse/ClickHouse/pull/21387) ([Denny Crane](https://github.com/den-crane)). +* Add a test for [#14740](https://github.com/ClickHouse/ClickHouse/issues/14740) [#21392](https://github.com/ClickHouse/ClickHouse/pull/21392) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#15469](https://github.com/ClickHouse/ClickHouse/issues/15469) [#21393](https://github.com/ClickHouse/ClickHouse/pull/21393) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix typo in setting name [#21418](https://github.com/ClickHouse/ClickHouse/pull/21418) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix flaky tests with distributed queries [#21432](https://github.com/ClickHouse/ClickHouse/pull/21432) ([Azat Khuzhin](https://github.com/azat)). +* Fix ParsingException::displayText() [#21433](https://github.com/ClickHouse/ClickHouse/pull/21433) ([Azat Khuzhin](https://github.com/azat)). +* Use path as default prefix for coordination logs [#21439](https://github.com/ClickHouse/ClickHouse/pull/21439) ([alesapin](https://github.com/alesapin)). +* Try fix perftests. [#21447](https://github.com/ClickHouse/ClickHouse/pull/21447) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* avoid race in librdkafka [#21452](https://github.com/ClickHouse/ClickHouse/pull/21452) ([filimonov](https://github.com/filimonov)). +* test for [#21413](https://github.com/ClickHouse/ClickHouse/issues/21413) [#21455](https://github.com/ClickHouse/ClickHouse/pull/21455) ([Denny Crane](https://github.com/den-crane)). +* Tiny fix [#21458](https://github.com/ClickHouse/ClickHouse/pull/21458) ([Amos Bird](https://github.com/amosbird)). +* Just another fix for DDLWorker [#21461](https://github.com/ClickHouse/ClickHouse/pull/21461) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Disable hedged requests for release 21.3 [#21534](https://github.com/ClickHouse/ClickHouse/pull/21534) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* fix a typo in window functions frame [#21572](https://github.com/ClickHouse/ClickHouse/pull/21572) ([Alexander Kuzmenkov](https://github.com/akuzm)). + diff --git a/docs/changelogs/v21.3.20.1-lts.md b/docs/changelogs/v21.3.20.1-lts.md index ac8c7d2ece2..19cca4babf4 100644 --- a/docs/changelogs/v21.3.20.1-lts.md +++ b/docs/changelogs/v21.3.20.1-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.20.1-lts FIXME as compared to v21.3.19.1-lts #### Bug Fix @@ -8,3 +15,13 @@ * Backported in [#32791](https://github.com/ClickHouse/ClickHouse/issues/32791): fix crash when used fuzzBits with multiply same FixedString, Close [#32737](https://github.com/ClickHouse/ClickHouse/issues/32737). [#32755](https://github.com/ClickHouse/ClickHouse/pull/32755) ([SuperDJY](https://github.com/cmsxbc)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix data race in ProtobufSchemas [#27822](https://github.com/ClickHouse/ClickHouse/pull/27822) ([filimonov](https://github.com/filimonov)). +* Fix possible Pipeline stuck in case of StrictResize processor. [#32270](https://github.com/ClickHouse/ClickHouse/pull/32270) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix arraySlice with null args. [#32456](https://github.com/ClickHouse/ClickHouse/pull/32456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix queries with hasColumnInTable constant condition and non existing column [#32506](https://github.com/ClickHouse/ClickHouse/pull/32506) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merge [#33024](https://github.com/ClickHouse/ClickHouse/issues/33024) [#33061](https://github.com/ClickHouse/ClickHouse/pull/33061) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33022](https://github.com/ClickHouse/ClickHouse/issues/33022) [#33062](https://github.com/ClickHouse/ClickHouse/pull/33062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Cherry pick [#33065](https://github.com/ClickHouse/ClickHouse/issues/33065) to 21.3: Merge [#33050](https://github.com/ClickHouse/ClickHouse/issues/33050) [#33079](https://github.com/ClickHouse/ClickHouse/issues/33079) [#33578](https://github.com/ClickHouse/ClickHouse/pull/33578) ([Heena Bansal](https://github.com/HeenaBansal2009)). + diff --git a/docs/changelogs/v21.3.3.14-lts.md b/docs/changelogs/v21.3.3.14-lts.md index 3dbfd7f0a04..9b99c6c1b5c 100644 --- a/docs/changelogs/v21.3.3.14-lts.md +++ b/docs/changelogs/v21.3.3.14-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.3.14-lts FIXME as compared to v21.3.2.5-lts #### Bug Fix @@ -9,3 +16,7 @@ * Backported in [#21883](https://github.com/ClickHouse/ClickHouse/issues/21883): Reverted S3 connection pools. [#21737](https://github.com/ClickHouse/ClickHouse/pull/21737) ([Vladimir Chebotarev](https://github.com/excitoon)). * Backported in [#21874](https://github.com/ClickHouse/ClickHouse/issues/21874): Fix incorrect query result (and possible crash) which could happen when `WHERE` or `HAVING` condition is pushed before `GROUP BY`. Fixes [#21773](https://github.com/ClickHouse/ClickHouse/issues/21773). [#21841](https://github.com/ClickHouse/ClickHouse/pull/21841) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* fix incorrect number of rows for Chunks with no columns in PartialSor… [#21761](https://github.com/ClickHouse/ClickHouse/pull/21761) ([Alexander Kuzmenkov](https://github.com/akuzm)). + diff --git a/docs/changelogs/v21.3.4.25-lts.md b/docs/changelogs/v21.3.4.25-lts.md index 431c498dbed..dee9e6a48b3 100644 --- a/docs/changelogs/v21.3.4.25-lts.md +++ b/docs/changelogs/v21.3.4.25-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.4.25-lts FIXME as compared to v21.3.3.14-lts #### Bug Fix @@ -16,3 +23,8 @@ * Backported in [#22185](https://github.com/ClickHouse/ClickHouse/issues/22185): Fix uncaught exception in InterserverIOHTTPHandler. [#22146](https://github.com/ClickHouse/ClickHouse/pull/22146) ([Azat Khuzhin](https://github.com/azat)). * Backported in [#22205](https://github.com/ClickHouse/ClickHouse/issues/22205): Use finalize() over next() for nested writers. [#22147](https://github.com/ClickHouse/ClickHouse/pull/22147) ([Azat Khuzhin](https://github.com/azat)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* LRUCache fix exception unsafe element insertion [#21891](https://github.com/ClickHouse/ClickHouse/pull/21891) ([Maksim Kita](https://github.com/kitaisreal)). +* 21.3: quick fix for broken resolution of apt.llvm.org on Yandex infra [#22047](https://github.com/ClickHouse/ClickHouse/pull/22047) ([Alexander Kuzmenkov](https://github.com/akuzm)). + diff --git a/docs/changelogs/v21.3.5.42-lts.md b/docs/changelogs/v21.3.5.42-lts.md index d8616efd0ff..bc68841062c 100644 --- a/docs/changelogs/v21.3.5.42-lts.md +++ b/docs/changelogs/v21.3.5.42-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.5.42-lts FIXME as compared to v21.3.4.25-lts #### Bug Fix @@ -25,3 +32,7 @@ * Backported in [#22653](https://github.com/ClickHouse/ClickHouse/issues/22653): Try flush write buffer only if it is initialized. Fixes segfault when client closes connection very early [#22579](https://github.com/ClickHouse/ClickHouse/issues/22579). [#22591](https://github.com/ClickHouse/ClickHouse/pull/22591) ([nvartolomei](https://github.com/nvartolomei)). * Backported in [#22681](https://github.com/ClickHouse/ClickHouse/issues/22681): Fix LOGICAL_ERROR for Log with nested types w/o columns in the SELECT clause. [#22654](https://github.com/ClickHouse/ClickHouse/pull/22654) ([Azat Khuzhin](https://github.com/azat)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Manual backport of [#21429](https://github.com/ClickHouse/ClickHouse/issues/21429) in 21.3 [#22504](https://github.com/ClickHouse/ClickHouse/pull/22504) ([Kruglov Pavel](https://github.com/Avogar)). + diff --git a/docs/changelogs/v21.3.6.55-lts.md b/docs/changelogs/v21.3.6.55-lts.md index 68980af6264..3a517f7386f 100644 --- a/docs/changelogs/v21.3.6.55-lts.md +++ b/docs/changelogs/v21.3.6.55-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.6.55-lts FIXME as compared to v21.3.5.42-lts #### Improvement @@ -17,3 +24,7 @@ * Backported in [#22916](https://github.com/ClickHouse/ClickHouse/issues/22916): LIVE VIEW (experimental feature). Fix possible hanging in concurrent DROP/CREATE of TEMPORARY LIVE VIEW in `TemporaryLiveViewCleaner`, see https://gist.github.com/vzakaznikov/0c03195960fc86b56bfe2bc73a90019e. [#22858](https://github.com/ClickHouse/ClickHouse/pull/22858) ([Vitaly Baranov](https://github.com/vitlibar)). * Backported in [#22920](https://github.com/ClickHouse/ClickHouse/issues/22920): Fixed a crash when using `mannWhitneyUTest` and `rankCorr` with window functions. This fixes [#22728](https://github.com/ClickHouse/ClickHouse/issues/22728). [#22876](https://github.com/ClickHouse/ClickHouse/pull/22876) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* FileDictionarySource fix absolute file path [#22822](https://github.com/ClickHouse/ClickHouse/pull/22822) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.3.7.62-stable.md b/docs/changelogs/v21.3.7.62-stable.md index df919be0f42..24f759ca3c0 100644 --- a/docs/changelogs/v21.3.7.62-stable.md +++ b/docs/changelogs/v21.3.7.62-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.7.62-stable FIXME as compared to v21.3.6.55-lts #### Improvement @@ -10,3 +17,7 @@ * Backported in [#23075](https://github.com/ClickHouse/ClickHouse/issues/23075): Remove non-essential details from suggestions in clickhouse-client. This closes [#22158](https://github.com/ClickHouse/ClickHouse/issues/22158). [#23040](https://github.com/ClickHouse/ClickHouse/pull/23040) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Backported in [#23170](https://github.com/ClickHouse/ClickHouse/issues/23170): Some values were formatted with alignment in center in table cells in `Markdown` format. Not anymore. [#23096](https://github.com/ClickHouse/ClickHouse/pull/23096) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* LibraryDictionarySource fix possible leak [#21686](https://github.com/ClickHouse/ClickHouse/pull/21686) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.3.8.76-lts.md b/docs/changelogs/v21.3.8.76-lts.md index 2002d9e3e1f..acb0b99bae5 100644 --- a/docs/changelogs/v21.3.8.76-lts.md +++ b/docs/changelogs/v21.3.8.76-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.8.76-lts FIXME as compared to v21.3.7.62-stable #### Improvement @@ -19,3 +26,7 @@ * Backported in [#23536](https://github.com/ClickHouse/ClickHouse/issues/23536): When modify column's default value without datatype, and this column is used as ReplacingMergeTree's parameter like column `b` in the below example, then the server will core dump: ``` CREATE TABLE alter_test (a Int32, b DateTime) ENGINE = ReplacingMergeTree(b) ORDER BY a; ALTER TABLE alter_test MODIFY COLUMN `b` DEFAULT now(); ``` the sever throw error: ``` 2021.04.22 09:48:00.685317 [ 2607 ] {} BaseDaemon: Received signal 11 2021.04.22 09:48:00.686110 [ 2705 ] {} BaseDaemon: ######################################## 2021.04.22 09:48:00.686336 [ 2705 ] {} BaseDaemon: (version 21.6.1.1, build id: 6459E84DFCF8E778546C5AD2FFE91B3AD71E1B1B) (from thread 2619) (no query) Received signal Segmentation fault (11) 2021.04.22 09:48:00.686572 [ 2705 ] {} BaseDaemon: Address: NULL pointer. Access: read. Address not mapped to object. 2021.04.22 09:48:00.686686 [ 2705 ] {} BaseDaemon: Stack trace: 0x1c2585d7 0x1c254f66 0x1bb7e403 0x1bb58923 0x1bb56a85 0x1c6840ef 0x1c691148 0x2061a05c 0x2061a8e4 0x20775a03 0x207722bd 0x20771048 0x7f6e5c25be25 0x7f6e5bd81bad 2021.04.22 09:48:02.283045 [ 2705 ] {} BaseDaemon: 4. /mnt/disk4/hewenting/ClickHouse/src/src/Storages/MergeTree/MergeTreeData.cpp:1449: DB::(anonymous namespace)::checkVersionColumnTypesConversion(DB::IDataType const*, DB::IDataType const*, std::__1::basic_string, std::__1::allocator >) @ 0x1c2585d7 in /mnt/disk4/hewenting/ClickHouse/build-dbgsrc-clang-dev-nested/programs/clickhouse-server 2021.04.22 09:48:03.714451 [ 2705 ] {} BaseDaemon: 5. /mnt/disk4/hewenting/ClickHouse/src/src/Storages/MergeTree/MergeTreeData.cpp:1582: DB::MergeTreeData::checkAlterIsPossible(DB::AlterCommands const&, std::__1::shared_ptr) const @ 0x1c254f66 in /mnt/disk4/hewenting/ClickHouse/build-dbgsrc-clang-dev-nested/programs/clickhouse-server 2021.04.22 09:48:04.692949 [ 2705 ] {} BaseDaemon: 6. /mnt/disk4/hewenting/ClickHouse/src/src/Interpreters/InterpreterAlterQuery.cpp:144: DB::InterpreterAlterQuery::execute() @ 0x1bb7e403 in /mnt/disk4/hewenting/ClickHouse/build-dbgsrc-clang-dev-nested/programs/clickhouse-server ```. [#23483](https://github.com/ClickHouse/ClickHouse/pull/23483) ([hexiaoting](https://github.com/hexiaoting)). * Backported in [#23533](https://github.com/ClickHouse/ClickHouse/issues/23533): Fix `columns` function when multiple joins in select query. Closes [#22736](https://github.com/ClickHouse/ClickHouse/issues/22736). [#23501](https://github.com/ClickHouse/ClickHouse/pull/23501) ([Maksim Kita](https://github.com/kitaisreal)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix logical error in stress tests [#23197](https://github.com/ClickHouse/ClickHouse/pull/23197) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). + diff --git a/docs/changelogs/v21.3.9.83-lts.md b/docs/changelogs/v21.3.9.83-lts.md index e437ee4800f..450faeea3f2 100644 --- a/docs/changelogs/v21.3.9.83-lts.md +++ b/docs/changelogs/v21.3.9.83-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.3.9.83-lts FIXME as compared to v21.3.8.76-lts #### Improvement diff --git a/docs/changelogs/v21.4.1.6422-prestable.md b/docs/changelogs/v21.4.1.6422-prestable.md index 8cd10834fae..684fde2e3b7 100644 --- a/docs/changelogs/v21.4.1.6422-prestable.md +++ b/docs/changelogs/v21.4.1.6422-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.4.1.6422-prestable FIXME as compared to v21.3.1.6185-prestable #### Backward Incompatible Change @@ -167,6 +174,117 @@ * NO CL ENTRY: 'Flatten libcpuid PEERDIRs'. [#22078](https://github.com/ClickHouse/ClickHouse/pull/22078) ([Yuriy Chernyshov](https://github.com/georgthegreat)). * NO CL ENTRY: 'Revert "quick fix for broken resolution of apt.llvm.org on Yandex infra"'. [#22374](https://github.com/ClickHouse/ClickHouse/pull/22374) ([alesapin](https://github.com/alesapin)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add soft task timeout for Intergation tests [#16608](https://github.com/ClickHouse/ClickHouse/pull/16608) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Merging geometry functions [#19257](https://github.com/ClickHouse/ClickHouse/pull/19257) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Remove outdated suppressions, part 2 [#19496](https://github.com/ClickHouse/ClickHouse/pull/19496) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Move some CI-related scripts to github [#20946](https://github.com/ClickHouse/ClickHouse/pull/20946) ([Alexander Tokmakov](https://github.com/tavplubix)). +* fix [#21170](https://github.com/ClickHouse/ClickHouse/issues/21170) [#21182](https://github.com/ClickHouse/ClickHouse/pull/21182) ([Tachikoma](https://github.com/ikarishinjieva)). +* Add more tests for quota consumption by the SHOW statement [#21190](https://github.com/ClickHouse/ClickHouse/pull/21190) ([Vitaly Baranov](https://github.com/vitlibar)). +* Save packed keys for GROUP BY with multiple fixed size keys [#21196](https://github.com/ClickHouse/ClickHouse/pull/21196) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Refine MergeTreeData::loadDataParts to not parse format version file and detached directory [#21351](https://github.com/ClickHouse/ClickHouse/pull/21351) ([Fuwang Hu](https://github.com/fuwhu)). +* Persistent nukeeper snapshot storage [#21425](https://github.com/ClickHouse/ClickHouse/pull/21425) ([alesapin](https://github.com/alesapin)). +* Fix logging for optimize_aggregation_in_order=1 (with small max_block_size) [#21436](https://github.com/ClickHouse/ClickHouse/pull/21436) ([Azat Khuzhin](https://github.com/azat)). +* Adjust prewhere_with_row_level_filter performance test [#21442](https://github.com/ClickHouse/ClickHouse/pull/21442) ([Denis Glazachev](https://github.com/traceon)). +* Refactor actions dag [#21459](https://github.com/ClickHouse/ClickHouse/pull/21459) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* add query formatting idempotence check to fuzzer [#21466](https://github.com/ClickHouse/ClickHouse/pull/21466) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix heap-buffer-overflow in highlighting multi-line comments [#21492](https://github.com/ClickHouse/ClickHouse/pull/21492) ([Azat Khuzhin](https://github.com/azat)). +* Fix global stop merges in test [#21508](https://github.com/ClickHouse/ClickHouse/pull/21508) ([alesapin](https://github.com/alesapin)). +* DirectDictionary updated [#21513](https://github.com/ClickHouse/ClickHouse/pull/21513) ([Maksim Kita](https://github.com/kitaisreal)). +* Avoid processing optimize_skip_unused_shards twice [#21526](https://github.com/ClickHouse/ClickHouse/pull/21526) ([Azat Khuzhin](https://github.com/azat)). +* DOCSUP-7197: Escaped Unicode replaced with symbols [#21530](https://github.com/ClickHouse/ClickHouse/pull/21530) ([lehasm](https://github.com/lehasm)). +* Pod array left pad not multiple of element crash fix [#21532](https://github.com/ClickHouse/ClickHouse/pull/21532) ([Maksim Kita](https://github.com/kitaisreal)). +* ShellCommand waitpid eintr signal fix [#21546](https://github.com/ClickHouse/ClickHouse/pull/21546) ([Maksim Kita](https://github.com/kitaisreal)). +* Refactoring of data types serialization [#21562](https://github.com/ClickHouse/ClickHouse/pull/21562) ([Anton Popov](https://github.com/CurtizJ)). +* fix a typo in window functions frame [#21572](https://github.com/ClickHouse/ClickHouse/pull/21572) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Added specialized CacheDictionaryStorage [#21573](https://github.com/ClickHouse/ClickHouse/pull/21573) ([Maksim Kita](https://github.com/kitaisreal)). +* [RFC] Union merge for arcadia_skip_list.txt to avoid frequent conflicts [#21580](https://github.com/ClickHouse/ClickHouse/pull/21580) ([Azat Khuzhin](https://github.com/azat)). +* Enable ipv6 in NuRaft [#21593](https://github.com/ClickHouse/ClickHouse/pull/21593) ([alesapin](https://github.com/alesapin)). +* add an article about ast-based fuzzer [#21608](https://github.com/ClickHouse/ClickHouse/pull/21608) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Changelog 21.3 [#21618](https://github.com/ClickHouse/ClickHouse/pull/21618) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* redefine some errorcode [#21629](https://github.com/ClickHouse/ClickHouse/pull/21629) ([flynn](https://github.com/ucasfl)). +* Fix ambigous column error in joins_in_memory [#21658](https://github.com/ClickHouse/ClickHouse/pull/21658) ([Vladimir C](https://github.com/vdimir)). +* Add test for path as a query parameter in system.zookeeper [#21661](https://github.com/ClickHouse/ClickHouse/pull/21661) ([Kruglov Pavel](https://github.com/Avogar)). +* ExecutablePool fix default max execution time setting [#21662](https://github.com/ClickHouse/ClickHouse/pull/21662) ([Maksim Kita](https://github.com/kitaisreal)). +* DictionaryStructure fix non unique attribute names [#21668](https://github.com/ClickHouse/ClickHouse/pull/21668) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix flaky test_replace_partition [#21674](https://github.com/ClickHouse/ClickHouse/pull/21674) ([Azat Khuzhin](https://github.com/azat)). +* DOC Fix ORDER BY syntax [#21675](https://github.com/ClickHouse/ClickHouse/pull/21675) ([Michael Monashev](https://github.com/MichaelMonashev)). +* PODArray swap fix [#21678](https://github.com/ClickHouse/ClickHouse/pull/21678) ([Maksim Kita](https://github.com/kitaisreal)). +* LibraryDictionarySource fix possible leak [#21686](https://github.com/ClickHouse/ClickHouse/pull/21686) ([Maksim Kita](https://github.com/kitaisreal)). +* Run three nodes with Replicated database and NuKeeper in CI [#21690](https://github.com/ClickHouse/ClickHouse/pull/21690) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix error message in clickhouse-test [#21691](https://github.com/ClickHouse/ClickHouse/pull/21691) ([Azat Khuzhin](https://github.com/azat)). +* Set SOCK_CLOEXEC for sockets (hardcoded via poco update) [#21695](https://github.com/ClickHouse/ClickHouse/pull/21695) ([Azat Khuzhin](https://github.com/azat)). +* Tests fixes (that was found by stress tests) [#21696](https://github.com/ClickHouse/ClickHouse/pull/21696) ([Azat Khuzhin](https://github.com/azat)). +* Fix log_comment for *.sh in clickhouse-test [#21700](https://github.com/ClickHouse/ClickHouse/pull/21700) ([Azat Khuzhin](https://github.com/azat)). +* Remove useless CMake option [#21712](https://github.com/ClickHouse/ClickHouse/pull/21712) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in modulo by constant [#21713](https://github.com/ClickHouse/ClickHouse/pull/21713) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add more variants for memcpy benchmark [#21715](https://github.com/ClickHouse/ClickHouse/pull/21715) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Do not overlap zookeeper path for ReplicatedMergeTree in stateless *.sh tests [#21724](https://github.com/ClickHouse/ClickHouse/pull/21724) ([Azat Khuzhin](https://github.com/azat)). +* make the fuzzer use sources from the CI [#21754](https://github.com/ClickHouse/ClickHouse/pull/21754) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Add one more variant to memcpy benchmark [#21759](https://github.com/ClickHouse/ClickHouse/pull/21759) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* fix incorrect number of rows for Chunks with no columns in PartialSor… [#21761](https://github.com/ClickHouse/ClickHouse/pull/21761) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* docs(fix): typo [#21775](https://github.com/ClickHouse/ClickHouse/pull/21775) ([Ali Demirci](https://github.com/depyronick)). +* DDLWorker.cpp: fixed exceeded amount of tries typo [#21807](https://github.com/ClickHouse/ClickHouse/pull/21807) ([Eldar Nasyrov](https://github.com/3ldar-nasyrov)). +* fix integration MaterializeMySQL test [#21819](https://github.com/ClickHouse/ClickHouse/pull/21819) ([TCeason](https://github.com/TCeason)). +* more robust error handling in perf test [#21846](https://github.com/ClickHouse/ClickHouse/pull/21846) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* test for [#17302](https://github.com/ClickHouse/ClickHouse/issues/17302) [#21848](https://github.com/ClickHouse/ClickHouse/pull/21848) ([Denny Crane](https://github.com/den-crane)). +* Add bash completion support for clickhouse utils [#21853](https://github.com/ClickHouse/ClickHouse/pull/21853) ([Azat Khuzhin](https://github.com/azat)). +* LRUCache fix exception unsafe element insertion [#21891](https://github.com/ClickHouse/ClickHouse/pull/21891) ([Maksim Kita](https://github.com/kitaisreal)). +* fix fuzzer failure in tupleElement formatting [#21896](https://github.com/ClickHouse/ClickHouse/pull/21896) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix possibly dangling reference to Context [#21913](https://github.com/ClickHouse/ClickHouse/pull/21913) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add stress test for distributed queries [#21944](https://github.com/ClickHouse/ClickHouse/pull/21944) ([Azat Khuzhin](https://github.com/azat)). +* Fix misleading log in WriteBufferFromS3 [#21954](https://github.com/ClickHouse/ClickHouse/pull/21954) ([flynn](https://github.com/ucasfl)). +* Add a test for [#21991](https://github.com/ClickHouse/ClickHouse/issues/21991) [#21995](https://github.com/ClickHouse/ClickHouse/pull/21995) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#11720](https://github.com/ClickHouse/ClickHouse/issues/11720) [#21997](https://github.com/ClickHouse/ClickHouse/pull/21997) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#15784](https://github.com/ClickHouse/ClickHouse/issues/15784) [#22002](https://github.com/ClickHouse/ClickHouse/pull/22002) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* prevent accidental reinterpret_cast in Field::get<> [#22003](https://github.com/ClickHouse/ClickHouse/pull/22003) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix UBSan report in addMonths [#22006](https://github.com/ClickHouse/ClickHouse/pull/22006) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#7963](https://github.com/ClickHouse/ClickHouse/issues/7963) [#22007](https://github.com/ClickHouse/ClickHouse/pull/22007) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in intDiv [#21769](https://github.com/ClickHouse/ClickHouse/issues/21769) [#22009](https://github.com/ClickHouse/ClickHouse/pull/22009) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Cast to enum nullable fix [#22026](https://github.com/ClickHouse/ClickHouse/pull/22026) ([Maksim Kita](https://github.com/kitaisreal)). +* Small simplification in ExternalLoader. [#22027](https://github.com/ClickHouse/ClickHouse/pull/22027) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add test for [#21760](https://github.com/ClickHouse/ClickHouse/issues/21760) [#22036](https://github.com/ClickHouse/ClickHouse/pull/22036) ([Anton Popov](https://github.com/CurtizJ)). +* quick fix for broken resolution of apt.llvm.org on Yandex infra [#22055](https://github.com/ClickHouse/ClickHouse/pull/22055) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Darwin cmake disable memcpy benchmark [#22056](https://github.com/ClickHouse/ClickHouse/pull/22056) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix UBSan report in TransformDateTime64 [#22062](https://github.com/ClickHouse/ClickHouse/pull/22062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in mapPopulateSeries. [#22099](https://github.com/ClickHouse/ClickHouse/pull/22099) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix bar with invalid float value [#22114](https://github.com/ClickHouse/ClickHouse/pull/22114) ([flynn](https://github.com/ucasfl)). +* remove useless code [#22117](https://github.com/ClickHouse/ClickHouse/pull/22117) ([flynn](https://github.com/ucasfl)). +* stable formatting for negate() [#22133](https://github.com/ClickHouse/ClickHouse/pull/22133) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* adjust perf test thresholds [#22148](https://github.com/ClickHouse/ClickHouse/pull/22148) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix sleep_in_send_tables_status_ms/sleep_in_send_data_ms in integration tests [#22151](https://github.com/ClickHouse/ClickHouse/pull/22151) ([Azat Khuzhin](https://github.com/azat)). +* Update requirements.txt [#22153](https://github.com/ClickHouse/ClickHouse/pull/22153) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix some flaky order dependent integration tests. [#22170](https://github.com/ClickHouse/ClickHouse/pull/22170) ([alesapin](https://github.com/alesapin)). +* Prevent busy waiting in hedged requests when async_socket_for_remote=0 [#22172](https://github.com/ClickHouse/ClickHouse/pull/22172) ([Kruglov Pavel](https://github.com/Avogar)). +* less flaky functional tests [#22181](https://github.com/ClickHouse/ClickHouse/pull/22181) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* test for [#10489](https://github.com/ClickHouse/ClickHouse/issues/10489) [#22219](https://github.com/ClickHouse/ClickHouse/pull/22219) ([Denny Crane](https://github.com/den-crane)). +* CachedCompressedReadBuffer fix cache usage [#22225](https://github.com/ClickHouse/ClickHouse/pull/22225) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix MSan report in `quantileDeterministic` [#22235](https://github.com/ClickHouse/ClickHouse/pull/22235) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove harmful default parameters [#22238](https://github.com/ClickHouse/ClickHouse/pull/22238) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix build error [#22243](https://github.com/ClickHouse/ClickHouse/pull/22243) ([hexiaoting](https://github.com/hexiaoting)). +* Rename NuKeeper and TestKeeper to Keeper in all places [#22274](https://github.com/ClickHouse/ClickHouse/pull/22274) ([alesapin](https://github.com/alesapin)). +* Update materialize-mysql.md [#22275](https://github.com/ClickHouse/ClickHouse/pull/22275) ([曲正鹏](https://github.com/quzhengpeng)). +* Fix native macOS build for ALL_BUILD (Xcode/AppleClang) [#22289](https://github.com/ClickHouse/ClickHouse/pull/22289) ([Denis Glazachev](https://github.com/traceon)). +* Add suffixes for dockerfile arguments [#22301](https://github.com/ClickHouse/ClickHouse/pull/22301) ([filimonov](https://github.com/filimonov)). +* More coarse test for DateLUT [#22320](https://github.com/ClickHouse/ClickHouse/pull/22320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless code [#22328](https://github.com/ClickHouse/ClickHouse/pull/22328) ([Anton Popov](https://github.com/CurtizJ)). +* Maybe fix false MSan report in GRPC [#22338](https://github.com/ClickHouse/ClickHouse/pull/22338) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove old MSan suppressions (part 3) [#22357](https://github.com/ClickHouse/ClickHouse/pull/22357) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove old MSan suppressions (part 4) [#22358](https://github.com/ClickHouse/ClickHouse/pull/22358) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky tests test_row_policy* and test_quota* [#22371](https://github.com/ClickHouse/ClickHouse/pull/22371) ([Vitaly Baranov](https://github.com/vitlibar)). +* Try fix flaky rabbitmq test [#22380](https://github.com/ClickHouse/ClickHouse/pull/22380) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix UBSan report in mapOp [#22389](https://github.com/ClickHouse/ClickHouse/pull/22389) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove recursive submodules from Arrow [#22390](https://github.com/ClickHouse/ClickHouse/pull/22390) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix some OOMs in stress tests [#22396](https://github.com/ClickHouse/ClickHouse/pull/22396) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Correctly place debug helpers [#22407](https://github.com/ClickHouse/ClickHouse/pull/22407) ([Amos Bird](https://github.com/amosbird)). +* fix error message for invalid window frame start [#22412](https://github.com/ClickHouse/ClickHouse/pull/22412) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix flapping test_s3_zero_copy_replication [#22440](https://github.com/ClickHouse/ClickHouse/pull/22440) ([ianton-ru](https://github.com/ianton-ru)). +* Lower scale of a test [#22446](https://github.com/ClickHouse/ClickHouse/pull/22446) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Adjust Keeper settings for CI [#22470](https://github.com/ClickHouse/ClickHouse/pull/22470) ([Alexander Tokmakov](https://github.com/tavplubix)). +* try clang 11 in fast test [#22472](https://github.com/ClickHouse/ClickHouse/pull/22472) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Remove TestFlows (2) [#22480](https://github.com/ClickHouse/ClickHouse/pull/22480) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + #### New Feature (datasketches support in clickhouse #14893) * Support ThetaSketch to do set operations. [#22207](https://github.com/ClickHouse/ClickHouse/pull/22207) ([Ping Yu](https://github.com/pingyu)). diff --git a/docs/changelogs/v21.4.2.10-prestable.md b/docs/changelogs/v21.4.2.10-prestable.md index 1bc440d126c..11767613551 100644 --- a/docs/changelogs/v21.4.2.10-prestable.md +++ b/docs/changelogs/v21.4.2.10-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.4.2.10-prestable FIXME as compared to v21.3.1.6185-prestable #### Backward Incompatible Change @@ -170,6 +177,114 @@ * NO CL ENTRY: 'Flatten libcpuid PEERDIRs'. [#22078](https://github.com/ClickHouse/ClickHouse/pull/22078) ([Yuriy Chernyshov](https://github.com/georgthegreat)). * NO CL ENTRY: 'Revert "quick fix for broken resolution of apt.llvm.org on Yandex infra"'. [#22374](https://github.com/ClickHouse/ClickHouse/pull/22374) ([alesapin](https://github.com/alesapin)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add soft task timeout for Intergation tests [#16608](https://github.com/ClickHouse/ClickHouse/pull/16608) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Merging geometry functions [#19257](https://github.com/ClickHouse/ClickHouse/pull/19257) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Remove outdated suppressions, part 2 [#19496](https://github.com/ClickHouse/ClickHouse/pull/19496) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Move some CI-related scripts to github [#20946](https://github.com/ClickHouse/ClickHouse/pull/20946) ([Alexander Tokmakov](https://github.com/tavplubix)). +* fix [#21170](https://github.com/ClickHouse/ClickHouse/issues/21170) [#21182](https://github.com/ClickHouse/ClickHouse/pull/21182) ([Tachikoma](https://github.com/ikarishinjieva)). +* Add more tests for quota consumption by the SHOW statement [#21190](https://github.com/ClickHouse/ClickHouse/pull/21190) ([Vitaly Baranov](https://github.com/vitlibar)). +* Save packed keys for GROUP BY with multiple fixed size keys [#21196](https://github.com/ClickHouse/ClickHouse/pull/21196) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Refine MergeTreeData::loadDataParts to not parse format version file and detached directory [#21351](https://github.com/ClickHouse/ClickHouse/pull/21351) ([Fuwang Hu](https://github.com/fuwhu)). +* Persistent nukeeper snapshot storage [#21425](https://github.com/ClickHouse/ClickHouse/pull/21425) ([alesapin](https://github.com/alesapin)). +* Fix logging for optimize_aggregation_in_order=1 (with small max_block_size) [#21436](https://github.com/ClickHouse/ClickHouse/pull/21436) ([Azat Khuzhin](https://github.com/azat)). +* Adjust prewhere_with_row_level_filter performance test [#21442](https://github.com/ClickHouse/ClickHouse/pull/21442) ([Denis Glazachev](https://github.com/traceon)). +* Refactor actions dag [#21459](https://github.com/ClickHouse/ClickHouse/pull/21459) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* add query formatting idempotence check to fuzzer [#21466](https://github.com/ClickHouse/ClickHouse/pull/21466) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix heap-buffer-overflow in highlighting multi-line comments [#21492](https://github.com/ClickHouse/ClickHouse/pull/21492) ([Azat Khuzhin](https://github.com/azat)). +* Fix global stop merges in test [#21508](https://github.com/ClickHouse/ClickHouse/pull/21508) ([alesapin](https://github.com/alesapin)). +* DirectDictionary updated [#21513](https://github.com/ClickHouse/ClickHouse/pull/21513) ([Maksim Kita](https://github.com/kitaisreal)). +* Avoid processing optimize_skip_unused_shards twice [#21526](https://github.com/ClickHouse/ClickHouse/pull/21526) ([Azat Khuzhin](https://github.com/azat)). +* DOCSUP-7197: Escaped Unicode replaced with symbols [#21530](https://github.com/ClickHouse/ClickHouse/pull/21530) ([lehasm](https://github.com/lehasm)). +* Pod array left pad not multiple of element crash fix [#21532](https://github.com/ClickHouse/ClickHouse/pull/21532) ([Maksim Kita](https://github.com/kitaisreal)). +* ShellCommand waitpid eintr signal fix [#21546](https://github.com/ClickHouse/ClickHouse/pull/21546) ([Maksim Kita](https://github.com/kitaisreal)). +* Refactoring of data types serialization [#21562](https://github.com/ClickHouse/ClickHouse/pull/21562) ([Anton Popov](https://github.com/CurtizJ)). +* fix a typo in window functions frame [#21572](https://github.com/ClickHouse/ClickHouse/pull/21572) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Added specialized CacheDictionaryStorage [#21573](https://github.com/ClickHouse/ClickHouse/pull/21573) ([Maksim Kita](https://github.com/kitaisreal)). +* [RFC] Union merge for arcadia_skip_list.txt to avoid frequent conflicts [#21580](https://github.com/ClickHouse/ClickHouse/pull/21580) ([Azat Khuzhin](https://github.com/azat)). +* Enable ipv6 in NuRaft [#21593](https://github.com/ClickHouse/ClickHouse/pull/21593) ([alesapin](https://github.com/alesapin)). +* add an article about ast-based fuzzer [#21608](https://github.com/ClickHouse/ClickHouse/pull/21608) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Changelog 21.3 [#21618](https://github.com/ClickHouse/ClickHouse/pull/21618) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* redefine some errorcode [#21629](https://github.com/ClickHouse/ClickHouse/pull/21629) ([flynn](https://github.com/ucasfl)). +* Fix ambigous column error in joins_in_memory [#21658](https://github.com/ClickHouse/ClickHouse/pull/21658) ([Vladimir C](https://github.com/vdimir)). +* Add test for path as a query parameter in system.zookeeper [#21661](https://github.com/ClickHouse/ClickHouse/pull/21661) ([Kruglov Pavel](https://github.com/Avogar)). +* ExecutablePool fix default max execution time setting [#21662](https://github.com/ClickHouse/ClickHouse/pull/21662) ([Maksim Kita](https://github.com/kitaisreal)). +* DictionaryStructure fix non unique attribute names [#21668](https://github.com/ClickHouse/ClickHouse/pull/21668) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix flaky test_replace_partition [#21674](https://github.com/ClickHouse/ClickHouse/pull/21674) ([Azat Khuzhin](https://github.com/azat)). +* DOC Fix ORDER BY syntax [#21675](https://github.com/ClickHouse/ClickHouse/pull/21675) ([Michael Monashev](https://github.com/MichaelMonashev)). +* PODArray swap fix [#21678](https://github.com/ClickHouse/ClickHouse/pull/21678) ([Maksim Kita](https://github.com/kitaisreal)). +* LibraryDictionarySource fix possible leak [#21686](https://github.com/ClickHouse/ClickHouse/pull/21686) ([Maksim Kita](https://github.com/kitaisreal)). +* Run three nodes with Replicated database and NuKeeper in CI [#21690](https://github.com/ClickHouse/ClickHouse/pull/21690) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix error message in clickhouse-test [#21691](https://github.com/ClickHouse/ClickHouse/pull/21691) ([Azat Khuzhin](https://github.com/azat)). +* Set SOCK_CLOEXEC for sockets (hardcoded via poco update) [#21695](https://github.com/ClickHouse/ClickHouse/pull/21695) ([Azat Khuzhin](https://github.com/azat)). +* Tests fixes (that was found by stress tests) [#21696](https://github.com/ClickHouse/ClickHouse/pull/21696) ([Azat Khuzhin](https://github.com/azat)). +* Fix log_comment for *.sh in clickhouse-test [#21700](https://github.com/ClickHouse/ClickHouse/pull/21700) ([Azat Khuzhin](https://github.com/azat)). +* Remove useless CMake option [#21712](https://github.com/ClickHouse/ClickHouse/pull/21712) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in modulo by constant [#21713](https://github.com/ClickHouse/ClickHouse/pull/21713) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add more variants for memcpy benchmark [#21715](https://github.com/ClickHouse/ClickHouse/pull/21715) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Do not overlap zookeeper path for ReplicatedMergeTree in stateless *.sh tests [#21724](https://github.com/ClickHouse/ClickHouse/pull/21724) ([Azat Khuzhin](https://github.com/azat)). +* make the fuzzer use sources from the CI [#21754](https://github.com/ClickHouse/ClickHouse/pull/21754) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Add one more variant to memcpy benchmark [#21759](https://github.com/ClickHouse/ClickHouse/pull/21759) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* fix incorrect number of rows for Chunks with no columns in PartialSor… [#21761](https://github.com/ClickHouse/ClickHouse/pull/21761) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* docs(fix): typo [#21775](https://github.com/ClickHouse/ClickHouse/pull/21775) ([Ali Demirci](https://github.com/depyronick)). +* DDLWorker.cpp: fixed exceeded amount of tries typo [#21807](https://github.com/ClickHouse/ClickHouse/pull/21807) ([Eldar Nasyrov](https://github.com/3ldar-nasyrov)). +* fix integration MaterializeMySQL test [#21819](https://github.com/ClickHouse/ClickHouse/pull/21819) ([TCeason](https://github.com/TCeason)). +* more robust error handling in perf test [#21846](https://github.com/ClickHouse/ClickHouse/pull/21846) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* test for [#17302](https://github.com/ClickHouse/ClickHouse/issues/17302) [#21848](https://github.com/ClickHouse/ClickHouse/pull/21848) ([Denny Crane](https://github.com/den-crane)). +* Add bash completion support for clickhouse utils [#21853](https://github.com/ClickHouse/ClickHouse/pull/21853) ([Azat Khuzhin](https://github.com/azat)). +* LRUCache fix exception unsafe element insertion [#21891](https://github.com/ClickHouse/ClickHouse/pull/21891) ([Maksim Kita](https://github.com/kitaisreal)). +* fix fuzzer failure in tupleElement formatting [#21896](https://github.com/ClickHouse/ClickHouse/pull/21896) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix possibly dangling reference to Context [#21913](https://github.com/ClickHouse/ClickHouse/pull/21913) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add stress test for distributed queries [#21944](https://github.com/ClickHouse/ClickHouse/pull/21944) ([Azat Khuzhin](https://github.com/azat)). +* Fix misleading log in WriteBufferFromS3 [#21954](https://github.com/ClickHouse/ClickHouse/pull/21954) ([flynn](https://github.com/ucasfl)). +* Add a test for [#21991](https://github.com/ClickHouse/ClickHouse/issues/21991) [#21995](https://github.com/ClickHouse/ClickHouse/pull/21995) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#11720](https://github.com/ClickHouse/ClickHouse/issues/11720) [#21997](https://github.com/ClickHouse/ClickHouse/pull/21997) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#15784](https://github.com/ClickHouse/ClickHouse/issues/15784) [#22002](https://github.com/ClickHouse/ClickHouse/pull/22002) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* prevent accidental reinterpret_cast in Field::get<> [#22003](https://github.com/ClickHouse/ClickHouse/pull/22003) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix UBSan report in addMonths [#22006](https://github.com/ClickHouse/ClickHouse/pull/22006) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#7963](https://github.com/ClickHouse/ClickHouse/issues/7963) [#22007](https://github.com/ClickHouse/ClickHouse/pull/22007) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in intDiv [#21769](https://github.com/ClickHouse/ClickHouse/issues/21769) [#22009](https://github.com/ClickHouse/ClickHouse/pull/22009) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Cast to enum nullable fix [#22026](https://github.com/ClickHouse/ClickHouse/pull/22026) ([Maksim Kita](https://github.com/kitaisreal)). +* Small simplification in ExternalLoader. [#22027](https://github.com/ClickHouse/ClickHouse/pull/22027) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add test for [#21760](https://github.com/ClickHouse/ClickHouse/issues/21760) [#22036](https://github.com/ClickHouse/ClickHouse/pull/22036) ([Anton Popov](https://github.com/CurtizJ)). +* quick fix for broken resolution of apt.llvm.org on Yandex infra [#22055](https://github.com/ClickHouse/ClickHouse/pull/22055) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Darwin cmake disable memcpy benchmark [#22056](https://github.com/ClickHouse/ClickHouse/pull/22056) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix UBSan report in TransformDateTime64 [#22062](https://github.com/ClickHouse/ClickHouse/pull/22062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in mapPopulateSeries. [#22099](https://github.com/ClickHouse/ClickHouse/pull/22099) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix bar with invalid float value [#22114](https://github.com/ClickHouse/ClickHouse/pull/22114) ([flynn](https://github.com/ucasfl)). +* remove useless code [#22117](https://github.com/ClickHouse/ClickHouse/pull/22117) ([flynn](https://github.com/ucasfl)). +* stable formatting for negate() [#22133](https://github.com/ClickHouse/ClickHouse/pull/22133) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* adjust perf test thresholds [#22148](https://github.com/ClickHouse/ClickHouse/pull/22148) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix sleep_in_send_tables_status_ms/sleep_in_send_data_ms in integration tests [#22151](https://github.com/ClickHouse/ClickHouse/pull/22151) ([Azat Khuzhin](https://github.com/azat)). +* Update requirements.txt [#22153](https://github.com/ClickHouse/ClickHouse/pull/22153) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix some flaky order dependent integration tests. [#22170](https://github.com/ClickHouse/ClickHouse/pull/22170) ([alesapin](https://github.com/alesapin)). +* Prevent busy waiting in hedged requests when async_socket_for_remote=0 [#22172](https://github.com/ClickHouse/ClickHouse/pull/22172) ([Kruglov Pavel](https://github.com/Avogar)). +* less flaky functional tests [#22181](https://github.com/ClickHouse/ClickHouse/pull/22181) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* test for [#10489](https://github.com/ClickHouse/ClickHouse/issues/10489) [#22219](https://github.com/ClickHouse/ClickHouse/pull/22219) ([Denny Crane](https://github.com/den-crane)). +* CachedCompressedReadBuffer fix cache usage [#22225](https://github.com/ClickHouse/ClickHouse/pull/22225) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix MSan report in `quantileDeterministic` [#22235](https://github.com/ClickHouse/ClickHouse/pull/22235) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove harmful default parameters [#22238](https://github.com/ClickHouse/ClickHouse/pull/22238) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix build error [#22243](https://github.com/ClickHouse/ClickHouse/pull/22243) ([hexiaoting](https://github.com/hexiaoting)). +* Rename NuKeeper and TestKeeper to Keeper in all places [#22274](https://github.com/ClickHouse/ClickHouse/pull/22274) ([alesapin](https://github.com/alesapin)). +* Update materialize-mysql.md [#22275](https://github.com/ClickHouse/ClickHouse/pull/22275) ([曲正鹏](https://github.com/quzhengpeng)). +* Fix native macOS build for ALL_BUILD (Xcode/AppleClang) [#22289](https://github.com/ClickHouse/ClickHouse/pull/22289) ([Denis Glazachev](https://github.com/traceon)). +* Add suffixes for dockerfile arguments [#22301](https://github.com/ClickHouse/ClickHouse/pull/22301) ([filimonov](https://github.com/filimonov)). +* More coarse test for DateLUT [#22320](https://github.com/ClickHouse/ClickHouse/pull/22320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless code [#22328](https://github.com/ClickHouse/ClickHouse/pull/22328) ([Anton Popov](https://github.com/CurtizJ)). +* Maybe fix false MSan report in GRPC [#22338](https://github.com/ClickHouse/ClickHouse/pull/22338) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove old MSan suppressions (part 3) [#22357](https://github.com/ClickHouse/ClickHouse/pull/22357) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove old MSan suppressions (part 4) [#22358](https://github.com/ClickHouse/ClickHouse/pull/22358) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky tests test_row_policy* and test_quota* [#22371](https://github.com/ClickHouse/ClickHouse/pull/22371) ([Vitaly Baranov](https://github.com/vitlibar)). +* Try fix flaky rabbitmq test [#22380](https://github.com/ClickHouse/ClickHouse/pull/22380) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix UBSan report in mapOp [#22389](https://github.com/ClickHouse/ClickHouse/pull/22389) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove recursive submodules from Arrow [#22390](https://github.com/ClickHouse/ClickHouse/pull/22390) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix some OOMs in stress tests [#22396](https://github.com/ClickHouse/ClickHouse/pull/22396) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Correctly place debug helpers [#22407](https://github.com/ClickHouse/ClickHouse/pull/22407) ([Amos Bird](https://github.com/amosbird)). +* fix error message for invalid window frame start [#22412](https://github.com/ClickHouse/ClickHouse/pull/22412) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Lower scale of a test [#22446](https://github.com/ClickHouse/ClickHouse/pull/22446) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove TestFlows (2) [#22480](https://github.com/ClickHouse/ClickHouse/pull/22480) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + #### New Feature (datasketches support in clickhouse #14893) * Support ThetaSketch to do set operations. [#22207](https://github.com/ClickHouse/ClickHouse/pull/22207) ([Ping Yu](https://github.com/pingyu)). diff --git a/docs/changelogs/v21.4.3.21-stable.md b/docs/changelogs/v21.4.3.21-stable.md index dc3d7b7005b..a320e16f06a 100644 --- a/docs/changelogs/v21.4.3.21-stable.md +++ b/docs/changelogs/v21.4.3.21-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.4.3.21-stable FIXME as compared to v21.4.2.10-prestable #### Improvement @@ -16,3 +23,7 @@ * Backported in [#22921](https://github.com/ClickHouse/ClickHouse/issues/22921): Fixed a crash when using `mannWhitneyUTest` and `rankCorr` with window functions. This fixes [#22728](https://github.com/ClickHouse/ClickHouse/issues/22728). [#22876](https://github.com/ClickHouse/ClickHouse/pull/22876) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). * Backported in [#22957](https://github.com/ClickHouse/ClickHouse/issues/22957): Fix usage of constant columns of type `Map` with nullable values. [#22939](https://github.com/ClickHouse/ClickHouse/pull/22939) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* FileDictionarySource fix absolute file path [#22822](https://github.com/ClickHouse/ClickHouse/pull/22822) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.4.4.30-stable.md b/docs/changelogs/v21.4.4.30-stable.md index f029d334fc7..755bbede8f3 100644 --- a/docs/changelogs/v21.4.4.30-stable.md +++ b/docs/changelogs/v21.4.4.30-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.4.4.30-stable FIXME as compared to v21.4.3.21-stable #### Backward Incompatible Change diff --git a/docs/changelogs/v21.4.5.46-stable.md b/docs/changelogs/v21.4.5.46-stable.md index 664037ba596..9ca0553a154 100644 --- a/docs/changelogs/v21.4.5.46-stable.md +++ b/docs/changelogs/v21.4.5.46-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.4.5.46-stable FIXME as compared to v21.4.4.30-stable #### Improvement @@ -19,3 +26,9 @@ * Backported in [#23534](https://github.com/ClickHouse/ClickHouse/issues/23534): When modify column's default value without datatype, and this column is used as ReplacingMergeTree's parameter like column `b` in the below example, then the server will core dump: ``` CREATE TABLE alter_test (a Int32, b DateTime) ENGINE = ReplacingMergeTree(b) ORDER BY a; ALTER TABLE alter_test MODIFY COLUMN `b` DEFAULT now(); ``` the sever throw error: ``` 2021.04.22 09:48:00.685317 [ 2607 ] {} BaseDaemon: Received signal 11 2021.04.22 09:48:00.686110 [ 2705 ] {} BaseDaemon: ######################################## 2021.04.22 09:48:00.686336 [ 2705 ] {} BaseDaemon: (version 21.6.1.1, build id: 6459E84DFCF8E778546C5AD2FFE91B3AD71E1B1B) (from thread 2619) (no query) Received signal Segmentation fault (11) 2021.04.22 09:48:00.686572 [ 2705 ] {} BaseDaemon: Address: NULL pointer. Access: read. Address not mapped to object. 2021.04.22 09:48:00.686686 [ 2705 ] {} BaseDaemon: Stack trace: 0x1c2585d7 0x1c254f66 0x1bb7e403 0x1bb58923 0x1bb56a85 0x1c6840ef 0x1c691148 0x2061a05c 0x2061a8e4 0x20775a03 0x207722bd 0x20771048 0x7f6e5c25be25 0x7f6e5bd81bad 2021.04.22 09:48:02.283045 [ 2705 ] {} BaseDaemon: 4. /mnt/disk4/hewenting/ClickHouse/src/src/Storages/MergeTree/MergeTreeData.cpp:1449: DB::(anonymous namespace)::checkVersionColumnTypesConversion(DB::IDataType const*, DB::IDataType const*, std::__1::basic_string, std::__1::allocator >) @ 0x1c2585d7 in /mnt/disk4/hewenting/ClickHouse/build-dbgsrc-clang-dev-nested/programs/clickhouse-server 2021.04.22 09:48:03.714451 [ 2705 ] {} BaseDaemon: 5. /mnt/disk4/hewenting/ClickHouse/src/src/Storages/MergeTree/MergeTreeData.cpp:1582: DB::MergeTreeData::checkAlterIsPossible(DB::AlterCommands const&, std::__1::shared_ptr) const @ 0x1c254f66 in /mnt/disk4/hewenting/ClickHouse/build-dbgsrc-clang-dev-nested/programs/clickhouse-server 2021.04.22 09:48:04.692949 [ 2705 ] {} BaseDaemon: 6. /mnt/disk4/hewenting/ClickHouse/src/src/Interpreters/InterpreterAlterQuery.cpp:144: DB::InterpreterAlterQuery::execute() @ 0x1bb7e403 in /mnt/disk4/hewenting/ClickHouse/build-dbgsrc-clang-dev-nested/programs/clickhouse-server ```. [#23483](https://github.com/ClickHouse/ClickHouse/pull/23483) ([hexiaoting](https://github.com/hexiaoting)). * Backported in [#23531](https://github.com/ClickHouse/ClickHouse/issues/23531): Fix `columns` function when multiple joins in select query. Closes [#22736](https://github.com/ClickHouse/ClickHouse/issues/22736). [#23501](https://github.com/ClickHouse/ClickHouse/pull/23501) ([Maksim Kita](https://github.com/kitaisreal)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix logical error in stress tests [#23197](https://github.com/ClickHouse/ClickHouse/pull/23197) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix integration tests for Hedged requests [#23275](https://github.com/ClickHouse/ClickHouse/pull/23275) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* System dictionaries virtual key column [#23458](https://github.com/ClickHouse/ClickHouse/pull/23458) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.4.6.55-stable.md b/docs/changelogs/v21.4.6.55-stable.md index ea3e413ea0c..daca28d596c 100644 --- a/docs/changelogs/v21.4.6.55-stable.md +++ b/docs/changelogs/v21.4.6.55-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.4.6.55-stable FIXME as compared to v21.4.5.46-stable #### Improvement diff --git a/docs/changelogs/v21.4.7.3-stable.md b/docs/changelogs/v21.4.7.3-stable.md index 0dad6cfcb2b..612201a73ee 100644 --- a/docs/changelogs/v21.4.7.3-stable.md +++ b/docs/changelogs/v21.4.7.3-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.4.7.3-stable FIXME as compared to v21.4.6.55-stable #### Bug Fix @@ -15,3 +22,7 @@ * Backported in [#24215](https://github.com/ClickHouse/ClickHouse/issues/24215): Fix race condition which could happen in RBAC under a heavy load. This PR fixes [#24090](https://github.com/ClickHouse/ClickHouse/issues/24090), [#24134](https://github.com/ClickHouse/ClickHouse/issues/24134),. [#24176](https://github.com/ClickHouse/ClickHouse/pull/24176) ([Vitaly Baranov](https://github.com/vitlibar)). * Backported in [#24243](https://github.com/ClickHouse/ClickHouse/issues/24243): Fix abnormal server termination due to hdfs becoming not accessible during query execution. Closes [#24117](https://github.com/ClickHouse/ClickHouse/issues/24117). [#24191](https://github.com/ClickHouse/ClickHouse/pull/24191) ([Kseniia Sumarokova](https://github.com/kssenii)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Flat, Hashed dictionary include update field bytes into bytes_allocated [#23825](https://github.com/ClickHouse/ClickHouse/pull/23825) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.5.1.6601-prestable.md b/docs/changelogs/v21.5.1.6601-prestable.md index d64936fefce..dbe75de93d4 100644 --- a/docs/changelogs/v21.5.1.6601-prestable.md +++ b/docs/changelogs/v21.5.1.6601-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.1.6601-prestable FIXME as compared to v21.4.1.6422-prestable #### Backward Incompatible Change @@ -34,7 +41,7 @@ * Allow to use CTE in VIEW definition. This closes [#22491](https://github.com/ClickHouse/ClickHouse/issues/22491). [#22657](https://github.com/ClickHouse/ClickHouse/pull/22657) ([Amos Bird](https://github.com/amosbird)). * Add metric to track how much time is spend during waiting for Buffer layer lock. [#22725](https://github.com/ClickHouse/ClickHouse/pull/22725) ([Azat Khuzhin](https://github.com/azat)). * Allow RBAC row policy via postgresql protocol. Closes [#22658](https://github.com/ClickHouse/ClickHouse/issues/22658). PostgreSQL protocol is enabled in configuration by default. [#22755](https://github.com/ClickHouse/ClickHouse/pull/22755) ([Kseniia Sumarokova](https://github.com/kssenii)). -* MaterializeMySQL (experimental feature). Make ClickHouse to be able to replicate MySQL databases containing views without failing. This is accomplished by ignoring the views. ... [#22760](https://github.com/ClickHouse/ClickHouse/pull/22760) ([Christian Frøystad](https://github.com/cfroystad)). +* MaterializeMySQL (experimental feature). Make Clickhouse to be able to replicate MySQL databases containing views without failing. This is accomplished by ignoring the views. ... [#22760](https://github.com/ClickHouse/ClickHouse/pull/22760) ([Christian Frøystad](https://github.com/cfroystad)). * `dateDiff` now works with `DateTime64` arguments (even for values outside of `DateTime` range) ... [#22931](https://github.com/ClickHouse/ClickHouse/pull/22931) ([Vasily Nemkov](https://github.com/Enmk)). * Set `background_fetches_pool_size` to 8 that is better for production usage with frequent small insertions or slow ZooKeeper cluster. [#22945](https://github.com/ClickHouse/ClickHouse/pull/22945) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Fix inactive_parts_to_throw_insert=0 with inactive_parts_to_delay_insert>0. [#22947](https://github.com/ClickHouse/ClickHouse/pull/22947) ([Azat Khuzhin](https://github.com/azat)). @@ -107,3 +114,96 @@ * NO CL ENTRY: 'Error message reads better'. [#22983](https://github.com/ClickHouse/ClickHouse/pull/22983) ([Igor O'sten](https://github.com/borodark)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix SIGSEGV by waiting servers thread pool [#21318](https://github.com/ClickHouse/ClickHouse/pull/21318) ([Azat Khuzhin](https://github.com/azat)). +* Better filter push down [#22087](https://github.com/ClickHouse/ClickHouse/pull/22087) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Better tests for finalize in nested writers [#22110](https://github.com/ClickHouse/ClickHouse/pull/22110) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Replace all Context references with std::weak_ptr [#22297](https://github.com/ClickHouse/ClickHouse/pull/22297) ([Ivan](https://github.com/abyss7)). +* make some perf test queries more stable [#22324](https://github.com/ClickHouse/ClickHouse/pull/22324) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* fix ccache broken by prlimit [#22356](https://github.com/ClickHouse/ClickHouse/pull/22356) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Remove old MSan suppressions (part 5) [#22359](https://github.com/ClickHouse/ClickHouse/pull/22359) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test for copier [#22441](https://github.com/ClickHouse/ClickHouse/pull/22441) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* fix window frame offset check and add more tests [#22459](https://github.com/ClickHouse/ClickHouse/pull/22459) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* FormatSettings null_as_default default value fix [#22528](https://github.com/ClickHouse/ClickHouse/pull/22528) ([Maksim Kita](https://github.com/kitaisreal)). +* Minor fixes in tests for AArch64 [#22534](https://github.com/ClickHouse/ClickHouse/pull/22534) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Filter removed/renamed tests from ci-changed-files.txt for fuzzer [#22542](https://github.com/ClickHouse/ClickHouse/pull/22542) ([Azat Khuzhin](https://github.com/azat)). +* Try fix flaky test [#22543](https://github.com/ClickHouse/ClickHouse/pull/22543) ([Alexander Tokmakov](https://github.com/tavplubix)). +* AppleClang compilation fix [#22561](https://github.com/ClickHouse/ClickHouse/pull/22561) ([Denis Glazachev](https://github.com/traceon)). +* Fix assert in Arena when doing GROUP BY Array of Nothing of non-zero size. [#22565](https://github.com/ClickHouse/ClickHouse/pull/22565) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Minor improvement in index deserialization [#22586](https://github.com/ClickHouse/ClickHouse/pull/22586) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky test after [#22427](https://github.com/ClickHouse/ClickHouse/issues/22427) [#22587](https://github.com/ClickHouse/ClickHouse/pull/22587) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix comments [#22589](https://github.com/ClickHouse/ClickHouse/pull/22589) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix some uncaught exceptions (in SCOPE_EXIT) under memory pressure [#22592](https://github.com/ClickHouse/ClickHouse/pull/22592) ([Azat Khuzhin](https://github.com/azat)). +* Introduce IStorage::distributedWrite method for distributed INSERT SELECTS [#22593](https://github.com/ClickHouse/ClickHouse/pull/22593) ([Max Akhmedov](https://github.com/zlobober)). +* Fix flaky test 00816_long_concurrent_alter_column [#22628](https://github.com/ClickHouse/ClickHouse/pull/22628) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* FlatDictionary fix perf test [#22629](https://github.com/ClickHouse/ClickHouse/pull/22629) ([Maksim Kita](https://github.com/kitaisreal)). +* DirectDictionary dictGet multiple columns optimization [#22630](https://github.com/ClickHouse/ClickHouse/pull/22630) ([Maksim Kita](https://github.com/kitaisreal)). +* Better retries on ZK errors in sh tests [#22633](https://github.com/ClickHouse/ClickHouse/pull/22633) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add log_comment setting for DROP/CREATE DATABASE in clickhouse-test [#22646](https://github.com/ClickHouse/ClickHouse/pull/22646) ([Azat Khuzhin](https://github.com/azat)). +* Add retires for docker-compose pull in integration tests [#22647](https://github.com/ClickHouse/ClickHouse/pull/22647) ([Azat Khuzhin](https://github.com/azat)). +* Fix impossible invalid-read for system.errors accounting [#22655](https://github.com/ClickHouse/ClickHouse/pull/22655) ([Azat Khuzhin](https://github.com/azat)). +* Skip compiling xz if we're using system xz (unbundled) [#22656](https://github.com/ClickHouse/ClickHouse/pull/22656) ([Kfir Itzhak](https://github.com/mastertheknife)). +* Fix test 01294_create_settings_profile [#22662](https://github.com/ClickHouse/ClickHouse/pull/22662) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix test 01039_row_policy_dcl [#22663](https://github.com/ClickHouse/ClickHouse/pull/22663) ([Anton Popov](https://github.com/CurtizJ)). +* Another attempt to enable pytest [#22664](https://github.com/ClickHouse/ClickHouse/pull/22664) ([Ivan](https://github.com/abyss7)). +* Fix random failures of tests that are using query_log [#22666](https://github.com/ClickHouse/ClickHouse/pull/22666) ([Anton Popov](https://github.com/CurtizJ)). +* fix build error 'always_inline' function might not be inlinable [#22667](https://github.com/ClickHouse/ClickHouse/pull/22667) ([flynn](https://github.com/ucasfl)). +* Add bool type in postgres engine [#22668](https://github.com/ClickHouse/ClickHouse/pull/22668) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix mutation killers tests [#22670](https://github.com/ClickHouse/ClickHouse/pull/22670) ([alesapin](https://github.com/alesapin)). +* Change Aggregatingmergetree to AggregatingMergeTree in docs [#22687](https://github.com/ClickHouse/ClickHouse/pull/22687) ([Kruglov Pavel](https://github.com/Avogar)). +* fix window functions with multiple input streams and no sorting [#22704](https://github.com/ClickHouse/ClickHouse/pull/22704) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Remove redundant fsync on coordination logs rotation [#22707](https://github.com/ClickHouse/ClickHouse/pull/22707) ([alesapin](https://github.com/alesapin)). +* Fix test 01702_system_query_log [#22708](https://github.com/ClickHouse/ClickHouse/pull/22708) ([Anton Popov](https://github.com/CurtizJ)). +* MemoryStorage sync comments and code [#22721](https://github.com/ClickHouse/ClickHouse/pull/22721) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix potential segfault on Keeper startup [#22743](https://github.com/ClickHouse/ClickHouse/pull/22743) ([alesapin](https://github.com/alesapin)). +* Avoid using harmful function rand() [#22744](https://github.com/ClickHouse/ClickHouse/pull/22744) ([Amos Bird](https://github.com/amosbird)). +* Fix flacky hedged tests [#22746](https://github.com/ClickHouse/ClickHouse/pull/22746) ([Kruglov Pavel](https://github.com/Avogar)). +* add more messages when flushing the logs [#22761](https://github.com/ClickHouse/ClickHouse/pull/22761) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Moved BorrowedObjectPool to common [#22764](https://github.com/ClickHouse/ClickHouse/pull/22764) ([Maksim Kita](https://github.com/kitaisreal)). +* Functions ExternalDictionaries standardize exception throw [#22821](https://github.com/ClickHouse/ClickHouse/pull/22821) ([Maksim Kita](https://github.com/kitaisreal)). +* FileDictionarySource fix absolute file path [#22822](https://github.com/ClickHouse/ClickHouse/pull/22822) ([Maksim Kita](https://github.com/kitaisreal)). +* Small change in replicated database tests run [#22826](https://github.com/ClickHouse/ClickHouse/pull/22826) ([alesapin](https://github.com/alesapin)). +* Slightly improve logging messages for Distributed async sends [#22829](https://github.com/ClickHouse/ClickHouse/pull/22829) ([Azat Khuzhin](https://github.com/azat)). +* Fix what looks like a trivial mistake [#22833](https://github.com/ClickHouse/ClickHouse/pull/22833) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for already fixed issue [#22855](https://github.com/ClickHouse/ClickHouse/pull/22855) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* DataTypeLowCardinality format tsv parsing issue [#22863](https://github.com/ClickHouse/ClickHouse/pull/22863) ([Maksim Kita](https://github.com/kitaisreal)). +* Updated MariaDB connector fix cmake [#22865](https://github.com/ClickHouse/ClickHouse/pull/22865) ([Maksim Kita](https://github.com/kitaisreal)). +* Prettify logs of integration tests [#22868](https://github.com/ClickHouse/ClickHouse/pull/22868) ([Anton Popov](https://github.com/CurtizJ)). +* Util `memcpy-bench` is built only when position independent code is disabled [#22875](https://github.com/ClickHouse/ClickHouse/pull/22875) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix vanilla GCC compilation in macOS [#22885](https://github.com/ClickHouse/ClickHouse/pull/22885) ([Denis Glazachev](https://github.com/traceon)). +* Better diagnostics for OOM in stress test [#22894](https://github.com/ClickHouse/ClickHouse/pull/22894) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Dictionaries updated performance tests [#22925](https://github.com/ClickHouse/ClickHouse/pull/22925) ([Maksim Kita](https://github.com/kitaisreal)). +* IAggreagteFunction allocatesMemoryInArena removed default implementation [#22938](https://github.com/ClickHouse/ClickHouse/pull/22938) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix flapping test_merge_tree_s3 test [#22942](https://github.com/ClickHouse/ClickHouse/pull/22942) ([ianton-ru](https://github.com/ianton-ru)). +* less flaky test [#22944](https://github.com/ClickHouse/ClickHouse/pull/22944) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Dictionaries standardize exceptions [#22961](https://github.com/ClickHouse/ClickHouse/pull/22961) ([Maksim Kita](https://github.com/kitaisreal)). +* StorageExternalDistributed arcadia fix [#22962](https://github.com/ClickHouse/ClickHouse/pull/22962) ([Maksim Kita](https://github.com/kitaisreal)). +* Check out of range values in FieldVisitorConverToNumber [#22964](https://github.com/ClickHouse/ClickHouse/pull/22964) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix combinators with common prefix name (State and SimpleState) with libstdc++ [#22977](https://github.com/ClickHouse/ClickHouse/pull/22977) ([Azat Khuzhin](https://github.com/azat)). +* Fix arcadia [#22982](https://github.com/ClickHouse/ClickHouse/pull/22982) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix excessive warning in StorageDistributed with cross-replication [#22990](https://github.com/ClickHouse/ClickHouse/pull/22990) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Update MergeTreeData.cpp Better error message. [#22994](https://github.com/ClickHouse/ClickHouse/pull/22994) ([Denny Crane](https://github.com/den-crane)). +* Fix assertion when filtering tables in StorageMerge [#22998](https://github.com/ClickHouse/ClickHouse/pull/22998) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add a test for [#2719](https://github.com/ClickHouse/ClickHouse/issues/2719) [#23008](https://github.com/ClickHouse/ClickHouse/pull/23008) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix multi response in TestKeeper [#23041](https://github.com/ClickHouse/ClickHouse/pull/23041) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Improve hung check in Stress tests [#23043](https://github.com/ClickHouse/ClickHouse/pull/23043) ([Alexander Tokmakov](https://github.com/tavplubix)). +* blog article about code review [#23045](https://github.com/ClickHouse/ClickHouse/pull/23045) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* LibraryDictionary bridge library interface [#23048](https://github.com/ClickHouse/ClickHouse/pull/23048) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove useless files [#23049](https://github.com/ClickHouse/ClickHouse/pull/23049) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Upload keeper logs from stateless tests [#23077](https://github.com/ClickHouse/ClickHouse/pull/23077) ([alesapin](https://github.com/alesapin)). +* CI runner intergation tests logs update to tar.gz [#23078](https://github.com/ClickHouse/ClickHouse/pull/23078) ([Maksim Kita](https://github.com/kitaisreal)). +* Tiny logging improvements [#23083](https://github.com/ClickHouse/ClickHouse/pull/23083) ([Azat Khuzhin](https://github.com/azat)). +* Block all memory tracking limits in dtors/SCOPE_EXIT_*SAFE/tryLogCurrentException [#23086](https://github.com/ClickHouse/ClickHouse/pull/23086) ([Azat Khuzhin](https://github.com/azat)). +* jemalloc tuning [#23088](https://github.com/ClickHouse/ClickHouse/pull/23088) ([Azat Khuzhin](https://github.com/azat)). +* Rename strange tests [#23111](https://github.com/ClickHouse/ClickHouse/pull/23111) ([alesapin](https://github.com/alesapin)). +* Fix arcadia build S3 [#23114](https://github.com/ClickHouse/ClickHouse/pull/23114) ([Maksim Kita](https://github.com/kitaisreal)). +* Updated zlib [#23153](https://github.com/ClickHouse/ClickHouse/pull/23153) ([Maksim Kita](https://github.com/kitaisreal)). +* [RFC] Change logging from trace to debug for messages with rows/bytes [#23160](https://github.com/ClickHouse/ClickHouse/pull/23160) ([Azat Khuzhin](https://github.com/azat)). +* More verbose logs for debuging test failures with Replicated and Keeper [#23161](https://github.com/ClickHouse/ClickHouse/pull/23161) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix exception message for "parts_to_throw_insert" [#23177](https://github.com/ClickHouse/ClickHouse/pull/23177) ([madianjun](https://github.com/mdianjun)). +* Fix flapping tests test_s3_zero_copy_replication [#23184](https://github.com/ClickHouse/ClickHouse/pull/23184) ([ianton-ru](https://github.com/ianton-ru)). +* Add a test for [#14610](https://github.com/ClickHouse/ClickHouse/issues/14610) [#23209](https://github.com/ClickHouse/ClickHouse/pull/23209) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test for fixed issue [#9363](https://github.com/ClickHouse/ClickHouse/issues/9363) [#23216](https://github.com/ClickHouse/ClickHouse/pull/23216) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Disable postgresql_port in perf tests [#23218](https://github.com/ClickHouse/ClickHouse/pull/23218) ([Azat Khuzhin](https://github.com/azat)). + diff --git a/docs/changelogs/v21.5.2.25-prestable.md b/docs/changelogs/v21.5.2.25-prestable.md index 45e784218da..1d7418a30c2 100644 --- a/docs/changelogs/v21.5.2.25-prestable.md +++ b/docs/changelogs/v21.5.2.25-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.2.25-prestable FIXME as compared to v21.5.1.6601-prestable #### Improvement @@ -38,3 +45,10 @@ * Backported in [#23347](https://github.com/ClickHouse/ClickHouse/issues/23347):. [#23334](https://github.com/ClickHouse/ClickHouse/pull/23334) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix logical error in stress tests [#23197](https://github.com/ClickHouse/ClickHouse/pull/23197) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Zlib use attribute constructor for functable initialization [#23266](https://github.com/ClickHouse/ClickHouse/pull/23266) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix integration tests for Hedged requests [#23275](https://github.com/ClickHouse/ClickHouse/pull/23275) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* System dictionaries virtual key column [#23458](https://github.com/ClickHouse/ClickHouse/pull/23458) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.5.3.1-prestable.md b/docs/changelogs/v21.5.3.1-prestable.md index 24b29d1495e..2e52d8ba6a8 100644 --- a/docs/changelogs/v21.5.3.1-prestable.md +++ b/docs/changelogs/v21.5.3.1-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.3.1-prestable FIXME as compared to v21.5.2.25-prestable #### Bug Fix @@ -7,3 +14,7 @@ * Backported in [#23832](https://github.com/ClickHouse/ClickHouse/issues/23832): Fix error `Can't initialize pipeline with empty pipe` for queries with `GLOBAL IN/JOIN` and `use_hedged_requests`. Fixes [#23431](https://github.com/ClickHouse/ClickHouse/issues/23431). [#23805](https://github.com/ClickHouse/ClickHouse/pull/23805) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#23927](https://github.com/ClickHouse/ClickHouse/issues/23927): HashedDictionary complex key update field initial load fix. Closes [#23800](https://github.com/ClickHouse/ClickHouse/issues/23800). [#23824](https://github.com/ClickHouse/ClickHouse/pull/23824) ([Maksim Kita](https://github.com/kitaisreal)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Flat, Hashed dictionary include update field bytes into bytes_allocated [#23825](https://github.com/ClickHouse/ClickHouse/pull/23825) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.5.4.6-prestable.md b/docs/changelogs/v21.5.4.6-prestable.md index c9e040309cc..37de3225996 100644 --- a/docs/changelogs/v21.5.4.6-prestable.md +++ b/docs/changelogs/v21.5.4.6-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.4.6-prestable FIXME as compared to v21.5.3.1-prestable #### Bug Fix diff --git a/docs/changelogs/v21.5.5.12-stable.md b/docs/changelogs/v21.5.5.12-stable.md index b49e2c60b08..71467dd2ffa 100644 --- a/docs/changelogs/v21.5.5.12-stable.md +++ b/docs/changelogs/v21.5.5.12-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.5.12-stable FIXME as compared to v21.5.4.6-prestable #### Bug Fix diff --git a/docs/changelogs/v21.5.6.6-stable.md b/docs/changelogs/v21.5.6.6-stable.md index e6160dfa784..04fe3ec4010 100644 --- a/docs/changelogs/v21.5.6.6-stable.md +++ b/docs/changelogs/v21.5.6.6-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.6.6-stable FIXME as compared to v21.5.5.12-stable #### Bug Fix @@ -15,3 +22,9 @@ * Backported in [#24750](https://github.com/ClickHouse/ClickHouse/issues/24750):. [#23276](https://github.com/ClickHouse/ClickHouse/pull/23276) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix segfault in TSan on _exit [#23616](https://github.com/ClickHouse/ClickHouse/pull/23616) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Use memmove in PODArray::insert to handle memory overlapping. [#24271](https://github.com/ClickHouse/ClickHouse/pull/24271) ([Fu Zhe](https://github.com/fuzhe1989)). +* Fix cli argument in clickhouse-server.init [#24449](https://github.com/ClickHouse/ClickHouse/pull/24449) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v21.5.7.9-stable.md b/docs/changelogs/v21.5.7.9-stable.md index 9586e398547..eaf0cb6255b 100644 --- a/docs/changelogs/v21.5.7.9-stable.md +++ b/docs/changelogs/v21.5.7.9-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.7.9-stable FIXME as compared to v21.5.6.6-stable #### Improvement @@ -40,3 +47,9 @@ * NO CL ENTRY: 'Revert "Backport [#24721](https://github.com/ClickHouse/ClickHouse/issues/24721) to 21.5: Remove endless `wait` from ZooKeeper client"'. [#24798](https://github.com/ClickHouse/ClickHouse/pull/24798) ([alesapin](https://github.com/alesapin)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Try fix `test_consistent_parts_after_clone_replica` [#24968](https://github.com/ClickHouse/ClickHouse/pull/24968) ([Alexander Tokmakov](https://github.com/tavplubix)). +* DictionaryLoader unnecessary dictionary configuration creation fix [#25001](https://github.com/ClickHouse/ClickHouse/pull/25001) ([Maksim Kita](https://github.com/kitaisreal)). +* odbc fix [#25045](https://github.com/ClickHouse/ClickHouse/pull/25045) ([Kseniia Sumarokova](https://github.com/kssenii)). + diff --git a/docs/changelogs/v21.5.8.21-stable.md b/docs/changelogs/v21.5.8.21-stable.md index 4d9ffd687eb..fe59efd2255 100644 --- a/docs/changelogs/v21.5.8.21-stable.md +++ b/docs/changelogs/v21.5.8.21-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.8.21-stable FIXME as compared to v21.5.7.9-stable #### Bug Fix @@ -11,3 +18,8 @@ * Backported in [#25695](https://github.com/ClickHouse/ClickHouse/issues/25695): Fixed `No such file or directory` error on moving `Distributed` table between databases. Fixes [#24971](https://github.com/ClickHouse/ClickHouse/issues/24971). [#25667](https://github.com/ClickHouse/ClickHouse/pull/25667) ([Alexander Tokmakov](https://github.com/tavplubix)). * Backported in [#25754](https://github.com/ClickHouse/ClickHouse/issues/25754): Fix data race when querying `system.clusters` while reloading the cluster configuration at the same time. [#25737](https://github.com/ClickHouse/ClickHouse/pull/25737) ([Amos Bird](https://github.com/amosbird)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Backport unrelated changes, which fixes aliases bug [#25680](https://github.com/ClickHouse/ClickHouse/pull/25680) ([alesapin](https://github.com/alesapin)). +* ExpressionCache destruction fix [#25835](https://github.com/ClickHouse/ClickHouse/pull/25835) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.5.9.4-stable.md b/docs/changelogs/v21.5.9.4-stable.md index 17ef067194b..b9d643dda09 100644 --- a/docs/changelogs/v21.5.9.4-stable.md +++ b/docs/changelogs/v21.5.9.4-stable.md @@ -1,6 +1,18 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.5.9.4-stable FIXME as compared to v21.5.8.21-stable #### Bug Fix * Backported in [#25958](https://github.com/ClickHouse/ClickHouse/issues/25958): Fix extremely long backoff for background tasks when the background pool is full. Fixes [#25836](https://github.com/ClickHouse/ClickHouse/issues/25836). [#25893](https://github.com/ClickHouse/ClickHouse/pull/25893) ([alesapin](https://github.com/alesapin)). * Backported in [#26144](https://github.com/ClickHouse/ClickHouse/issues/26144): Fix possible crash in `pointInPolygon` if the setting `validate_polygons` is turned off. [#26113](https://github.com/ClickHouse/ClickHouse/pull/26113) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* 21.5 manual backport of [#25970](https://github.com/ClickHouse/ClickHouse/issues/25970) [#26139](https://github.com/ClickHouse/ClickHouse/pull/26139) ([Maksim Kita](https://github.com/kitaisreal)). +* 21.5 Docker unbundled fix [#26154](https://github.com/ClickHouse/ClickHouse/pull/26154) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.6.1.6891-prestable.md b/docs/changelogs/v21.6.1.6891-prestable.md index 7750cac32eb..11fcd854989 100644 --- a/docs/changelogs/v21.6.1.6891-prestable.md +++ b/docs/changelogs/v21.6.1.6891-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.1.6891-prestable FIXME as compared to v21.5.1.6601-prestable #### New Feature @@ -152,6 +159,169 @@ * NO CL ENTRY: 'Revert "Fix CI build for gcc-10"'. [#23772](https://github.com/ClickHouse/ClickHouse/pull/23772) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * NO CL ENTRY: 'Update syntax.md'. [#24267](https://github.com/ClickHouse/ClickHouse/pull/24267) ([lulichao](https://github.com/lulichao)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Apply idle_connnection_timeout/poll_interval after each query [#21938](https://github.com/ClickHouse/ClickHouse/pull/21938) ([Azat Khuzhin](https://github.com/azat)). +* Do not silently catch errors for writing to S3 [#22208](https://github.com/ClickHouse/ClickHouse/pull/22208) ([Azat Khuzhin](https://github.com/azat)). +* Add dockerhub-proxy to runner [#23138](https://github.com/ClickHouse/ClickHouse/pull/23138) ([Ilya Yatsishin](https://github.com/qoega)). +* merging sumCount fusion PR [#21337](https://github.com/ClickHouse/ClickHouse/issues/21337) [#23159](https://github.com/ClickHouse/ClickHouse/pull/23159) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Minor fixes in ATTACH query [#23189](https://github.com/ClickHouse/ClickHouse/pull/23189) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Merging [#22503](https://github.com/ClickHouse/ClickHouse/issues/22503) [#23195](https://github.com/ClickHouse/ClickHouse/pull/23195) ([Anton Popov](https://github.com/CurtizJ)). +* Fix logical error in stress tests [#23197](https://github.com/ClickHouse/ClickHouse/pull/23197) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* more stable formatting for negate() [#23201](https://github.com/ClickHouse/ClickHouse/pull/23201) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Use double quote identifier in odbc as default in case of error [#23217](https://github.com/ClickHouse/ClickHouse/pull/23217) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add -Wundef for gcc builds [#23258](https://github.com/ClickHouse/ClickHouse/pull/23258) ([Azat Khuzhin](https://github.com/azat)). +* Report an error if jemalloc.background_thread was requested [#23259](https://github.com/ClickHouse/ClickHouse/pull/23259) ([Azat Khuzhin](https://github.com/azat)). +* Add trace_log into stateless/stress test artifacts [#23264](https://github.com/ClickHouse/ClickHouse/pull/23264) ([Azat Khuzhin](https://github.com/azat)). +* Zlib use attribute constructor for functable initialization [#23266](https://github.com/ClickHouse/ClickHouse/pull/23266) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix integration tests for Hedged requests [#23275](https://github.com/ClickHouse/ClickHouse/pull/23275) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Function toDateTime decimal overflow ubsan fix [#23278](https://github.com/ClickHouse/ClickHouse/pull/23278) ([Maksim Kita](https://github.com/kitaisreal)). +* Link keeper-bench to clickhouse_common_zookeeper [#23302](https://github.com/ClickHouse/ClickHouse/pull/23302) ([Raúl Marín](https://github.com/Algunenano)). +* Print errors on db creation in clickhouse-test [#23304](https://github.com/ClickHouse/ClickHouse/pull/23304) ([Alexander Tokmakov](https://github.com/tavplubix)). +* fix broken perf test [#23308](https://github.com/ClickHouse/ClickHouse/pull/23308) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix bad test 01602_max_distributed_connections [#23317](https://github.com/ClickHouse/ClickHouse/pull/23317) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix hdfs reading from files with spaces [#23318](https://github.com/ClickHouse/ClickHouse/pull/23318) ([Kseniia Sumarokova](https://github.com/kssenii)). +* add check that p.pruning works [#23321](https://github.com/ClickHouse/ClickHouse/pull/23321) ([Denny Crane](https://github.com/den-crane)). +* Add test for [#7815](https://github.com/ClickHouse/ClickHouse/issues/7815) [#23332](https://github.com/ClickHouse/ClickHouse/pull/23332) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky test 01666_merge_tree_max_query_limit.sh [#23335](https://github.com/ClickHouse/ClickHouse/pull/23335) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test for [#12077](https://github.com/ClickHouse/ClickHouse/issues/12077) [#23352](https://github.com/ClickHouse/ClickHouse/pull/23352) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Disable clickhouse-odbc-bridge build when ODBC is disabled [#23357](https://github.com/ClickHouse/ClickHouse/pull/23357) ([Denis Glazachev](https://github.com/traceon)). +* Fix AppleClang build [#23358](https://github.com/ClickHouse/ClickHouse/pull/23358) ([Denis Glazachev](https://github.com/traceon)). +* Use Atomic database for development environment [#23377](https://github.com/ClickHouse/ClickHouse/pull/23377) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test for [#2582](https://github.com/ClickHouse/ClickHouse/issues/2582) [#23378](https://github.com/ClickHouse/ClickHouse/pull/23378) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test for [#1647](https://github.com/ClickHouse/ClickHouse/issues/1647) [#23379](https://github.com/ClickHouse/ClickHouse/pull/23379) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Allow rabbitmq vhost in table settings [#23452](https://github.com/ClickHouse/ClickHouse/pull/23452) ([Kseniia Sumarokova](https://github.com/kssenii)). +* System dictionaries virtual key column [#23458](https://github.com/ClickHouse/ClickHouse/pull/23458) ([Maksim Kita](https://github.com/kitaisreal)). +* ISSUES-23310 Try fix MySQL 8.0 address already in use [#23462](https://github.com/ClickHouse/ClickHouse/pull/23462) ([Winter Zhang](https://github.com/zhang2014)). +* Fix error in perf test [#23469](https://github.com/ClickHouse/ClickHouse/pull/23469) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* clickhouse-test: print database name on failures [#23486](https://github.com/ClickHouse/ClickHouse/pull/23486) ([Azat Khuzhin](https://github.com/azat)). +* upload cpu model to perf test db [#23514](https://github.com/ClickHouse/ClickHouse/pull/23514) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix function tests flaps [#23517](https://github.com/ClickHouse/ClickHouse/pull/23517) ([Azat Khuzhin](https://github.com/azat)). +* fix pvs warnings [#23520](https://github.com/ClickHouse/ClickHouse/pull/23520) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* ignore empty input chunks generated by joins [#23542](https://github.com/ClickHouse/ClickHouse/pull/23542) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* fix window functions for Distributed tables [#23546](https://github.com/ClickHouse/ClickHouse/pull/23546) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* add more info to perf test report [#23550](https://github.com/ClickHouse/ClickHouse/pull/23550) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* export trace log from stateless tests in flamegraph-friendly format [#23553](https://github.com/ClickHouse/ClickHouse/pull/23553) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* add numactl info to perf test run attributes [#23554](https://github.com/ClickHouse/ClickHouse/pull/23554) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Less chance of OOM in stress tests [#23561](https://github.com/ClickHouse/ClickHouse/pull/23561) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix inconsistent formatting for tupleElement (for fuzzer) [#23595](https://github.com/ClickHouse/ClickHouse/pull/23595) ([Azat Khuzhin](https://github.com/azat)). +* Remove unneeded code from CMakeLists [#23597](https://github.com/ClickHouse/ClickHouse/pull/23597) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Somewhat better handling of paths in CMake (incomplete) [#23598](https://github.com/ClickHouse/ClickHouse/pull/23598) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove old trash (a little) [#23599](https://github.com/ClickHouse/ClickHouse/pull/23599) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove some garbage from RocksDB CMakeLists [#23601](https://github.com/ClickHouse/ClickHouse/pull/23601) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add warning about gcc usage [#23603](https://github.com/ClickHouse/ClickHouse/pull/23603) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove garbage from CMakeLists (2) [#23604](https://github.com/ClickHouse/ClickHouse/pull/23604) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove rotten parts of release script [#23605](https://github.com/ClickHouse/ClickHouse/pull/23605) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove useless file [#23606](https://github.com/ClickHouse/ClickHouse/pull/23606) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Skip CatBoost tests under MSan [#23614](https://github.com/ClickHouse/ClickHouse/pull/23614) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix segfault in TSan on _exit [#23616](https://github.com/ClickHouse/ClickHouse/pull/23616) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix bad test 01641_memory_tracking_insert_optimize_long [#23617](https://github.com/ClickHouse/ClickHouse/pull/23617) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove pbuilder [#23618](https://github.com/ClickHouse/ClickHouse/pull/23618) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Aggregator remove unused code [#23635](https://github.com/ClickHouse/ClickHouse/pull/23635) ([Maksim Kita](https://github.com/kitaisreal)). +* Merging [#22984](https://github.com/ClickHouse/ClickHouse/issues/22984) [#23637](https://github.com/ClickHouse/ClickHouse/pull/23637) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Move non gtest unit tests to /examples folder [#23644](https://github.com/ClickHouse/ClickHouse/pull/23644) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Kerberized HDFS test is fluky - retries and extra output if failure [#23650](https://github.com/ClickHouse/ClickHouse/pull/23650) ([Ilya Golshtein](https://github.com/ilejn)). +* Fix documentation for DETACH ON CLUSTER PERMANENTLY [#23653](https://github.com/ClickHouse/ClickHouse/pull/23653) ([Azat Khuzhin](https://github.com/azat)). +* Skip integration test for library bridge under MSan [#23662](https://github.com/ClickHouse/ClickHouse/pull/23662) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix a few PVS-Studio warnings [#23663](https://github.com/ClickHouse/ClickHouse/pull/23663) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Enable use-after-destruction detection in MSan [#23664](https://github.com/ClickHouse/ClickHouse/pull/23664) ([Azat Khuzhin](https://github.com/azat)). +* Fix cyrus-sasl msan warning [#23672](https://github.com/ClickHouse/ClickHouse/pull/23672) ([Ilya Yatsishin](https://github.com/qoega)). +* A little bit faster merge of aggregating states. [#23681](https://github.com/ClickHouse/ClickHouse/pull/23681) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* stable query indexes in perf test [#23707](https://github.com/ClickHouse/ClickHouse/pull/23707) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Minor changes in code [#14254](https://github.com/ClickHouse/ClickHouse/issues/14254) [#23709](https://github.com/ClickHouse/ClickHouse/pull/23709) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix illiterate error message [#23700](https://github.com/ClickHouse/ClickHouse/issues/23700) [#23710](https://github.com/ClickHouse/ClickHouse/pull/23710) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove obsolete compilers [#23711](https://github.com/ClickHouse/ClickHouse/pull/23711) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Follow-up for [#23644](https://github.com/ClickHouse/ClickHouse/issues/23644) [#23712](https://github.com/ClickHouse/ClickHouse/pull/23712) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Disable test_odbc_interaction for MSan build [#23722](https://github.com/ClickHouse/ClickHouse/pull/23722) ([Vladimir C](https://github.com/vdimir)). +* fix a typo in query formatting check in fuzzer [#23726](https://github.com/ClickHouse/ClickHouse/pull/23726) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* ExternalLoaderRepository fix arcadia [#23732](https://github.com/ClickHouse/ClickHouse/pull/23732) ([Maksim Kita](https://github.com/kitaisreal)). +* Ignore cmake-in-clickhouse [#23740](https://github.com/ClickHouse/ClickHouse/pull/23740) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Refactor join step [#23743](https://github.com/ClickHouse/ClickHouse/pull/23743) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* clickhouse-test: send TERM to all childs (to avoid hung check triggering) [#23750](https://github.com/ClickHouse/ClickHouse/pull/23750) ([Azat Khuzhin](https://github.com/azat)). +* Improve test_insert_into_distributed [#23751](https://github.com/ClickHouse/ClickHouse/pull/23751) ([Azat Khuzhin](https://github.com/azat)). +* Fix CI build for gcc-10 [#23760](https://github.com/ClickHouse/ClickHouse/pull/23760) ([Maksim Kita](https://github.com/kitaisreal)). +* Update array-functions.md [#23762](https://github.com/ClickHouse/ClickHouse/pull/23762) ([fancno](https://github.com/fancno)). +* Remove unused compilers (fixed for the troublesome "unbundled" build) [#23766](https://github.com/ClickHouse/ClickHouse/pull/23766) ([Maksim Kita](https://github.com/kitaisreal)). +* Slightly better hardening for intersecting parts [#23767](https://github.com/ClickHouse/ClickHouse/pull/23767) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Workaround for PVS-Studio [#23776](https://github.com/ClickHouse/ClickHouse/pull/23776) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add examples folder filter to ya.make.in [#23786](https://github.com/ClickHouse/ClickHouse/pull/23786) ([Maksim Kita](https://github.com/kitaisreal)). +* Function default implementation for nulls small optimization [#23799](https://github.com/ClickHouse/ClickHouse/pull/23799) ([Maksim Kita](https://github.com/kitaisreal)). +* autodetect arch of gosu in server dockerfile [#23802](https://github.com/ClickHouse/ClickHouse/pull/23802) ([filimonov](https://github.com/filimonov)). +* Add test for [#18170](https://github.com/ClickHouse/ClickHouse/issues/18170) [#23813](https://github.com/ClickHouse/ClickHouse/pull/23813) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* clickhouse-test: add missing whitespace before printing database on error [#23820](https://github.com/ClickHouse/ClickHouse/pull/23820) ([Azat Khuzhin](https://github.com/azat)). +* Improve 00840_long_concurrent_select_and_drop_deadlock [#23823](https://github.com/ClickHouse/ClickHouse/pull/23823) ([Azat Khuzhin](https://github.com/azat)). +* Flat, Hashed dictionary include update field bytes into bytes_allocated [#23825](https://github.com/ClickHouse/ClickHouse/pull/23825) ([Maksim Kita](https://github.com/kitaisreal)). +* XDBCBridgeHelper use global context [#23836](https://github.com/ClickHouse/ClickHouse/pull/23836) ([Maksim Kita](https://github.com/kitaisreal)). +* gcc-10 installation no-install-reccomends option fix [#23840](https://github.com/ClickHouse/ClickHouse/pull/23840) ([Maksim Kita](https://github.com/kitaisreal)). +* replxx readline compatibility [#23855](https://github.com/ClickHouse/ClickHouse/pull/23855) ([Azat Khuzhin](https://github.com/azat)). +* Add file paths into logs on failed distributed async sends [#23856](https://github.com/ClickHouse/ClickHouse/pull/23856) ([Azat Khuzhin](https://github.com/azat)). +* Reduce the amount of logs that StorageMergeTree::selectPartsToMutate outputs in busy systems. [#23863](https://github.com/ClickHouse/ClickHouse/pull/23863) ([Raúl Marín](https://github.com/Algunenano)). +* Add DiskRestartProxy.cpp to ya.make [#23868](https://github.com/ClickHouse/ClickHouse/pull/23868) ([Vladimir C](https://github.com/vdimir)). +* Fix some warnings by PVS-Studio [#23877](https://github.com/ClickHouse/ClickHouse/pull/23877) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add Read/WriteBufferFromFileDecorator.cpp to ya.make [#23879](https://github.com/ClickHouse/ClickHouse/pull/23879) ([Vladimir C](https://github.com/vdimir)). +* @CurtizJ convinced me that this test has to be deleted [#23883](https://github.com/ClickHouse/ClickHouse/pull/23883) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* bash completion improvements [#23884](https://github.com/ClickHouse/ClickHouse/pull/23884) ([Azat Khuzhin](https://github.com/azat)). +* Remove obsolete code [#23886](https://github.com/ClickHouse/ClickHouse/pull/23886) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Minor code simplification (implemented TODO) [#23896](https://github.com/ClickHouse/ClickHouse/pull/23896) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add run options with default config path according to issues/23875 [#23898](https://github.com/ClickHouse/ClickHouse/pull/23898) ([ice1x](https://github.com/ice1x)). +* Fix test_insert_into_distributed flaps [#23903](https://github.com/ClickHouse/ClickHouse/pull/23903) ([Azat Khuzhin](https://github.com/azat)). +* Fix bad test about compression codecs [#23908](https://github.com/ClickHouse/ClickHouse/pull/23908) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Cleanup IDatabase.h from extra headers [#23912](https://github.com/ClickHouse/ClickHouse/pull/23912) ([Azat Khuzhin](https://github.com/azat)). +* Minor simplification [#23923](https://github.com/ClickHouse/ClickHouse/pull/23923) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Drop unnecessary ports where applicable [#23928](https://github.com/ClickHouse/ClickHouse/pull/23928) ([Ernest Zaslavsky](https://github.com/kreuzerkrieg)). +* Check MIN/MAX attributes in the list of dictionary attributes [#23948](https://github.com/ClickHouse/ClickHouse/pull/23948) ([Azat Khuzhin](https://github.com/azat)). +* typo: fix a typo in Compression/CodecT64 [#23952](https://github.com/ClickHouse/ClickHouse/pull/23952) ([mwish](https://github.com/mapleFU)). +* Don't try GLIBC_COMPATIBILITY for i686 Linux [#23959](https://github.com/ClickHouse/ClickHouse/pull/23959) ([divanorama](https://github.com/divanorama)). +* Function arrayDifference decimal math overflow [#23961](https://github.com/ClickHouse/ClickHouse/pull/23961) ([Maksim Kita](https://github.com/kitaisreal)). +* Use 0 over nan for hit_rate in case of 0 queries to the cache dictionary [#23963](https://github.com/ClickHouse/ClickHouse/pull/23963) ([Azat Khuzhin](https://github.com/azat)). +* Round floats in Aggregator log messages [#23965](https://github.com/ClickHouse/ClickHouse/pull/23965) ([Azat Khuzhin](https://github.com/azat)). +* support longer query ids in trace log for perf tests [#23969](https://github.com/ClickHouse/ClickHouse/pull/23969) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* PVS-Studio fixes, part 6 [#23970](https://github.com/ClickHouse/ClickHouse/pull/23970) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Functional stateless tests fix numbers [#23974](https://github.com/ClickHouse/ClickHouse/pull/23974) ([Maksim Kita](https://github.com/kitaisreal)). +* use LowCardinality for AsynchronousMetricLog name column [#23981](https://github.com/ClickHouse/ClickHouse/pull/23981) ([flynn](https://github.com/ucasfl)). +* Function dictGetOrNull handle empty rows execute [#23990](https://github.com/ClickHouse/ClickHouse/pull/23990) ([Maksim Kita](https://github.com/kitaisreal)). +* CompileDAG fix Sip hash [#24004](https://github.com/ClickHouse/ClickHouse/pull/24004) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix bad code [#24007](https://github.com/ClickHouse/ClickHouse/pull/24007) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Better error codes in Keeper when no leader alive [#24017](https://github.com/ClickHouse/ClickHouse/pull/24017) ([alesapin](https://github.com/alesapin)). +* Fix ArenaWithFreeLists test [#24021](https://github.com/ClickHouse/ClickHouse/pull/24021) ([Maksim Kita](https://github.com/kitaisreal)). +* Run check_*_compiler_flag earlier [#24037](https://github.com/ClickHouse/ClickHouse/pull/24037) ([Amos Bird](https://github.com/amosbird)). +* Performance tests disable compile expressions [#24043](https://github.com/ClickHouse/ClickHouse/pull/24043) ([Maksim Kita](https://github.com/kitaisreal)). +* for trivial INSERT SELECT, adjust block size in bytes as well [#24048](https://github.com/ClickHouse/ClickHouse/pull/24048) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Enable thread_local in Arcadia build [#24051](https://github.com/ClickHouse/ClickHouse/pull/24051) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* lower two-level aggregation threshold for uniq test to avoid jitter [#24058](https://github.com/ClickHouse/ClickHouse/pull/24058) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix empty key projection query analysis [#24062](https://github.com/ClickHouse/ClickHouse/pull/24062) ([Amos Bird](https://github.com/amosbird)). +* Generate ya.make for missing UUID.cpp [#24064](https://github.com/ClickHouse/ClickHouse/pull/24064) ([Alexander Gololobov](https://github.com/davenger)). +* bash-completion: complete available formats [#24065](https://github.com/ClickHouse/ClickHouse/pull/24065) ([Azat Khuzhin](https://github.com/azat)). +* Fix concurrent snapshot read/write [#24073](https://github.com/ClickHouse/ClickHouse/pull/24073) ([alesapin](https://github.com/alesapin)). +* Also retry database creation in `clickhouse-test` [#24088](https://github.com/ClickHouse/ClickHouse/pull/24088) ([alesapin](https://github.com/alesapin)). +* Calculate header from ActionsDAG [#24108](https://github.com/ClickHouse/ClickHouse/pull/24108) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix arcadia [#24133](https://github.com/ClickHouse/ClickHouse/pull/24133) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* TestReadAfterAIO: Use the current path instead of /tmp for temporal files [#24139](https://github.com/ClickHouse/ClickHouse/pull/24139) ([Raúl Marín](https://github.com/Algunenano)). +* Fix a few trailing whitespaces in output [#24150](https://github.com/ClickHouse/ClickHouse/pull/24150) ([Azat Khuzhin](https://github.com/azat)). +* IFunction refactoring [#24155](https://github.com/ClickHouse/ClickHouse/pull/24155) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix add projection to replicated mergetree [#24162](https://github.com/ClickHouse/ClickHouse/pull/24162) ([Amos Bird](https://github.com/amosbird)). +* Fix distributed processing when using projection [#24168](https://github.com/ClickHouse/ClickHouse/pull/24168) ([Amos Bird](https://github.com/amosbird)). +* fix tiny code style [#24169](https://github.com/ClickHouse/ClickHouse/pull/24169) ([flynn](https://github.com/ucasfl)). +* fix reinterpretAsFixedString for UUID [#24177](https://github.com/ClickHouse/ClickHouse/pull/24177) ([flynn](https://github.com/ucasfl)). +* Function move file [#24178](https://github.com/ClickHouse/ClickHouse/pull/24178) ([Maksim Kita](https://github.com/kitaisreal)). +* Updated LRUHashMap benchmarks [#24182](https://github.com/ClickHouse/ClickHouse/pull/24182) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove temporary files [#24186](https://github.com/ClickHouse/ClickHouse/pull/24186) ([Kruglov Pavel](https://github.com/Avogar)). +* Try mute grpc msan [#24197](https://github.com/ClickHouse/ClickHouse/pull/24197) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Update slack link [#24200](https://github.com/ClickHouse/ClickHouse/pull/24200) ([Ilya Yatsishin](https://github.com/qoega)). +* Simplier isLocalAddress [#24203](https://github.com/ClickHouse/ClickHouse/pull/24203) ([alesapin](https://github.com/alesapin)). +* Increase timeout for server restart in integration tests. [#24205](https://github.com/ClickHouse/ClickHouse/pull/24205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Addition to [#23997](https://github.com/ClickHouse/ClickHouse/issues/23997) [#24208](https://github.com/ClickHouse/ClickHouse/pull/24208) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Small code simplification [#24210](https://github.com/ClickHouse/ClickHouse/pull/24210) ([Maksim Kita](https://github.com/kitaisreal)). +* Speedup test [test_jbod_balancer/test.py] [#24247](https://github.com/ClickHouse/ClickHouse/pull/24247) ([alesapin](https://github.com/alesapin)). +* remove useless code [#24248](https://github.com/ClickHouse/ClickHouse/pull/24248) ([flynn](https://github.com/ucasfl)). +* One more attempt to fix retries in clickhouse-test [#24249](https://github.com/ClickHouse/ClickHouse/pull/24249) ([alesapin](https://github.com/alesapin)). +* Log exception in Allocator::free [#24256](https://github.com/ClickHouse/ClickHouse/pull/24256) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix broken HTML markup on website [#24265](https://github.com/ClickHouse/ClickHouse/pull/24265) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix arcadia [#24282](https://github.com/ClickHouse/ClickHouse/pull/24282) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fixed Arcadia after IFunctionOverloadResolver interface refactoring [#24284](https://github.com/ClickHouse/ClickHouse/pull/24284) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix isLocalAddress() (ifa_addr maybe NULL) [#24308](https://github.com/ClickHouse/ClickHouse/pull/24308) ([Azat Khuzhin](https://github.com/azat)). +* Fix bad test for Enum hints [#24313](https://github.com/ClickHouse/ClickHouse/pull/24313) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + #### New Feature #14893 * - Add uniqThetaSketch to support [Theta Sketch](https://datasketches.apache.org/docs/Theta/ThetaSketchFramework.html) in ClickHouse. [#22609](https://github.com/ClickHouse/ClickHouse/pull/22609) ([Ping Yu](https://github.com/pingyu)). diff --git a/docs/changelogs/v21.6.2.7-prestable.md b/docs/changelogs/v21.6.2.7-prestable.md index c5dec251786..55032e0258e 100644 --- a/docs/changelogs/v21.6.2.7-prestable.md +++ b/docs/changelogs/v21.6.2.7-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.2.7-prestable FIXME as compared to v21.6.1.6891-prestable #### Bug Fix @@ -11,3 +18,9 @@ * Backported in [#24597](https://github.com/ClickHouse/ClickHouse/issues/24597): Fix usage of tuples in `CREATE .. AS SELECT` queries. [#24464](https://github.com/ClickHouse/ClickHouse/pull/24464) ([Anton Popov](https://github.com/CurtizJ)). * Backported in [#24600](https://github.com/ClickHouse/ClickHouse/issues/24600): Enable reading of subcolumns for distributed tables. [#24472](https://github.com/ClickHouse/ClickHouse/pull/24472) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Use memmove in PODArray::insert to handle memory overlapping. [#24271](https://github.com/ClickHouse/ClickHouse/pull/24271) ([Fu Zhe](https://github.com/fuzhe1989)). +* Fix cli argument in clickhouse-server.init [#24449](https://github.com/ClickHouse/ClickHouse/pull/24449) ([Vladimir C](https://github.com/vdimir)). +* Fix several cases in cast operator [#24471](https://github.com/ClickHouse/ClickHouse/pull/24471) ([Anton Popov](https://github.com/CurtizJ)). + diff --git a/docs/changelogs/v21.6.3.14-stable.md b/docs/changelogs/v21.6.3.14-stable.md index 8d2e2a03320..551f959aefd 100644 --- a/docs/changelogs/v21.6.3.14-stable.md +++ b/docs/changelogs/v21.6.3.14-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.3.14-stable FIXME as compared to v21.6.2.7-prestable #### Improvement diff --git a/docs/changelogs/v21.6.4.26-stable.md b/docs/changelogs/v21.6.4.26-stable.md index 9bf7d0e68cb..dc235d91e6d 100644 --- a/docs/changelogs/v21.6.4.26-stable.md +++ b/docs/changelogs/v21.6.4.26-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.4.26-stable FIXME as compared to v21.6.3.14-stable #### Bug Fix @@ -12,3 +19,8 @@ * Backported in [#25157](https://github.com/ClickHouse/ClickHouse/issues/25157): Fix possible parts loss after updating up to 21.5 in case table used `UUID` in partition key. (It is not recommended to use `UUID` in partition key). Fixes [#25070](https://github.com/ClickHouse/ClickHouse/issues/25070). [#25127](https://github.com/ClickHouse/ClickHouse/pull/25127) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#25182](https://github.com/ClickHouse/ClickHouse/issues/25182): Do not use table's projection for `SELECT` with `FINAL`. It is not supported yet. [#25163](https://github.com/ClickHouse/ClickHouse/pull/25163) ([Amos Bird](https://github.com/amosbird)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Try fix `test_consistent_parts_after_clone_replica` [#24968](https://github.com/ClickHouse/ClickHouse/pull/24968) ([Alexander Tokmakov](https://github.com/tavplubix)). +* DictionaryLoader unnecessary dictionary configuration creation fix [#25001](https://github.com/ClickHouse/ClickHouse/pull/25001) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.6.5.37-stable.md b/docs/changelogs/v21.6.5.37-stable.md index 3d03c31c7e8..45a43199c28 100644 --- a/docs/changelogs/v21.6.5.37-stable.md +++ b/docs/changelogs/v21.6.5.37-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.5.37-stable FIXME as compared to v21.6.4.26-stable #### Improvement @@ -19,3 +26,8 @@ * Backported in [#25448](https://github.com/ClickHouse/ClickHouse/issues/25448): Fix lost `WHERE` condition in expression-push-down optimization of query plan (setting `query_plan_filter_push_down = 1` by default). Fixes [#25368](https://github.com/ClickHouse/ClickHouse/issues/25368). [#25370](https://github.com/ClickHouse/ClickHouse/pull/25370) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#25407](https://github.com/ClickHouse/ClickHouse/issues/25407): Fix `REPLACE` column transformer when used in DDL by correctly quoting the formated query. This fixes [#23925](https://github.com/ClickHouse/ClickHouse/issues/23925). [#25391](https://github.com/ClickHouse/ClickHouse/pull/25391) ([Amos Bird](https://github.com/amosbird)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* ExpressionActions compile only necessary places [#24273](https://github.com/ClickHouse/ClickHouse/pull/24273) ([Maksim Kita](https://github.com/kitaisreal)). +* odbc fix [#25045](https://github.com/ClickHouse/ClickHouse/pull/25045) ([Kseniia Sumarokova](https://github.com/kssenii)). + diff --git a/docs/changelogs/v21.6.6.51-stable.md b/docs/changelogs/v21.6.6.51-stable.md index 55f1fd46119..39441adaa9e 100644 --- a/docs/changelogs/v21.6.6.51-stable.md +++ b/docs/changelogs/v21.6.6.51-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.6.51-stable FIXME as compared to v21.6.5.37-stable #### Bug Fix @@ -17,3 +24,7 @@ * NO CL ENTRY: 'Partial backport [#24061](https://github.com/ClickHouse/ClickHouse/issues/24061) to 21.6'. [#25621](https://github.com/ClickHouse/ClickHouse/pull/25621) ([Vladimir C](https://github.com/vdimir)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* ExpressionCache destruction fix [#25835](https://github.com/ClickHouse/ClickHouse/pull/25835) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.6.7.57-stable.md b/docs/changelogs/v21.6.7.57-stable.md index 5ef9026794b..26887fac120 100644 --- a/docs/changelogs/v21.6.7.57-stable.md +++ b/docs/changelogs/v21.6.7.57-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.7.57-stable FIXME as compared to v21.6.6.51-stable #### Bug Fix @@ -6,3 +13,7 @@ * Backported in [#26096](https://github.com/ClickHouse/ClickHouse/issues/26096): Fix wrong thread estimation for right subquery join in some cases. Close [#24075](https://github.com/ClickHouse/ClickHouse/issues/24075). [#26052](https://github.com/ClickHouse/ClickHouse/pull/26052) ([Vladimir C](https://github.com/vdimir)). * Backported in [#26143](https://github.com/ClickHouse/ClickHouse/issues/26143): Fix possible crash in `pointInPolygon` if the setting `validate_polygons` is turned off. [#26113](https://github.com/ClickHouse/ClickHouse/pull/26113) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* 21.6 manual backport of [#25970](https://github.com/ClickHouse/ClickHouse/issues/25970) [#26138](https://github.com/ClickHouse/ClickHouse/pull/26138) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.6.8.62-stable.md b/docs/changelogs/v21.6.8.62-stable.md index 1357c762181..0dc35d41344 100644 --- a/docs/changelogs/v21.6.8.62-stable.md +++ b/docs/changelogs/v21.6.8.62-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.8.62-stable FIXME as compared to v21.6.7.57-stable #### Bug Fix @@ -7,3 +14,7 @@ * Backported in [#26205](https://github.com/ClickHouse/ClickHouse/issues/26205): Fix potential crash if more than one `untuple` expression is used. [#26179](https://github.com/ClickHouse/ClickHouse/pull/26179) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Backported in [#26227](https://github.com/ClickHouse/ClickHouse/issues/26227): Remove excessive newline in `thread_name` column in `system.stack_trace` table. This fixes [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Manual backport of [#25531](https://github.com/ClickHouse/ClickHouse/issues/25531) in 21.6 [#25776](https://github.com/ClickHouse/ClickHouse/pull/25776) ([Kruglov Pavel](https://github.com/Avogar)). + diff --git a/docs/changelogs/v21.6.9.7-stable.md b/docs/changelogs/v21.6.9.7-stable.md index ecac9dd75ef..fae1c8d2fef 100644 --- a/docs/changelogs/v21.6.9.7-stable.md +++ b/docs/changelogs/v21.6.9.7-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.6.9.7-stable FIXME as compared to v21.6.8.62-stable #### Improvement @@ -41,3 +48,19 @@ * Backported in [#28264](https://github.com/ClickHouse/ClickHouse/issues/28264): Fix possible read of uninitialized memory for queries with `Nullable(LowCardinality)` type and extremes. Fixes [#28165](https://github.com/ClickHouse/ClickHouse/issues/28165). [#28205](https://github.com/ClickHouse/ClickHouse/pull/28205) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#28291](https://github.com/ClickHouse/ClickHouse/issues/28291): Fix inconsistent result in queries with `ORDER BY` and `Merge` tables with enabled setting `optimize_read_in_order`. [#28266](https://github.com/ClickHouse/ClickHouse/pull/28266) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix prometheus metric name [#26140](https://github.com/ClickHouse/ClickHouse/pull/26140) ([Vladimir C](https://github.com/vdimir)). +* Fix mysql_kill_sync_thread_restore_test [#26673](https://github.com/ClickHouse/ClickHouse/pull/26673) ([Vladimir C](https://github.com/vdimir)). +* Try fix rabbitmq tests [#26826](https://github.com/ClickHouse/ClickHouse/pull/26826) ([Kseniia Sumarokova](https://github.com/kssenii)). +* One more library bridge fix [#26873](https://github.com/ClickHouse/ClickHouse/pull/26873) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update PVS checksum [#27317](https://github.com/ClickHouse/ClickHouse/pull/27317) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix flacky test [#27383](https://github.com/ClickHouse/ClickHouse/pull/27383) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix throw without exception in MySQL source. [#28027](https://github.com/ClickHouse/ClickHouse/pull/28027) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix race between REPLACE PARTITION and MOVE PARTITION [#28035](https://github.com/ClickHouse/ClickHouse/pull/28035) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Follow-up to [#28016](https://github.com/ClickHouse/ClickHouse/issues/28016) [#28036](https://github.com/ClickHouse/ClickHouse/pull/28036) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Set version of tzlocal to 2.1 [#28063](https://github.com/ClickHouse/ClickHouse/pull/28063) ([Vitaly Baranov](https://github.com/vitlibar)). +* ODBC connection holder fix dangling reference [#28298](https://github.com/ClickHouse/ClickHouse/pull/28298) ([Maksim Kita](https://github.com/kitaisreal)). +* Another try to fix BackgroundPoolTask decrement. [#28353](https://github.com/ClickHouse/ClickHouse/pull/28353) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* More accurate check that zk root exists. [#28412](https://github.com/ClickHouse/ClickHouse/pull/28412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.7.1.7283-prestable.md b/docs/changelogs/v21.7.1.7283-prestable.md index 52de493c4ab..a862e6c4750 100644 --- a/docs/changelogs/v21.7.1.7283-prestable.md +++ b/docs/changelogs/v21.7.1.7283-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.1.7283-prestable FIXME as compared to v21.6.1.6891-prestable #### Backward Incompatible Change @@ -172,6 +179,236 @@ * NO CL ENTRY: 'Revert "Add run-id option to integration tests"'. [#25526](https://github.com/ClickHouse/ClickHouse/pull/25526) ([alesapin](https://github.com/alesapin)). * NO CL ENTRY: 'Revert "Implement h3ToGeo function"'. [#25593](https://github.com/ClickHouse/ClickHouse/pull/25593) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Part movement between shards [#17871](https://github.com/ClickHouse/ClickHouse/pull/17871) ([nvartolomei](https://github.com/nvartolomei)). +* Pass Settings to aggregate function creator [#22762](https://github.com/ClickHouse/ClickHouse/pull/22762) ([Vladimir C](https://github.com/vdimir)). +* Add uniqTheta in performance test [#23311](https://github.com/ClickHouse/ClickHouse/pull/23311) ([Kruglov Pavel](https://github.com/Avogar)). +* More pytest fixes [#23538](https://github.com/ClickHouse/ClickHouse/pull/23538) ([Ivan](https://github.com/abyss7)). +* Improved `test_storage_s3_get_unstable` [#23976](https://github.com/ClickHouse/ClickHouse/pull/23976) ([Vladimir Chebotarev](https://github.com/excitoon)). +* CompileExpressions comparison function constant case fix [#24023](https://github.com/ClickHouse/ClickHouse/pull/24023) ([Maksim Kita](https://github.com/kitaisreal)). +* Added llvm-project submodule [#24030](https://github.com/ClickHouse/ClickHouse/pull/24030) ([Maksim Kita](https://github.com/kitaisreal)). +* complain about unstable perf test queries [#24049](https://github.com/ClickHouse/ClickHouse/pull/24049) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Changelog 21.5 [#24098](https://github.com/ClickHouse/ClickHouse/pull/24098) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Implement antlr parser for projections [#24245](https://github.com/ClickHouse/ClickHouse/pull/24245) ([Amos Bird](https://github.com/amosbird)). +* Try to fix GROUP BY _shard_num in a different way [#24252](https://github.com/ClickHouse/ClickHouse/pull/24252) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Use memmove in PODArray::insert to handle memory overlapping. [#24271](https://github.com/ClickHouse/ClickHouse/pull/24271) ([Fu Zhe](https://github.com/fuzhe1989)). +* ExpressionActions compile only necessary places [#24273](https://github.com/ClickHouse/ClickHouse/pull/24273) ([Maksim Kita](https://github.com/kitaisreal)). +* consolidate connection loss handling in fuzzer [#24290](https://github.com/ClickHouse/ClickHouse/pull/24290) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Skip data finalization when doing projection materialization. [#24296](https://github.com/ClickHouse/ClickHouse/pull/24296) ([Amos Bird](https://github.com/amosbird)). +* One more error to retry in clickhouse-test [#24307](https://github.com/ClickHouse/ClickHouse/pull/24307) ([alesapin](https://github.com/alesapin)). +* Merging [#23461](https://github.com/ClickHouse/ClickHouse/issues/23461) [#24311](https://github.com/ClickHouse/ClickHouse/pull/24311) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Remove AutoArray [#24320](https://github.com/ClickHouse/ClickHouse/pull/24320) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Compile expressions added partition by test [#24323](https://github.com/ClickHouse/ClickHouse/pull/24323) ([Maksim Kita](https://github.com/kitaisreal)). +* PODArray insert in the middle tests [#24333](https://github.com/ClickHouse/ClickHouse/pull/24333) ([Maksim Kita](https://github.com/kitaisreal)). +* remove retries from fast test [#24338](https://github.com/ClickHouse/ClickHouse/pull/24338) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Better parallelism for functional tests [#24349](https://github.com/ClickHouse/ClickHouse/pull/24349) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* AARCH64 hash tables benchmark [#24364](https://github.com/ClickHouse/ClickHouse/pull/24364) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix diagnostics in documentation script [#24379](https://github.com/ClickHouse/ClickHouse/pull/24379) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky 01033_quota_dcl [#24393](https://github.com/ClickHouse/ClickHouse/pull/24393) ([alesapin](https://github.com/alesapin)). +* Fix logical error AggregateFunctionFactory returned nullptr [#24398](https://github.com/ClickHouse/ClickHouse/pull/24398) ([Kruglov Pavel](https://github.com/Avogar)). +* Add log record for removed from AWS S3 keys [#24400](https://github.com/ClickHouse/ClickHouse/pull/24400) ([ianton-ru](https://github.com/ianton-ru)). +* Added AggregateFunctionSegmentLengthSum to ya.make [#24408](https://github.com/ClickHouse/ClickHouse/pull/24408) ([Maksim Kita](https://github.com/kitaisreal)). +* Stateless tests fixes [#24411](https://github.com/ClickHouse/ClickHouse/pull/24411) ([Azat Khuzhin](https://github.com/azat)). +* Function constant result with nonconstant arguments [#24417](https://github.com/ClickHouse/ClickHouse/pull/24417) ([Maksim Kita](https://github.com/kitaisreal)). +* Libunwind update version [#24419](https://github.com/ClickHouse/ClickHouse/pull/24419) ([Maksim Kita](https://github.com/kitaisreal)). +* Do not built clickhouse-keeper w/o NuRaft [#24421](https://github.com/ClickHouse/ClickHouse/pull/24421) ([Azat Khuzhin](https://github.com/azat)). +* Switch message level to WARNING for FAIL_ON_UNSUPPORTED_OPTIONS_COMBINATION=OFF [#24423](https://github.com/ClickHouse/ClickHouse/pull/24423) ([Azat Khuzhin](https://github.com/azat)). +* Merging "experimental compression codecs" [#24424](https://github.com/ClickHouse/ClickHouse/pull/24424) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix formatting of negative values [#24427](https://github.com/ClickHouse/ClickHouse/pull/24427) ([Azat Khuzhin](https://github.com/azat)). +* Fix dictionary functions documentation [#24432](https://github.com/ClickHouse/ClickHouse/pull/24432) ([Maksim Kita](https://github.com/kitaisreal)). +* Mark false positives for PVS-Studio [#24434](https://github.com/ClickHouse/ClickHouse/pull/24434) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ActionsDAG compile expressions update [#24442](https://github.com/ClickHouse/ClickHouse/pull/24442) ([Maksim Kita](https://github.com/kitaisreal)). +* LLVM remove orc jit library [#24443](https://github.com/ClickHouse/ClickHouse/pull/24443) ([Maksim Kita](https://github.com/kitaisreal)). +* Add YAMLParser to ya.make [#24447](https://github.com/ClickHouse/ClickHouse/pull/24447) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix cli argument in clickhouse-server.init [#24449](https://github.com/ClickHouse/ClickHouse/pull/24449) ([Vladimir C](https://github.com/vdimir)). +* Fix fast test [#24454](https://github.com/ClickHouse/ClickHouse/pull/24454) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix flaky test 01085_max_distributed_connections [#24455](https://github.com/ClickHouse/ClickHouse/pull/24455) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Manually disable LLVM parts submodule update [#24460](https://github.com/ClickHouse/ClickHouse/pull/24460) ([Maksim Kita](https://github.com/kitaisreal)). +* Account total_rows_approx as soon as possible [#24462](https://github.com/ClickHouse/ClickHouse/pull/24462) ([Azat Khuzhin](https://github.com/azat)). +* Fix header mismatch for UNION. [#24463](https://github.com/ClickHouse/ClickHouse/pull/24463) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Try to improve kafka flaky test [#24465](https://github.com/ClickHouse/ClickHouse/pull/24465) ([filimonov](https://github.com/filimonov)). +* CompileExpression cached functions with context fix [#24468](https://github.com/ClickHouse/ClickHouse/pull/24468) ([Maksim Kita](https://github.com/kitaisreal)). +* Fixed IFunction then typos [#24469](https://github.com/ClickHouse/ClickHouse/pull/24469) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix several cases in cast operator [#24471](https://github.com/ClickHouse/ClickHouse/pull/24471) ([Anton Popov](https://github.com/CurtizJ)). +* MemoryTracker new no throw [#24483](https://github.com/ClickHouse/ClickHouse/pull/24483) ([Maksim Kita](https://github.com/kitaisreal)). +* Revent libunwind [#24485](https://github.com/ClickHouse/ClickHouse/pull/24485) ([Maksim Kita](https://github.com/kitaisreal)). +* Log file name on error in FileChecker ctor [#24489](https://github.com/ClickHouse/ClickHouse/pull/24489) ([Vladimir C](https://github.com/vdimir)). +* Remove containers in intergational runner entrypoint [#24492](https://github.com/ClickHouse/ClickHouse/pull/24492) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix benign race (detected by clang-12) in Keeper snapshots [#24499](https://github.com/ClickHouse/ClickHouse/pull/24499) ([alesapin](https://github.com/alesapin)). +* [backport] Find only opened PRs by label [#24501](https://github.com/ClickHouse/ClickHouse/pull/24501) ([Ivan](https://github.com/abyss7)). +* shellcheck fix [#24512](https://github.com/ClickHouse/ClickHouse/pull/24512) ([Ilya Yatsishin](https://github.com/qoega)). +* Do not peerdir enabled-by-default libcxxabi-parts [#24518](https://github.com/ClickHouse/ClickHouse/pull/24518) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Merging [#22762](https://github.com/ClickHouse/ClickHouse/issues/22762) [#24525](https://github.com/ClickHouse/ClickHouse/pull/24525) ([Vladimir C](https://github.com/vdimir)). +* Fix Arcadia [#24527](https://github.com/ClickHouse/ClickHouse/pull/24527) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Make `get/check/read/list` requests always read in Keeper [#24533](https://github.com/ClickHouse/ClickHouse/pull/24533) ([alesapin](https://github.com/alesapin)). +* calculate perf test precision thresholds from historical data [#24534](https://github.com/ClickHouse/ClickHouse/pull/24534) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Update jit_example [#24550](https://github.com/ClickHouse/ClickHouse/pull/24550) ([Maksim Kita](https://github.com/kitaisreal)). +* Update test_multiple_disks [#24560](https://github.com/ClickHouse/ClickHouse/pull/24560) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix flaky test [#24561](https://github.com/ClickHouse/ClickHouse/pull/24561) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix arcadia [#24563](https://github.com/ClickHouse/ClickHouse/pull/24563) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix avro [#24569](https://github.com/ClickHouse/ClickHouse/pull/24569) ([Ilya Yatsishin](https://github.com/qoega)). +* Refactor MergeTreeDataSelectExecutor [#24574](https://github.com/ClickHouse/ClickHouse/pull/24574) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* allow inheriting from a named window in window definition [#24576](https://github.com/ClickHouse/ClickHouse/pull/24576) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* do not auto-apply -OrNull combinator to pure window functions [#24579](https://github.com/ClickHouse/ClickHouse/pull/24579) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* fix ORDER BY after window fuctions over Distributed [#24580](https://github.com/ClickHouse/ClickHouse/pull/24580) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* ast fuzzer: determine server death more robustly [#24584](https://github.com/ClickHouse/ClickHouse/pull/24584) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Enable tests, utils and examples in builds with clang-tidy [#24587](https://github.com/ClickHouse/ClickHouse/pull/24587) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* more fuzzer fixes [#24690](https://github.com/ClickHouse/ClickHouse/pull/24690) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix flaky integration tests [#24691](https://github.com/ClickHouse/ClickHouse/pull/24691) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Fix alter table drop projection if exists [#24692](https://github.com/ClickHouse/ClickHouse/pull/24692) ([Amos Bird](https://github.com/amosbird)). +* Block memory tracker earlier in `tryLogCurrentException` [#24722](https://github.com/ClickHouse/ClickHouse/pull/24722) ([alesapin](https://github.com/alesapin)). +* Minor fixes in AggregateFunctionSegmentLengthSumData [#24729](https://github.com/ClickHouse/ClickHouse/pull/24729) ([Vladimir C](https://github.com/vdimir)). +* remove mutable references to Context from IFunction interface [#24732](https://github.com/ClickHouse/ClickHouse/pull/24732) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* MemoryTracker enable throw logical error [#24733](https://github.com/ClickHouse/ClickHouse/pull/24733) ([Maksim Kita](https://github.com/kitaisreal)). +* support expressions in window frame [#24734](https://github.com/ClickHouse/ClickHouse/pull/24734) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Updated libunwind [#24735](https://github.com/ClickHouse/ClickHouse/pull/24735) ([Maksim Kita](https://github.com/kitaisreal)). +* ExecuteScalarSubqueriesVisitor fix error code style check [#24736](https://github.com/ClickHouse/ClickHouse/pull/24736) ([Maksim Kita](https://github.com/kitaisreal)). +* Process config w/o extensions as XML format [#24763](https://github.com/ClickHouse/ClickHouse/pull/24763) ([Azat Khuzhin](https://github.com/azat)). +* Update NuRaft [#24775](https://github.com/ClickHouse/ClickHouse/pull/24775) ([alesapin](https://github.com/alesapin)). +* Fix empty part set with force_use_projection = 1 [#24782](https://github.com/ClickHouse/ClickHouse/pull/24782) ([Amos Bird](https://github.com/amosbird)). +* Better exception for invalid projection creation [#24785](https://github.com/ClickHouse/ClickHouse/pull/24785) ([Amos Bird](https://github.com/amosbird)). +* Improve "Cannot schedule a task" error message [#24786](https://github.com/ClickHouse/ClickHouse/pull/24786) ([Azat Khuzhin](https://github.com/azat)). +* Fix 00953_zookeeper_suetin_deduplication_bug [#24801](https://github.com/ClickHouse/ClickHouse/pull/24801) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Don't capture temporary references in ZooKeeper client callbacks. [#24803](https://github.com/ClickHouse/ClickHouse/pull/24803) ([alesapin](https://github.com/alesapin)). +* Small improvement for StorageMaterializedView::getActionLock(...) [#24806](https://github.com/ClickHouse/ClickHouse/pull/24806) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Make ContextPtr const by default. [#24808](https://github.com/ClickHouse/ClickHouse/pull/24808) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix typo. Remove the "allow_experimental_bigint_types" setting. [#24812](https://github.com/ClickHouse/ClickHouse/pull/24812) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* ExpressionJIT remove unncecessary logging [#24813](https://github.com/ClickHouse/ClickHouse/pull/24813) ([Maksim Kita](https://github.com/kitaisreal)). +* ExpressionJIT simplify loop [#24814](https://github.com/ClickHouse/ClickHouse/pull/24814) ([Maksim Kita](https://github.com/kitaisreal)). +* Fixed clang tidy [#24821](https://github.com/ClickHouse/ClickHouse/pull/24821) ([Maksim Kita](https://github.com/kitaisreal)). +* Merging [#23260](https://github.com/ClickHouse/ClickHouse/issues/23260) [#24822](https://github.com/ClickHouse/ClickHouse/pull/24822) ([Anton Popov](https://github.com/CurtizJ)). +* Simplify code around TraceCollector, alternative to [#24829](https://github.com/ClickHouse/ClickHouse/issues/24829) [#24833](https://github.com/ClickHouse/ClickHouse/pull/24833) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Some improvements in stress test [#24835](https://github.com/ClickHouse/ClickHouse/pull/24835) ([alesapin](https://github.com/alesapin)). +* Rename ContextConstPtr to ContextPtr. [#24855](https://github.com/ClickHouse/ClickHouse/pull/24855) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Reverted libunwind from upstream [#24860](https://github.com/ClickHouse/ClickHouse/pull/24860) ([Maksim Kita](https://github.com/kitaisreal)). +* Testflows Extended Precision Data Type testing - Adding snapshots for output comparison. [#24861](https://github.com/ClickHouse/ClickHouse/pull/24861) ([MyroTk](https://github.com/MyroTk)). +* clickhouse-client: echo hint improvements [#24863](https://github.com/ClickHouse/ClickHouse/pull/24863) ([Azat Khuzhin](https://github.com/azat)). +* docs: update requests (to fix conflicts with urllib3) [#24865](https://github.com/ClickHouse/ClickHouse/pull/24865) ([Azat Khuzhin](https://github.com/azat)). +* Trying to resurrect woboq [#24875](https://github.com/ClickHouse/ClickHouse/pull/24875) ([alesapin](https://github.com/alesapin)). +* Get rid of std::stringstream in Suggest [#24882](https://github.com/ClickHouse/ClickHouse/pull/24882) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Suppress RocksDB error [#24886](https://github.com/ClickHouse/ClickHouse/pull/24886) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Remove some outdated integration tests [#24911](https://github.com/ClickHouse/ClickHouse/pull/24911) ([alesapin](https://github.com/alesapin)). +* Mute test_memory_consumption before [#24784](https://github.com/ClickHouse/ClickHouse/issues/24784) [#24919](https://github.com/ClickHouse/ClickHouse/pull/24919) ([Ilya Yatsishin](https://github.com/qoega)). +* Update something in KeyCondition [#24920](https://github.com/ClickHouse/ClickHouse/pull/24920) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Relax hung check [#24929](https://github.com/ClickHouse/ClickHouse/pull/24929) ([alesapin](https://github.com/alesapin)). +* some perf test script improvements [#24938](https://github.com/ClickHouse/ClickHouse/pull/24938) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* RFC: clickhouse-test: do not substitude db name in stderr by default [#24939](https://github.com/ClickHouse/ClickHouse/pull/24939) ([Azat Khuzhin](https://github.com/azat)). +* Add test issue [#23430](https://github.com/ClickHouse/ClickHouse/issues/23430) [#24941](https://github.com/ClickHouse/ClickHouse/pull/24941) ([filimonov](https://github.com/filimonov)). +* Followup fixes for integration tests [#24954](https://github.com/ClickHouse/ClickHouse/pull/24954) ([alesapin](https://github.com/alesapin)). +* Fix bad error message in docker entrypoint [#24955](https://github.com/ClickHouse/ClickHouse/pull/24955) ([filimonov](https://github.com/filimonov)). +* Fix endless wait in replica clone [#24957](https://github.com/ClickHouse/ClickHouse/pull/24957) ([alesapin](https://github.com/alesapin)). +* Remove subprocess_call from cluster.py [#24959](https://github.com/ClickHouse/ClickHouse/pull/24959) ([Ilya Yatsishin](https://github.com/qoega)). +* Delete support for waiting on queue- entries, is this dead code? [#24960](https://github.com/ClickHouse/ClickHouse/pull/24960) ([nvartolomei](https://github.com/nvartolomei)). +* Fix the test after [#20393](https://github.com/ClickHouse/ClickHouse/issues/20393) [#24967](https://github.com/ClickHouse/ClickHouse/pull/24967) ([filimonov](https://github.com/filimonov)). +* Try fix `test_consistent_parts_after_clone_replica` [#24968](https://github.com/ClickHouse/ClickHouse/pull/24968) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix typo in usage section in s3 documentation [#24970](https://github.com/ClickHouse/ClickHouse/pull/24970) ([presto53](https://github.com/presto53)). +* Cleanup iptables and containers on session start [#24973](https://github.com/ClickHouse/ClickHouse/pull/24973) ([Ilya Yatsishin](https://github.com/qoega)). +* Part movement between shards ACL [#24979](https://github.com/ClickHouse/ClickHouse/pull/24979) ([nvartolomei](https://github.com/nvartolomei)). +* Cleanup changelog script [#24987](https://github.com/ClickHouse/ClickHouse/pull/24987) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add changelog for 21.6 [#24989](https://github.com/ClickHouse/ClickHouse/pull/24989) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* clickhouse-test: fix log_comment for .sql tests [#24999](https://github.com/ClickHouse/ClickHouse/pull/24999) ([Azat Khuzhin](https://github.com/azat)). +* DictionaryLoader unnecessary dictionary configuration creation fix [#25001](https://github.com/ClickHouse/ClickHouse/pull/25001) ([Maksim Kita](https://github.com/kitaisreal)). +* Compression codecs refactoring [#25002](https://github.com/ClickHouse/ClickHouse/pull/25002) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Maybe Minio starts for too long in tests [#25007](https://github.com/ClickHouse/ClickHouse/pull/25007) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix bad test [#25012](https://github.com/ClickHouse/ClickHouse/pull/25012) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Disks fix ya.make [#25031](https://github.com/ClickHouse/ClickHouse/pull/25031) ([Maksim Kita](https://github.com/kitaisreal)). +* tests: disable suggestions for expect tests that does not requires it [#25033](https://github.com/ClickHouse/ClickHouse/pull/25033) ([Azat Khuzhin](https://github.com/azat)). +* fix jemalloc build on OS_DARWIN [#25034](https://github.com/ClickHouse/ClickHouse/pull/25034) ([sdk2](https://github.com/sdk2)). +* Update waitForTableReplicaToProcessLogEntry comments [#25037](https://github.com/ClickHouse/ClickHouse/pull/25037) ([nvartolomei](https://github.com/nvartolomei)). +* Remove database before model name in docs [#25038](https://github.com/ClickHouse/ClickHouse/pull/25038) ([Kruglov Pavel](https://github.com/Avogar)). +* odbc fix [#25045](https://github.com/ClickHouse/ClickHouse/pull/25045) ([Kseniia Sumarokova](https://github.com/kssenii)). +* test for attach partition from [#25060](https://github.com/ClickHouse/ClickHouse/pull/25060) ([Denny Crane](https://github.com/den-crane)). +* AggregateFunctionAnyHeavyData use fixed size type [#25066](https://github.com/ClickHouse/ClickHouse/pull/25066) ([Maksim Kita](https://github.com/kitaisreal)). +* Update Dockerfile [#25078](https://github.com/ClickHouse/ClickHouse/pull/25078) ([Ivan](https://github.com/abyss7)). +* Trying to debug fetches bandwith test failures [#25079](https://github.com/ClickHouse/ClickHouse/pull/25079) ([alesapin](https://github.com/alesapin)). +* Remove strange timeout in test [#25084](https://github.com/ClickHouse/ClickHouse/pull/25084) ([alesapin](https://github.com/alesapin)). +* Remove copypaste from StorageReplicatedMergeTree [#25087](https://github.com/ClickHouse/ClickHouse/pull/25087) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Less timeouts in integration tests [#25111](https://github.com/ClickHouse/ClickHouse/pull/25111) ([alesapin](https://github.com/alesapin)). +* Better odbc integration test [#25113](https://github.com/ClickHouse/ClickHouse/pull/25113) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix flaky check report in CI runner [#25126](https://github.com/ClickHouse/ClickHouse/pull/25126) ([alesapin](https://github.com/alesapin)). +* Better hdfs tests [#25128](https://github.com/ClickHouse/ClickHouse/pull/25128) ([Ilya Yatsishin](https://github.com/qoega)). +* Use zstd/include in ya.make [#25145](https://github.com/ClickHouse/ClickHouse/pull/25145) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Adds a better way to include binary resources [#25146](https://github.com/ClickHouse/ClickHouse/pull/25146) ([bnaecker](https://github.com/bnaecker)). +* check for row_policy defined using user() function [#25147](https://github.com/ClickHouse/ClickHouse/pull/25147) ([Denny Crane](https://github.com/den-crane)). +* Update Roaring Bitmaps just in case [#25151](https://github.com/ClickHouse/ClickHouse/pull/25151) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Move code to more appropriate place [#25152](https://github.com/ClickHouse/ClickHouse/pull/25152) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Dictionary sources add update lag option [#25161](https://github.com/ClickHouse/ClickHouse/pull/25161) ([Maksim Kita](https://github.com/kitaisreal)). +* RewriteFunctionToSubcolumnVisitor add into ya.make [#25162](https://github.com/ClickHouse/ClickHouse/pull/25162) ([Maksim Kita](https://github.com/kitaisreal)). +* Enable back the ANTLR in .sql [#25170](https://github.com/ClickHouse/ClickHouse/pull/25170) ([Ivan](https://github.com/abyss7)). +* Added ExecutablePool documentation [#25196](https://github.com/ClickHouse/ClickHouse/pull/25196) ([Maksim Kita](https://github.com/kitaisreal)). +* Do not optimize query plan for mutations. [#25197](https://github.com/ClickHouse/ClickHouse/pull/25197) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Dictionary added update field documentation [#25198](https://github.com/ClickHouse/ClickHouse/pull/25198) ([Maksim Kita](https://github.com/kitaisreal)). +* Dictionaries attribute support default nullable type [#25203](https://github.com/ClickHouse/ClickHouse/pull/25203) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix tests [#25204](https://github.com/ClickHouse/ClickHouse/pull/25204) ([Ivan](https://github.com/abyss7)). +* Try run tests with Replicated database in parallel [#25210](https://github.com/ClickHouse/ClickHouse/pull/25210) ([Alexander Tokmakov](https://github.com/tavplubix)). +* More integration tests improvements [#25212](https://github.com/ClickHouse/ClickHouse/pull/25212) ([Ilya Yatsishin](https://github.com/qoega)). +* Add function toJSONString to ya.make [#25246](https://github.com/ClickHouse/ClickHouse/pull/25246) ([Maksim Kita](https://github.com/kitaisreal)). +* Minor change [#25247](https://github.com/ClickHouse/ClickHouse/pull/25247) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add missed #include [#25248](https://github.com/ClickHouse/ClickHouse/pull/25248) ([Matwey V. Kornilov](https://github.com/matwey)). +* Add test for [#4113](https://github.com/ClickHouse/ClickHouse/issues/4113) [#25249](https://github.com/ClickHouse/ClickHouse/pull/25249) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add test for [#11535](https://github.com/ClickHouse/ClickHouse/issues/11535) [#25250](https://github.com/ClickHouse/ClickHouse/pull/25250) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#9932](https://github.com/ClickHouse/ClickHouse/issues/9932) [#25253](https://github.com/ClickHouse/ClickHouse/pull/25253) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Copy-paste some code [#25264](https://github.com/ClickHouse/ClickHouse/pull/25264) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Minor change [#25265](https://github.com/ClickHouse/ClickHouse/pull/25265) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#20315](https://github.com/ClickHouse/ClickHouse/issues/20315) [#25266](https://github.com/ClickHouse/ClickHouse/pull/25266) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add missed #include [#25267](https://github.com/ClickHouse/ClickHouse/pull/25267) ([Matwey V. Kornilov](https://github.com/matwey)). +* test for `PARTITION BY 0 * id` [#25274](https://github.com/ClickHouse/ClickHouse/pull/25274) ([Denny Crane](https://github.com/den-crane)). +* Enable TestFlows LDAP tests [#25278](https://github.com/ClickHouse/ClickHouse/pull/25278) ([vzakaznikov](https://github.com/vzakaznikov)). +* Add a test for [#17964](https://github.com/ClickHouse/ClickHouse/issues/17964) [#25285](https://github.com/ClickHouse/ClickHouse/pull/25285) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add a test for [#17367](https://github.com/ClickHouse/ClickHouse/issues/17367) [#25286](https://github.com/ClickHouse/ClickHouse/pull/25286) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove some code from KeyCondition. [#25295](https://github.com/ClickHouse/ClickHouse/pull/25295) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* CMake dictionaries disable debug info fix [#25301](https://github.com/ClickHouse/ClickHouse/pull/25301) ([Maksim Kita](https://github.com/kitaisreal)). +* Merge ext into common [#25303](https://github.com/ClickHouse/ClickHouse/pull/25303) ([Maksim Kita](https://github.com/kitaisreal)). +* test for null array orc load [#25304](https://github.com/ClickHouse/ClickHouse/pull/25304) ([Denny Crane](https://github.com/den-crane)). +* Improve Replicated database tests [#25305](https://github.com/ClickHouse/ClickHouse/pull/25305) ([Alexander Tokmakov](https://github.com/tavplubix)). +* SimpleCache key constructor improvement [#25307](https://github.com/ClickHouse/ClickHouse/pull/25307) ([Maksim Kita](https://github.com/kitaisreal)). +* Catch ErrnoException during parts cleaning [#25309](https://github.com/ClickHouse/ClickHouse/pull/25309) ([Azat Khuzhin](https://github.com/azat)). +* Fix flaky test 01520_client_print_query_id and others. [#25311](https://github.com/ClickHouse/ClickHouse/pull/25311) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix UBSan report in quantileTiming [#25314](https://github.com/ClickHouse/ClickHouse/pull/25314) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update test_ttl_replicated [#25317](https://github.com/ClickHouse/ClickHouse/pull/25317) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix `00601_kill_running_query` [#25318](https://github.com/ClickHouse/ClickHouse/pull/25318) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Use signal 15 in restart_with_latest_version [#25323](https://github.com/ClickHouse/ClickHouse/pull/25323) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Setting min_count_to_compile_expression fix [#25332](https://github.com/ClickHouse/ClickHouse/pull/25332) ([Maksim Kita](https://github.com/kitaisreal)). +* Function formatDateTime fix code comments [#25334](https://github.com/ClickHouse/ClickHouse/pull/25334) ([Maksim Kita](https://github.com/kitaisreal)). +* Improve Replicated database tests 2 [#25373](https://github.com/ClickHouse/ClickHouse/pull/25373) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Add a test for [#23163](https://github.com/ClickHouse/ClickHouse/issues/23163) [#25390](https://github.com/ClickHouse/ClickHouse/pull/25390) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Rename & reimport murmurhash sources from smhasher repo [#25400](https://github.com/ClickHouse/ClickHouse/pull/25400) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Add test from issue [#20624](https://github.com/ClickHouse/ClickHouse/issues/20624) [#25409](https://github.com/ClickHouse/ClickHouse/pull/25409) ([Vladimir C](https://github.com/vdimir)). +* Turn off WITH_COVERAGE in build with clang-tidy [#25417](https://github.com/ClickHouse/ClickHouse/pull/25417) ([Kruglov Pavel](https://github.com/Avogar)). +* Fix container-overflow in replxx during incremental search (Ctrl-R) [#25427](https://github.com/ClickHouse/ClickHouse/pull/25427) ([Azat Khuzhin](https://github.com/azat)). +* DatabaseMySQL rename [#25430](https://github.com/ClickHouse/ClickHouse/pull/25430) ([Maksim Kita](https://github.com/kitaisreal)). +* Support REPLACE DICTIONARY, CREATE OR REPLACE DICTIONARY queries [#25444](https://github.com/ClickHouse/ClickHouse/pull/25444) ([Maksim Kita](https://github.com/kitaisreal)). +* Add a test for [#8417](https://github.com/ClickHouse/ClickHouse/issues/8417) [#25446](https://github.com/ClickHouse/ClickHouse/pull/25446) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove assumeMutable from removeColumnNullability [#25454](https://github.com/ClickHouse/ClickHouse/pull/25454) ([Vladimir C](https://github.com/vdimir)). +* DataTypeLowCardinality support DataTypeInterval tests [#25458](https://github.com/ClickHouse/ClickHouse/pull/25458) ([Maksim Kita](https://github.com/kitaisreal)). +* Add run-id option to integration tests [#25459](https://github.com/ClickHouse/ClickHouse/pull/25459) ([alesapin](https://github.com/alesapin)). +* Stable NOT chain formatting [#25494](https://github.com/ClickHouse/ClickHouse/pull/25494) ([Azat Khuzhin](https://github.com/azat)). +* Fix alternative stack for SIGSEGV handling [#25509](https://github.com/ClickHouse/ClickHouse/pull/25509) ([Azat Khuzhin](https://github.com/azat)). +* Catch "Maximum parse depth" error in fuzzer [#25510](https://github.com/ClickHouse/ClickHouse/pull/25510) ([Azat Khuzhin](https://github.com/azat)). +* Fix NOT parsing [#25520](https://github.com/ClickHouse/ClickHouse/pull/25520) ([Azat Khuzhin](https://github.com/azat)). +* Catch TOO_DEEP_RECURSION in fuzzer for formatted query too [#25521](https://github.com/ClickHouse/ClickHouse/pull/25521) ([Azat Khuzhin](https://github.com/azat)). +* Fix some bugs in integration tests [#25525](https://github.com/ClickHouse/ClickHouse/pull/25525) ([alesapin](https://github.com/alesapin)). +* Fix query progress [#25545](https://github.com/ClickHouse/ClickHouse/pull/25545) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add test for progress bar [#25551](https://github.com/ClickHouse/ClickHouse/pull/25551) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix some tests [#25564](https://github.com/ClickHouse/ClickHouse/pull/25564) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix flaky test 01249_flush_interactive.sh [#25565](https://github.com/ClickHouse/ClickHouse/pull/25565) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* METR-41529 [#25568](https://github.com/ClickHouse/ClickHouse/pull/25568) ([egatov](https://github.com/egatov)). +* clickhouse-client: fix NULL dereference for --param w/o value [#25579](https://github.com/ClickHouse/ClickHouse/pull/25579) ([Azat Khuzhin](https://github.com/azat)). +* Remove only symlinks during force_restore_data of Atomic engine [#25582](https://github.com/ClickHouse/ClickHouse/pull/25582) ([Azat Khuzhin](https://github.com/azat)). +* clickhouse-test: use basename (instead of full path) for log_comment [#25583](https://github.com/ClickHouse/ClickHouse/pull/25583) ([Azat Khuzhin](https://github.com/azat)). +* Fix typo in hardware failure error message [#25584](https://github.com/ClickHouse/ClickHouse/pull/25584) ([Stas Kelvich](https://github.com/kelvich)). +* Small change in Roaring Bitmaps [#25604](https://github.com/ClickHouse/ClickHouse/pull/25604) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix ANTLR parser and enable it back in CI [#25638](https://github.com/ClickHouse/ClickHouse/pull/25638) ([Ivan](https://github.com/abyss7)). +* Fix alternative stack (MINSIGSTKSZ) and stack size check under osx [#25654](https://github.com/ClickHouse/ClickHouse/pull/25654) ([Azat Khuzhin](https://github.com/azat)). +* Enable MurmurHash in ArcadiaBuild [#25666](https://github.com/ClickHouse/ClickHouse/pull/25666) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* Add working test [#25720](https://github.com/ClickHouse/ClickHouse/pull/25720) ([alesapin](https://github.com/alesapin)). +* Compile expressions updated documentation [#25725](https://github.com/ClickHouse/ClickHouse/pull/25725) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix some more missed includes [#25732](https://github.com/ClickHouse/ClickHouse/pull/25732) ([Matwey V. Kornilov](https://github.com/matwey)). +* Fix native macOS (Xcode) builds [#25736](https://github.com/ClickHouse/ClickHouse/pull/25736) ([Denis Glazachev](https://github.com/traceon)). +* Fix arcadia [#25738](https://github.com/ClickHouse/ClickHouse/pull/25738) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Change error code in LIVE VIEW [#25739](https://github.com/ClickHouse/ClickHouse/pull/25739) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + #### Testing Improvement * * Add join related options to stress tests. [#25200](https://github.com/ClickHouse/ClickHouse/pull/25200) ([Vladimir C](https://github.com/vdimir)). diff --git a/docs/changelogs/v21.7.10.4-stable.md b/docs/changelogs/v21.7.10.4-stable.md index 9056da8ac89..963ac6d6ac7 100644 --- a/docs/changelogs/v21.7.10.4-stable.md +++ b/docs/changelogs/v21.7.10.4-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.10.4-stable FIXME as compared to v21.7.9.7-stable #### Improvement @@ -17,3 +24,11 @@ * Backported in [#28947](https://github.com/ClickHouse/ClickHouse/issues/28947): Fix reading of subcolumns from compact parts. [#28873](https://github.com/ClickHouse/ClickHouse/pull/28873) ([Anton Popov](https://github.com/CurtizJ)). * Backported in [#28931](https://github.com/ClickHouse/ClickHouse/issues/28931): Fix higher-order array functions (`SIGSEGV` for `arrayCompact`/`ILLEGAL_COLUMN` for `arrayDifference`/`arrayCumSumNonNegative`) with consts. [#28904](https://github.com/ClickHouse/ClickHouse/pull/28904) ([Azat Khuzhin](https://github.com/azat)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add more checks for LC in native protocol. [#27827](https://github.com/ClickHouse/ClickHouse/pull/27827) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* CHJIT custom memory manager [#28236](https://github.com/ClickHouse/ClickHouse/pull/28236) ([Maksim Kita](https://github.com/kitaisreal)). +* Function dictGet default implementation for nulls [#28530](https://github.com/ClickHouse/ClickHouse/pull/28530) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix usage of nested columns with non-array columns with the same prefix [2] [#28762](https://github.com/ClickHouse/ClickHouse/pull/28762) ([Anton Popov](https://github.com/CurtizJ)). +* Lower compiled_expression_cache_size to 128MB [#28816](https://github.com/ClickHouse/ClickHouse/pull/28816) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.7.11.3-stable.md b/docs/changelogs/v21.7.11.3-stable.md index 66672204713..e130550fb9c 100644 --- a/docs/changelogs/v21.7.11.3-stable.md +++ b/docs/changelogs/v21.7.11.3-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.11.3-stable FIXME as compared to v21.7.10.4-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) @@ -5,3 +12,9 @@ * Backported in [#29024](https://github.com/ClickHouse/ClickHouse/issues/29024): Fix the number of threads used in `GLOBAL IN` subquery (it was executed in single threads since [#19414](https://github.com/ClickHouse/ClickHouse/issues/19414) bugfix). [#28997](https://github.com/ClickHouse/ClickHouse/pull/28997) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#29195](https://github.com/ClickHouse/ClickHouse/issues/29195): Fix segfault while inserting into column with type LowCardinality(Nullable) in Avro input format. [#29132](https://github.com/ClickHouse/ClickHouse/pull/29132) ([Kruglov Pavel](https://github.com/Avogar)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Don not add const group by key for query with only having. [#28975](https://github.com/ClickHouse/ClickHouse/pull/28975) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merging [#27963](https://github.com/ClickHouse/ClickHouse/issues/27963) [#29063](https://github.com/ClickHouse/ClickHouse/pull/29063) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix terminate on uncaught exception [#29216](https://github.com/ClickHouse/ClickHouse/pull/29216) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v21.7.2.7-stable.md b/docs/changelogs/v21.7.2.7-stable.md index a7af0fed667..5c772eab664 100644 --- a/docs/changelogs/v21.7.2.7-stable.md +++ b/docs/changelogs/v21.7.2.7-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.2.7-stable FIXME as compared to v21.7.1.7283-prestable #### Improvement @@ -15,3 +22,8 @@ * Backported in [#26010](https://github.com/ClickHouse/ClickHouse/issues/26010): Fix formatting of type `Map` with integer keys to `JSON`. [#25982](https://github.com/ClickHouse/ClickHouse/pull/25982) ([Anton Popov](https://github.com/CurtizJ)). * Backported in [#26097](https://github.com/ClickHouse/ClickHouse/issues/26097): Fix wrong thread estimation for right subquery join in some cases. Close [#24075](https://github.com/ClickHouse/ClickHouse/issues/24075). [#26052](https://github.com/ClickHouse/ClickHouse/pull/26052) ([Vladimir C](https://github.com/vdimir)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* ExpressionCache destruction fix [#25835](https://github.com/ClickHouse/ClickHouse/pull/25835) ([Maksim Kita](https://github.com/kitaisreal)). +* Proper fix of serialization of type Map to JSON [#26048](https://github.com/ClickHouse/ClickHouse/pull/26048) ([Anton Popov](https://github.com/CurtizJ)). + diff --git a/docs/changelogs/v21.7.3.14-stable.md b/docs/changelogs/v21.7.3.14-stable.md index d24b7bcbf39..0ad15f765a1 100644 --- a/docs/changelogs/v21.7.3.14-stable.md +++ b/docs/changelogs/v21.7.3.14-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.3.14-stable FIXME as compared to v21.7.2.7-stable #### Bug Fix @@ -9,3 +16,7 @@ * Backported in [#26229](https://github.com/ClickHouse/ClickHouse/issues/26229): Remove excessive newline in `thread_name` column in `system.stack_trace` table. This fixes [#24124](https://github.com/ClickHouse/ClickHouse/issues/24124). [#26210](https://github.com/ClickHouse/ClickHouse/pull/26210) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Fix throwing exception when iterate over non existing remote directory. [#26296](https://github.com/ClickHouse/ClickHouse/pull/26296) ([ianton-ru](https://github.com/ianton-ru)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Remove misleading stderr output [#26155](https://github.com/ClickHouse/ClickHouse/pull/26155) ([Kseniia Sumarokova](https://github.com/kssenii)). + diff --git a/docs/changelogs/v21.7.4.18-stable.md b/docs/changelogs/v21.7.4.18-stable.md index 7bc08e2a0e3..34d457015cb 100644 --- a/docs/changelogs/v21.7.4.18-stable.md +++ b/docs/changelogs/v21.7.4.18-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.4.18-stable FIXME as compared to v21.7.3.14-stable #### Bug Fix diff --git a/docs/changelogs/v21.7.5.29-stable.md b/docs/changelogs/v21.7.5.29-stable.md index 3f24e3eded9..6b01d912e17 100644 --- a/docs/changelogs/v21.7.5.29-stable.md +++ b/docs/changelogs/v21.7.5.29-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.5.29-stable FIXME as compared to v21.7.4.18-stable #### Performance Improvement @@ -14,3 +21,10 @@ * Backported in [#26772](https://github.com/ClickHouse/ClickHouse/issues/26772): Sometimes SET ROLE could work incorrectly, this PR fixes that. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)). * Backported in [#26907](https://github.com/ClickHouse/ClickHouse/issues/26907): Fix library-bridge ids load. [#26834](https://github.com/ClickHouse/ClickHouse/pull/26834) ([Kseniia Sumarokova](https://github.com/kssenii)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Remove MySQLWireContext [#26429](https://github.com/ClickHouse/ClickHouse/pull/26429) ([Vitaly Baranov](https://github.com/vitlibar)). +* Update link to dpkg-deb in dockerfiles [#26497](https://github.com/ClickHouse/ClickHouse/pull/26497) ([Vladimir C](https://github.com/vdimir)). +* Try fix rabbitmq tests [#26826](https://github.com/ClickHouse/ClickHouse/pull/26826) ([Kseniia Sumarokova](https://github.com/kssenii)). +* One more library bridge fix [#26873](https://github.com/ClickHouse/ClickHouse/pull/26873) ([Kseniia Sumarokova](https://github.com/kssenii)). + diff --git a/docs/changelogs/v21.7.6.39-stable.md b/docs/changelogs/v21.7.6.39-stable.md index a7913aca193..03afc95515e 100644 --- a/docs/changelogs/v21.7.6.39-stable.md +++ b/docs/changelogs/v21.7.6.39-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.6.39-stable FIXME as compared to v21.7.5.29-stable #### Bug Fix @@ -12,3 +19,7 @@ * Backported in [#27156](https://github.com/ClickHouse/ClickHouse/issues/27156): Fix synchronization in GRPCServer This PR fixes [#27024](https://github.com/ClickHouse/ClickHouse/issues/27024). [#27064](https://github.com/ClickHouse/ClickHouse/pull/27064) ([Vitaly Baranov](https://github.com/vitlibar)). * Backported in [#27261](https://github.com/ClickHouse/ClickHouse/issues/27261): In rare cases `system.detached_parts` table might contain incorrect information for some parts, it's fixed. Fixes [#27114](https://github.com/ClickHouse/ClickHouse/issues/27114). [#27183](https://github.com/ClickHouse/ClickHouse/pull/27183) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* library bridge fixes [#27060](https://github.com/ClickHouse/ClickHouse/pull/27060) ([Kseniia Sumarokova](https://github.com/kssenii)). + diff --git a/docs/changelogs/v21.7.7.47-stable.md b/docs/changelogs/v21.7.7.47-stable.md index f81abca2600..3c7bf09433e 100644 --- a/docs/changelogs/v21.7.7.47-stable.md +++ b/docs/changelogs/v21.7.7.47-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.7.47-stable FIXME as compared to v21.7.6.39-stable #### Bug Fix @@ -6,3 +13,12 @@ * Backported in [#27418](https://github.com/ClickHouse/ClickHouse/issues/27418): Fix `Cannot find column` error for queries with sampling. Was introduced in [#24574](https://github.com/ClickHouse/ClickHouse/issues/24574). Fixes [#26522](https://github.com/ClickHouse/ClickHouse/issues/26522). [#27301](https://github.com/ClickHouse/ClickHouse/pull/27301) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#27416](https://github.com/ClickHouse/ClickHouse/issues/27416): Fixed incorrect validation of partition id for MergeTree tables that created with old syntax. [#27328](https://github.com/ClickHouse/ClickHouse/pull/27328) ([Alexander Tokmakov](https://github.com/tavplubix)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix parallel execution of integration tests [#25986](https://github.com/ClickHouse/ClickHouse/pull/25986) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix mysql_kill_sync_thread_restore_test [#26673](https://github.com/ClickHouse/ClickHouse/pull/26673) ([Vladimir C](https://github.com/vdimir)). +* Wait for self datasource to be initialized in test_jdbc_bridge [#26827](https://github.com/ClickHouse/ClickHouse/pull/26827) ([Ilya Yatsishin](https://github.com/qoega)). +* Better integration tests [#26894](https://github.com/ClickHouse/ClickHouse/pull/26894) ([Ilya Yatsishin](https://github.com/qoega)). +* Implement `legacy_column_name_of_tuple_literal` in a less intrusive way [#27153](https://github.com/ClickHouse/ClickHouse/pull/27153) ([Anton Popov](https://github.com/CurtizJ)). +* Update PVS checksum [#27317](https://github.com/ClickHouse/ClickHouse/pull/27317) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v21.7.8.58-stable.md b/docs/changelogs/v21.7.8.58-stable.md index aea1ae083f0..4f99e5439a4 100644 --- a/docs/changelogs/v21.7.8.58-stable.md +++ b/docs/changelogs/v21.7.8.58-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.8.58-stable FIXME as compared to v21.7.7.47-stable #### Bug Fix @@ -10,3 +17,8 @@ * Backported in [#27697](https://github.com/ClickHouse/ClickHouse/issues/27697): Fix bad type cast when functions like `arrayHas` are applied to arrays of LowCardinality of Nullable of different non-numeric types like `DateTime` and `DateTime64`. In previous versions bad cast occurs. In new version it will lead to exception. This closes [#26330](https://github.com/ClickHouse/ClickHouse/issues/26330). [#27682](https://github.com/ClickHouse/ClickHouse/pull/27682) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Backported in [#27748](https://github.com/ClickHouse/ClickHouse/issues/27748): Remove duplicated source files in CMakeLists.txt in arrow-cmake. [#27736](https://github.com/ClickHouse/ClickHouse/pull/27736) ([李扬](https://github.com/taiyang-li)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix killing unstopped containers in integration tests. [#26818](https://github.com/ClickHouse/ClickHouse/pull/26818) ([Vitaly Baranov](https://github.com/vitlibar)). +* Revert [#24095](https://github.com/ClickHouse/ClickHouse/issues/24095). User-level settings will affect queries from view. [#27227](https://github.com/ClickHouse/ClickHouse/pull/27227) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.7.9.7-stable.md b/docs/changelogs/v21.7.9.7-stable.md index 0d1a2a521e7..1d859b08da5 100644 --- a/docs/changelogs/v21.7.9.7-stable.md +++ b/docs/changelogs/v21.7.9.7-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.7.9.7-stable FIXME as compared to v21.7.8.58-stable #### Improvement @@ -25,3 +32,15 @@ * Backported in [#28288](https://github.com/ClickHouse/ClickHouse/issues/28288): Fix reading of custom TLD w/o new line at EOF. [#28213](https://github.com/ClickHouse/ClickHouse/pull/28213) ([Azat Khuzhin](https://github.com/azat)). * Backported in [#28295](https://github.com/ClickHouse/ClickHouse/issues/28295): Fix inconsistent result in queries with `ORDER BY` and `Merge` tables with enabled setting `optimize_read_in_order`. [#28266](https://github.com/ClickHouse/ClickHouse/pull/28266) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix prometheus metric name [#26140](https://github.com/ClickHouse/ClickHouse/pull/26140) ([Vladimir C](https://github.com/vdimir)). +* Fix flacky test [#27383](https://github.com/ClickHouse/ClickHouse/pull/27383) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix throw without exception in MySQL source. [#28027](https://github.com/ClickHouse/ClickHouse/pull/28027) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix race between REPLACE PARTITION and MOVE PARTITION [#28035](https://github.com/ClickHouse/ClickHouse/pull/28035) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Follow-up to [#28016](https://github.com/ClickHouse/ClickHouse/issues/28016) [#28036](https://github.com/ClickHouse/ClickHouse/pull/28036) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Set version of tzlocal to 2.1 [#28063](https://github.com/ClickHouse/ClickHouse/pull/28063) ([Vitaly Baranov](https://github.com/vitlibar)). +* ODBC connection holder fix dangling reference [#28298](https://github.com/ClickHouse/ClickHouse/pull/28298) ([Maksim Kita](https://github.com/kitaisreal)). +* Another try to fix BackgroundPoolTask decrement. [#28353](https://github.com/ClickHouse/ClickHouse/pull/28353) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* More accurate check that zk root exists. [#28412](https://github.com/ClickHouse/ClickHouse/pull/28412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.8.1.7409-prestable.md b/docs/changelogs/v21.8.1.7409-prestable.md index e703d227603..96f13713984 100644 --- a/docs/changelogs/v21.8.1.7409-prestable.md +++ b/docs/changelogs/v21.8.1.7409-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.1.7409-prestable FIXME as compared to v21.7.1.7283-prestable #### Backward Incompatible Change @@ -86,3 +93,62 @@ * NO CL ENTRY: '[ImgBot] Optimize images'. [#26054](https://github.com/ClickHouse/ClickHouse/pull/26054) ([imgbot[bot]](https://github.com/apps/imgbot)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix hang and incorrect exit code returned from clickhouse-test [#25537](https://github.com/ClickHouse/ClickHouse/pull/25537) ([nvartolomei](https://github.com/nvartolomei)). +* Remove PrewhereDAGInfo. [#25719](https://github.com/ClickHouse/ClickHouse/pull/25719) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix 01641_memory_tracking_insert_optimize [#25731](https://github.com/ClickHouse/ClickHouse/pull/25731) ([Azat Khuzhin](https://github.com/azat)). +* Separate log files for separate runs in stress test [#25741](https://github.com/ClickHouse/ClickHouse/pull/25741) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix slow performance test [#25742](https://github.com/ClickHouse/ClickHouse/pull/25742) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* DatabaseAtomic EXCHANGE DICTIONARIES fix test [#25753](https://github.com/ClickHouse/ClickHouse/pull/25753) ([Maksim Kita](https://github.com/kitaisreal)). +* Try fix flacky rabbitmq test [#25756](https://github.com/ClickHouse/ClickHouse/pull/25756) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add a test for [#13993](https://github.com/ClickHouse/ClickHouse/issues/13993) [#25758](https://github.com/ClickHouse/ClickHouse/pull/25758) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Set follow-fork-mode child for gdb in stress/fasttest/fuzzer [#25769](https://github.com/ClickHouse/ClickHouse/pull/25769) ([Azat Khuzhin](https://github.com/azat)). +* Ignore TOO_DEEP_RECURSION server exception during fuzzing [#25770](https://github.com/ClickHouse/ClickHouse/pull/25770) ([Azat Khuzhin](https://github.com/azat)). +* Add comments for VERSION_REVISION vs DBMS_TCP_PROTOCOL_VERSION [#25771](https://github.com/ClickHouse/ClickHouse/pull/25771) ([Azat Khuzhin](https://github.com/azat)). +* Fix flaky test and wrong message [#25772](https://github.com/ClickHouse/ClickHouse/pull/25772) ([alesapin](https://github.com/alesapin)). +* MaterializeMySQL: Improved column comments support [#25781](https://github.com/ClickHouse/ClickHouse/pull/25781) ([Storozhuk Kostiantyn](https://github.com/sand6255)). +* Fix ANTRL merge_prewhere_table test [#25782](https://github.com/ClickHouse/ClickHouse/pull/25782) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove dead code from VirtualColumnUtils.cpp [#25787](https://github.com/ClickHouse/ClickHouse/pull/25787) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix some typos in Storage classes [#25796](https://github.com/ClickHouse/ClickHouse/pull/25796) ([Raúl Marín](https://github.com/Algunenano)). +* Fix DateLUT on Darwin [#25803](https://github.com/ClickHouse/ClickHouse/pull/25803) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Better test_version_update_after_mutation [#25810](https://github.com/ClickHouse/ClickHouse/pull/25810) ([alesapin](https://github.com/alesapin)). +* Collect stderr.log and stdout.log in all integration tests by default. [#25816](https://github.com/ClickHouse/ClickHouse/pull/25816) ([Vitaly Baranov](https://github.com/vitlibar)). +* METR-41529 [#25819](https://github.com/ClickHouse/ClickHouse/pull/25819) ([egatov](https://github.com/egatov)). +* tests/integration: use iptables --wait [#25823](https://github.com/ClickHouse/ClickHouse/pull/25823) ([Azat Khuzhin](https://github.com/azat)). +* Add a test for [#25611](https://github.com/ClickHouse/ClickHouse/issues/25611) [#25831](https://github.com/ClickHouse/ClickHouse/pull/25831) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix odbc test [#25834](https://github.com/ClickHouse/ClickHouse/pull/25834) ([Kseniia Sumarokova](https://github.com/kssenii)). +* ExpressionCache destruction fix [#25835](https://github.com/ClickHouse/ClickHouse/pull/25835) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix performance tests after converting ProfileEvents to Map type [#25837](https://github.com/ClickHouse/ClickHouse/pull/25837) ([Azat Khuzhin](https://github.com/azat)). +* Correct messages in integration tests. [#25861](https://github.com/ClickHouse/ClickHouse/pull/25861) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix typo in the test 00900_orc_arrow_parquet_maps [#25874](https://github.com/ClickHouse/ClickHouse/pull/25874) ([Kruglov Pavel](https://github.com/Avogar)). +* Improve logging in integration tests. [#25899](https://github.com/ClickHouse/ClickHouse/pull/25899) ([Vitaly Baranov](https://github.com/vitlibar)). +* kerberized HDFS test fix if run in parallel [#25908](https://github.com/ClickHouse/ClickHouse/pull/25908) ([Ilya Golshtein](https://github.com/ilejn)). +* fix special build on clang 11 [#25912](https://github.com/ClickHouse/ClickHouse/pull/25912) ([flynn](https://github.com/ucasfl)). +* Remove obsolete code from init script [#25920](https://github.com/ClickHouse/ClickHouse/pull/25920) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* FunctionInitializeAggregation build fix [#25922](https://github.com/ClickHouse/ClickHouse/pull/25922) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix clang tidy build check [#25939](https://github.com/ClickHouse/ClickHouse/pull/25939) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Build subquery in replaceJoinedTable without parsing [#25941](https://github.com/ClickHouse/ClickHouse/pull/25941) ([Vladimir C](https://github.com/vdimir)). +* Remove experimental ANTLR parser [#25942](https://github.com/ClickHouse/ClickHouse/pull/25942) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Follow-up for [#20470](https://github.com/ClickHouse/ClickHouse/issues/20470) [#25975](https://github.com/ClickHouse/ClickHouse/pull/25975) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Correct test [#25984](https://github.com/ClickHouse/ClickHouse/pull/25984) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix parallel execution of integration tests [#25986](https://github.com/ClickHouse/ClickHouse/pull/25986) ([Vitaly Baranov](https://github.com/vitlibar)). +* Compile aggregate functions perf tests fix [#25989](https://github.com/ClickHouse/ClickHouse/pull/25989) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix alter of settings in `MergeTree` tables [#25995](https://github.com/ClickHouse/ClickHouse/pull/25995) ([Anton Popov](https://github.com/CurtizJ)). +* Fix arcadia [#26002](https://github.com/ClickHouse/ClickHouse/pull/26002) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove old code [#26014](https://github.com/ClickHouse/ClickHouse/pull/26014) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* FunctionsLogical const result for non const arguments fix [#26018](https://github.com/ClickHouse/ClickHouse/pull/26018) ([Maksim Kita](https://github.com/kitaisreal)). +* FunctionSQLJSON ContextPtr build fix [#26022](https://github.com/ClickHouse/ClickHouse/pull/26022) ([Maksim Kita](https://github.com/kitaisreal)). +* Replace print() with logging.debug() in integration tests. [#26023](https://github.com/ClickHouse/ClickHouse/pull/26023) ([Vitaly Baranov](https://github.com/vitlibar)). +* Try to fix some flaky tests [#26032](https://github.com/ClickHouse/ClickHouse/pull/26032) ([Anton Popov](https://github.com/CurtizJ)). +* Fix for ZK watch metric drift in rare conditions [#26034](https://github.com/ClickHouse/ClickHouse/pull/26034) ([nvartolomei](https://github.com/nvartolomei)). +* AsynchronousMetrics: Don't assume temperature is always positive [#26045](https://github.com/ClickHouse/ClickHouse/pull/26045) ([Raúl Marín](https://github.com/Algunenano)). +* Proper fix of serialization of type Map to JSON [#26048](https://github.com/ClickHouse/ClickHouse/pull/26048) ([Anton Popov](https://github.com/CurtizJ)). +* ClickHouse dictionary source secure setting added documentation [#26055](https://github.com/ClickHouse/ClickHouse/pull/26055) ([Maksim Kita](https://github.com/kitaisreal)). +* Add changelog for 21.7 [#26057](https://github.com/ClickHouse/ClickHouse/pull/26057) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix 01791_dist_INSERT_block_structure_mismatch flakiness [#26058](https://github.com/ClickHouse/ClickHouse/pull/26058) ([Azat Khuzhin](https://github.com/azat)). +* Fix logical error with signed and unsigned offset in WindowFrame::checkValid [#26072](https://github.com/ClickHouse/ClickHouse/pull/26072) ([Vladimir C](https://github.com/vdimir)). +* Remove unused code [#26077](https://github.com/ClickHouse/ClickHouse/pull/26077) ([Anton Popov](https://github.com/CurtizJ)). +* Disabling annoying copier tests [#26099](https://github.com/ClickHouse/ClickHouse/pull/26099) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Make graph pipeline rendering compatible with Dagre.JS [#26114](https://github.com/ClickHouse/ClickHouse/pull/26114) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + diff --git a/docs/changelogs/v21.8.10.19-lts.md b/docs/changelogs/v21.8.10.19-lts.md index 92347642ffa..3e73e7892ec 100644 --- a/docs/changelogs/v21.8.10.19-lts.md +++ b/docs/changelogs/v21.8.10.19-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.10.19-lts FIXME as compared to v21.8.9.13-lts #### Improvement @@ -10,3 +17,7 @@ * Backported in [#30333](https://github.com/ClickHouse/ClickHouse/issues/30333): * Allow identifiers staring with numbers in multiple joins. [#30230](https://github.com/ClickHouse/ClickHouse/pull/30230) ([Vladimir C](https://github.com/vdimir)). * Backported in [#30377](https://github.com/ClickHouse/ClickHouse/issues/30377): fix replaceRegexpAll bug. [#30292](https://github.com/ClickHouse/ClickHouse/pull/30292) ([Memo](https://github.com/Joeywzr)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix ca-bundle.crt in kerberized_hadoop/Dockerfile [#30358](https://github.com/ClickHouse/ClickHouse/pull/30358) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v21.8.11.4-lts.md b/docs/changelogs/v21.8.11.4-lts.md index e36d75c32ea..644a9ece633 100644 --- a/docs/changelogs/v21.8.11.4-lts.md +++ b/docs/changelogs/v21.8.11.4-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.11.4-lts FIXME as compared to v21.8.10.19-lts #### New Feature @@ -38,3 +45,10 @@ * Backported in [#31132](https://github.com/ClickHouse/ClickHouse/issues/31132): Fix JSONValue/Query with quoted identifiers. This allows to have spaces in json path. Closes [#30971](https://github.com/ClickHouse/ClickHouse/issues/30971). [#31003](https://github.com/ClickHouse/ClickHouse/pull/31003) ([Kseniia Sumarokova](https://github.com/kssenii)). * Backported in [#31372](https://github.com/ClickHouse/ClickHouse/issues/31372): Fix StorageMerge with aliases and where (it did not work before at all). Closes [#28802](https://github.com/ClickHouse/ClickHouse/issues/28802). [#31044](https://github.com/ClickHouse/ClickHouse/pull/31044) ([Kseniia Sumarokova](https://github.com/kssenii)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix assert in table function `merge` with database regexp [#29355](https://github.com/ClickHouse/ClickHouse/pull/29355) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* AddDefaultDatabaseVisitor support dictGet [#29650](https://github.com/ClickHouse/ClickHouse/pull/29650) ([Maksim Kita](https://github.com/kitaisreal)). +* StorageDictionary fix potential configuration race [#30502](https://github.com/ClickHouse/ClickHouse/pull/30502) ([Maksim Kita](https://github.com/kitaisreal)). +* BloomFilter index check fix [#31334](https://github.com/ClickHouse/ClickHouse/pull/31334) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.8.12.29-lts.md b/docs/changelogs/v21.8.12.29-lts.md index 63b34c367f3..3dea113485d 100644 --- a/docs/changelogs/v21.8.12.29-lts.md +++ b/docs/changelogs/v21.8.12.29-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.12.29-lts FIXME as compared to v21.8.11.4-lts #### Performance Improvement @@ -22,3 +29,7 @@ * Backported in [#31890](https://github.com/ClickHouse/ClickHouse/issues/31890): Fix possible assertion `../src/IO/ReadBuffer.h:58: bool DB::ReadBuffer::next(): Assertion '!hasPendingData()' failed.` in TSKV format. [#31804](https://github.com/ClickHouse/ClickHouse/pull/31804) ([Kruglov Pavel](https://github.com/Avogar)). * Backported in [#31910](https://github.com/ClickHouse/ClickHouse/issues/31910): Fix functions `empty` and `notEmpty` with arguments of `UUID` type. Fixes [#31819](https://github.com/ClickHouse/ClickHouse/issues/31819). [#31883](https://github.com/ClickHouse/ClickHouse/pull/31883) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Support toUInt8/toInt8 for if constant condition optimization. [#31866](https://github.com/ClickHouse/ClickHouse/pull/31866) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.8.13.6-lts.md b/docs/changelogs/v21.8.13.6-lts.md index 06e8c366ff2..1911de83009 100644 --- a/docs/changelogs/v21.8.13.6-lts.md +++ b/docs/changelogs/v21.8.13.6-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.13.6-lts FIXME as compared to v21.8.12.29-lts #### Bug Fix @@ -27,3 +34,15 @@ * NO CL ENTRY: 'fix json error after downgrade'. [#33166](https://github.com/ClickHouse/ClickHouse/pull/33166) ([bullet1337](https://github.com/bullet1337)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix data race in ProtobufSchemas [#27822](https://github.com/ClickHouse/ClickHouse/pull/27822) ([filimonov](https://github.com/filimonov)). +* Column default dictGet identifier fix [#28863](https://github.com/ClickHouse/ClickHouse/pull/28863) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix possible Pipeline stuck in case of StrictResize processor. [#32270](https://github.com/ClickHouse/ClickHouse/pull/32270) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix arraySlice with null args. [#32456](https://github.com/ClickHouse/ClickHouse/pull/32456) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 21.8 ExternalDictionariesLoader fix build [#32501](https://github.com/ClickHouse/ClickHouse/pull/32501) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix queries with hasColumnInTable constant condition and non existing column [#32506](https://github.com/ClickHouse/ClickHouse/pull/32506) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 21.8 ExternalDictionariesLoader fix [#32752](https://github.com/ClickHouse/ClickHouse/pull/32752) ([Maksim Kita](https://github.com/kitaisreal)). +* Merge [#33024](https://github.com/ClickHouse/ClickHouse/issues/33024) [#33061](https://github.com/ClickHouse/ClickHouse/pull/33061) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Merge [#33022](https://github.com/ClickHouse/ClickHouse/issues/33022) [#33062](https://github.com/ClickHouse/ClickHouse/pull/33062) ([Alexey Milovidov](https://github.com/alexey-milovidov)). + diff --git a/docs/changelogs/v21.8.14.5-lts.md b/docs/changelogs/v21.8.14.5-lts.md index 481327a35c9..8310573f94c 100644 --- a/docs/changelogs/v21.8.14.5-lts.md +++ b/docs/changelogs/v21.8.14.5-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.14.5-lts FIXME as compared to v21.8.13.6-lts #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v21.8.15.7-lts.md b/docs/changelogs/v21.8.15.7-lts.md index 7411fbff9ae..64da1824bcf 100644 --- a/docs/changelogs/v21.8.15.7-lts.md +++ b/docs/changelogs/v21.8.15.7-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.15.7-lts FIXME as compared to v21.8.14.5-lts #### Bug Fix (user-visible misbehaviour in official stable or prestable release) diff --git a/docs/changelogs/v21.8.2.19-prestable.md b/docs/changelogs/v21.8.2.19-prestable.md index 15726747e65..8b2bdd4e185 100644 --- a/docs/changelogs/v21.8.2.19-prestable.md +++ b/docs/changelogs/v21.8.2.19-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.2.19-prestable FIXME as compared to v21.8.1.7409-prestable #### Performance Improvement @@ -27,3 +34,10 @@ * Backported in [#26705](https://github.com/ClickHouse/ClickHouse/issues/26705): Fix potential nullptr dereference in window functions. This fixes [#25276](https://github.com/ClickHouse/ClickHouse/issues/25276). [#26668](https://github.com/ClickHouse/ClickHouse/pull/26668) ([Alexander Kuzmenkov](https://github.com/akuzm)). * Backported in [#26771](https://github.com/ClickHouse/ClickHouse/issues/26771): Sometimes SET ROLE could work incorrectly, this PR fixes that. [#26707](https://github.com/ClickHouse/ClickHouse/pull/26707) ([Vitaly Baranov](https://github.com/vitlibar)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Remove misleading stderr output [#26155](https://github.com/ClickHouse/ClickHouse/pull/26155) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Less logging in AsynchronousMetrics [#26391](https://github.com/ClickHouse/ClickHouse/pull/26391) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove MySQLWireContext [#26429](https://github.com/ClickHouse/ClickHouse/pull/26429) ([Vitaly Baranov](https://github.com/vitlibar)). +* Update link to dpkg-deb in dockerfiles [#26497](https://github.com/ClickHouse/ClickHouse/pull/26497) ([Vladimir C](https://github.com/vdimir)). + diff --git a/docs/changelogs/v21.8.3.44-lts.md b/docs/changelogs/v21.8.3.44-lts.md index 21fe655870a..12ecd521c15 100644 --- a/docs/changelogs/v21.8.3.44-lts.md +++ b/docs/changelogs/v21.8.3.44-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.3.44-lts FIXME as compared to v21.8.2.19-prestable #### Improvement @@ -26,3 +33,17 @@ * Backported in [#27419](https://github.com/ClickHouse/ClickHouse/issues/27419): /proc/info contains metrics like. [#27361](https://github.com/ClickHouse/ClickHouse/pull/27361) ([Mike Kot](https://github.com/myrrc)). * Backported in [#27472](https://github.com/ClickHouse/ClickHouse/issues/27472): fix metric BackgroundMessageBrokerSchedulePoolTask, maybe mistyped。. [#27452](https://github.com/ClickHouse/ClickHouse/pull/27452) ([Ben](https://github.com/benbiti)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix mysql_kill_sync_thread_restore_test [#26673](https://github.com/ClickHouse/ClickHouse/pull/26673) ([Vladimir C](https://github.com/vdimir)). +* Fix killing unstopped containers in integration tests. [#26818](https://github.com/ClickHouse/ClickHouse/pull/26818) ([Vitaly Baranov](https://github.com/vitlibar)). +* Try fix rabbitmq tests [#26826](https://github.com/ClickHouse/ClickHouse/pull/26826) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Wait for self datasource to be initialized in test_jdbc_bridge [#26827](https://github.com/ClickHouse/ClickHouse/pull/26827) ([Ilya Yatsishin](https://github.com/qoega)). +* One more library bridge fix [#26873](https://github.com/ClickHouse/ClickHouse/pull/26873) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Better integration tests [#26894](https://github.com/ClickHouse/ClickHouse/pull/26894) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix assertions in Replicated database [#27033](https://github.com/ClickHouse/ClickHouse/pull/27033) ([Alexander Tokmakov](https://github.com/tavplubix)). +* library bridge fixes [#27060](https://github.com/ClickHouse/ClickHouse/pull/27060) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Implement `legacy_column_name_of_tuple_literal` in a less intrusive way [#27153](https://github.com/ClickHouse/ClickHouse/pull/27153) ([Anton Popov](https://github.com/CurtizJ)). +* Revert [#24095](https://github.com/ClickHouse/ClickHouse/issues/24095). User-level settings will affect queries from view. [#27227](https://github.com/ClickHouse/ClickHouse/pull/27227) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Update PVS checksum [#27317](https://github.com/ClickHouse/ClickHouse/pull/27317) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v21.8.4.51-lts.md b/docs/changelogs/v21.8.4.51-lts.md index a8494ebb1d1..9b0dba786e5 100644 --- a/docs/changelogs/v21.8.4.51-lts.md +++ b/docs/changelogs/v21.8.4.51-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.4.51-lts FIXME as compared to v21.8.3.44-lts #### Bug Fix diff --git a/docs/changelogs/v21.8.5.7-lts.md b/docs/changelogs/v21.8.5.7-lts.md index d78eb98b472..782c93ce9b1 100644 --- a/docs/changelogs/v21.8.5.7-lts.md +++ b/docs/changelogs/v21.8.5.7-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.5.7-lts FIXME as compared to v21.8.4.51-lts #### Improvement @@ -29,3 +36,16 @@ * Backported in [#28292](https://github.com/ClickHouse/ClickHouse/issues/28292): Fix inconsistent result in queries with `ORDER BY` and `Merge` tables with enabled setting `optimize_read_in_order`. [#28266](https://github.com/ClickHouse/ClickHouse/pull/28266) ([Anton Popov](https://github.com/CurtizJ)). * Backported in [#28402](https://github.com/ClickHouse/ClickHouse/issues/28402): Fix intersecting parts due to new part had been replaced with an empty part. [#28310](https://github.com/ClickHouse/ClickHouse/pull/28310) ([Azat Khuzhin](https://github.com/azat)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix several bugs in ZooKeeper snapshots deserialization [#26127](https://github.com/ClickHouse/ClickHouse/pull/26127) ([alesapin](https://github.com/alesapin)). +* Fix prometheus metric name [#26140](https://github.com/ClickHouse/ClickHouse/pull/26140) ([Vladimir C](https://github.com/vdimir)). +* Fix flacky test [#27383](https://github.com/ClickHouse/ClickHouse/pull/27383) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix throw without exception in MySQL source. [#28027](https://github.com/ClickHouse/ClickHouse/pull/28027) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix race between REPLACE PARTITION and MOVE PARTITION [#28035](https://github.com/ClickHouse/ClickHouse/pull/28035) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Follow-up to [#28016](https://github.com/ClickHouse/ClickHouse/issues/28016) [#28036](https://github.com/ClickHouse/ClickHouse/pull/28036) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Set version of tzlocal to 2.1 [#28063](https://github.com/ClickHouse/ClickHouse/pull/28063) ([Vitaly Baranov](https://github.com/vitlibar)). +* ODBC connection holder fix dangling reference [#28298](https://github.com/ClickHouse/ClickHouse/pull/28298) ([Maksim Kita](https://github.com/kitaisreal)). +* Another try to fix BackgroundPoolTask decrement. [#28353](https://github.com/ClickHouse/ClickHouse/pull/28353) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* More accurate check that zk root exists. [#28412](https://github.com/ClickHouse/ClickHouse/pull/28412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + diff --git a/docs/changelogs/v21.8.6.15-lts.md b/docs/changelogs/v21.8.6.15-lts.md index de38572d94a..95d349dcacb 100644 --- a/docs/changelogs/v21.8.6.15-lts.md +++ b/docs/changelogs/v21.8.6.15-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.6.15-lts FIXME as compared to v21.8.5.7-lts #### Improvement @@ -23,3 +30,12 @@ * Backported in [#28948](https://github.com/ClickHouse/ClickHouse/issues/28948): Fix reading of subcolumns from compact parts. [#28873](https://github.com/ClickHouse/ClickHouse/pull/28873) ([Anton Popov](https://github.com/CurtizJ)). * Backported in [#28930](https://github.com/ClickHouse/ClickHouse/issues/28930): Fix higher-order array functions (`SIGSEGV` for `arrayCompact`/`ILLEGAL_COLUMN` for `arrayDifference`/`arrayCumSumNonNegative`) with consts. [#28904](https://github.com/ClickHouse/ClickHouse/pull/28904) ([Azat Khuzhin](https://github.com/azat)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add more checks for LC in native protocol. [#27827](https://github.com/ClickHouse/ClickHouse/pull/27827) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* CHJIT custom memory manager [#28236](https://github.com/ClickHouse/ClickHouse/pull/28236) ([Maksim Kita](https://github.com/kitaisreal)). +* Function dictGet default implementation for nulls [#28530](https://github.com/ClickHouse/ClickHouse/pull/28530) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix usage of nested columns with non-array columns with the same prefix [2] [#28762](https://github.com/ClickHouse/ClickHouse/pull/28762) ([Anton Popov](https://github.com/CurtizJ)). +* Lower compiled_expression_cache_size to 128MB [#28816](https://github.com/ClickHouse/ClickHouse/pull/28816) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix some images in release PRs [#29059](https://github.com/ClickHouse/ClickHouse/pull/29059) ([alesapin](https://github.com/alesapin)). + diff --git a/docs/changelogs/v21.8.7.22-lts.md b/docs/changelogs/v21.8.7.22-lts.md index 92ba59f13cd..31d9c15debb 100644 --- a/docs/changelogs/v21.8.7.22-lts.md +++ b/docs/changelogs/v21.8.7.22-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.7.22-lts FIXME as compared to v21.8.6.15-lts #### Bug Fix (user-visible misbehaviour in official stable or prestable release) @@ -6,3 +13,9 @@ * Backported in [#29027](https://github.com/ClickHouse/ClickHouse/issues/29027): Fix the number of threads used in `GLOBAL IN` subquery (it was executed in single threads since [#19414](https://github.com/ClickHouse/ClickHouse/issues/19414) bugfix). [#28997](https://github.com/ClickHouse/ClickHouse/pull/28997) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Backported in [#29193](https://github.com/ClickHouse/ClickHouse/issues/29193): Fix segfault while inserting into column with type LowCardinality(Nullable) in Avro input format. [#29132](https://github.com/ClickHouse/ClickHouse/pull/29132) ([Kruglov Pavel](https://github.com/Avogar)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Don not add const group by key for query with only having. [#28975](https://github.com/ClickHouse/ClickHouse/pull/28975) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merging [#27963](https://github.com/ClickHouse/ClickHouse/issues/27963) [#29063](https://github.com/ClickHouse/ClickHouse/pull/29063) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix terminate on uncaught exception [#29216](https://github.com/ClickHouse/ClickHouse/pull/29216) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v21.8.8.29-lts.md b/docs/changelogs/v21.8.8.29-lts.md index 199be63424c..b6645362139 100644 --- a/docs/changelogs/v21.8.8.29-lts.md +++ b/docs/changelogs/v21.8.8.29-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.8.29-lts FIXME as compared to v21.8.7.22-lts #### Bug Fix diff --git a/docs/changelogs/v21.8.9.13-lts.md b/docs/changelogs/v21.8.9.13-lts.md index e4cd5f45b9b..1d9b436f302 100644 --- a/docs/changelogs/v21.8.9.13-lts.md +++ b/docs/changelogs/v21.8.9.13-lts.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.8.9.13-lts FIXME as compared to v21.8.8.29-lts #### Improvement @@ -29,3 +36,9 @@ * Avoid deadlocks when reading and writting on JOIN Engine tables at the same time. [#30187](https://github.com/ClickHouse/ClickHouse/pull/30187) ([Raúl Marín](https://github.com/Algunenano)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Maybe fix livelock in ZooKeeper client [#28195](https://github.com/ClickHouse/ClickHouse/pull/28195) ([Alexander Tokmakov](https://github.com/tavplubix)). +* May be fix s3 tests [#29762](https://github.com/ClickHouse/ClickHouse/pull/29762) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update BoringSSL [#29998](https://github.com/ClickHouse/ClickHouse/pull/29998) ([Filatenkov Artur](https://github.com/FArthur-cmd)). + diff --git a/docs/changelogs/v21.9.1.8000-prestable.md b/docs/changelogs/v21.9.1.8000-prestable.md index cee357658d2..31fb71948d0 100644 --- a/docs/changelogs/v21.9.1.8000-prestable.md +++ b/docs/changelogs/v21.9.1.8000-prestable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.9.1.8000-prestable FIXME as compared to v21.8.1.7409-prestable #### Backward Incompatible Change @@ -188,3 +195,209 @@ * NO CL ENTRY: 'Revert "less sys calls #2: make vdso work again"'. [#27829](https://github.com/ClickHouse/ClickHouse/pull/27829) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * NO CL ENTRY: 'Revert "Do not miss exceptions from the ThreadPool"'. [#27844](https://github.com/ClickHouse/ClickHouse/pull/27844) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix prometheus metric name [#26140](https://github.com/ClickHouse/ClickHouse/pull/26140) ([Vladimir C](https://github.com/vdimir)). +* Add comments for the implementations of the pad functions [#26147](https://github.com/ClickHouse/ClickHouse/pull/26147) ([Vitaly Baranov](https://github.com/vitlibar)). +* Change color in client for double colon [#26152](https://github.com/ClickHouse/ClickHouse/pull/26152) ([Anton Popov](https://github.com/CurtizJ)). +* Remove misleading stderr output [#26155](https://github.com/ClickHouse/ClickHouse/pull/26155) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Merging [#26041](https://github.com/ClickHouse/ClickHouse/issues/26041). [#26180](https://github.com/ClickHouse/ClickHouse/pull/26180) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix bad code (default function argument) [#26213](https://github.com/ClickHouse/ClickHouse/pull/26213) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Support for `pread` in `ReadBufferFromFile` [#26232](https://github.com/ClickHouse/ClickHouse/pull/26232) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix ReadBufferFromS3 [#26249](https://github.com/ClickHouse/ClickHouse/pull/26249) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix output of TSV in integration tests [#26257](https://github.com/ClickHouse/ClickHouse/pull/26257) ([Anton Popov](https://github.com/CurtizJ)). +* Enum type additional support for compilation [#26258](https://github.com/ClickHouse/ClickHouse/pull/26258) ([Maksim Kita](https://github.com/kitaisreal)). +* Bump poco (now poco fork has CI via github actions) [#26262](https://github.com/ClickHouse/ClickHouse/pull/26262) ([Azat Khuzhin](https://github.com/azat)). +* Add check for sqlite database path [#26266](https://github.com/ClickHouse/ClickHouse/pull/26266) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix arcadia [#26285](https://github.com/ClickHouse/ClickHouse/pull/26285) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* yandex/clickhouse-test-base Dockerfile fix (mysql connector moved) [#26294](https://github.com/ClickHouse/ClickHouse/pull/26294) ([Ilya Golshtein](https://github.com/ilejn)). +* Improve read_file_to_stringcolumn test compatibility [#26317](https://github.com/ClickHouse/ClickHouse/pull/26317) ([Raúl Marín](https://github.com/Algunenano)). +* Make socket poll() 7x faster (by replacing epoll() with poll()) [#26323](https://github.com/ClickHouse/ClickHouse/pull/26323) ([Azat Khuzhin](https://github.com/azat)). +* Modifications to an obscure Yandex TSKV format [#26326](https://github.com/ClickHouse/ClickHouse/pull/26326) ([egatov](https://github.com/egatov)). +* Fixing RBAC sample by tests in TestFlows. [#26329](https://github.com/ClickHouse/ClickHouse/pull/26329) ([vzakaznikov](https://github.com/vzakaznikov)). +* Fix error in stress test script [#26349](https://github.com/ClickHouse/ClickHouse/pull/26349) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky integration test about "replicated max parallel fetches". [#26362](https://github.com/ClickHouse/ClickHouse/pull/26362) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Continuation of [#25774](https://github.com/ClickHouse/ClickHouse/issues/25774) [#26364](https://github.com/ClickHouse/ClickHouse/pull/26364) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Enabling all TestFlows modules except LDAP after Kerberos merge. [#26366](https://github.com/ClickHouse/ClickHouse/pull/26366) ([vzakaznikov](https://github.com/vzakaznikov)). +* Fix flaky test 01293_client_interactive_vertical_multiline_long [#26367](https://github.com/ClickHouse/ClickHouse/pull/26367) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Small bugfix in Block [#26373](https://github.com/ClickHouse/ClickHouse/pull/26373) ([Anton Popov](https://github.com/CurtizJ)). +* More integration tests improvements. [#26375](https://github.com/ClickHouse/ClickHouse/pull/26375) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix arcadia [#26378](https://github.com/ClickHouse/ClickHouse/pull/26378) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add separate step to read from remote. [#26381](https://github.com/ClickHouse/ClickHouse/pull/26381) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix calculating of intersection of access rights. [#26383](https://github.com/ClickHouse/ClickHouse/pull/26383) ([Vitaly Baranov](https://github.com/vitlibar)). +* Less logging in AsynchronousMetrics [#26391](https://github.com/ClickHouse/ClickHouse/pull/26391) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* stress tests report improvements [#26393](https://github.com/ClickHouse/ClickHouse/pull/26393) ([Azat Khuzhin](https://github.com/azat)). +* Fix failed assertion in RocksDB in case of bad_alloc exception during batch write [#26394](https://github.com/ClickHouse/ClickHouse/pull/26394) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Add integrity for loaded scripts in play.html [#26409](https://github.com/ClickHouse/ClickHouse/pull/26409) ([Vladimir C](https://github.com/vdimir)). +* Relax condition in flaky test [#26425](https://github.com/ClickHouse/ClickHouse/pull/26425) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Split FunctionsCoding into several files [#26426](https://github.com/ClickHouse/ClickHouse/pull/26426) ([Vladimir C](https://github.com/vdimir)). +* Remove MySQLWireContext [#26429](https://github.com/ClickHouse/ClickHouse/pull/26429) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix "While sending batch" (on Distributed async send) [#26430](https://github.com/ClickHouse/ClickHouse/pull/26430) ([Azat Khuzhin](https://github.com/azat)). +* Tests fixes v21.9.1.7477 [#26431](https://github.com/ClickHouse/ClickHouse/pull/26431) ([Azat Khuzhin](https://github.com/azat)). +* Fix flaky test_replicated_mutations (due to lack of threads in pool) [#26461](https://github.com/ClickHouse/ClickHouse/pull/26461) ([Azat Khuzhin](https://github.com/azat)). +* Fix undefined-behavior in DirectoryMonitor (for exponential back off) [#26464](https://github.com/ClickHouse/ClickHouse/pull/26464) ([Azat Khuzhin](https://github.com/azat)). +* Remove some code [#26468](https://github.com/ClickHouse/ClickHouse/pull/26468) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Rewrite distributed DDL to Processors [#26469](https://github.com/ClickHouse/ClickHouse/pull/26469) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky test `distributed_ddl_output_mode` [#26470](https://github.com/ClickHouse/ClickHouse/pull/26470) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Update link to dpkg-deb in dockerfiles [#26497](https://github.com/ClickHouse/ClickHouse/pull/26497) ([Vladimir C](https://github.com/vdimir)). +* SELECT String from ClickHouse as Avro string - PartialMatch [#26499](https://github.com/ClickHouse/ClickHouse/pull/26499) ([Ilya Golshtein](https://github.com/ilejn)). +* Fix arcadia [#26505](https://github.com/ClickHouse/ClickHouse/pull/26505) ([Anton Popov](https://github.com/CurtizJ)). +* Fix build under AppleClang 12 [#26509](https://github.com/ClickHouse/ClickHouse/pull/26509) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* fix lagInFrame for nullable types [#26521](https://github.com/ClickHouse/ClickHouse/pull/26521) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Handle empty testset in 'Functional stateless tests flaky check' [#26552](https://github.com/ClickHouse/ClickHouse/pull/26552) ([Vladimir C](https://github.com/vdimir)). +* Remove some streams. [#26590](https://github.com/ClickHouse/ClickHouse/pull/26590) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix flaky test 01622_defaults_for_url_engine [#26617](https://github.com/ClickHouse/ClickHouse/pull/26617) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix flaky test 01509_check_many_parallel_quorum_inserts [#26618](https://github.com/ClickHouse/ClickHouse/pull/26618) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix one possible cause of tests flakiness [#26619](https://github.com/ClickHouse/ClickHouse/pull/26619) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove some code, more C++ way [#26620](https://github.com/ClickHouse/ClickHouse/pull/26620) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix mysql_kill_sync_thread_restore_test [#26673](https://github.com/ClickHouse/ClickHouse/pull/26673) ([Vladimir C](https://github.com/vdimir)). +* Minor bugfix [#26678](https://github.com/ClickHouse/ClickHouse/pull/26678) ([Anton Popov](https://github.com/CurtizJ)). +* copypaste error [#26679](https://github.com/ClickHouse/ClickHouse/pull/26679) ([Denny Crane](https://github.com/den-crane)). +* Fix flaky test `mutation_stuck_after_replace_partition` [#26684](https://github.com/ClickHouse/ClickHouse/pull/26684) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Log errors on integration test listing error in ci-runner [#26691](https://github.com/ClickHouse/ClickHouse/pull/26691) ([Vladimir C](https://github.com/vdimir)). +* more debug checks for window functions [#26701](https://github.com/ClickHouse/ClickHouse/pull/26701) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* record server exit code in fuzzer [#26706](https://github.com/ClickHouse/ClickHouse/pull/26706) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Remove more streams. [#26713](https://github.com/ClickHouse/ClickHouse/pull/26713) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 01946_test_wrong_host_name_access: Clear DNS in the end [#26715](https://github.com/ClickHouse/ClickHouse/pull/26715) ([Raúl Marín](https://github.com/Algunenano)). +* Setting min_count_to_compile_aggregate_expression fix [#26718](https://github.com/ClickHouse/ClickHouse/pull/26718) ([Maksim Kita](https://github.com/kitaisreal)). +* Compile aggregate functions profile events fix [#26719](https://github.com/ClickHouse/ClickHouse/pull/26719) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix use after free in AsyncDrain connection from S3Cluster [#26731](https://github.com/ClickHouse/ClickHouse/pull/26731) ([Vladimir C](https://github.com/vdimir)). +* Fixed wrong error message in `S3Common` [#26738](https://github.com/ClickHouse/ClickHouse/pull/26738) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Lock mutex before access to std::cerr in clickhouse-benchmark [#26742](https://github.com/ClickHouse/ClickHouse/pull/26742) ([Vladimir C](https://github.com/vdimir)). +* Remove some output streams [#26758](https://github.com/ClickHouse/ClickHouse/pull/26758) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merging [#25960](https://github.com/ClickHouse/ClickHouse/issues/25960) (Bolonini/read_from_file) [#26777](https://github.com/ClickHouse/ClickHouse/pull/26777) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Heredoc updated tests [#26784](https://github.com/ClickHouse/ClickHouse/pull/26784) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix double unlock in RocksDB [#26786](https://github.com/ClickHouse/ClickHouse/pull/26786) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix sqlite engine attach [#26795](https://github.com/ClickHouse/ClickHouse/pull/26795) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Remove unneeded mutex during connection draining [#26807](https://github.com/ClickHouse/ClickHouse/pull/26807) ([Amos Bird](https://github.com/amosbird)). +* Make sure table is readonly when restarting fails. [#26808](https://github.com/ClickHouse/ClickHouse/pull/26808) ([Amos Bird](https://github.com/amosbird)). +* Check stdout for messages to retry in clickhouse-test [#26817](https://github.com/ClickHouse/ClickHouse/pull/26817) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix killing unstopped containers in integration tests. [#26818](https://github.com/ClickHouse/ClickHouse/pull/26818) ([Vitaly Baranov](https://github.com/vitlibar)). +* Do not start new hedged connection if query was already canceled. [#26820](https://github.com/ClickHouse/ClickHouse/pull/26820) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Try fix rabbitmq tests [#26826](https://github.com/ClickHouse/ClickHouse/pull/26826) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Wait for self datasource to be initialized in test_jdbc_bridge [#26827](https://github.com/ClickHouse/ClickHouse/pull/26827) ([Ilya Yatsishin](https://github.com/qoega)). +* Flush LazyOutputFormat on query cancel. [#26828](https://github.com/ClickHouse/ClickHouse/pull/26828) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Try fix timeout in functional tests with pytest [#26830](https://github.com/ClickHouse/ClickHouse/pull/26830) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Compile aggregate functions without key [#26845](https://github.com/ClickHouse/ClickHouse/pull/26845) ([Maksim Kita](https://github.com/kitaisreal)). +* Introduce sessions [#26864](https://github.com/ClickHouse/ClickHouse/pull/26864) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix rabbitmq sink [#26871](https://github.com/ClickHouse/ClickHouse/pull/26871) ([Kseniia Sumarokova](https://github.com/kssenii)). +* One more library bridge fix [#26873](https://github.com/ClickHouse/ClickHouse/pull/26873) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix keeper bench compilation [#26874](https://github.com/ClickHouse/ClickHouse/pull/26874) ([Raúl Marín](https://github.com/Algunenano)). +* Better integration tests [#26894](https://github.com/ClickHouse/ClickHouse/pull/26894) ([Ilya Yatsishin](https://github.com/qoega)). +* Maybe fix extremely rare `intersecting parts`. [#26896](https://github.com/ClickHouse/ClickHouse/pull/26896) ([alesapin](https://github.com/alesapin)). +* Try increase diff upper bound [#26897](https://github.com/ClickHouse/ClickHouse/pull/26897) ([Ilya Yatsishin](https://github.com/qoega)). +* Enable Arrow format in Arcadia [#26898](https://github.com/ClickHouse/ClickHouse/pull/26898) ([Vitaly Stoyan](https://github.com/vitstn)). +* Improve test compatibility (00646_url_engine and 01854_HTTP_dict_decompression) [#26915](https://github.com/ClickHouse/ClickHouse/pull/26915) ([Raúl Marín](https://github.com/Algunenano)). +* Update NuRaft [#26916](https://github.com/ClickHouse/ClickHouse/pull/26916) ([alesapin](https://github.com/alesapin)). +* 01921_datatype_date32: Adapt it to work under Pacific/Fiji [#26918](https://github.com/ClickHouse/ClickHouse/pull/26918) ([Raúl Marín](https://github.com/Algunenano)). +* Remove unused files that confuse developers [#26913](https://github.com/ClickHouse/ClickHouse/issues/26913) [#26947](https://github.com/ClickHouse/ClickHouse/pull/26947) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Set allow_remote_fs_zero_copy_replication to true by default [#26951](https://github.com/ClickHouse/ClickHouse/pull/26951) ([ianton-ru](https://github.com/ianton-ru)). +* Hold context in HedgedConnections to prevent use-after-free on settings. [#26953](https://github.com/ClickHouse/ClickHouse/pull/26953) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix client options in stress test [#26959](https://github.com/ClickHouse/ClickHouse/pull/26959) ([Alexander Tokmakov](https://github.com/tavplubix)). +* fix window function partition boundary search [#26960](https://github.com/ClickHouse/ClickHouse/pull/26960) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Print trace from std::terminate exception line-by-line to make it grep easier [#26962](https://github.com/ClickHouse/ClickHouse/pull/26962) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix system.zookeeper_log initialization [#26972](https://github.com/ClickHouse/ClickHouse/pull/26972) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Benchmark script fix [#26974](https://github.com/ClickHouse/ClickHouse/pull/26974) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix 01600_quota_by_forwarded_ip [#26975](https://github.com/ClickHouse/ClickHouse/pull/26975) ([Raúl Marín](https://github.com/Algunenano)). +* 01674_executable_dictionary_implicit_key: executable_dictionary: Use printf [#26978](https://github.com/ClickHouse/ClickHouse/pull/26978) ([Raúl Marín](https://github.com/Algunenano)). +* Remove test_keeper_server usage (for {operation/session}_timeout_ms) [#26984](https://github.com/ClickHouse/ClickHouse/pull/26984) ([Azat Khuzhin](https://github.com/azat)). +* Set insert_quorum_timeout to 1 minute for tests. [#27007](https://github.com/ClickHouse/ClickHouse/pull/27007) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Adjust 00537_quarters to be timezone independent [#27008](https://github.com/ClickHouse/ClickHouse/pull/27008) ([Raúl Marín](https://github.com/Algunenano)). +* Help with [#26424](https://github.com/ClickHouse/ClickHouse/issues/26424) [#27009](https://github.com/ClickHouse/ClickHouse/pull/27009) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Attempt to fix flaky 00705_drop_create_merge_tree [#27023](https://github.com/ClickHouse/ClickHouse/pull/27023) ([Raúl Marín](https://github.com/Algunenano)). +* Improved `runner` to use `pytest` keyword expressions [#27026](https://github.com/ClickHouse/ClickHouse/pull/27026) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Improve 01006_simpod_empty_part_single_column_write [#27028](https://github.com/ClickHouse/ClickHouse/pull/27028) ([Raúl Marín](https://github.com/Algunenano)). +* Improved logging of `hwmon` sensor errors in `AsynchronousMetrics` [#27031](https://github.com/ClickHouse/ClickHouse/pull/27031) ([Vladimir Chebotarev](https://github.com/excitoon)). +* Fix assertions in Replicated database [#27033](https://github.com/ClickHouse/ClickHouse/pull/27033) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Make test 01852_cast_operator independent of timezone [#27037](https://github.com/ClickHouse/ClickHouse/pull/27037) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Moving to TestFlows 1.7.20 that has native support for parallel tests. [#27040](https://github.com/ClickHouse/ClickHouse/pull/27040) ([vzakaznikov](https://github.com/vzakaznikov)). +* library bridge fixes [#27060](https://github.com/ClickHouse/ClickHouse/pull/27060) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Fix synchronization while updating from the config of an encrypted disk. [#27065](https://github.com/ClickHouse/ClickHouse/pull/27065) ([Vitaly Baranov](https://github.com/vitlibar)). +* Fix excessive logging in NuRaft on server shutdown [#27081](https://github.com/ClickHouse/ClickHouse/pull/27081) ([alesapin](https://github.com/alesapin)). +* Fix test_merge_tree_s3_failover with debug build [#27089](https://github.com/ClickHouse/ClickHouse/pull/27089) ([ianton-ru](https://github.com/ianton-ru)). +* Stateless tests: Keep an DNS error free log [#27092](https://github.com/ClickHouse/ClickHouse/pull/27092) ([Raúl Marín](https://github.com/Algunenano)). +* Normalize hostname in stateless tests [#27093](https://github.com/ClickHouse/ClickHouse/pull/27093) ([Amos Bird](https://github.com/amosbird)). +* Try update AMQP-CPP [#27095](https://github.com/ClickHouse/ClickHouse/pull/27095) ([Ilya Yatsishin](https://github.com/qoega)). +* Try update arrow [#27097](https://github.com/ClickHouse/ClickHouse/pull/27097) ([Ilya Yatsishin](https://github.com/qoega)). +* GlobalSubqueriesVisitor external storage check fix [#27131](https://github.com/ClickHouse/ClickHouse/pull/27131) ([Maksim Kita](https://github.com/kitaisreal)). +* Better code around decompression [#27136](https://github.com/ClickHouse/ClickHouse/pull/27136) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Add test for parsing maps with integer keys [#27146](https://github.com/ClickHouse/ClickHouse/pull/27146) ([Anton Popov](https://github.com/CurtizJ)). +* Fix arcadia src/Access gtest [#27152](https://github.com/ClickHouse/ClickHouse/pull/27152) ([Ilya Yatsishin](https://github.com/qoega)). +* Implement `legacy_column_name_of_tuple_literal` in a less intrusive way [#27153](https://github.com/ClickHouse/ClickHouse/pull/27153) ([Anton Popov](https://github.com/CurtizJ)). +* Updated readIntTextUnsafe [#27155](https://github.com/ClickHouse/ClickHouse/pull/27155) ([Maksim Kita](https://github.com/kitaisreal)). +* Safer `ReadBufferFromS3` for merges and backports [#27168](https://github.com/ClickHouse/ClickHouse/pull/27168) ([Vladimir Chebotarev](https://github.com/excitoon)). +* properly check the settings in perf test [#27190](https://github.com/ClickHouse/ClickHouse/pull/27190) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Save information about used functions/tables/... into query_log on error [#27194](https://github.com/ClickHouse/ClickHouse/pull/27194) ([Azat Khuzhin](https://github.com/azat)). +* Fix polling of /sys/block [#27195](https://github.com/ClickHouse/ClickHouse/pull/27195) ([Azat Khuzhin](https://github.com/azat)). +* Allow parallel execution of *.sql tests with ReplicatedMergeTree (by using {database} macro) [#27214](https://github.com/ClickHouse/ClickHouse/pull/27214) ([Azat Khuzhin](https://github.com/azat)). +* Fix NLP performance test [#27219](https://github.com/ClickHouse/ClickHouse/pull/27219) ([Nikolay Degterinsky](https://github.com/evillique)). +* Update changelog/README.md [#27221](https://github.com/ClickHouse/ClickHouse/pull/27221) ([filimonov](https://github.com/filimonov)). +* more careful handling of reconnects in fuzzer [#27222](https://github.com/ClickHouse/ClickHouse/pull/27222) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* ADDINCL proper fast_float directory [#27224](https://github.com/ClickHouse/ClickHouse/pull/27224) ([Yuriy Chernyshov](https://github.com/georgthegreat)). +* DatabaseReplicatedWorker logs_to_keep race fix [#27225](https://github.com/ClickHouse/ClickHouse/pull/27225) ([Maksim Kita](https://github.com/kitaisreal)). +* Revert [#24095](https://github.com/ClickHouse/ClickHouse/issues/24095). User-level settings will affect queries from view. [#27227](https://github.com/ClickHouse/ClickHouse/pull/27227) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Using formatted string literals in clickhouse-test, extracted sort key functions and stacktraces printer [#27228](https://github.com/ClickHouse/ClickHouse/pull/27228) ([Mike Kot](https://github.com/myrrc)). +* Fix polling of /sys/block in case of block devices reopened on error [#27266](https://github.com/ClickHouse/ClickHouse/pull/27266) ([Azat Khuzhin](https://github.com/azat)). +* Remove streams from dicts [#27273](https://github.com/ClickHouse/ClickHouse/pull/27273) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* 01099_operators_date_and_timestamp: Use dates that work with all available timezones [#27275](https://github.com/ClickHouse/ClickHouse/pull/27275) ([Raúl Marín](https://github.com/Algunenano)). +* Improve kafka integration test error messages [#27294](https://github.com/ClickHouse/ClickHouse/pull/27294) ([Raúl Marín](https://github.com/Algunenano)). +* Improve 00738_lock_for_inner_table stability [#27300](https://github.com/ClickHouse/ClickHouse/pull/27300) ([Raúl Marín](https://github.com/Algunenano)). +* Add and check system.projection_parts for database filter [#27303](https://github.com/ClickHouse/ClickHouse/pull/27303) ([Azat Khuzhin](https://github.com/azat)). +* Update PVS checksum [#27317](https://github.com/ClickHouse/ClickHouse/pull/27317) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix 01300_client_save_history_when_terminated_long [#27324](https://github.com/ClickHouse/ClickHouse/pull/27324) ([Raúl Marín](https://github.com/Algunenano)). +* Try update contrib/zlib-ng [#27327](https://github.com/ClickHouse/ClickHouse/pull/27327) ([Ilya Yatsishin](https://github.com/qoega)). +* Fix flacky test [#27383](https://github.com/ClickHouse/ClickHouse/pull/27383) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add and check system.mutations for database filter [#27384](https://github.com/ClickHouse/ClickHouse/pull/27384) ([Azat Khuzhin](https://github.com/azat)). +* Correct the key data type used in mapContains [#27423](https://github.com/ClickHouse/ClickHouse/pull/27423) ([Fuwang Hu](https://github.com/fuwhu)). +* Fix tests for WithMergeableStateAfterAggregationAndLimit [#27424](https://github.com/ClickHouse/ClickHouse/pull/27424) ([Azat Khuzhin](https://github.com/azat)). +* Do not miss exceptions from the ThreadPool [#27428](https://github.com/ClickHouse/ClickHouse/pull/27428) ([Azat Khuzhin](https://github.com/azat)). +* Accept error code by error name in client test hints [#27430](https://github.com/ClickHouse/ClickHouse/pull/27430) ([Azat Khuzhin](https://github.com/azat)). +* Added reserve method to Block [#27483](https://github.com/ClickHouse/ClickHouse/pull/27483) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* make it possible to cancel window functions on ctrl+c [#27487](https://github.com/ClickHouse/ClickHouse/pull/27487) ([Alexander Kuzmenkov](https://github.com/akuzm)). +* Fix Nullable const columns in JOIN [#27516](https://github.com/ClickHouse/ClickHouse/pull/27516) ([Vladimir C](https://github.com/vdimir)). +* Fix Logical error: 'Table UUID is not specified in DDL log' [#27521](https://github.com/ClickHouse/ClickHouse/pull/27521) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix 01236_graphite_mt for random timezones [#27525](https://github.com/ClickHouse/ClickHouse/pull/27525) ([Raúl Marín](https://github.com/Algunenano)). +* Add timeout for integration tests runner [#27535](https://github.com/ClickHouse/ClickHouse/pull/27535) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Fix polling of /sys/class on errors [#27554](https://github.com/ClickHouse/ClickHouse/pull/27554) ([Azat Khuzhin](https://github.com/azat)). +* fix recalculate QueryMemoryLimitExceeded event error [#27556](https://github.com/ClickHouse/ClickHouse/pull/27556) ([Ben](https://github.com/benbiti)). +* Fix 01961_roaring_memory_tracking for split builds [#27557](https://github.com/ClickHouse/ClickHouse/pull/27557) ([Raúl Marín](https://github.com/Algunenano)). +* Improve the experience of running stateless tests locally [#27561](https://github.com/ClickHouse/ClickHouse/pull/27561) ([Raúl Marín](https://github.com/Algunenano)). +* Fix integration tests [#27562](https://github.com/ClickHouse/ClickHouse/pull/27562) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Dictionaries refactor [#27566](https://github.com/ClickHouse/ClickHouse/pull/27566) ([Maksim Kita](https://github.com/kitaisreal)). +* Less Stopwatch.h [#27569](https://github.com/ClickHouse/ClickHouse/pull/27569) ([filimonov](https://github.com/filimonov)). +* Aggregation temporary disable compilation without key [#27574](https://github.com/ClickHouse/ClickHouse/pull/27574) ([Maksim Kita](https://github.com/kitaisreal)). +* Removed some data streams [#27575](https://github.com/ClickHouse/ClickHouse/pull/27575) ([Maksim Kita](https://github.com/kitaisreal)). +* Remove streams from lv [#27577](https://github.com/ClickHouse/ClickHouse/pull/27577) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* fix ProfileEvents::CompileFunction [#27606](https://github.com/ClickHouse/ClickHouse/pull/27606) ([Ben](https://github.com/benbiti)). +* Refactor mysql format check [#27609](https://github.com/ClickHouse/ClickHouse/pull/27609) ([Raúl Marín](https://github.com/Algunenano)). +* enable part_log by default [#27631](https://github.com/ClickHouse/ClickHouse/pull/27631) ([Denny Crane](https://github.com/den-crane)). +* Remove the remains of ANTLR in the tests [#27637](https://github.com/ClickHouse/ClickHouse/pull/27637) ([Raúl Marín](https://github.com/Algunenano)). +* MV: Improve text logs when doing parallel processing [#27639](https://github.com/ClickHouse/ClickHouse/pull/27639) ([Raúl Marín](https://github.com/Algunenano)). +* Fix test_sqlite_odbc_hashed_dictionary [#27647](https://github.com/ClickHouse/ClickHouse/pull/27647) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add a test for [#10735](https://github.com/ClickHouse/ClickHouse/issues/10735) [#27677](https://github.com/ClickHouse/ClickHouse/pull/27677) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Disable memory tracking for roaring bitmaps on Mac OS [#27681](https://github.com/ClickHouse/ClickHouse/pull/27681) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Use only SSE2 in "unbundled" build [#27683](https://github.com/ClickHouse/ClickHouse/pull/27683) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Remove trash [#27685](https://github.com/ClickHouse/ClickHouse/pull/27685) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Fix stress test in `~CompressedWriteBuffer` [#27686](https://github.com/ClickHouse/ClickHouse/pull/27686) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Mark tests for `DatabaseReplicated` as green [#27688](https://github.com/ClickHouse/ClickHouse/pull/27688) ([Alexey Milovidov](https://github.com/alexey-milovidov)). +* Removed DenseHashMap, DenseHashSet [#27690](https://github.com/ClickHouse/ClickHouse/pull/27690) ([Maksim Kita](https://github.com/kitaisreal)). +* Map data type parsing tests [#27692](https://github.com/ClickHouse/ClickHouse/pull/27692) ([Maksim Kita](https://github.com/kitaisreal)). +* Refactor arrayJoin check on partition expressions [#27733](https://github.com/ClickHouse/ClickHouse/pull/27733) ([Raúl Marín](https://github.com/Algunenano)). +* Fix test 01014_lazy_database_concurrent_recreate_reattach_and_show_tables [#27734](https://github.com/ClickHouse/ClickHouse/pull/27734) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Disable jemalloc under OSX [#27751](https://github.com/ClickHouse/ClickHouse/pull/27751) ([Raúl Marín](https://github.com/Algunenano)). +* Fix jemalloc under osx (zone_register() had been optimized out again) [#27753](https://github.com/ClickHouse/ClickHouse/pull/27753) ([Azat Khuzhin](https://github.com/azat)). +* Fix intersect/except with limit [#27757](https://github.com/ClickHouse/ClickHouse/pull/27757) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add HTTP string parsing test [#27762](https://github.com/ClickHouse/ClickHouse/pull/27762) ([Nikolay Degterinsky](https://github.com/evillique)). +* Fix some tests [#27785](https://github.com/ClickHouse/ClickHouse/pull/27785) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Set function divide as suitable for short-circuit in case of Nullable(Decimal) [#27788](https://github.com/ClickHouse/ClickHouse/pull/27788) ([Kruglov Pavel](https://github.com/Avogar)). +* Remove unnecessary files [#27789](https://github.com/ClickHouse/ClickHouse/pull/27789) ([Kruglov Pavel](https://github.com/Avogar)). +* Revert "Mark tests for `DatabaseReplicated` as green" [#27791](https://github.com/ClickHouse/ClickHouse/pull/27791) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Remove hardening for watches in DDLWorker [#27792](https://github.com/ClickHouse/ClickHouse/pull/27792) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Stateless test: Cleanup leftovers [#27793](https://github.com/ClickHouse/ClickHouse/pull/27793) ([Raúl Marín](https://github.com/Algunenano)). +* Dictionaries key types refactoring [#27795](https://github.com/ClickHouse/ClickHouse/pull/27795) ([Maksim Kita](https://github.com/kitaisreal)). +* Update 01822_short_circuit.reference (after merging [#27680](https://github.com/ClickHouse/ClickHouse/issues/27680)) [#27802](https://github.com/ClickHouse/ClickHouse/pull/27802) ([Azat Khuzhin](https://github.com/azat)). +* Proper shutdown global context [#27804](https://github.com/ClickHouse/ClickHouse/pull/27804) ([Amos Bird](https://github.com/amosbird)). +* 01766_todatetime64_no_timezone_arg: Use a date without timezone changes [#27810](https://github.com/ClickHouse/ClickHouse/pull/27810) ([Raúl Marín](https://github.com/Algunenano)). +* Fix setting name "allow_experimental_database_materialized_postgresql" in the error message [#27824](https://github.com/ClickHouse/ClickHouse/pull/27824) ([Denny Crane](https://github.com/den-crane)). +* Fix bug in short-circuit found by fuzzer [#27826](https://github.com/ClickHouse/ClickHouse/pull/27826) ([Kruglov Pavel](https://github.com/Avogar)). + diff --git a/docs/changelogs/v21.9.2.17-stable.md b/docs/changelogs/v21.9.2.17-stable.md index 3f132b983c0..c125fab9ed6 100644 --- a/docs/changelogs/v21.9.2.17-stable.md +++ b/docs/changelogs/v21.9.2.17-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.9.2.17-stable FIXME as compared to v21.9.1.8000-prestable #### Improvement @@ -43,3 +50,15 @@ * Backported in [#28715](https://github.com/ClickHouse/ClickHouse/issues/28715): Add Settings.Names, Settings.Values aliases for system.processes table. [#28685](https://github.com/ClickHouse/ClickHouse/pull/28685) ([Vitaly Orlov](https://github.com/orloffv)). * Backported in [#28744](https://github.com/ClickHouse/ClickHouse/issues/28744): Fix the coredump in the creation of distributed tables, when the parameters passed in are wrong. [#28686](https://github.com/ClickHouse/ClickHouse/pull/28686) ([Zhiyong Wang](https://github.com/ljcui)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Fix throw without exception in MySQL source. [#28027](https://github.com/ClickHouse/ClickHouse/pull/28027) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix race between REPLACE PARTITION and MOVE PARTITION [#28035](https://github.com/ClickHouse/ClickHouse/pull/28035) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Follow-up to [#28016](https://github.com/ClickHouse/ClickHouse/issues/28016) [#28036](https://github.com/ClickHouse/ClickHouse/pull/28036) ([Alexander Tokmakov](https://github.com/tavplubix)). +* Set version of tzlocal to 2.1 [#28063](https://github.com/ClickHouse/ClickHouse/pull/28063) ([Vitaly Baranov](https://github.com/vitlibar)). +* CHJIT custom memory manager [#28236](https://github.com/ClickHouse/ClickHouse/pull/28236) ([Maksim Kita](https://github.com/kitaisreal)). +* ODBC connection holder fix dangling reference [#28298](https://github.com/ClickHouse/ClickHouse/pull/28298) ([Maksim Kita](https://github.com/kitaisreal)). +* Another try to fix BackgroundPoolTask decrement. [#28353](https://github.com/ClickHouse/ClickHouse/pull/28353) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* More accurate check that zk root exists. [#28412](https://github.com/ClickHouse/ClickHouse/pull/28412) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Function dictGet default implementation for nulls [#28530](https://github.com/ClickHouse/ClickHouse/pull/28530) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.9.3.30-stable.md b/docs/changelogs/v21.9.3.30-stable.md index 3b665365668..5318f654f88 100644 --- a/docs/changelogs/v21.9.3.30-stable.md +++ b/docs/changelogs/v21.9.3.30-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.9.3.30-stable FIXME as compared to v21.9.2.17-stable #### Improvement @@ -14,3 +21,10 @@ * Backported in [#28927](https://github.com/ClickHouse/ClickHouse/issues/28927): Fix higher-order array functions (`SIGSEGV` for `arrayCompact`/`ILLEGAL_COLUMN` for `arrayDifference`/`arrayCumSumNonNegative`) with consts. [#28904](https://github.com/ClickHouse/ClickHouse/pull/28904) ([Azat Khuzhin](https://github.com/azat)). * Backported in [#29025](https://github.com/ClickHouse/ClickHouse/issues/29025): Fix the number of threads used in `GLOBAL IN` subquery (it was executed in single threads since [#19414](https://github.com/ClickHouse/ClickHouse/issues/19414) bugfix). [#28997](https://github.com/ClickHouse/ClickHouse/pull/28997) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Add more checks for LC in native protocol. [#27827](https://github.com/ClickHouse/ClickHouse/pull/27827) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Fix usage of nested columns with non-array columns with the same prefix [2] [#28762](https://github.com/ClickHouse/ClickHouse/pull/28762) ([Anton Popov](https://github.com/CurtizJ)). +* Lower compiled_expression_cache_size to 128MB [#28816](https://github.com/ClickHouse/ClickHouse/pull/28816) ([Maksim Kita](https://github.com/kitaisreal)). +* Column default dictGet identifier fix [#28863](https://github.com/ClickHouse/ClickHouse/pull/28863) ([Maksim Kita](https://github.com/kitaisreal)). + diff --git a/docs/changelogs/v21.9.4.35-stable.md b/docs/changelogs/v21.9.4.35-stable.md index 8b919ecb268..65ba54de6e8 100644 --- a/docs/changelogs/v21.9.4.35-stable.md +++ b/docs/changelogs/v21.9.4.35-stable.md @@ -1,6 +1,19 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.9.4.35-stable FIXME as compared to v21.9.3.30-stable #### Bug Fix (user-visible misbehaviour in official stable or prestable release) * Backported in [#29191](https://github.com/ClickHouse/ClickHouse/issues/29191): Fix segfault while inserting into column with type LowCardinality(Nullable) in Avro input format. [#29132](https://github.com/ClickHouse/ClickHouse/pull/29132) ([Kruglov Pavel](https://github.com/Avogar)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Don not add const group by key for query with only having. [#28975](https://github.com/ClickHouse/ClickHouse/pull/28975) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Merging [#27963](https://github.com/ClickHouse/ClickHouse/issues/27963) [#29063](https://github.com/ClickHouse/ClickHouse/pull/29063) ([Maksim Kita](https://github.com/kitaisreal)). +* Fix terminate on uncaught exception [#29216](https://github.com/ClickHouse/ClickHouse/pull/29216) ([Alexander Tokmakov](https://github.com/tavplubix)). + diff --git a/docs/changelogs/v21.9.5.16-stable.md b/docs/changelogs/v21.9.5.16-stable.md index 7287c58064d..305e49a8633 100644 --- a/docs/changelogs/v21.9.5.16-stable.md +++ b/docs/changelogs/v21.9.5.16-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.9.5.16-stable FIXME as compared to v21.9.4.35-stable #### Improvement @@ -46,3 +53,9 @@ * Avoid deadlocks when reading and writting on JOIN Engine tables at the same time. [#30185](https://github.com/ClickHouse/ClickHouse/pull/30185) ([Raúl Marín](https://github.com/Algunenano)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Maybe fix livelock in ZooKeeper client [#28195](https://github.com/ClickHouse/ClickHouse/pull/28195) ([Alexander Tokmakov](https://github.com/tavplubix)). +* May be fix s3 tests [#29762](https://github.com/ClickHouse/ClickHouse/pull/29762) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Update BoringSSL [#29998](https://github.com/ClickHouse/ClickHouse/pull/29998) ([Filatenkov Artur](https://github.com/FArthur-cmd)). + diff --git a/docs/changelogs/v21.9.6.24-stable.md b/docs/changelogs/v21.9.6.24-stable.md index f1d097ab646..dbecd4b3634 100644 --- a/docs/changelogs/v21.9.6.24-stable.md +++ b/docs/changelogs/v21.9.6.24-stable.md @@ -1,3 +1,10 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + ### ClickHouse release v21.9.6.24-stable FIXME as compared to v21.9.5.16-stable #### New Feature @@ -55,3 +62,10 @@ * Backported in [#32078](https://github.com/ClickHouse/ClickHouse/issues/32078): Fix a bug about function transform with decimal args. [#31839](https://github.com/ClickHouse/ClickHouse/pull/31839) ([Shuai li](https://github.com/loneylee)). * Backported in [#31907](https://github.com/ClickHouse/ClickHouse/issues/31907): Fix functions `empty` and `notEmpty` with arguments of `UUID` type. Fixes [#31819](https://github.com/ClickHouse/ClickHouse/issues/31819). [#31883](https://github.com/ClickHouse/ClickHouse/pull/31883) ([Anton Popov](https://github.com/CurtizJ)). +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* AddDefaultDatabaseVisitor support dictGet [#29650](https://github.com/ClickHouse/ClickHouse/pull/29650) ([Maksim Kita](https://github.com/kitaisreal)). +* StorageDictionary fix potential configuration race [#30502](https://github.com/ClickHouse/ClickHouse/pull/30502) ([Maksim Kita](https://github.com/kitaisreal)). +* BloomFilter index check fix [#31334](https://github.com/ClickHouse/ClickHouse/pull/31334) ([Maksim Kita](https://github.com/kitaisreal)). +* Support toUInt8/toInt8 for if constant condition optimization. [#31866](https://github.com/ClickHouse/ClickHouse/pull/31866) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). + From c068593a0d7e34e4b4660a6e3d1f08cc0ee76e37 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 23 Jun 2022 12:58:34 +0200 Subject: [PATCH 148/525] fix tests --- .../00148_summing_merge_tree_aggregate_function.sql | 1 + tests/queries/0_stateless/00214_primary_key_order.sql | 2 ++ tests/queries/0_stateless/00229_prewhere_column_missing.sql | 1 + .../0_stateless/00261_storage_aliases_and_array_join.sql | 1 + tests/queries/0_stateless/00262_alter_alias.sql | 1 + tests/queries/0_stateless/00276_sample.sql | 1 + tests/queries/0_stateless/00282_merging.sql | 2 ++ tests/queries/0_stateless/00294_shard_enums.sql | 1 + tests/queries/0_stateless/00311_array_primary_key.sql | 1 + .../0_stateless/00314_sample_factor_virtual_column.sql | 1 + tests/queries/0_stateless/00318_pk_tuple_order.sql | 1 + tests/queries/0_stateless/00319_index_for_like.sql | 1 + tests/queries/0_stateless/00321_pk_set.sql | 1 + .../queries/0_stateless/00327_summing_composite_nested.sql | 1 + tests/queries/0_stateless/00331_final_and_prewhere.sql | 1 + .../00361_shared_array_offsets_and_squash_blocks.sql | 1 + tests/queries/0_stateless/00363_defaults.sql | 1 + tests/queries/0_stateless/00386_enum_in_pk.sql | 1 + tests/queries/0_stateless/00392_enum_nested_alter.sql | 1 + .../0_stateless/00411_merge_tree_where_const_in_set.sql | 1 + .../0_stateless/00412_logical_expressions_optimizer.sql | 1 + .../00432_aggregate_function_scalars_and_constants.sql | 1 + .../0_stateless/00443_optimize_final_vertical_merge.sh | 2 +- .../queries/0_stateless/00443_preferred_block_size_bytes.sh | 6 +++--- tests/queries/0_stateless/00456_alter_nullable.sql | 2 ++ .../queries/0_stateless/00481_reading_from_last_granula.sql | 1 + .../0_stateless/00483_reading_from_array_structure.sql | 2 ++ tests/queries/0_stateless/00489_pk_subexpression.sql | 1 + tests/queries/0_stateless/00504_insert_miss_columns.sh | 4 ++-- .../00542_materialized_view_and_time_zone_tag.sql | 1 + .../0_stateless/00564_versioned_collapsing_merge_tree.sql | 1 + tests/queries/0_stateless/00565_enum_order.sh | 2 +- tests/queries/0_stateless/00579_virtual_column_and_lazy.sql | 1 + tests/queries/0_stateless/00614_array_nullable.sql | 1 + tests/queries/0_stateless/00616_final_single_part.sql | 1 + tests/queries/0_stateless/00623_truncate_table.sql | 2 ++ .../queries/0_stateless/00625_summing_merge_tree_merge.sql | 1 + .../0_stateless/00709_virtual_column_partition_id.sql | 1 + .../queries/0_stateless/00974_final_predicate_push_down.sql | 1 + tests/queries/0_stateless/01109_exchange_tables.sql | 1 + tests/queries/0_stateless/01128_generate_random_nested.sql | 2 ++ tests/queries/0_stateless/01190_full_attach_syntax.sql | 1 + tests/queries/0_stateless/01297_alter_distributed.sql | 1 + tests/queries/0_stateless/01299_alter_merge_tree.sql | 1 + tests/queries/0_stateless/01652_ttl_old_syntax.sql | 1 + tests/queries/0_stateless/01907_multiple_aliases.sql | 1 + .../0_stateless/02021_create_database_with_comment.sh | 2 +- tests/queries/0_stateless/02135_local_create_db.sh | 2 +- .../0_stateless/02265_rename_join_ordinary_to_atomic.sql | 1 + 49 files changed, 58 insertions(+), 9 deletions(-) diff --git a/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql b/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql index 04edf709bde..649c09dbbf1 100644 --- a/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql +++ b/tests/queries/0_stateless/00148_summing_merge_tree_aggregate_function.sql @@ -2,6 +2,7 @@ drop table if exists summing_merge_tree_aggregate_function; drop table if exists summing_merge_tree_null; ---- partition merge +set allow_deprecated_syntax_for_merge_tree=1; create table summing_merge_tree_aggregate_function ( d Date, k UInt64, diff --git a/tests/queries/0_stateless/00214_primary_key_order.sql b/tests/queries/0_stateless/00214_primary_key_order.sql index 3c751e63e6d..e8a3be5f8dc 100644 --- a/tests/queries/0_stateless/00214_primary_key_order.sql +++ b/tests/queries/0_stateless/00214_primary_key_order.sql @@ -1,4 +1,6 @@ DROP TABLE IF EXISTS primary_key; + +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE primary_key (d Date DEFAULT today(), x Int8) ENGINE = MergeTree(d, -x, 1); INSERT INTO primary_key (x) VALUES (1), (2), (3); diff --git a/tests/queries/0_stateless/00229_prewhere_column_missing.sql b/tests/queries/0_stateless/00229_prewhere_column_missing.sql index 324e37bfce7..1fb74b04af0 100644 --- a/tests/queries/0_stateless/00229_prewhere_column_missing.sql +++ b/tests/queries/0_stateless/00229_prewhere_column_missing.sql @@ -1,5 +1,6 @@ drop table if exists prewhere_column_missing; +set allow_deprecated_syntax_for_merge_tree=1; create table prewhere_column_missing (d Date default '2015-01-01', x UInt64) engine=MergeTree(d, x, 1); insert into prewhere_column_missing (x) values (0); diff --git a/tests/queries/0_stateless/00261_storage_aliases_and_array_join.sql b/tests/queries/0_stateless/00261_storage_aliases_and_array_join.sql index 71562ffd6fa..bb3376a9e61 100644 --- a/tests/queries/0_stateless/00261_storage_aliases_and_array_join.sql +++ b/tests/queries/0_stateless/00261_storage_aliases_and_array_join.sql @@ -1,5 +1,6 @@ drop table if exists aliases_test; +set allow_deprecated_syntax_for_merge_tree=1; create table aliases_test ( date Date, id UInt64, array default ['zero','one','two'], diff --git a/tests/queries/0_stateless/00262_alter_alias.sql b/tests/queries/0_stateless/00262_alter_alias.sql index 56dbda65be7..1c19f8636d1 100644 --- a/tests/queries/0_stateless/00262_alter_alias.sql +++ b/tests/queries/0_stateless/00262_alter_alias.sql @@ -1,5 +1,6 @@ drop table if exists aliases_test; +set allow_deprecated_syntax_for_merge_tree=1; create table aliases_test (date default today(), id default rand(), array default [0, 1, 2]) engine=MergeTree(date, id, 1); insert into aliases_test (id) values (0); diff --git a/tests/queries/0_stateless/00276_sample.sql b/tests/queries/0_stateless/00276_sample.sql index cd28f18b2b8..b75ed188ec4 100644 --- a/tests/queries/0_stateless/00276_sample.sql +++ b/tests/queries/0_stateless/00276_sample.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS sample_00276; +set allow_deprecated_syntax_for_merge_tree=1; SET min_insert_block_size_rows = 0, min_insert_block_size_bytes = 0; SET max_block_size = 10; diff --git a/tests/queries/0_stateless/00282_merging.sql b/tests/queries/0_stateless/00282_merging.sql index a49cde87134..f4a3708eedf 100644 --- a/tests/queries/0_stateless/00282_merging.sql +++ b/tests/queries/0_stateless/00282_merging.sql @@ -1,4 +1,6 @@ DROP TABLE IF EXISTS merge; + +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE IF NOT EXISTS merge (d Date DEFAULT '2000-01-01', x UInt64) ENGINE = MergeTree(d, x, 5); INSERT INTO merge (x) VALUES (1), (2), (3); diff --git a/tests/queries/0_stateless/00294_shard_enums.sql b/tests/queries/0_stateless/00294_shard_enums.sql index 414b9cfad03..dcd74ac3e3a 100644 --- a/tests/queries/0_stateless/00294_shard_enums.sql +++ b/tests/queries/0_stateless/00294_shard_enums.sql @@ -3,6 +3,7 @@ set max_threads = 1; drop table if exists enums; +set allow_deprecated_syntax_for_merge_tree=1; create table enums ( d Date default '2015-12-29', k default 0, e Enum8('world' = 2, 'hello' = 1), sign Enum8('minus' = -1, 'plus' = 1), diff --git a/tests/queries/0_stateless/00311_array_primary_key.sql b/tests/queries/0_stateless/00311_array_primary_key.sql index f6e21beab9b..348ef2d1c6f 100644 --- a/tests/queries/0_stateless/00311_array_primary_key.sql +++ b/tests/queries/0_stateless/00311_array_primary_key.sql @@ -1,5 +1,6 @@ -- Tags: no-parallel +set allow_deprecated_syntax_for_merge_tree=1; DROP TABLE IF EXISTS array_pk; CREATE TABLE array_pk (key Array(UInt8), s String, n UInt64, d Date MATERIALIZED '2000-01-01') ENGINE = MergeTree(d, (key, s, n), 1); diff --git a/tests/queries/0_stateless/00314_sample_factor_virtual_column.sql b/tests/queries/0_stateless/00314_sample_factor_virtual_column.sql index b0ed4fdedcb..6e3dc019069 100644 --- a/tests/queries/0_stateless/00314_sample_factor_virtual_column.sql +++ b/tests/queries/0_stateless/00314_sample_factor_virtual_column.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS sample_00314_1; DROP TABLE IF EXISTS sample_00314_2; DROP TABLE IF EXISTS sample_merge_00314; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE sample_00314_1 (x UInt64, d Date DEFAULT today()) ENGINE = MergeTree(d, intHash64(x), intHash64(x), 10); CREATE TABLE sample_00314_2 (x UInt64, d Date DEFAULT today()) ENGINE = MergeTree(d, intHash64(x), intHash64(x), 10); diff --git a/tests/queries/0_stateless/00318_pk_tuple_order.sql b/tests/queries/0_stateless/00318_pk_tuple_order.sql index 8e2992167ee..585f35d2f3c 100644 --- a/tests/queries/0_stateless/00318_pk_tuple_order.sql +++ b/tests/queries/0_stateless/00318_pk_tuple_order.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS pk; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE pk (d Date DEFAULT '2000-01-01', x UInt64, y UInt64, z UInt64) ENGINE = MergeTree(d, (x, y, z), 1); INSERT INTO pk (x, y, z) VALUES (1, 11, 1235), (1, 11, 4395), (1, 22, 3545), (1, 22, 6984), (1, 33, 4596), (2, 11, 4563), (2, 11, 4578), (2, 11, 3572), (2, 22, 5786), (2, 22, 5786), (2, 22, 2791), (2, 22, 2791), (3, 33, 2791), (3, 33, 2791), (3, 33, 1235), (3, 44, 4935), (3, 44, 4578), (3, 55, 5786), (3, 55, 2791), (3, 55, 1235); diff --git a/tests/queries/0_stateless/00319_index_for_like.sql b/tests/queries/0_stateless/00319_index_for_like.sql index 57ebce439f3..e490e595142 100644 --- a/tests/queries/0_stateless/00319_index_for_like.sql +++ b/tests/queries/0_stateless/00319_index_for_like.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS index_for_like; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE index_for_like (s String, d Date DEFAULT today()) ENGINE = MergeTree(d, (s, d), 1); INSERT INTO index_for_like (s) VALUES ('Hello'), ('Hello, World'), ('Hello, World 1'), ('Hello 1'), ('Goodbye'), ('Goodbye, World'), ('Goodbye 1'), ('Goodbye, World 1'); diff --git a/tests/queries/0_stateless/00321_pk_set.sql b/tests/queries/0_stateless/00321_pk_set.sql index 073a87a6e13..bf61a684ac7 100644 --- a/tests/queries/0_stateless/00321_pk_set.sql +++ b/tests/queries/0_stateless/00321_pk_set.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS pk_set; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE pk_set (d Date, n UInt64, host String, code UInt64) ENGINE = MergeTree(d, (n, host, code), 1); INSERT INTO pk_set (n, host, code) VALUES (1, 'market', 100), (11, 'news', 100); diff --git a/tests/queries/0_stateless/00327_summing_composite_nested.sql b/tests/queries/0_stateless/00327_summing_composite_nested.sql index f9b251ebd8f..701735a7168 100644 --- a/tests/queries/0_stateless/00327_summing_composite_nested.sql +++ b/tests/queries/0_stateless/00327_summing_composite_nested.sql @@ -1,6 +1,7 @@ SET optimize_on_insert = 0; DROP TABLE IF EXISTS summing_composite_key; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE summing_composite_key (d Date, k UInt64, FirstMap Nested(k1 UInt32, k2ID Int8, s Float64), SecondMap Nested(k1ID UInt64, k2Key String, k3Type Int32, s Int64)) ENGINE = SummingMergeTree(d, k, 1); INSERT INTO summing_composite_key VALUES ('2000-01-01', 1, [1,2], ['3','4'], [10,11], [0,1,2], [3,4,5], [-1,-2,-3], [1,10,100]), ('2000-01-01', 1, [2,1], ['4','3'], [20,22], [2,2,1], [5,5,0], [-3,-3,-33], [10,100,1000]), ('2000-01-01', 2, [1,2], ['3','4'], [10,11], [0,1,2], [3,4,5], [-1,-2,-3], [1,10,100]), ('2000-01-01', 2, [2,1,1], ['4','3','3'], [20,22,33], [2,2], [5,5], [-3,-3], [10,100]), ('2000-01-01', 2, [1,2], ['3','4'], [10,11], [0,1,2], [3,4,5], [-1,-2,-3], [1,10,100]); diff --git a/tests/queries/0_stateless/00331_final_and_prewhere.sql b/tests/queries/0_stateless/00331_final_and_prewhere.sql index 02af6d9b450..5d0b80d6363 100644 --- a/tests/queries/0_stateless/00331_final_and_prewhere.sql +++ b/tests/queries/0_stateless/00331_final_and_prewhere.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS replace; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE replace ( EventDate Date, Id UInt64, Data String, Version UInt32) ENGINE = ReplacingMergeTree(EventDate, Id, 8192, Version); INSERT INTO replace VALUES ('2016-06-02', 1, 'version 1', 1); INSERT INTO replace VALUES ('2016-06-02', 2, 'version 1', 1); diff --git a/tests/queries/0_stateless/00361_shared_array_offsets_and_squash_blocks.sql b/tests/queries/0_stateless/00361_shared_array_offsets_and_squash_blocks.sql index 6160edd05b7..7815a35259a 100644 --- a/tests/queries/0_stateless/00361_shared_array_offsets_and_squash_blocks.sql +++ b/tests/queries/0_stateless/00361_shared_array_offsets_and_squash_blocks.sql @@ -1,6 +1,7 @@ DROP TABLE IF EXISTS nested1; DROP TABLE IF EXISTS nested2; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE nested1 (d Date DEFAULT '2000-01-01', x UInt64, n Nested(a String, b String)) ENGINE = MergeTree(d, x, 1); INSERT INTO nested1 (x, n.a, n.b) VALUES (1, ['Hello', 'World'], ['abc', 'def']), (2, [], []); diff --git a/tests/queries/0_stateless/00363_defaults.sql b/tests/queries/0_stateless/00363_defaults.sql index 4ebcc7b0f61..1ec3b13a130 100644 --- a/tests/queries/0_stateless/00363_defaults.sql +++ b/tests/queries/0_stateless/00363_defaults.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS prewhere_defaults; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE prewhere_defaults (d Date DEFAULT '2000-01-01', k UInt64 DEFAULT 0, x UInt16) ENGINE = MergeTree(d, k, 1); INSERT INTO prewhere_defaults (x) VALUES (1); diff --git a/tests/queries/0_stateless/00386_enum_in_pk.sql b/tests/queries/0_stateless/00386_enum_in_pk.sql index 75b8a166523..4fc79b5ef1b 100644 --- a/tests/queries/0_stateless/00386_enum_in_pk.sql +++ b/tests/queries/0_stateless/00386_enum_in_pk.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS enum_pk; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE enum_pk (date Date DEFAULT '0000-00-00', x Enum8('0' = 0, '1' = 1, '2' = 2), d Enum8('0' = 0, '1' = 1, '2' = 2)) ENGINE = MergeTree(date, x, 1); INSERT INTO enum_pk (x, d) VALUES ('0', '0')('1', '1')('0', '0')('1', '1')('1', '1')('0', '0')('0', '0')('2', '2')('0', '0')('1', '1')('1', '1')('1', '1')('1', '1')('0', '0'); diff --git a/tests/queries/0_stateless/00392_enum_nested_alter.sql b/tests/queries/0_stateless/00392_enum_nested_alter.sql index 205b9a7fec0..b5989885de4 100644 --- a/tests/queries/0_stateless/00392_enum_nested_alter.sql +++ b/tests/queries/0_stateless/00392_enum_nested_alter.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS enum_nested_alter; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE enum_nested_alter (d Date DEFAULT '2000-01-01', x UInt64, n Nested(a String, e Enum8('Hello' = 1), b UInt8)) ENGINE = MergeTree(d, x, 1); diff --git a/tests/queries/0_stateless/00411_merge_tree_where_const_in_set.sql b/tests/queries/0_stateless/00411_merge_tree_where_const_in_set.sql index 614f838c2eb..22779509a3d 100644 --- a/tests/queries/0_stateless/00411_merge_tree_where_const_in_set.sql +++ b/tests/queries/0_stateless/00411_merge_tree_where_const_in_set.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS const_in_const; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE const_in_const (id UInt64, date Date, uid UInt32, name String, Sign Int8) ENGINE = CollapsingMergeTree(date, intHash32(uid), (id, date, intHash32(uid)), 8192, Sign); INSERT INTO const_in_const VALUES(1, now(), 1, 'test1', 1); INSERT INTO const_in_const VALUES(2, now(), 1, 'test2', 1); diff --git a/tests/queries/0_stateless/00412_logical_expressions_optimizer.sql b/tests/queries/0_stateless/00412_logical_expressions_optimizer.sql index 5f8b15e980a..c4fad7d5064 100644 --- a/tests/queries/0_stateless/00412_logical_expressions_optimizer.sql +++ b/tests/queries/0_stateless/00412_logical_expressions_optimizer.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS merge_tree; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE merge_tree (x UInt64, date Date) ENGINE = MergeTree(date, x, 1); INSERT INTO merge_tree VALUES (1, '2000-01-01'); diff --git a/tests/queries/0_stateless/00432_aggregate_function_scalars_and_constants.sql b/tests/queries/0_stateless/00432_aggregate_function_scalars_and_constants.sql index c74b4f03371..a6f31b9357c 100644 --- a/tests/queries/0_stateless/00432_aggregate_function_scalars_and_constants.sql +++ b/tests/queries/0_stateless/00432_aggregate_function_scalars_and_constants.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS agg_func_col; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE agg_func_col (p Date, k UInt8, d AggregateFunction(sum, UInt64) DEFAULT arrayReduce('sumState', [toUInt64(200)])) ENGINE = AggregatingMergeTree(p, k, 1); INSERT INTO agg_func_col (k) VALUES (0); INSERT INTO agg_func_col (k, d) SELECT 1 AS k, arrayReduce('sumState', [toUInt64(100)]) AS d; diff --git a/tests/queries/0_stateless/00443_optimize_final_vertical_merge.sh b/tests/queries/0_stateless/00443_optimize_final_vertical_merge.sh index a32dde58164..3bdc5892ced 100755 --- a/tests/queries/0_stateless/00443_optimize_final_vertical_merge.sh +++ b/tests/queries/0_stateless/00443_optimize_final_vertical_merge.sh @@ -16,7 +16,7 @@ function get_num_parts { $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS $name" -$CLICKHOUSE_CLIENT -q "CREATE TABLE $name ( +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE $name ( date Date, Sign Int8, ki UInt64, diff --git a/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh b/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh index 399a4677a44..5dcc2f3c181 100755 --- a/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh +++ b/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh @@ -7,7 +7,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) . "$CURDIR"/../shell_config.sh $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS preferred_block_size_bytes" -$CLICKHOUSE_CLIENT -q "CREATE TABLE preferred_block_size_bytes (p Date, s String) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=1, index_granularity_bytes=0, min_bytes_for_wide_part = 0" +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE preferred_block_size_bytes (p Date, s String) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=1, index_granularity_bytes=0, min_bytes_for_wide_part = 0" $CLICKHOUSE_CLIENT -q "INSERT INTO preferred_block_size_bytes (s) SELECT '16_bytes_-_-_-_' AS s FROM system.numbers LIMIT 10, 90" $CLICKHOUSE_CLIENT -q "OPTIMIZE TABLE preferred_block_size_bytes" $CLICKHOUSE_CLIENT --preferred_block_size_bytes=26 -q "SELECT DISTINCT blockSize(), ignore(p, s) FROM preferred_block_size_bytes" @@ -18,7 +18,7 @@ $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS preferred_block_size_bytes" # PREWHERE using empty column $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS pbs" -$CLICKHOUSE_CLIENT -q "CREATE TABLE pbs (p Date, i UInt64, sa Array(String)) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=100, index_granularity_bytes=0, min_bytes_for_wide_part = 0" +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE pbs (p Date, i UInt64, sa Array(String)) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=100, index_granularity_bytes=0, min_bytes_for_wide_part = 0" $CLICKHOUSE_CLIENT -q "INSERT INTO pbs (p, i, sa) SELECT toDate(i % 30) AS p, number AS i, ['a'] AS sa FROM system.numbers LIMIT 1000" $CLICKHOUSE_CLIENT -q "ALTER TABLE pbs ADD COLUMN s UInt8 DEFAULT 0" $CLICKHOUSE_CLIENT --preferred_block_size_bytes=100000 -q "SELECT count() FROM pbs PREWHERE s = 0" @@ -29,7 +29,7 @@ $CLICKHOUSE_CLIENT -q "DROP TABLE pbs" # Nullable PREWHERE $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS nullable_prewhere" -$CLICKHOUSE_CLIENT -q "CREATE TABLE nullable_prewhere (p Date, f Nullable(UInt64), d UInt64) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=8, index_granularity_bytes=0, min_bytes_for_wide_part = 0" +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1-q "CREATE TABLE nullable_prewhere (p Date, f Nullable(UInt64), d UInt64) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=8, index_granularity_bytes=0, min_bytes_for_wide_part = 0" $CLICKHOUSE_CLIENT -q "INSERT INTO nullable_prewhere SELECT toDate(0) AS p, if(number % 2 = 0, CAST(number AS Nullable(UInt64)), CAST(NULL AS Nullable(UInt64))) AS f, number as d FROM system.numbers LIMIT 1001" $CLICKHOUSE_CLIENT -q "SELECT sum(d), sum(f), max(d) FROM nullable_prewhere PREWHERE NOT isNull(f)" $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS nullable_prewhere" diff --git a/tests/queries/0_stateless/00456_alter_nullable.sql b/tests/queries/0_stateless/00456_alter_nullable.sql index 703d1a551a7..0fa3837767d 100644 --- a/tests/queries/0_stateless/00456_alter_nullable.sql +++ b/tests/queries/0_stateless/00456_alter_nullable.sql @@ -1,4 +1,6 @@ DROP TABLE IF EXISTS nullable_alter; + +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE nullable_alter (d Date DEFAULT '2000-01-01', x String) ENGINE = MergeTree(d, d, 1); INSERT INTO nullable_alter (x) VALUES ('Hello'), ('World'); diff --git a/tests/queries/0_stateless/00481_reading_from_last_granula.sql b/tests/queries/0_stateless/00481_reading_from_last_granula.sql index 29d42e41e14..c98068e466b 100644 --- a/tests/queries/0_stateless/00481_reading_from_last_granula.sql +++ b/tests/queries/0_stateless/00481_reading_from_last_granula.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS tab_00481; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE tab_00481 (date Date, value UInt64, s String, m FixedString(16)) ENGINE = MergeTree(date, (date, value), 8); INSERT INTO tab_00481 SELECT today() as date, number as value, '' as s, toFixedString('', 16) as m from system.numbers limit 42; SET preferred_max_column_in_block_size_bytes = 32; diff --git a/tests/queries/0_stateless/00483_reading_from_array_structure.sql b/tests/queries/0_stateless/00483_reading_from_array_structure.sql index 5ba152ef9b6..bab0dcd3707 100644 --- a/tests/queries/0_stateless/00483_reading_from_array_structure.sql +++ b/tests/queries/0_stateless/00483_reading_from_array_structure.sql @@ -1,4 +1,6 @@ drop table if exists `table_00483`; + +set allow_deprecated_syntax_for_merge_tree=1; create table `table_00483` (date Date, `Struct.Key1` Array(UInt64), `Struct.Key2` Array(UInt64), padding FixedString(16)) engine = MergeTree(date, (date), 16); insert into `table_00483` select today() as date, [number], [number + 1], toFixedString('', 16) from system.numbers limit 100; set preferred_max_column_in_block_size_bytes = 96; diff --git a/tests/queries/0_stateless/00489_pk_subexpression.sql b/tests/queries/0_stateless/00489_pk_subexpression.sql index 41499f0bd1b..6f76a13609c 100644 --- a/tests/queries/0_stateless/00489_pk_subexpression.sql +++ b/tests/queries/0_stateless/00489_pk_subexpression.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS pk; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE pk (d Date DEFAULT '2000-01-01', x DateTime, y UInt64, z UInt64) ENGINE = MergeTree(d, (toStartOfMinute(x), y, z), 1); INSERT INTO pk (x, y, z) VALUES (1, 11, 1235), (2, 11, 4395), (3, 22, 3545), (4, 22, 6984), (5, 33, 4596), (61, 11, 4563), (62, 11, 4578), (63, 11, 3572), (64, 22, 5786), (65, 22, 5786), (66, 22, 2791), (67, 22, 2791), (121, 33, 2791), (122, 33, 2791), (123, 33, 1235), (124, 44, 4935), (125, 44, 4578), (126, 55, 5786), (127, 55, 2791), (128, 55, 1235); diff --git a/tests/queries/0_stateless/00504_insert_miss_columns.sh b/tests/queries/0_stateless/00504_insert_miss_columns.sh index ea699ab58a5..fa2cc9d0b22 100755 --- a/tests/queries/0_stateless/00504_insert_miss_columns.sh +++ b/tests/queries/0_stateless/00504_insert_miss_columns.sh @@ -8,8 +8,8 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS advertiser"; $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS advertiser_test"; -$CLICKHOUSE_CLIENT -q "CREATE TABLE advertiser ( action_date Date, adblock UInt8, imps Int64 ) Engine = SummingMergeTree( action_date, ( adblock ), 8192, ( imps ) )"; -$CLICKHOUSE_CLIENT -q "CREATE TABLE advertiser_test ( action_date Date, adblock UInt8, imps Int64, Hash UInt64 ) Engine = SummingMergeTree( action_date, ( adblock, Hash ), 8192, ( imps ) )"; +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE advertiser ( action_date Date, adblock UInt8, imps Int64 ) Engine = SummingMergeTree( action_date, ( adblock ), 8192, ( imps ) )"; +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE advertiser_test ( action_date Date, adblock UInt8, imps Int64, Hash UInt64 ) Engine = SummingMergeTree( action_date, ( adblock, Hash ), 8192, ( imps ) )"; # This test will fail. It's ok. $CLICKHOUSE_CLIENT -q "INSERT INTO advertiser_test SELECT *, sipHash64( CAST(adblock AS String) ), CAST(1 AS Int8) FROM advertiser;" 2>/dev/null diff --git a/tests/queries/0_stateless/00542_materialized_view_and_time_zone_tag.sql b/tests/queries/0_stateless/00542_materialized_view_and_time_zone_tag.sql index 5e9277c90b6..88808ac20f9 100644 --- a/tests/queries/0_stateless/00542_materialized_view_and_time_zone_tag.sql +++ b/tests/queries/0_stateless/00542_materialized_view_and_time_zone_tag.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS m3; DROP TABLE IF EXISTS m1; DROP TABLE IF EXISTS x; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE x (d Date, t DateTime) ENGINE = MergeTree(d, (d, t), 1); CREATE MATERIALIZED VIEW m1 (d Date, t DateTime, c UInt64) ENGINE = SummingMergeTree(d, (d, t), 1) AS SELECT d, toStartOfMinute(x.t) as t, count() as c FROM x GROUP BY d, t; diff --git a/tests/queries/0_stateless/00564_versioned_collapsing_merge_tree.sql b/tests/queries/0_stateless/00564_versioned_collapsing_merge_tree.sql index 66bbb02183c..fdee9390642 100644 --- a/tests/queries/0_stateless/00564_versioned_collapsing_merge_tree.sql +++ b/tests/queries/0_stateless/00564_versioned_collapsing_merge_tree.sql @@ -1,5 +1,6 @@ -- Tags: no-parallel +set allow_deprecated_syntax_for_merge_tree=1; set optimize_on_insert = 0; drop table if exists mult_tab; diff --git a/tests/queries/0_stateless/00565_enum_order.sh b/tests/queries/0_stateless/00565_enum_order.sh index 6958a403246..fedd81b91f8 100755 --- a/tests/queries/0_stateless/00565_enum_order.sh +++ b/tests/queries/0_stateless/00565_enum_order.sh @@ -10,7 +10,7 @@ $CLICKHOUSE_CLIENT <<"EOF" DROP TABLE IF EXISTS `test_log` EOF -$CLICKHOUSE_CLIENT <<"EOF" +$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 <<"EOF" CREATE TABLE `test_log` ( date Date, datetime DateTime, diff --git a/tests/queries/0_stateless/00579_virtual_column_and_lazy.sql b/tests/queries/0_stateless/00579_virtual_column_and_lazy.sql index b1f1ec4cfb2..ca58a5fc93b 100644 --- a/tests/queries/0_stateless/00579_virtual_column_and_lazy.sql +++ b/tests/queries/0_stateless/00579_virtual_column_and_lazy.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS sample_00579_1; DROP TABLE IF EXISTS sample_00579_2; DROP TABLE IF EXISTS sample_merge_00579; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE sample_00579_1 (x UInt64, d Date DEFAULT today()) ENGINE = MergeTree(d, intHash64(x), intHash64(x), 10); CREATE TABLE sample_00579_2 (x UInt64, d Date DEFAULT today()) ENGINE = MergeTree(d, intHash64(x), intHash64(x), 10); diff --git a/tests/queries/0_stateless/00614_array_nullable.sql b/tests/queries/0_stateless/00614_array_nullable.sql index d62ddb8242c..1cbfbf128cb 100644 --- a/tests/queries/0_stateless/00614_array_nullable.sql +++ b/tests/queries/0_stateless/00614_array_nullable.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS test; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test(date Date, keys Array(Nullable(UInt8))) ENGINE = MergeTree(date, date, 1); INSERT INTO test VALUES ('2017-09-10', [1, 2, 3, 4, 5, 6, 7, NULL]); SELECT * FROM test LIMIT 1; diff --git a/tests/queries/0_stateless/00616_final_single_part.sql b/tests/queries/0_stateless/00616_final_single_part.sql index 6618d0b1252..605f2c8b216 100644 --- a/tests/queries/0_stateless/00616_final_single_part.sql +++ b/tests/queries/0_stateless/00616_final_single_part.sql @@ -12,6 +12,7 @@ CREATE TABLE test_00616 ENGINE = MergeTree(date, x, 4096); INSERT INTO test_00616 VALUES ('2018-03-21', 1, 1), ('2018-03-21', 1, 2); +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE replacing_00616 ENGINE = ReplacingMergeTree(date, x, 4096, ver) AS SELECT * FROM test_00616; SELECT * FROM test_00616 ORDER BY ver; diff --git a/tests/queries/0_stateless/00623_truncate_table.sql b/tests/queries/0_stateless/00623_truncate_table.sql index 80369ff2bbc..16bc87ea213 100644 --- a/tests/queries/0_stateless/00623_truncate_table.sql +++ b/tests/queries/0_stateless/00623_truncate_table.sql @@ -1,5 +1,7 @@ -- Tags: no-parallel +set allow_deprecated_syntax_for_merge_tree=1; + DROP DATABASE IF EXISTS truncate_test; DROP TABLE IF EXISTS truncate_test_log; DROP TABLE IF EXISTS truncate_test_memory; diff --git a/tests/queries/0_stateless/00625_summing_merge_tree_merge.sql b/tests/queries/0_stateless/00625_summing_merge_tree_merge.sql index a214347a3a7..235048ad18b 100644 --- a/tests/queries/0_stateless/00625_summing_merge_tree_merge.sql +++ b/tests/queries/0_stateless/00625_summing_merge_tree_merge.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS tab_00625; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE tab_00625 ( date Date, diff --git a/tests/queries/0_stateless/00709_virtual_column_partition_id.sql b/tests/queries/0_stateless/00709_virtual_column_partition_id.sql index 084ab904d87..48a3a3fad6a 100644 --- a/tests/queries/0_stateless/00709_virtual_column_partition_id.sql +++ b/tests/queries/0_stateless/00709_virtual_column_partition_id.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS partition_id; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE IF NOT EXISTS partition_id (d Date DEFAULT '2000-01-01', x UInt64) ENGINE = MergeTree(d, x, 5); INSERT INTO partition_id VALUES (100, 1), (200, 2), (300, 3); diff --git a/tests/queries/0_stateless/00974_final_predicate_push_down.sql b/tests/queries/0_stateless/00974_final_predicate_push_down.sql index 96bcbf9aae6..7a6378692f2 100644 --- a/tests/queries/0_stateless/00974_final_predicate_push_down.sql +++ b/tests/queries/0_stateless/00974_final_predicate_push_down.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS test_00974; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_00974 ( date Date, diff --git a/tests/queries/0_stateless/01109_exchange_tables.sql b/tests/queries/0_stateless/01109_exchange_tables.sql index e6900745fed..c118945887b 100644 --- a/tests/queries/0_stateless/01109_exchange_tables.sql +++ b/tests/queries/0_stateless/01109_exchange_tables.sql @@ -30,6 +30,7 @@ SELECT * FROM t2; DROP DATABASE IF EXISTS test_01109_other_atomic; DROP DATABASE IF EXISTS test_01109_ordinary; CREATE DATABASE test_01109_other_atomic; +set allow_deprecated_database_ordinary=1; CREATE DATABASE test_01109_ordinary ENGINE=Ordinary; CREATE TABLE test_01109_other_atomic.t3 ENGINE=MergeTree() ORDER BY tuple() diff --git a/tests/queries/0_stateless/01128_generate_random_nested.sql b/tests/queries/0_stateless/01128_generate_random_nested.sql index 2af52e69893..8098db89491 100644 --- a/tests/queries/0_stateless/01128_generate_random_nested.sql +++ b/tests/queries/0_stateless/01128_generate_random_nested.sql @@ -1,4 +1,6 @@ DROP TABLE IF EXISTS mass_table_312; + +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE mass_table_312 (d Date DEFAULT '2000-01-01', x UInt64, n Nested(a String, b String)) ENGINE = MergeTree(d, x, 1); INSERT INTO mass_table_312 SELECT * FROM generateRandom('`d` Date,`x` UInt64,`n.a` Array(String),`n.b` Array(String)', 1, 10, 2) LIMIT 100; diff --git a/tests/queries/0_stateless/01190_full_attach_syntax.sql b/tests/queries/0_stateless/01190_full_attach_syntax.sql index e0ffe7ede66..e66978e22e1 100644 --- a/tests/queries/0_stateless/01190_full_attach_syntax.sql +++ b/tests/queries/0_stateless/01190_full_attach_syntax.sql @@ -2,6 +2,7 @@ DROP DATABASE IF EXISTS test_01190; set allow_deprecated_database_ordinary=1; +set allow_deprecated_syntax_for_merge_tree=1; CREATE DATABASE test_01190 ENGINE=Ordinary; -- Full ATTACH requires UUID with Atomic USE test_01190; diff --git a/tests/queries/0_stateless/01297_alter_distributed.sql b/tests/queries/0_stateless/01297_alter_distributed.sql index cec64278d47..c79d98b7b3b 100644 --- a/tests/queries/0_stateless/01297_alter_distributed.sql +++ b/tests/queries/0_stateless/01297_alter_distributed.sql @@ -3,6 +3,7 @@ drop table if exists merge_distributed; drop table if exists merge_distributed1; +set allow_deprecated_syntax_for_merge_tree=1; create table merge_distributed1 ( CounterID UInt32, StartDate Date, Sign Int8, VisitID UInt64, UserID UInt64, StartTime DateTime, ClickLogID UInt64) ENGINE = CollapsingMergeTree(StartDate, intHash32(UserID), tuple(CounterID, StartDate, intHash32(UserID), VisitID, ClickLogID), 8192, Sign); insert into merge_distributed1 values (1, '2013-09-19', 1, 0, 2, '2013-09-19 12:43:06', 3); diff --git a/tests/queries/0_stateless/01299_alter_merge_tree.sql b/tests/queries/0_stateless/01299_alter_merge_tree.sql index 87608e6d15a..3c4467926f8 100644 --- a/tests/queries/0_stateless/01299_alter_merge_tree.sql +++ b/tests/queries/0_stateless/01299_alter_merge_tree.sql @@ -1,5 +1,6 @@ drop table if exists merge_tree; +set allow_deprecated_syntax_for_merge_tree=1; create table merge_tree ( CounterID UInt32, StartDate Date, Sign Int8, VisitID UInt64, UserID UInt64, StartTime DateTime, ClickLogID UInt64) ENGINE = CollapsingMergeTree(StartDate, intHash32(UserID), tuple(CounterID, StartDate, intHash32(UserID), VisitID, ClickLogID), 8192, Sign); insert into merge_tree values (1, '2013-09-19', 1, 0, 2, '2013-09-19 12:43:06', 3) diff --git a/tests/queries/0_stateless/01652_ttl_old_syntax.sql b/tests/queries/0_stateless/01652_ttl_old_syntax.sql index 05c391b85e5..7b11247d968 100644 --- a/tests/queries/0_stateless/01652_ttl_old_syntax.sql +++ b/tests/queries/0_stateless/01652_ttl_old_syntax.sql @@ -1,5 +1,6 @@ DROP TABLE IF EXISTS ttl_old_syntax; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE ttl_old_syntax (d Date, i Int) ENGINE = MergeTree(d, i, 8291); ALTER TABLE ttl_old_syntax MODIFY TTL toDate('2020-01-01'); -- { serverError 36 } diff --git a/tests/queries/0_stateless/01907_multiple_aliases.sql b/tests/queries/0_stateless/01907_multiple_aliases.sql index 611960a5205..5e8efba7ab7 100644 --- a/tests/queries/0_stateless/01907_multiple_aliases.sql +++ b/tests/queries/0_stateless/01907_multiple_aliases.sql @@ -1,4 +1,5 @@ DROP TABLE IF EXISTS t; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE t (d Date, z UInt32) ENGINE = MergeTree(d, (z), 1); INSERT INTO t VALUES ('2017-01-01', 1); diff --git a/tests/queries/0_stateless/02021_create_database_with_comment.sh b/tests/queries/0_stateless/02021_create_database_with_comment.sh index ce7a7bef066..11e62e790b7 100755 --- a/tests/queries/0_stateless/02021_create_database_with_comment.sh +++ b/tests/queries/0_stateless/02021_create_database_with_comment.sh @@ -18,7 +18,7 @@ function test_db_comments() local ENGINE_NAME="$1" echo "engine : ${ENGINE_NAME}" - $CLICKHOUSE_CLIENT -nm < Date: Thu, 23 Jun 2022 13:05:28 +0200 Subject: [PATCH 149/525] Test 02305_schema_inference_with_globs test --- .../0_stateless/02305_schema_inference_with_globs.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/queries/0_stateless/02305_schema_inference_with_globs.sh b/tests/queries/0_stateless/02305_schema_inference_with_globs.sh index 33969e8b0f7..6ebd17be777 100755 --- a/tests/queries/0_stateless/02305_schema_inference_with_globs.sh +++ b/tests/queries/0_stateless/02305_schema_inference_with_globs.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, disabled +# Tags: no-fasttest CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh @@ -10,9 +10,9 @@ $CLICKHOUSE_CLIENT -q "insert into function file(data2.jsonl) select NULL as x f $CLICKHOUSE_CLIENT -q "insert into function file(data3.jsonl) select NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" $CLICKHOUSE_CLIENT -q "insert into function file(data4.jsonl) select number % 2 ? number : NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=8" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=16" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=24" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=31" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; +$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=8" +$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=16" +$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=24" +$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=31" $CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=32" $CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=100" From 0b2ec429063ca2663214013d2c3c5e479a956369 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Thu, 23 Jun 2022 11:26:06 +0000 Subject: [PATCH 150/525] fix build --- src/Columns/tests/gtest_column_object.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Columns/tests/gtest_column_object.cpp b/src/Columns/tests/gtest_column_object.cpp index d5e58e5fce2..e1ad949f6a8 100644 --- a/src/Columns/tests/gtest_column_object.cpp +++ b/src/Columns/tests/gtest_column_object.cpp @@ -89,7 +89,7 @@ TEST(ColumnObject, InsertRangeFrom) const auto & type_dst = subcolumn_dst.getLeastCommonType(); const auto & type_src = subcolumn_src.getLeastCommonType(); - auto type_res = getLeastSupertype(DataTypes{type_dst, type_src}, true); + auto type_res = getLeastSupertypeOrString(DataTypes{type_dst, type_src}); size_t from = rng() % subcolumn_src.size(); size_t to = rng() % subcolumn_src.size(); From 3e62d0fb8c3c74017725a82083678713fa648a6a Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Thu, 23 Jun 2022 11:31:39 +0000 Subject: [PATCH 151/525] fix test --- tests/performance/json_type.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/performance/json_type.xml b/tests/performance/json_type.xml index 29e52f1e53f..ef11856df0b 100644 --- a/tests/performance/json_type.xml +++ b/tests/performance/json_type.xml @@ -1,6 +1,6 @@ - 1 + 1 CREATE TABLE t_json_1(data JSON) ENGINE = MergeTree ORDER BY tuple() From 272d9aea522c9cc40ace1dadfb1447bf1c484d2f Mon Sep 17 00:00:00 2001 From: Kruglov Pavel <48961922+Avogar@users.noreply.github.com> Date: Thu, 23 Jun 2022 13:34:28 +0200 Subject: [PATCH 152/525] Update 02305_schema_inference_with_globs.sh --- .../02305_schema_inference_with_globs.sh | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/queries/0_stateless/02305_schema_inference_with_globs.sh b/tests/queries/0_stateless/02305_schema_inference_with_globs.sh index 6ebd17be777..f38b004bdd8 100755 --- a/tests/queries/0_stateless/02305_schema_inference_with_globs.sh +++ b/tests/queries/0_stateless/02305_schema_inference_with_globs.sh @@ -5,14 +5,14 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CUR_DIR"/../shell_config.sh -$CLICKHOUSE_CLIENT -q "insert into function file(data1.jsonl) select NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" -$CLICKHOUSE_CLIENT -q "insert into function file(data2.jsonl) select NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" -$CLICKHOUSE_CLIENT -q "insert into function file(data3.jsonl) select NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" -$CLICKHOUSE_CLIENT -q "insert into function file(data4.jsonl) select number % 2 ? number : NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" +$CLICKHOUSE_CLIENT -q "insert into function file(02305_data1.jsonl) select NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" +$CLICKHOUSE_CLIENT -q "insert into function file(02305_data2.jsonl) select NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" +$CLICKHOUSE_CLIENT -q "insert into function file(02305_data3.jsonl) select NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" +$CLICKHOUSE_CLIENT -q "insert into function file(02305_data4.jsonl) select number % 2 ? number : NULL as x from numbers(10) settings engine_file_truncate_on_insert=1" -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=8" -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=16" -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=24" -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=31" -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=32" -$CLICKHOUSE_CLIENT -q "desc file('data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=100" +$CLICKHOUSE_CLIENT -q "desc file('02305_data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=8" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; +$CLICKHOUSE_CLIENT -q "desc file('02305_data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=16" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; +$CLICKHOUSE_CLIENT -q "desc file('02305_data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=24" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; +$CLICKHOUSE_CLIENT -q "desc file('02305_data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=31" 2>&1 | grep -c 'ONLY_NULLS_WHILE_READING_SCHEMA'; +$CLICKHOUSE_CLIENT -q "desc file('02305_data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=32" +$CLICKHOUSE_CLIENT -q "desc file('02305_data*.jsonl') settings input_format_max_rows_to_read_for_schema_inference=100" From 267025c35bcd48070bfe4f924c9761ca0e1bf0a4 Mon Sep 17 00:00:00 2001 From: zvonand Date: Thu, 23 Jun 2022 16:51:15 +0500 Subject: [PATCH 153/525] update base-x cmakelists --- contrib/base-x-cmake/CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/contrib/base-x-cmake/CMakeLists.txt b/contrib/base-x-cmake/CMakeLists.txt index ab5696c9fb6..b0c11a176c6 100644 --- a/contrib/base-x-cmake/CMakeLists.txt +++ b/contrib/base-x-cmake/CMakeLists.txt @@ -12,9 +12,8 @@ set (SRCS ${LIBRARY_DIR}/uinteger_t.hh ) -add_library(_base-x ${SRCS}) - -target_include_directories(_base-x SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}) +add_library(_base-x INTERFACE) +target_include_directories(_base-x SYSTEM BEFORE INTERFACE "${ClickHouse_SOURCE_DIR}/contrib/base-x") if (XCODE OR XCODE_VERSION) # https://gitlab.kitware.com/cmake/cmake/issues/17457 From 5af70d66e3dadd01b7318a2d5073f7d56a89f315 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Thu, 23 Jun 2022 11:52:28 +0000 Subject: [PATCH 154/525] Add plan tests for final distinct --- ...7_distinct_in_order_optimization.reference | 114 +++++++++++++----- .../02317_distinct_in_order_optimization.sql | 60 +++++---- 2 files changed, 121 insertions(+), 53 deletions(-) diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference index 8ab6966665a..0c1236bbfcd 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference @@ -1,5 +1,5 @@ -enable optimize_distinct_in_order -distinct pipeline on empty table -> no optimization, source is ReadFromPreparedSource instead of ReadFromMergeTree +-- enable optimize_distinct_in_order +-- distinct pipeline on empty table -> no optimization, table is empty (Expression) ExpressionTransform (Distinct) @@ -10,9 +10,9 @@ ExpressionTransform ExpressionTransform (ReadFromPreparedSource) NullSource 0 → 1 -insert into table to use ReadFromMergeTree source -disable optimize_distinct_in_order -pipeline does _not_ contain the optimization +-- insert into table +-- disable optimize_distinct_in_order +-- distinct all primary key columns -> no optimization (Expression) ExpressionTransform (Distinct) @@ -23,8 +23,8 @@ ExpressionTransform ExpressionTransform (ReadFromMergeTree) MergeTreeInOrder 0 → 1 -enable optimize_distinct_in_order -distinct with all primary key columns -> optimization applied +-- enable optimize_distinct_in_order +-- distinct with all primary key columns -> pre-distinct optimization only (Expression) ExpressionTransform (Distinct) @@ -34,9 +34,8 @@ ExpressionTransform (Expression) ExpressionTransform (ReadFromMergeTree) - Concat 2 → 1 - MergeTreeInOrder × 2 0 → 1 -distinct with primary key prefix -> optimization applied + MergeTreeInOrder 0 → 1 +-- distinct with primary key prefix -> pre-distinct optimization only (Expression) ExpressionTransform (Distinct) @@ -46,9 +45,38 @@ ExpressionTransform (Expression) ExpressionTransform (ReadFromMergeTree) - Concat 2 → 1 - MergeTreeInOrder × 2 0 → 1 -distinct with non-primary key prefix -> no optimization + MergeTreeInOrder 0 → 1 +-- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization +(Expression) +ExpressionTransform + (Distinct) + DistinctSortedTransform + (Sorting) + MergeSortingTransform + LimitsCheckingTransform + PartialSortingTransform + (Distinct) + DistinctSortedChunkTransform + (Expression) + ExpressionTransform + (ReadFromMergeTree) + MergeTreeInOrder 0 → 1 +-- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only +(Expression) +ExpressionTransform + (Distinct) + DistinctTransform + (Sorting) + MergeSortingTransform + LimitsCheckingTransform + PartialSortingTransform + (Distinct) + DistinctSortedChunkTransform + (Expression) + ExpressionTransform + (ReadFromMergeTree) + MergeTreeInOrder 0 → 1 +-- distinct with non-primary key prefix -> no optimization (Expression) ExpressionTransform (Distinct) @@ -58,15 +86,41 @@ ExpressionTransform (Expression) ExpressionTransform (ReadFromMergeTree) - Concat 2 → 1 - MergeTreeInOrder × 2 0 → 1 -the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one -single-threaded distinct + MergeTreeInOrder 0 → 1 +-- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only +(Expression) +ExpressionTransform + (Distinct) + DistinctSortedTransform + (Sorting) + MergeSortingTransform + LimitsCheckingTransform + PartialSortingTransform + (Distinct) + DistinctTransform + (Expression) + ExpressionTransform + (ReadFromMergeTree) + MergeTreeInOrder 0 → 1 +-- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimization +(Expression) +ExpressionTransform + (Distinct) + DistinctTransform + (Sorting) + (Distinct) + DistinctTransform + (Expression) + ExpressionTransform + (ReadFromMergeTree) + MergeTreeInOrder 0 → 1 +-- the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one +-- single-threaded distinct 0 -multi-threaded distinct +-- multi-threaded distinct 0 -skip part of chunk since it contains values from previous one -single-threaded distinct +-- skip part of chunk since it contains values from previous one +-- single-threaded distinct 0 1 2 @@ -77,7 +131,7 @@ single-threaded distinct 7 8 9 -multi-threaded distinct +-- multi-threaded distinct 0 1 2 @@ -88,10 +142,16 @@ multi-threaded distinct 7 8 9 -table with not only primary key columns -distinct with key-prefix only +-- create table with not only primary key columns +-- distinct with primary key prefix only 0 -distinct with full key +-- distinct with full key +0 0 +0 1 +0 2 +0 3 +0 4 +-- distinct with key prefix and non-sorted column 0 0 0 1 0 2 @@ -102,9 +162,3 @@ distinct with full key 0 7 0 8 0 9 -distinct with key prefix and non-sorted column -0 0 -0 1 -0 2 -0 3 -0 4 diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql index 519b511dddb..f1e8da88017 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql @@ -1,57 +1,71 @@ drop table if exists distinct_in_order sync; create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by (a, b, c); -select 'enable optimize_distinct_in_order'; +select '-- enable optimize_distinct_in_order'; set optimize_distinct_in_order=1; -select 'distinct pipeline on empty table -> no optimization, source is ReadFromPreparedSource instead of ReadFromMergeTree'; +select '-- distinct pipeline on empty table -> no optimization, table is empty'; explain pipeline select distinct * from distinct_in_order settings max_threads=1; -select 'insert into table to use ReadFromMergeTree source'; -insert into distinct_in_order select number % number, number % 10, number % 5 from numbers(1,10); +select '-- insert into table'; +insert into distinct_in_order select number % number, number % 5, number % 10 from numbers(1,10); -select 'disable optimize_distinct_in_order'; +select '-- disable optimize_distinct_in_order'; set optimize_distinct_in_order=0; -select 'pipeline does _not_ contain the optimization'; +select '-- distinct all primary key columns -> no optimization'; explain pipeline select distinct * from distinct_in_order settings max_threads=1; -select 'enable optimize_distinct_in_order'; +select '-- enable optimize_distinct_in_order'; set optimize_distinct_in_order=1; -select 'distinct with all primary key columns -> optimization applied'; -insert into distinct_in_order select number % number, number % 10, number % 5 from numbers(1,10); + +select '-- distinct with all primary key columns -> pre-distinct optimization only'; explain pipeline select distinct * from distinct_in_order settings max_threads=1; -select 'distinct with primary key prefix -> optimization applied'; + +select '-- distinct with primary key prefix -> pre-distinct optimization only'; explain pipeline select distinct a, c from distinct_in_order settings max_threads=1; -select 'distinct with non-primary key prefix -> no optimization'; + +select '-- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization'; +explain pipeline select distinct a, c from distinct_in_order order by c settings max_threads=1; + +select '-- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only'; +explain pipeline select distinct a, c from distinct_in_order order by b settings max_threads=1; + +select '-- distinct with non-primary key prefix -> no optimization'; explain pipeline select distinct b, c from distinct_in_order settings max_threads=1; -select 'the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one'; +select '-- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only'; +explain pipeline select distinct b, c from distinct_in_order order by b settings max_threads=1; + +select '-- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimization'; +explain pipeline select distinct b, c from distinct_in_order order by a settings max_threads=1; + +select '-- the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one'; drop table if exists distinct_in_order sync; create table distinct_in_order (a int) engine=MergeTree() order by a settings index_granularity=10; -insert into distinct_in_order (a) select * from zeros(30); -select 'single-threaded distinct'; +insert into distinct_in_order (a) select * from zeros(100); +select '-- single-threaded distinct'; select distinct * from distinct_in_order settings max_block_size=10, max_threads=1; -select 'multi-threaded distinct'; +select '-- multi-threaded distinct'; select distinct * from distinct_in_order settings max_block_size=10; -select 'skip part of chunk since it contains values from previous one'; +select '-- skip part of chunk since it contains values from previous one'; drop table if exists distinct_in_order sync; create table distinct_in_order (a int) engine=MergeTree() order by a settings index_granularity=10; insert into distinct_in_order (a) select * from zeros(10); insert into distinct_in_order select * from numbers(10); -select 'single-threaded distinct'; +select '-- single-threaded distinct'; select distinct a from distinct_in_order settings max_block_size=10, max_threads=1; -select 'multi-threaded distinct'; +select '-- multi-threaded distinct'; select distinct a from distinct_in_order settings max_block_size=10; -select 'table with not only primary key columns'; +select '-- create table with not only primary key columns'; drop table if exists distinct_in_order sync; create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by (a, b); -insert into distinct_in_order select number % number, number % 10, number % 5 from numbers(1,1000000); -select 'distinct with key-prefix only'; +insert into distinct_in_order select number % number, number % 5, number % 10 from numbers(1,1000000); +select '-- distinct with primary key prefix only'; select distinct a from distinct_in_order; -select 'distinct with full key'; +select '-- distinct with full key'; select distinct a,b from distinct_in_order order by b; -select 'distinct with key prefix and non-sorted column'; +select '-- distinct with key prefix and non-sorted column'; select distinct a,c from distinct_in_order order by c; -- drop table if exists distinct_in_order sync; From e33324bd358533aeafad16e7f1675a1d148b1060 Mon Sep 17 00:00:00 2001 From: zvonand Date: Thu, 23 Jun 2022 16:56:28 +0500 Subject: [PATCH 155/525] fix docs --- docs/en/sql-reference/functions/string-functions.md | 2 +- docs/ru/sql-reference/functions/string-functions.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/sql-reference/functions/string-functions.md b/docs/en/sql-reference/functions/string-functions.md index 7c6ae903acf..61efc2cfcdb 100644 --- a/docs/en/sql-reference/functions/string-functions.md +++ b/docs/en/sql-reference/functions/string-functions.md @@ -509,7 +509,7 @@ base58Decode(encoded[, alphabet_name]) - `decoded` — [String](../../sql-reference/data-types/string.md) column or constant. - `encoded` — [String](../../sql-reference/data-types/string.md) column or constant. If the string is not a valid base58-encoded value, an exception is thrown. -- `alphabet_name` — String constant. Specifies alphabet used for encoding. Possible values: `gmp`, `bitcoin`, `ripple`, `flickr`. Default: `gmp`. +- `alphabet_name` — String constant. Specifies alphabet used for encoding. Possible values: `gmp`, `bitcoin`, `ripple`, `flickr`. Default: `bitcoin`. **Returned value** diff --git a/docs/ru/sql-reference/functions/string-functions.md b/docs/ru/sql-reference/functions/string-functions.md index e85a97e0099..1acf5ec58b2 100644 --- a/docs/ru/sql-reference/functions/string-functions.md +++ b/docs/ru/sql-reference/functions/string-functions.md @@ -505,7 +505,7 @@ base58Decode(encoded[, alphabet_name]) - `decoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). - `encoded` — Колонка или строка типа [String](../../sql-reference/data-types/string.md). Если входная строка не является корректным кодом для какой-либо другой строки, возникнет исключение `1001`. -- `alphabet_name` — Строковая константа. Указывает алфавит, для которого необходимо получить код. Может принимать одно из следующих значений: `gmp`, `bitcoin`, `ripple`, `flickr`. По умолчанию: `gmp`. +- `alphabet_name` — Строковая константа. Указывает алфавит, для которого необходимо получить код. Может принимать одно из следующих значений: `gmp`, `bitcoin`, `ripple`, `flickr`. По умолчанию: `bitcoin`. **Возвращаемое значение** From 5661280ef6ed8ae53467d6273aecb4b6b2297211 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 23 Jun 2022 14:01:26 +0200 Subject: [PATCH 156/525] Remove some read methods --- .../MergeTree/DataPartStorageOnDisk.cpp | 20 +++++-------------- .../MergeTree/DataPartStorageOnDisk.h | 8 +------- src/Storages/MergeTree/IDataPartStorage.h | 8 +------- .../MergeTree/MergeTreeDataPartWriterWide.cpp | 8 +++++--- src/Storages/MergeTree/MergeTreeDataWriter.h | 5 ++++- .../MergedColumnOnlyOutputStream.cpp | 4 +--- 6 files changed, 17 insertions(+), 36 deletions(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 083cbc90cb1..9b4e7654c98 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -773,15 +773,6 @@ DataPartStorageBuilderOnDisk::DataPartStorageBuilderOnDisk(VolumePtr volume_, st { } -std::unique_ptr DataPartStorageBuilderOnDisk::readFile( - const std::string & name, - const ReadSettings & settings, - std::optional read_hint, - std::optional file_size) const -{ - return volume->getDisk()->readFile(fs::path(root_path) / part_dir / name, settings, read_hint, file_size); -} - std::unique_ptr DataPartStorageBuilderOnDisk::writeFile( const String & name, size_t buf_size, @@ -795,6 +786,11 @@ void DataPartStorageBuilderOnDisk::removeFile(const String & name) return volume->getDisk()->removeFile(fs::path(root_path) / part_dir / name); } +void DataPartStorageBuilderOnDisk::removeFileIfExists(const String & name) +{ + return volume->getDisk()->removeFileIfExists(fs::path(root_path) / part_dir / name); +} + void DataPartStorageBuilderOnDisk::removeRecursive() { volume->getDisk()->removeRecursive(fs::path(root_path) / part_dir); @@ -829,12 +825,6 @@ bool DataPartStorageBuilderOnDisk::exists() const return volume->getDisk()->exists(fs::path(root_path) / part_dir); } - -bool DataPartStorageBuilderOnDisk::exists(const std::string & name) const -{ - return volume->getDisk()->exists(fs::path(root_path) / part_dir / name); -} - std::string DataPartStorageBuilderOnDisk::getFullPath() const { return fs::path(volume->getDisk()->getPath()) / root_path / part_dir; diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.h b/src/Storages/MergeTree/DataPartStorageOnDisk.h index d6fcb2f1442..11fc2cd2f6d 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.h +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.h @@ -130,7 +130,6 @@ public: void setRelativePath(const std::string & path) override; bool exists() const override; - bool exists(const std::string & name) const override; void createDirectories() override; void createProjection(const std::string & name) override; @@ -139,18 +138,13 @@ public: std::string getFullPath() const override; std::string getRelativePath() const override; - std::unique_ptr readFile( - const std::string & name, - const ReadSettings & settings, - std::optional read_hint, - std::optional file_size) const override; - std::unique_ptr writeFile( const String & name, size_t buf_size, const WriteSettings & settings) override; void removeFile(const String & name) override; + void removeFileIfExists(const String & name) override; void removeRecursive() override; void removeSharedRecursive(bool keep_in_remote_fs) override; diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index 0e165e74ed0..89037e4a45a 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -223,20 +223,14 @@ public: virtual std::string getRelativePath() const = 0; virtual bool exists() const = 0; - virtual bool exists(const std::string & name) const = 0; virtual void createDirectories() = 0; virtual void createProjection(const std::string & name) = 0; - virtual std::unique_ptr readFile( - const std::string & name, - const ReadSettings & settings, - std::optional read_hint, - std::optional file_size) const = 0; - virtual std::unique_ptr writeFile(const String & name, size_t buf_size, const WriteSettings & settings) = 0; virtual void removeFile(const String & name) = 0; + virtual void removeFileIfExists(const String & name) = 0; virtual void removeRecursive() = 0; virtual void removeSharedRecursive(bool keep_in_remote_fs) = 0; diff --git a/src/Storages/MergeTree/MergeTreeDataPartWriterWide.cpp b/src/Storages/MergeTree/MergeTreeDataPartWriterWide.cpp index db3580e1f86..e3925940553 100644 --- a/src/Storages/MergeTree/MergeTreeDataPartWriterWide.cpp +++ b/src/Storages/MergeTree/MergeTreeDataPartWriterWide.cpp @@ -414,12 +414,14 @@ void MergeTreeDataPartWriterWide::validateColumnOfFixedSize(const NameAndTypePai String mrk_path = escaped_name + marks_file_extension; String bin_path = escaped_name + DATA_FILE_EXTENSION; + auto data_part_storage = data_part_storage_builder->getStorage(); + /// Some columns may be removed because of ttl. Skip them. - if (!data_part_storage_builder->exists(mrk_path)) + if (!data_part_storage->exists(mrk_path)) return; - auto mrk_in = data_part_storage_builder->readFile(mrk_path, {}, std::nullopt, std::nullopt); - DB::CompressedReadBufferFromFile bin_in(data_part_storage_builder->readFile(bin_path, {}, std::nullopt, std::nullopt)); + auto mrk_in = data_part_storage->readFile(mrk_path, {}, std::nullopt, std::nullopt); + DB::CompressedReadBufferFromFile bin_in(data_part_storage->readFile(bin_path, {}, std::nullopt, std::nullopt)); bool must_be_last = false; UInt64 offset_in_compressed_file = 0; UInt64 offset_in_decompressed_block = 0; diff --git a/src/Storages/MergeTree/MergeTreeDataWriter.h b/src/Storages/MergeTree/MergeTreeDataWriter.h index 147b38e828a..c7680888bc0 100644 --- a/src/Storages/MergeTree/MergeTreeDataWriter.h +++ b/src/Storages/MergeTree/MergeTreeDataWriter.h @@ -34,7 +34,10 @@ using BlocksWithPartition = std::vector; class MergeTreeDataWriter { public: - explicit MergeTreeDataWriter(MergeTreeData & data_) : data(data_), log(&Poco::Logger::get(data.getLogName() + " (Writer)")) {} + explicit MergeTreeDataWriter(MergeTreeData & data_) + : data(data_) + , log(&Poco::Logger::get(data.getLogName() + " (Writer)")) + {} /** Split the block to blocks, each of them must be written as separate part. * (split rows by partition) diff --git a/src/Storages/MergeTree/MergedColumnOnlyOutputStream.cpp b/src/Storages/MergeTree/MergedColumnOnlyOutputStream.cpp index 740e57a136e..d48a8b90646 100644 --- a/src/Storages/MergeTree/MergedColumnOnlyOutputStream.cpp +++ b/src/Storages/MergeTree/MergedColumnOnlyOutputStream.cpp @@ -81,9 +81,7 @@ MergedColumnOnlyOutputStream::fillChecksums( for (const String & removed_file : removed_files) { - /// Can be called multiple times, don't need to remove file twice - if (data_part_storage_builder->exists(removed_file)) - data_part_storage_builder->removeFile(removed_file); + data_part_storage_builder->removeFileIfExists(removed_file); if (all_checksums.files.contains(removed_file)) all_checksums.files.erase(removed_file); From fb249aca621e009c0bc283ac4231933b7df8bfcd Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 23 Jun 2022 14:11:16 +0200 Subject: [PATCH 157/525] fix tests --- .../queries/0_stateless/00443_preferred_block_size_bytes.sh | 6 +++--- tests/queries/0_stateless/00616_final_single_part.sql | 1 + tests/queries/0_stateless/01162_strange_mutations.sh | 2 +- tests/queries/0_stateless/01298_alter_merge.sql | 1 + .../0_stateless/01528_clickhouse_local_prepare_parts.sh | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh b/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh index 5dcc2f3c181..399a4677a44 100755 --- a/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh +++ b/tests/queries/0_stateless/00443_preferred_block_size_bytes.sh @@ -7,7 +7,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) . "$CURDIR"/../shell_config.sh $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS preferred_block_size_bytes" -$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE preferred_block_size_bytes (p Date, s String) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=1, index_granularity_bytes=0, min_bytes_for_wide_part = 0" +$CLICKHOUSE_CLIENT -q "CREATE TABLE preferred_block_size_bytes (p Date, s String) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=1, index_granularity_bytes=0, min_bytes_for_wide_part = 0" $CLICKHOUSE_CLIENT -q "INSERT INTO preferred_block_size_bytes (s) SELECT '16_bytes_-_-_-_' AS s FROM system.numbers LIMIT 10, 90" $CLICKHOUSE_CLIENT -q "OPTIMIZE TABLE preferred_block_size_bytes" $CLICKHOUSE_CLIENT --preferred_block_size_bytes=26 -q "SELECT DISTINCT blockSize(), ignore(p, s) FROM preferred_block_size_bytes" @@ -18,7 +18,7 @@ $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS preferred_block_size_bytes" # PREWHERE using empty column $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS pbs" -$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1 -q "CREATE TABLE pbs (p Date, i UInt64, sa Array(String)) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=100, index_granularity_bytes=0, min_bytes_for_wide_part = 0" +$CLICKHOUSE_CLIENT -q "CREATE TABLE pbs (p Date, i UInt64, sa Array(String)) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=100, index_granularity_bytes=0, min_bytes_for_wide_part = 0" $CLICKHOUSE_CLIENT -q "INSERT INTO pbs (p, i, sa) SELECT toDate(i % 30) AS p, number AS i, ['a'] AS sa FROM system.numbers LIMIT 1000" $CLICKHOUSE_CLIENT -q "ALTER TABLE pbs ADD COLUMN s UInt8 DEFAULT 0" $CLICKHOUSE_CLIENT --preferred_block_size_bytes=100000 -q "SELECT count() FROM pbs PREWHERE s = 0" @@ -29,7 +29,7 @@ $CLICKHOUSE_CLIENT -q "DROP TABLE pbs" # Nullable PREWHERE $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS nullable_prewhere" -$CLICKHOUSE_CLIENT --allow_deprecated_syntax_for_merge_tree=1-q "CREATE TABLE nullable_prewhere (p Date, f Nullable(UInt64), d UInt64) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=8, index_granularity_bytes=0, min_bytes_for_wide_part = 0" +$CLICKHOUSE_CLIENT -q "CREATE TABLE nullable_prewhere (p Date, f Nullable(UInt64), d UInt64) ENGINE = MergeTree PARTITION BY p ORDER BY p SETTINGS index_granularity=8, index_granularity_bytes=0, min_bytes_for_wide_part = 0" $CLICKHOUSE_CLIENT -q "INSERT INTO nullable_prewhere SELECT toDate(0) AS p, if(number % 2 = 0, CAST(number AS Nullable(UInt64)), CAST(NULL AS Nullable(UInt64))) AS f, number as d FROM system.numbers LIMIT 1001" $CLICKHOUSE_CLIENT -q "SELECT sum(d), sum(f), max(d) FROM nullable_prewhere PREWHERE NOT isNull(f)" $CLICKHOUSE_CLIENT -q "DROP TABLE IF EXISTS nullable_prewhere" diff --git a/tests/queries/0_stateless/00616_final_single_part.sql b/tests/queries/0_stateless/00616_final_single_part.sql index 605f2c8b216..8c7720f8960 100644 --- a/tests/queries/0_stateless/00616_final_single_part.sql +++ b/tests/queries/0_stateless/00616_final_single_part.sql @@ -3,6 +3,7 @@ SET optimize_on_insert = 0; DROP TABLE IF EXISTS test_00616; DROP TABLE IF EXISTS replacing_00616; +set allow_deprecated_syntax_for_merge_tree=1; CREATE TABLE test_00616 ( date Date, diff --git a/tests/queries/0_stateless/01162_strange_mutations.sh b/tests/queries/0_stateless/01162_strange_mutations.sh index 504b8bac0e0..eea9ea5f7e5 100755 --- a/tests/queries/0_stateless/01162_strange_mutations.sh +++ b/tests/queries/0_stateless/01162_strange_mutations.sh @@ -28,7 +28,7 @@ do $CLICKHOUSE_CLIENT -q "CREATE TABLE test ENGINE=$engine AS SELECT number + 100 AS n, 0 AS test FROM numbers(50)" 2>&1| grep -Ev "Removing leftovers from table|removed by another replica" $CLICKHOUSE_CLIENT -q "select count(), sum(n), sum(test) from test" if [[ $engine == *"ReplicatedMergeTree"* ]]; then - $CLICKHOUSE_CLIENT 0 -q "ALTER TABLE test + $CLICKHOUSE_CLIENT -q "ALTER TABLE test UPDATE test = (SELECT groupArray(id) FROM t1 GROUP BY 'dummy')[n - 99] WHERE 1" 2>&1| grep -Fa "DB::Exception: " | grep -Fv "statement with subquery may be nondeterministic" $CLICKHOUSE_CLIENT --allow_nondeterministic_mutations=1 --mutations_sync=1 -q "ALTER TABLE test UPDATE test = (SELECT groupArray(id) FROM t1)[n - 99] WHERE 1" diff --git a/tests/queries/0_stateless/01298_alter_merge.sql b/tests/queries/0_stateless/01298_alter_merge.sql index 86c89c38c8c..24547086e0b 100644 --- a/tests/queries/0_stateless/01298_alter_merge.sql +++ b/tests/queries/0_stateless/01298_alter_merge.sql @@ -2,6 +2,7 @@ drop table if exists merge; drop table if exists merge1; drop table if exists merge2; +set allow_deprecated_syntax_for_merge_tree=1; create table merge1 ( CounterID UInt32, StartDate Date, Sign Int8, VisitID UInt64, UserID UInt64, StartTime DateTime, ClickLogID UInt64) ENGINE = CollapsingMergeTree(StartDate, intHash32(UserID), tuple(CounterID, StartDate, intHash32(UserID), VisitID, ClickLogID), 8192, Sign); insert into merge1 values (1, '2013-09-19', 1, 0, 2, '2013-09-19 12:43:06', 3); diff --git a/tests/queries/0_stateless/01528_clickhouse_local_prepare_parts.sh b/tests/queries/0_stateless/01528_clickhouse_local_prepare_parts.sh index 95ecbf09cf5..538d712ad9c 100755 --- a/tests/queries/0_stateless/01528_clickhouse_local_prepare_parts.sh +++ b/tests/queries/0_stateless/01528_clickhouse_local_prepare_parts.sh @@ -8,7 +8,7 @@ WORKING_FOLDER_01528="${CLICKHOUSE_TMP}/01528_clickhouse_local_prepare_parts" rm -rf "${WORKING_FOLDER_01528}" mkdir -p "${WORKING_FOLDER_01528}/metadata/local" - +echo "ATTACH DATABASE local ENGINE=Ordinary" > "${WORKING_FOLDER_01528}/metadata/local.sql" ## Checks scenario of preparing parts offline by clickhouse-local ## that is the metadata for the table we want to fill From cb748cd8ec46b1962bfd28c41eeaab4b53e90c75 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Thu, 23 Jun 2022 16:11:48 +0300 Subject: [PATCH 158/525] Fix code style in KerberosInit --- src/Access/KerberosInit.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index 9ca45b12531..ace03a5e0b5 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -47,12 +47,12 @@ private: krb5_creds my_creds; krb5_keytab keytab = nullptr; krb5_principal defcache_princ = nullptr; - String fmtError(krb5_error_code code); + String fmtError(krb5_error_code code) const; }; } -String KerberosInit::fmtError(krb5_error_code code) +String KerberosInit::fmtError(krb5_error_code code) const { const char *msg; msg = krb5_get_error_message(k5.ctx, code); @@ -75,7 +75,7 @@ void KerberosInit::init(const String & keytab_file, const String & principal, co ret = krb5_init_context(&k5.ctx); if (ret) - throw Exception(fmt::format("Error while initializing Kerberos 5 library ({})", ret), ErrorCodes::KERBEROS_ERROR); + throw Exception(ErrorCodes::KERBEROS_ERROR, "Error while initializing Kerberos 5 library ({})", ret); if (!cache_name.empty()) { @@ -160,7 +160,8 @@ void KerberosInit::init(const String & keytab_file, const String & principal, co ret = krb5_get_renewed_creds(k5.ctx, &my_creds, k5.me, k5.out_cc, nullptr); if (ret) { - LOG_TRACE(log,"Renew failed ({}). Trying to get initial credentials", ret); + LOG_TRACE(log,"Renew failed {}", fmtError(ret)); + LOG_TRACE(log,"Trying to get initial credentials"); // Request KDC for an initial credentials using keytab. ret = krb5_get_init_creds_keytab(k5.ctx, &my_creds, k5.me, keytab, 0, nullptr, options); if (ret) From 7f7d082fb30e120ddd0cf94ec8fccd01b2442ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mar=C3=ADn?= Date: Thu, 23 Jun 2022 15:23:37 +0200 Subject: [PATCH 159/525] Add implicit_transaction setting --- src/Core/Settings.h | 1 + .../InterpreterTransactionControlQuery.h | 1 - src/Interpreters/executeQuery.cpp | 94 ++++++++++++++----- .../02345_implicit_transaction.reference | 14 +++ .../02345_implicit_transaction.sql | 92 ++++++++++++++++++ 5 files changed, 178 insertions(+), 24 deletions(-) create mode 100644 tests/queries/0_stateless/02345_implicit_transaction.reference create mode 100644 tests/queries/0_stateless/02345_implicit_transaction.sql diff --git a/src/Core/Settings.h b/src/Core/Settings.h index f1fd9d20f00..72ba2c0c13b 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -601,6 +601,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Bool, count_distinct_optimization, false, "Rewrite count distinct to subquery of group by", 0) \ M(Bool, throw_on_unsupported_query_inside_transaction, true, "Throw exception if unsupported query is used inside transaction", 0) \ M(TransactionsWaitCSNMode, wait_changes_become_visible_after_commit_mode, TransactionsWaitCSNMode::WAIT_UNKNOWN, "Wait for committed changes to become actually visible in the latest snapshot", 0) \ + M(Bool, implicit_transaction, false, "If enabled and not already inside a transaction, wraps the query inside a full transaction (begin + commit or rollback)", 0) \ M(Bool, throw_if_no_data_to_insert, true, "Enables or disables empty INSERTs, enabled by default", 0) \ M(Bool, compatibility_ignore_auto_increment_in_create_table, false, "Ignore AUTO_INCREMENT keyword in column declaration if true, otherwise return error. It simplifies migration from MySQL", 0) \ M(Bool, multiple_joins_try_to_keep_original_names, false, "Do not add aliases to top level expression list on multiple joins rewrite", 0) \ diff --git a/src/Interpreters/InterpreterTransactionControlQuery.h b/src/Interpreters/InterpreterTransactionControlQuery.h index bf2dc7891a7..a66a740ce0c 100644 --- a/src/Interpreters/InterpreterTransactionControlQuery.h +++ b/src/Interpreters/InterpreterTransactionControlQuery.h @@ -20,7 +20,6 @@ public: bool ignoreLimits() const override { return true; } bool supportsTransactions() const override { return true; } -private: BlockIO executeBegin(ContextMutablePtr session_context); BlockIO executeCommit(ContextMutablePtr session_context); static BlockIO executeRollback(ContextMutablePtr session_context); diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index 24649128cee..ae622e5e1f0 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -42,18 +42,19 @@ #include #include #include -#include #include +#include +#include #include #include #include -#include #include +#include #include -#include -#include -#include #include +#include +#include +#include #include #include @@ -68,6 +69,7 @@ #include #include +#include #include @@ -416,7 +418,9 @@ static std::tuple executeQueryImpl( chassert(txn->getState() != MergeTreeTransaction::COMMITTING); chassert(txn->getState() != MergeTreeTransaction::COMMITTED); if (txn->getState() == MergeTreeTransaction::ROLLED_BACK && !ast->as() && !ast->as()) - throw Exception(ErrorCodes::INVALID_TRANSACTION, "Cannot execute query because current transaction failed. Expecting ROLLBACK statement."); + throw Exception( + ErrorCodes::INVALID_TRANSACTION, + "Cannot execute query because current transaction failed. Expecting ROLLBACK statement"); } /// Interpret SETTINGS clauses as early as possible (before invoking the corresponding interpreter), @@ -498,6 +502,7 @@ static std::tuple executeQueryImpl( BlockIO res; String query_for_logging; + std::shared_ptr implicit_txn_control{}; try { @@ -626,6 +631,27 @@ static std::tuple executeQueryImpl( } else { + /// We need to start the (implicit) transaction before getting the interpreter as this will get links to the latest snapshots + if (!context->getCurrentTransaction() && settings.implicit_transaction && !ast->as()) + { + try + { + /// If there is no session (which is the default for the HTTP Handler), set up one just for this as it is necessary + /// to control the transaction lifetime + if (!context->hasSessionContext()) + context->makeSessionContext(); + + auto tc = std::make_shared(ast, context); + tc->executeBegin(context->getSessionContext()); + implicit_txn_control = std::move(tc); + } + catch (Exception & e) + { + e.addMessage("while starting a transaction with 'implicit_transaction'"); + throw; + } + } + interpreter = InterpreterFactory::get(ast, context, SelectQueryOptions(stage).setInternal(internal)); if (context->getCurrentTransaction() && !interpreter->supportsTransactions() && @@ -813,15 +839,16 @@ static std::tuple executeQueryImpl( }; /// Also make possible for caller to log successful query finish and exception during execution. - auto finish_callback = [elem, context, ast, - log_queries, - log_queries_min_type = settings.log_queries_min_type, - log_queries_min_query_duration_ms = settings.log_queries_min_query_duration_ms.totalMilliseconds(), - log_processors_profiles = settings.log_processors_profiles, - status_info_to_query_log, - pulling_pipeline = pipeline.pulling() - ] - (QueryPipeline & query_pipeline) mutable + auto finish_callback = [elem, + context, + ast, + log_queries, + log_queries_min_type = settings.log_queries_min_type, + log_queries_min_query_duration_ms = settings.log_queries_min_query_duration_ms.totalMilliseconds(), + log_processors_profiles = settings.log_processors_profiles, + status_info_to_query_log, + implicit_txn_control, + pulling_pipeline = pipeline.pulling()](QueryPipeline & query_pipeline) mutable { QueryStatus * process_list_elem = context->getProcessListElement(); @@ -942,15 +969,30 @@ static std::tuple executeQueryImpl( opentelemetry_span_log->add(span); } + + if (implicit_txn_control) + { + implicit_txn_control->executeCommit(context->getSessionContext()); + implicit_txn_control.reset(); + } }; - auto exception_callback = [elem, context, ast, - log_queries, - log_queries_min_type = settings.log_queries_min_type, - log_queries_min_query_duration_ms = settings.log_queries_min_query_duration_ms.totalMilliseconds(), - quota(quota), status_info_to_query_log] () mutable + auto exception_callback = [elem, + context, + ast, + log_queries, + log_queries_min_type = settings.log_queries_min_type, + log_queries_min_query_duration_ms = settings.log_queries_min_query_duration_ms.totalMilliseconds(), + quota(quota), + status_info_to_query_log, + implicit_txn_control]() mutable { - if (auto txn = context->getCurrentTransaction()) + if (implicit_txn_control) + { + implicit_txn_control->executeRollback(context->getSessionContext()); + implicit_txn_control.reset(); + } + else if (auto txn = context->getCurrentTransaction()) txn->onException(); if (quota) @@ -1000,7 +1042,6 @@ static std::tuple executeQueryImpl( { ProfileEvents::increment(ProfileEvents::FailedInsertQuery); } - }; res.finish_callback = std::move(finish_callback); @@ -1009,8 +1050,15 @@ static std::tuple executeQueryImpl( } catch (...) { - if (auto txn = context->getCurrentTransaction()) + if (implicit_txn_control) + { + implicit_txn_control->executeRollback(context->getSessionContext()); + implicit_txn_control.reset(); + } + else if (auto txn = context->getCurrentTransaction()) + { txn->onException(); + } if (!internal) { diff --git a/tests/queries/0_stateless/02345_implicit_transaction.reference b/tests/queries/0_stateless/02345_implicit_transaction.reference new file mode 100644 index 00000000000..e4dd35600f7 --- /dev/null +++ b/tests/queries/0_stateless/02345_implicit_transaction.reference @@ -0,0 +1,14 @@ +no_transaction_landing 10000 +no_transaction_target 0 +after_transaction_landing 0 +after_transaction_target 0 +after_implicit_txn_in_query_settings_landing 0 +after_implicit_txn_in_query_settings_target 0 +after_implicit_txn_in_session_landing 0 +after_implicit_txn_in_session_target 0 +inside_txn_and_implicit 1 +inside_txn_and_implicit 1 +in_transaction 10000 +out_transaction 0 +{"'implicit_True'":"implicit_True","all":"2","is_empty":0} +{"'implicit_False'":"implicit_False","all":"2","is_empty":1} diff --git a/tests/queries/0_stateless/02345_implicit_transaction.sql b/tests/queries/0_stateless/02345_implicit_transaction.sql new file mode 100644 index 00000000000..677affeec39 --- /dev/null +++ b/tests/queries/0_stateless/02345_implicit_transaction.sql @@ -0,0 +1,92 @@ +CREATE TABLE landing (n Int64) engine=MergeTree order by n; +CREATE TABLE target (n Int64) engine=MergeTree order by n; +CREATE MATERIALIZED VIEW landing_to_target TO target AS + SELECT n + throwIf(n == 3333) + FROM landing; + +INSERT INTO landing SELECT * FROM numbers(10000); -- { serverError 395 } +SELECT 'no_transaction_landing', count() FROM landing; +SELECT 'no_transaction_target', count() FROM target; + +TRUNCATE TABLE landing; +TRUNCATE TABLE target; + + +BEGIN TRANSACTION; +INSERT INTO landing SELECT * FROM numbers(10000); -- { serverError 395 } +ROLLBACK; +SELECT 'after_transaction_landing', count() FROM landing; +SELECT 'after_transaction_target', count() FROM target; + +-- Same but using implicit_transaction +INSERT INTO landing SETTINGS implicit_transaction=True SELECT * FROM numbers(10000); -- { serverError 395 } +SELECT 'after_implicit_txn_in_query_settings_landing', count() FROM landing; +SELECT 'after_implicit_txn_in_query_settings_target', count() FROM target; + +-- Same but using implicit_transaction in a session +SET implicit_transaction=True; +INSERT INTO landing SELECT * FROM numbers(10000); -- { serverError 395 } +SET implicit_transaction=False; +SELECT 'after_implicit_txn_in_session_landing', count() FROM landing; +SELECT 'after_implicit_txn_in_session_target', count() FROM target; + +-- Reading from incompatible sources with implicit_transaction works the same way as with normal transactions: +-- Currently reading from system tables inside a transaction is Not implemented: +SELECT name, value, changed FROM system.settings where name = 'implicit_transaction' SETTINGS implicit_transaction=True; -- { serverError 48 } + + +-- Verify that you don't have to manually close transactions with implicit_transaction +SET implicit_transaction=True; +SELECT throwIf(number == 0) FROM numbers(100); -- { serverError 395 } +SELECT throwIf(number == 0) FROM numbers(100); -- { serverError 395 } +SELECT throwIf(number == 0) FROM numbers(100); -- { serverError 395 } +SELECT throwIf(number == 0) FROM numbers(100); -- { serverError 395 } +SET implicit_transaction=False; + +-- implicit_transaction is ignored when inside a transaction (no recursive transaction error) +BEGIN TRANSACTION; +SELECT 'inside_txn_and_implicit', 1 SETTINGS implicit_transaction=True; +SELECT throwIf(number == 0) FROM numbers(100) SETTINGS implicit_transaction=True; -- { serverError 395 } +ROLLBACK; + +SELECT 'inside_txn_and_implicit', 1 SETTINGS implicit_transaction=True; + +-- You can work with transactions even if `implicit_transaction=True` is set +SET implicit_transaction=True; +BEGIN TRANSACTION; +INSERT INTO target SELECT * FROM numbers(10000); +SELECT 'in_transaction', count() FROM target; +ROLLBACK; +SELECT 'out_transaction', count() FROM target; +SET implicit_transaction=False; + + +-- Verify that the transaction_id column is populated correctly +SELECT 'Looking_at_transaction_id_True' FORMAT Null SETTINGS implicit_transaction=1; +-- Verify that the transaction_id column is NOT populated without transaction +SELECT 'Looking_at_transaction_id_False' FORMAT Null SETTINGS implicit_transaction=0; +SYSTEM FLUSH LOGS; + +SELECT + 'implicit_True', + count() as all, + transaction_id = (0,0,'00000000-0000-0000-0000-000000000000') as is_empty +FROM system.query_log +WHERE + current_database = currentDatabase() AND + event_date >= yesterday() AND + query LIKE '-- Verify that the transaction_id column is populated correctly%' +GROUP BY transaction_id +FORMAT JSONEachRow; + +SELECT + 'implicit_False', + count() as all, + transaction_id = (0,0,'00000000-0000-0000-0000-000000000000') as is_empty +FROM system.query_log +WHERE + current_database = currentDatabase() AND + event_date >= yesterday() AND + query LIKE '-- Verify that the transaction_id column is NOT populated without transaction%' +GROUP BY transaction_id +FORMAT JSONEachRow; From accc479d88a4c44f671c4bbc3da1927ee70bc148 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Thu, 23 Jun 2022 09:54:11 -0400 Subject: [PATCH 160/525] revert query changes, add setting --- .../example-datasets/brown-benchmark.md | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/docs/en/getting-started/example-datasets/brown-benchmark.md b/docs/en/getting-started/example-datasets/brown-benchmark.md index 7b995cd8345..8da7a18bac3 100644 --- a/docs/en/getting-started/example-datasets/brown-benchmark.md +++ b/docs/en/getting-started/example-datasets/brown-benchmark.md @@ -22,6 +22,10 @@ Create the database and tables: CREATE DATABASE mgbench; ``` +```sql +USE mgbench; +``` + ```sql CREATE TABLE mgbench.logs1 ( log_time DateTime, @@ -87,7 +91,12 @@ clickhouse-client --query "INSERT INTO mgbench.logs2 FORMAT CSVWithNames" < mgbe clickhouse-client --query "INSERT INTO mgbench.logs3 FORMAT CSVWithNames" < mgbench3.csv ``` -Run benchmark queries: +## Run benchmark queries: + +```sql +USE mgbench; +``` + ```sql -- Q1.1: What is the CPU/network utilization for each web server since midnight? @@ -106,7 +115,7 @@ FROM ( COALESCE(cpu_user, 0.0) AS cpu, COALESCE(bytes_in, 0.0) AS net_in, COALESCE(bytes_out, 0.0) AS net_out - FROM mgbench.logs1 + FROM logs1 WHERE machine_name IN ('anansi','aragog','urd') AND log_time >= TIMESTAMP '2017-01-11 00:00:00' ) AS r @@ -119,7 +128,7 @@ GROUP BY machine_name; SELECT machine_name, log_time -FROM mgbench.logs1 +FROM logs1 WHERE (machine_name LIKE 'cslab%' OR machine_name LIKE 'mslab%') AND load_one IS NULL @@ -146,7 +155,7 @@ FROM ( load_one, mem_free, swap_free - FROM mgbench.logs1 + FROM logs1 WHERE machine_name = 'babbage' AND load_fifteen IS NOT NULL AND load_five IS NOT NULL @@ -166,7 +175,7 @@ ORDER BY dt, SELECT machine_name, COUNT(*) AS spikes -FROM mgbench.logs1 +FROM logs1 WHERE machine_group = 'Servers' AND cpu_wio > 0.99 AND log_time >= TIMESTAMP '2016-12-01 00:00:00' @@ -186,7 +195,7 @@ FROM ( SELECT machine_name, CAST(log_time AS DATE) AS dt, mem_free - FROM mgbench.logs1 + FROM logs1 WHERE machine_group = 'DMZ' AND mem_free IS NOT NULL ) AS r @@ -210,7 +219,7 @@ FROM ( EXTRACT(HOUR FROM log_time) AS hr, COALESCE(bytes_in, 0.0) / 1000000000.0 AS net_in, COALESCE(bytes_out, 0.0) / 1000000000.0 AS net_out - FROM mgbench.logs1 + FROM logs1 WHERE machine_name IN ('allsorts','andes','bigred','blackjack','bonbon', 'cadbury','chiclets','cotton','crows','dove','fireball','hearts','huey', 'lindt','milkduds','milkyway','mnm','necco','nerds','orbit','peeps', @@ -227,7 +236,7 @@ LIMIT 10; -- Q2.1: Which requests have caused server errors within the past 2 weeks? SELECT * -FROM mgbench.logs2 +FROM logs2 WHERE status_code >= 500 AND log_time >= TIMESTAMP '2012-12-18 00:00:00' ORDER BY log_time; @@ -237,7 +246,7 @@ ORDER BY log_time; -- Q2.2: During a specific 2-week period, was the user password file leaked? SELECT * -FROM mgbench.logs2 +FROM logs2 WHERE status_code >= 200 AND status_code < 300 AND request LIKE '%/etc/passwd%' @@ -257,7 +266,7 @@ FROM ( FROM ( SELECT POSITION(SUBSTRING(request FROM 2), '/') AS len, request - FROM mgbench.logs2 + FROM logs2 WHERE status_code >= 200 AND status_code < 300 AND log_time >= TIMESTAMP '2012-12-01 00:00:00' @@ -277,7 +286,7 @@ ORDER BY top_level; SELECT client_ip, COUNT(*) AS num_requests -FROM mgbench.logs2 +FROM logs2 WHERE log_time >= TIMESTAMP '2012-10-01 00:00:00' GROUP BY client_ip HAVING COUNT(*) >= 100000 @@ -293,7 +302,7 @@ SELECT dt, FROM ( SELECT CAST(log_time AS DATE) AS dt, client_ip - FROM mgbench.logs2 + FROM logs2 ) AS r GROUP BY dt ORDER BY dt; @@ -308,7 +317,7 @@ SELECT AVG(transfer) / 125000000.0 AS transfer_avg, FROM ( SELECT log_time, SUM(object_size) AS transfer - FROM mgbench.logs2 + FROM logs2 GROUP BY log_time ) AS r; ``` @@ -318,7 +327,7 @@ FROM ( -- Q3.1: Did the indoor temperature reach freezing over the weekend? SELECT * -FROM mgbench.logs3 +FROM logs3 WHERE event_type = 'temperature' AND event_value <= 32.0 AND log_time >= '2019-11-29 17:00:00.000'; @@ -331,7 +340,7 @@ WHERE event_type = 'temperature' SELECT device_name, device_floor, COUNT(*) AS ct -FROM mgbench.logs3 +FROM logs3 WHERE event_type = 'door_open' AND log_time >= '2019-06-01 00:00:00.000' GROUP BY device_name, @@ -339,6 +348,10 @@ GROUP BY device_name, ORDER BY ct DESC; ``` +Query 3.5 below uses a UNION. Set the mode for combining SELECT query results. The setting is only used when shared with UNION without explicitly specifying the UNION ALL or UNION DISTINCT. +```sql +SET union_default_mode = 'DISTINCT' +``` ```sql -- Q3.5: Where in the building do large temperature variations occur in winter and summer? @@ -362,7 +375,7 @@ WITH temperature AS ( device_type, device_floor, event_value - FROM mgbench.logs3 + FROM logs3 WHERE event_type = 'temperature' ) AS r GROUP BY dt, @@ -384,7 +397,7 @@ SELECT DISTINCT device_name, FROM temperature WHERE dt >= DATE '2018-12-01' AND dt < DATE '2019-03-01' -UNION DISTINCT +UNION SELECT DISTINCT device_name, device_type, device_floor, @@ -426,7 +439,7 @@ FROM ( CASE WHEN device_name LIKE 'printer%' THEN event_value END AS printer, CASE WHEN device_name LIKE 'projector%' THEN event_value END AS projector, CASE WHEN device_name LIKE 'vending%' THEN event_value END AS vending - FROM mgbench.logs3 + FROM logs3 WHERE device_type = 'meter' ) AS r GROUP BY dt, From d4758c7ce9a877c3a581b682cd24d8e657866c9c Mon Sep 17 00:00:00 2001 From: kssenii Date: Thu, 23 Jun 2022 15:57:12 +0200 Subject: [PATCH 161/525] Update tests --- tests/queries/0_stateless/01271_show_privileges.reference | 1 + .../0_stateless/02117_show_create_table_system.reference | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/queries/0_stateless/01271_show_privileges.reference b/tests/queries/0_stateless/01271_show_privileges.reference index 93f93683fc4..85343ed237f 100644 --- a/tests/queries/0_stateless/01271_show_privileges.reference +++ b/tests/queries/0_stateless/01271_show_privileges.reference @@ -92,6 +92,7 @@ SYSTEM DROP MARK CACHE ['SYSTEM DROP MARK','DROP MARK CACHE','DROP MARKS'] GLOBA SYSTEM DROP UNCOMPRESSED CACHE ['SYSTEM DROP UNCOMPRESSED','DROP UNCOMPRESSED CACHE','DROP UNCOMPRESSED'] GLOBAL SYSTEM DROP CACHE SYSTEM DROP MMAP CACHE ['SYSTEM DROP MMAP','DROP MMAP CACHE','DROP MMAP'] GLOBAL SYSTEM DROP CACHE SYSTEM DROP COMPILED EXPRESSION CACHE ['SYSTEM DROP COMPILED EXPRESSION','DROP COMPILED EXPRESSION CACHE','DROP COMPILED EXPRESSIONS'] GLOBAL SYSTEM DROP CACHE +SYSTEM DROP FILESYSTEM CACHE ['SYSTEM DROP FILESYSTEM CACHE','DROP FILESYSTEM CACHE'] GLOBAL SYSTEM DROP CACHE SYSTEM DROP CACHE ['DROP CACHE'] \N SYSTEM SYSTEM RELOAD CONFIG ['RELOAD CONFIG'] GLOBAL SYSTEM RELOAD SYSTEM RELOAD SYMBOLS ['RELOAD SYMBOLS'] GLOBAL SYSTEM RELOAD diff --git a/tests/queries/0_stateless/02117_show_create_table_system.reference b/tests/queries/0_stateless/02117_show_create_table_system.reference index 100e72d9a61..1b86db9696d 100644 --- a/tests/queries/0_stateless/02117_show_create_table_system.reference +++ b/tests/queries/0_stateless/02117_show_create_table_system.reference @@ -277,7 +277,7 @@ CREATE TABLE system.grants ( `user_name` Nullable(String), `role_name` Nullable(String), - `access_type` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP CACHE' = 94, 'SYSTEM RELOAD CONFIG' = 95, 'SYSTEM RELOAD SYMBOLS' = 96, 'SYSTEM RELOAD DICTIONARY' = 97, 'SYSTEM RELOAD MODEL' = 98, 'SYSTEM RELOAD FUNCTION' = 99, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 100, 'SYSTEM RELOAD' = 101, 'SYSTEM RESTART DISK' = 102, 'SYSTEM MERGES' = 103, 'SYSTEM TTL MERGES' = 104, 'SYSTEM FETCHES' = 105, 'SYSTEM MOVES' = 106, 'SYSTEM DISTRIBUTED SENDS' = 107, 'SYSTEM REPLICATED SENDS' = 108, 'SYSTEM SENDS' = 109, 'SYSTEM REPLICATION QUEUES' = 110, 'SYSTEM DROP REPLICA' = 111, 'SYSTEM SYNC REPLICA' = 112, 'SYSTEM RESTART REPLICA' = 113, 'SYSTEM RESTORE REPLICA' = 114, 'SYSTEM SYNC DATABASE REPLICA' = 115, 'SYSTEM SYNC TRANSACTION LOG' = 116, 'SYSTEM FLUSH DISTRIBUTED' = 117, 'SYSTEM FLUSH LOGS' = 118, 'SYSTEM FLUSH' = 119, 'SYSTEM THREAD FUZZER' = 120, 'SYSTEM UNFREEZE' = 121, 'SYSTEM' = 122, 'dictGet' = 123, 'addressToLine' = 124, 'addressToLineWithInlines' = 125, 'addressToSymbol' = 126, 'demangle' = 127, 'INTROSPECTION' = 128, 'FILE' = 129, 'URL' = 130, 'REMOTE' = 131, 'MONGO' = 132, 'MEILISEARCH' = 133, 'MYSQL' = 134, 'POSTGRES' = 135, 'SQLITE' = 136, 'ODBC' = 137, 'JDBC' = 138, 'HDFS' = 139, 'S3' = 140, 'HIVE' = 141, 'SOURCES' = 142, 'CLUSTER' = 143, 'ALL' = 144, 'NONE' = 145), + `access_type` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP FILESYSTEM CACHE' = 94, 'SYSTEM DROP CACHE' = 95, 'SYSTEM RELOAD CONFIG' = 96, 'SYSTEM RELOAD SYMBOLS' = 97, 'SYSTEM RELOAD DICTIONARY' = 98, 'SYSTEM RELOAD MODEL' = 99, 'SYSTEM RELOAD FUNCTION' = 100, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 101, 'SYSTEM RELOAD' = 102, 'SYSTEM RESTART DISK' = 103, 'SYSTEM MERGES' = 104, 'SYSTEM TTL MERGES' = 105, 'SYSTEM FETCHES' = 106, 'SYSTEM MOVES' = 107, 'SYSTEM DISTRIBUTED SENDS' = 108, 'SYSTEM REPLICATED SENDS' = 109, 'SYSTEM SENDS' = 110, 'SYSTEM REPLICATION QUEUES' = 111, 'SYSTEM DROP REPLICA' = 112, 'SYSTEM SYNC REPLICA' = 113, 'SYSTEM RESTART REPLICA' = 114, 'SYSTEM RESTORE REPLICA' = 115, 'SYSTEM SYNC DATABASE REPLICA' = 116, 'SYSTEM SYNC TRANSACTION LOG' = 117, 'SYSTEM FLUSH DISTRIBUTED' = 118, 'SYSTEM FLUSH LOGS' = 119, 'SYSTEM FLUSH' = 120, 'SYSTEM THREAD FUZZER' = 121, 'SYSTEM UNFREEZE' = 122, 'SYSTEM' = 123, 'dictGet' = 124, 'addressToLine' = 125, 'addressToLineWithInlines' = 126, 'addressToSymbol' = 127, 'demangle' = 128, 'INTROSPECTION' = 129, 'FILE' = 130, 'URL' = 131, 'REMOTE' = 132, 'MONGO' = 133, 'MEILISEARCH' = 134, 'MYSQL' = 135, 'POSTGRES' = 136, 'SQLITE' = 137, 'ODBC' = 138, 'JDBC' = 139, 'HDFS' = 140, 'S3' = 141, 'HIVE' = 142, 'SOURCES' = 143, 'CLUSTER' = 144, 'ALL' = 145, 'NONE' = 146), `database` Nullable(String), `table` Nullable(String), `column` Nullable(String), @@ -551,10 +551,10 @@ ENGINE = SystemPartsColumns COMMENT 'SYSTEM TABLE is built on the fly.' CREATE TABLE system.privileges ( - `privilege` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP CACHE' = 94, 'SYSTEM RELOAD CONFIG' = 95, 'SYSTEM RELOAD SYMBOLS' = 96, 'SYSTEM RELOAD DICTIONARY' = 97, 'SYSTEM RELOAD MODEL' = 98, 'SYSTEM RELOAD FUNCTION' = 99, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 100, 'SYSTEM RELOAD' = 101, 'SYSTEM RESTART DISK' = 102, 'SYSTEM MERGES' = 103, 'SYSTEM TTL MERGES' = 104, 'SYSTEM FETCHES' = 105, 'SYSTEM MOVES' = 106, 'SYSTEM DISTRIBUTED SENDS' = 107, 'SYSTEM REPLICATED SENDS' = 108, 'SYSTEM SENDS' = 109, 'SYSTEM REPLICATION QUEUES' = 110, 'SYSTEM DROP REPLICA' = 111, 'SYSTEM SYNC REPLICA' = 112, 'SYSTEM RESTART REPLICA' = 113, 'SYSTEM RESTORE REPLICA' = 114, 'SYSTEM SYNC DATABASE REPLICA' = 115, 'SYSTEM SYNC TRANSACTION LOG' = 116, 'SYSTEM FLUSH DISTRIBUTED' = 117, 'SYSTEM FLUSH LOGS' = 118, 'SYSTEM FLUSH' = 119, 'SYSTEM THREAD FUZZER' = 120, 'SYSTEM UNFREEZE' = 121, 'SYSTEM' = 122, 'dictGet' = 123, 'addressToLine' = 124, 'addressToLineWithInlines' = 125, 'addressToSymbol' = 126, 'demangle' = 127, 'INTROSPECTION' = 128, 'FILE' = 129, 'URL' = 130, 'REMOTE' = 131, 'MONGO' = 132, 'MEILISEARCH' = 133, 'MYSQL' = 134, 'POSTGRES' = 135, 'SQLITE' = 136, 'ODBC' = 137, 'JDBC' = 138, 'HDFS' = 139, 'S3' = 140, 'HIVE' = 141, 'SOURCES' = 142, 'CLUSTER' = 143, 'ALL' = 144, 'NONE' = 145), + `privilege` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP FILESYSTEM CACHE' = 94, 'SYSTEM DROP CACHE' = 95, 'SYSTEM RELOAD CONFIG' = 96, 'SYSTEM RELOAD SYMBOLS' = 97, 'SYSTEM RELOAD DICTIONARY' = 98, 'SYSTEM RELOAD MODEL' = 99, 'SYSTEM RELOAD FUNCTION' = 100, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 101, 'SYSTEM RELOAD' = 102, 'SYSTEM RESTART DISK' = 103, 'SYSTEM MERGES' = 104, 'SYSTEM TTL MERGES' = 105, 'SYSTEM FETCHES' = 106, 'SYSTEM MOVES' = 107, 'SYSTEM DISTRIBUTED SENDS' = 108, 'SYSTEM REPLICATED SENDS' = 109, 'SYSTEM SENDS' = 110, 'SYSTEM REPLICATION QUEUES' = 111, 'SYSTEM DROP REPLICA' = 112, 'SYSTEM SYNC REPLICA' = 113, 'SYSTEM RESTART REPLICA' = 114, 'SYSTEM RESTORE REPLICA' = 115, 'SYSTEM SYNC DATABASE REPLICA' = 116, 'SYSTEM SYNC TRANSACTION LOG' = 117, 'SYSTEM FLUSH DISTRIBUTED' = 118, 'SYSTEM FLUSH LOGS' = 119, 'SYSTEM FLUSH' = 120, 'SYSTEM THREAD FUZZER' = 121, 'SYSTEM UNFREEZE' = 122, 'SYSTEM' = 123, 'dictGet' = 124, 'addressToLine' = 125, 'addressToLineWithInlines' = 126, 'addressToSymbol' = 127, 'demangle' = 128, 'INTROSPECTION' = 129, 'FILE' = 130, 'URL' = 131, 'REMOTE' = 132, 'MONGO' = 133, 'MEILISEARCH' = 134, 'MYSQL' = 135, 'POSTGRES' = 136, 'SQLITE' = 137, 'ODBC' = 138, 'JDBC' = 139, 'HDFS' = 140, 'S3' = 141, 'HIVE' = 142, 'SOURCES' = 143, 'CLUSTER' = 144, 'ALL' = 145, 'NONE' = 146), `aliases` Array(String), `level` Nullable(Enum8('GLOBAL' = 0, 'DATABASE' = 1, 'TABLE' = 2, 'DICTIONARY' = 3, 'VIEW' = 4, 'COLUMN' = 5)), - `parent_group` Nullable(Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP CACHE' = 94, 'SYSTEM RELOAD CONFIG' = 95, 'SYSTEM RELOAD SYMBOLS' = 96, 'SYSTEM RELOAD DICTIONARY' = 97, 'SYSTEM RELOAD MODEL' = 98, 'SYSTEM RELOAD FUNCTION' = 99, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 100, 'SYSTEM RELOAD' = 101, 'SYSTEM RESTART DISK' = 102, 'SYSTEM MERGES' = 103, 'SYSTEM TTL MERGES' = 104, 'SYSTEM FETCHES' = 105, 'SYSTEM MOVES' = 106, 'SYSTEM DISTRIBUTED SENDS' = 107, 'SYSTEM REPLICATED SENDS' = 108, 'SYSTEM SENDS' = 109, 'SYSTEM REPLICATION QUEUES' = 110, 'SYSTEM DROP REPLICA' = 111, 'SYSTEM SYNC REPLICA' = 112, 'SYSTEM RESTART REPLICA' = 113, 'SYSTEM RESTORE REPLICA' = 114, 'SYSTEM SYNC DATABASE REPLICA' = 115, 'SYSTEM SYNC TRANSACTION LOG' = 116, 'SYSTEM FLUSH DISTRIBUTED' = 117, 'SYSTEM FLUSH LOGS' = 118, 'SYSTEM FLUSH' = 119, 'SYSTEM THREAD FUZZER' = 120, 'SYSTEM UNFREEZE' = 121, 'SYSTEM' = 122, 'dictGet' = 123, 'addressToLine' = 124, 'addressToLineWithInlines' = 125, 'addressToSymbol' = 126, 'demangle' = 127, 'INTROSPECTION' = 128, 'FILE' = 129, 'URL' = 130, 'REMOTE' = 131, 'MONGO' = 132, 'MEILISEARCH' = 133, 'MYSQL' = 134, 'POSTGRES' = 135, 'SQLITE' = 136, 'ODBC' = 137, 'JDBC' = 138, 'HDFS' = 139, 'S3' = 140, 'HIVE' = 141, 'SOURCES' = 142, 'CLUSTER' = 143, 'ALL' = 144, 'NONE' = 145)) + `parent_group` Nullable(Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP FILESYSTEM CACHE' = 94, 'SYSTEM DROP CACHE' = 95, 'SYSTEM RELOAD CONFIG' = 96, 'SYSTEM RELOAD SYMBOLS' = 97, 'SYSTEM RELOAD DICTIONARY' = 98, 'SYSTEM RELOAD MODEL' = 99, 'SYSTEM RELOAD FUNCTION' = 100, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 101, 'SYSTEM RELOAD' = 102, 'SYSTEM RESTART DISK' = 103, 'SYSTEM MERGES' = 104, 'SYSTEM TTL MERGES' = 105, 'SYSTEM FETCHES' = 106, 'SYSTEM MOVES' = 107, 'SYSTEM DISTRIBUTED SENDS' = 108, 'SYSTEM REPLICATED SENDS' = 109, 'SYSTEM SENDS' = 110, 'SYSTEM REPLICATION QUEUES' = 111, 'SYSTEM DROP REPLICA' = 112, 'SYSTEM SYNC REPLICA' = 113, 'SYSTEM RESTART REPLICA' = 114, 'SYSTEM RESTORE REPLICA' = 115, 'SYSTEM SYNC DATABASE REPLICA' = 116, 'SYSTEM SYNC TRANSACTION LOG' = 117, 'SYSTEM FLUSH DISTRIBUTED' = 118, 'SYSTEM FLUSH LOGS' = 119, 'SYSTEM FLUSH' = 120, 'SYSTEM THREAD FUZZER' = 121, 'SYSTEM UNFREEZE' = 122, 'SYSTEM' = 123, 'dictGet' = 124, 'addressToLine' = 125, 'addressToLineWithInlines' = 126, 'addressToSymbol' = 127, 'demangle' = 128, 'INTROSPECTION' = 129, 'FILE' = 130, 'URL' = 131, 'REMOTE' = 132, 'MONGO' = 133, 'MEILISEARCH' = 134, 'MYSQL' = 135, 'POSTGRES' = 136, 'SQLITE' = 137, 'ODBC' = 138, 'JDBC' = 139, 'HDFS' = 140, 'S3' = 141, 'HIVE' = 142, 'SOURCES' = 143, 'CLUSTER' = 144, 'ALL' = 145, 'NONE' = 146)) ) ENGINE = SystemPrivileges COMMENT 'SYSTEM TABLE is built on the fly.' From 468c98ff42f75c9b6af2d87662e3d2d087a3778c Mon Sep 17 00:00:00 2001 From: kssenii Date: Thu, 23 Jun 2022 17:46:27 +0200 Subject: [PATCH 162/525] Better --- src/Access/Common/AccessType.h | 1 + src/Common/FileCacheFactory.cpp | 47 +++++++++---------- src/Common/FileCacheFactory.h | 13 +++-- src/Interpreters/AsynchronousMetrics.cpp | 4 +- .../InterpreterDescribeCacheQuery.cpp | 4 +- .../InterpreterShowTablesQuery.cpp | 23 +++++++++ src/Interpreters/InterpreterSystemQuery.cpp | 2 +- src/Parsers/ASTShowTablesQuery.cpp | 6 +++ src/Parsers/ASTShowTablesQuery.h | 3 +- src/Parsers/ParserShowTablesQuery.cpp | 5 ++ .../System/StorageSystemFilesystemCache.cpp | 2 +- 11 files changed, 73 insertions(+), 37 deletions(-) diff --git a/src/Access/Common/AccessType.h b/src/Access/Common/AccessType.h index 41739406de4..10db8907f8a 100644 --- a/src/Access/Common/AccessType.h +++ b/src/Access/Common/AccessType.h @@ -25,6 +25,7 @@ enum class AccessType M(SHOW_DICTIONARIES, "", DICTIONARY, SHOW) /* allows to execute SHOW DICTIONARIES, SHOW CREATE DICTIONARY, EXISTS ; implicitly enabled by any grant on the dictionary */\ M(SHOW, "", GROUP, ALL) /* allows to execute SHOW, USE, EXISTS, CHECK, DESCRIBE */\ + M(SHOW_CACHES, "", GROUP, ALL) \ \ M(SELECT, "", COLUMN, ALL) \ M(INSERT, "", COLUMN, ALL) \ diff --git a/src/Common/FileCacheFactory.cpp b/src/Common/FileCacheFactory.cpp index b2dc2739d8a..259c1d3f48e 100644 --- a/src/Common/FileCacheFactory.cpp +++ b/src/Common/FileCacheFactory.cpp @@ -24,31 +24,21 @@ FileCacheFactory::CacheByBasePath FileCacheFactory::getAll() const FileCacheSettings & FileCacheFactory::getSettings(const std::string & cache_base_path) { std::lock_guard lock(mutex); - - auto * cache_data = getImpl(cache_base_path, lock); - if (cache_data) - return cache_data->settings; - - throw Exception(ErrorCodes::BAD_ARGUMENTS, "No cache found by path: {}", cache_base_path); -} - -FileCacheFactory::FileCacheData * FileCacheFactory::getImpl(const std::string & cache_base_path, std::lock_guard &) -{ auto it = caches_by_path.find(cache_base_path); if (it == caches_by_path.end()) - return nullptr; - return &it->second; + throw Exception(ErrorCodes::BAD_ARGUMENTS, "No cache found by path: {}", cache_base_path); + return it->second->settings; + } FileCachePtr FileCacheFactory::get(const std::string & cache_base_path) { std::lock_guard lock(mutex); + auto it = caches_by_path.find(cache_base_path); + if (it == caches_by_path.end()) + throw Exception(ErrorCodes::BAD_ARGUMENTS, "No cache found by path: {}", cache_base_path); + return it->second->cache; - auto * cache_data = getImpl(cache_base_path, lock); - if (cache_data) - return cache_data->cache; - - throw Exception(ErrorCodes::BAD_ARGUMENTS, "No cache found by path: {}", cache_base_path); } FileCachePtr FileCacheFactory::getOrCreate( @@ -56,33 +46,38 @@ FileCachePtr FileCacheFactory::getOrCreate( { std::lock_guard lock(mutex); - auto * cache_data = getImpl(cache_base_path, lock); - if (cache_data) + auto it = caches_by_path.find(cache_base_path); + if (it != caches_by_path.end()) { - registerCacheByName(name, *cache_data); - return cache_data->cache; + caches_by_name.emplace(name, it->second); + return it->second->cache; } auto cache = std::make_shared(cache_base_path, file_cache_settings); FileCacheData result{cache, file_cache_settings}; - registerCacheByName(name, result); - caches_by_path.emplace(cache_base_path, result); + auto cache_it = caches.insert(caches.end(), std::move(result)); + caches_by_name.emplace(name, cache_it); + caches_by_path.emplace(cache_base_path, cache_it); return cache; } FileCacheFactory::FileCacheData FileCacheFactory::getByName(const std::string & name) { + std::lock_guard lock(mutex); + auto it = caches_by_name.find(name); if (it == caches_by_name.end()) throw Exception(ErrorCodes::BAD_ARGUMENTS, "No cache found by name: {}", name); - return it->second; + + return *it->second; } -void FileCacheFactory::registerCacheByName(const std::string & name, const FileCacheData & cache_data) +FileCacheFactory::CacheByName FileCacheFactory::getAllByName() { - caches_by_name.emplace(std::make_pair(name, cache_data)); + std::lock_guard lock(mutex); + return caches_by_name; } } diff --git a/src/Common/FileCacheFactory.h b/src/Common/FileCacheFactory.h index 007d77643b6..0d99da0343c 100644 --- a/src/Common/FileCacheFactory.h +++ b/src/Common/FileCacheFactory.h @@ -6,6 +6,7 @@ #include #include #include +#include namespace DB { @@ -24,8 +25,9 @@ public: FileCacheData(FileCachePtr cache_, const FileCacheSettings & settings_) : cache(cache_), settings(settings_) {} }; - using CacheByBasePath = std::unordered_map; - using CacheByName = std::unordered_map; + using Caches = std::list; + using CacheByBasePath = std::unordered_map; + using CacheByName = std::unordered_map; static FileCacheFactory & instance(); @@ -39,11 +41,12 @@ public: FileCacheData getByName(const std::string & name); -private: - FileCacheData * getImpl(const std::string & cache_base_path, std::lock_guard &); - void registerCacheByName(const std::string & name, const FileCacheData & cache_data); + CacheByName getAllByName(); +private: std::mutex mutex; + Caches caches; + CacheByBasePath caches_by_path; CacheByName caches_by_name; }; diff --git a/src/Interpreters/AsynchronousMetrics.cpp b/src/Interpreters/AsynchronousMetrics.cpp index 4ac5acfd60f..37ed418ec2a 100644 --- a/src/Interpreters/AsynchronousMetrics.cpp +++ b/src/Interpreters/AsynchronousMetrics.cpp @@ -615,8 +615,8 @@ void AsynchronousMetrics::update(std::chrono::system_clock::time_point update_ti auto caches = FileCacheFactory::instance().getAll(); for (const auto & [_, cache_data] : caches) { - new_values["FilesystemCacheBytes"] = cache_data.cache->getUsedCacheSize(); - new_values["FilesystemCacheFiles"] = cache_data.cache->getFileSegmentsNum(); + new_values["FilesystemCacheBytes"] = cache_data->cache->getUsedCacheSize(); + new_values["FilesystemCacheFiles"] = cache_data->cache->getFileSegmentsNum(); } } diff --git a/src/Interpreters/InterpreterDescribeCacheQuery.cpp b/src/Interpreters/InterpreterDescribeCacheQuery.cpp index 554153922b5..dd6df26c6af 100644 --- a/src/Interpreters/InterpreterDescribeCacheQuery.cpp +++ b/src/Interpreters/InterpreterDescribeCacheQuery.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -6,6 +7,7 @@ #include #include #include +#include #include namespace DB @@ -28,7 +30,7 @@ static Block getSampleBlock() BlockIO InterpreterDescribeCacheQuery::execute() { - ColumnsDescription columns; + getContext()->checkAccess(AccessType::SHOW_CACHES); const auto & ast = query_ptr->as(); Block sample_block = getSampleBlock(); diff --git a/src/Interpreters/InterpreterShowTablesQuery.cpp b/src/Interpreters/InterpreterShowTablesQuery.cpp index 609df1404ca..d623b6c71d6 100644 --- a/src/Interpreters/InterpreterShowTablesQuery.cpp +++ b/src/Interpreters/InterpreterShowTablesQuery.cpp @@ -5,6 +5,11 @@ #include #include #include +#include +#include +#include +#include +#include #include #include @@ -142,6 +147,24 @@ String InterpreterShowTablesQuery::getRewrittenQuery() BlockIO InterpreterShowTablesQuery::execute() { + const auto & query = query_ptr->as(); + if (query.caches) + { + getContext()->checkAccess(AccessType::SHOW_CACHES); + + Block sample_block{ColumnWithTypeAndName(std::make_shared(), "Caches")}; + MutableColumns res_columns = sample_block.cloneEmptyColumns(); + auto caches = FileCacheFactory::instance().getAllByName(); + for (const auto & [name, _] : caches) + res_columns[0]->insert(name); + BlockIO res; + size_t num_rows = res_columns[0]->size(); + auto source = std::make_shared(sample_block, Chunk(std::move(res_columns), num_rows)); + res.pipeline = QueryPipeline(std::move(source)); + + return res; + } + return executeQuery(getRewrittenQuery(), getContext(), true); } diff --git a/src/Interpreters/InterpreterSystemQuery.cpp b/src/Interpreters/InterpreterSystemQuery.cpp index 9196a5222a2..67e2c8b6ecd 100644 --- a/src/Interpreters/InterpreterSystemQuery.cpp +++ b/src/Interpreters/InterpreterSystemQuery.cpp @@ -316,7 +316,7 @@ BlockIO InterpreterSystemQuery::execute() { auto caches = FileCacheFactory::instance().getAll(); for (const auto & [_, cache_data] : caches) - cache_data.cache->removeIfReleasable(/* remove_persistent_files */false); + cache_data->cache->removeIfReleasable(/* remove_persistent_files */false); } else { diff --git a/src/Parsers/ASTShowTablesQuery.cpp b/src/Parsers/ASTShowTablesQuery.cpp index 61d68c4a273..42cc0077efa 100644 --- a/src/Parsers/ASTShowTablesQuery.cpp +++ b/src/Parsers/ASTShowTablesQuery.cpp @@ -55,6 +55,12 @@ void ASTShowTablesQuery::formatQueryImpl(const FormatSettings & settings, Format settings.ostr << (settings.hilite ? hilite_keyword : "") << "SHOW CLUSTER" << (settings.hilite ? hilite_none : ""); settings.ostr << " " << backQuoteIfNeed(cluster_str); } + else if (caches) + { + settings.ostr << (settings.hilite ? hilite_keyword : "") << "SHOW CACHES" << (settings.hilite ? hilite_none : ""); + formatLike(settings); + formatLimit(settings, state, frame); + } else if (m_settings) { settings.ostr << (settings.hilite ? hilite_keyword : "") << "SHOW " << (changed ? "CHANGED " : "") << "SETTINGS" << diff --git a/src/Parsers/ASTShowTablesQuery.h b/src/Parsers/ASTShowTablesQuery.h index 57383dff66f..04cf9d6645a 100644 --- a/src/Parsers/ASTShowTablesQuery.h +++ b/src/Parsers/ASTShowTablesQuery.h @@ -9,7 +9,7 @@ namespace DB { -/** Query SHOW TABLES or SHOW DATABASES or SHOW CLUSTERS +/** Query SHOW TABLES or SHOW DATABASES or SHOW CLUSTERS or SHOW CACHES */ class ASTShowTablesQuery : public ASTQueryWithOutput { @@ -21,6 +21,7 @@ public: bool m_settings{false}; bool changed{false}; bool temporary{false}; + bool caches{false}; String cluster_str; String from; diff --git a/src/Parsers/ParserShowTablesQuery.cpp b/src/Parsers/ParserShowTablesQuery.cpp index b5c8687321e..46c783b8271 100644 --- a/src/Parsers/ParserShowTablesQuery.cpp +++ b/src/Parsers/ParserShowTablesQuery.cpp @@ -24,6 +24,7 @@ bool ParserShowTablesQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expec ParserKeyword s_clusters("CLUSTERS"); ParserKeyword s_cluster("CLUSTER"); ParserKeyword s_dictionaries("DICTIONARIES"); + ParserKeyword s_caches("CACHES"); ParserKeyword s_settings("SETTINGS"); ParserKeyword s_changed("CHANGED"); ParserKeyword s_from("FROM"); @@ -91,6 +92,10 @@ bool ParserShowTablesQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expec return false; } } + else if (s_caches.ignore(pos, expected)) + { + query->caches = true; + } else if (s_cluster.ignore(pos, expected)) { query->cluster = true; diff --git a/src/Storages/System/StorageSystemFilesystemCache.cpp b/src/Storages/System/StorageSystemFilesystemCache.cpp index 4b76163363a..2baddadec90 100644 --- a/src/Storages/System/StorageSystemFilesystemCache.cpp +++ b/src/Storages/System/StorageSystemFilesystemCache.cpp @@ -38,7 +38,7 @@ void StorageSystemFilesystemCache::fillData(MutableColumns & res_columns, Contex for (const auto & [cache_base_path, cache_data] : caches) { - const auto & cache = cache_data.cache; + const auto & cache = cache_data->cache; auto file_segments = cache->getSnapshot(); for (const auto & file_segment : file_segments) From 94a9af41910ca8c2d932846765d766772e5bc21c Mon Sep 17 00:00:00 2001 From: kssenii Date: Thu, 23 Jun 2022 17:54:11 +0200 Subject: [PATCH 163/525] Add test --- tests/queries/0_stateless/02344_describe_cache.reference | 1 + tests/queries/0_stateless/02344_describe_cache.sql | 1 + 2 files changed, 2 insertions(+) create mode 100644 tests/queries/0_stateless/02344_describe_cache.reference create mode 100644 tests/queries/0_stateless/02344_describe_cache.sql diff --git a/tests/queries/0_stateless/02344_describe_cache.reference b/tests/queries/0_stateless/02344_describe_cache.reference new file mode 100644 index 00000000000..affee889537 --- /dev/null +++ b/tests/queries/0_stateless/02344_describe_cache.reference @@ -0,0 +1 @@ +22548578304 1048576 104857600 1 0 0 0 ./s3_cache/ diff --git a/tests/queries/0_stateless/02344_describe_cache.sql b/tests/queries/0_stateless/02344_describe_cache.sql new file mode 100644 index 00000000000..aa6a409cd49 --- /dev/null +++ b/tests/queries/0_stateless/02344_describe_cache.sql @@ -0,0 +1 @@ +DESCRIBE CACHE 's3disk'; From dfae6a5634f868d37889f671e2470950bb2a916f Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 23 Jun 2022 14:53:39 +0200 Subject: [PATCH 164/525] Upload logs for getting all tests command --- tests/integration/ci-runner.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/tests/integration/ci-runner.py b/tests/integration/ci-runner.py index e4bd1be9027..562497fe8b0 100755 --- a/tests/integration/ci-runner.py +++ b/tests/integration/ci-runner.py @@ -367,7 +367,7 @@ class ClickhouseIntegrationTestsRunner: def _get_all_tests(self, repo_path): image_cmd = self._get_runner_image_cmd(repo_path) out_file = "all_tests.txt" - out_file_full = "all_tests_full.txt" + out_file_full = os.path.join(self.result_path, "runner_get_all_tests.log") cmd = ( "cd {repo_path}/tests/integration && " "timeout -s 9 1h ./runner {runner_opts} {image_cmd} ' --setup-plan' " @@ -393,21 +393,16 @@ class ClickhouseIntegrationTestsRunner: not os.path.isfile(all_tests_file_path) or os.path.getsize(all_tests_file_path) == 0 ): - all_tests_full_file_path = ( - "{repo_path}/tests/integration/{out_file}".format( - repo_path=repo_path, out_file=out_file_full - ) - ) - if os.path.isfile(all_tests_full_file_path): + if os.path.isfile(out_file_full): # log runner output logging.info("runner output:") - with open(all_tests_full_file_path, "r") as all_tests_full_file: + with open(out_file_full, "r") as all_tests_full_file: for line in all_tests_full_file: line = line.rstrip() if line: logging.info("runner output: %s", line) else: - logging.info("runner output '%s' is empty", all_tests_full_file_path) + logging.info("runner output '%s' is empty", out_file_full) raise Exception( "There is something wrong with getting all tests list: file '{}' is empty or does not exist.".format( From 2bdedf5e0cd366064d3dc4919e95748eb3a25ccd Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 23 Jun 2022 18:21:46 +0200 Subject: [PATCH 165/525] Some changes --- .../MergeTree/DataPartStorageOnDisk.cpp | 31 +++++++++++++------ .../MergeTree/DataPartStorageOnDisk.h | 4 +++ src/Storages/MergeTree/IDataPartStorage.h | 2 ++ src/Storages/MergeTree/MergeTreeData.cpp | 20 +++++++----- src/Storages/MergeTree/MergeTreeData.h | 9 ++++-- .../MergeTree/MergeTreeDataWriter.cpp | 3 +- src/Storages/MergeTree/MergeTreeDataWriter.h | 1 + .../MergeTree/ReplicatedMergeTreeSink.cpp | 11 ++++--- .../MergeTree/ReplicatedMergeTreeSink.h | 6 +++- src/Storages/StorageReplicatedMergeTree.cpp | 2 +- 10 files changed, 61 insertions(+), 28 deletions(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 9b4e7654c98..265964b7dc0 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -768,8 +768,14 @@ void DataPartStorageOnDisk::changeRootPath(const std::string & from_root, const root_path = to_root.substr(0, dst_size) + root_path.substr(prefix_size); } -DataPartStorageBuilderOnDisk::DataPartStorageBuilderOnDisk(VolumePtr volume_, std::string root_path_, std::string part_dir_) - : volume(std::move(volume_)), root_path(std::move(root_path_)), part_dir(std::move(part_dir_)) +DataPartStorageBuilderOnDisk::DataPartStorageBuilderOnDisk( + VolumePtr volume_, + std::string root_path_, + std::string part_dir_) + : volume(std::move(volume_)) + , root_path(std::move(root_path_)) + , part_dir(std::move(part_dir_)) + , transaction(volume->getDisk()->createTransaction()) { } @@ -778,27 +784,27 @@ std::unique_ptr DataPartStorageBuilderOnDisk::writeFile size_t buf_size, const WriteSettings & settings) { - return volume->getDisk()->writeFile(fs::path(root_path) / part_dir / name, buf_size, WriteMode::Rewrite, settings); + return transaction->writeFile(fs::path(root_path) / part_dir / name, buf_size, WriteMode::Rewrite, settings, /* autocommit = */ false); } void DataPartStorageBuilderOnDisk::removeFile(const String & name) { - return volume->getDisk()->removeFile(fs::path(root_path) / part_dir / name); + transaction->removeFile(fs::path(root_path) / part_dir / name); } void DataPartStorageBuilderOnDisk::removeFileIfExists(const String & name) { - return volume->getDisk()->removeFileIfExists(fs::path(root_path) / part_dir / name); + transaction->removeFileIfExists(fs::path(root_path) / part_dir / name); } void DataPartStorageBuilderOnDisk::removeRecursive() { - volume->getDisk()->removeRecursive(fs::path(root_path) / part_dir); + transaction->removeRecursive(fs::path(root_path) / part_dir); } void DataPartStorageBuilderOnDisk::removeSharedRecursive(bool keep_in_remote_fs) { - volume->getDisk()->removeSharedRecursive(fs::path(root_path) / part_dir, keep_in_remote_fs, {}); + transaction->removeSharedRecursive(fs::path(root_path) / part_dir, keep_in_remote_fs, {}); } SyncGuardPtr DataPartStorageBuilderOnDisk::getDirectorySyncGuard() const @@ -815,7 +821,7 @@ void DataPartStorageBuilderOnDisk::createHardLinkFrom(const IDataPartStorage & s "Cannot create hardlink from different storage. Expected DataPartStorageOnDisk, got {}", typeid(source).name()); - volume->getDisk()->createHardLink( + transaction->createHardLink( fs::path(source_on_disk->getRelativePath()) / from, fs::path(root_path) / part_dir / to); } @@ -837,12 +843,12 @@ std::string DataPartStorageBuilderOnDisk::getRelativePath() const void DataPartStorageBuilderOnDisk::createDirectories() { - return volume->getDisk()->createDirectories(fs::path(root_path) / part_dir); + transaction->createDirectories(fs::path(root_path) / part_dir); } void DataPartStorageBuilderOnDisk::createProjection(const std::string & name) { - return volume->getDisk()->createDirectory(fs::path(root_path) / part_dir / name); + transaction->createDirectory(fs::path(root_path) / part_dir / name); } ReservationPtr DataPartStorageBuilderOnDisk::reserve(UInt64 bytes) @@ -864,4 +870,9 @@ DataPartStoragePtr DataPartStorageBuilderOnDisk::getStorage() const return std::make_shared(volume, root_path, part_dir); } +void DataPartStorageBuilderOnDisk::commit() +{ + transaction->commit(); +} + } diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.h b/src/Storages/MergeTree/DataPartStorageOnDisk.h index 11fc2cd2f6d..90dec12b283 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.h +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.h @@ -1,5 +1,6 @@ #pragma once #include +#include #include #include @@ -158,10 +159,13 @@ public: DataPartStoragePtr getStorage() const override; + void commit() override; + private: VolumePtr volume; std::string root_path; std::string part_dir; + DiskTransactionPtr transaction; }; } diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index 89037e4a45a..f75fbbbd5a3 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -243,6 +243,8 @@ public: virtual std::shared_ptr getProjection(const std::string & name) const = 0; virtual DataPartStoragePtr getStorage() const = 0; + + virtual void commit() = 0; }; using DataPartStorageBuilderPtr = std::shared_ptr; diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index c24636a56f8..54a881eda12 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2790,7 +2790,8 @@ bool MergeTreeData::renameTempPartAndAdd( SimpleIncrement * increment, Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log, - std::string_view deduplication_token) + std::string_view deduplication_token, + DataPartStorageBuilderPtr part_builder) { if (out_transaction && &out_transaction->data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", @@ -2799,7 +2800,7 @@ bool MergeTreeData::renameTempPartAndAdd( DataPartsVector covered_parts; { auto lock = lockParts(); - if (!renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token)) + if (!renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token, part_builder)) return false; } if (!covered_parts.empty()) @@ -2818,12 +2819,19 @@ bool MergeTreeData::renameTempPartAndReplace( std::unique_lock & lock, DataPartsVector * out_covered_parts, MergeTreeDeduplicationLog * deduplication_log, - std::string_view deduplication_token) + std::string_view deduplication_token, + DataPartStorageBuilderPtr part_builder) { + + LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part_name); + if (out_transaction && &out_transaction->data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", ErrorCodes::LOGICAL_ERROR); + if (part_builder) + part_builder->commit(); + if (txn) transactions_enabled.store(true); @@ -2853,8 +2861,6 @@ bool MergeTreeData::renameTempPartAndReplace( else /// Parts from ReplicatedMergeTree already have names part_name = part->name; - LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part_name); - if (auto it_duplicate = data_parts_by_info.find(part_info); it_duplicate != data_parts_by_info.end()) { String message = "Part " + (*it_duplicate)->getNameWithState() + " already exists"; @@ -2960,7 +2966,7 @@ bool MergeTreeData::renameTempPartAndReplace( MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, MergeTreeTransaction * txn, SimpleIncrement * increment, - Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log) + Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log, DataPartStorageBuilderPtr part_builder) { if (out_transaction && &out_transaction->data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", @@ -2969,7 +2975,7 @@ MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( DataPartsVector covered_parts; { auto lock = lockParts(); - renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log); + renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, "", part_builder); } return covered_parts; } diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 00a56de9142..4074769926e 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -560,14 +560,16 @@ public: SimpleIncrement * increment = nullptr, Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, - std::string_view deduplication_token = std::string_view()); + std::string_view deduplication_token = std::string_view(), + DataPartStorageBuilderPtr part_builder = nullptr); /// The same as renameTempPartAndAdd but the block range of the part can contain existing parts. /// Returns all parts covered by the added part (in ascending order). /// If out_transaction == nullptr, marks covered parts as Outdated. DataPartsVector renameTempPartAndReplace( MutableDataPartPtr & part, MergeTreeTransaction * txn, SimpleIncrement * increment = nullptr, - Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr); + Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, + DataPartStorageBuilderPtr part_builder = nullptr); /// Low-level version of previous one, doesn't lock mutex /// FIXME Transactions: remove add_to_txn flag, maybe merge MergeTreeTransaction and Transaction @@ -579,7 +581,8 @@ public: DataPartsLock & lock, DataPartsVector * out_covered_parts = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, - std::string_view deduplication_token = std::string_view()); + std::string_view deduplication_token = std::string_view(), + DataPartStorageBuilderPtr part_builder = nullptr); /// Remove parts from working set immediately (without wait for background /// process). Transfer part state to temporary. Have very limited usage only diff --git a/src/Storages/MergeTree/MergeTreeDataWriter.cpp b/src/Storages/MergeTree/MergeTreeDataWriter.cpp index f7c544132bb..bbd48caabaf 100644 --- a/src/Storages/MergeTree/MergeTreeDataWriter.cpp +++ b/src/Storages/MergeTree/MergeTreeDataWriter.cpp @@ -585,10 +585,9 @@ MergeTreeDataWriter::TemporaryPart MergeTreeDataWriter::writeProjectionPartImpl( out->writeWithPermutation(block, perm_ptr); auto finalizer = out->finalizePartAsync(new_data_part, false); temp_part.part = new_data_part; + temp_part.builder = data_part_storage_builder; temp_part.streams.emplace_back(TemporaryPart::Stream{.stream = std::move(out), .finalizer = std::move(finalizer)}); - // out.finish(new_data_part, std::move(written_files), false); - ProfileEvents::increment(ProfileEvents::MergeTreeDataProjectionWriterRows, block.rows()); ProfileEvents::increment(ProfileEvents::MergeTreeDataProjectionWriterUncompressedBytes, block.bytes()); ProfileEvents::increment(ProfileEvents::MergeTreeDataProjectionWriterCompressedBytes, new_data_part->getBytesOnDisk()); diff --git a/src/Storages/MergeTree/MergeTreeDataWriter.h b/src/Storages/MergeTree/MergeTreeDataWriter.h index c7680888bc0..29c7baaa775 100644 --- a/src/Storages/MergeTree/MergeTreeDataWriter.h +++ b/src/Storages/MergeTree/MergeTreeDataWriter.h @@ -54,6 +54,7 @@ public: struct TemporaryPart { MergeTreeData::MutableDataPartPtr part; + DataPartStorageBuilderPtr builder; struct Stream { diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index d217e16c830..1b2f29baabf 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -254,7 +254,7 @@ void ReplicatedMergeTreeSink::finishDelayedChunk(zkutil::ZooKeeperPtr & zookeepe try { - commitPart(zookeeper, part, partition.block_id); + commitPart(zookeeper, part, partition.block_id, partition.temp_part.builder); last_block_is_duplicate = last_block_is_duplicate || part->is_duplicate; @@ -289,7 +289,7 @@ void ReplicatedMergeTreeSink::writeExistingPart(MergeTreeData::MutableDataPartPt try { part->version.setCreationTID(Tx::PrehistoricTID, nullptr); - commitPart(zookeeper, part, ""); + commitPart(zookeeper, part, "", nullptr); PartLog::addNewPart(storage.getContext(), part, watch.elapsed()); } catch (...) @@ -301,7 +301,10 @@ void ReplicatedMergeTreeSink::writeExistingPart(MergeTreeData::MutableDataPartPt void ReplicatedMergeTreeSink::commitPart( - zkutil::ZooKeeperPtr & zookeeper, MergeTreeData::MutableDataPartPtr & part, const String & block_id) + zkutil::ZooKeeperPtr & zookeeper, + MergeTreeData::MutableDataPartPtr & part, + const String & block_id, + DataPartStorageBuilderPtr part_builder) { metadata_snapshot->check(part->getColumns()); assertSessionIsNotExpired(zookeeper); @@ -476,7 +479,7 @@ void ReplicatedMergeTreeSink::commitPart( try { - renamed = storage.renameTempPartAndAdd(part, NO_TRANSACTION_RAW, nullptr, &transaction); + renamed = storage.renameTempPartAndAdd(part, NO_TRANSACTION_RAW, nullptr, &transaction, nullptr, "", part_builder); } catch (const Exception & e) { diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.h b/src/Storages/MergeTree/ReplicatedMergeTreeSink.h index 41953e034fa..f7504d2f784 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.h +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.h @@ -69,7 +69,11 @@ private: void checkQuorumPrecondition(zkutil::ZooKeeperPtr & zookeeper); /// Rename temporary part and commit to ZooKeeper. - void commitPart(zkutil::ZooKeeperPtr & zookeeper, MergeTreeData::MutableDataPartPtr & part, const String & block_id); + void commitPart( + zkutil::ZooKeeperPtr & zookeeper, + MergeTreeData::MutableDataPartPtr & part, + const String & block_id, + DataPartStorageBuilderPtr part_builder); /// Wait for quorum to be satisfied on path (quorum_path) form part (part_name) /// Also checks that replica still alive. diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index e93399918ef..77ca206eb23 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -8020,7 +8020,7 @@ bool StorageReplicatedMergeTree::createEmptyPartInsteadOfLost(zkutil::ZooKeeperP try { MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - auto replaced_parts = renameTempPartAndReplace(new_data_part, NO_TRANSACTION_RAW, nullptr, &transaction); + auto replaced_parts = renameTempPartAndReplace(new_data_part, NO_TRANSACTION_RAW, nullptr, &transaction, nullptr, data_part_storage_builder); if (!replaced_parts.empty()) { From 20614b36782d8c0dffb0550cd9dcf9df24dc7304 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 20 Jun 2022 15:31:20 +0200 Subject: [PATCH 166/525] Improve runners AMI and init scripts - Install CloudWatch agent and atop - Update runner version, that supports hooks - Provide start and complete job hooks - Will update docker version implicitly to 20.10.17~3 --- tests/ci/worker/init_runner.sh | 55 ++++++++++++++++++++++++++-- tests/ci/worker/ubuntu_ami_for_ci.sh | 11 +++++- 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/tests/ci/worker/init_runner.sh b/tests/ci/worker/init_runner.sh index 6838d925500..90466892fc9 100644 --- a/tests/ci/worker/init_runner.sh +++ b/tests/ci/worker/init_runner.sh @@ -14,14 +14,60 @@ export RUNNER_HOME=/home/ubuntu/actions-runner export RUNNER_URL="https://github.com/ClickHouse" # Funny fact, but metadata service has fixed IP -INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id) +INSTANCE_ID=$(ec2metadata --instance-id) export INSTANCE_ID # combine labels -RUNNER_TYPE=$(/usr/local/bin/aws ec2 describe-tags --filters "Name=resource-id,Values=$INSTANCE_ID" | jq '.Tags[] | select(."Key" == "github:runner-type") | .Value' -r) +RUNNER_TYPE=$(/usr/local/bin/aws ec2 describe-tags --filters "Name=resource-id,Values=$INSTANCE_ID" --query "Tags[?Key=='github:runner-type'].Value" --output text) LABELS="self-hosted,Linux,$(uname -m),$RUNNER_TYPE" export LABELS +# Refresh CloudWatch agent config +aws ssm get-parameter --region us-east-1 --name AmazonCloudWatch-github-runners --query 'Parameter.Value' --output text > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json +systemctl restart amazon-cloudwatch-agent.service + + +# Create a pre-run script that will restart docker daemon before the job started +mkdir -p /tmp/actions-hooks +cat > /tmp/actions-hooks/pre-run.sh << 'EOF' +#!/bin/bash +set -xuo pipefail + +EOF + +cat > /tmp/actions-hooks/post-run.sh << 'EOF' +#!/bin/bash +set -xuo pipefail + +# Free KiB, free percents +ROOT_STAT=($(df / | awk '/\// {print $4 " " int($4/$2 * 100)}')) +if [[ ${ROOT_STAT[0]} -lt 3000000 ]] || [[ ${ROOT_STAT[1]} -lt 5 ]]; then + echo "Going to terminate the runner, it has ${ROOT_STAT[0]}KiB and ${ROOT_STAT[1]}% of free space on /" + INSTANCE_ID=$(ec2metadata --instance-id) + ( sleep 10 && aws ec2 terminate-instances --instance-ids "$INSTANCE_ID" ) & + exit 0 +fi + +# shellcheck disable=SC2046 +docker kill $(docker ps -q) ||: +# shellcheck disable=SC2046 +docker rm -f $(docker ps -a -q) ||: + +# If we have hanged containers after the previous commands, than we have a hanged one +# and should restart the daemon +if [ "$(docker ps -a -q)" ]; then + for i in {1..5}; + do + sudo systemctl restart docker && break || sleep 5 + done + + for i in {1..10} + do + docker info && break || sleep 2 + done +fi +EOF + while true; do runner_pid=$(pgrep run.sh) echo "Got runner pid $runner_pid" @@ -38,7 +84,10 @@ while true; do sudo -u ubuntu ./config.sh --url $RUNNER_URL --token "$RUNNER_TOKEN" --name "$INSTANCE_ID" --runnergroup Default --labels "$LABELS" --work _work echo "Run" - sudo -u ubuntu ./run.sh & + sudo -u ubuntu \ + ACTIONS_RUNNER_HOOK_JOB_STARTED=/tmp/actions-hooks/pre-run.sh \ + ACTIONS_RUNNER_HOOK_JOB_COMPLETED=/tmp/actions-hooks/post-run.sh \ + ./run.sh & sleep 15 else echo "Runner is working with pid $runner_pid, nothing to do" diff --git a/tests/ci/worker/ubuntu_ami_for_ci.sh b/tests/ci/worker/ubuntu_ami_for_ci.sh index 23d3b18c810..2552ce58690 100644 --- a/tests/ci/worker/ubuntu_ami_for_ci.sh +++ b/tests/ci/worker/ubuntu_ami_for_ci.sh @@ -3,7 +3,7 @@ set -xeuo pipefail echo "Running prepare script" export DEBIAN_FRONTEND=noninteractive -export RUNNER_VERSION=2.285.1 +export RUNNER_VERSION=2.293.0 export RUNNER_HOME=/home/ubuntu/actions-runner deb_arch() { @@ -28,6 +28,7 @@ apt-get update apt-get install --yes --no-install-recommends \ apt-transport-https \ + atop \ binfmt-support \ build-essential \ ca-certificates \ @@ -96,3 +97,11 @@ aws lambda invoke --region us-east-1 --function-name team-keys-lambda /tmp/core. jq < /tmp/core.keys -r '.body' > /home/ubuntu/.ssh/authorized_keys2 chown ubuntu: /home/ubuntu/.ssh -R chmod 0700 /home/ubuntu/.ssh + +# Download cloudwatch agent and install config for it +wget --directory-prefix=/tmp https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/"$(deb_arch)"/latest/amazon-cloudwatch-agent.deb{,.sig} +gpg --recv-key --keyserver keyserver.ubuntu.com D58167303B789C72 +gpg --verify /tmp/amazon-cloudwatch-agent.deb.sig +dpkg -i /tmp/amazon-cloudwatch-agent.deb +aws ssm get-parameter --region us-east-1 --name AmazonCloudWatch-github-runners --query 'Parameter.Value' --output text > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json +systemctl enable amazon-cloudwatch-agent.service From 24974d177d63e40685ac996068e1d97c5cecdb2a Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 23 Jun 2022 18:36:10 +0200 Subject: [PATCH 167/525] Followup --- .../0_stateless/01233_check_table_with_metadata_cache.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh b/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh index c73ea97a148..05b107132e9 100755 --- a/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh +++ b/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, long +# Tags: no-fasttest, long, no-s3-storage # Tag no-fasttest: setting use_metadata_cache=true is not supported in fasttest, because clickhouse binary in fasttest is build without RocksDB. # To suppress Warning messages from CHECK TABLE CLICKHOUSE_CLIENT_SERVER_LOGS_LEVEL=error From 345c899983c17a96d8b6706e1e122ab0b40b71dd Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 23 Jun 2022 18:38:43 +0200 Subject: [PATCH 168/525] Suppress --- .../0_stateless/01233_check_table_with_metadata_cache.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh b/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh index 05b107132e9..68b62b62351 100755 --- a/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh +++ b/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh @@ -7,6 +7,8 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CURDIR"/../shell_config.sh +set -e + table_engines=(ReplicatedMergeTree) database_engines=(Ordinary Atomic) use_metadata_caches=(false true) From 3333dc2da14b688af9df79cf1248988e97d437ce Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Thu, 23 Jun 2022 20:59:44 +0300 Subject: [PATCH 169/525] Update S3Capabilities.h --- src/Disks/ObjectStorages/S3/S3Capabilities.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Disks/ObjectStorages/S3/S3Capabilities.h b/src/Disks/ObjectStorages/S3/S3Capabilities.h index b8b7d77cd72..622558f5d23 100644 --- a/src/Disks/ObjectStorages/S3/S3Capabilities.h +++ b/src/Disks/ObjectStorages/S3/S3Capabilities.h @@ -12,8 +12,9 @@ struct S3Capabilities { /// Google S3 implementation doesn't support batch delete /// TODO: possibly we have to use Google SDK https://github.com/googleapis/google-cloud-cpp/tree/main/google/cloud/storage - /// because looks like it miss a lot of features like: - /// 1) batch delete + /// because looks like it misses some features: + /// 1) batch delete (DeleteObjects) + /// 2) upload part copy (UploadPartCopy) bool support_batch_delete{true}; /// Y.Cloud S3 implementation support proxy for connection From 2339906e2ae5ac7d5df4a8d31ec2b6ec4a9ebf54 Mon Sep 17 00:00:00 2001 From: Larry Luo Date: Thu, 23 Jun 2022 11:30:00 -0700 Subject: [PATCH 170/525] Adding TLS V13 Test --- tests/integration/test_tlsv1_3/__init__.py | 0 .../test_tlsv1_3/certs/ca-cert.pem | 32 +++ .../test_tlsv1_3/certs/ca-cert.srl | 1 + .../integration/test_tlsv1_3/certs/ca-key.pem | 52 ++++ .../test_tlsv1_3/certs/client1-cert.pem | 30 +++ .../test_tlsv1_3/certs/client1-key.pem | 52 ++++ .../test_tlsv1_3/certs/client1-req.pem | 27 ++ .../test_tlsv1_3/certs/client2-cert.pem | 30 +++ .../test_tlsv1_3/certs/client2-key.pem | 52 ++++ .../test_tlsv1_3/certs/client2-req.pem | 27 ++ .../test_tlsv1_3/certs/client3-cert.pem | 30 +++ .../test_tlsv1_3/certs/client3-key.pem | 52 ++++ .../test_tlsv1_3/certs/client3-req.pem | 27 ++ .../test_tlsv1_3/certs/dhparam4096.pem | 13 + .../test_tlsv1_3/certs/generate_certs.sh | 23 ++ .../test_tlsv1_3/certs/server-cert.pem | 31 +++ .../test_tlsv1_3/certs/server-ext.cnf | 1 + .../test_tlsv1_3/certs/server-key.pem | 52 ++++ .../test_tlsv1_3/certs/server-req.pem | 27 ++ .../test_tlsv1_3/certs/wrong-cert.pem | 32 +++ .../test_tlsv1_3/certs/wrong-key.pem | 52 ++++ .../test_tlsv1_3/configs/ssl_config.xml | 73 ++++++ .../configs/users_with_ssl_auth.xml | 22 ++ tests/integration/test_tlsv1_3/test.py | 236 ++++++++++++++++++ 24 files changed, 974 insertions(+) create mode 100644 tests/integration/test_tlsv1_3/__init__.py create mode 100644 tests/integration/test_tlsv1_3/certs/ca-cert.pem create mode 100644 tests/integration/test_tlsv1_3/certs/ca-cert.srl create mode 100644 tests/integration/test_tlsv1_3/certs/ca-key.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client1-cert.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client1-key.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client1-req.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client2-cert.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client2-key.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client2-req.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client3-cert.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client3-key.pem create mode 100644 tests/integration/test_tlsv1_3/certs/client3-req.pem create mode 100644 tests/integration/test_tlsv1_3/certs/dhparam4096.pem create mode 100755 tests/integration/test_tlsv1_3/certs/generate_certs.sh create mode 100644 tests/integration/test_tlsv1_3/certs/server-cert.pem create mode 100644 tests/integration/test_tlsv1_3/certs/server-ext.cnf create mode 100644 tests/integration/test_tlsv1_3/certs/server-key.pem create mode 100644 tests/integration/test_tlsv1_3/certs/server-req.pem create mode 100644 tests/integration/test_tlsv1_3/certs/wrong-cert.pem create mode 100644 tests/integration/test_tlsv1_3/certs/wrong-key.pem create mode 100644 tests/integration/test_tlsv1_3/configs/ssl_config.xml create mode 100644 tests/integration/test_tlsv1_3/configs/users_with_ssl_auth.xml create mode 100644 tests/integration/test_tlsv1_3/test.py diff --git a/tests/integration/test_tlsv1_3/__init__.py b/tests/integration/test_tlsv1_3/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/integration/test_tlsv1_3/certs/ca-cert.pem b/tests/integration/test_tlsv1_3/certs/ca-cert.pem new file mode 100644 index 00000000000..293e1c7f564 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/ca-cert.pem @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFhTCCA22gAwIBAgIUVRNcr0jCH3vSTxg8QYQH6CCtyF4wDQYJKoZIhvcNAQEL +BQAwUjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDELMAkGA1UEAwwCY2EwHhcNMjIwMjE4 +MDk0MzA2WhcNMzIwMjE2MDk0MzA2WjBSMQswCQYDVQQGEwJSVTETMBEGA1UECAwK +U29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQsw +CQYDVQQDDAJjYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALwojNvu +fXQYQ4tucqNOEDHf2sNgxwxqY6QdtJ+zNfVjsK4I3Vqo8TtzxfDYGolkYem/bYJM +xQar9ehUm9ok/0kJgIo8vDXxxDJtvjz5Fd5oFWJLMxojLE9NSa0A4m18jGfbFNsF +XoU0njiInyzNaU9d4bMpaweseCZdt9Y4LR93FkuhSU/v18lWQPob8SSIij059IZP +sEUxpDOTxclAmG/Knd/6v3ecVFiQgexZM0gCtf7kcw41mxsAaP/mOexodIZDR70Y +LYjL7R2ZGhpClfQc8SO5NSpfEqsfreDX7XoaCTsy7/rqr3Nfiby6sc//awG0Ww/f +FRf2+2BU2xEwOVa3i5wU5raYY6eqFLK9q9c2IWPSqYzAmvhK2pqWQ/iaCU/Q89ow +SbKudJTLK8Y6v9LW4Q8ZLZF+CzS5cI+QEfIYqTLFdInH1BLoxx7cymEv07CDkcTo +2WtV8GdMph2P3U/9NoXQDonjCSj0lQUjgUdcrBPaIIVbIn6/5vfw8LQa8PoGDhIx +AYQkqPR+LHxCqIMzdqKZ+OXD/HPhiigpxLhF7mVRLvvoyrOZVJbcu1qmgCcQw0IE +fWzvWne+9cYC9lgt8+/k6d6B1uhYsIwwhgoj0dffFjc0sF6zfceGK+H1K2JCE0aY +zT1HlvSoZdA7lEs5xbGJnkBHqlOvQ63ynXCzAgMBAAGjUzBRMB0GA1UdDgQWBBTn +AtgFU20JF7kTZCKlY7/hi0kYRzAfBgNVHSMEGDAWgBTnAtgFU20JF7kTZCKlY7/h +i0kYRzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCpiWgJ1XUw +a8Bdeznsa57oy+5mqQZWpRVkzTQRHEGV850OGh7WQ6u9kVAHefaHH9hsVxyggton +6/MDsu4KL5jqKmJaIAepPIOw6DTc2zs044I7W/rxRp+w1hL2TS+EahMrSPwdzCcl +NNAM0dXocGylf6qwwMqiYAR1K3UIrlyq4QTr1oEPIqJBkDg1JDYrt4T2DroPjW20 +5hlCQ/tft5ddGL0EFEaKWwAcPFm7jAwJiz2eUqmT6PcmaZ24qPn5RXVkaBAkrSga +1WgM8r3LGu2EKhdiDc5hRJKjS8RZyLvZNNzlL3+N42nGmGZkND5bV6u82OD+qn17 +LRZOt0Cr70HqszSYk/67ijjaa4n/fuuAqorV+yYB8accRXtoi00nxykT+H+yI1rD +swvcrfDvhUgY5zmunWyQUYh0q/2Hj75GbLup3Cd0B4MrBwqyCqcEugM4OSf6aRMr +e/vjeggTVPN08xE1LUkugalx0B0aoO6qFahJ2CmkAcYLLlS2N+F7TMuPavc0kVxD +I3qA5G9zvNCliSLX2+kM+LzslI8+pP/A98bvh6nW4HtZkI0jq1ks7XR0GeOhCI8E +0l/YuElxxgKhN4INKhhMoDKqPib4z8gbmkenR2CenQCpfLMIrhTXZgtw+gvEgpIE +/QK97G8XPqga6zn471wrYJnuyJli+sP7aw== +-----END CERTIFICATE----- diff --git a/tests/integration/test_tlsv1_3/certs/ca-cert.srl b/tests/integration/test_tlsv1_3/certs/ca-cert.srl new file mode 100644 index 00000000000..c02cd0a4526 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/ca-cert.srl @@ -0,0 +1 @@ +05F10C67567FE30795D77AF2540F6AC8D4CF2461 diff --git a/tests/integration/test_tlsv1_3/certs/ca-key.pem b/tests/integration/test_tlsv1_3/certs/ca-key.pem new file mode 100644 index 00000000000..e85dca8553e --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/ca-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQC8KIzb7n10GEOL +bnKjThAx39rDYMcMamOkHbSfszX1Y7CuCN1aqPE7c8Xw2BqJZGHpv22CTMUGq/Xo +VJvaJP9JCYCKPLw18cQybb48+RXeaBViSzMaIyxPTUmtAOJtfIxn2xTbBV6FNJ44 +iJ8szWlPXeGzKWsHrHgmXbfWOC0fdxZLoUlP79fJVkD6G/EkiIo9OfSGT7BFMaQz +k8XJQJhvyp3f+r93nFRYkIHsWTNIArX+5HMONZsbAGj/5jnsaHSGQ0e9GC2Iy+0d +mRoaQpX0HPEjuTUqXxKrH63g1+16Ggk7Mu/66q9zX4m8urHP/2sBtFsP3xUX9vtg +VNsRMDlWt4ucFOa2mGOnqhSyvavXNiFj0qmMwJr4StqalkP4mglP0PPaMEmyrnSU +yyvGOr/S1uEPGS2Rfgs0uXCPkBHyGKkyxXSJx9QS6Mce3MphL9Owg5HE6NlrVfBn +TKYdj91P/TaF0A6J4wko9JUFI4FHXKwT2iCFWyJ+v+b38PC0GvD6Bg4SMQGEJKj0 +fix8QqiDM3aimfjlw/xz4YooKcS4Re5lUS776MqzmVSW3LtapoAnEMNCBH1s71p3 +vvXGAvZYLfPv5OnegdboWLCMMIYKI9HX3xY3NLBes33Hhivh9StiQhNGmM09R5b0 +qGXQO5RLOcWxiZ5AR6pTr0Ot8p1wswIDAQABAoICAQCO/c4Wccb7TFlAhD4wpumd +zX5GDq0WXV+94CldWGdARnOFvwzhkhRJ1zDtWH3KPfQ/HJBPfqIY8OQfnPUYMhej +3MnHxGJQKJyuqkHxumYJMFZX7cg3K9XHqne8NzjcddOKNa9Cx3DOkG9RjVpSRQSs +IS+d5XMGUOa6WWyVKvn3uJvD/B1n12DJDHiy2jtHRVCxOPMAg1z1KMWdwMaFrEZs +ZrHV/ow1jSN4btGd2SgkqJLA08IwYUKvoX8qQj9wzu0G/+hr5wzrsfZQEQMKQ+IL +s1b6jAzAV6IrVBbjEZXSviiXyZ0gteuCJW/acpMg+/3JPNQbWrCAFt1wluwowto/ +JAFIvlh29hfE5c+HEMpQNa0tdj7jepBn/0YEbgwpayMikKiLZXEpgheWCGypAQWp +Hm+N0Ym7HSGe82obxi8EjKRnNwFUtotWzUBKeo9aFwPZHLFlspljd+5ynDvKqXnk +txYZj6K3TtMs30HAG6fqxSPyiZ5W+5yF7nt6qLODs6m4Os+lrk1GnoqC0/uLMzIU +CRJKulrJOK4/Z2tPn9IAhcREbS4oROUeNqqo0Cfs3ssvkV7JTHF4IsKhCmElMmGa +bevOI+pvdjfECShy0Jnbtni6ece/II4/edfUp9kWN45xZLpzDjfqCVD66JS9g6ZU +i/EVll+d5zaI2TzzwZgHUQKCAQEA3d8siwXbq7x0cAB013+tvkvGMJ2EuS1TWdLk +a2P6CAnlZMWvv2cPSd2WpimHjqKxrbn6VE79mOc2l9Y1NOUUWWZATrhN7V8xMapQ +0YiYCHeaMERUAUKdzCgRN2/mRbZCBzpPBbWbb6NtKfRFJsD9zAe2JBwDVh9hvAL8 +YVBoczrEfj1ILnmtPhAJVI6s6rDsA4MgKjLs0Tt7Cc7rQxqNSpHEvwv1yLQmjp0N +L5b1TEt7fqVJ9dirykJquBYEKf55Z1qZhQzmnbu9OPnzeqGDakl5F/UsXDB5Bokp +ilcV+nFbh175Q+gTEhaSacGW8gzRw6j18PuciBjeWVEM5hhxOwKCAQEA2RnRMjv9 +46jQarJTFbIHg1SqrR87GSLnt6672M5TX9frzxMCuVDjKgdecstvLjm6X+/cPQKT +Q3javJnJXT4cx//1J7RLO6ZBVSCZf3//XntdHdFVJf5ySQtK+MJyfxjpzP6KBPfb +WPrva8p29ejbBdtsOT0M6gY5tPfadU2XEaf+BoyX9NUmu1U46Iqi+eCOjR+GVvhP +pJzGgLeOsaRVCfc9I7XPoVu3AEx5Kt55yRYm4fyGPsAd+mRDbIXMXdL0k8CfWWDr +8TT5rqKI+gFPFQCwToBW3DwHIGY+3RmoXFfQ0IJaKwOk4AB7m6HC3mv1crtjTFSM +9p74oQzNX7UG6QKCAQBEs2cygRTdH5SaXbnQRKvC4emzggLn5/4IMUIjcqioNpA+ +XOwngzz7rU6JkxBzfTMxTQYTdwYVg3qnF2AQSeK8L+o3teADYVd1PnyZ9QbGkGpB +CddNMJh17+4s0UxnR6E4Zbi0VuCTd/JEbGvBLT8pHzYqBjaOQ1dbBT2q0GAXVhoj +0Mv6ABlBv2t0MF2gqjnaeI7MIkqsGxPlHJpChAU+EtbuJUDs7cOGo2DC3KaGAlVy +CLJXGslO7rPm3oJZkn97HlWtGiqKquhTrSnUThDIJ4oEfhlHTocbG/ut53tZuiIS +T7k1arYFAtJBRv17Y7bMNBQ7k12L0s9+rpck5GqjAoIBAQCVBPSkj6tZbpII+viu +5rHjguVYyhwtx9jYK1eDnTR7kGGrlPgErjIPslkxYNSjHTsCCUnakv70jGtQlBs1 +JqJo4hesNkSB4D/uJ99VNk3a08D566uP1dUqsFa44/flp/ssG/gvKtbkf/KBwcrg +RwK4RYJG09IefUF1J8BLToQIuZBTfIP9qaXZZskWTbtK28ndsqrq3a0FaBuVVOnc +o9k/avcLoQuxTZwS12tAcs+TqOHtswGO5x5stg/V2Q2LxXbeSJTYq/+oZN2R8r0l +JmrbFsruR4fXylh189jouWjoYdrSlPdBmVG99HbkQCfbtq0XIOsrBMpxqnMtUPVT +4ZWpAoIBAQCrao4XHpRM3KsfPqdkg0vqFDBA+LzKlWu1fl8w5TGpFK8H1tv5kHNv +h0XmeU5cXwiweri3KjQz7h+qVBHZeAvyrEoxJQdImax+5OUy7lysDs+SL02gLZb3 +Z7g+u4Buwx+cv4O7hwUEDDk/5X3NBFk7/iwztKUtM+Fl8jt9K3K24s87xXp9YevI +UEawden9jVcuXQjEUrwz8cjoz/y25vK5pQ6k82PVImkMZK99/PmgmGyOl7hdRA3F +ff0Kb8pRGmV/cWRKzHaC8QchW8jdU2EGxMkrFl1DvoVKLbyDf1glRncKP9iozHAR ++s184IJCUvyMxH83uKKAiBGaDRC+Lbm7 +-----END PRIVATE KEY----- diff --git a/tests/integration/test_tlsv1_3/certs/client1-cert.pem b/tests/integration/test_tlsv1_3/certs/client1-cert.pem new file mode 100644 index 00000000000..bd6eea62094 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client1-cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFMDCCAxgCFAXxDGdWf+MHldd68lQPasjUzyRfMA0GCSqGSIb3DQEBCwUAMFIx +CzAJBgNVBAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl +cm5ldCBXaWRnaXRzIFB0eSBMdGQxCzAJBgNVBAMMAmNhMB4XDTIyMDIxODA5NDMw +OVoXDTMyMDIxNjA5NDMwOVowVzELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUt +U3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEQMA4GA1UE +AwwHY2xpZW50MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMBU0fao +RrITeF4kpN81p7qirX/Gc56+Cux6u7RF1O6WU9v+V5jLw8chQZ87z4QSrFiT1ZnT +pwWYPwJ+pDk6AWEoiKuOaceOh0bjZCuxADHs+qQrye5D8GXvyFvWE2cT1pD5JNEZ +DSl2YHqNs4uTGRP9BP817iRDcuvdxpanaWxfXGfehJRMiEVgKDs+RUpoW4aVNivI +InrUWc4RXXkzaJKqhpCU3jAJBV4jSD5ZnA8PUfcoAj6z6T3I6phuDfRP5ldA3br8 +yg0hCB7Y5QrO5lRAgEoIuNnC+U6/AIwWPI36Rjiwg3EUwI/BIiL4AWjzkjSdr0mn +zyHPRk4pcn01T0GTpQi6tfZZpumDD3LkPuEy9svMpJ8ntqDnAsIJVjbg1S60hHes +yYHoQw1HxU0vrncxwcQkVaPLx0uGlioaLlvu83AVnWXbylZXsV/pLy6dE3H51GBF +DX3Zj6nkuJitk8/hNp440/Lve7SaKFPo5NdH+8ACWGdFdz3zxgPuhBDoxEeqj4c1 +FQA1ABXx2akW3lQ5VxTAg5AYORvVhJTozosr+Kn3MlRdZjl94tnVByD8MGLLE0C4 +L/qXR/IlbkOCz5LHapdC5j62ZEBwiElmMO/tMGl4ORV9tdTBrRZ9DMmKek2E8Qwz +y770PGkhp1cTzZt6UfZEympowmfjtiZfHIq1AgMBAAEwDQYJKoZIhvcNAQELBQAD +ggIBAHwRpqnpcD3EW588GSDZhZrVf3nS9M06ljQGtDUqNSI4XJp1cVT1sMaa4LjM +cWgHtayFw+jbDLwioXHjMlV+8tERH+0x+qsADG349caDYT/OF13v/jyuboUZ9AqE +KpfOQH7jCLU7rEbEl6kvT3F3xaHJg8mE7msyRFfguB2JrqZkKIj4HANxJUJo4PwB +5bq9nE3AVNAgUeQEwfu0r5SjroNpcHfm7xWqMK2mDMCsy/DvI7n97Q7vZajcTT0x +UXfgx+3CLEvLMpa2myE5OIMOeLzfZwxrxyNH7BdZsROnkGv1cX+9HZpYcue/UDxp +P2OApbTuZKaTJOyMADc17s0seE0DTAHnHAWrJwVhf8wYKKtEs+i+Sw5LNSkh5fgS +hTzGF93yClDYzWEqMSKhKPeimtpz4ZBNuGf471KbpVbUKJJvJmOxqoZ5S0kpFILL +YMALf652uf5or5d0cDNvcJTwvMi6evchIV17d/jH+MxyJQs9VCkMpJxFbMrXb3YB +b57K3Z25P6w3Qfj4zuKQFANari7Gs6qSiaUBiEhEdTQlGspkq+FLndtX818sbMk5 +LAK6JaUH0ywV2jn5XSW0irQLDXqb6Q0bSyw6pdpDjk0o4UW67JCE4kGagRDnfSqL +ZODvO/dEtVLyAsjmOx8MkqLyseI7VESVd8eiJAyL0sifh+/E +-----END CERTIFICATE----- diff --git a/tests/integration/test_tlsv1_3/certs/client1-key.pem b/tests/integration/test_tlsv1_3/certs/client1-key.pem new file mode 100644 index 00000000000..8bc1e656566 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client1-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDAVNH2qEayE3he +JKTfNae6oq1/xnOevgrseru0RdTullPb/leYy8PHIUGfO8+EEqxYk9WZ06cFmD8C +fqQ5OgFhKIirjmnHjodG42QrsQAx7PqkK8nuQ/Bl78hb1hNnE9aQ+STRGQ0pdmB6 +jbOLkxkT/QT/Ne4kQ3Lr3caWp2lsX1xn3oSUTIhFYCg7PkVKaFuGlTYryCJ61FnO +EV15M2iSqoaQlN4wCQVeI0g+WZwPD1H3KAI+s+k9yOqYbg30T+ZXQN26/MoNIQge +2OUKzuZUQIBKCLjZwvlOvwCMFjyN+kY4sINxFMCPwSIi+AFo85I0na9Jp88hz0ZO +KXJ9NU9Bk6UIurX2Wabpgw9y5D7hMvbLzKSfJ7ag5wLCCVY24NUutIR3rMmB6EMN +R8VNL653McHEJFWjy8dLhpYqGi5b7vNwFZ1l28pWV7Ff6S8unRNx+dRgRQ192Y+p +5LiYrZPP4TaeONPy73u0mihT6OTXR/vAAlhnRXc988YD7oQQ6MRHqo+HNRUANQAV +8dmpFt5UOVcUwIOQGDkb1YSU6M6LK/ip9zJUXWY5feLZ1Qcg/DBiyxNAuC/6l0fy +JW5Dgs+Sx2qXQuY+tmRAcIhJZjDv7TBpeDkVfbXUwa0WfQzJinpNhPEMM8u+9Dxp +IadXE82belH2RMpqaMJn47YmXxyKtQIDAQABAoICAAEBsKOg19XgwjWD7ZT5e+o/ +JbdQe5RuHDKGperYnres871oBF9ZWan2I5jIwFpJmrtP8sM+V1ZxKItDzGo8QnuW +sbhsI2OW/GBDmmecIosgWWN4kzL7CgwOiDbq1OkqMmpJ04aAohAAfZrGmRT27R+s +qFUJnDh2XeicHYj2UVfu29XzVTBNgj0StsMwnT45c5ktuL3b60pHSD0K3DlhKn/y +AohJLyyDL5MBjkQ9RdLSWrR3ciOP332iSpAHq20G6ga04TQ0VH5jGN7IddJrqMry +F3nLt+Pz4EgoOcGB8Ekx8SIk0ltKJ4PZF+uk7qT0+WPrG1rAVRYxNoX8M4wyNjr4 +TcAZsV2DnGdnp+2u0SSzMczeop5hPTJKxaLaPw1JOoIk5fqW94MbEHqGnEXEIN+D +OWeUKWZ/B1YubavOeR+c3STZrh2SgmhKk6g5NMFlfnyvolPu47H8NOrewOhVG+TZ +gsQoGxSyOXwZTQ/Jd6Yg9lek8nKJBc4Res7ia/x3H+gjjRoNFI+L2HQnWztx5YMZ +H9M6hcpclZubO/w4iLq9OB2QUHn7aIT3lWRV/xS0Yh2zGCufasaMA1KSKC5zq0Fk +gCzAkYDq/ymrJs3LQQ0wegKd1akL4z5fxmXTn2v2BGoEd52uuxhL0mM/9zzRxdR2 +IsOgAym+siLXMCHTDbdVAoIBAQDuMcea66WKidS+A9frCEsabYccKzrdMEhs6Mle +orFieMC+3ZpzFIBkXPZ522I+M4nIdBKuRw9PnYTE5t30euOj60Oq905j2a+Ho4ki +kW6dC+tNDF49Hqxn9e99xbvTUi97dREcERlHA+AnRektEciyD17bi88aUy9w83Mw +G5Z+ej+9o40w8+TDopE2SIJhUAHR6LOAMq1v5y1lmTn0sbTuxZFLA0qWX9aGLi+T +4RD0MzJAtKJDbr3yPTLHAXmaMSKHhWYYgWTH9iwEhGQAm5VJy3oNJUkM7ej7Yfs7 +aTDOk61egCKhEHdWavP68MqmNOPHgnq4/edmvQnhfKtI8SMnAoIBAQDOtWDi/OnU +ZjZPnmJwwoPuXe6IjYg47bFRGv94xEpSesCAYdXNaNLPl0f/Ut9y3nXr+j+XqJWo +UqtRGFu2i9lUK3cu90GLXEaLbYWGcgL8YnJu0senLxkqxPWcGxoKmbo3xMjqk/pF +EVZ5e1qqVTlrB4q7QWmLKrS8YlcaTnChPeSBRFfryg/xvQ11Hxtq89SKkTH4ps16 +0KtiCxvfQHVASyRLIKLdyabPInB+yP3Fsn4BIx8jGtOQ/OCY01TXq9OyaRu2hJTk +qsjOLnqf6huM2so3X0Tw8AdgNoF96JJvfhwiPI5CSo9UKjhuvus1Ip5ZFFNo4Ngy +n3Zlgp1HxZzDAoIBAQC9ffqmo3sxqI8Hj3UxdIqS/rlyzm1o0+V6RwMT92gYx6nG +7fLWRGQT8+TdcotIoqWlQ7oszTlABDdAkc3XlgANQre1hkLlqqM6y/3n8zzFUVsj +E4jRJNrRZdTeAPV4mzRNCgfPhUbPuSSU+cgT48b+6L10+VeMQMtIF1T226uw+L5G +tps3a3/9pxHQ1oRquESKYo6SmT5i/M2fuvNhWBJxtdjtjTPER4AZhRqykWV0cFo1 +Ib7I2Ivh74+6w9Ciux4WJCjhq+aqMYw5F72awitU5rw1QwlHcOldO0irrfZ3EQLm +YBesfLYDmNh6NR9ydDcVXBcXnl593DvFF/IH+FYXAoIBAQCQZydLCzHy3oC8eEH+ +0fRGljooDO+IDYzcwwaLgF0HZ5eJWE97EuqKeP2kAWn2HjC07Hp2YSBDmZTyrxiK +2wG1CjRVjAeu6oShrJ4mAQnS9JdKkldFlOJ4/WUza79yflgX05IkRcIFdAo8DY+W +BLl66qbhD95CiU//dpew2fFWwx0ZrPvazar7zn1TP6rwuWvWbX5CXYyYaqP/dxE+ +khIXGyc8kI0WcWPlugJqn9CgxoO+GaIL7Ra1Z+MjACd6DyBxt3nTtKUrZZ+oYdHq +Wypp6QJxUk2gH56XeRxXMBz0ZF4VEMa0ys98FY6c1yULVqbWRhvK3aBLJRkZ6vgj +BorvAoIBAASy89mnP7d9jY7pSg/8znsUF8fQwKpRJZKS+8xgbzsZP+zT7CjxCbPL +xcNK0fl6pRBv+gyIM013R7J1uvZJ3W6rspVxlXOvofvwYSuLOjwsZA26RM8s7Do5 +e62Bg7PUHbbaD+C8HzbJlyXeQ++oddWPbIkxJMwhP1Uvy3wA6c7E7w/UACZvv20J +KriU33QmW/o0YpOX8xBVwgsCld+IfUIYm1S1mpU6k3oUfGIA5iyKx1XLTMhlaYUG +dTdExwxQp73Jk585qWSpaiQ05OrgYyzZ8OHA2kRTPK+54HSwRfn6senf3TakZHBi +zjy/DZmOU/a/EiR7MCGg+jS1x9GBxOE= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_tlsv1_3/certs/client1-req.pem b/tests/integration/test_tlsv1_3/certs/client1-req.pem new file mode 100644 index 00000000000..b821609068b --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client1-req.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEnDCCAoQCAQAwVzELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUx +ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEQMA4GA1UEAwwHY2xp +ZW50MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMBU0faoRrITeF4k +pN81p7qirX/Gc56+Cux6u7RF1O6WU9v+V5jLw8chQZ87z4QSrFiT1ZnTpwWYPwJ+ +pDk6AWEoiKuOaceOh0bjZCuxADHs+qQrye5D8GXvyFvWE2cT1pD5JNEZDSl2YHqN +s4uTGRP9BP817iRDcuvdxpanaWxfXGfehJRMiEVgKDs+RUpoW4aVNivIInrUWc4R +XXkzaJKqhpCU3jAJBV4jSD5ZnA8PUfcoAj6z6T3I6phuDfRP5ldA3br8yg0hCB7Y +5QrO5lRAgEoIuNnC+U6/AIwWPI36Rjiwg3EUwI/BIiL4AWjzkjSdr0mnzyHPRk4p +cn01T0GTpQi6tfZZpumDD3LkPuEy9svMpJ8ntqDnAsIJVjbg1S60hHesyYHoQw1H +xU0vrncxwcQkVaPLx0uGlioaLlvu83AVnWXbylZXsV/pLy6dE3H51GBFDX3Zj6nk +uJitk8/hNp440/Lve7SaKFPo5NdH+8ACWGdFdz3zxgPuhBDoxEeqj4c1FQA1ABXx +2akW3lQ5VxTAg5AYORvVhJTozosr+Kn3MlRdZjl94tnVByD8MGLLE0C4L/qXR/Il +bkOCz5LHapdC5j62ZEBwiElmMO/tMGl4ORV9tdTBrRZ9DMmKek2E8Qwzy770PGkh +p1cTzZt6UfZEympowmfjtiZfHIq1AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA +fGx/D6rNeaVO/vSUGX5q1iJKd8Gnw+/8NRgbuvCDuDOSy8LyqnLmVntj8q9FHpJM +SRH3LnylMVFZdybso2ZbhR1UDReGvHCtKICG3LLP1uWwy5nS3mkGBHFm9COyFP21 +kWOit1+106gEhg2f/NXh31HFmh+myepLjPEj5KxvnQhQfaQESsDYDZAs6/qT1mqp +A7GixOXh7hIFBJ97cU7fKby0Wtv7GqKAYQkaf26ImoGijtMPIlzvwJboJWmOYzIH +zrOHqspFkJD8YvYOwLIKdahViqXU7POL9uRn0vFyaXVcyXRq83Pz+bPSW9AFYsYG +ukSZiJs1yCINZI/Mk1vlfaZWYPIbBkJZ0Ny0vw112dIEilWAkVdsmJyV95aBddQI +Md64CYWZbV5P7/0QOX+v2ZQpWVnaV0m07K6VVuTL3bw6BQ9fcj7vaql6wl8jl/9l +nEotaZiY1f1pUUko3XzXpZEFB1lGBHupuS/Plz8pfFefN/7sOZoWn1VhD9I1A8uh +b2mg6hyQ7pe2NrHOTY1+L1xxxKKHt01kvDhws09qxRXtNsLrL8tl94i1ndLjHIwD +/VRnVU04E/VoTKaEXuETLZwOZu8pLwdiejrWEAmtsbmmcKq/Bk42wa+Wrmge2Chs +V8EOAtq91AjUcQeh7s2fV6yWweMGm1J6pdkNWckCsUs= +-----END CERTIFICATE REQUEST----- diff --git a/tests/integration/test_tlsv1_3/certs/client2-cert.pem b/tests/integration/test_tlsv1_3/certs/client2-cert.pem new file mode 100644 index 00000000000..886cc533fcc --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client2-cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFMDCCAxgCFAXxDGdWf+MHldd68lQPasjUzyRgMA0GCSqGSIb3DQEBCwUAMFIx +CzAJBgNVBAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl +cm5ldCBXaWRnaXRzIFB0eSBMdGQxCzAJBgNVBAMMAmNhMB4XDTIyMDIxODA5NDMw +OVoXDTMyMDIxNjA5NDMwOVowVzELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUt +U3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEQMA4GA1UE +AwwHY2xpZW50MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOGIanwq +rZCqMT+ePwRkiQnD0gyVt5+kwkb8X+fdBJRF0kr70YfzMpKdZP4l4W6C0Jv/ysIH +usrI5pQxcFAIe/7DLW0JPkMLKgXsOtPNZPIkc7WYkq3cbzB0ZTsK8O3IYhwn0dAY +O49T//YqM3TLTFsG89B6uCEg7dQiP9hh6boic8M/WyAseOkJNfw+wYcTWhl1toKc +dLbo8ehESUtVhCOPVT602zBUYFkleqKPeHJ/gzl3/mTnqfeUBljGI2aXwOl7r6rI +D/or7wew2HZ81dTGDqB+yqUhBIVNseJPHOuKbke2E2qWVzAkRnX4b2ehsSaSknpC +KGWyLibaQyR0/Gt8Duu1XIsZKeFjCw27yogSTQ6xTUhLDF1anQyoJX9btSQZsTbD +3vtHbD1O07KSfiG0Z1p8LaR10RAFA7f3HLwwy6c9ExpGu5ED+co8aO5Xp5wysg8X +fYZYx4CaY3moQPJPDS6eOpUXd/6h27Fm34h9VdSj2p6j9JYsmTeEgb0x+JjAQyRS ++Koj/tbSbBqjbvO+FUaldRlHCHYCQTnjsSNBf7SxqE9lfgFitcgiHKSdD7QIfwNB +EK1o7L8OugC/SQtHGe3ngUGuNmHI9w6ItGuVqoJYP3Hwa6ClGmYlTRLoAj8NkBib +toxwGIspTlTzmmLXpqeZTPaA2K5eiq8O5DKvAgMBAAEwDQYJKoZIhvcNAQELBQAD +ggIBALp4L1aky2jfgk18tney56sUL2Us2aHqyOz9LlowWFdNMtCKo0WKpZ1qXGfQ +92QE+zc/MEdmv3V/H1MmSr7trTq1u7E5vVVI9Lq2lNbRLDQLi1+qd9E7Kdl6Oxw/ +Ecc8oxIbg86p83HhzPfJG64m3x6S6m2c4sNrHRAO/gxxJex6ZSFfQwYJZFlcvvBX +CH70RBtBG/ggasVtwqBuuIRNJ2gAtiWG2RtyGlOjPiAg7nUQiYlXLHVOjvrKDvrI +KTjzRdEUMqKtIrNUBHSbWZlxKZ2Ddavshg/0T0reAN/u5KTDxiGaQxlVEA7xfm+j +etqjzTz7LnKuRsA+Z8UUYaV6mKYfKObDoUs/12IomRCUTQi1K8MP3fGmmk+4Xiyu ++t15EqWJzhjuT2RjCAL47X6ksdOtonX9t29l6ykCvYpK1mlzG+EhqDyMIn62TNfx +OFjWwhIFgyEUWtwkihIKtv3ZVtrJVO/j+HCUfq+6IpjYHdlpdb4OaHgBtpokOtM8 +PmTHJbP2bxmNIMAU1WTfV+e/JkdTKHJclC5DTGF48yRgdKSOTq0G1eJYh4DhlEIM +vOw2rXeWR6VSkvA5vF7HANEptl1tkT3dsKR4BXkSIO16ldWBEHMM4UeXx85GGM0k +TRON4FWBMi6PXX6mrmPXcUW7AyKG2JL9gNlxRgWHVK7xmZyp +-----END CERTIFICATE----- diff --git a/tests/integration/test_tlsv1_3/certs/client2-key.pem b/tests/integration/test_tlsv1_3/certs/client2-key.pem new file mode 100644 index 00000000000..462916c0670 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client2-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDhiGp8Kq2QqjE/ +nj8EZIkJw9IMlbefpMJG/F/n3QSURdJK+9GH8zKSnWT+JeFugtCb/8rCB7rKyOaU +MXBQCHv+wy1tCT5DCyoF7DrTzWTyJHO1mJKt3G8wdGU7CvDtyGIcJ9HQGDuPU//2 +KjN0y0xbBvPQerghIO3UIj/YYem6InPDP1sgLHjpCTX8PsGHE1oZdbaCnHS26PHo +RElLVYQjj1U+tNswVGBZJXqij3hyf4M5d/5k56n3lAZYxiNml8Dpe6+qyA/6K+8H +sNh2fNXUxg6gfsqlIQSFTbHiTxzrim5HthNqllcwJEZ1+G9nobEmkpJ6Qihlsi4m +2kMkdPxrfA7rtVyLGSnhYwsNu8qIEk0OsU1ISwxdWp0MqCV/W7UkGbE2w977R2w9 +TtOykn4htGdafC2kddEQBQO39xy8MMunPRMaRruRA/nKPGjuV6ecMrIPF32GWMeA +mmN5qEDyTw0unjqVF3f+oduxZt+IfVXUo9qeo/SWLJk3hIG9MfiYwEMkUviqI/7W +0mwao27zvhVGpXUZRwh2AkE547EjQX+0sahPZX4BYrXIIhyknQ+0CH8DQRCtaOy/ +DroAv0kLRxnt54FBrjZhyPcOiLRrlaqCWD9x8GugpRpmJU0S6AI/DZAYm7aMcBiL +KU5U85pi16anmUz2gNiuXoqvDuQyrwIDAQABAoICAHZuu3RuuOxB41DEGdWFsczV +7wS6zk1gKME8IGTS1GfEbpT/vd1FYaZKTtGDNOlieoehAGl5w6Zfb24ctBzjB7IV +7lHWy8JLJ4sqrQ2ySzM43yZac5QnMKBiTxJ9QV2sn5CnfG9pekVe2Af9yz2m0Hbw +pLIy72Q+NYXzYlGPwTwEgYPjTkgL8oZ1VssabWgwSl0aSng2DrhKhVXyHgcYZiaC +S0J9mKi9dkb5/ndFHfwKZ++Syp1UZhXjvp15lvd181DoqavmGTXHQmNog5NdJLDy +PJYdXu7t8sDJtwLfhpFOBXFU9MdBIZHfSr0CdAYYi710tMTM3wfgVIoEjcOkRzRx +36O66ehHfcyNsK52Z+DZ6uR4c+MOG0kzTiHQhyxjiu+3nYMGw1XdyE+k+eZDMPd3 +vTaR7kYOQvVvdOVAUuFZG9mK2p0mpofb9cFxFD0vJUqTYXxSdKUNIexR4mWQJw/h +rWOg/42GK4iLY2X6/CsDh6pTsM+HCzwmTGGkL54FvDsB2AhAhXPz/kGiBRTrh9/p +QBxacSPoqN+kF3u2qZRPEmjuimiW2AaXARbTABNSBQJIEmWzWOVdgUBVetGoN/ML +8mcYDmXhAc6F96eqPj0dX8cHfqYPguPhtzLj5V6XGym7hYQyOLBcE7tr2BcdjUfM +V6OFHsPNmsYWZ9F6zCv5AoIBAQD3M6gziCA0G0cG05ef0C3D9OVGWpHqr0yiR3MO +ZKsYbJJn4WOtWWvo8N5oqZBQ8VIoyGd1eiSIDuxXEWniFWjn57QN2nrDNTsEQPgk +HzomgFzuDZ7V4JsjJ9F2nAG5i2HoEwKNHdzfni6mhwGaapd+4GlET0jlC71p+h0X +CPsD6Jwabp6OUyT+xm8XW3mTWskBzKfq0OPbsdv8UB1dPt6jVrkjoe76TlTsWXWi +U9p9/h6kI984R9T10J61c21dokuL/KlHqb6TIQY3RcCgm2bfucmuawIq6vs1PBrK +VCvMX1BuTva9CYg/+hxm9Ky08jFWSCEEtzaORyN+4mmf4maFAoIBAQDpj1NoI7RP +mYqG9vHyXSDUUNbchpLOFKIaeh2DGk0sFmLi/obglsxOKu8K3r/EobNt+vpDTBxI +1EjPWdKuaXNYYjNjrVmPHdHPoHD8JmXzJDbZnXSylV9MVYSMNF+7BWUiPg3/QC7b +1a+ljJH/KEWFb0xrIfNPxVzyq8dyFOxcmLfRVLYlEW+fRYeaZ3QApxGi/BoYK8KN +vG8f/a8jpPwYCVa3JJ7/donEtsbxTkm66aacn8Vo2Y/tdo0nxyqC9PyBU+tV0u4w +aYtEZ28kpC9QheRx8D7WzhvsFc/KsshiB6jddjOVR6VgiUFCo+b/5PqpyZVTVrcs +tj8062A3KvyjAoIBAGRPn/eZS4gZcY8BmcuODKQx4j/UTNXw4KYRXE0A6LT2icqB +mZMkcDeMVpQeCqPt6SsHd4QiVmSnuZvzQwYtLe69BUGB4MMJ/LLTMl5mFZC+Efe/ +qy6bABkZ9VOuJr0GJGqqHCTrc0+CvudwbWQd0O/5XH4NtkTLqMcyaU+Jo2KIp5/K +N6kFcEO6fiX6RrFW665BP/p3XZ8u41fVorTN6EZb0LD26yTDWI64FpYSdN0fm4t7 +yv7ply9QwrZa6oxOaV2a345nASBvDDito2cI6IvstjyCy9RimiGWDEECOuup2deJ +T3KSRanAcnoM23Bpvz+F8XAacJb3ox2//qCUnIkCggEBAJHl2XllTF6pEFLs8giv +SjG26fFKE2yukPCvNb5O8MRIm68mxkSHjsqJoVeN/Act57MdI7ZkVgrcqTr15ljT +QJ2GgomSoS54tzbXB51Ls0XmamkYJezkyGobxbf7g42Fej6guwenJV5oJtfobs8Q +bhVDiF4oECDVrhFdYzKNhXT2ZWVbYIjZUnwQ5/t5Aorh0m+Ywgg1VcxKWLSIOR6w +ElZFhyjStIvqlXcPokjc2cvr5wtR9vRfa7wv4U9m59R0i0OSk6DCKc6OL9QkNNaT +xYasjR7rr6VpjSG2Il6BvhEWrdLh4qku30zlkKG7VzKk7Dyh0ykDM1u34NYC7tCn +hrcCggEBAO+Rnkk5eYYqGk/64+Qy5qA7djvvZ8AgihwJL3+ZUDSOxh0W+Er4NB6n +j0kI22N//D2j6hg93TNj9jI6lISfmY+TSikr/P+bQPGXl8wvekQxpjT5JhCYI93M +LXnSULuy7J1ujkMGdxEvfOTjvmD0ejtnuaGd+jM7hx4QNBbJj4VdV+r5BQOJAlfY +gk6n3RgAnu86szquWM6dObIz9BWtIcMVGlxA7yDmxjVDDHLwGpcwG+MTQRcHoeT6 +2+b7FtVN1NFLazfgPS3bxKs5jaUB+Ibm9BD8B7THviNikqRYqwoJMWpJgdWo/lOQ +X0ueOR40kfa077G7jNfb03qOPUR1mFw= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_tlsv1_3/certs/client2-req.pem b/tests/integration/test_tlsv1_3/certs/client2-req.pem new file mode 100644 index 00000000000..846f6db84dc --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client2-req.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEnDCCAoQCAQAwVzELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUx +ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEQMA4GA1UEAwwHY2xp +ZW50MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOGIanwqrZCqMT+e +PwRkiQnD0gyVt5+kwkb8X+fdBJRF0kr70YfzMpKdZP4l4W6C0Jv/ysIHusrI5pQx +cFAIe/7DLW0JPkMLKgXsOtPNZPIkc7WYkq3cbzB0ZTsK8O3IYhwn0dAYO49T//Yq +M3TLTFsG89B6uCEg7dQiP9hh6boic8M/WyAseOkJNfw+wYcTWhl1toKcdLbo8ehE +SUtVhCOPVT602zBUYFkleqKPeHJ/gzl3/mTnqfeUBljGI2aXwOl7r6rID/or7wew +2HZ81dTGDqB+yqUhBIVNseJPHOuKbke2E2qWVzAkRnX4b2ehsSaSknpCKGWyLiba +QyR0/Gt8Duu1XIsZKeFjCw27yogSTQ6xTUhLDF1anQyoJX9btSQZsTbD3vtHbD1O +07KSfiG0Z1p8LaR10RAFA7f3HLwwy6c9ExpGu5ED+co8aO5Xp5wysg8XfYZYx4Ca +Y3moQPJPDS6eOpUXd/6h27Fm34h9VdSj2p6j9JYsmTeEgb0x+JjAQyRS+Koj/tbS +bBqjbvO+FUaldRlHCHYCQTnjsSNBf7SxqE9lfgFitcgiHKSdD7QIfwNBEK1o7L8O +ugC/SQtHGe3ngUGuNmHI9w6ItGuVqoJYP3Hwa6ClGmYlTRLoAj8NkBibtoxwGIsp +TlTzmmLXpqeZTPaA2K5eiq8O5DKvAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA +3DJlf7AkZklzzswgm487f+y2bB7IYr55JwENASDxQEOdVcdgLC3IWu3hLiFwdqac +0Sw2OHZuETwJiIX3fD+qUT6TgbsP21W7wEQ4jfKg/bsXFMbrvw/ILkOW2JLTH4Cc +9ylCN+46dQ9heATkiF/Co+uASz9IoSDdtoycA3BuKGBZI8VGa56QmJOOsMM5NgxT +RTh2r23tV4E8AGYj3HC+b1rzK1RTlsj/m5nM9Jv0/NqoV1cprS1ONr8CBhN0ttuA +WLrG+DUZTMJYFabqTptlgejQFhiFp5HT5A+eXgZ8uEUX1I3q5jq1BEWtLdmJNZ45 +QViSJOokH/+1kfRSWiAH7pdBz4URLBcsDhAag4J7kV38t7fgdaIizY8R2Ss82iEP +xqa4A0PA065wB44zng/VrPrHoH1YnGRugXEnrqgcipC0FxUl3oQjvwOSR/E7yFU0 +GIr1MpRcyrd0z4p16783qnMpE1Aa0msED2SBKIK13WcNY+CtDF/wO47ZNywl1hBo +VkM+ohPpmonaVXNGdpdoZpeGjkBUbqkn+so4aYkX/WuZ6vY2vwdV0prD1vdAFfD2 +AeJx5ypu5aeKn6nK0eMy6W/VEJx6RLCiYVOCIcssgy31rmk4iLQJP2StYVK2mZKp +5aSR4eTv1/XlMujq+ZqcuUqA1id9wP7908Xr0DzdNdA= +-----END CERTIFICATE REQUEST----- diff --git a/tests/integration/test_tlsv1_3/certs/client3-cert.pem b/tests/integration/test_tlsv1_3/certs/client3-cert.pem new file mode 100644 index 00000000000..ce9a472cb9a --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client3-cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFMDCCAxgCFAXxDGdWf+MHldd68lQPasjUzyRhMA0GCSqGSIb3DQEBCwUAMFIx +CzAJBgNVBAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl +cm5ldCBXaWRnaXRzIFB0eSBMdGQxCzAJBgNVBAMMAmNhMB4XDTIyMDIxODA5NDMw +OVoXDTMyMDIxNjA5NDMwOVowVzELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUt +U3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEQMA4GA1UE +AwwHY2xpZW50MzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN8Bt8gv +50J66lQ+l/NUW+lqW4DesmSLv1BnjDd5SSA8tfczt999/l1epAGeEN/Pl4dAxXP/ +cxpx+J+xF6SKNxQ0RP+PHQMiDzCUgBq4OKs09kDQ/uvycUZlQuWPtR610TWjZR5r +VrNSwJQp3VGDdNyEbKj/yd6Yi5NC1iLuqPC20fw5/9BVTm1P2wWX7nv1AWs235s2 +yAG7pLNcgPiTfSmXyyT31YBjb9Onun7gv7exI/3K9mS+aWq6ci1xAXtykVCs551T +OQmDAUxda041YghEThO4MrZa6uSZqVwnoUcXTla+8biLYb3+9CnIjM5whAOTR+9r +jpsuuXEUOsrX9Mgb1HTS+ksmrA+Eka7MdVi60Hoon09uNvcTM8CSKNgnTzcPCM6t +J4NHDiimJM5WA/eY8i3NNCTa1HUGEeIK51UOdjIFKsvzG0TCI2FM7jQLJK5S38tI +deZ98iQbguVGhoCvRotLEAwW1M2rSOu7bxAZU4QJ93IuUfkLn2BipOuyuR55Z/6F +z5Jij/1lK2/pKWhntUHTIpG+bBHDF++0LN0aB29uIwYRkoz9JUgnNz4FDVbLvJ+z +5Ywr61t8AujZdfMZDpRYlzfWPGej8pm7/Eux5jgx/3jcLtqfqkfZLSuFjBKfkUU1 +eGsC80RupMJKIeppv541W6nQJlmJYKv7DCvrAgMBAAEwDQYJKoZIhvcNAQELBQAD +ggIBAD+YMVntBdeq7xJEL7xU4QEHzUGhDWodGMJfmswcxe7gf5Nztcq5YIug+akL +ewg0wzgCA5YGz00J92sKDF16RmYyPfkxmrCYdNGwISjNJyEEcPEVkdAzwILjv2Lq +0shFlSsf+Zp/M4XhHeirmzz/jJ9KHlzEYoCz1WOn+UGF12KgV2oQOamJSWOMCoMh +81oy90V5IlCBqnYfZCYj7cbYLBd5jZMZ+7lsVnxttzPTg1gIoP6vrLT32Ubnzx9N +IoAeiUg7az/fbnuOkJtu0cjz9aSdpjm2h2giyVAFJ8DkQ9C92tdr9DWZKn7rDO16 +TMdv0q8NFjRGhqdmqWUG6o2cUmQsJ/ZiIcHx5X1b7j7PYSS+ae9zi1tcpHAN6kCw +WHguIf5I8MIZxE741ZMBokFSIqd6Bh1EP/TUx1+g2a/nH3ZaNd4/KKADxfUU2Y58 +UwdKeX9YpcRz+NNO+1h3NoE1a/i0dhwiBf4OzBiV0WpAjQHT95IlQxTxfHFp42IH +GrbqIS3qK5DKlNFkBBk1beKxBGKmTH+Pw6fhjkuPYQzjmGo4xluivfeT8SiBT2iO +uIGLd+sitIooom0KEjHuHS9cdZ5XEPIUDAFhmIt7Y5K8J2fs+xtYzhibg3n0Q6qh +xTx7GzhTA1HSUE/467af5J3CSfpGAjZQZo/t2/A6tCumzk9F +-----END CERTIFICATE----- diff --git a/tests/integration/test_tlsv1_3/certs/client3-key.pem b/tests/integration/test_tlsv1_3/certs/client3-key.pem new file mode 100644 index 00000000000..b7464eb2866 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client3-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDfAbfIL+dCeupU +PpfzVFvpaluA3rJki79QZ4w3eUkgPLX3M7ffff5dXqQBnhDfz5eHQMVz/3Macfif +sRekijcUNET/jx0DIg8wlIAauDirNPZA0P7r8nFGZULlj7UetdE1o2Uea1azUsCU +Kd1Rg3TchGyo/8nemIuTQtYi7qjwttH8Of/QVU5tT9sFl+579QFrNt+bNsgBu6Sz +XID4k30pl8sk99WAY2/Tp7p+4L+3sSP9yvZkvmlqunItcQF7cpFQrOedUzkJgwFM +XWtONWIIRE4TuDK2WurkmalcJ6FHF05WvvG4i2G9/vQpyIzOcIQDk0fva46bLrlx +FDrK1/TIG9R00vpLJqwPhJGuzHVYutB6KJ9Pbjb3EzPAkijYJ083DwjOrSeDRw4o +piTOVgP3mPItzTQk2tR1BhHiCudVDnYyBSrL8xtEwiNhTO40CySuUt/LSHXmffIk +G4LlRoaAr0aLSxAMFtTNq0jru28QGVOECfdyLlH5C59gYqTrsrkeeWf+hc+SYo/9 +ZStv6SloZ7VB0yKRvmwRwxfvtCzdGgdvbiMGEZKM/SVIJzc+BQ1Wy7yfs+WMK+tb +fALo2XXzGQ6UWJc31jxno/KZu/xLseY4Mf943C7an6pH2S0rhYwSn5FFNXhrAvNE +bqTCSiHqab+eNVup0CZZiWCr+wwr6wIDAQABAoIB/0I0QFst3XnfA7H+4x1Z7e9d +o8yeUFeJJUK5eub9Grh3TY4VzICM5vbRId9ZDalj95gvom7NZ15yd1zxNhOi9LcK +zXERC4vikJ/bdix4hFpPXsvfP87MKtS7OyDriNmVIIbL+zkMpLCX4JQb2ZhZblgI ++DkztrpejxEoxmmYcI8Ft1Ep5sfyi1XoXx1J/YLPOZyarcdme/oHut2EmMUzA/VV +GvnemYOEAa7UHImOL1xZOlYd6wf9f04wC7Vx1v7PBFTu/9O04TnxqnEBStns/y11 +GbjA9k0ssI8tDxpMqZRxVtBp31jqCBpflhzRbPvca1SkZLavN6baODNZzhpqAkDX +3R4lU5C7wu4jtzydUyEsCFNdtkGKlxpZRbRZk+keUC+HeCmXPED7p9egwF6Zi8VI +oaXl1KvHZO2W5x/BV9I1taEPhmOuRR49KxkU4e+IjqaWYN1qsqYqCs/od22Rah72 +KT+thr0mdxC4lb+pvteafricUQuq/dSbEY/lva7PhPQRKVX/VxOaAxBnhA1LHVgZ +imsW8W3eOQYJbxniTrz9EblWAg4dCcupsjMDUDUyACB/E6isDtYU1J2im6p4gbqw +tXg3bRh7KruIHbPSJyrFm1uqe+v97TLhpwPHKCsxE4HiJgRzaQDRckLJQebqNp3Y +e7kLLjg6uGsjAl6OwKECggEBAP5bLGVrmBmAz8RYPnG1MQWlsFg/eIhMFCqMjT3P +swPUU2VJKC3TC3OwFLxlAr0lkXol+8L8aEvxGjHksleA+1z0lav43b1/2jKgLgI6 +Ym5BxMJa+sUJpI6K7CedJ6wf2ozbpVXazvNBZ3o2l0QbC/KpX886CZH9YJgn7N0M +TfPe9er5zmETdHGTWtA0sDI8fZ8XndKmnWG9KTQCGur6gemF8SKuzGv/BnL+BZnv +bDqSvyN8Wjk35KPNeKVW78ROxRuEdB5brryGk955hX50PRRoofW8GSmLJNKNYvIj +VRkKrDKpz8gW1C2/xa9j5tQkGRFMDAptmk+yvtmDxfZz38UCggEBAOByrXLMTcwR +bz4MYcSmEdLv2VA/bZ+y0kW0frUU5il2fyQseoFbunVbTDiXYf40uueMbOONZktM +w04CXKRaTbnS/s6SGU5VW19jv+xzwrzpB2Shm08APwgFnSw40bKCpN4ZWQbOyFVq +QIMXfA0+Go3zJz37MsSgY+mzhHp4WITobVFpdlhaLvrLPCB78uInZrFsvNN6NP+K +OIbOoTA9u+BP73THHkpQdrRJaJWowpqejz8kzQ/Xu0Xe6AG1EGVp39phKpWH9TPF +8xoxjbdIGPkzCzYO3hgz6PlnWVj8iyTxklnaUblqKkY2mOlMA00ujcdF3d3IHvaM +Xolej+XeZ+8CggEBAKeZDdzaE4Oic8RtXN/xwxZ0gYj0cYhlkNgkeqCi7dL1IepY +VQg0ypP1DwTADhjx2zTAOG7XgCWh/V+o0LaFv5sVclW5iuplhzHah9ZiAB+kaHCk +IB6a5vohoc/MZqqs5oXv6LZ0ke6JRxSpSezPYYUIg5/5Hvs6GF7J1/IjPG4XmLS2 +23zto8l+jdUpEnxXjXK5zf1SWdtgF/kz9ealH9rurd/ri7kRdn9oz+oJb6f8r8ND +GfQf1yDzr65KZXxVZt1l3llukemZR2/NZN/Y2bJL64QO6AmOrLmr/emMzHLOrH5J +lCbEnBR1C14xFpTsIDRchoaMh6RCJC0Q/e0Rlv0CggEAAOIysJsBS2ZeK75cvCtz +MoNjNZ+qTNClZ0TYotncNhmTUo8iRFQaHdAoMqjV5+xJOBQjcZni5zT8J9h2iOca +GzsraaDFnLtVSsDXxpSGFbxNHSZNuDfmB6AOCFiI6sz83Sr4YMB7pWpvqpRzFpJC +BIEKjIHqpz+CZS8hvGGw54UKuSFTJ/Hi8XXPXMlgIWfKTbSB4cs/XiorIsy5cbks +fiuSY8FM6zn53afUU5KAgZ9SLQt2CzPsNtAz1Z3i3KNYEEIFquUIIBYNaPL8/dW4 +03JR/vp8AVhi+Ghhv6nu2kxhKR1k6Pf0Bqa8X16/PJSMVlZ+Extwk8Pls2C97Ee9 +3QKCAQEAgjcbHKBjd7AeyNpPSzNpv81Rry5qqOc+Cxx8LtOHBl1wc5VB5FPxfbuX +MX2skvWPnokDoXcI1a1WQwdjaZUsSoqdeyPtw8pFWiNLJZkYImiP3zMCZXYUEkzk +3EXQZryWEqBYBqxlEvTyjbBmnrAwOPOUKARFi1l9JKJ4QpdELXo9Yl+w2IQEQ5N9 +jrSY7LwS/cb25rhEc6oh/89aY83HPyABh4lC9bsciXki54YIeS+y9ijN8yCRxikr +mVGfQ0Y/qcY9spAj05yr/vnlENBB5ohxwKKsemOnH93E2GFxc1dzmWCGvISjUduB +I68TOg71OfCKgfeixNgcOvQoN+xngA== +-----END PRIVATE KEY----- diff --git a/tests/integration/test_tlsv1_3/certs/client3-req.pem b/tests/integration/test_tlsv1_3/certs/client3-req.pem new file mode 100644 index 00000000000..7b4445b3609 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/client3-req.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEnDCCAoQCAQAwVzELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUx +ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEQMA4GA1UEAwwHY2xp +ZW50MzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN8Bt8gv50J66lQ+ +l/NUW+lqW4DesmSLv1BnjDd5SSA8tfczt999/l1epAGeEN/Pl4dAxXP/cxpx+J+x +F6SKNxQ0RP+PHQMiDzCUgBq4OKs09kDQ/uvycUZlQuWPtR610TWjZR5rVrNSwJQp +3VGDdNyEbKj/yd6Yi5NC1iLuqPC20fw5/9BVTm1P2wWX7nv1AWs235s2yAG7pLNc +gPiTfSmXyyT31YBjb9Onun7gv7exI/3K9mS+aWq6ci1xAXtykVCs551TOQmDAUxd +a041YghEThO4MrZa6uSZqVwnoUcXTla+8biLYb3+9CnIjM5whAOTR+9rjpsuuXEU +OsrX9Mgb1HTS+ksmrA+Eka7MdVi60Hoon09uNvcTM8CSKNgnTzcPCM6tJ4NHDiim +JM5WA/eY8i3NNCTa1HUGEeIK51UOdjIFKsvzG0TCI2FM7jQLJK5S38tIdeZ98iQb +guVGhoCvRotLEAwW1M2rSOu7bxAZU4QJ93IuUfkLn2BipOuyuR55Z/6Fz5Jij/1l +K2/pKWhntUHTIpG+bBHDF++0LN0aB29uIwYRkoz9JUgnNz4FDVbLvJ+z5Ywr61t8 +AujZdfMZDpRYlzfWPGej8pm7/Eux5jgx/3jcLtqfqkfZLSuFjBKfkUU1eGsC80Ru +pMJKIeppv541W6nQJlmJYKv7DCvrAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA +Rggrols8hXGEcWeIEGn66kY9IVTzaTUf3oMfEbdf/2Q1QzHzmqp53yamHl5ioMgX +o5UBVxthgh1VOxkvCxIzlKDJprzVFkfwwc7h9c0HGt3No/ERobHDT6YRaGukAL5g +muIGBUseyBAOIfyqc5kbCRWfPrAOttAH4gd8XMBgO8XdfHAvyXBC8Ha55O6oriX9 +IAKL5+3nVJkBle+62OmROnstbcdKyK4UtOeki/6ptYVE0d9I+NfKjuk3eKtICW8Q +Pn3IEcNEZoFG2UQ19ENWwYEZyMZJt0aunqnm7L4RYiZT5w4meeendzXSKLKR6+Ye +ULt1sDRskgKoNRzmeCVzci05BG48jv/E7Az6aV/qhGiU2qIAPMdVXncWUhR3fj+E +CL/uLifOvfC6SnKw/7qQmgjUvEe4Duvi670a5QuImpm/mAIN22cXPc+QquSdR5xy +loz/o3JJQZemPAOM0CMIHZ+cGESxH30QCBNn5HfcOf5fRZVCss4Hl6JxHR2G4yN3 +RKEIUXR03qgSK91WHl3WvqwXgmIAiUuvPjo2i7kSuaUUHilZiXK1ngIqYfUTB5SQ +O8pG0fx3fbhVDA3RQfXeJE6FA2AyLvqOcsseRzvcQjQm4MU7p+RVaY17rI6/EkS8 +ac3E7BPwnXqSAkPSEgoiezv/Z0Hkmrcu6fIsUuf4ETU= +-----END CERTIFICATE REQUEST----- diff --git a/tests/integration/test_tlsv1_3/certs/dhparam4096.pem b/tests/integration/test_tlsv1_3/certs/dhparam4096.pem new file mode 100644 index 00000000000..102b8dcc72c --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/dhparam4096.pem @@ -0,0 +1,13 @@ +-----BEGIN DH PARAMETERS----- +MIICCAKCAgEA/yTb5We6gyTktHTlb/PimPgJhvY3Spp9zzBO4I2r/f7p/llPLj7u ++VDW8s4Z9+UUVQKoVoU2NLcgbgIUWrkAKuBCqqxxh+/+0NdP/klkWUX084HBvT5e +Tofnv2JT4EB1ynlNCF1q7frF/ELNyPzOWzh2w14XwoWxb3ojrfwG7N9p7CQbSwjH +f1lDRbOcLX+n/pic4X42KqqXqsg6ehtwORz5kMlT3DTAGC7sfB6rL8Y8/GrPmTNV +wny+UdnTyku8+OJ/xhL1ERiOGMCcP5jhIU1Bq9Uf0ayp+3fJazPAyP5iUprwd3DF +9UvaEqIFeaknq5qX+aVf8G7GpCpIC14db6uEJCH/oMSGakJdC0jWZzN6EeJoUILY +I0K/+DA34/Yh7SAehqc2rAukiquCv59/Lm+FlZyIzjQoOtKI06oIjGr7kbS4lvgF +NbN7AXYaou5cJaffPmfgUuU1hw9gn2kYYMb7el63BBzIKX/ptWR/uJ59h05ivYGX +J5bok81H7gYvwHaXkKdQ2t3FoFJHAekKpraiqIW7qHE4O2lb3JOU9GvAQ1QLdNNw +CKJPFKBVes+YxmncJexxvyVXj1N9XXriOG949RwpLF8d85yx3eN+3cq5XJx65Rog +OknNaTV8uTrpX/WGcVylApshMy9+4LP352ZsmXDuP7yiBqlaxyb/KLMCAQI= +-----END DH PARAMETERS----- diff --git a/tests/integration/test_tlsv1_3/certs/generate_certs.sh b/tests/integration/test_tlsv1_3/certs/generate_certs.sh new file mode 100755 index 00000000000..d6126d361f5 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/generate_certs.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# 1. Generate CA's private key and self-signed certificate +openssl req -newkey rsa:4096 -x509 -days 3650 -nodes -batch -keyout ca-key.pem -out ca-cert.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=ca" + +# 2. Generate server's private key and certificate signing request (CSR) +openssl req -newkey rsa:4096 -nodes -batch -keyout server-key.pem -out server-req.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=server" + +# 3. Use CA's private key to sign server's CSR and get back the signed certificate +openssl x509 -req -days 3650 -in server-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -extfile server-ext.cnf -out server-cert.pem + +# 4. Generate client's private key and certificate signing request (CSR) +openssl req -newkey rsa:4096 -nodes -batch -keyout client1-key.pem -out client1-req.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=client1" +openssl req -newkey rsa:4096 -nodes -batch -keyout client2-key.pem -out client2-req.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=client2" +openssl req -newkey rsa:4096 -nodes -batch -keyout client3-key.pem -out client3-req.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=client3" + +# 5. Use CA's private key to sign client's CSR and get back the signed certificate +openssl x509 -req -days 3650 -in client1-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client1-cert.pem +openssl x509 -req -days 3650 -in client2-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client2-cert.pem +openssl x509 -req -days 3650 -in client3-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client3-cert.pem + +# 6. Generate one more self-signed certificate and private key for using as wrong certificate (because it's not signed by CA) +openssl req -newkey rsa:4096 -x509 -days 3650 -nodes -batch -keyout wrong-key.pem -out wrong-cert.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=client" diff --git a/tests/integration/test_tlsv1_3/certs/server-cert.pem b/tests/integration/test_tlsv1_3/certs/server-cert.pem new file mode 100644 index 00000000000..6f8e5a3c6b1 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/server-cert.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFSTCCAzGgAwIBAgIUBfEMZ1Z/4weV13ryVA9qyNTPJF4wDQYJKoZIhvcNAQEL +BQAwUjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDELMAkGA1UEAwwCY2EwHhcNMjIwMjE4 +MDk0MzA2WhcNMzIwMjE2MDk0MzA2WjBWMQswCQYDVQQGEwJSVTETMBEGA1UECAwK +U29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQ8w +DQYDVQQDDAZzZXJ2ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC8 +jV8igQGgCvu/7BJDI5VQl43VGAFjH2Na/E9P4E5uwkSlJVED1WKvIlxRWhOaQOfC +587nZVhQtHpdbCvBdKrHml4SVbTchs5SN2kZsHeqaQzcGnejnczE0SYo4xNyniSv +GiQ1M8G3fiZNflEIPM/+Ob2oI3YnVWFGy0a5rQcHZWS45KuGILMP0aRHyzyh/31c +K3i2xA7A3V2jBNuD4kHG8TLgfDeoCecTI0iU/LJnDOolX5XdpyeoJ6YyYOGg3F9e +bRmbNlJN3Iky3Vzyc4jYG7y6f5DqfebYMW6hCvLpf9lN6/gPNOb2KjL3hvJ+hbj+ +b9EkVAzpw7mW1VHEy+WbtYMPoKy08JTc7zr1tv/vQGr3XExwlC9iixZXMaVt1kP1 +TEVHv2FiUOiZsVaqtoFpS/wBvKeQdkzNy+66pRpG9bLuOnL4hlz+rwHkdBmHGk+q +cXdwglqIDqXKlCpIMSkFPH1364KLdJ2qBgWWoWCJjUmgbrA8/LU6DX+GBbEiw45T +PQKP//RMkOrHOYRD33WTU0iKP61zn5+9RD5OLxEUOtCvL7AfB+jt4vYrMTT2U3Kl +OckWxNx55bYLdLfGKtepGV2r5xzce0UMbWQrXQRuka3a/j5VJUTuUgcwgd6FoP4N +4ObW2H1YEtE5M30xpa1kcqJ1RGEWagakISgn2Z3TywIDAQABoxMwETAPBgNVHREE +CDAGhwQKBaxNMA0GCSqGSIb3DQEBCwUAA4ICAQCE2eJVcvsMmJu6xAfoE6/u6BrD +opMicCtlC2qt0BgSIzzDQ/iWjnWKGM1C+pO+2G0WTczj7ugsxjPzhkyBpuEZaWt0 +9/tJTKIrgaRZvEe0ifsJxyqL5LJgfxK7TbDPcUBKr1v+TOxPVRq0FuG16x+yka4C +rwxfBHU43FmtEFfgu13r515F3ggXcdlojkce8ZKtTAGEcN0MpbJ6XS90BHU0sy5A +APTm0fR0vM3kg1nuBLbSGF5KfASdw13gb6QsDbll0IqK8LvXYiX5CaVfkAe/pFkO +/2iIxYW74yC2gV+DcFdRPVfFxSKrdg0tDER35OYg1/vXRjV5BWr1EjE3qjrCcUZy +rlF3fms7Arr20ka2nSa8avn4ALpyJZmKasoxNAAsxivingNVZkql48OqsJ3n0qGk +LI6Yu+UM/pc78a3NHsdsCbnf8qvae4oJa1kyiochJu+gUOzHvs4Ydti9iTQn2Byo +2A2LzyVPBmSOhzdQ7SwpvHA4A2ftao+dZoA/+o4rmBtbmgxjpBPyPJTN0ZfKlpKl +Oyi57ov+cJmZctSUbP3M11gBva7aYu1Rd7/eXeCEl1FHhmKL/Ee+UrNZLiwspb2E +Sa+pOHdJX8VgsIYXku2UKaGT2QFITxO7fnxghioxgsyCKrQ+m1gL9vgXj/gJu+48 +c+5CZ9SobLdMkVOtQQ== +-----END CERTIFICATE----- diff --git a/tests/integration/test_tlsv1_3/certs/server-ext.cnf b/tests/integration/test_tlsv1_3/certs/server-ext.cnf new file mode 100644 index 00000000000..83d9b03ccb7 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/server-ext.cnf @@ -0,0 +1 @@ +subjectAltName=IP:10.5.172.77 diff --git a/tests/integration/test_tlsv1_3/certs/server-key.pem b/tests/integration/test_tlsv1_3/certs/server-key.pem new file mode 100644 index 00000000000..065a2290749 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/server-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC8jV8igQGgCvu/ +7BJDI5VQl43VGAFjH2Na/E9P4E5uwkSlJVED1WKvIlxRWhOaQOfC587nZVhQtHpd +bCvBdKrHml4SVbTchs5SN2kZsHeqaQzcGnejnczE0SYo4xNyniSvGiQ1M8G3fiZN +flEIPM/+Ob2oI3YnVWFGy0a5rQcHZWS45KuGILMP0aRHyzyh/31cK3i2xA7A3V2j +BNuD4kHG8TLgfDeoCecTI0iU/LJnDOolX5XdpyeoJ6YyYOGg3F9ebRmbNlJN3Iky +3Vzyc4jYG7y6f5DqfebYMW6hCvLpf9lN6/gPNOb2KjL3hvJ+hbj+b9EkVAzpw7mW +1VHEy+WbtYMPoKy08JTc7zr1tv/vQGr3XExwlC9iixZXMaVt1kP1TEVHv2FiUOiZ +sVaqtoFpS/wBvKeQdkzNy+66pRpG9bLuOnL4hlz+rwHkdBmHGk+qcXdwglqIDqXK +lCpIMSkFPH1364KLdJ2qBgWWoWCJjUmgbrA8/LU6DX+GBbEiw45TPQKP//RMkOrH +OYRD33WTU0iKP61zn5+9RD5OLxEUOtCvL7AfB+jt4vYrMTT2U3KlOckWxNx55bYL +dLfGKtepGV2r5xzce0UMbWQrXQRuka3a/j5VJUTuUgcwgd6FoP4N4ObW2H1YEtE5 +M30xpa1kcqJ1RGEWagakISgn2Z3TywIDAQABAoICAQC11lTwLp/Fm7IL9fvquc9P +CMmkv2DfGi80WO2YJ8ccM8gFyEYoP0rLgYSshAUxlvSr1+iG6grQ0izMGfzctcnZ +c3rTjco9fthNG9kFCFVvh536SqAkr5MCIH3/onZn7DGOmNRgZoikkEkaJP66xgME +tuS72W8iIcoNfw63FDIaJOONGCJ+2Nw3HkOjZVIVHRLlp5rkD5H218Vs6MtWlgY/ +eO9K5SC7sskhgL6HyGe40BCjeFpMh97L4Wj7XslZ3A0xQGAYervHES9TWX5A58EK +QT2yUkIMktzklE+PicKYA08rQa1Z5Pf0YOAELSWBdS7iWi3FLjXB35sE5rbT5puH +9hZXSDWLggbefuaUJyowDEZy2aHP5pvXKBDhEANRbU8VaDyHhlNLqVNquE5Cn4HO +zPeH+KLFbbABUok7yYZmIC9Bfn+rXvNzTX6A13AdJI/HcKA5RBGtpAY/168Pt/Aq +dzuqepu42rFAvS45RNevp72IIavx/QdAA1OTgKxh3c2Mf85pIXJ51aWWLnn+EZ5/ +EsE0crfwkuKJvjubNC4oOwMTFMIBI2WsjvaAw8pQw0Kb0ksExKd0wz9mKcqR/v0I +K9oYsaHkx5je0NOZds385+zCoQHYaw1aKUd7ZLqr5G/Nf/2TEYpMWco4ETA8lzu3 +Ty/8XkNw8jd4p+7bUuz1mQKCAQEA4MNU7GWDPwUKNNSz335nGH2oBvSGbYiwLcRM +D+x2+RTfOAFSSJ+Q5tQ+327ZkAB5dK2mxmDYKB+Ln1UBIneViUflkMyh4fuutIXI +wYo+BL71r89MqhRvvMK9hWnCGtJTJedf2iQENJzVn4J76BvTPRYywBv9pofPOlj1 +MtwwMA4CZAmQpCUaF5NQr4nliYx+slkcKwlm+cOxeZGa8mkNgQdmCcTZkRz6qsiR +vQDEDiS1+5lCJ6nWW4L2tOPejNN//hVlbPGMaA0oiu7I7w4aSxnTlLhDgJzJwmN8 +NFYl+u5AcPq9iRtBnzfPmd87S9bg10zcIiMKxw898sU24Pa0jQKCAQEA1sG5hO3c +4API//k7NEWXsx5Ns2JE/AV1LtmBgqXkn1DAJ+b6V1nIUppTs0zspEWrae9KrsAk +z47qIbPaTLHuptLrvEXk2LVfzcK32a7fXXDOB5KkBhzlJM1J3PTRQFR9lr7qX6vr +EDc4p7p55IDEGnJdXa7x+z56QjpAZaHlzexQxvoWWoLBkDuoT389sdU7CbgTa4A+ +CR6D6qKd6H6tfmv5sPlvp+aje+ObacP9I4WyVjscWkzBHxS3n/fTLjY6OFv+o8PM +TdytN4+HZnu4MDJlF3vx9P6CbnnVCaScXDxPGcoSJPcoEQqoyxuvUQLDUQkzWF14 +02EvXW0dbgiPtwKCAQA0EUwFD2ceHD7HClc4+QFNDR71rYPOsBGQKJ8uOSs+fHVR +dgznwf9BWf3OqNFBqLp6KxgtcJXihZxEpt6Ca416pesqZh1CSpmoPC3LmAjR9KLZ +vX4XEHDqG3roAx3yNLMKXtU3pYxL2+Eo+INXu8ptpkzPcCyMfX2mGKGEzLllCHnJ +TuXxAJ9QwtG4OIuyF5fqHPaHicAPMCRW80If0fJM57fdn3p/QWVYVupcDGdel2aJ +CHHo2lFMFcStFvShTwWhiLdcS4CpQhMYTETEDFJO/4aiNyV8D9Y1b/J/9U0LGlJX +Wd66elPzXGx9StdjtD2V4rpENjXy8zb4nHMgHkapAoIBACvvtmTbxTSPka/M7a/k +DQU4Te1FTZfCBhdvqG9yQTPW8Xk4aD82vyUnLbihJEj3d/pUWpMl/GH6eywp/59x +R8IZpOD/67HqaY9PJw4CGPClA4HJHoWho7/DwDjUXXsrzgXpSUoJgi3vHkgyfn2h +Wn2OqEtiX19niNvDzyj71mgq0Nvkjm42EiPQEL8y6QxY85spbc+wjQCQnayDWIsY +X6ZdsNfkMFPJe+j8x+77ie6ai8HYlhRjX59cPbUcnrf1oDOnnpEincnQPCAB3VG6 +PhSeOtBzKy1UZJr1kgBHDTZRoF1GWi/14NybsazcHSIVzp/lofuSJAYa+/XBPSQl +3EECggEBALSLZPdg13906LEyznYnjgq+nMh88usegvU9qsBAFExClLLfr6Ak77og +boNoOwbaFn+xiz5M8BTJIPizJcm5GjYaqg58zotTtG51h6VgMri+fb/BUpVr7p7n +aSq3kXDZlrwZnmooCT+KcGx++w2N2SYSyZX1TELt/dpfuWJvph+E37PkONEEiHPF +ZtSA/f9lpfP5/nx1pLmv4ksKdXqpz3/kNqaf9zbhQLgOm/VoBHL4NVPYRylGpCJb +R68/7yvHBd2EskZoJB53TlJmwu+fC6ee1UiG6aqTULfEsiGidi6jIt56Gz52ox66 +BHL/JsJ0Be5xM3V4x4PtihQ3Dw546FY= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_tlsv1_3/certs/server-req.pem b/tests/integration/test_tlsv1_3/certs/server-req.pem new file mode 100644 index 00000000000..be2f756cc7b --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/server-req.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEmzCCAoMCAQAwVjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUx +ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGc2Vy +dmVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvI1fIoEBoAr7v+wS +QyOVUJeN1RgBYx9jWvxPT+BObsJEpSVRA9ViryJcUVoTmkDnwufO52VYULR6XWwr +wXSqx5peElW03IbOUjdpGbB3qmkM3Bp3o53MxNEmKOMTcp4krxokNTPBt34mTX5R +CDzP/jm9qCN2J1VhRstGua0HB2VkuOSrhiCzD9GkR8s8of99XCt4tsQOwN1dowTb +g+JBxvEy4Hw3qAnnEyNIlPyyZwzqJV+V3acnqCemMmDhoNxfXm0ZmzZSTdyJMt1c +8nOI2Bu8un+Q6n3m2DFuoQry6X/ZTev4DzTm9ioy94byfoW4/m/RJFQM6cO5ltVR +xMvlm7WDD6CstPCU3O869bb/70Bq91xMcJQvYosWVzGlbdZD9UxFR79hYlDombFW +qraBaUv8AbynkHZMzcvuuqUaRvWy7jpy+IZc/q8B5HQZhxpPqnF3cIJaiA6lypQq +SDEpBTx9d+uCi3SdqgYFlqFgiY1JoG6wPPy1Og1/hgWxIsOOUz0Cj//0TJDqxzmE +Q991k1NIij+tc5+fvUQ+Ti8RFDrQry+wHwfo7eL2KzE09lNypTnJFsTceeW2C3S3 +xirXqRldq+cc3HtFDG1kK10EbpGt2v4+VSVE7lIHMIHehaD+DeDm1th9WBLROTN9 +MaWtZHKidURhFmoGpCEoJ9md08sCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4ICAQAb +FDegAoUBz9O4JR1u68IMnGkO5nINGAPQOqf9a2BxGujnSB7Lw6SHukjkUqqgnfQ0 +x/aWOI8JVAi/ptscojgMQUDsVNsij5v+jbJE+ZAobxnTmKP0wTc2ktpf4d8UMVc8 +gyM85jLHZ8caCcuy0D97W81vgIv33dNHWtP+sfbQhX9wJ2YQTahIC8NpuQfLAOUH +EFxWil0mfN+9vRQ1C5naKtvrOPqyM0RPrWiudIJ5QjI4aSXxUCupxxnaQMoI0Y50 +MvVVT3VwWgP+hL4b+yEJFHRpE7BwCZijsLIXkXmVZoveHhiSMYen1HWIP1VMDEHP +CUtG5UQcA78CBS8qg4nyFbDU4hWClAkAt96O8Y2epJYepIoYuBBSEfrgupESMLjS +E9Hfq/H6Ac/Q3zWa320udvA+ysfS8pagkoiH9+TarrsDjhxLjg2h2bGcXKlrsP1R +mRVZwfNOl3/ZNq5HBPb9Z5WXKvcsTCQAlnHJdaSmzdyArB0guwUHg8ZZNZqCdVgL +TPsfE84yI/HlwRfuQILfGxq99p/UYFwnee5CoM/PPvaAT+9z/lykMWZA7osuBcK6 +zP8XneGmZOkmez5+YJgSC0xeaDxr2R52eQXlQEJGDbFDtQap/X+cJDGyqmGnbhSu +6XkGy0l8mAkpcurMcy3wWf6+joskZAN4Joi4ZjKsQA== +-----END CERTIFICATE REQUEST----- diff --git a/tests/integration/test_tlsv1_3/certs/wrong-cert.pem b/tests/integration/test_tlsv1_3/certs/wrong-cert.pem new file mode 100644 index 00000000000..ef95a73deba --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/wrong-cert.pem @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIUL2Y/QpwqqHyi43PwPeA6ygdPYK4wDQYJKoZIhvcNAQEL +BQAwVjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGY2xpZW50MB4XDTIy +MDIxODA5NDMxMFoXDTMyMDIxNjA5NDMxMFowVjELMAkGA1UEBhMCUlUxEzARBgNV +BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0 +ZDEPMA0GA1UEAwwGY2xpZW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC +AgEAxO2PSeaiNFMRRiFXpnMw07u6EIdEc1Jx3cPvZjEUg/pdEmMYkrSxr2MeqRkl +tWH8TcIIoiWDLIcM6IU0mF6a5ULu84hFb9b20qRG3wRNb5yO86HnoyzU99t98++a +9iaY1QAt03k8wq4jRjU2k/eoVSoLT5uVP5KxiNzdS2BTHFSsxrt/xcwdgkfJouHN +p+MYUekk6qaQy5fTqTpqdkgO2v/JoYCi0whBNj205d+WnS7xfeyVSJP1OJWHRZ7K +Y+LU6hz6wHIng4s/ag7VdAk0PArWs50BmH5g2zJfvt7VeTQebaJWUtSEY05odOqt +KZteUmmhxW/2M73wGVF3WAJCnaxypsjcmMZFCpMXpwyTFrqobvC3APl6SOP+Ev1M +LxhhCIDuLFu46P55KKEKjUCsYigd1VsHjjvoajGcqlPlMsVHJc9VChsQDz6agzDP +Fb/LyYbrDTTmsI57/s1jAZyemq2SEYPApJvcdZ/ucl741jI0671EZPlip9iUQgt3 +MHlc3t53/GtF2W6GF5Fogch7c+0c2BhMupAHAXwfLABvv5X8GDyjsNlwB6ea9jeC +Hw+0rEotZzCXId3daFytGNm1jI216kXLSbvz6uz1wMGS6Hrhk87whgvQ58RMNs1K +SGDFw1WFv+QZeTO7wqcn8Y/eqF7q9RBhOpPMJMX8Sx/UXuECAwEAAaNTMFEwHQYD +VR0OBBYEFCI7Iy7tY0D4HPa9BZCZxYuJ51mZMB8GA1UdIwQYMBaAFCI7Iy7tY0D4 +HPa9BZCZxYuJ51mZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB +AIKYtBwTp3yvUGSXorV32dnU0Hp0MOie/itgx/la6b3h2bZSoCigKmcmvMaAaNzA +pxeYSsf5wPnONpWfo9hsGrUDMT4ETnXdzA1dbidIrhJbGsY8CN217Qt3YZWNWkrz +xLwxEwAovQZqnGDvtx+tRE8i6YJO6/kca+GB7liHFvUx8zaQ6gCwfloduG8rOAeq +noeCpW/zqYQSQGK35ntQ8MTTRbi7jMOTCikvRlldS73ODQcAR7jywgBYf/i8ANtz +NoWa4KbWuqKsQKMIGOi1fMLMaNlDSzJyw6UJ2GVCcL1NxkCZi0yudfAAxWlRis9G +zLjm7YdNBiC6RVZudGhvzjlsLZpE9DgiwXqcDv3Y1dpstD5ikrNhlQo6THH1YeFy +B8vjVGZZZu4B2JEo+QWH+zFGJosD66YoaKMVuwRPwoGDQoO0Pfbpq41A4KUhB3cf +X49/rbInqwsN5MuGp4l4+T7k7Wm0Y1Qo4FXDVbFxHvvniyHUsZk9Llzf5wBLl84m +xheUGgCHSflfXuuWi76yoADHCv+Eqi4/aLJmkUewKXJlm+XYs9bdBHUI+Y10KmhA +hgcHXF56L+N4mLRwUuLxa5qwQIqNX32+piQoO9opxnVKKCptpATLE30TOMLEXBlp +J+6b1e4BIasAAEGUhTgPj/SLL0u59Bv0K5SlSn7VZ0gI +-----END CERTIFICATE----- diff --git a/tests/integration/test_tlsv1_3/certs/wrong-key.pem b/tests/integration/test_tlsv1_3/certs/wrong-key.pem new file mode 100644 index 00000000000..b2213cd2675 --- /dev/null +++ b/tests/integration/test_tlsv1_3/certs/wrong-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDE7Y9J5qI0UxFG +IVemczDTu7oQh0RzUnHdw+9mMRSD+l0SYxiStLGvYx6pGSW1YfxNwgiiJYMshwzo +hTSYXprlQu7ziEVv1vbSpEbfBE1vnI7zoeejLNT3233z75r2JpjVAC3TeTzCriNG +NTaT96hVKgtPm5U/krGI3N1LYFMcVKzGu3/FzB2CR8mi4c2n4xhR6STqppDLl9Op +Omp2SA7a/8mhgKLTCEE2PbTl35adLvF97JVIk/U4lYdFnspj4tTqHPrAcieDiz9q +DtV0CTQ8CtaznQGYfmDbMl++3tV5NB5tolZS1IRjTmh06q0pm15SaaHFb/YzvfAZ +UXdYAkKdrHKmyNyYxkUKkxenDJMWuqhu8LcA+XpI4/4S/UwvGGEIgO4sW7jo/nko +oQqNQKxiKB3VWweOO+hqMZyqU+UyxUclz1UKGxAPPpqDMM8Vv8vJhusNNOawjnv+ +zWMBnJ6arZIRg8Ckm9x1n+5yXvjWMjTrvURk+WKn2JRCC3cweVze3nf8a0XZboYX +kWiByHtz7RzYGEy6kAcBfB8sAG+/lfwYPKOw2XAHp5r2N4IfD7SsSi1nMJch3d1o +XK0Y2bWMjbXqRctJu/Pq7PXAwZLoeuGTzvCGC9DnxEw2zUpIYMXDVYW/5Bl5M7vC +pyfxj96oXur1EGE6k8wkxfxLH9Re4QIDAQABAoICAQCjj/CAX/f/X7MsPYtQa8J1 +Sinbio42/pYmrJPNnBw/FhZxrC7/wucGFlyj9IgWZCEr8Go9SsztkeoNwn2RxJoA +q5xOV7PclX4CLIHUv/0VI8Kz5pi/NgBZMUwm7K8Xna041OI7ECqARCR2LsJ7GasN +uVMVttK6r7uXQmLnNUUydb3ffmI8xjEIQVnfWI74z60mc2+/GcOP5jXeC+/a+DSm +fudYpcAXaXbId24ls5SkTxYzEepYEtQNQFzPXXkah49yN8mpR+c74c805scxjmd9 +Kz9yhYiKwQTvaqKNpQVHmxte0gPC3lJrLPejjDtxIGOyLZw4oaqrBSpDzR9D0PTE +C+BR6VlXpVCTcAoiweuoDIxNTiJ5IbIJme3iMWxsAIJ4n10rSFFl9Cmmqbphp/6/ +XInB0X7Zyr1kBrwf+DH6DJhje5NXgGKVR9oe9jjW5v8V2tg1RrkzNU8iKBSxpvcI +x4mKhhRLYgoq/iNeYBVQrwJYktIbweVCQ5Spj7/20IrMkn3FAmMsZxGMZmLisJ9t +B0vvUkUgWxuJTsPJ2j+ytpGT0E2xIDYCpbG2EopDc8WvHcVNhagBvLC6xIjIKm7N +2zpBU2W3fPNXoToCAmaLDPYeRRpG6XaGFQAfvKUQRLBDGTfQ177qr34UBnmgvxDq +J2gA9rQm3XziLMuSlJexAQKCAQEA+yz49Ah7FFq0QffsoRb0qOJbfcmMGTRkaafb +ztto4EFSnjH2EwoSShu4DfqWw+ws1KxHlItNHHko5pVNpS4lj1OpnobW3QD7kEIV +mYKa3KowYUcCq1Gzq2RNDZqsC2BSXwx1MG0VVKYOahnu5bvzQq2Ft8W7CWBnbTbY +0Jxjs4KaOza+bH7Vfb5Yre0tlW7U5vI/YO8+YKxpxfOU9kVo8ZLQ/9r/YH8nnLa+ +Fd91+WjcUW8CTKU+Oz3lb/Vwcs6YOoAraq/wtOCqWURunBXkQtzOIn0bgBh3WEk1 +EQ+MVDHshlVVjv/rfnL571ZTT1amCJuEIwQRzLSvbso883srMQKCAQEAyLXaG3Pp +LYiRKu7Bqr5PPuqdT72UFabPpfgd5EtcFOL0xUpfRya6HyFdM25FWI8haXeg4e8N +0cIs3gMG+RRgm1xISJIZi92L0Cwj+kLFu2U5SkvAKMqZFh5q350FRi4Bp7ae4YrL +aguWLZCxhznh4D5xQGM6c8ObRfUUEMT+dnLPcj4zn9KHhoUudXjLKjPNw5v6nkbw +xtRdwANlHx/LX/d4+iwt2plDWmT+d2OLvqZcPyyghTMqV45L0p9XAXBsLnz4Zipx +7VJ8iH3jL5oaQ6YAFY+cXIrWBN0q3UYbXdkaA2ve6voioeF3KQNRmU10k7GKNRWl +pRNn62+rAR8isQKCAQAZnPVqFS9P3QwCqiCEMM4UJrkDs7jInTIcIBTnHDKuo5qk +LR4VxPImgnsbWdFj+0J7EXJfMHFVlPlZwiHf1TvZSMPEOaXRdZcxl7uSIuJd3DEA +ynf4NmWm9Zxx5bLjmhfsP1336TfCoQhZQ3m8DZV52C4Jlm1DQIRre6tSYpA8LvZB +UYzLjYeBwhZS7hu24E1vm4ZhASSQQSSsHfGzx1IzSDBt1swx7+V/MpdhrZ7fJxVI +bJSEcllNOzuZViL4Yh7d4FINGBHor/xPDA5ndkgHlXKjy7QxNM1+wEBcFATQVSL0 +c+E8qtY918Wq5VergH9/4zPvSivyfv5gwtjCT24RAoIBABP6HbJb0BqrHB/U0cvn +00Vk3rGAIgwhpUtUrcz6PzkI+enlJCSV0zKkBH3I/Pf6jw3LTWUPgSWemQ6j6H7E +K3VrMvqeKBLGw1K+Afq3yKyFP7WIYqDswV31Oxf0rgC1NY7220uBoAt3CcSRQUo/ +VZ8XN/h7p+a70mmdIhklMlqhxMoPLN48eybFfMFOe5JAw7szfDdiwjZYDti8vcTi +SkDMBeuImCvI025c3QMPEmqwbkAPdg6r8Av06tEU8PkAspPR9ntcwCgp7KE9Pm6P +fQu8qwd6WsrPOswTI2AQyUqHAFLU2sQyj13jbhPT87w5fF/y7NmpxOnwS4igfbnH +2pECggEBALO0FiJClb0GSqMXYJ+nbtRObD4AynYNVMEqYdZu5DBb6vb4T7uumTD5 +I1fKOa5SSELngUj23p2G6sVBsDyDHotGJYJwDGejHOFnEpY+J0Das0pGS40FsFC7 +qABIUaMoLKcIR9Ofcm9uu2n+koNULV2aaXj7A4OYhRCQi2PqiEx1wimdrLfGqTXn +O4rSf826ODch87vuPbfFPCaIFG28R3nByp/ZBH5QNiB3NBmc3A0tiHFnZW3cpOfW +Jm/Vu0PcNVVw32SroS2FCroR7qSWsvt61UzJtliLUiFHoUAxrXXiAxcZW1D2Hmpq +neUhT/t9hHdcMJgoxm2IITf6ip8nTnY= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_tlsv1_3/configs/ssl_config.xml b/tests/integration/test_tlsv1_3/configs/ssl_config.xml new file mode 100644 index 00000000000..b18f04dd954 --- /dev/null +++ b/tests/integration/test_tlsv1_3/configs/ssl_config.xml @@ -0,0 +1,73 @@ + + + 8443 + + + + + + + + false + /etc/clickhouse-server/config.d/server-cert.pem + /etc/clickhouse-server/config.d/server-key.pem + /etc/clickhouse-server/config.d/dhparam4096.pem + /etc/clickhouse-server/config.d/ca-cert.pem + sslv2,sslv3,tlsv1,tlsv1_1,tlsv1_2 + + true + false + false + false + true + relaxed + + + + false + sslv2,sslv3,tlsv1,tlsv1_1,tlsv1_2 + true + true + false + false + false + true + relaxed + + + + + + \ No newline at end of file diff --git a/tests/integration/test_tlsv1_3/configs/users_with_ssl_auth.xml b/tests/integration/test_tlsv1_3/configs/users_with_ssl_auth.xml new file mode 100644 index 00000000000..c41776f9e78 --- /dev/null +++ b/tests/integration/test_tlsv1_3/configs/users_with_ssl_auth.xml @@ -0,0 +1,22 @@ + + + + + + client1 + + + + + client2 + client3 + + + + + + + qwe123 + + + diff --git a/tests/integration/test_tlsv1_3/test.py b/tests/integration/test_tlsv1_3/test.py new file mode 100644 index 00000000000..d48b84925f5 --- /dev/null +++ b/tests/integration/test_tlsv1_3/test.py @@ -0,0 +1,236 @@ +import pytest +from helpers.cluster import ClickHouseCluster +import urllib.request, urllib.parse +import ssl +import os.path + +HTTPS_PORT = 8443 +NODE_IP = "10.5.172.77" # It's important for the node to work at this IP because 'server-cert.pem' requires that (see server-ext.cnf). +NODE_IP_WITH_HTTPS_PORT = NODE_IP + ":" + str(HTTPS_PORT) +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + +cluster = ClickHouseCluster(__file__) +instance = cluster.add_instance( + "node", + ipv4_address=NODE_IP, + main_configs=[ + "configs/ssl_config.xml", + "certs/server-key.pem", + "certs/server-cert.pem", + "certs/ca-cert.pem", + "certs/dhparam4096.pem" + ], + user_configs=["configs/users_with_ssl_auth.xml"], +) + + +@pytest.fixture(scope="module", autouse=True) +def started_cluster(): + try: + cluster.start() + yield cluster + + finally: + cluster.shutdown() + + +def get_ssl_context(cert_name): + context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) + context.load_verify_locations(cafile=f"{SCRIPT_DIR}/certs/ca-cert.pem") + if cert_name: + context.load_cert_chain( + f"{SCRIPT_DIR}/certs/{cert_name}-cert.pem", + f"{SCRIPT_DIR}/certs/{cert_name}-key.pem", + ) + context.verify_mode = ssl.CERT_REQUIRED + context.check_hostname = True + return context + + +def execute_query_https( + query, user, enable_ssl_auth=True, cert_name=None, password=None +): + url = f"https://{NODE_IP_WITH_HTTPS_PORT}/?query={urllib.parse.quote(query)}" + request = urllib.request.Request(url) + request.add_header("X-ClickHouse-User", user) + if enable_ssl_auth: + request.add_header("X-ClickHouse-SSL-Certificate-Auth", "on") + if password: + request.add_header("X-ClickHouse-Key", password) + response = urllib.request.urlopen( + request, context=get_ssl_context(cert_name) + ).read() + return response.decode("utf-8") + + +def test_https(): + assert ( + execute_query_https("SELECT currentUser()", user="john", cert_name="client1") + == "john\n" + ) + assert ( + execute_query_https("SELECT currentUser()", user="lucy", cert_name="client2") + == "lucy\n" + ) + assert ( + execute_query_https("SELECT currentUser()", user="lucy", cert_name="client3") + == "lucy\n" + ) + + +def test_https_wrong_cert(): + # Wrong certificate: different user's certificate + with pytest.raises(Exception) as err: + execute_query_https("SELECT currentUser()", user="john", cert_name="client2") + assert "HTTP Error 403" in str(err.value) + + # Wrong certificate: self-signed certificate. + with pytest.raises(Exception) as err: + execute_query_https("SELECT currentUser()", user="john", cert_name="wrong") + assert "unknown ca" in str(err.value) + + # No certificate. + with pytest.raises(Exception) as err: + execute_query_https("SELECT currentUser()", user="john") + assert "HTTP Error 403" in str(err.value) + + # No header enabling SSL authentication. + with pytest.raises(Exception) as err: + execute_query_https( + "SELECT currentUser()", + user="john", + enable_ssl_auth=False, + cert_name="client1", + ) + + +def test_https_non_ssl_auth(): + # Users with non-SSL authentication are allowed, in this case we can skip sending a client certificate at all (because "verificationMode" is set to "relaxed"). + # assert execute_query_https("SELECT currentUser()", user="peter", enable_ssl_auth=False) == "peter\n" + assert ( + execute_query_https( + "SELECT currentUser()", + user="jane", + enable_ssl_auth=False, + password="qwe123", + ) + == "jane\n" + ) + + # But we still can send a certificate if we want. + assert ( + execute_query_https( + "SELECT currentUser()", + user="peter", + enable_ssl_auth=False, + cert_name="client1", + ) + == "peter\n" + ) + assert ( + execute_query_https( + "SELECT currentUser()", + user="peter", + enable_ssl_auth=False, + cert_name="client2", + ) + == "peter\n" + ) + assert ( + execute_query_https( + "SELECT currentUser()", + user="peter", + enable_ssl_auth=False, + cert_name="client3", + ) + == "peter\n" + ) + + assert ( + execute_query_https( + "SELECT currentUser()", + user="jane", + enable_ssl_auth=False, + password="qwe123", + cert_name="client1", + ) + == "jane\n" + ) + assert ( + execute_query_https( + "SELECT currentUser()", + user="jane", + enable_ssl_auth=False, + password="qwe123", + cert_name="client2", + ) + == "jane\n" + ) + assert ( + execute_query_https( + "SELECT currentUser()", + user="jane", + enable_ssl_auth=False, + password="qwe123", + cert_name="client3", + ) + == "jane\n" + ) + + # However if we send a certificate it must not be wrong. + with pytest.raises(Exception) as err: + execute_query_https( + "SELECT currentUser()", + user="peter", + enable_ssl_auth=False, + cert_name="wrong", + ) + assert "unknown ca" in str(err.value) + with pytest.raises(Exception) as err: + execute_query_https( + "SELECT currentUser()", + user="jane", + enable_ssl_auth=False, + password="qwe123", + cert_name="wrong", + ) + assert "unknown ca" in str(err.value) + + +def test_create_user(): + instance.query("CREATE USER emma IDENTIFIED WITH ssl_certificate CN 'client3'") + assert ( + execute_query_https("SELECT currentUser()", user="emma", cert_name="client3") + == "emma\n" + ) + assert ( + instance.query("SHOW CREATE USER emma") + == "CREATE USER emma IDENTIFIED WITH ssl_certificate CN \\'client3\\'\n" + ) + + instance.query("ALTER USER emma IDENTIFIED WITH ssl_certificate CN 'client2'") + assert ( + execute_query_https("SELECT currentUser()", user="emma", cert_name="client2") + == "emma\n" + ) + assert ( + instance.query("SHOW CREATE USER emma") + == "CREATE USER emma IDENTIFIED WITH ssl_certificate CN \\'client2\\'\n" + ) + + with pytest.raises(Exception) as err: + execute_query_https("SELECT currentUser()", user="emma", cert_name="client3") + assert "HTTP Error 403" in str(err.value) + + assert ( + instance.query("SHOW CREATE USER lucy") + == "CREATE USER lucy IDENTIFIED WITH ssl_certificate CN \\'client2\\', \\'client3\\'\n" + ) + + assert ( + instance.query( + "SELECT name, auth_type, auth_params FROM system.users WHERE name IN ['emma', 'lucy'] ORDER BY name" + ) + == 'emma\tssl_certificate\t{"common_names":["client2"]}\n' + 'lucy\tssl_certificate\t{"common_names":["client2","client3"]}\n' + ) From 02f3921c69d34fdd67f8f691ccde6cf45dd1e27f Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Thu, 23 Jun 2022 20:34:59 +0200 Subject: [PATCH 171/525] Added --recursive to clickhouse-disks list --- programs/disks/CommandList.cpp | 42 +++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/programs/disks/CommandList.cpp b/programs/disks/CommandList.cpp index 8cf353aa64c..6dceb3ff41d 100644 --- a/programs/disks/CommandList.cpp +++ b/programs/disks/CommandList.cpp @@ -18,11 +18,18 @@ public: command_name = "list"; description = "List files (the default disk is used by default)\nPath should be in format './' or './path' or 'path'"; usage = "list [OPTION]... ..."; + command_option_description->add_options() + ("recursive", "recursively list all directories") + ; } void processOptions( - Poco::Util::LayeredConfiguration &, - po::variables_map &) const override{} + Poco::Util::LayeredConfiguration & config, + po::variables_map & options) const override + { + if (options.count("recursive")) + config.setBool("recursive", true); + } void execute( const std::vector & command_arguments, @@ -39,16 +46,45 @@ public: String path = command_arguments[0]; - std::vector file_names; DiskPtr disk = global_context->getDisk(disk_name); String full_path = fullPathWithValidate(disk, path); + bool recursive = config.getBool("recursive", false); + + if (recursive) + listRecursive(disk, full_path); + else + list(disk, full_path); + } + +private: + static void list(const DiskPtr & disk, const std::string & full_path) + { + std::vector file_names; disk->listFiles(full_path, file_names); for (const auto & file_name : file_names) std::cout << file_name << '\n'; } + + static void listRecursive(const DiskPtr & disk, const std::string & full_path) + { + std::vector file_names; + disk->listFiles(full_path, file_names); + + std::cout << full_path << ":\n"; + for (const auto & file_name : file_names) + std::cout << file_name << '\n'; + std::cout << "\n"; + + for (const auto & file_name : file_names) + { + auto path = full_path + "/" + file_name; + if (disk->isDirectory(path)) + listRecursive(disk, path); + } + } }; } From e362e4fff1ade90eb36b762e3a51a0d197b64a15 Mon Sep 17 00:00:00 2001 From: kssenii Date: Thu, 23 Jun 2022 20:43:35 +0200 Subject: [PATCH 172/525] Fix --- src/Storages/RabbitMQ/RabbitMQSource.cpp | 3 -- .../ReadBufferFromRabbitMQConsumer.cpp | 6 +++ .../RabbitMQ/ReadBufferFromRabbitMQConsumer.h | 18 ++++---- .../integration/test_storage_rabbitmq/test.py | 41 +++++++++++++++++-- 4 files changed, 53 insertions(+), 15 deletions(-) diff --git a/src/Storages/RabbitMQ/RabbitMQSource.cpp b/src/Storages/RabbitMQ/RabbitMQSource.cpp index 71d80f0a632..bbcbaa2b32b 100644 --- a/src/Storages/RabbitMQ/RabbitMQSource.cpp +++ b/src/Storages/RabbitMQ/RabbitMQSource.cpp @@ -142,9 +142,6 @@ Chunk RabbitMQSource::generateImpl() while (true) { - if (buffer->eof()) - break; - auto new_rows = executor.execute(); if (new_rows) diff --git a/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.cpp b/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.cpp index e2de5179990..3543085f5a0 100644 --- a/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.cpp +++ b/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.cpp @@ -47,6 +47,12 @@ ReadBufferFromRabbitMQConsumer::~ReadBufferFromRabbitMQConsumer() } +void ReadBufferFromRabbitMQConsumer::closeChannel() +{ + if (consumer_channel) + consumer_channel->close(); +} + void ReadBufferFromRabbitMQConsumer::subscribe() { for (const auto & queue_name : queues) diff --git a/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.h b/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.h index 8a527011a3c..bd55d169744 100644 --- a/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.h +++ b/src/Storages/RabbitMQ/ReadBufferFromRabbitMQConsumer.h @@ -3,18 +3,24 @@ #include #include #include -#include -#include #include namespace Poco { - class Logger; +class Logger; +} + +namespace AMQP +{ +class TcpChannel; } namespace DB { +class RabbitMQHandler; +using ChannelPtr = std::unique_ptr; + class ReadBufferFromRabbitMQConsumer : public ReadBuffer { @@ -52,11 +58,7 @@ public: ChannelPtr & getChannel() { return consumer_channel; } void setupChannel(); bool needChannelUpdate(); - void closeChannel() - { - if (consumer_channel) - consumer_channel->close(); - } + void closeChannel(); void updateQueues(std::vector & queues_) { queues = queues_; } size_t queuesCount() { return queues.size(); } diff --git a/tests/integration/test_storage_rabbitmq/test.py b/tests/integration/test_storage_rabbitmq/test.py index c1bd136126f..59ac2f20886 100644 --- a/tests/integration/test_storage_rabbitmq/test.py +++ b/tests/integration/test_storage_rabbitmq/test.py @@ -2745,7 +2745,40 @@ def test_rabbitmq_predefined_configuration(rabbitmq_cluster): break -if __name__ == "__main__": - cluster.start() - input("Cluster created, press any key to destroy...") - cluster.shutdown() +def test_rabbitmq_msgpack(rabbitmq_cluster): + + instance.query( + """ + drop table if exists rabbit_in; + drop table if exists rabbit_out; + create table + rabbit_in (val String) + engine=RabbitMQ + settings rabbitmq_host_port = 'localhost:5672', + rabbitmq_exchange_name = 'xhep', + rabbitmq_format = 'MsgPack', + rabbitmq_num_consumers = 1; + create table + rabbit_out (val String) + engine=RabbitMQ + settings rabbitmq_host_port = 'localhost:5672', + rabbitmq_exchange_name = 'xhep', + rabbitmq_format = 'MsgPack', + rabbitmq_num_consumers = 1; + set stream_like_engine_allow_direct_select=1; + insert into rabbit_out select 'kek'; + """ + ) + + result = "" + try_no = 0 + while True: + result = instance.query("select * from rabbit_in;") + if result.strip() == "kek": + break + else: + try_no = try_no + 1 + if try_no == 20: + break + sleep(1) + assert result.strip() == "kek" From 191936a806c6cdea328de07e0b58726b54ec4abb Mon Sep 17 00:00:00 2001 From: Larry Luo Date: Thu, 23 Jun 2022 11:50:06 -0700 Subject: [PATCH 173/525] clean up comments --- .../test_tlsv1_3/configs/ssl_config.xml | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/tests/integration/test_tlsv1_3/configs/ssl_config.xml b/tests/integration/test_tlsv1_3/configs/ssl_config.xml index b18f04dd954..e3d1831e08c 100644 --- a/tests/integration/test_tlsv1_3/configs/ssl_config.xml +++ b/tests/integration/test_tlsv1_3/configs/ssl_config.xml @@ -40,34 +40,6 @@ true relaxed - -
\ No newline at end of file From fe0ab845f57a5501e78a5c78f9c0725d98987d80 Mon Sep 17 00:00:00 2001 From: kssenii Date: Thu, 23 Jun 2022 20:59:43 +0200 Subject: [PATCH 174/525] Update tests --- tests/queries/0_stateless/01271_show_privileges.reference | 1 + .../0_stateless/02117_show_create_table_system.reference | 6 +++--- tests/queries/0_stateless/02344_describe_cache.sql | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/queries/0_stateless/01271_show_privileges.reference b/tests/queries/0_stateless/01271_show_privileges.reference index 93f93683fc4..37ca20b92a1 100644 --- a/tests/queries/0_stateless/01271_show_privileges.reference +++ b/tests/queries/0_stateless/01271_show_privileges.reference @@ -3,6 +3,7 @@ SHOW TABLES [] TABLE SHOW SHOW COLUMNS [] COLUMN SHOW SHOW DICTIONARIES [] DICTIONARY SHOW SHOW [] \N ALL +SHOW CACHES [] \N ALL SELECT [] COLUMN ALL INSERT [] COLUMN ALL ALTER UPDATE ['UPDATE'] COLUMN ALTER TABLE diff --git a/tests/queries/0_stateless/02117_show_create_table_system.reference b/tests/queries/0_stateless/02117_show_create_table_system.reference index 100e72d9a61..e4b73bb439e 100644 --- a/tests/queries/0_stateless/02117_show_create_table_system.reference +++ b/tests/queries/0_stateless/02117_show_create_table_system.reference @@ -277,7 +277,7 @@ CREATE TABLE system.grants ( `user_name` Nullable(String), `role_name` Nullable(String), - `access_type` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP CACHE' = 94, 'SYSTEM RELOAD CONFIG' = 95, 'SYSTEM RELOAD SYMBOLS' = 96, 'SYSTEM RELOAD DICTIONARY' = 97, 'SYSTEM RELOAD MODEL' = 98, 'SYSTEM RELOAD FUNCTION' = 99, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 100, 'SYSTEM RELOAD' = 101, 'SYSTEM RESTART DISK' = 102, 'SYSTEM MERGES' = 103, 'SYSTEM TTL MERGES' = 104, 'SYSTEM FETCHES' = 105, 'SYSTEM MOVES' = 106, 'SYSTEM DISTRIBUTED SENDS' = 107, 'SYSTEM REPLICATED SENDS' = 108, 'SYSTEM SENDS' = 109, 'SYSTEM REPLICATION QUEUES' = 110, 'SYSTEM DROP REPLICA' = 111, 'SYSTEM SYNC REPLICA' = 112, 'SYSTEM RESTART REPLICA' = 113, 'SYSTEM RESTORE REPLICA' = 114, 'SYSTEM SYNC DATABASE REPLICA' = 115, 'SYSTEM SYNC TRANSACTION LOG' = 116, 'SYSTEM FLUSH DISTRIBUTED' = 117, 'SYSTEM FLUSH LOGS' = 118, 'SYSTEM FLUSH' = 119, 'SYSTEM THREAD FUZZER' = 120, 'SYSTEM UNFREEZE' = 121, 'SYSTEM' = 122, 'dictGet' = 123, 'addressToLine' = 124, 'addressToLineWithInlines' = 125, 'addressToSymbol' = 126, 'demangle' = 127, 'INTROSPECTION' = 128, 'FILE' = 129, 'URL' = 130, 'REMOTE' = 131, 'MONGO' = 132, 'MEILISEARCH' = 133, 'MYSQL' = 134, 'POSTGRES' = 135, 'SQLITE' = 136, 'ODBC' = 137, 'JDBC' = 138, 'HDFS' = 139, 'S3' = 140, 'HIVE' = 141, 'SOURCES' = 142, 'CLUSTER' = 143, 'ALL' = 144, 'NONE' = 145), + `access_type` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SHOW CACHES' = 5, 'SELECT' = 6, 'INSERT' = 7, 'ALTER UPDATE' = 8, 'ALTER DELETE' = 9, 'ALTER ADD COLUMN' = 10, 'ALTER MODIFY COLUMN' = 11, 'ALTER DROP COLUMN' = 12, 'ALTER COMMENT COLUMN' = 13, 'ALTER CLEAR COLUMN' = 14, 'ALTER RENAME COLUMN' = 15, 'ALTER MATERIALIZE COLUMN' = 16, 'ALTER COLUMN' = 17, 'ALTER MODIFY COMMENT' = 18, 'ALTER ORDER BY' = 19, 'ALTER SAMPLE BY' = 20, 'ALTER ADD INDEX' = 21, 'ALTER DROP INDEX' = 22, 'ALTER MATERIALIZE INDEX' = 23, 'ALTER CLEAR INDEX' = 24, 'ALTER INDEX' = 25, 'ALTER ADD PROJECTION' = 26, 'ALTER DROP PROJECTION' = 27, 'ALTER MATERIALIZE PROJECTION' = 28, 'ALTER CLEAR PROJECTION' = 29, 'ALTER PROJECTION' = 30, 'ALTER ADD CONSTRAINT' = 31, 'ALTER DROP CONSTRAINT' = 32, 'ALTER CONSTRAINT' = 33, 'ALTER TTL' = 34, 'ALTER MATERIALIZE TTL' = 35, 'ALTER SETTINGS' = 36, 'ALTER MOVE PARTITION' = 37, 'ALTER FETCH PARTITION' = 38, 'ALTER FREEZE PARTITION' = 39, 'ALTER DATABASE SETTINGS' = 40, 'ALTER TABLE' = 41, 'ALTER DATABASE' = 42, 'ALTER VIEW REFRESH' = 43, 'ALTER VIEW MODIFY QUERY' = 44, 'ALTER VIEW' = 45, 'ALTER' = 46, 'CREATE DATABASE' = 47, 'CREATE TABLE' = 48, 'CREATE VIEW' = 49, 'CREATE DICTIONARY' = 50, 'CREATE TEMPORARY TABLE' = 51, 'CREATE FUNCTION' = 52, 'CREATE' = 53, 'DROP DATABASE' = 54, 'DROP TABLE' = 55, 'DROP VIEW' = 56, 'DROP DICTIONARY' = 57, 'DROP FUNCTION' = 58, 'DROP' = 59, 'TRUNCATE' = 60, 'OPTIMIZE' = 61, 'BACKUP' = 62, 'KILL QUERY' = 63, 'KILL TRANSACTION' = 64, 'MOVE PARTITION BETWEEN SHARDS' = 65, 'CREATE USER' = 66, 'ALTER USER' = 67, 'DROP USER' = 68, 'CREATE ROLE' = 69, 'ALTER ROLE' = 70, 'DROP ROLE' = 71, 'ROLE ADMIN' = 72, 'CREATE ROW POLICY' = 73, 'ALTER ROW POLICY' = 74, 'DROP ROW POLICY' = 75, 'CREATE QUOTA' = 76, 'ALTER QUOTA' = 77, 'DROP QUOTA' = 78, 'CREATE SETTINGS PROFILE' = 79, 'ALTER SETTINGS PROFILE' = 80, 'DROP SETTINGS PROFILE' = 81, 'SHOW USERS' = 82, 'SHOW ROLES' = 83, 'SHOW ROW POLICIES' = 84, 'SHOW QUOTAS' = 85, 'SHOW SETTINGS PROFILES' = 86, 'SHOW ACCESS' = 87, 'ACCESS MANAGEMENT' = 88, 'SYSTEM SHUTDOWN' = 89, 'SYSTEM DROP DNS CACHE' = 90, 'SYSTEM DROP MARK CACHE' = 91, 'SYSTEM DROP UNCOMPRESSED CACHE' = 92, 'SYSTEM DROP MMAP CACHE' = 93, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 94, 'SYSTEM DROP CACHE' = 95, 'SYSTEM RELOAD CONFIG' = 96, 'SYSTEM RELOAD SYMBOLS' = 97, 'SYSTEM RELOAD DICTIONARY' = 98, 'SYSTEM RELOAD MODEL' = 99, 'SYSTEM RELOAD FUNCTION' = 100, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 101, 'SYSTEM RELOAD' = 102, 'SYSTEM RESTART DISK' = 103, 'SYSTEM MERGES' = 104, 'SYSTEM TTL MERGES' = 105, 'SYSTEM FETCHES' = 106, 'SYSTEM MOVES' = 107, 'SYSTEM DISTRIBUTED SENDS' = 108, 'SYSTEM REPLICATED SENDS' = 109, 'SYSTEM SENDS' = 110, 'SYSTEM REPLICATION QUEUES' = 111, 'SYSTEM DROP REPLICA' = 112, 'SYSTEM SYNC REPLICA' = 113, 'SYSTEM RESTART REPLICA' = 114, 'SYSTEM RESTORE REPLICA' = 115, 'SYSTEM SYNC DATABASE REPLICA' = 116, 'SYSTEM SYNC TRANSACTION LOG' = 117, 'SYSTEM FLUSH DISTRIBUTED' = 118, 'SYSTEM FLUSH LOGS' = 119, 'SYSTEM FLUSH' = 120, 'SYSTEM THREAD FUZZER' = 121, 'SYSTEM UNFREEZE' = 122, 'SYSTEM' = 123, 'dictGet' = 124, 'addressToLine' = 125, 'addressToLineWithInlines' = 126, 'addressToSymbol' = 127, 'demangle' = 128, 'INTROSPECTION' = 129, 'FILE' = 130, 'URL' = 131, 'REMOTE' = 132, 'MONGO' = 133, 'MEILISEARCH' = 134, 'MYSQL' = 135, 'POSTGRES' = 136, 'SQLITE' = 137, 'ODBC' = 138, 'JDBC' = 139, 'HDFS' = 140, 'S3' = 141, 'HIVE' = 142, 'SOURCES' = 143, 'CLUSTER' = 144, 'ALL' = 145, 'NONE' = 146), `database` Nullable(String), `table` Nullable(String), `column` Nullable(String), @@ -551,10 +551,10 @@ ENGINE = SystemPartsColumns COMMENT 'SYSTEM TABLE is built on the fly.' CREATE TABLE system.privileges ( - `privilege` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP CACHE' = 94, 'SYSTEM RELOAD CONFIG' = 95, 'SYSTEM RELOAD SYMBOLS' = 96, 'SYSTEM RELOAD DICTIONARY' = 97, 'SYSTEM RELOAD MODEL' = 98, 'SYSTEM RELOAD FUNCTION' = 99, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 100, 'SYSTEM RELOAD' = 101, 'SYSTEM RESTART DISK' = 102, 'SYSTEM MERGES' = 103, 'SYSTEM TTL MERGES' = 104, 'SYSTEM FETCHES' = 105, 'SYSTEM MOVES' = 106, 'SYSTEM DISTRIBUTED SENDS' = 107, 'SYSTEM REPLICATED SENDS' = 108, 'SYSTEM SENDS' = 109, 'SYSTEM REPLICATION QUEUES' = 110, 'SYSTEM DROP REPLICA' = 111, 'SYSTEM SYNC REPLICA' = 112, 'SYSTEM RESTART REPLICA' = 113, 'SYSTEM RESTORE REPLICA' = 114, 'SYSTEM SYNC DATABASE REPLICA' = 115, 'SYSTEM SYNC TRANSACTION LOG' = 116, 'SYSTEM FLUSH DISTRIBUTED' = 117, 'SYSTEM FLUSH LOGS' = 118, 'SYSTEM FLUSH' = 119, 'SYSTEM THREAD FUZZER' = 120, 'SYSTEM UNFREEZE' = 121, 'SYSTEM' = 122, 'dictGet' = 123, 'addressToLine' = 124, 'addressToLineWithInlines' = 125, 'addressToSymbol' = 126, 'demangle' = 127, 'INTROSPECTION' = 128, 'FILE' = 129, 'URL' = 130, 'REMOTE' = 131, 'MONGO' = 132, 'MEILISEARCH' = 133, 'MYSQL' = 134, 'POSTGRES' = 135, 'SQLITE' = 136, 'ODBC' = 137, 'JDBC' = 138, 'HDFS' = 139, 'S3' = 140, 'HIVE' = 141, 'SOURCES' = 142, 'CLUSTER' = 143, 'ALL' = 144, 'NONE' = 145), + `privilege` Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SHOW CACHES' = 5, 'SELECT' = 6, 'INSERT' = 7, 'ALTER UPDATE' = 8, 'ALTER DELETE' = 9, 'ALTER ADD COLUMN' = 10, 'ALTER MODIFY COLUMN' = 11, 'ALTER DROP COLUMN' = 12, 'ALTER COMMENT COLUMN' = 13, 'ALTER CLEAR COLUMN' = 14, 'ALTER RENAME COLUMN' = 15, 'ALTER MATERIALIZE COLUMN' = 16, 'ALTER COLUMN' = 17, 'ALTER MODIFY COMMENT' = 18, 'ALTER ORDER BY' = 19, 'ALTER SAMPLE BY' = 20, 'ALTER ADD INDEX' = 21, 'ALTER DROP INDEX' = 22, 'ALTER MATERIALIZE INDEX' = 23, 'ALTER CLEAR INDEX' = 24, 'ALTER INDEX' = 25, 'ALTER ADD PROJECTION' = 26, 'ALTER DROP PROJECTION' = 27, 'ALTER MATERIALIZE PROJECTION' = 28, 'ALTER CLEAR PROJECTION' = 29, 'ALTER PROJECTION' = 30, 'ALTER ADD CONSTRAINT' = 31, 'ALTER DROP CONSTRAINT' = 32, 'ALTER CONSTRAINT' = 33, 'ALTER TTL' = 34, 'ALTER MATERIALIZE TTL' = 35, 'ALTER SETTINGS' = 36, 'ALTER MOVE PARTITION' = 37, 'ALTER FETCH PARTITION' = 38, 'ALTER FREEZE PARTITION' = 39, 'ALTER DATABASE SETTINGS' = 40, 'ALTER TABLE' = 41, 'ALTER DATABASE' = 42, 'ALTER VIEW REFRESH' = 43, 'ALTER VIEW MODIFY QUERY' = 44, 'ALTER VIEW' = 45, 'ALTER' = 46, 'CREATE DATABASE' = 47, 'CREATE TABLE' = 48, 'CREATE VIEW' = 49, 'CREATE DICTIONARY' = 50, 'CREATE TEMPORARY TABLE' = 51, 'CREATE FUNCTION' = 52, 'CREATE' = 53, 'DROP DATABASE' = 54, 'DROP TABLE' = 55, 'DROP VIEW' = 56, 'DROP DICTIONARY' = 57, 'DROP FUNCTION' = 58, 'DROP' = 59, 'TRUNCATE' = 60, 'OPTIMIZE' = 61, 'BACKUP' = 62, 'KILL QUERY' = 63, 'KILL TRANSACTION' = 64, 'MOVE PARTITION BETWEEN SHARDS' = 65, 'CREATE USER' = 66, 'ALTER USER' = 67, 'DROP USER' = 68, 'CREATE ROLE' = 69, 'ALTER ROLE' = 70, 'DROP ROLE' = 71, 'ROLE ADMIN' = 72, 'CREATE ROW POLICY' = 73, 'ALTER ROW POLICY' = 74, 'DROP ROW POLICY' = 75, 'CREATE QUOTA' = 76, 'ALTER QUOTA' = 77, 'DROP QUOTA' = 78, 'CREATE SETTINGS PROFILE' = 79, 'ALTER SETTINGS PROFILE' = 80, 'DROP SETTINGS PROFILE' = 81, 'SHOW USERS' = 82, 'SHOW ROLES' = 83, 'SHOW ROW POLICIES' = 84, 'SHOW QUOTAS' = 85, 'SHOW SETTINGS PROFILES' = 86, 'SHOW ACCESS' = 87, 'ACCESS MANAGEMENT' = 88, 'SYSTEM SHUTDOWN' = 89, 'SYSTEM DROP DNS CACHE' = 90, 'SYSTEM DROP MARK CACHE' = 91, 'SYSTEM DROP UNCOMPRESSED CACHE' = 92, 'SYSTEM DROP MMAP CACHE' = 93, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 94, 'SYSTEM DROP CACHE' = 95, 'SYSTEM RELOAD CONFIG' = 96, 'SYSTEM RELOAD SYMBOLS' = 97, 'SYSTEM RELOAD DICTIONARY' = 98, 'SYSTEM RELOAD MODEL' = 99, 'SYSTEM RELOAD FUNCTION' = 100, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 101, 'SYSTEM RELOAD' = 102, 'SYSTEM RESTART DISK' = 103, 'SYSTEM MERGES' = 104, 'SYSTEM TTL MERGES' = 105, 'SYSTEM FETCHES' = 106, 'SYSTEM MOVES' = 107, 'SYSTEM DISTRIBUTED SENDS' = 108, 'SYSTEM REPLICATED SENDS' = 109, 'SYSTEM SENDS' = 110, 'SYSTEM REPLICATION QUEUES' = 111, 'SYSTEM DROP REPLICA' = 112, 'SYSTEM SYNC REPLICA' = 113, 'SYSTEM RESTART REPLICA' = 114, 'SYSTEM RESTORE REPLICA' = 115, 'SYSTEM SYNC DATABASE REPLICA' = 116, 'SYSTEM SYNC TRANSACTION LOG' = 117, 'SYSTEM FLUSH DISTRIBUTED' = 118, 'SYSTEM FLUSH LOGS' = 119, 'SYSTEM FLUSH' = 120, 'SYSTEM THREAD FUZZER' = 121, 'SYSTEM UNFREEZE' = 122, 'SYSTEM' = 123, 'dictGet' = 124, 'addressToLine' = 125, 'addressToLineWithInlines' = 126, 'addressToSymbol' = 127, 'demangle' = 128, 'INTROSPECTION' = 129, 'FILE' = 130, 'URL' = 131, 'REMOTE' = 132, 'MONGO' = 133, 'MEILISEARCH' = 134, 'MYSQL' = 135, 'POSTGRES' = 136, 'SQLITE' = 137, 'ODBC' = 138, 'JDBC' = 139, 'HDFS' = 140, 'S3' = 141, 'HIVE' = 142, 'SOURCES' = 143, 'CLUSTER' = 144, 'ALL' = 145, 'NONE' = 146), `aliases` Array(String), `level` Nullable(Enum8('GLOBAL' = 0, 'DATABASE' = 1, 'TABLE' = 2, 'DICTIONARY' = 3, 'VIEW' = 4, 'COLUMN' = 5)), - `parent_group` Nullable(Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SELECT' = 5, 'INSERT' = 6, 'ALTER UPDATE' = 7, 'ALTER DELETE' = 8, 'ALTER ADD COLUMN' = 9, 'ALTER MODIFY COLUMN' = 10, 'ALTER DROP COLUMN' = 11, 'ALTER COMMENT COLUMN' = 12, 'ALTER CLEAR COLUMN' = 13, 'ALTER RENAME COLUMN' = 14, 'ALTER MATERIALIZE COLUMN' = 15, 'ALTER COLUMN' = 16, 'ALTER MODIFY COMMENT' = 17, 'ALTER ORDER BY' = 18, 'ALTER SAMPLE BY' = 19, 'ALTER ADD INDEX' = 20, 'ALTER DROP INDEX' = 21, 'ALTER MATERIALIZE INDEX' = 22, 'ALTER CLEAR INDEX' = 23, 'ALTER INDEX' = 24, 'ALTER ADD PROJECTION' = 25, 'ALTER DROP PROJECTION' = 26, 'ALTER MATERIALIZE PROJECTION' = 27, 'ALTER CLEAR PROJECTION' = 28, 'ALTER PROJECTION' = 29, 'ALTER ADD CONSTRAINT' = 30, 'ALTER DROP CONSTRAINT' = 31, 'ALTER CONSTRAINT' = 32, 'ALTER TTL' = 33, 'ALTER MATERIALIZE TTL' = 34, 'ALTER SETTINGS' = 35, 'ALTER MOVE PARTITION' = 36, 'ALTER FETCH PARTITION' = 37, 'ALTER FREEZE PARTITION' = 38, 'ALTER DATABASE SETTINGS' = 39, 'ALTER TABLE' = 40, 'ALTER DATABASE' = 41, 'ALTER VIEW REFRESH' = 42, 'ALTER VIEW MODIFY QUERY' = 43, 'ALTER VIEW' = 44, 'ALTER' = 45, 'CREATE DATABASE' = 46, 'CREATE TABLE' = 47, 'CREATE VIEW' = 48, 'CREATE DICTIONARY' = 49, 'CREATE TEMPORARY TABLE' = 50, 'CREATE FUNCTION' = 51, 'CREATE' = 52, 'DROP DATABASE' = 53, 'DROP TABLE' = 54, 'DROP VIEW' = 55, 'DROP DICTIONARY' = 56, 'DROP FUNCTION' = 57, 'DROP' = 58, 'TRUNCATE' = 59, 'OPTIMIZE' = 60, 'BACKUP' = 61, 'KILL QUERY' = 62, 'KILL TRANSACTION' = 63, 'MOVE PARTITION BETWEEN SHARDS' = 64, 'CREATE USER' = 65, 'ALTER USER' = 66, 'DROP USER' = 67, 'CREATE ROLE' = 68, 'ALTER ROLE' = 69, 'DROP ROLE' = 70, 'ROLE ADMIN' = 71, 'CREATE ROW POLICY' = 72, 'ALTER ROW POLICY' = 73, 'DROP ROW POLICY' = 74, 'CREATE QUOTA' = 75, 'ALTER QUOTA' = 76, 'DROP QUOTA' = 77, 'CREATE SETTINGS PROFILE' = 78, 'ALTER SETTINGS PROFILE' = 79, 'DROP SETTINGS PROFILE' = 80, 'SHOW USERS' = 81, 'SHOW ROLES' = 82, 'SHOW ROW POLICIES' = 83, 'SHOW QUOTAS' = 84, 'SHOW SETTINGS PROFILES' = 85, 'SHOW ACCESS' = 86, 'ACCESS MANAGEMENT' = 87, 'SYSTEM SHUTDOWN' = 88, 'SYSTEM DROP DNS CACHE' = 89, 'SYSTEM DROP MARK CACHE' = 90, 'SYSTEM DROP UNCOMPRESSED CACHE' = 91, 'SYSTEM DROP MMAP CACHE' = 92, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 93, 'SYSTEM DROP CACHE' = 94, 'SYSTEM RELOAD CONFIG' = 95, 'SYSTEM RELOAD SYMBOLS' = 96, 'SYSTEM RELOAD DICTIONARY' = 97, 'SYSTEM RELOAD MODEL' = 98, 'SYSTEM RELOAD FUNCTION' = 99, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 100, 'SYSTEM RELOAD' = 101, 'SYSTEM RESTART DISK' = 102, 'SYSTEM MERGES' = 103, 'SYSTEM TTL MERGES' = 104, 'SYSTEM FETCHES' = 105, 'SYSTEM MOVES' = 106, 'SYSTEM DISTRIBUTED SENDS' = 107, 'SYSTEM REPLICATED SENDS' = 108, 'SYSTEM SENDS' = 109, 'SYSTEM REPLICATION QUEUES' = 110, 'SYSTEM DROP REPLICA' = 111, 'SYSTEM SYNC REPLICA' = 112, 'SYSTEM RESTART REPLICA' = 113, 'SYSTEM RESTORE REPLICA' = 114, 'SYSTEM SYNC DATABASE REPLICA' = 115, 'SYSTEM SYNC TRANSACTION LOG' = 116, 'SYSTEM FLUSH DISTRIBUTED' = 117, 'SYSTEM FLUSH LOGS' = 118, 'SYSTEM FLUSH' = 119, 'SYSTEM THREAD FUZZER' = 120, 'SYSTEM UNFREEZE' = 121, 'SYSTEM' = 122, 'dictGet' = 123, 'addressToLine' = 124, 'addressToLineWithInlines' = 125, 'addressToSymbol' = 126, 'demangle' = 127, 'INTROSPECTION' = 128, 'FILE' = 129, 'URL' = 130, 'REMOTE' = 131, 'MONGO' = 132, 'MEILISEARCH' = 133, 'MYSQL' = 134, 'POSTGRES' = 135, 'SQLITE' = 136, 'ODBC' = 137, 'JDBC' = 138, 'HDFS' = 139, 'S3' = 140, 'HIVE' = 141, 'SOURCES' = 142, 'CLUSTER' = 143, 'ALL' = 144, 'NONE' = 145)) + `parent_group` Nullable(Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'SHOW COLUMNS' = 2, 'SHOW DICTIONARIES' = 3, 'SHOW' = 4, 'SHOW CACHES' = 5, 'SELECT' = 6, 'INSERT' = 7, 'ALTER UPDATE' = 8, 'ALTER DELETE' = 9, 'ALTER ADD COLUMN' = 10, 'ALTER MODIFY COLUMN' = 11, 'ALTER DROP COLUMN' = 12, 'ALTER COMMENT COLUMN' = 13, 'ALTER CLEAR COLUMN' = 14, 'ALTER RENAME COLUMN' = 15, 'ALTER MATERIALIZE COLUMN' = 16, 'ALTER COLUMN' = 17, 'ALTER MODIFY COMMENT' = 18, 'ALTER ORDER BY' = 19, 'ALTER SAMPLE BY' = 20, 'ALTER ADD INDEX' = 21, 'ALTER DROP INDEX' = 22, 'ALTER MATERIALIZE INDEX' = 23, 'ALTER CLEAR INDEX' = 24, 'ALTER INDEX' = 25, 'ALTER ADD PROJECTION' = 26, 'ALTER DROP PROJECTION' = 27, 'ALTER MATERIALIZE PROJECTION' = 28, 'ALTER CLEAR PROJECTION' = 29, 'ALTER PROJECTION' = 30, 'ALTER ADD CONSTRAINT' = 31, 'ALTER DROP CONSTRAINT' = 32, 'ALTER CONSTRAINT' = 33, 'ALTER TTL' = 34, 'ALTER MATERIALIZE TTL' = 35, 'ALTER SETTINGS' = 36, 'ALTER MOVE PARTITION' = 37, 'ALTER FETCH PARTITION' = 38, 'ALTER FREEZE PARTITION' = 39, 'ALTER DATABASE SETTINGS' = 40, 'ALTER TABLE' = 41, 'ALTER DATABASE' = 42, 'ALTER VIEW REFRESH' = 43, 'ALTER VIEW MODIFY QUERY' = 44, 'ALTER VIEW' = 45, 'ALTER' = 46, 'CREATE DATABASE' = 47, 'CREATE TABLE' = 48, 'CREATE VIEW' = 49, 'CREATE DICTIONARY' = 50, 'CREATE TEMPORARY TABLE' = 51, 'CREATE FUNCTION' = 52, 'CREATE' = 53, 'DROP DATABASE' = 54, 'DROP TABLE' = 55, 'DROP VIEW' = 56, 'DROP DICTIONARY' = 57, 'DROP FUNCTION' = 58, 'DROP' = 59, 'TRUNCATE' = 60, 'OPTIMIZE' = 61, 'BACKUP' = 62, 'KILL QUERY' = 63, 'KILL TRANSACTION' = 64, 'MOVE PARTITION BETWEEN SHARDS' = 65, 'CREATE USER' = 66, 'ALTER USER' = 67, 'DROP USER' = 68, 'CREATE ROLE' = 69, 'ALTER ROLE' = 70, 'DROP ROLE' = 71, 'ROLE ADMIN' = 72, 'CREATE ROW POLICY' = 73, 'ALTER ROW POLICY' = 74, 'DROP ROW POLICY' = 75, 'CREATE QUOTA' = 76, 'ALTER QUOTA' = 77, 'DROP QUOTA' = 78, 'CREATE SETTINGS PROFILE' = 79, 'ALTER SETTINGS PROFILE' = 80, 'DROP SETTINGS PROFILE' = 81, 'SHOW USERS' = 82, 'SHOW ROLES' = 83, 'SHOW ROW POLICIES' = 84, 'SHOW QUOTAS' = 85, 'SHOW SETTINGS PROFILES' = 86, 'SHOW ACCESS' = 87, 'ACCESS MANAGEMENT' = 88, 'SYSTEM SHUTDOWN' = 89, 'SYSTEM DROP DNS CACHE' = 90, 'SYSTEM DROP MARK CACHE' = 91, 'SYSTEM DROP UNCOMPRESSED CACHE' = 92, 'SYSTEM DROP MMAP CACHE' = 93, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 94, 'SYSTEM DROP CACHE' = 95, 'SYSTEM RELOAD CONFIG' = 96, 'SYSTEM RELOAD SYMBOLS' = 97, 'SYSTEM RELOAD DICTIONARY' = 98, 'SYSTEM RELOAD MODEL' = 99, 'SYSTEM RELOAD FUNCTION' = 100, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 101, 'SYSTEM RELOAD' = 102, 'SYSTEM RESTART DISK' = 103, 'SYSTEM MERGES' = 104, 'SYSTEM TTL MERGES' = 105, 'SYSTEM FETCHES' = 106, 'SYSTEM MOVES' = 107, 'SYSTEM DISTRIBUTED SENDS' = 108, 'SYSTEM REPLICATED SENDS' = 109, 'SYSTEM SENDS' = 110, 'SYSTEM REPLICATION QUEUES' = 111, 'SYSTEM DROP REPLICA' = 112, 'SYSTEM SYNC REPLICA' = 113, 'SYSTEM RESTART REPLICA' = 114, 'SYSTEM RESTORE REPLICA' = 115, 'SYSTEM SYNC DATABASE REPLICA' = 116, 'SYSTEM SYNC TRANSACTION LOG' = 117, 'SYSTEM FLUSH DISTRIBUTED' = 118, 'SYSTEM FLUSH LOGS' = 119, 'SYSTEM FLUSH' = 120, 'SYSTEM THREAD FUZZER' = 121, 'SYSTEM UNFREEZE' = 122, 'SYSTEM' = 123, 'dictGet' = 124, 'addressToLine' = 125, 'addressToLineWithInlines' = 126, 'addressToSymbol' = 127, 'demangle' = 128, 'INTROSPECTION' = 129, 'FILE' = 130, 'URL' = 131, 'REMOTE' = 132, 'MONGO' = 133, 'MEILISEARCH' = 134, 'MYSQL' = 135, 'POSTGRES' = 136, 'SQLITE' = 137, 'ODBC' = 138, 'JDBC' = 139, 'HDFS' = 140, 'S3' = 141, 'HIVE' = 142, 'SOURCES' = 143, 'CLUSTER' = 144, 'ALL' = 145, 'NONE' = 146)) ) ENGINE = SystemPrivileges COMMENT 'SYSTEM TABLE is built on the fly.' diff --git a/tests/queries/0_stateless/02344_describe_cache.sql b/tests/queries/0_stateless/02344_describe_cache.sql index aa6a409cd49..1c8a105d8e8 100644 --- a/tests/queries/0_stateless/02344_describe_cache.sql +++ b/tests/queries/0_stateless/02344_describe_cache.sql @@ -1 +1,3 @@ +-- tags: no-fasttest + DESCRIBE CACHE 's3disk'; From 1239ee4b31311ef248d1a93f6829ed43ff8c0d9b Mon Sep 17 00:00:00 2001 From: Larry Luo Date: Thu, 23 Jun 2022 12:11:18 -0700 Subject: [PATCH 175/525] update ssl config --- tests/integration/test_tlsv1_3/configs/ssl_config.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/integration/test_tlsv1_3/configs/ssl_config.xml b/tests/integration/test_tlsv1_3/configs/ssl_config.xml index e3d1831e08c..9e686b55567 100644 --- a/tests/integration/test_tlsv1_3/configs/ssl_config.xml +++ b/tests/integration/test_tlsv1_3/configs/ssl_config.xml @@ -28,7 +28,6 @@ true relaxed - false sslv2,sslv3,tlsv1,tlsv1_1,tlsv1_2 From 0d304f7b8cbfbbac48a8fe08a10b374c8987396c Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 23 Jun 2022 21:19:07 +0200 Subject: [PATCH 176/525] fix tests --- tests/integration/test_atomic_drop_table/test.py | 2 +- .../test_attach_partition_with_large_destination/test.py | 2 +- tests/integration/test_backup_restore/test.py | 2 +- tests/integration/test_backup_with_other_granularity/test.py | 2 +- tests/integration/test_dictionaries_dependency/test.py | 2 +- tests/integration/test_distributed_ddl/test.py | 2 +- .../test_distributed_storage_configuration/test.py | 2 +- tests/integration/test_filesystem_layout/test.py | 2 +- tests/integration/test_force_drop_table/test.py | 2 +- .../integration/test_keeper_multinode_blocade_leader/test.py | 4 ++-- tests/integration/test_merge_tree_s3_restore/test.py | 2 +- tests/integration/test_partition/test.py | 2 +- tests/integration/test_polymorphic_parts/test.py | 2 +- .../test_replicated_merge_tree_compatibility/test.py | 2 +- .../integration/test_replicated_merge_tree_s3_restore/test.py | 2 +- tests/integration/test_system_merges/test.py | 4 ++-- tests/performance/merge_table_streams.xml | 1 + tests/queries/0_stateless/00090_union_race_conditions_1.sh | 1 + .../0_stateless/00215_primary_key_order_zookeeper_long.sql | 1 + tests/queries/0_stateless/00505_distributed_secure.data | 1 + tests/queries/0_stateless/00632_get_sample_block_cache.sql | 1 + tests/queries/0_stateless/01280_ssd_complex_key_dictionary.sh | 1 + 22 files changed, 24 insertions(+), 18 deletions(-) diff --git a/tests/integration/test_atomic_drop_table/test.py b/tests/integration/test_atomic_drop_table/test.py index 1fe88dde099..5ef2f57b684 100644 --- a/tests/integration/test_atomic_drop_table/test.py +++ b/tests/integration/test_atomic_drop_table/test.py @@ -20,7 +20,7 @@ def start_cluster(): try: cluster.start() node1.query( - "CREATE DATABASE zktest ENGINE=Ordinary;" + "CREATE DATABASE zktest ENGINE=Ordinary;", settings={"allow_deprecated_database_ordinary": 1} ) # Different behaviour with Atomic node1.query( """ diff --git a/tests/integration/test_attach_partition_with_large_destination/test.py b/tests/integration/test_attach_partition_with_large_destination/test.py index 0a4ab9fada1..1f4e92ebc55 100644 --- a/tests/integration/test_attach_partition_with_large_destination/test.py +++ b/tests/integration/test_attach_partition_with_large_destination/test.py @@ -34,7 +34,7 @@ def create_force_drop_flag(node): @pytest.mark.parametrize("engine", ["Ordinary", "Atomic"]) def test_attach_partition_with_large_destination(started_cluster, engine): # Initialize - node.query("CREATE DATABASE db ENGINE={}".format(engine)) + node.query("CREATE DATABASE db ENGINE={}".format(engine), settings={"allow_deprecated_database_ordinary": 1}) node.query( "CREATE TABLE db.destination (n UInt64) ENGINE=ReplicatedMergeTree('/test/destination', 'r1') ORDER BY n PARTITION BY n % 2" ) diff --git a/tests/integration/test_backup_restore/test.py b/tests/integration/test_backup_restore/test.py index 905abef05b0..a379c52579e 100644 --- a/tests/integration/test_backup_restore/test.py +++ b/tests/integration/test_backup_restore/test.py @@ -15,7 +15,7 @@ def started_cluster(): try: cluster.start() instance.query( - "CREATE DATABASE test ENGINE = Ordinary" + "CREATE DATABASE test ENGINE = Ordinary", settings={"allow_deprecated_database_ordinary": 1} ) # Different path in shadow/ with Atomic instance.query("DROP TABLE IF EXISTS test.tbl") instance.query( diff --git a/tests/integration/test_backup_with_other_granularity/test.py b/tests/integration/test_backup_with_other_granularity/test.py index 9cb998fb505..fac5331cb7d 100644 --- a/tests/integration/test_backup_with_other_granularity/test.py +++ b/tests/integration/test_backup_with_other_granularity/test.py @@ -202,7 +202,7 @@ def test_backup_from_old_version_config(started_cluster): def test_backup_and_alter(started_cluster): node4.query( - "CREATE DATABASE test ENGINE=Ordinary" + "CREATE DATABASE test ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1} ) # Different path in shadow/ with Atomic node4.query( diff --git a/tests/integration/test_dictionaries_dependency/test.py b/tests/integration/test_dictionaries_dependency/test.py index f57d4e42813..be5767111a9 100644 --- a/tests/integration/test_dictionaries_dependency/test.py +++ b/tests/integration/test_dictionaries_dependency/test.py @@ -16,7 +16,7 @@ def start_cluster(): for node in nodes: node.query("CREATE DATABASE IF NOT EXISTS test") # Different internal dictionary name with Atomic - node.query("CREATE DATABASE IF NOT EXISTS test_ordinary ENGINE=Ordinary") + node.query("CREATE DATABASE IF NOT EXISTS test_ordinary ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1}) node.query("CREATE DATABASE IF NOT EXISTS atest") node.query("CREATE DATABASE IF NOT EXISTS ztest") node.query("CREATE TABLE test.source(x UInt64, y UInt64) ENGINE=Log") diff --git a/tests/integration/test_distributed_ddl/test.py b/tests/integration/test_distributed_ddl/test.py index 2789541b519..99ca6684e56 100755 --- a/tests/integration/test_distributed_ddl/test.py +++ b/tests/integration/test_distributed_ddl/test.py @@ -552,7 +552,7 @@ def test_replicated_without_arguments(test_cluster): ) test_cluster.ddl_check_query( - instance, "CREATE DATABASE test_ordinary ON CLUSTER cluster ENGINE=Ordinary" + instance, "CREATE DATABASE test_ordinary ON CLUSTER cluster ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1} ) assert ( "are supported only for ON CLUSTER queries with Atomic database engine" diff --git a/tests/integration/test_distributed_storage_configuration/test.py b/tests/integration/test_distributed_storage_configuration/test.py index fa4e01bb7b3..1ce8846e815 100644 --- a/tests/integration/test_distributed_storage_configuration/test.py +++ b/tests/integration/test_distributed_storage_configuration/test.py @@ -20,7 +20,7 @@ def start_cluster(): try: cluster.start() node.query( - "CREATE DATABASE IF NOT EXISTS test ENGINE=Ordinary" + "CREATE DATABASE IF NOT EXISTS test ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1} ) # Different paths with Atomic yield cluster finally: diff --git a/tests/integration/test_filesystem_layout/test.py b/tests/integration/test_filesystem_layout/test.py index 34e377e0ae4..78c7b74adcb 100644 --- a/tests/integration/test_filesystem_layout/test.py +++ b/tests/integration/test_filesystem_layout/test.py @@ -16,7 +16,7 @@ def started_cluster(): def test_file_path_escaping(started_cluster): - node.query("CREATE DATABASE IF NOT EXISTS test ENGINE = Ordinary") + node.query("CREATE DATABASE IF NOT EXISTS test ENGINE = Ordinary", settings={"allow_deprecated_database_ordinary": 1}) node.query( """ CREATE TABLE test.`T.a_b,l-e!` (`~Id` UInt32) diff --git a/tests/integration/test_force_drop_table/test.py b/tests/integration/test_force_drop_table/test.py index c1eec1cd277..7731c5d7cf4 100644 --- a/tests/integration/test_force_drop_table/test.py +++ b/tests/integration/test_force_drop_table/test.py @@ -33,7 +33,7 @@ def create_force_drop_flag(node): @pytest.mark.parametrize("engine", ["Ordinary", "Atomic"]) def test_drop_materialized_view(started_cluster, engine): - node.query("CREATE DATABASE d ENGINE={}".format(engine)) + node.query("CREATE DATABASE d ENGINE={}".format(engine), settings={"allow_deprecated_database_ordinary": 1}) node.query( "CREATE TABLE d.rmt (n UInt64) ENGINE=ReplicatedMergeTree('/test/rmt', 'r1') ORDER BY n PARTITION BY n % 2" ) diff --git a/tests/integration/test_keeper_multinode_blocade_leader/test.py b/tests/integration/test_keeper_multinode_blocade_leader/test.py index c2d4039e122..4b1b70ffeab 100644 --- a/tests/integration/test_keeper_multinode_blocade_leader/test.py +++ b/tests/integration/test_keeper_multinode_blocade_leader/test.py @@ -95,7 +95,7 @@ def test_blocade_leader(started_cluster): wait_nodes() try: for i, node in enumerate([node1, node2, node3]): - node.query("CREATE DATABASE IF NOT EXISTS ordinary ENGINE=Ordinary") + node.query("CREATE DATABASE IF NOT EXISTS ordinary ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1}) node.query( "CREATE TABLE IF NOT EXISTS ordinary.t1 (value UInt64) ENGINE = ReplicatedMergeTree('/clickhouse/t1', '{}') ORDER BY tuple()".format( i + 1 @@ -296,7 +296,7 @@ def test_blocade_leader_twice(started_cluster): wait_nodes() try: for i, node in enumerate([node1, node2, node3]): - node.query("CREATE DATABASE IF NOT EXISTS ordinary ENGINE=Ordinary") + node.query("CREATE DATABASE IF NOT EXISTS ordinary ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1}) node.query( "CREATE TABLE IF NOT EXISTS ordinary.t2 (value UInt64) ENGINE = ReplicatedMergeTree('/clickhouse/t2', '{}') ORDER BY tuple()".format( i + 1 diff --git a/tests/integration/test_merge_tree_s3_restore/test.py b/tests/integration/test_merge_tree_s3_restore/test.py index e6ca4a78c25..9eae7ce72ad 100644 --- a/tests/integration/test_merge_tree_s3_restore/test.py +++ b/tests/integration/test_merge_tree_s3_restore/test.py @@ -93,7 +93,7 @@ def create_table( node.query( "CREATE DATABASE IF NOT EXISTS s3 ENGINE = {engine}".format( engine="Atomic" if db_atomic else "Ordinary" - ) + ), settings={"allow_deprecated_database_ordinary": 1} ) create_table_statement = """ diff --git a/tests/integration/test_partition/test.py b/tests/integration/test_partition/test.py index b396b58df10..43bbddfb2e1 100644 --- a/tests/integration/test_partition/test.py +++ b/tests/integration/test_partition/test.py @@ -14,7 +14,7 @@ def started_cluster(): try: cluster.start() q( - "CREATE DATABASE test ENGINE = Ordinary" + "CREATE DATABASE test ENGINE = Ordinary", settings={"allow_deprecated_database_ordinary": 1} ) # Different path in shadow/ with Atomic yield cluster diff --git a/tests/integration/test_polymorphic_parts/test.py b/tests/integration/test_polymorphic_parts/test.py index edd65ec002c..245b53d64bf 100644 --- a/tests/integration/test_polymorphic_parts/test.py +++ b/tests/integration/test_polymorphic_parts/test.py @@ -720,7 +720,7 @@ def test_in_memory_alters(start_cluster): def test_polymorphic_parts_index(start_cluster): node1.query( - "CREATE DATABASE test_index ENGINE=Ordinary" + "CREATE DATABASE test_index ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1} ) # Different paths with Atomic node1.query( """ diff --git a/tests/integration/test_replicated_merge_tree_compatibility/test.py b/tests/integration/test_replicated_merge_tree_compatibility/test.py index 00367daad33..476abd888ab 100644 --- a/tests/integration/test_replicated_merge_tree_compatibility/test.py +++ b/tests/integration/test_replicated_merge_tree_compatibility/test.py @@ -52,7 +52,7 @@ def test_replicated_merge_tree_defaults_compatibility(started_cluster): """ for node in (node1, node2): - node.query("CREATE DATABASE test ENGINE = Ordinary") + node.query("CREATE DATABASE test ENGINE = Ordinary", settings={"allow_deprecated_database_ordinary": 1}) node.query(create_query.format(replica=node.name)) node1.query("DETACH TABLE test.table") diff --git a/tests/integration/test_replicated_merge_tree_s3_restore/test.py b/tests/integration/test_replicated_merge_tree_s3_restore/test.py index 904bcfa4280..1454858f71e 100644 --- a/tests/integration/test_replicated_merge_tree_s3_restore/test.py +++ b/tests/integration/test_replicated_merge_tree_s3_restore/test.py @@ -76,7 +76,7 @@ def create_table(node, table_name, schema, attach=False, db_atomic=False, uuid=" "CREATE DATABASE IF NOT EXISTS s3 {on_cluster} ENGINE = {engine}".format( engine="Atomic" if db_atomic else "Ordinary", on_cluster="ON CLUSTER '{cluster}'", - ) + ), settings={"allow_deprecated_database_ordinary": 1} ) create_table_statement = """ diff --git a/tests/integration/test_system_merges/test.py b/tests/integration/test_system_merges/test.py index 775706f4df6..12f5cedbbb2 100644 --- a/tests/integration/test_system_merges/test.py +++ b/tests/integration/test_system_merges/test.py @@ -26,9 +26,9 @@ def started_cluster(): try: cluster.start() node1.query( - "CREATE DATABASE test ENGINE=Ordinary" + "CREATE DATABASE test ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1} ) # Different paths with Atomic - node2.query("CREATE DATABASE test ENGINE=Ordinary") + node2.query("CREATE DATABASE test ENGINE=Ordinary", settings={"allow_deprecated_database_ordinary": 1}) yield cluster finally: diff --git a/tests/performance/merge_table_streams.xml b/tests/performance/merge_table_streams.xml index efeb4547f37..1e053c98738 100644 --- a/tests/performance/merge_table_streams.xml +++ b/tests/performance/merge_table_streams.xml @@ -1,6 +1,7 @@ 5 + 1 From addfe5f2095b963367f7d116892c0c3de94306e6 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Thu, 23 Jun 2022 23:57:28 +0200 Subject: [PATCH 196/525] Added test for list --recursive --- tests/integration/test_disks_app_func/test.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/integration/test_disks_app_func/test.py b/tests/integration/test_disks_app_func/test.py index d950959f3e1..419d0fbe8ca 100644 --- a/tests/integration/test_disks_app_func/test.py +++ b/tests/integration/test_disks_app_func/test.py @@ -58,6 +58,22 @@ def test_disks_app_func_ls(started_cluster): assert files[0] == "store" + out = source.exec_in_container( + [ + "/usr/bin/clickhouse", + "disks", + "--send-logs", + "--disk", + "test1", + "list", + ".", + "--recursive", + ] + ) + + assert ".:\nstore\n" in out + assert "\n./store:\n" in out + def test_disks_app_func_cp(started_cluster): source = cluster.instances["disks_app_test"] From a2158066f284c3fecf144c8856da3a70ad5e36f0 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Fri, 24 Jun 2022 02:29:10 +0000 Subject: [PATCH 197/525] fix distinct with limit in distributed queries --- src/Interpreters/InterpreterSelectQuery.cpp | 8 ++++-- ...2344_distinct_limit_distiributed.reference | 6 +++++ .../02344_distinct_limit_distiributed.sql | 26 +++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 tests/queries/0_stateless/02344_distinct_limit_distiributed.reference create mode 100644 tests/queries/0_stateless/02344_distinct_limit_distiributed.sql diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index ec7c3878b06..454457c7b93 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1242,8 +1242,12 @@ void InterpreterSelectQuery::executeImpl(QueryPlan & query_plan, std::optional

Date: Fri, 17 Jun 2022 12:15:19 +0200 Subject: [PATCH 198/525] Replace hyperscan by vectorscan This commit migrates ClickHouse to Vectorscan. The first 10 min of [0] explain the reasons for it. (*) Addresses (but does not resolve) #38046 (*) Config parameter names (e.g. "max_hyperscan_regexp_length") are preserved for compatibility. Likewise, error codes (e.g. "ErrorCodes::HYPERSCAN_CANNOT_SCAN_TEXT") and function/class names (e.g. "HyperscanDeleter") are preserved as vectorscan aims to be a drop-in replacement. [0] https://www.youtube.com/watch?v=KlZWmmflW6M --- .gitmodules | 6 +- contrib/CMakeLists.txt | 2 +- contrib/hyperscan | 1 - contrib/vectorscan | 1 + .../CMakeLists.txt | 180 +- contrib/vectorscan-cmake/aarch64/config.h | 142 + .../common/hs_version.h | 5 +- .../vectorscan-cmake/rageled_files/Parser.cpp | 5605 +++++++++++++++++ .../rageled_files/control_verbs.cpp | 443 ++ .../x86_64/config.h | 38 +- docs/en/development/contrib.md | 2 +- src/Functions/CMakeLists.txt | 4 +- src/Functions/MultiMatchAllIndicesImpl.h | 10 +- src/Functions/MultiMatchAnyImpl.h | 16 +- src/Functions/Regexps.h | 6 +- src/Functions/URL/CMakeLists.txt | 4 +- src/Functions/config_functions.h.in | 2 +- src/Functions/configure_config.cmake | 4 +- ...StorageSystemBuildOptions.generated.cpp.in | 2 +- .../queries/0_stateless/00926_multimatch.sql | 2 +- .../00929_multi_match_edit_distance.sql | 2 +- .../02004_max_hyperscan_regex_length.sql | 2 +- .../1_stateful/00095_hyperscan_profiler.sql | 2 +- .../aspell-ignore/en/aspell-dict.txt | 1 + 24 files changed, 6383 insertions(+), 99 deletions(-) delete mode 160000 contrib/hyperscan create mode 160000 contrib/vectorscan rename contrib/{hyperscan-cmake => vectorscan-cmake}/CMakeLists.txt (73%) create mode 100644 contrib/vectorscan-cmake/aarch64/config.h rename contrib/{hyperscan-cmake => vectorscan-cmake}/common/hs_version.h (94%) create mode 100644 contrib/vectorscan-cmake/rageled_files/Parser.cpp create mode 100644 contrib/vectorscan-cmake/rageled_files/control_verbs.cpp rename contrib/{hyperscan-cmake => vectorscan-cmake}/x86_64/config.h (73%) diff --git a/.gitmodules b/.gitmodules index b102267c7aa..16099c63368 100644 --- a/.gitmodules +++ b/.gitmodules @@ -86,9 +86,6 @@ [submodule "contrib/h3"] path = contrib/h3 url = https://github.com/ClickHouse/h3 -[submodule "contrib/hyperscan"] - path = contrib/hyperscan - url = https://github.com/ClickHouse/hyperscan.git [submodule "contrib/libunwind"] path = contrib/libunwind url = https://github.com/ClickHouse/libunwind.git @@ -268,6 +265,9 @@ [submodule "contrib/hashidsxx"] path = contrib/hashidsxx url = https://github.com/schoentoon/hashidsxx.git +[submodule "contrib/vectorscan"] + path = contrib/vectorscan + url = https://github.com/VectorCamp/vectorscan.git [submodule "contrib/liburing"] path = contrib/liburing url = https://github.com/axboe/liburing.git diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index c2ffd0131da..1bb53669cfa 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -58,7 +58,7 @@ add_contrib (boost-cmake boost) add_contrib (cctz-cmake cctz) add_contrib (consistent-hashing) add_contrib (dragonbox-cmake dragonbox) -add_contrib (hyperscan-cmake hyperscan) +add_contrib (vectorscan-cmake vectorscan) add_contrib (jemalloc-cmake jemalloc) add_contrib (libcpuid-cmake libcpuid) add_contrib (libdivide) diff --git a/contrib/hyperscan b/contrib/hyperscan deleted file mode 160000 index 5edc68c5ac6..00000000000 --- a/contrib/hyperscan +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5edc68c5ac68d2d4f876159e9ee84def6d3dc87c diff --git a/contrib/vectorscan b/contrib/vectorscan new file mode 160000 index 00000000000..73695e419c2 --- /dev/null +++ b/contrib/vectorscan @@ -0,0 +1 @@ +Subproject commit 73695e419c27af7fe2a099c7aa57931cc02aea5d diff --git a/contrib/hyperscan-cmake/CMakeLists.txt b/contrib/vectorscan-cmake/CMakeLists.txt similarity index 73% rename from contrib/hyperscan-cmake/CMakeLists.txt rename to contrib/vectorscan-cmake/CMakeLists.txt index 02c823a3a42..140c174cd73 100644 --- a/contrib/hyperscan-cmake/CMakeLists.txt +++ b/contrib/vectorscan-cmake/CMakeLists.txt @@ -1,54 +1,65 @@ -if (HAVE_SSSE3) - option (ENABLE_HYPERSCAN "Enable hyperscan library" ${ENABLE_LIBRARIES}) -elseif(ENABLE_HYPERSCAN) - message (${RECONFIGURE_MESSAGE_LEVEL} "Can't use hyperscan without SSSE3") - set (ENABLE_HYPERSCAN OFF) -endif () +# We use vectorscan, a portable and API/ABI-compatible drop-in replacement for hyperscan. -if (NOT ENABLE_HYPERSCAN) - message (STATUS "Not using hyperscan") +if (ARCH_AMD64 OR ARCH_AARCH64) + option (ENABLE_VECTORSCAN "Enable vectorscan library" ${ENABLE_LIBRARIES}) +endif() + +# TODO PPC should generally work but needs manual generation of ppc/config.h file on a PPC machine + +if (NOT ENABLE_VECTORSCAN) + message (STATUS "Not using vectorscan") return() endif() -set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/hyperscan") +set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/vectorscan") +# Gobble up all c/cpp files in vectorscan/src/, omit *dump*.c/cpp files as we don't use the dump feature (see x86/config.h) set (SRCS "${LIBRARY_DIR}/src/alloc.c" + "${LIBRARY_DIR}/src/crc32.c" + "${LIBRARY_DIR}/src/database.c" + # "${LIBRARY_DIR}/src/dispatcher.c" # the linker's wrath be upon those who include dispatcher.c. + "${LIBRARY_DIR}/src/grey.cpp" + "${LIBRARY_DIR}/src/hs.cpp" + "${LIBRARY_DIR}/src/hs_valid_platform.c" + "${LIBRARY_DIR}/src/hs_version.c" + "${LIBRARY_DIR}/src/runtime.c" + "${LIBRARY_DIR}/src/scratch.c" + "${LIBRARY_DIR}/src/stream_compress.c" + "${LIBRARY_DIR}/src/compiler/asserts.cpp" "${LIBRARY_DIR}/src/compiler/compiler.cpp" "${LIBRARY_DIR}/src/compiler/error.cpp" - "${LIBRARY_DIR}/src/crc32.c" - "${LIBRARY_DIR}/src/database.c" + "${LIBRARY_DIR}/src/fdr/engine_description.cpp" - "${LIBRARY_DIR}/src/fdr/fdr_compile_util.cpp" + "${LIBRARY_DIR}/src/fdr/fdr.c" "${LIBRARY_DIR}/src/fdr/fdr_compile.cpp" + "${LIBRARY_DIR}/src/fdr/fdr_compile_util.cpp" "${LIBRARY_DIR}/src/fdr/fdr_confirm_compile.cpp" "${LIBRARY_DIR}/src/fdr/fdr_engine_description.cpp" - "${LIBRARY_DIR}/src/fdr/fdr.c" "${LIBRARY_DIR}/src/fdr/flood_compile.cpp" + "${LIBRARY_DIR}/src/fdr/teddy.c" + "${LIBRARY_DIR}/src/fdr/teddy_avx2.c" "${LIBRARY_DIR}/src/fdr/teddy_compile.cpp" "${LIBRARY_DIR}/src/fdr/teddy_engine_description.cpp" - "${LIBRARY_DIR}/src/fdr/teddy.c" - "${LIBRARY_DIR}/src/grey.cpp" - "${LIBRARY_DIR}/src/hs_valid_platform.c" - "${LIBRARY_DIR}/src/hs_version.c" - "${LIBRARY_DIR}/src/hs.cpp" + + "${LIBRARY_DIR}/src/hwlm/hwlm.c" "${LIBRARY_DIR}/src/hwlm/hwlm_build.cpp" "${LIBRARY_DIR}/src/hwlm/hwlm_literal.cpp" - "${LIBRARY_DIR}/src/hwlm/hwlm.c" "${LIBRARY_DIR}/src/hwlm/noodle_build.cpp" - "${LIBRARY_DIR}/src/hwlm/noodle_engine.c" - "${LIBRARY_DIR}/src/nfa/accel_dfa_build_strat.cpp" + "${LIBRARY_DIR}/src/hwlm/noodle_engine.cpp" + "${LIBRARY_DIR}/src/nfa/accel.c" + "${LIBRARY_DIR}/src/nfa/accel_dfa_build_strat.cpp" "${LIBRARY_DIR}/src/nfa/accelcompile.cpp" "${LIBRARY_DIR}/src/nfa/castle.c" "${LIBRARY_DIR}/src/nfa/castlecompile.cpp" "${LIBRARY_DIR}/src/nfa/dfa_build_strat.cpp" "${LIBRARY_DIR}/src/nfa/dfa_min.cpp" "${LIBRARY_DIR}/src/nfa/gough.c" + "${LIBRARY_DIR}/src/nfa/goughcompile.cpp" "${LIBRARY_DIR}/src/nfa/goughcompile_accel.cpp" "${LIBRARY_DIR}/src/nfa/goughcompile_reg.cpp" - "${LIBRARY_DIR}/src/nfa/goughcompile.cpp" "${LIBRARY_DIR}/src/nfa/lbr.c" "${LIBRARY_DIR}/src/nfa/limex_64.c" "${LIBRARY_DIR}/src/nfa/limex_accel.c" @@ -59,28 +70,32 @@ set (SRCS "${LIBRARY_DIR}/src/nfa/limex_simd384.c" "${LIBRARY_DIR}/src/nfa/limex_simd512.c" "${LIBRARY_DIR}/src/nfa/mcclellan.c" - "${LIBRARY_DIR}/src/nfa/mcclellancompile_util.cpp" "${LIBRARY_DIR}/src/nfa/mcclellancompile.cpp" + "${LIBRARY_DIR}/src/nfa/mcclellancompile_util.cpp" + "${LIBRARY_DIR}/src/nfa/mcsheng.c" "${LIBRARY_DIR}/src/nfa/mcsheng_compile.cpp" "${LIBRARY_DIR}/src/nfa/mcsheng_data.c" - "${LIBRARY_DIR}/src/nfa/mcsheng.c" "${LIBRARY_DIR}/src/nfa/mpv.c" "${LIBRARY_DIR}/src/nfa/mpvcompile.cpp" "${LIBRARY_DIR}/src/nfa/nfa_api_dispatch.c" "${LIBRARY_DIR}/src/nfa/nfa_build_util.cpp" + "${LIBRARY_DIR}/src/nfa/rdfa.cpp" "${LIBRARY_DIR}/src/nfa/rdfa_graph.cpp" "${LIBRARY_DIR}/src/nfa/rdfa_merge.cpp" - "${LIBRARY_DIR}/src/nfa/rdfa.cpp" "${LIBRARY_DIR}/src/nfa/repeat.c" "${LIBRARY_DIR}/src/nfa/repeatcompile.cpp" "${LIBRARY_DIR}/src/nfa/sheng.c" "${LIBRARY_DIR}/src/nfa/shengcompile.cpp" - "${LIBRARY_DIR}/src/nfa/shufti.c" + "${LIBRARY_DIR}/src/nfa/shufti.cpp" "${LIBRARY_DIR}/src/nfa/shufticompile.cpp" "${LIBRARY_DIR}/src/nfa/tamarama.c" "${LIBRARY_DIR}/src/nfa/tamaramacompile.cpp" - "${LIBRARY_DIR}/src/nfa/truffle.c" + "${LIBRARY_DIR}/src/nfa/truffle.cpp" "${LIBRARY_DIR}/src/nfa/trufflecompile.cpp" + "${LIBRARY_DIR}/src/nfa/vermicelli_simd.cpp" + "${LIBRARY_DIR}/src/nfa/vermicellicompile.cpp" + + "${LIBRARY_DIR}/src/nfagraph/ng.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_anchored_acyclic.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_anchored_dots.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_asserts.cpp" @@ -100,8 +115,8 @@ set (SRCS "${LIBRARY_DIR}/src/nfagraph/ng_holder.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_is_equal.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_lbr.cpp" - "${LIBRARY_DIR}/src/nfagraph/ng_limex_accel.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_limex.cpp" + "${LIBRARY_DIR}/src/nfagraph/ng_limex_accel.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_literal_analysis.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_literal_component.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_literal_decorated.cpp" @@ -112,17 +127,17 @@ set (SRCS "${LIBRARY_DIR}/src/nfagraph/ng_prune.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_puff.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_redundancy.cpp" - "${LIBRARY_DIR}/src/nfagraph/ng_region_redundancy.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_region.cpp" + "${LIBRARY_DIR}/src/nfagraph/ng_region_redundancy.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_repeat.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_reports.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_restructuring.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_revacc.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_sep.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_small_literal_set.cpp" + "${LIBRARY_DIR}/src/nfagraph/ng_som.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_som_add_redundancy.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_som_util.cpp" - "${LIBRARY_DIR}/src/nfagraph/ng_som.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_split.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_squash.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_stop.cpp" @@ -132,10 +147,8 @@ set (SRCS "${LIBRARY_DIR}/src/nfagraph/ng_vacuous.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_violet.cpp" "${LIBRARY_DIR}/src/nfagraph/ng_width.cpp" - "${LIBRARY_DIR}/src/nfagraph/ng.cpp" + "${LIBRARY_DIR}/src/parser/AsciiComponentClass.cpp" - "${LIBRARY_DIR}/src/parser/buildstate.cpp" - "${LIBRARY_DIR}/src/parser/check_refs.cpp" "${LIBRARY_DIR}/src/parser/Component.cpp" "${LIBRARY_DIR}/src/parser/ComponentAlternation.cpp" "${LIBRARY_DIR}/src/parser/ComponentAssertion.cpp" @@ -145,31 +158,34 @@ set (SRCS "${LIBRARY_DIR}/src/parser/ComponentByte.cpp" "${LIBRARY_DIR}/src/parser/ComponentClass.cpp" "${LIBRARY_DIR}/src/parser/ComponentCondReference.cpp" - "${LIBRARY_DIR}/src/parser/ComponentEmpty.cpp" "${LIBRARY_DIR}/src/parser/ComponentEUS.cpp" + "${LIBRARY_DIR}/src/parser/ComponentEmpty.cpp" "${LIBRARY_DIR}/src/parser/ComponentRepeat.cpp" "${LIBRARY_DIR}/src/parser/ComponentSequence.cpp" "${LIBRARY_DIR}/src/parser/ComponentVisitor.cpp" "${LIBRARY_DIR}/src/parser/ComponentWordBoundary.cpp" "${LIBRARY_DIR}/src/parser/ConstComponentVisitor.cpp" - "${LIBRARY_DIR}/src/parser/control_verbs.cpp" + "${LIBRARY_DIR}/src/parser/Utf8ComponentClass.cpp" + "${LIBRARY_DIR}/src/parser/buildstate.cpp" + "${LIBRARY_DIR}/src/parser/buildstate.cpp" + "${LIBRARY_DIR}/src/parser/check_refs.cpp" + "${LIBRARY_DIR}/src/parser/check_refs.cpp" "${LIBRARY_DIR}/src/parser/logical_combination.cpp" "${LIBRARY_DIR}/src/parser/parse_error.cpp" "${LIBRARY_DIR}/src/parser/parser_util.cpp" - "${LIBRARY_DIR}/src/parser/Parser.cpp" "${LIBRARY_DIR}/src/parser/prefilter.cpp" "${LIBRARY_DIR}/src/parser/shortcut_literal.cpp" "${LIBRARY_DIR}/src/parser/ucp_table.cpp" "${LIBRARY_DIR}/src/parser/unsupported.cpp" "${LIBRARY_DIR}/src/parser/utf8_validate.cpp" - "${LIBRARY_DIR}/src/parser/Utf8ComponentClass.cpp" + "${LIBRARY_DIR}/src/rose/block.c" "${LIBRARY_DIR}/src/rose/catchup.c" "${LIBRARY_DIR}/src/rose/init.c" "${LIBRARY_DIR}/src/rose/match.c" "${LIBRARY_DIR}/src/rose/program_runtime.c" - "${LIBRARY_DIR}/src/rose/rose_build_add_mask.cpp" "${LIBRARY_DIR}/src/rose/rose_build_add.cpp" + "${LIBRARY_DIR}/src/rose/rose_build_add_mask.cpp" "${LIBRARY_DIR}/src/rose/rose_build_anchored.cpp" "${LIBRARY_DIR}/src/rose/rose_build_bytecode.cpp" "${LIBRARY_DIR}/src/rose/rose_build_castle.cpp" @@ -187,53 +203,95 @@ set (SRCS "${LIBRARY_DIR}/src/rose/rose_build_matchers.cpp" "${LIBRARY_DIR}/src/rose/rose_build_merge.cpp" "${LIBRARY_DIR}/src/rose/rose_build_misc.cpp" + "${LIBRARY_DIR}/src/rose/rose_build_misc.cpp" "${LIBRARY_DIR}/src/rose/rose_build_program.cpp" "${LIBRARY_DIR}/src/rose/rose_build_role_aliasing.cpp" "${LIBRARY_DIR}/src/rose/rose_build_scatter.cpp" "${LIBRARY_DIR}/src/rose/rose_build_width.cpp" "${LIBRARY_DIR}/src/rose/rose_in_util.cpp" "${LIBRARY_DIR}/src/rose/stream.c" - "${LIBRARY_DIR}/src/runtime.c" - "${LIBRARY_DIR}/src/scratch.c" + "${LIBRARY_DIR}/src/smallwrite/smallwrite_build.cpp" + "${LIBRARY_DIR}/src/som/slot_manager.cpp" "${LIBRARY_DIR}/src/som/som_runtime.c" "${LIBRARY_DIR}/src/som/som_stream.c" - "${LIBRARY_DIR}/src/stream_compress.c" + "${LIBRARY_DIR}/src/util/alloc.cpp" "${LIBRARY_DIR}/src/util/charreach.cpp" "${LIBRARY_DIR}/src/util/clique.cpp" "${LIBRARY_DIR}/src/util/compile_context.cpp" "${LIBRARY_DIR}/src/util/compile_error.cpp" - "${LIBRARY_DIR}/src/util/cpuid_flags.c" "${LIBRARY_DIR}/src/util/depth.cpp" "${LIBRARY_DIR}/src/util/fatbit_build.cpp" - "${LIBRARY_DIR}/src/util/multibit_build.cpp" "${LIBRARY_DIR}/src/util/multibit.c" + "${LIBRARY_DIR}/src/util/multibit_build.cpp" "${LIBRARY_DIR}/src/util/report_manager.cpp" - "${LIBRARY_DIR}/src/util/simd_utils.c" "${LIBRARY_DIR}/src/util/state_compress.c" "${LIBRARY_DIR}/src/util/target_info.cpp" "${LIBRARY_DIR}/src/util/ue2string.cpp" ) -add_library (_hyperscan ${SRCS}) +# The original build system invokes ragel on src/parser/{Parser|control_verbs}.rl (+ a few more .rl files which are unneeded). To avoid a +# build-time dependency on ragel (via contrib/ or find_program()), add the manually generated output of ragel to the sources. +# Please regenerate these files if you update vectorscan. +list (APPEND SRCS + "${LIBRARY_DIR}/../vectorscan-cmake/rageled_files/Parser.cpp" + "${LIBRARY_DIR}/../vectorscan-cmake/rageled_files/control_verbs.cpp" +) -target_compile_options (_hyperscan - PRIVATE -g0 # Library has too much debug information - -mno-avx -mno-avx2 # The library is using dynamic dispatch and is confused if AVX is enabled globally - -march=corei7 -O2 -fno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden # The options from original build system - -fno-sanitize=undefined # Assume the library takes care of itself -) -target_include_directories (_hyperscan - PRIVATE - common - "${LIBRARY_DIR}/include" -) -target_include_directories (_hyperscan SYSTEM PUBLIC "${LIBRARY_DIR}/src") +# Platform-dependent files if (ARCH_AMD64) - target_include_directories (_hyperscan PRIVATE x86_64) -endif () -target_link_libraries (_hyperscan PRIVATE boost::headers_only) + list(APPEND SRCS + "${LIBRARY_DIR}/src/util/arch/x86/cpuid_flags.c" + "${LIBRARY_DIR}/src/util/arch/x86/masked_move.c" + "${LIBRARY_DIR}/src/util/supervector/arch/x86/impl.cpp" + ) +endif() -add_library (ch_contrib::hyperscan ALIAS _hyperscan) +if (ARCH_AARCH64) + list(APPEND SRCS + "${LIBRARY_DIR}/src/util/arch/arm/cpuid_flags.c" + "${LIBRARY_DIR}/src/util/supervector/arch/arm/impl.cpp" + ) +endif() + +# TODO +# if (ARCH_PPC64LE) +# list(APPEND SRCS +# "${LIBRARY_DIR}/src/util/supervector/arch/ppc64el/impl.cpp" +# ) +# endif() + +add_library (_vectorscan ${SRCS}) + +target_compile_options (_vectorscan PRIVATE + -g0 # library has too much debug information + -fno-sanitize=undefined # assume the library takes care of itself + -O2 -fno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden # options from original build system +) + +# Include version header manually generated by running the original build system +target_include_directories (_vectorscan SYSTEM PRIVATE common) + +# vectorscan inherited some patched in-source versions of boost headers to fix a bug in +# boost 1.69. This bug has been solved long ago but vectorscan's source code still +# points to the patched versions, so include it here. +target_include_directories (_vectorscan SYSTEM PRIVATE "${LIBRARY_DIR}/include") + +target_include_directories (_vectorscan SYSTEM PUBLIC "${LIBRARY_DIR}/src") + +# Include platform-specific config header generated by manually running the original build system +# Please regenerate these files if you update vectorscan. + +if (ARCH_AMD64) + target_include_directories (_vectorscan PRIVATE x86_64) +endif () + +if (ARCH_AARCH64) + target_include_directories (_vectorscan PRIVATE aarch64) +endif () + +target_link_libraries (_vectorscan PRIVATE boost::headers_only) + +add_library (ch_contrib::vectorscan ALIAS _vectorscan) diff --git a/contrib/vectorscan-cmake/aarch64/config.h b/contrib/vectorscan-cmake/aarch64/config.h new file mode 100644 index 00000000000..78da1c8ad00 --- /dev/null +++ b/contrib/vectorscan-cmake/aarch64/config.h @@ -0,0 +1,142 @@ +/* used by cmake */ + +#ifndef CONFIG_H_ +#define CONFIG_H_ + +/* "Define if the build is 32 bit" */ +/* #undef ARCH_32_BIT */ + +/* "Define if the build is 64 bit" */ +#define ARCH_64_BIT + +/* "Define if building for IA32" */ +/* #undef ARCH_IA32 */ + +/* "Define if building for EM64T" */ +/* #undef ARCH_X86_64 */ + +/* "Define if building for ARM32" */ +/* #undef ARCH_ARM32 */ + +/* "Define if building for AARCH64" */ +#define ARCH_AARCH64 + +/* "Define if building for PPC64EL" */ +/* #undef ARCH_PPC64EL */ + +/* "Define if cross compiling for AARCH64" */ +/* #undef CROSS_COMPILE_AARCH64 */ + +/* Define if building SVE for AARCH64. */ +/* #undef BUILD_SVE */ + +/* Define if building SVE2 for AARCH64. */ +/* #undef BUILD_SVE2 */ + +/* Define if building SVE2+BITPERM for AARCH64. */ +/* #undef BUILD_SVE2_BITPERM */ + +/* internal build, switch on dump support. */ +/* #undef DUMP_SUPPORT */ + +/* Define if building "fat" runtime. */ +/* #undef FAT_RUNTIME */ + +/* Define if building AVX2 in the fat runtime. */ +/* #undef BUILD_AVX2 */ + +/* Define if building AVX-512 in the fat runtime. */ +/* #undef BUILD_AVX512 */ + +/* Define if building AVX512VBMI in the fat runtime. */ +/* #undef BUILD_AVX512VBMI */ + +/* Define to 1 if `backtrace' works. */ +#define HAVE_BACKTRACE + +/* C compiler has __builtin_assume_aligned */ +#define HAVE_CC_BUILTIN_ASSUME_ALIGNED + +/* C++ compiler has __builtin_assume_aligned */ +#define HAVE_CXX_BUILTIN_ASSUME_ALIGNED + +/* C++ compiler has x86intrin.h */ +/* #undef HAVE_CXX_X86INTRIN_H */ + +/* C compiler has x86intrin.h */ +/* #undef HAVE_C_X86INTRIN_H */ + +/* C++ compiler has intrin.h */ +/* #undef HAVE_CXX_INTRIN_H */ + +/* C compiler has intrin.h */ +/* #undef HAVE_C_INTRIN_H */ + +/* C compiler has arm_neon.h */ +#define HAVE_C_ARM_NEON_H + +/* C compiler has arm_sve.h */ +/* #undef HAVE_C_ARM_SVE_H */ + +/* C compiler has arm_neon.h */ +/* #undef HAVE_C_PPC64EL_ALTIVEC_H */ + +/* Define to 1 if you have the declaration of `pthread_setaffinity_np', and to + 0 if you don't. */ +/* #undef HAVE_DECL_PTHREAD_SETAFFINITY_NP */ + +/* #undef HAVE_PTHREAD_NP_H */ + +/* Define to 1 if you have the `malloc_info' function. */ +/* #undef HAVE_MALLOC_INFO */ + +/* Define to 1 if you have the `memmem' function. */ +/* #undef HAVE_MEMMEM */ + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP + +/* Define to 1 if `posix_memalign' works. */ +#define HAVE_POSIX_MEMALIGN + +/* Define to 1 if you have the `setrlimit' function. */ +#define HAVE_SETRLIMIT + +/* Define to 1 if you have the `shmget' function. */ +/* #undef HAVE_SHMGET */ + +/* Define to 1 if you have the `sigaction' function. */ +#define HAVE_SIGACTION + +/* Define to 1 if you have the `sigaltstack' function. */ +#define HAVE_SIGALTSTACK + +/* Define if the sqlite3_open_v2 call is available */ +/* #undef HAVE_SQLITE3_OPEN_V2 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H + +/* Define to 1 if you have the `_aligned_malloc' function. */ +/* #undef HAVE__ALIGNED_MALLOC */ + +/* Define if compiler has __builtin_constant_p */ +/* #undef HAVE__BUILTIN_CONSTANT_P */ + +/* Optimize, inline critical functions */ +#define HS_OPTIMIZE + +#define HS_VERSION +#define HS_MAJOR_VERSION +#define HS_MINOR_VERSION +#define HS_PATCH_VERSION + +#define BUILD_DATE + +/* define if this is a release build. */ +#define RELEASE_BUILD + +/* define if reverse_graph requires patch for boost 1.62.0 */ +/* #undef BOOST_REVGRAPH_PATCH */ + +#endif /* CONFIG_H_ */ diff --git a/contrib/hyperscan-cmake/common/hs_version.h b/contrib/vectorscan-cmake/common/hs_version.h similarity index 94% rename from contrib/hyperscan-cmake/common/hs_version.h rename to contrib/vectorscan-cmake/common/hs_version.h index f6fa8cb209f..8315b44fb2a 100644 --- a/contrib/hyperscan-cmake/common/hs_version.h +++ b/contrib/vectorscan-cmake/common/hs_version.h @@ -32,9 +32,8 @@ /** * A version string to identify this release of Hyperscan. */ -#define HS_VERSION_STRING "5.1.1 2000-01-01" +#define HS_VERSION_STRING "5.4.7 2022-06-20" -#define HS_VERSION_32BIT ((5 << 24) | (1 << 16) | (1 << 8) | 0) +#define HS_VERSION_32BIT ((5 << 24) | (1 << 16) | (7 << 8) | 0) #endif /* HS_VERSION_H_C6428FAF8E3713 */ - diff --git a/contrib/vectorscan-cmake/rageled_files/Parser.cpp b/contrib/vectorscan-cmake/rageled_files/Parser.cpp new file mode 100644 index 00000000000..aebbd7ace1e --- /dev/null +++ b/contrib/vectorscan-cmake/rageled_files/Parser.cpp @@ -0,0 +1,5605 @@ + +#line 1 "Parser.rl" +/* + * Copyright (c) 2015-2017, Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** \file + * \brief Parser code (generated with Ragel from Parser.rl). + */ + +#include "config.h" + +/* Parser.cpp is a built source, may not be in same dir as parser files */ +#include "parser/check_refs.h" +#include "parser/control_verbs.h" +#include "parser/ComponentAlternation.h" +#include "parser/ComponentAssertion.h" +#include "parser/ComponentAtomicGroup.h" +#include "parser/ComponentBackReference.h" +#include "parser/ComponentBoundary.h" +#include "parser/ComponentByte.h" +#include "parser/ComponentClass.h" +#include "parser/ComponentCondReference.h" +#include "parser/ComponentEmpty.h" +#include "parser/ComponentEUS.h" +#include "parser/Component.h" +#include "parser/ComponentRepeat.h" +#include "parser/ComponentSequence.h" +#include "parser/ComponentWordBoundary.h" +#include "parser/parse_error.h" +#include "parser/Parser.h" +#include "ue2common.h" +#include "util/compare.h" +#include "util/flat_containers.h" +#include "util/unicode_def.h" +#include "util/verify_types.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +namespace ue2 { + +#define PUSH_SEQUENCE do {\ + sequences.push_back(ExprState(currentSeq, (size_t)(ts - ptr), \ + mode)); \ + } while(0) +#define POP_SEQUENCE do {\ + currentSeq = sequences.back().seq; \ + mode = sequences.back().mode; \ + sequences.pop_back(); \ + } while(0) + +namespace { + +/** \brief Structure representing current state as we're parsing (current + * sequence, current options). Stored in the 'sequences' vector. */ +struct ExprState { + ExprState(ComponentSequence *seq_in, size_t offset, + const ParseMode &mode_in) : + seq(seq_in), seqOffset(offset), mode(mode_in) {} + + ComponentSequence *seq; //!< current sequence + size_t seqOffset; //!< offset seq was entered, for error reporting + ParseMode mode; //!< current mode flags +}; + +} // namespace + +static +unsigned parseAsDecimal(unsigned oct) { + // The input was parsed as octal, but should have been parsed as decimal. + // Deconstruct the octal number and reconstruct into decimal + unsigned ret = 0; + unsigned multiplier = 1; + while (oct) { + ret += (oct & 0x7) * multiplier; + oct >>= 3; + multiplier *= 10; + } + return ret; +} + +/** \brief Maximum value for a positive integer. We use INT_MAX, as that's what + * PCRE uses. */ +static constexpr u32 MAX_NUMBER = INT_MAX; + +static +void pushDec(u32 *acc, char raw_digit) { + assert(raw_digit >= '0' && raw_digit <= '9'); + u32 digit_val = raw_digit - '0'; + + // Ensure that we don't overflow. + u64a val = ((u64a)*acc * 10) + digit_val; + if (val > MAX_NUMBER) { + throw LocatedParseError("Number is too big"); + } + + *acc = verify_u32(val); +} + +static +void pushOct(u32 *acc, char raw_digit) { + assert(raw_digit >= '0' && raw_digit <= '7'); + u32 digit_val = raw_digit - '0'; + + // Ensure that we don't overflow. + u64a val = ((u64a)*acc * 8) + digit_val; + if (val > MAX_NUMBER) { + throw LocatedParseError("Number is too big"); + } + + *acc = verify_u32(val); +} + +static +void throwInvalidRepeat(void) { + throw LocatedParseError("Invalid repeat"); +} + +static +void throwInvalidUtf8(void) { + throw ParseError("Expression is not valid UTF-8."); +} + +/** + * Adds the given child component to the parent sequence, returning a pointer + * to the new (child) "current sequence". + */ +static +ComponentSequence *enterSequence(ComponentSequence *parent, + unique_ptr child) { + assert(parent); + assert(child); + + ComponentSequence *seq = child.get(); + parent->addComponent(move(child)); + return seq; +} + +static +void addLiteral(ComponentSequence *currentSeq, char c, const ParseMode &mode) { + if (mode.utf8 && mode.caseless) { + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + assert(cc); + cc->add(c); + cc->finalize(); + currentSeq->addComponent(move(cc)); + } else { + currentSeq->addComponent(getLiteralComponentClass(c, mode.caseless)); + } +} + +static +void addEscaped(ComponentSequence *currentSeq, unichar accum, + const ParseMode &mode, const char *err_msg) { + if (mode.utf8) { + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + assert(cc); + cc->add(accum); + cc->finalize(); + currentSeq->addComponent(move(cc)); + } else { + if (accum > 255) { + throw LocatedParseError(err_msg); + } + addLiteral(currentSeq, (char)accum, mode); + } +} + +static +void addEscapedOctal(ComponentSequence *currentSeq, unichar accum, + const ParseMode &mode) { + addEscaped(currentSeq, accum, mode, "Octal value is greater than \\377"); +} + +static +void addEscapedHex(ComponentSequence *currentSeq, unichar accum, + const ParseMode &mode) { + addEscaped(currentSeq, accum, mode, + "Hexadecimal value is greater than \\xFF"); +} + +#define SLASH_C_ERROR "\\c must be followed by an ASCII character" + +static +u8 decodeCtrl(char raw) { + if (raw & 0x80) { + throw LocatedParseError(SLASH_C_ERROR); + } + return mytoupper(raw) ^ 0x40; +} + +static +unichar readUtf8CodePoint2c(const char *s) { + auto *ts = (const u8 *)s; + assert(ts[0] >= 0xc0 && ts[0] < 0xe0); + assert(ts[1] >= 0x80 && ts[1] < 0xc0); + unichar val = ts[0] & 0x1f; + val <<= 6; + val |= ts[1] & 0x3f; + DEBUG_PRINTF("utf8 %02hhx %02hhx ->\\x{%x}\n", ts[0], + ts[1], val); + return val; +} + +static +unichar readUtf8CodePoint3c(const char *s) { + auto *ts = (const u8 *)s; + assert(ts[0] >= 0xe0 && ts[0] < 0xf0); + assert(ts[1] >= 0x80 && ts[1] < 0xc0); + assert(ts[2] >= 0x80 && ts[2] < 0xc0); + unichar val = ts[0] & 0x0f; + val <<= 6; + val |= ts[1] & 0x3f; + val <<= 6; + val |= ts[2] & 0x3f; + DEBUG_PRINTF("utf8 %02hhx %02hhx %02hhx ->\\x{%x}\n", ts[0], + ts[1], ts[2], val); + return val; +} + +static +unichar readUtf8CodePoint4c(const char *s) { + auto *ts = (const u8 *)s; + assert(ts[0] >= 0xf0 && ts[0] < 0xf8); + assert(ts[1] >= 0x80 && ts[1] < 0xc0); + assert(ts[2] >= 0x80 && ts[2] < 0xc0); + assert(ts[3] >= 0x80 && ts[3] < 0xc0); + unichar val = ts[0] & 0x07; + val <<= 6; + val |= ts[1] & 0x3f; + val <<= 6; + val |= ts[2] & 0x3f; + val <<= 6; + val |= ts[3] & 0x3f; + DEBUG_PRINTF("utf8 %02hhx %02hhx %02hhx %02hhx ->\\x{%x}\n", ts[0], + ts[1], ts[2], ts[3], val); + return val; +} + + +#line 1909 "Parser.rl" + + + +#line 281 "Parser.cpp" +static const short _regex_actions[] = { + 0, 1, 0, 1, 1, 1, 2, 1, + 3, 1, 4, 1, 7, 1, 8, 1, + 9, 1, 10, 1, 11, 1, 12, 1, + 13, 1, 15, 1, 16, 1, 17, 1, + 18, 1, 19, 1, 20, 1, 21, 1, + 22, 1, 23, 1, 24, 1, 25, 1, + 26, 1, 27, 1, 28, 1, 29, 1, + 30, 1, 31, 1, 32, 1, 33, 1, + 34, 1, 35, 1, 36, 1, 37, 1, + 38, 1, 39, 1, 40, 1, 41, 1, + 42, 1, 43, 1, 44, 1, 45, 1, + 46, 1, 47, 1, 48, 1, 49, 1, + 50, 1, 51, 1, 52, 1, 53, 1, + 54, 1, 55, 1, 56, 1, 57, 1, + 58, 1, 59, 1, 60, 1, 61, 1, + 62, 1, 63, 1, 64, 1, 65, 1, + 66, 1, 67, 1, 68, 1, 69, 1, + 70, 1, 71, 1, 72, 1, 73, 1, + 74, 1, 75, 1, 76, 1, 77, 1, + 78, 1, 79, 1, 80, 1, 81, 1, + 82, 1, 83, 1, 84, 1, 85, 1, + 86, 1, 87, 1, 88, 1, 89, 1, + 90, 1, 91, 1, 92, 1, 93, 1, + 94, 1, 95, 1, 96, 1, 97, 1, + 98, 1, 99, 1, 100, 1, 101, 1, + 102, 1, 103, 1, 104, 1, 105, 1, + 106, 1, 107, 1, 108, 1, 109, 1, + 110, 1, 111, 1, 112, 1, 113, 1, + 114, 1, 115, 1, 116, 1, 117, 1, + 118, 1, 119, 1, 120, 1, 121, 1, + 122, 1, 123, 1, 124, 1, 125, 1, + 126, 1, 127, 1, 128, 1, 129, 1, + 130, 1, 131, 1, 132, 1, 133, 1, + 134, 1, 135, 1, 136, 1, 137, 1, + 138, 1, 139, 1, 140, 1, 141, 1, + 142, 1, 143, 1, 144, 1, 145, 1, + 146, 1, 147, 1, 148, 1, 149, 1, + 150, 1, 151, 1, 152, 1, 153, 1, + 154, 1, 155, 1, 156, 1, 157, 1, + 158, 1, 159, 1, 160, 1, 161, 1, + 162, 1, 163, 1, 164, 1, 165, 1, + 166, 1, 167, 1, 168, 1, 169, 1, + 170, 1, 171, 1, 172, 1, 173, 1, + 174, 1, 175, 1, 176, 1, 177, 1, + 178, 1, 179, 1, 180, 1, 181, 1, + 182, 1, 183, 1, 184, 1, 185, 1, + 186, 1, 187, 1, 188, 1, 189, 1, + 190, 1, 191, 1, 192, 1, 193, 1, + 194, 1, 195, 1, 196, 1, 197, 1, + 198, 1, 199, 1, 200, 1, 201, 1, + 202, 1, 203, 1, 204, 1, 205, 1, + 206, 1, 207, 1, 208, 1, 209, 1, + 210, 1, 211, 1, 212, 1, 213, 1, + 214, 1, 215, 1, 216, 1, 217, 1, + 218, 1, 219, 1, 220, 1, 221, 1, + 222, 1, 223, 1, 224, 1, 225, 1, + 226, 1, 227, 1, 228, 1, 229, 1, + 230, 1, 231, 1, 232, 1, 233, 1, + 234, 1, 235, 1, 236, 1, 237, 1, + 240, 1, 242, 1, 243, 1, 244, 1, + 245, 1, 246, 1, 247, 1, 248, 1, + 249, 1, 250, 1, 251, 1, 252, 1, + 253, 1, 254, 1, 255, 1, 256, 1, + 257, 1, 258, 1, 259, 1, 260, 1, + 261, 1, 262, 1, 263, 1, 264, 1, + 265, 1, 266, 1, 267, 1, 268, 1, + 269, 1, 270, 1, 271, 1, 272, 1, + 273, 1, 274, 1, 275, 1, 276, 1, + 277, 1, 278, 1, 279, 1, 280, 1, + 281, 1, 282, 1, 283, 1, 284, 1, + 285, 1, 286, 1, 287, 1, 288, 1, + 289, 1, 290, 1, 291, 1, 292, 1, + 293, 1, 294, 1, 295, 1, 296, 1, + 297, 1, 298, 1, 299, 1, 300, 1, + 301, 1, 302, 1, 303, 1, 307, 1, + 308, 1, 309, 1, 310, 1, 311, 1, + 312, 1, 313, 1, 314, 1, 315, 1, + 316, 1, 317, 1, 318, 1, 319, 1, + 320, 1, 321, 1, 322, 1, 323, 1, + 324, 1, 325, 1, 326, 1, 327, 1, + 328, 1, 329, 1, 330, 1, 331, 1, + 332, 1, 333, 1, 334, 1, 335, 1, + 336, 1, 337, 1, 338, 1, 342, 1, + 343, 1, 344, 1, 345, 1, 346, 1, + 347, 1, 348, 1, 349, 1, 350, 1, + 352, 1, 353, 1, 354, 1, 355, 1, + 356, 1, 357, 1, 358, 1, 359, 1, + 360, 1, 361, 1, 362, 1, 363, 1, + 364, 1, 365, 1, 366, 1, 367, 1, + 368, 1, 369, 1, 370, 1, 371, 1, + 372, 1, 373, 1, 374, 1, 375, 1, + 376, 1, 377, 1, 378, 1, 379, 1, + 380, 1, 381, 1, 382, 1, 383, 1, + 384, 1, 385, 1, 386, 1, 387, 1, + 388, 1, 389, 1, 390, 1, 391, 1, + 392, 1, 393, 1, 394, 1, 395, 1, + 396, 1, 397, 1, 398, 1, 399, 1, + 400, 1, 401, 1, 402, 1, 403, 1, + 404, 1, 405, 1, 406, 1, 407, 1, + 408, 1, 409, 1, 410, 1, 411, 1, + 412, 1, 413, 1, 414, 1, 415, 1, + 416, 1, 417, 1, 418, 1, 419, 1, + 420, 1, 421, 1, 422, 1, 423, 1, + 424, 1, 425, 1, 426, 1, 427, 1, + 428, 1, 429, 1, 430, 1, 431, 1, + 432, 1, 433, 1, 434, 1, 435, 1, + 436, 2, 3, 0, 2, 4, 5, 2, + 5, 1, 2, 9, 10, 2, 9, 238, + 2, 9, 239, 2, 9, 339, 2, 10, + 1, 2, 10, 340, 2, 10, 341, 2, + 11, 241, 2, 11, 351, 2, 12, 241, + 2, 12, 351, 2, 13, 241, 2, 13, + 351, 2, 14, 375, 2, 14, 376, 2, + 25, 0, 2, 25, 3, 2, 25, 6, + 2, 25, 14, 3, 25, 5, 306, 3, + 25, 10, 305, 3, 25, 14, 15, 4, + 25, 9, 304, 10 +}; + +static const char _regex_cond_offsets[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, + 18, 19, 20, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 27, 28, 29, 31, 31, 36, + 36, 37, 38, 39, 44, 44, 45, 46, + 47, 47 +}; + +static const char _regex_cond_lengths[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 2, 0, 5, 0, + 1, 1, 1, 5, 0, 1, 1, 1, + 0, 0 +}; + +static const short _regex_cond_keys[] = { + -128, -65, -128, -65, -128, -65, -128, -65, + -128, -65, -128, -65, -128, -65, -128, -65, + -128, -65, -128, -65, -128, -65, -128, -65, + -128, -65, -64, -33, -32, -17, -16, -9, + -8, -1, 35, 35, -128, -65, -128, -65, + -128, -65, -128, -65, -64, -33, -32, -17, + -16, -9, -8, -1, -128, -65, -128, -65, + -128, -65, 93, 93, 94, 94, -128, -65, + -64, -33, -32, -17, -16, -9, -8, -1, + -128, -65, -128, -65, -128, -65, -128, -65, + -64, -33, -32, -17, -16, -9, -8, -1, + -128, -65, -128, -65, -128, -65, 0 +}; + +static const char _regex_cond_spaces[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static const short _regex_key_offsets[] = { + 0, 0, 1, 23, 31, 39, 46, 54, + 55, 63, 71, 79, 86, 94, 97, 99, + 108, 115, 123, 131, 134, 140, 148, 151, + 158, 165, 173, 180, 184, 191, 194, 197, + 199, 202, 205, 207, 210, 213, 215, 216, + 218, 219, 227, 229, 232, 235, 236, 244, + 252, 260, 268, 275, 283, 290, 298, 305, + 313, 315, 318, 325, 329, 332, 335, 337, + 339, 341, 342, 344, 345, 347, 349, 350, + 351, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 369, + 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 392, 393, 394, + 395, 396, 397, 399, 400, 401, 402, 403, + 404, 405, 406, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 429, + 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 561, + 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 631, + 632, 633, 634, 635, 636, 637, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 650, + 651, 652, 653, 654, 655, 656, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 704, 705, 706, 707, 708, + 709, 710, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 749, 750, 752, + 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, + 769, 770, 771, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, + 786, 787, 788, 789, 790, 791, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, + 802, 803, 805, 806, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 820, + 822, 823, 824, 825, 826, 827, 828, 829, + 830, 833, 834, 835, 836, 837, 838, 839, + 840, 841, 842, 843, 844, 845, 846, 847, + 849, 850, 851, 853, 854, 855, 856, 857, + 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 880, 883, 885, 900, + 903, 906, 908, 922, 927, 932, 936, 940, + 943, 946, 950, 954, 957, 960, 964, 968, + 972, 975, 978, 982, 986, 990, 994, 997, + 1000, 1004, 1008, 1012, 1016, 1019, 1022, 1026, + 1030, 1034, 1038, 1041, 1044, 1048, 1052, 1056, + 1060, 1063, 1066, 1070, 1074, 1078, 1082, 1085, + 1088, 1093, 1097, 1101, 1105, 1108, 1111, 1115, + 1119, 1123, 1126, 1129, 1133, 1137, 1141, 1145, + 1148, 1151, 1155, 1159, 1163, 1167, 1170, 1173, + 1177, 1181, 1185, 1188, 1191, 1195, 1199, 1203, + 1207, 1211, 1214, 1217, 1222, 1227, 1231, 1235, + 1238, 1241, 1245, 1249, 1252, 1255, 1259, 1263, + 1267, 1270, 1273, 1277, 1281, 1285, 1289, 1292, + 1295, 1299, 1303, 1307, 1311, 1314, 1317, 1321, + 1325, 1329, 1333, 1336, 1339, 1343, 1347, 1351, + 1355, 1358, 1361, 1365, 1369, 1373, 1377, 1380, + 1383, 1388, 1392, 1396, 1400, 1403, 1406, 1410, + 1414, 1418, 1421, 1424, 1428, 1432, 1436, 1440, + 1443, 1446, 1450, 1454, 1458, 1462, 1465, 1468, + 1472, 1476, 1480, 1483, 1486, 1490, 1494, 1498, + 1502, 1506, 1509, 1512, 1515, 1518, 1520, 1522, + 1525, 1532, 1534, 1536, 1538, 1540, 1542, 1544, + 1546, 1548, 1550, 1584, 1586, 1593, 1600, 1614, + 1616, 1622, 1625, 1634, 1635, 1638, 1641, 1648, + 1650, 1652, 1654, 1657, 1702, 1704, 1706, 1710, + 1714, 1716, 1717, 1717, 1723, 1725, 1727, 1729, + 1731, 1734, 1735, 1736, 1743, 1749, 1755, 1757, + 1759, 1761, 1763, 1765, 1767, 1768, 1771, 1794, + 1797, 1802, 1811, 1813, 1814, 1816, 1821, 1824, + 1826, 1828, 1829, 1831, 1841, 1847, 1848, 1853, + 1857, 1865, 1867, 1876, 1880, 1881, 1882, 1886, + 1887, 1890, 1890, 1897, 1913, 1916, 1955, 1957, + 1959, 1961, 1963, 1964, 1964, 1965, 1966, 1973, + 1979, 1985, 1987, 1989, 1991, 2000, 2002, 2015, + 2016, 2018, 2020, 2022, 2035, 2036, 2038, 2040, + 2042, 2043 +}; + +static const short _regex_trans_keys[] = { + 41, 33, 35, 38, 39, 40, 41, 43, + 45, 58, 60, 61, 62, 63, 67, 80, + 105, 109, 115, 120, 123, 48, 57, 41, + 95, 48, 57, 65, 90, 97, 122, 39, + 95, 48, 57, 65, 90, 97, 122, 95, + 48, 57, 65, 90, 97, 122, 39, 95, + 48, 57, 65, 90, 97, 122, 41, 41, + 95, 48, 57, 65, 90, 97, 122, 41, + 95, 48, 57, 65, 90, 97, 122, 41, + 95, 48, 57, 65, 90, 97, 122, 95, + 48, 57, 65, 90, 97, 122, 62, 95, + 48, 57, 65, 90, 97, 122, 33, 60, + 61, 33, 61, 38, 41, 95, 48, 57, + 65, 90, 97, 122, 95, 48, 57, 65, + 90, 97, 122, 41, 95, 48, 57, 65, + 90, 97, 122, 41, 95, 48, 57, 65, + 90, 97, 122, 41, 48, 57, 41, 58, + 105, 109, 115, 120, 62, 95, 48, 57, + 65, 90, 97, 122, 41, 48, 57, 95, + 48, 57, 65, 90, 97, 122, 95, 48, + 57, 65, 90, 97, 122, 41, 95, 48, + 57, 65, 90, 97, 122, 95, 48, 57, + 65, 90, 97, 122, 105, 109, 115, 120, + 41, 45, 58, 105, 109, 115, 120, 46, + 92, 93, 46, 92, 93, 46, 92, 58, + 92, 93, 58, 92, 93, 58, 92, 61, + 92, 93, 61, 92, 93, 61, 92, 39, + 48, 57, 62, 45, 95, 48, 57, 65, + 90, 97, 122, 48, 57, 125, 48, 57, + 125, 48, 57, 125, 95, 125, 48, 57, + 65, 90, 97, 122, 95, 125, 48, 57, + 65, 90, 97, 122, 95, 125, 48, 57, + 65, 90, 97, 122, 95, 125, 48, 57, + 65, 90, 97, 122, 95, 48, 57, 65, + 90, 97, 122, 39, 95, 48, 57, 65, + 90, 97, 122, 95, 48, 57, 65, 90, + 97, 122, 62, 95, 48, 57, 65, 90, + 97, 122, 95, 48, 57, 65, 90, 97, + 122, 95, 125, 48, 57, 65, 90, 97, + 122, 48, 55, 125, 48, 55, 125, 48, + 57, 65, 70, 97, 102, 44, 125, 48, + 57, 125, 48, 57, 125, 48, 57, 384, + 447, 384, 447, 384, 447, 41, 41, 80, + 41, 41, 70, 41, 56, 41, 121, 97, + 109, 98, 105, 99, 101, 110, 105, 97, + 110, 101, 115, 116, 97, 110, 108, 109, + 116, 105, 110, 101, 115, 101, 117, 109, + 97, 107, 110, 103, 97, 108, 105, 112, + 111, 109, 111, 102, 111, 97, 104, 105, + 109, 105, 108, 108, 101, 103, 104, 105, + 110, 101, 115, 101, 105, 100, 110, 114, + 97, 100, 105, 97, 110, 95, 65, 98, + 111, 114, 105, 103, 105, 110, 97, 108, + 105, 97, 110, 97, 101, 109, 114, 111, + 107, 101, 101, 109, 111, 110, 116, 105, + 99, 110, 101, 105, 102, 111, 114, 109, + 112, 114, 114, 105, 111, 116, 105, 108, + 108, 105, 99, 115, 118, 101, 114, 101, + 116, 97, 110, 97, 103, 97, 114, 105, + 121, 112, 116, 105, 97, 110, 95, 72, + 105, 101, 114, 111, 103, 108, 121, 112, + 104, 115, 104, 105, 111, 112, 105, 99, + 111, 114, 103, 105, 97, 110, 97, 103, + 111, 108, 105, 116, 105, 99, 116, 104, + 105, 99, 101, 101, 107, 106, 114, 97, + 114, 97, 116, 105, 109, 117, 107, 104, + 105, 110, 117, 108, 110, 111, 111, 98, + 114, 101, 119, 114, 97, 103, 97, 110, + 97, 112, 101, 114, 105, 97, 108, 95, + 65, 114, 97, 109, 97, 105, 99, 104, + 115, 101, 114, 105, 116, 101, 100, 99, + 114, 105, 112, 116, 105, 111, 110, 97, + 108, 95, 80, 97, 104, 114, 108, 97, + 118, 105, 116, 104, 105, 97, 110, 118, + 97, 110, 101, 115, 101, 105, 110, 116, + 121, 116, 104, 105, 110, 97, 100, 97, + 97, 107, 97, 110, 97, 97, 104, 95, + 76, 105, 97, 109, 114, 111, 115, 104, + 116, 104, 105, 101, 114, 111, 116, 105, + 110, 112, 99, 104, 97, 109, 110, 115, + 98, 117, 101, 97, 114, 95, 66, 117, + 99, 100, 105, 97, 110, 105, 97, 110, + 108, 110, 97, 121, 97, 108, 97, 109, + 100, 97, 105, 99, 116, 101, 105, 95, + 77, 97, 121, 101, 107, 110, 103, 111, + 108, 105, 97, 110, 97, 110, 109, 97, + 114, 119, 95, 84, 97, 105, 95, 76, + 117, 101, 111, 104, 97, 109, 95, 100, + 67, 104, 105, 107, 105, 95, 73, 80, + 83, 84, 116, 97, 108, 105, 99, 101, + 114, 115, 105, 97, 110, 111, 117, 116, + 104, 95, 65, 114, 97, 98, 105, 97, + 110, 117, 114, 107, 105, 99, 105, 121, + 97, 109, 97, 110, 121, 97, 97, 111, + 103, 115, 95, 80, 97, 101, 110, 105, + 99, 105, 97, 110, 106, 97, 110, 103, + 110, 105, 99, 109, 117, 97, 114, 105, + 116, 97, 110, 114, 97, 115, 104, 116, + 114, 97, 97, 118, 105, 97, 110, 110, + 104, 97, 108, 97, 110, 100, 97, 110, + 101, 115, 101, 108, 114, 111, 116, 105, + 95, 78, 97, 103, 114, 105, 105, 97, + 99, 103, 105, 109, 97, 98, 108, 111, + 103, 97, 110, 119, 97, 95, 76, 84, + 86, 101, 104, 97, 109, 105, 101, 116, + 105, 108, 108, 117, 103, 117, 97, 97, + 105, 110, 97, 98, 102, 101, 116, 97, + 110, 105, 110, 97, 103, 104, 97, 114, + 105, 116, 105, 99, 105, 110, 115, 112, + 100, 123, 94, 125, 94, 46, 92, 93, + 46, 92, 93, 46, 92, 58, 92, 93, + 94, 97, 98, 99, 100, 103, 108, 112, + 115, 117, 119, 120, 58, 92, 93, 58, + 92, 93, 58, 92, 58, 92, 93, 97, + 98, 99, 100, 103, 108, 112, 115, 117, + 119, 120, 58, 92, 93, 108, 115, 58, + 92, 93, 110, 112, 58, 92, 93, 117, + 58, 92, 93, 109, 58, 92, 93, 58, + 92, 93, 58, 92, 93, 104, 58, 92, + 93, 97, 58, 92, 93, 58, 92, 93, + 58, 92, 93, 99, 58, 92, 93, 105, + 58, 92, 93, 105, 58, 92, 93, 58, + 92, 93, 58, 92, 93, 108, 58, 92, + 93, 97, 58, 92, 93, 110, 58, 92, + 93, 107, 58, 92, 93, 58, 92, 93, + 58, 92, 93, 110, 58, 92, 93, 116, + 58, 92, 93, 114, 58, 92, 93, 108, + 58, 92, 93, 58, 92, 93, 58, 92, + 93, 105, 58, 92, 93, 103, 58, 92, + 93, 105, 58, 92, 93, 116, 58, 92, + 93, 58, 92, 93, 58, 92, 93, 114, + 58, 92, 93, 97, 58, 92, 93, 112, + 58, 92, 93, 104, 58, 92, 93, 58, + 92, 93, 58, 92, 93, 111, 58, 92, + 93, 119, 58, 92, 93, 101, 58, 92, + 93, 114, 58, 92, 93, 58, 92, 93, + 58, 92, 93, 114, 117, 58, 92, 93, + 105, 58, 92, 93, 110, 58, 92, 93, + 116, 58, 92, 93, 58, 92, 93, 58, + 92, 93, 110, 58, 92, 93, 99, 58, + 92, 93, 116, 58, 92, 93, 58, 92, + 93, 58, 92, 93, 112, 58, 92, 93, + 97, 58, 92, 93, 99, 58, 92, 93, + 101, 58, 92, 93, 58, 92, 93, 58, + 92, 93, 112, 58, 92, 93, 112, 58, + 92, 93, 101, 58, 92, 93, 114, 58, + 92, 93, 58, 92, 93, 58, 92, 93, + 111, 58, 92, 93, 114, 58, 92, 93, + 100, 58, 92, 93, 58, 92, 93, 58, + 92, 93, 100, 58, 92, 93, 105, 58, + 92, 93, 103, 58, 92, 93, 105, 58, + 92, 93, 116, 58, 92, 93, 58, 92, + 93, 58, 92, 93, 108, 115, 58, 92, + 93, 110, 112, 58, 92, 93, 117, 58, + 92, 93, 109, 58, 92, 93, 58, 92, + 93, 58, 92, 93, 104, 58, 92, 93, + 97, 58, 92, 93, 58, 92, 93, 58, + 92, 93, 99, 58, 92, 93, 105, 58, + 92, 93, 105, 58, 92, 93, 58, 92, + 93, 58, 92, 93, 108, 58, 92, 93, + 97, 58, 92, 93, 110, 58, 92, 93, + 107, 58, 92, 93, 58, 92, 93, 58, + 92, 93, 110, 58, 92, 93, 116, 58, + 92, 93, 114, 58, 92, 93, 108, 58, + 92, 93, 58, 92, 93, 58, 92, 93, + 105, 58, 92, 93, 103, 58, 92, 93, + 105, 58, 92, 93, 116, 58, 92, 93, + 58, 92, 93, 58, 92, 93, 114, 58, + 92, 93, 97, 58, 92, 93, 112, 58, + 92, 93, 104, 58, 92, 93, 58, 92, + 93, 58, 92, 93, 111, 58, 92, 93, + 119, 58, 92, 93, 101, 58, 92, 93, + 114, 58, 92, 93, 58, 92, 93, 58, + 92, 93, 114, 117, 58, 92, 93, 105, + 58, 92, 93, 110, 58, 92, 93, 116, + 58, 92, 93, 58, 92, 93, 58, 92, + 93, 110, 58, 92, 93, 99, 58, 92, + 93, 116, 58, 92, 93, 58, 92, 93, + 58, 92, 93, 112, 58, 92, 93, 97, + 58, 92, 93, 99, 58, 92, 93, 101, + 58, 92, 93, 58, 92, 93, 58, 92, + 93, 112, 58, 92, 93, 112, 58, 92, + 93, 101, 58, 92, 93, 114, 58, 92, + 93, 58, 92, 93, 58, 92, 93, 111, + 58, 92, 93, 114, 58, 92, 93, 100, + 58, 92, 93, 58, 92, 93, 58, 92, + 93, 100, 58, 92, 93, 105, 58, 92, + 93, 103, 58, 92, 93, 105, 58, 92, + 93, 116, 58, 92, 93, 58, 92, 93, + 61, 92, 93, 61, 92, 93, 61, 92, + 48, 55, 125, 48, 55, 125, 48, 57, + 65, 70, 97, 102, 384, 447, 384, 447, + 384, 447, 384, 447, 384, 447, 384, 447, + 384, 447, 384, 447, 384, 447, 0, 32, + 36, 40, 41, 42, 43, 46, 63, 91, + 92, 94, 123, 124, 1315, 1571, 1, 8, + 9, 13, 14, 34, 37, 255, 384, 447, + 448, 479, 480, 495, 496, 503, 504, 511, + 42, 63, 95, 48, 57, 65, 90, 97, + 122, 95, 48, 57, 65, 90, 97, 122, + 39, 48, 60, 63, 82, 95, 49, 55, + 56, 57, 65, 90, 97, 122, 48, 57, + 105, 109, 115, 120, 48, 57, 41, 48, + 57, 33, 61, 95, 48, 57, 65, 90, + 97, 122, 123, 41, 48, 57, 60, 61, + 62, 41, 45, 58, 105, 109, 115, 120, + 43, 63, 43, 63, 43, 63, 46, 58, + 61, 48, 65, 66, 67, 68, 69, 71, + 72, 75, 76, 78, 80, 81, 82, 83, + 85, 86, 87, 88, 90, 97, 98, 99, + 100, 101, 102, 103, 104, 107, 108, 110, + 111, 112, 114, 115, 116, 117, 118, 119, + 120, 122, 49, 55, 56, 57, 48, 55, + 48, 55, 48, 55, 56, 57, 48, 55, + 56, 57, 48, 57, 123, 39, 45, 60, + 123, 48, 57, 48, 57, 48, 57, 48, + 57, 48, 57, 39, 60, 123, 123, 123, + 123, 48, 57, 65, 70, 97, 102, 48, + 57, 65, 70, 97, 102, 48, 57, 65, + 70, 97, 102, 48, 57, 43, 63, 384, + 447, 384, 447, 384, 447, 41, 85, 41, + 41, 67, 84, 65, 66, 67, 68, 69, + 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 82, 83, 84, 85, 86, 88, + 89, 90, 110, 114, 118, 97, 101, 111, + 114, 117, 97, 99, 102, 104, 110, 111, + 115, 117, 121, 109, 112, 101, 103, 116, + 101, 108, 111, 114, 117, 97, 101, 105, + 103, 117, 109, 110, 97, 97, 104, 38, + 97, 101, 105, 108, 109, 111, 116, 117, + 121, 97, 99, 101, 110, 111, 121, 101, + 100, 101, 107, 108, 111, 103, 108, 114, + 115, 99, 100, 101, 102, 104, 105, 111, + 115, 101, 117, 97, 99, 104, 105, 107, + 109, 111, 117, 121, 97, 101, 104, 105, + 103, 97, 97, 112, 115, 119, 105, 108, + 112, 115, 67, 76, 77, 78, 80, 83, + 90, 45, 91, 92, 93, 0, 255, 384, + 447, 448, 479, 480, 495, 496, 503, 504, + 511, 46, 58, 61, 48, 68, 69, 72, + 76, 78, 80, 81, 83, 85, 86, 87, + 97, 98, 99, 100, 101, 102, 103, 104, + 108, 110, 111, 112, 114, 115, 116, 117, + 118, 119, 120, 49, 55, 56, 57, 65, + 90, 105, 122, 48, 55, 48, 55, 48, + 55, 48, 55, 123, 123, 123, 123, 48, + 57, 65, 70, 97, 102, 48, 57, 65, + 70, 97, 102, 48, 57, 65, 70, 97, + 102, 384, 447, 384, 447, 384, 447, 92, + 1117, 1118, -128, 91, 95, 127, 861, 862, + 69, 81, 92, 0, 255, 384, 447, 448, + 479, 480, 495, 496, 503, 504, 511, 69, + 384, 447, 384, 447, 384, 447, 92, 0, + 255, 384, 447, 448, 479, 480, 495, 496, + 503, 504, 511, 69, 384, 447, 384, 447, + 384, 447, 41, 10, 0 +}; + +static const char _regex_single_lengths[] = { + 0, 1, 20, 2, 2, 1, 2, 1, + 2, 2, 2, 1, 2, 3, 2, 3, + 1, 2, 2, 1, 6, 2, 1, 1, + 1, 2, 1, 4, 7, 3, 3, 2, + 3, 3, 2, 3, 3, 2, 1, 0, + 1, 2, 0, 1, 1, 1, 2, 2, + 2, 2, 1, 2, 1, 2, 1, 2, + 0, 1, 1, 2, 1, 1, 0, 0, + 0, 1, 2, 1, 2, 2, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 2, 15, 3, + 3, 2, 14, 5, 5, 4, 4, 3, + 3, 4, 4, 3, 3, 4, 4, 4, + 3, 3, 4, 4, 4, 4, 3, 3, + 4, 4, 4, 4, 3, 3, 4, 4, + 4, 4, 3, 3, 4, 4, 4, 4, + 3, 3, 4, 4, 4, 4, 3, 3, + 5, 4, 4, 4, 3, 3, 4, 4, + 4, 3, 3, 4, 4, 4, 4, 3, + 3, 4, 4, 4, 4, 3, 3, 4, + 4, 4, 3, 3, 4, 4, 4, 4, + 4, 3, 3, 5, 5, 4, 4, 3, + 3, 4, 4, 3, 3, 4, 4, 4, + 3, 3, 4, 4, 4, 4, 3, 3, + 4, 4, 4, 4, 3, 3, 4, 4, + 4, 4, 3, 3, 4, 4, 4, 4, + 3, 3, 4, 4, 4, 4, 3, 3, + 5, 4, 4, 4, 3, 3, 4, 4, + 4, 3, 3, 4, 4, 4, 4, 3, + 3, 4, 4, 4, 4, 3, 3, 4, + 4, 4, 3, 3, 4, 4, 4, 4, + 4, 3, 3, 3, 3, 2, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 2, 1, 1, 6, 0, + 4, 1, 3, 1, 1, 3, 7, 2, + 2, 2, 3, 41, 0, 0, 0, 0, + 0, 1, 0, 4, 0, 0, 0, 0, + 3, 1, 1, 1, 0, 0, 0, 2, + 0, 0, 0, 2, 1, 3, 23, 3, + 5, 9, 2, 1, 2, 5, 3, 2, + 2, 1, 2, 10, 6, 1, 5, 4, + 8, 2, 9, 4, 1, 1, 4, 1, + 3, 0, 7, 4, 3, 31, 0, 0, + 0, 0, 1, 0, 1, 1, 1, 0, + 0, 0, 0, 0, 3, 2, 1, 1, + 0, 0, 0, 1, 1, 0, 0, 0, + 1, 1 +}; + +static const char _regex_range_lengths[] = { + 0, 0, 1, 3, 3, 3, 3, 0, + 3, 3, 3, 3, 3, 0, 0, 3, + 3, 3, 3, 1, 0, 3, 1, 3, + 3, 3, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 3, 1, 1, 1, 0, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 3, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 9, 0, 3, 3, 4, 1, + 1, 1, 3, 0, 1, 0, 0, 0, + 0, 0, 0, 2, 1, 1, 2, 2, + 1, 0, 0, 1, 1, 1, 1, 1, + 0, 0, 0, 3, 3, 3, 1, 0, + 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 4, 1, 1, + 1, 1, 0, 0, 0, 0, 3, 3, + 3, 1, 1, 1, 3, 0, 6, 0, + 1, 1, 1, 6, 0, 1, 1, 1, + 0, 0 +}; + +static const short _regex_index_offsets[] = { + 0, 0, 2, 24, 30, 36, 41, 47, + 49, 55, 61, 67, 72, 78, 82, 85, + 92, 97, 103, 109, 112, 119, 125, 128, + 133, 138, 144, 149, 154, 162, 166, 170, + 173, 177, 181, 184, 188, 192, 195, 197, + 199, 201, 207, 209, 212, 215, 217, 223, + 229, 235, 241, 246, 252, 257, 263, 268, + 274, 276, 279, 284, 288, 291, 294, 296, + 298, 300, 302, 305, 307, 310, 313, 315, + 317, 320, 322, 324, 326, 328, 330, 332, + 334, 336, 338, 340, 342, 344, 346, 350, + 352, 354, 356, 358, 360, 362, 364, 366, + 368, 370, 372, 374, 376, 378, 380, 382, + 384, 386, 388, 390, 392, 395, 397, 399, + 401, 403, 405, 408, 410, 412, 414, 416, + 418, 420, 422, 425, 427, 429, 431, 433, + 435, 437, 439, 441, 443, 445, 447, 449, + 451, 453, 455, 457, 459, 461, 463, 466, + 468, 470, 472, 474, 476, 478, 480, 482, + 484, 486, 488, 490, 492, 494, 496, 498, + 500, 502, 504, 507, 509, 511, 513, 515, + 517, 519, 521, 523, 525, 528, 530, 532, + 534, 536, 538, 540, 542, 544, 546, 548, + 550, 552, 554, 556, 558, 560, 562, 564, + 566, 568, 570, 572, 574, 576, 578, 580, + 582, 584, 586, 588, 590, 592, 594, 596, + 598, 600, 602, 604, 606, 608, 610, 612, + 614, 616, 618, 620, 622, 624, 626, 628, + 630, 632, 634, 636, 638, 640, 643, 645, + 647, 649, 651, 653, 655, 657, 659, 661, + 663, 665, 667, 669, 671, 673, 675, 677, + 679, 681, 683, 685, 687, 689, 691, 693, + 695, 697, 699, 701, 703, 705, 707, 709, + 711, 713, 715, 717, 719, 721, 723, 726, + 728, 730, 732, 734, 736, 738, 740, 742, + 744, 746, 748, 750, 752, 754, 756, 758, + 760, 762, 764, 767, 769, 771, 773, 775, + 777, 779, 781, 783, 785, 787, 789, 791, + 793, 795, 797, 802, 804, 806, 808, 810, + 812, 814, 816, 818, 820, 822, 824, 826, + 828, 830, 832, 834, 836, 839, 841, 843, + 845, 847, 849, 851, 853, 855, 857, 860, + 862, 864, 866, 868, 870, 872, 876, 878, + 880, 882, 884, 886, 888, 890, 892, 895, + 897, 899, 901, 903, 905, 907, 910, 912, + 914, 916, 918, 920, 922, 924, 926, 928, + 930, 932, 934, 936, 938, 940, 942, 944, + 946, 948, 950, 952, 954, 956, 958, 960, + 962, 964, 966, 968, 970, 972, 974, 976, + 978, 980, 982, 984, 986, 988, 990, 992, + 994, 996, 998, 1001, 1003, 1005, 1007, 1009, + 1011, 1013, 1018, 1020, 1022, 1024, 1026, 1028, + 1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044, + 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, + 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, + 1078, 1080, 1082, 1084, 1086, 1088, 1090, 1093, + 1095, 1097, 1099, 1101, 1103, 1105, 1107, 1109, + 1111, 1113, 1115, 1117, 1119, 1121, 1123, 1125, + 1127, 1129, 1131, 1134, 1136, 1138, 1140, 1142, + 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, + 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, + 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, + 1192, 1194, 1197, 1199, 1201, 1203, 1205, 1207, + 1209, 1211, 1213, 1215, 1217, 1219, 1221, 1225, + 1228, 1230, 1232, 1234, 1236, 1238, 1240, 1242, + 1244, 1248, 1250, 1252, 1254, 1256, 1258, 1260, + 1262, 1264, 1266, 1268, 1270, 1272, 1274, 1276, + 1279, 1281, 1283, 1286, 1288, 1290, 1292, 1294, + 1296, 1298, 1300, 1302, 1304, 1306, 1308, 1310, + 1312, 1314, 1316, 1318, 1320, 1322, 1324, 1326, + 1328, 1330, 1332, 1334, 1338, 1342, 1345, 1361, + 1365, 1369, 1372, 1387, 1393, 1399, 1404, 1409, + 1413, 1417, 1422, 1427, 1431, 1435, 1440, 1445, + 1450, 1454, 1458, 1463, 1468, 1473, 1478, 1482, + 1486, 1491, 1496, 1501, 1506, 1510, 1514, 1519, + 1524, 1529, 1534, 1538, 1542, 1547, 1552, 1557, + 1562, 1566, 1570, 1575, 1580, 1585, 1590, 1594, + 1598, 1604, 1609, 1614, 1619, 1623, 1627, 1632, + 1637, 1642, 1646, 1650, 1655, 1660, 1665, 1670, + 1674, 1678, 1683, 1688, 1693, 1698, 1702, 1706, + 1711, 1716, 1721, 1725, 1729, 1734, 1739, 1744, + 1749, 1754, 1758, 1762, 1768, 1774, 1779, 1784, + 1788, 1792, 1797, 1802, 1806, 1810, 1815, 1820, + 1825, 1829, 1833, 1838, 1843, 1848, 1853, 1857, + 1861, 1866, 1871, 1876, 1881, 1885, 1889, 1894, + 1899, 1904, 1909, 1913, 1917, 1922, 1927, 1932, + 1937, 1941, 1945, 1950, 1955, 1960, 1965, 1969, + 1973, 1979, 1984, 1989, 1994, 1998, 2002, 2007, + 2012, 2017, 2021, 2025, 2030, 2035, 2040, 2045, + 2049, 2053, 2058, 2063, 2068, 2073, 2077, 2081, + 2086, 2091, 2096, 2100, 2104, 2109, 2114, 2119, + 2124, 2129, 2133, 2137, 2141, 2145, 2148, 2150, + 2153, 2158, 2160, 2162, 2164, 2166, 2168, 2170, + 2172, 2174, 2176, 2202, 2205, 2210, 2215, 2226, + 2228, 2234, 2237, 2244, 2246, 2249, 2253, 2261, + 2264, 2267, 2270, 2274, 2318, 2320, 2322, 2325, + 2328, 2330, 2332, 2333, 2339, 2341, 2343, 2345, + 2347, 2351, 2353, 2355, 2360, 2364, 2368, 2370, + 2373, 2375, 2377, 2379, 2382, 2384, 2388, 2412, + 2416, 2422, 2432, 2435, 2437, 2440, 2446, 2450, + 2453, 2456, 2458, 2461, 2472, 2479, 2481, 2487, + 2492, 2501, 2504, 2514, 2519, 2521, 2523, 2528, + 2530, 2534, 2535, 2543, 2554, 2558, 2594, 2596, + 2598, 2600, 2602, 2604, 2605, 2607, 2609, 2614, + 2618, 2622, 2624, 2626, 2628, 2635, 2638, 2646, + 2648, 2650, 2652, 2654, 2662, 2664, 2666, 2668, + 2670, 2672 +}; + +static const short _regex_indicies[] = { + 0, 1, 3, 4, 5, 6, 7, 8, + 9, 10, 12, 13, 14, 15, 16, 17, + 18, 19, 19, 19, 19, 20, 11, 2, + 22, 23, 23, 23, 23, 21, 24, 25, + 25, 25, 25, 21, 27, 27, 27, 27, + 26, 28, 27, 27, 27, 27, 26, 29, + 26, 29, 30, 30, 30, 30, 26, 31, + 30, 32, 30, 30, 26, 29, 30, 32, + 30, 30, 26, 33, 33, 33, 33, 26, + 28, 33, 33, 33, 33, 26, 34, 35, + 36, 26, 37, 38, 26, 39, 40, 30, + 41, 30, 30, 26, 42, 42, 42, 42, + 26, 40, 42, 42, 42, 42, 26, 40, + 30, 41, 30, 30, 26, 43, 44, 21, + 45, 46, 47, 47, 47, 47, 21, 24, + 48, 48, 48, 48, 21, 49, 50, 21, + 48, 48, 48, 48, 21, 51, 51, 51, + 51, 21, 52, 51, 51, 51, 51, 21, + 23, 23, 23, 23, 21, 47, 47, 47, + 47, 21, 45, 53, 46, 54, 54, 54, + 54, 21, 57, 58, 55, 56, 57, 58, + 59, 56, 57, 58, 56, 61, 62, 55, + 60, 61, 62, 63, 60, 61, 62, 60, + 65, 66, 55, 64, 65, 66, 59, 64, + 65, 66, 64, 69, 68, 70, 67, 69, + 71, 72, 74, 73, 74, 74, 67, 75, + 67, 77, 76, 67, 77, 78, 67, 77, + 67, 74, 80, 79, 74, 74, 67, 74, + 80, 81, 74, 74, 67, 74, 80, 74, + 74, 74, 67, 74, 82, 74, 74, 74, + 67, 84, 84, 84, 84, 83, 85, 84, + 84, 84, 84, 83, 86, 86, 86, 86, + 83, 87, 86, 86, 86, 86, 83, 88, + 88, 88, 88, 83, 88, 89, 88, 88, + 88, 83, 91, 90, 92, 91, 90, 95, + 94, 94, 94, 93, 97, 99, 98, 96, + 101, 100, 96, 102, 100, 96, 104, 103, + 105, 103, 106, 103, 109, 108, 109, 110, + 108, 111, 108, 109, 112, 108, 113, 114, + 108, 115, 108, 117, 116, 118, 119, 116, + 120, 116, 121, 116, 122, 116, 123, 116, + 124, 116, 125, 116, 126, 116, 127, 116, + 128, 116, 129, 116, 130, 116, 131, 116, + 132, 116, 133, 134, 135, 116, 136, 116, + 137, 116, 138, 116, 139, 116, 140, 116, + 141, 116, 142, 116, 143, 116, 144, 116, + 145, 116, 146, 116, 147, 116, 148, 116, + 149, 116, 150, 116, 151, 116, 152, 116, + 153, 116, 154, 116, 155, 116, 156, 116, + 157, 158, 116, 159, 116, 160, 116, 161, + 116, 162, 116, 163, 116, 164, 165, 116, + 166, 116, 167, 116, 168, 116, 169, 116, + 170, 116, 171, 116, 172, 116, 174, 175, + 173, 176, 173, 177, 173, 178, 173, 179, + 173, 180, 173, 181, 173, 182, 173, 183, + 173, 184, 173, 185, 173, 186, 173, 187, + 173, 188, 173, 189, 173, 190, 173, 191, + 173, 192, 173, 193, 173, 194, 173, 195, + 196, 173, 197, 173, 198, 173, 199, 173, + 200, 173, 201, 173, 202, 173, 204, 203, + 205, 203, 206, 203, 207, 203, 208, 203, + 209, 203, 210, 173, 211, 173, 212, 173, + 213, 173, 214, 173, 215, 173, 216, 173, + 217, 218, 173, 219, 173, 220, 173, 221, + 173, 222, 173, 223, 173, 224, 173, 225, + 173, 226, 173, 227, 173, 228, 229, 116, + 230, 116, 231, 116, 232, 116, 233, 116, + 234, 116, 235, 116, 236, 116, 237, 116, + 238, 116, 239, 116, 240, 116, 241, 116, + 242, 116, 243, 116, 244, 116, 245, 116, + 246, 116, 247, 116, 248, 116, 249, 116, + 250, 116, 251, 116, 252, 116, 253, 116, + 254, 116, 255, 116, 256, 116, 257, 116, + 258, 116, 259, 116, 260, 116, 261, 116, + 262, 116, 263, 116, 264, 116, 265, 116, + 266, 116, 267, 116, 268, 116, 269, 116, + 270, 116, 271, 116, 272, 116, 273, 116, + 274, 116, 275, 116, 276, 116, 277, 116, + 278, 116, 279, 116, 280, 116, 281, 116, + 282, 116, 283, 116, 284, 116, 285, 116, + 286, 287, 116, 288, 116, 289, 116, 290, + 116, 291, 116, 292, 116, 293, 116, 294, + 116, 295, 116, 296, 116, 297, 116, 298, + 116, 300, 299, 301, 299, 302, 299, 303, + 299, 304, 299, 305, 116, 306, 116, 307, + 116, 308, 116, 309, 116, 310, 116, 311, + 116, 312, 116, 313, 116, 314, 116, 315, + 116, 316, 116, 317, 116, 318, 116, 319, + 116, 320, 116, 321, 116, 322, 116, 323, + 116, 324, 116, 325, 116, 326, 116, 327, + 116, 328, 116, 329, 330, 116, 331, 116, + 332, 116, 333, 116, 334, 116, 335, 116, + 336, 116, 337, 116, 338, 116, 339, 116, + 340, 116, 341, 116, 342, 116, 343, 116, + 344, 116, 345, 116, 346, 116, 347, 116, + 348, 116, 349, 116, 350, 351, 116, 352, + 116, 353, 116, 354, 116, 355, 116, 356, + 116, 357, 116, 358, 116, 359, 116, 360, + 116, 361, 116, 362, 116, 363, 116, 364, + 116, 365, 116, 366, 116, 367, 368, 369, + 370, 116, 371, 116, 372, 116, 373, 116, + 374, 116, 375, 116, 376, 116, 377, 116, + 378, 116, 379, 116, 380, 116, 381, 116, + 382, 116, 383, 116, 384, 116, 385, 116, + 386, 116, 387, 116, 388, 389, 116, 390, + 116, 391, 116, 392, 116, 393, 116, 394, + 116, 395, 116, 396, 116, 397, 116, 398, + 116, 400, 401, 399, 402, 399, 403, 399, + 404, 399, 405, 399, 406, 399, 407, 399, + 408, 409, 410, 399, 411, 399, 412, 399, + 413, 399, 414, 399, 415, 399, 416, 399, + 417, 399, 418, 399, 419, 420, 399, 421, + 399, 422, 399, 423, 399, 424, 399, 425, + 399, 426, 399, 428, 429, 427, 430, 427, + 431, 427, 432, 427, 433, 427, 434, 427, + 435, 427, 436, 427, 437, 427, 438, 427, + 439, 427, 441, 440, 442, 440, 443, 440, + 444, 440, 445, 440, 446, 440, 447, 440, + 448, 440, 449, 440, 450, 427, 451, 427, + 452, 427, 453, 427, 454, 427, 455, 427, + 456, 427, 457, 427, 458, 427, 459, 427, + 460, 427, 461, 427, 463, 462, 464, 462, + 465, 462, 466, 462, 467, 462, 468, 462, + 469, 462, 470, 462, 471, 462, 472, 462, + 473, 116, 474, 116, 475, 116, 476, 477, + 116, 478, 116, 479, 116, 480, 116, 481, + 116, 482, 116, 483, 116, 484, 485, 486, + 487, 116, 488, 116, 489, 116, 490, 116, + 491, 116, 492, 116, 493, 116, 494, 116, + 495, 116, 496, 116, 497, 116, 498, 116, + 499, 116, 500, 116, 501, 116, 502, 116, + 503, 116, 504, 116, 505, 116, 506, 116, + 507, 116, 508, 116, 509, 116, 510, 116, + 511, 116, 512, 116, 513, 116, 514, 116, + 515, 116, 516, 116, 517, 116, 518, 116, + 519, 116, 520, 116, 521, 116, 522, 116, + 523, 116, 525, 526, 524, 527, 524, 528, + 524, 529, 524, 530, 524, 531, 524, 532, + 524, 533, 524, 534, 524, 535, 524, 536, + 524, 537, 524, 538, 524, 539, 116, 540, + 116, 541, 116, 542, 116, 543, 116, 544, + 116, 545, 116, 547, 548, 546, 549, 546, + 550, 546, 551, 546, 552, 546, 553, 546, + 554, 546, 555, 546, 556, 546, 557, 546, + 558, 546, 559, 546, 560, 546, 561, 546, + 562, 546, 563, 546, 564, 546, 565, 546, + 566, 546, 567, 546, 568, 546, 569, 546, + 570, 546, 571, 546, 572, 546, 573, 546, + 574, 546, 575, 546, 576, 546, 577, 546, + 578, 546, 579, 580, 546, 581, 546, 582, + 546, 583, 546, 584, 546, 585, 546, 586, + 546, 587, 546, 588, 546, 589, 546, 590, + 546, 591, 546, 592, 546, 593, 594, 595, + 116, 596, 597, 116, 598, 116, 599, 116, + 600, 116, 601, 116, 602, 116, 603, 116, + 604, 116, 605, 116, 606, 607, 608, 116, + 609, 116, 610, 116, 611, 116, 612, 116, + 613, 116, 614, 116, 615, 116, 616, 116, + 617, 116, 618, 116, 619, 116, 620, 116, + 621, 116, 622, 116, 623, 624, 116, 625, + 116, 626, 116, 627, 628, 116, 629, 116, + 630, 116, 631, 116, 632, 116, 633, 116, + 634, 116, 635, 116, 636, 116, 637, 116, + 638, 116, 639, 116, 640, 116, 641, 116, + 642, 116, 643, 116, 644, 116, 645, 116, + 646, 116, 647, 116, 648, 116, 650, 649, + 652, 651, 653, 649, 649, 651, 656, 657, + 654, 655, 656, 657, 658, 655, 656, 657, + 655, 660, 661, 654, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, + 659, 660, 661, 654, 659, 660, 661, 674, + 659, 660, 661, 659, 660, 661, 654, 675, + 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 659, 660, 661, 654, 686, 687, + 659, 660, 661, 654, 688, 689, 659, 660, + 661, 654, 690, 659, 660, 661, 654, 691, + 659, 692, 661, 654, 659, 660, 661, 693, + 659, 660, 661, 654, 694, 659, 660, 661, + 654, 695, 659, 696, 661, 654, 659, 660, + 661, 697, 659, 660, 661, 654, 698, 659, + 660, 661, 654, 699, 659, 660, 661, 654, + 700, 659, 701, 661, 654, 659, 660, 661, + 702, 659, 660, 661, 654, 703, 659, 660, + 661, 654, 704, 659, 660, 661, 654, 705, + 659, 660, 661, 654, 706, 659, 707, 661, + 654, 659, 660, 661, 708, 659, 660, 661, + 654, 709, 659, 660, 661, 654, 710, 659, + 660, 661, 654, 711, 659, 660, 661, 654, + 712, 659, 713, 661, 654, 659, 660, 661, + 714, 659, 660, 661, 654, 715, 659, 660, + 661, 654, 716, 659, 660, 661, 654, 717, + 659, 660, 661, 654, 718, 659, 719, 661, + 654, 659, 660, 661, 720, 659, 660, 661, + 654, 721, 659, 660, 661, 654, 722, 659, + 660, 661, 654, 723, 659, 660, 661, 654, + 724, 659, 725, 661, 654, 659, 660, 661, + 726, 659, 660, 661, 654, 727, 659, 660, + 661, 654, 728, 659, 660, 661, 654, 729, + 659, 660, 661, 654, 730, 659, 731, 661, + 654, 659, 660, 661, 732, 659, 660, 661, + 654, 733, 734, 659, 660, 661, 654, 735, + 659, 660, 661, 654, 736, 659, 660, 661, + 654, 737, 659, 738, 661, 654, 659, 660, + 661, 739, 659, 660, 661, 654, 740, 659, + 660, 661, 654, 741, 659, 660, 661, 654, + 742, 659, 743, 661, 654, 659, 660, 661, + 744, 659, 660, 661, 654, 745, 659, 660, + 661, 654, 746, 659, 660, 661, 654, 747, + 659, 660, 661, 654, 748, 659, 749, 661, + 654, 659, 660, 661, 750, 659, 660, 661, + 654, 751, 659, 660, 661, 654, 752, 659, + 660, 661, 654, 753, 659, 660, 661, 654, + 754, 659, 755, 661, 654, 659, 660, 661, + 756, 659, 660, 661, 654, 757, 659, 660, + 661, 654, 758, 659, 660, 661, 654, 759, + 659, 760, 661, 654, 659, 660, 661, 761, + 659, 660, 661, 654, 762, 659, 660, 661, + 654, 763, 659, 660, 661, 654, 764, 659, + 660, 661, 654, 765, 659, 660, 661, 654, + 766, 659, 767, 661, 654, 659, 660, 661, + 768, 659, 660, 661, 654, 769, 770, 659, + 660, 661, 654, 771, 772, 659, 660, 661, + 654, 773, 659, 660, 661, 654, 774, 659, + 775, 661, 654, 659, 660, 661, 776, 659, + 660, 661, 654, 777, 659, 660, 661, 654, + 778, 659, 779, 661, 654, 659, 660, 661, + 780, 659, 660, 661, 654, 781, 659, 660, + 661, 654, 782, 659, 660, 661, 654, 783, + 659, 784, 661, 654, 659, 660, 661, 785, + 659, 660, 661, 654, 786, 659, 660, 661, + 654, 787, 659, 660, 661, 654, 788, 659, + 660, 661, 654, 789, 659, 790, 661, 654, + 659, 660, 661, 791, 659, 660, 661, 654, + 792, 659, 660, 661, 654, 793, 659, 660, + 661, 654, 794, 659, 660, 661, 654, 795, + 659, 796, 661, 654, 659, 660, 661, 797, + 659, 660, 661, 654, 798, 659, 660, 661, + 654, 799, 659, 660, 661, 654, 800, 659, + 660, 661, 654, 801, 659, 802, 661, 654, + 659, 660, 661, 803, 659, 660, 661, 654, + 804, 659, 660, 661, 654, 805, 659, 660, + 661, 654, 806, 659, 660, 661, 654, 807, + 659, 808, 661, 654, 659, 660, 661, 809, + 659, 660, 661, 654, 810, 659, 660, 661, + 654, 811, 659, 660, 661, 654, 812, 659, + 660, 661, 654, 813, 659, 814, 661, 654, + 659, 660, 661, 815, 659, 660, 661, 654, + 816, 817, 659, 660, 661, 654, 818, 659, + 660, 661, 654, 819, 659, 660, 661, 654, + 820, 659, 821, 661, 654, 659, 660, 661, + 822, 659, 660, 661, 654, 823, 659, 660, + 661, 654, 824, 659, 660, 661, 654, 825, + 659, 826, 661, 654, 659, 660, 661, 827, + 659, 660, 661, 654, 828, 659, 660, 661, + 654, 829, 659, 660, 661, 654, 830, 659, + 660, 661, 654, 831, 659, 832, 661, 654, + 659, 660, 661, 833, 659, 660, 661, 654, + 834, 659, 660, 661, 654, 835, 659, 660, + 661, 654, 836, 659, 660, 661, 654, 837, + 659, 838, 661, 654, 659, 660, 661, 839, + 659, 660, 661, 654, 840, 659, 660, 661, + 654, 841, 659, 660, 661, 654, 842, 659, + 843, 661, 654, 659, 660, 661, 844, 659, + 660, 661, 654, 845, 659, 660, 661, 654, + 846, 659, 660, 661, 654, 847, 659, 660, + 661, 654, 848, 659, 660, 661, 654, 849, + 659, 850, 661, 654, 659, 660, 661, 851, + 659, 853, 854, 654, 852, 853, 854, 658, + 852, 853, 854, 852, 856, 855, 857, 856, + 855, 860, 859, 859, 859, 858, 862, 861, + 863, 861, 864, 861, 866, 865, 867, 865, + 868, 865, 870, 869, 871, 869, 872, 869, + 873, 876, 877, 878, 879, 880, 881, 882, + 883, 884, 885, 886, 887, 888, 875, 893, + 875, 876, 875, 875, 889, 890, 891, 892, + 889, 874, 895, 896, 894, 23, 23, 23, + 23, 897, 25, 25, 25, 25, 897, 899, + 30, 902, 903, 904, 30, 900, 901, 30, + 30, 898, 44, 897, 47, 47, 47, 47, + 44, 897, 43, 44, 897, 905, 906, 48, + 48, 48, 48, 897, 907, 897, 49, 50, + 897, 908, 909, 910, 897, 45, 53, 46, + 54, 54, 54, 54, 897, 912, 913, 911, + 915, 916, 914, 918, 919, 917, 56, 60, + 64, 920, 923, 926, 927, 928, 929, 930, + 931, 932, 933, 934, 934, 935, 936, 937, + 938, 934, 939, 940, 941, 942, 943, 944, + 945, 946, 947, 948, 949, 950, 951, 934, + 952, 953, 954, 955, 956, 957, 934, 958, + 959, 960, 961, 924, 925, 922, 963, 962, + 964, 962, 966, 967, 965, 969, 967, 968, + 967, 970, 973, 972, 975, 68, 977, 71, + 979, 978, 976, 981, 980, 982, 980, 984, + 983, 985, 983, 987, 988, 989, 986, 991, + 990, 994, 993, 999, 996, 997, 998, 995, + 1000, 1001, 1002, 995, 94, 94, 94, 1003, + 98, 1004, 1006, 1007, 1005, 1009, 1008, 1010, + 1008, 1011, 1008, 1013, 1014, 1012, 109, 108, + 109, 1016, 1017, 108, 1019, 1020, 1021, 1022, + 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, + 1039, 1040, 1041, 1018, 1043, 1044, 1045, 1042, + 1046, 1047, 1048, 1049, 1050, 1042, 1052, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1051, + 1062, 1063, 1061, 1064, 1042, 1065, 1066, 1042, + 1067, 1068, 1069, 1070, 1071, 1042, 1072, 1073, + 1074, 1042, 1076, 1077, 1075, 1078, 1079, 1042, + 1080, 1042, 1081, 1082, 1042, 1084, 1085, 1086, + 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1083, + 1095, 1096, 1097, 1098, 1099, 1100, 1094, 1102, + 1101, 1104, 1105, 1106, 1107, 1108, 1103, 1109, + 1110, 1111, 1112, 1042, 1114, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1113, 1122, 1123, 1042, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, + 1133, 1124, 1134, 1135, 1136, 1137, 1042, 1138, + 1042, 1139, 1042, 1140, 1141, 1142, 1143, 1042, + 1144, 1042, 1146, 1147, 1148, 1145, 649, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1149, 1158, + 1159, 1160, 1161, 1157, 1162, 1163, 1164, 1165, + 1162, 874, 655, 1167, 852, 1166, 1169, 1173, + 1174, 1175, 1176, 1176, 1177, 1178, 1179, 1176, + 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, + 1188, 1189, 1176, 1190, 1191, 1192, 1193, 1194, + 1195, 1176, 1196, 1197, 1198, 1170, 1171, 1172, + 1172, 1168, 1200, 1199, 1201, 1199, 1203, 1202, + 1204, 1202, 1207, 1206, 1209, 1211, 1210, 1214, + 1213, 1219, 1216, 1217, 1218, 1215, 1220, 1221, + 1222, 1215, 859, 859, 859, 1223, 1225, 1224, + 1226, 1224, 1227, 1224, 1229, 1230, 1231, 1228, + 1228, 1228, 874, 1233, 1234, 1232, 1236, 1235, + 1237, 1238, 1239, 1240, 1237, 874, 1242, 1241, + 1244, 1243, 1245, 1243, 1246, 1243, 1248, 1247, + 1249, 1250, 1251, 1252, 1249, 874, 1254, 1253, + 1256, 1255, 1257, 1255, 1258, 1255, 1260, 1259, + 1262, 1261, 0 +}; + +static const short _regex_trans_targs[] = { + 746, 746, 746, 746, 746, 748, 749, 750, + 746, 751, 752, 753, 746, 754, 746, 746, + 755, 756, 757, 758, 746, 746, 746, 3, + 746, 4, 746, 6, 7, 746, 8, 746, + 9, 12, 746, 14, 746, 746, 746, 16, + 746, 18, 17, 746, 19, 746, 746, 20, + 21, 746, 22, 25, 746, 27, 28, 746, + 29, 30, 31, 746, 32, 33, 34, 746, + 35, 36, 37, 746, 38, 746, 772, 40, + 42, 46, 49, 43, 44, 746, 45, 47, + 746, 48, 746, 746, 51, 746, 53, 746, + 55, 746, 746, 57, 746, 746, 58, 746, + 746, 60, 59, 783, 61, 783, 783, 746, + 746, 64, 746, 787, 65, 787, 67, 787, + 69, 787, 70, 787, 790, 790, 73, 76, + 74, 75, 790, 77, 78, 79, 80, 790, + 82, 83, 84, 85, 790, 87, 92, 94, + 88, 89, 90, 91, 790, 93, 790, 95, + 790, 97, 98, 99, 100, 790, 102, 103, + 104, 105, 106, 790, 108, 109, 111, 110, + 790, 112, 113, 790, 115, 120, 116, 117, + 118, 119, 790, 121, 790, 790, 123, 139, + 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 790, + 140, 141, 790, 143, 144, 790, 145, 146, + 147, 148, 790, 790, 150, 151, 790, 153, + 154, 790, 156, 157, 158, 159, 160, 161, + 790, 163, 167, 164, 165, 166, 790, 168, + 169, 170, 171, 790, 173, 177, 174, 175, + 176, 790, 178, 179, 180, 181, 182, 183, + 790, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 790, 203, 204, 205, 206, 207, + 790, 209, 210, 211, 212, 213, 790, 215, + 216, 217, 218, 219, 220, 221, 790, 223, + 224, 225, 790, 227, 228, 790, 230, 235, + 231, 232, 233, 234, 790, 236, 237, 238, + 239, 790, 799, 790, 242, 790, 244, 245, + 790, 247, 248, 249, 790, 251, 252, 253, + 254, 255, 790, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, + 790, 271, 277, 272, 273, 274, 275, 276, + 790, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 295, + 292, 293, 294, 790, 296, 297, 298, 299, + 790, 301, 302, 303, 304, 305, 790, 307, + 310, 314, 319, 308, 309, 790, 311, 312, + 313, 790, 315, 316, 317, 318, 790, 320, + 321, 322, 323, 790, 325, 332, 326, 327, + 328, 329, 330, 331, 790, 333, 790, 790, + 790, 335, 336, 790, 338, 339, 340, 790, + 342, 344, 349, 343, 790, 345, 346, 347, + 348, 790, 790, 351, 354, 352, 353, 790, + 355, 356, 790, 790, 358, 364, 359, 360, + 361, 362, 363, 790, 365, 366, 367, 790, + 790, 369, 370, 371, 372, 373, 374, 375, + 376, 790, 378, 379, 380, 381, 382, 383, + 790, 385, 386, 387, 388, 790, 790, 390, + 391, 392, 393, 394, 395, 396, 397, 790, + 790, 400, 401, 790, 403, 408, 404, 405, + 406, 407, 790, 409, 410, 415, 421, 433, + 411, 412, 413, 414, 790, 416, 417, 418, + 419, 420, 790, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 790, 434, + 435, 436, 437, 790, 439, 440, 790, 442, + 443, 444, 445, 790, 790, 447, 452, 448, + 449, 450, 451, 790, 453, 454, 455, 456, + 457, 458, 790, 460, 461, 462, 790, 464, + 465, 790, 790, 467, 473, 468, 469, 470, + 471, 472, 790, 474, 475, 476, 477, 478, + 479, 790, 481, 482, 483, 484, 790, 486, + 487, 488, 489, 790, 491, 492, 493, 494, + 495, 496, 790, 498, 507, 499, 500, 501, + 502, 503, 504, 505, 506, 790, 508, 509, + 790, 511, 519, 528, 512, 515, 513, 514, + 790, 516, 517, 518, 790, 520, 521, 522, + 525, 790, 523, 524, 790, 526, 527, 790, + 529, 790, 531, 532, 533, 790, 535, 536, + 790, 537, 790, 539, 543, 540, 541, 542, + 790, 544, 545, 546, 547, 790, 549, 550, + 551, 552, 553, 790, 790, 790, 790, 790, + 790, 0, 560, 561, 562, 817, 819, 563, + 564, 565, 819, 567, 568, 569, 570, 651, + 666, 672, 678, 684, 690, 696, 707, 713, + 719, 724, 819, 571, 586, 592, 598, 604, + 610, 616, 627, 633, 639, 644, 572, 581, + 573, 577, 574, 575, 576, 819, 578, 579, + 580, 819, 582, 583, 584, 585, 819, 587, + 588, 589, 590, 591, 819, 593, 594, 595, + 596, 597, 819, 599, 600, 601, 602, 603, + 819, 605, 606, 607, 608, 609, 819, 611, + 612, 613, 614, 615, 819, 617, 622, 618, + 619, 620, 621, 819, 623, 624, 625, 626, + 819, 628, 629, 630, 631, 632, 819, 634, + 635, 636, 637, 638, 819, 640, 641, 642, + 643, 819, 645, 646, 647, 648, 649, 650, + 819, 652, 661, 653, 657, 654, 655, 656, + 819, 658, 659, 660, 819, 662, 663, 664, + 665, 819, 667, 668, 669, 670, 671, 819, + 673, 674, 675, 676, 677, 819, 679, 680, + 681, 682, 683, 819, 685, 686, 687, 688, + 689, 819, 691, 692, 693, 694, 695, 819, + 697, 702, 698, 699, 700, 701, 819, 703, + 704, 705, 706, 819, 708, 709, 710, 711, + 712, 819, 714, 715, 716, 717, 718, 819, + 720, 721, 722, 723, 819, 725, 726, 727, + 728, 729, 730, 819, 731, 732, 733, 819, + 735, 819, 819, 736, 819, 819, 819, 739, + 819, 838, 838, 742, 838, 843, 843, 745, + 843, 746, 0, 746, 746, 746, 747, 746, + 759, 760, 746, 761, 762, 763, 746, 782, + 746, 746, 784, 785, 786, 746, 746, 1, + 2, 746, 746, 5, 9, 10, 11, 13, + 15, 746, 746, 746, 23, 24, 26, 746, + 746, 746, 746, 746, 746, 746, 746, 746, + 746, 746, 746, 764, 766, 768, 746, 746, + 746, 746, 746, 746, 746, 746, 746, 769, + 746, 746, 746, 746, 746, 746, 746, 746, + 746, 770, 746, 746, 746, 771, 746, 776, + 746, 777, 778, 746, 746, 746, 746, 746, + 779, 746, 746, 765, 746, 746, 767, 768, + 746, 768, 746, 746, 746, 746, 746, 746, + 746, 39, 774, 41, 746, 773, 746, 746, + 775, 746, 746, 50, 52, 54, 746, 56, + 746, 746, 746, 746, 780, 780, 780, 781, + 746, 746, 746, 746, 746, 746, 746, 746, + 746, 746, 62, 63, 788, 787, 789, 787, + 66, 68, 790, 791, 792, 793, 795, 796, + 797, 798, 800, 801, 802, 803, 804, 806, + 807, 808, 809, 810, 811, 812, 813, 814, + 815, 816, 790, 71, 72, 81, 86, 96, + 101, 107, 114, 790, 122, 790, 790, 142, + 790, 794, 790, 155, 162, 790, 149, 152, + 172, 184, 202, 208, 214, 222, 226, 229, + 240, 246, 250, 790, 241, 243, 256, 270, + 300, 306, 324, 790, 790, 334, 337, 341, + 790, 790, 790, 790, 790, 350, 790, 357, + 790, 805, 790, 377, 384, 790, 368, 790, + 790, 389, 398, 790, 790, 399, 402, 438, + 441, 790, 790, 790, 790, 790, 446, 790, + 790, 790, 459, 463, 790, 466, 790, 480, + 485, 790, 790, 790, 490, 497, 510, 530, + 534, 538, 548, 554, 555, 556, 557, 558, + 790, 790, 790, 790, 790, 818, 818, 818, + 818, 818, 818, 818, 818, 819, 819, 820, + 821, 819, 819, 833, 834, 835, 819, 566, + 819, 822, 824, 819, 819, 819, 819, 819, + 819, 826, 819, 819, 819, 819, 819, 819, + 827, 819, 819, 819, 819, 819, 819, 828, + 829, 819, 819, 819, 819, 819, 830, 819, + 823, 819, 819, 825, 819, 819, 819, 819, + 819, 819, 819, 734, 819, 819, 819, 819, + 831, 831, 831, 832, 819, 819, 819, 819, + 819, 819, 737, 738, 836, 837, 836, 836, + 836, 836, 836, 838, 839, 838, 840, 841, + 842, 838, 838, 838, 838, 740, 741, 843, + 844, 843, 845, 846, 847, 843, 843, 843, + 843, 743, 744, 848, 848, 849, 849 +}; + +static const short _regex_trans_actions[] = { + 827, 631, 765, 731, 723, 45, 903, 903, + 897, 45, 912, 45, 900, 903, 729, 741, + 0, 45, 45, 923, 737, 841, 747, 0, + 743, 3, 839, 3, 0, 761, 3, 759, + 870, 3, 751, 0, 749, 755, 753, 0, + 757, 3, 0, 745, 0, 725, 727, 27, + 3, 763, 0, 3, 673, 0, 25, 829, + 0, 0, 0, 603, 0, 0, 0, 601, + 0, 0, 0, 831, 0, 675, 17, 0, + 7, 870, 3, 17, 17, 663, 17, 870, + 661, 870, 665, 837, 3, 671, 3, 669, + 3, 667, 833, 0, 677, 835, 0, 679, + 845, 0, 11, 29, 13, 31, 0, 843, + 769, 0, 771, 59, 0, 53, 0, 51, + 0, 49, 0, 47, 359, 315, 0, 0, + 0, 0, 127, 0, 0, 0, 0, 129, + 0, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 0, 0, 133, 0, 135, 0, + 137, 0, 0, 0, 0, 139, 0, 0, + 0, 0, 0, 141, 0, 0, 0, 0, + 143, 0, 0, 145, 0, 0, 0, 0, + 0, 0, 147, 0, 149, 341, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 151, + 0, 0, 153, 0, 0, 155, 0, 0, + 0, 0, 157, 343, 0, 0, 159, 0, + 0, 161, 0, 0, 0, 0, 0, 0, + 163, 0, 0, 0, 0, 0, 165, 0, + 0, 0, 0, 167, 0, 0, 0, 0, + 0, 169, 0, 0, 0, 0, 0, 0, + 171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 173, 0, 0, 0, 0, 0, + 175, 0, 0, 0, 0, 0, 177, 0, + 0, 0, 0, 0, 0, 0, 179, 0, + 0, 0, 181, 0, 0, 183, 0, 0, + 0, 0, 0, 0, 185, 0, 0, 0, + 0, 187, 45, 357, 0, 189, 0, 0, + 191, 0, 0, 0, 193, 0, 0, 0, + 0, 0, 195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 197, 0, 0, 0, 0, 0, 0, 0, + 199, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 201, 0, 0, 0, 0, + 203, 0, 0, 0, 0, 0, 205, 0, + 0, 0, 0, 0, 0, 207, 0, 0, + 0, 209, 0, 0, 0, 0, 211, 0, + 0, 0, 0, 213, 0, 0, 0, 0, + 0, 0, 0, 0, 215, 0, 217, 345, + 219, 0, 0, 221, 0, 0, 0, 223, + 0, 0, 0, 0, 225, 0, 0, 0, + 0, 227, 229, 0, 0, 0, 0, 231, + 0, 0, 233, 347, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 237, + 349, 0, 0, 0, 0, 0, 0, 0, + 0, 239, 0, 0, 0, 0, 0, 0, + 241, 0, 0, 0, 0, 243, 351, 0, + 0, 0, 0, 0, 0, 0, 0, 245, + 247, 0, 0, 249, 0, 0, 0, 0, + 0, 0, 251, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 0, + 0, 0, 255, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 257, 0, + 0, 0, 0, 259, 0, 0, 261, 0, + 0, 0, 0, 263, 353, 0, 0, 0, + 0, 0, 0, 265, 0, 0, 0, 0, + 0, 0, 267, 0, 0, 0, 269, 0, + 0, 271, 355, 0, 0, 0, 0, 0, + 0, 0, 273, 0, 0, 0, 0, 0, + 0, 275, 0, 0, 0, 0, 277, 0, + 0, 0, 0, 279, 0, 0, 0, 0, + 0, 0, 281, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 283, 0, 0, + 285, 0, 0, 0, 0, 0, 0, 0, + 287, 0, 0, 0, 289, 0, 0, 0, + 0, 291, 0, 0, 293, 0, 0, 295, + 0, 297, 0, 0, 0, 299, 0, 0, + 303, 0, 301, 0, 0, 0, 0, 0, + 305, 0, 0, 0, 0, 307, 0, 0, + 0, 0, 0, 309, 311, 119, 121, 123, + 125, 39, 0, 35, 33, 37, 539, 0, + 0, 0, 377, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 435, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 381, 0, 0, + 0, 385, 0, 0, 0, 0, 389, 0, + 0, 0, 0, 0, 393, 0, 0, 0, + 0, 0, 397, 0, 0, 0, 0, 0, + 401, 0, 0, 0, 0, 0, 405, 0, + 0, 0, 0, 0, 409, 0, 0, 0, + 0, 0, 0, 413, 0, 0, 0, 0, + 417, 0, 0, 0, 0, 0, 421, 0, + 0, 0, 0, 0, 425, 0, 0, 0, + 0, 429, 0, 0, 0, 0, 0, 0, + 433, 0, 0, 0, 0, 0, 0, 0, + 379, 0, 0, 0, 383, 0, 0, 0, + 0, 387, 0, 0, 0, 0, 0, 391, + 0, 0, 0, 0, 0, 395, 0, 0, + 0, 0, 0, 399, 0, 0, 0, 0, + 0, 403, 0, 0, 0, 0, 0, 407, + 0, 0, 0, 0, 0, 0, 411, 0, + 0, 0, 0, 415, 0, 0, 0, 0, + 0, 419, 0, 0, 0, 0, 0, 423, + 0, 0, 0, 0, 427, 0, 0, 0, + 0, 0, 0, 431, 0, 0, 0, 533, + 0, 471, 535, 0, 475, 537, 503, 0, + 505, 569, 557, 0, 559, 587, 575, 0, + 577, 633, 0, 777, 775, 637, 45, 597, + 0, 0, 609, 0, 45, 0, 635, 909, + 599, 773, 0, 45, 45, 629, 779, 0, + 0, 821, 819, 1, 855, 855, 1, 0, + 3, 735, 733, 739, 1, 1, 0, 783, + 615, 613, 785, 619, 617, 787, 623, 621, + 781, 817, 721, 5, 852, 915, 639, 647, + 611, 695, 607, 717, 699, 715, 683, 0, + 605, 713, 691, 703, 687, 719, 641, 657, + 645, 0, 693, 659, 655, 906, 697, 45, + 651, 45, 0, 653, 689, 649, 701, 685, + 7, 643, 791, 15, 867, 795, 858, 919, + 793, 927, 847, 811, 711, 709, 809, 681, + 801, 7, 17, 849, 799, 17, 876, 797, + 17, 873, 815, 1, 1, 1, 803, 0, + 813, 707, 705, 805, 19, 23, 21, 45, + 882, 894, 888, 807, 825, 789, 627, 625, + 823, 767, 0, 0, 45, 55, 45, 57, + 0, 0, 317, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, + 0, 0, 339, 0, 0, 0, 0, 0, + 0, 0, 0, 319, 0, 61, 63, 0, + 65, 45, 67, 0, 0, 321, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 337, 0, 0, 0, 0, + 0, 0, 0, 323, 79, 0, 0, 0, + 69, 71, 73, 75, 77, 0, 325, 0, + 81, 45, 83, 0, 0, 327, 0, 329, + 85, 0, 0, 87, 89, 0, 0, 0, + 0, 331, 91, 93, 95, 97, 0, 99, + 101, 103, 0, 0, 333, 0, 105, 0, + 0, 107, 109, 111, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 313, 335, 113, 115, 117, 375, 361, 363, + 365, 367, 369, 371, 373, 509, 491, 45, + 0, 511, 507, 0, 45, 45, 531, 0, + 499, 5, 9, 473, 497, 489, 439, 457, + 493, 0, 437, 485, 461, 481, 451, 441, + 0, 487, 453, 449, 495, 455, 445, 45, + 0, 447, 483, 443, 459, 479, 7, 517, + 15, 861, 519, 15, 864, 513, 469, 467, + 527, 477, 521, 0, 515, 465, 463, 523, + 19, 23, 21, 45, 879, 891, 885, 525, + 529, 501, 0, 0, 549, 0, 543, 541, + 551, 547, 545, 563, 0, 561, 0, 45, + 45, 567, 553, 565, 555, 0, 0, 581, + 0, 579, 0, 45, 45, 585, 571, 583, + 573, 0, 0, 591, 589, 595, 593 +}; + +static const short _regex_to_state_actions[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 41, + 0, 41, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 41, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 41, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 41, 0, + 0, 0, 0, 41, 0, 0, 0, 0, + 41, 41 +}; + +static const short _regex_from_state_actions[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 43, 0, 0, 43, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 43, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 43, 0, 43, 0, + 0, 0, 0, 43, 0, 0, 0, 0, + 43, 43 +}; + +static const short _regex_eof_actions[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, + 39, 39, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0 +}; + +static const short _regex_eof_trans[] = { + 0, 1, 1, 22, 22, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 84, 84, 84, 84, 84, 84, + 91, 91, 94, 97, 97, 97, 104, 104, + 104, 108, 108, 108, 108, 108, 108, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 204, 204, 204, + 204, 204, 204, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 300, 300, 300, 300, 300, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 400, 400, 400, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, + 441, 441, 441, 441, 441, 441, 441, 441, + 441, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 463, 463, 463, + 463, 463, 463, 463, 463, 463, 463, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 525, 525, + 525, 525, 525, 525, 525, 525, 525, 525, + 525, 525, 525, 117, 117, 117, 117, 117, + 117, 117, 547, 547, 547, 547, 547, 547, + 547, 547, 547, 547, 547, 547, 547, 547, + 547, 547, 547, 547, 547, 547, 547, 547, + 547, 547, 547, 547, 547, 547, 547, 547, + 547, 547, 547, 547, 547, 547, 547, 547, + 547, 547, 547, 547, 547, 547, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 0, + 0, 0, 0, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 655, 655, + 655, 655, 655, 655, 655, 655, 856, 856, + 859, 862, 862, 862, 866, 866, 866, 870, + 870, 870, 0, 895, 898, 898, 899, 898, + 898, 898, 898, 898, 898, 898, 898, 912, + 915, 918, 921, 922, 963, 963, 966, 969, + 971, 972, 975, 977, 981, 981, 984, 984, + 987, 991, 993, 996, 996, 1004, 1005, 1006, + 1009, 1009, 1009, 0, 1016, 1016, 0, 1043, + 1043, 1052, 1062, 1043, 1043, 1043, 1043, 1076, + 1043, 1043, 1043, 1084, 1095, 1102, 1104, 1043, + 1114, 1043, 1125, 1043, 1043, 1043, 1043, 1043, + 1146, 0, 0, 0, 1167, 1167, 1200, 1200, + 1203, 1203, 1206, 1209, 1211, 1213, 1216, 1216, + 1224, 1225, 1225, 1225, 0, 1233, 0, 1242, + 1244, 1244, 1244, 0, 1254, 1256, 1256, 1256, + 0, 0 +}; + +static const int regex_start = 746; +static const int regex_error = 0; + +static const int regex_en_readVerb = 787; +static const int regex_en_readUCP = 790; +static const int regex_en_readBracedUCP = 559; +static const int regex_en_readUCPSingle = 818; +static const int regex_en_charClassGuts = 819; +static const int regex_en_readClass = 836; +static const int regex_en_readQuotedLiteral = 838; +static const int regex_en_readQuotedClass = 843; +static const int regex_en_readComment = 848; +static const int regex_en_readNewlineTerminatedComment = 849; +static const int regex_en_main = 746; + + +#line 1912 "Parser.rl" + +/** \brief Main parser call, returns root Component or nullptr. */ +unique_ptr parse(const char *ptr, ParseMode &globalMode) { + assert(ptr); + + const char *p = ptr; + const char *pe = ptr + strlen(ptr); + + // First, read the control verbs, set any global mode flags and move the + // ptr forward. + p = read_control_verbs(p, pe, 0, globalMode); + + const char *eof = pe; + int cs; + UNUSED int act; + int top; + vector stack; + const char *ts, *te; + unichar accumulator = 0; + unichar octAccumulator = 0; /* required as we are also accumulating for + * back ref when looking for octals */ + unsigned repeatN = 0; + unsigned repeatM = 0; + string label; + + ParseMode mode = globalMode; + ParseMode newMode; + + bool negated = false; + bool inComment = false; + + // Stack of sequences and flags used to store state when we enter + // sub-sequences. + vector sequences; + + // Index of the next capturing group. Note that zero is reserved for the + // root sequence. + unsigned groupIndex = 1; + + // Set storing group names that are currently in use. + flat_set groupNames; + + // Root sequence. + unique_ptr rootSeq = std::make_unique(); + rootSeq->setCaptureIndex(0); + + // Current sequence being appended to + ComponentSequence *currentSeq = rootSeq.get(); + + // The current character class being appended to. This is used as the + // accumulator for both character class and UCP properties. + unique_ptr currentCls; + + // True if the machine is currently inside a character class, i.e. square + // brackets [..]. + bool inCharClass = false; + + // True if the machine is inside a character class but it has not processed + // any "real" elements yet, i.e. it's still processing meta-characters like + // '^'. + bool inCharClassEarly = false; + + // Location at which the current character class began. + const char *currentClsBegin = p; + + // We throw exceptions on various parsing failures beyond this point: we + // use a try/catch block here to clean up our allocated memory before we + // re-throw the exception to the caller. + try { + // Embed the Ragel machine here + +#line 2533 "Parser.cpp" + { + cs = regex_start; + top = 0; + ts = 0; + te = 0; + act = 0; + } + +#line 1983 "Parser.rl" + +#line 2544 "Parser.cpp" + { + int _klen; + unsigned int _trans; + short _widec; + const short *_acts; + unsigned int _nacts; + const short *_keys; + + if ( p == pe ) + goto _test_eof; + if ( cs == 0 ) + goto _out; +_resume: + _acts = _regex_actions + _regex_from_state_actions[cs]; + _nacts = (unsigned int) *_acts++; + while ( _nacts-- > 0 ) { + switch ( *_acts++ ) { + case 24: +#line 1 "NONE" + {ts = p;} + break; +#line 2566 "Parser.cpp" + } + } + + _widec = (*p); + _klen = _regex_cond_lengths[cs]; + _keys = _regex_cond_keys + (_regex_cond_offsets[cs]*2); + if ( _klen > 0 ) { + const short *_lower = _keys; + const short *_mid; + const short *_upper = _keys + (_klen<<1) - 2; + while (1) { + if ( _upper < _lower ) + break; + + _mid = _lower + (((_upper-_lower) >> 1) & ~1); + if ( _widec < _mid[0] ) + _upper = _mid - 2; + else if ( _widec > _mid[1] ) + _lower = _mid + 2; + else { + switch ( _regex_cond_spaces[_regex_cond_offsets[cs] + ((_mid - _keys)>>1)] ) { + case 0: { + _widec = (short)(128 + ((*p) - -128)); + if ( +#line 475 "Parser.rl" + mode.utf8 ) _widec += 256; + break; + } + case 1: { + _widec = (short)(1152 + ((*p) - -128)); + if ( +#line 476 "Parser.rl" + mode.ignore_space ) _widec += 256; + break; + } + case 2: { + _widec = (short)(640 + ((*p) - -128)); + if ( +#line 477 "Parser.rl" + inCharClassEarly ) _widec += 256; + break; + } + } + break; + } + } + } + + _keys = _regex_trans_keys + _regex_key_offsets[cs]; + _trans = _regex_index_offsets[cs]; + + _klen = _regex_single_lengths[cs]; + if ( _klen > 0 ) { + const short *_lower = _keys; + const short *_mid; + const short *_upper = _keys + _klen - 1; + while (1) { + if ( _upper < _lower ) + break; + + _mid = _lower + ((_upper-_lower) >> 1); + if ( _widec < *_mid ) + _upper = _mid - 1; + else if ( _widec > *_mid ) + _lower = _mid + 1; + else { + _trans += (unsigned int)(_mid - _keys); + goto _match; + } + } + _keys += _klen; + _trans += _klen; + } + + _klen = _regex_range_lengths[cs]; + if ( _klen > 0 ) { + const short *_lower = _keys; + const short *_mid; + const short *_upper = _keys + (_klen<<1) - 2; + while (1) { + if ( _upper < _lower ) + break; + + _mid = _lower + (((_upper-_lower) >> 1) & ~1); + if ( _widec < _mid[0] ) + _upper = _mid - 2; + else if ( _widec > _mid[1] ) + _lower = _mid + 2; + else { + _trans += (unsigned int)((_mid - _keys)>>1); + goto _match; + } + } + _trans += _klen; + } + +_match: + _trans = _regex_indicies[_trans]; +_eof_trans: + cs = _regex_trans_targs[_trans]; + + if ( _regex_trans_actions[_trans] == 0 ) + goto _again; + + _acts = _regex_actions + _regex_trans_actions[_trans]; + _nacts = (unsigned int) *_acts++; + while ( _nacts-- > 0 ) + { + switch ( *_acts++ ) + { + case 0: +#line 285 "Parser.rl" + { label.clear();} + break; + case 1: +#line 286 "Parser.rl" + { label.push_back((*p));} + break; + case 2: +#line 287 "Parser.rl" + { octAccumulator = 0;} + break; + case 3: +#line 288 "Parser.rl" + { accumulator = 0;} + break; + case 4: +#line 289 "Parser.rl" + { + octAccumulator = 0; + pushOct(&octAccumulator, (*p)); + } + break; + case 5: +#line 293 "Parser.rl" + { + accumulator = 0; + pushDec(&accumulator, (*p)); + } + break; + case 6: +#line 297 "Parser.rl" + { repeatN = 0; repeatM = 0; } + break; + case 7: +#line 298 "Parser.rl" + { pushDec(&repeatN, (*p)); } + break; + case 8: +#line 299 "Parser.rl" + { pushDec(&repeatM, (*p)); } + break; + case 9: +#line 300 "Parser.rl" + { pushOct(&octAccumulator, (*p)); } + break; + case 10: +#line 301 "Parser.rl" + { pushDec(&accumulator, (*p)); } + break; + case 11: +#line 302 "Parser.rl" + { + accumulator *= 16; + accumulator += (*p) - '0'; + } + break; + case 12: +#line 306 "Parser.rl" + { + accumulator *= 16; + accumulator += 10 + (*p) - 'a'; + } + break; + case 13: +#line 310 "Parser.rl" + { + accumulator *= 16; + accumulator += 10 + (*p) - 'A'; + } + break; + case 14: +#line 430 "Parser.rl" + { + newMode = mode; + } + break; + case 15: +#line 437 "Parser.rl" + { + switch ((*p)) { + case 'i': + newMode.caseless = true; + break; + case 'm': + newMode.multiline = true; + break; + case 's': + newMode.dotall = true; + break; + case 'x': + newMode.ignore_space = true; + break; + default: + assert(0); // this action only called for [imsx] + break; + } + } + break; + case 16: +#line 456 "Parser.rl" + { + switch ((*p)) { + case 'i': + newMode.caseless = false; + break; + case 'm': + newMode.multiline = false; + break; + case 's': + newMode.dotall = false; + break; + case 'x': + newMode.ignore_space = false; + break; + default: + assert(0); // this action only called for [imsx] + break; + } + } + break; + case 17: +#line 510 "Parser.rl" + {repeatM = repeatN;} + break; + case 18: +#line 510 "Parser.rl" + {repeatM = ComponentRepeat::NoLimit;} + break; + case 19: +#line 722 "Parser.rl" + { negated = !negated; } + break; + case 20: +#line 723 "Parser.rl" + { p--; { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 790;goto _again;}} } + break; + case 21: +#line 724 "Parser.rl" + { if (!inCharClass) { // not inside [..] + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + } + break; + case 22: +#line 730 "Parser.rl" + { throw LocatedParseError("Malformed property"); } + break; + case 25: +#line 1 "NONE" + {te = p+1;} + break; + case 26: +#line 550 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("(*UTF8) must be at start of " + "expression, encountered"); + }} + break; + case 27: +#line 554 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("(*UTF) must be at start of " + "expression, encountered"); + }} + break; + case 28: +#line 558 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("(*UCP) must be at start of " + "expression, encountered"); + }} + break; + case 29: +#line 564 "Parser.rl" + {te = p+1;{ + ParseMode temp_mode; + assert(ts - 2 >= ptr); // parser needs the '(*' at the start too. + read_control_verbs(ts - 2, te, (ts - 2 - ptr), temp_mode); + assert(0); // Should have thrown a parse error. + throw LocatedParseError("Unknown control verb"); + }} + break; + case 30: +#line 571 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Unknown control verb"); + }} + break; + case 31: +#line 571 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Unknown control verb"); + }} + break; + case 32: +#line 571 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Unknown control verb"); + }} + break; + case 33: +#line 581 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_CC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 34: +#line 582 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_CF, negated); {cs = stack[--top]; goto _again;} }} + break; + case 35: +#line 583 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_CN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 36: +#line 585 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_CS, negated); {cs = stack[--top]; goto _again;} }} + break; + case 37: +#line 587 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_LL, negated); {cs = stack[--top]; goto _again;} }} + break; + case 38: +#line 588 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_LM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 39: +#line 589 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_LO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 40: +#line 590 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_LT, negated); {cs = stack[--top]; goto _again;} }} + break; + case 41: +#line 591 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_LU, negated); {cs = stack[--top]; goto _again;} }} + break; + case 42: +#line 592 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_L_AND, negated); {cs = stack[--top]; goto _again;} }} + break; + case 43: +#line 594 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_MC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 44: +#line 596 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_MN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 45: +#line 598 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_ND, negated); {cs = stack[--top]; goto _again;} }} + break; + case 46: +#line 599 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_NL, negated); {cs = stack[--top]; goto _again;} }} + break; + case 47: +#line 600 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_NO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 48: +#line 602 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_PC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 49: +#line 603 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_PD, negated); {cs = stack[--top]; goto _again;} }} + break; + case 50: +#line 604 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_PE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 51: +#line 605 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_PF, negated); {cs = stack[--top]; goto _again;} }} + break; + case 52: +#line 606 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_PI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 53: +#line 607 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_PO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 54: +#line 608 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_PS, negated); {cs = stack[--top]; goto _again;} }} + break; + case 55: +#line 610 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_SC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 56: +#line 611 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_SK, negated); {cs = stack[--top]; goto _again;} }} + break; + case 57: +#line 612 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_SM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 58: +#line 613 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_SO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 59: +#line 615 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_ZL, negated); {cs = stack[--top]; goto _again;} }} + break; + case 60: +#line 616 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_ZP, negated); {cs = stack[--top]; goto _again;} }} + break; + case 61: +#line 617 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_ZS, negated); {cs = stack[--top]; goto _again;} }} + break; + case 62: +#line 618 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_XAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 63: +#line 619 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_XPS, negated); {cs = stack[--top]; goto _again;} }} + break; + case 64: +#line 620 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_XSP, negated); {cs = stack[--top]; goto _again;} }} + break; + case 65: +#line 621 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_XWD, negated); {cs = stack[--top]; goto _again;} }} + break; + case 66: +#line 622 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_ARABIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 67: +#line 623 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_ARMENIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 68: +#line 624 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_AVESTAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 69: +#line 625 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BALINESE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 70: +#line 626 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BAMUM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 71: +#line 627 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BATAK, negated); {cs = stack[--top]; goto _again;} }} + break; + case 72: +#line 628 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BENGALI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 73: +#line 629 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BOPOMOFO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 74: +#line 630 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BRAHMI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 75: +#line 631 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BRAILLE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 76: +#line 632 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BUGINESE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 77: +#line 633 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_BUHID, negated); {cs = stack[--top]; goto _again;} }} + break; + case 78: +#line 634 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_CANADIAN_ABORIGINAL, negated); {cs = stack[--top]; goto _again;} }} + break; + case 79: +#line 635 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_CARIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 80: +#line 636 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_CHAM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 81: +#line 637 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_CHEROKEE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 82: +#line 638 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_COMMON, negated); {cs = stack[--top]; goto _again;} }} + break; + case 83: +#line 639 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_COPTIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 84: +#line 640 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_CUNEIFORM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 85: +#line 641 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_CYPRIOT, negated); {cs = stack[--top]; goto _again;} }} + break; + case 86: +#line 642 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_CYRILLIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 87: +#line 643 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_DESERET, negated); {cs = stack[--top]; goto _again;} }} + break; + case 88: +#line 644 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_DEVANAGARI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 89: +#line 645 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_EGYPTIAN_HIEROGLYPHS, negated); {cs = stack[--top]; goto _again;} }} + break; + case 90: +#line 646 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_ETHIOPIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 91: +#line 647 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_GEORGIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 92: +#line 648 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_GLAGOLITIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 93: +#line 649 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_GOTHIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 94: +#line 650 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_GREEK, negated); {cs = stack[--top]; goto _again;} }} + break; + case 95: +#line 651 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_GUJARATI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 96: +#line 652 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_GURMUKHI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 97: +#line 654 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_HANGUL, negated); {cs = stack[--top]; goto _again;} }} + break; + case 98: +#line 655 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_HANUNOO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 99: +#line 656 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_HEBREW, negated); {cs = stack[--top]; goto _again;} }} + break; + case 100: +#line 657 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_HIRAGANA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 101: +#line 658 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_IMPERIAL_ARAMAIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 102: +#line 659 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_INHERITED, negated); {cs = stack[--top]; goto _again;} }} + break; + case 103: +#line 660 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_INSCRIPTIONAL_PAHLAVI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 104: +#line 661 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_INSCRIPTIONAL_PARTHIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 105: +#line 662 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_JAVANESE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 106: +#line 663 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_KAITHI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 107: +#line 664 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_KANNADA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 108: +#line 665 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_KATAKANA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 109: +#line 666 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_KAYAH_LI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 110: +#line 667 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_KHAROSHTHI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 111: +#line 668 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_KHMER, negated); {cs = stack[--top]; goto _again;} }} + break; + case 112: +#line 669 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LAO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 113: +#line 670 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LATIN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 114: +#line 671 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LEPCHA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 115: +#line 672 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LIMBU, negated); {cs = stack[--top]; goto _again;} }} + break; + case 116: +#line 673 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LINEAR_B, negated); {cs = stack[--top]; goto _again;} }} + break; + case 117: +#line 674 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LISU, negated); {cs = stack[--top]; goto _again;} }} + break; + case 118: +#line 675 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LYCIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 119: +#line 676 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_LYDIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 120: +#line 677 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_MALAYALAM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 121: +#line 678 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_MANDAIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 122: +#line 679 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_MEETEI_MAYEK, negated); {cs = stack[--top]; goto _again;} }} + break; + case 123: +#line 680 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_MONGOLIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 124: +#line 681 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_MYANMAR, negated); {cs = stack[--top]; goto _again;} }} + break; + case 125: +#line 682 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_NEW_TAI_LUE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 126: +#line 683 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_NKO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 127: +#line 684 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_OGHAM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 128: +#line 685 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_OL_CHIKI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 129: +#line 686 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_OLD_ITALIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 130: +#line 687 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_OLD_PERSIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 131: +#line 688 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_OLD_SOUTH_ARABIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 132: +#line 689 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_OLD_TURKIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 133: +#line 690 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_ORIYA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 134: +#line 691 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_OSMANYA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 135: +#line 692 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_PHAGS_PA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 136: +#line 693 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_PHOENICIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 137: +#line 694 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_REJANG, negated); {cs = stack[--top]; goto _again;} }} + break; + case 138: +#line 695 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_RUNIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 139: +#line 696 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_SAMARITAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 140: +#line 697 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_SAURASHTRA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 141: +#line 698 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_SHAVIAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 142: +#line 699 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_SINHALA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 143: +#line 700 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_SUNDANESE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 144: +#line 701 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_SYLOTI_NAGRI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 145: +#line 702 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_SYRIAC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 146: +#line 703 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TAGALOG, negated); {cs = stack[--top]; goto _again;} }} + break; + case 147: +#line 704 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TAGBANWA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 148: +#line 705 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TAI_LE, negated); {cs = stack[--top]; goto _again;} }} + break; + case 149: +#line 706 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TAI_THAM, negated); {cs = stack[--top]; goto _again;} }} + break; + case 150: +#line 707 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TAI_VIET, negated); {cs = stack[--top]; goto _again;} }} + break; + case 151: +#line 708 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TAMIL, negated); {cs = stack[--top]; goto _again;} }} + break; + case 152: +#line 709 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TELUGU, negated); {cs = stack[--top]; goto _again;} }} + break; + case 153: +#line 710 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_THAANA, negated); {cs = stack[--top]; goto _again;} }} + break; + case 154: +#line 711 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_THAI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 155: +#line 712 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TIBETAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 156: +#line 713 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_TIFINAGH, negated); {cs = stack[--top]; goto _again;} }} + break; + case 157: +#line 714 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_UGARITIC, negated); {cs = stack[--top]; goto _again;} }} + break; + case 158: +#line 715 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_VAI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 159: +#line 716 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_SCRIPT_YI, negated); {cs = stack[--top]; goto _again;} }} + break; + case 160: +#line 717 "Parser.rl" + {te = p+1;{ currentCls->add(CLASS_UCP_ANY, negated); {cs = stack[--top]; goto _again;} }} + break; + case 161: +#line 718 "Parser.rl" + {te = p+1;{ throw LocatedParseError("Unknown property"); }} + break; + case 162: +#line 580 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_C, negated); {cs = stack[--top]; goto _again;} }} + break; + case 163: +#line 584 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_CO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 164: +#line 586 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_L, negated); {cs = stack[--top]; goto _again;} }} + break; + case 165: +#line 593 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_M, negated); {cs = stack[--top]; goto _again;} }} + break; + case 166: +#line 595 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_ME, negated); {cs = stack[--top]; goto _again;} }} + break; + case 167: +#line 597 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_N, negated); {cs = stack[--top]; goto _again;} }} + break; + case 168: +#line 601 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_P, negated); {cs = stack[--top]; goto _again;} }} + break; + case 169: +#line 609 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_S, negated); {cs = stack[--top]; goto _again;} }} + break; + case 170: +#line 614 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_UCP_Z, negated); {cs = stack[--top]; goto _again;} }} + break; + case 171: +#line 653 "Parser.rl" + {te = p;p--;{ currentCls->add(CLASS_SCRIPT_HAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 172: +#line 718 "Parser.rl" + {te = p;p--;{ throw LocatedParseError("Unknown property"); }} + break; + case 173: +#line 580 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_C, negated); {cs = stack[--top]; goto _again;} }} + break; + case 174: +#line 584 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_CO, negated); {cs = stack[--top]; goto _again;} }} + break; + case 175: +#line 586 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_L, negated); {cs = stack[--top]; goto _again;} }} + break; + case 176: +#line 593 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_M, negated); {cs = stack[--top]; goto _again;} }} + break; + case 177: +#line 595 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_ME, negated); {cs = stack[--top]; goto _again;} }} + break; + case 178: +#line 597 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_N, negated); {cs = stack[--top]; goto _again;} }} + break; + case 179: +#line 601 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_P, negated); {cs = stack[--top]; goto _again;} }} + break; + case 180: +#line 609 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_UCP_S, negated); {cs = stack[--top]; goto _again;} }} + break; + case 181: +#line 653 "Parser.rl" + {{p = ((te))-1;}{ currentCls->add(CLASS_SCRIPT_HAN, negated); {cs = stack[--top]; goto _again;} }} + break; + case 182: +#line 718 "Parser.rl" + {{p = ((te))-1;}{ throw LocatedParseError("Unknown property"); }} + break; + case 183: +#line 733 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UCP_C, negated); + if (!inCharClass) { + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + }} + break; + case 184: +#line 741 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UCP_L, negated); + if (!inCharClass) { + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + }} + break; + case 185: +#line 749 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UCP_M, negated); + if (!inCharClass) { + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + }} + break; + case 186: +#line 757 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UCP_N, negated); + if (!inCharClass) { + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + }} + break; + case 187: +#line 765 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UCP_P, negated); + if (!inCharClass) { + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + }} + break; + case 188: +#line 773 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UCP_S, negated); + if (!inCharClass) { + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + }} + break; + case 189: +#line 781 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UCP_Z, negated); + if (!inCharClass) { + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + } + {cs = stack[--top]; goto _again;} + }} + break; + case 190: +#line 790 "Parser.rl" + {te = p+1;{ throw LocatedParseError("Unknown property"); }} + break; + case 191: +#line 796 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Unsupported POSIX collating " + "element"); + }} + break; + case 192: +#line 803 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_ALNUM, false); + }} + break; + case 193: +#line 806 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_ALNUM, true); + }} + break; + case 194: +#line 809 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_ALPHA, false); + }} + break; + case 195: +#line 812 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_ALPHA, true); + }} + break; + case 196: +#line 815 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_ASCII, false); + }} + break; + case 197: +#line 818 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_ASCII, true); + }} + break; + case 198: +#line 821 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_BLANK, false); + }} + break; + case 199: +#line 824 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_BLANK, true); + }} + break; + case 200: +#line 827 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_CNTRL, false); + }} + break; + case 201: +#line 830 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_CNTRL, true); + }} + break; + case 202: +#line 833 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_DIGIT, false); + }} + break; + case 203: +#line 836 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_DIGIT, true); + }} + break; + case 204: +#line 839 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_GRAPH, false); + }} + break; + case 205: +#line 842 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_GRAPH, true); + }} + break; + case 206: +#line 845 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_LOWER, false); + }} + break; + case 207: +#line 848 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_LOWER, true); + }} + break; + case 208: +#line 851 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_PRINT, false); + }} + break; + case 209: +#line 854 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_PRINT, true); + }} + break; + case 210: +#line 857 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_PUNCT, false); + }} + break; + case 211: +#line 860 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_PUNCT, true); + }} + break; + case 212: +#line 864 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_SPACE, false); + }} + break; + case 213: +#line 867 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_SPACE, true); + }} + break; + case 214: +#line 870 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UPPER, false); + }} + break; + case 215: +#line 873 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_UPPER, true); + }} + break; + case 216: +#line 876 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_WORD, false); + }} + break; + case 217: +#line 879 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_WORD, true); + }} + break; + case 218: +#line 882 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_XDIGIT, false); + }} + break; + case 219: +#line 885 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_XDIGIT, true); + }} + break; + case 220: +#line 890 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Invalid POSIX named class"); + }} + break; + case 221: +#line 893 "Parser.rl" + {te = p+1;{ + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 843;goto _again;}} + }} + break; + case 222: +#line 896 "Parser.rl" + {te = p+1;{ /*noop*/}} + break; + case 223: +#line 898 "Parser.rl" + {te = p+1;{ + currentCls->add('\x08'); + }} + break; + case 224: +#line 902 "Parser.rl" + {te = p+1;{ + currentCls->add('\x09'); + }} + break; + case 225: +#line 906 "Parser.rl" + {te = p+1;{ + currentCls->add('\x0a'); + }} + break; + case 226: +#line 910 "Parser.rl" + {te = p+1;{ + currentCls->add('\x0d'); + }} + break; + case 227: +#line 914 "Parser.rl" + {te = p+1;{ + currentCls->add('\x0c'); + }} + break; + case 228: +#line 918 "Parser.rl" + {te = p+1;{ + currentCls->add('\x07'); + }} + break; + case 229: +#line 922 "Parser.rl" + {te = p+1;{ + currentCls->add('\x1b'); + }} + break; + case 230: +#line 926 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_HORZ, false); + }} + break; + case 231: +#line 930 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_HORZ, true); + }} + break; + case 232: +#line 934 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_VERT, false); + }} + break; + case 233: +#line 938 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_VERT, true); + }} + break; + case 234: +#line 942 "Parser.rl" + {te = p+1;{ + negated = false; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 559;goto _again;}} + }} + break; + case 235: +#line 948 "Parser.rl" + {te = p+1;{ + negated = false; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 818;goto _again;}} + }} + break; + case 236: +#line 954 "Parser.rl" + {te = p+1;{ + negated = true; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 559;goto _again;}} + }} + break; + case 237: +#line 960 "Parser.rl" + {te = p+1;{ + negated = true; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 818;goto _again;}} + }} + break; + case 238: +#line 970 "Parser.rl" + {te = p+1;{ + currentCls->add(octAccumulator); + }} + break; + case 239: +#line 973 "Parser.rl" + {te = p+1;{ + currentCls->add(octAccumulator); + }} + break; + case 240: +#line 977 "Parser.rl" + {te = p+1;{ + string oct(ts + 3, te - ts - 4); + unsigned long val; + try { + val = stoul(oct, nullptr, 8); + } catch (const std::out_of_range &) { + val = MAX_UNICODE + 1; + } + if ((!mode.utf8 && val > 255) || val > MAX_UNICODE) { + throw LocatedParseError("Value in \\o{...} sequence is too large"); + } + currentCls->add((unichar)val); + }} + break; + case 241: +#line 997 "Parser.rl" + {te = p+1;{ + currentCls->add(accumulator); + }} + break; + case 242: +#line 1001 "Parser.rl" + {te = p+1;{ + // whatever we found here + currentCls->add(*(ts + 1)); + + }} + break; + case 243: +#line 1007 "Parser.rl" + {te = p+1;{ + string hex(ts + 3, te - ts - 4); + unsigned long val; + try { + val = stoul(hex, nullptr, 16); + } catch (const std::out_of_range &) { + val = MAX_UNICODE + 1; + } + if (val > MAX_UNICODE) { + throw LocatedParseError("Value in \\x{...} sequence is too large"); + } + currentCls->add((unichar)val); + }} + break; + case 244: +#line 1025 "Parser.rl" + {te = p+1;{ + if (te - ts < 3) { + assert(te - ts == 2); + throw LocatedParseError(SLASH_C_ERROR); + } else { + assert(te - ts == 3); + currentCls->add(decodeCtrl(ts[2])); + } + }} + break; + case 245: +#line 1035 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_WORD, false); + }} + break; + case 246: +#line 1039 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_WORD, true); + }} + break; + case 247: +#line 1043 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_SPACE, false); + }} + break; + case 248: +#line 1047 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_SPACE, true); + }} + break; + case 249: +#line 1051 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_DIGIT, false); + }} + break; + case 250: +#line 1055 "Parser.rl" + {te = p+1;{ + currentCls->add(CLASS_DIGIT, true); + }} + break; + case 251: +#line 1058 "Parser.rl" + {te = p+1;{ + currentCls->addDash(); + }} + break; + case 252: +#line 276 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "'\\" << *(ts + 1) << "' at index " << ts - ptr + << " not supported in a character class."; + throw ParseError(str.str()); + }} + break; + case 253: +#line 276 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "'\\" << *(ts + 1) << "' at index " << ts - ptr + << " not supported in a character class."; + throw ParseError(str.str()); + }} + break; + case 254: +#line 276 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "'\\" << *(ts + 1) << "' at index " << ts - ptr + << " not supported in a character class."; + throw ParseError(str.str()); + }} + break; + case 255: +#line 1075 "Parser.rl" + {te = p+1;{ + // add the literal char + currentCls->add(*(ts + 1)); + }} + break; + case 256: +#line 1081 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + currentCls->add(readUtf8CodePoint2c(ts)); + }} + break; + case 257: +#line 1086 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + currentCls->add(readUtf8CodePoint3c(ts)); + }} + break; + case 258: +#line 1091 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + currentCls->add(readUtf8CodePoint4c(ts)); + }} + break; + case 259: +#line 1096 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 260: +#line 1102 "Parser.rl" + {te = p+1;{ + currentCls->add((u8)*ts); + }} + break; + case 261: +#line 1106 "Parser.rl" + {te = p+1;{ + currentCls->finalize(); + currentSeq->addComponent(move(currentCls)); + inCharClass = false; + {cs = 746;goto _again;} + }} + break; + case 262: +#line 966 "Parser.rl" + {te = p;p--;{ throw LocatedParseError("Malformed property"); }} + break; + case 263: +#line 967 "Parser.rl" + {te = p;p--;{ throw LocatedParseError("Malformed property"); }} + break; + case 264: +#line 970 "Parser.rl" + {te = p;p--;{ + currentCls->add(octAccumulator); + }} + break; + case 265: +#line 973 "Parser.rl" + {te = p;p--;{ + currentCls->add(octAccumulator); + }} + break; + case 266: +#line 992 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Value in \\o{...} sequence is non-octal or missing braces"); + }} + break; + case 267: +#line 997 "Parser.rl" + {te = p;p--;{ + currentCls->add(accumulator); + }} + break; + case 268: +#line 1021 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Value in \\x{...} sequence is non-hex or missing }"); + }} + break; + case 269: +#line 1025 "Parser.rl" + {te = p;p--;{ + if (te - ts < 3) { + assert(te - ts == 2); + throw LocatedParseError(SLASH_C_ERROR); + } else { + assert(te - ts == 3); + currentCls->add(decodeCtrl(ts[2])); + } + }} + break; + case 270: +#line 1096 "Parser.rl" + {te = p;p--;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 271: +#line 1102 "Parser.rl" + {te = p;p--;{ + currentCls->add((u8)*ts); + }} + break; + case 272: +#line 992 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Value in \\o{...} sequence is non-octal or missing braces"); + }} + break; + case 273: +#line 1021 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Value in \\x{...} sequence is non-hex or missing }"); + }} + break; + case 274: +#line 1096 "Parser.rl" + {{p = ((te))-1;}{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 275: +#line 1102 "Parser.rl" + {{p = ((te))-1;}{ + currentCls->add((u8)*ts); + }} + break; + case 276: +#line 1120 "Parser.rl" + {te = p+1;{ + if (currentCls->isNegated()) { + // Already seen a caret; the second one is not a meta-character. + inCharClassEarly = false; + p--; {cs = 819;goto _again;} + } else { + currentCls->negate(); + // Note: we cannot switch off inCharClassEarly here, as /[^]]/ + // needs to use the right square bracket path below. + } + }} + break; + case 277: +#line 1133 "Parser.rl" + {te = p+1;{ + currentCls->add(']'); + inCharClassEarly = false; + }} + break; + case 278: +#line 1138 "Parser.rl" + {te = p+1;{ { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 843;goto _again;}} }} + break; + case 279: +#line 1139 "Parser.rl" + {te = p+1;{ /*noop*/}} + break; + case 280: +#line 1142 "Parser.rl" + {te = p+1;{ + inCharClassEarly = false; + p--; + {cs = 819;goto _again;} + }} + break; + case 281: +#line 1142 "Parser.rl" + {te = p;p--;{ + inCharClassEarly = false; + p--; + {cs = 819;goto _again;} + }} + break; + case 282: +#line 1154 "Parser.rl" + {te = p+1;{ + {cs = 746;goto _again;} + }} + break; + case 283: +#line 1159 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + cc->add(readUtf8CodePoint2c(ts)); + cc->finalize(); + currentSeq->addComponent(move(cc)); + }} + break; + case 284: +#line 1168 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + cc->add(readUtf8CodePoint3c(ts)); + cc->finalize(); + currentSeq->addComponent(move(cc)); + }} + break; + case 285: +#line 1177 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + cc->add(readUtf8CodePoint4c(ts)); + cc->finalize(); + currentSeq->addComponent(move(cc)); + }} + break; + case 286: +#line 1186 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 287: +#line 1192 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, *ts, mode); + }} + break; + case 288: +#line 1186 "Parser.rl" + {te = p;p--;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 289: +#line 1192 "Parser.rl" + {te = p;p--;{ + addLiteral(currentSeq, *ts, mode); + }} + break; + case 290: +#line 1186 "Parser.rl" + {{p = ((te))-1;}{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 291: +#line 1202 "Parser.rl" + {te = p+1;{ + {cs = stack[--top]; goto _again;} + }} + break; + case 292: +#line 1207 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + currentCls->add(readUtf8CodePoint2c(ts)); + inCharClassEarly = false; + }} + break; + case 293: +#line 1213 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + currentCls->add(readUtf8CodePoint3c(ts)); + inCharClassEarly = false; + }} + break; + case 294: +#line 1219 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + currentCls->add(readUtf8CodePoint4c(ts)); + inCharClassEarly = false; + }} + break; + case 295: +#line 1225 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 296: +#line 1231 "Parser.rl" + {te = p+1;{ + currentCls->add(*ts); + inCharClassEarly = false; + }} + break; + case 297: +#line 1225 "Parser.rl" + {te = p;p--;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 298: +#line 1231 "Parser.rl" + {te = p;p--;{ + currentCls->add(*ts); + inCharClassEarly = false; + }} + break; + case 299: +#line 1225 "Parser.rl" + {{p = ((te))-1;}{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 300: +#line 1243 "Parser.rl" + {te = p+1;{ inComment = false; {cs = 746;goto _again;} }} + break; + case 301: +#line 1247 "Parser.rl" + {te = p+1;} + break; + case 302: +#line 1255 "Parser.rl" + {te = p+1;{ inComment = false; {cs = 746;goto _again;} }} + break; + case 303: +#line 1259 "Parser.rl" + {te = p+1;} + break; + case 304: +#line 1491 "Parser.rl" + {act = 288;} + break; + case 305: +#line 1508 "Parser.rl" + {act = 290;} + break; + case 306: +#line 1737 "Parser.rl" + {act = 330;} + break; + case 307: +#line 362 "Parser.rl" + {te = p+1;{ + if (sequences.empty()) { + throw LocatedParseError("Unmatched parentheses"); + } + currentSeq->finalize(); + POP_SEQUENCE; + }} + break; + case 308: +#line 1274 "Parser.rl" + {te = p+1;{ + currentSeq->addAlternation(); + }} + break; + case 309: +#line 1279 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("POSIX named classes are only " + "supported inside a class"); + }} + break; + case 310: +#line 1286 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Unsupported POSIX collating " + "element"); + }} + break; + case 311: +#line 1293 "Parser.rl" + {te = p+1;{ + {cs = 838;goto _again;} + }} + break; + case 312: +#line 1297 "Parser.rl" + {te = p+1;{ /* noop */ }} + break; + case 313: +#line 1299 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent(generateComponent(CLASS_ANY, false, mode)); + }} + break; + case 314: +#line 1303 "Parser.rl" + {te = p+1;{ + if (mode.utf8) { + throw LocatedParseError("\\C is unsupported in UTF8"); + } + currentSeq->addComponent(std::make_unique()); + }} + break; + case 315: +#line 1317 "Parser.rl" + {te = p+1;{ + if (!currentSeq->addRepeat(0, ComponentRepeat::NoLimit, + ComponentRepeat::REPEAT_NONGREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 316: +#line 1324 "Parser.rl" + {te = p+1;{ + if (!currentSeq->addRepeat(0, ComponentRepeat::NoLimit, + ComponentRepeat::REPEAT_POSSESSIVE)) { + throwInvalidRepeat(); + } + }} + break; + case 317: +#line 1338 "Parser.rl" + {te = p+1;{ + if (!currentSeq->addRepeat(1, ComponentRepeat::NoLimit, + ComponentRepeat::REPEAT_NONGREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 318: +#line 1345 "Parser.rl" + {te = p+1;{ + if (!currentSeq->addRepeat(1, ComponentRepeat::NoLimit, + ComponentRepeat::REPEAT_POSSESSIVE)) { + throwInvalidRepeat(); + } + }} + break; + case 319: +#line 1359 "Parser.rl" + {te = p+1;{ + if (!currentSeq->addRepeat( + 0, 1, ComponentRepeat::REPEAT_NONGREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 320: +#line 1366 "Parser.rl" + {te = p+1;{ + if (!currentSeq->addRepeat( + 0, 1, ComponentRepeat::REPEAT_POSSESSIVE)) { + throwInvalidRepeat(); + } + }} + break; + case 321: +#line 1383 "Parser.rl" + {te = p+1;{ + if (repeatN > repeatM || repeatM == 0) { + throwInvalidRepeat(); + } else if (!currentSeq->addRepeat( + repeatN, repeatM, + ComponentRepeat::REPEAT_NONGREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 322: +#line 1393 "Parser.rl" + {te = p+1;{ + if (repeatN > repeatM || repeatM == 0) { + throwInvalidRepeat(); + } else if (!currentSeq->addRepeat( + repeatN, repeatM, + ComponentRepeat::REPEAT_POSSESSIVE)) { + throwInvalidRepeat(); + } + }} + break; + case 323: +#line 322 "Parser.rl" + {te = p+1;{ + inComment = true; + {cs = 849;goto _again;} + }} + break; + case 324: +#line 1410 "Parser.rl" + {te = p+1;{ p--; { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 787;goto _again;}} }} + break; + case 325: +#line 1414 "Parser.rl" + {te = p+1;{ assert(0); {p++; goto _out; } }} + break; + case 326: +#line 1421 "Parser.rl" + {te = p+1;{ + auto bound = mode.multiline ? ComponentBoundary::BEGIN_LINE + : ComponentBoundary::BEGIN_STRING; + currentSeq->addComponent(std::make_unique(bound)); + }} + break; + case 327: +#line 1428 "Parser.rl" + {te = p+1;{ + auto bound = mode.multiline ? ComponentBoundary::END_LINE + : ComponentBoundary::END_STRING_OPTIONAL_LF; + currentSeq->addComponent(std::make_unique(bound)); + }} + break; + case 328: +#line 1434 "Parser.rl" + {te = p+1;{ + auto bound = ComponentBoundary::BEGIN_STRING; + currentSeq->addComponent(std::make_unique(bound)); + }} + break; + case 329: +#line 1439 "Parser.rl" + {te = p+1;{ + auto bound = ComponentBoundary::END_STRING_OPTIONAL_LF; + currentSeq->addComponent(std::make_unique(bound)); + }} + break; + case 330: +#line 1444 "Parser.rl" + {te = p+1;{ + auto bound = ComponentBoundary::END_STRING; + currentSeq->addComponent(std::make_unique(bound)); + }} + break; + case 331: +#line 1449 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent( + std::make_unique(ts - ptr, false, mode)); + }} + break; + case 332: +#line 1454 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent( + std::make_unique(ts - ptr, true, mode)); + }} + break; + case 333: +#line 1464 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, '\x09', mode); + }} + break; + case 334: +#line 1468 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, '\x0a', mode); + }} + break; + case 335: +#line 1472 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, '\x0d', mode); + }} + break; + case 336: +#line 1476 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, '\x0c', mode); + }} + break; + case 337: +#line 1480 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, '\x07', mode); + }} + break; + case 338: +#line 1484 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, '\x1b', mode); + }} + break; + case 339: +#line 1488 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, octAccumulator, mode); + }} + break; + case 340: +#line 479 "Parser.rl" + {te = p+1;{ + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + currentSeq->addComponent(std::make_unique(accumulator)); + }} + break; + case 341: +#line 486 "Parser.rl" + {te = p+1;{ + // Accumulator is a negative offset. + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + if (accumulator >= groupIndex) { + throw LocatedParseError("Invalid reference"); + } + unsigned idx = groupIndex - accumulator; + currentSeq->addComponent(std::make_unique(idx)); + }} + break; + case 342: +#line 479 "Parser.rl" + {te = p+1;{ + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + currentSeq->addComponent(std::make_unique(accumulator)); + }} + break; + case 343: +#line 486 "Parser.rl" + {te = p+1;{ + // Accumulator is a negative offset. + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + if (accumulator >= groupIndex) { + throw LocatedParseError("Invalid reference"); + } + unsigned idx = groupIndex - accumulator; + currentSeq->addComponent(std::make_unique(idx)); + }} + break; + case 344: +#line 498 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent(std::make_unique(label)); + }} + break; + case 345: +#line 498 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent(std::make_unique(label)); + }} + break; + case 346: +#line 498 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent(std::make_unique(label)); + }} + break; + case 347: +#line 498 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent(std::make_unique(label)); + }} + break; + case 348: +#line 498 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent(std::make_unique(label)); + }} + break; + case 349: +#line 1549 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "Onigiruma subroutine call at index " << ts - ptr << + " not supported."; + throw ParseError(str.str()); + }} + break; + case 350: +#line 1560 "Parser.rl" + {te = p+1;{ + string oct(ts + 3, te - ts - 4); + unsigned long val; + try { + val = stoul(oct, nullptr, 8); + } catch (const std::out_of_range &) { + val = MAX_UNICODE + 1; + } + if ((!mode.utf8 && val > 255) || val > MAX_UNICODE) { + throw LocatedParseError("Value in \\o{...} sequence is too large"); + } + addEscapedOctal(currentSeq, (unichar)val, mode); + }} + break; + case 351: +#line 1578 "Parser.rl" + {te = p+1;{ + addEscapedHex(currentSeq, accumulator, mode); + }} + break; + case 352: +#line 1582 "Parser.rl" + {te = p+1;{ + string hex(ts + 3, te - ts - 4); + unsigned long val; + try { + val = stoul(hex, nullptr, 16); + } catch (const std::out_of_range &) { + val = MAX_UNICODE + 1; + } + if (val > MAX_UNICODE) { + throw LocatedParseError("Value in \\x{...} sequence is too large"); + } + addEscapedHex(currentSeq, (unichar)val, mode); + }} + break; + case 353: +#line 1600 "Parser.rl" + {te = p+1;{ + if (te - ts < 3) { + assert(te - ts == 2); + throw LocatedParseError(SLASH_C_ERROR); + } else { + assert(te - ts == 3); + addLiteral(currentSeq, decodeCtrl(ts[2]), mode); + } + }} + break; + case 354: +#line 1610 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "'\\" << *(ts + 1) << "' at index " << ts - ptr + << " not supported."; + throw ParseError(str.str()); + }} + break; + case 355: +#line 1618 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_WORD, false, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 356: +#line 1623 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_WORD, true, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 357: +#line 1628 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_SPACE, false, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 358: +#line 1633 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_SPACE, true, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 359: +#line 1638 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_DIGIT, false, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 360: +#line 1643 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_DIGIT, true, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 361: +#line 1648 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_HORZ, false, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 362: +#line 1653 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_HORZ, true, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 363: +#line 1658 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_VERT, false, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 364: +#line 1663 "Parser.rl" + {te = p+1;{ + auto cc = generateComponent(CLASS_VERT, true, mode); + currentSeq->addComponent(move(cc)); + }} + break; + case 365: +#line 1668 "Parser.rl" + {te = p+1;{ + assert(!currentCls && !inCharClass); + currentCls = getComponentClass(mode); + negated = false; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 559;goto _again;}} + }} + break; + case 366: +#line 1676 "Parser.rl" + {te = p+1;{ + assert(!currentCls && !inCharClass); + currentCls = getComponentClass(mode); + negated = false; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 818;goto _again;}} + }} + break; + case 367: +#line 1684 "Parser.rl" + {te = p+1;{ + assert(!currentCls && !inCharClass); + currentCls = getComponentClass(mode); + negated = true; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 559;goto _again;}} + }} + break; + case 368: +#line 1692 "Parser.rl" + {te = p+1;{ + assert(!currentCls && !inCharClass); + currentCls = getComponentClass(mode); + negated = true; + p--; + { + DEBUG_PRINTF("stack %zu top %d\n", stack.size(), top); + if ((int)stack.size() == top) { + stack.resize(2 * (top + 1)); + } + {stack[top++] = cs; cs = 818;goto _again;}} + }} + break; + case 369: +#line 1704 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "\\R at index " << ts - ptr << " not supported."; + throw ParseError(str.str()); + }} + break; + case 370: +#line 1711 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "\\K at index " << ts - ptr << " not supported."; + throw ParseError(str.str()); + }} + break; + case 371: +#line 1726 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "\\G at index " << ts - ptr << " not supported."; + throw ParseError(str.str()); + }} + break; + case 372: +#line 1732 "Parser.rl" + {te = p+1;{ + currentSeq->addComponent(std::make_unique(ts - ptr, mode)); + }} + break; + case 373: +#line 1737 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, *(ts + 1), mode); + }} + break; + case 374: +#line 316 "Parser.rl" + {te = p+1;{ + inComment = true; + {cs = 848;goto _again;} + }} + break; + case 375: +#line 433 "Parser.rl" + {te = p+1;{ + mode = newMode; + currentSeq->addComponent(std::make_unique()); + }} + break; + case 376: +#line 355 "Parser.rl" + {te = p+1;{ + PUSH_SEQUENCE; + mode = newMode; + currentSeq = + enterSequence(currentSeq, std::make_unique()); + }} + break; + case 377: +#line 369 "Parser.rl" + {te = p+1;{ + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(ComponentAssertion::LOOKAHEAD, + ComponentAssertion::POS)); + }} + break; + case 378: +#line 375 "Parser.rl" + {te = p+1;{ + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(ComponentAssertion::LOOKAHEAD, + ComponentAssertion::NEG)); + }} + break; + case 379: +#line 381 "Parser.rl" + {te = p+1;{ + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(ComponentAssertion::LOOKBEHIND, + ComponentAssertion::POS)); + }} + break; + case 380: +#line 387 "Parser.rl" + {te = p+1;{ + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(ComponentAssertion::LOOKBEHIND, + ComponentAssertion::NEG)); + }} + break; + case 381: +#line 393 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Embedded code is not supported"); + }} + break; + case 382: +#line 393 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Embedded code is not supported"); + }} + break; + case 383: +#line 416 "Parser.rl" + {te = p+1;{ + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique()); + }} + break; + case 384: +#line 336 "Parser.rl" + {te = p+1;{ + assert(!label.empty()); // should be guaranteed by machine + char c = *label.begin(); + if (c >= '0' && c <= '9') { + throw LocatedParseError("Group name cannot begin with a digit"); + } + if (!groupNames.insert(label).second) { + throw LocatedParseError("Two named subpatterns use the name '" + label + "'"); + } + PUSH_SEQUENCE; + auto seq = std::make_unique(); + seq->setCaptureIndex(groupIndex++); + seq->setCaptureName(label); + currentSeq = enterSequence(currentSeq, move(seq)); + }} + break; + case 385: +#line 399 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Subpattern reference unsupported"); + }} + break; + case 386: +#line 399 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Subpattern reference unsupported"); + }} + break; + case 387: +#line 1783 "Parser.rl" + {te = p+1;{ + auto a = std::make_unique( + ComponentAssertion::LOOKAHEAD, ComponentAssertion::POS); + ComponentAssertion *a_seq = a.get(); + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(move(a))); + PUSH_SEQUENCE; + currentSeq = a_seq; + }} + break; + case 388: +#line 1794 "Parser.rl" + {te = p+1;{ + auto a = std::make_unique( + ComponentAssertion::LOOKAHEAD, ComponentAssertion::NEG); + ComponentAssertion *a_seq = a.get(); + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(move(a))); + PUSH_SEQUENCE; + currentSeq = a_seq; + }} + break; + case 389: +#line 1805 "Parser.rl" + {te = p+1;{ + auto a = std::make_unique( + ComponentAssertion::LOOKBEHIND, ComponentAssertion::POS); + ComponentAssertion *a_seq = a.get(); + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(move(a))); + PUSH_SEQUENCE; + currentSeq = a_seq; + }} + break; + case 390: +#line 1816 "Parser.rl" + {te = p+1;{ + auto a = std::make_unique( + ComponentAssertion::LOOKBEHIND, ComponentAssertion::NEG); + ComponentAssertion *a_seq = a.get(); + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(move(a))); + PUSH_SEQUENCE; + currentSeq = a_seq; + }} + break; + case 391: +#line 1828 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Pattern recursion not supported"); + }} + break; + case 392: +#line 402 "Parser.rl" + {te = p+1;{ + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + PUSH_SEQUENCE; + currentSeq = enterSequence(currentSeq, + std::make_unique(accumulator)); + }} + break; + case 393: +#line 410 "Parser.rl" + {te = p+1;{ + PUSH_SEQUENCE; + assert(!label.empty()); + currentSeq = enterSequence(currentSeq, + std::make_unique(label)); + }} + break; + case 394: +#line 1844 "Parser.rl" + {te = p+1;{ + ostringstream str; + str << "Callout at index " << ts - ptr << " not supported."; + throw ParseError(str.str()); + }} + break; + case 395: +#line 1852 "Parser.rl" + {te = p+1;{ + throw LocatedParseError("Unrecognised character after (?"); + }} + break; + case 396: +#line 1857 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + cc->add(readUtf8CodePoint2c(ts)); + cc->finalize(); + currentSeq->addComponent(move(cc)); + }} + break; + case 397: +#line 1866 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + cc->add(readUtf8CodePoint3c(ts)); + cc->finalize(); + currentSeq->addComponent(move(cc)); + }} + break; + case 398: +#line 1875 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + /* leverage ComponentClass to generate the vertices */ + auto cc = getComponentClass(mode); + cc->add(readUtf8CodePoint4c(ts)); + cc->finalize(); + currentSeq->addComponent(move(cc)); + }} + break; + case 399: +#line 1884 "Parser.rl" + {te = p+1;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 400: +#line 1893 "Parser.rl" + {te = p+1;{ + if (mode.ignore_space == false) { + addLiteral(currentSeq, *ts, mode); + } + }} + break; + case 401: +#line 1898 "Parser.rl" + {te = p+1;{ + addLiteral(currentSeq, *ts, mode); + }} + break; + case 402: +#line 328 "Parser.rl" + {te = p;p--;{ + PUSH_SEQUENCE; + auto seq = std::make_unique(); + seq->setCaptureIndex(groupIndex++); + currentSeq = enterSequence(currentSeq, move(seq)); + }} + break; + case 403: +#line 421 "Parser.rl" + {te = p;p--;{ + assert(!currentCls); + assert(!inCharClass); // not reentrant + currentCls = getComponentClass(mode); + inCharClass = true; + inCharClassEarly = true; + currentClsBegin = ts; + {cs = 836;goto _again;} + }} + break; + case 404: +#line 1310 "Parser.rl" + {te = p;p--;{ + if (!currentSeq->addRepeat(0, ComponentRepeat::NoLimit, + ComponentRepeat::REPEAT_GREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 405: +#line 1331 "Parser.rl" + {te = p;p--;{ + if (!currentSeq->addRepeat(1, ComponentRepeat::NoLimit, + ComponentRepeat::REPEAT_GREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 406: +#line 1352 "Parser.rl" + {te = p;p--;{ + if (!currentSeq->addRepeat( + 0, 1, ComponentRepeat::REPEAT_GREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 407: +#line 1373 "Parser.rl" + {te = p;p--;{ + if (repeatN > repeatM || repeatM == 0) { + throwInvalidRepeat(); + } else if (!currentSeq->addRepeat( + repeatN, repeatM, + ComponentRepeat::REPEAT_GREEDY)) { + throwInvalidRepeat(); + } + }} + break; + case 408: +#line 1488 "Parser.rl" + {te = p;p--;{ + addLiteral(currentSeq, octAccumulator, mode); + }} + break; + case 409: +#line 1491 "Parser.rl" + {te = p;p--;{ + // If there are enough capturing sub expressions, this may be + // a back reference + accumulator = parseAsDecimal(octAccumulator); + if (accumulator < groupIndex) { + currentSeq->addComponent(std::make_unique(accumulator)); + } else { + addEscapedOctal(currentSeq, octAccumulator, mode); + } + }} + break; + case 410: +#line 479 "Parser.rl" + {te = p;p--;{ + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + currentSeq->addComponent(std::make_unique(accumulator)); + }} + break; + case 411: +#line 479 "Parser.rl" + {te = p;p--;{ + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + currentSeq->addComponent(std::make_unique(accumulator)); + }} + break; + case 412: +#line 486 "Parser.rl" + {te = p;p--;{ + // Accumulator is a negative offset. + if (accumulator == 0) { + throw LocatedParseError("Numbered reference cannot be zero"); + } + if (accumulator >= groupIndex) { + throw LocatedParseError("Invalid reference"); + } + unsigned idx = groupIndex - accumulator; + currentSeq->addComponent(std::make_unique(idx)); + }} + break; + case 413: +#line 1557 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Invalid reference after \\g"); + }} + break; + case 414: +#line 1574 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Value in \\o{...} sequence is non-octal or missing braces"); + }} + break; + case 415: +#line 1578 "Parser.rl" + {te = p;p--;{ + addEscapedHex(currentSeq, accumulator, mode); + }} + break; + case 416: +#line 1596 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Value in \\x{...} sequence is non-hex or missing }"); + }} + break; + case 417: +#line 1600 "Parser.rl" + {te = p;p--;{ + if (te - ts < 3) { + assert(te - ts == 2); + throw LocatedParseError(SLASH_C_ERROR); + } else { + assert(te - ts == 3); + addLiteral(currentSeq, decodeCtrl(ts[2]), mode); + } + }} + break; + case 418: +#line 1700 "Parser.rl" + {te = p;p--;{ throw LocatedParseError("Malformed property"); }} + break; + case 419: +#line 1701 "Parser.rl" + {te = p;p--;{ throw LocatedParseError("Malformed property"); }} + break; + case 420: +#line 1719 "Parser.rl" + {te = p;p--;{ + ostringstream str; + str << "\\k at index " << ts - ptr << " not supported."; + throw ParseError(str.str()); + }} + break; + case 421: +#line 1742 "Parser.rl" + {te = p;p--;{ + assert(ts + 1 == pe); + ostringstream str; + str << "Unescaped \\ at end of input, index " << ts - ptr << "."; + throw ParseError(str.str()); + }} + break; + case 422: +#line 396 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Conditional subpattern unsupported"); + }} + break; + case 423: +#line 1852 "Parser.rl" + {te = p;p--;{ + throw LocatedParseError("Unrecognised character after (?"); + }} + break; + case 424: +#line 1884 "Parser.rl" + {te = p;p--;{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 425: +#line 1898 "Parser.rl" + {te = p;p--;{ + addLiteral(currentSeq, *ts, mode); + }} + break; + case 426: +#line 328 "Parser.rl" + {{p = ((te))-1;}{ + PUSH_SEQUENCE; + auto seq = std::make_unique(); + seq->setCaptureIndex(groupIndex++); + currentSeq = enterSequence(currentSeq, move(seq)); + }} + break; + case 427: +#line 421 "Parser.rl" + {{p = ((te))-1;}{ + assert(!currentCls); + assert(!inCharClass); // not reentrant + currentCls = getComponentClass(mode); + inCharClass = true; + inCharClassEarly = true; + currentClsBegin = ts; + {cs = 836;goto _again;} + }} + break; + case 428: +#line 1557 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Invalid reference after \\g"); + }} + break; + case 429: +#line 1574 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Value in \\o{...} sequence is non-octal or missing braces"); + }} + break; + case 430: +#line 1596 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Value in \\x{...} sequence is non-hex or missing }"); + }} + break; + case 431: +#line 1719 "Parser.rl" + {{p = ((te))-1;}{ + ostringstream str; + str << "\\k at index " << ts - ptr << " not supported."; + throw ParseError(str.str()); + }} + break; + case 432: +#line 396 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Conditional subpattern unsupported"); + }} + break; + case 433: +#line 1852 "Parser.rl" + {{p = ((te))-1;}{ + throw LocatedParseError("Unrecognised character after (?"); + }} + break; + case 434: +#line 1884 "Parser.rl" + {{p = ((te))-1;}{ + assert(mode.utf8); + throwInvalidUtf8(); + }} + break; + case 435: +#line 1898 "Parser.rl" + {{p = ((te))-1;}{ + addLiteral(currentSeq, *ts, mode); + }} + break; + case 436: +#line 1 "NONE" + { switch( act ) { + case 288: + {{p = ((te))-1;} + // If there are enough capturing sub expressions, this may be + // a back reference + accumulator = parseAsDecimal(octAccumulator); + if (accumulator < groupIndex) { + currentSeq->addComponent(std::make_unique(accumulator)); + } else { + addEscapedOctal(currentSeq, octAccumulator, mode); + } + } + break; + case 290: + {{p = ((te))-1;} + // if there are enough left parens to this point, back ref + if (accumulator < groupIndex) { + currentSeq->addComponent(std::make_unique(accumulator)); + } else { + // Otherwise, we interpret the first three digits as an + // octal escape, and the remaining characters stand for + // themselves as literals. + const char *s = ts; + unsigned int accum = 0; + unsigned int oct_digits = 0; + assert(*s == '\\'); // token starts at backslash + for (++s; s < te && oct_digits < 3; ++oct_digits, ++s) { + u8 digit = *s - '0'; + if (digit < 8) { + accum = digit + accum * 8; + } else { + break; + } + } + + if (oct_digits > 0) { + addEscapedOctal(currentSeq, accum, mode); + } + + // And then the rest of the digits, if any, are literal. + for (; s < te; ++s) { + addLiteral(currentSeq, *s, mode); + } + } + } + break; + case 330: + {{p = ((te))-1;} + addLiteral(currentSeq, *(ts + 1), mode); + } + break; + } + } + break; +#line 5508 "Parser.cpp" + } + } + +_again: + _acts = _regex_actions + _regex_to_state_actions[cs]; + _nacts = (unsigned int) *_acts++; + while ( _nacts-- > 0 ) { + switch ( *_acts++ ) { + case 23: +#line 1 "NONE" + {ts = 0;} + break; +#line 5521 "Parser.cpp" + } + } + + if ( cs == 0 ) + goto _out; + if ( ++p != pe ) + goto _resume; + _test_eof: {} + if ( p == eof ) + { + if ( _regex_eof_trans[cs] > 0 ) { + _trans = _regex_eof_trans[cs] - 1; + goto _eof_trans; + } + const short *__acts = _regex_actions + _regex_eof_actions[cs]; + unsigned int __nacts = (unsigned int) *__acts++; + while ( __nacts-- > 0 ) { + switch ( *__acts++ ) { + case 22: +#line 730 "Parser.rl" + { throw LocatedParseError("Malformed property"); } + break; +#line 5544 "Parser.cpp" + } + } + } + + _out: {} + } + +#line 1984 "Parser.rl" + + if (p != pe && *p != '\0') { + // didn't make it to the end of our input, but we didn't throw a ParseError? + assert(0); + ostringstream str; + str << "Parse error at index " << (p - ptr) << "."; + throw ParseError(str.str()); + } + + if (currentCls) { + assert(inCharClass); + assert(currentClsBegin); + ostringstream oss; + oss << "Unterminated character class starting at index " + << currentClsBegin - ptr << "."; + throw ParseError(oss.str()); + } + + if (inComment) { + throw ParseError("Unterminated comment."); + } + + if (!sequences.empty()) { + ostringstream str; + str << "Missing close parenthesis for group started at index " + << sequences.back().seqOffset << "."; + throw ParseError(str.str()); + } + + // Unlikely, but possible + if (groupIndex > 65535) { + throw ParseError("The maximum number of capturing subexpressions is 65535."); + } + + // Finalize the top-level sequence, which will take care of any + // top-level alternation. + currentSeq->finalize(); + assert(currentSeq == rootSeq.get()); + + // Ensure that all references are valid. + checkReferences(*rootSeq, groupIndex, groupNames); + + return move(rootSeq); + } catch (LocatedParseError &error) { + if (ts >= ptr && ts <= pe) { + error.locate(ts - ptr); + } else { + error.locate(0); + } + throw; + } +} + +} // namespace ue2 diff --git a/contrib/vectorscan-cmake/rageled_files/control_verbs.cpp b/contrib/vectorscan-cmake/rageled_files/control_verbs.cpp new file mode 100644 index 00000000000..19b5c6955e1 --- /dev/null +++ b/contrib/vectorscan-cmake/rageled_files/control_verbs.cpp @@ -0,0 +1,443 @@ + +#line 1 "control_verbs.rl" +/* + * Copyright (c) 2017, Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Intel Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * \file + * \brief Parser for control verbs that can occur at the beginning of a pattern. + */ + +#include "parser/control_verbs.h" + +#include "parser/Parser.h" +#include "parser/parse_error.h" + +#include +#include + +using namespace std; + +namespace ue2 { + +const char *read_control_verbs(const char *ptr, const char *end, size_t start, + ParseMode &mode) { + const char *p = ptr; + const char *pe = end; + const char *eof = pe; + const char *ts, *te; + int cs; + UNUSED int act; + + +#line 59 "control_verbs.cpp" +static const char _ControlVerbs_actions[] = { + 0, 1, 0, 1, 1, 1, 2, 1, + 3, 1, 4, 1, 5, 1, 6, 1, + 7, 1, 8, 1, 9 +}; + +static const unsigned char _ControlVerbs_key_offsets[] = { + 0, 7, 8, 10, 12, 14, 16, 18, + 20, 21, 23, 25, 27, 30, 32, 34, + 36, 38, 40, 42, 44, 46, 48, 50, + 52, 55, 57, 59, 61, 63, 66, 68, + 70, 72, 74, 76, 79, 82, 84, 86, + 88, 90, 92, 94, 96, 98, 100, 102, + 105, 107, 109, 111, 113, 115, 117, 119, + 121, 123, 125, 127, 129, 131, 133, 135, + 137, 139, 141, 143, 146, 148, 149, 151, + 155, 157, 159, 160, 161 +}; + +static const char _ControlVerbs_trans_keys[] = { + 41, 65, 66, 67, 76, 78, 85, 41, + 41, 78, 41, 89, 41, 67, 41, 82, + 41, 76, 41, 70, 41, 41, 83, 41, + 82, 41, 95, 41, 65, 85, 41, 78, + 41, 89, 41, 67, 41, 78, 41, 73, + 41, 67, 41, 79, 41, 68, 41, 69, + 41, 82, 41, 76, 41, 70, 73, 41, + 77, 41, 73, 41, 84, 41, 95, 41, + 77, 82, 41, 65, 41, 84, 41, 67, + 41, 72, 41, 61, 41, 48, 57, 41, + 48, 57, 41, 69, 41, 67, 41, 85, + 41, 82, 41, 83, 41, 73, 41, 79, + 41, 78, 41, 79, 41, 95, 41, 65, + 83, 41, 85, 41, 84, 41, 79, 41, + 95, 41, 80, 41, 79, 41, 83, 41, + 83, 41, 69, 41, 83, 41, 83, 41, + 84, 41, 65, 41, 82, 41, 84, 41, + 95, 41, 79, 41, 80, 41, 84, 41, + 67, 84, 41, 80, 41, 41, 70, 41, + 49, 51, 56, 41, 54, 41, 50, 41, + 40, 42, 0 +}; + +static const char _ControlVerbs_single_lengths[] = { + 7, 1, 2, 2, 2, 2, 2, 2, + 1, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 3, 2, 2, + 2, 2, 2, 1, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 2, 1, 2, 4, + 2, 2, 1, 1, 1 +}; + +static const char _ControlVerbs_range_lengths[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 +}; + +static const short _ControlVerbs_index_offsets[] = { + 0, 8, 10, 13, 16, 19, 22, 25, + 28, 30, 33, 36, 39, 43, 46, 49, + 52, 55, 58, 61, 64, 67, 70, 73, + 76, 80, 83, 86, 89, 92, 96, 99, + 102, 105, 108, 111, 114, 117, 120, 123, + 126, 129, 132, 135, 138, 141, 144, 147, + 151, 154, 157, 160, 163, 166, 169, 172, + 175, 178, 181, 184, 187, 190, 193, 196, + 199, 202, 205, 208, 212, 215, 217, 220, + 225, 228, 231, 233, 235 +}; + +static const char _ControlVerbs_indicies[] = { + 0, 2, 3, 4, 5, 6, 7, 1, + 8, 1, 8, 9, 1, 8, 10, 1, + 11, 12, 1, 8, 13, 1, 8, 14, + 1, 8, 15, 1, 11, 1, 8, 16, + 1, 8, 17, 1, 8, 18, 1, 8, + 19, 20, 1, 8, 21, 1, 8, 22, + 1, 8, 12, 1, 8, 23, 1, 8, + 24, 1, 8, 25, 1, 8, 26, 1, + 8, 27, 1, 8, 15, 1, 8, 28, + 1, 11, 14, 1, 8, 15, 29, 1, + 8, 30, 1, 8, 31, 1, 8, 32, + 1, 8, 33, 1, 8, 34, 35, 1, + 8, 36, 1, 8, 37, 1, 8, 38, + 1, 8, 39, 1, 8, 40, 1, 8, + 41, 1, 11, 41, 1, 8, 42, 1, + 8, 43, 1, 8, 44, 1, 8, 45, + 1, 8, 46, 1, 8, 47, 1, 8, + 48, 1, 8, 39, 1, 8, 49, 1, + 8, 50, 1, 8, 51, 52, 1, 8, + 53, 1, 8, 54, 1, 8, 55, 1, + 8, 56, 1, 8, 57, 1, 8, 58, + 1, 8, 59, 1, 8, 60, 1, 8, + 61, 1, 8, 62, 1, 8, 15, 1, + 8, 63, 1, 8, 64, 1, 8, 65, + 1, 8, 66, 1, 8, 67, 1, 8, + 68, 1, 8, 69, 1, 8, 15, 1, + 8, 70, 71, 1, 8, 72, 1, 73, + 1, 8, 74, 1, 75, 76, 77, 78, + 1, 8, 15, 1, 8, 15, 1, 75, + 1, 80, 79, 82, 81, 0 +}; + +static const char _ControlVerbs_trans_targs[] = { + 75, 1, 2, 9, 22, 24, 45, 67, + 75, 3, 4, 75, 5, 6, 7, 8, + 10, 11, 12, 13, 16, 14, 15, 17, + 18, 19, 20, 21, 23, 25, 26, 27, + 28, 29, 30, 37, 31, 32, 33, 34, + 35, 36, 38, 39, 40, 41, 42, 43, + 44, 46, 47, 48, 59, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 60, + 61, 62, 63, 64, 65, 66, 68, 70, + 69, 75, 71, 75, 72, 73, 74, 75, + 76, 75, 0 +}; + +static const char _ControlVerbs_trans_actions[] = { + 19, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 0, 7, 0, 0, 0, 15, + 5, 17, 0 +}; + +static const char _ControlVerbs_to_state_actions[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0 +}; + +static const char _ControlVerbs_from_state_actions[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0 +}; + +static const short _ControlVerbs_eof_trans[] = { + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 82 +}; + +static const int ControlVerbs_start = 75; +static const int ControlVerbs_first_final = 75; +static const int ControlVerbs_error = -1; + +static const int ControlVerbs_en_main = 75; + + +#line 249 "control_verbs.cpp" + { + cs = ControlVerbs_start; + ts = 0; + te = 0; + act = 0; + } + +#line 105 "control_verbs.rl" + + + try { + +#line 262 "control_verbs.cpp" + { + int _klen; + unsigned int _trans; + const char *_acts; + unsigned int _nacts; + const char *_keys; + + if ( p == pe ) + goto _test_eof; +_resume: + _acts = _ControlVerbs_actions + _ControlVerbs_from_state_actions[cs]; + _nacts = (unsigned int) *_acts++; + while ( _nacts-- > 0 ) { + switch ( *_acts++ ) { + case 1: +#line 1 "NONE" + {ts = p;} + break; +#line 281 "control_verbs.cpp" + } + } + + _keys = _ControlVerbs_trans_keys + _ControlVerbs_key_offsets[cs]; + _trans = _ControlVerbs_index_offsets[cs]; + + _klen = _ControlVerbs_single_lengths[cs]; + if ( _klen > 0 ) { + const char *_lower = _keys; + const char *_mid; + const char *_upper = _keys + _klen - 1; + while (1) { + if ( _upper < _lower ) + break; + + _mid = _lower + ((_upper-_lower) >> 1); + if ( (*p) < *_mid ) + _upper = _mid - 1; + else if ( (*p) > *_mid ) + _lower = _mid + 1; + else { + _trans += (unsigned int)(_mid - _keys); + goto _match; + } + } + _keys += _klen; + _trans += _klen; + } + + _klen = _ControlVerbs_range_lengths[cs]; + if ( _klen > 0 ) { + const char *_lower = _keys; + const char *_mid; + const char *_upper = _keys + (_klen<<1) - 2; + while (1) { + if ( _upper < _lower ) + break; + + _mid = _lower + (((_upper-_lower) >> 1) & ~1); + if ( (*p) < _mid[0] ) + _upper = _mid - 2; + else if ( (*p) > _mid[1] ) + _lower = _mid + 2; + else { + _trans += (unsigned int)((_mid - _keys)>>1); + goto _match; + } + } + _trans += _klen; + } + +_match: + _trans = _ControlVerbs_indicies[_trans]; +_eof_trans: + cs = _ControlVerbs_trans_targs[_trans]; + + if ( _ControlVerbs_trans_actions[_trans] == 0 ) + goto _again; + + _acts = _ControlVerbs_actions + _ControlVerbs_trans_actions[_trans]; + _nacts = (unsigned int) *_acts++; + while ( _nacts-- > 0 ) + { + switch ( *_acts++ ) + { + case 2: +#line 1 "NONE" + {te = p+1;} + break; + case 3: +#line 76 "control_verbs.rl" + {te = p+1;{ + mode.utf8 = true; + }} + break; + case 4: +#line 80 "control_verbs.rl" + {te = p+1;{ + mode.ucp = true; + }} + break; + case 5: +#line 84 "control_verbs.rl" + {te = p+1;{ + ostringstream str; + str << "Unsupported control verb " << string(ts, te - ts); + throw LocatedParseError(str.str()); + }} + break; + case 6: +#line 90 "control_verbs.rl" + {te = p+1;{ + ostringstream str; + str << "Unknown control verb " << string(ts, te - ts); + throw LocatedParseError(str.str()); + }} + break; + case 7: +#line 97 "control_verbs.rl" + {te = p+1;{ + p--; + {p++; goto _out; } + }} + break; + case 8: +#line 97 "control_verbs.rl" + {te = p;p--;{ + p--; + {p++; goto _out; } + }} + break; + case 9: +#line 97 "control_verbs.rl" + {{p = ((te))-1;}{ + p--; + {p++; goto _out; } + }} + break; +#line 400 "control_verbs.cpp" + } + } + +_again: + _acts = _ControlVerbs_actions + _ControlVerbs_to_state_actions[cs]; + _nacts = (unsigned int) *_acts++; + while ( _nacts-- > 0 ) { + switch ( *_acts++ ) { + case 0: +#line 1 "NONE" + {ts = 0;} + break; +#line 413 "control_verbs.cpp" + } + } + + if ( ++p != pe ) + goto _resume; + _test_eof: {} + if ( p == eof ) + { + if ( _ControlVerbs_eof_trans[cs] > 0 ) { + _trans = _ControlVerbs_eof_trans[cs] - 1; + goto _eof_trans; + } + } + + _out: {} + } + +#line 109 "control_verbs.rl" + } catch (LocatedParseError &error) { + if (ts >= ptr && ts <= pe) { + error.locate(ts - ptr + start); + } else { + error.locate(0); + } + throw; + } + + return p; +} + +} // namespace ue2 diff --git a/contrib/hyperscan-cmake/x86_64/config.h b/contrib/vectorscan-cmake/x86_64/config.h similarity index 73% rename from contrib/hyperscan-cmake/x86_64/config.h rename to contrib/vectorscan-cmake/x86_64/config.h index 4786e3f4e21..eab2f3eb079 100644 --- a/contrib/hyperscan-cmake/x86_64/config.h +++ b/contrib/vectorscan-cmake/x86_64/config.h @@ -15,15 +15,42 @@ /* "Define if building for EM64T" */ #define ARCH_X86_64 +/* "Define if building for ARM32" */ +/* #undef ARCH_ARM32 */ + +/* "Define if building for AARCH64" */ +/* #undef ARCH_AARCH64 */ + +/* "Define if building for PPC64EL" */ +/* #undef ARCH_PPC64EL */ + +/* "Define if cross compiling for AARCH64" */ +/* #undef CROSS_COMPILE_AARCH64 */ + +/* Define if building SVE for AARCH64. */ +/* #undef BUILD_SVE */ + +/* Define if building SVE2 for AARCH64. */ +/* #undef BUILD_SVE2 */ + +/* Define if building SVE2+BITPERM for AARCH64. */ +/* #undef BUILD_SVE2_BITPERM */ + /* internal build, switch on dump support. */ /* #undef DUMP_SUPPORT */ /* Define if building "fat" runtime. */ /* #undef FAT_RUNTIME */ +/* Define if building AVX2 in the fat runtime. */ +/* #undef BUILD_AVX2 */ + /* Define if building AVX-512 in the fat runtime. */ /* #undef BUILD_AVX512 */ +/* Define if building AVX512VBMI in the fat runtime. */ +/* #undef BUILD_AVX512VBMI */ + /* Define to 1 if `backtrace' works. */ #define HAVE_BACKTRACE @@ -45,6 +72,15 @@ /* C compiler has intrin.h */ /* #undef HAVE_C_INTRIN_H */ +/* C compiler has arm_neon.h */ +/* #undef HAVE_C_ARM_NEON_H */ + +/* C compiler has arm_sve.h */ +/* #undef HAVE_C_ARM_SVE_H */ + +/* C compiler has arm_neon.h */ +/* #undef HAVE_C_PPC64EL_ALTIVEC_H */ + /* Define to 1 if you have the declaration of `pthread_setaffinity_np', and to 0 if you don't. */ /* #undef HAVE_DECL_PTHREAD_SETAFFINITY_NP */ @@ -85,7 +121,7 @@ /* #undef HAVE__ALIGNED_MALLOC */ /* Define if compiler has __builtin_constant_p */ -#define HAVE__BUILTIN_CONSTANT_P +/* #undef HAVE__BUILTIN_CONSTANT_P */ /* Optimize, inline critical functions */ #define HS_OPTIMIZE diff --git a/docs/en/development/contrib.md b/docs/en/development/contrib.md index 3936b613bcb..1fbbff7dcca 100644 --- a/docs/en/development/contrib.md +++ b/docs/en/development/contrib.md @@ -40,7 +40,7 @@ The list of third-party libraries: | googletest | [BSD 3-clause](https://github.com/google/googletest/blob/e7e591764baba0a0c3c9ad0014430e7a27331d16/LICENSE) | | grpc | [Apache](https://github.com/ClickHouse-Extras/grpc/blob/60c986e15cae70aade721d26badabab1f822fdd6/LICENSE) | | h3 | [Apache](https://github.com/ClickHouse-Extras/h3/blob/c7f46cfd71fb60e2fefc90e28abe81657deff735/LICENSE) | -| hyperscan | [Boost](https://github.com/ClickHouse-Extras/hyperscan/blob/e9f08df0213fc637aac0a5bbde9beeaeba2fe9fa/LICENSE) | +| vectorscan | [Boost](https://github.com/ClickHouse-Extras/hyperscan/blob/73695e419c27af7fe2a099c7aa57931cc02aea5d/LICENSE) | | icu | [Public Domain](https://github.com/unicode-org/icu/blob/a56dde820dc35665a66f2e9ee8ba58e75049b668/icu4c/LICENSE) | | icudata | [Public Domain](https://github.com/ClickHouse-Extras/icudata/blob/72d9a4a7febc904e2b0a534ccb25ae40fac5f1e5/LICENSE) | | jemalloc | [BSD 2-clause](https://github.com/ClickHouse-Extras/jemalloc/blob/e6891d9746143bf2cf617493d880ba5a0b9a3efd/COPYING) | diff --git a/src/Functions/CMakeLists.txt b/src/Functions/CMakeLists.txt index 60386908f01..a37891377f4 100644 --- a/src/Functions/CMakeLists.txt +++ b/src/Functions/CMakeLists.txt @@ -86,8 +86,8 @@ if (TARGET ch_contrib::h3) target_link_libraries (clickhouse_functions PRIVATE ch_contrib::h3) endif() -if (TARGET ch_contrib::hyperscan) - target_link_libraries(clickhouse_functions PRIVATE ch_contrib::hyperscan) +if (TARGET ch_contrib::vectorscan) + target_link_libraries(clickhouse_functions PRIVATE ch_contrib::vectorscan) endif() if (TARGET ch_contrib::simdjson) diff --git a/src/Functions/MultiMatchAllIndicesImpl.h b/src/Functions/MultiMatchAllIndicesImpl.h index adf9e9b585f..80a71548deb 100644 --- a/src/Functions/MultiMatchAllIndicesImpl.h +++ b/src/Functions/MultiMatchAllIndicesImpl.h @@ -9,7 +9,7 @@ #include "config_functions.h" #include -#if USE_HYPERSCAN +#if USE_VECTORSCAN # include #endif @@ -60,7 +60,7 @@ struct MultiMatchAllIndicesImpl [[maybe_unused]] std::optional edit_distance) { offsets.resize(haystack_offsets.size()); -#if USE_HYPERSCAN +#if USE_VECTORSCAN const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); hs_scratch_t * scratch = nullptr; hs_error_t err = hs_clone_scratch(hyperscan_regex->getScratch(), &scratch); @@ -97,7 +97,7 @@ struct MultiMatchAllIndicesImpl on_match, &res); if (err != HS_SUCCESS) - throw Exception("Failed to scan with hyperscan", ErrorCodes::HYPERSCAN_CANNOT_SCAN_TEXT); + throw Exception("Failed to scan with vectorscan", ErrorCodes::HYPERSCAN_CANNOT_SCAN_TEXT); offsets[i] = res.size(); offset = haystack_offsets[i]; } @@ -108,9 +108,9 @@ struct MultiMatchAllIndicesImpl (void)res; (void)offsets; throw Exception( - "multi-search all indices is not implemented when hyperscan is off (is it x86 processor?)", + "multi-search all indices is not implemented when vectorscan is off", ErrorCodes::NOT_IMPLEMENTED); -#endif // USE_HYPERSCAN +#endif // USE_VECTORSCAN } }; diff --git a/src/Functions/MultiMatchAnyImpl.h b/src/Functions/MultiMatchAnyImpl.h index 8a65c8cb2b4..fbbefe7be1d 100644 --- a/src/Functions/MultiMatchAnyImpl.h +++ b/src/Functions/MultiMatchAnyImpl.h @@ -8,7 +8,7 @@ #include "config_functions.h" #include -#if USE_HYPERSCAN +#if USE_VECTORSCAN # include #else # include "MatchImpl.h" @@ -64,13 +64,13 @@ struct MultiMatchAnyImpl (void)FindAny; (void)FindAnyIndex; res.resize(haystack_offsets.size()); -#if USE_HYPERSCAN +#if USE_VECTORSCAN const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); hs_scratch_t * scratch = nullptr; hs_error_t err = hs_clone_scratch(hyperscan_regex->getScratch(), &scratch); if (err != HS_SUCCESS) - throw Exception("Could not clone scratch space for hyperscan", ErrorCodes::CANNOT_ALLOCATE_MEMORY); + throw Exception("Could not clone scratch space for vectorscan", ErrorCodes::CANNOT_ALLOCATE_MEMORY); MultiRegexps::ScratchPtr smart_scratch(scratch); @@ -92,7 +92,7 @@ struct MultiMatchAnyImpl for (size_t i = 0; i < haystack_offsets_size; ++i) { UInt64 length = haystack_offsets[i] - offset - 1; - /// Hyperscan restriction. + /// Vectorscan restriction. if (length > std::numeric_limits::max()) throw Exception("Too long string to search", ErrorCodes::TOO_MANY_BYTES); /// Zero the result, scan, check, update the offset. @@ -106,14 +106,14 @@ struct MultiMatchAnyImpl on_match, &res[i]); if (err != HS_SUCCESS && err != HS_SCAN_TERMINATED) - throw Exception("Failed to scan with hyperscan", ErrorCodes::HYPERSCAN_CANNOT_SCAN_TEXT); + throw Exception("Failed to scan with vectorscan", ErrorCodes::HYPERSCAN_CANNOT_SCAN_TEXT); offset = haystack_offsets[i]; } #else - /// Fallback if do not use hyperscan + /// Fallback if do not use vectorscan if constexpr (MultiSearchDistance) throw Exception( - "Edit distance multi-search is not implemented when hyperscan is off (is it x86 processor?)", + "Edit distance multi-search is not implemented when vectorscan is off", ErrorCodes::NOT_IMPLEMENTED); PaddedPODArray accum(res.size()); memset(res.data(), 0, res.size() * sizeof(res.front())); @@ -129,7 +129,7 @@ struct MultiMatchAnyImpl res[i] = j + 1; } } -#endif // USE_HYPERSCAN +#endif // USE_VECTORSCAN } }; diff --git a/src/Functions/Regexps.h b/src/Functions/Regexps.h index 952e27b29bc..ac37875f91e 100644 --- a/src/Functions/Regexps.h +++ b/src/Functions/Regexps.h @@ -16,7 +16,7 @@ #include "config_functions.h" -#if USE_HYPERSCAN +#if USE_VECTORSCAN # include #endif @@ -103,7 +103,7 @@ private: } -#if USE_HYPERSCAN +#if USE_VECTORSCAN namespace MultiRegexps { @@ -312,6 +312,6 @@ inline Regexps * get(const std::vector & patterns, std::optional Date: Fri, 24 Jun 2022 12:19:41 +0300 Subject: [PATCH 199/525] Revert "Add support for io_uring read method" --- .gitmodules | 3 - contrib/CMakeLists.txt | 1 - contrib/liburing | 1 - contrib/liburing-cmake/CMakeLists.txt | 41 --- contrib/liburing-cmake/compat.h.in | 40 --- docker/test/fasttest/run.sh | 2 - src/CMakeLists.txt | 5 - src/Common/CurrentMetrics.cpp | 2 - src/Common/ErrorCodes.cpp | 3 - src/Common/ProfileEvents.cpp | 5 +- src/Core/Settings.h | 2 +- src/Disks/IO/IOUringReader.cpp | 303 ------------------ src/Disks/IO/IOUringReader.h | 78 ----- src/Disks/IO/createReadBufferFromFileBase.cpp | 15 - src/IO/ReadSettings.h | 7 - tests/clickhouse-test | 1 - .../02051_read_settings.reference.j2 | 2 +- .../0_stateless/02051_read_settings.sql.j2 | 2 +- 18 files changed, 4 insertions(+), 509 deletions(-) delete mode 160000 contrib/liburing delete mode 100644 contrib/liburing-cmake/CMakeLists.txt delete mode 100644 contrib/liburing-cmake/compat.h.in delete mode 100644 src/Disks/IO/IOUringReader.cpp delete mode 100644 src/Disks/IO/IOUringReader.h diff --git a/.gitmodules b/.gitmodules index b102267c7aa..55fd684fddb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -268,6 +268,3 @@ [submodule "contrib/hashidsxx"] path = contrib/hashidsxx url = https://github.com/schoentoon/hashidsxx.git -[submodule "contrib/liburing"] - path = contrib/liburing - url = https://github.com/axboe/liburing.git diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index c2ffd0131da..09cf80595a7 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -120,7 +120,6 @@ add_contrib (simdjson-cmake simdjson) add_contrib (rapidjson-cmake rapidjson) add_contrib (fastops-cmake fastops) add_contrib (libuv-cmake libuv) -add_contrib (liburing-cmake liburing) add_contrib (amqpcpp-cmake AMQP-CPP) # requires: libuv add_contrib (cassandra-cmake cassandra) # requires: libuv diff --git a/contrib/liburing b/contrib/liburing deleted file mode 160000 index b1735ffa9c5..00000000000 --- a/contrib/liburing +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b1735ffa9c5dc5ec18c8fbc121b7b0bc417cdc89 diff --git a/contrib/liburing-cmake/CMakeLists.txt b/contrib/liburing-cmake/CMakeLists.txt deleted file mode 100644 index f40690980da..00000000000 --- a/contrib/liburing-cmake/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -set (ENABLE_LIBURING_DEFAULT ${ENABLE_LIBRARIES}) - -if (NOT OS_LINUX) - set (ENABLE_LIBURING_DEFAULT OFF) -endif () - -option (ENABLE_LIBURING "Enable liburing" ${ENABLE_LIBURING_DEFAULT}) - -if (NOT ENABLE_LIBURING) - message(STATUS "Not using liburing") - return() -endif() - -set (LIBURING_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/liburing/src/include") -set (LIBURING_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/liburing/src") - -set (SRCS - "${LIBURING_SOURCE_DIR}/queue.c" - "${LIBURING_SOURCE_DIR}/register.c" - "${LIBURING_SOURCE_DIR}/setup.c" - "${LIBURING_SOURCE_DIR}/syscall.c" -) - -set (LIBURING_COMPAT_INCLUDE_DIR "${ClickHouse_BINARY_DIR}/contrib/liburing/src/include-compat") -set (LIBURING_COMPAT_HEADER "${LIBURING_COMPAT_INCLUDE_DIR}/liburing/compat.h") - -set (LIBURING_CONFIG_HAS_KERNEL_RWF_T, "yes") -set (LIBURING_CONFIG_HAS_KERNEL_TIMESPEC, "no") -set (LIBURING_CONFIG_HAS_OPEN_HOW, "no") -set (LIBURING_CONFIG_HAS_STATX, "no") -set (LIBURING_CONFIG_HAS_GLIBC_STATX, "no") - -add_compile_definitions(_GNU_SOURCE) -add_compile_definitions(LIBURING_INTERNAL) - -configure_file (compat.h.in ${LIBURING_COMPAT_HEADER}) - -add_library (_liburing ${SRCS}) -add_library (ch_contrib::liburing ALIAS _liburing) - -target_include_directories (_liburing SYSTEM PUBLIC ${LIBURING_COMPAT_INCLUDE_DIR} "${LIBURING_SOURCE_DIR}/include") diff --git a/contrib/liburing-cmake/compat.h.in b/contrib/liburing-cmake/compat.h.in deleted file mode 100644 index ae35f84a885..00000000000 --- a/contrib/liburing-cmake/compat.h.in +++ /dev/null @@ -1,40 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -#ifndef LIBURING_COMPAT_H -#define LIBURING_COMPAT_H - -# cmakedefine LIBURING_CONFIG_HAS_KERNEL_RWF_T -# cmakedefine LIBURING_CONFIG_HAS_KERNEL_TIMESPEC -# cmakedefine LIBURING_CONFIG_HAS_OPEN_HOW -# cmakedefine LIBURING_CONFIG_HAS_GLIBC_STATX -# cmakedefine LIBURING_CONFIG_HAS_STATX - -#if !defined(LIBURING_CONFIG_HAS_KERNEL_RWF_T) -typedef int __kernel_rwf_t; -#endif - -#if !defined(LIBURING_CONFIG_HAS_KERNEL_TIMESPEC) -#include - -struct __kernel_timespec { - int64_t tv_sec; - long long tv_nsec; -}; -#else -#include -#endif - -#if !defined(LIBURING_CONFIG_HAS_OPEN_HOW) -#include - -struct open_how { - uint64_t flags; - uint64_t mode; - uint64_t resolve; -}; -#endif - -#if !defined(LIBURING_CONFIG_HAS_GLIBC_STATX) && defined(LIBURING_CONFIG_HAS_STATX) -#include -#endif - -#endif diff --git a/docker/test/fasttest/run.sh b/docker/test/fasttest/run.sh index 537a96e2c4f..2bbdd978e5e 100755 --- a/docker/test/fasttest/run.sh +++ b/docker/test/fasttest/run.sh @@ -135,7 +135,6 @@ function clone_submodules contrib/replxx contrib/wyhash contrib/hashidsxx - contrib/liburing ) git submodule sync @@ -158,7 +157,6 @@ function run_cmake "-DENABLE_NURAFT=1" "-DENABLE_JEMALLOC=1" "-DENABLE_REPLXX=1" - "-DENABLE_LIBURING=1" ) # TODO remove this? we don't use ccache anyway. An option would be to download it diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4ceb821ac69..10bdc464ac6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -498,11 +498,6 @@ if (TARGET ch_contrib::msgpack) target_link_libraries (clickhouse_common_io PUBLIC ch_contrib::msgpack) endif() -if (TARGET ch_contrib::liburing) - target_link_libraries (clickhouse_common_io PUBLIC ch_contrib::liburing) - target_include_directories (clickhouse_common_io SYSTEM BEFORE PUBLIC ${LIBURING_COMPAT_INCLUDE_DIR} ${LIBURING_INCLUDE_DIR}) -endif() - target_link_libraries (clickhouse_common_io PUBLIC ch_contrib::fast_float) if (USE_ORC) diff --git a/src/Common/CurrentMetrics.cpp b/src/Common/CurrentMetrics.cpp index 216b8af974f..fa9c60c6f79 100644 --- a/src/Common/CurrentMetrics.cpp +++ b/src/Common/CurrentMetrics.cpp @@ -93,8 +93,6 @@ M(CacheFileSegments, "Number of existing cache file segments") \ M(CacheDetachedFileSegments, "Number of existing detached cache file segments") \ M(S3Requests, "S3 requests") \ - M(IOUringPendingEvents, "Number of io_uring SQEs waiting to be submitted") \ - M(IOUringInFlightEvents, "Number of io_uring SQEs in flight") \ namespace CurrentMetrics { diff --git a/src/Common/ErrorCodes.cpp b/src/Common/ErrorCodes.cpp index ca2257e4cd9..6f2ac41cc08 100644 --- a/src/Common/ErrorCodes.cpp +++ b/src/Common/ErrorCodes.cpp @@ -633,9 +633,6 @@ M(662, FS_METADATA_ERROR) \ M(663, CANNOT_COLLECT_OBJECTS_FOR_BACKUP) \ M(664, ACCESS_STORAGE_DOESNT_ALLOW_BACKUP) \ - M(665, IO_URING_INIT_FAILED) \ - M(666, IO_URING_SUBMIT_ERROR) \ - M(667, IO_URING_WAIT_ERROR) \ \ M(999, KEEPER_EXCEPTION) \ M(1000, POCO_EXCEPTION) \ diff --git a/src/Common/ProfileEvents.cpp b/src/Common/ProfileEvents.cpp index fd14128285c..6a15b3be699 100644 --- a/src/Common/ProfileEvents.cpp +++ b/src/Common/ProfileEvents.cpp @@ -344,10 +344,7 @@ \ M(ScalarSubqueriesGlobalCacheHit, "Number of times a read from a scalar subquery was done using the global cache") \ M(ScalarSubqueriesLocalCacheHit, "Number of times a read from a scalar subquery was done using the local cache") \ - M(ScalarSubqueriesCacheMiss, "Number of times a read from a scalar subquery was not cached and had to be calculated completely") \ - \ - M(IOUringSQEsSubmitted, "Total number of io_uring SQEs submitted") \ - M(IOUringSQEsResubmits, "Total number of io_uring SQE resubmits performed") \ + M(ScalarSubqueriesCacheMiss, "Number of times a read from a scalar subquery was not cached and had to be calculated completely") namespace ProfileEvents { diff --git a/src/Core/Settings.h b/src/Core/Settings.h index a6ea6f3ba2a..f1fd9d20f00 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -553,7 +553,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(UInt64, function_range_max_elements_in_block, 500000000, "Maximum number of values generated by function 'range' per block of data (sum of array sizes for every row in a block, see also 'max_block_size' and 'min_insert_block_size_rows'). It is a safety threshold.", 0) \ M(ShortCircuitFunctionEvaluation, short_circuit_function_evaluation, ShortCircuitFunctionEvaluation::ENABLE, "Setting for short-circuit function evaluation configuration. Possible values: 'enable' - use short-circuit function evaluation for functions that are suitable for it, 'disable' - disable short-circuit function evaluation, 'force_enable' - use short-circuit function evaluation for all functions.", 0) \ \ - M(String, local_filesystem_read_method, "pread_threadpool", "Method of reading data from local filesystem, one of: read, pread, mmap, io_uring, pread_threadpool.", 0) \ + M(String, local_filesystem_read_method, "pread_threadpool", "Method of reading data from local filesystem, one of: read, pread, mmap, pread_threadpool.", 0) \ M(String, remote_filesystem_read_method, "threadpool", "Method of reading data from remote filesystem, one of: read, threadpool.", 0) \ M(Bool, local_filesystem_read_prefetch, false, "Should use prefetching when reading data from local filesystem.", 0) \ M(Bool, remote_filesystem_read_prefetch, true, "Should use prefetching when reading data from remote filesystem.", 0) \ diff --git a/src/Disks/IO/IOUringReader.cpp b/src/Disks/IO/IOUringReader.cpp deleted file mode 100644 index fa7a4ea2bdb..00000000000 --- a/src/Disks/IO/IOUringReader.cpp +++ /dev/null @@ -1,303 +0,0 @@ -#if defined(OS_LINUX) - -#include "IOUringReader.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace ProfileEvents -{ - extern const Event ReadBufferFromFileDescriptorRead; - extern const Event ReadBufferFromFileDescriptorReadFailed; - extern const Event ReadBufferFromFileDescriptorReadBytes; - - extern const Event IOUringSQEsSubmitted; - extern const Event IOUringSQEsResubmits; -} - -namespace CurrentMetrics -{ - extern const Metric IOUringPendingEvents; - extern const Metric IOUringInFlightEvents; - extern const Metric Read; -} - -namespace DB -{ - -namespace ErrorCodes -{ - extern const int LOGICAL_ERROR; - extern const int CANNOT_READ_FROM_FILE_DESCRIPTOR; - extern const int IO_URING_INIT_FAILED; - extern const int IO_URING_SUBMIT_ERROR; - extern const int IO_URING_WAIT_ERROR; -} - -IOUringReader::IOUringReader(uint32_t entries_) - : log(&Poco::Logger::get("IOUringReader")) -{ - struct io_uring_probe * probe = io_uring_get_probe(); - if (!probe) - { - is_supported = false; - return; - } - - is_supported = io_uring_opcode_supported(probe, IORING_OP_READ); - io_uring_free_probe(probe); - - if (!is_supported) - return; - - struct io_uring_params params = - { - .cq_entries = 0, // filled by the kernel, initializing to silence warning - .flags = 0, - }; - - int ret = io_uring_queue_init_params(entries_, &ring, ¶ms); - if (ret < 0) - throwFromErrno("Failed initializing io_uring", ErrorCodes::IO_URING_INIT_FAILED, -ret); - - cq_entries = params.cq_entries; - ring_completion_monitor = ThreadFromGlobalPool([this] { monitorRing(); }); -} - -std::future IOUringReader::submit(Request request) -{ - assert(request.size); - - // take lock here because we're modifying containers and submitting to the ring, - // the monitor thread can also do the same - std::unique_lock lock{mutex}; - - // use the requested read destination address as the request id, the assumption - // here is that we won't get asked to fill in the same address more than once in parallel - auto request_id = reinterpret_cast(request.buf); - - std::promise promise; - auto enqueued_request = EnqueuedRequest - { - .promise = std::move(promise), - .request = request, - .resubmitting = false, - .bytes_read = 0 - }; - - // if there's room in the completion queue submit the request to the ring immediately, - // otherwise push it to the back of the pending queue - if (in_flight_requests.size() < cq_entries) - { - if (submitToRing(enqueued_request)) - { - const auto [kv, success] = in_flight_requests.emplace(request_id, std::move(enqueued_request)); - if (!success) - { - ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); - return makeFailedResult(ErrorCodes::LOGICAL_ERROR, "Tried enqueuing read request for {} that is already submitted", request_id); - } - return (kv->second).promise.get_future(); - } - else - { - ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); - return makeFailedResult(ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed submitting SQE"); - } - } - else - { - CurrentMetrics::add(CurrentMetrics::IOUringPendingEvents); - pending_requests.push_back(std::move(enqueued_request)); - return pending_requests.back().promise.get_future(); - } -} - -bool IOUringReader::submitToRing(EnqueuedRequest & enqueued) -{ - struct io_uring_sqe * sqe = io_uring_get_sqe(&ring); - if (!sqe) - return false; - - auto request = enqueued.request; - auto request_id = reinterpret_cast(request.buf); - int fd = assert_cast(*request.descriptor).fd; - - io_uring_sqe_set_data64(sqe, request_id); - io_uring_prep_read(sqe, fd, request.buf, request.size - enqueued.bytes_read, request.offset + enqueued.bytes_read); - int submitted = io_uring_submit(&ring); - - if (submitted <= 0) - return false; - - if (!enqueued.resubmitting) - { - ProfileEvents::increment(ProfileEvents::IOUringSQEsSubmitted); - CurrentMetrics::add(CurrentMetrics::IOUringInFlightEvents); - CurrentMetrics::add(CurrentMetrics::Read); - } - - return true; -} - -void IOUringReader::failRequest(const EnqueuedIterator & requestIt, int code, const std::string & message) -{ - ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); - (requestIt->second).promise.set_exception(std::make_exception_ptr(Exception(code, message))); - - finalizeRequest(requestIt); -} - -void IOUringReader::finalizeRequest(const EnqueuedIterator & requestIt) -{ - in_flight_requests.erase(requestIt); - - CurrentMetrics::sub(CurrentMetrics::IOUringInFlightEvents); - CurrentMetrics::sub(CurrentMetrics::Read); - - // since we just finalized a request there's now room in the completion queue, - // see if there are any pending requests and submit one from the front of the queue - if (!pending_requests.empty()) - { - auto pending_request = std::move(pending_requests.front()); - pending_requests.pop_front(); - - if (submitToRing(pending_request)) - { - auto request_id = reinterpret_cast(pending_request.request.buf); - if (!in_flight_requests.contains(request_id)) - in_flight_requests.emplace(request_id, std::move(pending_request)); - else - failPromise(pending_request.promise, - ErrorCodes::LOGICAL_ERROR, - "Tried enqueuing pending read request for {} that is already submitted", request_id); - } - else - { - failPromise(pending_request.promise, ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed submitting SQE for pending request"); - ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadFailed); - } - - CurrentMetrics::sub(CurrentMetrics::IOUringPendingEvents); - } -} - -void IOUringReader::monitorRing() -{ - setThreadName("IOUringMonitor"); - - while (!cancelled.load(std::memory_order_relaxed)) - { - // we can't use wait_cqe_* variants with timeouts as they can - // submit timeout events in older kernels that do not support IORING_FEAT_EXT_ARG - // and it is not safe to mix submission and consumption event threads. - struct io_uring_cqe * cqe; - int ret = io_uring_wait_cqe(&ring, &cqe); - - if (ret == -EAGAIN || ret == -EINTR) - continue; - - if (ret < 0) - { - LOG_ERROR(log, "Failed waiting for io_uring CQEs: {}", errnoToString(ErrorCodes::IO_URING_WAIT_ERROR, -ret)); - continue; - } - - // user_data zero means a noop event sent from the destructor meant to interrupt the thread - if (cancelled.load(std::memory_order_relaxed) || cqe->user_data == 0) - { - LOG_DEBUG(log, "Stopping IOUringMonitor thread"); - break; - } - - // it is safe to re-submit events once we take the lock here - std::unique_lock lock{mutex}; - - auto request_id = cqe->user_data; - const auto it = in_flight_requests.find(request_id); - if (it == in_flight_requests.end()) - { - LOG_ERROR(log, "Got a completion event for a request {} that was not submitted", request_id); - continue; - } - - auto & enqueued = it->second; - - if (cqe->res == -EAGAIN) - { - enqueued.resubmitting = true; - ProfileEvents::increment(ProfileEvents::IOUringSQEsResubmits); - - if (!submitToRing(enqueued)) - failRequest(it, ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed re-submitting SQE"); - - io_uring_cqe_seen(&ring, cqe); - continue; - } - - if (cqe->res < 0) - { - int fd = assert_cast(*enqueued.request.descriptor).fd; - failRequest(it, ErrorCodes::CANNOT_READ_FROM_FILE_DESCRIPTOR, fmt::format("Cannot read from file {}", fd)); - - io_uring_cqe_seen(&ring, cqe); - continue; - } - - size_t bytes_read = cqe->res; - size_t total_bytes_read = enqueued.bytes_read + bytes_read; - - if (bytes_read > 0) - { - __msan_unpoison(enqueued.request.buf + enqueued.bytes_read, bytes_read); - - ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorRead); - ProfileEvents::increment(ProfileEvents::ReadBufferFromFileDescriptorReadBytes, bytes_read); - } - - if (bytes_read > 0 && total_bytes_read < enqueued.request.size) - { - // potential short read, re-submit - enqueued.resubmitting = true; - enqueued.bytes_read += bytes_read; - if (!submitToRing(enqueued)) - failRequest(it, ErrorCodes::IO_URING_SUBMIT_ERROR, "Failed re-submitting SQE for short read"); - } - else - { - enqueued.promise.set_value(Result{ .size = total_bytes_read, .offset = enqueued.request.ignore }); - finalizeRequest(it); - } - - io_uring_cqe_seen(&ring, cqe); - } -} - -IOUringReader::~IOUringReader() -{ - cancelled.store(true, std::memory_order_relaxed); - - // interrupt the monitor thread by sending a noop event - { - std::unique_lock lock{mutex}; - - struct io_uring_sqe * sqe = io_uring_get_sqe(&ring); - io_uring_prep_nop(sqe); - io_uring_sqe_set_data(sqe, nullptr); - io_uring_submit(&ring); - } - - ring_completion_monitor.join(); - - io_uring_queue_exit(&ring); -} - -} -#endif diff --git a/src/Disks/IO/IOUringReader.h b/src/Disks/IO/IOUringReader.h deleted file mode 100644 index 74de9761cbe..00000000000 --- a/src/Disks/IO/IOUringReader.h +++ /dev/null @@ -1,78 +0,0 @@ -#pragma once -#if defined(OS_LINUX) - -#include -#include -#include -#include -#include - -namespace DB -{ - -/** Perform reads using the io_uring Linux subsystem. - * - * The class sets up a single io_uring that clients submit read requests to, they are - * placed in a map using the read buffer address as the key and the original request - * with a promise as the value. A monitor thread continuously polls the completion queue, - * looks up the completed request and completes the matching promise. - */ -class IOUringReader final : public IAsynchronousReader -{ -private: - bool is_supported; - - std::mutex mutex; - struct io_uring ring; - uint32_t cq_entries; - - std::atomic cancelled{false}; - ThreadFromGlobalPool ring_completion_monitor; - - struct EnqueuedRequest - { - std::promise promise; - Request request; - bool resubmitting; // resubmits can happen due to short reads or when io_uring returns -EAGAIN - size_t bytes_read; // keep track of bytes already read in case short reads happen - }; - - std::deque pending_requests; - std::unordered_map in_flight_requests; - - bool submitToRing(EnqueuedRequest & enqueued); - - using EnqueuedIterator = std::unordered_map::iterator; - - void failRequest(const EnqueuedIterator & requestIt, int code, const std::string & message); - void finalizeRequest(const EnqueuedIterator & requestIt); - - void monitorRing(); - - template inline void failPromise( - std::promise & promise, int code, fmt::format_string fmt, Args &&... args) - { - promise.set_exception(std::make_exception_ptr(Exception(code, fmt, std::forward(args)...))); - } - - template inline std::future makeFailedResult( - int code, fmt::format_string fmt, Args &&... args) - { - auto promise = std::promise{}; - failPromise(promise, code, fmt, std::forward(args)...); - return promise.get_future(); - } - - const Poco::Logger * log; - -public: - IOUringReader(uint32_t entries_); - - inline bool isSupported() { return is_supported; } - std::future submit(Request request) override; - - virtual ~IOUringReader() override; -}; - -} -#endif diff --git a/src/Disks/IO/createReadBufferFromFileBase.cpp b/src/Disks/IO/createReadBufferFromFileBase.cpp index 9f4cddae12e..345d0019aa7 100644 --- a/src/Disks/IO/createReadBufferFromFileBase.cpp +++ b/src/Disks/IO/createReadBufferFromFileBase.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -24,7 +23,6 @@ namespace DB namespace ErrorCodes { extern const int LOGICAL_ERROR; - extern const int UNSUPPORTED_METHOD; } @@ -77,19 +75,6 @@ std::unique_ptr createReadBufferFromFileBase( { res = std::make_unique(filename, buffer_size, actual_flags, existing_memory, alignment, file_size); } - else if (settings.local_fs_method == LocalFSReadMethod::io_uring) - { -#if defined(OS_LINUX) - static std::shared_ptr reader = std::make_shared(512); - if (!reader->isSupported()) - throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "io_uring is not supported by this system"); - - res = std::make_unique( - reader, settings.priority, filename, buffer_size, actual_flags, existing_memory, alignment, file_size); -#else - throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "Read method io_uring is only supported in Linux"); -#endif - } else if (settings.local_fs_method == LocalFSReadMethod::pread_fake_async) { static AsynchronousReaderPtr reader = std::make_shared(); diff --git a/src/IO/ReadSettings.h b/src/IO/ReadSettings.h index 0df936b193d..78d5d6f3d65 100644 --- a/src/IO/ReadSettings.h +++ b/src/IO/ReadSettings.h @@ -30,13 +30,6 @@ enum class LocalFSReadMethod */ mmap, - /** - * Use the io_uring Linux subsystem for asynchronous reads. - * Can use direct IO after specified size. - * Can do prefetch with double buffering. - */ - io_uring, - /** * Checks if data is in page cache with 'preadv2' on modern Linux kernels. * If data is in page cache, read from the same thread. diff --git a/tests/clickhouse-test b/tests/clickhouse-test index d3d1f8e6673..3e0d4e822b4 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -425,7 +425,6 @@ class SettingsRandomizer: "read_in_order_two_level_merge_threshold": lambda: random.randint(0, 100), "optimize_aggregation_in_order": lambda: random.randint(0, 1), "aggregation_in_order_max_block_bytes": lambda: random.randint(0, 50000000), - "local_filesystem_read_method": lambda: random.choice(['pread', 'pread_threadpool', 'io_uring']), } @staticmethod diff --git a/tests/queries/0_stateless/02051_read_settings.reference.j2 b/tests/queries/0_stateless/02051_read_settings.reference.j2 index ee6c4bdd918..391cf3adf35 100644 --- a/tests/queries/0_stateless/02051_read_settings.reference.j2 +++ b/tests/queries/0_stateless/02051_read_settings.reference.j2 @@ -1,5 +1,5 @@ {% for index_granularity_bytes in [0, 10 * 1024 * 1024] -%} -{% for read_method in ['read', 'mmap', 'io_uring', 'pread_threadpool', 'pread_fake_async'] -%} +{% for read_method in ['read', 'mmap', 'pread_threadpool', 'pread_fake_async'] -%} {% for direct_io in [0, 1] -%} {% for prefetch in [0, 1] -%} {% for priority in [0, 1] -%} diff --git a/tests/queries/0_stateless/02051_read_settings.sql.j2 b/tests/queries/0_stateless/02051_read_settings.sql.j2 index 1f121b0c268..69dd3c264ba 100644 --- a/tests/queries/0_stateless/02051_read_settings.sql.j2 +++ b/tests/queries/0_stateless/02051_read_settings.sql.j2 @@ -19,7 +19,7 @@ settings as select number, repeat(toString(number), 5) from numbers(1e6); {# check each local_filesystem_read_method #} -{% for read_method in ['read', 'mmap', 'io_uring', 'pread_threadpool', 'pread_fake_async'] %} +{% for read_method in ['read', 'mmap', 'pread_threadpool', 'pread_fake_async'] %} {# check w/ O_DIRECT and w/o (min_bytes_to_use_direct_io) #} {% for direct_io in [0, 1] %} {# check local_filesystem_read_prefetch (just a smoke test) #} From 8e1587acb80b81dcf438473f4d90bafe7f9b1600 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Fri, 24 Jun 2022 09:34:54 +0000 Subject: [PATCH 200/525] Fix: flaky test --- .../queries/0_stateless/02317_distinct_in_order_optimization.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql index f1e8da88017..2f696a5a69e 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql @@ -36,6 +36,7 @@ select '-- distinct with non-primary key prefix and order by on column in distin explain pipeline select distinct b, c from distinct_in_order order by b settings max_threads=1; select '-- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimization'; +set optimize_read_in_order = 1; -- to avoid flaky test, in this query (Sorting) step depends on the setting explain pipeline select distinct b, c from distinct_in_order order by a settings max_threads=1; select '-- the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one'; From 99103958231c859e71cbc58f38d353c43f87a37c Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 13:19:29 +0200 Subject: [PATCH 201/525] Simplify method signature --- .../MergeTree/MergePlainMergeTreeTask.cpp | 6 +- src/Storages/MergeTree/MergeTreeData.cpp | 77 ++++++------------- src/Storages/MergeTree/MergeTreeData.h | 29 ++++--- .../MergeTree/MergeTreeDataMergerMutator.cpp | 2 +- src/Storages/MergeTree/MergeTreeSink.cpp | 4 +- .../MergeTree/MutateFromLogEntryTask.cpp | 2 +- .../MergeTree/MutatePlainMergeTreeTask.cpp | 6 +- .../MergeTree/ReplicatedMergeTreeSink.cpp | 2 +- src/Storages/StorageMergeTree.cpp | 15 +++- src/Storages/StorageReplicatedMergeTree.cpp | 12 +-- 10 files changed, 74 insertions(+), 81 deletions(-) diff --git a/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp b/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp index c6a719fbc67..90f04eee019 100644 --- a/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp +++ b/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp @@ -115,7 +115,11 @@ void MergePlainMergeTreeTask::prepare() void MergePlainMergeTreeTask::finish() { new_part = merge_task->getFuture().get(); - storage.merger_mutator.renameMergedTemporaryPart(new_part, future_part->parts, txn, nullptr); + + MergeTreeData::Transaction transaction(storage, txn.get()); + storage.merger_mutator.renameMergedTemporaryPart(new_part, future_part->parts, txn, &transaction); + transaction.commit(); + write_part_log({}); storage.incrementMergedPartsProfileEvent(new_part->getType()); } diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index c24636a56f8..98dc099140a 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2787,19 +2787,19 @@ MergeTreeData::DataPartsVector MergeTreeData::getActivePartsToReplace( bool MergeTreeData::renameTempPartAndAdd( MutableDataPartPtr & part, MergeTreeTransaction * txn, + Transaction & out_transaction, SimpleIncrement * increment, - Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log, std::string_view deduplication_token) { - if (out_transaction && &out_transaction->data != this) + if (&out_transaction.data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", ErrorCodes::LOGICAL_ERROR); DataPartsVector covered_parts; { auto lock = lockParts(); - if (!renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token)) + if (!renameTempPartAndReplaceImpl(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token)) return false; } if (!covered_parts.empty()) @@ -2810,17 +2810,17 @@ bool MergeTreeData::renameTempPartAndAdd( } -bool MergeTreeData::renameTempPartAndReplace( +bool MergeTreeData::renameTempPartAndReplaceImpl( MutableDataPartPtr & part, MergeTreeTransaction * txn, SimpleIncrement * increment, - Transaction * out_transaction, + Transaction & out_transaction, std::unique_lock & lock, DataPartsVector * out_covered_parts, MergeTreeDeduplicationLog * deduplication_log, std::string_view deduplication_token) { - if (out_transaction && &out_transaction->data != this) + if (&out_transaction.data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", ErrorCodes::LOGICAL_ERROR); @@ -2901,46 +2901,10 @@ bool MergeTreeData::renameTempPartAndReplace( part->setState(DataPartState::PreActive); part->renameTo(part_name, true); - auto part_it = data_parts_indexes.insert(part).first; + data_parts_indexes.insert(part); - if (out_transaction) - { - chassert(out_transaction->txn == txn); - out_transaction->precommitted_parts.insert(part); - } - else - { - /// FIXME Transactions: it's not the best place for checking and setting removal_tid, - /// because it's too optimistic. We should lock removal_tid of covered parts at the beginning of operation. - MergeTreeTransaction::addNewPartAndRemoveCovered(shared_from_this(), part, covered_parts, txn); - - size_t reduce_bytes = 0; - size_t reduce_rows = 0; - size_t reduce_parts = 0; - auto current_time = time(nullptr); - for (const DataPartPtr & covered_part : covered_parts) - { - covered_part->remove_time.store(current_time, std::memory_order_relaxed); - modifyPartState(covered_part, DataPartState::Outdated); - removePartContributionToColumnAndSecondaryIndexSizes(covered_part); - reduce_bytes += covered_part->getBytesOnDisk(); - reduce_rows += covered_part->rows_count; - ++reduce_parts; - } - - modifyPartState(part_it, DataPartState::Active); - addPartContributionToColumnAndSecondaryIndexSizes(part); - - if (covered_parts.empty()) - updateObjectColumns(*part_it, lock); - else - resetObjectColumnsFromActiveParts(lock); - - ssize_t diff_bytes = part->getBytesOnDisk() - reduce_bytes; - ssize_t diff_rows = part->rows_count - reduce_rows; - ssize_t diff_parts = 1 - reduce_parts; - increaseDataVolume(diff_bytes, diff_rows, diff_parts); - } + chassert(out_transaction.txn == txn); + out_transaction.precommitted_parts.insert(part); auto part_in_memory = asInMemoryPart(part); if (part_in_memory && getSettings()->in_memory_parts_enable_wal) @@ -2959,17 +2923,24 @@ bool MergeTreeData::renameTempPartAndReplace( } MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( - MutableDataPartPtr & part, MergeTreeTransaction * txn, SimpleIncrement * increment, - Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log) + MutableDataPartPtr & part, + MergeTreeTransaction * txn, + Transaction & out_transaction, + SimpleIncrement * increment, + MergeTreeDeduplicationLog * deduplication_log, + DataPartsLock * lock) { - if (out_transaction && &out_transaction->data != this) - throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", - ErrorCodes::LOGICAL_ERROR); - DataPartsVector covered_parts; { - auto lock = lockParts(); - renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log); + if (!lock) + { + auto part_lock = lockParts(); + renameTempPartAndReplaceImpl(part, txn, increment, out_transaction, part_lock, &covered_parts, deduplication_log); + } + else + { + renameTempPartAndReplaceImpl(part, txn, increment, out_transaction, *lock, &covered_parts, deduplication_log); + } } return covered_parts; } diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 00a56de9142..1f0ee44518b 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -557,8 +557,8 @@ public: bool renameTempPartAndAdd( MutableDataPartPtr & part, MergeTreeTransaction * txn, + Transaction & transaction, SimpleIncrement * increment = nullptr, - Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, std::string_view deduplication_token = std::string_view()); @@ -566,20 +566,12 @@ public: /// Returns all parts covered by the added part (in ascending order). /// If out_transaction == nullptr, marks covered parts as Outdated. DataPartsVector renameTempPartAndReplace( - MutableDataPartPtr & part, MergeTreeTransaction * txn, SimpleIncrement * increment = nullptr, - Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr); - - /// Low-level version of previous one, doesn't lock mutex - /// FIXME Transactions: remove add_to_txn flag, maybe merge MergeTreeTransaction and Transaction - bool renameTempPartAndReplace( MutableDataPartPtr & part, MergeTreeTransaction * txn, - SimpleIncrement * increment, - Transaction * out_transaction, - DataPartsLock & lock, - DataPartsVector * out_covered_parts = nullptr, + Transaction & out_transaction, + SimpleIncrement * increment = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, - std::string_view deduplication_token = std::string_view()); + DataPartsLock * lock = nullptr); /// Remove parts from working set immediately (without wait for background /// process). Transfer part state to temporary. Have very limited usage only @@ -1251,6 +1243,19 @@ protected: static void incrementMergedPartsProfileEvent(MergeTreeDataPartType type); private: + + /// Low-level version of previous one, doesn't lock mutex + /// FIXME Transactions: remove add_to_txn flag, maybe merge MergeTreeTransaction and Transaction + bool renameTempPartAndReplaceImpl( + MutableDataPartPtr & part, + MergeTreeTransaction * txn, + SimpleIncrement * increment, + Transaction & out_transaction, + DataPartsLock & lock, + DataPartsVector * out_covered_parts = nullptr, + MergeTreeDeduplicationLog * deduplication_log = nullptr, + std::string_view deduplication_token = std::string_view()); + /// RAII Wrapper for atomic work with currently moving parts /// Acquire them in constructor and remove them in destructor /// Uses data.currently_moving_parts_mutex diff --git a/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp b/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp index 77e3b574804..f2dc679364d 100644 --- a/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp +++ b/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp @@ -549,7 +549,7 @@ MergeTreeData::DataPartPtr MergeTreeDataMergerMutator::renameMergedTemporaryPart "but transactions were enabled for this table"); /// Rename new part, add to the set and remove original parts. - auto replaced_parts = data.renameTempPartAndReplace(new_data_part, txn.get(), nullptr, out_transaction); + auto replaced_parts = data.renameTempPartAndReplace(new_data_part, txn.get(), *out_transaction); /// Let's check that all original parts have been deleted and only them. if (replaced_parts.size() != parts.size()) diff --git a/src/Storages/MergeTree/MergeTreeSink.cpp b/src/Storages/MergeTree/MergeTreeSink.cpp index fbc916ddb2c..f02274ccaf5 100644 --- a/src/Storages/MergeTree/MergeTreeSink.cpp +++ b/src/Storages/MergeTree/MergeTreeSink.cpp @@ -133,9 +133,11 @@ void MergeTreeSink::finishDelayedChunk() auto & part = partition.temp_part.part; + MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); /// Part can be deduplicated, so increment counters and add to part log only if it's really added - if (storage.renameTempPartAndAdd(part, context->getCurrentTransaction().get(), &storage.increment, nullptr, storage.getDeduplicationLog(), partition.block_dedup_token)) + if (storage.renameTempPartAndAdd(part, context->getCurrentTransaction().get(), transaction, &storage.increment, storage.getDeduplicationLog(), partition.block_dedup_token)) { + transaction.commit(); PartLog::addNewPart(storage.getContext(), part, partition.elapsed_ns); storage.incrementInsertedPartsProfileEvent(part->getType()); diff --git a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp index 403d77165d4..b665f5407ef 100644 --- a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp +++ b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp @@ -171,7 +171,7 @@ bool MutateFromLogEntryTask::finalize(ReplicatedMergeMutateTaskBase::PartLogWrit { new_part = mutate_task->getFuture().get(); - storage.renameTempPartAndReplace(new_part, NO_TRANSACTION_RAW, nullptr, transaction_ptr.get()); + storage.renameTempPartAndReplace(new_part, NO_TRANSACTION_RAW, *transaction_ptr); try { diff --git a/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp b/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp index 80a33bfe0e3..643ddf8bf6b 100644 --- a/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp +++ b/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp @@ -83,8 +83,12 @@ bool MutatePlainMergeTreeTask::executeStep() new_part = mutate_task->getFuture().get(); + + MergeTreeData::Transaction transaction(storage, merge_mutate_entry->txn.get()); /// FIXME Transactions: it's too optimistic, better to lock parts before starting transaction - storage.renameTempPartAndReplace(new_part, merge_mutate_entry->txn.get()); + storage.renameTempPartAndReplace(new_part, merge_mutate_entry->txn.get(), transaction); + transaction.commit(); + storage.updateMutationEntriesErrors(future_part, true, ""); write_part_log({}); diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index d217e16c830..f974ce9bd6b 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -476,7 +476,7 @@ void ReplicatedMergeTreeSink::commitPart( try { - renamed = storage.renameTempPartAndAdd(part, NO_TRANSACTION_RAW, nullptr, &transaction); + renamed = storage.renameTempPartAndAdd(part, NO_TRANSACTION_RAW, transaction); } catch (const Exception & e) { diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index 8a265133d0e..24aac910b56 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1542,7 +1542,10 @@ PartitionCommandsResultInfo StorageMergeTree::attachPartition( loaded_parts[i]->storeVersionMetadata(); String old_name = renamed_parts.old_and_new_names[i].old_name; - renameTempPartAndAdd(loaded_parts[i], local_context->getCurrentTransaction().get(), &increment); + MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); + renameTempPartAndAdd(loaded_parts[i], local_context->getCurrentTransaction().get(), transaction, &increment); + transaction.commit(); + renamed_parts.old_and_new_names[i].old_name.clear(); results.push_back(PartitionCommandResultInfo{ @@ -1616,7 +1619,7 @@ void StorageMergeTree::replacePartitionFrom(const StoragePtr & source_table, con /// Populate transaction for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, local_context->getCurrentTransaction().get(), &increment, &transaction, data_parts_lock); + renameTempPartAndReplace(part, local_context->getCurrentTransaction().get(), transaction, &increment, nullptr, &data_parts_lock); transaction.commit(&data_parts_lock); @@ -1694,7 +1697,7 @@ void StorageMergeTree::movePartitionToTable(const StoragePtr & dest_table, const DataPartsLock lock(mutex); for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, local_context->getCurrentTransaction().get(), &dest_table_storage->increment, &transaction, lock); + dest_table_storage->renameTempPartAndReplace(part, local_context->getCurrentTransaction().get(), transaction, &dest_table_storage->increment, nullptr, &lock); removePartsFromWorkingSet(local_context->getCurrentTransaction().get(), src_parts, true, lock); transaction.commit(&lock); @@ -1787,7 +1790,11 @@ CheckResults StorageMergeTree::checkData(const ASTPtr & query, ContextPtr local_ void StorageMergeTree::attachRestoredParts(MutableDataPartsVector && parts) { for (auto part : parts) - renameTempPartAndAdd(part, NO_TRANSACTION_RAW, &increment); + { + MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); + renameTempPartAndAdd(part, NO_TRANSACTION_RAW, transaction, &increment); + transaction.commit(); + } } diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index e93399918ef..36a199458a5 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -1657,7 +1657,7 @@ bool StorageReplicatedMergeTree::executeLogEntry(LogEntry & entry) Transaction transaction(*this, NO_TRANSACTION_RAW); part->version.setCreationTID(Tx::PrehistoricTID, nullptr); - renameTempPartAndReplace(part, NO_TRANSACTION_RAW, nullptr, &transaction); + renameTempPartAndReplace(part, NO_TRANSACTION_RAW, transaction); checkPartChecksumsAndCommit(transaction, part); writePartLog(PartLogElement::Type::NEW_PART, {}, 0 /** log entry is fake so we don't measure the time */, @@ -2342,7 +2342,7 @@ bool StorageReplicatedMergeTree::executeReplaceRange(const LogEntry & entry) Coordination::Requests ops; for (PartDescriptionPtr & part_desc : final_parts) { - renameTempPartAndReplace(part_desc->res_part, NO_TRANSACTION_RAW, nullptr, &transaction); + renameTempPartAndReplace(part_desc->res_part, NO_TRANSACTION_RAW, transaction); getCommitPartOps(ops, part_desc->res_part); lockSharedData(*part_desc->res_part, false, part_desc->hardlinked_files); @@ -4081,7 +4081,7 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora if (!to_detached) { Transaction transaction(*this, NO_TRANSACTION_RAW); - renameTempPartAndReplace(part, NO_TRANSACTION_RAW, nullptr, &transaction); + renameTempPartAndReplace(part, NO_TRANSACTION_RAW, transaction); replaced_parts = checkPartChecksumsAndCommit(transaction, part, hardlinked_files); @@ -6604,7 +6604,7 @@ void StorageReplicatedMergeTree::replacePartitionFrom( auto data_parts_lock = lockParts(); for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, query_context->getCurrentTransaction().get(), nullptr, &transaction, data_parts_lock); + renameTempPartAndReplace(part, query_context->getCurrentTransaction().get(), transaction, nullptr, nullptr, &data_parts_lock); } for (size_t i = 0; i < dst_parts.size(); ++i) @@ -6841,7 +6841,7 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta DataPartsLock lock(mutex); for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, query_context->getCurrentTransaction().get(), nullptr, &transaction, lock); + dest_table_storage->renameTempPartAndReplace(part, query_context->getCurrentTransaction().get(), transaction, nullptr, nullptr, &lock); for (size_t i = 0; i < dst_parts.size(); ++i) dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); @@ -8020,7 +8020,7 @@ bool StorageReplicatedMergeTree::createEmptyPartInsteadOfLost(zkutil::ZooKeeperP try { MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - auto replaced_parts = renameTempPartAndReplace(new_data_part, NO_TRANSACTION_RAW, nullptr, &transaction); + auto replaced_parts = renameTempPartAndReplace(new_data_part, NO_TRANSACTION_RAW, transaction); if (!replaced_parts.empty()) { From af1a9d18abb1743911a42aa9791a88b62e23b0b2 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 13:34:00 +0200 Subject: [PATCH 202/525] Remove transaction argument --- .../MergeTree/MergeFromLogEntryTask.cpp | 2 +- .../MergeTree/MergePlainMergeTreeTask.cpp | 2 +- src/Storages/MergeTree/MergeTreeData.cpp | 21 ++++++++++--------- src/Storages/MergeTree/MergeTreeData.h | 5 +---- .../MergeTree/MergeTreeDataMergerMutator.cpp | 4 ++-- .../MergeTree/MergeTreeDataMergerMutator.h | 2 +- src/Storages/MergeTree/MergeTreeSink.cpp | 2 +- .../MergeTree/MutateFromLogEntryTask.cpp | 2 +- .../MergeTree/MutatePlainMergeTreeTask.cpp | 2 +- .../MergeTree/ReplicatedMergeTreeSink.cpp | 2 +- src/Storages/StorageMergeTree.cpp | 8 +++---- src/Storages/StorageReplicatedMergeTree.cpp | 12 +++++------ 12 files changed, 31 insertions(+), 33 deletions(-) diff --git a/src/Storages/MergeTree/MergeFromLogEntryTask.cpp b/src/Storages/MergeTree/MergeFromLogEntryTask.cpp index 048c460c549..4121262e7b5 100644 --- a/src/Storages/MergeTree/MergeFromLogEntryTask.cpp +++ b/src/Storages/MergeTree/MergeFromLogEntryTask.cpp @@ -264,7 +264,7 @@ bool MergeFromLogEntryTask::finalize(ReplicatedMergeMutateTaskBase::PartLogWrite /// Task is not needed merge_task.reset(); - storage.merger_mutator.renameMergedTemporaryPart(part, parts, NO_TRANSACTION_PTR, transaction_ptr.get()); + storage.merger_mutator.renameMergedTemporaryPart(part, parts, NO_TRANSACTION_PTR, *transaction_ptr); try { diff --git a/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp b/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp index 90f04eee019..cc5e87956a1 100644 --- a/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp +++ b/src/Storages/MergeTree/MergePlainMergeTreeTask.cpp @@ -117,7 +117,7 @@ void MergePlainMergeTreeTask::finish() new_part = merge_task->getFuture().get(); MergeTreeData::Transaction transaction(storage, txn.get()); - storage.merger_mutator.renameMergedTemporaryPart(new_part, future_part->parts, txn, &transaction); + storage.merger_mutator.renameMergedTemporaryPart(new_part, future_part->parts, txn, transaction); transaction.commit(); write_part_log({}); diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 98dc099140a..15ee92a875e 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2786,7 +2786,6 @@ MergeTreeData::DataPartsVector MergeTreeData::getActivePartsToReplace( bool MergeTreeData::renameTempPartAndAdd( MutableDataPartPtr & part, - MergeTreeTransaction * txn, Transaction & out_transaction, SimpleIncrement * increment, MergeTreeDeduplicationLog * deduplication_log, @@ -2799,7 +2798,7 @@ bool MergeTreeData::renameTempPartAndAdd( DataPartsVector covered_parts; { auto lock = lockParts(); - if (!renameTempPartAndReplaceImpl(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token)) + if (!renameTempPartAndReplaceImpl(part, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token)) return false; } if (!covered_parts.empty()) @@ -2812,7 +2811,6 @@ bool MergeTreeData::renameTempPartAndAdd( bool MergeTreeData::renameTempPartAndReplaceImpl( MutableDataPartPtr & part, - MergeTreeTransaction * txn, SimpleIncrement * increment, Transaction & out_transaction, std::unique_lock & lock, @@ -2824,9 +2822,6 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", ErrorCodes::LOGICAL_ERROR); - if (txn) - transactions_enabled.store(true); - part->assertState({DataPartState::Temporary}); MergeTreePartInfo part_info = part->info; @@ -2903,7 +2898,6 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( data_parts_indexes.insert(part); - chassert(out_transaction.txn == txn); out_transaction.precommitted_parts.insert(part); auto part_in_memory = asInMemoryPart(part); @@ -2924,7 +2918,6 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, - MergeTreeTransaction * txn, Transaction & out_transaction, SimpleIncrement * increment, MergeTreeDeduplicationLog * deduplication_log, @@ -2935,11 +2928,11 @@ MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( if (!lock) { auto part_lock = lockParts(); - renameTempPartAndReplaceImpl(part, txn, increment, out_transaction, part_lock, &covered_parts, deduplication_log); + renameTempPartAndReplaceImpl(part, increment, out_transaction, part_lock, &covered_parts, deduplication_log); } else { - renameTempPartAndReplaceImpl(part, txn, increment, out_transaction, *lock, &covered_parts, deduplication_log); + renameTempPartAndReplaceImpl(part, increment, out_transaction, *lock, &covered_parts, deduplication_log); } } return covered_parts; @@ -4850,6 +4843,14 @@ MergeTreeData::DataPartPtr MergeTreeData::getAnyPartInPartition( } +MergeTreeData::Transaction::Transaction(MergeTreeData & data_, MergeTreeTransaction * txn_) + : data(data_) + , txn(txn_) +{ + if (txn) + data.transactions_enabled.store(true); +} + void MergeTreeData::Transaction::rollbackPartsToTemporaryState() { if (!isEmpty()) diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 1f0ee44518b..c69968b0162 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -252,7 +252,7 @@ public: class Transaction : private boost::noncopyable { public: - Transaction(MergeTreeData & data_, MergeTreeTransaction * txn_) : data(data_), txn(txn_) {} + Transaction(MergeTreeData & data_, MergeTreeTransaction * txn_); DataPartsVector commit(MergeTreeData::DataPartsLock * acquired_parts_lock = nullptr); @@ -556,7 +556,6 @@ public: /// Returns true if part was added. Returns false if part is covered by bigger part. bool renameTempPartAndAdd( MutableDataPartPtr & part, - MergeTreeTransaction * txn, Transaction & transaction, SimpleIncrement * increment = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, @@ -567,7 +566,6 @@ public: /// If out_transaction == nullptr, marks covered parts as Outdated. DataPartsVector renameTempPartAndReplace( MutableDataPartPtr & part, - MergeTreeTransaction * txn, Transaction & out_transaction, SimpleIncrement * increment = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, @@ -1248,7 +1246,6 @@ private: /// FIXME Transactions: remove add_to_txn flag, maybe merge MergeTreeTransaction and Transaction bool renameTempPartAndReplaceImpl( MutableDataPartPtr & part, - MergeTreeTransaction * txn, SimpleIncrement * increment, Transaction & out_transaction, DataPartsLock & lock, diff --git a/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp b/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp index f2dc679364d..c740489b76d 100644 --- a/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp +++ b/src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp @@ -541,7 +541,7 @@ MergeTreeData::DataPartPtr MergeTreeDataMergerMutator::renameMergedTemporaryPart MergeTreeData::MutableDataPartPtr & new_data_part, const MergeTreeData::DataPartsVector & parts, const MergeTreeTransactionPtr & txn, - MergeTreeData::Transaction * out_transaction) + MergeTreeData::Transaction & out_transaction) { /// Some of source parts was possibly created in transaction, so non-transactional merge may break isolation. if (data.transactions_enabled.load(std::memory_order_relaxed) && !txn) @@ -549,7 +549,7 @@ MergeTreeData::DataPartPtr MergeTreeDataMergerMutator::renameMergedTemporaryPart "but transactions were enabled for this table"); /// Rename new part, add to the set and remove original parts. - auto replaced_parts = data.renameTempPartAndReplace(new_data_part, txn.get(), *out_transaction); + auto replaced_parts = data.renameTempPartAndReplace(new_data_part, out_transaction); /// Let's check that all original parts have been deleted and only them. if (replaced_parts.size() != parts.size()) diff --git a/src/Storages/MergeTree/MergeTreeDataMergerMutator.h b/src/Storages/MergeTree/MergeTreeDataMergerMutator.h index e3d59a3522f..587b6b26347 100644 --- a/src/Storages/MergeTree/MergeTreeDataMergerMutator.h +++ b/src/Storages/MergeTree/MergeTreeDataMergerMutator.h @@ -133,7 +133,7 @@ public: MergeTreeData::MutableDataPartPtr & new_data_part, const MergeTreeData::DataPartsVector & parts, const MergeTreeTransactionPtr & txn, - MergeTreeData::Transaction * out_transaction = nullptr); + MergeTreeData::Transaction & out_transaction); /// The approximate amount of disk space needed for merge or mutation. With a surplus. diff --git a/src/Storages/MergeTree/MergeTreeSink.cpp b/src/Storages/MergeTree/MergeTreeSink.cpp index f02274ccaf5..52f6fc46d9c 100644 --- a/src/Storages/MergeTree/MergeTreeSink.cpp +++ b/src/Storages/MergeTree/MergeTreeSink.cpp @@ -135,7 +135,7 @@ void MergeTreeSink::finishDelayedChunk() MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); /// Part can be deduplicated, so increment counters and add to part log only if it's really added - if (storage.renameTempPartAndAdd(part, context->getCurrentTransaction().get(), transaction, &storage.increment, storage.getDeduplicationLog(), partition.block_dedup_token)) + if (storage.renameTempPartAndAdd(part, transaction, &storage.increment, storage.getDeduplicationLog(), partition.block_dedup_token)) { transaction.commit(); PartLog::addNewPart(storage.getContext(), part, partition.elapsed_ns); diff --git a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp index b665f5407ef..ac4de51bbd9 100644 --- a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp +++ b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp @@ -171,7 +171,7 @@ bool MutateFromLogEntryTask::finalize(ReplicatedMergeMutateTaskBase::PartLogWrit { new_part = mutate_task->getFuture().get(); - storage.renameTempPartAndReplace(new_part, NO_TRANSACTION_RAW, *transaction_ptr); + storage.renameTempPartAndReplace(new_part, *transaction_ptr); try { diff --git a/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp b/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp index 643ddf8bf6b..6214919337b 100644 --- a/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp +++ b/src/Storages/MergeTree/MutatePlainMergeTreeTask.cpp @@ -86,7 +86,7 @@ bool MutatePlainMergeTreeTask::executeStep() MergeTreeData::Transaction transaction(storage, merge_mutate_entry->txn.get()); /// FIXME Transactions: it's too optimistic, better to lock parts before starting transaction - storage.renameTempPartAndReplace(new_part, merge_mutate_entry->txn.get(), transaction); + storage.renameTempPartAndReplace(new_part, transaction); transaction.commit(); storage.updateMutationEntriesErrors(future_part, true, ""); diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index f974ce9bd6b..d63c79b2006 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -476,7 +476,7 @@ void ReplicatedMergeTreeSink::commitPart( try { - renamed = storage.renameTempPartAndAdd(part, NO_TRANSACTION_RAW, transaction); + renamed = storage.renameTempPartAndAdd(part, transaction); } catch (const Exception & e) { diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index 24aac910b56..f34ea34f347 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1543,7 +1543,7 @@ PartitionCommandsResultInfo StorageMergeTree::attachPartition( String old_name = renamed_parts.old_and_new_names[i].old_name; MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); - renameTempPartAndAdd(loaded_parts[i], local_context->getCurrentTransaction().get(), transaction, &increment); + renameTempPartAndAdd(loaded_parts[i], transaction, &increment); transaction.commit(); renamed_parts.old_and_new_names[i].old_name.clear(); @@ -1619,7 +1619,7 @@ void StorageMergeTree::replacePartitionFrom(const StoragePtr & source_table, con /// Populate transaction for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, local_context->getCurrentTransaction().get(), transaction, &increment, nullptr, &data_parts_lock); + renameTempPartAndReplace(part, transaction, &increment, nullptr, &data_parts_lock); transaction.commit(&data_parts_lock); @@ -1697,7 +1697,7 @@ void StorageMergeTree::movePartitionToTable(const StoragePtr & dest_table, const DataPartsLock lock(mutex); for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, local_context->getCurrentTransaction().get(), transaction, &dest_table_storage->increment, nullptr, &lock); + dest_table_storage->renameTempPartAndReplace(part, transaction, &dest_table_storage->increment, nullptr, &lock); removePartsFromWorkingSet(local_context->getCurrentTransaction().get(), src_parts, true, lock); transaction.commit(&lock); @@ -1792,7 +1792,7 @@ void StorageMergeTree::attachRestoredParts(MutableDataPartsVector && parts) for (auto part : parts) { MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - renameTempPartAndAdd(part, NO_TRANSACTION_RAW, transaction, &increment); + renameTempPartAndAdd(part, transaction, &increment); transaction.commit(); } } diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 36a199458a5..603ddc27ee0 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -1657,7 +1657,7 @@ bool StorageReplicatedMergeTree::executeLogEntry(LogEntry & entry) Transaction transaction(*this, NO_TRANSACTION_RAW); part->version.setCreationTID(Tx::PrehistoricTID, nullptr); - renameTempPartAndReplace(part, NO_TRANSACTION_RAW, transaction); + renameTempPartAndReplace(part, transaction); checkPartChecksumsAndCommit(transaction, part); writePartLog(PartLogElement::Type::NEW_PART, {}, 0 /** log entry is fake so we don't measure the time */, @@ -2342,7 +2342,7 @@ bool StorageReplicatedMergeTree::executeReplaceRange(const LogEntry & entry) Coordination::Requests ops; for (PartDescriptionPtr & part_desc : final_parts) { - renameTempPartAndReplace(part_desc->res_part, NO_TRANSACTION_RAW, transaction); + renameTempPartAndReplace(part_desc->res_part, transaction); getCommitPartOps(ops, part_desc->res_part); lockSharedData(*part_desc->res_part, false, part_desc->hardlinked_files); @@ -4081,7 +4081,7 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora if (!to_detached) { Transaction transaction(*this, NO_TRANSACTION_RAW); - renameTempPartAndReplace(part, NO_TRANSACTION_RAW, transaction); + renameTempPartAndReplace(part, transaction); replaced_parts = checkPartChecksumsAndCommit(transaction, part, hardlinked_files); @@ -6604,7 +6604,7 @@ void StorageReplicatedMergeTree::replacePartitionFrom( auto data_parts_lock = lockParts(); for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, query_context->getCurrentTransaction().get(), transaction, nullptr, nullptr, &data_parts_lock); + renameTempPartAndReplace(part, transaction, nullptr, nullptr, &data_parts_lock); } for (size_t i = 0; i < dst_parts.size(); ++i) @@ -6841,7 +6841,7 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta DataPartsLock lock(mutex); for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, query_context->getCurrentTransaction().get(), transaction, nullptr, nullptr, &lock); + dest_table_storage->renameTempPartAndReplace(part, transaction, nullptr, nullptr, &lock); for (size_t i = 0; i < dst_parts.size(); ++i) dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); @@ -8020,7 +8020,7 @@ bool StorageReplicatedMergeTree::createEmptyPartInsteadOfLost(zkutil::ZooKeeperP try { MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - auto replaced_parts = renameTempPartAndReplace(new_data_part, NO_TRANSACTION_RAW, transaction); + auto replaced_parts = renameTempPartAndReplace(new_data_part, transaction); if (!replaced_parts.empty()) { From 36b810b07629bbd8ffafd45c25c81391849ff998 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 13:42:36 +0200 Subject: [PATCH 203/525] Remove unused parameter --- src/Storages/MergeTree/MergeTreeData.cpp | 5 ++--- src/Storages/MergeTree/MergeTreeData.h | 1 - src/Storages/StorageMergeTree.cpp | 4 ++-- src/Storages/StorageReplicatedMergeTree.cpp | 4 ++-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 15ee92a875e..fdff6179a19 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2920,7 +2920,6 @@ MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, Transaction & out_transaction, SimpleIncrement * increment, - MergeTreeDeduplicationLog * deduplication_log, DataPartsLock * lock) { DataPartsVector covered_parts; @@ -2928,11 +2927,11 @@ MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( if (!lock) { auto part_lock = lockParts(); - renameTempPartAndReplaceImpl(part, increment, out_transaction, part_lock, &covered_parts, deduplication_log); + renameTempPartAndReplaceImpl(part, increment, out_transaction, part_lock, &covered_parts); } else { - renameTempPartAndReplaceImpl(part, increment, out_transaction, *lock, &covered_parts, deduplication_log); + renameTempPartAndReplaceImpl(part, increment, out_transaction, *lock, &covered_parts); } } return covered_parts; diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index c69968b0162..75c809b5268 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -568,7 +568,6 @@ public: MutableDataPartPtr & part, Transaction & out_transaction, SimpleIncrement * increment = nullptr, - MergeTreeDeduplicationLog * deduplication_log = nullptr, DataPartsLock * lock = nullptr); /// Remove parts from working set immediately (without wait for background diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index f34ea34f347..baa438a6d28 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1619,7 +1619,7 @@ void StorageMergeTree::replacePartitionFrom(const StoragePtr & source_table, con /// Populate transaction for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, transaction, &increment, nullptr, &data_parts_lock); + renameTempPartAndReplace(part, transaction, &increment, &data_parts_lock); transaction.commit(&data_parts_lock); @@ -1697,7 +1697,7 @@ void StorageMergeTree::movePartitionToTable(const StoragePtr & dest_table, const DataPartsLock lock(mutex); for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, transaction, &dest_table_storage->increment, nullptr, &lock); + dest_table_storage->renameTempPartAndReplace(part, transaction, &dest_table_storage->increment, &lock); removePartsFromWorkingSet(local_context->getCurrentTransaction().get(), src_parts, true, lock); transaction.commit(&lock); diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 603ddc27ee0..daf929dcfe6 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -6604,7 +6604,7 @@ void StorageReplicatedMergeTree::replacePartitionFrom( auto data_parts_lock = lockParts(); for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, transaction, nullptr, nullptr, &data_parts_lock); + renameTempPartAndReplace(part, transaction, nullptr, &data_parts_lock); } for (size_t i = 0; i < dst_parts.size(); ++i) @@ -6841,7 +6841,7 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta DataPartsLock lock(mutex); for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, transaction, nullptr, nullptr, &lock); + dest_table_storage->renameTempPartAndReplace(part, transaction, nullptr, &lock); for (size_t i = 0; i < dst_parts.size(); ++i) dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); From 37310dc9df0292c165a2aef58102e422016799d0 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 14:10:15 +0200 Subject: [PATCH 204/525] Simpler --- src/Storages/MergeTree/MergeTreeData.cpp | 34 ++++++++++----------- src/Storages/MergeTree/MergeTreeData.h | 9 ++++-- src/Storages/StorageMergeTree.cpp | 8 ++--- src/Storages/StorageReplicatedMergeTree.cpp | 7 ++--- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index fdff6179a19..14644817238 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2791,10 +2791,6 @@ bool MergeTreeData::renameTempPartAndAdd( MergeTreeDeduplicationLog * deduplication_log, std::string_view deduplication_token) { - if (&out_transaction.data != this) - throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", - ErrorCodes::LOGICAL_ERROR); - DataPartsVector covered_parts; { auto lock = lockParts(); @@ -2919,24 +2915,28 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, Transaction & out_transaction, - SimpleIncrement * increment, - DataPartsLock * lock) + SimpleIncrement * increment) { + auto part_lock = lockParts(); + DataPartsVector covered_parts; - { - if (!lock) - { - auto part_lock = lockParts(); - renameTempPartAndReplaceImpl(part, increment, out_transaction, part_lock, &covered_parts); - } - else - { - renameTempPartAndReplaceImpl(part, increment, out_transaction, *lock, &covered_parts); - } - } + renameTempPartAndReplaceImpl(part, increment, out_transaction, part_lock, &covered_parts); + return covered_parts; } +void MergeTreeData::renameTempPartsAndReplace( + MutableDataPartsVector & parts, + Transaction & out_transaction, + DataPartsLock & lock, + SimpleIncrement * increment) +{ + for (auto & part : parts) + renameTempPartAndReplaceImpl(part, increment, out_transaction, lock); +} + + + void MergeTreeData::removePartsFromWorkingSet(MergeTreeTransaction * txn, const MergeTreeData::DataPartsVector & remove, bool clear_without_timeout, DataPartsLock & acquired_lock) { diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 75c809b5268..5ce59e560a2 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -567,8 +567,13 @@ public: DataPartsVector renameTempPartAndReplace( MutableDataPartPtr & part, Transaction & out_transaction, - SimpleIncrement * increment = nullptr, - DataPartsLock * lock = nullptr); + SimpleIncrement * increment = nullptr); + + void renameTempPartsAndReplace( + MutableDataPartsVector & parts, + Transaction & out_transaction, + DataPartsLock & lock, + SimpleIncrement * increment = nullptr); /// Remove parts from working set immediately (without wait for background /// process). Transfer part state to temporary. Have very limited usage only diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index baa438a6d28..9bb1db105c1 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1616,11 +1616,8 @@ void StorageMergeTree::replacePartitionFrom(const StoragePtr & source_table, con Transaction transaction(*this, local_context->getCurrentTransaction().get()); auto data_parts_lock = lockParts(); - /// Populate transaction - for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, transaction, &increment, &data_parts_lock); - + renameTempPartsAndReplace(dst_parts, transaction, data_parts_lock, &increment); transaction.commit(&data_parts_lock); /// If it is REPLACE (not ATTACH), remove all parts which max_block_number less then min_block_number of the first new block @@ -1696,8 +1693,7 @@ void StorageMergeTree::movePartitionToTable(const StoragePtr & dest_table, const std::mutex mutex; DataPartsLock lock(mutex); - for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, transaction, &dest_table_storage->increment, &lock); + dest_table_storage->renameTempPartsAndReplace(dst_parts, transaction, lock, &dest_table_storage->increment); removePartsFromWorkingSet(local_context->getCurrentTransaction().get(), src_parts, true, lock); transaction.commit(&lock); diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index daf929dcfe6..209beb0a5f6 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -6602,9 +6602,7 @@ void StorageReplicatedMergeTree::replacePartitionFrom( Transaction transaction(*this, NO_TRANSACTION_RAW); { auto data_parts_lock = lockParts(); - - for (MutableDataPartPtr & part : dst_parts) - renameTempPartAndReplace(part, transaction, nullptr, &data_parts_lock); + renameTempPartsAndReplace(dst_parts, transaction, data_parts_lock); } for (size_t i = 0; i < dst_parts.size(); ++i) @@ -6840,8 +6838,7 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta std::mutex mutex; DataPartsLock lock(mutex); - for (MutableDataPartPtr & part : dst_parts) - dest_table_storage->renameTempPartAndReplace(part, transaction, nullptr, &lock); + renameTempPartsAndReplace(dst_parts, transaction, lock); for (size_t i = 0; i < dst_parts.size(); ++i) dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); From fdb4eb2552d26c5192b1b76739e28d11c46a4719 Mon Sep 17 00:00:00 2001 From: zvonand Date: Fri, 24 Jun 2022 17:23:01 +0500 Subject: [PATCH 205/525] fixed tests --- tests/queries/0_stateless/02337_base58.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02337_base58.sql b/tests/queries/0_stateless/02337_base58.sql index 68dac97a20b..34da1da4c86 100644 --- a/tests/queries/0_stateless/02337_base58.sql +++ b/tests/queries/0_stateless/02337_base58.sql @@ -14,4 +14,4 @@ SELECT base58Decode(encoded, 'bitcoin') FROM (SELECT base58Encode(val, 'bitcoin' SELECT base58Encode(val) FROM (select arrayJoin(['', 'f', 'fo', 'foo', 'foob', 'fooba', 'foobar']) val); SELECT base58Decode(val) FROM (select arrayJoin(['', '2m', '8o8', 'bQbp', '3csAg9', 'CZJRhmz', 't1Zv2yaZ']) val); -SELECT base58Decode('Why_not?'); -- { serverError 1001 } +SELECT base58Decode('Why_not?'); -- { serverError 36 } From 571410a1723aa31cc9ff420d2c71860ada8c5109 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Fri, 24 Jun 2022 08:48:18 -0400 Subject: [PATCH 206/525] move settings to H3 level --- docs/en/engines/database-engines/index.md | 2 + .../database-engines/materialized-mysql.md | 50 ++++++++++++++----- .../materialized-postgresql.md | 14 +++--- 3 files changed, 47 insertions(+), 19 deletions(-) diff --git a/docs/en/engines/database-engines/index.md b/docs/en/engines/database-engines/index.md index 8e36aca695c..72689d29780 100644 --- a/docs/en/engines/database-engines/index.md +++ b/docs/en/engines/database-engines/index.md @@ -20,6 +20,8 @@ Here is a complete list of available database engines. Follow the links for more - [PostgreSQL](../../engines/database-engines/postgresql.md) +- [MaterializedMySQL](../../engines/database-engines/materialized-postgresql.md) + - [Replicated](../../engines/database-engines/replicated.md) - [SQLite](../../engines/database-engines/sqlite.md) diff --git a/docs/en/engines/database-engines/materialized-mysql.md b/docs/en/engines/database-engines/materialized-mysql.md index cbc40993da8..4b16d877210 100644 --- a/docs/en/engines/database-engines/materialized-mysql.md +++ b/docs/en/engines/database-engines/materialized-mysql.md @@ -26,14 +26,30 @@ ENGINE = MaterializedMySQL('host:port', ['database' | database], 'user', 'passwo - `user` — MySQL user. - `password` — User password. -**Engine Settings** +## Engine Settings -- `max_rows_in_buffer` — Maximum number of rows that data is allowed to cache in memory (for single table and the cache data unable to query). When this number is exceeded, the data will be materialized. Default: `65 505`. -- `max_bytes_in_buffer` — Maximum number of bytes that data is allowed to cache in memory (for single table and the cache data unable to query). When this number is exceeded, the data will be materialized. Default: `1 048 576`. -- `max_flush_data_time` — Maximum number of milliseconds that data is allowed to cache in memory (for database and the cache data unable to query). When this time is exceeded, the data will be materialized. Default: `1000`. -- `max_wait_time_when_mysql_unavailable` — Retry interval when MySQL is not available (milliseconds). Negative value disables retry. Default: `1000`. -- `allows_query_when_mysql_lost` — Allows to query a materialized table when MySQL is lost. Default: `0` (`false`). -- `materialized_mysql_tables_list` — a comma-separated list of mysql database tables, which will be replicated by MaterializedMySQL database engine. Default value: empty list — means whole tables will be replicated. +### max_rows_in_buffer + +`max_rows_in_buffer` — Maximum number of rows that data is allowed to cache in memory (for single table and the cache data unable to query). When this number is exceeded, the data will be materialized. Default: `65 505`. + +### max_bytes_in_buffer + +`max_bytes_in_buffer` — Maximum number of bytes that data is allowed to cache in memory (for single table and the cache data unable to query). When this number is exceeded, the data will be materialized. Default: `1 048 576`. + +### max_flush_data_time + +`max_flush_data_time` — Maximum number of milliseconds that data is allowed to cache in memory (for database and the cache data unable to query). When this time is exceeded, the data will be materialized. Default: `1000`. + +### max_wait_time_when_mysql_unavailable + +`max_wait_time_when_mysql_unavailable` — Retry interval when MySQL is not available (milliseconds). Negative value disables retry. Default: `1000`. + +### allows_query_when_mysql_lost +`allows_query_when_mysql_lost` — Allows to query a materialized table when MySQL is lost. Default: `0` (`false`). + +### materialized_mysql_tables_list + +`materialized_mysql_tables_list` — a comma-separated list of mysql database tables, which will be replicated by MaterializedMySQL database engine. Default value: empty list — means whole tables will be replicated. ```sql CREATE DATABASE mysql ENGINE = MaterializedMySQL('localhost:3306', 'db', 'user', '***') @@ -42,12 +58,17 @@ CREATE DATABASE mysql ENGINE = MaterializedMySQL('localhost:3306', 'db', 'user', max_wait_time_when_mysql_unavailable=10000; ``` -**Settings on MySQL-server Side** +## Settings on MySQL-server Side For the correct work of `MaterializedMySQL`, there are few mandatory `MySQL`-side configuration settings that must be set: -- `default_authentication_plugin = mysql_native_password` since `MaterializedMySQL` can only authorize with this method. -- `gtid_mode = on` since GTID based logging is a mandatory for providing correct `MaterializedMySQL` replication. +### default_authentication_plugin + +`default_authentication_plugin = mysql_native_password` since `MaterializedMySQL` can only authorize with this method. + +### gtid_mode + +`gtid_mode = on` since GTID based logging is a mandatory for providing correct `MaterializedMySQL` replication. :::note While turning on `gtid_mode` you should also specify `enforce_gtid_consistency = on`. @@ -57,8 +78,13 @@ While turning on `gtid_mode` you should also specify `enforce_gtid_consistency = When working with the `MaterializedMySQL` database engine, [ReplacingMergeTree](../../engines/table-engines/mergetree-family/replacingmergetree.md) tables are used with virtual `_sign` and `_version` columns. -- `_version` — Transaction counter. Type [UInt64](../../sql-reference/data-types/int-uint.md). -- `_sign` — Deletion mark. Type [Int8](../../sql-reference/data-types/int-uint.md). Possible values: +### \_version + +`_version` — Transaction counter. Type [UInt64](../../sql-reference/data-types/int-uint.md). + +### \_sign + +`_sign` — Deletion mark. Type [Int8](../../sql-reference/data-types/int-uint.md). Possible values: - `1` — Row is not deleted, - `-1` — Row is deleted. diff --git a/docs/en/engines/database-engines/materialized-postgresql.md b/docs/en/engines/database-engines/materialized-postgresql.md index 66f918f01d6..dc05c58f092 100644 --- a/docs/en/engines/database-engines/materialized-postgresql.md +++ b/docs/en/engines/database-engines/materialized-postgresql.md @@ -150,21 +150,21 @@ Replication of [**TOAST**](https://www.postgresql.org/docs/9.5/storage-toast.htm ## Settings {#settings} -1. `materialized_postgresql_tables_list` {#materialized-postgresql-tables-list} +### `materialized_postgresql_tables_list` {#materialized-postgresql-tables-list} Sets a comma-separated list of PostgreSQL database tables, which will be replicated via [MaterializedPostgreSQL](../../engines/database-engines/materialized-postgresql.md) database engine. Default value: empty list — means whole PostgreSQL database will be replicated. -2. `materialized_postgresql_schema` {#materialized-postgresql-schema} +### `materialized_postgresql_schema` {#materialized-postgresql-schema} Default value: empty string. (Default schema is used) -3. `materialized_postgresql_schema_list` {#materialized-postgresql-schema-list} +### `materialized_postgresql_schema_list` {#materialized-postgresql-schema-list} Default value: empty list. (Default schema is used) -4. `materialized_postgresql_allow_automatic_update` {#materialized-postgresql-allow-automatic-update} +### `materialized_postgresql_allow_automatic_update` {#materialized-postgresql-allow-automatic-update} Do not use this setting before 22.1 version. @@ -177,7 +177,7 @@ Replication of [**TOAST**](https://www.postgresql.org/docs/9.5/storage-toast.htm Default value: `0`. -5. `materialized_postgresql_max_block_size` {#materialized-postgresql-max-block-size} +### `materialized_postgresql_max_block_size` {#materialized-postgresql-max-block-size} Sets the number of rows collected in memory before flushing data into PostgreSQL database table. @@ -187,11 +187,11 @@ Replication of [**TOAST**](https://www.postgresql.org/docs/9.5/storage-toast.htm Default value: `65536`. -6. `materialized_postgresql_replication_slot` {#materialized-postgresql-replication-slot} +### `materialized_postgresql_replication_slot` {#materialized-postgresql-replication-slot} A user-created replication slot. Must be used together with `materialized_postgresql_snapshot`. -7. `materialized_postgresql_snapshot` {#materialized-postgresql-snapshot} +### `materialized_postgresql_snapshot` {#materialized-postgresql-snapshot} A text string identifying a snapshot, from which [initial dump of PostgreSQL tables](../../engines/database-engines/materialized-postgresql.md) will be performed. Must be used together with `materialized_postgresql_replication_slot`. From c57e07cb49a8dd76843437f5664c491dc79f506e Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 14:51:47 +0200 Subject: [PATCH 207/525] Style --- src/Storages/MergeTree/MergeTreeData.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 14644817238..dec99b2a5af 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2809,7 +2809,7 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( MutableDataPartPtr & part, SimpleIncrement * increment, Transaction & out_transaction, - std::unique_lock & lock, + DataPartsLock & lock, DataPartsVector * out_covered_parts, MergeTreeDeduplicationLog * deduplication_log, std::string_view deduplication_token) @@ -2820,9 +2820,6 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( part->assertState({DataPartState::Temporary}); - MergeTreePartInfo part_info = part->info; - String part_name; - if (DataPartPtr existing_part_in_partition = getAnyPartInPartition(part->info.partition_id, lock)) { if (part->partition.value != existing_part_in_partition->partition.value) @@ -2832,6 +2829,9 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( ErrorCodes::CORRUPTED_DATA); } + MergeTreePartInfo part_info = part->info; + String part_name; + /** It is important that obtaining new block number and adding that block to parts set is done atomically. * Otherwise there is race condition - merge of blocks could happen in interval that doesn't yet contain new part. */ @@ -2935,10 +2935,7 @@ void MergeTreeData::renameTempPartsAndReplace( renameTempPartAndReplaceImpl(part, increment, out_transaction, lock); } - - void MergeTreeData::removePartsFromWorkingSet(MergeTreeTransaction * txn, const MergeTreeData::DataPartsVector & remove, bool clear_without_timeout, DataPartsLock & acquired_lock) - { if (txn) transactions_enabled.store(true); From bd2f5eb96d6027b43f2479aa2f177f89eee81de8 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Fri, 24 Jun 2022 08:57:51 -0400 Subject: [PATCH 208/525] move settings to H3 level --- docs/en/engines/database-engines/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/engines/database-engines/index.md b/docs/en/engines/database-engines/index.md index 72689d29780..237112a5bee 100644 --- a/docs/en/engines/database-engines/index.md +++ b/docs/en/engines/database-engines/index.md @@ -20,7 +20,7 @@ Here is a complete list of available database engines. Follow the links for more - [PostgreSQL](../../engines/database-engines/postgresql.md) -- [MaterializedMySQL](../../engines/database-engines/materialized-postgresql.md) +- [MaterializedPostgreSQL](../../engines/database-engines/materialized-postgresql.md) - [Replicated](../../engines/database-engines/replicated.md) From 7517e1f4d5189f39fcde5f9ae276150dc1f94187 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 15:24:02 +0200 Subject: [PATCH 209/525] Remove some complexity --- src/Storages/MergeTree/MergeTreeData.cpp | 114 +++++++++++------------ src/Storages/MergeTree/MergeTreeData.h | 11 +-- 2 files changed, 61 insertions(+), 64 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index dec99b2a5af..c19804e3481 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2794,7 +2794,33 @@ bool MergeTreeData::renameTempPartAndAdd( DataPartsVector covered_parts; { auto lock = lockParts(); - if (!renameTempPartAndReplaceImpl(part, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token)) + /** It is important that obtaining new block number and adding that block to parts set is done atomically. + * Otherwise there is race condition - merge of blocks could happen in interval that doesn't yet contain new part. + */ + if (increment) + { + part->info.min_block = part->info.max_block = increment->get(); + part->info.mutation = 0; + part->name = part->getNewName(part->info); + } + + /// Deduplication log used only from non-replicated MergeTree. Replicated + /// tables have their own mechanism. We try to deduplicate at such deep + /// level, because only here we know real part name which is required for + /// deduplication. + if (deduplication_log) + { + const String block_id = part->getZeroLevelPartBlockID(deduplication_token); + auto res = deduplication_log->addPart(block_id, part->info); + if (!res.second) + { + ProfileEvents::increment(ProfileEvents::DuplicatedInsertedBlocks); + LOG_INFO(log, "Block with ID {} already exists as part {}; ignoring it", block_id, res.first.getPartName()); + return false; + } + } + + if (!renameTempPartAndReplaceImpl(part, out_transaction, lock, &covered_parts)) return false; } if (!covered_parts.empty()) @@ -2807,13 +2833,12 @@ bool MergeTreeData::renameTempPartAndAdd( bool MergeTreeData::renameTempPartAndReplaceImpl( MutableDataPartPtr & part, - SimpleIncrement * increment, Transaction & out_transaction, DataPartsLock & lock, - DataPartsVector * out_covered_parts, - MergeTreeDeduplicationLog * deduplication_log, - std::string_view deduplication_token) + DataPartsVector * out_covered_parts) { + LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part->name); + if (&out_transaction.data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", ErrorCodes::LOGICAL_ERROR); @@ -2829,24 +2854,7 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( ErrorCodes::CORRUPTED_DATA); } - MergeTreePartInfo part_info = part->info; - String part_name; - - /** It is important that obtaining new block number and adding that block to parts set is done atomically. - * Otherwise there is race condition - merge of blocks could happen in interval that doesn't yet contain new part. - */ - if (increment) - { - part_info.min_block = part_info.max_block = increment->get(); - part_info.mutation = 0; /// it's equal to min_block by default - part_name = part->getNewName(part_info); - } - else /// Parts from ReplicatedMergeTree already have names - part_name = part->name; - - LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part_name); - - if (auto it_duplicate = data_parts_by_info.find(part_info); it_duplicate != data_parts_by_info.end()) + if (auto it_duplicate = data_parts_by_info.find(part->info); it_duplicate != data_parts_by_info.end()) { String message = "Part " + (*it_duplicate)->getNameWithState() + " already exists"; @@ -2857,52 +2865,25 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( } DataPartPtr covering_part; - DataPartsVector covered_parts = getActivePartsToReplace(part_info, part_name, covering_part, lock); + DataPartsVector covered_parts = getActivePartsToReplace(part->info, part->name, covering_part, lock); if (covering_part) { - LOG_WARNING(log, "Tried to add obsolete part {} covered by {}", part_name, covering_part->getNameWithState()); + LOG_WARNING(log, "Tried to add obsolete part {} covered by {}", part->name, covering_part->getNameWithState()); return false; } - /// Deduplication log used only from non-replicated MergeTree. Replicated - /// tables have their own mechanism. We try to deduplicate at such deep - /// level, because only here we know real part name which is required for - /// deduplication. - if (deduplication_log) - { - const String block_id = part->getZeroLevelPartBlockID(deduplication_token); - auto res = deduplication_log->addPart(block_id, part_info); - if (!res.second) - { - ProfileEvents::increment(ProfileEvents::DuplicatedInsertedBlocks); - LOG_INFO(log, "Block with ID {} already exists as part {}; ignoring it", block_id, res.first.getPartName()); - return false; - } - } - /// All checks are passed. Now we can rename the part on disk. /// So, we maintain invariant: if a non-temporary part in filesystem then it is in data_parts /// /// If out_transaction is null, we commit the part to the active set immediately, else add it to the transaction. - - part->name = part_name; - part->info = part_info; part->is_temp = false; part->setState(DataPartState::PreActive); - part->renameTo(part_name, true); + part->renameTo(part->name, true); data_parts_indexes.insert(part); - out_transaction.precommitted_parts.insert(part); - auto part_in_memory = asInMemoryPart(part); - if (part_in_memory && getSettings()->in_memory_parts_enable_wal) - { - auto wal = getWriteAheadLog(); - wal->addPart(part_in_memory); - } - if (out_covered_parts) { for (DataPartPtr & covered_part : covered_parts) @@ -2914,13 +2895,12 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, - Transaction & out_transaction, - SimpleIncrement * increment) + Transaction & out_transaction) { auto part_lock = lockParts(); DataPartsVector covered_parts; - renameTempPartAndReplaceImpl(part, increment, out_transaction, part_lock, &covered_parts); + renameTempPartAndReplaceImpl(part, out_transaction, part_lock, &covered_parts); return covered_parts; } @@ -2932,7 +2912,15 @@ void MergeTreeData::renameTempPartsAndReplace( SimpleIncrement * increment) { for (auto & part : parts) - renameTempPartAndReplaceImpl(part, increment, out_transaction, lock); + { + if (increment) + { + part->info.min_block = part->info.max_block = increment->get(); + part->info.mutation = 0; + part->name = part->getNewName(part->info); + } + renameTempPartAndReplaceImpl(part, out_transaction, lock, nullptr); + } } void MergeTreeData::removePartsFromWorkingSet(MergeTreeTransaction * txn, const MergeTreeData::DataPartsVector & remove, bool clear_without_timeout, DataPartsLock & acquired_lock) @@ -4890,9 +4878,12 @@ MergeTreeData::DataPartsVector MergeTreeData::Transaction::commit(MergeTreeData: if (!isEmpty()) { + auto settings = data.getSettings(); + MergeTreeData::WriteAheadLogPtr wal; auto parts_lock = acquired_parts_lock ? MergeTreeData::DataPartsLock() : data.lockParts(); auto * owing_parts_lock = acquired_parts_lock ? acquired_parts_lock : &parts_lock; + if (txn) { for (const DataPartPtr & part : precommitted_parts) @@ -4917,6 +4908,15 @@ MergeTreeData::DataPartsVector MergeTreeData::Transaction::commit(MergeTreeData: for (const DataPartPtr & part : precommitted_parts) { + auto part_in_memory = asInMemoryPart(part); + if (part_in_memory && settings->in_memory_parts_enable_wal) + { + if (!wal) + wal = data.getWriteAheadLog(); + + wal->addPart(part_in_memory); + } + DataPartPtr covering_part; DataPartsVector covered_parts = data.getActivePartsToReplace(part->info, part->name, covering_part, *owing_parts_lock); if (covering_part) diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 5ce59e560a2..7b144accb6f 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -566,8 +566,7 @@ public: /// If out_transaction == nullptr, marks covered parts as Outdated. DataPartsVector renameTempPartAndReplace( MutableDataPartPtr & part, - Transaction & out_transaction, - SimpleIncrement * increment = nullptr); + Transaction & out_transaction); void renameTempPartsAndReplace( MutableDataPartsVector & parts, @@ -1247,15 +1246,13 @@ protected: private: /// Low-level version of previous one, doesn't lock mutex - /// FIXME Transactions: remove add_to_txn flag, maybe merge MergeTreeTransaction and Transaction + /// FIXME Merge MergeTreeTransaction and Transaction bool renameTempPartAndReplaceImpl( MutableDataPartPtr & part, - SimpleIncrement * increment, Transaction & out_transaction, DataPartsLock & lock, - DataPartsVector * out_covered_parts = nullptr, - MergeTreeDeduplicationLog * deduplication_log = nullptr, - std::string_view deduplication_token = std::string_view()); + DataPartsVector * out_covered_parts); + /// RAII Wrapper for atomic work with currently moving parts /// Acquire them in constructor and remove them in destructor From 612c4571d5a47b04e1d246a3c3b368c7b4fe231e Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 15:41:09 +0200 Subject: [PATCH 210/525] Split method into smaller --- src/Storages/MergeTree/MergeTreeData.cpp | 51 ++++++++++++++---------- src/Storages/MergeTree/MergeTreeData.h | 4 ++ 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index c19804e3481..ad99b60d4ea 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2830,19 +2830,8 @@ bool MergeTreeData::renameTempPartAndAdd( return true; } - -bool MergeTreeData::renameTempPartAndReplaceImpl( - MutableDataPartPtr & part, - Transaction & out_transaction, - DataPartsLock & lock, - DataPartsVector * out_covered_parts) +void MergeTreeData::checkPartCanBeAddedToTable(MutableDataPartPtr & part, DataPartsLock & lock) const { - LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part->name); - - if (&out_transaction.data != this) - throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", - ErrorCodes::LOGICAL_ERROR); - part->assertState({DataPartState::Temporary}); if (DataPartPtr existing_part_in_partition = getAnyPartInPartition(part->info.partition_id, lock)) @@ -2863,6 +2852,33 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( throw Exception(message, ErrorCodes::DUPLICATE_DATA_PART); } +} + +void MergeTreeData::preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, bool need_rename) +{ + part->is_temp = false; + part->setState(DataPartState::PreActive); + + if (need_rename) + part->renameTo(part->name, true); + + data_parts_indexes.insert(part); + out_transaction.precommitted_parts.insert(part); +} + +bool MergeTreeData::renameTempPartAndReplaceImpl( + MutableDataPartPtr & part, + Transaction & out_transaction, + DataPartsLock & lock, + DataPartsVector * out_covered_parts) +{ + LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part->name); + + if (&out_transaction.data != this) + throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", + ErrorCodes::LOGICAL_ERROR); + + checkPartCanBeAddedToTable(part, lock); DataPartPtr covering_part; DataPartsVector covered_parts = getActivePartsToReplace(part->info, part->name, covering_part, lock); @@ -2875,17 +2891,12 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( /// All checks are passed. Now we can rename the part on disk. /// So, we maintain invariant: if a non-temporary part in filesystem then it is in data_parts - /// - /// If out_transaction is null, we commit the part to the active set immediately, else add it to the transaction. - part->is_temp = false; - part->setState(DataPartState::PreActive); - part->renameTo(part->name, true); - - data_parts_indexes.insert(part); - out_transaction.precommitted_parts.insert(part); + preparePartForCommit(part, out_transaction, /* need_rename = */ true); if (out_covered_parts) { + out_covered_parts->reserve(covered_parts.size()); + for (DataPartPtr & covered_part : covered_parts) out_covered_parts->emplace_back(std::move(covered_part)); } diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 7b144accb6f..851504c38f0 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -1245,6 +1245,10 @@ protected: private: + void checkPartCanBeAddedToTable(MutableDataPartPtr & part, DataPartsLock & lock) const; + + void preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, bool need_rename); + /// Low-level version of previous one, doesn't lock mutex /// FIXME Merge MergeTreeTransaction and Transaction bool renameTempPartAndReplaceImpl( From 3bb765ae1fcfcb0687342ad0c93c4ab868e62cbb Mon Sep 17 00:00:00 2001 From: xinhuitian Date: Fri, 24 Jun 2022 22:24:48 +0800 Subject: [PATCH 211/525] fix some wrong titles and links in alter docs --- .../sql-reference/statements/alter/column.md | 12 +++++----- .../statements/alter/partition.md | 24 +++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/en/sql-reference/statements/alter/column.md b/docs/en/sql-reference/statements/alter/column.md index 07266eb09a3..2a5e36eaa00 100644 --- a/docs/en/sql-reference/statements/alter/column.md +++ b/docs/en/sql-reference/statements/alter/column.md @@ -18,12 +18,12 @@ Each action is an operation on a column. The following actions are supported: -- [ADD COLUMN](#alter_add-column) — Adds a new column to the table. -- [DROP COLUMN](#alter_drop-column) — Deletes the column. -- [RENAME COLUMN](#alter_rename-column) — Renames an existing column. -- [CLEAR COLUMN](#alter_clear-column) — Resets column values. -- [COMMENT COLUMN](#alter_comment-column) — Adds a text comment to the column. -- [MODIFY COLUMN](#alter_modify-column) — Changes column’s type, default expression and TTL. +- [ADD COLUMN](#add-column) — Adds a new column to the table. +- [DROP COLUMN](#drop-column) — Deletes the column. +- [RENAME COLUMN](#rename-column) — Renames an existing column. +- [CLEAR COLUMN](#clear-column) — Resets column values. +- [COMMENT COLUMN](#comment-column) — Adds a text comment to the column. +- [MODIFY COLUMN](#modify-column) — Changes column’s type, default expression and TTL. - [MODIFY COLUMN REMOVE](#modify-remove) — Removes one of the column properties. - [MATERIALIZE COLUMN](#materialize-column) — Materializes the column in the parts where the column is missing. diff --git a/docs/en/sql-reference/statements/alter/partition.md b/docs/en/sql-reference/statements/alter/partition.md index 75c80add9b7..27178c91de8 100644 --- a/docs/en/sql-reference/statements/alter/partition.md +++ b/docs/en/sql-reference/statements/alter/partition.md @@ -7,18 +7,18 @@ sidebar_label: PARTITION The following operations with [partitions](../../../engines/table-engines/mergetree-family/custom-partitioning-key.md) are available: -- [DETACH PARTITION](#alter_detach-partition) — Moves a partition to the `detached` directory and forget it. -- [DROP PARTITION](#alter_drop-partition) — Deletes a partition. -- [ATTACH PART\|PARTITION](#alter_attach-partition) — Adds a part or partition from the `detached` directory to the table. -- [ATTACH PARTITION FROM](#alter_attach-partition-from) — Copies the data partition from one table to another and adds. -- [REPLACE PARTITION](#alter_replace-partition) — Copies the data partition from one table to another and replaces. -- [MOVE PARTITION TO TABLE](#alter_move_to_table-partition) — Moves the data partition from one table to another. -- [CLEAR COLUMN IN PARTITION](#alter_clear-column-partition) — Resets the value of a specified column in a partition. -- [CLEAR INDEX IN PARTITION](#alter_clear-index-partition) — Resets the specified secondary index in a partition. -- [FREEZE PARTITION](#alter_freeze-partition) — Creates a backup of a partition. -- [UNFREEZE PARTITION](#alter_unfreeze-partition) — Removes a backup of a partition. -- [FETCH PARTITION\|PART](#alter_fetch-partition) — Downloads a part or partition from another server. -- [MOVE PARTITION\|PART](#alter_move-partition) — Move partition/data part to another disk or volume. +- [DETACH PARTITION\|Part](#detach-partitionpart) — Moves a partition or part to the `detached` directory and forget it. +- [DROP PARTITION\|Part](#drop-partitionpart) — Deletes a partition or part. +- [ATTACH PARTITION\|Part](#attach-partitionpart) — Adds a partition or part from the `detached` directory to the table. +- [ATTACH PARTITION FROM](#attach-partition-from) — Copies the data partition from one table to another and adds. +- [REPLACE PARTITION](#replace-partition) — Copies the data partition from one table to another and replaces. +- [MOVE PARTITION TO TABLE](#move_to_table-partition) — Moves the data partition from one table to another. +- [CLEAR COLUMN IN PARTITION](#clear-column-partition) — Resets the value of a specified column in a partition. +- [CLEAR INDEX IN PARTITION](#clear-index-partition) — Resets the specified secondary index in a partition. +- [FREEZE PARTITION](#freeze-partition) — Creates a backup of a partition. +- [UNFREEZE PARTITION](#unfreeze-partition) — Removes a backup of a partition. +- [FETCH PARTITION\|PART](#fetch-partition) — Downloads a part or partition from another server. +- [MOVE PARTITION\|PART](#move-partition) — Move partition/data part to another disk or volume. - [UPDATE IN PARTITION](#update-in-partition) — Update data inside the partition by condition. - [DELETE IN PARTITION](#delete-in-partition) — Delete data inside the partition by condition. From 848ae7b1304f5b1389ed7c812f47edb130d1112b Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Fri, 24 Jun 2022 16:49:48 +0200 Subject: [PATCH 212/525] Update docker-compose to try get rid of v1 errors --- docker/test/integration/runner/Dockerfile | 2 +- docker/test/testflows/runner/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/test/integration/runner/Dockerfile b/docker/test/integration/runner/Dockerfile index 57e4dfdeda1..80a2158b17d 100644 --- a/docker/test/integration/runner/Dockerfile +++ b/docker/test/integration/runner/Dockerfile @@ -67,7 +67,7 @@ RUN python3 -m pip install \ dict2xml \ dicttoxml \ docker \ - docker-compose==1.28.2 \ + docker-compose==1.29.2 \ grpcio \ grpcio-tools \ kafka-python \ diff --git a/docker/test/testflows/runner/Dockerfile b/docker/test/testflows/runner/Dockerfile index fbff6fd5e97..bfc3ed5e39f 100644 --- a/docker/test/testflows/runner/Dockerfile +++ b/docker/test/testflows/runner/Dockerfile @@ -38,7 +38,7 @@ RUN apt-get update \ ENV TZ=Europe/Moscow RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -RUN pip3 install urllib3 testflows==1.7.20 docker-compose==1.29.1 docker==5.0.0 dicttoxml kazoo tzlocal==2.1 pytz python-dateutil numpy +RUN pip3 install urllib3 testflows==1.7.20 docker-compose==1.29.2 docker==5.0.0 dicttoxml kazoo tzlocal==2.1 pytz python-dateutil numpy ENV DOCKER_CHANNEL stable ENV DOCKER_VERSION 20.10.6 From 072f64c80088750c996b8056b0d7c459cdaa5669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mar=C3=ADn?= Date: Fri, 24 Jun 2022 16:54:47 +0200 Subject: [PATCH 213/525] Improvements based on review --- src/Interpreters/executeQuery.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index ae622e5e1f0..4b328f0466e 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -626,8 +626,10 @@ static std::tuple executeQueryImpl( if (!table_id.empty()) context->setInsertionTable(table_id); - if (context->getCurrentTransaction() && context->getSettingsRef().throw_on_unsupported_query_inside_transaction) + if (context->getCurrentTransaction() && settings.throw_on_unsupported_query_inside_transaction) throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Async inserts inside transactions are not supported"); + if (settings.implicit_transaction && settings.throw_on_unsupported_query_inside_transaction) + throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Async inserts with 'implicit_transaction' are not supported"); } else { @@ -636,6 +638,9 @@ static std::tuple executeQueryImpl( { try { + if (context->isGlobalContext()) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Global context cannot create transactions"); + /// If there is no session (which is the default for the HTTP Handler), set up one just for this as it is necessary /// to control the transaction lifetime if (!context->hasSessionContext()) @@ -972,8 +977,18 @@ static std::tuple executeQueryImpl( if (implicit_txn_control) { - implicit_txn_control->executeCommit(context->getSessionContext()); - implicit_txn_control.reset(); + try + { + implicit_txn_control->executeCommit(context->getSessionContext()); + implicit_txn_control.reset(); + } + catch (const Exception &) + { + /// An exception might happen when trying to commit the transaction. For example we might get an immediate exception + /// because ZK is down and wait_changes_become_visible_after_commit_mode == WAIT_UNKNOWN + implicit_txn_control.reset(); + throw; + } } }; From 6ef534c86460b4e658be8fe0d3fadb499e3c386e Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Fri, 24 Jun 2022 11:13:15 -0400 Subject: [PATCH 214/525] move settings to H3 level --- .../mergetree-family/aggregatingmergetree.md | 6 +- .../mergetree-family/collapsingmergetree.md | 10 +- .../mergetree-family/graphitemergetree.md | 17 ++- .../mergetree-family/mergetree.md | 123 +++++++++++++----- .../mergetree-family/replacingmergetree.md | 8 +- .../mergetree-family/replication.md | 16 ++- .../mergetree-family/summingmergetree.md | 8 +- .../versionedcollapsingmergetree.md | 12 +- 8 files changed, 142 insertions(+), 58 deletions(-) diff --git a/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md b/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md index 5c3143c6c18..b2eea820139 100644 --- a/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md @@ -11,8 +11,8 @@ You can use `AggregatingMergeTree` tables for incremental data aggregation, incl The engine processes all columns with the following types: -- [AggregateFunction](../../../sql-reference/data-types/aggregatefunction.md) -- [SimpleAggregateFunction](../../../sql-reference/data-types/simpleaggregatefunction.md) +## [AggregateFunction](../../../sql-reference/data-types/aggregatefunction.md) +## [SimpleAggregateFunction](../../../sql-reference/data-types/simpleaggregatefunction.md) It is appropriate to use `AggregatingMergeTree` if it reduces the number of rows by orders. @@ -36,7 +36,7 @@ For a description of request parameters, see [request description](../../../sql- **Query clauses** -When creating a `AggregatingMergeTree` table the same [clauses](../../../engines/table-engines/mergetree-family/mergetree.md) are required, as when creating a `MergeTree` table. +When creating an `AggregatingMergeTree` table the same [clauses](../../../engines/table-engines/mergetree-family/mergetree.md) are required, as when creating a `MergeTree` table.

diff --git a/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md b/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md index afe323441ab..1b37e20d0da 100644 --- a/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md @@ -7,7 +7,7 @@ sidebar_label: CollapsingMergeTree The engine inherits from [MergeTree](../../../engines/table-engines/mergetree-family/mergetree.md) and adds the logic of rows collapsing to data parts merge algorithm. -`CollapsingMergeTree` asynchronously deletes (collapses) pairs of rows if all of the fields in a sorting key (`ORDER BY`) are equivalent excepting the particular field `Sign` which can have `1` and `-1` values. Rows without a pair are kept. For more details see the [Collapsing](#table_engine-collapsingmergetree-collapsing) section of the document. +`CollapsingMergeTree` asynchronously deletes (collapses) pairs of rows if all of the fields in a sorting key (`ORDER BY`) are equivalent except the particular field `Sign`, which can have `1` and `-1` values. Rows without a pair are kept. For more details see the [Collapsing](#table_engine-collapsingmergetree-collapsing) section of the document. The engine may significantly reduce the volume of storage and increase the efficiency of `SELECT` query as a consequence. @@ -28,13 +28,15 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] For a description of query parameters, see [query description](../../../sql-reference/statements/create/table.md). -**CollapsingMergeTree Parameters** +## CollapsingMergeTree Parameters -- `sign` — Name of the column with the type of row: `1` is a “state” row, `-1` is a “cancel” row. +### sign + +`sign` — Name of the column with the type of row: `1` is a “state” row, `-1` is a “cancel” row. Column data type — `Int8`. -**Query clauses** +## Query clauses When creating a `CollapsingMergeTree` table, the same [query clauses](../../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-creating-a-table) are required, as when creating a `MergeTree` table. diff --git a/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md b/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md index c1011e69ba6..9062dd3c423 100644 --- a/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md @@ -87,10 +87,18 @@ Rollup configuration structure: ### Required Columns {#required-columns} -- `path_column_name` — The name of the column storing the metric name (Graphite sensor). Default value: `Path`. -- `time_column_name` — The name of the column storing the time of measuring the metric. Default value: `Time`. -- `value_column_name` — The name of the column storing the value of the metric at the time set in `time_column_name`. Default value: `Value`. -- `version_column_name` — The name of the column storing the version of the metric. Default value: `Timestamp`. +#### path_column_name + +`path_column_name` — The name of the column storing the metric name (Graphite sensor). Default value: `Path`. + +#### time_column_name +`time_column_name` — The name of the column storing the time of measuring the metric. Default value: `Time`. + +#### value_column_name +`value_column_name` — The name of the column storing the value of the metric at the time set in `time_column_name`. Default value: `Value`. + +#### version_column_name +`version_column_name` — The name of the column storing the version of the metric. Default value: `Timestamp`. ### Patterns {#patterns} @@ -254,7 +262,6 @@ Valid values: ``` - :::warning Data rollup is performed during merges. Usually, for old partitions, merges are not started, so for rollup it is necessary to trigger an unscheduled merge using [optimize](../../../sql-reference/statements/optimize.md). Or use additional tools, for example [graphite-ch-optimizer](https://github.com/innogames/graphite-ch-optimizer). ::: diff --git a/docs/en/engines/table-engines/mergetree-family/mergetree.md b/docs/en/engines/table-engines/mergetree-family/mergetree.md index 15f66d2695f..103272fb250 100644 --- a/docs/en/engines/table-engines/mergetree-family/mergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/mergetree.md @@ -60,7 +60,11 @@ For a description of parameters, see the [CREATE query description](../../../sql ### Query Clauses {#mergetree-query-clauses} -- `ENGINE` — Name and parameters of the engine. `ENGINE = MergeTree()`. The `MergeTree` engine does not have parameters. +#### ENGINE + +`ENGINE` — Name and parameters of the engine. `ENGINE = MergeTree()`. The `MergeTree` engine does not have parameters. + +#### - `ORDER BY` — The sorting key. @@ -70,18 +74,23 @@ For a description of parameters, see the [CREATE query description](../../../sql Use the `ORDER BY tuple()` syntax, if you do not need sorting. See [Selecting the Primary Key](#selecting-the-primary-key). +#### + - `PARTITION BY` — The [partitioning key](../../../engines/table-engines/mergetree-family/custom-partitioning-key.md). Optional. In most cases you don't need partition key, and in most other cases you don't need partition key more granular than by months. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead make client identifier or name the first column in the ORDER BY expression). For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](../../../sql-reference/data-types/date.md). The partition names here have the `"YYYYMM"` format. +#### - `PRIMARY KEY` — The primary key if it [differs from the sorting key](#choosing-a-primary-key-that-differs-from-the-sorting-key). Optional. By default the primary key is the same as the sorting key (which is specified by the `ORDER BY` clause). Thus in most cases it is unnecessary to specify a separate `PRIMARY KEY` clause. +#### - `SAMPLE BY` — An expression for sampling. Optional. If a sampling expression is used, the primary key must contain it. The result of a sampling expression must be an unsigned integer. Example: `SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID))`. +#### - `TTL` — A list of rules specifying storage duration of rows and defining logic of automatic parts movement [between disks and volumes](#table_engine-mergetree-multiple-volumes). Optional. Expression must have one `Date` or `DateTime` column as a result. Example: @@ -91,26 +100,76 @@ For a description of parameters, see the [CREATE query description](../../../sql For more details, see [TTL for columns and tables](#table_engine-mergetree-ttl) -- `SETTINGS` — Additional parameters that control the behavior of the `MergeTree` (optional): +### SETTINGS +Additional parameters that control the behavior of the `MergeTree` (optional): - - `index_granularity` — Maximum number of data rows between the marks of an index. Default value: 8192. See [Data Storage](#mergetree-data-storage). - - `index_granularity_bytes` — Maximum size of data granules in bytes. Default value: 10Mb. To restrict the granule size only by number of rows, set to 0 (not recommended). See [Data Storage](#mergetree-data-storage). - - `min_index_granularity_bytes` — Min allowed size of data granules in bytes. Default value: 1024b. To provide a safeguard against accidentally creating tables with very low index_granularity_bytes. See [Data Storage](#mergetree-data-storage). - - `enable_mixed_granularity_parts` — Enables or disables transitioning to control the granule size with the `index_granularity_bytes` setting. Before version 19.11, there was only the `index_granularity` setting for restricting granule size. The `index_granularity_bytes` setting improves ClickHouse performance when selecting data from tables with big rows (tens and hundreds of megabytes). If you have tables with big rows, you can enable this setting for the tables to improve the efficiency of `SELECT` queries. - - `use_minimalistic_part_header_in_zookeeper` — Storage method of the data parts headers in ZooKeeper. If `use_minimalistic_part_header_in_zookeeper=1`, then ZooKeeper stores less data. For more information, see the [setting description](../../../operations/server-configuration-parameters/settings.md#server-settings-use_minimalistic_part_header_in_zookeeper) in “Server configuration parameters”. - - `min_merge_bytes_to_use_direct_io` — The minimum data volume for merge operation that is required for using direct I/O access to the storage disk. When merging data parts, ClickHouse calculates the total storage volume of all the data to be merged. If the volume exceeds `min_merge_bytes_to_use_direct_io` bytes, ClickHouse reads and writes the data to the storage disk using the direct I/O interface (`O_DIRECT` option). If `min_merge_bytes_to_use_direct_io = 0`, then direct I/O is disabled. Default value: `10 * 1024 * 1024 * 1024` bytes. +#### index_granularity + +`index_granularity` — Maximum number of data rows between the marks of an index. Default value: 8192. See [Data Storage](#mergetree-data-storage). + +#### index_granularity_bytes + +`index_granularity_bytes` — Maximum size of data granules in bytes. Default value: 10Mb. To restrict the granule size only by number of rows, set to 0 (not recommended). See [Data Storage](#mergetree-data-storage). + +#### min_index_granularity_bytes + +`min_index_granularity_bytes` — Min allowed size of data granules in bytes. Default value: 1024b. To provide a safeguard against accidentally creating tables with very low index_granularity_bytes. See [Data Storage](#mergetree-data-storage). + +#### enable_mixed_granularity_parts + +`enable_mixed_granularity_parts` — Enables or disables transitioning to control the granule size with the `index_granularity_bytes` setting. Before version 19.11, there was only the `index_granularity` setting for restricting granule size. The `index_granularity_bytes` setting improves ClickHouse performance when selecting data from tables with big rows (tens and hundreds of megabytes). If you have tables with big rows, you can enable this setting for the tables to improve the efficiency of `SELECT` queries. + +#### use_minimalistic_part_header_in_zookeeper + +`use_minimalistic_part_header_in_zookeeper` — Storage method of the data parts headers in ZooKeeper. If `use_minimalistic_part_header_in_zookeeper=1`, then ZooKeeper stores less data. For more information, see the [setting description](../../../operations/server-configuration-parameters/settings.md#server-settings-use_minimalistic_part_header_in_zookeeper) in “Server configuration parameters”. + +#### min_merge_bytes_to_use_direct_io + +`min_merge_bytes_to_use_direct_io` — The minimum data volume for merge operation that is required for using direct I/O access to the storage disk. When merging data parts, ClickHouse calculates the total storage volume of all the data to be merged. If the volume exceeds `min_merge_bytes_to_use_direct_io` bytes, ClickHouse reads and writes the data to the storage disk using the direct I/O interface (`O_DIRECT` option). If `min_merge_bytes_to_use_direct_io = 0`, then direct I/O is disabled. Default value: `10 * 1024 * 1024 * 1024` bytes. - - `merge_with_ttl_timeout` — Minimum delay in seconds before repeating a merge with delete TTL. Default value: `14400` seconds (4 hours). - - `merge_with_recompression_ttl_timeout` — Minimum delay in seconds before repeating a merge with recompression TTL. Default value: `14400` seconds (4 hours). - - `try_fetch_recompressed_part_timeout` — Timeout (in seconds) before starting merge with recompression. During this time ClickHouse tries to fetch recompressed part from replica which assigned this merge with recompression. Default value: `7200` seconds (2 hours). - - `write_final_mark` — Enables or disables writing the final index mark at the end of data part (after the last byte). Default value: 1. Don’t turn it off. - - `merge_max_block_size` — Maximum number of rows in block for merge operations. Default value: 8192. - - `storage_policy` — Storage policy. See [Using Multiple Block Devices for Data Storage](#table_engine-mergetree-multiple-volumes). - - `min_bytes_for_wide_part`, `min_rows_for_wide_part` — Minimum number of bytes/rows in a data part that can be stored in `Wide` format. You can set one, both or none of these settings. See [Data Storage](#mergetree-data-storage). - - `max_parts_in_total` — Maximum number of parts in all partitions. - - `max_compress_block_size` — Maximum size of blocks of uncompressed data before compressing for writing to a table. You can also specify this setting in the global settings (see [max_compress_block_size](../../../operations/settings/settings.md#max-compress-block-size) setting). The value specified when table is created overrides the global value for this setting. - - `min_compress_block_size` — Minimum size of blocks of uncompressed data required for compression when writing the next mark. You can also specify this setting in the global settings (see [min_compress_block_size](../../../operations/settings/settings.md#min-compress-block-size) setting). The value specified when table is created overrides the global value for this setting. - - `max_partitions_to_read` — Limits the maximum number of partitions that can be accessed in one query. You can also specify setting [max_partitions_to_read](../../../operations/settings/merge-tree-settings.md#max-partitions-to-read) in the global setting. + +#### merge_with_ttl_timeout + +`merge_with_ttl_timeout` — Minimum delay in seconds before repeating a merge with delete TTL. Default value: `14400` seconds (4 hours). +#### merge_with_recompression_ttl_timeout + +`merge_with_recompression_ttl_timeout` — Minimum delay in seconds before repeating a merge with recompression TTL. Default value: `14400` seconds (4 hours). + +#### try_fetch_recompressed_part_timeout + +`try_fetch_recompressed_part_timeout` — Timeout (in seconds) before starting merge with recompression. During this time ClickHouse tries to fetch recompressed part from replica which assigned this merge with recompression. Default value: `7200` seconds (2 hours). + +#### write_final_mark + +`write_final_mark` — Enables or disables writing the final index mark at the end of data part (after the last byte). Default value: 1. Don’t turn it off. + +#### merge_max_block_size + +`merge_max_block_size` — Maximum number of rows in block for merge operations. Default value: 8192. + +#### storage_policy + +`storage_policy` — Storage policy. See [Using Multiple Block Devices for Data Storage](#table_engine-mergetree-multiple-volumes). + +#### min_bytes_for_wide_part + +`min_bytes_for_wide_part`, `min_rows_for_wide_part` — Minimum number of bytes/rows in a data part that can be stored in `Wide` format. You can set one, both or none of these settings. See [Data Storage](#mergetree-data-storage). + +#### max_parts_in_total + +`max_parts_in_total` — Maximum number of parts in all partitions. + +#### max_compress_block_size + +`max_compress_block_size` — Maximum size of blocks of uncompressed data before compressing for writing to a table. You can also specify this setting in the global settings (see [max_compress_block_size](../../../operations/settings/settings.md#max-compress-block-size) setting). The value specified when table is created overrides the global value for this setting. + +#### min_compress_block_size + +`min_compress_block_size` — Minimum size of blocks of uncompressed data required for compression when writing the next mark. You can also specify this setting in the global settings (see [min_compress_block_size](../../../operations/settings/settings.md#min-compress-block-size) setting). The value specified when table is created overrides the global value for this setting. + +#### max_partitions_to_read + +`max_partitions_to_read` — Limits the maximum number of partitions that can be accessed in one query. You can also specify setting [max_partitions_to_read](../../../operations/settings/merge-tree-settings.md#max-partitions-to-read) in the global setting. **Example of Sections Setting** @@ -310,17 +369,17 @@ SELECT count() FROM table WHERE s < 'z' SELECT count() FROM table WHERE u64 * i32 == 10 AND u64 * length(s) >= 1234 ``` -#### Available Types of Indices {#available-types-of-indices} +### Available Types of Indices {#available-types-of-indices} -- `minmax` +#### `minmax` Stores extremes of the specified expression (if the expression is `tuple`, then it stores extremes for each element of `tuple`), uses stored info for skipping blocks of data like the primary key. -- `set(max_rows)` +#### `set(max_rows)` Stores unique values of the specified expression (no more than `max_rows` rows, `max_rows=0` means “no limits”). Uses the values to check if the `WHERE` expression is not satisfiable on a block of data. -- `ngrambf_v1(n, size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)` +#### `ngrambf_v1(n, size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)` Stores a [Bloom filter](https://en.wikipedia.org/wiki/Bloom_filter) that contains all ngrams from a block of data. Works only with datatypes: [String](../../../sql-reference/data-types/string.md), [FixedString](../../../sql-reference/data-types/fixedstring.md) and [Map](../../../sql-reference/data-types/map.md). Can be used for optimization of `EQUALS`, `LIKE` and `IN` expressions. @@ -329,11 +388,11 @@ SELECT count() FROM table WHERE u64 * i32 == 10 AND u64 * length(s) >= 1234 - `number_of_hash_functions` — The number of hash functions used in the Bloom filter. - `random_seed` — The seed for Bloom filter hash functions. -- `tokenbf_v1(size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)` +#### `tokenbf_v1(size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)` The same as `ngrambf_v1`, but stores tokens instead of ngrams. Tokens are sequences separated by non-alphanumeric characters. -- `bloom_filter([false_positive])` — Stores a [Bloom filter](https://en.wikipedia.org/wiki/Bloom_filter) for the specified columns. +#### `bloom_filter([false_positive])` — Stores a [Bloom filter](https://en.wikipedia.org/wiki/Bloom_filter) for the specified columns. The optional `false_positive` parameter is the probability of receiving a false positive response from the filter. Possible values: (0, 1). Default value: 0.025. @@ -357,7 +416,7 @@ INDEX sample_index2 (u64 * length(str), i32 + f64 * 100, date, str) TYPE set(100 INDEX sample_index3 (lower(str), str) TYPE ngrambf_v1(3, 256, 2, 0) GRANULARITY 4 ``` -#### Functions Support {#functions-support} +### Functions Support {#functions-support} Conditions in the `WHERE` clause contains calls of the functions that operate with columns. If the column is a part of an index, ClickHouse tries to use this index when performing the functions. ClickHouse supports different subsets of functions for using indexes. @@ -466,7 +525,7 @@ The `TTL` clause can’t be used for key columns. **Examples** -Creating a table with `TTL`: +#### Creating a table with `TTL`: ``` sql CREATE TABLE example_table @@ -481,7 +540,7 @@ PARTITION BY toYYYYMM(d) ORDER BY d; ``` -Adding TTL to a column of an existing table +#### Adding TTL to a column of an existing table ``` sql ALTER TABLE example_table @@ -489,7 +548,7 @@ ALTER TABLE example_table c String TTL d + INTERVAL 1 DAY; ``` -Altering TTL of the column +#### Altering TTL of the column ``` sql ALTER TABLE example_table @@ -524,7 +583,7 @@ If a column is not part of the `GROUP BY` expression and is not set explicitly i **Examples** -Creating a table with `TTL`: +#### Creating a table with `TTL`: ``` sql CREATE TABLE example_table @@ -540,7 +599,7 @@ TTL d + INTERVAL 1 MONTH [DELETE], d + INTERVAL 2 WEEK TO DISK 'bbb'; ``` -Altering `TTL` of the table: +#### Altering `TTL` of the table: ``` sql ALTER TABLE example_table @@ -561,7 +620,7 @@ ORDER BY d TTL d + INTERVAL 1 MONTH DELETE WHERE toDayOfWeek(d) = 1; ``` -Creating a table, where expired rows are recompressed: +#### Creating a table, where expired rows are recompressed: ```sql CREATE TABLE table_for_recompression diff --git a/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md b/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md index 5586d108ead..daa507cab66 100644 --- a/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md @@ -33,16 +33,18 @@ For a description of request parameters, see [statement description](../../../sq Uniqueness of rows is determined by the `ORDER BY` table section, not `PRIMARY KEY`. ::: -**ReplacingMergeTree Parameters** +## ReplacingMergeTree Parameters -- `ver` — column with the version number. Type `UInt*`, `Date`, `DateTime` or `DateTime64`. Optional parameter. +### ver + +`ver` — column with the version number. Type `UInt*`, `Date`, `DateTime` or `DateTime64`. Optional parameter. When merging, `ReplacingMergeTree` from all the rows with the same sorting key leaves only one: - The last in the selection, if `ver` not set. A selection is a set of rows in a set of parts participating in the merge. The most recently created part (the last insert) will be the last one in the selection. Thus, after deduplication, the very last row from the most recent insert will remain for each unique sorting key. - With the maximum version, if `ver` specified. If `ver` is the same for several rows, then it will use "if `ver` is not specified" rule for them, i.e. the most recent inserted row will remain. -**Query clauses** +## Query clauses When creating a `ReplacingMergeTree` table the same [clauses](../../../engines/table-engines/mergetree-family/mergetree.md) are required, as when creating a `MergeTree` table. diff --git a/docs/en/engines/table-engines/mergetree-family/replication.md b/docs/en/engines/table-engines/mergetree-family/replication.md index 3562bdf6d3a..0dfcdccb029 100644 --- a/docs/en/engines/table-engines/mergetree-family/replication.md +++ b/docs/en/engines/table-engines/mergetree-family/replication.md @@ -120,11 +120,19 @@ The system monitors data synchronicity on replicas and is able to recover after The `Replicated` prefix is added to the table engine name. For example:`ReplicatedMergeTree`. -**Replicated\*MergeTree parameters** +### Replicated\*MergeTree parameters -- `zoo_path` — The path to the table in ClickHouse Keeper. -- `replica_name` — The replica name in ClickHouse Keeper. -- `other_parameters` — Parameters of an engine which is used for creating the replicated version, for example, version in `ReplacingMergeTree`. +#### zoo_path + +`zoo_path` — The path to the table in ClickHouse Keeper. + +#### replica_name + +`replica_name` — The replica name in ClickHouse Keeper. + +#### other_parameters + +`other_parameters` — Parameters of an engine which is used for creating the replicated version, for example, version in `ReplacingMergeTree`. Example: diff --git a/docs/en/engines/table-engines/mergetree-family/summingmergetree.md b/docs/en/engines/table-engines/mergetree-family/summingmergetree.md index b532aef1980..7afa7cf028e 100644 --- a/docs/en/engines/table-engines/mergetree-family/summingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/summingmergetree.md @@ -26,14 +26,16 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] For a description of request parameters, see [request description](../../../sql-reference/statements/create/table.md). -**Parameters of SummingMergeTree** +### Parameters of SummingMergeTree -- `columns` - a tuple with the names of columns where values will be summarized. Optional parameter. +#### columns + +`columns` - a tuple with the names of columns where values will be summarized. Optional parameter. The columns must be of a numeric type and must not be in the primary key. If `columns` not specified, ClickHouse summarizes the values in all columns with a numeric data type that are not in the primary key. -**Query clauses** +### Query clauses When creating a `SummingMergeTree` table the same [clauses](../../../engines/table-engines/mergetree-family/mergetree.md) are required, as when creating a `MergeTree` table. diff --git a/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md b/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md index c1fe5dfffdf..5642602f4a1 100644 --- a/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md @@ -31,21 +31,25 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] For a description of query parameters, see the [query description](../../../sql-reference/statements/create/table.md). -**Engine Parameters** +### Engine Parameters ``` sql VersionedCollapsingMergeTree(sign, version) ``` -- `sign` — Name of the column with the type of row: `1` is a “state” row, `-1` is a “cancel” row. +#### sign + +`sign` — Name of the column with the type of row: `1` is a “state” row, `-1` is a “cancel” row. The column data type should be `Int8`. -- `version` — Name of the column with the version of the object state. +#### version + +`version` — Name of the column with the version of the object state. The column data type should be `UInt*`. -**Query Clauses** +### Query Clauses When creating a `VersionedCollapsingMergeTree` table, the same [clauses](../../../engines/table-engines/mergetree-family/mergetree.md) are required as when creating a `MergeTree` table. From 379fecf7f9069fe8e826c40a55b6d82148511589 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Fri, 24 Jun 2022 17:15:15 +0200 Subject: [PATCH 215/525] try suppress failures with MaterializedPostgreSQL --- src/Databases/DatabaseOrdinary.cpp | 4 +++- src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp | 1 + src/Interpreters/DatabaseCatalog.cpp | 1 - src/Interpreters/InterpreterCreateQuery.cpp | 6 +++++- tests/clickhouse-test | 3 +++ 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Databases/DatabaseOrdinary.cpp b/src/Databases/DatabaseOrdinary.cpp index 0bdabf7ef79..2b88fbbfcf7 100644 --- a/src/Databases/DatabaseOrdinary.cpp +++ b/src/Databases/DatabaseOrdinary.cpp @@ -188,7 +188,9 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables else if (!DatabaseCatalog::instance().hasUUIDMapping(create_query->uuid)) { /// It's ATTACH DATABASE. UUID for permanently detached table must be already locked. - throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create_query->uuid); + /// FIXME MaterializedPostgreSQL works with UUIDs incorrectly and breaks invariants + if (getEngineName() != "MaterializedPostgreSQL") + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create_query->uuid); } } diff --git a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp index 60d2fa0d2c8..db184342a97 100644 --- a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp +++ b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp @@ -259,6 +259,7 @@ void DatabaseMaterializedPostgreSQL::createTable(ContextPtr local_context, const auto * create_query = assert_cast(query_copy.get()); create_query->attach = false; create_query->attach_short_syntax = false; + DatabaseCatalog::instance().addUUIDMapping(create->uuid); DatabaseAtomic::createTable(StorageMaterializedPostgreSQL::makeNestedTableContext(local_context), table_name, table, query_copy); /// Attach MaterializedPostgreSQL table. diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 159003138c2..1df3bf30396 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -31,7 +31,6 @@ #endif #if USE_LIBPQXX -# include # include # include #endif diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index 54a11e9100f..75d00fcb8a7 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -1273,7 +1273,11 @@ bool InterpreterCreateQuery::doCreateTable(ASTCreateQuery & create, if (need_lock_uuid) uuid_lock = TemporaryLockForUUIDDirectory{create.uuid}; else if (create.uuid != UUIDHelpers::Nil && !DatabaseCatalog::instance().hasUUIDMapping(create.uuid)) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create.uuid); + { + /// FIXME MaterializedPostgreSQL works with UUIDs incorrectly and breaks invariants + if (database->getEngineName() != "MaterializedPostgreSQL") + throw Exception(ErrorCodes::LOGICAL_ERROR, "Cannot find UUID mapping for {}, it's a bug", create.uuid); + } StoragePtr res; /// NOTE: CREATE query may be rewritten by Storage creator or table function diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 3e0d4e822b4..75159053f26 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -2172,4 +2172,7 @@ if __name__ == "__main__": if args.jobs is None: args.jobs = multiprocessing.cpu_count() + if args.db_engine and args.db_engine == "Ordinary": + MESSAGES_TO_RETRY.append(" locking attempt on ") + main(args) From 011d58d7a0d13b6a261b29d4c91490034821586b Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 17:19:59 +0200 Subject: [PATCH 216/525] Simplify more --- src/Storages/MergeTree/MergeTreeData.cpp | 71 ++++--------------- src/Storages/MergeTree/MergeTreeData.h | 20 +++--- src/Storages/MergeTree/MergeTreeSink.cpp | 43 +++++++++-- .../MergeTree/ReplicatedMergeTreeSink.cpp | 3 +- src/Storages/StorageMergeTree.cpp | 45 +++++++++--- src/Storages/StorageMergeTree.h | 2 + src/Storages/StorageReplicatedMergeTree.cpp | 13 ++-- 7 files changed, 108 insertions(+), 89 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index ad99b60d4ea..fdba84048f0 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -96,7 +96,6 @@ namespace ProfileEvents extern const Event RejectedInserts; extern const Event DelayedInserts; extern const Event DelayedInsertsMilliseconds; - extern const Event DuplicatedInsertedBlocks; extern const Event InsertedWideParts; extern const Event InsertedCompactParts; extern const Event InsertedInMemoryParts; @@ -2787,42 +2786,13 @@ MergeTreeData::DataPartsVector MergeTreeData::getActivePartsToReplace( bool MergeTreeData::renameTempPartAndAdd( MutableDataPartPtr & part, Transaction & out_transaction, - SimpleIncrement * increment, - MergeTreeDeduplicationLog * deduplication_log, - std::string_view deduplication_token) + DataPartsLock & lock) { DataPartsVector covered_parts; - { - auto lock = lockParts(); - /** It is important that obtaining new block number and adding that block to parts set is done atomically. - * Otherwise there is race condition - merge of blocks could happen in interval that doesn't yet contain new part. - */ - if (increment) - { - part->info.min_block = part->info.max_block = increment->get(); - part->info.mutation = 0; - part->name = part->getNewName(part->info); - } - /// Deduplication log used only from non-replicated MergeTree. Replicated - /// tables have their own mechanism. We try to deduplicate at such deep - /// level, because only here we know real part name which is required for - /// deduplication. - if (deduplication_log) - { - const String block_id = part->getZeroLevelPartBlockID(deduplication_token); - auto res = deduplication_log->addPart(block_id, part->info); - if (!res.second) - { - ProfileEvents::increment(ProfileEvents::DuplicatedInsertedBlocks); - LOG_INFO(log, "Block with ID {} already exists as part {}; ignoring it", block_id, res.first.getPartName()); - return false; - } - } + if (!renameTempPartAndReplaceImpl(part, out_transaction, lock, &covered_parts)) + return false; - if (!renameTempPartAndReplaceImpl(part, out_transaction, lock, &covered_parts)) - return false; - } if (!covered_parts.empty()) throw Exception("Added part " + part->name + " covers " + toString(covered_parts.size()) + " existing part(s) (including " + covered_parts[0]->name + ")", ErrorCodes::LOGICAL_ERROR); @@ -2904,34 +2874,23 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( return true; } +MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplaceUnlocked( + MutableDataPartPtr & part, + Transaction & out_transaction, + DataPartsLock & lock) +{ + DataPartsVector covered_parts; + renameTempPartAndReplaceImpl(part, out_transaction, lock, &covered_parts); + + return covered_parts; +} + MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, Transaction & out_transaction) { auto part_lock = lockParts(); - - DataPartsVector covered_parts; - renameTempPartAndReplaceImpl(part, out_transaction, part_lock, &covered_parts); - - return covered_parts; -} - -void MergeTreeData::renameTempPartsAndReplace( - MutableDataPartsVector & parts, - Transaction & out_transaction, - DataPartsLock & lock, - SimpleIncrement * increment) -{ - for (auto & part : parts) - { - if (increment) - { - part->info.min_block = part->info.max_block = increment->get(); - part->info.mutation = 0; - part->name = part->getNewName(part->info); - } - renameTempPartAndReplaceImpl(part, out_transaction, lock, nullptr); - } + return renameTempPartAndReplaceUnlocked(part, out_transaction, part_lock); } void MergeTreeData::removePartsFromWorkingSet(MergeTreeTransaction * txn, const MergeTreeData::DataPartsVector & remove, bool clear_without_timeout, DataPartsLock & acquired_lock) diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 851504c38f0..adc9c78d516 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -557,23 +557,20 @@ public: bool renameTempPartAndAdd( MutableDataPartPtr & part, Transaction & transaction, - SimpleIncrement * increment = nullptr, - MergeTreeDeduplicationLog * deduplication_log = nullptr, - std::string_view deduplication_token = std::string_view()); + DataPartsLock & lock); /// The same as renameTempPartAndAdd but the block range of the part can contain existing parts. /// Returns all parts covered by the added part (in ascending order). /// If out_transaction == nullptr, marks covered parts as Outdated. + DataPartsVector renameTempPartAndReplaceUnlocked( + MutableDataPartPtr & part, + Transaction & out_transaction, + DataPartsLock & lock); + DataPartsVector renameTempPartAndReplace( MutableDataPartPtr & part, Transaction & out_transaction); - void renameTempPartsAndReplace( - MutableDataPartsVector & parts, - Transaction & out_transaction, - DataPartsLock & lock, - SimpleIncrement * increment = nullptr); - /// Remove parts from working set immediately (without wait for background /// process). Transfer part state to temporary. Have very limited usage only /// for new parts which aren't already present in table. @@ -1245,11 +1242,14 @@ protected: private: + /// Checking that candidate part doesn't break invariants: correct partition and doesn't exist already void checkPartCanBeAddedToTable(MutableDataPartPtr & part, DataPartsLock & lock) const; + /// Preparing itself to be commited in memory: fill some fields inside part, add it to data_parts_indexes + /// in precommited state and to transasction void preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, bool need_rename); - /// Low-level version of previous one, doesn't lock mutex + /// Low-level method for preparing parts for commit. /// FIXME Merge MergeTreeTransaction and Transaction bool renameTempPartAndReplaceImpl( MutableDataPartPtr & part, diff --git a/src/Storages/MergeTree/MergeTreeSink.cpp b/src/Storages/MergeTree/MergeTreeSink.cpp index 52f6fc46d9c..2f860b34fd5 100644 --- a/src/Storages/MergeTree/MergeTreeSink.cpp +++ b/src/Storages/MergeTree/MergeTreeSink.cpp @@ -3,6 +3,10 @@ #include #include +namespace ProfileEvents +{ + extern const Event DuplicatedInsertedBlocks; +} namespace DB { @@ -133,11 +137,42 @@ void MergeTreeSink::finishDelayedChunk() auto & part = partition.temp_part.part; - MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); - /// Part can be deduplicated, so increment counters and add to part log only if it's really added - if (storage.renameTempPartAndAdd(part, transaction, &storage.increment, storage.getDeduplicationLog(), partition.block_dedup_token)) + bool added = false; + + { + auto lock = storage.lockParts(); + storage.fillNewPartName(part, lock); + + auto * deduplication_log = storage.getDeduplicationLog(); + if (deduplication_log) + { + const String block_id = part->getZeroLevelPartBlockID(partition.block_dedup_token); + auto res = deduplication_log->addPart(block_id, part->info); + if (!res.second) + { + ProfileEvents::increment(ProfileEvents::DuplicatedInsertedBlocks); + LOG_INFO(storage.log, "Block with ID {} already exists as part {}; ignoring it", block_id, res.first.getPartName()); + } + else + { + MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); + added = storage.renameTempPartAndAdd(part, transaction, lock); + transaction.commit(&lock); + + } + } + else + { + MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); + added = storage.renameTempPartAndAdd(part, transaction, lock); + transaction.commit(&lock); + } + + } + + /// Part can be deduplicated, so increment counters and add to part log only if it's really added + if (added) { - transaction.commit(); PartLog::addNewPart(storage.getContext(), part, partition.elapsed_ns); storage.incrementInsertedPartsProfileEvent(part->getType()); diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index d63c79b2006..07e21def184 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -476,7 +476,8 @@ void ReplicatedMergeTreeSink::commitPart( try { - renamed = storage.renameTempPartAndAdd(part, transaction); + auto lock = storage.lockParts(); + renamed = storage.renameTempPartAndAdd(part, transaction, lock); } catch (const Exception & e) { diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index 9bb1db105c1..43ebd9d5e84 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1542,9 +1542,13 @@ PartitionCommandsResultInfo StorageMergeTree::attachPartition( loaded_parts[i]->storeVersionMetadata(); String old_name = renamed_parts.old_and_new_names[i].old_name; - MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); - renameTempPartAndAdd(loaded_parts[i], transaction, &increment); - transaction.commit(); + { + auto lock = lockParts(); + MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); + fillNewPartName(loaded_parts[i], lock); + renameTempPartAndAdd(loaded_parts[i], transaction, lock); + transaction.commit(&lock); + } renamed_parts.old_and_new_names[i].old_name.clear(); @@ -1616,8 +1620,16 @@ void StorageMergeTree::replacePartitionFrom(const StoragePtr & source_table, con Transaction transaction(*this, local_context->getCurrentTransaction().get()); auto data_parts_lock = lockParts(); + + /** It is important that obtaining new block number and adding that block to parts set is done atomically. + * Otherwise there is race condition - merge of blocks could happen in interval that doesn't yet contain new part. + */ + for (auto part : dst_parts) + { + fillNewPartName(part, data_parts_lock); + renameTempPartAndReplaceUnlocked(part, transaction, data_parts_lock); + } /// Populate transaction - renameTempPartsAndReplace(dst_parts, transaction, data_parts_lock, &increment); transaction.commit(&data_parts_lock); /// If it is REPLACE (not ATTACH), remove all parts which max_block_number less then min_block_number of the first new block @@ -1690,13 +1702,15 @@ void StorageMergeTree::movePartitionToTable(const StoragePtr & dest_table, const auto src_data_parts_lock = lockParts(); auto dest_data_parts_lock = dest_table_storage->lockParts(); - std::mutex mutex; - DataPartsLock lock(mutex); + for (auto & part : dst_parts) + { + dest_table_storage->fillNewPartName(part, dest_data_parts_lock); + dest_table_storage->renameTempPartAndReplaceUnlocked(part, transaction, dest_data_parts_lock); + } - dest_table_storage->renameTempPartsAndReplace(dst_parts, transaction, lock, &dest_table_storage->increment); - removePartsFromWorkingSet(local_context->getCurrentTransaction().get(), src_parts, true, lock); - transaction.commit(&lock); + removePartsFromWorkingSet(local_context->getCurrentTransaction().get(), src_parts, true, src_data_parts_lock); + transaction.commit(&src_data_parts_lock); } clearOldPartsFromFilesystem(); @@ -1787,9 +1801,11 @@ void StorageMergeTree::attachRestoredParts(MutableDataPartsVector && parts) { for (auto part : parts) { + auto lock = lockParts(); MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - renameTempPartAndAdd(part, transaction, &increment); - transaction.commit(); + fillNewPartName(part, lock); + renameTempPartAndAdd(part, transaction, lock); + transaction.commit(&lock); } } @@ -1815,4 +1831,11 @@ std::unique_ptr StorageMergeTree::getDefaultSettings() const return std::make_unique(getContext()->getMergeTreeSettings()); } +void StorageMergeTree::fillNewPartName(MutableDataPartPtr & part, DataPartsLock &) +{ + part->info.min_block = part->info.max_block = increment.get(); + part->info.mutation = 0; + part->name = part->getNewName(part->info); +} + } diff --git a/src/Storages/StorageMergeTree.h b/src/Storages/StorageMergeTree.h index ccfe03d012a..582962551d0 100644 --- a/src/Storages/StorageMergeTree.h +++ b/src/Storages/StorageMergeTree.h @@ -251,6 +251,8 @@ private: /// return any ids. std::optional getIncompleteMutationsStatus(Int64 mutation_version, std::set * mutation_ids = nullptr) const; + void fillNewPartName(MutableDataPartPtr & part, DataPartsLock & lock); + void startBackgroundMovesIfNeeded() override; /// Attaches restored parts to the storage. diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 209beb0a5f6..af0b829bb89 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -6602,7 +6602,8 @@ void StorageReplicatedMergeTree::replacePartitionFrom( Transaction transaction(*this, NO_TRANSACTION_RAW); { auto data_parts_lock = lockParts(); - renameTempPartsAndReplace(dst_parts, transaction, data_parts_lock); + for (auto & part : dst_parts) + renameTempPartAndReplaceUnlocked(part, transaction, data_parts_lock); } for (size_t i = 0; i < dst_parts.size(); ++i) @@ -6835,10 +6836,8 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta auto src_data_parts_lock = lockParts(); auto dest_data_parts_lock = dest_table_storage->lockParts(); - std::mutex mutex; - DataPartsLock lock(mutex); - - renameTempPartsAndReplace(dst_parts, transaction, lock); + for (auto & part : dst_parts) + renameTempPartAndReplaceUnlocked(part, transaction, src_data_parts_lock); for (size_t i = 0; i < dst_parts.size(); ++i) dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); @@ -6849,8 +6848,8 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta else zkutil::KeeperMultiException::check(code, ops, op_results); - parts_to_remove = removePartsInRangeFromWorkingSetAndGetPartsToRemoveFromZooKeeper(NO_TRANSACTION_RAW, drop_range, lock); - transaction.commit(&lock); + parts_to_remove = removePartsInRangeFromWorkingSetAndGetPartsToRemoveFromZooKeeper(NO_TRANSACTION_RAW, drop_range, src_data_parts_lock); + transaction.commit(&src_data_parts_lock); } PartLog::addNewParts(getContext(), dst_parts, watch.elapsed()); From f685cf2268a0fe28754201b0eb9e16c1346daf68 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 17:33:43 +0200 Subject: [PATCH 217/525] Fix comment --- src/Storages/MergeTree/MergeTreeData.h | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index adc9c78d516..72d029942ef 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -549,10 +549,7 @@ public: /// Renames temporary part to a permanent part and adds it to the parts set. /// It is assumed that the part does not intersect with existing parts. - /// If increment != nullptr, part index is determining using increment. Otherwise part index remains unchanged. - /// If out_transaction != nullptr, adds the part in the PreActive state (the part will be added to the - /// active set later with out_transaction->commit()). - /// Else, commits the part immediately. + /// Adds the part in the PreActive state (the part will be added to the active set later with out_transaction->commit()). /// Returns true if part was added. Returns false if part is covered by bigger part. bool renameTempPartAndAdd( MutableDataPartPtr & part, @@ -561,16 +558,16 @@ public: /// The same as renameTempPartAndAdd but the block range of the part can contain existing parts. /// Returns all parts covered by the added part (in ascending order). - /// If out_transaction == nullptr, marks covered parts as Outdated. + DataPartsVector renameTempPartAndReplace( + MutableDataPartPtr & part, + Transaction & out_transaction); + + /// Unlocked version of previous one. Useful when added multiple parts with a single lock. DataPartsVector renameTempPartAndReplaceUnlocked( MutableDataPartPtr & part, Transaction & out_transaction, DataPartsLock & lock); - DataPartsVector renameTempPartAndReplace( - MutableDataPartPtr & part, - Transaction & out_transaction); - /// Remove parts from working set immediately (without wait for background /// process). Transfer part state to temporary. Have very limited usage only /// for new parts which aren't already present in table. @@ -1249,7 +1246,7 @@ private: /// in precommited state and to transasction void preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, bool need_rename); - /// Low-level method for preparing parts for commit. + /// Low-level method for preparing parts for commit (in-memory). /// FIXME Merge MergeTreeTransaction and Transaction bool renameTempPartAndReplaceImpl( MutableDataPartPtr & part, @@ -1257,7 +1254,6 @@ private: DataPartsLock & lock, DataPartsVector * out_covered_parts); - /// RAII Wrapper for atomic work with currently moving parts /// Acquire them in constructor and remove them in destructor /// Uses data.currently_moving_parts_mutex From 59a14d2a509a45de46066bfc8e0a9ad3327d35a7 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Fri, 24 Jun 2022 17:34:41 +0200 Subject: [PATCH 218/525] add docs --- .../settings.md | 29 +++++++++++++++++++ src/Interpreters/DatabaseCatalog.cpp | 5 +++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/en/operations/server-configuration-parameters/settings.md b/docs/en/operations/server-configuration-parameters/settings.md index ad879679a3d..d3a50969a39 100644 --- a/docs/en/operations/server-configuration-parameters/settings.md +++ b/docs/en/operations/server-configuration-parameters/settings.md @@ -193,6 +193,35 @@ Sets the delay before remove table data in seconds. If the query has `SYNC` modi Default value: `480` (8 minute). +## database_catalog_unused_dir_hide_timeout_sec {#database_catalog_unused_dir_hide_timeout_sec} + +Parameter of a task that cleans up garbage from `store/` directory. +If some subdirectory is not used by clickhouse-server and this directory was not modified for last +`database_catalog_unused_dir_hide_timeout_sec` seconds, the task will "hide" this directory by +removing all access rights. It also works for directories that clickhouse-server does not +expect to see inside `store/`. Zero means "immediately". + +Default value: `3600` (1 hour). + +## database_catalog_unused_dir_rm_timeout_sec {#database_catalog_unused_dir_rm_timeout_sec} + +Parameter of a task that cleans up garbage from `store/` directory. +If some subdirectory is not used by clickhouse-server and it was previousely "hidden" +(see [database_catalog_unused_dir_hide_timeout_sec](../../operations/server-configuration-parameters/settings.md#database_catalog_unused_dir_hide_timeout_sec)) +and this directory was not modified for last +`database_catalog_unused_dir_rm_timeout_sec` seconds, the task will remove this directory. +It also works for directories that clickhouse-server does not +expect to see inside `store/`. Zero means "never". + +Default value: `2592000` (30 days). + +## database_catalog_unused_dir_cleanup_period_sec {#database_catalog_unused_dir_cleanup_period_sec} + +Parameter of a task that cleans up garbage from `store/` directory. +Sets scheduling period of the task. Zero means "never". + +Default value: `86400` (1 day). + ## default_database {#default-database} The default database. diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 1df3bf30396..13340221f38 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -156,7 +156,7 @@ void DatabaseCatalog::initializeAndLoadTemporaryDatabase() void DatabaseCatalog::loadDatabases() { - if (Context::getGlobalContextInstance()->getApplicationType() == Context::ApplicationType::SERVER) + if (Context::getGlobalContextInstance()->getApplicationType() == Context::ApplicationType::SERVER && unused_dir_cleanup_period_sec) { auto cleanup_task_holder = getContext()->getSchedulePool().createTask("DatabaseCatalog", [this]() { this->cleanupStoreDirectoryTask(); }); @@ -1219,6 +1219,9 @@ bool DatabaseCatalog::maybeRemoveDirectory(const fs::path & unused_dir) } else { + if (!unused_dir_rm_timeout_sec) + return false; + if (current_time <= max_modification_time + unused_dir_rm_timeout_sec) return false; From d963f262f828a8c6b2502c0cb2e86d35cbbf438b Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 17:43:18 +0200 Subject: [PATCH 219/525] Fix style --- src/Storages/MergeTree/MergeTreeData.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 72d029942ef..4fd7dd7d3cf 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -1242,8 +1242,8 @@ private: /// Checking that candidate part doesn't break invariants: correct partition and doesn't exist already void checkPartCanBeAddedToTable(MutableDataPartPtr & part, DataPartsLock & lock) const; - /// Preparing itself to be commited in memory: fill some fields inside part, add it to data_parts_indexes - /// in precommited state and to transasction + /// Preparing itself to be committed in memory: fill some fields inside part, add it to data_parts_indexes + /// in precommitted state and to transasction void preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, bool need_rename); /// Low-level method for preparing parts for commit (in-memory). From 75cd941956b322ebda0156035ddaa063e59e588c Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Fri, 24 Jun 2022 11:23:02 -0400 Subject: [PATCH 220/525] move settings to H3 level --- .../mergetree-family/mergetree.md | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/en/engines/table-engines/mergetree-family/mergetree.md b/docs/en/engines/table-engines/mergetree-family/mergetree.md index 103272fb250..20d9a14b194 100644 --- a/docs/en/engines/table-engines/mergetree-family/mergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/mergetree.md @@ -64,9 +64,9 @@ For a description of parameters, see the [CREATE query description](../../../sql `ENGINE` — Name and parameters of the engine. `ENGINE = MergeTree()`. The `MergeTree` engine does not have parameters. -#### +#### ORDER_BY -- `ORDER BY` — The sorting key. +`ORDER BY` — The sorting key. A tuple of column names or arbitrary expressions. Example: `ORDER BY (CounterID, EventDate)`. @@ -74,24 +74,27 @@ For a description of parameters, see the [CREATE query description](../../../sql Use the `ORDER BY tuple()` syntax, if you do not need sorting. See [Selecting the Primary Key](#selecting-the-primary-key). -#### +#### PARTITION BY -- `PARTITION BY` — The [partitioning key](../../../engines/table-engines/mergetree-family/custom-partitioning-key.md). Optional. In most cases you don't need partition key, and in most other cases you don't need partition key more granular than by months. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead make client identifier or name the first column in the ORDER BY expression). +`PARTITION BY` — The [partitioning key](../../../engines/table-engines/mergetree-family/custom-partitioning-key.md). Optional. In most cases you don't need partition key, and in most other cases you don't need partition key more granular than by months. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead make client identifier or name the first column in the ORDER BY expression). For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](../../../sql-reference/data-types/date.md). The partition names here have the `"YYYYMM"` format. -#### -- `PRIMARY KEY` — The primary key if it [differs from the sorting key](#choosing-a-primary-key-that-differs-from-the-sorting-key). Optional. +#### PRIMARY KEY + +`PRIMARY KEY` — The primary key if it [differs from the sorting key](#choosing-a-primary-key-that-differs-from-the-sorting-key). Optional. By default the primary key is the same as the sorting key (which is specified by the `ORDER BY` clause). Thus in most cases it is unnecessary to specify a separate `PRIMARY KEY` clause. -#### -- `SAMPLE BY` — An expression for sampling. Optional. +#### SAMPLE BY + +`SAMPLE BY` — An expression for sampling. Optional. If a sampling expression is used, the primary key must contain it. The result of a sampling expression must be an unsigned integer. Example: `SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID))`. -#### -- `TTL` — A list of rules specifying storage duration of rows and defining logic of automatic parts movement [between disks and volumes](#table_engine-mergetree-multiple-volumes). Optional. +#### TTL + +`TTL` — A list of rules specifying storage duration of rows and defining logic of automatic parts movement [between disks and volumes](#table_engine-mergetree-multiple-volumes). Optional. Expression must have one `Date` or `DateTime` column as a result. Example: `TTL date + INTERVAL 1 DAY` From 70de1afad71ab62e1511c444bf01a62b0e63f162 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Fri, 24 Jun 2022 12:16:20 -0400 Subject: [PATCH 221/525] move settings to H3 level --- .../engines/table-engines/special/buffer.md | 41 +++++++++--- .../table-engines/special/distributed.md | 64 ++++++++++++++----- docs/en/engines/table-engines/special/join.md | 44 ++++++++++--- .../en/engines/table-engines/special/merge.md | 10 ++- 4 files changed, 119 insertions(+), 40 deletions(-) diff --git a/docs/en/engines/table-engines/special/buffer.md b/docs/en/engines/table-engines/special/buffer.md index 5f81bd76ae4..bcd7c390eb1 100644 --- a/docs/en/engines/table-engines/special/buffer.md +++ b/docs/en/engines/table-engines/special/buffer.md @@ -11,24 +11,45 @@ Buffers the data to write in RAM, periodically flushing it to another table. Dur Buffer(database, table, num_layers, min_time, max_time, min_rows, max_rows, min_bytes, max_bytes) ``` -Engine parameters: +### Engine parameters: -- `database` – Database name. You can use `currentDatabase()` or another constant expression that returns a string. -- `table` – Table to flush data to. -- `num_layers` – Parallelism layer. Physically, the table will be represented as `num_layers` of independent buffers. Recommended value: 16. -- `min_time`, `max_time`, `min_rows`, `max_rows`, `min_bytes`, and `max_bytes` – Conditions for flushing data from the buffer. +#### database -Optional engine parameters: +`database` – Database name. You can use `currentDatabase()` or another constant expression that returns a string. -- `flush_time`, `flush_rows`, `flush_bytes` – Conditions for flushing data from the buffer, that will happen only in background (omitted or zero means no `flush*` parameters). +#### table + +`table` – Table to flush data to. + +#### num_layers + +`num_layers` – Parallelism layer. Physically, the table will be represented as `num_layers` of independent buffers. Recommended value: 16. + +#### min_time, max_time, min_rows, max_rows, min_bytes, and max_bytes + +Conditions for flushing data from the buffer. + +### Optional engine parameters: + +#### flush_time, flush_rows, and flush_bytes + +Conditions for flushing data from the buffer, that will happen only in background (omitted or zero means no `flush*` parameters). Data is flushed from the buffer and written to the destination table if all the `min*` conditions or at least one `max*` condition are met. Also, if at least one `flush*` condition are met flush initiated in background, this is different from `max*`, since `flush*` allows you to configure background flushes separately to avoid adding latency for `INSERT` (into `Buffer`) queries. -- `min_time`, `max_time`, `flush_time` – Condition for the time in seconds from the moment of the first write to the buffer. -- `min_rows`, `max_rows`, `flush_rows` – Condition for the number of rows in the buffer. -- `min_bytes`, `max_bytes`, `flush_bytes` – Condition for the number of bytes in the buffer. +#### min_time, max_time, and flush_time + +Condition for the time in seconds from the moment of the first write to the buffer. + +#### min_rows, max_rows, and flush_rows + +Condition for the number of rows in the buffer. + +#### min_bytes, max_bytes, and flush_bytes + +Condition for the number of bytes in the buffer. During the write operation, data is inserted to a `num_layers` number of random buffers. Or, if the data part to insert is large enough (greater than `max_rows` or `max_bytes`), it is written directly to the destination table, omitting the buffer. diff --git a/docs/en/engines/table-engines/special/distributed.md b/docs/en/engines/table-engines/special/distributed.md index fe3348c4d78..d643d4b3c68 100644 --- a/docs/en/engines/table-engines/special/distributed.md +++ b/docs/en/engines/table-engines/special/distributed.md @@ -27,42 +27,70 @@ When the `Distributed` table is pointing to a table on the current server you ca CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] AS [db2.]name2 ENGINE = Distributed(cluster, database, table[, sharding_key[, policy_name]]) [SETTINGS name=value, ...] ``` -**Distributed Parameters** +### Distributed Parameters -- `cluster` - the cluster name in the server’s config file +#### cluster -- `database` - the name of a remote database +`cluster` - the cluster name in the server’s config file -- `table` - the name of a remote table +#### database -- `sharding_key` - (optionally) sharding key +`database` - the name of a remote database -- `policy_name` - (optionally) policy name, it will be used to store temporary files for async send +#### table + +`table` - the name of a remote table + +#### sharding_key + +`sharding_key` - (optionally) sharding key + +#### policy_name + +`policy_name` - (optionally) policy name, it will be used to store temporary files for async send **See Also** - [insert_distributed_sync](../../../operations/settings/settings.md#insert_distributed_sync) setting - [MergeTree](../../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-multiple-volumes) for the examples -**Distributed Settings** +### Distributed Settings -- `fsync_after_insert` - do the `fsync` for the file data after asynchronous insert to Distributed. Guarantees that the OS flushed the whole inserted data to a file **on the initiator node** disk. +#### fsync_after_insert -- `fsync_directories` - do the `fsync` for directories. Guarantees that the OS refreshed directory metadata after operations related to asynchronous inserts on Distributed table (after insert, after sending the data to shard, etc). +`fsync_after_insert` - do the `fsync` for the file data after asynchronous insert to Distributed. Guarantees that the OS flushed the whole inserted data to a file **on the initiator node** disk. -- `bytes_to_throw_insert` - if more than this number of compressed bytes will be pending for async INSERT, an exception will be thrown. 0 - do not throw. Default 0. +#### fsync_directories -- `bytes_to_delay_insert` - if more than this number of compressed bytes will be pending for async INSERT, the query will be delayed. 0 - do not delay. Default 0. +`fsync_directories` - do the `fsync` for directories. Guarantees that the OS refreshed directory metadata after operations related to asynchronous inserts on Distributed table (after insert, after sending the data to shard, etc). -- `max_delay_to_insert` - max delay of inserting data into Distributed table in seconds, if there are a lot of pending bytes for async send. Default 60. +#### bytes_to_throw_insert -- `monitor_batch_inserts` - same as [distributed_directory_monitor_batch_inserts](../../../operations/settings/settings.md#distributed_directory_monitor_batch_inserts) +`bytes_to_throw_insert` - if more than this number of compressed bytes will be pending for async INSERT, an exception will be thrown. 0 - do not throw. Default 0. -- `monitor_split_batch_on_failure` - same as [distributed_directory_monitor_split_batch_on_failure](../../../operations/settings/settings.md#distributed_directory_monitor_split_batch_on_failure) +#### bytes_to_delay_insert -- `monitor_sleep_time_ms` - same as [distributed_directory_monitor_sleep_time_ms](../../../operations/settings/settings.md#distributed_directory_monitor_sleep_time_ms) +`bytes_to_delay_insert` - if more than this number of compressed bytes will be pending for async INSERT, the query will be delayed. 0 - do not delay. Default 0. -- `monitor_max_sleep_time_ms` - same as [distributed_directory_monitor_max_sleep_time_ms](../../../operations/settings/settings.md#distributed_directory_monitor_max_sleep_time_ms) +#### max_delay_to_insert + +`max_delay_to_insert` - max delay of inserting data into Distributed table in seconds, if there are a lot of pending bytes for async send. Default 60. + +#### monitor_batch_inserts + +`monitor_batch_inserts` - same as [distributed_directory_monitor_batch_inserts](../../../operations/settings/settings.md#distributed_directory_monitor_batch_inserts) + +#### monitor_split_batch_on_failure + +`monitor_split_batch_on_failure` - same as [distributed_directory_monitor_split_batch_on_failure](../../../operations/settings/settings.md#distributed_directory_monitor_split_batch_on_failure) + +#### monitor_sleep_time_ms + +`monitor_sleep_time_ms` - same as [distributed_directory_monitor_sleep_time_ms](../../../operations/settings/settings.md#distributed_directory_monitor_sleep_time_ms) + +#### monitor_max_sleep_time_ms + +`monitor_max_sleep_time_ms` - same as [distributed_directory_monitor_max_sleep_time_ms](../../../operations/settings/settings.md#distributed_directory_monitor_max_sleep_time_ms) :::note **Durability settings** (`fsync_...`): @@ -213,7 +241,9 @@ To learn more about how distibuted `in` and `global in` queries are processed, r ## Virtual Columns {#virtual-columns} -- `_shard_num` — Contains the `shard_num` value from the table `system.clusters`. Type: [UInt32](../../../sql-reference/data-types/int-uint.md). +#### _shard_num + +`_shard_num` — Contains the `shard_num` value from the table `system.clusters`. Type: [UInt32](../../../sql-reference/data-types/int-uint.md). :::note Since [remote](../../../sql-reference/table-functions/remote.md) and [cluster](../../../sql-reference/table-functions/cluster.md) table functions internally create temporary Distributed table, `_shard_num` is available there too. diff --git a/docs/en/engines/table-engines/special/join.md b/docs/en/engines/table-engines/special/join.md index bb9744103f7..c95ebe19c31 100644 --- a/docs/en/engines/table-engines/special/join.md +++ b/docs/en/engines/table-engines/special/join.md @@ -23,11 +23,19 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] See the detailed description of the [CREATE TABLE](../../../sql-reference/statements/create/table.md#create-table-query) query. -**Engine Parameters** +## Engine Parameters -- `join_strictness` – [JOIN strictness](../../../sql-reference/statements/select/join.md#select-join-types). -- `join_type` – [JOIN type](../../../sql-reference/statements/select/join.md#select-join-types). -- `k1[, k2, ...]` – Key columns from the `USING` clause that the `JOIN` operation is made with. +### join_strictness + +`join_strictness` – [JOIN strictness](../../../sql-reference/statements/select/join.md#select-join-types). + +### join_type + +`join_type` – [JOIN type](../../../sql-reference/statements/select/join.md#select-join-types). + +### Key columns + +`k1[, k2, ...]` – Key columns from the `USING` clause that the `JOIN` operation is made with. Enter `join_strictness` and `join_type` parameters without quotes, for example, `Join(ANY, LEFT, col1)`. They must match the `JOIN` operation that the table will be used for. If the parameters do not match, ClickHouse does not throw an exception and may return incorrect data. @@ -56,12 +64,28 @@ Main use-cases for `Join`-engine tables are following: When creating a table, the following settings are applied: -- [join_use_nulls](../../../operations/settings/settings.md#join_use_nulls) -- [max_rows_in_join](../../../operations/settings/query-complexity.md#settings-max_rows_in_join) -- [max_bytes_in_join](../../../operations/settings/query-complexity.md#settings-max_bytes_in_join) -- [join_overflow_mode](../../../operations/settings/query-complexity.md#settings-join_overflow_mode) -- [join_any_take_last_row](../../../operations/settings/settings.md#settings-join_any_take_last_row) -- [persistent](../../../operations/settings/settings.md#persistent) +#### join_use_nulls + +[join_use_nulls](../../../operations/settings/settings.md#join_use_nulls) + +#### max_rows_in_join + +[max_rows_in_join](../../../operations/settings/query-complexity.md#settings-max_rows_in_join) + +#### max_bytes_in_join + +[max_bytes_in_join](../../../operations/settings/query-complexity.md#settings-max_bytes_in_join) + +#### join_overflow_mode + +[join_overflow_mode](../../../operations/settings/query-complexity.md#settings-join_overflow_mode) + +#### join_any_take_last_row + +[join_any_take_last_row](../../../operations/settings/settings.md#settings-join_any_take_last_row) +#### join_use_nulls + +[persistent](../../../operations/settings/settings.md#persistent) The `Join`-engine tables can’t be used in `GLOBAL JOIN` operations. diff --git a/docs/en/engines/table-engines/special/merge.md b/docs/en/engines/table-engines/special/merge.md index 0f97acda8b5..ab15ad8dc76 100644 --- a/docs/en/engines/table-engines/special/merge.md +++ b/docs/en/engines/table-engines/special/merge.md @@ -15,14 +15,18 @@ Reading is automatically parallelized. Writing to a table is not supported. When CREATE TABLE ... Engine=Merge(db_name, tables_regexp) ``` -**Engine Parameters** +## Engine Parameters -- `db_name` — Possible values: +### db_name + +`db_name` — Possible values: - database name, - constant expression that returns a string with a database name, for example, `currentDatabase()`, - `REGEXP(expression)`, where `expression` is a regular expression to match the DB names. -- `tables_regexp` — A regular expression to match the table names in the specified DB or DBs. +### tables_regexp + +`tables_regexp` — A regular expression to match the table names in the specified DB or DBs. Regular expressions — [re2](https://github.com/google/re2) (supports a subset of PCRE), case-sensitive. See the notes about escaping symbols in regular expressions in the "match" section. From 2bc4dc4a1d04db6055b85422e2c70bfb142f8f3a Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 18:38:43 +0200 Subject: [PATCH 222/525] Fix accident change --- src/Storages/StorageReplicatedMergeTree.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index af0b829bb89..6895142b2a4 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -6837,7 +6837,7 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta auto dest_data_parts_lock = dest_table_storage->lockParts(); for (auto & part : dst_parts) - renameTempPartAndReplaceUnlocked(part, transaction, src_data_parts_lock); + dest_table_storage->renameTempPartAndReplaceUnlocked(part, transaction, dest_data_parts_lock); for (size_t i = 0; i < dst_parts.size(); ++i) dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); From 94dd80e90069bca17066abadb3bf60d3ff496e59 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Fri, 24 Jun 2022 19:10:33 +0200 Subject: [PATCH 223/525] fix tests --- src/Interpreters/loadMetadata.cpp | 20 ++++++++++++------- .../test_convert_ordinary.py | 6 +++++- .../test_insert_into_distributed/test.py | 10 +++++----- .../test.py | 6 ++++-- .../configs/users.d/not_optimize_count.xml | 1 + .../test_polymorphic_parts/test.py | 3 ++- .../test_replicated_database/test.py | 11 ++++++---- .../clickhouse_path/metadata/default.sql | 1 + 8 files changed, 38 insertions(+), 20 deletions(-) create mode 100644 tests/integration/test_server_initialization/clickhouse_path/metadata/default.sql diff --git a/src/Interpreters/loadMetadata.cpp b/src/Interpreters/loadMetadata.cpp index c76e259822f..5c1a09ced14 100644 --- a/src/Interpreters/loadMetadata.cpp +++ b/src/Interpreters/loadMetadata.cpp @@ -94,6 +94,15 @@ static void loadDatabase( } } +static void checkUnsupportedVersion(ContextMutablePtr context, const String & database_name) +{ + /// Produce better exception message + String metadata_path = context->getPath() + "metadata/" + database_name; + if (fs::exists(fs::path(metadata_path))) + throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Data directory for {} database exists, but metadata file does not. " + "Probably you are trying to upgrade from version older than 20.7. " + "If so, you should upgrade through intermediate version.", database_name); +} void loadMetadata(ContextMutablePtr context, const String & default_database_name) { @@ -151,7 +160,10 @@ void loadMetadata(ContextMutablePtr context, const String & default_database_nam bool create_default_db_if_not_exists = !default_database_name.empty(); bool metadata_dir_for_default_db_already_exists = databases.contains(default_database_name); if (create_default_db_if_not_exists && !metadata_dir_for_default_db_already_exists) + { + checkUnsupportedVersion(context, default_database_name); databases.emplace(default_database_name, std::filesystem::path(path) / escapeForFileName(default_database_name)); + } TablesLoader::Databases loaded_databases; for (const auto & [name, db_path] : databases) @@ -186,15 +198,9 @@ static void loadSystemDatabaseImpl(ContextMutablePtr context, const String & dat /// 'has_force_restore_data_flag' is true, to not fail on loading query_log table, if it is corrupted. loadDatabase(context, database_name, path, true); } - else if (fs::exists(fs::path(path))) - { - chassert(database_name == "system"); - throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Data directory for {} database exists, but metadata file does not. " - "Probably you are trying to upgrade from version older than 20.7. " - "If so, you should upgrade through intermediate version.", database_name); - } else { + checkUnsupportedVersion(context, database_name); /// Initialize system database manually String database_create_query = "CREATE DATABASE "; database_create_query += database_name; diff --git a/tests/integration/test_backward_compatibility/test_convert_ordinary.py b/tests/integration/test_backward_compatibility/test_convert_ordinary.py index e3e4a5be9f0..b7eb67305ce 100644 --- a/tests/integration/test_backward_compatibility/test_convert_ordinary.py +++ b/tests/integration/test_backward_compatibility/test_convert_ordinary.py @@ -64,6 +64,10 @@ def test_convert_system_db_to_atomic(start_cluster): "SELECT name FROM system.databases ORDER BY name" ) - assert "0\n" == node.count_in_log("") + errors_count = node.count_in_log("") + assert "0\n" == errors_count or ( + "1\n" == errors_count + and "1\n" == node.count_in_log("Can't receive Netlink response") + ) assert "0\n" == node.count_in_log(" Database") assert "0\n" == node.count_in_log("always include the lines below") diff --git a/tests/integration/test_insert_into_distributed/test.py b/tests/integration/test_insert_into_distributed/test.py index aff31ec365c..a52809f817c 100644 --- a/tests/integration/test_insert_into_distributed/test.py +++ b/tests/integration/test_insert_into_distributed/test.py @@ -228,11 +228,11 @@ def test_inserts_batching(started_cluster): # 4. Full batch of inserts after ALTER (that have different block structure). # 5. What was left to insert with the column structure before ALTER. expected = """\ -20000101__1_1_0\t[1] -20000101__2_2_0\t[2,3,4] -20000101__3_3_0\t[5,6,7] -20000101__4_4_0\t[10,11,12] -20000101__5_5_0\t[8,9] +200001_1_1_0\t[1] +200001_2_2_0\t[2,3,4] +200001_3_3_0\t[5,6,7] +200001_4_4_0\t[10,11,12] +200001_5_5_0\t[8,9] """ assert TSV(result) == TSV(expected) diff --git a/tests/integration/test_insert_into_distributed_through_materialized_view/test.py b/tests/integration/test_insert_into_distributed_through_materialized_view/test.py index 7c2ce9f05f2..a5f92002450 100644 --- a/tests/integration/test_insert_into_distributed_through_materialized_view/test.py +++ b/tests/integration/test_insert_into_distributed_through_materialized_view/test.py @@ -44,7 +44,8 @@ CREATE TABLE distributed (x UInt32) ENGINE = Distributed('test_cluster', 'defaul ) remote.query( - "CREATE TABLE local2 (d Date, x UInt32, s String) ENGINE = MergeTree(d, x, 8192)" + "CREATE TABLE local2 (d Date, x UInt32, s String) ENGINE = MergeTree(d, x, 8192)", + settings={"allow_deprecated_syntax_for_merge_tree": 1}, ) instance_test_inserts_batching.query( """ @@ -65,7 +66,8 @@ CREATE TABLE distributed (d Date, x UInt32) ENGINE = Distributed('test_cluster', "CREATE MATERIALIZED VIEW local_view to distributed_on_local AS SELECT d,x FROM local_source" ) instance_test_inserts_local_cluster.query( - "CREATE TABLE local (d Date, x UInt32) ENGINE = MergeTree(d, x, 8192)" + "CREATE TABLE local (d Date, x UInt32) ENGINE = MergeTree(d, x, 8192)", + settings={"allow_deprecated_syntax_for_merge_tree": 1}, ) instance_test_inserts_local_cluster.query( """ diff --git a/tests/integration/test_polymorphic_parts/configs/users.d/not_optimize_count.xml b/tests/integration/test_polymorphic_parts/configs/users.d/not_optimize_count.xml index 7f8036c4f87..c654cf0791a 100644 --- a/tests/integration/test_polymorphic_parts/configs/users.d/not_optimize_count.xml +++ b/tests/integration/test_polymorphic_parts/configs/users.d/not_optimize_count.xml @@ -2,6 +2,7 @@ 0 + 1 diff --git a/tests/integration/test_polymorphic_parts/test.py b/tests/integration/test_polymorphic_parts/test.py index 9005d21a4a1..32b5e531fa8 100644 --- a/tests/integration/test_polymorphic_parts/test.py +++ b/tests/integration/test_polymorphic_parts/test.py @@ -66,7 +66,8 @@ def create_tables_old_format(name, nodes, shard): ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/{shard}/{name}', '{repl}', date, id, 64) """.format( name=name, shard=shard, repl=i - ) + ), + settings={"allow_deprecated_syntax_for_merge_tree": 1}, ) diff --git a/tests/integration/test_replicated_database/test.py b/tests/integration/test_replicated_database/test.py index 99fb5bc1e89..11ca0d2f962 100644 --- a/tests/integration/test_replicated_database/test.py +++ b/tests/integration/test_replicated_database/test.py @@ -96,13 +96,16 @@ def test_create_replicated_table(started_cluster): "Explicit zookeeper_path and replica_name are specified" in main_node.query_and_get_error( "CREATE TABLE testdb.replicated_table (d Date, k UInt64, i32 Int32) " - "ENGINE=ReplicatedMergeTree('/test/tmp', 'r', d, k, 8192);" + "ENGINE=ReplicatedMergeTree('/test/tmp', 'r') ORDER BY k PARTITION BY toYYYYMM(d);" ) ) - assert "Old syntax is not allowed" in main_node.query_and_get_error( - "CREATE TABLE testdb.replicated_table (d Date, k UInt64, i32 Int32) " - "ENGINE=ReplicatedMergeTree('/test/tmp/{shard}', '{replica}', d, k, 8192);" + assert ( + "This syntax for *MergeTree engine is deprecated" + in main_node.query_and_get_error( + "CREATE TABLE testdb.replicated_table (d Date, k UInt64, i32 Int32) " + "ENGINE=ReplicatedMergeTree('/test/tmp/{shard}', '{replica}', d, k, 8192);" + ) ) main_node.query( diff --git a/tests/integration/test_server_initialization/clickhouse_path/metadata/default.sql b/tests/integration/test_server_initialization/clickhouse_path/metadata/default.sql new file mode 100644 index 00000000000..9fae1d57726 --- /dev/null +++ b/tests/integration/test_server_initialization/clickhouse_path/metadata/default.sql @@ -0,0 +1 @@ +ATTACH DATABASE default ENGINE=Ordinary \ No newline at end of file From d52dc3201070a9dd2a57858d6c3772e6652cc8fe Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Fri, 24 Jun 2022 19:31:41 +0200 Subject: [PATCH 224/525] Update fetchPostgreSQLTableStructure.cpp --- src/Databases/PostgreSQL/fetchPostgreSQLTableStructure.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Databases/PostgreSQL/fetchPostgreSQLTableStructure.cpp b/src/Databases/PostgreSQL/fetchPostgreSQLTableStructure.cpp index 08a7e78d0e9..10cde43e9e1 100644 --- a/src/Databases/PostgreSQL/fetchPostgreSQLTableStructure.cpp +++ b/src/Databases/PostgreSQL/fetchPostgreSQLTableStructure.cpp @@ -300,10 +300,11 @@ PostgreSQLTableStructure fetchPostgreSQLTableStructure( "and a.attnum = ANY(ix.indkey) " "and t.relkind in ('r', 'p') " /// simple tables "and t.relname = {} " /// Connection is already done to a needed database, only table name is needed. - "and t.relnamespace = {} " + "{}" "and ix.indisreplident = 't' " /// index is is replica identity index - "ORDER BY a.attname", /// column names - quoteString(postgres_table), quoteString(postgres_schema.empty() ? "public" : postgres_schema)); + "ORDER BY a.attname", /// column name + (postgres_schema.empty() ? "" : "and t.relnamespace = " + quoteString(postgres_schema)) + " ", + quoteString(postgres_table)); table.replica_identity_columns = readNamesAndTypesList(tx, postgres_table_with_schema, query, use_nulls, true); } From a003d012954e3c153d2bfbc0f8528135de9e5ea3 Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Fri, 24 Jun 2022 19:35:23 +0200 Subject: [PATCH 225/525] Update test.py --- tests/integration/test_storage_rabbitmq/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_storage_rabbitmq/test.py b/tests/integration/test_storage_rabbitmq/test.py index 3c5cde62883..a3e48f2a620 100644 --- a/tests/integration/test_storage_rabbitmq/test.py +++ b/tests/integration/test_storage_rabbitmq/test.py @@ -2754,14 +2754,14 @@ def test_rabbitmq_msgpack(rabbitmq_cluster): create table rabbit_in (val String) engine=RabbitMQ - settings rabbitmq_host_port = 'rabbit1:5672', + settings rabbitmq_host_port = 'rabbitmq1:5672', rabbitmq_exchange_name = 'xhep', rabbitmq_format = 'MsgPack', rabbitmq_num_consumers = 1; create table rabbit_out (val String) engine=RabbitMQ - settings rabbitmq_host_port = 'rabbit1:5672', + settings rabbitmq_host_port = 'rabbitmq1:5672', rabbitmq_exchange_name = 'xhep', rabbitmq_format = 'MsgPack', rabbitmq_num_consumers = 1; From a88ae9ca99dae0490c5076c07b71e1b447ad4734 Mon Sep 17 00:00:00 2001 From: kssenii Date: Fri, 24 Jun 2022 19:48:38 +0200 Subject: [PATCH 226/525] Review fix --- src/Databases/DatabaseFactory.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Databases/DatabaseFactory.cpp b/src/Databases/DatabaseFactory.cpp index 82a7dff7125..5c7c1dedf9b 100644 --- a/src/Databases/DatabaseFactory.cpp +++ b/src/Databases/DatabaseFactory.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "config_core.h" @@ -334,18 +335,25 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String configuration.username = safeGetLiteralValue(engine_args[2], engine_name); configuration.password = safeGetLiteralValue(engine_args[3], engine_name); + bool is_deprecated_syntax = false; if (engine_args.size() >= 5) { auto arg_value = engine_args[4]->as()->value; if (arg_value.getType() == Field::Types::Which::String) + { configuration.schema = safeGetLiteralValue(engine_args[4], engine_name); + } else + { use_table_cache = safeGetLiteralValue(engine_args[4], engine_name); + LOG_WARNING(&Poco::Logger::get("DatabaseFactory"), "A deprecated syntax of PostgreSQL database engine is used"); + is_deprecated_syntax = true; + } } - } - if (engine_args.size() >= 6) - use_table_cache = safeGetLiteralValue(engine_args[5], engine_name); + if (!is_deprecated_syntax && engine_args.size() >= 6) + use_table_cache = safeGetLiteralValue(engine_args[5], engine_name); + } auto pool = std::make_shared(configuration, context->getSettingsRef().postgresql_connection_pool_size, From 8d3772948a5ec5977a9417e8019d94792c504fa2 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Fri, 24 Jun 2022 15:31:42 -0400 Subject: [PATCH 227/525] move title to frontmatter --- docs/en/operations/access-rights.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/en/operations/access-rights.md b/docs/en/operations/access-rights.md index 34d79aa99d9..a431f10fbad 100644 --- a/docs/en/operations/access-rights.md +++ b/docs/en/operations/access-rights.md @@ -1,10 +1,9 @@ --- sidebar_position: 48 sidebar_label: Access Control and Account Management +title: Access Control and Account Management --- -# Access Control and Account Management - ClickHouse supports access control management based on [RBAC](https://en.wikipedia.org/wiki/Role-based_access_control) approach. ClickHouse access entities: From 8ccc47c20229971ab02ba50e2b95e261db72e272 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 24 Jun 2022 23:54:10 +0200 Subject: [PATCH 228/525] Revert some changes --- src/Storages/MergeTree/MergeTreeData.cpp | 20 +++++++------------ src/Storages/MergeTree/MergeTreeData.h | 9 +++------ .../MergeTree/ReplicatedMergeTreeSink.cpp | 4 ++-- src/Storages/StorageReplicatedMergeTree.cpp | 2 +- 4 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 54a881eda12..c24636a56f8 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -2790,8 +2790,7 @@ bool MergeTreeData::renameTempPartAndAdd( SimpleIncrement * increment, Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log, - std::string_view deduplication_token, - DataPartStorageBuilderPtr part_builder) + std::string_view deduplication_token) { if (out_transaction && &out_transaction->data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", @@ -2800,7 +2799,7 @@ bool MergeTreeData::renameTempPartAndAdd( DataPartsVector covered_parts; { auto lock = lockParts(); - if (!renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token, part_builder)) + if (!renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, deduplication_token)) return false; } if (!covered_parts.empty()) @@ -2819,19 +2818,12 @@ bool MergeTreeData::renameTempPartAndReplace( std::unique_lock & lock, DataPartsVector * out_covered_parts, MergeTreeDeduplicationLog * deduplication_log, - std::string_view deduplication_token, - DataPartStorageBuilderPtr part_builder) + std::string_view deduplication_token) { - - LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part_name); - if (out_transaction && &out_transaction->data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", ErrorCodes::LOGICAL_ERROR); - if (part_builder) - part_builder->commit(); - if (txn) transactions_enabled.store(true); @@ -2861,6 +2853,8 @@ bool MergeTreeData::renameTempPartAndReplace( else /// Parts from ReplicatedMergeTree already have names part_name = part->name; + LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part_name); + if (auto it_duplicate = data_parts_by_info.find(part_info); it_duplicate != data_parts_by_info.end()) { String message = "Part " + (*it_duplicate)->getNameWithState() + " already exists"; @@ -2966,7 +2960,7 @@ bool MergeTreeData::renameTempPartAndReplace( MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, MergeTreeTransaction * txn, SimpleIncrement * increment, - Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log, DataPartStorageBuilderPtr part_builder) + Transaction * out_transaction, MergeTreeDeduplicationLog * deduplication_log) { if (out_transaction && &out_transaction->data != this) throw Exception("MergeTreeData::Transaction for one table cannot be used with another. It is a bug.", @@ -2975,7 +2969,7 @@ MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( DataPartsVector covered_parts; { auto lock = lockParts(); - renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log, "", part_builder); + renameTempPartAndReplace(part, txn, increment, out_transaction, lock, &covered_parts, deduplication_log); } return covered_parts; } diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 4074769926e..00a56de9142 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -560,16 +560,14 @@ public: SimpleIncrement * increment = nullptr, Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, - std::string_view deduplication_token = std::string_view(), - DataPartStorageBuilderPtr part_builder = nullptr); + std::string_view deduplication_token = std::string_view()); /// The same as renameTempPartAndAdd but the block range of the part can contain existing parts. /// Returns all parts covered by the added part (in ascending order). /// If out_transaction == nullptr, marks covered parts as Outdated. DataPartsVector renameTempPartAndReplace( MutableDataPartPtr & part, MergeTreeTransaction * txn, SimpleIncrement * increment = nullptr, - Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, - DataPartStorageBuilderPtr part_builder = nullptr); + Transaction * out_transaction = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr); /// Low-level version of previous one, doesn't lock mutex /// FIXME Transactions: remove add_to_txn flag, maybe merge MergeTreeTransaction and Transaction @@ -581,8 +579,7 @@ public: DataPartsLock & lock, DataPartsVector * out_covered_parts = nullptr, MergeTreeDeduplicationLog * deduplication_log = nullptr, - std::string_view deduplication_token = std::string_view(), - DataPartStorageBuilderPtr part_builder = nullptr); + std::string_view deduplication_token = std::string_view()); /// Remove parts from working set immediately (without wait for background /// process). Transfer part state to temporary. Have very limited usage only diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index 1b2f29baabf..a43f1c4e1e7 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -304,7 +304,7 @@ void ReplicatedMergeTreeSink::commitPart( zkutil::ZooKeeperPtr & zookeeper, MergeTreeData::MutableDataPartPtr & part, const String & block_id, - DataPartStorageBuilderPtr part_builder) + DataPartStorageBuilderPtr /*part_builder*/) { metadata_snapshot->check(part->getColumns()); assertSessionIsNotExpired(zookeeper); @@ -479,7 +479,7 @@ void ReplicatedMergeTreeSink::commitPart( try { - renamed = storage.renameTempPartAndAdd(part, NO_TRANSACTION_RAW, nullptr, &transaction, nullptr, "", part_builder); + renamed = storage.renameTempPartAndAdd(part, NO_TRANSACTION_RAW, nullptr, &transaction, nullptr, ""); } catch (const Exception & e) { diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 77ca206eb23..226adef6afe 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -8020,7 +8020,7 @@ bool StorageReplicatedMergeTree::createEmptyPartInsteadOfLost(zkutil::ZooKeeperP try { MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - auto replaced_parts = renameTempPartAndReplace(new_data_part, NO_TRANSACTION_RAW, nullptr, &transaction, nullptr, data_part_storage_builder); + auto replaced_parts = renameTempPartAndReplace(new_data_part, NO_TRANSACTION_RAW, nullptr, &transaction, nullptr); if (!replaced_parts.empty()) { From d5c6f5c18f315d7e46a42e2a18cf3305ebb0ed20 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Fri, 24 Jun 2022 22:49:27 +0000 Subject: [PATCH 229/525] Fixes + flaky test with explain pipeline + consider sort direction from read order info in sort description (ReadFromMergeTree step) --- .../QueryPlan/ReadFromMergeTree.cpp | 37 ++-- ...7_distinct_in_order_optimization.reference | 185 +++++------------- .../02317_distinct_in_order_optimization.sql | 84 +++----- ...ct_in_order_optimization_explain.reference | 19 ++ ..._distinct_in_order_optimization_explain.sh | 42 ++++ 5 files changed, 166 insertions(+), 201 deletions(-) create mode 100644 tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference create mode 100755 tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh diff --git a/src/Processors/QueryPlan/ReadFromMergeTree.cpp b/src/Processors/QueryPlan/ReadFromMergeTree.cpp index 40a02d5ac4e..56c92f3b966 100644 --- a/src/Processors/QueryPlan/ReadFromMergeTree.cpp +++ b/src/Processors/QueryPlan/ReadFromMergeTree.cpp @@ -35,6 +35,7 @@ #include #include #include +#include "Storages/SelectQueryInfo.h" namespace ProfileEvents { @@ -71,6 +72,18 @@ static const PrewhereInfoPtr & getPrewhereInfo(const SelectQueryInfo & query_inf : query_info.prewhere_info; } +static int getSortDirection(const SelectQueryInfo & query_info) +{ + const InputOrderInfoPtr & order_info = query_info.input_order_info + ? query_info.input_order_info + : (query_info.projection ? query_info.projection->input_order_info : nullptr); + + if (!order_info) + return 1; + + return order_info->direction; +} + ReadFromMergeTree::ReadFromMergeTree( MergeTreeData::DataPartsVector parts_, Names real_column_names_, @@ -125,18 +138,20 @@ ReadFromMergeTree::ReadFromMergeTree( /// Add explicit description. setStepDescription(data.getStorageID().getFullNameNotQuoted()); - /// build sort description for output stream - SortDescription sort_description; - const Names sorting_key_columns = storage_snapshot->getMetadataForQuery()->getSortingKeyColumns(); - Block const & header = output_stream->header; - for (const auto & column_name : sorting_key_columns) - { - if (std::find_if(header.begin(), header.end(), [&](ColumnWithTypeAndName const & col) { return col.name == column_name; }) - == header.end()) - break; - sort_description.emplace_back(column_name, 1); + { /// build sort description for output stream + SortDescription sort_description; + const Names & sorting_key_columns = storage_snapshot->getMetadataForQuery()->getSortingKeyColumns(); + Block const & header = output_stream->header; + const int sort_direction = getSortDirection(query_info); + for (const auto & column_name : sorting_key_columns) + { + if (std::find_if(header.begin(), header.end(), [&](ColumnWithTypeAndName const & col) { return col.name == column_name; }) + == header.end()) + break; + sort_description.emplace_back(column_name, sort_direction); + } + output_stream->sort_description = std::move(sort_description); } - output_stream->sort_description = std::move(sort_description); } Pipe ReadFromMergeTree::readFromPool( diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference index 0c1236bbfcd..b53b561137e 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.reference @@ -1,137 +1,9 @@ --- enable optimize_distinct_in_order --- distinct pipeline on empty table -> no optimization, table is empty -(Expression) -ExpressionTransform - (Distinct) - DistinctTransform - (Distinct) - DistinctTransform - (Expression) - ExpressionTransform - (ReadFromPreparedSource) - NullSource 0 → 1 --- insert into table --- disable optimize_distinct_in_order --- distinct all primary key columns -> no optimization -(Expression) -ExpressionTransform - (Distinct) - DistinctTransform - (Distinct) - DistinctTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- enable optimize_distinct_in_order --- distinct with all primary key columns -> pre-distinct optimization only -(Expression) -ExpressionTransform - (Distinct) - DistinctTransform - (Distinct) - DistinctSortedChunkTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- distinct with primary key prefix -> pre-distinct optimization only -(Expression) -ExpressionTransform - (Distinct) - DistinctTransform - (Distinct) - DistinctSortedChunkTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization -(Expression) -ExpressionTransform - (Distinct) - DistinctSortedTransform - (Sorting) - MergeSortingTransform - LimitsCheckingTransform - PartialSortingTransform - (Distinct) - DistinctSortedChunkTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only -(Expression) -ExpressionTransform - (Distinct) - DistinctTransform - (Sorting) - MergeSortingTransform - LimitsCheckingTransform - PartialSortingTransform - (Distinct) - DistinctSortedChunkTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- distinct with non-primary key prefix -> no optimization -(Expression) -ExpressionTransform - (Distinct) - DistinctTransform - (Distinct) - DistinctTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only -(Expression) -ExpressionTransform - (Distinct) - DistinctSortedTransform - (Sorting) - MergeSortingTransform - LimitsCheckingTransform - PartialSortingTransform - (Distinct) - DistinctTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimization -(Expression) -ExpressionTransform - (Distinct) - DistinctTransform - (Sorting) - (Distinct) - DistinctTransform - (Expression) - ExpressionTransform - (ReadFromMergeTree) - MergeTreeInOrder 0 → 1 --- the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one --- single-threaded distinct +-- enable distinct in order optimization +-- create table with only primary key columns +-- the same values in every chunk, pre-distinct should skip entire chunks with the same key as previous one 0 --- multi-threaded distinct -0 --- skip part of chunk since it contains values from previous one --- single-threaded distinct -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 --- multi-threaded distinct +-- create table with only primary key columns +-- pre-distinct should skip part of chunk since it contains values from previous one 0 1 2 @@ -145,13 +17,23 @@ ExpressionTransform -- create table with not only primary key columns -- distinct with primary key prefix only 0 --- distinct with full key +-- distinct with primary key prefix only, order by sorted column +0 +-- distinct with primary key prefix only, order by sorted column desc +0 +-- distinct with full key, order by sorted column 0 0 0 1 0 2 0 3 0 4 --- distinct with key prefix and non-sorted column +-- distinct with full key, order by sorted column desc +0 4 +0 3 +0 2 +0 1 +0 0 +-- distinct with key prefix and non-sorted column, order by non-sorted 0 0 0 1 0 2 @@ -162,3 +44,36 @@ ExpressionTransform 0 7 0 8 0 9 +-- distinct with key prefix and non-sorted column, order by non-sorted desc +0 9 +0 8 +0 7 +0 6 +0 5 +0 4 +0 3 +0 2 +0 1 +0 0 +-- distinct with non-key prefix and non-sorted column, order by non-sorted +0 0 +1 1 +2 2 +3 3 +4 4 +0 5 +1 6 +2 7 +3 8 +4 9 +-- distinct with non-key prefix and non-sorted column, order by non-sorted desc +4 9 +3 8 +2 7 +1 6 +0 5 +4 4 +3 3 +2 2 +1 1 +0 0 diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql index 2f696a5a69e..afe53a95b26 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization.sql @@ -1,72 +1,46 @@ -drop table if exists distinct_in_order sync; -create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by (a, b, c); - -select '-- enable optimize_distinct_in_order'; +select '-- enable distinct in order optimization'; set optimize_distinct_in_order=1; -select '-- distinct pipeline on empty table -> no optimization, table is empty'; -explain pipeline select distinct * from distinct_in_order settings max_threads=1; - -select '-- insert into table'; -insert into distinct_in_order select number % number, number % 5, number % 10 from numbers(1,10); - -select '-- disable optimize_distinct_in_order'; -set optimize_distinct_in_order=0; -select '-- distinct all primary key columns -> no optimization'; -explain pipeline select distinct * from distinct_in_order settings max_threads=1; - -select '-- enable optimize_distinct_in_order'; -set optimize_distinct_in_order=1; - -select '-- distinct with all primary key columns -> pre-distinct optimization only'; -explain pipeline select distinct * from distinct_in_order settings max_threads=1; - -select '-- distinct with primary key prefix -> pre-distinct optimization only'; -explain pipeline select distinct a, c from distinct_in_order settings max_threads=1; - -select '-- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization'; -explain pipeline select distinct a, c from distinct_in_order order by c settings max_threads=1; - -select '-- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only'; -explain pipeline select distinct a, c from distinct_in_order order by b settings max_threads=1; - -select '-- distinct with non-primary key prefix -> no optimization'; -explain pipeline select distinct b, c from distinct_in_order settings max_threads=1; - -select '-- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only'; -explain pipeline select distinct b, c from distinct_in_order order by b settings max_threads=1; - -select '-- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimization'; -set optimize_read_in_order = 1; -- to avoid flaky test, in this query (Sorting) step depends on the setting -explain pipeline select distinct b, c from distinct_in_order order by a settings max_threads=1; - -select '-- the same values in every chunk, distinct in order should skip entire chunks with the same key as previous one'; +select '-- create table with only primary key columns'; drop table if exists distinct_in_order sync; create table distinct_in_order (a int) engine=MergeTree() order by a settings index_granularity=10; -insert into distinct_in_order (a) select * from zeros(100); -select '-- single-threaded distinct'; +select '-- the same values in every chunk, pre-distinct should skip entire chunks with the same key as previous one'; +insert into distinct_in_order (a) select * from zeros(10); +insert into distinct_in_order (a) select * from zeros(10); -- this entire chunk should be skipped in pre-distinct select distinct * from distinct_in_order settings max_block_size=10, max_threads=1; -select '-- multi-threaded distinct'; -select distinct * from distinct_in_order settings max_block_size=10; -select '-- skip part of chunk since it contains values from previous one'; +select '-- create table with only primary key columns'; +select '-- pre-distinct should skip part of chunk since it contains values from previous one'; drop table if exists distinct_in_order sync; create table distinct_in_order (a int) engine=MergeTree() order by a settings index_granularity=10; insert into distinct_in_order (a) select * from zeros(10); -insert into distinct_in_order select * from numbers(10); -select '-- single-threaded distinct'; +insert into distinct_in_order select * from numbers(10); -- first row (0) from this chunk should be skipped in pre-distinct select distinct a from distinct_in_order settings max_block_size=10, max_threads=1; -select '-- multi-threaded distinct'; -select distinct a from distinct_in_order settings max_block_size=10; select '-- create table with not only primary key columns'; drop table if exists distinct_in_order sync; create table distinct_in_order (a int, b int, c int) engine=MergeTree() order by (a, b); insert into distinct_in_order select number % number, number % 5, number % 10 from numbers(1,1000000); + select '-- distinct with primary key prefix only'; select distinct a from distinct_in_order; -select '-- distinct with full key'; -select distinct a,b from distinct_in_order order by b; -select '-- distinct with key prefix and non-sorted column'; -select distinct a,c from distinct_in_order order by c; +select '-- distinct with primary key prefix only, order by sorted column'; +select distinct a from distinct_in_order order by a; +select '-- distinct with primary key prefix only, order by sorted column desc'; +select distinct a from distinct_in_order order by a desc; --- drop table if exists distinct_in_order sync; +select '-- distinct with full key, order by sorted column'; +select distinct a,b from distinct_in_order order by b; +select '-- distinct with full key, order by sorted column desc'; +select distinct a,b from distinct_in_order order by b desc; + +select '-- distinct with key prefix and non-sorted column, order by non-sorted'; +select distinct a,c from distinct_in_order order by c; +select '-- distinct with key prefix and non-sorted column, order by non-sorted desc'; +select distinct a,c from distinct_in_order order by c desc; + +select '-- distinct with non-key prefix and non-sorted column, order by non-sorted'; +select distinct b,c from distinct_in_order order by c; +select '-- distinct with non-key prefix and non-sorted column, order by non-sorted desc'; +select distinct b,c from distinct_in_order order by c desc; + +drop table if exists distinct_in_order sync; diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference new file mode 100644 index 00000000000..2dac69edc41 --- /dev/null +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference @@ -0,0 +1,19 @@ +-- disable optimize_distinct_in_order +-- distinct all primary key columns -> no optimizations +No optimizations +-- enable optimize_distinct_in_order +-- distinct with all primary key columns -> pre-distinct optimization only +DistinctSortedChunkTransform +-- distinct with primary key prefix -> pre-distinct optimization only +DistinctSortedChunkTransform +-- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization +DistinctSortedTransform +DistinctSortedChunkTransform +-- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only +DistinctSortedChunkTransform +-- distinct with non-primary key prefix -> no optimizations +No optimizations +-- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only +DistinctSortedTransform +-- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimizations +No optimizations diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh new file mode 100755 index 00000000000..560f92ef423 --- /dev/null +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +. "$CURDIR"/../shell_config.sh + +[ ! -z "$CLICKHOUSE_CLIENT_REDEFINED" ] && CLICKHOUSE_CLIENT=$CLICKHOUSE_CLIENT_REDEFINED + +DISABLE_OPTIMIZATION="set optimize_distinct_in_order=0" +ENABLE_OPTIMIZATION="set optimize_distinct_in_order=1" +GREP_OPTIMIZATIONS="grep 'DistinctSortedChunkTransform\|DistinctSortedTransform'" +TRIM_LEADING_SPACES="sed -e 's/^[ \t]*//'" +FIND_OPTIMIZATIONS="$GREP_OPTIMIZATIONS | $TRIM_LEADING_SPACES" + +$CLICKHOUSE_CLIENT -q "drop table if exists distinct_in_order_explain sync" +$CLICKHOUSE_CLIENT -q "create table distinct_in_order_explain (a int, b int, c int) engine=MergeTree() order by (a, b, c)" +$CLICKHOUSE_CLIENT -q "insert into distinct_in_order_explain select number % number, number % 5, number % 10 from numbers(1,10)" + +$CLICKHOUSE_CLIENT -q "select '-- disable optimize_distinct_in_order'" +$CLICKHOUSE_CLIENT -q "select '-- distinct all primary key columns -> no optimizations'" +$CLICKHOUSE_CLIENT -nq "$DISABLE_OPTIMIZATION;explain pipeline select distinct * from distinct_in_order_explain" | eval $GREP_OPTIMIZATIONS || echo "No optimizations" + +$CLICKHOUSE_CLIENT -q "select '-- enable optimize_distinct_in_order'" +$CLICKHOUSE_CLIENT -q "select '-- distinct with all primary key columns -> pre-distinct optimization only'" +$CLICKHOUSE_CLIENT -nq "$ENABLE_OPTIMIZATION;explain pipeline select distinct * from distinct_in_order_explain" | eval $FIND_OPTIMIZATIONS + +$CLICKHOUSE_CLIENT -q "select '-- distinct with primary key prefix -> pre-distinct optimization only'" +$CLICKHOUSE_CLIENT -nq "$ENABLE_OPTIMIZATION;explain pipeline select distinct a, c from distinct_in_order_explain" | eval $FIND_OPTIMIZATIONS + +$CLICKHOUSE_CLIENT -q "select '-- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization'" +$CLICKHOUSE_CLIENT -nq "$ENABLE_OPTIMIZATION;explain pipeline select distinct a, c from distinct_in_order_explain order by c" | eval $FIND_OPTIMIZATIONS + +$CLICKHOUSE_CLIENT -q "select '-- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only'" +$CLICKHOUSE_CLIENT -nq "$ENABLE_OPTIMIZATION;explain pipeline select distinct a, c from distinct_in_order_explain order by b" | eval $FIND_OPTIMIZATIONS + +$CLICKHOUSE_CLIENT -q "select '-- distinct with non-primary key prefix -> no optimizations'" +$CLICKHOUSE_CLIENT -nq "$ENABLE_OPTIMIZATION;explain pipeline select distinct b, c from distinct_in_order_explain" | eval $GREP_OPTIMIZATIONS || echo "No optimizations" + +$CLICKHOUSE_CLIENT -q "select '-- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only'" +$CLICKHOUSE_CLIENT -nq "$ENABLE_OPTIMIZATION;explain pipeline select distinct b, c from distinct_in_order_explain order by b" | eval $FIND_OPTIMIZATIONS + +$CLICKHOUSE_CLIENT -q "select '-- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimizations'" +$CLICKHOUSE_CLIENT -nq "$ENABLE_OPTIMIZATION;explain pipeline select distinct b, c from distinct_in_order_explain order by a" | eval $GREP_OPTIMIZATIONS || echo "No optimizations" From 04ce070da0bda6b4d1f706e6851ad597b5f5d503 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Fri, 24 Jun 2022 23:10:48 +0000 Subject: [PATCH 230/525] Remove unnecessary include --- src/Processors/QueryPlan/ReadFromMergeTree.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Processors/QueryPlan/ReadFromMergeTree.cpp b/src/Processors/QueryPlan/ReadFromMergeTree.cpp index 56c92f3b966..4f0e929d587 100644 --- a/src/Processors/QueryPlan/ReadFromMergeTree.cpp +++ b/src/Processors/QueryPlan/ReadFromMergeTree.cpp @@ -35,7 +35,6 @@ #include #include #include -#include "Storages/SelectQueryInfo.h" namespace ProfileEvents { From f6ef78c0f1f1b624eda001c3e8fc8988e0c87e73 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Sat, 25 Jun 2022 00:55:58 +0200 Subject: [PATCH 231/525] stash --- src/Common/HashTable/HashTable.h | 20 +++++++++++++++++--- src/Common/HashTable/StringHashTable.h | 6 +++++- src/Common/HashTable/TwoLevelHashTable.h | 1 + 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/Common/HashTable/HashTable.h b/src/Common/HashTable/HashTable.h index 7db693ddcec..78fdcf8a281 100644 --- a/src/Common/HashTable/HashTable.h +++ b/src/Common/HashTable/HashTable.h @@ -228,11 +228,22 @@ void insertSetMapped(MappedType & dest, const ValueType & src) { dest = src.seco /** Determines the size of the hash table, and when and how much it should be resized. */ template -struct HashTableGrower +class HashTableGrower { /// The state of this structure is enough to get the buffer size of the hash table. UInt8 size_degree = initial_size_degree; + size_t cached_mask = (1ULL << initial_size_degree) - 1; + size_t cached_max_fill = 1ULL << (initial_size_degree - 1); + +protected: + void updateSizeDegree() + { + cached_mask = (1ULL << size_degree) - 1; + cached_max_fill = 1ULL << (size_degree - 1); + } + +public: static constexpr auto initial_count = 1ULL << initial_size_degree; /// If collision resolution chains are contiguous, we can implement erase operation by moving the elements. @@ -241,8 +252,8 @@ struct HashTableGrower /// The size of the hash table in the cells. size_t bufSize() const { return 1ULL << size_degree; } - size_t maxFill() const { return 1ULL << (size_degree - 1); } - size_t mask() const { return bufSize() - 1; } + size_t maxFill() const { return cached_max_fill; } + size_t mask() const { return cached_mask; } /// From the hash value, get the cell number in the hash table. size_t place(size_t x) const { return x & mask(); } @@ -257,6 +268,7 @@ struct HashTableGrower void increaseSize() { size_degree += size_degree >= 23 ? 1 : 2; + updateMask(); } /// Set the buffer size by the number of elements in the hash table. Used when deserializing a hash table. @@ -267,11 +279,13 @@ struct HashTableGrower : ((initial_size_degree > static_cast(log2(num_elems - 1)) + 2) ? initial_size_degree : (static_cast(log2(num_elems - 1)) + 2)); + updateMask(); } void setBufSize(size_t buf_size_) { size_degree = static_cast(log2(buf_size_ - 1) + 1); + updateMask(); } }; diff --git a/src/Common/HashTable/StringHashTable.h b/src/Common/HashTable/StringHashTable.h index 6a8bdc06218..e18429688ed 100644 --- a/src/Common/HashTable/StringHashTable.h +++ b/src/Common/HashTable/StringHashTable.h @@ -153,7 +153,11 @@ template struct StringHashTableGrower : public HashTableGrower { // Smooth growing for string maps - void increaseSize() { this->size_degree += 1; } + void increaseSize() + { + this->size_degree += 1; + HashTableGrower::updateMask(); + } }; template diff --git a/src/Common/HashTable/TwoLevelHashTable.h b/src/Common/HashTable/TwoLevelHashTable.h index 35c224c53f8..71c62a34f33 100644 --- a/src/Common/HashTable/TwoLevelHashTable.h +++ b/src/Common/HashTable/TwoLevelHashTable.h @@ -21,6 +21,7 @@ struct TwoLevelHashTableGrower : public HashTableGrower void increaseSize() { this->size_degree += this->size_degree >= 15 ? 1 : 2; + HashTableGrower::updateMask(); } }; From c476427422af2ddcd7617af9f1fdcf9b68605a25 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Sat, 25 Jun 2022 01:25:34 +0200 Subject: [PATCH 232/525] stash --- .../AggregateFunctionUniqCombined.h | 6 +++++- src/Common/HashTable/HashTable.h | 11 ++++++----- src/Common/HashTable/StringHashTable.h | 2 +- src/Common/HashTable/TwoLevelHashTable.h | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionUniqCombined.h b/src/AggregateFunctions/AggregateFunctionUniqCombined.h index 16c9c6c6b57..7d06665f96c 100644 --- a/src/AggregateFunctions/AggregateFunctionUniqCombined.h +++ b/src/AggregateFunctions/AggregateFunctionUniqCombined.h @@ -72,7 +72,11 @@ namespace detail // Unlike HashTableGrower always grows to power of 2. struct UniqCombinedHashTableGrower : public HashTableGrower<> { - void increaseSize() { ++size_degree; } + void increaseSize() + { + ++size_degree; + updateCachedValues(); + } }; template diff --git a/src/Common/HashTable/HashTable.h b/src/Common/HashTable/HashTable.h index 78fdcf8a281..48017f63200 100644 --- a/src/Common/HashTable/HashTable.h +++ b/src/Common/HashTable/HashTable.h @@ -232,12 +232,13 @@ class HashTableGrower { /// The state of this structure is enough to get the buffer size of the hash table. - UInt8 size_degree = initial_size_degree; size_t cached_mask = (1ULL << initial_size_degree) - 1; size_t cached_max_fill = 1ULL << (initial_size_degree - 1); protected: - void updateSizeDegree() + UInt8 size_degree = initial_size_degree; + + void updateCachedValues() { cached_mask = (1ULL << size_degree) - 1; cached_max_fill = 1ULL << (size_degree - 1); @@ -268,7 +269,7 @@ public: void increaseSize() { size_degree += size_degree >= 23 ? 1 : 2; - updateMask(); + updateCachedValues(); } /// Set the buffer size by the number of elements in the hash table. Used when deserializing a hash table. @@ -279,13 +280,13 @@ public: : ((initial_size_degree > static_cast(log2(num_elems - 1)) + 2) ? initial_size_degree : (static_cast(log2(num_elems - 1)) + 2)); - updateMask(); + updateCachedValues(); } void setBufSize(size_t buf_size_) { size_degree = static_cast(log2(buf_size_ - 1) + 1); - updateMask(); + updateCachedValues(); } }; diff --git a/src/Common/HashTable/StringHashTable.h b/src/Common/HashTable/StringHashTable.h index e18429688ed..5589290ecbf 100644 --- a/src/Common/HashTable/StringHashTable.h +++ b/src/Common/HashTable/StringHashTable.h @@ -156,7 +156,7 @@ struct StringHashTableGrower : public HashTableGrower void increaseSize() { this->size_degree += 1; - HashTableGrower::updateMask(); + HashTableGrower::updateCachedValues(); } }; diff --git a/src/Common/HashTable/TwoLevelHashTable.h b/src/Common/HashTable/TwoLevelHashTable.h index 71c62a34f33..b2856b1f1dd 100644 --- a/src/Common/HashTable/TwoLevelHashTable.h +++ b/src/Common/HashTable/TwoLevelHashTable.h @@ -21,7 +21,7 @@ struct TwoLevelHashTableGrower : public HashTableGrower void increaseSize() { this->size_degree += this->size_degree >= 15 ? 1 : 2; - HashTableGrower::updateMask(); + HashTableGrower::updateCachedValues(); } }; From 6639d941253f4a9f301fd09bcaf80b8c7b03e074 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Sat, 25 Jun 2022 01:32:21 +0200 Subject: [PATCH 233/525] stash --- src/Common/HashTable/StringHashTable.h | 2 +- src/Common/HashTable/TwoLevelHashTable.h | 2 +- .../performance/cache_values_inside_hash_table_grower.xml | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 tests/performance/cache_values_inside_hash_table_grower.xml diff --git a/src/Common/HashTable/StringHashTable.h b/src/Common/HashTable/StringHashTable.h index 5589290ecbf..4bc4caf9b3e 100644 --- a/src/Common/HashTable/StringHashTable.h +++ b/src/Common/HashTable/StringHashTable.h @@ -156,7 +156,7 @@ struct StringHashTableGrower : public HashTableGrower void increaseSize() { this->size_degree += 1; - HashTableGrower::updateCachedValues(); + this->updateCachedValues(); } }; diff --git a/src/Common/HashTable/TwoLevelHashTable.h b/src/Common/HashTable/TwoLevelHashTable.h index b2856b1f1dd..073187454d6 100644 --- a/src/Common/HashTable/TwoLevelHashTable.h +++ b/src/Common/HashTable/TwoLevelHashTable.h @@ -21,7 +21,7 @@ struct TwoLevelHashTableGrower : public HashTableGrower void increaseSize() { this->size_degree += this->size_degree >= 15 ? 1 : 2; - HashTableGrower::updateCachedValues(); + this->updateCachedValues(); } }; diff --git a/tests/performance/cache_values_inside_hash_table_grower.xml b/tests/performance/cache_values_inside_hash_table_grower.xml new file mode 100644 index 00000000000..f915c1268bf --- /dev/null +++ b/tests/performance/cache_values_inside_hash_table_grower.xml @@ -0,0 +1,8 @@ + + select * from numbers_mt(200) group by number format Null + select * from numbers_mt(1e4) group by number format Null + select * from numbers_mt(1e5) group by number format Null + select * from numbers_mt(1e6) group by number format Null + select * from numbers_mt(1e7) group by number format Null + select * from numbers_mt(1e8) group by number format Null + From 13a6254e1e7f4f302bd767472c105b7b57210c93 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 01:45:38 +0200 Subject: [PATCH 234/525] Correct submodule --- .gitmodules | 6 +- contrib/base-x | 1 + contrib/base-x/.gitignore | 4 - contrib/base-x/.travis.yml | 36 - contrib/base-x/LICENSE | 21 - contrib/base-x/README.md | 97 - contrib/base-x/base_x.hh | 614 ------ contrib/base-x/tests/test.cc | 30 - contrib/base-x/tests/testcases/tests.cc | 359 ---- contrib/base-x/uinteger_t.hh | 2546 ----------------------- 10 files changed, 4 insertions(+), 3710 deletions(-) create mode 160000 contrib/base-x delete mode 100644 contrib/base-x/.gitignore delete mode 100755 contrib/base-x/.travis.yml delete mode 100644 contrib/base-x/LICENSE delete mode 100644 contrib/base-x/README.md delete mode 100644 contrib/base-x/base_x.hh delete mode 100644 contrib/base-x/tests/test.cc delete mode 100644 contrib/base-x/tests/testcases/tests.cc delete mode 100644 contrib/base-x/uinteger_t.hh diff --git a/.gitmodules b/.gitmodules index a8924e3aaba..f65806c1da5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -268,9 +268,9 @@ [submodule "contrib/hashidsxx"] path = contrib/hashidsxx url = https://github.com/schoentoon/hashidsxx.git -[submodule "contrib/base-x"] - path = contrib/base-x - url = https://github.com/ClickHouse/base-x.git [submodule "contrib/liburing"] path = contrib/liburing url = https://github.com/axboe/liburing.git +[submodule "contrib/base-x"] + path = contrib/base-x + url = https://github.com/ClickHouse/base-x.git diff --git a/contrib/base-x b/contrib/base-x new file mode 160000 index 00000000000..a85f98fb4ed --- /dev/null +++ b/contrib/base-x @@ -0,0 +1 @@ +Subproject commit a85f98fb4ed52c2f4029a4b6ac1ef0bafdfc56f5 diff --git a/contrib/base-x/.gitignore b/contrib/base-x/.gitignore deleted file mode 100644 index b63b40c8b71..00000000000 --- a/contrib/base-x/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -test -*.o -*.dSYM \ No newline at end of file diff --git a/contrib/base-x/.travis.yml b/contrib/base-x/.travis.yml deleted file mode 100755 index f55132e614f..00000000000 --- a/contrib/base-x/.travis.yml +++ /dev/null @@ -1,36 +0,0 @@ -sudo: false - -language: cpp - -compiler: - - clang - - gcc - -addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.8 - packages: - - g++-6 - - clang-3.8 - -install: - - if [ "$CXX" = "g++" ]; then export CXX="g++-6"; fi - - if [ "$CXX" == "clang++" ]; then export CXX="clang++-3.8"; fi - - sudo apt-get install -qq git cmake - -before_script: - # not much better than git submodules, but there was never a need/want for the repo in this repo - - cd .. - - git clone https://github.com/google/googletest.git - - cd googletest - - git reset --hard d62d6c6556d96dda924382547c54a4b3afedb22c - - cmake CMakeLists.txt - - make - - - cd ../base-x/tests - - make - -script: - - make run diff --git a/contrib/base-x/LICENSE b/contrib/base-x/LICENSE deleted file mode 100644 index f7b3408abac..00000000000 --- a/contrib/base-x/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/contrib/base-x/README.md b/contrib/base-x/README.md deleted file mode 100644 index 5dc4a068043..00000000000 --- a/contrib/base-x/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# base-x [![License][license-img]][license-url] [![GitHub Stars][stars-img]][stars-url] [![GitHub Forks][forks-img]][forks-url] [![GitHub Watchers][watchers-img]][watchers-url] [![Tweet][tweet-img]][tweet-url] - -[![Build Status](https://travis-ci.org/Kronuz/base-x.svg?branch=master)](https://travis-ci.org/Kronuz/base-x) - - -### BaseX encoder / decoder for C++ - -This is a fast base encoder / decoder of any given alphabet. - - -#### Example - -``` cpp -// example.cc -// g++ -std=c++14 -o example example.cc - -#include -#include "base_x.hh" - -int main() { - auto encoded = Base58::base58().encode("Hello world!"); - - std::cout << encoded << std::endl; - // => 1LDlk6QWOejX6rPrJ - - return 0; -} -``` - - -#### Compilation - -* g++ and clang++ are supported. -* C++14 is required. - - -### Alphabets - -See below for a list of commonly recognized alphabets, and their respective base. - -Base | Factory | Alphabet ------|---------------------|------------- - 2 | base2::base2() | `01` - 2 | base8::base8() | `01234567` - 11 | bas11::bas11() | `0123456789a` - 16 | base16::base16() | `0123456789abcdef` - 32 | base32::base32() | `0123456789ABCDEFGHJKMNPQRSTVWXYZ` - 36 | base36::base36() | `0123456789abcdefghijklmnopqrstuvwxyz` - 58 | base58::base58() | `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz` - 58 | base58::bitcoin() | `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz` - 58 | base58::gmp() | `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv` - 58 | base58::ripple() | `rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz` - 58 | base58::flickr() | `123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ` - 62 | base62::base62() | `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz` - 62 | base62::inverted() | `0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ` - 64 | base64::base64() | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/` - 64 | base64::urlsafe() | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_` - 66 | base66::base66() | `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~` - - -### How it works - -It encodes octet arrays by doing long divisions on all significant digits in the -array, creating a representation of that number in the new base. - -**If you need standard hex encoding, or base64 encoding, this module is NOT -appropriate.** - - -## Author -[**German Mendez Bravo (Kronuz)**](https://kronuz.io/) - -[![Follow on GitHub][github-follow-img]][github-follow-url] -[![Follow on Twitter][twitter-follow-img]][twitter-follow-url] - - -## License - -MIT License. See [LICENSE](LICENSE) for details. - -Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com - - -[license-url]: https://github.com/Kronuz/base-x/blob/master/LICENSE -[license-img]: https://img.shields.io/github/license/Kronuz/base-x.svg -[stars-url]: https://github.com/Kronuz/base-x/stargazers -[stars-img]: https://img.shields.io/github/stars/Kronuz/base-x.svg?style=social&label=Stars -[forks-url]: https://github.com/Kronuz/base-x/network/members -[forks-img]: https://img.shields.io/github/forks/Kronuz/base-x.svg?style=social&label=Forks -[watchers-url]: https://github.com/Kronuz/base-x/watchers -[watchers-img]: https://img.shields.io/github/watchers/Kronuz/base-x.svg?style=social&label=Watchers -[tweet-img]: https://img.shields.io/twitter/url/https/github.com/Kronuz/base-x.svg?style=social -[tweet-url]: https://twitter.com/intent/tweet?text=Base-X+encoding%2Fdecoding+for+modern+C%2B%2B+by+%40germbravo:&url=https%3A%2F%2Fgithub.com%2FKronuz%2Fbase-x -[github-follow-url]: https://github.com/Kronuz -[github-follow-img]: https://img.shields.io/github/followers/Kronuz.svg?style=social&label=Follow -[twitter-follow-url]: https://twitter.com/intent/follow?screen_name=germbravo -[twitter-follow-img]: https://img.shields.io/twitter/follow/germbravo.svg?style=social&label=Follow diff --git a/contrib/base-x/base_x.hh b/contrib/base-x/base_x.hh deleted file mode 100644 index fdc06fead2f..00000000000 --- a/contrib/base-x/base_x.hh +++ /dev/null @@ -1,614 +0,0 @@ -/* -base_x.hh -BaseX encoder / decoder for C++ - -Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#ifndef __BASE_X__H_ -#define __BASE_X__H_ - -#include // for std::find_if, std::reverse -#include // for std::invalid_argument -#include // for std::string -#include // for std::enable_if_t - -#include "uinteger_t.hh" - - -class BaseX { - char _chr[256]; - int _ord[256]; - - const int size; - const int alphabet_base; - const unsigned base_size; - const unsigned alphabet_base_bits; - const unsigned block_size; - const uinteger_t::digit alphabet_base_mask; - const unsigned padding_size; - const char padding; - const int flags; - - constexpr char chr(unsigned char ord) const { - return _chr[ord]; - } - - constexpr int ord(unsigned char chr) const { - return _ord[chr]; - } - -public: - static constexpr int ignore_case = (1 << 0); - static constexpr int with_checksum = (1 << 1); - static constexpr int with_check = (1 << 2); - static constexpr int block_padding = (1 << 3); - - template - constexpr BaseX(int flgs, const char (&alphabet)[alphabet_size1], const char (&extended)[extended_size1], const char (&padding_string)[padding_size1], const char (&translate)[translate_size1]) : - _chr(), - _ord(), - size(alphabet_size1 - 1 + extended_size1 - 1), - alphabet_base(alphabet_size1 - 1), - base_size(uinteger_t::base_size(alphabet_base)), - alphabet_base_bits(uinteger_t::base_bits(alphabet_base)), - block_size((flgs & BaseX::block_padding) ? alphabet_base_bits : 0), - alphabet_base_mask(alphabet_base - 1), - padding_size(padding_size1 - 1), - padding(padding_size ? padding_string[0] : '\0'), - flags(flgs) - { - for (int c = 0; c < 256; ++c) { - _chr[c] = 0; - _ord[c] = alphabet_base; - } - for (int cp = 0; cp < alphabet_base; ++cp) { - auto ch = alphabet[cp]; - _chr[cp] = ch; - ASSERT(_ord[(unsigned char)ch] == alphabet_base); // Duplicate character in the alphabet - _ord[(unsigned char)ch] = cp; - if (flags & BaseX::ignore_case) { - if (ch >= 'A' && ch <='Z') { - _ord[(unsigned char)ch - 'A' + 'a'] = cp; - } else if (ch >= 'a' && ch <='z') { - _ord[(unsigned char)ch - 'a' + 'A'] = cp; - } - } - } - for (std::size_t i = 0; i < extended_size1 - 1; ++i) { - auto ch = extended[i]; - auto cp = alphabet_base + i; - _chr[cp] = ch; - ASSERT(_ord[(unsigned char)ch] == alphabet_base); // Duplicate character in the extended alphabet - _ord[(unsigned char)ch] = cp; - if (flags & BaseX::ignore_case) { - if (ch >= 'A' && ch <='Z') { - _ord[(unsigned char)ch - 'A' + 'a'] = cp; - } else if (ch >= 'a' && ch <='z') { - _ord[(unsigned char)ch - 'a' + 'A'] = cp; - } - } - } - int cp = -1; - for (std::size_t i = 0; i < translate_size1 - 1; ++i) { - auto ch = translate[i]; - auto ncp = _ord[(unsigned char)ch]; - if (ncp >= alphabet_base) { - ASSERT(_ord[(unsigned char)ch] == alphabet_base); // Invalid translation character - _ord[(unsigned char)ch] = cp; - if (flags & BaseX::ignore_case) { - if (ch >= 'A' && ch <='Z') { - _ord[(unsigned char)ch - 'A' + 'a'] = cp; - } else if (ch >= 'a' && ch <='z') { - _ord[(unsigned char)ch - 'a' + 'A'] = cp; - } - } - } else { - cp = ncp; - } - } - } - - // Get string representation of value - template ::value>> - void encode(Result& result, const uinteger_t& input) const { - std::size_t bp = 0; - uinteger_t quotient; - if (block_size) { - bp = ((input.bits() + 7) & 0xf8) % block_size; - bp = bp ? (block_size - bp) % block_size : 0; - if (bp) { - quotient = input << bp; - } - } - const uinteger_t& num = bp ? quotient : input; - auto num_sz = num.size(); - if (num_sz) { - int sum = 0; - result.reserve(num_sz * base_size); - if (alphabet_base_bits) { - std::size_t shift = 0; - auto ptr = reinterpret_cast(num.data()); - uinteger_t::digit v = *ptr++; - v <<= uinteger_t::half_digit_bits; - for (auto i = num_sz * 2 - 1; i; --i) { - v >>= uinteger_t::half_digit_bits; - v |= (static_cast(*ptr++) << uinteger_t::half_digit_bits); - do { - auto d = static_cast((v >> shift) & alphabet_base_mask); - result.push_back(chr(d)); - shift += alphabet_base_bits; - sum += d; - } while (shift <= uinteger_t::half_digit_bits); - shift -= uinteger_t::half_digit_bits; - } - v >>= (shift + uinteger_t::half_digit_bits); - while (v) { - auto d = static_cast(v & alphabet_base_mask); - result.push_back(chr(d)); - v >>= alphabet_base_bits; - sum += d; - } - auto s = chr(0); - auto rit_f = std::find_if(result.rbegin(), result.rend(), [s](const char& c) { return c != s; }); - result.resize(result.rend() - rit_f); // shrink - } else { - uinteger_t uint_base = alphabet_base; - if (!bp) { - quotient = num; - } - do { - auto r = quotient.divmod(uint_base); - auto d = static_cast(r.second); - result.push_back(chr(d)); - quotient = std::move(r.first); - sum += d; - } while (quotient); - } - std::reverse(result.begin(), result.end()); - if (padding_size) { - Result p; - p.resize((padding_size - (result.size() % padding_size)) % padding_size, padding); - result.append(p); - } - if (flags & BaseX::with_check) { - auto chk = static_cast(num % size); - result.push_back(chr(chk)); - sum += chk; - } - if (flags & BaseX::with_checksum) { - auto sz = result.size(); - sz = (sz + sz / size) % size; - sum += sz; - sum = (size - sum % size) % size; - result.push_back(chr(sum)); - } - } else { - result.push_back(chr(0)); - } - } - - template ::value>> - Result encode(const uinteger_t& num) const { - Result result; - encode(result, num); - return result; - } - - template ::value>> - void encode(Result& result, const unsigned char* decoded, std::size_t decoded_size) const { - encode(result, uinteger_t(decoded, decoded_size, 256)); - } - - template ::value>> - Result encode(const unsigned char* decoded, std::size_t decoded_size) const { - Result result; - encode(result, uinteger_t(decoded, decoded_size, 256)); - return result; - } - - template ::value>> - void encode(Result& result, const char* decoded, std::size_t decoded_size) const { - encode(result, uinteger_t(decoded, decoded_size, 256)); - } - - template ::value>> - Result encode(const char* decoded, std::size_t decoded_size) const { - Result result; - encode(result, uinteger_t(decoded, decoded_size, 256)); - return result; - } - - template ::value>> - void encode(Result& result, T (&s)[N]) const { - encode(result, s, N - 1); - } - - template ::value>> - Result encode(T (&s)[N]) const { - Result result; - encode(result, s, N - 1); - return result; - } - - template ::value>> - void encode(Result& result, const std::string& binary) const { - return encode(result, binary.data(), binary.size()); - } - - template ::value>> - Result encode(const std::string& binary) const { - Result result; - encode(result, binary.data(), binary.size()); - return result; - } - - void decode(uinteger_t& result, const char* encoded, std::size_t encoded_size) const { - result = 0; - int sum = 0; - int sumsz = 0; - int direction = 1; - - auto sz = encoded_size; - if (flags & BaseX::with_checksum) --sz; - if (flags & BaseX::with_check) --sz; - - int bp = 0; - - if (alphabet_base_bits) { - for (; sz; --sz, encoded += direction) { - auto c = *encoded; - if (c == padding) break; - auto d = ord(static_cast(c)); - if (d < 0) continue; // ignored character - if (d >= alphabet_base) { - throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); - } - sum += d; - ++sumsz; - result = (result << alphabet_base_bits) | d; - bp += block_size; - } - } else { - uinteger_t uint_base = alphabet_base; - for (; sz; --sz, encoded += direction) { - auto c = *encoded; - if (c == padding) break; - auto d = ord(static_cast(c)); - if (d < 0) continue; // ignored character - if (d >= alphabet_base) { - throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); - } - sum += d; - ++sumsz; - result = (result * uint_base) + d; - bp += block_size; - } - } - - for (; sz && *encoded == padding; --sz, ++encoded); - - result >>= (bp & 7); - - if (flags & BaseX::with_check) { - auto c = *encoded; - auto d = ord(static_cast(c)); - if (d < 0 || d >= size) { - throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); - } - auto chk = static_cast(result % size); - if (d != chk) { - throw std::invalid_argument("Error: Invalid check"); - } - sum += chk; - ++sumsz; - ++encoded; - } - - if (flags & BaseX::with_checksum) { - auto c = *encoded; - auto d = ord(static_cast(c)); - if (d < 0 || d >= size) { - throw std::invalid_argument("Error: Invalid character: '" + std::string(1, c) + "' at " + std::to_string(encoded_size - sz)); - } - sum += d; - sum += (sumsz + sumsz / size) % size; - if (sum % size) { - throw std::invalid_argument("Error: Invalid checksum"); - } - } - } - - template ::value>> - void decode(Result& result, const char* encoded, std::size_t encoded_size) const { - uinteger_t num; - decode(num, encoded, encoded_size); - result = num.template str(256); - } - - template ::value or std::is_integral::value>> - Result decode(const char* encoded, std::size_t encoded_size) const { - Result result; - decode(result, encoded, encoded_size); - return result; - } - - template ::value or std::is_integral::value>> - void decode(Result& result, T (&s)[N]) const { - decode(result, s, N - 1); - } - - template ::value or std::is_integral::value>> - Result decode(T (&s)[N]) const { - Result result; - decode(result, s, N - 1); - return result; - } - - template ::value or std::is_integral::value>> - void decode(Result& result, const std::string& encoded) const { - decode(result, encoded.data(), encoded.size()); - } - - template ::value or std::is_integral::value>> - Result decode(const std::string& encoded) const { - Result result; - decode(result, encoded.data(), encoded.size()); - return result; - } - - bool is_valid(const char* encoded, std::size_t encoded_size) const { - int sum = 0; - int sumsz = 0; - if (flags & BaseX::with_checksum) --sumsz; - for (; encoded_size; --encoded_size, ++encoded) { - auto d = ord(static_cast(*encoded)); - if (d < 0) continue; // ignored character - if (d >= alphabet_base) { - return false; - } - sum += d; - ++sumsz; - } - if (flags & BaseX::with_checksum) { - sum += (sumsz + sumsz / size) % size; - if (sum % size) { - return false; - } - } - return true; - } - - template - bool is_valid(T (&s)[N]) const { - return is_valid(s, N - 1); - } - - bool is_valid(const std::string& encoded) const { - return is_valid(encoded.data(), encoded.size()); - } -}; - -// base2 -struct Base2 { - static const BaseX& base2() { - static constexpr BaseX encoder(0, "01", "", "", ""); - return encoder; - } - static const BaseX& base2chk() { - static constexpr BaseX encoder(BaseX::with_checksum, "01", "", "", ""); - return encoder; - } -}; - -// base8 -struct Base8 { - static const BaseX& base8() { - static constexpr BaseX encoder(0, "01234567", "", "", ""); - return encoder; - } - static const BaseX& base8chk() { - static constexpr BaseX encoder(BaseX::with_checksum, "01234567", "", "", ""); - return encoder; - } -}; - -// base11 -struct Base11 { - static const BaseX& base11() { - static constexpr BaseX encoder(BaseX::ignore_case, "0123456789a", "", "", ""); - return encoder; - } - static const BaseX& base11chk() { - static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789a", "", "", ""); - return encoder; - } -}; - -// base16 -struct Base16 { - static const BaseX& base16() { - static constexpr BaseX encoder(BaseX::ignore_case, "0123456789abcdef", "", "", ""); - return encoder; - } - static const BaseX& base16chk() { - static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789abcdef", "", "", ""); - return encoder; - } - static const BaseX& rfc4648() { - static constexpr BaseX encoder(0, "0123456789ABCDEF", "", "", ""); - return encoder; - } -}; - -// base32 -struct Base32 { - static const BaseX& base32() { - static constexpr BaseX encoder(BaseX::ignore_case, "0123456789abcdefghijklmnopqrstuv", "", "", ""); - return encoder; - } - static const BaseX& base32chk() { - static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789abcdefghijklmnopqrstuv", "", "", ""); - return encoder; - } - static const BaseX& crockford() { - static constexpr BaseX encoder(BaseX::ignore_case, "0123456789ABCDEFGHJKMNPQRSTVWXYZ", "", "", "-0O1IL"); - return encoder; - } - static const BaseX& crockfordchk() { - static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_check, "0123456789ABCDEFGHJKMNPQRSTVWXYZ", "*~$=U", "", "-0O1IL"); - return encoder; - } - static const BaseX& rfc4648() { - static constexpr BaseX encoder(BaseX::block_padding, "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", "", "========", "\n\r"); - return encoder; - } - static const BaseX& rfc4648hex() { - static constexpr BaseX encoder(BaseX::block_padding, "0123456789ABCDEFGHIJKLMNOPQRSTUV", "", "========", "\n\r"); - return encoder; - } -}; - -// base36 -struct Base36 { - static const BaseX& base36() { - static constexpr BaseX encoder(BaseX::ignore_case, "0123456789abcdefghijklmnopqrstuvwxyz", "", "", ""); - return encoder; - } - static const BaseX& base36chk() { - static constexpr BaseX encoder(BaseX::ignore_case | BaseX::with_checksum, "0123456789abcdefghijklmnopqrstuvwxyz", "", "", ""); - return encoder; - } -}; - -// base58 -struct Base58 { - static const BaseX& base58() { - static constexpr BaseX encoder(0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv", "", "", ""); - return encoder; - } - static const BaseX& base58chk() { - static constexpr BaseX encoder(BaseX::with_checksum, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv", "", "", ""); - return encoder; - } - static const BaseX& bitcoin() { - static constexpr BaseX encoder(0, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", "", "", ""); - return encoder; - } - static const BaseX& bitcoinchk() { - static constexpr BaseX encoder(BaseX::with_checksum, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", "", "", ""); - return encoder; - } - static const BaseX& ripple() { - static constexpr BaseX encoder(0, "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", "", "", ""); - return encoder; - } - static const BaseX& ripplechk() { - static constexpr BaseX encoder(BaseX::with_checksum, "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", "", "", ""); - return encoder; - } - static const BaseX& flickr() { - static constexpr BaseX encoder(0, "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ", "", "", ""); - return encoder; - } - static const BaseX& flickrchk() { - static constexpr BaseX encoder(BaseX::with_checksum, "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ", "", "", ""); - return encoder; - } -}; - -// base59 -struct Base59 { - static const BaseX& base59() { - static constexpr BaseX encoder(0, "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ", "", "", "l1IO0"); - return encoder; - } - static const BaseX& base59chk() { - static constexpr BaseX encoder(BaseX::with_checksum, "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ", "", "", "l1IO0"); - return encoder; - } - static const BaseX& dubaluchk() { - static constexpr BaseX encoder(BaseX::with_checksum, "zy9MalDxwpKLdvW2AtmscgbYUq6jhP7E53TiXenZRkVCrouBH4GSQf8FNJO", "", "", "-l1IO0"); - return encoder; - } -}; - -// base62 -struct Base62 { - static const BaseX& base62() { - static constexpr BaseX encoder(0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "", "", ""); - return encoder; - } - static const BaseX& base62chk() { - static constexpr BaseX encoder(BaseX::with_checksum, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "", "", ""); - return encoder; - } - static const BaseX& inverted() { - static constexpr BaseX encoder(0, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "", ""); - return encoder; - } - static const BaseX& invertedchk() { - static constexpr BaseX encoder(BaseX::with_checksum, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "", ""); - return encoder; - } -}; - -// base64 -struct Base64 { - static const BaseX& base64() { - static constexpr BaseX encoder(0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "", "", ""); - return encoder; - } - static const BaseX& base64chk() { - static constexpr BaseX encoder(BaseX::with_checksum, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "", "", ""); - return encoder; - } - static const BaseX& url() { - static constexpr BaseX encoder(0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "", "", ""); - return encoder; - } - static const BaseX& urlchk() { - static constexpr BaseX encoder(BaseX::with_checksum, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "", "", ""); - return encoder; - } - static const BaseX& rfc4648() { - static constexpr BaseX encoder(BaseX::block_padding, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "", "====", "\n\r"); - return encoder; - } - static const BaseX& rfc4648url() { - static constexpr BaseX encoder(BaseX::block_padding, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", "", "====", "\n\r"); - return encoder; - } -}; - -// base66 -struct Base66 { - static const BaseX& base66() { - static constexpr BaseX encoder(0, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~", "", "", ""); - return encoder; - } - static const BaseX& base66chk() { - static constexpr BaseX encoder(BaseX::with_checksum, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.!~", "", "", ""); - return encoder; - } -}; - -#endif diff --git a/contrib/base-x/tests/test.cc b/contrib/base-x/tests/test.cc deleted file mode 100644 index d47d211173e..00000000000 --- a/contrib/base-x/tests/test.cc +++ /dev/null @@ -1,30 +0,0 @@ -/* -The MIT License (MIT) - -Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include - -int main(int argc, char * argv[]){ - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} \ No newline at end of file diff --git a/contrib/base-x/tests/testcases/tests.cc b/contrib/base-x/tests/testcases/tests.cc deleted file mode 100644 index c5bebfc8288..00000000000 --- a/contrib/base-x/tests/testcases/tests.cc +++ /dev/null @@ -1,359 +0,0 @@ -/* -The MIT License (MIT) - -Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include - -#include "base_x.hh" - - -static constexpr BaseX test_base2(0, "01", "", "", ""); -static constexpr BaseX test_base16(0, "0123456789abcdef", "", "", ""); -static constexpr BaseX test_base58(0, "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", "", "", ""); - - -TEST(UUID, Encode) { - EXPECT_EQ(Base62::base62().encode("\330\105\140\310\23\117\21\346\241\342\64\66\73\322\155\256"), "6a630O1jrtMjCrQDyG3D3O"); - EXPECT_EQ(Base58::bitcoin().encode("\330\105\140\310\23\117\21\346\241\342\64\66\73\322\155\256"), "ThxCy1Ek2q6UhWQhj9CK1o"); - EXPECT_EQ(Base58::base58().encode("\330\105\140\310\23\117\21\346\241\342\64\66\73\322\155\256"), "QetBu0Dh1m5ReTNeg8BI0k"); -} - -TEST(BaseX, checksums) { - EXPECT_EQ(Base64::base64().encode("Hello world!"), "SGVsbG8gd29ybGQh"); - EXPECT_EQ(Base64::base64chk().encode("Hello world!"), "SGVsbG8gd29ybGQhG"); - - EXPECT_EQ(Base64::base64().decode("SGVsbG8gd29ybGQh"), "Hello world!"); - EXPECT_EQ(Base64::base64chk().decode("SGVsbG8gd29ybGQhG"), "Hello world!"); - - EXPECT_EQ(Base62::base62().encode("Hello world!"), "T8dgcjRGuYUueWht"); - EXPECT_EQ(Base62::base62chk().encode("Hello world!"), "T8dgcjRGuYUueWhtE"); - - EXPECT_EQ(Base62::base62().decode("T8dgcjRGuYUueWht"), "Hello world!"); - EXPECT_EQ(Base62::base62chk().decode("T8dgcjRGuYUueWhtE"), "Hello world!"); - - EXPECT_EQ(Base62::base62chk().is_valid("T8dgcjRGuYUueWhtE"), true); - EXPECT_EQ(Base62::base62chk().is_valid("Some random text!"), false); -} - -TEST(base16, Encoder) { - EXPECT_EQ(Base16::base16().encode("A"), "41"); - EXPECT_EQ(Base16::base16().encode("AB"), "4142"); - EXPECT_EQ(Base16::base16().encode("ABC"), "414243"); - EXPECT_EQ(Base16::base16().encode("ABCD"), "41424344"); - EXPECT_EQ(Base16::base16().encode("ABCDE"), "4142434445"); - EXPECT_EQ(Base16::base16().encode("ABCDEF"), "414243444546"); - - EXPECT_EQ(Base16::rfc4648().encode("A"), "41"); - EXPECT_EQ(Base16::rfc4648().encode("AB"), "4142"); - EXPECT_EQ(Base16::rfc4648().encode("ABC"), "414243"); - EXPECT_EQ(Base16::rfc4648().encode("ABCD"), "41424344"); - EXPECT_EQ(Base16::rfc4648().encode("ABCDE"), "4142434445"); - EXPECT_EQ(Base16::rfc4648().encode("ABCDEF"), "414243444546"); -} - -TEST(base16, Decoder) { - EXPECT_EQ(Base16::base16().decode("41"), "A"); - EXPECT_EQ(Base16::base16().decode("4142"), "AB"); - EXPECT_EQ(Base16::base16().decode("414243"), "ABC"); - EXPECT_EQ(Base16::base16().decode("41424344"), "ABCD"); - EXPECT_EQ(Base16::base16().decode("4142434445"), "ABCDE"); - EXPECT_EQ(Base16::base16().decode("414243444546"), "ABCDEF"); - - EXPECT_EQ(Base16::rfc4648().decode("41"), "A"); - EXPECT_EQ(Base16::rfc4648().decode("4142"), "AB"); - EXPECT_EQ(Base16::rfc4648().decode("414243"), "ABC"); - EXPECT_EQ(Base16::rfc4648().decode("41424344"), "ABCD"); - EXPECT_EQ(Base16::rfc4648().decode("4142434445"), "ABCDE"); - EXPECT_EQ(Base16::rfc4648().decode("414243444546"), "ABCDEF"); -} - -TEST(base32, Encoder) { - // Note base64() encoding is NOT the same as the standard (rfc4648) - EXPECT_EQ(Base32::base32().encode("A"), "21"); - EXPECT_EQ(Base32::base32().encode("AB"), "ga2"); - EXPECT_EQ(Base32::base32().encode("ABC"), "42gi3"); - EXPECT_EQ(Base32::base32().encode("ABCD"), "10k4gq4"); - EXPECT_EQ(Base32::base32().encode("ABCDE"), "85146h25"); - EXPECT_EQ(Base32::base32().encode("ABCDEF"), "21891k8ha6"); - EXPECT_EQ(Base32::base32().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "21891k8ha68t44iiib9h6ksjqga5956l2lapblgmaq"); - - EXPECT_EQ(Base32::rfc4648().encode("A"), "IE======"); - EXPECT_EQ(Base32::rfc4648().encode("AB"), "IFBA===="); - EXPECT_EQ(Base32::rfc4648().encode("ABC"), "IFBEG==="); - EXPECT_EQ(Base32::rfc4648().encode("ABCD"), "IFBEGRA="); - EXPECT_EQ(Base32::rfc4648().encode("ABCDE"), "IFBEGRCF"); - EXPECT_EQ(Base32::rfc4648().encode("ABCDEF"), "IFBEGRCFIY======"); - EXPECT_EQ(Base32::rfc4648().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "IFBEGRCFIZDUQSKKJNGE2TSPKBIVEU2UKVLFOWCZLI======"); - - EXPECT_EQ(Base32::crockford().encode(519571), "FVCK"); - EXPECT_EQ(Base32::crockfordchk().encode(1234), "16JD"); - EXPECT_EQ(Base32::crockfordchk().encode("Hello World"), "28CNP6RVS0AXQQ4V348"); -} - -TEST(base32, Decoder) { - // Note base64() encoding is NOT the same as the standard (rfc4648) - EXPECT_EQ(Base32::base32().decode("21"), "A"); - EXPECT_EQ(Base32::base32().decode("ga2"), "AB"); - EXPECT_EQ(Base32::base32().decode("42gi3"), "ABC"); - EXPECT_EQ(Base32::base32().decode("10k4gq4"), "ABCD"); - EXPECT_EQ(Base32::base32().decode("85146h25"), "ABCDE"); - EXPECT_EQ(Base32::base32().decode("21891k8ha6"), "ABCDEF"); - EXPECT_EQ(Base32::base32().decode("21891k8ha68t44iiib9h6ksjqga5956l2lapblgmaq"), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - - EXPECT_EQ(Base32::rfc4648().decode("IE======"), "A"); - EXPECT_EQ(Base32::rfc4648().decode("IFBA===="), "AB"); - EXPECT_EQ(Base32::rfc4648().decode("IFBEG==="), "ABC"); - EXPECT_EQ(Base32::rfc4648().decode("IFBEGRA="), "ABCD"); - EXPECT_EQ(Base32::rfc4648().decode("IFBEGRCF"), "ABCDE"); - EXPECT_EQ(Base32::rfc4648().decode("IFBEGRCFIY======"), "ABCDEF"); - EXPECT_EQ(Base32::rfc4648().decode("IFBEGRCFIZDUQSKKJNGE2TSPKBIVEU2UKVLFOWCZLI======"), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - - EXPECT_EQ(Base32::crockford().decode("FVCK"), 519571); - EXPECT_EQ(Base32::crockfordchk().is_valid("16JD"), true); - EXPECT_EQ(Base32::crockfordchk().decode("16JD"), 1234); - - EXPECT_EQ(Base32::crockfordchk().decode("2-8cn-p6r-vso-axq-q4v-348"), "Hello World"); -} - -TEST(base58, Encoder) { - EXPECT_EQ(Base58::base58().decode("1TFvCj"), 987654321); - EXPECT_EQ(Base58::base58().encode(987654321), "1TFvCj"); - EXPECT_EQ(Base58::base58().encode("Hello world!"), "1LDlk6QWOejX6rPrJ"); - EXPECT_EQ(Base58::bitcoin().encode("Hello world!"), "2NEpo7TZRhna7vSvL"); -} - -TEST(base62, Encoder) { - EXPECT_EQ(Base62::base62().decode("14q60P"), 987654321); - EXPECT_EQ(Base62::base62().encode(987654321), "14q60P"); - EXPECT_EQ(Base62::base62().encode("Hello world!"), "T8dgcjRGuYUueWht"); - EXPECT_EQ(Base62::inverted().encode("Hello world!"), "t8DGCJrgUyuUEwHT"); -} - -TEST(base64, Encoder) { - // Note Base64 encoding is NOT the same as the standard (rfc4648) - EXPECT_EQ(Base64::base64().encode("A"), "BB"); - EXPECT_EQ(Base64::base64().encode("AB"), "EFC"); - EXPECT_EQ(Base64::base64().encode("ABC"), "QUJD"); - EXPECT_EQ(Base64::base64().encode("ABCD"), "BBQkNE"); - EXPECT_EQ(Base64::base64().encode("ABCDE"), "EFCQ0RF"); - EXPECT_EQ(Base64::base64().encode("ABCDEF"), "QUJDREVG"); - EXPECT_EQ(Base64::base64().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "EFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla"); - - EXPECT_EQ(Base64::rfc4648().encode("A"), "QQ=="); - EXPECT_EQ(Base64::rfc4648().encode("AB"), "QUI="); - EXPECT_EQ(Base64::rfc4648().encode("ABC"), "QUJD"); - EXPECT_EQ(Base64::rfc4648().encode("ABCD"), "QUJDRA=="); - EXPECT_EQ(Base64::rfc4648().encode("ABCDE"), "QUJDREU="); - EXPECT_EQ(Base64::rfc4648().encode("ABCDEF"), "QUJDREVG"); - EXPECT_EQ(Base64::rfc4648().encode("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo="); -} - -TEST(base64, Decoder) { - // Note Base64 encoding is NOT the same as the standard (rfc4648) - EXPECT_EQ(Base64::base64().decode("BB"), "A"); - EXPECT_EQ(Base64::base64().decode("EFC"), "AB"); - EXPECT_EQ(Base64::base64().decode("QUJD"), "ABC"); - EXPECT_EQ(Base64::base64().decode("BBQkNE"), "ABCD"); - EXPECT_EQ(Base64::base64().decode("EFCQ0RF"), "ABCDE"); - EXPECT_EQ(Base64::base64().decode("QUJDREVG"), "ABCDEF"); - EXPECT_EQ(Base64::base64().decode("EFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla"), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - - EXPECT_EQ(Base64::rfc4648().decode("QQ=="), "A"); - EXPECT_EQ(Base64::rfc4648().decode("QUI="), "AB"); - EXPECT_EQ(Base64::rfc4648().decode("QUJD"), "ABC"); - EXPECT_EQ(Base64::rfc4648().decode("QUJDRA=="), "ABCD"); - EXPECT_EQ(Base64::rfc4648().decode("QUJDREU="), "ABCDE"); - EXPECT_EQ(Base64::rfc4648().decode("QUJDREVG"), "ABCDEF"); - EXPECT_EQ(Base64::rfc4648().decode("QUJDREVG\nR0hJSktM\nTU5PUFFS\nU1RVVldY\nWVo="), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); -} - -TEST(base58, ShouldEncodeAndDecodeIntegers) { - auto data = 987654321; - - auto gmpEncoded = Base58::base58().encode(data); - auto bitcoinEncoded = Base58::bitcoin().encode(data); - auto rippleEncoded = Base58::ripple().encode(data); - auto flickrEncoded = Base58::flickr().encode(data); - - EXPECT_EQ(gmpEncoded, "1TFvCj"); - EXPECT_EQ(bitcoinEncoded, "2WGzDn"); - EXPECT_EQ(rippleEncoded, "pWGzD8"); - EXPECT_EQ(flickrEncoded, "2vgZdM"); - - auto gmpDecoded = Base58::base58().decode(gmpEncoded); - auto bitcoinDecoded = Base58::bitcoin().decode(bitcoinEncoded); - auto rippleDecoded = Base58::ripple().decode(rippleEncoded); - auto flickrDecoded = Base58::flickr().decode(flickrEncoded); - - EXPECT_EQ(gmpDecoded, data); - EXPECT_EQ(bitcoinDecoded, data); - EXPECT_EQ(rippleDecoded, data); - EXPECT_EQ(flickrDecoded, data); - - auto encoded = Base58::base58().encode(data); - auto decoded = Base58::base58().decode(encoded); - - EXPECT_EQ(decoded, data); -} - -TEST(base58, LongText) { - auto data = "Lorem ipsum dolor consectetur."; - - auto gmpEncoded = Base58::base58().encode(data); - auto bitcoinEncoded = Base58::bitcoin().encode(data); - auto rippleEncoded = Base58::ripple().encode(data); - auto flickrEncoded = Base58::flickr().encode(data); - - EXPECT_EQ(gmpEncoded, "FIHZQEpJ739QdqChX1PkgTBqP1FaDgJWQiGvY92YA"); - EXPECT_EQ(bitcoinEncoded, "GKJcTFtL84ATguDka2SojWCuS2GdEjLZTmHzbA3bB"); - EXPECT_EQ(rippleEncoded, "GKJcTEtL3hwTguDk2pSojWUuSpGdNjLZTmHzbwsbB"); - EXPECT_EQ(flickrEncoded, "gjiBsfTk84asFUdKz2rNJvcUr2gCeJkysLhZAa3Ab"); - - auto gmpDecoded = Base58::base58().decode(gmpEncoded); - auto bitcoinDecoded = Base58::bitcoin().decode(bitcoinEncoded); - auto rippleDecoded = Base58::ripple().decode(rippleEncoded); - auto flickrDecoded = Base58::flickr().decode(flickrEncoded); - - EXPECT_EQ(gmpDecoded, data); - EXPECT_EQ(bitcoinDecoded, data); - EXPECT_EQ(rippleDecoded, data); - EXPECT_EQ(flickrDecoded, data); -} - -TEST(base58, Tests) { - EXPECT_EQ(test_base2.encode(uinteger_t("000f", 16)), "1111"); - // EXPECT_EQ(test_base2.encode(uinteger_t("00ff", 16)), "011111111"); // ->> - EXPECT_EQ(test_base2.encode(uinteger_t("00ff", 16)), "11111111"); - EXPECT_EQ(test_base2.encode(uinteger_t("0fff", 16)), "111111111111"); - EXPECT_EQ(test_base2.encode(uinteger_t("ff00ff00", 16)), "11111111000000001111111100000000"); - // EXPECT_EQ(test_base16.encode(uinteger_t("0000000f", 16)), "000f"); // ->> - EXPECT_EQ(test_base16.encode(uinteger_t("0000000f", 16)), "f"); - // EXPECT_EQ(test_base16.encode(uinteger_t("000fff", 16)), "0fff"); // ->> - EXPECT_EQ(test_base16.encode(uinteger_t("000fff", 16)), "fff"); - EXPECT_EQ(test_base16.encode(uinteger_t("ffff", 16)), "ffff"); - // EXPECT_EQ(test_base58.encode(uinteger_t("", 16)), ""); // ->> - EXPECT_EQ(test_base58.encode(uinteger_t("", 16)), "1"); - EXPECT_EQ(test_base58.encode(uinteger_t("61", 16)), "2g"); - EXPECT_EQ(test_base58.encode(uinteger_t("626262", 16)), "a3gV"); - EXPECT_EQ(test_base58.encode(uinteger_t("636363", 16)), "aPEr"); - EXPECT_EQ(test_base58.encode(uinteger_t("73696d706c792061206c6f6e6720737472696e67", 16)), "2cFupjhnEsSn59qHXstmK2ffpLv2"); - // EXPECT_EQ(test_base58.encode(uinteger_t("00eb15231dfceb60925886b67d065299925915aeb172c06647", 16)), "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L"); // ->> - EXPECT_EQ(test_base58.encode(uinteger_t("00eb15231dfceb60925886b67d065299925915aeb172c06647", 16)), "NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L"); - EXPECT_EQ(test_base58.encode(uinteger_t("516b6fcd0f", 16)), "ABnLTmg"); - EXPECT_EQ(test_base58.encode(uinteger_t("bf4f89001e670274dd", 16)), "3SEo3LWLoPntC"); - EXPECT_EQ(test_base58.encode(uinteger_t("572e4794", 16)), "3EFU7m"); - EXPECT_EQ(test_base58.encode(uinteger_t("ecac89cad93923c02321", 16)), "EJDM8drfXA6uyA"); - EXPECT_EQ(test_base58.encode(uinteger_t("10c8511e", 16)), "Rt5zm"); - // EXPECT_EQ(test_base58.encode(uinteger_t("00000000000000000000", 16)), "1111111111"); // ->> - EXPECT_EQ(test_base58.encode(uinteger_t("00000000000000000000", 16)), "1"); - EXPECT_EQ(test_base58.encode(uinteger_t("801184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd206ec97e", 16)), "5Hx15HFGyep2CfPxsJKe2fXJsCVn5DEiyoeGGF6JZjGbTRnqfiD"); - // EXPECT_EQ(test_base58.encode(uinteger_t("003c176e659bea0f29a3e9bf7880c112b1b31b4dc826268187", 16)), "16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS"); // ->> - EXPECT_EQ(test_base58.encode(uinteger_t("003c176e659bea0f29a3e9bf7880c112b1b31b4dc826268187", 16)), "6UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS"); - EXPECT_EQ(test_base58.encode(uinteger_t("ffffffffffffffffffff", 16)), "FPBt6CHo3fovdL"); - EXPECT_EQ(test_base58.encode(uinteger_t("ffffffffffffffffffffffffff", 16)), "NKioeUVktgzXLJ1B3t"); - EXPECT_EQ(test_base58.encode(uinteger_t("ffffffffffffffffffffffffffffffff", 16)), "YcVfxkQb6JRzqk5kF2tNLv"); - EXPECT_EQ(test_base2.encode(uinteger_t("fb6f9ac3", 16)), "11111011011011111001101011000011"); - EXPECT_EQ(test_base2.encode(uinteger_t("179eea7a", 16)), "10111100111101110101001111010"); - EXPECT_EQ(test_base2.encode(uinteger_t("6db825db", 16)), "1101101101110000010010111011011"); - EXPECT_EQ(test_base2.encode(uinteger_t("93976aa7", 16)), "10010011100101110110101010100111"); - EXPECT_EQ(test_base58.encode(uinteger_t("ef41b9ce7e830af7", 16)), "h26E62FyLQN"); - EXPECT_EQ(test_base58.encode(uinteger_t("606cbc791036d2e9", 16)), "H8Sa62HVULG"); - EXPECT_EQ(test_base58.encode(uinteger_t("bdcb0ea69c2c8ec8", 16)), "YkESUPpnfoD"); - EXPECT_EQ(test_base58.encode(uinteger_t("1a2358ba67fb71d5", 16)), "5NaBN89ajtQ"); - EXPECT_EQ(test_base58.encode(uinteger_t("e6173f0f4d5fb5d7", 16)), "fVAoezT1ZkS"); - EXPECT_EQ(test_base58.encode(uinteger_t("91c81cbfdd58bbd2", 16)), "RPGNSU3bqTX"); - EXPECT_EQ(test_base58.encode(uinteger_t("329e0bf0e388dbfe", 16)), "9U41ZkwwysT"); - EXPECT_EQ(test_base58.encode(uinteger_t("30b10393210fa65b", 16)), "99NMW3WHjjY"); - EXPECT_EQ(test_base58.encode(uinteger_t("ab3bdd18e3623654", 16)), "VeBbqBb4rCT"); - EXPECT_EQ(test_base58.encode(uinteger_t("fe29d1751ec4af8a", 16)), "jWhmYLN9dUm"); - EXPECT_EQ(test_base58.encode(uinteger_t("c1273ab5488769807d", 16)), "3Tbh4kL3WKW6g"); - EXPECT_EQ(test_base58.encode(uinteger_t("6c7907904de934f852", 16)), "2P5jNYhfpTJxy"); - EXPECT_EQ(test_base58.encode(uinteger_t("05f0be055db47a0dc9", 16)), "5PN768Kr5oEp"); - EXPECT_EQ(test_base58.encode(uinteger_t("3511e6206829b35b12", 16)), "gBREojGaJ6DF"); - EXPECT_EQ(test_base58.encode(uinteger_t("d1c7c2ddc4a459d503", 16)), "3fsekq5Esq2KC"); - EXPECT_EQ(test_base58.encode(uinteger_t("1f88efd17ab073e9a1", 16)), "QHJbmW9ZY7jn"); - EXPECT_EQ(test_base58.encode(uinteger_t("0f45dadf4e64c5d5c2", 16)), "CGyVUMmCKLRf"); - EXPECT_EQ(test_base58.encode(uinteger_t("de1e5c5f718bb7fafa", 16)), "3pyy8U7w3KUa5"); - EXPECT_EQ(test_base58.encode(uinteger_t("123190b93e9a49a46c", 16)), "ES3DeFrG1zbd"); - EXPECT_EQ(test_base58.encode(uinteger_t("8bee94a543e7242e5a", 16)), "2nJnuWyLpGf6y"); - EXPECT_EQ(test_base58.encode(uinteger_t("9fd5f2285362f5cfd834", 16)), "9yqFhqeewcW3pF"); - EXPECT_EQ(test_base58.encode(uinteger_t("6987bac63ad23828bb31", 16)), "6vskE5Y1LhS3U4"); - EXPECT_EQ(test_base58.encode(uinteger_t("19d4a0f9d459cc2a08b0", 16)), "2TAsHPuaLhh5Aw"); - EXPECT_EQ(test_base58.encode(uinteger_t("a1e47ffdbea5a807ab26", 16)), "A6XzPgSUJDf1W5"); - EXPECT_EQ(test_base58.encode(uinteger_t("35c231e5b3a86a9b83db", 16)), "42B8reRwPAAoAa"); - EXPECT_EQ(test_base58.encode(uinteger_t("b2351012a48b8347c351", 16)), "B1hPyomGx4Vhqa"); - EXPECT_EQ(test_base58.encode(uinteger_t("71d402694dd9517ea653", 16)), "7Pv2SyAQx2Upu8"); - EXPECT_EQ(test_base58.encode(uinteger_t("55227c0ec7955c2bd6e8", 16)), "5nR64BkskyjHMq"); - EXPECT_EQ(test_base58.encode(uinteger_t("17b3d8ee7907c1be34df", 16)), "2LEg7TxosoxTGS"); - EXPECT_EQ(test_base58.encode(uinteger_t("7e7bba7b68bb8e95827f", 16)), "879o2ATGnmYyAW"); - EXPECT_EQ(test_base58.encode(uinteger_t("db9c13f5ba7654b01407fb", 16)), "wTYfxjDVbiks874"); - EXPECT_EQ(test_base58.encode(uinteger_t("6186449d20f5fd1e6c4393", 16)), "RBeiWhzZNL6VtMG"); - EXPECT_EQ(test_base58.encode(uinteger_t("5248751cebf4ad1c1a83c3", 16)), "MQSVNnc8ehFCqtW"); - EXPECT_EQ(test_base58.encode(uinteger_t("32090ef18cd479fc376a74", 16)), "DQdu351ExDaeYeX"); - EXPECT_EQ(test_base58.encode(uinteger_t("7cfa5d6ed1e467d986c426", 16)), "XzW67T5qfEnFcaZ"); - EXPECT_EQ(test_base58.encode(uinteger_t("9d8707723c7ede51103b6d", 16)), "g4eTCg6QJnB1UU4"); - EXPECT_EQ(test_base58.encode(uinteger_t("6f4d1e392d6a9b4ed8b223", 16)), "Ubo7kZY5aDpAJp2"); - EXPECT_EQ(test_base58.encode(uinteger_t("38057d98797cd39f80a0c9", 16)), "EtjQ2feamJvuqse"); - EXPECT_EQ(test_base58.encode(uinteger_t("de7e59903177e20880e915", 16)), "xB2N7yRBnDYEoT2"); - EXPECT_EQ(test_base58.encode(uinteger_t("b2ea24a28bc4a60b5c4b8d", 16)), "mNFMpJ2P3TGYqhv"); - EXPECT_EQ(test_base58.encode(uinteger_t("cf84938958589b6ffba6114d", 16)), "4v8ZbsGh2ePz5sipt"); - EXPECT_EQ(test_base58.encode(uinteger_t("dee13be7b8d8a08c94a3c02a", 16)), "5CwmE9jQqwtHkTF45"); - EXPECT_EQ(test_base58.encode(uinteger_t("14cb9c6b3f8cd2e02710f569", 16)), "Pm85JHVAAdeUdxtp"); - EXPECT_EQ(test_base58.encode(uinteger_t("ca3f2d558266bdcc44c79cb5", 16)), "4pMwomBAQHuUnoLUC"); - EXPECT_EQ(test_base58.encode(uinteger_t("c031215be44cbad745f38982", 16)), "4dMeTrcxiVw9RWvj3"); - EXPECT_EQ(test_base58.encode(uinteger_t("1435ab1dbc403111946270a5", 16)), "P7wX3sCWNrbqhBEC"); - EXPECT_EQ(test_base58.encode(uinteger_t("d8c6e4d775e7a66a0d0f9f41", 16)), "56GLoRDGWGuGJJwPN"); - EXPECT_EQ(test_base58.encode(uinteger_t("dcee35e74f0fd74176fce2f4", 16)), "5Ap1zyuYiJJFwWcMR"); - EXPECT_EQ(test_base58.encode(uinteger_t("bfcc0ca4b4855d1cf8993fc0", 16)), "4cvafQW4PEhARKv9D"); - EXPECT_EQ(test_base58.encode(uinteger_t("e02a3ac25ece7b54584b670a", 16)), "5EMM28xkpxZ1kkVUM"); - EXPECT_EQ(test_base58.encode(uinteger_t("fe4d938fc3719f064cabb4bfff", 16)), "NBXKkbHwrAsiWTLAk6"); - EXPECT_EQ(test_base58.encode(uinteger_t("9289cb4f6b15c57e6086b87ea5", 16)), "DCvDpjEXEbHjZqskKv"); - EXPECT_EQ(test_base58.encode(uinteger_t("fc266f35626b3612bfe978537b", 16)), "N186PVoBWrNre35BGE"); - EXPECT_EQ(test_base58.encode(uinteger_t("33ff08c06d92502bf258c07166", 16)), "5LC4SoW6jmTtbkbePw"); - EXPECT_EQ(test_base58.encode(uinteger_t("6a81cac1f3666bc59dc67b1c3c", 16)), "9sXgUySUzwiqDU5WHy"); - EXPECT_EQ(test_base58.encode(uinteger_t("9dfb8e7e744c544c0f323ea729", 16)), "EACsmGmkgcwsrPFzLg"); - EXPECT_EQ(test_base58.encode(uinteger_t("1e7a1e284f70838b38442b682b", 16)), "3YEVk9bE7rw5qExMkv"); - EXPECT_EQ(test_base58.encode(uinteger_t("2a862ad57901a8235f5dc74eaf", 16)), "4YS259nuTLfeXa5Wuc"); - EXPECT_EQ(test_base58.encode(uinteger_t("74c82096baef21f9d3089e5462", 16)), "AjAcKEhUfrqm8smvM7"); - EXPECT_EQ(test_base58.encode(uinteger_t("7a3edbc23d7b600263920261cc", 16)), "BBZXyRgey5S5DDZkcK"); - EXPECT_EQ(test_base58.encode(uinteger_t("20435664c357d25a9c8df751cf4f", 16)), "CrwNL6Fbv4pbRx1zd9g"); - EXPECT_EQ(test_base58.encode(uinteger_t("51a7aa87cf5cb1c12d045ec3422d", 16)), "X27NHGgKXmGzzQvDtpC"); - EXPECT_EQ(test_base58.encode(uinteger_t("344d2e116aa26f1062a2cb6ebbef", 16)), "LEDLDvL1Hg4qt1efVXt"); - EXPECT_EQ(test_base58.encode(uinteger_t("6941add7be4c0b5c7163e4928f8e", 16)), "fhMyN6gwoxE3uYraVzV"); - EXPECT_EQ(test_base58.encode(uinteger_t("10938fcbb7c4ab991649734a14bf", 16)), "76TPrSDxzGQfSzMu974"); - EXPECT_EQ(test_base58.encode(uinteger_t("eafe04d944ba504e9af9117b07de", 16)), "2VPgov563ryfe4L2Bj6M"); - EXPECT_EQ(test_base58.encode(uinteger_t("58d0aeed4d35da20b6f052127edf", 16)), "ZenZhXF9YwP8nQvNtNz"); - EXPECT_EQ(test_base58.encode(uinteger_t("d734984e2f5aecf25f7a3e353f8a", 16)), "2N7n3jFsTdyN49Faoq6h"); - EXPECT_EQ(test_base58.encode(uinteger_t("57d873fdb405b7daf4bafa62068a", 16)), "ZJ7NwoP4wHvwyZg3Wjs"); - EXPECT_EQ(test_base58.encode(uinteger_t("bda4ec7b40d0d65ca95dec4c4d3b", 16)), "2CijxjsNyvqTwPCfDcpA"); - EXPECT_EQ(test_base58.encode(uinteger_t("826c4abdceb1b91f0d4ad665f86d2e", 16)), "4edfvuDQu9KzVxLuXHfMo"); - EXPECT_EQ(test_base58.encode(uinteger_t("e7ecb35d07e65b960cb10574a4f51a", 16)), "7VLRYdB4cToipp2J2p3v9"); - EXPECT_EQ(test_base58.encode(uinteger_t("4f2d72ead87b31d6869fba39eac6dc", 16)), "3DUjqJRcfdWhpsrLrGcQs"); - EXPECT_EQ(test_base58.encode(uinteger_t("8b4f5788d60030950d5dfbf94c585d", 16)), "4u44JSRH5jP5X39YhPsmE"); - EXPECT_EQ(test_base58.encode(uinteger_t("ee4c0a0025d1a74ace9fe349355cc5", 16)), "7fgACjABRQUGUEpN6VBBA"); - EXPECT_EQ(test_base58.encode(uinteger_t("58ac05b9a0b4b66083ff1d489b8d84", 16)), "3UtJPyTwGXapcxHx8Rom5"); - EXPECT_EQ(test_base58.encode(uinteger_t("1aa35c05e1132e8e049aafaef035d8", 16)), "kE2eSU7gM2619pT82iGP"); - EXPECT_EQ(test_base58.encode(uinteger_t("771b0c28608484562a292e5d5d2b30", 16)), "4LGYeWhyfrjUByibUqdVR"); - EXPECT_EQ(test_base58.encode(uinteger_t("78ff9a0e56f9e88dc1cd654b40d019", 16)), "4PLggs66qAdbmZgkaPihe"); - EXPECT_EQ(test_base58.encode(uinteger_t("6d691bdd736346aa5a0a95b373b2ab", 16)), "44Y6qTgSvRMkdqpQ5ufkN"); -} diff --git a/contrib/base-x/uinteger_t.hh b/contrib/base-x/uinteger_t.hh deleted file mode 100644 index 901460f75c4..00000000000 --- a/contrib/base-x/uinteger_t.hh +++ /dev/null @@ -1,2546 +0,0 @@ -/* -uinteger_t.hh -An arbitrary precision unsigned integer type for C++ - -Copyright (c) 2017 German Mendez Bravo (Kronuz) @ german dot mb at gmail.com -Copyright (c) 2013 - 2017 Jason Lee @ calccrypto at gmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -With much help from Auston Sterling - -Thanks to Stefan Deigmüller for finding -a bug in operator*. - -Thanks to François Dessenne for convincing me -to do a general rewrite of this class. - -Germán Mández Bravo (Kronuz) converted Jason Lee's uint128_t -to header-only and extended to arbitrary bit length. -*/ - -#ifndef __uint_t__ -#define __uint_t__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define ASSERT assert - -// Compatibility inlines -#ifndef __has_builtin // Optional of course -#define __has_builtin(x) 0 // Compatibility with non-clang compilers -#endif - -#if defined _MSC_VER -# define HAVE___ADDCARRY_U64 -# define HAVE___SUBBORROW_U64 -# define HAVE___ADDCARRY_U32 -# define HAVE___SUBBORROW_U32 -# define HAVE___ADDCARRY_U16 -# define HAVE___SUBBORROW_U16 -# define HAVE___UMUL128 -# define HAVE___UMUL64 -# define HAVE___UMUL32 -# include -#endif - -#if (defined(__clang__) && __has_builtin(__builtin_clzll)) || (defined(__GNUC__ ) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))) -# define HAVE____BUILTIN_CLZLL -#endif -#if (defined(__clang__) && __has_builtin(__builtin_clzl)) || (defined(__GNUC__ ) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))) -# define HAVE____BUILTIN_CLZL -#endif -#if (defined(__clang__) && __has_builtin(__builtin_clz)) || (defined(__GNUC__ ) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))) -# define HAVE____BUILTIN_CLZ -#endif -#if (defined(__clang__) && __has_builtin(__builtin_addcll)) -# define HAVE____BUILTIN_ADDCLL -#endif -#if (defined(__clang__) && __has_builtin(__builtin_addcl)) -# define HAVE____BUILTIN_ADDCL -#endif -#if (defined(__clang__) && __has_builtin(__builtin_addc)) -# define HAVE____BUILTIN_ADDC -#endif -#if (defined(__clang__) && __has_builtin(__builtin_subcll)) -# define HAVE____BUILTIN_SUBCLL -#endif -#if (defined(__clang__) && __has_builtin(__builtin_subcl)) -# define HAVE____BUILTIN_SUBCL -#endif -#if (defined(__clang__) && __has_builtin(__builtin_subc)) -# define HAVE____BUILTIN_SUBC -#endif - -#if defined __SIZEOF_INT128__ -#define HAVE____INT128_T -#endif - - -#ifndef DIGIT_T -#define DIGIT_T std::uint64_t -#endif - -#ifndef HALF_DIGIT_T -#define HALF_DIGIT_T std::uint32_t -#endif - -class uinteger_t; - -namespace std { // This is probably not a good idea - // Give uinteger_t type traits - template <> struct is_arithmetic : std::true_type {}; - template <> struct is_integral : std::true_type {}; - template <> struct is_unsigned : std::true_type {}; -} - -class uinteger_t { -public: - using digit = DIGIT_T; - using half_digit = HALF_DIGIT_T; - - static constexpr std::size_t digit_octets = sizeof(digit); // number of octets per digit - static constexpr std::size_t digit_bits = digit_octets * 8; // number of bits per digit - static constexpr std::size_t half_digit_octets = sizeof(half_digit); // number of octets per half_digit - static constexpr std::size_t half_digit_bits = half_digit_octets * 8; // number of bits per half_digit - - using container = std::vector; - - template - struct is_result { - static const bool value = false; - }; - - template - struct is_result> { - static const bool value = true; - }; - - template - struct is_result> { - static const bool value = true; - }; - -private: - static_assert(digit_octets == half_digit_octets * 2, "half_digit must be exactly half the size of digit"); - - static constexpr std::size_t karatsuba_cutoff = 1024 / digit_bits; - static constexpr double growth_factor = 1.5; - - std::size_t _begin; - std::size_t _end; - container _value_instance; - container& _value; - bool _carry; - -public: - // Window to vector (uses _begin and _end) - - void reserve(std::size_t sz) { - _value.reserve(sz + _begin); - } - - std::size_t grow(std::size_t n) { - // expands the vector using a growth factor - // and returns the new capacity. - auto cc = _value.capacity(); - if (n >= cc) { - cc = n * growth_factor; - _value.reserve(cc); - } - return cc; - } - - void resize(std::size_t sz) { - grow(sz + _begin); - _value.resize(sz + _begin); - } - - void resize(std::size_t sz, const digit& c) { - grow(sz + _begin); - _value.resize(sz + _begin, c); - } - - void clear() { - _value.clear(); - _begin = 0; - _end = 0; - _carry = false; - } - - digit* data() noexcept { - return _value.data() + _begin; - } - - const digit* data() const noexcept { - return _value.data() + _begin; - } - - std::size_t size() const noexcept { - return _end ? _end - _begin : _value.size() - _begin; - } - - void prepend(std::size_t sz, const digit& c) { - // Efficiently prepend by growing backwards by growth factor - auto min = std::min(_begin, sz); - if (min) { - // If there is some space before `_begin`, we try using it first: - _begin -= min; - std::fill_n(_value.begin() + _begin, min, c); - sz -= min; - } - if (sz) { - ASSERT(_begin == 0); // _begin should be 0 in here - // If there's still more room needed, we grow the vector: - // Ex.: grow using prepend(3, y) - // sz = 3 - // _begin = 0 (B) - // _end = 1 (E) - // initially (capacity == 12): - // |xxxxxxxxxx- | - // B E - // after reclaiming space after `_end` (same capacity == 12): - // |xxxxxxxxxx | - // B - // _end = 0 - // csz = 10 - // grow returns the new capacity (22) - // isz = 12 (22 - 10) - // _begin = 9 (12 - 3) - // after (capacity == (12 + 3) * 1.5 == 22): - // |---------yyyxxxxxxxxxx| - // B - if (_end) { - // reclaim space after `_end` - _value.resize(_end); - _end = 0; - } - auto csz = _value.size(); - auto isz = grow(csz + sz) - csz; - _value.insert(_value.begin(), isz, c); - _begin = isz - sz; - } - } - - void prepend(const digit& c) { - prepend(1, c); - } - - void prepend(const uinteger_t& num) { - prepend(num.size(), 0); - std::copy(num.begin(), num.end(), begin()); - } - - void append(std::size_t sz, const digit& c) { - // Efficiently append by growing by growth factor - if (_end) { - // reclaim space after `_end` - _value.resize(_end); - _end = 0; - } - auto nsz = _value.size() + sz; - grow(nsz); - _value.resize(nsz, c); - } - - void append(const digit& c) { - append(1, c); - } - - void append(const uinteger_t& num) { - auto sz = num.size(); - append(sz, 0); - std::copy(num.begin(), num.end(), end() - sz); - } - - container::iterator begin() noexcept { - return _value.begin() + _begin; - } - - container::const_iterator begin() const noexcept { - return _value.cbegin() + _begin; - } - - container::iterator end() noexcept { - return _end ? _value.begin() + _end : _value.end(); - } - - container::const_iterator end() const noexcept { - return _end ? _value.cbegin() + _end : _value.cend(); - } - - container::reverse_iterator rbegin() noexcept { - return _end ? container::reverse_iterator(_value.begin() + _end) : _value.rbegin(); - } - - container::const_reverse_iterator rbegin() const noexcept { - return _end ? container::const_reverse_iterator(_value.cbegin() + _end) : _value.crbegin(); - } - - container::reverse_iterator rend() noexcept { - return container::reverse_iterator(_value.begin() + _begin); - } - - container::const_reverse_iterator rend() const noexcept { - return container::const_reverse_iterator(_value.cbegin() + _begin); - } - - container::reference front() { - return *begin(); - } - - container::const_reference front() const { - return *begin(); - } - - container::reference back() { - return *rbegin(); - } - - container::const_reference back() const { - return *rbegin(); - } - -private: - // Optimized primitives for operations - - static digit _bits(digit x) { - #if defined HAVE____BUILTIN_CLZLL - if (digit_octets == sizeof(unsigned long long)) { - return x ? digit_bits - __builtin_clzll(x) : 1; - } - #endif - #if defined HAVE____BUILTIN_CLZL - if (digit_octets == sizeof(unsigned long)) { - return x ? digit_bits - __builtin_clzl(x) : 1; - } - #endif - #if defined HAVE____BUILTIN_CLZ - if (digit_octets == sizeof(unsigned)) { - return x ? digit_bits - __builtin_clz(x) : 1; - } - #endif - { - digit c = x ? 0 : 1; - while (x) { - x >>= 1; - ++c; - } - return c; - } - } - - static digit _mult(digit x, digit y, digit* lo) { - #if defined HAVE___UMUL128 - if (digit_bits == 64) { - digit h; - digit l = _umul128(x, y, &h); // _umul128(x, y, *hi) -> lo - return h; - } - #endif - #if defined HAVE___UMUL64 - if (digit_bits == 32) { - digit h; - digit l = _umul64(x, y, &h); // _umul64(x, y, *hi) -> lo - return h; - } - #endif - #if defined HAVE___UMUL32 - if (digit_bits == 16) { - digit h; - digit l = _umul32(x, y, &h); // _umul32(x, y, *hi) -> lo - return h; - } - #endif - #if defined HAVE____INT128_T - if (digit_bits == 64) { - auto r = static_cast<__uint128_t>(x) * static_cast<__uint128_t>(y); - *lo = r; - return r >> digit_bits; - } - #endif - if (digit_bits == 64) { - digit x0 = x & 0xffffffffUL; - digit x1 = x >> 32; - digit y0 = y & 0xffffffffUL; - digit y1 = y >> 32; - - digit u = (x0 * y0); - digit v = (x1 * y0) + (u >> 32); - digit w = (x0 * y1) + (v & 0xffffffffUL); - - *lo = (w << 32) + (u & 0xffffffffUL); // low - return (x1 * y1) + (v >> 32) + (w >> 32); // high - } if (digit_bits == 32) { - auto r = static_cast(x) * static_cast(y); - *lo = r; - return r >> 32; - } if (digit_bits == 16) { - auto r = static_cast(x) * static_cast(y); - *lo = r; - return r >> 16; - } if (digit_bits == 8) { - auto r = static_cast(x) * static_cast(y); - *lo = r; - return r >> 8; - } - } - - static digit _multadd(digit x, digit y, digit a, digit c, digit* lo) { - #if defined HAVE___UMUL128 && defined HAVE___ADDCARRY_U64 - if (digit_bits == 64) { - digit h; - digit l = _umul128(x, y, &h); // _umul128(x, y, *hi) -> lo - return h + _addcarry_u64(c, l, a, lo); // _addcarry_u64(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE___UMUL64 && defined HAVE___ADDCARRY_U32 - if (digit_bits == 32) { - digit h; - digit l = _umul64(x, y, &h); // _umul64(x, y, *hi) -> lo - return h + _addcarry_u32(c, l, a, lo); // _addcarry_u32(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE___UMUL32 && defined HAVE___ADDCARRY_U16 - if (digit_bits == 16) { - digit h; - digit l = _umul32(x, y, &h); // _umul32(x, y, *hi) -> lo - return h + _addcarry_u16(c, l, a, lo); // _addcarry_u16(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE____INT128_T - if (digit_bits == 64) { - auto r = static_cast<__uint128_t>(x) * static_cast<__uint128_t>(y) + static_cast<__uint128_t>(a) + static_cast<__uint128_t>(c); - *lo = r; - return r >> digit_bits; - } - #endif - if (digit_bits == 64) { - digit x0 = x & 0xffffffffUL; - digit x1 = x >> 32; - digit y0 = y & 0xffffffffUL; - digit y1 = y >> 32; - - digit u = (x0 * y0) + (a & 0xffffffffUL) + (c & 0xffffffffUL); - digit v = (x1 * y0) + (u >> 32) + (a >> 32) + (c >> 32); - digit w = (x0 * y1) + (v & 0xffffffffUL); - - *lo = (w << 32) + (u & 0xffffffffUL); // low - return (x1 * y1) + (v >> 32) + (w >> 32); // high - } - if (digit_bits == 32) { - auto r = static_cast(x) * static_cast(y) + static_cast(a) + static_cast(c); - *lo = r; - return r >> 32; - } - if (digit_bits == 16) { - auto r = static_cast(x) * static_cast(y) + static_cast(a) + static_cast(c); - *lo = r; - return r >> 16; - } - if (digit_bits == 8) { - auto r = static_cast(x) * static_cast(y) + static_cast(a) + static_cast(c); - *lo = r; - return r >> 8; - } - } - - static digit _divmod(digit x_hi, digit x_lo, digit y, digit* result) { - #if defined HAVE____INT128_T - if (digit_bits == 64) { - auto x = static_cast<__uint128_t>(x_hi) << digit_bits | static_cast<__uint128_t>(x_lo); - digit q = x / y; - digit r = x % y; - - *result = q; - return r; - } - #endif - if (digit_bits == 64) { - // quotient - digit q = x_lo << 1; - - // remainder - digit r = x_hi; - - digit carry = x_lo >> 63; - int i; - - for (i = 0; i < 64; i++) { - auto tmp = r >> 63; - r <<= 1; - r |= carry; - carry = tmp; - - if (carry == 0) { - if (r >= y) { - carry = 1; - } else { - tmp = q >> 63; - q <<= 1; - q |= carry; - carry = tmp; - continue; - } - } - - r -= y; - r -= (1 - carry); - carry = 1; - tmp = q >> 63; - q <<= 1; - q |= carry; - carry = tmp; - } - - *result = q; - return r; - } - if (digit_bits == 32) { - auto x = static_cast(x_hi) << 32 | static_cast(x_lo); - digit q = x / y; - digit r = x % y; - - *result = q; - return r; - } - if (digit_bits == 16) { - auto x = static_cast(x_hi) << 16 | static_cast(x_lo); - digit q = x / y; - digit r = x % y; - - *result = q; - return r; - } - if (digit_bits == 8) { - auto x = static_cast(x_hi) << 8 | static_cast(x_lo); - digit q = x / y; - digit r = x % y; - - *result = q; - return r; - } - } - - static digit _addcarry(digit x, digit y, digit c, digit* result) { - #if defined HAVE___ADDCARRY_U64 - if (digit_bits == 64) { - return _addcarry_u64(c, x, y, result); // _addcarry_u64(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE___ADDCARRY_U32 - if (digit_bits == 32) { - return _addcarry_u32(c, x, y, result); // _addcarry_u32(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE___ADDCARRY_U16 - if (digit_bits == 16) { - return _addcarry_u16(c, x, y, result); // _addcarry_u16(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE____BUILTIN_ADDCLL - if (digit_octets == sizeof(unsigned long long)) { - unsigned long long carryout; - *result = __builtin_addcll(x, y, c, &carryout); // __builtin_addcll(x, y, carryin, *carryout) -> sum - return carryout; - } - #endif - #if defined HAVE____BUILTIN_ADDCL - if (digit_octets == sizeof(unsigned long)) { - unsigned long carryout; - *result = __builtin_addcl(x, y, c, &carryout); // __builtin_addcl(x, y, carryin, *carryout) -> sum - return carryout; - } - #endif - #if defined HAVE____BUILTIN_ADDC - if (digit_octets == sizeof(unsigned)) { - unsigned carryout; - *result = __builtin_addc(x, y, c, &carryout); // __builtin_addc(x, y, carryin, *carryout) -> sum - return carryout; - } - #endif - #if defined HAVE____INT128_T - if (digit_bits == 64) { - auto r = static_cast<__uint128_t>(x) + static_cast<__uint128_t>(y) + static_cast<__uint128_t>(c); - *result = r; - return static_cast(r >> digit_bits); - } - #endif - if (digit_bits == 64) { - digit x0 = x & 0xffffffffUL; - digit x1 = x >> 32; - digit y0 = y & 0xffffffffUL; - digit y1 = y >> 32; - - auto u = x0 + y0 + c; - auto v = x1 + y1 + static_cast(u >> 32); - *result = (v << 32) + (u & 0xffffffffUL); - return static_cast(v >> 32); - } - if (digit_bits == 32) { - auto r = static_cast(x) + static_cast(y) + static_cast(c); - *result = r; - return static_cast(r >> 32); - } - if (digit_bits == 16) { - auto r = static_cast(x) + static_cast(y) + static_cast(c); - *result = r; - return static_cast(r >> 16); - } - if (digit_bits == 8) { - auto r = static_cast(x) + static_cast(y) + static_cast(c); - *result = r; - return static_cast(r >> 8); - } - } - - static digit _subborrow(digit x, digit y, digit c, digit* result) { - #if defined HAVE___SUBBORROW_U64 - if (digit_bits == 64) { - return _subborrow_u64(c, x, y, result); // _subborrow_u64(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE___SUBBORROW_U32 - if (digit_bits == 64) { - return _subborrow_u32(c, x, y, result); // _subborrow_u32(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE___SUBBORROW_U16 - if (digit_bits == 64) { - return _subborrow_u16(c, x, y, result); // _subborrow_u16(carryin, x, y, *sum) -> carryout - } - #endif - #if defined HAVE____BUILTIN_SUBCLL - if (digit_octets == sizeof(unsigned long long)) { - unsigned long long carryout; - *result = __builtin_subcll(x, y, c, &carryout); // __builtin_subcll(x, y, carryin, *carryout) -> sum - return carryout; - } - #endif - #if defined HAVE____BUILTIN_SUBCL - if (digit_octets == sizeof(unsigned long)) { - unsigned long carryout; - *result = __builtin_subcl(x, y, c, &carryout); // __builtin_subcl(x, y, carryin, *carryout) -> sum - return carryout; - } - #endif - #if defined HAVE____BUILTIN_SUBC - if (digit_octets == sizeof(unsigned)) { - unsigned carryout; - *result = __builtin_subc(x, y, c, &carryout); // __builtin_subc(x, y, carryin, *carryout) -> sum - return carryout; - } - #endif - #if defined HAVE____INT128_T - if (digit_bits == 64) { - auto r = static_cast<__uint128_t>(x) - static_cast<__uint128_t>(y) - static_cast<__uint128_t>(c); - *result = r; - return static_cast(r >> 64); - } - #endif - if (digit_bits == 64) { - digit x0 = x & 0xffffffffUL; - digit x1 = x >> 32; - digit y0 = y & 0xffffffffUL; - digit y1 = y >> 32; - - auto u = x0 - y0 - c; - auto v = x1 - y1 - static_cast(u >> 32); - *result = (v << 32) + (u & 0xffffffffUL); - return static_cast(v >> 32); - } - if (digit_bits == 32) { - auto r = static_cast(x) - static_cast(y) - static_cast(c); - *result = r; - return static_cast(r >> 32); - } - if (digit_bits == 16) { - auto r = static_cast(x) - static_cast(y) - static_cast(c); - *result = r; - return static_cast(r >> 16); - } - if (digit_bits == 8) { - auto r = static_cast(x) - static_cast(y) - static_cast(c); - *result = r; - return static_cast(r >> 8); - } - } - - // Helper functions - - void trim(digit mask = 0) { - auto rit = rbegin(); - auto rit_e = rend(); - - // Masks the last value of internal vector - mask &= (digit_bits - 1); - if (mask && rit != rit_e) { - *rit &= (static_cast(1) << mask) - 1; - } - - // Removes all unused zeros from the internal vector - auto rit_f = std::find_if(rit, rit_e, [](const digit& c) { return c; }); - resize(rit_e - rit_f); // shrink - } - - static constexpr char chr(int ord) { - constexpr const char _[256] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', - 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - }; - return _[ord]; - } - - static constexpr int ord(int chr) { - constexpr const int _[256] = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, - - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, - - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - }; - return _[chr]; - } - -public: - static constexpr unsigned base_bits(int base) { - constexpr const unsigned _[256] = { - 0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, - }; - return _[base - 1]; - } - - static constexpr unsigned base_size(int base) { - constexpr const unsigned _[256] = { - 0, 64, 41, 32, 28, 25, 23, 22, 21, 20, 19, 18, 18, 17, 17, 16, - 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, - - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, - }; - return _[base - 1]; - } - - static const uinteger_t uint_0() { - static uinteger_t uint_0(0); - return uint_0; - } - - static const uinteger_t uint_1() { - static uinteger_t uint_1(1); - return uint_1; - } - -private: - // Public Implementation -#ifdef UINT_T_PUBLIC_IMPLEMENTATION -public: -#endif - static uinteger_t& bitwise_and(uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz > rhs_sz) { - lhs.resize(rhs_sz); // shrink - } - - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs.end(); - - auto rhs_it = rhs.begin(); - - for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it) { - *lhs_it &= *rhs_it; - } - - // Finish up - lhs.trim(); - return lhs; - } - - static uinteger_t& bitwise_and(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - auto result_sz = std::max(lhs_sz, rhs_sz); - result.resize(result_sz); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs_it + rhs_sz; - - auto it = result.begin(); - - if (lhs_sz < rhs_sz) { - for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { - *it = *lhs_it & *rhs_it; - } - for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { - *it = 0; - } - } else { - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { - *it = *lhs_it & *rhs_it; - } - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - *it = 0; - } - } - - // Finish up - result.trim(); - return result; - } - - static uinteger_t bitwise_and(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - bitwise_and(result, lhs, rhs); - return result; - } - - static uinteger_t& bitwise_or(uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz < rhs_sz) { - lhs.resize(rhs_sz, 0); // grow - } - - auto lhs_it = lhs.begin(); - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs.end(); - - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { - *lhs_it |= *rhs_it; - } - - // Finish up - lhs.trim(); - return lhs; - } - - static uinteger_t& bitwise_or(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - auto result_sz = std::max(lhs_sz, rhs_sz); - result.resize(result_sz); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs_it + rhs_sz; - - auto it = result.begin(); - - if (lhs_sz < rhs_sz) { - for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { - *it = *lhs_it | *rhs_it; - } - for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { - *it = *rhs_it; - } - } else { - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { - *it = *lhs_it | *rhs_it; - } - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - *it = *lhs_it; - } - } - - // Finish up - result.trim(); - return result; - } - static uinteger_t bitwise_or(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - bitwise_or(result, lhs, rhs); - return result; - } - - static uinteger_t& bitwise_xor(uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz < rhs_sz) { - lhs.resize(rhs_sz, 0); // grow - } - - auto lhs_it = lhs.begin(); - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs.end(); - - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { - *lhs_it ^= *rhs_it; - } - - // Finish up - lhs.trim(); - return lhs; - } - - static uinteger_t& bitwise_xor(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - auto result_sz = std::max(lhs_sz, rhs_sz); - result.resize(result_sz); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs_it + rhs_sz; - - auto it = result.begin(); - - if (lhs_sz < rhs_sz) { - for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { - *it = *lhs_it ^ *rhs_it; - } - for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { - *it = *rhs_it; - } - } else { - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { - *it = *lhs_it ^ *rhs_it; - } - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - *it = *lhs_it; - } - } - - // Finish up - result.trim(); - return result; - } - - static uinteger_t bitwise_xor(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - bitwise_xor(result, lhs, rhs); - return result; - } - - static uinteger_t& bitwise_inv(uinteger_t& lhs) { - auto lhs_sz = lhs.size(); - - auto b = lhs.bits(); - - if (!lhs_sz) { - lhs.append(0); - } - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` if `result` is also `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - for (; lhs_it != lhs_it_e; ++lhs_it) { - *lhs_it = ~*lhs_it; - } - - // Finish up - lhs.trim(b ? b : 1); - return lhs; - } - - static uinteger_t& bitwise_inv(uinteger_t& result, const uinteger_t& lhs) { - auto lhs_sz = lhs.size(); - - auto b = lhs.bits(); - - auto result_sz = lhs_sz ? lhs_sz : 1; - result.resize(result_sz); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` if `result` is also `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto it = result.begin(); - auto it_e = it + result_sz; - - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - *it = ~*lhs_it; - } - for (; it != it_e; ++it) { - *it = ~static_cast(0); - } - - // Finish up - result.trim(b ? b : 1); - return result; - } - - static uinteger_t bitwise_inv(const uinteger_t& lhs) { - uinteger_t result; - bitwise_inv(result, lhs); - return result; - } - - static uinteger_t& bitwise_lshift(uinteger_t& lhs, const uinteger_t& rhs) { - if (!rhs) { - return lhs; - } - - uinteger_t shifts_q; - uinteger_t shifts_r; - auto _digit_bits = digit_bits; - auto uint_digit_bits = uinteger_t(_digit_bits); - divmod(shifts_q, shifts_r, rhs, uint_digit_bits); - std::size_t shifts = static_cast(shifts_q); - std::size_t shift = static_cast(shifts_r); - - if (shifts) { - lhs.prepend(shifts, 0); - } - if (shift) { - digit shifted = 0; - auto lhs_it = lhs.begin() + shifts; - auto lhs_it_e = lhs.end(); - for (; lhs_it != lhs_it_e; ++lhs_it) { - auto v = (*lhs_it << shift) | shifted; - shifted = *lhs_it >> (_digit_bits - shift); - *lhs_it = v; - } - if (shifted) { - lhs.append(shifted); - } - } - - // Finish up - lhs.trim(); - return lhs; - } - - static uinteger_t& bitwise_lshift(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - if (&result._value == &lhs._value) { - bitwise_lshift(result, rhs); - return result; - } - if (!rhs) { - result = lhs; - return result; - } - - auto lhs_sz = lhs.size(); - - uinteger_t shifts_q; - uinteger_t shifts_r; - auto _digit_bits = digit_bits; - auto uint_digit_bits = uinteger_t(_digit_bits); - divmod(shifts_q, shifts_r, rhs, uint_digit_bits); - std::size_t shifts = static_cast(shifts_q); - std::size_t shift = static_cast(shifts_r); - - auto result_sz = lhs_sz + shifts; - result.grow(result_sz + 1); - result.resize(shifts, 0); - result.resize(result_sz); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` if `result` is also `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto it = result.begin() + shifts; - - if (shift) { - digit shifted = 0; - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - auto v = (*lhs_it << shift) | shifted; - shifted = *lhs_it >> (_digit_bits - shift); - *it = v; - } - if (shifted) { - result.append(shifted); - } - } else { - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - *it = *lhs_it; - } - } - - // Finish up - result.trim(); - return result; - } - - static uinteger_t bitwise_lshift(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - bitwise_lshift(result, lhs, rhs); - return result; - } - - static uinteger_t& bitwise_rshift(uinteger_t& lhs, const uinteger_t& rhs) { - if (!rhs) { - return lhs; - } - - auto lhs_sz = lhs.size(); - - auto _digit_bits = digit_bits; - if (compare(rhs, uinteger_t(lhs_sz * _digit_bits)) >= 0) { - lhs = uint_0(); - return lhs; - } - - uinteger_t shifts_q; - uinteger_t shifts_r; - auto uint_digit_bits = uinteger_t(_digit_bits); - divmod(shifts_q, shifts_r, rhs, uint_digit_bits); - std::size_t shifts = static_cast(shifts_q); - std::size_t shift = static_cast(shifts_r); - - if (shifts) { - lhs._begin += shifts; - } - if (shift) { - digit shifted = 0; - auto lhs_rit = lhs.rbegin(); - auto lhs_rit_e = lhs.rend(); - for (; lhs_rit != lhs_rit_e; ++lhs_rit) { - auto v = (*lhs_rit >> shift) | shifted; - shifted = *lhs_rit << (_digit_bits - shift); - *lhs_rit = v; - } - lhs.trim(); - } - - return lhs; - } - - static uinteger_t& bitwise_rshift(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - if (&result._value == &lhs._value) { - bitwise_lshift(result, rhs); - return result; - } - if (!rhs) { - result = lhs; - return result; - } - - auto lhs_sz = lhs.size(); - - auto _digit_bits = digit_bits; - if (compare(rhs, uinteger_t(lhs_sz * _digit_bits)) >= 0) { - result = uint_0(); - return result; - } - - uinteger_t shifts_q; - uinteger_t shifts_r; - auto uint_digit_bits = uinteger_t(_digit_bits); - divmod(shifts_q, shifts_r, rhs, uint_digit_bits); - std::size_t shifts = static_cast(shifts_q); - std::size_t shift = static_cast(shifts_r); - - auto result_sz = lhs_sz - shifts; - result.resize(result_sz); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` if `result` is also `lhs`. - auto lhs_rit = lhs.rbegin(); - auto lhs_rit_e = lhs_rit + lhs_sz - shifts; - - auto rit = result.rbegin(); - auto rit_e = rit + result_sz; - - if (shift) { - digit shifted = 0; - for (; lhs_rit != lhs_rit_e; ++lhs_rit, ++rit) { - ASSERT(rit != rit_e); (void)(rit_e); - auto v = (*lhs_rit >> shift) | shifted; - shifted = *lhs_rit << (_digit_bits - shift); - *rit = v; - } - } else { - for (; lhs_rit != lhs_rit_e; ++lhs_rit, ++rit) { - ASSERT(rit != rit_e); (void)(rit_e); - *rit = *lhs_rit; - } - } - - // Finish up - result.trim(); - return result; - } - - static uinteger_t bitwise_rshift(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - bitwise_rshift(result, lhs, rhs); - return result; - } - - static int compare(const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz > rhs_sz) return 1; - if (lhs_sz < rhs_sz) return -1; - - auto lhs_rit = lhs.rbegin(); - auto lhs_rit_e = lhs.rend(); - - auto rhs_rit = rhs.rbegin(); - - for (; lhs_rit != lhs_rit_e && *lhs_rit == *rhs_rit; ++lhs_rit, ++rhs_rit); - - if (lhs_rit != lhs_rit_e) { - if (*lhs_rit > *rhs_rit) return 1; - if (*lhs_rit < *rhs_rit) return -1; - } - - return 0; - } - - static uinteger_t& long_add(uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz < rhs_sz) { - lhs.reserve(rhs_sz + 1); - lhs.resize(rhs_sz, 0); // grow - } - - // not using `end()` because resize of `lhs.resize()` could have - // resized `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs_it + rhs_sz; - - digit carry = 0; - if (lhs_sz < rhs_sz) { - for (; lhs_it != lhs_it_e; ++rhs_it, ++lhs_it) { - carry = _addcarry(*lhs_it, *rhs_it, carry, &*lhs_it); - } - for (; carry && rhs_it != rhs_it_e; ++rhs_it, ++lhs_it) { - carry = _addcarry(0, *rhs_it, carry, &*lhs_it); - } - for (; rhs_it != rhs_it_e; ++rhs_it, ++lhs_it) { - *lhs_it = *rhs_it; - } - } else { - for (; rhs_it != rhs_it_e; ++rhs_it, ++lhs_it) { - carry = _addcarry(*lhs_it, *rhs_it, carry, &*lhs_it); - } - for (; carry && lhs_it != lhs_it_e; ++lhs_it) { - carry = _addcarry(*lhs_it, 0, carry, &*lhs_it); - } - } - - if (carry) { - lhs.append(1); - } - - lhs._carry = false; - - // Finish up - lhs.trim(); - return lhs; - } - - static uinteger_t& long_add(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - auto result_sz = std::max(lhs_sz, rhs_sz); - result.reserve(result_sz + 1); - result.resize(result_sz, 0); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs_it + rhs_sz; - - auto it = result.begin(); - - digit carry = 0; - if (lhs_sz < rhs_sz) { - for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { - carry = _addcarry(*lhs_it, *rhs_it, carry, &*it); - } - for (; carry && rhs_it != rhs_it_e; ++rhs_it, ++it) { - carry = _addcarry(0, *rhs_it, carry, &*it); - } - for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { - *it = *rhs_it; - } - } else { - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { - carry = _addcarry(*lhs_it, *rhs_it, carry, &*it); - } - for (; carry && lhs_it != lhs_it_e; ++lhs_it, ++it) { - carry = _addcarry(*lhs_it, 0, carry, &*it); - } - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - *it = *lhs_it; - } - } - - if (carry) { - result.append(1); - } - result._carry = false; - - // Finish up - result.trim(); - return result; - } - - static uinteger_t& add(uinteger_t& lhs, const uinteger_t& rhs) { - // First try saving some calculations: - if (!rhs) { - return lhs; - } - if (!lhs) { - lhs = rhs; - return lhs; - } - - return long_add(lhs, rhs); - } - - static uinteger_t& add(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - // First try saving some calculations: - if (!rhs) { - result = lhs; - return result; - } - if (!lhs) { - result = rhs; - return result; - } - - return long_add(result, lhs, rhs); - } - - static uinteger_t add(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - add(result, lhs, rhs); - return result; - } - - static uinteger_t& long_sub(uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz < rhs_sz) { - lhs.resize(rhs_sz, 0); // grow - } - - // not using `end()` because resize of `lhs.resize()` could have - // resized `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs_it + rhs_sz; - - digit borrow = 0; - if (lhs_sz < rhs_sz) { - for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it) { - borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*lhs_it); - } - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { - borrow = _subborrow(0, *rhs_it, borrow, &*lhs_it); - } - } else { - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it) { - borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*lhs_it); - } - for (; borrow && lhs_it != lhs_it_e; ++lhs_it) { - borrow = _subborrow(*lhs_it, 0, borrow, &*lhs_it); - } - } - - lhs._carry = borrow; - - // Finish up - lhs.trim(); - return lhs; - } - - static uinteger_t& long_sub(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - auto result_sz = std::max(lhs_sz, rhs_sz); - result.resize(result_sz, 0); - - // not using `end()` because resize of `result.resize()` could have - // resized `lhs` or `rhs` if `result` is also either `rhs` or `lhs`. - auto lhs_it = lhs.begin(); - auto lhs_it_e = lhs_it + lhs_sz; - - auto rhs_it = rhs.begin(); - auto rhs_it_e = rhs_it + rhs_sz; - - auto it = result.begin(); - - digit borrow = 0; - if (lhs_sz < rhs_sz) { - for (; lhs_it != lhs_it_e; ++lhs_it, ++rhs_it, ++it) { - borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*it); - } - for (; rhs_it != rhs_it_e; ++rhs_it, ++it) { - borrow = _subborrow(0, *rhs_it, borrow, &*it); - } - } else { - for (; rhs_it != rhs_it_e; ++lhs_it, ++rhs_it, ++it) { - borrow = _subborrow(*lhs_it, *rhs_it, borrow, &*it); - } - for (; borrow && lhs_it != lhs_it_e; ++lhs_it, ++it) { - borrow = _subborrow(*lhs_it, 0, borrow, &*it); - } - for (; lhs_it != lhs_it_e; ++lhs_it, ++it) { - *it = *lhs_it; - } - } - - result._carry = borrow; - - // Finish up - result.trim(); - return result; - } - - static uinteger_t& sub(uinteger_t& lhs, const uinteger_t& rhs) { - // First try saving some calculations: - if (!rhs) { - return lhs; - } - - return long_sub(lhs, rhs); - } - - static uinteger_t& sub(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - // First try saving some calculations: - if (!rhs) { - result = lhs; - return result; - } - - return long_sub(result, lhs, rhs); - } - - static uinteger_t sub(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - sub(result, lhs, rhs); - return result; - } - - // Single word long multiplication - // Fastests, but ONLY for single sized rhs - static uinteger_t& single_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - ASSERT(rhs_sz == 1); (void)(rhs_sz); - auto n = rhs.front(); - - uinteger_t tmp; - tmp.resize(lhs_sz + 1, 0); - - auto it_lhs = lhs.begin(); - auto it_lhs_e = lhs.end(); - - auto it_result = tmp.begin(); - - digit carry = 0; - for (; it_lhs != it_lhs_e; ++it_lhs, ++it_result) { - carry = _multadd(*it_lhs, n, 0, carry, &*it_result); - } - if (carry) { - *it_result = carry; - } - - result = std::move(tmp); - - // Finish up - result.trim(); - return result; - } - - static uinteger_t& long_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz > rhs_sz) { - // rhs should be the largest: - return long_mult(result, rhs, lhs); - } - - if (lhs_sz == 1) { - return single_mult(result, rhs, lhs); - } - - uinteger_t tmp; - tmp.resize(lhs_sz + rhs_sz, 0); - - auto it_lhs = lhs.begin(); - auto it_lhs_e = lhs.end(); - - auto it_rhs = rhs.begin(); - auto it_rhs_e = rhs.end(); - - auto it_result = tmp.begin(); - auto it_result_s = it_result; - auto it_result_l = it_result; - - for (; it_lhs != it_lhs_e; ++it_lhs, ++it_result) { - if (auto lhs_it_val = *it_lhs) { - auto _it_rhs = it_rhs; - auto _it_result = it_result; - digit carry = 0; - for (; _it_rhs != it_rhs_e; ++_it_rhs, ++_it_result) { - carry = _multadd(*_it_rhs, lhs_it_val, *_it_result, carry, &*_it_result); - } - if (carry) { - *_it_result++ = carry; - } - if (it_result_l < _it_result) { - it_result_l = _it_result; - } - } - } - - tmp.resize(it_result_l - it_result_s); // shrink - - result = std::move(tmp); - - // Finish up - result.trim(); - return result; - } - - // A helper for Karatsuba multiplication to split a number in two, at n. - static std::pair karatsuba_mult_split(const uinteger_t& num, std::size_t n) { - const uinteger_t a(num, num._begin, num._begin + n); - const uinteger_t b(num, num._begin + n, num._end); - return std::make_pair(std::move(a), std::move(b)); - } - - // If rhs has at least twice the digits of lhs, and lhs is big enough that - // Karatsuba would pay off *if* the inputs had balanced sizes. - // View rhs as a sequence of slices, each with lhs.size() digits, - // and multiply the slices by lhs, one at a time. - static uinteger_t& karatsuba_lopsided_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs, std::size_t cutoff) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - ASSERT(lhs_sz > cutoff); - ASSERT(2 * lhs_sz <= rhs_sz); - - auto rhs_begin = rhs._begin; - std::size_t shift = 0; - - uinteger_t r; - while (rhs_sz > 0) { - // Multiply the next slice of rhs by lhs and add into result: - auto slice_size = std::min(lhs_sz, rhs_sz); - const uinteger_t rhs_slice(rhs, rhs_begin, rhs_begin + slice_size); - uinteger_t p; - karatsuba_mult(p, lhs, rhs_slice, cutoff); - uinteger_t rs(r, shift, 0); - add(rs, rs, p); - shift += slice_size; - rhs_sz -= slice_size; - rhs_begin += slice_size; - } - - result = std::move(r); - return result; - } - - // Karatsuba multiplication - static uinteger_t& karatsuba_mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs, std::size_t cutoff = 1) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - if (lhs_sz > rhs_sz) { - // rhs should be the largest: - return karatsuba_mult(result, rhs, lhs, cutoff); - } - - if (lhs_sz <= cutoff) { - return long_mult(result, lhs, rhs); - } - - // If a is too small compared to b, splitting on b gives a degenerate case - // in which Karatsuba may be (even much) less efficient than long multiplication. - if (2 * lhs_sz <= rhs_sz) { - return karatsuba_lopsided_mult(result, lhs, rhs, cutoff); - } - - // Karatsuba: - // - // A B - // x C D - // --------------------- - // AD BD - // AC BC - // --------------------- - // AC AD + BC BD - // - // AD + BC = - // AC + AD + BC + BD - AC - BD - // (A + B) (C + D) - AC - BD - - // Calculate the split point near the middle of the largest (rhs). - auto shift = rhs_sz >> 1; - - // Split to get A and B: - const auto lhs_pair = karatsuba_mult_split(lhs, shift); - const auto& A = lhs_pair.second; // hi - const auto& B = lhs_pair.first; // lo - - // Split to get C and D: - const auto rhs_pair = karatsuba_mult_split(rhs, shift); - const auto& C = rhs_pair.second; // hi - const auto& D = rhs_pair.first; // lo - - // Get the pieces: - uinteger_t AC; - karatsuba_mult(AC, A, C, cutoff); - - uinteger_t BD; - karatsuba_mult(BD, B, D, cutoff); - uinteger_t AD_BC, AB, CD; - karatsuba_mult(AD_BC, A + B, C + D, cutoff); - AD_BC -= AC; - AD_BC -= BD; - - // Join the pieces, AC and BD (can't overlap) into BD: - BD.reserve(shift * 2 + AC.size()); - BD.resize(shift * 2, 0); - BD.append(AC); - - // And add AD_BC to the middle: (AC BD) + ( AD + BC ): - uinteger_t BDs(BD, shift, 0); - add(BDs, BDs, AD_BC); - - result = std::move(BD); - - // Finish up - result.trim(); - return result; - } - - static uinteger_t& mult(uinteger_t& lhs, const uinteger_t& rhs) { - // Hard to see how this could have a further optimized implementation. - return mult(lhs, lhs, rhs); - } - - static uinteger_t& mult(uinteger_t& result, const uinteger_t& lhs, const uinteger_t& rhs) { - // First try saving some calculations: - if (!lhs || !rhs) { - result = uint_0(); - return result; - } - if (compare(lhs, uint_1()) == 0) { - result = rhs; - return result; - } - if (compare(rhs, uint_1()) == 0) { - result = lhs; - return result; - } - - return karatsuba_mult(result, lhs, rhs, karatsuba_cutoff); - } - - static uinteger_t mult(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t result; - mult(result, lhs, rhs); - return result; - } - - // Single word long division - // Fastests, but ONLY for single sized rhs - static std::pair, std::reference_wrapper> single_divmod(uinteger_t& quotient, uinteger_t& remainder, const uinteger_t& lhs, const uinteger_t& rhs) { - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - - ASSERT(rhs_sz == 1); (void)(rhs_sz); - auto n = rhs.front(); - - auto rit_lhs = lhs.rbegin(); - auto rit_lhs_e = lhs.rend(); - - auto q = uint_0(); - q.resize(lhs_sz, 0); - auto rit_q = q.rbegin(); - - digit r = 0; - for (; rit_lhs != rit_lhs_e; ++rit_lhs, ++rit_q) { - r = _divmod(r, *rit_lhs, n, &*rit_q); - } - - q.trim(); - - quotient = std::move(q); - remainder = r; - return std::make_pair(std::ref(quotient), std::ref(remainder)); - } - - // Implementation of Knuth's Algorithm D - static std::pair, std::reference_wrapper> knuth_divmod(uinteger_t& quotient, uinteger_t& remainder, const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t v(lhs); - uinteger_t w(rhs); - - auto v_size = v.size(); - auto w_size = w.size(); - ASSERT(v_size >= w_size && w_size >= 2); - - // D1. normalize: shift rhs left so that its top digit is >= 63 bits. - // shift lhs left by the same amount. Results go into w and v. - auto d = uinteger_t(digit_bits - _bits(w.back())); - v <<= d; - w <<= d; - - if (*v.rbegin() >= *w.rbegin()) { - v.append(0); - } - v_size = v.size(); - v.append(0); - - // Now *v.rbegin() < *w.rbegin() so quotient has at most - // (and usually exactly) k = v.size() - w.size() digits. - auto k = v_size - w_size; - auto q = uint_0(); - q.resize(k + 1, 0); - - auto rit_q = q.rend() - (k + 1); - - auto it_v_b = v.begin(); - auto it_v_k = it_v_b + k; - - auto it_w = w.begin(); - auto it_w_e = w.end(); - - auto rit_w = w.rbegin(); - auto wm1 = *rit_w++; - auto wm2 = *rit_w; - - // D2. inner loop: divide v[k+0..k+n] by w[0..n] - for (; it_v_k >= it_v_b; --it_v_k, ++rit_q) { - // D3. Compute estimate quotient digit q; may overestimate by 1 (rare) - digit _q; - auto _r = _divmod(*(it_v_k + w_size), *(it_v_k + w_size - 1), wm1, &_q); - digit mullo = 0; - auto mulhi = _mult(_q, wm2, &mullo); - auto rlo = *(it_v_k + w_size - 2); - while (mulhi > _r || (mulhi == _r && mullo > rlo)) { - --_q; - if (_addcarry(_r, wm1, 0, &_r)) { - break; - } - mulhi = _mult(_q, wm2, &mullo); - } - - // D4. Multiply and subtract _q * w0[0:size_w] from vk[0:size_w+1] - auto _it_v = it_v_k; - auto _it_w = it_w; - mulhi = 0; - digit carry = 0; - for (; _it_w != it_w_e; ++_it_v, ++_it_w) { - mullo = 0; - mulhi = _multadd(*_it_w, _q, 0, mulhi, &mullo); - carry = _subborrow(*_it_v, mullo, carry, &*_it_v); - } - carry = _subborrow(*_it_v, 0, carry, &*_it_v); - - if (carry) { - // D6. Add w back if q was too large (this branch taken rarely) - --_q; - - _it_v = it_v_k; - _it_w = it_w; - carry = 0; - for (; _it_w != it_w_e; ++_it_v, ++_it_w) { - carry = _addcarry(*_it_v, *_it_w, carry, &*_it_v); - } - carry = _addcarry(*_it_v, 0, carry, &*_it_v); - } - - /* store quotient digit */ - *rit_q = _q; - } - - // D8. unnormalize: unshift remainder. - v.resize(w_size); - v >>= d; - - q.trim(); - v.trim(); - - quotient = std::move(q); - remainder = std::move(v); - return std::make_pair(std::ref(quotient), std::ref(remainder)); - } - - static std::pair, std::reference_wrapper> divmod(uinteger_t& quotient, uinteger_t& remainder, const uinteger_t& lhs, const uinteger_t& rhs) { - // First try saving some calculations: - if (!rhs) { - throw std::domain_error("Error: division or modulus by 0"); - } - auto lhs_sz = lhs.size(); - auto rhs_sz = rhs.size(); - if (lhs_sz == 1 && rhs_sz == 1) { - // Fast division and modulo for single value - auto a = *lhs.begin(); - auto b = *rhs.begin(); - quotient = a / b; - remainder = a % b; - return std::make_pair(std::ref(quotient), std::ref(remainder)); - } - if (compare(rhs, uint_1()) == 0) { - quotient = lhs; - remainder = uint_0(); - return std::make_pair(std::ref(quotient), std::ref(remainder)); - } - auto compared = compare(lhs, rhs); - if (compared == 0) { - quotient = uint_1(); - remainder = uint_0(); - return std::make_pair(std::ref(quotient), std::ref(remainder)); - } - if (!lhs || compared < 0) { - quotient = uint_0(); - remainder = lhs; - return std::make_pair(std::ref(quotient), std::ref(remainder)); - } - if (rhs_sz == 1) { - return single_divmod(quotient, remainder, lhs, rhs); - } - - return knuth_divmod(quotient, remainder, lhs, rhs); - } - - static std::pair divmod(const uinteger_t& lhs, const uinteger_t& rhs) { - uinteger_t quotient; - uinteger_t remainder; - divmod(quotient, remainder, lhs, rhs); - return std::make_pair(std::move(quotient), std::move(remainder)); - } - -private: - // Constructors - - template ::value and not std::is_same>::value>> - void _uint_t(const T& value) { - append(static_cast(value)); - } - - template ::value and not std::is_same>::value>> - void _uint_t(const T& value, Args... args) { - _uint_t(args...); - append(static_cast(value)); - } - - // This constructor creates a window view of the _value - uinteger_t(const uinteger_t& o, std::size_t begin, std::size_t end) : - _begin(begin), - _end(end), - _value(o._value), - _carry(o._carry) { } - -public: - uinteger_t() : - _begin(0), - _end(0), - _value(_value_instance), - _carry(false) { } - - uinteger_t(const uinteger_t& o) : - _begin(0), - _end(0), - _value_instance(o.begin(), o.end()), - _value(_value_instance), - _carry(o._carry) { } - - uinteger_t(uinteger_t&& o) : - _begin(std::move(o._begin)), - _end(std::move(o._end)), - _value_instance(std::move(o._value_instance)), - _value(_value_instance), - _carry(std::move(o._carry)) { } - - template ::value and not std::is_same>::value>> - uinteger_t(const T& value) : - _begin(0), - _end(0), - _value(_value_instance), - _carry(false) { - if (value) { - append(static_cast(value)); - } - } - - template ::value and not std::is_same>::value>> - uinteger_t(const T& value, Args... args) : - _begin(0), - _end(0), - _value(_value_instance), - _carry(false) { - _uint_t(args...); - append(static_cast(value)); - trim(); - } - - template ::value and not std::is_same>::value>> - uinteger_t(std::initializer_list list) : - _begin(0), - _end(0), - _value(_value_instance), - _carry(false) { - reserve(list.size()); - for (const auto& value : list) { - append(static_cast(value)); - } - trim(); - } - - template - explicit uinteger_t(T (&s)[N], int base=10) : - uinteger_t(s, N - 1, base) { } - - explicit uinteger_t(const unsigned char* bytes, std::size_t sz, int base) : - uinteger_t(strtouint(bytes, sz, base)) { } - - explicit uinteger_t(const char* bytes, std::size_t sz, int base) : - uinteger_t(strtouint(bytes, sz, base)) { } - - template - explicit uinteger_t(const std::vector& bytes, int base=10) : - uinteger_t(bytes.data(), bytes.size(), base) { } - - explicit uinteger_t(const std::string& bytes, int base=10) : - uinteger_t(bytes.data(), bytes.size(), base) { } - - // Assignment Operator - uinteger_t& operator=(const uinteger_t& o) { - _begin = 0; - _end = 0; - _value = container(o.begin(), o.end()); - _carry = o._carry; - return *this; - } - uinteger_t& operator=(uinteger_t&& o) { - _begin = std::move(o._begin); - _end = std::move(o._end); - _value_instance = std::move(o._value_instance); - _carry = std::move(o._carry); - return *this; - } - - // Typecast Operators - explicit operator bool() const { - return static_cast(size()); - } - explicit operator unsigned char() const { - return static_cast(size() ? front() : 0); - } - explicit operator unsigned short() const { - return static_cast(size() ? front() : 0); - } - explicit operator unsigned int() const { - return static_cast(size() ? front() : 0); - } - explicit operator unsigned long() const { - return static_cast(size() ? front() : 0); - } - explicit operator unsigned long long() const { - return static_cast(size() ? front() : 0); - } - explicit operator char() const { - return static_cast(size() ? front() : 0); - } - explicit operator short() const { - return static_cast(size() ? front() : 0); - } - explicit operator int() const { - return static_cast(size() ? front() : 0); - } - explicit operator long() const { - return static_cast(size() ? front() : 0); - } - explicit operator long long() const { - return static_cast(size() ? front() : 0); - } - - // Bitwise Operators - uinteger_t operator&(const uinteger_t& rhs) const { - return bitwise_and(*this, rhs); - } - - uinteger_t& operator&=(const uinteger_t& rhs) { - return bitwise_and(*this, rhs); - } - - uinteger_t operator|(const uinteger_t& rhs) const { - return bitwise_or(*this, rhs); - } - - uinteger_t& operator|=(const uinteger_t& rhs) { - return bitwise_or(*this, rhs); - } - - uinteger_t operator^(const uinteger_t& rhs) const { - return bitwise_xor(*this, rhs); - } - - uinteger_t& operator^=(const uinteger_t& rhs) { - return bitwise_xor(*this, rhs); - } - - uinteger_t operator~() const { - return bitwise_inv(*this); - } - - uinteger_t inv() { - return bitwise_inv(*this); - } - - // Bit Shift Operators - uinteger_t operator<<(const uinteger_t& rhs) const { - return bitwise_lshift(*this, rhs); - } - - uinteger_t& operator<<=(const uinteger_t& rhs) { - return bitwise_lshift(*this, rhs); - } - - uinteger_t operator>>(const uinteger_t& rhs) const { - return bitwise_rshift(*this, rhs); - } - - uinteger_t& operator>>=(const uinteger_t& rhs) { - return bitwise_rshift(*this, rhs); - } - - // Logical Operators - bool operator!() const { - return !static_cast(*this); - } - - bool operator&&(const uinteger_t& rhs) const { - return static_cast(*this) && rhs; - } - - bool operator||(const uinteger_t& rhs) const { - return static_cast(*this) || rhs; - } - - // Comparison Operators - bool operator==(const uinteger_t& rhs) const { - return compare(*this, rhs) == 0; - } - - bool operator!=(const uinteger_t& rhs) const { - return compare(*this, rhs) != 0; - } - - bool operator>(const uinteger_t& rhs) const { - return compare(*this, rhs) > 0; - } - - bool operator<(const uinteger_t& rhs) const { - return compare(*this, rhs) < 0; - } - - bool operator>=(const uinteger_t& rhs) const { - return compare(*this, rhs) >= 0; - } - - bool operator<=(const uinteger_t& rhs) const { - return compare(*this, rhs) <= 0; - } - - // Arithmetic Operators - uinteger_t operator+(const uinteger_t& rhs) const { - return add(*this, rhs); - } - - uinteger_t& operator+=(const uinteger_t& rhs) { - return add(*this, rhs); - } - - uinteger_t operator-(const uinteger_t& rhs) const { - return sub(*this, rhs); - } - - uinteger_t& operator-=(const uinteger_t& rhs) { - return sub(*this, rhs); - } - - uinteger_t operator*(const uinteger_t& rhs) const { - return mult(*this, rhs); - } - - uinteger_t& operator*=(const uinteger_t& rhs) { - return mult(*this, rhs); - } - - std::pair divmod(const uinteger_t& rhs) const { - return divmod(*this, rhs); - } - - uinteger_t operator/(const uinteger_t& rhs) const { - return divmod(*this, rhs).first; - } - - uinteger_t& operator/=(const uinteger_t& rhs) { - uinteger_t quotient; - uinteger_t remainder; - divmod(quotient, remainder, *this, rhs); - *this = std::move(quotient); - return *this; - } - - uinteger_t operator%(const uinteger_t& rhs) const { - return divmod(*this, rhs).second; - } - - uinteger_t& operator%=(const uinteger_t& rhs) { - uinteger_t quotient; - uinteger_t remainder; - divmod(quotient, remainder, *this, rhs); - *this = std::move(remainder); - return *this; - } - - // Increment Operator - uinteger_t& operator++() { - return *this += uint_1(); - } - uinteger_t operator++(int) { - uinteger_t temp(*this); - ++*this; - return temp; - } - - // Decrement Operator - uinteger_t& operator--() { - return *this -= uint_1(); - } - uinteger_t operator--(int) { - uinteger_t temp(*this); - --*this; - return temp; - } - - // Nothing done since promotion doesn't work here - uinteger_t operator+() const { - return *this; - } - - // two's complement - uinteger_t operator-() const { - return uint_0() - *this; - } - - // Get private value at index - const digit& value(std::size_t idx) const { - static const digit zero = 0; - return idx < size() ? *(begin() + idx) : zero; - } - - // Get value of bit N - bool operator[](std::size_t n) const { - auto nd = n / digit_bits; - auto nm = n % digit_bits; - return nd < size() ? (*(begin() + nd) >> nm) & 1 : 0; - } - - // Get bitsize of value - std::size_t bits() const { - auto sz = size(); - if (sz) { - return _bits(back()) + (sz - 1) * digit_bits; - } - return 0; - } - - // Get string representation of value - template ::value>> - Result str(int alphabet_base = 10) const { - auto num_sz = size(); - if (alphabet_base >= 2 && alphabet_base <= 36) { - Result result; - if (num_sz) { - auto alphabet_base_bits = base_bits(alphabet_base); - result.reserve(num_sz * base_size(alphabet_base)); - if (alphabet_base_bits) { - digit alphabet_base_mask = alphabet_base - 1; - std::size_t shift = 0; - auto ptr = reinterpret_cast(data()); - digit v = *ptr++; - v <<= half_digit_bits; - for (auto i = num_sz * 2 - 1; i; --i) { - v >>= half_digit_bits; - v |= (static_cast(*ptr++) << half_digit_bits); - do { - auto d = static_cast((v >> shift) & alphabet_base_mask); - result.push_back(chr(d)); - shift += alphabet_base_bits; - } while (shift <= half_digit_bits); - shift -= half_digit_bits; - } - v >>= (shift + half_digit_bits); - while (v) { - auto d = static_cast(v & alphabet_base_mask); - result.push_back(chr(d)); - v >>= alphabet_base_bits; - } - auto s = chr(0); - auto rit_f = std::find_if(result.rbegin(), result.rend(), [s](const char& c) { return c != s; }); - result.resize(result.rend() - rit_f); // shrink - } else { - uinteger_t uint_base = alphabet_base; - uinteger_t quotient = *this; - do { - auto r = quotient.divmod(uint_base); - auto d = static_cast(r.second); - result.push_back(chr(d)); - quotient = std::move(r.first); - } while (quotient); - } - std::reverse(result.begin(), result.end()); - } else { - result.push_back(chr(0)); - } - return result; - } else if (alphabet_base == 256) { - if (num_sz) { - auto ptr = reinterpret_cast(data()); - Result result(ptr, ptr + num_sz * digit_octets); - auto rit_f = std::find_if(result.rbegin(), result.rend(), [](const char& c) { return c; }); - result.resize(result.rend() - rit_f); // shrink - std::reverse(result.begin(), result.end()); - return result; - } else { - Result result; - result.push_back('\x00'); - return result; - } - } else { - throw std::invalid_argument("Base must be in the range [2, 36]"); - } - } - - static uinteger_t strtouint(const void* encoded, std::size_t encoded_size, int alphabet_base) { - const char* data = (const char *)encoded; - uinteger_t result; - - if (alphabet_base >= 2 && alphabet_base <= 36) { - uinteger_t alphabet_base_bits = base_bits(alphabet_base); - uinteger_t uint_base = alphabet_base; - if (alphabet_base_bits) { - for (; encoded_size; --encoded_size, ++data) { - auto d = ord(static_cast(*data)); - if (d < 0) { - throw std::invalid_argument("Error: Not a digit in base " + std::to_string(alphabet_base) + ": '" + std::string(1, *data) + "' at " + std::to_string(encoded_size)); - } - result = (result << alphabet_base_bits) | d; - } - } else { - for (; encoded_size; --encoded_size, ++data) { - auto d = ord(static_cast(*data)); - if (d < 0) { - throw std::invalid_argument("Error: Not a digit in base " + std::to_string(alphabet_base) + ": '" + std::string(1, *data) + "' at " + std::to_string(encoded_size)); - } - result = (result * uint_base) + d; - } - } - } else if (encoded_size && alphabet_base == 256) { - auto value_size = encoded_size / digit_octets; - auto value_padding = encoded_size % digit_octets; - if (value_padding) { - value_padding = digit_octets - value_padding; - ++value_size; - } - result.resize(value_size); // grow (no initialization) - *result.begin() = 0; // initialize value - auto ptr = reinterpret_cast(result.data()); - std::copy(data, data + encoded_size, ptr + value_padding); - std::reverse(ptr, ptr + value_size * digit_octets); - } else { - throw std::invalid_argument("Error: Cannot convert from base " + std::to_string(alphabet_base)); - } - - return result; - } - - template ::value>> - Result bin() const { - return str(2); - } - - template ::value>> - Result oct() const { - return str(8); - } - - template ::value>> - Result hex() const { - return str(16); - } - - template ::value>> - Result raw() const { - return str(256); - } -}; - -namespace std { // This is probably not a good idea - // Make it work with std::string() - inline std::string to_string(uinteger_t& num) { - return num.str(); - } - inline const std::string to_string(const uinteger_t& num) { - return num.str(); - } -} - -// lhs type T as first arguemnt -// If the output is not a bool, casts to type T - -// Bitwise Operators -template ::value and not std::is_same>::value>> -uinteger_t operator&(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) & rhs; -} - -template ::value and not std::is_same>::value>> -T& operator&=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(rhs & lhs); -} - -template ::value and not std::is_same>::value>> -uinteger_t operator|(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) | rhs; -} - -template ::value and not std::is_same>::value>> -T& operator|=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(rhs | lhs); -} - -template ::value and not std::is_same>::value>> -uinteger_t operator^(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) ^ rhs; -} - -template ::value and not std::is_same>::value>> -T& operator^=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(rhs ^ lhs); -} - -// Bitshift operators -template ::value and not std::is_same>::value>> -inline uinteger_t operator<<(T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) << rhs; -} - -template ::value and not std::is_same>::value>> -T& operator<<=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(lhs << rhs); -} - -template ::value and not std::is_same>::value>> -inline uinteger_t operator>>(T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) >> rhs; -} - -template ::value and not std::is_same>::value>> -T& operator>>=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(lhs >> rhs); -} - -// Comparison Operators -template ::value and not std::is_same>::value>> -bool operator==(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) == rhs; -} - -template ::value and not std::is_same>::value>> -bool operator!=(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) != rhs; -} - -template ::value and not std::is_same>::value>> -bool operator>(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) > rhs; -} - -template ::value and not std::is_same>::value>> -bool operator<(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) < rhs; -} - -template ::value and not std::is_same>::value>> -bool operator>=(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) >= rhs; -} - -template ::value and not std::is_same>::value>> -bool operator<=(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) <= rhs; -} - -// Arithmetic Operators -template ::value and not std::is_same>::value>> -uinteger_t operator+(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) + rhs; -} - -template ::value and not std::is_same>::value>> -T& operator+=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(rhs + lhs); -} - -template ::value and not std::is_same>::value>> -uinteger_t operator-(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) - rhs; -} - -template ::value and not std::is_same>::value>> -T& operator-=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(lhs - rhs); -} - -template ::value and not std::is_same>::value>> -uinteger_t operator*(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) * rhs; -} - -template ::value and not std::is_same>::value>> -T& operator*=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(rhs * lhs); -} - -template ::value and not std::is_same>::value>> -uinteger_t operator/(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) / rhs; -} - -template ::value and not std::is_same>::value>> -T& operator/=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(lhs / rhs); -} - -template ::value and not std::is_same>::value>> -uinteger_t operator%(const T& lhs, const uinteger_t& rhs) { - return uinteger_t(lhs) % rhs; -} - -template ::value and not std::is_same>::value>> -T& operator%=(T& lhs, const uinteger_t& rhs) { - return lhs = static_cast(lhs % rhs); -} - -// IO Operator -inline std::ostream& operator<<(std::ostream& stream, const uinteger_t& rhs) { - if (stream.flags() & stream.oct) { - stream << rhs.str(8); - } else if (stream.flags() & stream.dec) { - stream << rhs.str(10); - } else if (stream.flags() & stream.hex) { - stream << rhs.str(16); - } - return stream; -} - -#endif From b89f01438ef987b42058862bae8aa7cc46277f44 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 03:05:55 +0200 Subject: [PATCH 235/525] Lower mutex scope --- programs/server/embedded.xml | 1 - src/Common/ThreadStatus.cpp | 11 +++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/programs/server/embedded.xml b/programs/server/embedded.xml index 2b6c4d9f770..0f11efab8a3 100644 --- a/programs/server/embedded.xml +++ b/programs/server/embedded.xml @@ -12,7 +12,6 @@ ./ - 8589934592 true diff --git a/src/Common/ThreadStatus.cpp b/src/Common/ThreadStatus.cpp index b5c2e7be11f..c7d0a42ee79 100644 --- a/src/Common/ThreadStatus.cpp +++ b/src/Common/ThreadStatus.cpp @@ -164,12 +164,15 @@ ThreadStatus::~ThreadStatus() if (thread_group) { - std::lock_guard guard(thread_group->mutex); - thread_group->finished_threads_counters_memory.emplace_back(ThreadGroupStatus::ProfileEventsCountersAndMemory{ + ThreadGroupStatus::ProfileEventsCountersAndMemory counters + { performance_counters.getPartiallyAtomicSnapshot(), memory_tracker.get(), - thread_id, - }); + thread_id + }; + + std::lock_guard guard(thread_group->mutex); + thread_group->finished_threads_counters_memory.emplace_back(std::move(counters)); thread_group->threads.erase(this); } From e33f236d502fe9f7906392f4ceffaee44e3c4ce4 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 03:59:01 +0200 Subject: [PATCH 236/525] Slight improvement --- src/Common/ThreadStatus.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/Common/ThreadStatus.cpp b/src/Common/ThreadStatus.cpp index c7d0a42ee79..37331b91d56 100644 --- a/src/Common/ThreadStatus.cpp +++ b/src/Common/ThreadStatus.cpp @@ -148,19 +148,10 @@ ThreadStatus::ThreadStatus() ThreadStatus::~ThreadStatus() { - try - { - if (untracked_memory > 0) - memory_tracker.alloc(untracked_memory); - else - memory_tracker.free(-untracked_memory); - } - catch (const DB::Exception &) - { - /// It's a minor tracked memory leak here (not the memory itself but it's counter). - /// We've already allocated a little bit more than the limit and cannot track it in the thread memory tracker or its parent. - tryLogCurrentException(log); - } + if (untracked_memory > 0) + memory_tracker.allocImpl(untracked_memory, false); + else + memory_tracker.free(-untracked_memory); if (thread_group) { From 0e5742fb8e386e5af544b4271b8639bb23d414ad Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 04:28:14 +0200 Subject: [PATCH 237/525] Better hardware benchmark --- benchmark/hardware.sh | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index a4cafd501e2..ce9b3e7d99d 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -1,6 +1,6 @@ #!/bin/bash -e -TABLE="hits_100m_obfuscated" +TABLE="hits" QUERIES_FILE="queries.sql" TRIES=3 @@ -20,7 +20,7 @@ uptime echo "Starting clickhouse-server" -./clickhouse server > server.log 2>&1 & +./clickhouse server >/dev/null 2>&1 & PID=$! function finish { @@ -37,15 +37,23 @@ for i in {1..30}; do if [[ $i == 30 ]]; then exit 1; fi done -echo "Will download the dataset" -./clickhouse client --max_insert_threads $(nproc || 4) --progress --query " - CREATE OR REPLACE TABLE ${TABLE} ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) - AS SELECT * FROM url('https://datasets.clickhouse.com/hits/native/hits_100m_obfuscated_{0..255}.native.zst')" +if [[ $(./clickhouse client --query "EXISTS hits") == '1' && $(./clickhouse client --query "SELECT count() FROM hits") == '100000000' ]]; then + echo "Dataset already downloaded" +else + echo "Will download the dataset" + ./clickhouse client --max_insert_threads $(nproc || 4) --progress --query " + CREATE OR REPLACE TABLE ${TABLE} ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) + AS SELECT * FROM url('https://datasets.clickhouse.com/hits/native/hits_100m_obfuscated_{0..255}.native.zst')" -./clickhouse client --query "SELECT 'The dataset size is: ', count() FROM ${TABLE}" + ./clickhouse client --query "SELECT 'The dataset size is: ', count() FROM ${TABLE}" +fi -echo "Will prepare the dataset" -./clickhouse client --query "OPTIMIZE TABLE ${TABLE} FINAL" +if [[ $(./clickhouse client --query "SELECT count() FROM system.parts WHERE table = 'hits' AND database = 'default' AND active") == '1' ]]; then + echo "Dataset already prepared" +else + echo "Will prepare the dataset" + ./clickhouse client --query "OPTIMIZE TABLE ${TABLE} FINAL" +fi echo echo "Will perform benchmark. Results:" From 4c3f42f1c2ff39790437ed0d3500ee28cc9b8c60 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 04:29:43 +0200 Subject: [PATCH 238/525] Better hardware benchmark --- benchmark/hardware.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index ce9b3e7d99d..374f2c515de 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -1,6 +1,5 @@ #!/bin/bash -e -TABLE="hits" QUERIES_FILE="queries.sql" TRIES=3 @@ -42,24 +41,24 @@ if [[ $(./clickhouse client --query "EXISTS hits") == '1' && $(./clickhouse clie else echo "Will download the dataset" ./clickhouse client --max_insert_threads $(nproc || 4) --progress --query " - CREATE OR REPLACE TABLE ${TABLE} ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) + CREATE OR REPLACE TABLE hits ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) AS SELECT * FROM url('https://datasets.clickhouse.com/hits/native/hits_100m_obfuscated_{0..255}.native.zst')" - ./clickhouse client --query "SELECT 'The dataset size is: ', count() FROM ${TABLE}" + ./clickhouse client --query "SELECT 'The dataset size is: ', count() FROM hits" fi if [[ $(./clickhouse client --query "SELECT count() FROM system.parts WHERE table = 'hits' AND database = 'default' AND active") == '1' ]]; then echo "Dataset already prepared" else echo "Will prepare the dataset" - ./clickhouse client --query "OPTIMIZE TABLE ${TABLE} FINAL" + ./clickhouse client --query "OPTIMIZE TABLE hits FINAL" fi echo echo "Will perform benchmark. Results:" echo -cat "$QUERIES_FILE" | sed "s/{table}/${TABLE}/g" | while read query; do +cat "$QUERIES_FILE" | sed "s/{table}/hits/g" | while read query; do sync if [ "${OS}" = "Darwin" ] then From 5cf6586ed631416bc1fbaad53218b930de2d1e92 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 04:43:07 +0200 Subject: [PATCH 239/525] Add benchmark for c6a_metal --- .../hardware/results/aws_c6a_metal.json | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 website/benchmark/hardware/results/aws_c6a_metal.json diff --git a/website/benchmark/hardware/results/aws_c6a_metal.json b/website/benchmark/hardware/results/aws_c6a_metal.json new file mode 100644 index 00000000000..adaf3cce48d --- /dev/null +++ b/website/benchmark/hardware/results/aws_c6a_metal.json @@ -0,0 +1,54 @@ +[ + { + "system": "AWS c6a.metal", + "system_full": "AWS c6a.metal 192 vCPU (96 cores) 384GiB RAM, 200 GB EBS", + "time": "2022-06-25 00:00:00", + "kind": "cloud", + "result": + [ +[0.031, 0.044, 0.001], +[0.050, 0.013, 0.012], +[0.061, 0.017, 0.017], +[0.117, 0.019, 0.021], +[0.280, 0.099, 0.121], +[0.802, 0.113, 0.225], +[0.020, 0.001, 0.001], +[0.024, 0.014, 0.013], +[0.243, 0.116, 0.115], +[0.886, 0.133, 0.129], +[0.325, 0.102, 0.107], +[0.369, 0.093, 0.098], +[0.883, 0.186, 0.178], +[1.532, 0.220, 0.221], +[0.727, 0.208, 0.196], +[0.215, 0.181, 0.184], +[1.676, 0.419, 0.413], +[1.324, 0.306, 0.300], +[3.088, 0.880, 0.765], +[0.119, 0.038, 0.026], +[8.946, 0.218, 0.135], +[9.994, 0.162, 0.134], +[19.043, 0.603, 0.616], +[14.138, 0.257, 0.222], +[1.821, 0.061, 0.048], +[0.856, 0.044, 0.046], +[2.364, 0.064, 0.050], +[9.074, 0.303, 0.291], +[7.130, 0.315, 0.307], +[0.430, 0.400, 0.412], +[1.321, 0.119, 0.114], +[4.649, 0.207, 0.183], +[3.786, 0.861, 0.848], +[8.971, 0.681, 0.652], +[8.974, 0.661, 0.645], +[0.251, 0.230, 0.223], +[0.112, 0.066, 0.073], +[0.053, 0.029, 0.031], +[0.069, 0.031, 0.028], +[0.230, 0.168, 0.171], +[0.044, 0.018, 0.020], +[0.035, 0.015, 0.020], +[0.021, 0.008, 0.007] + ] + } +] From ff8c52b087c3b10e0e5ad31b65699022a8a38ee3 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 06:11:37 +0300 Subject: [PATCH 240/525] Update partition.md --- docs/en/sql-reference/statements/alter/partition.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/sql-reference/statements/alter/partition.md b/docs/en/sql-reference/statements/alter/partition.md index 27178c91de8..d960f057a00 100644 --- a/docs/en/sql-reference/statements/alter/partition.md +++ b/docs/en/sql-reference/statements/alter/partition.md @@ -7,9 +7,9 @@ sidebar_label: PARTITION The following operations with [partitions](../../../engines/table-engines/mergetree-family/custom-partitioning-key.md) are available: -- [DETACH PARTITION\|Part](#detach-partitionpart) — Moves a partition or part to the `detached` directory and forget it. -- [DROP PARTITION\|Part](#drop-partitionpart) — Deletes a partition or part. -- [ATTACH PARTITION\|Part](#attach-partitionpart) — Adds a partition or part from the `detached` directory to the table. +- [DETACH PARTITION\|PART](#detach-partitionpart) — Moves a partition or part to the `detached` directory and forget it. +- [DROP PARTITION\|PART](#drop-partitionpart) — Deletes a partition or part. +- [ATTACH PARTITION\|PART](#attach-partitionpart) — Adds a partition or part from the `detached` directory to the table. - [ATTACH PARTITION FROM](#attach-partition-from) — Copies the data partition from one table to another and adds. - [REPLACE PARTITION](#replace-partition) — Copies the data partition from one table to another and replaces. - [MOVE PARTITION TO TABLE](#move_to_table-partition) — Moves the data partition from one table to another. From 0654684bd4eb0b63e58696783734765559318906 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 06:10:50 +0200 Subject: [PATCH 241/525] Fix wrong implementation of filesystem* functions --- src/Functions/filesystem.cpp | 2 +- .../queries/0_stateless/02345_filesystem_local.reference | 1 + tests/queries/0_stateless/02345_filesystem_local.sh | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 tests/queries/0_stateless/02345_filesystem_local.reference create mode 100755 tests/queries/0_stateless/02345_filesystem_local.sh diff --git a/src/Functions/filesystem.cpp b/src/Functions/filesystem.cpp index bea7ffdf818..36db68617e9 100644 --- a/src/Functions/filesystem.cpp +++ b/src/Functions/filesystem.cpp @@ -36,7 +36,7 @@ public: static FunctionPtr create(ContextPtr context) { - return std::make_shared>(std::filesystem::space(context->getConfigRef().getString("path"))); + return std::make_shared>(std::filesystem::space(context->getPath())); } bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override diff --git a/tests/queries/0_stateless/02345_filesystem_local.reference b/tests/queries/0_stateless/02345_filesystem_local.reference new file mode 100644 index 00000000000..9972842f982 --- /dev/null +++ b/tests/queries/0_stateless/02345_filesystem_local.reference @@ -0,0 +1 @@ +1 1 diff --git a/tests/queries/0_stateless/02345_filesystem_local.sh b/tests/queries/0_stateless/02345_filesystem_local.sh new file mode 100755 index 00000000000..6771df2ae2d --- /dev/null +++ b/tests/queries/0_stateless/02345_filesystem_local.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +# shellcheck source=../shell_config.sh +. "$CUR_DIR"/../shell_config.sh + +# Checks that these functions are working inside clickhouse-local. Does not check specific values. +$CLICKHOUSE_LOCAL --query "SELECT filesystemAvailable() > 0, filesystemFree() <= filesystemCapacity()" From a45e3d47adacc59699de26b59e5966307b97b8fb Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 07:16:25 +0200 Subject: [PATCH 242/525] Remove useless codec from system.asynchronous_metric_log --- src/Interpreters/AsynchronousMetricLog.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Interpreters/AsynchronousMetricLog.h b/src/Interpreters/AsynchronousMetricLog.h index 836e967a7a6..900d84868bd 100644 --- a/src/Interpreters/AsynchronousMetricLog.h +++ b/src/Interpreters/AsynchronousMetricLog.h @@ -40,7 +40,7 @@ struct AsynchronousMetricLogElement return "event_date Date CODEC(Delta(2), ZSTD(1)), " "event_time DateTime CODEC(Delta(4), ZSTD(1)), " "metric LowCardinality(String) CODEC(ZSTD(1)), " - "value Float64 CODEC(Gorilla, ZSTD(3))"; + "value Float64 CODEC(ZSTD(3))"; } }; From ccb4802ab10218523d4249e705decb05edf23945 Mon Sep 17 00:00:00 2001 From: xinhuitian Date: Sat, 25 Jun 2022 14:01:41 +0800 Subject: [PATCH 243/525] fix some wrong links in alter docs --- docs/en/sql-reference/statements/alter/column.md | 2 +- docs/en/sql-reference/statements/alter/partition.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/en/sql-reference/statements/alter/column.md b/docs/en/sql-reference/statements/alter/column.md index 2a5e36eaa00..9387b442944 100644 --- a/docs/en/sql-reference/statements/alter/column.md +++ b/docs/en/sql-reference/statements/alter/column.md @@ -24,7 +24,7 @@ The following actions are supported: - [CLEAR COLUMN](#clear-column) — Resets column values. - [COMMENT COLUMN](#comment-column) — Adds a text comment to the column. - [MODIFY COLUMN](#modify-column) — Changes column’s type, default expression and TTL. -- [MODIFY COLUMN REMOVE](#modify-remove) — Removes one of the column properties. +- [MODIFY COLUMN REMOVE](#modify-column-remove) — Removes one of the column properties. - [MATERIALIZE COLUMN](#materialize-column) — Materializes the column in the parts where the column is missing. These actions are described in detail below. diff --git a/docs/en/sql-reference/statements/alter/partition.md b/docs/en/sql-reference/statements/alter/partition.md index d960f057a00..921ffb71066 100644 --- a/docs/en/sql-reference/statements/alter/partition.md +++ b/docs/en/sql-reference/statements/alter/partition.md @@ -12,13 +12,13 @@ The following operations with [partitions](../../../engines/table-engines/merget - [ATTACH PARTITION\|PART](#attach-partitionpart) — Adds a partition or part from the `detached` directory to the table. - [ATTACH PARTITION FROM](#attach-partition-from) — Copies the data partition from one table to another and adds. - [REPLACE PARTITION](#replace-partition) — Copies the data partition from one table to another and replaces. -- [MOVE PARTITION TO TABLE](#move_to_table-partition) — Moves the data partition from one table to another. -- [CLEAR COLUMN IN PARTITION](#clear-column-partition) — Resets the value of a specified column in a partition. -- [CLEAR INDEX IN PARTITION](#clear-index-partition) — Resets the specified secondary index in a partition. +- [MOVE PARTITION TO TABLE](#move-partition-to-table) — Moves the data partition from one table to another. +- [CLEAR COLUMN IN PARTITION](#clear-column-in-partition) — Resets the value of a specified column in a partition. +- [CLEAR INDEX IN PARTITION](#clear-index-in-partition) — Resets the specified secondary index in a partition. - [FREEZE PARTITION](#freeze-partition) — Creates a backup of a partition. - [UNFREEZE PARTITION](#unfreeze-partition) — Removes a backup of a partition. -- [FETCH PARTITION\|PART](#fetch-partition) — Downloads a part or partition from another server. -- [MOVE PARTITION\|PART](#move-partition) — Move partition/data part to another disk or volume. +- [FETCH PARTITION\|PART](#fetch-partitionpart) — Downloads a part or partition from another server. +- [MOVE PARTITION\|PART](#move-partitionpart) — Move partition/data part to another disk or volume. - [UPDATE IN PARTITION](#update-in-partition) — Update data inside the partition by condition. - [DELETE IN PARTITION](#delete-in-partition) — Delete data inside the partition by condition. From 901e8cfc6c48fcdfb070d68402487a5fd589dab6 Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Sat, 25 Jun 2022 11:24:11 +0200 Subject: [PATCH 244/525] Update test.py --- tests/integration/test_storage_rabbitmq/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_storage_rabbitmq/test.py b/tests/integration/test_storage_rabbitmq/test.py index a3e48f2a620..64f104dd4ff 100644 --- a/tests/integration/test_storage_rabbitmq/test.py +++ b/tests/integration/test_storage_rabbitmq/test.py @@ -2780,5 +2780,5 @@ def test_rabbitmq_msgpack(rabbitmq_cluster): try_no = try_no + 1 if try_no == 20: break - sleep(1) + time.sleep(1) assert result.strip() == "kek" From a6e868dddc0f973b3aa4a11c32f7a32abe540b91 Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Sat, 25 Jun 2022 11:26:08 +0200 Subject: [PATCH 245/525] Update RabbitMQSource.cpp --- src/Storages/RabbitMQ/RabbitMQSource.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Storages/RabbitMQ/RabbitMQSource.cpp b/src/Storages/RabbitMQ/RabbitMQSource.cpp index bbcbaa2b32b..1f5778465f8 100644 --- a/src/Storages/RabbitMQ/RabbitMQSource.cpp +++ b/src/Storages/RabbitMQ/RabbitMQSource.cpp @@ -140,6 +140,8 @@ Chunk RabbitMQSource::generateImpl() size_t total_rows = 0; + buffer->allowNext(); + while (true) { auto new_rows = executor.execute(); From 9bc23f579e6aa3b2b5317a8512fb3355d9704931 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 06:07:41 +0200 Subject: [PATCH 246/525] Automated hardware benchmark --- benchmark/hardware.sh | 61 +++++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 14 deletions(-) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index 374f2c515de..c67ba2bb09c 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -58,6 +58,7 @@ echo echo "Will perform benchmark. Results:" echo +QUERY_NUM=1 cat "$QUERIES_FILE" | sed "s/{table}/hits/g" | while read query; do sync if [ "${OS}" = "Darwin" ] @@ -72,8 +73,12 @@ cat "$QUERIES_FILE" | sed "s/{table}/hits/g" | while read query; do RES=$(./clickhouse client --time --format=Null --query="$query" 2>&1 ||:) [[ "$?" == "0" ]] && echo -n "${RES}" || echo -n "null" [[ "$i" != $TRIES ]] && echo -n ", " + + echo "${QUERY_NUM},${i},${RES}" >> result.csv done echo "]," + + QUERY_NUM=$((QUERY_NUM + 1)) done @@ -81,22 +86,23 @@ echo echo "Benchmark complete. System info:" echo +touch {cpu_model,cpu,df,memory,memory_total,blk,mdstat,instance}.txt + if [ "${OS}" = "Darwin" ] then echo '----Version, build id-----------' ./clickhouse local --query "SELECT format('Version: {}', version())" - sw_vers | grep BuildVersion ./clickhouse local --query "SELECT format('The number of threads is: {}', value) FROM system.settings WHERE name = 'max_threads'" --output-format TSVRaw ./clickhouse local --query "SELECT format('Current time: {}', toString(now(), 'UTC'))" echo '----CPU-------------------------' - sysctl hw.model - sysctl -a | grep -E 'hw.activecpu|hw.memsize|hw.byteorder|cachesize' + sysctl hw.model | tee cpu_model.txt + sysctl -a | grep -E 'hw.activecpu|hw.memsize|hw.byteorder|cachesize' | tee cpu.txt echo '----Disk Free and Total--------' - df -h . + df -h . | tee df.txt echo '----Memory Free and Total-------' - vm_stat + vm_stat | tee memory.txt echo '----Physical Memory Amount------' - ls -l /var/vm + ls -l /var/vm | tee memory_total.txt echo '--------------------------------' else echo '----Version, build id-----------' @@ -104,22 +110,49 @@ else ./clickhouse local --query "SELECT format('The number of threads is: {}', value) FROM system.settings WHERE name = 'max_threads'" --output-format TSVRaw ./clickhouse local --query "SELECT format('Current time: {}', toString(now(), 'UTC'))" echo '----CPU-------------------------' - cat /proc/cpuinfo | grep -i -F 'model name' | uniq - lscpu + cat /proc/cpuinfo | grep -i -F 'model name' | uniq | tee cpu_model.txt + lscpu | tee cpu.txt echo '----Block Devices---------------' - lsblk + lsblk | tee blk.txt echo '----Disk Free and Total--------' - df -h . + df -h . | tee df.txt echo '----Memory Free and Total-------' - free -h + free -h | tee memory.txt echo '----Physical Memory Amount------' - cat /proc/meminfo | grep MemTotal + cat /proc/meminfo | grep MemTotal | tee memory_total.txt echo '----RAID Info-------------------' - cat /proc/mdstat + cat /proc/mdstat| tee mdstat.txt echo '--------------------------------' fi echo echo "Instance type from IMDS (if available):" -curl --connect-timeout 1 http://169.254.169.254/latest/meta-data/instance-type +curl -s --connect-timeout 1 'http://169.254.169.254/latest/meta-data/instance-type' | tee instance.txt echo + +echo "Uploading the results (if possible)" + +./clickhouse local --query " + SELECT + (SELECT generateUUIDv4()) AS test_id, + c1 AS query_num, + c2 AS try_num, + c3 AS time, + version() AS version, + now() AS test_time, + (SELECT value FROM system.settings WHERE name = 'max_threads') AS threads, + filesystemCapacity() AS fs_capacity, + filesystemAvailable() AS fs_available, + file('cpu_model.txt') AS cpu_model, + file('cpu.txt') AS cpu, + file('df.txt') AS df, + file('memory.txt') AS memory, + file('memory_total.txt') AS memory_total, + file('blk.txt') AS blk, + file('mdstat.txt') AS mdstat, + file('instance.txt') AS instance + FROM file('result.csv') +" | tee upload.tsv | ./clickhouse client --host play.clickhouse.com --secure --user benchmark --query " + INSERT INTO hardware_benchmark_results + (test_id, query_num, try_num, time, version, test_time, threads, fs_capacity, fs_available, cpu_model, cpu, df, memory, memory_total, blk, mdstat, instance) + FORMAT TSV" From d4b9d5f067cf388a1d4497ecf4689c38f3ff53d9 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 07:05:56 +0200 Subject: [PATCH 247/525] Automatic upload from hardware benchmark --- benchmark/benchmark.sh | 180 --------------------------------------- benchmark/create_dump.sh | 3 - benchmark/hardware.sh | 72 ++++++++++++++-- 3 files changed, 64 insertions(+), 191 deletions(-) delete mode 100755 benchmark/benchmark.sh delete mode 100755 benchmark/create_dump.sh diff --git a/benchmark/benchmark.sh b/benchmark/benchmark.sh deleted file mode 100755 index 5fea1bfbb88..00000000000 --- a/benchmark/benchmark.sh +++ /dev/null @@ -1,180 +0,0 @@ -#!/usr/bin/env bash -# script to run query to databases - -function usage() -{ - cat < /proc/sys/vm/drop_caches" - - if [[ "$restart_server_each_query" == "1" && "$use_service" == "1" ]]; then - echo "restart server: $etc_init_d_service restart" - sudo $etc_init_d_service restart - fi - - for i in $(seq $TIMES) - do - if [[ -f $etc_init_d_service && "$use_service" == "1" ]]; then - sudo $etc_init_d_service status - server_status=$? - expect -f $expect_file "" - - if [[ "$?" != "0" || $server_status != "0" ]]; then - echo "restart server: $etc_init_d_service restart" - sudo $etc_init_d_service restart - fi - - #wait until can connect to server - restart_timer=0 - restart_limit=60 - expect -f $expect_file "" &> /dev/null - while [ "$?" != "0" ]; do - echo "waiting" - sleep 1 - let "restart_timer = $restart_timer + 1" - if (( $restart_limit < $restart_timer )); then - sudo $etc_init_d_service restart - restart_timer=0 - fi - expect -f $expect_file "" &> /dev/null - done - fi - - echo - echo "times: $i" - - echo "query:" "$query" - expect -f $expect_file "$query" - - done - fi - - let "index = $index + 1" - done -} - -temp_test_file=temp_queries_$table_name -cat $test_file | sed s/$table_name_pattern/$table_name/g > $temp_test_file -mapfile -t test_queries < $temp_test_file - -echo "start time: $(date)" -time execute "${test_queries[@]}" -echo "stop time: $(date)" diff --git a/benchmark/create_dump.sh b/benchmark/create_dump.sh deleted file mode 100755 index 3e26f8c1426..00000000000 --- a/benchmark/create_dump.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -table=hits_10m; time clickhouse-client --max_bytes_before_external_sort=30000000000 --query="SELECT toInt64(WatchID), JavaEnable, Title, GoodEvent, (EventTime < toDateTime('1971-01-01 00:00:00') ? toDateTime('1971-01-01 00:00:01') : EventTime), (EventDate < toDate('1971-01-01') ? toDate('1971-01-01') : EventDate), CounterID, ClientIP, RegionID, toInt64(UserID), CounterClass, OS, UserAgent, URL, Referer, Refresh, RefererCategoryID, RefererRegionID, URLCategoryID, URLRegionID, ResolutionWidth, ResolutionHeight, ResolutionDepth, FlashMajor, FlashMinor, FlashMinor2, NetMajor, NetMinor, UserAgentMajor, UserAgentMinor, CookieEnable, JavascriptEnable, IsMobile, MobilePhone, MobilePhoneModel, Params, IPNetworkID, TraficSourceID, SearchEngineID, SearchPhrase, AdvEngineID, IsArtifical, WindowClientWidth, WindowClientHeight, ClientTimeZone, (ClientEventTime < toDateTime('1971-01-01 00:00:01') ? toDateTime('1971-01-01 00:00:01') : ClientEventTime), SilverlightVersion1, SilverlightVersion2, SilverlightVersion3, SilverlightVersion4, PageCharset, CodeVersion, IsLink, IsDownload, IsNotBounce, toInt64(FUniqID), OriginalURL, HID, IsOldCounter, IsEvent, IsParameter, DontCountHits, WithHash, HitColor, (LocalEventTime < toDateTime('1971-01-01 00:00:01') ? toDateTime('1971-01-01 00:00:01') : LocalEventTime), Age, Sex, Income, Interests, Robotness, RemoteIP, WindowName, OpenerName, HistoryLength, BrowserLanguage, BrowserCountry, SocialNetwork, SocialAction, HTTPError, SendTiming, DNSTiming, ConnectTiming, ResponseStartTiming, ResponseEndTiming, FetchTiming, SocialSourceNetworkID, SocialSourcePage, ParamPrice, ParamOrderID, ParamCurrency, ParamCurrencyID, OpenstatServiceName, OpenstatCampaignID, OpenstatAdID, OpenstatSourceID, UTMSource, UTMMedium, UTMCampaign, UTMContent, UTMTerm, FromTag, HasGCLID, toInt64(RefererHash), toInt64(URLHash), CLID FROM $table ORDER BY rand()" | corrector_utf8 > /opt/dumps/${table}_corrected.tsv diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index c67ba2bb09c..5b8b822c25c 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -58,7 +58,9 @@ echo echo "Will perform benchmark. Results:" echo +>result.csv QUERY_NUM=1 + cat "$QUERIES_FILE" | sed "s/{table}/hits/g" | while read query; do sync if [ "${OS}" = "Darwin" ] @@ -132,12 +134,11 @@ echo echo "Uploading the results (if possible)" +UUID=$(clickhouse-local --query "SELECT generateUUIDv4()") + ./clickhouse local --query " SELECT - (SELECT generateUUIDv4()) AS test_id, - c1 AS query_num, - c2 AS try_num, - c3 AS time, + '${UUID}' AS run_id, version() AS version, now() AS test_time, (SELECT value FROM system.settings WHERE name = 'max_threads') AS threads, @@ -151,8 +152,63 @@ echo "Uploading the results (if possible)" file('blk.txt') AS blk, file('mdstat.txt') AS mdstat, file('instance.txt') AS instance +" | tee meta.tsv | ./clickhouse client --host play.clickhouse.com --secure --user benchmark --query " + INSERT INTO benchmark_runs + (run_id, version, test_time, threads, fs_capacity, fs_available, cpu_model, cpu, df, memory, memory_total, blk, mdstat, instance) + FORMAT TSV" || echo "Cannot upload results." + +./clickhouse local --query " + SELECT + '${UUID}' AS run_id, + c1 AS query_num, + c2 AS try_num, + c3 AS time FROM file('result.csv') -" | tee upload.tsv | ./clickhouse client --host play.clickhouse.com --secure --user benchmark --query " - INSERT INTO hardware_benchmark_results - (test_id, query_num, try_num, time, version, test_time, threads, fs_capacity, fs_available, cpu_model, cpu, df, memory, memory_total, blk, mdstat, instance) - FORMAT TSV" +" | tee results.tsv | ./clickhouse client --host play.clickhouse.com --secure --user benchmark --query " + INSERT INTO benchmark_results + (run_id, query_num, try_num, time) + FORMAT TSV" || echo "Cannot upload results. Please send the output to feedback@clickhouse.com" + +< Date: Sat, 25 Jun 2022 07:08:37 +0200 Subject: [PATCH 248/525] Slightly better --- benchmark/hardware.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index 5b8b822c25c..0e6e4db499f 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -40,7 +40,7 @@ if [[ $(./clickhouse client --query "EXISTS hits") == '1' && $(./clickhouse clie echo "Dataset already downloaded" else echo "Will download the dataset" - ./clickhouse client --max_insert_threads $(nproc || 4) --progress --query " + ./clickhouse client --receive_timeout 1000 --max_insert_threads $(nproc || 4) --progress --query " CREATE OR REPLACE TABLE hits ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) AS SELECT * FROM url('https://datasets.clickhouse.com/hits/native/hits_100m_obfuscated_{0..255}.native.zst')" @@ -51,7 +51,7 @@ if [[ $(./clickhouse client --query "SELECT count() FROM system.parts WHERE tabl echo "Dataset already prepared" else echo "Will prepare the dataset" - ./clickhouse client --query "OPTIMIZE TABLE hits FINAL" + ./clickhouse client --receive_timeout 1000 --query "OPTIMIZE TABLE hits FINAL" fi echo From 756fd0dac89337aefa063fd863ad6b9ea2ce5994 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 18:27:26 +0200 Subject: [PATCH 249/525] Automated hardware benchmark --- benchmark/hardware.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index 0e6e4db499f..e1d5c56b5a8 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -203,7 +203,7 @@ CREATE USER benchmark IDENTIFIED WITH no_password SETTINGS max_rows_to_read = 1, CREATE QUOTA benchmark KEYED BY ip_address -FOR RANDOMIZED INTERVAL 1 MINUTE MAX query_inserts = 1, written_bytes = 100000, +FOR RANDOMIZED INTERVAL 1 MINUTE MAX query_inserts = 4, written_bytes = 100000, FOR RANDOMIZED INTERVAL 1 HOUR MAX query_inserts = 10, written_bytes = 500000, FOR RANDOMIZED INTERVAL 1 DAY MAX query_inserts = 50, written_bytes = 2000000 TO benchmark; From abcefeeb417e0ad43ae144e7433cdc547f9a27e5 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Sat, 25 Jun 2022 23:15:59 +0200 Subject: [PATCH 250/525] cleanup --- .../AggregateFunctionUniqCombined.h | 6 +--- src/Common/HashTable/HashTable.h | 28 ++++++++----------- src/Common/HashTable/StringHashTable.h | 6 +--- src/Common/HashTable/TwoLevelHashTable.h | 6 +--- 4 files changed, 14 insertions(+), 32 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionUniqCombined.h b/src/AggregateFunctions/AggregateFunctionUniqCombined.h index 7d06665f96c..733ec8c39fe 100644 --- a/src/AggregateFunctions/AggregateFunctionUniqCombined.h +++ b/src/AggregateFunctions/AggregateFunctionUniqCombined.h @@ -72,11 +72,7 @@ namespace detail // Unlike HashTableGrower always grows to power of 2. struct UniqCombinedHashTableGrower : public HashTableGrower<> { - void increaseSize() - { - ++size_degree; - updateCachedValues(); - } + void increaseSize() { increaseSizeDegree(1); } }; template diff --git a/src/Common/HashTable/HashTable.h b/src/Common/HashTable/HashTable.h index 48017f63200..3d8b51eded2 100644 --- a/src/Common/HashTable/HashTable.h +++ b/src/Common/HashTable/HashTable.h @@ -234,17 +234,18 @@ class HashTableGrower size_t cached_mask = (1ULL << initial_size_degree) - 1; size_t cached_max_fill = 1ULL << (initial_size_degree - 1); - -protected: UInt8 size_degree = initial_size_degree; - void updateCachedValues() +public: + UInt8 sizeDegree() const { return size_degree; } + + void increaseSizeDegree(UInt8 delta) { + size_degree += delta; cached_mask = (1ULL << size_degree) - 1; cached_max_fill = 1ULL << (size_degree - 1); } -public: static constexpr auto initial_count = 1ULL << initial_size_degree; /// If collision resolution chains are contiguous, we can implement erase operation by moving the elements. @@ -253,24 +254,17 @@ public: /// The size of the hash table in the cells. size_t bufSize() const { return 1ULL << size_degree; } - size_t maxFill() const { return cached_max_fill; } - size_t mask() const { return cached_mask; } - /// From the hash value, get the cell number in the hash table. - size_t place(size_t x) const { return x & mask(); } + size_t place(size_t x) const { return x & cached_mask; } /// The next cell in the collision resolution chain. - size_t next(size_t pos) const { ++pos; return pos & mask(); } + size_t next(size_t pos) const { return (pos + 1) & cached_mask; } /// Whether the hash table is sufficiently full. You need to increase the size of the hash table, or remove something unnecessary from it. - bool overflow(size_t elems) const { return elems > maxFill(); } + bool overflow(size_t elems) const { return elems > cached_max_fill; } /// Increase the size of the hash table. - void increaseSize() - { - size_degree += size_degree >= 23 ? 1 : 2; - updateCachedValues(); - } + void increaseSize() { increaseSizeDegree(size_degree >= 23 ? 1 : 2); } /// Set the buffer size by the number of elements in the hash table. Used when deserializing a hash table. void set(size_t num_elems) @@ -280,13 +274,13 @@ public: : ((initial_size_degree > static_cast(log2(num_elems - 1)) + 2) ? initial_size_degree : (static_cast(log2(num_elems - 1)) + 2)); - updateCachedValues(); + increaseSizeDegree(0); } void setBufSize(size_t buf_size_) { size_degree = static_cast(log2(buf_size_ - 1) + 1); - updateCachedValues(); + increaseSizeDegree(0); } }; diff --git a/src/Common/HashTable/StringHashTable.h b/src/Common/HashTable/StringHashTable.h index 4bc4caf9b3e..e9d095a24c0 100644 --- a/src/Common/HashTable/StringHashTable.h +++ b/src/Common/HashTable/StringHashTable.h @@ -153,11 +153,7 @@ template struct StringHashTableGrower : public HashTableGrower { // Smooth growing for string maps - void increaseSize() - { - this->size_degree += 1; - this->updateCachedValues(); - } + void increaseSize() { this->increaseSizeDegree(1); } }; template diff --git a/src/Common/HashTable/TwoLevelHashTable.h b/src/Common/HashTable/TwoLevelHashTable.h index 073187454d6..c1fbfb4dbac 100644 --- a/src/Common/HashTable/TwoLevelHashTable.h +++ b/src/Common/HashTable/TwoLevelHashTable.h @@ -18,11 +18,7 @@ template struct TwoLevelHashTableGrower : public HashTableGrower { /// Increase the size of the hash table. - void increaseSize() - { - this->size_degree += this->size_degree >= 15 ? 1 : 2; - this->updateCachedValues(); - } + void increaseSize() { this->increaseSizeDegree(this->sizeDegree() >= 15 ? 1 : 2); } }; template From 37903bfee00e20dd1721d9ad22e60570c90be1d5 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 25 Jun 2022 23:18:33 +0200 Subject: [PATCH 251/525] Fix after #38427 --- benchmark/hardware.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index e1d5c56b5a8..e8c9c58aca3 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -134,7 +134,7 @@ echo echo "Uploading the results (if possible)" -UUID=$(clickhouse-local --query "SELECT generateUUIDv4()") +UUID=$(./clickhouse local --query "SELECT generateUUIDv4()") ./clickhouse local --query " SELECT From 07f14c9bb295a054f7c3cfd07b66ee2c78eb8025 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sun, 26 Jun 2022 00:03:01 +0200 Subject: [PATCH 252/525] Disable vectorscan-on-ARM for now --- contrib/vectorscan-cmake/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contrib/vectorscan-cmake/CMakeLists.txt b/contrib/vectorscan-cmake/CMakeLists.txt index 140c174cd73..480ab3a384f 100644 --- a/contrib/vectorscan-cmake/CMakeLists.txt +++ b/contrib/vectorscan-cmake/CMakeLists.txt @@ -1,9 +1,11 @@ # We use vectorscan, a portable and API/ABI-compatible drop-in replacement for hyperscan. -if (ARCH_AMD64 OR ARCH_AARCH64) +if (ARCH_AMD64) option (ENABLE_VECTORSCAN "Enable vectorscan library" ${ENABLE_LIBRARIES}) endif() +# TODO: vectorscan supports ARM yet some tests involving cyrillic letters fail (PR #38171) ... needs further investigation + # TODO PPC should generally work but needs manual generation of ppc/config.h file on a PPC machine if (NOT ENABLE_VECTORSCAN) From 25cc406201f93b666dbb03771a0123a4820b7650 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 26 Jun 2022 01:29:06 +0300 Subject: [PATCH 253/525] Update src/Common/ThreadStatus.cpp Co-authored-by: Dmitry Novik --- src/Common/ThreadStatus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Common/ThreadStatus.cpp b/src/Common/ThreadStatus.cpp index 37331b91d56..a4f99c1be1a 100644 --- a/src/Common/ThreadStatus.cpp +++ b/src/Common/ThreadStatus.cpp @@ -149,7 +149,7 @@ ThreadStatus::ThreadStatus() ThreadStatus::~ThreadStatus() { if (untracked_memory > 0) - memory_tracker.allocImpl(untracked_memory, false); + memory_tracker.allocNoThrow(untracked_memory); else memory_tracker.free(-untracked_memory); From 725d80d470398f81e67fa9b89f824ec8d862805f Mon Sep 17 00:00:00 2001 From: kssenii Date: Sat, 25 Jun 2022 20:30:36 +0200 Subject: [PATCH 254/525] get rid of path separation --- src/Disks/DiskDecorator.h | 2 +- src/Disks/DiskRestartProxy.cpp | 4 +- src/Disks/DiskRestartProxy.h | 2 +- src/Disks/DiskWebServer.cpp | 4 +- src/Disks/DiskWebServer.h | 2 +- src/Disks/IDisk.h | 6 +-- src/Disks/IO/ReadBufferFromRemoteFSGather.cpp | 37 +++++++++++----- src/Disks/IO/ReadBufferFromRemoteFSGather.h | 32 +++++--------- src/Disks/IO/ReadBufferFromWebServer.h | 3 +- .../AzureBlobStorage/AzureObjectStorage.cpp | 20 +++++---- .../AzureBlobStorage/AzureObjectStorage.h | 22 +++++++--- .../ObjectStorages/DiskObjectStorage.cpp | 16 ++++--- src/Disks/ObjectStorages/DiskObjectStorage.h | 2 +- .../DiskObjectStorageMetadata.cpp | 18 ++++---- .../DiskObjectStorageMetadata.h | 8 ++-- ...jectStorageRemoteMetadataRestoreHelper.cpp | 14 +++--- .../DiskObjectStorageTransaction.cpp | 31 ++++++------- .../ObjectStorages/HDFS/HDFSObjectStorage.cpp | 31 +++++++------ .../ObjectStorages/HDFS/HDFSObjectStorage.h | 25 +++++++---- src/Disks/ObjectStorages/IMetadataStorage.h | 8 ++-- src/Disks/ObjectStorages/IObjectStorage.h | 43 +++++++++++-------- .../MetadataStorageFromDisk.cpp | 20 +++------ .../ObjectStorages/MetadataStorageFromDisk.h | 4 +- .../ObjectStorages/S3/S3ObjectStorage.cpp | 25 ++++++----- src/Disks/ObjectStorages/S3/S3ObjectStorage.h | 36 +++++++++++----- .../System/StorageSystemRemoteDataPaths.cpp | 4 +- 26 files changed, 233 insertions(+), 186 deletions(-) diff --git a/src/Disks/DiskDecorator.h b/src/Disks/DiskDecorator.h index 08a11cd3f03..e17a5aff3c7 100644 --- a/src/Disks/DiskDecorator.h +++ b/src/Disks/DiskDecorator.h @@ -75,7 +75,7 @@ public: void startup(ContextPtr context) override; void applyNewSettings(const Poco::Util::AbstractConfiguration & config, ContextPtr context, const String & config_prefix, const DisksMap & map) override; String getCacheBasePath() const override { return delegate->getCacheBasePath(); } - std::vector getRemotePaths(const String & path) const override { return delegate->getRemotePaths(path); } + PathsWithSize getObjectStoragePaths(const String & path) const override { return delegate->getObjectStoragePaths(path); } void getRemotePathsRecursive(const String & path, std::vector & paths_map) override { return delegate->getRemotePathsRecursive(path, paths_map); } MetadataStoragePtr getMetadataStorage() override { return delegate->getMetadataStorage(); } diff --git a/src/Disks/DiskRestartProxy.cpp b/src/Disks/DiskRestartProxy.cpp index 674179fa4a0..99dfc8e96a0 100644 --- a/src/Disks/DiskRestartProxy.cpp +++ b/src/Disks/DiskRestartProxy.cpp @@ -318,10 +318,10 @@ String DiskRestartProxy::getCacheBasePath() const return DiskDecorator::getCacheBasePath(); } -std::vector DiskRestartProxy::getRemotePaths(const String & path) const +PathsWithSize DiskRestartProxy::getObjectStoragePaths(const String & path) const { ReadLock lock (mutex); - return DiskDecorator::getRemotePaths(path); + return DiskDecorator::getObjectStoragePaths(path); } void DiskRestartProxy::getRemotePathsRecursive(const String & path, std::vector & paths_map) diff --git a/src/Disks/DiskRestartProxy.h b/src/Disks/DiskRestartProxy.h index 52d68806ab0..e483936c817 100644 --- a/src/Disks/DiskRestartProxy.h +++ b/src/Disks/DiskRestartProxy.h @@ -65,7 +65,7 @@ public: String getUniqueId(const String & path) const override; bool checkUniqueId(const String & id) const override; String getCacheBasePath() const override; - std::vector getRemotePaths(const String & path) const override; + PathsWithSize getObjectStoragePaths(const String & path) const override; void getRemotePathsRecursive(const String & path, std::vector & paths_map) override; void restart(ContextPtr context); diff --git a/src/Disks/DiskWebServer.cpp b/src/Disks/DiskWebServer.cpp index 64c020511a4..83cfbbb0150 100644 --- a/src/Disks/DiskWebServer.cpp +++ b/src/Disks/DiskWebServer.cpp @@ -170,10 +170,10 @@ std::unique_ptr DiskWebServer::readFile(const String & p auto remote_path = fs_path.parent_path() / (escapeForFileName(fs_path.stem()) + fs_path.extension().string()); remote_path = remote_path.string().substr(url.size()); - std::vector blobs_to_read; + PathsWithSize blobs_to_read; blobs_to_read.emplace_back(remote_path, iter->second.size); - auto web_impl = std::make_unique(url, path, blobs_to_read, getContext(), read_settings); + auto web_impl = std::make_unique(url, blobs_to_read, getContext(), read_settings); if (read_settings.remote_fs_method == RemoteFSReadMethod::threadpool) { diff --git a/src/Disks/DiskWebServer.h b/src/Disks/DiskWebServer.h index 6182c97f70b..40754e71fa0 100644 --- a/src/Disks/DiskWebServer.h +++ b/src/Disks/DiskWebServer.h @@ -169,7 +169,7 @@ public: throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Disk {} is read-only", getName()); } - std::vector getRemotePaths(const String &) const override { return {}; } + PathsWithSize getObjectStoragePaths(const String &) const override { return {}; } void getRemotePathsRecursive(const String &, std::vector &) override {} diff --git a/src/Disks/IDisk.h b/src/Disks/IDisk.h index f441f0827fb..27cac7a5456 100644 --- a/src/Disks/IDisk.h +++ b/src/Disks/IDisk.h @@ -219,13 +219,13 @@ public: /// Returns a list of paths because for Log family engines there might be /// multiple files in remote fs for single clickhouse file. - virtual std::vector getRemotePaths(const String &) const + virtual PathsWithSize getObjectStoragePaths(const String &) const { - throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Method `getRemotePaths() not implemented for disk: {}`", getType()); + throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Method `getObjectStoragePaths() not implemented for disk: {}`", getType()); } /// For one local path there might be multiple remote paths in case of Log family engines. - using LocalPathWithRemotePaths = std::pair>; + using LocalPathWithRemotePaths = std::pair; virtual void getRemotePathsRecursive(const String &, std::vector &) { diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp index 19f3a12b38d..804fb69a8f5 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp @@ -40,7 +40,7 @@ SeekableReadBufferPtr ReadBufferFromRemoteFSGather::createImplementationBuffer(c appendFilesystemCacheLog(); } - current_file_path = fs::path(common_path_prefix) / path; + current_file_path = path; current_file_size = file_size; total_bytes_read_from_current_file = 0; @@ -50,18 +50,30 @@ SeekableReadBufferPtr ReadBufferFromRemoteFSGather::createImplementationBuffer(c #if USE_AWS_S3 SeekableReadBufferPtr ReadBufferFromS3Gather::createImplementationBufferImpl(const String & path, size_t file_size) { - auto remote_path = fs::path(common_path_prefix) / path; auto remote_file_reader_creator = [=, this]() { return std::make_unique( - client_ptr, bucket, remote_path, version_id, max_single_read_retries, - settings, /* use_external_buffer */true, /* offset */ 0, read_until_position, /* restricted_seek */true); + client_ptr, + bucket, + path, + version_id, + max_single_read_retries, + settings, + /* use_external_buffer */true, + /* offset */0, + read_until_position, + /* restricted_seek */true); }; if (with_cache) { return std::make_shared( - remote_path, settings.remote_fs_cache, remote_file_reader_creator, settings, query_id, read_until_position ? read_until_position : file_size); + path, + settings.remote_fs_cache, + remote_file_reader_creator, + settings, + query_id, + read_until_position ? read_until_position : file_size); } return remote_file_reader_creator(); @@ -82,24 +94,27 @@ SeekableReadBufferPtr ReadBufferFromAzureBlobStorageGather::createImplementation SeekableReadBufferPtr ReadBufferFromWebServerGather::createImplementationBufferImpl(const String & path, size_t /* file_size */) { current_file_path = path; - return std::make_unique(fs::path(uri) / path, context, settings, /* use_external_buffer */true, read_until_position); + return std::make_unique( + path, + context, + settings, + /* use_external_buffer */true, + read_until_position); } #if USE_HDFS SeekableReadBufferPtr ReadBufferFromHDFSGather::createImplementationBufferImpl(const String & path, size_t /* file_size */) { - return std::make_unique(hdfs_uri, fs::path(hdfs_directory) / path, config, settings.remote_fs_buffer_size); + return std::make_unique(hdfs_uri, path, config); } #endif ReadBufferFromRemoteFSGather::ReadBufferFromRemoteFSGather( - const std::string & common_path_prefix_, - const BlobsPathToSize & blobs_to_read_, + const PathsWithSize & blobs_to_read_, const ReadSettings & settings_) : ReadBuffer(nullptr, 0) - , common_path_prefix(common_path_prefix_) , blobs_to_read(blobs_to_read_) , settings(settings_) , query_id(CurrentThread::isInitialized() && CurrentThread::get().getQueryContext() != nullptr ? CurrentThread::getQueryId() : "") @@ -295,7 +310,7 @@ size_t ReadBufferFromRemoteFSGather::getFileSize() const { size_t size = 0; for (const auto & object : blobs_to_read) - size += object.bytes_size; + size += object.size; return size; } diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.h b/src/Disks/IO/ReadBufferFromRemoteFSGather.h index d6b1f9d9479..8edacfd36c9 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.h +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.h @@ -27,8 +27,7 @@ friend class ReadIndirectBufferFromRemoteFS; public: ReadBufferFromRemoteFSGather( - const std::string & common_path_prefix_, - const BlobsPathToSize & blobs_to_read_, + const PathsWithSize & blobs_to_read_, const ReadSettings & settings_); ~ReadBufferFromRemoteFSGather() override; @@ -54,9 +53,7 @@ public: protected: virtual SeekableReadBufferPtr createImplementationBufferImpl(const String & path, size_t file_size) = 0; - std::string common_path_prefix; - - BlobsPathToSize blobs_to_read; + PathsWithSize blobs_to_read; ReadSettings settings; @@ -112,11 +109,10 @@ public: std::shared_ptr client_ptr_, const String & bucket_, const String & version_id_, - const std::string & common_path_prefix_, - const BlobsPathToSize & blobs_to_read_, + const PathsWithSize & blobs_to_read_, size_t max_single_read_retries_, const ReadSettings & settings_) - : ReadBufferFromRemoteFSGather(common_path_prefix_, blobs_to_read_, settings_) + : ReadBufferFromRemoteFSGather(blobs_to_read_, settings_) , client_ptr(std::move(client_ptr_)) , bucket(bucket_) , version_id(version_id_) @@ -142,12 +138,11 @@ class ReadBufferFromAzureBlobStorageGather final : public ReadBufferFromRemoteFS public: ReadBufferFromAzureBlobStorageGather( std::shared_ptr blob_container_client_, - const std::string & common_path_prefix_, - const BlobsPathToSize & blobs_to_read_, + const PathsWithSize & blobs_to_read_, size_t max_single_read_retries_, size_t max_single_download_retries_, const ReadSettings & settings_) - : ReadBufferFromRemoteFSGather(common_path_prefix_, blobs_to_read_, settings_) + : ReadBufferFromRemoteFSGather(blobs_to_read_, settings_) , blob_container_client(blob_container_client_) , max_single_read_retries(max_single_read_retries_) , max_single_download_retries(max_single_download_retries_) @@ -169,11 +164,10 @@ class ReadBufferFromWebServerGather final : public ReadBufferFromRemoteFSGather public: ReadBufferFromWebServerGather( const String & uri_, - const std::string & common_path_prefix_, - const BlobsPathToSize & blobs_to_read_, + const PathsWithSize & blobs_to_read_, ContextPtr context_, const ReadSettings & settings_) - : ReadBufferFromRemoteFSGather(common_path_prefix_, blobs_to_read_, settings_) + : ReadBufferFromRemoteFSGather(blobs_to_read_, settings_) , uri(uri_) , context(context_) { @@ -195,15 +189,12 @@ public: ReadBufferFromHDFSGather( const Poco::Util::AbstractConfiguration & config_, const String & hdfs_uri_, - const std::string & common_path_prefix_, - const BlobsPathToSize & blobs_to_read_, + const PathsWithSize & blobs_to_read_, const ReadSettings & settings_) - : ReadBufferFromRemoteFSGather(common_path_prefix_, blobs_to_read_, settings_) + : ReadBufferFromRemoteFSGather(blobs_to_read_, settings_) , config(config_) + , hdfs_uri(hdfs_uri_) { - const size_t begin_of_path = hdfs_uri_.find('/', hdfs_uri_.find("//") + 2); - hdfs_directory = hdfs_uri_.substr(begin_of_path); - hdfs_uri = hdfs_uri_.substr(0, begin_of_path); } SeekableReadBufferPtr createImplementationBufferImpl(const String & path, size_t file_size) override; @@ -211,7 +202,6 @@ public: private: const Poco::Util::AbstractConfiguration & config; String hdfs_uri; - String hdfs_directory; }; #endif diff --git a/src/Disks/IO/ReadBufferFromWebServer.h b/src/Disks/IO/ReadBufferFromWebServer.h index ea746fb75a1..1e4219d53ee 100644 --- a/src/Disks/IO/ReadBufferFromWebServer.h +++ b/src/Disks/IO/ReadBufferFromWebServer.h @@ -19,7 +19,8 @@ class ReadBufferFromWebServer : public SeekableReadBuffer { public: explicit ReadBufferFromWebServer( - const String & url_, ContextPtr context_, + const String & url_, + ContextPtr context_, const ReadSettings & settings_ = {}, bool use_external_buffer_ = false, size_t read_until_position = 0); diff --git a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp index 4ea7c609a51..32fd285dcdb 100644 --- a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp +++ b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp @@ -67,16 +67,18 @@ std::unique_ptr AzureObjectStorage::readObject( /// NOLINT } std::unique_ptr AzureObjectStorage::readObjects( /// NOLINT - const std::string & common_path_prefix, - const BlobsPathToSize & blobs_to_read, + const PathsWithSize & paths_to_read, const ReadSettings & read_settings, std::optional, std::optional) const { auto settings_ptr = settings.get(); auto reader_impl = std::make_unique( - client.get(), common_path_prefix, blobs_to_read, - settings_ptr->max_single_read_retries, settings_ptr->max_single_download_retries, read_settings); + client.get(), + paths_to_read, + settings_ptr->max_single_read_retries, + settings_ptr->max_single_download_retries, + read_settings); if (read_settings.remote_fs_method == RemoteFSReadMethod::threadpool) { @@ -111,7 +113,7 @@ std::unique_ptr AzureObjectStorage::writeObject( /// NO return std::make_unique(std::move(buffer), std::move(finalize_callback), path); } -void AzureObjectStorage::listPrefix(const std::string & path, BlobsPathToSize & children) const +void AzureObjectStorage::listPrefix(const std::string & path, PathsWithSize & children) const { auto client_ptr = client.get(); @@ -134,10 +136,10 @@ void AzureObjectStorage::removeObject(const std::string & path) throw Exception(ErrorCodes::AZURE_BLOB_STORAGE_ERROR, "Failed to delete file in AzureBlob Storage: {}", path); } -void AzureObjectStorage::removeObjects(const std::vector & paths) +void AzureObjectStorage::removeObjects(const PathsWithSize & paths) { auto client_ptr = client.get(); - for (const auto & path : paths) + for (const auto & [path, _] : paths) { auto delete_info = client_ptr->DeleteBlob(path); if (!delete_info.Value.Deleted) @@ -151,10 +153,10 @@ void AzureObjectStorage::removeObjectIfExists(const std::string & path) auto delete_info = client_ptr->DeleteBlob(path); } -void AzureObjectStorage::removeObjectsIfExist(const std::vector & paths) +void AzureObjectStorage::removeObjectsIfExist(const PathsWithSize & paths) { auto client_ptr = client.get(); - for (const auto & path : paths) + for (const auto & [path, _] : paths) auto delete_info = client_ptr->DeleteBlob(path); } diff --git a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h index 37c3ba72ed9..559be0ad257 100644 --- a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h +++ b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h @@ -59,8 +59,7 @@ public: std::optional file_size = {}) const override; std::unique_ptr readObjects( /// NOLINT - const std::string & common_path_prefix, - const BlobsPathToSize & blobs_to_read, + const PathsWithSize & blobs_to_read, const ReadSettings & read_settings = ReadSettings{}, std::optional read_hint = {}, std::optional file_size = {}) const override; @@ -74,15 +73,16 @@ public: size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, const WriteSettings & write_settings = {}) override; - void listPrefix(const std::string & path, BlobsPathToSize & children) const override; + void listPrefix(const std::string & path, PathsWithSize & children) const override; + /// Remove file. Throws exception if file doesn't exists or it's a directory. void removeObject(const std::string & path) override; - void removeObjects(const std::vector & paths) override; + void removeObjects(const PathsWithSize & paths) override; void removeObjectIfExists(const std::string & path) override; - void removeObjectsIfExist(const std::vector & paths) override; + void removeObjectsIfExist(const PathsWithSize & paths) override; ObjectMetadata getObjectMetadata(const std::string & path) const override; @@ -95,11 +95,19 @@ public: void startup() override {} - void applyNewSettings(const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) override; + void applyNewSettings( + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, + ContextPtr context) override; String getObjectsNamespace() const override { return ""; } - std::unique_ptr cloneObjectStorage(const std::string & new_namespace, const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) override; + std::unique_ptr cloneObjectStorage( + const std::string & new_namespace, + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, + ContextPtr context) override; + private: const String name; diff --git a/src/Disks/ObjectStorages/DiskObjectStorage.cpp b/src/Disks/ObjectStorages/DiskObjectStorage.cpp index 0f2c320ed67..540672d9b0a 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorage.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorage.cpp @@ -108,9 +108,9 @@ DiskObjectStorage::DiskObjectStorage( , metadata_helper(std::make_unique(this, ReadSettings{})) {} -std::vector DiskObjectStorage::getRemotePaths(const String & local_path) const +PathsWithSize DiskObjectStorage::getObjectStoragePaths(const String & local_path) const { - return metadata_storage->getRemotePaths(local_path); + return metadata_storage->getObjectStoragePaths(local_path); } void DiskObjectStorage::getRemotePathsRecursive(const String & local_path, std::vector & paths_map) @@ -120,7 +120,7 @@ void DiskObjectStorage::getRemotePathsRecursive(const String & local_path, std:: { try { - paths_map.emplace_back(local_path, getRemotePaths(local_path)); + paths_map.emplace_back(local_path, getObjectStoragePaths(local_path)); } catch (const Exception & e) { @@ -244,9 +244,9 @@ String DiskObjectStorage::getUniqueId(const String & path) const { LOG_TRACE(log, "Remote path: {}, Path: {}", remote_fs_root_path, path); String id; - auto blobs_paths = metadata_storage->getRemotePaths(path); + auto blobs_paths = metadata_storage->getObjectStoragePaths(path); if (!blobs_paths.empty()) - id = blobs_paths[0]; + id = blobs_paths[0].path; return id; } @@ -438,7 +438,11 @@ std::unique_ptr DiskObjectStorage::readFile( std::optional read_hint, std::optional file_size) const { - return object_storage->readObjects(remote_fs_root_path, metadata_storage->getBlobs(path), settings, read_hint, file_size); + return object_storage->readObjects( + metadata_storage->getObjectStoragePaths(path), + settings, + read_hint, + file_size); } std::unique_ptr DiskObjectStorage::writeFile( diff --git a/src/Disks/ObjectStorages/DiskObjectStorage.h b/src/Disks/ObjectStorages/DiskObjectStorage.h index b1a1d263ede..ef29dc8f071 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorage.h +++ b/src/Disks/ObjectStorages/DiskObjectStorage.h @@ -49,7 +49,7 @@ public: const String & getPath() const override { return metadata_storage->getPath(); } - std::vector getRemotePaths(const String & local_path) const override; + PathsWithSize getObjectStoragePaths(const String & local_path) const override; void getRemotePathsRecursive(const String & local_path, std::vector & paths_map) override; diff --git a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp index 6ed049b865d..6763e37ed69 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp @@ -26,14 +26,14 @@ void DiskObjectStorageMetadata::deserialize(ReadBuffer & buf) assertChar('\n', buf); - UInt32 remote_fs_objects_count; - readIntText(remote_fs_objects_count, buf); + UInt32 storage_objects_count; + readIntText(storage_objects_count, buf); assertChar('\t', buf); readIntText(total_size, buf); assertChar('\n', buf); - remote_fs_objects.resize(remote_fs_objects_count); + storage_objects.resize(storage_objects_count); - for (size_t i = 0; i < remote_fs_objects_count; ++i) + for (size_t i = 0; i < storage_objects_count; ++i) { String remote_fs_object_path; size_t remote_fs_object_size; @@ -50,8 +50,8 @@ void DiskObjectStorageMetadata::deserialize(ReadBuffer & buf) remote_fs_object_path = remote_fs_object_path.substr(remote_fs_root_path.size()); } assertChar('\n', buf); - remote_fs_objects[i].relative_path = remote_fs_object_path; - remote_fs_objects[i].bytes_size = remote_fs_object_size; + storage_objects[i].path = remote_fs_object_path; + storage_objects[i].size = remote_fs_object_size; } readIntText(ref_count, buf); @@ -75,12 +75,12 @@ void DiskObjectStorageMetadata::serialize(WriteBuffer & buf, bool sync) const writeIntText(VERSION_READ_ONLY_FLAG, buf); writeChar('\n', buf); - writeIntText(remote_fs_objects.size(), buf); + writeIntText(storage_objects.size(), buf); writeChar('\t', buf); writeIntText(total_size, buf); writeChar('\n', buf); - for (const auto & [remote_fs_object_path, remote_fs_object_size] : remote_fs_objects) + for (const auto & [remote_fs_object_path, remote_fs_object_size] : storage_objects) { writeIntText(remote_fs_object_size, buf); writeChar('\t', buf); @@ -120,7 +120,7 @@ DiskObjectStorageMetadata::DiskObjectStorageMetadata( void DiskObjectStorageMetadata::addObject(const String & path, size_t size) { total_size += size; - remote_fs_objects.emplace_back(path, size); + storage_objects.emplace_back(path, size); } diff --git a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h index 27df9e57cf4..14dd819b4f8 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h @@ -19,8 +19,8 @@ private: const std::string & common_metadata_path; - /// Remote FS objects paths and their sizes. - std::vector remote_fs_objects; + /// Relative paths of blobs. + std::vector storage_objects; /// URI const std::string & remote_fs_root_path; @@ -60,9 +60,9 @@ public: return remote_fs_root_path; } - std::vector getBlobs() const + std::vector getBlobs() const { - return remote_fs_objects; + return storage_objects; } bool isReadOnly() const diff --git a/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp b/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp index 96667b8496a..f820d06646a 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp @@ -84,13 +84,13 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::migrateFileToRestorableSchema { LOG_TRACE(disk->log, "Migrate file {} to restorable schema", disk->metadata_storage->getPath() + path); - auto blobs = disk->metadata_storage->getBlobs(path); - for (const auto & [key, _] : blobs) + auto objects = disk->metadata_storage->getObjectStoragePaths(path); + for (const auto & [object_path, size] : objects) { ObjectAttributes metadata { {"path", path} }; - updateObjectMetadata(disk->remote_fs_root_path + key, metadata); + updateObjectMetadata(object_path, metadata); } } void DiskObjectStorageRemoteMetadataRestoreHelper::migrateToRestorableSchemaRecursive(const String & path, Futures & results) @@ -346,7 +346,7 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::restoreFiles(IObjectStorage * LOG_INFO(disk->log, "Starting restore files for disk {}", disk->name); std::vector> results; - auto restore_files = [this, &source_object_storage, &restore_information, &results](const BlobsPathToSize & keys) + auto restore_files = [this, &source_object_storage, &restore_information, &results](const PathsWithSize & keys) { std::vector keys_names; for (const auto & [key, size] : keys) @@ -379,7 +379,7 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::restoreFiles(IObjectStorage * return true; }; - BlobsPathToSize children; + PathsWithSize children; source_object_storage->listPrefix(restore_information.source_path, children); restore_files(children); @@ -456,7 +456,7 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::restoreFileOperations(IObject bool send_metadata = source_object_storage->getObjectsNamespace() != disk->object_storage->getObjectsNamespace() || disk->remote_fs_root_path != restore_information.source_path; std::set renames; - auto restore_file_operations = [this, &source_object_storage, &restore_information, &renames, &send_metadata](const BlobsPathToSize & keys) + auto restore_file_operations = [this, &source_object_storage, &restore_information, &renames, &send_metadata](const PathsWithSize & keys) { const String rename = "rename"; const String hardlink = "hardlink"; @@ -523,7 +523,7 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::restoreFileOperations(IObject return true; }; - BlobsPathToSize children; + PathsWithSize children; source_object_storage->listPrefix(restore_information.source_path + "operations/", children); restore_file_operations(children); diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index cd43ea81be0..1d16012437a 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -65,7 +65,7 @@ struct RemoveObjectStorageOperation final : public IDiskObjectStorageOperation std::string path; bool delete_metadata_only; bool remove_from_cache{false}; - std::vector paths_to_remove; + PathsWithSize paths_to_remove; bool if_exists; RemoveObjectStorageOperation( @@ -96,13 +96,13 @@ struct RemoveObjectStorageOperation final : public IDiskObjectStorageOperation try { uint32_t hardlink_count = metadata_storage.getHardlinkCount(path); - auto remote_objects = metadata_storage.getRemotePaths(path); + auto objects = metadata_storage.getObjectStoragePaths(path); tx->unlinkMetadata(path); if (hardlink_count == 0) { - paths_to_remove = remote_objects; + paths_to_remove = objects; remove_from_cache = true; } } @@ -134,7 +134,7 @@ struct RemoveObjectStorageOperation final : public IDiskObjectStorageOperation if (remove_from_cache) { for (const auto & path_to_remove : paths_to_remove) - object_storage.removeFromCache(path_to_remove); + object_storage.removeFromCache(path_to_remove.path); } } @@ -143,10 +143,10 @@ struct RemoveObjectStorageOperation final : public IDiskObjectStorageOperation struct RemoveRecursiveObjectStorageOperation final : public IDiskObjectStorageOperation { std::string path; - std::unordered_map> paths_to_remove; + std::unordered_map paths_to_remove; bool keep_all_batch_data; NameSet file_names_remove_metadata_only; - std::vector path_to_remove_from_cache; + PathsWithSize path_to_remove_from_cache; RemoveRecursiveObjectStorageOperation( IObjectStorage & object_storage_, @@ -169,14 +169,14 @@ struct RemoveRecursiveObjectStorageOperation final : public IDiskObjectStorageOp try { uint32_t hardlink_count = metadata_storage.getHardlinkCount(path_to_remove); - auto remote_objects = metadata_storage.getRemotePaths(path_to_remove); + auto objects_paths = metadata_storage.getObjectStoragePaths(path_to_remove); tx->unlinkMetadata(path_to_remove); if (hardlink_count == 0) { - paths_to_remove[path_to_remove] = remote_objects; - path_to_remove_from_cache.insert(path_to_remove_from_cache.end(), remote_objects.begin(), remote_objects.end()); + paths_to_remove[path_to_remove] = objects_paths; + path_to_remove_from_cache.insert(path_to_remove_from_cache.end(), objects_paths.begin(), objects_paths.end()); } } @@ -217,7 +217,7 @@ struct RemoveRecursiveObjectStorageOperation final : public IDiskObjectStorageOp { if (!keep_all_batch_data) { - std::vector remove_from_remote; + PathsWithSize remove_from_remote; for (auto && [local_path, remote_paths] : paths_to_remove) { if (!file_names_remove_metadata_only.contains(fs::path(local_path).filename())) @@ -228,7 +228,7 @@ struct RemoveRecursiveObjectStorageOperation final : public IDiskObjectStorageOp object_storage.removeObjects(remove_from_remote); } - for (const auto & path_to_remove : path_to_remove_from_cache) + for (const auto & [path_to_remove, _] : path_to_remove_from_cache) object_storage.removeFromCache(path_to_remove); } }; @@ -238,7 +238,7 @@ struct ReplaceFileObjectStorageOperation final : public IDiskObjectStorageOperat { std::string path_from; std::string path_to; - std::vector blobs_to_remove; + PathsWithSize blobs_to_remove; ReplaceFileObjectStorageOperation( IObjectStorage & object_storage_, @@ -254,7 +254,7 @@ struct ReplaceFileObjectStorageOperation final : public IDiskObjectStorageOperat { if (metadata_storage.exists(path_to)) { - blobs_to_remove = metadata_storage.getRemotePaths(path_to); + blobs_to_remove = metadata_storage.getObjectStoragePaths(path_to); tx->replaceFile(path_from, path_to); } else @@ -328,14 +328,15 @@ struct CopyFileObjectStorageOperation final : public IDiskObjectStorageOperation void execute(MetadataTransactionPtr tx) override { tx->createEmptyMetadataFile(to_path); - auto source_blobs = metadata_storage.getBlobs(from_path); + auto source_blobs = metadata_storage.getObjectStoragePaths(from_path); /// Full paths + for (const auto & [blob_from, size] : source_blobs) { auto blob_name = getRandomASCIIString(); auto blob_to = fs::path(remote_fs_root_path) / blob_name; - object_storage.copyObject(fs::path(remote_fs_root_path) / blob_from, blob_to); + object_storage.copyObject(blob_from, blob_to); tx->addBlobToMetadata(to_path, blob_name, size); diff --git a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp index 4574b8cb52c..024d1e84ef0 100644 --- a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp +++ b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp @@ -49,13 +49,12 @@ std::unique_ptr HDFSObjectStorage::readObject( /// NOLINT } std::unique_ptr HDFSObjectStorage::readObjects( /// NOLINT - const std::string & common_path_prefix, - const BlobsPathToSize & blobs_to_read, + const PathsWithSize & paths_to_read, const ReadSettings & read_settings, std::optional, std::optional) const { - auto hdfs_impl = std::make_unique(config, common_path_prefix, common_path_prefix, blobs_to_read, read_settings); + auto hdfs_impl = std::make_unique(config, hdfs_root_path, paths_to_read, read_settings); auto buf = std::make_unique(std::move(hdfs_impl)); return std::make_unique(std::move(buf), settings->min_bytes_for_seek); } @@ -69,7 +68,9 @@ std::unique_ptr HDFSObjectStorage::writeObject( /// NOL const WriteSettings &) { if (attributes.has_value()) - throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "HDFS API doesn't support custom attributes/metadata for stored objects"); + throw Exception( + ErrorCodes::UNSUPPORTED_METHOD, + "HDFS API doesn't support custom attributes/metadata for stored objects"); /// Single O_WRONLY in libhdfs adds O_TRUNC auto hdfs_buffer = std::make_unique( @@ -80,7 +81,7 @@ std::unique_ptr HDFSObjectStorage::writeObject( /// NOL } -void HDFSObjectStorage::listPrefix(const std::string & path, BlobsPathToSize & children) const +void HDFSObjectStorage::listPrefix(const std::string & path, PathsWithSize & children) const { const size_t begin_of_path = path.find('/', path.find("//") + 2); int32_t num_entries; @@ -104,10 +105,10 @@ void HDFSObjectStorage::removeObject(const std::string & path) } -void HDFSObjectStorage::removeObjects(const std::vector & paths) +void HDFSObjectStorage::removeObjects(const PathsWithSize & paths) { - for (const auto & hdfs_path : paths) - removeObject(hdfs_path); + for (const auto & [path, _] : paths) + removeObject(path); } void HDFSObjectStorage::removeObjectIfExists(const std::string & path) @@ -116,15 +117,17 @@ void HDFSObjectStorage::removeObjectIfExists(const std::string & path) removeObject(path); } -void HDFSObjectStorage::removeObjectsIfExist(const std::vector & paths) +void HDFSObjectStorage::removeObjectsIfExist(const PathsWithSize & paths) { - for (const auto & hdfs_path : paths) - removeObjectIfExists(hdfs_path); + for (const auto & [path, _] : paths) + removeObjectIfExists(path); } ObjectMetadata HDFSObjectStorage::getObjectMetadata(const std::string &) const { - throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "HDFS API doesn't support custom attributes/metadata for stored objects"); + throw Exception( + ErrorCodes::UNSUPPORTED_METHOD, + "HDFS API doesn't support custom attributes/metadata for stored objects"); } void HDFSObjectStorage::copyObject( /// NOLINT @@ -133,7 +136,9 @@ void HDFSObjectStorage::copyObject( /// NOLINT std::optional object_to_attributes) { if (object_to_attributes.has_value()) - throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "HDFS API doesn't support custom attributes/metadata for stored objects"); + throw Exception( + ErrorCodes::UNSUPPORTED_METHOD, + "HDFS API doesn't support custom attributes/metadata for stored objects"); auto in = readObject(object_from); auto out = writeObject(object_to, WriteMode::Rewrite); diff --git a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h index a9a223a3d7e..221a77ff08b 100644 --- a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h +++ b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h @@ -50,6 +50,7 @@ public: , hdfs_builder(createHDFSBuilder(hdfs_root_path_, config)) , hdfs_fs(createHDFSFS(hdfs_builder.get())) , settings(std::move(settings_)) + , hdfs_root_path(hdfs_root_path_) {} bool exists(const std::string & hdfs_uri) const override; @@ -61,8 +62,7 @@ public: std::optional file_size = {}) const override; std::unique_ptr readObjects( /// NOLINT - const std::string & common_path_prefix, - const BlobsPathToSize & blobs_to_read, + const PathsWithSize & paths_to_read, const ReadSettings & read_settings = ReadSettings{}, std::optional read_hint = {}, std::optional file_size = {}) const override; @@ -76,15 +76,16 @@ public: size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, const WriteSettings & write_settings = {}) override; - void listPrefix(const std::string & path, BlobsPathToSize & children) const override; + void listPrefix(const std::string & path, PathsWithSize & children) const override; + /// Remove file. Throws exception if file doesn't exists or it's a directory. void removeObject(const std::string & path) override; - void removeObjects(const std::vector & paths) override; + void removeObjects(const PathsWithSize & paths) override; void removeObjectIfExists(const std::string & path) override; - void removeObjectsIfExist(const std::vector & paths) override; + void removeObjectsIfExist(const PathsWithSize & paths) override; ObjectMetadata getObjectMetadata(const std::string & path) const override; @@ -97,11 +98,18 @@ public: void startup() override; - void applyNewSettings(const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) override; + void applyNewSettings( + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, + ContextPtr context) override; String getObjectsNamespace() const override { return ""; } - std::unique_ptr cloneObjectStorage(const std::string & new_namespace, const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) override; + std::unique_ptr cloneObjectStorage( + const std::string & new_namespace, + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, + ContextPtr context) override; private: const Poco::Util::AbstractConfiguration & config; @@ -110,8 +118,7 @@ private: HDFSFSPtr hdfs_fs; SettingsPtr settings; - - + String hdfs_root_path; }; } diff --git a/src/Disks/ObjectStorages/IMetadataStorage.h b/src/Disks/ObjectStorages/IMetadataStorage.h index fbf611df1ac..49f4d4bcc51 100644 --- a/src/Disks/ObjectStorages/IMetadataStorage.h +++ b/src/Disks/ObjectStorages/IMetadataStorage.h @@ -119,11 +119,9 @@ public: /// Read multiple metadata files into strings and return mapping from file_path -> metadata virtual std::unordered_map getSerializedMetadata(const std::vector & file_paths) const = 0; - /// Return list of paths corresponding to metadata stored in local path - virtual std::vector getRemotePaths(const std::string & path) const = 0; - - /// Return [(remote_path, size_in_bytes), ...] for metadata path - virtual BlobsPathToSize getBlobs(const std::string & path) const = 0; + /// Return [(object_storage_path, size_in_bytes), ...] for metadata path + /// object_storage_path is a full path to the blob. + virtual PathsWithSize getObjectStoragePaths(const std::string & path) const = 0; }; using MetadataStoragePtr = std::shared_ptr; diff --git a/src/Disks/ObjectStorages/IObjectStorage.h b/src/Disks/ObjectStorages/IObjectStorage.h index 4921059c6b7..864b9ae8caa 100644 --- a/src/Disks/ObjectStorages/IObjectStorage.h +++ b/src/Disks/ObjectStorages/IObjectStorage.h @@ -25,23 +25,23 @@ class WriteBufferFromFileBase; using ObjectAttributes = std::map; -/// Path to blob with it's size -struct BlobPathWithSize +/// Path to a file and its size. +/// Path can be either relative or absolute - according to the context of use. +struct PathWithSize { - std::string relative_path; - uint64_t bytes_size; + std::string path; + uint64_t size; /// Size in bytes - BlobPathWithSize() = default; - BlobPathWithSize(const BlobPathWithSize & other) = default; + PathWithSize() = default; - BlobPathWithSize(const std::string & relative_path_, uint64_t bytes_size_) - : relative_path(relative_path_) - , bytes_size(bytes_size_) + PathWithSize(const std::string & path_, uint64_t size_) + : path(path_) + , size(size_) {} }; -/// List of blobs with their sizes -using BlobsPathToSize = std::vector; +/// List of paths with their sizes +using PathsWithSize = std::vector; struct ObjectMetadata { @@ -65,8 +65,8 @@ public: /// Path exists or not virtual bool exists(const std::string & path) const = 0; - /// List on prefix, return children with their sizes. - virtual void listPrefix(const std::string & path, BlobsPathToSize & children) const = 0; + /// List on prefix, return children (relative paths) with their sizes. + virtual void listPrefix(const std::string & path, PathsWithSize & children) const = 0; /// Get object metadata if supported. It should be possible to receive /// at least size of object @@ -81,8 +81,7 @@ public: /// Read multiple objects with common prefix virtual std::unique_ptr readObjects( /// NOLINT - const std::string & common_path_prefix, - const BlobsPathToSize & blobs_to_read, + const PathsWithSize & paths_to_read, const ReadSettings & read_settings = ReadSettings{}, std::optional read_hint = {}, std::optional file_size = {}) const = 0; @@ -101,13 +100,13 @@ public: /// Remove multiple objects. Some object storages can do batch remove in a more /// optimal way. - virtual void removeObjects(const std::vector & paths) = 0; + virtual void removeObjects(const PathsWithSize & paths) = 0; /// Remove object on path if exists virtual void removeObjectIfExists(const std::string & path) = 0; /// Remove objects on path if exists - virtual void removeObjectsIfExist(const std::vector & paths) = 0; + virtual void removeObjectsIfExist(const PathsWithSize & paths) = 0; /// Copy object with different attributes if required virtual void copyObject( /// NOLINT @@ -140,7 +139,10 @@ public: void removeFromCache(const std::string & path); /// Apply new settings, in most cases reiniatilize client and some other staff - virtual void applyNewSettings(const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) = 0; + virtual void applyNewSettings( + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, + ContextPtr context) = 0; /// Sometimes object storages have something similar to chroot or namespace, for example /// buckets in S3. If object storage doesn't have any namepaces return empty string. @@ -148,7 +150,10 @@ public: /// FIXME: confusing function required for a very specific case. Create new instance of object storage /// in different namespace. - virtual std::unique_ptr cloneObjectStorage(const std::string & new_namespace, const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) = 0; + virtual std::unique_ptr cloneObjectStorage( + const std::string & new_namespace, + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, ContextPtr context) = 0; protected: FileCachePtr cache; diff --git a/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp b/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp index ae87e8c61c0..393603ff11a 100644 --- a/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp +++ b/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp @@ -300,18 +300,18 @@ MetadataTransactionPtr MetadataStorageFromDisk::createTransaction() const return std::make_shared(*this); } -std::vector MetadataStorageFromDisk::getRemotePaths(const std::string & path) const +PathsWithSize MetadataStorageFromDisk::getObjectStoragePaths(const std::string & path) const { auto metadata = readMetadata(path); - std::vector remote_paths; - auto blobs = metadata->getBlobs(); + PathsWithSize object_storage_paths = metadata->getBlobs(); /// Relative paths. auto root_path = metadata->getBlobsCommonPrefix(); - remote_paths.reserve(blobs.size()); - for (const auto & [remote_path, _] : blobs) - remote_paths.push_back(fs::path(root_path) / remote_path); - return remote_paths; + /// Relative paths -> absolute. + for (auto & [object_path, _] : object_storage_paths) + object_path = fs::path(root_path) / object_path; + + return object_storage_paths; } uint32_t MetadataStorageFromDisk::getHardlinkCount(const std::string & path) const @@ -320,12 +320,6 @@ uint32_t MetadataStorageFromDisk::getHardlinkCount(const std::string & path) con return metadata->getRefCount(); } -BlobsPathToSize MetadataStorageFromDisk::getBlobs(const std::string & path) const -{ - auto metadata = readMetadata(path); - return metadata->getBlobs(); -} - void MetadataStorageFromDiskTransaction::unlinkMetadata(const std::string & path) { auto metadata = metadata_storage.readMetadata(path); diff --git a/src/Disks/ObjectStorages/MetadataStorageFromDisk.h b/src/Disks/ObjectStorages/MetadataStorageFromDisk.h index 1ac68e193f2..8dd47d18fdb 100644 --- a/src/Disks/ObjectStorages/MetadataStorageFromDisk.h +++ b/src/Disks/ObjectStorages/MetadataStorageFromDisk.h @@ -59,9 +59,7 @@ public: std::unordered_map getSerializedMetadata(const std::vector & file_paths) const override; - BlobsPathToSize getBlobs(const std::string & path) const override; - - std::vector getRemotePaths(const std::string & path) const override; + PathsWithSize getObjectStoragePaths(const std::string & path) const override; uint32_t getHardlinkCount(const std::string & path) const override; diff --git a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp index ffe4d2dd942..62995e04e9b 100644 --- a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp +++ b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp @@ -109,8 +109,7 @@ bool S3ObjectStorage::exists(const std::string & path) const std::unique_ptr S3ObjectStorage::readObjects( /// NOLINT - const std::string & common_path_prefix, - const BlobsPathToSize & blobs_to_read, + const PathsWithSize & paths_to_read, const ReadSettings & read_settings, std::optional, std::optional) const @@ -128,8 +127,12 @@ std::unique_ptr S3ObjectStorage::readObjects( /// NOLINT auto settings_ptr = s3_settings.get(); auto s3_impl = std::make_unique( - client.get(), bucket, version_id, common_path_prefix, blobs_to_read, - settings_ptr->s3_settings.max_single_read_retries, disk_read_settings); + client.get(), + bucket, + version_id, + paths_to_read, + settings_ptr->s3_settings.max_single_read_retries, + read_settings); if (read_settings.remote_fs_method == RemoteFSReadMethod::threadpool) { @@ -192,7 +195,7 @@ std::unique_ptr S3ObjectStorage::writeObject( /// NOLIN return std::make_unique(std::move(s3_buffer), std::move(finalize_callback), path); } -void S3ObjectStorage::listPrefix(const std::string & path, BlobsPathToSize & children) const +void S3ObjectStorage::listPrefix(const std::string & path, PathsWithSize & children) const { auto settings_ptr = s3_settings.get(); auto client_ptr = client.get(); @@ -253,14 +256,14 @@ void S3ObjectStorage::removeObjectImpl(const std::string & path, bool if_exists) } } -void S3ObjectStorage::removeObjectsImpl(const std::vector & paths, bool if_exists) +void S3ObjectStorage::removeObjectsImpl(const PathsWithSize & paths, bool if_exists) { if (paths.empty()) return; if (!s3_capabilities.support_batch_delete) { - for (const auto & path : paths) + for (const auto & [path, _] : paths) removeObjectImpl(path, if_exists); } else @@ -278,12 +281,12 @@ void S3ObjectStorage::removeObjectsImpl(const std::vector & paths, for (; current_position < paths.size() && current_chunk.size() < chunk_size_limit; ++current_position) { Aws::S3::Model::ObjectIdentifier obj; - obj.SetKey(paths[current_position]); + obj.SetKey(paths[current_position].path); current_chunk.push_back(obj); if (!keys.empty()) keys += ", "; - keys += paths[current_position]; + keys += paths[current_position].path; } Aws::S3::Model::Delete delkeys; @@ -308,12 +311,12 @@ void S3ObjectStorage::removeObjectIfExists(const std::string & path) removeObjectImpl(path, true); } -void S3ObjectStorage::removeObjects(const std::vector & paths) +void S3ObjectStorage::removeObjects(const PathsWithSize & paths) { removeObjectsImpl(paths, false); } -void S3ObjectStorage::removeObjectsIfExist(const std::vector & paths) +void S3ObjectStorage::removeObjectsIfExist(const PathsWithSize & paths) { removeObjectsImpl(paths, true); } diff --git a/src/Disks/ObjectStorages/S3/S3ObjectStorage.h b/src/Disks/ObjectStorages/S3/S3ObjectStorage.h index 16e6c9c8cd5..5c53ea1f894 100644 --- a/src/Disks/ObjectStorages/S3/S3ObjectStorage.h +++ b/src/Disks/ObjectStorages/S3/S3ObjectStorage.h @@ -66,8 +66,7 @@ public: std::optional file_size = {}) const override; std::unique_ptr readObjects( /// NOLINT - const std::string & common_path_prefix, - const BlobsPathToSize & blobs_to_read, + const PathsWithSize & paths_to_read, const ReadSettings & read_settings = ReadSettings{}, std::optional read_hint = {}, std::optional file_size = {}) const override; @@ -81,15 +80,16 @@ public: size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, const WriteSettings & write_settings = {}) override; - void listPrefix(const std::string & path, BlobsPathToSize & children) const override; + void listPrefix(const std::string & path, PathsWithSize & children) const override; + /// Remove file. Throws exception if file doesn't exist or it's a directory. void removeObject(const std::string & path) override; - void removeObjects(const std::vector & paths) override; + void removeObjects(const PathsWithSize & paths) override; void removeObjectIfExists(const std::string & path) override; - void removeObjectsIfExist(const std::vector & paths) override; + void removeObjectsIfExist(const PathsWithSize & paths) override; ObjectMetadata getObjectMetadata(const std::string & path) const override; @@ -108,26 +108,42 @@ public: void startup() override; - void applyNewSettings(const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) override; + void applyNewSettings( + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, + ContextPtr context) override; String getObjectsNamespace() const override { return bucket; } - std::unique_ptr cloneObjectStorage(const std::string & new_namespace, const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, ContextPtr context) override; + std::unique_ptr cloneObjectStorage( + const std::string & new_namespace, + const Poco::Util::AbstractConfiguration & config, + const std::string & config_prefix, + ContextPtr context) override; + private: void setNewSettings(std::unique_ptr && s3_settings_); void setNewClient(std::unique_ptr && client_); - void copyObjectImpl(const String & src_bucket, const String & src_key, const String & dst_bucket, const String & dst_key, + void copyObjectImpl( + const String & src_bucket, + const String & src_key, + const String & dst_bucket, + const String & dst_key, std::optional head = std::nullopt, std::optional metadata = std::nullopt) const; - void copyObjectMultipartImpl(const String & src_bucket, const String & src_key, const String & dst_bucket, const String & dst_key, + void copyObjectMultipartImpl( + const String & src_bucket, + const String & src_key, + const String & dst_bucket, + const String & dst_key, std::optional head = std::nullopt, std::optional metadata = std::nullopt) const; void removeObjectImpl(const std::string & path, bool if_exists); - void removeObjectsImpl(const std::vector & paths, bool if_exists); + void removeObjectsImpl(const PathsWithSize & paths, bool if_exists); Aws::S3::Model::HeadObjectOutcome requestObjectHeadData(const std::string & bucket_from, const std::string & key) const; diff --git a/src/Storages/System/StorageSystemRemoteDataPaths.cpp b/src/Storages/System/StorageSystemRemoteDataPaths.cpp index a009f9d25c9..d39a0d2482d 100644 --- a/src/Storages/System/StorageSystemRemoteDataPaths.cpp +++ b/src/Storages/System/StorageSystemRemoteDataPaths.cpp @@ -68,11 +68,11 @@ Pipe StorageSystemRemoteDataPaths::read( col_base_path->insert(disk->getPath()); col_cache_base_path->insert(cache_base_path); col_local_path->insert(local_path); - col_remote_path->insert(remote_path); + col_remote_path->insert(remote_path.path); if (cache) { - auto cache_paths = cache->tryGetCachePaths(cache->hash(remote_path)); + auto cache_paths = cache->tryGetCachePaths(cache->hash(remote_path.path)); col_cache_paths->insert(Array(cache_paths.begin(), cache_paths.end())); } else From 95d413d7ec5f9081a4f5fa832944efb5a3c05941 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Sun, 26 Jun 2022 01:38:45 +0200 Subject: [PATCH 255/525] put the thing into its own cache line --- src/Common/HashTable/HashTable.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Common/HashTable/HashTable.h b/src/Common/HashTable/HashTable.h index 3d8b51eded2..ca46ff5dfdc 100644 --- a/src/Common/HashTable/HashTable.h +++ b/src/Common/HashTable/HashTable.h @@ -226,15 +226,16 @@ void insertSetMapped(MappedType & dest, const ValueType & src) { dest = src.seco /** Determines the size of the hash table, and when and how much it should be resized. + * This structure is aligned to cache line boundary and also occupies it all. */ template -class HashTableGrower +class alignas(64) HashTableGrower { /// The state of this structure is enough to get the buffer size of the hash table. + UInt8 size_degree = initial_size_degree; size_t cached_mask = (1ULL << initial_size_degree) - 1; size_t cached_max_fill = 1ULL << (initial_size_degree - 1); - UInt8 size_degree = initial_size_degree; public: UInt8 sizeDegree() const { return size_degree; } @@ -284,6 +285,7 @@ public: } }; +static_assert(sizeof(HashTableGrower<>) == 64); /** When used as a Grower, it turns a hash table into something like a lookup table. * It remains non-optimal - the cells store the keys. From 1140cf6fb56ad9bb7fd614f3d8eb87926bef57d5 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Sun, 26 Jun 2022 09:43:31 +0000 Subject: [PATCH 256/525] Fixes: + test warning + proper capacity for column positions array in DistinctTransform --- src/Processors/Transforms/DistinctTransform.cpp | 12 ++++-------- .../02317_distinct_in_order_optimization_explain.sh | 1 + 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/Processors/Transforms/DistinctTransform.cpp b/src/Processors/Transforms/DistinctTransform.cpp index cf6a128aa40..0108b7d6547 100644 --- a/src/Processors/Transforms/DistinctTransform.cpp +++ b/src/Processors/Transforms/DistinctTransform.cpp @@ -17,17 +17,13 @@ DistinctTransform::DistinctTransform( , limit_hint(limit_hint_) , set_size_limits(set_size_limits_) { - size_t num_columns = columns_.empty() ? header_.columns() : columns_.size(); - - key_columns_pos.reserve(columns_.size()); + const size_t num_columns = columns_.empty() ? header_.columns() : columns_.size(); + key_columns_pos.reserve(num_columns); for (size_t i = 0; i < num_columns; ++i) { - auto pos = columns_.empty() ? i - : header_.getPositionByName(columns_[i]); - + const auto pos = columns_.empty() ? i : header_.getPositionByName(columns_[i]); const auto & col = header_.getByPosition(pos).column; - - if (!(col && isColumnConst(*col))) + if (col && !isColumnConst(*col)) key_columns_pos.emplace_back(pos); } } diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh index 560f92ef423..21f50a147ac 100755 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +# shellcheck source=../shell_config.sh . "$CURDIR"/../shell_config.sh [ ! -z "$CLICKHOUSE_CLIENT_REDEFINED" ] && CLICKHOUSE_CLIENT=$CLICKHOUSE_CLIENT_REDEFINED From 8da6136f882866c3dafbde05bed6a2333b276870 Mon Sep 17 00:00:00 2001 From: kssenii Date: Sun, 26 Jun 2022 13:21:05 +0200 Subject: [PATCH 257/525] Fix --- src/Disks/IO/ReadBufferFromRemoteFSGather.cpp | 2 +- src/Disks/IO/ReadBufferFromRemoteFSGather.h | 3 +++ src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp index 804fb69a8f5..e8197eba008 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp @@ -95,7 +95,7 @@ SeekableReadBufferPtr ReadBufferFromWebServerGather::createImplementationBufferI { current_file_path = path; return std::make_unique( - path, + fs::path(uri) / path, context, settings, /* use_external_buffer */true, diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.h b/src/Disks/IO/ReadBufferFromRemoteFSGather.h index 8edacfd36c9..1c4cdc678f4 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.h +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.h @@ -195,6 +195,8 @@ public: , config(config_) , hdfs_uri(hdfs_uri_) { + const size_t begin_of_path = hdfs_uri_.find('/', hdfs_uri_.find("//") + 2); + hdfs_uri = hdfs_uri_.substr(0, begin_of_path); } SeekableReadBufferPtr createImplementationBufferImpl(const String & path, size_t file_size) override; @@ -203,6 +205,7 @@ private: const Poco::Util::AbstractConfiguration & config; String hdfs_uri; }; + #endif } diff --git a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp index 62995e04e9b..58bd29d2d73 100644 --- a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp +++ b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp @@ -132,7 +132,7 @@ std::unique_ptr S3ObjectStorage::readObjects( /// NOLINT version_id, paths_to_read, settings_ptr->s3_settings.max_single_read_retries, - read_settings); + disk_read_settings); if (read_settings.remote_fs_method == RemoteFSReadMethod::threadpool) { From 9eafae968d63eb4a43e7d9d45ad0260dd3f5336d Mon Sep 17 00:00:00 2001 From: xiedeyantu Date: Sun, 26 Jun 2022 21:28:45 +0800 Subject: [PATCH 258/525] Allow trailing comma in columns list --- src/Parsers/ParserCreateQuery.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Parsers/ParserCreateQuery.cpp b/src/Parsers/ParserCreateQuery.cpp index e4a3f87f288..a2909627e90 100644 --- a/src/Parsers/ParserCreateQuery.cpp +++ b/src/Parsers/ParserCreateQuery.cpp @@ -467,6 +467,7 @@ bool ParserCreateTableQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expe ParserKeyword s_from("FROM"); ParserKeyword s_on("ON"); ParserToken s_dot(TokenType::Dot); + ParserToken s_comma(TokenType::Comma); ParserToken s_lparen(TokenType::OpeningRoundBracket); ParserToken s_rparen(TokenType::ClosingRoundBracket); ParserStorage storage_p; @@ -574,6 +575,9 @@ bool ParserCreateTableQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expe if (!table_properties_p.parse(pos, columns_list, expected)) return false; + if (s_comma.checkWithoutMoving(pos, expected) && !s_comma.ignore(pos, expected)) + return false; + if (!s_rparen.ignore(pos, expected)) return false; From 7e660933f048ee37154d8aa7bfb252d7ba1e5ef5 Mon Sep 17 00:00:00 2001 From: xiedeyantu Date: Sun, 26 Jun 2022 21:38:49 +0800 Subject: [PATCH 259/525] add allow trailing comma test --- .../02345_create_table_allow_trailing_comma.reference | 4 ++++ .../02345_create_table_allow_trailing_comma.sql | 11 +++++++++++ 2 files changed, 15 insertions(+) create mode 100644 tests/queries/0_stateless/02345_create_table_allow_trailing_comma.reference create mode 100644 tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql diff --git a/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.reference b/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.reference new file mode 100644 index 00000000000..0ef0fcbd57b --- /dev/null +++ b/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.reference @@ -0,0 +1,4 @@ +id Int32 DEFAULT 1 +id Int32 DEFAULT 1 +x UInt8 +y UInt8 diff --git a/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql b/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql new file mode 100644 index 00000000000..ad238d1c221 --- /dev/null +++ b/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql @@ -0,0 +1,11 @@ +DROP TABLE IF EXISTS trailing_comma_1 SYNC; +CREATE TABLE trailing_comma_1 (id INT NOT NULL DEFAULT 1,) ENGINE=MergeTree() ORDER BY tuple(); +DESCRIBE TABLE trailing_comma_1; + +DROP TABLE IF EXISTS trailing_comma_2 SYNC; +CREATE TABLE trailing_comma_2 (id INT DEFAULT 1,) ENGINE=MergeTree() ORDER BY tuple(); +DESCRIBE TABLE trailing_comma_2; + +DROP TABLE IF EXISTS trailing_comma_3 SYNC; +CREATE TABLE trailing_comma_3 (x UInt8, y UInt8,) ENGINE=MergeTree() ORDER BY tuple(); +DESCRIBE TABLE trailing_comma_3; From 8dd6f09cf174a7ad15c4a8ab4732091d161b9599 Mon Sep 17 00:00:00 2001 From: Larry Luo Date: Sun, 26 Jun 2022 07:19:22 -0700 Subject: [PATCH 260/525] fix style check error --- tests/integration/test_tlsv1_3/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_tlsv1_3/test.py b/tests/integration/test_tlsv1_3/test.py index d48b84925f5..80c9c68eca7 100644 --- a/tests/integration/test_tlsv1_3/test.py +++ b/tests/integration/test_tlsv1_3/test.py @@ -18,7 +18,7 @@ instance = cluster.add_instance( "certs/server-key.pem", "certs/server-cert.pem", "certs/ca-cert.pem", - "certs/dhparam4096.pem" + "certs/dhparam4096.pem", ], user_configs=["configs/users_with_ssl_auth.xml"], ) From a15238d147617d1697e0922e79bdc85b49951f69 Mon Sep 17 00:00:00 2001 From: kssenii Date: Sun, 26 Jun 2022 16:44:55 +0200 Subject: [PATCH 261/525] Review fixes, fix hdfs tests --- src/Disks/IO/ReadBufferFromRemoteFSGather.cpp | 9 +++++++-- src/Disks/IO/ReadBufferFromRemoteFSGather.h | 10 +++------- .../ObjectStorages/DiskObjectStorageMetadata.cpp | 8 ++++++-- .../ObjectStorages/DiskObjectStorageMetadata.h | 15 +++++++++++++-- ...skObjectStorageRemoteMetadataRestoreHelper.cpp | 2 +- src/Disks/ObjectStorages/IObjectStorage.h | 6 +++--- .../ObjectStorages/MetadataStorageFromDisk.cpp | 11 +++++++---- 7 files changed, 40 insertions(+), 21 deletions(-) diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp index e8197eba008..b53ba0f8e29 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp @@ -106,7 +106,12 @@ SeekableReadBufferPtr ReadBufferFromWebServerGather::createImplementationBufferI #if USE_HDFS SeekableReadBufferPtr ReadBufferFromHDFSGather::createImplementationBufferImpl(const String & path, size_t /* file_size */) { - return std::make_unique(hdfs_uri, path, config); + size_t begin_of_path = path.find('/', path.find("//") + 2); + auto hdfs_path = path.substr(begin_of_path); + auto hdfs_uri = path.substr(0, begin_of_path); + LOG_TEST(log, "HDFS uri: {}, path: {}", hdfs_path, hdfs_uri); + + return std::make_unique(hdfs_uri, hdfs_path, config); } #endif @@ -310,7 +315,7 @@ size_t ReadBufferFromRemoteFSGather::getFileSize() const { size_t size = 0; for (const auto & object : blobs_to_read) - size += object.size; + size += object.bytes_size; return size; } diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.h b/src/Disks/IO/ReadBufferFromRemoteFSGather.h index 1c4cdc678f4..e282a2cfc6c 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.h +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.h @@ -66,6 +66,8 @@ protected: String query_id; + Poco::Logger * log; + private: SeekableReadBufferPtr createImplementationBuffer(const String & path, size_t file_size); @@ -92,8 +94,6 @@ private: */ size_t bytes_to_ignore = 0; - Poco::Logger * log; - size_t total_bytes_read_from_current_file = 0; bool enable_cache_log = false; @@ -188,22 +188,18 @@ class ReadBufferFromHDFSGather final : public ReadBufferFromRemoteFSGather public: ReadBufferFromHDFSGather( const Poco::Util::AbstractConfiguration & config_, - const String & hdfs_uri_, + const String &, const PathsWithSize & blobs_to_read_, const ReadSettings & settings_) : ReadBufferFromRemoteFSGather(blobs_to_read_, settings_) , config(config_) - , hdfs_uri(hdfs_uri_) { - const size_t begin_of_path = hdfs_uri_.find('/', hdfs_uri_.find("//") + 2); - hdfs_uri = hdfs_uri_.substr(0, begin_of_path); } SeekableReadBufferPtr createImplementationBufferImpl(const String & path, size_t file_size) override; private: const Poco::Util::AbstractConfiguration & config; - String hdfs_uri; }; #endif diff --git a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp index 6763e37ed69..9ac04809b97 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp @@ -11,6 +11,7 @@ namespace DB namespace ErrorCodes { extern const int UNKNOWN_FORMAT; + extern const int LOGICAL_ERROR; } void DiskObjectStorageMetadata::deserialize(ReadBuffer & buf) @@ -50,8 +51,8 @@ void DiskObjectStorageMetadata::deserialize(ReadBuffer & buf) remote_fs_object_path = remote_fs_object_path.substr(remote_fs_root_path.size()); } assertChar('\n', buf); - storage_objects[i].path = remote_fs_object_path; - storage_objects[i].size = remote_fs_object_size; + storage_objects[i].relative_path = remote_fs_object_path; + storage_objects[i].bytes_size = remote_fs_object_size; } readIntText(ref_count, buf); @@ -119,6 +120,9 @@ DiskObjectStorageMetadata::DiskObjectStorageMetadata( void DiskObjectStorageMetadata::addObject(const String & path, size_t size) { + if (path.starts_with(remote_fs_root_path)) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Expected relative path"); + total_size += size; storage_objects.emplace_back(path, size); } diff --git a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h index 14dd819b4f8..adebbcb952d 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h @@ -12,6 +12,17 @@ namespace DB struct DiskObjectStorageMetadata { private: + struct RelativePathWithSize + { + String relative_path; + size_t bytes_size; + + RelativePathWithSize() = default; + + RelativePathWithSize(const String & relative_path_, size_t bytes_size_) + : relative_path(relative_path_), bytes_size(bytes_size_) {} + }; + /// Metadata file version. static constexpr uint32_t VERSION_ABSOLUTE_PATHS = 1; static constexpr uint32_t VERSION_RELATIVE_PATHS = 2; @@ -20,7 +31,7 @@ private: const std::string & common_metadata_path; /// Relative paths of blobs. - std::vector storage_objects; + std::vector storage_objects; /// URI const std::string & remote_fs_root_path; @@ -60,7 +71,7 @@ public: return remote_fs_root_path; } - std::vector getBlobs() const + std::vector getBlobsRelativePaths() const { return storage_objects; } diff --git a/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp b/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp index f820d06646a..a8140e8954e 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp @@ -85,7 +85,7 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::migrateFileToRestorableSchema LOG_TRACE(disk->log, "Migrate file {} to restorable schema", disk->metadata_storage->getPath() + path); auto objects = disk->metadata_storage->getObjectStoragePaths(path); - for (const auto & [object_path, size] : objects) + for (const auto & [object_path, _] : objects) { ObjectAttributes metadata { {"path", path} diff --git a/src/Disks/ObjectStorages/IObjectStorage.h b/src/Disks/ObjectStorages/IObjectStorage.h index 864b9ae8caa..64022ec046d 100644 --- a/src/Disks/ObjectStorages/IObjectStorage.h +++ b/src/Disks/ObjectStorages/IObjectStorage.h @@ -30,13 +30,13 @@ using ObjectAttributes = std::map; struct PathWithSize { std::string path; - uint64_t size; /// Size in bytes + uint64_t bytes_size; PathWithSize() = default; - PathWithSize(const std::string & path_, uint64_t size_) + PathWithSize(const std::string & path_, uint64_t bytes_size_) : path(path_) - , size(size_) + , bytes_size(bytes_size_) {} }; diff --git a/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp b/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp index 393603ff11a..32e6fe5834d 100644 --- a/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp +++ b/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp @@ -304,12 +304,15 @@ PathsWithSize MetadataStorageFromDisk::getObjectStoragePaths(const std::string & { auto metadata = readMetadata(path); - PathsWithSize object_storage_paths = metadata->getBlobs(); /// Relative paths. - auto root_path = metadata->getBlobsCommonPrefix(); + auto object_storage_relative_paths = metadata->getBlobsRelativePaths(); /// Relative paths. + fs::path root_path = metadata->getBlobsCommonPrefix(); + + PathsWithSize object_storage_paths; + object_storage_paths.reserve(object_storage_relative_paths.size()); /// Relative paths -> absolute. - for (auto & [object_path, _] : object_storage_paths) - object_path = fs::path(root_path) / object_path; + for (auto & [object_relative_path, size] : object_storage_relative_paths) + object_storage_paths.emplace_back(root_path / object_relative_path, size); return object_storage_paths; } From 68927dd60c71d54d84bf3b73e0494ab317725f1f Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Sun, 26 Jun 2022 14:52:36 +0000 Subject: [PATCH 262/525] Adapt distinct for sorted chunks to handle sorted stream, so we can use it for final distinct as well --- src/Processors/QueryPlan/DistinctStep.cpp | 18 ++------- .../DistinctSortedChunkTransform.cpp | 38 ++++++++++--------- .../Transforms/DistinctSortedChunkTransform.h | 8 ++-- ...ct_in_order_optimization_explain.reference | 4 +- 4 files changed, 30 insertions(+), 38 deletions(-) diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index c5e478eca8c..b1139497de6 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -94,8 +94,9 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil SortDescription distinct_sort_desc = getSortDescription(input_stream.sort_description, columns); if (!distinct_sort_desc.empty()) { - /// pre-distinct for sorted chunks - if (pre_distinct) + /// pre-distinct for sorted chunks or + /// final distinct for sorted stream (sorting inside and among chunks) + if (pre_distinct || input_stream.has_single_port) { pipeline.addSimpleTransform( [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr @@ -108,19 +109,6 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil }); return; } - /// final distinct for sorted stream (sorting inside and among chunks) - if (input_stream.has_single_port) - { - pipeline.addSimpleTransform( - [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr - { - if (stream_type != QueryPipelineBuilder::StreamType::Main) - return nullptr; - - return std::make_shared(header, distinct_sort_desc, set_size_limits, limit_hint, columns); - }); - return; - } } } diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index 213fcd6264a..988555385db 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -60,7 +60,7 @@ void DistinctSortedChunkTransform::initChunkProcessing(const Columns & input_col data.init(ClearableSetVariants::chooseMethod(other_columns, other_columns_sizes)); } -size_t DistinctSortedChunkTransform::ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end) +size_t DistinctSortedChunkTransform::ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end, bool clear_data) { size_t count = 0; switch (data.type) @@ -70,7 +70,7 @@ size_t DistinctSortedChunkTransform::ordinaryDistinctOnRange(IColumn::Filter & f // clang-format off #define M(NAME) \ case ClearableSetVariants::Type::NAME: \ - count = buildFilterForRange(*data.NAME, filter, range_begin, range_end, data); \ + count = buildFilterForRange(*data.NAME, filter, range_begin, range_end, data, clear_data); \ break; APPLY_FOR_SET_VARIANTS(M) @@ -82,10 +82,11 @@ size_t DistinctSortedChunkTransform::ordinaryDistinctOnRange(IColumn::Filter & f template size_t DistinctSortedChunkTransform::buildFilterForRange( - Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants) + Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants, bool clear_data) { typename Method::State state(other_columns, other_columns_sizes, nullptr); - method.data.clear(); + if (clear_data) + method.data.clear(); size_t count = 0; for (size_t i = range_begin; i < range_end; ++i) @@ -139,20 +140,26 @@ size_t DistinctSortedChunkTransform::getRangeEnd(size_t range_begin, size_t rang return range_end; } -size_t DistinctSortedChunkTransform::getStartPosition(const size_t chunk_rows) +std::tuple DistinctSortedChunkTransform::continueWithPrevRange(const size_t chunk_rows, IColumn::Filter & filter) { - if (!current_key.empty()) // current_key is empty on very first transform() call - { - if (other_columns.empty() && isCurrentKey(0)) - return getRangeEnd(0, chunk_rows); - } - return 0; + /// current_key is empty on very first transform() call + /// or first row doesn't match a key from previous transform() + if (current_key.empty() || !isCurrentKey(0)) + return {0, 0}; + + size_t output_rows = 0; + const size_t range_end = getRangeEnd(0, chunk_rows); + if (other_columns.empty()) + std::fill(filter.begin(), filter.begin() + range_end, 0); /// skip rows already included in distinct on previous transform() + else + output_rows = ordinaryDistinctOnRange(filter, 0, range_end, false); + + return {range_end, output_rows}; } void DistinctSortedChunkTransform::transform(Chunk & chunk) { const size_t chunk_rows = chunk.getNumRows(); - size_t output_rows = 0; Columns input_columns = chunk.detachColumns(); /// split input columns into sorted and other("non-sorted") columns @@ -165,10 +172,7 @@ void DistinctSortedChunkTransform::transform(Chunk & chunk) /// otherwise: apply ordinary distinct /// (3) repeat until chunk is processed IColumn::Filter filter(chunk_rows); - size_t range_begin = getStartPosition(chunk_rows); - if (range_begin > 0) - std::fill(filter.begin(), filter.begin() + range_begin, 0); /// skip rows already included in distinct on previous transform() - + auto [range_begin, output_rows] = continueWithPrevRange(chunk_rows, filter); size_t range_end = range_begin; while (range_end != chunk_rows) { @@ -188,7 +192,7 @@ void DistinctSortedChunkTransform::transform(Chunk & chunk) else { // ordinary distinct in range if there are "non-sorted" columns - output_rows += ordinaryDistinctOnRange(filter, range_begin, range_end); + output_rows += ordinaryDistinctOnRange(filter, range_begin, range_end, true); } // set where next range start diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.h b/src/Processors/Transforms/DistinctSortedChunkTransform.h index 3a6f46d699e..a0a9be34e4c 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.h +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.h @@ -29,15 +29,15 @@ protected: private: void initChunkProcessing(const Columns & input_columns); - size_t getStartPosition(size_t chunk_rows); - size_t ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end); + std::tuple continueWithPrevRange(size_t chunk_rows, IColumn::Filter & filter); + size_t ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end, bool clear_data); inline void setCurrentKey(size_t row_pos); inline bool isCurrentKey(size_t row_pos); inline size_t getRangeEnd(size_t range_begin, size_t range_end); template - size_t - buildFilterForRange(Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants); + size_t buildFilterForRange( + Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants, bool clear_data); ClearableSetVariants data; diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference index 2dac69edc41..d3951859b1b 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference @@ -7,13 +7,13 @@ DistinctSortedChunkTransform -- distinct with primary key prefix -> pre-distinct optimization only DistinctSortedChunkTransform -- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization -DistinctSortedTransform +DistinctSortedChunkTransform DistinctSortedChunkTransform -- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only DistinctSortedChunkTransform -- distinct with non-primary key prefix -> no optimizations No optimizations -- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only -DistinctSortedTransform +DistinctSortedChunkTransform -- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimizations No optimizations From bb7c6279645f76d3bedd72514dfc2d520990fa92 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:16:57 +0200 Subject: [PATCH 263/525] Cosmetics: Pass patterns around as std::string_view instead of StringRef - The patterns are not used in hashing, there should not be a performance impact when we use stuff from the standard library instead. - added forgotten .reserve() in FunctionsMultiStringPosition.h --- src/Common/Volnitsky.h | 16 ++++++++-------- src/Functions/FunctionsMultiStringFuzzySearch.h | 3 +-- src/Functions/FunctionsMultiStringPosition.h | 3 ++- src/Functions/FunctionsMultiStringSearch.h | 3 +-- src/Functions/MultiMatchAllIndicesImpl.h | 4 ++-- src/Functions/MultiMatchAnyImpl.h | 6 +++--- src/Functions/MultiSearchAllPositionsImpl.h | 2 +- src/Functions/MultiSearchFirstIndexImpl.h | 2 +- src/Functions/MultiSearchFirstPositionImpl.h | 2 +- src/Functions/MultiSearchImpl.h | 2 +- src/Functions/PositionImpl.h | 8 ++++---- src/Functions/Regexps.h | 6 +++--- src/Functions/hyperscanRegexpChecker.cpp | 8 ++++---- src/Functions/hyperscanRegexpChecker.h | 2 +- 14 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/Common/Volnitsky.h b/src/Common/Volnitsky.h index 7eca0c0fe53..a6aef293ac1 100644 --- a/src/Common/Volnitsky.h +++ b/src/Common/Volnitsky.h @@ -476,7 +476,7 @@ class MultiVolnitskyBase { private: /// needles and their offsets - const std::vector & needles; + const std::vector & needles; /// fallback searchers @@ -502,7 +502,7 @@ private: static constexpr size_t small_limit = VolnitskyTraits::hash_size / 8; public: - explicit MultiVolnitskyBase(const std::vector & needles_) : needles{needles_}, step{0}, last{0} + explicit MultiVolnitskyBase(const std::vector & needles_) : needles{needles_}, step{0}, last{0} { fallback_searchers.reserve(needles.size()); hash = std::unique_ptr(new OffsetId[VolnitskyTraits::hash_size]); /// No zero initialization, it will be done later. @@ -535,8 +535,8 @@ public: for (; last < size; ++last) { - const char * cur_needle_data = needles[last].data; - const size_t cur_needle_size = needles[last].size; + const char * cur_needle_data = needles[last].data(); + const size_t cur_needle_size = needles[last].size(); /// save the indices of fallback searchers if (VolnitskyTraits::isFallbackNeedle(cur_needle_size)) @@ -593,7 +593,7 @@ public: { const auto res = pos - (hash[cell_num].off - 1); const size_t ind = hash[cell_num].id; - if (res + needles[ind].size <= haystack_end && fallback_searchers[ind].compare(haystack, haystack_end, res)) + if (res + needles[ind].size() <= haystack_end && fallback_searchers[ind].compare(haystack, haystack_end, res)) return true; } } @@ -625,7 +625,7 @@ public: { const auto res = pos - (hash[cell_num].off - 1); const size_t ind = hash[cell_num].id; - if (res + needles[ind].size <= haystack_end && fallback_searchers[ind].compare(haystack, haystack_end, res)) + if (res + needles[ind].size() <= haystack_end && fallback_searchers[ind].compare(haystack, haystack_end, res)) answer = std::min(answer, ind); } } @@ -663,7 +663,7 @@ public: { const auto res = pos - (hash[cell_num].off - 1); const size_t ind = hash[cell_num].id; - if (res + needles[ind].size <= haystack_end && fallback_searchers[ind].compare(haystack, haystack_end, res)) + if (res + needles[ind].size() <= haystack_end && fallback_searchers[ind].compare(haystack, haystack_end, res)) answer = std::min(answer, res - haystack); } } @@ -699,7 +699,7 @@ public: const auto * res = pos - (hash[cell_num].off - 1); const size_t ind = hash[cell_num].id; if (answer[ind] == 0 - && res + needles[ind].size <= haystack_end + && res + needles[ind].size() <= haystack_end && fallback_searchers[ind].compare(haystack, haystack_end, res)) answer[ind] = count_chars(haystack, res); } diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index e082cfbec2f..3c2c0e523ff 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -13,7 +13,6 @@ #include #include #include -#include #include @@ -115,7 +114,7 @@ public: + ", should be at most " + std::to_string(LimitArgs), ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH); - std::vector refs; + std::vector refs; refs.reserve(src_arr.size()); for (const auto & el : src_arr) diff --git a/src/Functions/FunctionsMultiStringPosition.h b/src/Functions/FunctionsMultiStringPosition.h index 357606f4042..855b5448b87 100644 --- a/src/Functions/FunctionsMultiStringPosition.h +++ b/src/Functions/FunctionsMultiStringPosition.h @@ -98,7 +98,8 @@ public: + ", should be at most 255", ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH); - std::vector refs; + std::vector refs; + refs.reserve(src_arr.size()); for (const auto & el : src_arr) refs.emplace_back(el.get()); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 4bc8af3f214..6ab85e632e4 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -13,7 +13,6 @@ #include #include #include -#include namespace DB @@ -107,7 +106,7 @@ public: + ", should be at most " + std::to_string(LimitArgs), ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH); - std::vector refs; + std::vector refs; refs.reserve(src_arr.size()); for (const auto & el : src_arr) diff --git a/src/Functions/MultiMatchAllIndicesImpl.h b/src/Functions/MultiMatchAllIndicesImpl.h index 80a71548deb..a9479a9d7f5 100644 --- a/src/Functions/MultiMatchAllIndicesImpl.h +++ b/src/Functions/MultiMatchAllIndicesImpl.h @@ -44,7 +44,7 @@ struct MultiMatchAllIndicesImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res, PaddedPODArray & offsets) { @@ -54,7 +54,7 @@ struct MultiMatchAllIndicesImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res, PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance) diff --git a/src/Functions/MultiMatchAnyImpl.h b/src/Functions/MultiMatchAnyImpl.h index fbbefe7be1d..f8d790c98cc 100644 --- a/src/Functions/MultiMatchAnyImpl.h +++ b/src/Functions/MultiMatchAnyImpl.h @@ -46,7 +46,7 @@ struct MultiMatchAnyImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res, PaddedPODArray & offsets) { @@ -56,7 +56,7 @@ struct MultiMatchAnyImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance) @@ -120,7 +120,7 @@ struct MultiMatchAnyImpl memset(accum.data(), 0, accum.size()); for (size_t j = 0; j < needles.size(); ++j) { - MatchImpl::vectorConstant(haystack_data, haystack_offsets, needles[j].toString(), nullptr, accum); + MatchImpl::vectorConstant(haystack_data, haystack_offsets, std::string(needles[j].data(), needles[j].size()), nullptr, accum); for (size_t i = 0; i < res.size(); ++i) { if constexpr (FindAny) diff --git a/src/Functions/MultiSearchAllPositionsImpl.h b/src/Functions/MultiSearchAllPositionsImpl.h index f54fe41f20c..4356d6110f1 100644 --- a/src/Functions/MultiSearchAllPositionsImpl.h +++ b/src/Functions/MultiSearchAllPositionsImpl.h @@ -15,7 +15,7 @@ struct MultiSearchAllPositionsImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res) { auto res_callback = [](const UInt8 * start, const UInt8 * end) -> UInt64 diff --git a/src/Functions/MultiSearchFirstIndexImpl.h b/src/Functions/MultiSearchFirstIndexImpl.h index 26709119f6e..e452ac03902 100644 --- a/src/Functions/MultiSearchFirstIndexImpl.h +++ b/src/Functions/MultiSearchFirstIndexImpl.h @@ -22,7 +22,7 @@ struct MultiSearchFirstIndexImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets) { diff --git a/src/Functions/MultiSearchFirstPositionImpl.h b/src/Functions/MultiSearchFirstPositionImpl.h index 1db8dcbde83..1aa89b54a1e 100644 --- a/src/Functions/MultiSearchFirstPositionImpl.h +++ b/src/Functions/MultiSearchFirstPositionImpl.h @@ -22,7 +22,7 @@ struct MultiSearchFirstPositionImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets) { diff --git a/src/Functions/MultiSearchImpl.h b/src/Functions/MultiSearchImpl.h index 7cb0cefe580..91c3d71fdb9 100644 --- a/src/Functions/MultiSearchImpl.h +++ b/src/Functions/MultiSearchImpl.h @@ -22,7 +22,7 @@ struct MultiSearchImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets) { diff --git a/src/Functions/PositionImpl.h b/src/Functions/PositionImpl.h index 82e58cdc643..5380fcc36d9 100644 --- a/src/Functions/PositionImpl.h +++ b/src/Functions/PositionImpl.h @@ -38,7 +38,7 @@ struct PositionCaseSensitiveASCII return SearcherInSmallHaystack(needle_data, needle_size); } - static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) + static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) { return MultiSearcherInBigHaystack(needles); } @@ -74,7 +74,7 @@ struct PositionCaseInsensitiveASCII return SearcherInSmallHaystack(needle_data, needle_size); } - static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) + static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) { return MultiSearcherInBigHaystack(needles); } @@ -106,7 +106,7 @@ struct PositionCaseSensitiveUTF8 return SearcherInSmallHaystack(needle_data, needle_size); } - static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) + static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) { return MultiSearcherInBigHaystack(needles); } @@ -154,7 +154,7 @@ struct PositionCaseInsensitiveUTF8 return SearcherInSmallHaystack(needle_data, needle_size); } - static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) + static MultiSearcherInBigHaystack createMultiSearcherInBigHaystack(const std::vector & needles) { return MultiSearcherInBigHaystack(needles); } diff --git a/src/Functions/Regexps.h b/src/Functions/Regexps.h index ac37875f91e..a85c89774a2 100644 --- a/src/Functions/Regexps.h +++ b/src/Functions/Regexps.h @@ -278,15 +278,15 @@ inline Regexps constructRegexps(const std::vector & str_patterns, std::o /// template has its own copy of local static variables which must not be the same /// for different hyperscan compilations. template -inline Regexps * get(const std::vector & patterns, std::optional edit_distance) +inline Regexps * get(const std::vector & patterns, std::optional edit_distance) { /// C++11 has thread-safe function-local static on most modern compilers. static Pool known_regexps; /// Different variables for different pattern parameters. std::vector str_patterns; str_patterns.reserve(patterns.size()); - for (const StringRef & ref : patterns) - str_patterns.push_back(ref.toString()); + for (const auto & pattern : patterns) + str_patterns.push_back(std::string(pattern.data(), pattern.size())); /// Get the lock for finding database. std::unique_lock lock(known_regexps.mutex); diff --git a/src/Functions/hyperscanRegexpChecker.cpp b/src/Functions/hyperscanRegexpChecker.cpp index b3c46e34daa..325817fa47e 100644 --- a/src/Functions/hyperscanRegexpChecker.cpp +++ b/src/Functions/hyperscanRegexpChecker.cpp @@ -9,16 +9,16 @@ namespace ErrorCodes extern const int BAD_ARGUMENTS; } -void checkRegexp(const std::vector & refs, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) +void checkRegexp(const std::vector & regexps, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { if (max_hyperscan_regexp_length > 0 || max_hyperscan_regexp_total_length > 0) { size_t total_regexp_length = 0; - for (const auto & pattern : refs) + for (const auto & regexp : regexps) { - if (max_hyperscan_regexp_length > 0 && pattern.size > max_hyperscan_regexp_length) + if (max_hyperscan_regexp_length > 0 && regexp.size() > max_hyperscan_regexp_length) throw Exception("Regexp length too large", ErrorCodes::BAD_ARGUMENTS); - total_regexp_length += pattern.size; + total_regexp_length += regexp.size(); } if (max_hyperscan_regexp_total_length > 0 && total_regexp_length > max_hyperscan_regexp_total_length) diff --git a/src/Functions/hyperscanRegexpChecker.h b/src/Functions/hyperscanRegexpChecker.h index 1eea53722c1..ee8cc7d3954 100644 --- a/src/Functions/hyperscanRegexpChecker.h +++ b/src/Functions/hyperscanRegexpChecker.h @@ -5,6 +5,6 @@ namespace DB { -void checkRegexp(const std::vector & refs, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length); +void checkRegexp(const std::vector & refs, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length); } From 2ebfd01c2ee712ebe597daa345932b971587b9ca Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:20:03 +0200 Subject: [PATCH 264/525] Cosmetics: Pull out settings variable --- src/Functions/FunctionsMultiStringFuzzySearch.h | 10 +++++----- src/Functions/FunctionsMultiStringSearch.h | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index 3c2c0e523ff..6c016c9d6cb 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -36,12 +36,12 @@ public: static constexpr auto name = Impl::name; static FunctionPtr create(ContextPtr context) { - if (Impl::is_using_hyperscan && !context->getSettingsRef().allow_hyperscan) - throw Exception( - "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0", ErrorCodes::FUNCTION_NOT_ALLOWED); + const auto & settings = context->getSettingsRef(); - return std::make_shared( - context->getSettingsRef().max_hyperscan_regexp_length, context->getSettingsRef().max_hyperscan_regexp_total_length); + if (Impl::is_using_hyperscan && !settings.allow_hyperscan) + throw Exception("Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0", ErrorCodes::FUNCTION_NOT_ALLOWED); + + return std::make_shared(settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); } FunctionsMultiStringFuzzySearch(size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 6ab85e632e4..0286e119608 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -49,12 +49,12 @@ public: static constexpr auto name = Impl::name; static FunctionPtr create(ContextPtr context) { - if (Impl::is_using_hyperscan && !context->getSettingsRef().allow_hyperscan) - throw Exception( - "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0", ErrorCodes::FUNCTION_NOT_ALLOWED); + const auto & settings = context->getSettingsRef(); - return std::make_shared( - context->getSettingsRef().max_hyperscan_regexp_length, context->getSettingsRef().max_hyperscan_regexp_total_length); + if (Impl::is_using_hyperscan && !settings.allow_hyperscan) + throw Exception("Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0", ErrorCodes::FUNCTION_NOT_ALLOWED); + + return std::make_shared(settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); } FunctionsMultiStringSearch(size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) From 072e0855a82fc3f07ac77e7c89bc82eee6ea3d18 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:21:32 +0200 Subject: [PATCH 265/525] Cosmetics: Make member variables const --- src/Functions/FunctionsMultiStringFuzzySearch.h | 4 ++-- src/Functions/FunctionsMultiStringSearch.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index 6c016c9d6cb..fa09d54a75c 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -143,8 +143,8 @@ public: } private: - size_t max_hyperscan_regexp_length; - size_t max_hyperscan_regexp_total_length; + const size_t max_hyperscan_regexp_length; + const size_t max_hyperscan_regexp_total_length; }; } diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 0286e119608..a5e27727545 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -134,8 +134,8 @@ public: } private: - size_t max_hyperscan_regexp_length; - size_t max_hyperscan_regexp_total_length; + const size_t max_hyperscan_regexp_length; + const size_t max_hyperscan_regexp_total_length; }; } From e5c74a14f7b5d21da3be38727166c5279a2032a6 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:24:17 +0200 Subject: [PATCH 266/525] Cosmetics: More consistent naming - rename utility function and file to "checkHyperscanRegexp" --- src/Functions/FunctionsMultiStringFuzzySearch.h | 4 ++-- src/Functions/FunctionsMultiStringSearch.h | 4 ++-- ...rscanRegexpChecker.cpp => checkHyperscanRegexp.cpp} | 4 ++-- src/Functions/checkHyperscanRegexp.h | 10 ++++++++++ src/Functions/hyperscanRegexpChecker.h | 10 ---------- 5 files changed, 16 insertions(+), 16 deletions(-) rename src/Functions/{hyperscanRegexpChecker.cpp => checkHyperscanRegexp.cpp} (79%) create mode 100644 src/Functions/checkHyperscanRegexp.h delete mode 100644 src/Functions/hyperscanRegexpChecker.h diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index fa09d54a75c..cc45a407099 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include @@ -121,7 +121,7 @@ public: refs.emplace_back(el.get()); if (Impl::is_using_hyperscan) - checkRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + checkHyperscanRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index a5e27727545..76c56fa0030 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include @@ -113,7 +113,7 @@ public: refs.emplace_back(el.get()); if (Impl::is_using_hyperscan) - checkRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + checkHyperscanRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); diff --git a/src/Functions/hyperscanRegexpChecker.cpp b/src/Functions/checkHyperscanRegexp.cpp similarity index 79% rename from src/Functions/hyperscanRegexpChecker.cpp rename to src/Functions/checkHyperscanRegexp.cpp index 325817fa47e..ba9705208d5 100644 --- a/src/Functions/hyperscanRegexpChecker.cpp +++ b/src/Functions/checkHyperscanRegexp.cpp @@ -1,4 +1,4 @@ -#include +#include #include @@ -9,7 +9,7 @@ namespace ErrorCodes extern const int BAD_ARGUMENTS; } -void checkRegexp(const std::vector & regexps, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) +void checkHyperscanRegexp(const std::vector & regexps, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { if (max_hyperscan_regexp_length > 0 || max_hyperscan_regexp_total_length > 0) { diff --git a/src/Functions/checkHyperscanRegexp.h b/src/Functions/checkHyperscanRegexp.h new file mode 100644 index 00000000000..2aac44115fc --- /dev/null +++ b/src/Functions/checkHyperscanRegexp.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +namespace DB +{ + +void checkHyperscanRegexp(const std::vector & regexps, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length); + +} diff --git a/src/Functions/hyperscanRegexpChecker.h b/src/Functions/hyperscanRegexpChecker.h deleted file mode 100644 index ee8cc7d3954..00000000000 --- a/src/Functions/hyperscanRegexpChecker.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include - -namespace DB -{ - -void checkRegexp(const std::vector & refs, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length); - -} From 1273756911cd4d83253ca11a281d73aa2c83bb91 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:33:34 +0200 Subject: [PATCH 267/525] Cosmetics: fmt-based exceptions --- .../FunctionsMultiStringFuzzySearch.h | 34 +++++++------------ src/Functions/FunctionsMultiStringSearch.h | 24 ++++++------- 2 files changed, 22 insertions(+), 36 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index cc45a407099..1d6b8cfeffd 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -39,15 +39,14 @@ public: const auto & settings = context->getSettingsRef(); if (Impl::is_using_hyperscan && !settings.allow_hyperscan) - throw Exception("Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0", ErrorCodes::FUNCTION_NOT_ALLOWED); + throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); return std::make_shared(settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); } FunctionsMultiStringFuzzySearch(size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) : max_hyperscan_regexp_length(max_hyperscan_regexp_length_), max_hyperscan_regexp_total_length(max_hyperscan_regexp_total_length_) - { - } + {} String getName() const override { return name; } @@ -59,17 +58,15 @@ public: DataTypePtr getReturnTypeImpl(const DataTypes & arguments) const override { if (!isString(arguments[0])) - throw Exception( - "Illegal type " + arguments[0]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type {} of argument of function {}", arguments[0]->getName(), getName()); if (!isUnsignedInteger(arguments[1])) - throw Exception( - "Illegal type " + arguments[1]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type {} of argument of function {}", arguments[1]->getName(), getName()); const DataTypeArray * array_type = checkAndGetDataType(arguments[2].get()); if (!array_type || !checkAndGetDataType(array_type->getNestedType().get())) - throw Exception( - "Illegal type " + arguments[2]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type {} of argument of function {}", arguments[2]->getName(), getName()); + return Impl::getReturnType(); } @@ -92,27 +89,20 @@ public: else if ((col_const_num = checkAndGetColumnConst(num_ptr.get()))) edit_distance = col_const_num->getValue(); else - throw Exception( - "Illegal column " + arguments[1].column->getName() - + ". The number is not const or does not fit in UInt32", - ErrorCodes::ILLEGAL_COLUMN); - + throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The number is not const or does not fit in UInt32", arguments[1].column->getName()); const ColumnPtr & arr_ptr = arguments[2].column; const ColumnConst * col_const_arr = checkAndGetColumnConst(arr_ptr.get()); if (!col_const_arr) - throw Exception( - "Illegal column " + arguments[2].column->getName() + ". The array is not const", - ErrorCodes::ILLEGAL_COLUMN); + throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The array is not const", arguments[2].column->getName()); Array src_arr = col_const_arr->getValue(); if (src_arr.size() > LimitArgs) - throw Exception( - "Number of arguments for function " + getName() + " doesn't match: passed " + std::to_string(src_arr.size()) - + ", should be at most " + std::to_string(LimitArgs), - ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH); + throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, + "Number of arguments for function {} doesn't match: passed {}, should be at most {}", + getName(), std::to_string(src_arr.size()), std::to_string(LimitArgs)); std::vector refs; refs.reserve(src_arr.size()); @@ -134,7 +124,7 @@ public: Impl::vectorConstant( col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance); else - throw Exception("Illegal column " + arguments[0].column->getName(), ErrorCodes::ILLEGAL_COLUMN); + throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}", arguments[0].column->getName()); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 76c56fa0030..53eda533cb6 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -52,15 +52,14 @@ public: const auto & settings = context->getSettingsRef(); if (Impl::is_using_hyperscan && !settings.allow_hyperscan) - throw Exception("Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0", ErrorCodes::FUNCTION_NOT_ALLOWED); + throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); return std::make_shared(settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); } FunctionsMultiStringSearch(size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) : max_hyperscan_regexp_length(max_hyperscan_regexp_length_), max_hyperscan_regexp_total_length(max_hyperscan_regexp_total_length_) - { - } + {} String getName() const override { return name; } @@ -72,13 +71,12 @@ public: DataTypePtr getReturnTypeImpl(const DataTypes & arguments) const override { if (!isString(arguments[0])) - throw Exception( - "Illegal type " + arguments[0]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type {} of argument of function {}", arguments[0]->getName(), getName()); const DataTypeArray * array_type = checkAndGetDataType(arguments[1].get()); if (!array_type || !checkAndGetDataType(array_type->getNestedType().get())) - throw Exception( - "Illegal type " + arguments[1]->getName() + " of argument of function " + getName(), ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Illegal type {} of argument of function {}", arguments[1]->getName(), getName()); + return Impl::getReturnType(); } @@ -94,17 +92,15 @@ public: const ColumnConst * col_const_arr = checkAndGetColumnConst(arr_ptr.get()); if (!col_const_arr) - throw Exception( - "Illegal column " + arguments[1].column->getName() + ". The array is not const", - ErrorCodes::ILLEGAL_COLUMN); + throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The array is not const", arguments[1].column->getName()); Array src_arr = col_const_arr->getValue(); if (src_arr.size() > LimitArgs) throw Exception( - "Number of arguments for function " + getName() + " doesn't match: passed " + std::to_string(src_arr.size()) - + ", should be at most " + std::to_string(LimitArgs), - ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH); + ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, + "Number of arguments for function {} doesn't match: passed {}, should be at most {}", + getName(), std::to_string(src_arr.size()), std::to_string(LimitArgs)); std::vector refs; refs.reserve(src_arr.size()); @@ -125,7 +121,7 @@ public: if (col_haystack_vector) Impl::vectorConstant(col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res); else - throw Exception("Illegal column " + arguments[0].column->getName(), ErrorCodes::ILLEGAL_COLUMN); + throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}", arguments[0].column->getName()); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); From 4bc59c18e38bb7a42df2ff9be1c79cf9d1867d57 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:34:40 +0200 Subject: [PATCH 268/525] Cosmetics: Move some code around + docs + whitespaces + minor stuff --- .../FunctionsMultiStringFuzzySearch.h | 9 ++++--- src/Functions/FunctionsMultiStringSearch.h | 11 +++++---- src/Functions/MultiMatchAllIndicesImpl.h | 24 ++++++++----------- src/Functions/MultiMatchAnyImpl.h | 18 +++++++------- src/Functions/Regexps.h | 8 +++---- 5 files changed, 34 insertions(+), 36 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index 1d6b8cfeffd..b0f2de96622 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -72,13 +72,12 @@ public: ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t /*input_rows_count*/) const override { - using ResultType = typename Impl::ResultType; - const ColumnPtr & column_haystack = arguments[0].column; + const ColumnPtr & num_ptr = arguments[1].column; + const ColumnPtr & arr_ptr = arguments[2].column; const ColumnString * col_haystack_vector = checkAndGetColumn(&*column_haystack); - const ColumnPtr & num_ptr = arguments[1].column; const ColumnConst * col_const_num = nullptr; UInt32 edit_distance = 0; @@ -91,7 +90,6 @@ public: else throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The number is not const or does not fit in UInt32", arguments[1].column->getName()); - const ColumnPtr & arr_ptr = arguments[2].column; const ColumnConst * col_const_arr = checkAndGetColumnConst(arr_ptr.get()); if (!col_const_arr) @@ -113,13 +111,14 @@ public: if (Impl::is_using_hyperscan) checkHyperscanRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + using ResultType = typename Impl::ResultType; auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); auto & vec_res = col_res->getData(); auto & offsets_res = col_offsets->getData(); - /// The blame for resizing output is for the callee. + // the implementations are responsible for resizing the output column if (col_haystack_vector) Impl::vectorConstant( col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 53eda533cb6..e3e14458764 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -18,6 +18,10 @@ namespace DB { /** + * multiMatchAny(haystack, [pattern_1, pattern_2, ..., pattern_n]) + * multiMatchAnyIndex(haystack, [pattern_1, pattern_2, ..., pattern_n]) + * multiMatchAllIndices(haystack, [pattern_1, pattern_2, ..., pattern_n]) + * * multiSearchAny(haystack, [pattern_1, pattern_2, ..., pattern_n]) -- find any of the const patterns inside haystack and return 0 or 1 * multiSearchAnyUTF8(haystack, [pattern_1, pattern_2, ..., pattern_n]) * multiSearchAnyCaseInsensitive(haystack, [pattern_1, pattern_2, ..., pattern_n]) @@ -82,13 +86,11 @@ public: ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t /*input_rows_count*/) const override { - using ResultType = typename Impl::ResultType; - const ColumnPtr & column_haystack = arguments[0].column; + const ColumnPtr & arr_ptr = arguments[1].column; const ColumnString * col_haystack_vector = checkAndGetColumn(&*column_haystack); - const ColumnPtr & arr_ptr = arguments[1].column; const ColumnConst * col_const_arr = checkAndGetColumnConst(arr_ptr.get()); if (!col_const_arr) @@ -111,13 +113,14 @@ public: if (Impl::is_using_hyperscan) checkHyperscanRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + using ResultType = typename Impl::ResultType; auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); auto & vec_res = col_res->getData(); auto & offsets_res = col_offsets->getData(); - /// The blame for resizing output is for the callee. + // the implementations are responsible for resizing the output column if (col_haystack_vector) Impl::vectorConstant(col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res); else diff --git a/src/Functions/MultiMatchAllIndicesImpl.h b/src/Functions/MultiMatchAllIndicesImpl.h index a9479a9d7f5..c77fd5fbbcc 100644 --- a/src/Functions/MultiMatchAllIndicesImpl.h +++ b/src/Functions/MultiMatchAllIndicesImpl.h @@ -26,10 +26,11 @@ namespace ErrorCodes } -template +template struct MultiMatchAllIndicesImpl { - using ResultType = Type; + using ResultType = ResultType_; + static constexpr bool is_using_hyperscan = true; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. @@ -45,18 +46,18 @@ struct MultiMatchAllIndicesImpl const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, const std::vector & needles, - PaddedPODArray & res, + PaddedPODArray & res, PaddedPODArray & offsets) { vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt); } static void vectorConstant( - const ColumnString::Chars & haystack_data, - const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, - PaddedPODArray & res, - PaddedPODArray & offsets, + [[maybe_unused]] const ColumnString::Chars & haystack_data, + [[maybe_unused]] const ColumnString::Offsets & haystack_offsets, + [[maybe_unused]] const std::vector & needles, + [[maybe_unused]] PaddedPODArray & res, + [[maybe_unused]] PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance) { offsets.resize(haystack_offsets.size()); @@ -76,7 +77,7 @@ struct MultiMatchAllIndicesImpl unsigned int /* flags */, void * context) -> int { - static_cast*>(context)->push_back(id); + static_cast*>(context)->push_back(id); return 0; }; const size_t haystack_offsets_size = haystack_offsets.size(); @@ -102,11 +103,6 @@ struct MultiMatchAllIndicesImpl offset = haystack_offsets[i]; } #else - (void)haystack_data; - (void)haystack_offsets; - (void)needles; - (void)res; - (void)offsets; throw Exception( "multi-search all indices is not implemented when vectorscan is off", ErrorCodes::NOT_IMPLEMENTED); diff --git a/src/Functions/MultiMatchAnyImpl.h b/src/Functions/MultiMatchAnyImpl.h index f8d790c98cc..b0a4d7d55e4 100644 --- a/src/Functions/MultiMatchAnyImpl.h +++ b/src/Functions/MultiMatchAnyImpl.h @@ -27,11 +27,13 @@ namespace ErrorCodes } -template +template struct MultiMatchAnyImpl { - static_assert(static_cast(FindAny) + static_cast(FindAnyIndex) == 1); - using ResultType = Type; + static_assert(FindAny ^ FindAnyIndex); + + using ResultType = ResultType_; + static constexpr bool is_using_hyperscan = true; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. @@ -47,7 +49,7 @@ struct MultiMatchAnyImpl const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, const std::vector & needles, - PaddedPODArray & res, + PaddedPODArray & res, PaddedPODArray & offsets) { vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt); @@ -57,7 +59,7 @@ struct MultiMatchAnyImpl const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, const std::vector & needles, - PaddedPODArray & res, + PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance) { @@ -81,9 +83,9 @@ struct MultiMatchAnyImpl void * context) -> int { if constexpr (FindAnyIndex) - *reinterpret_cast(context) = id; + *reinterpret_cast(context) = id; else if constexpr (FindAny) - *reinterpret_cast(context) = 1; + *reinterpret_cast(context) = 1; /// Once we hit the callback, there is no need to search for others. return 1; }; @@ -110,7 +112,7 @@ struct MultiMatchAnyImpl offset = haystack_offsets[i]; } #else - /// Fallback if do not use vectorscan + // fallback if vectorscan is not compiled if constexpr (MultiSearchDistance) throw Exception( "Edit distance multi-search is not implemented when vectorscan is off", diff --git a/src/Functions/Regexps.h b/src/Functions/Regexps.h index a85c89774a2..87ad6577e15 100644 --- a/src/Functions/Regexps.h +++ b/src/Functions/Regexps.h @@ -167,9 +167,8 @@ struct Pool }; template -inline Regexps constructRegexps(const std::vector & str_patterns, std::optional edit_distance) +inline Regexps constructRegexps(const std::vector & str_patterns, [[maybe_unused]] std::optional edit_distance) { - (void)edit_distance; /// Common pointers std::vector patterns; std::vector flags; @@ -270,7 +269,7 @@ inline Regexps constructRegexps(const std::vector & str_patterns, std::o if (err != HS_SUCCESS) throw Exception("Could not allocate scratch space for hyperscan", ErrorCodes::CANNOT_ALLOCATE_MEMORY); - return Regexps{db, scratch}; + return {db, scratch}; } /// If CompileForEditDistance is False, edit_distance must be nullopt @@ -280,8 +279,7 @@ inline Regexps constructRegexps(const std::vector & str_patterns, std::o template inline Regexps * get(const std::vector & patterns, std::optional edit_distance) { - /// C++11 has thread-safe function-local static on most modern compilers. - static Pool known_regexps; /// Different variables for different pattern parameters. + static Pool known_regexps; /// Different variables for different pattern parameters, thread-safe in C++11 std::vector str_patterns; str_patterns.reserve(patterns.size()); From 580d89477f5b5d6f84c0ce259b24b418dcf66503 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:42:42 +0200 Subject: [PATCH 269/525] Minimally faster performance --- src/Functions/Regexps.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Functions/Regexps.h b/src/Functions/Regexps.h index 87ad6577e15..3e12f7fa651 100644 --- a/src/Functions/Regexps.h +++ b/src/Functions/Regexps.h @@ -145,7 +145,7 @@ public: Regexps * operator()() { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (regexp) return &*regexp; regexp = constructor(); @@ -284,7 +284,7 @@ inline Regexps * get(const std::vector & patterns, std::option std::vector str_patterns; str_patterns.reserve(patterns.size()); for (const auto & pattern : patterns) - str_patterns.push_back(std::string(pattern.data(), pattern.size())); + str_patterns.emplace_back(std::string(pattern.data(), pattern.size())); /// Get the lock for finding database. std::unique_lock lock(known_regexps.mutex); From 89bfdd50bfa7b00304ed8805c08d4958fb231a89 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 15:44:42 +0200 Subject: [PATCH 270/525] Remove unnecessary check - getReturnTypeImpl() ensures that the haystack column has type "String" and we can simply assert that. --- src/Functions/FunctionsMultiStringFuzzySearch.h | 10 +++------- src/Functions/FunctionsMultiStringSearch.h | 9 +++------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index b0f2de96622..822c513b0d7 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -49,7 +49,6 @@ public: {} String getName() const override { return name; } - size_t getNumberOfArguments() const override { return 3; } bool useDefaultImplementationForConstants() const override { return true; } bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return true; } @@ -77,6 +76,7 @@ public: const ColumnPtr & arr_ptr = arguments[2].column; const ColumnString * col_haystack_vector = checkAndGetColumn(&*column_haystack); + assert(col_haystack_vector); // getReturnTypeImpl() checks the data type const ColumnConst * col_const_num = nullptr; UInt32 edit_distance = 0; @@ -117,13 +117,9 @@ public: auto & vec_res = col_res->getData(); auto & offsets_res = col_offsets->getData(); - // the implementations are responsible for resizing the output column - if (col_haystack_vector) - Impl::vectorConstant( - col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance); - else - throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}", arguments[0].column->getName()); + + Impl::vectorConstant(col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index e3e14458764..0b2e68099d7 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -66,7 +66,6 @@ public: {} String getName() const override { return name; } - size_t getNumberOfArguments() const override { return 2; } bool useDefaultImplementationForConstants() const override { return true; } bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & /*arguments*/) const override { return true; } @@ -90,6 +89,7 @@ public: const ColumnPtr & arr_ptr = arguments[1].column; const ColumnString * col_haystack_vector = checkAndGetColumn(&*column_haystack); + assert(col_haystack_vector); // getReturnTypeImpl() checks the data type const ColumnConst * col_const_arr = checkAndGetColumnConst(arr_ptr.get()); @@ -119,12 +119,9 @@ public: auto & vec_res = col_res->getData(); auto & offsets_res = col_offsets->getData(); - // the implementations are responsible for resizing the output column - if (col_haystack_vector) - Impl::vectorConstant(col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res); - else - throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}", arguments[0].column->getName()); + + Impl::vectorConstant(col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); From 7913edc172abaeedb0d3267e732f0272ad95db85 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 16:12:38 +0200 Subject: [PATCH 271/525] Move check for hyperscan regexp constraints into implementations - This is preparation for non-const regexp arguments, where this check will run for each row. --- src/Functions/FunctionsMultiStringFuzzySearch.h | 8 +++----- src/Functions/FunctionsMultiStringSearch.h | 8 +++----- src/Functions/MultiMatchAllIndicesImpl.h | 16 ++++++++++++---- src/Functions/MultiMatchAnyImpl.h | 14 +++++++++++--- src/Functions/MultiSearchFirstIndexImpl.h | 4 +++- src/Functions/MultiSearchFirstPositionImpl.h | 4 +++- src/Functions/MultiSearchImpl.h | 4 +++- 7 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index 822c513b0d7..514b0b0189a 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -10,7 +10,6 @@ #include #include #include -#include #include #include @@ -108,9 +107,6 @@ public: for (const auto & el : src_arr) refs.emplace_back(el.get()); - if (Impl::is_using_hyperscan) - checkHyperscanRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); - using ResultType = typename Impl::ResultType; auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); @@ -119,7 +115,9 @@ public: auto & offsets_res = col_offsets->getData(); // the implementations are responsible for resizing the output column - Impl::vectorConstant(col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance); + Impl::vectorConstant( + col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance, + max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 0b2e68099d7..8af5689c4a6 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -10,7 +10,6 @@ #include #include #include -#include #include #include @@ -110,9 +109,6 @@ public: for (const auto & el : src_arr) refs.emplace_back(el.get()); - if (Impl::is_using_hyperscan) - checkHyperscanRegexp(refs, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); - using ResultType = typename Impl::ResultType; auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); @@ -121,7 +117,9 @@ public: auto & offsets_res = col_offsets->getData(); // the implementations are responsible for resizing the output column - Impl::vectorConstant(col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res); + Impl::vectorConstant( + col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, + max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); diff --git a/src/Functions/MultiMatchAllIndicesImpl.h b/src/Functions/MultiMatchAllIndicesImpl.h index c77fd5fbbcc..cb8d29723a6 100644 --- a/src/Functions/MultiMatchAllIndicesImpl.h +++ b/src/Functions/MultiMatchAllIndicesImpl.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "Regexps.h" #include "config_functions.h" @@ -47,9 +48,11 @@ struct MultiMatchAllIndicesImpl const ColumnString::Offsets & haystack_offsets, const std::vector & needles, PaddedPODArray & res, - PaddedPODArray & offsets) + PaddedPODArray & offsets, + size_t max_hyperscan_regexp_length, + size_t max_hyperscan_regexp_total_length) { - vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt); + vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); } static void vectorConstant( @@ -58,10 +61,15 @@ struct MultiMatchAllIndicesImpl [[maybe_unused]] const std::vector & needles, [[maybe_unused]] PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, - [[maybe_unused]] std::optional edit_distance) + [[maybe_unused]] std::optional edit_distance, + [[maybe_unused]] size_t max_hyperscan_regexp_length, + [[maybe_unused]] size_t max_hyperscan_regexp_total_length) { - offsets.resize(haystack_offsets.size()); #if USE_VECTORSCAN + checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + + offsets.resize(haystack_offsets.size()); + const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); hs_scratch_t * scratch = nullptr; hs_error_t err = hs_clone_scratch(hyperscan_regex->getScratch(), &scratch); diff --git a/src/Functions/MultiMatchAnyImpl.h b/src/Functions/MultiMatchAnyImpl.h index b0a4d7d55e4..349078b9d4a 100644 --- a/src/Functions/MultiMatchAnyImpl.h +++ b/src/Functions/MultiMatchAnyImpl.h @@ -3,6 +3,7 @@ #include #include #include +#include #include "Regexps.h" #include "config_functions.h" @@ -50,9 +51,11 @@ struct MultiMatchAnyImpl const ColumnString::Offsets & haystack_offsets, const std::vector & needles, PaddedPODArray & res, - PaddedPODArray & offsets) + PaddedPODArray & offsets, + size_t max_hyperscan_regexp_length, + size_t max_hyperscan_regexp_total_length) { - vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt); + vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); } static void vectorConstant( @@ -61,10 +64,15 @@ struct MultiMatchAnyImpl const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, - [[maybe_unused]] std::optional edit_distance) + [[maybe_unused]] std::optional edit_distance, + size_t max_hyperscan_regexp_length, + size_t max_hyperscan_regexp_total_length) { (void)FindAny; (void)FindAnyIndex; + + checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + res.resize(haystack_offsets.size()); #if USE_VECTORSCAN const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); diff --git a/src/Functions/MultiSearchFirstIndexImpl.h b/src/Functions/MultiSearchFirstIndexImpl.h index e452ac03902..b04ce157583 100644 --- a/src/Functions/MultiSearchFirstIndexImpl.h +++ b/src/Functions/MultiSearchFirstIndexImpl.h @@ -24,7 +24,9 @@ struct MultiSearchFirstIndexImpl const ColumnString::Offsets & haystack_offsets, const std::vector & needles, PaddedPODArray & res, - [[maybe_unused]] PaddedPODArray & offsets) + [[maybe_unused]] PaddedPODArray & offsets, + size_t /*max_hyperscan_regexp_length*/, + size_t /*max_hyperscan_regexp_total_length*/) { auto searcher = Impl::createMultiSearcherInBigHaystack(needles); const size_t haystack_string_size = haystack_offsets.size(); diff --git a/src/Functions/MultiSearchFirstPositionImpl.h b/src/Functions/MultiSearchFirstPositionImpl.h index 1aa89b54a1e..5bfc13be10b 100644 --- a/src/Functions/MultiSearchFirstPositionImpl.h +++ b/src/Functions/MultiSearchFirstPositionImpl.h @@ -24,7 +24,9 @@ struct MultiSearchFirstPositionImpl const ColumnString::Offsets & haystack_offsets, const std::vector & needles, PaddedPODArray & res, - [[maybe_unused]] PaddedPODArray & offsets) + [[maybe_unused]] PaddedPODArray & offsets, + size_t /*max_hyperscan_regexp_length*/, + size_t /*max_hyperscan_regexp_total_length*/) { auto res_callback = [](const UInt8 * start, const UInt8 * end) -> UInt64 { diff --git a/src/Functions/MultiSearchImpl.h b/src/Functions/MultiSearchImpl.h index 91c3d71fdb9..ac198b16765 100644 --- a/src/Functions/MultiSearchImpl.h +++ b/src/Functions/MultiSearchImpl.h @@ -24,7 +24,9 @@ struct MultiSearchImpl const ColumnString::Offsets & haystack_offsets, const std::vector & needles, PaddedPODArray & res, - [[maybe_unused]] PaddedPODArray & offsets) + [[maybe_unused]] PaddedPODArray & offsets, + size_t /*max_hyperscan_regexp_length*/, + size_t /*max_hyperscan_regexp_total_length*/) { auto searcher = Impl::createMultiSearcherInBigHaystack(needles); const size_t haystack_string_size = haystack_offsets.size(); From 3478db9fb6a81e4fcbd698cfca94d5508b709103 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Fri, 24 Jun 2022 16:42:39 +0200 Subject: [PATCH 272/525] Move check for regexp array size into implementations - This is not needed for non-const regexp array arguments (the cardinality of arrays is fixed per column) but it cleans up the code and runs the check only in functions which have restrictions on the number of patterns. - For functions using hyperscans, it was checked that the number of regexes is < 2^32. Removed the check because I don't think anyone will every specify 4 billion patterns. --- src/Functions/FunctionsMultiStringFuzzySearch.h | 10 +--------- src/Functions/FunctionsMultiStringSearch.h | 13 +------------ src/Functions/MultiSearchFirstIndexImpl.h | 11 +++++++++++ src/Functions/MultiSearchImpl.h | 11 +++++++++++ src/Functions/multiFuzzyMatchAllIndices.cpp | 4 +--- src/Functions/multiFuzzyMatchAny.cpp | 4 +--- src/Functions/multiFuzzyMatchAnyIndex.cpp | 4 +--- src/Functions/multiMatchAllIndices.cpp | 4 +--- src/Functions/multiMatchAny.cpp | 4 +--- src/Functions/multiMatchAnyIndex.cpp | 4 +--- src/Functions/multiSearchAnyCaseInsensitive.cpp | 3 +-- src/Functions/multiSearchFirstIndex.cpp | 3 +-- 12 files changed, 32 insertions(+), 43 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index 514b0b0189a..b83b5c4192b 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -21,16 +21,13 @@ namespace ErrorCodes { extern const int ILLEGAL_TYPE_OF_ARGUMENT; extern const int ILLEGAL_COLUMN; - extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; extern const int FUNCTION_NOT_ALLOWED; } -template +template class FunctionsMultiStringFuzzySearch : public IFunction { - static_assert(LimitArgs > 0); - public: static constexpr auto name = Impl::name; static FunctionPtr create(ContextPtr context) @@ -96,11 +93,6 @@ public: Array src_arr = col_const_arr->getValue(); - if (src_arr.size() > LimitArgs) - throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, - "Number of arguments for function {} doesn't match: passed {}, should be at most {}", - getName(), std::to_string(src_arr.size()), std::to_string(LimitArgs)); - std::vector refs; refs.reserve(src_arr.size()); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 8af5689c4a6..8b48f8f9eaa 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -36,18 +36,13 @@ namespace ErrorCodes { extern const int ILLEGAL_TYPE_OF_ARGUMENT; extern const int ILLEGAL_COLUMN; - extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; extern const int FUNCTION_NOT_ALLOWED; } -/// The argument limiting raises from Volnitsky searcher -- it is performance crucial to save only one byte for pattern number. -/// But some other searchers use this function, for example, multiMatchAny -- hyperscan does not have such restrictions -template ::max()> +template class FunctionsMultiStringSearch : public IFunction { - static_assert(LimitArgs > 0); - public: static constexpr auto name = Impl::name; static FunctionPtr create(ContextPtr context) @@ -97,12 +92,6 @@ public: Array src_arr = col_const_arr->getValue(); - if (src_arr.size() > LimitArgs) - throw Exception( - ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, - "Number of arguments for function {} doesn't match: passed {}, should be at most {}", - getName(), std::to_string(src_arr.size()), std::to_string(LimitArgs)); - std::vector refs; refs.reserve(src_arr.size()); diff --git a/src/Functions/MultiSearchFirstIndexImpl.h b/src/Functions/MultiSearchFirstIndexImpl.h index b04ce157583..4f01c45bdf4 100644 --- a/src/Functions/MultiSearchFirstIndexImpl.h +++ b/src/Functions/MultiSearchFirstIndexImpl.h @@ -7,6 +7,11 @@ namespace DB { +namespace ErrorCodes +{ + extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; +} + template struct MultiSearchFirstIndexImpl { @@ -28,6 +33,12 @@ struct MultiSearchFirstIndexImpl size_t /*max_hyperscan_regexp_length*/, size_t /*max_hyperscan_regexp_total_length*/) { + // For performance of Volnitsky search, it is crucial to save only one byte for pattern number. + if (needles.size() > std::numeric_limits::max()) + throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, + "Number of arguments for function {} doesn't match: passed {}, should be at most {}", + name, std::to_string(needles.size()), std::to_string(std::numeric_limits::max())); + auto searcher = Impl::createMultiSearcherInBigHaystack(needles); const size_t haystack_string_size = haystack_offsets.size(); res.resize(haystack_string_size); diff --git a/src/Functions/MultiSearchImpl.h b/src/Functions/MultiSearchImpl.h index ac198b16765..0c951f3c5fc 100644 --- a/src/Functions/MultiSearchImpl.h +++ b/src/Functions/MultiSearchImpl.h @@ -7,6 +7,11 @@ namespace DB { +namespace ErrorCodes +{ + extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; +} + template struct MultiSearchImpl { @@ -28,6 +33,12 @@ struct MultiSearchImpl size_t /*max_hyperscan_regexp_length*/, size_t /*max_hyperscan_regexp_total_length*/) { + // For performance of Volnitsky search, it is crucial to save only one byte for pattern number. + if (needles.size() > std::numeric_limits::max()) + throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, + "Number of arguments for function {} doesn't match: passed {}, should be at most {}", + name, std::to_string(needles.size()), std::to_string(std::numeric_limits::max())); + auto searcher = Impl::createMultiSearcherInBigHaystack(needles); const size_t haystack_string_size = haystack_offsets.size(); res.resize(haystack_string_size); diff --git a/src/Functions/multiFuzzyMatchAllIndices.cpp b/src/Functions/multiFuzzyMatchAllIndices.cpp index d0121ee3981..2c4ac05ddbe 100644 --- a/src/Functions/multiFuzzyMatchAllIndices.cpp +++ b/src/Functions/multiFuzzyMatchAllIndices.cpp @@ -13,9 +13,7 @@ struct NameMultiFuzzyMatchAllIndices static constexpr auto name = "multiFuzzyMatchAllIndices"; }; -using FunctionMultiFuzzyMatchAllIndices = FunctionsMultiStringFuzzySearch< - MultiMatchAllIndicesImpl, - std::numeric_limits::max()>; +using FunctionMultiFuzzyMatchAllIndices = FunctionsMultiStringFuzzySearch>; } diff --git a/src/Functions/multiFuzzyMatchAny.cpp b/src/Functions/multiFuzzyMatchAny.cpp index 640e93a23b0..fbd84ead31b 100644 --- a/src/Functions/multiFuzzyMatchAny.cpp +++ b/src/Functions/multiFuzzyMatchAny.cpp @@ -13,9 +13,7 @@ struct NameMultiFuzzyMatchAny static constexpr auto name = "multiFuzzyMatchAny"; }; -using FunctionMultiFuzzyMatchAny = FunctionsMultiStringFuzzySearch< - MultiMatchAnyImpl, - std::numeric_limits::max()>; +using FunctionMultiFuzzyMatchAny = FunctionsMultiStringFuzzySearch>; } diff --git a/src/Functions/multiFuzzyMatchAnyIndex.cpp b/src/Functions/multiFuzzyMatchAnyIndex.cpp index f8bad1bc461..255f710e2b3 100644 --- a/src/Functions/multiFuzzyMatchAnyIndex.cpp +++ b/src/Functions/multiFuzzyMatchAnyIndex.cpp @@ -13,9 +13,7 @@ struct NameMultiFuzzyMatchAnyIndex static constexpr auto name = "multiFuzzyMatchAnyIndex"; }; -using FunctionMultiFuzzyMatchAnyIndex = FunctionsMultiStringFuzzySearch< - MultiMatchAnyImpl, - std::numeric_limits::max()>; +using FunctionMultiFuzzyMatchAnyIndex = FunctionsMultiStringFuzzySearch>; } diff --git a/src/Functions/multiMatchAllIndices.cpp b/src/Functions/multiMatchAllIndices.cpp index 940c9e7e3bf..1c6577e5aa3 100644 --- a/src/Functions/multiMatchAllIndices.cpp +++ b/src/Functions/multiMatchAllIndices.cpp @@ -13,9 +13,7 @@ struct NameMultiMatchAllIndices static constexpr auto name = "multiMatchAllIndices"; }; -using FunctionMultiMatchAllIndices = FunctionsMultiStringSearch< - MultiMatchAllIndicesImpl, - std::numeric_limits::max()>; +using FunctionMultiMatchAllIndices = FunctionsMultiStringSearch>; } diff --git a/src/Functions/multiMatchAny.cpp b/src/Functions/multiMatchAny.cpp index 47510e0ecc2..4920e9c230f 100644 --- a/src/Functions/multiMatchAny.cpp +++ b/src/Functions/multiMatchAny.cpp @@ -13,9 +13,7 @@ struct NameMultiMatchAny static constexpr auto name = "multiMatchAny"; }; -using FunctionMultiMatchAny = FunctionsMultiStringSearch< - MultiMatchAnyImpl, - std::numeric_limits::max()>; +using FunctionMultiMatchAny = FunctionsMultiStringSearch>; } diff --git a/src/Functions/multiMatchAnyIndex.cpp b/src/Functions/multiMatchAnyIndex.cpp index a56d41dc95b..bf68e8576a5 100644 --- a/src/Functions/multiMatchAnyIndex.cpp +++ b/src/Functions/multiMatchAnyIndex.cpp @@ -13,9 +13,7 @@ struct NameMultiMatchAnyIndex static constexpr auto name = "multiMatchAnyIndex"; }; -using FunctionMultiMatchAnyIndex = FunctionsMultiStringSearch< - MultiMatchAnyImpl, - std::numeric_limits::max()>; +using FunctionMultiMatchAnyIndex = FunctionsMultiStringSearch>; } diff --git a/src/Functions/multiSearchAnyCaseInsensitive.cpp b/src/Functions/multiSearchAnyCaseInsensitive.cpp index 9bc950c0d3d..af463805ea5 100644 --- a/src/Functions/multiSearchAnyCaseInsensitive.cpp +++ b/src/Functions/multiSearchAnyCaseInsensitive.cpp @@ -13,8 +13,7 @@ struct NameMultiSearchAnyCaseInsensitive { static constexpr auto name = "multiSearchAnyCaseInsensitive"; }; -using FunctionMultiSearchCaseInsensitive - = FunctionsMultiStringSearch>; +using FunctionMultiSearchCaseInsensitive = FunctionsMultiStringSearch>; } diff --git a/src/Functions/multiSearchFirstIndex.cpp b/src/Functions/multiSearchFirstIndex.cpp index a96ebed029c..a5fbec2dc36 100644 --- a/src/Functions/multiSearchFirstIndex.cpp +++ b/src/Functions/multiSearchFirstIndex.cpp @@ -14,8 +14,7 @@ struct NameMultiSearchFirstIndex static constexpr auto name = "multiSearchFirstIndex"; }; -using FunctionMultiSearchFirstIndex - = FunctionsMultiStringSearch>; +using FunctionMultiSearchFirstIndex = FunctionsMultiStringSearch>; } From 2f15d45f27b8d9d8d32b557decc2ab9030032308 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sun, 26 Jun 2022 16:25:43 +0000 Subject: [PATCH 273/525] Move check for regexp array size into implementations - This is not needed for non-const regexp array arguments (the cardinality of arrays is fixed per column) but it cleans up the code and runs the check only in functions which have restrictions on the number of patterns. - For functions using hyperscans, it was checked that the number of regexes is < 2^32. Removed the check because I don't think anyone will every specify 4 billion patterns. --- src/Functions/MultiSearchFirstPositionImpl.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Functions/MultiSearchFirstPositionImpl.h b/src/Functions/MultiSearchFirstPositionImpl.h index 5bfc13be10b..2260950c5d4 100644 --- a/src/Functions/MultiSearchFirstPositionImpl.h +++ b/src/Functions/MultiSearchFirstPositionImpl.h @@ -7,6 +7,11 @@ namespace DB { +namespace ErrorCodes +{ + extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; +} + template struct MultiSearchFirstPositionImpl { @@ -28,6 +33,12 @@ struct MultiSearchFirstPositionImpl size_t /*max_hyperscan_regexp_length*/, size_t /*max_hyperscan_regexp_total_length*/) { + // For performance of Volnitsky search, it is crucial to save only one byte for pattern number. + if (needles.size() > std::numeric_limits::max()) + throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, + "Number of arguments for function {} doesn't match: passed {}, should be at most {}", + name, std::to_string(needles.size()), std::to_string(std::numeric_limits::max())); + auto res_callback = [](const UInt8 * start, const UInt8 * end) -> UInt64 { return 1 + Impl::countChars(reinterpret_cast(start), reinterpret_cast(end)); From c9ce0efa662b4af905450aa2a0db17cd7609ed89 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sat, 25 Jun 2022 17:28:15 +0200 Subject: [PATCH 274/525] Instantiate MultiMatchAnyImpl template using enums - With this, invalid combinations of the FindAny/FindAnyIndex bools are no longer possible and we can remove the corresponding check - Also makes the instantiations more readable. --- src/Functions/MultiMatchAllIndicesImpl.h | 5 ++--- src/Functions/MultiMatchAnyImpl.h | 23 ++++++++++++++------- src/Functions/Regexps.h | 14 ++++++------- src/Functions/multiFuzzyMatchAllIndices.cpp | 2 +- src/Functions/multiFuzzyMatchAny.cpp | 2 +- src/Functions/multiFuzzyMatchAnyIndex.cpp | 2 +- src/Functions/multiMatchAllIndices.cpp | 2 +- src/Functions/multiMatchAny.cpp | 2 +- src/Functions/multiMatchAnyIndex.cpp | 2 +- 9 files changed, 30 insertions(+), 24 deletions(-) diff --git a/src/Functions/MultiMatchAllIndicesImpl.h b/src/Functions/MultiMatchAllIndicesImpl.h index cb8d29723a6..3234782d1c1 100644 --- a/src/Functions/MultiMatchAllIndicesImpl.h +++ b/src/Functions/MultiMatchAllIndicesImpl.h @@ -27,7 +27,7 @@ namespace ErrorCodes } -template +template struct MultiMatchAllIndicesImpl { using ResultType = ResultType_; @@ -69,8 +69,7 @@ struct MultiMatchAllIndicesImpl checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); offsets.resize(haystack_offsets.size()); - - const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); + const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); hs_scratch_t * scratch = nullptr; hs_error_t err = hs_clone_scratch(hyperscan_regex->getScratch(), &scratch); diff --git a/src/Functions/MultiMatchAnyImpl.h b/src/Functions/MultiMatchAnyImpl.h index 349078b9d4a..12b7f76d173 100644 --- a/src/Functions/MultiMatchAnyImpl.h +++ b/src/Functions/MultiMatchAnyImpl.h @@ -27,14 +27,24 @@ namespace ErrorCodes extern const int TOO_MANY_BYTES; } +// For more readable instantiations of MultiMatchAnyImpl<> +struct MultiMatchTraits +{ +enum class Find +{ + Any, + AnyIndex +}; +}; -template +template struct MultiMatchAnyImpl { - static_assert(FindAny ^ FindAnyIndex); - using ResultType = ResultType_; + static constexpr bool FindAny = (Find == MultiMatchTraits::Find::Any); + static constexpr bool FindAnyIndex = (Find == MultiMatchTraits::Find::AnyIndex); + static constexpr bool is_using_hyperscan = true; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. @@ -68,14 +78,11 @@ struct MultiMatchAnyImpl size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { - (void)FindAny; - (void)FindAnyIndex; - checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); res.resize(haystack_offsets.size()); #if USE_VECTORSCAN - const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); + const auto & hyperscan_regex = MultiRegexps::get(needles, edit_distance); hs_scratch_t * scratch = nullptr; hs_error_t err = hs_clone_scratch(hyperscan_regex->getScratch(), &scratch); @@ -121,7 +128,7 @@ struct MultiMatchAnyImpl } #else // fallback if vectorscan is not compiled - if constexpr (MultiSearchDistance) + if constexpr (WithEditDistance) throw Exception( "Edit distance multi-search is not implemented when vectorscan is off", ErrorCodes::NOT_IMPLEMENTED); diff --git a/src/Functions/Regexps.h b/src/Functions/Regexps.h index 3e12f7fa651..b932b14a6a9 100644 --- a/src/Functions/Regexps.h +++ b/src/Functions/Regexps.h @@ -166,7 +166,7 @@ struct Pool std::map, std::optional>, RegexpsConstructor> storage; }; -template +template inline Regexps constructRegexps(const std::vector & str_patterns, [[maybe_unused]] std::optional edit_distance) { /// Common pointers @@ -180,7 +180,7 @@ inline Regexps constructRegexps(const std::vector & str_patterns, [[mayb patterns.reserve(str_patterns.size()); flags.reserve(str_patterns.size()); - if constexpr (CompileForEditDistance) + if constexpr (WithEditDistance) { ext_exprs.reserve(str_patterns.size()); ext_exprs_ptrs.reserve(str_patterns.size()); @@ -198,7 +198,7 @@ inline Regexps constructRegexps(const std::vector & str_patterns, [[mayb * as it is said in the Hyperscan documentation. https://intel.github.io/hyperscan/dev-reference/performance.html#single-match-flag */ flags.push_back(HS_FLAG_DOTALL | HS_FLAG_SINGLEMATCH | HS_FLAG_ALLOWEMPTY | HS_FLAG_UTF8); - if constexpr (CompileForEditDistance) + if constexpr (WithEditDistance) { /// Hyperscan currently does not support UTF8 matching with edit distance. flags.back() &= ~HS_FLAG_UTF8; @@ -223,7 +223,7 @@ inline Regexps constructRegexps(const std::vector & str_patterns, [[mayb } hs_error_t err; - if constexpr (!CompileForEditDistance) + if constexpr (!WithEditDistance) err = hs_compile_multi( patterns.data(), flags.data(), @@ -272,11 +272,11 @@ inline Regexps constructRegexps(const std::vector & str_patterns, [[mayb return {db, scratch}; } -/// If CompileForEditDistance is False, edit_distance must be nullopt +/// If WithEditDistance is False, edit_distance must be nullopt /// Also, we use templates here because each instantiation of function /// template has its own copy of local static variables which must not be the same /// for different hyperscan compilations. -template +template inline Regexps * get(const std::vector & patterns, std::optional edit_distance) { static Pool known_regexps; /// Different variables for different pattern parameters, thread-safe in C++11 @@ -299,7 +299,7 @@ inline Regexps * get(const std::vector & patterns, std::option .first; it->second.setConstructor([&str_patterns = it->first.first, edit_distance]() { - return constructRegexps(str_patterns, edit_distance); + return constructRegexps(str_patterns, edit_distance); }); } diff --git a/src/Functions/multiFuzzyMatchAllIndices.cpp b/src/Functions/multiFuzzyMatchAllIndices.cpp index 2c4ac05ddbe..93ffb936dc1 100644 --- a/src/Functions/multiFuzzyMatchAllIndices.cpp +++ b/src/Functions/multiFuzzyMatchAllIndices.cpp @@ -13,7 +13,7 @@ struct NameMultiFuzzyMatchAllIndices static constexpr auto name = "multiFuzzyMatchAllIndices"; }; -using FunctionMultiFuzzyMatchAllIndices = FunctionsMultiStringFuzzySearch>; +using FunctionMultiFuzzyMatchAllIndices = FunctionsMultiStringFuzzySearch>; } diff --git a/src/Functions/multiFuzzyMatchAny.cpp b/src/Functions/multiFuzzyMatchAny.cpp index fbd84ead31b..a627030d7af 100644 --- a/src/Functions/multiFuzzyMatchAny.cpp +++ b/src/Functions/multiFuzzyMatchAny.cpp @@ -13,7 +13,7 @@ struct NameMultiFuzzyMatchAny static constexpr auto name = "multiFuzzyMatchAny"; }; -using FunctionMultiFuzzyMatchAny = FunctionsMultiStringFuzzySearch>; +using FunctionMultiFuzzyMatchAny = FunctionsMultiStringFuzzySearch>; } diff --git a/src/Functions/multiFuzzyMatchAnyIndex.cpp b/src/Functions/multiFuzzyMatchAnyIndex.cpp index 255f710e2b3..4b24a06e171 100644 --- a/src/Functions/multiFuzzyMatchAnyIndex.cpp +++ b/src/Functions/multiFuzzyMatchAnyIndex.cpp @@ -13,7 +13,7 @@ struct NameMultiFuzzyMatchAnyIndex static constexpr auto name = "multiFuzzyMatchAnyIndex"; }; -using FunctionMultiFuzzyMatchAnyIndex = FunctionsMultiStringFuzzySearch>; +using FunctionMultiFuzzyMatchAnyIndex = FunctionsMultiStringFuzzySearch>; } diff --git a/src/Functions/multiMatchAllIndices.cpp b/src/Functions/multiMatchAllIndices.cpp index 1c6577e5aa3..47bd57029e2 100644 --- a/src/Functions/multiMatchAllIndices.cpp +++ b/src/Functions/multiMatchAllIndices.cpp @@ -13,7 +13,7 @@ struct NameMultiMatchAllIndices static constexpr auto name = "multiMatchAllIndices"; }; -using FunctionMultiMatchAllIndices = FunctionsMultiStringSearch>; +using FunctionMultiMatchAllIndices = FunctionsMultiStringSearch>; } diff --git a/src/Functions/multiMatchAny.cpp b/src/Functions/multiMatchAny.cpp index 4920e9c230f..324e435de26 100644 --- a/src/Functions/multiMatchAny.cpp +++ b/src/Functions/multiMatchAny.cpp @@ -13,7 +13,7 @@ struct NameMultiMatchAny static constexpr auto name = "multiMatchAny"; }; -using FunctionMultiMatchAny = FunctionsMultiStringSearch>; +using FunctionMultiMatchAny = FunctionsMultiStringSearch>; } diff --git a/src/Functions/multiMatchAnyIndex.cpp b/src/Functions/multiMatchAnyIndex.cpp index bf68e8576a5..6a11fa4eb35 100644 --- a/src/Functions/multiMatchAnyIndex.cpp +++ b/src/Functions/multiMatchAnyIndex.cpp @@ -13,7 +13,7 @@ struct NameMultiMatchAnyIndex static constexpr auto name = "multiMatchAnyIndex"; }; -using FunctionMultiMatchAnyIndex = FunctionsMultiStringSearch>; +using FunctionMultiMatchAnyIndex = FunctionsMultiStringSearch>; } From c2cea38b97e2282277d02e27c6ba249ed50179b5 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sat, 25 Jun 2022 17:41:24 +0200 Subject: [PATCH 275/525] Move local variable into if statement --- src/Functions/FunctionsMultiStringFuzzySearch.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index b83b5c4192b..c161ffc50cd 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -74,15 +74,14 @@ public: const ColumnString * col_haystack_vector = checkAndGetColumn(&*column_haystack); assert(col_haystack_vector); // getReturnTypeImpl() checks the data type - const ColumnConst * col_const_num = nullptr; UInt32 edit_distance = 0; - if ((col_const_num = checkAndGetColumnConst(num_ptr.get()))) - edit_distance = col_const_num->getValue(); - else if ((col_const_num = checkAndGetColumnConst(num_ptr.get()))) - edit_distance = col_const_num->getValue(); - else if ((col_const_num = checkAndGetColumnConst(num_ptr.get()))) - edit_distance = col_const_num->getValue(); + if (const auto * col_const_uint8 = checkAndGetColumnConst(num_ptr.get())) + edit_distance = col_const_uint8->getValue(); + else if (const auto * col_const_uint16 = checkAndGetColumnConst(num_ptr.get())) + edit_distance = col_const_uint16->getValue(); + else if (const auto * col_const_uint32 = checkAndGetColumnConst(num_ptr.get())) + edit_distance = col_const_uint32->getValue(); else throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The number is not const or does not fit in UInt32", arguments[1].column->getName()); From e2b11899a1c6371c70f375a3ac119bd5b73a43d8 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sat, 25 Jun 2022 17:53:11 +0200 Subject: [PATCH 276/525] Move check if cfg allows hyperscan into implementations - This is not needed for non-const regexp array arguments but cleans up the code and runs the check only in functions which actually use hyperscan. --- src/Functions/FunctionsMultiStringFuzzySearch.h | 16 ++++++++-------- src/Functions/FunctionsMultiStringSearch.h | 16 ++++++++-------- src/Functions/MultiMatchAllIndicesImpl.h | 10 +++++++--- src/Functions/MultiMatchAnyImpl.h | 11 ++++++++--- src/Functions/MultiSearchFirstIndexImpl.h | 2 +- src/Functions/MultiSearchFirstPositionImpl.h | 2 +- src/Functions/MultiSearchImpl.h | 2 +- 7 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index c161ffc50cd..33721dd19ef 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -30,18 +30,17 @@ class FunctionsMultiStringFuzzySearch : public IFunction { public: static constexpr auto name = Impl::name; + static FunctionPtr create(ContextPtr context) { const auto & settings = context->getSettingsRef(); - - if (Impl::is_using_hyperscan && !settings.allow_hyperscan) - throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); - - return std::make_shared(settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); + return std::make_shared(settings.allow_hyperscan, settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); } - FunctionsMultiStringFuzzySearch(size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) - : max_hyperscan_regexp_length(max_hyperscan_regexp_length_), max_hyperscan_regexp_total_length(max_hyperscan_regexp_total_length_) + FunctionsMultiStringFuzzySearch(bool allow_hyperscan_, size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) + : allow_hyperscan(allow_hyperscan_) + , max_hyperscan_regexp_length(max_hyperscan_regexp_length_) + , max_hyperscan_regexp_total_length(max_hyperscan_regexp_total_length_) {} String getName() const override { return name; } @@ -108,7 +107,7 @@ public: Impl::vectorConstant( col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance, - max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); @@ -117,6 +116,7 @@ public: } private: + const bool allow_hyperscan; const size_t max_hyperscan_regexp_length; const size_t max_hyperscan_regexp_total_length; }; diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 8b48f8f9eaa..b4ff354af41 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -45,18 +45,17 @@ class FunctionsMultiStringSearch : public IFunction { public: static constexpr auto name = Impl::name; + static FunctionPtr create(ContextPtr context) { const auto & settings = context->getSettingsRef(); - - if (Impl::is_using_hyperscan && !settings.allow_hyperscan) - throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); - - return std::make_shared(settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); + return std::make_shared(settings.allow_hyperscan, settings.max_hyperscan_regexp_length, settings.max_hyperscan_regexp_total_length); } - FunctionsMultiStringSearch(size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) - : max_hyperscan_regexp_length(max_hyperscan_regexp_length_), max_hyperscan_regexp_total_length(max_hyperscan_regexp_total_length_) + FunctionsMultiStringSearch(bool allow_hyperscan_, size_t max_hyperscan_regexp_length_, size_t max_hyperscan_regexp_total_length_) + : allow_hyperscan(allow_hyperscan_) + , max_hyperscan_regexp_length(max_hyperscan_regexp_length_) + , max_hyperscan_regexp_total_length(max_hyperscan_regexp_total_length_) {} String getName() const override { return name; } @@ -108,7 +107,7 @@ public: Impl::vectorConstant( col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, - max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); if constexpr (Impl::is_column_array) return ColumnArray::create(std::move(col_res), std::move(col_offsets)); @@ -117,6 +116,7 @@ public: } private: + const bool allow_hyperscan; const size_t max_hyperscan_regexp_length; const size_t max_hyperscan_regexp_total_length; }; diff --git a/src/Functions/MultiMatchAllIndicesImpl.h b/src/Functions/MultiMatchAllIndicesImpl.h index 3234782d1c1..97149b48df1 100644 --- a/src/Functions/MultiMatchAllIndicesImpl.h +++ b/src/Functions/MultiMatchAllIndicesImpl.h @@ -20,8 +20,9 @@ namespace DB namespace ErrorCodes { - extern const int HYPERSCAN_CANNOT_SCAN_TEXT; extern const int CANNOT_ALLOCATE_MEMORY; + extern const int FUNCTION_NOT_ALLOWED; + extern const int HYPERSCAN_CANNOT_SCAN_TEXT; extern const int NOT_IMPLEMENTED; extern const int TOO_MANY_BYTES; } @@ -32,7 +33,6 @@ struct MultiMatchAllIndicesImpl { using ResultType = ResultType_; - static constexpr bool is_using_hyperscan = true; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. static constexpr bool is_column_array = true; @@ -49,10 +49,11 @@ struct MultiMatchAllIndicesImpl const std::vector & needles, PaddedPODArray & res, PaddedPODArray & offsets, + bool allow_hyperscan, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { - vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); } static void vectorConstant( @@ -62,9 +63,12 @@ struct MultiMatchAllIndicesImpl [[maybe_unused]] PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance, + bool allow_hyperscan, [[maybe_unused]] size_t max_hyperscan_regexp_length, [[maybe_unused]] size_t max_hyperscan_regexp_total_length) { + if (!allow_hyperscan) + throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); #if USE_VECTORSCAN checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); diff --git a/src/Functions/MultiMatchAnyImpl.h b/src/Functions/MultiMatchAnyImpl.h index 12b7f76d173..956458e2953 100644 --- a/src/Functions/MultiMatchAnyImpl.h +++ b/src/Functions/MultiMatchAnyImpl.h @@ -21,8 +21,9 @@ namespace DB namespace ErrorCodes { - extern const int HYPERSCAN_CANNOT_SCAN_TEXT; extern const int CANNOT_ALLOCATE_MEMORY; + extern const int FUNCTION_NOT_ALLOWED; + extern const int HYPERSCAN_CANNOT_SCAN_TEXT; extern const int NOT_IMPLEMENTED; extern const int TOO_MANY_BYTES; } @@ -45,7 +46,6 @@ struct MultiMatchAnyImpl static constexpr bool FindAny = (Find == MultiMatchTraits::Find::Any); static constexpr bool FindAnyIndex = (Find == MultiMatchTraits::Find::AnyIndex); - static constexpr bool is_using_hyperscan = true; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. static constexpr bool is_column_array = false; @@ -62,10 +62,11 @@ struct MultiMatchAnyImpl const std::vector & needles, PaddedPODArray & res, PaddedPODArray & offsets, + bool allow_hyperscan, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { - vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); } static void vectorConstant( @@ -75,9 +76,13 @@ struct MultiMatchAnyImpl PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance, + bool allow_hyperscan, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { + if (!allow_hyperscan) + throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); + checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); res.resize(haystack_offsets.size()); diff --git a/src/Functions/MultiSearchFirstIndexImpl.h b/src/Functions/MultiSearchFirstIndexImpl.h index 4f01c45bdf4..3a853625b37 100644 --- a/src/Functions/MultiSearchFirstIndexImpl.h +++ b/src/Functions/MultiSearchFirstIndexImpl.h @@ -16,7 +16,6 @@ template struct MultiSearchFirstIndexImpl { using ResultType = UInt64; - static constexpr bool is_using_hyperscan = false; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. static constexpr bool is_column_array = false; @@ -30,6 +29,7 @@ struct MultiSearchFirstIndexImpl const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, + bool /*allow_hyperscan*/, size_t /*max_hyperscan_regexp_length*/, size_t /*max_hyperscan_regexp_total_length*/) { diff --git a/src/Functions/MultiSearchFirstPositionImpl.h b/src/Functions/MultiSearchFirstPositionImpl.h index 2260950c5d4..87eb56c3b11 100644 --- a/src/Functions/MultiSearchFirstPositionImpl.h +++ b/src/Functions/MultiSearchFirstPositionImpl.h @@ -16,7 +16,6 @@ template struct MultiSearchFirstPositionImpl { using ResultType = UInt64; - static constexpr bool is_using_hyperscan = false; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. static constexpr bool is_column_array = false; @@ -30,6 +29,7 @@ struct MultiSearchFirstPositionImpl const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, + bool /*allow_hyperscan*/, size_t /*max_hyperscan_regexp_length*/, size_t /*max_hyperscan_regexp_total_length*/) { diff --git a/src/Functions/MultiSearchImpl.h b/src/Functions/MultiSearchImpl.h index 0c951f3c5fc..63ad41f1f7b 100644 --- a/src/Functions/MultiSearchImpl.h +++ b/src/Functions/MultiSearchImpl.h @@ -16,7 +16,6 @@ template struct MultiSearchImpl { using ResultType = UInt8; - static constexpr bool is_using_hyperscan = false; /// Variable for understanding, if we used offsets for the output, most /// likely to determine whether the function returns ColumnVector of ColumnArray. static constexpr bool is_column_array = false; @@ -30,6 +29,7 @@ struct MultiSearchImpl const std::vector & needles, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, + bool /*allow_hyperscan*/, size_t /*max_hyperscan_regexp_length*/, size_t /*max_hyperscan_regexp_total_length*/) { From b8f67185bf43e25005f697cdd0402479155bbeb3 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sat, 25 Jun 2022 18:05:49 +0200 Subject: [PATCH 277/525] Cosmetics: Whitespaces --- src/Functions/FunctionsMultiStringFuzzySearch.h | 4 ---- src/Functions/FunctionsMultiStringSearch.h | 3 --- 2 files changed, 7 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index 33721dd19ef..b42352d990e 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -74,7 +74,6 @@ public: assert(col_haystack_vector); // getReturnTypeImpl() checks the data type UInt32 edit_distance = 0; - if (const auto * col_const_uint8 = checkAndGetColumnConst(num_ptr.get())) edit_distance = col_const_uint8->getValue(); else if (const auto * col_const_uint16 = checkAndGetColumnConst(num_ptr.get())) @@ -85,15 +84,12 @@ public: throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The number is not const or does not fit in UInt32", arguments[1].column->getName()); const ColumnConst * col_const_arr = checkAndGetColumnConst(arr_ptr.get()); - if (!col_const_arr) throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The array is not const", arguments[2].column->getName()); Array src_arr = col_const_arr->getValue(); - std::vector refs; refs.reserve(src_arr.size()); - for (const auto & el : src_arr) refs.emplace_back(el.get()); diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index b4ff354af41..1fe2e036a9a 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -85,15 +85,12 @@ public: assert(col_haystack_vector); // getReturnTypeImpl() checks the data type const ColumnConst * col_const_arr = checkAndGetColumnConst(arr_ptr.get()); - if (!col_const_arr) throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The array is not const", arguments[1].column->getName()); Array src_arr = col_const_arr->getValue(); - std::vector refs; refs.reserve(src_arr.size()); - for (const auto & el : src_arr) refs.emplace_back(el.get()); From cb5d1a4a856e3362a276f801de4c456e1908429f Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sun, 26 Jun 2022 15:45:52 +0000 Subject: [PATCH 278/525] Fix style check --- src/Functions/FunctionsMultiStringFuzzySearch.h | 1 - src/Functions/FunctionsMultiStringSearch.h | 1 - 2 files changed, 2 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index b42352d990e..b6428bb0f11 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -21,7 +21,6 @@ namespace ErrorCodes { extern const int ILLEGAL_TYPE_OF_ARGUMENT; extern const int ILLEGAL_COLUMN; - extern const int FUNCTION_NOT_ALLOWED; } diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index 1fe2e036a9a..be51f412f06 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -36,7 +36,6 @@ namespace ErrorCodes { extern const int ILLEGAL_TYPE_OF_ARGUMENT; extern const int ILLEGAL_COLUMN; - extern const int FUNCTION_NOT_ALLOWED; } From 959cbaab02b5c4cb961a1621cfbd6aa7cc932c31 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Sun, 26 Jun 2022 16:12:17 +0000 Subject: [PATCH 279/525] Move loop over patterns into implementations - This is preparation for non-const regexp arguments, where this loop will run for each row. --- src/Functions/FunctionsMultiStringFuzzySearch.h | 9 ++------- src/Functions/FunctionsMultiStringSearch.h | 9 ++------- src/Functions/MultiMatchAllIndicesImpl.h | 12 +++++++++--- src/Functions/MultiMatchAnyImpl.h | 12 +++++++++--- src/Functions/MultiSearchFirstIndexImpl.h | 12 +++++++++--- src/Functions/MultiSearchFirstPositionImpl.h | 12 +++++++++--- src/Functions/MultiSearchImpl.h | 12 +++++++++--- 7 files changed, 49 insertions(+), 29 deletions(-) diff --git a/src/Functions/FunctionsMultiStringFuzzySearch.h b/src/Functions/FunctionsMultiStringFuzzySearch.h index b6428bb0f11..865a5d182c8 100644 --- a/src/Functions/FunctionsMultiStringFuzzySearch.h +++ b/src/Functions/FunctionsMultiStringFuzzySearch.h @@ -86,12 +86,6 @@ public: if (!col_const_arr) throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The array is not const", arguments[2].column->getName()); - Array src_arr = col_const_arr->getValue(); - std::vector refs; - refs.reserve(src_arr.size()); - for (const auto & el : src_arr) - refs.emplace_back(el.get()); - using ResultType = typename Impl::ResultType; auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); @@ -100,8 +94,9 @@ public: auto & offsets_res = col_offsets->getData(); // the implementations are responsible for resizing the output column + Array needles_arr = col_const_arr->getValue(); Impl::vectorConstant( - col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, edit_distance, + col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), needles_arr, vec_res, offsets_res, edit_distance, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); if constexpr (Impl::is_column_array) diff --git a/src/Functions/FunctionsMultiStringSearch.h b/src/Functions/FunctionsMultiStringSearch.h index be51f412f06..04235e0a97a 100644 --- a/src/Functions/FunctionsMultiStringSearch.h +++ b/src/Functions/FunctionsMultiStringSearch.h @@ -87,12 +87,6 @@ public: if (!col_const_arr) throw Exception(ErrorCodes::ILLEGAL_COLUMN, "Illegal column {}. The array is not const", arguments[1].column->getName()); - Array src_arr = col_const_arr->getValue(); - std::vector refs; - refs.reserve(src_arr.size()); - for (const auto & el : src_arr) - refs.emplace_back(el.get()); - using ResultType = typename Impl::ResultType; auto col_res = ColumnVector::create(); auto col_offsets = ColumnArray::ColumnOffsets::create(); @@ -101,8 +95,9 @@ public: auto & offsets_res = col_offsets->getData(); // the implementations are responsible for resizing the output column + Array needles_arr = col_const_arr->getValue(); Impl::vectorConstant( - col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), refs, vec_res, offsets_res, + col_haystack_vector->getChars(), col_haystack_vector->getOffsets(), needles_arr, vec_res, offsets_res, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); if constexpr (Impl::is_column_array) diff --git a/src/Functions/MultiMatchAllIndicesImpl.h b/src/Functions/MultiMatchAllIndicesImpl.h index 97149b48df1..9c60dbffe91 100644 --- a/src/Functions/MultiMatchAllIndicesImpl.h +++ b/src/Functions/MultiMatchAllIndicesImpl.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include #include @@ -46,20 +47,20 @@ struct MultiMatchAllIndicesImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const Array & needles_arr, PaddedPODArray & res, PaddedPODArray & offsets, bool allow_hyperscan, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { - vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + vectorConstant(haystack_data, haystack_offsets, needles_arr, res, offsets, std::nullopt, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); } static void vectorConstant( [[maybe_unused]] const ColumnString::Chars & haystack_data, [[maybe_unused]] const ColumnString::Offsets & haystack_offsets, - [[maybe_unused]] const std::vector & needles, + [[maybe_unused]] const Array & needles_arr, [[maybe_unused]] PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance, @@ -70,6 +71,11 @@ struct MultiMatchAllIndicesImpl if (!allow_hyperscan) throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); #if USE_VECTORSCAN + std::vector needles; + needles.reserve(needles_arr.size()); + for (const auto & needle : needles_arr) + needles.emplace_back(needle.get()); + checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); offsets.resize(haystack_offsets.size()); diff --git a/src/Functions/MultiMatchAnyImpl.h b/src/Functions/MultiMatchAnyImpl.h index 956458e2953..0752e87e8af 100644 --- a/src/Functions/MultiMatchAnyImpl.h +++ b/src/Functions/MultiMatchAnyImpl.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include #include @@ -59,20 +60,20 @@ struct MultiMatchAnyImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const Array & needles_arr, PaddedPODArray & res, PaddedPODArray & offsets, bool allow_hyperscan, size_t max_hyperscan_regexp_length, size_t max_hyperscan_regexp_total_length) { - vectorConstant(haystack_data, haystack_offsets, needles, res, offsets, std::nullopt, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); + vectorConstant(haystack_data, haystack_offsets, needles_arr, res, offsets, std::nullopt, allow_hyperscan, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); } static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const Array & needles_arr, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, [[maybe_unused]] std::optional edit_distance, @@ -83,6 +84,11 @@ struct MultiMatchAnyImpl if (!allow_hyperscan) throw Exception(ErrorCodes::FUNCTION_NOT_ALLOWED, "Hyperscan functions are disabled, because setting 'allow_hyperscan' is set to 0"); + std::vector needles; + needles.reserve(needles_arr.size()); + for (const auto & needle : needles_arr) + needles.emplace_back(needle.get()); + checkHyperscanRegexp(needles, max_hyperscan_regexp_length, max_hyperscan_regexp_total_length); res.resize(haystack_offsets.size()); diff --git a/src/Functions/MultiSearchFirstIndexImpl.h b/src/Functions/MultiSearchFirstIndexImpl.h index 3a853625b37..f69a3edbf8b 100644 --- a/src/Functions/MultiSearchFirstIndexImpl.h +++ b/src/Functions/MultiSearchFirstIndexImpl.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include @@ -26,7 +27,7 @@ struct MultiSearchFirstIndexImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const Array & needles_arr, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, bool /*allow_hyperscan*/, @@ -34,10 +35,15 @@ struct MultiSearchFirstIndexImpl size_t /*max_hyperscan_regexp_total_length*/) { // For performance of Volnitsky search, it is crucial to save only one byte for pattern number. - if (needles.size() > std::numeric_limits::max()) + if (needles_arr.size() > std::numeric_limits::max()) throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, "Number of arguments for function {} doesn't match: passed {}, should be at most {}", - name, std::to_string(needles.size()), std::to_string(std::numeric_limits::max())); + name, std::to_string(needles_arr.size()), std::to_string(std::numeric_limits::max())); + + std::vector needles; + needles.reserve(needles_arr.size()); + for (const auto & needle : needles_arr) + needles.emplace_back(needle.get()); auto searcher = Impl::createMultiSearcherInBigHaystack(needles); const size_t haystack_string_size = haystack_offsets.size(); diff --git a/src/Functions/MultiSearchFirstPositionImpl.h b/src/Functions/MultiSearchFirstPositionImpl.h index 87eb56c3b11..21d558a6d58 100644 --- a/src/Functions/MultiSearchFirstPositionImpl.h +++ b/src/Functions/MultiSearchFirstPositionImpl.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include @@ -26,7 +27,7 @@ struct MultiSearchFirstPositionImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const Array & needles_arr, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, bool /*allow_hyperscan*/, @@ -34,10 +35,15 @@ struct MultiSearchFirstPositionImpl size_t /*max_hyperscan_regexp_total_length*/) { // For performance of Volnitsky search, it is crucial to save only one byte for pattern number. - if (needles.size() > std::numeric_limits::max()) + if (needles_arr.size() > std::numeric_limits::max()) throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, "Number of arguments for function {} doesn't match: passed {}, should be at most {}", - name, std::to_string(needles.size()), std::to_string(std::numeric_limits::max())); + name, std::to_string(needles_arr.size()), std::to_string(std::numeric_limits::max())); + + std::vector needles; + needles.reserve(needles_arr.size()); + for (const auto & needle : needles_arr) + needles.emplace_back(needle.get()); auto res_callback = [](const UInt8 * start, const UInt8 * end) -> UInt64 { diff --git a/src/Functions/MultiSearchImpl.h b/src/Functions/MultiSearchImpl.h index 63ad41f1f7b..1124184f58c 100644 --- a/src/Functions/MultiSearchImpl.h +++ b/src/Functions/MultiSearchImpl.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include @@ -26,7 +27,7 @@ struct MultiSearchImpl static void vectorConstant( const ColumnString::Chars & haystack_data, const ColumnString::Offsets & haystack_offsets, - const std::vector & needles, + const Array & needles_arr, PaddedPODArray & res, [[maybe_unused]] PaddedPODArray & offsets, bool /*allow_hyperscan*/, @@ -34,10 +35,15 @@ struct MultiSearchImpl size_t /*max_hyperscan_regexp_total_length*/) { // For performance of Volnitsky search, it is crucial to save only one byte for pattern number. - if (needles.size() > std::numeric_limits::max()) + if (needles_arr.size() > std::numeric_limits::max()) throw Exception(ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH, "Number of arguments for function {} doesn't match: passed {}, should be at most {}", - name, std::to_string(needles.size()), std::to_string(std::numeric_limits::max())); + name, std::to_string(needles_arr.size()), std::to_string(std::numeric_limits::max())); + + std::vector needles; + needles.reserve(needles_arr.size()); + for (const auto & needle : needles_arr) + needles.emplace_back(needle.get()); auto searcher = Impl::createMultiSearcherInBigHaystack(needles); const size_t haystack_string_size = haystack_offsets.size(); From 83b584b2dd7564dd3e4e75429e5ed629bdff13c8 Mon Sep 17 00:00:00 2001 From: alesapin Date: Sun, 26 Jun 2022 18:43:28 +0200 Subject: [PATCH 280/525] Something --- .../MergeTree/DataPartStorageOnDisk.cpp | 12 +++++----- .../MergeTree/DataPartStorageOnDisk.h | 13 +++++++++-- src/Storages/MergeTree/IDataPartStorage.h | 22 +++++++++---------- src/Storages/MergeTree/IMergeTreeDataPart.cpp | 15 +------------ src/Storages/MergeTree/IMergeTreeDataPart.h | 2 +- .../MergeTree/MergeTreeDataPartInMemory.cpp | 2 +- .../MergeTree/MergeTreeDataPartInMemory.h | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 8 +++++-- 8 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 265964b7dc0..4b53ab86dde 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -691,7 +691,12 @@ DataPartStoragePtr DataPartStorageOnDisk::clone( return std::make_shared(single_disk_volume, to, dir_path); } -void DataPartStorageOnDisk::rename(const std::string & new_root_path, const std::string & new_part_dir, Poco::Logger * log, bool remove_new_dir_if_exists, bool fsync_part_dir) +void DataPartStorageBuilderOnDisk::rename( + const std::string & new_root_path, + const std::string & new_part_dir, + Poco::Logger * log, + bool remove_new_dir_if_exists, + bool fsync_part_dir) { if (!exists()) throw Exception( @@ -699,7 +704,6 @@ void DataPartStorageOnDisk::rename(const std::string & new_root_path, const std: "Part directory {} doesn't exist. Most likely it is a logical error.", std::string(fs::path(volume->getDisk()->getPath()) / root_path / part_dir)); - /// Why "" ? String to = fs::path(new_root_path) / new_part_dir / ""; if (volume->getDisk()->exists(to)) @@ -725,9 +729,6 @@ void DataPartStorageOnDisk::rename(const std::string & new_root_path, const std: } } - // metadata_manager->deleteAll(true); - // metadata_manager->assertAllDeleted(true); - String from = getRelativePath(); /// Why? @@ -735,7 +736,6 @@ void DataPartStorageOnDisk::rename(const std::string & new_root_path, const std: volume->getDisk()->moveDirectory(from, to); part_dir = new_part_dir; root_path = new_root_path; - // metadata_manager->updateAll(true); SyncGuardPtr sync_guard; if (fsync_part_dir) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.h b/src/Storages/MergeTree/DataPartStorageOnDisk.h index 90dec12b283..f29bec47b99 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.h +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.h @@ -104,8 +104,6 @@ public: const DiskPtr & disk, Poco::Logger * log) const override; - void rename(const std::string & new_root_path, const std::string & new_part_dir, Poco::Logger * log, bool remove_new_dir_if_exists, bool fsync_part_dir) override; - void changeRootPath(const std::string & from_root, const std::string & to_root) override; private: @@ -159,6 +157,17 @@ public: DataPartStoragePtr getStorage() const override; + /// Rename part. + /// Ideally, new_root_path should be the same as current root (but it is not true). + /// Examples are: 'all_1_2_1' -> 'detached/all_1_2_1' + /// 'moving/tmp_all_1_2_1' -> 'all_1_2_1' + void rename( + const std::string & new_root_path, + const std::string & new_part_dir, + Poco::Logger * log, + bool remove_new_dir_if_exists, + bool fsync_part_dir) override; + void commit() override; private: diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index f75fbbbd5a3..0f69fcb41d2 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -191,17 +191,6 @@ public: const DiskPtr & disk, Poco::Logger * log) const = 0; - /// Rename part. - /// Ideally, new_root_path should be the same as current root (but it is not true). - /// Examples are: 'all_1_2_1' -> 'detached/all_1_2_1' - /// 'moving/tmp_all_1_2_1' -> 'all_1_2_1' - virtual void rename( - const std::string & new_root_path, - const std::string & new_part_dir, - Poco::Logger * log, - bool remove_new_dir_if_exists, - bool fsync_part_dir) = 0; - /// Change part's root. from_root should be a prefix path of current root path. /// Right now, this is needed for rename table query. virtual void changeRootPath(const std::string & from_root, const std::string & to_root) = 0; @@ -244,6 +233,17 @@ public: virtual DataPartStoragePtr getStorage() const = 0; + /// Rename part. + /// Ideally, new_root_path should be the same as current root (but it is not true). + /// Examples are: 'all_1_2_1' -> 'detached/all_1_2_1' + /// 'moving/tmp_all_1_2_1' -> 'all_1_2_1' + virtual void rename( + const std::string & new_root_path, + const std::string & new_part_dir, + Poco::Logger * log, + bool remove_new_dir_if_exists, + bool fsync_part_dir) = 0; + virtual void commit() = 0; }; diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.cpp b/src/Storages/MergeTree/IMergeTreeDataPart.cpp index 3cb3d052b0c..661dbb13289 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.cpp +++ b/src/Storages/MergeTree/IMergeTreeDataPart.cpp @@ -1358,20 +1358,7 @@ bool IMergeTreeDataPart::shallParticipateInMerges(const StoragePolicyPtr & stora return data_part_storage->shallParticipateInMerges(*storage_policy); } -// UInt64 IMergeTreeDataPart::calculateTotalSizeOnDisk(const DataPartStoragePtr & data_part_storage_, const String & from) -// { -// if (data_part_storage_->isFile(from)) -// return data_part_storage_->getFileSize(from); -// std::vector files; -// disk_->listFiles(from, files); -// UInt64 res = 0; -// for (const auto & file : files) -// res += calculateTotalSizeOnDisk(data_part_storage_, fs::path(from) / file); -// return res; -// } - - -void IMergeTreeDataPart::renameTo(const String & new_relative_path, bool remove_new_dir_if_exists) const +void IMergeTreeDataPart::renameTo(const String & new_relative_path, bool remove_new_dir_if_exists, DataPartStorageBuilderPtr builder) const try { assertOnDisk(); diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.h b/src/Storages/MergeTree/IMergeTreeDataPart.h index 66a6fe065f7..895b1e89b56 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.h +++ b/src/Storages/MergeTree/IMergeTreeDataPart.h @@ -345,7 +345,7 @@ public: /// Makes checks and move part to new directory /// Changes only relative_dir_name, you need to update other metadata (name, is_temp) explicitly - virtual void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists) const; + virtual void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists, DataPartStorageBuilderPtr builder) const; /// Makes clone of a part in detached/ directory via hard links virtual void makeCloneInDetached(const String & prefix, const StorageMetadataPtr & metadata_snapshot) const; diff --git a/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp b/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp index 4c87daa1e13..8a26ae34ede 100644 --- a/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp +++ b/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp @@ -144,7 +144,7 @@ void MergeTreeDataPartInMemory::makeCloneInDetached(const String & prefix, const flushToDisk(detached_path, metadata_snapshot); } -void MergeTreeDataPartInMemory::renameTo(const String & new_relative_path, bool /* remove_new_dir_if_exists */) const +void MergeTreeDataPartInMemory::renameTo(const String & new_relative_path, bool /* remove_new_dir_if_exists */, DataPartStorageBuilderPtr builder) const { data_part_storage->setRelativePath(new_relative_path); diff --git a/src/Storages/MergeTree/MergeTreeDataPartInMemory.h b/src/Storages/MergeTree/MergeTreeDataPartInMemory.h index c9caf043b7b..d10bdde202b 100644 --- a/src/Storages/MergeTree/MergeTreeDataPartInMemory.h +++ b/src/Storages/MergeTree/MergeTreeDataPartInMemory.h @@ -47,7 +47,7 @@ public: bool isStoredOnRemoteDiskWithZeroCopySupport() const override { return false; } bool hasColumnFiles(const NameAndTypePair & column) const override { return !!getColumnPosition(column.getNameInStorage()); } String getFileNameForColumn(const NameAndTypePair & /* column */) const override { return ""; } - void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists) const override; + void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists, DataPartStorageBuilderPtr builder) const override; void makeCloneInDetached(const String & prefix, const StorageMetadataPtr & metadata_snapshot) const override; DataPartStoragePtr flushToDisk(const String & new_relative_path, const StorageMetadataPtr & metadata_snapshot) const; diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 6895142b2a4..38d218a87d2 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -4154,8 +4154,12 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora } -DataPartStoragePtr StorageReplicatedMergeTree::fetchExistsPart(const String & part_name, const StorageMetadataPtr & metadata_snapshot, - const String & source_replica_path, DiskPtr replaced_disk, String replaced_part_path) +DataPartStoragePtr StorageReplicatedMergeTree::fetchExistsPart( + const String & part_name, + const StorageMetadataPtr & metadata_snapshot, + const String & source_replica_path, + DiskPtr replaced_disk, + String replaced_part_path) { auto zookeeper = getZooKeeper(); const auto part_info = MergeTreePartInfo::fromPartName(part_name, format_version); From edd29707ca67e9041b34cea508a6d9f83ea9129f Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Sun, 26 Jun 2022 21:20:56 +0000 Subject: [PATCH 281/525] Some polishing --- .../Transforms/DistinctSortedChunkTransform.cpp | 12 ++++++------ .../Transforms/DistinctSortedChunkTransform.h | 10 ++++++---- .../02317_distinct_in_order_optimization_explain.sh | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index 988555385db..79f3960de05 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -70,7 +70,7 @@ size_t DistinctSortedChunkTransform::ordinaryDistinctOnRange(IColumn::Filter & f // clang-format off #define M(NAME) \ case ClearableSetVariants::Type::NAME: \ - count = buildFilterForRange(*data.NAME, filter, range_begin, range_end, data, clear_data); \ + count = buildFilterForRange(*data.NAME, filter, range_begin, range_end, clear_data); \ break; APPLY_FOR_SET_VARIANTS(M) @@ -82,7 +82,7 @@ size_t DistinctSortedChunkTransform::ordinaryDistinctOnRange(IColumn::Filter & f template size_t DistinctSortedChunkTransform::buildFilterForRange( - Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants, bool clear_data) + Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, bool clear_data) { typename Method::State state(other_columns, other_columns_sizes, nullptr); if (clear_data) @@ -91,7 +91,7 @@ size_t DistinctSortedChunkTransform::buildFilterForRange( size_t count = 0; for (size_t i = range_begin; i < range_end; ++i) { - auto emplace_result = state.emplaceKey(method.data, i, variants.string_pool); + auto emplace_result = state.emplaceKey(method.data, i, data.string_pool); /// emit the record if there is no such key in the current set, skip otherwise filter[i] = emplace_result.isInserted(); @@ -111,7 +111,7 @@ void DistinctSortedChunkTransform::setCurrentKey(const size_t row_pos) } } -bool DistinctSortedChunkTransform::isCurrentKey(const size_t row_pos) +bool DistinctSortedChunkTransform::isCurrentKey(const size_t row_pos) const { for (size_t i = 0; i < sorted_columns.size(); ++i) { @@ -122,7 +122,7 @@ bool DistinctSortedChunkTransform::isCurrentKey(const size_t row_pos) return true; } -size_t DistinctSortedChunkTransform::getRangeEnd(size_t range_begin, size_t range_end) +size_t DistinctSortedChunkTransform::getRangeEnd(size_t range_begin, size_t range_end) const { size_t low = range_begin; size_t high = range_end - 1; @@ -172,7 +172,7 @@ void DistinctSortedChunkTransform::transform(Chunk & chunk) /// otherwise: apply ordinary distinct /// (3) repeat until chunk is processed IColumn::Filter filter(chunk_rows); - auto [range_begin, output_rows] = continueWithPrevRange(chunk_rows, filter); + auto [range_begin, output_rows] = continueWithPrevRange(chunk_rows, filter); /// try to process chuck as continuation of previous one size_t range_end = range_begin; while (range_end != chunk_rows) { diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.h b/src/Processors/Transforms/DistinctSortedChunkTransform.h index a0a9be34e4c..8f437d6fb9c 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.h +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.h @@ -11,6 +11,9 @@ namespace DB /// /// DISTINCT optimization for sorted chunks +/// It also checks if current chunks is continuation of previous one, +/// i.e. sorting prefix value of last row in previous chunk is the same as of first row in current one, +/// so it can correctly process sorted stream as well /// class DistinctSortedChunkTransform : public ISimpleTransform { @@ -32,12 +35,11 @@ private: std::tuple continueWithPrevRange(size_t chunk_rows, IColumn::Filter & filter); size_t ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end, bool clear_data); inline void setCurrentKey(size_t row_pos); - inline bool isCurrentKey(size_t row_pos); - inline size_t getRangeEnd(size_t range_begin, size_t range_end); + inline bool isCurrentKey(size_t row_pos) const; + inline size_t getRangeEnd(size_t range_begin, size_t range_end) const; template - size_t buildFilterForRange( - Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, ClearableSetVariants & variants, bool clear_data); + size_t buildFilterForRange(Method & method, IColumn::Filter & filter, size_t range_begin, size_t range_end, bool clear_data); ClearableSetVariants data; diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh index 21f50a147ac..33fb6f12110 100755 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh @@ -8,7 +8,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) DISABLE_OPTIMIZATION="set optimize_distinct_in_order=0" ENABLE_OPTIMIZATION="set optimize_distinct_in_order=1" -GREP_OPTIMIZATIONS="grep 'DistinctSortedChunkTransform\|DistinctSortedTransform'" +GREP_OPTIMIZATIONS="grep 'DistinctSortedChunkTransform'" TRIM_LEADING_SPACES="sed -e 's/^[ \t]*//'" FIND_OPTIMIZATIONS="$GREP_OPTIMIZATIONS | $TRIM_LEADING_SPACES" From 5727671cacd72fe00b93d965e18054c479289cd5 Mon Sep 17 00:00:00 2001 From: kssenii Date: Mon, 27 Jun 2022 00:34:57 +0200 Subject: [PATCH 282/525] Fix tests --- src/Disks/IO/ReadBufferFromRemoteFSGather.cpp | 12 ++++++++---- src/Disks/IO/ReadBufferFromRemoteFSGather.h | 1 - .../ObjectStorages/DiskObjectStorageMetadata.cpp | 2 +- src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp | 2 +- src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h | 2 -- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp index b53ba0f8e29..1a4ae3f963f 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.cpp @@ -84,16 +84,20 @@ SeekableReadBufferPtr ReadBufferFromS3Gather::createImplementationBufferImpl(con #if USE_AZURE_BLOB_STORAGE SeekableReadBufferPtr ReadBufferFromAzureBlobStorageGather::createImplementationBufferImpl(const String & path, size_t /* file_size */) { - current_file_path = path; - return std::make_unique(blob_container_client, path, max_single_read_retries, - max_single_download_retries, settings.remote_fs_buffer_size, /* use_external_buffer */true, read_until_position); + return std::make_unique( + blob_container_client, + path, + max_single_read_retries, + max_single_download_retries, + settings.remote_fs_buffer_size, + /* use_external_buffer */true, + read_until_position); } #endif SeekableReadBufferPtr ReadBufferFromWebServerGather::createImplementationBufferImpl(const String & path, size_t /* file_size */) { - current_file_path = path; return std::make_unique( fs::path(uri) / path, context, diff --git a/src/Disks/IO/ReadBufferFromRemoteFSGather.h b/src/Disks/IO/ReadBufferFromRemoteFSGather.h index e282a2cfc6c..6a39f4add46 100644 --- a/src/Disks/IO/ReadBufferFromRemoteFSGather.h +++ b/src/Disks/IO/ReadBufferFromRemoteFSGather.h @@ -188,7 +188,6 @@ class ReadBufferFromHDFSGather final : public ReadBufferFromRemoteFSGather public: ReadBufferFromHDFSGather( const Poco::Util::AbstractConfiguration & config_, - const String &, const PathsWithSize & blobs_to_read_, const ReadSettings & settings_) : ReadBufferFromRemoteFSGather(blobs_to_read_, settings_) diff --git a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp index 9ac04809b97..4564e84316d 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp @@ -120,7 +120,7 @@ DiskObjectStorageMetadata::DiskObjectStorageMetadata( void DiskObjectStorageMetadata::addObject(const String & path, size_t size) { - if (path.starts_with(remote_fs_root_path)) + if (!remote_fs_root_path.empty() && path.starts_with(remote_fs_root_path)) throw Exception(ErrorCodes::LOGICAL_ERROR, "Expected relative path"); total_size += size; diff --git a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp index 024d1e84ef0..82c700e1a63 100644 --- a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp +++ b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp @@ -54,7 +54,7 @@ std::unique_ptr HDFSObjectStorage::readObjects( /// NOLI std::optional, std::optional) const { - auto hdfs_impl = std::make_unique(config, hdfs_root_path, paths_to_read, read_settings); + auto hdfs_impl = std::make_unique(config, paths_to_read, read_settings); auto buf = std::make_unique(std::move(hdfs_impl)); return std::make_unique(std::move(buf), settings->min_bytes_for_seek); } diff --git a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h index 221a77ff08b..28f553906ea 100644 --- a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h +++ b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h @@ -50,7 +50,6 @@ public: , hdfs_builder(createHDFSBuilder(hdfs_root_path_, config)) , hdfs_fs(createHDFSFS(hdfs_builder.get())) , settings(std::move(settings_)) - , hdfs_root_path(hdfs_root_path_) {} bool exists(const std::string & hdfs_uri) const override; @@ -118,7 +117,6 @@ private: HDFSFSPtr hdfs_fs; SettingsPtr settings; - String hdfs_root_path; }; } From a3cb066eff264eb0661b89f46d688a3fd76f5eae Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Mon, 27 Jun 2022 09:38:12 +0800 Subject: [PATCH 283/525] update test case --- tests/integration/test_hive_query/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_hive_query/test.py b/tests/integration/test_hive_query/test.py index 46981fcee85..155aa4ced4a 100644 --- a/tests/integration/test_hive_query/test.py +++ b/tests/integration/test_hive_query/test.py @@ -438,7 +438,7 @@ def test_hive_struct_type(started_cluster): result = node.query( """ - SELECT day, f_struct.a FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 + SELECT day, f_struct.a, f_struct.d.x FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 """ ) expected_result = """2022-02-20 aaa 10""" From cbcf51530643f332a944902e91a71a6a19537de1 Mon Sep 17 00:00:00 2001 From: San Date: Mon, 27 Jun 2022 12:06:16 +1000 Subject: [PATCH 284/525] Update SECURITY.md.sh Update Security.md generation code to include bugcrowd program information. --- utils/security-generator/SECURITY.md.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/security-generator/SECURITY.md.sh b/utils/security-generator/SECURITY.md.sh index 97c696c1227..381f5b4eaa6 100755 --- a/utils/security-generator/SECURITY.md.sh +++ b/utils/security-generator/SECURITY.md.sh @@ -56,7 +56,7 @@ echo " We're extremely grateful for security researchers and users that report vulnerabilities to the ClickHouse Open Source Community. All reports are thoroughly investigated by developers. -To report a potential vulnerability in ClickHouse please send the details about it to [security@clickhouse.com](mailto:security@clickhouse.com). +To report a potential vulnerability in ClickHouse please send the details about it to [security@clickhouse.com](mailto:security@clickhouse.com). We do not offer any financial rewards for reporting issues to us using this method. Alternatively, you can also submit your findings through our public bug bounty program hosted by [Bugcrowd](https://bugcrowd.com/clickhouse) and be rewarded for it as per the program scope and rules of engagement. ### When Should I Report a Vulnerability? @@ -76,5 +76,5 @@ As the security issue moves from triage, to identified fix, to release planning ## Public Disclosure Timing -A public disclosure date is negotiated by the ClickHouse maintainers and the bug submitter. We prefer to fully disclose the bug as soon as possible once a user mitigation is available. It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for vendor coordination. The timeframe for disclosure is from immediate (especially if it's already publicly known) to 90 days. For a vulnerability with a straightforward mitigation, we expect report date to disclosure date to be on the order of 7 days. +A public disclosure date is negotiated by the ClickHouse maintainers and the bug submitter. We prefer to fully disclose the bug as soon as possible once a user mitigation is available. It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for vendor coordination. The timeframe for disclosure is from immediate (especially if it's already publicly known) to 90 days. For a vulnerability with a straightforward mitigation, we expect the report date to disclosure date to be on the order of 7 days. " From 2b19e6993077cf04490ffa96aca3d294681da3d0 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Sat, 4 Jun 2022 20:33:03 +0300 Subject: [PATCH 285/525] Don't try to kill empty list of containers in `integration/runner`. --- docker/test/integration/runner/dockerd-entrypoint.sh | 4 ++-- tests/integration/runner | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docker/test/integration/runner/dockerd-entrypoint.sh b/docker/test/integration/runner/dockerd-entrypoint.sh index 0cb25d12a9f..3fbd7fef5c3 100755 --- a/docker/test/integration/runner/dockerd-entrypoint.sh +++ b/docker/test/integration/runner/dockerd-entrypoint.sh @@ -30,8 +30,8 @@ set -e # cleanup for retry run if volume is not recreated # shellcheck disable=SC2046 { - docker kill $(docker ps -aq) || true - docker rm $(docker ps -aq) || true + docker ps -aq | xargs -r docker kill + docker ps -aq | xargs -r docker rm } echo "Start tests" diff --git a/tests/integration/runner b/tests/integration/runner index 7a02ec309a0..257dbcf69d3 100755 --- a/tests/integration/runner +++ b/tests/integration/runner @@ -25,7 +25,7 @@ VOLUME_NAME = "clickhouse_integration_tests" CONTAINER_NAME = f"{VOLUME_NAME}_{random_str()}" CONFIG_DIR_IN_REPO = "programs/server" -INTERGATION_DIR_IN_REPO = "tests/integration" +INTEGRATION_DIR_IN_REPO = "tests/integration" SRC_DIR_IN_REPO = "src" DIND_INTEGRATION_TESTS_IMAGE_NAME = "clickhouse/integration-tests-runner" @@ -84,7 +84,7 @@ def check_args_and_update_paths(args): ) else: args.cases_dir = os.path.abspath( - os.path.join(CLICKHOUSE_ROOT, INTERGATION_DIR_IN_REPO) + os.path.join(CLICKHOUSE_ROOT, INTEGRATION_DIR_IN_REPO) ) logging.info("Cases dir is not set. Will use %s" % (args.cases_dir)) @@ -392,6 +392,7 @@ if __name__ == "__main__": command=args.command, ) +<<<<<<< HEAD try: print("Trying to kill container", CONTAINER_NAME, "if it's already running") subprocess.check_call( @@ -401,6 +402,13 @@ if __name__ == "__main__": print("Container killed") except: print("Nothing to kill") +======= + containers = subprocess.check_output(f"docker ps -a -q --filter name={CONTAINER_NAME} --format={{{{.ID}}}}", shell=True, universal_newlines=True).splitlines() + if containers: + print(f"Trying to kill containers name={CONTAINER_NAME} ids={containers}") + subprocess.check_call(f"docker kill {' '.join(containers)}", shell=True) + print(f"Containers {containers} killed") +>>>>>>> 0fd25d1e46... Don't try to kill empty list of containers in `integration/runner`. print(("Running pytest container as: '" + cmd + "'.")) subprocess.check_call(cmd, shell=True) From c768e22e24821f788d4ceba8d863d49cdaf35f4a Mon Sep 17 00:00:00 2001 From: xiedeyantu Date: Mon, 27 Jun 2022 13:17:22 +0800 Subject: [PATCH 286/525] update --- src/Parsers/ParserCreateQuery.cpp | 3 +-- .../0_stateless/02345_create_table_allow_trailing_comma.sql | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Parsers/ParserCreateQuery.cpp b/src/Parsers/ParserCreateQuery.cpp index a2909627e90..08227aa0c2f 100644 --- a/src/Parsers/ParserCreateQuery.cpp +++ b/src/Parsers/ParserCreateQuery.cpp @@ -575,8 +575,7 @@ bool ParserCreateTableQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expe if (!table_properties_p.parse(pos, columns_list, expected)) return false; - if (s_comma.checkWithoutMoving(pos, expected) && !s_comma.ignore(pos, expected)) - return false; + s_comma.ignore(pos, expected); if (!s_rparen.ignore(pos, expected)) return false; diff --git a/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql b/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql index ad238d1c221..54a0d47bde8 100644 --- a/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql +++ b/tests/queries/0_stateless/02345_create_table_allow_trailing_comma.sql @@ -1,11 +1,14 @@ DROP TABLE IF EXISTS trailing_comma_1 SYNC; CREATE TABLE trailing_comma_1 (id INT NOT NULL DEFAULT 1,) ENGINE=MergeTree() ORDER BY tuple(); DESCRIBE TABLE trailing_comma_1; +DROP TABLE trailing_comma_1; DROP TABLE IF EXISTS trailing_comma_2 SYNC; CREATE TABLE trailing_comma_2 (id INT DEFAULT 1,) ENGINE=MergeTree() ORDER BY tuple(); DESCRIBE TABLE trailing_comma_2; +DROP TABLE trailing_comma_2; DROP TABLE IF EXISTS trailing_comma_3 SYNC; CREATE TABLE trailing_comma_3 (x UInt8, y UInt8,) ENGINE=MergeTree() ORDER BY tuple(); DESCRIBE TABLE trailing_comma_3; +DROP TABLE trailing_comma_3; From 39ea5ffdcbb96d471f2f8663aa25484ecbde2de7 Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy Date: Mon, 27 Jun 2022 01:36:27 -0400 Subject: [PATCH 287/525] compress clickhouse executable, new target 'self-extracted' is added --- programs/CMakeLists.txt | 16 ++++++++++++++++ programs/self-extracting/CMakeLists.txt | 5 +++++ 2 files changed, 21 insertions(+) create mode 100644 programs/self-extracting/CMakeLists.txt diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index ad59ec20e39..08f1a269ff6 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -18,6 +18,12 @@ option (ENABLE_CLICKHOUSE_SERVER "Server mode (main mode)" ${ENABLE_CLICKHOUSE_A option (ENABLE_CLICKHOUSE_CLIENT "Client mode (interactive tui/shell that connects to the server)" ${ENABLE_CLICKHOUSE_ALL}) +if (CLICKHOUSE_SPLIT_BINARY) + option (ENABLE_CLICKHOUSE_SELF_EXTRACTING "Self-extracting executable" OFF) +else () + option (ENABLE_CLICKHOUSE_SELF_EXTRACTING "Self-extracting executable" ON) +endif () + # https://clickhouse.com/docs/en/operations/utilities/clickhouse-local/ option (ENABLE_CLICKHOUSE_LOCAL "Local files fast processing mode" ${ENABLE_CLICKHOUSE_ALL}) @@ -97,6 +103,12 @@ else() message(STATUS "Local mode: OFF") endif() +if (ENABLE_CLICKHOUSE_SELF_EXTRACTING) + message(STATUS "Self-extracting executable: ON") +else() + message(STATUS "Self-extracting executable: OFF") +endif() + if (ENABLE_CLICKHOUSE_BENCHMARK) message(STATUS "Benchmark mode: ON") else() @@ -254,6 +266,10 @@ if (ENABLE_CLICKHOUSE_LIBRARY_BRIDGE) add_subdirectory (library-bridge) endif () +#if (ENABLE_CLICKHOUSE_SELF_EXTRACTING) + add_subdirectory (self-extracting) +#endif () + if (CLICKHOUSE_ONE_SHARED) add_library(clickhouse-lib SHARED ${CLICKHOUSE_SERVER_SOURCES} diff --git a/programs/self-extracting/CMakeLists.txt b/programs/self-extracting/CMakeLists.txt new file mode 100644 index 00000000000..2aec7938114 --- /dev/null +++ b/programs/self-extracting/CMakeLists.txt @@ -0,0 +1,5 @@ +add_custom_target (self-extracting ALL + ${CMAKE_BINARY_DIR}/utils/self-extracting-executable/compressor clickhouse ../clickhouse + DEPENDS clickhouse compressor +) + From 44b68dd651bef80b7a03de024e7e27d3f7dba2bf Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Mon, 27 Jun 2022 16:23:04 +0800 Subject: [PATCH 288/525] update test case --- tests/integration/test_hive_query/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_hive_query/test.py b/tests/integration/test_hive_query/test.py index 155aa4ced4a..276fd42de9b 100644 --- a/tests/integration/test_hive_query/test.py +++ b/tests/integration/test_hive_query/test.py @@ -441,5 +441,5 @@ def test_hive_struct_type(started_cluster): SELECT day, f_struct.a, f_struct.d.x FROM default.test_hive_types WHERE day = '2022-02-20' SETTINGS input_format_parquet_import_nested=1 """ ) - expected_result = """2022-02-20 aaa 10""" + expected_result = """2022-02-20 aaa 10""" assert result.strip() == expected_result From 3ebe6a03b13672ed93d083087019e552ee3dcc8d Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Mon, 27 Jun 2022 10:37:19 +0200 Subject: [PATCH 289/525] Revert "Revert "Fix optimization in PartialSortingTransform (SIGSEGV and possible incorrect result)"" --- src/Processors/Transforms/PartialSortingTransform.cpp | 2 +- ...02345_partial_sort_transform_optimization.reference | 10 ++++++++++ .../02345_partial_sort_transform_optimization.sql | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference create mode 100644 tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql diff --git a/src/Processors/Transforms/PartialSortingTransform.cpp b/src/Processors/Transforms/PartialSortingTransform.cpp index 131bf4f8e7c..b0f866cb3fd 100644 --- a/src/Processors/Transforms/PartialSortingTransform.cpp +++ b/src/Processors/Transforms/PartialSortingTransform.cpp @@ -71,7 +71,7 @@ bool compareWithThreshold(const ColumnRawPtrs & raw_block_columns, size_t min_bl size_t raw_block_columns_size = raw_block_columns.size(); for (size_t i = 0; i < raw_block_columns_size; ++i) { - int res = sort_description[i].direction * raw_block_columns[i]->compareAt(min_block_index, 0, *threshold_columns[0], sort_description[i].nulls_direction); + int res = sort_description[i].direction * raw_block_columns[i]->compareAt(min_block_index, 0, *threshold_columns[i], sort_description[i].nulls_direction); if (res < 0) return true; diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference new file mode 100644 index 00000000000..e6c99ff9291 --- /dev/null +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference @@ -0,0 +1,10 @@ +0 999999 999999 +0 999998 999998 +0 999997 999997 +0 999996 999996 +0 999995 999995 +0 999994 999994 +0 999993 999993 +0 999992 999992 +0 999991 999991 +0 999990 999990 diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql new file mode 100644 index 00000000000..e7855c47474 --- /dev/null +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql @@ -0,0 +1,3 @@ +-- Regression for PartialSortingTransform optimization +-- that requires at least 1500 rows. +select * from (select * from (select 0 a, toNullable(number) b, toString(number) c from numbers(1e6)) order by a desc, b desc, c limit 1500) limit 10; From 674188bd7fe6acca2205c7171ba51725bf294c9c Mon Sep 17 00:00:00 2001 From: Miel Donkers Date: Mon, 27 Jun 2022 12:19:30 +0200 Subject: [PATCH 290/525] Docs: clarify processing of DateTime64 values --- .../en/sql-reference/data-types/datetime64.md | 25 +++++-- .../functions/type-conversion-functions.md | 74 +++++++++++++++++++ 2 files changed, 94 insertions(+), 5 deletions(-) diff --git a/docs/en/sql-reference/data-types/datetime64.md b/docs/en/sql-reference/data-types/datetime64.md index e67f86743a9..ddc71e75e44 100644 --- a/docs/en/sql-reference/data-types/datetime64.md +++ b/docs/en/sql-reference/data-types/datetime64.md @@ -7,7 +7,7 @@ sidebar_label: DateTime64 Allows to store an instant in time, that can be expressed as a calendar date and a time of a day, with defined sub-second precision -Tick size (precision): 10-precision seconds. Valid range: [ 0 : 9 ]. +Tick size (precision): 10-precision seconds. Valid range: [ 0 : 9 ]. Typically are used - 3 (milliseconds), 6 (microseconds), 9 (nanoseconds). **Syntax:** @@ -34,7 +34,7 @@ ENGINE = TinyLog; ``` ``` sql -INSERT INTO dt Values (1546300800000, 1), ('2019-01-01 00:00:00', 2); +INSERT INTO dt Values (1546300800123, 1), (1546300800.123, 2), ('2019-01-01 00:00:00', 3); ``` ``` sql @@ -43,12 +43,13 @@ SELECT * FROM dt; ``` text ┌───────────────timestamp─┬─event_id─┐ -│ 2019-01-01 03:00:00.000 │ 1 │ -│ 2019-01-01 00:00:00.000 │ 2 │ +│ 2019-01-01 03:00:00.123 │ 1 │ +│ 2019-01-01 03:00:00.123 │ 2 │ +│ 2019-01-01 00:00:00.000 │ 3 │ └─────────────────────────┴──────────┘ ``` -- When inserting datetime as an integer, it is treated as an appropriately scaled Unix Timestamp (UTC). `1546300800000` (with precision 3) represents `'2019-01-01 00:00:00'` UTC. However, as `timestamp` column has `Asia/Istanbul` (UTC+3) timezone specified, when outputting as a string the value will be shown as `'2019-01-01 03:00:00'`. +- When inserting datetime as an integer, it is treated as an appropriately scaled Unix Timestamp (UTC). `1546300800000` (with precision 3) represents `'2019-01-01 00:00:00'` UTC. However, as `timestamp` column has `Asia/Istanbul` (UTC+3) timezone specified, when outputting as a string the value will be shown as `'2019-01-01 03:00:00'`. Inserting datetime as a decimal will treat it similarly as an integer, except the value before the decimal point is the Unix Timestamp up to and including the seconds, and after the decimal point will be treated as the precision. - When inserting string value as datetime, it is treated as being in column timezone. `'2019-01-01 00:00:00'` will be treated as being in `Asia/Istanbul` timezone and stored as `1546290000000`. 2. Filtering on `DateTime64` values @@ -65,6 +66,20 @@ SELECT * FROM dt WHERE timestamp = toDateTime64('2019-01-01 00:00:00', 3, 'Asia/ Unlike `DateTime`, `DateTime64` values are not converted from `String` automatically. +``` sql +SELECT * FROM dt WHERE timestamp = toDateTime64(1546300800.123, 3); +``` + +``` text +┌───────────────timestamp─┬─event_id─┐ +│ 2019-01-01 00:00:00.123 │ 1 │ +│ 2019-01-01 00:00:00.123 │ 2 │ +└─────────────────────────┴──────────┘ +``` + +Contrary to inserting, the `toDateTime64` function will treat all values as the decimal variant, so precision needs to +be given after the decimal point. + 3. Getting a time zone for a `DateTime64`-type value: ``` sql diff --git a/docs/en/sql-reference/functions/type-conversion-functions.md b/docs/en/sql-reference/functions/type-conversion-functions.md index e2afddeaaf3..3f4db831e3d 100644 --- a/docs/en/sql-reference/functions/type-conversion-functions.md +++ b/docs/en/sql-reference/functions/type-conversion-functions.md @@ -301,6 +301,80 @@ Result: └─────────────────────────────────────────────────────────┴───────────────────────────────────────────────────────────┘ ``` +## toDateTime64 + +Converts the argument to the [DateTime64](../../sql-reference/data-types/datetime64.md) data type. + +**Syntax** + +``` sql +toDateTime64(expr, scale, [timezone]) +``` + +**Arguments** + +- `expr` — The value. [String](../../sql-reference/data-types/string.md), [UInt32](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md) or [DateTime](../../sql-reference/data-types/datetime.md). +- `scale` - Tick size (precision): 10-precision seconds. Valid range: [ 0 : 9 ]. +- `timezone` - Time zone of the specified datetime64 object. + +**Returned value** + +- A calendar date and time of day, with sub-second precision. + +Type: [DateTime64](../../sql-reference/data-types/datetime64.md). + +**Example** + +1. The value is within the range: + +``` sql +SELECT toDateTime64('1955-01-01 00:00:00.000', 3) AS value, toTypeName(value); +``` + +``` text +┌───────────────────value─┬─toTypeName(toDateTime64('1955-01-01 00:00:00.000', 3))─┐ +│ 1955-01-01 00:00:00.000 │ DateTime64(3) │ +└─────────────────────────┴────────────────────────────────────────────────────────┘ +``` + +2. As decimal with precision: + +``` sql +SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value); +``` + +``` text +┌───────────────────value─┬─toTypeName(toDateTime64(1546300800., 3))─┐ +│ 2019-01-01 00:00:00.000 │ DateTime64(3) │ +└─────────────────────────┴──────────────────────────────────────────┘ +``` + +Without the decimal point the value is still treated as Unix Timestamp in seconds: + +``` sql +SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value); +``` + +``` text +┌───────────────────value─┬─toTypeName(toDateTime64(1546300800000, 3))─┐ +│ 2282-12-31 00:00:00.000 │ DateTime64(3) │ +└─────────────────────────┴────────────────────────────────────────────┘ +``` + + +3. With `timezone`: + +``` sql +SELECT toDateTime64('2019-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value); +``` + +``` text +┌───────────────────value─┬─toTypeName(toDateTime64('2019-01-01 00:00:00', 3, 'Asia/Istanbul'))─┐ +│ 2019-01-01 00:00:00.000 │ DateTime64(3, 'Asia/Istanbul') │ +└─────────────────────────┴─────────────────────────────────────────────────────────────────────┘ +``` + + ## toDecimal(32\|64\|128\|256) Converts `value` to the [Decimal](../../sql-reference/data-types/decimal.md) data type with precision of `S`. The `value` can be a number or a string. The `S` (scale) parameter specifies the number of decimal places. From 2487ba7f0006f1f020f90424aff727de57397d65 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Mon, 27 Jun 2022 13:16:52 +0200 Subject: [PATCH 291/525] Move `updateInputStream` to `ITransformingStep` (#37393) --- src/Interpreters/ActionsDAG.cpp | 17 +-- src/Interpreters/AggregateDescription.cpp | 27 ----- src/Interpreters/AggregateDescription.h | 4 +- src/Interpreters/Aggregator.cpp | 80 ++++++------ src/Interpreters/Aggregator.h | 49 +++----- src/Interpreters/InterpreterSelectQuery.cpp | 114 +++++++----------- src/Processors/QueryPlan/AggregatingStep.cpp | 30 +++-- src/Processors/QueryPlan/AggregatingStep.h | 13 +- src/Processors/QueryPlan/ArrayJoinStep.cpp | 27 +---- src/Processors/QueryPlan/ArrayJoinStep.h | 7 +- src/Processors/QueryPlan/CreatingSetsStep.cpp | 5 + src/Processors/QueryPlan/CreatingSetsStep.h | 2 + src/Processors/QueryPlan/CubeStep.cpp | 25 ++-- src/Processors/QueryPlan/CubeStep.h | 7 +- src/Processors/QueryPlan/DistinctStep.cpp | 17 +++ src/Processors/QueryPlan/DistinctStep.h | 2 + src/Processors/QueryPlan/ExpressionStep.cpp | 19 +-- src/Processors/QueryPlan/ExpressionStep.h | 4 +- src/Processors/QueryPlan/ExtremesStep.h | 6 + src/Processors/QueryPlan/FillingStep.cpp | 8 ++ src/Processors/QueryPlan/FillingStep.h | 2 + src/Processors/QueryPlan/FilterStep.cpp | 28 ++--- src/Processors/QueryPlan/FilterStep.h | 4 +- src/Processors/QueryPlan/ITransformingStep.h | 15 +++ src/Processors/QueryPlan/JoinStep.cpp | 15 +++ src/Processors/QueryPlan/JoinStep.h | 4 + src/Processors/QueryPlan/LimitByStep.h | 5 + src/Processors/QueryPlan/LimitStep.cpp | 7 -- src/Processors/QueryPlan/LimitStep.h | 8 +- .../QueryPlan/MergingAggregatedStep.cpp | 33 +++-- .../QueryPlan/MergingAggregatedStep.h | 9 +- src/Processors/QueryPlan/OffsetStep.h | 5 + .../Optimizations/filterPushDown.cpp | 67 ++++++---- .../Optimizations/liftUpArrayJoin.cpp | 26 +--- .../Optimizations/liftUpFunctions.cpp | 2 - src/Processors/QueryPlan/RollupStep.cpp | 25 +++- src/Processors/QueryPlan/RollupStep.h | 8 +- src/Processors/QueryPlan/SortingStep.cpp | 11 +- src/Processors/QueryPlan/SortingStep.h | 4 +- src/Processors/QueryPlan/TotalsHavingStep.cpp | 39 ++++-- src/Processors/QueryPlan/TotalsHavingStep.h | 23 ++-- src/Processors/QueryPlan/WindowStep.cpp | 33 ++--- src/Processors/QueryPlan/WindowStep.h | 3 +- .../TTL/TTLAggregationAlgorithm.cpp | 31 ++--- .../AggregatingInOrderTransform.cpp | 13 +- .../Transforms/AggregatingTransform.cpp | 4 +- .../Transforms/AggregatingTransform.h | 13 +- src/Processors/Transforms/CubeTransform.cpp | 5 +- src/Processors/Transforms/CubeTransform.h | 2 +- src/Processors/Transforms/RollupTransform.cpp | 4 +- src/Processors/Transforms/RollupTransform.h | 2 +- .../MergeTree/MergeTreeDataSelectExecutor.cpp | 49 +++----- .../01763_filter_push_down_bugs.reference | 1 + .../01763_filter_push_down_bugs.sql | 4 + .../0_stateless/01823_explain_json.reference | 6 +- .../queries/0_stateless/01823_explain_json.sh | 2 +- 56 files changed, 503 insertions(+), 472 deletions(-) diff --git a/src/Interpreters/ActionsDAG.cpp b/src/Interpreters/ActionsDAG.cpp index eb073ee8752..2703773f464 100644 --- a/src/Interpreters/ActionsDAG.cpp +++ b/src/Interpreters/ActionsDAG.cpp @@ -1786,7 +1786,9 @@ ActionsDAGPtr ActionsDAG::cloneActionsForConjunction(NodeRawConstPtrs conjunctio actions->inputs.push_back(input); } - actions->index.push_back(input); + /// We should not add result_predicate into the index for the second time. + if (input->result_name != result_predicate->result_name) + actions->index.push_back(input); } return actions; @@ -1840,13 +1842,14 @@ ActionsDAGPtr ActionsDAG::cloneActionsForFilterPushDown( if (can_remove_filter) { /// If filter column is not needed, remove it from index. - for (auto i = index.begin(); i != index.end(); ++i) + std::erase_if(index, [&](const Node * node) { return node == predicate; }); + + /// At the very end of this method we'll call removeUnusedActions() with allow_remove_inputs=false, + /// so we need to manually remove predicate if it is an input node. + if (predicate->type == ActionType::INPUT) { - if (*i == predicate) - { - index.erase(i); - break; - } + std::erase_if(inputs, [&](const Node * node) { return node == predicate; }); + nodes.remove_if([&](const Node & node) { return &node == predicate; }); } } else diff --git a/src/Interpreters/AggregateDescription.cpp b/src/Interpreters/AggregateDescription.cpp index 1a0748b5f97..b0f51ea7c90 100644 --- a/src/Interpreters/AggregateDescription.cpp +++ b/src/Interpreters/AggregateDescription.cpp @@ -82,24 +82,6 @@ void AggregateDescription::explain(WriteBuffer & out, size_t indent) const } out << "\n"; } - - out << prefix << " Argument positions: "; - - if (arguments.empty()) - out << "none\n"; - else - { - bool first = true; - for (auto arg : arguments) - { - if (!first) - out << ", "; - first = false; - - out << arg; - } - out << '\n'; - } } void AggregateDescription::explain(JSONBuilder::JSONMap & map) const @@ -137,15 +119,6 @@ void AggregateDescription::explain(JSONBuilder::JSONMap & map) const args_array->add(name); map.add("Arguments", std::move(args_array)); - - if (!arguments.empty()) - { - auto args_pos_array = std::make_unique(); - for (auto pos : arguments) - args_pos_array->add(pos); - - map.add("Argument Positions", std::move(args_pos_array)); - } } } diff --git a/src/Interpreters/AggregateDescription.h b/src/Interpreters/AggregateDescription.h index 12c14f7a57c..8c3302a8b0b 100644 --- a/src/Interpreters/AggregateDescription.h +++ b/src/Interpreters/AggregateDescription.h @@ -14,8 +14,7 @@ struct AggregateDescription { AggregateFunctionPtr function; Array parameters; /// Parameters of the (parametric) aggregate function. - ColumnNumbers arguments; - Names argument_names; /// used if no `arguments` are specified. + Names argument_names; String column_name; /// What name to use for a column with aggregate function values void explain(WriteBuffer & out, size_t indent) const; /// Get description for EXPLAIN query. @@ -23,5 +22,4 @@ struct AggregateDescription }; using AggregateDescriptions = std::vector; - } diff --git a/src/Interpreters/Aggregator.cpp b/src/Interpreters/Aggregator.cpp index 8a93dc5fd77..511e5c9e031 100644 --- a/src/Interpreters/Aggregator.cpp +++ b/src/Interpreters/Aggregator.cpp @@ -260,6 +260,14 @@ auto constructWithReserveIfPossible(size_t size_hint) else return std::make_unique(); } + +DB::ColumnNumbers calculateKeysPositions(const DB::Block & header, const DB::Aggregator::Params & params) +{ + DB::ColumnNumbers keys_positions(params.keys_size); + for (size_t i = 0; i < params.keys_size; ++i) + keys_positions[i] = header.getPositionByName(params.keys[i]); + return keys_positions; +} } namespace DB @@ -356,21 +364,17 @@ Aggregator::Params::StatsCollectingParams::StatsCollectingParams( Block Aggregator::getHeader(bool final) const { - return params.getHeader(final); + return params.getHeader(header, final); } Block Aggregator::Params::getHeader( - const Block & src_header, - const Block & intermediate_header, - const ColumnNumbers & keys, - const AggregateDescriptions & aggregates, - bool final) + const Block & header, bool only_merge, const Names & keys, const AggregateDescriptions & aggregates, bool final) { Block res; - if (intermediate_header) + if (only_merge) { - res = intermediate_header.cloneEmpty(); + res = header.cloneEmpty(); if (final) { @@ -386,14 +390,14 @@ Block Aggregator::Params::getHeader( else { for (const auto & key : keys) - res.insert(src_header.safeGetByPosition(key).cloneEmpty()); + res.insert(header.getByName(key).cloneEmpty()); for (const auto & aggregate : aggregates) { - size_t arguments_size = aggregate.arguments.size(); + size_t arguments_size = aggregate.argument_names.size(); DataTypes argument_types(arguments_size); for (size_t j = 0; j < arguments_size; ++j) - argument_types[j] = src_header.safeGetByPosition(aggregate.arguments[j]).type; + argument_types[j] = header.getByName(aggregate.argument_names[j]).type; DataTypePtr type; if (final) @@ -434,9 +438,6 @@ Aggregator::AggregateColumnsConstData Aggregator::Params::makeAggregateColumnsDa void Aggregator::Params::explain(WriteBuffer & out, size_t indent) const { Strings res; - const auto & header = src_header ? src_header - : intermediate_header; - String prefix(indent, ' '); { @@ -444,16 +445,13 @@ void Aggregator::Params::explain(WriteBuffer & out, size_t indent) const out << prefix << "Keys: "; bool first = true; - for (auto key : keys) + for (const auto & key : keys) { if (!first) out << ", "; first = false; - if (key >= header.columns()) - out << "unknown position " << key; - else - out << header.getByPosition(key).name; + out << key; } out << '\n'; @@ -470,18 +468,10 @@ void Aggregator::Params::explain(WriteBuffer & out, size_t indent) const void Aggregator::Params::explain(JSONBuilder::JSONMap & map) const { - const auto & header = src_header ? src_header - : intermediate_header; - auto keys_array = std::make_unique(); - for (auto key : keys) - { - if (key >= header.columns()) - keys_array->add(""); - else - keys_array->add(header.getByPosition(key).name); - } + for (const auto & key : keys) + keys_array->add(key); map.add("Keys", std::move(keys_array)); @@ -526,7 +516,8 @@ public: #endif -Aggregator::Aggregator(const Params & params_) : params(params_) +Aggregator::Aggregator(const Block & header_, const Params & params_) + : header(header_), keys_positions(calculateKeysPositions(header, params_)), params(params_) { /// Use query-level memory tracker if (auto * memory_tracker_child = CurrentThread::getMemoryTracker()) @@ -672,9 +663,9 @@ AggregatedDataVariants::Type Aggregator::chooseAggregationMethod() bool has_nullable_key = false; bool has_low_cardinality = false; - for (const auto & pos : params.keys) + for (const auto & key : params.keys) { - DataTypePtr type = (params.src_header ? params.src_header : params.intermediate_header).safeGetByPosition(pos).type; + DataTypePtr type = header.getByName(key).type; if (type->lowCardinality()) { @@ -1277,11 +1268,15 @@ void NO_INLINE Aggregator::mergeOnIntervalWithoutKeyImpl( } -void Aggregator::prepareAggregateInstructions(Columns columns, AggregateColumns & aggregate_columns, Columns & materialized_columns, - AggregateFunctionInstructions & aggregate_functions_instructions, NestedColumnsHolder & nested_columns_holder) const +void Aggregator::prepareAggregateInstructions( + Columns columns, + AggregateColumns & aggregate_columns, + Columns & materialized_columns, + AggregateFunctionInstructions & aggregate_functions_instructions, + NestedColumnsHolder & nested_columns_holder) const { for (size_t i = 0; i < params.aggregates_size; ++i) - aggregate_columns[i].resize(params.aggregates[i].arguments.size()); + aggregate_columns[i].resize(params.aggregates[i].argument_names.size()); aggregate_functions_instructions.resize(params.aggregates_size + 1); aggregate_functions_instructions[params.aggregates_size].that = nullptr; @@ -1293,7 +1288,8 @@ void Aggregator::prepareAggregateInstructions(Columns columns, AggregateColumns for (size_t j = 0; j < aggregate_columns[i].size(); ++j) { - materialized_columns.push_back(columns.at(params.aggregates[i].arguments[j])->convertToFullColumnIfConst()); + const auto pos = header.getPositionByName(params.aggregates[i].argument_names[j]); + materialized_columns.push_back(columns.at(pos)->convertToFullColumnIfConst()); aggregate_columns[i][j] = materialized_columns.back().get(); auto full_column = allow_sparse_arguments @@ -1382,7 +1378,7 @@ bool Aggregator::executeOnBlock(Columns columns, /// Remember the columns we will work with for (size_t i = 0; i < params.keys_size; ++i) { - materialized_columns.push_back(recursiveRemoveSparse(columns.at(params.keys[i]))->convertToFullColumnIfConst()); + materialized_columns.push_back(recursiveRemoveSparse(columns.at(keys_positions[i]))->convertToFullColumnIfConst()); key_columns[i] = materialized_columns.back().get(); if (!result.isLowCardinality()) @@ -1954,11 +1950,11 @@ Block Aggregator::prepareBlockAndFill( MutableColumns final_aggregate_columns(params.aggregates_size); AggregateColumnsData aggregate_columns_data(params.aggregates_size); - Block header = getHeader(final); + Block res_header = getHeader(final); for (size_t i = 0; i < params.keys_size; ++i) { - key_columns[i] = header.safeGetByPosition(i).type->createColumn(); + key_columns[i] = res_header.safeGetByPosition(i).type->createColumn(); key_columns[i]->reserve(rows); } @@ -1967,7 +1963,7 @@ Block Aggregator::prepareBlockAndFill( if (!final) { const auto & aggregate_column_name = params.aggregates[i].column_name; - aggregate_columns[i] = header.getByName(aggregate_column_name).type->createColumn(); + aggregate_columns[i] = res_header.getByName(aggregate_column_name).type->createColumn(); /// The ColumnAggregateFunction column captures the shared ownership of the arena with the aggregate function states. ColumnAggregateFunction & column_aggregate_func = assert_cast(*aggregate_columns[i]); @@ -2003,7 +1999,7 @@ Block Aggregator::prepareBlockAndFill( filler(key_columns, aggregate_columns_data, final_aggregate_columns, final); - Block res = header.cloneEmpty(); + Block res = res_header.cloneEmpty(); for (size_t i = 0; i < params.keys_size; ++i) res.getByPosition(i).column = std::move(key_columns[i]); @@ -2018,7 +2014,7 @@ Block Aggregator::prepareBlockAndFill( } /// Change the size of the columns-constants in the block. - size_t columns = header.columns(); + size_t columns = res_header.columns(); for (size_t i = 0; i < columns; ++i) if (isColumnConst(*res.getByPosition(i).column)) res.getByPosition(i).column = res.getByPosition(i).column->cut(0, rows); diff --git a/src/Interpreters/Aggregator.h b/src/Interpreters/Aggregator.h index 475fcd9e249..feb07727725 100644 --- a/src/Interpreters/Aggregator.h +++ b/src/Interpreters/Aggregator.h @@ -897,13 +897,8 @@ public: struct Params { - /// Data structure of source blocks. - Block src_header; - /// Data structure of intermediate blocks before merge. - Block intermediate_header; - /// What to count. - const ColumnNumbers keys; + const Names keys; const AggregateDescriptions aggregates; const size_t keys_size; const size_t aggregates_size; @@ -937,6 +932,8 @@ public: bool compile_aggregate_expressions; size_t min_count_to_compile_aggregate_expression; + bool only_merge; + struct StatsCollectingParams { StatsCollectingParams(); @@ -957,8 +954,7 @@ public: StatsCollectingParams stats_collecting_params; Params( - const Block & src_header_, - const ColumnNumbers & keys_, + const Names & keys_, const AggregateDescriptions & aggregates_, bool overflow_row_, size_t max_rows_to_group_by_, @@ -972,11 +968,9 @@ public: size_t min_free_disk_space_, bool compile_aggregate_expressions_, size_t min_count_to_compile_aggregate_expression_, - const Block & intermediate_header_ = {}, + bool only_merge_ = false, // true for projections const StatsCollectingParams & stats_collecting_params_ = {}) - : src_header(src_header_) - , intermediate_header(intermediate_header_) - , keys(keys_) + : keys(keys_) , aggregates(aggregates_) , keys_size(keys.size()) , aggregates_size(aggregates.size()) @@ -992,33 +986,22 @@ public: , min_free_disk_space(min_free_disk_space_) , compile_aggregate_expressions(compile_aggregate_expressions_) , min_count_to_compile_aggregate_expression(min_count_to_compile_aggregate_expression_) + , only_merge(only_merge_) , stats_collecting_params(stats_collecting_params_) { } /// Only parameters that matter during merge. - Params( - const Block & intermediate_header_, - const ColumnNumbers & keys_, - const AggregateDescriptions & aggregates_, - bool overflow_row_, - size_t max_threads_) - : Params(Block(), keys_, aggregates_, overflow_row_, 0, OverflowMode::THROW, 0, 0, 0, false, nullptr, max_threads_, 0, false, 0, {}, {}) + Params(const Names & keys_, const AggregateDescriptions & aggregates_, bool overflow_row_, size_t max_threads_) + : Params( + keys_, aggregates_, overflow_row_, 0, OverflowMode::THROW, 0, 0, 0, false, nullptr, max_threads_, 0, false, 0, true, {}) { - intermediate_header = intermediate_header_; } - static Block getHeader( - const Block & src_header, - const Block & intermediate_header, - const ColumnNumbers & keys, - const AggregateDescriptions & aggregates, - bool final); + static Block + getHeader(const Block & header, bool only_merge, const Names & keys, const AggregateDescriptions & aggregates, bool final); - Block getHeader(bool final) const - { - return getHeader(src_header, intermediate_header, keys, aggregates, final); - } + Block getHeader(const Block & header_, bool final) const { return getHeader(header_, only_merge, keys, aggregates, final); } /// Remember the columns we will work with ColumnRawPtrs makeRawKeyColumns(const Block & block) const; @@ -1029,7 +1012,7 @@ public: void explain(JSONBuilder::JSONMap & map) const; }; - explicit Aggregator(const Params & params_); + explicit Aggregator(const Block & header_, const Params & params_); /// Process one block. Return false if the processing should be aborted (with group_by_overflow_mode = 'break'). bool executeOnBlock(const Block & block, @@ -1106,6 +1089,10 @@ private: friend class ConvertingAggregatedToChunksSource; friend class AggregatingInOrderTransform; + /// Data structure of source blocks. + Block header; + /// Positions of aggregation key columns in the header. + const ColumnNumbers keys_positions; Params params; AggregatedDataVariants::Type method_chosen; diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 77ed83446b1..047e50272fe 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1592,13 +1592,9 @@ static void executeMergeAggregatedImpl( const NamesAndTypesList & aggregation_keys, const AggregateDescriptions & aggregates) { - const auto & header_before_merge = query_plan.getCurrentDataStream().header; - - ColumnNumbers keys; + auto keys = aggregation_keys.getNames(); if (has_grouping_sets) - keys.push_back(header_before_merge.getPositionByName("__grouping_set")); - for (const auto & key : aggregation_keys) - keys.push_back(header_before_merge.getPositionByName(key.name)); + keys.insert(keys.begin(), "__grouping_set"); /** There are two modes of distributed aggregation. * @@ -1615,16 +1611,12 @@ static void executeMergeAggregatedImpl( * but it can work more slowly. */ - Aggregator::Params params(header_before_merge, keys, aggregates, overflow_row, settings.max_threads); - - auto transform_params = std::make_shared( - params, - final, - /* only_merge_= */ false); + Aggregator::Params params(keys, aggregates, overflow_row, settings.max_threads); auto merging_aggregated = std::make_unique( query_plan.getCurrentDataStream(), - std::move(transform_params), + params, + final, settings.distributed_aggregation_memory_efficient && is_remote_storage, settings.max_threads, settings.aggregation_memory_efficient_merge_threads); @@ -2174,11 +2166,12 @@ static Aggregator::Params getAggregatorParams( const ASTPtr & query_ptr, const SelectQueryExpressionAnalyzer & query_analyzer, const Context & context, - const Block & current_data_stream_header, - const ColumnNumbers & keys, + const Names & keys, const AggregateDescriptions & aggregates, - bool overflow_row, const Settings & settings, - size_t group_by_two_level_threshold, size_t group_by_two_level_threshold_bytes) + bool overflow_row, + const Settings & settings, + size_t group_by_two_level_threshold, + size_t group_by_two_level_threshold_bytes) { const auto stats_collecting_params = Aggregator::Params::StatsCollectingParams( query_ptr, @@ -2186,8 +2179,8 @@ static Aggregator::Params getAggregatorParams( settings.max_entries_for_hash_table_stats, settings.max_size_to_preallocate_for_aggregation); - return Aggregator::Params{ - current_data_stream_header, + return Aggregator::Params + { keys, aggregates, overflow_row, @@ -2204,42 +2197,30 @@ static Aggregator::Params getAggregatorParams( settings.min_free_disk_space_for_temporary_data, settings.compile_aggregate_expressions, settings.min_count_to_compile_aggregate_expression, - Block{}, + /* only_merge */ false, stats_collecting_params }; } -static GroupingSetsParamsList getAggregatorGroupingSetsParams( - const SelectQueryExpressionAnalyzer & query_analyzer, - const Block & header_before_aggregation, - const ColumnNumbers & all_keys -) +static GroupingSetsParamsList getAggregatorGroupingSetsParams(const SelectQueryExpressionAnalyzer & query_analyzer, const Names & all_keys) { GroupingSetsParamsList result; if (query_analyzer.useGroupingSetKey()) { auto const & aggregation_keys_list = query_analyzer.aggregationKeysList(); - ColumnNumbersList grouping_sets_with_keys; - ColumnNumbersList missing_columns_per_set; - for (const auto & aggregation_keys : aggregation_keys_list) { - ColumnNumbers keys; - std::unordered_set keys_set; + NameSet keys; for (const auto & key : aggregation_keys) - { - keys.push_back(header_before_aggregation.getPositionByName(key.name)); - keys_set.insert(keys.back()); - } + keys.insert(key.name); - ColumnNumbers missing_indexes; - for (size_t i = 0; i < all_keys.size(); ++i) - { - if (!keys_set.contains(all_keys[i])) - missing_indexes.push_back(i); - } - result.emplace_back(std::move(keys), std::move(missing_indexes)); + Names missing_keys; + for (const auto & key : all_keys) + if (!keys.contains(key)) + missing_keys.push_back(key); + + result.emplace_back(aggregation_keys.getNames(), std::move(missing_keys)); } } return result; @@ -2254,24 +2235,24 @@ void InterpreterSelectQuery::executeAggregation(QueryPlan & query_plan, const Ac if (options.is_projection_query) return; - const auto & header_before_aggregation = query_plan.getCurrentDataStream().header; - AggregateDescriptions aggregates = query_analyzer->aggregates(); - for (auto & descr : aggregates) - if (descr.arguments.empty()) - for (const auto & name : descr.argument_names) - descr.arguments.push_back(header_before_aggregation.getPositionByName(name)); const Settings & settings = context->getSettingsRef(); - ColumnNumbers keys; - for (const auto & key : query_analyzer->aggregationKeys()) - keys.push_back(header_before_aggregation.getPositionByName(key.name)); + const auto & keys = query_analyzer->aggregationKeys().getNames(); - auto aggregator_params = getAggregatorParams(query_ptr, *query_analyzer, *context, header_before_aggregation, keys, aggregates, overflow_row, settings, - settings.group_by_two_level_threshold, settings.group_by_two_level_threshold_bytes); + auto aggregator_params = getAggregatorParams( + query_ptr, + *query_analyzer, + *context, + keys, + aggregates, + overflow_row, + settings, + settings.group_by_two_level_threshold, + settings.group_by_two_level_threshold_bytes); - auto grouping_sets_params = getAggregatorGroupingSetsParams(*query_analyzer, header_before_aggregation, keys); + auto grouping_sets_params = getAggregatorGroupingSetsParams(*query_analyzer, keys); SortDescription group_by_sort_description; @@ -2292,7 +2273,6 @@ void InterpreterSelectQuery::executeAggregation(QueryPlan & query_plan, const Ac std::move(aggregator_params), std::move(grouping_sets_params), final, - /* only_merge_= */ false, settings.max_block_size, settings.aggregation_in_order_max_block_bytes, merge_threads, @@ -2339,11 +2319,9 @@ void InterpreterSelectQuery::executeTotalsAndHaving( { const Settings & settings = context->getSettingsRef(); - const auto & header_before = query_plan.getCurrentDataStream().header; - auto totals_having_step = std::make_unique( query_plan.getCurrentDataStream(), - getAggregatesMask(header_before, query_analyzer->aggregates()), + query_analyzer->aggregates(), overflow_row, expression, has_having ? getSelectQuery().having()->getColumnName() : "", @@ -2357,25 +2335,23 @@ void InterpreterSelectQuery::executeTotalsAndHaving( void InterpreterSelectQuery::executeRollupOrCube(QueryPlan & query_plan, Modificator modificator) { - const auto & header_before_transform = query_plan.getCurrentDataStream().header; - const Settings & settings = context->getSettingsRef(); - ColumnNumbers keys; - for (const auto & key : query_analyzer->aggregationKeys()) - keys.push_back(header_before_transform.getPositionByName(key.name)); + const auto & keys = query_analyzer->aggregationKeys().getNames(); - auto params = getAggregatorParams(query_ptr, *query_analyzer, *context, header_before_transform, keys, query_analyzer->aggregates(), false, settings, 0, 0); - auto transform_params = std::make_shared( - std::move(params), - /* final_= */ true, - /* only_merge_= */ false); + // Arguments will not be present in Rollup / Cube input header and they don't actually needed 'cause these steps will work with AggregateFunctionState-s anyway. + auto aggregates = query_analyzer->aggregates(); + for (auto & aggregate : aggregates) + aggregate.argument_names.clear(); + + auto params = getAggregatorParams(query_ptr, *query_analyzer, *context, keys, aggregates, false, settings, 0, 0); + const bool final = true; QueryPlanStepPtr step; if (modificator == Modificator::ROLLUP) - step = std::make_unique(query_plan.getCurrentDataStream(), std::move(transform_params)); + step = std::make_unique(query_plan.getCurrentDataStream(), std::move(params), final); else if (modificator == Modificator::CUBE) - step = std::make_unique(query_plan.getCurrentDataStream(), std::move(transform_params)); + step = std::make_unique(query_plan.getCurrentDataStream(), std::move(params), final); query_plan.addStep(std::move(step)); } diff --git a/src/Processors/QueryPlan/AggregatingStep.cpp b/src/Processors/QueryPlan/AggregatingStep.cpp index 28f821d6f3f..1e62673bc26 100644 --- a/src/Processors/QueryPlan/AggregatingStep.cpp +++ b/src/Processors/QueryPlan/AggregatingStep.cpp @@ -69,7 +69,6 @@ AggregatingStep::AggregatingStep( Aggregator::Params params_, GroupingSetsParamsList grouping_sets_params_, bool final_, - bool only_merge_, size_t max_block_size_, size_t aggregation_in_order_max_block_bytes_, size_t merge_threads_, @@ -77,11 +76,11 @@ AggregatingStep::AggregatingStep( bool storage_has_evenly_distributed_read_, InputOrderInfoPtr group_by_info_, SortDescription group_by_sort_description_) - : ITransformingStep(input_stream_, appendGroupingColumn(params_.getHeader(final_), grouping_sets_params_), getTraits(), false) + : ITransformingStep( + input_stream_, appendGroupingColumn(params_.getHeader(input_stream_.header, final_), grouping_sets_params_), getTraits(), false) , params(std::move(params_)) , grouping_sets_params(std::move(grouping_sets_params_)) , final(final_) - , only_merge(only_merge_) , max_block_size(max_block_size_) , aggregation_in_order_max_block_bytes(aggregation_in_order_max_block_bytes_) , merge_threads(merge_threads_) @@ -121,7 +120,8 @@ void AggregatingStep::transformPipeline(QueryPipelineBuilder & pipeline, const B * 1. Parallel aggregation is done, and the results should be merged in parallel. * 2. An aggregation is done with store of temporary data on the disk, and they need to be merged in a memory efficient way. */ - auto transform_params = std::make_shared(std::move(params), final, only_merge); + const auto src_header = pipeline.getHeader(); + auto transform_params = std::make_shared(src_header, std::move(params), final); if (!grouping_sets_params.empty()) { @@ -153,7 +153,6 @@ void AggregatingStep::transformPipeline(QueryPipelineBuilder & pipeline, const B { Aggregator::Params params_for_set { - transform_params->params.src_header, grouping_sets_params[i].used_keys, transform_params->params.aggregates, transform_params->params.overflow_row, @@ -168,10 +167,9 @@ void AggregatingStep::transformPipeline(QueryPipelineBuilder & pipeline, const B transform_params->params.min_free_disk_space, transform_params->params.compile_aggregate_expressions, transform_params->params.min_count_to_compile_aggregate_expression, - transform_params->params.intermediate_header, - transform_params->params.stats_collecting_params - }; - auto transform_params_for_set = std::make_shared(std::move(params_for_set), final, only_merge); + /* only_merge */ false, + transform_params->params.stats_collecting_params}; + auto transform_params_for_set = std::make_shared(src_header, std::move(params_for_set), final); if (streams > 1) { @@ -234,15 +232,15 @@ void AggregatingStep::transformPipeline(QueryPipelineBuilder & pipeline, const B grouping_node = &dag->materializeNode(*grouping_node); index.push_back(grouping_node); - size_t missign_column_index = 0; const auto & missing_columns = grouping_sets_params[set_counter].missing_keys; for (size_t i = 0; i < output_header.columns(); ++i) { auto & col = output_header.getByPosition(i); - if (missign_column_index < missing_columns.size() && missing_columns[missign_column_index] == i) + const auto it = std::find_if( + missing_columns.begin(), missing_columns.end(), [&](const auto & missing_col) { return missing_col == col.name; }); + if (it != missing_columns.end()) { - ++missign_column_index; auto column_with_default = col.column->cloneEmpty(); col.type->insertDefaultInto(*column_with_default); auto column = ColumnConst::create(std::move(column_with_default), 0); @@ -391,4 +389,12 @@ void AggregatingStep::describePipeline(FormatSettings & settings) const } } +void AggregatingStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), + appendGroupingColumn(params.getHeader(input_streams.front().header, final), grouping_sets_params), + getDataStreamTraits()); +} + } diff --git a/src/Processors/QueryPlan/AggregatingStep.h b/src/Processors/QueryPlan/AggregatingStep.h index 1be74da583a..2879cd1e0e9 100644 --- a/src/Processors/QueryPlan/AggregatingStep.h +++ b/src/Processors/QueryPlan/AggregatingStep.h @@ -11,13 +11,10 @@ struct GroupingSetsParams { GroupingSetsParams() = default; - GroupingSetsParams(ColumnNumbers used_keys_, ColumnNumbers missing_keys_) - : used_keys(std::move(used_keys_)) - , missing_keys(std::move(missing_keys_)) - {} + GroupingSetsParams(Names used_keys_, Names missing_keys_) : used_keys(std::move(used_keys_)), missing_keys(std::move(missing_keys_)) { } - ColumnNumbers used_keys; - ColumnNumbers missing_keys; + Names used_keys; + Names missing_keys; }; using GroupingSetsParamsList = std::vector; @@ -33,7 +30,6 @@ public: Aggregator::Params params_, GroupingSetsParamsList grouping_sets_params_, bool final_, - bool only_merge_, size_t max_block_size_, size_t aggregation_in_order_max_block_bytes_, size_t merge_threads_, @@ -54,10 +50,11 @@ public: const Aggregator::Params & getParams() const { return params; } private: + void updateOutputStream() override; + Aggregator::Params params; GroupingSetsParamsList grouping_sets_params; bool final; - bool only_merge; size_t max_block_size; size_t aggregation_in_order_max_block_bytes; size_t merge_threads; diff --git a/src/Processors/QueryPlan/ArrayJoinStep.cpp b/src/Processors/QueryPlan/ArrayJoinStep.cpp index 3ca5b9109e6..bd1908a4a6d 100644 --- a/src/Processors/QueryPlan/ArrayJoinStep.cpp +++ b/src/Processors/QueryPlan/ArrayJoinStep.cpp @@ -34,40 +34,19 @@ ArrayJoinStep::ArrayJoinStep(const DataStream & input_stream_, ArrayJoinActionPt { } -void ArrayJoinStep::updateInputStream(DataStream input_stream, Block result_header) +void ArrayJoinStep::updateOutputStream() { output_stream = createOutputStream( - input_stream, - ArrayJoinTransform::transformHeader(input_stream.header, array_join), - getDataStreamTraits()); - - input_streams.clear(); - input_streams.emplace_back(std::move(input_stream)); - res_header = std::move(result_header); + input_streams.front(), ArrayJoinTransform::transformHeader(input_streams.front().header, array_join), getDataStreamTraits()); } -void ArrayJoinStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings & settings) +void ArrayJoinStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) { pipeline.addSimpleTransform([&](const Block & header, QueryPipelineBuilder::StreamType stream_type) { bool on_totals = stream_type == QueryPipelineBuilder::StreamType::Totals; return std::make_shared(header, array_join, on_totals); }); - - if (res_header && !blocksHaveEqualStructure(res_header, output_stream->header)) - { - auto actions_dag = ActionsDAG::makeConvertingActions( - pipeline.getHeader().getColumnsWithTypeAndName(), - res_header.getColumnsWithTypeAndName(), - ActionsDAG::MatchColumnsMode::Name); - - auto actions = std::make_shared(actions_dag, settings.getActionsSettings()); - - pipeline.addSimpleTransform([&](const Block & header) - { - return std::make_shared(header, actions); - }); - } } void ArrayJoinStep::describeActions(FormatSettings & settings) const diff --git a/src/Processors/QueryPlan/ArrayJoinStep.h b/src/Processors/QueryPlan/ArrayJoinStep.h index 83df4d021e8..2d9b2ebd0c8 100644 --- a/src/Processors/QueryPlan/ArrayJoinStep.h +++ b/src/Processors/QueryPlan/ArrayJoinStep.h @@ -13,18 +13,17 @@ public: explicit ArrayJoinStep(const DataStream & input_stream_, ArrayJoinActionPtr array_join_); String getName() const override { return "ArrayJoin"; } - void transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings & settings) override; + void transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) override; void describeActions(JSONBuilder::JSONMap & map) const override; void describeActions(FormatSettings & settings) const override; - void updateInputStream(DataStream input_stream, Block result_header); - const ArrayJoinActionPtr & arrayJoin() const { return array_join; } private: + void updateOutputStream() override; + ArrayJoinActionPtr array_join; - Block res_header; }; } diff --git a/src/Processors/QueryPlan/CreatingSetsStep.cpp b/src/Processors/QueryPlan/CreatingSetsStep.cpp index 6b6f9d361ef..94d841ff095 100644 --- a/src/Processors/QueryPlan/CreatingSetsStep.cpp +++ b/src/Processors/QueryPlan/CreatingSetsStep.cpp @@ -49,6 +49,11 @@ void CreatingSetStep::transformPipeline(QueryPipelineBuilder & pipeline, const B pipeline.addCreatingSetsTransform(getOutputStream().header, std::move(subquery_for_set), network_transfer_limits, getContext()); } +void CreatingSetStep::updateOutputStream() +{ + output_stream = createOutputStream(input_streams.front(), Block{}, getDataStreamTraits()); +} + void CreatingSetStep::describeActions(FormatSettings & settings) const { String prefix(settings.offset, ' '); diff --git a/src/Processors/QueryPlan/CreatingSetsStep.h b/src/Processors/QueryPlan/CreatingSetsStep.h index e20c28e10f4..20cdd24c8a9 100644 --- a/src/Processors/QueryPlan/CreatingSetsStep.h +++ b/src/Processors/QueryPlan/CreatingSetsStep.h @@ -27,6 +27,8 @@ public: void describeActions(FormatSettings & settings) const override; private: + void updateOutputStream() override; + String description; SubqueryForSet subquery_for_set; SizeLimits network_transfer_limits; diff --git a/src/Processors/QueryPlan/CubeStep.cpp b/src/Processors/QueryPlan/CubeStep.cpp index 91c85a08412..b0c57491085 100644 --- a/src/Processors/QueryPlan/CubeStep.cpp +++ b/src/Processors/QueryPlan/CubeStep.cpp @@ -24,14 +24,15 @@ static ITransformingStep::Traits getTraits() }; } -CubeStep::CubeStep(const DataStream & input_stream_, AggregatingTransformParamsPtr params_) - : ITransformingStep(input_stream_, appendGroupingSetColumn(params_->getHeader()), getTraits()) - , keys_size(params_->params.keys_size) +CubeStep::CubeStep(const DataStream & input_stream_, Aggregator::Params params_, bool final_) + : ITransformingStep(input_stream_, appendGroupingSetColumn(params_.getHeader(input_stream_.header, final_)), getTraits()) + , keys_size(params_.keys_size) , params(std::move(params_)) + , final(final_) { /// Aggregation keys are distinct - for (auto key : params->params.keys) - output_stream->distinct_columns.insert(params->params.src_header.getByPosition(key).name); + for (const auto & key : params.keys) + output_stream->distinct_columns.insert(key); } ProcessorPtr addGroupingSetForTotals(const Block & header, const BuildQueryPipelineSettings & settings, UInt64 grouping_set_number) @@ -59,13 +60,23 @@ void CubeStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQue if (stream_type == QueryPipelineBuilder::StreamType::Totals) return addGroupingSetForTotals(header, settings, (UInt64(1) << keys_size) - 1); - return std::make_shared(header, std::move(params)); + auto transform_params = std::make_shared(header, std::move(params), final); + return std::make_shared(header, std::move(transform_params)); }); } const Aggregator::Params & CubeStep::getParams() const { - return params->params; + return params; } +void CubeStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), appendGroupingSetColumn(params.getHeader(input_streams.front().header, final)), getDataStreamTraits()); + + /// Aggregation keys are distinct + for (const auto & key : params.keys) + output_stream->distinct_columns.insert(key); +} } diff --git a/src/Processors/QueryPlan/CubeStep.h b/src/Processors/QueryPlan/CubeStep.h index d3e26f9379f..87f22de7fc6 100644 --- a/src/Processors/QueryPlan/CubeStep.h +++ b/src/Processors/QueryPlan/CubeStep.h @@ -13,7 +13,7 @@ using AggregatingTransformParamsPtr = std::shared_ptrdistinct_columns.empty() /// Columns already distinct, do nothing + && (!pre_distinct /// Main distinct + || input_streams.front().has_single_port)) /// pre_distinct for single port works as usual one + { + /// Build distinct set. + for (const auto & name : columns) + output_stream->distinct_columns.insert(name); + } +} + } diff --git a/src/Processors/QueryPlan/DistinctStep.h b/src/Processors/QueryPlan/DistinctStep.h index a48a779425d..a4424e01d72 100644 --- a/src/Processors/QueryPlan/DistinctStep.h +++ b/src/Processors/QueryPlan/DistinctStep.h @@ -24,6 +24,8 @@ public: void describeActions(FormatSettings & settings) const override; private: + void updateOutputStream() override; + SizeLimits set_size_limits; UInt64 limit_hint; Names columns; diff --git a/src/Processors/QueryPlan/ExpressionStep.cpp b/src/Processors/QueryPlan/ExpressionStep.cpp index 33d2ad6e1cf..c9f1e1ce242 100644 --- a/src/Processors/QueryPlan/ExpressionStep.cpp +++ b/src/Processors/QueryPlan/ExpressionStep.cpp @@ -38,19 +38,6 @@ ExpressionStep::ExpressionStep(const DataStream & input_stream_, ActionsDAGPtr a updateDistinctColumns(output_stream->header, output_stream->distinct_columns); } -void ExpressionStep::updateInputStream(DataStream input_stream, bool keep_header) -{ - Block out_header = keep_header ? std::move(output_stream->header) - : ExpressionTransform::transformHeader(input_stream.header, *actions_dag); - output_stream = createOutputStream( - input_stream, - std::move(out_header), - getDataStreamTraits()); - - input_streams.clear(); - input_streams.emplace_back(std::move(input_stream)); -} - void ExpressionStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings & settings) { auto expression = std::make_shared(actions_dag, settings.getActionsSettings()); @@ -101,4 +88,10 @@ void ExpressionStep::describeActions(JSONBuilder::JSONMap & map) const map.add("Expression", expression->toTree()); } +void ExpressionStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), ExpressionTransform::transformHeader(input_streams.front().header, *actions_dag), getDataStreamTraits()); +} + } diff --git a/src/Processors/QueryPlan/ExpressionStep.h b/src/Processors/QueryPlan/ExpressionStep.h index 94c2ba21bc1..96869a9e9ca 100644 --- a/src/Processors/QueryPlan/ExpressionStep.h +++ b/src/Processors/QueryPlan/ExpressionStep.h @@ -20,8 +20,6 @@ public: void transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings & settings) override; - void updateInputStream(DataStream input_stream, bool keep_header); - void describeActions(FormatSettings & settings) const override; const ActionsDAGPtr & getExpression() const { return actions_dag; } @@ -29,6 +27,8 @@ public: void describeActions(JSONBuilder::JSONMap & map) const override; private: + void updateOutputStream() override; + ActionsDAGPtr actions_dag; }; diff --git a/src/Processors/QueryPlan/ExtremesStep.h b/src/Processors/QueryPlan/ExtremesStep.h index 7898796306c..57ccef077aa 100644 --- a/src/Processors/QueryPlan/ExtremesStep.h +++ b/src/Processors/QueryPlan/ExtremesStep.h @@ -12,6 +12,12 @@ public: String getName() const override { return "Extremes"; } void transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) override; + +private: + void updateOutputStream() override + { + output_stream = createOutputStream(input_streams.front(), input_streams.front().header, getDataStreamTraits()); + } }; } diff --git a/src/Processors/QueryPlan/FillingStep.cpp b/src/Processors/QueryPlan/FillingStep.cpp index 41bc2f44dba..8a370786820 100644 --- a/src/Processors/QueryPlan/FillingStep.cpp +++ b/src/Processors/QueryPlan/FillingStep.cpp @@ -57,4 +57,12 @@ void FillingStep::describeActions(JSONBuilder::JSONMap & map) const map.add("Sort Description", explainSortDescription(sort_description)); } +void FillingStep::updateOutputStream() +{ + if (!input_streams.front().has_single_port) + throw Exception("FillingStep expects single input", ErrorCodes::LOGICAL_ERROR); + + output_stream = createOutputStream( + input_streams.front(), FillingTransform::transformHeader(input_streams.front().header, sort_description), getDataStreamTraits()); +} } diff --git a/src/Processors/QueryPlan/FillingStep.h b/src/Processors/QueryPlan/FillingStep.h index 0393b2c525b..4e1b5b3654d 100644 --- a/src/Processors/QueryPlan/FillingStep.h +++ b/src/Processors/QueryPlan/FillingStep.h @@ -22,6 +22,8 @@ public: const SortDescription & getSortDescription() const { return sort_description; } private: + void updateOutputStream() override; + SortDescription sort_description; InterpolateDescriptionPtr interpolate_description; }; diff --git a/src/Processors/QueryPlan/FilterStep.cpp b/src/Processors/QueryPlan/FilterStep.cpp index df75c37dc97..ff58abf8874 100644 --- a/src/Processors/QueryPlan/FilterStep.cpp +++ b/src/Processors/QueryPlan/FilterStep.cpp @@ -46,25 +46,6 @@ FilterStep::FilterStep( updateDistinctColumns(output_stream->header, output_stream->distinct_columns); } -void FilterStep::updateInputStream(DataStream input_stream, bool keep_header) -{ - Block out_header = std::move(output_stream->header); - if (keep_header) - out_header = FilterTransform::transformHeader( - input_stream.header, - *actions_dag, - filter_column_name, - remove_filter_column); - - output_stream = createOutputStream( - input_stream, - std::move(out_header), - getDataStreamTraits()); - - input_streams.clear(); - input_streams.emplace_back(std::move(input_stream)); -} - void FilterStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings & settings) { auto expression = std::make_shared(actions_dag, settings.getActionsSettings()); @@ -124,4 +105,13 @@ void FilterStep::describeActions(JSONBuilder::JSONMap & map) const map.add("Expression", expression->toTree()); } +void FilterStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), + FilterTransform::transformHeader(input_streams.front().header, *actions_dag, filter_column_name, remove_filter_column), + getDataStreamTraits()); +} + + } diff --git a/src/Processors/QueryPlan/FilterStep.h b/src/Processors/QueryPlan/FilterStep.h index 7ac5bc036e0..daea1e13c58 100644 --- a/src/Processors/QueryPlan/FilterStep.h +++ b/src/Processors/QueryPlan/FilterStep.h @@ -20,8 +20,6 @@ public: String getName() const override { return "Filter"; } void transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings & settings) override; - void updateInputStream(DataStream input_stream, bool keep_header); - void describeActions(JSONBuilder::JSONMap & map) const override; void describeActions(FormatSettings & settings) const override; @@ -30,6 +28,8 @@ public: bool removesFilterColumn() const { return remove_filter_column; } private: + void updateOutputStream() override; + ActionsDAGPtr actions_dag; String filter_column_name; bool remove_filter_column; diff --git a/src/Processors/QueryPlan/ITransformingStep.h b/src/Processors/QueryPlan/ITransformingStep.h index 8f3641dd5bd..008642c71ee 100644 --- a/src/Processors/QueryPlan/ITransformingStep.h +++ b/src/Processors/QueryPlan/ITransformingStep.h @@ -55,6 +55,19 @@ public: const TransformTraits & getTransformTraits() const { return transform_traits; } const DataStreamTraits & getDataStreamTraits() const { return data_stream_traits; } + /// Updates the input stream of the given step. Used during query plan optimizations. + /// It won't do any validation of a new stream, so it is your responsibility to ensure that this update doesn't break anything + /// (e.g. you update data stream traits or correctly remove / add columns). + void updateInputStream(DataStream input_stream) + { + input_streams.clear(); + input_streams.emplace_back(std::move(input_stream)); + + updateOutputStream(); + + updateDistinctColumns(output_stream->header, output_stream->distinct_columns); + } + void describePipeline(FormatSettings & settings) const override; /// Append extra processors for this step. @@ -73,6 +86,8 @@ protected: TransformTraits transform_traits; private: + virtual void updateOutputStream() = 0; + /// We collect processors got after pipeline transformation. Processors processors; bool collect_processors; diff --git a/src/Processors/QueryPlan/JoinStep.cpp b/src/Processors/QueryPlan/JoinStep.cpp index 983be9d45fb..209d91af4d8 100644 --- a/src/Processors/QueryPlan/JoinStep.cpp +++ b/src/Processors/QueryPlan/JoinStep.cpp @@ -40,6 +40,14 @@ void JoinStep::describePipeline(FormatSettings & settings) const IQueryPlanStep::describePipeline(processors, settings); } +void JoinStep::updateLeftStream(const DataStream & left_stream_) +{ + input_streams = {left_stream_, input_streams.at(1)}; + output_stream = DataStream{ + .header = JoiningTransform::transformHeader(left_stream_.header, join), + }; +} + static ITransformingStep::Traits getStorageJoinTraits() { return ITransformingStep::Traits @@ -87,4 +95,11 @@ void FilledJoinStep::transformPipeline(QueryPipelineBuilder & pipeline, const Bu }); } +void FilledJoinStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), JoiningTransform::transformHeader(input_streams.front().header, join), getDataStreamTraits()); +} + + } diff --git a/src/Processors/QueryPlan/JoinStep.h b/src/Processors/QueryPlan/JoinStep.h index b9d3dff1b65..17a0cc2ae63 100644 --- a/src/Processors/QueryPlan/JoinStep.h +++ b/src/Processors/QueryPlan/JoinStep.h @@ -28,6 +28,8 @@ public: const JoinPtr & getJoin() const { return join; } + void updateLeftStream(const DataStream & left_stream_); + private: JoinPtr join; size_t max_block_size; @@ -47,6 +49,8 @@ public: void transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) override; private: + void updateOutputStream() override; + JoinPtr join; size_t max_block_size; }; diff --git a/src/Processors/QueryPlan/LimitByStep.h b/src/Processors/QueryPlan/LimitByStep.h index eb91be8a814..0edda3247d6 100644 --- a/src/Processors/QueryPlan/LimitByStep.h +++ b/src/Processors/QueryPlan/LimitByStep.h @@ -20,6 +20,11 @@ public: void describeActions(FormatSettings & settings) const override; private: + void updateOutputStream() override + { + output_stream = createOutputStream(input_streams.front(), input_streams.front().header, getDataStreamTraits()); + } + size_t group_length; size_t group_offset; Names columns; diff --git a/src/Processors/QueryPlan/LimitStep.cpp b/src/Processors/QueryPlan/LimitStep.cpp index aff7472e4aa..144ac16f0d5 100644 --- a/src/Processors/QueryPlan/LimitStep.cpp +++ b/src/Processors/QueryPlan/LimitStep.cpp @@ -36,13 +36,6 @@ LimitStep::LimitStep( { } -void LimitStep::updateInputStream(DataStream input_stream) -{ - input_streams.clear(); - input_streams.emplace_back(std::move(input_stream)); - output_stream = createOutputStream(input_streams.front(), input_streams.front().header, getDataStreamTraits()); -} - void LimitStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) { auto transform = std::make_shared( diff --git a/src/Processors/QueryPlan/LimitStep.h b/src/Processors/QueryPlan/LimitStep.h index f5bceeb29c7..1ae6b73cc3d 100644 --- a/src/Processors/QueryPlan/LimitStep.h +++ b/src/Processors/QueryPlan/LimitStep.h @@ -31,12 +31,14 @@ public: return limit + offset; } - /// Change input stream when limit is pushed up. TODO: add clone() for steps. - void updateInputStream(DataStream input_stream); - bool withTies() const { return with_ties; } private: + void updateOutputStream() override + { + output_stream = createOutputStream(input_streams.front(), input_streams.front().header, getDataStreamTraits()); + } + size_t limit; size_t offset; bool always_read_till_end; diff --git a/src/Processors/QueryPlan/MergingAggregatedStep.cpp b/src/Processors/QueryPlan/MergingAggregatedStep.cpp index 8dfb9f9c923..c898b901a6a 100644 --- a/src/Processors/QueryPlan/MergingAggregatedStep.cpp +++ b/src/Processors/QueryPlan/MergingAggregatedStep.cpp @@ -25,23 +25,26 @@ static ITransformingStep::Traits getTraits() MergingAggregatedStep::MergingAggregatedStep( const DataStream & input_stream_, - AggregatingTransformParamsPtr params_, + Aggregator::Params params_, + bool final_, bool memory_efficient_aggregation_, size_t max_threads_, size_t memory_efficient_merge_threads_) - : ITransformingStep(input_stream_, params_->getHeader(), getTraits()) - , params(params_) + : ITransformingStep(input_stream_, params_.getHeader(input_stream_.header, final_), getTraits()) + , params(std::move(params_)) + , final(final_) , memory_efficient_aggregation(memory_efficient_aggregation_) , max_threads(max_threads_) , memory_efficient_merge_threads(memory_efficient_merge_threads_) { /// Aggregation keys are distinct - for (auto key : params->params.keys) - output_stream->distinct_columns.insert(params->params.intermediate_header.getByPosition(key).name); + for (const auto & key : params.keys) + output_stream->distinct_columns.insert(key); } void MergingAggregatedStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) { + auto transform_params = std::make_shared(pipeline.getHeader(), std::move(params), final); if (!memory_efficient_aggregation) { /// We union several sources into one, paralleling the work. @@ -49,9 +52,7 @@ void MergingAggregatedStep::transformPipeline(QueryPipelineBuilder & pipeline, c /// Now merge the aggregated blocks pipeline.addSimpleTransform([&](const Block & header) - { - return std::make_shared(header, params, max_threads); - }); + { return std::make_shared(header, transform_params, max_threads); }); } else { @@ -59,18 +60,28 @@ void MergingAggregatedStep::transformPipeline(QueryPipelineBuilder & pipeline, c ? static_cast(memory_efficient_merge_threads) : static_cast(max_threads); - pipeline.addMergingAggregatedMemoryEfficientTransform(params, num_merge_threads); + pipeline.addMergingAggregatedMemoryEfficientTransform(transform_params, num_merge_threads); } } void MergingAggregatedStep::describeActions(FormatSettings & settings) const { - return params->params.explain(settings.out, settings.offset); + return params.explain(settings.out, settings.offset); } void MergingAggregatedStep::describeActions(JSONBuilder::JSONMap & map) const { - params->params.explain(map); + params.explain(map); } +void MergingAggregatedStep::updateOutputStream() +{ + output_stream = createOutputStream(input_streams.front(), params.getHeader(input_streams.front().header, final), getDataStreamTraits()); + + /// Aggregation keys are distinct + for (const auto & key : params.keys) + output_stream->distinct_columns.insert(key); +} + + } diff --git a/src/Processors/QueryPlan/MergingAggregatedStep.h b/src/Processors/QueryPlan/MergingAggregatedStep.h index eeead41b5f9..136422c8c27 100644 --- a/src/Processors/QueryPlan/MergingAggregatedStep.h +++ b/src/Processors/QueryPlan/MergingAggregatedStep.h @@ -1,4 +1,5 @@ #pragma once +#include #include #include @@ -14,7 +15,8 @@ class MergingAggregatedStep : public ITransformingStep public: MergingAggregatedStep( const DataStream & input_stream_, - AggregatingTransformParamsPtr params_, + Aggregator::Params params_, + bool final_, bool memory_efficient_aggregation_, size_t max_threads_, size_t memory_efficient_merge_threads_); @@ -27,7 +29,10 @@ public: void describeActions(FormatSettings & settings) const override; private: - AggregatingTransformParamsPtr params; + void updateOutputStream() override; + + Aggregator::Params params; + bool final; bool memory_efficient_aggregation; size_t max_threads; size_t memory_efficient_merge_threads; diff --git a/src/Processors/QueryPlan/OffsetStep.h b/src/Processors/QueryPlan/OffsetStep.h index f16559bcfad..a32835b62a6 100644 --- a/src/Processors/QueryPlan/OffsetStep.h +++ b/src/Processors/QueryPlan/OffsetStep.h @@ -19,6 +19,11 @@ public: void describeActions(FormatSettings & settings) const override; private: + void updateOutputStream() override + { + output_stream = createOutputStream(input_streams.front(), input_streams.front().header, getDataStreamTraits()); + } + size_t offset; }; diff --git a/src/Processors/QueryPlan/Optimizations/filterPushDown.cpp b/src/Processors/QueryPlan/Optimizations/filterPushDown.cpp index 2625bf38bf7..0c17c27e7aa 100644 --- a/src/Processors/QueryPlan/Optimizations/filterPushDown.cpp +++ b/src/Processors/QueryPlan/Optimizations/filterPushDown.cpp @@ -27,10 +27,19 @@ namespace DB::ErrorCodes namespace DB::QueryPlanOptimizations { -static size_t tryAddNewFilterStep( - QueryPlan::Node * parent_node, - QueryPlan::Nodes & nodes, - const Names & allowed_inputs) +static bool filterColumnIsNotAmongAggregatesArguments(const AggregateDescriptions & aggregates, const std::string & filter_column_name) +{ + for (const auto & aggregate : aggregates) + { + const auto & argument_names = aggregate.argument_names; + if (std::find(argument_names.begin(), argument_names.end(), filter_column_name) != argument_names.end()) + return false; + } + return true; +} + +static size_t +tryAddNewFilterStep(QueryPlan::Node * parent_node, QueryPlan::Nodes & nodes, const Names & allowed_inputs, bool can_remove_filter = true) { QueryPlan::Node * child_node = parent_node->children.front(); @@ -62,11 +71,6 @@ static size_t tryAddNewFilterStep( /// Filter column was replaced to constant. const bool filter_is_constant = filter_node && filter_node->column && isColumnConst(*filter_node->column); - if (!filter_node || filter_is_constant) - /// This means that all predicates of filter were pushed down. - /// Replace current actions to expression, as we don't need to filter anything. - parent = std::make_unique(child->getOutputStream(), expression); - /// Add new Filter step before Aggregating. /// Expression/Filter -> Aggregating -> Something auto & node = nodes.emplace_back(); @@ -77,21 +81,31 @@ static size_t tryAddNewFilterStep( /// New filter column is the first one. auto split_filter_column_name = (*split_filter->getIndex().begin())->result_name; node.step = std::make_unique( - node.children.at(0)->step->getOutputStream(), std::move(split_filter), std::move(split_filter_column_name), true); + node.children.at(0)->step->getOutputStream(), std::move(split_filter), std::move(split_filter_column_name), can_remove_filter); + + if (auto * transforming_step = dynamic_cast(child.get())) + { + transforming_step->updateInputStream(node.step->getOutputStream()); + } + else + { + if (auto * join = typeid_cast(child.get())) + join->updateLeftStream(node.step->getOutputStream()); + else + throw Exception( + ErrorCodes::LOGICAL_ERROR, "We are trying to push down a filter through a step for which we cannot update input stream"); + } + + if (!filter_node || filter_is_constant) + /// This means that all predicates of filter were pushed down. + /// Replace current actions to expression, as we don't need to filter anything. + parent = std::make_unique(child->getOutputStream(), expression); + else + filter->updateInputStream(child->getOutputStream()); return 3; } -static Names getAggregatingKeys(const Aggregator::Params & params) -{ - Names keys; - keys.reserve(params.keys.size()); - for (auto pos : params.keys) - keys.push_back(params.src_header.getByPosition(pos).name); - - return keys; -} - size_t tryPushDownFilter(QueryPlan::Node * parent_node, QueryPlan::Nodes & nodes) { if (parent_node->children.size() != 1) @@ -112,9 +126,14 @@ size_t tryPushDownFilter(QueryPlan::Node * parent_node, QueryPlan::Nodes & nodes if (auto * aggregating = typeid_cast(child.get())) { const auto & params = aggregating->getParams(); - Names keys = getAggregatingKeys(params); + const auto & keys = params.keys; - if (auto updated_steps = tryAddNewFilterStep(parent_node, nodes, keys)) + const bool filter_column_is_not_among_aggregation_keys + = std::find(keys.begin(), keys.end(), filter->getFilterColumnName()) == keys.end(); + const bool can_remove_filter = filter_column_is_not_among_aggregation_keys + && filterColumnIsNotAmongAggregatesArguments(params.aggregates, filter->getFilterColumnName()); + + if (auto updated_steps = tryAddNewFilterStep(parent_node, nodes, keys, can_remove_filter)) return updated_steps; } @@ -213,7 +232,9 @@ size_t tryPushDownFilter(QueryPlan::Node * parent_node, QueryPlan::Nodes & nodes allowed_keys.push_back(name); } - if (auto updated_steps = tryAddNewFilterStep(parent_node, nodes, allowed_keys)) + const bool can_remove_filter + = std::find(source_columns.begin(), source_columns.end(), filter->getFilterColumnName()) == source_columns.end(); + if (auto updated_steps = tryAddNewFilterStep(parent_node, nodes, allowed_keys, can_remove_filter)) return updated_steps; } } diff --git a/src/Processors/QueryPlan/Optimizations/liftUpArrayJoin.cpp b/src/Processors/QueryPlan/Optimizations/liftUpArrayJoin.cpp index e20c5f93d6e..36aab41df49 100644 --- a/src/Processors/QueryPlan/Optimizations/liftUpArrayJoin.cpp +++ b/src/Processors/QueryPlan/Optimizations/liftUpArrayJoin.cpp @@ -36,30 +36,6 @@ size_t tryLiftUpArrayJoin(QueryPlan::Node * parent_node, QueryPlan::Nodes & node auto description = parent->getStepDescription(); - /// All actions was moved before ARRAY JOIN. Swap Expression and ArrayJoin. - if (split_actions.second->trivial()) - { - auto expected_header = parent->getOutputStream().header; - - /// Expression/Filter -> ArrayJoin - std::swap(parent, child); - /// ArrayJoin -> Expression/Filter - - if (expression_step) - child = std::make_unique(child_node->children.at(0)->step->getOutputStream(), - std::move(split_actions.first)); - else - child = std::make_unique(child_node->children.at(0)->step->getOutputStream(), - std::move(split_actions.first), - filter_step->getFilterColumnName(), - filter_step->removesFilterColumn()); - - child->setStepDescription(std::move(description)); - - array_join_step->updateInputStream(child->getOutputStream(), expected_header); - return 2; - } - /// Add new expression step before ARRAY JOIN. /// Expression/Filter -> ArrayJoin -> Something auto & node = nodes.emplace_back(); @@ -70,7 +46,7 @@ size_t tryLiftUpArrayJoin(QueryPlan::Node * parent_node, QueryPlan::Nodes & node node.step = std::make_unique(node.children.at(0)->step->getOutputStream(), std::move(split_actions.first)); node.step->setStepDescription(description); - array_join_step->updateInputStream(node.step->getOutputStream(), {}); + array_join_step->updateInputStream(node.step->getOutputStream()); if (expression_step) parent = std::make_unique(array_join_step->getOutputStream(), split_actions.second); diff --git a/src/Processors/QueryPlan/Optimizations/liftUpFunctions.cpp b/src/Processors/QueryPlan/Optimizations/liftUpFunctions.cpp index 872adfeccc1..c3b03a5385f 100644 --- a/src/Processors/QueryPlan/Optimizations/liftUpFunctions.cpp +++ b/src/Processors/QueryPlan/Optimizations/liftUpFunctions.cpp @@ -70,8 +70,6 @@ size_t tryExecuteFunctionsAfterSorting(QueryPlan::Node * parent_node, QueryPlan: // so far the origin Expression (parent_node) -> Sorting (child_node) -> NeededCalculations (node_with_needed) sorting_step->updateInputStream(getChildOutputStream(*child_node)); - auto input_header = sorting_step->getInputStreams().at(0).header; - sorting_step->updateOutputStream(std::move(input_header)); auto description = parent_step->getStepDescription(); parent_step = std::make_unique(child_step->getOutputStream(), std::move(unneeded_for_sorting)); diff --git a/src/Processors/QueryPlan/RollupStep.cpp b/src/Processors/QueryPlan/RollupStep.cpp index 3b061f9c246..169976195ea 100644 --- a/src/Processors/QueryPlan/RollupStep.cpp +++ b/src/Processors/QueryPlan/RollupStep.cpp @@ -22,14 +22,15 @@ static ITransformingStep::Traits getTraits() }; } -RollupStep::RollupStep(const DataStream & input_stream_, AggregatingTransformParamsPtr params_) - : ITransformingStep(input_stream_, appendGroupingSetColumn(params_->getHeader()), getTraits()) +RollupStep::RollupStep(const DataStream & input_stream_, Aggregator::Params params_, bool final_) + : ITransformingStep(input_stream_, appendGroupingSetColumn(params_.getHeader(input_stream_.header, final_)), getTraits()) , params(std::move(params_)) - , keys_size(params->params.keys_size) + , keys_size(params.keys_size) + , final(final_) { /// Aggregation keys are distinct - for (auto key : params->params.keys) - output_stream->distinct_columns.insert(params->params.src_header.getByPosition(key).name); + for (const auto & key : params.keys) + output_stream->distinct_columns.insert(key); } ProcessorPtr addGroupingSetForTotals(const Block & header, const BuildQueryPipelineSettings & settings, UInt64 grouping_set_number); @@ -43,8 +44,20 @@ void RollupStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQ if (stream_type == QueryPipelineBuilder::StreamType::Totals) return addGroupingSetForTotals(header, settings, keys_size); - return std::make_shared(header, std::move(params)); + auto transform_params = std::make_shared(header, std::move(params), true); + return std::make_shared(header, std::move(transform_params)); }); } +void RollupStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), appendGroupingSetColumn(params.getHeader(input_streams.front().header, final)), getDataStreamTraits()); + + /// Aggregation keys are distinct + for (const auto & key : params.keys) + output_stream->distinct_columns.insert(key); +} + + } diff --git a/src/Processors/QueryPlan/RollupStep.h b/src/Processors/QueryPlan/RollupStep.h index 3dce6f74d9f..c59bf9f3ee9 100644 --- a/src/Processors/QueryPlan/RollupStep.h +++ b/src/Processors/QueryPlan/RollupStep.h @@ -1,4 +1,5 @@ #pragma once +#include #include #include @@ -12,15 +13,18 @@ using AggregatingTransformParamsPtr = std::shared_ptrsort_mode = DataStream::SortMode::Stream; } -void SortingStep::updateInputStream(DataStream input_stream) +void SortingStep::updateOutputStream() { - input_streams.clear(); - input_streams.emplace_back(std::move(input_stream)); -} - -void SortingStep::updateOutputStream(Block result_header) -{ - output_stream = createOutputStream(input_streams.at(0), std::move(result_header), getDataStreamTraits()); + output_stream = createOutputStream(input_streams.front(), input_streams.front().header, getDataStreamTraits()); output_stream->sort_description = result_description; output_stream->sort_mode = DataStream::SortMode::Stream; - updateDistinctColumns(output_stream->header, output_stream->distinct_columns); } void SortingStep::updateLimit(size_t limit_) diff --git a/src/Processors/QueryPlan/SortingStep.h b/src/Processors/QueryPlan/SortingStep.h index 23a31b14093..ce78bb863bf 100644 --- a/src/Processors/QueryPlan/SortingStep.h +++ b/src/Processors/QueryPlan/SortingStep.h @@ -49,14 +49,12 @@ public: /// Add limit or change it to lower value. void updateLimit(size_t limit_); - void updateInputStream(DataStream input_stream); - void updateOutputStream(Block result_header); - SortDescription getSortDescription() const { return result_description; } void convertToFinishSorting(SortDescription prefix_description); private: + void updateOutputStream() override; enum class Type { diff --git a/src/Processors/QueryPlan/TotalsHavingStep.cpp b/src/Processors/QueryPlan/TotalsHavingStep.cpp index 5e7e7011e0e..bb918a1a02d 100644 --- a/src/Processors/QueryPlan/TotalsHavingStep.cpp +++ b/src/Processors/QueryPlan/TotalsHavingStep.cpp @@ -27,7 +27,7 @@ static ITransformingStep::Traits getTraits(bool has_filter) TotalsHavingStep::TotalsHavingStep( const DataStream & input_stream_, - const ColumnsMask & aggregates_mask_, + const AggregateDescriptions & aggregates_, bool overflow_row_, const ActionsDAGPtr & actions_dag_, const std::string & filter_column_, @@ -36,16 +36,16 @@ TotalsHavingStep::TotalsHavingStep( double auto_include_threshold_, bool final_) : ITransformingStep( - input_stream_, - TotalsHavingTransform::transformHeader( - input_stream_.header, - actions_dag_.get(), - filter_column_, - remove_filter_, - final_, - aggregates_mask_), - getTraits(!filter_column_.empty())) - , aggregates_mask(aggregates_mask_) + input_stream_, + TotalsHavingTransform::transformHeader( + input_stream_.header, + actions_dag_.get(), + filter_column_, + remove_filter_, + final_, + getAggregatesMask(input_stream_.header, aggregates_)), + getTraits(!filter_column_.empty())) + , aggregates(aggregates_) , overflow_row(overflow_row_) , actions_dag(actions_dag_) , filter_column_name(filter_column_) @@ -62,7 +62,7 @@ void TotalsHavingStep::transformPipeline(QueryPipelineBuilder & pipeline, const auto totals_having = std::make_shared( pipeline.getHeader(), - aggregates_mask, + getAggregatesMask(pipeline.getHeader(), aggregates), overflow_row, expression_actions, filter_column_name, @@ -125,4 +125,19 @@ void TotalsHavingStep::describeActions(JSONBuilder::JSONMap & map) const } } +void TotalsHavingStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), + TotalsHavingTransform::transformHeader( + input_streams.front().header, + actions_dag.get(), + filter_column_name, + remove_filter, + final, + getAggregatesMask(input_streams.front().header, aggregates)), + getDataStreamTraits()); +} + + } diff --git a/src/Processors/QueryPlan/TotalsHavingStep.h b/src/Processors/QueryPlan/TotalsHavingStep.h index 4ad741a1b44..b60eab78b53 100644 --- a/src/Processors/QueryPlan/TotalsHavingStep.h +++ b/src/Processors/QueryPlan/TotalsHavingStep.h @@ -15,15 +15,15 @@ class TotalsHavingStep : public ITransformingStep { public: TotalsHavingStep( - const DataStream & input_stream_, - const ColumnsMask & aggregates_mask_, - bool overflow_row_, - const ActionsDAGPtr & actions_dag_, - const std::string & filter_column_, - bool remove_filter_, - TotalsMode totals_mode_, - double auto_include_threshold_, - bool final_); + const DataStream & input_stream_, + const AggregateDescriptions & aggregates_, + bool overflow_row_, + const ActionsDAGPtr & actions_dag_, + const std::string & filter_column_, + bool remove_filter_, + TotalsMode totals_mode_, + double auto_include_threshold_, + bool final_); String getName() const override { return "TotalsHaving"; } @@ -35,7 +35,10 @@ public: const ActionsDAGPtr & getActions() const { return actions_dag; } private: - const ColumnsMask aggregates_mask; + void updateOutputStream() override; + + const AggregateDescriptions aggregates; + bool overflow_row; ActionsDAGPtr actions_dag; String filter_column_name; diff --git a/src/Processors/QueryPlan/WindowStep.cpp b/src/Processors/QueryPlan/WindowStep.cpp index 48d16ed321f..b67b394b57b 100644 --- a/src/Processors/QueryPlan/WindowStep.cpp +++ b/src/Processors/QueryPlan/WindowStep.cpp @@ -44,17 +44,13 @@ static Block addWindowFunctionResultColumns(const Block & block, return result; } -WindowStep::WindowStep(const DataStream & input_stream_, - const WindowDescription & window_description_, - const std::vector & window_functions_) - : ITransformingStep( - input_stream_, - addWindowFunctionResultColumns(input_stream_.header, - window_functions_), - getTraits()) +WindowStep::WindowStep( + const DataStream & input_stream_, + const WindowDescription & window_description_, + const std::vector & window_functions_) + : ITransformingStep(input_stream_, addWindowFunctionResultColumns(input_stream_.header, window_functions_), getTraits()) , window_description(window_description_) , window_functions(window_functions_) - , input_header(input_stream_.header) { // We don't remove any columns, only add, so probably we don't have to update // the output DataStream::distinct_columns. @@ -70,11 +66,12 @@ void WindowStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQ // have resized it. pipeline.resize(1); - pipeline.addSimpleTransform([&](const Block & /*header*/) - { - return std::make_shared(input_header, - output_stream->header, window_description, window_functions); - }); + pipeline.addSimpleTransform( + [&](const Block & /*header*/) + { + return std::make_shared( + input_streams.front().header, output_stream->header, window_description, window_functions); + }); assertBlocksHaveEqualStructure(pipeline.getHeader(), output_stream->header, "WindowStep transform for '" + window_description.window_name + "'"); @@ -138,6 +135,14 @@ void WindowStep::describeActions(JSONBuilder::JSONMap & map) const map.add("Functions", std::move(functions_array)); } +void WindowStep::updateOutputStream() +{ + output_stream = createOutputStream( + input_streams.front(), addWindowFunctionResultColumns(input_streams.front().header, window_functions), getDataStreamTraits()); + + window_description.checkValid(); +} + const WindowDescription & WindowStep::getWindowDescription() const { return window_description; diff --git a/src/Processors/QueryPlan/WindowStep.h b/src/Processors/QueryPlan/WindowStep.h index 9b58cceb972..0bafdcbe414 100644 --- a/src/Processors/QueryPlan/WindowStep.h +++ b/src/Processors/QueryPlan/WindowStep.h @@ -28,9 +28,10 @@ public: const WindowDescription & getWindowDescription() const; private: + void updateOutputStream() override; + WindowDescription window_description; std::vector window_functions; - Block input_header; }; } diff --git a/src/Processors/TTL/TTLAggregationAlgorithm.cpp b/src/Processors/TTL/TTLAggregationAlgorithm.cpp index bce54ace054..d8b022f0acb 100644 --- a/src/Processors/TTL/TTLAggregationAlgorithm.cpp +++ b/src/Processors/TTL/TTLAggregationAlgorithm.cpp @@ -15,28 +15,31 @@ TTLAggregationAlgorithm::TTLAggregationAlgorithm( { current_key_value.resize(description.group_by_keys.size()); - ColumnNumbers keys; - for (const auto & key : description.group_by_keys) - keys.push_back(header.getPositionByName(key)); + const auto & keys = description.group_by_keys; key_columns.resize(description.group_by_keys.size()); AggregateDescriptions aggregates = description.aggregate_descriptions; - for (auto & descr : aggregates) - if (descr.arguments.empty()) - for (const auto & name : descr.argument_names) - descr.arguments.push_back(header.getPositionByName(name)); - columns_for_aggregator.resize(description.aggregate_descriptions.size()); const Settings & settings = storage_.getContext()->getSettingsRef(); - Aggregator::Params params(header, keys, aggregates, - false, settings.max_rows_to_group_by, settings.group_by_overflow_mode, 0, 0, - settings.max_bytes_before_external_group_by, settings.empty_result_for_aggregation_by_empty_set, - storage_.getContext()->getTemporaryVolume(), settings.max_threads, settings.min_free_disk_space_for_temporary_data, - settings.compile_aggregate_expressions, settings.min_count_to_compile_aggregate_expression); + Aggregator::Params params( + keys, + aggregates, + false, + settings.max_rows_to_group_by, + settings.group_by_overflow_mode, + 0, + 0, + settings.max_bytes_before_external_group_by, + settings.empty_result_for_aggregation_by_empty_set, + storage_.getContext()->getTemporaryVolume(), + settings.max_threads, + settings.min_free_disk_space_for_temporary_data, + settings.compile_aggregate_expressions, + settings.min_count_to_compile_aggregate_expression); - aggregator = std::make_unique(params); + aggregator = std::make_unique(header, params); if (isMaxTTLExpired()) new_ttl_info.ttl_finished = true; diff --git a/src/Processors/Transforms/AggregatingInOrderTransform.cpp b/src/Processors/Transforms/AggregatingInOrderTransform.cpp index f435d46a066..ce50ae5eeee 100644 --- a/src/Processors/Transforms/AggregatingInOrderTransform.cpp +++ b/src/Processors/Transforms/AggregatingInOrderTransform.cpp @@ -87,7 +87,8 @@ void AggregatingInOrderTransform::consume(Chunk chunk) Columns key_columns(params->params.keys_size); for (size_t i = 0; i < params->params.keys_size; ++i) { - materialized_columns.push_back(columns.at(params->params.keys[i])->convertToFullColumnIfConst()); + const auto pos = inputs.front().getHeader().getPositionByName(params->params.keys[i]); + materialized_columns.push_back(chunk.getColumns().at(pos)->convertToFullColumnIfConst()); key_columns[i] = materialized_columns.back(); if (group_by_key) key_columns_raw[i] = materialized_columns.back().get(); @@ -95,7 +96,11 @@ void AggregatingInOrderTransform::consume(Chunk chunk) Aggregator::NestedColumnsHolder nested_columns_holder; Aggregator::AggregateFunctionInstructions aggregate_function_instructions; - params->aggregator.prepareAggregateInstructions(columns, aggregate_columns, materialized_columns, aggregate_function_instructions, nested_columns_holder); + if (!params->params.only_merge) + { + params->aggregator.prepareAggregateInstructions( + columns, aggregate_columns, materialized_columns, aggregate_function_instructions, nested_columns_holder); + } size_t key_end = 0; size_t key_begin = 0; @@ -123,7 +128,7 @@ void AggregatingInOrderTransform::consume(Chunk chunk) Int64 current_memory_usage = 0; Aggregator::AggregateColumnsConstData aggregate_columns_data(params->params.aggregates_size); - if (params->only_merge) + if (params->params.only_merge) { for (size_t i = 0, j = 0; i < columns.size(); ++i) { @@ -149,7 +154,7 @@ void AggregatingInOrderTransform::consume(Chunk chunk) /// Add data to aggr. state if interval is not empty. Empty when haven't found current key in new block. if (key_begin != key_end) { - if (params->only_merge) + if (params->params.only_merge) { if (group_by_key) params->aggregator.mergeOnBlockSmall(variants, key_begin, key_end, aggregate_columns_data, key_columns_raw); diff --git a/src/Processors/Transforms/AggregatingTransform.cpp b/src/Processors/Transforms/AggregatingTransform.cpp index b5b254c3e3c..f8332742978 100644 --- a/src/Processors/Transforms/AggregatingTransform.cpp +++ b/src/Processors/Transforms/AggregatingTransform.cpp @@ -524,7 +524,7 @@ void AggregatingTransform::consume(Chunk chunk) src_rows += num_rows; src_bytes += chunk.bytes(); - if (params->only_merge) + if (params->params.only_merge) { auto block = getInputs().front().getHeader().cloneWithColumns(chunk.detachColumns()); block = materializeBlock(block); @@ -549,7 +549,7 @@ void AggregatingTransform::initGenerate() /// To do this, we pass a block with zero rows to aggregate. if (variants.empty() && params->params.keys_size == 0 && !params->params.empty_result_for_aggregation_by_empty_set) { - if (params->only_merge) + if (params->params.only_merge) params->aggregator.mergeOnBlock(getInputs().front().getHeader(), variants, no_more_keys); else params->aggregator.executeOnBlock(getInputs().front().getHeader(), variants, key_columns, aggregate_columns, no_more_keys); diff --git a/src/Processors/Transforms/AggregatingTransform.h b/src/Processors/Transforms/AggregatingTransform.h index 8d62664da59..789fa970ebd 100644 --- a/src/Processors/Transforms/AggregatingTransform.h +++ b/src/Processors/Transforms/AggregatingTransform.h @@ -34,24 +34,21 @@ struct AggregatingTransformParams AggregatorListPtr aggregator_list_ptr; Aggregator & aggregator; bool final; - /// Merge data for aggregate projections. - bool only_merge = false; - AggregatingTransformParams(const Aggregator::Params & params_, bool final_, bool only_merge_) + AggregatingTransformParams(const Block & header, const Aggregator::Params & params_, bool final_) : params(params_) , aggregator_list_ptr(std::make_shared()) - , aggregator(*aggregator_list_ptr->emplace(aggregator_list_ptr->end(), params)) + , aggregator(*aggregator_list_ptr->emplace(aggregator_list_ptr->end(), header, params)) , final(final_) - , only_merge(only_merge_) { } - AggregatingTransformParams(const Aggregator::Params & params_, const AggregatorListPtr & aggregator_list_ptr_, bool final_, bool only_merge_) + AggregatingTransformParams( + const Block & header, const Aggregator::Params & params_, const AggregatorListPtr & aggregator_list_ptr_, bool final_) : params(params_) , aggregator_list_ptr(aggregator_list_ptr_) - , aggregator(*aggregator_list_ptr->emplace(aggregator_list_ptr->end(), params)) + , aggregator(*aggregator_list_ptr->emplace(aggregator_list_ptr->end(), header, params)) , final(final_) - , only_merge(only_merge_) { } diff --git a/src/Processors/Transforms/CubeTransform.cpp b/src/Processors/Transforms/CubeTransform.cpp index 83ed346dabe..b80ca29327f 100644 --- a/src/Processors/Transforms/CubeTransform.cpp +++ b/src/Processors/Transforms/CubeTransform.cpp @@ -12,9 +12,12 @@ namespace ErrorCodes CubeTransform::CubeTransform(Block header, AggregatingTransformParamsPtr params_) : IAccumulatingTransform(std::move(header), appendGroupingSetColumn(params_->getHeader())) , params(std::move(params_)) - , keys(params->params.keys) , aggregates_mask(getAggregatesMask(params->getHeader(), params->params.aggregates)) { + keys.reserve(params->params.keys_size); + for (const auto & key : params->params.keys) + keys.emplace_back(input.getHeader().getPositionByName(key)); + if (keys.size() >= 8 * sizeof(mask)) throw Exception("Too many keys are used for CubeTransform.", ErrorCodes::LOGICAL_ERROR); } diff --git a/src/Processors/Transforms/CubeTransform.h b/src/Processors/Transforms/CubeTransform.h index 4575a01935d..bd33eabd750 100644 --- a/src/Processors/Transforms/CubeTransform.h +++ b/src/Processors/Transforms/CubeTransform.h @@ -21,7 +21,7 @@ protected: private: AggregatingTransformParamsPtr params; - const ColumnNumbers keys; + ColumnNumbers keys; const ColumnsMask aggregates_mask; Chunks consumed_chunks; diff --git a/src/Processors/Transforms/RollupTransform.cpp b/src/Processors/Transforms/RollupTransform.cpp index b69a691323c..e5351d1d5e2 100644 --- a/src/Processors/Transforms/RollupTransform.cpp +++ b/src/Processors/Transforms/RollupTransform.cpp @@ -8,9 +8,11 @@ namespace DB RollupTransform::RollupTransform(Block header, AggregatingTransformParamsPtr params_) : IAccumulatingTransform(std::move(header), appendGroupingSetColumn(params_->getHeader())) , params(std::move(params_)) - , keys(params->params.keys) , aggregates_mask(getAggregatesMask(params->getHeader(), params->params.aggregates)) { + keys.reserve(params->params.keys_size); + for (const auto & key : params->params.keys) + keys.emplace_back(input.getHeader().getPositionByName(key)); } void RollupTransform::consume(Chunk chunk) diff --git a/src/Processors/Transforms/RollupTransform.h b/src/Processors/Transforms/RollupTransform.h index 8fd27e3e6a2..1630df23579 100644 --- a/src/Processors/Transforms/RollupTransform.h +++ b/src/Processors/Transforms/RollupTransform.h @@ -20,7 +20,7 @@ protected: private: AggregatingTransformParamsPtr params; - const ColumnNumbers keys; + ColumnNumbers keys; const ColumnsMask aggregates_mask; Chunks consumed_chunks; diff --git a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp index 30fb3efcf0e..6590445572d 100644 --- a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp +++ b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp @@ -263,23 +263,22 @@ QueryPlanPtr MergeTreeDataSelectExecutor::read( Pipe ordinary_pipe; if (query_info.projection->desc->type == ProjectionDescription::Type::Aggregate) { - auto make_aggregator_params = [&](const Block & header_before_aggregation, bool projection) + auto make_aggregator_params = [&](bool projection) { - ColumnNumbers keys; - for (const auto & key : query_info.projection->aggregation_keys) - keys.push_back(header_before_aggregation.getPositionByName(key.name)); + const auto & keys = query_info.projection->aggregation_keys.getNames(); AggregateDescriptions aggregates = query_info.projection->aggregate_descriptions; - if (!projection) - { - for (auto & descr : aggregates) - if (descr.arguments.empty()) - for (const auto & name : descr.argument_names) - descr.arguments.push_back(header_before_aggregation.getPositionByName(name)); - } + + /// This part is hacky. + /// We want AggregatingTransform to work with aggregate states instead of normal columns. + /// It is almost the same, just instead of adding new data to aggregation state we merge it with existing. + /// + /// It is needed because data in projection: + /// * is not merged completely (we may have states with the same key in different parts) + /// * is not split into buckets (so if we just use MergingAggregated, it will use single thread) + const bool only_merge = projection; Aggregator::Params params( - header_before_aggregation, keys, aggregates, query_info.projection->aggregate_overflow_row, @@ -293,23 +292,8 @@ QueryPlanPtr MergeTreeDataSelectExecutor::read( settings.max_threads, settings.min_free_disk_space_for_temporary_data, settings.compile_aggregate_expressions, - settings.min_count_to_compile_aggregate_expression); - - bool only_merge = false; - if (projection) - { - /// The source header is also an intermediate header - params.intermediate_header = header_before_aggregation; - - /// This part is hacky. - /// We want AggregatingTransform to work with aggregate states instead of normal columns. - /// It is almost the same, just instead of adding new data to aggregation state we merge it with existing. - /// - /// It is needed because data in projection: - /// * is not merged completely (we may have states with the same key in different parts) - /// * is not split into buckets (so if we just use MergingAggregated, it will use single thread) - only_merge = true; - } + settings.min_count_to_compile_aggregate_expression, + only_merge); return std::make_pair(params, only_merge); }; @@ -343,10 +327,10 @@ QueryPlanPtr MergeTreeDataSelectExecutor::read( /// TODO apply optimize_aggregation_in_order here too (like below) auto build_aggregate_pipe = [&](Pipe & pipe, bool projection) { - auto [params, only_merge] = make_aggregator_params(pipe.getHeader(), projection); + auto [params, only_merge] = make_aggregator_params(projection); AggregatingTransformParamsPtr transform_params = std::make_shared( - std::move(params), aggregator_list_ptr, query_info.projection->aggregate_final, only_merge); + pipe.getHeader(), std::move(params), aggregator_list_ptr, query_info.projection->aggregate_final); pipe.resize(pipe.numOutputPorts(), true, true); @@ -371,7 +355,7 @@ QueryPlanPtr MergeTreeDataSelectExecutor::read( { auto add_aggregating_step = [&](QueryPlanPtr & query_plan, bool projection) { - auto [params, only_merge] = make_aggregator_params(query_plan->getCurrentDataStream().header, projection); + auto [params, only_merge] = make_aggregator_params(projection); auto merge_threads = num_streams; auto temporary_data_merge_threads = settings.aggregation_memory_efficient_merge_threads @@ -390,7 +374,6 @@ QueryPlanPtr MergeTreeDataSelectExecutor::read( std::move(params), /* grouping_sets_params_= */ GroupingSetsParamsList{}, query_info.projection->aggregate_final, - only_merge, settings.max_block_size, settings.aggregation_in_order_max_block_bytes, merge_threads, diff --git a/tests/queries/0_stateless/01763_filter_push_down_bugs.reference b/tests/queries/0_stateless/01763_filter_push_down_bugs.reference index 6917117b3e2..5aa2e645509 100644 --- a/tests/queries/0_stateless/01763_filter_push_down_bugs.reference +++ b/tests/queries/0_stateless/01763_filter_push_down_bugs.reference @@ -5,3 +5,4 @@ String1_0 String2_0 String3_0 String4_0 1 String1_0 String2_0 String3_0 String4_0 1 1 [0,1,2] +1 diff --git a/tests/queries/0_stateless/01763_filter_push_down_bugs.sql b/tests/queries/0_stateless/01763_filter_push_down_bugs.sql index b13282e6dca..1058bf75144 100644 --- a/tests/queries/0_stateless/01763_filter_push_down_bugs.sql +++ b/tests/queries/0_stateless/01763_filter_push_down_bugs.sql @@ -37,3 +37,7 @@ WHERE String4 ='String4_0'; DROP TABLE IF EXISTS Test; select x, y from (select [0, 1, 2] as y, 1 as a, 2 as b) array join y as x where a = 1 and b = 2 and (x = 1 or x != 1) and x = 1; + +create table t(a UInt8) engine=MergeTree order by a; +insert into t select * from numbers(2); +select a from t t1 join t t2 on t1.a = t2.a where t1.a; diff --git a/tests/queries/0_stateless/01823_explain_json.reference b/tests/queries/0_stateless/01823_explain_json.reference index 9e36660204b..9df7c16e4f4 100644 --- a/tests/queries/0_stateless/01823_explain_json.reference +++ b/tests/queries/0_stateless/01823_explain_json.reference @@ -63,8 +63,7 @@ "Argument Types": ["UInt64"], "Result Type": "Float64" }, - "Arguments": ["number"], - "Argument Positions": [0] + "Arguments": ["number"] }, { "Name": "sumIf(number, greater(number, 0))", @@ -73,8 +72,7 @@ "Argument Types": ["UInt64", "UInt8"], "Result Type": "UInt64" }, - "Arguments": ["number", "greater(number, 0)"], - "Argument Positions": [0, 2] + "Arguments": ["number", "greater(number, 0)"] } ], -------- diff --git a/tests/queries/0_stateless/01823_explain_json.sh b/tests/queries/0_stateless/01823_explain_json.sh index 3db2dcb6dc4..4d7aa5f88d6 100755 --- a/tests/queries/0_stateless/01823_explain_json.sh +++ b/tests/queries/0_stateless/01823_explain_json.sh @@ -12,7 +12,7 @@ $CLICKHOUSE_CLIENT -q "explain json = 1, description = 0, header = 1 select 1, 2 echo "--------" $CLICKHOUSE_CLIENT -q "EXPLAIN json = 1, actions = 1, header = 1, description = 0 SELECT quantile(0.2)(number), sumIf(number, number > 0) from numbers(2) group by number, number + 1 FORMAT TSVRaw - " | grep Aggregating -A 42 + " | grep Aggregating -A 40 echo "--------" $CLICKHOUSE_CLIENT -q "EXPLAIN json = 1, actions = 1, description = 0 From 7297e468d56f85000110a41a4941330fcd3e0177 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 27 Jun 2022 14:00:32 +0200 Subject: [PATCH 292/525] Migrate team-keys lambda to zip archives deployment --- tests/ci/team_keys_lambda/.gitignore | 2 + tests/ci/team_keys_lambda/Dockerfile | 13 --- tests/ci/team_keys_lambda/app.py | 80 ++++++++++++------- .../build_and_deploy_archive.sh | 15 ++++ 4 files changed, 68 insertions(+), 42 deletions(-) create mode 100644 tests/ci/team_keys_lambda/.gitignore delete mode 100644 tests/ci/team_keys_lambda/Dockerfile create mode 100644 tests/ci/team_keys_lambda/build_and_deploy_archive.sh diff --git a/tests/ci/team_keys_lambda/.gitignore b/tests/ci/team_keys_lambda/.gitignore new file mode 100644 index 00000000000..4c845d295ee --- /dev/null +++ b/tests/ci/team_keys_lambda/.gitignore @@ -0,0 +1,2 @@ +lambda-venv +lambda-package.zip diff --git a/tests/ci/team_keys_lambda/Dockerfile b/tests/ci/team_keys_lambda/Dockerfile deleted file mode 100644 index 0d50224c51d..00000000000 --- a/tests/ci/team_keys_lambda/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM public.ecr.aws/lambda/python:3.9 - -# Install the function's dependencies using file requirements.txt -# from your project folder. - -COPY requirements.txt . -RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}" - -# Copy function code -COPY app.py ${LAMBDA_TASK_ROOT} - -# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile) -CMD [ "app.handler" ] diff --git a/tests/ci/team_keys_lambda/app.py b/tests/ci/team_keys_lambda/app.py index 50ef753001c..9e73a3f0993 100644 --- a/tests/ci/team_keys_lambda/app.py +++ b/tests/ci/team_keys_lambda/app.py @@ -3,13 +3,43 @@ import argparse import json -from threading import Thread +from datetime import datetime from queue import Queue +from threading import Thread import requests # type: ignore +import boto3 # type: ignore -def get_org_team_members(token: str, org: str, team_slug: str) -> tuple: +class Keys(set): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.updated_at = 0 + + def update_now(self): + self.updated_at = datetime.now().timestamp() + + +keys = Keys() + + +class Worker(Thread): + def __init__(self, request_queue): + Thread.__init__(self) + self.queue = request_queue + self.results = set() + + def run(self): + while True: + m = self.queue.get() + if m == "": + break + response = requests.get(f"https://github.com/{m}.keys") + self.results.add(f"# {m}\n{response.text}\n") + self.queue.task_done() + + +def get_org_team_members(token: str, org: str, team_slug: str) -> set: headers = { "Authorization": f"token {token}", "Accept": "application/vnd.github.v3+json", @@ -19,24 +49,12 @@ def get_org_team_members(token: str, org: str, team_slug: str) -> tuple: ) response.raise_for_status() data = response.json() - return tuple(m["login"] for m in data) + return set(m["login"] for m in data) -def get_members_keys(members: tuple) -> str: - class Worker(Thread): - def __init__(self, request_queue): - Thread.__init__(self) - self.queue = request_queue - self.results = [] - - def run(self): - while True: - m = self.queue.get() - if m == "": - break - response = requests.get(f"https://github.com/{m}.keys") - self.results.append(f"# {m}\n{response.text}") - self.queue.task_done() +def get_cached_members_keys(members: set) -> Keys: + if (datetime.now().timestamp() - 3600) <= keys.updated_at: + return keys q = Queue() # type: Queue workers = [] @@ -55,15 +73,14 @@ def get_members_keys(members: tuple) -> str: for worker in workers: worker.join() - responses = [] + keys.clear() for worker in workers: - responses.extend(worker.results) - return "".join(responses) + keys.update(worker.results) + keys.update_now() + return keys def get_token_from_aws() -> str: - import boto3 # type: ignore - secret_name = "clickhouse_robot_token" session = boto3.session.Session() client = session.client( @@ -76,21 +93,26 @@ def get_token_from_aws() -> str: def main(token: str, org: str, team_slug: str) -> str: members = get_org_team_members(token, org, team_slug) - keys = get_members_keys(members) + keys = get_cached_members_keys(members) - return keys + return "".join(sorted(keys)) def handler(event, context): _ = context _ = event - token = get_token_from_aws() + if keys.updated_at < (datetime.now().timestamp() - 3600): + token = get_token_from_aws() + body = main(token, "ClickHouse", "core") + else: + body = "".join(sorted(keys)) + result = { "statusCode": 200, "headers": { "Content-Type": "text/html", }, - "body": main(token, "ClickHouse", "core"), + "body": body, } return result @@ -106,6 +128,6 @@ if __name__ == "__main__": parser.add_argument("--team", help="GitHub team name", default="core") args = parser.parse_args() - keys = main(args.token, args.organization, args.team) + output = main(args.token, args.organization, args.team) - print(f"# Just shoing off the keys:\n{keys}") + print(f"# Just shoing off the keys:\n{output}") diff --git a/tests/ci/team_keys_lambda/build_and_deploy_archive.sh b/tests/ci/team_keys_lambda/build_and_deploy_archive.sh new file mode 100644 index 00000000000..7b89ea11ede --- /dev/null +++ b/tests/ci/team_keys_lambda/build_and_deploy_archive.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -xeo pipefail + +VENV=lambda-venv +py_exec=$(which python3) +py_version=$(basename "$(readlink -f "$py_exec")") +rm -rf "$VENV" lambda-package.zip +virtualenv "$VENV" +source "$VENV/bin/activate" +pip install -r requirements.txt +PACKAGES="$VENV/lib/$py_version/site-packages" +cp app.py "$PACKAGES/" +( cd "$PACKAGES" && zip -r ../../../../lambda-package.zip . ) + +aws lambda update-function-code --function-name team-keys-lambda --zip-file fileb://lambda-package.zip From 5f81bcd84f52efd7a7f99acd9f7e6191e6163478 Mon Sep 17 00:00:00 2001 From: Anton Kozlov Date: Mon, 27 Jun 2022 13:13:21 +0100 Subject: [PATCH 293/525] CLICKHOUSE-1331 Rewrite tuple functions as literals in backwards-compatibility mode (#38096) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- src/Interpreters/TreeRewriter.cpp | 34 ++++++++++++++++--- ...f_tuple_literal_over_distributed.reference | 1 + ...name_of_tuple_literal_over_distributed.sql | 4 +++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.reference create mode 100644 tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.sql diff --git a/src/Interpreters/TreeRewriter.cpp b/src/Interpreters/TreeRewriter.cpp index 3d14955c16a..7fa1fe2f012 100644 --- a/src/Interpreters/TreeRewriter.cpp +++ b/src/Interpreters/TreeRewriter.cpp @@ -834,17 +834,43 @@ std::vector getWindowFunctions(ASTPtr & query, const ASTSel class MarkTupleLiteralsAsLegacyData { public: - using TypeToVisit = ASTLiteral; + struct Data + { + }; - static void visit(ASTLiteral & literal, ASTPtr &) + static void visitLiteral(ASTLiteral & literal, ASTPtr &) { if (literal.value.getType() == Field::Types::Tuple) literal.use_legacy_column_name_of_tuple = true; } + static void visitFunction(ASTFunction & func, ASTPtr &ast) + { + if (func.name == "tuple" && func.arguments && !func.arguments->children.empty()) + { + // re-write tuple() function as literal + if (auto literal = func.toLiteral()) + { + ast = literal; + visitLiteral(*typeid_cast(ast.get()), ast); + } + } + } + + static void visit(ASTPtr & ast, Data &) + { + if (auto * identifier = typeid_cast(ast.get())) + visitFunction(*identifier, ast); + if (auto * identifier = typeid_cast(ast.get())) + visitLiteral(*identifier, ast); + } + + static bool needChildVisit(const ASTPtr & /*parent*/, const ASTPtr & /*child*/) + { + return true; + } }; -using MarkTupleLiteralsAsLegacyMatcher = OneTypeMatcher; -using MarkTupleLiteralsAsLegacyVisitor = InDepthNodeVisitor; +using MarkTupleLiteralsAsLegacyVisitor = InDepthNodeVisitor; void markTupleLiteralsAsLegacy(ASTPtr & query) { diff --git a/tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.reference b/tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.reference new file mode 100644 index 00000000000..9766475a418 --- /dev/null +++ b/tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.reference @@ -0,0 +1 @@ +ok diff --git a/tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.sql b/tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.sql new file mode 100644 index 00000000000..a2a8e7c80f8 --- /dev/null +++ b/tests/queries/0_stateless/02287_legacy_column_name_of_tuple_literal_over_distributed.sql @@ -0,0 +1,4 @@ +SET legacy_column_name_of_tuple_literal=1; +SET prefer_localhost_replica=0; + +select if(in(dummy, tuple(0, 1)), 'ok', 'ok') from remote('localhost', system.one); \ No newline at end of file From 8ce6b8226d2665d57c9533e6a00fb027a55763be Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy <99031427+yakov-olkhovskiy@users.noreply.github.com> Date: Mon, 27 Jun 2022 08:25:21 -0400 Subject: [PATCH 294/525] Update CMakeLists.txt --- programs/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index 08f1a269ff6..33b7eda2fce 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -266,9 +266,9 @@ if (ENABLE_CLICKHOUSE_LIBRARY_BRIDGE) add_subdirectory (library-bridge) endif () -#if (ENABLE_CLICKHOUSE_SELF_EXTRACTING) +if (ENABLE_CLICKHOUSE_SELF_EXTRACTING) add_subdirectory (self-extracting) -#endif () +endif () if (CLICKHOUSE_ONE_SHARED) add_library(clickhouse-lib SHARED From c4d815c60b2a40491159de4b77e4ecae561f54f7 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Mon, 27 Jun 2022 15:44:20 +0300 Subject: [PATCH 295/525] Update test.py --- tests/integration/test_broken_detached_part_clean_up/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_broken_detached_part_clean_up/test.py b/tests/integration/test_broken_detached_part_clean_up/test.py index dd6744b4228..167d10ec7d1 100644 --- a/tests/integration/test_broken_detached_part_clean_up/test.py +++ b/tests/integration/test_broken_detached_part_clean_up/test.py @@ -278,7 +278,7 @@ def test_store_cleanup(started_cluster): assert "300" in store assert "456" in store assert "kek" not in store # changed - assert "12" not in store # changed + assert "\n12\n" not in store # changed assert "d---------" not in node1.exec_in_container( ["ls", "-l", f"{path_to_data}/store"] ) # changed From 9dffe573bbbd7054938b08974199e9cfbd56be31 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 27 Jun 2022 14:44:59 +0200 Subject: [PATCH 296/525] Reduce amount of docker logs on the runner --- tests/ci/worker/ubuntu_ami_for_ci.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/ci/worker/ubuntu_ami_for_ci.sh b/tests/ci/worker/ubuntu_ami_for_ci.sh index 2552ce58690..ab4eb0be6ad 100644 --- a/tests/ci/worker/ubuntu_ami_for_ci.sh +++ b/tests/ci/worker/ubuntu_ami_for_ci.sh @@ -57,6 +57,11 @@ cat < /etc/docker/daemon.json { "ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64", + "log-driver": "json-file", + "log-opts": { + "max-file": "5", + "max-size": "1000m" + }, "insecure-registries" : ["dockerhub-proxy.dockerhub-proxy-zone:5000"], "registry-mirrors" : ["http://dockerhub-proxy.dockerhub-proxy-zone:5000"] } From f2611c3707066f91bfee7dbe4ebdd8c359c273c9 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 27 Jun 2022 14:45:50 +0200 Subject: [PATCH 297/525] Refresh team keys for each runner --- tests/ci/worker/init_runner.sh | 5 +++++ tests/ci/worker/ubuntu_ami_for_ci.sh | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/ci/worker/init_runner.sh b/tests/ci/worker/init_runner.sh index 90466892fc9..9a75c1f196c 100644 --- a/tests/ci/worker/init_runner.sh +++ b/tests/ci/worker/init_runner.sh @@ -26,6 +26,11 @@ export LABELS aws ssm get-parameter --region us-east-1 --name AmazonCloudWatch-github-runners --query 'Parameter.Value' --output text > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json systemctl restart amazon-cloudwatch-agent.service +# Refresh teams ssh keys +TEAM_KEYS_URL=$(aws ssm get-parameter --region us-east-1 --name team-keys-url --query 'Parameter.Value' --output=text) +curl "${TEAM_KEYS_URL}" > /home/ubuntu/.ssh/authorized_keys2 +chown ubuntu: /home/ubuntu/.ssh -R + # Create a pre-run script that will restart docker daemon before the job started mkdir -p /tmp/actions-hooks diff --git a/tests/ci/worker/ubuntu_ami_for_ci.sh b/tests/ci/worker/ubuntu_ami_for_ci.sh index ab4eb0be6ad..c5bc090d8d8 100644 --- a/tests/ci/worker/ubuntu_ami_for_ci.sh +++ b/tests/ci/worker/ubuntu_ami_for_ci.sh @@ -98,8 +98,8 @@ rm -rf /home/ubuntu/awscliv2.zip /home/ubuntu/aws mkdir -p /home/ubuntu/.ssh # ~/.ssh/authorized_keys is cleaned out, so we use deprecated but working ~/.ssh/authorized_keys2 -aws lambda invoke --region us-east-1 --function-name team-keys-lambda /tmp/core.keys -jq < /tmp/core.keys -r '.body' > /home/ubuntu/.ssh/authorized_keys2 +TEAM_KEYS_URL=$(aws ssm get-parameter --region us-east-1 --name team-keys-url --query 'Parameter.Value' --output=text) +curl "${TEAM_KEYS_URL}" > /home/ubuntu/.ssh/authorized_keys2 chown ubuntu: /home/ubuntu/.ssh -R chmod 0700 /home/ubuntu/.ssh From 6a67ba91cf1c69c092845b6f63c1421736e98dbe Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 27 Jun 2022 14:46:28 +0200 Subject: [PATCH 298/525] Add public hostname for runner --- tests/ci/worker/init_runner.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/ci/worker/init_runner.sh b/tests/ci/worker/init_runner.sh index 9a75c1f196c..13d873a0066 100644 --- a/tests/ci/worker/init_runner.sh +++ b/tests/ci/worker/init_runner.sh @@ -38,6 +38,7 @@ cat > /tmp/actions-hooks/pre-run.sh << 'EOF' #!/bin/bash set -xuo pipefail +echo "Runner's public DNS: $(ec2metadata --public-hostname)" EOF cat > /tmp/actions-hooks/post-run.sh << 'EOF' From cadc202b351f23ce72768f9a179e220ff2474983 Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Mon, 27 Jun 2022 15:37:58 +0200 Subject: [PATCH 299/525] Update RabbitMQSource.cpp --- src/Storages/RabbitMQ/RabbitMQSource.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Storages/RabbitMQ/RabbitMQSource.cpp b/src/Storages/RabbitMQ/RabbitMQSource.cpp index 1f5778465f8..67a7884a595 100644 --- a/src/Storages/RabbitMQ/RabbitMQSource.cpp +++ b/src/Storages/RabbitMQ/RabbitMQSource.cpp @@ -144,6 +144,9 @@ Chunk RabbitMQSource::generateImpl() while (true) { + if (buffer->queueEmpty()) + break; + auto new_rows = executor.execute(); if (new_rows) From be283d1c1253428eaee1b5ef9ab1a9eacb1adf03 Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Mon, 27 Jun 2022 15:39:22 +0200 Subject: [PATCH 300/525] Update RabbitMQSource.cpp --- src/Storages/RabbitMQ/RabbitMQSource.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Storages/RabbitMQ/RabbitMQSource.cpp b/src/Storages/RabbitMQ/RabbitMQSource.cpp index 67a7884a595..f6e5bb84037 100644 --- a/src/Storages/RabbitMQ/RabbitMQSource.cpp +++ b/src/Storages/RabbitMQ/RabbitMQSource.cpp @@ -140,8 +140,6 @@ Chunk RabbitMQSource::generateImpl() size_t total_rows = 0; - buffer->allowNext(); - while (true) { if (buffer->queueEmpty()) From 88dbbcb15dbacad6178ce5647d03e19ff6d9ac79 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Mon, 27 Jun 2022 16:10:00 +0200 Subject: [PATCH 301/525] fix tests --- src/Databases/DatabaseFactory.cpp | 3 ++- src/Databases/DatabaseReplicated.cpp | 1 + src/Interpreters/loadMetadata.cpp | 3 ++- src/Storages/MergeTree/registerStorageMergeTree.cpp | 8 +++----- .../test_backward_compatibility/test_convert_ordinary.py | 6 +++++- .../0_stateless/01233_check_table_with_metadata_cache.sh | 2 +- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/Databases/DatabaseFactory.cpp b/src/Databases/DatabaseFactory.cpp index 332ea26f3fb..af82d382063 100644 --- a/src/Databases/DatabaseFactory.cpp +++ b/src/Databases/DatabaseFactory.cpp @@ -124,7 +124,8 @@ DatabasePtr DatabaseFactory::getImpl(const ASTCreateQuery & create, const String if (engine_name == "Ordinary") { if (!create.attach && !context->getSettingsRef().allow_deprecated_database_ordinary) - throw Exception(ErrorCodes::UNKNOWN_DATABASE_ENGINE, "Ordinary database engine is deprecated"); + throw Exception(ErrorCodes::UNKNOWN_DATABASE_ENGINE, + "Ordinary database engine is deprecated (see also allow_deprecated_database_ordinary setting)"); return std::make_shared(database_name, metadata_path, context); } diff --git a/src/Databases/DatabaseReplicated.cpp b/src/Databases/DatabaseReplicated.cpp index 0d20dfb2770..7067746cf71 100644 --- a/src/Databases/DatabaseReplicated.cpp +++ b/src/Databases/DatabaseReplicated.cpp @@ -608,6 +608,7 @@ void DatabaseReplicated::recoverLostReplica(const ZooKeeperPtr & current_zookeep /// and make possible creation of new table with the same UUID. String query = fmt::format("CREATE DATABASE IF NOT EXISTS {} ENGINE=Ordinary", backQuoteIfNeed(to_db_name)); auto query_context = Context::createCopy(getContext()); + query_context->setSetting("allow_deprecated_database_ordinary", 1); executeQuery(query, query_context, true); /// But we want to avoid discarding UUID of ReplicatedMergeTree tables, because it will not work diff --git a/src/Interpreters/loadMetadata.cpp b/src/Interpreters/loadMetadata.cpp index 5c1a09ced14..90d8e5bef92 100644 --- a/src/Interpreters/loadMetadata.cpp +++ b/src/Interpreters/loadMetadata.cpp @@ -30,6 +30,7 @@ namespace DB namespace ErrorCodes { extern const int NOT_IMPLEMENTED; + extern const int LOGICAL_ERROR; } static void executeCreateQuery( @@ -212,7 +213,7 @@ static void loadSystemDatabaseImpl(ContextMutablePtr context, const String & dat static void convertOrdinaryDatabaseToAtomic(ContextMutablePtr context, const DatabasePtr & database) { - /// It's kind of C++ script that creates temporary table with Atomic engine, + /// It's kind of C++ script that creates temporary database with Atomic engine, /// moves all tables to it, drops old database and then renames new one to old name. Poco::Logger * log = &Poco::Logger::get("loadMetadata"); diff --git a/src/Storages/MergeTree/registerStorageMergeTree.cpp b/src/Storages/MergeTree/registerStorageMergeTree.cpp index 4b20a494155..e52a0fed674 100644 --- a/src/Storages/MergeTree/registerStorageMergeTree.cpp +++ b/src/Storages/MergeTree/registerStorageMergeTree.cpp @@ -304,10 +304,11 @@ static StoragePtr create(const StorageFactory::Arguments & args) arg_idx, e.message(), getMergeTreeVerboseHelp(is_extended_storage_def)); } } - else if (!args.attach && !args.local_context.lock()->getSettingsRef().allow_deprecated_syntax_for_merge_tree) + else if (!args.attach && !args.getLocalContext()->getSettingsRef().allow_deprecated_syntax_for_merge_tree) { throw Exception(ErrorCodes::BAD_ARGUMENTS, "This syntax for *MergeTree engine is deprecated. " - "Use extended storage definition syntax with ORDER BY/PRIMARY KEY clause."); + "Use extended storage definition syntax with ORDER BY/PRIMARY KEY clause." + "See also allow_deprecated_syntax_for_merge_tree setting."); } /// For Replicated. @@ -319,9 +320,6 @@ static StoragePtr create(const StorageFactory::Arguments & args) bool is_replicated_database = args.getLocalContext()->getClientInfo().query_kind == ClientInfo::QueryKind::SECONDARY_QUERY && DatabaseCatalog::instance().getDatabase(args.table_id.database_name)->getEngineName() == "Replicated"; - if (is_replicated_database && !is_extended_storage_def) - throw Exception(ErrorCodes::BAD_ARGUMENTS, "Old syntax is not allowed for *MergeTree tables in Replicated databases"); - if (replicated) { bool has_arguments = arg_num + 2 <= arg_cnt; diff --git a/tests/integration/test_backward_compatibility/test_convert_ordinary.py b/tests/integration/test_backward_compatibility/test_convert_ordinary.py index b7eb67305ce..121a47d8234 100644 --- a/tests/integration/test_backward_compatibility/test_convert_ordinary.py +++ b/tests/integration/test_backward_compatibility/test_convert_ordinary.py @@ -70,4 +70,8 @@ def test_convert_system_db_to_atomic(start_cluster): and "1\n" == node.count_in_log("Can't receive Netlink response") ) assert "0\n" == node.count_in_log(" Database") - assert "0\n" == node.count_in_log("always include the lines below") + errors_count = node.count_in_log("always include the lines below") + assert "0\n" == errors_count or ( + "1\n" == errors_count + and "1\n" == node.count_in_log("Can't receive Netlink response") + ) diff --git a/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh b/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh index 68b62b62351..8736bc474b1 100755 --- a/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh +++ b/tests/queries/0_stateless/01233_check_table_with_metadata_cache.sh @@ -24,7 +24,7 @@ for table_engine in "${table_engines[@]}"; do ${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test_metadata_cache.check_part_metadata_cache SYNC;" ${CLICKHOUSE_CLIENT} --query "DROP DATABASE IF EXISTS test_metadata_cache;" - ${CLICKHOUSE_CLIENT} --query "CREATE DATABASE test_metadata_cache ENGINE = ${database_engine};" + ${CLICKHOUSE_CLIENT} --allow_deprecated_database_ordinary=1 --query "CREATE DATABASE test_metadata_cache ENGINE = ${database_engine};" table_engine_clause="" if [[ "$table_engine" == "ReplicatedMergeTree" ]]; then From fe1b1aa77ba89d68abebc62dac536dee17d4ddc9 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Mon, 27 Jun 2022 16:16:06 +0200 Subject: [PATCH 302/525] fix my favorite check --- .../test_backward_compatibility/test_convert_ordinary.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_backward_compatibility/test_convert_ordinary.py b/tests/integration/test_backward_compatibility/test_convert_ordinary.py index 121a47d8234..59ceca23a51 100644 --- a/tests/integration/test_backward_compatibility/test_convert_ordinary.py +++ b/tests/integration/test_backward_compatibility/test_convert_ordinary.py @@ -72,6 +72,6 @@ def test_convert_system_db_to_atomic(start_cluster): assert "0\n" == node.count_in_log(" Database") errors_count = node.count_in_log("always include the lines below") assert "0\n" == errors_count or ( - "1\n" == errors_count - and "1\n" == node.count_in_log("Can't receive Netlink response") + "1\n" == errors_count + and "1\n" == node.count_in_log("Can't receive Netlink response") ) From e515579cbe070583a8b650f8db272982842ebc71 Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Mon, 27 Jun 2022 16:26:36 +0200 Subject: [PATCH 303/525] Update IObjectStorage.h --- src/Disks/ObjectStorages/IObjectStorage.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Disks/ObjectStorages/IObjectStorage.h b/src/Disks/ObjectStorages/IObjectStorage.h index 64022ec046d..ad8d5d2530e 100644 --- a/src/Disks/ObjectStorages/IObjectStorage.h +++ b/src/Disks/ObjectStorages/IObjectStorage.h @@ -25,8 +25,7 @@ class WriteBufferFromFileBase; using ObjectAttributes = std::map; -/// Path to a file and its size. -/// Path can be either relative or absolute - according to the context of use. +/// Path to a file (always absolute) and its size. struct PathWithSize { std::string path; From c9faab49928e24b985d193bcb01f73dff5f0d1fb Mon Sep 17 00:00:00 2001 From: kssenii Date: Mon, 27 Jun 2022 16:43:26 +0200 Subject: [PATCH 304/525] Fix --- .../AzureBlobStorage/AzureObjectStorage.cpp | 2 +- .../AzureBlobStorage/AzureObjectStorage.h | 2 +- .../ObjectStorages/DiskObjectStorageMetadata.cpp | 2 +- .../ObjectStorages/DiskObjectStorageMetadata.h | 15 ++------------- ...skObjectStorageRemoteMetadataRestoreHelper.cpp | 5 +++-- .../ObjectStorages/HDFS/HDFSObjectStorage.cpp | 2 +- src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h | 2 +- src/Disks/ObjectStorages/IObjectStorage.h | 3 ++- src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp | 2 +- src/Disks/ObjectStorages/S3/S3ObjectStorage.h | 2 +- 10 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp index 32fd285dcdb..c25d1d7470c 100644 --- a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp +++ b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.cpp @@ -113,7 +113,7 @@ std::unique_ptr AzureObjectStorage::writeObject( /// NO return std::make_unique(std::move(buffer), std::move(finalize_callback), path); } -void AzureObjectStorage::listPrefix(const std::string & path, PathsWithSize & children) const +void AzureObjectStorage::listPrefix(const std::string & path, RelativePathsWithSize & children) const { auto client_ptr = client.get(); diff --git a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h index 559be0ad257..ab7d2b28508 100644 --- a/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h +++ b/src/Disks/ObjectStorages/AzureBlobStorage/AzureObjectStorage.h @@ -73,7 +73,7 @@ public: size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, const WriteSettings & write_settings = {}) override; - void listPrefix(const std::string & path, PathsWithSize & children) const override; + void listPrefix(const std::string & path, RelativePathsWithSize & children) const override; /// Remove file. Throws exception if file doesn't exists or it's a directory. void removeObject(const std::string & path) override; diff --git a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp index 4564e84316d..a2c0c8abd36 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.cpp @@ -51,7 +51,7 @@ void DiskObjectStorageMetadata::deserialize(ReadBuffer & buf) remote_fs_object_path = remote_fs_object_path.substr(remote_fs_root_path.size()); } assertChar('\n', buf); - storage_objects[i].relative_path = remote_fs_object_path; + storage_objects[i].path = remote_fs_object_path; storage_objects[i].bytes_size = remote_fs_object_size; } diff --git a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h index adebbcb952d..0f2a2a5507d 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageMetadata.h @@ -12,17 +12,6 @@ namespace DB struct DiskObjectStorageMetadata { private: - struct RelativePathWithSize - { - String relative_path; - size_t bytes_size; - - RelativePathWithSize() = default; - - RelativePathWithSize(const String & relative_path_, size_t bytes_size_) - : relative_path(relative_path_), bytes_size(bytes_size_) {} - }; - /// Metadata file version. static constexpr uint32_t VERSION_ABSOLUTE_PATHS = 1; static constexpr uint32_t VERSION_RELATIVE_PATHS = 2; @@ -31,7 +20,7 @@ private: const std::string & common_metadata_path; /// Relative paths of blobs. - std::vector storage_objects; + RelativePathsWithSize storage_objects; /// URI const std::string & remote_fs_root_path; @@ -71,7 +60,7 @@ public: return remote_fs_root_path; } - std::vector getBlobsRelativePaths() const + RelativePathsWithSize getBlobsRelativePaths() const { return storage_objects; } diff --git a/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp b/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp index a8140e8954e..c9dbb5de078 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageRemoteMetadataRestoreHelper.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -379,7 +380,7 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::restoreFiles(IObjectStorage * return true; }; - PathsWithSize children; + RelativePathsWithSize children; source_object_storage->listPrefix(restore_information.source_path, children); restore_files(children); @@ -523,7 +524,7 @@ void DiskObjectStorageRemoteMetadataRestoreHelper::restoreFileOperations(IObject return true; }; - PathsWithSize children; + RelativePathsWithSize children; source_object_storage->listPrefix(restore_information.source_path + "operations/", children); restore_file_operations(children); diff --git a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp index 82c700e1a63..bedd1a83df1 100644 --- a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp +++ b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.cpp @@ -81,7 +81,7 @@ std::unique_ptr HDFSObjectStorage::writeObject( /// NOL } -void HDFSObjectStorage::listPrefix(const std::string & path, PathsWithSize & children) const +void HDFSObjectStorage::listPrefix(const std::string & path, RelativePathsWithSize & children) const { const size_t begin_of_path = path.find('/', path.find("//") + 2); int32_t num_entries; diff --git a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h index 28f553906ea..69878568548 100644 --- a/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h +++ b/src/Disks/ObjectStorages/HDFS/HDFSObjectStorage.h @@ -75,7 +75,7 @@ public: size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, const WriteSettings & write_settings = {}) override; - void listPrefix(const std::string & path, PathsWithSize & children) const override; + void listPrefix(const std::string & path, RelativePathsWithSize & children) const override; /// Remove file. Throws exception if file doesn't exists or it's a directory. void removeObject(const std::string & path) override; diff --git a/src/Disks/ObjectStorages/IObjectStorage.h b/src/Disks/ObjectStorages/IObjectStorage.h index 64022ec046d..705c2d223b4 100644 --- a/src/Disks/ObjectStorages/IObjectStorage.h +++ b/src/Disks/ObjectStorages/IObjectStorage.h @@ -42,6 +42,7 @@ struct PathWithSize /// List of paths with their sizes using PathsWithSize = std::vector; +using RelativePathsWithSize = PathsWithSize; struct ObjectMetadata { @@ -66,7 +67,7 @@ public: virtual bool exists(const std::string & path) const = 0; /// List on prefix, return children (relative paths) with their sizes. - virtual void listPrefix(const std::string & path, PathsWithSize & children) const = 0; + virtual void listPrefix(const std::string & path, RelativePathsWithSize & children) const = 0; /// Get object metadata if supported. It should be possible to receive /// at least size of object diff --git a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp index 58bd29d2d73..9236cde6e93 100644 --- a/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp +++ b/src/Disks/ObjectStorages/S3/S3ObjectStorage.cpp @@ -195,7 +195,7 @@ std::unique_ptr S3ObjectStorage::writeObject( /// NOLIN return std::make_unique(std::move(s3_buffer), std::move(finalize_callback), path); } -void S3ObjectStorage::listPrefix(const std::string & path, PathsWithSize & children) const +void S3ObjectStorage::listPrefix(const std::string & path, RelativePathsWithSize & children) const { auto settings_ptr = s3_settings.get(); auto client_ptr = client.get(); diff --git a/src/Disks/ObjectStorages/S3/S3ObjectStorage.h b/src/Disks/ObjectStorages/S3/S3ObjectStorage.h index 5c53ea1f894..5d4300bffd3 100644 --- a/src/Disks/ObjectStorages/S3/S3ObjectStorage.h +++ b/src/Disks/ObjectStorages/S3/S3ObjectStorage.h @@ -80,7 +80,7 @@ public: size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, const WriteSettings & write_settings = {}) override; - void listPrefix(const std::string & path, PathsWithSize & children) const override; + void listPrefix(const std::string & path, RelativePathsWithSize & children) const override; /// Remove file. Throws exception if file doesn't exist or it's a directory. void removeObject(const std::string & path) override; From 5d36994c4dfc174f1f7aa7420b24f63fc15b68d0 Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy Date: Mon, 27 Jun 2022 11:41:23 -0400 Subject: [PATCH 305/525] self-extracting requires utils (uses utils/self-extracting-executable/compressor) --- programs/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index 9df2b4e316c..b56f7ab1cc2 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -18,7 +18,7 @@ option (ENABLE_CLICKHOUSE_SERVER "Server mode (main mode)" ${ENABLE_CLICKHOUSE_A option (ENABLE_CLICKHOUSE_CLIENT "Client mode (interactive tui/shell that connects to the server)" ${ENABLE_CLICKHOUSE_ALL}) -if (CLICKHOUSE_SPLIT_BINARY) +if (CLICKHOUSE_SPLIT_BINARY OR NOT ENABLE_UTILS) option (ENABLE_CLICKHOUSE_SELF_EXTRACTING "Self-extracting executable" OFF) else () option (ENABLE_CLICKHOUSE_SELF_EXTRACTING "Self-extracting executable" ON) From 986ead7358969005378df604fda58271f0fea59b Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Mon, 27 Jun 2022 20:34:18 +0200 Subject: [PATCH 306/525] use old HashTableGrower with *WithStackMemory data structures --- .../AggregateFunctionUniqCombined.h | 2 +- src/Columns/ReverseIndex.h | 4 +- src/Common/HashTable/ClearableHashMap.h | 8 +-- src/Common/HashTable/ClearableHashSet.h | 32 +++++------ src/Common/HashTable/HashMap.h | 6 +- src/Common/HashTable/HashSet.h | 24 +++----- src/Common/HashTable/HashTable.h | 56 ++++++++++++++++++- src/Common/HashTable/LRUHashMap.h | 16 +++--- src/Common/HashTable/StringHashTable.h | 2 +- src/Common/HashTable/TwoLevelHashTable.h | 2 +- src/Common/tests/gtest_hash_table.cpp | 30 +++++----- 11 files changed, 111 insertions(+), 71 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionUniqCombined.h b/src/AggregateFunctions/AggregateFunctionUniqCombined.h index 733ec8c39fe..51020abe826 100644 --- a/src/AggregateFunctions/AggregateFunctionUniqCombined.h +++ b/src/AggregateFunctions/AggregateFunctionUniqCombined.h @@ -70,7 +70,7 @@ namespace detail } // Unlike HashTableGrower always grows to power of 2. -struct UniqCombinedHashTableGrower : public HashTableGrower<> +struct UniqCombinedHashTableGrower : public HashTableGrowerWithPrecalculation<> { void increaseSize() { increaseSizeDegree(1); } }; diff --git a/src/Columns/ReverseIndex.h b/src/Columns/ReverseIndex.h index 0b308a81084..3f4427e17ad 100644 --- a/src/Columns/ReverseIndex.h +++ b/src/Columns/ReverseIndex.h @@ -145,10 +145,10 @@ struct ReverseIndexHashTableCell * separately. */ template -class ReverseIndexHashTableBase : public HashTable, HashTableAllocator> +class ReverseIndexHashTableBase : public HashTable, HashTableAllocator> { using State = typename Cell::State; - using Base = HashTable, HashTableAllocator>; + using Base = HashTable, HashTableAllocator>; public: using Base::Base; diff --git a/src/Common/HashTable/ClearableHashMap.h b/src/Common/HashTable/ClearableHashMap.h index fda01dcf4bc..689f3ff0500 100644 --- a/src/Common/HashTable/ClearableHashMap.h +++ b/src/Common/HashTable/ClearableHashMap.h @@ -14,14 +14,12 @@ struct ClearableHashMapCell : public ClearableHashTableCell, - typename Grower = HashTableGrower<>, - typename Allocator = HashTableAllocator -> + typename Grower = HashTableGrowerWithPrecalculation<>, + typename Allocator = HashTableAllocator> class ClearableHashMap : public HashTable, Hash, Grower, Allocator> { public: diff --git a/src/Common/HashTable/ClearableHashSet.h b/src/Common/HashTable/ClearableHashSet.h index a14490c4551..371302dd8a9 100644 --- a/src/Common/HashTable/ClearableHashSet.h +++ b/src/Common/HashTable/ClearableHashSet.h @@ -48,14 +48,13 @@ struct ClearableHashTableCell : public BaseCell ClearableHashTableCell(const Key & key_, const State & state) : BaseCell(key_, state), version(state.version) {} }; -template -< +template < typename Key, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, - typename Allocator = HashTableAllocator -> -class ClearableHashSet : public HashTable>, Hash, Grower, Allocator> + typename Grower = HashTableGrowerWithPrecalculation<>, + typename Allocator = HashTableAllocator> +class ClearableHashSet + : public HashTable>, Hash, Grower, Allocator> { public: using Base = HashTable>, Hash, Grower, Allocator>; @@ -68,14 +67,17 @@ public: } }; -template -< +template < typename Key, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, - typename Allocator = HashTableAllocator -> -class ClearableHashSetWithSavedHash: public HashTable>, Hash, Grower, Allocator> + typename Grower = HashTableGrowerWithPrecalculation<>, + typename Allocator = HashTableAllocator> +class ClearableHashSetWithSavedHash : public HashTable< + Key, + ClearableHashTableCell>, + Hash, + Grower, + Allocator> { public: void clear() @@ -91,8 +93,4 @@ using ClearableHashSetWithStackMemory = ClearableHashSet< Hash, HashTableGrower, HashTableAllocatorWithStackMemory< - (1ULL << initial_size_degree) - * sizeof( - ClearableHashTableCell< - Key, - HashTableCell>)>>; + (1ULL << initial_size_degree) * sizeof(ClearableHashTableCell>)>>; diff --git a/src/Common/HashTable/HashMap.h b/src/Common/HashTable/HashMap.h index 236a6d65707..32fc9a8d76c 100644 --- a/src/Common/HashTable/HashMap.h +++ b/src/Common/HashTable/HashMap.h @@ -181,7 +181,7 @@ template < typename Key, typename Cell, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, + typename Grower = HashTableGrowerWithPrecalculation<>, typename Allocator = HashTableAllocator> class HashMapTable : public HashTable { @@ -296,7 +296,7 @@ template < typename Key, typename Mapped, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, + typename Grower = HashTableGrowerWithPrecalculation<>, typename Allocator = HashTableAllocator> using HashMap = HashMapTable, Hash, Grower, Allocator>; @@ -305,7 +305,7 @@ template < typename Key, typename Mapped, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, + typename Grower = HashTableGrowerWithPrecalculation<>, typename Allocator = HashTableAllocator> using HashMapWithSavedHash = HashMapTable, Hash, Grower, Allocator>; diff --git a/src/Common/HashTable/HashSet.h b/src/Common/HashTable/HashSet.h index d06fc761362..279ab167347 100644 --- a/src/Common/HashTable/HashSet.h +++ b/src/Common/HashTable/HashSet.h @@ -16,14 +16,12 @@ */ -template -< +template < typename Key, typename TCell, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, - typename Allocator = HashTableAllocator -> + typename Grower = HashTableGrowerWithPrecalculation<>, + typename Allocator = HashTableAllocator> class HashSetTable : public HashTable { public: @@ -84,13 +82,11 @@ struct HashSetCellWithSavedHash : public HashTableCell size_t getHash(const Hash & /*hash_function*/) const { return saved_hash; } }; -template -< +template < typename Key, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, - typename Allocator = HashTableAllocator -> + typename Grower = HashTableGrowerWithPrecalculation<>, + typename Allocator = HashTableAllocator> using HashSet = HashSetTable, Hash, Grower, Allocator>; template @@ -102,13 +98,11 @@ using HashSetWithStackMemory = HashSet< (1ULL << initial_size_degree) * sizeof(HashTableCell)>>; -template -< +template < typename Key, typename Hash = DefaultHash, - typename Grower = HashTableGrower<>, - typename Allocator = HashTableAllocator -> + typename Grower = HashTableGrowerWithPrecalculation<>, + typename Allocator = HashTableAllocator> using HashSetWithSavedHash = HashSetTable, Hash, Grower, Allocator>; template diff --git a/src/Common/HashTable/HashTable.h b/src/Common/HashTable/HashTable.h index ca46ff5dfdc..b802eb0a860 100644 --- a/src/Common/HashTable/HashTable.h +++ b/src/Common/HashTable/HashTable.h @@ -226,10 +226,60 @@ void insertSetMapped(MappedType & dest, const ValueType & src) { dest = src.seco /** Determines the size of the hash table, and when and how much it should be resized. - * This structure is aligned to cache line boundary and also occupies it all. + * Has very small state (one UInt8) and useful for Set-s allocated in automatic memory (see uniqExact as an example). */ template -class alignas(64) HashTableGrower +struct HashTableGrower +{ + /// The state of this structure is enough to get the buffer size of the hash table. + + UInt8 size_degree = initial_size_degree; + static constexpr auto initial_count = 1ULL << initial_size_degree; + + /// If collision resolution chains are contiguous, we can implement erase operation by moving the elements. + static constexpr auto performs_linear_probing_with_single_step = true; + + /// The size of the hash table in the cells. + size_t bufSize() const { return 1ULL << size_degree; } + + size_t maxFill() const { return 1ULL << (size_degree - 1); } + size_t mask() const { return bufSize() - 1; } + + /// From the hash value, get the cell number in the hash table. + size_t place(size_t x) const { return x & mask(); } + + /// The next cell in the collision resolution chain. + size_t next(size_t pos) const + { + ++pos; + return pos & mask(); + } + + /// Whether the hash table is sufficiently full. You need to increase the size of the hash table, or remove something unnecessary from it. + bool overflow(size_t elems) const { return elems > maxFill(); } + + /// Increase the size of the hash table. + void increaseSize() { size_degree += size_degree >= 23 ? 1 : 2; } + + /// Set the buffer size by the number of elements in the hash table. Used when deserializing a hash table. + void set(size_t num_elems) + { + size_degree = num_elems <= 1 + ? initial_size_degree + : ((initial_size_degree > static_cast(log2(num_elems - 1)) + 2) ? initial_size_degree + : (static_cast(log2(num_elems - 1)) + 2)); + } + + void setBufSize(size_t buf_size_) { size_degree = static_cast(log2(buf_size_ - 1) + 1); } +}; + + +/** Determines the size of the hash table, and when and how much it should be resized. + * This structure is aligned to cache line boundary and also occupies it all. + * Precalculates some values to speed up lookups and insertion into the HashTable (and thus has bigger memory footprint than HashTableGrower). + */ +template +class alignas(64) HashTableGrowerWithPrecalculation { /// The state of this structure is enough to get the buffer size of the hash table. @@ -285,7 +335,7 @@ public: } }; -static_assert(sizeof(HashTableGrower<>) == 64); +static_assert(sizeof(HashTableGrowerWithPrecalculation<>) == 64); /** When used as a Grower, it turns a hash table into something like a lookup table. * It remains non-optimal - the cells store the keys. diff --git a/src/Common/HashTable/LRUHashMap.h b/src/Common/HashTable/LRUHashMap.h index 95ac5a1932e..68b585cf553 100644 --- a/src/Common/HashTable/LRUHashMap.h +++ b/src/Common/HashTable/LRUHashMap.h @@ -78,20 +78,20 @@ struct LRUHashMapCellNodeTraits }; template -class LRUHashMapImpl : - private HashMapTable< - TKey, - LRUHashMapCell, - Hash, - HashTableGrower<>, - HashTableAllocator> +class LRUHashMapImpl : private HashMapTable< + TKey, + LRUHashMapCell, + Hash, + HashTableGrowerWithPrecalculation<>, + HashTableAllocator> { using Base = HashMapTable< TKey, LRUHashMapCell, Hash, - HashTableGrower<>, + HashTableGrowerWithPrecalculation<>, HashTableAllocator>; + public: using Key = TKey; using Value = TValue; diff --git a/src/Common/HashTable/StringHashTable.h b/src/Common/HashTable/StringHashTable.h index e9d095a24c0..8d15fde4ce0 100644 --- a/src/Common/HashTable/StringHashTable.h +++ b/src/Common/HashTable/StringHashTable.h @@ -150,7 +150,7 @@ public: }; template -struct StringHashTableGrower : public HashTableGrower +struct StringHashTableGrower : public HashTableGrowerWithPrecalculation { // Smooth growing for string maps void increaseSize() { this->increaseSizeDegree(1); } diff --git a/src/Common/HashTable/TwoLevelHashTable.h b/src/Common/HashTable/TwoLevelHashTable.h index c1fbfb4dbac..27cc075acd7 100644 --- a/src/Common/HashTable/TwoLevelHashTable.h +++ b/src/Common/HashTable/TwoLevelHashTable.h @@ -15,7 +15,7 @@ */ template -struct TwoLevelHashTableGrower : public HashTableGrower +struct TwoLevelHashTableGrower : public HashTableGrowerWithPrecalculation { /// Increase the size of the hash table. void increaseSize() { this->increaseSizeDegree(this->sizeDegree() >= 15 ? 1 : 2); } diff --git a/src/Common/tests/gtest_hash_table.cpp b/src/Common/tests/gtest_hash_table.cpp index 35fb471f07c..b06ee5a666e 100644 --- a/src/Common/tests/gtest_hash_table.cpp +++ b/src/Common/tests/gtest_hash_table.cpp @@ -37,7 +37,7 @@ std::set convertToSet(const HashTable & table) TEST(HashTable, Insert) { - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; @@ -49,7 +49,7 @@ TEST(HashTable, Insert) TEST(HashTable, Emplace) { - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; @@ -70,7 +70,7 @@ TEST(HashTable, Emplace) TEST(HashTable, Lookup) { - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; @@ -89,7 +89,7 @@ TEST(HashTable, Lookup) TEST(HashTable, Iteration) { - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; @@ -107,7 +107,7 @@ TEST(HashTable, Erase) { { /// Check zero element deletion - using Cont = HashSet, HashTableGrower<4>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<4>>; Cont cont; cont.insert(0); @@ -119,7 +119,7 @@ TEST(HashTable, Erase) ASSERT_TRUE(cont.find(0) == nullptr); } { - using Cont = HashSet, HashTableGrower<4>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<4>>; Cont cont; /// [.(1)..............] erase of (1). @@ -132,7 +132,7 @@ TEST(HashTable, Erase) ASSERT_TRUE(cont.find(1) == nullptr); } { - using Cont = HashSet, HashTableGrower<4>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<4>>; Cont cont; /// [.(1)(2)(3)............] erase of (1) does not break search for (2) (3). @@ -152,7 +152,7 @@ TEST(HashTable, Erase) ASSERT_EQ(cont.size(), 0); } { - using Cont = HashSet, HashTableGrower<4>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<4>>; Cont cont; /// [.(1)(17).............] erase of (1) breaks search for (17) because their natural position is 1. @@ -164,7 +164,7 @@ TEST(HashTable, Erase) ASSERT_TRUE(cont.find(17) != nullptr && cont.find(17)->getKey() == 17); } { - using Cont = HashSet, HashTableGrower<4>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<4>>; Cont cont; /// [.(1)(2)(3)(17)...........] erase of (2) breaks search for (17) because their natural position is 1. @@ -181,7 +181,7 @@ TEST(HashTable, Erase) ASSERT_TRUE(cont.find(17) != nullptr && cont.find(17)->getKey() == 17); } { - using Cont = HashSet, HashTableGrower<4>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<4>>; Cont cont; /// [(16)(30)............(14)(15)] erase of (16) breaks search for (30) because their natural position is 14. @@ -197,7 +197,7 @@ TEST(HashTable, Erase) ASSERT_TRUE(cont.find(30) != nullptr && cont.find(30)->getKey() == 30); } { - using Cont = HashSet, HashTableGrower<4>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<4>>; Cont cont; /// [(16)(30)............(14)(15)] erase of (15) breaks search for (30) because their natural position is 14. @@ -213,7 +213,7 @@ TEST(HashTable, Erase) ASSERT_TRUE(cont.find(30) != nullptr && cont.find(30)->getKey() == 30); } { - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; for (size_t i = 0; i < 5000; ++i) @@ -249,7 +249,7 @@ TEST(HashTable, SerializationDeserialization) { { /// Use dummy hash to make it reproducible if default hash implementation will be changed - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; @@ -271,7 +271,7 @@ TEST(HashTable, SerializationDeserialization) ASSERT_EQ(convertToSet(cont), convertToSet(deserialized)); } { - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; @@ -289,7 +289,7 @@ TEST(HashTable, SerializationDeserialization) ASSERT_EQ(convertToSet(cont), convertToSet(deserialized)); } { - using Cont = HashSet, HashTableGrower<1>>; + using Cont = HashSet, HashTableGrowerWithPrecalculation<1>>; Cont cont; WriteBufferFromOwnString wb; From 83b87938e8b47f162fe02cc7a0fd98c954089639 Mon Sep 17 00:00:00 2001 From: Yuko Takagi <70714860+yukotakagi@users.noreply.github.com> Date: Mon, 27 Jun 2022 13:23:26 -0600 Subject: [PATCH 307/525] Add 22.7 release webinar. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e07a701d7c7..153a0d5ce11 100644 --- a/README.md +++ b/README.md @@ -16,3 +16,4 @@ ClickHouse® is an open-source column-oriented database management system that a ## Upcoming events * [Paris Meetup](https://www.meetup.com/clickhouse-france-user-group/events/286304312/) Please join us for an evening of talks (in English), food and discussion. Featuring talks of ClickHouse in production and at least one on the deep internals of ClickHouse itself. +* [v22.7 Release Webinar](https://clickhouse.com/company/events/v22-7-release-webinar/) Original creator, co-founder, and CTO of ClickHouse Alexey Milovidov will walk us through the highlights of the release, provide live demos, and share vision into what is coming in the roadmap. From d88cdcd5c1e020e0a4953bdf15b2c4de53b7f1a4 Mon Sep 17 00:00:00 2001 From: alesapin Date: Mon, 27 Jun 2022 21:41:29 +0200 Subject: [PATCH 308/525] AAA --- .../MergeTree/DataPartStorageOnDisk.cpp | 28 +++++++++++----- .../MergeTree/DataPartStorageOnDisk.h | 11 +++++-- src/Storages/MergeTree/IDataPartStorage.h | 30 +++++++++-------- src/Storages/MergeTree/IMergeTreeDataPart.cpp | 22 +++---------- src/Storages/MergeTree/IMergeTreeDataPart.h | 7 ++-- src/Storages/MergeTree/MergeTreeData.cpp | 30 +++++++++++------ src/Storages/MergeTree/MergeTreeData.h | 8 +++-- .../MergeTree/MergeTreeDataPartInMemory.cpp | 2 +- .../MergeTree/MergeTreeDataPartInMemory.h | 2 +- .../MergeTree/MergeTreePartsMover.cpp | 5 ++- src/Storages/MergeTree/MutateTask.cpp | 3 +- src/Storages/StorageMergeTree.cpp | 13 +++++--- src/Storages/StorageReplicatedMergeTree.cpp | 32 +++++++++++++------ 13 files changed, 118 insertions(+), 75 deletions(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 265964b7dc0..d273864d0fc 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -199,6 +199,11 @@ void DataPartStorageOnDisk::checkConsistency(const MergeTreeDataPartChecksums & checksums.checkSizes(volume->getDisk(), getRelativePath()); } +DataPartStorageBuilderPtr DataPartStorageOnDisk::getBuilder() const +{ + return std::make_shared(volume, root_path, part_dir); +} + void DataPartStorageOnDisk::remove( bool can_remove_shared_data, const NameSet & names_not_to_remove, @@ -691,7 +696,18 @@ DataPartStoragePtr DataPartStorageOnDisk::clone( return std::make_shared(single_disk_volume, to, dir_path); } -void DataPartStorageOnDisk::rename(const std::string & new_root_path, const std::string & new_part_dir, Poco::Logger * log, bool remove_new_dir_if_exists, bool fsync_part_dir) +void DataPartStorageOnDisk::onRename(const std::string & new_root_path, const std::string & new_part_dir) +{ + part_dir = new_part_dir; + root_path = new_root_path; +} + +void DataPartStorageBuilderOnDisk::rename( + const std::string & new_root_path, + const std::string & new_part_dir, + Poco::Logger * log, + bool remove_new_dir_if_exists, + bool fsync_part_dir) { if (!exists()) throw Exception( @@ -714,7 +730,7 @@ void DataPartStorageOnDisk::rename(const std::string & new_root_path, const std: "Part directory {} already exists and contains {} files. Removing it.", fullPath(volume->getDisk(), to), files.size()); - volume->getDisk()->removeRecursive(to); + transaction->removeRecursive(to); } else { @@ -725,17 +741,13 @@ void DataPartStorageOnDisk::rename(const std::string & new_root_path, const std: } } - // metadata_manager->deleteAll(true); - // metadata_manager->assertAllDeleted(true); - String from = getRelativePath(); /// Why? - volume->getDisk()->setLastModified(from, Poco::Timestamp::fromEpochTime(time(nullptr))); - volume->getDisk()->moveDirectory(from, to); + transaction->setLastModified(from, Poco::Timestamp::fromEpochTime(time(nullptr))); + transaction->moveDirectory(from, to); part_dir = new_part_dir; root_path = new_root_path; - // metadata_manager->updateAll(true); SyncGuardPtr sync_guard; if (fsync_part_dir) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.h b/src/Storages/MergeTree/DataPartStorageOnDisk.h index 90dec12b283..d7d34e96919 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.h +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.h @@ -54,6 +54,7 @@ public: std::string getRelativePathForPrefix(Poco::Logger * log, const String & prefix, bool detached) const override; void setRelativePath(const std::string & path) override; + void onRename(const std::string & new_root_path, const std::string & new_part_dir) override; std::string getDiskName() const override; std::string getDiskType() const override; @@ -104,10 +105,9 @@ public: const DiskPtr & disk, Poco::Logger * log) const override; - void rename(const std::string & new_root_path, const std::string & new_part_dir, Poco::Logger * log, bool remove_new_dir_if_exists, bool fsync_part_dir) override; - void changeRootPath(const std::string & from_root, const std::string & to_root) override; + DataPartStorageBuilderPtr getBuilder() const override; private: VolumePtr volume; std::string root_path; @@ -159,6 +159,13 @@ public: DataPartStoragePtr getStorage() const override; + void rename( + const std::string & new_root_path, + const std::string & new_part_dir, + Poco::Logger * log, + bool remove_new_dir_if_exists, + bool fsync_part_dir) override; + void commit() override; private: diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index f75fbbbd5a3..2b644abd184 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -53,6 +53,9 @@ struct WriteSettings; class TemporaryFileOnDisk; +class IDataPartStorageBuilder; +using DataPartStorageBuilderPtr = std::shared_ptr; + /// This is an abstraction of storage for data part files. /// Ideally, it is assumed to contains read-only methods from IDisk. /// It is not fulfilled now, but let's try our best. @@ -122,6 +125,7 @@ public: /// Reset part directory, used for im-memory parts. /// TODO: remove it. virtual void setRelativePath(const std::string & path) = 0; + virtual void onRename(const std::string & new_root_path, const std::string & new_part_dir) = 0; /// Some methods from IDisk. Needed to avoid getting internal IDisk interface. virtual std::string getDiskName() const = 0; @@ -191,20 +195,11 @@ public: const DiskPtr & disk, Poco::Logger * log) const = 0; - /// Rename part. - /// Ideally, new_root_path should be the same as current root (but it is not true). - /// Examples are: 'all_1_2_1' -> 'detached/all_1_2_1' - /// 'moving/tmp_all_1_2_1' -> 'all_1_2_1' - virtual void rename( - const std::string & new_root_path, - const std::string & new_part_dir, - Poco::Logger * log, - bool remove_new_dir_if_exists, - bool fsync_part_dir) = 0; - /// Change part's root. from_root should be a prefix path of current root path. /// Right now, this is needed for rename table query. virtual void changeRootPath(const std::string & from_root, const std::string & to_root) = 0; + + virtual DataPartStorageBuilderPtr getBuilder() const = 0; }; using DataPartStoragePtr = std::shared_ptr; @@ -244,9 +239,18 @@ public: virtual DataPartStoragePtr getStorage() const = 0; + /// Rename part. + /// Ideally, new_root_path should be the same as current root (but it is not true). + /// Examples are: 'all_1_2_1' -> 'detached/all_1_2_1' + /// 'moving/tmp_all_1_2_1' -> 'all_1_2_1' + virtual void rename( + const std::string & new_root_path, + const std::string & new_part_dir, + Poco::Logger * log, + bool remove_new_dir_if_exists, + bool fsync_part_dir) = 0; + virtual void commit() = 0; }; -using DataPartStorageBuilderPtr = std::shared_ptr; - } diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.cpp b/src/Storages/MergeTree/IMergeTreeDataPart.cpp index 3cb3d052b0c..60941108f00 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.cpp +++ b/src/Storages/MergeTree/IMergeTreeDataPart.cpp @@ -1358,20 +1358,7 @@ bool IMergeTreeDataPart::shallParticipateInMerges(const StoragePolicyPtr & stora return data_part_storage->shallParticipateInMerges(*storage_policy); } -// UInt64 IMergeTreeDataPart::calculateTotalSizeOnDisk(const DataPartStoragePtr & data_part_storage_, const String & from) -// { -// if (data_part_storage_->isFile(from)) -// return data_part_storage_->getFileSize(from); -// std::vector files; -// disk_->listFiles(from, files); -// UInt64 res = 0; -// for (const auto & file : files) -// res += calculateTotalSizeOnDisk(data_part_storage_, fs::path(from) / file); -// return res; -// } - - -void IMergeTreeDataPart::renameTo(const String & new_relative_path, bool remove_new_dir_if_exists) const +void IMergeTreeDataPart::renameTo(const String & new_relative_path, bool remove_new_dir_if_exists, DataPartStorageBuilderPtr builder) const try { assertOnDisk(); @@ -1390,7 +1377,8 @@ try metadata_manager->deleteAll(true); metadata_manager->assertAllDeleted(true); - data_part_storage->rename(to.parent_path(), to.filename(), storage.log, remove_new_dir_if_exists, fsync_dir); + builder->rename(to.parent_path(), to.filename(), storage.log, remove_new_dir_if_exists, fsync_dir); + data_part_storage->onRename(to.parent_path(), to.filename()); metadata_manager->updateAll(true); for (const auto & [p_name, part] : projection_parts) @@ -1486,9 +1474,9 @@ String IMergeTreeDataPart::getRelativePathForDetachedPart(const String & prefix) return "detached/" + getRelativePathForPrefix(prefix, /* detached */ true); } -void IMergeTreeDataPart::renameToDetached(const String & prefix) const +void IMergeTreeDataPart::renameToDetached(const String & prefix, DataPartStorageBuilderPtr builder) const { - renameTo(getRelativePathForDetachedPart(prefix), true); + renameTo(getRelativePathForDetachedPart(prefix), true, builder); part_is_probably_removed_from_disk = true; } diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.h b/src/Storages/MergeTree/IMergeTreeDataPart.h index 66a6fe065f7..7f3c41ce4c2 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.h +++ b/src/Storages/MergeTree/IMergeTreeDataPart.h @@ -35,9 +35,6 @@ struct FutureMergedMutatedPart; class IReservation; using ReservationPtr = std::unique_ptr; -class IVolume; -using VolumePtr = std::shared_ptr; - class IMergeTreeReader; class IMergeTreeDataPartWriter; class MarkCache; @@ -341,11 +338,11 @@ public: size_t getFileSizeOrZero(const String & file_name) const; /// Moves a part to detached/ directory and adds prefix to its name - void renameToDetached(const String & prefix) const; + void renameToDetached(const String & prefix, DataPartStorageBuilderPtr builder) const; /// Makes checks and move part to new directory /// Changes only relative_dir_name, you need to update other metadata (name, is_temp) explicitly - virtual void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists) const; + virtual void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists, DataPartStorageBuilderPtr builder) const; /// Makes clone of a part in detached/ directory via hard links virtual void makeCloneInDetached(const String & prefix, const StorageMetadataPtr & metadata_snapshot) const; diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index aeca300e62c..0254e69851c 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -1317,7 +1317,11 @@ void MergeTreeData::loadDataParts(bool skip_sanity_checks) loadDataPartsFromWAL(broken_parts_to_detach, duplicate_parts_to_remove, parts_from_wal, part_lock); for (auto & part : broken_parts_to_detach) - part->renameToDetached("broken-on-start"); /// detached parts must not have '_' in prefixes + { + auto builder = part->data_part_storage->getBuilder(); + part->renameToDetached("broken-on-start", builder); /// detached parts must not have '_' in prefixes + builder->commit(); + } for (auto & part : duplicate_parts_to_remove) part->remove(); @@ -2786,11 +2790,12 @@ MergeTreeData::DataPartsVector MergeTreeData::getActivePartsToReplace( bool MergeTreeData::renameTempPartAndAdd( MutableDataPartPtr & part, Transaction & out_transaction, + DataPartStorageBuilderPtr builder, DataPartsLock & lock) { DataPartsVector covered_parts; - if (!renameTempPartAndReplaceImpl(part, out_transaction, lock, &covered_parts)) + if (!renameTempPartAndReplaceImpl(part, out_transaction, lock, builder, &covered_parts)) return false; if (!covered_parts.empty()) @@ -2824,13 +2829,12 @@ void MergeTreeData::checkPartCanBeAddedToTable(MutableDataPartPtr & part, DataPa } } -void MergeTreeData::preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, bool need_rename) +void MergeTreeData::preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, DataPartStorageBuilderPtr builder) { part->is_temp = false; part->setState(DataPartState::PreActive); - if (need_rename) - part->renameTo(part->name, true); + part->renameTo(part->name, true, builder); data_parts_indexes.insert(part); out_transaction.precommitted_parts.insert(part); @@ -2840,6 +2844,7 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( MutableDataPartPtr & part, Transaction & out_transaction, DataPartsLock & lock, + DataPartStorageBuilderPtr builder, DataPartsVector * out_covered_parts) { LOG_TRACE(log, "Renaming temporary part {} to {}.", part->data_part_storage->getPartDirectory(), part->name); @@ -2861,7 +2866,7 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( /// All checks are passed. Now we can rename the part on disk. /// So, we maintain invariant: if a non-temporary part in filesystem then it is in data_parts - preparePartForCommit(part, out_transaction, /* need_rename = */ true); + preparePartForCommit(part, out_transaction, builder); if (out_covered_parts) { @@ -2877,19 +2882,22 @@ bool MergeTreeData::renameTempPartAndReplaceImpl( MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplaceUnlocked( MutableDataPartPtr & part, Transaction & out_transaction, + DataPartStorageBuilderPtr builder, DataPartsLock & lock) + { DataPartsVector covered_parts; - renameTempPartAndReplaceImpl(part, out_transaction, lock, &covered_parts); + renameTempPartAndReplaceImpl(part, out_transaction, lock, builder, &covered_parts); return covered_parts; } MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace( MutableDataPartPtr & part, - Transaction & out_transaction) + Transaction & out_transaction, + DataPartStorageBuilderPtr builder) { auto part_lock = lockParts(); - return renameTempPartAndReplaceUnlocked(part, out_transaction, part_lock); + return renameTempPartAndReplaceUnlocked(part, out_transaction, builder, part_lock); } void MergeTreeData::removePartsFromWorkingSet(MergeTreeTransaction * txn, const MergeTreeData::DataPartsVector & remove, bool clear_without_timeout, DataPartsLock & acquired_lock) @@ -3094,7 +3102,9 @@ void MergeTreeData::forgetPartAndMoveToDetached(const MergeTreeData::DataPartPtr modifyPartState(it_part, DataPartState::Deleting); - part->renameToDetached(prefix); + auto builder = part->data_part_storage->getBuilder(); + part->renameToDetached(prefix, builder); + builder->commit(); data_parts_indexes.erase(it_part); diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 4fd7dd7d3cf..b35d79aa205 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -554,18 +554,21 @@ public: bool renameTempPartAndAdd( MutableDataPartPtr & part, Transaction & transaction, + DataPartStorageBuilderPtr builder, DataPartsLock & lock); /// The same as renameTempPartAndAdd but the block range of the part can contain existing parts. /// Returns all parts covered by the added part (in ascending order). DataPartsVector renameTempPartAndReplace( MutableDataPartPtr & part, - Transaction & out_transaction); + Transaction & out_transaction, + DataPartStorageBuilderPtr builder); /// Unlocked version of previous one. Useful when added multiple parts with a single lock. DataPartsVector renameTempPartAndReplaceUnlocked( MutableDataPartPtr & part, Transaction & out_transaction, + DataPartStorageBuilderPtr builder, DataPartsLock & lock); /// Remove parts from working set immediately (without wait for background @@ -1244,7 +1247,7 @@ private: /// Preparing itself to be committed in memory: fill some fields inside part, add it to data_parts_indexes /// in precommitted state and to transasction - void preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, bool need_rename); + void preparePartForCommit(MutableDataPartPtr & part, Transaction & out_transaction, DataPartStorageBuilderPtr builder); /// Low-level method for preparing parts for commit (in-memory). /// FIXME Merge MergeTreeTransaction and Transaction @@ -1252,6 +1255,7 @@ private: MutableDataPartPtr & part, Transaction & out_transaction, DataPartsLock & lock, + DataPartStorageBuilderPtr builder, DataPartsVector * out_covered_parts); /// RAII Wrapper for atomic work with currently moving parts diff --git a/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp b/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp index 4c87daa1e13..b22356a38ed 100644 --- a/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp +++ b/src/Storages/MergeTree/MergeTreeDataPartInMemory.cpp @@ -144,7 +144,7 @@ void MergeTreeDataPartInMemory::makeCloneInDetached(const String & prefix, const flushToDisk(detached_path, metadata_snapshot); } -void MergeTreeDataPartInMemory::renameTo(const String & new_relative_path, bool /* remove_new_dir_if_exists */) const +void MergeTreeDataPartInMemory::renameTo(const String & new_relative_path, bool /* remove_new_dir_if_exists */, DataPartStorageBuilderPtr) const { data_part_storage->setRelativePath(new_relative_path); diff --git a/src/Storages/MergeTree/MergeTreeDataPartInMemory.h b/src/Storages/MergeTree/MergeTreeDataPartInMemory.h index c9caf043b7b..d985c7f055e 100644 --- a/src/Storages/MergeTree/MergeTreeDataPartInMemory.h +++ b/src/Storages/MergeTree/MergeTreeDataPartInMemory.h @@ -47,7 +47,7 @@ public: bool isStoredOnRemoteDiskWithZeroCopySupport() const override { return false; } bool hasColumnFiles(const NameAndTypePair & column) const override { return !!getColumnPosition(column.getNameInStorage()); } String getFileNameForColumn(const NameAndTypePair & /* column */) const override { return ""; } - void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists) const override; + void renameTo(const String & new_relative_path, bool remove_new_dir_if_exists, DataPartStorageBuilderPtr) const override; void makeCloneInDetached(const String & prefix, const StorageMetadataPtr & metadata_snapshot) const override; DataPartStoragePtr flushToDisk(const String & new_relative_path, const StorageMetadataPtr & metadata_snapshot) const; diff --git a/src/Storages/MergeTree/MergeTreePartsMover.cpp b/src/Storages/MergeTree/MergeTreePartsMover.cpp index 2df17702c03..a723fa6d8e3 100644 --- a/src/Storages/MergeTree/MergeTreePartsMover.cpp +++ b/src/Storages/MergeTree/MergeTreePartsMover.cpp @@ -264,8 +264,11 @@ void MergeTreePartsMover::swapClonedPart(const MergeTreeData::DataPartPtr & clon return; } + auto builder = cloned_part->data_part_storage->getBuilder(); /// Don't remove new directory but throw an error because it may contain part which is currently in use. - cloned_part->renameTo(active_part->name, false); + cloned_part->renameTo(active_part->name, false, builder); + + builder->commit(); /// TODO what happen if server goes down here? data->swapActivePart(cloned_part); diff --git a/src/Storages/MergeTree/MutateTask.cpp b/src/Storages/MergeTree/MutateTask.cpp index d39f3f704a1..d8689bed025 100644 --- a/src/Storages/MergeTree/MutateTask.cpp +++ b/src/Storages/MergeTree/MutateTask.cpp @@ -690,8 +690,7 @@ public: MergeTreeData::MutableDataPartsVector && parts_, const ProjectionDescription & projection_, size_t & block_num_, - MutationContextPtr ctx_ - ) + MutationContextPtr ctx_) : name(std::move(name_)) , parts(std::move(parts_)) , projection(projection_) diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index 5fe7214194a..5bd47621173 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1542,9 +1542,10 @@ PartitionCommandsResultInfo StorageMergeTree::attachPartition( String old_name = renamed_parts.old_and_new_names[i].old_name; { auto lock = lockParts(); + auto builder = loaded_parts[i]->data_part_storage->getBuilder(); MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); fillNewPartName(loaded_parts[i], lock); - renameTempPartAndAdd(loaded_parts[i], transaction, lock); + renameTempPartAndAdd(loaded_parts[i], transaction, builder, lock); transaction.commit(&lock); } @@ -1625,7 +1626,9 @@ void StorageMergeTree::replacePartitionFrom(const StoragePtr & source_table, con for (auto part : dst_parts) { fillNewPartName(part, data_parts_lock); - renameTempPartAndReplaceUnlocked(part, transaction, data_parts_lock); + + auto builder = part->data_part_storage->getBuilder(); + renameTempPartAndReplaceUnlocked(part, transaction, builder, data_parts_lock); } /// Populate transaction transaction.commit(&data_parts_lock); @@ -1702,8 +1705,9 @@ void StorageMergeTree::movePartitionToTable(const StoragePtr & dest_table, const for (auto & part : dst_parts) { + auto builder = part->data_part_storage->getBuilder(); dest_table_storage->fillNewPartName(part, dest_data_parts_lock); - dest_table_storage->renameTempPartAndReplaceUnlocked(part, transaction, dest_data_parts_lock); + dest_table_storage->renameTempPartAndReplaceUnlocked(part, transaction, builder, dest_data_parts_lock); } @@ -1802,7 +1806,8 @@ void StorageMergeTree::attachRestoredParts(MutableDataPartsVector && parts) auto lock = lockParts(); MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); fillNewPartName(part, lock); - renameTempPartAndAdd(part, transaction, lock); + auto builder = part->data_part_storage->getBuilder(); + renameTempPartAndAdd(part, transaction, builder, lock); transaction.commit(&lock); } } diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 6895142b2a4..904dce26e78 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -1657,7 +1657,8 @@ bool StorageReplicatedMergeTree::executeLogEntry(LogEntry & entry) Transaction transaction(*this, NO_TRANSACTION_RAW); part->version.setCreationTID(Tx::PrehistoricTID, nullptr); - renameTempPartAndReplace(part, transaction); + auto builder = part->data_part_storage->getBuilder(); + renameTempPartAndReplace(part, transaction, builder); checkPartChecksumsAndCommit(transaction, part); writePartLog(PartLogElement::Type::NEW_PART, {}, 0 /** log entry is fake so we don't measure the time */, @@ -2342,7 +2343,8 @@ bool StorageReplicatedMergeTree::executeReplaceRange(const LogEntry & entry) Coordination::Requests ops; for (PartDescriptionPtr & part_desc : final_parts) { - renameTempPartAndReplace(part_desc->res_part, transaction); + auto builder = part_desc->res_part->data_part_storage->getBuilder(); + renameTempPartAndReplace(part_desc->res_part, transaction, builder); getCommitPartOps(ops, part_desc->res_part); lockSharedData(*part_desc->res_part, false, part_desc->hardlinked_files); @@ -2439,7 +2441,10 @@ void StorageReplicatedMergeTree::executeClonePartFromShard(const LogEntry & entr part = get_part(); // The fetched part is valuable and should not be cleaned like a temp part. part->is_temp = false; - part->renameTo("detached/" + entry.new_part_name, true); + auto builder = part->data_part_storage->getBuilder(); + part->renameTo("detached/" + entry.new_part_name, true, builder); + builder->commit(); + LOG_INFO(log, "Cloned part {} to detached directory", part->name); } } @@ -4078,10 +4083,11 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora { part = get_part(); + auto builder = part->data_part_storage->getBuilder(); if (!to_detached) { Transaction transaction(*this, NO_TRANSACTION_RAW); - renameTempPartAndReplace(part, transaction); + renameTempPartAndReplace(part, transaction, builder); replaced_parts = checkPartChecksumsAndCommit(transaction, part, hardlinked_files); @@ -4123,7 +4129,7 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora { // The fetched part is valuable and should not be cleaned like a temp part. part->is_temp = false; - part->renameTo(fs::path("detached") / part_name, true); + part->renameTo(fs::path("detached") / part_name, true, builder); } } catch (const Exception & e) @@ -4229,7 +4235,9 @@ DataPartStoragePtr StorageReplicatedMergeTree::fetchExistsPart(const String & pa throw Exception("Part " + part->name + " fetched on wrong disk " + part->data_part_storage->getDiskName(), ErrorCodes::LOGICAL_ERROR); auto replaced_path = fs::path(replaced_part_path); - part->data_part_storage->rename(replaced_path.parent_path(), replaced_path.filename(), nullptr, true, false); + auto builder = part->data_part_storage->getBuilder(); + builder->rename(replaced_path.parent_path(), replaced_path.filename(), nullptr, true, false); + builder->commit(); } catch (const Exception & e) { @@ -6603,7 +6611,10 @@ void StorageReplicatedMergeTree::replacePartitionFrom( { auto data_parts_lock = lockParts(); for (auto & part : dst_parts) - renameTempPartAndReplaceUnlocked(part, transaction, data_parts_lock); + { + auto builder = part->data_part_storage->getBuilder(); + renameTempPartAndReplaceUnlocked(part, transaction, builder, data_parts_lock); + } } for (size_t i = 0; i < dst_parts.size(); ++i) @@ -6837,7 +6848,10 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta auto dest_data_parts_lock = dest_table_storage->lockParts(); for (auto & part : dst_parts) - dest_table_storage->renameTempPartAndReplaceUnlocked(part, transaction, dest_data_parts_lock); + { + auto builder = part->data_part_storage->getBuilder(); + dest_table_storage->renameTempPartAndReplaceUnlocked(part, transaction, builder, dest_data_parts_lock); + } for (size_t i = 0; i < dst_parts.size(); ++i) dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); @@ -8016,7 +8030,7 @@ bool StorageReplicatedMergeTree::createEmptyPartInsteadOfLost(zkutil::ZooKeeperP try { MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - auto replaced_parts = renameTempPartAndReplace(new_data_part, transaction); + auto replaced_parts = renameTempPartAndReplace(new_data_part, transaction, data_part_storage_builder); if (!replaced_parts.empty()) { From 5a263496953128d65af6c2793f8c81b77aa76635 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Mon, 27 Jun 2022 19:51:06 +0000 Subject: [PATCH 309/525] Fix: input chunk can have empty columns (no rows) --- src/Processors/Transforms/DistinctSortedChunkTransform.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index 79f3960de05..810f1c605e5 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -1,4 +1,5 @@ #include +#include "base/types.h" namespace DB { @@ -160,8 +161,10 @@ std::tuple DistinctSortedChunkTransform::continueWithPrevRange(co void DistinctSortedChunkTransform::transform(Chunk & chunk) { const size_t chunk_rows = chunk.getNumRows(); - Columns input_columns = chunk.detachColumns(); + if (0 == chunk_rows) + return; + Columns input_columns = chunk.detachColumns(); /// split input columns into sorted and other("non-sorted") columns initChunkProcessing(input_columns); From 89dc2844dbae2ab551c26034e89b6b91c77f46c3 Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Tue, 21 Jun 2022 15:36:07 +0300 Subject: [PATCH 310/525] Fix for integration tests fix. --- docker/test/integration/runner/dockerd-entrypoint.sh | 4 ++-- tests/integration/runner | 12 ------------ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/docker/test/integration/runner/dockerd-entrypoint.sh b/docker/test/integration/runner/dockerd-entrypoint.sh index 3fbd7fef5c3..bcaa064fe4f 100755 --- a/docker/test/integration/runner/dockerd-entrypoint.sh +++ b/docker/test/integration/runner/dockerd-entrypoint.sh @@ -30,8 +30,8 @@ set -e # cleanup for retry run if volume is not recreated # shellcheck disable=SC2046 { - docker ps -aq | xargs -r docker kill - docker ps -aq | xargs -r docker rm + docker ps -aq | xargs -r docker kill || true + docker ps -aq | xargs -r docker rm || true } echo "Start tests" diff --git a/tests/integration/runner b/tests/integration/runner index 257dbcf69d3..d82e73068af 100755 --- a/tests/integration/runner +++ b/tests/integration/runner @@ -392,23 +392,11 @@ if __name__ == "__main__": command=args.command, ) -<<<<<<< HEAD - try: - print("Trying to kill container", CONTAINER_NAME, "if it's already running") - subprocess.check_call( - f'docker kill $(docker ps -a -q --filter name={CONTAINER_NAME} --format="{{{{.ID}}}}")', - shell=True, - ) - print("Container killed") - except: - print("Nothing to kill") -======= containers = subprocess.check_output(f"docker ps -a -q --filter name={CONTAINER_NAME} --format={{{{.ID}}}}", shell=True, universal_newlines=True).splitlines() if containers: print(f"Trying to kill containers name={CONTAINER_NAME} ids={containers}") subprocess.check_call(f"docker kill {' '.join(containers)}", shell=True) print(f"Containers {containers} killed") ->>>>>>> 0fd25d1e46... Don't try to kill empty list of containers in `integration/runner`. print(("Running pytest container as: '" + cmd + "'.")) subprocess.check_call(cmd, shell=True) From f0271dc486df82818112068f93a31ad59d40651a Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Mon, 27 Jun 2022 22:45:48 +0300 Subject: [PATCH 311/525] Refactor deactive_part() a little Signed-off-by: Azat Khuzhin --- src/Storages/MergeTree/MergeTreeData.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index fdba84048f0..a768791b846 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -1324,20 +1324,21 @@ void MergeTreeData::loadDataParts(bool skip_sanity_checks) auto deactivate_part = [&] (DataPartIteratorByStateAndInfo it) { + IMergeTreeDataPart & part = *it; - (*it)->remove_time.store((*it)->modification_time, std::memory_order_relaxed); - auto creation_csn = (*it)->version.creation_csn.load(std::memory_order_relaxed); - if (creation_csn != Tx::RolledBackCSN && creation_csn != Tx::PrehistoricCSN && !(*it)->version.isRemovalTIDLocked()) + part->remove_time.store(part->modification_time, std::memory_order_relaxed); + auto creation_csn = part->version.creation_csn.load(std::memory_order_relaxed); + if (creation_csn != Tx::RolledBackCSN && creation_csn != Tx::PrehistoricCSN && !part->version.isRemovalTIDLocked()) { /// It's possible that covering part was created without transaction, /// but if covered part was created with transaction (i.e. creation_tid is not prehistoric), /// then it must have removal tid in metadata file. throw Exception(ErrorCodes::LOGICAL_ERROR, "Data part {} is Outdated and has creation TID {} and CSN {}, " "but does not have removal tid. It's a bug or a result of manual intervention.", - (*it)->name, (*it)->version.creation_tid, creation_csn); + part->name, part->version.creation_tid, creation_csn); } modifyPartState(it, DataPartState::Outdated); - removePartContributionToDataVolume(*it); + removePartContributionToDataVolume(part); }; /// All parts are in "Active" state after loading From 59295724ac7e6920cd175e8b301586ec161ad7f7 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Mon, 27 Jun 2022 20:32:44 +0000 Subject: [PATCH 312/525] Mark condition for empty chunk as unlikely --- src/Processors/Transforms/DistinctSortedChunkTransform.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index 810f1c605e5..09b894c261e 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -1,5 +1,4 @@ #include -#include "base/types.h" namespace DB { @@ -161,7 +160,7 @@ std::tuple DistinctSortedChunkTransform::continueWithPrevRange(co void DistinctSortedChunkTransform::transform(Chunk & chunk) { const size_t chunk_rows = chunk.getNumRows(); - if (0 == chunk_rows) + if (unlikely(0 == chunk_rows)) return; Columns input_columns = chunk.detachColumns(); From f4883f1f7e3476c2415739d3f07e46b999d3ac8b Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Mon, 27 Jun 2022 22:48:27 +0200 Subject: [PATCH 313/525] add some TSA aanotations --- base/base/defines.h | 32 +++++++++++---- src/Databases/DatabaseAtomic.cpp | 37 +++++++++-------- src/Databases/DatabaseAtomic.h | 8 ++-- src/Databases/DatabaseLazy.cpp | 1 + src/Databases/DatabaseLazy.h | 4 +- src/Databases/DatabaseMemory.cpp | 20 +++++---- src/Databases/DatabaseMemory.h | 4 +- src/Databases/DatabaseOnDisk.cpp | 12 +++--- src/Databases/DatabaseOnDisk.h | 5 +-- src/Databases/DatabaseOrdinary.cpp | 14 ++++--- src/Databases/DatabaseReplicated.cpp | 6 +-- src/Databases/DatabasesCommon.cpp | 14 +++---- src/Databases/DatabasesCommon.h | 8 ++-- src/Databases/IDatabase.cpp | 2 +- src/Databases/IDatabase.h | 4 +- src/Databases/MySQL/DatabaseMySQL.h | 6 +-- .../DatabaseMaterializedPostgreSQL.cpp | 12 +++--- .../PostgreSQL/DatabasePostgreSQL.cpp | 6 ++- src/Databases/PostgreSQL/DatabasePostgreSQL.h | 2 +- src/Databases/SQLite/DatabaseSQLite.cpp | 8 +++- src/Databases/SQLite/DatabaseSQLite.h | 4 +- src/Interpreters/DDLWorker.h | 2 +- src/Interpreters/DatabaseCatalog.cpp | 13 ++++-- src/Interpreters/DatabaseCatalog.h | 20 ++++----- src/Interpreters/MergeTreeTransaction.cpp | 27 ++++++++---- src/Interpreters/MergeTreeTransaction.h | 18 ++++---- src/Interpreters/TransactionLog.cpp | 41 +++++++++---------- src/Interpreters/TransactionLog.h | 28 ++++++------- .../01169_alter_partition_isolation_stress.sh | 14 +------ .../01171_mv_select_insert_isolation_long.sh | 14 +------ .../01174_select_insert_isolation.sh | 3 +- 31 files changed, 206 insertions(+), 183 deletions(-) diff --git a/base/base/defines.h b/base/base/defines.h index 3959e690d71..d0417885df6 100644 --- a/base/base/defines.h +++ b/base/base/defines.h @@ -124,21 +124,37 @@ #endif #endif -// Macros for Clang Thread Safety Analysis (TSA). They can be safely ignored by other compilers. -// Feel free to extend, but please stay close to https://clang.llvm.org/docs/ThreadSafetyAnalysis.html#mutexheader +/// Macros for Clang Thread Safety Analysis (TSA). They can be safely ignored by other compilers. +/// Feel free to extend, but please stay close to https://clang.llvm.org/docs/ThreadSafetyAnalysis.html#mutexheader #if defined(__clang__) -# define TSA_GUARDED_BY(...) __attribute__((guarded_by(__VA_ARGS__))) // data is protected by given capability -# define TSA_PT_GUARDED_BY(...) __attribute__((pt_guarded_by(__VA_ARGS__))) // pointed-to data is protected by the given capability -# define TSA_REQUIRES(...) __attribute__((requires_capability(__VA_ARGS__))) // thread needs exclusive possession of given capability -# define TSA_REQUIRES_SHARED(...) __attribute__((requires_shared_capability(__VA_ARGS__))) // thread needs shared possession of given capability -# define TSA_ACQUIRED_AFTER(...) __attribute__((acquired_after(__VA_ARGS__))) // annotated lock must be locked after given lock -# define TSA_NO_THREAD_SAFETY_ANALYSIS __attribute__((no_thread_safety_analysis)) // disable TSA for a function +# define TSA_GUARDED_BY(...) __attribute__((guarded_by(__VA_ARGS__))) /// data is protected by given capability +# define TSA_PT_GUARDED_BY(...) __attribute__((pt_guarded_by(__VA_ARGS__))) /// pointed-to data is protected by the given capability +# define TSA_REQUIRES(...) __attribute__((requires_capability(__VA_ARGS__))) /// thread needs exclusive possession of given capability +# define TSA_REQUIRES_SHARED(...) __attribute__((requires_shared_capability(__VA_ARGS__))) /// thread needs shared possession of given capability +# define TSA_ACQUIRED_AFTER(...) __attribute__((acquired_after(__VA_ARGS__))) /// annotated lock must be locked after given lock +# define TSA_NO_THREAD_SAFETY_ANALYSIS __attribute__((no_thread_safety_analysis)) /// disable TSA for a function + +/// Macros for suppressing TSA warnings for specific reads/writes (instead of suppressing it for the whole function) +/// Consider adding a comment before using these macros. +# define READ_NO_TSA(x) [&]() TSA_NO_THREAD_SAFETY_ANALYSIS -> const auto & { return (x); }() +# define WRITE_NO_TSA(x) [&]() TSA_NO_THREAD_SAFETY_ANALYSIS -> auto & { return (x); }() + +/// This macro is useful when only one thread writes to a member +/// and you want to read this member from the same thread without locking a mutex. +/// It's safe (because no concurrent writes are possible), but TSA generates a waring. +/// (Seems like there's no way to verify it, but it makes sense to distinguish it from READ_NO_TSA for readability) +# define READ_ONE_THREAD(x) READ_NO_TSA(x) + #else # define TSA_GUARDED_BY(...) # define TSA_PT_GUARDED_BY(...) # define TSA_REQUIRES(...) # define TSA_REQUIRES_SHARED(...) # define TSA_NO_THREAD_SAFETY_ANALYSIS + +# define READ_NO_TSA(x) +# define WRITE_NO_TSA(x) +# define TSA_READ_UNSAFE(x) #endif /// A template function for suppressing warnings about unused variables or function results. diff --git a/src/Databases/DatabaseAtomic.cpp b/src/Databases/DatabaseAtomic.cpp index a4fa1fa267b..b0ac9e0e999 100644 --- a/src/Databases/DatabaseAtomic.cpp +++ b/src/Databases/DatabaseAtomic.cpp @@ -73,7 +73,7 @@ String DatabaseAtomic::getTableDataPath(const ASTCreateQuery & query) const void DatabaseAtomic::drop(ContextPtr) { - assert(tables.empty()); + assert(READ_NO_TSA(tables).empty()); try { fs::remove(path_to_metadata_symlink); @@ -90,19 +90,19 @@ void DatabaseAtomic::attachTable(ContextPtr /* context_ */, const String & name, { assert(relative_table_path != data_path && !relative_table_path.empty()); DetachedTables not_in_use; - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); not_in_use = cleanupDetachedTables(); auto table_id = table->getStorageID(); assertDetachedTableNotInUse(table_id.uuid); - DatabaseOrdinary::attachTableUnlocked(name, table, lock); + DatabaseOrdinary::attachTableUnlocked(name, table); table_name_to_path.emplace(std::make_pair(name, relative_table_path)); } StoragePtr DatabaseAtomic::detachTable(ContextPtr /* context */, const String & name) { DetachedTables not_in_use; - std::unique_lock lock(mutex); - auto table = DatabaseOrdinary::detachTableUnlocked(name, lock); + std::lock_guard lock(mutex); + auto table = DatabaseOrdinary::detachTableUnlocked(name); table_name_to_path.erase(name); detached_tables.emplace(table->getStorageID().uuid, table); not_in_use = cleanupDetachedTables(); //-V1001 @@ -118,12 +118,12 @@ void DatabaseAtomic::dropTable(ContextPtr local_context, const String & table_na table->dropInnerTableIfAny(no_delay, local_context); else throw Exception(ErrorCodes::UNKNOWN_TABLE, "Table {}.{} doesn't exist", - backQuote(database_name), backQuote(table_name)); + backQuote(getDatabaseName()), backQuote(table_name)); String table_metadata_path = getObjectMetadataPath(table_name); String table_metadata_path_drop; { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); table_metadata_path_drop = DatabaseCatalog::instance().getPathForDroppedMetadata(table->getStorageID()); auto txn = local_context->getZooKeeperMetadataTransaction(); if (txn && !local_context->isInternalSubquery()) @@ -136,7 +136,7 @@ void DatabaseAtomic::dropTable(ContextPtr local_context, const String & table_na /// TODO better detection and recovery fs::rename(table_metadata_path, table_metadata_path_drop); /// Mark table as dropped - DatabaseOrdinary::detachTableUnlocked(table_name, lock); /// Should never throw + DatabaseOrdinary::detachTableUnlocked(table_name); /// Should never throw table_name_to_path.erase(table_name); } @@ -150,6 +150,7 @@ void DatabaseAtomic::dropTable(ContextPtr local_context, const String & table_na void DatabaseAtomic::renameTable(ContextPtr local_context, const String & table_name, IDatabase & to_database, const String & to_table_name, bool exchange, bool dictionary) + TSA_NO_THREAD_SAFETY_ANALYSIS /// TSA does not support conditional locking { if (typeid(*this) != typeid(to_database)) { @@ -173,7 +174,7 @@ void DatabaseAtomic::renameTable(ContextPtr local_context, const String & table_ String old_metadata_path = getObjectMetadataPath(table_name); String new_metadata_path = to_database.getObjectMetadataPath(to_table_name); - auto detach = [](DatabaseAtomic & db, const String & table_name_, bool has_symlink) + auto detach = [](DatabaseAtomic & db, const String & table_name_, bool has_symlink) TSA_REQUIRES(db.mutex) { auto it = db.table_name_to_path.find(table_name_); String table_data_path_saved; @@ -188,7 +189,7 @@ void DatabaseAtomic::renameTable(ContextPtr local_context, const String & table_ return table_data_path_saved; }; - auto attach = [](DatabaseAtomic & db, const String & table_name_, const String & table_data_path_, const StoragePtr & table_) + auto attach = [](DatabaseAtomic & db, const String & table_name_, const String & table_data_path_, const StoragePtr & table_) TSA_REQUIRES(db.mutex) { db.tables.emplace(table_name_, table_); if (table_data_path_.empty()) @@ -229,9 +230,9 @@ void DatabaseAtomic::renameTable(ContextPtr local_context, const String & table_ } if (!exchange) - other_db.checkMetadataFilenameAvailabilityUnlocked(to_table_name, inside_database ? db_lock : other_db_lock); + other_db.checkMetadataFilenameAvailabilityUnlocked(to_table_name); - StoragePtr table = getTableUnlocked(table_name, db_lock); + StoragePtr table = getTableUnlocked(table_name); if (dictionary && !table->isDictionary()) throw Exception(ErrorCodes::INCORRECT_QUERY, "Use RENAME/EXCHANGE TABLE (instead of RENAME/EXCHANGE DICTIONARY) for tables"); @@ -244,7 +245,7 @@ void DatabaseAtomic::renameTable(ContextPtr local_context, const String & table_ StorageID other_table_new_id = StorageID::createEmpty(); if (exchange) { - other_table = other_db.getTableUnlocked(to_table_name, other_db_lock); + other_table = other_db.getTableUnlocked(to_table_name); if (dictionary && !other_table->isDictionary()) throw Exception(ErrorCodes::INCORRECT_QUERY, "Use RENAME/EXCHANGE TABLE (instead of RENAME/EXCHANGE DICTIONARY) for tables"); other_table_new_id = {database_name, table_name, other_table->getStorageID().uuid}; @@ -294,7 +295,7 @@ void DatabaseAtomic::commitCreateTable(const ASTCreateQuery & query, const Stora auto table_data_path = getTableDataPath(query); try { - std::unique_lock lock{mutex}; + std::lock_guard lock{mutex}; if (query.getDatabase() != database_name) throw Exception(ErrorCodes::UNKNOWN_DATABASE, "Database was renamed to `{}`, cannot create table in `{}`", database_name, query.getDatabase()); @@ -312,7 +313,7 @@ void DatabaseAtomic::commitCreateTable(const ASTCreateQuery & query, const Stora /// It throws if `table_metadata_path` already exists (it's possible if table was detached) renameNoReplace(table_metadata_tmp_path, table_metadata_path); /// Commit point (a sort of) - attachTableUnlocked(query.getTable(), table, lock); /// Should never throw + attachTableUnlocked(query.getTable(), table); /// Should never throw table_name_to_path.emplace(query.getTable(), table_data_path); } catch (...) @@ -330,8 +331,8 @@ void DatabaseAtomic::commitAlterTable(const StorageID & table_id, const String & bool check_file_exists = true; SCOPE_EXIT({ std::error_code code; if (check_file_exists) std::filesystem::remove(table_metadata_tmp_path, code); }); - std::unique_lock lock{mutex}; - auto actual_table_id = getTableUnlocked(table_id.table_name, lock)->getStorageID(); + std::lock_guard lock{mutex}; + auto actual_table_id = getTableUnlocked(table_id.table_name)->getStorageID(); if (table_id.uuid != actual_table_id.uuid) throw Exception("Cannot alter table because it was renamed", ErrorCodes::CANNOT_ASSIGN_ALTER); @@ -363,7 +364,7 @@ void DatabaseAtomic::assertDetachedTableNotInUse(const UUID & uuid) void DatabaseAtomic::setDetachedTableNotInUseForce(const UUID & uuid) { - std::unique_lock lock{mutex}; + std::lock_guard lock{mutex}; detached_tables.erase(uuid); } diff --git a/src/Databases/DatabaseAtomic.h b/src/Databases/DatabaseAtomic.h index b748e53244d..8a055315288 100644 --- a/src/Databases/DatabaseAtomic.h +++ b/src/Databases/DatabaseAtomic.h @@ -70,9 +70,9 @@ protected: void commitCreateTable(const ASTCreateQuery & query, const StoragePtr & table, const String & table_metadata_tmp_path, const String & table_metadata_path, ContextPtr query_context) override; - void assertDetachedTableNotInUse(const UUID & uuid); + void assertDetachedTableNotInUse(const UUID & uuid) TSA_REQUIRES(mutex); using DetachedTables = std::unordered_map; - [[nodiscard]] DetachedTables cleanupDetachedTables(); + [[nodiscard]] DetachedTables cleanupDetachedTables() TSA_REQUIRES(mutex); void tryCreateMetadataSymlink(); @@ -80,9 +80,9 @@ protected: //TODO store path in DatabaseWithOwnTables::tables using NameToPathMap = std::unordered_map; - NameToPathMap table_name_to_path; + NameToPathMap table_name_to_path TSA_GUARDED_BY(mutex); - DetachedTables detached_tables; + DetachedTables detached_tables TSA_GUARDED_BY(mutex); String path_to_table_symlinks; String path_to_metadata_symlink; const UUID db_uuid; diff --git a/src/Databases/DatabaseLazy.cpp b/src/Databases/DatabaseLazy.cpp index b024c73d578..b390eda189b 100644 --- a/src/Databases/DatabaseLazy.cpp +++ b/src/Databases/DatabaseLazy.cpp @@ -158,6 +158,7 @@ DatabaseTablesIteratorPtr DatabaseLazy::getTablesIterator(ContextPtr, const Filt bool DatabaseLazy::empty() const { + std::lock_guard lock(mutex); return tables_cache.empty(); } diff --git a/src/Databases/DatabaseLazy.h b/src/Databases/DatabaseLazy.h index 3a7d7b14be1..031b7758bce 100644 --- a/src/Databases/DatabaseLazy.h +++ b/src/Databases/DatabaseLazy.h @@ -102,8 +102,8 @@ private: const time_t expiration_time; /// TODO use DatabaseWithOwnTablesBase::tables - mutable TablesCache tables_cache; - mutable CacheExpirationQueue cache_expiration_queue; + mutable TablesCache tables_cache TSA_GUARDED_BY(mutex); + mutable CacheExpirationQueue cache_expiration_queue TSA_GUARDED_BY(mutex); StoragePtr loadTable(const String & table_name) const; diff --git a/src/Databases/DatabaseMemory.cpp b/src/Databases/DatabaseMemory.cpp index 6df5b70c827..7e4ea4b644f 100644 --- a/src/Databases/DatabaseMemory.cpp +++ b/src/Databases/DatabaseMemory.cpp @@ -32,8 +32,8 @@ void DatabaseMemory::createTable( const StoragePtr & table, const ASTPtr & query) { - std::unique_lock lock{mutex}; - attachTableUnlocked(table_name, table, lock); + std::lock_guard lock{mutex}; + attachTableUnlocked(table_name, table); /// Clean the query from temporary flags. ASTPtr query_to_store = query; @@ -54,21 +54,22 @@ void DatabaseMemory::dropTable( const String & table_name, bool /*no_delay*/) { - std::unique_lock lock{mutex}; - auto table = detachTableUnlocked(table_name, lock); + StoragePtr table; + { + std::lock_guard lock{mutex}; + table = detachTableUnlocked(table_name); + } try { /// Remove table without lock since: /// - it does not require it /// - it may cause lock-order-inversion if underlying storage need to /// resolve tables (like StorageLiveView) - SCOPE_EXIT(lock.lock()); - lock.unlock(); table->drop(); if (table->storesDataOnDisk()) { - assert(database_name != DatabaseCatalog::TEMPORARY_DATABASE); + assert(getDatabaseName() != DatabaseCatalog::TEMPORARY_DATABASE); fs::path table_data_dir{getTableDataPath(table_name)}; if (fs::exists(table_data_dir)) fs::remove_all(table_data_dir); @@ -76,10 +77,13 @@ void DatabaseMemory::dropTable( } catch (...) { + std::lock_guard lock{mutex}; assert(database_name != DatabaseCatalog::TEMPORARY_DATABASE); - attachTableUnlocked(table_name, table, lock); + attachTableUnlocked(table_name, table); throw; } + + std::lock_guard lock{mutex}; table->is_dropped = true; create_queries.erase(table_name); UUID table_uuid = table->getStorageID().uuid; diff --git a/src/Databases/DatabaseMemory.h b/src/Databases/DatabaseMemory.h index b854d9be1f3..57bbe71e337 100644 --- a/src/Databases/DatabaseMemory.h +++ b/src/Databases/DatabaseMemory.h @@ -51,9 +51,9 @@ public: void alterTable(ContextPtr local_context, const StorageID & table_id, const StorageInMemoryMetadata & metadata) override; private: - String data_path; + const String data_path; using NameToASTCreate = std::unordered_map; - NameToASTCreate create_queries; + NameToASTCreate create_queries TSA_GUARDED_BY(mutex); }; } diff --git a/src/Databases/DatabaseOnDisk.cpp b/src/Databases/DatabaseOnDisk.cpp index 64bc9a4a094..e9470a93af0 100644 --- a/src/Databases/DatabaseOnDisk.cpp +++ b/src/Databases/DatabaseOnDisk.cpp @@ -321,11 +321,11 @@ void DatabaseOnDisk::dropTable(ContextPtr local_context, const String & table_na void DatabaseOnDisk::checkMetadataFilenameAvailability(const String & to_table_name) const { - std::unique_lock lock(mutex); - checkMetadataFilenameAvailabilityUnlocked(to_table_name, lock); + std::lock_guard lock(mutex); + checkMetadataFilenameAvailabilityUnlocked(to_table_name); } -void DatabaseOnDisk::checkMetadataFilenameAvailabilityUnlocked(const String & to_table_name, std::unique_lock &) const +void DatabaseOnDisk::checkMetadataFilenameAvailabilityUnlocked(const String & to_table_name) const { String table_metadata_path = getObjectMetadataPath(to_table_name); @@ -503,7 +503,7 @@ ASTPtr DatabaseOnDisk::getCreateDatabaseQuery() const void DatabaseOnDisk::drop(ContextPtr local_context) { - assert(tables.empty()); + assert(READ_NO_TSA(tables).empty()); if (local_context->getSettingsRef().force_remove_data_recursively_on_drop) { fs::remove_all(local_context->getPath() + getDataPath()); @@ -725,8 +725,6 @@ ASTPtr DatabaseOnDisk::getCreateQueryFromStorage(const String & table_name, cons void DatabaseOnDisk::modifySettingsMetadata(const SettingsChanges & settings_changes, ContextPtr query_context) { - std::lock_guard lock(modify_settings_mutex); - auto create_query = getCreateDatabaseQuery()->clone(); auto * create = create_query->as(); auto * settings = create->storage->settings; @@ -759,7 +757,7 @@ void DatabaseOnDisk::modifySettingsMetadata(const SettingsChanges & settings_cha writeChar('\n', statement_buf); String statement = statement_buf.str(); - String database_name_escaped = escapeForFileName(database_name); + String database_name_escaped = escapeForFileName(READ_NO_TSA(database_name)); /// FIXME fs::path metadata_root_path = fs::canonical(query_context->getGlobalContext()->getPath()); fs::path metadata_file_tmp_path = fs::path(metadata_root_path) / "metadata" / (database_name_escaped + ".sql.tmp"); fs::path metadata_file_path = fs::path(metadata_root_path) / "metadata" / (database_name_escaped + ".sql"); diff --git a/src/Databases/DatabaseOnDisk.h b/src/Databases/DatabaseOnDisk.h index a118c8da678..195b21b0072 100644 --- a/src/Databases/DatabaseOnDisk.h +++ b/src/Databases/DatabaseOnDisk.h @@ -70,7 +70,7 @@ public: /// will throw when the table we want to attach already exists (in active / detached / detached permanently form) void checkMetadataFilenameAvailability(const String & to_table_name) const override; - void checkMetadataFilenameAvailabilityUnlocked(const String & to_table_name, std::unique_lock &) const; + void checkMetadataFilenameAvailabilityUnlocked(const String & to_table_name) const TSA_REQUIRES(mutex); void modifySettingsMetadata(const SettingsChanges & settings_changes, ContextPtr query_context); @@ -99,9 +99,6 @@ protected: const String metadata_path; const String data_path; - - /// For alter settings. - std::mutex modify_settings_mutex; }; } diff --git a/src/Databases/DatabaseOrdinary.cpp b/src/Databases/DatabaseOrdinary.cpp index 2b88fbbfcf7..9d6c86b1561 100644 --- a/src/Databases/DatabaseOrdinary.cpp +++ b/src/Databases/DatabaseOrdinary.cpp @@ -174,7 +174,8 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables if (ast) { auto * create_query = ast->as(); - create_query->setDatabase(database_name); + /// NOTE No concurrent writes are possible during database loading + create_query->setDatabase(READ_NO_TSA(database_name)); /// Even if we don't load the table we can still mark the uuid of it as taken. if (create_query->uuid != UUIDHelpers::Nil) @@ -201,7 +202,7 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables return; } - QualifiedTableName qualified_name{database_name, create_query->getTable()}; + QualifiedTableName qualified_name{READ_NO_TSA(database_name), create_query->getTable()}; TableNamesSet loading_dependencies = getDependenciesSetFromCreateQuery(getContext(), qualified_name, ast); std::lock_guard lock{metadata.mutex}; @@ -234,12 +235,12 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables size_t tables_in_database = objects_in_database - dictionaries_in_database; LOG_INFO(log, "Metadata processed, database {} has {} tables and {} dictionaries in total.", - database_name, tables_in_database, dictionaries_in_database); + READ_NO_TSA(database_name), tables_in_database, dictionaries_in_database); } void DatabaseOrdinary::loadTableFromMetadata(ContextMutablePtr local_context, const String & file_path, const QualifiedTableName & name, const ASTPtr & ast, bool force_restore) { - assert(name.database == database_name); + assert(name.database == READ_NO_TSA(database_name)); const auto & create_query = ast->as(); tryAttachTable( @@ -255,7 +256,8 @@ void DatabaseOrdinary::startupTables(ThreadPool & thread_pool, bool /*force_rest { LOG_INFO(log, "Starting up tables."); - const size_t total_tables = tables.size(); + /// NOTE No concurrent writes are possible during database loading + const size_t total_tables = READ_NO_TSA(tables).size(); if (!total_tables) return; @@ -271,7 +273,7 @@ void DatabaseOrdinary::startupTables(ThreadPool & thread_pool, bool /*force_rest try { - for (const auto & table : tables) + for (const auto & table : READ_NO_TSA(tables)) thread_pool.scheduleOrThrowOnError([&]() { startup_one_table(table.second); }); } catch (...) diff --git a/src/Databases/DatabaseReplicated.cpp b/src/Databases/DatabaseReplicated.cpp index 5c701c8d90c..c9031fcaf27 100644 --- a/src/Databases/DatabaseReplicated.cpp +++ b/src/Databases/DatabaseReplicated.cpp @@ -148,7 +148,7 @@ ClusterPtr DatabaseReplicated::getClusterImpl() const if (hosts.empty()) throw Exception(ErrorCodes::NO_ACTIVE_REPLICAS, "No replicas of database {} found. " "It's possible if the first replica is not fully created yet " - "or if the last replica was just dropped or due to logical error", database_name); + "or if the last replica was just dropped or due to logical error", zookeeper_path); Int32 cversion = stat.cversion; ::sort(hosts.begin(), hosts.end()); @@ -213,7 +213,7 @@ ClusterPtr DatabaseReplicated::getClusterImpl() const treat_local_port_as_remote, cluster_auth_info.cluster_secure_connection, /*priority=*/1, - database_name, + READ_NO_TSA(database_name), /// FIXME cluster_auth_info.cluster_secret); } @@ -588,7 +588,7 @@ void DatabaseReplicated::recoverLostReplica(const ZooKeeperPtr & current_zookeep query_context->makeQueryContext(); query_context->getClientInfo().query_kind = ClientInfo::QueryKind::SECONDARY_QUERY; query_context->getClientInfo().is_replicated_database_internal = true; - query_context->setCurrentDatabase(database_name); + query_context->setCurrentDatabase(getDatabaseName()); query_context->setCurrentQueryId(""); auto txn = std::make_shared(current_zookeeper, zookeeper_path, false, ""); query_context->initZooKeeperMetadataTransaction(txn); diff --git a/src/Databases/DatabasesCommon.cpp b/src/Databases/DatabasesCommon.cpp index 13cd841cc6e..5dd17789e60 100644 --- a/src/Databases/DatabasesCommon.cpp +++ b/src/Databases/DatabasesCommon.cpp @@ -218,11 +218,11 @@ bool DatabaseWithOwnTablesBase::empty() const StoragePtr DatabaseWithOwnTablesBase::detachTable(ContextPtr /* context_ */, const String & table_name) { - std::unique_lock lock(mutex); - return detachTableUnlocked(table_name, lock); + std::lock_guard lock(mutex); + return detachTableUnlocked(table_name); } -StoragePtr DatabaseWithOwnTablesBase::detachTableUnlocked(const String & table_name, std::unique_lock &) +StoragePtr DatabaseWithOwnTablesBase::detachTableUnlocked(const String & table_name) { StoragePtr res; @@ -245,11 +245,11 @@ StoragePtr DatabaseWithOwnTablesBase::detachTableUnlocked(const String & table_n void DatabaseWithOwnTablesBase::attachTable(ContextPtr /* context_ */, const String & table_name, const StoragePtr & table, const String &) { - std::unique_lock lock(mutex); - attachTableUnlocked(table_name, table, lock); + std::lock_guard lock(mutex); + attachTableUnlocked(table_name, table); } -void DatabaseWithOwnTablesBase::attachTableUnlocked(const String & table_name, const StoragePtr & table, std::unique_lock &) +void DatabaseWithOwnTablesBase::attachTableUnlocked(const String & table_name, const StoragePtr & table) { auto table_id = table->getStorageID(); if (table_id.database_name != database_name) @@ -313,7 +313,7 @@ DatabaseWithOwnTablesBase::~DatabaseWithOwnTablesBase() } } -StoragePtr DatabaseWithOwnTablesBase::getTableUnlocked(const String & table_name, std::unique_lock &) const +StoragePtr DatabaseWithOwnTablesBase::getTableUnlocked(const String & table_name) const { auto it = tables.find(table_name); if (it != tables.end()) diff --git a/src/Databases/DatabasesCommon.h b/src/Databases/DatabasesCommon.h index fcaa4af88bb..c960d295529 100644 --- a/src/Databases/DatabasesCommon.h +++ b/src/Databases/DatabasesCommon.h @@ -45,14 +45,14 @@ public: ~DatabaseWithOwnTablesBase() override; protected: - Tables tables; + Tables tables TSA_GUARDED_BY(mutex); Poco::Logger * log; DatabaseWithOwnTablesBase(const String & name_, const String & logger, ContextPtr context); - void attachTableUnlocked(const String & table_name, const StoragePtr & table, std::unique_lock & lock); - StoragePtr detachTableUnlocked(const String & table_name, std::unique_lock & lock); - StoragePtr getTableUnlocked(const String & table_name, std::unique_lock & lock) const; + void attachTableUnlocked(const String & table_name, const StoragePtr & table) TSA_REQUIRES(mutex); + StoragePtr detachTableUnlocked(const String & table_name) TSA_REQUIRES(mutex); + StoragePtr getTableUnlocked(const String & table_name) const TSA_REQUIRES(mutex); }; } diff --git a/src/Databases/IDatabase.cpp b/src/Databases/IDatabase.cpp index 1d5695188b7..3adba0d85c8 100644 --- a/src/Databases/IDatabase.cpp +++ b/src/Databases/IDatabase.cpp @@ -19,7 +19,7 @@ StoragePtr IDatabase::getTable(const String & name, ContextPtr context) const { if (auto storage = tryGetTable(name, context)) return storage; - throw Exception(ErrorCodes::UNKNOWN_TABLE, "Table {}.{} doesn't exist", backQuoteIfNeed(database_name), backQuoteIfNeed(name)); + throw Exception(ErrorCodes::UNKNOWN_TABLE, "Table {}.{} doesn't exist", backQuoteIfNeed(getDatabaseName()), backQuoteIfNeed(name)); } ASTPtr IDatabase::getCreateDatabaseQueryForBackup() const diff --git a/src/Databases/IDatabase.h b/src/Databases/IDatabase.h index a81df0a389a..e3c3e587685 100644 --- a/src/Databases/IDatabase.h +++ b/src/Databases/IDatabase.h @@ -356,8 +356,8 @@ protected: } mutable std::mutex mutex; - String database_name; - String comment; + String database_name TSA_GUARDED_BY(mutex); + String comment TSA_GUARDED_BY(mutex); }; using DatabasePtr = std::shared_ptr; diff --git a/src/Databases/MySQL/DatabaseMySQL.h b/src/Databases/MySQL/DatabaseMySQL.h index 1ee090ecd52..b44320f8936 100644 --- a/src/Databases/MySQL/DatabaseMySQL.h +++ b/src/Databases/MySQL/DatabaseMySQL.h @@ -109,15 +109,15 @@ private: void cleanOutdatedTables(); - void fetchTablesIntoLocalCache(ContextPtr context) const; + void fetchTablesIntoLocalCache(ContextPtr context) const TSA_REQUIRES(mutex); std::map fetchTablesWithModificationTime(ContextPtr local_context) const; std::map fetchTablesColumnsList(const std::vector & tables_name, ContextPtr context) const; - void destroyLocalCacheExtraTables(const std::map & tables_with_modification_time) const; + void destroyLocalCacheExtraTables(const std::map & tables_with_modification_time) const TSA_REQUIRES(mutex); - void fetchLatestTablesStructureIntoCache(const std::map & tables_modification_time, ContextPtr context) const; + void fetchLatestTablesStructureIntoCache(const std::map & tables_modification_time, ContextPtr context) const TSA_REQUIRES(mutex); ThreadFromGlobalPool thread; }; diff --git a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp index db184342a97..4d4b310ab61 100644 --- a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp +++ b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp @@ -63,9 +63,9 @@ void DatabaseMaterializedPostgreSQL::startSynchronization() return; replication_handler = std::make_unique( - /* replication_identifier */database_name, + /* replication_identifier */ READ_NO_TSA(database_name), /// FIXME remote_database_name, - database_name, + READ_NO_TSA(database_name), /// FIXME connection_info, getContext(), is_attach, @@ -99,7 +99,8 @@ void DatabaseMaterializedPostgreSQL::startSynchronization() else { /// Nested table does not exist and will be created by replication thread. - storage = std::make_shared(StorageID(database_name, table_name), getContext(), remote_database_name, table_name); + /// FIXME TSA + storage = std::make_shared(StorageID(READ_NO_TSA(database_name), table_name), getContext(), remote_database_name, table_name); } /// Cache MaterializedPostgreSQL wrapper over nested table. @@ -210,7 +211,8 @@ ASTPtr DatabaseMaterializedPostgreSQL::getCreateTableQueryImpl(const String & ta std::lock_guard lock(handler_mutex); - auto storage = std::make_shared(StorageID(database_name, table_name), getContext(), remote_database_name, table_name); + /// FIXME TSA + auto storage = std::make_shared(StorageID(READ_NO_TSA(database_name), table_name), getContext(), remote_database_name, table_name); auto ast_storage = replication_handler->getCreateNestedTableQuery(storage.get(), table_name); assert_cast(ast_storage.get())->uuid = UUIDHelpers::generateV4(); return ast_storage; @@ -234,7 +236,7 @@ ASTPtr DatabaseMaterializedPostgreSQL::createAlterSettingsQuery(const SettingCha auto * alter = query->as(); alter->alter_object = ASTAlterQuery::AlterObjectType::DATABASE; - alter->setDatabase(database_name); + alter->setDatabase(READ_NO_TSA(database_name)); /// FIXME alter->set(alter->command_list, command_list); return query; diff --git a/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp b/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp index 1bcc203beb9..a2c5a9a29ef 100644 --- a/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp +++ b/src/Databases/PostgreSQL/DatabasePostgreSQL.cpp @@ -369,7 +369,11 @@ ASTPtr DatabasePostgreSQL::getCreateDatabaseQuery() const ASTPtr DatabasePostgreSQL::getCreateTableQueryImpl(const String & table_name, ContextPtr local_context, bool throw_on_error) const { - auto storage = fetchTable(table_name, local_context, false); + StoragePtr storage; + { + std::lock_guard lock{mutex}; + storage = fetchTable(table_name, local_context, false); + } if (!storage) { if (throw_on_error) diff --git a/src/Databases/PostgreSQL/DatabasePostgreSQL.h b/src/Databases/PostgreSQL/DatabasePostgreSQL.h index 3397dcc8076..53b3de15d0a 100644 --- a/src/Databases/PostgreSQL/DatabasePostgreSQL.h +++ b/src/Databases/PostgreSQL/DatabasePostgreSQL.h @@ -81,7 +81,7 @@ private: bool checkPostgresTable(const String & table_name) const; - StoragePtr fetchTable(const String & table_name, ContextPtr context, bool table_checked) const; + StoragePtr fetchTable(const String & table_name, ContextPtr context, bool table_checked) const TSA_REQUIRES(mutex); void removeOutdatedTables(); diff --git a/src/Databases/SQLite/DatabaseSQLite.cpp b/src/Databases/SQLite/DatabaseSQLite.cpp index 7a4844e4d69..44a392ce1f2 100644 --- a/src/Databases/SQLite/DatabaseSQLite.cpp +++ b/src/Databases/SQLite/DatabaseSQLite.cpp @@ -173,12 +173,16 @@ ASTPtr DatabaseSQLite::getCreateDatabaseQuery() const ASTPtr DatabaseSQLite::getCreateTableQueryImpl(const String & table_name, ContextPtr local_context, bool throw_on_error) const { - auto storage = fetchTable(table_name, local_context, false); + StoragePtr storage; + { + std::lock_guard lock(mutex); + storage = fetchTable(table_name, local_context, false); + } if (!storage) { if (throw_on_error) throw Exception(ErrorCodes::UNKNOWN_TABLE, "SQLite table {}.{} does not exist", - database_name, table_name); + getDatabaseName(), table_name); return nullptr; } auto table_storage_define = database_engine_define->clone(); diff --git a/src/Databases/SQLite/DatabaseSQLite.h b/src/Databases/SQLite/DatabaseSQLite.h index c8df79d0f6a..8f0c9b4d720 100644 --- a/src/Databases/SQLite/DatabaseSQLite.h +++ b/src/Databases/SQLite/DatabaseSQLite.h @@ -54,9 +54,9 @@ private: bool checkSQLiteTable(const String & table_name) const; - NameSet fetchTablesList() const; + NameSet fetchTablesList() const TSA_REQUIRES(mutex); - StoragePtr fetchTable(const String & table_name, ContextPtr context, bool table_checked) const; + StoragePtr fetchTable(const String & table_name, ContextPtr context, bool table_checked) const TSA_REQUIRES(mutex); }; diff --git a/src/Interpreters/DDLWorker.h b/src/Interpreters/DDLWorker.h index dc93b602a29..5dc6d4acbe5 100644 --- a/src/Interpreters/DDLWorker.h +++ b/src/Interpreters/DDLWorker.h @@ -124,7 +124,7 @@ protected: std::string queue_dir; /// dir with queue of queries mutable std::mutex zookeeper_mutex; - ZooKeeperPtr current_zookeeper; + ZooKeeperPtr current_zookeeper TSA_GUARDED_BY(zookeeper_mutex); /// Save state of executed task to avoid duplicate execution on ZK error std::optional last_skipped_entry_name; diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 13340221f38..4a0874f3050 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -205,7 +205,10 @@ void DatabaseCatalog::shutdownImpl() for (auto & database : current_databases) database.second->shutdown(); - tables_marked_dropped.clear(); + { + std::lock_guard lock(tables_marked_dropped_mutex); + tables_marked_dropped.clear(); + } std::lock_guard lock(databases_mutex); for (const auto & db : databases) @@ -223,6 +226,7 @@ void DatabaseCatalog::shutdownImpl() auto & table = mapping.second.second; return db || table; }; + std::lock_guard map_lock{elem.mutex}; auto it = std::find_if(elem.map.begin(), elem.map.end(), not_empty_mapping); return it != elem.map.end(); }) == uuid_map.end()); @@ -689,7 +693,8 @@ DatabaseCatalog::updateDependency(const StorageID & old_from, const StorageID & DDLGuardPtr DatabaseCatalog::getDDLGuard(const String & database, const String & table) { std::unique_lock lock(ddl_guards_mutex); - auto db_guard_iter = ddl_guards.try_emplace(database).first; + /// TSA does not support unique_lock + auto db_guard_iter = WRITE_NO_TSA(ddl_guards).try_emplace(database).first; DatabaseGuard & db_guard = db_guard_iter->second; return std::make_unique(db_guard.first, db_guard.second, std::move(lock), table, database); } @@ -698,7 +703,7 @@ std::unique_lock DatabaseCatalog::getExclusiveDDLGuardForData { DDLGuards::iterator db_guard_iter; { - std::unique_lock lock(ddl_guards_mutex); + std::lock_guard lock(ddl_guards_mutex); db_guard_iter = ddl_guards.try_emplace(database).first; assert(db_guard_iter->second.first.contains("")); } @@ -999,7 +1004,7 @@ void DatabaseCatalog::waitTableFinallyDropped(const UUID & uuid) LOG_DEBUG(log, "Waiting for table {} to be finally dropped", toString(uuid)); std::unique_lock lock{tables_marked_dropped_mutex}; - wait_table_finally_dropped.wait(lock, [&]() + wait_table_finally_dropped.wait(lock, [&]() TSA_REQUIRES(tables_marked_dropped_mutex) -> bool { return !tables_marked_dropped_ids.contains(uuid); }); diff --git a/src/Interpreters/DatabaseCatalog.h b/src/Interpreters/DatabaseCatalog.h index d82a0594c9a..7daa70fac13 100644 --- a/src/Interpreters/DatabaseCatalog.h +++ b/src/Interpreters/DatabaseCatalog.h @@ -221,7 +221,7 @@ public: DependenciesInfo getLoadingDependenciesInfo(const StorageID & table_id) const; TableNamesSet tryRemoveLoadingDependencies(const StorageID & table_id, bool check_dependencies, bool is_drop_database = false); - TableNamesSet tryRemoveLoadingDependenciesUnlocked(const QualifiedTableName & removing_table, bool check_dependencies, bool is_drop_database = false); + TableNamesSet tryRemoveLoadingDependenciesUnlocked(const QualifiedTableName & removing_table, bool check_dependencies, bool is_drop_database = false) TSA_REQUIRES(databases_mutex); void checkTableCanBeRemovedOrRenamed(const StorageID & table_id) const; void updateLoadingDependencies(const StorageID & table_id, TableNamesSet && new_dependencies); @@ -233,15 +233,15 @@ private: static std::unique_ptr database_catalog; explicit DatabaseCatalog(ContextMutablePtr global_context_); - void assertDatabaseExistsUnlocked(const String & database_name) const; - void assertDatabaseDoesntExistUnlocked(const String & database_name) const; + void assertDatabaseExistsUnlocked(const String & database_name) const TSA_REQUIRES(databases_mutex) TSA_REQUIRES(databases_mutex); + void assertDatabaseDoesntExistUnlocked(const String & database_name) const TSA_REQUIRES(databases_mutex) TSA_REQUIRES(databases_mutex); void shutdownImpl(); struct UUIDToStorageMapPart { - std::unordered_map map; + std::unordered_map map TSA_GUARDED_BY(mutex); mutable std::mutex mutex; }; @@ -273,12 +273,12 @@ private: mutable std::mutex databases_mutex; - ViewDependencies view_dependencies; + ViewDependencies view_dependencies TSA_GUARDED_BY(databases_mutex); - Databases databases; + Databases databases TSA_GUARDED_BY(databases_mutex); UUIDToStorageMap uuid_map; - DependenciesInfos loading_dependencies; + DependenciesInfos loading_dependencies TSA_GUARDED_BY(databases_mutex); Poco::Logger * log; @@ -290,12 +290,12 @@ private: /// In case the element already exists, waits when query will be executed in other thread. See class DDLGuard below. using DatabaseGuard = std::pair; using DDLGuards = std::map; - DDLGuards ddl_guards; + DDLGuards ddl_guards TSA_GUARDED_BY(ddl_guards_mutex); /// If you capture mutex and ddl_guards_mutex, then you need to grab them strictly in this order. mutable std::mutex ddl_guards_mutex; - TablesMarkedAsDropped tables_marked_dropped; - std::unordered_set tables_marked_dropped_ids; + TablesMarkedAsDropped tables_marked_dropped TSA_GUARDED_BY(tables_marked_dropped_mutex); + std::unordered_set tables_marked_dropped_ids TSA_GUARDED_BY(tables_marked_dropped_mutex); mutable std::mutex tables_marked_dropped_mutex; std::unique_ptr drop_task; diff --git a/src/Interpreters/MergeTreeTransaction.cpp b/src/Interpreters/MergeTreeTransaction.cpp index e6b4818b4d7..5b657b88194 100644 --- a/src/Interpreters/MergeTreeTransaction.cpp +++ b/src/Interpreters/MergeTreeTransaction.cpp @@ -24,16 +24,17 @@ static TableLockHolder getLockForOrdinary(const StoragePtr & storage) return storage->lockForShare(RWLockImpl::NO_QUERY, default_timeout); } -MergeTreeTransaction::MergeTreeTransaction(CSN snapshot_, LocalTID local_tid_, UUID host_id) +MergeTreeTransaction::MergeTreeTransaction(CSN snapshot_, LocalTID local_tid_, UUID host_id, std::list::iterator snapshot_it_) : tid({snapshot_, local_tid_, host_id}) , snapshot(snapshot_) + , snapshot_in_use_it(snapshot_it_) , csn(Tx::UnknownCSN) { } void MergeTreeTransaction::setSnapshot(CSN new_snapshot) { - snapshot = new_snapshot; + snapshot.store(new_snapshot, std::memory_order_relaxed); } MergeTreeTransaction::State MergeTreeTransaction::getState() const @@ -219,19 +220,31 @@ void MergeTreeTransaction::afterCommit(CSN assigned_csn) noexcept /// It's not a problem if server crash before CSN is written, because we already have TID in data part and entry in the log. [[maybe_unused]] CSN prev_value = csn.exchange(assigned_csn); chassert(prev_value == Tx::CommittingCSN); - for (const auto & part : creating_parts) + + DataPartsVector created_parts; + DataPartsVector removed_parts; + RunningMutationsList committed_mutations; + { + /// We don't really need mutex here, because no concurrent modifications of transaction object may happen after comit. + std::lock_guard lock{mutex}; + created_parts = creating_parts; + removed_parts = removing_parts; + committed_mutations = mutations; + } + + for (const auto & part : created_parts) { part->version.creation_csn.store(csn); part->appendCSNToVersionMetadata(VersionMetadata::WhichCSN::CREATION); } - for (const auto & part : removing_parts) + for (const auto & part : removed_parts) { part->version.removal_csn.store(csn); part->appendCSNToVersionMetadata(VersionMetadata::WhichCSN::REMOVAL); } - for (const auto & storage_and_mutation : mutations) + for (const auto & storage_and_mutation : committed_mutations) storage_and_mutation.first->setMutationCSN(storage_and_mutation.second, csn); } @@ -313,7 +326,7 @@ void MergeTreeTransaction::onException() String MergeTreeTransaction::dumpDescription() const { - String res = fmt::format("{} state: {}, snapshot: {}", tid, getState(), snapshot); + String res = fmt::format("{} state: {}, snapshot: {}", tid, getState(), getSnapshot()); if (isReadOnly()) { @@ -335,7 +348,7 @@ String MergeTreeTransaction::dumpDescription() const { String info = fmt::format("{} (created by {}, {})", part->name, part->version.getCreationTID(), part->version.creation_csn); std::get<1>(storage_to_changes[&(part->storage)]).push_back(std::move(info)); - chassert(!part->version.creation_csn || part->version.creation_csn <= snapshot); + chassert(!part->version.creation_csn || part->version.creation_csn <= getSnapshot()); } for (const auto & mutation : mutations) diff --git a/src/Interpreters/MergeTreeTransaction.h b/src/Interpreters/MergeTreeTransaction.h index 8b537a7bcd8..7397ea12c12 100644 --- a/src/Interpreters/MergeTreeTransaction.h +++ b/src/Interpreters/MergeTreeTransaction.h @@ -31,13 +31,13 @@ public: ROLLED_BACK, }; - CSN getSnapshot() const { return snapshot; } + CSN getSnapshot() const { return snapshot.load(std::memory_order_relaxed); } void setSnapshot(CSN new_snapshot); State getState() const; const TransactionID tid; - MergeTreeTransaction(CSN snapshot_, LocalTID local_tid_, UUID host_id); + MergeTreeTransaction(CSN snapshot_, LocalTID local_tid_, UUID host_id, std::list::iterator snapshot_it_); void addNewPart(const StoragePtr & storage, const DataPartPtr & new_part); void removeOldPart(const StoragePtr & storage, const DataPartPtr & part_to_remove, const TransactionInfoContext & context); @@ -71,16 +71,16 @@ private: Stopwatch elapsed; /// Usually it's equal to tid.start_csn, but can be changed by SET SNAPSHOT query (for introspection purposes and time-traveling) - CSN snapshot; - std::list::iterator snapshot_in_use_it; + std::atomic snapshot; + const std::list::iterator snapshot_in_use_it; /// Lists of changes made by transaction - std::unordered_set storages; - std::vector table_read_locks_for_ordinary_db; - DataPartsVector creating_parts; - DataPartsVector removing_parts; + std::unordered_set storages TSA_GUARDED_BY(mutex); + std::vector table_read_locks_for_ordinary_db TSA_GUARDED_BY(mutex); + DataPartsVector creating_parts TSA_GUARDED_BY(mutex); + DataPartsVector removing_parts TSA_GUARDED_BY(mutex); using RunningMutationsList = std::vector>; - RunningMutationsList mutations; + RunningMutationsList mutations TSA_GUARDED_BY(mutex); std::atomic csn; }; diff --git a/src/Interpreters/TransactionLog.cpp b/src/Interpreters/TransactionLog.cpp index 4f79aaff2c7..a3a3e336693 100644 --- a/src/Interpreters/TransactionLog.cpp +++ b/src/Interpreters/TransactionLog.cpp @@ -43,16 +43,13 @@ catch (...) TransactionLog::TransactionLog() - : log(&Poco::Logger::get("TransactionLog")) + : global_context(Context::getGlobalContextInstance()) + , log(&Poco::Logger::get("TransactionLog")) + , zookeeper_path(global_context->getConfigRef().getString("transaction_log.zookeeper_path", "/clickhouse/txn")) + , zookeeper_path_log(zookeeper_path + "/log") + , fault_probability_before_commit(global_context->getConfigRef().getDouble("transaction_log.fault_probability_before_commit", 0)) + , fault_probability_after_commit(global_context->getConfigRef().getDouble("transaction_log.fault_probability_after_commit", 0)) { - global_context = Context::getGlobalContextInstance(); - global_context->checkTransactionsAreAllowed(); - - zookeeper_path = global_context->getConfigRef().getString("transaction_log.zookeeper_path", "/clickhouse/txn"); - zookeeper_path_log = zookeeper_path + "/log"; - fault_probability_before_commit = global_context->getConfigRef().getDouble("transaction_log.fault_probability_before_commit", 0); - fault_probability_after_commit = global_context->getConfigRef().getDouble("transaction_log.fault_probability_after_commit", 0); - loadLogFromZooKeeper(); updating_thread = ThreadFromGlobalPool(&TransactionLog::runUpdatingThread, this); @@ -128,7 +125,7 @@ void TransactionLog::loadEntries(Strings::const_iterator beg, Strings::const_ite LOG_TRACE(log, "Loading {} entries from {}: {}..{}", entries_count, zookeeper_path_log, *beg, last_entry); futures.reserve(entries_count); for (auto it = beg; it != end; ++it) - futures.emplace_back(zookeeper->asyncGet(fs::path(zookeeper_path_log) / *it)); + futures.emplace_back(READ_ONE_THREAD(zookeeper)->asyncGet(fs::path(zookeeper_path_log) / *it)); std::vector> loaded; loaded.reserve(entries_count); @@ -213,7 +210,7 @@ void TransactionLog::runUpdatingThread() try { /// Do not wait if we have some transactions to finalize - if (unknown_state_list_loaded.empty()) + if (READ_ONE_THREAD(unknown_state_list_loaded).empty()) log_updated_event->wait(); if (stop_flag.load()) @@ -230,7 +227,7 @@ void TransactionLog::runUpdatingThread() /// It's possible that we connected to different [Zoo]Keeper instance /// so we may read a bit stale state. - zookeeper->sync(zookeeper_path_log); + READ_ONE_THREAD(zookeeper)->sync(zookeeper_path_log); } loadNewEntries(); @@ -255,13 +252,13 @@ void TransactionLog::runUpdatingThread() void TransactionLog::loadNewEntries() { - Strings entries_list = zookeeper->getChildren(zookeeper_path_log, nullptr, log_updated_event); + Strings entries_list = READ_ONE_THREAD(zookeeper)->getChildren(zookeeper_path_log, nullptr, log_updated_event); chassert(!entries_list.empty()); ::sort(entries_list.begin(), entries_list.end()); - auto it = std::upper_bound(entries_list.begin(), entries_list.end(), last_loaded_entry); + auto it = std::upper_bound(entries_list.begin(), entries_list.end(), READ_ONE_THREAD(last_loaded_entry)); loadEntries(it, entries_list.end()); - chassert(last_loaded_entry == entries_list.back()); - chassert(latest_snapshot == deserializeCSN(last_loaded_entry)); + chassert(READ_ONE_THREAD(last_loaded_entry) == entries_list.back()); + chassert(latest_snapshot == deserializeCSN(READ_ONE_THREAD(last_loaded_entry))); latest_snapshot.notify_all(); } @@ -281,7 +278,7 @@ void TransactionLog::removeOldEntries() /// TODO we will need a bit more complex logic for multiple hosts Coordination::Stat stat; - CSN old_tail_ptr = deserializeCSN(zookeeper->get(zookeeper_path + "/tail_ptr", &stat)); + CSN old_tail_ptr = deserializeCSN(READ_ONE_THREAD(zookeeper)->get(zookeeper_path + "/tail_ptr", &stat)); CSN new_tail_ptr = getOldestSnapshot(); if (new_tail_ptr < old_tail_ptr) throw Exception(ErrorCodes::LOGICAL_ERROR, "Got unexpected tail_ptr {}, oldest snapshot is {}, it's a bug", old_tail_ptr, new_tail_ptr); @@ -290,7 +287,7 @@ void TransactionLog::removeOldEntries() /// (it's not supposed to fail with ZBADVERSION while there is only one host) LOG_TRACE(log, "Updating tail_ptr from {} to {}", old_tail_ptr, new_tail_ptr); - zookeeper->set(zookeeper_path + "/tail_ptr", serializeCSN(new_tail_ptr), stat.version); + READ_ONE_THREAD(zookeeper)->set(zookeeper_path + "/tail_ptr", serializeCSN(new_tail_ptr), stat.version); tail_ptr.store(new_tail_ptr); /// Now we can find and remove old entries @@ -314,7 +311,7 @@ void TransactionLog::removeOldEntries() continue; LOG_TEST(log, "Removing entry {} -> {}", elem.second.tid, elem.second.csn); - auto code = zookeeper->tryRemove(zookeeper_path_log + "/" + serializeCSN(elem.second.csn)); + auto code = READ_ONE_THREAD(zookeeper)->tryRemove(zookeeper_path_log + "/" + serializeCSN(elem.second.csn)); if (code == Coordination::Error::ZOK || code == Coordination::Error::ZNONODE) removed_entries.push_back(elem.first); } @@ -376,11 +373,11 @@ MergeTreeTransactionPtr TransactionLog::beginTransaction() std::lock_guard lock{running_list_mutex}; CSN snapshot = latest_snapshot.load(); LocalTID ltid = 1 + local_tid_counter.fetch_add(1); - txn = std::make_shared(snapshot, ltid, ServerUUID::get()); + auto snapshot_lock = snapshots_in_use.insert(snapshots_in_use.end(), snapshot); + txn = std::make_shared(snapshot, ltid, ServerUUID::get(), snapshot_lock); bool inserted = running_list.try_emplace(txn->tid.getHash(), txn).second; if (!inserted) throw Exception(ErrorCodes::LOGICAL_ERROR, "I's a bug: TID {} {} exists", txn->tid.getHash(), txn->tid); - txn->snapshot_in_use_it = snapshots_in_use.insert(snapshots_in_use.end(), snapshot); } LOG_TEST(log, "Beginning transaction {} ({})", txn->tid, txn->tid.getHash()); @@ -595,7 +592,7 @@ TransactionLog::TransactionsList TransactionLog::getTransactionsList() const void TransactionLog::sync() const { - Strings entries_list = zookeeper->getChildren(zookeeper_path_log); + Strings entries_list = getZooKeeper()->getChildren(zookeeper_path_log); chassert(!entries_list.empty()); ::sort(entries_list.begin(), entries_list.end()); CSN newest_csn = deserializeCSN(entries_list.back()); diff --git a/src/Interpreters/TransactionLog.h b/src/Interpreters/TransactionLog.h index 49aa77b9868..71a5d3a6fc6 100644 --- a/src/Interpreters/TransactionLog.h +++ b/src/Interpreters/TransactionLog.h @@ -129,7 +129,7 @@ public: void sync() const; private: - void loadLogFromZooKeeper(); + void loadLogFromZooKeeper() TSA_REQUIRES(mutex); void runUpdatingThread(); void loadEntries(Strings::const_iterator beg, Strings::const_iterator end); @@ -149,8 +149,8 @@ private: CSN getCSNImpl(const TIDHash & tid_hash) const; - ContextPtr global_context; - Poco::Logger * log; + const ContextPtr global_context; + Poco::Logger * const log; /// The newest snapshot available for reading std::atomic latest_snapshot; @@ -167,24 +167,24 @@ private: TransactionID tid; }; using TIDMap = std::unordered_map; - TIDMap tid_to_csn; + TIDMap tid_to_csn TSA_GUARDED_BY(mutex); mutable std::mutex running_list_mutex; /// Transactions that are currently processed - TransactionsList running_list; + TransactionsList running_list TSA_GUARDED_BY(running_list_mutex); /// If we lost connection on attempt to create csn- node then we don't know transaction's state. using UnknownStateList = std::vector>; - UnknownStateList unknown_state_list; - UnknownStateList unknown_state_list_loaded; + UnknownStateList unknown_state_list TSA_GUARDED_BY(running_list_mutex); + UnknownStateList unknown_state_list_loaded TSA_GUARDED_BY(running_list_mutex); /// Ordered list of snapshots that are currently used by some transactions. Needed for background cleanup. - std::list snapshots_in_use; + std::list snapshots_in_use TSA_GUARDED_BY(running_list_mutex); - ZooKeeperPtr zookeeper; - String zookeeper_path; + ZooKeeperPtr zookeeper TSA_GUARDED_BY(mutex); + const String zookeeper_path; - String zookeeper_path_log; + const String zookeeper_path_log; /// Name of the newest entry that was loaded from log in ZK - String last_loaded_entry; + String last_loaded_entry TSA_GUARDED_BY(mutex); /// The oldest CSN such that we store in log entries with TransactionIDs containing this CSN. std::atomic tail_ptr = Tx::UnknownCSN; @@ -193,8 +193,8 @@ private: std::atomic_bool stop_flag = false; ThreadFromGlobalPool updating_thread; - Float64 fault_probability_before_commit = 0; - Float64 fault_probability_after_commit = 0; + const Float64 fault_probability_before_commit = 0; + const Float64 fault_probability_after_commit = 0; }; template diff --git a/tests/queries/0_stateless/01169_alter_partition_isolation_stress.sh b/tests/queries/0_stateless/01169_alter_partition_isolation_stress.sh index 3657a93f1fd..263b2c84de7 100755 --- a/tests/queries/0_stateless/01169_alter_partition_isolation_stress.sh +++ b/tests/queries/0_stateless/01169_alter_partition_isolation_stress.sh @@ -79,12 +79,7 @@ function thread_partition_dst_to_src() SET throw_on_unsupported_query_inside_transaction=0; SYSTEM START MERGES dst; SELECT throwIf((SELECT (count(), sum(n)) FROM merge(currentDatabase(), '') WHERE type=4) != (toUInt8($i/2 + 1), (select sum(number) from numbers(1, $i) where number % 2 or number=$i))) FORMAT Null; - $action;" || $CLICKHOUSE_CLIENT --multiquery --query " - begin transaction; - set transaction snapshot 3; - select $i, 'src', type, n, _part from src order by type, n; - select $i, 'dst', type, n, _part from dst order by type, n; - rollback" ||: + $action;" done } @@ -102,12 +97,7 @@ function thread_select() SELECT _table, throwIf(arraySort(groupArrayIf(n, type=1)) != arraySort(groupArrayIf(n, type=2))) FROM merge(currentDatabase(), '') GROUP BY _table FORMAT Null; -- all rows are inserted in insert_thread SELECT type, throwIf(count(n) != max(n)), throwIf(sum(n) != max(n)*(max(n)+1)/2) FROM merge(currentDatabase(), '') WHERE type IN (1, 2) GROUP BY type ORDER BY type FORMAT Null; - COMMIT;" || $CLICKHOUSE_CLIENT --multiquery --query " - begin transaction; - set transaction snapshot 3; - select $i, 'src', type, n, _part from src order by type, n; - select $i, 'dst', type, n, _part from dst order by type, n; - rollback" ||: + COMMIT;" done } diff --git a/tests/queries/0_stateless/01171_mv_select_insert_isolation_long.sh b/tests/queries/0_stateless/01171_mv_select_insert_isolation_long.sh index 30dbab6073c..538f586a673 100755 --- a/tests/queries/0_stateless/01171_mv_select_insert_isolation_long.sh +++ b/tests/queries/0_stateless/01171_mv_select_insert_isolation_long.sh @@ -88,12 +88,7 @@ function thread_select() SELECT throwIf((SELECT (sum(nm), count() % 2) FROM dst) != (0, 1)) FORMAT Null; SELECT throwIf((SELECT arraySort(groupArray(nm)) FROM mv) != (SELECT arraySort(groupArray(nm)) FROM dst)) FORMAT Null; SELECT throwIf((SELECT arraySort(groupArray(nm)) FROM mv) != (SELECT arraySort(groupArray(n*m)) FROM src)) FORMAT Null; - COMMIT;" || $CLICKHOUSE_CLIENT --multiquery --query " - begin transaction; - set transaction snapshot 3; - select 'src', n, m, _part from src order by n, m; - select 'dst', nm, _part from dst order by nm; - rollback" ||: + COMMIT;" done } @@ -113,12 +108,7 @@ function thread_select_insert() -- now check that all results are the same SELECT throwIf(1 != (SELECT countDistinct(arr) FROM (SELECT x, arraySort(groupArray(nm)) AS arr FROM tmp WHERE x!=4 GROUP BY x))) FORMAT Null; SELECT throwIf((SELECT count(), sum(nm) FROM tmp WHERE x=4) != (SELECT count(), sum(nm) FROM tmp WHERE x!=4)) FORMAT Null; - ROLLBACK;" || $CLICKHOUSE_CLIENT --multiquery --query " - begin transaction; - set transaction snapshot 3; - select 'src', n, m, _part from src order by n, m; - select 'dst', nm, _part from dst order by nm; - rollback" ||: + ROLLBACK;" done } diff --git a/tests/queries/0_stateless/01174_select_insert_isolation.sh b/tests/queries/0_stateless/01174_select_insert_isolation.sh index 5de42cbc4c5..d66741b08b7 100755 --- a/tests/queries/0_stateless/01174_select_insert_isolation.sh +++ b/tests/queries/0_stateless/01174_select_insert_isolation.sh @@ -43,8 +43,7 @@ function thread_select() SELECT throwIf((SELECT sum(n) FROM mt) != 0) FORMAT Null; SELECT throwIf((SELECT count() FROM mt) % 2 != 0) FORMAT Null; SELECT arraySort(groupArray(n)), arraySort(groupArray(m)), arraySort(groupArray(_part)) FROM mt; - COMMIT;" | uniq | wc -l | grep -v "^1$" && $CLICKHOUSE_CLIENT -q "SELECT * FROM system.parts - WHERE database='$CLICKHOUSE_DATABASE' AND table='mt'" ||:; + COMMIT;" done } From c24c041b1214345ab341726754d0f90bddb1095d Mon Sep 17 00:00:00 2001 From: Dmitry Novik Date: Mon, 27 Jun 2022 20:54:52 +0000 Subject: [PATCH 314/525] Handle full queue exception in tests --- tests/clickhouse-test | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 75159053f26..22c6816eec2 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -5,6 +5,7 @@ # pylint: disable=too-many-lines import enum +from queue import Full import shutil import sys import os @@ -1581,15 +1582,18 @@ def do_run_tests(jobs, test_suite: TestSuite, parallel): for _ in range(jobs): parallel_tests_array.append((None, batch_size, test_suite)) - with closing(multiprocessing.Pool(processes=jobs)) as pool: - pool.map_async(run_tests_array, parallel_tests_array) + try: + with closing(multiprocessing.Pool(processes=jobs)) as pool: + pool.map_async(run_tests_array, parallel_tests_array) - for suit in test_suite.parallel_tests: - queue.put(suit, timeout=args.timeout * 1.1) + for suit in test_suite.parallel_tests: + queue.put(suit, timeout=args.timeout * 1.1) - for _ in range(jobs): - queue.put(None, timeout=args.timeout * 1.1) + for _ in range(jobs): + queue.put(None, timeout=args.timeout * 1.1) + queue.close() + except Full: queue.close() pool.join() From e70cff2ceaf6c116afd6a90223d141df9091c7e9 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Mon, 27 Jun 2022 21:40:42 +0300 Subject: [PATCH 315/525] Fix parts removal after incorrect server shutdown Before this patch, and after transaction support had been added #24258, if the server had not removed old parts on shutdown, then they will left forever. Fixes: #24258 (cc @tavplubix) v2: use Tx::PrehistoricTID over removePartsFromWorkingSet() from ctor v3: apply black to new test Signed-off-by: Azat Khuzhin --- src/Storages/MergeTree/MergeTreeData.cpp | 10 ++- .../test_parts_removal/__init__.py | 0 tests/integration/test_parts_removal/test.py | 71 +++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 tests/integration/test_parts_removal/__init__.py create mode 100644 tests/integration/test_parts_removal/test.py diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index a768791b846..2c4dcfa05ee 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -1324,7 +1324,7 @@ void MergeTreeData::loadDataParts(bool skip_sanity_checks) auto deactivate_part = [&] (DataPartIteratorByStateAndInfo it) { - IMergeTreeDataPart & part = *it; + const DataPartPtr & part = *it; part->remove_time.store(part->modification_time, std::memory_order_relaxed); auto creation_csn = part->version.creation_csn.load(std::memory_order_relaxed); @@ -1339,6 +1339,14 @@ void MergeTreeData::loadDataParts(bool skip_sanity_checks) } modifyPartState(it, DataPartState::Outdated); removePartContributionToDataVolume(part); + + /// Explicitly set removal_tid_lock for parts w/o transaction (i.e. w/o txn_version.txt) + /// to avoid keeping part forever (see VersionMetadata::canBeRemoved()) + if (!part->version.isRemovalTIDLocked()) + { + TransactionInfoContext transaction_context{getStorageID(), part->name}; + part->version.lockRemovalTID(Tx::PrehistoricTID, transaction_context); + } }; /// All parts are in "Active" state after loading diff --git a/tests/integration/test_parts_removal/__init__.py b/tests/integration/test_parts_removal/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/integration/test_parts_removal/test.py b/tests/integration/test_parts_removal/test.py new file mode 100644 index 00000000000..4772178d63b --- /dev/null +++ b/tests/integration/test_parts_removal/test.py @@ -0,0 +1,71 @@ +# pylint: disable=unused-argument +# pylint: disable=redefined-outer-name +# pylint: disable=line-too-long + +import pytest + +from helpers.cluster import ClickHouseCluster + +cluster = ClickHouseCluster(__file__) + +node = cluster.add_instance("node", stay_alive=True) + + +def query_split(node, query): + return list( + map(lambda x: x.strip().split("\t"), node.query(query).strip().split("\n")) + ) + + +@pytest.fixture(scope="module") +def start_cluster(): + try: + cluster.start() + yield cluster + finally: + cluster.shutdown() + + +def test_parts_removal_on_abnormal_exit(start_cluster): + node.query( + """ + create table test_parts_removal (key Int) engine=MergeTree order by key; + insert into test_parts_removal values (1); -- all_1_1_0 + insert into test_parts_removal values (2); -- all_1_2_0 + optimize table test_parts_removal; -- all_2_2_0 + """ + ) + + parts = query_split( + node, "select name, _state from system.parts where table = 'test_parts_removal'" + ) + assert parts == [ + ["all_1_1_0", "Outdated"], + ["all_1_2_1", "Active"], + ["all_2_2_0", "Outdated"], + ] + + node.restart_clickhouse(kill=True) + + parts = query_split( + node, "select name, _state from system.parts where table = 'test_parts_removal'" + ) + assert parts == [ + ["all_1_1_0", "Outdated"], + ["all_1_2_1", "Active"], + ["all_2_2_0", "Outdated"], + ] + + node.query( + """ + detach table test_parts_removal; + attach table test_parts_removal; + """ + ) + + parts = query_split( + node, "select name, _state from system.parts where table = 'test_parts_removal'" + ) + assert parts == [ + ["all_1_2_1", "Active"], + ] From e41d612b1d1b80f64b4bd945bd7b3829f7ef0b9f Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Mon, 27 Jun 2022 20:57:18 +0000 Subject: [PATCH 316/525] Cleanup: local clang-tidy warnings founded during review --- src/Core/PostgreSQL/Connection.h | 2 +- src/Core/PostgreSQL/PoolWithFailover.h | 4 ++-- src/Dictionaries/RedisDictionarySource.h | 5 ----- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/Core/PostgreSQL/Connection.h b/src/Core/PostgreSQL/Connection.h index 8c5609dc66b..97ce3c152d5 100644 --- a/src/Core/PostgreSQL/Connection.h +++ b/src/Core/PostgreSQL/Connection.h @@ -32,7 +32,7 @@ struct ConnectionInfo class Connection : private boost::noncopyable { public: - Connection(const ConnectionInfo & connection_info_, bool replication_ = false, size_t num_tries = 3); + explicit Connection(const ConnectionInfo & connection_info_, bool replication_ = false, size_t num_tries = 3); void execWithRetry(const std::function & exec); diff --git a/src/Core/PostgreSQL/PoolWithFailover.h b/src/Core/PostgreSQL/PoolWithFailover.h index 600e12fb53a..4e3a17b5e9c 100644 --- a/src/Core/PostgreSQL/PoolWithFailover.h +++ b/src/Core/PostgreSQL/PoolWithFailover.h @@ -25,13 +25,13 @@ public: static constexpr inline auto POSTGRESQL_POOL_WAIT_TIMEOUT = 5000; static constexpr inline auto POSTGRESQL_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES = 5; - PoolWithFailover( + explicit PoolWithFailover( const DB::ExternalDataSourcesConfigurationByPriority & configurations_by_priority, size_t pool_size = POSTGRESQL_POOL_DEFAULT_SIZE, size_t pool_wait_timeout = POSTGRESQL_POOL_WAIT_TIMEOUT, size_t max_tries_ = POSTGRESQL_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES); - PoolWithFailover( + explicit PoolWithFailover( const DB::StoragePostgreSQLConfiguration & configuration, size_t pool_size = POSTGRESQL_POOL_DEFAULT_SIZE, size_t pool_wait_timeout = POSTGRESQL_POOL_WAIT_TIMEOUT, diff --git a/src/Dictionaries/RedisDictionarySource.h b/src/Dictionaries/RedisDictionarySource.h index bf745a7bb41..26f5ab2a613 100644 --- a/src/Dictionaries/RedisDictionarySource.h +++ b/src/Dictionaries/RedisDictionarySource.h @@ -8,11 +8,6 @@ namespace Poco { - namespace Util - { - class AbstractConfiguration; - } - namespace Redis { class Client; From 5e28580f118929288aeb99194161f136872be8ad Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Mon, 27 Jun 2022 23:00:37 +0200 Subject: [PATCH 317/525] Fix some clang-tidy warnings in headers --- base/base/demangle.h | 2 +- base/base/time.h | 2 +- base/base/unaligned.h | 2 +- base/pcg-random/pcg_extras.hpp | 4 ++++ base/pcg-random/pcg_random.hpp | 4 ++++ src/Common/Allocator.h | 2 +- src/Common/Arena.h | 2 +- src/Common/CurrentMetrics.h | 2 +- src/Common/LocalDate.h | 2 +- src/Common/PODArray.h | 2 +- src/Common/ProfileEvents.h | 2 +- src/Common/StackTrace.h | 2 +- src/Common/memcpySmall.h | 2 +- src/IO/BufferWithOwnMemory.h | 2 +- src/IO/WriteBuffer.h | 2 +- src/IO/WriteBufferFromVector.h | 2 +- 16 files changed, 22 insertions(+), 14 deletions(-) diff --git a/base/base/demangle.h b/base/base/demangle.h index 3c20920ab7c..ddca264ecab 100644 --- a/base/base/demangle.h +++ b/base/base/demangle.h @@ -27,6 +27,6 @@ struct FreeingDeleter } }; -typedef std::unique_ptr DemangleResult; +using DemangleResult = std::unique_ptr; DemangleResult tryDemangle(const char * name); diff --git a/base/base/time.h b/base/base/time.h index d0b8e94a9a5..b029c9e3d42 100644 --- a/base/base/time.h +++ b/base/base/time.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #if defined (OS_DARWIN) || defined (OS_SUNOS) # define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC diff --git a/base/base/unaligned.h b/base/base/unaligned.h index ca73298adfb..013aa5274e9 100644 --- a/base/base/unaligned.h +++ b/base/base/unaligned.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include diff --git a/base/pcg-random/pcg_extras.hpp b/base/pcg-random/pcg_extras.hpp index 39c91c4ecfa..43db2b02a49 100644 --- a/base/pcg-random/pcg_extras.hpp +++ b/base/pcg-random/pcg_extras.hpp @@ -1,3 +1,5 @@ +// NOLINTBEGIN(*) + /* * PCG Random Number Generation for C++ * @@ -553,3 +555,5 @@ std::ostream& operator<<(std::ostream& out, printable_typename) { } // namespace pcg_extras #endif // PCG_EXTRAS_HPP_INCLUDED + +// NOLINTEND(*) diff --git a/base/pcg-random/pcg_random.hpp b/base/pcg-random/pcg_random.hpp index d9d3519a4cf..ec903afdcf0 100644 --- a/base/pcg-random/pcg_random.hpp +++ b/base/pcg-random/pcg_random.hpp @@ -1,3 +1,5 @@ +// NOLINTBEGIN(*) + /* * PCG Random Number Generation for C++ * @@ -1778,3 +1780,5 @@ typedef pcg_engines::ext_oneseq_xsh_rs_64_32<14,32,true> pcg32_k16384_fast; #endif #endif // PCG_RAND_HPP_INCLUDED + +// NOLINTEND(*) diff --git a/src/Common/Allocator.h b/src/Common/Allocator.h index 1e6e76bee91..06ccbed4064 100644 --- a/src/Common/Allocator.h +++ b/src/Common/Allocator.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #ifdef NDEBUG #define ALLOCATOR_ASLR 0 diff --git a/src/Common/Arena.h b/src/Common/Arena.h index 4c7ee458ee4..b706f3b3413 100644 --- a/src/Common/Arena.h +++ b/src/Common/Arena.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include diff --git a/src/Common/CurrentMetrics.h b/src/Common/CurrentMetrics.h index 7508c26b0ae..c184ee1e7f2 100644 --- a/src/Common/CurrentMetrics.h +++ b/src/Common/CurrentMetrics.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include diff --git a/src/Common/LocalDate.h b/src/Common/LocalDate.h index 5d070e77647..dc36f92bebf 100644 --- a/src/Common/LocalDate.h +++ b/src/Common/LocalDate.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include diff --git a/src/Common/PODArray.h b/src/Common/PODArray.h index e4c1969383b..44be28eab75 100644 --- a/src/Common/PODArray.h +++ b/src/Common/PODArray.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include diff --git a/src/Common/ProfileEvents.h b/src/Common/ProfileEvents.h index 14d134a14a0..6eebb75c5ca 100644 --- a/src/Common/ProfileEvents.h +++ b/src/Common/ProfileEvents.h @@ -4,7 +4,7 @@ #include "base/types.h" #include #include -#include +#include /** Implements global counters for various events happening in the application * - for high level profiling. diff --git a/src/Common/StackTrace.h b/src/Common/StackTrace.h index 33c408e6d8a..84a2e9d1f7f 100644 --- a/src/Common/StackTrace.h +++ b/src/Common/StackTrace.h @@ -7,7 +7,7 @@ #include #include #include -#include +#include #ifdef OS_DARWIN // ucontext is not available without _XOPEN_SOURCE diff --git a/src/Common/memcpySmall.h b/src/Common/memcpySmall.h index 6cadc19262f..4f38095c7f1 100644 --- a/src/Common/memcpySmall.h +++ b/src/Common/memcpySmall.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #ifdef __SSE2__ # include diff --git a/src/IO/BufferWithOwnMemory.h b/src/IO/BufferWithOwnMemory.h index 0d571d6ae7c..479e0e88fcc 100644 --- a/src/IO/BufferWithOwnMemory.h +++ b/src/IO/BufferWithOwnMemory.h @@ -181,7 +181,7 @@ public: } private: - void nextImpl() override final + void nextImpl() final { const size_t prev_size = Base::position() - memory.data(); memory.resize(2 * prev_size + 1); diff --git a/src/IO/WriteBuffer.h b/src/IO/WriteBuffer.h index bd2a628355e..309fbc7f12a 100644 --- a/src/IO/WriteBuffer.h +++ b/src/IO/WriteBuffer.h @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/IO/WriteBufferFromVector.h b/src/IO/WriteBufferFromVector.h index d74b366b8e2..521acb6c8d6 100644 --- a/src/IO/WriteBufferFromVector.h +++ b/src/IO/WriteBufferFromVector.h @@ -64,7 +64,7 @@ public: } private: - void finalizeImpl() override final + void finalizeImpl() override { vector.resize( ((position() - reinterpret_cast(vector.data())) /// NOLINT From 09a0688d8009b8cf89a76cb261c75a4b24a9de39 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 28 Jun 2022 00:26:52 +0200 Subject: [PATCH 318/525] fix --- src/Interpreters/loadMetadata.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Interpreters/loadMetadata.cpp b/src/Interpreters/loadMetadata.cpp index 90d8e5bef92..15d4f7929f8 100644 --- a/src/Interpreters/loadMetadata.cpp +++ b/src/Interpreters/loadMetadata.cpp @@ -292,12 +292,24 @@ void maybeConvertOrdinaryDatabaseToAtomic(ContextMutablePtr context, const Datab local_context->setSetting("check_table_dependencies", false); convertOrdinaryDatabaseToAtomic(local_context, database); + auto new_database = DatabaseCatalog::instance().getDatabase(DatabaseCatalog::SYSTEM_DATABASE); + UUID db_uuid = new_database->getUUID(); + std::vector tables_uuids; + for (auto iterator = new_database->getTablesIterator(context); iterator->isValid(); iterator->next()) + tables_uuids.push_back(iterator->uuid()); + /// Reload database just in case (and update logger name) String detach_query = fmt::format("DETACH DATABASE {}", backQuoteIfNeed(DatabaseCatalog::SYSTEM_DATABASE)); auto res = executeQuery(detach_query, context, true); executeTrivialBlockIO(res, context); res = {}; + /// Unlock UUID mapping, because it will be locked again on database reload. + /// It's safe to do during metadata loading, because cleanup task is not started yet. + DatabaseCatalog::instance().removeUUIDMappingFinally(db_uuid); + for (const auto & uuid : tables_uuids) + DatabaseCatalog::instance().removeUUIDMappingFinally(uuid); + loadSystemDatabaseImpl(context, DatabaseCatalog::SYSTEM_DATABASE, "Atomic"); TablesLoader::Databases databases = { From e8cdee73e19a87833713564286c8a8145941e8af Mon Sep 17 00:00:00 2001 From: Jordi Villar Date: Tue, 28 Jun 2022 09:27:28 +0200 Subject: [PATCH 319/525] Update architecture.md --- docs/en/development/architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/development/architecture.md b/docs/en/development/architecture.md index 6da92d96335..b2f1f2448f8 100644 --- a/docs/en/development/architecture.md +++ b/docs/en/development/architecture.md @@ -223,7 +223,7 @@ Replication in ClickHouse can be configured on a per-table basis. You could have Replication is implemented in the `ReplicatedMergeTree` storage engine. The path in `ZooKeeper` is specified as a parameter for the storage engine. All tables with the same path in `ZooKeeper` become replicas of each other: they synchronize their data and maintain consistency. Replicas can be added and removed dynamically simply by creating or dropping a table. -Replication uses an asynchronous multi-master scheme. You can insert data into any replica that has a session with `ZooKeeper`, and data is replicated to all other replicas asynchronously. Because ClickHouse does not support UPDATEs, replication is conflict-free. As there is no quorum acknowledgment of inserts, just-inserted data might be lost if one node fails. +Replication uses an asynchronous multi-master scheme. You can insert data into any replica that has a session with `ZooKeeper`, and data is replicated to all other replicas asynchronously. Because ClickHouse does not support UPDATEs, replication is conflict-free. As there is no quorum acknowledgment of inserts by default, just-inserted data might be lost if one node fails. The insert quorum can be enabled using `insert_quorum` setting. Metadata for replication is stored in ZooKeeper. There is a replication log that lists what actions to do. Actions are: get part; merge parts; drop a partition, and so on. Each replica copies the replication log to its queue and then executes the actions from the queue. For example, on insertion, the “get the part” action is created in the log, and every replica downloads that part. Merges are coordinated between replicas to get byte-identical results. All parts are merged in the same way on all replicas. One of the leaders initiates a new merge first and writes “merge parts” actions to the log. Multiple replicas (or all) can be leaders at the same time. A replica can be prevented from becoming a leader using the `merge_tree` setting `replicated_can_become_leader`. The leaders are responsible for scheduling background merges. From 3e528c0385d1bd1d988267421e5773268b726734 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Tue, 28 Jun 2022 08:13:51 +0000 Subject: [PATCH 320/525] Fix duplicate include --- src/IO/WriteBuffer.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/IO/WriteBuffer.h b/src/IO/WriteBuffer.h index 309fbc7f12a..1fc21e1ac17 100644 --- a/src/IO/WriteBuffer.h +++ b/src/IO/WriteBuffer.h @@ -1,7 +1,6 @@ #pragma once #include -#include #include #include #include From 94f932add10f8028bced53cf8b4bed9dffc70b9a Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Tue, 28 Jun 2022 10:27:25 +0200 Subject: [PATCH 321/525] A tiny improvement in logging --- tests/ci/build_report_check.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/ci/build_report_check.py b/tests/ci/build_report_check.py index 1ba91a38a60..dbf5adfe174 100644 --- a/tests/ci/build_report_check.py +++ b/tests/ci/build_report_check.py @@ -151,6 +151,8 @@ def main(): needs_data = json.load(file_handler) required_builds = len(needs_data) + logging.info("The next builds are required: %s", ", ".join(needs_data)) + gh = Github(get_best_robot_token()) pr_info = PRInfo() rerun_helper = RerunHelper(gh, pr_info, build_check_name) @@ -159,7 +161,6 @@ def main(): sys.exit(0) builds_for_check = CI_CONFIG["builds_report_config"][build_check_name] - logging.info("My reports list %s", builds_for_check) required_builds = required_builds or len(builds_for_check) # Collect reports from json artifacts From 2e3923757cce253018e3e63dddf4b42181b64dc5 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Tue, 28 Jun 2022 17:20:33 +0800 Subject: [PATCH 322/525] fixed:Moved-from object 'column_array_of_element' is moved --- src/DataTypes/NestedUtils.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/DataTypes/NestedUtils.cpp b/src/DataTypes/NestedUtils.cpp index dbdba39fa84..5dae2b7b413 100644 --- a/src/DataTypes/NestedUtils.cpp +++ b/src/DataTypes/NestedUtils.cpp @@ -106,7 +106,7 @@ Block flatten(const Block & block) res.insert(ColumnWithTypeAndName( is_const ? ColumnConst::create(std::move(column_array_of_element), block.rows()) - : std::move(column_array_of_element), + : column_array_of_element, std::make_shared(element_types[i]), nested_name)); } @@ -331,6 +331,5 @@ std::optional NestedColumnExtractHelper::extractColumn( Block sub_block(columns); nested_tables[new_column_name_prefix] = std::make_shared(Nested::flatten(sub_block)); return extractColumn(original_column_name, new_column_name_prefix, nested_names.second); - } } From 0c51bd9c23906865b4e67a27a097767c9d60ad69 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 28 Jun 2022 12:36:13 +0200 Subject: [PATCH 323/525] fix flaky test --- .../configs/store_cleanup.xml | 2 +- .../test_broken_detached_part_clean_up/test.py | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml b/tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml index 3b0260dd07a..5fbe87cce00 100644 --- a/tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml +++ b/tests/integration/test_broken_detached_part_clean_up/configs/store_cleanup.xml @@ -1,6 +1,6 @@ 0 - 15 + 60 1 + + + + json1 + + '{"k1":1, "k2": "some"}' + + + + json2 + + '{"col' || toString(number % 100) || '":' || toString(number) || '}' + + + + json3 + + '{"k1":[{"k2":"aaa","k3":[{"k4":"bbb"},{"k4":"ccc"}]},{"k2":"ddd","k3":[{"k4":"eee"},{"k4":"fff"}]}]}' + + + + CREATE TABLE t_json_1(data JSON) ENGINE = MergeTree ORDER BY tuple() CREATE TABLE t_json_2(data JSON) ENGINE = MergeTree ORDER BY tuple() CREATE TABLE t_json_3(data JSON) ENGINE = MergeTree ORDER BY tuple() - INSERT INTO t_json_1 SELECT materialize('{"k1":1, "k2": "some"}') FROM numbers(200000) - INSERT INTO t_json_2 SELECT '{"col' || toString(number % 100) || '":' || toString(number) || '}' FROM numbers(100000) - INSERT INTO t_json_3 SELECT materialize('{"k1":[{"k2":"aaa","k3":[{"k4":"bbb"},{"k4":"ccc"}]},{"k2":"ddd","k3":[{"k4":"eee"},{"k4":"fff"}]}]}') FROM numbers_mt(100000) + INSERT INTO t_json_1 SELECT materialize({json1}) FROM numbers(200000) + INSERT INTO t_json_2 SELECT {json2} FROM numbers(100000) + INSERT INTO t_json_3 SELECT materialize({json3}) FROM numbers_mt(100000) DROP TABLE IF EXISTS t_json_1 DROP TABLE IF EXISTS t_json_2 From 4f54abf67fec04c3f3e34d6b8b4c5e57118a0a96 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 28 Jun 2022 16:25:29 +0200 Subject: [PATCH 340/525] better names for macros --- base/base/defines.h | 16 +++++++-------- src/Databases/DatabaseAtomic.cpp | 2 +- src/Databases/DatabaseOnDisk.cpp | 4 ++-- src/Databases/DatabaseOrdinary.cpp | 12 +++++------ src/Databases/DatabaseReplicated.cpp | 2 +- .../DatabaseMaterializedPostgreSQL.cpp | 10 +++++----- src/Interpreters/DatabaseCatalog.cpp | 2 +- src/Interpreters/DatabaseCatalog.h | 4 ++-- src/Interpreters/MergeTreeTransaction.cpp | 2 +- src/Interpreters/TransactionLog.cpp | 20 +++++++++---------- .../01174_select_insert_isolation.sh | 2 +- 11 files changed, 38 insertions(+), 38 deletions(-) diff --git a/base/base/defines.h b/base/base/defines.h index d0417885df6..a707e965675 100644 --- a/base/base/defines.h +++ b/base/base/defines.h @@ -136,14 +136,14 @@ /// Macros for suppressing TSA warnings for specific reads/writes (instead of suppressing it for the whole function) /// Consider adding a comment before using these macros. -# define READ_NO_TSA(x) [&]() TSA_NO_THREAD_SAFETY_ANALYSIS -> const auto & { return (x); }() -# define WRITE_NO_TSA(x) [&]() TSA_NO_THREAD_SAFETY_ANALYSIS -> auto & { return (x); }() +# define TSA_SUPPRESS_WARNING_FOR_READ(x) [&]() TSA_NO_THREAD_SAFETY_ANALYSIS -> const auto & { return (x); }() +# define TSA_SUPPRESS_WARNING_FOR_WRITE(x) [&]() TSA_NO_THREAD_SAFETY_ANALYSIS -> auto & { return (x); }() /// This macro is useful when only one thread writes to a member /// and you want to read this member from the same thread without locking a mutex. -/// It's safe (because no concurrent writes are possible), but TSA generates a waring. -/// (Seems like there's no way to verify it, but it makes sense to distinguish it from READ_NO_TSA for readability) -# define READ_ONE_THREAD(x) READ_NO_TSA(x) +/// It's safe (because no concurrent writes are possible), but TSA generates a warning. +/// (Seems like there's no way to verify it, but it makes sense to distinguish it from TSA_SUPPRESS_WARNING_FOR_READ for readability) +# define TSA_READ_ONE_THREAD(x) TSA_SUPPRESS_WARNING_FOR_READ(x) #else # define TSA_GUARDED_BY(...) @@ -152,9 +152,9 @@ # define TSA_REQUIRES_SHARED(...) # define TSA_NO_THREAD_SAFETY_ANALYSIS -# define READ_NO_TSA(x) -# define WRITE_NO_TSA(x) -# define TSA_READ_UNSAFE(x) +# define TSA_SUPPRESS_WARNING_FOR_READ(x) +# define TSA_SUPPRESS_WARNING_FOR_WRITE(x) +# define TSA_READ_ONE_THREAD(x) #endif /// A template function for suppressing warnings about unused variables or function results. diff --git a/src/Databases/DatabaseAtomic.cpp b/src/Databases/DatabaseAtomic.cpp index b0ac9e0e999..e92530662b2 100644 --- a/src/Databases/DatabaseAtomic.cpp +++ b/src/Databases/DatabaseAtomic.cpp @@ -73,7 +73,7 @@ String DatabaseAtomic::getTableDataPath(const ASTCreateQuery & query) const void DatabaseAtomic::drop(ContextPtr) { - assert(READ_NO_TSA(tables).empty()); + assert(TSA_SUPPRESS_WARNING_FOR_READ(tables).empty()); try { fs::remove(path_to_metadata_symlink); diff --git a/src/Databases/DatabaseOnDisk.cpp b/src/Databases/DatabaseOnDisk.cpp index e9470a93af0..385fac37901 100644 --- a/src/Databases/DatabaseOnDisk.cpp +++ b/src/Databases/DatabaseOnDisk.cpp @@ -503,7 +503,7 @@ ASTPtr DatabaseOnDisk::getCreateDatabaseQuery() const void DatabaseOnDisk::drop(ContextPtr local_context) { - assert(READ_NO_TSA(tables).empty()); + assert(TSA_SUPPRESS_WARNING_FOR_READ(tables).empty()); if (local_context->getSettingsRef().force_remove_data_recursively_on_drop) { fs::remove_all(local_context->getPath() + getDataPath()); @@ -757,7 +757,7 @@ void DatabaseOnDisk::modifySettingsMetadata(const SettingsChanges & settings_cha writeChar('\n', statement_buf); String statement = statement_buf.str(); - String database_name_escaped = escapeForFileName(READ_NO_TSA(database_name)); /// FIXME + String database_name_escaped = escapeForFileName(TSA_SUPPRESS_WARNING_FOR_READ(database_name)); /// FIXME fs::path metadata_root_path = fs::canonical(query_context->getGlobalContext()->getPath()); fs::path metadata_file_tmp_path = fs::path(metadata_root_path) / "metadata" / (database_name_escaped + ".sql.tmp"); fs::path metadata_file_path = fs::path(metadata_root_path) / "metadata" / (database_name_escaped + ".sql"); diff --git a/src/Databases/DatabaseOrdinary.cpp b/src/Databases/DatabaseOrdinary.cpp index 9d6c86b1561..18b70222382 100644 --- a/src/Databases/DatabaseOrdinary.cpp +++ b/src/Databases/DatabaseOrdinary.cpp @@ -175,7 +175,7 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables { auto * create_query = ast->as(); /// NOTE No concurrent writes are possible during database loading - create_query->setDatabase(READ_NO_TSA(database_name)); + create_query->setDatabase(TSA_SUPPRESS_WARNING_FOR_READ(database_name)); /// Even if we don't load the table we can still mark the uuid of it as taken. if (create_query->uuid != UUIDHelpers::Nil) @@ -202,7 +202,7 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables return; } - QualifiedTableName qualified_name{READ_NO_TSA(database_name), create_query->getTable()}; + QualifiedTableName qualified_name{TSA_SUPPRESS_WARNING_FOR_READ(database_name), create_query->getTable()}; TableNamesSet loading_dependencies = getDependenciesSetFromCreateQuery(getContext(), qualified_name, ast); std::lock_guard lock{metadata.mutex}; @@ -235,12 +235,12 @@ void DatabaseOrdinary::loadTablesMetadata(ContextPtr local_context, ParsedTables size_t tables_in_database = objects_in_database - dictionaries_in_database; LOG_INFO(log, "Metadata processed, database {} has {} tables and {} dictionaries in total.", - READ_NO_TSA(database_name), tables_in_database, dictionaries_in_database); + TSA_SUPPRESS_WARNING_FOR_READ(database_name), tables_in_database, dictionaries_in_database); } void DatabaseOrdinary::loadTableFromMetadata(ContextMutablePtr local_context, const String & file_path, const QualifiedTableName & name, const ASTPtr & ast, bool force_restore) { - assert(name.database == READ_NO_TSA(database_name)); + assert(name.database == TSA_SUPPRESS_WARNING_FOR_READ(database_name)); const auto & create_query = ast->as(); tryAttachTable( @@ -257,7 +257,7 @@ void DatabaseOrdinary::startupTables(ThreadPool & thread_pool, bool /*force_rest LOG_INFO(log, "Starting up tables."); /// NOTE No concurrent writes are possible during database loading - const size_t total_tables = READ_NO_TSA(tables).size(); + const size_t total_tables = TSA_SUPPRESS_WARNING_FOR_READ(tables).size(); if (!total_tables) return; @@ -273,7 +273,7 @@ void DatabaseOrdinary::startupTables(ThreadPool & thread_pool, bool /*force_rest try { - for (const auto & table : READ_NO_TSA(tables)) + for (const auto & table : TSA_SUPPRESS_WARNING_FOR_READ(tables)) thread_pool.scheduleOrThrowOnError([&]() { startup_one_table(table.second); }); } catch (...) diff --git a/src/Databases/DatabaseReplicated.cpp b/src/Databases/DatabaseReplicated.cpp index c9031fcaf27..7edcc0b693f 100644 --- a/src/Databases/DatabaseReplicated.cpp +++ b/src/Databases/DatabaseReplicated.cpp @@ -213,7 +213,7 @@ ClusterPtr DatabaseReplicated::getClusterImpl() const treat_local_port_as_remote, cluster_auth_info.cluster_secure_connection, /*priority=*/1, - READ_NO_TSA(database_name), /// FIXME + TSA_SUPPRESS_WARNING_FOR_READ(database_name), /// FIXME cluster_auth_info.cluster_secret); } diff --git a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp index 4d4b310ab61..f5985aa9df9 100644 --- a/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp +++ b/src/Databases/PostgreSQL/DatabaseMaterializedPostgreSQL.cpp @@ -63,9 +63,9 @@ void DatabaseMaterializedPostgreSQL::startSynchronization() return; replication_handler = std::make_unique( - /* replication_identifier */ READ_NO_TSA(database_name), /// FIXME + /* replication_identifier */ TSA_SUPPRESS_WARNING_FOR_READ(database_name), /// FIXME remote_database_name, - READ_NO_TSA(database_name), /// FIXME + TSA_SUPPRESS_WARNING_FOR_READ(database_name), /// FIXME connection_info, getContext(), is_attach, @@ -100,7 +100,7 @@ void DatabaseMaterializedPostgreSQL::startSynchronization() { /// Nested table does not exist and will be created by replication thread. /// FIXME TSA - storage = std::make_shared(StorageID(READ_NO_TSA(database_name), table_name), getContext(), remote_database_name, table_name); + storage = std::make_shared(StorageID(TSA_SUPPRESS_WARNING_FOR_READ(database_name), table_name), getContext(), remote_database_name, table_name); } /// Cache MaterializedPostgreSQL wrapper over nested table. @@ -212,7 +212,7 @@ ASTPtr DatabaseMaterializedPostgreSQL::getCreateTableQueryImpl(const String & ta std::lock_guard lock(handler_mutex); /// FIXME TSA - auto storage = std::make_shared(StorageID(READ_NO_TSA(database_name), table_name), getContext(), remote_database_name, table_name); + auto storage = std::make_shared(StorageID(TSA_SUPPRESS_WARNING_FOR_READ(database_name), table_name), getContext(), remote_database_name, table_name); auto ast_storage = replication_handler->getCreateNestedTableQuery(storage.get(), table_name); assert_cast(ast_storage.get())->uuid = UUIDHelpers::generateV4(); return ast_storage; @@ -236,7 +236,7 @@ ASTPtr DatabaseMaterializedPostgreSQL::createAlterSettingsQuery(const SettingCha auto * alter = query->as(); alter->alter_object = ASTAlterQuery::AlterObjectType::DATABASE; - alter->setDatabase(READ_NO_TSA(database_name)); /// FIXME + alter->setDatabase(TSA_SUPPRESS_WARNING_FOR_READ(database_name)); /// FIXME alter->set(alter->command_list, command_list); return query; diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 4a0874f3050..a0579b813db 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -694,7 +694,7 @@ DDLGuardPtr DatabaseCatalog::getDDLGuard(const String & database, const String & { std::unique_lock lock(ddl_guards_mutex); /// TSA does not support unique_lock - auto db_guard_iter = WRITE_NO_TSA(ddl_guards).try_emplace(database).first; + auto db_guard_iter = TSA_SUPPRESS_WARNING_FOR_WRITE(ddl_guards).try_emplace(database).first; DatabaseGuard & db_guard = db_guard_iter->second; return std::make_unique(db_guard.first, db_guard.second, std::move(lock), table, database); } diff --git a/src/Interpreters/DatabaseCatalog.h b/src/Interpreters/DatabaseCatalog.h index 7daa70fac13..4468cc3a5d8 100644 --- a/src/Interpreters/DatabaseCatalog.h +++ b/src/Interpreters/DatabaseCatalog.h @@ -233,8 +233,8 @@ private: static std::unique_ptr database_catalog; explicit DatabaseCatalog(ContextMutablePtr global_context_); - void assertDatabaseExistsUnlocked(const String & database_name) const TSA_REQUIRES(databases_mutex) TSA_REQUIRES(databases_mutex); - void assertDatabaseDoesntExistUnlocked(const String & database_name) const TSA_REQUIRES(databases_mutex) TSA_REQUIRES(databases_mutex); + void assertDatabaseExistsUnlocked(const String & database_name) const TSA_REQUIRES(databases_mutex); + void assertDatabaseDoesntExistUnlocked(const String & database_name) const TSA_REQUIRES(databases_mutex); void shutdownImpl(); diff --git a/src/Interpreters/MergeTreeTransaction.cpp b/src/Interpreters/MergeTreeTransaction.cpp index 5b657b88194..432116feaf5 100644 --- a/src/Interpreters/MergeTreeTransaction.cpp +++ b/src/Interpreters/MergeTreeTransaction.cpp @@ -225,7 +225,7 @@ void MergeTreeTransaction::afterCommit(CSN assigned_csn) noexcept DataPartsVector removed_parts; RunningMutationsList committed_mutations; { - /// We don't really need mutex here, because no concurrent modifications of transaction object may happen after comit. + /// We don't really need mutex here, because no concurrent modifications of transaction object may happen after commit. std::lock_guard lock{mutex}; created_parts = creating_parts; removed_parts = removing_parts; diff --git a/src/Interpreters/TransactionLog.cpp b/src/Interpreters/TransactionLog.cpp index a3a3e336693..a08f940a748 100644 --- a/src/Interpreters/TransactionLog.cpp +++ b/src/Interpreters/TransactionLog.cpp @@ -125,7 +125,7 @@ void TransactionLog::loadEntries(Strings::const_iterator beg, Strings::const_ite LOG_TRACE(log, "Loading {} entries from {}: {}..{}", entries_count, zookeeper_path_log, *beg, last_entry); futures.reserve(entries_count); for (auto it = beg; it != end; ++it) - futures.emplace_back(READ_ONE_THREAD(zookeeper)->asyncGet(fs::path(zookeeper_path_log) / *it)); + futures.emplace_back(TSA_READ_ONE_THREAD(zookeeper)->asyncGet(fs::path(zookeeper_path_log) / *it)); std::vector> loaded; loaded.reserve(entries_count); @@ -210,7 +210,7 @@ void TransactionLog::runUpdatingThread() try { /// Do not wait if we have some transactions to finalize - if (READ_ONE_THREAD(unknown_state_list_loaded).empty()) + if (TSA_READ_ONE_THREAD(unknown_state_list_loaded).empty()) log_updated_event->wait(); if (stop_flag.load()) @@ -227,7 +227,7 @@ void TransactionLog::runUpdatingThread() /// It's possible that we connected to different [Zoo]Keeper instance /// so we may read a bit stale state. - READ_ONE_THREAD(zookeeper)->sync(zookeeper_path_log); + TSA_READ_ONE_THREAD(zookeeper)->sync(zookeeper_path_log); } loadNewEntries(); @@ -252,13 +252,13 @@ void TransactionLog::runUpdatingThread() void TransactionLog::loadNewEntries() { - Strings entries_list = READ_ONE_THREAD(zookeeper)->getChildren(zookeeper_path_log, nullptr, log_updated_event); + Strings entries_list = TSA_READ_ONE_THREAD(zookeeper)->getChildren(zookeeper_path_log, nullptr, log_updated_event); chassert(!entries_list.empty()); ::sort(entries_list.begin(), entries_list.end()); - auto it = std::upper_bound(entries_list.begin(), entries_list.end(), READ_ONE_THREAD(last_loaded_entry)); + auto it = std::upper_bound(entries_list.begin(), entries_list.end(), TSA_READ_ONE_THREAD(last_loaded_entry)); loadEntries(it, entries_list.end()); - chassert(READ_ONE_THREAD(last_loaded_entry) == entries_list.back()); - chassert(latest_snapshot == deserializeCSN(READ_ONE_THREAD(last_loaded_entry))); + chassert(TSA_READ_ONE_THREAD(last_loaded_entry) == entries_list.back()); + chassert(latest_snapshot == deserializeCSN(TSA_READ_ONE_THREAD(last_loaded_entry))); latest_snapshot.notify_all(); } @@ -278,7 +278,7 @@ void TransactionLog::removeOldEntries() /// TODO we will need a bit more complex logic for multiple hosts Coordination::Stat stat; - CSN old_tail_ptr = deserializeCSN(READ_ONE_THREAD(zookeeper)->get(zookeeper_path + "/tail_ptr", &stat)); + CSN old_tail_ptr = deserializeCSN(TSA_READ_ONE_THREAD(zookeeper)->get(zookeeper_path + "/tail_ptr", &stat)); CSN new_tail_ptr = getOldestSnapshot(); if (new_tail_ptr < old_tail_ptr) throw Exception(ErrorCodes::LOGICAL_ERROR, "Got unexpected tail_ptr {}, oldest snapshot is {}, it's a bug", old_tail_ptr, new_tail_ptr); @@ -287,7 +287,7 @@ void TransactionLog::removeOldEntries() /// (it's not supposed to fail with ZBADVERSION while there is only one host) LOG_TRACE(log, "Updating tail_ptr from {} to {}", old_tail_ptr, new_tail_ptr); - READ_ONE_THREAD(zookeeper)->set(zookeeper_path + "/tail_ptr", serializeCSN(new_tail_ptr), stat.version); + TSA_READ_ONE_THREAD(zookeeper)->set(zookeeper_path + "/tail_ptr", serializeCSN(new_tail_ptr), stat.version); tail_ptr.store(new_tail_ptr); /// Now we can find and remove old entries @@ -311,7 +311,7 @@ void TransactionLog::removeOldEntries() continue; LOG_TEST(log, "Removing entry {} -> {}", elem.second.tid, elem.second.csn); - auto code = READ_ONE_THREAD(zookeeper)->tryRemove(zookeeper_path_log + "/" + serializeCSN(elem.second.csn)); + auto code = TSA_READ_ONE_THREAD(zookeeper)->tryRemove(zookeeper_path_log + "/" + serializeCSN(elem.second.csn)); if (code == Coordination::Error::ZOK || code == Coordination::Error::ZNONODE) removed_entries.push_back(elem.first); } diff --git a/tests/queries/0_stateless/01174_select_insert_isolation.sh b/tests/queries/0_stateless/01174_select_insert_isolation.sh index d66741b08b7..cf1bb23f702 100755 --- a/tests/queries/0_stateless/01174_select_insert_isolation.sh +++ b/tests/queries/0_stateless/01174_select_insert_isolation.sh @@ -43,7 +43,7 @@ function thread_select() SELECT throwIf((SELECT sum(n) FROM mt) != 0) FORMAT Null; SELECT throwIf((SELECT count() FROM mt) % 2 != 0) FORMAT Null; SELECT arraySort(groupArray(n)), arraySort(groupArray(m)), arraySort(groupArray(_part)) FROM mt; - COMMIT;" + COMMIT;" | uniq | wc -l | grep -v "^1$" ||: done } From 9fc7c9f575f02112ea800462d70d9449e43c9d02 Mon Sep 17 00:00:00 2001 From: GruffGemini <43479425+GruffGemini@users.noreply.github.com> Date: Tue, 28 Jun 2022 17:55:16 +0300 Subject: [PATCH 341/525] Update group-by.md docs (group-by.md): fixed broken links --- docs/ru/sql-reference/statements/select/group-by.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/sql-reference/statements/select/group-by.md b/docs/ru/sql-reference/statements/select/group-by.md index 5a306e63955..01df1b969bf 100644 --- a/docs/ru/sql-reference/statements/select/group-by.md +++ b/docs/ru/sql-reference/statements/select/group-by.md @@ -264,10 +264,10 @@ GROUP BY вычисляет для каждого встретившегося ### Группировка во внешней памяти {#select-group-by-in-external-memory} Можно включить сброс временных данных на диск, чтобы ограничить потребление оперативной памяти при выполнении `GROUP BY`. -Настройка [max_bytes_before_external_group_by](../../../operations/settings/settings.md#settings-max_bytes_before_external_group_by) определяет пороговое значение потребления RAM, по достижении которого временные данные `GROUP BY` сбрасываются в файловую систему. Если равно 0 (по умолчанию) - значит выключено. +Настройка [max_bytes_before_external_group_by](../../../operations/settings/query-complexity.md#settings-max_bytes_before_external_group_by) определяет пороговое значение потребления RAM, по достижении которого временные данные `GROUP BY` сбрасываются в файловую систему. Если равно 0 (по умолчанию) - значит выключено. При использовании `max_bytes_before_external_group_by`, рекомендуем выставить `max_memory_usage` приблизительно в два раза больше. Это следует сделать, потому что агрегация выполняется в две стадии: чтение и формирование промежуточных данных (1) и слияние промежуточных данных (2). Сброс данных на файловую систему может производиться только на стадии 1. Если сброса временных данных не было, то на стадии 2 может потребляться до такого же объёма памяти, как на стадии 1. -Например, если [max_memory_usage](../../../operations/settings/settings.md#settings_max_memory_usage) было выставлено в 10000000000, и вы хотите использовать внешнюю агрегацию, то имеет смысл выставить `max_bytes_before_external_group_by` в 10000000000, а `max_memory_usage` в 20000000000. При срабатывании внешней агрегации (если был хотя бы один сброс временных данных в файловую систему) максимальное потребление оперативки будет лишь чуть-чуть больше `max_bytes_before_external_group_by`. +Например, если [max_memory_usage](../../../operations/settings/query-complexity.md#settings_max_memory_usage) было выставлено в 10000000000, и вы хотите использовать внешнюю агрегацию, то имеет смысл выставить `max_bytes_before_external_group_by` в 10000000000, а `max_memory_usage` в 20000000000. При срабатывании внешней агрегации (если был хотя бы один сброс временных данных в файловую систему) максимальное потребление оперативки будет лишь чуть-чуть больше `max_bytes_before_external_group_by`. При распределённой обработке запроса внешняя агрегация производится на удалённых серверах. Для того чтобы на сервере-инициаторе запроса использовалось немного оперативки, нужно выставить настройку `distributed_aggregation_memory_efficient` в 1. From e1ac7477c9a27f6cb38aac3be7c45a11610beebf Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Tue, 28 Jun 2022 17:51:47 +0200 Subject: [PATCH 342/525] Avoid killing terminate-instances task --- tests/ci/worker/init_runner.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/ci/worker/init_runner.sh b/tests/ci/worker/init_runner.sh index 13d873a0066..93c13b161de 100644 --- a/tests/ci/worker/init_runner.sh +++ b/tests/ci/worker/init_runner.sh @@ -50,7 +50,9 @@ ROOT_STAT=($(df / | awk '/\// {print $4 " " int($4/$2 * 100)}')) if [[ ${ROOT_STAT[0]} -lt 3000000 ]] || [[ ${ROOT_STAT[1]} -lt 5 ]]; then echo "Going to terminate the runner, it has ${ROOT_STAT[0]}KiB and ${ROOT_STAT[1]}% of free space on /" INSTANCE_ID=$(ec2metadata --instance-id) - ( sleep 10 && aws ec2 terminate-instances --instance-ids "$INSTANCE_ID" ) & + # We execute it with at to not have it as an orphan process + # GH Runners kill all remain processes + echo "sleep 10; aws ec2 terminate-instances --instance-ids $INSTANCE_ID" | at now exit 0 fi From 52d6b45a097d55889c884738a09457ec7b8996ec Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy Date: Tue, 28 Jun 2022 12:37:07 -0400 Subject: [PATCH 343/525] update poco --- contrib/poco | 2 +- contrib/poco-cmake/XML/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/poco b/contrib/poco index de35b9fd72b..56a6a6c08d4 160000 --- a/contrib/poco +++ b/contrib/poco @@ -1 +1 @@ -Subproject commit de35b9fd72b57127abdc3a5beaf0e320d767e356 +Subproject commit 56a6a6c08d4dab0262683264329c5db389ce2b82 diff --git a/contrib/poco-cmake/XML/CMakeLists.txt b/contrib/poco-cmake/XML/CMakeLists.txt index 45100f11eb7..97e655a0f04 100644 --- a/contrib/poco-cmake/XML/CMakeLists.txt +++ b/contrib/poco-cmake/XML/CMakeLists.txt @@ -11,6 +11,7 @@ add_library (_poco_xml_expat ${SRCS_EXPAT}) add_library (Poco::XML::Expat ALIAS _poco_xml_expat) target_include_directories (_poco_xml_expat PUBLIC "${LIBRARY_DIR}/XML/include") +target_include_directories (_poco_xml_expat PRIVATE "${LIBRARY_DIR}/Foundation/include") # Poco::XML From 30f136867fbfdee727decbe9fe4eb4a0ba19fde4 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Tue, 28 Jun 2022 16:51:39 +0000 Subject: [PATCH 344/525] Fix build --- base/base/iostream_debug_helpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/base/iostream_debug_helpers.h b/base/base/iostream_debug_helpers.h index 6b12afa4bed..3a3f1a741ad 100644 --- a/base/base/iostream_debug_helpers.h +++ b/base/base/iostream_debug_helpers.h @@ -120,7 +120,7 @@ Out & dumpDispatchPriorities(Out & out, T && x, std::decay_t(out, x); } -struct LowPriority { explicit LowPriority(void *) {} }; +struct LowPriority { LowPriority(void *) {} }; template Out & dumpDispatchPriorities(Out & out, T && x, LowPriority) From e78db730782ab74c588578b3c31cf2d7879c1c1c Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy Date: Tue, 28 Jun 2022 12:56:43 -0400 Subject: [PATCH 345/525] update poco --- contrib/poco | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/poco b/contrib/poco index 56a6a6c08d4..0e32cb42db7 160000 --- a/contrib/poco +++ b/contrib/poco @@ -1 +1 @@ -Subproject commit 56a6a6c08d4dab0262683264329c5db389ce2b82 +Subproject commit 0e32cb42db76ddaa76848470219056908053b676 From 2b11c0daa9c264ddc756ca6c6094347b3996ffe0 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Tue, 28 Jun 2022 19:26:15 +0200 Subject: [PATCH 346/525] Updated tests --- .../02345_partial_sort_transform_optimization.reference | 5 +++++ .../02345_partial_sort_transform_optimization.sql | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference index e6c99ff9291..7b50765be55 100644 --- a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.reference @@ -8,3 +8,8 @@ 0 999992 999992 0 999991 999991 0 999990 999990 +98974 +98973 +98972 +98971 +98970 diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql index e7855c47474..a53a352f57e 100644 --- a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql @@ -1,3 +1,3 @@ --- Regression for PartialSortingTransform optimization --- that requires at least 1500 rows. -select * from (select * from (select 0 a, toNullable(number) b, toString(number) c from numbers(1e6)) order by a desc, b desc, c limit 1500) limit 10; +-- Regression for PartialSortingTransform optimization that requires at least 1500 rows. +SELECT * FROM (SELECT * FROM (SELECT 0 a, toNullable(number) b, toString(number) c FROM numbers(1e6)) ORDER BY a DESC, b DESC, c LIMIT 1500) limit 10; +SELECT number FROM (SELECT number, 1 AS k FROM numbers(100000) ORDER BY k ASC, number DESC LIMIT 1025, 1023) LIMIT 5; From 0bb036dd211a488e5ff9a05458006fd1639debc7 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Tue, 28 Jun 2022 20:35:20 +0300 Subject: [PATCH 347/525] Update Dockerfile --- docker/test/integration/runner/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/test/integration/runner/Dockerfile b/docker/test/integration/runner/Dockerfile index 80a2158b17d..d6bd458a01b 100644 --- a/docker/test/integration/runner/Dockerfile +++ b/docker/test/integration/runner/Dockerfile @@ -3,6 +3,7 @@ FROM ubuntu:20.04 # ARG for quick switch to a given ubuntu mirror ARG apt_archive="http://archive.ubuntu.com" + RUN sed -i "s|http://archive.ubuntu.com|$apt_archive|g" /etc/apt/sources.list RUN apt-get update \ From 9b4da86e2e5cf74a8b5b1205bbabc909e357d654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mar=C3=ADn?= Date: Tue, 28 Jun 2022 20:12:07 +0200 Subject: [PATCH 348/525] Adapt table creation with replication to avoid issues with pre-22.4 replicas --- src/Storages/StorageReplicatedMergeTree.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 6895142b2a4..c66fa16f323 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -598,6 +598,9 @@ void StorageReplicatedMergeTree::createNewZooKeeperNodes() auto zookeeper = getZooKeeper(); std::vector futures; + /// We need to confirm /quorum exists here although it's called under createTableIfNotExists because in older CH releases (pre 22.4) + /// it was created here, so if metadata creation is done by an older replica the node might not exists when reaching this call + futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum", String(), zkutil::CreateMode::Persistent)); futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum/parallel", String(), zkutil::CreateMode::Persistent)); /// Nodes for remote fs zero-copy replication From f692ead6adf1e1e1afcb20e8adef2649df8d5376 Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Tue, 28 Jun 2022 19:19:06 +0000 Subject: [PATCH 349/525] Don't use std::unique_lock unless we have to Replace where possible by std::lock_guard which is more light-weight. --- base/base/BorrowedObjectPool.h | 8 ++++---- src/Access/KerberosInit.cpp | 2 +- src/Common/OvercommitTracker.cpp | 2 +- src/Common/PoolBase.h | 4 ++-- src/Common/SystemLogBase.cpp | 2 +- src/Common/ThreadPool.cpp | 10 +++++----- src/Coordination/KeeperServer.cpp | 2 +- src/Daemon/BaseDaemon.cpp | 2 +- src/Databases/MySQL/DatabaseMaterializedMySQL.cpp | 4 ++-- src/Dictionaries/CacheDictionaryUpdateQueue.cpp | 4 ++-- src/Disks/DiskCacheWrapper.cpp | 4 ++-- src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp | 2 +- .../ObjectStorages/S3/ProxyResolverConfiguration.cpp | 4 ++-- src/IO/HTTPCommon.cpp | 2 +- src/IO/S3Common.cpp | 4 ++-- src/Interpreters/AsynchronousInsertQueue.cpp | 4 ++-- src/Interpreters/DatabaseCatalog.cpp | 2 +- src/Interpreters/EmbeddedDictionaries.cpp | 2 +- src/Interpreters/MergeJoin.cpp | 6 +++--- src/Interpreters/Set.cpp | 2 +- .../Formats/Impl/ParallelFormattingOutputFormat.cpp | 4 ++-- .../Formats/Impl/ParallelFormattingOutputFormat.h | 2 +- .../Formats/Impl/ParallelParsingInputFormat.cpp | 4 ++-- src/Server/HTTP/HTTPServerConnection.cpp | 2 +- .../ReplicatedMergeTreeRestartingThread.cpp | 2 +- src/Storages/RocksDB/StorageEmbeddedRocksDB.cpp | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 12 ++++++------ src/Storages/WindowView/StorageWindowView.cpp | 4 ++-- 28 files changed, 52 insertions(+), 52 deletions(-) diff --git a/base/base/BorrowedObjectPool.h b/base/base/BorrowedObjectPool.h index 10dcc41d862..bb4c9cd1c21 100644 --- a/base/base/BorrowedObjectPool.h +++ b/base/base/BorrowedObjectPool.h @@ -89,7 +89,7 @@ public: inline void returnObject(T && object_to_return) { { - std::lock_guard lock(objects_mutex); + std::lock_guard lock(objects_mutex); objects.emplace_back(std::move(object_to_return)); --borrowed_objects_size; @@ -107,14 +107,14 @@ public: /// Allocated objects size by the pool. If allocatedObjectsSize == maxSize then pool is full. inline size_t allocatedObjectsSize() const { - std::unique_lock lock(objects_mutex); + std::lock_guard lock(objects_mutex); return allocated_objects_size; } /// Returns allocatedObjectsSize == maxSize inline bool isFull() const { - std::unique_lock lock(objects_mutex); + std::lock_guard lock(objects_mutex); return allocated_objects_size == max_size; } @@ -122,7 +122,7 @@ public: /// Then client will wait during borrowObject function call. inline size_t borrowedObjectsSize() const { - std::unique_lock lock(objects_mutex); + std::lock_guard lock(objects_mutex); return borrowed_objects_size; } diff --git a/src/Access/KerberosInit.cpp b/src/Access/KerberosInit.cpp index ace03a5e0b5..1bba82bc46f 100644 --- a/src/Access/KerberosInit.cpp +++ b/src/Access/KerberosInit.cpp @@ -223,7 +223,7 @@ void kerberosInit(const String & keytab_file, const String & principal, const St { // Using mutex to prevent cache file corruptions static std::mutex kinit_mtx; - std::unique_lock lck(kinit_mtx); + std::lock_guard lck(kinit_mtx); KerberosInit k_init; k_init.init(keytab_file, principal, cache_name); } diff --git a/src/Common/OvercommitTracker.cpp b/src/Common/OvercommitTracker.cpp index 4faed833428..0dea6589adc 100644 --- a/src/Common/OvercommitTracker.cpp +++ b/src/Common/OvercommitTracker.cpp @@ -137,7 +137,7 @@ void OvercommitTracker::onQueryStop(MemoryTracker * tracker) { DENY_ALLOCATIONS_IN_SCOPE; - std::unique_lock lk(overcommit_m); + std::lock_guard lk(overcommit_m); if (picked_tracker == tracker) { LOG_DEBUG_SAFE(getLogger(), "Picked query stopped"); diff --git a/src/Common/PoolBase.h b/src/Common/PoolBase.h index 4b4e2c5cfa7..dac126fb5d7 100644 --- a/src/Common/PoolBase.h +++ b/src/Common/PoolBase.h @@ -55,7 +55,7 @@ private: explicit PoolEntryHelper(PooledObject & data_) : data(data_) { data.in_use = true; } ~PoolEntryHelper() { - std::unique_lock lock(data.pool.mutex); + std::lock_guard lock(data.pool.mutex); data.in_use = false; data.pool.available.notify_one(); } @@ -163,7 +163,7 @@ public: inline size_t size() { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); return items.size(); } diff --git a/src/Common/SystemLogBase.cpp b/src/Common/SystemLogBase.cpp index 7128d00714c..67aedbd5670 100644 --- a/src/Common/SystemLogBase.cpp +++ b/src/Common/SystemLogBase.cpp @@ -139,7 +139,7 @@ void SystemLogBase::flush(bool force) uint64_t this_thread_requested_offset; { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (is_shutdown) return; diff --git a/src/Common/ThreadPool.cpp b/src/Common/ThreadPool.cpp index a76037ae5cf..3f5091af0c9 100644 --- a/src/Common/ThreadPool.cpp +++ b/src/Common/ThreadPool.cpp @@ -209,7 +209,7 @@ template void ThreadPoolImpl::finalize() { { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); shutdown = true; } @@ -224,14 +224,14 @@ void ThreadPoolImpl::finalize() template size_t ThreadPoolImpl::active() const { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); return scheduled_jobs; } template bool ThreadPoolImpl::finished() const { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); return shutdown; } @@ -290,7 +290,7 @@ void ThreadPoolImpl::worker(typename std::list::iterator thread_ job = {}; { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (!first_exception) first_exception = std::current_exception(); // NOLINT if (shutdown_on_exception) @@ -305,7 +305,7 @@ void ThreadPoolImpl::worker(typename std::list::iterator thread_ } { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); --scheduled_jobs; if (threads.size() > scheduled_jobs + max_free_threads) diff --git a/src/Coordination/KeeperServer.cpp b/src/Coordination/KeeperServer.cpp index d4c188fe8d9..8a46d8ee296 100644 --- a/src/Coordination/KeeperServer.cpp +++ b/src/Coordination/KeeperServer.cpp @@ -576,7 +576,7 @@ nuraft::cb_func::ReturnCode KeeperServer::callbackFunc(nuraft::cb_func::Type typ auto set_initialized = [this]() { - std::unique_lock lock(initialized_mutex); + std::lock_guard lock(initialized_mutex); initialized_flag = true; initialized_cv.notify_all(); }; diff --git a/src/Daemon/BaseDaemon.cpp b/src/Daemon/BaseDaemon.cpp index e731787a5c1..445aa4463bd 100644 --- a/src/Daemon/BaseDaemon.cpp +++ b/src/Daemon/BaseDaemon.cpp @@ -925,7 +925,7 @@ void BaseDaemon::handleSignal(int signal_id) signal_id == SIGQUIT || signal_id == SIGTERM) { - std::unique_lock lock(signal_handler_mutex); + std::lock_guard lock(signal_handler_mutex); { ++terminate_signals_counter; sigint_signals_counter += signal_id == SIGINT; diff --git a/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp b/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp index 13f55eab9e2..6fdedf6d38e 100644 --- a/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp +++ b/src/Databases/MySQL/DatabaseMaterializedMySQL.cpp @@ -39,7 +39,7 @@ DatabaseMaterializedMySQL::DatabaseMaterializedMySQL( void DatabaseMaterializedMySQL::rethrowExceptionIfNeeded() const { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (!settings->allows_query_when_mysql_lost && exception) { @@ -59,7 +59,7 @@ void DatabaseMaterializedMySQL::rethrowExceptionIfNeeded() const void DatabaseMaterializedMySQL::setException(const std::exception_ptr & exception_) { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); exception = exception_; } diff --git a/src/Dictionaries/CacheDictionaryUpdateQueue.cpp b/src/Dictionaries/CacheDictionaryUpdateQueue.cpp index 2077f846f09..aee1f0de2f6 100644 --- a/src/Dictionaries/CacheDictionaryUpdateQueue.cpp +++ b/src/Dictionaries/CacheDictionaryUpdateQueue.cpp @@ -135,14 +135,14 @@ void CacheDictionaryUpdateQueue::updateThreadFunction() /// Notify thread about finished updating the bunch of ids /// where their own ids were included. - std::unique_lock lock(update_mutex); + std::lock_guard lock(update_mutex); unit_to_update->is_done = true; is_update_finished.notify_all(); } catch (...) { - std::unique_lock lock(update_mutex); + std::lock_guard lock(update_mutex); unit_to_update->current_exception = std::current_exception(); // NOLINT(bugprone-throw-keyword-missing) is_update_finished.notify_all(); diff --git a/src/Disks/DiskCacheWrapper.cpp b/src/Disks/DiskCacheWrapper.cpp index 8e355f70432..45c98224966 100644 --- a/src/Disks/DiskCacheWrapper.cpp +++ b/src/Disks/DiskCacheWrapper.cpp @@ -90,7 +90,7 @@ DiskCacheWrapper::DiskCacheWrapper( std::shared_ptr DiskCacheWrapper::acquireDownloadMetadata(const String & path) const { - std::unique_lock lock{mutex}; + std::lock_guard lock{mutex}; auto it = file_downloads.find(path); if (it != file_downloads.end()) @@ -101,7 +101,7 @@ std::shared_ptr DiskCacheWrapper::acquireDownloadMetadata( new FileDownloadMetadata, [this, path] (FileDownloadMetadata * p) { - std::unique_lock erase_lock{mutex}; + std::lock_guard erase_lock{mutex}; file_downloads.erase(path); delete p; }); diff --git a/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp b/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp index 32e6fe5834d..22502a6e2d1 100644 --- a/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp +++ b/src/Disks/ObjectStorages/MetadataStorageFromDisk.cpp @@ -56,7 +56,7 @@ void MetadataStorageFromDiskTransaction::commit() toString(state), toString(MetadataFromDiskTransactionState::PREPARING)); { - std::unique_lock lock(metadata_storage.metadata_mutex); + std::lock_guard lock(metadata_storage.metadata_mutex); for (size_t i = 0; i < operations.size(); ++i) { try diff --git a/src/Disks/ObjectStorages/S3/ProxyResolverConfiguration.cpp b/src/Disks/ObjectStorages/S3/ProxyResolverConfiguration.cpp index 983e36489e6..109ccf0eba7 100644 --- a/src/Disks/ObjectStorages/S3/ProxyResolverConfiguration.cpp +++ b/src/Disks/ObjectStorages/S3/ProxyResolverConfiguration.cpp @@ -28,7 +28,7 @@ ClientConfigurationPerRequest ProxyResolverConfiguration::getConfiguration(const { LOG_DEBUG(&Poco::Logger::get("AWSClient"), "Obtain proxy using resolver: {}", endpoint.toString()); - std::unique_lock lock(cache_mutex); + std::lock_guard lock(cache_mutex); std::chrono::time_point now = std::chrono::system_clock::now(); @@ -110,7 +110,7 @@ void ProxyResolverConfiguration::errorReport(const ClientConfigurationPerRequest if (config.proxy_host.empty()) return; - std::unique_lock lock(cache_mutex); + std::lock_guard lock(cache_mutex); if (!cache_ttl.count() || !cache_valid) return; diff --git a/src/IO/HTTPCommon.cpp b/src/IO/HTTPCommon.cpp index 7ed2f343209..b31ee08eaf5 100644 --- a/src/IO/HTTPCommon.cpp +++ b/src/IO/HTTPCommon.cpp @@ -212,7 +212,7 @@ namespace size_t max_connections_per_endpoint, bool resolve_host = true) { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); const std::string & host = uri.getHost(); UInt16 port = uri.getPort(); bool https = isHTTPS(uri); diff --git a/src/IO/S3Common.cpp b/src/IO/S3Common.cpp index a58732287e9..cea03277c91 100644 --- a/src/IO/S3Common.cpp +++ b/src/IO/S3Common.cpp @@ -148,7 +148,7 @@ public: { String credentials_string; { - std::unique_lock locker(token_mutex); + std::lock_guard locker(token_mutex); LOG_TRACE(logger, "Getting default credentials for EC2 instance."); auto result = GetResourceWithAWSWebServiceResult(endpoint.c_str(), EC2_SECURITY_CREDENTIALS_RESOURCE, nullptr); @@ -194,7 +194,7 @@ public: String new_token; { - std::unique_lock locker(token_mutex); + std::lock_guard locker(token_mutex); Aws::StringStream ss; ss << endpoint << EC2_IMDS_TOKEN_RESOURCE; diff --git a/src/Interpreters/AsynchronousInsertQueue.cpp b/src/Interpreters/AsynchronousInsertQueue.cpp index fd8f252d139..ae39c7035dd 100644 --- a/src/Interpreters/AsynchronousInsertQueue.cpp +++ b/src/Interpreters/AsynchronousInsertQueue.cpp @@ -215,7 +215,7 @@ void AsynchronousInsertQueue::push(ASTPtr query, ContextPtr query_context) } } - std::unique_lock write_lock(rwlock); + std::lock_guard write_lock(rwlock); auto it = queue.emplace(key, std::make_shared()).first; pushImpl(std::move(entry), it); } @@ -343,7 +343,7 @@ void AsynchronousInsertQueue::cleanup() if (!keys_to_remove.empty()) { - std::unique_lock write_lock(rwlock); + std::lock_guard write_lock(rwlock); size_t total_removed = 0; for (const auto & key : keys_to_remove) diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index 13340221f38..4cd61f7af32 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -698,7 +698,7 @@ std::unique_lock DatabaseCatalog::getExclusiveDDLGuardForData { DDLGuards::iterator db_guard_iter; { - std::unique_lock lock(ddl_guards_mutex); + std::lock_guard lock(ddl_guards_mutex); db_guard_iter = ddl_guards.try_emplace(database).first; assert(db_guard_iter->second.first.contains("")); } diff --git a/src/Interpreters/EmbeddedDictionaries.cpp b/src/Interpreters/EmbeddedDictionaries.cpp index b9bc5cd1e5c..0b2efaf3dbe 100644 --- a/src/Interpreters/EmbeddedDictionaries.cpp +++ b/src/Interpreters/EmbeddedDictionaries.cpp @@ -60,7 +60,7 @@ bool EmbeddedDictionaries::reloadDictionary( bool EmbeddedDictionaries::reloadImpl(const bool throw_on_error, const bool force_reload) { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); /** If you can not update the directories, then despite this, do not throw an exception (use the old directories). * If there are no old correct directories, then when using functions that depend on them, diff --git a/src/Interpreters/MergeJoin.cpp b/src/Interpreters/MergeJoin.cpp index 3dd6b7de574..9ddd4ac0be0 100644 --- a/src/Interpreters/MergeJoin.cpp +++ b/src/Interpreters/MergeJoin.cpp @@ -580,7 +580,7 @@ void MergeJoin::mergeRightBlocks() void MergeJoin::mergeInMemoryRightBlocks() { - std::unique_lock lock(rwlock); + std::lock_guard lock(rwlock); if (right_blocks.empty()) return; @@ -613,7 +613,7 @@ void MergeJoin::mergeInMemoryRightBlocks() void MergeJoin::mergeFlushedRightBlocks() { - std::unique_lock lock(rwlock); + std::lock_guard lock(rwlock); auto callback = [&](const Block & block) { @@ -638,7 +638,7 @@ bool MergeJoin::saveRightBlock(Block && block) { if (is_in_memory) { - std::unique_lock lock(rwlock); + std::lock_guard lock(rwlock); if (!is_in_memory) { diff --git a/src/Interpreters/Set.cpp b/src/Interpreters/Set.cpp index 28bbea54110..ab443f58cf2 100644 --- a/src/Interpreters/Set.cpp +++ b/src/Interpreters/Set.cpp @@ -103,7 +103,7 @@ void NO_INLINE Set::insertFromBlockImplCase( void Set::setHeader(const ColumnsWithTypeAndName & header) { - std::unique_lock lock(rwlock); + std::lock_guard lock(rwlock); if (!data.empty()) return; diff --git a/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.cpp b/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.cpp index 34b9305c0e1..32ab391cf8c 100644 --- a/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.cpp +++ b/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.cpp @@ -20,7 +20,7 @@ namespace DB } { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (background_exception) std::rethrow_exception(background_exception); @@ -30,7 +30,7 @@ namespace DB void ParallelFormattingOutputFormat::addChunk(Chunk chunk, ProcessingUnitType type, bool can_throw_exception) { { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (background_exception && can_throw_exception) std::rethrow_exception(background_exception); } diff --git a/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.h b/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.h index edde79be896..fb58f5765c1 100644 --- a/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.h +++ b/src/Processors/Formats/Impl/ParallelFormattingOutputFormat.h @@ -236,7 +236,7 @@ private: void onBackgroundException() { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (!background_exception) { background_exception = std::current_exception(); diff --git a/src/Processors/Formats/Impl/ParallelParsingInputFormat.cpp b/src/Processors/Formats/Impl/ParallelParsingInputFormat.cpp index d3e167d35c6..318bcaed466 100644 --- a/src/Processors/Formats/Impl/ParallelParsingInputFormat.cpp +++ b/src/Processors/Formats/Impl/ParallelParsingInputFormat.cpp @@ -121,7 +121,7 @@ void ParallelParsingInputFormat::parserThreadFunction(ThreadGroupStatusPtr threa void ParallelParsingInputFormat::onBackgroundException(size_t offset) { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (!background_exception) { background_exception = std::current_exception(); @@ -233,7 +233,7 @@ Chunk ParallelParsingInputFormat::generate() else { // Pass the unit back to the segmentator. - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); unit.status = READY_TO_INSERT; segmentator_condvar.notify_all(); } diff --git a/src/Server/HTTP/HTTPServerConnection.cpp b/src/Server/HTTP/HTTPServerConnection.cpp index 6b2ef32f6a4..92a994b3a4e 100644 --- a/src/Server/HTTP/HTTPServerConnection.cpp +++ b/src/Server/HTTP/HTTPServerConnection.cpp @@ -26,7 +26,7 @@ void HTTPServerConnection::run() { try { - std::unique_lock lock(mutex); + std::lock_guard lock(mutex); if (!stopped && tcp_server.isOpen() && session.connected()) { HTTPServerResponse response(session); diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp index 4f500208215..dfb5eb0bd69 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp @@ -189,7 +189,7 @@ bool ReplicatedMergeTreeRestartingThread::tryStartup() } catch (...) { - std::unique_lock lock(storage.last_queue_update_exception_lock); + std::lock_guard lock(storage.last_queue_update_exception_lock); storage.last_queue_update_exception = getCurrentExceptionMessage(false); throw; } diff --git a/src/Storages/RocksDB/StorageEmbeddedRocksDB.cpp b/src/Storages/RocksDB/StorageEmbeddedRocksDB.cpp index 81cb58e4f5e..1bfaabe142b 100644 --- a/src/Storages/RocksDB/StorageEmbeddedRocksDB.cpp +++ b/src/Storages/RocksDB/StorageEmbeddedRocksDB.cpp @@ -336,7 +336,7 @@ StorageEmbeddedRocksDB::StorageEmbeddedRocksDB(const StorageID & table_id_, void StorageEmbeddedRocksDB::truncate(const ASTPtr &, const StorageMetadataPtr & , ContextPtr, TableExclusiveLockHolder &) { - std::unique_lock lock(rocksdb_ptr_mx); + std::lock_guard lock(rocksdb_ptr_mx); rocksdb_ptr->Close(); rocksdb_ptr = nullptr; diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 6895142b2a4..7cdfaa08e71 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -2969,7 +2969,7 @@ void StorageReplicatedMergeTree::cloneReplicaIfNeeded(zkutil::ZooKeeperPtr zooke String StorageReplicatedMergeTree::getLastQueueUpdateException() const { - std::unique_lock lock(last_queue_update_exception_lock); + std::lock_guard lock(last_queue_update_exception_lock); return last_queue_update_exception; } @@ -2991,7 +2991,7 @@ void StorageReplicatedMergeTree::queueUpdatingTask() { tryLogCurrentException(log, __PRETTY_FUNCTION__); - std::unique_lock lock(last_queue_update_exception_lock); + std::lock_guard lock(last_queue_update_exception_lock); last_queue_update_exception = getCurrentExceptionMessage(false); if (e.code == Coordination::Error::ZSESSIONEXPIRED) @@ -3006,7 +3006,7 @@ void StorageReplicatedMergeTree::queueUpdatingTask() { tryLogCurrentException(log, __PRETTY_FUNCTION__); - std::unique_lock lock(last_queue_update_exception_lock); + std::lock_guard lock(last_queue_update_exception_lock); last_queue_update_exception = getCurrentExceptionMessage(false); queue_updating_task->scheduleAfter(QUEUE_UPDATE_ERROR_SLEEP_MS); @@ -4340,7 +4340,7 @@ void StorageReplicatedMergeTree::shutdown() /// Ask all parts exchange handlers to finish asap. New ones will fail to start data_parts_exchange_ptr->blocker.cancelForever(); /// Wait for all of them - std::unique_lock lock(data_parts_exchange_ptr->rwlock); + std::lock_guard lock(data_parts_exchange_ptr->rwlock); } } @@ -7399,7 +7399,7 @@ void StorageReplicatedMergeTree::checkBrokenDisks() if (disk_ptr->isBroken()) { { - std::unique_lock lock(last_broken_disks_mutex); + std::lock_guard lock(last_broken_disks_mutex); if (!last_broken_disks.insert(disk_ptr->getName()).second) continue; } @@ -7419,7 +7419,7 @@ void StorageReplicatedMergeTree::checkBrokenDisks() else { { - std::unique_lock lock(last_broken_disks_mutex); + std::lock_guard lock(last_broken_disks_mutex); if (last_broken_disks.erase(disk_ptr->getName()) > 0) LOG_INFO( log, diff --git a/src/Storages/WindowView/StorageWindowView.cpp b/src/Storages/WindowView/StorageWindowView.cpp index cfb19869074..5f597737e4a 100644 --- a/src/Storages/WindowView/StorageWindowView.cpp +++ b/src/Storages/WindowView/StorageWindowView.cpp @@ -1017,7 +1017,7 @@ void StorageWindowView::threadFuncFireProc() if (shutdown_called) return; - std::unique_lock lock(fire_signal_mutex); + std::lock_guard lock(fire_signal_mutex); UInt32 timestamp_now = std::time(nullptr); while (next_fire_signal <= timestamp_now) @@ -1049,7 +1049,7 @@ void StorageWindowView::threadFuncFireProc() void StorageWindowView::threadFuncFireEvent() { - std::unique_lock lock(fire_signal_mutex); + std::lock_guard lock(fire_signal_mutex); LOG_TRACE(log, "Fire events: {}", fire_signal.size()); From d0d72e0b5e7bc02d57c2175c3e558f328dd6c021 Mon Sep 17 00:00:00 2001 From: Julian Gilyadov Date: Tue, 28 Jun 2022 15:27:53 -0400 Subject: [PATCH 350/525] Implement L2Squared Distance and Norm --- src/Functions/array/arrayDistance.cpp | 49 +++++-- src/Functions/array/arrayNorm.cpp | 20 +++ src/Functions/vectorFunctions.cpp | 129 ++++++++++++++++++ .../02011_tuple_vector_functions.reference | 5 + .../02011_tuple_vector_functions.sql | 5 + .../02282_array_distance.reference | 43 +++--- .../0_stateless/02282_array_distance.sql | 11 +- .../0_stateless/02283_array_norm.reference | 27 ++-- .../queries/0_stateless/02283_array_norm.sql | 8 +- 9 files changed, 251 insertions(+), 46 deletions(-) diff --git a/src/Functions/array/arrayDistance.cpp b/src/Functions/array/arrayDistance.cpp index 3f7900b6c62..fda93bceedd 100644 --- a/src/Functions/array/arrayDistance.cpp +++ b/src/Functions/array/arrayDistance.cpp @@ -70,6 +70,33 @@ struct L2Distance } }; +struct L2SquaredDistance +{ + static inline String name = "L2Squared"; + + struct ConstParams + { + }; + + template + struct State + { + FloatType sum = 0; + }; + + template + static void accumulate(State & state, ResultType x, ResultType y, const ConstParams &) + { + state.sum += (x - y) * (x - y); + } + + template + static ResultType finalize(const State & state, const ConstParams &) + { + return state.sum; + } +}; + struct LpDistance { static inline String name = "Lp"; @@ -195,12 +222,12 @@ public: ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Arguments of function {} has nested type {}. " "Support: UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32, Float64.", - getName(), common_type->getName()); + getName(), + common_type->getName()); } } - ColumnPtr - executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr & result_type, size_t input_rows_count) const override + ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr & result_type, size_t input_rows_count) const override { switch (result_type->getTypeId()) { @@ -248,7 +275,8 @@ private: ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Arguments of function {} has nested type {}. " "Support: UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32, Float64.", - getName(), type_x->getName()); + getName(), + type_x->getName()); } } @@ -273,7 +301,8 @@ private: ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Arguments of function {} has nested type {}. " "Support: UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32, Float64.", - getName(), type_y->getName()); + getName(), + type_y->getName()); } } @@ -310,7 +339,9 @@ private: throw Exception( ErrorCodes::SIZES_OF_ARRAYS_DOESNT_MATCH, "Arguments of function {} have different array sizes: {} and {}", - getName(), offsets_x[row] - prev_offset, offsets_y[row] - prev_offset); + getName(), + offsets_x[row] - prev_offset, + offsets_y[row] - prev_offset); } } @@ -360,7 +391,9 @@ private: throw Exception( ErrorCodes::SIZES_OF_ARRAYS_DOESNT_MATCH, "Arguments of function {} have different array sizes: {} and {}", - getName(), offsets_x[0], offsets_y[row] - prev_offset); + getName(), + offsets_x[0], + offsets_y[row] - prev_offset); } prev_offset = offsets_y[row]; } @@ -430,8 +463,8 @@ LpDistance::ConstParams FunctionArrayDistance::initConstParams(const /// These functions are used by TupleOrArrayFunction FunctionPtr createFunctionArrayL1Distance(ContextPtr context_) { return FunctionArrayDistance::create(context_); } FunctionPtr createFunctionArrayL2Distance(ContextPtr context_) { return FunctionArrayDistance::create(context_); } +FunctionPtr createFunctionArrayL2SquaredDistance(ContextPtr context_) { return FunctionArrayDistance::create(context_); } FunctionPtr createFunctionArrayLpDistance(ContextPtr context_) { return FunctionArrayDistance::create(context_); } FunctionPtr createFunctionArrayLinfDistance(ContextPtr context_) { return FunctionArrayDistance::create(context_); } FunctionPtr createFunctionArrayCosineDistance(ContextPtr context_) { return FunctionArrayDistance::create(context_); } - } diff --git a/src/Functions/array/arrayNorm.cpp b/src/Functions/array/arrayNorm.cpp index 2142abc4c90..a9d1885c136 100644 --- a/src/Functions/array/arrayNorm.cpp +++ b/src/Functions/array/arrayNorm.cpp @@ -57,6 +57,25 @@ struct L2Norm } }; +struct L2SquaredNorm +{ + static inline String name = "L2Squared"; + + struct ConstParams {}; + + template + inline static ResultType accumulate(ResultType result, ResultType value, const ConstParams &) + { + return result + value * value; + } + + template + inline static ResultType finalize(ResultType result, const ConstParams &) + { + return result; + } +}; + struct LpNorm { @@ -265,6 +284,7 @@ LpNorm::ConstParams FunctionArrayNorm::initConstParams(const ColumnsWith /// These functions are used by TupleOrArrayFunction FunctionPtr createFunctionArrayL1Norm(ContextPtr context_) { return FunctionArrayNorm::create(context_); } FunctionPtr createFunctionArrayL2Norm(ContextPtr context_) { return FunctionArrayNorm::create(context_); } +FunctionPtr createFunctionArrayL2SquaredNorm(ContextPtr context_) { return FunctionArrayNorm::create(context_); } FunctionPtr createFunctionArrayLpNorm(ContextPtr context_) { return FunctionArrayNorm::create(context_); } FunctionPtr createFunctionArrayLinfNorm(ContextPtr context_) { return FunctionArrayNorm::create(context_); } diff --git a/src/Functions/vectorFunctions.cpp b/src/Functions/vectorFunctions.cpp index 411b30040cc..d26eb40e1a8 100644 --- a/src/Functions/vectorFunctions.cpp +++ b/src/Functions/vectorFunctions.cpp @@ -25,6 +25,7 @@ struct DivideName { static constexpr auto name = "divide"; }; struct L1Label { static constexpr auto name = "1"; }; struct L2Label { static constexpr auto name = "2"; }; +struct L2SquaredLabel { static constexpr auto name = "2Squared"; }; struct LinfLabel { static constexpr auto name = "inf"; }; struct LpLabel { static constexpr auto name = "p"; }; @@ -625,6 +626,108 @@ public: }; using FunctionL2Norm = FunctionLNorm; +template <> +class FunctionLNorm : public ITupleFunction +{ +public: + static constexpr auto name = "L2SquaredNorm"; + + explicit FunctionLNorm(ContextPtr context_) : ITupleFunction(context_) {} + static FunctionPtr create(ContextPtr context_) { return std::make_shared(context_); } + + String getName() const override { return name; } + + size_t getNumberOfArguments() const override { return 1; } + + DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override + { + const auto * cur_tuple = checkAndGetDataType(arguments[0].type.get()); + + if (!cur_tuple) + throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Argument 0 of function {} should be tuple, got {}", + getName(), arguments[0].type->getName()); + + const auto & cur_types = cur_tuple->getElements(); + + Columns cur_elements; + if (arguments[0].column) + cur_elements = getTupleElements(*arguments[0].column); + + size_t tuple_size = cur_types.size(); + if (tuple_size == 0) + return std::make_shared(); + + auto multiply = FunctionFactory::instance().get("multiply", context); + auto plus = FunctionFactory::instance().get("plus", context); + DataTypePtr res_type; + for (size_t i = 0; i < tuple_size; ++i) + { + try + { + ColumnWithTypeAndName cur{cur_elements.empty() ? nullptr : cur_elements[i], cur_types[i], {}}; + auto elem_multiply = multiply->build(ColumnsWithTypeAndName{cur, cur}); + + if (i == 0) + { + res_type = elem_multiply->getResultType(); + continue; + } + + ColumnWithTypeAndName left_type{res_type, {}}; + ColumnWithTypeAndName right_type{elem_multiply->getResultType(), {}}; + auto plus_elem = plus->build({left_type, right_type}); + res_type = plus_elem->getResultType(); + } + catch (DB::Exception & e) + { + e.addMessage("While executing function {} for tuple element {}", getName(), i); + throw; + } + } + + return res_type; + } + + ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t input_rows_count) const override + { + const auto * cur_tuple = checkAndGetDataType(arguments[0].type.get()); + const auto & cur_types = cur_tuple->getElements(); + auto cur_elements = getTupleElements(*arguments[0].column); + + size_t tuple_size = cur_elements.size(); + if (tuple_size == 0) + return DataTypeUInt8().createColumnConstWithDefaultValue(input_rows_count); + + auto multiply = FunctionFactory::instance().get("multiply", context); + auto plus = FunctionFactory::instance().get("plus", context); + ColumnWithTypeAndName res; + for (size_t i = 0; i < tuple_size; ++i) + { + ColumnWithTypeAndName cur{cur_elements[i], cur_types[i], {}}; + auto elem_multiply = multiply->build(ColumnsWithTypeAndName{cur, cur}); + + ColumnWithTypeAndName column; + column.type = elem_multiply->getResultType(); + column.column = elem_multiply->execute({cur, cur}, column.type, input_rows_count); + + if (i == 0) + { + res = std::move(column); + } + else + { + auto plus_elem = plus->build({res, column}); + auto res_type = plus_elem->getResultType(); + res.column = plus_elem->execute({res, column}, res_type, input_rows_count); + res.type = res_type; + } + } + + return res.column; + } +}; +using FunctionL2SquaredNorm = FunctionLNorm; + template <> class FunctionLNorm : public ITupleFunction { @@ -930,6 +1033,8 @@ using FunctionL1Distance = FunctionLDistance; using FunctionL2Distance = FunctionLDistance; +using FunctionL2SquaredDistance = FunctionLDistance; + using FunctionLinfDistance = FunctionLDistance; using FunctionLpDistance = FunctionLDistance; @@ -1111,11 +1216,13 @@ private: extern FunctionPtr createFunctionArrayL1Norm(ContextPtr context_); extern FunctionPtr createFunctionArrayL2Norm(ContextPtr context_); +extern FunctionPtr createFunctionArrayL2SquaredNorm(ContextPtr context_); extern FunctionPtr createFunctionArrayLpNorm(ContextPtr context_); extern FunctionPtr createFunctionArrayLinfNorm(ContextPtr context_); extern FunctionPtr createFunctionArrayL1Distance(ContextPtr context_); extern FunctionPtr createFunctionArrayL2Distance(ContextPtr context_); +extern FunctionPtr createFunctionArrayL2SquaredDistance(ContextPtr context_); extern FunctionPtr createFunctionArrayLpDistance(ContextPtr context_); extern FunctionPtr createFunctionArrayLinfDistance(ContextPtr context_); extern FunctionPtr createFunctionArrayCosineDistance(ContextPtr context_); @@ -1136,6 +1243,14 @@ struct L2NormTraits static constexpr auto CreateArrayFunction = createFunctionArrayL2Norm; }; +struct L2SquaredNormTraits +{ + static inline String name = "L2SquaredNorm"; + + static constexpr auto CreateTupleFunction = FunctionL2SquaredNorm::create; + static constexpr auto CreateArrayFunction = createFunctionArrayL2SquaredNorm; +}; + struct LpNormTraits { static inline String name = "LpNorm"; @@ -1168,6 +1283,14 @@ struct L2DistanceTraits static constexpr auto CreateArrayFunction = createFunctionArrayL2Distance; }; +struct L2SquaredDistanceTraits +{ + static inline String name = "L2SquaredDistance"; + + static constexpr auto CreateTupleFunction = FunctionL2SquaredDistance::create; + static constexpr auto CreateArrayFunction = createFunctionArrayL2SquaredDistance; +}; + struct LpDistanceTraits { static inline String name = "LpDistance"; @@ -1194,11 +1317,13 @@ struct CosineDistanceTraits using TupleOrArrayFunctionL1Norm = TupleOrArrayFunction; using TupleOrArrayFunctionL2Norm = TupleOrArrayFunction; +using TupleOrArrayFunctionL2SquaredNorm = TupleOrArrayFunction; using TupleOrArrayFunctionLpNorm = TupleOrArrayFunction; using TupleOrArrayFunctionLinfNorm = TupleOrArrayFunction; using TupleOrArrayFunctionL1Distance = TupleOrArrayFunction; using TupleOrArrayFunctionL2Distance = TupleOrArrayFunction; +using TupleOrArrayFunctionL2SquaredDistance = TupleOrArrayFunction; using TupleOrArrayFunctionLpDistance = TupleOrArrayFunction; using TupleOrArrayFunctionLinfDistance = TupleOrArrayFunction; using TupleOrArrayFunctionCosineDistance = TupleOrArrayFunction; @@ -1221,21 +1346,25 @@ void registerVectorFunctions(FunctionFactory & factory) factory.registerFunction(); factory.registerFunction(); + factory.registerFunction(); factory.registerFunction(); factory.registerFunction(); factory.registerAlias("normL1", TupleOrArrayFunctionL1Norm::name, FunctionFactory::CaseInsensitive); factory.registerAlias("normL2", TupleOrArrayFunctionL2Norm::name, FunctionFactory::CaseInsensitive); + factory.registerAlias("normL2Squared", TupleOrArrayFunctionL2SquaredNorm::name, FunctionFactory::CaseInsensitive); factory.registerAlias("normLinf", TupleOrArrayFunctionLinfNorm::name, FunctionFactory::CaseInsensitive); factory.registerAlias("normLp", FunctionLpNorm::name, FunctionFactory::CaseInsensitive); factory.registerFunction(); factory.registerFunction(); + factory.registerFunction(); factory.registerFunction(); factory.registerFunction(); factory.registerAlias("distanceL1", FunctionL1Distance::name, FunctionFactory::CaseInsensitive); factory.registerAlias("distanceL2", FunctionL2Distance::name, FunctionFactory::CaseInsensitive); + factory.registerAlias("distanceL2Squared", FunctionL2SquaredDistance::name, FunctionFactory::CaseInsensitive); factory.registerAlias("distanceLinf", FunctionLinfDistance::name, FunctionFactory::CaseInsensitive); factory.registerAlias("distanceLp", FunctionLpDistance::name, FunctionFactory::CaseInsensitive); diff --git a/tests/queries/0_stateless/02011_tuple_vector_functions.reference b/tests/queries/0_stateless/02011_tuple_vector_functions.reference index 4c5067c7da2..1b54179cc87 100644 --- a/tests/queries/0_stateless/02011_tuple_vector_functions.reference +++ b/tests/queries/0_stateless/02011_tuple_vector_functions.reference @@ -21,7 +21,9 @@ 6 7.1 1.4142135623730951 +2 13 +169 1.5 -3 2.3 @@ -34,8 +36,10 @@ 2.0000887587111964 4 2.8284271247461903 +8 1 0 +0 -4.413254828250501e-8 (0.2,-0.8) (0.6,0.8) @@ -48,6 +52,7 @@ (NULL,NULL) \N \N +\N (2,4,NULL) \N \N diff --git a/tests/queries/0_stateless/02011_tuple_vector_functions.sql b/tests/queries/0_stateless/02011_tuple_vector_functions.sql index f34fb91586c..14f013937bb 100644 --- a/tests/queries/0_stateless/02011_tuple_vector_functions.sql +++ b/tests/queries/0_stateless/02011_tuple_vector_functions.sql @@ -28,7 +28,9 @@ SELECT scalarProduct(tuple(1), tuple(0)); SELECT L1Norm((-1, 2, -3)); SELECT L1Norm((-1, 2.5, -3.6)); SELECT L2Norm((1, 1.0)); +SELECT L2SquaredNorm((1, 1.0)); SELECT L2Norm(materialize((-12, 5))); +SELECT L2SquaredNorm(materialize((-12, 5))); SELECT max2(materialize(1), 1.5); SELECT min2(-1, -3); @@ -44,8 +46,10 @@ SELECT LpNorm((-1, -2), 11.); SELECT L1Distance((1, 2, 3), (2, 3, 1)); SELECT L2Distance(materialize((1, 1)), (3, -1)); +SELECT L2SquaredDistance(materialize((1, 1)), (3, -1)); SELECT LinfDistance((1, 1), (1, 2)); SELECT L2Distance((5, 5), (5, 5)); +SELECT L2SquaredDistance((5, 5), (5, 5)); SELECT LpDistance((1800, 1900), (18, 59), 12) - LpDistance(tuple(-22), tuple(1900), 12.); SELECT L1Normalize(materialize((1, -4))); @@ -61,6 +65,7 @@ SELECT cosineDistance((1, 0), (0.5, sqrt(3) / 2)); SELECT (NULL, 1) + (1, NULL); SELECT (NULL, 1) * materialize((1, NULL)); SELECT L2Norm((NULL, 3, 4)); +SELECT L2SquaredNorm((NULL, 3, 4)); SELECT 2 * (1, 2, NULL); SELECT (1, 1.0, NULL) / NULL; SELECT (1, 1.0, NULL) / materialize(NULL); diff --git a/tests/queries/0_stateless/02282_array_distance.reference b/tests/queries/0_stateless/02282_array_distance.reference index ebce2788fe9..e5bc46df295 100644 --- a/tests/queries/0_stateless/02282_array_distance.reference +++ b/tests/queries/0_stateless/02282_array_distance.reference @@ -1,17 +1,22 @@ 6 3.7416573867739413 +14 3.2071843327373397 3 0.00258509695694209 \N +\N nan -0 0 0 0 +0 0 0 0 0 12 14 21 7.0710678118654755 9.16515138991168 12.12435565298214 +50 +84 +147 5.917593844525055 8.308858759453505 9.932246380845738 @@ -27,21 +32,21 @@ nan 0.020204102886728692 0.11808289631180313 0 -1 1 218.74642854227358 -1 2 1348.2117786164013 -2 1 219.28064210048274 -2 2 1347.4008312302617 -3 1 214.35251339790725 -3 2 1342.8856987845243 -1 1 218.74642854227358 -1 2 1348.2117786164013 -2 1 219.28064210048274 -2 2 1347.4008312302617 -3 1 214.35251339790725 -3 2 1342.8856987845243 -1 1 218.74642854227358 -1 2 1348.2117786164013 -2 1 219.28064210048274 -2 2 1347.4008312302617 -3 1 214.35251339790725 -3 2 1342.8856987845243 +1 1 218.74642854227358 47850 +1 2 1348.2117786164013 1817675 +2 1 219.28064210048274 48084 +2 2 1347.4008312302617 1815489 +3 1 214.35251339790725 45947 +3 2 1342.8856987845243 1803342 +1 1 218.74642854227358 47850 +1 2 1348.2117786164013 1817675 +2 1 219.28064210048274 48084 +2 2 1347.4008312302617 1815489 +3 1 214.35251339790725 45947 +3 2 1342.8856987845243 1803342 +1 1 218.74642854227358 47850 +1 2 1348.2117786164013 1817675 +2 1 219.28064210048274 48084 +2 2 1347.4008312302617 1815489 +3 1 214.35251339790725 45947 +3 2 1342.8856987845243 1803342 diff --git a/tests/queries/0_stateless/02282_array_distance.sql b/tests/queries/0_stateless/02282_array_distance.sql index 75e4b0d653e..431704abd40 100644 --- a/tests/queries/0_stateless/02282_array_distance.sql +++ b/tests/queries/0_stateless/02282_array_distance.sql @@ -1,10 +1,12 @@ SELECT L1Distance([0, 0, 0], [1, 2, 3]); SELECT L2Distance([1, 2, 3], [0, 0, 0]); +SELECT L2SquaredDistance([1, 2, 3], [0, 0, 0]); SELECT LpDistance([1, 2, 3], [0, 0, 0], 3.5); SELECT LinfDistance([1, 2, 3], [0, 0, 0]); SELECT cosineDistance([1, 2, 3], [3, 5, 7]); SELECT L2Distance([1, 2, 3], NULL); +SELECT L2SquaredDistance([1, 2, 3], NULL); SELECT cosineDistance([1, 2, 3], [0, 0, 0]); -- Overflows @@ -12,6 +14,7 @@ WITH CAST([-547274980, 1790553898, 1981517754, 1908431500, 1352428565, -57341255 SELECT L1Distance(a,a), L2Distance(a,a), + L2SquaredDistance(a,a), LinfDistance(a,a), cosineDistance(a, a); @@ -27,6 +30,7 @@ CREATE TABLE vec2d (id UInt64, v Array(Float64)) ENGINE = Memory; INSERT INTO vec1 VALUES (1, [3, 4, 5]), (2, [2, 4, 8]), (3, [7, 7, 7]); SELECT L1Distance(v, [0, 0, 0]) FROM vec1; SELECT L2Distance(v, [0, 0, 0]) FROM vec1; +SELECT L2SquaredDistance(v, [0, 0, 0]) FROM vec1; SELECT LpDistance(v, [0, 0, 0], 3.14) FROM vec1; SELECT LinfDistance([5, 4, 3], v) FROM vec1; SELECT cosineDistance([3, 2, 1], v) FROM vec1; @@ -34,16 +38,17 @@ SELECT LinfDistance(v, materialize([0, -2, 0])) FROM vec1; SELECT cosineDistance(v, materialize([1., 1., 1.])) FROM vec1; INSERT INTO vec2 VALUES (1, [100, 200, 0]), (2, [888, 777, 666]); -SELECT v1.id, v2.id, L2Distance(v1.v, v2.v) as dist FROM vec1 v1, vec2 v2; +SELECT v1.id, v2.id, L2Distance(v1.v, v2.v), L2SquaredDistance(v1.v, v2.v) as dist FROM vec1 v1, vec2 v2; INSERT INTO vec2f VALUES (1, [100, 200, 0]), (2, [888, 777, 666]); -SELECT v1.id, v2.id, L2Distance(v1.v, v2.v) as dist FROM vec1 v1, vec2f v2; +SELECT v1.id, v2.id, L2Distance(v1.v, v2.v), L2SquaredDistance(v1.v, v2.v) as dist FROM vec1 v1, vec2f v2; INSERT INTO vec2d VALUES (1, [100, 200, 0]), (2, [888, 777, 666]); -SELECT v1.id, v2.id, L2Distance(v1.v, v2.v) as dist FROM vec1 v1, vec2d v2; +SELECT v1.id, v2.id, L2Distance(v1.v, v2.v), L2SquaredDistance(v1.v, v2.v) as dist FROM vec1 v1, vec2d v2; SELECT L1Distance([0, 0], [1]); -- { serverError 190 } SELECT L2Distance([1, 2], (3,4)); -- { serverError 43 } +SELECT L2SquaredDistance([1, 2], (3,4)); -- { serverError 43 } SELECT LpDistance([1, 2], [3,4]); -- { serverError 42 } SELECT LpDistance([1, 2], [3,4], -1.); -- { serverError 69 } SELECT LpDistance([1, 2], [3,4], 'aaa'); -- { serverError 43 } diff --git a/tests/queries/0_stateless/02283_array_norm.reference b/tests/queries/0_stateless/02283_array_norm.reference index ebaadee321f..86a77e27172 100644 --- a/tests/queries/0_stateless/02283_array_norm.reference +++ b/tests/queries/0_stateless/02283_array_norm.reference @@ -1,28 +1,29 @@ 6 7.0710678118654755 +50 10.882246697870885 2 -10803059573 4234902446.7343364 10803059573 4234902446.7343364 3122003357.3280888 2096941042 -1 7 5 4.601724723020627 4 -2 2 2 2 2 -3 9 5.196152422706632 4.506432087111623 3 -4 0 0 0 0 +10803059573 4234902446.7343364 17934398733356468000 10803059573 4234902446.7343364 3122003357.3280888 2096941042 +1 7 5 25 4.601724723020627 4 +2 2 2 4 2 2 +3 9 5.196152422706632 27 4.506432087111623 3 +4 0 0 0 0 0 1 11 2 11 3 11 4 11 -1 7 5 4.601724723020627 4 -2 2 2 2 2 -3 9 5.196152422706632 4.506432087111623 3 -4 0 0 0 0 +1 7 5 25 4.601724723020627 4 +2 2 2 4 2 2 +3 9 5.196152422706632 27 4.506432087111623 3 +4 0 0 0 0 0 1 11 2 11 3 11 4 11 -1 7 5 4.601724723020627 4 -2 2 2 2 2 -3 9 5.196152422706632 4.506432087111623 3 -4 0 0 0 0 +1 7 5 25 4.601724723020627 4 +2 2 2 4 2 2 +3 9 5.196152422706632 27 4.506432087111623 3 +4 0 0 0 0 0 1 11 2 11 3 11 diff --git a/tests/queries/0_stateless/02283_array_norm.sql b/tests/queries/0_stateless/02283_array_norm.sql index 6938618d633..2f5753f9943 100644 --- a/tests/queries/0_stateless/02283_array_norm.sql +++ b/tests/queries/0_stateless/02283_array_norm.sql @@ -1,5 +1,6 @@ SELECT L1Norm([1, 2, 3]); SELECT L2Norm([3., 4., 5.]); +SELECT L2SquaredNorm([3., 4., 5.]); SELECT LpNorm([3., 4., 5.], 1.1); SELECT LinfNorm([0, 0, 2]); @@ -8,6 +9,7 @@ WITH CAST([-547274980, 1790553898, 1981517754, 1908431500, 1352428565, -57341255 SELECT L1Norm(a), L2Norm(a), + L2SquaredNorm(a), LpNorm(a,1), LpNorm(a,2), LpNorm(a,3.14), @@ -23,13 +25,13 @@ INSERT INTO vec1 VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL); INSERT INTO vec1f VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL); INSERT INTO vec1d VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL); -SELECT id, L1Norm(v), L2Norm(v), LpNorm(v, 2.7), LinfNorm(v) FROM vec1; +SELECT id, L1Norm(v), L2Norm(v), L2SquaredNorm(v), LpNorm(v, 2.7), LinfNorm(v) FROM vec1; SELECT id, L1Norm(materialize([5., 6.])) FROM vec1; -SELECT id, L1Norm(v), L2Norm(v), LpNorm(v, 2.7), LinfNorm(v) FROM vec1f; +SELECT id, L1Norm(v), L2Norm(v), L2SquaredNorm(v), LpNorm(v, 2.7), LinfNorm(v) FROM vec1f; SELECT id, L1Norm(materialize([5., 6.])) FROM vec1f; -SELECT id, L1Norm(v), L2Norm(v), LpNorm(v, 2.7), LinfNorm(v) FROM vec1d; +SELECT id, L1Norm(v), L2Norm(v), L2SquaredNorm(v), LpNorm(v, 2.7), LinfNorm(v) FROM vec1d; SELECT id, L1Norm(materialize([5., 6.])) FROM vec1d; SELECT L1Norm(1, 2); -- { serverError 42 } From 1648cd0eb0e5814eb0c0ccab7b1442e84b03d134 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Mon, 27 Jun 2022 23:52:49 +0300 Subject: [PATCH 351/525] tests: cleanup tmp data in 02335_column_ttl_expired_column_optimization v2: remove trap usage as requested by @tavplubix Signed-off-by: Azat Khuzhin --- .../02335_column_ttl_expired_column_optimization.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/queries/0_stateless/02335_column_ttl_expired_column_optimization.sh b/tests/queries/0_stateless/02335_column_ttl_expired_column_optimization.sh index e2f7209d036..96f80d65878 100755 --- a/tests/queries/0_stateless/02335_column_ttl_expired_column_optimization.sh +++ b/tests/queries/0_stateless/02335_column_ttl_expired_column_optimization.sh @@ -4,7 +4,9 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CUR_DIR"/../shell_config.sh -$CLICKHOUSE_LOCAL --path "$CLICKHOUSE_TEST_UNIQUE_NAME" -nm -q " +data_path="$CLICKHOUSE_TMP/local" + +$CLICKHOUSE_LOCAL --path "$data_path" -nm -q " create table ttl_02335 ( date Date, key Int, @@ -25,5 +27,5 @@ $CLICKHOUSE_LOCAL --path "$CLICKHOUSE_TEST_UNIQUE_NAME" -nm -q " optimize table ttl_02335 final; " -test -f "$CLICKHOUSE_TEST_UNIQUE_NAME"/data/_local/ttl_02335/all_1_1_3/value.bin && echo "[FAIL] value column should not exist" -exit 0 +test -f "$data_path"/data/_local/ttl_02335/all_1_1_3/value.bin && echo "[FAIL] value column should not exist" +rm -fr "${data_path:?}" From 75f7662ebb5ad64bf2b4300cf2e7075beaf239cd Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Tue, 28 Jun 2022 19:47:00 +0000 Subject: [PATCH 352/525] Rename slightly weirdly named "BuilderBinTidy" to "BuilderClangTidy" --- .github/workflows/master.yml | 4 ++-- .github/workflows/pull_request.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index cd516ba9674..5dd1ec73fde 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -643,7 +643,7 @@ jobs: # shellcheck disable=SC2046 docker rm -f $(docker ps -a -q) ||: sudo rm -fr "$TEMP_PATH" "$CACHES_PATH" - BuilderBinTidy: + BuilderClangTidy: needs: [DockerHubPush] runs-on: [self-hosted, builder] steps: @@ -1011,7 +1011,7 @@ jobs: - BuilderBinFreeBSD # - BuilderBinGCC - BuilderBinPPC64 - - BuilderBinTidy + - BuilderClangTidy - BuilderDebSplitted runs-on: [self-hosted, style-checker] steps: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 79d54d77f06..50f87549811 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -707,7 +707,7 @@ jobs: # shellcheck disable=SC2046 docker rm -f $(docker ps -a -q) ||: sudo rm -fr "$TEMP_PATH" "$CACHES_PATH" - BuilderBinTidy: + BuilderClangTidy: needs: [DockerHubPush, FastTest] runs-on: [self-hosted, builder] steps: @@ -1065,7 +1065,7 @@ jobs: - BuilderBinFreeBSD # - BuilderBinGCC - BuilderBinPPC64 - - BuilderBinTidy + - BuilderClangTidy - BuilderDebSplitted runs-on: [self-hosted, style-checker] if: ${{ success() || failure() }} From ee0f2651ee243d8ca4bec4ce97ea67bf2c9e4257 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 4 Jun 2022 16:13:01 +0300 Subject: [PATCH 353/525] Revert "Fix converting types for UNION queries (may produce LOGICAL_ERROR)" This fix is incorrect, and it introduce new issues, in particular it may breaks UNION queries w/o column aliases, i.e.: SELECT a, b, c FROM (SELECT 3 AS a, 2147483647 AS b, 1048575 AS c UNION ALL SELECT -2, NULL, -2) AS js1 ORDER BY a CI: https://s3.amazonaws.com/clickhouse-test-reports/37796/e637489f81768df582fe7389e57f7ed12893087c/fuzzer_astfuzzerdebug,actions//report.html Reverts: #37593/#34775 (2613149f6bf4f242bbbf2c3c8539b5176fd77286) Signed-off-by: Azat Khuzhin --- .../InterpreterSelectWithUnionQuery.cpp | 4 --- src/Interpreters/SelectQueryOptions.h | 8 ------ src/Interpreters/TreeRewriter.cpp | 28 ++----------------- 3 files changed, 2 insertions(+), 38 deletions(-) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index f0150fe663f..28b1f7667a8 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -52,10 +52,6 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( if (!num_children) throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); - /// This is required for UNION to match headers correctly. - if (num_children > 1) - options.reorderColumns(); - /// Note that we pass 'required_result_column_names' to first SELECT. /// And for the rest, we pass names at the corresponding positions of 'required_result_column_names' in the result of first SELECT, /// because names could be different. diff --git a/src/Interpreters/SelectQueryOptions.h b/src/Interpreters/SelectQueryOptions.h index 032befe1993..6b5a6a7f8eb 100644 --- a/src/Interpreters/SelectQueryOptions.h +++ b/src/Interpreters/SelectQueryOptions.h @@ -31,8 +31,6 @@ struct SelectQueryOptions bool only_analyze = false; bool modify_inplace = false; bool remove_duplicates = false; - /// This is required for UNION to match headers correctly. - bool reorder_columns_as_required_header = false; bool ignore_quota = false; bool ignore_limits = false; /// This flag is needed to analyze query ignoring table projections. @@ -99,12 +97,6 @@ struct SelectQueryOptions return *this; } - SelectQueryOptions & reorderColumns(bool value = true) - { - reorder_columns_as_required_header = value; - return *this; - } - SelectQueryOptions & noSubquery() { subquery_depth = 0; diff --git a/src/Interpreters/TreeRewriter.cpp b/src/Interpreters/TreeRewriter.cpp index 7fa1fe2f012..869b6b7a51f 100644 --- a/src/Interpreters/TreeRewriter.cpp +++ b/src/Interpreters/TreeRewriter.cpp @@ -429,7 +429,7 @@ void renameDuplicatedColumns(const ASTSelectQuery * select_query) /// This is the case when we have DISTINCT or arrayJoin: we require more columns in SELECT even if we need less columns in result. /// Also we have to remove duplicates in case of GLOBAL subqueries. Their results are placed into tables so duplicates are impossible. /// Also remove all INTERPOLATE columns which are not in SELECT anymore. -void removeUnneededColumnsFromSelectClause(ASTSelectQuery * select_query, const Names & required_result_columns, bool remove_dups, bool reorder_columns_as_required_header) +void removeUnneededColumnsFromSelectClause(ASTSelectQuery * select_query, const Names & required_result_columns, bool remove_dups) { ASTs & elements = select_query->select()->children; @@ -460,29 +460,6 @@ void removeUnneededColumnsFromSelectClause(ASTSelectQuery * select_query, const NameSet remove_columns; - /// Resort columns according to required_result_columns. - if (reorder_columns_as_required_header && !required_result_columns.empty()) - { - std::unordered_map name_pos; - { - size_t pos = 0; - for (const auto & name : required_result_columns) - name_pos[name] = pos++; - } - ::sort(elements.begin(), elements.end(), [&](const auto & lhs, const auto & rhs) - { - String lhs_name = lhs->getAliasOrColumnName(); - String rhs_name = rhs->getAliasOrColumnName(); - size_t lhs_pos = name_pos.size(); - size_t rhs_pos = name_pos.size(); - if (auto it = name_pos.find(lhs_name); it != name_pos.end()) - lhs_pos = it->second; - if (auto it = name_pos.find(rhs_name); it != name_pos.end()) - rhs_pos = it->second; - return lhs_pos < rhs_pos; - }); - } - for (const auto & elem : elements) { String name = elem->getAliasOrColumnName(); @@ -1193,7 +1170,6 @@ TreeRewriterResultPtr TreeRewriter::analyzeSelect( size_t subquery_depth = select_options.subquery_depth; bool remove_duplicates = select_options.remove_duplicates; - bool reorder_columns_as_required_header = select_options.reorder_columns_as_required_header; const auto & settings = getContext()->getSettingsRef(); @@ -1245,7 +1221,7 @@ TreeRewriterResultPtr TreeRewriter::analyzeSelect( /// Leave all selected columns in case of DISTINCT; columns that contain arrayJoin function inside. /// Must be after 'normalizeTree' (after expanding aliases, for aliases not get lost) /// and before 'executeScalarSubqueries', 'analyzeAggregation', etc. to avoid excessive calculations. - removeUnneededColumnsFromSelectClause(select_query, required_result_columns, remove_duplicates, reorder_columns_as_required_header); + removeUnneededColumnsFromSelectClause(select_query, required_result_columns, remove_duplicates); /// Executing scalar subqueries - replacing them with constant values. executeScalarSubqueries(query, getContext(), subquery_depth, result.scalars, result.local_scalars, select_options.only_analyze); From 563fac53337477f6c54665c488fba8be5b0be3ba Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Mon, 6 Jun 2022 16:17:17 +0300 Subject: [PATCH 354/525] tests: add a test for incorrect header in UNION queries Signed-off-by: Azat Khuzhin --- tests/queries/0_stateless/02340_union_header.reference | 7 +++++++ tests/queries/0_stateless/02340_union_header.sql | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 tests/queries/0_stateless/02340_union_header.reference create mode 100644 tests/queries/0_stateless/02340_union_header.sql diff --git a/tests/queries/0_stateless/02340_union_header.reference b/tests/queries/0_stateless/02340_union_header.reference new file mode 100644 index 00000000000..b7d6846023d --- /dev/null +++ b/tests/queries/0_stateless/02340_union_header.reference @@ -0,0 +1,7 @@ +-- { echo } +SELECT a, b, c FROM (SELECT 3 AS a, 2147483647 AS b, 1048575 AS c UNION ALL SELECT -2, NULL, -2) AS js1 ORDER BY a; +-2 \N -2 +3 2147483647 1048575 +SELECT a, b, c, d FROM (SELECT 3 AS a, 2147483647 AS b, 1048575 AS c UNION ALL SELECT -2, NULL, -2) AS js1 ALL LEFT JOIN (SELECT 100 AS a, -9223372036854775808 AS b, NULL AS d UNION ALL SELECT 256, 256, NULL) AS js2 USING (a, b) ORDER BY a DESC NULLS FIRST, '-0.02' ASC, b ASC NULLS FIRST, c DESC NULLS FIRST, 1048575 ASC NULLS LAST, d DESC SETTINGS enable_positional_arguments=0; +3 2147483647 1048575 \N +-2 \N -2 \N diff --git a/tests/queries/0_stateless/02340_union_header.sql b/tests/queries/0_stateless/02340_union_header.sql new file mode 100644 index 00000000000..3481d51d669 --- /dev/null +++ b/tests/queries/0_stateless/02340_union_header.sql @@ -0,0 +1,3 @@ +-- { echo } +SELECT a, b, c FROM (SELECT 3 AS a, 2147483647 AS b, 1048575 AS c UNION ALL SELECT -2, NULL, -2) AS js1 ORDER BY a; +SELECT a, b, c, d FROM (SELECT 3 AS a, 2147483647 AS b, 1048575 AS c UNION ALL SELECT -2, NULL, -2) AS js1 ALL LEFT JOIN (SELECT 100 AS a, -9223372036854775808 AS b, NULL AS d UNION ALL SELECT 256, 256, NULL) AS js2 USING (a, b) ORDER BY a DESC NULLS FIRST, '-0.02' ASC, b ASC NULLS FIRST, c DESC NULLS FIRST, 1048575 ASC NULLS LAST, d DESC SETTINGS enable_positional_arguments=0; From d98336ad8318e7033556dad322ea94c6c67510de Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Mon, 6 Jun 2022 16:11:13 +0300 Subject: [PATCH 355/525] Fix incorrect columns order in subqueries of UNION MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consider the following query: SELECT avgWeighted(x, y) FROM (SELECT NULL, 255 AS x, 1 AS y UNION ALL SELECT y, NULL AS x, 1 AS y) Here is UNION from two SELECT queries - `SELECT NULL, 255 AS x, 1 AS y` - `SELECT y, NULL AS x, 1 AS y` UNION queries matches columns by positions, not names, so the following columns should be used by `avgWeighted()`: - `255 AS x, 1 AS y` - `NULL AS x, 1 AS y` Result types of arguments should be: - `x Nullable(UInt8)` - `y UInt8` And in case of UNION query is a subselect itself, it will return only required columns, for the example above it needs only `x` and `y`. For this it will get positions of these arguments from the first query, and then use those positions to get required column names from the second query (since there is no ability to get columns by positions instead of names internally), and due to duplicated columns the second query will return (`y`, `x`) not (`x`, `y`), and this will make the result incorrect: EXPLAIN header = 1, optimize = 0, actions=1 SELECT avgWeighted(x, y) FROM (SELECT NULL, 255 AS x, 1 AS y UNION ALL SELECT y, NULL AS x, 1 AS y) Aggregates: avgWeighted(x, y) Function: avgWeighted(Nullable(UInt8), UInt8) → Nullable(Float64) Arguments: x, y Argument positions: 0, 1 Expression (Before GROUP BY) Header: x UInt8 y Nullable(UInt8) ... Union Header: x UInt8 y Nullable(UInt8) Expression (Conversion before UNION) Header: x UInt8 y Nullable(UInt8) Expression (Conversion before UNION) Header: x UInt8 y Nullable(UInt8) And the query itself fails with an error: Logical error: 'Bad cast from type DB::ColumnVector to DB::ColumnNullable'. _NOTE: `avgWeighted()` here is required to trigger `LOGICAL_ERROR`_ CI: https://s3.amazonaws.com/clickhouse-test-reports/37796/e637489f81768df582fe7389e57f7ed12893087c/fuzzer_astfuzzerdebug,actions//report.html Fixes: 02227_union_match_by_name v2: fix untuple() (reserve space for output_columns_positions too) Signed-off-by: Azat Khuzhin --- src/Interpreters/TreeRewriter.cpp | 50 +++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/src/Interpreters/TreeRewriter.cpp b/src/Interpreters/TreeRewriter.cpp index 869b6b7a51f..9a4a956f3dc 100644 --- a/src/Interpreters/TreeRewriter.cpp +++ b/src/Interpreters/TreeRewriter.cpp @@ -433,17 +433,24 @@ void removeUnneededColumnsFromSelectClause(ASTSelectQuery * select_query, const { ASTs & elements = select_query->select()->children; - std::map required_columns_with_duplicate_count; + std::unordered_map required_columns_with_duplicate_count; + /// Order of output columns should match order in required_result_columns, + /// otherwise UNION queries may have incorrect header when subselect has duplicated columns. + /// + /// NOTE: multimap is required since there can be duplicated column names. + std::unordered_multimap output_columns_positions; if (!required_result_columns.empty()) { /// Some columns may be queried multiple times, like SELECT x, y, y FROM table. - for (const auto & name : required_result_columns) + for (size_t i = 0; i < required_result_columns.size(); ++i) { + const auto & name = required_result_columns[i]; if (remove_dups) required_columns_with_duplicate_count[name] = 1; else ++required_columns_with_duplicate_count[name]; + output_columns_positions.emplace(name, i); } } else if (remove_dups) @@ -455,8 +462,8 @@ void removeUnneededColumnsFromSelectClause(ASTSelectQuery * select_query, const else return; - ASTs new_elements; - new_elements.reserve(elements.size()); + ASTs new_elements(elements.size() + output_columns_positions.size()); + size_t new_elements_size = 0; NameSet remove_columns; @@ -464,17 +471,35 @@ void removeUnneededColumnsFromSelectClause(ASTSelectQuery * select_query, const { String name = elem->getAliasOrColumnName(); + /// Columns that are presented in output_columns_positions should + /// appears in the same order in the new_elements, hence default + /// result_index goes after all elements of output_columns_positions + /// (it is for columns that are not located in + /// output_columns_positions, i.e. untuple()) + size_t result_index = output_columns_positions.size() + new_elements_size; + + /// Note, order of duplicated columns is not important here (since they + /// are the same), only order for unique columns is important, so it is + /// fine to use multimap here. + if (auto it = output_columns_positions.find(name); it != output_columns_positions.end()) + { + result_index = it->second; + output_columns_positions.erase(it); + } + auto it = required_columns_with_duplicate_count.find(name); if (required_columns_with_duplicate_count.end() != it && it->second) { - new_elements.push_back(elem); + new_elements[result_index] = elem; --it->second; + ++new_elements_size; } else if (select_query->distinct || hasArrayJoin(elem)) { /// ARRAY JOIN cannot be optimized out since it may change number of rows, /// so as DISTINCT. - new_elements.push_back(elem); + new_elements[result_index] = elem; + ++new_elements_size; } else { @@ -485,13 +510,20 @@ void removeUnneededColumnsFromSelectClause(ASTSelectQuery * select_query, const /// Never remove untuple. It's result column may be in required columns. /// It is not easy to analyze untuple here, because types were not calculated yet. if (func && func->name == "untuple") - new_elements.push_back(elem); - + { + new_elements[result_index] = elem; + ++new_elements_size; + } /// removing aggregation can change number of rows, so `count()` result in outer sub-query would be wrong if (func && AggregateUtils::isAggregateFunction(*func) && !select_query->groupBy()) - new_elements.push_back(elem); + { + new_elements[result_index] = elem; + ++new_elements_size; + } } } + /// Remove empty nodes. + std::erase(new_elements, ASTPtr{}); if (select_query->interpolate()) { From f86ddebadaa12dc57b0bf4d60f96aa0d2eac6191 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Mon, 6 Jun 2022 19:32:41 +0300 Subject: [PATCH 356/525] Add sanity check for UNION header Signed-off-by: Azat Khuzhin --- .../InterpreterSelectWithUnionQuery.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 28b1f7667a8..e886027683f 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -159,7 +159,22 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( { Blocks headers(num_children); for (size_t query_num = 0; query_num < num_children; ++query_num) + { headers[query_num] = nested_interpreters[query_num]->getSampleBlock(); + const auto & current_required_result_column_names = required_result_column_names_for_other_selects[query_num]; + if (!current_required_result_column_names.empty()) + { + const auto & header_columns = headers[query_num].getNames(); + if (current_required_result_column_names != header_columns) + { + throw Exception(ErrorCodes::LOGICAL_ERROR, + "Different order of columns in UNION subquery: {} and {}", + fmt::join(current_required_result_column_names, ", "), + fmt::join(header_columns, ", ")); + } + + } + } result_header = getCommonHeaderForUnion(headers); } From 4a52d3f6b9510ce4ba250fcfe8b633de66e68900 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Tue, 7 Jun 2022 07:55:28 +0300 Subject: [PATCH 357/525] tests: update reference for 00597_push_down_predicate_long CI: https://s3.amazonaws.com/clickhouse-test-reports/37887/6b4613c88056f3901f6d8a832c9e2bc15e22206d/stateless_tests__aarch64__actions_.html Signed-off-by: Azat Khuzhin --- .../00597_push_down_predicate_long.reference | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/queries/0_stateless/00597_push_down_predicate_long.reference b/tests/queries/0_stateless/00597_push_down_predicate_long.reference index f6f1320c2f8..af4e9b5496e 100644 --- a/tests/queries/0_stateless/00597_push_down_predicate_long.reference +++ b/tests/queries/0_stateless/00597_push_down_predicate_long.reference @@ -402,8 +402,8 @@ FROM ANY LEFT JOIN ( SELECT - date, id, + date, name, value FROM test_00597 @@ -472,8 +472,8 @@ FROM ANY LEFT JOIN ( SELECT - date, id, + date, name, value FROM test_00597 @@ -537,10 +537,10 @@ FROM ANY LEFT JOIN ( SELECT - date, - id, name, - value + value, + date, + id FROM test_00597 ) AS b ON id = b.id WHERE id = 1 @@ -567,8 +567,8 @@ FROM SEMI LEFT JOIN ( SELECT - date, id, + date, name, value FROM From d80a21a44552ba1484a99bef5d0d95e6d5a09b10 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Sun, 26 Jun 2022 08:23:52 +0000 Subject: [PATCH 358/525] Distinct sorted: calculate column positions once in constructor - instead of calculating them on every chunk --- .../Transforms/DistinctSortedTransform.cpp | 29 +++++++++---------- .../Transforms/DistinctSortedTransform.h | 4 ++- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/Processors/Transforms/DistinctSortedTransform.cpp b/src/Processors/Transforms/DistinctSortedTransform.cpp index 13d039ebcae..a4e5983de82 100644 --- a/src/Processors/Transforms/DistinctSortedTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedTransform.cpp @@ -13,10 +13,20 @@ DistinctSortedTransform::DistinctSortedTransform( : ISimpleTransform(header_, header_, true) , header(std::move(header_)) , description(std::move(sort_description)) - , columns_names(columns) + , column_names(columns) , limit_hint(limit_hint_) , set_size_limits(set_size_limits_) { + /// pre-calculate column positions to process during chunk transformation + const size_t num_columns = column_names.empty() ? header_.columns() : column_names.size(); + column_positions.reserve(num_columns); + for (size_t i = 0; i < num_columns; ++i) + { + auto pos = column_names.empty() ? i : header_.getPositionByName(column_names[i]); + const auto & col = header_.getByPosition(pos).column; + if (col && !isColumnConst(*col)) + column_positions.emplace_back(pos); + } } void DistinctSortedTransform::transform(Chunk & chunk) @@ -119,24 +129,13 @@ bool DistinctSortedTransform::buildFilter( ColumnRawPtrs DistinctSortedTransform::getKeyColumns(const Chunk & chunk) const { - size_t columns = columns_names.empty() ? chunk.getNumColumns() : columns_names.size(); - ColumnRawPtrs column_ptrs; - column_ptrs.reserve(columns); - - for (size_t i = 0; i < columns; ++i) + column_ptrs.reserve(column_positions.size()); + for (const auto pos : column_positions) { - auto pos = i; - if (!columns_names.empty()) - pos = input.getHeader().getPositionByName(columns_names[i]); - const auto & column = chunk.getColumns()[pos]; - - /// Ignore all constant columns. - if (!isColumnConst(*column)) - column_ptrs.emplace_back(column.get()); + column_ptrs.emplace_back(column.get()); } - return column_ptrs; } diff --git a/src/Processors/Transforms/DistinctSortedTransform.h b/src/Processors/Transforms/DistinctSortedTransform.h index 0530a6689e9..72acde0716b 100644 --- a/src/Processors/Transforms/DistinctSortedTransform.h +++ b/src/Processors/Transforms/DistinctSortedTransform.h @@ -3,6 +3,7 @@ #include #include #include +#include namespace DB @@ -57,7 +58,8 @@ private: }; PreviousChunk prev_chunk; - Names columns_names; + Names column_names; + ColumnNumbers column_positions; ClearableSetVariants data; Sizes key_sizes; UInt64 limit_hint; From c1840e798ceeec72e315503d635a2e53e6d890c7 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Tue, 28 Jun 2022 20:04:27 +0000 Subject: [PATCH 359/525] Fix: wrong header variable was used --- src/Processors/Transforms/DistinctSortedTransform.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Processors/Transforms/DistinctSortedTransform.cpp b/src/Processors/Transforms/DistinctSortedTransform.cpp index a4e5983de82..73e89c774ae 100644 --- a/src/Processors/Transforms/DistinctSortedTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedTransform.cpp @@ -17,13 +17,13 @@ DistinctSortedTransform::DistinctSortedTransform( , limit_hint(limit_hint_) , set_size_limits(set_size_limits_) { - /// pre-calculate column positions to process during chunk transformation - const size_t num_columns = column_names.empty() ? header_.columns() : column_names.size(); + /// pre-calculate column positions to use during chunk transformation + const size_t num_columns = column_names.empty() ? header.columns() : column_names.size(); column_positions.reserve(num_columns); for (size_t i = 0; i < num_columns; ++i) { - auto pos = column_names.empty() ? i : header_.getPositionByName(column_names[i]); - const auto & col = header_.getByPosition(pos).column; + auto pos = column_names.empty() ? i : header.getPositionByName(column_names[i]); + const auto & col = header.getByPosition(pos).column; if (col && !isColumnConst(*col)) column_positions.emplace_back(pos); } From 5048d384b233c817a255c938fb6c3c7d485b48bb Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Tue, 28 Jun 2022 22:28:19 +0200 Subject: [PATCH 360/525] BuilderBinClangTidy --- .github/workflows/master.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 5dd1ec73fde..66ba8547894 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -643,7 +643,7 @@ jobs: # shellcheck disable=SC2046 docker rm -f $(docker ps -a -q) ||: sudo rm -fr "$TEMP_PATH" "$CACHES_PATH" - BuilderClangTidy: + BuilderBinClangTidy: needs: [DockerHubPush] runs-on: [self-hosted, builder] steps: @@ -1011,7 +1011,7 @@ jobs: - BuilderBinFreeBSD # - BuilderBinGCC - BuilderBinPPC64 - - BuilderClangTidy + - BuilderBinClangTidy - BuilderDebSplitted runs-on: [self-hosted, style-checker] steps: From f5bfc2c27b4ad0adcaa49e24bda64a5d627225ea Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Tue, 28 Jun 2022 22:29:17 +0200 Subject: [PATCH 361/525] BuilderBinClangTidy --- .github/workflows/pull_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 50f87549811..9cd8fd6f49d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -707,7 +707,7 @@ jobs: # shellcheck disable=SC2046 docker rm -f $(docker ps -a -q) ||: sudo rm -fr "$TEMP_PATH" "$CACHES_PATH" - BuilderClangTidy: + BuilderBinClangTidy: needs: [DockerHubPush, FastTest] runs-on: [self-hosted, builder] steps: @@ -1065,7 +1065,7 @@ jobs: - BuilderBinFreeBSD # - BuilderBinGCC - BuilderBinPPC64 - - BuilderClangTidy + - BuilderBinClangTidy - BuilderDebSplitted runs-on: [self-hosted, style-checker] if: ${{ success() || failure() }} From 4a00e33e6b5159c8773cf2fa6453f9a315d20bf2 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Tue, 28 Jun 2022 21:42:46 +0000 Subject: [PATCH 362/525] Fixes for some review comments --- src/Core/Settings.h | 2 +- src/Processors/QueryPlan/ReadFromMergeTree.cpp | 3 ++- src/Processors/Transforms/DistinctSortedChunkTransform.cpp | 2 +- src/Processors/Transforms/DistinctSortedChunkTransform.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 617b22206de..f33b087e571 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -605,7 +605,7 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Bool, throw_if_no_data_to_insert, true, "Enables or disables empty INSERTs, enabled by default", 0) \ M(Bool, compatibility_ignore_auto_increment_in_create_table, false, "Ignore AUTO_INCREMENT keyword in column declaration if true, otherwise return error. It simplifies migration from MySQL", 0) \ M(Bool, multiple_joins_try_to_keep_original_names, false, "Do not add aliases to top level expression list on multiple joins rewrite", 0) \ - M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization if columns in DISTINCT are sorted", 1) \ + M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization if some columns in DISTINCT form a prefix of sorting. For example, prefix of sorting key in merge tree or ORDER BY statement", 1) \ // End of COMMON_SETTINGS // Please add settings related to formats into the FORMAT_FACTORY_SETTINGS and move obsolete settings to OBSOLETE_SETTINGS. diff --git a/src/Processors/QueryPlan/ReadFromMergeTree.cpp b/src/Processors/QueryPlan/ReadFromMergeTree.cpp index 4f0e929d587..4a1772759bc 100644 --- a/src/Processors/QueryPlan/ReadFromMergeTree.cpp +++ b/src/Processors/QueryPlan/ReadFromMergeTree.cpp @@ -140,7 +140,7 @@ ReadFromMergeTree::ReadFromMergeTree( { /// build sort description for output stream SortDescription sort_description; const Names & sorting_key_columns = storage_snapshot->getMetadataForQuery()->getSortingKeyColumns(); - Block const & header = output_stream->header; + const Block & header = output_stream->header; const int sort_direction = getSortDirection(query_info); for (const auto & column_name : sorting_key_columns) { @@ -150,6 +150,7 @@ ReadFromMergeTree::ReadFromMergeTree( sort_description.emplace_back(column_name, sort_direction); } output_stream->sort_description = std::move(sort_description); + output_stream->sort_mode = DataStream::SortMode::Chunk; } } diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index 09b894c261e..b76c895c00e 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -140,7 +140,7 @@ size_t DistinctSortedChunkTransform::getRangeEnd(size_t range_begin, size_t rang return range_end; } -std::tuple DistinctSortedChunkTransform::continueWithPrevRange(const size_t chunk_rows, IColumn::Filter & filter) +std::pair DistinctSortedChunkTransform::continueWithPrevRange(const size_t chunk_rows, IColumn::Filter & filter) { /// current_key is empty on very first transform() call /// or first row doesn't match a key from previous transform() diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.h b/src/Processors/Transforms/DistinctSortedChunkTransform.h index 8f437d6fb9c..1d9162afd30 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.h +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.h @@ -32,7 +32,7 @@ protected: private: void initChunkProcessing(const Columns & input_columns); - std::tuple continueWithPrevRange(size_t chunk_rows, IColumn::Filter & filter); + std::pair continueWithPrevRange(size_t chunk_rows, IColumn::Filter & filter); size_t ordinaryDistinctOnRange(IColumn::Filter & filter, size_t range_begin, size_t range_end, bool clear_data); inline void setCurrentKey(size_t row_pos); inline bool isCurrentKey(size_t row_pos) const; From f5d26572df57a538486069557c214f43d51e442f Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Wed, 29 Jun 2022 01:16:30 +0200 Subject: [PATCH 363/525] Quick fix for aggregation pipeline (#38295) --- src/Interpreters/InterpreterSelectQuery.cpp | 24 +++- src/Processors/QueryPlan/AggregatingStep.cpp | 13 +- src/Processors/QueryPlan/AggregatingStep.h | 7 +- .../QueryPlan/MergingAggregatedStep.cpp | 13 +- .../QueryPlan/MergingAggregatedStep.h | 7 +- .../MergeTree/MergeTreeDataSelectExecutor.cpp | 7 +- .../performance/queries_over_aggregation.xml | 7 + .../01915_for_each_crakjie.reference | 2 +- .../0_stateless/01915_for_each_crakjie.sql | 3 +- .../02343_aggregation_pipeline.reference | 127 ++++++++++++++++++ .../02343_aggregation_pipeline.sql | 58 ++++++++ 11 files changed, 249 insertions(+), 19 deletions(-) create mode 100644 tests/performance/queries_over_aggregation.xml create mode 100644 tests/queries/0_stateless/02343_aggregation_pipeline.reference create mode 100644 tests/queries/0_stateless/02343_aggregation_pipeline.sql diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 047e50272fe..5863dd20bb9 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1590,7 +1590,8 @@ static void executeMergeAggregatedImpl( bool has_grouping_sets, const Settings & settings, const NamesAndTypesList & aggregation_keys, - const AggregateDescriptions & aggregates) + const AggregateDescriptions & aggregates, + bool should_produce_results_in_order_of_bucket_number) { auto keys = aggregation_keys.getNames(); if (has_grouping_sets) @@ -1619,7 +1620,8 @@ static void executeMergeAggregatedImpl( final, settings.distributed_aggregation_memory_efficient && is_remote_storage, settings.max_threads, - settings.aggregation_memory_efficient_merge_threads); + settings.aggregation_memory_efficient_merge_threads, + should_produce_results_in_order_of_bucket_number); query_plan.addStep(std::move(merging_aggregated)); } @@ -1680,6 +1682,9 @@ void InterpreterSelectQuery::addEmptySourceToQueryPlan( query_plan.addStep(std::move(expression_before_aggregation)); } + // Let's just choose the safe option since we don't know the value of `to_stage` here. + const bool should_produce_results_in_order_of_bucket_number = true; + executeMergeAggregatedImpl( query_plan, query_info.projection->aggregate_overflow_row, @@ -1688,7 +1693,8 @@ void InterpreterSelectQuery::addEmptySourceToQueryPlan( false, context_->getSettingsRef(), query_info.projection->aggregation_keys, - query_info.projection->aggregate_descriptions); + query_info.projection->aggregate_descriptions, + should_produce_results_in_order_of_bucket_number); } } } @@ -2268,6 +2274,9 @@ void InterpreterSelectQuery::executeAggregation(QueryPlan & query_plan, const Ac bool storage_has_evenly_distributed_read = storage && storage->hasEvenlyDistributedRead(); + const bool should_produce_results_in_order_of_bucket_number + = options.to_stage == QueryProcessingStage::WithMergeableState && settings.distributed_aggregation_memory_efficient; + auto aggregating_step = std::make_unique( query_plan.getCurrentDataStream(), std::move(aggregator_params), @@ -2279,7 +2288,8 @@ void InterpreterSelectQuery::executeAggregation(QueryPlan & query_plan, const Ac temporary_data_merge_threads, storage_has_evenly_distributed_read, std::move(group_by_info), - std::move(group_by_sort_description)); + std::move(group_by_sort_description), + should_produce_results_in_order_of_bucket_number); query_plan.addStep(std::move(aggregating_step)); } @@ -2292,6 +2302,9 @@ void InterpreterSelectQuery::executeMergeAggregated(QueryPlan & query_plan, bool if (query_info.projection && query_info.projection->desc->type == ProjectionDescription::Type::Aggregate) return; + const bool should_produce_results_in_order_of_bucket_number = options.to_stage == QueryProcessingStage::WithMergeableState + && context->getSettingsRef().distributed_aggregation_memory_efficient; + executeMergeAggregatedImpl( query_plan, overflow_row, @@ -2300,7 +2313,8 @@ void InterpreterSelectQuery::executeMergeAggregated(QueryPlan & query_plan, bool has_grouping_sets, context->getSettingsRef(), query_analyzer->aggregationKeys(), - query_analyzer->aggregates()); + query_analyzer->aggregates(), + should_produce_results_in_order_of_bucket_number); } diff --git a/src/Processors/QueryPlan/AggregatingStep.cpp b/src/Processors/QueryPlan/AggregatingStep.cpp index 1e62673bc26..0a4b12084eb 100644 --- a/src/Processors/QueryPlan/AggregatingStep.cpp +++ b/src/Processors/QueryPlan/AggregatingStep.cpp @@ -19,13 +19,13 @@ namespace DB { -static ITransformingStep::Traits getTraits() +static ITransformingStep::Traits getTraits(bool should_produce_results_in_order_of_bucket_number) { return ITransformingStep::Traits { { .preserves_distinct_columns = false, /// Actually, we may check that distinct names are in aggregation keys - .returns_single_stream = true, + .returns_single_stream = should_produce_results_in_order_of_bucket_number, /// Actually, may also return single stream if should_produce_results_in_order_of_bucket_number = false .preserves_number_of_streams = false, .preserves_sorting = false, }, @@ -75,9 +75,10 @@ AggregatingStep::AggregatingStep( size_t temporary_data_merge_threads_, bool storage_has_evenly_distributed_read_, InputOrderInfoPtr group_by_info_, - SortDescription group_by_sort_description_) + SortDescription group_by_sort_description_, + bool should_produce_results_in_order_of_bucket_number_) : ITransformingStep( - input_stream_, appendGroupingColumn(params_.getHeader(input_stream_.header, final_), grouping_sets_params_), getTraits(), false) + input_stream_, appendGroupingColumn(params_.getHeader(input_stream_.header, final_), grouping_sets_params_), getTraits(should_produce_results_in_order_of_bucket_number_), false) , params(std::move(params_)) , grouping_sets_params(std::move(grouping_sets_params_)) , final(final_) @@ -88,6 +89,7 @@ AggregatingStep::AggregatingStep( , storage_has_evenly_distributed_read(storage_has_evenly_distributed_read_) , group_by_info(std::move(group_by_info_)) , group_by_sort_description(std::move(group_by_sort_description_)) + , should_produce_results_in_order_of_bucket_number(should_produce_results_in_order_of_bucket_number_) { } @@ -351,7 +353,8 @@ void AggregatingStep::transformPipeline(QueryPipelineBuilder & pipeline, const B return std::make_shared(header, transform_params, many_data, counter++, merge_threads, temporary_data_merge_threads); }); - pipeline.resize(1); + /// We add the explicit resize here, but not in case of aggregating in order, since AIO don't use two-level hash tables and thus returns only buckets with bucket_number = -1. + pipeline.resize(should_produce_results_in_order_of_bucket_number ? 1 : pipeline.getNumStreams(), true /* force */); aggregating = collector.detachProcessors(0); } diff --git a/src/Processors/QueryPlan/AggregatingStep.h b/src/Processors/QueryPlan/AggregatingStep.h index 2879cd1e0e9..0e982d76940 100644 --- a/src/Processors/QueryPlan/AggregatingStep.h +++ b/src/Processors/QueryPlan/AggregatingStep.h @@ -36,7 +36,8 @@ public: size_t temporary_data_merge_threads_, bool storage_has_evenly_distributed_read_, InputOrderInfoPtr group_by_info_, - SortDescription group_by_sort_description_); + SortDescription group_by_sort_description_, + bool should_produce_results_in_order_of_bucket_number_); String getName() const override { return "Aggregating"; } @@ -65,6 +66,10 @@ private: InputOrderInfoPtr group_by_info; SortDescription group_by_sort_description; + /// It determines if we should resize pipeline to 1 at the end. + /// Needed in case of distributed memory efficient aggregation. + const bool should_produce_results_in_order_of_bucket_number; + Processors aggregating_in_order; Processors aggregating_sorted; Processors finalizing; diff --git a/src/Processors/QueryPlan/MergingAggregatedStep.cpp b/src/Processors/QueryPlan/MergingAggregatedStep.cpp index c898b901a6a..d74a6174f00 100644 --- a/src/Processors/QueryPlan/MergingAggregatedStep.cpp +++ b/src/Processors/QueryPlan/MergingAggregatedStep.cpp @@ -7,13 +7,13 @@ namespace DB { -static ITransformingStep::Traits getTraits() +static ITransformingStep::Traits getTraits(bool should_produce_results_in_order_of_bucket_number) { return ITransformingStep::Traits { { .preserves_distinct_columns = false, - .returns_single_stream = true, + .returns_single_stream = should_produce_results_in_order_of_bucket_number, .preserves_number_of_streams = false, .preserves_sorting = false, }, @@ -29,13 +29,16 @@ MergingAggregatedStep::MergingAggregatedStep( bool final_, bool memory_efficient_aggregation_, size_t max_threads_, - size_t memory_efficient_merge_threads_) - : ITransformingStep(input_stream_, params_.getHeader(input_stream_.header, final_), getTraits()) + size_t memory_efficient_merge_threads_, + bool should_produce_results_in_order_of_bucket_number_) + : ITransformingStep( + input_stream_, params_.getHeader(input_stream_.header, final_), getTraits(should_produce_results_in_order_of_bucket_number_)) , params(std::move(params_)) , final(final_) , memory_efficient_aggregation(memory_efficient_aggregation_) , max_threads(max_threads_) , memory_efficient_merge_threads(memory_efficient_merge_threads_) + , should_produce_results_in_order_of_bucket_number(should_produce_results_in_order_of_bucket_number_) { /// Aggregation keys are distinct for (const auto & key : params.keys) @@ -62,6 +65,8 @@ void MergingAggregatedStep::transformPipeline(QueryPipelineBuilder & pipeline, c pipeline.addMergingAggregatedMemoryEfficientTransform(transform_params, num_merge_threads); } + + pipeline.resize(should_produce_results_in_order_of_bucket_number ? 1 : max_threads); } void MergingAggregatedStep::describeActions(FormatSettings & settings) const diff --git a/src/Processors/QueryPlan/MergingAggregatedStep.h b/src/Processors/QueryPlan/MergingAggregatedStep.h index 136422c8c27..419b43615bd 100644 --- a/src/Processors/QueryPlan/MergingAggregatedStep.h +++ b/src/Processors/QueryPlan/MergingAggregatedStep.h @@ -19,7 +19,8 @@ public: bool final_, bool memory_efficient_aggregation_, size_t max_threads_, - size_t memory_efficient_merge_threads_); + size_t memory_efficient_merge_threads_, + bool should_produce_results_in_order_of_bucket_number_); String getName() const override { return "MergingAggregated"; } @@ -36,6 +37,10 @@ private: bool memory_efficient_aggregation; size_t max_threads; size_t memory_efficient_merge_threads; + + /// It determines if we should resize pipeline to 1 at the end. + /// Needed in case of distributed memory efficient aggregation over distributed table. + const bool should_produce_results_in_order_of_bucket_number; }; } diff --git a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp index 6590445572d..85231aca253 100644 --- a/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp +++ b/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp @@ -369,6 +369,10 @@ QueryPlanPtr MergeTreeDataSelectExecutor::read( else group_by_info = nullptr; + // We don't have information regarding the `to_stage` of the query processing, only about `from_stage` (which is passed through `processed_stage` argument). + // Thus we cannot assign false here since it may be a query over distributed table. + const bool should_produce_results_in_order_of_bucket_number = true; + auto aggregating_step = std::make_unique( query_plan->getCurrentDataStream(), std::move(params), @@ -380,7 +384,8 @@ QueryPlanPtr MergeTreeDataSelectExecutor::read( temporary_data_merge_threads, /* storage_has_evenly_distributed_read_= */ false, std::move(group_by_info), - std::move(group_by_sort_description)); + std::move(group_by_sort_description), + should_produce_results_in_order_of_bucket_number); query_plan->addStep(std::move(aggregating_step)); }; diff --git a/tests/performance/queries_over_aggregation.xml b/tests/performance/queries_over_aggregation.xml new file mode 100644 index 00000000000..2a92ea26819 --- /dev/null +++ b/tests/performance/queries_over_aggregation.xml @@ -0,0 +1,7 @@ + + select * from (select * from numbers_mt(1e7) group by number) group by number format Null + select * from (select * from numbers_mt(1e7) group by number) order by number format Null + select * from (select * from numbers_mt(1e7) group by number) group by number format Null settings max_bytes_before_external_group_by = 1 + select * from (select * from remote('127.0.0.{{1,2}}', numbers_mt(1e7)) group by number) group by number format Null settings distributed_aggregation_memory_efficient = 1 + select * from (select * from remote('127.0.0.{{1,2}}', numbers_mt(1e7)) group by number) group by number format Null settings distributed_aggregation_memory_efficient = 0 + diff --git a/tests/queries/0_stateless/01915_for_each_crakjie.reference b/tests/queries/0_stateless/01915_for_each_crakjie.reference index 905658eb3f7..7e57fec849e 100644 --- a/tests/queries/0_stateless/01915_for_each_crakjie.reference +++ b/tests/queries/0_stateless/01915_for_each_crakjie.reference @@ -1,2 +1,2 @@ -b [2,2.2,2.260035] a [2,2.2,2.260035] +b [2,2.2,2.260035] diff --git a/tests/queries/0_stateless/01915_for_each_crakjie.sql b/tests/queries/0_stateless/01915_for_each_crakjie.sql index f65e08af61b..7d6ce0746b9 100644 --- a/tests/queries/0_stateless/01915_for_each_crakjie.sql +++ b/tests/queries/0_stateless/01915_for_each_crakjie.sql @@ -7,4 +7,5 @@ FROM SELECT sumStateForEach([1., 1.1, 1.1300175]) AS x FROM remote('127.0.0.{1,2}', system.one) ) -GROUP BY z; +GROUP BY z +ORDER BY z; diff --git a/tests/queries/0_stateless/02343_aggregation_pipeline.reference b/tests/queries/0_stateless/02343_aggregation_pipeline.reference new file mode 100644 index 00000000000..67bd9c414ba --- /dev/null +++ b/tests/queries/0_stateless/02343_aggregation_pipeline.reference @@ -0,0 +1,127 @@ +-- { echoOn } + +explain pipeline select * from (select * from numbers_mt(1e8) group by number) group by number; +(Expression) +ExpressionTransform × 16 + (Aggregating) + Resize 16 → 16 + AggregatingTransform × 16 + StrictResize 16 → 16 + (Expression) + ExpressionTransform × 16 + (Aggregating) + Resize 16 → 16 + AggregatingTransform × 16 + (Expression) + ExpressionTransform × 16 + (ReadFromStorage) + NumbersMt × 16 0 → 1 +explain pipeline select * from (select * from numbers_mt(1e8) group by number) order by number; +(Expression) +ExpressionTransform + (Sorting) + MergingSortedTransform 16 → 1 + MergeSortingTransform × 16 + LimitsCheckingTransform × 16 + PartialSortingTransform × 16 + (Expression) + ExpressionTransform × 16 + (Aggregating) + Resize 16 → 16 + AggregatingTransform × 16 + (Expression) + ExpressionTransform × 16 + (ReadFromStorage) + NumbersMt × 16 0 → 1 +explain pipeline select number from remote('127.0.0.{1,2,3}', system, numbers_mt) group by number settings distributed_aggregation_memory_efficient = 1; +(Expression) +ExpressionTransform × 16 + (MergingAggregated) + Resize 1 → 16 + SortingAggregatedTransform 16 → 1 + MergingAggregatedBucketTransform × 16 + Resize 1 → 16 + GroupingAggregatedTransform 3 → 1 + (Union) + (Aggregating) + Resize 16 → 1 + AggregatingTransform × 16 + (Expression) + ExpressionTransform × 16 + (ReadFromStorage) + Numbers × 16 0 → 1 + (ReadFromRemote) +explain pipeline select number from remote('127.0.0.{1,2,3}', system, numbers_mt) group by number settings distributed_aggregation_memory_efficient = 0; +(Expression) +ExpressionTransform × 16 + (MergingAggregated) + Resize 1 → 16 + MergingAggregatedTransform + Resize 18 → 1 + (Union) + (Aggregating) + Resize 16 → 16 + AggregatingTransform × 16 + (Expression) + ExpressionTransform × 16 + (ReadFromStorage) + Numbers × 16 0 → 1 + (ReadFromRemote) +-- { echoOn } + +explain pipeline SELECT k1, k3, sum(value) v FROM remote('127.0.0.{1,2}', currentDatabase(), proj_agg_02343) GROUP BY k1, k3 SETTINGS distributed_aggregation_memory_efficient = 0; +(Expression) +ExpressionTransform × 16 + (MergingAggregated) + Resize 1 → 16 + MergingAggregatedTransform + Resize 2 → 1 + (Union) + (ReadFromStorage) + AggregatingTransform + ExpressionTransform + MergeTreeInOrder 0 → 1 + (ReadFromRemote) +explain pipeline SELECT k1, k3, sum(value) v FROM remote('127.0.0.{1,2}', currentDatabase(), proj_agg_02343) GROUP BY k1, k3 SETTINGS distributed_aggregation_memory_efficient = 1; +(Expression) +ExpressionTransform × 16 + (MergingAggregated) + Resize 1 → 16 + SortingAggregatedTransform 16 → 1 + MergingAggregatedBucketTransform × 16 + Resize 1 → 16 + GroupingAggregatedTransform 2 → 1 + (Union) + (ReadFromStorage) + AggregatingTransform + ExpressionTransform + MergeTreeInOrder 0 → 1 + (ReadFromRemote) +-- { echoOn } + +explain pipeline select a from remote('127.0.0.{1,2}', currentDatabase(), dist_t) group by a settings max_threads = 2, distributed_aggregation_memory_efficient = 1; +(Expression) +ExpressionTransform × 2 + (MergingAggregated) + Resize 1 → 2 + SortingAggregatedTransform 2 → 1 + MergingAggregatedBucketTransform × 2 + Resize 1 → 2 + GroupingAggregatedTransform 2 → 1 + (Union) + (MergingAggregated) + SortingAggregatedTransform 2 → 1 + MergingAggregatedBucketTransform × 2 + Resize 1 → 2 + GroupingAggregatedTransform 2 → 1 + (Union) + (Aggregating) + Resize 2 → 1 + AggregatingTransform × 2 + StrictResize 2 → 2 + (Expression) + ExpressionTransform × 2 + (ReadFromMergeTree) + MergeTreeThread × 2 0 → 1 + (ReadFromRemote) + (ReadFromRemote) diff --git a/tests/queries/0_stateless/02343_aggregation_pipeline.sql b/tests/queries/0_stateless/02343_aggregation_pipeline.sql new file mode 100644 index 00000000000..d259889b042 --- /dev/null +++ b/tests/queries/0_stateless/02343_aggregation_pipeline.sql @@ -0,0 +1,58 @@ +set max_threads = 16; +set prefer_localhost_replica = 1; +set optimize_aggregation_in_order = 0; + +-- { echoOn } + +explain pipeline select * from (select * from numbers_mt(1e8) group by number) group by number; + +explain pipeline select * from (select * from numbers_mt(1e8) group by number) order by number; + +explain pipeline select number from remote('127.0.0.{1,2,3}', system, numbers_mt) group by number settings distributed_aggregation_memory_efficient = 1; + +explain pipeline select number from remote('127.0.0.{1,2,3}', system, numbers_mt) group by number settings distributed_aggregation_memory_efficient = 0; + +-- { echoOff } + +DROP TABLE IF EXISTS proj_agg_02343; + +CREATE TABLE proj_agg_02343 +( + k1 UInt32, + k2 UInt32, + k3 UInt32, + value UInt32, + PROJECTION aaaa + ( + SELECT + k1, + k2, + k3, + sum(value) + GROUP BY k1, k2, k3 + ) +) +ENGINE = MergeTree +ORDER BY tuple(); + +INSERT INTO proj_agg_02343 SELECT 1, number % 2, number % 4, number FROM numbers(100000); +OPTIMIZE TABLE proj_agg_02343 FINAL; + +-- { echoOn } + +explain pipeline SELECT k1, k3, sum(value) v FROM remote('127.0.0.{1,2}', currentDatabase(), proj_agg_02343) GROUP BY k1, k3 SETTINGS distributed_aggregation_memory_efficient = 0; + +explain pipeline SELECT k1, k3, sum(value) v FROM remote('127.0.0.{1,2}', currentDatabase(), proj_agg_02343) GROUP BY k1, k3 SETTINGS distributed_aggregation_memory_efficient = 1; + +-- { echoOff } + +create table t(a UInt64) engine = MergeTree order by (a); +system stop merges t; +create table dist_t as t engine = Distributed(test_cluster_two_shards, currentDatabase(), t, a % 2); +system stop merges dist_t; +insert into dist_t select number from numbers_mt(10); +insert into dist_t select number from numbers_mt(10); + +-- { echoOn } + +explain pipeline select a from remote('127.0.0.{1,2}', currentDatabase(), dist_t) group by a settings max_threads = 2, distributed_aggregation_memory_efficient = 1; From 7274169c33f10837ec5c0fb8b8edc62a01cac442 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Wed, 29 Jun 2022 10:03:10 +0800 Subject: [PATCH 364/525] update test scripts --- .../integration/test_hive_query/data/prepare_hive_data.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_hive_query/data/prepare_hive_data.sh b/tests/integration/test_hive_query/data/prepare_hive_data.sh index 39d435eb05a..d65ec9cc153 100755 --- a/tests/integration/test_hive_query/data/prepare_hive_data.sh +++ b/tests/integration/test_hive_query/data/prepare_hive_data.sh @@ -1,15 +1,15 @@ #!/bin/bash hive -e "create database test" -hive -e "create table test.demo(id string, score int) PARTITIONED BY(day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'; create table test.demo_orc(id string, score int) PARTITIONED BY(day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'; " -hive -e "create table test.parquet_demo(id string, score int) PARTITIONED BY(day string, hour string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'" -hive -e "create table test.demo_text(id string, score int, day string)row format delimited fields terminated by ','; load data local inpath '/demo_data.txt' into table test.demo_text " +hive -e "drop table if exists test.demo; create table test.demo(id string, score int) PARTITIONED BY(day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'; create table test.demo_orc(id string, score int) PARTITIONED BY(day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'; " +hive -e "drop table if exists test.parquet_demo; create table test.parquet_demo(id string, score int) PARTITIONED BY(day string, hour string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'" +hive -e "drop table if exists test.demo_text; create table test.demo_text(id string, score int, day string)row format delimited fields terminated by ','; load data local inpath '/demo_data.txt' into table test.demo_text " hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.demo partition(day) select * from test.demo_text; insert into test.demo_orc partition(day) select * from test.demo_text" hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '00' as hour from test.demo;" hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '01' as hour from test.demo;" -hive -e "CREATE TABLE test.test_hive_types( f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_array_int array, f_array_string array, f_array_float array, f_map_int map, f_map_string map, f_map_float map, f_struct struct>) PARTITIONED BY( day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';" +hive -e "drop table if test.test_hive_types; exists CREATE TABLE test.test_hive_types( f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_array_int array, f_array_string array, f_array_float array, f_map_int map, f_map_string map, f_map_float map, f_struct struct>) PARTITIONED BY( day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';" hive -e "insert into test.test_hive_types partition(day='2022-02-20') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-20 14:47:04', '2022-02-20', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3), 'd', named_struct('x', 10, 'y', 'xyz')); insert into test.test_hive_types partition(day='2022-02-19') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-19 14:47:04', '2022-02-19', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3), 'd', named_struct('x', 11, 'y', 'abc'));" From ee30c4a3f7039ca6a4e029d3f973f8a943125e21 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Wed, 29 Jun 2022 10:23:00 +0800 Subject: [PATCH 365/525] update test scripts --- tests/integration/test_hive_query/data/prepare_hive_data.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_hive_query/data/prepare_hive_data.sh b/tests/integration/test_hive_query/data/prepare_hive_data.sh index d65ec9cc153..495ea201870 100755 --- a/tests/integration/test_hive_query/data/prepare_hive_data.sh +++ b/tests/integration/test_hive_query/data/prepare_hive_data.sh @@ -9,7 +9,7 @@ hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.demo pa hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '00' as hour from test.demo;" hive -e "set hive.exec.dynamic.partition.mode=nonstrict;insert into test.parquet_demo partition(day, hour) select id, score, day, '01' as hour from test.demo;" -hive -e "drop table if test.test_hive_types; exists CREATE TABLE test.test_hive_types( f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_array_int array, f_array_string array, f_array_float array, f_map_int map, f_map_string map, f_map_float map, f_struct struct>) PARTITIONED BY( day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';" +hive -e "drop table if exists test.test_hive_types; CREATE TABLE test.test_hive_types( f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_array_int array, f_array_string array, f_array_float array, f_map_int map, f_map_string map, f_map_float map, f_struct struct>) PARTITIONED BY( day string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';" hive -e "insert into test.test_hive_types partition(day='2022-02-20') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-20 14:47:04', '2022-02-20', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3), 'd', named_struct('x', 10, 'y', 'xyz')); insert into test.test_hive_types partition(day='2022-02-19') select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, '2022-02-19 14:47:04', '2022-02-19', 'hello world', 'hello world', 'hello world', true, array(1,2,3), array('hello world', 'hello world'), array(float(1.1),float(1.2)), map('a', 100, 'b', 200, 'c', 300), map('a', 'aa', 'b', 'bb', 'c', 'cc'), map('a', float(111.1), 'b', float(222.2), 'c', float(333.3)), named_struct('a', 'aaa', 'b', 200, 'c', float(333.3), 'd', named_struct('x', 11, 'y', 'abc'));" From d5886e4861d5a16e05f01cffab8f0dece84f7e6a Mon Sep 17 00:00:00 2001 From: HeenaBansal2009 Date: Tue, 28 Jun 2022 19:24:06 -0700 Subject: [PATCH 366/525] Updated Index file for GeoFunctions --- docs/en/sql-reference/functions/geo/index.md | 70 +++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/geo/index.md b/docs/en/sql-reference/functions/geo/index.md index f76c3a3f731..ea43b3ef96c 100644 --- a/docs/en/sql-reference/functions/geo/index.md +++ b/docs/en/sql-reference/functions/geo/index.md @@ -3,6 +3,74 @@ sidebar_label: Geo sidebar_position: 62 --- -# Geo Functions +# Geo Functions + +## Geographical Coordinates Functions + +- [greatCircleDistance](./coordinates.md#greatCircleDistance) +- [geoDistance](./coordinates.md#geoDistance) +- [greatCircleAngle](./coordinates.md#greatCircleAngle) +- [pointInEllipses](./coordinates.md#pointInEllipses) +- [pointInPolygon](./coordinates.md#pointInPolygon) + +## Geohash Functions +- [geohashEncode](./geohash.md#geohashEncode) +- [geohashDecode](./geohash.md#geohashDecode) +- [geohashesInBox](./geohash.md#geohashesInBox) + +## H3 Indexes Functions + +- [h3IsValid](./h3#h3IsValid) +- [h3GetResolution](./h3#h3GetResolution) +- [h3EdgeAngle](./h3#h3EdgeAngle) +- [h3EdgeLengthM​](./h3#h3EdgeLengthM​) +- [h3EdgeLengthKm] (./h3#h3EdgeLengthKm) +- [geoToH3](./h3#geoToH3) +- [h3ToGeo](./h3#h3ToGeo) +- [h3ToGeoBoundary](./h3#h3ToGeoBoundary) +- [h3kRing](./h3#h3kRing) +- [h3GetBaseCell](./h3#h3GetBaseCell) +- [h3HexAreaM2](./h3#h3HexAreaM2) +- [h3HexAreaKm2](./h3#h3HexAreaKm2) +- [h3IndexesAreNeighbors](./h3#h3IndexesAreNeighbors) +- [h3ToChildren](./h3#h3ToChildren) +- [h3ToParent](./h3#h3ToParent) +- [h3ToString](./h3#h3ToString) +- [stringToH3](./h3#stringToH3) +- [h3GetResolution](./h3#h3GetResolution) +- [h3IsResClassIII](./h3#h3IsResClassIII) +- [h3IsPentagon](./h3#h3IsPentagon) +- [h3GetFaces](./h3#h3GetFaces) +- [h3CellAreaM2](./h3#h3CellAreaM2) +- [h3CellAreaRads2](./h3#h3CellAreaRads2) +- [h3ToCenterChild](./h3#h3ToCenterChild) +- [h3ExactEdgeLengthM](./h3#h3ExactEdgeLengthM) +- [h3ExactEdgeLengthKm](./h3#h3ExactEdgeLengthKm) +- [h3ExactEdgeLengthRads](./h3#h3ExactEdgeLengthRads) +- [h3NumHexagons](./h3#h3NumHexagons) +- [h3Line](./h3#h3Line) +- [h3Distance](./h3#h3Distance) +- [h3HexRing](./h3#h3HexRing) +- [h3GetUnidirectionalEdge](./h3#h3GetUnidirectionalEdge) +- [h3UnidirectionalEdgeIsValid](./h3#h3UnidirectionalEdgeIsValid) +- [h3GetOriginIndexFromUnidirectionalEdge](./h3#h3GetOriginIndexFromUnidirectionalEdge) +- [h3GetDestinationIndexFromUnidirectionalEdge](./h3#h3GetDestinationIndexFromUnidirectionalEdge) +- [h3GetIndexesFromUnidirectionalEdge](./h3#h3GetIndexesFromUnidirectionalEdge) +- [h3GetUnidirectionalEdgesFromHexagon](./h3#h3GetUnidirectionalEdgesFromHexagon) +- [h3GetUnidirectionalEdgeBoundary](./h3#h3GetUnidirectionalEdgeBoundary) + +## S2 Index Functions + +- [geoToS2](./s2#geoToS2) +- [s2ToGeo](./s2#s2ToGeo) +- [s2GetNeighbors](./s2#s2GetNeighbors) +- [s2CellsIntersect](./s2#s2CellsIntersect) +- [s2CapContains](./s2#s2CapContains) +- [s2CapUnion](./s2#s2CapUnion) +- [s2RectAdd](./s2#s2RectAdd) +- [s2RectContains](./s2#s2RectContains) +- [s2RectUinion](./s2#s2RectUinion) +- [s2RectIntersection](./s2#s2RectIntersection) + [Original article](https://clickhouse.com/docs/en/sql-reference/functions/geo/) From 4d0635371fcc3afe8c6fccbe0d5df048343f8e2f Mon Sep 17 00:00:00 2001 From: Jianmei Zhang Date: Thu, 10 Mar 2022 15:31:27 +0800 Subject: [PATCH 367/525] Support sql stanard create and drop index --- src/Interpreters/InterpreterAlterQuery.cpp | 2 + src/Parsers/ASTAlterQuery.cpp | 43 +++++++- src/Parsers/ASTAlterQuery.h | 8 ++ src/Parsers/ASTIndexDeclaration.cpp | 16 ++- src/Parsers/IAST.h | 1 + src/Parsers/ParserAlterQuery.cpp | 110 ++++++++++++++++++++- src/Parsers/ParserAlterQuery.h | 24 ++++- src/Parsers/formatAST.cpp | 3 +- src/Parsers/formatAST.h | 2 +- src/Storages/AlterCommands.cpp | 4 +- src/Storages/MutationCommands.cpp | 4 +- 11 files changed, 200 insertions(+), 17 deletions(-) diff --git a/src/Interpreters/InterpreterAlterQuery.cpp b/src/Interpreters/InterpreterAlterQuery.cpp index 056a3d9f7b4..23b002350cf 100644 --- a/src/Interpreters/InterpreterAlterQuery.cpp +++ b/src/Interpreters/InterpreterAlterQuery.cpp @@ -295,11 +295,13 @@ AccessRightsElements InterpreterAlterQuery::getRequiredAccessForCommand(const AS break; } case ASTAlterCommand::ADD_INDEX: + case ASTAlterCommand::STD_CREATE_INDEX: { required_access.emplace_back(AccessType::ALTER_ADD_INDEX, database, table); break; } case ASTAlterCommand::DROP_INDEX: + case ASTAlterCommand::STD_DROP_INDEX: { if (command.clear_index) required_access.emplace_back(AccessType::ALTER_CLEAR_INDEX, database, table); diff --git a/src/Parsers/ASTAlterQuery.cpp b/src/Parsers/ASTAlterQuery.cpp index f53c39b192f..36193049a0a 100644 --- a/src/Parsers/ASTAlterQuery.cpp +++ b/src/Parsers/ASTAlterQuery.cpp @@ -1,9 +1,9 @@ +#include #include #include #include #include - namespace DB { namespace ErrorCodes @@ -100,7 +100,9 @@ const char * ASTAlterCommand::typeToString(ASTAlterCommand::Type type) case REMOVE_TTL: return "REMOVE_TTL"; case REMOVE_SAMPLE_BY: return "REMOVE_SAMPLE_BY"; case ADD_INDEX: return "ADD_INDEX"; + case STD_CREATE_INDEX: return "ADD_INDEX"; case DROP_INDEX: return "DROP_INDEX"; + case STD_DROP_INDEX: return "DROP_INDEX"; case MATERIALIZE_INDEX: return "MATERIALIZE_INDEX"; case ADD_CONSTRAINT: return "ADD_CONSTRAINT"; case DROP_CONSTRAINT: return "DROP_CONSTRAINT"; @@ -227,6 +229,15 @@ void ASTAlterCommand::formatImpl(const FormatSettings & settings, FormatState & index->formatImpl(settings, state, frame); } } + else if (type == ASTAlterCommand::STD_CREATE_INDEX) + { + auto name = index_decl->as()->name; + index_decl->as()->name = ""; + + index_decl->formatImpl(settings, state, frame); + + index_decl->as()->name = name; + } else if (type == ASTAlterCommand::DROP_INDEX) { settings.ostr << (settings.hilite ? hilite_keyword : "") << (clear_index ? "CLEAR " : "DROP ") << "INDEX " @@ -238,6 +249,14 @@ void ASTAlterCommand::formatImpl(const FormatSettings & settings, FormatState & partition->formatImpl(settings, state, frame); } } + else if (type == ASTAlterCommand::STD_DROP_INDEX) + { + if (settings.is_translate) + { + settings.ostr << "DROP INDEX " << (if_exists ? "IF EXISTS " : "") << (settings.hilite ? hilite_none : ""); + index->formatImpl(settings, state, frame); + } + } else if (type == ASTAlterCommand::MATERIALIZE_INDEX) { settings.ostr << (settings.hilite ? hilite_keyword : "") << "MATERIALIZE INDEX " << (settings.hilite ? hilite_none : ""); @@ -556,12 +575,26 @@ void ASTAlterQuery::formatQueryImpl(const FormatSettings & settings, FormatState frame.need_parens = false; std::string indent_str = settings.one_line ? "" : std::string(4u * frame.indent, ' '); + settings.ostr << (settings.hilite ? hilite_keyword : "") << indent_str; switch (alter_object) { case AlterObjectType::TABLE: - settings.ostr << "ALTER TABLE "; + if (command_type == ASTAlterCommand::Type::STD_CREATE_INDEX) + { + settings.ostr << "CREATE INDEX " << (if_not_exists ? "IF NOT EXISTS " : ""); + index_name->formatImpl(settings, state, frame); + settings.ostr << " ON "; + } + else if (command_type == ASTAlterCommand::Type::STD_DROP_INDEX) + { + settings.ostr << "DROP INDEX " << (if_exists ? "IF EXISTS " : ""); + index_name->formatImpl(settings, state, frame); + settings.ostr << " ON "; + } + else + settings.ostr << "ALTER TABLE "; break; case AlterObjectType::DATABASE: settings.ostr << "ALTER DATABASE "; @@ -594,6 +627,12 @@ void ASTAlterQuery::formatQueryImpl(const FormatSettings & settings, FormatState FormatStateStacked frame_nested = frame; frame_nested.need_parens = false; frame_nested.expression_list_always_start_on_new_line = true; + + if ((command_type == ASTAlterCommand::Type::STD_CREATE_INDEX) || (command_type == ASTAlterCommand::Type::STD_DROP_INDEX)){ + frame_nested.expression_list_always_start_on_new_line = false; + settings.ostr << " "; + } + static_cast(command_list)->formatImplMultiline(settings, state, frame_nested); } diff --git a/src/Parsers/ASTAlterQuery.h b/src/Parsers/ASTAlterQuery.h index 956f07811ae..0bcb7473e41 100644 --- a/src/Parsers/ASTAlterQuery.h +++ b/src/Parsers/ASTAlterQuery.h @@ -46,6 +46,8 @@ public: ADD_INDEX, DROP_INDEX, MATERIALIZE_INDEX, + STD_CREATE_INDEX, + STD_DROP_INDEX, ADD_CONSTRAINT, DROP_CONSTRAINT, @@ -226,6 +228,12 @@ public: }; AlterObjectType alter_object = AlterObjectType::UNKNOWN; + ASTAlterCommand::Type command_type = ASTAlterCommand::NO_TYPE; + + /// Used for SQL-standard CREATE INDEX and DROP INDEX + ASTPtr index_name; + bool if_not_exists = false; /// option for CREATE INDEX + bool if_exists = false; /// option for DROP INDEX ASTExpressionList * command_list = nullptr; diff --git a/src/Parsers/ASTIndexDeclaration.cpp b/src/Parsers/ASTIndexDeclaration.cpp index d8ebf825674..a9b30a0f433 100644 --- a/src/Parsers/ASTIndexDeclaration.cpp +++ b/src/Parsers/ASTIndexDeclaration.cpp @@ -25,9 +25,19 @@ ASTPtr ASTIndexDeclaration::clone() const void ASTIndexDeclaration::formatImpl(const FormatSettings & s, FormatState & state, FormatStateStacked frame) const { - s.ostr << backQuoteIfNeed(name); - s.ostr << " "; - expr->formatImpl(s, state, frame); + /// '' is from CREATE INDEX + if (name != "") + { + s.ostr << backQuoteIfNeed(name); + s.ostr << " "; + expr->formatImpl(s, state, frame); + } + else + { + s.ostr << "("; + expr->formatImpl(s, state, frame); + s.ostr << ")"; + } s.ostr << (s.hilite ? hilite_keyword : "") << " TYPE " << (s.hilite ? hilite_none : ""); type->formatImpl(s, state, frame); s.ostr << (s.hilite ? hilite_keyword : "") << " GRANULARITY " << (s.hilite ? hilite_none : ""); diff --git a/src/Parsers/IAST.h b/src/Parsers/IAST.h index b73919f4f36..07b6bed4f5b 100644 --- a/src/Parsers/IAST.h +++ b/src/Parsers/IAST.h @@ -184,6 +184,7 @@ public: bool hilite = false; bool one_line; bool always_quote_identifiers = false; + bool is_translate = false; //convert current standard SQL to clickhouse dialect. IdentifierQuotingStyle identifier_quoting_style = IdentifierQuotingStyle::Backticks; // Newline or whitespace. diff --git a/src/Parsers/ParserAlterQuery.cpp b/src/Parsers/ParserAlterQuery.cpp index 9a3c1dd8bed..6a5ea0c2286 100644 --- a/src/Parsers/ParserAlterQuery.cpp +++ b/src/Parsers/ParserAlterQuery.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -94,6 +95,7 @@ bool ParserAlterCommand::parseImpl(Pos & pos, ASTPtr & node, Expected & expected ParserKeyword s_delete("DELETE"); ParserKeyword s_update("UPDATE"); ParserKeyword s_where("WHERE"); + ParserKeyword s_create_index("CREATE INDEX"); ParserKeyword s_to("TO"); ParserKeyword s_remove("REMOVE"); @@ -112,6 +114,7 @@ bool ParserAlterCommand::parseImpl(Pos & pos, ASTPtr & node, Expected & expected ParserIdentifier parser_remove_property; ParserCompoundColumnDeclaration parser_col_decl; ParserIndexDeclaration parser_idx_decl; + ParserCreateIndexDeclaration parser_create_idx_decl; ParserConstraintDeclaration parser_constraint_decl; ParserProjectionDeclaration parser_projection_decl; ParserCompoundColumnDeclaration parser_modify_col_decl(false, false, true); @@ -156,7 +159,18 @@ bool ParserAlterCommand::parseImpl(Pos & pos, ASTPtr & node, Expected & expected break; case ASTAlterQuery::AlterObjectType::TABLE: { - if (s_add_column.ignore(pos, expected)) + if (command_type == ASTAlterCommand::STD_CREATE_INDEX) + { + if (!parser_create_idx_decl.parse(pos, command->index_decl, expected)) + return false; + + command->type = ASTAlterCommand::STD_CREATE_INDEX; + } + else if (command_type == ASTAlterCommand::STD_DROP_INDEX) + { + command->type = ASTAlterCommand::STD_DROP_INDEX; + } + else if (s_add_column.ignore(pos, expected)) { if (s_if_not_exists.ignore(pos, expected)) command->if_not_exists = true; @@ -840,6 +854,44 @@ bool ParserAlterCommandList::parseImpl(Pos & pos, ASTPtr & node, Expected & expe return true; } +bool ParserCreateIndexDeclaration::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) +{ + ParserKeyword s_type("TYPE"); + ParserKeyword s_granularity("GRANULARITY"); + + ParserDataType data_type_p; + ParserExpression expression_p; + ParserUnsignedInteger granularity_p; + + ASTPtr expr; + ASTPtr type; + ASTPtr granularity; + + /// Skip name parser for SQL-standard CREATE INDEX + + if (!expression_p.parse(pos, expr, expected)) + return false; + + if (!s_type.ignore(pos, expected)) + return false; + + if (!data_type_p.parse(pos, type, expected)) + return false; + + if (!s_granularity.ignore(pos, expected)) + return false; + + if (!granularity_p.parse(pos, granularity, expected)) + return false; + + auto index = std::make_shared(); + index->granularity = granularity->as().value.safeGet(); + index->set(index->expr, expr); + index->set(index->type, type); + node = index; + + return true; +} bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { @@ -849,10 +901,45 @@ bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ParserKeyword s_alter_table("ALTER TABLE"); ParserKeyword s_alter_live_view("ALTER LIVE VIEW"); ParserKeyword s_alter_database("ALTER DATABASE"); + ParserKeyword s_create_index("CREATE INDEX"); + ParserKeyword s_drop_index("DROP INDEX"); + ParserKeyword s_on("ON"); + ParserKeyword s_if_not_exists("IF NOT EXISTS"); + ParserKeyword s_if_exists("IF EXISTS"); + + ParserCompoundIdentifier parser_name; ASTAlterQuery::AlterObjectType alter_object_type; - if (s_alter_table.ignore(pos, expected)) + if (s_create_index.ignore(pos, expected)) + { + alter_object_type = ASTAlterQuery::AlterObjectType::TABLE; + if (s_if_not_exists.ignore(pos, expected)) + query->if_not_exists = true; + + if (!parser_name.parse(pos, query->index_name, expected)) + return false; + + if (!s_on.ignore(pos, expected)) + return false; + + query->command_type = ASTAlterCommand::STD_CREATE_INDEX; + } + else if (s_drop_index.ignore(pos, expected)) + { + alter_object_type = ASTAlterQuery::AlterObjectType::TABLE; + if (s_if_exists.ignore(pos, expected)) + query->if_exists = true; + + if (!parser_name.parse(pos, query->index_name, expected)) + return false; + + if (!s_on.ignore(pos, expected)) + return false; + + query->command_type = ASTAlterCommand::STD_DROP_INDEX; + } + else if (s_alter_table.ignore(pos, expected)) { alter_object_type = ASTAlterQuery::AlterObjectType::TABLE; } @@ -891,6 +978,25 @@ bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) if (!p_command_list.parse(pos, command_list, expected)) return false; + /// Set the index_name and exists flags for CREATE and DROP INDEX + if (query->command_type == ASTAlterCommand::STD_CREATE_INDEX) + { + ASTAlterCommand * command_ast = command_list->as()->children[0]->as(); + + command_ast->if_not_exists = query->if_not_exists; + + auto & ast_index_decl = command_ast->index_decl->as(); + ast_index_decl.name = query->index_name->as().name(); + + } + else if (query->command_type == ASTAlterCommand::STD_DROP_INDEX) + { + ASTAlterCommand * command_ast = command_list->as()->children[0]->as(); + + command_ast->if_exists = query->if_exists; + command_ast->as()->index = query->index_name; + } + query->set(query->command_list, command_list); query->alter_object = alter_object_type; diff --git a/src/Parsers/ParserAlterQuery.h b/src/Parsers/ParserAlterQuery.h index b0029ff88fd..25505b1c7f9 100644 --- a/src/Parsers/ParserAlterQuery.h +++ b/src/Parsers/ParserAlterQuery.h @@ -30,6 +30,9 @@ namespace DB * [MATERIALIZE INDEX [IF EXISTS] index_name [IN PARTITION partition]] * ALTER LIVE VIEW [db.name] * [REFRESH] + * + * CREATE INDEX [IF NOT EXISTS] name ON [db].name (expression) TYPE type GRANULARITY value + * DROP INDEX [IF EXISTS] name on [db].name */ class ParserAlterQuery : public IParserBase @@ -48,9 +51,10 @@ protected: public: ASTAlterQuery::AlterObjectType alter_object; + ASTAlterCommand::Type command_type; - ParserAlterCommandList(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE) - : alter_object(alter_object_) {} + ParserAlterCommandList(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE, ASTAlterCommand::Type command_type_= ASTAlterCommand::NO_TYPE) + : alter_object(alter_object_), command_type(command_type_) {} }; @@ -62,10 +66,22 @@ protected: public: ASTAlterQuery::AlterObjectType alter_object; + ASTAlterCommand::Type command_type; - ParserAlterCommand(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE) - : alter_object(alter_object_) {} + ParserAlterCommand(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE, ASTAlterCommand::Type command_type_= ASTAlterCommand::NO_TYPE) + : alter_object(alter_object_), command_type(command_type_) {} }; +/** Part of CREATE INDEX expr TYPE typename(arg1, arg2, ...) GRANULARITY value */ +class ParserCreateIndexDeclaration : public IParserBase +{ +public: + ParserCreateIndexDeclaration() {} + +protected: + const char * getName() const override { return "index declaration in create index"; } + bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; +}; + } diff --git a/src/Parsers/formatAST.cpp b/src/Parsers/formatAST.cpp index fca8ea0aa35..6f5eb3a60b0 100644 --- a/src/Parsers/formatAST.cpp +++ b/src/Parsers/formatAST.cpp @@ -4,10 +4,11 @@ namespace DB { -void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite, bool one_line) +void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite, bool one_line, bool is_translate) { IAST::FormatSettings settings(buf, one_line); settings.hilite = hilite; + settings.is_translate = is_translate; ast.format(settings); } diff --git a/src/Parsers/formatAST.h b/src/Parsers/formatAST.h index 28af2400a4c..0bf845cd04d 100644 --- a/src/Parsers/formatAST.h +++ b/src/Parsers/formatAST.h @@ -11,7 +11,7 @@ class WriteBuffer; /** Takes a syntax tree and turns it back into text. * In case of INSERT query, the data will be missing. */ -void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite = true, bool one_line = false); +void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite = true, bool one_line = false, bool is_translate = false); String serializeAST(const IAST & ast, bool one_line = true); diff --git a/src/Storages/AlterCommands.cpp b/src/Storages/AlterCommands.cpp index 845aae52582..1b04fe3ede4 100644 --- a/src/Storages/AlterCommands.cpp +++ b/src/Storages/AlterCommands.cpp @@ -211,7 +211,7 @@ std::optional AlterCommand::parse(const ASTAlterCommand * command_ command.type = AlterCommand::REMOVE_SAMPLE_BY; return command; } - else if (command_ast->type == ASTAlterCommand::ADD_INDEX) + else if (command_ast->type == ASTAlterCommand::ADD_INDEX || command_ast->type == ASTAlterCommand::STD_CREATE_INDEX) { AlterCommand command; command.ast = command_ast->clone(); @@ -274,7 +274,7 @@ std::optional AlterCommand::parse(const ASTAlterCommand * command_ return command; } - else if (command_ast->type == ASTAlterCommand::DROP_INDEX) + else if (command_ast->type == ASTAlterCommand::DROP_INDEX || command_ast->type == ASTAlterCommand::STD_DROP_INDEX) { AlterCommand command; command.ast = command_ast->clone(); diff --git a/src/Storages/MutationCommands.cpp b/src/Storages/MutationCommands.cpp index 28dfe488869..0f9d17c5d1d 100644 --- a/src/Storages/MutationCommands.cpp +++ b/src/Storages/MutationCommands.cpp @@ -103,7 +103,7 @@ std::optional MutationCommand::parse(ASTAlterCommand * command, return res; } - else if (parse_alter_commands && command->type == ASTAlterCommand::DROP_INDEX) + else if (parse_alter_commands && (command->type == ASTAlterCommand::DROP_INDEX || command->type == ASTAlterCommand::STD_DROP_INDEX)) { MutationCommand res; res.ast = command->ptr(); @@ -160,7 +160,7 @@ std::shared_ptr MutationCommands::ast() const void MutationCommands::writeText(WriteBuffer & out) const { WriteBufferFromOwnString commands_buf; - formatAST(*ast(), commands_buf, /* hilite = */ false, /* one_line = */ true); + formatAST(*ast(), commands_buf, /* hilite = */ false, /* one_line = */ true, /* is_translate = */ true); writeEscapedString(commands_buf.str(), out); } From 13231d6a85485a7b80481313ce46080a028c60b2 Mon Sep 17 00:00:00 2001 From: Jianmei Zhang Date: Thu, 10 Mar 2022 16:08:50 +0800 Subject: [PATCH 368/525] Pass command type for create and drop index --- src/Parsers/ASTAlterQuery.cpp | 3 ++- src/Parsers/ParserAlterQuery.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Parsers/ASTAlterQuery.cpp b/src/Parsers/ASTAlterQuery.cpp index 36193049a0a..465cd24c9d6 100644 --- a/src/Parsers/ASTAlterQuery.cpp +++ b/src/Parsers/ASTAlterQuery.cpp @@ -628,7 +628,8 @@ void ASTAlterQuery::formatQueryImpl(const FormatSettings & settings, FormatState frame_nested.need_parens = false; frame_nested.expression_list_always_start_on_new_line = true; - if ((command_type == ASTAlterCommand::Type::STD_CREATE_INDEX) || (command_type == ASTAlterCommand::Type::STD_DROP_INDEX)){ + if ((command_type == ASTAlterCommand::Type::STD_CREATE_INDEX) || (command_type == ASTAlterCommand::Type::STD_DROP_INDEX)) + { frame_nested.expression_list_always_start_on_new_line = false; settings.ostr << " "; } diff --git a/src/Parsers/ParserAlterQuery.cpp b/src/Parsers/ParserAlterQuery.cpp index 6a5ea0c2286..99105d27bca 100644 --- a/src/Parsers/ParserAlterQuery.cpp +++ b/src/Parsers/ParserAlterQuery.cpp @@ -839,7 +839,7 @@ bool ParserAlterCommandList::parseImpl(Pos & pos, ASTPtr & node, Expected & expe node = command_list; ParserToken s_comma(TokenType::Comma); - ParserAlterCommand p_command(alter_object); + ParserAlterCommand p_command(alter_object, command_type); do { @@ -973,7 +973,7 @@ bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) query->cluster = cluster_str; } - ParserAlterCommandList p_command_list(alter_object_type); + ParserAlterCommandList p_command_list(alter_object_type, query->command_type); ASTPtr command_list; if (!p_command_list.parse(pos, command_list, expected)) return false; From d6b0bc2942992dac782c5a49a049b211b3814650 Mon Sep 17 00:00:00 2001 From: jianmei zhang Date: Wed, 8 Jun 2022 16:27:00 +0800 Subject: [PATCH 369/525] Add test case --- ...319_sql_standard_create_drop_index.reference | 4 ++++ .../02319_sql_standard_create_drop_index.sql | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 tests/queries/0_stateless/02319_sql_standard_create_drop_index.reference create mode 100644 tests/queries/0_stateless/02319_sql_standard_create_drop_index.sql diff --git a/tests/queries/0_stateless/02319_sql_standard_create_drop_index.reference b/tests/queries/0_stateless/02319_sql_standard_create_drop_index.reference new file mode 100644 index 00000000000..6565857f89d --- /dev/null +++ b/tests/queries/0_stateless/02319_sql_standard_create_drop_index.reference @@ -0,0 +1,4 @@ +CREATE TABLE default.t_index\n(\n `a` Int32,\n `b` String,\n INDEX i_a a TYPE minmax GRANULARITY 4,\n INDEX i_b b TYPE bloom_filter GRANULARITY 2\n)\nENGINE = MergeTree\nORDER BY a\nSETTINGS index_granularity = 8192 +t_index i_a minmax a 4 +t_index i_b bloom_filter b 2 +t_index i_b bloom_filter b 2 diff --git a/tests/queries/0_stateless/02319_sql_standard_create_drop_index.sql b/tests/queries/0_stateless/02319_sql_standard_create_drop_index.sql new file mode 100644 index 00000000000..a33505ced3a --- /dev/null +++ b/tests/queries/0_stateless/02319_sql_standard_create_drop_index.sql @@ -0,0 +1,17 @@ +drop table if exists t_index; +create table t_index(a int, b String) engine=MergeTree() order by a; + +create index i_a on t_index(a) TYPE minmax GRANULARITY 4; +create index if not exists i_a on t_index(a) TYPE minmax GRANULARITY 2; + +create index i_b on t_index(b) TYPE bloom_filter GRANULARITY 2; + +show create table t_index; +select table, name, type, expr, granularity from system.data_skipping_indices where database = currentDatabase() and table = 't_index'; + +drop index i_a on t_index; +drop index if exists i_a on t_index; + +select table, name, type, expr, granularity from system.data_skipping_indices where database = currentDatabase() and table = 't_index'; + +drop table t_index; From 9154aec2010c3efa24a3f4bd9a9f648a14ec38a1 Mon Sep 17 00:00:00 2001 From: jianmei zhang Date: Thu, 9 Jun 2022 11:27:46 +0800 Subject: [PATCH 370/525] Fix compile error --- src/Parsers/ASTIndexDeclaration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Parsers/ASTIndexDeclaration.cpp b/src/Parsers/ASTIndexDeclaration.cpp index a9b30a0f433..87500a565e4 100644 --- a/src/Parsers/ASTIndexDeclaration.cpp +++ b/src/Parsers/ASTIndexDeclaration.cpp @@ -26,7 +26,7 @@ ASTPtr ASTIndexDeclaration::clone() const void ASTIndexDeclaration::formatImpl(const FormatSettings & s, FormatState & state, FormatStateStacked frame) const { /// '' is from CREATE INDEX - if (name != "") + if (!name.empty()) { s.ostr << backQuoteIfNeed(name); s.ostr << " "; From 589cba8045ba06efc5e50c12124ed6c557733f57 Mon Sep 17 00:00:00 2001 From: jianmei zhang Date: Thu, 16 Jun 2022 17:58:14 +0800 Subject: [PATCH 371/525] Support sql standard create index in seprate parser files --- .../InterpreterCreateIndexQuery.cpp | 82 ++++++++++++ .../InterpreterCreateIndexQuery.h | 25 ++++ src/Interpreters/InterpreterFactory.cpp | 6 + src/Parsers/ASTCreateIndexQuery.cpp | 65 ++++++++++ src/Parsers/ASTCreateIndexQuery.h | 40 ++++++ src/Parsers/ASTIndexDeclaration.cpp | 16 +-- src/Parsers/ASTIndexDeclaration.h | 1 + src/Parsers/ParserAlterQuery.cpp | 68 +--------- src/Parsers/ParserAlterQuery.h | 12 -- src/Parsers/ParserCreateIndexQuery.cpp | 120 ++++++++++++++++++ src/Parsers/ParserCreateIndexQuery.h | 31 +++++ src/Parsers/ParserQuery.cpp | 3 + 12 files changed, 383 insertions(+), 86 deletions(-) create mode 100644 src/Interpreters/InterpreterCreateIndexQuery.cpp create mode 100644 src/Interpreters/InterpreterCreateIndexQuery.h create mode 100644 src/Parsers/ASTCreateIndexQuery.cpp create mode 100644 src/Parsers/ASTCreateIndexQuery.h create mode 100644 src/Parsers/ParserCreateIndexQuery.cpp create mode 100644 src/Parsers/ParserCreateIndexQuery.h diff --git a/src/Interpreters/InterpreterCreateIndexQuery.cpp b/src/Interpreters/InterpreterCreateIndexQuery.cpp new file mode 100644 index 00000000000..8a237162b54 --- /dev/null +++ b/src/Interpreters/InterpreterCreateIndexQuery.cpp @@ -0,0 +1,82 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace DB +{ + +namespace ErrorCodes +{ + extern const int LOGICAL_ERROR; + extern const int INCORRECT_QUERY; + extern const int NOT_IMPLEMENTED; + extern const int TABLE_IS_READ_ONLY; +} + + +BlockIO InterpreterCreateIndexQuery::execute() +{ + FunctionNameNormalizer().visit(query_ptr.get()); + const auto & create_index = query_ptr->as(); + + AccessRightsElements required_access; + required_access.emplace_back(AccessType::ALTER_ADD_INDEX, create_index.getDatabase(), create_index.getTable()); + + if (!create_index.cluster.empty()) + { + DDLQueryOnClusterParams params; + params.access_to_check = std::move(required_access); + return executeDDLQueryOnCluster(query_ptr, getContext(), params); + } + + getContext()->checkAccess(required_access); + auto table_id = getContext()->resolveStorageID(create_index, Context::ResolveOrdinary); + query_ptr->as().setDatabase(table_id.database_name); + + DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_id.database_name); + if (typeid_cast(database.get()) + && !getContext()->getClientInfo().is_replicated_database_internal) + { + auto guard = DatabaseCatalog::instance().getDDLGuard(table_id.database_name, table_id.table_name); + guard->releaseTableLock(); + return typeid_cast(database.get())->tryEnqueueReplicatedDDL(query_ptr, getContext()); + } + + StoragePtr table = DatabaseCatalog::instance().getTable(table_id, getContext()); + if (table->isStaticStorage()) + throw Exception(ErrorCodes::TABLE_IS_READ_ONLY, "Table is read-only"); + + /// Convert ASTCreateIndexQuery to AlterCommand. + AlterCommands alter_commands; + + AlterCommand command; + command.index_decl = create_index.index_decl; + command.type = AlterCommand::ADD_INDEX; + command.index_name = create_index.index_name->as().name(); + command.if_not_exists = create_index.if_not_exists; + + /// Fill name in ASTIndexDeclaration + auto & ast_index_decl = command.index_decl->as(); + ast_index_decl.name = command.index_name; + + alter_commands.emplace_back(std::move(command)); + + auto alter_lock = table->lockForAlter(getContext()->getSettingsRef().lock_acquire_timeout); + StorageInMemoryMetadata metadata = table->getInMemoryMetadata(); + alter_commands.validate(table, getContext()); + alter_commands.prepare(metadata); + table->checkAlterIsPossible(alter_commands, getContext()); + table->alter(alter_commands, getContext(), alter_lock); + + return {}; +} + +} diff --git a/src/Interpreters/InterpreterCreateIndexQuery.h b/src/Interpreters/InterpreterCreateIndexQuery.h new file mode 100644 index 00000000000..c6cb7285590 --- /dev/null +++ b/src/Interpreters/InterpreterCreateIndexQuery.h @@ -0,0 +1,25 @@ +#pragma once + +#include + + +namespace DB +{ + +class Context; + +class InterpreterCreateIndexQuery : public IInterpreter, WithContext +{ +public: + InterpreterCreateIndexQuery(const ASTPtr & query_ptr_, ContextPtr context_) + : WithContext(context_) + , query_ptr(query_ptr_) {} + + BlockIO execute() override; + +private: + + ASTPtr query_ptr; +}; + +} diff --git a/src/Interpreters/InterpreterFactory.cpp b/src/Interpreters/InterpreterFactory.cpp index c212eb50b97..a2edecbf1e4 100644 --- a/src/Interpreters/InterpreterFactory.cpp +++ b/src/Interpreters/InterpreterFactory.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -42,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -298,6 +300,10 @@ std::unique_ptr InterpreterFactory::get(ASTPtr & query, ContextMut { return std::make_unique(query, context); } + else if (query->as()) + { + return std::make_unique(query, context); + } else if (query->as()) { return std::make_unique(query, context); diff --git a/src/Parsers/ASTCreateIndexQuery.cpp b/src/Parsers/ASTCreateIndexQuery.cpp new file mode 100644 index 00000000000..e83e95f1dc7 --- /dev/null +++ b/src/Parsers/ASTCreateIndexQuery.cpp @@ -0,0 +1,65 @@ +#include +#include +#include +#include + + +namespace DB +{ +namespace ErrorCodes +{ + extern const int UNEXPECTED_AST_STRUCTURE; +} + +/** Get the text that identifies this element. */ +String ASTCreateIndexQuery::getID(char delim) const +{ + return "CreateIndexQuery" + (delim + getDatabase()) + delim + getTable(); +} + +ASTPtr ASTCreateIndexQuery::clone() const +{ + auto res = std::make_shared(*this); + res->children.clear(); + + res->index_name = index_name->clone(); + res->children.push_back(res->index_name); + + res->index_decl = index_decl->clone(); + res->children.push_back(res->index_decl); + return res; +} + +void ASTCreateIndexQuery::formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const +{ + frame.need_parens = false; + + std::string indent_str = settings.one_line ? "" : std::string(4u * frame.indent, ' '); + + settings.ostr << (settings.hilite ? hilite_keyword : "") << indent_str; + + settings.ostr << "CREATE INDEX " << (if_not_exists ? "IF NOT EXISTS " : ""); + index_name->formatImpl(settings, state, frame); + settings.ostr << " ON "; + + settings.ostr << (settings.hilite ? hilite_none : ""); + + if (table) + { + if (database) + { + settings.ostr << indent_str << backQuoteIfNeed(getDatabase()); + settings.ostr << "."; + } + settings.ostr << indent_str << backQuoteIfNeed(getTable()); + } + + formatOnCluster(settings); + + if (!cluster.empty()) + settings.ostr << " "; + + index_decl->formatImpl(settings, state, frame); +} + +} diff --git a/src/Parsers/ASTCreateIndexQuery.h b/src/Parsers/ASTCreateIndexQuery.h new file mode 100644 index 00000000000..aa2bbfe8573 --- /dev/null +++ b/src/Parsers/ASTCreateIndexQuery.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include +#include + + +namespace DB +{ + +/** + * CREATE INDEX [IF NOT EXISTS] name ON [db].name (expression) TYPE type GRANULARITY value + */ + +class ASTCreateIndexQuery : public ASTQueryWithTableAndOutput, public ASTQueryWithOnCluster +{ +public: + bool if_not_exists{false}; + + ASTPtr index_name; + + /// Stores the IndexDeclaration here. + ASTPtr index_decl; + + String getID(char delim) const override; + + ASTPtr clone() const override; + + ASTPtr getRewrittenASTWithoutOnCluster(const WithoutOnClusterASTRewriteParams & params) const override + { + return removeOnCluster(clone(), params.default_database); + } + + virtual QueryKind getQueryKind() const override { return QueryKind::Create; } + +protected: + void formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override; +}; + +} diff --git a/src/Parsers/ASTIndexDeclaration.cpp b/src/Parsers/ASTIndexDeclaration.cpp index 87500a565e4..cc988d1d307 100644 --- a/src/Parsers/ASTIndexDeclaration.cpp +++ b/src/Parsers/ASTIndexDeclaration.cpp @@ -25,19 +25,19 @@ ASTPtr ASTIndexDeclaration::clone() const void ASTIndexDeclaration::formatImpl(const FormatSettings & s, FormatState & state, FormatStateStacked frame) const { - /// '' is from CREATE INDEX - if (!name.empty()) - { - s.ostr << backQuoteIfNeed(name); - s.ostr << " "; - expr->formatImpl(s, state, frame); - } - else + if (from_create_index) { s.ostr << "("; expr->formatImpl(s, state, frame); s.ostr << ")"; } + else + { + s.ostr << backQuoteIfNeed(name); + s.ostr << " "; + expr->formatImpl(s, state, frame); + } + s.ostr << (s.hilite ? hilite_keyword : "") << " TYPE " << (s.hilite ? hilite_none : ""); type->formatImpl(s, state, frame); s.ostr << (s.hilite ? hilite_keyword : "") << " GRANULARITY " << (s.hilite ? hilite_none : ""); diff --git a/src/Parsers/ASTIndexDeclaration.h b/src/Parsers/ASTIndexDeclaration.h index 8416ec6b0a6..31d5ef0e7f8 100644 --- a/src/Parsers/ASTIndexDeclaration.h +++ b/src/Parsers/ASTIndexDeclaration.h @@ -16,6 +16,7 @@ public: IAST * expr; ASTFunction * type; UInt64 granularity; + bool from_create_index = false; /** Get the text that identifies this element. */ String getID(char) const override { return "Index"; } diff --git a/src/Parsers/ParserAlterQuery.cpp b/src/Parsers/ParserAlterQuery.cpp index 99105d27bca..f40a63ef584 100644 --- a/src/Parsers/ParserAlterQuery.cpp +++ b/src/Parsers/ParserAlterQuery.cpp @@ -95,7 +95,6 @@ bool ParserAlterCommand::parseImpl(Pos & pos, ASTPtr & node, Expected & expected ParserKeyword s_delete("DELETE"); ParserKeyword s_update("UPDATE"); ParserKeyword s_where("WHERE"); - ParserKeyword s_create_index("CREATE INDEX"); ParserKeyword s_to("TO"); ParserKeyword s_remove("REMOVE"); @@ -114,7 +113,6 @@ bool ParserAlterCommand::parseImpl(Pos & pos, ASTPtr & node, Expected & expected ParserIdentifier parser_remove_property; ParserCompoundColumnDeclaration parser_col_decl; ParserIndexDeclaration parser_idx_decl; - ParserCreateIndexDeclaration parser_create_idx_decl; ParserConstraintDeclaration parser_constraint_decl; ParserProjectionDeclaration parser_projection_decl; ParserCompoundColumnDeclaration parser_modify_col_decl(false, false, true); @@ -159,14 +157,7 @@ bool ParserAlterCommand::parseImpl(Pos & pos, ASTPtr & node, Expected & expected break; case ASTAlterQuery::AlterObjectType::TABLE: { - if (command_type == ASTAlterCommand::STD_CREATE_INDEX) - { - if (!parser_create_idx_decl.parse(pos, command->index_decl, expected)) - return false; - - command->type = ASTAlterCommand::STD_CREATE_INDEX; - } - else if (command_type == ASTAlterCommand::STD_DROP_INDEX) + if (command_type == ASTAlterCommand::STD_DROP_INDEX) { command->type = ASTAlterCommand::STD_DROP_INDEX; } @@ -854,45 +845,6 @@ bool ParserAlterCommandList::parseImpl(Pos & pos, ASTPtr & node, Expected & expe return true; } -bool ParserCreateIndexDeclaration::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) -{ - ParserKeyword s_type("TYPE"); - ParserKeyword s_granularity("GRANULARITY"); - - ParserDataType data_type_p; - ParserExpression expression_p; - ParserUnsignedInteger granularity_p; - - ASTPtr expr; - ASTPtr type; - ASTPtr granularity; - - /// Skip name parser for SQL-standard CREATE INDEX - - if (!expression_p.parse(pos, expr, expected)) - return false; - - if (!s_type.ignore(pos, expected)) - return false; - - if (!data_type_p.parse(pos, type, expected)) - return false; - - if (!s_granularity.ignore(pos, expected)) - return false; - - if (!granularity_p.parse(pos, granularity, expected)) - return false; - - auto index = std::make_shared(); - index->granularity = granularity->as().value.safeGet(); - index->set(index->expr, expr); - index->set(index->type, type); - node = index; - - return true; -} - bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { auto query = std::make_shared(); @@ -901,31 +853,15 @@ bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ParserKeyword s_alter_table("ALTER TABLE"); ParserKeyword s_alter_live_view("ALTER LIVE VIEW"); ParserKeyword s_alter_database("ALTER DATABASE"); - ParserKeyword s_create_index("CREATE INDEX"); ParserKeyword s_drop_index("DROP INDEX"); ParserKeyword s_on("ON"); - ParserKeyword s_if_not_exists("IF NOT EXISTS"); ParserKeyword s_if_exists("IF EXISTS"); ParserCompoundIdentifier parser_name; ASTAlterQuery::AlterObjectType alter_object_type; - if (s_create_index.ignore(pos, expected)) - { - alter_object_type = ASTAlterQuery::AlterObjectType::TABLE; - if (s_if_not_exists.ignore(pos, expected)) - query->if_not_exists = true; - - if (!parser_name.parse(pos, query->index_name, expected)) - return false; - - if (!s_on.ignore(pos, expected)) - return false; - - query->command_type = ASTAlterCommand::STD_CREATE_INDEX; - } - else if (s_drop_index.ignore(pos, expected)) + if (s_drop_index.ignore(pos, expected)) { alter_object_type = ASTAlterQuery::AlterObjectType::TABLE; if (s_if_exists.ignore(pos, expected)) diff --git a/src/Parsers/ParserAlterQuery.h b/src/Parsers/ParserAlterQuery.h index 25505b1c7f9..22d3f2a13c2 100644 --- a/src/Parsers/ParserAlterQuery.h +++ b/src/Parsers/ParserAlterQuery.h @@ -31,7 +31,6 @@ namespace DB * ALTER LIVE VIEW [db.name] * [REFRESH] * - * CREATE INDEX [IF NOT EXISTS] name ON [db].name (expression) TYPE type GRANULARITY value * DROP INDEX [IF EXISTS] name on [db].name */ @@ -73,15 +72,4 @@ public: }; -/** Part of CREATE INDEX expr TYPE typename(arg1, arg2, ...) GRANULARITY value */ -class ParserCreateIndexDeclaration : public IParserBase -{ -public: - ParserCreateIndexDeclaration() {} - -protected: - const char * getName() const override { return "index declaration in create index"; } - bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; -}; - } diff --git a/src/Parsers/ParserCreateIndexQuery.cpp b/src/Parsers/ParserCreateIndexQuery.cpp new file mode 100644 index 00000000000..fe765281e21 --- /dev/null +++ b/src/Parsers/ParserCreateIndexQuery.cpp @@ -0,0 +1,120 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace DB +{ + +bool ParserCreateIndexDeclaration::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) +{ + ParserKeyword s_type("TYPE"); + ParserKeyword s_granularity("GRANULARITY"); + + ParserDataType data_type_p; + ParserExpression expression_p; + ParserUnsignedInteger granularity_p; + + ASTPtr expr; + ASTPtr type; + ASTPtr granularity; + + /// Skip name parser for SQL-standard CREATE INDEX + if (!expression_p.parse(pos, expr, expected)) + return false; + + if (!s_type.ignore(pos, expected)) + return false; + + if (!data_type_p.parse(pos, type, expected)) + return false; + + if (!s_granularity.ignore(pos, expected)) + return false; + + if (!granularity_p.parse(pos, granularity, expected)) + return false; + + auto index = std::make_shared(); + index->from_create_index = true; + index->granularity = granularity->as().value.safeGet(); + index->set(index->expr, expr); + index->set(index->type, type); + node = index; + + return true; +} + +bool ParserCreateIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expected & expected) +{ + auto query = std::make_shared(); + node = query; + + ParserKeyword s_create("CREATE"); + ParserKeyword s_index("INDEX"); + ParserKeyword s_if_not_exists("IF NOT EXISTS"); + ParserKeyword s_on("ON"); + ParserIdentifier index_name_p; + ParserCreateIndexDeclaration parser_create_idx_decl; + + ASTPtr index_name; + ASTPtr index_decl; + + String cluster_str; + bool if_not_exists = false; + + if (!s_create.ignore(pos, expected)) + return false; + + if (!s_index.ignore(pos, expected)) + return false; + + if (s_if_not_exists.ignore(pos, expected)) + if_not_exists = true; + + if (!index_name_p.parse(pos, index_name, expected)) + return false; + + /// ON [db.] table_name + if (!s_on.ignore(pos, expected)) + return false; + + if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) + return false; + + /// [ON cluster_name] + if (s_on.ignore(pos, expected)) + { + if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) + return false; + } + + if (!parser_create_idx_decl.parse(pos, index_decl, expected)) + return false; + + query->index_name = index_name; + query->children.push_back(index_name); + + query->index_decl = index_decl; + query->children.push_back(index_decl); + + query->if_not_exists = if_not_exists; + query->cluster = cluster_str; + + if (query->database) + query->children.push_back(query->database); + + if (query->table) + query->children.push_back(query->table); + + return true; +} + +} diff --git a/src/Parsers/ParserCreateIndexQuery.h b/src/Parsers/ParserCreateIndexQuery.h new file mode 100644 index 00000000000..3dfdccc301f --- /dev/null +++ b/src/Parsers/ParserCreateIndexQuery.h @@ -0,0 +1,31 @@ +#pragma once + +#include + +namespace DB +{ + +/** Query like this: + * CREATE INDEX [IF NOT EXISTS] name ON [db].name (expression) TYPE type GRANULARITY value + */ + +class ParserCreateIndexQuery : public IParserBase +{ +protected: + const char * getName() const override{ return "CREATE INDEX query"; } + bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; +}; + + +/** Parser for index declaration in create index, where name is ignored. */ +class ParserCreateIndexDeclaration : public IParserBase +{ +public: + ParserCreateIndexDeclaration() {} + +protected: + const char * getName() const override { return "index declaration in create index"; } + bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; +}; + +} diff --git a/src/Parsers/ParserQuery.cpp b/src/Parsers/ParserQuery.cpp index eaea5dd0f5f..3edaa384c36 100644 --- a/src/Parsers/ParserQuery.cpp +++ b/src/Parsers/ParserQuery.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -43,6 +44,7 @@ bool ParserQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ParserCreateSettingsProfileQuery create_settings_profile_p; ParserCreateFunctionQuery create_function_p; ParserDropFunctionQuery drop_function_p; + ParserCreateIndexQuery create_index_p; ParserDropAccessEntityQuery drop_access_entity_p; ParserGrantQuery grant_p; ParserSetRoleQuery set_role_p; @@ -63,6 +65,7 @@ bool ParserQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) || create_settings_profile_p.parse(pos, node, expected) || create_function_p.parse(pos, node, expected) || drop_function_p.parse(pos, node, expected) + || create_index_p.parse(pos, node, expected) || drop_access_entity_p.parse(pos, node, expected) || grant_p.parse(pos, node, expected) || external_ddl_p.parse(pos, node, expected) From 8d49aa4697e17a7cb588f7393a2f85832a43dd8c Mon Sep 17 00:00:00 2001 From: jianmei zhang Date: Fri, 17 Jun 2022 15:46:44 +0800 Subject: [PATCH 372/525] Support sql standard drop index in seprate parser files --- src/Interpreters/InterpreterAlterQuery.cpp | 2 - .../InterpreterCreateIndexQuery.cpp | 5 -- .../InterpreterCreateIndexQuery.h | 1 - .../InterpreterDropIndexQuery.cpp | 71 +++++++++++++++++++ src/Interpreters/InterpreterDropIndexQuery.h | 24 +++++++ src/Interpreters/InterpreterFactory.cpp | 6 ++ src/Parsers/ASTAlterQuery.cpp | 42 +---------- src/Parsers/ASTAlterQuery.h | 8 --- src/Parsers/ASTCreateIndexQuery.cpp | 4 -- src/Parsers/ASTDropIndexQuery.cpp | 63 ++++++++++++++++ src/Parsers/ASTDropIndexQuery.h | 44 ++++++++++++ src/Parsers/IAST.h | 1 - src/Parsers/ParserAlterQuery.cpp | 51 ++----------- src/Parsers/ParserAlterQuery.h | 12 ++-- src/Parsers/ParserCreateIndexQuery.cpp | 2 +- src/Parsers/ParserDropIndexQuery.cpp | 67 +++++++++++++++++ src/Parsers/ParserDropIndexQuery.h | 19 +++++ src/Parsers/ParserQuery.cpp | 3 + src/Parsers/formatAST.cpp | 3 +- src/Parsers/formatAST.h | 2 +- src/Storages/AlterCommands.cpp | 4 +- src/Storages/MutationCommands.cpp | 4 +- 22 files changed, 314 insertions(+), 124 deletions(-) create mode 100644 src/Interpreters/InterpreterDropIndexQuery.cpp create mode 100644 src/Interpreters/InterpreterDropIndexQuery.h create mode 100644 src/Parsers/ASTDropIndexQuery.cpp create mode 100644 src/Parsers/ASTDropIndexQuery.h create mode 100644 src/Parsers/ParserDropIndexQuery.cpp create mode 100644 src/Parsers/ParserDropIndexQuery.h diff --git a/src/Interpreters/InterpreterAlterQuery.cpp b/src/Interpreters/InterpreterAlterQuery.cpp index 23b002350cf..056a3d9f7b4 100644 --- a/src/Interpreters/InterpreterAlterQuery.cpp +++ b/src/Interpreters/InterpreterAlterQuery.cpp @@ -295,13 +295,11 @@ AccessRightsElements InterpreterAlterQuery::getRequiredAccessForCommand(const AS break; } case ASTAlterCommand::ADD_INDEX: - case ASTAlterCommand::STD_CREATE_INDEX: { required_access.emplace_back(AccessType::ALTER_ADD_INDEX, database, table); break; } case ASTAlterCommand::DROP_INDEX: - case ASTAlterCommand::STD_DROP_INDEX: { if (command.clear_index) required_access.emplace_back(AccessType::ALTER_CLEAR_INDEX, database, table); diff --git a/src/Interpreters/InterpreterCreateIndexQuery.cpp b/src/Interpreters/InterpreterCreateIndexQuery.cpp index 8a237162b54..29c151d1e4d 100644 --- a/src/Interpreters/InterpreterCreateIndexQuery.cpp +++ b/src/Interpreters/InterpreterCreateIndexQuery.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include @@ -15,16 +14,12 @@ namespace DB namespace ErrorCodes { - extern const int LOGICAL_ERROR; - extern const int INCORRECT_QUERY; - extern const int NOT_IMPLEMENTED; extern const int TABLE_IS_READ_ONLY; } BlockIO InterpreterCreateIndexQuery::execute() { - FunctionNameNormalizer().visit(query_ptr.get()); const auto & create_index = query_ptr->as(); AccessRightsElements required_access; diff --git a/src/Interpreters/InterpreterCreateIndexQuery.h b/src/Interpreters/InterpreterCreateIndexQuery.h index c6cb7285590..63eaaf5f1c2 100644 --- a/src/Interpreters/InterpreterCreateIndexQuery.h +++ b/src/Interpreters/InterpreterCreateIndexQuery.h @@ -18,7 +18,6 @@ public: BlockIO execute() override; private: - ASTPtr query_ptr; }; diff --git a/src/Interpreters/InterpreterDropIndexQuery.cpp b/src/Interpreters/InterpreterDropIndexQuery.cpp new file mode 100644 index 00000000000..6cc9334fad2 --- /dev/null +++ b/src/Interpreters/InterpreterDropIndexQuery.cpp @@ -0,0 +1,71 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +namespace DB +{ + +namespace ErrorCodes +{ + extern const int TABLE_IS_READ_ONLY; +} + + +BlockIO InterpreterDropIndexQuery::execute() +{ + const auto & drop_index = query_ptr->as(); + + AccessRightsElements required_access; + required_access.emplace_back(AccessType::ALTER_DROP_INDEX, drop_index.getDatabase(), drop_index.getTable()); + + if (!drop_index.cluster.empty()) + { + DDLQueryOnClusterParams params; + params.access_to_check = std::move(required_access); + return executeDDLQueryOnCluster(query_ptr, getContext(), params); + } + + getContext()->checkAccess(required_access); + auto table_id = getContext()->resolveStorageID(drop_index, Context::ResolveOrdinary); + query_ptr->as().setDatabase(table_id.database_name); + + DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_id.database_name); + if (typeid_cast(database.get()) + && !getContext()->getClientInfo().is_replicated_database_internal) + { + auto guard = DatabaseCatalog::instance().getDDLGuard(table_id.database_name, table_id.table_name); + guard->releaseTableLock(); + return typeid_cast(database.get())->tryEnqueueReplicatedDDL(query_ptr, getContext()); + } + + StoragePtr table = DatabaseCatalog::instance().getTable(table_id, getContext()); + if (table->isStaticStorage()) + throw Exception(ErrorCodes::TABLE_IS_READ_ONLY, "Table is read-only"); + + /// Convert ASTDropIndexQuery to AlterCommand. + AlterCommands alter_commands; + + AlterCommand command; + command.ast = drop_index.convertToASTAlterCommand(); + command.type = AlterCommand::DROP_INDEX; + command.index_name = drop_index.index_name->as().name(); + command.if_exists = drop_index.if_exists; + + alter_commands.emplace_back(std::move(command)); + + auto alter_lock = table->lockForAlter(getContext()->getSettingsRef().lock_acquire_timeout); + StorageInMemoryMetadata metadata = table->getInMemoryMetadata(); + alter_commands.validate(table, getContext()); + alter_commands.prepare(metadata); + table->checkAlterIsPossible(alter_commands, getContext()); + table->alter(alter_commands, getContext(), alter_lock); + + return {}; +} + +} diff --git a/src/Interpreters/InterpreterDropIndexQuery.h b/src/Interpreters/InterpreterDropIndexQuery.h new file mode 100644 index 00000000000..c6fb3add72f --- /dev/null +++ b/src/Interpreters/InterpreterDropIndexQuery.h @@ -0,0 +1,24 @@ +#pragma once + +#include + + +namespace DB +{ + +class Context; + +class InterpreterDropIndexQuery : public IInterpreter, WithContext +{ +public: + InterpreterDropIndexQuery(const ASTPtr & query_ptr_, ContextPtr context_) + : WithContext(context_) + , query_ptr(query_ptr_) {} + + BlockIO execute() override; + +private: + ASTPtr query_ptr; +}; + +} diff --git a/src/Interpreters/InterpreterFactory.cpp b/src/Interpreters/InterpreterFactory.cpp index a2edecbf1e4..6b081467ae7 100644 --- a/src/Interpreters/InterpreterFactory.cpp +++ b/src/Interpreters/InterpreterFactory.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -48,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -304,6 +306,10 @@ std::unique_ptr InterpreterFactory::get(ASTPtr & query, ContextMut { return std::make_unique(query, context); } + else if (query->as()) + { + return std::make_unique(query, context); + } else if (query->as()) { return std::make_unique(query, context); diff --git a/src/Parsers/ASTAlterQuery.cpp b/src/Parsers/ASTAlterQuery.cpp index 465cd24c9d6..cfcc5decdf5 100644 --- a/src/Parsers/ASTAlterQuery.cpp +++ b/src/Parsers/ASTAlterQuery.cpp @@ -4,6 +4,7 @@ #include #include + namespace DB { namespace ErrorCodes @@ -100,9 +101,7 @@ const char * ASTAlterCommand::typeToString(ASTAlterCommand::Type type) case REMOVE_TTL: return "REMOVE_TTL"; case REMOVE_SAMPLE_BY: return "REMOVE_SAMPLE_BY"; case ADD_INDEX: return "ADD_INDEX"; - case STD_CREATE_INDEX: return "ADD_INDEX"; case DROP_INDEX: return "DROP_INDEX"; - case STD_DROP_INDEX: return "DROP_INDEX"; case MATERIALIZE_INDEX: return "MATERIALIZE_INDEX"; case ADD_CONSTRAINT: return "ADD_CONSTRAINT"; case DROP_CONSTRAINT: return "DROP_CONSTRAINT"; @@ -229,15 +228,6 @@ void ASTAlterCommand::formatImpl(const FormatSettings & settings, FormatState & index->formatImpl(settings, state, frame); } } - else if (type == ASTAlterCommand::STD_CREATE_INDEX) - { - auto name = index_decl->as()->name; - index_decl->as()->name = ""; - - index_decl->formatImpl(settings, state, frame); - - index_decl->as()->name = name; - } else if (type == ASTAlterCommand::DROP_INDEX) { settings.ostr << (settings.hilite ? hilite_keyword : "") << (clear_index ? "CLEAR " : "DROP ") << "INDEX " @@ -249,14 +239,6 @@ void ASTAlterCommand::formatImpl(const FormatSettings & settings, FormatState & partition->formatImpl(settings, state, frame); } } - else if (type == ASTAlterCommand::STD_DROP_INDEX) - { - if (settings.is_translate) - { - settings.ostr << "DROP INDEX " << (if_exists ? "IF EXISTS " : "") << (settings.hilite ? hilite_none : ""); - index->formatImpl(settings, state, frame); - } - } else if (type == ASTAlterCommand::MATERIALIZE_INDEX) { settings.ostr << (settings.hilite ? hilite_keyword : "") << "MATERIALIZE INDEX " << (settings.hilite ? hilite_none : ""); @@ -581,20 +563,7 @@ void ASTAlterQuery::formatQueryImpl(const FormatSettings & settings, FormatState switch (alter_object) { case AlterObjectType::TABLE: - if (command_type == ASTAlterCommand::Type::STD_CREATE_INDEX) - { - settings.ostr << "CREATE INDEX " << (if_not_exists ? "IF NOT EXISTS " : ""); - index_name->formatImpl(settings, state, frame); - settings.ostr << " ON "; - } - else if (command_type == ASTAlterCommand::Type::STD_DROP_INDEX) - { - settings.ostr << "DROP INDEX " << (if_exists ? "IF EXISTS " : ""); - index_name->formatImpl(settings, state, frame); - settings.ostr << " ON "; - } - else - settings.ostr << "ALTER TABLE "; + settings.ostr << "ALTER TABLE "; break; case AlterObjectType::DATABASE: settings.ostr << "ALTER DATABASE "; @@ -627,13 +596,6 @@ void ASTAlterQuery::formatQueryImpl(const FormatSettings & settings, FormatState FormatStateStacked frame_nested = frame; frame_nested.need_parens = false; frame_nested.expression_list_always_start_on_new_line = true; - - if ((command_type == ASTAlterCommand::Type::STD_CREATE_INDEX) || (command_type == ASTAlterCommand::Type::STD_DROP_INDEX)) - { - frame_nested.expression_list_always_start_on_new_line = false; - settings.ostr << " "; - } - static_cast(command_list)->formatImplMultiline(settings, state, frame_nested); } diff --git a/src/Parsers/ASTAlterQuery.h b/src/Parsers/ASTAlterQuery.h index 0bcb7473e41..956f07811ae 100644 --- a/src/Parsers/ASTAlterQuery.h +++ b/src/Parsers/ASTAlterQuery.h @@ -46,8 +46,6 @@ public: ADD_INDEX, DROP_INDEX, MATERIALIZE_INDEX, - STD_CREATE_INDEX, - STD_DROP_INDEX, ADD_CONSTRAINT, DROP_CONSTRAINT, @@ -228,12 +226,6 @@ public: }; AlterObjectType alter_object = AlterObjectType::UNKNOWN; - ASTAlterCommand::Type command_type = ASTAlterCommand::NO_TYPE; - - /// Used for SQL-standard CREATE INDEX and DROP INDEX - ASTPtr index_name; - bool if_not_exists = false; /// option for CREATE INDEX - bool if_exists = false; /// option for DROP INDEX ASTExpressionList * command_list = nullptr; diff --git a/src/Parsers/ASTCreateIndexQuery.cpp b/src/Parsers/ASTCreateIndexQuery.cpp index e83e95f1dc7..7a5c80551d6 100644 --- a/src/Parsers/ASTCreateIndexQuery.cpp +++ b/src/Parsers/ASTCreateIndexQuery.cpp @@ -6,10 +6,6 @@ namespace DB { -namespace ErrorCodes -{ - extern const int UNEXPECTED_AST_STRUCTURE; -} /** Get the text that identifies this element. */ String ASTCreateIndexQuery::getID(char delim) const diff --git a/src/Parsers/ASTDropIndexQuery.cpp b/src/Parsers/ASTDropIndexQuery.cpp new file mode 100644 index 00000000000..eca8c1676d5 --- /dev/null +++ b/src/Parsers/ASTDropIndexQuery.cpp @@ -0,0 +1,63 @@ +#include +#include +#include + + +namespace DB +{ + +/** Get the text that identifies this element. */ +String ASTDropIndexQuery::getID(char delim) const +{ + return "CreateIndexQuery" + (delim + getDatabase()) + delim + getTable(); +} + +ASTPtr ASTDropIndexQuery::clone() const +{ + auto res = std::make_shared(*this); + res->children.clear(); + + res->index_name = index_name->clone(); + res->children.push_back(res->index_name); + + return res; +} + +void ASTDropIndexQuery::formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const +{ + frame.need_parens = false; + + std::string indent_str = settings.one_line ? "" : std::string(4u * frame.indent, ' '); + + settings.ostr << (settings.hilite ? hilite_keyword : "") << indent_str; + + settings.ostr << "DROP INDEX " << (if_exists ? "IF EXISTS " : ""); + index_name->formatImpl(settings, state, frame); + settings.ostr << " ON "; + + settings.ostr << (settings.hilite ? hilite_none : ""); + + if (table) + { + if (database) + { + settings.ostr << indent_str << backQuoteIfNeed(getDatabase()); + settings.ostr << "."; + } + settings.ostr << indent_str << backQuoteIfNeed(getTable()); + } + + formatOnCluster(settings); +} + +ASTPtr ASTDropIndexQuery::convertToASTAlterCommand() const +{ + auto command = std::make_shared(); + command->index = index_name->clone(); + command->if_exists = if_exists; + command->type = ASTAlterCommand::DROP_INDEX; + + return command; +} + +} diff --git a/src/Parsers/ASTDropIndexQuery.h b/src/Parsers/ASTDropIndexQuery.h new file mode 100644 index 00000000000..2a771c643ed --- /dev/null +++ b/src/Parsers/ASTDropIndexQuery.h @@ -0,0 +1,44 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + + + +namespace DB +{ + +/** + * DROP INDEX [IF EXISTS] name on [db].name + */ + +class ASTDropIndexQuery : public ASTQueryWithTableAndOutput, public ASTQueryWithOnCluster +{ +public: + bool if_exists{false}; + + ASTPtr index_name; + + String getID(char delim) const override; + + ASTPtr clone() const override; + + ASTPtr getRewrittenASTWithoutOnCluster(const WithoutOnClusterASTRewriteParams & params) const override + { + return removeOnCluster(clone(), params.default_database); + } + + virtual QueryKind getQueryKind() const override { return QueryKind::Drop; } + + /// Convert ASTDropIndexQuery to ASTAlterCommand. + ASTPtr convertToASTAlterCommand() const; + +protected: + void formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override; +}; + +} diff --git a/src/Parsers/IAST.h b/src/Parsers/IAST.h index 07b6bed4f5b..b73919f4f36 100644 --- a/src/Parsers/IAST.h +++ b/src/Parsers/IAST.h @@ -184,7 +184,6 @@ public: bool hilite = false; bool one_line; bool always_quote_identifiers = false; - bool is_translate = false; //convert current standard SQL to clickhouse dialect. IdentifierQuotingStyle identifier_quoting_style = IdentifierQuotingStyle::Backticks; // Newline or whitespace. diff --git a/src/Parsers/ParserAlterQuery.cpp b/src/Parsers/ParserAlterQuery.cpp index f40a63ef584..bc3af03a3c4 100644 --- a/src/Parsers/ParserAlterQuery.cpp +++ b/src/Parsers/ParserAlterQuery.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -157,11 +156,7 @@ bool ParserAlterCommand::parseImpl(Pos & pos, ASTPtr & node, Expected & expected break; case ASTAlterQuery::AlterObjectType::TABLE: { - if (command_type == ASTAlterCommand::STD_DROP_INDEX) - { - command->type = ASTAlterCommand::STD_DROP_INDEX; - } - else if (s_add_column.ignore(pos, expected)) + if (s_add_column.ignore(pos, expected)) { if (s_if_not_exists.ignore(pos, expected)) command->if_not_exists = true; @@ -830,7 +825,7 @@ bool ParserAlterCommandList::parseImpl(Pos & pos, ASTPtr & node, Expected & expe node = command_list; ParserToken s_comma(TokenType::Comma); - ParserAlterCommand p_command(alter_object, command_type); + ParserAlterCommand p_command(alter_object); do { @@ -853,29 +848,10 @@ bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ParserKeyword s_alter_table("ALTER TABLE"); ParserKeyword s_alter_live_view("ALTER LIVE VIEW"); ParserKeyword s_alter_database("ALTER DATABASE"); - ParserKeyword s_drop_index("DROP INDEX"); - ParserKeyword s_on("ON"); - ParserKeyword s_if_exists("IF EXISTS"); - - ParserCompoundIdentifier parser_name; ASTAlterQuery::AlterObjectType alter_object_type; - if (s_drop_index.ignore(pos, expected)) - { - alter_object_type = ASTAlterQuery::AlterObjectType::TABLE; - if (s_if_exists.ignore(pos, expected)) - query->if_exists = true; - - if (!parser_name.parse(pos, query->index_name, expected)) - return false; - - if (!s_on.ignore(pos, expected)) - return false; - - query->command_type = ASTAlterCommand::STD_DROP_INDEX; - } - else if (s_alter_table.ignore(pos, expected)) + if (s_alter_table.ignore(pos, expected)) { alter_object_type = ASTAlterQuery::AlterObjectType::TABLE; } @@ -909,30 +885,11 @@ bool ParserAlterQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) query->cluster = cluster_str; } - ParserAlterCommandList p_command_list(alter_object_type, query->command_type); + ParserAlterCommandList p_command_list(alter_object_type); ASTPtr command_list; if (!p_command_list.parse(pos, command_list, expected)) return false; - /// Set the index_name and exists flags for CREATE and DROP INDEX - if (query->command_type == ASTAlterCommand::STD_CREATE_INDEX) - { - ASTAlterCommand * command_ast = command_list->as()->children[0]->as(); - - command_ast->if_not_exists = query->if_not_exists; - - auto & ast_index_decl = command_ast->index_decl->as(); - ast_index_decl.name = query->index_name->as().name(); - - } - else if (query->command_type == ASTAlterCommand::STD_DROP_INDEX) - { - ASTAlterCommand * command_ast = command_list->as()->children[0]->as(); - - command_ast->if_exists = query->if_exists; - command_ast->as()->index = query->index_name; - } - query->set(query->command_list, command_list); query->alter_object = alter_object_type; diff --git a/src/Parsers/ParserAlterQuery.h b/src/Parsers/ParserAlterQuery.h index 22d3f2a13c2..b0029ff88fd 100644 --- a/src/Parsers/ParserAlterQuery.h +++ b/src/Parsers/ParserAlterQuery.h @@ -30,8 +30,6 @@ namespace DB * [MATERIALIZE INDEX [IF EXISTS] index_name [IN PARTITION partition]] * ALTER LIVE VIEW [db.name] * [REFRESH] - * - * DROP INDEX [IF EXISTS] name on [db].name */ class ParserAlterQuery : public IParserBase @@ -50,10 +48,9 @@ protected: public: ASTAlterQuery::AlterObjectType alter_object; - ASTAlterCommand::Type command_type; - ParserAlterCommandList(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE, ASTAlterCommand::Type command_type_= ASTAlterCommand::NO_TYPE) - : alter_object(alter_object_), command_type(command_type_) {} + ParserAlterCommandList(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE) + : alter_object(alter_object_) {} }; @@ -65,10 +62,9 @@ protected: public: ASTAlterQuery::AlterObjectType alter_object; - ASTAlterCommand::Type command_type; - ParserAlterCommand(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE, ASTAlterCommand::Type command_type_= ASTAlterCommand::NO_TYPE) - : alter_object(alter_object_), command_type(command_type_) {} + ParserAlterCommand(ASTAlterQuery::AlterObjectType alter_object_ = ASTAlterQuery::AlterObjectType::TABLE) + : alter_object(alter_object_) {} }; diff --git a/src/Parsers/ParserCreateIndexQuery.cpp b/src/Parsers/ParserCreateIndexQuery.cpp index fe765281e21..22411c71ee5 100644 --- a/src/Parsers/ParserCreateIndexQuery.cpp +++ b/src/Parsers/ParserCreateIndexQuery.cpp @@ -70,7 +70,7 @@ bool ParserCreateIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expect String cluster_str; bool if_not_exists = false; - if (!s_create.ignore(pos, expected)) + if (!s_create.ignore(pos, expected)) return false; if (!s_index.ignore(pos, expected)) diff --git a/src/Parsers/ParserDropIndexQuery.cpp b/src/Parsers/ParserDropIndexQuery.cpp new file mode 100644 index 00000000000..19f31d6128d --- /dev/null +++ b/src/Parsers/ParserDropIndexQuery.cpp @@ -0,0 +1,67 @@ +#include +#include +#include +#include +#include +#include + +namespace DB +{ + +bool ParserDropIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expected & expected) +{ + auto query = std::make_shared(); + node = query; + + ParserKeyword s_drop("DROP"); + ParserKeyword s_index("INDEX"); + ParserKeyword s_on("ON"); + ParserKeyword s_if_exists("IF EXISTS"); + ParserIdentifier index_name_p; + + String cluster_str; + bool if_exists = false; + + if (!s_drop.ignore(pos, expected)) + return false; + + if (!s_index.ignore(pos, expected)) + return false; + + if (s_if_exists.ignore(pos, expected)) + if_exists = true; + + if (!index_name_p.parse(pos, query->index_name, expected)) + return false; + + /// ON [db.] table_name + if (!s_on.ignore(pos, expected)) + return false; + + if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) + return false; + + /// [ON cluster_name] + if (s_on.ignore(pos, expected)) + { + if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) + return false; + + query->cluster = std::move(cluster_str); + } + + if(query->index_name) + query->children.push_back(query->index_name); + + query->if_exists = if_exists; + + if (query->database) + query->children.push_back(query->database); + + if (query->table) + query->children.push_back(query->table); + + return true; +} + +} diff --git a/src/Parsers/ParserDropIndexQuery.h b/src/Parsers/ParserDropIndexQuery.h new file mode 100644 index 00000000000..1b6535c7efb --- /dev/null +++ b/src/Parsers/ParserDropIndexQuery.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +namespace DB +{ + +/** Query like this: + * DROP INDEX [IF EXISTS] name ON [db].name + */ + +class ParserDropIndexQuery : public IParserBase +{ +protected: + const char * getName() const override{ return "DROP INDEX query"; } + bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; +}; + +} diff --git a/src/Parsers/ParserQuery.cpp b/src/Parsers/ParserQuery.cpp index 3edaa384c36..a3cafee65d7 100644 --- a/src/Parsers/ParserQuery.cpp +++ b/src/Parsers/ParserQuery.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -45,6 +46,7 @@ bool ParserQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ParserCreateFunctionQuery create_function_p; ParserDropFunctionQuery drop_function_p; ParserCreateIndexQuery create_index_p; + ParserDropIndexQuery drop_index_p; ParserDropAccessEntityQuery drop_access_entity_p; ParserGrantQuery grant_p; ParserSetRoleQuery set_role_p; @@ -66,6 +68,7 @@ bool ParserQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) || create_function_p.parse(pos, node, expected) || drop_function_p.parse(pos, node, expected) || create_index_p.parse(pos, node, expected) + || drop_index_p.parse(pos, node, expected) || drop_access_entity_p.parse(pos, node, expected) || grant_p.parse(pos, node, expected) || external_ddl_p.parse(pos, node, expected) diff --git a/src/Parsers/formatAST.cpp b/src/Parsers/formatAST.cpp index 6f5eb3a60b0..fca8ea0aa35 100644 --- a/src/Parsers/formatAST.cpp +++ b/src/Parsers/formatAST.cpp @@ -4,11 +4,10 @@ namespace DB { -void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite, bool one_line, bool is_translate) +void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite, bool one_line) { IAST::FormatSettings settings(buf, one_line); settings.hilite = hilite; - settings.is_translate = is_translate; ast.format(settings); } diff --git a/src/Parsers/formatAST.h b/src/Parsers/formatAST.h index 0bf845cd04d..28af2400a4c 100644 --- a/src/Parsers/formatAST.h +++ b/src/Parsers/formatAST.h @@ -11,7 +11,7 @@ class WriteBuffer; /** Takes a syntax tree and turns it back into text. * In case of INSERT query, the data will be missing. */ -void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite = true, bool one_line = false, bool is_translate = false); +void formatAST(const IAST & ast, WriteBuffer & buf, bool hilite = true, bool one_line = false); String serializeAST(const IAST & ast, bool one_line = true); diff --git a/src/Storages/AlterCommands.cpp b/src/Storages/AlterCommands.cpp index 1b04fe3ede4..845aae52582 100644 --- a/src/Storages/AlterCommands.cpp +++ b/src/Storages/AlterCommands.cpp @@ -211,7 +211,7 @@ std::optional AlterCommand::parse(const ASTAlterCommand * command_ command.type = AlterCommand::REMOVE_SAMPLE_BY; return command; } - else if (command_ast->type == ASTAlterCommand::ADD_INDEX || command_ast->type == ASTAlterCommand::STD_CREATE_INDEX) + else if (command_ast->type == ASTAlterCommand::ADD_INDEX) { AlterCommand command; command.ast = command_ast->clone(); @@ -274,7 +274,7 @@ std::optional AlterCommand::parse(const ASTAlterCommand * command_ return command; } - else if (command_ast->type == ASTAlterCommand::DROP_INDEX || command_ast->type == ASTAlterCommand::STD_DROP_INDEX) + else if (command_ast->type == ASTAlterCommand::DROP_INDEX) { AlterCommand command; command.ast = command_ast->clone(); diff --git a/src/Storages/MutationCommands.cpp b/src/Storages/MutationCommands.cpp index 0f9d17c5d1d..28dfe488869 100644 --- a/src/Storages/MutationCommands.cpp +++ b/src/Storages/MutationCommands.cpp @@ -103,7 +103,7 @@ std::optional MutationCommand::parse(ASTAlterCommand * command, return res; } - else if (parse_alter_commands && (command->type == ASTAlterCommand::DROP_INDEX || command->type == ASTAlterCommand::STD_DROP_INDEX)) + else if (parse_alter_commands && command->type == ASTAlterCommand::DROP_INDEX) { MutationCommand res; res.ast = command->ptr(); @@ -160,7 +160,7 @@ std::shared_ptr MutationCommands::ast() const void MutationCommands::writeText(WriteBuffer & out) const { WriteBufferFromOwnString commands_buf; - formatAST(*ast(), commands_buf, /* hilite = */ false, /* one_line = */ true, /* is_translate = */ true); + formatAST(*ast(), commands_buf, /* hilite = */ false, /* one_line = */ true); writeEscapedString(commands_buf.str(), out); } From d75af09f7435c8229ff3482bfa0fd80b6bd866f2 Mon Sep 17 00:00:00 2001 From: jianmei zhang Date: Sat, 18 Jun 2022 18:18:31 +0800 Subject: [PATCH 373/525] Fix style error --- src/Parsers/ASTCreateIndexQuery.h | 3 +-- src/Parsers/ASTDropIndexQuery.cpp | 2 +- src/Parsers/ASTDropIndexQuery.h | 4 +--- src/Parsers/ParserDropIndexQuery.cpp | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Parsers/ASTCreateIndexQuery.h b/src/Parsers/ASTCreateIndexQuery.h index aa2bbfe8573..f3c6a7830a4 100644 --- a/src/Parsers/ASTCreateIndexQuery.h +++ b/src/Parsers/ASTCreateIndexQuery.h @@ -8,8 +8,7 @@ namespace DB { -/** - * CREATE INDEX [IF NOT EXISTS] name ON [db].name (expression) TYPE type GRANULARITY value +/** CREATE INDEX [IF NOT EXISTS] name ON [db].name (expression) TYPE type GRANULARITY value */ class ASTCreateIndexQuery : public ASTQueryWithTableAndOutput, public ASTQueryWithOnCluster diff --git a/src/Parsers/ASTDropIndexQuery.cpp b/src/Parsers/ASTDropIndexQuery.cpp index eca8c1676d5..78152d213b8 100644 --- a/src/Parsers/ASTDropIndexQuery.cpp +++ b/src/Parsers/ASTDropIndexQuery.cpp @@ -24,7 +24,7 @@ ASTPtr ASTDropIndexQuery::clone() const } void ASTDropIndexQuery::formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const -{ +{ frame.need_parens = false; std::string indent_str = settings.one_line ? "" : std::string(4u * frame.indent, ' '); diff --git a/src/Parsers/ASTDropIndexQuery.h b/src/Parsers/ASTDropIndexQuery.h index 2a771c643ed..d7e39f797b5 100644 --- a/src/Parsers/ASTDropIndexQuery.h +++ b/src/Parsers/ASTDropIndexQuery.h @@ -8,12 +8,10 @@ #include - namespace DB { -/** - * DROP INDEX [IF EXISTS] name on [db].name +/** DROP INDEX [IF EXISTS] name on [db].name */ class ASTDropIndexQuery : public ASTQueryWithTableAndOutput, public ASTQueryWithOnCluster diff --git a/src/Parsers/ParserDropIndexQuery.cpp b/src/Parsers/ParserDropIndexQuery.cpp index 19f31d6128d..0844ea16ae0 100644 --- a/src/Parsers/ParserDropIndexQuery.cpp +++ b/src/Parsers/ParserDropIndexQuery.cpp @@ -50,7 +50,7 @@ bool ParserDropIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expected query->cluster = std::move(cluster_str); } - if(query->index_name) + if (query->index_name) query->children.push_back(query->index_name); query->if_exists = if_exists; From f7ef571842f788993718b658dbf83b0b530f26cf Mon Sep 17 00:00:00 2001 From: Vladimir Chebotarev Date: Wed, 29 Jun 2022 03:10:10 +0300 Subject: [PATCH 374/525] Don't spoil return code of integration tests runner with redundant tee. --- tests/ci/integration_test_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ci/integration_test_check.py b/tests/ci/integration_test_check.py index cf0dfe51e9b..9fda2d09ae6 100644 --- a/tests/ci/integration_test_check.py +++ b/tests/ci/integration_test_check.py @@ -225,7 +225,7 @@ if __name__ == "__main__": output_path_log = os.path.join(result_path, "main_script_log.txt") runner_path = os.path.join(repo_path, "tests/integration", "ci-runner.py") - run_command = f"sudo -E {runner_path} | tee {output_path_log}" + run_command = f"sudo -E {runner_path}" logging.info("Going to run command: `%s`", run_command) logging.info( "ENV parameters for runner:\n%s", From dea3b5bfcecfa8ce778bd61fab86e448ad648fec Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Wed, 29 Jun 2022 08:56:15 +0300 Subject: [PATCH 375/525] Revert "Non Negative Derivative window function" --- src/Common/IntervalKind.cpp | 27 +---- src/Common/IntervalKind.h | 5 +- src/Processors/Transforms/WindowTransform.cpp | 112 ------------------ .../02232_non_negative_derivative.reference | 64 ---------- .../02232_non_negative_derivative.sql | 63 ---------- 5 files changed, 5 insertions(+), 266 deletions(-) delete mode 100644 tests/queries/0_stateless/02232_non_negative_derivative.reference delete mode 100644 tests/queries/0_stateless/02232_non_negative_derivative.sql diff --git a/src/Common/IntervalKind.cpp b/src/Common/IntervalKind.cpp index 75c2a83e9fb..d3cd4eeff8f 100644 --- a/src/Common/IntervalKind.cpp +++ b/src/Common/IntervalKind.cpp @@ -9,13 +9,13 @@ namespace ErrorCodes extern const int SYNTAX_ERROR; } -Float64 IntervalKind::toAvgSeconds() const +Int32 IntervalKind::toAvgSeconds() const { switch (kind) { - case IntervalKind::Nanosecond: return 0.000000001; - case IntervalKind::Microsecond: return 0.000001; - case IntervalKind::Millisecond: return 0.001; + case IntervalKind::Nanosecond: + case IntervalKind::Microsecond: + case IntervalKind::Millisecond: return 0; /// fractional parts of seconds have 0 seconds case IntervalKind::Second: return 1; case IntervalKind::Minute: return 60; case IntervalKind::Hour: return 3600; @@ -28,25 +28,6 @@ Float64 IntervalKind::toAvgSeconds() const __builtin_unreachable(); } -bool IntervalKind::isFixedLength() const -{ - switch (kind) - { - case IntervalKind::Nanosecond: - case IntervalKind::Microsecond: - case IntervalKind::Millisecond: - case IntervalKind::Second: - case IntervalKind::Minute: - case IntervalKind::Hour: - case IntervalKind::Day: - case IntervalKind::Week: return true; - case IntervalKind::Month: - case IntervalKind::Quarter: - case IntervalKind::Year: return false; - } - __builtin_unreachable(); -} - IntervalKind IntervalKind::fromAvgSeconds(Int64 num_seconds) { if (num_seconds) diff --git a/src/Common/IntervalKind.h b/src/Common/IntervalKind.h index 65c14515e34..d5f2b5672cd 100644 --- a/src/Common/IntervalKind.h +++ b/src/Common/IntervalKind.h @@ -31,15 +31,12 @@ struct IntervalKind /// Returns number of seconds in one interval. /// For `Month`, `Quarter` and `Year` the function returns an average number of seconds. - Float64 toAvgSeconds() const; + Int32 toAvgSeconds() const; /// Chooses an interval kind based on number of seconds. /// For example, `IntervalKind::fromAvgSeconds(3600)` returns `IntervalKind::Hour`. static IntervalKind fromAvgSeconds(Int64 num_seconds); - /// Returns whether IntervalKind has a fixed number of seconds (e.g. Day) or non-fixed(e.g. Month) - bool isFixedLength() const; - /// Returns an uppercased version of what `toString()` returns. const char * toKeyword() const; diff --git a/src/Processors/Transforms/WindowTransform.cpp b/src/Processors/Transforms/WindowTransform.cpp index 09805696472..3eb0f62cb01 100644 --- a/src/Processors/Transforms/WindowTransform.cpp +++ b/src/Processors/Transforms/WindowTransform.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -28,7 +27,6 @@ namespace ErrorCodes extern const int BAD_ARGUMENTS; extern const int NOT_IMPLEMENTED; extern const int ILLEGAL_COLUMN; - extern const int ILLEGAL_TYPE_OF_ARGUMENT; } // Interface for true window functions. It's not much of an interface, they just @@ -2202,109 +2200,6 @@ struct WindowFunctionNthValue final : public WindowFunction } }; -struct NonNegativeDerivativeState -{ - Float64 previous_metric = 0; - Float64 previous_timestamp = 0; -}; - -// nonNegativeDerivative(metric_column, timestamp_column[, INTERVAL 1 SECOND]) -struct WindowFunctionNonNegativeDerivative final : public StatefulWindowFunction -{ - static constexpr size_t ARGUMENT_METRIC = 0; - static constexpr size_t ARGUMENT_TIMESTAMP = 1; - static constexpr size_t ARGUMENT_INTERVAL = 2; - - WindowFunctionNonNegativeDerivative(const std::string & name_, - const DataTypes & argument_types_, const Array & parameters_) - : StatefulWindowFunction(name_, argument_types_, parameters_) - { - if (!parameters.empty()) - { - throw Exception(ErrorCodes::BAD_ARGUMENTS, - "Function {} cannot be parameterized", name_); - } - - if (argument_types.size() != 2 && argument_types.size() != 3) - { - throw Exception(ErrorCodes::BAD_ARGUMENTS, - "Function {} takes 2 or 3 arguments", name_); - } - - if (!isNumber(argument_types[ARGUMENT_METRIC])) - { - throw Exception(ErrorCodes::BAD_ARGUMENTS, - "Argument {} must be a number, '{}' given", - ARGUMENT_METRIC, - argument_types[ARGUMENT_METRIC]->getName()); - } - - if (!isDateTime(argument_types[ARGUMENT_TIMESTAMP]) && !isDateTime64(argument_types[ARGUMENT_TIMESTAMP])) - { - throw Exception(ErrorCodes::BAD_ARGUMENTS, - "Argument {} must be DateTime or DateTime64, '{}' given", - ARGUMENT_TIMESTAMP, - argument_types[ARGUMENT_TIMESTAMP]->getName()); - } - - if (argument_types.size() == 3) - { - const DataTypeInterval * interval_datatype = checkAndGetDataType(argument_types[ARGUMENT_INTERVAL].get()); - if (!interval_datatype) - { - throw Exception( - ErrorCodes::BAD_ARGUMENTS, - "Argument {} must be an INTERVAL, '{}' given", - ARGUMENT_INTERVAL, - argument_types[ARGUMENT_INTERVAL]->getName()); - } - if (!interval_datatype->getKind().isFixedLength()) - { - throw Exception( - ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, - "The INTERVAL must be a week or shorter, '{}' given", - argument_types[ARGUMENT_INTERVAL]->getName()); - } - interval_length = interval_datatype->getKind().toAvgSeconds(); - interval_specified = true; - } - } - - - DataTypePtr getReturnType() const override { return argument_types[0]; } - - bool allocatesMemoryInArena() const override { return false; } - - void windowInsertResultInto(const WindowTransform * transform, - size_t function_index) override - { - const auto & current_block = transform->blockAt(transform->current_row); - const auto & workspace = transform->workspaces[function_index]; - auto & state = getState(workspace); - - auto interval_duration = interval_specified ? interval_length * - (*current_block.input_columns[workspace.argument_column_indices[ARGUMENT_INTERVAL]]).getFloat64(0) : 1; - - Float64 last_metric = state.previous_metric; - Float64 last_timestamp = state.previous_timestamp; - - Float64 curr_metric = WindowFunctionHelpers::getValue(transform, function_index, ARGUMENT_METRIC, transform->current_row); - Float64 curr_timestamp = WindowFunctionHelpers::getValue(transform, function_index, ARGUMENT_TIMESTAMP, transform->current_row); - - Float64 time_elapsed = curr_timestamp - last_timestamp; - Float64 metric_diff = curr_metric - last_metric; - Float64 result = (time_elapsed != 0) ? (metric_diff / time_elapsed * interval_duration) : 0; - - state.previous_metric = curr_metric; - state.previous_timestamp = curr_timestamp; - - WindowFunctionHelpers::setValueToOutputColumn(transform, function_index, result >= 0 ? result : 0); - } -private: - Float64 interval_length = 1; - bool interval_specified = false; -}; - void registerWindowFunctions(AggregateFunctionFactory & factory) { @@ -2404,13 +2299,6 @@ void registerWindowFunctions(AggregateFunctionFactory & factory) return std::make_shared( name, argument_types, parameters); }, properties}); - - factory.registerFunction("nonNegativeDerivative", {[](const std::string & name, - const DataTypes & argument_types, const Array & parameters, const Settings *) - { - return std::make_shared( - name, argument_types, parameters); - }, properties}); } } diff --git a/tests/queries/0_stateless/02232_non_negative_derivative.reference b/tests/queries/0_stateless/02232_non_negative_derivative.reference deleted file mode 100644 index 7559f527c7a..00000000000 --- a/tests/queries/0_stateless/02232_non_negative_derivative.reference +++ /dev/null @@ -1,64 +0,0 @@ -1 -1979-12-12 21:21:21.123 1.1 3.5045052519931732e-9 -1979-12-12 21:21:22.000 1.3345 0.26738883339230357 -1979-12-12 21:21:23.000 1.54 0.20550000000000002 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:21.124 2.34 0 -1979-12-12 21:21:21.127 3.7 453.33916989529325 -1979-12-12 21:21:21.123 1.1 1.0513515755979521e-17 -1979-12-12 21:21:22.000 1.3345 8.021665001769108e-10 -1979-12-12 21:21:23.000 1.54 6.165000000000001e-10 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:21.124 2.34 0 -1979-12-12 21:21:21.127 3.7 0.0000013600175096858798 -1979-12-12 21:21:21.123 1.1 1.4018021007972692e-14 -1979-12-12 21:21:22.000 1.3345 0.0000010695553335692141 -1979-12-12 21:21:23.000 1.54 8.22e-7 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:21.124 2.34 0 -1979-12-12 21:21:21.127 3.7 0.001813356679581173 -1979-12-12 21:21:21.123 1.1 1.7522526259965866e-11 -1979-12-12 21:21:22.000 1.3345 0.0013369441669615178 -1979-12-12 21:21:23.000 1.54 0.0010275000000000002 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:21.124 2.34 0 -1979-12-12 21:21:21.127 3.7 2.2666958494764664 -1979-12-12 21:21:21.123 1.1 2.102703151195904e-8 -1979-12-12 21:21:22.000 1.3345 1.6043330003538214 -1979-12-12 21:21:23.000 1.54 1.233 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:21.124 2.34 0 -1979-12-12 21:21:21.127 3.7 2720.0350193717595 -1979-12-12 21:21:21.123 1.1 0.0000014718922058371327 -1979-12-12 21:21:22.000 1.3345 112.3033100247675 -1979-12-12 21:21:23.000 1.54 86.31 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:21.124 2.34 0 -1979-12-12 21:21:21.127 3.7 190402.45135602317 -1979-12-12 21:21:21.123 1.1 0.0001009297512574034 -1979-12-12 21:21:21.124 2.34 35712459.78375156 -1979-12-12 21:21:21.127 3.7 13056168.092984445 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:22.000 1.3345 0 -1979-12-12 21:21:23.000 1.54 5918.400000000001 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.123 1.1 0.0027251032839498914 -1979-12-12 21:21:21.124 2.34 964236414.1612921 -1979-12-12 21:21:21.127 3.7 352516538.51058006 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:22.000 1.3345 0 -1979-12-12 21:21:23.000 1.54 159796.80000000002 -1979-12-12 21:21:23.000 1.54 0 -1979-12-12 21:21:21.123 1.1 0.021195247764054712 -1979-12-12 21:21:21.124 2.34 7499616554.587828 -1979-12-12 21:21:21.127 3.7 2741795299.5267334 -1979-12-12 21:21:21.129 2.1 0 -1979-12-12 21:21:22.000 1.3345 0 -1979-12-12 21:21:23.000 1.54 1242864 -1979-12-12 21:21:23.000 1.54 0 diff --git a/tests/queries/0_stateless/02232_non_negative_derivative.sql b/tests/queries/0_stateless/02232_non_negative_derivative.sql deleted file mode 100644 index c4cbadb68a8..00000000000 --- a/tests/queries/0_stateless/02232_non_negative_derivative.sql +++ /dev/null @@ -1,63 +0,0 @@ -DROP TABLE IF EXISTS nnd; - -CREATE TABLE nnd -( - id Int8, ts DateTime64(3, 'UTC'), metric Float64 -) -ENGINE=MergeTree() -ORDER BY id; - -INSERT INTO nnd VALUES (1, toDateTime64('1979-12-12 21:21:21.123', 3, 'UTC'), 1.1), (2, toDateTime64('1979-12-12 21:21:21.124', 3, 'UTC'), 2.34), (3, toDateTime64('1979-12-12 21:21:21.127', 3, 'UTC'), 3.7); -INSERT INTO nnd VALUES (4, toDateTime64('1979-12-12 21:21:21.129', 3, 'UTC'), 2.1), (5, toDateTime('1979-12-12 21:21:22', 'UTC'), 1.3345), (6, toDateTime('1979-12-12 21:21:23', 'UTC'), 1.54), (7, toDateTime('1979-12-12 21:21:23', 'UTC'), 1.54); - --- shall work for precise intervals --- INTERVAL 1 SECOND shall be default -SELECT ( - SELECT - ts, - metric, - nonNegativeDerivative(metric, ts) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv - FROM nnd - LIMIT 5, 1 - ) = ( - SELECT - ts, - metric, - nonNegativeDerivative(metric, ts, toIntervalSecond(1)) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv - FROM nnd - LIMIT 5, 1 - ); -SELECT ts, metric, nonNegativeDerivative(metric, ts) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Nanosecond -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 3 NANOSECOND) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Microsecond -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 4 MICROSECOND) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Millisecond -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 5 MILLISECOND) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Second -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 6 SECOND) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Minute -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 7 MINUTE) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Hour -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 8 HOUR) OVER (ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Day -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 9 DAY) OVER (ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; --- Week -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 10 WEEK) OVER (ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; - --- shall not work for month, quarter, year (intervals with floating number of seconds) --- Month -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 11 MONTH) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; -- { serverError ILLEGAL_TYPE_OF_ARGUMENT } --- Quarter -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 12 QUARTER) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; -- { serverError ILLEGAL_TYPE_OF_ARGUMENT } --- Year -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 13 YEAR) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; -- { serverError ILLEGAL_TYPE_OF_ARGUMENT } - --- test against wrong arguments/types -SELECT ts, metric, nonNegativeDerivative(metric, 1, INTERVAL 3 NANOSECOND) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; -- { serverError BAD_ARGUMENTS } -SELECT ts, metric, nonNegativeDerivative('string not datetime', ts, INTERVAL 3 NANOSECOND) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; -- { serverError BAD_ARGUMENTS } -SELECT ts, metric, nonNegativeDerivative(metric, ts, INTERVAL 3 NANOSECOND, id) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; -- { serverError BAD_ARGUMENTS } -SELECT ts, metric, nonNegativeDerivative(metric) OVER (PARTITION BY metric ORDER BY ts ASC Rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS deriv FROM nnd; -- { serverError BAD_ARGUMENTS } - --- cleanup -DROP TABLE IF EXISTS nnd; From e7dbe526f8b5d108d8e42086ee17d0b8090fe3f5 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Wed, 29 Jun 2022 09:46:45 +0300 Subject: [PATCH 376/525] Update ParserCreateQuery.cpp --- src/Parsers/ParserCreateQuery.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Parsers/ParserCreateQuery.cpp b/src/Parsers/ParserCreateQuery.cpp index 08227aa0c2f..4b6ab67e22f 100644 --- a/src/Parsers/ParserCreateQuery.cpp +++ b/src/Parsers/ParserCreateQuery.cpp @@ -575,6 +575,8 @@ bool ParserCreateTableQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expe if (!table_properties_p.parse(pos, columns_list, expected)) return false; + /// We allow a trailing comma in the columns list for user convenience. + /// Although it diverges from the SQL standard slightly. s_comma.ignore(pos, expected); if (!s_rparen.ignore(pos, expected)) From 00372e4646f06008867da06ebcb938b0f118abf6 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Wed, 29 Jun 2022 11:05:36 +0200 Subject: [PATCH 377/525] Fixed tests --- .../0_stateless/02345_partial_sort_transform_optimization.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql index a53a352f57e..fe2ab096ab7 100644 --- a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql @@ -1,3 +1,5 @@ +-- Tags: no-backward-compatibility-check:22.6.1 + -- Regression for PartialSortingTransform optimization that requires at least 1500 rows. SELECT * FROM (SELECT * FROM (SELECT 0 a, toNullable(number) b, toString(number) c FROM numbers(1e6)) ORDER BY a DESC, b DESC, c LIMIT 1500) limit 10; SELECT number FROM (SELECT number, 1 AS k FROM numbers(100000) ORDER BY k ASC, number DESC LIMIT 1025, 1023) LIMIT 5; From 78ea290789eba0f60ac42e2bf45c3439fd61abd6 Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy Date: Wed, 29 Jun 2022 06:47:21 -0400 Subject: [PATCH 378/525] add remove command --- programs/self-extracting/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/programs/self-extracting/CMakeLists.txt b/programs/self-extracting/CMakeLists.txt index 2aec7938114..89f6b56b826 100644 --- a/programs/self-extracting/CMakeLists.txt +++ b/programs/self-extracting/CMakeLists.txt @@ -1,5 +1,6 @@ add_custom_target (self-extracting ALL - ${CMAKE_BINARY_DIR}/utils/self-extracting-executable/compressor clickhouse ../clickhouse + ${CMAKE_COMMAND} -E remove clickhouse + COMMAND ${CMAKE_BINARY_DIR}/utils/self-extracting-executable/compressor clickhouse ../clickhouse DEPENDS clickhouse compressor ) From 498a9cc8d409b90072328078359590531600eb8e Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Wed, 29 Jun 2022 12:51:36 +0200 Subject: [PATCH 379/525] Terminate instance if docker does not start on post-hook --- tests/ci/worker/init_runner.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/tests/ci/worker/init_runner.sh b/tests/ci/worker/init_runner.sh index 93c13b161de..74ad4be2547 100644 --- a/tests/ci/worker/init_runner.sh +++ b/tests/ci/worker/init_runner.sh @@ -45,15 +45,20 @@ cat > /tmp/actions-hooks/post-run.sh << 'EOF' #!/bin/bash set -xuo pipefail -# Free KiB, free percents -ROOT_STAT=($(df / | awk '/\// {print $4 " " int($4/$2 * 100)}')) -if [[ ${ROOT_STAT[0]} -lt 3000000 ]] || [[ ${ROOT_STAT[1]} -lt 5 ]]; then - echo "Going to terminate the runner, it has ${ROOT_STAT[0]}KiB and ${ROOT_STAT[1]}% of free space on /" +terminate-and-exit() { + echo "Going to terminate the runner" INSTANCE_ID=$(ec2metadata --instance-id) # We execute it with at to not have it as an orphan process # GH Runners kill all remain processes echo "sleep 10; aws ec2 terminate-instances --instance-ids $INSTANCE_ID" | at now exit 0 +} + +# Free KiB, free percents +ROOT_STAT=($(df / | awk '/\// {print $4 " " int($4/$2 * 100)}')) +if [[ ${ROOT_STAT[0]} -lt 3000000 ]] || [[ ${ROOT_STAT[1]} -lt 5 ]]; then + echo "The runner has ${ROOT_STAT[0]}KiB and ${ROOT_STAT[1]}% of free space on /" + terminate-and-exit fi # shellcheck disable=SC2046 @@ -64,7 +69,9 @@ docker rm -f $(docker ps -a -q) ||: # If we have hanged containers after the previous commands, than we have a hanged one # and should restart the daemon if [ "$(docker ps -a -q)" ]; then - for i in {1..5}; + # Systemd service of docker has StartLimitBurst=3 and StartLimitInterval=60s, + # that's why we try restarting it for long + for i in {1..25}; do sudo systemctl restart docker && break || sleep 5 done @@ -73,6 +80,8 @@ if [ "$(docker ps -a -q)" ]; then do docker info && break || sleep 2 done + # Last chance, otherwise we have to terminate poor instance + docker info 1>/dev/null || { echo Docker unable to start; terminate-and-exit; } fi EOF From eeae73e0cf9470490a7dd7957306b3b18efe5f44 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Wed, 29 Jun 2022 13:10:30 +0200 Subject: [PATCH 380/525] SQL create drop index update implementation --- .../InterpreterCreateIndexQuery.cpp | 26 +++++++++---------- .../InterpreterDropIndexQuery.cpp | 21 ++++++++------- src/Parsers/ASTAlterQuery.cpp | 2 -- src/Parsers/ASTCreateIndexQuery.cpp | 15 +++++++++++ src/Parsers/ASTCreateIndexQuery.h | 9 ++++--- src/Parsers/ASTDropIndexQuery.cpp | 4 ++- src/Parsers/ASTDropIndexQuery.h | 7 ++--- src/Parsers/ASTIndexDeclaration.cpp | 2 +- src/Parsers/ASTIndexDeclaration.h | 2 +- src/Parsers/ParserCreateIndexQuery.cpp | 11 +++++--- src/Parsers/ParserCreateIndexQuery.h | 4 +-- src/Parsers/ParserDropIndexQuery.cpp | 6 ++--- src/Parsers/ParserDropIndexQuery.h | 2 +- 13 files changed, 66 insertions(+), 45 deletions(-) diff --git a/src/Interpreters/InterpreterCreateIndexQuery.cpp b/src/Interpreters/InterpreterCreateIndexQuery.cpp index 29c151d1e4d..ef19eaa1c42 100644 --- a/src/Interpreters/InterpreterCreateIndexQuery.cpp +++ b/src/Interpreters/InterpreterCreateIndexQuery.cpp @@ -20,6 +20,7 @@ namespace ErrorCodes BlockIO InterpreterCreateIndexQuery::execute() { + auto current_context = getContext(); const auto & create_index = query_ptr->as(); AccessRightsElements required_access; @@ -29,23 +30,23 @@ BlockIO InterpreterCreateIndexQuery::execute() { DDLQueryOnClusterParams params; params.access_to_check = std::move(required_access); - return executeDDLQueryOnCluster(query_ptr, getContext(), params); + return executeDDLQueryOnCluster(query_ptr, current_context, params); } - getContext()->checkAccess(required_access); - auto table_id = getContext()->resolveStorageID(create_index, Context::ResolveOrdinary); + current_context->checkAccess(required_access); + auto table_id = current_context->resolveStorageID(create_index, Context::ResolveOrdinary); query_ptr->as().setDatabase(table_id.database_name); DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_id.database_name); if (typeid_cast(database.get()) - && !getContext()->getClientInfo().is_replicated_database_internal) + && !current_context->getClientInfo().is_replicated_database_internal) { auto guard = DatabaseCatalog::instance().getDDLGuard(table_id.database_name, table_id.table_name); guard->releaseTableLock(); - return typeid_cast(database.get())->tryEnqueueReplicatedDDL(query_ptr, getContext()); + return assert_cast(database.get())->tryEnqueueReplicatedDDL(query_ptr, current_context); } - StoragePtr table = DatabaseCatalog::instance().getTable(table_id, getContext()); + StoragePtr table = DatabaseCatalog::instance().getTable(table_id, current_context); if (table->isStaticStorage()) throw Exception(ErrorCodes::TABLE_IS_READ_ONLY, "Table is read-only"); @@ -53,23 +54,20 @@ BlockIO InterpreterCreateIndexQuery::execute() AlterCommands alter_commands; AlterCommand command; + command.ast = create_index.convertToASTAlterCommand(); command.index_decl = create_index.index_decl; command.type = AlterCommand::ADD_INDEX; command.index_name = create_index.index_name->as().name(); command.if_not_exists = create_index.if_not_exists; - /// Fill name in ASTIndexDeclaration - auto & ast_index_decl = command.index_decl->as(); - ast_index_decl.name = command.index_name; - alter_commands.emplace_back(std::move(command)); - auto alter_lock = table->lockForAlter(getContext()->getSettingsRef().lock_acquire_timeout); + auto alter_lock = table->lockForAlter(current_context->getSettingsRef().lock_acquire_timeout); StorageInMemoryMetadata metadata = table->getInMemoryMetadata(); - alter_commands.validate(table, getContext()); + alter_commands.validate(table, current_context); alter_commands.prepare(metadata); - table->checkAlterIsPossible(alter_commands, getContext()); - table->alter(alter_commands, getContext(), alter_lock); + table->checkAlterIsPossible(alter_commands, current_context); + table->alter(alter_commands, current_context, alter_lock); return {}; } diff --git a/src/Interpreters/InterpreterDropIndexQuery.cpp b/src/Interpreters/InterpreterDropIndexQuery.cpp index 6cc9334fad2..2339e0dc68e 100644 --- a/src/Interpreters/InterpreterDropIndexQuery.cpp +++ b/src/Interpreters/InterpreterDropIndexQuery.cpp @@ -18,6 +18,7 @@ namespace ErrorCodes BlockIO InterpreterDropIndexQuery::execute() { + auto current_context = getContext(); const auto & drop_index = query_ptr->as(); AccessRightsElements required_access; @@ -27,23 +28,23 @@ BlockIO InterpreterDropIndexQuery::execute() { DDLQueryOnClusterParams params; params.access_to_check = std::move(required_access); - return executeDDLQueryOnCluster(query_ptr, getContext(), params); + return executeDDLQueryOnCluster(query_ptr, current_context, params); } - getContext()->checkAccess(required_access); - auto table_id = getContext()->resolveStorageID(drop_index, Context::ResolveOrdinary); + current_context->checkAccess(required_access); + auto table_id = current_context->resolveStorageID(drop_index, Context::ResolveOrdinary); query_ptr->as().setDatabase(table_id.database_name); DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_id.database_name); if (typeid_cast(database.get()) - && !getContext()->getClientInfo().is_replicated_database_internal) + && !current_context->getClientInfo().is_replicated_database_internal) { auto guard = DatabaseCatalog::instance().getDDLGuard(table_id.database_name, table_id.table_name); guard->releaseTableLock(); - return typeid_cast(database.get())->tryEnqueueReplicatedDDL(query_ptr, getContext()); + return assert_cast(database.get())->tryEnqueueReplicatedDDL(query_ptr, current_context); } - StoragePtr table = DatabaseCatalog::instance().getTable(table_id, getContext()); + StoragePtr table = DatabaseCatalog::instance().getTable(table_id, current_context); if (table->isStaticStorage()) throw Exception(ErrorCodes::TABLE_IS_READ_ONLY, "Table is read-only"); @@ -58,12 +59,12 @@ BlockIO InterpreterDropIndexQuery::execute() alter_commands.emplace_back(std::move(command)); - auto alter_lock = table->lockForAlter(getContext()->getSettingsRef().lock_acquire_timeout); + auto alter_lock = table->lockForAlter(current_context->getSettingsRef().lock_acquire_timeout); StorageInMemoryMetadata metadata = table->getInMemoryMetadata(); - alter_commands.validate(table, getContext()); + alter_commands.validate(table, current_context); alter_commands.prepare(metadata); - table->checkAlterIsPossible(alter_commands, getContext()); - table->alter(alter_commands, getContext(), alter_lock); + table->checkAlterIsPossible(alter_commands, current_context); + table->alter(alter_commands, current_context, alter_lock); return {}; } diff --git a/src/Parsers/ASTAlterQuery.cpp b/src/Parsers/ASTAlterQuery.cpp index cfcc5decdf5..f53c39b192f 100644 --- a/src/Parsers/ASTAlterQuery.cpp +++ b/src/Parsers/ASTAlterQuery.cpp @@ -1,4 +1,3 @@ -#include #include #include #include @@ -557,7 +556,6 @@ void ASTAlterQuery::formatQueryImpl(const FormatSettings & settings, FormatState frame.need_parens = false; std::string indent_str = settings.one_line ? "" : std::string(4u * frame.indent, ' '); - settings.ostr << (settings.hilite ? hilite_keyword : "") << indent_str; switch (alter_object) diff --git a/src/Parsers/ASTCreateIndexQuery.cpp b/src/Parsers/ASTCreateIndexQuery.cpp index 7a5c80551d6..50470fbc1e4 100644 --- a/src/Parsers/ASTCreateIndexQuery.cpp +++ b/src/Parsers/ASTCreateIndexQuery.cpp @@ -2,6 +2,7 @@ #include #include #include +#include namespace DB @@ -23,6 +24,9 @@ ASTPtr ASTCreateIndexQuery::clone() const res->index_decl = index_decl->clone(); res->children.push_back(res->index_decl); + + cloneTableOptions(*res); + return res; } @@ -58,4 +62,15 @@ void ASTCreateIndexQuery::formatQueryImpl(const FormatSettings & settings, Forma index_decl->formatImpl(settings, state, frame); } +ASTPtr ASTCreateIndexQuery::convertToASTAlterCommand() const +{ + auto command = std::make_shared(); + command->type = ASTAlterCommand::ADD_INDEX; + command->index = index_name->clone(); + command->index_decl = index_decl->clone(); + command->if_not_exists = if_not_exists; + + return command; +} + } diff --git a/src/Parsers/ASTCreateIndexQuery.h b/src/Parsers/ASTCreateIndexQuery.h index f3c6a7830a4..424a0e493d9 100644 --- a/src/Parsers/ASTCreateIndexQuery.h +++ b/src/Parsers/ASTCreateIndexQuery.h @@ -14,13 +14,13 @@ namespace DB class ASTCreateIndexQuery : public ASTQueryWithTableAndOutput, public ASTQueryWithOnCluster { public: - bool if_not_exists{false}; - ASTPtr index_name; /// Stores the IndexDeclaration here. ASTPtr index_decl; + bool if_not_exists{false}; + String getID(char delim) const override; ASTPtr clone() const override; @@ -30,7 +30,10 @@ public: return removeOnCluster(clone(), params.default_database); } - virtual QueryKind getQueryKind() const override { return QueryKind::Create; } + QueryKind getQueryKind() const override { return QueryKind::Create; } + + /// Convert ASTCreateIndexQuery to ASTAlterCommand + ASTPtr convertToASTAlterCommand() const; protected: void formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override; diff --git a/src/Parsers/ASTDropIndexQuery.cpp b/src/Parsers/ASTDropIndexQuery.cpp index 78152d213b8..a07336a2d26 100644 --- a/src/Parsers/ASTDropIndexQuery.cpp +++ b/src/Parsers/ASTDropIndexQuery.cpp @@ -20,6 +20,8 @@ ASTPtr ASTDropIndexQuery::clone() const res->index_name = index_name->clone(); res->children.push_back(res->index_name); + cloneTableOptions(*res); + return res; } @@ -53,9 +55,9 @@ void ASTDropIndexQuery::formatQueryImpl(const FormatSettings & settings, FormatS ASTPtr ASTDropIndexQuery::convertToASTAlterCommand() const { auto command = std::make_shared(); + command->type = ASTAlterCommand::DROP_INDEX; command->index = index_name->clone(); command->if_exists = if_exists; - command->type = ASTAlterCommand::DROP_INDEX; return command; } diff --git a/src/Parsers/ASTDropIndexQuery.h b/src/Parsers/ASTDropIndexQuery.h index d7e39f797b5..6c2aaeb5936 100644 --- a/src/Parsers/ASTDropIndexQuery.h +++ b/src/Parsers/ASTDropIndexQuery.h @@ -17,10 +17,11 @@ namespace DB class ASTDropIndexQuery : public ASTQueryWithTableAndOutput, public ASTQueryWithOnCluster { public: - bool if_exists{false}; ASTPtr index_name; + bool if_exists{false}; + String getID(char delim) const override; ASTPtr clone() const override; @@ -30,9 +31,9 @@ public: return removeOnCluster(clone(), params.default_database); } - virtual QueryKind getQueryKind() const override { return QueryKind::Drop; } + QueryKind getQueryKind() const override { return QueryKind::Drop; } - /// Convert ASTDropIndexQuery to ASTAlterCommand. + /// Convert ASTDropIndexQuery to ASTAlterCommand ASTPtr convertToASTAlterCommand() const; protected: diff --git a/src/Parsers/ASTIndexDeclaration.cpp b/src/Parsers/ASTIndexDeclaration.cpp index cc988d1d307..d223661451e 100644 --- a/src/Parsers/ASTIndexDeclaration.cpp +++ b/src/Parsers/ASTIndexDeclaration.cpp @@ -25,7 +25,7 @@ ASTPtr ASTIndexDeclaration::clone() const void ASTIndexDeclaration::formatImpl(const FormatSettings & s, FormatState & state, FormatStateStacked frame) const { - if (from_create_index) + if (part_of_create_index_query) { s.ostr << "("; expr->formatImpl(s, state, frame); diff --git a/src/Parsers/ASTIndexDeclaration.h b/src/Parsers/ASTIndexDeclaration.h index 31d5ef0e7f8..e22c1da4489 100644 --- a/src/Parsers/ASTIndexDeclaration.h +++ b/src/Parsers/ASTIndexDeclaration.h @@ -16,7 +16,7 @@ public: IAST * expr; ASTFunction * type; UInt64 granularity; - bool from_create_index = false; + bool part_of_create_index_query = false; /** Get the text that identifies this element. */ String getID(char) const override { return "Index"; } diff --git a/src/Parsers/ParserCreateIndexQuery.cpp b/src/Parsers/ParserCreateIndexQuery.cpp index 22411c71ee5..af0d9064626 100644 --- a/src/Parsers/ParserCreateIndexQuery.cpp +++ b/src/Parsers/ParserCreateIndexQuery.cpp @@ -43,7 +43,7 @@ bool ParserCreateIndexDeclaration::parseImpl(Pos & pos, ASTPtr & node, Expected return false; auto index = std::make_shared(); - index->from_create_index = true; + index->part_of_create_index_query = true; index->granularity = granularity->as().value.safeGet(); index->set(index->expr, expr); index->set(index->type, type); @@ -87,18 +87,21 @@ bool ParserCreateIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expect return false; if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) - return false; + return false; /// [ON cluster_name] if (s_on.ignore(pos, expected)) { - if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) - return false; + if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) + return false; } if (!parser_create_idx_decl.parse(pos, index_decl, expected)) return false; + auto & ast_index_decl = index_decl->as(); + ast_index_decl.name = index_name->as().name(); + query->index_name = index_name; query->children.push_back(index_name); diff --git a/src/Parsers/ParserCreateIndexQuery.h b/src/Parsers/ParserCreateIndexQuery.h index 3dfdccc301f..3cb91cd03c6 100644 --- a/src/Parsers/ParserCreateIndexQuery.h +++ b/src/Parsers/ParserCreateIndexQuery.h @@ -12,7 +12,7 @@ namespace DB class ParserCreateIndexQuery : public IParserBase { protected: - const char * getName() const override{ return "CREATE INDEX query"; } + const char * getName() const override { return "CREATE INDEX query"; } bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; }; @@ -21,7 +21,7 @@ protected: class ParserCreateIndexDeclaration : public IParserBase { public: - ParserCreateIndexDeclaration() {} + ParserCreateIndexDeclaration() = default; protected: const char * getName() const override { return "index declaration in create index"; } diff --git a/src/Parsers/ParserDropIndexQuery.cpp b/src/Parsers/ParserDropIndexQuery.cpp index 0844ea16ae0..89ed4f01838 100644 --- a/src/Parsers/ParserDropIndexQuery.cpp +++ b/src/Parsers/ParserDropIndexQuery.cpp @@ -39,13 +39,13 @@ bool ParserDropIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expected return false; if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) - return false; + return false; /// [ON cluster_name] if (s_on.ignore(pos, expected)) { - if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) - return false; + if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) + return false; query->cluster = std::move(cluster_str); } diff --git a/src/Parsers/ParserDropIndexQuery.h b/src/Parsers/ParserDropIndexQuery.h index 1b6535c7efb..fc25ace469b 100644 --- a/src/Parsers/ParserDropIndexQuery.h +++ b/src/Parsers/ParserDropIndexQuery.h @@ -12,7 +12,7 @@ namespace DB class ParserDropIndexQuery : public IParserBase { protected: - const char * getName() const override{ return "DROP INDEX query"; } + const char * getName() const override { return "DROP INDEX query"; } bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; }; From 656d0c0f04b66b8423a7e5b8c1d628326597d8c2 Mon Sep 17 00:00:00 2001 From: robot-clickhouse Date: Wed, 29 Jun 2022 11:24:30 +0000 Subject: [PATCH 381/525] Update version_date.tsv and changelogs after v22.6.2.12-stable --- docs/changelogs/v22.6.2.12-stable.md | 22 ++++++++++++++++++++++ utils/list-versions/version_date.tsv | 1 + 2 files changed, 23 insertions(+) create mode 100644 docs/changelogs/v22.6.2.12-stable.md diff --git a/docs/changelogs/v22.6.2.12-stable.md b/docs/changelogs/v22.6.2.12-stable.md new file mode 100644 index 00000000000..224367b994a --- /dev/null +++ b/docs/changelogs/v22.6.2.12-stable.md @@ -0,0 +1,22 @@ +--- +sidebar_position: 1 +sidebar_label: 2022 +--- + +# 2022 Changelog + +### ClickHouse release v22.6.2.12-stable FIXME as compared to v22.6.1.1985-stable + +#### Improvement +* Backported in [#38484](https://github.com/ClickHouse/ClickHouse/issues/38484): Improve the stability for hive storage integration test. Move the data prepare step into test.py. [#38260](https://github.com/ClickHouse/ClickHouse/pull/38260) ([lgbo](https://github.com/lgbo-ustc)). + +#### Bug Fix (user-visible misbehavior in official stable or prestable release) + +* Backported in [#38404](https://github.com/ClickHouse/ClickHouse/issues/38404): Fix bug with nested short-circuit functions that led to execution of arguments even if condition is false. Closes [#38040](https://github.com/ClickHouse/ClickHouse/issues/38040). [#38173](https://github.com/ClickHouse/ClickHouse/pull/38173) ([Kruglov Pavel](https://github.com/Avogar)). + +#### NOT FOR CHANGELOG / INSIGNIFICANT + +* Remove processor description from span attributes - it is not working [#38157](https://github.com/ClickHouse/ClickHouse/pull/38157) ([Ilya Yatsishin](https://github.com/qoega)). +* Checkout full repositories for performance tests [#38327](https://github.com/ClickHouse/ClickHouse/pull/38327) ([Mikhail f. Shiryaev](https://github.com/Felixoid)). +* Try to fix 02305_schema_inference_with_globs [#38337](https://github.com/ClickHouse/ClickHouse/pull/38337) ([Kruglov Pavel](https://github.com/Avogar)). + diff --git a/utils/list-versions/version_date.tsv b/utils/list-versions/version_date.tsv index b33cbcebdb7..64e2050f683 100644 --- a/utils/list-versions/version_date.tsv +++ b/utils/list-versions/version_date.tsv @@ -1,3 +1,4 @@ +v22.6.2.12-stable 2022-06-29 v22.6.1.1985-stable 2022-06-16 v22.5.1.2079-stable 2022-05-19 v22.4.5.9-stable 2022-05-06 From ac963a766370388f1f64efc31eb963e76d6fc2e3 Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 29 Jun 2022 13:55:20 +0200 Subject: [PATCH 382/525] Remove redundant check --- src/Storages/MergeTree/DataPartStorageOnDisk.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 780e443266d..1297a5ab58d 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -709,12 +709,6 @@ void DataPartStorageBuilderOnDisk::rename( bool remove_new_dir_if_exists, bool fsync_part_dir) { - if (!exists()) - throw Exception( - ErrorCodes::FILE_DOESNT_EXIST, - "Part directory {} doesn't exist. Most likely it is a logical error.", - std::string(fs::path(volume->getDisk()->getPath()) / root_path / part_dir)); - String to = fs::path(new_root_path) / new_part_dir / ""; if (volume->getDisk()->exists(to)) From 0b400518830a83f4d8f6a264b9541cdf119b5c1c Mon Sep 17 00:00:00 2001 From: Rich Raposa Date: Wed, 29 Jun 2022 06:04:02 -0600 Subject: [PATCH 383/525] Update zh/tutorial.md Fix `include` from old mkdocs version --- docs/zh/getting-started/tutorial.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/zh/getting-started/tutorial.md b/docs/zh/getting-started/tutorial.md index 3d66f79cb46..2a0095bd3a9 100644 --- a/docs/zh/getting-started/tutorial.md +++ b/docs/zh/getting-started/tutorial.md @@ -16,7 +16,17 @@ sidebar_label: 使用教程 例如,您选择`deb`安装包,执行: ``` bash -{% include 'install/deb.sh' %} +sudo apt-get install -y apt-transport-https ca-certificates dirmngr +sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 + +echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \ + /etc/apt/sources.list.d/clickhouse.list +sudo apt-get update + +sudo apt-get install -y clickhouse-server clickhouse-client + +sudo service clickhouse-server start +clickhouse-client # or "clickhouse-client --password" if you've set up a password. ``` 在我们安装的软件中包含这些包: From c5e0869c46663dc49c87a5d8e45386f16132ff86 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Wed, 29 Jun 2022 14:20:26 +0200 Subject: [PATCH 384/525] fix flaky test --- tests/queries/0_stateless/01592_long_window_functions1.sql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/queries/0_stateless/01592_long_window_functions1.sql b/tests/queries/0_stateless/01592_long_window_functions1.sql index 4911b7aa792..022d8071ffa 100644 --- a/tests/queries/0_stateless/01592_long_window_functions1.sql +++ b/tests/queries/0_stateless/01592_long_window_functions1.sql @@ -4,6 +4,10 @@ drop table if exists stack; set max_insert_threads = 4; +-- Temporary disable aggregation in order, +-- because it may fail with UBSan. +set optimize_aggregation_in_order = 0; + create table stack(item_id Int64, brand_id Int64, rack_id Int64, dt DateTime, expiration_dt DateTime, quantity UInt64) Engine = MergeTree partition by toYYYYMM(dt) From 3ff26939fc4aa4da32253acae7a2a56d32f4e0d7 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Wed, 29 Jun 2022 15:46:40 +0300 Subject: [PATCH 385/525] Update run.sh --- docker/test/stress/run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/test/stress/run.sh b/docker/test/stress/run.sh index 119ea04080f..0b517fb4af8 100755 --- a/docker/test/stress/run.sh +++ b/docker/test/stress/run.sh @@ -42,6 +42,7 @@ function install_packages() function configure() { # install test configs + export USE_DATABASE_ORDINARY=1 /usr/share/clickhouse-test/config/install.sh # we mount tests folder from repo to /usr/share From c86c6cc2d95db02a6434fe99532223c220e6272f Mon Sep 17 00:00:00 2001 From: Yatsishin Ilya <2159081+qoega@users.noreply.github.com> Date: Wed, 29 Jun 2022 12:54:45 +0000 Subject: [PATCH 386/525] Improve postgres tests. Fix flaky test_postgresql_database_engine --- .../configs/dictionaries/postgres_dict.xml | 4 +- .../test_dictionaries_postgresql/test.py | 154 +++++++----------- .../test_dictionaries_redis/test_long.py | 2 +- .../test_postgresql_database_engine/test.py | 154 ++++++++---------- 4 files changed, 138 insertions(+), 176 deletions(-) diff --git a/tests/integration/test_dictionaries_postgresql/configs/dictionaries/postgres_dict.xml b/tests/integration/test_dictionaries_postgresql/configs/dictionaries/postgres_dict.xml index 8b69d74b67c..dc4e474f125 100644 --- a/tests/integration/test_dictionaries_postgresql/configs/dictionaries/postgres_dict.xml +++ b/tests/integration/test_dictionaries_postgresql/configs/dictionaries/postgres_dict.xml @@ -4,7 +4,7 @@ dict0 - clickhouse + postgres_database postgres1 5432 postgres @@ -38,7 +38,7 @@ dict1 - clickhouse + postgres_database postgres mysecretpassword test1
diff --git a/tests/integration/test_dictionaries_postgresql/test.py b/tests/integration/test_dictionaries_postgresql/test.py index 49a75a09e4e..46f7f7254eb 100644 --- a/tests/integration/test_dictionaries_postgresql/test.py +++ b/tests/integration/test_dictionaries_postgresql/test.py @@ -1,9 +1,11 @@ import pytest import time +import logging import psycopg2 from multiprocessing.dummy import Pool from helpers.cluster import ClickHouseCluster +from helpers.postgres_utility import get_postgres_conn from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT cluster = ClickHouseCluster(__file__) @@ -18,63 +20,39 @@ node1 = cluster.add_instance( with_postgres_cluster=True, ) -postgres_dict_table_template = """ - CREATE TABLE IF NOT EXISTS {} ( - id Integer NOT NULL, key Integer NOT NULL, value Integer NOT NULL, PRIMARY KEY (id)) - """ -click_dict_table_template = """ - CREATE TABLE IF NOT EXISTS `test`.`dict_table_{}` ( - `key` UInt32, `value` UInt32 - ) ENGINE = Dictionary({}) - """ - - -def get_postgres_conn(ip, port, database=False): - if database == True: - conn_string = "host={} port={} dbname='clickhouse' user='postgres' password='mysecretpassword'".format( - ip, port - ) - else: - conn_string = ( - "host={} port={} user='postgres' password='mysecretpassword'".format( - ip, port - ) - ) - - conn = psycopg2.connect(conn_string) - conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) - conn.autocommit = True - return conn - - def create_postgres_db(conn, name): cursor = conn.cursor() - cursor.execute("CREATE DATABASE {}".format(name)) + cursor.execute(f"CREATE DATABASE {name}") def create_postgres_table(cursor, table_name): - cursor.execute(postgres_dict_table_template.format(table_name)) + cursor.execute( + f""" + CREATE TABLE IF NOT EXISTS {table_name} ( + id Integer NOT NULL, key Integer NOT NULL, value Integer NOT NULL, PRIMARY KEY (id)) + """ + ) def create_and_fill_postgres_table(cursor, table_name, port, host): create_postgres_table(cursor, table_name) # Fill postgres table using clickhouse postgres table function and check - table_func = """postgresql('{}:{}', 'clickhouse', '{}', 'postgres', 'mysecretpassword')""".format( - host, port, table_name - ) + table_func = f"""postgresql('{host}:{port}', 'postgres_database', '{table_name}', 'postgres', 'mysecretpassword')""" node1.query( - """INSERT INTO TABLE FUNCTION {} SELECT number, number, number from numbers(10000) - """.format( - table_func, table_name - ) + f"""INSERT INTO TABLE FUNCTION {table_func} SELECT number, number, number from numbers(10000)""" ) - result = node1.query("SELECT count() FROM {}".format(table_func)) + result = node1.query(f"SELECT count() FROM {table_func}") assert result.rstrip() == "10000" def create_dict(table_name, index=0): - node1.query(click_dict_table_template.format(table_name, "dict" + str(index))) - + node1.query( + f""" + CREATE TABLE IF NOT EXISTS `test`.`dict_table_{table_name}` ( + `key` UInt32, `value` UInt32 + ) ENGINE = Dictionary(dict{str(index)}) + """ + ) @pytest.fixture(scope="module") def started_cluster(): @@ -85,14 +63,14 @@ def started_cluster(): postgres_conn = get_postgres_conn( ip=cluster.postgres_ip, port=cluster.postgres_port ) - print("postgres1 connected") - create_postgres_db(postgres_conn, "clickhouse") + logging.debug("postgres1 connected") + create_postgres_db(postgres_conn, "postgres_database") - postgres_conn = get_postgres_conn( + postgres2_conn = get_postgres_conn( ip=cluster.postgres2_ip, port=cluster.postgres_port ) - print("postgres2 connected") - create_postgres_db(postgres_conn, "clickhouse") + logging.debug("postgres2 connected") + create_postgres_db(postgres2_conn, "postgres_database") yield cluster @@ -117,27 +95,27 @@ def test_load_dictionaries(started_cluster): create_dict(table_name) dict_name = "dict0" - node1.query("SYSTEM RELOAD DICTIONARY {}".format(dict_name)) + node1.query(f"SYSTEM RELOAD DICTIONARY {dict_name}") assert ( node1.query( - "SELECT count() FROM `test`.`dict_table_{}`".format(table_name) + f"SELECT count() FROM `test`.`dict_table_{table_name}`" ).rstrip() == "10000" ) assert ( - node1.query("SELECT dictGetUInt32('{}', 'key', toUInt64(0))".format(dict_name)) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'key', toUInt64(0))") == "0\n" ) assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(9999))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(9999))" ) == "9999\n" ) - cursor.execute("DROP TABLE IF EXISTS {}".format(table_name)) - node1.query("DROP TABLE IF EXISTS {}".format(table_name)) - node1.query("DROP DICTIONARY IF EXISTS {}".format(dict_name)) + cursor.execute(f"DROP TABLE IF EXISTS {table_name}") + node1.query(f"DROP TABLE IF EXISTS {table_name}") + node1.query(f"DROP DICTIONARY IF EXISTS {dict_name}") def test_postgres_dictionaries_custom_query_full_load(started_cluster): @@ -159,7 +137,7 @@ def test_postgres_dictionaries_custom_query_full_load(started_cluster): query = node1.query query( - """ + f""" CREATE DICTIONARY test_dictionary_custom_query ( id UInt64, @@ -169,16 +147,14 @@ def test_postgres_dictionaries_custom_query_full_load(started_cluster): PRIMARY KEY id LAYOUT(FLAT()) SOURCE(PostgreSQL( - DB 'clickhouse' - HOST '{}' - PORT {} + DB 'postgres_database' + HOST '{started_cluster.postgres_ip}' + PORT {started_cluster.postgres_port} USER 'postgres' PASSWORD 'mysecretpassword' QUERY $doc$SELECT id, value_1, value_2 FROM test_table_1 INNER JOIN test_table_2 USING (id);$doc$)) LIFETIME(0) - """.format( - started_cluster.postgres_ip, started_cluster.postgres_port - ) + """ ) result = query("SELECT id, value_1, value_2 FROM test_dictionary_custom_query") @@ -210,7 +186,7 @@ def test_postgres_dictionaries_custom_query_partial_load_simple_key(started_clus query = node1.query query( - """ + f""" CREATE DICTIONARY test_dictionary_custom_query ( id UInt64, @@ -220,15 +196,13 @@ def test_postgres_dictionaries_custom_query_partial_load_simple_key(started_clus PRIMARY KEY id LAYOUT(DIRECT()) SOURCE(PostgreSQL( - DB 'clickhouse' - HOST '{}' - PORT {} + DB 'postgres_database' + HOST '{started_cluster.postgres_ip}' + PORT {started_cluster.postgres_port} USER 'postgres' PASSWORD 'mysecretpassword' QUERY $doc$SELECT id, value_1, value_2 FROM test_table_1 INNER JOIN test_table_2 USING (id) WHERE {{condition}};$doc$)) - """.format( - started_cluster.postgres_ip, started_cluster.postgres_port - ) + """ ) result = query( @@ -262,7 +236,7 @@ def test_postgres_dictionaries_custom_query_partial_load_complex_key(started_clu query = node1.query query( - """ + f""" CREATE DICTIONARY test_dictionary_custom_query ( id UInt64, @@ -273,15 +247,13 @@ def test_postgres_dictionaries_custom_query_partial_load_complex_key(started_clu PRIMARY KEY id, key LAYOUT(COMPLEX_KEY_DIRECT()) SOURCE(PostgreSQL( - DB 'clickhouse' - HOST '{}' - PORT {} + DB 'postgres_database' + HOST '{started_cluster.postgres_ip}' + PORT {started_cluster.postgres_port} USER 'postgres' PASSWORD 'mysecretpassword' QUERY $doc$SELECT id, key, value_1, value_2 FROM test_table_1 INNER JOIN test_table_2 USING (id, key) WHERE {{condition}};$doc$)) - """.format( - started_cluster.postgres_ip, started_cluster.postgres_port - ) + """ ) result = query( @@ -314,70 +286,70 @@ def test_invalidate_query(started_cluster): # invalidate query: SELECT value FROM test0 WHERE id = 0 dict_name = "dict0" create_dict(table_name) - node1.query("SYSTEM RELOAD DICTIONARY {}".format(dict_name)) + node1.query(f"SYSTEM RELOAD DICTIONARY {dict_name}") assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(0))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" ) == "0\n" ) assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(1))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))" ) == "1\n" ) # update should happen - cursor.execute("UPDATE {} SET value=value+1 WHERE id = 0".format(table_name)) + cursor.execute(f"UPDATE {table_name} SET value=value+1 WHERE id = 0") while True: result = node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(0))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" ) if result != "0\n": break assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(0))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" ) == "1\n" ) # no update should happen - cursor.execute("UPDATE {} SET value=value*2 WHERE id != 0".format(table_name)) + cursor.execute(f"UPDATE {table_name} SET value=value*2 WHERE id != 0") time.sleep(5) assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(0))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" ) == "1\n" ) assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(1))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))" ) == "1\n" ) # update should happen - cursor.execute("UPDATE {} SET value=value+1 WHERE id = 0".format(table_name)) + cursor.execute(f"UPDATE {table_name} SET value=value+1 WHERE id = 0") time.sleep(5) assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(0))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" ) == "2\n" ) assert ( node1.query( - "SELECT dictGetUInt32('{}', 'value', toUInt64(1))".format(dict_name) + f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))" ) == "2\n" ) - node1.query("DROP TABLE IF EXISTS {}".format(table_name)) - node1.query("DROP DICTIONARY IF EXISTS {}".format(dict_name)) - cursor.execute("DROP TABLE IF EXISTS {}".format(table_name)) + node1.query(f"DROP TABLE IF EXISTS {table_name}") + node1.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + cursor.execute(f"DROP TABLE IF EXISTS {table_name}") def test_dictionary_with_replicas(started_cluster): @@ -446,7 +418,7 @@ def test_postgres_schema(started_cluster): host 'postgres1' user 'postgres' password 'mysecretpassword' - db 'clickhouse' + db 'postgres_database' table 'test_schema.test_table')) LIFETIME(MIN 1 MAX 2) LAYOUT(HASHED()); @@ -566,7 +538,7 @@ def test_bad_configuration(started_cluster): host 'postgres1' user 'postgres' password 'mysecretpassword' - dbbb 'clickhouse' + dbbb 'postgres_database' table 'test_schema.test_table')) LIFETIME(MIN 1 MAX 2) LAYOUT(HASHED()); diff --git a/tests/integration/test_dictionaries_redis/test_long.py b/tests/integration/test_dictionaries_redis/test_long.py index 094df789704..19b03322b4d 100644 --- a/tests/integration/test_dictionaries_redis/test_long.py +++ b/tests/integration/test_dictionaries_redis/test_long.py @@ -2,7 +2,7 @@ import pytest from helpers.cluster import ClickHouseCluster import redis -cluster = ClickHouseCluster(__file__) +cluster = ClickHouseCluster(__file__, name="long") node = cluster.add_instance("node", with_redis=True) diff --git a/tests/integration/test_postgresql_database_engine/test.py b/tests/integration/test_postgresql_database_engine/test.py index aabf3507d8f..723c4f7cd09 100644 --- a/tests/integration/test_postgresql_database_engine/test.py +++ b/tests/integration/test_postgresql_database_engine/test.py @@ -3,6 +3,7 @@ import psycopg2 from helpers.cluster import ClickHouseCluster from helpers.test_tools import assert_eq_with_retry +from helpers.postgres_utility import get_postgres_conn from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT cluster = ClickHouseCluster(__file__) @@ -20,17 +21,6 @@ postgres_drop_table_template = """ """ -def get_postgres_conn(cluster, database=False): - if database == True: - conn_string = f"host={cluster.postgres_ip} port={cluster.postgres_port} dbname='test_database' user='postgres' password='mysecretpassword'" - else: - conn_string = f"host={cluster.postgres_ip} port={cluster.postgres_port} user='postgres' password='mysecretpassword'" - conn = psycopg2.connect(conn_string) - conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) - conn.autocommit = True - return conn - - def create_postgres_db(cursor, name): cursor.execute("CREATE DATABASE {}".format(name)) @@ -49,9 +39,9 @@ def drop_postgres_table(cursor, table_name): def started_cluster(): try: cluster.start() - conn = get_postgres_conn(cluster) + conn = get_postgres_conn(cluster.postgres_ip, cluster.postgres_port) cursor = conn.cursor() - create_postgres_db(cursor, "test_database") + create_postgres_db(cursor, "postgres_database") yield cluster finally: @@ -60,93 +50,93 @@ def started_cluster(): def test_postgres_database_engine_with_postgres_ddl(started_cluster): # connect to database as well - conn = get_postgres_conn(started_cluster, True) + conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) cursor = conn.cursor() node1.query( - "CREATE DATABASE test_database ENGINE = PostgreSQL('postgres1:5432', 'test_database', 'postgres', 'mysecretpassword')" + "CREATE DATABASE postgres_database ENGINE = PostgreSQL('postgres1:5432', 'postgres_database', 'postgres', 'mysecretpassword')" ) - assert "test_database" in node1.query("SHOW DATABASES") + assert "postgres_database" in node1.query("SHOW DATABASES") create_postgres_table(cursor, "test_table") - assert "test_table" in node1.query("SHOW TABLES FROM test_database") + assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") cursor.execute("ALTER TABLE test_table ADD COLUMN data Text") assert "data" in node1.query( - "SELECT name FROM system.columns WHERE table = 'test_table' AND database = 'test_database'" + "SELECT name FROM system.columns WHERE table = 'test_table' AND database = 'postgres_database'" ) cursor.execute("ALTER TABLE test_table DROP COLUMN data") assert "data" not in node1.query( - "SELECT name FROM system.columns WHERE table = 'test_table' AND database = 'test_database'" + "SELECT name FROM system.columns WHERE table = 'test_table' AND database = 'postgres_database'" ) - node1.query("DROP DATABASE test_database") - assert "test_database" not in node1.query("SHOW DATABASES") + node1.query("DROP DATABASE postgres_database") + assert "postgres_database" not in node1.query("SHOW DATABASES") drop_postgres_table(cursor, "test_table") def test_postgresql_database_engine_with_clickhouse_ddl(started_cluster): - conn = get_postgres_conn(started_cluster, True) + conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) cursor = conn.cursor() node1.query( - "CREATE DATABASE test_database ENGINE = PostgreSQL('postgres1:5432', 'test_database', 'postgres', 'mysecretpassword')" + "CREATE DATABASE postgres_database ENGINE = PostgreSQL('postgres1:5432', 'postgres_database', 'postgres', 'mysecretpassword')" ) create_postgres_table(cursor, "test_table") - assert "test_table" in node1.query("SHOW TABLES FROM test_database") + assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") - node1.query("DROP TABLE test_database.test_table") - assert "test_table" not in node1.query("SHOW TABLES FROM test_database") + node1.query("DROP TABLE postgres_database.test_table") + assert "test_table" not in node1.query("SHOW TABLES FROM postgres_database") - node1.query("ATTACH TABLE test_database.test_table") - assert "test_table" in node1.query("SHOW TABLES FROM test_database") + node1.query("ATTACH TABLE postgres_database.test_table") + assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") - node1.query("DETACH TABLE test_database.test_table") - assert "test_table" not in node1.query("SHOW TABLES FROM test_database") + node1.query("DETACH TABLE postgres_database.test_table") + assert "test_table" not in node1.query("SHOW TABLES FROM postgres_database") - node1.query("ATTACH TABLE test_database.test_table") - assert "test_table" in node1.query("SHOW TABLES FROM test_database") + node1.query("ATTACH TABLE postgres_database.test_table") + assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") - node1.query("DROP DATABASE test_database") - assert "test_database" not in node1.query("SHOW DATABASES") + node1.query("DROP DATABASE postgres_database") + assert "postgres_database" not in node1.query("SHOW DATABASES") drop_postgres_table(cursor, "test_table") def test_postgresql_database_engine_queries(started_cluster): - conn = get_postgres_conn(started_cluster, True) + conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) cursor = conn.cursor() node1.query( - "CREATE DATABASE test_database ENGINE = PostgreSQL('postgres1:5432', 'test_database', 'postgres', 'mysecretpassword')" + "CREATE DATABASE postgres_database ENGINE = PostgreSQL('postgres1:5432', 'postgres_database', 'postgres', 'mysecretpassword')" ) create_postgres_table(cursor, "test_table") - assert node1.query("SELECT count() FROM test_database.test_table").rstrip() == "0" + assert node1.query("SELECT count() FROM postgres_database.test_table").rstrip() == "0" node1.query( - "INSERT INTO test_database.test_table SELECT number, number from numbers(10000)" + "INSERT INTO postgres_database.test_table SELECT number, number from numbers(10000)" ) assert ( - node1.query("SELECT count() FROM test_database.test_table").rstrip() == "10000" + node1.query("SELECT count() FROM postgres_database.test_table").rstrip() == "10000" ) drop_postgres_table(cursor, "test_table") - assert "test_table" not in node1.query("SHOW TABLES FROM test_database") + assert "test_table" not in node1.query("SHOW TABLES FROM postgres_database") - node1.query("DROP DATABASE test_database") - assert "test_database" not in node1.query("SHOW DATABASES") + node1.query("DROP DATABASE postgres_database") + assert "postgres_database" not in node1.query("SHOW DATABASES") def test_get_create_table_query_with_multidim_arrays(started_cluster): - conn = get_postgres_conn(started_cluster, True) + conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) cursor = conn.cursor() node1.query( - "CREATE DATABASE test_database ENGINE = PostgreSQL('postgres1:5432', 'test_database', 'postgres', 'mysecretpassword')" + "CREATE DATABASE postgres_database ENGINE = PostgreSQL('postgres1:5432', 'postgres_database', 'postgres', 'mysecretpassword')" ) cursor.execute( @@ -157,11 +147,11 @@ def test_get_create_table_query_with_multidim_arrays(started_cluster): )""" ) - node1.query("DETACH TABLE test_database.array_columns") - node1.query("ATTACH TABLE test_database.array_columns") + node1.query("DETACH TABLE postgres_database.array_columns") + node1.query("ATTACH TABLE postgres_database.array_columns") node1.query( - "INSERT INTO test_database.array_columns " + "INSERT INTO postgres_database.array_columns " "VALUES (" "[[[1, 1], [1, 1]], [[3, 3], [3, 3]], [[4, 4], [5, 5]]], " "[[[1, NULL], [NULL, 1]], [[NULL, NULL], [NULL, NULL]], [[4, 4], [5, 5]]] " @@ -169,7 +159,7 @@ def test_get_create_table_query_with_multidim_arrays(started_cluster): ) result = node1.query( """ - SELECT * FROM test_database.array_columns""" + SELECT * FROM postgres_database.array_columns""" ) expected = ( "[[[1,1],[1,1]],[[3,3],[3,3]],[[4,4],[5,5]]]\t" @@ -177,64 +167,64 @@ def test_get_create_table_query_with_multidim_arrays(started_cluster): ) assert result == expected - node1.query("DROP DATABASE test_database") - assert "test_database" not in node1.query("SHOW DATABASES") + node1.query("DROP DATABASE postgres_database") + assert "postgres_database" not in node1.query("SHOW DATABASES") drop_postgres_table(cursor, "array_columns") def test_postgresql_database_engine_table_cache(started_cluster): - conn = get_postgres_conn(started_cluster, True) + conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) cursor = conn.cursor() node1.query( - "CREATE DATABASE test_database ENGINE = PostgreSQL('postgres1:5432', 'test_database', 'postgres', 'mysecretpassword', '', 1)" + "CREATE DATABASE postgres_database ENGINE = PostgreSQL('postgres1:5432', 'postgres_database', 'postgres', 'mysecretpassword', '', 1)" ) create_postgres_table(cursor, "test_table") assert ( - node1.query("DESCRIBE TABLE test_database.test_table").rstrip() + node1.query("DESCRIBE TABLE postgres_database.test_table").rstrip() == "id\tInt32\t\t\t\t\t\nvalue\tNullable(Int32)" ) cursor.execute("ALTER TABLE test_table ADD COLUMN data Text") assert ( - node1.query("DESCRIBE TABLE test_database.test_table").rstrip() + node1.query("DESCRIBE TABLE postgres_database.test_table").rstrip() == "id\tInt32\t\t\t\t\t\nvalue\tNullable(Int32)" ) - node1.query("DETACH TABLE test_database.test_table") - assert "test_table" not in node1.query("SHOW TABLES FROM test_database") + node1.query("DETACH TABLE postgres_database.test_table") + assert "test_table" not in node1.query("SHOW TABLES FROM postgres_database") - node1.query("ATTACH TABLE test_database.test_table") - assert "test_table" in node1.query("SHOW TABLES FROM test_database") + node1.query("ATTACH TABLE postgres_database.test_table") + assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") assert ( - node1.query("DESCRIBE TABLE test_database.test_table").rstrip() + node1.query("DESCRIBE TABLE postgres_database.test_table").rstrip() == "id\tInt32\t\t\t\t\t\nvalue\tNullable(Int32)\t\t\t\t\t\ndata\tNullable(String)" ) - node1.query("DROP TABLE test_database.test_table") - assert "test_table" not in node1.query("SHOW TABLES FROM test_database") + node1.query("DROP TABLE postgres_database.test_table") + assert "test_table" not in node1.query("SHOW TABLES FROM postgres_database") - node1.query("ATTACH TABLE test_database.test_table") - assert "test_table" in node1.query("SHOW TABLES FROM test_database") + node1.query("ATTACH TABLE postgres_database.test_table") + assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") node1.query( - "INSERT INTO test_database.test_table SELECT number, number, toString(number) from numbers(10000)" + "INSERT INTO postgres_database.test_table SELECT number, number, toString(number) from numbers(10000)" ) assert ( - node1.query("SELECT count() FROM test_database.test_table").rstrip() == "10000" + node1.query("SELECT count() FROM postgres_database.test_table").rstrip() == "10000" ) cursor.execute("DROP TABLE test_table;") - assert "test_table" not in node1.query("SHOW TABLES FROM test_database") + assert "test_table" not in node1.query("SHOW TABLES FROM postgres_database") - node1.query("DROP DATABASE test_database") - assert "test_database" not in node1.query("SHOW DATABASES") + node1.query("DROP DATABASE postgres_database") + assert "postgres_database" not in node1.query("SHOW DATABASES") def test_postgresql_database_with_schema(started_cluster): - conn = get_postgres_conn(started_cluster, True) + conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) cursor = conn.cursor() cursor.execute("CREATE SCHEMA test_schema") @@ -243,17 +233,17 @@ def test_postgresql_database_with_schema(started_cluster): cursor.execute("CREATE TABLE table3 (a integer)") node1.query( - "CREATE DATABASE test_database ENGINE = PostgreSQL('postgres1:5432', 'test_database', 'postgres', 'mysecretpassword', 'test_schema')" + "CREATE DATABASE postgres_database ENGINE = PostgreSQL('postgres1:5432', 'postgres_database', 'postgres', 'mysecretpassword', 'test_schema')" ) - assert node1.query("SHOW TABLES FROM test_database") == "table1\ntable2\n" + assert node1.query("SHOW TABLES FROM postgres_database") == "table1\ntable2\n" - node1.query("INSERT INTO test_database.table1 SELECT number from numbers(10000)") - assert node1.query("SELECT count() FROM test_database.table1").rstrip() == "10000" - node1.query("DETACH TABLE test_database.table1") - node1.query("ATTACH TABLE test_database.table1") - assert node1.query("SELECT count() FROM test_database.table1").rstrip() == "10000" - node1.query("DROP DATABASE test_database") + node1.query("INSERT INTO postgres_database.table1 SELECT number from numbers(10000)") + assert node1.query("SELECT count() FROM postgres_database.table1").rstrip() == "10000" + node1.query("DETACH TABLE postgres_database.table1") + node1.query("ATTACH TABLE postgres_database.table1") + assert node1.query("SELECT count() FROM postgres_database.table1").rstrip() == "10000" + node1.query("DROP DATABASE postgres_database") cursor.execute("DROP SCHEMA test_schema CASCADE") cursor.execute("DROP TABLE table3") @@ -321,18 +311,18 @@ def test_predefined_connection_configuration(started_cluster): def test_postgres_database_old_syntax(started_cluster): - conn = get_postgres_conn(started_cluster, True) + conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) cursor = conn.cursor() node1.query( """ - DROP DATABASE IF EXISTS test_database; - CREATE DATABASE test_database ENGINE = PostgreSQL('postgres1:5432', 'test_database', 'postgres', 'mysecretpassword', 1); + CREATE DATABASE postgres_database ENGINE = PostgreSQL('postgres1:5432', 'postgres_database', 'postgres', 'mysecretpassword', 1); """ ) create_postgres_table(cursor, "test_table") - assert "test_table" in node1.query("SHOW TABLES FROM test_database") - + assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") + cursor.execute(f"DROP TABLE test_table ") + node1.query("DROP DATABASE IF EXISTS postgres_database;") if __name__ == "__main__": cluster.start() From 2f03e821bd5ad44f82f0d68ecf43859c3af8117c Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 29 Jun 2022 15:08:16 +0200 Subject: [PATCH 387/525] Fix stupid bug --- src/Storages/MergeTree/DataPartsExchange.cpp | 11 +++++++---- src/Storages/MergeTree/MergeTreePartsMover.h | 4 ++-- src/Storages/StorageReplicatedMergeTree.cpp | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Storages/MergeTree/DataPartsExchange.cpp b/src/Storages/MergeTree/DataPartsExchange.cpp index 313bde658cb..68e9f0a78d1 100644 --- a/src/Storages/MergeTree/DataPartsExchange.cpp +++ b/src/Storages/MergeTree/DataPartsExchange.cpp @@ -869,12 +869,12 @@ MergeTreeData::MutableDataPartPtr Fetcher::downloadPartToDiskRemoteMeta( part_relative_path, part_dir); - if (data_part_storage_builder->exists()) - throw Exception(ErrorCodes::DIRECTORY_ALREADY_EXISTS, "Directory {} already exists.", data_part_storage_builder->getFullPath()); + if (data_part_storage->exists()) + throw Exception(ErrorCodes::DIRECTORY_ALREADY_EXISTS, "Directory {} already exists.", data_part_storage->getFullPath()); CurrentMetrics::Increment metric_increment{CurrentMetrics::ReplicatedFetch}; - data_part_storage_builder->createDirectories(); + volume->getDisk()->createDirectories(data_part_storage->getFullPath()); size_t files; readBinary(files, in); @@ -887,7 +887,7 @@ MergeTreeData::MutableDataPartPtr Fetcher::downloadPartToDiskRemoteMeta( readStringBinary(file_name, in); readBinary(file_size, in); - String metadata_file = fs::path(data_part_storage_builder->getFullPath()) / file_name; + String metadata_file = fs::path(data_part_storage->getFullPath()) / file_name; { auto file_out = std::make_unique(metadata_file, DBMS_DEFAULT_BUFFER_SIZE, -1, 0666, nullptr, 0); @@ -902,6 +902,7 @@ MergeTreeData::MutableDataPartPtr Fetcher::downloadPartToDiskRemoteMeta( /// performing a poll with a not very large timeout. /// And now we check it only between read chunks (in the `copyData` function). data_part_storage_builder->removeSharedRecursive(true); + data_part_storage_builder->commit(); throw Exception("Fetching of part was cancelled", ErrorCodes::ABORTED); } @@ -919,6 +920,8 @@ MergeTreeData::MutableDataPartPtr Fetcher::downloadPartToDiskRemoteMeta( assertEOF(in); + data_part_storage_builder->commit(); + MergeTreeData::MutableDataPartPtr new_data_part = data.createPart(part_name, data_part_storage); new_data_part->version.setCreationTID(Tx::PrehistoricTID, nullptr); new_data_part->is_temp = true; diff --git a/src/Storages/MergeTree/MergeTreePartsMover.h b/src/Storages/MergeTree/MergeTreePartsMover.h index 45bbce01d00..6ad658c2cb3 100644 --- a/src/Storages/MergeTree/MergeTreePartsMover.h +++ b/src/Storages/MergeTree/MergeTreePartsMover.h @@ -50,14 +50,14 @@ public: const std::lock_guard & moving_parts_lock); /// Copies part to selected reservation in detached folder. Throws exception if part already exists. - std::shared_ptr clonePart(const MergeTreeMoveEntry & moving_part) const; + MergeTreeDataPartPtr clonePart(const MergeTreeMoveEntry & moving_part) const; /// Replaces cloned part from detached directory into active data parts set. /// Replacing part changes state to DeleteOnDestroy and will be removed from disk after destructor of ///IMergeTreeDataPart called. If replacing part doesn't exists or not active (committed) than /// cloned part will be removed and log message will be reported. It may happen in case of concurrent /// merge or mutation. - void swapClonedPart(const std::shared_ptr & cloned_parts) const; + void swapClonedPart(const MergeTreeDataPartPtr & cloned_parts) const; /// Can stop background moves and moves from queries ActionBlocker moves_blocker; diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 2fee9782e77..a711ca803d4 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -4242,6 +4242,7 @@ DataPartStoragePtr StorageReplicatedMergeTree::fetchExistsPart( auto replaced_path = fs::path(replaced_part_path); auto builder = part->data_part_storage->getBuilder(); builder->rename(replaced_path.parent_path(), replaced_path.filename(), nullptr, true, false); + part->data_part_storage->onRename(replaced_path.parent_path(), replaced_path.filename()); builder->commit(); } catch (const Exception & e) From 3627c6ff3684cfa307b96b0ab536ddc05caba8c8 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Wed, 29 Jun 2022 13:13:39 +0000 Subject: [PATCH 388/525] Perf tests with high cardinality --- .../Transforms/DistinctSortedChunkTransform.cpp | 2 +- .../Transforms/DistinctSortedChunkTransform.h | 15 ++++++++++++--- tests/performance/distinct_in_order.xml | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 tests/performance/distinct_in_order.xml diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index b76c895c00e..70548aa4396 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -27,7 +27,7 @@ DistinctSortedChunkTransform::DistinctSortedChunkTransform( sorted_columns_pos.emplace_back(pos); } - /// calculate not-sorted columns positions + /// calculate non-sorted columns positions other_columns_pos.reserve(source_columns.size()); for (const auto & source_column : source_columns) { diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.h b/src/Processors/Transforms/DistinctSortedChunkTransform.h index 1d9162afd30..2e21c36f7dc 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.h +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.h @@ -8,12 +8,21 @@ namespace DB { - /// /// DISTINCT optimization for sorted chunks -/// It also checks if current chunks is continuation of previous one, +/// +/// (1) distinct columns are split into two groups - sorted i.e. belong to sorting prefix, +/// and non-sorted (other columns w/o sorting guarantees). +/// +/// (2) Rows are split into ranges. Range is a set of rows where the sorting prefix value is the same. +/// If there are no non-sorted columns, then we just skip all rows in range except one. +/// If there are non-sorted columns, then for each range, we use a hash table to find unique rows in a range. +/// +/// (3) The implementation also checks if current chunks is continuation of previous one, /// i.e. sorting prefix value of last row in previous chunk is the same as of first row in current one, -/// so it can correctly process sorted stream as well +/// so it can correctly process sorted stream as well. +/// For this, we don't clear sorting prefix value and hash table after a range is processed, +/// only right before a new range processing /// class DistinctSortedChunkTransform : public ISimpleTransform { diff --git a/tests/performance/distinct_in_order.xml b/tests/performance/distinct_in_order.xml new file mode 100644 index 00000000000..742fcefc0df --- /dev/null +++ b/tests/performance/distinct_in_order.xml @@ -0,0 +1,15 @@ + + CREATE TABLE distinct_cardinality (high UInt64, middle UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, middle, low) + INSERT INTO distinct_cardinality SELECT number, number % 1000, number % 10 from numbers(1000000) + + select distinct high from distinct_cardinality + select distinct high, low from distinct_cardinality + select distinct high, middle from distinct_cardinality + select distinct high, middle, low from distinct_cardinality + + select distinct high, middle from distinct_cardinality order by middle + select distinct high, low from distinct_cardinality order by low + select distinct high, middle, low from distinct_cardinality order by high + + DROP TABLE IF EXISTS distinct_cardinality + From 67f2fa0ef014f6a55c6bef7a5a13c0180aa26171 Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 29 Jun 2022 15:18:48 +0200 Subject: [PATCH 389/525] Fix style --- src/Storages/MergeTree/DataPartStorageOnDisk.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 1297a5ab58d..347f43a03e4 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -18,7 +18,6 @@ namespace DB namespace ErrorCodes { - extern const int FILE_DOESNT_EXIST; extern const int DIRECTORY_ALREADY_EXISTS; extern const int NOT_ENOUGH_SPACE; extern const int LOGICAL_ERROR; From baeb1811e194df4784339b737d135a9c30f58c50 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Wed, 29 Jun 2022 16:59:16 +0300 Subject: [PATCH 390/525] try to fix performance tests --- docker/test/performance-comparison/download.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/test/performance-comparison/download.sh b/docker/test/performance-comparison/download.sh index 463c08c5304..8d6c48935b7 100755 --- a/docker/test/performance-comparison/download.sh +++ b/docker/test/performance-comparison/download.sh @@ -73,6 +73,7 @@ function download ) & wait + cd db0 && echo "ATTACH DATABASE default ENGINE=Ordinary" > metadata/default.sql } download From 6f6e814542cec112c2e7b4b0c156ceaeaccfedff Mon Sep 17 00:00:00 2001 From: Yatsishin Ilya <2159081+qoega@users.noreply.github.com> Date: Wed, 29 Jun 2022 14:18:12 +0000 Subject: [PATCH 391/525] Fix test_dictionaries_postgresql --- .../configs/named_collections.xml | 4 ++-- tests/integration/test_dictionaries_postgresql/test.py | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_dictionaries_postgresql/configs/named_collections.xml b/tests/integration/test_dictionaries_postgresql/configs/named_collections.xml index 647840848fd..d08bc5b32c2 100644 --- a/tests/integration/test_dictionaries_postgresql/configs/named_collections.xml +++ b/tests/integration/test_dictionaries_postgresql/configs/named_collections.xml @@ -5,7 +5,7 @@ mysecretpassword postgres1 5432 - clickhouse + postgres_database test_table
@@ -13,7 +13,7 @@ mysecretpassword postgres1 5432 - clickhouse + postgres_database test_table
test_schema
diff --git a/tests/integration/test_dictionaries_postgresql/test.py b/tests/integration/test_dictionaries_postgresql/test.py index 46f7f7254eb..5d6bbf70a40 100644 --- a/tests/integration/test_dictionaries_postgresql/test.py +++ b/tests/integration/test_dictionaries_postgresql/test.py @@ -430,6 +430,9 @@ def test_postgres_schema(started_cluster): result = node1.query("SELECT dictGetUInt32(postgres_dict, 'value', toUInt64(99))") assert int(result.strip()) == 99 node1.query("DROP DICTIONARY IF EXISTS postgres_dict") + cursor.execute("DROP TABLE test_schema.test_table") + cursor.execute("DROP SCHEMA test_schema") + def test_predefined_connection_configuration(started_cluster): From 628ac3e1b8dd78f25cca79a128526dc93cd27243 Mon Sep 17 00:00:00 2001 From: Dan Roscigno Date: Wed, 29 Jun 2022 10:34:38 -0400 Subject: [PATCH 392/525] Apply suggestions from code review --- docs/zh/getting-started/tutorial.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/zh/getting-started/tutorial.md b/docs/zh/getting-started/tutorial.md index 2a0095bd3a9..5fa77bffa78 100644 --- a/docs/zh/getting-started/tutorial.md +++ b/docs/zh/getting-started/tutorial.md @@ -24,9 +24,6 @@ echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \ sudo apt-get update sudo apt-get install -y clickhouse-server clickhouse-client - -sudo service clickhouse-server start -clickhouse-client # or "clickhouse-client --password" if you've set up a password. ``` 在我们安装的软件中包含这些包: From f4691b0b0020df7ffd5b8c32662141931f3e4050 Mon Sep 17 00:00:00 2001 From: Yatsishin Ilya <2159081+qoega@users.noreply.github.com> Date: Wed, 29 Jun 2022 15:08:24 +0000 Subject: [PATCH 393/525] fix black --- .../test_dictionaries_postgresql/test.py | 46 ++++++------------- 1 file changed, 14 insertions(+), 32 deletions(-) diff --git a/tests/integration/test_dictionaries_postgresql/test.py b/tests/integration/test_dictionaries_postgresql/test.py index 5d6bbf70a40..516ac27ea26 100644 --- a/tests/integration/test_dictionaries_postgresql/test.py +++ b/tests/integration/test_dictionaries_postgresql/test.py @@ -20,6 +20,7 @@ node1 = cluster.add_instance( with_postgres_cluster=True, ) + def create_postgres_db(conn, name): cursor = conn.cursor() cursor.execute(f"CREATE DATABASE {name}") @@ -27,7 +28,7 @@ def create_postgres_db(conn, name): def create_postgres_table(cursor, table_name): cursor.execute( - f""" + f""" CREATE TABLE IF NOT EXISTS {table_name} ( id Integer NOT NULL, key Integer NOT NULL, value Integer NOT NULL, PRIMARY KEY (id)) """ @@ -47,13 +48,14 @@ def create_and_fill_postgres_table(cursor, table_name, port, host): def create_dict(table_name, index=0): node1.query( - f""" + f""" CREATE TABLE IF NOT EXISTS `test`.`dict_table_{table_name}` ( `key` UInt32, `value` UInt32 ) ENGINE = Dictionary(dict{str(index)}) """ ) + @pytest.fixture(scope="module") def started_cluster(): try: @@ -97,19 +99,14 @@ def test_load_dictionaries(started_cluster): node1.query(f"SYSTEM RELOAD DICTIONARY {dict_name}") assert ( - node1.query( - f"SELECT count() FROM `test`.`dict_table_{table_name}`" - ).rstrip() + node1.query(f"SELECT count() FROM `test`.`dict_table_{table_name}`").rstrip() == "10000" ) assert ( - node1.query(f"SELECT dictGetUInt32('{dict_name}', 'key', toUInt64(0))") - == "0\n" + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'key', toUInt64(0))") == "0\n" ) assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(9999))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(9999))") == "9999\n" ) @@ -288,15 +285,11 @@ def test_invalidate_query(started_cluster): create_dict(table_name) node1.query(f"SYSTEM RELOAD DICTIONARY {dict_name}") assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))") == "0\n" ) assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))") == "1\n" ) @@ -309,9 +302,7 @@ def test_invalidate_query(started_cluster): if result != "0\n": break assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))") == "1\n" ) @@ -319,15 +310,11 @@ def test_invalidate_query(started_cluster): cursor.execute(f"UPDATE {table_name} SET value=value*2 WHERE id != 0") time.sleep(5) assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))") == "1\n" ) assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))") == "1\n" ) @@ -335,15 +322,11 @@ def test_invalidate_query(started_cluster): cursor.execute(f"UPDATE {table_name} SET value=value+1 WHERE id = 0") time.sleep(5) assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(0))") == "2\n" ) assert ( - node1.query( - f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))" - ) + node1.query(f"SELECT dictGetUInt32('{dict_name}', 'value', toUInt64(1))") == "2\n" ) @@ -434,7 +417,6 @@ def test_postgres_schema(started_cluster): cursor.execute("DROP SCHEMA test_schema") - def test_predefined_connection_configuration(started_cluster): conn = get_postgres_conn( ip=started_cluster.postgres_ip, From 41460dcaca29b84d36fa52155b4dd4c9ef7675bd Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Wed, 29 Jun 2022 17:37:29 +0200 Subject: [PATCH 394/525] quick fix for 02112_with_fill_interval Seems like the problem is that now data more often come to FillingTransform in multiple chunks. Don't know why it affects the results, will continue investigation. --- tests/queries/0_stateless/02112_with_fill_interval.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/queries/0_stateless/02112_with_fill_interval.sql b/tests/queries/0_stateless/02112_with_fill_interval.sql index d2416f9a84b..16773780515 100644 --- a/tests/queries/0_stateless/02112_with_fill_interval.sql +++ b/tests/queries/0_stateless/02112_with_fill_interval.sql @@ -1,3 +1,5 @@ +SET max_threads = 1; + DROP TABLE IF EXISTS with_fill_date; CREATE TABLE with_fill_date (d Date, d32 Date32) ENGINE = Memory; From 65110fdffc7be3a39b2fcc4c0a4cd019c1d1c190 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Wed, 29 Jun 2022 17:50:25 +0200 Subject: [PATCH 395/525] ColumnVector refactor replicate SSE42 optimization --- src/Columns/ColumnVector.cpp | 220 ++++++++++++++++++----------------- src/Columns/ColumnVector.h | 4 +- 2 files changed, 114 insertions(+), 110 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 8a986c1ca86..7cfb90d4371 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -577,6 +577,113 @@ ColumnPtr ColumnVector::index(const IColumn & indexes, size_t limit) const return selectIndexImpl(*this, indexes, limit); } +#ifdef __SSE2__ + +namespace +{ + /** Optimization for ColumnVector replicate using SIMD instructions. + * For such optimization it is important that data is right padded with 15 bytes. + * + * Replicate span size is offsets[i] - offsets[i - 1]. + * + * Split spans into 3 categories. + * 1. Span with 0 size. Continue iteration. + * + * 2. Span with 1 size. Update pointer from which data must be copied into result. + * Then if we see span with size 1 or greater than 1 copy data directly into result data and reset pointer. + * Example: + * Data: 1 2 3 4 + * Offsets: 1 2 3 4 + * Result data: 1 2 3 4 + * + * 3. Span with size greater than 1. Save single data element into register and copy it into result data. + * Example: + * Data: 1 2 3 4 + * Offsets: 4 4 4 4 + * Result data: 1 1 1 1 + * + * Additional handling for tail is needed if pointer from which data must be copied from span with size 1 is not null. + */ + template + requires (std::is_same_v || std::is_same_v) + void replicateSSE42Int32(const IntType * __restrict data, IntType * __restrict result_data, const IColumn::Offsets & offsets) + { + const IntType * data_copy_begin_ptr = nullptr; + size_t offsets_size = offsets.size(); + + for (size_t offset_index = 0; offset_index < offsets_size; ++offset_index) + { + size_t span = offsets[offset_index] - offsets[offset_index - 1]; + if (span == 1) + { + if (!data_copy_begin_ptr) + data_copy_begin_ptr = data + offset_index; + + continue; + } + + /// Copy data + + if (data_copy_begin_ptr) + { + size_t copy_size = (data + offset_index) - data_copy_begin_ptr; + bool remainder = copy_size % 4; + size_t sse_copy_counter = (copy_size / 4) + remainder; + auto * result_data_copy = result_data; + + while (sse_copy_counter) + { + _mm_storeu_si128(reinterpret_cast<__m128i *>(result_data_copy), *(reinterpret_cast(data_copy_begin_ptr))); + result_data_copy += 4; + data_copy_begin_ptr += 4; + --sse_copy_counter; + } + + result_data += copy_size; + data_copy_begin_ptr = nullptr; + } + + if (span == 0) + continue; + + /// Copy single data element into result data + + bool span_remainder = span % 4; + size_t copy_counter = (span / 4) + span_remainder; + auto * result_data_tmp = result_data; + __m128i copy_element_data = _mm_set1_epi32(data[offset_index]); + + while (copy_counter) + { + _mm_storeu_si128(reinterpret_cast<__m128i *>(result_data_tmp), copy_element_data); + result_data_tmp += 4; + --copy_counter; + } + + result_data += span; + } + + /// Copy tail if needed + + if (data_copy_begin_ptr) + { + size_t copy_size = (data + offsets_size) - data_copy_begin_ptr; + bool remainder = copy_size % 4; + size_t sse_copy_counter = (copy_size / 4) + remainder; + + while (sse_copy_counter) + { + _mm_storeu_si128(reinterpret_cast<__m128i *>(result_data), *(reinterpret_cast(data_copy_begin_ptr))); + result_data += 4; + data_copy_begin_ptr += 4; + --sse_copy_counter; + } + } + } +} + +#endif + template ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const { @@ -587,13 +694,16 @@ ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const if (0 == size) return this->create(); + auto res = this->create(offsets.back()); + #ifdef __SSE2__ if constexpr (std::is_same_v) - return replicateSSE2(offsets); + { + replicateSSE42Int32(getData().data(), res->getData().data(), offsets); + return res; + } #endif - auto res = this->create(offsets.back()); - auto it = res->getData().begin(); // NOLINT for (size_t i = 0; i < size; ++i) { @@ -605,110 +715,6 @@ ColumnPtr ColumnVector::replicate(const IColumn::Offsets & offsets) const return res; } - -#ifdef __SSE2__ - -template -ColumnPtr ColumnVector::replicateSSE2(const IColumn::Offsets & offsets) const -{ - auto res = this->create(offsets.back()); - - auto it = res->getData().begin(); // NOLINT - - /// Column is using PaddedPODArray, so we don't have to worry about the 4 out of range elements. - - IColumn::Offset prev_offset = 0; - std::optional copy_begin; - size_t size = offsets.size(); - for (size_t i = 0; i < size; ++i) - { - size_t span = offsets[i] - prev_offset; - prev_offset = offsets[i]; - if (span == 1) - { - if (!copy_begin) - copy_begin = i; - continue; - } - - /// data : 11 22 33 44 55 - /// offsets: 0 1 2 3 3 - /// res: 22 33 44 - if (copy_begin) - { - size_t copy_size = i - (*copy_begin); - bool remain = (copy_size & 3); - size_t sse_copy_counter = (copy_size >> 2); - sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); - auto it_tmp = it; // NOLINT - size_t data_start = *copy_begin; - copy_begin.reset(); - constexpr const int copy_mask = _MM_SHUFFLE(3, 2, 1, 0); - while (sse_copy_counter) - { - __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); - it_tmp += 4; - data_start += 4; - --sse_copy_counter; - } - - it += copy_size; - } - - if (span == 0) - continue; - - /// data : 11 22 33 - /// offsets: 0 0 4 - /// res: 33 33 33 33 - size_t shuffle_size = span; - bool shuffle_remain = (shuffle_size & 3); - size_t sse_shuffle_counter = (shuffle_size >> 2); - sse_shuffle_counter = shuffle_remain * (sse_shuffle_counter + 1) + (!shuffle_remain) * (sse_shuffle_counter); - auto it_tmp = it; // NOLINT - constexpr const int shuffle_mask = (_MM_SHUFFLE(0, 0, 0, 0)); - __m128i data_to_shuffle = _mm_loadu_si128(reinterpret_cast(&data[i])); - auto shuffle_result = _mm_shuffle_epi32(data_to_shuffle, shuffle_mask); - while (sse_shuffle_counter) - { - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), shuffle_result); - it_tmp += 4; - --sse_shuffle_counter; - } - it += shuffle_size; - } - - /// data : 11 22 33 44 55 - /// offsets: 1 2 3 4 5 - /// res: 11 22 33 44 55 - if (copy_begin) - { - size_t copy_size = (size - (*copy_begin)); - bool remain = (copy_size & 3); - size_t sse_copy_counter = (copy_size >> 2); - sse_copy_counter = remain * (sse_copy_counter + 1) + (!remain) * (sse_copy_counter); - auto it_tmp = it; // NOLINT - size_t data_start = *copy_begin; - constexpr const int copy_mask = (_MM_SHUFFLE(3, 2, 1, 0)); - while (sse_copy_counter) - { - __m128i data_to_copy = _mm_loadu_si128(reinterpret_cast(&data[data_start])); - auto copy_result = _mm_shuffle_epi32(data_to_copy, copy_mask); - _mm_storeu_si128(reinterpret_cast<__m128i *>(it_tmp), copy_result); - it_tmp += 4; - data_start += 4; - --sse_copy_counter; - } - it += copy_size; - } - - return res; -} -#endif - - template void ColumnVector::gather(ColumnGathererStream & gatherer) { diff --git a/src/Columns/ColumnVector.h b/src/Columns/ColumnVector.h index 6aae3a3e3fb..6ba9abaca32 100644 --- a/src/Columns/ColumnVector.h +++ b/src/Columns/ColumnVector.h @@ -136,9 +136,7 @@ private: /// Sugar constructor. ColumnVector(std::initializer_list il) : data{il} {} - #ifdef __SSE2__ - ColumnPtr replicateSSE2(const IColumn::Offsets & offsets) const; - #endif + public: bool isNumeric() const override { return is_arithmetic_v; } From 45c18145ecc7b87d94aec801f07b68ba68ff510d Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Wed, 29 Jun 2022 17:51:27 +0200 Subject: [PATCH 396/525] Fixed tests --- .../0_stateless/02345_partial_sort_transform_optimization.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql index fe2ab096ab7..eb395e5ec41 100644 --- a/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql +++ b/tests/queries/0_stateless/02345_partial_sort_transform_optimization.sql @@ -1,4 +1,4 @@ --- Tags: no-backward-compatibility-check:22.6.1 +-- Tags: no-backward-compatibility-check -- Regression for PartialSortingTransform optimization that requires at least 1500 rows. SELECT * FROM (SELECT * FROM (SELECT 0 a, toNullable(number) b, toString(number) c FROM numbers(1e6)) ORDER BY a DESC, b DESC, c LIMIT 1500) limit 10; From 62e7a89f262909aa6d2c56ef9e88960d7d401500 Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 29 Jun 2022 17:53:08 +0200 Subject: [PATCH 397/525] Proper fix for ipv4/ipv6 conversion error --- src/Databases/TablesLoader.cpp | 13 +++++--- src/Databases/TablesLoader.h | 2 +- src/Interpreters/InterpreterCreateQuery.cpp | 5 +++ .../__init__.py | 1 + .../test.py | 31 +++++++++++++++++++ ...2316_cast_to_ip_address_default_column.sql | 17 +++++++++- 6 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 tests/integration/test_server_start_and_ip_conversions/__init__.py create mode 100644 tests/integration/test_server_start_and_ip_conversions/test.py diff --git a/src/Databases/TablesLoader.cpp b/src/Databases/TablesLoader.cpp index e973c9211be..7e9b83d423a 100644 --- a/src/Databases/TablesLoader.cpp +++ b/src/Databases/TablesLoader.cpp @@ -171,6 +171,11 @@ void TablesLoader::removeUnresolvableDependencies(bool remove_loaded) void TablesLoader::loadTablesInTopologicalOrder(ThreadPool & pool) { + /// Compatibility setting which should be enabled by default on attach + /// Otherwise server will be unable to start for some old-format of IPv6/IPv4 types of columns + ContextMutablePtr load_context = Context::createCopy(global_context); + load_context->setSetting("cast_ipv4_ipv6_default_on_conversion_error", 1); + /// Load independent tables in parallel. /// Then remove loaded tables from dependency graph, find tables/dictionaries that do not have unresolved dependencies anymore, /// move them to the list of independent tables and load. @@ -183,7 +188,7 @@ void TablesLoader::loadTablesInTopologicalOrder(ThreadPool & pool) assert(metadata.parsed_tables.size() == tables_processed + metadata.independent_database_objects.size() + getNumberOfTablesWithDependencies()); logDependencyGraph(); - startLoadingIndependentTables(pool, level); + startLoadingIndependentTables(pool, level, load_context); TableNames new_independent_database_objects; for (const auto & table_name : metadata.independent_database_objects) @@ -237,7 +242,7 @@ DependenciesInfosIter TablesLoader::removeResolvedDependency(const DependenciesI return metadata.dependencies_info.erase(info_it); } -void TablesLoader::startLoadingIndependentTables(ThreadPool & pool, size_t level) +void TablesLoader::startLoadingIndependentTables(ThreadPool & pool, size_t level, ContextMutablePtr load_context) { size_t total_tables = metadata.parsed_tables.size(); @@ -245,10 +250,10 @@ void TablesLoader::startLoadingIndependentTables(ThreadPool & pool, size_t level for (const auto & table_name : metadata.independent_database_objects) { - pool.scheduleOrThrowOnError([this, total_tables, &table_name]() + pool.scheduleOrThrowOnError([this, load_context, total_tables, &table_name]() { const auto & path_and_query = metadata.parsed_tables[table_name]; - databases[table_name.database]->loadTableFromMetadata(global_context, path_and_query.path, table_name, path_and_query.ast, force_restore); + databases[table_name.database]->loadTableFromMetadata(load_context, path_and_query.path, table_name, path_and_query.ast, force_restore); logAboutProgress(log, ++tables_processed, total_tables, stopwatch); }); } diff --git a/src/Databases/TablesLoader.h b/src/Databases/TablesLoader.h index 189906df6ff..43e8bfdb92c 100644 --- a/src/Databases/TablesLoader.h +++ b/src/Databases/TablesLoader.h @@ -104,7 +104,7 @@ private: DependenciesInfosIter removeResolvedDependency(const DependenciesInfosIter & info_it, TableNames & independent_database_objects); - void startLoadingIndependentTables(ThreadPool & pool, size_t level); + void startLoadingIndependentTables(ThreadPool & pool, size_t level, ContextMutablePtr load_context); void checkCyclicDependencies() const; diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index 20d88c91709..0fb048332b7 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -996,6 +996,11 @@ BlockIO InterpreterCreateQuery::createTable(ASTCreateQuery & create) throw Exception("Temporary tables cannot be inside a database. You should not specify a database for a temporary table.", ErrorCodes::BAD_DATABASE_FOR_TEMPORARY_TABLE); + /// Compatibility setting which should be enabled by default on attach + /// Otherwise server will be unable to start for some old-format of IPv6/IPv4 types + if (create.attach) + getContext()->setSetting("cast_ipv4_ipv6_default_on_conversion_error", 1); + String current_database = getContext()->getCurrentDatabase(); auto database_name = create.database ? create.getDatabase() : current_database; diff --git a/tests/integration/test_server_start_and_ip_conversions/__init__.py b/tests/integration/test_server_start_and_ip_conversions/__init__.py new file mode 100644 index 00000000000..e5a0d9b4834 --- /dev/null +++ b/tests/integration/test_server_start_and_ip_conversions/__init__.py @@ -0,0 +1 @@ +#!/usr/bin/env python3 diff --git a/tests/integration/test_server_start_and_ip_conversions/test.py b/tests/integration/test_server_start_and_ip_conversions/test.py new file mode 100644 index 00000000000..f91617f60b8 --- /dev/null +++ b/tests/integration/test_server_start_and_ip_conversions/test.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +import logging +import pytest +from helpers.cluster import ClickHouseCluster + +cluster = ClickHouseCluster(__file__) +node = cluster.add_instance("node", stay_alive=True) + +@pytest.fixture(scope="module", autouse=True) +def start_cluster(): + try: + cluster.start() + yield cluster + finally: + cluster.shutdown() + + +def test_restart_success(): + node.query(""" + CREATE TABLE ipv4_test + ( + id UInt64, + value String + ) ENGINE=MergeTree ORDER BY id""", + settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + + node.query("ALTER TABLE ipv4_test MODIFY COLUMN value IPv4 DEFAULT ''", settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + + node.restart_clickhouse() + + assert node.query("SELECT 1") == "1\n" diff --git a/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql b/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql index 200cec8fed9..128acd7d132 100644 --- a/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql +++ b/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql @@ -11,6 +11,13 @@ CREATE TABLE ipv4_test ALTER TABLE ipv4_test MODIFY COLUMN value IPv4 DEFAULT ''; +SET cast_ipv4_ipv6_default_on_conversion_error = 0; + +DETACH TABLE ipv4_test; +ATTACH TABLE ipv4_test; + +SET cast_ipv4_ipv6_default_on_conversion_error = 1; + DROP TABLE ipv4_test; DROP TABLE IF EXISTS ipv6_test; @@ -20,7 +27,15 @@ CREATE TABLE ipv6_test value String ) ENGINE=MergeTree ORDER BY id; -ALTER TABLE ipv6_test MODIFY COLUMN value IPv4 DEFAULT ''; +ALTER TABLE ipv6_test MODIFY COLUMN value IPv6 DEFAULT ''; + +SET cast_ipv4_ipv6_default_on_conversion_error = 0; + +DETACH TABLE ipv6_test; +ATTACH TABLE ipv6_test; + +SET cast_ipv4_ipv6_default_on_conversion_error = 1; + SELECT * FROM ipv6_test; DROP TABLE ipv6_test; From 1ef92b4c2796ac0a9b2826277e606c194de3689b Mon Sep 17 00:00:00 2001 From: Yatsishin Ilya <2159081+qoega@users.noreply.github.com> Date: Wed, 29 Jun 2022 15:56:29 +0000 Subject: [PATCH 398/525] fix black again --- .../test_postgresql_database_engine/test.py | 51 ++++++++++++++----- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/tests/integration/test_postgresql_database_engine/test.py b/tests/integration/test_postgresql_database_engine/test.py index 723c4f7cd09..f6cfa1b230f 100644 --- a/tests/integration/test_postgresql_database_engine/test.py +++ b/tests/integration/test_postgresql_database_engine/test.py @@ -50,7 +50,9 @@ def started_cluster(): def test_postgres_database_engine_with_postgres_ddl(started_cluster): # connect to database as well - conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) + conn = get_postgres_conn( + started_cluster.postgres_ip, started_cluster.postgres_port, database=True + ) cursor = conn.cursor() node1.query( @@ -78,7 +80,9 @@ def test_postgres_database_engine_with_postgres_ddl(started_cluster): def test_postgresql_database_engine_with_clickhouse_ddl(started_cluster): - conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) + conn = get_postgres_conn( + started_cluster.postgres_ip, started_cluster.postgres_port, database=True + ) cursor = conn.cursor() node1.query( @@ -107,7 +111,9 @@ def test_postgresql_database_engine_with_clickhouse_ddl(started_cluster): def test_postgresql_database_engine_queries(started_cluster): - conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) + conn = get_postgres_conn( + started_cluster.postgres_ip, started_cluster.postgres_port, database=True + ) cursor = conn.cursor() node1.query( @@ -115,13 +121,16 @@ def test_postgresql_database_engine_queries(started_cluster): ) create_postgres_table(cursor, "test_table") - assert node1.query("SELECT count() FROM postgres_database.test_table").rstrip() == "0" + assert ( + node1.query("SELECT count() FROM postgres_database.test_table").rstrip() == "0" + ) node1.query( "INSERT INTO postgres_database.test_table SELECT number, number from numbers(10000)" ) assert ( - node1.query("SELECT count() FROM postgres_database.test_table").rstrip() == "10000" + node1.query("SELECT count() FROM postgres_database.test_table").rstrip() + == "10000" ) drop_postgres_table(cursor, "test_table") @@ -132,7 +141,9 @@ def test_postgresql_database_engine_queries(started_cluster): def test_get_create_table_query_with_multidim_arrays(started_cluster): - conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) + conn = get_postgres_conn( + started_cluster.postgres_ip, started_cluster.postgres_port, database=True + ) cursor = conn.cursor() node1.query( @@ -173,7 +184,9 @@ def test_get_create_table_query_with_multidim_arrays(started_cluster): def test_postgresql_database_engine_table_cache(started_cluster): - conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) + conn = get_postgres_conn( + started_cluster.postgres_ip, started_cluster.postgres_port, database=True + ) cursor = conn.cursor() node1.query( @@ -213,7 +226,8 @@ def test_postgresql_database_engine_table_cache(started_cluster): "INSERT INTO postgres_database.test_table SELECT number, number, toString(number) from numbers(10000)" ) assert ( - node1.query("SELECT count() FROM postgres_database.test_table").rstrip() == "10000" + node1.query("SELECT count() FROM postgres_database.test_table").rstrip() + == "10000" ) cursor.execute("DROP TABLE test_table;") @@ -224,7 +238,9 @@ def test_postgresql_database_engine_table_cache(started_cluster): def test_postgresql_database_with_schema(started_cluster): - conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) + conn = get_postgres_conn( + started_cluster.postgres_ip, started_cluster.postgres_port, database=True + ) cursor = conn.cursor() cursor.execute("CREATE SCHEMA test_schema") @@ -238,11 +254,17 @@ def test_postgresql_database_with_schema(started_cluster): assert node1.query("SHOW TABLES FROM postgres_database") == "table1\ntable2\n" - node1.query("INSERT INTO postgres_database.table1 SELECT number from numbers(10000)") - assert node1.query("SELECT count() FROM postgres_database.table1").rstrip() == "10000" + node1.query( + "INSERT INTO postgres_database.table1 SELECT number from numbers(10000)" + ) + assert ( + node1.query("SELECT count() FROM postgres_database.table1").rstrip() == "10000" + ) node1.query("DETACH TABLE postgres_database.table1") node1.query("ATTACH TABLE postgres_database.table1") - assert node1.query("SELECT count() FROM postgres_database.table1").rstrip() == "10000" + assert ( + node1.query("SELECT count() FROM postgres_database.table1").rstrip() == "10000" + ) node1.query("DROP DATABASE postgres_database") cursor.execute("DROP SCHEMA test_schema CASCADE") @@ -311,7 +333,9 @@ def test_predefined_connection_configuration(started_cluster): def test_postgres_database_old_syntax(started_cluster): - conn = get_postgres_conn(started_cluster.postgres_ip, started_cluster.postgres_port, database=True) + conn = get_postgres_conn( + started_cluster.postgres_ip, started_cluster.postgres_port, database=True + ) cursor = conn.cursor() node1.query( @@ -324,6 +348,7 @@ def test_postgres_database_old_syntax(started_cluster): cursor.execute(f"DROP TABLE test_table ") node1.query("DROP DATABASE IF EXISTS postgres_database;") + if __name__ == "__main__": cluster.start() input("Cluster created, press any key to destroy...") From 9b387a57ed79ff37a1530ac46592412799e8634b Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 29 Jun 2022 17:56:59 +0200 Subject: [PATCH 399/525] Test ipv6 as well --- .../test.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/integration/test_server_start_and_ip_conversions/test.py b/tests/integration/test_server_start_and_ip_conversions/test.py index f91617f60b8..73604394d9d 100644 --- a/tests/integration/test_server_start_and_ip_conversions/test.py +++ b/tests/integration/test_server_start_and_ip_conversions/test.py @@ -15,7 +15,7 @@ def start_cluster(): cluster.shutdown() -def test_restart_success(): +def test_restart_success_ipv4(): node.query(""" CREATE TABLE ipv4_test ( @@ -29,3 +29,19 @@ def test_restart_success(): node.restart_clickhouse() assert node.query("SELECT 1") == "1\n" + + +def test_restart_success_ipv6(): + node.query(""" + CREATE TABLE ipv6_test + ( + id UInt64, + value String + ) ENGINE=MergeTree ORDER BY id""", + settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + + node.query("ALTER TABLE ipv6_test MODIFY COLUMN value IPv6 DEFAULT ''", settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + + node.restart_clickhouse() + + assert node.query("SELECT 1") == "1\n" From eb3f49426c3064df729f168e2b42b718d5bd4f1c Mon Sep 17 00:00:00 2001 From: Suzy Wang Date: Wed, 29 Jun 2022 09:58:55 -0700 Subject: [PATCH 400/525] Remove zlib in mariadb-connector-c --- contrib/mariadb-connector-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/mariadb-connector-c b/contrib/mariadb-connector-c index 5f4034a3a63..e39608998f5 160000 --- a/contrib/mariadb-connector-c +++ b/contrib/mariadb-connector-c @@ -1 +1 @@ -Subproject commit 5f4034a3a6376416504f17186c55fe401c6d8e5e +Subproject commit e39608998f5f6944ece9ec61f48e9172ec1de660 From 09be594c8135b4b40f4ddaefc1357cbdc75e50b4 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Wed, 29 Jun 2022 19:15:47 +0200 Subject: [PATCH 401/525] Dictionaries added TSA annotations --- src/Dictionaries/CacheDictionary.h | 2 +- .../CassandraDictionarySource.cpp | 6 +---- src/Dictionaries/CassandraDictionarySource.h | 5 +++-- src/Dictionaries/IDictionary.h | 22 +++++++++---------- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 0dbaf2716ba..d4716999b47 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -190,7 +190,7 @@ private: /// Dictionary source should be used with mutex mutable std::mutex source_mutex; - mutable DictionarySourcePtr source_ptr; + mutable DictionarySourcePtr source_ptr TSA_GUARDED_BY(source_mutex); CacheDictionaryStoragePtr cache_storage_ptr; mutable CacheDictionaryUpdateQueue update_queue; diff --git a/src/Dictionaries/CassandraDictionarySource.cpp b/src/Dictionaries/CassandraDictionarySource.cpp index e51caf7112a..e0cf2483b3d 100644 --- a/src/Dictionaries/CassandraDictionarySource.cpp +++ b/src/Dictionaries/CassandraDictionarySource.cpp @@ -194,12 +194,8 @@ QueryPipeline CassandraDictionarySource::loadUpdatedAll() CassSessionShared CassandraDictionarySource::getSession() { /// Reuse connection if exists, create new one if not - auto session = maybe_session.lock(); - if (session) - return session; - std::lock_guard lock(connect_mutex); - session = maybe_session.lock(); + auto session = maybe_session.lock(); if (session) return session; diff --git a/src/Dictionaries/CassandraDictionarySource.h b/src/Dictionaries/CassandraDictionarySource.h index c2038a966ea..e73383aa75c 100644 --- a/src/Dictionaries/CassandraDictionarySource.h +++ b/src/Dictionaries/CassandraDictionarySource.h @@ -82,9 +82,10 @@ private: Block sample_block; ExternalQueryBuilder query_builder; - std::mutex connect_mutex; CassClusterPtr cluster; - CassSessionWeak maybe_session; + + std::mutex connect_mutex; + CassSessionWeak maybe_session TSA_GUARDED_BY(connect_mutex); }; } diff --git a/src/Dictionaries/IDictionary.h b/src/Dictionaries/IDictionary.h index 480befdcfb2..3f3c60206d6 100644 --- a/src/Dictionaries/IDictionary.h +++ b/src/Dictionaries/IDictionary.h @@ -62,26 +62,26 @@ public: std::string getFullName() const { - std::lock_guard lock{name_mutex}; + std::lock_guard lock{mutex}; return dictionary_id.getNameForLogs(); } StorageID getDictionaryID() const { - std::lock_guard lock{name_mutex}; + std::lock_guard lock{mutex}; return dictionary_id; } void updateDictionaryName(const StorageID & new_name) const { - std::lock_guard lock{name_mutex}; + std::lock_guard lock{mutex}; assert(new_name.uuid == dictionary_id.uuid && dictionary_id.uuid != UUIDHelpers::Nil); dictionary_id = new_name; } std::string getLoadableName() const final { - std::lock_guard lock{name_mutex}; + std::lock_guard lock{mutex}; return dictionary_id.getInternalDictionaryName(); } @@ -92,6 +92,8 @@ public: std::string getDatabaseOrNoDatabaseTag() const { + std::lock_guard lock{mutex}; + if (!dictionary_id.database_name.empty()) return dictionary_id.database_name; @@ -278,22 +280,20 @@ public: void setDictionaryComment(String new_comment) { - std::lock_guard lock{name_mutex}; + std::lock_guard lock{mutex}; dictionary_comment = std::move(new_comment); } String getDictionaryComment() const { - std::lock_guard lock{name_mutex}; + std::lock_guard lock{mutex}; return dictionary_comment; } private: - mutable std::mutex name_mutex; - mutable StorageID dictionary_id; - -protected: - String dictionary_comment; + mutable std::mutex mutex; + mutable StorageID dictionary_id TSA_GUARDED_BY(mutex); + String dictionary_comment TSA_GUARDED_BY(mutex); }; } From cd2cb10f605bcd706d9be731e0488d6c2bd3c369 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Wed, 29 Jun 2022 20:55:46 +0300 Subject: [PATCH 402/525] another try to fix performance tests --- docker/test/performance-comparison/download.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docker/test/performance-comparison/download.sh b/docker/test/performance-comparison/download.sh index 8d6c48935b7..a125b1816e5 100755 --- a/docker/test/performance-comparison/download.sh +++ b/docker/test/performance-comparison/download.sh @@ -73,7 +73,16 @@ function download ) & wait + pwd + ls + ls db0 + ls db0/metadata cd db0 && echo "ATTACH DATABASE default ENGINE=Ordinary" > metadata/default.sql + cd db0 && echo "ATTACH DATABASE datasets ENGINE=Ordinary" > metadata/datasets.sql + pwd + ls + ls db0 + ls db0/metadata } download From 8f5582f95efd18eac8c926a89574b20e617b939c Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 29 Jun 2022 20:29:50 +0200 Subject: [PATCH 403/525] Review and style fixes --- src/Interpreters/InterpreterCreateQuery.cpp | 9 ++++---- .../test.py | 23 ++++++++++++++----- ...2316_cast_to_ip_address_default_column.sql | 1 + 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index 0fb048332b7..7a00bbf524c 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -996,11 +996,6 @@ BlockIO InterpreterCreateQuery::createTable(ASTCreateQuery & create) throw Exception("Temporary tables cannot be inside a database. You should not specify a database for a temporary table.", ErrorCodes::BAD_DATABASE_FOR_TEMPORARY_TABLE); - /// Compatibility setting which should be enabled by default on attach - /// Otherwise server will be unable to start for some old-format of IPv6/IPv4 types - if (create.attach) - getContext()->setSetting("cast_ipv4_ipv6_default_on_conversion_error", 1); - String current_database = getContext()->getCurrentDatabase(); auto database_name = create.database ? create.getDatabase() : current_database; @@ -1043,6 +1038,10 @@ BlockIO InterpreterCreateQuery::createTable(ASTCreateQuery & create) create.attach = true; create.attach_short_syntax = true; create.if_not_exists = if_not_exists; + + /// Compatibility setting which should be enabled by default on attach + /// Otherwise server will be unable to start for some old-format of IPv6/IPv4 types + getContext()->setSetting("cast_ipv4_ipv6_default_on_conversion_error", 1); } /// TODO throw exception if !create.attach_short_syntax && !create.attach_from_path && !internal diff --git a/tests/integration/test_server_start_and_ip_conversions/test.py b/tests/integration/test_server_start_and_ip_conversions/test.py index 73604394d9d..abb6a546f64 100644 --- a/tests/integration/test_server_start_and_ip_conversions/test.py +++ b/tests/integration/test_server_start_and_ip_conversions/test.py @@ -6,6 +6,7 @@ from helpers.cluster import ClickHouseCluster cluster = ClickHouseCluster(__file__) node = cluster.add_instance("node", stay_alive=True) + @pytest.fixture(scope="module", autouse=True) def start_cluster(): try: @@ -16,15 +17,20 @@ def start_cluster(): def test_restart_success_ipv4(): - node.query(""" + node.query( + """ CREATE TABLE ipv4_test ( id UInt64, value String ) ENGINE=MergeTree ORDER BY id""", - settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}, + ) - node.query("ALTER TABLE ipv4_test MODIFY COLUMN value IPv4 DEFAULT ''", settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + node.query( + "ALTER TABLE ipv4_test MODIFY COLUMN value IPv4 DEFAULT ''", + settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}, + ) node.restart_clickhouse() @@ -32,15 +38,20 @@ def test_restart_success_ipv4(): def test_restart_success_ipv6(): - node.query(""" + node.query( + """ CREATE TABLE ipv6_test ( id UInt64, value String ) ENGINE=MergeTree ORDER BY id""", - settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}, + ) - node.query("ALTER TABLE ipv6_test MODIFY COLUMN value IPv6 DEFAULT ''", settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}) + node.query( + "ALTER TABLE ipv6_test MODIFY COLUMN value IPv6 DEFAULT ''", + settings={"cast_ipv4_ipv6_default_on_conversion_error": 1}, + ) node.restart_clickhouse() diff --git a/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql b/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql index 128acd7d132..eabe6ed1d65 100644 --- a/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql +++ b/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql @@ -1,4 +1,5 @@ -- Tags: no-backward-compatibility-check +-- TODO: remove after new 22.6 release SET cast_ipv4_ipv6_default_on_conversion_error = 1; From 615070425e8c759e282af1c3917c4cab6482b89b Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 29 Jun 2022 20:30:23 +0200 Subject: [PATCH 404/525] Fix comment --- .../0_stateless/02316_cast_to_ip_address_default_column.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql b/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql index eabe6ed1d65..35f210be43d 100644 --- a/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql +++ b/tests/queries/0_stateless/02316_cast_to_ip_address_default_column.sql @@ -1,5 +1,5 @@ -- Tags: no-backward-compatibility-check --- TODO: remove after new 22.6 release +-- TODO: remove no-backward-compatibility-check after new 22.6 release SET cast_ipv4_ipv6_default_on_conversion_error = 1; From 6bf9c7cd4d5de11b94b777c5d37158f9eeb9f084 Mon Sep 17 00:00:00 2001 From: HeenaBansal2009 Date: Wed, 29 Jun 2022 12:21:05 -0700 Subject: [PATCH 405/525] Updated index file for Geo functions --- docs/en/sql-reference/functions/geo/index.md | 96 ++++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/en/sql-reference/functions/geo/index.md b/docs/en/sql-reference/functions/geo/index.md index ea43b3ef96c..c0162cb5b63 100644 --- a/docs/en/sql-reference/functions/geo/index.md +++ b/docs/en/sql-reference/functions/geo/index.md @@ -20,57 +20,57 @@ sidebar_position: 62 ## H3 Indexes Functions -- [h3IsValid](./h3#h3IsValid) -- [h3GetResolution](./h3#h3GetResolution) -- [h3EdgeAngle](./h3#h3EdgeAngle) -- [h3EdgeLengthM​](./h3#h3EdgeLengthM​) -- [h3EdgeLengthKm] (./h3#h3EdgeLengthKm) -- [geoToH3](./h3#geoToH3) -- [h3ToGeo](./h3#h3ToGeo) -- [h3ToGeoBoundary](./h3#h3ToGeoBoundary) -- [h3kRing](./h3#h3kRing) -- [h3GetBaseCell](./h3#h3GetBaseCell) -- [h3HexAreaM2](./h3#h3HexAreaM2) -- [h3HexAreaKm2](./h3#h3HexAreaKm2) -- [h3IndexesAreNeighbors](./h3#h3IndexesAreNeighbors) -- [h3ToChildren](./h3#h3ToChildren) -- [h3ToParent](./h3#h3ToParent) -- [h3ToString](./h3#h3ToString) -- [stringToH3](./h3#stringToH3) -- [h3GetResolution](./h3#h3GetResolution) -- [h3IsResClassIII](./h3#h3IsResClassIII) -- [h3IsPentagon](./h3#h3IsPentagon) -- [h3GetFaces](./h3#h3GetFaces) -- [h3CellAreaM2](./h3#h3CellAreaM2) -- [h3CellAreaRads2](./h3#h3CellAreaRads2) -- [h3ToCenterChild](./h3#h3ToCenterChild) -- [h3ExactEdgeLengthM](./h3#h3ExactEdgeLengthM) -- [h3ExactEdgeLengthKm](./h3#h3ExactEdgeLengthKm) -- [h3ExactEdgeLengthRads](./h3#h3ExactEdgeLengthRads) -- [h3NumHexagons](./h3#h3NumHexagons) -- [h3Line](./h3#h3Line) -- [h3Distance](./h3#h3Distance) -- [h3HexRing](./h3#h3HexRing) -- [h3GetUnidirectionalEdge](./h3#h3GetUnidirectionalEdge) -- [h3UnidirectionalEdgeIsValid](./h3#h3UnidirectionalEdgeIsValid) -- [h3GetOriginIndexFromUnidirectionalEdge](./h3#h3GetOriginIndexFromUnidirectionalEdge) -- [h3GetDestinationIndexFromUnidirectionalEdge](./h3#h3GetDestinationIndexFromUnidirectionalEdge) -- [h3GetIndexesFromUnidirectionalEdge](./h3#h3GetIndexesFromUnidirectionalEdge) -- [h3GetUnidirectionalEdgesFromHexagon](./h3#h3GetUnidirectionalEdgesFromHexagon) -- [h3GetUnidirectionalEdgeBoundary](./h3#h3GetUnidirectionalEdgeBoundary) +- [h3IsValid](./h3.md#h3IsValid) +- [h3GetResolution](./h3.md#h3GetResolution) +- [h3EdgeAngle](./h3.md#h3EdgeAngle) +- [h3EdgeLengthM​](./h3.md#h3EdgeLengthM​) +- [h3EdgeLengthKm](./h3.md#h3EdgeLengthKm) +- [geoToH3](./h3.md#geoToH3) +- [h3ToGeo](./h3.md#h3ToGeo) +- [h3ToGeoBoundary](./h3.md#h3ToGeoBoundary) +- [h3kRing](./h3.md#h3kRing) +- [h3GetBaseCell](./h3.md#h3GetBaseCell) +- [h3HexAreaM2](./h3.md#h3HexAreaM2) +- [h3HexAreaKm2](./h3.md#h3HexAreaKm2) +- [h3IndexesAreNeighbors](./h3.md#h3IndexesAreNeighbors) +- [h3ToChildren](./h3.md#h3ToChildren) +- [h3ToParent](./h3.md#h3ToParent) +- [h3ToString](./h3.md#h3ToString) +- [stringToH3](./h3.md#stringToH3) +- [h3GetResolution](./h3.md#h3GetResolution) +- [h3IsResClassIII](./h3.md#h3IsResClassIII) +- [h3IsPentagon](./h3.md#h3IsPentagon) +- [h3GetFaces](./h3.md#h3GetFaces) +- [h3CellAreaM2](./h3.md#h3CellAreaM2) +- [h3CellAreaRads2](./h3.md#h3CellAreaRads2) +- [h3ToCenterChild](./h3.md#h3ToCenterChild) +- [h3ExactEdgeLengthM](./h3.md#h3ExactEdgeLengthM) +- [h3ExactEdgeLengthKm](./h3.md#h3ExactEdgeLengthKm) +- [h3ExactEdgeLengthRads](./h3.md#h3ExactEdgeLengthRads) +- [h3NumHexagons](./h3.md#h3NumHexagons) +- [h3Line](./h3.md#h3Line) +- [h3Distance](./h3.md#h3Distance) +- [h3HexRing](./h3.md#h3HexRing) +- [h3GetUnidirectionalEdge](./h3.md#h3GetUnidirectionalEdge) +- [h3UnidirectionalEdgeIsValid](./h3.md#h3UnidirectionalEdgeIsValid) +- [h3GetOriginIndexFromUnidirectionalEdge](./h3.md#h3GetOriginIndexFromUnidirectionalEdge) +- [h3GetDestinationIndexFromUnidirectionalEdge](./h3.md#h3GetDestinationIndexFromUnidirectionalEdge) +- [h3GetIndexesFromUnidirectionalEdge](./h3.md#h3GetIndexesFromUnidirectionalEdge) +- [h3GetUnidirectionalEdgesFromHexagon](./h3.md#h3GetUnidirectionalEdgesFromHexagon) +- [h3GetUnidirectionalEdgeBoundary](./h3.md#h3GetUnidirectionalEdgeBoundary) ## S2 Index Functions -- [geoToS2](./s2#geoToS2) -- [s2ToGeo](./s2#s2ToGeo) -- [s2GetNeighbors](./s2#s2GetNeighbors) -- [s2CellsIntersect](./s2#s2CellsIntersect) -- [s2CapContains](./s2#s2CapContains) -- [s2CapUnion](./s2#s2CapUnion) -- [s2RectAdd](./s2#s2RectAdd) -- [s2RectContains](./s2#s2RectContains) -- [s2RectUinion](./s2#s2RectUinion) -- [s2RectIntersection](./s2#s2RectIntersection) +- [geoToS2](./s2.md#geoToS2) +- [s2ToGeo](./s2.md#s2ToGeo) +- [s2GetNeighbors](./s2.md#s2GetNeighbors) +- [s2CellsIntersect](./s2.md#s2CellsIntersect) +- [s2CapContains](./s2.md#s2CapContains) +- [s2CapUnion](./s2.md#s2CapUnion) +- [s2RectAdd](./s2.md#s2RectAdd) +- [s2RectContains](./s2.md#s2RectContains) +- [s2RectUinion](./s2.md#s2RectUinion) +- [s2RectIntersection](./s2.md#s2RectIntersection) [Original article](https://clickhouse.com/docs/en/sql-reference/functions/geo/) From 7d2e8b08830a9b7e1bea94e4988a5fb8f38b7f99 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Wed, 29 Jun 2022 22:15:12 +0200 Subject: [PATCH 406/525] clean up --- src/Common/HashTable/HashTable.h | 50 ++++++++++--------- .../cache_values_inside_hash_table_grower.xml | 8 --- 2 files changed, 26 insertions(+), 32 deletions(-) delete mode 100644 tests/performance/cache_values_inside_hash_table_grower.xml diff --git a/src/Common/HashTable/HashTable.h b/src/Common/HashTable/HashTable.h index b802eb0a860..e8a204c4043 100644 --- a/src/Common/HashTable/HashTable.h +++ b/src/Common/HashTable/HashTable.h @@ -240,40 +240,42 @@ struct HashTableGrower static constexpr auto performs_linear_probing_with_single_step = true; /// The size of the hash table in the cells. - size_t bufSize() const { return 1ULL << size_degree; } + size_t bufSize() const { return 1ULL << size_degree; } - size_t maxFill() const { return 1ULL << (size_degree - 1); } - size_t mask() const { return bufSize() - 1; } + size_t maxFill() const { return 1ULL << (size_degree - 1); } + size_t mask() const { return bufSize() - 1; } /// From the hash value, get the cell number in the hash table. - size_t place(size_t x) const { return x & mask(); } + size_t place(size_t x) const { return x & mask(); } /// The next cell in the collision resolution chain. - size_t next(size_t pos) const - { - ++pos; - return pos & mask(); - } + size_t next(size_t pos) const { ++pos; return pos & mask(); } /// Whether the hash table is sufficiently full. You need to increase the size of the hash table, or remove something unnecessary from it. - bool overflow(size_t elems) const { return elems > maxFill(); } + bool overflow(size_t elems) const { return elems > maxFill(); } /// Increase the size of the hash table. - void increaseSize() { size_degree += size_degree >= 23 ? 1 : 2; } + void increaseSize() + { + size_degree += size_degree >= 23 ? 1 : 2; + } /// Set the buffer size by the number of elements in the hash table. Used when deserializing a hash table. void set(size_t num_elems) { size_degree = num_elems <= 1 - ? initial_size_degree - : ((initial_size_degree > static_cast(log2(num_elems - 1)) + 2) ? initial_size_degree - : (static_cast(log2(num_elems - 1)) + 2)); + ? initial_size_degree + : ((initial_size_degree > static_cast(log2(num_elems - 1)) + 2) + ? initial_size_degree + : (static_cast(log2(num_elems - 1)) + 2)); } - void setBufSize(size_t buf_size_) { size_degree = static_cast(log2(buf_size_ - 1) + 1); } + void setBufSize(size_t buf_size_) + { + size_degree = static_cast(log2(buf_size_ - 1) + 1); + } }; - /** Determines the size of the hash table, and when and how much it should be resized. * This structure is aligned to cache line boundary and also occupies it all. * Precalculates some values to speed up lookups and insertion into the HashTable (and thus has bigger memory footprint than HashTableGrower). @@ -284,8 +286,8 @@ class alignas(64) HashTableGrowerWithPrecalculation /// The state of this structure is enough to get the buffer size of the hash table. UInt8 size_degree = initial_size_degree; - size_t cached_mask = (1ULL << initial_size_degree) - 1; - size_t cached_max_fill = 1ULL << (initial_size_degree - 1); + size_t precalculated_mask = (1ULL << initial_size_degree) - 1; + size_t precalculated_max_fill = 1ULL << (initial_size_degree - 1); public: UInt8 sizeDegree() const { return size_degree; } @@ -293,8 +295,8 @@ public: void increaseSizeDegree(UInt8 delta) { size_degree += delta; - cached_mask = (1ULL << size_degree) - 1; - cached_max_fill = 1ULL << (size_degree - 1); + precalculated_mask = (1ULL << size_degree) - 1; + precalculated_max_fill = 1ULL << (size_degree - 1); } static constexpr auto initial_count = 1ULL << initial_size_degree; @@ -303,16 +305,16 @@ public: static constexpr auto performs_linear_probing_with_single_step = true; /// The size of the hash table in the cells. - size_t bufSize() const { return 1ULL << size_degree; } + size_t bufSize() const { return 1ULL << size_degree; } /// From the hash value, get the cell number in the hash table. - size_t place(size_t x) const { return x & cached_mask; } + size_t place(size_t x) const { return x & precalculated_mask; } /// The next cell in the collision resolution chain. - size_t next(size_t pos) const { return (pos + 1) & cached_mask; } + size_t next(size_t pos) const { return (pos + 1) & precalculated_mask; } /// Whether the hash table is sufficiently full. You need to increase the size of the hash table, or remove something unnecessary from it. - bool overflow(size_t elems) const { return elems > cached_max_fill; } + bool overflow(size_t elems) const { return elems > precalculated_max_fill; } /// Increase the size of the hash table. void increaseSize() { increaseSizeDegree(size_degree >= 23 ? 1 : 2); } diff --git a/tests/performance/cache_values_inside_hash_table_grower.xml b/tests/performance/cache_values_inside_hash_table_grower.xml deleted file mode 100644 index f915c1268bf..00000000000 --- a/tests/performance/cache_values_inside_hash_table_grower.xml +++ /dev/null @@ -1,8 +0,0 @@ - - select * from numbers_mt(200) group by number format Null - select * from numbers_mt(1e4) group by number format Null - select * from numbers_mt(1e5) group by number format Null - select * from numbers_mt(1e6) group by number format Null - select * from numbers_mt(1e7) group by number format Null - select * from numbers_mt(1e8) group by number format Null - From 81bb2242fdd2c98af7ad0dcd66d3b2275f0aadba Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Wed, 29 Jun 2022 15:08:16 +0000 Subject: [PATCH 407/525] Fix countSubstrings() & position() on patterns with 0-bytes SQL functions countSubstrings(), countSubstringsCaseInsensitive(), countSubstringsUTF8(), position(), positionCaseInsensitive(), positionUTF8() with non-const pattern argument use fallback sorters LibCASCIICaseSensitiveStringSearcher and LibCASCIICaseInsensitiveStringSearcher which call ::strstr(), resp. ::strcasestr(). These functions assume that the haystack is 0-terminated and they even document that. However, the callers did not check if the haystack contains 0-byte (perhaps because its sort of expensive). As a consequence, if the haystack contained a zero byte in it's payload, matches behind this zero byte were ignored. create table t (id UInt32, pattern String) engine = MergeTree() order by id; insert into t values (1, 'x'); select countSubstrings('aaaxxxaa\0xxx', pattern) from t; We returned 3 before this commit, now we return 6 --- src/Common/StringSearcher.h | 69 +++++++------------ src/Functions/PositionImpl.h | 6 +- ...sition_countsubstrings_zero_byte.reference | 12 ++++ ...346_position_countsubstrings_zero_byte.sql | 24 +++++++ 4 files changed, 62 insertions(+), 49 deletions(-) create mode 100644 tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.reference create mode 100644 tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.sql diff --git a/src/Common/StringSearcher.h b/src/Common/StringSearcher.h index a82115a9923..7d669ddd369 100644 --- a/src/Common/StringSearcher.h +++ b/src/Common/StringSearcher.h @@ -826,66 +826,43 @@ using UTF8CaseInsensitiveStringSearcher = StringSearcher; using ASCIICaseSensitiveTokenSearcher = TokenSearcher; using ASCIICaseInsensitiveTokenSearcher = TokenSearcher; - -/** Uses functions from libc. - * It makes sense to use only with short haystacks when cheap initialization is required. - * There is no option for case-insensitive search for UTF-8 strings. - * It is required that strings are zero-terminated. - */ - -struct LibCASCIICaseSensitiveStringSearcher : public StringSearcherBase +/// Use only with short haystacks where cheap initialization is required. +template +struct StdLibASCIIStringSearcher : public StringSearcherBase { - const char * const needle; + const char * const needle_start; + const char * const needle_end; template requires (sizeof(CharT) == 1) - LibCASCIICaseSensitiveStringSearcher(const CharT * const needle_, const size_t /* needle_size */) - : needle(reinterpret_cast(needle_)) {} + StdLibASCIIStringSearcher(const CharT * const needle_start_, const size_t needle_size_) + : needle_start{reinterpret_cast(needle_start_)} + , needle_end{reinterpret_cast(needle_start) + needle_size_} + {} template requires (sizeof(CharT) == 1) - const CharT * search(const CharT * haystack, const CharT * const haystack_end) const + const CharT * search(const CharT * haystack_start, const CharT * const haystack_end) const { - const auto * res = strstr(reinterpret_cast(haystack), reinterpret_cast(needle)); - if (!res) - return haystack_end; - return reinterpret_cast(res); + if constexpr (CaseInsensitive) + { + return std::search( + haystack_start, haystack_end, needle_start, needle_end, + [](char c1, char c2) {return std::toupper(c1) == std::toupper(c2);}); + } + else + { + return std::search( + haystack_start, haystack_end, needle_start, needle_end); + } } template requires (sizeof(CharT) == 1) - const CharT * search(const CharT * haystack, const size_t haystack_size) const + const CharT * search(const CharT * haystack_start, const size_t haystack_length) const { - return search(haystack, haystack + haystack_size); + return search(haystack_start, haystack_start + haystack_length); } }; -struct LibCASCIICaseInsensitiveStringSearcher : public StringSearcherBase -{ - const char * const needle; - - template - requires (sizeof(CharT) == 1) - LibCASCIICaseInsensitiveStringSearcher(const CharT * const needle_, const size_t /* needle_size */) - : needle(reinterpret_cast(needle_)) {} - - template - requires (sizeof(CharT) == 1) - const CharT * search(const CharT * haystack, const CharT * const haystack_end) const - { - const auto * res = strcasestr(reinterpret_cast(haystack), reinterpret_cast(needle)); - if (!res) - return haystack_end; - return reinterpret_cast(res); - } - - template - requires (sizeof(CharT) == 1) - const CharT * search(const CharT * haystack, const size_t haystack_size) const - { - return search(haystack, haystack + haystack_size); - } -}; - - } diff --git a/src/Functions/PositionImpl.h b/src/Functions/PositionImpl.h index 5380fcc36d9..76f10373a58 100644 --- a/src/Functions/PositionImpl.h +++ b/src/Functions/PositionImpl.h @@ -26,7 +26,7 @@ struct PositionCaseSensitiveASCII using MultiSearcherInBigHaystack = MultiVolnitsky; /// For searching single substring, that is different each time. This object is created for each row of data. It must have cheap initialization. - using SearcherInSmallHaystack = LibCASCIICaseSensitiveStringSearcher; + using SearcherInSmallHaystack = StdLibASCIIStringSearcher; static SearcherInBigHaystack createSearcherInBigHaystack(const char * needle_data, size_t needle_size, size_t haystack_size_hint) { @@ -62,7 +62,7 @@ struct PositionCaseInsensitiveASCII /// `Volnitsky` is not used here, because one person has measured that this is better. It will be good if you question it. using SearcherInBigHaystack = ASCIICaseInsensitiveStringSearcher; using MultiSearcherInBigHaystack = MultiVolnitskyCaseInsensitive; - using SearcherInSmallHaystack = LibCASCIICaseInsensitiveStringSearcher; + using SearcherInSmallHaystack = StdLibASCIIStringSearcher; static SearcherInBigHaystack createSearcherInBigHaystack(const char * needle_data, size_t needle_size, size_t /*haystack_size_hint*/) { @@ -94,7 +94,7 @@ struct PositionCaseSensitiveUTF8 { using SearcherInBigHaystack = VolnitskyUTF8; using MultiSearcherInBigHaystack = MultiVolnitskyUTF8; - using SearcherInSmallHaystack = LibCASCIICaseSensitiveStringSearcher; + using SearcherInSmallHaystack = StdLibASCIIStringSearcher; static SearcherInBigHaystack createSearcherInBigHaystack(const char * needle_data, size_t needle_size, size_t haystack_size_hint) { diff --git a/tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.reference b/tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.reference new file mode 100644 index 00000000000..2b70bdc272e --- /dev/null +++ b/tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.reference @@ -0,0 +1,12 @@ +6 +6 +6 +6 +6 +6 +7 +7 +7 +7 +7 +7 diff --git a/tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.sql b/tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.sql new file mode 100644 index 00000000000..6208baf41c4 --- /dev/null +++ b/tests/queries/0_stateless/02346_position_countsubstrings_zero_byte.sql @@ -0,0 +1,24 @@ +drop table if exists tab; + +create table tab (id UInt32, haystack String, pattern String) engine = MergeTree() order by id; +insert into tab values (1, 'aaaxxxaa\0xxx', 'x'); + +select countSubstrings('aaaxxxaa\0xxx', pattern) from tab where id = 1; +select countSubstringsCaseInsensitive('aaaxxxaa\0xxx', pattern) from tab where id = 1; +select countSubstringsCaseInsensitiveUTF8('aaaxxxaa\0xxx', pattern) from tab where id = 1; + +select countSubstrings(haystack, pattern) from tab where id = 1; +select countSubstringsCaseInsensitive(haystack, pattern) from tab where id = 1; +select countSubstringsCaseInsensitiveUTF8(haystack, pattern) from tab where id = 1; + +insert into tab values (2, 'aaaaa\0x', 'x'); + +select position('aaaaa\0x', pattern) from tab where id = 2; +select positionCaseInsensitive('aaaaa\0x', pattern) from tab where id = 2; +select positionCaseInsensitiveUTF8('aaaaa\0x', pattern) from tab where id = 2; + +select position(haystack, pattern) from tab where id = 2; +select positionCaseInsensitive(haystack, pattern) from tab where id = 2; +select positionCaseInsensitiveUTF8(haystack, pattern) from tab where id = 2; + +drop table if exists tab; From 4bf1443daecea075ca31de92285b65d0a59b66f5 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 30 Jun 2022 01:00:08 +0300 Subject: [PATCH 408/525] Update download.sh --- docker/test/performance-comparison/download.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/docker/test/performance-comparison/download.sh b/docker/test/performance-comparison/download.sh index a125b1816e5..da866aabd9a 100755 --- a/docker/test/performance-comparison/download.sh +++ b/docker/test/performance-comparison/download.sh @@ -73,15 +73,8 @@ function download ) & wait - pwd - ls - ls db0 - ls db0/metadata - cd db0 && echo "ATTACH DATABASE default ENGINE=Ordinary" > metadata/default.sql - cd db0 && echo "ATTACH DATABASE datasets ENGINE=Ordinary" > metadata/datasets.sql - pwd - ls - ls db0 + echo "ATTACH DATABASE default ENGINE=Ordinary" > db0/metadata/default.sql + echo "ATTACH DATABASE datasets ENGINE=Ordinary" > db0/metadata/datasets.sql ls db0/metadata } From 8726c7df262975184f06aee43332a7b80fd95265 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 01:21:49 +0200 Subject: [PATCH 409/525] Strangest fix for HDFS test --- .../ObjectStorages/HDFS/registerDiskHDFS.cpp | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp b/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp index 106ecee4702..2c3a7454d4b 100644 --- a/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp +++ b/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include namespace DB @@ -37,11 +38,12 @@ void registerDiskHDFS(DiskFactory & factory) /// FIXME Cache currently unsupported :( ObjectStoragePtr hdfs_storage = std::make_unique(nullptr, uri, std::move(settings), config); - auto metadata_disk = prepareForLocalMetadata(name, config, config_prefix, context_).second; + auto [metadata_path, metadata_disk] = prepareForLocalMetadata(name, config, config_prefix, context_); + auto metadata_storage = std::make_shared(metadata_disk, uri); uint64_t copy_thread_pool_size = config.getUInt(config_prefix + ".thread_pool_size", 16); - return std::make_shared( + std::shared_ptr disk_result = std::make_shared( name, uri, "DiskHDFS", @@ -50,6 +52,22 @@ void registerDiskHDFS(DiskFactory & factory) DiskType::HDFS, /* send_metadata = */ false, copy_thread_pool_size); + +#ifdef NDEBUG + bool use_cache = true; +#else + /// Current S3 cache implementation lead to allocations in destructor of + /// read buffer. + bool use_cache = false; +#endif + + if (config.getBool(config_prefix + ".cache_enabled", use_cache)) + { + String cache_path = config.getString(config_prefix + ".cache_path", context_->getPath() + "disks/" + name + "/cache/"); + disk_result = wrapWithCache(disk_result, "hdfs-cache", cache_path, metadata_path); + } + + return std::make_shared(disk_result); }; factory.registerDiskType("hdfs", creator); From d435532c68afad97e1527864a678a12b15b85a23 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Wed, 29 Jun 2022 23:24:20 +0000 Subject: [PATCH 410/525] Adapt range search algorithm to high cardinality case + range search done in steps of some number of rows. Controled by new setting `distinct_in_order_range_search_step`. By default 0, i.e. whole chunk + before start binary search, linear probing is done on each step (32 rows currently) --- src/Core/Settings.h | 3 +- src/Interpreters/InterpreterSelectQuery.cpp | 8 ++- .../InterpreterSelectWithUnionQuery.cpp | 8 ++- src/Processors/QueryPlan/DistinctStep.cpp | 6 +- src/Processors/QueryPlan/DistinctStep.h | 4 +- .../DistinctSortedChunkTransform.cpp | 65 +++++++++++++++---- .../Transforms/DistinctSortedChunkTransform.h | 4 +- tests/performance/distinct_in_order.xml | 38 ++++++++--- 8 files changed, 105 insertions(+), 31 deletions(-) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index a4a19c280d3..d8080fc427d 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -606,7 +606,8 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Bool, throw_if_no_data_to_insert, true, "Enables or disables empty INSERTs, enabled by default", 0) \ M(Bool, compatibility_ignore_auto_increment_in_create_table, false, "Ignore AUTO_INCREMENT keyword in column declaration if true, otherwise return error. It simplifies migration from MySQL", 0) \ M(Bool, multiple_joins_try_to_keep_original_names, false, "Do not add aliases to top level expression list on multiple joins rewrite", 0) \ - M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization if some columns in DISTINCT form a prefix of sorting. For example, prefix of sorting key in merge tree or ORDER BY statement", 1) \ + M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization if some columns in DISTINCT form a prefix of sorting. For example, prefix of sorting key in merge tree or ORDER BY statement", 0) \ + M(UInt64, distinct_in_order_range_search_step, 0, "Setting for DISTINCT in order optimization. TBD", 0) \ // End of COMMON_SETTINGS // Please add settings related to formats into the FORMAT_FACTORY_SETTINGS and move obsolete settings to OBSOLETE_SETTINGS. diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index a2902b235c8..c7149cd30dc 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -2573,7 +2573,13 @@ void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); auto distinct_step = std::make_unique( - query_plan.getCurrentDataStream(), limits, limit_for_distinct, columns, pre_distinct, settings.optimize_distinct_in_order); + query_plan.getCurrentDataStream(), + limits, + limit_for_distinct, + columns, + pre_distinct, + settings.optimize_distinct_in_order, + settings.distinct_in_order_range_search_step); if (pre_distinct) distinct_step->setStepDescription("Preliminary DISTINCT"); diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index c9ba5bcd653..2929d3cc893 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -319,7 +319,13 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); auto distinct_step = std::make_unique( - query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false, settings.optimize_distinct_in_order); + query_plan.getCurrentDataStream(), + limits, + 0, + result_header.getNames(), + false, + settings.optimize_distinct_in_order, + settings.distinct_in_order_range_search_step); query_plan.addStep(std::move(distinct_step)); } diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index f4baa175ab6..c182d336b35 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -59,7 +59,8 @@ DistinctStep::DistinctStep( UInt64 limit_hint_, const Names & columns_, bool pre_distinct_, - bool optimize_distinct_in_order_) + bool optimize_distinct_in_order_, + UInt64 distinct_in_order_range_search_step_) : ITransformingStep( input_stream_, input_stream_.header, @@ -67,6 +68,7 @@ DistinctStep::DistinctStep( , set_size_limits(set_size_limits_) , limit_hint(limit_hint_) , columns(columns_) + , distinct_in_order_range_search_step(distinct_in_order_range_search_step_) , pre_distinct(pre_distinct_) , optimize_distinct_in_order(optimize_distinct_in_order_) { @@ -105,7 +107,7 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil return nullptr; return std::make_shared( - header, set_size_limits, limit_hint, distinct_sort_desc, columns); + header, set_size_limits, limit_hint, distinct_sort_desc, columns, distinct_in_order_range_search_step); }); return; } diff --git a/src/Processors/QueryPlan/DistinctStep.h b/src/Processors/QueryPlan/DistinctStep.h index dc734a58704..1d678ac3144 100644 --- a/src/Processors/QueryPlan/DistinctStep.h +++ b/src/Processors/QueryPlan/DistinctStep.h @@ -15,7 +15,8 @@ public: UInt64 limit_hint_, const Names & columns_, bool pre_distinct_, /// If is enabled, execute distinct for separate streams. Otherwise, merge streams. - bool optimize_distinct_in_order_); + bool optimize_distinct_in_order_, + UInt64 distinct_in_order_range_search_step); String getName() const override { return "Distinct"; } @@ -30,6 +31,7 @@ private: SizeLimits set_size_limits; UInt64 limit_hint; Names columns; + UInt64 distinct_in_order_range_search_step = 0; bool pre_distinct; bool optimize_distinct_in_order; }; diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index 70548aa4396..89fa675dbc7 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -13,11 +13,13 @@ DistinctSortedChunkTransform::DistinctSortedChunkTransform( const SizeLimits & output_size_limits_, UInt64 limit_hint_, const SortDescription & sorted_columns_descr_, - const Names & source_columns) + const Names & source_columns, + size_t range_search_step_) : ISimpleTransform(header_, header_, true) , limit_hint(limit_hint_) , output_size_limits(output_size_limits_) , sorted_columns_descr(sorted_columns_descr_) + , range_search_step(range_search_step_) { /// calculate sorted columns positions sorted_columns_pos.reserve(sorted_columns_descr.size()); @@ -124,20 +126,55 @@ bool DistinctSortedChunkTransform::isCurrentKey(const size_t row_pos) const size_t DistinctSortedChunkTransform::getRangeEnd(size_t range_begin, size_t range_end) const { - size_t low = range_begin; - size_t high = range_end - 1; - while (low <= high) - { - size_t mid = low + (high - low) / 2; - if (isCurrentKey(mid)) - low = mid + 1; - else - { - high = mid - 1; - range_end = mid; - } + assert(range_begin < range_end); + + // probe latest row + if (isCurrentKey(range_end-1)) { + return range_end; } - return range_end; + + auto find_range_end = [this](size_t begin, size_t end) -> size_t + { + const size_t linear_probe_threadhold = 32; + size_t linear_probe_end = begin + linear_probe_threadhold; + if (linear_probe_end > end) + linear_probe_end = end; + + for(size_t pos=begin; pos < linear_probe_end; ++pos) + { + if (!isCurrentKey(pos)) + return pos; + } + + size_t low = linear_probe_end; + size_t high = end - 1; + while (low <= high) + { + size_t mid = low + (high - low) / 2; + if (isCurrentKey(mid)) + low = mid + 1; + else + { + high = mid - 1; + end = mid; + } + } + return end; + }; + + const size_t step = range_search_step; + if (!step) + return find_range_end(range_begin, range_end); + + size_t begin = range_begin; + while (begin + step <= range_end) + { + const size_t pos = find_range_end(begin, begin + step); + if (pos < begin + step) + return pos; + begin += step; + } + return find_range_end(begin, range_end); } std::pair DistinctSortedChunkTransform::continueWithPrevRange(const size_t chunk_rows, IColumn::Filter & filter) diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.h b/src/Processors/Transforms/DistinctSortedChunkTransform.h index 2e21c36f7dc..983b976c49f 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.h +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.h @@ -32,7 +32,8 @@ public: const SizeLimits & output_size_limits_, UInt64 limit_hint_, const SortDescription & sorted_columns_descr_, - const Names & source_columns_); + const Names & source_columns_, + size_t range_search_step); String getName() const override { return "DistinctSortedChunkTransform"; } @@ -67,6 +68,7 @@ private: ColumnRawPtrs other_columns; // used during processing MutableColumns current_key; + const size_t range_search_step = 0; }; } diff --git a/tests/performance/distinct_in_order.xml b/tests/performance/distinct_in_order.xml index 742fcefc0df..ea76fedcc34 100644 --- a/tests/performance/distinct_in_order.xml +++ b/tests/performance/distinct_in_order.xml @@ -1,15 +1,33 @@ - CREATE TABLE distinct_cardinality (high UInt64, middle UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, middle, low) - INSERT INTO distinct_cardinality SELECT number, number % 1000, number % 10 from numbers(1000000) + + DROP TABLE IF EXISTS distinct_cardinality_high + CREATE TABLE distinct_cardinality_high (high UInt64, medium UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, medium, low) + INSERT INTO distinct_cardinality_high SELECT number % 10000, number % 1000, number % 100 from numbers(1000000) - select distinct high from distinct_cardinality - select distinct high, low from distinct_cardinality - select distinct high, middle from distinct_cardinality - select distinct high, middle, low from distinct_cardinality + select distinct high from distinct_cardinality_high + select distinct high, low from distinct_cardinality_high + select distinct high, medium from distinct_cardinality_high + select distinct high, medium, low from distinct_cardinality_high - select distinct high, middle from distinct_cardinality order by middle - select distinct high, low from distinct_cardinality order by low - select distinct high, middle, low from distinct_cardinality order by high + select distinct high, medium from distinct_cardinality_high order by medium + select distinct high, low from distinct_cardinality_high order by low + select distinct high, medium, low from distinct_cardinality_high order by high - DROP TABLE IF EXISTS distinct_cardinality + DROP TABLE IF EXISTS distinct_cardinality_high + + + DROP TABLE IF EXISTS distinct_cardinality_low + CREATE TABLE distinct_cardinality_low (low UInt64, medium UInt64, high UInt64) ENGINE MergeTree() ORDER BY (low, medium, high) + INSERT INTO distinct_cardinality_low SELECT number % 100, number % 1000, number % 10000 from numbers(1000000) + + select distinct low from distinct_cardinality_low + select distinct low, medium from distinct_cardinality_low + select distinct low, high from distinct_cardinality_low + select distinct low, medium, high from distinct_cardinality_low + + select distinct low, medium from distinct_cardinality_low order by medium + select distinct low, high from distinct_cardinality_low order by high + select distinct low, medium, high from distinct_cardinality_low order by low + + DROP TABLE IF EXISTS distinct_cardinality_low From 572e5402173cee7f45afe9a0b5c38e0ac825acee Mon Sep 17 00:00:00 2001 From: GruffGemini <43479425+GruffGemini@users.noreply.github.com> Date: Thu, 30 Jun 2022 09:29:18 +0300 Subject: [PATCH 411/525] docs (en, group-by.md): fixed broken links --- docs/en/sql-reference/statements/select/group-by.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/sql-reference/statements/select/group-by.md b/docs/en/sql-reference/statements/select/group-by.md index e02db6d4f6b..1d6edc5fa3d 100644 --- a/docs/en/sql-reference/statements/select/group-by.md +++ b/docs/en/sql-reference/statements/select/group-by.md @@ -312,11 +312,11 @@ The aggregation can be performed more effectively, if a table is sorted by some ### GROUP BY in External Memory You can enable dumping temporary data to the disk to restrict memory usage during `GROUP BY`. -The [max_bytes_before_external_group_by](../../../operations/settings/settings.md#settings-max_bytes_before_external_group_by) setting determines the threshold RAM consumption for dumping `GROUP BY` temporary data to the file system. If set to 0 (the default), it is disabled. +The [max_bytes_before_external_group_by](../../../operations/settings/query-complexity.md#settings-max_bytes_before_external_group_by) setting determines the threshold RAM consumption for dumping `GROUP BY` temporary data to the file system. If set to 0 (the default), it is disabled. When using `max_bytes_before_external_group_by`, we recommend that you set `max_memory_usage` about twice as high. This is necessary because there are two stages to aggregation: reading the data and forming intermediate data (1) and merging the intermediate data (2). Dumping data to the file system can only occur during stage 1. If the temporary data wasn’t dumped, then stage 2 might require up to the same amount of memory as in stage 1. -For example, if [max_memory_usage](../../../operations/settings/settings.md#settings_max_memory_usage) was set to 10000000000 and you want to use external aggregation, it makes sense to set `max_bytes_before_external_group_by` to 10000000000, and `max_memory_usage` to 20000000000. When external aggregation is triggered (if there was at least one dump of temporary data), maximum consumption of RAM is only slightly more than `max_bytes_before_external_group_by`. +For example, if [max_memory_usage](../../../operations/settings/query-complexity.md#settings_max_memory_usage) was set to 10000000000 and you want to use external aggregation, it makes sense to set `max_bytes_before_external_group_by` to 10000000000, and `max_memory_usage` to 20000000000. When external aggregation is triggered (if there was at least one dump of temporary data), maximum consumption of RAM is only slightly more than `max_bytes_before_external_group_by`. With distributed query processing, external aggregation is performed on remote servers. In order for the requester server to use only a small amount of RAM, set `distributed_aggregation_memory_efficient` to 1. From c64cfbcf4fec90c3acbb3e1f0ec27ee3df04130e Mon Sep 17 00:00:00 2001 From: GruffGemini <43479425+GruffGemini@users.noreply.github.com> Date: Thu, 30 Jun 2022 09:32:42 +0300 Subject: [PATCH 412/525] Update group-by.md --- docs/zh/sql-reference/statements/select/group-by.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/sql-reference/statements/select/group-by.md b/docs/zh/sql-reference/statements/select/group-by.md index bebe4b164bf..33fa27b8dd9 100644 --- a/docs/zh/sql-reference/statements/select/group-by.md +++ b/docs/zh/sql-reference/statements/select/group-by.md @@ -116,11 +116,11 @@ GROUP BY domain ### 在外部存储器中分组 {#select-group-by-in-external-memory} 您可以启用将临时数据转储到磁盘以限制内存使用期间 `GROUP BY`. -该 [max_bytes_before_external_group_by](../../../operations/settings/settings.md#settings-max_bytes_before_external_group_by) 设置确定倾销的阈值RAM消耗 `GROUP BY` 临时数据到文件系统。 如果设置为0(默认值),它将被禁用。 +该 [max_bytes_before_external_group_by](../../../operations/settings/query-complexity.md#settings-max_bytes_before_external_group_by) 设置确定倾销的阈值RAM消耗 `GROUP BY` 临时数据到文件系统。 如果设置为0(默认值),它将被禁用。 使用时 `max_bytes_before_external_group_by`,我们建议您设置 `max_memory_usage` 大约两倍高。 这是必要的,因为聚合有两个阶段:读取数据和形成中间数据(1)和合并中间数据(2)。 将数据转储到文件系统只能在阶段1中发生。 如果未转储临时数据,则阶段2可能需要与阶段1相同的内存量。 -例如,如果 [max_memory_usage](../../../operations/settings/settings.md#settings_max_memory_usage) 设置为10000000000,你想使用外部聚合,这是有意义的设置 `max_bytes_before_external_group_by` 到10000000000,和 `max_memory_usage` 到20000000000。 当触发外部聚合(如果至少有一个临时数据转储)时,RAM的最大消耗仅略高于 `max_bytes_before_external_group_by`. +例如,如果 [max_memory_usage](../../../operations/settings/query-complexity.md#settings_max_memory_usage) 设置为10000000000,你想使用外部聚合,这是有意义的设置 `max_bytes_before_external_group_by` 到10000000000,和 `max_memory_usage` 到20000000000。 当触发外部聚合(如果至少有一个临时数据转储)时,RAM的最大消耗仅略高于 `max_bytes_before_external_group_by`. 通过分布式查询处理,在远程服务器上执行外部聚合。 为了使请求者服务器只使用少量的RAM,设置 `distributed_aggregation_memory_efficient` 到1。 From 47ac47350bbd59766fa1cb2c67ebae13dfb2140c Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 22 Jun 2022 22:30:50 +0200 Subject: [PATCH 413/525] Store projections in backups. --- .../MergeTree/DataPartStorageOnDisk.cpp | 36 +++++++++---- .../MergeTree/DataPartStorageOnDisk.h | 1 + src/Storages/MergeTree/IDataPartStorage.h | 1 + src/Storages/MergeTree/MergeTreeData.cpp | 47 ++++++++++++----- .../test_backup_restore_new/test.py | 52 +++++++++++++++++++ .../test_backup_restore_on_cluster/test.py | 43 +++++++++++++++ 6 files changed, 156 insertions(+), 24 deletions(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 083cbc90cb1..68a2a0cbd15 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -615,36 +615,50 @@ void DataPartStorageOnDisk::backup( TemporaryFilesOnDisks & temp_dirs, const MergeTreeDataPartChecksums & checksums, const NameSet & files_without_checksums, + const String & path_in_backup, BackupEntries & backup_entries) const { - auto disk = volume->getDisk(); + fs::path part_path_on_disk = fs::path{root_path} / part_dir; + fs::path part_path_in_backup = fs::path{path_in_backup} / part_dir; + auto disk = volume->getDisk(); auto temp_dir_it = temp_dirs.find(disk); if (temp_dir_it == temp_dirs.end()) - temp_dir_it = temp_dirs.emplace(disk, std::make_shared(disk, "tmp/backup_")).first; + temp_dir_it = temp_dirs.emplace(disk, std::make_shared(disk, "tmp/backup/")).first; auto temp_dir_owner = temp_dir_it->second; fs::path temp_dir = temp_dir_owner->getPath(); - - fs::path temp_part_dir = temp_dir / part_dir; + fs::path temp_part_dir = temp_dir / part_path_in_backup.relative_path(); disk->createDirectories(temp_part_dir); + /// For example, + /// part_path_in_backup = /data/test/table/0_1_1_0 + /// part_path_on_disk = store/f57/f5728353-44bb-4575-85e8-28deb893657a/0_1_1_0 + /// tmp_part_dir = tmp/backup/1aaaaaa/data/test/table/0_1_1_0 + /// Or, for projections: + /// part_path_in_backup = /data/test/table/0_1_1_0/prjmax.proj + /// part_path_on_disk = store/f57/f5728353-44bb-4575-85e8-28deb893657a/0_1_1_0/prjmax.proj + /// tmp_part_dir = tmp/backup/1aaaaaa/data/test/table/0_1_1_0/prjmax.proj + for (const auto & [filepath, checksum] : checksums.files) { - String relative_filepath = fs::path(part_dir) / filepath; - String full_filepath = fs::path(root_path) / part_dir / filepath; + if (filepath.ends_with(".proj")) + continue; /// Skip *.proj files - they're actually directories and will be handled. + String filepath_on_disk = part_path_on_disk / filepath; + String filepath_in_backup = part_path_in_backup / filepath; String hardlink_filepath = temp_part_dir / filepath; - disk->createHardLink(full_filepath, hardlink_filepath); + + disk->createHardLink(filepath_on_disk, hardlink_filepath); UInt128 file_hash{checksum.file_hash.first, checksum.file_hash.second}; backup_entries.emplace_back( - relative_filepath, + filepath_in_backup, std::make_unique(disk, hardlink_filepath, checksum.file_size, file_hash, temp_dir_owner)); } for (const auto & filepath : files_without_checksums) { - String relative_filepath = fs::path(part_dir) / filepath; - String full_filepath = fs::path(root_path) / part_dir / filepath; - backup_entries.emplace_back(relative_filepath, std::make_unique(disk, full_filepath)); + String filepath_on_disk = part_path_on_disk / filepath; + String filepath_in_backup = part_path_in_backup / filepath; + backup_entries.emplace_back(filepath_in_backup, std::make_unique(disk, filepath_on_disk)); } } diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.h b/src/Storages/MergeTree/DataPartStorageOnDisk.h index d6fcb2f1442..bb1a8879d63 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.h +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.h @@ -88,6 +88,7 @@ public: TemporaryFilesOnDisks & temp_dirs, const MergeTreeDataPartChecksums & checksums, const NameSet & files_without_checksums, + const String & path_in_backup, BackupEntries & backup_entries) const override; DataPartStoragePtr freeze( diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index 0e165e74ed0..72810680812 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -173,6 +173,7 @@ public: TemporaryFilesOnDisks & temp_dirs, const MergeTreeDataPartChecksums & checksums, const NameSet & files_without_checksums, + const String & path_in_backup, BackupEntries & backup_entries) const = 0; /// Creates hardlinks into 'to/dir_path' for every file in data part. diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 2c4dcfa05ee..02d4d9ebe8b 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -3993,14 +3993,23 @@ BackupEntries MergeTreeData::backupParts(const ContextPtr & local_context, const BackupEntries backup_entries; std::map> temp_dirs; - fs::path data_path_in_backup_fs = data_path_in_backup; for (const auto & part : data_parts) - part->data_part_storage->backup(temp_dirs, part->checksums, part->getFileNamesWithoutChecksums(), backup_entries); + { + part->data_part_storage->backup( + temp_dirs, part->checksums, part->getFileNamesWithoutChecksums(), data_path_in_backup, backup_entries); - /// TODO: try to write better code later. - for (auto & entry : backup_entries) - entry.first = data_path_in_backup_fs / entry.first; + auto projection_parts = part->getProjectionParts(); + for (const auto & [projection_name, projection_part] : projection_parts) + { + projection_part->data_part_storage->backup( + temp_dirs, + projection_part->checksums, + projection_part->getFileNamesWithoutChecksums(), + fs::path{data_path_in_backup} / part->name, + backup_entries); + } + } return backup_entries; } @@ -4116,27 +4125,39 @@ void MergeTreeData::restorePartFromBackup(std::shared_ptr r auto disk = reservation->getDisk(); String part_name = part_info.getPartName(); - auto temp_part_dir_owner = std::make_shared(disk, relative_data_path + "restoring_" + part_name + "_"); - String temp_part_dir = temp_part_dir_owner->getPath(); + auto temp_part_dir_owner = std::make_shared(disk, fs::path{relative_data_path} / ("restoring_" + part_name + "_")); + fs::path temp_part_dir = temp_part_dir_owner->getPath(); disk->createDirectories(temp_part_dir); + std::unordered_set subdirs; - assert(temp_part_dir.starts_with(relative_data_path)); - String relative_temp_part_dir = temp_part_dir.substr(relative_data_path.size()); + /// temp_part_name = "restoring__", for example "restoring_0_1_1_0_1baaaaa" + String temp_part_name = temp_part_dir.filename(); for (const String & filename : filenames) { + /// Needs to create subdirectories before copying the files. Subdirectories are used to represent projections. + auto separator_pos = filename.rfind('/'); + if (separator_pos != String::npos) + { + String subdir = filename.substr(0, separator_pos); + if (subdirs.emplace(subdir).second) + disk->createDirectories(temp_part_dir / subdir); + } + + /// TODO Transactions: Decide what to do with version metadata (if any). Let's just skip it for now. + if (filename.ends_with(IMergeTreeDataPart::TXN_VERSION_METADATA_FILE_NAME)) + continue; + auto backup_entry = backup->readFile(part_path_in_backup_fs / filename); auto read_buffer = backup_entry->getReadBuffer(); - auto write_buffer = disk->writeFile(fs::path(temp_part_dir) / filename); + auto write_buffer = disk->writeFile(temp_part_dir / filename); copyData(*read_buffer, *write_buffer); reservation->update(reservation->getSize() - backup_entry->getSize()); } auto single_disk_volume = std::make_shared(disk->getName(), disk, 0); - auto data_part_storage = std::make_shared(single_disk_volume, relative_data_path, relative_temp_part_dir); + auto data_part_storage = std::make_shared(single_disk_volume, relative_data_path, temp_part_name); auto part = createPart(part_name, part_info, data_part_storage); - /// TODO Transactions: Decide what to do with version metadata (if any). Let's just remove it for now. - disk->removeFileIfExists(fs::path(temp_part_dir) / IMergeTreeDataPart::TXN_VERSION_METADATA_FILE_NAME); part->version.setCreationTID(Tx::PrehistoricTID, nullptr); part->loadColumnsChecksumsIndexes(false, true); diff --git a/tests/integration/test_backup_restore_new/test.py b/tests/integration/test_backup_restore_new/test.py index 3996a31e7c9..35545e95537 100644 --- a/tests/integration/test_backup_restore_new/test.py +++ b/tests/integration/test_backup_restore_new/test.py @@ -711,3 +711,55 @@ def test_system_users_async(): instance.query("SHOW CREATE USER u1") == "CREATE USER u1 IDENTIFIED WITH sha256_password SETTINGS custom_c = 3\n" ) + + +def test_projection(): + create_and_fill_table(n=3) + + instance.query("ALTER TABLE test.table ADD PROJECTION prjmax (SELECT MAX(x))") + instance.query(f"INSERT INTO test.table VALUES (100, 'a'), (101, 'b')") + + assert ( + instance.query( + "SELECT count() FROM system.projection_parts WHERE database='test' AND table='table' AND name='prjmax'" + ) + == "2\n" + ) + + backup_name = new_backup_name() + instance.query(f"BACKUP TABLE test.table TO {backup_name}") + + assert os.path.exists( + os.path.join( + get_path_to_backup(backup_name), "data/test/table/1_5_5_0/data.bin" + ) + ) + + assert os.path.exists( + os.path.join( + get_path_to_backup(backup_name), + "data/test/table/1_5_5_0/prjmax.proj/data.bin", + ) + ) + + instance.query("DROP TABLE test.table") + + assert ( + instance.query( + "SELECT count() FROM system.projection_parts WHERE database='test' AND table='table' AND name='prjmax'" + ) + == "0\n" + ) + + instance.query(f"RESTORE TABLE test.table FROM {backup_name}") + + assert instance.query("SELECT * FROM test.table ORDER BY x") == TSV( + [[0, "0"], [1, "1"], [2, "2"], [100, "a"], [101, "b"]] + ) + + assert ( + instance.query( + "SELECT count() FROM system.projection_parts WHERE database='test' AND table='table' AND name='prjmax'" + ) + == "2\n" + ) diff --git a/tests/integration/test_backup_restore_on_cluster/test.py b/tests/integration/test_backup_restore_on_cluster/test.py index 6264959fbce..63198f40af9 100644 --- a/tests/integration/test_backup_restore_on_cluster/test.py +++ b/tests/integration/test_backup_restore_on_cluster/test.py @@ -514,3 +514,46 @@ def test_system_users(): node1.query("SHOW CREATE USER u1") == "CREATE USER u1 SETTINGS custom_a = 123\n" ) assert node1.query("SHOW GRANTS FOR u1") == "GRANT SELECT ON default.tbl TO u1\n" + + +def test_projection(): + node1.query( + "CREATE TABLE tbl ON CLUSTER 'cluster' (x UInt32, y String) ENGINE=ReplicatedMergeTree('/clickhouse/tables/tbl/', '{replica}') " + "ORDER BY y PARTITION BY x%10" + ) + node1.query(f"INSERT INTO tbl SELECT number, toString(number) FROM numbers(3)") + + node1.query("ALTER TABLE tbl ADD PROJECTION prjmax (SELECT MAX(x))") + node1.query(f"INSERT INTO tbl VALUES (100, 'a'), (101, 'b')") + + assert ( + node1.query( + "SELECT count() FROM system.projection_parts WHERE database='default' AND table='tbl' AND name='prjmax'" + ) + == "2\n" + ) + + backup_name = new_backup_name() + node1.query(f"BACKUP TABLE tbl ON CLUSTER 'cluster' TO {backup_name}") + + node1.query(f"DROP TABLE tbl ON CLUSTER 'cluster' NO DELAY") + + assert ( + node1.query( + "SELECT count() FROM system.projection_parts WHERE database='default' AND table='tbl' AND name='prjmax'" + ) + == "0\n" + ) + + node1.query(f"RESTORE TABLE tbl FROM {backup_name}") + + assert node1.query("SELECT * FROM tbl ORDER BY x") == TSV( + [[0, "0"], [1, "1"], [2, "2"], [100, "a"], [101, "b"]] + ) + + assert ( + node1.query( + "SELECT count() FROM system.projection_parts WHERE database='default' AND table='tbl' AND name='prjmax'" + ) + == "2\n" + ) From 64b51a3772f3c03043f9530dd7d434075b045fb8 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 23 Jun 2022 00:56:41 +0200 Subject: [PATCH 414/525] Improve gathering metadata for backup. --- src/Backups/BackupEntriesCollector.cpp | 537 ++++++++++-------- src/Backups/BackupEntriesCollector.h | 56 +- src/Backups/RestorerFromBackup.cpp | 7 +- src/Backups/RestorerFromBackup.h | 1 + src/Databases/DatabaseMemory.cpp | 48 ++ src/Databases/DatabaseMemory.h | 2 + src/Databases/DatabaseReplicated.cpp | 28 +- src/Databases/DatabaseReplicated.h | 2 +- src/Databases/DatabasesCommon.cpp | 45 +- src/Databases/DatabasesCommon.h | 5 +- src/Databases/IDatabase.cpp | 18 +- src/Databases/IDatabase.h | 14 +- src/Storages/IStorage.cpp | 29 +- src/Storages/IStorage.h | 6 +- src/Storages/StorageReplicatedMergeTree.cpp | 76 ++- src/Storages/StorageReplicatedMergeTree.h | 4 +- .../test_backup_restore_new/test.py | 28 +- 17 files changed, 528 insertions(+), 378 deletions(-) diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 322bc00ee3c..9ee57cb4fd5 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -27,15 +27,16 @@ namespace ErrorCodes extern const int LOGICAL_ERROR; } - -bool BackupEntriesCollector::TableKey::operator ==(const TableKey & right) const +namespace { - return (name == right.name) && (is_temporary == right.is_temporary); -} + String tableNameWithTypeToString(const String & database_name, const String & table_name, bool first_char_uppercase) + { + if (database_name == DatabaseCatalog::TEMPORARY_DATABASE) + return fmt::format("{}emporary table {}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(table_name)); + else + return fmt::format("{}able {}.{}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(database_name), backQuoteIfNeed(table_name)); + } -bool BackupEntriesCollector::TableKey::operator <(const TableKey & right) const -{ - return (name < right.name) || ((name == right.name) && (is_temporary < right.is_temporary)); } std::string_view BackupEntriesCollector::toString(Stage stage) @@ -86,7 +87,7 @@ BackupEntries BackupEntriesCollector::getBackupEntries() /// Find databases and tables which we're going to put to the backup. setStage(Stage::kFindingTables); - collectDatabasesAndTablesInfo(); + gatherMetadataAndCheckConsistency(); /// Make backup entries for the definitions of the found databases. makeBackupEntriesForDatabasesDefs(); @@ -100,7 +101,7 @@ BackupEntries BackupEntriesCollector::getBackupEntries() /// Run all the tasks added with addPostCollectingTask(). setStage(Stage::kRunningPostTasks); - runPostCollectingTasks(); + runPostTasks(); /// No more backup entries or tasks are allowed after this point. setStage(Stage::kWritingBackup); @@ -156,56 +157,30 @@ void BackupEntriesCollector::calculateRootPathInBackup() } /// Finds databases and tables which we will put to the backup. -void BackupEntriesCollector::collectDatabasesAndTablesInfo() +void BackupEntriesCollector::gatherMetadataAndCheckConsistency() { bool use_timeout = (timeout.count() >= 0); auto start_time = std::chrono::steady_clock::now(); - int pass = 0; - do + int pass = 1; + for (;;) { - database_infos.clear(); - table_infos.clear(); - consistent = true; + consistency = true; /// Collect information about databases and tables specified in the BACKUP query. - for (const auto & element : backup_query_elements) - { - switch (element.type) - { - case ASTBackupQuery::ElementType::TABLE: - { - collectTableInfo({element.database_name, element.table_name}, false, element.partitions, true); - break; - } - - case ASTBackupQuery::ElementType::TEMPORARY_TABLE: - { - collectTableInfo({"", element.table_name}, true, element.partitions, true); - break; - } - - case ASTBackupQuery::ElementType::DATABASE: - { - collectDatabaseInfo(element.database_name, element.except_tables, true); - break; - } - - case ASTBackupQuery::ElementType::ALL: - { - collectAllDatabasesInfo(element.except_databases, element.except_tables); - break; - } - } - } + gatherDatabasesMetadata(); + gatherTablesMetadata(); /// We have to check consistency of collected information to protect from the case when some table or database is /// renamed during this collecting making the collected information invalid. checkConsistency(); + if (consistency) + break; + /// Two passes is absolute minimum (see `previous_table_names` & `previous_database_names`). auto elapsed = std::chrono::steady_clock::now() - start_time; - if (!consistent && (pass >= 2) && use_timeout) + if ((pass >= 2) && use_timeout) { if (elapsed > timeout) throw Exception( @@ -218,224 +193,298 @@ void BackupEntriesCollector::collectDatabasesAndTablesInfo() if (pass >= 2) LOG_WARNING(log, "Couldn't collect tables and databases to make a backup (pass #{}, elapsed {})", pass, to_string(elapsed)); ++pass; - } while (!consistent); + } LOG_INFO(log, "Will backup {} databases and {} tables", database_infos.size(), table_infos.size()); } -void BackupEntriesCollector::collectTableInfo( - const QualifiedTableName & table_name, bool is_temporary_table, const std::optional & partitions, bool throw_if_not_found) +void BackupEntriesCollector::gatherDatabasesMetadata() { - /// Gather information about the table. - DatabasePtr database; - StoragePtr storage; - TableLockHolder table_lock; - ASTPtr create_table_query; + database_infos.clear(); - TableKey table_key{table_name, is_temporary_table}; - - if (throw_if_not_found) + /// Collect information about databases and tables specified in the BACKUP query. + for (const auto & element : backup_query_elements) { - auto resolved_id = is_temporary_table - ? context->resolveStorageID(StorageID{"", table_name.table}, Context::ResolveExternal) - : context->resolveStorageID(StorageID{table_name.database, table_name.table}, Context::ResolveGlobal); - std::tie(database, storage) = DatabaseCatalog::instance().getDatabaseAndTable(resolved_id, context); - table_lock = storage->lockForShare(context->getInitialQueryId(), context->getSettingsRef().lock_acquire_timeout); - create_table_query = storage->getCreateQueryForBackup(*this); + switch (element.type) + { + case ASTBackupQuery::ElementType::TABLE: + { + gatherDatabaseMetadata( + element.database_name, + /* throw_if_database_not_found= */ true, + /* backup_create_database_query= */ false, + element.table_name, + /* throw_if_table_not_found= */ true, + element.partitions, + /* all_tables= */ false, + /* except_table_names= */ {}); + break; + } + + case ASTBackupQuery::ElementType::TEMPORARY_TABLE: + { + gatherDatabaseMetadata( + DatabaseCatalog::TEMPORARY_DATABASE, + /* throw_if_database_not_found= */ true, + /* backup_create_database_query= */ false, + element.table_name, + /* throw_if_table_not_found= */ true, + element.partitions, + /* all_tables= */ false, + /* except_table_names= */ {}); + break; + } + + case ASTBackupQuery::ElementType::DATABASE: + { + gatherDatabaseMetadata( + element.database_name, + /* throw_if_database_not_found= */ true, + /* backup_create_database_query= */ true, + /* table_name= */ {}, + /* throw_if_table_not_found= */ false, + /* partitions= */ {}, + /* all_tables= */ true, + /* except_table_names= */ element.except_tables); + break; + } + + case ASTBackupQuery::ElementType::ALL: + { + for (const auto & [database_name, database] : DatabaseCatalog::instance().getDatabases()) + { + if (!element.except_databases.contains(database_name)) + { + gatherDatabaseMetadata( + database_name, + /* throw_if_database_not_found= */ false, + /* backup_create_database_query= */ true, + /* table_name= */ {}, + /* throw_if_table_not_found= */ false, + /* partitions= */ {}, + /* all_tables= */ true, + /* except_table_names= */ element.except_tables); + if (!consistency) + return; + } + } + break; + } + } + + if (!consistency) + return; } - else - { - auto resolved_id = is_temporary_table - ? context->tryResolveStorageID(StorageID{"", table_name.table}, Context::ResolveExternal) - : context->tryResolveStorageID(StorageID{table_name.database, table_name.table}, Context::ResolveGlobal); - if (!resolved_id.empty()) - std::tie(database, storage) = DatabaseCatalog::instance().tryGetDatabaseAndTable(resolved_id, context); +} +void BackupEntriesCollector::gatherDatabaseMetadata( + const String & database_name, + bool throw_if_database_not_found, + bool backup_create_database_query, + const std::optional & table_name, + bool throw_if_table_not_found, + const std::optional & partitions, + bool all_tables, + const std::set & except_table_names) +{ + auto it = database_infos.find(database_name); + if (it == database_infos.end()) + { + DatabasePtr database; + if (throw_if_database_not_found) + { + database = DatabaseCatalog::instance().getDatabase(database_name); + } + else + { + database = DatabaseCatalog::instance().tryGetDatabase(database_name); + if (!database) + return; + } + + DatabaseInfo new_database_info; + new_database_info.database = database; + it = database_infos.emplace(database_name, new_database_info).first; + } + + DatabaseInfo & database_info = it->second; + + if (backup_create_database_query && !database_info.create_database_query && !DatabaseCatalog::isPredefinedDatabaseName(database_name)) + { + ASTPtr create_database_query; + try + { + create_database_query = database_info.database->getCreateDatabaseQueryForBackup(); + } + catch (...) + { + /// The database has been dropped recently. + consistency = false; + return; + } + + database_info.create_database_query = create_database_query; + const auto & create = create_database_query->as(); + + if (create.getDatabase() != database_name) + { + /// The database has been renamed recently. + consistency = false; + return; + } + } + + if (table_name) + { + auto & table_params = database_info.tables[*table_name]; + if (throw_if_table_not_found) + table_params.throw_if_table_not_found = true; + if (partitions) + { + table_params.partitions.emplace(); + insertAtEnd(*table_params.partitions, *partitions); + } + database_info.except_table_names.emplace(*table_name); + } + + if (all_tables) + { + database_info.all_tables = all_tables; + for (const auto & except_table_name : except_table_names) + if (except_table_name.first == database_name) + database_info.except_table_names.emplace(except_table_name.second); + } +} + +void BackupEntriesCollector::gatherTablesMetadata() +{ + if (!consistency) + return; + + table_infos.clear(); + for (const auto & [database_name, database_info] : database_infos) + { + const auto & database = database_info.database; + bool is_temporary_database = (database_name == DatabaseCatalog::TEMPORARY_DATABASE); + + auto filter_by_table_name = [database_info = &database_info](const String & table_name) + { + /// We skip inner tables of materialized views. + if (table_name.starts_with(".inner_id.")) + return false; + + if (database_info->tables.contains(table_name)) + return true; + + if (database_info->all_tables) + return !database_info->except_table_names.contains(table_name); + + return false; + }; + + auto db_tables = database->getTablesForBackup(filter_by_table_name, context, consistency); + + if (!consistency) + return; + + /// Check that all tables were found. + std::unordered_set found_table_names; + for (const auto & db_table : db_tables) + { + const auto & create_table_query = db_table.first; + const auto & create = create_table_query->as(); + found_table_names.emplace(create.getTable()); + + if ((is_temporary_database && !create.temporary) || (!is_temporary_database && (create.getDatabase() != database_name))) + { + consistency = false; + return; + } + } + + for (const auto & [table_name, table_info] : database_info.tables) + { + if (table_info.throw_if_table_not_found && !found_table_names.contains(table_name)) + throw Exception(ErrorCodes::UNKNOWN_TABLE, "{} not found", tableNameWithTypeToString(database_name, table_name, true)); + } + + for (const auto & db_table : db_tables) + { + const auto & create_table_query = db_table.first; + const auto & create = create_table_query->as(); + String table_name = create.getTable(); + + fs::path data_path_in_backup; + if (is_temporary_database) + { + auto table_name_in_backup = renaming_map.getNewTemporaryTableName(table_name); + data_path_in_backup = root_path_in_backup / "temporary_tables" / "data" / escapeForFileName(table_name_in_backup); + } + else + { + auto table_name_in_backup = renaming_map.getNewTableName({database_name, table_name}); + data_path_in_backup + = root_path_in_backup / "data" / escapeForFileName(table_name_in_backup.database) / escapeForFileName(table_name_in_backup.table); + } + + /// Add information to `table_infos`. + auto & res_table_info = table_infos[QualifiedTableName{database_name, table_name}]; + res_table_info.database = database; + res_table_info.storage = db_table.second; + res_table_info.create_table_query = create_table_query; + res_table_info.data_path_in_backup = data_path_in_backup; + + auto partitions_it = database_info.tables.find(table_name); + if (partitions_it != database_info.tables.end()) + res_table_info.partitions = partitions_it->second.partitions; + } + } +} + +void BackupEntriesCollector::lockTablesForReading() +{ + if (!consistency) + return; + + for (auto & table_info : table_infos | boost::adaptors::map_values) + { + auto storage = table_info.storage; + TableLockHolder table_lock; if (storage) { try { table_lock = storage->lockForShare(context->getInitialQueryId(), context->getSettingsRef().lock_acquire_timeout); - create_table_query = storage->getCreateQueryForBackup(*this); } catch (Exception & e) { if (e.code() != ErrorCodes::TABLE_IS_DROPPED) throw; + consistency = false; + return; } } - - if (!create_table_query) - { - consistent &= !table_infos.contains(table_key); - return; - } - } - - fs::path data_path_in_backup; - if (is_temporary_table) - { - auto table_name_in_backup = renaming_map.getNewTemporaryTableName(table_name.table); - data_path_in_backup = root_path_in_backup / "temporary_tables" / "data" / escapeForFileName(table_name_in_backup); - } - else - { - auto table_name_in_backup = renaming_map.getNewTableName(table_name); - data_path_in_backup - = root_path_in_backup / "data" / escapeForFileName(table_name_in_backup.database) / escapeForFileName(table_name_in_backup.table); - } - - /// Check that information is consistent. - const auto & create = create_table_query->as(); - if ((create.getTable() != table_name.table) || (is_temporary_table != create.temporary) || (create.getDatabase() != table_name.database)) - { - /// Table was renamed recently. - consistent = false; - return; - } - - if (auto it = table_infos.find(table_key); it != table_infos.end()) - { - const auto & table_info = it->second; - if ((table_info.database != database) || (table_info.storage != storage)) - { - /// Table was renamed recently. - consistent = false; - return; - } - } - - /// Add information to `table_infos`. - auto & res_table_info = table_infos[table_key]; - res_table_info.database = database; - res_table_info.storage = storage; - res_table_info.table_lock = table_lock; - res_table_info.create_table_query = create_table_query; - res_table_info.data_path_in_backup = data_path_in_backup; - - if (partitions) - { - if (!res_table_info.partitions) - res_table_info.partitions.emplace(); - insertAtEnd(*res_table_info.partitions, *partitions); - } -} - -void BackupEntriesCollector::collectDatabaseInfo(const String & database_name, const std::set & except_table_names, bool throw_if_not_found) -{ - /// Gather information about the database. - DatabasePtr database; - ASTPtr create_database_query; - - if (throw_if_not_found) - { - database = DatabaseCatalog::instance().getDatabase(database_name); - create_database_query = database->getCreateDatabaseQueryForBackup(); - } - else - { - database = DatabaseCatalog::instance().tryGetDatabase(database_name); - if (!database) - { - consistent &= !database_infos.contains(database_name); - return; - } - - try - { - create_database_query = database->getCreateDatabaseQueryForBackup(); - } - catch (...) - { - /// The database has been dropped recently. - consistent &= !database_infos.contains(database_name); - return; - } - } - - /// Check that information is consistent. - const auto & create = create_database_query->as(); - if (create.getDatabase() != database_name) - { - /// Database was renamed recently. - consistent = false; - return; - } - - if (auto it = database_infos.find(database_name); it != database_infos.end()) - { - const auto & database_info = it->second; - if (database_info.database != database) - { - /// Database was renamed recently. - consistent = false; - return; - } - } - - /// Add information to `database_infos`. - auto & res_database_info = database_infos[database_name]; - res_database_info.database = database; - res_database_info.create_database_query = create_database_query; - - /// Add information about tables too. - for (auto it = database->getTablesIteratorForBackup(*this); it->isValid(); it->next()) - { - if (except_table_names.contains({database_name, it->name()})) - continue; - - collectTableInfo({database_name, it->name()}, /* is_temporary_table= */ false, {}, /* throw_if_not_found= */ false); - if (!consistent) - return; - } -} - -void BackupEntriesCollector::collectAllDatabasesInfo(const std::set & except_database_names, const std::set & except_table_names) -{ - for (const auto & [database_name, database] : DatabaseCatalog::instance().getDatabases()) - { - if (except_database_names.contains(database_name)) - continue; - collectDatabaseInfo(database_name, except_table_names, false); - if (!consistent) - return; } } /// Check for consistency of collected information about databases and tables. void BackupEntriesCollector::checkConsistency() { - if (!consistent) + if (!consistency) return; /// Already inconsistent, no more checks necessary - /// Databases found while we were scanning tables and while we were scanning databases - must be the same. - for (const auto & [key, table_info] : table_infos) - { - auto it = database_infos.find(key.name.database); - if (it != database_infos.end()) - { - const auto & database_info = it->second; - if (database_info.database != table_info.database) - { - consistent = false; - return; - } - } - } - /// We need to scan tables at least twice to be sure that we haven't missed any table which could be renamed /// while we were scanning. std::set database_names; - std::set table_names; + std::set table_names; boost::range::copy(database_infos | boost::adaptors::map_keys, std::inserter(database_names, database_names.end())); boost::range::copy(table_infos | boost::adaptors::map_keys, std::inserter(table_names, table_names.end())); - if (!previous_database_names || !previous_table_names || (*previous_database_names != database_names) - || (*previous_table_names != table_names)) + if ((previous_database_names != database_names) || (previous_table_names != table_names)) { previous_database_names = std::move(database_names); previous_table_names = std::move(table_names); - consistent = false; + consistency = false; } } @@ -444,6 +493,9 @@ void BackupEntriesCollector::makeBackupEntriesForDatabasesDefs() { for (const auto & [database_name, database_info] : database_infos) { + if (!database_info.create_database_query) + continue; /// We don't store CREATE queries for predefined databases (see DatabaseCatalog::isPredefinedDatabaseName()). + LOG_TRACE(log, "Adding definition of database {}", backQuoteIfNeed(database_name)); ASTPtr new_create_query = database_info.create_database_query; @@ -459,22 +511,23 @@ void BackupEntriesCollector::makeBackupEntriesForDatabasesDefs() /// Calls IDatabase::backupTable() for all the tables found to make backup entries for tables. void BackupEntriesCollector::makeBackupEntriesForTablesDefs() { - for (const auto & [key, table_info] : table_infos) + for (const auto & [table_name, table_info] : table_infos) { - LOG_TRACE(log, "Adding definition of {}table {}", (key.is_temporary ? "temporary " : ""), key.name.getFullName()); + LOG_TRACE(log, "Adding definition of {}", tableNameWithTypeToString(table_name.database, table_name.table, false)); + bool is_temporary_database = (table_name.database == DatabaseCatalog::TEMPORARY_DATABASE); ASTPtr new_create_query = table_info.create_table_query; renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, new_create_query); fs::path metadata_path_in_backup; - if (key.is_temporary) + if (is_temporary_database) { - auto new_name = renaming_map.getNewTemporaryTableName(key.name.table); + auto new_name = renaming_map.getNewTemporaryTableName(table_name.table); metadata_path_in_backup = root_path_in_backup / "temporary_tables" / "metadata" / (escapeForFileName(new_name) + ".sql"); } else { - auto new_name = renaming_map.getNewTableName(key.name); + auto new_name = renaming_map.getNewTableName({table_name.database, table_name.table}); metadata_path_in_backup = root_path_in_backup / "metadata" / escapeForFileName(new_name.database) / (escapeForFileName(new_name.table) + ".sql"); } @@ -488,10 +541,18 @@ void BackupEntriesCollector::makeBackupEntriesForTablesData() if (backup_settings.structure_only) return; - for (const auto & [key, table_info] : table_infos) + for (const auto & [table_name, table_info] : table_infos) { - LOG_TRACE(log, "Adding data of {}table {}", (key.is_temporary ? "temporary " : ""), key.name.getFullName()); const auto & storage = table_info.storage; + if (!storage) + { + /// This storage exists on other replica and has not been created on this replica yet. + /// We store metadata only for such tables. + /// TODO: Need special processing if it's a ReplicatedMergeTree. + continue; + } + + LOG_TRACE(log, "Adding data of {}", tableNameWithTypeToString(table_name.database, table_name.table, false)); const auto & data_path_in_backup = table_info.data_path_in_backup; const auto & partitions = table_info.partitions; storage->backupData(*this, data_path_in_backup, partitions); @@ -519,21 +580,21 @@ void BackupEntriesCollector::addBackupEntries(BackupEntries && backup_entries_) insertAtEnd(backup_entries, std::move(backup_entries_)); } -void BackupEntriesCollector::addPostCollectingTask(std::function task) +void BackupEntriesCollector::addPostTask(std::function task) { if (current_stage == Stage::kWritingBackup) throw Exception(ErrorCodes::LOGICAL_ERROR, "Adding post tasks is not allowed"); - post_collecting_tasks.push(std::move(task)); + post_tasks.push(std::move(task)); } /// Runs all the tasks added with addPostCollectingTask(). -void BackupEntriesCollector::runPostCollectingTasks() +void BackupEntriesCollector::runPostTasks() { /// Post collecting tasks can add other post collecting tasks, our code is fine with that. - while (!post_collecting_tasks.empty()) + while (!post_tasks.empty()) { - auto task = std::move(post_collecting_tasks.front()); - post_collecting_tasks.pop(); + auto task = std::move(post_tasks.front()); + post_tasks.pop(); std::move(task)(); } } diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 1466815f3a7..c34c6204abb 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -49,7 +49,7 @@ public: /// Adds a function which must be called after all IStorage::backup() have finished their work on all hosts. /// This function is designed to help making a consistent in some complex cases like /// 1) we need to join (in a backup) the data of replicated tables gathered on different hosts. - void addPostCollectingTask(std::function task); + void addPostTask(std::function task); /// Writing a backup includes a few stages: enum class Stage @@ -79,16 +79,31 @@ public: private: void setStage(Stage new_stage, const String & error_message = {}); + void calculateRootPathInBackup(); - void collectDatabasesAndTablesInfo(); - void collectTableInfo(const QualifiedTableName & table_name, bool is_temporary_table, const std::optional & partitions, bool throw_if_not_found); - void collectDatabaseInfo(const String & database_name, const std::set & except_table_names, bool throw_if_not_found); - void collectAllDatabasesInfo(const std::set & except_database_names, const std::set & except_table_names); + + void gatherMetadataAndCheckConsistency(); + + void gatherDatabasesMetadata(); + + void gatherDatabaseMetadata( + const String & database_name, + bool throw_if_database_not_found, + bool backup_create_database_query, + const std::optional & table_name, + bool throw_if_table_not_found, + const std::optional & partitions, + bool all_tables, + const std::set & except_table_names); + + void gatherTablesMetadata(); + void lockTablesForReading(); void checkConsistency(); + void makeBackupEntriesForDatabasesDefs(); void makeBackupEntriesForTablesDefs(); void makeBackupEntriesForTablesData(); - void runPostCollectingTasks(); + void runPostTasks(); const ASTBackupQuery::Elements backup_query_elements; const BackupSettings backup_settings; @@ -105,6 +120,17 @@ private: { DatabasePtr database; ASTPtr create_database_query; + + struct TableParams + { + bool throw_if_table_not_found = false; + std::optional partitions; + }; + + std::unordered_map tables; + + bool all_tables = false; + std::unordered_set except_table_names; }; struct TableInfo @@ -117,22 +143,14 @@ private: std::optional partitions; }; - struct TableKey - { - QualifiedTableName name; - bool is_temporary = false; - bool operator ==(const TableKey & right) const; - bool operator <(const TableKey & right) const; - }; - std::unordered_map database_infos; - std::map table_infos; - std::optional> previous_database_names; - std::optional> previous_table_names; - bool consistent = false; + std::map table_infos; + std::set previous_database_names; + std::set previous_table_names; + bool consistency = false; BackupEntries backup_entries; - std::queue> post_collecting_tasks; + std::queue> post_tasks; }; } diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 14f5b7f48f0..16ffead3976 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -102,6 +102,7 @@ RestorerFromBackup::RestorerFromBackup( , backup(backup_) , context(context_) , timeout(timeout_) + , create_table_timeout_ms(context->getConfigRef().getUInt64("backups.create_table_timeout", 300000)) , log(&Poco::Logger::get("RestorerFromBackup")) { } @@ -674,7 +675,7 @@ void RestorerFromBackup::createTables() table_key.name.getFullName(), serializeAST(*create_table_query)); - database->createTableRestoredFromBackup(create_table_query, *this); + database->createTableRestoredFromBackup(create_table_query, context, restore_coordination, create_table_timeout_ms); } table_info.created = true; @@ -689,7 +690,9 @@ void RestorerFromBackup::createTables() if (!restore_settings.allow_different_table_def) { - ASTPtr create_table_query = storage->getCreateQueryForBackup(context, nullptr); + ASTPtr create_table_query = database->getCreateTableQuery(resolved_id.table_name, context); + bool consistency = true; + storage->adjustCreateQueryForBackup(create_table_query, consistency); ASTPtr expected_create_query = table_info.create_table_query; if (serializeAST(*create_table_query) != serializeAST(*expected_create_query)) { diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index 65139e0b946..86edf08b484 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -94,6 +94,7 @@ private: BackupPtr backup; ContextMutablePtr context; std::chrono::seconds timeout; + UInt64 create_table_timeout_ms; Poco::Logger * log; Stage current_stage = Stage::kPreparing; diff --git a/src/Databases/DatabaseMemory.cpp b/src/Databases/DatabaseMemory.cpp index 5268252731f..62cee31bbad 100644 --- a/src/Databases/DatabaseMemory.cpp +++ b/src/Databases/DatabaseMemory.cpp @@ -145,4 +145,52 @@ void DatabaseMemory::alterTable(ContextPtr local_context, const StorageID & tabl DatabaseCatalog::instance().updateLoadingDependencies(table_id, std::move(new_dependencies)); } +std::vector> DatabaseMemory::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const +{ + /// We need a special processing for the temporary database. + if (getDatabaseName() != DatabaseCatalog::TEMPORARY_DATABASE) + return DatabaseWithOwnTablesBase::getTablesForBackup(filter, local_context, consistency); + + std::vector> res; + + /// `this->tables` for the temporary database doesn't contain real names of tables. + /// That's why we need to call Context::getExternalTables() and then resolve those names using tryResolveStorageID() below. + auto external_tables = local_context->getExternalTables(); + + for (const auto & [table_name, storage] : external_tables) + { + if (!filter(table_name)) + continue; + + bool ok = false; + + if (auto storage_id = local_context->tryResolveStorageID(StorageID{"", table_name}, Context::ResolveExternal)) + { + /// Here `storage_id.table_name` looks like looks like "_tmp_ab9b15a3-fb43-4670-abec-14a0e9eb70f1" + /// it's not the real name of the table. + if (auto create_table_query = tryGetCreateTableQuery(storage_id.table_name, local_context)) + { + const auto & create = create_table_query->as(); + if (create.getTable() == table_name) + { + storage->adjustCreateQueryForBackup(create_table_query, consistency); + if (consistency) + { + res.emplace_back(create_table_query, storage); + ok = true; + } + } + } + } + + if (!ok) + { + consistency = false; + return {}; + } + } + + return res; +} + } diff --git a/src/Databases/DatabaseMemory.h b/src/Databases/DatabaseMemory.h index eef9f306343..8ec216b165d 100644 --- a/src/Databases/DatabaseMemory.h +++ b/src/Databases/DatabaseMemory.h @@ -50,6 +50,8 @@ public: void alterTable(ContextPtr local_context, const StorageID & table_id, const StorageInMemoryMetadata & metadata) override; + std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const override; + private: const String data_path; using NameToASTCreate = std::unordered_map; diff --git a/src/Databases/DatabaseReplicated.cpp b/src/Databases/DatabaseReplicated.cpp index 5a22eeaf570..6286723aaa3 100644 --- a/src/Databases/DatabaseReplicated.cpp +++ b/src/Databases/DatabaseReplicated.cpp @@ -923,7 +923,11 @@ String DatabaseReplicated::readMetadataFile(const String & table_name) const } -void DatabaseReplicated::createTableRestoredFromBackup(const ASTPtr & create_table_query, const RestorerFromBackup & restorer) +void DatabaseReplicated::createTableRestoredFromBackup( + const ASTPtr & create_table_query, + ContextMutablePtr local_context, + std::shared_ptr restore_coordination, + UInt64 timeout_ms) { /// Because of the replication multiple nodes can try to restore the same tables again and failed with "Table already exists" /// because of some table could be restored already on other node and then replicated to this node. @@ -931,29 +935,25 @@ void DatabaseReplicated::createTableRestoredFromBackup(const ASTPtr & create_tab /// IRestoreCoordination::acquireCreatingTableInReplicatedDatabase() and then for other nodes this function returns false which means /// this table is already being created by some other node. String table_name = create_table_query->as().getTable(); - if (restorer.getRestoreCoordination()->acquireCreatingTableInReplicatedDatabase(getZooKeeperPath(), table_name)) + if (restore_coordination->acquireCreatingTableInReplicatedDatabase(getZooKeeperPath(), table_name)) { - restorer.executeCreateQuery(create_table_query); + DatabaseAtomic::createTableRestoredFromBackup(create_table_query, local_context, restore_coordination, timeout_ms); } /// Wait until the table is actually created no matter if it's created by the current or another node and replicated to the /// current node afterwards. We have to wait because `RestorerFromBackup` is going to restore data of the table then. /// TODO: The following code doesn't look very reliable, probably we need to rewrite it somehow. - auto timeout = restorer.getTimeout(); - bool use_timeout = (timeout.count() >= 0); + auto timeout = std::chrono::milliseconds{timeout_ms}; auto start_time = std::chrono::steady_clock::now(); - while (!isTableExist(table_name, restorer.getContext())) + while (!isTableExist(table_name, local_context)) { waitForReplicaToProcessAllEntries(50); - if (use_timeout) - { - auto elapsed = std::chrono::steady_clock::now() - start_time; - if (elapsed > timeout) - throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, - "Couldn't restore table {}.{} on other node or sync it (elapsed {})", - backQuoteIfNeed(getDatabaseName()), backQuoteIfNeed(table_name), to_string(elapsed)); - } + auto elapsed = std::chrono::steady_clock::now() - start_time; + if (elapsed > timeout) + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, + "Couldn't restore table {}.{} on other node or sync it (elapsed {})", + backQuoteIfNeed(getDatabaseName()), backQuoteIfNeed(table_name), to_string(elapsed)); } } diff --git a/src/Databases/DatabaseReplicated.h b/src/Databases/DatabaseReplicated.h index 3aa2aa378b7..958ee3f133f 100644 --- a/src/Databases/DatabaseReplicated.h +++ b/src/Databases/DatabaseReplicated.h @@ -72,7 +72,7 @@ public: void shutdown() override; - void createTableRestoredFromBackup(const ASTPtr & create_table_query, const RestorerFromBackup & restorer) override; + void createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr local_context, std::shared_ptr restore_coordination, UInt64 timeout_ms) override; friend struct DatabaseReplicatedTask; friend class DatabaseReplicatedDDLWorker; diff --git a/src/Databases/DatabasesCommon.cpp b/src/Databases/DatabasesCommon.cpp index 5dd17789e60..4ab0ed4792e 100644 --- a/src/Databases/DatabasesCommon.cpp +++ b/src/Databases/DatabasesCommon.cpp @@ -322,22 +322,45 @@ StoragePtr DatabaseWithOwnTablesBase::getTableUnlocked(const String & table_name backQuote(database_name), backQuote(table_name)); } -DatabaseTablesIteratorPtr DatabaseWithOwnTablesBase::getTablesIteratorForBackup(const BackupEntriesCollector & backup_entries_collector) const +std::vector> DatabaseWithOwnTablesBase::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const { - /// Backup all the tables in this database. - /// Here we skip inner tables of materialized views. - auto skip_internal_tables = [](const String & table_name) { return !table_name.starts_with(".inner_id."); }; - return getTablesIterator(backup_entries_collector.getContext(), skip_internal_tables); + std::vector> res; + + for (auto it = getTablesIterator(local_context, filter); it->isValid(); it->next()) + { + bool ok = false; + + if (auto create_table_query = tryGetCreateTableQuery(it->name(), local_context)) + { + const auto & create = create_table_query->as(); + if (create.getTable() == it->name()) + { + auto storage = it->table(); + storage->adjustCreateQueryForBackup(create_table_query, consistency); + if (consistency) + { + res.emplace_back(create_table_query, storage); + ok = true; + } + } + } + + if (!ok) + { + consistency = false; + return {}; + } + } + + return res; } -void DatabaseWithOwnTablesBase::checkCreateTableQueryForBackup(const ASTPtr &, const BackupEntriesCollector &) const -{ -} - -void DatabaseWithOwnTablesBase::createTableRestoredFromBackup(const ASTPtr & create_table_query, const RestorerFromBackup & restorer) +void DatabaseWithOwnTablesBase::createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr local_context, std::shared_ptr, UInt64) { /// Creates a table by executing a "CREATE TABLE" query. - restorer.executeCreateQuery(create_table_query); + InterpreterCreateQuery interpreter{create_table_query, local_context}; + interpreter.setInternal(true); + interpreter.execute(); } } diff --git a/src/Databases/DatabasesCommon.h b/src/Databases/DatabasesCommon.h index c960d295529..2b320349e2d 100644 --- a/src/Databases/DatabasesCommon.h +++ b/src/Databases/DatabasesCommon.h @@ -36,9 +36,8 @@ public: DatabaseTablesIteratorPtr getTablesIterator(ContextPtr context, const FilterByNameFunction & filter_by_table_name) const override; - DatabaseTablesIteratorPtr getTablesIteratorForBackup(const BackupEntriesCollector & backup_entries_collector) const override; - void checkCreateTableQueryForBackup(const ASTPtr & create_table_query, const BackupEntriesCollector & backup_entries_collector) const override; - void createTableRestoredFromBackup(const ASTPtr & create_table_query, const RestorerFromBackup & restorer) override; + std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const override; + void createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr local_context, std::shared_ptr restore_coordination, UInt64 timeout_ms) override; void shutdown() override; diff --git a/src/Databases/IDatabase.cpp b/src/Databases/IDatabase.cpp index 3adba0d85c8..e09eb5186ec 100644 --- a/src/Databases/IDatabase.cpp +++ b/src/Databases/IDatabase.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include @@ -26,29 +25,22 @@ ASTPtr IDatabase::getCreateDatabaseQueryForBackup() const { auto query = getCreateDatabaseQuery(); - /// We don't want to see any UUIDs in backup (after RESTORE the table will have another UUID anyway). + /// We don't want to see any UUIDs in backup (after RESTORE the database will have another UUID anyway). auto & create = query->as(); create.uuid = UUIDHelpers::Nil; return query; } -DatabaseTablesIteratorPtr IDatabase::getTablesIteratorForBackup(const BackupEntriesCollector &) const -{ - /// IDatabase doesn't own any tables. - return std::make_unique(Tables{}, getDatabaseName()); -} - -void IDatabase::checkCreateTableQueryForBackup(const ASTPtr & create_table_query, const BackupEntriesCollector &) const +std::vector> IDatabase::getTablesForBackup(const FilterByNameFunction &, const ContextPtr &, bool &) const { /// Cannot restore any table because IDatabase doesn't own any tables. throw Exception(ErrorCodes::CANNOT_BACKUP_TABLE, - "Database engine {} does not support backups, cannot backup table {}.{}", - getEngineName(), backQuoteIfNeed(getDatabaseName()), - backQuoteIfNeed(create_table_query->as().getTable())); + "Database engine {} does not support backups, cannot backup tables in database {}", + getEngineName(), backQuoteIfNeed(getDatabaseName())); } -void IDatabase::createTableRestoredFromBackup(const ASTPtr & create_table_query, const RestorerFromBackup &) +void IDatabase::createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr, std::shared_ptr, UInt64) { /// Cannot restore any table because IDatabase doesn't own any tables. throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, diff --git a/src/Databases/IDatabase.h b/src/Databases/IDatabase.h index 2223d657f7f..c8c9ff9d9a5 100644 --- a/src/Databases/IDatabase.h +++ b/src/Databases/IDatabase.h @@ -30,8 +30,7 @@ class SettingsChanges; using DictionariesWithID = std::vector>; struct ParsedTablesMetadata; struct QualifiedTableName; -class BackupEntriesCollector; -class RestorerFromBackup; +class IRestoreCoordination; namespace ErrorCodes { @@ -333,17 +332,14 @@ public: throw Exception(ErrorCodes::LOGICAL_ERROR, "Database engine {} does not run a replication thread!", getEngineName()); } - /// Returns a slightly changed version of the CREATE DATABASE query which must be written to a backup. + /// Returns a CREATE DATABASE query prepared for writing to a backup. virtual ASTPtr getCreateDatabaseQueryForBackup() const; - /// Returns an iterator that passes through all the tables when an user wants to backup the whole database. - virtual DatabaseTablesIteratorPtr getTablesIteratorForBackup(const BackupEntriesCollector & restorer) const; - - /// Checks a CREATE TABLE query before it will be written to a backup. Called by IStorage::getCreateQueryForBackup(). - virtual void checkCreateTableQueryForBackup(const ASTPtr & create_table_query, const BackupEntriesCollector & backup_entries_collector) const; + /// Returns CREATE TABLE queries and corresponding tables prepared for writing to a backup. + virtual std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & context, bool & consistency) const; /// Creates a table restored from backup. - virtual void createTableRestoredFromBackup(const ASTPtr & create_table_query, const RestorerFromBackup & restorer); + virtual void createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr context, std::shared_ptr restore_coordination, UInt64 timeout_ms); virtual ~IDatabase() = default; diff --git a/src/Storages/IStorage.cpp b/src/Storages/IStorage.cpp index 0fcf48b9afc..5f0fe303f27 100644 --- a/src/Storages/IStorage.cpp +++ b/src/Storages/IStorage.cpp @@ -248,40 +248,21 @@ bool IStorage::isStaticStorage() const return false; } -ASTPtr IStorage::getCreateQueryForBackup(const ContextPtr & context, DatabasePtr * database) const +void IStorage::adjustCreateQueryForBackup(ASTPtr & create_query, bool &) const { - auto table_id = getStorageID(); - auto db = DatabaseCatalog::instance().tryGetDatabase(table_id.getDatabaseName()); - if (!db) - throw Exception(ErrorCodes::TABLE_IS_DROPPED, "Table {}.{} is dropped", table_id.database_name, table_id.table_name); - ASTPtr query = db->tryGetCreateTableQuery(table_id.getTableName(), context); - if (!query) - throw Exception(ErrorCodes::TABLE_IS_DROPPED, "Table {}.{} is dropped", table_id.database_name, table_id.table_name); + create_query = create_query->clone(); /// We don't want to see any UUIDs in backup (after RESTORE the table will have another UUID anyway). - auto & create = query->as(); + auto & create = create_query->as(); create.uuid = UUIDHelpers::Nil; create.to_inner_uuid = UUIDHelpers::Nil; - /// If this is a definition of a system table we'll remove columns and comment because they're excessive for backups. - if (create.storage && create.storage->engine && create.storage->engine->name.starts_with("System")) + /// If this is a definition of a system table we'll remove columns and comment because they're reduntant for backups. + if (isSystemStorage()) { create.reset(create.columns_list); create.reset(create.comment); } - - if (database) - *database = db; - - return query; -} - -ASTPtr IStorage::getCreateQueryForBackup(const BackupEntriesCollector & backup_entries_collector) const -{ - DatabasePtr database; - auto query = getCreateQueryForBackup(backup_entries_collector.getContext(), &database); - database->checkCreateTableQueryForBackup(query, backup_entries_collector); - return query; } void IStorage::backupData(BackupEntriesCollector &, const String &, const std::optional &) diff --git a/src/Storages/IStorage.h b/src/Storages/IStorage.h index 6dd329db02b..952f7bacbd3 100644 --- a/src/Storages/IStorage.h +++ b/src/Storages/IStorage.h @@ -223,10 +223,8 @@ public: /// Initially reserved virtual column name may be shadowed by real column. bool isVirtualColumn(const String & column_name, const StorageMetadataPtr & metadata_snapshot) const; - /// Returns a slightly changed version of the CREATE TABLE query which must be written to a backup. - /// The function can throw `TABLE_IS_DROPPED` if this storage is not attached to a database. - virtual ASTPtr getCreateQueryForBackup(const ContextPtr & context, DatabasePtr * database) const; - virtual ASTPtr getCreateQueryForBackup(const BackupEntriesCollector & backup_entries_collector) const; + /// Modify a CREATE TABLE query to make a variant which must be written to a backup. + virtual void adjustCreateQueryForBackup(ASTPtr & create_query, bool & consistency) const; /// Makes backup entries to backup the data of this storage. virtual void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions); diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index fac11db2ab9..e2f82603702 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -8253,44 +8253,58 @@ void StorageReplicatedMergeTree::createAndStoreFreezeMetadata(DiskPtr disk, Data } -ASTPtr StorageReplicatedMergeTree::getCreateQueryForBackup(const ContextPtr & local_context, DatabasePtr * database) const +void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_query, bool & consistency) const { - ASTPtr query = MergeTreeData::getCreateQueryForBackup(local_context, database); + MergeTreeData::adjustCreateQueryForBackup(create_query, consistency); /// Before storing the metadata in a backup we have to find a zookeeper path in its definition and turn the table's UUID in there /// back into "{uuid}", and also we probably can remove the zookeeper path and replica name if they're default. /// So we're kind of reverting what we had done to the table's definition in registerStorageMergeTree.cpp before we created this table. - auto & create = query->as(); - if (create.storage && create.storage->engine && (create.uuid != UUIDHelpers::Nil)) + auto & create = create_query->as(); + + if (!create.storage || !create.storage->engine) { - auto & engine = *(create.storage->engine); - if (auto * engine_args_ast = typeid_cast(engine.arguments.get())) - { - auto & engine_args = engine_args_ast->children; - if (engine_args.size() >= 2) - { - auto * zookeeper_path_ast = typeid_cast(engine_args[0].get()); - auto * replica_name_ast = typeid_cast(engine_args[1].get()); - if (zookeeper_path_ast && (zookeeper_path_ast->value.getType() == Field::Types::String) && - replica_name_ast && (replica_name_ast->value.getType() == Field::Types::String)) - { - String & zookeeper_path_arg = zookeeper_path_ast->value.get(); - String & replica_name_arg = replica_name_ast->value.get(); - String table_uuid_str = toString(create.uuid); - if (size_t uuid_pos = zookeeper_path_arg.find(table_uuid_str); uuid_pos != String::npos) - zookeeper_path_arg.replace(uuid_pos, table_uuid_str.size(), "{uuid}"); - const auto & config = getContext()->getConfigRef(); - if ((zookeeper_path_arg == getDefaultZooKeeperPath(config)) && (replica_name_arg == getDefaultReplicaName(config)) - && ((engine_args.size() == 2) || !engine_args[2]->as())) - { - engine_args.erase(engine_args.begin(), engine_args.begin() + 2); - } - } - } - } + /// The CREATE query doesn't correspond to this storage. + consistency = false; + return; } - return query; + auto & engine = *(create.storage->engine); + if (!engine.name.starts_with("Replicated") || !engine.name.ends_with("MergeTree")) + { + /// The CREATE query doesn't correspond to this storage. + consistency = false; + return; + } + + if (create.uuid == UUIDHelpers::Nil) + return; + + auto * engine_args_ast = typeid_cast(engine.arguments.get()); + if (!engine_args_ast) + return; + + auto & engine_args = engine_args_ast->children; + if (engine_args.size() < 2) + return; + + auto * zookeeper_path_ast = typeid_cast(engine_args[0].get()); + auto * replica_name_ast = typeid_cast(engine_args[1].get()); + if (zookeeper_path_ast && (zookeeper_path_ast->value.getType() == Field::Types::String) && + replica_name_ast && (replica_name_ast->value.getType() == Field::Types::String)) + { + String & zookeeper_path_arg = zookeeper_path_ast->value.get(); + String & replica_name_arg = replica_name_ast->value.get(); + String table_uuid_str = toString(create.uuid); + if (size_t uuid_pos = zookeeper_path_arg.find(table_uuid_str); uuid_pos != String::npos) + zookeeper_path_arg.replace(uuid_pos, table_uuid_str.size(), "{uuid}"); + const auto & config = getContext()->getConfigRef(); + if ((zookeeper_path_arg == getDefaultZooKeeperPath(config)) && (replica_name_arg == getDefaultReplicaName(config)) + && ((engine_args.size() == 2) || !engine_args[2]->as())) + { + engine_args.erase(engine_args.begin(), engine_args.begin() + 2); + } + } } void StorageReplicatedMergeTree::backupData( @@ -8370,7 +8384,7 @@ void StorageReplicatedMergeTree::backupData( backup_entries_collector.addBackupEntry(data_path / relative_path, backup_entry); } }; - backup_entries_collector.addPostCollectingTask(post_collecting_task); + backup_entries_collector.addPostTask(post_collecting_task); } void StorageReplicatedMergeTree::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 73a08a2b921..f3bb4786cca 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -232,8 +232,8 @@ public: int getMetadataVersion() const { return metadata_version; } - /// Returns a slightly changed version of the CREATE TABLE query which must be written to a backup. - ASTPtr getCreateQueryForBackup(const ContextPtr & context, DatabasePtr * database) const override; + /// Modify a CREATE TABLE query to make a variant which must be written to a backup. + void adjustCreateQueryForBackup(ASTPtr & create_query, bool & consistency) const override; /// Makes backup entries to backup the data of the storage. void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) override; diff --git a/tests/integration/test_backup_restore_new/test.py b/tests/integration/test_backup_restore_new/test.py index 35545e95537..0a39576ce10 100644 --- a/tests/integration/test_backup_restore_new/test.py +++ b/tests/integration/test_backup_restore_new/test.py @@ -138,7 +138,7 @@ def test_backup_table_under_another_name(): assert instance.query("SELECT count(), sum(x) FROM test.table2") == "100\t4950\n" -def test_materialized_view(): +def test_materialized_view_select_1(): backup_name = new_backup_name() instance.query( "CREATE MATERIALIZED VIEW mv_1(x UInt8) ENGINE=MergeTree ORDER BY tuple() POPULATE AS SELECT 1 AS x" @@ -456,18 +456,32 @@ def test_temporary_table(): ) == TSV([["e"], ["q"], ["w"]]) -# "BACKUP DATABASE _temporary_and_external_tables" is allowed but the backup must not contain these tables. -def test_temporary_tables_database(): +# The backup created by "BACKUP DATABASE _temporary_and_external_tables" must not contain tables from other sessions. +def test_temporary_database(): session_id = new_session_id() instance.http_query( "CREATE TEMPORARY TABLE temp_tbl(s String)", params={"session_id": session_id} ) - backup_name = new_backup_name() - instance.query(f"BACKUP DATABASE _temporary_and_external_tables TO {backup_name}") + other_session_id = new_session_id() + instance.http_query( + "CREATE TEMPORARY TABLE other_temp_tbl(s String)", + params={"session_id": other_session_id}, + ) - assert os.listdir(os.path.join(get_path_to_backup(backup_name), "metadata/")) == [ - "_temporary_and_external_tables.sql" # database metadata only + backup_name = new_backup_name() + instance.http_query( + f"BACKUP DATABASE _temporary_and_external_tables TO {backup_name}", + params={"session_id": session_id}, + ) + + assert os.listdir( + os.path.join(get_path_to_backup(backup_name), "temporary_tables/metadata") + ) == ["temp_tbl.sql"] + + assert sorted(os.listdir(get_path_to_backup(backup_name))) == [ + ".backup", + "temporary_tables", ] From 461a31f237dff13ede4f7cc4b764d1a99e37f593 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 23 Jun 2022 12:17:54 +0200 Subject: [PATCH 415/525] Improve gathering metadata for backup - part 2. --- src/Backups/BackupEntriesCollector.cpp | 164 +++++++++++--------- src/Backups/BackupEntriesCollector.h | 3 +- src/Backups/RestorerFromBackup.cpp | 3 +- src/Common/ErrorCodes.cpp | 2 +- src/Databases/DatabaseMemory.cpp | 45 +++--- src/Databases/DatabaseMemory.h | 2 +- src/Databases/DatabasesCommon.cpp | 32 ++-- src/Databases/DatabasesCommon.h | 2 +- src/Databases/IDatabase.cpp | 2 +- src/Databases/IDatabase.h | 2 +- src/Storages/IStorage.cpp | 10 +- src/Storages/IStorage.h | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 17 +- src/Storages/StorageReplicatedMergeTree.h | 2 +- 14 files changed, 146 insertions(+), 142 deletions(-) diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 9ee57cb4fd5..21b2741e237 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -21,7 +21,7 @@ namespace DB namespace ErrorCodes { - extern const int CANNOT_COLLECT_OBJECTS_FOR_BACKUP; + extern const int INCONSISTENT_METADATA_FOR_BACKUP; extern const int CANNOT_BACKUP_TABLE; extern const int TABLE_IS_DROPPED; extern const int LOGICAL_ERROR; @@ -162,37 +162,37 @@ void BackupEntriesCollector::gatherMetadataAndCheckConsistency() bool use_timeout = (timeout.count() >= 0); auto start_time = std::chrono::steady_clock::now(); - int pass = 1; - for (;;) + for (size_t pass = 1;; ++pass) { - consistency = true; - - /// Collect information about databases and tables specified in the BACKUP query. - gatherDatabasesMetadata(); - gatherTablesMetadata(); - - /// We have to check consistency of collected information to protect from the case when some table or database is - /// renamed during this collecting making the collected information invalid. - checkConsistency(); - - if (consistency) - break; - - /// Two passes is absolute minimum (see `previous_table_names` & `previous_database_names`). - auto elapsed = std::chrono::steady_clock::now() - start_time; - if ((pass >= 2) && use_timeout) + try { - if (elapsed > timeout) - throw Exception( - ErrorCodes::CANNOT_COLLECT_OBJECTS_FOR_BACKUP, - "Couldn't collect tables and databases to make a backup (pass #{}, elapsed {})", - pass, - to_string(elapsed)); - } + /// Collect information about databases and tables specified in the BACKUP query. + database_infos.clear(); + table_infos.clear(); + gatherDatabasesMetadata(); + gatherTablesMetadata(); - if (pass >= 2) - LOG_WARNING(log, "Couldn't collect tables and databases to make a backup (pass #{}, elapsed {})", pass, to_string(elapsed)); - ++pass; + /// We have to check consistency of collected information to protect from the case when some table or database is + /// renamed during this collecting making the collected information invalid. + auto comparing_error = compareWithPrevious(); + if (!comparing_error) + break; /// no error, everything's fine + + if (pass >= 2) /// Two passes is minimum (we need to compare with table names with previous ones to be sure we don't miss anything). + throw *comparing_error; + } + catch (Exception & e) + { + if (e.code() != ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP) + throw; + + auto elapsed = std::chrono::steady_clock::now() - start_time; + e.addMessage("Couldn't gather tables and databases to make a backup (pass #{}, elapsed {})", pass, to_string(elapsed)); + if (use_timeout && (elapsed > timeout)) + throw; + else + LOG_WARNING(log, "{}", e.displayText()); + } } LOG_INFO(log, "Will backup {} databases and {} tables", database_infos.size(), table_infos.size()); @@ -200,8 +200,6 @@ void BackupEntriesCollector::gatherMetadataAndCheckConsistency() void BackupEntriesCollector::gatherDatabasesMetadata() { - database_infos.clear(); - /// Collect information about databases and tables specified in the BACKUP query. for (const auto & element : backup_query_elements) { @@ -264,16 +262,11 @@ void BackupEntriesCollector::gatherDatabasesMetadata() /* partitions= */ {}, /* all_tables= */ true, /* except_table_names= */ element.except_tables); - if (!consistency) - return; } } break; } } - - if (!consistency) - return; } } @@ -318,20 +311,14 @@ void BackupEntriesCollector::gatherDatabaseMetadata( } catch (...) { - /// The database has been dropped recently. - consistency = false; - return; + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Couldn't get a create query for database {}", database_name); } database_info.create_database_query = create_database_query; const auto & create = create_database_query->as(); if (create.getDatabase() != database_name) - { - /// The database has been renamed recently. - consistency = false; - return; - } + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with unexpected name {} for database {}", backQuoteIfNeed(create.getDatabase()), backQuoteIfNeed(database_name)); } if (table_name) @@ -358,9 +345,6 @@ void BackupEntriesCollector::gatherDatabaseMetadata( void BackupEntriesCollector::gatherTablesMetadata() { - if (!consistency) - return; - table_infos.clear(); for (const auto & [database_name, database_info] : database_infos) { @@ -382,12 +366,8 @@ void BackupEntriesCollector::gatherTablesMetadata() return false; }; - auto db_tables = database->getTablesForBackup(filter_by_table_name, context, consistency); + auto db_tables = database->getTablesForBackup(filter_by_table_name, context); - if (!consistency) - return; - - /// Check that all tables were found. std::unordered_set found_table_names; for (const auto & db_table : db_tables) { @@ -395,13 +375,14 @@ void BackupEntriesCollector::gatherTablesMetadata() const auto & create = create_table_query->as(); found_table_names.emplace(create.getTable()); - if ((is_temporary_database && !create.temporary) || (!is_temporary_database && (create.getDatabase() != database_name))) - { - consistency = false; - return; - } + if (is_temporary_database && !create.temporary) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a non-temporary create query for {}", tableNameWithTypeToString(database_name, create.getTable(), false)); + + if (!is_temporary_database && (create.getDatabase() != database_name)) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with unexpected database name {} for {}", backQuoteIfNeed(create.getDatabase()), tableNameWithTypeToString(database_name, create.getTable(), false)); } + /// Check that all tables were found. for (const auto & [table_name, table_info] : database_info.tables) { if (table_info.throw_if_table_not_found && !found_table_names.contains(table_name)) @@ -443,10 +424,7 @@ void BackupEntriesCollector::gatherTablesMetadata() void BackupEntriesCollector::lockTablesForReading() { - if (!consistency) - return; - - for (auto & table_info : table_infos | boost::adaptors::map_values) + for (auto & [table_name, table_info] : table_infos) { auto storage = table_info.storage; TableLockHolder table_lock; @@ -460,19 +438,15 @@ void BackupEntriesCollector::lockTablesForReading() { if (e.code() != ErrorCodes::TABLE_IS_DROPPED) throw; - consistency = false; - return; + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} is dropped", tableNameWithTypeToString(table_name.database, table_name.table, true)); } } } } -/// Check for consistency of collected information about databases and tables. -void BackupEntriesCollector::checkConsistency() +/// Check consistency of collected information about databases and tables. +std::optional BackupEntriesCollector::compareWithPrevious() { - if (!consistency) - return; /// Already inconsistent, no more checks necessary - /// We need to scan tables at least twice to be sure that we haven't missed any table which could be renamed /// while we were scanning. std::set database_names; @@ -480,12 +454,62 @@ void BackupEntriesCollector::checkConsistency() boost::range::copy(database_infos | boost::adaptors::map_keys, std::inserter(database_names, database_names.end())); boost::range::copy(table_infos | boost::adaptors::map_keys, std::inserter(table_names, table_names.end())); - if ((previous_database_names != database_names) || (previous_table_names != table_names)) + if (previous_database_names != database_names) { + std::optional comparing_error; + for (const auto & database_name : database_names) + { + if (!previous_database_names.contains(database_name)) + { + comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were added during scanning", backQuoteIfNeed(database_name)}; + break; + } + } + if (!comparing_error) + { + for (const auto & database_name : previous_database_names) + { + if (!database_names.contains(database_name)) + { + comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were removed during scanning", backQuoteIfNeed(database_name)}; + break; + } + } + } + assert(comparing_error); previous_database_names = std::move(database_names); previous_table_names = std::move(table_names); - consistency = false; + return comparing_error; } + + if (previous_table_names != table_names) + { + std::optional comparing_error; + for (const auto & table_name : table_names) + { + if (!previous_table_names.contains(table_name)) + { + comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were added during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; + break; + } + } + if (!comparing_error) + { + for (const auto & table_name : previous_table_names) + { + if (!table_names.contains(table_name)) + { + comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were removed during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; + break; + } + } + } + assert(comparing_error); + previous_table_names = std::move(table_names); + return comparing_error; + } + + return {}; } /// Make backup entries for all the definitions of all the databases found. diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index c34c6204abb..03b7a968650 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -98,7 +98,7 @@ private: void gatherTablesMetadata(); void lockTablesForReading(); - void checkConsistency(); + std::optional compareWithPrevious(); void makeBackupEntriesForDatabasesDefs(); void makeBackupEntriesForTablesDefs(); @@ -147,7 +147,6 @@ private: std::map table_infos; std::set previous_database_names; std::set previous_table_names; - bool consistency = false; BackupEntries backup_entries; std::queue> post_tasks; diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 16ffead3976..84cc1dec1fb 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -691,8 +691,7 @@ void RestorerFromBackup::createTables() if (!restore_settings.allow_different_table_def) { ASTPtr create_table_query = database->getCreateTableQuery(resolved_id.table_name, context); - bool consistency = true; - storage->adjustCreateQueryForBackup(create_table_query, consistency); + storage->adjustCreateQueryForBackup(create_table_query); ASTPtr expected_create_query = table_info.create_table_query; if (serializeAST(*create_table_query) != serializeAST(*expected_create_query)) { diff --git a/src/Common/ErrorCodes.cpp b/src/Common/ErrorCodes.cpp index 6f2ac41cc08..8e7eaf4c6e6 100644 --- a/src/Common/ErrorCodes.cpp +++ b/src/Common/ErrorCodes.cpp @@ -631,7 +631,7 @@ M(660, HDFS_ERROR) \ M(661, CANNOT_SEND_SIGNAL) \ M(662, FS_METADATA_ERROR) \ - M(663, CANNOT_COLLECT_OBJECTS_FOR_BACKUP) \ + M(663, INCONSISTENT_METADATA_FOR_BACKUP) \ M(664, ACCESS_STORAGE_DOESNT_ALLOW_BACKUP) \ \ M(999, KEEPER_EXCEPTION) \ diff --git a/src/Databases/DatabaseMemory.cpp b/src/Databases/DatabaseMemory.cpp index 62cee31bbad..8540c785419 100644 --- a/src/Databases/DatabaseMemory.cpp +++ b/src/Databases/DatabaseMemory.cpp @@ -19,6 +19,7 @@ namespace ErrorCodes { extern const int UNKNOWN_TABLE; extern const int LOGICAL_ERROR; + extern const int INCONSISTENT_METADATA_FOR_BACKUP; } DatabaseMemory::DatabaseMemory(const String & name_, ContextPtr context_) @@ -145,11 +146,11 @@ void DatabaseMemory::alterTable(ContextPtr local_context, const StorageID & tabl DatabaseCatalog::instance().updateLoadingDependencies(table_id, std::move(new_dependencies)); } -std::vector> DatabaseMemory::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const +std::vector> DatabaseMemory::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context) const { /// We need a special processing for the temporary database. if (getDatabaseName() != DatabaseCatalog::TEMPORARY_DATABASE) - return DatabaseWithOwnTablesBase::getTablesForBackup(filter, local_context, consistency); + return DatabaseWithOwnTablesBase::getTablesForBackup(filter, local_context); std::vector> res; @@ -162,32 +163,22 @@ std::vector> DatabaseMemory::getTablesForBackup(co if (!filter(table_name)) continue; - bool ok = false; - - if (auto storage_id = local_context->tryResolveStorageID(StorageID{"", table_name}, Context::ResolveExternal)) - { - /// Here `storage_id.table_name` looks like looks like "_tmp_ab9b15a3-fb43-4670-abec-14a0e9eb70f1" - /// it's not the real name of the table. - if (auto create_table_query = tryGetCreateTableQuery(storage_id.table_name, local_context)) - { - const auto & create = create_table_query->as(); - if (create.getTable() == table_name) - { - storage->adjustCreateQueryForBackup(create_table_query, consistency); - if (consistency) - { - res.emplace_back(create_table_query, storage); - ok = true; - } - } - } - } + auto storage_id = local_context->tryResolveStorageID(StorageID{"", table_name}, Context::ResolveExternal); + if (!storage_id) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Couldn't resolve the name of temporary table {}", backQuoteIfNeed(table_name)); - if (!ok) - { - consistency = false; - return {}; - } + /// Here `storage_id.table_name` looks like looks like "_tmp_ab9b15a3-fb43-4670-abec-14a0e9eb70f1" + /// it's not the real name of the table. + auto create_table_query = tryGetCreateTableQuery(storage_id.table_name, local_context); + if (!create_table_query) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Couldn't get a create query for temporary table {}", backQuoteIfNeed(table_name)); + + const auto & create = create_table_query->as(); + if (create.getTable() != table_name) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with unexpected name {} for temporary table {}", backQuoteIfNeed(create.getTable()), backQuoteIfNeed(table_name)); + + storage->adjustCreateQueryForBackup(create_table_query); + res.emplace_back(create_table_query, storage); } return res; diff --git a/src/Databases/DatabaseMemory.h b/src/Databases/DatabaseMemory.h index 8ec216b165d..6262543b0c1 100644 --- a/src/Databases/DatabaseMemory.h +++ b/src/Databases/DatabaseMemory.h @@ -50,7 +50,7 @@ public: void alterTable(ContextPtr local_context, const StorageID & table_id, const StorageInMemoryMetadata & metadata) override; - std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const override; + std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context) const override; private: const String data_path; diff --git a/src/Databases/DatabasesCommon.cpp b/src/Databases/DatabasesCommon.cpp index 4ab0ed4792e..93a9523d115 100644 --- a/src/Databases/DatabasesCommon.cpp +++ b/src/Databases/DatabasesCommon.cpp @@ -25,6 +25,7 @@ namespace ErrorCodes extern const int NOT_IMPLEMENTED; extern const int LOGICAL_ERROR; extern const int CANNOT_GET_CREATE_TABLE_QUERY; + extern const int INCONSISTENT_METADATA_FOR_BACKUP; } void applyMetadataChangesToCreateQuery(const ASTPtr & query, const StorageInMemoryMetadata & metadata) @@ -322,34 +323,23 @@ StoragePtr DatabaseWithOwnTablesBase::getTableUnlocked(const String & table_name backQuote(database_name), backQuote(table_name)); } -std::vector> DatabaseWithOwnTablesBase::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const +std::vector> DatabaseWithOwnTablesBase::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context) const { std::vector> res; for (auto it = getTablesIterator(local_context, filter); it->isValid(); it->next()) { - bool ok = false; + auto create_table_query = tryGetCreateTableQuery(it->name(), local_context); + if (!create_table_query) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Couldn't get a create query for table {}.{}", backQuoteIfNeed(getDatabaseName()), backQuoteIfNeed(it->name())); - if (auto create_table_query = tryGetCreateTableQuery(it->name(), local_context)) - { - const auto & create = create_table_query->as(); - if (create.getTable() == it->name()) - { - auto storage = it->table(); - storage->adjustCreateQueryForBackup(create_table_query, consistency); - if (consistency) - { - res.emplace_back(create_table_query, storage); - ok = true; - } - } - } + const auto & create = create_table_query->as(); + if (create.getTable() != it->name()) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with unexpected name {} for table {}.{}", backQuoteIfNeed(create.getTable()), backQuoteIfNeed(getDatabaseName()), backQuoteIfNeed(it->name())); - if (!ok) - { - consistency = false; - return {}; - } + auto storage = it->table(); + storage->adjustCreateQueryForBackup(create_table_query); + res.emplace_back(create_table_query, storage); } return res; diff --git a/src/Databases/DatabasesCommon.h b/src/Databases/DatabasesCommon.h index 2b320349e2d..c5842d7dac3 100644 --- a/src/Databases/DatabasesCommon.h +++ b/src/Databases/DatabasesCommon.h @@ -36,7 +36,7 @@ public: DatabaseTablesIteratorPtr getTablesIterator(ContextPtr context, const FilterByNameFunction & filter_by_table_name) const override; - std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context, bool & consistency) const override; + std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context) const override; void createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr local_context, std::shared_ptr restore_coordination, UInt64 timeout_ms) override; void shutdown() override; diff --git a/src/Databases/IDatabase.cpp b/src/Databases/IDatabase.cpp index e09eb5186ec..a75f213a6bb 100644 --- a/src/Databases/IDatabase.cpp +++ b/src/Databases/IDatabase.cpp @@ -32,7 +32,7 @@ ASTPtr IDatabase::getCreateDatabaseQueryForBackup() const return query; } -std::vector> IDatabase::getTablesForBackup(const FilterByNameFunction &, const ContextPtr &, bool &) const +std::vector> IDatabase::getTablesForBackup(const FilterByNameFunction &, const ContextPtr &) const { /// Cannot restore any table because IDatabase doesn't own any tables. throw Exception(ErrorCodes::CANNOT_BACKUP_TABLE, diff --git a/src/Databases/IDatabase.h b/src/Databases/IDatabase.h index c8c9ff9d9a5..cdea03aa1cb 100644 --- a/src/Databases/IDatabase.h +++ b/src/Databases/IDatabase.h @@ -336,7 +336,7 @@ public: virtual ASTPtr getCreateDatabaseQueryForBackup() const; /// Returns CREATE TABLE queries and corresponding tables prepared for writing to a backup. - virtual std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & context, bool & consistency) const; + virtual std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & context) const; /// Creates a table restored from backup. virtual void createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr context, std::shared_ptr restore_coordination, UInt64 timeout_ms); diff --git a/src/Storages/IStorage.cpp b/src/Storages/IStorage.cpp index 5f0fe303f27..a3f35ccc0f8 100644 --- a/src/Storages/IStorage.cpp +++ b/src/Storages/IStorage.cpp @@ -24,6 +24,7 @@ namespace ErrorCodes extern const int TABLE_IS_DROPPED; extern const int NOT_IMPLEMENTED; extern const int DEADLOCK_AVOIDED; + extern const int INCONSISTENT_METADATA_FOR_BACKUP; } bool IStorage::isVirtualColumn(const String & column_name, const StorageMetadataPtr & metadata_snapshot) const @@ -248,7 +249,7 @@ bool IStorage::isStaticStorage() const return false; } -void IStorage::adjustCreateQueryForBackup(ASTPtr & create_query, bool &) const +void IStorage::adjustCreateQueryForBackup(ASTPtr & create_query) const { create_query = create_query->clone(); @@ -260,6 +261,13 @@ void IStorage::adjustCreateQueryForBackup(ASTPtr & create_query, bool &) const /// If this is a definition of a system table we'll remove columns and comment because they're reduntant for backups. if (isSystemStorage()) { + if (!create.storage || !create.storage->engine) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query without table engine for a system table {}", getStorageID().getFullTableName()); + + auto & engine = *(create.storage->engine); + if (!engine.name.starts_with("System")) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with an unexpected table engine {} for a system table {}", engine.name, getStorageID().getFullTableName()); + create.reset(create.columns_list); create.reset(create.comment); } diff --git a/src/Storages/IStorage.h b/src/Storages/IStorage.h index 952f7bacbd3..34170785896 100644 --- a/src/Storages/IStorage.h +++ b/src/Storages/IStorage.h @@ -224,7 +224,7 @@ public: bool isVirtualColumn(const String & column_name, const StorageMetadataPtr & metadata_snapshot) const; /// Modify a CREATE TABLE query to make a variant which must be written to a backup. - virtual void adjustCreateQueryForBackup(ASTPtr & create_query, bool & consistency) const; + virtual void adjustCreateQueryForBackup(ASTPtr & create_query) const; /// Makes backup entries to backup the data of this storage. virtual void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions); diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index e2f82603702..66fb2a64a50 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -158,6 +158,7 @@ namespace ErrorCodes extern const int BAD_ARGUMENTS; extern const int CONCURRENT_ACCESS_NOT_SUPPORTED; extern const int CHECKSUM_DOESNT_MATCH; + extern const int INCONSISTENT_METADATA_FOR_BACKUP; } namespace ActionLocks @@ -8253,9 +8254,9 @@ void StorageReplicatedMergeTree::createAndStoreFreezeMetadata(DiskPtr disk, Data } -void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_query, bool & consistency) const +void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_query) const { - MergeTreeData::adjustCreateQueryForBackup(create_query, consistency); + MergeTreeData::adjustCreateQueryForBackup(create_query); /// Before storing the metadata in a backup we have to find a zookeeper path in its definition and turn the table's UUID in there /// back into "{uuid}", and also we probably can remove the zookeeper path and replica name if they're default. @@ -8263,19 +8264,11 @@ void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_quer auto & create = create_query->as(); if (!create.storage || !create.storage->engine) - { - /// The CREATE query doesn't correspond to this storage. - consistency = false; - return; - } + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query without table engine for a replicated table {}", getStorageID().getFullTableName()); auto & engine = *(create.storage->engine); if (!engine.name.starts_with("Replicated") || !engine.name.ends_with("MergeTree")) - { - /// The CREATE query doesn't correspond to this storage. - consistency = false; - return; - } + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with an unexpected table engine {} for a replicated table {}", engine.name, getStorageID().getFullTableName()); if (create.uuid == UUIDHelpers::Nil) return; diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index f3bb4786cca..86120b354bd 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -233,7 +233,7 @@ public: int getMetadataVersion() const { return metadata_version; } /// Modify a CREATE TABLE query to make a variant which must be written to a backup. - void adjustCreateQueryForBackup(ASTPtr & create_query, bool & consistency) const override; + void adjustCreateQueryForBackup(ASTPtr & create_query) const override; /// Makes backup entries to backup the data of the storage. void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) override; From 44db346fea82a35880eebba05b950954be3a8c07 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 23 Jun 2022 14:24:45 +0200 Subject: [PATCH 416/525] Improve gathering metadata for backup - part 3. --- src/Access/AccessControl.cpp | 2 +- src/Backups/BackupEntriesCollector.cpp | 40 +++--- src/Backups/BackupEntriesCollector.h | 2 + src/Backups/BackupUtils.cpp | 2 +- src/Backups/RestorerFromBackup.cpp | 162 +++++++++++-------------- src/Backups/RestorerFromBackup.h | 30 ++--- src/Databases/DDLRenamingVisitor.cpp | 68 +++++------ src/Databases/DDLRenamingVisitor.h | 3 - 8 files changed, 135 insertions(+), 174 deletions(-) diff --git a/src/Access/AccessControl.cpp b/src/Access/AccessControl.cpp index aa58044a6b0..b5b22caa400 100644 --- a/src/Access/AccessControl.cpp +++ b/src/Access/AccessControl.cpp @@ -467,7 +467,7 @@ void AccessControl::backup(BackupEntriesCollector & backup_entries_collector, Ac void AccessControl::restore(RestorerFromBackup & restorer, const String & data_path_in_backup) { /// The restorer must already know about `data_path_in_backup`, but let's check. - restorer.checkPathInBackupToRestoreAccess(data_path_in_backup); + restorer.checkPathInBackupIsRegisteredToRestoreAccess(data_path_in_backup); } void AccessControl::insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 21b2741e237..feed9be4e92 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -36,7 +36,6 @@ namespace else return fmt::format("{}able {}.{}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(database_name), backQuoteIfNeed(table_name)); } - } std::string_view BackupEntriesCollector::toString(Stage stage) @@ -319,6 +318,9 @@ void BackupEntriesCollector::gatherDatabaseMetadata( if (create.getDatabase() != database_name) throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with unexpected name {} for database {}", backQuoteIfNeed(create.getDatabase()), backQuoteIfNeed(database_name)); + + String new_database_name = renaming_map.getNewDatabaseName(database_name); + database_info.metadata_path_in_backup = root_path_in_backup / "metadata" / (escapeForFileName(new_database_name) + ".sql"); } if (table_name) @@ -395,17 +397,19 @@ void BackupEntriesCollector::gatherTablesMetadata() const auto & create = create_table_query->as(); String table_name = create.getTable(); - fs::path data_path_in_backup; - if (is_temporary_database) + fs::path metadata_path_in_backup, data_path_in_backup; + auto table_name_in_backup = renaming_map.getNewTableName({database_name, table_name}); + if (table_name_in_backup.database == DatabaseCatalog::TEMPORARY_DATABASE) { - auto table_name_in_backup = renaming_map.getNewTemporaryTableName(table_name); - data_path_in_backup = root_path_in_backup / "temporary_tables" / "data" / escapeForFileName(table_name_in_backup); + metadata_path_in_backup = root_path_in_backup / "temporary_tables" / "metadata" / (escapeForFileName(table_name_in_backup.table) + ".sql"); + data_path_in_backup = root_path_in_backup / "temporary_tables" / "data" / escapeForFileName(table_name_in_backup.table); } else { - auto table_name_in_backup = renaming_map.getNewTableName({database_name, table_name}); - data_path_in_backup - = root_path_in_backup / "data" / escapeForFileName(table_name_in_backup.database) / escapeForFileName(table_name_in_backup.table); + metadata_path_in_backup + = root_path_in_backup / "metadata" / escapeForFileName(table_name_in_backup.database) / (escapeForFileName(table_name_in_backup.table) + ".sql"); + data_path_in_backup = root_path_in_backup / "data" / escapeForFileName(table_name_in_backup.database) + / escapeForFileName(table_name_in_backup.table); } /// Add information to `table_infos`. @@ -413,6 +417,7 @@ void BackupEntriesCollector::gatherTablesMetadata() res_table_info.database = database; res_table_info.storage = db_table.second; res_table_info.create_table_query = create_table_query; + res_table_info.metadata_path_in_backup = metadata_path_in_backup; res_table_info.data_path_in_backup = data_path_in_backup; auto partitions_it = database_info.tables.find(table_name); @@ -525,9 +530,7 @@ void BackupEntriesCollector::makeBackupEntriesForDatabasesDefs() ASTPtr new_create_query = database_info.create_database_query; renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, new_create_query); - String new_database_name = renaming_map.getNewDatabaseName(database_name); - auto metadata_path_in_backup = root_path_in_backup / "metadata" / (escapeForFileName(new_database_name) + ".sql"); - + const String & metadata_path_in_backup = database_info.metadata_path_in_backup; backup_entries.emplace_back(metadata_path_in_backup, std::make_shared(serializeAST(*new_create_query))); } } @@ -538,24 +541,11 @@ void BackupEntriesCollector::makeBackupEntriesForTablesDefs() for (const auto & [table_name, table_info] : table_infos) { LOG_TRACE(log, "Adding definition of {}", tableNameWithTypeToString(table_name.database, table_name.table, false)); - bool is_temporary_database = (table_name.database == DatabaseCatalog::TEMPORARY_DATABASE); ASTPtr new_create_query = table_info.create_table_query; renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, new_create_query); - fs::path metadata_path_in_backup; - if (is_temporary_database) - { - auto new_name = renaming_map.getNewTemporaryTableName(table_name.table); - metadata_path_in_backup = root_path_in_backup / "temporary_tables" / "metadata" / (escapeForFileName(new_name) + ".sql"); - } - else - { - auto new_name = renaming_map.getNewTableName({table_name.database, table_name.table}); - metadata_path_in_backup - = root_path_in_backup / "metadata" / escapeForFileName(new_name.database) / (escapeForFileName(new_name.table) + ".sql"); - } - + const String & metadata_path_in_backup = table_info.metadata_path_in_backup; backup_entries.emplace_back(metadata_path_in_backup, std::make_shared(serializeAST(*new_create_query))); } } diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 03b7a968650..5e37e268fc4 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -120,6 +120,7 @@ private: { DatabasePtr database; ASTPtr create_database_query; + String metadata_path_in_backup; struct TableParams { @@ -139,6 +140,7 @@ private: StoragePtr storage; TableLockHolder table_lock; ASTPtr create_table_query; + String metadata_path_in_backup; std::filesystem::path data_path_in_backup; std::optional partitions; }; diff --git a/src/Backups/BackupUtils.cpp b/src/Backups/BackupUtils.cpp index c5de4bd7e67..9ff91050177 100644 --- a/src/Backups/BackupUtils.cpp +++ b/src/Backups/BackupUtils.cpp @@ -39,7 +39,7 @@ DDLRenamingMap makeRenamingMapFromBackupQuery(const ASTBackupQuery::Elements & e const String & new_table_name = element.new_table_name; assert(!table_name.empty()); assert(!new_table_name.empty()); - map.setNewTemporaryTableName(table_name, new_table_name); + map.setNewTableName({DatabaseCatalog::TEMPORARY_DATABASE, table_name}, {DatabaseCatalog::TEMPORARY_DATABASE, new_table_name}); break; } diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 84cc1dec1fb..74d4de631e3 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -39,7 +39,13 @@ namespace ErrorCodes namespace { - constexpr const std::string_view sql_ext = ".sql"; + String tableNameWithTypeToString(const String & database_name, const String & table_name, bool first_char_uppercase) + { + if (database_name == DatabaseCatalog::TEMPORARY_DATABASE) + return fmt::format("{}emporary table {}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(table_name)); + else + return fmt::format("{}able {}.{}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(database_name), backQuoteIfNeed(table_name)); + } String tryGetTableEngine(const IAST & ast) { @@ -64,16 +70,6 @@ namespace } } -bool RestorerFromBackup::TableKey::operator ==(const TableKey & right) const -{ - return (name == right.name) && (is_temporary == right.is_temporary); -} - -bool RestorerFromBackup::TableKey::operator <(const TableKey & right) const -{ - return (name < right.name) || ((name == right.name) && (is_temporary < right.is_temporary)); -} - std::string_view RestorerFromBackup::toString(Stage stage) { switch (stage) @@ -135,10 +131,11 @@ void RestorerFromBackup::run(bool only_check_access) /// Find all the databases and tables which we will read from the backup. setStage(Stage::kFindingTablesInBackup); - collectDatabaseAndTableInfos(); + findDatabasesAndTablesInBackup(); /// Check access rights. - checkAccessForCollectedInfos(); + checkAccessForObjectsFoundInBackup(); + if (only_check_access) return; @@ -303,7 +300,7 @@ void RestorerFromBackup::findRootPathsInBackup() ", ")); } -void RestorerFromBackup::collectDatabaseAndTableInfos() +void RestorerFromBackup::findDatabasesAndTablesInBackup() { database_infos.clear(); table_infos.clear(); @@ -313,22 +310,22 @@ void RestorerFromBackup::collectDatabaseAndTableInfos() { case ASTBackupQuery::ElementType::TABLE: { - collectTableInfo({element.database_name, element.table_name}, false, element.partitions); + findTableInBackup({element.database_name, element.table_name}, element.partitions); break; } case ASTBackupQuery::ElementType::TEMPORARY_TABLE: { - collectTableInfo({element.database_name, element.table_name}, true, element.partitions); + findTableInBackup({DatabaseCatalog::TEMPORARY_DATABASE, element.table_name}, element.partitions); break; } case ASTBackupQuery::ElementType::DATABASE: { - collectDatabaseInfo(element.database_name, element.except_tables, /* throw_if_no_database_metadata_in_backup= */ true); + findDatabaseInBackup(element.database_name, element.except_tables); break; } case ASTBackupQuery::ElementType::ALL: { - collectAllDatabasesInfo(element.except_databases, element.except_tables); + findEverythingInBackup(element.except_databases, element.except_tables); break; } } @@ -337,9 +334,9 @@ void RestorerFromBackup::collectDatabaseAndTableInfos() LOG_INFO(log, "Will restore {} databases and {} tables", database_infos.size(), table_infos.size()); } -void RestorerFromBackup::collectTableInfo(const QualifiedTableName & table_name_in_backup, bool is_temporary_table, const std::optional & partitions) +void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name_in_backup, const std::optional & partitions) { - String database_name_in_backup = is_temporary_table ? DatabaseCatalog::TEMPORARY_DATABASE : table_name_in_backup.database; + bool is_temporary_table = (table_name_in_backup.database == DatabaseCatalog::TEMPORARY_DATABASE); std::optional metadata_path; std::optional root_path_in_use; @@ -366,21 +363,20 @@ void RestorerFromBackup::collectTableInfo(const QualifiedTableName & table_name_ } if (!metadata_path) - throw Exception(ErrorCodes::BACKUP_ENTRY_NOT_FOUND, "Table {} not found in backup", table_name_in_backup.getFullName()); + throw Exception( + ErrorCodes::BACKUP_ENTRY_NOT_FOUND, + "{} not found in backup", + tableNameWithTypeToString(table_name_in_backup.database, table_name_in_backup.table, true)); - TableKey table_key; fs::path data_path_in_backup; if (is_temporary_table) { data_path_in_backup = *root_path_in_use / "temporary_tables" / "data" / escapeForFileName(table_name_in_backup.table); - table_key.name.table = renaming_map.getNewTemporaryTableName(table_name_in_backup.table); - table_key.is_temporary = true; } else { data_path_in_backup = *root_path_in_use / "data" / escapeForFileName(table_name_in_backup.database) / escapeForFileName(table_name_in_backup.table); - table_key.name = renaming_map.getNewTableName(table_name_in_backup); } auto read_buffer = backup->readFile(*metadata_path)->getReadBuffer(); @@ -391,25 +387,26 @@ void RestorerFromBackup::collectTableInfo(const QualifiedTableName & table_name_ ASTPtr create_table_query = parseQuery(create_parser, create_query_str, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, create_table_query); - if (auto it = table_infos.find(table_key); it != table_infos.end()) + QualifiedTableName table_name = renaming_map.getNewTableName(table_name_in_backup); + + if (auto it = table_infos.find(table_name); it != table_infos.end()) { const TableInfo & table_info = it->second; if (table_info.create_table_query && (serializeAST(*table_info.create_table_query) != serializeAST(*create_table_query))) { throw Exception( ErrorCodes::CANNOT_RESTORE_TABLE, - "Extracted two different create queries for the same {}table {}: {} and {}", - (is_temporary_table ? "temporary " : ""), - table_key.name.getFullName(), + "Extracted two different create queries for the same {}: {} and {}", + tableNameWithTypeToString(table_name.database, table_name.table, false), serializeAST(*table_info.create_table_query), serializeAST(*create_table_query)); } } - TableInfo & res_table_info = table_infos[table_key]; + TableInfo & res_table_info = table_infos[table_name]; res_table_info.create_table_query = create_table_query; res_table_info.data_path_in_backup = data_path_in_backup; - res_table_info.dependencies = getDependenciesSetFromCreateQuery(context->getGlobalContext(), table_key.name, create_table_query); + res_table_info.dependencies = getDependenciesSetFromCreateQuery(context->getGlobalContext(), table_name, create_table_query); if (partitions) { @@ -426,27 +423,37 @@ void RestorerFromBackup::collectTableInfo(const QualifiedTableName & table_name_ } } -void RestorerFromBackup::collectDatabaseInfo(const String & database_name_in_backup, const std::set & except_table_names, bool throw_if_no_database_metadata_in_backup) +void RestorerFromBackup::findDatabaseInBackup(const String & database_name_in_backup, const std::set & except_table_names) { std::optional metadata_path; std::unordered_set table_names_in_backup; for (const auto & root_path_in_backup : root_paths_in_backup) { - fs::path try_metadata_path = root_path_in_backup / "metadata" / (escapeForFileName(database_name_in_backup) + ".sql"); - if (!metadata_path && backup->fileExists(try_metadata_path)) + fs::path try_metadata_path, try_tables_metadata_path; + if (database_name_in_backup == DatabaseCatalog::TEMPORARY_DATABASE) + { + try_tables_metadata_path = root_path_in_backup / "temporary_tables" / "metadata"; + } + else + { + try_metadata_path = root_path_in_backup / "metadata" / (escapeForFileName(database_name_in_backup) + ".sql"); + try_tables_metadata_path = root_path_in_backup / "metadata" / escapeForFileName(database_name_in_backup); + } + + if (!metadata_path && !try_metadata_path.empty() && backup->fileExists(try_metadata_path)) metadata_path = try_metadata_path; - Strings file_names = backup->listFiles(root_path_in_backup / "metadata" / escapeForFileName(database_name_in_backup)); + Strings file_names = backup->listFiles(try_tables_metadata_path); for (const String & file_name : file_names) { - if (!file_name.ends_with(sql_ext)) + if (!file_name.ends_with(".sql")) continue; - String file_name_without_ext = file_name.substr(0, file_name.length() - sql_ext.length()); + String file_name_without_ext = file_name.substr(0, file_name.length() - strlen(".sql")); table_names_in_backup.insert(unescapeForFileName(file_name_without_ext)); } } - if (!metadata_path && throw_if_no_database_metadata_in_backup) + if (!metadata_path && table_names_in_backup.empty()) throw Exception(ErrorCodes::BACKUP_ENTRY_NOT_FOUND, "Database {} not found in backup", backQuoteIfNeed(database_name_in_backup)); if (metadata_path) @@ -480,33 +487,26 @@ void RestorerFromBackup::collectDatabaseInfo(const String & database_name_in_bac if (except_table_names.contains({database_name_in_backup, table_name_in_backup})) continue; - collectTableInfo({database_name_in_backup, table_name_in_backup}, /* is_temporary_table= */ false, /* partitions= */ {}); + findTableInBackup({database_name_in_backup, table_name_in_backup}, /* partitions= */ {}); } } -void RestorerFromBackup::collectAllDatabasesInfo(const std::set & except_database_names, const std::set & except_table_names) +void RestorerFromBackup::findEverythingInBackup(const std::set & except_database_names, const std::set & except_table_names) { std::unordered_set database_names_in_backup; - std::unordered_set temporary_table_names_in_backup; for (const auto & root_path_in_backup : root_paths_in_backup) { Strings file_names = backup->listFiles(root_path_in_backup / "metadata"); for (String & file_name : file_names) { - if (file_name.ends_with(sql_ext)) - file_name.resize(file_name.length() - sql_ext.length()); + if (file_name.ends_with(".sql")) + file_name.resize(file_name.length() - strlen(".sql")); database_names_in_backup.emplace(unescapeForFileName(file_name)); } - file_names = backup->listFiles(root_path_in_backup / "temporary_tables" / "metadata"); - for (String & file_name : file_names) - { - if (!file_name.ends_with(sql_ext)) - continue; - file_name.resize(file_name.length() - sql_ext.length()); - temporary_table_names_in_backup.emplace(unescapeForFileName(file_name)); - } + if (backup->hasFiles(root_path_in_backup / "temporary_tables" / "metadata")) + database_names_in_backup.emplace(DatabaseCatalog::TEMPORARY_DATABASE); } for (const String & database_name_in_backup : database_names_in_backup) @@ -514,14 +514,11 @@ void RestorerFromBackup::collectAllDatabasesInfo(const std::set & except if (except_database_names.contains(database_name_in_backup)) continue; - collectDatabaseInfo(database_name_in_backup, except_table_names, /* throw_if_no_database_metadata_in_backup= */ false); + findDatabaseInBackup(database_name_in_backup, except_table_names); } - - for (const String & temporary_table_name_in_backup : temporary_table_names_in_backup) - collectTableInfo({"", temporary_table_name_in_backup}, /* is_temporary_table= */ true, /* partitions= */ {}); } -void RestorerFromBackup::checkAccessForCollectedInfos() const +void RestorerFromBackup::checkAccessForObjectsFoundInBackup() const { AccessRightsElements required_access; for (const auto & database_name : database_infos | boost::adaptors::map_keys) @@ -545,7 +542,7 @@ void RestorerFromBackup::checkAccessForCollectedInfos() const if (hasSystemTableEngine(*table_info.create_table_query)) continue; - if (table_name.is_temporary) + if (table_name.database == DatabaseCatalog::TEMPORARY_DATABASE) { if (restore_settings.create_table != RestoreTableCreationMode::kMustExist) required_access.emplace_back(AccessType::CREATE_TEMPORARY_TABLE); @@ -579,7 +576,7 @@ void RestorerFromBackup::checkAccessForCollectedInfos() const flags = AccessType::SHOW_TABLES; } - required_access.emplace_back(flags, table_name.name.database, table_name.name.table); + required_access.emplace_back(flags, table_name.database, table_name.table); } if (access_restore_task) @@ -611,7 +608,9 @@ void RestorerFromBackup::createDatabases() create_database_query->as().if_not_exists = true; } LOG_TRACE(log, "Creating database {}: {}", backQuoteIfNeed(database_name), serializeAST(*create_database_query)); - executeCreateQuery(create_database_query); + InterpreterCreateQuery interpreter{create_database_query, context}; + interpreter.setInternal(true); + interpreter.execute(); } DatabasePtr database = DatabaseCatalog::instance().getDatabase(database_name); @@ -644,15 +643,11 @@ void RestorerFromBackup::createTables() if (tables_to_create.empty()) break; /// We've already created all the tables. - for (const auto & table_key : tables_to_create) + for (const auto & table_name : tables_to_create) { - auto & table_info = table_infos.at(table_key); + auto & table_info = table_infos.at(table_name); - DatabasePtr database; - if (table_key.is_temporary) - database = DatabaseCatalog::instance().getDatabaseForTemporaryTables(); - else - database = DatabaseCatalog::instance().getDatabase(table_key.name.database); + DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_name.database); bool need_create_table = (restore_settings.create_table != RestoreTableCreationMode::kMustExist); if (need_create_table && hasSystemTableEngine(*table_info.create_table_query)) @@ -670,9 +665,8 @@ void RestorerFromBackup::createTables() } LOG_TRACE( log, - "Creating {}table {}: {}", - (table_key.is_temporary ? "temporary " : ""), - table_key.name.getFullName(), + "Creating {}: {}", + tableNameWithTypeToString(table_name.database, table_name.table, false), serializeAST(*create_table_query)); database->createTableRestoredFromBackup(create_table_query, context, restore_coordination, create_table_timeout_ms); @@ -680,9 +674,9 @@ void RestorerFromBackup::createTables() table_info.created = true; - auto resolved_id = table_key.is_temporary - ? context->resolveStorageID(StorageID{"", table_key.name.table}, Context::ResolveExternal) - : context->resolveStorageID(StorageID{table_key.name.database, table_key.name.table}, Context::ResolveGlobal); + auto resolved_id = (table_name.database == DatabaseCatalog::TEMPORARY_DATABASE) + ? context->resolveStorageID(StorageID{"", table_name.table}, Context::ResolveExternal) + : context->resolveStorageID(StorageID{table_name.database, table_name.table}, Context::ResolveGlobal); auto storage = database->getTable(resolved_id.table_name, context); table_info.storage = storage; @@ -697,10 +691,9 @@ void RestorerFromBackup::createTables() { throw Exception( ErrorCodes::CANNOT_RESTORE_TABLE, - "The {}table {} has a different definition: {} " + "{} has a different definition: {} " "comparing to its definition in the backup: {}", - (table_key.is_temporary ? "temporary " : ""), - table_key.name.getFullName(), + tableNameWithTypeToString(table_name.database, table_name.table, true), serializeAST(*create_table_query), serializeAST(*expected_create_query)); } @@ -717,9 +710,9 @@ void RestorerFromBackup::createTables() } /// Returns the list of tables without dependencies or those which dependencies have been created before. -std::vector RestorerFromBackup::findTablesWithoutDependencies() const +std::vector RestorerFromBackup::findTablesWithoutDependencies() const { - std::vector tables_without_dependencies; + std::vector tables_without_dependencies; bool all_tables_created = true; for (const auto & [key, table_info] : table_infos) @@ -734,7 +727,7 @@ std::vector RestorerFromBackup::findTablesWithoutD bool all_dependencies_met = true; for (const auto & dependency : table_info.dependencies) { - auto it = table_infos.find(TableKey{dependency, false}); + auto it = table_infos.find(dependency); if ((it != table_infos.end()) && !it->second.created) { all_dependencies_met = false; @@ -753,7 +746,7 @@ std::vector RestorerFromBackup::findTablesWithoutD return {}; /// Cyclic dependency? We'll try to create those tables anyway but probably it's going to fail. - std::vector tables_with_cyclic_dependencies; + std::vector tables_with_cyclic_dependencies; for (const auto & [key, table_info] : table_infos) { if (!table_info.created) @@ -766,7 +759,7 @@ std::vector RestorerFromBackup::findTablesWithoutD "Some tables have cyclic dependency from each other: {}", boost::algorithm::join( tables_with_cyclic_dependencies - | boost::adaptors::transformed([](const TableKey & key) -> String { return key.name.getFullName(); }), + | boost::adaptors::transformed([](const QualifiedTableName & table_name) -> String { return table_name.getFullName(); }), ", ")); return tables_with_cyclic_dependencies; @@ -786,19 +779,12 @@ void RestorerFromBackup::addDataRestoreTasks(DataRestoreTasks && new_tasks) insertAtEnd(data_restore_tasks, std::move(new_tasks)); } -void RestorerFromBackup::checkPathInBackupToRestoreAccess(const String & path) +void RestorerFromBackup::checkPathInBackupIsRegisteredToRestoreAccess(const String & path) { if (!access_restore_task || !access_restore_task->hasDataPath(path)) throw Exception(ErrorCodes::LOGICAL_ERROR, "Path to restore access was not added"); } -void RestorerFromBackup::executeCreateQuery(const ASTPtr & create_query) const -{ - InterpreterCreateQuery interpreter{create_query, context}; - interpreter.setInternal(true); - interpreter.execute(); -} - void RestorerFromBackup::throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine) { throw Exception( diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index 86edf08b484..3bdbafe844c 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -48,15 +48,14 @@ public: std::shared_ptr getRestoreCoordination() const { return restore_coordination; } std::chrono::seconds getTimeout() const { return timeout; } ContextMutablePtr getContext() const { return context; } - void executeCreateQuery(const ASTPtr & create_query) const; /// Adds a data restore task which will be later returned by getDataRestoreTasks(). /// This function can be called by implementations of IStorage::restoreFromBackup() in inherited storage classes. void addDataRestoreTask(DataRestoreTask && new_task); void addDataRestoreTasks(DataRestoreTasks && new_tasks); - /// Adds a new data path to restore access control. - void checkPathInBackupToRestoreAccess(const String & path); + /// Checks that a specified path is already registered to be used for restoring access control. + void checkPathInBackupIsRegisteredToRestoreAccess(const String & path); /// Reading a backup includes a few stages: enum class Stage @@ -104,11 +103,14 @@ private: void run(bool only_check_access); void setStage(Stage new_stage, const String & error_message = {}); void findRootPathsInBackup(); - void collectDatabaseAndTableInfos(); - void collectTableInfo(const QualifiedTableName & table_name_in_backup, bool is_temporary_table, const std::optional & partitions); - void collectDatabaseInfo(const String & database_name_in_backup, const std::set & except_table_names, bool throw_if_no_database_metadata_in_backup); - void collectAllDatabasesInfo(const std::set & except_database_names, const std::set & except_table_names); - void checkAccessForCollectedInfos() const; + + void findDatabasesAndTablesInBackup(); + void findTableInBackup(const QualifiedTableName & table_name_in_backup, const std::optional & partitions); + void findDatabaseInBackup(const String & database_name_in_backup, const std::set & except_table_names); + void findEverythingInBackup(const std::set & except_database_names, const std::set & except_table_names); + + void checkAccessForObjectsFoundInBackup() const; + void createDatabases(); void createTables(); @@ -128,18 +130,10 @@ private: TableLockHolder table_lock; }; - struct TableKey - { - QualifiedTableName name; - bool is_temporary = false; - bool operator ==(const TableKey & right) const; - bool operator <(const TableKey & right) const; - }; - - std::vector findTablesWithoutDependencies() const; + std::vector findTablesWithoutDependencies() const; std::unordered_map database_infos; - std::map table_infos; + std::map table_infos; std::vector data_restore_tasks; std::shared_ptr access_restore_task; }; diff --git a/src/Databases/DDLRenamingVisitor.cpp b/src/Databases/DDLRenamingVisitor.cpp index caedfc55f3d..fc14d7abbd9 100644 --- a/src/Databases/DDLRenamingVisitor.cpp +++ b/src/Databases/DDLRenamingVisitor.cpp @@ -19,7 +19,6 @@ namespace DB namespace ErrorCodes { extern const int WRONG_DDL_RENAMING_SETTINGS; - extern const int LOGICAL_ERROR; } namespace @@ -31,24 +30,41 @@ namespace { /// CREATE TEMPORARY TABLE String table_name = create.getTable(); - const auto & new_table_name = data.renaming_map.getNewTemporaryTableName(table_name); - if (new_table_name != table_name) - create.setTable(new_table_name); + QualifiedTableName full_table_name{DatabaseCatalog::TEMPORARY_DATABASE, table_name}; + const auto & new_table_name = data.renaming_map.getNewTableName(full_table_name); + if (new_table_name != full_table_name) + { + create.setTable(new_table_name.table); + if (new_table_name.database != DatabaseCatalog::TEMPORARY_DATABASE) + { + create.temporary = false; + create.setDatabase(new_table_name.database); + } + } + } else if (create.table) { /// CREATE TABLE or CREATE DICTIONARY or CREATE VIEW - QualifiedTableName qualified_name; - qualified_name.table = create.getTable(); - qualified_name.database = create.getDatabase(); + QualifiedTableName full_name; + full_name.table = create.getTable(); + full_name.database = create.getDatabase(); - if (!qualified_name.database.empty() && !qualified_name.table.empty()) + if (!full_name.database.empty() && !full_name.table.empty()) { - auto new_qualified_name = data.renaming_map.getNewTableName(qualified_name); - if (new_qualified_name != qualified_name) + auto new_table_name = data.renaming_map.getNewTableName(full_name); + if (new_table_name != full_name) { - create.setTable(new_qualified_name.table); - create.setDatabase(new_qualified_name.database); + create.setTable(new_table_name.table); + if (new_table_name.database == DatabaseCatalog::TEMPORARY_DATABASE) + { + create.temporary = true; + create.setDatabase(""); + } + else + { + create.setDatabase(new_table_name.database); + } } } } @@ -301,7 +317,7 @@ void renameDatabaseAndTableNameInCreateQuery(const ContextPtr & global_context, void DDLRenamingMap::setNewTableName(const QualifiedTableName & old_table_name, const QualifiedTableName & new_table_name) { if (old_table_name.table.empty() || old_table_name.database.empty() || new_table_name.table.empty() || new_table_name.database.empty()) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Empty names are not allowed"); + throw Exception(ErrorCodes::WRONG_DDL_RENAMING_SETTINGS, "Empty names are not allowed"); auto it = old_to_new_table_names.find(old_table_name); if ((it != old_to_new_table_names.end())) @@ -321,7 +337,7 @@ void DDLRenamingMap::setNewTableName(const QualifiedTableName & old_table_name, void DDLRenamingMap::setNewDatabaseName(const String & old_database_name, const String & new_database_name) { if (old_database_name.empty() || new_database_name.empty()) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Empty names are not allowed"); + throw Exception(ErrorCodes::WRONG_DDL_RENAMING_SETTINGS, "Empty names are not allowed"); auto it = old_to_new_database_names.find(old_database_name); if ((it != old_to_new_database_names.end())) @@ -351,28 +367,4 @@ QualifiedTableName DDLRenamingMap::getNewTableName(const QualifiedTableName & ol return {getNewDatabaseName(old_table_name.database), old_table_name.table}; } -void DDLRenamingMap::setNewTemporaryTableName(const String & old_table_name, const String & new_table_name) -{ - if (old_table_name.empty() || new_table_name.empty()) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Empty names are not allowed"); - - auto it = old_to_new_temporary_table_names.find(old_table_name); - if ((it != old_to_new_temporary_table_names.end())) - { - if (it->second == new_table_name) - return; - throw Exception(ErrorCodes::WRONG_DDL_RENAMING_SETTINGS, "Wrong renaming: it's specified that temporary table {} should be renamed to {} and to {} at the same time", - backQuoteIfNeed(old_table_name), backQuoteIfNeed(it->second), backQuoteIfNeed(new_table_name)); - } - old_to_new_temporary_table_names[old_table_name] = new_table_name; -} - -const String & DDLRenamingMap::getNewTemporaryTableName(const String & old_table_name) const -{ - auto it = old_to_new_temporary_table_names.find(old_table_name); - if (it != old_to_new_temporary_table_names.end()) - return it->second; - return old_table_name; -} - } diff --git a/src/Databases/DDLRenamingVisitor.h b/src/Databases/DDLRenamingVisitor.h index 9d0f770d105..72b578b9fcb 100644 --- a/src/Databases/DDLRenamingVisitor.h +++ b/src/Databases/DDLRenamingVisitor.h @@ -25,16 +25,13 @@ class DDLRenamingMap public: void setNewTableName(const QualifiedTableName & old_table_name, const QualifiedTableName & new_table_name); void setNewDatabaseName(const String & old_database_name, const String & new_database_name); - void setNewTemporaryTableName(const String & old_table_name, const String & new_table_name); QualifiedTableName getNewTableName(const QualifiedTableName & old_table_name) const; const String & getNewDatabaseName(const String & old_database_name) const; - const String & getNewTemporaryTableName(const String & old_table_name) const; private: std::unordered_map old_to_new_table_names; std::unordered_map old_to_new_database_names; - std::unordered_map old_to_new_temporary_table_names; }; /// Visits ASTCreateQuery and changes names of databases or tables. From aaf7f665498393f0cf051e78e825122bb105bf3a Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 23 Jun 2022 19:45:36 +0200 Subject: [PATCH 417/525] Improve gathering metadata for backup - part 4. --- src/Backups/BackupCoordinationDistributed.cpp | 15 ++- src/Backups/BackupCoordinationDistributed.h | 7 +- src/Backups/BackupCoordinationHelpers.cpp | 95 +++++++++++-------- src/Backups/BackupCoordinationHelpers.h | 10 +- src/Backups/BackupCoordinationLocal.cpp | 8 +- src/Backups/BackupCoordinationLocal.h | 5 +- src/Backups/BackupEntriesCollector.cpp | 93 ++++++++++-------- src/Backups/BackupEntriesCollector.h | 29 +----- src/Backups/IBackupCoordination.h | 9 +- src/Backups/IRestoreCoordination.h | 9 +- .../RestoreCoordinationDistributed.cpp | 15 ++- src/Backups/RestoreCoordinationDistributed.h | 11 +-- src/Backups/RestoreCoordinationLocal.cpp | 8 +- src/Backups/RestoreCoordinationLocal.h | 9 +- src/Backups/RestorerFromBackup.cpp | 94 ++++++++++-------- src/Backups/RestorerFromBackup.h | 29 +----- 16 files changed, 232 insertions(+), 214 deletions(-) diff --git a/src/Backups/BackupCoordinationDistributed.cpp b/src/Backups/BackupCoordinationDistributed.cpp index 945239482fc..77377194012 100644 --- a/src/Backups/BackupCoordinationDistributed.cpp +++ b/src/Backups/BackupCoordinationDistributed.cpp @@ -131,7 +131,7 @@ namespace BackupCoordinationDistributed::BackupCoordinationDistributed(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_) : zookeeper_path(zookeeper_path_) , get_zookeeper(get_zookeeper_) - , stage_sync(zookeeper_path_ + "/stage", get_zookeeper_, &Poco::Logger::get("BackupCoordination")) + , status_sync(zookeeper_path_ + "/status", get_zookeeper_, &Poco::Logger::get("BackupCoordination")) { createRootNodes(); } @@ -157,14 +157,19 @@ void BackupCoordinationDistributed::removeAllNodes() } -void BackupCoordinationDistributed::syncStage(const String & current_host, int new_stage, const Strings & wait_hosts, std::chrono::seconds timeout) +void BackupCoordinationDistributed::setStatus(const String & current_host, const String & new_status) { - stage_sync.syncStage(current_host, new_stage, wait_hosts, timeout); + status_sync.set(current_host, new_status); } -void BackupCoordinationDistributed::syncStageError(const String & current_host, const String & error_message) +void BackupCoordinationDistributed::setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) { - stage_sync.syncStageError(current_host, error_message); + status_sync.setAndWait(current_host, new_status, other_hosts); +} + +void BackupCoordinationDistributed::setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) +{ + status_sync.setAndWaitFor(current_host, new_status, other_hosts, timeout_ms); } diff --git a/src/Backups/BackupCoordinationDistributed.h b/src/Backups/BackupCoordinationDistributed.h index 2872e1f3ae4..03da567bf07 100644 --- a/src/Backups/BackupCoordinationDistributed.h +++ b/src/Backups/BackupCoordinationDistributed.h @@ -14,8 +14,9 @@ public: BackupCoordinationDistributed(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_); ~BackupCoordinationDistributed() override; - void syncStage(const String & current_host, int new_stage, const Strings & wait_hosts, std::chrono::seconds timeout) override; - void syncStageError(const String & current_host, const String & error_message) override; + void setStatus(const String & current_host, const String & new_status) override; + void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; + void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; void addReplicatedPartNames( const String & table_zk_path, @@ -51,7 +52,7 @@ private: const String zookeeper_path; const zkutil::GetZooKeeper get_zookeeper; - BackupCoordinationStageSync stage_sync; + BackupCoordinationStatusSync status_sync; mutable std::mutex mutex; mutable std::optional replicated_part_names; diff --git a/src/Backups/BackupCoordinationHelpers.cpp b/src/Backups/BackupCoordinationHelpers.cpp index 9528f888770..7c77e488119 100644 --- a/src/Backups/BackupCoordinationHelpers.cpp +++ b/src/Backups/BackupCoordinationHelpers.cpp @@ -243,7 +243,7 @@ void BackupCoordinationReplicatedPartNames::preparePartNames() const /// Helps to wait until all hosts come to a specified stage. -BackupCoordinationStageSync::BackupCoordinationStageSync(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_, Poco::Logger * log_) +BackupCoordinationStatusSync::BackupCoordinationStatusSync(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_, Poco::Logger * log_) : zookeeper_path(zookeeper_path_) , get_zookeeper(get_zookeeper_) , log(log_) @@ -251,20 +251,46 @@ BackupCoordinationStageSync::BackupCoordinationStageSync(const String & zookeepe createRootNodes(); } -void BackupCoordinationStageSync::createRootNodes() +void BackupCoordinationStatusSync::createRootNodes() { auto zookeeper = get_zookeeper(); zookeeper->createAncestors(zookeeper_path); zookeeper->createIfNotExists(zookeeper_path, ""); } -void BackupCoordinationStageSync::syncStage(const String & current_host, int new_stage, const Strings & wait_hosts, std::chrono::seconds timeout) +void BackupCoordinationStatusSync::set(const String & current_host, const String & new_status) { - /// Put new stage to ZooKeeper. - auto zookeeper = get_zookeeper(); - zookeeper->createIfNotExists(zookeeper_path + "/" + current_host + "|" + std::to_string(new_stage), ""); + setImpl(current_host, new_status, {}, {}); +} - if (wait_hosts.empty() || ((wait_hosts.size() == 1) && (wait_hosts.front() == current_host))) +void BackupCoordinationStatusSync::setAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) +{ + setImpl(current_host, new_status, other_hosts, {}); +} + +void BackupCoordinationStatusSync::setAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) +{ + setImpl(current_host, new_status, other_hosts, timeout_ms); +} + +void BackupCoordinationStatusSync::setImpl(const String & current_host, const String & new_status, const Strings & other_hosts, const std::optional & timeout_ms) +{ + /// Put new status to ZooKeeper. + auto zookeeper = get_zookeeper(); + + String result_status = new_status; + String message; + std::string_view error_prefix = "error: "; + bool is_error_status = new_status.starts_with(error_prefix); + if (is_error_status) + { + message = new_status.substr(error_prefix.length()); + result_status = "error"; + } + + zookeeper->createIfNotExists(zookeeper_path + "/" + current_host + "|" + result_status, message); + + if (other_hosts.empty() || ((other_hosts.size() == 1) && (other_hosts.front() == current_host)) || is_error_status) return; /// Wait for other hosts. @@ -273,41 +299,35 @@ void BackupCoordinationStageSync::syncStage(const String & current_host, int new std::optional host_with_error; std::optional error_message; - std::map> unready_hosts; - for (const String & host : wait_hosts) - unready_hosts.emplace(host, std::optional{}); + std::map unready_hosts; + for (const String & host : other_hosts) + unready_hosts.emplace(host, ""); /// Process ZooKeeper's nodes and set `all_hosts_ready` or `unready_host` or `error_message`. auto process_zk_nodes = [&](const Strings & zk_nodes) { for (const String & zk_node : zk_nodes) { - if (zk_node == "error") + if (zk_node.starts_with("remove_watch-")) + continue; + + size_t separator_pos = zk_node.find('|'); + if (separator_pos == String::npos) + throw Exception(ErrorCodes::FAILED_TO_SYNC_BACKUP_OR_RESTORE, "Unexpected zk node {}", zookeeper_path + "/" + zk_node); + String host = zk_node.substr(0, separator_pos); + String status = zk_node.substr(separator_pos + 1); + if (status == "error") { - String str = zookeeper->get(zookeeper_path + "/" + zk_node); - size_t separator_pos = str.find('|'); - if (separator_pos == String::npos) - throw Exception(ErrorCodes::FAILED_TO_SYNC_BACKUP_OR_RESTORE, "Unexpected value of zk node {}: {}", zookeeper_path + "/" + zk_node, str); - host_with_error = str.substr(0, separator_pos); - error_message = str.substr(separator_pos + 1); - return; + host_with_error = host; + error_message = zookeeper->get(zookeeper_path + "/" + zk_node); + return; } - else if (!zk_node.starts_with("remove_watch-")) + auto it = unready_hosts.find(host); + if (it != unready_hosts.end()) { - size_t separator_pos = zk_node.find('|'); - if (separator_pos == String::npos) - throw Exception(ErrorCodes::FAILED_TO_SYNC_BACKUP_OR_RESTORE, "Unexpected zk node {}", zookeeper_path + "/" + zk_node); - String host = zk_node.substr(0, separator_pos); - int found_stage = parseFromString(zk_node.substr(separator_pos + 1)); - auto it = unready_hosts.find(host); - if (it != unready_hosts.end()) - { - auto & stage = it->second; - if (!stage || (stage < found_stage)) - stage = found_stage; - if (stage >= new_stage) - unready_hosts.erase(it); - } + it->second = status; + if (status == result_status) + unready_hosts.erase(it); } } }; @@ -324,7 +344,8 @@ void BackupCoordinationStageSync::syncStage(const String & current_host, int new auto watch_triggered = [&] { return !watch_set; }; - bool use_timeout = (timeout.count() >= 0); + bool use_timeout = timeout_ms.has_value(); + std::chrono::milliseconds timeout{timeout_ms.value_or(0)}; std::chrono::steady_clock::time_point start_time = std::chrono::steady_clock::now(); std::chrono::steady_clock::duration elapsed; std::mutex dummy_mutex; @@ -371,10 +392,4 @@ void BackupCoordinationStageSync::syncStage(const String & current_host, int new } } -void BackupCoordinationStageSync::syncStageError(const String & current_host, const String & error_message) -{ - auto zookeeper = get_zookeeper(); - zookeeper->createIfNotExists(zookeeper_path + "/error", current_host + "|" + error_message); -} - } diff --git a/src/Backups/BackupCoordinationHelpers.h b/src/Backups/BackupCoordinationHelpers.h index b0cd0440b98..ea07543ecb8 100644 --- a/src/Backups/BackupCoordinationHelpers.h +++ b/src/Backups/BackupCoordinationHelpers.h @@ -58,16 +58,18 @@ private: /// Helps to wait until all hosts come to a specified stage. -class BackupCoordinationStageSync +class BackupCoordinationStatusSync { public: - BackupCoordinationStageSync(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_, Poco::Logger * log_); + BackupCoordinationStatusSync(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_, Poco::Logger * log_); - void syncStage(const String & current_host, int stage, const Strings & wait_hosts, std::chrono::seconds timeout); - void syncStageError(const String & current_host, const String & error_message); + void set(const String & current_host, const String & new_status); + void setAndWait(const String & current_host, const String & new_status, const Strings & other_hosts); + void setAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms); private: void createRootNodes(); + void setImpl(const String & current_host, const String & new_status, const Strings & other_hosts, const std::optional & timeout_ms); String zookeeper_path; zkutil::GetZooKeeper get_zookeeper; diff --git a/src/Backups/BackupCoordinationLocal.cpp b/src/Backups/BackupCoordinationLocal.cpp index 55a3c671a6e..bace1d800e0 100644 --- a/src/Backups/BackupCoordinationLocal.cpp +++ b/src/Backups/BackupCoordinationLocal.cpp @@ -13,11 +13,15 @@ using FileInfo = IBackupCoordination::FileInfo; BackupCoordinationLocal::BackupCoordinationLocal() = default; BackupCoordinationLocal::~BackupCoordinationLocal() = default; -void BackupCoordinationLocal::syncStage(const String &, int, const Strings &, std::chrono::seconds) +void BackupCoordinationLocal::setStatus(const String &, const String &) { } -void BackupCoordinationLocal::syncStageError(const String &, const String &) +void BackupCoordinationLocal::setStatusAndWait(const String &, const String &, const Strings &) +{ +} + +void BackupCoordinationLocal::setStatusAndWaitFor(const String &, const String &, const Strings &, UInt64) { } diff --git a/src/Backups/BackupCoordinationLocal.h b/src/Backups/BackupCoordinationLocal.h index 6529184c61a..090c5653f04 100644 --- a/src/Backups/BackupCoordinationLocal.h +++ b/src/Backups/BackupCoordinationLocal.h @@ -19,8 +19,9 @@ public: BackupCoordinationLocal(); ~BackupCoordinationLocal() override; - void syncStage(const String & current_host, int stage, const Strings & wait_hosts, std::chrono::seconds timeout) override; - void syncStageError(const String & current_host, const String & error_message) override; + void setStatus(const String & current_host, const String & new_status) override; + void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; + void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; void addReplicatedPartNames(const String & table_zk_path, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) override; diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index feed9be4e92..63f6d75170c 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -29,27 +29,44 @@ namespace ErrorCodes namespace { - String tableNameWithTypeToString(const String & database_name, const String & table_name, bool first_char_uppercase) - { - if (database_name == DatabaseCatalog::TEMPORARY_DATABASE) - return fmt::format("{}emporary table {}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(table_name)); - else - return fmt::format("{}able {}.{}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(database_name), backQuoteIfNeed(table_name)); - } -} + /// Initial status. + constexpr const char kPreparingStatus[] = "preparing"; -std::string_view BackupEntriesCollector::toString(Stage stage) -{ - switch (stage) + /// Finding all tables and databases which we're going to put to the backup and collecting their metadata. + constexpr const char kGatheringMetadataStatus[] = "gathering metadata"; + + /// Making temporary hard links and prepare backup entries. + constexpr const char kExtractingDataFromTablesStatus[] = "extracting data from tables"; + + /// Running special tasks for replicated tables which can also prepare some backup entries. + constexpr const char kRunningPostTasksStatus[] = "running post-tasks"; + + /// Writing backup entries to the backup and removing temporary hard links. + constexpr const char kWritingBackupStatus[] = "writing backup"; + + /// Prefix for error statuses. + constexpr const char kErrorStatus[] = "error: "; + + /// Uppercases the first character of a passed string. + String toUpperFirst(const String & str) { - case Stage::kPreparing: return "Preparing"; - case Stage::kFindingTables: return "Finding tables"; - case Stage::kExtractingDataFromTables: return "Extracting data from tables"; - case Stage::kRunningPostTasks: return "Running post tasks"; - case Stage::kWritingBackup: return "Writing backup"; - case Stage::kError: return "Error"; + String res = str; + res[0] = std::toupper(res[0]); + return res; + } + + /// Outputs "table " or "temporary table " + String tableNameWithTypeToString(const String & database_name, const String & table_name, bool first_upper) + { + String str; + if (database_name == DatabaseCatalog::TEMPORARY_DATABASE) + str = fmt::format("temporary table {}", backQuoteIfNeed(table_name)); + else + str = fmt::format("table {}.{}", backQuoteIfNeed(database_name), backQuoteIfNeed(table_name)); + if (first_upper) + str[0] = std::toupper(str[0]); + return str; } - throw Exception(ErrorCodes::LOGICAL_ERROR, "Unknown backup stage: {}", static_cast(stage)); } @@ -65,6 +82,7 @@ BackupEntriesCollector::BackupEntriesCollector( , context(context_) , timeout(timeout_) , log(&Poco::Logger::get("BackupEntriesCollector")) + , current_status(kPreparingStatus) { } @@ -75,7 +93,7 @@ BackupEntries BackupEntriesCollector::getBackupEntries() try { /// getBackupEntries() must not be called multiple times. - if (current_stage != Stage::kPreparing) + if (current_status != kPreparingStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Already making backup entries"); /// Calculate the root path for collecting backup entries, it's either empty or has the format "shards//replicas//". @@ -85,7 +103,7 @@ BackupEntries BackupEntriesCollector::getBackupEntries() renaming_map = makeRenamingMapFromBackupQuery(backup_query_elements); /// Find databases and tables which we're going to put to the backup. - setStage(Stage::kFindingTables); + setStatus(kGatheringMetadataStatus); gatherMetadataAndCheckConsistency(); /// Make backup entries for the definitions of the found databases. @@ -95,15 +113,15 @@ BackupEntries BackupEntriesCollector::getBackupEntries() makeBackupEntriesForTablesDefs(); /// Make backup entries for the data of the found tables. - setStage(Stage::kExtractingDataFromTables); + setStatus(kExtractingDataFromTablesStatus); makeBackupEntriesForTablesData(); /// Run all the tasks added with addPostCollectingTask(). - setStage(Stage::kRunningPostTasks); + setStatus(kRunningPostTasksStatus); runPostTasks(); /// No more backup entries or tasks are allowed after this point. - setStage(Stage::kWritingBackup); + setStatus(kWritingBackupStatus); return std::move(backup_entries); } @@ -111,7 +129,7 @@ BackupEntries BackupEntriesCollector::getBackupEntries() { try { - setStage(Stage::kError, getCurrentExceptionMessage(false)); + setStatus(kErrorStatus + getCurrentExceptionMessage(false)); } catch (...) { @@ -120,24 +138,21 @@ BackupEntries BackupEntriesCollector::getBackupEntries() } } -void BackupEntriesCollector::setStage(Stage new_stage, const String & error_message) +void BackupEntriesCollector::setStatus(const String & new_status) { - if (new_stage == Stage::kError) - LOG_ERROR(log, "{} failed with error: {}", toString(current_stage), error_message); - else - LOG_TRACE(log, "{}", toString(new_stage)); - - current_stage = new_stage; - - if (new_stage == Stage::kError) + bool is_error_status = new_status.starts_with(kErrorStatus); + if (is_error_status) { - backup_coordination->syncStageError(backup_settings.host_id, error_message); + LOG_ERROR(log, "{} failed with {}", toUpperFirst(current_status), new_status); + backup_coordination->setStatus(backup_settings.host_id, new_status); } else { + LOG_TRACE(log, "{}", toUpperFirst(new_status)); + current_status = new_status; auto all_hosts = BackupSettings::Util::filterHostIDs(backup_settings.cluster_host_ids, backup_settings.shard_num, backup_settings.replica_num); - backup_coordination->syncStage(backup_settings.host_id, static_cast(new_stage), all_hosts, timeout); + backup_coordination->setStatusAndWait(backup_settings.host_id, new_status, all_hosts); } } @@ -575,28 +590,28 @@ void BackupEntriesCollector::makeBackupEntriesForTablesData() void BackupEntriesCollector::addBackupEntry(const String & file_name, BackupEntryPtr backup_entry) { - if (current_stage == Stage::kWritingBackup) + if (current_status == kWritingBackupStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Adding backup entries is not allowed"); backup_entries.emplace_back(file_name, backup_entry); } void BackupEntriesCollector::addBackupEntries(const BackupEntries & backup_entries_) { - if (current_stage == Stage::kWritingBackup) + if (current_status == kWritingBackupStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Adding backup entries is not allowed"); insertAtEnd(backup_entries, backup_entries_); } void BackupEntriesCollector::addBackupEntries(BackupEntries && backup_entries_) { - if (current_stage == Stage::kWritingBackup) + if (current_status == kWritingBackupStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Adding backup entries is not allowed"); insertAtEnd(backup_entries, std::move(backup_entries_)); } void BackupEntriesCollector::addPostTask(std::function task) { - if (current_stage == Stage::kWritingBackup) + if (current_status == kWritingBackupStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Adding post tasks is not allowed"); post_tasks.push(std::move(task)); } diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 5e37e268fc4..4afca3f4cf9 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -51,35 +51,10 @@ public: /// 1) we need to join (in a backup) the data of replicated tables gathered on different hosts. void addPostTask(std::function task); - /// Writing a backup includes a few stages: - enum class Stage - { - /// Initial stage. - kPreparing, - - /// Finding all tables and databases which we're going to put to the backup. - kFindingTables, - - /// Making temporary hard links and prepare backup entries. - kExtractingDataFromTables, - - /// Running special tasks for replicated databases or tables which can also prepare some backup entries. - kRunningPostTasks, - - /// Writing backup entries to the backup and removing temporary hard links. - kWritingBackup, - - /// An error happens during any of the stages above, the backup won't be written. - kError, - }; - static std::string_view toString(Stage stage); - /// Throws an exception that a specified table engine doesn't support partitions. [[noreturn]] static void throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine); private: - void setStage(Stage new_stage, const String & error_message = {}); - void calculateRootPathInBackup(); void gatherMetadataAndCheckConsistency(); @@ -105,6 +80,8 @@ private: void makeBackupEntriesForTablesData(); void runPostTasks(); + void setStatus(const String & new_status); + const ASTBackupQuery::Elements backup_query_elements; const BackupSettings backup_settings; std::shared_ptr backup_coordination; @@ -112,7 +89,7 @@ private: std::chrono::seconds timeout; Poco::Logger * log; - Stage current_stage = Stage::kPreparing; + String current_status; std::filesystem::path root_path_in_backup; DDLRenamingMap renaming_map; diff --git a/src/Backups/IBackupCoordination.h b/src/Backups/IBackupCoordination.h index 92b7139ed5f..58ed45e810d 100644 --- a/src/Backups/IBackupCoordination.h +++ b/src/Backups/IBackupCoordination.h @@ -13,11 +13,10 @@ class IBackupCoordination public: virtual ~IBackupCoordination() = default; - /// Sets the current stage and waits for other hosts to come to this stage too. - virtual void syncStage(const String & current_host, int stage, const Strings & wait_hosts, std::chrono::seconds timeout) = 0; - - /// Sets that the current host encountered an error, so other hosts should know that and stop waiting in syncStage(). - virtual void syncStageError(const String & current_host, const String & error_message) = 0; + /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. + virtual void setStatus(const String & current_host, const String & new_status) = 0; + virtual void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) = 0; + virtual void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) = 0; struct PartNameAndChecksum { diff --git a/src/Backups/IRestoreCoordination.h b/src/Backups/IRestoreCoordination.h index fd9a67e1b96..b2ef32c2588 100644 --- a/src/Backups/IRestoreCoordination.h +++ b/src/Backups/IRestoreCoordination.h @@ -13,11 +13,10 @@ class IRestoreCoordination public: virtual ~IRestoreCoordination() = default; - /// Sets the current stage and waits for other hosts to come to this stage too. - virtual void syncStage(const String & current_host, int stage, const Strings & wait_hosts, std::chrono::seconds timeout) = 0; - - /// Sets that the current host encountered an error, so other hosts should know that and stop waiting in syncStage(). - virtual void syncStageError(const String & current_host, const String & error_message) = 0; + /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. + virtual void setStatus(const String & current_host, const String & new_status) = 0; + virtual void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) = 0; + virtual void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) = 0; /// Starts creating a table in a replicated database. Returns false if there is another host which is already creating this table. virtual bool acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) = 0; diff --git a/src/Backups/RestoreCoordinationDistributed.cpp b/src/Backups/RestoreCoordinationDistributed.cpp index e131ce7fe24..0b21f7367d8 100644 --- a/src/Backups/RestoreCoordinationDistributed.cpp +++ b/src/Backups/RestoreCoordinationDistributed.cpp @@ -9,7 +9,7 @@ namespace DB RestoreCoordinationDistributed::RestoreCoordinationDistributed(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_) : zookeeper_path(zookeeper_path_) , get_zookeeper(get_zookeeper_) - , stage_sync(zookeeper_path_ + "/stage", get_zookeeper_, &Poco::Logger::get("RestoreCoordination")) + , status_sync(zookeeper_path_ + "/status", get_zookeeper_, &Poco::Logger::get("RestoreCoordination")) { createRootNodes(); } @@ -26,14 +26,19 @@ void RestoreCoordinationDistributed::createRootNodes() zookeeper->createIfNotExists(zookeeper_path + "/repl_access_storages_acquired", ""); } -void RestoreCoordinationDistributed::syncStage(const String & current_host, int new_stage, const Strings & wait_hosts, std::chrono::seconds timeout) +void RestoreCoordinationDistributed::setStatus(const String & current_host, const String & new_status) { - stage_sync.syncStage(current_host, new_stage, wait_hosts, timeout); + status_sync.set(current_host, new_status); } -void RestoreCoordinationDistributed::syncStageError(const String & current_host, const String & error_message) +void RestoreCoordinationDistributed::setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) { - stage_sync.syncStageError(current_host, error_message); + status_sync.setAndWait(current_host, new_status, other_hosts); +} + +void RestoreCoordinationDistributed::setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) +{ + status_sync.setAndWaitFor(current_host, new_status, other_hosts, timeout_ms); } bool RestoreCoordinationDistributed::acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) diff --git a/src/Backups/RestoreCoordinationDistributed.h b/src/Backups/RestoreCoordinationDistributed.h index 0ea5db3f062..ecc8910bb9e 100644 --- a/src/Backups/RestoreCoordinationDistributed.h +++ b/src/Backups/RestoreCoordinationDistributed.h @@ -14,11 +14,10 @@ public: RestoreCoordinationDistributed(const String & zookeeper_path, zkutil::GetZooKeeper get_zookeeper); ~RestoreCoordinationDistributed() override; - /// Sets the current stage and waits for other hosts to come to this stage too. - void syncStage(const String & current_host, int new_stage, const Strings & wait_hosts, std::chrono::seconds timeout) override; - - /// Sets that the current host encountered an error, so other hosts should know that and stop waiting in syncStage(). - void syncStageError(const String & current_host, const String & error_message) override; + /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. + void setStatus(const String & current_host, const String & new_status) override; + void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; + void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; /// Starts creating a table in a replicated database. Returns false if there is another host which is already creating this table. bool acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) override; @@ -42,7 +41,7 @@ private: const String zookeeper_path; const zkutil::GetZooKeeper get_zookeeper; - BackupCoordinationStageSync stage_sync; + BackupCoordinationStatusSync status_sync; }; } diff --git a/src/Backups/RestoreCoordinationLocal.cpp b/src/Backups/RestoreCoordinationLocal.cpp index 9cecc3f90c9..e654ace454d 100644 --- a/src/Backups/RestoreCoordinationLocal.cpp +++ b/src/Backups/RestoreCoordinationLocal.cpp @@ -7,11 +7,15 @@ namespace DB RestoreCoordinationLocal::RestoreCoordinationLocal() = default; RestoreCoordinationLocal::~RestoreCoordinationLocal() = default; -void RestoreCoordinationLocal::syncStage(const String &, int, const Strings &, std::chrono::seconds) +void RestoreCoordinationLocal::setStatus(const String &, const String &) { } -void RestoreCoordinationLocal::syncStageError(const String &, const String &) +void RestoreCoordinationLocal::setStatusAndWait(const String &, const String &, const Strings &) +{ +} + +void RestoreCoordinationLocal::setStatusAndWaitFor(const String &, const String &, const Strings &, UInt64) { } diff --git a/src/Backups/RestoreCoordinationLocal.h b/src/Backups/RestoreCoordinationLocal.h index b73f345df47..f38e1f94b9c 100644 --- a/src/Backups/RestoreCoordinationLocal.h +++ b/src/Backups/RestoreCoordinationLocal.h @@ -17,11 +17,10 @@ public: RestoreCoordinationLocal(); ~RestoreCoordinationLocal() override; - /// Sets the current stage and waits for other hosts to come to this stage too. - void syncStage(const String & current_host, int stage, const Strings & wait_hosts, std::chrono::seconds timeout) override; - - /// Sets that the current host encountered an error, so other hosts should know that and stop waiting in syncStage(). - void syncStageError(const String & current_host, const String & error_message) override; + /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. + void setStatus(const String & current_host, const String & new_status) override; + void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; + void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; /// Starts creating a table in a replicated database. Returns false if there is another host which is already creating this table. bool acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) override; diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 74d4de631e3..bbe11525c58 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -39,12 +39,43 @@ namespace ErrorCodes namespace { - String tableNameWithTypeToString(const String & database_name, const String & table_name, bool first_char_uppercase) + /// Initial status. + constexpr const char kPreparingStatus[] = "preparing"; + + /// Finding databases and tables in the backup which we're going to restore. + constexpr const char kFindingTablesInBackupStatus[] = "finding tables in backup"; + + /// Creating databases or finding them and checking their definitions. + constexpr const char kCreatingDatabasesStatus[] = "creating databases"; + + /// Creating tables or finding them and checking their definition. + constexpr const char kCreatingTablesStatus[] = "creating tables"; + + /// Inserting restored data to tables. + constexpr const char kInsertingDataToTablesStatus[] = "inserting data to tables"; + + /// Prefix for error statuses. + constexpr const char kErrorStatus[] = "error: "; + + /// Uppercases the first character of a passed string. + String toUpperFirst(const String & str) { + String res = str; + res[0] = std::toupper(res[0]); + return res; + } + + /// Outputs "table " or "temporary table " + String tableNameWithTypeToString(const String & database_name, const String & table_name, bool first_upper) + { + String str; if (database_name == DatabaseCatalog::TEMPORARY_DATABASE) - return fmt::format("{}emporary table {}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(table_name)); + str = fmt::format("temporary table {}", backQuoteIfNeed(table_name)); else - return fmt::format("{}able {}.{}", first_char_uppercase ? 'T' : 't', backQuoteIfNeed(database_name), backQuoteIfNeed(table_name)); + str = fmt::format("table {}.{}", backQuoteIfNeed(database_name), backQuoteIfNeed(table_name)); + if (first_upper) + str[0] = std::toupper(str[0]); + return str; } String tryGetTableEngine(const IAST & ast) @@ -70,20 +101,6 @@ namespace } } -std::string_view RestorerFromBackup::toString(Stage stage) -{ - switch (stage) - { - case Stage::kPreparing: return "Preparing"; - case Stage::kFindingTablesInBackup: return "Finding tables in backup"; - case Stage::kCreatingDatabases: return "Creating databases"; - case Stage::kCreatingTables: return "Creating tables"; - case Stage::kInsertingDataToTables: return "Inserting data to tables"; - case Stage::kError: return "Error"; - } - throw Exception(ErrorCodes::LOGICAL_ERROR, "Unknown restore stage: {}", static_cast(stage)); -} - RestorerFromBackup::RestorerFromBackup( const ASTBackupQuery::Elements & restore_query_elements_, @@ -100,6 +117,7 @@ RestorerFromBackup::RestorerFromBackup( , timeout(timeout_) , create_table_timeout_ms(context->getConfigRef().getUInt64("backups.create_table_timeout", 300000)) , log(&Poco::Logger::get("RestorerFromBackup")) + , current_status(kPreparingStatus) { } @@ -120,7 +138,7 @@ void RestorerFromBackup::run(bool only_check_access) try { /// restoreMetadata() must not be called multiple times. - if (current_stage != Stage::kPreparing) + if (current_status != kPreparingStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Already restoring"); /// Calculate the root path in the backup for restoring, it's either empty or has the format "shards//replicas//". @@ -130,7 +148,7 @@ void RestorerFromBackup::run(bool only_check_access) renaming_map = makeRenamingMapFromBackupQuery(restore_query_elements); /// Find all the databases and tables which we will read from the backup. - setStage(Stage::kFindingTablesInBackup); + setStatus(kFindingTablesInBackupStatus); findDatabasesAndTablesInBackup(); /// Check access rights. @@ -140,23 +158,23 @@ void RestorerFromBackup::run(bool only_check_access) return; /// Create databases using the create queries read from the backup. - setStage(Stage::kCreatingDatabases); + setStatus(kCreatingDatabasesStatus); createDatabases(); /// Create tables using the create queries read from the backup. - setStage(Stage::kCreatingTables); + setStatus(kCreatingTablesStatus); createTables(); /// All what's left is to insert data to tables. /// No more data restoring tasks are allowed after this point. - setStage(Stage::kInsertingDataToTables); + setStatus(kInsertingDataToTablesStatus); } catch (...) { try { /// Other hosts should know that we've encountered an error. - setStage(Stage::kError, getCurrentExceptionMessage(false)); + setStatus(kErrorStatus + getCurrentExceptionMessage(false)); } catch (...) { @@ -168,7 +186,7 @@ void RestorerFromBackup::run(bool only_check_access) RestorerFromBackup::DataRestoreTasks RestorerFromBackup::getDataRestoreTasks() { - if (current_stage != Stage::kInsertingDataToTables) + if (current_status != kInsertingDataToTablesStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Metadata wasn't restored"); if (data_restore_tasks.empty() && !access_restore_task) @@ -197,27 +215,23 @@ RestorerFromBackup::DataRestoreTasks RestorerFromBackup::getDataRestoreTasks() return res_tasks; } -void RestorerFromBackup::setStage(Stage new_stage, const String & error_message) +void RestorerFromBackup::setStatus(const String & new_status) { - if (new_stage == Stage::kError) - LOG_ERROR(log, "{} failed with error: {}", toString(current_stage), error_message); - else - LOG_TRACE(log, "{}", toString(new_stage)); - - current_stage = new_stage; - - if (!restore_coordination) - return; - - if (new_stage == Stage::kError) + bool is_error_status = new_status.starts_with(kErrorStatus); + if (is_error_status) { - restore_coordination->syncStageError(restore_settings.host_id, error_message); + LOG_ERROR(log, "{} failed with {}", toUpperFirst(current_status), new_status); + if (restore_coordination) + restore_coordination->setStatus(restore_settings.host_id, new_status); } else { + LOG_TRACE(log, "{}", toUpperFirst(new_status)); + current_status = new_status; auto all_hosts = BackupSettings::Util::filterHostIDs(restore_settings.cluster_host_ids, restore_settings.shard_num, restore_settings.replica_num); - restore_coordination->syncStage(restore_settings.host_id, static_cast(new_stage), all_hosts, timeout); + if (restore_coordination) + restore_coordination->setStatusAndWait(restore_settings.host_id, new_status, all_hosts); } } @@ -767,14 +781,14 @@ std::vector RestorerFromBackup::findTablesWithoutDependencie void RestorerFromBackup::addDataRestoreTask(DataRestoreTask && new_task) { - if (current_stage == Stage::kInsertingDataToTables) + if (current_status == kInsertingDataToTablesStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Adding data-restoring tasks is not allowed"); data_restore_tasks.push_back(std::move(new_task)); } void RestorerFromBackup::addDataRestoreTasks(DataRestoreTasks && new_tasks) { - if (current_stage == Stage::kInsertingDataToTables) + if (current_status == kInsertingDataToTablesStatus) throw Exception(ErrorCodes::LOGICAL_ERROR, "Adding data-restoring tasks is not allowed"); insertAtEnd(data_restore_tasks, std::move(new_tasks)); } diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index 3bdbafe844c..07258837aab 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -57,29 +57,6 @@ public: /// Checks that a specified path is already registered to be used for restoring access control. void checkPathInBackupIsRegisteredToRestoreAccess(const String & path); - /// Reading a backup includes a few stages: - enum class Stage - { - /// Initial stage. - kPreparing, - - /// Finding databases and tables in the backup which we're going to restore. - kFindingTablesInBackup, - - /// Creating databases or finding them and checking their definitions. - kCreatingDatabases, - - /// Creating tables or finding them and checking their definition. - kCreatingTables, - - /// Inserting restored data to tables. - kInsertingDataToTables, - - /// An error happens during any of the stages above, the backup is not restored properly. - kError = -1, - }; - static std::string_view toString(Stage stage); - /// Throws an exception that a specified table engine doesn't support partitions. [[noreturn]] static void throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine); @@ -96,12 +73,12 @@ private: UInt64 create_table_timeout_ms; Poco::Logger * log; - Stage current_stage = Stage::kPreparing; + String current_status; std::vector root_paths_in_backup; DDLRenamingMap renaming_map; void run(bool only_check_access); - void setStage(Stage new_stage, const String & error_message = {}); + void findRootPathsInBackup(); void findDatabasesAndTablesInBackup(); @@ -114,6 +91,8 @@ private: void createDatabases(); void createTables(); + void setStatus(const String & new_status); + struct DatabaseInfo { ASTPtr create_database_query; From 6ca400fd89ef5e5bbaf067a2b013a58b0fcf7039 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 23 Jun 2022 20:49:44 +0200 Subject: [PATCH 418/525] Improve gathering metadata for backup - part 5. --- src/Backups/BackupCoordinationDistributed.cpp | 12 +- src/Backups/BackupCoordinationDistributed.h | 6 +- src/Backups/BackupCoordinationHelpers.cpp | 61 +++-- src/Backups/BackupCoordinationHelpers.h | 10 +- src/Backups/BackupCoordinationLocal.cpp | 8 +- src/Backups/BackupCoordinationLocal.h | 6 +- src/Backups/BackupEntriesCollector.cpp | 210 ++++++++++++------ src/Backups/BackupEntriesCollector.h | 29 +-- src/Backups/BackupsWorker.cpp | 15 +- src/Backups/IBackupCoordination.h | 6 +- src/Backups/IRestoreCoordination.h | 6 +- .../RestoreCoordinationDistributed.cpp | 12 +- src/Backups/RestoreCoordinationDistributed.h | 6 +- src/Backups/RestoreCoordinationLocal.cpp | 8 +- src/Backups/RestoreCoordinationLocal.h | 6 +- src/Backups/RestorerFromBackup.cpp | 134 +++++------ src/Backups/RestorerFromBackup.h | 34 +-- 17 files changed, 317 insertions(+), 252 deletions(-) diff --git a/src/Backups/BackupCoordinationDistributed.cpp b/src/Backups/BackupCoordinationDistributed.cpp index 77377194012..9612b62dcdb 100644 --- a/src/Backups/BackupCoordinationDistributed.cpp +++ b/src/Backups/BackupCoordinationDistributed.cpp @@ -157,19 +157,19 @@ void BackupCoordinationDistributed::removeAllNodes() } -void BackupCoordinationDistributed::setStatus(const String & current_host, const String & new_status) +void BackupCoordinationDistributed::setStatus(const String & current_host, const String & new_status, const String & message) { - status_sync.set(current_host, new_status); + status_sync.set(current_host, new_status, message); } -void BackupCoordinationDistributed::setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) +Strings BackupCoordinationDistributed::setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) { - status_sync.setAndWait(current_host, new_status, other_hosts); + return status_sync.setAndWait(current_host, new_status, message, all_hosts); } -void BackupCoordinationDistributed::setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) +Strings BackupCoordinationDistributed::setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) { - status_sync.setAndWaitFor(current_host, new_status, other_hosts, timeout_ms); + return status_sync.setAndWaitFor(current_host, new_status, message, all_hosts, timeout_ms); } diff --git a/src/Backups/BackupCoordinationDistributed.h b/src/Backups/BackupCoordinationDistributed.h index 03da567bf07..84cd4b3dddb 100644 --- a/src/Backups/BackupCoordinationDistributed.h +++ b/src/Backups/BackupCoordinationDistributed.h @@ -14,9 +14,9 @@ public: BackupCoordinationDistributed(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_); ~BackupCoordinationDistributed() override; - void setStatus(const String & current_host, const String & new_status) override; - void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; - void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; + void setStatus(const String & current_host, const String & new_status, const String & message) override; + Strings setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) override; + Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) override; void addReplicatedPartNames( const String & table_zk_path, diff --git a/src/Backups/BackupCoordinationHelpers.cpp b/src/Backups/BackupCoordinationHelpers.cpp index 7c77e488119..d86e8cff52c 100644 --- a/src/Backups/BackupCoordinationHelpers.cpp +++ b/src/Backups/BackupCoordinationHelpers.cpp @@ -258,51 +258,45 @@ void BackupCoordinationStatusSync::createRootNodes() zookeeper->createIfNotExists(zookeeper_path, ""); } -void BackupCoordinationStatusSync::set(const String & current_host, const String & new_status) +void BackupCoordinationStatusSync::set(const String & current_host, const String & new_status, const String & message) { - setImpl(current_host, new_status, {}, {}); + setImpl(current_host, new_status, message, {}, {}); } -void BackupCoordinationStatusSync::setAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) +Strings BackupCoordinationStatusSync::setAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) { - setImpl(current_host, new_status, other_hosts, {}); + return setImpl(current_host, new_status, message, all_hosts, {}); } -void BackupCoordinationStatusSync::setAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) +Strings BackupCoordinationStatusSync::setAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) { - setImpl(current_host, new_status, other_hosts, timeout_ms); + return setImpl(current_host, new_status, message, all_hosts, timeout_ms); } -void BackupCoordinationStatusSync::setImpl(const String & current_host, const String & new_status, const Strings & other_hosts, const std::optional & timeout_ms) +Strings BackupCoordinationStatusSync::setImpl(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, const std::optional & timeout_ms) { - /// Put new status to ZooKeeper. + /// Put new status to ZooKeeper. auto zookeeper = get_zookeeper(); + zookeeper->createIfNotExists(zookeeper_path + "/" + current_host + "|" + new_status, message); - String result_status = new_status; - String message; - std::string_view error_prefix = "error: "; - bool is_error_status = new_status.starts_with(error_prefix); - if (is_error_status) - { - message = new_status.substr(error_prefix.length()); - result_status = "error"; - } - - zookeeper->createIfNotExists(zookeeper_path + "/" + current_host + "|" + result_status, message); - - if (other_hosts.empty() || ((other_hosts.size() == 1) && (other_hosts.front() == current_host)) || is_error_status) - return; + if (all_hosts.empty() || (new_status == kErrorStatus)) + return {}; + if ((all_hosts.size() == 1) && (all_hosts.front() == current_host)) + return {message}; + /// Wait for other hosts. - /// Current stages of all hosts. + Strings ready_hosts_results; + ready_hosts_results.resize(all_hosts.size()); + + std::map /* index in `ready_hosts_results` */> unready_hosts; + for (size_t i = 0; i != all_hosts.size(); ++i) + unready_hosts[all_hosts[i]].push_back(i); + std::optional host_with_error; std::optional error_message; - std::map unready_hosts; - for (const String & host : other_hosts) - unready_hosts.emplace(host, ""); - /// Process ZooKeeper's nodes and set `all_hosts_ready` or `unready_host` or `error_message`. auto process_zk_nodes = [&](const Strings & zk_nodes) { @@ -316,18 +310,19 @@ void BackupCoordinationStatusSync::setImpl(const String & current_host, const St throw Exception(ErrorCodes::FAILED_TO_SYNC_BACKUP_OR_RESTORE, "Unexpected zk node {}", zookeeper_path + "/" + zk_node); String host = zk_node.substr(0, separator_pos); String status = zk_node.substr(separator_pos + 1); - if (status == "error") + if (status == kErrorStatus) { host_with_error = host; error_message = zookeeper->get(zookeeper_path + "/" + zk_node); return; } auto it = unready_hosts.find(host); - if (it != unready_hosts.end()) + if ((it != unready_hosts.end()) && (status == new_status)) { - it->second = status; - if (status == result_status) - unready_hosts.erase(it); + String result = zookeeper->get(zookeeper_path + "/" + zk_node); + for (size_t i : it->second) + ready_hosts_results[i] = result; + unready_hosts.erase(it); } } }; @@ -390,6 +385,8 @@ void BackupCoordinationStatusSync::setImpl(const String & current_host, const St unready_hosts.begin()->first, to_string(elapsed)); } + + return ready_hosts_results; } } diff --git a/src/Backups/BackupCoordinationHelpers.h b/src/Backups/BackupCoordinationHelpers.h index ea07543ecb8..7d343edd3d0 100644 --- a/src/Backups/BackupCoordinationHelpers.h +++ b/src/Backups/BackupCoordinationHelpers.h @@ -63,13 +63,15 @@ class BackupCoordinationStatusSync public: BackupCoordinationStatusSync(const String & zookeeper_path_, zkutil::GetZooKeeper get_zookeeper_, Poco::Logger * log_); - void set(const String & current_host, const String & new_status); - void setAndWait(const String & current_host, const String & new_status, const Strings & other_hosts); - void setAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms); + void set(const String & current_host, const String & new_status, const String & message); + Strings setAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts); + Strings setAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms); + + static constexpr const char * kErrorStatus = "error"; private: void createRootNodes(); - void setImpl(const String & current_host, const String & new_status, const Strings & other_hosts, const std::optional & timeout_ms); + Strings setImpl(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, const std::optional & timeout_ms); String zookeeper_path; zkutil::GetZooKeeper get_zookeeper; diff --git a/src/Backups/BackupCoordinationLocal.cpp b/src/Backups/BackupCoordinationLocal.cpp index bace1d800e0..6ff9800797e 100644 --- a/src/Backups/BackupCoordinationLocal.cpp +++ b/src/Backups/BackupCoordinationLocal.cpp @@ -13,16 +13,18 @@ using FileInfo = IBackupCoordination::FileInfo; BackupCoordinationLocal::BackupCoordinationLocal() = default; BackupCoordinationLocal::~BackupCoordinationLocal() = default; -void BackupCoordinationLocal::setStatus(const String &, const String &) +void BackupCoordinationLocal::setStatus(const String &, const String &, const String &) { } -void BackupCoordinationLocal::setStatusAndWait(const String &, const String &, const Strings &) +Strings BackupCoordinationLocal::setStatusAndWait(const String &, const String &, const String &, const Strings &) { + return {}; } -void BackupCoordinationLocal::setStatusAndWaitFor(const String &, const String &, const Strings &, UInt64) +Strings BackupCoordinationLocal::setStatusAndWaitFor(const String &, const String &, const String &, const Strings &, UInt64) { + return {}; } void BackupCoordinationLocal::addReplicatedPartNames(const String & table_zk_path, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) diff --git a/src/Backups/BackupCoordinationLocal.h b/src/Backups/BackupCoordinationLocal.h index 090c5653f04..7fdd88d37cb 100644 --- a/src/Backups/BackupCoordinationLocal.h +++ b/src/Backups/BackupCoordinationLocal.h @@ -19,9 +19,9 @@ public: BackupCoordinationLocal(); ~BackupCoordinationLocal() override; - void setStatus(const String & current_host, const String & new_status) override; - void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; - void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; + void setStatus(const String & current_host, const String & new_status, const String & message) override; + Strings setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) override; + Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) override; void addReplicatedPartNames(const String & table_zk_path, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) override; diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 63f6d75170c..1ba94552589 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -9,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -29,23 +31,20 @@ namespace ErrorCodes namespace { - /// Initial status. - constexpr const char kPreparingStatus[] = "preparing"; - /// Finding all tables and databases which we're going to put to the backup and collecting their metadata. - constexpr const char kGatheringMetadataStatus[] = "gathering metadata"; + constexpr const char * kGatheringMetadataStatus = "gathering metadata"; /// Making temporary hard links and prepare backup entries. - constexpr const char kExtractingDataFromTablesStatus[] = "extracting data from tables"; + constexpr const char * kExtractingDataFromTablesStatus = "extracting data from tables"; /// Running special tasks for replicated tables which can also prepare some backup entries. - constexpr const char kRunningPostTasksStatus[] = "running post-tasks"; + constexpr const char * kRunningPostTasksStatus = "running post-tasks"; /// Writing backup entries to the backup and removing temporary hard links. - constexpr const char kWritingBackupStatus[] = "writing backup"; + constexpr const char * kWritingBackupStatus = "writing backup"; - /// Prefix for error statuses. - constexpr const char kErrorStatus[] = "error: "; + /// Error status. + constexpr const char * kErrorStatus = BackupCoordinationStatusSync::kErrorStatus; /// Uppercases the first character of a passed string. String toUpperFirst(const String & str) @@ -67,6 +66,19 @@ namespace str[0] = std::toupper(str[0]); return str; } + + /// How long we should sleep after finding an inconsistency error. + std::chrono::milliseconds getSleepTimeAfterInconsistencyError(size_t pass) + { + size_t ms; + if (pass == 1) /* pass is 1-based */ + ms = 0; + else if ((pass % 10) != 1) + ms = 0; + else + ms = 1000; + return std::chrono::milliseconds{ms}; + } } @@ -74,36 +86,37 @@ BackupEntriesCollector::BackupEntriesCollector( const ASTBackupQuery::Elements & backup_query_elements_, const BackupSettings & backup_settings_, std::shared_ptr backup_coordination_, - const ContextPtr & context_, - std::chrono::seconds timeout_) + const ContextPtr & context_) : backup_query_elements(backup_query_elements_) , backup_settings(backup_settings_) , backup_coordination(backup_coordination_) , context(context_) - , timeout(timeout_) + , consistent_metadata_snapshot_timeout(context->getConfigRef().getUInt64("backups.consistent_metadata_snapshot_timeout", 300000)) , log(&Poco::Logger::get("BackupEntriesCollector")) - , current_status(kPreparingStatus) { } BackupEntriesCollector::~BackupEntriesCollector() = default; -BackupEntries BackupEntriesCollector::getBackupEntries() +BackupEntries BackupEntriesCollector::run() { try { - /// getBackupEntries() must not be called multiple times. - if (current_status != kPreparingStatus) + /// run() can be called onle once. + if (!current_status.empty()) throw Exception(ErrorCodes::LOGICAL_ERROR, "Already making backup entries"); - /// Calculate the root path for collecting backup entries, it's either empty or has the format "shards//replicas//". - calculateRootPathInBackup(); + /// Find other hosts working along with us to execute this ON CLUSTER query. + all_hosts + = BackupSettings::Util::filterHostIDs(backup_settings.cluster_host_ids, backup_settings.shard_num, backup_settings.replica_num); /// Do renaming in the create queries according to the renaming config. renaming_map = makeRenamingMapFromBackupQuery(backup_query_elements); + /// Calculate the root path for collecting backup entries, it's either empty or has the format "shards//replicas//". + calculateRootPathInBackup(); + /// Find databases and tables which we're going to put to the backup. - setStatus(kGatheringMetadataStatus); gatherMetadataAndCheckConsistency(); /// Make backup entries for the definitions of the found databases. @@ -129,7 +142,7 @@ BackupEntries BackupEntriesCollector::getBackupEntries() { try { - setStatus(kErrorStatus + getCurrentExceptionMessage(false)); + setStatus(kErrorStatus, getCurrentExceptionMessage(false)); } catch (...) { @@ -138,21 +151,34 @@ BackupEntries BackupEntriesCollector::getBackupEntries() } } -void BackupEntriesCollector::setStatus(const String & new_status) +Strings BackupEntriesCollector::setStatus(const String & new_status, const String & message) { - bool is_error_status = new_status.starts_with(kErrorStatus); - if (is_error_status) + if (new_status == kErrorStatus) { - LOG_ERROR(log, "{} failed with {}", toUpperFirst(current_status), new_status); - backup_coordination->setStatus(backup_settings.host_id, new_status); + LOG_ERROR(log, "{} failed with error: {}", toUpperFirst(current_status), message); + backup_coordination->setStatus(backup_settings.host_id, new_status, message); + return {}; } else { LOG_TRACE(log, "{}", toUpperFirst(new_status)); current_status = new_status; - auto all_hosts - = BackupSettings::Util::filterHostIDs(backup_settings.cluster_host_ids, backup_settings.shard_num, backup_settings.replica_num); - backup_coordination->setStatusAndWait(backup_settings.host_id, new_status, all_hosts); + if (new_status.starts_with(kGatheringMetadataStatus)) + { + auto now = std::chrono::steady_clock::now(); + auto end_of_timeout = std::max(now, consistent_metadata_snapshot_start_time + consistent_metadata_snapshot_timeout); + + return backup_coordination->setStatusAndWaitFor( + backup_settings.host_id, + new_status, + message, + all_hosts, + std::chrono::duration_cast(end_of_timeout - now).count()); + } + else + { + return backup_coordination->setStatusAndWait(backup_settings.host_id, new_status, message, all_hosts); + } } } @@ -173,45 +199,87 @@ void BackupEntriesCollector::calculateRootPathInBackup() /// Finds databases and tables which we will put to the backup. void BackupEntriesCollector::gatherMetadataAndCheckConsistency() { - bool use_timeout = (timeout.count() >= 0); - auto start_time = std::chrono::steady_clock::now(); + consistent_metadata_snapshot_start_time = std::chrono::steady_clock::now(); + auto end_of_timeout = consistent_metadata_snapshot_start_time + consistent_metadata_snapshot_timeout; + setStatus(fmt::format("{} ({})", kGatheringMetadataStatus, 1)); for (size_t pass = 1;; ++pass) { - try + String new_status = fmt::format("{} ({})", kGatheringMetadataStatus, pass + 1); + std::optional inconsistency_error; + if (tryGatherMetadataAndCompareWithPrevious(inconsistency_error)) { - /// Collect information about databases and tables specified in the BACKUP query. - database_infos.clear(); - table_infos.clear(); - gatherDatabasesMetadata(); - gatherTablesMetadata(); - - /// We have to check consistency of collected information to protect from the case when some table or database is - /// renamed during this collecting making the collected information invalid. - auto comparing_error = compareWithPrevious(); - if (!comparing_error) - break; /// no error, everything's fine + /// Gathered metadata and checked consistency, cool! But we have to check that other hosts cope with that too. + auto all_hosts_results = setStatus(new_status, "consistent"); - if (pass >= 2) /// Two passes is minimum (we need to compare with table names with previous ones to be sure we don't miss anything). - throw *comparing_error; - } - catch (Exception & e) - { - if (e.code() != ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP) - throw; + std::optional host_with_inconsistency; + std::optional inconsistency_error_on_other_host; + for (size_t i = 0; i != all_hosts.size(); ++i) + { + if ((i < all_hosts_results.size()) && (all_hosts_results[i] != "consistent")) + { + host_with_inconsistency = all_hosts[i]; + inconsistency_error_on_other_host = all_hosts_results[i]; + break; + } + } - auto elapsed = std::chrono::steady_clock::now() - start_time; - e.addMessage("Couldn't gather tables and databases to make a backup (pass #{}, elapsed {})", pass, to_string(elapsed)); - if (use_timeout && (elapsed > timeout)) - throw; - else - LOG_WARNING(log, "{}", e.displayText()); + if (!host_with_inconsistency) + break; /// All hosts managed to gather metadata and everything is consistent, so we can go further to writing the backup. + + inconsistency_error = Exception{ + ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, + "Found inconsistency on host {}: {}", + *host_with_inconsistency, + *inconsistency_error_on_other_host}; } + else + { + /// Failed to gather metadata or something wasn't consistent. We'll let other hosts know that and try again. + setStatus(new_status, inconsistency_error->displayText()); + } + + /// Two passes is minimum (we need to compare with table names with previous ones to be sure we don't miss anything). + if (pass >= 2) + { + if (std::chrono::steady_clock::now() > end_of_timeout) + inconsistency_error->rethrow(); + else + LOG_WARNING(log, "{}", inconsistency_error->displayText()); + } + + auto sleep_time = getSleepTimeAfterInconsistencyError(pass); + if (sleep_time.count() > 0) + sleepForNanoseconds(std::chrono::duration_cast(sleep_time).count()); } LOG_INFO(log, "Will backup {} databases and {} tables", database_infos.size(), table_infos.size()); } +bool BackupEntriesCollector::tryGatherMetadataAndCompareWithPrevious(std::optional & inconsistency_error) +{ + try + { + /// Collect information about databases and tables specified in the BACKUP query. + database_infos.clear(); + table_infos.clear(); + gatherDatabasesMetadata(); + gatherTablesMetadata(); + } + catch (Exception & e) + { + if (e.code() != ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP) + throw; + + inconsistency_error = e; + return false; + } + + /// We have to check consistency of collected information to protect from the case when some table or database is + /// renamed during this collecting making the collected information invalid. + return compareWithPrevious(inconsistency_error); +} + void BackupEntriesCollector::gatherDatabasesMetadata() { /// Collect information about databases and tables specified in the BACKUP query. @@ -465,7 +533,7 @@ void BackupEntriesCollector::lockTablesForReading() } /// Check consistency of collected information about databases and tables. -std::optional BackupEntriesCollector::compareWithPrevious() +bool BackupEntriesCollector::compareWithPrevious(std::optional & inconsistency_error) { /// We need to scan tables at least twice to be sure that we haven't missed any table which could be renamed /// while we were scanning. @@ -476,60 +544,64 @@ std::optional BackupEntriesCollector::compareWithPrevious() if (previous_database_names != database_names) { - std::optional comparing_error; + bool error_message_ready = false; for (const auto & database_name : database_names) { if (!previous_database_names.contains(database_name)) { - comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were added during scanning", backQuoteIfNeed(database_name)}; + inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were added during scanning", backQuoteIfNeed(database_name)}; + error_message_ready = true; break; } } - if (!comparing_error) + if (!error_message_ready) { for (const auto & database_name : previous_database_names) { if (!database_names.contains(database_name)) { - comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were removed during scanning", backQuoteIfNeed(database_name)}; + inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were removed during scanning", backQuoteIfNeed(database_name)}; + error_message_ready = true; break; } } } - assert(comparing_error); + assert(error_message_ready); previous_database_names = std::move(database_names); previous_table_names = std::move(table_names); - return comparing_error; + return false; } if (previous_table_names != table_names) { - std::optional comparing_error; + bool error_message_ready = false; for (const auto & table_name : table_names) { if (!previous_table_names.contains(table_name)) { - comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were added during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; + inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were added during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; + error_message_ready = true; break; } } - if (!comparing_error) + if (!error_message_ready) { for (const auto & table_name : previous_table_names) { if (!table_names.contains(table_name)) { - comparing_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were removed during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; + inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were removed during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; + error_message_ready = true; break; } } } - assert(comparing_error); + assert(error_message_ready); previous_table_names = std::move(table_names); - return comparing_error; + return false; } - return {}; + return true; } /// Make backup entries for all the definitions of all the databases found. diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 4afca3f4cf9..49901295003 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -27,26 +27,25 @@ public: BackupEntriesCollector(const ASTBackupQuery::Elements & backup_query_elements_, const BackupSettings & backup_settings_, std::shared_ptr backup_coordination_, - const ContextPtr & context_, - std::chrono::seconds timeout_ = std::chrono::seconds(-1) /* no timeout */); + const ContextPtr & context_); ~BackupEntriesCollector(); /// Collects backup entries and returns the result. - /// This function first generates a list of databases and then call IDatabase::backup() for each database from this list. - /// At this moment IDatabase::backup() calls IStorage::backup() and they both call addBackupEntry() to build a list of backup entries. - BackupEntries getBackupEntries(); + /// This function first generates a list of databases and then call IDatabase::getTablesForBackup() for each database from this list. + /// Then it calls IStorage::backupData() to build a list of backup entries. + BackupEntries run(); const BackupSettings & getBackupSettings() const { return backup_settings; } std::shared_ptr getBackupCoordination() const { return backup_coordination; } ContextPtr getContext() const { return context; } - /// Adds a backup entry which will be later returned by getBackupEntries(). - /// These function can be called by implementations of IStorage::backup() in inherited storage classes. + /// Adds a backup entry which will be later returned by run(). + /// These function can be called by implementations of IStorage::backupData() in inherited storage classes. void addBackupEntry(const String & file_name, BackupEntryPtr backup_entry); void addBackupEntries(const BackupEntries & backup_entries_); void addBackupEntries(BackupEntries && backup_entries_); - /// Adds a function which must be called after all IStorage::backup() have finished their work on all hosts. + /// Adds a function which must be called after all IStorage::backupData() have finished their work on all hosts. /// This function is designed to help making a consistent in some complex cases like /// 1) we need to join (in a backup) the data of replicated tables gathered on different hosts. void addPostTask(std::function task); @@ -59,6 +58,8 @@ private: void gatherMetadataAndCheckConsistency(); + bool tryGatherMetadataAndCompareWithPrevious(std::optional & inconsistency_error); + void gatherDatabasesMetadata(); void gatherDatabaseMetadata( @@ -73,25 +74,25 @@ private: void gatherTablesMetadata(); void lockTablesForReading(); - std::optional compareWithPrevious(); + bool compareWithPrevious(std::optional & inconsistency_error); void makeBackupEntriesForDatabasesDefs(); void makeBackupEntriesForTablesDefs(); void makeBackupEntriesForTablesData(); void runPostTasks(); - void setStatus(const String & new_status); + Strings setStatus(const String & new_status, const String & message = ""); const ASTBackupQuery::Elements backup_query_elements; const BackupSettings backup_settings; std::shared_ptr backup_coordination; ContextPtr context; - std::chrono::seconds timeout; + std::chrono::milliseconds consistent_metadata_snapshot_timeout; Poco::Logger * log; - String current_status; - std::filesystem::path root_path_in_backup; + Strings all_hosts; DDLRenamingMap renaming_map; + std::filesystem::path root_path_in_backup; struct DatabaseInfo { @@ -122,6 +123,8 @@ private: std::optional partitions; }; + String current_status; + std::chrono::steady_clock::time_point consistent_metadata_snapshot_start_time; std::unordered_map database_infos; std::map table_infos; std::set previous_database_names; diff --git a/src/Backups/BackupsWorker.cpp b/src/Backups/BackupsWorker.cpp index 84dc63b4f9f..635b2810941 100644 --- a/src/Backups/BackupsWorker.cpp +++ b/src/Backups/BackupsWorker.cpp @@ -166,9 +166,8 @@ UUID BackupsWorker::startMakingBackup(const ASTPtr & query, const ContextPtr & c BackupEntries backup_entries; { - auto timeout = std::chrono::seconds{context_in_use->getConfigRef().getInt("backups.backup_prepare_timeout", -1)}; - BackupEntriesCollector backup_entries_collector{backup_query->elements, backup_settings, backup_coordination, context_in_use, timeout}; - backup_entries = backup_entries_collector.getBackupEntries(); + BackupEntriesCollector backup_entries_collector{backup_query->elements, backup_settings, backup_coordination, context_in_use}; + backup_entries = backup_entries_collector.run(); } writeBackupEntries(backup, std::move(backup_entries), backups_thread_pool); @@ -272,8 +271,8 @@ UUID BackupsWorker::startRestoring(const ASTPtr & query, ContextMutablePtr conte String addr_database = address->default_database.empty() ? current_database : address->default_database; for (auto & element : restore_elements) element.setCurrentDatabase(addr_database); - RestorerFromBackup dummy_restorer{restore_elements, restore_settings, nullptr, backup, context_in_use, {}}; - dummy_restorer.checkAccessOnly(); + RestorerFromBackup dummy_restorer{restore_elements, restore_settings, nullptr, backup, context_in_use}; + dummy_restorer.run(RestorerFromBackup::CHECK_ACCESS_ONLY); } } @@ -325,11 +324,9 @@ UUID BackupsWorker::startRestoring(const ASTPtr & query, ContextMutablePtr conte DataRestoreTasks data_restore_tasks; { - auto timeout = std::chrono::seconds{context_in_use->getConfigRef().getInt("backups.restore_metadata_timeout", -1)}; RestorerFromBackup restorer{restore_query->elements, restore_settings, restore_coordination, - backup, context_in_use, timeout}; - restorer.restoreMetadata(); - data_restore_tasks = restorer.getDataRestoreTasks(); + backup, context_in_use}; + data_restore_tasks = restorer.run(RestorerFromBackup::RESTORE); } restoreTablesData(std::move(data_restore_tasks), restores_thread_pool); diff --git a/src/Backups/IBackupCoordination.h b/src/Backups/IBackupCoordination.h index 58ed45e810d..9df5b9efdc4 100644 --- a/src/Backups/IBackupCoordination.h +++ b/src/Backups/IBackupCoordination.h @@ -14,9 +14,9 @@ public: virtual ~IBackupCoordination() = default; /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. - virtual void setStatus(const String & current_host, const String & new_status) = 0; - virtual void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) = 0; - virtual void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) = 0; + virtual void setStatus(const String & current_host, const String & new_status, const String & message) = 0; + virtual Strings setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & other_hosts) = 0; + virtual Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & other_hosts, UInt64 timeout_ms) = 0; struct PartNameAndChecksum { diff --git a/src/Backups/IRestoreCoordination.h b/src/Backups/IRestoreCoordination.h index b2ef32c2588..ba76a6e0c99 100644 --- a/src/Backups/IRestoreCoordination.h +++ b/src/Backups/IRestoreCoordination.h @@ -14,9 +14,9 @@ public: virtual ~IRestoreCoordination() = default; /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. - virtual void setStatus(const String & current_host, const String & new_status) = 0; - virtual void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) = 0; - virtual void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) = 0; + virtual void setStatus(const String & current_host, const String & new_status, const String & message) = 0; + virtual Strings setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & other_hosts) = 0; + virtual Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & other_hosts, UInt64 timeout_ms) = 0; /// Starts creating a table in a replicated database. Returns false if there is another host which is already creating this table. virtual bool acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) = 0; diff --git a/src/Backups/RestoreCoordinationDistributed.cpp b/src/Backups/RestoreCoordinationDistributed.cpp index 0b21f7367d8..8cbaa01810d 100644 --- a/src/Backups/RestoreCoordinationDistributed.cpp +++ b/src/Backups/RestoreCoordinationDistributed.cpp @@ -26,19 +26,19 @@ void RestoreCoordinationDistributed::createRootNodes() zookeeper->createIfNotExists(zookeeper_path + "/repl_access_storages_acquired", ""); } -void RestoreCoordinationDistributed::setStatus(const String & current_host, const String & new_status) +void RestoreCoordinationDistributed::setStatus(const String & current_host, const String & new_status, const String & message) { - status_sync.set(current_host, new_status); + status_sync.set(current_host, new_status, message); } -void RestoreCoordinationDistributed::setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) +Strings RestoreCoordinationDistributed::setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) { - status_sync.setAndWait(current_host, new_status, other_hosts); + return status_sync.setAndWait(current_host, new_status, message, all_hosts); } -void RestoreCoordinationDistributed::setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) +Strings RestoreCoordinationDistributed::setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) { - status_sync.setAndWaitFor(current_host, new_status, other_hosts, timeout_ms); + return status_sync.setAndWaitFor(current_host, new_status, message, all_hosts, timeout_ms); } bool RestoreCoordinationDistributed::acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) diff --git a/src/Backups/RestoreCoordinationDistributed.h b/src/Backups/RestoreCoordinationDistributed.h index ecc8910bb9e..52b961cf0ef 100644 --- a/src/Backups/RestoreCoordinationDistributed.h +++ b/src/Backups/RestoreCoordinationDistributed.h @@ -15,9 +15,9 @@ public: ~RestoreCoordinationDistributed() override; /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. - void setStatus(const String & current_host, const String & new_status) override; - void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; - void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; + void setStatus(const String & current_host, const String & new_status, const String & message) override; + Strings setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) override; + Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) override; /// Starts creating a table in a replicated database. Returns false if there is another host which is already creating this table. bool acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) override; diff --git a/src/Backups/RestoreCoordinationLocal.cpp b/src/Backups/RestoreCoordinationLocal.cpp index e654ace454d..a999cc13195 100644 --- a/src/Backups/RestoreCoordinationLocal.cpp +++ b/src/Backups/RestoreCoordinationLocal.cpp @@ -7,16 +7,18 @@ namespace DB RestoreCoordinationLocal::RestoreCoordinationLocal() = default; RestoreCoordinationLocal::~RestoreCoordinationLocal() = default; -void RestoreCoordinationLocal::setStatus(const String &, const String &) +void RestoreCoordinationLocal::setStatus(const String &, const String &, const String &) { } -void RestoreCoordinationLocal::setStatusAndWait(const String &, const String &, const Strings &) +Strings RestoreCoordinationLocal::setStatusAndWait(const String &, const String &, const String &, const Strings &) { + return {}; } -void RestoreCoordinationLocal::setStatusAndWaitFor(const String &, const String &, const Strings &, UInt64) +Strings RestoreCoordinationLocal::setStatusAndWaitFor(const String &, const String &, const String &, const Strings &, UInt64) { + return {}; } bool RestoreCoordinationLocal::acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) diff --git a/src/Backups/RestoreCoordinationLocal.h b/src/Backups/RestoreCoordinationLocal.h index f38e1f94b9c..68624481a7a 100644 --- a/src/Backups/RestoreCoordinationLocal.h +++ b/src/Backups/RestoreCoordinationLocal.h @@ -18,9 +18,9 @@ public: ~RestoreCoordinationLocal() override; /// Sets the current status and waits for other hosts to come to this status too. If status starts with "error:" it'll stop waiting on all the hosts. - void setStatus(const String & current_host, const String & new_status) override; - void setStatusAndWait(const String & current_host, const String & new_status, const Strings & other_hosts) override; - void setStatusAndWaitFor(const String & current_host, const String & new_status, const Strings & other_hosts, UInt64 timeout_ms) override; + void setStatus(const String & current_host, const String & new_status, const String & message) override; + Strings setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) override; + Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) override; /// Starts creating a table in a replicated database. Returns false if there is another host which is already creating this table. bool acquireCreatingTableInReplicatedDatabase(const String & database_zk_path, const String & table_name) override; diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index bbe11525c58..12151eff08f 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -39,23 +40,20 @@ namespace ErrorCodes namespace { - /// Initial status. - constexpr const char kPreparingStatus[] = "preparing"; - /// Finding databases and tables in the backup which we're going to restore. - constexpr const char kFindingTablesInBackupStatus[] = "finding tables in backup"; + constexpr const char * kFindingTablesInBackupStatus = "finding tables in backup"; /// Creating databases or finding them and checking their definitions. - constexpr const char kCreatingDatabasesStatus[] = "creating databases"; + constexpr const char * kCreatingDatabasesStatus = "creating databases"; /// Creating tables or finding them and checking their definition. - constexpr const char kCreatingTablesStatus[] = "creating tables"; + constexpr const char * kCreatingTablesStatus = "creating tables"; /// Inserting restored data to tables. - constexpr const char kInsertingDataToTablesStatus[] = "inserting data to tables"; + constexpr const char * kInsertingDataToTablesStatus = "inserting data to tables"; - /// Prefix for error statuses. - constexpr const char kErrorStatus[] = "error: "; + /// Error status. + constexpr const char * kErrorStatus = BackupCoordinationStatusSync::kErrorStatus; /// Uppercases the first character of a passed string. String toUpperFirst(const String & str) @@ -107,46 +105,37 @@ RestorerFromBackup::RestorerFromBackup( const RestoreSettings & restore_settings_, std::shared_ptr restore_coordination_, const BackupPtr & backup_, - const ContextMutablePtr & context_, - std::chrono::seconds timeout_) + const ContextMutablePtr & context_) : restore_query_elements(restore_query_elements_) , restore_settings(restore_settings_) , restore_coordination(restore_coordination_) , backup(backup_) , context(context_) - , timeout(timeout_) - , create_table_timeout_ms(context->getConfigRef().getUInt64("backups.create_table_timeout", 300000)) + , create_table_timeout(context->getConfigRef().getUInt64("backups.create_table_timeout", 300000)) , log(&Poco::Logger::get("RestorerFromBackup")) - , current_status(kPreparingStatus) { } RestorerFromBackup::~RestorerFromBackup() = default; -void RestorerFromBackup::restoreMetadata() -{ - run(/* only_check_access= */ false); -} - -void RestorerFromBackup::checkAccessOnly() -{ - run(/* only_check_access= */ true); -} - -void RestorerFromBackup::run(bool only_check_access) +RestorerFromBackup::DataRestoreTasks RestorerFromBackup::run(Mode mode) { try { - /// restoreMetadata() must not be called multiple times. - if (current_status != kPreparingStatus) + /// run() can be called onle once. + if (!current_status.empty()) throw Exception(ErrorCodes::LOGICAL_ERROR, "Already restoring"); - /// Calculate the root path in the backup for restoring, it's either empty or has the format "shards//replicas//". - findRootPathsInBackup(); + /// Find other hosts working along with us to execute this ON CLUSTER query. + all_hosts = BackupSettings::Util::filterHostIDs( + restore_settings.cluster_host_ids, restore_settings.shard_num, restore_settings.replica_num); /// Do renaming in the create queries according to the renaming config. renaming_map = makeRenamingMapFromBackupQuery(restore_query_elements); + /// Calculate the root path in the backup for restoring, it's either empty or has the format "shards//replicas//". + findRootPathsInBackup(); + /// Find all the databases and tables which we will read from the backup. setStatus(kFindingTablesInBackupStatus); findDatabasesAndTablesInBackup(); @@ -154,8 +143,8 @@ void RestorerFromBackup::run(bool only_check_access) /// Check access rights. checkAccessForObjectsFoundInBackup(); - if (only_check_access) - return; + if (mode == Mode::CHECK_ACCESS_ONLY) + return {}; /// Create databases using the create queries read from the backup. setStatus(kCreatingDatabasesStatus); @@ -168,13 +157,14 @@ void RestorerFromBackup::run(bool only_check_access) /// All what's left is to insert data to tables. /// No more data restoring tasks are allowed after this point. setStatus(kInsertingDataToTablesStatus); + return getDataRestoreTasks(); } catch (...) { try { /// Other hosts should know that we've encountered an error. - setStatus(kErrorStatus + getCurrentExceptionMessage(false)); + setStatus(kErrorStatus, getCurrentExceptionMessage(false)); } catch (...) { @@ -183,55 +173,20 @@ void RestorerFromBackup::run(bool only_check_access) } } - -RestorerFromBackup::DataRestoreTasks RestorerFromBackup::getDataRestoreTasks() +void RestorerFromBackup::setStatus(const String & new_status, const String & message) { - if (current_status != kInsertingDataToTablesStatus) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Metadata wasn't restored"); - - if (data_restore_tasks.empty() && !access_restore_task) - return {}; - - LOG_TRACE(log, "Will insert data to tables"); - - /// Storages and table locks must exist while we're executing data restoring tasks. - auto storages = std::make_shared>(); - auto table_locks = std::make_shared>(); - storages->reserve(table_infos.size()); - table_locks->reserve(table_infos.size()); - for (const auto & table_info : table_infos | boost::adaptors::map_values) + if (new_status == kErrorStatus) { - storages->push_back(table_info.storage); - table_locks->push_back(table_info.table_lock); - } - - DataRestoreTasks res_tasks; - for (const auto & task : data_restore_tasks) - res_tasks.push_back([task, storages, table_locks] { task(); }); - - if (access_restore_task) - res_tasks.push_back([task = access_restore_task, access_control = &context->getAccessControl()] { task->restore(*access_control); }); - - return res_tasks; -} - -void RestorerFromBackup::setStatus(const String & new_status) -{ - bool is_error_status = new_status.starts_with(kErrorStatus); - if (is_error_status) - { - LOG_ERROR(log, "{} failed with {}", toUpperFirst(current_status), new_status); + LOG_ERROR(log, "{} failed with {}", toUpperFirst(current_status), message); if (restore_coordination) - restore_coordination->setStatus(restore_settings.host_id, new_status); + restore_coordination->setStatus(restore_settings.host_id, new_status, message); } else { LOG_TRACE(log, "{}", toUpperFirst(new_status)); current_status = new_status; - auto all_hosts - = BackupSettings::Util::filterHostIDs(restore_settings.cluster_host_ids, restore_settings.shard_num, restore_settings.replica_num); if (restore_coordination) - restore_coordination->setStatusAndWait(restore_settings.host_id, new_status, all_hosts); + restore_coordination->setStatusAndWait(restore_settings.host_id, new_status, message, all_hosts); } } @@ -677,13 +632,18 @@ void RestorerFromBackup::createTables() create_table_query = create_table_query->clone(); create_table_query->as().if_not_exists = true; } + LOG_TRACE( log, "Creating {}: {}", tableNameWithTypeToString(table_name.database, table_name.table, false), serializeAST(*create_table_query)); - database->createTableRestoredFromBackup(create_table_query, context, restore_coordination, create_table_timeout_ms); + database->createTableRestoredFromBackup( + create_table_query, + context, + restore_coordination, + std::chrono::duration_cast(create_table_timeout).count()); } table_info.created = true; @@ -799,6 +759,34 @@ void RestorerFromBackup::checkPathInBackupIsRegisteredToRestoreAccess(const Stri throw Exception(ErrorCodes::LOGICAL_ERROR, "Path to restore access was not added"); } +RestorerFromBackup::DataRestoreTasks RestorerFromBackup::getDataRestoreTasks() +{ + if (data_restore_tasks.empty() && !access_restore_task) + return {}; + + LOG_TRACE(log, "Will insert data to tables"); + + /// Storages and table locks must exist while we're executing data restoring tasks. + auto storages = std::make_shared>(); + auto table_locks = std::make_shared>(); + storages->reserve(table_infos.size()); + table_locks->reserve(table_infos.size()); + for (const auto & table_info : table_infos | boost::adaptors::map_values) + { + storages->push_back(table_info.storage); + table_locks->push_back(table_info.table_lock); + } + + DataRestoreTasks res_tasks; + for (const auto & task : data_restore_tasks) + res_tasks.push_back([task, storages, table_locks] { task(); }); + + if (access_restore_task) + res_tasks.push_back([task = access_restore_task, access_control = &context->getAccessControl()] { task->restore(*access_control); }); + + return res_tasks; +} + void RestorerFromBackup::throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine) { throw Exception( diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index 07258837aab..f4d19a10cf6 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -26,27 +26,29 @@ public: const RestoreSettings & restore_settings_, std::shared_ptr restore_coordination_, const BackupPtr & backup_, - const ContextMutablePtr & context_, - std::chrono::seconds timeout_); + const ContextMutablePtr & context_); ~RestorerFromBackup(); - /// Restores the definition of databases and tables and prepares tasks to restore the data of the tables. - /// restoreMetadata() checks access rights internally so checkAccessRightsOnly() shouldn't be called first. - void restoreMetadata(); + enum Mode + { + /// Restores databases and tables. + RESTORE, - /// Only checks access rights without restoring anything. - void checkAccessOnly(); + /// Only checks access rights without restoring anything. + CHECK_ACCESS_ONLY + }; using DataRestoreTask = std::function; using DataRestoreTasks = std::vector; - DataRestoreTasks getDataRestoreTasks(); + + /// Restores the metadata of databases and tables and returns tasks to restore the data of tables. + DataRestoreTasks run(Mode mode); BackupPtr getBackup() const { return backup; } const RestoreSettings & getRestoreSettings() const { return restore_settings; } bool isNonEmptyTableAllowed() const { return getRestoreSettings().allow_non_empty_tables; } std::shared_ptr getRestoreCoordination() const { return restore_coordination; } - std::chrono::seconds getTimeout() const { return timeout; } ContextMutablePtr getContext() const { return context; } /// Adds a data restore task which will be later returned by getDataRestoreTasks(). @@ -69,15 +71,12 @@ private: std::shared_ptr restore_coordination; BackupPtr backup; ContextMutablePtr context; - std::chrono::seconds timeout; - UInt64 create_table_timeout_ms; + std::chrono::milliseconds create_table_timeout; Poco::Logger * log; - String current_status; - std::vector root_paths_in_backup; + Strings all_hosts; DDLRenamingMap renaming_map; - - void run(bool only_check_access); + std::vector root_paths_in_backup; void findRootPathsInBackup(); @@ -91,7 +90,9 @@ private: void createDatabases(); void createTables(); - void setStatus(const String & new_status); + DataRestoreTasks getDataRestoreTasks(); + + void setStatus(const String & new_status, const String & message = ""); struct DatabaseInfo { @@ -111,6 +112,7 @@ private: std::vector findTablesWithoutDependencies() const; + String current_status; std::unordered_map database_infos; std::map table_infos; std::vector data_restore_tasks; From 7689e0c36f1cb9e89faeb12694560d5fc350cdf9 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Fri, 24 Jun 2022 21:29:38 +0200 Subject: [PATCH 419/525] Improve gathering metadata for backup - part 6. --- src/Backups/BackupCoordinationDistributed.cpp | 22 +-- src/Backups/BackupCoordinationDistributed.h | 8 +- src/Backups/BackupCoordinationHelpers.cpp | 8 +- src/Backups/BackupCoordinationHelpers.h | 6 +- src/Backups/BackupCoordinationLocal.cpp | 16 +- src/Backups/BackupCoordinationLocal.h | 8 +- src/Backups/BackupEntriesCollector.cpp | 152 ++++++++++-------- src/Backups/BackupEntriesCollector.h | 7 +- src/Backups/DDLAdjustingForBackupVisitor.cpp | 114 +++++++++++++ src/Backups/DDLAdjustingForBackupVisitor.h | 36 +++++ src/Backups/IBackupCoordination.h | 8 +- src/Backups/RestorerFromBackup.cpp | 10 +- src/Databases/DDLRenamingVisitor.cpp | 15 +- src/Databases/DDLRenamingVisitor.h | 6 +- src/Databases/DatabaseReplicated.cpp | 40 +++++ src/Databases/DatabaseReplicated.h | 1 + src/Databases/IDatabase.cpp | 13 +- src/Databases/IDatabase.h | 3 - src/Storages/IStorage.cpp | 22 +-- .../extractZkPathFromCreateQuery.cpp | 60 +++++++ .../MergeTree/extractZkPathFromCreateQuery.h | 19 +++ src/Storages/StorageReplicatedMergeTree.cpp | 73 ++++----- src/Storages/StorageReplicatedMergeTree.h | 3 + .../test_backup_restore_on_cluster/test.py | 41 +++++ 24 files changed, 490 insertions(+), 201 deletions(-) create mode 100644 src/Backups/DDLAdjustingForBackupVisitor.cpp create mode 100644 src/Backups/DDLAdjustingForBackupVisitor.h create mode 100644 src/Storages/MergeTree/extractZkPathFromCreateQuery.cpp create mode 100644 src/Storages/MergeTree/extractZkPathFromCreateQuery.h diff --git a/src/Backups/BackupCoordinationDistributed.cpp b/src/Backups/BackupCoordinationDistributed.cpp index 9612b62dcdb..9df17bf434e 100644 --- a/src/Backups/BackupCoordinationDistributed.cpp +++ b/src/Backups/BackupCoordinationDistributed.cpp @@ -174,7 +174,7 @@ Strings BackupCoordinationDistributed::setStatusAndWaitFor(const String & curren void BackupCoordinationDistributed::addReplicatedPartNames( - const String & table_zk_path, + const String & table_shared_id, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) @@ -186,39 +186,39 @@ void BackupCoordinationDistributed::addReplicatedPartNames( } auto zookeeper = get_zookeeper(); - String path = zookeeper_path + "/repl_part_names/" + escapeForFileName(table_zk_path); + String path = zookeeper_path + "/repl_part_names/" + escapeForFileName(table_shared_id); zookeeper->createIfNotExists(path, ""); path += "/" + escapeForFileName(replica_name); zookeeper->create(path, ReplicatedPartNames::serialize(part_names_and_checksums, table_name_for_logs), zkutil::CreateMode::Persistent); } -Strings BackupCoordinationDistributed::getReplicatedPartNames(const String & table_zk_path, const String & replica_name) const +Strings BackupCoordinationDistributed::getReplicatedPartNames(const String & table_shared_id, const String & replica_name) const { std::lock_guard lock{mutex}; prepareReplicatedPartNames(); - return replicated_part_names->getPartNames(table_zk_path, replica_name); + return replicated_part_names->getPartNames(table_shared_id, replica_name); } void BackupCoordinationDistributed::addReplicatedDataPath( - const String & table_zk_path, const String & data_path) + const String & table_shared_id, const String & data_path) { auto zookeeper = get_zookeeper(); - String path = zookeeper_path + "/repl_data_paths/" + escapeForFileName(table_zk_path); + String path = zookeeper_path + "/repl_data_paths/" + escapeForFileName(table_shared_id); + zookeeper->createIfNotExists(path, ""); + path += "/" + escapeForFileName(data_path); zookeeper->createIfNotExists(path, ""); - path += "/"; - zookeeper->create(path, data_path, zkutil::CreateMode::PersistentSequential); } -Strings BackupCoordinationDistributed::getReplicatedDataPaths(const String & table_zk_path) const +Strings BackupCoordinationDistributed::getReplicatedDataPaths(const String & table_shared_id) const { auto zookeeper = get_zookeeper(); - String path = zookeeper_path + "/repl_data_paths/" + escapeForFileName(table_zk_path); + String path = zookeeper_path + "/repl_data_paths/" + escapeForFileName(table_shared_id); Strings children = zookeeper->getChildren(path); Strings data_paths; data_paths.reserve(children.size()); for (const String & child : children) - data_paths.push_back(zookeeper->get(path + "/" + child)); + data_paths.push_back(unescapeForFileName(child)); return data_paths; } diff --git a/src/Backups/BackupCoordinationDistributed.h b/src/Backups/BackupCoordinationDistributed.h index 84cd4b3dddb..172c69edb20 100644 --- a/src/Backups/BackupCoordinationDistributed.h +++ b/src/Backups/BackupCoordinationDistributed.h @@ -19,15 +19,15 @@ public: Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) override; void addReplicatedPartNames( - const String & table_zk_path, + const String & table_shared_id, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) override; - Strings getReplicatedPartNames(const String & table_zk_path, const String & replica_name) const override; + Strings getReplicatedPartNames(const String & table_shared_id, const String & replica_name) const override; - void addReplicatedDataPath(const String & table_zk_path, const String & data_path) override; - Strings getReplicatedDataPaths(const String & table_zk_path) const override; + void addReplicatedDataPath(const String & table_shared_id, const String & data_path) override; + Strings getReplicatedDataPaths(const String & table_shared_id) const override; void addFileInfo(const FileInfo & file_info, bool & is_data_file_required) override; void updateFileInfo(const FileInfo & file_info) override; diff --git a/src/Backups/BackupCoordinationHelpers.cpp b/src/Backups/BackupCoordinationHelpers.cpp index d86e8cff52c..cca66f03aac 100644 --- a/src/Backups/BackupCoordinationHelpers.cpp +++ b/src/Backups/BackupCoordinationHelpers.cpp @@ -157,7 +157,7 @@ BackupCoordinationReplicatedPartNames::BackupCoordinationReplicatedPartNames() = BackupCoordinationReplicatedPartNames::~BackupCoordinationReplicatedPartNames() = default; void BackupCoordinationReplicatedPartNames::addPartNames( - const String & table_zk_path, + const String & table_shared_id, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) @@ -165,7 +165,7 @@ void BackupCoordinationReplicatedPartNames::addPartNames( if (part_names_prepared) throw Exception(ErrorCodes::LOGICAL_ERROR, "addPartNames() must not be called after getPartNames()"); - auto & table_info = table_infos[table_zk_path]; + auto & table_info = table_infos[table_shared_id]; if (!table_info.covered_parts_finder) table_info.covered_parts_finder = std::make_unique(table_name_for_logs); @@ -207,10 +207,10 @@ void BackupCoordinationReplicatedPartNames::addPartNames( } } -Strings BackupCoordinationReplicatedPartNames::getPartNames(const String & table_zk_path, const String & replica_name) const +Strings BackupCoordinationReplicatedPartNames::getPartNames(const String & table_shared_id, const String & replica_name) const { preparePartNames(); - auto it = table_infos.find(table_zk_path); + auto it = table_infos.find(table_shared_id); if (it == table_infos.end()) return {}; const auto & replicas_parts = it->second.replicas_parts; diff --git a/src/Backups/BackupCoordinationHelpers.h b/src/Backups/BackupCoordinationHelpers.h index 7d343edd3d0..2e9e4b3cbde 100644 --- a/src/Backups/BackupCoordinationHelpers.h +++ b/src/Backups/BackupCoordinationHelpers.h @@ -24,7 +24,7 @@ public: /// getPartNames(). /// Checksums are used only to control that parts under the same names on different replicas are the same. void addPartNames( - const String & table_zk_path, + const String & table_shared_id, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums); @@ -32,7 +32,7 @@ public: /// Returns the names of the parts which a specified replica of a replicated table should put to the backup. /// This is the same list as it was added by call of the function addPartNames() but without duplications and without /// parts covered by another parts. - Strings getPartNames(const String & table_zk_path, const String & replica_name) const; + Strings getPartNames(const String & table_shared_id, const String & replica_name) const; private: void preparePartNames() const; @@ -52,7 +52,7 @@ private: std::unique_ptr covered_parts_finder; }; - std::map table_infos; /// Should be ordered because we need this map to be in the same order on every replica. + std::map table_infos; /// Should be ordered because we need this map to be in the same order on every replica. mutable bool part_names_prepared = false; }; diff --git a/src/Backups/BackupCoordinationLocal.cpp b/src/Backups/BackupCoordinationLocal.cpp index 6ff9800797e..7fd6fec6c33 100644 --- a/src/Backups/BackupCoordinationLocal.cpp +++ b/src/Backups/BackupCoordinationLocal.cpp @@ -27,29 +27,29 @@ Strings BackupCoordinationLocal::setStatusAndWaitFor(const String &, const Strin return {}; } -void BackupCoordinationLocal::addReplicatedPartNames(const String & table_zk_path, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) +void BackupCoordinationLocal::addReplicatedPartNames(const String & table_shared_id, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) { std::lock_guard lock{mutex}; - replicated_part_names.addPartNames(table_zk_path, table_name_for_logs, replica_name, part_names_and_checksums); + replicated_part_names.addPartNames(table_shared_id, table_name_for_logs, replica_name, part_names_and_checksums); } -Strings BackupCoordinationLocal::getReplicatedPartNames(const String & table_zk_path, const String & replica_name) const +Strings BackupCoordinationLocal::getReplicatedPartNames(const String & table_shared_id, const String & replica_name) const { std::lock_guard lock{mutex}; - return replicated_part_names.getPartNames(table_zk_path, replica_name); + return replicated_part_names.getPartNames(table_shared_id, replica_name); } -void BackupCoordinationLocal::addReplicatedDataPath(const String & table_zk_path, const String & data_path) +void BackupCoordinationLocal::addReplicatedDataPath(const String & table_shared_id, const String & data_path) { std::lock_guard lock{mutex}; - replicated_data_paths[table_zk_path].push_back(data_path); + replicated_data_paths[table_shared_id].push_back(data_path); } -Strings BackupCoordinationLocal::getReplicatedDataPaths(const String & table_zk_path) const +Strings BackupCoordinationLocal::getReplicatedDataPaths(const String & table_shared_id) const { std::lock_guard lock{mutex}; - auto it = replicated_data_paths.find(table_zk_path); + auto it = replicated_data_paths.find(table_shared_id); if (it == replicated_data_paths.end()) return {}; return it->second; diff --git a/src/Backups/BackupCoordinationLocal.h b/src/Backups/BackupCoordinationLocal.h index 7fdd88d37cb..519c721c208 100644 --- a/src/Backups/BackupCoordinationLocal.h +++ b/src/Backups/BackupCoordinationLocal.h @@ -23,12 +23,12 @@ public: Strings setStatusAndWait(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts) override; Strings setStatusAndWaitFor(const String & current_host, const String & new_status, const String & message, const Strings & all_hosts, UInt64 timeout_ms) override; - void addReplicatedPartNames(const String & table_zk_path, const String & table_name_for_logs, const String & replica_name, + void addReplicatedPartNames(const String & table_shared_id, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) override; - Strings getReplicatedPartNames(const String & table_zk_path, const String & replica_name) const override; + Strings getReplicatedPartNames(const String & table_shared_id, const String & replica_name) const override; - void addReplicatedDataPath(const String & table_zk_path, const String & data_path) override; - Strings getReplicatedDataPaths(const String & table_zk_path) const override; + void addReplicatedDataPath(const String & table_shared_id, const String & data_path) override; + Strings getReplicatedDataPaths(const String & table_shared_id) const override; void addFileInfo(const FileInfo & file_info, bool & is_data_file_required) override; void updateFileInfo(const FileInfo & file_info) override; diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 1ba94552589..8104e363a68 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -389,7 +390,7 @@ void BackupEntriesCollector::gatherDatabaseMetadata( ASTPtr create_database_query; try { - create_database_query = database_info.database->getCreateDatabaseQueryForBackup(); + create_database_query = database_info.database->getCreateDatabaseQuery(); } catch (...) { @@ -537,68 +538,86 @@ bool BackupEntriesCollector::compareWithPrevious(std::optional & inco { /// We need to scan tables at least twice to be sure that we haven't missed any table which could be renamed /// while we were scanning. - std::set database_names; - std::set table_names; - boost::range::copy(database_infos | boost::adaptors::map_keys, std::inserter(database_names, database_names.end())); - boost::range::copy(table_infos | boost::adaptors::map_keys, std::inserter(table_names, table_names.end())); + std::vector> databases_metadata; + std::vector> tables_metadata; + databases_metadata.reserve(database_infos.size()); + tables_metadata.reserve(table_infos.size()); + for (const auto & [database_name, database_info] : database_infos) + databases_metadata.emplace_back(database_name, database_info.create_database_query ? serializeAST(*database_info.create_database_query) : ""); + for (const auto & [table_name, table_info] : table_infos) + tables_metadata.emplace_back(table_name, serializeAST(*table_info.create_table_query)); - if (previous_database_names != database_names) + /// We need to sort the lists to make the comparison below correct. + ::sort(databases_metadata.begin(), databases_metadata.end()); + ::sort(tables_metadata.begin(), tables_metadata.end()); + + SCOPE_EXIT({ + previous_databases_metadata = std::move(databases_metadata); + previous_tables_metadata = std::move(tables_metadata); + }); + + /// Databases must be the same as during the previous scan. + if (databases_metadata != previous_databases_metadata) { - bool error_message_ready = false; - for (const auto & database_name : database_names) + std::vector> difference; + difference.reserve(databases_metadata.size()); + std::set_difference(databases_metadata.begin(), databases_metadata.end(), previous_databases_metadata.begin(), + previous_databases_metadata.end(), std::back_inserter(difference)); + + if (!difference.empty()) { - if (!previous_database_names.contains(database_name)) - { - inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were added during scanning", backQuoteIfNeed(database_name)}; - error_message_ready = true; - break; - } + inconsistency_error = Exception{ + ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, + "Database {} were created or changed its definition during scanning", + backQuoteIfNeed(difference[0].first)}; + return false; } - if (!error_message_ready) + + difference.clear(); + difference.reserve(previous_databases_metadata.size()); + std::set_difference(previous_databases_metadata.begin(), previous_databases_metadata.end(), databases_metadata.begin(), + databases_metadata.end(), std::back_inserter(difference)); + + if (!difference.empty()) { - for (const auto & database_name : previous_database_names) - { - if (!database_names.contains(database_name)) - { - inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Database {} were removed during scanning", backQuoteIfNeed(database_name)}; - error_message_ready = true; - break; - } - } + inconsistency_error = Exception{ + ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, + "Database {} were removed or changed its definition during scanning", + backQuoteIfNeed(difference[0].first)}; + return false; } - assert(error_message_ready); - previous_database_names = std::move(database_names); - previous_table_names = std::move(table_names); - return false; } - if (previous_table_names != table_names) + /// Tables must be the same as during the previous scan. + if (tables_metadata != previous_tables_metadata) { - bool error_message_ready = false; - for (const auto & table_name : table_names) + std::vector> difference; + difference.reserve(tables_metadata.size()); + std::set_difference(tables_metadata.begin(), tables_metadata.end(), previous_tables_metadata.begin(), + previous_tables_metadata.end(), std::back_inserter(difference)); + + if (!difference.empty()) { - if (!previous_table_names.contains(table_name)) - { - inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were added during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; - error_message_ready = true; - break; - } + inconsistency_error = Exception{ + ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, + "{} were created or changed its definition during scanning", + tableNameWithTypeToString(difference[0].first.database, difference[0].first.table, true)}; + return false; } - if (!error_message_ready) + + difference.clear(); + difference.reserve(previous_tables_metadata.size()); + std::set_difference(previous_tables_metadata.begin(), previous_tables_metadata.end(), tables_metadata.begin(), + tables_metadata.end(), std::back_inserter(difference)); + + if (!difference.empty()) { - for (const auto & table_name : previous_table_names) - { - if (!table_names.contains(table_name)) - { - inconsistency_error = Exception{ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "{} were removed during scanning", tableNameWithTypeToString(table_name.database, table_name.table, true)}; - error_message_ready = true; - break; - } - } + inconsistency_error = Exception{ + ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, + "{} were removed or changed its definition during scanning", + tableNameWithTypeToString(difference[0].first.database, difference[0].first.table, true)}; + return false; } - assert(error_message_ready); - previous_table_names = std::move(table_names); - return false; } return true; @@ -615,7 +634,8 @@ void BackupEntriesCollector::makeBackupEntriesForDatabasesDefs() LOG_TRACE(log, "Adding definition of database {}", backQuoteIfNeed(database_name)); ASTPtr new_create_query = database_info.create_database_query; - renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, new_create_query); + adjustCreateQueryForBackup(new_create_query, context->getGlobalContext(), nullptr); + renameDatabaseAndTableNameInCreateQuery(new_create_query, renaming_map, context->getGlobalContext()); const String & metadata_path_in_backup = database_info.metadata_path_in_backup; backup_entries.emplace_back(metadata_path_in_backup, std::make_shared(serializeAST(*new_create_query))); @@ -625,12 +645,13 @@ void BackupEntriesCollector::makeBackupEntriesForDatabasesDefs() /// Calls IDatabase::backupTable() for all the tables found to make backup entries for tables. void BackupEntriesCollector::makeBackupEntriesForTablesDefs() { - for (const auto & [table_name, table_info] : table_infos) + for (auto & [table_name, table_info] : table_infos) { LOG_TRACE(log, "Adding definition of {}", tableNameWithTypeToString(table_name.database, table_name.table, false)); ASTPtr new_create_query = table_info.create_table_query; - renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, new_create_query); + adjustCreateQueryForBackup(new_create_query, context->getGlobalContext(), &table_info.replicated_table_shared_id); + renameDatabaseAndTableNameInCreateQuery(new_create_query, renaming_map, context->getGlobalContext()); const String & metadata_path_in_backup = table_info.metadata_path_in_backup; backup_entries.emplace_back(metadata_path_in_backup, std::make_shared(serializeAST(*new_create_query))); @@ -645,18 +666,21 @@ void BackupEntriesCollector::makeBackupEntriesForTablesData() for (const auto & [table_name, table_info] : table_infos) { const auto & storage = table_info.storage; - if (!storage) - { - /// This storage exists on other replica and has not been created on this replica yet. - /// We store metadata only for such tables. - /// TODO: Need special processing if it's a ReplicatedMergeTree. - continue; - } - - LOG_TRACE(log, "Adding data of {}", tableNameWithTypeToString(table_name.database, table_name.table, false)); const auto & data_path_in_backup = table_info.data_path_in_backup; - const auto & partitions = table_info.partitions; - storage->backupData(*this, data_path_in_backup, partitions); + if (storage) + { + LOG_TRACE(log, "Adding data of {}", tableNameWithTypeToString(table_name.database, table_name.table, false)); + storage->backupData(*this, data_path_in_backup, table_info.partitions); + } + else + { + /// Storage == null means this storage exists on other replicas but it has not been created on this replica yet. + /// If this table is replicated in this case we call IBackupCoordination::addReplicatedDataPath() which will cause + /// other replicas to fill the storage's data in the backup. + /// If this table is not replicated we'll do nothing leaving the storage's data empty in the backup. + if (table_info.replicated_table_shared_id) + backup_coordination->addReplicatedDataPath(*table_info.replicated_table_shared_id, data_path_in_backup); + } } } diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 49901295003..46a2bd1863a 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -120,15 +120,16 @@ private: ASTPtr create_table_query; String metadata_path_in_backup; std::filesystem::path data_path_in_backup; + std::optional replicated_table_shared_id; std::optional partitions; }; String current_status; std::chrono::steady_clock::time_point consistent_metadata_snapshot_start_time; std::unordered_map database_infos; - std::map table_infos; - std::set previous_database_names; - std::set previous_table_names; + std::unordered_map table_infos; + std::vector> previous_databases_metadata; + std::vector> previous_tables_metadata; BackupEntries backup_entries; std::queue> post_tasks; diff --git a/src/Backups/DDLAdjustingForBackupVisitor.cpp b/src/Backups/DDLAdjustingForBackupVisitor.cpp new file mode 100644 index 00000000000..e3fc3ac5552 --- /dev/null +++ b/src/Backups/DDLAdjustingForBackupVisitor.cpp @@ -0,0 +1,114 @@ +#include +#include +#include +#include +#include +#include + +#include + + +namespace DB +{ + +namespace +{ + void visitStorageSystemTableEngine(ASTStorage &, const DDLAdjustingForBackupVisitor::Data & data) + { + /// Precondition: storage.engine && storage.engine->name.starts_with("System")) + + /// If this is a definition of a system table we'll remove columns and comment because they're reduntant for backups. + auto & create = data.create_query->as(); + create.reset(create.columns_list); + create.reset(create.comment); + } + + void visitStorageReplicatedTableEngine(ASTStorage & storage, const DDLAdjustingForBackupVisitor::Data & data) + { + /// Precondition: engine_name.starts_with("Replicated") && engine_name.ends_with("MergeTree") + + if (data.replicated_table_shared_id) + *data.replicated_table_shared_id = StorageReplicatedMergeTree::tryGetTableSharedIDFromCreateQuery(*data.create_query, data.global_context); + + /// Before storing the metadata in a backup we have to find a zookeeper path in its definition and turn the table's UUID in there + /// back into "{uuid}", and also we probably can remove the zookeeper path and replica name if they're default. + /// So we're kind of reverting what we had done to the table's definition in registerStorageMergeTree.cpp before we created this table. + auto & create = data.create_query->as(); + if (create.uuid == UUIDHelpers::Nil) + return; + + auto & engine = *storage.engine; + + auto * engine_args_ast = typeid_cast(engine.arguments.get()); + if (!engine_args_ast) + return; + + auto & engine_args = engine_args_ast->children; + if (engine_args.size() < 2) + return; + + auto * zookeeper_path_ast = typeid_cast(engine_args[0].get()); + auto * replica_name_ast = typeid_cast(engine_args[1].get()); + if (zookeeper_path_ast && (zookeeper_path_ast->value.getType() == Field::Types::String) && + replica_name_ast && (replica_name_ast->value.getType() == Field::Types::String)) + { + String & zookeeper_path_arg = zookeeper_path_ast->value.get(); + String & replica_name_arg = replica_name_ast->value.get(); + String table_uuid_str = toString(create.uuid); + if (size_t uuid_pos = zookeeper_path_arg.find(table_uuid_str); uuid_pos != String::npos) + zookeeper_path_arg.replace(uuid_pos, table_uuid_str.size(), "{uuid}"); + const auto & config = data.global_context->getConfigRef(); + if ((zookeeper_path_arg == StorageReplicatedMergeTree::getDefaultZooKeeperPath(config)) + && (replica_name_arg == StorageReplicatedMergeTree::getDefaultReplicaName(config)) + && ((engine_args.size() == 2) || !engine_args[2]->as())) + { + engine_args.erase(engine_args.begin(), engine_args.begin() + 2); + } + } + } + + void visitStorage(ASTStorage & storage, const DDLAdjustingForBackupVisitor::Data & data) + { + if (!storage.engine) + return; + + const String & engine_name = storage.engine->name; + if (engine_name.starts_with("System")) + visitStorageSystemTableEngine(storage, data); + else if (engine_name.starts_with("Replicated") && engine_name.ends_with("MergeTree")) + visitStorageReplicatedTableEngine(storage, data); + } + + void visitCreateQuery(ASTCreateQuery & create, const DDLAdjustingForBackupVisitor::Data & data) + { + create.uuid = UUIDHelpers::Nil; + create.to_inner_uuid = UUIDHelpers::Nil; + + if (create.storage) + visitStorage(*create.storage, data); + } +} + + +bool DDLAdjustingForBackupVisitor::needChildVisit(const ASTPtr &, const ASTPtr &) +{ + return false; +} + +void DDLAdjustingForBackupVisitor::visit(ASTPtr ast, const Data & data) +{ + if (auto * create = ast->as()) + visitCreateQuery(*create, data); +} + +void adjustCreateQueryForBackup(ASTPtr & ast, const ContextPtr & global_context, std::optional * replicated_table_shared_id) +{ + ast = ast->clone(); + if (replicated_table_shared_id) + *replicated_table_shared_id = {}; + + DDLAdjustingForBackupVisitor::Data data{ast, global_context, replicated_table_shared_id}; + DDLAdjustingForBackupVisitor::Visitor{data}.visit(ast); +} + +} diff --git a/src/Backups/DDLAdjustingForBackupVisitor.h b/src/Backups/DDLAdjustingForBackupVisitor.h new file mode 100644 index 00000000000..87498471cc4 --- /dev/null +++ b/src/Backups/DDLAdjustingForBackupVisitor.h @@ -0,0 +1,36 @@ +#pragma once + +#include +#include + + +namespace DB +{ +class IAST; +using ASTPtr = std::shared_ptr; +class Context; +using ContextPtr = std::shared_ptr; + +/// Changes a create query to a form which is appropriate or suitable for saving in a backup. +/// Also extracts a replicated table's shared ID from the create query if this is a create query for a replicated table. +/// `replicated_table_shared_id` can be null if you don't need that. +void adjustCreateQueryForBackup(ASTPtr & ast, const ContextPtr & global_context, std::optional * replicated_table_shared_id); + +/// Visits ASTCreateQuery and changes it to a form which is appropriate or suitable for saving in a backup. +class DDLAdjustingForBackupVisitor +{ +public: + struct Data + { + ASTPtr create_query; + ContextPtr global_context; + std::optional * replicated_table_shared_id = nullptr; + }; + + using Visitor = InDepthNodeVisitor; + + static bool needChildVisit(const ASTPtr & ast, const ASTPtr & child); + static void visit(ASTPtr ast, const Data & data); +}; + +} diff --git a/src/Backups/IBackupCoordination.h b/src/Backups/IBackupCoordination.h index 9df5b9efdc4..0ae150c2b47 100644 --- a/src/Backups/IBackupCoordination.h +++ b/src/Backups/IBackupCoordination.h @@ -28,21 +28,21 @@ public: /// Multiple replicas of the replicated table call this function and then the added part names can be returned by call of the function /// getReplicatedPartNames(). /// Checksums are used only to control that parts under the same names on different replicas are the same. - virtual void addReplicatedPartNames(const String & table_zk_path, const String & table_name_for_logs, const String & replica_name, + virtual void addReplicatedPartNames(const String & table_shared_id, const String & table_name_for_logs, const String & replica_name, const std::vector & part_names_and_checksums) = 0; /// Returns the names of the parts which a specified replica of a replicated table should put to the backup. /// This is the same list as it was added by call of the function addReplicatedPartNames() but without duplications and without /// parts covered by another parts. - virtual Strings getReplicatedPartNames(const String & table_zk_path, const String & replica_name) const = 0; + virtual Strings getReplicatedPartNames(const String & table_shared_id, const String & replica_name) const = 0; /// Adds a data path in backup for a replicated table. /// Multiple replicas of the replicated table call this function and then all the added paths can be returned by call of the function /// getReplicatedDataPaths(). - virtual void addReplicatedDataPath(const String & table_zk_path, const String & data_path) = 0; + virtual void addReplicatedDataPath(const String & table_shared_id, const String & data_path) = 0; /// Returns all the data paths in backup added for a replicated table (see also addReplicatedDataPath()). - virtual Strings getReplicatedDataPaths(const String & table_zk_path) const = 0; + virtual Strings getReplicatedDataPaths(const String & table_shared_id) const = 0; struct FileInfo { diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 12151eff08f..90c17ef0427 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -354,7 +355,7 @@ void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name read_buffer.reset(); ParserCreateQuery create_parser; ASTPtr create_table_query = parseQuery(create_parser, create_query_str, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); - renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, create_table_query); + renameDatabaseAndTableNameInCreateQuery(create_table_query, renaming_map, context->getGlobalContext()); QualifiedTableName table_name = renaming_map.getNewTableName(table_name_in_backup); @@ -433,7 +434,7 @@ void RestorerFromBackup::findDatabaseInBackup(const String & database_name_in_ba read_buffer.reset(); ParserCreateQuery create_parser; ASTPtr create_database_query = parseQuery(create_parser, create_query_str, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); - renameDatabaseAndTableNameInCreateQuery(context->getGlobalContext(), renaming_map, create_database_query); + renameDatabaseAndTableNameInCreateQuery(create_database_query, renaming_map, context->getGlobalContext()); String database_name = renaming_map.getNewDatabaseName(database_name_in_backup); DatabaseInfo & database_info = database_infos[database_name]; @@ -587,7 +588,8 @@ void RestorerFromBackup::createDatabases() if (!restore_settings.allow_different_database_def) { /// Check that the database's definition is the same as expected. - ASTPtr create_database_query = database->getCreateDatabaseQueryForBackup(); + ASTPtr create_database_query = database->getCreateDatabaseQuery(); + adjustCreateQueryForBackup(create_database_query, context->getGlobalContext(), nullptr); ASTPtr expected_create_query = database_info.create_database_query; if (serializeAST(*create_database_query) != serializeAST(*expected_create_query)) { @@ -659,7 +661,7 @@ void RestorerFromBackup::createTables() if (!restore_settings.allow_different_table_def) { ASTPtr create_table_query = database->getCreateTableQuery(resolved_id.table_name, context); - storage->adjustCreateQueryForBackup(create_table_query); + adjustCreateQueryForBackup(create_table_query, context->getGlobalContext(), nullptr); ASTPtr expected_create_query = table_info.create_table_query; if (serializeAST(*create_table_query) != serializeAST(*expected_create_query)) { diff --git a/src/Databases/DDLRenamingVisitor.cpp b/src/Databases/DDLRenamingVisitor.cpp index fc14d7abbd9..c8958fa06d4 100644 --- a/src/Databases/DDLRenamingVisitor.cpp +++ b/src/Databases/DDLRenamingVisitor.cpp @@ -307,13 +307,6 @@ void DDLRenamingVisitor::visit(ASTPtr ast, const Data & data) bool DDLRenamingVisitor::needChildVisit(const ASTPtr &, const ASTPtr &) { return true; } -void renameDatabaseAndTableNameInCreateQuery(const ContextPtr & global_context, const DDLRenamingMap & renaming_map, ASTPtr & ast) -{ - DDLRenamingVisitor::Data data{global_context, renaming_map, ast}; - DDLRenamingVisitor::Visitor{data}.visit(ast); -} - - void DDLRenamingMap::setNewTableName(const QualifiedTableName & old_table_name, const QualifiedTableName & new_table_name) { if (old_table_name.table.empty() || old_table_name.database.empty() || new_table_name.table.empty() || new_table_name.database.empty()) @@ -367,4 +360,12 @@ QualifiedTableName DDLRenamingMap::getNewTableName(const QualifiedTableName & ol return {getNewDatabaseName(old_table_name.database), old_table_name.table}; } + +void renameDatabaseAndTableNameInCreateQuery(ASTPtr & ast, const DDLRenamingMap & renaming_map, const ContextPtr & global_context) +{ + ast = ast->clone(); + DDLRenamingVisitor::Data data{ast, renaming_map, global_context}; + DDLRenamingVisitor::Visitor{data}.visit(ast); +} + } diff --git a/src/Databases/DDLRenamingVisitor.h b/src/Databases/DDLRenamingVisitor.h index 72b578b9fcb..11e8c4676e0 100644 --- a/src/Databases/DDLRenamingVisitor.h +++ b/src/Databases/DDLRenamingVisitor.h @@ -17,7 +17,7 @@ class DDLRenamingMap; /// Changes names of databases or tables in a create query according to a specified renaming map. /// Does not validate AST, works a best-effort way. -void renameDatabaseAndTableNameInCreateQuery(const ContextPtr & global_context, const DDLRenamingMap & renaming_map, ASTPtr & ast); +void renameDatabaseAndTableNameInCreateQuery(ASTPtr & ast, const DDLRenamingMap & renaming_map, const ContextPtr & global_context); /// Renaming map keeps information about new names of databases or tables. class DDLRenamingMap @@ -40,9 +40,9 @@ class DDLRenamingVisitor public: struct Data { - ContextPtr global_context; - const DDLRenamingMap & renaming_map; ASTPtr create_query; + const DDLRenamingMap & renaming_map; + ContextPtr global_context; }; using Visitor = InDepthNodeVisitor; diff --git a/src/Databases/DatabaseReplicated.cpp b/src/Databases/DatabaseReplicated.cpp index 6286723aaa3..5a0eec10abb 100644 --- a/src/Databases/DatabaseReplicated.cpp +++ b/src/Databases/DatabaseReplicated.cpp @@ -44,6 +44,7 @@ namespace ErrorCodes extern const int INCORRECT_QUERY; extern const int ALL_CONNECTION_TRIES_FAILED; extern const int NO_ACTIVE_REPLICAS; + extern const int INCONSISTENT_METADATA_FOR_BACKUP; extern const int CANNOT_RESTORE_TABLE; } @@ -923,6 +924,45 @@ String DatabaseReplicated::readMetadataFile(const String & table_name) const } +std::vector> +DatabaseReplicated::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr &) const +{ + /// Here we read metadata from ZooKeeper. We could do that by simple call of DatabaseAtomic::getTablesForBackup() however + /// reading from ZooKeeper is better because thus we won't be dependant on how fast the replication queue of this database is. + std::vector> res; + auto zookeeper = getContext()->getZooKeeper(); + auto escaped_table_names = zookeeper->getChildren(zookeeper_path + "/metadata"); + for (const auto & escaped_table_name : escaped_table_names) + { + String table_name = unescapeForFileName(escaped_table_name); + if (!filter(table_name)) + continue; + String zk_metadata; + if (!zookeeper->tryGet(zookeeper_path + "/metadata/" + escaped_table_name, zk_metadata)) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Metadata for table {} was not found in ZooKeeper", table_name); + + ParserCreateQuery parser; + auto create_table_query = parseQuery(parser, zk_metadata, 0, getContext()->getSettingsRef().max_parser_depth); + + auto & create = create_table_query->as(); + create.attach = false; + create.setTable(table_name); + create.setDatabase(getDatabaseName()); + + StoragePtr storage; + if (create.uuid != UUIDHelpers::Nil) + { + storage = DatabaseCatalog::instance().tryGetByUUID(create.uuid).second; + if (storage) + storage->adjustCreateQueryForBackup(create_table_query); + } + res.emplace_back(create_table_query, storage); + } + + return res; +} + + void DatabaseReplicated::createTableRestoredFromBackup( const ASTPtr & create_table_query, ContextMutablePtr local_context, diff --git a/src/Databases/DatabaseReplicated.h b/src/Databases/DatabaseReplicated.h index 958ee3f133f..07014702067 100644 --- a/src/Databases/DatabaseReplicated.h +++ b/src/Databases/DatabaseReplicated.h @@ -72,6 +72,7 @@ public: void shutdown() override; + std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & local_context) const override; void createTableRestoredFromBackup(const ASTPtr & create_table_query, ContextMutablePtr local_context, std::shared_ptr restore_coordination, UInt64 timeout_ms) override; friend struct DatabaseReplicatedTask; diff --git a/src/Databases/IDatabase.cpp b/src/Databases/IDatabase.cpp index a75f213a6bb..9e33548b0dd 100644 --- a/src/Databases/IDatabase.cpp +++ b/src/Databases/IDatabase.cpp @@ -21,20 +21,9 @@ StoragePtr IDatabase::getTable(const String & name, ContextPtr context) const throw Exception(ErrorCodes::UNKNOWN_TABLE, "Table {}.{} doesn't exist", backQuoteIfNeed(getDatabaseName()), backQuoteIfNeed(name)); } -ASTPtr IDatabase::getCreateDatabaseQueryForBackup() const -{ - auto query = getCreateDatabaseQuery(); - - /// We don't want to see any UUIDs in backup (after RESTORE the database will have another UUID anyway). - auto & create = query->as(); - create.uuid = UUIDHelpers::Nil; - - return query; -} - std::vector> IDatabase::getTablesForBackup(const FilterByNameFunction &, const ContextPtr &) const { - /// Cannot restore any table because IDatabase doesn't own any tables. + /// Cannot backup any table because IDatabase doesn't own any tables. throw Exception(ErrorCodes::CANNOT_BACKUP_TABLE, "Database engine {} does not support backups, cannot backup tables in database {}", getEngineName(), backQuoteIfNeed(getDatabaseName())); diff --git a/src/Databases/IDatabase.h b/src/Databases/IDatabase.h index cdea03aa1cb..72155bc818c 100644 --- a/src/Databases/IDatabase.h +++ b/src/Databases/IDatabase.h @@ -332,9 +332,6 @@ public: throw Exception(ErrorCodes::LOGICAL_ERROR, "Database engine {} does not run a replication thread!", getEngineName()); } - /// Returns a CREATE DATABASE query prepared for writing to a backup. - virtual ASTPtr getCreateDatabaseQueryForBackup() const; - /// Returns CREATE TABLE queries and corresponding tables prepared for writing to a backup. virtual std::vector> getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr & context) const; diff --git a/src/Storages/IStorage.cpp b/src/Storages/IStorage.cpp index a3f35ccc0f8..0d0a242e4fb 100644 --- a/src/Storages/IStorage.cpp +++ b/src/Storages/IStorage.cpp @@ -249,28 +249,8 @@ bool IStorage::isStaticStorage() const return false; } -void IStorage::adjustCreateQueryForBackup(ASTPtr & create_query) const +void IStorage::adjustCreateQueryForBackup(ASTPtr &) const { - create_query = create_query->clone(); - - /// We don't want to see any UUIDs in backup (after RESTORE the table will have another UUID anyway). - auto & create = create_query->as(); - create.uuid = UUIDHelpers::Nil; - create.to_inner_uuid = UUIDHelpers::Nil; - - /// If this is a definition of a system table we'll remove columns and comment because they're reduntant for backups. - if (isSystemStorage()) - { - if (!create.storage || !create.storage->engine) - throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query without table engine for a system table {}", getStorageID().getFullTableName()); - - auto & engine = *(create.storage->engine); - if (!engine.name.starts_with("System")) - throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with an unexpected table engine {} for a system table {}", engine.name, getStorageID().getFullTableName()); - - create.reset(create.columns_list); - create.reset(create.comment); - } } void IStorage::backupData(BackupEntriesCollector &, const String &, const std::optional &) diff --git a/src/Storages/MergeTree/extractZkPathFromCreateQuery.cpp b/src/Storages/MergeTree/extractZkPathFromCreateQuery.cpp new file mode 100644 index 00000000000..45d667047af --- /dev/null +++ b/src/Storages/MergeTree/extractZkPathFromCreateQuery.cpp @@ -0,0 +1,60 @@ +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace DB +{ + +std::optional tryExtractZkPathFromCreateQuery(const IAST & create_query, const ContextPtr & global_context) +{ + const auto * create = create_query.as(); + if (!create || !create->storage || !create->storage->engine) + return {}; + + /// Check if the table engine is one of the ReplicatedMergeTree family. + const auto & ast_engine = *create->storage->engine; + if (!ast_engine.name.starts_with("Replicated") || !ast_engine.name.ends_with("MergeTree")) + return {}; + + /// Get the first argument. + const auto * ast_arguments = typeid_cast(ast_engine.arguments.get()); + if (!ast_arguments || ast_arguments->children.empty()) + return {}; + + auto * ast_zk_path = typeid_cast(ast_arguments->children[0].get()); + if (!ast_zk_path || (ast_zk_path->value.getType() != Field::Types::String)) + return {}; + + String zk_path = ast_zk_path->value.safeGet(); + + /// Expand macros. + Macros::MacroExpansionInfo info; + info.table_id.table_name = create->getTable(); + info.table_id.database_name = create->getDatabase(); + info.table_id.uuid = create->uuid; + auto database = DatabaseCatalog::instance().tryGetDatabase(info.table_id.database_name); + if (database && database->getEngineName() == "Replicated") + { + info.shard = getReplicatedDatabaseShardName(database); + info.replica = getReplicatedDatabaseReplicaName(database); + } + + try + { + zk_path = global_context->getMacros()->expand(zk_path, info); + } + catch (...) + { + return {}; /// Couldn't expand macros. + } + + return zk_path; +} + +} diff --git a/src/Storages/MergeTree/extractZkPathFromCreateQuery.h b/src/Storages/MergeTree/extractZkPathFromCreateQuery.h new file mode 100644 index 00000000000..e22f76d2cd5 --- /dev/null +++ b/src/Storages/MergeTree/extractZkPathFromCreateQuery.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include +#include + + +namespace DB +{ +class IAST; +class Context; +using ContextPtr = std::shared_ptr; + +/// Extracts a zookeeper path from a specified CREATE TABLE query. Returns std::nullopt if fails. +/// The function takes the first argument of the ReplicatedMergeTree table engine and expands macros in it. +/// It works like a part of what the create() function in registerStorageMergeTree.cpp does but in a simpler manner. +std::optional tryExtractZkPathFromCreateQuery(const IAST & create_query, const ContextPtr & global_context); + +} diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 66fb2a64a50..0a544ebad02 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -7504,6 +7505,24 @@ void StorageReplicatedMergeTree::createTableSharedID() } +std::optional StorageReplicatedMergeTree::tryGetTableSharedIDFromCreateQuery(const IAST & create_query, const ContextPtr & global_context) +{ + auto zk_path = tryExtractZkPathFromCreateQuery(create_query, global_context); + if (!zk_path) + return {}; + + String zk_name = zkutil::extractZooKeeperName(*zk_path); + zk_path = zkutil::extractZooKeeperPath(*zk_path, false, nullptr); + zkutil::ZooKeeperPtr zookeeper = (zk_name == getDefaultZooKeeperName()) ? global_context->getZooKeeper() : global_context->getAuxiliaryZooKeeper(zk_name); + + String id; + if (!zookeeper->tryGet(fs::path(*zk_path) / "table_shared_id", id)) + return {}; + + return id; +} + + void StorageReplicatedMergeTree::lockSharedDataTemporary(const String & part_name, const String & part_id, const DiskPtr & disk) const { auto settings = getSettings(); @@ -8258,46 +8277,8 @@ void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_quer { MergeTreeData::adjustCreateQueryForBackup(create_query); - /// Before storing the metadata in a backup we have to find a zookeeper path in its definition and turn the table's UUID in there - /// back into "{uuid}", and also we probably can remove the zookeeper path and replica name if they're default. - /// So we're kind of reverting what we had done to the table's definition in registerStorageMergeTree.cpp before we created this table. - auto & create = create_query->as(); - - if (!create.storage || !create.storage->engine) - throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query without table engine for a replicated table {}", getStorageID().getFullTableName()); - - auto & engine = *(create.storage->engine); - if (!engine.name.starts_with("Replicated") || !engine.name.ends_with("MergeTree")) - throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with an unexpected table engine {} for a replicated table {}", engine.name, getStorageID().getFullTableName()); - - if (create.uuid == UUIDHelpers::Nil) - return; - - auto * engine_args_ast = typeid_cast(engine.arguments.get()); - if (!engine_args_ast) - return; - - auto & engine_args = engine_args_ast->children; - if (engine_args.size() < 2) - return; - - auto * zookeeper_path_ast = typeid_cast(engine_args[0].get()); - auto * replica_name_ast = typeid_cast(engine_args[1].get()); - if (zookeeper_path_ast && (zookeeper_path_ast->value.getType() == Field::Types::String) && - replica_name_ast && (replica_name_ast->value.getType() == Field::Types::String)) - { - String & zookeeper_path_arg = zookeeper_path_ast->value.get(); - String & replica_name_arg = replica_name_ast->value.get(); - String table_uuid_str = toString(create.uuid); - if (size_t uuid_pos = zookeeper_path_arg.find(table_uuid_str); uuid_pos != String::npos) - zookeeper_path_arg.replace(uuid_pos, table_uuid_str.size(), "{uuid}"); - const auto & config = getContext()->getConfigRef(); - if ((zookeeper_path_arg == getDefaultZooKeeperPath(config)) && (replica_name_arg == getDefaultReplicaName(config)) - && ((engine_args.size() == 2) || !engine_args[2]->as())) - { - engine_args.erase(engine_args.begin(), engine_args.begin() + 2); - } - } + if (getTableSharedID() != tryGetTableSharedIDFromCreateQuery(*create_query, getContext())) + throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Table {} has its shared ID to be different from one from the create query"); } void StorageReplicatedMergeTree::backupData( @@ -8309,8 +8290,8 @@ void StorageReplicatedMergeTree::backupData( auto backup_entries = backupParts(backup_entries_collector.getContext(), "", partitions); auto coordination = backup_entries_collector.getBackupCoordination(); - String full_zk_path = getZooKeeperName() + getZooKeeperPath(); - coordination->addReplicatedDataPath(full_zk_path, data_path_in_backup); + String shared_id = getTableSharedID(); + coordination->addReplicatedDataPath(shared_id, data_path_in_backup); std::unordered_map part_names_with_hashes_calculating; for (auto & [relative_path, backup_entry] : backup_entries) @@ -8348,23 +8329,23 @@ void StorageReplicatedMergeTree::backupData( } /// Send our list of part names to the coordination (to compare with other replicas). - coordination->addReplicatedPartNames(full_zk_path, getStorageID().getFullTableName(), getReplicaName(), part_names_with_hashes); + coordination->addReplicatedPartNames(shared_id, getStorageID().getFullTableName(), getReplicaName(), part_names_with_hashes); /// This task will be executed after all replicas have collected their parts and the coordination is ready to /// give us the final list of parts to add to the BackupEntriesCollector. - auto post_collecting_task = [full_zk_path, + auto post_collecting_task = [shared_id, replica_name = getReplicaName(), coordination, backup_entries = std::move(backup_entries), &backup_entries_collector]() { - Strings data_paths = coordination->getReplicatedDataPaths(full_zk_path); + Strings data_paths = coordination->getReplicatedDataPaths(shared_id); std::vector data_paths_fs; data_paths_fs.reserve(data_paths.size()); for (const auto & data_path : data_paths) data_paths_fs.push_back(data_path); - Strings part_names = coordination->getReplicatedPartNames(full_zk_path, replica_name); + Strings part_names = coordination->getReplicatedPartNames(shared_id, replica_name); std::unordered_set part_names_set{part_names.begin(), part_names.end()}; for (const auto & [relative_path, backup_entry] : backup_entries) diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 86120b354bd..18b9ef54777 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -312,6 +312,9 @@ public: // Return table id, common for different replicas String getTableSharedID() const override; + /// Returns the same as getTableSharedID(), but extracts it from a create query. + static std::optional tryGetTableSharedIDFromCreateQuery(const IAST & create_query, const ContextPtr & global_context); + static String getDefaultZooKeeperName() { return default_zookeeper_name; } /// Check if there are new broken disks and enqueue part recovery tasks. diff --git a/tests/integration/test_backup_restore_on_cluster/test.py b/tests/integration/test_backup_restore_on_cluster/test.py index 63198f40af9..885a0d851c2 100644 --- a/tests/integration/test_backup_restore_on_cluster/test.py +++ b/tests/integration/test_backup_restore_on_cluster/test.py @@ -557,3 +557,44 @@ def test_projection(): ) == "2\n" ) + + +def test_replicated_database_with_not_synced_tables(): + node1.query( + "CREATE DATABASE mydb ON CLUSTER 'cluster' ENGINE=Replicated('/clickhouse/path/','{shard}','{replica}')" + ) + + node1.query("CREATE TABLE mydb.tbl(x UInt8, y String) ENGINE=ReplicatedMergeTree ORDER BY x") + + backup_name = new_backup_name() + node2.query(f"BACKUP DATABASE mydb TO {backup_name}") + + node1.query("DROP DATABASE mydb ON CLUSTER 'cluster' NO DELAY") + + node1.query(f"RESTORE DATABASE mydb FROM {backup_name}") + assert node1.query("EXISTS mydb.tbl") == "1\n" + + +def test_replicated_table_with_not_synced_def(): + node1.query( + "CREATE TABLE tbl (" + "x UInt8, y String" + ") ENGINE=ReplicatedMergeTree('/clickhouse/tables/tbl/', '{replica}')" + "ORDER BY tuple()" + ) + + node2.query( + "CREATE TABLE tbl (" + "x UInt8, y String" + ") ENGINE=ReplicatedMergeTree('/clickhouse/tables/tbl/', '{replica}')" + "ORDER BY tuple()" + ) + + node2.query("SYSTEM STOP REPLICATION QUEUES tbl") + node1.query("ALTER TABLE tbl MODIFY COLUMN x String") + + backup_name = new_backup_name() + node2.query(f"BACKUP TABLE tbl ON CLUSTER 'cluster' TO {backup_name}") + + #node1.query("DROP TABLE tbl ON CLUSTER 'cluster' NO DELAY") + #node1.query(f"RESTORE TABLE tbl FROM {backup_name}") From 01921ce9a3322bd719d13a244c94c37594fe36c0 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 26 Jun 2022 17:17:43 +0200 Subject: [PATCH 420/525] Move most code from setTableStructure() to a separate function. --- .../ReplicatedMergeTreeTableMetadata.cpp | 120 ++++++++++++++++++ .../ReplicatedMergeTreeTableMetadata.h | 2 + src/Storages/StorageReplicatedMergeTree.cpp | 117 +---------------- 3 files changed, 123 insertions(+), 116 deletions(-) diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.cpp index 7dee7b8d0f8..ea90179caa3 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -353,4 +354,123 @@ ReplicatedMergeTreeTableMetadata::checkAndFindDiff(const ReplicatedMergeTreeTabl return diff; } +StorageInMemoryMetadata ReplicatedMergeTreeTableMetadata::Diff::getNewMetadata(const ColumnsDescription & new_columns, ContextPtr context, const StorageInMemoryMetadata & old_metadata) const +{ + StorageInMemoryMetadata new_metadata = old_metadata; + new_metadata.columns = new_columns; + + if (!empty()) + { + auto parse_key_expr = [] (const String & key_expr) + { + ParserNotEmptyExpressionList parser(false); + auto new_sorting_key_expr_list = parseQuery(parser, key_expr, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); + + ASTPtr order_by_ast; + if (new_sorting_key_expr_list->children.size() == 1) + order_by_ast = new_sorting_key_expr_list->children[0]; + else + { + auto tuple = makeASTFunction("tuple"); + tuple->arguments->children = new_sorting_key_expr_list->children; + order_by_ast = tuple; + } + return order_by_ast; + }; + + if (sorting_key_changed) + { + auto order_by_ast = parse_key_expr(new_sorting_key); + + new_metadata.sorting_key.recalculateWithNewAST(order_by_ast, new_metadata.columns, context); + + if (new_metadata.primary_key.definition_ast == nullptr) + { + /// Primary and sorting key become independent after this ALTER so we have to + /// save the old ORDER BY expression as the new primary key. + auto old_sorting_key_ast = old_metadata.getSortingKey().definition_ast; + new_metadata.primary_key = KeyDescription::getKeyFromAST( + old_sorting_key_ast, new_metadata.columns, context); + } + } + + if (sampling_expression_changed) + { + if (!new_sampling_expression.empty()) + { + auto sample_by_ast = parse_key_expr(new_sampling_expression); + new_metadata.sampling_key.recalculateWithNewAST(sample_by_ast, new_metadata.columns, context); + } + else /// SAMPLE BY was removed + { + new_metadata.sampling_key = {}; + } + } + + if (skip_indices_changed) + new_metadata.secondary_indices = IndicesDescription::parse(new_skip_indices, new_columns, context); + + if (constraints_changed) + new_metadata.constraints = ConstraintsDescription::parse(new_constraints); + + if (projections_changed) + new_metadata.projections = ProjectionsDescription::parse(new_projections, new_columns, context); + + if (ttl_table_changed) + { + if (!new_ttl_table.empty()) + { + ParserTTLExpressionList parser; + auto ttl_for_table_ast = parseQuery(parser, new_ttl_table, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); + new_metadata.table_ttl = TTLTableDescription::getTTLForTableFromAST( + ttl_for_table_ast, new_metadata.columns, context, new_metadata.primary_key); + } + else /// TTL was removed + { + new_metadata.table_ttl = TTLTableDescription{}; + } + } + } + + /// Changes in columns may affect following metadata fields + new_metadata.column_ttls_by_name.clear(); + for (const auto & [name, ast] : new_metadata.columns.getColumnTTLs()) + { + auto new_ttl_entry = TTLDescription::getTTLFromAST(ast, new_metadata.columns, context, new_metadata.primary_key); + new_metadata.column_ttls_by_name[name] = new_ttl_entry; + } + + if (new_metadata.partition_key.definition_ast != nullptr) + new_metadata.partition_key.recalculateWithNewColumns(new_metadata.columns, context); + + if (!sorting_key_changed) /// otherwise already updated + new_metadata.sorting_key.recalculateWithNewColumns(new_metadata.columns, context); + + /// Primary key is special, it exists even if not defined + if (new_metadata.primary_key.definition_ast != nullptr) + { + new_metadata.primary_key.recalculateWithNewColumns(new_metadata.columns, context); + } + else + { + new_metadata.primary_key = KeyDescription::getKeyFromAST(new_metadata.sorting_key.definition_ast, new_metadata.columns, context); + new_metadata.primary_key.definition_ast = nullptr; + } + + if (!sampling_expression_changed && new_metadata.sampling_key.definition_ast != nullptr) + new_metadata.sampling_key.recalculateWithNewColumns(new_metadata.columns, context); + + if (!skip_indices_changed) /// otherwise already updated + { + for (auto & index : new_metadata.secondary_indices) + index.recalculateWithNewColumns(new_metadata.columns, context); + } + + if (!ttl_table_changed && new_metadata.table_ttl.definition_ast != nullptr) + new_metadata.table_ttl = TTLTableDescription::getTTLForTableFromAST( + new_metadata.table_ttl.definition_ast, new_metadata.columns, context, new_metadata.primary_key); + + return new_metadata; +} + } diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.h b/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.h index 6d510d20304..eb2d087e988 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.h +++ b/src/Storages/MergeTree/ReplicatedMergeTreeTableMetadata.h @@ -66,6 +66,8 @@ struct ReplicatedMergeTreeTableMetadata return !sorting_key_changed && !sampling_expression_changed && !skip_indices_changed && !projections_changed && !ttl_table_changed && !constraints_changed; } + + StorageInMemoryMetadata getNewMetadata(const ColumnsDescription & new_columns, ContextPtr context, const StorageInMemoryMetadata & old_metadata) const; }; void checkEquals(const ReplicatedMergeTreeTableMetadata & from_zk, const ColumnsDescription & columns, ContextPtr context) const; diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 0a544ebad02..8a93c813bae 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -1094,123 +1094,8 @@ void StorageReplicatedMergeTree::checkTableStructure(const String & zookeeper_pr void StorageReplicatedMergeTree::setTableStructure( ColumnsDescription new_columns, const ReplicatedMergeTreeTableMetadata::Diff & metadata_diff) { - StorageInMemoryMetadata new_metadata = getInMemoryMetadata(); StorageInMemoryMetadata old_metadata = getInMemoryMetadata(); - - new_metadata.columns = new_columns; - - if (!metadata_diff.empty()) - { - auto parse_key_expr = [] (const String & key_expr) - { - ParserNotEmptyExpressionList parser(false); - auto new_sorting_key_expr_list = parseQuery(parser, key_expr, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); - - ASTPtr order_by_ast; - if (new_sorting_key_expr_list->children.size() == 1) - order_by_ast = new_sorting_key_expr_list->children[0]; - else - { - auto tuple = makeASTFunction("tuple"); - tuple->arguments->children = new_sorting_key_expr_list->children; - order_by_ast = tuple; - } - return order_by_ast; - }; - - if (metadata_diff.sorting_key_changed) - { - auto order_by_ast = parse_key_expr(metadata_diff.new_sorting_key); - auto & sorting_key = new_metadata.sorting_key; - auto & primary_key = new_metadata.primary_key; - - sorting_key.recalculateWithNewAST(order_by_ast, new_metadata.columns, getContext()); - - if (primary_key.definition_ast == nullptr) - { - /// Primary and sorting key become independent after this ALTER so we have to - /// save the old ORDER BY expression as the new primary key. - auto old_sorting_key_ast = old_metadata.getSortingKey().definition_ast; - primary_key = KeyDescription::getKeyFromAST( - old_sorting_key_ast, new_metadata.columns, getContext()); - } - } - - if (metadata_diff.sampling_expression_changed) - { - if (!metadata_diff.new_sampling_expression.empty()) - { - auto sample_by_ast = parse_key_expr(metadata_diff.new_sampling_expression); - new_metadata.sampling_key.recalculateWithNewAST(sample_by_ast, new_metadata.columns, getContext()); - } - else /// SAMPLE BY was removed - { - new_metadata.sampling_key = {}; - } - } - - if (metadata_diff.skip_indices_changed) - new_metadata.secondary_indices = IndicesDescription::parse(metadata_diff.new_skip_indices, new_columns, getContext()); - - if (metadata_diff.constraints_changed) - new_metadata.constraints = ConstraintsDescription::parse(metadata_diff.new_constraints); - - if (metadata_diff.projections_changed) - new_metadata.projections = ProjectionsDescription::parse(metadata_diff.new_projections, new_columns, getContext()); - - if (metadata_diff.ttl_table_changed) - { - if (!metadata_diff.new_ttl_table.empty()) - { - ParserTTLExpressionList parser; - auto ttl_for_table_ast = parseQuery(parser, metadata_diff.new_ttl_table, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); - new_metadata.table_ttl = TTLTableDescription::getTTLForTableFromAST( - ttl_for_table_ast, new_metadata.columns, getContext(), new_metadata.primary_key); - } - else /// TTL was removed - { - new_metadata.table_ttl = TTLTableDescription{}; - } - } - } - - /// Changes in columns may affect following metadata fields - new_metadata.column_ttls_by_name.clear(); - for (const auto & [name, ast] : new_metadata.columns.getColumnTTLs()) - { - auto new_ttl_entry = TTLDescription::getTTLFromAST(ast, new_metadata.columns, getContext(), new_metadata.primary_key); - new_metadata.column_ttls_by_name[name] = new_ttl_entry; - } - - if (new_metadata.partition_key.definition_ast != nullptr) - new_metadata.partition_key.recalculateWithNewColumns(new_metadata.columns, getContext()); - - if (!metadata_diff.sorting_key_changed) /// otherwise already updated - new_metadata.sorting_key.recalculateWithNewColumns(new_metadata.columns, getContext()); - - /// Primary key is special, it exists even if not defined - if (new_metadata.primary_key.definition_ast != nullptr) - { - new_metadata.primary_key.recalculateWithNewColumns(new_metadata.columns, getContext()); - } - else - { - new_metadata.primary_key = KeyDescription::getKeyFromAST(new_metadata.sorting_key.definition_ast, new_metadata.columns, getContext()); - new_metadata.primary_key.definition_ast = nullptr; - } - - if (!metadata_diff.sampling_expression_changed && new_metadata.sampling_key.definition_ast != nullptr) - new_metadata.sampling_key.recalculateWithNewColumns(new_metadata.columns, getContext()); - - if (!metadata_diff.skip_indices_changed) /// otherwise already updated - { - for (auto & index : new_metadata.secondary_indices) - index.recalculateWithNewColumns(new_metadata.columns, getContext()); - } - - if (!metadata_diff.ttl_table_changed && new_metadata.table_ttl.definition_ast != nullptr) - new_metadata.table_ttl = TTLTableDescription::getTTLForTableFromAST( - new_metadata.table_ttl.definition_ast, new_metadata.columns, getContext(), new_metadata.primary_key); + StorageInMemoryMetadata new_metadata = metadata_diff.getNewMetadata(new_columns, getContext(), old_metadata); /// Even if the primary/sorting/partition keys didn't change we must reinitialize it /// because primary/partition key column types might have changed. From efbee5e7235af09192b5d387202cb6039fba2e6c Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 26 Jun 2022 17:53:20 +0200 Subject: [PATCH 421/525] Improve gathering metadata for backup - part 7. --- src/Storages/StorageReplicatedMergeTree.cpp | 15 +++- .../test_backup_restore_on_cluster/test.py | 90 +++++++++++++++---- 2 files changed, 84 insertions(+), 21 deletions(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 8a93c813bae..c856786ffb3 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -8160,10 +8160,19 @@ void StorageReplicatedMergeTree::createAndStoreFreezeMetadata(DiskPtr disk, Data void StorageReplicatedMergeTree::adjustCreateQueryForBackup(ASTPtr & create_query) const { - MergeTreeData::adjustCreateQueryForBackup(create_query); + /// Adjust the create query using values from ZooKeeper. + auto zookeeper = getZooKeeper(); + auto columns_from_entry = ColumnsDescription::parse(zookeeper->get(fs::path(zookeeper_path) / "columns")); + auto metadata_from_entry = ReplicatedMergeTreeTableMetadata::parse(zookeeper->get(fs::path(zookeeper_path) / "metadata")); - if (getTableSharedID() != tryGetTableSharedIDFromCreateQuery(*create_query, getContext())) - throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Table {} has its shared ID to be different from one from the create query"); + auto current_metadata = getInMemoryMetadataPtr(); + auto metadata_diff = ReplicatedMergeTreeTableMetadata(*this, current_metadata).checkAndFindDiff(metadata_from_entry, current_metadata->getColumns(), getContext()); + auto adjusted_metadata = metadata_diff.getNewMetadata(columns_from_entry, getContext(), *current_metadata); + applyMetadataChangesToCreateQuery(create_query, adjusted_metadata); + + /// Check that tryGetTableSharedIDFromCreateQuery() works for this storage. + if (tryGetTableSharedIDFromCreateQuery(*create_query, getContext()) != getTableSharedID()) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Table {} has its shared ID to be different from one from the create query"); } void StorageReplicatedMergeTree::backupData( diff --git a/tests/integration/test_backup_restore_on_cluster/test.py b/tests/integration/test_backup_restore_on_cluster/test.py index 885a0d851c2..02f855cf766 100644 --- a/tests/integration/test_backup_restore_on_cluster/test.py +++ b/tests/integration/test_backup_restore_on_cluster/test.py @@ -559,22 +559,6 @@ def test_projection(): ) -def test_replicated_database_with_not_synced_tables(): - node1.query( - "CREATE DATABASE mydb ON CLUSTER 'cluster' ENGINE=Replicated('/clickhouse/path/','{shard}','{replica}')" - ) - - node1.query("CREATE TABLE mydb.tbl(x UInt8, y String) ENGINE=ReplicatedMergeTree ORDER BY x") - - backup_name = new_backup_name() - node2.query(f"BACKUP DATABASE mydb TO {backup_name}") - - node1.query("DROP DATABASE mydb ON CLUSTER 'cluster' NO DELAY") - - node1.query(f"RESTORE DATABASE mydb FROM {backup_name}") - assert node1.query("EXISTS mydb.tbl") == "1\n" - - def test_replicated_table_with_not_synced_def(): node1.query( "CREATE TABLE tbl (" @@ -593,8 +577,78 @@ def test_replicated_table_with_not_synced_def(): node2.query("SYSTEM STOP REPLICATION QUEUES tbl") node1.query("ALTER TABLE tbl MODIFY COLUMN x String") + # Not synced because the replication queue is stopped + assert node1.query( + "SELECT name, type FROM system.columns WHERE database='default' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + assert node2.query( + "SELECT name, type FROM system.columns WHERE database='default' AND table='tbl'" + ) == TSV([["x", "UInt8"], ["y", "String"]]) + backup_name = new_backup_name() node2.query(f"BACKUP TABLE tbl ON CLUSTER 'cluster' TO {backup_name}") - #node1.query("DROP TABLE tbl ON CLUSTER 'cluster' NO DELAY") - #node1.query(f"RESTORE TABLE tbl FROM {backup_name}") + node1.query("DROP TABLE tbl ON CLUSTER 'cluster' NO DELAY") + + # But synced after RESTORE anyway + node1.query( + f"RESTORE TABLE tbl ON CLUSTER 'cluster' FROM {backup_name} SETTINGS replica_num_in_backup=1" + ) + assert node1.query( + "SELECT name, type FROM system.columns WHERE database='default' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + assert node2.query( + "SELECT name, type FROM system.columns WHERE database='default' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + + node1.query("DROP TABLE tbl ON CLUSTER 'cluster' NO DELAY") + + node2.query( + f"RESTORE TABLE tbl ON CLUSTER 'cluster' FROM {backup_name} SETTINGS replica_num_in_backup=2" + ) + assert node1.query( + "SELECT name, type FROM system.columns WHERE database='default' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + assert node2.query( + "SELECT name, type FROM system.columns WHERE database='default' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + + +def test_table_in_replicated_database_with_not_synced_def(): + node1.query( + "CREATE DATABASE mydb ON CLUSTER 'cluster' ENGINE=Replicated('/clickhouse/path/','{shard}','{replica}')" + ) + + node1.query( + "CREATE TABLE mydb.tbl (x UInt8, y String) ENGINE=ReplicatedMergeTree ORDER BY tuple()" + ) + + node1.query("ALTER TABLE mydb.tbl MODIFY COLUMN x String") + + backup_name = new_backup_name() + node2.query(f"BACKUP DATABASE mydb ON CLUSTER 'cluster' TO {backup_name}") + + node1.query("DROP DATABASE mydb ON CLUSTER 'cluster' NO DELAY") + + # But synced after RESTORE anyway + node1.query( + f"RESTORE DATABASE mydb ON CLUSTER 'cluster' FROM {backup_name} SETTINGS replica_num_in_backup=1" + ) + assert node1.query( + "SELECT name, type FROM system.columns WHERE database='mydb' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + assert node2.query( + "SELECT name, type FROM system.columns WHERE database='mydb' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + + node1.query("DROP DATABASE mydb ON CLUSTER 'cluster' NO DELAY") + + node2.query( + f"RESTORE DATABASE mydb ON CLUSTER 'cluster' FROM {backup_name} SETTINGS replica_num_in_backup=2" + ) + assert node1.query( + "SELECT name, type FROM system.columns WHERE database='mydb' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) + assert node2.query( + "SELECT name, type FROM system.columns WHERE database='mydb' AND table='tbl'" + ) == TSV([["x", "String"], ["y", "String"]]) From aa97bf512521486353012780116d8cdb9b2b6de4 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Tue, 28 Jun 2022 09:59:02 +0200 Subject: [PATCH 422/525] Improve handling predefined databases and tables. --- src/Backups/BackupEntriesCollector.cpp | 4 +- src/Backups/DDLAdjustingForBackupVisitor.cpp | 3 +- src/Backups/DDLAdjustingForBackupVisitor.h | 2 +- src/Backups/RestorerFromBackup.cpp | 49 ++++++++------------ src/Backups/RestorerFromBackup.h | 2 + src/Databases/DDLRenamingVisitor.cpp | 3 +- src/Databases/DDLRenamingVisitor.h | 2 +- src/Interpreters/DatabaseCatalog.cpp | 45 +++++++++++++++++- src/Interpreters/DatabaseCatalog.h | 9 +++- 9 files changed, 79 insertions(+), 40 deletions(-) diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 8104e363a68..691e72a3f21 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -385,7 +385,7 @@ void BackupEntriesCollector::gatherDatabaseMetadata( DatabaseInfo & database_info = it->second; - if (backup_create_database_query && !database_info.create_database_query && !DatabaseCatalog::isPredefinedDatabaseName(database_name)) + if (backup_create_database_query && !database_info.create_database_query && (database_name != DatabaseCatalog::TEMPORARY_DATABASE)) { ASTPtr create_database_query; try @@ -629,7 +629,7 @@ void BackupEntriesCollector::makeBackupEntriesForDatabasesDefs() for (const auto & [database_name, database_info] : database_infos) { if (!database_info.create_database_query) - continue; /// We don't store CREATE queries for predefined databases (see DatabaseCatalog::isPredefinedDatabaseName()). + continue; /// We store CREATE DATABASE queries only if there was BACKUP DATABASE specified. LOG_TRACE(log, "Adding definition of database {}", backQuoteIfNeed(database_name)); diff --git a/src/Backups/DDLAdjustingForBackupVisitor.cpp b/src/Backups/DDLAdjustingForBackupVisitor.cpp index e3fc3ac5552..7dd58629a49 100644 --- a/src/Backups/DDLAdjustingForBackupVisitor.cpp +++ b/src/Backups/DDLAdjustingForBackupVisitor.cpp @@ -101,9 +101,8 @@ void DDLAdjustingForBackupVisitor::visit(ASTPtr ast, const Data & data) visitCreateQuery(*create, data); } -void adjustCreateQueryForBackup(ASTPtr & ast, const ContextPtr & global_context, std::optional * replicated_table_shared_id) +void adjustCreateQueryForBackup(ASTPtr ast, const ContextPtr & global_context, std::optional * replicated_table_shared_id) { - ast = ast->clone(); if (replicated_table_shared_id) *replicated_table_shared_id = {}; diff --git a/src/Backups/DDLAdjustingForBackupVisitor.h b/src/Backups/DDLAdjustingForBackupVisitor.h index 87498471cc4..63353dcc000 100644 --- a/src/Backups/DDLAdjustingForBackupVisitor.h +++ b/src/Backups/DDLAdjustingForBackupVisitor.h @@ -14,7 +14,7 @@ using ContextPtr = std::shared_ptr; /// Changes a create query to a form which is appropriate or suitable for saving in a backup. /// Also extracts a replicated table's shared ID from the create query if this is a create query for a replicated table. /// `replicated_table_shared_id` can be null if you don't need that. -void adjustCreateQueryForBackup(ASTPtr & ast, const ContextPtr & global_context, std::optional * replicated_table_shared_id); +void adjustCreateQueryForBackup(ASTPtr ast, const ContextPtr & global_context, std::optional * replicated_table_shared_id); /// Visits ASTCreateQuery and changes it to a form which is appropriate or suitable for saving in a backup. class DDLAdjustingForBackupVisitor diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 90c17ef0427..b5f81fe3b9f 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -77,26 +77,14 @@ namespace return str; } - String tryGetTableEngine(const IAST & ast) + /// Whether a specified name corresponds one of the tables backuping ACL. + bool isSystemAccessTableName(const QualifiedTableName & table_name) { - const ASTCreateQuery * create = ast.as(); - if (!create) - return {}; - if (!create->storage || !create->storage->engine) - return {}; - return create->storage->engine->name; - } + if (table_name.database != DatabaseCatalog::SYSTEM_DATABASE) + return false; - bool hasSystemTableEngine(const IAST & ast) - { - return tryGetTableEngine(ast).starts_with("System"); - } - - bool hasSystemAccessTableEngine(const IAST & ast) - { - String engine_name = tryGetTableEngine(ast); - return (engine_name == "SystemUsers") || (engine_name == "SystemRoles") || (engine_name == "SystemSettingsProfiles") - || (engine_name == "SystemRowPolicies") || (engine_name == "SystemQuotas"); + return (table_name.table == "users") || (table_name.table == "roles") || (table_name.table == "settings_profiles") + || (table_name.table == "row_policies") || (table_name.table == "quotas"); } } @@ -375,6 +363,7 @@ void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name TableInfo & res_table_info = table_infos[table_name]; res_table_info.create_table_query = create_table_query; + res_table_info.is_predefined_table = DatabaseCatalog::instance().isPredefinedTable(StorageID{table_name.database, table_name.table}); res_table_info.data_path_in_backup = data_path_in_backup; res_table_info.dependencies = getDependenciesSetFromCreateQuery(context->getGlobalContext(), table_name, create_table_query); @@ -385,7 +374,7 @@ void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name insertAtEnd(*res_table_info.partitions, *partitions); } - if (hasSystemAccessTableEngine(*create_table_query)) + if (isSystemAccessTableName(table_name)) { if (!access_restore_task) access_restore_task = std::make_shared(backup, restore_settings, restore_coordination); @@ -450,6 +439,7 @@ void RestorerFromBackup::findDatabaseInBackup(const String & database_name_in_ba } database_info.create_database_query = create_database_query; + database_info.is_predefined_database = DatabaseCatalog::isPredefinedDatabase(database_name); } for (const String & table_name_in_backup : table_names_in_backup) @@ -491,9 +481,9 @@ void RestorerFromBackup::findEverythingInBackup(const std::set & except_ void RestorerFromBackup::checkAccessForObjectsFoundInBackup() const { AccessRightsElements required_access; - for (const auto & database_name : database_infos | boost::adaptors::map_keys) + for (const auto & [database_name, database_info] : database_infos) { - if (DatabaseCatalog::isPredefinedDatabaseName(database_name)) + if (database_info.is_predefined_database) continue; AccessFlags flags; @@ -509,7 +499,8 @@ void RestorerFromBackup::checkAccessForObjectsFoundInBackup() const for (const auto & [table_name, table_info] : table_infos) { - if (hasSystemTableEngine(*table_info.create_table_query)) + /// Access required to restore ACL system tables is checked separately. + if (table_info.is_predefined_table) continue; if (table_name.database == DatabaseCatalog::TEMPORARY_DATABASE) @@ -565,7 +556,7 @@ void RestorerFromBackup::createDatabases() for (const auto & [database_name, database_info] : database_infos) { bool need_create_database = (restore_settings.create_database != RestoreDatabaseCreationMode::kMustExist); - if (need_create_database && DatabaseCatalog::isPredefinedDatabaseName(database_name)) + if (database_info.is_predefined_database) need_create_database = false; /// Predefined databases always exist. if (need_create_database) @@ -585,7 +576,7 @@ void RestorerFromBackup::createDatabases() DatabasePtr database = DatabaseCatalog::instance().getDatabase(database_name); - if (!restore_settings.allow_different_database_def) + if (!restore_settings.allow_different_database_def && !database_info.is_predefined_database) { /// Check that the database's definition is the same as expected. ASTPtr create_database_query = database->getCreateDatabaseQuery(); @@ -621,13 +612,11 @@ void RestorerFromBackup::createTables() DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_name.database); bool need_create_table = (restore_settings.create_table != RestoreTableCreationMode::kMustExist); - if (need_create_table && hasSystemTableEngine(*table_info.create_table_query)) - need_create_table = false; /// Tables with System* table engine already exist or can't be created by SQL anyway. + if (table_info.is_predefined_table) + need_create_table = false; /// Predefined tables always exist. if (need_create_table) { - /// Execute CREATE TABLE query (we call IDatabase::createTableRestoredFromBackup() to allow the database to do some - /// database-specific things). auto create_table_query = table_info.create_table_query; if (restore_settings.create_table == RestoreTableCreationMode::kCreateIfNotExists) { @@ -641,6 +630,8 @@ void RestorerFromBackup::createTables() tableNameWithTypeToString(table_name.database, table_name.table, false), serializeAST(*create_table_query)); + /// Execute CREATE TABLE query (we call IDatabase::createTableRestoredFromBackup() to allow the database to do some + /// database-specific things). database->createTableRestoredFromBackup( create_table_query, context, @@ -658,7 +649,7 @@ void RestorerFromBackup::createTables() table_info.storage = storage; table_info.table_lock = storage->lockForShare(context->getInitialQueryId(), context->getSettingsRef().lock_acquire_timeout); - if (!restore_settings.allow_different_table_def) + if (!restore_settings.allow_different_table_def && !table_info.is_predefined_table) { ASTPtr create_table_query = database->getCreateTableQuery(resolved_id.table_name, context); adjustCreateQueryForBackup(create_table_query, context->getGlobalContext(), nullptr); diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index f4d19a10cf6..d6f4eabd0dd 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -97,11 +97,13 @@ private: struct DatabaseInfo { ASTPtr create_database_query; + bool is_predefined_database = false; }; struct TableInfo { ASTPtr create_table_query; + bool is_predefined_table = false; std::optional partitions; std::filesystem::path data_path_in_backup; std::unordered_set dependencies; diff --git a/src/Databases/DDLRenamingVisitor.cpp b/src/Databases/DDLRenamingVisitor.cpp index c8958fa06d4..8dbcc2a24bb 100644 --- a/src/Databases/DDLRenamingVisitor.cpp +++ b/src/Databases/DDLRenamingVisitor.cpp @@ -361,9 +361,8 @@ QualifiedTableName DDLRenamingMap::getNewTableName(const QualifiedTableName & ol } -void renameDatabaseAndTableNameInCreateQuery(ASTPtr & ast, const DDLRenamingMap & renaming_map, const ContextPtr & global_context) +void renameDatabaseAndTableNameInCreateQuery(ASTPtr ast, const DDLRenamingMap & renaming_map, const ContextPtr & global_context) { - ast = ast->clone(); DDLRenamingVisitor::Data data{ast, renaming_map, global_context}; DDLRenamingVisitor::Visitor{data}.visit(ast); } diff --git a/src/Databases/DDLRenamingVisitor.h b/src/Databases/DDLRenamingVisitor.h index 11e8c4676e0..44146a8ee6b 100644 --- a/src/Databases/DDLRenamingVisitor.h +++ b/src/Databases/DDLRenamingVisitor.h @@ -17,7 +17,7 @@ class DDLRenamingMap; /// Changes names of databases or tables in a create query according to a specified renaming map. /// Does not validate AST, works a best-effort way. -void renameDatabaseAndTableNameInCreateQuery(ASTPtr & ast, const DDLRenamingMap & renaming_map, const ContextPtr & global_context); +void renameDatabaseAndTableNameInCreateQuery(ASTPtr ast, const DDLRenamingMap & renaming_map, const ContextPtr & global_context); /// Renaming map keeps information about new names of databases or tables. class DDLRenamingMap diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index a0579b813db..bd64b14624c 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -234,12 +234,13 @@ void DatabaseCatalog::shutdownImpl() view_dependencies.clear(); } -bool DatabaseCatalog::isPredefinedDatabaseName(const std::string_view & database_name) +bool DatabaseCatalog::isPredefinedDatabase(const std::string_view & database_name) { return database_name == TEMPORARY_DATABASE || database_name == SYSTEM_DATABASE || database_name == INFORMATION_SCHEMA || database_name == INFORMATION_SCHEMA_UPPERCASE; } + DatabaseAndTable DatabaseCatalog::tryGetByUUID(const UUID & uuid) const { assert(uuid != UUIDHelpers::Nil && getFirstLevelIdx(uuid) < uuid_map.size()); @@ -328,6 +329,48 @@ DatabaseAndTable DatabaseCatalog::getTableImpl( return {database, table}; } +bool DatabaseCatalog::isPredefinedTable(const StorageID & table_id) const +{ + static const char * INFORMATION_SCHEMA_VIEWS[] = {"schemata", "tables", "views", "columns"}; + static const char * INFORMATION_SCHEMA_UPPERCASE_VIEWS[] = {"SCHEMATA", "TABLES", "VIEWS", "COLUMNS"}; + + auto checkDatabaseAndTableName = [&](const String & database_name, const String & table_name) + { + if (database_name == SYSTEM_DATABASE) + { + auto storage = getSystemDatabase()->tryGetTable(table_name, getContext()); + return storage && storage->isSystemStorage(); + } + if (database_name == INFORMATION_SCHEMA) + { + return std::find(std::begin(INFORMATION_SCHEMA_VIEWS), std::end(INFORMATION_SCHEMA_VIEWS), table_name) + != std::end(INFORMATION_SCHEMA_VIEWS); + } + if (database_name == INFORMATION_SCHEMA_UPPERCASE) + { + return std::find(std::begin(INFORMATION_SCHEMA_UPPERCASE_VIEWS), std::end(INFORMATION_SCHEMA_UPPERCASE_VIEWS), table_name) + != std::end(INFORMATION_SCHEMA_UPPERCASE_VIEWS); + } + return false; + }; + + if (table_id.hasUUID()) + { + if (auto storage = tryGetByUUID(table_id.uuid).second) + { + if (storage->isSystemStorage()) + return true; + auto res_id = storage->getStorageID(); + String database_name = res_id.getDatabaseName(); + if (database_name != SYSTEM_DATABASE) + return checkDatabaseAndTableName(database_name, res_id.getTableName()); + } + return false; + } + + return checkDatabaseAndTableName(table_id.getDatabaseName(), table_id.getTableName()); +} + void DatabaseCatalog::assertDatabaseExists(const String & database_name) const { std::lock_guard lock{databases_mutex}; diff --git a/src/Interpreters/DatabaseCatalog.h b/src/Interpreters/DatabaseCatalog.h index 4468cc3a5d8..133cf0c5126 100644 --- a/src/Interpreters/DatabaseCatalog.h +++ b/src/Interpreters/DatabaseCatalog.h @@ -130,8 +130,8 @@ public: static constexpr const char * INFORMATION_SCHEMA = "information_schema"; static constexpr const char * INFORMATION_SCHEMA_UPPERCASE = "INFORMATION_SCHEMA"; - /// Returns true if a passed string is one of the predefined databases' names - static bool isPredefinedDatabaseName(const std::string_view & database_name); + /// Returns true if a passed name is one of the predefined databases' names. + static bool isPredefinedDatabase(const std::string_view & database_name); static DatabaseCatalog & init(ContextMutablePtr global_context_); static DatabaseCatalog & instance(); @@ -181,6 +181,11 @@ public: ContextPtr context, std::optional * exception = nullptr) const; + /// Returns true if a passed table_id refers to one of the predefined tables' names. + /// All tables in the "system" database with System* table engine are predefined. + /// Four views (tables, views, columns, schemata) in the "information_schema" database are predefined too. + bool isPredefinedTable(const StorageID & table_id) const; + void addDependency(const StorageID & from, const StorageID & where); void removeDependency(const StorageID & from, const StorageID & where); Dependencies getDependencies(const StorageID & from) const; From 11b51d2878d2f944fc86044ea5571b71ea9319b0 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Mon, 27 Jun 2022 15:39:12 +0200 Subject: [PATCH 423/525] Implement storing UDF in backups. --- src/Access/AccessBackup.cpp | 2 +- src/Backups/RestoreSettings.cpp | 7 +- src/Backups/RestoreSettings.h | 5 ++ src/Backups/RestorerFromBackup.cpp | 21 +++++- .../System/StorageSystemFunctions.cpp | 74 +++++++++++++++++++ src/Storages/System/StorageSystemFunctions.h | 3 + .../test_backup_restore_new/test.py | 22 ++++++ 7 files changed, 128 insertions(+), 6 deletions(-) diff --git a/src/Access/AccessBackup.cpp b/src/Access/AccessBackup.cpp index 0322ad7457b..dd8cbbf269b 100644 --- a/src/Access/AccessBackup.cpp +++ b/src/Access/AccessBackup.cpp @@ -139,7 +139,7 @@ namespace } catch (Exception & e) { - e.addMessage("While parsing " + file_path); + e.addMessage("While parsing " + file_path + " from backup"); throw; } } diff --git a/src/Backups/RestoreSettings.cpp b/src/Backups/RestoreSettings.cpp index 590d39f24f8..efa1fe2cfb8 100644 --- a/src/Backups/RestoreSettings.cpp +++ b/src/Backups/RestoreSettings.cpp @@ -74,7 +74,7 @@ namespace { case RestoreTableCreationMode::kCreate: return Field{true}; case RestoreTableCreationMode::kMustExist: return Field{false}; - case RestoreTableCreationMode::kCreateIfNotExists: return Field{"if not exists"}; + case RestoreTableCreationMode::kCreateIfNotExists: return Field{"if-not-exists"}; } throw Exception(ErrorCodes::LOGICAL_ERROR, "Unexpected value of enum RestoreTableCreationMode: {}", static_cast(value)); } @@ -131,12 +131,14 @@ namespace switch (value) { case RestoreAccessCreationMode::kCreate: return Field{true}; - case RestoreAccessCreationMode::kCreateIfNotExists: return Field{"if not exists"}; + case RestoreAccessCreationMode::kCreateIfNotExists: return Field{"if-not-exists"}; case RestoreAccessCreationMode::kReplace: return Field{"replace"}; } throw Exception(ErrorCodes::LOGICAL_ERROR, "Unexpected value of enum RestoreAccessCreationMode: {}", static_cast(value)); } }; + + using SettingFieldRestoreUDFCreationMode = SettingFieldRestoreAccessCreationMode; } /// List of restore settings except base_backup_name and cluster_host_ids. @@ -155,6 +157,7 @@ namespace M(Bool, allow_non_empty_tables) \ M(RestoreAccessCreationMode, create_access) \ M(Bool, allow_unresolved_access_dependencies) \ + M(RestoreUDFCreationMode, create_function) \ M(Bool, internal) \ M(String, host_id) \ M(String, coordination_zk_path) diff --git a/src/Backups/RestoreSettings.h b/src/Backups/RestoreSettings.h index 5e941b79508..1bc5d867a37 100644 --- a/src/Backups/RestoreSettings.h +++ b/src/Backups/RestoreSettings.h @@ -36,6 +36,8 @@ enum class RestoreAccessCreationMode kReplace, }; +using RestoreUDFCreationMode = RestoreAccessCreationMode; + /// Settings specified in the "SETTINGS" clause of a RESTORE query. struct RestoreSettings { @@ -99,6 +101,9 @@ struct RestoreSettings /// For example, if an user has a profile assigned and that profile is not in the backup and doesn't exist locally. bool allow_unresolved_access_dependencies = false; + /// How the RESTORE command will handle if a user-defined function which it's going to restore already exists. + RestoreUDFCreationMode create_function = RestoreUDFCreationMode::kCreateIfNotExists; + /// Internal, should not be specified by user. bool internal = false; diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index b5f81fe3b9f..ecd34b12742 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -86,7 +86,13 @@ namespace return (table_name.table == "users") || (table_name.table == "roles") || (table_name.table == "settings_profiles") || (table_name.table == "row_policies") || (table_name.table == "quotas"); } -} + + /// Whether a specified name corresponds one of the tables backuping ACL. + bool isSystemFunctionsTableName(const QualifiedTableName & table_name) + { + return (table_name.database == DatabaseCatalog::SYSTEM_DATABASE) && (table_name.table == "functions"); + } + } RestorerFromBackup::RestorerFromBackup( @@ -374,7 +380,7 @@ void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name insertAtEnd(*res_table_info.partitions, *partitions); } - if (isSystemAccessTableName(table_name)) + if (!restore_settings.structure_only && isSystemAccessTableName(table_name)) { if (!access_restore_task) access_restore_task = std::make_shared(backup, restore_settings, restore_coordination); @@ -499,9 +505,18 @@ void RestorerFromBackup::checkAccessForObjectsFoundInBackup() const for (const auto & [table_name, table_info] : table_infos) { - /// Access required to restore ACL system tables is checked separately. if (table_info.is_predefined_table) + { + if (isSystemFunctionsTableName(table_name)) + { + /// CREATE_FUNCTION privilege is required to restore the "system.functions" table. + if (!restore_settings.structure_only && backup->hasFiles(table_info.data_path_in_backup)) + required_access.emplace_back(AccessType::CREATE_FUNCTION); + } + /// Privileges required to restore ACL system tables are checked separately + /// (see access_restore_task->getRequiredAccess() below). continue; + } if (table_name.database == DatabaseCatalog::TEMPORARY_DATABASE) { diff --git a/src/Storages/System/StorageSystemFunctions.cpp b/src/Storages/System/StorageSystemFunctions.cpp index b3f1231bd1a..e346d8b427b 100644 --- a/src/Storages/System/StorageSystemFunctions.cpp +++ b/src/Storages/System/StorageSystemFunctions.cpp @@ -9,6 +9,16 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include + +namespace fs = std::filesystem; + namespace DB { @@ -20,6 +30,11 @@ enum class FunctionOrigin : Int8 EXECUTABLE_USER_DEFINED = 2 }; +namespace ErrorCodes +{ + extern const int CANNOT_RESTORE_TABLE; +} + namespace { template @@ -99,4 +114,63 @@ void StorageSystemFunctions::fillData(MutableColumns & res_columns, ContextPtr c fillRow(res_columns, function_name, UInt64(0), "", FunctionOrigin::EXECUTABLE_USER_DEFINED, user_defined_executable_functions_factory); } } + +void StorageSystemFunctions::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional &) +{ + const auto & user_defined_sql_functions_factory = UserDefinedSQLFunctionFactory::instance(); + const auto & user_defined_sql_functions_names = user_defined_sql_functions_factory.getAllRegisteredNames(); + fs::path data_path_in_backup_fs{data_path_in_backup}; + for (const auto & function_name : user_defined_sql_functions_names) + { + auto ast = user_defined_sql_functions_factory.tryGet(function_name); + if (!ast) + continue; + backup_entries_collector.addBackupEntry( + data_path_in_backup_fs / (escapeForFileName(function_name) + ".sql"), + std::make_shared(queryToString(ast))); + } +} + +void StorageSystemFunctions::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional &) +{ + auto backup = restorer.getBackup(); + + Strings filenames = backup->listFiles(data_path_in_backup); + for (const auto & filename : filenames) + { + if (!filename.ends_with(".sql")) + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore user-defined functions, expected *.sql files, got {}", filename); + } + + fs::path data_path_in_backup_fs{data_path_in_backup}; + auto & user_defined_sql_functions_factory = UserDefinedSQLFunctionFactory::instance(); + const auto & restore_settings = restorer.getRestoreSettings(); + auto context = restorer.getContext(); + + for (const auto & filename : filenames) + { + String escaped_function_name = filename.substr(0, filename.length() - strlen(".sql")); + String function_name = unescapeForFileName(escaped_function_name); + + String filepath = data_path_in_backup_fs / filename; + auto function_def_entry = backup->readFile(filepath); + auto function_def_in = function_def_entry->getReadBuffer(); + String function_def; + readStringUntilEOF(function_def, *function_def_in); + + ParserCreateFunctionQuery parser; + ASTPtr ast = parseQuery( + parser, + function_def.data(), + function_def.data() + function_def.size(), + "in file " + filepath + " from backup " + backup->getName(), + 0, + context->getSettingsRef().max_parser_depth); + + bool replace = (restore_settings.create_function == RestoreUDFCreationMode::kReplace); + bool if_not_exists = (restore_settings.create_function == RestoreUDFCreationMode::kCreateIfNotExists); + user_defined_sql_functions_factory.registerFunction(context, function_name, ast, replace, if_not_exists, true); + } +} + } diff --git a/src/Storages/System/StorageSystemFunctions.h b/src/Storages/System/StorageSystemFunctions.h index fdbe79e29a2..606694a4c0b 100644 --- a/src/Storages/System/StorageSystemFunctions.h +++ b/src/Storages/System/StorageSystemFunctions.h @@ -19,6 +19,9 @@ public: static NamesAndTypesList getNamesAndTypes(); + void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) override; + void restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) override; + protected: using IStorageSystemOneBlock::IStorageSystemOneBlock; diff --git a/tests/integration/test_backup_restore_new/test.py b/tests/integration/test_backup_restore_new/test.py index 0a39576ce10..a94964bc8a3 100644 --- a/tests/integration/test_backup_restore_new/test.py +++ b/tests/integration/test_backup_restore_new/test.py @@ -777,3 +777,25 @@ def test_projection(): ) == "2\n" ) + + +def test_system_functions(): + instance.query("CREATE FUNCTION linear_equation AS (x, k, b) -> k*x + b;") + + instance.query("CREATE FUNCTION parity_str AS (n) -> if(n % 2, 'odd', 'even');") + + backup_name = new_backup_name() + instance.query(f"BACKUP TABLE system.functions TO {backup_name}") + + instance.query("DROP FUNCTION linear_equation") + instance.query("DROP FUNCTION parity_str") + + instance.query(f"RESTORE TABLE system.functions FROM {backup_name}") + + assert instance.query( + "SELECT number, linear_equation(number, 2, 1) FROM numbers(3)" + ) == TSV([[0, 1], [1, 3], [2, 5]]) + + assert instance.query("SELECT number, parity_str(number) FROM numbers(3)") == TSV( + [[0, "even"], [1, "odd"], [2, "even"]] + ) From 031ca28fdc13ad5a398a722d5dd2d6a48b291ffe Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 29 Jun 2022 14:42:23 +0200 Subject: [PATCH 424/525] Add test for partition clause. More checks for data compatibility on restore. --- src/Access/AccessBackup.cpp | 12 ++++++- src/Access/AccessBackup.h | 3 +- src/Backups/BackupEntriesCollector.cpp | 32 +++++++++++-------- src/Backups/BackupEntriesCollector.h | 3 -- src/Backups/DDLAdjustingForBackupVisitor.cpp | 12 +++---- src/Backups/RestorerFromBackup.cpp | 28 ++++++++-------- src/Backups/RestorerFromBackup.h | 8 ++--- src/Storages/IStorage.cpp | 12 +++++-- src/Storages/IStorage.h | 3 ++ src/Storages/MergeTree/MergeTreeData.cpp | 6 +++- src/Storages/MergeTree/MergeTreeData.h | 3 ++ src/Storages/StorageLog.cpp | 26 +++++++++------ src/Storages/StorageMaterializedView.cpp | 7 ++++ src/Storages/StorageMaterializedView.h | 1 + src/Storages/StorageMemory.cpp | 26 +++++++++------ src/Storages/StorageStripeLog.cpp | 26 +++++++++------ .../System/StorageSystemFunctions.cpp | 11 ++++--- src/Storages/System/StorageSystemQuotas.cpp | 10 ++---- src/Storages/System/StorageSystemRoles.cpp | 10 ++---- .../System/StorageSystemRowPolicies.cpp | 10 ++---- .../System/StorageSystemSettingsProfiles.cpp | 10 ++---- src/Storages/System/StorageSystemUsers.cpp | 10 ++---- .../test_backup_restore_new/test.py | 26 +++++++++++++++ 23 files changed, 177 insertions(+), 118 deletions(-) diff --git a/src/Access/AccessBackup.cpp b/src/Access/AccessBackup.cpp index dd8cbbf269b..180f17e3448 100644 --- a/src/Access/AccessBackup.cpp +++ b/src/Access/AccessBackup.cpp @@ -25,6 +25,7 @@ namespace DB namespace ErrorCodes { + extern const int CANNOT_RESTORE_TABLE; extern const int LOGICAL_ERROR; } @@ -317,12 +318,21 @@ AccessRestoreTask::AccessRestoreTask( AccessRestoreTask::~AccessRestoreTask() = default; -void AccessRestoreTask::addDataPath(const String & data_path) +void AccessRestoreTask::addDataPath(const String & data_path, const QualifiedTableName & table_name_for_logs) { if (!data_paths.emplace(data_path).second) return; + if (!backup->hasFiles(data_path)) + return; + String file_path = fs::path{data_path} / "access.txt"; + if (!backup->fileExists(file_path)) + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", + table_name_for_logs.getFullName(), file_path); + } + auto backup_entry = backup->readFile(file_path); auto ab = AccessEntitiesInBackup::fromBackupEntry(*backup_entry, file_path); diff --git a/src/Access/AccessBackup.h b/src/Access/AccessBackup.h index 5c70e268eae..3eab9fa1494 100644 --- a/src/Access/AccessBackup.h +++ b/src/Access/AccessBackup.h @@ -17,6 +17,7 @@ class IRestoreCoordination; struct IAccessEntity; using AccessEntityPtr = std::shared_ptr; class AccessRightsElements; +struct QualifiedTableName; /// Makes a backup of access entities of a specified type. @@ -35,7 +36,7 @@ public: ~AccessRestoreTask(); /// Adds a data path to loads access entities from. - void addDataPath(const String & data_path); + void addDataPath(const String & data_path, const QualifiedTableName & table_name_for_logs); bool hasDataPath(const String & data_path) const; /// Checks that the current user can do restoring. diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 691e72a3f21..30f1ecd53cd 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -478,6 +478,7 @@ void BackupEntriesCollector::gatherTablesMetadata() for (const auto & db_table : db_tables) { const auto & create_table_query = db_table.first; + const auto & storage = db_table.second; const auto & create = create_table_query->as(); String table_name = create.getTable(); @@ -499,14 +500,28 @@ void BackupEntriesCollector::gatherTablesMetadata() /// Add information to `table_infos`. auto & res_table_info = table_infos[QualifiedTableName{database_name, table_name}]; res_table_info.database = database; - res_table_info.storage = db_table.second; + res_table_info.storage = storage; res_table_info.create_table_query = create_table_query; res_table_info.metadata_path_in_backup = metadata_path_in_backup; res_table_info.data_path_in_backup = data_path_in_backup; - auto partitions_it = database_info.tables.find(table_name); - if (partitions_it != database_info.tables.end()) - res_table_info.partitions = partitions_it->second.partitions; + if (!backup_settings.structure_only) + { + auto it = database_info.tables.find(table_name); + if (it != database_info.tables.end()) + { + const auto & partitions = it->second.partitions; + if (partitions && !storage->supportsBackupPartition()) + { + throw Exception( + ErrorCodes::CANNOT_BACKUP_TABLE, + "Table engine {} doesn't support partitions, cannot backup {}", + storage->getName(), + tableNameWithTypeToString(database_name, table_name, false)); + } + res_table_info.partitions = partitions; + } + } } } } @@ -724,13 +739,4 @@ void BackupEntriesCollector::runPostTasks() } } -void BackupEntriesCollector::throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine) -{ - throw Exception( - ErrorCodes::CANNOT_BACKUP_TABLE, - "Table engine {} doesn't support partitions, cannot backup table {}", - table_engine, - storage_id.getFullTableName()); -} - } diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 46a2bd1863a..3b1260f6c99 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -50,9 +50,6 @@ public: /// 1) we need to join (in a backup) the data of replicated tables gathered on different hosts. void addPostTask(std::function task); - /// Throws an exception that a specified table engine doesn't support partitions. - [[noreturn]] static void throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine); - private: void calculateRootPathInBackup(); diff --git a/src/Backups/DDLAdjustingForBackupVisitor.cpp b/src/Backups/DDLAdjustingForBackupVisitor.cpp index 7dd58629a49..2dedc677df8 100644 --- a/src/Backups/DDLAdjustingForBackupVisitor.cpp +++ b/src/Backups/DDLAdjustingForBackupVisitor.cpp @@ -34,9 +34,6 @@ namespace /// back into "{uuid}", and also we probably can remove the zookeeper path and replica name if they're default. /// So we're kind of reverting what we had done to the table's definition in registerStorageMergeTree.cpp before we created this table. auto & create = data.create_query->as(); - if (create.uuid == UUIDHelpers::Nil) - return; - auto & engine = *storage.engine; auto * engine_args_ast = typeid_cast(engine.arguments.get()); @@ -54,9 +51,12 @@ namespace { String & zookeeper_path_arg = zookeeper_path_ast->value.get(); String & replica_name_arg = replica_name_ast->value.get(); - String table_uuid_str = toString(create.uuid); - if (size_t uuid_pos = zookeeper_path_arg.find(table_uuid_str); uuid_pos != String::npos) - zookeeper_path_arg.replace(uuid_pos, table_uuid_str.size(), "{uuid}"); + if (create.uuid != UUIDHelpers::Nil) + { + String table_uuid_str = toString(create.uuid); + if (size_t uuid_pos = zookeeper_path_arg.find(table_uuid_str); uuid_pos != String::npos) + zookeeper_path_arg.replace(uuid_pos, table_uuid_str.size(), "{uuid}"); + } const auto & config = data.global_context->getConfigRef(); if ((zookeeper_path_arg == StorageReplicatedMergeTree::getDefaultZooKeeperPath(config)) && (replica_name_arg == StorageReplicatedMergeTree::getDefaultReplicaName(config)) diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index ecd34b12742..247660bbce4 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -370,8 +370,9 @@ void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name TableInfo & res_table_info = table_infos[table_name]; res_table_info.create_table_query = create_table_query; res_table_info.is_predefined_table = DatabaseCatalog::instance().isPredefinedTable(StorageID{table_name.database, table_name.table}); - res_table_info.data_path_in_backup = data_path_in_backup; res_table_info.dependencies = getDependenciesSetFromCreateQuery(context->getGlobalContext(), table_name, create_table_query); + res_table_info.has_data = backup->hasFiles(data_path_in_backup); + res_table_info.data_path_in_backup = data_path_in_backup; if (partitions) { @@ -384,7 +385,7 @@ void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name { if (!access_restore_task) access_restore_task = std::make_shared(backup, restore_settings, restore_coordination); - access_restore_task->addDataPath(data_path_in_backup); + access_restore_task->addDataPath(data_path_in_backup, table_name); } } @@ -510,7 +511,7 @@ void RestorerFromBackup::checkAccessForObjectsFoundInBackup() const if (isSystemFunctionsTableName(table_name)) { /// CREATE_FUNCTION privilege is required to restore the "system.functions" table. - if (!restore_settings.structure_only && backup->hasFiles(table_info.data_path_in_backup)) + if (!restore_settings.structure_only && table_info.has_data) required_access.emplace_back(AccessType::CREATE_FUNCTION); } /// Privileges required to restore ACL system tables are checked separately @@ -538,8 +539,7 @@ void RestorerFromBackup::checkAccessForObjectsFoundInBackup() const flags |= AccessType::CREATE_TABLE; } - if (!restore_settings.structure_only && !create.is_dictionary && !create.is_ordinary_view - && backup->hasFiles(table_info.data_path_in_backup)) + if (!restore_settings.structure_only && table_info.has_data) { flags |= AccessType::INSERT; } @@ -685,6 +685,15 @@ void RestorerFromBackup::createTables() { const auto & data_path_in_backup = table_info.data_path_in_backup; const auto & partitions = table_info.partitions; + if (partitions && !storage->supportsBackupPartition()) + { + throw Exception( + ErrorCodes::CANNOT_RESTORE_TABLE, + "Table engine {} doesn't support partitions, cannot restore {}", + storage->getName(), + tableNameWithTypeToString(table_name.database, table_name.table, false)); + } + storage->restoreDataFromBackup(*this, data_path_in_backup, partitions); } } @@ -795,15 +804,6 @@ RestorerFromBackup::DataRestoreTasks RestorerFromBackup::getDataRestoreTasks() return res_tasks; } -void RestorerFromBackup::throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine) -{ - throw Exception( - ErrorCodes::CANNOT_RESTORE_TABLE, - "Table engine {} doesn't support partitions, cannot table {}", - table_engine, - storage_id.getFullTableName()); -} - void RestorerFromBackup::throwTableIsNotEmpty(const StorageID & storage_id) { throw Exception( diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index d6f4eabd0dd..e47aca0e69f 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -59,9 +59,6 @@ public: /// Checks that a specified path is already registered to be used for restoring access control. void checkPathInBackupIsRegisteredToRestoreAccess(const String & path); - /// Throws an exception that a specified table engine doesn't support partitions. - [[noreturn]] static void throwPartitionsNotSupported(const StorageID & storage_id, const String & table_engine); - /// Throws an exception that a specified table is already non-empty. [[noreturn]] static void throwTableIsNotEmpty(const StorageID & storage_id); @@ -104,9 +101,10 @@ private: { ASTPtr create_table_query; bool is_predefined_table = false; - std::optional partitions; - std::filesystem::path data_path_in_backup; std::unordered_set dependencies; + bool has_data = false; + std::filesystem::path data_path_in_backup; + std::optional partitions; bool created = false; StoragePtr storage; TableLockHolder table_lock; diff --git a/src/Storages/IStorage.cpp b/src/Storages/IStorage.cpp index 0d0a242e4fb..fc29769790d 100644 --- a/src/Storages/IStorage.cpp +++ b/src/Storages/IStorage.cpp @@ -14,7 +14,8 @@ #include #include #include -#include +#include +#include namespace DB @@ -24,7 +25,7 @@ namespace ErrorCodes extern const int TABLE_IS_DROPPED; extern const int NOT_IMPLEMENTED; extern const int DEADLOCK_AVOIDED; - extern const int INCONSISTENT_METADATA_FOR_BACKUP; + extern const int CANNOT_RESTORE_TABLE; } bool IStorage::isVirtualColumn(const String & column_name, const StorageMetadataPtr & metadata_snapshot) const @@ -257,8 +258,13 @@ void IStorage::backupData(BackupEntriesCollector &, const String &, const std::o { } -void IStorage::restoreDataFromBackup(RestorerFromBackup &, const String &, const std::optional &) +void IStorage::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional &) { + /// If an inherited class doesn't override restoreDataFromBackup() that means it doesn't backup any data. + auto filenames = restorer.getBackup()->listFiles(data_path_in_backup); + if (!filenames.empty()) + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: Folder {} in backup must be empty", + getStorageID().getFullTableName(), data_path_in_backup); } std::string PrewhereInfo::dump() const diff --git a/src/Storages/IStorage.h b/src/Storages/IStorage.h index 34170785896..e265c94eb11 100644 --- a/src/Storages/IStorage.h +++ b/src/Storages/IStorage.h @@ -232,6 +232,9 @@ public: /// Extracts data from the backup and put it to the storage. virtual void restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions); + /// Returns true if the storage supports backup/restore for specific partitions. + virtual bool supportsBackupPartition() const { return false; } + private: StorageID storage_id; diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 02d4d9ebe8b..d4b2c8d177e 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -150,6 +150,7 @@ namespace ErrorCodes extern const int SUPPORT_IS_DISABLED; extern const int TOO_MANY_SIMULTANEOUS_QUERIES; extern const int INCORRECT_QUERY; + extern const int CANNOT_RESTORE_TABLE; } static void checkSampleExpression(const StorageInMemoryMetadata & metadata, bool allow_sampling_expression_not_in_primary_key, bool check_sample_column_is_correct) @@ -4092,7 +4093,10 @@ void MergeTreeData::restorePartsFromBackup(RestorerFromBackup & restorer, const { const auto part_info = MergeTreePartInfo::tryParsePartName(part_name, format_version); if (!part_info) - continue; + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File name {} doesn't look like the name of a part", + getStorageID().getFullTableName(), String{data_path_in_backup_fs / part_name}); + } if (partition_ids && !partition_ids->contains(part_info->partition_id)) continue; diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 4fd7dd7d3cf..9aa14367f80 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -716,6 +716,9 @@ public: /// Extract data from the backup and put it to the storage. void restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) override; + /// Returns true if the storage supports backup/restore for specific partitions. + bool supportsBackupPartition() const override { return true; } + /// Moves partition to specified Disk void movePartitionToDisk(const ASTPtr & partition, const String & name, bool moving_part, ContextPtr context); diff --git a/src/Storages/StorageLog.cpp b/src/Storages/StorageLog.cpp index 1324ebf5b28..ac6ead54016 100644 --- a/src/Storages/StorageLog.cpp +++ b/src/Storages/StorageLog.cpp @@ -51,6 +51,7 @@ namespace ErrorCodes extern const int SIZES_OF_MARKS_FILES_ARE_INCONSISTENT; extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; extern const int INCORRECT_FILE_NAME; + extern const int CANNOT_RESTORE_TABLE; } /// NOTE: The lock `StorageLog::rwlock` is NOT kept locked while reading, @@ -921,11 +922,8 @@ std::optional StorageLog::totalBytes(const Settings &) const return total_bytes; } -void StorageLog::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) +void StorageLog::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - auto lock_timeout = getLockTimeout(backup_entries_collector.getContext()); loadMarks(lock_timeout); @@ -986,16 +984,16 @@ void StorageLog::backupData(BackupEntriesCollector & backup_entries_collector, c } } -void StorageLog::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) +void StorageLog::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); + auto backup = restorer.getBackup(); + if (!backup->hasFiles(data_path_in_backup)) + return; if (!num_data_files) return; - auto backup = restorer.getBackup(); - if (!restorer.isNonEmptyTableAllowed() && total_bytes && backup->hasFiles(data_path_in_backup)) + if (!restorer.isNonEmptyTableAllowed() && total_bytes) RestorerFromBackup::throwTableIsNotEmpty(getStorageID()); auto lock_timeout = getLockTimeout(restorer.getContext()); @@ -1024,6 +1022,11 @@ void StorageLog::restoreDataImpl(const BackupPtr & backup, const String & data_p for (const auto & data_file : data_files) { String file_path_in_backup = data_path_in_backup_fs / fileName(data_file.path); + if (!backup->fileExists(file_path_in_backup)) + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", + getStorageID().getFullTableName(), file_path_in_backup); + } auto backup_entry = backup->readFile(file_path_in_backup); auto in = backup_entry->getReadBuffer(); auto out = disk->writeFile(data_file.path, max_compress_block_size, WriteMode::Append); @@ -1035,6 +1038,11 @@ void StorageLog::restoreDataImpl(const BackupPtr & backup, const String & data_p /// Append marks. size_t num_extra_marks = 0; String file_path_in_backup = data_path_in_backup_fs / fileName(marks_file_path); + if (!backup->fileExists(file_path_in_backup)) + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", + getStorageID().getFullTableName(), file_path_in_backup); + } size_t file_size = backup->getFileSize(file_path_in_backup); if (file_size % (num_data_files * sizeof(Mark)) != 0) throw Exception("Size of marks file is inconsistent", ErrorCodes::SIZES_OF_MARKS_FILES_ARE_INCONSISTENT); diff --git a/src/Storages/StorageMaterializedView.cpp b/src/Storages/StorageMaterializedView.cpp index 2ece0af3359..b01415f9590 100644 --- a/src/Storages/StorageMaterializedView.cpp +++ b/src/Storages/StorageMaterializedView.cpp @@ -421,6 +421,13 @@ void StorageMaterializedView::restoreDataFromBackup(RestorerFromBackup & restore return getTargetTable()->restoreDataFromBackup(restorer, data_path_in_backup, partitions); } +bool StorageMaterializedView::supportsBackupPartition() const +{ + if (hasInnerTable()) + return getTargetTable()->supportsBackupPartition(); + return false; +} + std::optional StorageMaterializedView::totalRows(const Settings & settings) const { if (hasInnerTable()) diff --git a/src/Storages/StorageMaterializedView.h b/src/Storages/StorageMaterializedView.h index 0adf394876c..1d8808b302e 100644 --- a/src/Storages/StorageMaterializedView.h +++ b/src/Storages/StorageMaterializedView.h @@ -97,6 +97,7 @@ public: void backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) override; void restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) override; + bool supportsBackupPartition() const override; std::optional totalRows(const Settings & settings) const override; std::optional totalBytes(const Settings & settings) const override; diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 5de8c3bda43..7baecaa594f 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -38,6 +38,7 @@ namespace DB namespace ErrorCodes { extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; + extern const int CANNOT_RESTORE_TABLE; } @@ -479,24 +480,21 @@ namespace }; } -void StorageMemory::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) +void StorageMemory::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - auto max_compress_block_size = backup_entries_collector.getContext()->getSettingsRef().max_compress_block_size; backup_entries_collector.addBackupEntries( std::make_shared(getInMemoryMetadataPtr(), data.get(), data_path_in_backup, max_compress_block_size) ->getBackupEntries()); } -void StorageMemory::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) +void StorageMemory::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); - auto backup = restorer.getBackup(); - if (!restorer.isNonEmptyTableAllowed() && total_size_bytes && backup->hasFiles(data_path_in_backup)) + if (!backup->hasFiles(data_path_in_backup)) + return; + + if (!restorer.isNonEmptyTableAllowed() && total_size_bytes) RestorerFromBackup::throwTableIsNotEmpty(getStorageID()); restorer.addDataRestoreTask( @@ -514,6 +512,11 @@ void StorageMemory::restoreDataImpl(const BackupPtr & backup, const String & dat IndexForNativeFormat index; { String index_file_path = data_path_in_backup_fs / "index.mrk"; + if (!backup->fileExists(index_file_path)) + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", + getStorageID().getFullTableName(), index_file_path); + } auto backup_entry = backup->readFile(index_file_path); auto in = backup_entry->getReadBuffer(); CompressedReadBuffer compressed_in{*in}; @@ -526,6 +529,11 @@ void StorageMemory::restoreDataImpl(const BackupPtr & backup, const String & dat size_t new_rows = 0; { String data_file_path = data_path_in_backup_fs / "data.bin"; + if (!backup->fileExists(data_file_path)) + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", + getStorageID().getFullTableName(), data_file_path); + } auto backup_entry = backup->readFile(data_file_path); std::unique_ptr in = backup_entry->getReadBuffer(); std::optional temp_data_copy; diff --git a/src/Storages/StorageStripeLog.cpp b/src/Storages/StorageStripeLog.cpp index d569a81c4a7..2033d33a33d 100644 --- a/src/Storages/StorageStripeLog.cpp +++ b/src/Storages/StorageStripeLog.cpp @@ -55,6 +55,7 @@ namespace ErrorCodes extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; extern const int INCORRECT_FILE_NAME; extern const int TIMEOUT_EXCEEDED; + extern const int CANNOT_RESTORE_TABLE; } @@ -527,11 +528,8 @@ std::optional StorageStripeLog::totalBytes(const Settings &) const } -void StorageStripeLog::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) +void StorageStripeLog::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - auto lock_timeout = getLockTimeout(backup_entries_collector.getContext()); loadIndices(lock_timeout); @@ -589,13 +587,13 @@ void StorageStripeLog::backupData(BackupEntriesCollector & backup_entries_collec data_path_in_backup_fs / "count.txt", std::make_unique(toString(num_rows))); } -void StorageStripeLog::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) +void StorageStripeLog::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); - auto backup = restorer.getBackup(); - if (!restorer.isNonEmptyTableAllowed() && total_bytes && backup->hasFiles(data_path_in_backup)) + if (!backup->hasFiles(data_path_in_backup)) + return; + + if (!restorer.isNonEmptyTableAllowed() && total_bytes) RestorerFromBackup::throwTableIsNotEmpty(getStorageID()); auto lock_timeout = getLockTimeout(restorer.getContext()); @@ -624,6 +622,11 @@ void StorageStripeLog::restoreDataImpl(const BackupPtr & backup, const String & auto old_data_size = file_checker.getFileSize(data_file_path); { String file_path_in_backup = data_path_in_backup_fs / fileName(data_file_path); + if (!backup->fileExists(file_path_in_backup)) + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", + getStorageID().getFullTableName(), file_path_in_backup); + } auto backup_entry = backup->readFile(file_path_in_backup); auto in = backup_entry->getReadBuffer(); auto out = disk->writeFile(data_file_path, max_compress_block_size, WriteMode::Append); @@ -634,6 +637,11 @@ void StorageStripeLog::restoreDataImpl(const BackupPtr & backup, const String & { String index_path_in_backup = data_path_in_backup_fs / fileName(index_file_path); IndexForNativeFormat extra_indices; + if (!backup->fileExists(index_path_in_backup)) + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", + getStorageID().getFullTableName(), index_path_in_backup); + } auto backup_entry = backup->readFile(index_path_in_backup); auto index_in = backup_entry->getReadBuffer(); CompressedReadBuffer index_compressed_in{*index_in}; diff --git a/src/Storages/System/StorageSystemFunctions.cpp b/src/Storages/System/StorageSystemFunctions.cpp index e346d8b427b..e2bc699d3f1 100644 --- a/src/Storages/System/StorageSystemFunctions.cpp +++ b/src/Storages/System/StorageSystemFunctions.cpp @@ -115,7 +115,7 @@ void StorageSystemFunctions::fillData(MutableColumns & res_columns, ContextPtr c } } -void StorageSystemFunctions::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional &) +void StorageSystemFunctions::backupData(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { const auto & user_defined_sql_functions_factory = UserDefinedSQLFunctionFactory::instance(); const auto & user_defined_sql_functions_names = user_defined_sql_functions_factory.getAllRegisteredNames(); @@ -131,18 +131,21 @@ void StorageSystemFunctions::backupData(BackupEntriesCollector & backup_entries_ } } -void StorageSystemFunctions::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional &) +void StorageSystemFunctions::restoreDataFromBackup(RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { auto backup = restorer.getBackup(); + fs::path data_path_in_backup_fs{data_path_in_backup}; Strings filenames = backup->listFiles(data_path_in_backup); for (const auto & filename : filenames) { if (!filename.ends_with(".sql")) - throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore user-defined functions, expected *.sql files, got {}", filename); + { + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File name {} doesn't have the extension .sql", + getStorageID().getFullTableName(), String{data_path_in_backup_fs / filename}); + } } - fs::path data_path_in_backup_fs{data_path_in_backup}; auto & user_defined_sql_functions_factory = UserDefinedSQLFunctionFactory::instance(); const auto & restore_settings = restorer.getRestoreSettings(); auto context = restorer.getContext(); diff --git a/src/Storages/System/StorageSystemQuotas.cpp b/src/Storages/System/StorageSystemQuotas.cpp index efe6b93fe57..27cf64cbcb4 100644 --- a/src/Storages/System/StorageSystemQuotas.cpp +++ b/src/Storages/System/StorageSystemQuotas.cpp @@ -122,21 +122,15 @@ void StorageSystemQuotas::fillData(MutableColumns & res_columns, ContextPtr cont } void StorageSystemQuotas::backupData( - BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) + BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); access_control.backup(backup_entries_collector, AccessEntityType::QUOTA, data_path_in_backup); } void StorageSystemQuotas::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) + RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); - auto & access_control = restorer.getContext()->getAccessControl(); access_control.restore(restorer, data_path_in_backup); } diff --git a/src/Storages/System/StorageSystemRoles.cpp b/src/Storages/System/StorageSystemRoles.cpp index ff3490ce8ba..22597530835 100644 --- a/src/Storages/System/StorageSystemRoles.cpp +++ b/src/Storages/System/StorageSystemRoles.cpp @@ -60,21 +60,15 @@ void StorageSystemRoles::fillData(MutableColumns & res_columns, ContextPtr conte } void StorageSystemRoles::backupData( - BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) + BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); access_control.backup(backup_entries_collector, AccessEntityType::ROLE, data_path_in_backup); } void StorageSystemRoles::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) + RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); - auto & access_control = restorer.getContext()->getAccessControl(); access_control.restore(restorer, data_path_in_backup); } diff --git a/src/Storages/System/StorageSystemRowPolicies.cpp b/src/Storages/System/StorageSystemRowPolicies.cpp index 680f90adff7..1e13654d188 100644 --- a/src/Storages/System/StorageSystemRowPolicies.cpp +++ b/src/Storages/System/StorageSystemRowPolicies.cpp @@ -140,21 +140,15 @@ void StorageSystemRowPolicies::fillData(MutableColumns & res_columns, ContextPtr } void StorageSystemRowPolicies::backupData( - BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) + BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); access_control.backup(backup_entries_collector, AccessEntityType::ROW_POLICY, data_path_in_backup); } void StorageSystemRowPolicies::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) + RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); - auto & access_control = restorer.getContext()->getAccessControl(); access_control.restore(restorer, data_path_in_backup); } diff --git a/src/Storages/System/StorageSystemSettingsProfiles.cpp b/src/Storages/System/StorageSystemSettingsProfiles.cpp index 7c3ccfe863a..aaf5bedadd0 100644 --- a/src/Storages/System/StorageSystemSettingsProfiles.cpp +++ b/src/Storages/System/StorageSystemSettingsProfiles.cpp @@ -87,21 +87,15 @@ void StorageSystemSettingsProfiles::fillData(MutableColumns & res_columns, Conte } void StorageSystemSettingsProfiles::backupData( - BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) + BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); access_control.backup(backup_entries_collector, AccessEntityType::SETTINGS_PROFILE, data_path_in_backup); } void StorageSystemSettingsProfiles::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) + RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); - auto & access_control = restorer.getContext()->getAccessControl(); access_control.restore(restorer, data_path_in_backup); } diff --git a/src/Storages/System/StorageSystemUsers.cpp b/src/Storages/System/StorageSystemUsers.cpp index f2cae638d45..d8dc1722a91 100644 --- a/src/Storages/System/StorageSystemUsers.cpp +++ b/src/Storages/System/StorageSystemUsers.cpp @@ -215,21 +215,15 @@ void StorageSystemUsers::fillData(MutableColumns & res_columns, ContextPtr conte } void StorageSystemUsers::backupData( - BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & partitions) + BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - BackupEntriesCollector::throwPartitionsNotSupported(getStorageID(), getName()); - const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); access_control.backup(backup_entries_collector, AccessEntityType::USER, data_path_in_backup); } void StorageSystemUsers::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & partitions) + RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) { - if (partitions) - RestorerFromBackup::throwPartitionsNotSupported(getStorageID(), getName()); - auto & access_control = restorer.getContext()->getAccessControl(); access_control.restore(restorer, data_path_in_backup); } diff --git a/tests/integration/test_backup_restore_new/test.py b/tests/integration/test_backup_restore_new/test.py index a94964bc8a3..7894daf5bad 100644 --- a/tests/integration/test_backup_restore_new/test.py +++ b/tests/integration/test_backup_restore_new/test.py @@ -799,3 +799,29 @@ def test_system_functions(): assert instance.query("SELECT number, parity_str(number) FROM numbers(3)") == TSV( [[0, "even"], [1, "odd"], [2, "even"]] ) + + +def test_backup_partition(): + create_and_fill_table(n=30) + + backup_name = new_backup_name() + instance.query(f"BACKUP TABLE test.table PARTITIONS '1', '4' TO {backup_name}") + + instance.query("DROP TABLE test.table") + + instance.query(f"RESTORE TABLE test.table FROM {backup_name}") + + assert instance.query("SELECT * FROM test.table ORDER BY x") == TSV([[1, '1'], [4, '4'], [11, '11'], [14, '14'], [21, '21'], [24, '24']]) + + +def test_restore_partition(): + create_and_fill_table(n=30) + + backup_name = new_backup_name() + instance.query(f"BACKUP TABLE test.table TO {backup_name}") + + instance.query("DROP TABLE test.table") + + instance.query(f"RESTORE TABLE test.table PARTITIONS '2', '3' FROM {backup_name}") + + assert instance.query("SELECT * FROM test.table ORDER BY x") == TSV([[2, '2'], [3, '3'], [12, '12'], [13, '13'], [22, '22'], [23, '23']]) From 5456bde4a2e6f40754d52de07b1c6115ef261079 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 29 Jun 2022 22:44:05 +0200 Subject: [PATCH 425/525] Improve gathering metadata for storing ACL in backups. --- src/Access/AccessBackup.cpp | 75 ++++++++++--------- src/Access/AccessBackup.h | 36 +++++---- src/Access/AccessControl.cpp | 15 +--- src/Access/AccessControl.h | 7 +- src/Access/DiskAccessStorage.cpp | 22 ++++-- src/Access/DiskAccessStorage.h | 2 +- src/Access/IAccessStorage.cpp | 30 +++++--- src/Access/IAccessStorage.h | 11 ++- src/Access/MemoryAccessStorage.cpp | 22 ++++-- src/Access/MemoryAccessStorage.h | 2 +- src/Access/MultipleAccessStorage.cpp | 22 +++--- src/Access/MultipleAccessStorage.h | 4 +- src/Access/ReplicatedAccessStorage.cpp | 62 +++++++++++++-- src/Access/ReplicatedAccessStorage.h | 3 +- src/Backups/BackupCoordinationDistributed.cpp | 43 +++++++++++ src/Backups/BackupCoordinationDistributed.h | 6 ++ src/Backups/BackupCoordinationLocal.cpp | 31 ++++++++ src/Backups/BackupCoordinationLocal.h | 8 ++ src/Backups/BackupEntriesCollector.cpp | 12 +++ src/Backups/BackupEntriesCollector.h | 6 ++ src/Backups/IBackupCoordination.h | 8 ++ src/Backups/RestorerFromBackup.cpp | 32 ++++---- src/Backups/RestorerFromBackup.h | 11 ++- src/Storages/System/StorageSystemQuotas.cpp | 6 +- src/Storages/System/StorageSystemRoles.cpp | 6 +- .../System/StorageSystemRowPolicies.cpp | 6 +- .../System/StorageSystemSettingsProfiles.cpp | 6 +- src/Storages/System/StorageSystemUsers.cpp | 6 +- 28 files changed, 337 insertions(+), 163 deletions(-) diff --git a/src/Access/AccessBackup.cpp b/src/Access/AccessBackup.cpp index 180f17e3448..bd1344a6f14 100644 --- a/src/Access/AccessBackup.cpp +++ b/src/Access/AccessBackup.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -226,7 +227,7 @@ namespace } } - AccessRightsElements getRequiredAccessToRestore(const std::unordered_map & entities) + AccessRightsElements getRequiredAccessToRestore(const std::vector> & entities) { AccessRightsElements res; for (const auto & entity : entities | boost::adaptors::map_values) @@ -295,74 +296,78 @@ namespace } } -void backupAccessEntities( - BackupEntriesCollector & backup_entries_collector, + +std::pair makeBackupEntryForAccess( + const std::vector> access_entities, const String & data_path_in_backup, - const AccessControl & access_control, - AccessEntityType type) + size_t counter, + const AccessControl & access_control) { - auto entities = access_control.readAllForBackup(type, backup_entries_collector.getBackupSettings()); - auto dependencies = readDependenciesNamesAndTypes(findDependencies(entities), access_control); + auto dependencies = readDependenciesNamesAndTypes(findDependencies(access_entities), access_control); AccessEntitiesInBackup ab; - boost::range::copy(entities, std::inserter(ab.entities, ab.entities.end())); + boost::range::copy(access_entities, std::inserter(ab.entities, ab.entities.end())); ab.dependencies = std::move(dependencies); - backup_entries_collector.addBackupEntry(fs::path{data_path_in_backup} / "access.txt", ab.toBackupEntry()); + String filename = fmt::format("access{:02}.txt", counter + 1); /// access01.txt, access02.txt, ... + String file_path_in_backup = fs::path{data_path_in_backup} / filename; + return {file_path_in_backup, ab.toBackupEntry()}; } -AccessRestoreTask::AccessRestoreTask( - const BackupPtr & backup_, const RestoreSettings & restore_settings_, std::shared_ptr restore_coordination_) - : backup(backup_), restore_settings(restore_settings_), restore_coordination(restore_coordination_) +AccessRestorerFromBackup::AccessRestorerFromBackup( + const BackupPtr & backup_, const RestoreSettings & restore_settings_) + : backup(backup_), allow_unresolved_access_dependencies(restore_settings_.allow_unresolved_access_dependencies) { } -AccessRestoreTask::~AccessRestoreTask() = default; +AccessRestorerFromBackup::~AccessRestorerFromBackup() = default; -void AccessRestoreTask::addDataPath(const String & data_path, const QualifiedTableName & table_name_for_logs) +void AccessRestorerFromBackup::addDataPath(const String & data_path, const QualifiedTableName & table_name_for_logs) { if (!data_paths.emplace(data_path).second) return; - if (!backup->hasFiles(data_path)) + fs::path data_path_in_backup_fs = data_path; + Strings filenames = backup->listFiles(data_path); + if (filenames.empty()) return; - String file_path = fs::path{data_path} / "access.txt"; - if (!backup->fileExists(file_path)) + for (const String & filename : filenames) { - throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File {} in backup is required", - table_name_for_logs.getFullName(), file_path); + if (!filename.starts_with("access") || !filename.ends_with(".txt")) + throw Exception(ErrorCodes::CANNOT_RESTORE_TABLE, "Cannot restore table {}: File name {} doesn't match the wildcard \"access*.txt\"", + table_name_for_logs.getFullName(), String{data_path_in_backup_fs / filename}); } - auto backup_entry = backup->readFile(file_path); - auto ab = AccessEntitiesInBackup::fromBackupEntry(*backup_entry, file_path); + ::sort(filenames.begin(), filenames.end()); + + for (const String & filename : filenames) + { + String filepath_in_backup = data_path_in_backup_fs / filename; + auto backup_entry = backup->readFile(filepath_in_backup); + auto ab = AccessEntitiesInBackup::fromBackupEntry(*backup_entry, filepath_in_backup); + + boost::range::copy(ab.entities, std::back_inserter(entities)); + boost::range::copy(ab.dependencies, std::inserter(dependencies, dependencies.end())); + } - boost::range::copy(ab.entities, std::inserter(entities, entities.end())); - boost::range::copy(ab.dependencies, std::inserter(dependencies, dependencies.end())); for (const auto & id : entities | boost::adaptors::map_keys) dependencies.erase(id); } -bool AccessRestoreTask::hasDataPath(const String & data_path) const -{ - return data_paths.contains(data_path); -} - -AccessRightsElements AccessRestoreTask::getRequiredAccess() const +AccessRightsElements AccessRestorerFromBackup::getRequiredAccess() const { return getRequiredAccessToRestore(entities); } -void AccessRestoreTask::restore(AccessControl & access_control) const +std::vector> AccessRestorerFromBackup::getAccessEntities(const AccessControl & access_control) const { - auto old_to_new_ids = resolveDependencies(dependencies, access_control, restore_settings.allow_unresolved_access_dependencies); + auto new_entities = entities; - std::vector> new_entities; - boost::range::copy(entities, std::back_inserter(new_entities)); + auto old_to_new_ids = resolveDependencies(dependencies, access_control, allow_unresolved_access_dependencies); generateRandomIDs(new_entities, old_to_new_ids); - replaceDependencies(new_entities, old_to_new_ids); - access_control.insertFromBackup(new_entities, restore_settings, restore_coordination); + return new_entities; } } diff --git a/src/Access/AccessBackup.h b/src/Access/AccessBackup.h index 3eab9fa1494..74f889e2c00 100644 --- a/src/Access/AccessBackup.h +++ b/src/Access/AccessBackup.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include @@ -9,47 +9,45 @@ namespace DB { class AccessControl; enum class AccessEntityType; -class BackupEntriesCollector; -class RestorerFromBackup; -class IBackup; -using BackupPtr = std::shared_ptr; -class IRestoreCoordination; struct IAccessEntity; using AccessEntityPtr = std::shared_ptr; class AccessRightsElements; +class IBackup; +using BackupPtr = std::shared_ptr; +class IBackupEntry; +using BackupEntryPtr = std::shared_ptr; +struct RestoreSettings; struct QualifiedTableName; /// Makes a backup of access entities of a specified type. -void backupAccessEntities( - BackupEntriesCollector & backup_entries_collector, +std::pair makeBackupEntryForAccess( + const std::vector> access_entities, const String & data_path_in_backup, - const AccessControl & access_control, - AccessEntityType type); + size_t counter, + const AccessControl & access_control); + /// Restores access entities from a backup. -class AccessRestoreTask +class AccessRestorerFromBackup { public: - AccessRestoreTask( - const BackupPtr & backup_, const RestoreSettings & restore_settings_, std::shared_ptr restore_coordination_); - ~AccessRestoreTask(); + AccessRestorerFromBackup(const BackupPtr & backup_, const RestoreSettings & restore_settings_); + ~AccessRestorerFromBackup(); /// Adds a data path to loads access entities from. void addDataPath(const String & data_path, const QualifiedTableName & table_name_for_logs); - bool hasDataPath(const String & data_path) const; /// Checks that the current user can do restoring. AccessRightsElements getRequiredAccess() const; /// Inserts all access entities loaded from all the paths added by addDataPath(). - void restore(AccessControl & access_control) const; + std::vector> getAccessEntities(const AccessControl & access_control) const; private: BackupPtr backup; - RestoreSettings restore_settings; - std::shared_ptr restore_coordination; - std::unordered_map entities; + bool allow_unresolved_access_dependencies = false; + std::vector> entities; std::unordered_map> dependencies; std::unordered_set data_paths; }; diff --git a/src/Access/AccessControl.cpp b/src/Access/AccessControl.cpp index b5b22caa400..7152820b5bc 100644 --- a/src/Access/AccessControl.cpp +++ b/src/Access/AccessControl.cpp @@ -459,20 +459,9 @@ UUID AccessControl::authenticate(const Credentials & credentials, const Poco::Ne } } -void AccessControl::backup(BackupEntriesCollector & backup_entries_collector, AccessEntityType type, const String & data_path_in_backup) const +void AccessControl::restoreFromBackup(RestorerFromBackup & restorer) { - backupAccessEntities(backup_entries_collector, data_path_in_backup, *this, type); -} - -void AccessControl::restore(RestorerFromBackup & restorer, const String & data_path_in_backup) -{ - /// The restorer must already know about `data_path_in_backup`, but let's check. - restorer.checkPathInBackupIsRegisteredToRestoreAccess(data_path_in_backup); -} - -void AccessControl::insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) -{ - MultipleAccessStorage::insertFromBackup(entities_from_backup, restore_settings, restore_coordination); + MultipleAccessStorage::restoreFromBackup(restorer); changes_notifier->sendNotifications(); } diff --git a/src/Access/AccessControl.h b/src/Access/AccessControl.h index 90ad2895122..22ff0a488f7 100644 --- a/src/Access/AccessControl.h +++ b/src/Access/AccessControl.h @@ -42,8 +42,6 @@ class ClientInfo; class ExternalAuthenticators; class AccessChangesNotifier; struct Settings; -class BackupEntriesCollector; -class RestorerFromBackup; /// Manages access control entities. @@ -121,8 +119,7 @@ public: UUID authenticate(const Credentials & credentials, const Poco::Net::IPAddress & address) const; /// Makes a backup of access entities. - void backup(BackupEntriesCollector & backup_entries_collector, AccessEntityType type, const String & data_path_in_backup) const; - static void restore(RestorerFromBackup & restorer, const String & data_path_in_backup); + void restoreFromBackup(RestorerFromBackup & restorer) override; void setExternalAuthenticatorsConfig(const Poco::Util::AbstractConfiguration & config); @@ -198,8 +195,6 @@ public: /// Gets manager of notifications. AccessChangesNotifier & getChangesNotifier(); - void insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) override; - private: class ContextAccessCache; class CustomSettingsPrefixes; diff --git a/src/Access/DiskAccessStorage.cpp b/src/Access/DiskAccessStorage.cpp index 231e325196d..994abc7b53a 100644 --- a/src/Access/DiskAccessStorage.cpp +++ b/src/Access/DiskAccessStorage.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -650,19 +651,24 @@ void DiskAccessStorage::deleteAccessEntityOnDisk(const UUID & id) const } -void DiskAccessStorage::insertFromBackup( - const std::vector> & entities_from_backup, - const RestoreSettings & restore_settings, - std::shared_ptr) +void DiskAccessStorage::restoreFromBackup(RestorerFromBackup & restorer) { if (!isRestoreAllowed()) throwRestoreNotAllowed(); - bool replace_if_exists = (restore_settings.create_access == RestoreAccessCreationMode::kReplace); - bool throw_if_exists = (restore_settings.create_access == RestoreAccessCreationMode::kCreate); + auto entities = restorer.getAccessEntitiesToRestore(); + if (entities.empty()) + return; - for (const auto & [id, entity] : entities_from_backup) - insertWithID(id, entity, replace_if_exists, throw_if_exists); + auto create_access = restorer.getRestoreSettings().create_access; + bool replace_if_exists = (create_access == RestoreAccessCreationMode::kReplace); + bool throw_if_exists = (create_access == RestoreAccessCreationMode::kCreate); + + restorer.addDataRestoreTask([this, entities = std::move(entities), replace_if_exists, throw_if_exists] + { + for (const auto & [id, entity] : entities) + insertWithID(id, entity, replace_if_exists, throw_if_exists); + }); } } diff --git a/src/Access/DiskAccessStorage.h b/src/Access/DiskAccessStorage.h index 1bdefbf82f9..d3bd61ff353 100644 --- a/src/Access/DiskAccessStorage.h +++ b/src/Access/DiskAccessStorage.h @@ -30,7 +30,7 @@ public: bool exists(const UUID & id) const override; bool isBackupAllowed() const override { return backup_allowed; } - void insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) override; + void restoreFromBackup(RestorerFromBackup & restorer) override; private: std::optional findImpl(AccessEntityType type, const String & name) const override; diff --git a/src/Access/IAccessStorage.cpp b/src/Access/IAccessStorage.cpp index 476b1674ce1..230045c7749 100644 --- a/src/Access/IAccessStorage.cpp +++ b/src/Access/IAccessStorage.cpp @@ -2,9 +2,12 @@ #include #include #include +#include +#include #include #include #include +#include #include #include #include @@ -520,29 +523,34 @@ bool IAccessStorage::isAddressAllowed(const User & user, const Poco::Net::IPAddr } -bool IAccessStorage::isRestoreAllowed() const -{ - return isBackupAllowed() && !isReadOnly(); -} - -std::vector> IAccessStorage::readAllForBackup(AccessEntityType type, const BackupSettings &) const +void IAccessStorage::backup(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, AccessEntityType type) const { if (!isBackupAllowed()) throwBackupNotAllowed(); - auto res = readAllWithIDs(type); - boost::range::remove_erase_if(res, [](const std::pair & x) { return !x.second->isBackupAllowed(); }); - return res; + auto entities = readAllWithIDs(type); + boost::range::remove_erase_if(entities, [](const std::pair & x) { return !x.second->isBackupAllowed(); }); + + auto backup_entry = makeBackupEntryForAccess( + entities, + data_path_in_backup, + backup_entries_collector.getAccessCounter(type), + backup_entries_collector.getContext()->getAccessControl()); + + backup_entries_collector.addBackupEntry(backup_entry); } -void IAccessStorage::insertFromBackup(const std::vector> &, const RestoreSettings &, std::shared_ptr) + +void IAccessStorage::restoreFromBackup(RestorerFromBackup &) { if (!isRestoreAllowed()) throwRestoreNotAllowed(); - throw Exception(ErrorCodes::NOT_IMPLEMENTED, "insertFromBackup() is not implemented in {}", getStorageType()); + + throw Exception(ErrorCodes::NOT_IMPLEMENTED, "restoreFromBackup() is not implemented in {}", getStorageType()); } + UUID IAccessStorage::generateRandomID() { static Poco::UUIDGenerator generator; diff --git a/src/Access/IAccessStorage.h b/src/Access/IAccessStorage.h index 7b43309204d..394d3ed6358 100644 --- a/src/Access/IAccessStorage.h +++ b/src/Access/IAccessStorage.h @@ -18,9 +18,8 @@ struct User; class Credentials; class ExternalAuthenticators; enum class AuthenticationType; -struct BackupSettings; -struct RestoreSettings; -class IRestoreCoordination; +class BackupEntriesCollector; +class RestorerFromBackup; /// Contains entities, i.e. instances of classes derived from IAccessEntity. /// The implementations of this class MUST be thread-safe. @@ -158,11 +157,11 @@ public: /// Returns true if this storage can be stored to or restored from a backup. virtual bool isBackupAllowed() const { return false; } - virtual bool isRestoreAllowed() const; + virtual bool isRestoreAllowed() const { return isBackupAllowed() && !isReadOnly(); } /// Makes a backup of this access storage. - virtual std::vector> readAllForBackup(AccessEntityType type, const BackupSettings & backup_settings) const; - virtual void insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination); + virtual void backup(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, AccessEntityType type) const; + virtual void restoreFromBackup(RestorerFromBackup & restorer); protected: virtual std::optional findImpl(AccessEntityType type, const String & name) const = 0; diff --git a/src/Access/MemoryAccessStorage.cpp b/src/Access/MemoryAccessStorage.cpp index ad877e263ad..60669532e25 100644 --- a/src/Access/MemoryAccessStorage.cpp +++ b/src/Access/MemoryAccessStorage.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -272,19 +273,24 @@ void MemoryAccessStorage::setAll(const std::vector> & entities_from_backup, - const RestoreSettings & restore_settings, - std::shared_ptr) +void MemoryAccessStorage::restoreFromBackup(RestorerFromBackup & restorer) { if (!isRestoreAllowed()) throwRestoreNotAllowed(); - bool replace_if_exists = (restore_settings.create_access == RestoreAccessCreationMode::kReplace); - bool throw_if_exists = (restore_settings.create_access == RestoreAccessCreationMode::kCreate); + auto entities = restorer.getAccessEntitiesToRestore(); + if (entities.empty()) + return; - for (const auto & [id, entity] : entities_from_backup) - insertWithID(id, entity, replace_if_exists, throw_if_exists); + auto create_access = restorer.getRestoreSettings().create_access; + bool replace_if_exists = (create_access == RestoreAccessCreationMode::kReplace); + bool throw_if_exists = (create_access == RestoreAccessCreationMode::kCreate); + + restorer.addDataRestoreTask([this, entities = std::move(entities), replace_if_exists, throw_if_exists] + { + for (const auto & [id, entity] : entities) + insertWithID(id, entity, replace_if_exists, throw_if_exists); + }); } } diff --git a/src/Access/MemoryAccessStorage.h b/src/Access/MemoryAccessStorage.h index aa4cd08252c..5c8d33ed443 100644 --- a/src/Access/MemoryAccessStorage.h +++ b/src/Access/MemoryAccessStorage.h @@ -29,7 +29,7 @@ public: bool exists(const UUID & id) const override; bool isBackupAllowed() const override { return backup_allowed; } - void insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) override; + void restoreFromBackup(RestorerFromBackup & restorer) override; private: std::optional findImpl(AccessEntityType type, const String & name) const override; diff --git a/src/Access/MultipleAccessStorage.cpp b/src/Access/MultipleAccessStorage.cpp index 6f654f68e57..30c3865c1be 100644 --- a/src/Access/MultipleAccessStorage.cpp +++ b/src/Access/MultipleAccessStorage.cpp @@ -383,40 +383,38 @@ bool MultipleAccessStorage::isRestoreAllowed() const } -std::vector> MultipleAccessStorage::readAllForBackup(AccessEntityType type, const BackupSettings & backup_settings) const +void MultipleAccessStorage::backup(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, AccessEntityType type) const { - std::vector> res; auto storages = getStoragesInternal(); - size_t count = 0; + bool allowed = false; for (const auto & storage : *storages) { if (storage->isBackupAllowed()) { - insertAtEnd(res, storage->readAllForBackup(type, backup_settings)); - ++count; + storage->backup(backup_entries_collector, data_path_in_backup, type); + allowed = true; } } - if (!count) + if (!allowed) throwBackupNotAllowed(); - - return res; } - -void MultipleAccessStorage::insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) +void MultipleAccessStorage::restoreFromBackup(RestorerFromBackup & restorer) { auto storages = getStoragesInternal(); + for (const auto & storage : *storages) { if (storage->isRestoreAllowed()) { - storage->insertFromBackup(entities_from_backup, restore_settings, restore_coordination); + storage->restoreFromBackup(restorer); return; } } - throwRestoreNotAllowed(); + + throwBackupNotAllowed(); } } diff --git a/src/Access/MultipleAccessStorage.h b/src/Access/MultipleAccessStorage.h index 2eacdafd3f3..58cf09fd0ff 100644 --- a/src/Access/MultipleAccessStorage.h +++ b/src/Access/MultipleAccessStorage.h @@ -45,8 +45,8 @@ public: bool isBackupAllowed() const override; bool isRestoreAllowed() const override; - std::vector> readAllForBackup(AccessEntityType type, const BackupSettings & backup_settings) const override; - void insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) override; + void backup(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, AccessEntityType type) const override; + void restoreFromBackup(RestorerFromBackup & restorer) override; protected: std::optional findImpl(AccessEntityType type, const String & name) const override; diff --git a/src/Access/ReplicatedAccessStorage.cpp b/src/Access/ReplicatedAccessStorage.cpp index 6a9d716c2f9..f6c8d0a7153 100644 --- a/src/Access/ReplicatedAccessStorage.cpp +++ b/src/Access/ReplicatedAccessStorage.cpp @@ -2,10 +2,14 @@ #include #include #include +#include +#include +#include #include +#include #include #include -#include +#include #include #include #include @@ -13,6 +17,7 @@ #include #include #include +#include namespace DB @@ -613,19 +618,64 @@ AccessEntityPtr ReplicatedAccessStorage::readImpl(const UUID & id, bool throw_if return entry.entity; } -void ReplicatedAccessStorage::insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) + +void ReplicatedAccessStorage::backup(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, AccessEntityType type) const +{ + if (!isBackupAllowed()) + throwBackupNotAllowed(); + + auto entities = readAllWithIDs(type); + boost::range::remove_erase_if(entities, [](const std::pair & x) { return !x.second->isBackupAllowed(); }); + + auto backup_entry_with_path = makeBackupEntryForAccess( + entities, + data_path_in_backup, + backup_entries_collector.getAccessCounter(type), + backup_entries_collector.getContext()->getAccessControl()); + + auto backup_coordination = backup_entries_collector.getBackupCoordination(); + backup_coordination->addReplicatedAccessPath(zookeeper_path, backup_entry_with_path.first); + String current_host_id = backup_entries_collector.getBackupSettings().host_id; + backup_coordination->setReplicatedAccessHost(zookeeper_path, current_host_id); + + backup_entries_collector.addPostTask( + [backup_entry = backup_entry_with_path.second, + zookeeper_path = zookeeper_path, + current_host_id, + &backup_entries_collector, + backup_coordination] + { + if (current_host_id != backup_coordination->getReplicatedAccessHost(zookeeper_path)) + return; + + for (const String & path : backup_coordination->getReplicatedAccessPaths(zookeeper_path)) + backup_entries_collector.addBackupEntry(path, backup_entry); + }); +} + + +void ReplicatedAccessStorage::restoreFromBackup(RestorerFromBackup & restorer) { if (!isRestoreAllowed()) throwRestoreNotAllowed(); + auto restore_coordination = restorer.getRestoreCoordination(); if (!restore_coordination->acquireReplicatedAccessStorage(zookeeper_path)) return; - bool replace_if_exists = (restore_settings.create_access == RestoreAccessCreationMode::kReplace); - bool throw_if_exists = (restore_settings.create_access == RestoreAccessCreationMode::kCreate); + auto entities = restorer.getAccessEntitiesToRestore(); + if (entities.empty()) + return; - for (const auto & [id, entity] : entities_from_backup) - insertWithID(id, entity, replace_if_exists, throw_if_exists); + auto create_access = restorer.getRestoreSettings().create_access; + bool replace_if_exists = (create_access == RestoreAccessCreationMode::kReplace); + bool throw_if_exists = (create_access == RestoreAccessCreationMode::kCreate); + + restorer.addDataRestoreTask([this, entities = std::move(entities), replace_if_exists, throw_if_exists] + { + for (const auto & [id, entity] : entities) + insertWithID(id, entity, replace_if_exists, throw_if_exists); + }); } } diff --git a/src/Access/ReplicatedAccessStorage.h b/src/Access/ReplicatedAccessStorage.h index 7cccdc1793f..6311e2ac7c0 100644 --- a/src/Access/ReplicatedAccessStorage.h +++ b/src/Access/ReplicatedAccessStorage.h @@ -38,7 +38,8 @@ public: bool exists(const UUID & id) const override; bool isBackupAllowed() const override { return backup_allowed; } - void insertFromBackup(const std::vector> & entities_from_backup, const RestoreSettings & restore_settings, std::shared_ptr restore_coordination) override; + void backup(BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, AccessEntityType type) const override; + void restoreFromBackup(RestorerFromBackup & restorer) override; private: String zookeeper_path; diff --git a/src/Backups/BackupCoordinationDistributed.cpp b/src/Backups/BackupCoordinationDistributed.cpp index 9df17bf434e..5b932229e71 100644 --- a/src/Backups/BackupCoordinationDistributed.cpp +++ b/src/Backups/BackupCoordinationDistributed.cpp @@ -145,6 +145,8 @@ void BackupCoordinationDistributed::createRootNodes() zookeeper->createIfNotExists(zookeeper_path, ""); zookeeper->createIfNotExists(zookeeper_path + "/repl_part_names", ""); zookeeper->createIfNotExists(zookeeper_path + "/repl_data_paths", ""); + zookeeper->createIfNotExists(zookeeper_path + "/repl_access_host", ""); + zookeeper->createIfNotExists(zookeeper_path + "/repl_access_paths", ""); zookeeper->createIfNotExists(zookeeper_path + "/file_names", ""); zookeeper->createIfNotExists(zookeeper_path + "/file_infos", ""); zookeeper->createIfNotExists(zookeeper_path + "/archive_suffixes", ""); @@ -245,6 +247,47 @@ void BackupCoordinationDistributed::prepareReplicatedPartNames() const } +void BackupCoordinationDistributed::addReplicatedAccessPath(const String & access_zk_path, const String & file_path) +{ + auto zookeeper = get_zookeeper(); + String path = zookeeper_path + "/repl_access_paths/" + escapeForFileName(access_zk_path); + zookeeper->createIfNotExists(path, ""); + path += "/" + escapeForFileName(file_path); + zookeeper->createIfNotExists(path, ""); +} + +Strings BackupCoordinationDistributed::getReplicatedAccessPaths(const String & access_zk_path) const +{ + auto zookeeper = get_zookeeper(); + String path = zookeeper_path + "/repl_access_paths/" + escapeForFileName(access_zk_path); + Strings children = zookeeper->getChildren(path); + Strings file_paths; + file_paths.reserve(children.size()); + for (const String & child : children) + file_paths.push_back(unescapeForFileName(child)); + return file_paths; +} + +void BackupCoordinationDistributed::setReplicatedAccessHost(const String & access_zk_path, const String & host_id) +{ + auto zookeeper = get_zookeeper(); + String path = zookeeper_path + "/repl_access_host/" + escapeForFileName(access_zk_path); + auto code = zookeeper->tryCreate(path, host_id, zkutil::CreateMode::Persistent); + if ((code != Coordination::Error::ZOK) && (code != Coordination::Error::ZNODEEXISTS)) + throw zkutil::KeeperException(code, path); + + if (code == Coordination::Error::ZNODEEXISTS) + zookeeper->set(path, host_id); +} + +String BackupCoordinationDistributed::getReplicatedAccessHost(const String & access_zk_path) const +{ + auto zookeeper = get_zookeeper(); + String path = zookeeper_path + "/repl_access_host/" + escapeForFileName(access_zk_path); + return zookeeper->get(path); +} + + void BackupCoordinationDistributed::addFileInfo(const FileInfo & file_info, bool & is_data_file_required) { auto zookeeper = get_zookeeper(); diff --git a/src/Backups/BackupCoordinationDistributed.h b/src/Backups/BackupCoordinationDistributed.h index 172c69edb20..813132bd0b8 100644 --- a/src/Backups/BackupCoordinationDistributed.h +++ b/src/Backups/BackupCoordinationDistributed.h @@ -29,6 +29,12 @@ public: void addReplicatedDataPath(const String & table_shared_id, const String & data_path) override; Strings getReplicatedDataPaths(const String & table_shared_id) const override; + void addReplicatedAccessPath(const String & access_zk_path, const String & file_path) override; + Strings getReplicatedAccessPaths(const String & access_zk_path) const override; + + void setReplicatedAccessHost(const String & access_zk_path, const String & host_id) override; + String getReplicatedAccessHost(const String & access_zk_path) const override; + void addFileInfo(const FileInfo & file_info, bool & is_data_file_required) override; void updateFileInfo(const FileInfo & file_info) override; diff --git a/src/Backups/BackupCoordinationLocal.cpp b/src/Backups/BackupCoordinationLocal.cpp index 7fd6fec6c33..158988cf8b8 100644 --- a/src/Backups/BackupCoordinationLocal.cpp +++ b/src/Backups/BackupCoordinationLocal.cpp @@ -56,6 +56,37 @@ Strings BackupCoordinationLocal::getReplicatedDataPaths(const String & table_sha } +void BackupCoordinationLocal::addReplicatedAccessPath(const String & access_zk_path, const String & file_path) +{ + std::lock_guard lock{mutex}; + replicated_access_paths[access_zk_path].push_back(file_path); +} + +Strings BackupCoordinationLocal::getReplicatedAccessPaths(const String & access_zk_path) const +{ + std::lock_guard lock{mutex}; + auto it = replicated_access_paths.find(access_zk_path); + if (it == replicated_access_paths.end()) + return {}; + return it->second; +} + +void BackupCoordinationLocal::setReplicatedAccessHost(const String & access_zk_path, const String & host_id) +{ + std::lock_guard lock{mutex}; + replicated_access_hosts[access_zk_path] = host_id; +} + +String BackupCoordinationLocal::getReplicatedAccessHost(const String & access_zk_path) const +{ + std::lock_guard lock{mutex}; + auto it = replicated_access_hosts.find(access_zk_path); + if (it == replicated_access_hosts.end()) + return {}; + return it->second; +} + + void BackupCoordinationLocal::addFileInfo(const FileInfo & file_info, bool & is_data_file_required) { std::lock_guard lock{mutex}; diff --git a/src/Backups/BackupCoordinationLocal.h b/src/Backups/BackupCoordinationLocal.h index 519c721c208..dcd6505a438 100644 --- a/src/Backups/BackupCoordinationLocal.h +++ b/src/Backups/BackupCoordinationLocal.h @@ -30,6 +30,12 @@ public: void addReplicatedDataPath(const String & table_shared_id, const String & data_path) override; Strings getReplicatedDataPaths(const String & table_shared_id) const override; + void addReplicatedAccessPath(const String & access_zk_path, const String & file_path) override; + Strings getReplicatedAccessPaths(const String & access_zk_path) const override; + + void setReplicatedAccessHost(const String & access_zk_path, const String & host_id) override; + String getReplicatedAccessHost(const String & access_zk_path) const override; + void addFileInfo(const FileInfo & file_info, bool & is_data_file_required) override; void updateFileInfo(const FileInfo & file_info) override; @@ -48,6 +54,8 @@ private: mutable std::mutex mutex; BackupCoordinationReplicatedPartNames replicated_part_names TSA_GUARDED_BY(mutex); std::unordered_map replicated_data_paths TSA_GUARDED_BY(mutex); + std::unordered_map replicated_access_paths TSA_GUARDED_BY(mutex); + std::unordered_map replicated_access_hosts TSA_GUARDED_BY(mutex); std::map file_names TSA_GUARDED_BY(mutex); /// Should be ordered alphabetically, see listFiles(). For empty files we assume checksum = 0. std::map file_infos TSA_GUARDED_BY(mutex); /// Information about files. Without empty files. Strings archive_suffixes TSA_GUARDED_BY(mutex); diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index 30f1ecd53cd..e237140cf2b 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -706,6 +707,11 @@ void BackupEntriesCollector::addBackupEntry(const String & file_name, BackupEntr backup_entries.emplace_back(file_name, backup_entry); } +void BackupEntriesCollector::addBackupEntry(const std::pair & backup_entry) +{ + addBackupEntry(backup_entry.first, backup_entry.second); +} + void BackupEntriesCollector::addBackupEntries(const BackupEntries & backup_entries_) { if (current_status == kWritingBackupStatus) @@ -739,4 +745,10 @@ void BackupEntriesCollector::runPostTasks() } } +size_t BackupEntriesCollector::getAccessCounter(AccessEntityType type) +{ + access_counters.resize(static_cast(AccessEntityType::MAX)); + return access_counters[static_cast(type)]++; +} + } diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 3b1260f6c99..0772fe84b26 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -19,6 +19,7 @@ class IBackupCoordination; class IDatabase; using DatabasePtr = std::shared_ptr; struct StorageID; +enum class AccessEntityType; /// Collects backup entries for all databases and tables which should be put to a backup. class BackupEntriesCollector : private boost::noncopyable @@ -42,6 +43,7 @@ public: /// Adds a backup entry which will be later returned by run(). /// These function can be called by implementations of IStorage::backupData() in inherited storage classes. void addBackupEntry(const String & file_name, BackupEntryPtr backup_entry); + void addBackupEntry(const std::pair & backup_entry); void addBackupEntries(const BackupEntries & backup_entries_); void addBackupEntries(BackupEntries && backup_entries_); @@ -50,6 +52,9 @@ public: /// 1) we need to join (in a backup) the data of replicated tables gathered on different hosts. void addPostTask(std::function task); + /// Returns an incremental counter used to backup access control. + size_t getAccessCounter(AccessEntityType type); + private: void calculateRootPathInBackup(); @@ -130,6 +135,7 @@ private: BackupEntries backup_entries; std::queue> post_tasks; + std::vector access_counters; }; } diff --git a/src/Backups/IBackupCoordination.h b/src/Backups/IBackupCoordination.h index 0ae150c2b47..b4c5c7b3d88 100644 --- a/src/Backups/IBackupCoordination.h +++ b/src/Backups/IBackupCoordination.h @@ -44,6 +44,14 @@ public: /// Returns all the data paths in backup added for a replicated table (see also addReplicatedDataPath()). virtual Strings getReplicatedDataPaths(const String & table_shared_id) const = 0; + /// Adds a path to access.txt file keeping access entities of a ReplicatedAccessStorage. + virtual void addReplicatedAccessPath(const String & access_zk_path, const String & file_path) = 0; + virtual Strings getReplicatedAccessPaths(const String & access_zk_path) const = 0; + + /// Sets the host id of a host storing access entities of a ReplicatedAccessStorage to backup. + virtual void setReplicatedAccessHost(const String & access_zk_path, const String & host) = 0; + virtual String getReplicatedAccessHost(const String & access_zk_path) const = 0; + struct FileInfo { String file_name; diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 247660bbce4..6013eed7919 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -383,9 +383,9 @@ void RestorerFromBackup::findTableInBackup(const QualifiedTableName & table_name if (!restore_settings.structure_only && isSystemAccessTableName(table_name)) { - if (!access_restore_task) - access_restore_task = std::make_shared(backup, restore_settings, restore_coordination); - access_restore_task->addDataPath(data_path_in_backup, table_name); + if (!access_restorer) + access_restorer = std::make_unique(backup, restore_settings); + access_restorer->addDataPath(data_path_in_backup, table_name); } } @@ -555,8 +555,8 @@ void RestorerFromBackup::checkAccessForObjectsFoundInBackup() const required_access.emplace_back(flags, table_name.database, table_name.table); } - if (access_restore_task) - insertAtEnd(required_access, access_restore_task->getRequiredAccess()); + if (access_restorer) + insertAtEnd(required_access, access_restorer->getRequiredAccess()); /// We convert to AccessRights and back to check access rights in a predictable way /// (some elements could be duplicated or not sorted). @@ -770,15 +770,9 @@ void RestorerFromBackup::addDataRestoreTasks(DataRestoreTasks && new_tasks) insertAtEnd(data_restore_tasks, std::move(new_tasks)); } -void RestorerFromBackup::checkPathInBackupIsRegisteredToRestoreAccess(const String & path) -{ - if (!access_restore_task || !access_restore_task->hasDataPath(path)) - throw Exception(ErrorCodes::LOGICAL_ERROR, "Path to restore access was not added"); -} - RestorerFromBackup::DataRestoreTasks RestorerFromBackup::getDataRestoreTasks() { - if (data_restore_tasks.empty() && !access_restore_task) + if (data_restore_tasks.empty()) return {}; LOG_TRACE(log, "Will insert data to tables"); @@ -798,12 +792,20 @@ RestorerFromBackup::DataRestoreTasks RestorerFromBackup::getDataRestoreTasks() for (const auto & task : data_restore_tasks) res_tasks.push_back([task, storages, table_locks] { task(); }); - if (access_restore_task) - res_tasks.push_back([task = access_restore_task, access_control = &context->getAccessControl()] { task->restore(*access_control); }); - return res_tasks; } +std::vector> RestorerFromBackup::getAccessEntitiesToRestore() +{ + if (!access_restorer || access_restored) + return {}; + + /// getAccessEntitiesToRestore() will return entities only when called first time (we don't want to restore the same entities again). + access_restored = true; + + return access_restorer->getAccessEntities(context->getAccessControl()); +} + void RestorerFromBackup::throwTableIsNotEmpty(const StorageID & storage_id) { throw Exception( diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index e47aca0e69f..3d814f67713 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -15,7 +15,9 @@ class IBackup; using BackupPtr = std::shared_ptr; class IRestoreCoordination; struct StorageID; -class AccessRestoreTask; +class AccessRestorerFromBackup; +struct IAccessEntity; +using AccessEntityPtr = std::shared_ptr; /// Restores the definition of databases and tables and prepares tasks to restore the data of the tables. class RestorerFromBackup : private boost::noncopyable @@ -56,8 +58,8 @@ public: void addDataRestoreTask(DataRestoreTask && new_task); void addDataRestoreTasks(DataRestoreTasks && new_tasks); - /// Checks that a specified path is already registered to be used for restoring access control. - void checkPathInBackupIsRegisteredToRestoreAccess(const String & path); + /// Returns the list of access entities to restore. + std::vector> getAccessEntitiesToRestore(); /// Throws an exception that a specified table is already non-empty. [[noreturn]] static void throwTableIsNotEmpty(const StorageID & storage_id); @@ -116,7 +118,8 @@ private: std::unordered_map database_infos; std::map table_infos; std::vector data_restore_tasks; - std::shared_ptr access_restore_task; + std::unique_ptr access_restorer; + bool access_restored = false; }; } diff --git a/src/Storages/System/StorageSystemQuotas.cpp b/src/Storages/System/StorageSystemQuotas.cpp index 27cf64cbcb4..046db151684 100644 --- a/src/Storages/System/StorageSystemQuotas.cpp +++ b/src/Storages/System/StorageSystemQuotas.cpp @@ -125,14 +125,14 @@ void StorageSystemQuotas::backupData( BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); - access_control.backup(backup_entries_collector, AccessEntityType::QUOTA, data_path_in_backup); + access_control.backup(backup_entries_collector, data_path_in_backup, AccessEntityType::QUOTA); } void StorageSystemQuotas::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) + RestorerFromBackup & restorer, const String & /* data_path_in_backup */, const std::optional & /* partitions */) { auto & access_control = restorer.getContext()->getAccessControl(); - access_control.restore(restorer, data_path_in_backup); + access_control.restoreFromBackup(restorer); } } diff --git a/src/Storages/System/StorageSystemRoles.cpp b/src/Storages/System/StorageSystemRoles.cpp index 22597530835..e5b8d53ce7e 100644 --- a/src/Storages/System/StorageSystemRoles.cpp +++ b/src/Storages/System/StorageSystemRoles.cpp @@ -63,14 +63,14 @@ void StorageSystemRoles::backupData( BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); - access_control.backup(backup_entries_collector, AccessEntityType::ROLE, data_path_in_backup); + access_control.backup(backup_entries_collector, data_path_in_backup, AccessEntityType::ROLE); } void StorageSystemRoles::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) + RestorerFromBackup & restorer, const String & /* data_path_in_backup */, const std::optional & /* partitions */) { auto & access_control = restorer.getContext()->getAccessControl(); - access_control.restore(restorer, data_path_in_backup); + access_control.restoreFromBackup(restorer); } } diff --git a/src/Storages/System/StorageSystemRowPolicies.cpp b/src/Storages/System/StorageSystemRowPolicies.cpp index 1e13654d188..064f610730d 100644 --- a/src/Storages/System/StorageSystemRowPolicies.cpp +++ b/src/Storages/System/StorageSystemRowPolicies.cpp @@ -143,14 +143,14 @@ void StorageSystemRowPolicies::backupData( BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); - access_control.backup(backup_entries_collector, AccessEntityType::ROW_POLICY, data_path_in_backup); + access_control.backup(backup_entries_collector, data_path_in_backup, AccessEntityType::ROW_POLICY); } void StorageSystemRowPolicies::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) + RestorerFromBackup & restorer, const String & /* data_path_in_backup */, const std::optional & /* partitions */) { auto & access_control = restorer.getContext()->getAccessControl(); - access_control.restore(restorer, data_path_in_backup); + access_control.restoreFromBackup(restorer); } } diff --git a/src/Storages/System/StorageSystemSettingsProfiles.cpp b/src/Storages/System/StorageSystemSettingsProfiles.cpp index aaf5bedadd0..d03848ba68b 100644 --- a/src/Storages/System/StorageSystemSettingsProfiles.cpp +++ b/src/Storages/System/StorageSystemSettingsProfiles.cpp @@ -90,14 +90,14 @@ void StorageSystemSettingsProfiles::backupData( BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); - access_control.backup(backup_entries_collector, AccessEntityType::SETTINGS_PROFILE, data_path_in_backup); + access_control.backup(backup_entries_collector, data_path_in_backup, AccessEntityType::SETTINGS_PROFILE); } void StorageSystemSettingsProfiles::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) + RestorerFromBackup & restorer, const String & /* data_path_in_backup */, const std::optional & /* partitions */) { auto & access_control = restorer.getContext()->getAccessControl(); - access_control.restore(restorer, data_path_in_backup); + access_control.restoreFromBackup(restorer); } } diff --git a/src/Storages/System/StorageSystemUsers.cpp b/src/Storages/System/StorageSystemUsers.cpp index d8dc1722a91..be56abfa3e8 100644 --- a/src/Storages/System/StorageSystemUsers.cpp +++ b/src/Storages/System/StorageSystemUsers.cpp @@ -218,14 +218,14 @@ void StorageSystemUsers::backupData( BackupEntriesCollector & backup_entries_collector, const String & data_path_in_backup, const std::optional & /* partitions */) { const auto & access_control = backup_entries_collector.getContext()->getAccessControl(); - access_control.backup(backup_entries_collector, AccessEntityType::USER, data_path_in_backup); + access_control.backup(backup_entries_collector, data_path_in_backup, AccessEntityType::USER); } void StorageSystemUsers::restoreDataFromBackup( - RestorerFromBackup & restorer, const String & data_path_in_backup, const std::optional & /* partitions */) + RestorerFromBackup & restorer, const String & /* data_path_in_backup */, const std::optional & /* partitions */) { auto & access_control = restorer.getContext()->getAccessControl(); - access_control.restore(restorer, data_path_in_backup); + access_control.restoreFromBackup(restorer); } } From 109c9bcbd54712654e141ab7b4e3e79477d699e5 Mon Sep 17 00:00:00 2001 From: loyispa Date: Thu, 30 Jun 2022 18:37:19 +0800 Subject: [PATCH 426/525] Fix typo --- src/Storages/LiveView/StorageLiveView.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Storages/LiveView/StorageLiveView.cpp b/src/Storages/LiveView/StorageLiveView.cpp index 75b2f981389..6a079aa832f 100644 --- a/src/Storages/LiveView/StorageLiveView.cpp +++ b/src/Storages/LiveView/StorageLiveView.cpp @@ -328,7 +328,7 @@ StorageLiveView::StorageLiveView( blocks_metadata_ptr = std::make_shared(); active_ptr = std::make_shared(true); - periodic_refresh_task = getContext()->getSchedulePool().createTask("LieViewPeriodicRefreshTask", [this]{ periodicRefreshTaskFunc(); }); + periodic_refresh_task = getContext()->getSchedulePool().createTask("LiveViewPeriodicRefreshTask", [this]{ periodicRefreshTaskFunc(); }); periodic_refresh_task->deactivate(); } From c38841a044bdbffad927ab820b8959117739d5dc Mon Sep 17 00:00:00 2001 From: Evgeny Kruglov Date: Thu, 30 Jun 2022 12:47:35 +0200 Subject: [PATCH 427/525] Fixes for clickhouse/clickhouse-keeper docker image (#38462) --- docker/keeper/Dockerfile | 2 +- docker/keeper/entrypoint.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/keeper/Dockerfile b/docker/keeper/Dockerfile index 068377e8f8c..282392bd98a 100644 --- a/docker/keeper/Dockerfile +++ b/docker/keeper/Dockerfile @@ -67,7 +67,7 @@ RUN arch=${TARGETARCH:-amd64} \ && chmod ugo+Xrw -R /var/lib/clickhouse /var/log/clickhouse-keeper /etc/clickhouse-keeper -EXPOSE 2181 10181 44444 +EXPOSE 2181 10181 44444 9181 VOLUME /var/lib/clickhouse /var/log/clickhouse-keeper /etc/clickhouse-keeper diff --git a/docker/keeper/entrypoint.sh b/docker/keeper/entrypoint.sh index 86e56e88aa9..939cd941aeb 100644 --- a/docker/keeper/entrypoint.sh +++ b/docker/keeper/entrypoint.sh @@ -31,7 +31,7 @@ else DO_CHOWN=0 fi -KEEPER_CONFIG="${KEEPER_CONFIG:-/etc/clickhouse-keeper/config.yaml}" +KEEPER_CONFIG="${KEEPER_CONFIG:-/etc/clickhouse-keeper/keeper_config.xml}" if [ -f "$KEEPER_CONFIG" ] && ! $gosu test -f "$KEEPER_CONFIG" -a -r "$KEEPER_CONFIG"; then echo "Configuration file '$KEEPER_CONFIG' isn't readable by user with id '$USER'" From f443cf66f0b69136d31a2ca9c6091c30f5557e3d Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Wed, 29 Jun 2022 19:19:47 +0200 Subject: [PATCH 428/525] CacheDictionary simplify update queue --- .../CacheDictionaryUpdateQueue.cpp | 24 +++++++++++-------- src/Dictionaries/CacheDictionaryUpdateQueue.h | 6 ++--- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/Dictionaries/CacheDictionaryUpdateQueue.cpp b/src/Dictionaries/CacheDictionaryUpdateQueue.cpp index aee1f0de2f6..1fdaf10c57c 100644 --- a/src/Dictionaries/CacheDictionaryUpdateQueue.cpp +++ b/src/Dictionaries/CacheDictionaryUpdateQueue.cpp @@ -68,9 +68,9 @@ void CacheDictionaryUpdateQueue::waitForCurrentUpdateFinish if (update_queue.isFinished()) throw Exception(ErrorCodes::UNSUPPORTED_METHOD, "CacheDictionaryUpdateQueue finished"); - std::unique_lock update_lock(update_mutex); + std::unique_lock update_lock(update_unit_ptr->update_mutex); - bool result = is_update_finished.wait_for( + bool result = update_unit_ptr->is_update_finished.wait_for( update_lock, std::chrono::milliseconds(configuration.query_wait_timeout_milliseconds), [&] @@ -133,19 +133,23 @@ void CacheDictionaryUpdateQueue::updateThreadFunction() /// Update update_func(unit_to_update); - /// Notify thread about finished updating the bunch of ids - /// where their own ids were included. - std::lock_guard lock(update_mutex); + { + /// Notify thread about finished updating the bunch of ids + /// where their own ids were included. + std::lock_guard lock(unit_to_update->update_mutex); + unit_to_update->is_done = true; + } - unit_to_update->is_done = true; - is_update_finished.notify_all(); + unit_to_update->is_update_finished.notify_all(); } catch (...) { - std::lock_guard lock(update_mutex); + { + std::lock_guard lock(unit_to_update->update_mutex); + unit_to_update->current_exception = std::current_exception(); // NOLINT(bugprone-throw-keyword-missing) + } - unit_to_update->current_exception = std::current_exception(); // NOLINT(bugprone-throw-keyword-missing) - is_update_finished.notify_all(); + unit_to_update->is_update_finished.notify_all(); } } } diff --git a/src/Dictionaries/CacheDictionaryUpdateQueue.h b/src/Dictionaries/CacheDictionaryUpdateQueue.h index d6a195ca7b8..48598cb4548 100644 --- a/src/Dictionaries/CacheDictionaryUpdateQueue.h +++ b/src/Dictionaries/CacheDictionaryUpdateQueue.h @@ -77,6 +77,9 @@ private: std::atomic is_done{false}; std::exception_ptr current_exception{nullptr}; /// NOLINT + mutable std::mutex update_mutex; + mutable std::condition_variable is_update_finished; + /// While UpdateUnit is alive, it is accounted in update_queue size. CurrentMetrics::Increment alive_batch{CurrentMetrics::CacheDictionaryUpdateQueueBatches}; CurrentMetrics::Increment alive_keys; @@ -159,9 +162,6 @@ private: UpdateQueue update_queue; ThreadPool update_pool; - - mutable std::mutex update_mutex; - mutable std::condition_variable is_update_finished; }; extern template class CacheDictionaryUpdateQueue; From a47355877ef35c706603db8c1b251470233bf0cf Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Thu, 30 Jun 2022 13:58:26 +0300 Subject: [PATCH 429/525] Add revision() function (#38555) It can be useful to match versions, since in some tables (system.trace_log) there is only revision column. P.S. came to this when was digging into stress reports from CI. P.P.S. case insensitive by analogy with version(). Signed-off-by: Azat Khuzhin --- src/Functions/registerFunctionsMiscellaneous.cpp | 2 ++ src/Functions/serverConstants.cpp | 15 +++++++++++++++ .../01773_case_sensitive_revision.reference | 1 + .../0_stateless/01773_case_sensitive_revision.sql | 1 + 4 files changed, 19 insertions(+) create mode 100644 tests/queries/0_stateless/01773_case_sensitive_revision.reference create mode 100644 tests/queries/0_stateless/01773_case_sensitive_revision.sql diff --git a/src/Functions/registerFunctionsMiscellaneous.cpp b/src/Functions/registerFunctionsMiscellaneous.cpp index 9cd9c70da16..755d38409a6 100644 --- a/src/Functions/registerFunctionsMiscellaneous.cpp +++ b/src/Functions/registerFunctionsMiscellaneous.cpp @@ -40,6 +40,7 @@ void registerFunctionIsNaN(FunctionFactory &); void registerFunctionIfNotFinite(FunctionFactory &); void registerFunctionThrowIf(FunctionFactory &); void registerFunctionVersion(FunctionFactory &); +void registerFunctionRevision(FunctionFactory &); void registerFunctionBuildId(FunctionFactory &); void registerFunctionUptime(FunctionFactory &); void registerFunctionTimezone(FunctionFactory &); @@ -129,6 +130,7 @@ void registerFunctionsMiscellaneous(FunctionFactory & factory) registerFunctionIfNotFinite(factory); registerFunctionThrowIf(factory); registerFunctionVersion(factory); + registerFunctionRevision(factory); registerFunctionBuildId(factory); registerFunctionUptime(factory); registerFunctionTimezone(factory); diff --git a/src/Functions/serverConstants.cpp b/src/Functions/serverConstants.cpp index 12134cf4e4c..e809ec7c298 100644 --- a/src/Functions/serverConstants.cpp +++ b/src/Functions/serverConstants.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #if defined(OS_LINUX) # include @@ -88,6 +89,15 @@ namespace explicit FunctionVersion(ContextPtr context) : FunctionConstantBase(VERSION_STRING, context->isDistributed()) {} }; + /// revision() - returns the current revision. + class FunctionRevision : public FunctionConstantBase + { + public: + static constexpr auto name = "revision"; + static FunctionPtr create(ContextPtr context) { return std::make_shared(context); } + explicit FunctionRevision(ContextPtr context) : FunctionConstantBase(ClickHouseRevision::getVersionRevision(), context->isDistributed()) {} + }; + class FunctionZooKeeperSessionUptime : public FunctionConstantBase { public: @@ -151,6 +161,11 @@ void registerFunctionVersion(FunctionFactory & factory) factory.registerFunction(FunctionFactory::CaseInsensitive); } +void registerFunctionRevision(FunctionFactory & factory) +{ + factory.registerFunction(FunctionFactory::CaseInsensitive); +} + void registerFunctionZooKeeperSessionUptime(FunctionFactory & factory) { factory.registerFunction(); diff --git a/tests/queries/0_stateless/01773_case_sensitive_revision.reference b/tests/queries/0_stateless/01773_case_sensitive_revision.reference new file mode 100644 index 00000000000..72749c905a3 --- /dev/null +++ b/tests/queries/0_stateless/01773_case_sensitive_revision.reference @@ -0,0 +1 @@ +1 1 1 diff --git a/tests/queries/0_stateless/01773_case_sensitive_revision.sql b/tests/queries/0_stateless/01773_case_sensitive_revision.sql new file mode 100644 index 00000000000..16970daf61b --- /dev/null +++ b/tests/queries/0_stateless/01773_case_sensitive_revision.sql @@ -0,0 +1 @@ +SELECT revision()=Revision(), REVISION()=Revision(), revisiON()=reVision(); From 95687f2d01e9b17fd19815bc6f6b712ec3075504 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Thu, 30 Jun 2022 13:15:35 +0200 Subject: [PATCH 430/525] CacheDictionaryUpdateUnit make update state non atomic --- src/Dictionaries/CacheDictionaryUpdateQueue.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Dictionaries/CacheDictionaryUpdateQueue.h b/src/Dictionaries/CacheDictionaryUpdateQueue.h index 48598cb4548..8db5c4a59df 100644 --- a/src/Dictionaries/CacheDictionaryUpdateQueue.h +++ b/src/Dictionaries/CacheDictionaryUpdateQueue.h @@ -74,12 +74,12 @@ private: template friend class CacheDictionaryUpdateQueue; - std::atomic is_done{false}; - std::exception_ptr current_exception{nullptr}; /// NOLINT - mutable std::mutex update_mutex; mutable std::condition_variable is_update_finished; + bool is_done{false}; + std::exception_ptr current_exception{nullptr}; /// NOLINT + /// While UpdateUnit is alive, it is accounted in update_queue size. CurrentMetrics::Increment alive_batch{CurrentMetrics::CacheDictionaryUpdateQueueBatches}; CurrentMetrics::Increment alive_keys; From 1e3b5bfcb75de0cff8bccc3f9342c6fe66a9cf5c Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Thu, 30 Jun 2022 11:43:25 +0000 Subject: [PATCH 431/525] Fix test 00233_position_function_family --- src/Common/StringSearcher.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Common/StringSearcher.h b/src/Common/StringSearcher.h index 7d669ddd369..b8f8a9d3a88 100644 --- a/src/Common/StringSearcher.h +++ b/src/Common/StringSearcher.h @@ -853,7 +853,8 @@ struct StdLibASCIIStringSearcher : public StringSearcherBase else { return std::search( - haystack_start, haystack_end, needle_start, needle_end); + haystack_start, haystack_end, needle_start, needle_end, + [](char c1, char c2) {return c1 == c2;}); } } From 0d3904b788d48e8f2dc47a8b8c6b6255f55f4c9a Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 14:11:43 +0200 Subject: [PATCH 432/525] Fix incorrect order of operations in disk transactions --- src/Disks/DiskDecorator.cpp | 5 ++ src/Disks/DiskDecorator.h | 2 + src/Disks/FakeDiskTransaction.h | 5 ++ src/Disks/IDiskTransaction.h | 3 + .../DiskObjectStorageTransaction.cpp | 55 ++++++++++++++++--- .../DiskObjectStorageTransaction.h | 4 +- 6 files changed, 64 insertions(+), 10 deletions(-) diff --git a/src/Disks/DiskDecorator.cpp b/src/Disks/DiskDecorator.cpp index 8390ca589e5..44248cae841 100644 --- a/src/Disks/DiskDecorator.cpp +++ b/src/Disks/DiskDecorator.cpp @@ -8,6 +8,11 @@ DiskDecorator::DiskDecorator(const DiskPtr & delegate_) : delegate(delegate_) { } +DiskTransactionPtr DiskDecorator::createTransaction() +{ + return delegate->createTransaction(); +} + const String & DiskDecorator::getName() const { return delegate->getName(); diff --git a/src/Disks/DiskDecorator.h b/src/Disks/DiskDecorator.h index e17a5aff3c7..dfb1f654dfd 100644 --- a/src/Disks/DiskDecorator.h +++ b/src/Disks/DiskDecorator.h @@ -12,6 +12,8 @@ class DiskDecorator : public IDisk { public: explicit DiskDecorator(const DiskPtr & delegate_); + + DiskTransactionPtr createTransaction() override; const String & getName() const override; ReservationPtr reserve(UInt64 bytes) override; ~DiskDecorator() override = default; diff --git a/src/Disks/FakeDiskTransaction.h b/src/Disks/FakeDiskTransaction.h index 7f9247a0689..387361a9df8 100644 --- a/src/Disks/FakeDiskTransaction.h +++ b/src/Disks/FakeDiskTransaction.h @@ -125,6 +125,11 @@ public: disk.createHardLink(src_path, dst_path); } + std::string getUniqueId(const String & path) const override + { + return disk.getUniqueId(path); + } + bool isCommitedOrTriedToCommit() const override { return commit_called; diff --git a/src/Disks/IDiskTransaction.h b/src/Disks/IDiskTransaction.h index c6d93f4cb37..b301d52a8ea 100644 --- a/src/Disks/IDiskTransaction.h +++ b/src/Disks/IDiskTransaction.h @@ -109,8 +109,11 @@ public: /// Create hardlink from `src_path` to `dst_path`. virtual void createHardLink(const std::string & src_path, const std::string & dst_path) = 0; + virtual std::string getUniqueId(const String & path) const = 0; + virtual bool isCommitedOrTriedToCommit() const = 0; + }; using DiskTransactionPtr = std::shared_ptr; diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index 4903168b76b..db932e644c6 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -3,6 +3,7 @@ #include #include #include +#include namespace DB { @@ -277,6 +278,8 @@ struct WriteFileObjectStorageOperation final : public IDiskObjectStorageOperatio { std::string path; std::string blob_path; + size_t size; + std::function on_execute; WriteFileObjectStorageOperation( IObjectStorage & object_storage_, @@ -288,9 +291,14 @@ struct WriteFileObjectStorageOperation final : public IDiskObjectStorageOperatio , blob_path(blob_path_) {} - void execute(MetadataTransactionPtr) override + void setOnExecute(std::function && on_execute_) { + on_execute = on_execute_; + } + void execute(MetadataTransactionPtr tx) override + { + on_execute(tx); } void undo() override @@ -368,6 +376,7 @@ void DiskObjectStorageTransaction::createDirectory(const std::string & path) void DiskObjectStorageTransaction::createDirectories(const std::string & path) { + LOG_DEBUG(&Poco::Logger::get("DEBUG"), "CREATE DIRECTORIES TRANSACTION FOR PATH {}", path); operations_to_execute.emplace_back( std::make_unique(object_storage, metadata_storage, [path](MetadataTransactionPtr tx) { @@ -477,6 +486,14 @@ String revisionToString(UInt64 revision) } +std::string DiskObjectStorageTransaction::getUniqueId(const std::string & path) const +{ + auto it = unique_ids.find(path); + if (it != unique_ids.end()) + return it->second; + return ""; +} + std::unique_ptr DiskObjectStorageTransaction::writeFile( /// NOLINT const std::string & path, size_t buf_size, @@ -497,21 +514,41 @@ std::unique_ptr DiskObjectStorageTransaction::writeFile blob_name = "r" + revisionToString(revision) + "-file-" + blob_name; } + unique_ids[path] = blob_name; + auto blob_path = fs::path(remote_fs_root_path) / blob_name; + auto write_operation = std::make_unique(object_storage, metadata_storage, path, blob_path); + std::function create_metadata_callback; - auto create_metadata_callback = [tx = shared_from_this(), mode, path, blob_name, autocommit] (size_t count) + if (autocommit) { - if (mode == WriteMode::Rewrite) - tx->metadata_transaction->createMetadataFile(path, blob_name, count); - else - tx->metadata_transaction->addBlobToMetadata(path, blob_name, count); + create_metadata_callback = [tx = shared_from_this(), mode, path, blob_name] (size_t count) + { + if (mode == WriteMode::Rewrite) + tx->metadata_transaction->createMetadataFile(path, blob_name, count); + else + tx->metadata_transaction->addBlobToMetadata(path, blob_name, count); - if (autocommit) tx->metadata_transaction->commit(); - }; + }; + } + else + { + create_metadata_callback = [write_op = write_operation.get(), mode, path, blob_name] (size_t count) + { + write_op->setOnExecute([mode, path, blob_name, count](MetadataTransactionPtr tx) + { + if (mode == WriteMode::Rewrite) + tx->createMetadataFile(path, blob_name, count); + else + tx->addBlobToMetadata(path, blob_name, count); + }); + }; - operations_to_execute.emplace_back(std::make_unique(object_storage, metadata_storage, path, blob_path)); + } + + operations_to_execute.emplace_back(std::move(write_operation)); /// We always use mode Rewrite because we simulate append using metadata and different files return object_storage.writeObject( diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h index 392152d1ce0..4312b380a04 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h @@ -56,6 +56,7 @@ private: /// TODO we can get rid of this params const std::string & remote_fs_root_path; DiskObjectStorageRemoteMetadataRestoreHelper * metadata_helper; + std::unordered_map unique_ids; DiskObjectStorageOperations operations_to_execute; bool commit_called{false}; @@ -109,11 +110,12 @@ public: void setReadOnly(const std::string & path) override; void createHardLink(const std::string & src_path, const std::string & dst_path) override; + std::string getUniqueId(const std::string & path) const override; + bool isCommitedOrTriedToCommit() const override { return commit_called; } - }; using DiskObjectStorageTransactionPtr = std::shared_ptr; From b2b31103c508d81f8f093d6489fdc25c9f0af357 Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Thu, 30 Jun 2022 13:39:31 +0200 Subject: [PATCH 433/525] Reuse common code for L2Squared and L2 --- src/Functions/array/arrayDistance.cpp | 18 +-- src/Functions/array/arrayNorm.cpp | 10 +- src/Functions/vectorFunctions.cpp | 154 ++++++++------------------ 3 files changed, 51 insertions(+), 131 deletions(-) diff --git a/src/Functions/array/arrayDistance.cpp b/src/Functions/array/arrayDistance.cpp index fda93bceedd..21e05916a5c 100644 --- a/src/Functions/array/arrayDistance.cpp +++ b/src/Functions/array/arrayDistance.cpp @@ -70,26 +70,10 @@ struct L2Distance } }; -struct L2SquaredDistance +struct L2SquaredDistance : L2Distance { static inline String name = "L2Squared"; - struct ConstParams - { - }; - - template - struct State - { - FloatType sum = 0; - }; - - template - static void accumulate(State & state, ResultType x, ResultType y, const ConstParams &) - { - state.sum += (x - y) * (x - y); - } - template static ResultType finalize(const State & state, const ConstParams &) { diff --git a/src/Functions/array/arrayNorm.cpp b/src/Functions/array/arrayNorm.cpp index a9d1885c136..3ea16b23abd 100644 --- a/src/Functions/array/arrayNorm.cpp +++ b/src/Functions/array/arrayNorm.cpp @@ -57,18 +57,10 @@ struct L2Norm } }; -struct L2SquaredNorm +struct L2SquaredNorm : L2Norm { static inline String name = "L2Squared"; - struct ConstParams {}; - - template - inline static ResultType accumulate(ResultType result, ResultType value, const ConstParams &) - { - return result + value * value; - } - template inline static ResultType finalize(ResultType result, const ConstParams &) { diff --git a/src/Functions/vectorFunctions.cpp b/src/Functions/vectorFunctions.cpp index d26eb40e1a8..7974a8bbaf4 100644 --- a/src/Functions/vectorFunctions.cpp +++ b/src/Functions/vectorFunctions.cpp @@ -521,111 +521,6 @@ public: }; using FunctionL1Norm = FunctionLNorm; -template <> -class FunctionLNorm : public ITupleFunction -{ -public: - static constexpr auto name = "L2Norm"; - - explicit FunctionLNorm(ContextPtr context_) : ITupleFunction(context_) {} - static FunctionPtr create(ContextPtr context_) { return std::make_shared(context_); } - - String getName() const override { return name; } - - size_t getNumberOfArguments() const override { return 1; } - - DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override - { - const auto * cur_tuple = checkAndGetDataType(arguments[0].type.get()); - - if (!cur_tuple) - throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Argument 0 of function {} should be tuple, got {}", - getName(), arguments[0].type->getName()); - - const auto & cur_types = cur_tuple->getElements(); - - Columns cur_elements; - if (arguments[0].column) - cur_elements = getTupleElements(*arguments[0].column); - - size_t tuple_size = cur_types.size(); - if (tuple_size == 0) - return std::make_shared(); - - auto multiply = FunctionFactory::instance().get("multiply", context); - auto plus = FunctionFactory::instance().get("plus", context); - DataTypePtr res_type; - for (size_t i = 0; i < tuple_size; ++i) - { - try - { - ColumnWithTypeAndName cur{cur_elements.empty() ? nullptr : cur_elements[i], cur_types[i], {}}; - auto elem_multiply = multiply->build(ColumnsWithTypeAndName{cur, cur}); - - if (i == 0) - { - res_type = elem_multiply->getResultType(); - continue; - } - - ColumnWithTypeAndName left_type{res_type, {}}; - ColumnWithTypeAndName right_type{elem_multiply->getResultType(), {}}; - auto plus_elem = plus->build({left_type, right_type}); - res_type = plus_elem->getResultType(); - } - catch (DB::Exception & e) - { - e.addMessage("While executing function {} for tuple element {}", getName(), i); - throw; - } - } - - auto sqrt = FunctionFactory::instance().get("sqrt", context); - return sqrt->build({ColumnWithTypeAndName{res_type, {}}})->getResultType(); - } - - ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t input_rows_count) const override - { - const auto * cur_tuple = checkAndGetDataType(arguments[0].type.get()); - const auto & cur_types = cur_tuple->getElements(); - auto cur_elements = getTupleElements(*arguments[0].column); - - size_t tuple_size = cur_elements.size(); - if (tuple_size == 0) - return DataTypeUInt8().createColumnConstWithDefaultValue(input_rows_count); - - auto multiply = FunctionFactory::instance().get("multiply", context); - auto plus = FunctionFactory::instance().get("plus", context); - ColumnWithTypeAndName res; - for (size_t i = 0; i < tuple_size; ++i) - { - ColumnWithTypeAndName cur{cur_elements[i], cur_types[i], {}}; - auto elem_multiply = multiply->build(ColumnsWithTypeAndName{cur, cur}); - - ColumnWithTypeAndName column; - column.type = elem_multiply->getResultType(); - column.column = elem_multiply->execute({cur, cur}, column.type, input_rows_count); - - if (i == 0) - { - res = std::move(column); - } - else - { - auto plus_elem = plus->build({res, column}); - auto res_type = plus_elem->getResultType(); - res.column = plus_elem->execute({res, column}, res_type, input_rows_count); - res.type = res_type; - } - } - - auto sqrt = FunctionFactory::instance().get("sqrt", context); - auto sqrt_elem = sqrt->build({res}); - return sqrt_elem->execute({res}, sqrt_elem->getResultType(), input_rows_count); - } -}; -using FunctionL2Norm = FunctionLNorm; - template <> class FunctionLNorm : public ITupleFunction { @@ -728,6 +623,55 @@ public: }; using FunctionL2SquaredNorm = FunctionLNorm; +template <> +class FunctionLNorm : public FunctionL2SquaredNorm +{ +private: + using Base = FunctionL2SquaredNorm; +public: + static constexpr auto name = "L2Norm"; + + explicit FunctionLNorm(ContextPtr context_) : Base(context_) {} + static FunctionPtr create(ContextPtr context_) { return std::make_shared(context_); } + + String getName() const override { return name; } + + DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override + { + const auto * cur_tuple = checkAndGetDataType(arguments[0].type.get()); + + if (!cur_tuple) + throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, "Argument 0 of function {} should be tuple, got {}", + getName(), arguments[0].type->getName()); + + const auto & cur_types = cur_tuple->getElements(); + size_t tuple_size = cur_types.size(); + if (tuple_size == 0) + return std::make_shared(); + + auto sqrt = FunctionFactory::instance().get("sqrt", context); + return sqrt->build({ColumnWithTypeAndName{Base::getReturnTypeImpl(arguments), {}}})->getResultType(); + } + + ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t input_rows_count) const override + { + auto cur_elements = getTupleElements(*arguments[0].column); + + size_t tuple_size = cur_elements.size(); + if (tuple_size == 0) + return DataTypeUInt8().createColumnConstWithDefaultValue(input_rows_count); + + ColumnWithTypeAndName squared_res; + squared_res.type = Base::getReturnTypeImpl(arguments); + squared_res.column = Base::executeImpl(arguments, squared_res.type, input_rows_count); + + auto sqrt = FunctionFactory::instance().get("sqrt", context); + auto sqrt_elem = sqrt->build({squared_res}); + return sqrt_elem->execute({squared_res}, sqrt_elem->getResultType(), input_rows_count); + } +}; +using FunctionL2Norm = FunctionLNorm; + template <> class FunctionLNorm : public ITupleFunction { From cb90aca2efe976e716b41d11806e8e2caf1a8c08 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 14:12:45 +0200 Subject: [PATCH 434/525] Some changes in merge tree --- .../MergeTree/DataPartStorageOnDisk.cpp | 6 ++++ .../MergeTree/DataPartStorageOnDisk.h | 2 ++ src/Storages/MergeTree/DataPartsExchange.cpp | 4 +-- src/Storages/MergeTree/IDataPartStorage.h | 5 ++++ src/Storages/MergeTree/IMergeTreeDataPart.cpp | 5 ---- src/Storages/MergeTree/IMergeTreeDataPart.h | 4 --- .../MergeTree/MergeFromLogEntryTask.cpp | 2 +- src/Storages/MergeTree/MergeTreeData.cpp | 2 +- src/Storages/MergeTree/MergeTreeData.h | 2 +- .../MergeTree/MergeTreeDataWriter.cpp | 2 +- .../MergeTree/MutateFromLogEntryTask.cpp | 2 +- .../MergeTree/ReplicatedMergeTreeSink.cpp | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 28 +++++++++++-------- src/Storages/StorageReplicatedMergeTree.h | 4 +-- 14 files changed, 39 insertions(+), 31 deletions(-) diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 347f43a03e4..833cc2498e8 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -847,6 +847,7 @@ std::string DataPartStorageBuilderOnDisk::getRelativePath() const void DataPartStorageBuilderOnDisk::createDirectories() { + LOG_INFO(&Poco::Logger::get("DEBUG"), "CREATING DIRECTORY {}", (fs::path(root_path) / part_dir).string()); transaction->createDirectories(fs::path(root_path) / part_dir); } @@ -874,6 +875,11 @@ DataPartStoragePtr DataPartStorageBuilderOnDisk::getStorage() const return std::make_shared(volume, root_path, part_dir); } +String DataPartStorageBuilderOnDisk::getUniqueId() const +{ + return transaction->getUniqueId(fs::path(getRelativePath()) / "checksums.txt"); +} + void DataPartStorageBuilderOnDisk::commit() { transaction->commit(); diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.h b/src/Storages/MergeTree/DataPartStorageOnDisk.h index d7d34e96919..66bd009a55d 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.h +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.h @@ -166,6 +166,8 @@ public: bool remove_new_dir_if_exists, bool fsync_part_dir) override; + String getUniqueId() const override; + void commit() override; private: diff --git a/src/Storages/MergeTree/DataPartsExchange.cpp b/src/Storages/MergeTree/DataPartsExchange.cpp index 68e9f0a78d1..148d11d7a29 100644 --- a/src/Storages/MergeTree/DataPartsExchange.cpp +++ b/src/Storages/MergeTree/DataPartsExchange.cpp @@ -347,7 +347,7 @@ void Service::sendPartFromDiskRemoteMeta(const MergeTreeData::DataPartPtr & part /// Serialized metadatadatas with zero ref counts. auto metadatas = data_part_storage_on_disk->getSerializedMetadata(paths); - String part_id = part->getUniqueId(); + String part_id = data_part_storage_on_disk->getUniqueId(); writeStringBinary(part_id, out); writeBinary(checksums.files.size(), out); @@ -928,7 +928,7 @@ MergeTreeData::MutableDataPartPtr Fetcher::downloadPartToDiskRemoteMeta( new_data_part->modification_time = time(nullptr); new_data_part->loadColumnsChecksumsIndexes(true, false); - data.lockSharedData(*new_data_part, /* replace_existing_lock = */ true, {}); + data.lockSharedData(*new_data_part, nullptr, /* replace_existing_lock = */ true, {}); LOG_DEBUG(log, "Download of part {} unique id {} metadata onto disk {} finished.", part_name, part_id, disk->getName()); diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index 2b644abd184..d6087904c8c 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -250,6 +250,11 @@ public: bool remove_new_dir_if_exists, bool fsync_part_dir) = 0; + /// A leak of abstraction. + /// Return some uniq string for file. + /// Required for distinguish different copies of the same part on remote FS. + virtual String getUniqueId() const = 0; + virtual void commit() = 0; }; diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.cpp b/src/Storages/MergeTree/IMergeTreeDataPart.cpp index 60941108f00..8ac4fe3a452 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.cpp +++ b/src/Storages/MergeTree/IMergeTreeDataPart.cpp @@ -1696,11 +1696,6 @@ bool IMergeTreeDataPart::checkAllTTLCalculated(const StorageMetadataPtr & metada return true; } -String IMergeTreeDataPart::getUniqueId() const -{ - return data_part_storage->getUniqueId(); -} - String IMergeTreeDataPart::getZeroLevelPartBlockID(std::string_view token) const { if (info.level != 0) diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.h b/src/Storages/MergeTree/IMergeTreeDataPart.h index 7f3c41ce4c2..1f5a95e3cca 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.h +++ b/src/Storages/MergeTree/IMergeTreeDataPart.h @@ -421,10 +421,6 @@ public: /// part creation (using alter query with materialize_ttl setting). bool checkAllTTLCalculated(const StorageMetadataPtr & metadata_snapshot) const; - /// Return some uniq string for file. - /// Required for distinguish different copies of the same part on remote FS. - String getUniqueId() const; - /// Ensures that creation_tid was correctly set after part creation. void assertHasVersionMetadata(MergeTreeTransaction * txn) const; diff --git a/src/Storages/MergeTree/MergeFromLogEntryTask.cpp b/src/Storages/MergeTree/MergeFromLogEntryTask.cpp index 0e99d6ce04e..a70b329d57b 100644 --- a/src/Storages/MergeTree/MergeFromLogEntryTask.cpp +++ b/src/Storages/MergeTree/MergeFromLogEntryTask.cpp @@ -269,7 +269,7 @@ bool MergeFromLogEntryTask::finalize(ReplicatedMergeMutateTaskBase::PartLogWrite try { - storage.checkPartChecksumsAndCommit(*transaction_ptr, part); + storage.checkPartChecksumsAndCommit(*transaction_ptr, part, builder); } catch (const Exception & e) { diff --git a/src/Storages/MergeTree/MergeTreeData.cpp b/src/Storages/MergeTree/MergeTreeData.cpp index 24840782a74..7ba451c7fee 100644 --- a/src/Storages/MergeTree/MergeTreeData.cpp +++ b/src/Storages/MergeTree/MergeTreeData.cpp @@ -3448,7 +3448,7 @@ void MergeTreeData::swapActivePart(MergeTreeData::DataPartPtr part_copy) if (original_active_part->data_part_storage->supportZeroCopyReplication() && part_copy->data_part_storage->supportZeroCopyReplication() && - original_active_part->getUniqueId() == part_copy->getUniqueId()) + original_active_part->data_part_storage->getUniqueId() == part_copy->data_part_storage->getUniqueId()) { /// May be when several volumes use the same S3/HDFS storage original_active_part->force_keep_shared_data = true; diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index c8c6a03f4c0..94c8ba8b33d 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -961,7 +961,7 @@ public: /// Lock part in zookeeper for shared data in several nodes /// Overridden in StorageReplicatedMergeTree - virtual void lockSharedData(const IMergeTreeDataPart &, bool = false, std::optional = {}) const {} /// NOLINT + virtual void lockSharedData(const IMergeTreeDataPart &, DataPartStorageBuilderPtr = nullptr, bool = false, std::optional = {}) const {} /// NOLINT /// Unlock shared data part in zookeeper /// Overridden in StorageReplicatedMergeTree diff --git a/src/Storages/MergeTree/MergeTreeDataWriter.cpp b/src/Storages/MergeTree/MergeTreeDataWriter.cpp index fe5ec326790..89042e25a0e 100644 --- a/src/Storages/MergeTree/MergeTreeDataWriter.cpp +++ b/src/Storages/MergeTree/MergeTreeDataWriter.cpp @@ -410,7 +410,7 @@ MergeTreeDataWriter::TemporaryPart MergeTreeDataWriter::writeTempPart( if (new_data_part->data_part_storage->exists()) { - LOG_WARNING(log, "Removing old temporary directory {}", new_data_part->data_part_storage->getFullPath()); + LOG_WARNING(log, "Removing old temporary directory {}", full_path); data_part_storage_builder->removeRecursive(); } diff --git a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp index a51eb7854ab..19a11aa2385 100644 --- a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp +++ b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp @@ -179,7 +179,7 @@ bool MutateFromLogEntryTask::finalize(ReplicatedMergeMutateTaskBase::PartLogWrit try { - storage.checkPartChecksumsAndCommit(*transaction_ptr, new_part, mutate_task->getHardlinkedFiles()); + storage.checkPartChecksumsAndCommit(*transaction_ptr, new_part, builder, mutate_task->getHardlinkedFiles()); } catch (const Exception & e) { diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index 65daa37bb41..0606f26747f 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -502,7 +502,7 @@ void ReplicatedMergeTreeSink::commitPart( part->name); } - storage.lockSharedData(*part, false, {}); + storage.lockSharedData(*part, builder, false, {}); Coordination::Responses responses; Coordination::Error multi_code = zookeeper->tryMultiNoThrow(ops, responses); /// 1 RTT diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index a711ca803d4..31ad7160431 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -1501,7 +1501,7 @@ void StorageReplicatedMergeTree::checkPartChecksumsAndAddCommitOps(const zkutil: } MergeTreeData::DataPartsVector StorageReplicatedMergeTree::checkPartChecksumsAndCommit(Transaction & transaction, - const DataPartPtr & part, std::optional hardlinked_files) + const DataPartPtr & part, DataPartStorageBuilderPtr builder, std::optional hardlinked_files) { auto zookeeper = getZooKeeper(); @@ -1511,7 +1511,7 @@ MergeTreeData::DataPartsVector StorageReplicatedMergeTree::checkPartChecksumsAnd Coordination::Requests ops; NameSet absent_part_paths_on_replicas; - lockSharedData(*part, false, hardlinked_files); + lockSharedData(*part, builder, false, hardlinked_files); /// Checksums are checked here and `ops` is filled. In fact, the part is added to ZK just below, when executing `multi`. checkPartChecksumsAndAddCommitOps(zookeeper, part, ops, part->name, &absent_part_paths_on_replicas); @@ -1659,7 +1659,7 @@ bool StorageReplicatedMergeTree::executeLogEntry(LogEntry & entry) part->version.setCreationTID(Tx::PrehistoricTID, nullptr); auto builder = part->data_part_storage->getBuilder(); renameTempPartAndReplace(part, transaction, builder); - checkPartChecksumsAndCommit(transaction, part); + checkPartChecksumsAndCommit(transaction, part, nullptr); writePartLog(PartLogElement::Type::NEW_PART, {}, 0 /** log entry is fake so we don't measure the time */, part->name, part, {} /** log entry is fake so there are no initial parts */, nullptr); @@ -2347,7 +2347,7 @@ bool StorageReplicatedMergeTree::executeReplaceRange(const LogEntry & entry) renameTempPartAndReplace(part_desc->res_part, transaction, builder); getCommitPartOps(ops, part_desc->res_part); - lockSharedData(*part_desc->res_part, false, part_desc->hardlinked_files); + lockSharedData(*part_desc->res_part, nullptr, false, part_desc->hardlinked_files); } @@ -4089,7 +4089,7 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora Transaction transaction(*this, NO_TRANSACTION_RAW); renameTempPartAndReplace(part, transaction, builder); - replaced_parts = checkPartChecksumsAndCommit(transaction, part, hardlinked_files); + replaced_parts = checkPartChecksumsAndCommit(transaction, part, nullptr, hardlinked_files); /** If a quorum is tracked for this part, you must update it. * If you do not have time, in case of losing the session, when you restart the server - see the `ReplicatedMergeTreeRestartingThread::updateQuorumIfWeHavePart` method. @@ -6624,7 +6624,7 @@ void StorageReplicatedMergeTree::replacePartitionFrom( } for (size_t i = 0; i < dst_parts.size(); ++i) - lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); + lockSharedData(*dst_parts[i], nullptr, false, hardlinked_files_for_parts[i]); Coordination::Error code = zookeeper->tryMulti(ops, op_results); if (code == Coordination::Error::ZOK) @@ -6860,8 +6860,7 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta } for (size_t i = 0; i < dst_parts.size(); ++i) - dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); - + dest_table_storage->lockSharedData(*dst_parts[i], nullptr, false, hardlinked_files_for_parts[i]); Coordination::Error code = zookeeper->tryMulti(ops, op_results); if (code == Coordination::Error::ZBADVERSION) continue; @@ -7546,7 +7545,7 @@ void StorageReplicatedMergeTree::lockSharedDataTemporary(const String & part_nam } } -void StorageReplicatedMergeTree::lockSharedData(const IMergeTreeDataPart & part, bool replace_existing_lock, std::optional hardlinked_files) const +void StorageReplicatedMergeTree::lockSharedData(const IMergeTreeDataPart & part, DataPartStorageBuilderPtr builder, bool replace_existing_lock, std::optional hardlinked_files) const { auto settings = getSettings(); @@ -7560,7 +7559,12 @@ void StorageReplicatedMergeTree::lockSharedData(const IMergeTreeDataPart & part, if (!zookeeper) return; - String id = part.getUniqueId(); + String id; + if (builder) + id = builder->getUniqueId(); + else + id = part.data_part_storage->getUniqueId(); + boost::replace_all(id, "/", "_"); Strings zc_zookeeper_paths = getZeroCopyPartPath( @@ -7612,7 +7616,7 @@ std::pair StorageReplicatedMergeTree::unlockSharedData(const IMer return std::make_pair(true, NameSet{}); } - return unlockSharedDataByID(part.getUniqueId(), getTableSharedID(), part.name, replica_name, part.data_part_storage->getDiskType(), getZooKeeper(), *getSettings(), log, + return unlockSharedDataByID(part.data_part_storage->getUniqueId(), getTableSharedID(), part.name, replica_name, part.data_part_storage->getDiskType(), getZooKeeper(), *getSettings(), log, zookeeper_path); } @@ -8055,7 +8059,7 @@ bool StorageReplicatedMergeTree::createEmptyPartInsteadOfLost(zkutil::ZooKeeperP throw Exception(ErrorCodes::INCORRECT_DATA, "Tried to create empty part {}, but it replaces existing parts {}.", lost_part_name, fmt::join(part_names, ", ")); } - lockSharedData(*new_data_part, false, {}); + lockSharedData(*new_data_part, data_part_storage_builder, false, {}); while (true) { diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 73a08a2b921..3e7e1e0f4c4 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -261,7 +261,7 @@ public: DataPartStoragePtr executeFetchShared(const String & source_replica, const String & new_part_name, const DiskPtr & disk, const String & path); /// Lock part in zookeeper for use shared data in several nodes - void lockSharedData(const IMergeTreeDataPart & part, bool replace_existing_lock, std::optional hardlinked_files) const override; + void lockSharedData(const IMergeTreeDataPart & part, DataPartStorageBuilderPtr builder, bool replace_existing_lock, std::optional hardlinked_files) const override; void lockSharedDataTemporary(const String & part_name, const String & part_id, const DiskPtr & disk) const; @@ -506,7 +506,7 @@ private: String getChecksumsForZooKeeper(const MergeTreeDataPartChecksums & checksums) const; /// Accepts a PreActive part, atomically checks its checksums with ones on other replicas and commit the part - DataPartsVector checkPartChecksumsAndCommit(Transaction & transaction, const DataPartPtr & part, std::optional hardlinked_files = {}); + DataPartsVector checkPartChecksumsAndCommit(Transaction & transaction, const DataPartPtr & part, DataPartStorageBuilderPtr builder, std::optional hardlinked_files = {}); bool partIsAssignedToBackgroundOperation(const DataPartPtr & part) const override; From 9a891543524069a8c04ce8acde064213a31fb94b Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 14:11:43 +0200 Subject: [PATCH 435/525] Fix incorrect order of operations in disk transactions (cherry picked from commit 0d3904b788d48e8f2dc47a8b8c6b6255f55f4c9a) --- src/Disks/DiskDecorator.cpp | 5 ++ src/Disks/DiskDecorator.h | 2 + src/Disks/IDiskTransaction.h | 1 - .../DiskObjectStorageTransaction.cpp | 55 ++++++++++++++++--- .../DiskObjectStorageTransaction.h | 1 + 5 files changed, 54 insertions(+), 10 deletions(-) diff --git a/src/Disks/DiskDecorator.cpp b/src/Disks/DiskDecorator.cpp index 8390ca589e5..44248cae841 100644 --- a/src/Disks/DiskDecorator.cpp +++ b/src/Disks/DiskDecorator.cpp @@ -8,6 +8,11 @@ DiskDecorator::DiskDecorator(const DiskPtr & delegate_) : delegate(delegate_) { } +DiskTransactionPtr DiskDecorator::createTransaction() +{ + return delegate->createTransaction(); +} + const String & DiskDecorator::getName() const { return delegate->getName(); diff --git a/src/Disks/DiskDecorator.h b/src/Disks/DiskDecorator.h index e17a5aff3c7..dfb1f654dfd 100644 --- a/src/Disks/DiskDecorator.h +++ b/src/Disks/DiskDecorator.h @@ -12,6 +12,8 @@ class DiskDecorator : public IDisk { public: explicit DiskDecorator(const DiskPtr & delegate_); + + DiskTransactionPtr createTransaction() override; const String & getName() const override; ReservationPtr reserve(UInt64 bytes) override; ~DiskDecorator() override = default; diff --git a/src/Disks/IDiskTransaction.h b/src/Disks/IDiskTransaction.h index e7b1cf3f675..4b00a9bcefc 100644 --- a/src/Disks/IDiskTransaction.h +++ b/src/Disks/IDiskTransaction.h @@ -108,7 +108,6 @@ public: /// Create hardlink from `src_path` to `dst_path`. virtual void createHardLink(const std::string & src_path, const std::string & dst_path) = 0; - }; using DiskTransactionPtr = std::shared_ptr; diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index 1d16012437a..d3b8f162a7e 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -3,6 +3,7 @@ #include #include #include +#include namespace DB { @@ -277,6 +278,8 @@ struct WriteFileObjectStorageOperation final : public IDiskObjectStorageOperatio { std::string path; std::string blob_path; + size_t size; + std::function on_execute; WriteFileObjectStorageOperation( IObjectStorage & object_storage_, @@ -288,9 +291,14 @@ struct WriteFileObjectStorageOperation final : public IDiskObjectStorageOperatio , blob_path(blob_path_) {} - void execute(MetadataTransactionPtr) override + void setOnExecute(std::function && on_execute_) { + on_execute = on_execute_; + } + void execute(MetadataTransactionPtr tx) override + { + on_execute(tx); } void undo() override @@ -368,6 +376,7 @@ void DiskObjectStorageTransaction::createDirectory(const std::string & path) void DiskObjectStorageTransaction::createDirectories(const std::string & path) { + LOG_DEBUG(&Poco::Logger::get("DEBUG"), "CREATE DIRECTORIES TRANSACTION FOR PATH {}", path); operations_to_execute.emplace_back( std::make_unique(object_storage, metadata_storage, [path](MetadataTransactionPtr tx) { @@ -477,6 +486,14 @@ String revisionToString(UInt64 revision) } +std::string DiskObjectStorageTransaction::getUniqueId(const std::string & path) const +{ + auto it = unique_ids.find(path); + if (it != unique_ids.end()) + return it->second; + return ""; +} + std::unique_ptr DiskObjectStorageTransaction::writeFile( /// NOLINT const std::string & path, size_t buf_size, @@ -497,21 +514,41 @@ std::unique_ptr DiskObjectStorageTransaction::writeFile blob_name = "r" + revisionToString(revision) + "-file-" + blob_name; } + unique_ids[path] = blob_name; + auto blob_path = fs::path(remote_fs_root_path) / blob_name; + auto write_operation = std::make_unique(object_storage, metadata_storage, path, blob_path); + std::function create_metadata_callback; - auto create_metadata_callback = [tx = shared_from_this(), mode, path, blob_name, autocommit] (size_t count) + if (autocommit) { - if (mode == WriteMode::Rewrite) - tx->metadata_transaction->createMetadataFile(path, blob_name, count); - else - tx->metadata_transaction->addBlobToMetadata(path, blob_name, count); + create_metadata_callback = [tx = shared_from_this(), mode, path, blob_name] (size_t count) + { + if (mode == WriteMode::Rewrite) + tx->metadata_transaction->createMetadataFile(path, blob_name, count); + else + tx->metadata_transaction->addBlobToMetadata(path, blob_name, count); - if (autocommit) tx->metadata_transaction->commit(); - }; + }; + } + else + { + create_metadata_callback = [write_op = write_operation.get(), mode, path, blob_name] (size_t count) + { + write_op->setOnExecute([mode, path, blob_name, count](MetadataTransactionPtr tx) + { + if (mode == WriteMode::Rewrite) + tx->createMetadataFile(path, blob_name, count); + else + tx->addBlobToMetadata(path, blob_name, count); + }); + }; - operations_to_execute.emplace_back(std::make_unique(object_storage, metadata_storage, path, blob_path)); + } + + operations_to_execute.emplace_back(std::move(write_operation)); /// We always use mode Rewrite because we simulate append using metadata and different files return object_storage.writeObject( diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h index 362b5404707..19ce34cc06d 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h @@ -56,6 +56,7 @@ private: /// TODO we can get rid of this params const std::string & remote_fs_root_path; DiskObjectStorageRemoteMetadataRestoreHelper * metadata_helper; + std::unordered_map unique_ids; DiskObjectStorageOperations operations_to_execute; public: From 1ff4222661188a962817721b4f1744d5d807834e Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 14:21:48 +0200 Subject: [PATCH 436/525] Remove redundant changes --- .../ObjectStorages/DiskObjectStorageTransaction.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index d3b8f162a7e..97885057833 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -486,14 +486,6 @@ String revisionToString(UInt64 revision) } -std::string DiskObjectStorageTransaction::getUniqueId(const std::string & path) const -{ - auto it = unique_ids.find(path); - if (it != unique_ids.end()) - return it->second; - return ""; -} - std::unique_ptr DiskObjectStorageTransaction::writeFile( /// NOLINT const std::string & path, size_t buf_size, @@ -514,8 +506,6 @@ std::unique_ptr DiskObjectStorageTransaction::writeFile blob_name = "r" + revisionToString(revision) + "-file-" + blob_name; } - unique_ids[path] = blob_name; - auto blob_path = fs::path(remote_fs_root_path) / blob_name; auto write_operation = std::make_unique(object_storage, metadata_storage, path, blob_path); From c5943d0384b65753879194be72719659ebabcffb Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 14:27:47 +0200 Subject: [PATCH 437/525] Better comment --- .../ObjectStorages/DiskObjectStorageTransaction.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index 97885057833..3ac37af29a1 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -527,6 +527,16 @@ std::unique_ptr DiskObjectStorageTransaction::writeFile { create_metadata_callback = [write_op = write_operation.get(), mode, path, blob_name] (size_t count) { + /// This callback called in WriteBuffer finalize method -- only there we actually know + /// how many bytes were written. We don't control when this finalize method will be called + /// so here we just modify operation itself, but don't execute anything (and don't modify metadata transaction). + /// Otherwise it's possible to get reorder of operations, like: + /// tx->createDirectory(xxx) -- will add metadata operation in execute + /// buf1 = tx->writeFile(xxx/yyy.bin) + /// buf2 = tx->writeFile(xxx/zzz.bin) + /// ... + /// buf1->finalize() // shouldn't do anything with metadata operations, just memoize what to do + /// tx->commit() write_op->setOnExecute([mode, path, blob_name, count](MetadataTransactionPtr tx) { if (mode == WriteMode::Rewrite) From dee62404949eff22ee643e3cb249b13db996a8c3 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 14:34:32 +0200 Subject: [PATCH 438/525] Remove redundant --- src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp | 1 - src/Disks/ObjectStorages/DiskObjectStorageTransaction.h | 1 - 2 files changed, 2 deletions(-) diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index 3ac37af29a1..51f975943a4 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -376,7 +376,6 @@ void DiskObjectStorageTransaction::createDirectory(const std::string & path) void DiskObjectStorageTransaction::createDirectories(const std::string & path) { - LOG_DEBUG(&Poco::Logger::get("DEBUG"), "CREATE DIRECTORIES TRANSACTION FOR PATH {}", path); operations_to_execute.emplace_back( std::make_unique(object_storage, metadata_storage, [path](MetadataTransactionPtr tx) { diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h index 19ce34cc06d..362b5404707 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h @@ -56,7 +56,6 @@ private: /// TODO we can get rid of this params const std::string & remote_fs_root_path; DiskObjectStorageRemoteMetadataRestoreHelper * metadata_helper; - std::unordered_map unique_ids; DiskObjectStorageOperations operations_to_execute; public: From 845264dd7bb961633c1f273f2a0339e7ae1beed2 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 14:36:18 +0200 Subject: [PATCH 439/525] Followup --- src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index 51f975943a4..6c9e5273fdb 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -298,7 +298,8 @@ struct WriteFileObjectStorageOperation final : public IDiskObjectStorageOperatio void execute(MetadataTransactionPtr tx) override { - on_execute(tx); + if (on_execute) + on_execute(tx); } void undo() override From d31ca4c4b6debe974f8f70272eb8e755cbbd1738 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Thu, 30 Jun 2022 14:49:11 +0200 Subject: [PATCH 440/525] Fixed tests --- src/Columns/ColumnVector.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Columns/ColumnVector.cpp b/src/Columns/ColumnVector.cpp index 7cfb90d4371..60423e2b0fe 100644 --- a/src/Columns/ColumnVector.cpp +++ b/src/Columns/ColumnVector.cpp @@ -633,7 +633,8 @@ namespace while (sse_copy_counter) { - _mm_storeu_si128(reinterpret_cast<__m128i *>(result_data_copy), *(reinterpret_cast(data_copy_begin_ptr))); + __m128i copy_batch = _mm_loadu_si128(reinterpret_cast(data_copy_begin_ptr)); + _mm_storeu_si128(reinterpret_cast<__m128i *>(result_data_copy), copy_batch); result_data_copy += 4; data_copy_begin_ptr += 4; --sse_copy_counter; @@ -673,7 +674,8 @@ namespace while (sse_copy_counter) { - _mm_storeu_si128(reinterpret_cast<__m128i *>(result_data), *(reinterpret_cast(data_copy_begin_ptr))); + __m128i copy_batch = _mm_loadu_si128(reinterpret_cast(data_copy_begin_ptr)); + _mm_storeu_si128(reinterpret_cast<__m128i *>(result_data), copy_batch); result_data += 4; data_copy_begin_ptr += 4; --sse_copy_counter; From 488ee75fc4de884769d8e0e9d749f25c9700c02c Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Thu, 30 Jun 2022 13:03:39 +0000 Subject: [PATCH 441/525] + use DistinctSorted for final distinct step + fix performance tests --- src/Core/Settings.h | 1 - src/Interpreters/InterpreterSelectQuery.cpp | 3 +- .../InterpreterSelectWithUnionQuery.cpp | 3 +- src/Processors/QueryPlan/DistinctStep.cpp | 24 +++++-- src/Processors/QueryPlan/DistinctStep.h | 4 +- .../DistinctSortedChunkTransform.cpp | 72 +++++++------------ .../Transforms/DistinctSortedChunkTransform.h | 4 +- tests/performance/distinct_in_order.xml | 40 +++++------ ...ct_in_order_optimization_explain.reference | 4 +- ..._distinct_in_order_optimization_explain.sh | 2 +- 10 files changed, 68 insertions(+), 89 deletions(-) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index d8080fc427d..332b7364605 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -607,7 +607,6 @@ static constexpr UInt64 operator""_GiB(unsigned long long value) M(Bool, compatibility_ignore_auto_increment_in_create_table, false, "Ignore AUTO_INCREMENT keyword in column declaration if true, otherwise return error. It simplifies migration from MySQL", 0) \ M(Bool, multiple_joins_try_to_keep_original_names, false, "Do not add aliases to top level expression list on multiple joins rewrite", 0) \ M(Bool, optimize_distinct_in_order, true, "Enable DISTINCT optimization if some columns in DISTINCT form a prefix of sorting. For example, prefix of sorting key in merge tree or ORDER BY statement", 0) \ - M(UInt64, distinct_in_order_range_search_step, 0, "Setting for DISTINCT in order optimization. TBD", 0) \ // End of COMMON_SETTINGS // Please add settings related to formats into the FORMAT_FACTORY_SETTINGS and move obsolete settings to OBSOLETE_SETTINGS. diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index c7149cd30dc..28438a86e47 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -2578,8 +2578,7 @@ void InterpreterSelectQuery::executeDistinct(QueryPlan & query_plan, bool before limit_for_distinct, columns, pre_distinct, - settings.optimize_distinct_in_order, - settings.distinct_in_order_range_search_step); + settings.optimize_distinct_in_order); if (pre_distinct) distinct_step->setStepDescription("Preliminary DISTINCT"); diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 6a5e5658ccf..9f87a47fced 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -335,8 +335,7 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) 0, result_header.getNames(), false, - settings.optimize_distinct_in_order, - settings.distinct_in_order_range_search_step); + settings.optimize_distinct_in_order); query_plan.addStep(std::move(distinct_step)); } diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index c182d336b35..946af9ca4d6 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -59,8 +59,7 @@ DistinctStep::DistinctStep( UInt64 limit_hint_, const Names & columns_, bool pre_distinct_, - bool optimize_distinct_in_order_, - UInt64 distinct_in_order_range_search_step_) + bool optimize_distinct_in_order_) : ITransformingStep( input_stream_, input_stream_.header, @@ -68,7 +67,6 @@ DistinctStep::DistinctStep( , set_size_limits(set_size_limits_) , limit_hint(limit_hint_) , columns(columns_) - , distinct_in_order_range_search_step(distinct_in_order_range_search_step_) , pre_distinct(pre_distinct_) , optimize_distinct_in_order(optimize_distinct_in_order_) { @@ -96,9 +94,8 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil SortDescription distinct_sort_desc = getSortDescription(input_stream.sort_description, columns); if (!distinct_sort_desc.empty()) { - /// pre-distinct for sorted chunks or - /// final distinct for sorted stream (sorting inside and among chunks) - if (pre_distinct || input_stream.has_single_port) + /// pre-distinct for sorted chunks + if (pre_distinct) { pipeline.addSimpleTransform( [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr @@ -107,7 +104,20 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil return nullptr; return std::make_shared( - header, set_size_limits, limit_hint, distinct_sort_desc, columns, distinct_in_order_range_search_step); + header, set_size_limits, limit_hint, distinct_sort_desc, columns); + }); + return; + } + /// final distinct for sorted stream (sorting inside and among chunks) + if (input_stream.has_single_port) + { + pipeline.addSimpleTransform( + [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr + { + if (stream_type != QueryPipelineBuilder::StreamType::Main) + return nullptr; + + return std::make_shared(header, distinct_sort_desc, set_size_limits, limit_hint, columns); }); return; } diff --git a/src/Processors/QueryPlan/DistinctStep.h b/src/Processors/QueryPlan/DistinctStep.h index 1d678ac3144..dc734a58704 100644 --- a/src/Processors/QueryPlan/DistinctStep.h +++ b/src/Processors/QueryPlan/DistinctStep.h @@ -15,8 +15,7 @@ public: UInt64 limit_hint_, const Names & columns_, bool pre_distinct_, /// If is enabled, execute distinct for separate streams. Otherwise, merge streams. - bool optimize_distinct_in_order_, - UInt64 distinct_in_order_range_search_step); + bool optimize_distinct_in_order_); String getName() const override { return "Distinct"; } @@ -31,7 +30,6 @@ private: SizeLimits set_size_limits; UInt64 limit_hint; Names columns; - UInt64 distinct_in_order_range_search_step = 0; bool pre_distinct; bool optimize_distinct_in_order; }; diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp index 89fa675dbc7..064c827a8cc 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.cpp +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.cpp @@ -13,13 +13,11 @@ DistinctSortedChunkTransform::DistinctSortedChunkTransform( const SizeLimits & output_size_limits_, UInt64 limit_hint_, const SortDescription & sorted_columns_descr_, - const Names & source_columns, - size_t range_search_step_) + const Names & source_columns) : ISimpleTransform(header_, header_, true) , limit_hint(limit_hint_) , output_size_limits(output_size_limits_) , sorted_columns_descr(sorted_columns_descr_) - , range_search_step(range_search_step_) { /// calculate sorted columns positions sorted_columns_pos.reserve(sorted_columns_descr.size()); @@ -124,57 +122,35 @@ bool DistinctSortedChunkTransform::isCurrentKey(const size_t row_pos) const return true; } -size_t DistinctSortedChunkTransform::getRangeEnd(size_t range_begin, size_t range_end) const +size_t DistinctSortedChunkTransform::getRangeEnd(size_t begin, size_t end) const { - assert(range_begin < range_end); + assert(begin < end); - // probe latest row - if (isCurrentKey(range_end-1)) { - return range_end; - } + const size_t linear_probe_threadhold = 16; + size_t linear_probe_end = begin + linear_probe_threadhold; + if (linear_probe_end > end) + linear_probe_end = end; - auto find_range_end = [this](size_t begin, size_t end) -> size_t + for (size_t pos = begin; pos < linear_probe_end; ++pos) { - const size_t linear_probe_threadhold = 32; - size_t linear_probe_end = begin + linear_probe_threadhold; - if (linear_probe_end > end) - linear_probe_end = end; - - for(size_t pos=begin; pos < linear_probe_end; ++pos) - { - if (!isCurrentKey(pos)) - return pos; - } - - size_t low = linear_probe_end; - size_t high = end - 1; - while (low <= high) - { - size_t mid = low + (high - low) / 2; - if (isCurrentKey(mid)) - low = mid + 1; - else - { - high = mid - 1; - end = mid; - } - } - return end; - }; - - const size_t step = range_search_step; - if (!step) - return find_range_end(range_begin, range_end); - - size_t begin = range_begin; - while (begin + step <= range_end) - { - const size_t pos = find_range_end(begin, begin + step); - if (pos < begin + step) + if (!isCurrentKey(pos)) return pos; - begin += step; } - return find_range_end(begin, range_end); + + size_t low = linear_probe_end; + size_t high = end - 1; + while (low <= high) + { + size_t mid = low + (high - low) / 2; + if (isCurrentKey(mid)) + low = mid + 1; + else + { + high = mid - 1; + end = mid; + } + } + return end; } std::pair DistinctSortedChunkTransform::continueWithPrevRange(const size_t chunk_rows, IColumn::Filter & filter) diff --git a/src/Processors/Transforms/DistinctSortedChunkTransform.h b/src/Processors/Transforms/DistinctSortedChunkTransform.h index 983b976c49f..2e21c36f7dc 100644 --- a/src/Processors/Transforms/DistinctSortedChunkTransform.h +++ b/src/Processors/Transforms/DistinctSortedChunkTransform.h @@ -32,8 +32,7 @@ public: const SizeLimits & output_size_limits_, UInt64 limit_hint_, const SortDescription & sorted_columns_descr_, - const Names & source_columns_, - size_t range_search_step); + const Names & source_columns_); String getName() const override { return "DistinctSortedChunkTransform"; } @@ -68,7 +67,6 @@ private: ColumnRawPtrs other_columns; // used during processing MutableColumns current_key; - const size_t range_search_step = 0; }; } diff --git a/tests/performance/distinct_in_order.xml b/tests/performance/distinct_in_order.xml index ea76fedcc34..c4d09aa825b 100644 --- a/tests/performance/distinct_in_order.xml +++ b/tests/performance/distinct_in_order.xml @@ -1,33 +1,33 @@ - DROP TABLE IF EXISTS distinct_cardinality_high - CREATE TABLE distinct_cardinality_high (high UInt64, medium UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, medium, low) - INSERT INTO distinct_cardinality_high SELECT number % 10000, number % 1000, number % 100 from numbers(1000000) + CREATE TABLE distinct_cardinality_high (high UInt64, medium UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, medium) + INSERT INTO distinct_cardinality_high SELECT number % 10000, number % 1000, number % 100 FROM numbers_mt(1e8) - select distinct high from distinct_cardinality_high - select distinct high, low from distinct_cardinality_high - select distinct high, medium from distinct_cardinality_high - select distinct high, medium, low from distinct_cardinality_high + SELECT DISTINCT high FROM distinct_cardinality_high FORMAT Null + SELECT DISTINCT high, low FROM distinct_cardinality_high FORMAT Null + SELECT DISTINCT high, medium FROM distinct_cardinality_high FORMAT Null + SELECT DISTINCT high, medium, low FROM distinct_cardinality_high FORMAT Null - select distinct high, medium from distinct_cardinality_high order by medium - select distinct high, low from distinct_cardinality_high order by low - select distinct high, medium, low from distinct_cardinality_high order by high + SELECT DISTINCT high, medium FROM distinct_cardinality_high ORDER BY medium FORMAT Null + SELECT DISTINCT high, medium FROM distinct_cardinality_high ORDER BY high FORMAT Null + SELECT DISTINCT high, low FROM distinct_cardinality_high ORDER BY low FORMAT Null + SELECT DISTINCT high, medium, low FROM distinct_cardinality_high ORDER BY low FORMAT Null DROP TABLE IF EXISTS distinct_cardinality_high - DROP TABLE IF EXISTS distinct_cardinality_low - CREATE TABLE distinct_cardinality_low (low UInt64, medium UInt64, high UInt64) ENGINE MergeTree() ORDER BY (low, medium, high) - INSERT INTO distinct_cardinality_low SELECT number % 100, number % 1000, number % 10000 from numbers(1000000) + CREATE TABLE distinct_cardinality_low (low UInt64, medium UInt64, high UInt64) ENGINE MergeTree() ORDER BY (low, medium) + INSERT INTO distinct_cardinality_low SELECT number % 100, number % 1000, number % 10000 FROM numbers_mt(1e8) - select distinct low from distinct_cardinality_low - select distinct low, medium from distinct_cardinality_low - select distinct low, high from distinct_cardinality_low - select distinct low, medium, high from distinct_cardinality_low + SELECT DISTINCT low FROM distinct_cardinality_low FORMAT Null + SELECT DISTINCT low, medium FROM distinct_cardinality_low FORMAT Null + SELECT DISTINCT low, high FROM distinct_cardinality_low FORMAT Null + SELECT DISTINCT low, medium, high FROM distinct_cardinality_low FORMAT Null - select distinct low, medium from distinct_cardinality_low order by medium - select distinct low, high from distinct_cardinality_low order by high - select distinct low, medium, high from distinct_cardinality_low order by low + SELECT DISTINCT low, medium FROM distinct_cardinality_low ORDER BY medium FORMAT Null + SELECT DISTINCT low, medium FROM distinct_cardinality_low ORDER BY low FORMAT Null + SELECT DISTINCT low, high FROM distinct_cardinality_low ORDER BY high FORMAT Null + SELECT DISTINCT low, medium, high FROM distinct_cardinality_low ORDER BY high FORMAT Null DROP TABLE IF EXISTS distinct_cardinality_low diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference index d3951859b1b..2dac69edc41 100644 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.reference @@ -7,13 +7,13 @@ DistinctSortedChunkTransform -- distinct with primary key prefix -> pre-distinct optimization only DistinctSortedChunkTransform -- distinct with primary key prefix and order by on column in distinct -> pre-distinct and final distinct optimization -DistinctSortedChunkTransform +DistinctSortedTransform DistinctSortedChunkTransform -- distinct with primary key prefix and order by on column _not_ in distinct -> pre-distinct optimization only DistinctSortedChunkTransform -- distinct with non-primary key prefix -> no optimizations No optimizations -- distinct with non-primary key prefix and order by on column in distinct -> final distinct optimization only -DistinctSortedChunkTransform +DistinctSortedTransform -- distinct with non-primary key prefix and order by on column _not_ in distinct -> no optimizations No optimizations diff --git a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh index 33fb6f12110..21f50a147ac 100755 --- a/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh +++ b/tests/queries/0_stateless/02317_distinct_in_order_optimization_explain.sh @@ -8,7 +8,7 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) DISABLE_OPTIMIZATION="set optimize_distinct_in_order=0" ENABLE_OPTIMIZATION="set optimize_distinct_in_order=1" -GREP_OPTIMIZATIONS="grep 'DistinctSortedChunkTransform'" +GREP_OPTIMIZATIONS="grep 'DistinctSortedChunkTransform\|DistinctSortedTransform'" TRIM_LEADING_SPACES="sed -e 's/^[ \t]*//'" FIND_OPTIMIZATIONS="$GREP_OPTIMIZATIONS | $TRIM_LEADING_SPACES" From cbcd740dc19db2ba502af5422bd805188bd7eaaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mar=C3=ADn?= Date: Thu, 30 Jun 2022 15:10:09 +0200 Subject: [PATCH 442/525] Adapt some more nodes to avoid issues with pre-22.4 replicas --- src/Storages/StorageReplicatedMergeTree.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index fac11db2ab9..e44013f39ca 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -598,11 +598,19 @@ void StorageReplicatedMergeTree::createNewZooKeeperNodes() auto zookeeper = getZooKeeper(); std::vector futures; - /// We need to confirm /quorum exists here although it's called under createTableIfNotExists because in older CH releases (pre 22.4) - /// it was created here, so if metadata creation is done by an older replica the node might not exists when reaching this call - futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum", String(), zkutil::CreateMode::Persistent)); - futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum/parallel", String(), zkutil::CreateMode::Persistent)); + /// These 4 nodes used to be created in createNewZookeeperNodes() and they were moved to createTable() + /// This means that if the first replica creating the table metadata has an older version of CH (22.3 or previous) + /// there will be a time between its calls to `createTable` and `createNewZookeeperNodes` where the nodes won't exists + /// and that will cause issues in newer replicas + /// See https://github.com/ClickHouse/ClickHouse/issues/38600 for example + futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum", String(), zkutil::CreateMode::Persistent)); + futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum/last_part", String(), zkutil::CreateMode::Persistent)); + futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum/failed_parts", String(), zkutil::CreateMode::Persistent)); + futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/mutations", String(), zkutil::CreateMode::Persistent)); + + + futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum/parallel", String(), zkutil::CreateMode::Persistent)); /// Nodes for remote fs zero-copy replication const auto settings = getSettings(); if (settings->allow_remote_fs_zero_copy_replication) From e367d96964e2630057a2752fab0fbb9ffa4d398a Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 30 Jun 2022 10:10:12 +0200 Subject: [PATCH 443/525] Fix style. --- src/Access/IAccessStorage.cpp | 1 - src/Access/MultipleAccessStorage.cpp | 2 +- src/Backups/BackupCoordinationHelpers.cpp | 4 +-- src/Backups/BackupCoordinationLocal.cpp | 2 +- src/Backups/BackupEntriesCollector.cpp | 25 ++++++++++--------- src/Backups/BackupEntriesCollector.h | 2 +- src/Backups/DDLAdjustingForBackupVisitor.cpp | 4 +-- src/Backups/RestorerFromBackup.cpp | 2 +- src/Backups/RestorerFromBackup.h | 6 ++--- src/Databases/DDLRenamingVisitor.cpp | 1 - src/Databases/DatabaseReplicated.cpp | 4 +-- src/Interpreters/DatabaseCatalog.cpp | 20 +++++++-------- .../MergeTree/DataPartStorageOnDisk.cpp | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 1 - .../test_backup_restore_new/test.py | 10 +++++--- 15 files changed, 44 insertions(+), 42 deletions(-) diff --git a/src/Access/IAccessStorage.cpp b/src/Access/IAccessStorage.cpp index 230045c7749..fa9c78816c7 100644 --- a/src/Access/IAccessStorage.cpp +++ b/src/Access/IAccessStorage.cpp @@ -550,7 +550,6 @@ void IAccessStorage::restoreFromBackup(RestorerFromBackup &) } - UUID IAccessStorage::generateRandomID() { static Poco::UUIDGenerator generator; diff --git a/src/Access/MultipleAccessStorage.cpp b/src/Access/MultipleAccessStorage.cpp index 30c3865c1be..e7151cc7b4b 100644 --- a/src/Access/MultipleAccessStorage.cpp +++ b/src/Access/MultipleAccessStorage.cpp @@ -414,7 +414,7 @@ void MultipleAccessStorage::restoreFromBackup(RestorerFromBackup & restorer) } } - throwBackupNotAllowed(); + throwBackupNotAllowed(); } } diff --git a/src/Backups/BackupCoordinationHelpers.cpp b/src/Backups/BackupCoordinationHelpers.cpp index cca66f03aac..7f570ba9c85 100644 --- a/src/Backups/BackupCoordinationHelpers.cpp +++ b/src/Backups/BackupCoordinationHelpers.cpp @@ -284,7 +284,7 @@ Strings BackupCoordinationStatusSync::setImpl(const String & current_host, const if ((all_hosts.size() == 1) && (all_hosts.front() == current_host)) return {message}; - + /// Wait for other hosts. Strings ready_hosts_results; @@ -314,7 +314,7 @@ Strings BackupCoordinationStatusSync::setImpl(const String & current_host, const { host_with_error = host; error_message = zookeeper->get(zookeeper_path + "/" + zk_node); - return; + return; } auto it = unready_hosts.find(host); if ((it != unready_hosts.end()) && (status == new_status)) diff --git a/src/Backups/BackupCoordinationLocal.cpp b/src/Backups/BackupCoordinationLocal.cpp index 158988cf8b8..a7d5602ca30 100644 --- a/src/Backups/BackupCoordinationLocal.cpp +++ b/src/Backups/BackupCoordinationLocal.cpp @@ -74,7 +74,7 @@ Strings BackupCoordinationLocal::getReplicatedAccessPaths(const String & access_ void BackupCoordinationLocal::setReplicatedAccessHost(const String & access_zk_path, const String & host_id) { std::lock_guard lock{mutex}; - replicated_access_hosts[access_zk_path] = host_id; + replicated_access_hosts[access_zk_path] = host_id; } String BackupCoordinationLocal::getReplicatedAccessHost(const String & access_zk_path) const diff --git a/src/Backups/BackupEntriesCollector.cpp b/src/Backups/BackupEntriesCollector.cpp index e237140cf2b..d5ed9e0da2b 100644 --- a/src/Backups/BackupEntriesCollector.cpp +++ b/src/Backups/BackupEntriesCollector.cpp @@ -28,6 +28,7 @@ namespace ErrorCodes extern const int INCONSISTENT_METADATA_FOR_BACKUP; extern const int CANNOT_BACKUP_TABLE; extern const int TABLE_IS_DROPPED; + extern const int UNKNOWN_TABLE; extern const int LOGICAL_ERROR; } @@ -169,7 +170,7 @@ Strings BackupEntriesCollector::setStatus(const String & new_status, const Strin { auto now = std::chrono::steady_clock::now(); auto end_of_timeout = std::max(now, consistent_metadata_snapshot_start_time + consistent_metadata_snapshot_timeout); - + return backup_coordination->setStatusAndWaitFor( backup_settings.host_id, new_status, @@ -213,7 +214,7 @@ void BackupEntriesCollector::gatherMetadataAndCheckConsistency() { /// Gathered metadata and checked consistency, cool! But we have to check that other hosts cope with that too. auto all_hosts_results = setStatus(new_status, "consistent"); - + std::optional host_with_inconsistency; std::optional inconsistency_error_on_other_host; for (size_t i = 0; i != all_hosts.size(); ++i) @@ -397,7 +398,7 @@ void BackupEntriesCollector::gatherDatabaseMetadata( { throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Couldn't get a create query for database {}", database_name); } - + database_info.create_database_query = create_database_query; const auto & create = create_database_query->as(); @@ -420,7 +421,7 @@ void BackupEntriesCollector::gatherDatabaseMetadata( } database_info.except_table_names.emplace(*table_name); } - + if (all_tables) { database_info.all_tables = all_tables; @@ -437,13 +438,13 @@ void BackupEntriesCollector::gatherTablesMetadata() { const auto & database = database_info.database; bool is_temporary_database = (database_name == DatabaseCatalog::TEMPORARY_DATABASE); - + auto filter_by_table_name = [database_info = &database_info](const String & table_name) { /// We skip inner tables of materialized views. if (table_name.starts_with(".inner_id.")) return false; - + if (database_info->tables.contains(table_name)) return true; @@ -464,7 +465,7 @@ void BackupEntriesCollector::gatherTablesMetadata() if (is_temporary_database && !create.temporary) throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a non-temporary create query for {}", tableNameWithTypeToString(database_name, create.getTable(), false)); - + if (!is_temporary_database && (create.getDatabase() != database_name)) throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Got a create query with unexpected database name {} for {}", backQuoteIfNeed(create.getDatabase()), tableNameWithTypeToString(database_name, create.getTable(), false)); } @@ -579,7 +580,7 @@ bool BackupEntriesCollector::compareWithPrevious(std::optional & inco difference.reserve(databases_metadata.size()); std::set_difference(databases_metadata.begin(), databases_metadata.end(), previous_databases_metadata.begin(), previous_databases_metadata.end(), std::back_inserter(difference)); - + if (!difference.empty()) { inconsistency_error = Exception{ @@ -593,7 +594,7 @@ bool BackupEntriesCollector::compareWithPrevious(std::optional & inco difference.reserve(previous_databases_metadata.size()); std::set_difference(previous_databases_metadata.begin(), previous_databases_metadata.end(), databases_metadata.begin(), databases_metadata.end(), std::back_inserter(difference)); - + if (!difference.empty()) { inconsistency_error = Exception{ @@ -611,7 +612,7 @@ bool BackupEntriesCollector::compareWithPrevious(std::optional & inco difference.reserve(tables_metadata.size()); std::set_difference(tables_metadata.begin(), tables_metadata.end(), previous_tables_metadata.begin(), previous_tables_metadata.end(), std::back_inserter(difference)); - + if (!difference.empty()) { inconsistency_error = Exception{ @@ -625,7 +626,7 @@ bool BackupEntriesCollector::compareWithPrevious(std::optional & inco difference.reserve(previous_tables_metadata.size()); std::set_difference(previous_tables_metadata.begin(), previous_tables_metadata.end(), tables_metadata.begin(), tables_metadata.end(), std::back_inserter(difference)); - + if (!difference.empty()) { inconsistency_error = Exception{ @@ -646,7 +647,7 @@ void BackupEntriesCollector::makeBackupEntriesForDatabasesDefs() { if (!database_info.create_database_query) continue; /// We store CREATE DATABASE queries only if there was BACKUP DATABASE specified. - + LOG_TRACE(log, "Adding definition of database {}", backQuoteIfNeed(database_name)); ASTPtr new_create_query = database_info.create_database_query; diff --git a/src/Backups/BackupEntriesCollector.h b/src/Backups/BackupEntriesCollector.h index 0772fe84b26..9a653ee7e4d 100644 --- a/src/Backups/BackupEntriesCollector.h +++ b/src/Backups/BackupEntriesCollector.h @@ -63,7 +63,7 @@ private: bool tryGatherMetadataAndCompareWithPrevious(std::optional & inconsistency_error); void gatherDatabasesMetadata(); - + void gatherDatabaseMetadata( const String & database_name, bool throw_if_database_not_found, diff --git a/src/Backups/DDLAdjustingForBackupVisitor.cpp b/src/Backups/DDLAdjustingForBackupVisitor.cpp index 2dedc677df8..8223e08f127 100644 --- a/src/Backups/DDLAdjustingForBackupVisitor.cpp +++ b/src/Backups/DDLAdjustingForBackupVisitor.cpp @@ -17,7 +17,7 @@ namespace { /// Precondition: storage.engine && storage.engine->name.starts_with("System")) - /// If this is a definition of a system table we'll remove columns and comment because they're reduntant for backups. + /// If this is a definition of a system table we'll remove columns and comment because they're redundant for backups. auto & create = data.create_query->as(); create.reset(create.columns_list); create.reset(create.comment); @@ -105,7 +105,7 @@ void adjustCreateQueryForBackup(ASTPtr ast, const ContextPtr & global_context, s { if (replicated_table_shared_id) *replicated_table_shared_id = {}; - + DDLAdjustingForBackupVisitor::Data data{ast, global_context, replicated_table_shared_id}; DDLAdjustingForBackupVisitor::Visitor{data}.visit(ast); } diff --git a/src/Backups/RestorerFromBackup.cpp b/src/Backups/RestorerFromBackup.cpp index 6013eed7919..5b211bc50a8 100644 --- a/src/Backups/RestorerFromBackup.cpp +++ b/src/Backups/RestorerFromBackup.cpp @@ -638,7 +638,7 @@ void RestorerFromBackup::createTables() create_table_query = create_table_query->clone(); create_table_query->as().if_not_exists = true; } - + LOG_TRACE( log, "Creating {}: {}", diff --git a/src/Backups/RestorerFromBackup.h b/src/Backups/RestorerFromBackup.h index 3d814f67713..ae2f0c76832 100644 --- a/src/Backups/RestorerFromBackup.h +++ b/src/Backups/RestorerFromBackup.h @@ -78,14 +78,14 @@ private: std::vector root_paths_in_backup; void findRootPathsInBackup(); - + void findDatabasesAndTablesInBackup(); void findTableInBackup(const QualifiedTableName & table_name_in_backup, const std::optional & partitions); void findDatabaseInBackup(const String & database_name_in_backup, const std::set & except_table_names); void findEverythingInBackup(const std::set & except_database_names, const std::set & except_table_names); - + void checkAccessForObjectsFoundInBackup() const; - + void createDatabases(); void createTables(); diff --git a/src/Databases/DDLRenamingVisitor.cpp b/src/Databases/DDLRenamingVisitor.cpp index 8dbcc2a24bb..7ea5dbeda83 100644 --- a/src/Databases/DDLRenamingVisitor.cpp +++ b/src/Databases/DDLRenamingVisitor.cpp @@ -41,7 +41,6 @@ namespace create.setDatabase(new_table_name.database); } } - } else if (create.table) { diff --git a/src/Databases/DatabaseReplicated.cpp b/src/Databases/DatabaseReplicated.cpp index 5a0eec10abb..a7ad632efff 100644 --- a/src/Databases/DatabaseReplicated.cpp +++ b/src/Databases/DatabaseReplicated.cpp @@ -928,7 +928,7 @@ std::vector> DatabaseReplicated::getTablesForBackup(const FilterByNameFunction & filter, const ContextPtr &) const { /// Here we read metadata from ZooKeeper. We could do that by simple call of DatabaseAtomic::getTablesForBackup() however - /// reading from ZooKeeper is better because thus we won't be dependant on how fast the replication queue of this database is. + /// reading from ZooKeeper is better because thus we won't be dependent on how fast the replication queue of this database is. std::vector> res; auto zookeeper = getContext()->getZooKeeper(); auto escaped_table_names = zookeeper->getChildren(zookeeper_path + "/metadata"); @@ -940,7 +940,7 @@ DatabaseReplicated::getTablesForBackup(const FilterByNameFunction & filter, cons String zk_metadata; if (!zookeeper->tryGet(zookeeper_path + "/metadata/" + escaped_table_name, zk_metadata)) throw Exception(ErrorCodes::INCONSISTENT_METADATA_FOR_BACKUP, "Metadata for table {} was not found in ZooKeeper", table_name); - + ParserCreateQuery parser; auto create_table_query = parseQuery(parser, zk_metadata, 0, getContext()->getSettingsRef().max_parser_depth); diff --git a/src/Interpreters/DatabaseCatalog.cpp b/src/Interpreters/DatabaseCatalog.cpp index bd64b14624c..bae2aed2cd5 100644 --- a/src/Interpreters/DatabaseCatalog.cpp +++ b/src/Interpreters/DatabaseCatalog.cpp @@ -331,10 +331,10 @@ DatabaseAndTable DatabaseCatalog::getTableImpl( bool DatabaseCatalog::isPredefinedTable(const StorageID & table_id) const { - static const char * INFORMATION_SCHEMA_VIEWS[] = {"schemata", "tables", "views", "columns"}; - static const char * INFORMATION_SCHEMA_UPPERCASE_VIEWS[] = {"SCHEMATA", "TABLES", "VIEWS", "COLUMNS"}; + static const char * information_schema_views[] = {"schemata", "tables", "views", "columns"}; + static const char * information_schema_views_uppercase[] = {"SCHEMATA", "TABLES", "VIEWS", "COLUMNS"}; - auto checkDatabaseAndTableName = [&](const String & database_name, const String & table_name) + auto check_database_and_table_name = [&](const String & database_name, const String & table_name) { if (database_name == SYSTEM_DATABASE) { @@ -343,13 +343,13 @@ bool DatabaseCatalog::isPredefinedTable(const StorageID & table_id) const } if (database_name == INFORMATION_SCHEMA) { - return std::find(std::begin(INFORMATION_SCHEMA_VIEWS), std::end(INFORMATION_SCHEMA_VIEWS), table_name) - != std::end(INFORMATION_SCHEMA_VIEWS); + return std::find(std::begin(information_schema_views), std::end(information_schema_views), table_name) + != std::end(information_schema_views); } if (database_name == INFORMATION_SCHEMA_UPPERCASE) { - return std::find(std::begin(INFORMATION_SCHEMA_UPPERCASE_VIEWS), std::end(INFORMATION_SCHEMA_UPPERCASE_VIEWS), table_name) - != std::end(INFORMATION_SCHEMA_UPPERCASE_VIEWS); + return std::find(std::begin(information_schema_views_uppercase), std::end(information_schema_views_uppercase), table_name) + != std::end(information_schema_views_uppercase); } return false; }; @@ -362,13 +362,13 @@ bool DatabaseCatalog::isPredefinedTable(const StorageID & table_id) const return true; auto res_id = storage->getStorageID(); String database_name = res_id.getDatabaseName(); - if (database_name != SYSTEM_DATABASE) - return checkDatabaseAndTableName(database_name, res_id.getTableName()); + if (database_name != SYSTEM_DATABASE) /// If (database_name == SYSTEM_DATABASE) then we have already checked it (see isSystemStorage() above). + return check_database_and_table_name(database_name, res_id.getTableName()); } return false; } - return checkDatabaseAndTableName(table_id.getDatabaseName(), table_id.getTableName()); + return check_database_and_table_name(table_id.getDatabaseName(), table_id.getTableName()); } void DatabaseCatalog::assertDatabaseExists(const String & database_name) const diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 68a2a0cbd15..dc80b0aafb6 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -646,7 +646,7 @@ void DataPartStorageOnDisk::backup( String filepath_on_disk = part_path_on_disk / filepath; String filepath_in_backup = part_path_in_backup / filepath; String hardlink_filepath = temp_part_dir / filepath; - + disk->createHardLink(filepath_on_disk, hardlink_filepath); UInt128 file_hash{checksum.file_hash.first, checksum.file_hash.second}; backup_entries.emplace_back( diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index c856786ffb3..6a5b9c2d8e6 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -159,7 +159,6 @@ namespace ErrorCodes extern const int BAD_ARGUMENTS; extern const int CONCURRENT_ACCESS_NOT_SUPPORTED; extern const int CHECKSUM_DOESNT_MATCH; - extern const int INCONSISTENT_METADATA_FOR_BACKUP; } namespace ActionLocks diff --git a/tests/integration/test_backup_restore_new/test.py b/tests/integration/test_backup_restore_new/test.py index 7894daf5bad..a930ddac7df 100644 --- a/tests/integration/test_backup_restore_new/test.py +++ b/tests/integration/test_backup_restore_new/test.py @@ -795,7 +795,7 @@ def test_system_functions(): assert instance.query( "SELECT number, linear_equation(number, 2, 1) FROM numbers(3)" ) == TSV([[0, 1], [1, 3], [2, 5]]) - + assert instance.query("SELECT number, parity_str(number) FROM numbers(3)") == TSV( [[0, "even"], [1, "odd"], [2, "even"]] ) @@ -811,7 +811,9 @@ def test_backup_partition(): instance.query(f"RESTORE TABLE test.table FROM {backup_name}") - assert instance.query("SELECT * FROM test.table ORDER BY x") == TSV([[1, '1'], [4, '4'], [11, '11'], [14, '14'], [21, '21'], [24, '24']]) + assert instance.query("SELECT * FROM test.table ORDER BY x") == TSV( + [[1, "1"], [4, "4"], [11, "11"], [14, "14"], [21, "21"], [24, "24"]] + ) def test_restore_partition(): @@ -824,4 +826,6 @@ def test_restore_partition(): instance.query(f"RESTORE TABLE test.table PARTITIONS '2', '3' FROM {backup_name}") - assert instance.query("SELECT * FROM test.table ORDER BY x") == TSV([[2, '2'], [3, '3'], [12, '12'], [13, '13'], [22, '22'], [23, '23']]) + assert instance.query("SELECT * FROM test.table ORDER BY x") == TSV( + [[2, "2"], [3, "3"], [12, "12"], [13, "13"], [22, "22"], [23, "23"]] + ) From 4ba4e9b95177f3217d8a17ac8f8fcc6fd7d1910f Mon Sep 17 00:00:00 2001 From: Dan Roscigno Date: Thu, 30 Jun 2022 09:53:30 -0400 Subject: [PATCH 444/525] Remove 404ing original article --- docs/en/engines/table-engines/special/null.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/en/engines/table-engines/special/null.md b/docs/en/engines/table-engines/special/null.md index 5e775227dab..ca02d8e300b 100644 --- a/docs/en/engines/table-engines/special/null.md +++ b/docs/en/engines/table-engines/special/null.md @@ -10,6 +10,3 @@ When writing to a `Null` table, data is ignored. When reading from a `Null` tabl :::note If you are wondering why this is useful, note that you can create a materialized view on a `Null` table. So the data written to the table will end up affecting the view, but original raw data will still be discarded. ::: - - -[Original article](https://clickhouse.com/docs/en/operations/table_engines/special/null/) From d2cbdc7c5340f1515972875b2f4ad0da53de4938 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 30 Jun 2022 17:23:53 +0300 Subject: [PATCH 445/525] Update ReplicatedMergeTreeQueue.cpp --- src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp index add1ba875aa..f6c80baba05 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeQueue.cpp @@ -1103,7 +1103,9 @@ bool ReplicatedMergeTreeQueue::isCoveredByFuturePartsImpl(const LogEntry & entry continue; /// Parts are not disjoint, so new_part_name either contains or covers future_part. - chassert(future_part.contains(result_part) || result_part.contains(future_part)); + if (!(future_part.contains(result_part) || result_part.contains(future_part))) + throw Exception(ErrorCodes::LOGICAL_ERROR, "Got unexpected non-disjoint parts: {} and {}", future_part_elem.first, new_part_name); + /// We cannot execute `entry` (or upgrade its actual_part_name to `new_part_name`) /// while any covered or covering parts are processed. /// But we also cannot simply return true and postpone entry processing, because it may lead to kind of livelock. From e76ebdfb475401fd057f365f9e34cbb6df03da0a Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Wed, 29 Jun 2022 12:33:20 +0200 Subject: [PATCH 446/525] Change clickhouse-{client,server} packages architecture --- docs/_includes/install/tgz.sh | 30 +++++-- docs/en/development/continuous-integration.md | 6 +- docs/en/getting-started/install.md | 30 +++++-- docs/ru/getting-started/install.md | 30 +++++-- docs/zh/development/continuous-integration.md | 7 +- docs/zh/getting-started/install.md | 30 +++++-- packages/clickhouse-client.yaml | 2 +- packages/clickhouse-server.yaml | 2 +- tests/ci/download_previous_release.py | 86 ++++++++----------- 9 files changed, 131 insertions(+), 92 deletions(-) diff --git a/docs/_includes/install/tgz.sh b/docs/_includes/install/tgz.sh index 4ba5890b32b..d6d7cd8bc36 100644 --- a/docs/_includes/install/tgz.sh +++ b/docs/_includes/install/tgz.sh @@ -1,20 +1,34 @@ LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \ grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1) export LATEST_VERSION -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz" -tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" +case $(uname -m) in + x86_64) ARCH=amd64 ;; + aarch64) ARCH=arm64 ;; + *) echo "Unknown architecture $(uname -m)"; exit 1 ;; +esac + +for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client +do + curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \ + || curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz" +done + +exit 0 + +tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh" sudo /etc/init.d/clickhouse-server start -tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh" diff --git a/docs/en/development/continuous-integration.md b/docs/en/development/continuous-integration.md index f8fcead3ca2..7b2da4416d6 100644 --- a/docs/en/development/continuous-integration.md +++ b/docs/en/development/continuous-integration.md @@ -123,12 +123,10 @@ Builds ClickHouse in various configurations for use in further steps. You have t - **Build log**: link to the building and files copying log, useful when build failed. - **Build time**. - **Artifacts**: build result files (with `XXX` being the server version e.g. `20.8.1.4344`). - - `clickhouse-client_XXX_all.deb` + - `clickhouse-client_XXX_amd64.deb` - `clickhouse-common-static-dbg_XXX[+asan, +msan, +ubsan, +tsan]_amd64.deb` - `clickhouse-common-staticXXX_amd64.deb` - - `clickhouse-server_XXX_all.deb` - - `clickhouse_XXX_amd64.buildinfo` - - `clickhouse_XXX_amd64.changes` + - `clickhouse-server_XXX_amd64.deb` - `clickhouse`: Main built binary. - `clickhouse-odbc-bridge` - `unit_tests_dbms`: GoogleTest binary with ClickHouse unit tests. diff --git a/docs/en/getting-started/install.md b/docs/en/getting-started/install.md index 8505b040fa3..a5e6495d8d8 100644 --- a/docs/en/getting-started/install.md +++ b/docs/en/getting-started/install.md @@ -127,22 +127,36 @@ After that downloaded archives should be unpacked and installed with installatio LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \ grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1) export LATEST_VERSION -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-$LATEST_VERSION-amd64.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION-amd64.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-server-$LATEST_VERSION-amd64.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-client-$LATEST_VERSION-amd64.tgz" -tar -xzvf "clickhouse-common-static-$LATEST_VERSION-amd64.tgz" +case $(uname -m) in + x86_64) ARCH=amd64 ;; + aarch64) ARCH=arm64 ;; + *) echo "Unknown architecture $(uname -m)"; exit 1 ;; +esac + +for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client +do + curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \ + || curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz" +done + +exit 0 + +tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-amd64.tgz" +tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-server-$LATEST_VERSION-amd64.tgz" +tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh" sudo /etc/init.d/clickhouse-server start -tar -xzvf "clickhouse-client-$LATEST_VERSION-amd64.tgz" +tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh" ``` diff --git a/docs/ru/getting-started/install.md b/docs/ru/getting-started/install.md index 09e91530473..9f3eabc73ae 100644 --- a/docs/ru/getting-started/install.md +++ b/docs/ru/getting-started/install.md @@ -124,22 +124,36 @@ sudo yum install clickhouse-server clickhouse-client LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \ grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1) export LATEST_VERSION -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz" -tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" +case $(uname -m) in + x86_64) ARCH=amd64 ;; + aarch64) ARCH=arm64 ;; + *) echo "Unknown architecture $(uname -m)"; exit 1 ;; +esac + +for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client +do + curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \ + || curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz" +done + +exit 0 + +tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh" sudo /etc/init.d/clickhouse-server start -tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh" ``` diff --git a/docs/zh/development/continuous-integration.md b/docs/zh/development/continuous-integration.md index 5bebb3aec2a..836c4a35433 100644 --- a/docs/zh/development/continuous-integration.md +++ b/docs/zh/development/continuous-integration.md @@ -86,13 +86,10 @@ git push - **Build log**: 链接到构建和文件复制日志, 当构建失败时很有用. - **Build time**. - **Artifacts**: 构建结果文件 (`XXX`是服务器版本, 比如`20.8.1.4344`). - - `clickhouse-client_XXX_all.deb` + - `clickhouse-client_XXX_amd64.deb` -` clickhouse-common-static-dbg_XXX[+asan, +msan, +ubsan, +tsan]_amd64.deb` - `clickhouse-common-staticXXX_amd64.deb` - - `clickhouse-server_XXX_all.deb` - - `clickhouse-test_XXX_all.deb` - - `clickhouse_XXX_amd64.buildinfo` - - `clickhouse_XXX_amd64.changes` + - `clickhouse-server_XXX_amd64.deb` - `clickhouse`: Main built binary. - `clickhouse-odbc-bridge` - `unit_tests_dbms`: 带有 ClickHouse 单元测试的 GoogleTest 二进制文件. diff --git a/docs/zh/getting-started/install.md b/docs/zh/getting-started/install.md index a8b803547a8..6a0b47607f5 100644 --- a/docs/zh/getting-started/install.md +++ b/docs/zh/getting-started/install.md @@ -121,22 +121,36 @@ sudo yum install clickhouse-server clickhouse-client LATEST_VERSION=$(curl -s https://packages.clickhouse.com/tgz/stable/ | \ grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1) export LATEST_VERSION -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz" -curl -O "https://packages.clickhouse.com/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz" -tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" +case $(uname -m) in + x86_64) ARCH=amd64 ;; + aarch64) ARCH=arm64 ;; + *) echo "Unknown architecture $(uname -m)"; exit 1 ;; +esac + +for PKG in clickhouse-common-static clickhouse-common-static-dbg clickhouse-server clickhouse-client +do + curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION-${ARCH}.tgz" \ + || curl -fO "https://packages.clickhouse.com/tgz/stable/$PKG-$LATEST_VERSION.tgz" +done + +exit 0 + +tar -xzvf "clickhouse-common-static-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-common-static-dbg-$LATEST_VERSION.tgz" sudo "clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh" -tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-server-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-server-$LATEST_VERSION.tgz" sudo "clickhouse-server-$LATEST_VERSION/install/doinst.sh" sudo /etc/init.d/clickhouse-server start -tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" +tar -xzvf "clickhouse-client-$LATEST_VERSION-${ARCH}.tgz" \ + || tar -xzvf "clickhouse-client-$LATEST_VERSION.tgz" sudo "clickhouse-client-$LATEST_VERSION/install/doinst.sh" ``` diff --git a/packages/clickhouse-client.yaml b/packages/clickhouse-client.yaml index 5e53090b581..642d66f5475 100644 --- a/packages/clickhouse-client.yaml +++ b/packages/clickhouse-client.yaml @@ -1,7 +1,7 @@ # package sources should be placed in ${PWD}/root # nfpm should run from the same directory with a config name: "clickhouse-client" -arch: "all" +arch: "${DEB_ARCH}" # amd64, arm64 platform: "linux" version: "${CLICKHOUSE_VERSION_STRING}" vendor: "ClickHouse Inc." diff --git a/packages/clickhouse-server.yaml b/packages/clickhouse-server.yaml index ed56eb27e54..28995689754 100644 --- a/packages/clickhouse-server.yaml +++ b/packages/clickhouse-server.yaml @@ -1,7 +1,7 @@ # package sources should be placed in ${PWD}/root # nfpm should run from the same directory with a config name: "clickhouse-server" -arch: "all" +arch: "${DEB_ARCH}" # amd64, arm64 platform: "linux" version: "${CLICKHOUSE_VERSION_STRING}" vendor: "ClickHouse Inc." diff --git a/tests/ci/download_previous_release.py b/tests/ci/download_previous_release.py index fa03d164f23..86beed35b5a 100755 --- a/tests/ci/download_previous_release.py +++ b/tests/ci/download_previous_release.py @@ -4,25 +4,24 @@ import re import os import logging -import requests +import requests # type: ignore -from requests.adapters import HTTPAdapter -from urllib3.util.retry import Retry +from requests.adapters import HTTPAdapter # type: ignore +from urllib3.util.retry import Retry # type: ignore CLICKHOUSE_TAGS_URL = "https://api.github.com/repos/ClickHouse/ClickHouse/tags" -CLICKHOUSE_COMMON_STATIC_DOWNLOAD_URL = "https://github.com/ClickHouse/ClickHouse/releases/download/v{version}-{type}/clickhouse-common-static_{version}_amd64.deb" -CLICKHOUSE_COMMON_STATIC_DBG_DOWNLOAD_URL = "https://github.com/ClickHouse/ClickHouse/releases/download/v{version}-{type}/clickhouse-common-static-dbg_{version}_amd64.deb" -CLICKHOUSE_SERVER_DOWNLOAD_URL = "https://github.com/ClickHouse/ClickHouse/releases/download/v{version}-{type}/clickhouse-server_{version}_all.deb" -CLICKHOUSE_CLIENT_DOWNLOAD_URL = "https://github.com/ClickHouse/ClickHouse/releases/download/v{version}-{type}/clickhouse-client_{version}_all.deb" - - +DOWNLOAD_PREFIX = ( + "https://github.com/ClickHouse/ClickHouse/releases/download/v{version}-{type}/" +) CLICKHOUSE_COMMON_STATIC_PACKET_NAME = "clickhouse-common-static_{version}_amd64.deb" CLICKHOUSE_COMMON_STATIC_DBG_PACKET_NAME = ( "clickhouse-common-static-dbg_{version}_amd64.deb" ) -CLICKHOUSE_SERVER_PACKET_NAME = "clickhouse-server_{version}_all.deb" -CLICKHOUSE_CLIENT_PACKET_NAME = "clickhouse-client_{version}_all.deb" +CLICKHOUSE_SERVER_PACKET_NAME = "clickhouse-server_{version}_amd64.deb" +CLICKHOUSE_SERVER_PACKET_FALLBACK = "clickhouse-server_{version}_all.deb" +CLICKHOUSE_CLIENT_PACKET_NAME = "clickhouse-client_{version}_amd64.deb" +CLICKHOUSE_CLIENT_PACKET_FALLBACK = "clickhouse-client_{version}_all.deb" PACKETS_DIR = "previous_release_package_folder/" VERSION_PATTERN = r"((?:\d+\.)?(?:\d+\.)?(?:\d+\.)?\d+-[a-zA-Z]*)" @@ -102,9 +101,10 @@ def download_packet(url, out_path, retries=10, backoff_factor=0.3): session.mount("http://", adapter) session.mount("https://", adapter) response = session.get(url) - print(url) - if response.ok: - open(out_path, "wb").write(response.content) + response.raise_for_status() + print(f"Download {url} to {out_path}") + with open(out_path, "wb") as fd: + fd.write(response.content) def download_packets(release, dest_path=PACKETS_DIR): @@ -113,43 +113,31 @@ def download_packets(release, dest_path=PACKETS_DIR): logging.info("Will download %s", release) - download_packet( - CLICKHOUSE_COMMON_STATIC_DOWNLOAD_URL.format( - version=release.version, type=release.type - ), - out_path=os.path.join( - dest_path, - CLICKHOUSE_COMMON_STATIC_PACKET_NAME.format(version=release.version), - ), - ) + def get_dest_path(pkg_name): + return os.path.join(dest_path, pkg_name) - download_packet( - CLICKHOUSE_COMMON_STATIC_DBG_DOWNLOAD_URL.format( - version=release.version, type=release.type - ), - out_path=os.path.join( - dest_path, - CLICKHOUSE_COMMON_STATIC_DBG_PACKET_NAME.format(version=release.version), - ), - ) + for pkg in ( + CLICKHOUSE_COMMON_STATIC_PACKET_NAME, + CLICKHOUSE_COMMON_STATIC_DBG_PACKET_NAME, + ): + url = (DOWNLOAD_PREFIX + pkg).format(version=release.version, type=release.type) + pkg_name = get_dest_path(pkg.format(version=release.version)) + download_packet(url, pkg_name) - download_packet( - CLICKHOUSE_SERVER_DOWNLOAD_URL.format( - version=release.version, type=release.type - ), - out_path=os.path.join( - dest_path, CLICKHOUSE_SERVER_PACKET_NAME.format(version=release.version) - ), - ) - - download_packet( - CLICKHOUSE_CLIENT_DOWNLOAD_URL.format( - version=release.version, type=release.type - ), - out_path=os.path.join( - dest_path, CLICKHOUSE_CLIENT_PACKET_NAME.format(version=release.version) - ), - ) + for pkg, fallback in ( + (CLICKHOUSE_SERVER_PACKET_NAME, CLICKHOUSE_SERVER_PACKET_FALLBACK), + (CLICKHOUSE_CLIENT_PACKET_NAME, CLICKHOUSE_CLIENT_PACKET_FALLBACK), + ): + url = (DOWNLOAD_PREFIX + pkg).format(version=release.version, type=release.type) + pkg_name = get_dest_path(pkg.format(version=release.version)) + try: + download_packet(url, pkg_name) + except Exception: + url = (DOWNLOAD_PREFIX + fallback).format( + version=release.version, type=release.type + ) + pkg_name = get_dest_path(fallback.format(version=release.version)) + download_packet(url, pkg_name) def download_previous_release(dest_path): From 6925bd6a03c3f8822681c1aa8c4651cd3bca5eff Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 30 Jun 2022 11:58:24 +0200 Subject: [PATCH 447/525] Fix hardcoded retries for get_with_retries --- tests/ci/build_download_helper.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/ci/build_download_helper.py b/tests/ci/build_download_helper.py index 67e1c6ee85d..f5eb72dddee 100644 --- a/tests/ci/build_download_helper.py +++ b/tests/ci/build_download_helper.py @@ -20,15 +20,17 @@ def get_with_retries( sleep: int = 3, **kwargs, ) -> requests.Response: - logging.info("Getting URL with %i and sleep %i in between: %s", retries, sleep, url) + logging.info( + "Getting URL with %i tries and sleep %i in between: %s", retries, sleep, url + ) exc = None # type: Optional[Exception] - for i in range(DOWNLOAD_RETRIES_COUNT): + for i in range(retries): try: response = requests.get(url, **kwargs) response.raise_for_status() break except Exception as e: - if i + 1 < DOWNLOAD_RETRIES_COUNT: + if i + 1 < retries: logging.info("Exception '%s' while getting, retry %i", e, i + 1) time.sleep(sleep) From 738769d1f7ef93a905a2b52e4adcc903a3c82178 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 30 Jun 2022 15:41:50 +0200 Subject: [PATCH 448/525] Download arm64 packages and push to artifactory --- tests/ci/push_to_artifactory.py | 139 +++++++++++++++++++++----------- 1 file changed, 91 insertions(+), 48 deletions(-) diff --git a/tests/ci/push_to_artifactory.py b/tests/ci/push_to_artifactory.py index be977bdd907..98de315ddae 100755 --- a/tests/ci/push_to_artifactory.py +++ b/tests/ci/push_to_artifactory.py @@ -4,11 +4,12 @@ import argparse import logging import os import re -from typing import List, Tuple +from collections import namedtuple +from typing import Dict, List, Tuple from artifactory import ArtifactorySaaSPath # type: ignore from build_download_helper import dowload_build_with_progress -from env_helper import RUNNER_TEMP +from env_helper import RUNNER_TEMP, S3_BUILDS_BUCKET from git_helper import TAG_REGEXP, commit, removeprefix, removesuffix @@ -25,88 +26,144 @@ TEMP_PATH = os.path.join(RUNNER_TEMP, "push_to_artifactory") JFROG_API_KEY = getenv("JFROG_API_KEY", "") JFROG_TOKEN = getenv("JFROG_TOKEN", "") +CheckDesc = namedtuple("CheckDesc", ("check_name", "deb_arch", "rpm_arch")) + class Packages: - rpm_arch = dict(all="noarch", amd64="x86_64") + checks = ( + CheckDesc("package_release", "amd64", "x86_64"), + CheckDesc("package_aarch64", "arm64", "aarch64"), + ) packages = ( - ("clickhouse-client", "all"), - ("clickhouse-common-static", "amd64"), - ("clickhouse-common-static-dbg", "amd64"), - ("clickhouse-server", "all"), + "clickhouse-client", + "clickhouse-common-static", + "clickhouse-common-static-dbg", + "clickhouse-server", ) def __init__(self, version: str): - self.deb = tuple( - "_".join((name, version, arch + ".deb")) for name, arch in self.packages - ) + # Dicts of name: s3_path_suffix + self.deb = {} # type: Dict[str, str] + self.rpm = {} # type: Dict[str, str] + self.tgz = {} # type: Dict[str, str] + for check in self.checks: + for name in self.packages: + deb = f"{name}_{version}_{check.deb_arch}.deb" + self.deb[deb] = f"{check.check_name}/{deb}" - self.rpm = tuple( - "-".join((name, version + "." + self.rpm_arch[arch] + ".rpm")) - for name, arch in self.packages - ) + rpm = f"{name}-{version}.{check.rpm_arch}.rpm" + self.rpm[rpm] = f"{check.check_name}/{rpm}" - self.tgz = tuple(f"{name}-{version}-amd64.tgz" for name, _ in self.packages) + tgz = f"{name}-{version}-{check.deb_arch}.tgz" + self.tgz[tgz] = f"{check.check_name}/{tgz}" def arch(self, deb_pkg: str) -> str: if deb_pkg not in self.deb: raise ValueError(f"{deb_pkg} not in {self.deb}") return removesuffix(deb_pkg, ".deb").split("_")[-1] + def replace_with_fallback(self, name: str): + if name.endswith(".deb"): + suffix = self.deb.pop(name) + self.deb[self.fallback_to_all(name)] = self.fallback_to_all(suffix) + elif name.endswith(".rpm"): + suffix = self.rpm.pop(name) + self.rpm[self.fallback_to_all(name)] = self.fallback_to_all(suffix) + elif name.endswith(".tgz"): + suffix = self.tgz.pop(name) + self.tgz[self.fallback_to_all(name)] = self.fallback_to_all(suffix) + else: + raise KeyError(f"unknown package type for {name}") + @staticmethod def path(package_file: str) -> str: return os.path.join(TEMP_PATH, package_file) + @staticmethod + def fallback_to_all(url_or_name: str): + """Until July 2022 we had clickhouse-server and clickhouse-client with + arch 'all'""" + # deb + if url_or_name.endswith("amd64.deb") or url_or_name.endswith("arm64.deb"): + return f"{url_or_name[:-9]}all.deb" + # rpm + if url_or_name.endswith("x86_64.rpm") or url_or_name.endswith("aarch64.rpm"): + new = removesuffix(removesuffix(url_or_name, "x86_64.rpm"), "aarch64.rpm") + return f"{new}noarch.rpm" + # tgz + if url_or_name.endswith("-amd64.tgz") or url_or_name.endswith("-arm64.tgz"): + return f"{url_or_name[:-10]}.tgz" + return url_or_name + class S3: template = ( "https://s3.amazonaws.com/" # "clickhouse-builds/" - "{bucket_name}/" + f"{S3_BUILDS_BUCKET}/" # "33333/" or "21.11/" from --release, if pull request is omitted "{pr}/" # "2bef313f75e4cacc6ea2ef2133e8849ecf0385ec/" "{commit}/" - # "package_release/" - "{check_name}/" - # "clickhouse-common-static_21.11.5.0_amd64.deb" - "{package}" + # "package_release/clickhouse-common-static_21.11.5.0_amd64.deb" + "{s3_path_suffix}" ) def __init__( self, - bucket_name: str, pr: int, commit: str, - check_name: str, version: str, force_download: bool, ): self._common = dict( - bucket_name=bucket_name, pr=pr, commit=commit, - check_name=check_name, ) self.force_download = force_download self.packages = Packages(version) - def download_package(self, package_file: str): - if not self.force_download and os.path.exists(Packages.path(package_file)): + def download_package(self, package_file: str, s3_path_suffix: str): + path = Packages.path(package_file) + fallback_path = Packages.fallback_to_all(path) + if not self.force_download and ( + os.path.exists(path) or os.path.exists(fallback_path) + ): + if os.path.exists(fallback_path): + self.packages.replace_with_fallback(package_file) + return - url = self.template.format_map({**self._common, "package": package_file}) - dowload_build_with_progress(url, Packages.path(package_file)) + url = self.template.format_map( + {**self._common, "s3_path_suffix": s3_path_suffix} + ) + try: + dowload_build_with_progress(url, path) + except Exception as e: + if "Cannot download dataset from" in e.args[0]: + new_url = Packages.fallback_to_all(url) + logging.warning( + "Fallback downloading %s for old release", fallback_path + ) + dowload_build_with_progress(new_url, fallback_path) + self.packages.replace_with_fallback(package_file) def download_deb(self): - for package_file in self.packages.deb: - self.download_package(package_file) + # Copy to have a way to pop/add fallback packages + packages = self.packages.deb.copy() + for package_file, s3_path_suffix in packages.items(): + self.download_package(package_file, s3_path_suffix) def download_rpm(self): - for package_file in self.packages.rpm: - self.download_package(package_file) + # Copy to have a way to pop/add fallback packages + packages = self.packages.rpm.copy() + for package_file, s3_path_suffix in packages.items(): + self.download_package(package_file, s3_path_suffix) def download_tgz(self): - for package_file in self.packages.tgz: - self.download_package(package_file) + # Copy to have a way to pop/add fallback packages + packages = self.packages.tgz.copy() + for package_file, s3_path_suffix in packages.items(): + self.download_package(package_file, s3_path_suffix) class Release: @@ -223,17 +280,6 @@ def parse_args() -> argparse.Namespace: parser.add_argument( "--commit", required=True, type=commit, help="commit hash for S3 bucket" ) - parser.add_argument( - "--bucket-name", - default="clickhouse-builds", - help="AWS S3 bucket name", - ) - parser.add_argument( - "--check-name", - default="package_release", - help="check name, a part of bucket path, " - "will be converted to lower case with spaces->underscore", - ) parser.add_argument( "--all", action="store_true", help="implies all deb, rpm and tgz" ) @@ -276,7 +322,6 @@ def parse_args() -> argparse.Namespace: args.deb = args.rpm = args.tgz = True if not (args.deb or args.rpm or args.tgz): parser.error("at least one of --deb, --rpm or --tgz should be specified") - args.check_name = args.check_name.lower().replace(" ", "_") if args.pull_request == 0: args.pull_request = ".".join(args.release.version_parts[:2]) return args @@ -305,10 +350,8 @@ def main(): args = parse_args() os.makedirs(TEMP_PATH, exist_ok=True) s3 = S3( - args.bucket_name, args.pull_request, args.commit, - args.check_name, args.release.version, args.force_download, ) From 95c3eff4c78c467dbb7c0b2eb2203b64b4f2261d Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Thu, 30 Jun 2022 11:17:38 -0400 Subject: [PATCH 449/525] remove 404ing original article URL --- docs/en/engines/database-engines/postgresql.md | 1 - docs/en/engines/table-engines/log-family/index.md | 1 - docs/en/engines/table-engines/special/file.md | 1 - docs/en/engines/table-engines/special/join.md | 1 - docs/en/engines/table-engines/special/merge.md | 1 - docs/en/engines/table-engines/special/set.md | 1 - docs/en/engines/table-engines/special/url.md | 1 - docs/en/operations/external-authenticators/index.md | 1 - docs/en/operations/system-tables/distributed_ddl_queue.md | 1 - docs/en/operations/system-tables/distribution_queue.md | 1 - docs/en/operations/system-tables/opentelemetry_span_log.md | 1 - docs/en/operations/system-tables/parts_columns.md | 1 - docs/en/operations/system-tables/replication_queue.md | 1 - .../en/sql-reference/aggregate-functions/reference/meanztest.md | 2 -- .../sql-reference/aggregate-functions/reference/welchttest.md | 1 - docs/en/sql-reference/data-types/domains/index.md | 1 - docs/en/sql-reference/data-types/geo.md | 1 - docs/en/sql-reference/data-types/map.md | 1 - docs/en/sql-reference/data-types/simpleaggregatefunction.md | 1 - docs/en/sql-reference/functions/encryption-functions.md | 1 - docs/en/sql-reference/table-functions/mysql.md | 1 - 21 files changed, 22 deletions(-) diff --git a/docs/en/engines/database-engines/postgresql.md b/docs/en/engines/database-engines/postgresql.md index 07181cc23e8..969a326b701 100644 --- a/docs/en/engines/database-engines/postgresql.md +++ b/docs/en/engines/database-engines/postgresql.md @@ -136,4 +136,3 @@ DESCRIBE TABLE test_database.test_table; └────────┴───────────────────┘ ``` -[Original article](https://clickhouse.com/docs/en/database-engines/postgresql/) diff --git a/docs/en/engines/table-engines/log-family/index.md b/docs/en/engines/table-engines/log-family/index.md index 8e772341733..4ea2294554a 100644 --- a/docs/en/engines/table-engines/log-family/index.md +++ b/docs/en/engines/table-engines/log-family/index.md @@ -43,4 +43,3 @@ The `TinyLog` engine is the simplest in the family and provides the poorest func The `Log` and `StripeLog` engines support parallel data reading. When reading data, ClickHouse uses multiple threads. Each thread processes a separate data block. The `Log` engine uses a separate file for each column of the table. `StripeLog` stores all the data in one file. As a result, the `StripeLog` engine uses fewer file descriptors, but the `Log` engine provides higher efficiency when reading data. -[Original article](https://clickhouse.com/docs/en/operations/table_engines/log_family/) diff --git a/docs/en/engines/table-engines/special/file.md b/docs/en/engines/table-engines/special/file.md index 5f27bc73e1d..7a53670bebd 100644 --- a/docs/en/engines/table-engines/special/file.md +++ b/docs/en/engines/table-engines/special/file.md @@ -86,4 +86,3 @@ $ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64 - Indices - Replication -[Original article](https://clickhouse.com/docs/en/operations/table_engines/special/file/) diff --git a/docs/en/engines/table-engines/special/join.md b/docs/en/engines/table-engines/special/join.md index c95ebe19c31..4e628b8b9b0 100644 --- a/docs/en/engines/table-engines/special/join.md +++ b/docs/en/engines/table-engines/special/join.md @@ -151,4 +151,3 @@ ALTER TABLE id_val_join DELETE WHERE id = 3; └────┴─────┘ ``` -[Original article](https://clickhouse.com/docs/en/operations/table_engines/special/join/) diff --git a/docs/en/engines/table-engines/special/merge.md b/docs/en/engines/table-engines/special/merge.md index ab15ad8dc76..d32547a300c 100644 --- a/docs/en/engines/table-engines/special/merge.md +++ b/docs/en/engines/table-engines/special/merge.md @@ -86,4 +86,3 @@ SELECT * FROM WatchLog; - [Virtual columns](../../../engines/table-engines/special/index.md#table_engines-virtual_columns) - [merge](../../../sql-reference/table-functions/merge.md) table function -[Original article](https://clickhouse.com/docs/en/operations/table_engines/special/merge/) diff --git a/docs/en/engines/table-engines/special/set.md b/docs/en/engines/table-engines/special/set.md index 46e31af7ff1..f7114f04cea 100644 --- a/docs/en/engines/table-engines/special/set.md +++ b/docs/en/engines/table-engines/special/set.md @@ -20,4 +20,3 @@ When creating a table, the following settings are applied: - [persistent](../../../operations/settings/settings.md#persistent) -[Original article](https://clickhouse.com/docs/en/operations/table_engines/special/set/) diff --git a/docs/en/engines/table-engines/special/url.md b/docs/en/engines/table-engines/special/url.md index 19246b82219..82617e9425d 100644 --- a/docs/en/engines/table-engines/special/url.md +++ b/docs/en/engines/table-engines/special/url.md @@ -89,4 +89,3 @@ SELECT * FROM url_engine_table - Indexes. - Replication. -[Original article](https://clickhouse.com/docs/en/operations/table_engines/special/url/) diff --git a/docs/en/operations/external-authenticators/index.md b/docs/en/operations/external-authenticators/index.md index af2ba713ec1..d358267c4f0 100644 --- a/docs/en/operations/external-authenticators/index.md +++ b/docs/en/operations/external-authenticators/index.md @@ -13,4 +13,3 @@ The following external authenticators and directories are supported: - Kerberos [Authenticator](./kerberos.md#external-authenticators-kerberos) - [SSL X.509 authentication](./ssl-x509.md#ssl-external-authentication) -[Original article](https://clickhouse.com/docs/en/operations/external-authenticators/index/) diff --git a/docs/en/operations/system-tables/distributed_ddl_queue.md b/docs/en/operations/system-tables/distributed_ddl_queue.md index 5a2478b22d9..a35d4a2a5b7 100644 --- a/docs/en/operations/system-tables/distributed_ddl_queue.md +++ b/docs/en/operations/system-tables/distributed_ddl_queue.md @@ -61,4 +61,3 @@ exception_code: ZOK 2 rows in set. Elapsed: 0.025 sec. ``` -[Original article](https://clickhouse.com/docs/en/operations/system_tables/distributed_ddl_queuedistributed_ddl_queue.md) diff --git a/docs/en/operations/system-tables/distribution_queue.md b/docs/en/operations/system-tables/distribution_queue.md index 88d376c7553..896491a458b 100644 --- a/docs/en/operations/system-tables/distribution_queue.md +++ b/docs/en/operations/system-tables/distribution_queue.md @@ -47,4 +47,3 @@ last_exception: - [Distributed table engine](../../engines/table-engines/special/distributed.md) -[Original article](https://clickhouse.com/docs/en/operations/system_tables/distribution_queue) diff --git a/docs/en/operations/system-tables/opentelemetry_span_log.md b/docs/en/operations/system-tables/opentelemetry_span_log.md index 1b3b97af019..a9ca32ae030 100644 --- a/docs/en/operations/system-tables/opentelemetry_span_log.md +++ b/docs/en/operations/system-tables/opentelemetry_span_log.md @@ -50,4 +50,3 @@ attribute.values: [] - [OpenTelemetry](../../operations/opentelemetry.md) -[Original article](https://clickhouse.com/docs/en/operations/system_tables/opentelemetry_span_log) diff --git a/docs/en/operations/system-tables/parts_columns.md b/docs/en/operations/system-tables/parts_columns.md index 0439da79ab3..2f85b912f38 100644 --- a/docs/en/operations/system-tables/parts_columns.md +++ b/docs/en/operations/system-tables/parts_columns.md @@ -145,4 +145,3 @@ column_marks_bytes: 48 - [MergeTree family](../../engines/table-engines/mergetree-family/mergetree.md) -[Original article](https://clickhouse.com/docs/en/operations/system_tables/parts_columns) diff --git a/docs/en/operations/system-tables/replication_queue.md b/docs/en/operations/system-tables/replication_queue.md index cb22345c3a2..a7ac748ebbd 100644 --- a/docs/en/operations/system-tables/replication_queue.md +++ b/docs/en/operations/system-tables/replication_queue.md @@ -88,4 +88,3 @@ last_postpone_time: 1970-01-01 03:00:00 - [Managing ReplicatedMergeTree Tables](../../sql-reference/statements/system.md#query-language-system-replicated) -[Original article](https://clickhouse.com/docs/en/operations/system_tables/replication_queue) diff --git a/docs/en/sql-reference/aggregate-functions/reference/meanztest.md b/docs/en/sql-reference/aggregate-functions/reference/meanztest.md index d129e5722bc..0752df05818 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/meanztest.md +++ b/docs/en/sql-reference/aggregate-functions/reference/meanztest.md @@ -66,5 +66,3 @@ Result: └──────────────────────────────────────────────────────────────────────────────────┘ ``` - -[Original article](https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/meanZTest/) diff --git a/docs/en/sql-reference/aggregate-functions/reference/welchttest.md b/docs/en/sql-reference/aggregate-functions/reference/welchttest.md index 82c09ed606e..0a0278f970e 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/welchttest.md +++ b/docs/en/sql-reference/aggregate-functions/reference/welchttest.md @@ -69,4 +69,3 @@ Result: - [Welch's t-test](https://en.wikipedia.org/wiki/Welch%27s_t-test) - [studentTTest function](studentttest.md#studentttest) -[Original article](https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/welchTTest/) diff --git a/docs/en/sql-reference/data-types/domains/index.md b/docs/en/sql-reference/data-types/domains/index.md index f9bd6eea07e..50599db2f47 100644 --- a/docs/en/sql-reference/data-types/domains/index.md +++ b/docs/en/sql-reference/data-types/domains/index.md @@ -27,4 +27,3 @@ You can use domains anywhere corresponding base type can be used, for example: - Can’t implicitly convert string values into domain values when inserting data from another column or table. - Domain adds no constrains on stored values. -[Original article](https://clickhouse.com/docs/en/data_types/domains/) diff --git a/docs/en/sql-reference/data-types/geo.md b/docs/en/sql-reference/data-types/geo.md index c8edf985582..22fc56dbcf5 100644 --- a/docs/en/sql-reference/data-types/geo.md +++ b/docs/en/sql-reference/data-types/geo.md @@ -104,4 +104,3 @@ Result: └─────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────┘ ``` -[Original article](https://clickhouse.com/docs/en/data-types/geo/) diff --git a/docs/en/sql-reference/data-types/map.md b/docs/en/sql-reference/data-types/map.md index e913a5f34e3..65a0f9cbc52 100644 --- a/docs/en/sql-reference/data-types/map.md +++ b/docs/en/sql-reference/data-types/map.md @@ -108,4 +108,3 @@ Result: - [map()](../../sql-reference/functions/tuple-map-functions.md#function-map) function - [CAST()](../../sql-reference/functions/type-conversion-functions.md#type_conversion_function-cast) function -[Original article](https://clickhouse.com/docs/en/data-types/map/) diff --git a/docs/en/sql-reference/data-types/simpleaggregatefunction.md b/docs/en/sql-reference/data-types/simpleaggregatefunction.md index d0f604e8d8e..069e2e68671 100644 --- a/docs/en/sql-reference/data-types/simpleaggregatefunction.md +++ b/docs/en/sql-reference/data-types/simpleaggregatefunction.md @@ -39,4 +39,3 @@ Values of the `SimpleAggregateFunction(func, Type)` look and stored the same way CREATE TABLE simple (id UInt64, val SimpleAggregateFunction(sum, Double)) ENGINE=AggregatingMergeTree ORDER BY id; ``` -[Original article](https://clickhouse.com/docs/en/data_types/simpleaggregatefunction/) diff --git a/docs/en/sql-reference/functions/encryption-functions.md b/docs/en/sql-reference/functions/encryption-functions.md index 5b3fe2201e6..75f6cf18766 100644 --- a/docs/en/sql-reference/functions/encryption-functions.md +++ b/docs/en/sql-reference/functions/encryption-functions.md @@ -355,4 +355,3 @@ Result: └───────────┘ ``` -[Original article](https://clickhouse.com/docs/en/sql-reference/functions/encryption_functions/) diff --git a/docs/en/sql-reference/table-functions/mysql.md b/docs/en/sql-reference/table-functions/mysql.md index 33ddaa89435..60d95b17c4c 100644 --- a/docs/en/sql-reference/table-functions/mysql.md +++ b/docs/en/sql-reference/table-functions/mysql.md @@ -111,4 +111,3 @@ SELECT * FROM mysql('localhost:3306', 'test', 'test', 'bayonet', '123'); - [The ‘MySQL’ table engine](../../engines/table-engines/integrations/mysql.md) - [Using MySQL as a source of external dictionary](../../sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources.md#dicts-external_dicts_dict_sources-mysql) -[Original article](https://clickhouse.com/docs/en/sql-reference/table_functions/mysql/) From 7a1346ad22f3e04233098a30ffc7b0c4ac948a74 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Thu, 30 Jun 2022 18:27:28 +0300 Subject: [PATCH 450/525] Update 02067_lost_part_s3.sql --- tests/queries/0_stateless/02067_lost_part_s3.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02067_lost_part_s3.sql b/tests/queries/0_stateless/02067_lost_part_s3.sql index 87cbdca1d06..463f80348b2 100644 --- a/tests/queries/0_stateless/02067_lost_part_s3.sql +++ b/tests/queries/0_stateless/02067_lost_part_s3.sql @@ -1,4 +1,4 @@ --- Tags: no-backward-compatibility-check:22.5.1 +-- Tags: no-backward-compatibility-check DROP TABLE IF EXISTS partslost_0; DROP TABLE IF EXISTS partslost_1; From 5c5f05dd4b7bf9d82f3dd9d1c3c4c7dcce4e4f9e Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 30 Jun 2022 17:38:10 +0200 Subject: [PATCH 451/525] Clean out randomized integration volumes each run --- tests/integration/runner | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/integration/runner b/tests/integration/runner index d82e73068af..cd07875ad1d 100755 --- a/tests/integration/runner +++ b/tests/integration/runner @@ -346,6 +346,17 @@ if __name__ == "__main__": ) except Exception as ex: print("Volume creationg failed, probably it already exists, exception", ex) + # TODO: this part cleans out stale volumes produced by container name + # randomizer, we should remove it after Sep 2022 + try: + subprocess.check_call( + "docker volume rm $(docker volume ls -q | " + f"grep '{VOLUME_NAME}_.*_volume')", + shell=True, + ) + except Exception as ex: + print("Probably, some stale volumes still there, just continue:", ex) + # TODO END dockerd_internal_volume = f"--volume={VOLUME_NAME}_volume:/var/lib/docker" # If enabled we kill and remove containers before pytest session run. @@ -392,7 +403,11 @@ if __name__ == "__main__": command=args.command, ) - containers = subprocess.check_output(f"docker ps -a -q --filter name={CONTAINER_NAME} --format={{{{.ID}}}}", shell=True, universal_newlines=True).splitlines() + containers = subprocess.check_output( + f"docker ps -a -q --filter name={CONTAINER_NAME} --format={{{{.ID}}}}", + shell=True, + universal_newlines=True, + ).splitlines() if containers: print(f"Trying to kill containers name={CONTAINER_NAME} ids={containers}") subprocess.check_call(f"docker kill {' '.join(containers)}", shell=True) From aeaf16ae2ff5c02c8967723fc9bce310e3dc869e Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 30 Jun 2022 18:01:17 +0200 Subject: [PATCH 452/525] Use the script push_to_artifactory.py always from master --- .github/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 83e22c0b7c6..4d57ae450c4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,6 +21,9 @@ jobs: EOF - name: Check out repository code uses: actions/checkout@v2 + with: + # Always use the most recent script version + ref: master - name: Download packages and push to Artifactory run: | rm -rf "$TEMP_PATH" && mkdir -p "$TEMP_PATH" From 26749c53fe15fcea8501a379ad9b48c822ea7684 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Thu, 30 Jun 2022 12:45:10 -0400 Subject: [PATCH 453/525] fix formatting of code clocks and lists --- .../mergetree-family/mergetree.md | 73 +++++++++++-------- 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/docs/en/engines/table-engines/mergetree-family/mergetree.md b/docs/en/engines/table-engines/mergetree-family/mergetree.md index 20d9a14b194..3e5a0635339 100644 --- a/docs/en/engines/table-engines/mergetree-family/mergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/mergetree.md @@ -68,40 +68,42 @@ For a description of parameters, see the [CREATE query description](../../../sql `ORDER BY` — The sorting key. - A tuple of column names or arbitrary expressions. Example: `ORDER BY (CounterID, EventDate)`. +A tuple of column names or arbitrary expressions. Example: `ORDER BY (CounterID, EventDate)`. - ClickHouse uses the sorting key as a primary key if the primary key is not defined explicitly by the `PRIMARY KEY` clause. +ClickHouse uses the sorting key as a primary key if the primary key is not defined explicitly by the `PRIMARY KEY` clause. - Use the `ORDER BY tuple()` syntax, if you do not need sorting. See [Selecting the Primary Key](#selecting-the-primary-key). +Use the `ORDER BY tuple()` syntax, if you do not need sorting. See [Selecting the Primary Key](#selecting-the-primary-key). #### PARTITION BY `PARTITION BY` — The [partitioning key](../../../engines/table-engines/mergetree-family/custom-partitioning-key.md). Optional. In most cases you don't need partition key, and in most other cases you don't need partition key more granular than by months. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead make client identifier or name the first column in the ORDER BY expression). - For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](../../../sql-reference/data-types/date.md). The partition names here have the `"YYYYMM"` format. +For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](../../../sql-reference/data-types/date.md). The partition names here have the `"YYYYMM"` format. #### PRIMARY KEY `PRIMARY KEY` — The primary key if it [differs from the sorting key](#choosing-a-primary-key-that-differs-from-the-sorting-key). Optional. - By default the primary key is the same as the sorting key (which is specified by the `ORDER BY` clause). Thus in most cases it is unnecessary to specify a separate `PRIMARY KEY` clause. +By default the primary key is the same as the sorting key (which is specified by the `ORDER BY` clause). Thus in most cases it is unnecessary to specify a separate `PRIMARY KEY` clause. #### SAMPLE BY `SAMPLE BY` — An expression for sampling. Optional. - If a sampling expression is used, the primary key must contain it. The result of a sampling expression must be an unsigned integer. Example: `SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID))`. +If a sampling expression is used, the primary key must contain it. The result of a sampling expression must be an unsigned integer. Example: `SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID))`. #### TTL `TTL` — A list of rules specifying storage duration of rows and defining logic of automatic parts movement [between disks and volumes](#table_engine-mergetree-multiple-volumes). Optional. - Expression must have one `Date` or `DateTime` column as a result. Example: - `TTL date + INTERVAL 1 DAY` +Expression must have one `Date` or `DateTime` column as a result. Example: +``` +TTL date + INTERVAL 1 DAY +``` - Type of the rule `DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'|GROUP BY` specifies an action to be done with the part if the expression is satisfied (reaches current time): removal of expired rows, moving a part (if expression is satisfied for all rows in a part) to specified disk (`TO DISK 'xxx'`) or to volume (`TO VOLUME 'xxx'`), or aggregating values in expired rows. Default type of the rule is removal (`DELETE`). List of multiple rules can be specified, but there should be no more than one `DELETE` rule. +Type of the rule `DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'|GROUP BY` specifies an action to be done with the part if the expression is satisfied (reaches current time): removal of expired rows, moving a part (if expression is satisfied for all rows in a part) to specified disk (`TO DISK 'xxx'`) or to volume (`TO VOLUME 'xxx'`), or aggregating values in expired rows. Default type of the rule is removal (`DELETE`). List of multiple rules can be specified, but there should be no more than one `DELETE` rule. - For more details, see [TTL for columns and tables](#table_engine-mergetree-ttl) +For more details, see [TTL for columns and tables](#table_engine-mergetree-ttl) ### SETTINGS Additional parameters that control the behavior of the `MergeTree` (optional): @@ -129,7 +131,6 @@ Additional parameters that control the behavior of the `MergeTree` (optional): #### min_merge_bytes_to_use_direct_io `min_merge_bytes_to_use_direct_io` — The minimum data volume for merge operation that is required for using direct I/O access to the storage disk. When merging data parts, ClickHouse calculates the total storage volume of all the data to be merged. If the volume exceeds `min_merge_bytes_to_use_direct_io` bytes, ClickHouse reads and writes the data to the storage disk using the direct I/O interface (`O_DIRECT` option). If `min_merge_bytes_to_use_direct_io = 0`, then direct I/O is disabled. Default value: `10 * 1024 * 1024 * 1024` bytes. - #### merge_with_ttl_timeout @@ -305,15 +306,29 @@ For `SELECT` queries, ClickHouse analyzes whether an index can be used. An index Thus, it is possible to quickly run queries on one or many ranges of the primary key. In this example, queries will be fast when run for a specific tracking tag, for a specific tag and date range, for a specific tag and date, for multiple tags with a date range, and so on. Let’s look at the engine configured as follows: - - ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate) SETTINGS index_granularity=8192 +```sql +ENGINE MergeTree() +PARTITION BY toYYYYMM(EventDate) +ORDER BY (CounterID, EventDate) +SETTINGS index_granularity=8192 +``` In this case, in queries: ``` sql -SELECT count() FROM table WHERE EventDate = toDate(now()) AND CounterID = 34 -SELECT count() FROM table WHERE EventDate = toDate(now()) AND (CounterID = 34 OR CounterID = 42) -SELECT count() FROM table WHERE ((EventDate >= toDate('2014-01-01') AND EventDate <= toDate('2014-01-31')) OR EventDate = toDate('2014-05-01')) AND CounterID IN (101500, 731962, 160656) AND (CounterID = 101500 OR EventDate != toDate('2014-05-01')) +SELECT count() FROM table +WHERE EventDate = toDate(now()) +AND CounterID = 34 + +SELECT count() FROM table +WHERE EventDate = toDate(now()) +AND (CounterID = 34 OR CounterID = 42) + +SELECT count() FROM table +WHERE ((EventDate >= toDate('2014-01-01') +AND EventDate <= toDate('2014-01-31')) OR EventDate = toDate('2014-05-01')) +AND CounterID IN (101500, 731962, 160656) +AND (CounterID = 101500 OR EventDate != toDate('2014-05-01')) ``` ClickHouse will use the primary key index to trim improper data and the monthly partitioning key to trim partitions that are in improper date ranges. @@ -376,36 +391,36 @@ SELECT count() FROM table WHERE u64 * i32 == 10 AND u64 * length(s) >= 1234 #### `minmax` - Stores extremes of the specified expression (if the expression is `tuple`, then it stores extremes for each element of `tuple`), uses stored info for skipping blocks of data like the primary key. +Stores extremes of the specified expression (if the expression is `tuple`, then it stores extremes for each element of `tuple`), uses stored info for skipping blocks of data like the primary key. #### `set(max_rows)` - Stores unique values of the specified expression (no more than `max_rows` rows, `max_rows=0` means “no limits”). Uses the values to check if the `WHERE` expression is not satisfiable on a block of data. +Stores unique values of the specified expression (no more than `max_rows` rows, `max_rows=0` means “no limits”). Uses the values to check if the `WHERE` expression is not satisfiable on a block of data. #### `ngrambf_v1(n, size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)` - Stores a [Bloom filter](https://en.wikipedia.org/wiki/Bloom_filter) that contains all ngrams from a block of data. Works only with datatypes: [String](../../../sql-reference/data-types/string.md), [FixedString](../../../sql-reference/data-types/fixedstring.md) and [Map](../../../sql-reference/data-types/map.md). Can be used for optimization of `EQUALS`, `LIKE` and `IN` expressions. +Stores a [Bloom filter](https://en.wikipedia.org/wiki/Bloom_filter) that contains all ngrams from a block of data. Works only with datatypes: [String](../../../sql-reference/data-types/string.md), [FixedString](../../../sql-reference/data-types/fixedstring.md) and [Map](../../../sql-reference/data-types/map.md). Can be used for optimization of `EQUALS`, `LIKE` and `IN` expressions. - - `n` — ngram size, - - `size_of_bloom_filter_in_bytes` — Bloom filter size in bytes (you can use large values here, for example, 256 or 512, because it can be compressed well). - - `number_of_hash_functions` — The number of hash functions used in the Bloom filter. - - `random_seed` — The seed for Bloom filter hash functions. +- `n` — ngram size, +- `size_of_bloom_filter_in_bytes` — Bloom filter size in bytes (you can use large values here, for example, 256 or 512, because it can be compressed well). +- `number_of_hash_functions` — The number of hash functions used in the Bloom filter. +- `random_seed` — The seed for Bloom filter hash functions. #### `tokenbf_v1(size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)` - The same as `ngrambf_v1`, but stores tokens instead of ngrams. Tokens are sequences separated by non-alphanumeric characters. +The same as `ngrambf_v1`, but stores tokens instead of ngrams. Tokens are sequences separated by non-alphanumeric characters. #### `bloom_filter([false_positive])` — Stores a [Bloom filter](https://en.wikipedia.org/wiki/Bloom_filter) for the specified columns. - The optional `false_positive` parameter is the probability of receiving a false positive response from the filter. Possible values: (0, 1). Default value: 0.025. +The optional `false_positive` parameter is the probability of receiving a false positive response from the filter. Possible values: (0, 1). Default value: 0.025. - Supported data types: `Int*`, `UInt*`, `Float*`, `Enum`, `Date`, `DateTime`, `String`, `FixedString`, `Array`, `LowCardinality`, `Nullable`, `UUID`, `Map`. +Supported data types: `Int*`, `UInt*`, `Float*`, `Enum`, `Date`, `DateTime`, `String`, `FixedString`, `Array`, `LowCardinality`, `Nullable`, `UUID`, `Map`. - For `Map` data type client can specify if index should be created for keys or values using [mapKeys](../../../sql-reference/functions/tuple-map-functions.md#mapkeys) or [mapValues](../../../sql-reference/functions/tuple-map-functions.md#mapvalues) function. +For `Map` data type client can specify if index should be created for keys or values using [mapKeys](../../../sql-reference/functions/tuple-map-functions.md#mapkeys) or [mapValues](../../../sql-reference/functions/tuple-map-functions.md#mapvalues) function. - The following functions can use the filter: [equals](../../../sql-reference/functions/comparison-functions.md), [notEquals](../../../sql-reference/functions/comparison-functions.md), [in](../../../sql-reference/functions/in-functions), [notIn](../../../sql-reference/functions/in-functions), [has](../../../sql-reference/functions/array-functions#hasarr-elem), [hasAny](../../../sql-reference/functions/array-functions#hasany), [hasAll](../../../sql-reference/functions/array-functions#hasall). +The following functions can use the filter: [equals](../../../sql-reference/functions/comparison-functions.md), [notEquals](../../../sql-reference/functions/comparison-functions.md), [in](../../../sql-reference/functions/in-functions), [notIn](../../../sql-reference/functions/in-functions), [has](../../../sql-reference/functions/array-functions#hasarr-elem), [hasAny](../../../sql-reference/functions/array-functions#hasany), [hasAll](../../../sql-reference/functions/array-functions#hasall). - Example of index creation for `Map` data type +Example of index creation for `Map` data type ``` INDEX map_key_index mapKeys(map_column) TYPE bloom_filter GRANULARITY 1 From 987f6bc8ff29fbfa0f65109336682452f9c9238d Mon Sep 17 00:00:00 2001 From: Yuko Takagi <70714860+yukotakagi@users.noreply.github.com> Date: Thu, 30 Jun 2022 12:03:09 -0600 Subject: [PATCH 454/525] Update README.md Update upcoming meetup. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 153a0d5ce11..1d0146582a6 100644 --- a/README.md +++ b/README.md @@ -15,5 +15,8 @@ ClickHouse® is an open-source column-oriented database management system that a * [Contacts](https://clickhouse.com/company/#contact) can help to get your questions answered if there are any. ## Upcoming events -* [Paris Meetup](https://www.meetup.com/clickhouse-france-user-group/events/286304312/) Please join us for an evening of talks (in English), food and discussion. Featuring talks of ClickHouse in production and at least one on the deep internals of ClickHouse itself. * [v22.7 Release Webinar](https://clickhouse.com/company/events/v22-7-release-webinar/) Original creator, co-founder, and CTO of ClickHouse Alexey Milovidov will walk us through the highlights of the release, provide live demos, and share vision into what is coming in the roadmap. +* [ClickHouse Meetup at the Cloudflare office in London](https://www.meetup.com/clickhouse-london-user-group/events/286891586/) ClickHouse meetup at the Cloudflare office space in central London +* [ClickHouse Meetup at the Metoda office in Munich](https://www.meetup.com/clickhouse-meetup-munich/events/286891667/) ClickHouse meetup at the Metoda office in Munich + + From eb5046ab268a0d4fb03db2ae88896897948249d1 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 22:51:27 +0200 Subject: [PATCH 455/525] Simplify everything --- .../ObjectStorages/DiskObjectStorage.cpp | 35 +++++++++++-------- src/Disks/ObjectStorages/DiskObjectStorage.h | 3 ++ .../MergeTree/DataPartStorageOnDisk.cpp | 5 --- .../MergeTree/DataPartStorageOnDisk.h | 2 -- src/Storages/MergeTree/DataPartsExchange.cpp | 2 +- src/Storages/MergeTree/IDataPartStorage.h | 5 --- src/Storages/MergeTree/IMergeTreeDataPart.cpp | 5 +++ src/Storages/MergeTree/IMergeTreeDataPart.h | 4 +++ .../MergeTree/MergeFromLogEntryTask.cpp | 2 +- src/Storages/MergeTree/MergeTreeData.h | 2 +- .../MergeTree/MutateFromLogEntryTask.cpp | 2 +- .../MergeTree/ReplicatedMergeTreeSink.cpp | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 31 +++++++--------- src/Storages/StorageReplicatedMergeTree.h | 4 +-- .../test_s3_zero_copy_replication/test.py | 26 +++++++------- 15 files changed, 64 insertions(+), 66 deletions(-) diff --git a/src/Disks/ObjectStorages/DiskObjectStorage.cpp b/src/Disks/ObjectStorages/DiskObjectStorage.cpp index 540672d9b0a..a354ad27049 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorage.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorage.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include namespace DB @@ -78,8 +79,12 @@ private: } - DiskTransactionPtr DiskObjectStorage::createTransaction() +{ + return std::make_shared(*this); +} + +DiskTransactionPtr DiskObjectStorage::createObjectStorageTransaction() { return std::make_shared( *object_storage, @@ -176,7 +181,7 @@ bool DiskObjectStorage::isFile(const String & path) const void DiskObjectStorage::createFile(const String & path) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->createFile(path); transaction->commit(); } @@ -201,7 +206,7 @@ void DiskObjectStorage::moveFile(const String & from_path, const String & to_pat metadata_helper->createFileOperationObject("rename", revision, object_metadata); } - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->moveFile(from_path, to_path); transaction->commit(); } @@ -215,7 +220,7 @@ void DiskObjectStorage::replaceFile(const String & from_path, const String & to_ { if (exists(to_path)) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->replaceFile(from_path, to_path); transaction->commit(); } @@ -225,7 +230,7 @@ void DiskObjectStorage::replaceFile(const String & from_path, const String & to_ void DiskObjectStorage::removeSharedFile(const String & path, bool delete_metadata_only) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->removeSharedFile(path, delete_metadata_only); transaction->commit(); } @@ -276,7 +281,7 @@ void DiskObjectStorage::createHardLink(const String & src_path, const String & d metadata_helper->createFileOperationObject("hardlink", revision, object_metadata); } - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->createHardLink(src_path, dst_path); transaction->commit(); } @@ -291,7 +296,7 @@ void DiskObjectStorage::setReadOnly(const String & path) { /// We should store read only flag inside metadata file (instead of using FS flag), /// because we modify metadata file when create hard-links from it. - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->setReadOnly(path); transaction->commit(); } @@ -305,7 +310,7 @@ bool DiskObjectStorage::isDirectory(const String & path) const void DiskObjectStorage::createDirectory(const String & path) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->createDirectory(path); transaction->commit(); } @@ -313,7 +318,7 @@ void DiskObjectStorage::createDirectory(const String & path) void DiskObjectStorage::createDirectories(const String & path) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->createDirectories(path); transaction->commit(); } @@ -321,7 +326,7 @@ void DiskObjectStorage::createDirectories(const String & path) void DiskObjectStorage::clearDirectory(const String & path) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->clearDirectory(path); transaction->commit(); } @@ -329,7 +334,7 @@ void DiskObjectStorage::clearDirectory(const String & path) void DiskObjectStorage::removeDirectory(const String & path) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->removeDirectory(path); transaction->commit(); } @@ -350,7 +355,7 @@ void DiskObjectStorage::listFiles(const String & path, std::vector & fil void DiskObjectStorage::setLastModified(const String & path, const Poco::Timestamp & timestamp) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->setLastModified(path, timestamp); transaction->commit(); } @@ -394,14 +399,14 @@ ReservationPtr DiskObjectStorage::reserve(UInt64 bytes) void DiskObjectStorage::removeSharedFileIfExists(const String & path, bool delete_metadata_only) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->removeSharedFileIfExists(path, delete_metadata_only); transaction->commit(); } void DiskObjectStorage::removeSharedRecursive(const String & path, bool keep_all_batch_data, const NameSet & file_names_remove_metadata_only) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); transaction->removeSharedRecursive(path, keep_all_batch_data, file_names_remove_metadata_only); transaction->commit(); } @@ -451,7 +456,7 @@ std::unique_ptr DiskObjectStorage::writeFile( WriteMode mode, const WriteSettings & settings) { - auto transaction = createTransaction(); + auto transaction = createObjectStorageTransaction(); auto result = transaction->writeFile(path, buf_size, mode, settings); return result; diff --git a/src/Disks/ObjectStorages/DiskObjectStorage.h b/src/Disks/ObjectStorages/DiskObjectStorage.h index ef29dc8f071..fd9fa6bb110 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorage.h +++ b/src/Disks/ObjectStorages/DiskObjectStorage.h @@ -163,6 +163,9 @@ public: UInt64 getRevision() const override; private: + + DiskTransactionPtr createObjectStorageTransaction(); + const String name; const String remote_fs_root_path; Poco::Logger * log; diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp index 833cc2498e8..4364d74e3b9 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.cpp +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.cpp @@ -875,11 +875,6 @@ DataPartStoragePtr DataPartStorageBuilderOnDisk::getStorage() const return std::make_shared(volume, root_path, part_dir); } -String DataPartStorageBuilderOnDisk::getUniqueId() const -{ - return transaction->getUniqueId(fs::path(getRelativePath()) / "checksums.txt"); -} - void DataPartStorageBuilderOnDisk::commit() { transaction->commit(); diff --git a/src/Storages/MergeTree/DataPartStorageOnDisk.h b/src/Storages/MergeTree/DataPartStorageOnDisk.h index 66bd009a55d..d7d34e96919 100644 --- a/src/Storages/MergeTree/DataPartStorageOnDisk.h +++ b/src/Storages/MergeTree/DataPartStorageOnDisk.h @@ -166,8 +166,6 @@ public: bool remove_new_dir_if_exists, bool fsync_part_dir) override; - String getUniqueId() const override; - void commit() override; private: diff --git a/src/Storages/MergeTree/DataPartsExchange.cpp b/src/Storages/MergeTree/DataPartsExchange.cpp index 148d11d7a29..3eedac2888a 100644 --- a/src/Storages/MergeTree/DataPartsExchange.cpp +++ b/src/Storages/MergeTree/DataPartsExchange.cpp @@ -928,7 +928,7 @@ MergeTreeData::MutableDataPartPtr Fetcher::downloadPartToDiskRemoteMeta( new_data_part->modification_time = time(nullptr); new_data_part->loadColumnsChecksumsIndexes(true, false); - data.lockSharedData(*new_data_part, nullptr, /* replace_existing_lock = */ true, {}); + data.lockSharedData(*new_data_part, /* replace_existing_lock = */ true, {}); LOG_DEBUG(log, "Download of part {} unique id {} metadata onto disk {} finished.", part_name, part_id, disk->getName()); diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index d6087904c8c..2b644abd184 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -250,11 +250,6 @@ public: bool remove_new_dir_if_exists, bool fsync_part_dir) = 0; - /// A leak of abstraction. - /// Return some uniq string for file. - /// Required for distinguish different copies of the same part on remote FS. - virtual String getUniqueId() const = 0; - virtual void commit() = 0; }; diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.cpp b/src/Storages/MergeTree/IMergeTreeDataPart.cpp index 8ac4fe3a452..60941108f00 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.cpp +++ b/src/Storages/MergeTree/IMergeTreeDataPart.cpp @@ -1696,6 +1696,11 @@ bool IMergeTreeDataPart::checkAllTTLCalculated(const StorageMetadataPtr & metada return true; } +String IMergeTreeDataPart::getUniqueId() const +{ + return data_part_storage->getUniqueId(); +} + String IMergeTreeDataPart::getZeroLevelPartBlockID(std::string_view token) const { if (info.level != 0) diff --git a/src/Storages/MergeTree/IMergeTreeDataPart.h b/src/Storages/MergeTree/IMergeTreeDataPart.h index 1f5a95e3cca..7f3c41ce4c2 100644 --- a/src/Storages/MergeTree/IMergeTreeDataPart.h +++ b/src/Storages/MergeTree/IMergeTreeDataPart.h @@ -421,6 +421,10 @@ public: /// part creation (using alter query with materialize_ttl setting). bool checkAllTTLCalculated(const StorageMetadataPtr & metadata_snapshot) const; + /// Return some uniq string for file. + /// Required for distinguish different copies of the same part on remote FS. + String getUniqueId() const; + /// Ensures that creation_tid was correctly set after part creation. void assertHasVersionMetadata(MergeTreeTransaction * txn) const; diff --git a/src/Storages/MergeTree/MergeFromLogEntryTask.cpp b/src/Storages/MergeTree/MergeFromLogEntryTask.cpp index a70b329d57b..0e99d6ce04e 100644 --- a/src/Storages/MergeTree/MergeFromLogEntryTask.cpp +++ b/src/Storages/MergeTree/MergeFromLogEntryTask.cpp @@ -269,7 +269,7 @@ bool MergeFromLogEntryTask::finalize(ReplicatedMergeMutateTaskBase::PartLogWrite try { - storage.checkPartChecksumsAndCommit(*transaction_ptr, part, builder); + storage.checkPartChecksumsAndCommit(*transaction_ptr, part); } catch (const Exception & e) { diff --git a/src/Storages/MergeTree/MergeTreeData.h b/src/Storages/MergeTree/MergeTreeData.h index 94c8ba8b33d..c8c6a03f4c0 100644 --- a/src/Storages/MergeTree/MergeTreeData.h +++ b/src/Storages/MergeTree/MergeTreeData.h @@ -961,7 +961,7 @@ public: /// Lock part in zookeeper for shared data in several nodes /// Overridden in StorageReplicatedMergeTree - virtual void lockSharedData(const IMergeTreeDataPart &, DataPartStorageBuilderPtr = nullptr, bool = false, std::optional = {}) const {} /// NOLINT + virtual void lockSharedData(const IMergeTreeDataPart &, bool = false, std::optional = {}) const {} /// NOLINT /// Unlock shared data part in zookeeper /// Overridden in StorageReplicatedMergeTree diff --git a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp index 19a11aa2385..a51eb7854ab 100644 --- a/src/Storages/MergeTree/MutateFromLogEntryTask.cpp +++ b/src/Storages/MergeTree/MutateFromLogEntryTask.cpp @@ -179,7 +179,7 @@ bool MutateFromLogEntryTask::finalize(ReplicatedMergeMutateTaskBase::PartLogWrit try { - storage.checkPartChecksumsAndCommit(*transaction_ptr, new_part, builder, mutate_task->getHardlinkedFiles()); + storage.checkPartChecksumsAndCommit(*transaction_ptr, new_part, mutate_task->getHardlinkedFiles()); } catch (const Exception & e) { diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index 0606f26747f..65daa37bb41 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -502,7 +502,7 @@ void ReplicatedMergeTreeSink::commitPart( part->name); } - storage.lockSharedData(*part, builder, false, {}); + storage.lockSharedData(*part, false, {}); Coordination::Responses responses; Coordination::Error multi_code = zookeeper->tryMultiNoThrow(ops, responses); /// 1 RTT diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 09673f3b3e4..a711ca803d4 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -598,9 +598,6 @@ void StorageReplicatedMergeTree::createNewZooKeeperNodes() auto zookeeper = getZooKeeper(); std::vector futures; - /// We need to confirm /quorum exists here although it's called under createTableIfNotExists because in older CH releases (pre 22.4) - /// it was created here, so if metadata creation is done by an older replica the node might not exists when reaching this call - futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum", String(), zkutil::CreateMode::Persistent)); futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum/parallel", String(), zkutil::CreateMode::Persistent)); /// Nodes for remote fs zero-copy replication @@ -1504,7 +1501,7 @@ void StorageReplicatedMergeTree::checkPartChecksumsAndAddCommitOps(const zkutil: } MergeTreeData::DataPartsVector StorageReplicatedMergeTree::checkPartChecksumsAndCommit(Transaction & transaction, - const DataPartPtr & part, DataPartStorageBuilderPtr builder, std::optional hardlinked_files) + const DataPartPtr & part, std::optional hardlinked_files) { auto zookeeper = getZooKeeper(); @@ -1514,7 +1511,7 @@ MergeTreeData::DataPartsVector StorageReplicatedMergeTree::checkPartChecksumsAnd Coordination::Requests ops; NameSet absent_part_paths_on_replicas; - lockSharedData(*part, builder, false, hardlinked_files); + lockSharedData(*part, false, hardlinked_files); /// Checksums are checked here and `ops` is filled. In fact, the part is added to ZK just below, when executing `multi`. checkPartChecksumsAndAddCommitOps(zookeeper, part, ops, part->name, &absent_part_paths_on_replicas); @@ -1662,7 +1659,7 @@ bool StorageReplicatedMergeTree::executeLogEntry(LogEntry & entry) part->version.setCreationTID(Tx::PrehistoricTID, nullptr); auto builder = part->data_part_storage->getBuilder(); renameTempPartAndReplace(part, transaction, builder); - checkPartChecksumsAndCommit(transaction, part, nullptr); + checkPartChecksumsAndCommit(transaction, part); writePartLog(PartLogElement::Type::NEW_PART, {}, 0 /** log entry is fake so we don't measure the time */, part->name, part, {} /** log entry is fake so there are no initial parts */, nullptr); @@ -2350,7 +2347,7 @@ bool StorageReplicatedMergeTree::executeReplaceRange(const LogEntry & entry) renameTempPartAndReplace(part_desc->res_part, transaction, builder); getCommitPartOps(ops, part_desc->res_part); - lockSharedData(*part_desc->res_part, nullptr, false, part_desc->hardlinked_files); + lockSharedData(*part_desc->res_part, false, part_desc->hardlinked_files); } @@ -4092,7 +4089,7 @@ bool StorageReplicatedMergeTree::fetchPart(const String & part_name, const Stora Transaction transaction(*this, NO_TRANSACTION_RAW); renameTempPartAndReplace(part, transaction, builder); - replaced_parts = checkPartChecksumsAndCommit(transaction, part, nullptr, hardlinked_files); + replaced_parts = checkPartChecksumsAndCommit(transaction, part, hardlinked_files); /** If a quorum is tracked for this part, you must update it. * If you do not have time, in case of losing the session, when you restart the server - see the `ReplicatedMergeTreeRestartingThread::updateQuorumIfWeHavePart` method. @@ -6627,7 +6624,7 @@ void StorageReplicatedMergeTree::replacePartitionFrom( } for (size_t i = 0; i < dst_parts.size(); ++i) - lockSharedData(*dst_parts[i], nullptr, false, hardlinked_files_for_parts[i]); + lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); Coordination::Error code = zookeeper->tryMulti(ops, op_results); if (code == Coordination::Error::ZOK) @@ -6863,7 +6860,8 @@ void StorageReplicatedMergeTree::movePartitionToTable(const StoragePtr & dest_ta } for (size_t i = 0; i < dst_parts.size(); ++i) - dest_table_storage->lockSharedData(*dst_parts[i], nullptr, false, hardlinked_files_for_parts[i]); + dest_table_storage->lockSharedData(*dst_parts[i], false, hardlinked_files_for_parts[i]); + Coordination::Error code = zookeeper->tryMulti(ops, op_results); if (code == Coordination::Error::ZBADVERSION) continue; @@ -7548,7 +7546,7 @@ void StorageReplicatedMergeTree::lockSharedDataTemporary(const String & part_nam } } -void StorageReplicatedMergeTree::lockSharedData(const IMergeTreeDataPart & part, DataPartStorageBuilderPtr builder, bool replace_existing_lock, std::optional hardlinked_files) const +void StorageReplicatedMergeTree::lockSharedData(const IMergeTreeDataPart & part, bool replace_existing_lock, std::optional hardlinked_files) const { auto settings = getSettings(); @@ -7562,12 +7560,7 @@ void StorageReplicatedMergeTree::lockSharedData(const IMergeTreeDataPart & part, if (!zookeeper) return; - String id; - if (builder) - id = builder->getUniqueId(); - else - id = part.data_part_storage->getUniqueId(); - + String id = part.getUniqueId(); boost::replace_all(id, "/", "_"); Strings zc_zookeeper_paths = getZeroCopyPartPath( @@ -7619,7 +7612,7 @@ std::pair StorageReplicatedMergeTree::unlockSharedData(const IMer return std::make_pair(true, NameSet{}); } - return unlockSharedDataByID(part.data_part_storage->getUniqueId(), getTableSharedID(), part.name, replica_name, part.data_part_storage->getDiskType(), getZooKeeper(), *getSettings(), log, + return unlockSharedDataByID(part.getUniqueId(), getTableSharedID(), part.name, replica_name, part.data_part_storage->getDiskType(), getZooKeeper(), *getSettings(), log, zookeeper_path); } @@ -8062,7 +8055,7 @@ bool StorageReplicatedMergeTree::createEmptyPartInsteadOfLost(zkutil::ZooKeeperP throw Exception(ErrorCodes::INCORRECT_DATA, "Tried to create empty part {}, but it replaces existing parts {}.", lost_part_name, fmt::join(part_names, ", ")); } - lockSharedData(*new_data_part, data_part_storage_builder, false, {}); + lockSharedData(*new_data_part, false, {}); while (true) { diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 3e7e1e0f4c4..73a08a2b921 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -261,7 +261,7 @@ public: DataPartStoragePtr executeFetchShared(const String & source_replica, const String & new_part_name, const DiskPtr & disk, const String & path); /// Lock part in zookeeper for use shared data in several nodes - void lockSharedData(const IMergeTreeDataPart & part, DataPartStorageBuilderPtr builder, bool replace_existing_lock, std::optional hardlinked_files) const override; + void lockSharedData(const IMergeTreeDataPart & part, bool replace_existing_lock, std::optional hardlinked_files) const override; void lockSharedDataTemporary(const String & part_name, const String & part_id, const DiskPtr & disk) const; @@ -506,7 +506,7 @@ private: String getChecksumsForZooKeeper(const MergeTreeDataPartChecksums & checksums) const; /// Accepts a PreActive part, atomically checks its checksums with ones on other replicas and commit the part - DataPartsVector checkPartChecksumsAndCommit(Transaction & transaction, const DataPartPtr & part, DataPartStorageBuilderPtr builder, std::optional hardlinked_files = {}); + DataPartsVector checkPartChecksumsAndCommit(Transaction & transaction, const DataPartPtr & part, std::optional hardlinked_files = {}); bool partIsAssignedToBackgroundOperation(const DataPartPtr & part) const override; diff --git a/tests/integration/test_s3_zero_copy_replication/test.py b/tests/integration/test_s3_zero_copy_replication/test.py index b5354c0e01b..39be0d564df 100644 --- a/tests/integration/test_s3_zero_copy_replication/test.py +++ b/tests/integration/test_s3_zero_copy_replication/test.py @@ -110,7 +110,7 @@ def test_s3_zero_copy_replication(cluster, policy): ) node1.query("INSERT INTO s3_test VALUES (0,'data'),(1,'data')") - node2.query("SYSTEM SYNC REPLICA s3_test") + node2.query("SYSTEM SYNC REPLICA s3_test", timeout=30) assert ( node1.query("SELECT * FROM s3_test order by id FORMAT Values") == "(0,'data'),(1,'data')" @@ -124,7 +124,7 @@ def test_s3_zero_copy_replication(cluster, policy): assert get_large_objects_count(cluster) == 1 node2.query("INSERT INTO s3_test VALUES (2,'data'),(3,'data')") - node1.query("SYSTEM SYNC REPLICA s3_test") + node1.query("SYSTEM SYNC REPLICA s3_test", timeout=30) assert ( node2.query("SELECT * FROM s3_test order by id FORMAT Values") @@ -166,7 +166,7 @@ def test_s3_zero_copy_on_hybrid_storage(cluster): ) node1.query("INSERT INTO hybrid_test VALUES (0,'data'),(1,'data')") - node2.query("SYSTEM SYNC REPLICA hybrid_test") + node2.query("SYSTEM SYNC REPLICA hybrid_test", timeout=30) assert ( node1.query("SELECT * FROM hybrid_test ORDER BY id FORMAT Values") @@ -292,7 +292,7 @@ def test_s3_zero_copy_with_ttl_move(cluster, storage_policy, large_data, iterati node1.query("INSERT INTO ttl_move_test VALUES (11, now() - INTERVAL 1 DAY)") node1.query("OPTIMIZE TABLE ttl_move_test FINAL") - node2.query("SYSTEM SYNC REPLICA ttl_move_test") + node2.query("SYSTEM SYNC REPLICA ttl_move_test", timeout=30) if large_data: assert ( @@ -362,8 +362,8 @@ def test_s3_zero_copy_with_ttl_delete(cluster, large_data, iterations): node1.query("OPTIMIZE TABLE ttl_delete_test FINAL") - node1.query("SYSTEM SYNC REPLICA ttl_delete_test") - node2.query("SYSTEM SYNC REPLICA ttl_delete_test") + node1.query("SYSTEM SYNC REPLICA ttl_delete_test", timeout=30) + node2.query("SYSTEM SYNC REPLICA ttl_delete_test", timeout=30) if large_data: assert ( @@ -445,7 +445,7 @@ def s3_zero_copy_unfreeze_base(cluster, unfreeze_query_template): check_objects_exisis(cluster, objects01) node1.query("TRUNCATE TABLE unfreeze_test") - node2.query("SYSTEM SYNC REPLICA unfreeze_test") + node2.query("SYSTEM SYNC REPLICA unfreeze_test", timeout=30) objects11 = node1.get_backuped_s3_objects("s31", "freeze_backup1") objects12 = node2.get_backuped_s3_objects("s31", "freeze_backup2") @@ -499,7 +499,7 @@ def s3_zero_copy_drop_detached(cluster, unfreeze_query_template): node1.query("ALTER TABLE drop_detached_test FREEZE WITH NAME 'detach_backup1'") node1.query("INSERT INTO drop_detached_test VALUES (1)") node1.query("ALTER TABLE drop_detached_test FREEZE WITH NAME 'detach_backup2'") - node2.query("SYSTEM SYNC REPLICA drop_detached_test") + node2.query("SYSTEM SYNC REPLICA drop_detached_test", timeout=30) objects1 = node1.get_backuped_s3_objects("s31", "detach_backup1") objects2 = node1.get_backuped_s3_objects("s31", "detach_backup2") @@ -511,7 +511,7 @@ def s3_zero_copy_drop_detached(cluster, unfreeze_query_template): node1.query("ALTER TABLE drop_detached_test DETACH PARTITION '0'") node1.query("ALTER TABLE drop_detached_test DETACH PARTITION '1'") - node2.query("SYSTEM SYNC REPLICA drop_detached_test") + node2.query("SYSTEM SYNC REPLICA drop_detached_test", timeout=30) wait_mutations(node1, "drop_detached_test", 10) wait_mutations(node2, "drop_detached_test", 10) @@ -523,7 +523,7 @@ def s3_zero_copy_drop_detached(cluster, unfreeze_query_template): "ALTER TABLE drop_detached_test DROP DETACHED PARTITION '1'", settings={"allow_drop_detached": 1}, ) - node1.query("SYSTEM SYNC REPLICA drop_detached_test") + node1.query("SYSTEM SYNC REPLICA drop_detached_test", timeout=30) wait_mutations(node1, "drop_detached_test", 10) wait_mutations(node2, "drop_detached_test", 10) @@ -534,7 +534,7 @@ def s3_zero_copy_drop_detached(cluster, unfreeze_query_template): "ALTER TABLE drop_detached_test DROP DETACHED PARTITION '1'", settings={"allow_drop_detached": 1}, ) - node2.query("SYSTEM SYNC REPLICA drop_detached_test") + node2.query("SYSTEM SYNC REPLICA drop_detached_test", timeout=30) wait_mutations(node1, "drop_detached_test", 10) wait_mutations(node2, "drop_detached_test", 10) @@ -545,7 +545,7 @@ def s3_zero_copy_drop_detached(cluster, unfreeze_query_template): "ALTER TABLE drop_detached_test DROP DETACHED PARTITION '0'", settings={"allow_drop_detached": 1}, ) - node2.query("SYSTEM SYNC REPLICA drop_detached_test") + node2.query("SYSTEM SYNC REPLICA drop_detached_test", timeout=30) wait_mutations(node1, "drop_detached_test", 10) wait_mutations(node2, "drop_detached_test", 10) @@ -555,7 +555,7 @@ def s3_zero_copy_drop_detached(cluster, unfreeze_query_template): "ALTER TABLE drop_detached_test DROP DETACHED PARTITION '0'", settings={"allow_drop_detached": 1}, ) - node1.query("SYSTEM SYNC REPLICA drop_detached_test") + node1.query("SYSTEM SYNC REPLICA drop_detached_test", timeout=30) wait_mutations(node1, "drop_detached_test", 10) wait_mutations(node2, "drop_detached_test", 10) From 3afd0c4ab6d5b7ed8e04886d6e0f5be2ffcd52ea Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 22:57:39 +0200 Subject: [PATCH 456/525] Remove redundant method --- src/Disks/FakeDiskTransaction.h | 5 ----- src/Disks/IDiskTransaction.h | 2 -- .../ObjectStorages/DiskObjectStorageTransaction.cpp | 10 ---------- .../ObjectStorages/DiskObjectStorageTransaction.h | 3 --- 4 files changed, 20 deletions(-) diff --git a/src/Disks/FakeDiskTransaction.h b/src/Disks/FakeDiskTransaction.h index 387361a9df8..7f9247a0689 100644 --- a/src/Disks/FakeDiskTransaction.h +++ b/src/Disks/FakeDiskTransaction.h @@ -125,11 +125,6 @@ public: disk.createHardLink(src_path, dst_path); } - std::string getUniqueId(const String & path) const override - { - return disk.getUniqueId(path); - } - bool isCommitedOrTriedToCommit() const override { return commit_called; diff --git a/src/Disks/IDiskTransaction.h b/src/Disks/IDiskTransaction.h index fcfe4009aa3..e51a02267d1 100644 --- a/src/Disks/IDiskTransaction.h +++ b/src/Disks/IDiskTransaction.h @@ -109,8 +109,6 @@ public: /// Create hardlink from `src_path` to `dst_path`. virtual void createHardLink(const std::string & src_path, const std::string & dst_path) = 0; - virtual std::string getUniqueId(const String & path) const = 0; - virtual bool isCommitedOrTriedToCommit() const = 0; }; diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index 0669e49c9b3..e07b050dd1f 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -487,14 +487,6 @@ String revisionToString(UInt64 revision) } -std::string DiskObjectStorageTransaction::getUniqueId(const std::string & path) const -{ - auto it = unique_ids.find(path); - if (it != unique_ids.end()) - return it->second; - return ""; -} - std::unique_ptr DiskObjectStorageTransaction::writeFile( /// NOLINT const std::string & path, size_t buf_size, @@ -515,8 +507,6 @@ std::unique_ptr DiskObjectStorageTransaction::writeFile blob_name = "r" + revisionToString(revision) + "-file-" + blob_name; } - unique_ids[path] = blob_name; - auto blob_path = fs::path(remote_fs_root_path) / blob_name; auto write_operation = std::make_unique(object_storage, metadata_storage, path, blob_path); diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h index 4312b380a04..6ce0d2bcdd2 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h @@ -56,7 +56,6 @@ private: /// TODO we can get rid of this params const std::string & remote_fs_root_path; DiskObjectStorageRemoteMetadataRestoreHelper * metadata_helper; - std::unordered_map unique_ids; DiskObjectStorageOperations operations_to_execute; bool commit_called{false}; @@ -110,8 +109,6 @@ public: void setReadOnly(const std::string & path) override; void createHardLink(const std::string & src_path, const std::string & dst_path) override; - std::string getUniqueId(const std::string & path) const override; - bool isCommitedOrTriedToCommit() const override { return commit_called; From b7c0d2552858644d694ee4a90e65e67d81bcaeee Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 23:01:55 +0200 Subject: [PATCH 457/525] Less code --- src/Disks/FakeDiskTransaction.h | 7 ------- src/Disks/IDiskTransaction.h | 2 -- src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp | 1 - src/Disks/ObjectStorages/DiskObjectStorageTransaction.h | 6 ------ 4 files changed, 16 deletions(-) diff --git a/src/Disks/FakeDiskTransaction.h b/src/Disks/FakeDiskTransaction.h index 7f9247a0689..fae43ae3d2a 100644 --- a/src/Disks/FakeDiskTransaction.h +++ b/src/Disks/FakeDiskTransaction.h @@ -17,7 +17,6 @@ public: void commit() override { - commit_called = true; } void createDirectory(const std::string & path) override @@ -125,14 +124,8 @@ public: disk.createHardLink(src_path, dst_path); } - bool isCommitedOrTriedToCommit() const override - { - return commit_called; - } - private: IDisk & disk; - bool commit_called{false}; }; } diff --git a/src/Disks/IDiskTransaction.h b/src/Disks/IDiskTransaction.h index e51a02267d1..4b00a9bcefc 100644 --- a/src/Disks/IDiskTransaction.h +++ b/src/Disks/IDiskTransaction.h @@ -108,8 +108,6 @@ public: /// Create hardlink from `src_path` to `dst_path`. virtual void createHardLink(const std::string & src_path, const std::string & dst_path) = 0; - - virtual bool isCommitedOrTriedToCommit() const = 0; }; using DiskTransactionPtr = std::shared_ptr; diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp index e07b050dd1f..224174ee5a9 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.cpp @@ -602,7 +602,6 @@ void DiskObjectStorageTransaction::copyFile(const std::string & from_file_path, void DiskObjectStorageTransaction::commit() { - commit_called = true; for (size_t i = 0; i < operations_to_execute.size(); ++i) { try diff --git a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h index 6ce0d2bcdd2..362b5404707 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h +++ b/src/Disks/ObjectStorages/DiskObjectStorageTransaction.h @@ -58,7 +58,6 @@ private: DiskObjectStorageRemoteMetadataRestoreHelper * metadata_helper; DiskObjectStorageOperations operations_to_execute; - bool commit_called{false}; public: DiskObjectStorageTransaction( IObjectStorage & object_storage_, @@ -108,11 +107,6 @@ public: void setLastModified(const std::string & path, const Poco::Timestamp & timestamp) override; void setReadOnly(const std::string & path) override; void createHardLink(const std::string & src_path, const std::string & dst_path) override; - - bool isCommitedOrTriedToCommit() const override - { - return commit_called; - } }; using DiskObjectStorageTransactionPtr = std::shared_ptr; From 09faa1641e3237b3bc6897e68f7a61f20dc069e4 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 23:09:32 +0200 Subject: [PATCH 458/525] Some comments --- src/Disks/ObjectStorages/DiskObjectStorage.h | 3 +++ src/Storages/MergeTree/IDataPartStorage.h | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/Disks/ObjectStorages/DiskObjectStorage.h b/src/Disks/ObjectStorages/DiskObjectStorage.h index fd9fa6bb110..56a1f7b7a3f 100644 --- a/src/Disks/ObjectStorages/DiskObjectStorage.h +++ b/src/Disks/ObjectStorages/DiskObjectStorage.h @@ -37,6 +37,7 @@ public: bool send_metadata_, uint64_t thread_pool_size); + /// Create fake transaction DiskTransactionPtr createTransaction() override; DiskType getType() const override { return disk_type; } @@ -164,6 +165,8 @@ public: UInt64 getRevision() const override; private: + /// Create actual disk object storage transaction for operations + /// execution. DiskTransactionPtr createObjectStorageTransaction(); const String name; diff --git a/src/Storages/MergeTree/IDataPartStorage.h b/src/Storages/MergeTree/IDataPartStorage.h index 2b644abd184..49b38a6c703 100644 --- a/src/Storages/MergeTree/IDataPartStorage.h +++ b/src/Storages/MergeTree/IDataPartStorage.h @@ -199,6 +199,9 @@ public: /// Right now, this is needed for rename table query. virtual void changeRootPath(const std::string & from_root, const std::string & to_root) = 0; + /// Leak of abstraction as well. We should use builder as one-time object which allow + /// us to build parts, while storage should be read-only method to access part properties + /// related to disk. However our code is really tricky and sometimes we need ad-hoc builders. virtual DataPartStorageBuilderPtr getBuilder() const = 0; }; @@ -243,6 +246,8 @@ public: /// Ideally, new_root_path should be the same as current root (but it is not true). /// Examples are: 'all_1_2_1' -> 'detached/all_1_2_1' /// 'moving/tmp_all_1_2_1' -> 'all_1_2_1' + /// + /// To notify storage also call onRename for it with first two args virtual void rename( const std::string & new_root_path, const std::string & new_part_dir, From dfb0dfc4a758c99e53d366115f6ee785ba20c830 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 30 Jun 2022 23:11:20 +0200 Subject: [PATCH 459/525] Less diff --- src/Disks/FakeDiskTransaction.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Disks/FakeDiskTransaction.h b/src/Disks/FakeDiskTransaction.h index fae43ae3d2a..6d61ac752f2 100644 --- a/src/Disks/FakeDiskTransaction.h +++ b/src/Disks/FakeDiskTransaction.h @@ -15,9 +15,7 @@ public: : disk(disk_) {} - void commit() override - { - } + void commit() override {} void createDirectory(const std::string & path) override { From 12290dd644422becc0581f36a682fcb8e922321a Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy <99031427+yakov-olkhovskiy@users.noreply.github.com> Date: Thu, 30 Jun 2022 17:35:42 -0400 Subject: [PATCH 460/525] upload from self-extracting directory --- tests/ci/build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ci/build_check.py b/tests/ci/build_check.py index 3976e2ba916..5dcc0e3e49f 100644 --- a/tests/ci/build_check.py +++ b/tests/ci/build_check.py @@ -231,7 +231,7 @@ def upload_master_static_binaries( return s3_path = "/".join((pr_info.base_ref, static_binary_name, "clickhouse")) - binary = os.path.join(build_output_path, "clickhouse") + binary = os.path.join(build_output_path, "self-extracting", "clickhouse") url = s3_helper.upload_build_file_to_s3(binary, s3_path) print(f"::notice ::Binary static URL: {url}") From bb358617e1e0ef6e0cf43f67b1eeea366986c7bd Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Thu, 30 Jun 2022 23:35:44 +0200 Subject: [PATCH 461/525] Better naming for stuff related to splitted debug symbols The previous name was slightly misleading, e.g. it is not about "intalling stripped binaries" but about splitting debug symbols from the binary. --- CMakeLists.txt | 6 +++--- cmake/{strip_binary.cmake => split_debug_symbols.cmake} | 2 +- docker/packager/packager | 2 +- docs/en/development/cmake-in-clickhouse.md | 2 +- programs/CMakeLists.txt | 8 ++++---- programs/keeper/CMakeLists.txt | 6 +++--- programs/library-bridge/CMakeLists.txt | 8 ++++---- programs/odbc-bridge/CMakeLists.txt | 8 ++++---- 8 files changed, 21 insertions(+), 21 deletions(-) rename cmake/{strip_binary.cmake => split_debug_symbols.cmake} (98%) diff --git a/CMakeLists.txt b/CMakeLists.txt index c8bb1a2d1ca..4c7b732c68c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -252,10 +252,10 @@ else () endif () # Optionally split binaries and debug symbols. -option(INSTALL_STRIPPED_BINARIES "Split binaries and debug symbols" OFF) -if (INSTALL_STRIPPED_BINARIES) +option(SPLIT_DEBUG_SYMBOLS "Split binaries and debug symbols" OFF) +if (SPLIT_DEBUG_SYMBOLS) message(STATUS "Will split binaries and debug symbols") - set(STRIPPED_BINARIES_OUTPUT "stripped" CACHE STRING "A separate directory for stripped information") + set(SPLITTED_DEBUG_SYMBOLS_DIR "stripped" CACHE STRING "A separate directory for stripped information") endif() cmake_host_system_information(RESULT AVAILABLE_PHYSICAL_MEMORY QUERY AVAILABLE_PHYSICAL_MEMORY) # Not available under freebsd diff --git a/cmake/strip_binary.cmake b/cmake/split_debug_symbols.cmake similarity index 98% rename from cmake/strip_binary.cmake rename to cmake/split_debug_symbols.cmake index 6e38c86fc70..12182ed9c20 100644 --- a/cmake/strip_binary.cmake +++ b/cmake/split_debug_symbols.cmake @@ -1,4 +1,4 @@ -macro(clickhouse_strip_binary) +macro(clickhouse_split_debug_symbols) set(oneValueArgs TARGET DESTINATION_DIR BINARY_PATH) cmake_parse_arguments(STRIP "" "${oneValueArgs}" "" ${ARGN}) diff --git a/docker/packager/packager b/docker/packager/packager index 14147b8e069..7c0f046b76c 100755 --- a/docker/packager/packager +++ b/docker/packager/packager @@ -202,7 +202,7 @@ def parse_env_variables( cmake_flags.append("-DCMAKE_INSTALL_SYSCONFDIR=/etc") cmake_flags.append("-DCMAKE_INSTALL_LOCALSTATEDIR=/var") if is_release_build(build_type, package_type, sanitizer, split_binary): - cmake_flags.append("-DINSTALL_STRIPPED_BINARIES=ON") + cmake_flags.append("-DSPLIT_DEBUG_SYMBOLS=ON") result.append("WITH_PERFORMANCE=1") if is_cross_arm: cmake_flags.append("-DBUILD_STANDALONE_KEEPER=1") diff --git a/docs/en/development/cmake-in-clickhouse.md b/docs/en/development/cmake-in-clickhouse.md index 5625cf3657d..83279f5f69a 100644 --- a/docs/en/development/cmake-in-clickhouse.md +++ b/docs/en/development/cmake-in-clickhouse.md @@ -349,7 +349,7 @@ Note that ClickHouse uses forks of these libraries, see https://github.com/Click Only for Linux, x86_64 or aarch64. -INSTALL_STRIPPED_BINARIES +SPLIT_DEBUG_SYMBOLS OFF Build stripped binaries with debug info in separate directory diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index a2c6eb1a27e..1639af163a9 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -2,7 +2,7 @@ if (USE_CLANG_TIDY) set (CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_PATH}") endif () -include(${ClickHouse_SOURCE_DIR}/cmake/strip_binary.cmake) +include(${ClickHouse_SOURCE_DIR}/cmake/split_debug_symbols.cmake) # The `clickhouse` binary is a multi purpose tool that contains multiple execution modes (client, server, etc.), # each of them may be built and linked as a separate library. @@ -511,10 +511,10 @@ else () add_custom_command(TARGET clickhouse POST_BUILD COMMAND ./clickhouse hash-binary > hash && ${OBJCOPY_PATH} --add-section .clickhouse.hash=hash clickhouse COMMENT "Adding section '.clickhouse.hash' to clickhouse binary" VERBATIM) endif() - if (INSTALL_STRIPPED_BINARIES) - clickhouse_strip_binary(TARGET clickhouse DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/${STRIPPED_BINARIES_OUTPUT} BINARY_PATH clickhouse) + if (SPLIT_DEBUG_SYMBOLS) + clickhouse_split_debug_symbols(TARGET clickhouse DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/${SPLITTED_DEBUG_SYMBOLS_DIR} BINARY_PATH clickhouse) else() - clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/${STRIPPED_BINARIES_OUTPUT}) + clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/${SPLITTED_DEBUG_SYMBOLS_DIR}) install (TARGETS clickhouse RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) endif() endif() diff --git a/programs/keeper/CMakeLists.txt b/programs/keeper/CMakeLists.txt index c77b335b615..cf6c8a6e975 100644 --- a/programs/keeper/CMakeLists.txt +++ b/programs/keeper/CMakeLists.txt @@ -131,10 +131,10 @@ if (BUILD_STANDALONE_KEEPER) add_dependencies(clickhouse-keeper clickhouse_keeper_configs) set_target_properties(clickhouse-keeper PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../) - if (INSTALL_STRIPPED_BINARIES) - clickhouse_strip_binary(TARGET clickhouse-keeper DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${STRIPPED_BINARIES_OUTPUT} BINARY_PATH ../clickhouse-keeper) + if (SPLIT_DEBUG_SYMBOLS) + clickhouse_split_debug_symbols(TARGET clickhouse-keeper DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${SPLITTED_DEBUG_SYMBOLS_DIR} BINARY_PATH ../clickhouse-keeper) else() - clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse-keeper DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${STRIPPED_BINARIES_OUTPUT}) + clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse-keeper DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${SPLITTED_DEBUG_SYMBOLS_DIR}) install(TARGETS clickhouse-keeper RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) endif() endif() diff --git a/programs/library-bridge/CMakeLists.txt b/programs/library-bridge/CMakeLists.txt index 90ce3d8be7f..a80f2568f04 100644 --- a/programs/library-bridge/CMakeLists.txt +++ b/programs/library-bridge/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${ClickHouse_SOURCE_DIR}/cmake/strip_binary.cmake) +include(${ClickHouse_SOURCE_DIR}/cmake/split_debug_symbols.cmake) set (CLICKHOUSE_LIBRARY_BRIDGE_SOURCES library-bridge.cpp @@ -24,9 +24,9 @@ target_link_libraries(clickhouse-library-bridge PRIVATE set_target_properties(clickhouse-library-bridge PROPERTIES RUNTIME_OUTPUT_DIRECTORY ..) -if (INSTALL_STRIPPED_BINARIES) - clickhouse_strip_binary(TARGET clickhouse-library-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${STRIPPED_BINARIES_OUTPUT} BINARY_PATH ../clickhouse-library-bridge) +if (SPLIT_DEBUG_SYMBOLS) + clickhouse_split_debug_symbols(TARGET clickhouse-library-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${SPLITTED_DEBUG_SYMBOLS_DIR} BINARY_PATH ../clickhouse-library-bridge) else() - clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse-library-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${STRIPPED_BINARIES_OUTPUT}) + clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse-library-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${SPLITTED_DEBUG_SYMBOLS_DIR}) install(TARGETS clickhouse-library-bridge RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) endif() diff --git a/programs/odbc-bridge/CMakeLists.txt b/programs/odbc-bridge/CMakeLists.txt index b530e08ca26..f64bec9892f 100644 --- a/programs/odbc-bridge/CMakeLists.txt +++ b/programs/odbc-bridge/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${ClickHouse_SOURCE_DIR}/cmake/strip_binary.cmake) +include(${ClickHouse_SOURCE_DIR}/cmake/split_debug_symbols.cmake) set (CLICKHOUSE_ODBC_BRIDGE_SOURCES ColumnInfoHandler.cpp @@ -39,10 +39,10 @@ if (USE_GDB_ADD_INDEX) add_custom_command(TARGET clickhouse-odbc-bridge POST_BUILD COMMAND ${GDB_ADD_INDEX_EXE} ../clickhouse-odbc-bridge COMMENT "Adding .gdb-index to clickhouse-odbc-bridge" VERBATIM) endif() -if (INSTALL_STRIPPED_BINARIES) - clickhouse_strip_binary(TARGET clickhouse-odbc-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${STRIPPED_BINARIES_OUTPUT} BINARY_PATH ../clickhouse-odbc-bridge) +if (SPLIT_DEBUG_SYMBOLS) + clickhouse_split_debug_symbols(TARGET clickhouse-odbc-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${SPLITTED_DEBUG_SYMBOLS_DIR} BINARY_PATH ../clickhouse-odbc-bridge) else() - clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse-odbc-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${STRIPPED_BINARIES_OUTPUT}) + clickhouse_make_empty_debug_info_for_nfpm(TARGET clickhouse-odbc-bridge DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR}/../${SPLITTED_DEBUG_SYMBOLS_DIR}) install(TARGETS clickhouse-odbc-bridge RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse) endif() From 9e544d38bd6385c8455573e9776c4e25bb5851f4 Mon Sep 17 00:00:00 2001 From: Denny Crane Date: Thu, 30 Jun 2022 18:51:33 -0300 Subject: [PATCH 462/525] Doc. Fix a note about ClickHouse Keeper --- docs/en/operations/tips.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/operations/tips.md b/docs/en/operations/tips.md index f364bc85088..ea6a29177c0 100644 --- a/docs/en/operations/tips.md +++ b/docs/en/operations/tips.md @@ -128,7 +128,7 @@ You should never use manually written scripts to transfer data between different If you want to divide an existing ZooKeeper cluster into two, the correct way is to increase the number of its replicas and then reconfigure it as two independent clusters. -You can run ClickHouse Keeper on the same server as ClickHouse, but do not run ZooKeeper on the same servers as ClickHouse. Because ZooKeeper is very sensitive for latency and ClickHouse may utilize all available system resources. +You can run ClickHouse Keeper on the same server as ClickHouse in test environments, or in environments with low ingestion rate. Do not run ZooKeeper and ClickHouse Keeper on the same servers as ClickHouse in production environments using the same one disk. Because ZooKeeper/Keeper are very sensitive for latency and ClickHouse may utilize all available system resources. You can have ZooKeeper observers in an ensemble but ClickHouse servers should not interact with observers. From 66705eacb04e6ef054baff98d632fe9426bcd841 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 00:07:22 +0200 Subject: [PATCH 463/525] Add test for keeper mntr command --- src/Coordination/Keeper4LWInfo.h | 3 +- src/Coordination/KeeperDispatcher.cpp | 5 +- src/Coordination/KeeperDispatcher.h | 5 + src/Coordination/KeeperServer.cpp | 2 - .../test_keeper_mntr_pressure/__init__.py | 1 + .../config/enable_keeper1.xml | 41 +++++++++ .../config/enable_keeper2.xml | 41 +++++++++ .../config/enable_keeper3.xml | 40 ++++++++ .../test_keeper_mntr_pressure/test.py | 92 +++++++++++++++++++ 9 files changed, 225 insertions(+), 5 deletions(-) create mode 100644 tests/integration/test_keeper_mntr_pressure/__init__.py create mode 100644 tests/integration/test_keeper_mntr_pressure/config/enable_keeper1.xml create mode 100644 tests/integration/test_keeper_mntr_pressure/config/enable_keeper2.xml create mode 100644 tests/integration/test_keeper_mntr_pressure/config/enable_keeper3.xml create mode 100644 tests/integration/test_keeper_mntr_pressure/test.py diff --git a/src/Coordination/Keeper4LWInfo.h b/src/Coordination/Keeper4LWInfo.h index bf7267a68e2..7d90152611e 100644 --- a/src/Coordination/Keeper4LWInfo.h +++ b/src/Coordination/Keeper4LWInfo.h @@ -3,6 +3,7 @@ #include #include +#include namespace DB { @@ -42,7 +43,7 @@ struct Keeper4LWInfo if (is_follower) return "follower"; - throw Exception(ErrorCodes::LOGICAL_ERROR, "RAFT server has undefined state state, it's a bug"); + throw Exception(ErrorCodes::LOGICAL_ERROR, "RAFT server has undefined state, it's a bug"); } }; diff --git a/src/Coordination/KeeperDispatcher.cpp b/src/Coordination/KeeperDispatcher.cpp index 9ad5fe9e8ed..623bc43f85e 100644 --- a/src/Coordination/KeeperDispatcher.cpp +++ b/src/Coordination/KeeperDispatcher.cpp @@ -652,10 +652,11 @@ uint64_t KeeperDispatcher::getSnapDirSize() const Keeper4LWInfo KeeperDispatcher::getKeeper4LWInfo() const { Keeper4LWInfo result; - result.is_follower = server->isFollower(); + result.is_follower = isFollower(); result.is_standalone = !result.is_follower && server->getFollowerCount() == 0; result.is_leader = isLeader(); - result.is_observer = server->isObserver(); + result.is_observer = isObserver(); + result.has_leader = hasLeader(); { std::lock_guard lock(push_request_mutex); diff --git a/src/Coordination/KeeperDispatcher.h b/src/Coordination/KeeperDispatcher.h index b632327a165..5e2701299f4 100644 --- a/src/Coordination/KeeperDispatcher.h +++ b/src/Coordination/KeeperDispatcher.h @@ -150,6 +150,11 @@ public: return server->isLeader(); } + bool isFollower() const + { + return server->isFollower(); + } + bool hasLeader() const { return server->isLeaderAlive(); diff --git a/src/Coordination/KeeperServer.cpp b/src/Coordination/KeeperServer.cpp index 8a46d8ee296..eba2e78d46a 100644 --- a/src/Coordination/KeeperServer.cpp +++ b/src/Coordination/KeeperServer.cpp @@ -444,14 +444,12 @@ bool KeeperServer::isLeader() const return raft_instance->is_leader(); } - bool KeeperServer::isObserver() const { auto srv_config = state_manager->get_srv_config(); return srv_config->is_learner(); } - bool KeeperServer::isFollower() const { return !isLeader() && !isObserver(); diff --git a/tests/integration/test_keeper_mntr_pressure/__init__.py b/tests/integration/test_keeper_mntr_pressure/__init__.py new file mode 100644 index 00000000000..e5a0d9b4834 --- /dev/null +++ b/tests/integration/test_keeper_mntr_pressure/__init__.py @@ -0,0 +1 @@ +#!/usr/bin/env python3 diff --git a/tests/integration/test_keeper_mntr_pressure/config/enable_keeper1.xml b/tests/integration/test_keeper_mntr_pressure/config/enable_keeper1.xml new file mode 100644 index 00000000000..17455ed12f5 --- /dev/null +++ b/tests/integration/test_keeper_mntr_pressure/config/enable_keeper1.xml @@ -0,0 +1,41 @@ + + + 9181 + 1 + /var/lib/clickhouse/coordination/log + /var/lib/clickhouse/coordination/snapshots + + + 5000 + 10000 + 75 + trace + + + + + 1 + node1 + 9234 + true + 3 + + + 2 + node2 + 9234 + true + true + 2 + + + 3 + node3 + 9234 + true + true + 1 + + + + diff --git a/tests/integration/test_keeper_mntr_pressure/config/enable_keeper2.xml b/tests/integration/test_keeper_mntr_pressure/config/enable_keeper2.xml new file mode 100644 index 00000000000..03a23984cc2 --- /dev/null +++ b/tests/integration/test_keeper_mntr_pressure/config/enable_keeper2.xml @@ -0,0 +1,41 @@ + + + 9181 + 2 + /var/lib/clickhouse/coordination/log + /var/lib/clickhouse/coordination/snapshots + + + 5000 + 10000 + 75 + trace + + + + + 1 + node1 + 9234 + true + 3 + + + 2 + node2 + 9234 + true + true + 2 + + + 3 + node3 + 9234 + true + true + 1 + + + + diff --git a/tests/integration/test_keeper_mntr_pressure/config/enable_keeper3.xml b/tests/integration/test_keeper_mntr_pressure/config/enable_keeper3.xml new file mode 100644 index 00000000000..a69cabf8c54 --- /dev/null +++ b/tests/integration/test_keeper_mntr_pressure/config/enable_keeper3.xml @@ -0,0 +1,40 @@ + + + 9181 + 3 + /var/lib/clickhouse/coordination/log + /var/lib/clickhouse/coordination/snapshots + + + 5000 + 10000 + trace + + + + + 1 + node1 + 9234 + true + 3 + + + 2 + node2 + 9234 + true + true + 2 + + + 3 + node3 + 9234 + true + true + 1 + + + + diff --git a/tests/integration/test_keeper_mntr_pressure/test.py b/tests/integration/test_keeper_mntr_pressure/test.py new file mode 100644 index 00000000000..736b1648241 --- /dev/null +++ b/tests/integration/test_keeper_mntr_pressure/test.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 + +from helpers.cluster import ClickHouseCluster +import pytest +import random +import string +import os +import time +from io import StringIO +import socket +import threading + +from helpers.network import PartitionManager + +cluster = ClickHouseCluster(__file__) +node1 = cluster.add_instance( + "node1", main_configs=["config/enable_keeper1.xml"], stay_alive=True +) +node2 = cluster.add_instance( + "node2", main_configs=["config/enable_keeper2.xml"], stay_alive=True +) +node3 = cluster.add_instance( + "node3", main_configs=["config/enable_keeper3.xml"], stay_alive=True +) + +@pytest.fixture(scope="module") +def started_cluster(): + try: + cluster.start() + + yield cluster + + finally: + cluster.shutdown() + + +def get_keeper_socket(node_name): + hosts = cluster.get_instance_ip(node_name) + client = socket.socket() + client.settimeout(10) + client.connect((hosts, 9181)) + return client + + +def close_keeper_socket(cli): + if cli is not None: + cli.close() + +def send_4lw_cmd(node_name, cmd="ruok"): + client = None + try: + client = get_keeper_socket(node_name) + client.send(cmd.encode()) + data = client.recv(100_000) + data = data.decode() + return data + finally: + if client is not None: + client.close() + + +def test_aggressive_mntr(started_cluster): + + def go_mntr(node_name): + for i in range(100000): + print(node_name, send_4lw_cmd(node_name, "mntr")) + + node1_thread = threading.Thread(target=lambda: go_mntr(node1.name)) + node2_thread = threading.Thread(target=lambda: go_mntr(node2.name)) + node3_thread = threading.Thread(target=lambda: go_mntr(node3.name)) + node1_thread.start() + node2_thread.start() + node3_thread.start() + + node2.stop_clickhouse() + node3.stop_clickhouse() + node1.stop_clickhouse() + starters = [] + for node in [node1, node2, node3]: + start_thread = threading.Thread(target=lambda: node.start_clickhouse()) + start_thread.start() + starters.append(start_thread) + + for start_thread in starters: + start_thread.join() + + node1_thread.join() + node2_thread.join() + node3_thread.join() + + for node in [node1, node2, node3]: + assert not node.contains_in_log("LOGICAL_ERROR") From 7378f0e30f4eb10d91c3d5a72182046ce469472a Mon Sep 17 00:00:00 2001 From: Dmitry Novik Date: Thu, 30 Jun 2022 22:33:56 +0000 Subject: [PATCH 464/525] Print stacktraces if test queue is full --- tests/clickhouse-test | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 8744e8bf95b..f21d1734029 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -1594,6 +1594,8 @@ def do_run_tests(jobs, test_suite: TestSuite, parallel): queue.close() except Full: + print("Couldn't put test to the queue within timeout. Server probably hung.") + print_stacktraces() queue.close() pool.join() From 0888d6bdb519b6b99363d1dca60fd62056f8ddde Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 00:43:30 +0200 Subject: [PATCH 465/525] Black --- tests/integration/test_keeper_mntr_pressure/test.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/integration/test_keeper_mntr_pressure/test.py b/tests/integration/test_keeper_mntr_pressure/test.py index 736b1648241..59ea64d0561 100644 --- a/tests/integration/test_keeper_mntr_pressure/test.py +++ b/tests/integration/test_keeper_mntr_pressure/test.py @@ -23,6 +23,7 @@ node3 = cluster.add_instance( "node3", main_configs=["config/enable_keeper3.xml"], stay_alive=True ) + @pytest.fixture(scope="module") def started_cluster(): try: @@ -46,6 +47,7 @@ def close_keeper_socket(cli): if cli is not None: cli.close() + def send_4lw_cmd(node_name, cmd="ruok"): client = None try: @@ -60,7 +62,6 @@ def send_4lw_cmd(node_name, cmd="ruok"): def test_aggressive_mntr(started_cluster): - def go_mntr(node_name): for i in range(100000): print(node_name, send_4lw_cmd(node_name, "mntr")) From f62c5e46f7b96ff7dcbfc1ff71405dcebd5d8f2a Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Fri, 1 Jul 2022 02:47:15 +0300 Subject: [PATCH 466/525] Update CHANGELOG.md --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94ea0ce2118..dfc51952250 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,6 @@ * Add two new settings `input_format_csv_skip_first_lines/input_format_tsv_skip_first_lines` to allow skipping specified number of lines in the beginning of the file in CSV/TSV formats. [#37537](https://github.com/ClickHouse/ClickHouse/pull/37537) ([Kruglov Pavel](https://github.com/Avogar)). * `showCertificate` function shows current server's SSL certificate. [#37540](https://github.com/ClickHouse/ClickHouse/pull/37540) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). * HTTP source for Data Dictionaries in Named Collections is supported. [#37581](https://github.com/ClickHouse/ClickHouse/pull/37581) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)). -* Added a new window function `nonNegativeDerivative(metric_column, timestamp_column[, INTERVAL x SECOND])`. [#37628](https://github.com/ClickHouse/ClickHouse/pull/37628) ([Andrey Zvonov](https://github.com/zvonand)). * Implemented changing the comment for `ReplicatedMergeTree` tables. [#37416](https://github.com/ClickHouse/ClickHouse/pull/37416) ([Vasily Nemkov](https://github.com/Enmk)). * Added `SYSTEM UNFREEZE` query that deletes the whole backup regardless if the corresponding table is deleted or not. [#36424](https://github.com/ClickHouse/ClickHouse/pull/36424) ([Vadim Volodin](https://github.com/PolyProgrammist)). From 97009ab9a334d4c3ab4df48a7f8273af2cd7c7f4 Mon Sep 17 00:00:00 2001 From: Denny Crane Date: Thu, 30 Jun 2022 21:12:08 -0300 Subject: [PATCH 467/525] Update tips.md --- docs/en/operations/tips.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/en/operations/tips.md b/docs/en/operations/tips.md index ea6a29177c0..5325311a9e6 100644 --- a/docs/en/operations/tips.md +++ b/docs/en/operations/tips.md @@ -128,7 +128,8 @@ You should never use manually written scripts to transfer data between different If you want to divide an existing ZooKeeper cluster into two, the correct way is to increase the number of its replicas and then reconfigure it as two independent clusters. -You can run ClickHouse Keeper on the same server as ClickHouse in test environments, or in environments with low ingestion rate. Do not run ZooKeeper and ClickHouse Keeper on the same servers as ClickHouse in production environments using the same one disk. Because ZooKeeper/Keeper are very sensitive for latency and ClickHouse may utilize all available system resources. +You can run ClickHouse Keeper on the same server as ClickHouse in test environments, or in environments with low ingestion rate. +For production environments we suggest to use separate servers for ClickHouse and ZooKeeper/Keeper, or place ClickHouse files and Keeper files on to separate disks. Because ZooKeeper/Keeper are very sensitive for disk latency and ClickHouse may utilize all available system resources. You can have ZooKeeper observers in an ensemble but ClickHouse servers should not interact with observers. From bab954c461aa07a75180d6a34fa33a05346f7879 Mon Sep 17 00:00:00 2001 From: lgbo-ustc Date: Fri, 1 Jul 2022 10:15:35 +0800 Subject: [PATCH 468/525] update codes based on review comment --- src/Interpreters/TranslateQualifiedNamesVisitor.cpp | 6 +++--- src/Interpreters/TranslateQualifiedNamesVisitor.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp index fd71dc01595..b58b90b6d47 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.cpp +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.cpp @@ -31,12 +31,12 @@ namespace ErrorCodes extern const int UNSUPPORTED_JOIN_KEYS; extern const int LOGICAL_ERROR; } -bool TranslateQualifiedNamesMatcher::Data::matchColumnName(const String & name, const String & column_name, DataTypePtr column_type) +bool TranslateQualifiedNamesMatcher::Data::matchColumnName(const std::string_view & name, const String & column_name, DataTypePtr column_type) { if (name.size() < column_name.size()) return false; - if (std::strncmp(name.data(), column_name.data(), column_name.size()) != 0) + if (!name.starts_with(column_name)) return false; if (name.size() == column_name.size()) @@ -49,7 +49,7 @@ bool TranslateQualifiedNamesMatcher::Data::matchColumnName(const String & name, { const Strings & names = type_tuple->getElementNames(); const DataTypes & element_types = type_tuple->getElements(); - String sub_name = name.substr(column_name.size() + 1, name.size() - column_name.size()); + std::string_view sub_name = name.substr(column_name.size() + 1); for (size_t i = 0; i < names.size(); ++i) { if (matchColumnName(sub_name, names[i], element_types[i])) diff --git a/src/Interpreters/TranslateQualifiedNamesVisitor.h b/src/Interpreters/TranslateQualifiedNamesVisitor.h index b1d4d94d01c..e0c2f6b6bc0 100644 --- a/src/Interpreters/TranslateQualifiedNamesVisitor.h +++ b/src/Interpreters/TranslateQualifiedNamesVisitor.h @@ -39,7 +39,7 @@ public: bool hasTable() const { return !tables.empty(); } bool processAsterisks() const { return hasTable() && has_columns; } bool unknownColumn(size_t table_pos, const ASTIdentifier & identifier) const; - static bool matchColumnName(const String & name, const String & column_name, DataTypePtr column_type); + static bool matchColumnName(const std::string_view & name, const String & column_name, DataTypePtr column_type); }; static void visit(ASTPtr & ast, Data & data); From 974e99fcfe9f7509585dc5891d1ca6c638381f9b Mon Sep 17 00:00:00 2001 From: santrancisco Date: Fri, 1 Jul 2022 19:07:42 +1000 Subject: [PATCH 469/525] Remove broken client library link --- docs/en/interfaces/third-party/client-libraries.md | 1 - docs/ru/interfaces/third-party/client-libraries.md | 1 - docs/zh/interfaces/third-party/client-libraries.md | 1 - 3 files changed, 3 deletions(-) diff --git a/docs/en/interfaces/third-party/client-libraries.md b/docs/en/interfaces/third-party/client-libraries.md index 705b9ef42c0..8067b18cc35 100644 --- a/docs/en/interfaces/third-party/client-libraries.md +++ b/docs/en/interfaces/third-party/client-libraries.md @@ -51,7 +51,6 @@ ClickHouse Inc does **not** maintain the libraries listed below and hasn’t don - [clickhouse-rs](https://github.com/suharev7/clickhouse-rs) - [Klickhouse](https://github.com/Protryon/klickhouse) - R - - [clickhouse-r](https://github.com/hannesmuehleisen/clickhouse-r) - [RClickHouse](https://github.com/IMSMWU/RClickHouse) - Java - [clickhouse-client-java](https://github.com/VirtusAI/clickhouse-client-java) diff --git a/docs/ru/interfaces/third-party/client-libraries.md b/docs/ru/interfaces/third-party/client-libraries.md index 702b53622da..ab2c9419b7f 100644 --- a/docs/ru/interfaces/third-party/client-libraries.md +++ b/docs/ru/interfaces/third-party/client-libraries.md @@ -45,7 +45,6 @@ sidebar_label: "Клиентские библиотеки от сторонни - [clickhouse-rs](https://github.com/suharev7/clickhouse-rs) - [Klickhouse](https://github.com/Protryon/klickhouse) - R - - [clickhouse-r](https://github.com/hannesmuehleisen/clickhouse-r) - [RClickhouse](https://github.com/IMSMWU/RClickhouse) - Java - [clickhouse-client-java](https://github.com/VirtusAI/clickhouse-client-java) diff --git a/docs/zh/interfaces/third-party/client-libraries.md b/docs/zh/interfaces/third-party/client-libraries.md index 52f7d70c0bf..8ed482eee73 100644 --- a/docs/zh/interfaces/third-party/client-libraries.md +++ b/docs/zh/interfaces/third-party/client-libraries.md @@ -46,7 +46,6 @@ Yandex**没有**维护下面列出的库,也没有做过任何广泛的测试 - [clickhouse-rs](https://github.com/suharev7/clickhouse-rs) - [Klickhouse](https://github.com/Protryon/klickhouse) - R - - [clickhouse-r](https://github.com/hannesmuehleisen/clickhouse-r) - [RClickHouse](https://github.com/IMSMWU/RClickHouse) - Java - [clickhouse-client-java](https://github.com/VirtusAI/clickhouse-client-java) From 16ccd3eccdd81371bdf92e6ef3400b68760c1b4e Mon Sep 17 00:00:00 2001 From: Filatenkov Artur <58165623+FArthur-cmd@users.noreply.github.com> Date: Fri, 1 Jul 2022 12:12:31 +0300 Subject: [PATCH 470/525] Update hardware.sh --- benchmark/hardware.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index e8c9c58aca3..0c3a1396440 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -40,10 +40,16 @@ if [[ $(./clickhouse client --query "EXISTS hits") == '1' && $(./clickhouse clie echo "Dataset already downloaded" else echo "Will download the dataset" + if [ "`uname`" = "Darwin" ] + then + ./clickhouse client --receive_timeout 1000 --max_insert_threads $(sysctl -n hw.ncpu) --progress --query " + CREATE OR REPLACE TABLE hits ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) + AS SELECT * FROM url('https://datasets.clickhouse.com/hits/native/hits_100m_obfuscated_{0..255}.native.zst')" + else ./clickhouse client --receive_timeout 1000 --max_insert_threads $(nproc || 4) --progress --query " CREATE OR REPLACE TABLE hits ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) AS SELECT * FROM url('https://datasets.clickhouse.com/hits/native/hits_100m_obfuscated_{0..255}.native.zst')" - + fi ./clickhouse client --query "SELECT 'The dataset size is: ', count() FROM hits" fi @@ -63,8 +69,8 @@ QUERY_NUM=1 cat "$QUERIES_FILE" | sed "s/{table}/hits/g" | while read query; do sync - if [ "${OS}" = "Darwin" ] - then + if [ "`uname`" = "Darwin" ] + then sudo purge > /dev/null else echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null @@ -90,8 +96,8 @@ echo touch {cpu_model,cpu,df,memory,memory_total,blk,mdstat,instance}.txt -if [ "${OS}" = "Darwin" ] -then +if [ "`uname`" = "Darwin" ] +then echo '----Version, build id-----------' ./clickhouse local --query "SELECT format('Version: {}', version())" ./clickhouse local --query "SELECT format('The number of threads is: {}', value) FROM system.settings WHERE name = 'max_threads'" --output-format TSVRaw From 9531bbf497076049388c2663357907121a00457e Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Tue, 14 Jun 2022 12:14:45 +0200 Subject: [PATCH 471/525] Move clickhouse-diagnostics to programs --- {tools/clickhouse-diagnostics => programs/diagnostics}/.gitignore | 0 .../diagnostics}/CONTRIBUTION.md | 0 {tools/clickhouse-diagnostics => programs/diagnostics}/Makefile | 0 {tools/clickhouse-diagnostics => programs/diagnostics}/README.md | 0 .../diagnostics}/cmd/collect.go | 0 .../diagnostics}/cmd/convert.go | 0 .../clickhouse-diagnostics => programs/diagnostics}/cmd/help.go | 0 .../diagnostics}/cmd/params/params.go | 0 .../diagnostics}/cmd/params/params_test.go | 0 .../clickhouse-diagnostics => programs/diagnostics}/cmd/root.go | 0 .../diagnostics}/cmd/version.go | 0 {tools/clickhouse-diagnostics => programs/diagnostics}/go.mod | 0 {tools/clickhouse-diagnostics => programs/diagnostics}/go.sum | 0 .../diagnostics}/internal/collectors/clickhouse/config.go | 0 .../diagnostics}/internal/collectors/clickhouse/config_test.go | 0 .../diagnostics}/internal/collectors/clickhouse/db_logs.go | 0 .../diagnostics}/internal/collectors/clickhouse/db_logs_test.go | 0 .../diagnostics}/internal/collectors/clickhouse/logs.go | 0 .../diagnostics}/internal/collectors/clickhouse/logs_test.go | 0 .../diagnostics}/internal/collectors/clickhouse/queries.json | 0 .../diagnostics}/internal/collectors/clickhouse/summary.go | 0 .../diagnostics}/internal/collectors/clickhouse/summary_test.go | 0 .../diagnostics}/internal/collectors/clickhouse/system.go | 0 .../diagnostics}/internal/collectors/clickhouse/system_test.go | 0 .../diagnostics}/internal/collectors/clickhouse/zookeeper.go | 0 .../diagnostics}/internal/collectors/clickhouse/zookeeper_test.go | 0 .../diagnostics}/internal/collectors/registry.go | 0 .../diagnostics}/internal/collectors/registry_test.go | 0 .../diagnostics}/internal/collectors/system/command.go | 0 .../diagnostics}/internal/collectors/system/command_test.go | 0 .../diagnostics}/internal/collectors/system/file.go | 0 .../diagnostics}/internal/collectors/system/file_test.go | 0 .../diagnostics}/internal/collectors/system/system.go | 0 .../diagnostics}/internal/collectors/system/system_test.go | 0 .../diagnostics}/internal/outputs/file/simple.go | 0 .../diagnostics}/internal/outputs/file/simple_test.go | 0 .../diagnostics}/internal/outputs/registry.go | 0 .../diagnostics}/internal/outputs/registry_test.go | 0 .../diagnostics}/internal/outputs/terminal/report.go | 0 .../diagnostics}/internal/platform/config/models.go | 0 .../diagnostics}/internal/platform/config/models_test.go | 0 .../diagnostics}/internal/platform/config/utils.go | 0 .../diagnostics}/internal/platform/config/utils_test.go | 0 .../diagnostics}/internal/platform/data/bundle.go | 0 .../diagnostics}/internal/platform/data/bundle_test.go | 0 .../diagnostics}/internal/platform/data/database.go | 0 .../diagnostics}/internal/platform/data/database_test.go | 0 .../diagnostics}/internal/platform/data/field.go | 0 .../diagnostics}/internal/platform/data/file.go | 0 .../diagnostics}/internal/platform/data/file_test.go | 0 .../diagnostics}/internal/platform/data/frame.go | 0 .../diagnostics}/internal/platform/data/memory.go | 0 .../diagnostics}/internal/platform/data/memory_test.go | 0 .../diagnostics}/internal/platform/data/misc.go | 0 .../diagnostics}/internal/platform/database/native.go | 0 .../diagnostics}/internal/platform/database/native_test.go | 0 .../diagnostics}/internal/platform/manager.go | 0 .../diagnostics}/internal/platform/manager_test.go | 0 .../diagnostics}/internal/platform/test/data.go | 0 .../diagnostics}/internal/platform/test/env.go | 0 .../diagnostics}/internal/platform/utils/file.go | 0 .../diagnostics}/internal/platform/utils/file_test.go | 0 .../diagnostics}/internal/platform/utils/process.go | 0 .../diagnostics}/internal/platform/utils/process_test.go | 0 .../diagnostics}/internal/platform/utils/slices.go | 0 .../diagnostics}/internal/platform/utils/slices_test.go | 0 .../diagnostics}/internal/platform/utils/time.go | 0 .../diagnostics}/internal/runner.go | 0 .../diagnostics}/internal/runner_test.go | 0 {tools/clickhouse-diagnostics => programs/diagnostics}/main.go | 0 .../diagnostics}/testdata/configs/include/xml/server-include.xml | 0 .../diagnostics}/testdata/configs/include/xml/user-include.xml | 0 .../testdata/configs/include/yaml/server-include.yaml | 0 .../diagnostics}/testdata/configs/include/yaml/user-include.yaml | 0 .../diagnostics}/testdata/configs/xml/config.xml | 0 .../testdata/configs/xml/users.d/default-password.xml | 0 .../diagnostics}/testdata/configs/xml/users.xml | 0 .../diagnostics}/testdata/configs/yaml/config.yaml | 0 .../testdata/configs/yaml/users.d/default-password.yaml | 0 .../diagnostics}/testdata/configs/yaml/users.yaml | 0 .../diagnostics}/testdata/configs/yandex_xml/config.xml | 0 .../diagnostics}/testdata/docker/admin.xml | 0 .../diagnostics}/testdata/docker/custom.xml | 0 .../diagnostics}/testdata/logs/var/logs/clickhouse-server.err.log | 0 .../diagnostics}/testdata/logs/var/logs/clickhouse-server.log | 0 .../diagnostics}/testdata/logs/var/logs/clickhouse-server.log.gz | 0 86 files changed, 0 insertions(+), 0 deletions(-) rename {tools/clickhouse-diagnostics => programs/diagnostics}/.gitignore (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/CONTRIBUTION.md (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/Makefile (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/README.md (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/cmd/collect.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/cmd/convert.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/cmd/help.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/cmd/params/params.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/cmd/params/params_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/cmd/root.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/cmd/version.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/go.mod (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/go.sum (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/config.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/config_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/db_logs.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/db_logs_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/logs.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/logs_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/queries.json (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/summary.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/summary_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/system.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/system_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/zookeeper.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/clickhouse/zookeeper_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/registry.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/registry_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/system/command.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/system/command_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/system/file.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/system/file_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/system/system.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/collectors/system/system_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/outputs/file/simple.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/outputs/file/simple_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/outputs/registry.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/outputs/registry_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/outputs/terminal/report.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/config/models.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/config/models_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/config/utils.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/config/utils_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/bundle.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/bundle_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/database.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/database_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/field.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/file.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/file_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/frame.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/memory.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/memory_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/data/misc.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/database/native.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/database/native_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/manager.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/manager_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/test/data.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/test/env.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/utils/file.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/utils/file_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/utils/process.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/utils/process_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/utils/slices.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/utils/slices_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/platform/utils/time.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/runner.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/internal/runner_test.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/main.go (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/include/xml/server-include.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/include/xml/user-include.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/include/yaml/server-include.yaml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/include/yaml/user-include.yaml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/xml/config.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/xml/users.d/default-password.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/xml/users.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/yaml/config.yaml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/yaml/users.d/default-password.yaml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/yaml/users.yaml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/configs/yandex_xml/config.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/docker/admin.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/docker/custom.xml (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/logs/var/logs/clickhouse-server.err.log (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/logs/var/logs/clickhouse-server.log (100%) rename {tools/clickhouse-diagnostics => programs/diagnostics}/testdata/logs/var/logs/clickhouse-server.log.gz (100%) diff --git a/tools/clickhouse-diagnostics/.gitignore b/programs/diagnostics/.gitignore similarity index 100% rename from tools/clickhouse-diagnostics/.gitignore rename to programs/diagnostics/.gitignore diff --git a/tools/clickhouse-diagnostics/CONTRIBUTION.md b/programs/diagnostics/CONTRIBUTION.md similarity index 100% rename from tools/clickhouse-diagnostics/CONTRIBUTION.md rename to programs/diagnostics/CONTRIBUTION.md diff --git a/tools/clickhouse-diagnostics/Makefile b/programs/diagnostics/Makefile similarity index 100% rename from tools/clickhouse-diagnostics/Makefile rename to programs/diagnostics/Makefile diff --git a/tools/clickhouse-diagnostics/README.md b/programs/diagnostics/README.md similarity index 100% rename from tools/clickhouse-diagnostics/README.md rename to programs/diagnostics/README.md diff --git a/tools/clickhouse-diagnostics/cmd/collect.go b/programs/diagnostics/cmd/collect.go similarity index 100% rename from tools/clickhouse-diagnostics/cmd/collect.go rename to programs/diagnostics/cmd/collect.go diff --git a/tools/clickhouse-diagnostics/cmd/convert.go b/programs/diagnostics/cmd/convert.go similarity index 100% rename from tools/clickhouse-diagnostics/cmd/convert.go rename to programs/diagnostics/cmd/convert.go diff --git a/tools/clickhouse-diagnostics/cmd/help.go b/programs/diagnostics/cmd/help.go similarity index 100% rename from tools/clickhouse-diagnostics/cmd/help.go rename to programs/diagnostics/cmd/help.go diff --git a/tools/clickhouse-diagnostics/cmd/params/params.go b/programs/diagnostics/cmd/params/params.go similarity index 100% rename from tools/clickhouse-diagnostics/cmd/params/params.go rename to programs/diagnostics/cmd/params/params.go diff --git a/tools/clickhouse-diagnostics/cmd/params/params_test.go b/programs/diagnostics/cmd/params/params_test.go similarity index 100% rename from tools/clickhouse-diagnostics/cmd/params/params_test.go rename to programs/diagnostics/cmd/params/params_test.go diff --git a/tools/clickhouse-diagnostics/cmd/root.go b/programs/diagnostics/cmd/root.go similarity index 100% rename from tools/clickhouse-diagnostics/cmd/root.go rename to programs/diagnostics/cmd/root.go diff --git a/tools/clickhouse-diagnostics/cmd/version.go b/programs/diagnostics/cmd/version.go similarity index 100% rename from tools/clickhouse-diagnostics/cmd/version.go rename to programs/diagnostics/cmd/version.go diff --git a/tools/clickhouse-diagnostics/go.mod b/programs/diagnostics/go.mod similarity index 100% rename from tools/clickhouse-diagnostics/go.mod rename to programs/diagnostics/go.mod diff --git a/tools/clickhouse-diagnostics/go.sum b/programs/diagnostics/go.sum similarity index 100% rename from tools/clickhouse-diagnostics/go.sum rename to programs/diagnostics/go.sum diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/config.go b/programs/diagnostics/internal/collectors/clickhouse/config.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/config.go rename to programs/diagnostics/internal/collectors/clickhouse/config.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/config_test.go b/programs/diagnostics/internal/collectors/clickhouse/config_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/config_test.go rename to programs/diagnostics/internal/collectors/clickhouse/config_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/db_logs.go b/programs/diagnostics/internal/collectors/clickhouse/db_logs.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/db_logs.go rename to programs/diagnostics/internal/collectors/clickhouse/db_logs.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/db_logs_test.go b/programs/diagnostics/internal/collectors/clickhouse/db_logs_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/db_logs_test.go rename to programs/diagnostics/internal/collectors/clickhouse/db_logs_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/logs.go b/programs/diagnostics/internal/collectors/clickhouse/logs.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/logs.go rename to programs/diagnostics/internal/collectors/clickhouse/logs.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/logs_test.go b/programs/diagnostics/internal/collectors/clickhouse/logs_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/logs_test.go rename to programs/diagnostics/internal/collectors/clickhouse/logs_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/queries.json b/programs/diagnostics/internal/collectors/clickhouse/queries.json similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/queries.json rename to programs/diagnostics/internal/collectors/clickhouse/queries.json diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/summary.go b/programs/diagnostics/internal/collectors/clickhouse/summary.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/summary.go rename to programs/diagnostics/internal/collectors/clickhouse/summary.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/summary_test.go b/programs/diagnostics/internal/collectors/clickhouse/summary_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/summary_test.go rename to programs/diagnostics/internal/collectors/clickhouse/summary_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/system.go b/programs/diagnostics/internal/collectors/clickhouse/system.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/system.go rename to programs/diagnostics/internal/collectors/clickhouse/system.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/system_test.go b/programs/diagnostics/internal/collectors/clickhouse/system_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/system_test.go rename to programs/diagnostics/internal/collectors/clickhouse/system_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/zookeeper.go b/programs/diagnostics/internal/collectors/clickhouse/zookeeper.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/zookeeper.go rename to programs/diagnostics/internal/collectors/clickhouse/zookeeper.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/clickhouse/zookeeper_test.go b/programs/diagnostics/internal/collectors/clickhouse/zookeeper_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/clickhouse/zookeeper_test.go rename to programs/diagnostics/internal/collectors/clickhouse/zookeeper_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/registry.go b/programs/diagnostics/internal/collectors/registry.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/registry.go rename to programs/diagnostics/internal/collectors/registry.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/registry_test.go b/programs/diagnostics/internal/collectors/registry_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/registry_test.go rename to programs/diagnostics/internal/collectors/registry_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/system/command.go b/programs/diagnostics/internal/collectors/system/command.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/system/command.go rename to programs/diagnostics/internal/collectors/system/command.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/system/command_test.go b/programs/diagnostics/internal/collectors/system/command_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/system/command_test.go rename to programs/diagnostics/internal/collectors/system/command_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/system/file.go b/programs/diagnostics/internal/collectors/system/file.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/system/file.go rename to programs/diagnostics/internal/collectors/system/file.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/system/file_test.go b/programs/diagnostics/internal/collectors/system/file_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/system/file_test.go rename to programs/diagnostics/internal/collectors/system/file_test.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/system/system.go b/programs/diagnostics/internal/collectors/system/system.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/system/system.go rename to programs/diagnostics/internal/collectors/system/system.go diff --git a/tools/clickhouse-diagnostics/internal/collectors/system/system_test.go b/programs/diagnostics/internal/collectors/system/system_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/collectors/system/system_test.go rename to programs/diagnostics/internal/collectors/system/system_test.go diff --git a/tools/clickhouse-diagnostics/internal/outputs/file/simple.go b/programs/diagnostics/internal/outputs/file/simple.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/outputs/file/simple.go rename to programs/diagnostics/internal/outputs/file/simple.go diff --git a/tools/clickhouse-diagnostics/internal/outputs/file/simple_test.go b/programs/diagnostics/internal/outputs/file/simple_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/outputs/file/simple_test.go rename to programs/diagnostics/internal/outputs/file/simple_test.go diff --git a/tools/clickhouse-diagnostics/internal/outputs/registry.go b/programs/diagnostics/internal/outputs/registry.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/outputs/registry.go rename to programs/diagnostics/internal/outputs/registry.go diff --git a/tools/clickhouse-diagnostics/internal/outputs/registry_test.go b/programs/diagnostics/internal/outputs/registry_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/outputs/registry_test.go rename to programs/diagnostics/internal/outputs/registry_test.go diff --git a/tools/clickhouse-diagnostics/internal/outputs/terminal/report.go b/programs/diagnostics/internal/outputs/terminal/report.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/outputs/terminal/report.go rename to programs/diagnostics/internal/outputs/terminal/report.go diff --git a/tools/clickhouse-diagnostics/internal/platform/config/models.go b/programs/diagnostics/internal/platform/config/models.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/config/models.go rename to programs/diagnostics/internal/platform/config/models.go diff --git a/tools/clickhouse-diagnostics/internal/platform/config/models_test.go b/programs/diagnostics/internal/platform/config/models_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/config/models_test.go rename to programs/diagnostics/internal/platform/config/models_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/config/utils.go b/programs/diagnostics/internal/platform/config/utils.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/config/utils.go rename to programs/diagnostics/internal/platform/config/utils.go diff --git a/tools/clickhouse-diagnostics/internal/platform/config/utils_test.go b/programs/diagnostics/internal/platform/config/utils_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/config/utils_test.go rename to programs/diagnostics/internal/platform/config/utils_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/bundle.go b/programs/diagnostics/internal/platform/data/bundle.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/bundle.go rename to programs/diagnostics/internal/platform/data/bundle.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/bundle_test.go b/programs/diagnostics/internal/platform/data/bundle_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/bundle_test.go rename to programs/diagnostics/internal/platform/data/bundle_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/database.go b/programs/diagnostics/internal/platform/data/database.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/database.go rename to programs/diagnostics/internal/platform/data/database.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/database_test.go b/programs/diagnostics/internal/platform/data/database_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/database_test.go rename to programs/diagnostics/internal/platform/data/database_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/field.go b/programs/diagnostics/internal/platform/data/field.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/field.go rename to programs/diagnostics/internal/platform/data/field.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/file.go b/programs/diagnostics/internal/platform/data/file.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/file.go rename to programs/diagnostics/internal/platform/data/file.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/file_test.go b/programs/diagnostics/internal/platform/data/file_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/file_test.go rename to programs/diagnostics/internal/platform/data/file_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/frame.go b/programs/diagnostics/internal/platform/data/frame.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/frame.go rename to programs/diagnostics/internal/platform/data/frame.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/memory.go b/programs/diagnostics/internal/platform/data/memory.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/memory.go rename to programs/diagnostics/internal/platform/data/memory.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/memory_test.go b/programs/diagnostics/internal/platform/data/memory_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/memory_test.go rename to programs/diagnostics/internal/platform/data/memory_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/data/misc.go b/programs/diagnostics/internal/platform/data/misc.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/data/misc.go rename to programs/diagnostics/internal/platform/data/misc.go diff --git a/tools/clickhouse-diagnostics/internal/platform/database/native.go b/programs/diagnostics/internal/platform/database/native.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/database/native.go rename to programs/diagnostics/internal/platform/database/native.go diff --git a/tools/clickhouse-diagnostics/internal/platform/database/native_test.go b/programs/diagnostics/internal/platform/database/native_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/database/native_test.go rename to programs/diagnostics/internal/platform/database/native_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/manager.go b/programs/diagnostics/internal/platform/manager.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/manager.go rename to programs/diagnostics/internal/platform/manager.go diff --git a/tools/clickhouse-diagnostics/internal/platform/manager_test.go b/programs/diagnostics/internal/platform/manager_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/manager_test.go rename to programs/diagnostics/internal/platform/manager_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/test/data.go b/programs/diagnostics/internal/platform/test/data.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/test/data.go rename to programs/diagnostics/internal/platform/test/data.go diff --git a/tools/clickhouse-diagnostics/internal/platform/test/env.go b/programs/diagnostics/internal/platform/test/env.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/test/env.go rename to programs/diagnostics/internal/platform/test/env.go diff --git a/tools/clickhouse-diagnostics/internal/platform/utils/file.go b/programs/diagnostics/internal/platform/utils/file.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/utils/file.go rename to programs/diagnostics/internal/platform/utils/file.go diff --git a/tools/clickhouse-diagnostics/internal/platform/utils/file_test.go b/programs/diagnostics/internal/platform/utils/file_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/utils/file_test.go rename to programs/diagnostics/internal/platform/utils/file_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/utils/process.go b/programs/diagnostics/internal/platform/utils/process.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/utils/process.go rename to programs/diagnostics/internal/platform/utils/process.go diff --git a/tools/clickhouse-diagnostics/internal/platform/utils/process_test.go b/programs/diagnostics/internal/platform/utils/process_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/utils/process_test.go rename to programs/diagnostics/internal/platform/utils/process_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/utils/slices.go b/programs/diagnostics/internal/platform/utils/slices.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/utils/slices.go rename to programs/diagnostics/internal/platform/utils/slices.go diff --git a/tools/clickhouse-diagnostics/internal/platform/utils/slices_test.go b/programs/diagnostics/internal/platform/utils/slices_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/utils/slices_test.go rename to programs/diagnostics/internal/platform/utils/slices_test.go diff --git a/tools/clickhouse-diagnostics/internal/platform/utils/time.go b/programs/diagnostics/internal/platform/utils/time.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/platform/utils/time.go rename to programs/diagnostics/internal/platform/utils/time.go diff --git a/tools/clickhouse-diagnostics/internal/runner.go b/programs/diagnostics/internal/runner.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/runner.go rename to programs/diagnostics/internal/runner.go diff --git a/tools/clickhouse-diagnostics/internal/runner_test.go b/programs/diagnostics/internal/runner_test.go similarity index 100% rename from tools/clickhouse-diagnostics/internal/runner_test.go rename to programs/diagnostics/internal/runner_test.go diff --git a/tools/clickhouse-diagnostics/main.go b/programs/diagnostics/main.go similarity index 100% rename from tools/clickhouse-diagnostics/main.go rename to programs/diagnostics/main.go diff --git a/tools/clickhouse-diagnostics/testdata/configs/include/xml/server-include.xml b/programs/diagnostics/testdata/configs/include/xml/server-include.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/include/xml/server-include.xml rename to programs/diagnostics/testdata/configs/include/xml/server-include.xml diff --git a/tools/clickhouse-diagnostics/testdata/configs/include/xml/user-include.xml b/programs/diagnostics/testdata/configs/include/xml/user-include.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/include/xml/user-include.xml rename to programs/diagnostics/testdata/configs/include/xml/user-include.xml diff --git a/tools/clickhouse-diagnostics/testdata/configs/include/yaml/server-include.yaml b/programs/diagnostics/testdata/configs/include/yaml/server-include.yaml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/include/yaml/server-include.yaml rename to programs/diagnostics/testdata/configs/include/yaml/server-include.yaml diff --git a/tools/clickhouse-diagnostics/testdata/configs/include/yaml/user-include.yaml b/programs/diagnostics/testdata/configs/include/yaml/user-include.yaml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/include/yaml/user-include.yaml rename to programs/diagnostics/testdata/configs/include/yaml/user-include.yaml diff --git a/tools/clickhouse-diagnostics/testdata/configs/xml/config.xml b/programs/diagnostics/testdata/configs/xml/config.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/xml/config.xml rename to programs/diagnostics/testdata/configs/xml/config.xml diff --git a/tools/clickhouse-diagnostics/testdata/configs/xml/users.d/default-password.xml b/programs/diagnostics/testdata/configs/xml/users.d/default-password.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/xml/users.d/default-password.xml rename to programs/diagnostics/testdata/configs/xml/users.d/default-password.xml diff --git a/tools/clickhouse-diagnostics/testdata/configs/xml/users.xml b/programs/diagnostics/testdata/configs/xml/users.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/xml/users.xml rename to programs/diagnostics/testdata/configs/xml/users.xml diff --git a/tools/clickhouse-diagnostics/testdata/configs/yaml/config.yaml b/programs/diagnostics/testdata/configs/yaml/config.yaml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/yaml/config.yaml rename to programs/diagnostics/testdata/configs/yaml/config.yaml diff --git a/tools/clickhouse-diagnostics/testdata/configs/yaml/users.d/default-password.yaml b/programs/diagnostics/testdata/configs/yaml/users.d/default-password.yaml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/yaml/users.d/default-password.yaml rename to programs/diagnostics/testdata/configs/yaml/users.d/default-password.yaml diff --git a/tools/clickhouse-diagnostics/testdata/configs/yaml/users.yaml b/programs/diagnostics/testdata/configs/yaml/users.yaml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/yaml/users.yaml rename to programs/diagnostics/testdata/configs/yaml/users.yaml diff --git a/tools/clickhouse-diagnostics/testdata/configs/yandex_xml/config.xml b/programs/diagnostics/testdata/configs/yandex_xml/config.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/configs/yandex_xml/config.xml rename to programs/diagnostics/testdata/configs/yandex_xml/config.xml diff --git a/tools/clickhouse-diagnostics/testdata/docker/admin.xml b/programs/diagnostics/testdata/docker/admin.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/docker/admin.xml rename to programs/diagnostics/testdata/docker/admin.xml diff --git a/tools/clickhouse-diagnostics/testdata/docker/custom.xml b/programs/diagnostics/testdata/docker/custom.xml similarity index 100% rename from tools/clickhouse-diagnostics/testdata/docker/custom.xml rename to programs/diagnostics/testdata/docker/custom.xml diff --git a/tools/clickhouse-diagnostics/testdata/logs/var/logs/clickhouse-server.err.log b/programs/diagnostics/testdata/logs/var/logs/clickhouse-server.err.log similarity index 100% rename from tools/clickhouse-diagnostics/testdata/logs/var/logs/clickhouse-server.err.log rename to programs/diagnostics/testdata/logs/var/logs/clickhouse-server.err.log diff --git a/tools/clickhouse-diagnostics/testdata/logs/var/logs/clickhouse-server.log b/programs/diagnostics/testdata/logs/var/logs/clickhouse-server.log similarity index 100% rename from tools/clickhouse-diagnostics/testdata/logs/var/logs/clickhouse-server.log rename to programs/diagnostics/testdata/logs/var/logs/clickhouse-server.log diff --git a/tools/clickhouse-diagnostics/testdata/logs/var/logs/clickhouse-server.log.gz b/programs/diagnostics/testdata/logs/var/logs/clickhouse-server.log.gz similarity index 100% rename from tools/clickhouse-diagnostics/testdata/logs/var/logs/clickhouse-server.log.gz rename to programs/diagnostics/testdata/logs/var/logs/clickhouse-server.log.gz From 51556704e053c981f5a7b7c310adc8a74befc4cc Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Tue, 14 Jun 2022 12:57:04 +0200 Subject: [PATCH 472/525] Rename module to reflect the current state --- programs/diagnostics/Makefile | 3 ++- programs/diagnostics/README.md | 2 +- programs/diagnostics/cmd/collect.go | 23 +++++++++-------- programs/diagnostics/cmd/help.go | 11 ++++---- programs/diagnostics/cmd/params/params.go | 7 +++--- .../diagnostics/cmd/params/params_test.go | 9 ++++--- programs/diagnostics/cmd/root.go | 13 +++++----- programs/diagnostics/go.mod | 2 +- .../internal/collectors/clickhouse/config.go | 13 +++++----- .../collectors/clickhouse/config_test.go | 11 ++++---- .../internal/collectors/clickhouse/db_logs.go | 8 +++--- .../collectors/clickhouse/db_logs_test.go | 11 ++++---- .../internal/collectors/clickhouse/logs.go | 11 ++++---- .../collectors/clickhouse/logs_test.go | 13 +++++----- .../internal/collectors/clickhouse/summary.go | 13 +++++----- .../collectors/clickhouse/summary_test.go | 11 ++++---- .../internal/collectors/clickhouse/system.go | 11 ++++---- .../collectors/clickhouse/system_test.go | 13 +++++----- .../collectors/clickhouse/zookeeper.go | 11 ++++---- .../collectors/clickhouse/zookeeper_test.go | 13 +++++----- .../internal/collectors/registry.go | 5 ++-- .../internal/collectors/registry_test.go | 11 ++++---- .../internal/collectors/system/command.go | 11 ++++---- .../collectors/system/command_test.go | 11 ++++---- .../internal/collectors/system/file.go | 11 ++++---- .../internal/collectors/system/file_test.go | 11 ++++---- .../internal/collectors/system/system.go | 11 ++++---- .../internal/collectors/system/system_test.go | 11 ++++---- .../internal/outputs/file/simple.go | 15 +++++------ .../internal/outputs/file/simple_test.go | 11 ++++---- .../diagnostics/internal/outputs/registry.go | 5 ++-- .../internal/outputs/registry_test.go | 9 ++++--- .../internal/outputs/terminal/report.go | 9 ++++--- .../internal/platform/config/models.go | 3 ++- .../internal/platform/config/models_test.go | 5 ++-- .../internal/platform/config/utils.go | 3 ++- .../internal/platform/config/utils_test.go | 5 ++-- .../internal/platform/data/bundle_test.go | 5 ++-- .../internal/platform/data/database_test.go | 5 ++-- .../internal/platform/data/file.go | 7 +++--- .../internal/platform/data/file_test.go | 5 ++-- .../internal/platform/data/memory_test.go | 5 ++-- .../internal/platform/database/native.go | 5 ++-- .../internal/platform/database/native_test.go | 13 +++++----- .../diagnostics/internal/platform/manager.go | 5 ++-- .../internal/platform/manager_test.go | 11 ++++---- .../internal/platform/test/data.go | 7 +++--- .../internal/platform/utils/file_test.go | 5 ++-- .../internal/platform/utils/process_test.go | 11 ++++---- .../internal/platform/utils/slices_test.go | 5 ++-- programs/diagnostics/internal/runner.go | 10 ++++---- programs/diagnostics/internal/runner_test.go | 25 ++++++++++--------- programs/diagnostics/main.go | 2 +- 53 files changed, 265 insertions(+), 217 deletions(-) diff --git a/programs/diagnostics/Makefile b/programs/diagnostics/Makefile index 10d77f6c44d..349ea751213 100644 --- a/programs/diagnostics/Makefile +++ b/programs/diagnostics/Makefile @@ -5,7 +5,8 @@ BUILD_DIR=dist TIMESTAMP := $(shell date +%Y%m%d-%H%M) COMMIT := $(shell git rev-parse --short HEAD) -DEVLDFLAGS = -ldflags "-X github.com/ClickHouse/clickhouse-diagnostics/cmd.Version=v.dev-${TIMESTAMP} -X github.com/ClickHouse/clickhouse-diagnostics/cmd.Commit=${COMMIT}" +MODULE := github.com/ClickHouse/ClickHouse/programs/diagnostics +DEVLDFLAGS = -ldflags "-X ${MODULE}/cmd.Version=v.dev-${TIMESTAMP} -X ${MODULE}/cmd.Commit=${COMMIT}" # override with env variable to test other versions e.g. 21.11.10.1 CLICKHOUSE_VERSION ?= latest diff --git a/programs/diagnostics/README.md b/programs/diagnostics/README.md index 89de0afdf2c..b69a6e3a996 100644 --- a/programs/diagnostics/README.md +++ b/programs/diagnostics/README.md @@ -71,7 +71,7 @@ We currently support the following collectors. A `*` indicates this collector is - `config*` - Collects the ClickHouse configuration from the local filesystem. A best effort is made using process information if ClickHouse is not installed locally. `include_path` are also considered. - `db_logs*` - Collects the ClickHouse logs directly from the database. - `logs*` - Collects the ClickHouse logs directly from the database. -- `summary*` - Collects summary statistics on the database based on a set of known useful queries. This represents the easiest collector to extend - contributions are welcome to this set which can be found [here](https://github.com/ClickHouse/clickhouse-diagnostics/blob/main/internal/collectors/clickhouse/queries.json). +- `summary*` - Collects summary statistics on the database based on a set of known useful queries. This represents the easiest collector to extend - contributions are welcome to this set which can be found [here](https://github.com/ClickHouse/ClickHouse/blob/master/programs/diagnostics/internal/collectors/clickhouse/queries.json). - `file` - Collects files based on glob patterns. Does not collect directories. To preview files which will be collected try, `clickhouse-diagnostics collect --collectors=file --collector.file.file_pattern= --output report` - `command` - Collects the output of a user specified command. To preview output, `clickhouse-diagnostics collect --collectors=command --collector.command.command="" --output report` - `zookeeper_db` - Collects information about zookeeper using the `system.zookeeper` table, recursively iterating the zookeeper tree/table. Note: changing the default parameter values can cause extremely high load to be placed on the database. Use with caution. By default, uses the glob `/clickhouse/{task_queue}/**` to match zookeeper paths and iterates to a max depth of 8. diff --git a/programs/diagnostics/cmd/collect.go b/programs/diagnostics/cmd/collect.go index e2228407541..503d8e41fb7 100644 --- a/programs/diagnostics/cmd/collect.go +++ b/programs/diagnostics/cmd/collect.go @@ -2,21 +2,22 @@ package cmd import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/cmd/params" - "github.com/ClickHouse/clickhouse-diagnostics/internal" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/system" - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs/file" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs/terminal" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" + "os" + "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/cmd/params" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/system" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs/file" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs/terminal" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" "github.com/rs/zerolog/log" "github.com/spf13/cobra" "github.com/spf13/pflag" "github.com/spf13/viper" - "os" - "strings" ) var id string diff --git a/programs/diagnostics/cmd/help.go b/programs/diagnostics/cmd/help.go index ba15fb8e1b1..750576dda25 100644 --- a/programs/diagnostics/cmd/help.go +++ b/programs/diagnostics/cmd/help.go @@ -2,13 +2,14 @@ package cmd import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/cmd/params" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" + "os" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/cmd/params" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" "github.com/rs/zerolog/log" "github.com/spf13/cobra" - "os" ) var cHelp = params.StringOptionsVar{ diff --git a/programs/diagnostics/cmd/params/params.go b/programs/diagnostics/cmd/params/params.go index 5d2bdc5fbe8..c4464aab5d2 100644 --- a/programs/diagnostics/cmd/params/params.go +++ b/programs/diagnostics/cmd/params/params.go @@ -4,10 +4,11 @@ import ( "bytes" "encoding/csv" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/spf13/cobra" "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/spf13/cobra" ) type cliParamType uint8 diff --git a/programs/diagnostics/cmd/params/params_test.go b/programs/diagnostics/cmd/params/params_test.go index 80a8b039d36..7671506ba59 100644 --- a/programs/diagnostics/cmd/params/params_test.go +++ b/programs/diagnostics/cmd/params/params_test.go @@ -1,13 +1,14 @@ package params_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/cmd/params" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/spf13/cobra" - "github.com/stretchr/testify/require" "os" "sort" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/cmd/params" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/spf13/cobra" + "github.com/stretchr/testify/require" ) var conf = map[string]config.Configuration{ diff --git a/programs/diagnostics/cmd/root.go b/programs/diagnostics/cmd/root.go index b6d860df76a..4cf329d5438 100644 --- a/programs/diagnostics/cmd/root.go +++ b/programs/diagnostics/cmd/root.go @@ -2,17 +2,18 @@ package cmd import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/pkg/errors" - "github.com/rs/zerolog" - "github.com/rs/zerolog/log" - "github.com/spf13/cobra" - "github.com/spf13/viper" "net/http" _ "net/http/pprof" "os" "strings" "time" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/pkg/errors" + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" + "github.com/spf13/cobra" + "github.com/spf13/viper" ) func enableDebug() { diff --git a/programs/diagnostics/go.mod b/programs/diagnostics/go.mod index 1672cb93817..19fc2ec8202 100644 --- a/programs/diagnostics/go.mod +++ b/programs/diagnostics/go.mod @@ -1,4 +1,4 @@ -module github.com/ClickHouse/clickhouse-diagnostics +module github.com/ClickHouse/ClickHouse/programs/diagnostics go 1.17 diff --git a/programs/diagnostics/internal/collectors/clickhouse/config.go b/programs/diagnostics/internal/collectors/clickhouse/config.go index f6f2d441ed2..92368bce6f3 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/config.go +++ b/programs/diagnostics/internal/collectors/clickhouse/config.go @@ -2,13 +2,14 @@ package clickhouse import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/pkg/errors" "path/filepath" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/pkg/errors" ) type ConfigCollector struct { diff --git a/programs/diagnostics/internal/collectors/clickhouse/config_test.go b/programs/diagnostics/internal/collectors/clickhouse/config_test.go index 67205fb9384..355cbb65620 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/config_test.go +++ b/programs/diagnostics/internal/collectors/clickhouse/config_test.go @@ -3,15 +3,16 @@ package clickhouse_test import ( "encoding/xml" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/stretchr/testify/require" "io" "os" "path" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/stretchr/testify/require" ) func TestConfigConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/clickhouse/db_logs.go b/programs/diagnostics/internal/collectors/clickhouse/db_logs.go index 23a47c33c7f..3253f504c1b 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/db_logs.go +++ b/programs/diagnostics/internal/collectors/clickhouse/db_logs.go @@ -1,10 +1,10 @@ package clickhouse import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/pkg/errors" ) diff --git a/programs/diagnostics/internal/collectors/clickhouse/db_logs_test.go b/programs/diagnostics/internal/collectors/clickhouse/db_logs_test.go index 9c403de281a..3fc585f3352 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/db_logs_test.go +++ b/programs/diagnostics/internal/collectors/clickhouse/db_logs_test.go @@ -1,12 +1,13 @@ package clickhouse_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" ) func TestDbLogsConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/clickhouse/logs.go b/programs/diagnostics/internal/collectors/clickhouse/logs.go index 8d01c858947..8436a392c47 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/logs.go +++ b/programs/diagnostics/internal/collectors/clickhouse/logs.go @@ -2,12 +2,13 @@ package clickhouse import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" "path/filepath" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" ) // This collector collects logs diff --git a/programs/diagnostics/internal/collectors/clickhouse/logs_test.go b/programs/diagnostics/internal/collectors/clickhouse/logs_test.go index dd94997c465..5f0be734445 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/logs_test.go +++ b/programs/diagnostics/internal/collectors/clickhouse/logs_test.go @@ -2,15 +2,16 @@ package clickhouse_test import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" "os" "path" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" ) func TestLogsConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/clickhouse/summary.go b/programs/diagnostics/internal/collectors/clickhouse/summary.go index 603fc954642..0b6dd3aff20 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/summary.go +++ b/programs/diagnostics/internal/collectors/clickhouse/summary.go @@ -4,14 +4,15 @@ import ( "bytes" _ "embed" "encoding/json" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/Masterminds/semver" - "github.com/pkg/errors" "strings" "text/template" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/Masterminds/semver" + "github.com/pkg/errors" ) // This collector collects the system db from database diff --git a/programs/diagnostics/internal/collectors/clickhouse/summary_test.go b/programs/diagnostics/internal/collectors/clickhouse/summary_test.go index 7c15cd58a1e..92945d987ed 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/summary_test.go +++ b/programs/diagnostics/internal/collectors/clickhouse/summary_test.go @@ -1,12 +1,13 @@ package clickhouse_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" ) func TestSummaryConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/clickhouse/system.go b/programs/diagnostics/internal/collectors/clickhouse/system.go index b370a3ab1df..d47cfd924f3 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/system.go +++ b/programs/diagnostics/internal/collectors/clickhouse/system.go @@ -2,11 +2,12 @@ package clickhouse import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" "github.com/pkg/errors" ) diff --git a/programs/diagnostics/internal/collectors/clickhouse/system_test.go b/programs/diagnostics/internal/collectors/clickhouse/system_test.go index a11bbd75843..d1b9a6e7859 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/system_test.go +++ b/programs/diagnostics/internal/collectors/clickhouse/system_test.go @@ -1,13 +1,14 @@ package clickhouse_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" ) func TestSystemConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/clickhouse/zookeeper.go b/programs/diagnostics/internal/collectors/clickhouse/zookeeper.go index cd7cd8bfc6c..78aefeaa0c1 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/zookeeper.go +++ b/programs/diagnostics/internal/collectors/clickhouse/zookeeper.go @@ -2,14 +2,15 @@ package clickhouse import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/bmatcuk/doublestar/v4" "github.com/pkg/errors" "github.com/rs/zerolog/log" - "strings" ) // This collector collects the system zookeeper db diff --git a/programs/diagnostics/internal/collectors/clickhouse/zookeeper_test.go b/programs/diagnostics/internal/collectors/clickhouse/zookeeper_test.go index 8d53d044e76..3e56f6200f0 100644 --- a/programs/diagnostics/internal/collectors/clickhouse/zookeeper_test.go +++ b/programs/diagnostics/internal/collectors/clickhouse/zookeeper_test.go @@ -1,13 +1,14 @@ package clickhouse_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" ) func TestZookeeperConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/registry.go b/programs/diagnostics/internal/collectors/registry.go index 29eb1f5939c..5611f947466 100644 --- a/programs/diagnostics/internal/collectors/registry.go +++ b/programs/diagnostics/internal/collectors/registry.go @@ -2,8 +2,9 @@ package collectors import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/pkg/errors" "github.com/rs/zerolog/log" ) diff --git a/programs/diagnostics/internal/collectors/registry_test.go b/programs/diagnostics/internal/collectors/registry_test.go index 9f920f4b5c6..eccc5f2265d 100644 --- a/programs/diagnostics/internal/collectors/registry_test.go +++ b/programs/diagnostics/internal/collectors/registry_test.go @@ -1,12 +1,13 @@ package collectors_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/system" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/system" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/stretchr/testify/require" ) func TestGetCollectorNames(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/system/command.go b/programs/diagnostics/internal/collectors/system/command.go index 95a958ec6ce..ba4dd1e996c 100644 --- a/programs/diagnostics/internal/collectors/system/command.go +++ b/programs/diagnostics/internal/collectors/system/command.go @@ -2,13 +2,14 @@ package system import ( "bytes" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "os/exec" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/google/shlex" "github.com/pkg/errors" - "os/exec" ) // This collector runs a user specified command and collects it to a file diff --git a/programs/diagnostics/internal/collectors/system/command_test.go b/programs/diagnostics/internal/collectors/system/command_test.go index e3d04cebe21..7de00cdabf4 100644 --- a/programs/diagnostics/internal/collectors/system/command_test.go +++ b/programs/diagnostics/internal/collectors/system/command_test.go @@ -2,12 +2,13 @@ package system_test import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/system" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/system" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/stretchr/testify/require" ) func TestCommandConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/system/file.go b/programs/diagnostics/internal/collectors/system/file.go index 68e96314d1d..cda91636c52 100644 --- a/programs/diagnostics/internal/collectors/system/file.go +++ b/programs/diagnostics/internal/collectors/system/file.go @@ -1,14 +1,15 @@ package system import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "os" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/pkg/errors" "github.com/rs/zerolog/log" "github.com/yargevad/filepathx" - "os" ) // This collector collects arbitrary user files diff --git a/programs/diagnostics/internal/collectors/system/file_test.go b/programs/diagnostics/internal/collectors/system/file_test.go index f52c190d087..5b1d5b3a92f 100644 --- a/programs/diagnostics/internal/collectors/system/file_test.go +++ b/programs/diagnostics/internal/collectors/system/file_test.go @@ -1,12 +1,13 @@ package system_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/system" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/system" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/stretchr/testify/require" ) func TestFileConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/collectors/system/system.go b/programs/diagnostics/internal/collectors/system/system.go index b2aaee976ba..0bf612b664c 100644 --- a/programs/diagnostics/internal/collectors/system/system.go +++ b/programs/diagnostics/internal/collectors/system/system.go @@ -1,15 +1,16 @@ package system import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/elastic/gosigar" "github.com/jaypipes/ghw" "github.com/matishsiao/goInfo" "github.com/pkg/errors" - "strings" ) // This collector collects the system overview diff --git a/programs/diagnostics/internal/collectors/system/system_test.go b/programs/diagnostics/internal/collectors/system/system_test.go index 35777f6a298..fb1e16bd1ed 100644 --- a/programs/diagnostics/internal/collectors/system/system_test.go +++ b/programs/diagnostics/internal/collectors/system/system_test.go @@ -1,12 +1,13 @@ package system_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/system" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/system" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/stretchr/testify/require" ) func TestSystemConfiguration(t *testing.T) { diff --git a/programs/diagnostics/internal/outputs/file/simple.go b/programs/diagnostics/internal/outputs/file/simple.go index d19c1222fe1..f91ec9f74ee 100644 --- a/programs/diagnostics/internal/outputs/file/simple.go +++ b/programs/diagnostics/internal/outputs/file/simple.go @@ -4,18 +4,19 @@ import ( "context" "encoding/csv" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/mholt/archiver/v4" - "github.com/pkg/errors" - "github.com/rs/zerolog/log" "os" "path" "path/filepath" "strconv" "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/mholt/archiver/v4" + "github.com/pkg/errors" + "github.com/rs/zerolog/log" ) const OutputName = "simple" diff --git a/programs/diagnostics/internal/outputs/file/simple_test.go b/programs/diagnostics/internal/outputs/file/simple_test.go index dfa9bc6d80a..471a1c70cc1 100644 --- a/programs/diagnostics/internal/outputs/file/simple_test.go +++ b/programs/diagnostics/internal/outputs/file/simple_test.go @@ -4,16 +4,17 @@ import ( "bufio" "encoding/xml" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs/file" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" "io" "os" "path" "strings" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs/file" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" ) var clusterFrame = test.NewFakeDataFrame("clusters", []string{"cluster", "shard_num", "shard_weight", "replica_num", "host_name", "host_address", "port", "is_local", "user", "default_database", "errors_count", "slowdowns_count", "estimated_recovery_time"}, diff --git a/programs/diagnostics/internal/outputs/registry.go b/programs/diagnostics/internal/outputs/registry.go index 8782ecfda4f..0187cd9105d 100644 --- a/programs/diagnostics/internal/outputs/registry.go +++ b/programs/diagnostics/internal/outputs/registry.go @@ -2,8 +2,9 @@ package outputs import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/pkg/errors" "github.com/rs/zerolog/log" ) diff --git a/programs/diagnostics/internal/outputs/registry_test.go b/programs/diagnostics/internal/outputs/registry_test.go index 0b0fe3597af..ba8408e5a59 100644 --- a/programs/diagnostics/internal/outputs/registry_test.go +++ b/programs/diagnostics/internal/outputs/registry_test.go @@ -1,11 +1,12 @@ package outputs_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs" - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs/file" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs/terminal" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs/file" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs/terminal" + "github.com/stretchr/testify/require" ) func TestGetOutputNames(t *testing.T) { diff --git a/programs/diagnostics/internal/outputs/terminal/report.go b/programs/diagnostics/internal/outputs/terminal/report.go index a601e10687a..8337f542457 100644 --- a/programs/diagnostics/internal/outputs/terminal/report.go +++ b/programs/diagnostics/internal/outputs/terminal/report.go @@ -3,12 +3,13 @@ package terminal import ( "bufio" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "os" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/olekukonko/tablewriter" "github.com/pkg/errors" - "os" ) const OutputName = "report" diff --git a/programs/diagnostics/internal/platform/config/models.go b/programs/diagnostics/internal/platform/config/models.go index 52b2489886d..6c76b8f149b 100644 --- a/programs/diagnostics/internal/platform/config/models.go +++ b/programs/diagnostics/internal/platform/config/models.go @@ -2,8 +2,9 @@ package config import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" ) type ConfigParam interface { diff --git a/programs/diagnostics/internal/platform/config/models_test.go b/programs/diagnostics/internal/platform/config/models_test.go index b87e66408ef..916d20ec28b 100644 --- a/programs/diagnostics/internal/platform/config/models_test.go +++ b/programs/diagnostics/internal/platform/config/models_test.go @@ -1,9 +1,10 @@ package config_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/stretchr/testify/require" ) var conf = config.Configuration{ diff --git a/programs/diagnostics/internal/platform/config/utils.go b/programs/diagnostics/internal/platform/config/utils.go index 127ff95570e..5f84c38d4f4 100644 --- a/programs/diagnostics/internal/platform/config/utils.go +++ b/programs/diagnostics/internal/platform/config/utils.go @@ -2,7 +2,8 @@ package config import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" ) func ReadStringListValues(conf Configuration, paramName string) ([]string, error) { diff --git a/programs/diagnostics/internal/platform/config/utils_test.go b/programs/diagnostics/internal/platform/config/utils_test.go index 0f9791eb60e..9e03e5e69d2 100644 --- a/programs/diagnostics/internal/platform/config/utils_test.go +++ b/programs/diagnostics/internal/platform/config/utils_test.go @@ -1,9 +1,10 @@ package config_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/stretchr/testify/require" ) func TestReadStringListValues(t *testing.T) { diff --git a/programs/diagnostics/internal/platform/data/bundle_test.go b/programs/diagnostics/internal/platform/data/bundle_test.go index 5438a50ae0a..ff9cfc2cf56 100644 --- a/programs/diagnostics/internal/platform/data/bundle_test.go +++ b/programs/diagnostics/internal/platform/data/bundle_test.go @@ -1,10 +1,11 @@ package data_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/pkg/errors" "github.com/stretchr/testify/require" - "testing" ) func TestBundleError(t *testing.T) { diff --git a/programs/diagnostics/internal/platform/data/database_test.go b/programs/diagnostics/internal/platform/data/database_test.go index 7491f016a67..57d89e78efc 100644 --- a/programs/diagnostics/internal/platform/data/database_test.go +++ b/programs/diagnostics/internal/platform/data/database_test.go @@ -2,10 +2,11 @@ package data_test import ( "database/sql" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/DATA-DOG/go-sqlmock" "github.com/stretchr/testify/require" - "testing" ) func TestString(t *testing.T) { diff --git a/programs/diagnostics/internal/platform/data/file.go b/programs/diagnostics/internal/platform/data/file.go index 8bdde8a6437..19bf5884876 100644 --- a/programs/diagnostics/internal/platform/data/file.go +++ b/programs/diagnostics/internal/platform/data/file.go @@ -3,14 +3,15 @@ package data import ( "bufio" "encoding/xml" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/pkg/errors" - "gopkg.in/yaml.v3" "io/ioutil" "os" "path" "path/filepath" "regexp" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/pkg/errors" + "gopkg.in/yaml.v3" ) type File interface { diff --git a/programs/diagnostics/internal/platform/data/file_test.go b/programs/diagnostics/internal/platform/data/file_test.go index 49f0bb9cf72..d273987d327 100644 --- a/programs/diagnostics/internal/platform/data/file_test.go +++ b/programs/diagnostics/internal/platform/data/file_test.go @@ -2,14 +2,15 @@ package data_test import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/stretchr/testify/require" "io/ioutil" "os" "path" "path/filepath" "strings" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/stretchr/testify/require" ) func TestNextFileDirectoryFrame(t *testing.T) { diff --git a/programs/diagnostics/internal/platform/data/memory_test.go b/programs/diagnostics/internal/platform/data/memory_test.go index 3fc2f6822ef..fcc02e37d32 100644 --- a/programs/diagnostics/internal/platform/data/memory_test.go +++ b/programs/diagnostics/internal/platform/data/memory_test.go @@ -1,9 +1,10 @@ package data_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/stretchr/testify/require" ) func TestNextMemoryFrame(t *testing.T) { diff --git a/programs/diagnostics/internal/platform/database/native.go b/programs/diagnostics/internal/platform/database/native.go index f167fb5540c..e512a634fbf 100644 --- a/programs/diagnostics/internal/platform/database/native.go +++ b/programs/diagnostics/internal/platform/database/native.go @@ -3,10 +3,11 @@ package database import ( "database/sql" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" _ "github.com/ClickHouse/clickhouse-go/v2" "github.com/pkg/errors" - "strings" ) type ClickhouseNativeClient struct { diff --git a/programs/diagnostics/internal/platform/database/native_test.go b/programs/diagnostics/internal/platform/database/native_test.go index 1e936fe2449..8c317ab7f12 100644 --- a/programs/diagnostics/internal/platform/database/native_test.go +++ b/programs/diagnostics/internal/platform/database/native_test.go @@ -3,16 +3,17 @@ package database_test import ( "context" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/database" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" - "github.com/testcontainers/testcontainers-go" - "github.com/testcontainers/testcontainers-go/wait" "os" "path" "strconv" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/database" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" ) func TestMain(m *testing.M) { diff --git a/programs/diagnostics/internal/platform/manager.go b/programs/diagnostics/internal/platform/manager.go index e23a534a6fc..b4435b62ea2 100644 --- a/programs/diagnostics/internal/platform/manager.go +++ b/programs/diagnostics/internal/platform/manager.go @@ -2,9 +2,10 @@ package platform import ( "errors" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/database" "sync" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/database" ) var once sync.Once diff --git a/programs/diagnostics/internal/platform/manager_test.go b/programs/diagnostics/internal/platform/manager_test.go index 09316052b53..e63ec6af6a7 100644 --- a/programs/diagnostics/internal/platform/manager_test.go +++ b/programs/diagnostics/internal/platform/manager_test.go @@ -3,15 +3,16 @@ package platform_test import ( "context" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/stretchr/testify/require" - "github.com/testcontainers/testcontainers-go" - "github.com/testcontainers/testcontainers-go/wait" "os" "path" "strconv" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" ) func TestMain(m *testing.M) { diff --git a/programs/diagnostics/internal/platform/test/data.go b/programs/diagnostics/internal/platform/test/data.go index 44ce7c70908..7710e9a69a1 100644 --- a/programs/diagnostics/internal/platform/test/data.go +++ b/programs/diagnostics/internal/platform/test/data.go @@ -2,11 +2,12 @@ package test import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/pkg/errors" "sort" "strings" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/pkg/errors" ) type fakeClickhouseClient struct { diff --git a/programs/diagnostics/internal/platform/utils/file_test.go b/programs/diagnostics/internal/platform/utils/file_test.go index 51c8ed2e9c5..8d0430090c9 100644 --- a/programs/diagnostics/internal/platform/utils/file_test.go +++ b/programs/diagnostics/internal/platform/utils/file_test.go @@ -2,11 +2,12 @@ package utils_test import ( "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/stretchr/testify/require" "os" "path" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/stretchr/testify/require" ) func TestFileExists(t *testing.T) { diff --git a/programs/diagnostics/internal/platform/utils/process_test.go b/programs/diagnostics/internal/platform/utils/process_test.go index 45bbc18bdef..0c7541f4abb 100644 --- a/programs/diagnostics/internal/platform/utils/process_test.go +++ b/programs/diagnostics/internal/platform/utils/process_test.go @@ -3,14 +3,15 @@ package utils_test import ( "context" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/stretchr/testify/require" - "github.com/testcontainers/testcontainers-go" - "github.com/testcontainers/testcontainers-go/wait" "os" "path" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" ) func TestMain(m *testing.M) { diff --git a/programs/diagnostics/internal/platform/utils/slices_test.go b/programs/diagnostics/internal/platform/utils/slices_test.go index 18965415013..ea5c1c81dcc 100644 --- a/programs/diagnostics/internal/platform/utils/slices_test.go +++ b/programs/diagnostics/internal/platform/utils/slices_test.go @@ -1,9 +1,10 @@ package utils_test import ( - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/stretchr/testify/require" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/stretchr/testify/require" ) func TestIntersection(t *testing.T) { diff --git a/programs/diagnostics/internal/runner.go b/programs/diagnostics/internal/runner.go index d2147cd1c65..6960cf1cd23 100644 --- a/programs/diagnostics/internal/runner.go +++ b/programs/diagnostics/internal/runner.go @@ -1,11 +1,11 @@ package internal import ( - c "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - o "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/data" + c "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + o "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/data" "github.com/pkg/errors" "github.com/rs/zerolog/log" ) diff --git a/programs/diagnostics/internal/runner_test.go b/programs/diagnostics/internal/runner_test.go index a6e7dbe4cbc..81fe9b70a2b 100644 --- a/programs/diagnostics/internal/runner_test.go +++ b/programs/diagnostics/internal/runner_test.go @@ -3,23 +3,24 @@ package internal_test import ( "context" "fmt" - "github.com/ClickHouse/clickhouse-diagnostics/internal" - "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/clickhouse" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/collectors/system" - "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs" - _ "github.com/ClickHouse/clickhouse-diagnostics/internal/outputs/file" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/config" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/test" - "github.com/ClickHouse/clickhouse-diagnostics/internal/platform/utils" - "github.com/stretchr/testify/require" - "github.com/testcontainers/testcontainers-go" - "github.com/testcontainers/testcontainers-go/wait" "io/ioutil" "os" "path" "strconv" "testing" + + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/clickhouse" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/collectors/system" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs" + _ "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/outputs/file" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/config" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/test" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/internal/platform/utils" + "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" ) func TestMain(m *testing.M) { diff --git a/programs/diagnostics/main.go b/programs/diagnostics/main.go index 6187ed364ef..0a849a9f520 100644 --- a/programs/diagnostics/main.go +++ b/programs/diagnostics/main.go @@ -1,7 +1,7 @@ package main import ( - "github.com/ClickHouse/clickhouse-diagnostics/cmd" + "github.com/ClickHouse/ClickHouse/programs/diagnostics/cmd" ) func main() { From a70cda9670df1950bda07f85f6c75ac4d867ced5 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Tue, 14 Jun 2022 13:05:36 +0200 Subject: [PATCH 473/525] Create a path for clickhouse-diagnostics installation --- programs/diagnostics/Makefile | 2 +- programs/diagnostics/{ => cmd/clickhouse-diagnostics}/main.go | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename programs/diagnostics/{ => cmd/clickhouse-diagnostics}/main.go (100%) diff --git a/programs/diagnostics/Makefile b/programs/diagnostics/Makefile index 349ea751213..4097cdb7a74 100644 --- a/programs/diagnostics/Makefile +++ b/programs/diagnostics/Makefile @@ -27,7 +27,7 @@ release: ## Release is delegated to goreleaser ## Build: build: ## Build a binary for local use # timestamped version - $(GOCMD) build ${DEVLDFLAGS} -o $(BINARY_NAME) . + $(GOCMD) build ${DEVLDFLAGS} -o $(BINARY_NAME) ./cmd/clickhouse-diagnostics clean: ## Remove build related file rm ${BINARY_NAME} diff --git a/programs/diagnostics/main.go b/programs/diagnostics/cmd/clickhouse-diagnostics/main.go similarity index 100% rename from programs/diagnostics/main.go rename to programs/diagnostics/cmd/clickhouse-diagnostics/main.go From 1553f678098959fc7f571ebaae3e5dbce15eacfd Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Wed, 15 Jun 2022 11:52:37 +0200 Subject: [PATCH 474/525] Can set version in Makefile --- programs/diagnostics/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/programs/diagnostics/Makefile b/programs/diagnostics/Makefile index 4097cdb7a74..0a12630ca6d 100644 --- a/programs/diagnostics/Makefile +++ b/programs/diagnostics/Makefile @@ -6,7 +6,8 @@ BUILD_DIR=dist TIMESTAMP := $(shell date +%Y%m%d-%H%M) COMMIT := $(shell git rev-parse --short HEAD) MODULE := github.com/ClickHouse/ClickHouse/programs/diagnostics -DEVLDFLAGS = -ldflags "-X ${MODULE}/cmd.Version=v.dev-${TIMESTAMP} -X ${MODULE}/cmd.Commit=${COMMIT}" +VERSION := v.dev-${TIMESTAMP} +DEVLDFLAGS = -ldflags "-X ${MODULE}/cmd.Version=${VERSION} -X ${MODULE}/cmd.Commit=${COMMIT}" # override with env variable to test other versions e.g. 21.11.10.1 CLICKHOUSE_VERSION ?= latest From 0aae60f8f13272fb49dee35bf80cf4fb09fe288c Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Tue, 28 Jun 2022 19:12:05 +0200 Subject: [PATCH 475/525] Update nfpm version --- docker/packager/binary/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/packager/binary/Dockerfile b/docker/packager/binary/Dockerfile index 995cecfebc7..ab603cd9ea4 100644 --- a/docker/packager/binary/Dockerfile +++ b/docker/packager/binary/Dockerfile @@ -97,7 +97,7 @@ RUN add-apt-repository ppa:ubuntu-toolchain-r/test --yes \ # Architecture of the image when BuildKit/buildx is used ARG TARGETARCH -ARG NFPM_VERSION=2.15.1 +ARG NFPM_VERSION=2.16.0 RUN arch=${TARGETARCH:-amd64} \ && curl -Lo /tmp/nfpm.deb "https://github.com/goreleaser/nfpm/releases/download/v${NFPM_VERSION}/nfpm_${arch}.deb" \ From 3513b4168308125685acc05e1e61a9e5a9065df3 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 30 Jun 2022 18:42:55 +0200 Subject: [PATCH 476/525] Fix linter issue --- programs/diagnostics/internal/collectors/system/system.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/diagnostics/internal/collectors/system/system.go b/programs/diagnostics/internal/collectors/system/system.go index 0bf612b664c..69d16f36b8b 100644 --- a/programs/diagnostics/internal/collectors/system/system.go +++ b/programs/diagnostics/internal/collectors/system/system.go @@ -26,7 +26,7 @@ func NewSystemCollector(m *platform.ResourceManager) *SystemCollector { } func (sc *SystemCollector) Collect(conf config.Configuration) (*data.DiagnosticBundle, error) { - conf, err := conf.ValidateConfig(sc.Configuration()) + _, err := conf.ValidateConfig(sc.Configuration()) if err != nil { return &data.DiagnosticBundle{}, err } From 27a76cb627d0692b74927a4b8046d366636b7816 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 11:44:51 +0200 Subject: [PATCH 477/525] Overwrite in encrypted disk --- src/Disks/DiskEncrypted.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Disks/DiskEncrypted.h b/src/Disks/DiskEncrypted.h index 4b6fca7ab2a..1a714395f82 100644 --- a/src/Disks/DiskEncrypted.h +++ b/src/Disks/DiskEncrypted.h @@ -6,6 +6,7 @@ #include #include #include +#include namespace DB @@ -238,6 +239,13 @@ public: SyncGuardPtr getDirectorySyncGuard(const String & path) const override; + DiskTransactionPtr createTransaction() override + { + /// Need to overwrite explicetly because this disk change + /// a lot of "delegate" methods. + return std::make_shared(*this); + } + private: String wrappedPath(const String & path) const { From ae2f586170b49e40d1f93688336c45e0fb1a712f Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Fri, 1 Jul 2022 12:18:09 +0200 Subject: [PATCH 478/525] Fix crash when granting ALL on cluster. --- src/Access/ContextAccess.cpp | 22 ++++++++++++------- .../test_access_control_on_cluster/test.py | 10 +++++++++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/Access/ContextAccess.cpp b/src/Access/ContextAccess.cpp index 221113cb425..995a46d07ca 100644 --- a/src/Access/ContextAccess.cpp +++ b/src/Access/ContextAccess.cpp @@ -412,15 +412,18 @@ bool ContextAccess::checkAccessImplHelper(AccessFlags flags, const Args &... arg return false; }; + if (is_full_access) + return access_granted(); + + if (user_was_dropped) + return access_denied("User has been dropped", ErrorCodes::UNKNOWN_USER); + if (flags & AccessType::CLUSTER && !access_control->doesOnClusterQueriesRequireClusterGrant()) flags &= ~AccessType::CLUSTER; - if (!flags || is_full_access) + if (!flags) return access_granted(); - if (!tryGetUser()) - return access_denied("User has been dropped", ErrorCodes::UNKNOWN_USER); - /// Access to temporary tables is controlled in an unusual way, not like normal tables. /// Creating of temporary tables is controlled by AccessType::CREATE_TEMPORARY_TABLES grant, /// and other grants are considered as always given. @@ -600,9 +603,6 @@ void ContextAccess::checkGrantOption(const AccessRightsElements & elements) cons template bool ContextAccess::checkAdminOptionImplHelper(const Container & role_ids, const GetNameFunction & get_name_function) const { - if (!std::size(role_ids) || is_full_access) - return true; - auto show_error = [this](const String & msg, int error_code [[maybe_unused]]) { UNUSED(this); @@ -610,12 +610,18 @@ bool ContextAccess::checkAdminOptionImplHelper(const Container & role_ids, const throw Exception(getUserName() + ": " + msg, error_code); }; - if (!tryGetUser()) + if (is_full_access) + return true; + + if (user_was_dropped) { show_error("User has been dropped", ErrorCodes::UNKNOWN_USER); return false; } + if (!std::size(role_ids)) + return true; + if (isGranted(AccessType::ROLE_ADMIN)) return true; diff --git a/tests/integration/test_access_control_on_cluster/test.py b/tests/integration/test_access_control_on_cluster/test.py index 6c2331178e0..db76233a35f 100644 --- a/tests/integration/test_access_control_on_cluster/test.py +++ b/tests/integration/test_access_control_on_cluster/test.py @@ -49,3 +49,13 @@ def test_access_control_on_cluster(): assert "There is no user `Alex`" in ch1.query_and_get_error("SHOW CREATE USER Alex") assert "There is no user `Alex`" in ch2.query_and_get_error("SHOW CREATE USER Alex") assert "There is no user `Alex`" in ch3.query_and_get_error("SHOW CREATE USER Alex") + + +def test_grant_all_on_cluster(): + ch1.query("CREATE USER IF NOT EXISTS Alex ON CLUSTER 'cluster'") + ch1.query("GRANT ALL ON *.* TO Alex ON CLUSTER 'cluster'") + + assert ch1.query("SHOW GRANTS FOR Alex") == "GRANT ALL ON *.* TO Alex\n" + assert ch2.query("SHOW GRANTS FOR Alex") == "GRANT ALL ON *.* TO Alex\n" + + ch1.query("DROP USER Alex ON CLUSTER 'cluster'") From 7cc063a1d0e54aa159c6456f46b2849d2e7622c2 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Fri, 1 Jul 2022 12:08:53 +0200 Subject: [PATCH 479/525] Fix strange backport titles issues --- tests/ci/cherry_pick_utils/cherrypick.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ci/cherry_pick_utils/cherrypick.py b/tests/ci/cherry_pick_utils/cherrypick.py index 92c87800828..c844beaee88 100644 --- a/tests/ci/cherry_pick_utils/cherrypick.py +++ b/tests/ci/cherry_pick_utils/cherrypick.py @@ -165,7 +165,7 @@ class CherryPick: "user.name=robot-clickhouse", ] - title = (self._pr["title"].replace('"', r"\""),) + title = self._pr["title"].replace('"', r"\"") pr_title = f"Backport #{self._pr['number']} to {self.target_branch}: {title}" self._run(git_prefix + ["checkout", "-f", self.backport_branch]) From 2a23c39a789c581778e3e59d44431dbf22109515 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Fri, 1 Jul 2022 15:20:33 +0300 Subject: [PATCH 480/525] Remove outdated cmake documentation When it had been added, initially, it was autogenerated - #14711 Later, after documentation rework, it had been removed, in #37441. And this makes documentation out dated, and out dated documentation may provide more harm then help, so let's remove it. Also it has links to the code in github that does not contain commit SHA1, so those links may point in the wrong place. Signed-off-by: Azat Khuzhin --- docs/_includes/cmake_in_clickhouse_footer.md | 121 ---- docs/_includes/cmake_in_clickhouse_header.md | 27 - docs/en/development/cmake-in-clickhouse.md | 545 ------------------- 3 files changed, 693 deletions(-) delete mode 100644 docs/_includes/cmake_in_clickhouse_footer.md delete mode 100644 docs/_includes/cmake_in_clickhouse_header.md delete mode 100644 docs/en/development/cmake-in-clickhouse.md diff --git a/docs/_includes/cmake_in_clickhouse_footer.md b/docs/_includes/cmake_in_clickhouse_footer.md deleted file mode 100644 index bf8411ba815..00000000000 --- a/docs/_includes/cmake_in_clickhouse_footer.md +++ /dev/null @@ -1,121 +0,0 @@ - -## Developer's guide for adding new CMake options - -### Don't be obvious. Be informative. - -Bad: -```cmake -option (ENABLE_TESTS "Enables testing" OFF) -``` - -This description is quite useless as is neither gives the viewer any additional information nor explains the option purpose. - -Better: - -```cmake -option(ENABLE_TESTS "Provide unit_test_dbms target with Google.test unit tests" OFF) -``` - -If the option's purpose can't be guessed by its name, or the purpose guess may be misleading, or option has some -pre-conditions, leave a comment above the `option()` line and explain what it does. -The best way would be linking the docs page (if it exists). -The comment is parsed into a separate column (see below). - -Even better: - -```cmake -# implies ${TESTS_ARE_ENABLED} -# see tests/CMakeLists.txt for implementation detail. -option(ENABLE_TESTS "Provide unit_test_dbms target with Google.test unit tests" OFF) -``` - -### If the option's state could produce unwanted (or unusual) result, explicitly warn the user. - -Suppose you have an option that may strip debug symbols from the ClickHouse's part. -This can speed up the linking process, but produces a binary that cannot be debugged. -In that case, prefer explicitly raising a warning telling the developer that he may be doing something wrong. -Also, such options should be disabled if applies. - -Bad: -```cmake -option(STRIP_DEBUG_SYMBOLS_FUNCTIONS - "Do not generate debugger info for ClickHouse functions. - ${STRIP_DSF_DEFAULT}) - -if (STRIP_DEBUG_SYMBOLS_FUNCTIONS) - target_compile_options(clickhouse_functions PRIVATE "-g0") -endif() - -``` -Better: - -```cmake -# Provides faster linking and lower binary size. -# Tradeoff is the inability to debug some source files with e.g. gdb -# (empty stack frames and no local variables)." -option(STRIP_DEBUG_SYMBOLS_FUNCTIONS - "Do not generate debugger info for ClickHouse functions." - ${STRIP_DSF_DEFAULT}) - -if (STRIP_DEBUG_SYMBOLS_FUNCTIONS) - message(WARNING "Not generating debugger info for ClickHouse functions") - target_compile_options(clickhouse_functions PRIVATE "-g0") -endif() -``` - -### In the option's description, explain WHAT the option does rather than WHY it does something. - -The WHY explanation should be placed in the comment. -You may find that the option's name is self-descriptive. - -Bad: - -```cmake -option(ENABLE_THINLTO "Enable Thin LTO. Only applicable for clang. It's also suppressed when building with tests or sanitizers." ON) -``` - -Better: - -```cmake -# Only applicable for clang. -# Turned off when building with tests or sanitizers. -option(ENABLE_THINLTO "Clang-specific link time optimisation" ON). -``` - -### Don't assume other developers know as much as you do. - -In ClickHouse, there are many tools used that an ordinary developer may not know. If you are in doubt, give a link to -the tool's docs. It won't take much of your time. - -Bad: - -```cmake -option(ENABLE_THINLTO "Enable Thin LTO. Only applicable for clang. It's also suppressed when building with tests or sanitizers." ON) -``` - -Better (combined with the above hint): - -```cmake -# https://clang.llvm.org/docs/ThinLTO.html -# Only applicable for clang. -# Turned off when building with tests or sanitizers. -option(ENABLE_THINLTO "Clang-specific link time optimisation" ON). -``` - -Other example, bad: - -```cmake -option (USE_INCLUDE_WHAT_YOU_USE "Use 'include-what-you-use' tool" OFF) -``` - -Better: - -```cmake -# https://github.com/include-what-you-use/include-what-you-use -option (USE_INCLUDE_WHAT_YOU_USE "Reduce unneeded #include s (external tool)" OFF) -``` - -### Prefer consistent default values. - -CMake allows you to pass a plethora of values representing boolean `true/false`, e.g. `1, ON, YES, ...`. -Prefer the `ON/OFF` values, if possible. diff --git a/docs/_includes/cmake_in_clickhouse_header.md b/docs/_includes/cmake_in_clickhouse_header.md deleted file mode 100644 index 2f2e0421946..00000000000 --- a/docs/_includes/cmake_in_clickhouse_header.md +++ /dev/null @@ -1,27 +0,0 @@ -# CMake in ClickHouse - -## TL; DR How to make ClickHouse compile and link faster? - -Minimal ClickHouse build example: - -```bash -cmake .. \ - -DCMAKE_C_COMPILER=$(which clang-14) \ - -DCMAKE_CXX_COMPILER=$(which clang++-14) \ - -DCMAKE_BUILD_TYPE=Debug \ - -DENABLE_UTILS=OFF \ - -DENABLE_TESTS=OFF -``` - -## CMake files types - -1. ClickHouse's source CMake files (located in the root directory and in `/src`). -2. Arch-dependent CMake files (located in `/cmake/*os_name*`). -3. Libraries finders (search for contrib libraries, located in `/contrib/*/CMakeLists.txt`). -3. Contrib build CMake files (used instead of libraries' own CMake files, located in `/cmake/modules`) - -## List of CMake flags - -* This list is auto-generated by [this Python script](https://github.com/clickhouse/clickhouse/blob/master/docs/tools/cmake_in_clickhouse_generator.py). -* The flag name is a link to its position in the code. -* If an option's default value is itself an option, it's also a link to its position in this list. diff --git a/docs/en/development/cmake-in-clickhouse.md b/docs/en/development/cmake-in-clickhouse.md deleted file mode 100644 index 83279f5f69a..00000000000 --- a/docs/en/development/cmake-in-clickhouse.md +++ /dev/null @@ -1,545 +0,0 @@ ---- -sidebar_position: 69 -sidebar_label: CMake in ClickHouse -description: How to make ClickHouse compile and link faster ---- - -# CMake in ClickHouse - -How to make ClickHouse compile and link faster. Minimal ClickHouse build example: - -```bash -cmake .. \ - -DCMAKE_C_COMPILER=$(which clang-13) \ - -DCMAKE_CXX_COMPILER=$(which clang++-13) \ - -DCMAKE_BUILD_TYPE=Debug \ - -DENABLE_UTILS=OFF \ - -DENABLE_TESTS=OFF -``` - -## CMake files types - -1. ClickHouse source CMake files (located in the root directory and in /src). -2. Arch-dependent CMake files (located in /cmake/*os_name*). -3. Libraries finders (search for contrib libraries, located in /contrib/*/CMakeLists.txt). -4. Contrib build CMake files (used instead of libraries' own CMake files, located in /cmake/modules) - -## List of CMake flags -- The flag name is a link to its position in the code. -- If an option's default value is itself an option, it's also a link to its position in this list. - -## ClickHouse modes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDefault valueDescriptionComment
ENABLE_CLICKHOUSE_ALLONEnable all ClickHouse modes by defaultThe clickhouse binary is a multi purpose tool that contains multiple execution modes (client, server, etc.), each of them may be built and linked as a separate library. If you do not know what modes you need, turn this option OFF and enable SERVER and CLIENT only.
ENABLE_CLICKHOUSE_BENCHMARKENABLE_CLICKHOUSE_ALLQueries benchmarking modehttps://clickhouse.com/docs/en/operations/utilities/clickhouse-benchmark/
ENABLE_CLICKHOUSE_CLIENTENABLE_CLICKHOUSE_ALLClient mode (interactive tui/shell that connects to the server)
ENABLE_CLICKHOUSE_COMPRESSORENABLE_CLICKHOUSE_ALLData compressor and decompressorhttps://clickhouse.com/docs/en/operations/utilities/clickhouse-compressor/
ENABLE_CLICKHOUSE_COPIERENABLE_CLICKHOUSE_ALLInter-cluster data copying modehttps://clickhouse.com/docs/en/operations/utilities/clickhouse-copier/
ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIGENABLE_CLICKHOUSE_ALLConfigs processor (extract values etc.)
ENABLE_CLICKHOUSE_FORMATENABLE_CLICKHOUSE_ALLQueries pretty-printer and formatter with syntax highlighting
ENABLE_CLICKHOUSE_GIT_IMPORTENABLE_CLICKHOUSE_ALLA tool to analyze Git repositorieshttps://presentations.clickhouse.com/matemarketing_2020/
ENABLE_CLICKHOUSE_INSTALLOFFInstall ClickHouse without .deb/.rpm/.tgz packages (having the binary only)
ENABLE_CLICKHOUSE_KEEPERENABLE_CLICKHOUSE_ALLClickHouse alternative to ZooKeeper
ENABLE_CLICKHOUSE_KEEPER_CONVERTERENABLE_CLICKHOUSE_ALLUtil allows to convert ZooKeeper logs and snapshots into clickhouse-keeper snapshot
ENABLE_CLICKHOUSE_LIBRARY_BRIDGEENABLE_CLICKHOUSE_ALLHTTP-server working like a proxy to Library dictionary source
ENABLE_CLICKHOUSE_LOCALENABLE_CLICKHOUSE_ALLLocal files fast processing modehttps://clickhouse.com/docs/en/operations/utilities/clickhouse-local/
ENABLE_CLICKHOUSE_OBFUSCATORENABLE_CLICKHOUSE_ALLTable data obfuscator (convert real data to benchmark-ready one)https://clickhouse.com/docs/en/operations/utilities/clickhouse-obfuscator/
ENABLE_CLICKHOUSE_ODBC_BRIDGEENABLE_CLICKHOUSE_ALLHTTP-server working like a proxy to ODBC driver
ENABLE_CLICKHOUSE_SERVERENABLE_CLICKHOUSE_ALLServer mode (main mode)
ENABLE_CLICKHOUSE_STATIC_FILES_DISK_UPLOADERENABLE_CLICKHOUSE_ALLA tool to export table data files to be later put to a static files web server
- - -## External libraries -Note that ClickHouse uses forks of these libraries, see https://github.com/ClickHouse-Extras. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDefault valueDescriptionComment
ENABLE_AVX0Use AVX instructions on x86_64
ENABLE_AVX20Use AVX2 instructions on x86_64
ENABLE_AVX2_FOR_SPEC_OP0Use avx2 instructions for specific operations on x86_64
ENABLE_AVX5120Use AVX512 instructions on x86_64
ENABLE_AVX512_FOR_SPEC_OP0Use avx512 instructions for specific operations on x86_64
ENABLE_BMI0Use BMI instructions on x86_64
ENABLE_CCACHEENABLE_CCACHE_BY_DEFAULTSpeedup re-compilations using ccache (external tool)https://ccache.dev/
ENABLE_CLANG_TIDYOFFUse clang-tidy static analyzerhttps://clang.llvm.org/extra/clang-tidy/
ENABLE_PCLMULQDQ1Use pclmulqdq instructions on x86_64
ENABLE_POPCNT1Use popcnt instructions on x86_64
ENABLE_SSE411Use SSE4.1 instructions on x86_64
ENABLE_SSE421Use SSE4.2 instructions on x86_64
ENABLE_SSSE31Use SSSE3 instructions on x86_64
- - -## Other flags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDefault valueDescriptionComment
ADD_GDB_INDEX_FOR_GOLDOFFAdd .gdb-index to resulting binaries for gold linker.Ignored if lld is used
ARCH_NATIVE0Add -march=native compiler flag. This makes your binaries non-portable but more performant code may be generated. This option overrides ENABLE_* options for specific instruction set. Highly not recommended to use.
BUILD_STANDALONE_KEEPEROFFBuild keeper as small standalone binary
CLICKHOUSE_SPLIT_BINARYOFFMake several binaries (clickhouse-server, clickhouse-client etc.) instead of one bundled
COMPILER_PIPEON-pipe compiler optionLess /tmp usage, more RAM usage.
ENABLE_BUILD_PATH_MAPPINGONEnable remap file source paths in debug info, predefined preprocessor macros and __builtin_FILE(). It's to generate reproducible builds. See https://reproducible-builds.org/docs/build-pathReproducible builds If turned ON, remap file source paths in debug info, predefined preprocessor macros and __builtin_FILE().
ENABLE_CHECK_HEAVY_BUILDSOFFDon't allow C++ translation units to compile too long or to take too much memory while compiling.Take care to add prlimit in command line before ccache, or else ccache thinks that prlimit is compiler, and clang++ is its input file, and refuses to work with multiple inputs, e.g in ccache log: [2021-03-31T18:06:32.655327 36900] Command line: /usr/bin/ccache prlimit --as=10000000000 --data=5000000000 --cpu=600 /usr/bin/clang++-11 - ...... std=gnu++2a -MD -MT src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o -MF src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o.d -o src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o -c ../src/Storages/MergeTree/IMergeTreeDataPart.cpp [2021-03-31T18:06:32.656704 36900] Multiple input files: /usr/bin/clang++-11 and ../src/Storages/MergeTree/IMergeTreeDataPart.cpp Another way would be to use --ccache-skip option before clang++-11 to make ccache ignore it.
ENABLE_COLORED_BUILDONEnable colored diagnostics in build log.
ENABLE_EXAMPLESOFFBuild all example programs in 'examples' subdirectories
ENABLE_FUZZINGOFFFuzzy testing using libfuzzer
ENABLE_LIBRARIESONEnable all external libraries by defaultTurns on all external libs like s3, kafka, ODBC, ...
ENABLE_MULTITARGET_CODEONEnable platform-dependent codeClickHouse developers may use platform-dependent code under some macro (e.g. ifdef ENABLE_MULTITARGET). If turned ON, this option defines such macro. See src/Functions/TargetSpecific.h
ENABLE_TESTSONProvide unit_test_dbms target with Google.Test unit testsIf turned ON, assumes the user has either the system GTest library or the bundled one.
ENABLE_THINLTOONClang-specific link time optimizationhttps://clang.llvm.org/docs/ThinLTO.html Applies to clang only. Disabled when building with tests or sanitizers.
FAIL_ON_UNSUPPORTED_OPTIONS_COMBINATIONONStop/Fail CMake configuration if some ENABLE_XXX option is defined (either ON or OFF) but is not possible to satisfyIf turned off: e.g. when ENABLE_FOO is ON, but FOO tool was not found, the CMake will continue.
GLIBC_COMPATIBILITYONEnable compatibility with older glibc libraries.Only for Linux, x86_64 or aarch64.
SPLIT_DEBUG_SYMBOLSOFFBuild stripped binaries with debug info in separate directory
LINKER_NAMEOFFLinker name or full pathExample values: lld-10, gold.
PARALLEL_COMPILE_JOBS""Maximum number of concurrent compilation jobs1 if not set
PARALLEL_LINK_JOBS""Maximum number of concurrent link jobs1 if not set
SANITIZE""Enable one of the code sanitizersPossible values: - address (ASan) - memory (MSan) - thread (TSan) - undefined (UBSan) - "" (no sanitizing)
SPLIT_SHARED_LIBRARIESOFFKeep all internal libraries as separate .so filesDEVELOPER ONLY. Faster linking if turned on.
STRIP_DEBUG_SYMBOLS_FUNCTIONSSTRIP_DSF_DEFAULTDo not generate debugger info for ClickHouse functionsProvides faster linking and lower binary size. Tradeoff is the inability to debug some source files with e.g. gdb (empty stack frames and no local variables)."
USE_DEBUG_HELPERSUSE_DEBUG_HELPERSEnable debug helpers
USE_STATIC_LIBRARIESONDisable to use shared libraries
USE_UNWINDENABLE_LIBRARIESEnable libunwind (better stacktraces)
WERROROFFEnable -Werror compiler optionUsing system libs can cause a lot of warnings in includes (on macro expansion).
WITH_COVERAGEOFFProfile the resulting binary/binariesCompiler-specific coverage flags e.g. -fcoverage-mapping for gcc
- -## Developer's guide for adding new CMake options - -#### Don't be obvious. Be informative. - -Bad: - -``` -option (ENABLE_TESTS "Enables testing" OFF) -``` - -This description is quite useless as it neither gives the viewer any additional information nor explains the option purpose. - -Better: - -``` -option(ENABLE_TESTS "Provide unit_test_dbms target with Google.test unit tests" OFF) -``` - -If the option's purpose can't be guessed by its name, or the purpose guess may be misleading, or option has some -pre-conditions, leave a comment above the option() line and explain what it does. -The best way would be linking the docs page (if it exists). -The comment is parsed into a separate column (see below). - -Even better: - -``` -# implies ${TESTS_ARE_ENABLED} -# see tests/CMakeLists.txt for implementation detail. -option(ENABLE_TESTS "Provide unit_test_dbms target with Google.test unit tests" OFF) -``` - -#### If the option's state could produce unwanted (or unusual) result, explicitly warn the user. - -Suppose you have an option that may strip debug symbols from the ClickHouse part. -This can speed up the linking process, but produces a binary that cannot be debugged. -In that case, prefer explicitly raising a warning telling the developer that he may be doing something wrong. -Also, such options should be disabled if applies. - -Bad: - -``` -option(STRIP_DEBUG_SYMBOLS_FUNCTIONS - "Do not generate debugger info for ClickHouse functions. - ${STRIP_DSF_DEFAULT}) - -if (STRIP_DEBUG_SYMBOLS_FUNCTIONS) - target_compile_options(clickhouse_functions PRIVATE "-g0") -endif() -``` - -Better: - -``` -# Provides faster linking and lower binary size. -# Tradeoff is the inability to debug some source files with e.g. gdb -# (empty stack frames and no local variables)." -option(STRIP_DEBUG_SYMBOLS_FUNCTIONS - "Do not generate debugger info for ClickHouse functions." - ${STRIP_DSF_DEFAULT}) - -if (STRIP_DEBUG_SYMBOLS_FUNCTIONS) - message(WARNING "Not generating debugger info for ClickHouse functions") - target_compile_options(clickhouse_functions PRIVATE "-g0") -endif() -``` - -#### In the option's description, explain WHAT the option does rather than WHY it does something. -The WHY explanation should be placed in the comment. You may find that the option's name is self-descriptive. - -Bad: - -``` -option(ENABLE_THINLTO "Enable Thin LTO. Only applicable for clang. It's also suppressed when building with tests or sanitizers." ON) -``` - -Better: - -``` -# Only applicable for clang. -# Turned off when building with tests or sanitizers. -option(ENABLE_THINLTO "Clang-specific link time optimisation" ON). -``` - -#### Don't assume other developers know as much as you do. -In ClickHouse, there are many tools used that an ordinary developer may not know. If you are in doubt, give a link to -the tool's docs. It won't take much of your time. - -Bad: - -``` -option(ENABLE_THINLTO "Enable Thin LTO. Only applicable for clang. It's also suppressed when building with tests or sanitizers." ON) -``` - -Better (combined with the above hint): - -``` -# https://clang.llvm.org/docs/ThinLTO.html -# Only applicable for clang. -# Turned off when building with tests or sanitizers. -option(ENABLE_THINLTO "Clang-specific link time optimisation" ON). -``` - -Other example, bad: - -``` -option (USE_INCLUDE_WHAT_YOU_USE "Use 'include-what-you-use' tool" OFF) -``` - -Better: - -``` -# https://github.com/include-what-you-use/include-what-you-use -option (USE_INCLUDE_WHAT_YOU_USE "Reduce unneeded #include s (external tool)" OFF) -``` - -#### Prefer consistent default values. -CMake allows you to pass a plethora of values representing boolean true/false, e.g. 1, ON, YES, .... - -Prefer the ON/OFF values, if possible. - From 8195aa768b1f70bcd09b504017289a3bd023bd61 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Fri, 1 Jul 2022 14:35:51 +0200 Subject: [PATCH 481/525] Move checking if parent profile is allowed to UsersConfigAccessStorage. --- src/Access/SettingsProfileElement.h | 3 -- src/Access/SettingsProfilesCache.cpp | 10 +------ src/Access/UsersConfigAccessStorage.cpp | 40 ++++++++++++++++++------- 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/Access/SettingsProfileElement.h b/src/Access/SettingsProfileElement.h index e4be0821407..4343f4272d9 100644 --- a/src/Access/SettingsProfileElement.h +++ b/src/Access/SettingsProfileElement.h @@ -19,9 +19,6 @@ class AccessControl; struct SettingsProfileElement { std::optional parent_profile; - /// parent_profile_xml_name is set only when users are configured via XML - /// and is used for user-friendly error messages. - std::optional parent_profile_xml_name; String setting_name; Field value; diff --git a/src/Access/SettingsProfilesCache.cpp b/src/Access/SettingsProfilesCache.cpp index 959cbb01ea2..2a3dedbbd7a 100644 --- a/src/Access/SettingsProfilesCache.cpp +++ b/src/Access/SettingsProfilesCache.cpp @@ -171,15 +171,7 @@ void SettingsProfilesCache::substituteProfiles( auto profile_it = all_profiles.find(profile_id); if (profile_it == all_profiles.end()) - { - /// If the textual profile name is set, then users are configured via XML. - /// For these users we want to throw an exception when their profile can't - /// be found. Otherwise, these users are super admins. - if (element.parent_profile_xml_name) - throw Exception(ErrorCodes::THERE_IS_NO_PROFILE, "There is no profile '{}' in configuration file", *element.parent_profile_xml_name); - else - continue; - } + continue; const auto & profile = profile_it->second; const auto & profile_elements = profile->elements; diff --git a/src/Access/UsersConfigAccessStorage.cpp b/src/Access/UsersConfigAccessStorage.cpp index 6a2995f2579..d06befe0801 100644 --- a/src/Access/UsersConfigAccessStorage.cpp +++ b/src/Access/UsersConfigAccessStorage.cpp @@ -26,6 +26,7 @@ namespace ErrorCodes { extern const int BAD_ARGUMENTS; extern const int UNKNOWN_ADDRESS_PATTERN_TYPE; + extern const int THERE_IS_NO_PROFILE; extern const int NOT_IMPLEMENTED; } @@ -47,7 +48,7 @@ namespace UUID generateID(const IAccessEntity & entity) { return generateID(entity.getType(), entity.getName()); } - UserPtr parseUser(const Poco::Util::AbstractConfiguration & config, const String & user_name, bool allow_no_password, bool allow_plaintext_password) + UserPtr parseUser(const Poco::Util::AbstractConfiguration & config, const String & user_name, const std::unordered_set & allowed_profile_ids, bool allow_no_password, bool allow_plaintext_password) { auto user = std::make_shared(); user->setName(user_name); @@ -140,9 +141,11 @@ namespace if (config.has(profile_name_config)) { auto profile_name = config.getString(profile_name_config); + auto profile_id = generateID(AccessEntityType::SETTINGS_PROFILE, profile_name); + if (!allowed_profile_ids.contains(profile_id)) + throw Exception(ErrorCodes::THERE_IS_NO_PROFILE, "Profile {} was not found", profile_name); SettingsProfileElement profile_element; - profile_element.parent_profile = generateID(AccessEntityType::SETTINGS_PROFILE, profile_name); - profile_element.parent_profile_xml_name = profile_name; + profile_element.parent_profile = profile_id; user->settings.push_back(std::move(profile_element)); } @@ -232,7 +235,7 @@ namespace } - std::vector parseUsers(const Poco::Util::AbstractConfiguration & config, bool allow_no_password, bool allow_plaintext_password) + std::vector parseUsers(const Poco::Util::AbstractConfiguration & config, const std::unordered_set & allowed_profile_ids, bool allow_no_password, bool allow_plaintext_password) { Poco::Util::AbstractConfiguration::Keys user_names; config.keys("users", user_names); @@ -243,7 +246,7 @@ namespace { try { - users.push_back(parseUser(config, user_name, allow_no_password, allow_plaintext_password)); + users.push_back(parseUser(config, user_name, allowed_profile_ids, allow_no_password, allow_plaintext_password)); } catch (Exception & e) { @@ -458,6 +461,7 @@ namespace std::shared_ptr parseSettingsProfile( const Poco::Util::AbstractConfiguration & config, const String & profile_name, + const std::unordered_set & allowed_parent_profile_ids, const AccessControl & access_control) { auto profile = std::make_shared(); @@ -472,9 +476,11 @@ namespace if (key == "profile" || key.starts_with("profile[")) { String parent_profile_name = config.getString(profile_config + "." + key); + auto parent_profile_id = generateID(AccessEntityType::SETTINGS_PROFILE, parent_profile_name); + if (!allowed_parent_profile_ids.contains(parent_profile_id)) + throw Exception(ErrorCodes::THERE_IS_NO_PROFILE, "Parent profile '{}' was not found", parent_profile_name); SettingsProfileElement profile_element; - profile_element.parent_profile = generateID(AccessEntityType::SETTINGS_PROFILE, parent_profile_name); - profile_element.parent_profile_xml_name = parent_profile_name; + profile_element.parent_profile = parent_profile_id; profile->elements.emplace_back(std::move(profile_element)); continue; } @@ -500,6 +506,7 @@ namespace std::vector parseSettingsProfiles( const Poco::Util::AbstractConfiguration & config, + const std::unordered_set & allowed_parent_profile_ids, const AccessControl & access_control) { Poco::Util::AbstractConfiguration::Keys profile_names; @@ -512,7 +519,7 @@ namespace { try { - profiles.push_back(parseSettingsProfile(config, profile_name, access_control)); + profiles.push_back(parseSettingsProfile(config, profile_name, allowed_parent_profile_ids, access_control)); } catch (Exception & e) { @@ -523,6 +530,17 @@ namespace return profiles; } + + + std::unordered_set getAllowedSettingsProfileIDs(const Poco::Util::AbstractConfiguration & config) + { + Poco::Util::AbstractConfiguration::Keys profile_names; + config.keys("profiles", profile_names); + std::unordered_set ids; + for (const auto & profile_name : profile_names) + ids.emplace(generateID(AccessEntityType::SETTINGS_PROFILE, profile_name)); + return ids; + } } UsersConfigAccessStorage::UsersConfigAccessStorage(const String & storage_name_, AccessControl & access_control_) @@ -568,16 +586,18 @@ void UsersConfigAccessStorage::parseFromConfig(const Poco::Util::AbstractConfigu { try { + auto allowed_profile_ids = getAllowedSettingsProfileIDs(config); bool no_password_allowed = access_control.isNoPasswordAllowed(); bool plaintext_password_allowed = access_control.isPlaintextPasswordAllowed(); + std::vector> all_entities; - for (const auto & entity : parseUsers(config, no_password_allowed, plaintext_password_allowed)) + for (const auto & entity : parseUsers(config, allowed_profile_ids, no_password_allowed, plaintext_password_allowed)) all_entities.emplace_back(generateID(*entity), entity); for (const auto & entity : parseQuotas(config)) all_entities.emplace_back(generateID(*entity), entity); for (const auto & entity : parseRowPolicies(config, access_control.isEnabledUsersWithoutRowPoliciesCanReadRows())) all_entities.emplace_back(generateID(*entity), entity); - for (const auto & entity : parseSettingsProfiles(config, access_control)) + for (const auto & entity : parseSettingsProfiles(config, allowed_profile_ids, access_control)) all_entities.emplace_back(generateID(*entity), entity); memory_storage.setAll(all_entities); } From 57284e6a9d64b8e3d387f7d1bdfd8e4498879eae Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 15:16:32 +0200 Subject: [PATCH 482/525] Fix possible deadlocks with MergeTreeData::Transaction --- src/Storages/MergeTree/MergeTreeSink.cpp | 7 +++---- .../MergeTree/ReplicatedMergeTreeSink.cpp | 2 ++ src/Storages/StorageMergeTree.cpp | 17 ++++++++++++----- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeSink.cpp b/src/Storages/MergeTree/MergeTreeSink.cpp index 2f860b34fd5..7021d1ab51f 100644 --- a/src/Storages/MergeTree/MergeTreeSink.cpp +++ b/src/Storages/MergeTree/MergeTreeSink.cpp @@ -139,6 +139,9 @@ void MergeTreeSink::finishDelayedChunk() bool added = false; + /// It's important to create it outside of lock scope because + /// otherwise it can lock parts in desctructor and deadlock is possible. + MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); { auto lock = storage.lockParts(); storage.fillNewPartName(part, lock); @@ -155,19 +158,15 @@ void MergeTreeSink::finishDelayedChunk() } else { - MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); added = storage.renameTempPartAndAdd(part, transaction, lock); transaction.commit(&lock); - } } else { - MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); added = storage.renameTempPartAndAdd(part, transaction, lock); transaction.commit(&lock); } - } /// Part can be deduplicated, so increment counters and add to part log only if it's really added diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index 07e21def184..473dad075b9 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -471,6 +471,8 @@ void ReplicatedMergeTreeSink::commitPart( /// Information about the part. storage.getCommitPartOps(ops, part, block_id_path); + /// It's important to create it outside of lock scope because + /// otherwise it can lock parts in desctructor and deadlock is possible. MergeTreeData::Transaction transaction(storage, NO_TRANSACTION_RAW); /// If you can not add a part to ZK, we'll remove it back from the working set. bool renamed = false; diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index 5fe7214194a..f6e62656c83 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1540,9 +1540,11 @@ PartitionCommandsResultInfo StorageMergeTree::attachPartition( loaded_parts[i]->storeVersionMetadata(); String old_name = renamed_parts.old_and_new_names[i].old_name; + /// It's important to create it outside of lock scope because + /// otherwise it can lock parts in desctructor and deadlock is possible. + MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); { auto lock = lockParts(); - MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); fillNewPartName(loaded_parts[i], lock); renameTempPartAndAdd(loaded_parts[i], transaction, lock); transaction.commit(&lock); @@ -1797,13 +1799,18 @@ CheckResults StorageMergeTree::checkData(const ASTPtr & query, ContextPtr local_ void StorageMergeTree::attachRestoredParts(MutableDataPartsVector && parts) { + for (auto part : parts) { - auto lock = lockParts(); + /// It's important to create it outside of lock scope because + /// otherwise it can lock parts in desctructor and deadlock is possible. MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); - fillNewPartName(part, lock); - renameTempPartAndAdd(part, transaction, lock); - transaction.commit(&lock); + { + auto lock = lockParts(); + fillNewPartName(part, lock); + renameTempPartAndAdd(part, transaction, lock); + transaction.commit(&lock); + } } } From 0d7298f3a9c5410ca3f21ff40e2da8a54a714c37 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 15:26:27 +0200 Subject: [PATCH 483/525] Fix typos --- src/Storages/MergeTree/MergeTreeSink.cpp | 2 +- src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp | 2 +- src/Storages/StorageMergeTree.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Storages/MergeTree/MergeTreeSink.cpp b/src/Storages/MergeTree/MergeTreeSink.cpp index 7021d1ab51f..c63c3e3bf94 100644 --- a/src/Storages/MergeTree/MergeTreeSink.cpp +++ b/src/Storages/MergeTree/MergeTreeSink.cpp @@ -140,7 +140,7 @@ void MergeTreeSink::finishDelayedChunk() bool added = false; /// It's important to create it outside of lock scope because - /// otherwise it can lock parts in desctructor and deadlock is possible. + /// otherwise it can lock parts in destructor and deadlock is possible. MergeTreeData::Transaction transaction(storage, context->getCurrentTransaction().get()); { auto lock = storage.lockParts(); diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp index 473dad075b9..27e54c457d8 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeSink.cpp @@ -472,7 +472,7 @@ void ReplicatedMergeTreeSink::commitPart( storage.getCommitPartOps(ops, part, block_id_path); /// It's important to create it outside of lock scope because - /// otherwise it can lock parts in desctructor and deadlock is possible. + /// otherwise it can lock parts in destructor and deadlock is possible. MergeTreeData::Transaction transaction(storage, NO_TRANSACTION_RAW); /// If you can not add a part to ZK, we'll remove it back from the working set. bool renamed = false; diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index f6e62656c83..a01dcafd078 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -1541,7 +1541,7 @@ PartitionCommandsResultInfo StorageMergeTree::attachPartition( String old_name = renamed_parts.old_and_new_names[i].old_name; /// It's important to create it outside of lock scope because - /// otherwise it can lock parts in desctructor and deadlock is possible. + /// otherwise it can lock parts in destructor and deadlock is possible. MergeTreeData::Transaction transaction(*this, local_context->getCurrentTransaction().get()); { auto lock = lockParts(); @@ -1803,7 +1803,7 @@ void StorageMergeTree::attachRestoredParts(MutableDataPartsVector && parts) for (auto part : parts) { /// It's important to create it outside of lock scope because - /// otherwise it can lock parts in desctructor and deadlock is possible. + /// otherwise it can lock parts in destructor and deadlock is possible. MergeTreeData::Transaction transaction(*this, NO_TRANSACTION_RAW); { auto lock = lockParts(); From b8fa26f94f2a94067f21c1cfb98a98102173d24c Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Fri, 1 Jul 2022 15:06:56 +0200 Subject: [PATCH 484/525] Fix wrong self.changed_files type --- tests/ci/pr_info.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/ci/pr_info.py b/tests/ci/pr_info.py index e206b8ed7b4..20487b667aa 100644 --- a/tests/ci/pr_info.py +++ b/tests/ci/pr_info.py @@ -2,6 +2,7 @@ import json import logging import os +from typing import Set from unidiff import PatchSet # type: ignore @@ -81,7 +82,7 @@ class PRInfo: else: github_event = PRInfo.default_event.copy() self.event = github_event - self.changed_files = set() + self.changed_files = set() # type: Set[str] self.body = "" ref = github_event.get("ref", "refs/head/master") if ref and ref.startswith("refs/heads/"): @@ -217,11 +218,11 @@ class PRInfo: diff = response.json() if "files" in diff: - self.changed_files = [f["filename"] for f in diff["files"]] + self.changed_files = {f["filename"] for f in diff["files"]} else: diff_object = PatchSet(response.text) self.changed_files = {f.path for f in diff_object} - print("Fetched info about %d changed files" % len(self.changed_files)) + print(f"Fetched info about {len(self.changed_files)} changed files") def get_dict(self): return { From 6a67be3195a68e175a1bdb854025f18e70c26329 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Fri, 1 Jul 2022 15:30:21 +0200 Subject: [PATCH 485/525] Get a proper set of changed files for backport PRs --- tests/ci/pr_info.py | 46 +++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/tests/ci/pr_info.py b/tests/ci/pr_info.py index 20487b667aa..4c17efa88cd 100644 --- a/tests/ci/pr_info.py +++ b/tests/ci/pr_info.py @@ -84,6 +84,7 @@ class PRInfo: self.event = github_event self.changed_files = set() # type: Set[str] self.body = "" + self.diff_urls = [] ref = github_event.get("ref", "refs/head/master") if ref and ref.startswith("refs/heads/"): ref = ref[11:] @@ -149,7 +150,7 @@ class PRInfo: response_json = user_orgs_response.json() self.user_orgs = set(org["id"] for org in response_json) - self.diff_url = github_event["pull_request"]["diff_url"] + self.diff_urls.append(github_event["pull_request"]["diff_url"]) elif "commits" in github_event: self.sha = github_event["after"] pull_request = get_pr_for_commit(self.sha, github_event["ref"]) @@ -166,7 +167,7 @@ class PRInfo: self.base_name = self.repo_full_name self.head_ref = ref self.head_name = self.repo_full_name - self.diff_url = ( + self.diff_urls.append( f"https://api.github.com/repos/{GITHUB_REPOSITORY}/" f"compare/{github_event['before']}...{self.sha}" ) @@ -180,12 +181,20 @@ class PRInfo: self.head_name = pull_request["head"]["repo"]["full_name"] self.pr_html_url = pull_request["html_url"] if "pr-backport" in self.labels: - self.diff_url = ( + # head1...head2 gives changes in head2 since merge base + # Thag's why we need {self.head_ref}...master to get + # files changed in upstream AND master...{self.head_ref} + # to get files, changed in current HEAD + self.diff_urls.append( f"https://github.com/{GITHUB_REPOSITORY}/" f"compare/master...{self.head_ref}.diff" ) + self.diff_urls.append( + f"https://github.com/{GITHUB_REPOSITORY}/" + f"compare/{self.head_ref}...master.diff" + ) else: - self.diff_url = pull_request["diff_url"] + self.diff_urls.append(pull_request["diff_url"]) else: print("event.json does not match pull_request or push:") print(json.dumps(github_event, sort_keys=True, indent=4)) @@ -206,22 +215,23 @@ class PRInfo: self.fetch_changed_files() def fetch_changed_files(self): - if not getattr(self, "diff_url", False): - raise TypeError("The event does not have diff URL") + if not getattr(self, "diff_urls", False): + raise TypeError("The event does not have diff URLs") - response = get_with_retries( - self.diff_url, - sleep=RETRY_SLEEP, - ) - response.raise_for_status() - if "commits" in self.event and self.number == 0: - diff = response.json() + for diff_url in self.diff_urls: + response = get_with_retries( + diff_url, + sleep=RETRY_SLEEP, + ) + response.raise_for_status() + if "commits" in self.event and self.number == 0: + diff = response.json() - if "files" in diff: - self.changed_files = {f["filename"] for f in diff["files"]} - else: - diff_object = PatchSet(response.text) - self.changed_files = {f.path for f in diff_object} + if "files" in diff: + self.changed_files = {f["filename"] for f in diff["files"]} + else: + diff_object = PatchSet(response.text) + self.changed_files.update({f.path for f in diff_object}) print(f"Fetched info about {len(self.changed_files)} changed files") def get_dict(self): From 919baf331e9a4e7f5ffefcf55c1805552edbc2b6 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 15:57:24 +0200 Subject: [PATCH 486/525] Review fixes --- src/Coordination/KeeperDispatcher.cpp | 15 +------------- src/Coordination/KeeperServer.cpp | 20 +++++++++++++++++++ src/Coordination/KeeperServer.h | 3 +++ .../test_keeper_mntr_pressure/test.py | 7 ++++++- 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/Coordination/KeeperDispatcher.cpp b/src/Coordination/KeeperDispatcher.cpp index 623bc43f85e..213c924af6b 100644 --- a/src/Coordination/KeeperDispatcher.cpp +++ b/src/Coordination/KeeperDispatcher.cpp @@ -651,13 +651,7 @@ uint64_t KeeperDispatcher::getSnapDirSize() const Keeper4LWInfo KeeperDispatcher::getKeeper4LWInfo() const { - Keeper4LWInfo result; - result.is_follower = isFollower(); - result.is_standalone = !result.is_follower && server->getFollowerCount() == 0; - result.is_leader = isLeader(); - result.is_observer = isObserver(); - - result.has_leader = hasLeader(); + Keeper4LWInfo result = server->getPartiallyFilled4LWInfo(); { std::lock_guard lock(push_request_mutex); result.outstanding_requests_count = requests_queue->size(); @@ -666,13 +660,6 @@ Keeper4LWInfo KeeperDispatcher::getKeeper4LWInfo() const std::lock_guard lock(session_to_response_callback_mutex); result.alive_connections_count = session_to_response_callback.size(); } - if (result.is_leader) - { - result.follower_count = server->getFollowerCount(); - result.synced_follower_count = server->getSyncedFollowerCount(); - } - result.total_nodes_count = server->getKeeperStateMachine()->getNodesCount(); - result.last_zxid = server->getKeeperStateMachine()->getLastProcessedZxid(); return result; } diff --git a/src/Coordination/KeeperServer.cpp b/src/Coordination/KeeperServer.cpp index eba2e78d46a..9d556e6b4ad 100644 --- a/src/Coordination/KeeperServer.cpp +++ b/src/Coordination/KeeperServer.cpp @@ -804,4 +804,24 @@ bool KeeperServer::waitConfigurationUpdate(const ConfigUpdateAction & task) return true; } +Keeper4LWInfo KeeperServer::getPartiallyFilled4LWInfo() const +{ + Keeper4LWInfo result; + result.is_leader = raft_instance->is_leader(); + + auto srv_config = state_manager->get_srv_config(); + result.is_observer = srv_config->is_learner(); + + result.is_follower = !result.is_leader && !result.is_observer; + result.has_leader = result.is_leader || isLeaderAlive(); + if (result.is_leader) + { + result.follower_count = getFollowerCount(); + result.synced_follower_count = getSyncedFollowerCount(); + } + result.total_nodes_count = getKeeperStateMachine()->getNodesCount(); + result.last_zxid = getKeeperStateMachine()->getLastProcessedZxid(); + return result; +} + } diff --git a/src/Coordination/KeeperServer.h b/src/Coordination/KeeperServer.h index 8c21cf47d94..f6524ce97a1 100644 --- a/src/Coordination/KeeperServer.h +++ b/src/Coordination/KeeperServer.h @@ -8,6 +8,7 @@ #include #include #include +#include namespace DB { @@ -95,6 +96,8 @@ public: bool isLeaderAlive() const; + Keeper4LWInfo getPartiallyFilled4LWInfo() const; + /// @return follower count if node is not leader return 0 uint64_t getFollowerCount() const; diff --git a/tests/integration/test_keeper_mntr_pressure/test.py b/tests/integration/test_keeper_mntr_pressure/test.py index 59ea64d0561..6aa88b92aaa 100644 --- a/tests/integration/test_keeper_mntr_pressure/test.py +++ b/tests/integration/test_keeper_mntr_pressure/test.py @@ -23,6 +23,7 @@ node3 = cluster.add_instance( "node3", main_configs=["config/enable_keeper3.xml"], stay_alive=True ) +NOT_SERVING_REQUESTS_ERROR_MSG = "This instance is not currently serving requests" @pytest.fixture(scope="module") def started_cluster(): @@ -63,7 +64,7 @@ def send_4lw_cmd(node_name, cmd="ruok"): def test_aggressive_mntr(started_cluster): def go_mntr(node_name): - for i in range(100000): + for _ in range(100000): print(node_name, send_4lw_cmd(node_name, "mntr")) node1_thread = threading.Thread(target=lambda: go_mntr(node1.name)) @@ -75,6 +76,10 @@ def test_aggressive_mntr(started_cluster): node2.stop_clickhouse() node3.stop_clickhouse() + + while send_4lw_cmd(node1.name, "mntr") != NOT_SERVING_REQUESTS_ERROR_MSG: + time.sleep(0.2) + node1.stop_clickhouse() starters = [] for node in [node1, node2, node3]: From f47f761cc494e8453bb6ff76ef3ac248c2d9c98a Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 16:04:20 +0200 Subject: [PATCH 487/525] Update src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp Co-authored-by: Dmitry Novik --- src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp b/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp index 2c3a7454d4b..2f919577c15 100644 --- a/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp +++ b/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp @@ -43,7 +43,7 @@ void registerDiskHDFS(DiskFactory & factory) auto metadata_storage = std::make_shared(metadata_disk, uri); uint64_t copy_thread_pool_size = config.getUInt(config_prefix + ".thread_pool_size", 16); - std::shared_ptr disk_result = std::make_shared( + auto disk_result = std::make_shared( name, uri, "DiskHDFS", From 8ba3d405de76ca715f93bb0dd6552c26cd07b803 Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Fri, 1 Jul 2022 16:05:19 +0200 Subject: [PATCH 488/525] impl --- src/Processors/Transforms/FillingTransform.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Processors/Transforms/FillingTransform.cpp b/src/Processors/Transforms/FillingTransform.cpp index a41b5660e0d..b63e1dda084 100644 --- a/src/Processors/Transforms/FillingTransform.cpp +++ b/src/Processors/Transforms/FillingTransform.cpp @@ -215,6 +215,13 @@ IProcessor::Status FillingTransform::prepare() if (first || filling_row < next_row) { + /// Output if has data. + if (has_output) + { + output.pushData(std::move(output_data)); + has_output = false; + } + generate_suffix = true; return Status::Ready; } From 726aec1f51c48f5d5ad3c2f2f9251b8ded446b3a Mon Sep 17 00:00:00 2001 From: Nikita Taranov Date: Fri, 1 Jul 2022 16:08:26 +0200 Subject: [PATCH 489/525] rm crutch in test --- tests/queries/0_stateless/02112_with_fill_interval.sql | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/queries/0_stateless/02112_with_fill_interval.sql b/tests/queries/0_stateless/02112_with_fill_interval.sql index 16773780515..d2416f9a84b 100644 --- a/tests/queries/0_stateless/02112_with_fill_interval.sql +++ b/tests/queries/0_stateless/02112_with_fill_interval.sql @@ -1,5 +1,3 @@ -SET max_threads = 1; - DROP TABLE IF EXISTS with_fill_date; CREATE TABLE with_fill_date (d Date, d32 Date32) ENGINE = Memory; From 7c53c8bd2cc966d6b2ed6226ba261e64145b5d4c Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 16:10:06 +0200 Subject: [PATCH 490/525] Black --- tests/integration/test_keeper_mntr_pressure/test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/integration/test_keeper_mntr_pressure/test.py b/tests/integration/test_keeper_mntr_pressure/test.py index 6aa88b92aaa..471767210d6 100644 --- a/tests/integration/test_keeper_mntr_pressure/test.py +++ b/tests/integration/test_keeper_mntr_pressure/test.py @@ -25,6 +25,7 @@ node3 = cluster.add_instance( NOT_SERVING_REQUESTS_ERROR_MSG = "This instance is not currently serving requests" + @pytest.fixture(scope="module") def started_cluster(): try: From 27bd355525661e5f3289d84faeda6d32d02239fa Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Fri, 1 Jul 2022 16:45:00 +0200 Subject: [PATCH 491/525] Use cached image from the release branch for backport PRs --- tests/ci/docker_images_check.py | 35 ++++++++++++++++++++++++------- tests/ci/docker_test.py | 37 ++++++++++++++++++++++++++------- tests/ci/pr_info.py | 5 +++++ 3 files changed, 63 insertions(+), 14 deletions(-) diff --git a/tests/ci/docker_images_check.py b/tests/ci/docker_images_check.py index a0d0e124f6d..2e181f678dd 100644 --- a/tests/ci/docker_images_check.py +++ b/tests/ci/docker_images_check.py @@ -210,6 +210,7 @@ def build_and_push_dummy_image( def build_and_push_one_image( image: DockerImage, version_string: str, + additional_cache: str, push: bool, child: bool, ) -> Tuple[bool, str]: @@ -232,6 +233,16 @@ def build_and_push_one_image( if child: from_tag_arg = f"--build-arg FROM_TAG={version_string} " + cache_from = ( + f"--cache-from type=registry,ref={image.repo}:{version_string} " + f"--cache-from type=registry,ref={image.repo}:latest" + ) + if additional_cache: + cache_from = ( + f"{cache_from} " + f"--cache-from type=registry,ref={image.repo}:{additional_cache}" + ) + with open(build_log, "wb") as bl: cmd = ( "docker buildx build --builder default " @@ -240,8 +251,7 @@ def build_and_push_one_image( # A hack to invalidate cache, grep for it in docker/ dir f"--build-arg CACHE_INVALIDATOR={GITHUB_RUN_URL} " f"--tag {image.repo}:{version_string} " - f"--cache-from type=registry,ref={image.repo}:{version_string} " - f"--cache-from type=registry,ref={image.repo}:latest " + f"{cache_from} " f"--cache-to type=inline,mode=max " f"{push_arg}" f"--progress plain {image.full_path}" @@ -260,6 +270,7 @@ def build_and_push_one_image( def process_single_image( image: DockerImage, versions: List[str], + additional_cache, push: bool, child: bool, ) -> List[Tuple[str, str, str]]: @@ -267,7 +278,9 @@ def process_single_image( result = [] for ver in versions: for i in range(5): - success, build_log = build_and_push_one_image(image, ver, push, child) + success, build_log = build_and_push_one_image( + image, ver, additional_cache, push, child + ) if success: result.append((image.repo + ":" + ver, build_log, "OK")) break @@ -284,17 +297,23 @@ def process_single_image( def process_image_with_parents( - image: DockerImage, versions: List[str], push: bool, child: bool = False + image: DockerImage, + versions: List[str], + additional_cache: str, + push: bool, + child: bool = False, ) -> List[Tuple[str, str, str]]: result = [] # type: List[Tuple[str,str,str]] if image.built: return result if image.parent is not None: - result += process_image_with_parents(image.parent, versions, push, False) + result += process_image_with_parents( + image.parent, versions, additional_cache, push, False + ) child = True - result += process_single_image(image, versions, push, child) + result += process_single_image(image, versions, additional_cache, push, child) return result @@ -423,8 +442,10 @@ def main(): result_images = {} images_processing_result = [] for image in changed_images: + # If we are in backport PR, then pr_info.release_pr is defined + # We use it as tag to reduce rebuilding time images_processing_result += process_image_with_parents( - image, image_versions, args.push + image, image_versions, pr_info.release_pr, args.push ) result_images[image.repo] = result_version diff --git a/tests/ci/docker_test.py b/tests/ci/docker_test.py index 550d495939c..32df6d5f1d0 100644 --- a/tests/ci/docker_test.py +++ b/tests/ci/docker_test.py @@ -117,7 +117,7 @@ class TestDockerImageCheck(unittest.TestCase): mock_popen.return_value.__enter__.return_value.wait.return_value = 0 image = di.DockerImage("path", "name", False, gh_repo_path="") - result, _ = di.build_and_push_one_image(image, "version", True, True) + result, _ = di.build_and_push_one_image(image, "version", "", True, True) mock_open.assert_called_once() mock_popen.assert_called_once() mock_machine.assert_not_called() @@ -136,7 +136,7 @@ class TestDockerImageCheck(unittest.TestCase): mock_machine.reset_mock() mock_popen.return_value.__enter__.return_value.wait.return_value = 0 - result, _ = di.build_and_push_one_image(image, "version2", False, True) + result, _ = di.build_and_push_one_image(image, "version2", "", False, True) mock_open.assert_called_once() mock_popen.assert_called_once() mock_machine.assert_not_called() @@ -155,7 +155,7 @@ class TestDockerImageCheck(unittest.TestCase): mock_popen.reset_mock() mock_machine.reset_mock() mock_popen.return_value.__enter__.return_value.wait.return_value = 1 - result, _ = di.build_and_push_one_image(image, "version2", False, False) + result, _ = di.build_and_push_one_image(image, "version2", "", False, False) mock_open.assert_called_once() mock_popen.assert_called_once() mock_machine.assert_not_called() @@ -169,13 +169,36 @@ class TestDockerImageCheck(unittest.TestCase): ) self.assertFalse(result) + mock_open.reset_mock() + mock_popen.reset_mock() + mock_machine.reset_mock() + mock_popen.return_value.__enter__.return_value.wait.return_value = 1 + result, _ = di.build_and_push_one_image( + image, "version2", "cached-version", False, False + ) + mock_open.assert_called_once() + mock_popen.assert_called_once() + mock_machine.assert_not_called() + self.assertIn( + f"docker buildx build --builder default --label build-url={GITHUB_RUN_URL} " + f"--build-arg CACHE_INVALIDATOR={GITHUB_RUN_URL} " + "--tag name:version2 --cache-from type=registry,ref=name:version2 " + "--cache-from type=registry,ref=name:latest " + "--cache-from type=registry,ref=name:cached-version " + "--cache-to type=inline,mode=max --progress plain path", + mock_popen.call_args.args, + ) + self.assertFalse(result) + mock_open.reset_mock() mock_popen.reset_mock() mock_machine.reset_mock() only_amd64_image = di.DockerImage("path", "name", True) mock_popen.return_value.__enter__.return_value.wait.return_value = 0 - result, _ = di.build_and_push_one_image(only_amd64_image, "version", True, True) + result, _ = di.build_and_push_one_image( + only_amd64_image, "version", "", True, True + ) mock_open.assert_called_once() mock_popen.assert_called_once() mock_machine.assert_called_once() @@ -186,7 +209,7 @@ class TestDockerImageCheck(unittest.TestCase): ) self.assertTrue(result) result, _ = di.build_and_push_one_image( - only_amd64_image, "version", False, True + only_amd64_image, "version", "", False, True ) self.assertIn( "docker pull ubuntu:20.04; docker tag ubuntu:20.04 name:version; ", @@ -195,7 +218,7 @@ class TestDockerImageCheck(unittest.TestCase): @patch("docker_images_check.build_and_push_one_image") def test_process_image_with_parents(self, mock_build): - mock_build.side_effect = lambda w, x, y, z: (True, f"{w.repo}_{x}.log") + mock_build.side_effect = lambda v, w, x, y, z: (True, f"{v.repo}_{w}.log") im1 = di.DockerImage("path1", "repo1", False) im2 = di.DockerImage("path2", "repo2", False, im1) im3 = di.DockerImage("path3", "repo3", False, im2) @@ -203,7 +226,7 @@ class TestDockerImageCheck(unittest.TestCase): # We use list to have determined order of image builgings images = [im4, im1, im3, im2, im1] results = [ - di.process_image_with_parents(im, ["v1", "v2", "latest"], True) + di.process_image_with_parents(im, ["v1", "v2", "latest"], "", True) for im in images ] diff --git a/tests/ci/pr_info.py b/tests/ci/pr_info.py index 4c17efa88cd..a06c5a75b0f 100644 --- a/tests/ci/pr_info.py +++ b/tests/ci/pr_info.py @@ -85,6 +85,7 @@ class PRInfo: self.changed_files = set() # type: Set[str] self.body = "" self.diff_urls = [] + self.release_pr = "" ref = github_event.get("ref", "refs/head/master") if ref and ref.startswith("refs/heads/"): ref = ref[11:] @@ -193,6 +194,10 @@ class PRInfo: f"https://github.com/{GITHUB_REPOSITORY}/" f"compare/{self.head_ref}...master.diff" ) + # Get release PR number. + self.release_pr = get_pr_for_commit(self.base_ref, self.base_ref)[ + "number" + ] else: self.diff_urls.append(pull_request["diff_url"]) else: From 65956975e2ca571adfcebc090b56156beb63f628 Mon Sep 17 00:00:00 2001 From: alesapin Date: Fri, 1 Jul 2022 17:18:38 +0200 Subject: [PATCH 492/525] Update registerDiskHDFS.cpp --- src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp b/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp index 2f919577c15..21641aca392 100644 --- a/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp +++ b/src/Disks/ObjectStorages/HDFS/registerDiskHDFS.cpp @@ -43,7 +43,7 @@ void registerDiskHDFS(DiskFactory & factory) auto metadata_storage = std::make_shared(metadata_disk, uri); uint64_t copy_thread_pool_size = config.getUInt(config_prefix + ".thread_pool_size", 16); - auto disk_result = std::make_shared( + DiskPtr disk_result = std::make_shared( name, uri, "DiskHDFS", From b238ed409385d8534d73f2ef9062c4a4f7609ffe Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Fri, 1 Jul 2022 13:47:49 +0200 Subject: [PATCH 493/525] fix stress tests --- docker/test/stress/run.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docker/test/stress/run.sh b/docker/test/stress/run.sh index 0b517fb4af8..fff720965b6 100755 --- a/docker/test/stress/run.sh +++ b/docker/test/stress/run.sh @@ -119,9 +119,10 @@ function start() counter=0 until clickhouse-client --query "SELECT 1" do - if [ "$counter" -gt ${1:-240} ] + if [ "$counter" -gt ${1:-120} ] then echo "Cannot start clickhouse-server" + echo -e "Cannot start clickhouse-server\tFAIL" >> /test_output/test_results.tsv cat /var/log/clickhouse-server/stdout.log tail -n1000 /var/log/clickhouse-server/stderr.log tail -n100000 /var/log/clickhouse-server/clickhouse-server.log | grep -F -v -e ' RaftInstance:' -e ' RaftInstance' | tail -n1000 @@ -295,6 +296,10 @@ then # Start server from previous release configure + + # Avoid "Setting allow_deprecated_database_ordinary is neither a builtin setting..." + rm -f /etc/clickhouse-server/users.d/database_ordinary.xml ||: + start clickhouse-client --query="SELECT 'Server version: ', version()" From 8177608860275340eebf5dd4f1579c04189964c8 Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Fri, 1 Jul 2022 22:35:20 +0200 Subject: [PATCH 494/525] SQL create drop index fix formatting --- src/Interpreters/InterpreterCreateIndexQuery.cpp | 3 +-- src/Interpreters/InterpreterDropIndexQuery.cpp | 5 ++--- src/Parsers/ParserCreateIndexQuery.cpp | 10 +++++----- src/Parsers/ParserDropIndexQuery.cpp | 8 ++++---- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Interpreters/InterpreterCreateIndexQuery.cpp b/src/Interpreters/InterpreterCreateIndexQuery.cpp index ef19eaa1c42..5117b92efdf 100644 --- a/src/Interpreters/InterpreterCreateIndexQuery.cpp +++ b/src/Interpreters/InterpreterCreateIndexQuery.cpp @@ -38,8 +38,7 @@ BlockIO InterpreterCreateIndexQuery::execute() query_ptr->as().setDatabase(table_id.database_name); DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_id.database_name); - if (typeid_cast(database.get()) - && !current_context->getClientInfo().is_replicated_database_internal) + if (typeid_cast(database.get()) && !current_context->getClientInfo().is_replicated_database_internal) { auto guard = DatabaseCatalog::instance().getDDLGuard(table_id.database_name, table_id.table_name); guard->releaseTableLock(); diff --git a/src/Interpreters/InterpreterDropIndexQuery.cpp b/src/Interpreters/InterpreterDropIndexQuery.cpp index 2339e0dc68e..70f35a92688 100644 --- a/src/Interpreters/InterpreterDropIndexQuery.cpp +++ b/src/Interpreters/InterpreterDropIndexQuery.cpp @@ -1,8 +1,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -36,8 +36,7 @@ BlockIO InterpreterDropIndexQuery::execute() query_ptr->as().setDatabase(table_id.database_name); DatabasePtr database = DatabaseCatalog::instance().getDatabase(table_id.database_name); - if (typeid_cast(database.get()) - && !current_context->getClientInfo().is_replicated_database_internal) + if (typeid_cast(database.get()) && !current_context->getClientInfo().is_replicated_database_internal) { auto guard = DatabaseCatalog::instance().getDDLGuard(table_id.database_name, table_id.table_name); guard->releaseTableLock(); diff --git a/src/Parsers/ParserCreateIndexQuery.cpp b/src/Parsers/ParserCreateIndexQuery.cpp index af0d9064626..ab31d3f9b7a 100644 --- a/src/Parsers/ParserCreateIndexQuery.cpp +++ b/src/Parsers/ParserCreateIndexQuery.cpp @@ -1,10 +1,10 @@ #include #include +#include #include #include #include -#include #include #include #include @@ -86,15 +86,15 @@ bool ParserCreateIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expect if (!s_on.ignore(pos, expected)) return false; - if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) + if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) return false; /// [ON cluster_name] - if (s_on.ignore(pos, expected)) - { + if (s_on.ignore(pos, expected)) + { if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) return false; - } + } if (!parser_create_idx_decl.parse(pos, index_decl, expected)) return false; diff --git a/src/Parsers/ParserDropIndexQuery.cpp b/src/Parsers/ParserDropIndexQuery.cpp index 89ed4f01838..5843d8b94bf 100644 --- a/src/Parsers/ParserDropIndexQuery.cpp +++ b/src/Parsers/ParserDropIndexQuery.cpp @@ -38,17 +38,17 @@ bool ParserDropIndexQuery::parseImpl(IParser::Pos & pos, ASTPtr & node, Expected if (!s_on.ignore(pos, expected)) return false; - if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) + if (!parseDatabaseAndTableAsAST(pos, expected, query->database, query->table)) return false; /// [ON cluster_name] - if (s_on.ignore(pos, expected)) - { + if (s_on.ignore(pos, expected)) + { if (!ASTQueryWithOnCluster::parse(pos, cluster_str, expected)) return false; query->cluster = std::move(cluster_str); - } + } if (query->index_name) query->children.push_back(query->index_name); From 1d665e9576f4cb6de0d5a79e4e4d622385f48a13 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Fri, 1 Jul 2022 21:28:01 +0000 Subject: [PATCH 495/525] Provide sort description for output stream in ReadFromMergeTree step --- .../QueryPlan/ReadFromMergeTree.cpp | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/Processors/QueryPlan/ReadFromMergeTree.cpp b/src/Processors/QueryPlan/ReadFromMergeTree.cpp index f377709a899..4a1772759bc 100644 --- a/src/Processors/QueryPlan/ReadFromMergeTree.cpp +++ b/src/Processors/QueryPlan/ReadFromMergeTree.cpp @@ -71,6 +71,18 @@ static const PrewhereInfoPtr & getPrewhereInfo(const SelectQueryInfo & query_inf : query_info.prewhere_info; } +static int getSortDirection(const SelectQueryInfo & query_info) +{ + const InputOrderInfoPtr & order_info = query_info.input_order_info + ? query_info.input_order_info + : (query_info.projection ? query_info.projection->input_order_info : nullptr); + + if (!order_info) + return 1; + + return order_info->direction; +} + ReadFromMergeTree::ReadFromMergeTree( MergeTreeData::DataPartsVector parts_, Names real_column_names_, @@ -124,6 +136,22 @@ ReadFromMergeTree::ReadFromMergeTree( /// Add explicit description. setStepDescription(data.getStorageID().getFullNameNotQuoted()); + + { /// build sort description for output stream + SortDescription sort_description; + const Names & sorting_key_columns = storage_snapshot->getMetadataForQuery()->getSortingKeyColumns(); + const Block & header = output_stream->header; + const int sort_direction = getSortDirection(query_info); + for (const auto & column_name : sorting_key_columns) + { + if (std::find_if(header.begin(), header.end(), [&](ColumnWithTypeAndName const & col) { return col.name == column_name; }) + == header.end()) + break; + sort_description.emplace_back(column_name, sort_direction); + } + output_stream->sort_description = std::move(sort_description); + output_stream->sort_mode = DataStream::SortMode::Chunk; + } } Pipe ReadFromMergeTree::readFromPool( From 9ef8ff5a3110c272b220bfdd26a92767a93f2a68 Mon Sep 17 00:00:00 2001 From: Igor Nikonov Date: Fri, 1 Jul 2022 22:50:00 +0000 Subject: [PATCH 496/525] Addressing review comments --- src/Processors/QueryPlan/DistinctStep.cpp | 8 +++++--- tests/performance/distinct_in_order.xml | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index 946af9ca4d6..553732fbcc5 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -82,7 +82,8 @@ DistinctStep::DistinctStep( void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &) { - if (checkColumnsAlreadyDistinct(columns, input_streams.front().distinct_columns)) + const auto & input_stream = input_streams.back(); + if (checkColumnsAlreadyDistinct(columns, input_stream.distinct_columns)) return; if (!pre_distinct) @@ -90,7 +91,6 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil if (optimize_distinct_in_order) { - const auto & input_stream = input_streams.back(); SortDescription distinct_sort_desc = getSortDescription(input_stream.sort_description, columns); if (!distinct_sort_desc.empty()) { @@ -109,8 +109,10 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil return; } /// final distinct for sorted stream (sorting inside and among chunks) - if (input_stream.has_single_port) + if (input_stream.sort_mode == DataStream::SortMode::Stream) { + assert(input_stream.has_single_port); + pipeline.addSimpleTransform( [&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr { diff --git a/tests/performance/distinct_in_order.xml b/tests/performance/distinct_in_order.xml index c4d09aa825b..834a6945622 100644 --- a/tests/performance/distinct_in_order.xml +++ b/tests/performance/distinct_in_order.xml @@ -1,7 +1,7 @@ CREATE TABLE distinct_cardinality_high (high UInt64, medium UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, medium) - INSERT INTO distinct_cardinality_high SELECT number % 10000, number % 1000, number % 100 FROM numbers_mt(1e8) + INSERT INTO distinct_cardinality_high SELECT number % 1e6, number % 1e4, number % 1e2 FROM numbers_mt(1e8) SELECT DISTINCT high FROM distinct_cardinality_high FORMAT Null SELECT DISTINCT high, low FROM distinct_cardinality_high FORMAT Null @@ -17,7 +17,7 @@ CREATE TABLE distinct_cardinality_low (low UInt64, medium UInt64, high UInt64) ENGINE MergeTree() ORDER BY (low, medium) - INSERT INTO distinct_cardinality_low SELECT number % 100, number % 1000, number % 10000 FROM numbers_mt(1e8) + INSERT INTO distinct_cardinality_low SELECT number % 1e2, number % 1e4, number % 1e6 FROM numbers_mt(1e8) SELECT DISTINCT low FROM distinct_cardinality_low FORMAT Null SELECT DISTINCT low, medium FROM distinct_cardinality_low FORMAT Null From 16a4b6aa35f5cd0da41949d65b03e812cbdf2785 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 2 Jul 2022 03:38:18 +0200 Subject: [PATCH 497/525] Fix a bug in `rankCorr` function --- tests/queries/0_stateless/02347_rank_corr_nan.reference | 1 + tests/queries/0_stateless/02347_rank_corr_nan.sql | 1 + 2 files changed, 2 insertions(+) create mode 100644 tests/queries/0_stateless/02347_rank_corr_nan.reference create mode 100644 tests/queries/0_stateless/02347_rank_corr_nan.sql diff --git a/tests/queries/0_stateless/02347_rank_corr_nan.reference b/tests/queries/0_stateless/02347_rank_corr_nan.reference new file mode 100644 index 00000000000..6db331af725 --- /dev/null +++ b/tests/queries/0_stateless/02347_rank_corr_nan.reference @@ -0,0 +1 @@ +nan diff --git a/tests/queries/0_stateless/02347_rank_corr_nan.sql b/tests/queries/0_stateless/02347_rank_corr_nan.sql new file mode 100644 index 00000000000..0fd755259e6 --- /dev/null +++ b/tests/queries/0_stateless/02347_rank_corr_nan.sql @@ -0,0 +1 @@ +SELECT rankCorr(number, nan) FROM numbers(10); From 668f06b2dbefee3956a24723996422277e82b1e5 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 2 Jul 2022 03:40:20 +0200 Subject: [PATCH 498/525] Fix error --- .../AggregateFunctionRankCorrelation.h | 4 ++-- src/AggregateFunctions/StatCommon.h | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionRankCorrelation.h b/src/AggregateFunctions/AggregateFunctionRankCorrelation.h index a9bf8254f35..670dd5948f7 100644 --- a/src/AggregateFunctions/AggregateFunctionRankCorrelation.h +++ b/src/AggregateFunctions/AggregateFunctionRankCorrelation.h @@ -31,8 +31,8 @@ struct RankCorrelationData : public StatisticalSample RanksArray ranks_y; std::tie(ranks_y, std::ignore) = computeRanksAndTieCorrection(this->y); - /// In our case sizes of both samples are equal. - const auto size = this->size_x; + /// Sizes can be non-equal due to skipped NaNs. + const auto size = std::min(this->size_x, this->size_y); /// Count d^2 sum Float64 answer = 0; diff --git a/src/AggregateFunctions/StatCommon.h b/src/AggregateFunctions/StatCommon.h index 29163b63f77..ff824ca11b8 100644 --- a/src/AggregateFunctions/StatCommon.h +++ b/src/AggregateFunctions/StatCommon.h @@ -31,8 +31,8 @@ std::pair computeRanksAndTieCorrection(const Values & value /// Save initial positions, than sort indices according to the values. std::vector indexes(size); std::iota(indexes.begin(), indexes.end(), 0); - ::sort(indexes.begin(), indexes.end(), - [&] (size_t lhs, size_t rhs) { return values[lhs] < values[rhs]; }); + std::sort(indexes.begin(), indexes.end(), + [&] (size_t lhs, size_t rhs) { return values[lhs] < values[rhs]; }); size_t left = 0; Float64 tie_numenator = 0; @@ -74,12 +74,18 @@ struct StatisticalSample void addX(X value, Arena * arena) { + if (isNaN(value)) + return; + ++size_x; x.push_back(value, arena); } void addY(Y value, Arena * arena) { + if (isNaN(value)) + return; + ++size_y; y.push_back(value, arena); } From 9056d80f47c1fd06e7bab50da8b7d23196d0cfe8 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 2 Jul 2022 03:43:32 +0200 Subject: [PATCH 499/525] Add example query to hardware benchmark --- benchmark/hardware.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/benchmark/hardware.sh b/benchmark/hardware.sh index 0c3a1396440..da7b3c81f32 100755 --- a/benchmark/hardware.sh +++ b/benchmark/hardware.sh @@ -217,4 +217,31 @@ TO benchmark; GRANT INSERT ON benchmark_runs TO benchmark; GRANT INSERT ON benchmark_results TO benchmark; +Example query: + +SELECT + cpu_model, + threads, + instance, + k +FROM +( + SELECT + run_id, + exp(avg(log(adjusted_time / best_time))) AS k + FROM + ( + WITH greatest(time, 0.01) AS adjusted_time + SELECT + run_id, + adjusted_time, + min(adjusted_time) OVER (PARTITION BY query_num, try_num) AS best_time + FROM benchmark_results + WHERE try_num > 1 + ) + GROUP BY run_id + ORDER BY k ASC +) AS t +INNER JOIN benchmark_runs USING (run_id) + //// From dde76824ca53f14932d001826d697a46cdcfb6ca Mon Sep 17 00:00:00 2001 From: alesapin Date: Sat, 2 Jul 2022 16:02:42 +0200 Subject: [PATCH 500/525] Fix ub --- src/Coordination/KeeperServer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Coordination/KeeperServer.cpp b/src/Coordination/KeeperServer.cpp index 9d556e6b4ad..2a3d17af403 100644 --- a/src/Coordination/KeeperServer.cpp +++ b/src/Coordination/KeeperServer.cpp @@ -814,6 +814,7 @@ Keeper4LWInfo KeeperServer::getPartiallyFilled4LWInfo() const result.is_follower = !result.is_leader && !result.is_observer; result.has_leader = result.is_leader || isLeaderAlive(); + result.is_standalone = !result.is_follower && getFollowerCount() == 0; if (result.is_leader) { result.follower_count = getFollowerCount(); From e4b81e6de9b5efb8ec8aa079741aaa05ece6719c Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 2 Jul 2022 12:05:52 +0300 Subject: [PATCH 501/525] Add exp_internal for expect tests This is to catch possible issues like 01565_reconnect_after_client_error in [1]. [1]: https://s3.amazonaws.com/clickhouse-test-reports/38417/e33f236d502fe9f7906392f4ceffaee44e3c4ce4/stateless_tests__thread__actions__[3/3].html Signed-off-by: Azat Khuzhin --- tests/clickhouse-test | 52 ++++++++++++++++--- .../01176_mysql_client_interactive.expect | 5 +- .../01179_insert_values_semicolon.expect | 5 +- .../01180_client_syntax_errors.expect | 5 +- ...ient_interactive_vertical_multiline.expect | 5 +- ...ent_interactive_vertical_singleline.expect | 5 +- ...t_save_history_when_terminated_long.expect | 5 +- ..._autocomplete_word_break_characters.expect | 5 +- .../01520_client_print_query_id.expect | 5 +- .../01565_reconnect_after_client_error.expect | 5 +- ...light_multi_line_comment_regression.expect | 5 +- ...ient_replxx_container_overflow_long.expect | 5 +- ...01933_client_replxx_convert_history.expect | 5 +- .../01945_show_debug_warning.expect | 5 +- .../02003_memory_limit_in_client.expect | 6 ++- .../0_stateless/02047_client_exception.expect | 5 +- .../02049_clickhouse_local_merge_tree.expect | 5 +- .../02105_backslash_letter_commands.expect | 5 +- ...clickhouse_client_with_queries_file.expect | 6 ++- .../02112_delayed_clickhouse_local.expect | 5 +- ..._clickhouse_local_with_queries_file.expect | 6 ++- .../02116_interactive_hello.expect | 5 +- .../02132_client_history_navigation.expect | 5 +- ...160_client_autocomplete_parse_query.expect | 5 +- ...ckhouse_local_interactive_exception.expect | 5 +- utils/check-style/check-style | 6 +++ 26 files changed, 148 insertions(+), 33 deletions(-) diff --git a/tests/clickhouse-test b/tests/clickhouse-test index f21d1734029..083eb3830fa 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -499,6 +499,7 @@ class TestCase: database = testcase_args.database os.environ.setdefault("CLICKHOUSE_DATABASE", database) os.environ.setdefault("CLICKHOUSE_TMP", suite_tmp_dir) + testcase_args.test_tmp_dir = suite_tmp_dir else: # If --database is not specified, we will create temporary database with # unique name and we will recreate and drop it for each test @@ -529,6 +530,16 @@ class TestCase: testcase_args.testcase_database = database + # Printed only in case of failures + # + # NOTE: here we use "CLICKHOUSE_TMP" instead of "file_suffix", + # so it is installed in configure_testcase_args() unlike other files + # (stdout_file, stderr_file) in TestCase::__init__(). + # Since using CLICKHOUSE_TMP is easier to use in expect. + testcase_args.debug_log_file = ( + os.path.join(testcase_args.test_tmp_dir, testcase_basename) + ".debuglog" + ) + return testcase_args def cli_random_settings(self) -> str: @@ -699,7 +710,7 @@ class TestCase: return None - def process_result_impl(self, proc, stdout: str, stderr: str, total_time: float): + def process_result_impl(self, proc, stdout: str, stderr: str, debug_log: str, total_time: float): description = "" if proc: @@ -712,6 +723,9 @@ class TestCase: if stderr: description += stderr + if debug_log: + description += "\n" + description += debug_log return TestResult( self.name, TestStatus.FAIL, @@ -727,6 +741,9 @@ class TestCase: if stderr: description += "\n" description += stderr + if debug_log: + description += "\n" + description += debug_log # Stop on fatal errors like segmentation fault. They are sent to client via logs. if " " in stderr: @@ -757,6 +774,9 @@ class TestCase: if stderr: description += "\n{}\n".format("\n".join(stderr.splitlines()[:100])) description += f"\nstdout:\n{stdout}\n" + if debug_log: + description += "\n" + description += debug_log return TestResult( self.name, TestStatus.FAIL, @@ -767,6 +787,9 @@ class TestCase: if "Exception" in stdout: description += "\n{}\n".format("\n".join(stdout.splitlines()[:100])) + if debug_log: + description += "\n" + description += debug_log return TestResult( self.name, TestStatus.FAIL, @@ -813,6 +836,9 @@ class TestCase: universal_newlines=True, ).communicate()[0] description += f"\n{diff}\n" + if debug_log: + description += "\n" + description += debug_log return TestResult( self.name, TestStatus.FAIL, @@ -826,6 +852,9 @@ class TestCase: and total_time > 60 and "long" not in self.tags ): + if debug_log: + description += "\n" + description += debug_log # We're in Flaky Check mode, check the run time as well while we're at it. return TestResult( self.name, @@ -839,6 +868,8 @@ class TestCase: os.remove(self.stdout_file) if os.path.exists(self.stderr_file): os.remove(self.stderr_file) + if os.path.exists(self.testcase_args.debug_log_file): + os.remove(self.testcase_args.debug_log_file) return TestResult(self.name, TestStatus.OK, None, total_time, description) @@ -872,7 +903,7 @@ class TestCase: def run_single_test( self, server_logs_level, client_options - ) -> Tuple[Optional[Popen], str, str, float]: + ) -> Tuple[Optional[Popen], str, str, str, float]: args = self.testcase_args client = args.testcase_client start_time = args.testcase_start_time @@ -922,6 +953,13 @@ class TestCase: ) need_drop_database = not maybe_passed + debug_log = "" + if os.path.exists(self.testcase_args.debug_log_file): + with open(self.testcase_args.debug_log_file, "rb") as stream: + debug_log += self.testcase_args.debug_log_file + ":\n" + debug_log += str(stream.read(), errors="replace", encoding="utf-8") + debug_log += "\n" + if need_drop_database: seconds_left = max( args.timeout - (datetime.now() - start_time).total_seconds(), 20 @@ -941,6 +979,7 @@ class TestCase: None, "", f"Timeout dropping database {database} after test", + debug_log, total_time, ) shutil.rmtree(args.test_tmp_dir) @@ -964,12 +1003,13 @@ class TestCase: if os.path.exists(self.stdout_file): with open(self.stdout_file, "rb") as stdfd: stdout = str(stdfd.read(), errors="replace", encoding="utf-8") + stderr = "" if os.path.exists(self.stderr_file): with open(self.stderr_file, "rb") as stdfd: - stderr = str(stdfd.read(), errors="replace", encoding="utf-8") + stderr += str(stdfd.read(), errors="replace", encoding="utf-8") - return proc, stdout, stderr, total_time + return proc, stdout, stderr, debug_log, total_time def run(self, args, suite, client_options, server_logs_level): try: @@ -994,11 +1034,11 @@ class TestCase: args, self.case_file, suite.suite_tmp_path ) client_options = self.add_random_settings(args, client_options) - proc, stdout, stderr, total_time = self.run_single_test( + proc, stdout, stderr, debug_log, total_time = self.run_single_test( server_logs_level, client_options ) - result = self.process_result_impl(proc, stdout, stderr, total_time) + result = self.process_result_impl(proc, stdout, stderr, debug_log, total_time) result.check_if_need_retry(args, stdout, stderr, self.runs_count) if result.status == TestStatus.FAIL: result.description = self.add_info_about_settings( diff --git a/tests/queries/0_stateless/01176_mysql_client_interactive.expect b/tests/queries/0_stateless/01176_mysql_client_interactive.expect index 5bbc77ccf14..8d23b3bef60 100755 --- a/tests/queries/0_stateless/01176_mysql_client_interactive.expect +++ b/tests/queries/0_stateless/01176_mysql_client_interactive.expect @@ -2,6 +2,10 @@ # Tags: no-fasttest # Tag no-fasttest: requires mysql client +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -13,7 +17,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$MYSQL_CLIENT_BINARY \$MYSQL_CLIENT_OPT" expect -nocase -re "mysql.*> " diff --git a/tests/queries/0_stateless/01179_insert_values_semicolon.expect b/tests/queries/0_stateless/01179_insert_values_semicolon.expect index bf937c3a6a4..9d35941ae40 100755 --- a/tests/queries/0_stateless/01179_insert_values_semicolon.expect +++ b/tests/queries/0_stateless/01179_insert_values_semicolon.expect @@ -1,6 +1,10 @@ #!/usr/bin/expect -f # Tags: long +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -11,7 +15,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/01180_client_syntax_errors.expect b/tests/queries/0_stateless/01180_client_syntax_errors.expect index 6e4e975988e..da3dfbec6df 100755 --- a/tests/queries/0_stateless/01180_client_syntax_errors.expect +++ b/tests/queries/0_stateless/01180_client_syntax_errors.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -10,7 +14,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/01293_client_interactive_vertical_multiline.expect b/tests/queries/0_stateless/01293_client_interactive_vertical_multiline.expect index 07bdbcdac76..bab1dd224cf 100755 --- a/tests/queries/0_stateless/01293_client_interactive_vertical_multiline.expect +++ b/tests/queries/0_stateless/01293_client_interactive_vertical_multiline.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 10 match_max 100000 @@ -14,7 +18,6 @@ expect_after { # useful debugging configuration # exp_internal 1 -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/01293_client_interactive_vertical_singleline.expect b/tests/queries/0_stateless/01293_client_interactive_vertical_singleline.expect index 085a1140753..83eced841ce 100755 --- a/tests/queries/0_stateless/01293_client_interactive_vertical_singleline.expect +++ b/tests/queries/0_stateless/01293_client_interactive_vertical_singleline.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -10,7 +14,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/01300_client_save_history_when_terminated_long.expect b/tests/queries/0_stateless/01300_client_save_history_when_terminated_long.expect index ad5b7625929..06a60ed95a2 100755 --- a/tests/queries/0_stateless/01300_client_save_history_when_terminated_long.expect +++ b/tests/queries/0_stateless/01300_client_save_history_when_terminated_long.expect @@ -1,6 +1,10 @@ #!/usr/bin/expect -f # Tags: long +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -10,7 +14,6 @@ expect_after { # A default timeout action is to do nothing, change it to fail timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/01370_client_autocomplete_word_break_characters.expect b/tests/queries/0_stateless/01370_client_autocomplete_word_break_characters.expect index 9c20b7c517e..fff0dd015e1 100755 --- a/tests/queries/0_stateless/01370_client_autocomplete_word_break_characters.expect +++ b/tests/queries/0_stateless/01370_client_autocomplete_word_break_characters.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -10,7 +14,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT" expect ":) " diff --git a/tests/queries/0_stateless/01520_client_print_query_id.expect b/tests/queries/0_stateless/01520_client_print_query_id.expect index 8b6e0e17a85..0e8f660041d 100755 --- a/tests/queries/0_stateless/01520_client_print_query_id.expect +++ b/tests/queries/0_stateless/01520_client_print_query_id.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -10,7 +14,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/01565_reconnect_after_client_error.expect b/tests/queries/0_stateless/01565_reconnect_after_client_error.expect index 819450ffd30..035698f524b 100755 --- a/tests/queries/0_stateless/01565_reconnect_after_client_error.expect +++ b/tests/queries/0_stateless/01565_reconnect_after_client_error.expect @@ -4,6 +4,10 @@ # This is a separate test, because we want to test the interactive mode. # https://github.com/ClickHouse/ClickHouse/issues/19353 +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -15,7 +19,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion -mn" expect "\n:) " diff --git a/tests/queries/0_stateless/01755_client_highlight_multi_line_comment_regression.expect b/tests/queries/0_stateless/01755_client_highlight_multi_line_comment_regression.expect index 022320e2d4b..3d9c633eb44 100755 --- a/tests/queries/0_stateless/01755_client_highlight_multi_line_comment_regression.expect +++ b/tests/queries/0_stateless/01755_client_highlight_multi_line_comment_regression.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -10,7 +14,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/01910_client_replxx_container_overflow_long.expect b/tests/queries/0_stateless/01910_client_replxx_container_overflow_long.expect index d5ce4c3cbf2..1be56675b33 100755 --- a/tests/queries/0_stateless/01910_client_replxx_container_overflow_long.expect +++ b/tests/queries/0_stateless/01910_client_replxx_container_overflow_long.expect @@ -1,6 +1,10 @@ #!/usr/bin/expect -f # Tags: long +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -10,7 +14,6 @@ expect_after { # A default timeout action is to do nothing, change it to fail timeout { exit 1 } } -set basedir [file dirname $argv0] # history file is not required, in-memory history is enough spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --history_file=$basedir/01910_client_replxx_container_overflow_long.history.log" diff --git a/tests/queries/0_stateless/01933_client_replxx_convert_history.expect b/tests/queries/0_stateless/01933_client_replxx_convert_history.expect index c5645179ab3..111389e49b2 100755 --- a/tests/queries/0_stateless/01933_client_replxx_convert_history.expect +++ b/tests/queries/0_stateless/01933_client_replxx_convert_history.expect @@ -2,6 +2,10 @@ # Tags: no-parallel # Tag no-parallel: Uses non unique history file +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -11,7 +15,6 @@ expect_after { # A default timeout action is to do nothing, change it to fail timeout { exit 1 } } -set basedir [file dirname $argv0] exec bash -c "echo select 1 > $argv0.txt" exec bash -c "echo select 1 >> $argv0.txt" diff --git a/tests/queries/0_stateless/01945_show_debug_warning.expect b/tests/queries/0_stateless/01945_show_debug_warning.expect index 2f74b6e33ae..ca423ee106c 100755 --- a/tests/queries/0_stateless/01945_show_debug_warning.expect +++ b/tests/queries/0_stateless/01945_show_debug_warning.expect @@ -3,6 +3,10 @@ # This is a test for system.warnings. Testing in interactive mode is necessary, # as we want to see certain warnings from client +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -14,7 +18,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] set Debug_type 0 spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" diff --git a/tests/queries/0_stateless/02003_memory_limit_in_client.expect b/tests/queries/0_stateless/02003_memory_limit_in_client.expect index a3d6d04110a..a8e8c1d5786 100755 --- a/tests/queries/0_stateless/02003_memory_limit_in_client.expect +++ b/tests/queries/0_stateless/02003_memory_limit_in_client.expect @@ -4,6 +4,10 @@ # This is a test for system.warnings. Testing in interactive mode is necessary, # as we want to see certain warnings from client +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -15,8 +19,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] - # # Check that the query will fail in clickhouse-client # diff --git a/tests/queries/0_stateless/02047_client_exception.expect b/tests/queries/0_stateless/02047_client_exception.expect index f7d4bfb555d..50ed09d03c5 100755 --- a/tests/queries/0_stateless/02047_client_exception.expect +++ b/tests/queries/0_stateless/02047_client_exception.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 20 match_max 100000 @@ -11,7 +15,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/02049_clickhouse_local_merge_tree.expect b/tests/queries/0_stateless/02049_clickhouse_local_merge_tree.expect index ffa25b964db..a9905128ad5 100755 --- a/tests/queries/0_stateless/02049_clickhouse_local_merge_tree.expect +++ b/tests/queries/0_stateless/02049_clickhouse_local_merge_tree.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 20 match_max 100000 @@ -11,7 +15,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_LOCAL --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/02105_backslash_letter_commands.expect b/tests/queries/0_stateless/02105_backslash_letter_commands.expect index e67d60912fa..707a544f6bb 100755 --- a/tests/queries/0_stateless/02105_backslash_letter_commands.expect +++ b/tests/queries/0_stateless/02105_backslash_letter_commands.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 02 match_max 100000 @@ -10,7 +14,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect ":) " diff --git a/tests/queries/0_stateless/02112_delayed_clickhouse_client_with_queries_file.expect b/tests/queries/0_stateless/02112_delayed_clickhouse_client_with_queries_file.expect index 0abe25e60f4..4fd430a4a69 100755 --- a/tests/queries/0_stateless/02112_delayed_clickhouse_client_with_queries_file.expect +++ b/tests/queries/0_stateless/02112_delayed_clickhouse_client_with_queries_file.expect @@ -1,6 +1,10 @@ #!/usr/bin/expect -f # Tags: no-parallel +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 20 match_max 100000 @@ -12,8 +16,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] - system "$basedir/helpers/02112_prepare.sh" spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT --disable_suggestion --interactive --queries-file $basedir/file_02112" expect ":) " diff --git a/tests/queries/0_stateless/02112_delayed_clickhouse_local.expect b/tests/queries/0_stateless/02112_delayed_clickhouse_local.expect index c846464b011..a90e85d1069 100755 --- a/tests/queries/0_stateless/02112_delayed_clickhouse_local.expect +++ b/tests/queries/0_stateless/02112_delayed_clickhouse_local.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 20 match_max 100000 @@ -11,7 +15,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_LOCAL --disable_suggestion --interactive --query 'create table t(i Int32) engine=Memory; insert into t select 1'" expect ":) " diff --git a/tests/queries/0_stateless/02112_delayed_clickhouse_local_with_queries_file.expect b/tests/queries/0_stateless/02112_delayed_clickhouse_local_with_queries_file.expect index c64f149a93c..34eac360132 100755 --- a/tests/queries/0_stateless/02112_delayed_clickhouse_local_with_queries_file.expect +++ b/tests/queries/0_stateless/02112_delayed_clickhouse_local_with_queries_file.expect @@ -1,6 +1,10 @@ #!/usr/bin/expect -f # Tags: no-parallel +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 20 match_max 100000 @@ -12,8 +16,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] - system "$basedir/helpers/02112_prepare.sh" spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_LOCAL --disable_suggestion --interactive --queries-file $basedir/file_02112" expect ":) " diff --git a/tests/queries/0_stateless/02116_interactive_hello.expect b/tests/queries/0_stateless/02116_interactive_hello.expect index e659cf8703c..5fa31d33e87 100755 --- a/tests/queries/0_stateless/02116_interactive_hello.expect +++ b/tests/queries/0_stateless/02116_interactive_hello.expect @@ -1,6 +1,10 @@ #!/usr/bin/expect -f # Tags: long +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 match_max 100000 @@ -12,7 +16,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion" expect -re "ClickHouse client version \[\\d\]{2}.\[\\d\]{1,2}.\[\\d\]{1,2}.\[\\d\]{1,2}.\r" diff --git a/tests/queries/0_stateless/02132_client_history_navigation.expect b/tests/queries/0_stateless/02132_client_history_navigation.expect index b722a0af04c..10167fb2e97 100755 --- a/tests/queries/0_stateless/02132_client_history_navigation.expect +++ b/tests/queries/0_stateless/02132_client_history_navigation.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 3 match_max 100000 @@ -14,7 +18,6 @@ expect_after { # useful debugging configuration # exp_internal 1 -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion --highlight 0" expect ":) " diff --git a/tests/queries/0_stateless/02160_client_autocomplete_parse_query.expect b/tests/queries/0_stateless/02160_client_autocomplete_parse_query.expect index a77de874010..b95f85403e3 100755 --- a/tests/queries/0_stateless/02160_client_autocomplete_parse_query.expect +++ b/tests/queries/0_stateless/02160_client_autocomplete_parse_query.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 60 set uuid "" @@ -11,7 +15,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT" expect ":) " diff --git a/tests/queries/0_stateless/02164_clickhouse_local_interactive_exception.expect b/tests/queries/0_stateless/02164_clickhouse_local_interactive_exception.expect index 4f006b926bd..f70b699c71f 100755 --- a/tests/queries/0_stateless/02164_clickhouse_local_interactive_exception.expect +++ b/tests/queries/0_stateless/02164_clickhouse_local_interactive_exception.expect @@ -1,5 +1,9 @@ #!/usr/bin/expect -f +set basedir [file dirname $argv0] +set basename [file tail $argv0] +exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0 + log_user 0 set timeout 20 match_max 100000 @@ -9,7 +13,6 @@ expect_after { timeout { exit 1 } } -set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_LOCAL --disable_suggestion" expect ":) " diff --git a/utils/check-style/check-style b/utils/check-style/check-style index 84ce7ae5742..adae3068dcd 100755 --- a/utils/check-style/check-style +++ b/utils/check-style/check-style @@ -314,6 +314,12 @@ for test_case in "${tests_with_event_time_date[@]}"; do } done +expect_tests=( $(find $ROOT_PATH/tests/queries -name '*.expect') ) +for test_case in "${expect_tests[@]}"; do + pattern="^exp_internal -f \$env(CLICKHOUSE_TMP)/\$basename.debuglog 0$" + grep -q "$pattern" "$test_case" || echo "Missing '$pattern' in '$test_case'" +done + # Conflict markers find $ROOT_PATH/{src,base,programs,utils,tests,docs,website,cmake} -name '*.md' -or -name '*.cpp' -or -name '*.h' | xargs grep -P '^(<<<<<<<|=======|>>>>>>>)$' | grep -P '.' && echo "Conflict markers are found in files" From 4ba4329e0de3e853ca3da7892d4aeedc7ff848df Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 2 Jul 2022 19:48:42 +0200 Subject: [PATCH 502/525] Fix bad test --- .../queries/0_stateless/01848_http_insert_segfault.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/queries/0_stateless/01848_http_insert_segfault.sh b/tests/queries/0_stateless/01848_http_insert_segfault.sh index c766e9794ae..1f2e9eebcdc 100755 --- a/tests/queries/0_stateless/01848_http_insert_segfault.sh +++ b/tests/queries/0_stateless/01848_http_insert_segfault.sh @@ -1,7 +1,9 @@ #!/usr/bin/env bash +# Tags: no-tsan +# Sometimes is takes longer than 60 seconds under TSan. - CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) - # shellcheck source=../shell_config.sh - . "$CUR_DIR"/../shell_config.sh +CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +# shellcheck source=../shell_config.sh +. "$CUR_DIR"/../shell_config.sh - ${CLICKHOUSE_LOCAL} -q "select col1, initializeAggregation('argMaxState', col2, insertTime) as col2, now() as insertTime FROM generateRandom('col1 String, col2 Array(Float64)') LIMIT 1000000 FORMAT CSV" | ${CLICKHOUSE_CURL} -s 'http://localhost:8123/?query=INSERT%20INTO%20non_existing_table%20SELECT%20col1%2C%20initializeAggregation(%27argMaxState%27%2C%20col2%2C%20insertTime)%20as%20col2%2C%20now()%20as%20insertTime%20FROM%20input(%27col1%20String%2C%20col2%20Array(Float64)%27)%20FORMAT%20CSV' --data-binary @- | grep -q "Table default.non_existing_table doesn't exist" && echo 'Ok.' || echo 'FAIL' ||: +${CLICKHOUSE_LOCAL} --query "select col1, initializeAggregation('argMaxState', col2, insertTime) as col2, now() as insertTime FROM generateRandom('col1 String, col2 Array(Float64)') LIMIT 1000000 FORMAT CSV" | ${CLICKHOUSE_CURL} -s 'http://localhost:8123/?query=INSERT%20INTO%20non_existing_table%20SELECT%20col1%2C%20initializeAggregation(%27argMaxState%27%2C%20col2%2C%20insertTime)%20as%20col2%2C%20now()%20as%20insertTime%20FROM%20input(%27col1%20String%2C%20col2%20Array(Float64)%27)%20FORMAT%20CSV' --data-binary @- | grep -q "Table default.non_existing_table doesn't exist" && echo 'Ok.' || echo 'FAIL' ||: From 9b8fc6a5a652271d661af015e53a84d1ebe19743 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 2 Jul 2022 21:46:04 +0300 Subject: [PATCH 503/525] Fix CLICKHOUSE_TMP in tests Previous it was not updated, and always uses the first CLICKHOUSE_TMP for all tests (that was run from one thread). Signed-off-by: Azat Khuzhin --- tests/clickhouse-test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 083eb3830fa..cab6daf3a50 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -526,7 +526,7 @@ class TestCase: # collisions. testcase_args.test_tmp_dir = os.path.join(suite_tmp_dir, database) os.mkdir(testcase_args.test_tmp_dir) - os.environ.setdefault("CLICKHOUSE_TMP", testcase_args.test_tmp_dir) + os.environ["CLICKHOUSE_TMP"] = testcase_args.test_tmp_dir testcase_args.testcase_database = database From 92cbc2a3b5ce0fa192c31e3efe904456e06321fe Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Sat, 2 Jul 2022 22:13:48 +0200 Subject: [PATCH 504/525] Tests with long arrays --- .../02282_array_distance.reference | 66 ++++++++++++++----- .../0_stateless/02282_array_distance.sql | 54 +++++++++++++-- .../0_stateless/02283_array_norm.reference | 12 ++++ .../queries/0_stateless/02283_array_norm.sql | 6 +- 4 files changed, 111 insertions(+), 27 deletions(-) diff --git a/tests/queries/0_stateless/02282_array_distance.reference b/tests/queries/0_stateless/02282_array_distance.reference index e5bc46df295..a63ea0a634d 100644 --- a/tests/queries/0_stateless/02282_array_distance.reference +++ b/tests/queries/0_stateless/02282_array_distance.reference @@ -32,21 +32,51 @@ nan 0.020204102886728692 0.11808289631180313 0 -1 1 218.74642854227358 47850 -1 2 1348.2117786164013 1817675 -2 1 219.28064210048274 48084 -2 2 1347.4008312302617 1815489 -3 1 214.35251339790725 45947 -3 2 1342.8856987845243 1803342 -1 1 218.74642854227358 47850 -1 2 1348.2117786164013 1817675 -2 1 219.28064210048274 48084 -2 2 1347.4008312302617 1815489 -3 1 214.35251339790725 45947 -3 2 1342.8856987845243 1803342 -1 1 218.74642854227358 47850 -1 2 1348.2117786164013 1817675 -2 1 219.28064210048274 48084 -2 2 1347.4008312302617 1815489 -3 1 214.35251339790725 45947 -3 2 1342.8856987845243 1803342 +1 1 0 0 0 0 0 0 +1 2 2031 788 981.3289733414064 1182.129011571918 1397429 0.1939823640079572 +2 1 2031 788 981.3289733414064 1182.129011571918 1397429 0.1939823640079572 +2 2 0 0 0 0 0 0 +3 3 0 0 0 0 0 0 +3 4 68 2 6.238144819822315 11.661903789690601 136 0.0010041996325123037 +4 3 68 2 6.238144819822315 11.661903789690601 136 0.0010041996325123037 +4 4 0 0 0 0 0 0 +5 5 0 0 0 0 0 0 +5 6 268 2 9.70940985211152 23.15167380558045 536 0.00007815428961455151 +6 5 268 2 9.70940985211152 23.15167380558045 536 0.00007815428961455151 +6 6 0 0 0 0 0 0 +1 1 0 0 0 0 0 0 +1 2 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 +2 1 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 +2 2 0 0 0 0 0 0 +3 3 0 0 0 0 0 0 +3 4 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 +4 3 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 +4 4 0 0 0 0 0 0 +5 5 0 0 0 0 0 0 +5 6 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 +6 5 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 +6 6 0 0 0 0 0 0 +1 1 0 0 0 0 0 0 +1 2 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 +2 1 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 +2 2 0 0 0 0 0 0 +3 3 0 0 0 0 0 0 +3 4 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 +4 3 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 +4 4 0 0 0 0 0 0 +5 5 0 0 0 0 0 0 +5 6 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 +6 5 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 +6 6 0 0 0 0 0 0 +1 1 0 0 0 0 0 0 +1 2 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 +2 1 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 +2 2 0 0 0 0 0 0 +3 3 0 0 0 0 0 0 +3 4 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 +4 3 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 +4 4 0 0 0 0 0 0 +5 5 0 0 0 0 0 0 +5 6 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 +6 5 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 +6 6 0 0 0 0 0 0 diff --git a/tests/queries/0_stateless/02282_array_distance.sql b/tests/queries/0_stateless/02282_array_distance.sql index 431704abd40..9c16071dc1f 100644 --- a/tests/queries/0_stateless/02282_array_distance.sql +++ b/tests/queries/0_stateless/02282_array_distance.sql @@ -37,14 +37,56 @@ SELECT cosineDistance([3, 2, 1], v) FROM vec1; SELECT LinfDistance(v, materialize([0, -2, 0])) FROM vec1; SELECT cosineDistance(v, materialize([1., 1., 1.])) FROM vec1; -INSERT INTO vec2 VALUES (1, [100, 200, 0]), (2, [888, 777, 666]); -SELECT v1.id, v2.id, L2Distance(v1.v, v2.v), L2SquaredDistance(v1.v, v2.v) as dist FROM vec1 v1, vec2 v2; +INSERT INTO vec2 VALUES (1, [100, 200, 0]), (2, [888, 777, 666]), (3, range(1, 35, 1)), (4, range(3, 37, 1)), (5, range(1, 135, 1)), (6, range(3, 137, 1)); +SELECT + v1.id, + v2.id, + L1Distance(v1.v, v2.v), + LinfDistance(v1.v, v2.v), + LpDistance(v1.v, v2.v, 3.1), + L2Distance(v1.v, v2.v), + L2SquaredDistance(v1.v, v2.v), + cosineDistance(v1.v, v2.v) +FROM vec2 v1, vec2 v2 +WHERE length(v1.v) == length(v2.v); -INSERT INTO vec2f VALUES (1, [100, 200, 0]), (2, [888, 777, 666]); -SELECT v1.id, v2.id, L2Distance(v1.v, v2.v), L2SquaredDistance(v1.v, v2.v) as dist FROM vec1 v1, vec2f v2; +INSERT INTO vec2f VALUES (1, [100, 200, 0]), (2, [888, 777, 666]), (3, range(1, 35, 1)), (4, range(3, 37, 1)), (5, range(1, 135, 1)), (6, range(3, 137, 1)); +SELECT + v1.id, + v2.id, + L1Distance(v1.v, v2.v), + LinfDistance(v1.v, v2.v), + LpDistance(v1.v, v2.v, 3), + L2Distance(v1.v, v2.v), + L2SquaredDistance(v1.v, v2.v), + cosineDistance(v1.v, v2.v) +FROM vec2f v1, vec2f v2 +WHERE length(v1.v) == length(v2.v); -INSERT INTO vec2d VALUES (1, [100, 200, 0]), (2, [888, 777, 666]); -SELECT v1.id, v2.id, L2Distance(v1.v, v2.v), L2SquaredDistance(v1.v, v2.v) as dist FROM vec1 v1, vec2d v2; +INSERT INTO vec2d VALUES (1, [100, 200, 0]), (2, [888, 777, 666]), (3, range(1, 35, 1)), (4, range(3, 37, 1)), (5, range(1, 135, 1)), (6, range(3, 137, 1)); +SELECT + v1.id, + v2.id, + L1Distance(v1.v, v2.v), + LinfDistance(v1.v, v2.v), + LpDistance(v1.v, v2.v, 3), + L2Distance(v1.v, v2.v), + L2SquaredDistance(v1.v, v2.v), + cosineDistance(v1.v, v2.v) +FROM vec2d v1, vec2d v2 +WHERE length(v1.v) == length(v2.v); + +SELECT + v1.id, + v2.id, + L1Distance(v1.v, v2.v), + LinfDistance(v1.v, v2.v), + LpDistance(v1.v, v2.v, 3), + L2Distance(v1.v, v2.v), + L2SquaredDistance(v1.v, v2.v), + cosineDistance(v1.v, v2.v) +FROM vec2f v1, vec2d v2 +WHERE length(v1.v) == length(v2.v); SELECT L1Distance([0, 0], [1]); -- { serverError 190 } SELECT L2Distance([1, 2], (3,4)); -- { serverError 43 } diff --git a/tests/queries/0_stateless/02283_array_norm.reference b/tests/queries/0_stateless/02283_array_norm.reference index 86a77e27172..17abb889e24 100644 --- a/tests/queries/0_stateless/02283_array_norm.reference +++ b/tests/queries/0_stateless/02283_array_norm.reference @@ -8,23 +8,35 @@ 2 2 2 4 2 2 3 9 5.196152422706632 27 4.506432087111623 3 4 0 0 0 0 0 +5 330 78.16648898345122 6110 54.82161001608108 26 +6 5250 599.12436104702 358950 350.73959029428204 102 1 11 2 11 3 11 4 11 +5 11 +6 11 1 7 5 25 4.601724723020627 4 2 2 2 4 2 2 3 9 5.196152422706632 27 4.506432087111623 3 4 0 0 0 0 0 +5 330 78.16648898345122 6110 54.82161001608108 26 +6 5250 599.12436104702 358950 350.73959029428204 102 1 11 2 11 3 11 4 11 +5 11 +6 11 1 7 5 25 4.601724723020627 4 2 2 2 4 2 2 3 9 5.196152422706632 27 4.506432087111623 3 4 0 0 0 0 0 +5 330 78.16648898345122 6110 54.82161001608108 26 +6 5250 599.12436104702 358950 350.73959029428204 102 1 11 2 11 3 11 4 11 +5 11 +6 11 diff --git a/tests/queries/0_stateless/02283_array_norm.sql b/tests/queries/0_stateless/02283_array_norm.sql index 2f5753f9943..dcb5288a1ac 100644 --- a/tests/queries/0_stateless/02283_array_norm.sql +++ b/tests/queries/0_stateless/02283_array_norm.sql @@ -21,9 +21,9 @@ DROP TABLE IF EXISTS vec1d; CREATE TABLE vec1 (id UInt64, v Array(UInt8)) ENGINE = Memory; CREATE TABLE vec1f (id UInt64, v Array(Float32)) ENGINE = Memory; CREATE TABLE vec1d (id UInt64, v Array(Float64)) ENGINE = Memory; -INSERT INTO vec1 VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL); -INSERT INTO vec1f VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL); -INSERT INTO vec1d VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL); +INSERT INTO vec1 VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL), (5, range(7, 27)), (6, range(3, 103)); +INSERT INTO vec1f VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL), (5, range(7, 27)), (6, range(3, 103)); +INSERT INTO vec1d VALUES (1, [3, 4]), (2, [2]), (3, [3, 3, 3]), (4, NULL), (5, range(7, 27)), (6, range(3, 103)); SELECT id, L1Norm(v), L2Norm(v), L2SquaredNorm(v), LpNorm(v, 2.7), LinfNorm(v) FROM vec1; SELECT id, L1Norm(materialize([5., 6.])) FROM vec1; From c6691cc5f29222763d4f7fa37addf99f4ef8048b Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Sat, 2 Jul 2022 22:34:06 +0200 Subject: [PATCH 505/525] Improved vectorized execution of main loop for array norm/distance --- src/Functions/array/arrayDistance.cpp | 69 +++++++++++++++++-- src/Functions/array/arrayNorm.cpp | 41 ++++++++++- .../02282_array_distance.reference | 8 +-- 3 files changed, 107 insertions(+), 11 deletions(-) diff --git a/src/Functions/array/arrayDistance.cpp b/src/Functions/array/arrayDistance.cpp index 21e05916a5c..a8fea9b02fb 100644 --- a/src/Functions/array/arrayDistance.cpp +++ b/src/Functions/array/arrayDistance.cpp @@ -38,6 +38,12 @@ struct L1Distance state.sum += fabs(x - y); } + template + static void combine(State & state, const State & other_state, const ConstParams &) + { + state.sum += other_state.sum; + } + template static ResultType finalize(const State & state, const ConstParams &) { @@ -63,6 +69,12 @@ struct L2Distance state.sum += (x - y) * (x - y); } + template + static void combine(State & state, const State & other_state, const ConstParams &) + { + state.sum += other_state.sum; + } + template static ResultType finalize(const State & state, const ConstParams &) { @@ -103,6 +115,12 @@ struct LpDistance state.sum += std::pow(fabs(x - y), params.power); } + template + static void combine(State & state, const State & other_state, const ConstParams &) + { + state.sum += other_state.sum; + } + template static ResultType finalize(const State & state, const ConstParams & params) { @@ -128,6 +146,12 @@ struct LinfDistance state.dist = fmax(state.dist, fabs(x - y)); } + template + static void combine(State & state, const State & other_state, const ConstParams &) + { + state.dist = fmax(state.dist, other_state.dist); + } + template static ResultType finalize(const State & state, const ConstParams &) { @@ -157,6 +181,14 @@ struct CosineDistance state.y_squared += y * y; } + template + static void combine(State & state, const State & other_state, const ConstParams &) + { + state.dot_prod += other_state.dot_prod; + state.x_squared += other_state.x_squared; + state.y_squared += other_state.y_squared; + } + template static ResultType finalize(const State & state, const ConstParams &) { @@ -339,10 +371,23 @@ private: size_t row = 0; for (auto off : offsets_x) { - typename Kernel::template State state; + /// Process chunks in vectorized manner + static constexpr size_t VEC_SIZE = 4; + typename Kernel::template State states[VEC_SIZE]; + for (; prev + VEC_SIZE < off; prev += VEC_SIZE) + { + for (size_t s = 0; s < VEC_SIZE; ++s) + Kernel::template accumulate(states[s], data_x[prev+s], data_y[prev+s], kernel_params); + } + + typename Kernel::template State state; + for (const auto & other_state : states) + Kernel::template combine(state, other_state, kernel_params); + + /// Process the tail for (; prev < off; ++prev) { - Kernel::template accumulate(state, data_x[prev], data_y[prev], kernel_params); + Kernel::template accumulate(state, data_x[prev], data_y[prev], kernel_params); } result_data[row] = Kernel::finalize(state, kernel_params); row++; @@ -392,10 +437,24 @@ private: size_t row = 0; for (auto off : offsets_y) { - typename Kernel::template State state; - for (size_t i = 0; prev < off; ++i, ++prev) + /// Process chunks in vectorized manner + static constexpr size_t VEC_SIZE = 4; + typename Kernel::template State states[VEC_SIZE]; + size_t i = 0; + for (; prev + VEC_SIZE < off; i += VEC_SIZE, prev += VEC_SIZE) { - Kernel::template accumulate(state, data_x[i], data_y[prev], kernel_params); + for (size_t s = 0; s < VEC_SIZE; ++s) + Kernel::template accumulate(states[s], data_x[i+s], data_y[prev+s], kernel_params); + } + + typename Kernel::template State state; + for (const auto & other_state : states) + Kernel::template combine(state, other_state, kernel_params); + + /// Process the tail + for (; prev < off; ++i, ++prev) + { + Kernel::template accumulate(state, data_x[i], data_y[prev], kernel_params); } result_data[row] = Kernel::finalize(state, kernel_params); row++; diff --git a/src/Functions/array/arrayNorm.cpp b/src/Functions/array/arrayNorm.cpp index 3ea16b23abd..5db330f9a2f 100644 --- a/src/Functions/array/arrayNorm.cpp +++ b/src/Functions/array/arrayNorm.cpp @@ -31,6 +31,12 @@ struct L1Norm return result + fabs(value); } + template + inline static ResultType combine(ResultType result, ResultType other_result, const ConstParams &) + { + return result + other_result; + } + template inline static ResultType finalize(ResultType result, const ConstParams &) { @@ -50,6 +56,12 @@ struct L2Norm return result + value * value; } + template + inline static ResultType combine(ResultType result, ResultType other_result, const ConstParams &) + { + return result + other_result; + } + template inline static ResultType finalize(ResultType result, const ConstParams &) { @@ -85,6 +97,12 @@ struct LpNorm return result + std::pow(fabs(value), params.power); } + template + inline static ResultType combine(ResultType result, ResultType other_result, const ConstParams &) + { + return result + other_result; + } + template inline static ResultType finalize(ResultType result, const ConstParams & params) { @@ -104,6 +122,12 @@ struct LinfNorm return fmax(result, fabs(value)); } + template + inline static ResultType combine(ResultType result, ResultType other_result, const ConstParams &) + { + return fmax(result, other_result); + } + template inline static ResultType finalize(ResultType result, const ConstParams &) { @@ -221,10 +245,23 @@ private: size_t row = 0; for (auto off : offsets) { - Float64 result = 0; + /// Process chunks in vectorized manner + static constexpr size_t VEC_SIZE = 4; + ResultType results[VEC_SIZE] = {0}; + for (; prev + VEC_SIZE < off; prev += VEC_SIZE) + { + for (size_t s = 0; s < VEC_SIZE; ++s) + results[s] = Kernel::template accumulate(results[s], data[prev+s], kernel_params); + } + + ResultType result = 0; + for (const auto & other_state : results) + result = Kernel::template combine(result, other_state, kernel_params); + + /// Process the tail for (; prev < off; ++prev) { - result = Kernel::template accumulate(result, data[prev], kernel_params); + result = Kernel::template accumulate(result, data[prev], kernel_params); } result_data[row] = Kernel::finalize(result, kernel_params); row++; diff --git a/tests/queries/0_stateless/02282_array_distance.reference b/tests/queries/0_stateless/02282_array_distance.reference index a63ea0a634d..dc40aaf128f 100644 --- a/tests/queries/0_stateless/02282_array_distance.reference +++ b/tests/queries/0_stateless/02282_array_distance.reference @@ -37,12 +37,12 @@ nan 2 1 2031 788 981.3289733414064 1182.129011571918 1397429 0.1939823640079572 2 2 0 0 0 0 0 0 3 3 0 0 0 0 0 0 -3 4 68 2 6.238144819822315 11.661903789690601 136 0.0010041996325123037 -4 3 68 2 6.238144819822315 11.661903789690601 136 0.0010041996325123037 +3 4 68 2 6.238144819822316 11.661903789690601 136 0.0010041996325123037 +4 3 68 2 6.238144819822316 11.661903789690601 136 0.0010041996325123037 4 4 0 0 0 0 0 0 5 5 0 0 0 0 0 0 -5 6 268 2 9.70940985211152 23.15167380558045 536 0.00007815428961455151 -6 5 268 2 9.70940985211152 23.15167380558045 536 0.00007815428961455151 +5 6 268 2 9.70940985211151 23.15167380558045 536 0.00007815428961455151 +6 5 268 2 9.70940985211151 23.15167380558045 536 0.00007815428961455151 6 6 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 2 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 From 29ffee846409e6c93f48e9289c72a070142a2aa8 Mon Sep 17 00:00:00 2001 From: Dan Roscigno Date: Sat, 2 Jul 2022 19:24:26 -0400 Subject: [PATCH 506/525] typo --- docs/en/getting-started/example-datasets/metrica.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/getting-started/example-datasets/metrica.md b/docs/en/getting-started/example-datasets/metrica.md index da0286d8c05..300bbe58d3f 100644 --- a/docs/en/getting-started/example-datasets/metrica.md +++ b/docs/en/getting-started/example-datasets/metrica.md @@ -87,7 +87,7 @@ clickhouse-client --query "SELECT COUNT(*) FROM datasets.visits_v1" The hits and visits dataset is used in the ClickHouse test routines, this is one of the queries from the test suite. The rest -of the tests are refernced in the *Next Steps* section at the +of the tests are referenced in the *Next Steps* section at the end of this page. ```sql From ca2829188d321fdf6d575f4ad5130ead2a3fcb5b Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Sun, 3 Jul 2022 08:01:49 +0200 Subject: [PATCH 507/525] Perf test for norm/distance with long arrays of floats --- tests/performance/norm_distance_float.xml | 95 +++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 tests/performance/norm_distance_float.xml diff --git a/tests/performance/norm_distance_float.xml b/tests/performance/norm_distance_float.xml new file mode 100644 index 00000000000..e71d8eb6281 --- /dev/null +++ b/tests/performance/norm_distance_float.xml @@ -0,0 +1,95 @@ + + + + + element_type + + Float32 + Float64 + + + + + + CREATE TABLE vecs_{element_type} ( + v Array({element_type}) + ) ENGINE=Memory; + + + + + + INSERT INTO vecs_{element_type} + SELECT v FROM ( + SELECT + number AS n, + [ + rand(n*10), + rand(n*10+1), + rand(n*10+2), + rand(n*10+3), + rand(n*10+4), + rand(n*10+5), + rand(n*10+6), + rand(n*10+7), + rand(n*10+8), + rand(n*10+9), + rand(n*10), + rand(n*10+1), + rand(n*10+2), + rand(n*10+3), + rand(n*10+4), + rand(n*10+5), + rand(n*10+6), + rand(n*10+7), + rand(n*10+8), + rand(n*10+9), + rand(n*10), + rand(n*10+1), + rand(n*10+2), + rand(n*10+3), + rand(n*10+4), + rand(n*10+5), + rand(n*10+6), + rand(n*10+7), + rand(n*10+8), + rand(n*10+9), + rand(n*10), + rand(n*10+1), + rand(n*10+2), + rand(n*10+3), + rand(n*10+4), + rand(n*10+5), + rand(n*10+6), + rand(n*10+7) + ] AS v + FROM system.numbers + LIMIT 10000000 + ); + + + + 1 + + + + + + norm + + L1 + L2 + L2Squared + Linf + + + + + + SELECT sum(dist) FROM (SELECT {norm}Norm(v) AS dist FROM vecs_{element_type}) + WITH (SELECT v FROM vecs_{element_type} limit 1) AS a SELECT sum(dist) FROM (SELECT {norm}Distance(a, v) AS dist FROM vecs_{element_type}) + WITH (SELECT v FROM vecs_{element_type} limit 1) AS a SELECT sum(dist) FROM (SELECT cosineDistance(a, v) AS dist FROM vecs_{element_type}) + + DROP TABLE vecs_{element_type} + + From 8ce8158f7fa7b0cbc911d9e934d55ddb72fb9fcf Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Sun, 3 Jul 2022 10:33:11 +0200 Subject: [PATCH 508/525] Do computations in Float32 (not Float64) for arrays of Float32 --- src/Functions/array/arrayDistance.cpp | 6 +++++- src/Functions/array/arrayNorm.cpp | 6 +++++- .../0_stateless/02282_array_distance.reference | 12 ++++++------ tests/queries/0_stateless/02283_array_norm.reference | 8 ++++---- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Functions/array/arrayDistance.cpp b/src/Functions/array/arrayDistance.cpp index a8fea9b02fb..c3652e10644 100644 --- a/src/Functions/array/arrayDistance.cpp +++ b/src/Functions/array/arrayDistance.cpp @@ -228,11 +228,12 @@ public: case TypeIndex::Int8: case TypeIndex::Int16: case TypeIndex::Int32: - case TypeIndex::Float32: case TypeIndex::UInt64: case TypeIndex::Int64: case TypeIndex::Float64: return std::make_shared(); + case TypeIndex::Float32: + return std::make_shared(); default: throw Exception( ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, @@ -247,6 +248,9 @@ public: { switch (result_type->getTypeId()) { + case TypeIndex::Float32: + return executeWithResultType(arguments, input_rows_count); + break; case TypeIndex::Float64: return executeWithResultType(arguments, input_rows_count); break; diff --git a/src/Functions/array/arrayNorm.cpp b/src/Functions/array/arrayNorm.cpp index 5db330f9a2f..e1e7935fcb1 100644 --- a/src/Functions/array/arrayNorm.cpp +++ b/src/Functions/array/arrayNorm.cpp @@ -162,11 +162,12 @@ public: case TypeIndex::Int8: case TypeIndex::Int16: case TypeIndex::Int32: - case TypeIndex::Float32: case TypeIndex::UInt64: case TypeIndex::Int64: case TypeIndex::Float64: return std::make_shared(); + case TypeIndex::Float32: + return std::make_shared(); default: throw Exception( ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT, @@ -185,6 +186,9 @@ public: switch (result_type->getTypeId()) { + case TypeIndex::Float32: + return executeWithResultType(*arr, type, input_rows_count, arguments); + break; case TypeIndex::Float64: return executeWithResultType(*arr, type, input_rows_count, arguments); break; diff --git a/tests/queries/0_stateless/02282_array_distance.reference b/tests/queries/0_stateless/02282_array_distance.reference index dc40aaf128f..9758da9a833 100644 --- a/tests/queries/0_stateless/02282_array_distance.reference +++ b/tests/queries/0_stateless/02282_array_distance.reference @@ -45,16 +45,16 @@ nan 6 5 268 2 9.70940985211151 23.15167380558045 536 0.00007815428961455151 6 6 0 0 0 0 0 0 1 1 0 0 0 0 0 0 -1 2 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 -2 1 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 +1 2 2031 788 992.2102 1182.129 1397429 0.19398236 +2 1 2031 788 992.2102 1182.129 1397429 0.19398236 2 2 0 0 0 0 0 0 3 3 0 0 0 0 0 0 -3 4 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 -4 3 68 2 6.479223602554966 11.661903789690601 136 0.0010041996325123037 +3 4 68 2 6.4792237 11.661903 136 0.0010041595 +4 3 68 2 6.4792237 11.661903 136 0.0010041595 4 4 0 0 0 0 0 0 5 5 0 0 0 0 0 0 -5 6 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 -6 5 268 2 10.234459893824097 23.15167380558045 536 0.00007815428961455151 +5 6 268 2 10.23446 23.151674 536 0.00007814169 +6 5 268 2 10.23446 23.151674 536 0.00007814169 6 6 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 2 2031 788 992.2102104083964 1182.129011571918 1397429 0.1939823640079572 diff --git a/tests/queries/0_stateless/02283_array_norm.reference b/tests/queries/0_stateless/02283_array_norm.reference index 17abb889e24..ed819e11255 100644 --- a/tests/queries/0_stateless/02283_array_norm.reference +++ b/tests/queries/0_stateless/02283_array_norm.reference @@ -16,12 +16,12 @@ 4 11 5 11 6 11 -1 7 5 25 4.601724723020627 4 +1 7 5 25 4.6017246 4 2 2 2 4 2 2 -3 9 5.196152422706632 27 4.506432087111623 3 +3 9 5.196152 27 4.506432 3 4 0 0 0 0 0 -5 330 78.16648898345122 6110 54.82161001608108 26 -6 5250 599.12436104702 358950 350.73959029428204 102 +5 330 78.16649 6110 54.82161 26 +6 5250 599.1244 358950 350.7396 102 1 11 2 11 3 11 From 4375a336fd773f5f0161ef3acacf6a3bead55ebf Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 3 Jul 2022 11:15:10 +0300 Subject: [PATCH 509/525] Fix use-after-free for Map combinator that leads to incorrect result This use-after-free can be reproduced with distributed queries. Also note, that this is not sumMappedArray() and friends (that previously called sumMap()) but Map combinator. You will find ASan report in details.
READ of size 8 at 0x62d00012d218 thread T186 (QueryPipelineEx) 2022.07.03 05:09:40.000234 [ 31956 ] {} AsynchronousMetrics: MemoryTracking: was 1.23 GiB, peak 1.23 GiB, will set to 1.25 GiB (RSS), difference: 19.51 MiB 2022.07.03 05:09:41.000137 [ 31956 ] {} AsynchronousMetrics: MemoryTracking: was 1.25 GiB, peak 1.25 GiB, will set to 1.26 GiB (RSS), difference: 3.76 MiB #0 0x1233a0d8 in DB::AggregateFunctionSumData<>::get() const build_docker/../src/AggregateFunctions/AggregateFunctionSum.h:245:16 #1 0x1233a0d8 in DB::AggregateFunctionSum<>::insertResultInto(char*, DB::IColumn&, DB::Arena*) const build_docker/../src/AggregateFunctions/AggregateFunctionSum.h:536:70 #2 0x1470f910 in DB::AggregateFunctionMap::insertResultInto() const build_docker/../src/AggregateFunctions/AggregateFunctionMap.h:236:26 #3 0x147110ce in DB::IAggregateFunctionHelper<>::insertResultIntoBatch() const build_docker/../src/AggregateFunctions/IAggregateFunction.h:618:53 #4 0x2c4269d7 in void DB::Aggregator::convertToBlockImplFinal<>() const build_docker/../src/Interpreters/Aggregator.cpp:1878:49 #5 0x2c403b9f in void DB::Aggregator::convertToBlockImpl<>() const build_docker/../src/Interpreters/Aggregator.cpp:1714:13 #6 0x2be09b53 in DB::Aggregator::prepareBlockAndFillSingleLevel() const::$_2::operator()() const build_docker/../src/Interpreters/Aggregator.cpp:2144:9 #7 0x2be09b53 in DB::Block DB::Aggregator::prepareBlockAndFill<>() const build_docker/../src/Interpreters/Aggregator.cpp:2000:5 #8 0x2be09b53 in DB::Aggregator::prepareBlockAndFillSingleLevel() const build_docker/../src/Interpreters/Aggregator.cpp:2150:12 #9 0x2be37de3 in DB::Aggregator::mergeBlocks() build_docker/../src/Interpreters/Aggregator.cpp:3032:17 #10 0x308c27f8 in DB::MergingAggregatedBucketTransform::transform() build_docker/../src/Processors/Transforms/MergingAggregatedMemoryEfficientTransform.cpp:360:37 0x62d00012d218 is located 3608 bytes inside of 32768-byte region [0x62d00012c400,0x62d000134400) freed by thread T186 (QueryPipelineEx) here: #0 0xd701312 in free (/work1/azat/tmp/upstream/clickhouse-asan+0xd701312) (BuildId: b7977aef37e9f720) ... #8 0x2e3c22eb in DB::ColumnAggregateFunction::~ColumnAggregateFunction() build_docker/../src/Columns/ColumnAggregateFunction.cpp:89:1 ... #18 0xd9fcdd4 in std::__1::vector >::~vector() build_docker/../contrib/libcxx/include/vector:401:9 #19 0x2be373f4 in DB::Aggregator::mergeBlocks() build_docker/../contrib/libcxx/include/__memory/unique_ptr.h #20 0x308c27f8 in DB::MergingAggregatedBucketTransform::transform() build_docker/../src/Processors/Transforms/MergingAggregatedMemoryEfficientTransform.cpp:360:37 previously allocated by thread T186 (QueryPipelineEx) here: #0 0xd7015be in malloc (/work1/azat/tmp/upstream/clickhouse-asan+0xd7015be) (BuildId: b7977aef37e9f720) #1 0xd85190a in Allocator::allocNoTrack(unsigned long, unsigned long) build_docker/../src/Common/Allocator.h:227:27 #2 0xd988d45 in Allocator::alloc(unsigned long, unsigned long) build_docker/../src/Common/Allocator.h:96:16 #3 0xd988d45 in DB::Arena::MemoryChunk::MemoryChunk(unsigned long, DB::Arena::MemoryChunk*) build_docker/../src/Common/Arena.h:54:64 #4 0xd98904b in DB::Arena::addMemoryChunk(unsigned long) build_docker/../src/Common/Arena.h:122:20 #5 0xec9542c in DB::Arena::alignedAlloc(unsigned long, unsigned long) build_docker/../src/Common/Arena.h:171:13 #6 0x1470f123 in DB::AggregateFunctionMap::deserialize() const build_docker/../src/AggregateFunctions/AggregateFunctionMap.h:205:35
P.S. Thanks to @den-crane for the reproducer. Fixes: #35359 (cc @den-crane @dongxiao-yang) Signed-off-by: Azat Khuzhin --- src/AggregateFunctions/AggregateFunctionMap.h | 15 +++- .../02351_Map_combinator_dist.reference | 4 + .../0_stateless/02351_Map_combinator_dist.sql | 81 +++++++++++++++++++ 3 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 tests/queries/0_stateless/02351_Map_combinator_dist.reference create mode 100644 tests/queries/0_stateless/02351_Map_combinator_dist.sql diff --git a/src/AggregateFunctions/AggregateFunctionMap.h b/src/AggregateFunctions/AggregateFunctionMap.h index 8d77e22300b..5ccc9041c36 100644 --- a/src/AggregateFunctions/AggregateFunctionMap.h +++ b/src/AggregateFunctions/AggregateFunctionMap.h @@ -169,12 +169,21 @@ public: { const auto & it = merged_maps.find(elem.first); - if (it != merged_maps.end()) + AggregateDataPtr nested_place; + if (it == merged_maps.end()) { - nested_func->merge(it->second, elem.second, arena); + // elem.second cannot be copied since this it will be destroyed after merging, + // and lead to use-after-free. + nested_place = arena->alignedAlloc(nested_func->sizeOfData(), nested_func->alignOfData()); + nested_func->create(nested_place); + merged_maps.emplace(elem.first, nested_place); } else - merged_maps[elem.first] = elem.second; + { + nested_place = it->second; + } + + nested_func->merge(nested_place, elem.second, arena); } } diff --git a/tests/queries/0_stateless/02351_Map_combinator_dist.reference b/tests/queries/0_stateless/02351_Map_combinator_dist.reference new file mode 100644 index 00000000000..98fb6a68656 --- /dev/null +++ b/tests/queries/0_stateless/02351_Map_combinator_dist.reference @@ -0,0 +1,4 @@ +1 +1 +1 +1 diff --git a/tests/queries/0_stateless/02351_Map_combinator_dist.sql b/tests/queries/0_stateless/02351_Map_combinator_dist.sql new file mode 100644 index 00000000000..937afa5480e --- /dev/null +++ b/tests/queries/0_stateless/02351_Map_combinator_dist.sql @@ -0,0 +1,81 @@ +-- https://github.com/ClickHouse/ClickHouse/issues/35359 + +-- sumMap +SELECT x[67] +FROM +( + SELECT + A, + sumMap(CAST(arrayMap(x -> (x, 1), r), 'Map(UInt8,Int64)')) AS x + FROM remote('127.{1,1}', view( + SELECT + number AS A, + range(150) AS r + FROM numbers(60) + WHERE (A % 2) = shardNum() + )) + GROUP BY A + LIMIT 100000000 +) +WHERE A = 53 +SETTINGS prefer_localhost_replica = 0, distributed_aggregation_memory_efficient = 1, group_by_two_level_threshold = 0, group_by_two_level_threshold_bytes = 0; + +-- minMap +SELECT x[0] +FROM +( + SELECT + A, + minMap(CAST(arrayMap(x -> (x, 1), r), 'Map(UInt8,Int64)')) AS x + FROM remote('127.{1,1}', view( + SELECT + number AS A, + range(150) AS r + FROM numbers(60) + WHERE (A % 2) = shardNum() + )) + GROUP BY A + LIMIT 100000000 +) +WHERE A = 41 +SETTINGS prefer_localhost_replica = 0, distributed_aggregation_memory_efficient = 1, group_by_two_level_threshold = 0, group_by_two_level_threshold_bytes = 0; + +-- maxMap +SELECT x[0] +FROM +( + SELECT + A, + maxMap(CAST(arrayMap(x -> (x, 1), r), 'Map(UInt8,Int64)')) AS x + FROM remote('127.{1,1}', view( + SELECT + number AS A, + range(150) AS r + FROM numbers(60) + WHERE (A % 2) = shardNum() + )) + GROUP BY A + LIMIT 100000000 +) +WHERE A = 41 +SETTINGS prefer_localhost_replica = 0, distributed_aggregation_memory_efficient = 1, group_by_two_level_threshold = 0, group_by_two_level_threshold_bytes = 0; + +-- avgMap +SELECT x[0] +FROM +( + SELECT + A, + avgMap(CAST(arrayMap(x -> (x, 1), r), 'Map(UInt8,Int64)')) AS x + FROM remote('127.{1,1}', view( + SELECT + number AS A, + range(150) AS r + FROM numbers(60) + WHERE (A % 2) = shardNum() + )) + GROUP BY A + LIMIT 100000000 +) +WHERE A = 41 +SETTINGS prefer_localhost_replica = 0, distributed_aggregation_memory_efficient = 1, group_by_two_level_threshold = 0, group_by_two_level_threshold_bytes = 0; From 769017e1f508dd468628ac4520f46b89f6cfc97f Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Tue, 28 Jun 2022 12:14:23 +0300 Subject: [PATCH 510/525] tests: move random_str() helper into shell_config.sh Signed-off-by: Azat Khuzhin --- .../0_stateless/01548_query_log_query_execution_ms.sh | 5 ----- .../01710_projections_optimize_aggregation_in_order.sh | 6 ------ ...710_projections_partial_optimize_aggregation_in_order.sh | 6 ------ tests/queries/0_stateless/02340_parts_refcnt_mergetree.sh | 6 ------ tests/queries/shell_config.sh | 6 ++++++ 5 files changed, 6 insertions(+), 23 deletions(-) diff --git a/tests/queries/0_stateless/01548_query_log_query_execution_ms.sh b/tests/queries/0_stateless/01548_query_log_query_execution_ms.sh index c973612c80d..0d13a1d4eff 100755 --- a/tests/queries/0_stateless/01548_query_log_query_execution_ms.sh +++ b/tests/queries/0_stateless/01548_query_log_query_execution_ms.sh @@ -4,11 +4,6 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CUR_DIR"/../shell_config.sh -function random_str() -{ - local n=$1 && shift - tr -cd '[:lower:]' < /dev/urandom | head -c"$n" -} function test_query_duration_ms() { local query_id diff --git a/tests/queries/0_stateless/01710_projections_optimize_aggregation_in_order.sh b/tests/queries/0_stateless/01710_projections_optimize_aggregation_in_order.sh index 0cafa904a71..2c6a6ef35eb 100755 --- a/tests/queries/0_stateless/01710_projections_optimize_aggregation_in_order.sh +++ b/tests/queries/0_stateless/01710_projections_optimize_aggregation_in_order.sh @@ -29,12 +29,6 @@ $CLICKHOUSE_CLIENT -nm -q " INSERT INTO in_order_agg_01710 SELECT 1, number%2, number%4, number FROM numbers(100000); " -function random_str() -{ - local n=$1 && shift - tr -cd '[:lower:]' < /dev/urandom | head -c"$n" -} - function run_query() { local query=$1 && shift diff --git a/tests/queries/0_stateless/01710_projections_partial_optimize_aggregation_in_order.sh b/tests/queries/0_stateless/01710_projections_partial_optimize_aggregation_in_order.sh index f66dc9ff872..5a9c480c78c 100755 --- a/tests/queries/0_stateless/01710_projections_partial_optimize_aggregation_in_order.sh +++ b/tests/queries/0_stateless/01710_projections_partial_optimize_aggregation_in_order.sh @@ -35,12 +35,6 @@ $CLICKHOUSE_CLIENT -nm -q " INSERT INTO in_order_agg_partial_01710 SELECT 1, number%2, number%4, number FROM numbers(100000) LIMIT 50000, 100000; " -function random_str() -{ - local n=$1 && shift - tr -cd '[:lower:]' < /dev/urandom | head -c"$n" -} - function run_query() { local query=$1 && shift diff --git a/tests/queries/0_stateless/02340_parts_refcnt_mergetree.sh b/tests/queries/0_stateless/02340_parts_refcnt_mergetree.sh index 29b3b7b3d9d..4f3baa1f660 100755 --- a/tests/queries/0_stateless/02340_parts_refcnt_mergetree.sh +++ b/tests/queries/0_stateless/02340_parts_refcnt_mergetree.sh @@ -4,12 +4,6 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) # shellcheck source=../shell_config.sh . "$CUR_DIR"/../shell_config.sh -function random_str() -{ - local n=$1 && shift - tr -cd '[:lower:]' < /dev/urandom | head -c"$n" -} - function check_refcnt_for_table() { local table=$1 && shift diff --git a/tests/queries/shell_config.sh b/tests/queries/shell_config.sh index 866fba506e4..ab5d5ddc1b6 100644 --- a/tests/queries/shell_config.sh +++ b/tests/queries/shell_config.sh @@ -143,3 +143,9 @@ function wait_for_queries_to_finish() fi done } + +function random_str() +{ + local n=$1 && shift + tr -cd '[:lower:]' < /dev/urandom | head -c"$n" +} From f1eec0b6e809828443861f0c9b1cdbcaf11e7ff8 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 3 Jul 2022 14:24:35 +0300 Subject: [PATCH 511/525] tests: remove unused stress script Signed-off-by: Azat Khuzhin --- tests/stress | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100755 tests/stress diff --git a/tests/stress b/tests/stress deleted file mode 100755 index 1aad49250c2..00000000000 --- a/tests/stress +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -# https://stackoverflow.com/questions/360201/how-do-i-kill-background-processes-jobs-when-my-shell-script-exits -trap 'kill -9 $(jobs -p)' EXIT - -function thread() -{ - while true; do - ./clickhouse-test --client-option="query-fuzzer-runs=10" --order random 2>&1 | awk '/^\w+:/ { printf("\033[0;%s%sm \033[0m", ('$1' % 2 ? "4" : "10"), (int('$1' / 2) % 8)) }' - done -} - -# https://stackoverflow.com/questions/9954794/execute-a-shell-function-with-timeout -export -f thread; - -NUM_THREADS=${1:-"16"} -TIMEOUT=${2:-"300"} - -for i in $(seq 1 $NUM_THREADS); do - timeout $TIMEOUT bash -c "thread $i" 2> /dev/null & -done - -wait From 8e9c1eaa73b78390d78a25b2867bcfc0d55412a7 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 3 Jul 2022 14:45:56 +0300 Subject: [PATCH 512/525] tests/stress: redirect gdb output on stop hang to gdb.log Signed-off-by: Azat Khuzhin --- docker/test/stress/run.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/test/stress/run.sh b/docker/test/stress/run.sh index fff720965b6..b3ee4e62f20 100755 --- a/docker/test/stress/run.sh +++ b/docker/test/stress/run.sh @@ -110,7 +110,8 @@ function stop() # We failed to stop the server with SIGTERM. Maybe it hang, let's collect stacktraces. kill -TERM "$(pidof gdb)" ||: sleep 5 - gdb -batch -ex 'thread apply all backtrace' -p "$(cat /var/run/clickhouse-server/clickhouse-server.pid)" ||: + echo "thread apply all backtrace (on stop)" >> /test_output/gdb.log + gdb -batch -ex 'thread apply all backtrace' -p "$(cat /var/run/clickhouse-server/clickhouse-server.pid)" | ts '%Y-%m-%d %H:%M:%S' >> /test_output/gdb.log clickhouse stop --force } From 4ae7db83697bba58b0669ff3229c3c62cedae133 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 2 Jul 2022 17:59:02 +0300 Subject: [PATCH 513/525] Fix max_insert_threads while pushing to views Signed-off-by: Azat Khuzhin --- src/Interpreters/InterpreterInsertQuery.cpp | 5 ----- tests/performance/views_max_insert_threads.xml | 11 +++++++++++ .../02350_views_max_insert_threads.reference | 1 + .../02350_views_max_insert_threads.sql | 15 +++++++++++++++ 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 tests/performance/views_max_insert_threads.xml create mode 100644 tests/queries/0_stateless/02350_views_max_insert_threads.reference create mode 100644 tests/queries/0_stateless/02350_views_max_insert_threads.sql diff --git a/src/Interpreters/InterpreterInsertQuery.cpp b/src/Interpreters/InterpreterInsertQuery.cpp index 4ed293e8530..f4394dc613d 100644 --- a/src/Interpreters/InterpreterInsertQuery.cpp +++ b/src/Interpreters/InterpreterInsertQuery.cpp @@ -457,17 +457,12 @@ BlockIO InterpreterInsertQuery::execute() }); size_t num_select_threads = pipeline.getNumThreads(); - size_t num_insert_threads = std::max_element(out_chains.begin(), out_chains.end(), [&](const auto &a, const auto &b) - { - return a.getNumThreads() < b.getNumThreads(); - })->getNumThreads(); for (auto & chain : out_chains) resources = chain.detachResources(); pipeline.addChains(std::move(out_chains)); - pipeline.setMaxThreads(num_insert_threads); /// Don't use more threads for insert then for select to reduce memory consumption. if (!settings.parallel_view_processing && pipeline.getNumThreads() > num_select_threads) pipeline.setMaxThreads(num_select_threads); diff --git a/tests/performance/views_max_insert_threads.xml b/tests/performance/views_max_insert_threads.xml new file mode 100644 index 00000000000..2988984f5d8 --- /dev/null +++ b/tests/performance/views_max_insert_threads.xml @@ -0,0 +1,11 @@ + + + create table views_max_insert_threads_null (a UInt64) Engine = Null + create materialized view views_max_insert_threads_mv Engine = Null AS select now() as ts, max(a) from views_max_insert_threads_null group by ts + + insert into views_max_insert_threads_null select * from numbers_mt(3000000000) settings max_threads = 16, max_insert_threads=16 + + drop table if exists views_max_insert_threads_null + drop table if exists views_max_insert_threads_mv + + diff --git a/tests/queries/0_stateless/02350_views_max_insert_threads.reference b/tests/queries/0_stateless/02350_views_max_insert_threads.reference new file mode 100644 index 00000000000..d00491fd7e5 --- /dev/null +++ b/tests/queries/0_stateless/02350_views_max_insert_threads.reference @@ -0,0 +1 @@ +1 diff --git a/tests/queries/0_stateless/02350_views_max_insert_threads.sql b/tests/queries/0_stateless/02350_views_max_insert_threads.sql new file mode 100644 index 00000000000..e19ad465b49 --- /dev/null +++ b/tests/queries/0_stateless/02350_views_max_insert_threads.sql @@ -0,0 +1,15 @@ +-- https://github.com/ClickHouse/ClickHouse/issues/37900 + +drop table if exists t; +drop table if exists t_mv; +create table t (a UInt64) Engine = Null; +create materialized view t_mv Engine = Null AS select now() as ts, max(a) from t group by ts; + +insert into t select * from numbers_mt(10e6) settings max_threads = 16, max_insert_threads=16; +system flush logs; + +select arrayUniq(thread_ids)>=16 from system.query_log where + event_date >= yesterday() and + current_database = currentDatabase() and + type = 'QueryFinish' and + startsWith(query, 'insert'); From dd3515da9805ce12bee79953936e6d5461424ad7 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 2 Jul 2022 20:02:21 +0300 Subject: [PATCH 514/525] Fix parallel_view_processing with optimize_trivial_insert_select=1 --- src/Interpreters/InterpreterInsertQuery.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Interpreters/InterpreterInsertQuery.cpp b/src/Interpreters/InterpreterInsertQuery.cpp index f4394dc613d..7b6066575ae 100644 --- a/src/Interpreters/InterpreterInsertQuery.cpp +++ b/src/Interpreters/InterpreterInsertQuery.cpp @@ -463,9 +463,20 @@ BlockIO InterpreterInsertQuery::execute() pipeline.addChains(std::move(out_chains)); - /// Don't use more threads for insert then for select to reduce memory consumption. - if (!settings.parallel_view_processing && pipeline.getNumThreads() > num_select_threads) - pipeline.setMaxThreads(num_select_threads); + if (!settings.parallel_view_processing) + { + /// Don't use more threads for INSERT than for SELECT to reduce memory consumption. + if (pipeline.getNumThreads() > num_select_threads) + pipeline.setMaxThreads(num_select_threads); + } + else if (pipeline.getNumThreads() < settings.max_threads) + { + /// It is possible for query to have max_threads=1, due to optimize_trivial_insert_select, + /// however in case of parallel_view_processing and multiple views, views can still be processed in parallel. + /// + /// Note, number of threads will be limited by buildPushingToViewsChain() to max_threads. + pipeline.setMaxThreads(settings.max_threads); + } pipeline.setSinks([&](const Block & cur_header, QueryPipelineBuilder::StreamType) -> ProcessorPtr { From 9225256dea808233feadc7e75265fbfeabfb0ffa Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 2 Jul 2022 19:49:41 +0300 Subject: [PATCH 515/525] tests: improve 01275_parallel_mv - cover optimize_trivial_insert_select=0/1 - cover max_insert_threads - convert parallel_view_processing into jinja2 Signed-off-by: Azat Khuzhin --- .../0_stateless/01275_parallel_mv.reference | 185 +++++++++++++++++- .../queries/0_stateless/01275_parallel_mv.sql | 39 ---- .../0_stateless/01275_parallel_mv.sql.j2 | 47 +++++ 3 files changed, 224 insertions(+), 47 deletions(-) delete mode 100644 tests/queries/0_stateless/01275_parallel_mv.sql create mode 100644 tests/queries/0_stateless/01275_parallel_mv.sql.j2 diff --git a/tests/queries/0_stateless/01275_parallel_mv.reference b/tests/queries/0_stateless/01275_parallel_mv.reference index 9021ae2bb1a..a9801e3b910 100644 --- a/tests/queries/0_stateless/01275_parallel_mv.reference +++ b/tests/queries/0_stateless/01275_parallel_mv.reference @@ -1,9 +1,23 @@ -- { echoOn } -set parallel_view_processing=1; -insert into testX select number from numbers(10) settings log_queries=1; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } + + + +select 'optimize_trivial_insert_select=0', 'max_insert_threads=0'; +optimize_trivial_insert_select=0 max_insert_threads=0 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=0, + optimize_trivial_insert_select=0, + max_insert_threads=0; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } system flush logs; -select length(thread_ids) >= 8 from system.query_log where current_database = currentDatabase() and type != 'QueryStart' and query like '%insert into testX %' and Settings['parallel_view_processing'] = '1'; -1 +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '0' and + Settings['optimize_trivial_insert_select'] = '0' and + Settings['max_insert_threads'] = '0'; +2 select count() from testX; 10 select count() from testXA; @@ -12,11 +26,22 @@ select count() from testXB; 0 select count() from testXC; 10 -set parallel_view_processing=0; -insert into testX select number from numbers(10) settings log_queries=1; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +select 'optimize_trivial_insert_select=0', 'max_insert_threads=16'; +optimize_trivial_insert_select=0 max_insert_threads=16 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=0, + optimize_trivial_insert_select=0, + max_insert_threads=16; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } system flush logs; -select length(thread_ids) >= 5 from system.query_log where current_database = currentDatabase() and type != 'QueryStart' and query like '%insert into testX %' and Settings['parallel_view_processing'] = '0'; -1 +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '0' and + Settings['optimize_trivial_insert_select'] = '0' and + Settings['max_insert_threads'] = '16'; +2 select count() from testX; 20 select count() from testXA; @@ -25,3 +50,147 @@ select count() from testXB; 0 select count() from testXC; 20 +select 'optimize_trivial_insert_select=1', 'max_insert_threads=0'; +optimize_trivial_insert_select=1 max_insert_threads=0 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=0, + optimize_trivial_insert_select=1, + max_insert_threads=0; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +system flush logs; +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '0' and + Settings['optimize_trivial_insert_select'] = '1' and + Settings['max_insert_threads'] = '0'; +2 +select count() from testX; +30 +select count() from testXA; +30 +select count() from testXB; +0 +select count() from testXC; +30 +select 'optimize_trivial_insert_select=1', 'max_insert_threads=16'; +optimize_trivial_insert_select=1 max_insert_threads=16 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=0, + optimize_trivial_insert_select=1, + max_insert_threads=16; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +system flush logs; +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '0' and + Settings['optimize_trivial_insert_select'] = '1' and + Settings['max_insert_threads'] = '16'; +2 +select count() from testX; +40 +select count() from testXA; +40 +select count() from testXB; +0 +select count() from testXC; +40 +select 'optimize_trivial_insert_select=0', 'max_insert_threads=0'; +optimize_trivial_insert_select=0 max_insert_threads=0 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=1, + optimize_trivial_insert_select=0, + max_insert_threads=0; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +system flush logs; +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '1' and + Settings['optimize_trivial_insert_select'] = '0' and + Settings['max_insert_threads'] = '0'; +5 +select count() from testX; +50 +select count() from testXA; +50 +select count() from testXB; +0 +select count() from testXC; +50 +select 'optimize_trivial_insert_select=0', 'max_insert_threads=16'; +optimize_trivial_insert_select=0 max_insert_threads=16 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=1, + optimize_trivial_insert_select=0, + max_insert_threads=16; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +system flush logs; +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '1' and + Settings['optimize_trivial_insert_select'] = '0' and + Settings['max_insert_threads'] = '16'; +5 +select count() from testX; +60 +select count() from testXA; +60 +select count() from testXB; +0 +select count() from testXC; +60 +select 'optimize_trivial_insert_select=1', 'max_insert_threads=0'; +optimize_trivial_insert_select=1 max_insert_threads=0 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=1, + optimize_trivial_insert_select=1, + max_insert_threads=0; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +system flush logs; +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '1' and + Settings['optimize_trivial_insert_select'] = '1' and + Settings['max_insert_threads'] = '0'; +5 +select count() from testX; +70 +select count() from testXA; +70 +select count() from testXB; +0 +select count() from testXC; +70 +select 'optimize_trivial_insert_select=1', 'max_insert_threads=16'; +optimize_trivial_insert_select=1 max_insert_threads=16 +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing=1, + optimize_trivial_insert_select=1, + max_insert_threads=16; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +system flush logs; +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '1' and + Settings['optimize_trivial_insert_select'] = '1' and + Settings['max_insert_threads'] = '16'; +5 +select count() from testX; +80 +select count() from testXA; +80 +select count() from testXB; +0 +select count() from testXC; +80 diff --git a/tests/queries/0_stateless/01275_parallel_mv.sql b/tests/queries/0_stateless/01275_parallel_mv.sql deleted file mode 100644 index 27b8ef96e0b..00000000000 --- a/tests/queries/0_stateless/01275_parallel_mv.sql +++ /dev/null @@ -1,39 +0,0 @@ -set max_threads = 0; - -drop table if exists testX; -drop table if exists testXA; -drop table if exists testXB; -drop table if exists testXC; - -create table testX (A Int64) engine=MergeTree order by tuple(); - -create materialized view testXA engine=MergeTree order by tuple() as select sleep(1) from testX; -create materialized view testXB engine=MergeTree order by tuple() as select sleep(2), throwIf(A=1) from testX; -create materialized view testXC engine=MergeTree order by tuple() as select sleep(1) from testX; - --- { echoOn } -set parallel_view_processing=1; -insert into testX select number from numbers(10) settings log_queries=1; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } -system flush logs; -select length(thread_ids) >= 8 from system.query_log where current_database = currentDatabase() and type != 'QueryStart' and query like '%insert into testX %' and Settings['parallel_view_processing'] = '1'; - -select count() from testX; -select count() from testXA; -select count() from testXB; -select count() from testXC; - -set parallel_view_processing=0; -insert into testX select number from numbers(10) settings log_queries=1; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } -system flush logs; -select length(thread_ids) >= 5 from system.query_log where current_database = currentDatabase() and type != 'QueryStart' and query like '%insert into testX %' and Settings['parallel_view_processing'] = '0'; - -select count() from testX; -select count() from testXA; -select count() from testXB; -select count() from testXC; --- { echoOff } - -drop table testX; -drop view testXA; -drop view testXB; -drop view testXC; diff --git a/tests/queries/0_stateless/01275_parallel_mv.sql.j2 b/tests/queries/0_stateless/01275_parallel_mv.sql.j2 new file mode 100644 index 00000000000..3b7c414a44e --- /dev/null +++ b/tests/queries/0_stateless/01275_parallel_mv.sql.j2 @@ -0,0 +1,47 @@ +-- avoid settings randomization by clickhouse-test +set max_threads = 0; + +drop table if exists testX; +drop table if exists testXA; +drop table if exists testXB; +drop table if exists testXC; + +create table testX (A Int64) engine=MergeTree order by tuple(); + +create materialized view testXA engine=MergeTree order by tuple() as select sleep(0.1) from testX; +create materialized view testXB engine=MergeTree order by tuple() as select sleep(0.2), throwIf(A=1) from testX; +create materialized view testXC engine=MergeTree order by tuple() as select sleep(0.1) from testX; + +-- { echoOn } +{% for parallel_view_processing in [0, 1] %} +{% for optimize_trivial_insert_select in [0, 1] %} +{% for max_insert_threads in [0, 16] %} +select 'optimize_trivial_insert_select={{ optimize_trivial_insert_select }}', 'max_insert_threads={{ max_insert_threads }}'; + +insert into testX select number from numbers(10) settings + log_queries=1, + parallel_view_processing={{ parallel_view_processing }}, + optimize_trivial_insert_select={{ optimize_trivial_insert_select }}, + max_insert_threads={{ max_insert_threads }}; -- { serverError FUNCTION_THROW_IF_VALUE_IS_NON_ZERO } +system flush logs; +select arrayUniq(thread_ids) from system.query_log where + current_database = currentDatabase() and + type != 'QueryStart' and + query like '%insert into testX %' and + Settings['parallel_view_processing'] = '{{ parallel_view_processing }}' and + Settings['optimize_trivial_insert_select'] = '{{ optimize_trivial_insert_select }}' and + Settings['max_insert_threads'] = '{{ max_insert_threads }}'; + +select count() from testX; +select count() from testXA; +select count() from testXB; +select count() from testXC; +{% endfor %} +{% endfor %} +{% endfor %} +-- { echoOff } + +drop table testX; +drop view testXA; +drop view testXB; +drop view testXC; From 7427adb600633008af5688e394eb287f370e1d41 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 3 Jul 2022 09:24:09 +0300 Subject: [PATCH 516/525] tests: disable 01275_parallel_mv under S3 (since it has thread pool for writes) Signed-off-by: Azat Khuzhin --- tests/queries/0_stateless/01275_parallel_mv.sql.j2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/queries/0_stateless/01275_parallel_mv.sql.j2 b/tests/queries/0_stateless/01275_parallel_mv.sql.j2 index 3b7c414a44e..6b17a141d3e 100644 --- a/tests/queries/0_stateless/01275_parallel_mv.sql.j2 +++ b/tests/queries/0_stateless/01275_parallel_mv.sql.j2 @@ -1,3 +1,6 @@ +-- Tags: no-s3-storage +-- no-s3-storage: s3 has 20 more threads + -- avoid settings randomization by clickhouse-test set max_threads = 0; From d863f6ce1ece810c66ddf8bd89575825d3f2595f Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 3 Jul 2022 15:20:05 +0300 Subject: [PATCH 517/525] tests: add no-backward-compatibility-check for 02351_Map_combinator_dist Signed-off-by: Azat Khuzhin --- tests/queries/0_stateless/02351_Map_combinator_dist.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/queries/0_stateless/02351_Map_combinator_dist.sql b/tests/queries/0_stateless/02351_Map_combinator_dist.sql index 937afa5480e..30816061338 100644 --- a/tests/queries/0_stateless/02351_Map_combinator_dist.sql +++ b/tests/queries/0_stateless/02351_Map_combinator_dist.sql @@ -1,3 +1,5 @@ +-- Tags: no-backward-compatibility-check:22.6 + -- https://github.com/ClickHouse/ClickHouse/issues/35359 -- sumMap From 838fd1e41e2ae0233f2cc40b0c7e51d47e2d14d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mar=C3=ADn?= Date: Sun, 3 Jul 2022 15:11:25 +0200 Subject: [PATCH 518/525] Fix replication after improper merge process --- src/Storages/StorageReplicatedMergeTree.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 458b5aedf7d..ae9f7640f66 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -599,7 +599,6 @@ void StorageReplicatedMergeTree::createNewZooKeeperNodes() auto zookeeper = getZooKeeper(); std::vector futures; - futures.push_back(zookeeper->asyncTryCreateNoThrow(zookeeper_path + "/quorum/parallel", String(), zkutil::CreateMode::Persistent)); /// These 4 nodes used to be created in createNewZookeeperNodes() and they were moved to createTable() /// This means that if the first replica creating the table metadata has an older version of CH (22.3 or previous) From a772a091491a08894e3606d44ec365b1d84f981c Mon Sep 17 00:00:00 2001 From: kssenii Date: Mon, 4 Jul 2022 00:14:15 +0200 Subject: [PATCH 519/525] Fix --- src/IO/ReadBufferFromS3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/IO/ReadBufferFromS3.cpp b/src/IO/ReadBufferFromS3.cpp index 53831e02cb2..cf19b6f1980 100644 --- a/src/IO/ReadBufferFromS3.cpp +++ b/src/IO/ReadBufferFromS3.cpp @@ -227,7 +227,7 @@ size_t ReadBufferFromS3::getFileSize() if (file_size) return *file_size; - auto object_size = S3::getObjectSize(client_ptr, bucket, key, version_id, false); + auto object_size = S3::getObjectSize(client_ptr, bucket, key, version_id); file_size = object_size; return *file_size; From 19516c768f4bcdda14ec88508dbf2c2934e54b91 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Mon, 4 Jul 2022 10:15:27 +0200 Subject: [PATCH 520/525] Revert "Upload to S3 compressed self-extracting clickhouse" --- tests/ci/build_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ci/build_check.py b/tests/ci/build_check.py index 5dcc0e3e49f..3976e2ba916 100644 --- a/tests/ci/build_check.py +++ b/tests/ci/build_check.py @@ -231,7 +231,7 @@ def upload_master_static_binaries( return s3_path = "/".join((pr_info.base_ref, static_binary_name, "clickhouse")) - binary = os.path.join(build_output_path, "self-extracting", "clickhouse") + binary = os.path.join(build_output_path, "clickhouse") url = s3_helper.upload_build_file_to_s3(binary, s3_path) print(f"::notice ::Binary static URL: {url}") From 7388b6fb55da74c2b67c78197dd4e2bfee719306 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 30 Jun 2022 18:52:59 +0200 Subject: [PATCH 521/525] Test and build clickhouse-diagnostics in release builds --- docker/packager/binary/Dockerfile | 11 +++++++++++ docker/packager/binary/build.sh | 15 +++++++++++++++ packages/clickhouse-common-static.yaml | 10 ++++++---- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/docker/packager/binary/Dockerfile b/docker/packager/binary/Dockerfile index ab603cd9ea4..1dff4b1a2d4 100644 --- a/docker/packager/binary/Dockerfile +++ b/docker/packager/binary/Dockerfile @@ -104,6 +104,17 @@ RUN arch=${TARGETARCH:-amd64} \ && dpkg -i /tmp/nfpm.deb \ && rm /tmp/nfpm.deb +ARG GO_VERSION=1.18.3 +# We need go for clickhouse-diagnostics +RUN arch=${TARGETARCH:-amd64} \ + && curl -Lo /tmp/go.tgz "https://go.dev/dl/go${GO_VERSION}.linux-${arch}.tar.gz" \ + && tar -xzf /tmp/go.tgz -C /usr/local/ \ + && rm /tmp/go.tgz + +ENV PATH="$PATH:/usr/local/go/bin" +ENV GOPATH=/workdir/go +ENV GOCACHE=/workdir/ + RUN mkdir /workdir && chmod 777 /workdir WORKDIR /workdir diff --git a/docker/packager/binary/build.sh b/docker/packager/binary/build.sh index b8d11e9c293..270c93c105c 100755 --- a/docker/packager/binary/build.sh +++ b/docker/packager/binary/build.sh @@ -29,8 +29,21 @@ env if [ -n "$MAKE_DEB" ]; then rm -rf /build/packages/root + if [ -z "$SANITIZER" ]; then + # We need to check if clickhouse-diagnostics is fine and build it + ( + cd /build/programs/diagnostics + make test-no-docker + GOARCH="${DEB_ARCH}" CGO_ENABLED=0 make VERSION="$VERSION_STRING" build + mv clickhouse-diagnostics .. + ) + else + echo -e "#!/bin/sh\necho 'Not implemented for this type of package'" > /build/programs/clickhouse-diagnostics + chmod +x /build/programs/clickhouse-diagnostics + fi fi + cache_status # clear cache stats ccache --zero-stats ||: @@ -81,6 +94,8 @@ if [ -n "$MAKE_DEB" ]; then # No quotes because I want it to expand to nothing if empty. # shellcheck disable=SC2086 DESTDIR=/build/packages/root ninja $NINJA_FLAGS install + cp /build/programs/clickhouse-diagnostics /build/packages/root/usr/bin + cp /build/programs/clickhouse-diagnostics /output bash -x /build/packages/build fi diff --git a/packages/clickhouse-common-static.yaml b/packages/clickhouse-common-static.yaml index 269d4318e5e..527b6a24703 100644 --- a/packages/clickhouse-common-static.yaml +++ b/packages/clickhouse-common-static.yaml @@ -29,12 +29,14 @@ description: | contents: - src: root/usr/bin/clickhouse dst: /usr/bin/clickhouse -- src: root/usr/bin/clickhouse-odbc-bridge - dst: /usr/bin/clickhouse-odbc-bridge -- src: root/usr/bin/clickhouse-library-bridge - dst: /usr/bin/clickhouse-library-bridge +- src: root/usr/bin/clickhouse-diagnostics + dst: /usr/bin/clickhouse-diagnostics - src: root/usr/bin/clickhouse-extract-from-config dst: /usr/bin/clickhouse-extract-from-config +- src: root/usr/bin/clickhouse-library-bridge + dst: /usr/bin/clickhouse-library-bridge +- src: root/usr/bin/clickhouse-odbc-bridge + dst: /usr/bin/clickhouse-odbc-bridge - src: root/usr/share/bash-completion/completions dst: /usr/share/bash-completion/completions # docs From 664d43e34898106d4ddb40376e4b934154fb475f Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Thu, 30 Jun 2022 23:20:24 +0200 Subject: [PATCH 522/525] Add disabling tag no_docker to some go tests --- programs/diagnostics/Makefile | 3 +++ programs/diagnostics/internal/platform/database/native_test.go | 2 ++ programs/diagnostics/internal/platform/manager_test.go | 2 ++ programs/diagnostics/internal/platform/utils/process_test.go | 2 ++ programs/diagnostics/internal/runner_test.go | 2 ++ 5 files changed, 11 insertions(+) diff --git a/programs/diagnostics/Makefile b/programs/diagnostics/Makefile index 0a12630ca6d..2e85002b871 100644 --- a/programs/diagnostics/Makefile +++ b/programs/diagnostics/Makefile @@ -40,6 +40,9 @@ vendor: ## Copy of all packages needed to support builds and tests in the vendor test: ## Run the tests of the project CLICKHOUSE_VERSION=$(CLICKHOUSE_VERSION) $(GOTEST) -v -race `go list ./... | grep -v ./internal/platform/test` +test-no-docker: ## Don't run tests depending on dockerd + CLICKHOUSE_VERSION=$(CLICKHOUSE_VERSION) $(GOTEST) -v -race -tags no_docker `go list ./... | grep -v ./internal/platform/test` + lint-go: ## Use golintci-lint docker run --rm -v $(shell pwd):/app -w /app golangci/golangci-lint:latest-alpine golangci-lint run diff --git a/programs/diagnostics/internal/platform/database/native_test.go b/programs/diagnostics/internal/platform/database/native_test.go index 8c317ab7f12..4814310f182 100644 --- a/programs/diagnostics/internal/platform/database/native_test.go +++ b/programs/diagnostics/internal/platform/database/native_test.go @@ -1,3 +1,5 @@ +//go:build !no_docker + package database_test import ( diff --git a/programs/diagnostics/internal/platform/manager_test.go b/programs/diagnostics/internal/platform/manager_test.go index e63ec6af6a7..49efee49ce3 100644 --- a/programs/diagnostics/internal/platform/manager_test.go +++ b/programs/diagnostics/internal/platform/manager_test.go @@ -1,3 +1,5 @@ +//go:build !no_docker + package platform_test import ( diff --git a/programs/diagnostics/internal/platform/utils/process_test.go b/programs/diagnostics/internal/platform/utils/process_test.go index 0c7541f4abb..ed54d16cc72 100644 --- a/programs/diagnostics/internal/platform/utils/process_test.go +++ b/programs/diagnostics/internal/platform/utils/process_test.go @@ -1,3 +1,5 @@ +//go:build !no_docker + package utils_test import ( diff --git a/programs/diagnostics/internal/runner_test.go b/programs/diagnostics/internal/runner_test.go index 81fe9b70a2b..8cf29a140ec 100644 --- a/programs/diagnostics/internal/runner_test.go +++ b/programs/diagnostics/internal/runner_test.go @@ -1,3 +1,5 @@ +//go:build !no_docker + package internal_test import ( From 446ead1af464a666bdd3f1ce79fad42331ff5c93 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Fri, 1 Jul 2022 00:26:56 +0200 Subject: [PATCH 523/525] Fix typos issues it clickhouse-diagnostics --- programs/diagnostics/README.md | 4 ++-- programs/diagnostics/internal/outputs/file/simple.go | 2 +- programs/diagnostics/internal/platform/data/file.go | 4 ++-- programs/diagnostics/internal/platform/utils/file.go | 5 +++-- programs/diagnostics/internal/runner.go | 2 +- utils/check-style/codespell-ignore-lines.list | 1 + 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/programs/diagnostics/README.md b/programs/diagnostics/README.md index b69a6e3a996..f800bb0648e 100644 --- a/programs/diagnostics/README.md +++ b/programs/diagnostics/README.md @@ -9,7 +9,7 @@ This tool provides a means of obtaining a diagnostic bundle from a ClickHouse in - **No local dependencies** to run. We compile to a platform-independent binary, hence Go. - **Minimize resource overhead**. Improvements always welcome. - **Extendable framework**. At its core, the tool provides collectors and outputs. Collectors are independent and are responsible for collecting a specific dataset e.g. system configuration. Outputs produce the diagnostic bundle in a specific format. It should be trivial to add both for contributors. See [Collectors](#collectors) and [Outputs](#outputs) for more details. -- **Convertable output formats**. Outputs produce diagnostic bundles in different formats e.g. archive, simple report etc. Where possible, it should be possible to convert between these formats. For example, an administrator may provide a bundle as an archive to their support provider who in turn wishes to visualise this as a report or even in ClickHouse itself... +- **Convertible output formats**. Outputs produce diagnostic bundles in different formats e.g. archive, simple report etc. Where possible, it should be possible to convert between these formats. For example, an administrator may provide a bundle as an archive to their support provider who in turn wishes to visualise this as a report or even in ClickHouse itself... - **Something is better than nothing**. Collectors execute independently. We never fail a collection because one fails - preferring to warn the user only. There are good reasons for a collector failure e.g. insufficient permissions or missing data. - **Execute anywhere** - Ideally, this tool is executed on a ClickHouse host. Some collectors e.g. configuration file collection or system information, rely on this. However, collectors will obtain as much information remotely from the database as possible if executed remotely from the cluster - warning where collection fails. **We do currently require ClickHouse to be running, connecting over the native port**. @@ -25,7 +25,7 @@ The `collect` command allows the collection of a diagnostic bundle. In its simpl clickhouse-diagnostics collect ``` -This will use the default collectors and the simple output. This output produces a timestamped archive bundle in `gz` format in a sub folder named after the host. This folder name can be controlled via the parameter `--id` or configured directly for the simple output parameter `output.simple.folder` (this allows a specific diretory to be specified). +This will use the default collectors and the simple output. This output produces a timestamped archive bundle in `gz` format in a sub folder named after the host. This folder name can be controlled via the parameter `--id` or configured directly for the simple output parameter `output.simple.folder` (this allows a specific directory to be specified). Collectors, Outputs and ClickHouse connection credentials can be specified as shown below: diff --git a/programs/diagnostics/internal/outputs/file/simple.go b/programs/diagnostics/internal/outputs/file/simple.go index f91ec9f74ee..63847b3addd 100644 --- a/programs/diagnostics/internal/outputs/file/simple.go +++ b/programs/diagnostics/internal/outputs/file/simple.go @@ -149,7 +149,7 @@ func writeDatabaseFrame(frameId string, frame data.Frame, baseDir string) ([]str errs = append(errs, errors.Wrapf(err, "unable to write columns for frame %s", frameId)) return []string{}, errs } - // we don't collect an error for every line here like configs and logs - could mean alot of unnecessary noise + // we don't collect an error for every line here like configs and logs - could mean a lot of unnecessary noise for { values, ok, err := frame.Next() if err != nil { diff --git a/programs/diagnostics/internal/platform/data/file.go b/programs/diagnostics/internal/platform/data/file.go index 19bf5884876..9760b4b6906 100644 --- a/programs/diagnostics/internal/platform/data/file.go +++ b/programs/diagnostics/internal/platform/data/file.go @@ -303,7 +303,7 @@ func (x XmlConfigFile) FindLogPaths() ([]string, error) { func (x XmlConfigFile) FindIncludedConfig() (ConfigFile, error) { if x.Included { - //cant recurse + //can't recurse return XmlConfigFile{}, nil } config, err := x.UnmarshallConfig() @@ -385,7 +385,7 @@ func (y YamlConfigFile) FindLogPaths() ([]string, error) { func (y YamlConfigFile) FindIncludedConfig() (ConfigFile, error) { if y.Included { - //cant recurse + //can't recurse return YamlConfigFile{}, nil } inputFile, err := ioutil.ReadFile(y.Path) diff --git a/programs/diagnostics/internal/platform/utils/file.go b/programs/diagnostics/internal/platform/utils/file.go index 608e45be74a..71af4b32658 100644 --- a/programs/diagnostics/internal/platform/utils/file.go +++ b/programs/diagnostics/internal/platform/utils/file.go @@ -2,11 +2,12 @@ package utils import ( "fmt" - "github.com/pkg/errors" "io" "io/fs" "os" "path/filepath" + + "github.com/pkg/errors" ) func FileExists(name string) (bool, error) { @@ -64,7 +65,7 @@ func CopyFile(sourceFilename string, destFilename string) error { return err } -// patterns passed are an OR - any can be satisified and the file will be listed +// patterns passed are an OR - any can be satisfied and the file will be listed func ListFilesInDirectory(directory string, patterns []string) ([]string, []error) { var files []string diff --git a/programs/diagnostics/internal/runner.go b/programs/diagnostics/internal/runner.go index 6960cf1cd23..9386a1d178b 100644 --- a/programs/diagnostics/internal/runner.go +++ b/programs/diagnostics/internal/runner.go @@ -96,7 +96,7 @@ func output(config *runConfiguration, bundles map[string]*data.DiagnosticBundle) return err } frameErrors, err := output.Write(config.id, bundles, config.outputConfig) - // we report over failing hard on frame errors - upto the output to determine what is fatal via error + // we report over failing hard on frame errors - up to the output to determine what is fatal via error for _, fError := range frameErrors.Errors { log.Warn().Msgf("failure to write frame in output %s - %s", config.output, fError) } diff --git a/utils/check-style/codespell-ignore-lines.list b/utils/check-style/codespell-ignore-lines.list index 7c2959e9468..78b0639989f 100644 --- a/utils/check-style/codespell-ignore-lines.list +++ b/utils/check-style/codespell-ignore-lines.list @@ -4,3 +4,4 @@ The TRE regular expression implementation (src/regex/reg* and src/regex/tre*) is Copyright © 2001-2008 Ville Laurikari and licensed pullRequests(first: {min_page_size} baseRefName: "{base}" headRefName: "{head}") {{ uint64_t time_to_wait = nanoseconds * timebase_info.denom / timebase_info.numer; + REPLACE_ME From 0e4c65a378f08622e24a5d570754a06e18ab24e8 Mon Sep 17 00:00:00 2001 From: Ilya Yatsishin <2159081+qoega@users.noreply.github.com> Date: Mon, 4 Jul 2022 12:57:55 +0200 Subject: [PATCH 524/525] Update tests/integration/test_postgresql_database_engine/test.py Co-authored-by: alesapin --- tests/integration/test_postgresql_database_engine/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_postgresql_database_engine/test.py b/tests/integration/test_postgresql_database_engine/test.py index f6cfa1b230f..5619c551c71 100644 --- a/tests/integration/test_postgresql_database_engine/test.py +++ b/tests/integration/test_postgresql_database_engine/test.py @@ -345,7 +345,7 @@ def test_postgres_database_old_syntax(started_cluster): ) create_postgres_table(cursor, "test_table") assert "test_table" in node1.query("SHOW TABLES FROM postgres_database") - cursor.execute(f"DROP TABLE test_table ") + cursor.execute(f"DROP TABLE test_table") node1.query("DROP DATABASE IF EXISTS postgres_database;") From a7604a19e92507b6fcade27c9c8a704ab8febd93 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Mon, 4 Jul 2022 14:23:30 +0300 Subject: [PATCH 525/525] Update 01710_projection_fetch_long.sql --- tests/queries/0_stateless/01710_projection_fetch_long.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/01710_projection_fetch_long.sql b/tests/queries/0_stateless/01710_projection_fetch_long.sql index fd12b84c817..29effc53745 100644 --- a/tests/queries/0_stateless/01710_projection_fetch_long.sql +++ b/tests/queries/0_stateless/01710_projection_fetch_long.sql @@ -1,4 +1,4 @@ --- Tags: long, no-s3-storage +-- Tags: long, no-s3-storage, no-backward-compatibility-check drop table if exists tp_1; drop table if exists tp_2;